<?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>184374</bug_id>
          
          <creation_ts>2018-04-06 17:38:49 -0700</creation_ts>
          <short_desc>Pass FetchOptions and SecurityOrigin as load parameters from WebProcess to NetworkProcess</short_desc>
          <delta_ts>2018-04-11 12:06:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1412524</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-06 17:38:49 -0700</bug_when>
    <thetext>Pass FetchOptions and SecurityOrigin as load parameters from WebProcess to NetworkProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412525</commentid>
    <comment_count>1</comment_count>
      <attachid>337404</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-06 17:43:03 -0700</bug_when>
    <thetext>Created attachment 337404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413403</commentid>
    <comment_count>2</comment_count>
      <attachid>337404</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-10 14:23:17 -0700</bug_when>
    <thetext>Comment on attachment 337404
Patch

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

Looks good overall but I have one concern.

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:91
&gt; +        encoder &lt;&lt; sourceOrigin-&gt;enforcesFilePathSeparation();

Why are we doing this here instead of introducing a (reusable) encoder / decoder for SecurityOrigin class? This looks like a lot of code here for SecurityOrigin internals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413411</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-10 14:47:10 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; Comment on attachment 337404 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=337404&amp;action=review
&gt; 
&gt; Looks good overall but I have one concern.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:91
&gt; &gt; +        encoder &lt;&lt; sourceOrigin-&gt;enforcesFilePathSeparation();
&gt; 
&gt; Why are we doing this here instead of introducing a (reusable) encoder /
&gt; decoder for SecurityOrigin class? This looks like a lot of code here for
&gt; SecurityOrigin internals.

The reason is that this currently does not serialize every SecurityOrigin bit, some being only needed for StorageProcess for instance.

I will try to update SecurityOrigin to serialize every bit and add the encoder/decoder in SecurityOrigin.h/.cpp directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413463</commentid>
    <comment_count>4</comment_count>
      <attachid>337656</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-10 16:58:52 -0700</bug_when>
    <thetext>Created attachment 337656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413467</commentid>
    <comment_count>5</comment_count>
      <attachid>337657</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-10 17:06:23 -0700</bug_when>
    <thetext>Created attachment 337657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413471</commentid>
    <comment_count>6</comment_count>
      <attachid>337658</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-10 17:17:18 -0700</bug_when>
    <thetext>Created attachment 337658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413736</commentid>
    <comment_count>7</comment_count>
      <attachid>337658</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-11 10:28:07 -0700</bug_when>
    <thetext>Comment on attachment 337658
Patch

Rejecting attachment 337658 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 337658, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ce/WebKit/NetworkProcess/NetworkResourceLoader.cpp
Hunk #1 succeeded at 472 (offset 1 line).
patching file Source/WebKit/NetworkProcess/PingLoad.cpp
patching file Source/WebKit/NetworkProcess/PingLoad.h
patching file Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp
patching file Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Chris Dumez&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/7285010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413752</commentid>
    <comment_count>8</comment_count>
      <attachid>337717</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-11 11:09:26 -0700</bug_when>
    <thetext>Created attachment 337717
Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413764</commentid>
    <comment_count>9</comment_count>
      <attachid>337717</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-11 12:05:14 -0700</bug_when>
    <thetext>Comment on attachment 337717
Rebased

Clearing flags on attachment: 337717

Committed r230541: &lt;https://trac.webkit.org/changeset/230541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413765</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-11 12:05:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413766</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-11 12:06:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/39356170&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337404</attachid>
            <date>2018-04-06 17:43:03 -0700</date>
            <delta_ts>2018-04-10 16:58:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184374-20180406174302.patch</filename>
            <type>text/plain</type>
            <size>32002</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFiOWVjZjRiZWY1MDAx
ZTZlMDBkMjE1NzhiOTc5OTI2NGJjN2IyMC4uZDkwYWNjM2VlMmY3YTIxZDMxNGMwNTFlNjkxNzE3
MTI2MTBjOGNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA0LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIEZldGNoT3B0aW9u
cyBhbmQgU2VjdXJpdHlPcmlnaW4gYXMgbG9hZCBwYXJhbWV0ZXJzIGZyb20gV2ViUHJvY2VzcyB0
byBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0Mzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2aW9yLiBFeHBvcnQgbW9yZSBzeW1ib2xzLgorCisg
ICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOgorCiAyMDE4LTA0LTA2ICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dW1dlYkNvcmVd
IEV4cG9zZSBhIGNvbnN0YW50IGZvciBzY3JvbGxiYXIgcGl4ZWxzIHBlciBsaW5lIChjU2Nyb2xs
YmFyUGl4ZWxzUGVyTGluZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmViNWM2ZmZjM2Q1ZjdkMWNmMmI0NWIyNjQ4
MDIwOWVmNDQ0NDEwMC4uNDg1ZDU1ZjVmMGMxYjA2NzA1MTM4YTA2MWIyMDkyNmYzZWI1M2QyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxOC0wNC0wNiAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyBGZXRjaE9wdGlvbnMgYW5kIFNlY3VyaXR5
T3JpZ2luIGFzIGxvYWQgcGFyYW1ldGVycyBmcm9tIFdlYlByb2Nlc3MgdG8gTmV0d29ya1Byb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDM3
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3Mg
ZnVsbCBGZXRjaE9wdGlvbnMgcGFyYW1ldGVycyBhcyBwYXJ0IG9mIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLgorICAgICAgICBUaGlzIHdpbGwgYWxsb3cgaGFuZGxpbmcgcmVkaXJlY3Rp
b24gbW9kZSBhcyB3ZWxsIGFzIGNyZWRlbnRpYWxzIGluIGNhc2Ugb2YgY3Jvc3Mgb3JpZ2luIHJl
ZGlyZWN0aW9ucy4KKyAgICAgICAgSW4gY2FzZSBvZiBTYW1lT3JpZ2luIGNyZWRlbnRpYWxzIGFu
ZCB0aGVyZSBpcyBhIHJlZGlyZWN0aW9uIGZyb20gc2FtZS1vcmlnaW4gdG8gY3Jvc3Mtb3JpZ2lu
LAorICAgICAgICB3ZSB3aWxsIGJlIGFibGUgdG8gc3RvcCB1c2luZyBjcmVkZW50aWFscyB3aXRo
b3V0IGdvaW5nIHRvIFdlYlByb2Nlc3MuCisKKyAgICAgICAgVG8gaGFuZGxlIHByb3Blcmx5IGNy
b3NzLW9yaWdpbiBjaGVja3MsIHdlIGhhdmUgdG8gYmUgYWJsZSB0byB1c2UgU2VjdXJpdHlPcmln
aW4gYXMgaW4gV2ViUHJvY2Vzcy4KKyAgICAgICAgV2UgcGFzcyBhcyBwYXJ0IG9mIE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIG1vcmUgaW5mb3JtYXRpb24gZnJvbSBTZWN1cml0eU9yaWdp
bgorICAgICAgICB0byByZWNvbnN0cnVjdCBTZWN1cml0eU9yaWdpbiBhcyBuZWVkZWQgYnkgTmV0
d29ya1Byb2Nlc3MuCisgICAgICAgIFdlIG1ha2UgV2ViUHJvY2VzcyBzZW5kcyBPcmlnaW4gQWNj
ZXNzIFdoaXRlIGxpc3QgaW5mb3JtYXRpb24gdG8gTmV0d29ya1Byb2Nlc3MuCisgICAgICAgIFRo
aXMgYWxsb3dzIHN1cHBvcnRpbmcgdGhlIHdoaXRlIGxpc3Qgd2hlbiBkb2luZyBsb2FkaW5nIGlu
IE5ldHdvcmtQcm9jZXNzLgorICAgICAgICBUaGlzIG9ubHkgd29ya3MgY29uc2lzdGVudGx5IGlm
IGFsbCBXZWJQcm9jZXNzZXMgc2hhcmUgdGhlIHNhbWUgd2hpdGVsaXN0LgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9hZFBpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6
TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2Vy
OjpjaGVja1JlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2Vy
Ojpjb250aW51ZUNoZWNraW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2Fk
Q2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2Fk
Q2hlY2tlcjo6Y2hlY2tDT1JTUmVkaXJlY3RlZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxpZ2h0KToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpkb2VzTm90TmVlZENPUlNDaGVjayBjb25z
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGluZ0xvYWQ6OlBpbmdMb2FkKToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OndpbGxQZXJm
b3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6
cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJh
dGVneTo6c3RhcnRQaW5nTG9hZCk6CisKIDIwMTgtMDQtMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzAyMjMpOiBMYXlvdXRUZXN0
IGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvY3NzLWRpc3BsYXktbm9uZS1vdmVyZmxvd3Mt
cnVsZS1kYXRhLTEuaHRtbCBpcyBjcmFzaGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdp
bi5oCmluZGV4IGRjYzE1MjdjOTEyNDlkZmZlN2E5MTk5MTEzY2FhYzlmNmExMGU0YjQuLmRmMDVh
YTQ1NjdhZmIyOTJlMzExODEzMWE5ZmRhMTE5NjdmYzMwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5T3JpZ2luLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIC8vIFNldCB0aGUg
ZG9tYWluIHByb3BlcnR5IG9mIHRoaXMgc2VjdXJpdHkgb3JpZ2luIHRvIG5ld0RvbWFpbi4gVGhp
cwogICAgIC8vIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHdoZXRoZXIgbmV3RG9tYWluIGlzIGEg
c3VmZml4IG9mIHRoZSBjdXJyZW50CiAgICAgLy8gZG9tYWluLiBUaGUgY2FsbGVyIGlzIHJlc3Bv
bnNpYmxlIGZvciB2YWxpZGF0aW5nIG5ld0RvbWFpbi4KLSAgICB2b2lkIHNldERvbWFpbkZyb21E
T00oY29uc3QgU3RyaW5nJiBuZXdEb21haW4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
RG9tYWluRnJvbURPTShjb25zdCBTdHJpbmcmIG5ld0RvbWFpbik7CiAgICAgYm9vbCBkb21haW5X
YXNTZXRJbkRPTSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tYWluV2FzU2V0SW5ET007IH0KIAogICAg
IGNvbnN0IFN0cmluZyYgcHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX2RhdGEucHJvdG9jb2w7
IH0KQEAgLTEyNiwxNyArMTI2LDE3IEBAIHB1YmxpYzoKICAgICAvLwogICAgIC8vIE5vdGU6IFRo
aXMgbWV0aG9kIGV4aXN0cyBvbmx5IHRvIHN1cHBvcnQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkK
ICAgICAvLyAgICAgICB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIFdlYktpdC4KLSAgICB2b2lkIGdy
YW50TG9hZExvY2FsUmVzb3VyY2VzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudExv
YWRMb2NhbFJlc291cmNlcygpOwogCiAgICAgLy8gRXhwbGljaXRseSBncmFudCB0aGUgYWJpbGl0
eSB0byBhY2Nlc3MgdmVyeSBvdGhlciBTZWN1cml0eU9yaWdpbi4KICAgICAvLwogICAgIC8vIFdB
Uk5JTkc6IFRoaXMgaXMgYW4gZXh0cmVtZWx5IHBvd2VyZnVsIGFiaWxpdHkuIFVzZSB3aXRoIGNh
dXRpb24hCi0gICAgdm9pZCBncmFudFVuaXZlcnNhbEFjY2VzcygpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZ3JhbnRVbml2ZXJzYWxBY2Nlc3MoKTsKICAgICBib29sIGhhc1VuaXZlcnNhbEFj
Y2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdmVyc2FsQWNjZXNzOyB9CiAKICAgICB2b2lkIHNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KSB7IG1f
c3RvcmFnZUJsb2NraW5nUG9saWN5ID0gcG9saWN5OyB9CiAKLSAgICB2b2lkIGdyYW50U3RvcmFn
ZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFu
dFN0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyaygpOwogICAgIGJvb2wgbmVlZHNTdG9yYWdl
QWNjZXNzRnJvbUZpbGVVUkxzUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX25lZWRzU3RvcmFnZUFj
Y2Vzc0Zyb21GaWxlVVJMc1F1aXJrOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZG9t
YWluRm9yQ2FjaGVQYXJ0aXRpb24oKSBjb25zdDsKQEAgLTE2Niw3ICsxNjYsNyBAQCBwdWJsaWM6
CiAgICAgLy8gTWFya3MgYSBmaWxlOi8vIG9yaWdpbiBhcyBiZWluZyBpbiBhIGRvbWFpbiBkZWZp
bmVkIGJ5IGl0cyBwYXRoLgogICAgIC8vIEZJWE1FIDgxNTc4OiBUaGUgbmFtaW5nIG9mIHRoaXMg
aXMgY29uZnVzaW5nLiBGaWxlcyB3aXRoIHJlc3RyaWN0ZWQgYWNjZXNzIHRvIG90aGVyIGxvY2Fs
IGZpbGVzCiAgICAgLy8gc3RpbGwgY2FuIGhhdmUgb3RoZXIgcHJpdmlsZWdlcyB0aGF0IGNhbiBi
ZSByZW1lbWJlcmVkLCB0aGVyZWJ5IG5vdCBtYWtpbmcgdGhlbSB1bmlxdWUuCi0gICAgdm9pZCBz
ZXRFbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0RW5mb3JjZXNGaWxlUGF0aFNlcGFyYXRpb24oKTsKICAgICBib29sIGVuZm9yY2VzRmlsZVBh
dGhTZXBhcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9lbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlv
bjsgfQogCiAgICAgLy8gQ29udmVydCB0aGlzIFNlY3VyaXR5T3JpZ2luIGludG8gYSBzdHJpbmcu
IFRoZSBzdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZmE2ZmVhY2Q1ZDI4
ZWFhMjkyMDI5ZGEwYTczYjdlMzU2NmY3YTNiNS4uZTZkZWQ0MjBhOTExMDg2OWMxMjM5ZmFmYTRk
OGFlNjgzZDU1MjFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTU1LDYgKzU1
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KICNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjQy
LDE0ICsyNDMsMTQgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGVyZm9y
bVN5bmNocm9ub3VzTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2UKICAgICBsb2FkZXItPnN0YXJ0
KCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMsIEhUVFBIZWFkZXJN
YXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6bG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFy
YW1ldGVycykKIHsKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IGxvYWRQYXJhbWV0ZXJzLmlkZW50
aWZpZXJdIChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpIHsKICAgICAgICAgZGlkRmluaXNoUGluZ0xvYWQoaWRlbnRpZmllciwgZXJy
b3IsIHJlc3BvbnNlKTsKICAgICB9OwogCiAgICAgLy8gUGluZ0xvYWQgbWFuYWdlcyBpdHMgb3du
IGxpZmV0aW1lLCBkZWxldGluZyBpdHNlbGYgd2hlbiBpdHMgcHVycG9zZSBoYXMgYmVlbiBmdWxm
aWxsZWQuCi0gICAgbmV3IFBpbmdMb2FkKFdURk1vdmUobG9hZFBhcmFtZXRlcnMpLCBXVEZNb3Zl
KG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgbmV3IFBpbmdMb2FkKFdURk1vdmUobG9hZFBhcmFtZXRlcnMpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRp
ZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtNTA3
LDQgKzUwOCwxOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVT
dG9yYWdlQWNjZXNzRm9yQWxsRnJhbWVzT25QYWdlKFBBTDo6UwogI2VuZGlmCiB9CiAKK3ZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKQoreworICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmln
aW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zKTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit7Cisg
ICAgU2VjdXJpdHlQb2xpY3k6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCksIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMp
OworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNldE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdHMoKQoreworICAgIFNlY3VyaXR5UG9saWN5OjpyZXNldE9yaWdpbkFjY2Vz
c1doaXRlbGlzdHMoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKaW5kZXggMDc0ODM4ZWEyOGQ4YjA3ZDJlMDhiZmFjMzQyYzY5ZjRhNDQ2ZTI1Ni4u
MjhmNTEwNzBiZTU3NDYzYzA3MzJmNzQxOGEwZDIwODExZTM0OGI5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaApAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVs
ZVJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYpOwogICAg
IHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyYsIFJlZjxNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBl
cmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseT4mJik7Ci0gICAgdm9pZCBsb2FkUGlu
ZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFw
JiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyk7CisgICAgdm9pZCBsb2FkUGluZyhOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIHByZWZldGNoRE5TKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgcHJlY29ubmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlm
aWVyLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJik7CiAKQEAgLTE0MCw2ICsxNDAsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25J
RCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHJlbW92ZVN0
b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHBh
Z2VJRCk7CiAKKyAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0
cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKTsKKyAgICB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0
cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKTsKKyAgICB2b2lkIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOworCiAgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPE5ldHdvcmtTb2NrZXRTdHJlYW0+PiBtX25ldHdvcmtTb2NrZXRTdHJlYW1zOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMTYzZmYwMzQwMjJl
NDcxN2QxNzFiZmU4YTVhYjg2NmM3ZGZhZDI5ZC4uMDI3MzgyMWVlNDk1NjYwMTU4YzM1NjQzYmE3
NWRkM2ZhZjZlNjQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCkBAIC0yNCw3ICsyNCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFNjaGVkdWxlUmVzb3VyY2VMb2FkKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykK
ICAgICBQZXJmb3JtU3luY2hyb25vdXNMb2FkKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZXJyb3IsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFZlY3RvcjxjaGFy
PiBkYXRhKSBEZWxheWVkCi0gICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFw
IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpCisgICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJlbW92ZUxv
YWRJZGVudGlmaWVyKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpCiAgICAgU2V0RGVm
ZXJzTG9hZGluZyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sIGRlZmVycykK
ICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCkBAIC02MCw0ICs2MCw4IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAog
ICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCk7CiAgICAgUmVtb3ZlU3RvcmFnZUFj
Y2Vzc0ZvckFsbEZyYW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90
IHBhZ2VJRCk7CisKKyAgICBBZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTdHJpbmcgc291
cmNlT3JpZ2luLCBTdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgU3RyaW5nIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgUmVtb3ZlT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkoU3RyaW5nIHNvdXJjZU9yaWdpbiwgU3RyaW5nIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIFN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnMpOworICAgIFJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3Bw
CmluZGV4IGU0ZTcxM2Y3MjFiM2UwMmRmMWEzYWU2NjM3NDY3OGUyMzAwN2ZlZmIuLjQ0ZjNjYmFj
NzBhZjY5NmJiMjM0ZmVhNWRmYmQ1NmUwZTgyOTcwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTQxLDE3ICs0MSwy
NiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKFdlYkNvcmU6OkZldGNoT3B0aW9u
czo6TW9kZSBtb2RlLCBib29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cywgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRl
cnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbikKLSAg
ICA6IG1fbW9kZShtb2RlKQotICAgICwgbV9zaG91bGRGb2xsb3dSZWRpcmVjdHMoc2hvdWxkRm9s
bG93UmVkaXJlY3RzKQotICAgICwgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeShzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSkKK05ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKFdl
YkNvcmU6OkZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVy
bCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbikKKyAgICA6IG1fb3B0aW9u
cyhXVEZNb3ZlKG9wdGlvbnMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwg
bV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0SGVhZGVycykp
CiAgICAgLCBtX3VybChXVEZNb3ZlKHVybCkpCiAgICAgLCBtX29yaWdpbihXVEZNb3ZlKHNvdXJj
ZU9yaWdpbikpCiB7Ci0gICAgaWYgKG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMg
fHwgbV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbikKLSAgICAgICAgbV9p
c1NhbWVPcmlnaW5SZXF1ZXN0ID0gbV9vcmlnaW4tPmNhblJlcXVlc3QobV91cmwpOworICAgIGlm
IChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMgfHwgbV9vcHRpb25z
Lm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luKQorICAgICAgICBtX2lzU2Ft
ZU9yaWdpblJlcXVlc3QgPSBtX3VybC5wcm90b2NvbElzRGF0YSgpIHx8IG1fdXJsLnByb3RvY29s
SXNCbG9iKCkgfHwgbV9vcmlnaW4tPmNhblJlcXVlc3QobV91cmwpOworICAgIHN3aXRjaCAob3B0
aW9ucy5jcmVkZW50aWFscykgeworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6
SW5jbHVkZToKKyAgICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRl
bnRpYWxzUG9saWN5OjpVc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmV0Y2hPcHRpb25z
OjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjoKKyAgICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9IG1faXNTYW1lT3JpZ2luUmVxdWVzdCA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpV
c2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdDoKKyAgICAgICAgbV9zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQogfQogCiBOZXR3b3JrTG9hZENoZWNrZXI6On5OZXR3b3Jr
TG9hZENoZWNrZXIoKSA9IGRlZmF1bHQ7CkBAIC03MSw3ICs4MCw3IEBAIHZvaWQgTmV0d29ya0xv
YWRDaGVja2VyOjpjaGVja1JlZGlyZWN0aW9uKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZh
bGlkYXRpb25ICiAgICAgbV9wcmV2aW91c1VSTCA9IFdURk1vdmUobV91cmwpOwogICAgIG1fdXJs
ID0gcmVxdWVzdC51cmwoKTsKIAotICAgIGlmICghbV9zaG91bGRGb2xsb3dSZWRpcmVjdHMpIHsK
KyAgICBpZiAobV9vcHRpb25zLnJlZGlyZWN0ICE9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZv
bGxvdykgewogICAgICAgICBoYW5kbGVyKHJldHVybkVycm9yKEFTQ0lJTGl0ZXJhbCgiTG9hZCBw
YXJhbWV0ZXJzIGRvIG5vdCBhbGxvdyBmb2xsb3dpbmcgcmVkaXJlY3Rpb25zIikpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTExNCw3ICsxMjMsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hl
Y2tlcjo6Y29udGludWVDaGVja2luZ1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
VmFsaQogICAgIGlmIChhdXRvKiBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSB0aGlzLT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKSkgewogICAgICAgICBpZiAoaXNSZWRpcmVjdGVkKCkpIHsKICAgICAg
ICAgICAgIFVSTCB1cmwgPSByZXF1ZXN0LnVybCgpOwotICAgICAgICAgICAgYXV0byB0eXBlID0g
bV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgPyBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Ok5hdmlnYXRpb24gOiBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQ7CisgICAgICAgICAgICBhdXRvIHR5cGUg
PSBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlID8gQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpOYXZpZ2F0aW9uIDogQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkOwogICAgICAgICAgICAg
Y29udGVudFNlY3VyaXR5UG9saWN5LT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQodXJs
LCB0eXBlKTsKICAgICAgICAgICAgIGlmICh1cmwgIT0gcmVxdWVzdC51cmwoKSkKICAgICAgICAg
ICAgICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMTI1LDEyICsxMzQsMTUgQEAgdm9pZCBO
ZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIFZhbGkKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChtX29wdGlvbnMu
Y3JlZGVudGlhbHMgPT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbikKKyAg
ICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9ICAobV9pc1NhbWVPcmlnaW5SZXF1ZXN0
ICYmIG1fb3JpZ2luLT5jYW5SZXF1ZXN0KHJlcXVlc3QudXJsKCkpKSA/IFN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OjpVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisKICAg
ICBpZiAoZG9lc05vdE5lZWRDT1JTQ2hlY2socmVxdWVzdC51cmwoKSkpIHsKICAgICAgICAgaGFu
ZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
IChtX21vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luKSB7CisgICAgaWYgKG1f
b3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbikgewogICAgICAg
ICBoYW5kbGVyKHJldHVybkVycm9yKEFTQ0lJTGl0ZXJhbCgiU2FtZU9yaWdpbiBtb2RlIGRvZXMg
bm90IGFsbG93IGNyb3NzIG9yaWdpbiByZXF1ZXN0cyIpKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0xNDYsNyArMTU4LDcgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRpbnVl
Q2hlY2tpbmdSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGkKIAogdm9pZCBO
ZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgVmFsaWRhdGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAgIEFTU0VSVChtX21vZGUg
PT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICBBU1NFUlQobV9vcHRpb25zLm1vZGUg
PT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKIAogICAgIC8vIEV4Y2VwdCBpbiBjYXNlIHdo
ZXJlIHByZWZsaWdodCBpcyBuZWVkZWQsIGxvYWRpbmcgc2hvdWxkIGJlIGFibGUgdG8gY29udGlu
dWUgb24gaXRzIG93bi4KICAgICBpZiAobV9pc1NpbXBsZVJlcXVlc3QgJiYgaXNTaW1wbGVDcm9z
c09yaWdpbkFjY2Vzc1JlcXVlc3QocmVxdWVzdC5odHRwTWV0aG9kKCksIG1fb3JpZ2luYWxSZXF1
ZXN0SGVhZGVycykpIHsKQEAgLTE1OSw3ICsxNzEsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tl
cjo6Y2hlY2tDT1JTUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBWYWxpZGF0aW9u
SAogCiB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVkaXJlY3RlZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVmFsaWRhdGlvbkhhbmRsZXImJiBoYW5kbGVyKQog
ewotICAgIEFTU0VSVChtX21vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICBB
U1NFUlQobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKICAgICBB
U1NFUlQoaXNSZWRpcmVjdGVkKCkpOwogCiAgICAgLy8gRm9yY2UgYW55IHN1YnNlcXVlbnQgcmVx
dWVzdCB0byB1c2UgdGhlc2UgY2hlY2tzLgpAQCAtMTg0LDcgKzE5Niw3IEBAIHZvaWQgTmV0d29y
a0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBWCiAKIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZXF1ZXN0
V2l0aFByZWZsaWdodChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBWYWxpZGF0aW9uSGFuZGxl
ciYmIGhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
OkNvcnMpOworICAgIEFTU0VSVChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
OkNvcnMpOwogCiAgICAgbV9pc1NpbXBsZVJlcXVlc3QgPSBmYWxzZTsKICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHByb2JhYmx5IHBhcnRpdGlvbiBwcmVmbGlnaHQgcmVzdWx0IGNhY2hlIGJ5IHNl
c3Npb24gSUQuCkBAIC0yMjMsNyArMjM1LDcgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNo
ZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxpZ2h0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QKIAog
Ym9vbCBOZXR3b3JrTG9hZENoZWNrZXI6OmRvZXNOb3ROZWVkQ09SU0NoZWNrKGNvbnN0IFVSTCYg
dXJsKSBjb25zdAogewotICAgIGlmIChtX21vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0Nv
cnMgfHwgbV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpCisgICAgaWYgKG1f
b3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzIHx8IG1fb3B0aW9ucy5t
b2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgcmV0dXJuIG1faXNTYW1lT3JpZ2luUmVxdWVzdCAmJiBtX29yaWdpbi0+Y2FuUmVx
dWVzdCh1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRDaGVja2VyLmgKaW5kZXggMDMyZDVmNDM4NzNkY2VlYmNjZWY0MmYzNTU5ZmM1OWUyYzVmNjRl
MC4uNmMxY2U1NWY1YWVmNDk4ZWZjMjVkZGFlMWNhYmI3ZWU3ZTZkMGMzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC00Miw5
ICs0Miw5IEBAIGNsYXNzIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjsKIAogY2xhc3MgTmV0
d29ya0xvYWRDaGVja2VyIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya0xvYWRDaGVja2VyPiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrTG9hZENoZWNrZXI+IGNyZWF0ZShXZWJD
b3JlOjpGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwgYm9vbCBzaG91bGRGb2xsb3dSZWRpcmVjdHMs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiBvcmln
aW5hbEhlYWRlcnMsIFdlYkNvcmU6OlVSTCYmIHVybCwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHNvdXJjZU9yaWdpbikKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtMb2FkQ2hlY2tl
cj4gY3JlYXRlKFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsSGVhZGVycywgV2Vi
Q29yZTo6VVJMJiYgdXJsLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgc291cmNl
T3JpZ2luKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0xvYWRD
aGVja2VyIHsgbW9kZSwgc2hvdWxkRm9sbG93UmVkaXJlY3RzLCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2Vzc2lvbklELCBXVEZNb3ZlKG9yaWdpbmFsSGVhZGVycyksIFdURk1vdmUodXJsKSwg
V1RGTW92ZShzb3VyY2VPcmlnaW4pIH0pOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBO
ZXR3b3JrTG9hZENoZWNrZXIgeyBXVEZNb3ZlKG9wdGlvbnMpLCBzZXNzaW9uSUQsIFdURk1vdmUo
b3JpZ2luYWxIZWFkZXJzKSwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHNvdXJjZU9yaWdpbikgfSk7
CiAgICAgfQogICAgIH5OZXR3b3JrTG9hZENoZWNrZXIoKTsKIApAQCAtNjYsNyArNjYsNyBAQCBw
dWJsaWM6CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5OyB9
CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0xvYWRDaGVja2VyKFdlYkNvcmU6OkZldGNoT3B0aW9u
czo6TW9kZSwgYm9vbCBzaG91bGRGb2xsb3dSZWRpcmVjdHMsIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBX
ZWJDb3JlOjpVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmKTsKKyAgICBO
ZXR3b3JrTG9hZENoZWNrZXIoV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklE
LCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFdlYkNvcmU6OlVSTCYmLCBSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYpOwogCiAgICAgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9s
aWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdDsKICAgICBib29sIGlzQ2hlY2tpbmco
KSBjb25zdCB7IHJldHVybiAhIW1fY29yc1ByZWZsaWdodENoZWNrZXI7IH0KQEAgLTg3LDggKzg3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JM
b2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6QmxvY2tlZFN0YXR1cyYpPiYmKTsKICNlbmRpZgogCi0gICAgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zOjpNb2RlIG1fbW9kZTsKLSAgICBib29sIG1fc2hvdWxkRm9sbG93UmVkaXJlY3RzOworICAg
IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICBQQUw6OlNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKICAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwIG1fb3JpZ2luYWxS
ZXF1ZXN0SGVhZGVyczsgLy8gTmVlZGVkIGZvciBDT1JTIGNoZWNrcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5jcHAKaW5kZXggNWQwODkzNDZkMzhkZjM2YjNmMDI5MjYxOGU2YjM2MWViMjg4ZGRm
OC4uZTk1OTBkYTc1M2QxOTFlZWJjODAwYWRjYjM5OTIwN2UwNGVmMGNlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5jcHAKQEAgLTg2LDEwICs4NiwyMCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgZGVyaXZlZENhY2hlZERhdGFUeXBlc1RvUmV0cmlldmU7CiAKICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KHNvdXJjZU9yaWdpbik7Ci0gICAgaWYgKHNvdXJjZU9y
aWdpbikKKyAgICBpZiAoc291cmNlT3JpZ2luKSB7CiAgICAgICAgIGVuY29kZXIgPDwgc291cmNl
T3JpZ2luLT5kYXRhKCk7Ci0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1vZGUpOworICAgICAgICBl
bmNvZGVyIDw8IHNvdXJjZU9yaWdpbi0+ZW5mb3JjZXNGaWxlUGF0aFNlcGFyYXRpb24oKTsKKyAg
ICAgICAgZW5jb2RlciA8PCBzb3VyY2VPcmlnaW4tPmhhc1VuaXZlcnNhbEFjY2VzcygpOworICAg
ICAgICBlbmNvZGVyIDw8IHNvdXJjZU9yaWdpbi0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCk7Cisg
ICAgICAgIGVuY29kZXIgPDwgc291cmNlT3JpZ2luLT5uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmls
ZVVSTHNRdWlyaygpOworICAgICAgICBlbmNvZGVyIDw8IHNvdXJjZU9yaWdpbi0+ZG9tYWluV2Fz
U2V0SW5ET00oKTsKKyAgICAgICAgaWYgKHNvdXJjZU9yaWdpbi0+ZG9tYWluV2FzU2V0SW5ET00o
KSkKKyAgICAgICAgICAgIGVuY29kZXIgPDwgc291cmNlT3JpZ2luLT5kb21haW4oKTsKKyAgICB9
CisKKyAgICBlbmNvZGVyIDw8IG9wdGlvbnM7CiAgICAgZW5jb2RlciA8PCBjc3BSZXNwb25zZUhl
YWRlcnM7CisgICAgZW5jb2RlciA8PCBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBlbmNvZGVyIDw8IG1haW5Eb2N1bWVudFVSTDsK
QEAgLTE3NiwxMiArMTg2LDU0IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtSZXNvdXJjCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEFTU0VSVCghc291cmNlT3JpZ2luRGF0YS0+aXNFbXB0
eSgpKTsKICAgICAgICAgcmVzdWx0LnNvdXJjZU9yaWdpbiA9IHNvdXJjZU9yaWdpbkRhdGEtPnNl
Y3VyaXR5T3JpZ2luKCk7CisKKyAgICAgICAgYm9vbCBlbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlv
bjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShlbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlv
bikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChlbmZvcmNlc0ZpbGVQ
YXRoU2VwYXJhdGlvbikKKyAgICAgICAgICAgIHJlc3VsdC5zb3VyY2VPcmlnaW4tPnNldEVuZm9y
Y2VzRmlsZVBhdGhTZXBhcmF0aW9uKCk7CisKKyAgICAgICAgYm9vbCBoYXNVbml2ZXJzYWxBY2Nl
c3M7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzVW5pdmVyc2FsQWNjZXNzKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGhhc1VuaXZlcnNhbEFjY2VzcykK
KyAgICAgICAgICAgIHJlc3VsdC5zb3VyY2VPcmlnaW4tPmdyYW50VW5pdmVyc2FsQWNjZXNzKCk7
CisKKyAgICAgICAgYm9vbCBjYW5Mb2FkTG9jYWxSZXNvdXJjZXM7CisgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoY2FuTG9hZExvY2FsUmVzb3VyY2VzKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKGNhbkxvYWRMb2NhbFJlc291cmNlcykKKyAgICAgICAgICAgIHJl
c3VsdC5zb3VyY2VPcmlnaW4tPmdyYW50TG9hZExvY2FsUmVzb3VyY2VzKCk7CisKKyAgICAgICAg
Ym9vbCBuZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazsKKyAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShuZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyaykpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChuZWVkc1N0b3JhZ2VBY2Nlc3NGcm9t
RmlsZVVSTHNRdWlyaykKKyAgICAgICAgICAgIHJlc3VsdC5zb3VyY2VPcmlnaW4tPmdyYW50U3Rv
cmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrKCk7CisKKyAgICAgICAgYm9vbCBkb21haW5XYXNT
ZXRJbkRPTTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkb21haW5XYXNTZXRJbkRPTSkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChkb21haW5XYXNTZXRJbkRP
TSkgeworICAgICAgICAgICAgU3RyaW5nIGRvbWFpbjsKKyAgICAgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoZG9tYWluKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICByZXN1bHQuc291cmNlT3JpZ2luLT5zZXREb21haW5Gcm9tRE9NKGRvbWFpbik7CisgICAg
ICAgIH0KICAgICB9Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0Lm1vZGUpKQor
CisgICAgc3RkOjpvcHRpb25hbDxGZXRjaE9wdGlvbnM+IG9wdGlvbnM7CisgICAgZGVjb2RlciA+
PiBvcHRpb25zOworICAgIGlmICghb3B0aW9ucykKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJlc3VsdC5vcHRpb25zID0gKm9wdGlvbnM7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5jc3BSZXNwb25zZUhlYWRlcnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tYWluRG9jdW1lbnRVUkwpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMjIzMDIxOWJlODM3OGEwNDQ0
NTQwODAwMWVhMGZmMzhkZjgyMjUzYS4uNzQyOTBjZTQ4MThmZjFjMTFiNDE3Mzg2NTEyNTI5NTE2
MTQyNWJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtNTYsOCArNTYsOSBAQCBwdWJs
aWM6CiAgICAgU2Vjb25kcyBtYXhpbXVtQnVmZmVyaW5nVGltZTsKICAgICBWZWN0b3I8U3RyaW5n
PiBkZXJpdmVkQ2FjaGVkRGF0YVR5cGVzVG9SZXRyaWV2ZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+IHNvdXJjZU9yaWdpbjsKLSAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6
Ok1vZGUgbW9kZTsKKyAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9uczsKICAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycz4g
Y3NwUmVzcG9uc2VIZWFkZXJzOworICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgb3JpZ2luYWxS
ZXF1ZXN0SGVhZGVyczsKICAgICBib29sIHNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNz
IHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IDI1Zjk2M2EyMDFjYTIxYjlkYWE2
NzM5MWVkY2ZiNzhjMzcxMGM5YTMuLjc4MzU3MjhlZThmYTE2YWIzNjVhMTNkMGY5MTFhODQ3Yzk2
OWRhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCkBAIC0z
OCwxMSArMzgsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1QaW5nTG9hZDo6UGluZ0xvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzLCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3ImLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCitQaW5nTG9hZDo6UGluZ0xvYWQo
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICA6IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBh
cmFtZXRlcnMpKQogICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkKICAgICAsIG1fdGltZW91dFRpbWVyKCp0aGlzLCAmUGluZ0xvYWQ6OnRpbWVvdXRU
aW1lckZpcmVkKQotICAgICwgbV9uZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya0xvYWRDaGVja2Vy
OjpjcmVhdGUobV9wYXJhbWV0ZXJzLm1vZGUsIG1fcGFyYW1ldGVycy5zaG91bGRGb2xsb3dSZWRp
cmVjdHMsIG1fcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgbV9wYXJhbWV0ZXJz
LnNlc3Npb25JRCwgV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgVVJMIHsgbV9wYXJh
bWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5UmVm
KCkpKQorICAgICwgbV9uZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya0xvYWRDaGVja2VyOjpjcmVh
dGUoRmV0Y2hPcHRpb25zIHsgbV9wYXJhbWV0ZXJzLm9wdGlvbnN9LCBtX3BhcmFtZXRlcnMuc2Vz
c2lvbklELCBXVEZNb3ZlKG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgVVJM
IHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdp
bi5jb3B5UmVmKCkpKQogewogCiAgICAgaWYgKG1fcGFyYW1ldGVycy5jc3BSZXNwb25zZUhlYWRl
cnMpCkBAIC05MSw5ICs5MSw4IEBAIHZvaWQgUGluZ0xvYWQ6OmxvYWRSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12
b2lkIFBpbmdMb2FkOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihSZXNvdXJjZVJlc3BvbnNl
JiYgcmVkaXJlY3RSZXNwb25zZSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVkaXJlY3RD
b21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBQaW5nTG9hZDo6d2ls
bFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNwb25zZSYmLCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0KICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+Y2hlY2tSZWRpcmVjdGlvbihXVEZN
b3ZlKHJlcXVlc3QpLCBbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byYmIHJlc3VsdCkgewogICAgICAgICBpZiAoIXJlc3VsdC5oYXNfdmFs
dWUoKSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAppbmRleCBhMWVmNmU3MzE3ZmU1NWY2YzVkY2Y1M2Fj
NzU1M2E5Y2IwN2M5NmFmLi5kMTk0NTkyY2VhNmVlMjRlYzMxNjk5MTMzZGM2YjU2ZTY3MGZhNGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBAIC00NCw3ICs0NCw3
IEBAIGNsYXNzIE5ldHdvcmtMb2FkQ2hlY2tlcjsKIAogY2xhc3MgUGluZ0xvYWQgZmluYWwgOiBw
cml2YXRlIE5ldHdvcmtEYXRhVGFza0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgUGluZ0xvYWQoTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
PiYmKTsKKyAgICBQaW5nTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJik7CiAgICAgCiBwcml2YXRlOgogICAg
IH5QaW5nTG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggYTdjNGMxYTUwZjE0OGZjNDJh
OGIzMzhjZDdkN2E1YzY0OTI2MWYyOS4uNWM0ZWNkOGI0NmQ4YTNhNjAzMGNhNjQ3NzUxZmM3NDcz
YjcxN2Y3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVk
ZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIlNlc3Npb25U
cmFja2VyLmgiCkBAIC0zNzUsMTYgKzM3NywyMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYgog
dm9pZCBJbmplY3RlZEJ1bmRsZTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3Qg
U3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRv
bWFpbnMpCiB7CiAgICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCks
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6QWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkgeyBzb3VyY2VP
cmlnaW4sIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMgfSwgMCk7CisKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVtb3Zl
T3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
bkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgU2VjdXJpdHlQ
b2xpY3k6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCksIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVt
b3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkgeyBzb3VyY2VPcmlnaW4sIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMgfSwg
MCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0
cygpCiB7CiAgICAgU2VjdXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygp
OworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6UmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzIHsgfSwgMCk7CiB9CiAKIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKFdlYlBh
Z2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCAy
NmZiNmI3OTQ5ZmEzNzQzZTI4YTBkMjNkYzhjNGVjM2YwMjdiNjA2Li4xMGY4MzAwY2RjZTk2ODM1
YTk1MzkwNjVmNmI1YWExYzk4MmU0ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC00NjcsOCArNDY3LDgg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28KICAgICBsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmln
aW4gPSAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2Vz
c2lvbklEID0gZnJhbWUucGFnZSgpID8gZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSA6IFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6
Q3JlZGVudGlhbHM6Ok9taXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOwotICAgIGxvYWRQYXJhbWV0ZXJzLm1vZGUgPSBv
cHRpb25zLm1vZGU7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkRm9sbG93UmVkaXJlY3RzID0g
b3B0aW9ucy5yZWRpcmVjdCA9PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CisgICAg
bG9hZFBhcmFtZXRlcnMub3B0aW9ucyA9IG9wdGlvbnM7CisgICAgbG9hZFBhcmFtZXRlcnMub3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycyA9IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnM7CiAgICAgbG9hZFBh
cmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoJmZyYW1lKTsKICAgICBsb2FkUGFy
YW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2Vzcygp
OwogICAgIGlmICghZG9jdW1lbnQtPnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSgpKSB7CkBAIC00ODksNyArNDg5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28K
ICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgIG1fcGluZ0xvYWRDb21wbGV0aW9u
SGFuZGxlcnMuYWRkKGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6TG9hZFBpbmcoV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIG9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkxvYWRQaW5nIHsgbG9hZFBhcmFtZXRl
cnMgfSwgMCk7CiB9CiAKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFBpbmdMb2Fk
KHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYmIGVycm9yLCBSZXNv
dXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337656</attachid>
            <date>2018-04-10 16:58:52 -0700</date>
            <delta_ts>2018-04-10 17:06:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184374-20180410165850.patch</filename>
            <type>text/plain</type>
            <size>34185</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzdiNDhmNjk1ODlmMDcw
ODJjYTAzMzYzOTQzNDdkZWJjNzBjZGMyOC4uMGU0ZjI0ODQzODJiY2Q0NGMwMjlkNjk4YzBkZjFj
YTQ0MjhkMTEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA0LTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIEZldGNoT3B0aW9u
cyBhbmQgU2VjdXJpdHlPcmlnaW4gYXMgbG9hZCBwYXJhbWV0ZXJzIGZyb20gV2ViUHJvY2VzcyB0
byBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0Mzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNlY3VyaXR5T3JpZ2luIGVuY29kZS9kZWNvZGUgcm91
dGluZXMuCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisKIDIwMTgtMDQtMTAg
IEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1Mgc2hvdWxkIGRlZmVyIGNyZWF0aW9uIG9mIE1QVm9sdW1lVmlldyB1bnRpbCBp
dCBuZWVkcyB0byBtb25pdG9yIEFpclBsYXkgcm91dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmM2IwZjdkMWEy
MDYzYzEyYjE3NWNjNjQzODdmNjYwZjVmMzhmYTEuLmY5ZjMxNTA5MGE2MjA1NTViNDE4ODY3ZDVk
OTFmMDNkYjE1ZDFjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTgtMDQtMTAgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFBhc3MgRmV0Y2hPcHRp
b25zIGFuZCBTZWN1cml0eU9yaWdpbiBhcyBsb2FkIHBhcmFtZXRlcnMgZnJvbSBXZWJQcm9jZXNz
IHRvIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODQzNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQYXNzIGZ1bGwgRmV0Y2hPcHRpb25zIHBhcmFtZXRlcnMgYXMgcGFydCBvZiBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy4KKyAgICAgICAgVGhpcyB3aWxsIGFsbG93IGhh
bmRsaW5nIHJlZGlyZWN0aW9uIG1vZGUgYXMgd2VsbCBhcyBjcmVkZW50aWFscyBpbiBjYXNlIG9m
IGNyb3NzIG9yaWdpbiByZWRpcmVjdGlvbnMuCisgICAgICAgIEluIGNhc2Ugb2YgU2FtZU9yaWdp
biBjcmVkZW50aWFscyBhbmQgdGhlcmUgaXMgYSByZWRpcmVjdGlvbiBmcm9tIHNhbWUtb3JpZ2lu
IHRvIGNyb3NzLW9yaWdpbiwKKyAgICAgICAgd2Ugd2lsbCBiZSBhYmxlIHRvIHN0b3AgdXNpbmcg
Y3JlZGVudGlhbHMgd2l0aG91dCBnb2luZyB0byBXZWJQcm9jZXNzLgorCisgICAgICAgIFRvIGhh
bmRsZSBwcm9wZXJseSBjcm9zcy1vcmlnaW4gY2hlY2tzLCB3ZSBoYXZlIHRvIGJlIGFibGUgdG8g
dXNlIFNlY3VyaXR5T3JpZ2luIGFzIGluIFdlYlByb2Nlc3MuCisgICAgICAgIFdlIG1ha2UgV2Vi
UHJvY2VzcyBzZW5kcyBPcmlnaW4gQWNjZXNzIFdoaXRlIGxpc3QgaW5mb3JtYXRpb24gdG8gTmV0
d29ya1Byb2Nlc3MuCisgICAgICAgIFRoaXMgYWxsb3dzIHN1cHBvcnRpbmcgdGhlIHdoaXRlIGxp
c3Qgd2hlbiBkb2luZyBsb2FkaW5nIGluIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICBUaGlzIG9u
bHkgd29ya3MgY29uc2lzdGVudGx5IGlmIGFsbCBXZWJQcm9jZXNzZXMgc2hhcmUgdGhlIHNhbWUg
d2hpdGVsaXN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6bG9hZFBpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlZGlyZWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpjb250aW51ZUNoZWNraW5nUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVkaXJlY3RlZFJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVl
c3RXaXRoUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpk
b2VzTm90TmVlZENPUlNDaGVjayBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2Fk
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OlBpbmdMb2FkKToKKyAgICAgICAgKFdl
YktpdDo6UGluZ0xvYWQ6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAgICAoV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZCk6CisKIDIwMTgtMDQt
MTAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgTG9hZGluZyBv
ZiBtdWx0aXBhcnQgcmVzcG9uc2Ugd2FzIGNhbmNlbGxlZCBiZWNhdXNlIG9mIGNvbnRlbnQgcG9s
aWN5IHNldCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCmluZGV4IGRjYzE1MjdjOTEy
NDlkZmZlN2E5MTk5MTEzY2FhYzlmNmExMGU0YjQuLjliNzJkNjYxOWM2ZjhmMDNhZWZhNDU1NDI0
ZDA2MGVkMGI2ODBhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKQEAgLTIw
Niw2ICsyMDYsOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGRh
dGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBkZWNvZGUoRGVjb2RlciYpOworCiBw
cml2YXRlOgogICAgIFNlY3VyaXR5T3JpZ2luKCk7CiAgICAgZXhwbGljaXQgU2VjdXJpdHlPcmln
aW4oY29uc3QgVVJMJik7CkBAIC0yNDEsNCArMjQ0LDU1IEBAIGJvb2wgc2hvdWxkVHJlYXRBc1Bv
dGVudGlhbGx5VHJ1c3R3b3J0aHkoY29uc3QgVVJMJik7CiBib29sIG9yaWdpbnNNYXRjaChjb25z
dCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJik7CiBib29sIG9yaWdpbnNN
YXRjaChjb25zdCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IFNlY3VyaXR5T3JpZ2luKik7CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IGlubGluZSB2b2lkIFNlY3VyaXR5T3JpZ2luOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fZGF0YTsKKyAgICBl
bmNvZGVyIDw8IG1fZG9tYWluOworICAgIGVuY29kZXIgPDwgbV9maWxlUGF0aDsKKyAgICBlbmNv
ZGVyIDw8IG1faXNVbmlxdWU7CisgICAgZW5jb2RlciA8PCBtX3VuaXZlcnNhbEFjY2VzczsKKyAg
ICBlbmNvZGVyIDw8IG1fZG9tYWluV2FzU2V0SW5ET007CisgICAgZW5jb2RlciA8PCBtX2Nhbkxv
YWRMb2NhbFJlc291cmNlczsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV9zdG9yYWdlQmxvY2tp
bmdQb2xpY3kpOworICAgIGVuY29kZXIgPDwgbV9lbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlvbjsK
KyAgICBlbmNvZGVyIDw8IG1fbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcms7Cisg
ICAgZW5jb2RlciA8PCBtX2lzUG90ZW50aWFsbHlUcnVzdHdvcnRoeTsKKyAgICBlbmNvZGVyIDw8
IG1faXNMb2NhbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRhPiBkYXRhOworICAgIGRlY29k
ZXIgPj4gZGF0YTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEtPnByb3RvY29sLCBk
YXRhLT5ob3N0LCBkYXRhLT5wb3J0KTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3JpZ2lu
LT5tX2RvbWFpbikpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUob3JpZ2luLT5tX2ZpbGVQYXRoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1faXNVbmlxdWUpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdpbi0+bV91bml2ZXJzYWxBY2Nl
c3MpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9y
aWdpbi0+bV9kb21haW5XYXNTZXRJbkRPTSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUob3JpZ2luLT5tX2NhbkxvYWRMb2NhbFJlc291cmNlcykpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKG9yaWdp
bi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdpbi0+bV9lbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlv
bikpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3Jp
Z2luLT5tX25lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1faXNQb3RlbnRp
YWxseVRydXN0d29ydGh5KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShvcmlnaW4tPm1faXNMb2NhbCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgcmV0dXJuIFdURk1vdmUob3JpZ2luKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBmYTZmZWFjZDVkMjhlYWEyOTIwMjlk
YTBhNzNiN2UzNTY2ZjdhM2I1Li5lNmRlZDQyMGE5MTEwODY5YzEyMzlmYWZhNGQ4YWU2ODNkNTUy
MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yNDIsMTQgKzI0Mywx
NCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwZXJmb3JtU3luY2hyb25v
dXNMb2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZQogICAgIGxvYWRlci0+c3RhcnQoKTsKIH0KIAot
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9hZFBpbmcoTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycywgSFRUUEhlYWRlck1hcCYmIG9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjps
b2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQog
ewogICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyID0gbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcl0gKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkgewogICAgICAgICBkaWRGaW5pc2hQaW5nTG9hZChpZGVudGlmaWVyLCBlcnJvciwgcmVzcG9u
c2UpOwogICAgIH07CiAKICAgICAvLyBQaW5nTG9hZCBtYW5hZ2VzIGl0cyBvd24gbGlmZXRpbWUs
IGRlbGV0aW5nIGl0c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhhcyBiZWVuIGZ1bGZpbGxlZC4KLSAg
ICBuZXcgUGluZ0xvYWQoV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFdURk1vdmUob3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBuZXcgUGlu
Z0xvYWQoV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkRmluaXNoUGlu
Z0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkBAIC01MDcsNCArNTA4LDE5
IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nl
c3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTCiAjZW5kaWYKIH0KIAordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3Qg
U3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRv
bWFpbnMpCit7CisgICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCks
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1v
dmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3sKKyAgICBTZWN1cml0
eVBvbGljeTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZUZyb21TdHJpbmcoc291cmNlT3JpZ2luKS5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2Nv
bCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Cit9CisKK3Zv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVs
aXN0cygpCit7CisgICAgU2VjdXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0
cygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApp
bmRleCAwNzQ4MzhlYTI4ZDhiMDdkMmUwOGJmYWMzNDJjNjlmNGE0NDZlMjU2Li4yOGY1MTA3MGJl
NTc0NjNjMDczMmY3NDE4YTBkMjA4MTFlMzQ4YjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlUmVzb3VyY2VM
b2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBwZXJm
b3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiwg
UmVmPE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNo
cm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5PiYmKTsKLSAgICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5h
bFJlcXVlc3RIZWFkZXJzKTsKKyAgICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgcHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBwcmVjb25uZWN0VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIE5ldHdv
cmtMb2FkUGFyYW1ldGVycyYmKTsKIApAQCAtMTQwLDYgKzE0MCwxMCBAQCBwcml2YXRlOgogICAg
IHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vz
c0ZvckFsbEZyYW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKTsKIAor
ICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAg
IHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAg
IHZvaWQgcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CisKICAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TmV0
d29ya1NvY2tldFN0cmVhbT4+IG1fbmV0d29ya1NvY2tldFN0cmVhbXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAxNjNmZjAzNDAyMmU0NzE3ZDE3MWJm
ZThhNWFiODY2YzdkZmFkMjlkLi4wMjczODIxZWU0OTU2NjAxNThjMzU2NDNiYTc1ZGQzZmFmNmU2
NDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI0
LDcgKzI0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVn
YWN5UmVjZWl2ZXIgewogCiAgICAgU2NoZWR1bGVSZXNvdXJjZUxvYWQoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFBlcmZv
cm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBy
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgVmVjdG9yPGNoYXI+IGRhdGEpIERl
bGF5ZWQKLSAgICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
IHJlc291cmNlTG9hZFBhcmFtZXRlcnMsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgb3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycykKKyAgICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZp
ZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5n
KHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZl
dGNoRE5TKFN0cmluZyBob3N0bmFtZSkKQEAgLTYwLDQgKzYwLDggQEAgbWVzc2FnZXMgLT4gTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgUmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yQWxs
RnJhbWVzT25QYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKTsK
KworICAgIEFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFN0cmluZyBzb3VyY2VPcmlnaW4s
IFN0cmluZyBkZXN0aW5hdGlvblByb3RvY29sLCBTdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29s
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBSZW1vdmVPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeShTdHJpbmcgc291cmNlT3JpZ2luLCBTdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cyk7CisgICAgUmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXggZTRl
NzEzZjcyMWIzZTAyZGYxYTNhZTY2Mzc0Njc4ZTIzMDA3ZmVmYi4uNDRmM2NiYWM3MGFmNjk2YmIy
MzRmZWE1ZGZiZDU2ZTBlODI5NzBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtNDEsMTcgKzQxLDI2IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotTmV0d29ya0xvYWRD
aGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2RlIG1v
ZGUsIGJvb2wgc2hvdWxkRm9sbG93UmVkaXJlY3RzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYg
dXJsLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luKQotICAgIDogbV9tb2Rl
KG1vZGUpCi0gICAgLCBtX3Nob3VsZEZvbGxvd1JlZGlyZWN0cyhzaG91bGRGb2xsb3dSZWRpcmVj
dHMpCi0gICAgLCBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5KHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5KQorTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoV2ViQ29yZTo6RmV0
Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpI
VFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luKQorICAgIDogbV9vcHRpb25zKFdURk1vdmUo
b3B0aW9ucykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX29yaWdpbmFs
UmVxdWVzdEhlYWRlcnMoV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSkKICAgICAsIG1f
dXJsKFdURk1vdmUodXJsKSkKICAgICAsIG1fb3JpZ2luKFdURk1vdmUoc291cmNlT3JpZ2luKSkK
IHsKLSAgICBpZiAobV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyB8fCBtX21vZGUg
PT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luKQotICAgICAgICBtX2lzU2FtZU9yaWdp
blJlcXVlc3QgPSBtX29yaWdpbi0+Y2FuUmVxdWVzdChtX3VybCk7CisgICAgaWYgKG1fb3B0aW9u
cy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyB8fCBtX29wdGlvbnMubW9kZSA9PSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4pCisgICAgICAgIG1faXNTYW1lT3JpZ2luUmVx
dWVzdCA9IG1fdXJsLnByb3RvY29sSXNEYXRhKCkgfHwgbV91cmwucHJvdG9jb2xJc0Jsb2IoKSB8
fCBtX29yaWdpbi0+Y2FuUmVxdWVzdChtX3VybCk7CisgICAgc3dpdGNoIChvcHRpb25zLmNyZWRl
bnRpYWxzKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlOgor
ICAgICAgICBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k6OlVzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzOjpTYW1lT3JpZ2luOgorICAgICAgICBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gbV9p
c1NhbWVPcmlnaW5SZXF1ZXN0ID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSA6IFN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBG
ZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0OgorICAgICAgICBtX3N0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOworICAgICAgICBi
cmVhazsKKyAgICB9CiB9CiAKIE5ldHdvcmtMb2FkQ2hlY2tlcjo6fk5ldHdvcmtMb2FkQ2hlY2tl
cigpID0gZGVmYXVsdDsKQEAgLTcxLDcgKzgwLDcgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6
OmNoZWNrUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVmFsaWRhdGlvbkgK
ICAgICBtX3ByZXZpb3VzVVJMID0gV1RGTW92ZShtX3VybCk7CiAgICAgbV91cmwgPSByZXF1ZXN0
LnVybCgpOwogCi0gICAgaWYgKCFtX3Nob3VsZEZvbGxvd1JlZGlyZWN0cykgeworICAgIGlmICht
X29wdGlvbnMucmVkaXJlY3QgIT0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93KSB7CiAg
ICAgICAgIGhhbmRsZXIocmV0dXJuRXJyb3IoQVNDSUlMaXRlcmFsKCJMb2FkIHBhcmFtZXRlcnMg
ZG8gbm90IGFsbG93IGZvbGxvd2luZyByZWRpcmVjdGlvbnMiKSkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMTE0LDcgKzEyMyw3IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjb250
aW51ZUNoZWNraW5nUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBWYWxpCiAgICAg
aWYgKGF1dG8qIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IHRoaXMtPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpKSB7CiAgICAgICAgIGlmIChpc1JlZGlyZWN0ZWQoKSkgewogICAgICAgICAgICAgVVJM
IHVybCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgICAgICAgICBhdXRvIHR5cGUgPSBtX21vZGUgPT0g
RmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5z
ZWN1cmVSZXF1ZXN0VHlwZTo6TmF2aWdhdGlvbiA6IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5z
ZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZDsKKyAgICAgICAgICAgIGF1dG8gdHlwZSA9IG1fb3B0aW9u
cy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgPyBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Ok5hdmlnYXRpb24gOiBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQ7CiAgICAgICAgICAgICBjb250ZW50U2Vj
dXJpdHlQb2xpY3ktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZCh1cmwsIHR5cGUpOwog
ICAgICAgICAgICAgaWYgKHVybCAhPSByZXF1ZXN0LnVybCgpKQogICAgICAgICAgICAgICAgIHJl
cXVlc3Quc2V0VVJMKHVybCk7CkBAIC0xMjUsMTIgKzEzNCwxNSBAQCB2b2lkIE5ldHdvcmtMb2Fk
Q2hlY2tlcjo6Y29udGludWVDaGVja2luZ1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgVmFsaQogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKG1fb3B0aW9ucy5jcmVkZW50aWFs
cyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKQorICAgICAgICBtX3N0
b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gIChtX2lzU2FtZU9yaWdpblJlcXVlc3QgJiYgbV9vcmln
aW4tPmNhblJlcXVlc3QocmVxdWVzdC51cmwoKSkpID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6
OlVzZSA6IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKKwogICAgIGlmIChkb2Vz
Tm90TmVlZENPUlNDaGVjayhyZXF1ZXN0LnVybCgpKSkgewogICAgICAgICBoYW5kbGVyKFdURk1v
dmUocmVxdWVzdCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fbW9kZSA9
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4pIHsKKyAgICBpZiAobV9vcHRpb25zLm1v
ZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luKSB7CiAgICAgICAgIGhhbmRsZXIo
cmV0dXJuRXJyb3IoQVNDSUlMaXRlcmFsKCJTYW1lT3JpZ2luIG1vZGUgZG9lcyBub3QgYWxsb3cg
Y3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIikpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE0
Niw3ICsxNTgsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y29udGludWVDaGVja2luZ1Jl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVmFsaQogCiB2b2lkIE5ldHdvcmtMb2Fk
Q2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBWYWxp
ZGF0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKG1fbW9kZSA9PSBGZXRjaE9w
dGlvbnM6Ok1vZGU6OkNvcnMpOworICAgIEFTU0VSVChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9w
dGlvbnM6Ok1vZGU6OkNvcnMpOwogCiAgICAgLy8gRXhjZXB0IGluIGNhc2Ugd2hlcmUgcHJlZmxp
Z2h0IGlzIG5lZWRlZCwgbG9hZGluZyBzaG91bGQgYmUgYWJsZSB0byBjb250aW51ZSBvbiBpdHMg
b3duLgogICAgIGlmIChtX2lzU2ltcGxlUmVxdWVzdCAmJiBpc1NpbXBsZUNyb3NzT3JpZ2luQWNj
ZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJz
KSkgewpAQCAtMTU5LDcgKzE3MSw3IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NP
UlNSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGlkYXRpb25ICiAKIHZvaWQg
TmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBWYWxpZGF0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgQVNT
RVJUKG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOworICAgIEFTU0VSVChtX29w
dGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOwogICAgIEFTU0VSVChpc1Jl
ZGlyZWN0ZWQoKSk7CiAKICAgICAvLyBGb3JjZSBhbnkgc3Vic2VxdWVudCByZXF1ZXN0IHRvIHVz
ZSB0aGVzZSBjaGVja3MuCkBAIC0xODQsNyArMTk2LDcgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNr
ZXI6OmNoZWNrQ09SU1JlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFYKIAogdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxp
Z2h0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGlkYXRpb25IYW5kbGVyJiYgaGFuZGxl
cikKIHsKLSAgICBBU1NFUlQobV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7Cisg
ICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7CiAK
ICAgICBtX2lzU2ltcGxlUmVxdWVzdCA9IGZhbHNlOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cHJvYmFibHkgcGFydGl0aW9uIHByZWZsaWdodCByZXN1bHQgY2FjaGUgYnkgc2Vzc2lvbiBJRC4K
QEAgLTIyMyw3ICsyMzUsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVx
dWVzdFdpdGhQcmVmbGlnaHQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdAogCiBib29sIE5ldHdv
cmtMb2FkQ2hlY2tlcjo6ZG9lc05vdE5lZWRDT1JTQ2hlY2soY29uc3QgVVJMJiB1cmwpIGNvbnN0
CiB7Ci0gICAgaWYgKG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycyB8fCBtX21v
ZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkKKyAgICBpZiAobV9vcHRpb25zLm1v
ZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMgfHwgbV9vcHRpb25zLm1vZGUgPT0gRmV0
Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBy
ZXR1cm4gbV9pc1NhbWVPcmlnaW5SZXF1ZXN0ICYmIG1fb3JpZ2luLT5jYW5SZXF1ZXN0KHVybCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIu
aAppbmRleCAwMzJkNWY0Mzg3M2RjZWViY2NlZjQyZjM1NTlmYzU5ZTJjNWY2NGUwLi42YzFjZTU1
ZjVhZWY0OThlZmMyNWRkYWUxY2FiYjdlZTdlNmQwYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAgLTQyLDkgKzQyLDkgQEAg
Y2xhc3MgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOwogCiBjbGFzcyBOZXR3b3JrTG9hZENo
ZWNrZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrTG9hZENoZWNrZXI+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPE5ldHdvcmtMb2FkQ2hlY2tlcj4gY3JlYXRlKFdlYkNvcmU6OkZldGNo
T3B0aW9uczo6TW9kZSBtb2RlLCBib29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cywgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsSGVhZGVy
cywgV2ViQ29yZTo6VVJMJiYgdXJsLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
c291cmNlT3JpZ2luKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0xvYWRDaGVja2VyPiBjcmVhdGUo
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxIZWFkZXJzLCBXZWJDb3JlOjpVUkwm
JiB1cmwsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4pCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrTG9hZENoZWNrZXIgeyBt
b2RlLCBzaG91bGRGb2xsb3dSZWRpcmVjdHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzZXNz
aW9uSUQsIFdURk1vdmUob3JpZ2luYWxIZWFkZXJzKSwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHNv
dXJjZU9yaWdpbikgfSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtMb2Fk
Q2hlY2tlciB7IFdURk1vdmUob3B0aW9ucyksIHNlc3Npb25JRCwgV1RGTW92ZShvcmlnaW5hbEhl
YWRlcnMpLCBXVEZNb3ZlKHVybCksIFdURk1vdmUoc291cmNlT3JpZ2luKSB9KTsKICAgICB9CiAg
ICAgfk5ldHdvcmtMb2FkQ2hlY2tlcigpOwogCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAg
ICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7IH0KIAogcHJpdmF0
ZToKLSAgICBOZXR3b3JrTG9hZENoZWNrZXIoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2RlLCBi
b29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFdlYkNvcmU6OlVS
TCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYpOworICAgIE5ldHdvcmtMb2Fk
Q2hlY2tlcihXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6
OkhUVFBIZWFkZXJNYXAmJiwgV2ViQ29yZTo6VVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4mJik7CiAKICAgICBXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kqIGNvbnRl
bnRTZWN1cml0eVBvbGljeSgpIGNvbnN0OwogICAgIGJvb2wgaXNDaGVja2luZygpIGNvbnN0IHsg
cmV0dXJuICEhbV9jb3JzUHJlZmxpZ2h0Q2hlY2tlcjsgfQpAQCAtODcsOCArODcsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpCbG9ja2Vk
U3RhdHVzJik+JiYpOwogI2VuZGlmCiAKLSAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Ok1vZGUg
bV9tb2RlOwotICAgIGJvb2wgbV9zaG91bGRGb2xsb3dSZWRpcmVjdHM7CisgICAgV2ViQ29yZTo6
RmV0Y2hPcHRpb25zIG1fb3B0aW9uczsKICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vz
c2lvbklEOwogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNw
cAppbmRleCAyM2I4MTIzYmU2OWJhYzhkYjM4ZTg1ZTI4Yzk1MGQ5Y2ZiMjQ2ZDQyLi43OWM4Mjdj
NDg3NTNlMzhiMjY4NzUxMjJjOTZiYWU5MjQyYWU2OTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcApAQCAtODcsMTAgKzg3LDEwIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGJvb2w+KHNvdXJjZU9yaWdpbik7CiAgICAgaWYgKHNvdXJjZU9yaWdp
bikKLSAgICAgICAgZW5jb2RlciA8PCBzb3VyY2VPcmlnaW4tPmRhdGEoKTsKLSAgICBlbmNvZGVy
LmVuY29kZUVudW0obW9kZSk7Ci0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRlc3RpbmF0aW9uKTsK
KyAgICAgICAgZW5jb2RlciA8PCAqc291cmNlT3JpZ2luOworICAgIGVuY29kZXIgPDwgb3B0aW9u
czsKICAgICBlbmNvZGVyIDw8IGNzcFJlc3BvbnNlSGVhZGVyczsKKyAgICBlbmNvZGVyIDw8IG9y
aWdpbmFsUmVxdWVzdEhlYWRlcnM7CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQog
ICAgIGVuY29kZXIgPDwgbWFpbkRvY3VtZW50VVJMOwpAQCAtMTcxLDE5ICsxNzEsMjEgQEAgYm9v
bCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgTmV0d29ya1Jlc291cmMKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1NvdXJjZU9y
aWdpbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaGFzU291cmNlT3JpZ2luKSB7
Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRhPiBzb3VyY2VPcmlnaW5E
YXRhOwotICAgICAgICBkZWNvZGVyID4+IHNvdXJjZU9yaWdpbkRhdGE7Ci0gICAgICAgIGlmICgh
c291cmNlT3JpZ2luRGF0YSkKKyAgICAgICAgcmVzdWx0LnNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGlmICghcmVzdWx0LnNvdXJjZU9yaWdp
bikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgQVNTRVJUKCFzb3VyY2VPcmln
aW5EYXRhLT5pc0VtcHR5KCkpOwotICAgICAgICByZXN1bHQuc291cmNlT3JpZ2luID0gc291cmNl
T3JpZ2luRGF0YS0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICB9Ci0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUVudW0ocmVzdWx0Lm1vZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmRlc3RpbmF0aW9uKSkKKworICAgIHN0ZDo6b3B0aW9u
YWw8RmV0Y2hPcHRpb25zPiBvcHRpb25zOworICAgIGRlY29kZXIgPj4gb3B0aW9uczsKKyAgICBp
ZiAoIW9wdGlvbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQub3B0aW9ucyA9
ICpvcHRpb25zOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY3NwUmVzcG9uc2VI
ZWFkZXJzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm1haW5Eb2N1bWVudFVSTCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKaW5kZXggOTY0
ZmQwNTFkNGM1MDA2MTM2MzBmNmE0YjYxZjk3ZTRmM2E0Nzk1NC4uNzQyOTBjZTQ4MThmZjFjMTFi
NDE3Mzg2NTEyNTI5NTE2MTQyNWJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtNTYs
OSArNTYsOSBAQCBwdWJsaWM6CiAgICAgU2Vjb25kcyBtYXhpbXVtQnVmZmVyaW5nVGltZTsKICAg
ICBWZWN0b3I8U3RyaW5nPiBkZXJpdmVkQ2FjaGVkRGF0YVR5cGVzVG9SZXRyaWV2ZTsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNvdXJjZU9yaWdpbjsKLSAgICBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZTsKLSAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uIGRlc3RpbmF0aW9uOworICAgIFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25z
OwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzPiBjc3BSZXNwb25zZUhlYWRlcnM7CisgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1h
cCBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwogICAgIGJvb2wgc2hvdWxkUmVzdHJpY3RIVFRQUmVz
cG9uc2VBY2Nlc3MgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcAppbmRleCA3OGIwNjZmNGUwN2MzNGMzZmY1ZjQ2NWQ1MmZjNmMyOWI1OTkzZWM3
Li5mNmI1ZDc5NDkyZTlmZTIyYjUxMjU4ZGI1NDE4OThmYzhiY2JmMmNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC00NzEsNyArNDcxLDcgQEAgUmVzb3VyY2VSZXNwb25zZSBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OnNhbml0aXplUmVzcG9uc2VJZlBvc3NpYmxlKFJlc291cmNlUmVzcG8KICAgICAgICAgICAg
IC8vIFdlIHJlZHVjZSBmaWx0ZXJpbmcgd2hlbiBpdCB3b3VsZCBvdGhlcndpc2UgYmUgdmlzaWJs
ZSB0byBzY3JpcHRzLgogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgcmVzcG9u
c2UgdGFpbnRpbmcgb25jZSBjb21wdXRlZCBpbiBOZXR3b3JrIFByb2Nlc3MuCiAgICAgICAgICAg
ICBib29sIGlzU2FtZU9yaWdpbiA9IG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gPyBtX3BhcmFt
ZXRlcnMuc291cmNlT3JpZ2luLT5jYW5SZXF1ZXN0KHJlc3BvbnNlLnVybCgpKSA6IHByb3RvY29s
SG9zdEFuZFBvcnRBcmVFcXVhbChyZXNwb25zZS51cmwoKSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3Qu
dXJsKCkpOwotICAgICAgICAgICAgaWYgKGlzU2FtZU9yaWdpbiAmJiBtX3BhcmFtZXRlcnMuZGVz
dGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1wdHlTdHJpbmcpCisgICAg
ICAgICAgICBpZiAoaXNTYW1lT3JpZ2luICYmIG1fcGFyYW1ldGVycy5vcHRpb25zLmRlc3RpbmF0
aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtcHR5U3RyaW5nKQogICAgICAgICAg
ICAgICAgIHR5cGUgPSBSZXNvdXJjZVJlc3BvbnNlOjpTYW5pdGl6YXRpb25UeXBlOjpSZW1vdmVD
b29raWVzOwogICAgICAgICB9CiAgICAgICAgIHJlc3BvbnNlLnNhbml0aXplSFRUUEhlYWRlckZp
ZWxkcyh0eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGlu
Z0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKaW5k
ZXggMjVmOTYzYTIwMWNhMjFiOWRhYTY3MzkxZWRjZmI3OGMzNzEwYzlhMy4uNzgzNTcyOGVlOGZh
MTZhYjM2NWExM2QwZjkxMWE4NDdjOTY5ZGExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTM4LDExICszOCwxMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVBpbmdMb2FkOjpQaW5nTG9hZChOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIEhUVFBIZWFkZXJNYXAmJiBvcmln
aW5hbFJlcXVlc3RIZWFkZXJzLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVz
b3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK1BpbmdMb2FkOjpQaW5nTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZUVycm9y
JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIDog
bV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCiAgICAgLCBtX2NvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQogICAgICwgbV90aW1lb3V0VGltZXIoKnRo
aXMsICZQaW5nTG9hZDo6dGltZW91dFRpbWVyRmlyZWQpCi0gICAgLCBtX25ldHdvcmtMb2FkQ2hl
Y2tlcihOZXR3b3JrTG9hZENoZWNrZXI6OmNyZWF0ZShtX3BhcmFtZXRlcnMubW9kZSwgbV9wYXJh
bWV0ZXJzLnNob3VsZEZvbGxvd1JlZGlyZWN0cywgbV9wYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCBXVEZNb3ZlKG9yaWdpbmFsUmVxdWVz
dEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFtZXRl
cnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSkpCisgICAgLCBtX25ldHdvcmtMb2FkQ2hlY2tlcihO
ZXR3b3JrTG9hZENoZWNrZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0
aW9uc30sIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIFdURk1vdmUobV9wYXJhbWV0ZXJzLm9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBt
X3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSkpCiB7CiAKICAgICBpZiAobV9wYXJh
bWV0ZXJzLmNzcFJlc3BvbnNlSGVhZGVycykKQEAgLTkxLDkgKzkxLDggQEAgdm9pZCBQaW5nTG9h
ZDo6bG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgUGluZ0xvYWQ6OndpbGxQZXJmb3JtSFRUUFJlZGly
ZWN0aW9uKFJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFBpbmdMb2FkOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihSZXNvdXJjZVJl
c3BvbnNlJiYsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlZGlyZWN0Q29tcGxldGlvbkhh
bmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLQogICAgIG1fbmV0d29ya0xvYWRDaGVja2Vy
LT5jaGVja1JlZGlyZWN0aW9uKFdURk1vdmUocmVxdWVzdCksIFt0aGlzLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgcmVzdWx0KSB7CiAgICAg
ICAgIGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5n
TG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCmluZGV4IGEx
ZWY2ZTczMTdmZTU1ZjZjNWRjZjUzYWM3NTUzYTljYjA3Yzk2YWYuLmQxOTQ1OTJjZWE2ZWUyNGVj
MzE2OTkxMzNkYzZiNTZlNjcwZmE0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUGluZ0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Bp
bmdMb2FkLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyOwogCiBj
bGFzcyBQaW5nTG9hZCBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICBQaW5nTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBXZWJD
b3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpOworICAgIFBpbmdMb2FkKE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzJiYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYm
KTsKICAgICAKIHByaXZhdGU6CiAgICAgflBpbmdMb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApp
bmRleCBhN2M0YzFhNTBmMTQ4ZmM0MmE4YjMzOGNkN2Q3YTVjNjQ5MjYxZjI5Li41YzRlY2Q4YjQ2
ZDhhM2E2MDMwY2E2NDc3NTFmYzc0NzNiNzE3Zjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAg
LTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSURhdGEu
aCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCisjaW5jbHVkZSAiTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKQEAgLTM3NSwxNiArMzc3LDIwIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChXZWJQYWdlR3Jv
dXBQcm94eSogcGFnZUdyb3VwLCBiCiB2b2lkIEluamVjdGVkQnVuZGxlOjphZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKICAgICBTZWN1cml0eVBvbGljeTo6YWRk
T3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJp
bmcoc291cmNlT3JpZ2luKS5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25I
b3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpBZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeSB7IHNvdXJjZU9yaWdpbiwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGlu
YXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyB9LCAwKTsKKwogfQogCiB2b2lk
IEluamVjdGVkQnVuZGxlOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBT
dHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucykKIHsKICAgICBTZWN1cml0eVBvbGljeTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc291cmNlT3JpZ2luKS5nZXQo
KSwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpSZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSB7IHNv
dXJjZU9yaWdpbiwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucyB9LCAwKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVz
ZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCkKIHsKICAgICBTZWN1cml0eVBvbGljeTo6cmVzZXRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlz
dHMgeyB9LCAwKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vbCBlbmFi
bGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGQwNTYzMTk0YjY1YTk2N2Q2OTRiYmQxZDZjNTFjMmE0ODY0
ZDBlYTkuLmQxZmZhNjNiNDQ5YmU3YjVkOTI1Y2M4MWEwZTgwN2FhNTk1NmQ2ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVs
ZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogICAgIGxv
YWRQYXJhbWV0ZXJzLm5lZWRzQ2VydGlmaWNhdGVJbmZvID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxk
SW5jbHVkZUNlcnRpZmljYXRlSW5mbygpOwogICAgIGxvYWRQYXJhbWV0ZXJzLm1heGltdW1CdWZm
ZXJpbmdUaW1lID0gbWF4aW11bUJ1ZmZlcmluZ1RpbWU7CiAgICAgbG9hZFBhcmFtZXRlcnMuZGVy
aXZlZENhY2hlZERhdGFUeXBlc1RvUmV0cmlldmUgPSByZXNvdXJjZUxvYWRlci5vcHRpb25zKCku
ZGVyaXZlZENhY2hlZERhdGFUeXBlc1RvUmV0cmlldmU7Ci0gICAgbG9hZFBhcmFtZXRlcnMuZGVz
dGluYXRpb24gPSByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkuZGVzdGluYXRpb247CisgICAgbG9h
ZFBhcmFtZXRlcnMub3B0aW9ucyA9IHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKTsKIAogICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgYWxzbyBzYW5pdGl6ZSByZWRpcmVjdCByZXNwb25zZSBmb3IgbmF2
aWdhdGlvbnMuCiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VB
Y2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlc3RyaWN0
ZWRIVFRQUmVzcG9uc2VBY2Nlc3MoKSAmJiByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSAh
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlOwpAQCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXIm
IGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3Qod2ViRnJhbWUgPyB3ZWJGcmFtZS0+Y29yZUZyYW1lKCkgOiBudWxscHRyKTsKICAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVzdHJpY3RlZEhUVFBSZXNwb25z
ZUFjY2VzcygpOwogICAgIC8vIEZJWE1FOiBVc2UgdGhlIHByb3BlciBkZXN0aW5hdGlvbiBvbmNl
IGFsbCBmZXRjaCBvcHRpb25zIGFyZSBwYXNzZWQuCi0gICAgbG9hZFBhcmFtZXRlcnMuZGVzdGlu
YXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbXB0eVN0cmluZzsKKyAgICBsb2Fk
UGFyYW1ldGVycy5vcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6RW1wdHlTdHJpbmc7CiAKICAgICBkYXRhLnNocmluaygwKTsKIApAQCAtNDcwLDggKzQ3MCw4
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvCiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3Jp
Z2luID0gJmRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNl
c3Npb25JRCA9IGZyYW1lLnBhZ2UoKSA/IGZyYW1lLnBhZ2UoKS0+c2Vzc2lvbklEKCkgOiBQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5ID0gb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6
OkNyZWRlbnRpYWxzOjpPbWl0ID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIDog
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZTsKLSAgICBsb2FkUGFyYW1ldGVycy5tb2RlID0g
b3B0aW9ucy5tb2RlOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZEZvbGxvd1JlZGlyZWN0cyA9
IG9wdGlvbnMucmVkaXJlY3QgPT0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OworICAg
IGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOworICAgIGxvYWRQYXJhbWV0ZXJzLm9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCZmcmFtZSk7CiAgICAgbG9hZFBh
cmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3Mo
KTsKICAgICBpZiAoIWRvY3VtZW50LT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3koKSkgewpAQCAtNDkyLDcgKzQ5Miw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
CiAgICAgaWYgKGNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICBtX3BpbmdMb2FkQ29tcGxldGlv
bkhhbmRsZXJzLmFkZChsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkxvYWRQaW5nKFdURk1vdmUobG9hZFBhcmFtZXRlcnMpLCBv
cmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyB7IGxvYWRQYXJhbWV0
ZXJzIH0sIDApOwogfQogCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQaW5nTG9h
ZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQpAQCAtNTMyLDcgKzUzMiw3IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIGNvbnN0
IFdlYkNvcmU6OlVSCiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNv
bm5lY3RPbmx5OjpZZXM7CiAgICAgcGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25z
ZUFjY2VzcyA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVzdHJp
Y3RlZEhUVFBSZXNwb25zZUFjY2VzcygpOwogICAgIC8vIEZJWE1FOiBVc2UgdGhlIHByb3BlciBk
ZXN0aW5hdGlvbiBvbmNlIGFsbCBmZXRjaCBvcHRpb25zIGFyZSBwYXNzZWQuCi0gICAgcGFyYW1l
dGVycy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtcHR5U3RyaW5n
OworICAgIHBhcmFtZXRlcnMub3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OkVtcHR5U3RyaW5nOwogCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVjb25uZWN0VG8ocHJlY29ubmVjdGlv
bklkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVycykpLCAwKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337657</attachid>
            <date>2018-04-10 17:06:23 -0700</date>
            <delta_ts>2018-04-10 17:17:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184374-20180410170622.patch</filename>
            <type>text/plain</type>
            <size>33435</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVjYWNjNWE2YTg0ZjQw
MGEyNDI4NTkzODI4NTYwNTFkY2NmZWFlYi4uNGZkNThjYzM3ZDZkM2YwMDFjNWVjZGE0NjA3ZWJm
YmMxM2E3Y2U3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA0LTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIEZldGNoT3B0aW9u
cyBhbmQgU2VjdXJpdHlPcmlnaW4gYXMgbG9hZCBwYXJhbWV0ZXJzIGZyb20gV2ViUHJvY2VzcyB0
byBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0Mzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNlY3VyaXR5T3JpZ2luIGVuY29kZS9kZWNvZGUgcm91
dGluZXMuCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisKIDIwMTgtMDQtMTAg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1
aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggOTU5ZTVlMDk2NWE2ZDg4YmMzN2Q4MjBhM2E0YTJkZmU5YWQx
OTdjYi4uMGI3MmIwYmM2Zjc5Yjc2ZWE4M2JkNDRkNGQ2ZWJlNzZlMGE0ZWFiZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1MiBAQAorMjAxOC0wNC0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUGFzcyBGZXRjaE9wdGlvbnMgYW5kIFNlY3VyaXR5T3JpZ2luIGFz
IGxvYWQgcGFyYW1ldGVycyBmcm9tIFdlYlByb2Nlc3MgdG8gTmV0d29ya1Byb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDM3NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgZnVsbCBGZXRj
aE9wdGlvbnMgcGFyYW1ldGVycyBhcyBwYXJ0IG9mIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLgorICAgICAgICBUaGlzIHdpbGwgYWxsb3cgaGFuZGxpbmcgcmVkaXJlY3Rpb24gbW9kZSBh
cyB3ZWxsIGFzIGNyZWRlbnRpYWxzIGluIGNhc2Ugb2YgY3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9u
cy4KKyAgICAgICAgSW4gY2FzZSBvZiBTYW1lT3JpZ2luIGNyZWRlbnRpYWxzIGFuZCB0aGVyZSBp
cyBhIHJlZGlyZWN0aW9uIGZyb20gc2FtZS1vcmlnaW4gdG8gY3Jvc3Mtb3JpZ2luLAorICAgICAg
ICB3ZSB3aWxsIGJlIGFibGUgdG8gc3RvcCB1c2luZyBjcmVkZW50aWFscyB3aXRob3V0IGdvaW5n
IHRvIFdlYlByb2Nlc3MuCisKKyAgICAgICAgVG8gaGFuZGxlIHByb3Blcmx5IGNyb3NzLW9yaWdp
biBjaGVja3MsIHdlIGhhdmUgdG8gYmUgYWJsZSB0byB1c2UgU2VjdXJpdHlPcmlnaW4gYXMgaW4g
V2ViUHJvY2Vzcy4KKyAgICAgICAgV2UgbWFrZSBXZWJQcm9jZXNzIHNlbmRzIE9yaWdpbiBBY2Nl
c3MgV2hpdGUgbGlzdCBpbmZvcm1hdGlvbiB0byBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgVGhp
cyBhbGxvd3Mgc3VwcG9ydGluZyB0aGUgd2hpdGUgbGlzdCB3aGVuIGRvaW5nIGxvYWRpbmcgaW4g
TmV0d29ya1Byb2Nlc3MuCisgICAgICAgIFRoaXMgb25seSB3b3JrcyBjb25zaXN0ZW50bHkgaWYg
YWxsIFdlYlByb2Nlc3NlcyBzaGFyZSB0aGUgc2FtZSB3aGl0ZWxpc3QuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpO
ZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6
OmNoZWNrUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6
OmNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRD
aGVja2VyOjpjaGVja0NPUlNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRD
aGVja2VyOjpjaGVja0NPUlNSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVmbGlnaHQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmRvZXNOb3ROZWVkQ09SU0NoZWNrIGNvbnN0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
aW5nTG9hZDo6UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6d2lsbFBlcmZv
cm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpyZW1vdmVPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpy
ZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0
ZWd5OjpzdGFydFBpbmdMb2FkKToKKwogMjAxOC0wNC0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIGNvbnN0cnVjdGluZyBhIHNlcnZpY2Ugd29ya2Vy
IFJlZ2lzdHJhdGlvblN0b3JlIGZvciBwcml2YXRlIHNlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5T3JpZ2luLmgKaW5kZXggZGNjMTUyN2M5MTI0OWRmZmU3YTkxOTkxMTNjYWFjOWY2YTEw
ZTRiNC4uOWI3MmQ2NjE5YzZmOGYwM2FlZmE0NTU0MjRkMDYwZWQwYjY4MGFhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaApAQCAtMjA2LDYgKzIwNiw5IEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgU2VjdXJpdHlPcmln
aW4oKTsKICAgICBleHBsaWNpdCBTZWN1cml0eU9yaWdpbihjb25zdCBVUkwmKTsKQEAgLTI0MSw0
ICsyNDQsNTUgQEAgYm9vbCBzaG91bGRUcmVhdEFzUG90ZW50aWFsbHlUcnVzdHdvcnRoeShjb25z
dCBVUkwmKTsKIGJvb2wgb3JpZ2luc01hdGNoKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mKTsKIGJvb2wgb3JpZ2luc01hdGNoKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
KiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qKTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5s
aW5lIHZvaWQgU2VjdXJpdHlPcmlnaW46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgbV9kYXRhOworICAgIGVuY29kZXIgPDwgbV9kb21haW47CisgICAg
ZW5jb2RlciA8PCBtX2ZpbGVQYXRoOworICAgIGVuY29kZXIgPDwgbV9pc1VuaXF1ZTsKKyAgICBl
bmNvZGVyIDw8IG1fdW5pdmVyc2FsQWNjZXNzOworICAgIGVuY29kZXIgPDwgbV9kb21haW5XYXNT
ZXRJbkRPTTsKKyAgICBlbmNvZGVyIDw8IG1fY2FuTG9hZExvY2FsUmVzb3VyY2VzOworICAgIGVu
Y29kZXIuZW5jb2RlRW51bShtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CisgICAgZW5jb2RlciA8
PCBtX2VuZm9yY2VzRmlsZVBhdGhTZXBhcmF0aW9uOworICAgIGVuY29kZXIgPDwgbV9uZWVkc1N0
b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazsKKyAgICBlbmNvZGVyIDw8IG1faXNQb3RlbnRp
YWxseVRydXN0d29ydGh5OworICAgIGVuY29kZXIgPDwgbV9pc0xvY2FsOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBpbmxpbmUgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9y
aWdpbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTZWN1
cml0eU9yaWdpbkRhdGE+IGRhdGE7CisgICAgZGVjb2RlciA+PiBkYXRhOworICAgIGlmICghZGF0
YSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIG9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoZGF0YS0+cHJvdG9jb2wsIGRhdGEtPmhvc3QsIGRhdGEtPnBvcnQpOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1fZG9tYWluKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1fZmlsZVBhdGgp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdp
bi0+bV9pc1VuaXF1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUob3JpZ2luLT5tX3VuaXZlcnNhbEFjY2VzcykpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3JpZ2luLT5tX2RvbWFpbldhc1NldEluRE9N
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmln
aW4tPm1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ob3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3Jp
Z2luLT5tX2VuZm9yY2VzRmlsZVBhdGhTZXBhcmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1fbmVlZHNTdG9yYWdlQWNjZXNz
RnJvbUZpbGVVUkxzUXVpcmspKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG9yaWdpbi0+bV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdpbi0+bV9pc0xv
Y2FsKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gV1RGTW92ZShvcmln
aW4pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGZhNmZlYWNkNWQyOGVhYTI5MjAyOWRhMGE3M2I3ZTM1NjZmN2EzYjUuLmU2ZGVk
NDIwYTkxMTA4NjljMTIzOWZhZmE0ZDhhZTY4M2Q1NTIxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNv
b2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5UG9saWN5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTI0MiwxNCArMjQzLDE0IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnBlcmZvcm1TeW5jaHJvbm91c0xvYWQoY29uc3QgTmV0d29ya1Jlc291
cmNlCiAgICAgbG9hZGVyLT5zdGFydCgpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIGxvYWRQ
YXJhbWV0ZXJzLCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycykKK3ZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIg
PSBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyXSAoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7CiAgICAgICAgIGRpZEZpbmlzaFBp
bmdMb2FkKGlkZW50aWZpZXIsIGVycm9yLCByZXNwb25zZSk7CiAgICAgfTsKIAogICAgIC8vIFBp
bmdMb2FkIG1hbmFnZXMgaXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRz
IHB1cnBvc2UgaGFzIGJlZW4gZnVsZmlsbGVkLgotICAgIG5ldyBQaW5nTG9hZChXVEZNb3ZlKGxv
YWRQYXJhbWV0ZXJzKSwgV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIG5ldyBQaW5nTG9hZChXVEZNb3ZlKGxvYWRQYXJhbWV0
ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKQEAgLTUwNyw0ICs1MDgsMTkgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZShQQUw6
OlMKICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3sKKyAgICBTZWN1cml0eVBv
bGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUZyb21TdHJpbmcoc291cmNlT3JpZ2luKS5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVz
dGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Cit9CisKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKQoreworICAgIFNlY3VyaXR5UG9saWN5OjpyZW1vdmVPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VP
cmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCkKK3sKKyAgICBTZWN1cml0eVBv
bGljeTo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDA3NDgzOGVhMjhkOGIwN2QyZTA4
YmZhYzM0MmM2OWY0YTQ0NmUyNTYuLjI4ZjUxMDcwYmU1NzQ2M2MwNzMyZjc0MThhMGQyMDgxMWUz
NDhiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgc2NoZWR1bGVSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQoY29uc3Qg
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBSZWY8TWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHk+
JiYpOwotICAgIHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOworICAgIHZv
aWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBw
cmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50NjRf
dCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYpOwogCkBA
IC0xNDAsNiArMTQwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNz
Rm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCk7CiAgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yQWxsRnJhbWVzT25QYWdlKFBBTDo6
U2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQpOwogCisgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCByZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMoKTsKKwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAog
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxOZXR3b3JrU29ja2V0U3RyZWFtPj4gbV9uZXR3
b3JrU29ja2V0U3RyZWFtczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDE2M2ZmMDM0MDIyZTQ3MTdkMTcxYmZlOGE1YWI4NjZjN2RmYWQyOWQuLjAyNzM4
MjFlZTQ5NTY2MDE1OGMzNTY0M2JhNzVkZDNmYWY2ZTY0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBTY2hl
ZHVsZVJlc291cmNlTG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJl
c291cmNlTG9hZFBhcmFtZXRlcnMpCiAgICAgUGVyZm9ybVN5bmNocm9ub3VzTG9hZChXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpIC0+
IChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4gZGF0YSkgRGVsYXllZAotICAgIExvYWRQaW5nKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycywg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKQorICAgIExvYWRQ
aW5nKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFy
YW1ldGVycykKICAgICBSZW1vdmVMb2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyKQogICAgIFNldERlZmVyc0xvYWRpbmcodWludDY0X3QgcmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQpA
QCAtNjAsNCArNjAsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQp
OwogICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQpOworCisgICAgQWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoU3RyaW5nIHNvdXJjZU9yaWdpbiwgU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIFN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOworICAgIFJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFN0cmluZyBzb3VyY2VP
cmlnaW4sIFN0cmluZyBkZXN0aW5hdGlvblByb3RvY29sLCBTdHJpbmcgZGVzdGluYXRpb25Ib3N0
LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBSZXNldE9yaWdpbkFjY2Vz
c1doaXRlbGlzdHMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA4MjU0OWVlYWY0NDc5OGMxNjFjNTM5Zjg3YWQw
OGI3M2NhNjdlY2JiLi5iNTBhYjEwZTEyMmZhNWQwNGQxZjU3YjMyZTU3NzA4MWM1NzQ3ZTQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuY3BwCkBAIC00MSwxNyArNDEsMjYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tl
cihXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwgYm9vbCBzaG91bGRGb2xsb3dSZWRp
cmVjdHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAm
JiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4mJiBzb3VyY2VPcmlnaW4pCi0gICAgOiBtX21vZGUobW9kZSkKLSAgICAsIG1fc2hvdWxkRm9s
bG93UmVkaXJlY3RzKHNob3VsZEZvbGxvd1JlZGlyZWN0cykKLSAgICAsIG1fc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3koc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCitOZXR3b3JrTG9hZENoZWNrZXI6
Ok5ldHdvcmtMb2FkQ2hlY2tlcihXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJl
cXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VP
cmlnaW4pCisgICAgOiBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKICAgICAsIG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKICAgICAsIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyhXVEZNb3ZlKG9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMpKQogICAgICwgbV91cmwoV1RGTW92ZSh1cmwpKQogICAgICwg
bV9vcmlnaW4oV1RGTW92ZShzb3VyY2VPcmlnaW4pKQogewotICAgIGlmIChtX21vZGUgPT0gRmV0
Y2hPcHRpb25zOjpNb2RlOjpDb3JzIHx8IG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNh
bWVPcmlnaW4pCi0gICAgICAgIG1faXNTYW1lT3JpZ2luUmVxdWVzdCA9IG1fb3JpZ2luLT5jYW5S
ZXF1ZXN0KG1fdXJsKTsKKyAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpDb3JzIHx8IG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9y
aWdpbikKKyAgICAgICAgbV9pc1NhbWVPcmlnaW5SZXF1ZXN0ID0gbV91cmwucHJvdG9jb2xJc0Rh
dGEoKSB8fCBtX3VybC5wcm90b2NvbElzQmxvYigpIHx8IG1fb3JpZ2luLT5jYW5SZXF1ZXN0KG1f
dXJsKTsKKyAgICBzd2l0Y2ggKG9wdGlvbnMuY3JlZGVudGlhbHMpIHsKKyAgICBjYXNlIEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU6CisgICAgICAgIG1fc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW46CisgICAgICAg
IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBtX2lzU2FtZU9yaWdpblJlcXVlc3QgPyBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlIDogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90
VXNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
Ok9taXQ6CisgICAgICAgIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KIH0KIAogTmV0d29y
a0xvYWRDaGVja2VyOjp+TmV0d29ya0xvYWRDaGVja2VyKCkgPSBkZWZhdWx0OwpAQCAtNzcsNyAr
ODYsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tSZWRpcmVjdGlvbihXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlcwogICAgIG1fcHJldmlvdXNVUkwgPSBXVEZN
b3ZlKG1fdXJsKTsKICAgICBtX3VybCA9IHJlcXVlc3QudXJsKCk7CiAKLSAgICBpZiAoIW1fc2hv
dWxkRm9sbG93UmVkaXJlY3RzKSB7CisgICAgaWYgKG1fb3B0aW9ucy5yZWRpcmVjdCAhPSBGZXRj
aE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3cpIHsKICAgICAgICAgaGFuZGxlcihyZXR1cm5FcnJv
cihBU0NJSUxpdGVyYWwoIkxvYWQgcGFyYW1ldGVycyBkbyBub3QgYWxsb3cgZm9sbG93aW5nIHJl
ZGlyZWN0aW9ucyIpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNDUsNyArMTU0LDcg
QEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGkKICAgICBpZiAoYXV0byogY29udGVudFNlY3VyaXR5
UG9saWN5ID0gdGhpcy0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkpIHsKICAgICAgICAgaWYgKGlz
UmVkaXJlY3RlZCgpKSB7CiAgICAgICAgICAgICBVUkwgdXJsID0gcmVxdWVzdC51cmwoKTsKLSAg
ICAgICAgICAgIGF1dG8gdHlwZSA9IG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmln
YXRlID8gQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpOYXZpZ2F0
aW9uIDogQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkOwor
ICAgICAgICAgICAgYXV0byB0eXBlID0gbV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpOYXZpZ2F0ZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlw
ZTo6TmF2aWdhdGlvbiA6IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlw
ZTo6TG9hZDsKICAgICAgICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS0+dXBncmFkZUluc2Vj
dXJlUmVxdWVzdElmTmVlZGVkKHVybCwgdHlwZSk7CiAgICAgICAgICAgICBpZiAodXJsICE9IHJl
cXVlc3QudXJsKCkpCiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKQEAgLTE1
NiwxMiArMTY1LDE1IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjb250aW51ZUNoZWNraW5n
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBWYWxpCiAgICAgICAgIH0KICAgICB9
CiAKKyAgICBpZiAobV9vcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6OlNhbWVPcmlnaW4pCisgICAgICAgIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSAg
KG1faXNTYW1lT3JpZ2luUmVxdWVzdCAmJiBtX29yaWdpbi0+Y2FuUmVxdWVzdChyZXF1ZXN0LnVy
bCgpKSkgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlIDogU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3k6OkRvTm90VXNlOworCiAgICAgaWYgKGRvZXNOb3ROZWVkQ09SU0NoZWNrKHJlcXVlc3Qu
dXJsKCkpKSB7CiAgICAgICAgIGhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAobV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6U2Ft
ZU9yaWdpbikgeworICAgIGlmIChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
OlNhbWVPcmlnaW4pIHsKICAgICAgICAgaGFuZGxlcihyZXR1cm5FcnJvcihBU0NJSUxpdGVyYWwo
IlNhbWVPcmlnaW4gbW9kZSBkb2VzIG5vdCBhbGxvdyBjcm9zcyBvcmlnaW4gcmVxdWVzdHMiKSkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTc3LDcgKzE4OSw3IEBAIHZvaWQgTmV0d29y
a0xvYWRDaGVja2VyOjpjb250aW51ZUNoZWNraW5nUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBWYWxpCiAKIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGlkYXRpb25IYW5kbGVyJiYgaGFuZGxlcikK
IHsKLSAgICBBU1NFUlQobV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7CisgICAg
QVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7CiAKICAg
ICAvLyBFeGNlcHQgaW4gY2FzZSB3aGVyZSBwcmVmbGlnaHQgaXMgbmVlZGVkLCBsb2FkaW5nIHNo
b3VsZCBiZSBhYmxlIHRvIGNvbnRpbnVlIG9uIGl0cyBvd24uCiAgICAgaWYgKG1faXNTaW1wbGVS
ZXF1ZXN0ICYmIGlzU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KHJlcXVlc3QuaHR0cE1l
dGhvZCgpLCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMpKSB7CkBAIC0xOTAsNyArMjAyLDcgQEAg
dm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgVmFsaWRhdGlvbkgKIAogdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNr
Q09SU1JlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGlkYXRp
b25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBBU1NFUlQobV9tb2RlID09IEZldGNoT3B0aW9u
czo6TW9kZTo6Q29ycyk7CisgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9u
czo6TW9kZTo6Q29ycyk7CiAgICAgQVNTRVJUKGlzUmVkaXJlY3RlZCgpKTsKIAogICAgIC8vIEZv
cmNlIGFueSBzdWJzZXF1ZW50IHJlcXVlc3QgdG8gdXNlIHRoZXNlIGNoZWNrcy4KQEAgLTIxNSw3
ICsyMjcsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVkaXJlY3RlZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVgogCiB2b2lkIE5ldHdvcmtMb2FkQ2hl
Y2tlcjo6Y2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVmbGlnaHQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgVmFsaWRhdGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAgIEFTU0VSVChtX21vZGUg
PT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICBBU1NFUlQobV9vcHRpb25zLm1vZGUg
PT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKIAogICAgIG1faXNTaW1wbGVSZXF1ZXN0ID0g
ZmFsc2U7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBwYXJ0aXRpb24gcHJlZmxp
Z2h0IHJlc3VsdCBjYWNoZSBieSBzZXNzaW9uIElELgpAQCAtMjU0LDcgKzI2Niw3IEBAIHZvaWQg
TmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZXF1ZXN0V2l0aFByZWZsaWdodChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0CiAKIGJvb2wgTmV0d29ya0xvYWRDaGVja2VyOjpkb2VzTm90TmVl
ZENPUlNDaGVjayhjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBpZiAobV9tb2RlID09IEZl
dGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzIHx8IG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
Ok5hdmlnYXRlKQorICAgIGlmIChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
Ok5vQ29ycyB8fCBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRl
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBtX2lzU2FtZU9yaWdpblJlcXVl
c3QgJiYgbV9vcmlnaW4tPmNhblJlcXVlc3QodXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCmluZGV4IDQwZGE1OTA1YzJiZDk4Yzhk
MzExODA2NTFjYTIxMzk0MTk1MWU2NjYuLjVmYWMzNjM5NmNhODNiZDI3NDNlYTRhZDA4NzE0NmJi
MGJkNzEzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZENoZWNrZXIuaApAQCAtNDIsOSArNDIsOSBAQCBjbGFzcyBOZXR3b3JrQ09SU1ByZWZsaWdo
dENoZWNrZXI7CiAKIGNsYXNzIE5ldHdvcmtMb2FkQ2hlY2tlciA6IHB1YmxpYyBSZWZDb3VudGVk
PE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0xv
YWRDaGVja2VyPiBjcmVhdGUoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2RlIG1vZGUsIGJvb2wg
c2hvdWxkRm9sbG93UmVkaXJlY3RzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxIZWFkZXJzLCBXZWJDb3JlOjpVUkwmJiB1cmwsIFJl
ZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4pCisgICAgc3RhdGlj
IFJlZjxOZXR3b3JrTG9hZENoZWNrZXI+IGNyZWF0ZShXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiBv
cHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAm
JiBvcmlnaW5hbEhlYWRlcnMsIFdlYkNvcmU6OlVSTCYmIHVybCwgUmVmUHRyPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE5ldHdvcmtMb2FkQ2hlY2tlciB7IG1vZGUsIHNob3VsZEZvbGxvd1JlZGlyZWN0
cywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNlc3Npb25JRCwgV1RGTW92ZShvcmlnaW5hbEhl
YWRlcnMpLCBXVEZNb3ZlKHVybCksIFdURk1vdmUoc291cmNlT3JpZ2luKSB9KTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0xvYWRDaGVja2VyIHsgV1RGTW92ZShvcHRpb25z
KSwgc2Vzc2lvbklELCBXVEZNb3ZlKG9yaWdpbmFsSGVhZGVycyksIFdURk1vdmUodXJsKSwgV1RG
TW92ZShzb3VyY2VPcmlnaW4pIH0pOwogICAgIH0KICAgICB+TmV0d29ya0xvYWRDaGVja2VyKCk7
CiAKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTsgfQogCiBwcml2YXRlOgotICAgIE5ldHdvcmtMb2FkQ2hlY2tl
cihXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Ok1vZGUsIGJvb2wgc2hvdWxkRm9sbG93UmVkaXJlY3Rz
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUEFMOjpTZXNzaW9uSUQsIFdlYkNv
cmU6OkhUVFBIZWFkZXJNYXAmJiwgV2ViQ29yZTo6VVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJik7CisgICAgTmV0d29ya0xvYWRDaGVja2VyKFdlYkNvcmU6OkZldGNoT3B0
aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBXZWJDb3Jl
OjpVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmKTsKIAogICAgIFdlYkNv
cmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5KCkgY29uc3Q7
CiAgICAgYm9vbCBpc0NoZWNraW5nKCkgY29uc3QgeyByZXR1cm4gISFtX2NvcnNQcmVmbGlnaHRD
aGVja2VyOyB9CkBAIC04OSw4ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzQ29u
dGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkJsb2NrZWRTdGF0dXMmKT4mJik7CiAjZW5kaWYKIAot
ICAgIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6TW9kZSBtX21vZGU7Ci0gICAgYm9vbCBtX3Nob3Vs
ZEZvbGxvd1JlZGlyZWN0czsKKyAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgbV9vcHRpb25zOwog
ICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IG1fc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3k7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgV2ViQ29yZTo6SFRU
UEhlYWRlck1hcCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnM7IC8vIE5lZWRlZCBmb3IgQ09SUyBj
aGVja3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDIzYjgxMjNiZTY5YmFjOGRi
MzhlODVlMjhjOTUwZDljZmIyNDZkNDIuLjc5YzgyN2M0ODc1M2UzOGIyNjg3NTEyMmM5NmJhZTky
NDJhZTY5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC04NywxMCArODcsMTAg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIAogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4oc291
cmNlT3JpZ2luKTsKICAgICBpZiAoc291cmNlT3JpZ2luKQotICAgICAgICBlbmNvZGVyIDw8IHNv
dXJjZU9yaWdpbi0+ZGF0YSgpOwotICAgIGVuY29kZXIuZW5jb2RlRW51bShtb2RlKTsKLSAgICBl
bmNvZGVyLmVuY29kZUVudW0oZGVzdGluYXRpb24pOworICAgICAgICBlbmNvZGVyIDw8ICpzb3Vy
Y2VPcmlnaW47CisgICAgZW5jb2RlciA8PCBvcHRpb25zOwogICAgIGVuY29kZXIgPDwgY3NwUmVz
cG9uc2VIZWFkZXJzOworICAgIGVuY29kZXIgPDwgb3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsKIAog
I2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgZW5jb2RlciA8PCBtYWluRG9jdW1l
bnRVUkw7CkBAIC0xNzEsMTkgKzE3MSwyMSBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaGFzU291cmNlT3JpZ2luKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmIChoYXNTb3VyY2VPcmlnaW4pIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxT
ZWN1cml0eU9yaWdpbkRhdGE+IHNvdXJjZU9yaWdpbkRhdGE7Ci0gICAgICAgIGRlY29kZXIgPj4g
c291cmNlT3JpZ2luRGF0YTsKLSAgICAgICAgaWYgKCFzb3VyY2VPcmlnaW5EYXRhKQorICAgICAg
ICByZXN1bHQuc291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmRlY29kZShkZWNvZGVyKTsK
KyAgICAgICAgaWYgKCFyZXN1bHQuc291cmNlT3JpZ2luKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBBU1NFUlQoIXNvdXJjZU9yaWdpbkRhdGEtPmlzRW1wdHkoKSk7Ci0gICAg
ICAgIHJlc3VsdC5zb3VyY2VPcmlnaW4gPSBzb3VyY2VPcmlnaW5EYXRhLT5zZWN1cml0eU9yaWdp
bigpOwogICAgIH0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQubW9kZSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQu
ZGVzdGluYXRpb24pKQorCisgICAgc3RkOjpvcHRpb25hbDxGZXRjaE9wdGlvbnM+IG9wdGlvbnM7
CisgICAgZGVjb2RlciA+PiBvcHRpb25zOworICAgIGlmICghb3B0aW9ucykKICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJlc3VsdC5vcHRpb25zID0gKm9wdGlvbnM7CisKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5jc3BSZXNwb25zZUhlYWRlcnMpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQub3JpZ2luYWxSZXF1ZXN0SGVh
ZGVycykpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVO
U0lPTlMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWFpbkRvY3VtZW50VVJMKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuaAppbmRleCA5NjRmZDA1MWQ0YzUwMDYxMzYzMGY2YTRiNjFm
OTdlNGYzYTQ3OTU0Li43NDI5MGNlNDgxOGZmMWMxMWI0MTczODY1MTI1Mjk1MTYxNDI1YmE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCkBAIC01Niw5ICs1Niw5IEBAIHB1YmxpYzoKICAgICBT
ZWNvbmRzIG1heGltdW1CdWZmZXJpbmdUaW1lOwogICAgIFZlY3RvcjxTdHJpbmc+IGRlcml2ZWRD
YWNoZWREYXRhVHlwZXNUb1JldHJpZXZlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4gc291cmNlT3JpZ2luOwotICAgIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6TW9kZSBtb2Rl
OwotICAgIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb247Cisg
ICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnM7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM+IGNzcFJlc3BvbnNlSGVh
ZGVyczsKKyAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnM7
CiAgICAgYm9vbCBzaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyB7IGZhbHNlIH07CiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDc4YjA2NmY0
ZTA3YzM0YzNmZjVmNDY1ZDUyZmM2YzI5YjU5OTNlYzcuLmY2YjVkNzk0OTJlOWZlMjJiNTEyNThk
YjU0MTg5OGZjOGJjYmYyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ3MSw3ICs0NzEsNyBAQCBSZXNv
dXJjZVJlc3BvbnNlIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2FuaXRpemVSZXNwb25zZUlmUG9z
c2libGUoUmVzb3VyY2VSZXNwbwogICAgICAgICAgICAgLy8gV2UgcmVkdWNlIGZpbHRlcmluZyB3
aGVuIGl0IHdvdWxkIG90aGVyd2lzZSBiZSB2aXNpYmxlIHRvIHNjcmlwdHMuCiAgICAgICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHVzZSByZXNwb25zZSB0YWludGluZyBvbmNlIGNvbXB1dGVk
IGluIE5ldHdvcmsgUHJvY2Vzcy4KICAgICAgICAgICAgIGJvb2wgaXNTYW1lT3JpZ2luID0gbV9w
YXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiA/IG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4tPmNhblJl
cXVlc3QocmVzcG9uc2UudXJsKCkpIDogcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKHJlc3Bv
bnNlLnVybCgpLCBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSk7Ci0gICAgICAgICAgICBpZiAo
aXNTYW1lT3JpZ2luICYmIG1fcGFyYW1ldGVycy5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uOjpFbXB0eVN0cmluZykKKyAgICAgICAgICAgIGlmIChpc1NhbWVPcmlnaW4g
JiYgbV9wYXJhbWV0ZXJzLm9wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbjo6RW1wdHlTdHJpbmcpCiAgICAgICAgICAgICAgICAgdHlwZSA9IFJlc291cmNlUmVz
cG9uc2U6OlNhbml0aXphdGlvblR5cGU6OlJlbW92ZUNvb2tpZXM7CiAgICAgICAgIH0KICAgICAg
ICAgcmVzcG9uc2Uuc2FuaXRpemVIVFRQSGVhZGVyRmllbGRzKHR5cGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAppbmRleCA3ODg1YjlmYmVlMDU3YWVjMzNiY2Qx
NzVkNzFkYTU1Y2JkNThmMzQ4Li4zZWZiYWRiNDYxYjM2MzA2NGViYzY5ZjQ2ZTc2ZDY3NzBjYjY0
ODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcApAQCAtMzgs
MTEgKzM4LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAotUGluZ0xvYWQ6OlBpbmdMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycywgSFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZUVycm9yJiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorUGluZ0xvYWQ6OlBpbmdMb2FkKE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3ImLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgOiBtX3BhcmFtZXRlcnMoV1RGTW92ZShwYXJh
bWV0ZXJzKSkKICAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpCiAgICAgLCBtX3RpbWVvdXRUaW1lcigqdGhpcywgJlBpbmdMb2FkOjp0aW1lb3V0VGlt
ZXJGaXJlZCkKLSAgICAsIG1fbmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtMb2FkQ2hlY2tlcjo6
Y3JlYXRlKG1fcGFyYW1ldGVycy5tb2RlLCBtX3BhcmFtZXRlcnMuc2hvdWxkRm9sbG93UmVkaXJl
Y3RzLCBtX3BhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIG1fcGFyYW1ldGVycy5z
ZXNzaW9uSUQsIFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksIFVSTCB7IG1fcGFyYW1l
dGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigp
KSkKKyAgICAsIG1fbmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y3JlYXRl
KEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25zfSwgbV9wYXJhbWV0ZXJzLnNlc3Np
b25JRCwgV1RGTW92ZShtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksIFVSTCB7
IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4u
Y29weVJlZigpKSkKIHsKIAogICAgIGlmIChtX3BhcmFtZXRlcnMuY3NwUmVzcG9uc2VIZWFkZXJz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCmluZGV4IGExZWY2ZTczMTdm
ZTU1ZjZjNWRjZjUzYWM3NTUzYTljYjA3Yzk2YWYuLmQxOTQ1OTJjZWE2ZWUyNGVjMzE2OTkxMzNk
YzZiNTZlNjcwZmE0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UGluZ0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyOwogCiBjbGFzcyBQaW5n
TG9hZCBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKIHB1YmxpYzoKLSAg
ICBQaW5nTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBXZWJDb3JlOjpIVFRQ
SGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJik+JiYpOworICAgIFBpbmdMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzJiYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKTsKICAgICAK
IHByaXZhdGU6CiAgICAgflBpbmdMb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBhN2M0
YzFhNTBmMTQ4ZmM0MmE4YjMzOGNkN2Q3YTVjNjQ5MjYxZjI5Li41YzRlY2Q4YjQ2ZDhhM2E2MDMw
Y2E2NDc3NTFmYzc0NzNiNzE3Zjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI5LDYgKzI5
LDggQEAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKQEAgLTM3NSwxNiArMzc3LDIwIEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGU6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSog
cGFnZUdyb3VwLCBiCiB2b2lkIEluamVjdGVkQnVuZGxlOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucykKIHsKICAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc291cmNl
T3JpZ2luKS5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpBZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeSB7IHNvdXJjZU9yaWdpbiwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0
LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyB9LCAwKTsKKwogfQogCiB2b2lkIEluamVjdGVk
QnVuZGxlOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNv
dXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsK
ICAgICBTZWN1cml0eVBvbGljeTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc291cmNlT3JpZ2luKS5nZXQoKSwgZGVzdGlu
YXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpSZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSB7IHNvdXJjZU9yaWdp
biwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucyB9LCAwKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVzZXRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RzKCkKIHsKICAgICBTZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RzKCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMgeyB9LCAw
KTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwCmluZGV4IGQwNTYzMTk0YjY1YTk2N2Q2OTRiYmQxZDZjNTFjMmE0ODY0ZDBlYTkuLmQx
ZmZhNjNiNDQ5YmU3YjVkOTI1Y2M4MWEwZTgwN2FhNTk1NmQ2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAg
LTI3Myw3ICsyNzMsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9t
TmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogICAgIGxvYWRQYXJhbWV0
ZXJzLm5lZWRzQ2VydGlmaWNhdGVJbmZvID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkSW5jbHVkZUNl
cnRpZmljYXRlSW5mbygpOwogICAgIGxvYWRQYXJhbWV0ZXJzLm1heGltdW1CdWZmZXJpbmdUaW1l
ID0gbWF4aW11bUJ1ZmZlcmluZ1RpbWU7CiAgICAgbG9hZFBhcmFtZXRlcnMuZGVyaXZlZENhY2hl
ZERhdGFUeXBlc1RvUmV0cmlldmUgPSByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkuZGVyaXZlZENh
Y2hlZERhdGFUeXBlc1RvUmV0cmlldmU7Ci0gICAgbG9hZFBhcmFtZXRlcnMuZGVzdGluYXRpb24g
PSByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkuZGVzdGluYXRpb247CisgICAgbG9hZFBhcmFtZXRl
cnMub3B0aW9ucyA9IHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKTsKIAogICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgYWxzbyBzYW5pdGl6ZSByZWRpcmVjdCByZXNwb25zZSBmb3IgbmF2aWdhdGlvbnMu
CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlc3RyaWN0ZWRIVFRQUmVz
cG9uc2VBY2Nlc3MoKSAmJiByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkubW9kZSAhPSBGZXRjaE9w
dGlvbnM6Ok1vZGU6Ok5hdmlnYXRlOwpAQCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQgV2ViTG9hZGVy
U3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9h
ZGVyLCB1bnNpCiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCA9IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qo
d2ViRnJhbWUgPyB3ZWJGcmFtZS0+Y29yZUZyYW1lKCkgOiBudWxscHRyKTsKICAgICBsb2FkUGFy
YW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2Vzcygp
OwogICAgIC8vIEZJWE1FOiBVc2UgdGhlIHByb3BlciBkZXN0aW5hdGlvbiBvbmNlIGFsbCBmZXRj
aCBvcHRpb25zIGFyZSBwYXNzZWQuCi0gICAgbG9hZFBhcmFtZXRlcnMuZGVzdGluYXRpb24gPSBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbXB0eVN0cmluZzsKKyAgICBsb2FkUGFyYW1ldGVy
cy5vcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1wdHlT
dHJpbmc7CiAKICAgICBkYXRhLnNocmluaygwKTsKIApAQCAtNDcwLDggKzQ3MCw4IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvCiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luID0gJmRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9
IGZyYW1lLnBhZ2UoKSA/IGZyYW1lLnBhZ2UoKS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID0gb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzOjpPbWl0ID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIDogU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k6OlVzZTsKLSAgICBsb2FkUGFyYW1ldGVycy5tb2RlID0gb3B0aW9ucy5t
b2RlOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZEZvbGxvd1JlZGlyZWN0cyA9IG9wdGlvbnMu
cmVkaXJlY3QgPT0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OworICAgIGxvYWRQYXJh
bWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOworICAgIGxvYWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVx
dWVzdEhlYWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwogICAgIGxvYWRQYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCZmcmFtZSk7CiAgICAgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MoKTsKICAgICBp
ZiAoIWRvY3VtZW50LT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ko
KSkgewpAQCAtNDkyLDcgKzQ5Miw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGlu
Z0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvCiAgICAgaWYg
KGNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICBtX3BpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXJz
LmFkZChsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkxvYWRQaW5nKFdURk1vdmUobG9hZFBhcmFtZXRlcnMpLCBvcmlnaW5hbFJl
cXVlc3RIZWFkZXJzKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyB7IGxvYWRQYXJhbWV0ZXJzIH0sIDAp
OwogfQogCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRf
dCBwaW5nTG9hZElkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImJiBlcnJvciwgUmVzb3VyY2VSZXNw
b25zZSYmIHJlc3BvbnNlKQpAQCAtNTMyLDcgKzUzMiw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OnByZWNvbm5lY3RUbyhGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIGNvbnN0IFdlYkNvcmU6
OlVSCiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5
OjpZZXM7CiAgICAgcGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVzdHJpY3RlZEhUVFBS
ZXNwb25zZUFjY2VzcygpOwogICAgIC8vIEZJWE1FOiBVc2UgdGhlIHByb3BlciBkZXN0aW5hdGlv
biBvbmNlIGFsbCBmZXRjaCBvcHRpb25zIGFyZSBwYXNzZWQuCi0gICAgcGFyYW1ldGVycy5kZXN0
aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtcHR5U3RyaW5nOworICAgIHBh
cmFtZXRlcnMub3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OkVtcHR5U3RyaW5nOwogCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVjb25uZWN0VG8ocHJlY29ubmVjdGlvbklkZW50aWZp
ZXIsIFdURk1vdmUocGFyYW1ldGVycykpLCAwKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337658</attachid>
            <date>2018-04-10 17:17:18 -0700</date>
            <delta_ts>2018-04-11 11:09:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184374-20180410171717.patch</filename>
            <type>text/plain</type>
            <size>34010</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVjYWNjNWE2YTg0ZjQw
MGEyNDI4NTkzODI4NTYwNTFkY2NmZWFlYi4uNGZkNThjYzM3ZDZkM2YwMDFjNWVjZGE0NjA3ZWJm
YmMxM2E3Y2U3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA0LTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIEZldGNoT3B0aW9u
cyBhbmQgU2VjdXJpdHlPcmlnaW4gYXMgbG9hZCBwYXJhbWV0ZXJzIGZyb20gV2ViUHJvY2VzcyB0
byBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0Mzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNlY3VyaXR5T3JpZ2luIGVuY29kZS9kZWNvZGUgcm91
dGluZXMuCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisKIDIwMTgtMDQtMTAg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1
aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggOTU5ZTVlMDk2NWE2ZDg4YmMzN2Q4MjBhM2E0YTJkZmU5YWQx
OTdjYi4uMGI3MmIwYmM2Zjc5Yjc2ZWE4M2JkNDRkNGQ2ZWJlNzZlMGE0ZWFiZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1MiBAQAorMjAxOC0wNC0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUGFzcyBGZXRjaE9wdGlvbnMgYW5kIFNlY3VyaXR5T3JpZ2luIGFz
IGxvYWQgcGFyYW1ldGVycyBmcm9tIFdlYlByb2Nlc3MgdG8gTmV0d29ya1Byb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDM3NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgZnVsbCBGZXRj
aE9wdGlvbnMgcGFyYW1ldGVycyBhcyBwYXJ0IG9mIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLgorICAgICAgICBUaGlzIHdpbGwgYWxsb3cgaGFuZGxpbmcgcmVkaXJlY3Rpb24gbW9kZSBh
cyB3ZWxsIGFzIGNyZWRlbnRpYWxzIGluIGNhc2Ugb2YgY3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9u
cy4KKyAgICAgICAgSW4gY2FzZSBvZiBTYW1lT3JpZ2luIGNyZWRlbnRpYWxzIGFuZCB0aGVyZSBp
cyBhIHJlZGlyZWN0aW9uIGZyb20gc2FtZS1vcmlnaW4gdG8gY3Jvc3Mtb3JpZ2luLAorICAgICAg
ICB3ZSB3aWxsIGJlIGFibGUgdG8gc3RvcCB1c2luZyBjcmVkZW50aWFscyB3aXRob3V0IGdvaW5n
IHRvIFdlYlByb2Nlc3MuCisKKyAgICAgICAgVG8gaGFuZGxlIHByb3Blcmx5IGNyb3NzLW9yaWdp
biBjaGVja3MsIHdlIGhhdmUgdG8gYmUgYWJsZSB0byB1c2UgU2VjdXJpdHlPcmlnaW4gYXMgaW4g
V2ViUHJvY2Vzcy4KKyAgICAgICAgV2UgbWFrZSBXZWJQcm9jZXNzIHNlbmRzIE9yaWdpbiBBY2Nl
c3MgV2hpdGUgbGlzdCBpbmZvcm1hdGlvbiB0byBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgVGhp
cyBhbGxvd3Mgc3VwcG9ydGluZyB0aGUgd2hpdGUgbGlzdCB3aGVuIGRvaW5nIGxvYWRpbmcgaW4g
TmV0d29ya1Byb2Nlc3MuCisgICAgICAgIFRoaXMgb25seSB3b3JrcyBjb25zaXN0ZW50bHkgaWYg
YWxsIFdlYlByb2Nlc3NlcyBzaGFyZSB0aGUgc2FtZSB3aGl0ZWxpc3QuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpO
ZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6
OmNoZWNrUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6
OmNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRD
aGVja2VyOjpjaGVja0NPUlNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRD
aGVja2VyOjpjaGVja0NPUlNSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVmbGlnaHQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmRvZXNOb3ROZWVkQ09SU0NoZWNrIGNvbnN0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
aW5nTG9hZDo6UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6d2lsbFBlcmZv
cm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpyZW1vdmVPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpy
ZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0
ZWd5OjpzdGFydFBpbmdMb2FkKToKKwogMjAxOC0wNC0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIGNvbnN0cnVjdGluZyBhIHNlcnZpY2Ugd29ya2Vy
IFJlZ2lzdHJhdGlvblN0b3JlIGZvciBwcml2YXRlIHNlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5T3JpZ2luLmgKaW5kZXggZGNjMTUyN2M5MTI0OWRmZmU3YTkxOTkxMTNjYWFjOWY2YTEw
ZTRiNC4uOWI3MmQ2NjE5YzZmOGYwM2FlZmE0NTU0MjRkMDYwZWQwYjY4MGFhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaApAQCAtMjA2LDYgKzIwNiw5IEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgU2VjdXJpdHlPcmln
aW4oKTsKICAgICBleHBsaWNpdCBTZWN1cml0eU9yaWdpbihjb25zdCBVUkwmKTsKQEAgLTI0MSw0
ICsyNDQsNTUgQEAgYm9vbCBzaG91bGRUcmVhdEFzUG90ZW50aWFsbHlUcnVzdHdvcnRoeShjb25z
dCBVUkwmKTsKIGJvb2wgb3JpZ2luc01hdGNoKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mKTsKIGJvb2wgb3JpZ2luc01hdGNoKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
KiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qKTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5s
aW5lIHZvaWQgU2VjdXJpdHlPcmlnaW46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgbV9kYXRhOworICAgIGVuY29kZXIgPDwgbV9kb21haW47CisgICAg
ZW5jb2RlciA8PCBtX2ZpbGVQYXRoOworICAgIGVuY29kZXIgPDwgbV9pc1VuaXF1ZTsKKyAgICBl
bmNvZGVyIDw8IG1fdW5pdmVyc2FsQWNjZXNzOworICAgIGVuY29kZXIgPDwgbV9kb21haW5XYXNT
ZXRJbkRPTTsKKyAgICBlbmNvZGVyIDw8IG1fY2FuTG9hZExvY2FsUmVzb3VyY2VzOworICAgIGVu
Y29kZXIuZW5jb2RlRW51bShtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CisgICAgZW5jb2RlciA8
PCBtX2VuZm9yY2VzRmlsZVBhdGhTZXBhcmF0aW9uOworICAgIGVuY29kZXIgPDwgbV9uZWVkc1N0
b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazsKKyAgICBlbmNvZGVyIDw8IG1faXNQb3RlbnRp
YWxseVRydXN0d29ydGh5OworICAgIGVuY29kZXIgPDwgbV9pc0xvY2FsOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBpbmxpbmUgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9y
aWdpbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTZWN1
cml0eU9yaWdpbkRhdGE+IGRhdGE7CisgICAgZGVjb2RlciA+PiBkYXRhOworICAgIGlmICghZGF0
YSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIG9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoZGF0YS0+cHJvdG9jb2wsIGRhdGEtPmhvc3QsIGRhdGEtPnBvcnQpOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1fZG9tYWluKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1fZmlsZVBhdGgp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdp
bi0+bV9pc1VuaXF1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUob3JpZ2luLT5tX3VuaXZlcnNhbEFjY2VzcykpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3JpZ2luLT5tX2RvbWFpbldhc1NldEluRE9N
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmln
aW4tPm1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ob3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3Jp
Z2luLT5tX2VuZm9yY2VzRmlsZVBhdGhTZXBhcmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1fbmVlZHNTdG9yYWdlQWNjZXNz
RnJvbUZpbGVVUkxzUXVpcmspKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG9yaWdpbi0+bV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdpbi0+bV9pc0xv
Y2FsKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gV1RGTW92ZShvcmln
aW4pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGZhNmZlYWNkNWQyOGVhYTI5MjAyOWRhMGE3M2I3ZTM1NjZmN2EzYjUuLmU2ZGVk
NDIwYTkxMTA4NjljMTIzOWZhZmE0ZDhhZTY4M2Q1NTIxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNv
b2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5UG9saWN5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTI0MiwxNCArMjQzLDE0IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnBlcmZvcm1TeW5jaHJvbm91c0xvYWQoY29uc3QgTmV0d29ya1Jlc291
cmNlCiAgICAgbG9hZGVyLT5zdGFydCgpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIGxvYWRQ
YXJhbWV0ZXJzLCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycykKK3ZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIg
PSBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyXSAoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7CiAgICAgICAgIGRpZEZpbmlzaFBp
bmdMb2FkKGlkZW50aWZpZXIsIGVycm9yLCByZXNwb25zZSk7CiAgICAgfTsKIAogICAgIC8vIFBp
bmdMb2FkIG1hbmFnZXMgaXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRz
IHB1cnBvc2UgaGFzIGJlZW4gZnVsZmlsbGVkLgotICAgIG5ldyBQaW5nTG9hZChXVEZNb3ZlKGxv
YWRQYXJhbWV0ZXJzKSwgV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIG5ldyBQaW5nTG9hZChXVEZNb3ZlKGxvYWRQYXJhbWV0
ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKQEAgLTUwNyw0ICs1MDgsMTkgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZShQQUw6
OlMKICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3sKKyAgICBTZWN1cml0eVBv
bGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUZyb21TdHJpbmcoc291cmNlT3JpZ2luKS5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVz
dGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Cit9CisKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKQoreworICAgIFNlY3VyaXR5UG9saWN5OjpyZW1vdmVPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VP
cmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCkKK3sKKyAgICBTZWN1cml0eVBv
bGljeTo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDA3NDgzOGVhMjhkOGIwN2QyZTA4
YmZhYzM0MmM2OWY0YTQ0NmUyNTYuLjI4ZjUxMDcwYmU1NzQ2M2MwNzMyZjc0MThhMGQyMDgxMWUz
NDhiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgc2NoZWR1bGVSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQoY29uc3Qg
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBSZWY8TWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHk+
JiYpOwotICAgIHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOworICAgIHZv
aWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBw
cmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50NjRf
dCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYpOwogCkBA
IC0xNDAsNiArMTQwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNz
Rm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCk7CiAgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yQWxsRnJhbWVzT25QYWdlKFBBTDo6
U2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQpOwogCisgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCByZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMoKTsKKwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAog
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxOZXR3b3JrU29ja2V0U3RyZWFtPj4gbV9uZXR3
b3JrU29ja2V0U3RyZWFtczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDE2M2ZmMDM0MDIyZTQ3MTdkMTcxYmZlOGE1YWI4NjZjN2RmYWQyOWQuLjAyNzM4
MjFlZTQ5NTY2MDE1OGMzNTY0M2JhNzVkZDNmYWY2ZTY0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBTY2hl
ZHVsZVJlc291cmNlTG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJl
c291cmNlTG9hZFBhcmFtZXRlcnMpCiAgICAgUGVyZm9ybVN5bmNocm9ub3VzTG9hZChXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpIC0+
IChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4gZGF0YSkgRGVsYXllZAotICAgIExvYWRQaW5nKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycywg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKQorICAgIExvYWRQ
aW5nKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFy
YW1ldGVycykKICAgICBSZW1vdmVMb2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyKQogICAgIFNldERlZmVyc0xvYWRpbmcodWludDY0X3QgcmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQpA
QCAtNjAsNCArNjAsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQp
OwogICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQpOworCisgICAgQWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoU3RyaW5nIHNvdXJjZU9yaWdpbiwgU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIFN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOworICAgIFJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFN0cmluZyBzb3VyY2VP
cmlnaW4sIFN0cmluZyBkZXN0aW5hdGlvblByb3RvY29sLCBTdHJpbmcgZGVzdGluYXRpb25Ib3N0
LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBSZXNldE9yaWdpbkFjY2Vz
c1doaXRlbGlzdHMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA4MjU0OWVlYWY0NDc5OGMxNjFjNTM5Zjg3YWQw
OGI3M2NhNjdlY2JiLi42YjE0OTQzODhjNzkxZWUzOWM2Yzg5MTBiNWYzMWRhZDkxNjE5ZmU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuY3BwCkBAIC00MSwxNyArNDEsMjYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tl
cihXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwgYm9vbCBzaG91bGRGb2xsb3dSZWRp
cmVjdHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAm
JiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4mJiBzb3VyY2VPcmlnaW4pCi0gICAgOiBtX21vZGUobW9kZSkKLSAgICAsIG1fc2hvdWxkRm9s
bG93UmVkaXJlY3RzKHNob3VsZEZvbGxvd1JlZGlyZWN0cykKLSAgICAsIG1fc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3koc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCitOZXR3b3JrTG9hZENoZWNrZXI6
Ok5ldHdvcmtMb2FkQ2hlY2tlcihXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJl
cXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VP
cmlnaW4pCisgICAgOiBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKICAgICAsIG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKICAgICAsIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyhXVEZNb3ZlKG9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMpKQogICAgICwgbV91cmwoV1RGTW92ZSh1cmwpKQogICAgICwg
bV9vcmlnaW4oV1RGTW92ZShzb3VyY2VPcmlnaW4pKQogewotICAgIGlmIChtX21vZGUgPT0gRmV0
Y2hPcHRpb25zOjpNb2RlOjpDb3JzIHx8IG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNh
bWVPcmlnaW4pCi0gICAgICAgIG1faXNTYW1lT3JpZ2luUmVxdWVzdCA9IG1fb3JpZ2luLT5jYW5S
ZXF1ZXN0KG1fdXJsKTsKKyAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpDb3JzIHx8IG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9y
aWdpbikKKyAgICAgICAgbV9pc1NhbWVPcmlnaW5SZXF1ZXN0ID0gbV91cmwucHJvdG9jb2xJc0Rh
dGEoKSB8fCBtX3VybC5wcm90b2NvbElzQmxvYigpIHx8IG1fb3JpZ2luLT5jYW5SZXF1ZXN0KG1f
dXJsKTsKKyAgICBzd2l0Y2ggKG9wdGlvbnMuY3JlZGVudGlhbHMpIHsKKyAgICBjYXNlIEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU6CisgICAgICAgIG1fc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW46CisgICAgICAg
IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBtX2lzU2FtZU9yaWdpblJlcXVlc3QgPyBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlIDogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90
VXNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
Ok9taXQ6CisgICAgICAgIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KIH0KIAogTmV0d29y
a0xvYWRDaGVja2VyOjp+TmV0d29ya0xvYWRDaGVja2VyKCkgPSBkZWZhdWx0OwpAQCAtNzcsNyAr
ODYsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tSZWRpcmVjdGlvbihXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlcwogICAgIG1fcHJldmlvdXNVUkwgPSBXVEZN
b3ZlKG1fdXJsKTsKICAgICBtX3VybCA9IHJlcXVlc3QudXJsKCk7CiAKLSAgICBpZiAoIW1fc2hv
dWxkRm9sbG93UmVkaXJlY3RzKSB7CisgICAgaWYgKG1fb3B0aW9ucy5yZWRpcmVjdCAhPSBGZXRj
aE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3cpIHsKICAgICAgICAgaGFuZGxlcihyZXR1cm5FcnJv
cihBU0NJSUxpdGVyYWwoIkxvYWQgcGFyYW1ldGVycyBkbyBub3QgYWxsb3cgZm9sbG93aW5nIHJl
ZGlyZWN0aW9ucyIpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDUsMTIgKzExNCwx
MiBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAK
LSAgICBpZiAobV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzKSB7CisgICAgaWYg
KG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzKSB7CiAgICAgICAg
IHJlc3BvbnNlLnNldFRhaW50aW5nKFJlc291cmNlUmVzcG9uc2U6OlRhaW50aW5nOjpPcGFxdWUp
OwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIEFTU0VSVChtX21vZGUgPT0gRmV0
Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICBBU1NFUlQobV9vcHRpb25zLm1vZGUgPT0gRmV0
Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKIAogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAg
aWYgKCFXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG1fc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksICptX29yaWdpbiwgZXJyb3JNZXNzYWdlKSkKQEAgLTE0NSw3ICsx
NTQsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y29udGludWVDaGVja2luZ1JlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVmFsaQogICAgIGlmIChhdXRvKiBjb250ZW50U2Vj
dXJpdHlQb2xpY3kgPSB0aGlzLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKSkgewogICAgICAgICBp
ZiAoaXNSZWRpcmVjdGVkKCkpIHsKICAgICAgICAgICAgIFVSTCB1cmwgPSByZXF1ZXN0LnVybCgp
OwotICAgICAgICAgICAgYXV0byB0eXBlID0gbV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6
TmF2aWdhdGUgPyBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Ok5h
dmlnYXRpb24gOiBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Okxv
YWQ7CisgICAgICAgICAgICBhdXRvIHR5cGUgPSBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlv
bnM6Ok1vZGU6Ok5hdmlnYXRlID8gQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVl
c3RUeXBlOjpOYXZpZ2F0aW9uIDogQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVl
c3RUeXBlOjpMb2FkOwogICAgICAgICAgICAgY29udGVudFNlY3VyaXR5UG9saWN5LT51cGdyYWRl
SW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQodXJsLCB0eXBlKTsKICAgICAgICAgICAgIGlmICh1cmwg
IT0gcmVxdWVzdC51cmwoKSkKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOwpA
QCAtMTU2LDEyICsxNjUsMTUgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRpbnVlQ2hl
Y2tpbmdSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGkKICAgICAgICAgfQog
ICAgIH0KIAorICAgIGlmIChtX29wdGlvbnMuY3JlZGVudGlhbHMgPT0gRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFsczo6U2FtZU9yaWdpbikKKyAgICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSA9ICAobV9pc1NhbWVPcmlnaW5SZXF1ZXN0ICYmIG1fb3JpZ2luLT5jYW5SZXF1ZXN0KHJlcXVl
c3QudXJsKCkpKSA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UgOiBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisKICAgICBpZiAoZG9lc05vdE5lZWRDT1JTQ2hlY2socmVx
dWVzdC51cmwoKSkpIHsKICAgICAgICAgaGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX21vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpTYW1lT3JpZ2luKSB7CisgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6U2FtZU9yaWdpbikgewogICAgICAgICBoYW5kbGVyKHJldHVybkVycm9yKEFTQ0lJTGl0
ZXJhbCgiU2FtZU9yaWdpbiBtb2RlIGRvZXMgbm90IGFsbG93IGNyb3NzIG9yaWdpbiByZXF1ZXN0
cyIpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzcsNyArMTg5LDcgQEAgdm9pZCBO
ZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIFZhbGkKIAogdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1Jl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVmFsaWRhdGlvbkhhbmRsZXImJiBoYW5k
bGVyKQogewotICAgIEFTU0VSVChtX21vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsK
KyAgICBBU1NFUlQobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsK
IAogICAgIC8vIEV4Y2VwdCBpbiBjYXNlIHdoZXJlIHByZWZsaWdodCBpcyBuZWVkZWQsIGxvYWRp
bmcgc2hvdWxkIGJlIGFibGUgdG8gY29udGludWUgb24gaXRzIG93bi4KICAgICBpZiAobV9pc1Np
bXBsZVJlcXVlc3QgJiYgaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QocmVxdWVzdC5o
dHRwTWV0aG9kKCksIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycykpIHsKQEAgLTE5MCw3ICsyMDIs
NyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBWYWxpZGF0aW9uSAogCiB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6
Y2hlY2tDT1JTUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVmFs
aWRhdGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAgIEFTU0VSVChtX21vZGUgPT0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICBBU1NFUlQobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpDb3JzKTsKICAgICBBU1NFUlQoaXNSZWRpcmVjdGVkKCkpOwogCiAgICAg
Ly8gRm9yY2UgYW55IHN1YnNlcXVlbnQgcmVxdWVzdCB0byB1c2UgdGhlc2UgY2hlY2tzLgpAQCAt
MjE1LDcgKzIyNyw3IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZWRpcmVj
dGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBWCiAKIHZvaWQgTmV0d29ya0xv
YWRDaGVja2VyOjpjaGVja0NPUlNSZXF1ZXN0V2l0aFByZWZsaWdodChSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBWYWxpZGF0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKG1f
bW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOworICAgIEFTU0VSVChtX29wdGlvbnMu
bW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOwogCiAgICAgbV9pc1NpbXBsZVJlcXVl
c3QgPSBmYWxzZTsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHBhcnRpdGlvbiBw
cmVmbGlnaHQgcmVzdWx0IGNhY2hlIGJ5IHNlc3Npb24gSUQuCkBAIC0yNTQsNyArMjY2LDcgQEAg
dm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxpZ2h0KFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QKIAogYm9vbCBOZXR3b3JrTG9hZENoZWNrZXI6OmRvZXNO
b3ROZWVkQ09SU0NoZWNrKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIGlmIChtX21vZGUg
PT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMgfHwgbV9tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6TmF2aWdhdGUpCisgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6Tm9Db3JzIHx8IG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2
aWdhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIG1faXNTYW1lT3JpZ2lu
UmVxdWVzdCAmJiBtX29yaWdpbi0+Y2FuUmVxdWVzdCh1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKaW5kZXggNDBkYTU5MDVjMmJk
OThjOGQzMTE4MDY1MWNhMjEzOTQxOTUxZTY2Ni4uNWZhYzM2Mzk2Y2E4M2JkMjc0M2VhNGFkMDg3
MTQ2YmIwYmQ3MTNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5oCkBAIC00Miw5ICs0Miw5IEBAIGNsYXNzIE5ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlcjsKIAogY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyIDogcHVibGljIFJlZkNv
dW50ZWQ8TmV0d29ya0xvYWRDaGVja2VyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3
b3JrTG9hZENoZWNrZXI+IGNyZWF0ZShXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwg
Ym9vbCBzaG91bGRGb2xsb3dSZWRpcmVjdHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbEhlYWRlcnMsIFdlYkNvcmU6OlVSTCYmIHVy
bCwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbikKKyAgICBz
dGF0aWMgUmVmPE5ldHdvcmtMb2FkQ2hlY2tlcj4gY3JlYXRlKFdlYkNvcmU6OkZldGNoT3B0aW9u
cyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6SFRUUEhlYWRl
ck1hcCYmIG9yaWdpbmFsSGVhZGVycywgV2ViQ29yZTo6VVJMJiYgdXJsLCBSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTmV0d29ya0xvYWRDaGVja2VyIHsgbW9kZSwgc2hvdWxkRm9sbG93UmVk
aXJlY3RzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2Vzc2lvbklELCBXVEZNb3ZlKG9yaWdp
bmFsSGVhZGVycyksIFdURk1vdmUodXJsKSwgV1RGTW92ZShzb3VyY2VPcmlnaW4pIH0pOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrTG9hZENoZWNrZXIgeyBXVEZNb3ZlKG9w
dGlvbnMpLCBzZXNzaW9uSUQsIFdURk1vdmUob3JpZ2luYWxIZWFkZXJzKSwgV1RGTW92ZSh1cmwp
LCBXVEZNb3ZlKHNvdXJjZU9yaWdpbikgfSk7CiAgICAgfQogICAgIH5OZXR3b3JrTG9hZENoZWNr
ZXIoKTsKIApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBt
X3N0b3JlZENyZWRlbnRpYWxzUG9saWN5OyB9CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0xvYWRD
aGVja2VyKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6TW9kZSwgYm9vbCBzaG91bGRGb2xsb3dSZWRp
cmVjdHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQQUw6OlNlc3Npb25JRCwg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBXZWJDb3JlOjpVUkwmJiwgUmVmUHRyPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmKTsKKyAgICBOZXR3b3JrTG9hZENoZWNrZXIoV2ViQ29yZTo6RmV0
Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFdl
YkNvcmU6OlVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYpOwogCiAgICAg
V2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3koKSBj
b25zdDsKICAgICBib29sIGlzQ2hlY2tpbmcoKSBjb25zdCB7IHJldHVybiAhIW1fY29yc1ByZWZs
aWdodENoZWNrZXI7IH0KQEAgLTg5LDggKzg5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb2Nl
c3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25z
dCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tlZFN0YXR1cyYpPiYmKTsKICNlbmRp
ZgogCi0gICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2RlIG1fbW9kZTsKLSAgICBib29sIG1f
c2hvdWxkRm9sbG93UmVkaXJlY3RzOworICAgIFdlYkNvcmU6OkZldGNoT3B0aW9ucyBtX29wdGlv
bnM7CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgbV9zdG9yZWRDcmVkZW50
aWFsc1BvbGljeTsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBXZWJDb3Jl
OjpIVFRQSGVhZGVyTWFwIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsgLy8gTmVlZGVkIGZvciBD
T1JTIGNoZWNrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKaW5kZXggMjNiODEyM2JlNjli
YWM4ZGIzOGU4NWUyOGM5NTBkOWNmYjI0NmQ0Mi4uNzljODI3YzQ4NzUzZTM4YjI2ODc1MTIyYzk2
YmFlOTI0MmFlNjkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKQEAgLTg3LDEwICs4
NywxMCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29s
Pihzb3VyY2VPcmlnaW4pOwogICAgIGlmIChzb3VyY2VPcmlnaW4pCi0gICAgICAgIGVuY29kZXIg
PDwgc291cmNlT3JpZ2luLT5kYXRhKCk7Ci0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1vZGUpOwot
ICAgIGVuY29kZXIuZW5jb2RlRW51bShkZXN0aW5hdGlvbik7CisgICAgICAgIGVuY29kZXIgPDwg
KnNvdXJjZU9yaWdpbjsKKyAgICBlbmNvZGVyIDw8IG9wdGlvbnM7CiAgICAgZW5jb2RlciA8PCBj
c3BSZXNwb25zZUhlYWRlcnM7CisgICAgZW5jb2RlciA8PCBvcmlnaW5hbFJlcXVlc3RIZWFkZXJz
OwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBlbmNvZGVyIDw8IG1haW5E
b2N1bWVudFVSTDsKQEAgLTE3MSwxOSArMTcxLDIxIEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtSZXNvdXJj
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNTb3VyY2VPcmlnaW4pKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKGhhc1NvdXJjZU9yaWdpbikgewotICAgICAgICBzdGQ6Om9wdGlv
bmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4gc291cmNlT3JpZ2luRGF0YTsKLSAgICAgICAgZGVjb2Rl
ciA+PiBzb3VyY2VPcmlnaW5EYXRhOwotICAgICAgICBpZiAoIXNvdXJjZU9yaWdpbkRhdGEpCisg
ICAgICAgIHJlc3VsdC5zb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6ZGVjb2RlKGRlY29k
ZXIpOworICAgICAgICBpZiAoIXJlc3VsdC5zb3VyY2VPcmlnaW4pCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIEFTU0VSVCghc291cmNlT3JpZ2luRGF0YS0+aXNFbXB0eSgpKTsK
LSAgICAgICAgcmVzdWx0LnNvdXJjZU9yaWdpbiA9IHNvdXJjZU9yaWdpbkRhdGEtPnNlY3VyaXR5
T3JpZ2luKCk7CiAgICAgfQotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5tb2Rl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJl
c3VsdC5kZXN0aW5hdGlvbikpCisKKyAgICBzdGQ6Om9wdGlvbmFsPEZldGNoT3B0aW9ucz4gb3B0
aW9uczsKKyAgICBkZWNvZGVyID4+IG9wdGlvbnM7CisgICAgaWYgKCFvcHRpb25zKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0Lm9wdGlvbnMgPSAqb3B0aW9uczsKKwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNzcFJlc3BvbnNlSGVhZGVycykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5vcmlnaW5hbFJlcXVl
c3RIZWFkZXJzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKENPTlRFTlRf
RVhURU5TSU9OUykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tYWluRG9jdW1lbnRV
UkwpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4IDk2NGZkMDUxZDRjNTAwNjEzNjMwZjZh
NGI2MWY5N2U0ZjNhNDc5NTQuLjc0MjkwY2U0ODE4ZmYxYzExYjQxNzM4NjUxMjUyOTUxNjE0MjVi
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKQEAgLTU2LDkgKzU2LDkgQEAgcHVibGljOgog
ICAgIFNlY29uZHMgbWF4aW11bUJ1ZmZlcmluZ1RpbWU7CiAgICAgVmVjdG9yPFN0cmluZz4gZGVy
aXZlZENhY2hlZERhdGFUeXBlc1RvUmV0cmlldmU7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiBzb3VyY2VPcmlnaW47Ci0gICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2Rl
IG1vZGU7Ci0gICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bjsKKyAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9uczsKICAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycz4gY3NwUmVzcG9u
c2VIZWFkZXJzOworICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgb3JpZ2luYWxSZXF1ZXN0SGVh
ZGVyczsKICAgICBib29sIHNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzIHsgZmFsc2Ug
fTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNzhi
MDY2ZjRlMDdjMzRjM2ZmNWY0NjVkNTJmYzZjMjliNTk5M2VjNy4uZjZiNWQ3OTQ5MmU5ZmUyMmI1
MTI1OGRiNTQxODk4ZmM4YmNiZjJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDcxLDcgKzQ3MSw3IEBA
IFJlc291cmNlUmVzcG9uc2UgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzYW5pdGl6ZVJlc3BvbnNl
SWZQb3NzaWJsZShSZXNvdXJjZVJlc3BvCiAgICAgICAgICAgICAvLyBXZSByZWR1Y2UgZmlsdGVy
aW5nIHdoZW4gaXQgd291bGQgb3RoZXJ3aXNlIGJlIHZpc2libGUgdG8gc2NyaXB0cy4KICAgICAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIHJlc3BvbnNlIHRhaW50aW5nIG9uY2UgY29t
cHV0ZWQgaW4gTmV0d29yayBQcm9jZXNzLgogICAgICAgICAgICAgYm9vbCBpc1NhbWVPcmlnaW4g
PSBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luID8gbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi0+
Y2FuUmVxdWVzdChyZXNwb25zZS51cmwoKSkgOiBwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwo
cmVzcG9uc2UudXJsKCksIG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpKTsKLSAgICAgICAgICAg
IGlmIChpc1NhbWVPcmlnaW4gJiYgbV9wYXJhbWV0ZXJzLmRlc3RpbmF0aW9uID09IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OkVtcHR5U3RyaW5nKQorICAgICAgICAgICAgaWYgKGlzU2FtZU9y
aWdpbiAmJiBtX3BhcmFtZXRlcnMub3B0aW9ucy5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uOjpFbXB0eVN0cmluZykKICAgICAgICAgICAgICAgICB0eXBlID0gUmVzb3Vy
Y2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6UmVtb3ZlQ29va2llczsKICAgICAgICAgfQog
ICAgICAgICByZXNwb25zZS5zYW5pdGl6ZUhUVFBIZWFkZXJGaWVsZHModHlwZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IDc4ODViOWZiZWUwNTdhZWMz
M2JjZDE3NWQ3MWRhNTVjYmQ1OGYzNDguLjNlZmJhZGI0NjFiMzYzMDY0ZWJjNjlmNDZlNzZkNjc3
MGNiNjQ4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xv
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCkBA
IC0zOCwxMSArMzgsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi1QaW5nTG9hZDo6UGluZ0xvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzLCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3ImLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCitQaW5nTG9hZDo6UGluZ0xv
YWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICA6IG1fcGFyYW1ldGVycyhXVEZNb3Zl
KHBhcmFtZXRlcnMpKQogICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSkKICAgICAsIG1fdGltZW91dFRpbWVyKCp0aGlzLCAmUGluZ0xvYWQ6OnRpbWVv
dXRUaW1lckZpcmVkKQotICAgICwgbV9uZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya0xvYWRDaGVj
a2VyOjpjcmVhdGUobV9wYXJhbWV0ZXJzLm1vZGUsIG1fcGFyYW1ldGVycy5zaG91bGRGb2xsb3dS
ZWRpcmVjdHMsIG1fcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgbV9wYXJhbWV0
ZXJzLnNlc3Npb25JRCwgV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgVVJMIHsgbV9w
YXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5
UmVmKCkpKQorICAgICwgbV9uZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya0xvYWRDaGVja2VyOjpj
cmVhdGUoRmV0Y2hPcHRpb25zIHsgbV9wYXJhbWV0ZXJzLm9wdGlvbnN9LCBtX3BhcmFtZXRlcnMu
c2Vzc2lvbklELCBXVEZNb3ZlKG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwg
VVJMIHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9y
aWdpbi5jb3B5UmVmKCkpKQogewogCiAgICAgaWYgKG1fcGFyYW1ldGVycy5jc3BSZXNwb25zZUhl
YWRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2Fk
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKaW5kZXggYTFlZjZl
NzMxN2ZlNTVmNmM1ZGNmNTNhYzc1NTNhOWNiMDdjOTZhZi4uZDE5NDU5MmNlYTZlZTI0ZWMzMTY5
OTEzM2RjNmI1NmU2NzBmYTRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9QaW5nTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xv
YWQuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZENoZWNrZXI7CiAKIGNsYXNz
IFBpbmdMb2FkIGZpbmFsIDogcHJpdmF0ZSBOZXR3b3JrRGF0YVRhc2tDbGllbnQgewogcHVibGlj
OgotICAgIFBpbmdMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIFdlYkNvcmU6
OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKT4mJik7CisgICAgUGluZ0xvYWQoTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMmJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpOwog
ICAgIAogcHJpdmF0ZToKICAgICB+UGluZ0xvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4
IGE3YzRjMWE1MGYxNDhmYzQyYThiMzM4Y2Q3ZDdhNWM2NDkyNjFmMjkuLjVjNGVjZDhiNDZkOGEz
YTYwMzBjYTY0Nzc1MWZjNzQ3M2I3MTdmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMjks
NiArMjksOCBAQAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgpAQCAtMzc1LDE2ICszNzcsMjAgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZTo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKFdlYlBhZ2VHcm91cFBy
b3h5KiBwYWdlR3JvdXAsIGIKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmFkZE9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5KGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFs
bG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhz
b3VyY2VPcmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3Qs
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5IHsgc291cmNlT3JpZ2luLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlv
bkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zIH0sIDApOworCiB9CiAKIHZvaWQgSW5q
ZWN0ZWRCdW5kbGU6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0cmlu
ZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
KQogewogICAgIFNlY3VyaXR5UG9saWN5OjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLmdldCgpLCBk
ZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJk
b21haW5zKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IHsgc291cmNl
T3JpZ2luLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zIH0sIDApOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpyZXNldE9y
aWdpbkFjY2Vzc1doaXRlbGlzdHMoKQogewogICAgIFNlY3VyaXR5UG9saWN5OjpyZXNldE9yaWdp
bkFjY2Vzc1doaXRlbGlzdHMoKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cyB7
IH0sIDApOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKaW5kZXggZDA1NjMxOTRiNjVhOTY3ZDY5NGJiZDFkNmM1MWMyYTQ4NjRkMGVh
OS4uZDFmZmE2M2I0NDliZTdiNWQ5MjVjYzgxYTBlODA3YWE1OTU2ZDZkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cApAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAgbG9hZFBh
cmFtZXRlcnMubmVlZHNDZXJ0aWZpY2F0ZUluZm8gPSByZXNvdXJjZUxvYWRlci5zaG91bGRJbmNs
dWRlQ2VydGlmaWNhdGVJbmZvKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubWF4aW11bUJ1ZmZlcmlu
Z1RpbWUgPSBtYXhpbXVtQnVmZmVyaW5nVGltZTsKICAgICBsb2FkUGFyYW1ldGVycy5kZXJpdmVk
Q2FjaGVkRGF0YVR5cGVzVG9SZXRyaWV2ZSA9IHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5kZXJp
dmVkQ2FjaGVkRGF0YVR5cGVzVG9SZXRyaWV2ZTsKLSAgICBsb2FkUGFyYW1ldGVycy5kZXN0aW5h
dGlvbiA9IHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5kZXN0aW5hdGlvbjsKKyAgICBsb2FkUGFy
YW1ldGVycy5vcHRpb25zID0gcmVzb3VyY2VMb2FkZXIub3B0aW9ucygpOwogCiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhbHNvIHNhbml0aXplIHJlZGlyZWN0IHJlc3BvbnNlIGZvciBuYXZpZ2F0
aW9ucy4KICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2Vz
cyA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVzdHJpY3RlZEhU
VFBSZXNwb25zZUFjY2VzcygpICYmIHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5tb2RlICE9IEZl
dGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGU7CkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJh
bWVMb2FkZXIsIHVuc2kKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0ID0gc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5jb3JlRnJhbWUoKSA6IG51bGxwdHIpOwogICAgIGxv
YWRQYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzID0gUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5yZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNj
ZXNzKCk7CiAgICAgLy8gRklYTUU6IFVzZSB0aGUgcHJvcGVyIGRlc3RpbmF0aW9uIG9uY2UgYWxs
IGZldGNoIG9wdGlvbnMgYXJlIHBhc3NlZC4KLSAgICBsb2FkUGFyYW1ldGVycy5kZXN0aW5hdGlv
biA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtcHR5U3RyaW5nOworICAgIGxvYWRQYXJh
bWV0ZXJzLm9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpF
bXB0eVN0cmluZzsKIAogICAgIGRhdGEuc2hyaW5rKDApOwogCkBAIC00NzAsOCArNDcwLDggQEAg
dm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28KICAgICBsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4g
PSAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lv
bklEID0gZnJhbWUucGFnZSgpID8gZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6Ok9taXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOwotICAgIGxvYWRQYXJhbWV0ZXJzLm1vZGUgPSBvcHRp
b25zLm1vZGU7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkRm9sbG93UmVkaXJlY3RzID0gb3B0
aW9ucy5yZWRpcmVjdCA9PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CisgICAgbG9h
ZFBhcmFtZXRlcnMub3B0aW9ucyA9IG9wdGlvbnM7CisgICAgbG9hZFBhcmFtZXRlcnMub3JpZ2lu
YWxSZXF1ZXN0SGVhZGVycyA9IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnM7CiAgICAgbG9hZFBhcmFt
ZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoJmZyYW1lKTsKICAgICBsb2FkUGFyYW1l
dGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2VzcygpOwog
ICAgIGlmICghZG9jdW1lbnQtPnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpKSB7CkBAIC00OTIsNyArNDkyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3Rh
cnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28KICAg
ICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgIG1fcGluZ0xvYWRDb21wbGV0aW9uSGFu
ZGxlcnMuYWRkKGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6TG9hZFBpbmcoV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIG9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkxvYWRQaW5nIHsgbG9hZFBhcmFtZXRlcnMg
fSwgMCk7CiB9CiAKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFBpbmdMb2FkKHVp
bnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYmIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UpCkBAIC01MzIsNyArNTMyLDcgQEAgdm9pZCBXZWJMb2FkZXJT
dHJhdGVneTo6cHJlY29ubmVjdFRvKEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgY29uc3QgV2Vi
Q29yZTo6VVIKICAgICBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVj
dE9ubHk6OlllczsKICAgICBwYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNj
ZXNzID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5yZXN0cmljdGVk
SFRUUFJlc3BvbnNlQWNjZXNzKCk7CiAgICAgLy8gRklYTUU6IFVzZSB0aGUgcHJvcGVyIGRlc3Rp
bmF0aW9uIG9uY2UgYWxsIGZldGNoIG9wdGlvbnMgYXJlIHBhc3NlZC4KLSAgICBwYXJhbWV0ZXJz
LmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1wdHlTdHJpbmc7Cisg
ICAgcGFyYW1ldGVycy5vcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbjo6RW1wdHlTdHJpbmc7CiAKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlByZWNvbm5lY3RUbyhwcmVjb25uZWN0aW9uSWRl
bnRpZmllciwgV1RGTW92ZShwYXJhbWV0ZXJzKSksIDApOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337717</attachid>
            <date>2018-04-11 11:09:26 -0700</date>
            <delta_ts>2018-04-11 12:05:14 -0700</delta_ts>
            <desc>Rebased</desc>
            <filename>bug-184374-20180411110924.patch</filename>
            <type>text/plain</type>
            <size>34033</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIyNTNkNzlkN2EzMjA4
MmIyNGYwZTVjNmUyYjRjNTdhMTQwZWY2OS4uNTgwYjUwM2RiNjlmMjJkYjYxZTk4ZjZiMWIyYzc3
YmVjN2JiYTk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA0LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIEZldGNoT3B0aW9u
cyBhbmQgU2VjdXJpdHlPcmlnaW4gYXMgbG9hZCBwYXJhbWV0ZXJzIGZyb20gV2ViUHJvY2VzcyB0
byBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0Mzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIFNlY3VyaXR5T3JpZ2luIGVuY29kZS9kZWNvZGUgcm91dGlu
ZXMuCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisKIDIwMTgtMDQtMTEgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFByZXZlbnRpdmVseSBl
eHBlY3QgVVRGOCBzdHJpbmdzIGZyb20gbGlid2VicnRjIFNEUCBhbmQgZXJyb3IgbWVzc2FnZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggODQ0YmZhODgyYjFhN2U1Y2ZiZmUxZWUwZGE2OGE4ZDBjYzdiMzM0OS4uODE3
NzQyY2QzMGQwYzJmMTJkNzYzM2U2ZDU2YzJmOWRhMmJlZjE3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1MiBAQAorMjAxOC0wNC0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgUGFzcyBGZXRjaE9wdGlvbnMgYW5kIFNlY3VyaXR5T3JpZ2luIGFzIGxvYWQgcGFy
YW1ldGVycyBmcm9tIFdlYlByb2Nlc3MgdG8gTmV0d29ya1Byb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDM3NAorCisgICAgICAgIFJldmll
d2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFBhc3MgZnVsbCBGZXRjaE9wdGlvbnMgcGFy
YW1ldGVycyBhcyBwYXJ0IG9mIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLgorICAgICAg
ICBUaGlzIHdpbGwgYWxsb3cgaGFuZGxpbmcgcmVkaXJlY3Rpb24gbW9kZSBhcyB3ZWxsIGFzIGNy
ZWRlbnRpYWxzIGluIGNhc2Ugb2YgY3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9ucy4KKyAgICAgICAg
SW4gY2FzZSBvZiBTYW1lT3JpZ2luIGNyZWRlbnRpYWxzIGFuZCB0aGVyZSBpcyBhIHJlZGlyZWN0
aW9uIGZyb20gc2FtZS1vcmlnaW4gdG8gY3Jvc3Mtb3JpZ2luLAorICAgICAgICB3ZSB3aWxsIGJl
IGFibGUgdG8gc3RvcCB1c2luZyBjcmVkZW50aWFscyB3aXRob3V0IGdvaW5nIHRvIFdlYlByb2Nl
c3MuCisKKyAgICAgICAgVG8gaGFuZGxlIHByb3Blcmx5IGNyb3NzLW9yaWdpbiBjaGVja3MsIHdl
IGhhdmUgdG8gYmUgYWJsZSB0byB1c2UgU2VjdXJpdHlPcmlnaW4gYXMgaW4gV2ViUHJvY2Vzcy4K
KyAgICAgICAgV2UgbWFrZSBXZWJQcm9jZXNzIHNlbmRzIE9yaWdpbiBBY2Nlc3MgV2hpdGUgbGlz
dCBpbmZvcm1hdGlvbiB0byBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgVGhpcyBhbGxvd3Mgc3Vw
cG9ydGluZyB0aGUgd2hpdGUgbGlzdCB3aGVuIGRvaW5nIGxvYWRpbmcgaW4gTmV0d29ya1Byb2Nl
c3MuCisgICAgICAgIFRoaXMgb25seSB3b3JrcyBjb25zaXN0ZW50bHkgaWYgYWxsIFdlYlByb2Nl
c3NlcyBzaGFyZSB0aGUgc2FtZSB3aGl0ZWxpc3QuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpy
ZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENo
ZWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVkaXJl
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRpbnVlQ2hl
Y2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpjaGVj
a0NPUlNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpjaGVj
a0NPUlNSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hl
Y2tlcjo6Y2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVmbGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrTG9hZENoZWNrZXI6OmRvZXNOb3ROZWVkQ09SU0NoZWNrIGNvbnN0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0xvYWRDaGVja2VyOjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6UGlu
Z0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJl
Y3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpyZXNldE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBp
bmdMb2FkKToKKwogMjAxOC0wNC0xMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5IGxlYWtz
IGl0cyB3bF9kaXNwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggZGNj
MTUyN2M5MTI0OWRmZmU3YTkxOTkxMTNjYWFjOWY2YTEwZTRiNC4uOWI3MmQ2NjE5YzZmOGYwM2Fl
ZmE0NTU0MjRkMDYwZWQwYjY4MGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
aApAQCAtMjA2LDYgKzIwNiw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGRlY29kZShEZWNvZGVy
Jik7CisKIHByaXZhdGU6CiAgICAgU2VjdXJpdHlPcmlnaW4oKTsKICAgICBleHBsaWNpdCBTZWN1
cml0eU9yaWdpbihjb25zdCBVUkwmKTsKQEAgLTI0MSw0ICsyNDQsNTUgQEAgYm9vbCBzaG91bGRU
cmVhdEFzUG90ZW50aWFsbHlUcnVzdHdvcnRoeShjb25zdCBVUkwmKTsKIGJvb2wgb3JpZ2luc01h
dGNoKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mKTsKIGJvb2wg
b3JpZ2luc01hdGNoKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgU2VjdXJpdHlPcmlnaW4q
KTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgU2VjdXJpdHlPcmlnaW46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9kYXRh
OworICAgIGVuY29kZXIgPDwgbV9kb21haW47CisgICAgZW5jb2RlciA8PCBtX2ZpbGVQYXRoOwor
ICAgIGVuY29kZXIgPDwgbV9pc1VuaXF1ZTsKKyAgICBlbmNvZGVyIDw8IG1fdW5pdmVyc2FsQWNj
ZXNzOworICAgIGVuY29kZXIgPDwgbV9kb21haW5XYXNTZXRJbkRPTTsKKyAgICBlbmNvZGVyIDw8
IG1fY2FuTG9hZExvY2FsUmVzb3VyY2VzOworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3N0b3Jh
Z2VCbG9ja2luZ1BvbGljeSk7CisgICAgZW5jb2RlciA8PCBtX2VuZm9yY2VzRmlsZVBhdGhTZXBh
cmF0aW9uOworICAgIGVuY29kZXIgPDwgbV9uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNR
dWlyazsKKyAgICBlbmNvZGVyIDw8IG1faXNQb3RlbnRpYWxseVRydXN0d29ydGh5OworICAgIGVu
Y29kZXIgPDwgbV9pc0xvY2FsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBpbmxpbmUg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9yaWdpbjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+IGRhdGE7Cisg
ICAgZGVjb2RlciA+PiBkYXRhOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBhdXRvIG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS0+cHJv
dG9jb2wsIGRhdGEtPmhvc3QsIGRhdGEtPnBvcnQpOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShvcmlnaW4tPm1fZG9tYWluKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShvcmlnaW4tPm1fZmlsZVBhdGgpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdpbi0+bV9pc1VuaXF1ZSkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3JpZ2luLT5tX3VuaXZl
cnNhbEFjY2VzcykpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUob3JpZ2luLT5tX2RvbWFpbldhc1NldEluRE9NKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcmlnaW4tPm1fY2FuTG9hZExvY2FsUmVzb3Vy
Y2VzKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ob3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3JpZ2luLT5tX2VuZm9yY2VzRmlsZVBhdGhT
ZXBhcmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShvcmlnaW4tPm1fbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmspKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdpbi0+bV9p
c1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdpbi0+bV9pc0xvY2FsKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICByZXR1cm4gV1RGTW92ZShvcmlnaW4pOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDFjMzc5OWU2MjM0Y2Nl
YTk2NDcwNmY4MzBhMWU2M2M2M2Y3N2I1ZmMuLmU3ZDU5MjZmNTU5MmUzMzM3Y2Q3MjIxNDdjZDYx
MmU2NjAwMTllMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01NSw2ICs1NSw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CiAjaW5jbHVk
ZSA8cGFsL1Nlc3Npb25JRC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTI0OCwx
NCArMjQ5LDE0IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBlcmZvcm1T
eW5jaHJvbm91c0xvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhCiAgICAgbG9hZGVyLT5zdGFydCgp
OwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyhOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBIVFRQSGVhZGVyTWFw
JiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycykKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFt
ZXRlcnMpCiB7CiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBsb2FkUGFyYW1ldGVycy5pZGVudGlm
aWVyXSAoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKSB7CiAgICAgICAgIGRpZEZpbmlzaFBpbmdMb2FkKGlkZW50aWZpZXIsIGVycm9y
LCByZXNwb25zZSk7CiAgICAgfTsKIAogICAgIC8vIFBpbmdMb2FkIG1hbmFnZXMgaXRzIG93biBs
aWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1cnBvc2UgaGFzIGJlZW4gZnVsZmls
bGVkLgotICAgIG5ldyBQaW5nTG9hZChXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgV1RGTW92ZShv
cmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IG5ldyBQaW5nTG9hZChXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRG
aW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKQEAgLTUxMyw0
ICs1MTQsMTkgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlU3Rv
cmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZShQQUw6OlMKICNlbmRpZgogfQogCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblBy
b3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucykKK3sKKyAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc291cmNlT3JpZ2lu
KS5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWlucyk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0cmluZyYgc291cmNl
T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQoreworICAg
IFNlY3VyaXR5UG9saWN5OjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLmdldCgpLCBkZXN0aW5hdGlv
blByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsK
K30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVzZXRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RzKCkKK3sKKyAgICBTZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDM4MDQzZDAxMWNmYmNkNzJhY2UwMmI4NWQ1NTA4M2UyZGNiNzAwY2IuLjRm
ZGZiZjA3NjRmMWYwNGFlZmZjOWUwYjIwYTk0NTk0NWNmZGQ4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVS
ZXNvdXJjZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBw
ZXJmb3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIFJl
ZjxNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJv
bm91c0xvYWQ6OkRlbGF5ZWRSZXBseT4mJik7Ci0gICAgdm9pZCBsb2FkUGluZyhOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYmLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycyk7CisgICAgdm9pZCBsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyYmKTsKICAgICB2b2lkIHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgcHJlY29ubmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBOZXR3b3Jr
TG9hZFBhcmFtZXRlcnMmJik7CiAKQEAgLTE0MCw2ICsxNDAsMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NG
b3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCk7CiAKKyAg
ICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0cmluZyYgc291cmNl
T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICB2
b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0cmluZyYgc291cmNl
T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICB2
b2lkIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOworCiAgICAgUmVmPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPE5ldHdv
cmtTb2NrZXRTdHJlYW0+PiBtX25ldHdvcmtTb2NrZXRTdHJlYW1zOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMTYzZmYwMzQwMjJlNDcxN2QxNzFiZmU4
YTVhYjg2NmM3ZGZhZDI5ZC4uMDI3MzgyMWVlNDk1NjYwMTU4YzM1NjQzYmE3NWRkM2ZhZjZlNjQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yNCw3
ICsyNCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKIAogICAgIFNjaGVkdWxlUmVzb3VyY2VMb2FkKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykKICAgICBQZXJmb3Jt
U3luY2hyb25vdXNMb2FkKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVz
b3VyY2VMb2FkUGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiBkYXRhKSBEZWxh
eWVkCi0gICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBy
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwIG9yaWdpbmFsUmVx
dWVzdEhlYWRlcnMpCisgICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJlbW92ZUxvYWRJZGVudGlmaWVy
KHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpCiAgICAgU2V0RGVmZXJzTG9hZGluZyh1
aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sIGRlZmVycykKICAgICBQcmVmZXRj
aEROUyhTdHJpbmcgaG9zdG5hbWUpCkBAIC02MCw0ICs2MCw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFJlbW92ZVN0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCk7CiAgICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZy
YW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCk7CisK
KyAgICBBZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTdHJpbmcgc291cmNlT3JpZ2luLCBT
dHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgUmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoU3RyaW5nIHNvdXJjZU9yaWdpbiwgU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IFN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMp
OworICAgIFJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDgyNTQ5
ZWVhZjQ0Nzk4YzE2MWM1MzlmODdhZDA4YjczY2E2N2VjYmIuLjZiMTQ5NDM4OGM3OTFlZTM5YzZj
ODkxMGI1ZjMxZGFkOTE2MTlmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTQxLDE3ICs0MSwyNiBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtMb2FkQ2hl
Y2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6TW9kZSBtb2Rl
LCBib29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVy
bCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbikKLSAgICA6IG1fbW9kZSht
b2RlKQotICAgICwgbV9zaG91bGRGb2xsb3dSZWRpcmVjdHMoc2hvdWxkRm9sbG93UmVkaXJlY3Rz
KQotICAgICwgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeShzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSkKK05ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6SFRU
UEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbikKKyAgICA6IG1fb3B0aW9ucyhXVEZNb3ZlKG9w
dGlvbnMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9vcmlnaW5hbFJl
cXVlc3RIZWFkZXJzKFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0SGVhZGVycykpCiAgICAgLCBtX3Vy
bChXVEZNb3ZlKHVybCkpCiAgICAgLCBtX29yaWdpbihXVEZNb3ZlKHNvdXJjZU9yaWdpbikpCiB7
Ci0gICAgaWYgKG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMgfHwgbV9tb2RlID09
IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbikKLSAgICAgICAgbV9pc1NhbWVPcmlnaW5S
ZXF1ZXN0ID0gbV9vcmlnaW4tPmNhblJlcXVlc3QobV91cmwpOworICAgIGlmIChtX29wdGlvbnMu
bW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMgfHwgbV9vcHRpb25zLm1vZGUgPT0gRmV0
Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luKQorICAgICAgICBtX2lzU2FtZU9yaWdpblJlcXVl
c3QgPSBtX3VybC5wcm90b2NvbElzRGF0YSgpIHx8IG1fdXJsLnByb3RvY29sSXNCbG9iKCkgfHwg
bV9vcmlnaW4tPmNhblJlcXVlc3QobV91cmwpOworICAgIHN3aXRjaCAob3B0aW9ucy5jcmVkZW50
aWFscykgeworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZToKKyAg
ICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
OjpVc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
czo6U2FtZU9yaWdpbjoKKyAgICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG1faXNT
YW1lT3JpZ2luUmVxdWVzdCA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UgOiBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdDoKKyAgICAgICAgbV9zdG9yZWRDcmVkZW50aWFs
c1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQogfQogCiBOZXR3b3JrTG9hZENoZWNrZXI6On5OZXR3b3JrTG9hZENoZWNrZXIo
KSA9IGRlZmF1bHQ7CkBAIC03Nyw3ICs4Niw3IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpj
aGVja1JlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzCiAg
ICAgbV9wcmV2aW91c1VSTCA9IFdURk1vdmUobV91cmwpOwogICAgIG1fdXJsID0gcmVxdWVzdC51
cmwoKTsKIAotICAgIGlmICghbV9zaG91bGRGb2xsb3dSZWRpcmVjdHMpIHsKKyAgICBpZiAobV9v
cHRpb25zLnJlZGlyZWN0ICE9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdykgewogICAg
ICAgICBoYW5kbGVyKHJldHVybkVycm9yKEFTQ0lJTGl0ZXJhbCgiTG9hZCBwYXJhbWV0ZXJzIGRv
IG5vdCBhbGxvdyBmb2xsb3dpbmcgcmVkaXJlY3Rpb25zIikpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTEwNSwxMiArMTE0LDEyIEBAIFJlc291cmNlRXJyb3IgTmV0d29ya0xvYWRDaGVj
a2VyOjp2YWxpZGF0ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIGlmIChtX21vZGUgPT0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpOb0NvcnMpIHsKKyAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpOb0NvcnMpIHsKICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNw
b25zZTo6VGFpbnRpbmc6Ok9wYXF1ZSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0g
ICAgQVNTRVJUKG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOworICAgIEFTU0VS
VChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOwogCiAgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKICAgICBpZiAoIVdlYkNvcmU6OnBhc3Nlc0FjY2Vzc0NvbnRyb2xD
aGVjayhyZXNwb25zZSwgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgKm1fb3JpZ2luLCBlcnJv
ck1lc3NhZ2UpKQpAQCAtMTQ1LDcgKzE1NCw3IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpj
b250aW51ZUNoZWNraW5nUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBWYWxpCiAg
ICAgaWYgKGF1dG8qIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IHRoaXMtPmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpKSB7CiAgICAgICAgIGlmIChpc1JlZGlyZWN0ZWQoKSkgewogICAgICAgICAgICAg
VVJMIHVybCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgICAgICAgICBhdXRvIHR5cGUgPSBtX21vZGUg
PT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TmF2aWdhdGlvbiA6IENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZDsKKyAgICAgICAgICAgIGF1dG8gdHlwZSA9IG1fb3B0
aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgPyBDb250ZW50U2VjdXJp
dHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Ok5hdmlnYXRpb24gOiBDb250ZW50U2VjdXJp
dHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQ7CiAgICAgICAgICAgICBjb250ZW50
U2VjdXJpdHlQb2xpY3ktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZCh1cmwsIHR5cGUp
OwogICAgICAgICAgICAgaWYgKHVybCAhPSByZXF1ZXN0LnVybCgpKQogICAgICAgICAgICAgICAg
IHJlcXVlc3Quc2V0VVJMKHVybCk7CkBAIC0xNTYsMTIgKzE2NSwxNSBAQCB2b2lkIE5ldHdvcmtM
b2FkQ2hlY2tlcjo6Y29udGludWVDaGVja2luZ1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgVmFsaQogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKG1fb3B0aW9ucy5jcmVkZW50
aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKQorICAgICAgICBt
X3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gIChtX2lzU2FtZU9yaWdpblJlcXVlc3QgJiYgbV9v
cmlnaW4tPmNhblJlcXVlc3QocmVxdWVzdC51cmwoKSkpID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k6OlVzZSA6IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKKwogICAgIGlmIChk
b2VzTm90TmVlZENPUlNDaGVjayhyZXF1ZXN0LnVybCgpKSkgewogICAgICAgICBoYW5kbGVyKFdU
Rk1vdmUocmVxdWVzdCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fbW9k
ZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4pIHsKKyAgICBpZiAobV9vcHRpb25z
Lm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luKSB7CiAgICAgICAgIGhhbmRs
ZXIocmV0dXJuRXJyb3IoQVNDSUlMaXRlcmFsKCJTYW1lT3JpZ2luIG1vZGUgZG9lcyBub3QgYWxs
b3cgY3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIikpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTE3Nyw3ICsxODksNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y29udGludWVDaGVja2lu
Z1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVmFsaQogCiB2b2lkIE5ldHdvcmtM
b2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBW
YWxpZGF0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKG1fbW9kZSA9PSBGZXRj
aE9wdGlvbnM6Ok1vZGU6OkNvcnMpOworICAgIEFTU0VSVChtX29wdGlvbnMubW9kZSA9PSBGZXRj
aE9wdGlvbnM6Ok1vZGU6OkNvcnMpOwogCiAgICAgLy8gRXhjZXB0IGluIGNhc2Ugd2hlcmUgcHJl
ZmxpZ2h0IGlzIG5lZWRlZCwgbG9hZGluZyBzaG91bGQgYmUgYWJsZSB0byBjb250aW51ZSBvbiBp
dHMgb3duLgogICAgIGlmIChtX2lzU2ltcGxlUmVxdWVzdCAmJiBpc1NpbXBsZUNyb3NzT3JpZ2lu
QWNjZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgbV9vcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzKSkgewpAQCAtMTkwLDcgKzIwMiw3IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVj
a0NPUlNSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGlkYXRpb25ICiAKIHZv
aWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBWYWxpZGF0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAg
QVNTRVJUKG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOworICAgIEFTU0VSVCht
X29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOwogICAgIEFTU0VSVChp
c1JlZGlyZWN0ZWQoKSk7CiAKICAgICAvLyBGb3JjZSBhbnkgc3Vic2VxdWVudCByZXF1ZXN0IHRv
IHVzZSB0aGVzZSBjaGVja3MuCkBAIC0yMTUsNyArMjI3LDcgQEAgdm9pZCBOZXR3b3JrTG9hZENo
ZWNrZXI6OmNoZWNrQ09SU1JlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIFYKIAogdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3RXaXRoUHJl
ZmxpZ2h0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGlkYXRpb25IYW5kbGVyJiYgaGFu
ZGxlcikKIHsKLSAgICBBU1NFUlQobV9tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7
CisgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7
CiAKICAgICBtX2lzU2ltcGxlUmVxdWVzdCA9IGZhbHNlOwogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgcHJvYmFibHkgcGFydGl0aW9uIHByZWZsaWdodCByZXN1bHQgY2FjaGUgYnkgc2Vzc2lvbiBJ
RC4KQEAgLTI1NCw3ICsyNjYsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JT
UmVxdWVzdFdpdGhQcmVmbGlnaHQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdAogCiBib29sIE5l
dHdvcmtMb2FkQ2hlY2tlcjo6ZG9lc05vdE5lZWRDT1JTQ2hlY2soY29uc3QgVVJMJiB1cmwpIGNv
bnN0CiB7Ci0gICAgaWYgKG1fbW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycyB8fCBt
X21vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkKKyAgICBpZiAobV9vcHRpb25z
Lm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMgfHwgbV9vcHRpb25zLm1vZGUgPT0g
RmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICByZXR1cm4gbV9pc1NhbWVPcmlnaW5SZXF1ZXN0ICYmIG1fb3JpZ2luLT5jYW5SZXF1ZXN0KHVy
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuaAppbmRleCA0MGRhNTkwNWMyYmQ5OGM4ZDMxMTgwNjUxY2EyMTM5NDE5NTFlNjY2Li41ZmFj
MzYzOTZjYTgzYmQyNzQzZWE0YWQwODcxNDZiYjBiZDcxM2I0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAgLTQyLDkgKzQyLDkg
QEAgY2xhc3MgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOwogCiBjbGFzcyBOZXR3b3JrTG9h
ZENoZWNrZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrTG9hZENoZWNrZXI+IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtMb2FkQ2hlY2tlcj4gY3JlYXRlKFdlYkNvcmU6OkZl
dGNoT3B0aW9uczo6TW9kZSBtb2RlLCBib29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cywgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsSGVh
ZGVycywgV2ViQ29yZTo6VVJMJiYgdXJsLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgc291cmNlT3JpZ2luKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0xvYWRDaGVja2VyPiBjcmVh
dGUoV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxIZWFkZXJzLCBXZWJDb3JlOjpV
UkwmJiB1cmwsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4p
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrTG9hZENoZWNrZXIg
eyBtb2RlLCBzaG91bGRGb2xsb3dSZWRpcmVjdHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBz
ZXNzaW9uSUQsIFdURk1vdmUob3JpZ2luYWxIZWFkZXJzKSwgV1RGTW92ZSh1cmwpLCBXVEZNb3Zl
KHNvdXJjZU9yaWdpbikgfSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtM
b2FkQ2hlY2tlciB7IFdURk1vdmUob3B0aW9ucyksIHNlc3Npb25JRCwgV1RGTW92ZShvcmlnaW5h
bEhlYWRlcnMpLCBXVEZNb3ZlKHVybCksIFdURk1vdmUoc291cmNlT3JpZ2luKSB9KTsKICAgICB9
CiAgICAgfk5ldHdvcmtMb2FkQ2hlY2tlcigpOwogCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoK
ICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7IH0KIAogcHJp
dmF0ZToKLSAgICBOZXR3b3JrTG9hZENoZWNrZXIoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2Rl
LCBib29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFdlYkNvcmU6
OlVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYpOworICAgIE5ldHdvcmtM
b2FkQ2hlY2tlcihXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNv
cmU6OkhUVFBIZWFkZXJNYXAmJiwgV2ViQ29yZTo6VVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJik7CiAKICAgICBXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kqIGNv
bnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0OwogICAgIGJvb2wgaXNDaGVja2luZygpIGNvbnN0
IHsgcmV0dXJuICEhbV9jb3JzUHJlZmxpZ2h0Q2hlY2tlcjsgfQpAQCAtODksOCArODksNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpCbG9j
a2VkU3RhdHVzJik+JiYpOwogI2VuZGlmCiAKLSAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Ok1v
ZGUgbV9tb2RlOwotICAgIGJvb2wgbV9zaG91bGRGb2xsb3dSZWRpcmVjdHM7CisgICAgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zIG1fb3B0aW9uczsKICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RI
ZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAppbmRleCAyM2I4MTIzYmU2OWJhYzhkYjM4ZTg1ZTI4Yzk1MGQ5Y2ZiMjQ2ZDQyLi43OWM4
MjdjNDg3NTNlMzhiMjY4NzUxMjJjOTZiYWU5MjQyYWU2OTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcApAQCAtODcsMTAgKzg3LDEwIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KHNvdXJjZU9yaWdpbik7CiAgICAgaWYgKHNvdXJjZU9y
aWdpbikKLSAgICAgICAgZW5jb2RlciA8PCBzb3VyY2VPcmlnaW4tPmRhdGEoKTsKLSAgICBlbmNv
ZGVyLmVuY29kZUVudW0obW9kZSk7Ci0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRlc3RpbmF0aW9u
KTsKKyAgICAgICAgZW5jb2RlciA8PCAqc291cmNlT3JpZ2luOworICAgIGVuY29kZXIgPDwgb3B0
aW9uczsKICAgICBlbmNvZGVyIDw8IGNzcFJlc3BvbnNlSGVhZGVyczsKKyAgICBlbmNvZGVyIDw8
IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnM7CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQogICAgIGVuY29kZXIgPDwgbWFpbkRvY3VtZW50VVJMOwpAQCAtMTcxLDE5ICsxNzEsMjEgQEAg
Ym9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgTmV0d29ya1Jlc291cmMKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1NvdXJj
ZU9yaWdpbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaGFzU291cmNlT3JpZ2lu
KSB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRhPiBzb3VyY2VPcmln
aW5EYXRhOwotICAgICAgICBkZWNvZGVyID4+IHNvdXJjZU9yaWdpbkRhdGE7Ci0gICAgICAgIGlm
ICghc291cmNlT3JpZ2luRGF0YSkKKyAgICAgICAgcmVzdWx0LnNvdXJjZU9yaWdpbiA9IFNlY3Vy
aXR5T3JpZ2luOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGlmICghcmVzdWx0LnNvdXJjZU9y
aWdpbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgQVNTRVJUKCFzb3VyY2VP
cmlnaW5EYXRhLT5pc0VtcHR5KCkpOwotICAgICAgICByZXN1bHQuc291cmNlT3JpZ2luID0gc291
cmNlT3JpZ2luRGF0YS0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICB9Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0ocmVzdWx0Lm1vZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmRlc3RpbmF0aW9uKSkKKworICAgIHN0ZDo6b3B0
aW9uYWw8RmV0Y2hPcHRpb25zPiBvcHRpb25zOworICAgIGRlY29kZXIgPj4gb3B0aW9uczsKKyAg
ICBpZiAoIW9wdGlvbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQub3B0aW9u
cyA9ICpvcHRpb25zOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY3NwUmVzcG9u
c2VIZWFkZXJzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0Lm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0Lm1haW5Eb2N1bWVudFVSTCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKaW5kZXgg
OTY0ZmQwNTFkNGM1MDA2MTM2MzBmNmE0YjYxZjk3ZTRmM2E0Nzk1NC4uNzQyOTBjZTQ4MThmZjFj
MTFiNDE3Mzg2NTEyNTI5NTE2MTQyNWJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAt
NTYsOSArNTYsOSBAQCBwdWJsaWM6CiAgICAgU2Vjb25kcyBtYXhpbXVtQnVmZmVyaW5nVGltZTsK
ICAgICBWZWN0b3I8U3RyaW5nPiBkZXJpdmVkQ2FjaGVkRGF0YVR5cGVzVG9SZXRyaWV2ZTsKICAg
ICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNvdXJjZU9yaWdpbjsKLSAgICBXZWJD
b3JlOjpGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZTsKLSAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uOworICAgIFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRp
b25zOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzPiBjc3BSZXNwb25zZUhlYWRlcnM7CisgICAgV2ViQ29yZTo6SFRUUEhlYWRl
ck1hcCBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwogICAgIGJvb2wgc2hvdWxkUmVzdHJpY3RIVFRQ
UmVzcG9uc2VBY2Nlc3MgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCBmMWNiNWFiYWZjYzEwNTM3YTc3NjFiZjJmMWU1MDk5NTM3MTcw
YTZjLi5iY2IzNDMwYjNjNmEzN2U4NmMxZjFhMDgxNmI2NzZiMjg4MmIzMGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC00NzIsNyArNDcyLDcgQEAgUmVzb3VyY2VSZXNwb25zZSBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnNhbml0aXplUmVzcG9uc2VJZlBvc3NpYmxlKFJlc291cmNlUmVzcG8KICAgICAgICAg
ICAgIC8vIFdlIHJlZHVjZSBmaWx0ZXJpbmcgd2hlbiBpdCB3b3VsZCBvdGhlcndpc2UgYmUgdmlz
aWJsZSB0byBzY3JpcHRzLgogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgcmVz
cG9uc2UgdGFpbnRpbmcgb25jZSBjb21wdXRlZCBpbiBOZXR3b3JrIFByb2Nlc3MuCiAgICAgICAg
ICAgICBib29sIGlzU2FtZU9yaWdpbiA9IG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gPyBtX3Bh
cmFtZXRlcnMuc291cmNlT3JpZ2luLT5jYW5SZXF1ZXN0KHJlc3BvbnNlLnVybCgpKSA6IHByb3Rv
Y29sSG9zdEFuZFBvcnRBcmVFcXVhbChyZXNwb25zZS51cmwoKSwgbV9wYXJhbWV0ZXJzLnJlcXVl
c3QudXJsKCkpOwotICAgICAgICAgICAgaWYgKGlzU2FtZU9yaWdpbiAmJiBtX3BhcmFtZXRlcnMu
ZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1wdHlTdHJpbmcpCisg
ICAgICAgICAgICBpZiAoaXNTYW1lT3JpZ2luICYmIG1fcGFyYW1ldGVycy5vcHRpb25zLmRlc3Rp
bmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtcHR5U3RyaW5nKQogICAgICAg
ICAgICAgICAgIHR5cGUgPSBSZXNvdXJjZVJlc3BvbnNlOjpTYW5pdGl6YXRpb25UeXBlOjpSZW1v
dmVDb29raWVzOwogICAgICAgICB9CiAgICAgICAgIHJlc3BvbnNlLnNhbml0aXplSFRUUEhlYWRl
ckZpZWxkcyh0eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAK
aW5kZXggNzg4NWI5ZmJlZTA1N2FlYzMzYmNkMTc1ZDcxZGE1NWNiZDU4ZjM0OC4uM2VmYmFkYjQ2
MWIzNjMwNjRlYmM2OWY0NmU3NmQ2NzcwY2I2NDgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTM4LDExICszOCwxMSBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVBpbmdMb2FkOjpQaW5nTG9hZChOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIEhUVFBIZWFkZXJNYXAmJiBv
cmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
UmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK1BpbmdMb2FkOjpQaW5nTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZUVy
cm9yJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAg
IDogbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCiAgICAgLCBtX2NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQogICAgICwgbV90aW1lb3V0VGltZXIo
KnRoaXMsICZQaW5nTG9hZDo6dGltZW91dFRpbWVyRmlyZWQpCi0gICAgLCBtX25ldHdvcmtMb2Fk
Q2hlY2tlcihOZXR3b3JrTG9hZENoZWNrZXI6OmNyZWF0ZShtX3BhcmFtZXRlcnMubW9kZSwgbV9w
YXJhbWV0ZXJzLnNob3VsZEZvbGxvd1JlZGlyZWN0cywgbV9wYXJhbWV0ZXJzLnN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCBXVEZNb3ZlKG9yaWdpbmFsUmVx
dWVzdEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFt
ZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSkpCisgICAgLCBtX25ldHdvcmtMb2FkQ2hlY2tl
cihOZXR3b3JrTG9hZENoZWNrZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMu
b3B0aW9uc30sIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIFdURk1vdmUobV9wYXJhbWV0ZXJzLm9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9
LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSkpCiB7CiAKICAgICBpZiAobV9w
YXJhbWV0ZXJzLmNzcFJlc3BvbnNlSGVhZGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UGluZ0xvYWQuaAppbmRleCBhMWVmNmU3MzE3ZmU1NWY2YzVkY2Y1M2FjNzU1M2E5Y2IwN2M5NmFm
Li5kMTk0NTkyY2VhNmVlMjRlYzMxNjk5MTMzZGM2YjU2ZTY3MGZhNGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIE5ldHdv
cmtMb2FkQ2hlY2tlcjsKIAogY2xhc3MgUGluZ0xvYWQgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtE
YXRhVGFza0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgUGluZ0xvYWQoTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMmJiwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhl
YWRlcnMsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKTsKKyAgICBQaW5n
TG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKT4mJik7CiAgICAgCiBwcml2YXRlOgogICAgIH5QaW5nTG9hZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggYTdjNGMxYTUwZjE0OGZjNDJhOGIzMzhjZDdkN2E1YzY0
OTI2MWYyOS4uNWM0ZWNkOGI0NmQ4YTNhNjAzMGNhNjQ3NzUxZmM3NDczYjcxN2Y3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIK
ICNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3Js
ZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCkBAIC0z
NzUsMTYgKzM3NywyMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYgogdm9pZCBJbmplY3RlZEJ1
bmRsZTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VP
cmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAg
U2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCksIGRlc3RpbmF0aW9uUHJv
dG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6QWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkgeyBzb3VyY2VPcmlnaW4sIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMg
fSwgMCk7CisKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgU2VjdXJpdHlQb2xpY3k6OnJlbW92ZU9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5n
KHNvdXJjZU9yaWdpbikuZ2V0KCksIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9z
dCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVtb3ZlT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkgeyBzb3VyY2VPcmlnaW4sIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3Rp
bmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMgfSwgMCk7CiB9CiAKIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpCiB7CiAgICAgU2Vj
dXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVzZXRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RzIHsgfSwgMCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6
OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBw
YWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBkMDU2MzE5NGI2NWE5Njdk
Njk0YmJkMWQ2YzUxYzJhNDg2NGQwZWE5Li5kMWZmYTYzYjQ0OWJlN2I1ZDkyNWNjODFhMGU4MDdh
YTU5NTZkNmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVy
JiByZXNvdXJjZUwKICAgICBsb2FkUGFyYW1ldGVycy5uZWVkc0NlcnRpZmljYXRlSW5mbyA9IHJl
c291cmNlTG9hZGVyLnNob3VsZEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBsb2FkUGFy
YW1ldGVycy5tYXhpbXVtQnVmZmVyaW5nVGltZSA9IG1heGltdW1CdWZmZXJpbmdUaW1lOwogICAg
IGxvYWRQYXJhbWV0ZXJzLmRlcml2ZWRDYWNoZWREYXRhVHlwZXNUb1JldHJpZXZlID0gcmVzb3Vy
Y2VMb2FkZXIub3B0aW9ucygpLmRlcml2ZWRDYWNoZWREYXRhVHlwZXNUb1JldHJpZXZlOwotICAg
IGxvYWRQYXJhbWV0ZXJzLmRlc3RpbmF0aW9uID0gcmVzb3VyY2VMb2FkZXIub3B0aW9ucygpLmRl
c3RpbmF0aW9uOworICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSByZXNvdXJjZUxvYWRlci5v
cHRpb25zKCk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFsc28gc2FuaXRpemUgcmVkaXJl
Y3QgcmVzcG9uc2UgZm9yIG5hdmlnYXRpb25zLgogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFJl
c3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5yZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNjZXNzKCkgJiYgcmVzb3VyY2VMb2Fk
ZXIub3B0aW9ucygpLm1vZGUgIT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZTsKQEAgLTQz
NCw3ICs0MzQsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgIGxvYWRQYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KHdlYkZyYW1lID8gd2ViRnJhbWUtPmNvcmVGcmFt
ZSgpIDogbnVsbHB0cik7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVz
cG9uc2VBY2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJl
c3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MoKTsKICAgICAvLyBGSVhNRTogVXNlIHRoZSBwcm9w
ZXIgZGVzdGluYXRpb24gb25jZSBhbGwgZmV0Y2ggb3B0aW9ucyBhcmUgcGFzc2VkLgotICAgIGxv
YWRQYXJhbWV0ZXJzLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1w
dHlTdHJpbmc7CisgICAgbG9hZFBhcmFtZXRlcnMub3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OkVtcHR5U3RyaW5nOwogCiAgICAgZGF0YS5zaHJpbmsoMCk7
CiAKQEAgLTQ3MCw4ICs0NzAsOCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdM
b2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjbwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiA9ICZkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAg
ICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSBmcmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCkt
PnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBs
b2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG9wdGlvbnMuY3JlZGVudGlh
bHMgPT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCA/IFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpEb05vdFVzZSA6IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7Ci0gICAgbG9h
ZFBhcmFtZXRlcnMubW9kZSA9IG9wdGlvbnMubW9kZTsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91
bGRGb2xsb3dSZWRpcmVjdHMgPSBvcHRpb25zLnJlZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVk
aXJlY3Q6OkZvbGxvdzsKKyAgICBsb2FkUGFyYW1ldGVycy5vcHRpb25zID0gb3B0aW9uczsKKyAg
ICBsb2FkUGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzID0gb3JpZ2luYWxSZXF1ZXN0
SGVhZGVyczsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0ID0gc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgm
ZnJhbWUpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNj
ZXNzID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5yZXN0cmljdGVk
SFRUUFJlc3BvbnNlQWNjZXNzKCk7CiAgICAgaWYgKCFkb2N1bWVudC0+c2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkpIHsKQEAgLTQ5Miw3ICs0OTIsNyBAQCB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjbwogICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAg
bV9waW5nTG9hZENvbXBsZXRpb25IYW5kbGVycy5hZGQobG9hZFBhcmFtZXRlcnMuaWRlbnRpZmll
ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyhXVEZNb3Zl
KGxvYWRQYXJhbWV0ZXJzKSwgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksIDApOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TG9h
ZFBpbmcgeyBsb2FkUGFyYW1ldGVycyB9LCAwKTsKIH0KIAogdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6ZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBSZXNvdXJj
ZUVycm9yJiYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKQEAgLTUzMiw3ICs1
MzIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8oRnJhbWVMb2FkZXIm
IGZyYW1lTG9hZGVyLCBjb25zdCBXZWJDb3JlOjpVUgogICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJl
Y29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVzOwogICAgIHBhcmFtZXRlcnMuc2hvdWxk
UmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLnJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MoKTsKICAgICAvLyBGSVhN
RTogVXNlIHRoZSBwcm9wZXIgZGVzdGluYXRpb24gb25jZSBhbGwgZmV0Y2ggb3B0aW9ucyBhcmUg
cGFzc2VkLgotICAgIHBhcmFtZXRlcnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uOjpFbXB0eVN0cmluZzsKKyAgICBwYXJhbWV0ZXJzLm9wdGlvbnMuZGVzdGluYXRpb24g
PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbXB0eVN0cmluZzsKIAogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UHJlY29u
bmVjdFRvKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSwgMCk7
CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>