<?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>151848</bug_id>
          
          <creation_ts>2015-12-03 20:48:34 -0800</creation_ts>
          <short_desc>Web Inspector: Remove untested and unused Worker inspection</short_desc>
          <delta_ts>2016-07-13 13:23:43 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>127634</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>ap</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1146189</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-03 20:48:34 -0800</bug_when>
    <thetext>* SUMMARY
Remove untested and unused Worker inspection.

* NOTES
The inspector frontend currently doesn&apos;t expose UI for debugging workers, so this code has been maintained for a few years without any way for a user to access it. Likewise, some pieces were implemented in V8 and not implemented in JavaScriptCore so it is possible that if tested some pieces would not be fully functional. Rather then keep the code in half-maintained, lets remove it and re-add it when we will focus on adding proper Worker Inspection.

See:
&lt;https://webkit.org/b/127634&gt; Web Inspector: support debugging web workers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146190</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-12-03 20:49:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/23755748&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146192</commentid>
    <comment_count>2</comment_count>
      <attachid>266592</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-03 20:50:10 -0800</bug_when>
    <thetext>Created attachment 266592
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146194</commentid>
    <comment_count>3</comment_count>
      <attachid>266593</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-03 21:01:08 -0800</bug_when>
    <thetext>Created attachment 266593
[PATCH] Proposed Fix

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146195</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-03 21:02:20 -0800</bug_when>
    <thetext>Attachment 266593 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146198</commentid>
    <comment_count>5</comment_count>
      <attachid>266596</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-03 21:07:48 -0800</bug_when>
    <thetext>Created attachment 266596
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146290</commentid>
    <comment_count>6</comment_count>
      <attachid>266596</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-12-04 08:38:49 -0800</bug_when>
    <thetext>Comment on attachment 266596
[PATCH] Proposed Fix

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

r=me with some nits.

&gt; Source/JavaScriptCore/inspector/protocol/Worker.json:-8
&gt; -        },

Please update the legacy protocol files as well.

&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:-19059
&gt; -    &lt;ClCompile Include=&quot;..\bindings\js\WorkerScriptDebugServer.cpp&quot;&gt;

You don&apos;t need to modify the vcxproj files, they aren&apos;t used by anything.

&gt; Source/WebCore/inspector/InspectorConsoleInstrumentation.h:-47
&gt; -inline void InspectorInstrumentation::addMessageToConsole(WorkerGlobalScope* workerGlobalScope, std::unique_ptr&lt;Inspector::ConsoleMessage&gt; message)

Why not remove this method entirely?

&gt; Source/WebCore/inspector/InspectorTimelineAgent.h:95
&gt; +    enum InspectorType { PageInspector };

Might as well nuke this enum too.

&gt; Source/WebCore/inspector/InspectorWebAgentBase.h:58
&gt;  

Should we sink PageAgentContext into WebAgentContext, or keep this around for the future?

&gt; Source/WebCore/inspector/WorkerDebuggerAgent.h:-42
&gt; -class WorkerDebuggerAgent final : public WebDebuggerAgent {

Let&apos;s mark WebDebuggerAgent (as well as other similar sibling classes) as final.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146323</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-04 10:26:47 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 266596 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=266596&amp;action=review
&gt; 
&gt; r=me with some nits.

Thanks!

&gt; &gt; Source/JavaScriptCore/inspector/protocol/Worker.json:-8
&gt; &gt; -        },
&gt; 
&gt; Please update the legacy protocol files as well.

Okay.

&gt; &gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:-19059
&gt; &gt; -    &lt;ClCompile Include=&quot;..\bindings\js\WorkerScriptDebugServer.cpp&quot;&gt;
&gt; 
&gt; You don&apos;t need to modify the vcxproj files, they aren&apos;t used by anything.

Yeah, but as long as the files exist I&apos;m going to update them.


&gt; &gt; Source/WebCore/inspector/InspectorConsoleInstrumentation.h:-47
&gt; &gt; -inline void InspectorInstrumentation::addMessageToConsole(WorkerGlobalScope* workerGlobalScope, std::unique_ptr&lt;Inspector::ConsoleMessage&gt; message)
&gt; 
&gt; Why not remove this method entirely?

I think it would be a good starting point to get console.log working within a Worker without adding complete Worker inspection.


&gt; &gt; Source/WebCore/inspector/InspectorWebAgentBase.h:58
&gt; &gt;  
&gt; 
&gt; Should we sink PageAgentContext into WebAgentContext, or keep this around
&gt; for the future?

Keep it around. If we can&apos;t get to Worker support soon, then maybe, but I&apos;m optimistic.


&gt; &gt; Source/WebCore/inspector/WorkerDebuggerAgent.h:-42
&gt; &gt; -class WorkerDebuggerAgent final : public WebDebuggerAgent {
&gt; 
&gt; Let&apos;s mark WebDebuggerAgent (as well as other similar sibling classes) as
&gt; final.

Where there was a &quot;Web&quot; there was normally a &quot;Page&quot; and &quot;Worker&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146337</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-04 10:53:11 -0800</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/193426&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210624</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-07-13 13:23:43 -0700</bug_when>
    <thetext>*** Bug 148642 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266592</attachid>
            <date>2015-12-03 20:50:10 -0800</date>
            <delta_ts>2015-12-03 21:01:08 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>remove-worker.patch</filename>
            <type>text/plain</type>
            <size>146251</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NzFhODViLi5jMDcwNjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTUtMTIt
MDMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgdW50ZXN0ZWQgYW5kIHVudXNlZCBXb3JrZXIgaW5zcGVjdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXIuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2RlZGlj
YXRlZC13b3JrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rl
cm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29y
a2VyLXdoaWxlLXBhdXNlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zOgorCisyMDE1LTEyLTAzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogVW5za2lwIG1hbnkgaW5zcGVj
dG9yL2RlYnVnZ2VyIHRlc3RzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTE4NDMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDEyMzk0Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotU3RhcnRlZCB3b3JrZXIKLVdvcmtl
ciBjcmVhdGVkCi1kaWRDb25uZWN0VG9Xb3JrZXIKLVNVQ0NFU1M6IFdvcmtlciBwYXVzZWQKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRl
ZC13b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRp
Y2F0ZWQtd29ya2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkZTlmMGYu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGlj
YXRlZC13b3JrZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotdmFyIHdvcmtlcjsKLWZ1bmN0aW9uIHN0YXJ0V29ya2VyQW5kUnVuVGVzdCgpCi17Ci0g
ICAgd29ya2VyID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMiKTsK
LSAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsgfTsKLSAgICB3b3JrZXIu
cG9zdE1lc3NhZ2UoMSk7Ci0gICAgbG9nKCJTdGFydGVkIHdvcmtlciIpOwotICAgIHJ1blRlc3Qo
KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHdvcmtlcklkOwotICAgIHZhciB3
b3JrZXJSZXF1ZXN0SWQgPSAxOwotICAgIGZ1bmN0aW9uIHNlbmRDb21tYW5kVG9Xb3JrZXIobWV0
aG9kLCBwYXJhbXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFu
ZCgiV29ya2VyLnNlbmRNZXNzYWdlVG9Xb3JrZXIiLCB7Ci0gICAgICAgICAgICAid29ya2VySWQi
OiB3b3JrZXJJZCwKLSAgICAgICAgICAgICJtZXNzYWdlIjogewotICAgICAgICAgICAgICAgICJt
ZXRob2QiOiBtZXRob2QsCi0gICAgICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcywKLSAgICAg
ICAgICAgICAgICAiaWQiOiB3b3JrZXJSZXF1ZXN0SWQrKwotICAgICAgICAgICAgfQotICAgICAg
ICB9KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiV29ya2Vy
LmVuYWJsZSIsIHt9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIGlmICgiZXJy
b3IiIGluIG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZB
SUw6IENvdWxkbid0IGVuYWJsZSB3b3JrZXIgZGVidWdnZXI6ICIgKyBtZXNzYWdlT2JqZWN0LmVy
cm9yLm1lc3NhZ2UpOwotICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJb
Ildvcmtlci53b3JrZXJDcmVhdGVkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsK
LSAgICAgICAgd29ya2VySWQgPSBtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsid29ya2VySWQiXTsK
LSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiV29ya2VyIGNyZWF0ZWQiKTsKLSAgICAgICAgSW5z
cGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5jb25uZWN0VG9Xb3JrZXIiLCB7ICJ3
b3JrZXJJZCI6IHdvcmtlcklkIH0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAg
ICAgIFByb3RvY29sVGVzdC5sb2coImRpZENvbm5lY3RUb1dvcmtlciIpOwotICAgICAgICAgICAg
c2VuZENvbW1hbmRUb1dvcmtlcigiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgICAgICAgICAg
c2VuZENvbW1hbmRUb1dvcmtlcigiRGVidWdnZXIucGF1c2UiLCB7fSk7Ci0gICAgICAgIH0pOwot
ICAgIH0KLQotICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiV29ya2VyLmRpc3Bh
dGNoTWVzc2FnZUZyb21Xb3JrZXIiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewot
ICAgICAgICB2YXIgbWVzc2FnZSA9IG1lc3NhZ2VPYmplY3RbInBhcmFtcyJdWyJtZXNzYWdlIl07
Ci0gICAgICAgIGlmIChtZXNzYWdlWyJtZXRob2QiXSA9PT0gIkRlYnVnZ2VyLnBhdXNlZCIpIHsK
LSAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIlNVQ0NFU1M6IFdvcmtlciBwYXVzZWQiKTsK
LSAgICAgICAgICAgIHNlbmRDb21tYW5kVG9Xb3JrZXIoIkRlYnVnZ2VyLmRpc2FibGUiLCB7fSk7
Ci0gICAgICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0KLSAg
ICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9uTG9hZD0ic3RhcnRXb3JrZXJBbmRS
dW5UZXN0KCk7Ij4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUxZjA1NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLXZhciBtZXNzYWdlX2lkID0gMTsKLW9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gIGRvV29yaygpOwotfTsKLQotZnVuY3Rpb24gZG9Xb3Jr
KCkgewotICBwb3N0TWVzc2FnZSgiTWVzc2FnZSAjIiArIG1lc3NhZ2VfaWQrKyk7Ci0gIHNldFRp
bWVvdXQoZG9Xb3JrLCA1MCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvdGVybWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUtcGF1c2VkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVk
LXdvcmtlci13aGlsZS1wYXVzZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNjhiYjBmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0IHRoYXQgaW5zcGVjdGVkIHBhZ2Ug
d29uJ3QgY3Jhc2ggaWYgaW5zcGVjdGVkIHdvcmtlciBpcyB0ZXJtaW5hdGVkIHdoaWxlIGl0IGlz
IHBhdXNlZC4gVGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KLQotQnVnIDEwMTA2NS4K
LVN0YXJ0ZWQgd29ya2VyCi1Xb3JrZXIgY3JlYXRlZAotZGlkQ29ubmVjdFRvV29ya2VyCi1Xb3Jr
ZXIgcGF1c2VkCi1TVUNDRVNTOiBEaWQgdGVybWluYXRlIHBhdXNlZCB3b3JrZXIKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQt
d29ya2VyLXdoaWxlLXBhdXNlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4NjRiMWE0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIHdv
cmtlcjsKLWZ1bmN0aW9uIHN0YXJ0V29ya2VyQW5kUnVuVGVzdCgpCi17Ci0gICAgd29ya2VyID0g
bmV3IFdvcmtlcigicmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMiKTsKLSAgICB3b3JrZXIu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsgfTsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uo
MSk7Ci0gICAgbG9nKCJTdGFydGVkIHdvcmtlciIpOwotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHdvcmtlcklkOwotICAgIHZhciB3b3JrZXJSZXF1ZXN0
SWQgPSAxOwotICAgIGZ1bmN0aW9uIHNlbmRDb21tYW5kVG9Xb3JrZXIobWV0aG9kLCBwYXJhbXMp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiV29ya2VyLnNl
bmRNZXNzYWdlVG9Xb3JrZXIiLCB7Ci0gICAgICAgICAgICAid29ya2VySWQiOiB3b3JrZXJJZCwK
LSAgICAgICAgICAgICJtZXNzYWdlIjogewotICAgICAgICAgICAgICAgICJtZXRob2QiOiBtZXRo
b2QsCi0gICAgICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcywKLSAgICAgICAgICAgICAgICAi
aWQiOiB3b3JrZXJSZXF1ZXN0SWQrKwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9
Ci0KLSAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiV29ya2VyLmVuYWJsZSIsIHt9
LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIGlmICgiZXJyb3IiIGluIG1lc3Nh
Z2VPYmplY3QpIHsKLSAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IENvdWxkbid0
IGVuYWJsZSB3b3JrZXIgZGVidWdnZXI6ICIgKyBtZXNzYWdlT2JqZWN0LmVycm9yLm1lc3NhZ2Up
OwotICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0g
ICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIldvcmtlci53b3Jr
ZXJDcmVhdGVkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgd29y
a2VySWQgPSBtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsid29ya2VySWQiXTsKLSAgICAgICAgUHJv
dG9jb2xUZXN0LmxvZygiV29ya2VyIGNyZWF0ZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yUHJvdG9j
b2wuc2VuZENvbW1hbmQoIldvcmtlci5jb25uZWN0VG9Xb3JrZXIiLCB7IndvcmtlcklkIjogd29y
a2VySWR9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgICAgICBQcm90b2NvbFRl
c3QubG9nKCJkaWRDb25uZWN0VG9Xb3JrZXIiKTsKLSAgICAgICAgICAgIHNlbmRDb21tYW5kVG9X
b3JrZXIoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICAgICAgICAgIHNlbmRDb21tYW5kVG9X
b3JrZXIoIkRlYnVnZ2VyLnBhdXNlIiwge30pOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBJ
bnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIldvcmtlci5kaXNwYXRjaE1lc3NhZ2VGcm9t
V29ya2VyIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgdmFyIG1l
c3NhZ2UgPSBtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsibWVzc2FnZSJdOwotICAgICAgICBpZiAo
bWVzc2FnZVsibWV0aG9kIl0gPT09ICJEZWJ1Z2dlci5wYXVzZWQiKSB7Ci0gICAgICAgICAgICBQ
cm90b2NvbFRlc3QubG9nKCJXb3JrZXIgcGF1c2VkIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JQ
cm90b2NvbC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsiZXhwcmVzc2lvbiI6ICJ3
b3JrZXIudGVybWluYXRlKCkifSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAgICAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5sb2coIlNVQ0NFU1M6IERpZCB0ZXJtaW5hdGUgcGF1c2VkIHdv
cmtlciIpOwotICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbkxvYWQ9InN0YXJ0V29ya2VyQW5kUnVuVGVzdCgpOyI+Ci08cD5UZXN0IHRoYXQgaW5z
cGVjdGVkIHBhZ2Ugd29uJ3QgY3Jhc2ggaWYgaW5zcGVjdGVkIHdvcmtlciBpcyB0ZXJtaW5hdGVk
IHdoaWxlIGl0IGlzIHBhdXNlZC4gVGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC48L3A+
Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMDY1
Ij5CdWcgMTAxMDY1LjwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjJmMjVhMi4uZmE1YWUyZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc0MywxMyArNzQzLDExIEBAIHdl
YmtpdC5vcmcvYi8xMjMyNTAgcGx1Z2lucy9kZXN0cm95LWR1cmluZy1ucHAtbmV3LW9iamVjdC13
aXRoLWZhbGxiYWNrLWNvbnRlbnQuCiB3ZWJraXQub3JnL2IvMTIzMzY5IHN2Zy9jc3MvcGFyZW50
LXNoYWRvdy1vZmZzY3JlZW4uc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
MTIzMzY5IHN2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZyBbIEltYWdlT25seUZhaWx1
cmUgXQogCi13ZWJraXQub3JnL2IvMTQ4NjQyIGluc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRp
Y2F0ZWQtd29ya2VyLmh0bWwKIHdlYmtpdC5vcmcvYi8xNTE4MzIgaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4t
Y2F0Y2guaHRtbAogd2Via2l0Lm9yZy9iLzE1MTgzMiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0
bWwKIHdlYmtpdC5vcmcvYi8xNTE4MzIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4uaHRtbAogd2Via2l0Lm9yZy9iLzE1
MTgzMiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2Utd2l0aC1jYXRjaC5odG1sCiB3ZWJraXQub3JnL2IvMTUxODMyIGluc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5o
dG1sCi13ZWJraXQub3JnL2IvMTUxODM4IGluc3BlY3Rvci9kZWJ1Z2dlci90ZXJtaW5hdGUtZGVk
aWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQuaHRtbAogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtZGZnLWNhbGxlZS1hbmQtZXhhbWluZS1kZmctbG9jYWwuaHRtbAogaW5zcGVjdG9y
L2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCiBpbnNwZWN0b3Iv
ZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggYzIxODIzNC4uMDk2OTE2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MzAgQEAKIDIwMTUtMTItMDMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
IAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW50ZXN0ZWQgYW5kIHVudXNlZCBXb3Jr
ZXIgaW5zcGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUxODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OkRlYnVnZ2VyKToKKyAgICAgICAgKEpTQzo6
RGVidWdnZXI6OndpbGxFeGVjdXRlUHJvZ3JhbSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdn
ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZl
ci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2
ZXI6OkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rv
ci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVn
U2VydmVyOjpTY3JpcHREZWJ1Z1NlcnZlcik6CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdERl
YnVnU2VydmVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xl
QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2Vu
dC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cnVuKTog
RGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2Vu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdl
bnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUnVudGltZS5qc29uOgorICAgICAg
ICAqIGluc3BlY3Rvci9wcm90b2NvbC9Xb3JrZXIuanNvbjogUmVtb3ZlZC4KKworMjAxNS0xMi0w
MyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFVuc2tpcCBtYW55IGluc3BlY3Rvci9kZWJ1Z2dlciB0ZXN0cwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODQzCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNzY4ZWJhYS4uOGRlNzI2YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE5NCw3ICsx
OTQsNiBAQCBJTlNQRUNUT1JfRE9NQUlOUyA9IFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9pbnNw
ZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0
b3IvcHJvdG9jb2wvUnVudGltZS5qc29uIFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0
b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbiBcCi0gICAgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVj
dG9yL3Byb3RvY29sL1dvcmtlci5qc29uIFwKICMKIAogaWZlcSAoJChmaW5kc3RyaW5nIEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFLCQoRkVBVFVSRV9ERUZJTkVTKSksIEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKaW5k
ZXggNzA4ODMxOC4uNTAyOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXIuY3BwCkBAIC0xMTMsMTQgKzExMywxMyBAQCBwcml2YXRlOgogICAgIERlYnVnZ2Vy
JiBtX2RlYnVnZ2VyOwogfTsKIAotRGVidWdnZXI6OkRlYnVnZ2VyKFZNJiB2bSwgYm9vbCBpc0lu
V29ya2VyVGhyZWFkKQorRGVidWdnZXI6OkRlYnVnZ2VyKFZNJiB2bSkKICAgICA6IG1fdm0odm0p
CiAgICAgLCBtX3BhdXNlT25FeGNlcHRpb25zU3RhdGUoRG9udFBhdXNlT25FeGNlcHRpb25zKQog
ICAgICwgbV9wYXVzZU9uTmV4dFN0YXRlbWVudChmYWxzZSkKICAgICAsIG1faXNQYXVzZWQoZmFs
c2UpCiAgICAgLCBtX2JyZWFrcG9pbnRzQWN0aXZhdGVkKHRydWUpCiAgICAgLCBtX2hhc0hhbmRs
ZXJGb3JFeGNlcHRpb25DYWxsYmFjayhmYWxzZSkKLSAgICAsIG1faXNJbldvcmtlclRocmVhZChp
c0luV29ya2VyVGhyZWFkKQogICAgICwgbV9zdXBwcmVzc0FsbFBhdXNlcyhmYWxzZSkKICAgICAs
IG1fc3RlcHBpbmdNb2RlKFN0ZXBwaW5nTW9kZURpc2FibGVkKQogICAgICwgbV9yZWFzb25Gb3JQ
YXVzZShOb3RQYXVzZWQpCkBAIC03MDcsMTMgKzcwNiw3IEBAIHZvaWQgRGVidWdnZXI6OndpbGxF
eGVjdXRlUHJvZ3JhbShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgUGF1c2VSZWFzb25EZWNsYXJhdGlvbiByZWFzb24oKnRoaXMsIFBhdXNlZEF0U3RhcnRPZlBy
b2dyYW0pOwotICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIGZvciB3aGV0aGVyIHdlJ3JlIGRlYnVn
Z2luZyBhIHdvcmtlciB0aHJlYWQgaXMgYSB3b3JrYXJvdW5kCi0gICAgLy8gZm9yIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI2MzcuIFJlbW92ZSBpdCB3aGVuIHdl
IHJld29yawotICAgIC8vIHRoZSBkZWJ1Z2dlciBpbXBsZW1lbnRhdGlvbiB0byBub3QgcmVxdWly
ZSBjYWxsYmFja3MuCi0gICAgaWYgKCFtX2lzSW5Xb3JrZXJUaHJlYWQpCi0gICAgICAgIHVwZGF0
ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoY2FsbEZyYW1lKTsKLSAgICBlbHNlIGlmIChpc1N0
ZXBwaW5nKCkpCi0gICAgICAgIHVwZGF0ZUNhbGxGcmFtZShjYWxsRnJhbWUpOworICAgIHVwZGF0
ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoY2FsbEZyYW1lKTsKIH0KIAogdm9pZCBEZWJ1Z2dl
cjo6ZGlkRXhlY3V0ZVByb2dyYW0oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCmluZGV4IDI5MmIxNDcuLmFlMzZmMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCkBAIC00NCw3ICs0NCw3IEBA
IHR5cGVkZWYgRXhlY1N0YXRlIENhbGxGcmFtZTsKIAogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUg
RGVidWdnZXIgewogcHVibGljOgotICAgIERlYnVnZ2VyKFZNJiwgYm9vbCBpc0luV29ya2VyVGhy
ZWFkID0gZmFsc2UpOworICAgIERlYnVnZ2VyKFZNJik7CiAgICAgdmlydHVhbCB+RGVidWdnZXIo
KTsKIAogICAgIFZNJiB2bSgpIHsgcmV0dXJuIG1fdm07IH0KQEAgLTE5OCw3ICsxOTgsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pc1BhdXNlZCA6IDE7CiAgICAgYm9vbCBtX2JyZWFrcG9pbnRz
QWN0aXZhdGVkIDogMTsKICAgICBib29sIG1faGFzSGFuZGxlckZvckV4Y2VwdGlvbkNhbGxiYWNr
IDogMTsKLSAgICBib29sIG1faXNJbldvcmtlclRocmVhZCA6IDE7CiAgICAgYm9vbCBtX3N1cHBy
ZXNzQWxsUGF1c2VzIDogMTsKICAgICB1bnNpZ25lZCBtX3N0ZXBwaW5nTW9kZSA6IDE7IC8vIFN0
ZXBwaW5nTW9kZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCA2
ZDhjZTIwLi5lOWEyOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAK
QEAgLTM1LDcgKzM1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIG5hbWVzcGFjZSBJbnNwZWN0
b3IgewogCiBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpKU0dsb2JhbE9iamVjdFNj
cmlwdERlYnVnU2VydmVyKEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi0gICAgOiBTY3Jp
cHREZWJ1Z1NlcnZlcihnbG9iYWxPYmplY3Qudm0oKSwgZmFsc2UpCisgICAgOiBTY3JpcHREZWJ1
Z1NlcnZlcihnbG9iYWxPYmplY3Qudm0oKSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9i
amVjdCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
U2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggNDY0NDYzMC4uODk4OTFiZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAK
QEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CiAKLVNjcmlwdERlYnVnU2VydmVyOjpTY3JpcHREZWJ1Z1NlcnZlcihWTSYgdm0sIGJv
b2wgaXNJbldvcmtlclRocmVhZCkKLSAgICA6IERlYnVnZ2VyKHZtLCBpc0luV29ya2VyVGhyZWFk
KQorU2NyaXB0RGVidWdTZXJ2ZXI6OlNjcmlwdERlYnVnU2VydmVyKFZNJiB2bSkKKyAgICA6IERl
YnVnZ2VyKHZtKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL1NjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggZTA2NzBmZi4uZWEyMTBkM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmgK
QEAgLTYzLDcgKzYzLDcgQEAgcHJvdGVjdGVkOgogICAgIHR5cGVkZWYgSGFzaFNldDxTY3JpcHRE
ZWJ1Z0xpc3RlbmVyKj4gTGlzdGVuZXJTZXQ7CiAgICAgdHlwZWRlZiB2b2lkIChTY3JpcHREZWJ1
Z1NlcnZlcjo6KkphdmFTY3JpcHRFeGVjdXRpb25DYWxsYmFjaykoU2NyaXB0RGVidWdMaXN0ZW5l
ciopOwogCi0gICAgU2NyaXB0RGVidWdTZXJ2ZXIoSlNDOjpWTSYsIGJvb2wgaXNJbldvcmtlclRo
cmVhZCA9IGZhbHNlKTsKKyAgICBTY3JpcHREZWJ1Z1NlcnZlcihKU0M6OlZNJik7CiAgICAgflNj
cmlwdERlYnVnU2VydmVyKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoRGVidWdnZXIoKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4IDdlNWNmODAuLjBlMjI4ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC02NCw4ICs2NCw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29s
IGVuYWJsZWQpIG92ZXJyaWRlID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkSW5zcGVjdGVkTm9k
ZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlID0gMDsKIAotICAgIHZpcnR1YWwg
Ym9vbCBpc1dvcmtlckFnZW50KCkgY29uc3QgPSAwOwotCiAgICAgYm9vbCBlbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCByZXNldCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1l
QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yUnVudGltZUFnZW50LmNwcAppbmRleCA3NjA0OGFmLi5mZmVjZmJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTI0MSwxMSArMjQxLDYgQEAgdm9pZCBJbnNwZWN0b3JS
dW50aW1lQWdlbnQ6OnJlbGVhc2VPYmplY3RHcm91cChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgb2JqZWMKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5yZWxlYXNlT2JqZWN0R3JvdXAo
b2JqZWN0R3JvdXApOwogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cnVuKEVycm9y
U3RyaW5nJikKLXsKLSAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNzYzND4g
V2ViIEluc3BlY3Rvcjogc3VwcG9ydCBkZWJ1Z2dpbmcgd2ViIHdvcmtlcnMKLX0KLQogdm9pZCBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQ6OmdldFJ1bnRpbWVUeXBlc0ZvclZhcmlhYmxlc0F0T2Zmc2V0
cyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yQXJy
YXkmIGxvY2F0aW9ucywgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rv
cjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlR5cGVEZXNjcmlwdGlvbj4+JiB0eXBlRGVzY3JpcHRpb25z
KQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
UnVudGltZUFnZW50LmgKaW5kZXggMGU1MGI1YS4uZTMzODViOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVu
dGltZUFnZW50LmgKQEAgLTY4LDcgKzY4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBn
ZXRDb2xsZWN0aW9uRW50cmllcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQs
IGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGludCogc3RhcnRJbmRleCwgY29uc3Qg
aW50KiBudW1iZXJUb0ZldGNoLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5z
cGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6Q29sbGVjdGlvbkVudHJ5Pj4mIGVudHJpZXMpIG92
ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVzdWx0KEVycm9yU3RyaW5nJiwg
Y29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIGNhbGxBcmd1bWVudCwgY29uc3QgaW50
KiBleGVjdXRpb25Db250ZXh0SWQsIEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok9wdE91dHB1dDxpbnQ+
KiBzYXZlZFJlc3VsdEluZGV4KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgcmVs
ZWFzZU9iamVjdEdyb3VwKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkg
b3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBnZXRSdW50aW1lVHlwZXNGb3JWYXJpYWJsZXNBdE9mZnNl
dHMoRXJyb3JTdHJpbmcmLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBsb2NhdGlv
bnMsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29s
OjpSdW50aW1lOjpUeXBlRGVzY3JpcHRpb24+PiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBlbmFibGVUeXBlUHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZVR5cGVQcm9maWxlcihFcnJvclN0cmluZyYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgKaW5kZXggYTZmMWUwZS4uZjk2NmU5MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxP
YmplY3RDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oCkBAIC00MSw4ICs0MSw2IEBAIHB1
YmxpYzoKICAgICAvLyBGSVhNRTogWEhScyBhbmQgTm9kZXMgb25seSBtYWtlcyBzZW5zZSBkZWJ1
Z2dpbmcgYSBXZWIgY29udGV4dC4gQ2FuIHRoaXMgYmUgbW92ZWQgdG8gYSBkaWZmZXJlbnQgYWdl
bnQ/CiAgICAgdmlydHVhbCB2b2lkIHNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5n
JiwgYm9vbCBlbmFibGVkKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkSW5zcGVjdGVk
Tm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCBi
b29sIGlzV29ya2VyQWdlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1J1bnRpbWUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUnVudGltZS5qc29uCmluZGV4IDBiYWIxY2UuLmFmODc0
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
UnVudGltZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9j
b2wvUnVudGltZS5qc29uCkBAIC0zMDUsMTAgKzMwNSw2IEBACiAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiUmVsZWFzZXMgYWxsIHJlbW90ZSBvYmplY3RzIHRoYXQgYmVsb25nIHRvIGEgZ2l2
ZW4gZ3JvdXAuIgogICAgICAgICB9LAogICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJy
dW4iLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRlbGxzIGluc3BlY3RlZCBpbnN0YW5j
ZSh3b3JrZXIgb3IgcGFnZSkgdGhhdCBpdCBjYW4gcnVuIGluIGNhc2UgaXQgd2FzIHN0YXJ0ZWQg
cGF1c2VkLiIKLSAgICAgICAgfSwKLSAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAiZW5h
YmxlIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbmFibGVzIHJlcG9ydGluZyBvZiBl
eGVjdXRpb24gY29udGV4dHMgY3JlYXRpb24gYnkgbWVhbnMgb2YgPGNvZGU+ZXhlY3V0aW9uQ29u
dGV4dENyZWF0ZWQ8L2NvZGU+IGV2ZW50LiBXaGVuIHRoZSByZXBvcnRpbmcgZ2V0cyBlbmFibGVk
IHRoZSBldmVudCB3aWxsIGJlIHNlbnQgaW1tZWRpYXRlbHkgZm9yIGVhY2ggZXhpc3RpbmcgZXhl
Y3V0aW9uIGNvbnRleHQuIgogICAgICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Xb3JrZXIuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvV29ya2VyLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUyNjllMTMuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9Xb3JrZXIuanNvbgorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAg
QEAKLXsKLSAgICAiZG9tYWluIjogIldvcmtlciIsCi0gICAgInR5cGVzIjogW10sCi0gICAgImF2
YWlsYWJpbGl0eSI6ICJ3ZWIiLAotICAgICJjb21tYW5kcyI6IFsKLSAgICAgICAgewotICAgICAg
ICAgICAgIm5hbWUiOiAiZW5hYmxlIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAibmFtZSI6ICJkaXNhYmxlIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAi
bmFtZSI6ICJzZW5kTWVzc2FnZVRvV29ya2VyIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid29ya2VySWQiLCAidHlwZSI6ICJpbnRlZ2Vy
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWVzc2FnZSIsICJ0eXBlIjogIm9iamVj
dCIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAi
bmFtZSI6ICJjYW5JbnNwZWN0V29ya2VycyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
VGVsbHMgd2hldGhlciBicm93c2VyIHN1cHBvcnRzIHdvcmtlcnMgaW5zcGVjdGlvbi4iLAotICAg
ICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQi
LCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgYnJvd3NlciBoYXMg
d29ya2VycyBzdXBwb3J0LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgICAibmFtZSI6ICJjb25uZWN0VG9Xb3JrZXIiLAotICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIsICJ0eXBl
IjogImludGVnZXIiIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgIm5hbWUiOiAiZGlzY29ubmVjdEZyb21Xb3JrZXIiLAotICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIsICJ0eXBl
IjogImludGVnZXIiIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgIm5hbWUiOiAic2V0QXV0b2Nvbm5lY3RUb1dvcmtlcnMiLAotICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2YWx1ZSIsICJ0eXBl
IjogImJvb2xlYW4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0sCi0gICAgImV2
ZW50cyI6IFsKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAid29ya2VyQ3JlYXRlZCIs
Ci0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
IndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInVybCIsICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Imluc3BlY3RvckNvbm5lY3RlZCIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAgICAgIF0K
LSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAid29ya2VyVGVybWlu
YXRlZCIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfQotICAgICAgICAgICAgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJkaXNwYXRjaE1lc3NhZ2VG
cm9tV29ya2VyIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAid29ya2VySWQiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAibWVzc2FnZSIsICJ0eXBlIjogIm9iamVjdCIgfQotICAgICAgICAgICAg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJkaXNjb25uZWN0
ZWRGcm9tV29ya2VyIgotICAgICAgICB9Ci0gICAgXQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBjZGRmZTk3Li4wNzI4NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTI2Niw3ICsxMjY2
LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0J1aWx0
aW5zLmNwcAogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAK
ICAgICBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAotICAgIGJpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAogCiAgICAgYnJpZGdlL0lkZW50aWZpZXJS
ZXAuY3BwCiAgICAgYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMTkwNiw3ICsxOTA1LDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCiAgICAgaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAogICAgIGluc3Bl
Y3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKICAgICBpbnNwZWN0b3IvUGFnZUNvbnNvbGVB
Z2VudC5jcHAKQEAgLTE5MTgsMTAgKzE5MTYsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
aW5zcGVjdG9yL1dlYkRlYnVnZ2VyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dlYkluamVjdGVk
U2NyaXB0SG9zdC5jcHAKICAgICBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNw
cAotICAgIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL1dv
cmtlckRlYnVnZ2VyQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwCi0gICAgaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKIAogICAgIGxv
YWRlci9Db250ZW50RmlsdGVyLmNwcAogICAgIGxvYWRlci9Db29raWVKYXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZTVmNzVkOS4uZDczMDUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg5IEBACiAyMDE1
LTEyLTAzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogUmVtb3ZlIHVudGVzdGVkIGFuZCB1bnVzZWQgV29ya2VyIGluc3BlY3Rp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTg0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmg6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkUGF1c2VE
ZWRpY2F0ZWRXb3JrZXJPblN0YXJ0SW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGVJbXBsKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bEV2YWx1YXRlV29ya2VyU2NyaXB0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVkSW1wbCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omluc3Ry
dW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omluc3RydW1lbnRpbmdBZ2VudHNGb3JO
b25Eb2N1bWVudENvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9u
U3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRTdGFydFdvcmtlckdsb2JhbFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXZWJBZ2VudEJhc2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckFnZW50Q29udGV4dDo6V29ya2VyQWdlbnRDb250ZXh0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1
bWVudGluZ0FnZW50czo6d29ya2VyUnVudGltZUFnZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnNldFdvcmtlclJ1bnRpbWVBZ2VudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjppbnNwZWN0b3JXb3Jr
ZXJBZ2VudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRz
OjpzZXRJbnNwZWN0b3JXb3JrZXJBZ2VudCk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L1BhZ2VDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVNjcmlwdERlYnVn
U2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6UGFn
ZVNjcmlwdERlYnVnU2VydmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFn
ZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50
Lmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50Lmg6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
Lmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oOiBSZW1v
dmVkLgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlcjo6bm90aWZ5RmluaXNoZWQpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6Oldv
cmtlckdsb2JhbFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2Jh
bFNjb3BlOjp+V29ya2VyR2xvYmFsU2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3Bl
Ojp3b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2Jh
bFNjb3BlUHJveHk6OlBhZ2VJbnNwZWN0b3I6On5QYWdlSW5zcGVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNvbm5lY3RUb0luc3BlY3Rv
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZVByb3h5Ojpk
aXNjb25uZWN0RnJvbUluc3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJHbG9iYWxTY29wZVByb3h5OjpzZW5kTWVzc2FnZVRvSW5zcGVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpXb3JrZXJNZXNzYWdpbmdQcm94eSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9i
YWxTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94
eTo6Y29ubmVjdFRvSW5zcGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpkaXNjb25uZWN0RnJvbUluc3BlY3Rvcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c2VuZE1lc3NhZ2VUb0luc3BlY3Rv
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6d29y
a2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6dGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNz
YWdlVG9QYWdlSW5zcGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSZXBvcnRpbmdQcm94eS5o
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKTogRGVsZXRlZC4KKworMjAxNS0xMi0wMyAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2tpcCBtYW55IGluc3BlY3Rvci9kZWJ1Z2dlciB0ZXN0cwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODQzCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDkyYWZiYzQuLjZmMjc0
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agpAQCAtMTkwNTYsMjAgKzE5MDU2LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAiPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGx1Z2luc1xET01NaW1lVHlw
ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbHVnaW5zXERPTU1pbWVUeXBl
QXJyYXkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGx1Z2luc1xET01QbHVn
aW4uY3BwIiAvPgpAQCAtMTk1NjcsMjAgKzE5NTUzLDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yV29ya2VyQWdlbnQuY3Bw
Ij4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnN0
cnVtZW50aW5nQWdlbnRzLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CkBAIC0xOTcwNywzNCArMTk2NzksNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25zb2xlQWdlbnQuY3BwIj4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8
L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xOTc2MywzNCArMTk3MDcsNiBAQAogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8
L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxpbnNwZWN0b3JcV29ya2VyUnVudGltZUFnZW50LmNwcCI+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1
ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdT
dWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxtYXRobWxcTWF0aE1MQWxsSW5PbmUuY3BwIj4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIyODc4LDggKzIy
Nzk0LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JT
dHlsZVNoZWV0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3RvcldlYkFnZW50QmFzZS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvcldvcmtlckFnZW50LmgiIC8+Ci0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnN0cnVtZW50aW5nQWdlbnRzLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcTmV0d29ya1Jlc291cmNl
c0RhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxQYWdlQ29u
c29sZUFnZW50LmgiIC8+CkBAIC0yMjg5MSwxMCArMjI4MDUsNiBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXFdlYkRlYnVnZ2VyQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXZWJJbmplY3RlZFNjcmlwdEhvc3QuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXZWJJbmplY3RlZFNjcmlwdE1hbmFn
ZXIuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25z
b2xlQWdlbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3Jr
ZXJEZWJ1Z2dlckFnZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXFdvcmtlclJ1bnRpbWVBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cbWF0aG1sXE1hdGhNTEVsZW1lbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXG1hdGhtbFxNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxtYXRobWxcTWF0aE1MTWF0aEVsZW1lbnQuaCIgLz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwppbmRleCA5OTZhY2M4Li45ZjIxODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC00NDg0LDkg
KzQ0ODQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIj4KLSAgICAgIDxGaWx0ZXI+YmluZGluZ3Nc
anM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBsdWdpbnNcRE9NTWltZVR5cGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGx1Z2luczwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgpAQCAtNDY5MSw5ICs0Njg4LDYgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCI+CiAgICAg
ICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvcldvcmtlckFnZW50LmNwcCI+Ci0g
ICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3RydW1lbnRpbmdBZ2VudHMuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00
NzI3LDE4ICs0NzIxLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxX
ZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNw
ZWN0b3JcV29ya2VyQ29uc29sZUFnZW50LmNwcCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3Rvcjwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXFdvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9y
PC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxp
bnNwZWN0b3JcV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAiPgotICAgICAgPEZpbHRlcj5p
bnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJSdW50aW1lQWdlbnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+
aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxtYXRobWxcTWF0aE1MQWxsSW5PbmUuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVy
aW5nXG1hdGhtbDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTE5ODMsMTIgKzExOTY1
LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JXZWJB
Z2VudEJhc2UuaCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3Rvcldv
cmtlckFnZW50LmgiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0Ns
SW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JX
b3JrZXJSZXNvdXJjZS5oIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zdHJ1
bWVudGluZ0FnZW50cy5oIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkBAIC0xMjAyMiwxOCArMTE5OTgsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXFdlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oIj4KICAgICAgIDxG
aWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV29ya2VyQ29uc29sZUFnZW50LmgiPgotICAgICAgPEZp
bHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJEZWJ1Z2dlckFnZW50LmgiPgotICAgICAgPEZp
bHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiPgotICAg
ICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJSdW50aW1lQWdlbnQuaCI+Ci0gICAg
ICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cbWF0aG1sXE1hdGhNTEVsZW1lbnQuaCI+CiAgICAgICA8RmlsdGVy
PnJlbmRlcmluZ1xtYXRobWw8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YWIxMTU1
Li5jZmQ3YmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01NDM5LDggKzU0MzksOCBAQAogCQlCQzNCRTlBQjBFOUMyNDIwMDA4
MzU1ODggLyogUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNCRTlBQTBFOUMyNDIwMDA4MzU1ODggLyogUmVuZGVy
U2Nyb2xsYmFyUGFydC5jcHAgKi87IH07CiAJCUJDM0MzOUI2MEMwRDNEOEQwMDVGNEQ3QSAvKiBK
U01lZGlhTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzNDMzlCNDBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwICovOyB9Owog
CQlCQzNDMzlCNzBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0MzOUI1MEMwRDNEOEQwMDVGNEQ3
QSAvKiBKU01lZGlhTGlzdC5oICovOyB9OwotCQlCQzNEODVCQjFDMEUyRTc3MDBEM0I2MTAgLyog
SlNIVE1MUGljdHVyZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM4MDhCMTIxQzBFMkIzNTAwNjZGRDZCIC8qIEpTSFRNTFBpY3R1cmVF
bGVtZW50LmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwotCQlCQzNE
ODVCQzFDMEUyRTdBMDBEM0I2MTAgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODA4QjEzMUMwRTJCMzUwMDY2
RkQ2QiAvKiBKU0hUTUxQaWN0dXJlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdT
ID0gKCk7IH07IH07CisJCUJDM0Q4NUJCMUMwRTJFNzcwMEQzQjYxMCAvKiBKU0hUTUxQaWN0dXJl
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzgwOEIxMjFDMEUyQjM1MDA2NkZENkIgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQuY3BwICov
OyB9OworCQlCQzNEODVCQzFDMEUyRTdBMDBEM0I2MTAgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODA4QjEz
MUMwRTJCMzUwMDY2RkQ2QiAvKiBKU0hUTUxQaWN0dXJlRWxlbWVudC5oICovOyB9OwogCQlCQzQz
NjhFODBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MzY4RTcwQzIyNkUzMjAwNUVGQjVGIC8qIFJlY3QuaCAq
LzsgfTsKIAkJQkM0NkMxRUUwQzBEREJERjAwMjBDRkMzIC8qIEpTQ1NTUnVsZUN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ2QzFFRDBD
MEREQkRGMDAyMENGQzMgLyogSlNDU1NSdWxlQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQkM0NkMxRkEw
QzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0NkMxRjAwQzBEREM4RjAwMjBDRkMzIC8q
IEpTQ1NTQ2hhcnNldFJ1bGUuY3BwICovOyB9OwpAQCAtNTY3NSw4ICs1Njc1LDggQEAKIAkJQkND
MDY1ODgwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovOyB9OwogCQlCQ0MwNjU4OTBGM0NFMkE3MDBDRDJEODcgLyogSlND
bGllbnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0MwNjU4NTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAg
Ki87IH07CiAJCUJDQzA2NThBMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NjBG
M0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oICovOyB9OwotCQlCQ0MwRTg3NTFC
RkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODczMUJGRTcwRTkwMDhGN0Y1MCAv
KiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07Ci0JCUJDQzBFODc2MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODc0
MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVNTRVRfVEFHUyA9ICgpOyB9OyB9OworCQlCQ0MwRTg3NTFCRkU3MEU5MDA4RjdGNTAgLyogSFRN
TFBpY3R1cmVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQzBFODczMUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQu
Y3BwICovOyB9OworCQlCQ0MwRTg3NjFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Mw
RTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi87IH07CiAJCUJD
QzQzODc4MEU4ODZDQzcwMDUzM0RENSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNDM4NzcwRTg4
NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi87IH07CiAJCUJD
QzU3MzM1MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMzMzBENjk1QkJFMDA2RUY1
MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlCQ0M1NzMzNjBENjk1QkJFMDA2RUY1
MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2
ZW50Lm1tICovOyB9OwpAQCAtNjYxMCwyNCArNjYxMCwxMSBAQAogCQlGMzQ0Qzc1ODExMjk0RkY2
MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ0Qzc1NzExMjk0RkY2MDBGMjZF
RUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgKi87IH07CiAJCUYzNDc0MkRD
MTM0MzYyRjAwMDUzMUJDMiAvKiBQYWdlRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ3NDJEQTEzNDM2MkYwMDA1MzFCQzIg
LyogUGFnZURlYnVnZ2VyQWdlbnQuY3BwICovOyB9OwogCQlGMzQ3NDJERDEzNDM2MkYwMDA1MzFC
QzIgLyogUGFnZURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEYzNDc0MkRCMTM0MzYyRjAwMDUzMUJDMiAvKiBQYWdlRGVidWdnZXJB
Z2VudC5oICovOyB9OwotCQlGMzQ3NDJFMDEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdn
ZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGMzQ3NDJERTEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgKi87
IH07Ci0JCUYzNDc0MkUxMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ3NDJERjEz
NDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5oICovOyB9OwotCQlGMzQ3NDJF
ODEzNDM2MzUwMDA1MzFCQzIgLyogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM0NzQyRTYxMzQzNjM1MDAw
NTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCAqLzsgfTsKLQkJRjM0NzQyRTkx
MzQzNjM1MDAwNTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ3NDJFNzEzNDM2MzUwMDA1MzFC
QzIgLyogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLzsgfTsKIAkJRjM1MEI3MzUxM0YxMzc3
RDAwODgwQzQzIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM1MEI3MzQxM0YxMzc3RDAwODgwQzQzIC8qIElu
c3RydW1lbnRpbmdBZ2VudHMuY3BwICovOyB9OwotCQlGMzZFMDdBNDEzNThBOEJFMDBBQUNCQzkg
LyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzZFMDdBMjEzNThBOEJFMDBBQUNCQzkgLyogV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi87IH07Ci0JCUYzNkUwN0E1MTM1OEE4QkUwMEFBQ0JD
OSAvKiBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzZFMDdBMzEzNThBOEJFMDBBQUNCQzkgLyogV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5oICovOyB9OwotCQlGMzc1Q0MwNzExNTBEMzAwMDA4RERCODEg
LyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JX
b3JrZXJSZXNvdXJjZS5oICovOyB9OwotCQlGMzgxMEMxQjEzNjVBNDk2MDBFRDZFMzMgLyogSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjM4MTBDMTkxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFn
ZW50LmNwcCAqLzsgfTsKLQkJRjM4MTBDMUMxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3Rvcldv
cmtlckFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGMzgxMEMxQTEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCAqLzsg
fTsKIAkJRjM4MjA4OTIxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEExNDdE
MzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuY3BwICovOyB9OwogCQlGMzgyMDg5MzE0
N0QzNUY5MDAxMEJDMDYgLyogUGFnZUNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEIxNDdEMzVGOTAwMTBCQzA2IC8qIFBh
Z2VDb25zb2xlQWdlbnQuaCAqLzsgfTsKIAkJRjM4MjA4OTQxNDdEMzVGOTAwMTBCQzA2IC8qIFBh
Z2VSdW50aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjM4MjA4OEMxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuY3Bw
ICovOyB9OwogCQlGMzgyMDg5NTE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEQx
NDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCAqLzsgfTsKLQkJRjM4MjA4OTYx
NDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzgyMDg4RTE0N0QzNUY5MDAxMEJDMDYg
LyogV29ya2VyQ29uc29sZUFnZW50LmNwcCAqLzsgfTsKLQkJRjM4MjA4OTcxNDdEMzVGOTAwMTBC
QzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNv
bGVBZ2VudC5oICovOyB9OwotCQlGMzgyMDg5ODE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVu
dGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEYzODIwODkwMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuY3BwICov
OyB9OwotCQlGMzgyMDg5OTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzgyMDg5MTE0
N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggKi87IH07CiAJCUYzQUJGRTBD
MTMwRTlEQTAwMEU3RjdEMSAvKiBJbnN0cnVtZW50aW5nQWdlbnRzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0FCRkUwQjEzMEU5REEwMDBFN0Y3RDEg
LyogSW5zdHJ1bWVudGluZ0FnZW50cy5oICovOyB9OwogCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBE
MDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmNwcCAqLzsgfTsKIAkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0
NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCAqLzsgfTsKQEAgLTE0NTQ3LDI0
ICsxNDUzNCwxMSBAQAogCQlGMzQ0Qzc1NzExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjM0NzQyREExMzQzNjJGMDAwNTMxQkMyIC8qIFBhZ2VEZWJ1Z2dlckFnZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VEZWJ1Z2dlckFnZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM0NzQyREIxMzQzNjJGMDAwNTMx
QkMyIC8qIFBhZ2VEZWJ1Z2dlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBhZ2VEZWJ1Z2dlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYz
NDc0MkRFMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlckRlYnVnZ2VyQWdlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMzQ3NDJERjEzNDM2MzFGMDA1MzFCQzIgLyog
V29ya2VyRGVidWdnZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
b3JrZXJEZWJ1Z2dlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzNDc0
MkU2MTM0MzYzNTAwMDUzMUJDMiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzNDc0MkU3MTM0MzYzNTAwMDUzMUJD
MiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGMzUwQjczNDEzRjEzNzdEMDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnN0cnVtZW50aW5nQWdl
bnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjM2RTA3QTIxMzU4QThCRTAw
QUFDQkM5IC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzNkUwN0EzMTM1OEE4QkUwMEFBQ0JDOSAvKiBXb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRjM3NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvcldvcmtlclJlc291cmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzODEwQzE5MTM2NUE0OTYwMEVENkUz
MyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUYzODEwQzFBMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzgyMDg4QTE0N0QzNUY5MDAxMEJD
MDYgLyogUGFnZUNvbnNvbGVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQYWdlQ29uc29sZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjM4MjA4OEIxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNvbnNvbGVBZ2VudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGMzgyMDg4QzE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRp
bWVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlUnVu
dGltZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM4MjA4OEQxNDdE
MzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFnZVJ1bnRpbWVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlGMzgyMDg4RTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlckNvbnNvbGVBZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzODIwODhGMTQ3RDM1RjkwMDEwQkMw
NiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV29ya2VyQ29uc29sZUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYz
ODIwODkwMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyUnVudGltZUFnZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjM4MjA4OTExNDdEMzVGOTAwMTBCQzA2IC8qIFdv
cmtlclJ1bnRpbWVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3Jr
ZXJSdW50aW1lQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNBQkZFMEIx
MzBFOURBMDAwRTdGN0QxIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zdHJ1bWVudGluZ0FnZW50cy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFcnJvckhhbmRsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBE
MDkgLyogSlNFcnJvckhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MDc0LDkg
KzE2MDQ4LDYgQEAKIAkJCQk3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAgKi8sCiAJCQkJNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaCAqLywKIAkJCQlBNTkzQ0Y4QTE4NDA1MzUyMDBCRkNFMjcgLyog
SW5zcGVjdG9yV2ViQWdlbnRCYXNlLmggKi8sCi0JCQkJRjM4MTBDMTkxMzY1QTQ5NjAwRUQ2RTMz
IC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNwcCAqLywKLQkJCQlGMzgxMEMxQTEzNjVBNDk2MDBF
RDZFMzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCAqLywKLQkJCQlGMzc1Q0MwNjExNTBEMzAw
MDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLywKIAkJCQlGMzUwQjczNDEz
RjEzNzdEMDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgKi8sCiAJCQkJRjNBQkZF
MEIxMzBFOURBMDAwRTdGN0QxIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuaCAqLywKIAkJCQk1OUMy
N0YwNDEzOEQyOEMxMDA3OUI3RTIgLyogTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwICovLApAQCAt
MTYxMDEsMTQgKzE2MDcyLDYgQEAKIAkJCQlBNTg0MEUyMzE4N0I4QUMyMDA4NDNCMTAgLyogV2Vi
SW5qZWN0ZWRTY3JpcHRIb3N0LmggKi8sCiAJCQkJQTU4NEZFMkQxODY0Q0I4NDAwODQzQjEwIC8q
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgKi8sCiAJCQkJQTU4NEZFMkUxODY0Q0I4NDAw
ODQzQjEwIC8qIFdlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oICovLAotCQkJCUYzODIwODhFMTQ3
RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwICovLAotCQkJCUYzODIwODhG
MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCAqLywKLQkJCQlGMzQ3NDJE
RTEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgKi8sCi0JCQkJRjM0
NzQyREYxMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQuaCAqLywKLQkJCQlG
MzZFMDdBMjEzNThBOEJFMDBBQUNCQzkgLyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Ki8sCi0JCQkJRjM2RTA3QTMxMzU4QThCRTAwQUFDQkM5IC8qIFdvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuaCAqLywKLQkJCQlGMzgyMDg5MDE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGlt
ZUFnZW50LmNwcCAqLywKLQkJCQlGMzgyMDg5MTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVu
dGltZUFnZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGluc3BlY3RvcjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0yMjA0Miw4ICsyMjAwNSw2IEBACiAJCQkJMEYwOTlEMDcxN0I5
NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovLAogCQkJCUUx
QTY0M0ZDMEVDMDk3QTAwMDc3OTY2OCAvKiBXb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCAqLywK
IAkJCQlFMUE2NDNGMTBFQzA5NzI1MDA3Nzk2NjggLyogV29ya2VyU2NyaXB0Q29udHJvbGxlci5o
ICovLAotCQkJCUYzNDc0MkU2MTM0MzYzNTAwMDUzMUJDMiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlci5jcHAgKi8sCi0JCQkJRjM0NzQyRTcxMzQzNjM1MDAwNTMxQkMyIC8qIFdvcmtlclNjcmlw
dERlYnVnU2VydmVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGpzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTI2MDIzLDggKzI1OTg0LDYgQEAKIAkJCQk4MkFCMTc3NDEyNUM4MjY3
MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0
MTMzQTgxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1OTNDRjhCMTg0MDUzNTIwMEJGQ0UyNyAvKiBJbnNwZWN0b3JXZWJBZ2Vu
dEJhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUYzODEwQzFDMTM2NUE0OTYwMEVENkUzMyAvKiBJ
bnNwZWN0b3JXb3JrZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjM3NUNDMDcxMTUwRDMw
MDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGM0FCRkUwQzEzMEU5REEwMDBFN0Y3RDEgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjI3NTM1NzIwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNDYyQTRBMTExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNo
LmggaW4gSGVhZGVycyAqLywKQEAgLTI4MTg2LDE0ICsyODE0NSwxMSBAQAogCQkJCUExNDgzMkM2
MTg3RjY2OEYwMERBNjNBNiAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
Nzk5MTk5NzEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJFNDM0NjQ2MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCUYzODIwODk3MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCBp
biBIZWFkZXJzICovLAotCQkJCUYzNDc0MkUxMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1
Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBM0UyNjQzMTE0NzQ4OTkxMDA1QTg1ODgg
LyogV29ya2VyRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NDkwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1
RkNCNDFCQjRDNEU4MDAxMjg5OEYgLyogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3RjhFNjY2MTUxRDRBNEUwMEQyRDE4MSAvKiBXb3JrZXJH
bG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjRCMEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLywK
LQkJCQlGMzZFMDdBNTEzNThBOEJFMDBBQUNCQzkgLyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtl
ckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZB
ODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
ODIwMiw5ICsyODE1OCw3IEBACiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMx
NEUgLyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUz
MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKLQkJCQlG
MzgyMDg5OTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUE2NDNGMjBFQzA5NzI1MDA3Nzk2NjggLyogV29ya2VyU2NyaXB0Q29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjM0NzQyRTkxMzQzNjM1MDAwNTMxQkMyIC8qIFdv
cmtlclNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q2QjM0OTBGNjEx
MDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQky
RUE3NjgwNDBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFk
LmggaW4gSGVhZGVycyAqLywKQEAgLTI5NjM0LDcgKzI5NTg4LDYgQEAKIAkJCQk5OUNDMEI2NjE4
QkU5RjE1MDA2Q0VCQ0MgLyogSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODJBQjE3NzMxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTMzQUExMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjM4MTBDMUIxMzY1QTQ5NjAw
RUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYz
NTBCNzM1MTNGMTM3N0QwMDg4MEM0MyAvKiBJbnN0cnVtZW50aW5nQWdlbnRzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJENDZGMDRFMTdCOTZGQkQwMDU2NDdGMCAvKiBJbnRQb2ludC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjc1MzU2MDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnRDRy5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTMxNTg2LDIwICszMTUzOSwxNSBAQAogCQkJCUExNDgzMkM1
MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5
NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUYzNDc0MkUwMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1
Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzRTI2NDMwMTQ3NDg5OTEwMDVBODU4
OCAvKiBXb3JrZXJFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNDM0NjQ4MEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJHbG9iYWxTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTg1RkNCMzFCQjRDNEU4MDAxMjg5OEYgLyogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0
YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdGOEU2NjUxNTFENEE0QjAwRDJEMTgxIC8q
IFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlG
MzZFMDdBNDEzNThBOEJFMDBBQUNCQzkgLyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0QzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9j
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NEYwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjcxQTE0MEVF
RUM4MDQwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkU0MzQ2NTIwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJRjM4MjA4OTgxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUE2NDNGRDBFQzA5N0EwMDA3Nzk2NjggLyogV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGMzQ3NDJFODEzNDM2MzUw
MDA1MzFCQzIgLyogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTdENkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyRTQzNDY1NDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBCOTA1NkY4MEYyNjg1RjMwMDk1RkY2QSAvKiBXb3Jr
ZXJUaHJlYWRhYmxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMGE0YTgzNi4uZmM5
NmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0Fs
bEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwCkBAIC0xNDgsNCArMTQ4LDMgQEAKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwIgogI2luY2x1ZGUgIldlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAiCiAj
aW5jbHVkZSAiV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAiCi0jaW5jbHVkZSAiV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAwZWFlNjRjLi41OWY2NmJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEu
aCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9iamVj
dFByb3h5LmgiCi0jaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgogI2lu
Y2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlYTg1OWE5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk0
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoYykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0g
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVnU2Vy
dmVyLmgiCi0KLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJUaW1lci5oIgot
I2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuaCIKLSNpbmNsdWRlICJXb3JrZXJHbG9iYWxT
Y29wZS5oIgotI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKLSNpbmNsdWRlICJXb3JrZXJUaHJl
YWQuaCIKLSNpbmNsdWRlIDxydW50aW1lL1ZNLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0
b3I7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6Oldv
cmtlclNjcmlwdERlYnVnU2VydmVyKFdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIG1vZGUpCi0gICAgOiBTY3JpcHREZWJ1Z1NlcnZlcihjb250ZXh0LnNjcmlwdCgpLT52
bSgpLCB0cnVlKQotICAgICwgbV93b3JrZXJHbG9iYWxTY29wZShjb250ZXh0KQotICAgICwgbV9k
ZWJ1Z2dlclRhc2tNb2RlKG1vZGUpCi17Ci19Ci0KLXZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXI6OmF0dGFjaERlYnVnZ2VyKCkKLXsKLSAgICBtX3dvcmtlckdsb2JhbFNjb3BlLnNjcmlwdCgp
LT5hdHRhY2hEZWJ1Z2dlcih0aGlzKTsKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwot
fQotCi12b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZXRhY2hEZWJ1Z2dlcihib29sIHNr
aXBSZWNvbXBpbGUpCi17Ci0gICAgaWYgKG1fd29ya2VyR2xvYmFsU2NvcGUuc2NyaXB0KCkpCi0g
ICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUuc2NyaXB0KCktPmRldGFjaERlYnVnZ2VyKHRoaXMp
OwotICAgIGlmICghc2tpcFJlY29tcGlsZSkKLSAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlv
bnMoKTsKLX0KLQotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNG
dW5jdGlvbnMoKQotewotICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0oKSk7Ci0gICAgSlND
OjpEZWJ1Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKLX0KLQotdm9pZCBXb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKQotewotICAgIFRpbWVy
QmFzZTo6ZmlyZVRpbWVyc0luTmVzdGVkRXZlbnRMb29wKCk7Ci0KLSAgICBNZXNzYWdlUXVldWVX
YWl0UmVzdWx0IHJlc3VsdDsKLSAgICBkbyB7Ci0gICAgICAgIHJlc3VsdCA9IG1fd29ya2VyR2xv
YmFsU2NvcGUudGhyZWFkKCkucnVuTG9vcCgpLnJ1bkluTW9kZSgmbV93b3JrZXJHbG9iYWxTY29w
ZSwgbV9kZWJ1Z2dlclRhc2tNb2RlKTsKLSAgICAvLyBLZWVwIHdhaXRpbmcgdW50aWwgZXhlY3V0
aW9uIGlzIHJlc3VtZWQuCi0gICAgfSB3aGlsZSAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1p
bmF0ZWQgJiYgIW1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyk7Ci19Ci0KLXZvaWQgV29y
a2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgSlNDOjpFeGNlcHRpb24qIGV4Y2VwdGlvbikgY29uc3QKLXsKLSAgICBXZWJDb3JlOjpyZXBv
cnRFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKLX0KLQotdm9pZCBXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcjo6aW50ZXJydXB0QW5kUnVuVGFzayhzdGQ6OnVuaXF1ZV9wdHI8VGFzaz4pCi17Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhMzE5OGFiLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcl9oCi0jZGVmaW5lIFdvcmtlclNjcmlwdERl
YnVnU2VydmVyX2gKLQotI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwotCi1jbGFz
cyBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6OlNjcmlw
dERlYnVnU2VydmVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcik7Ci1wdWJsaWM6Ci0gICAgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIoV29ya2VyR2xv
YmFsU2NvcGUmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB+V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIo
KSB7IH0KLQotICAgIGNsYXNzIFRhc2sgewotICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgflRhc2soKSB7IH0KLSAgICAgICAgdmly
dHVhbCB2b2lkIHJ1bigpID0gMDsKLSAgICB9OwotCi0gICAgdmlydHVhbCB2b2lkIHJlY29tcGls
ZUFsbEpTRnVuY3Rpb25zKCkgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGludGVycnVwdEFuZFJ1blRh
c2soc3RkOjp1bmlxdWVfcHRyPFRhc2s+KTsKLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoRGVidWdnZXIoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoRGVidWdn
ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKLQotICAgIHZpcnR1YWwgdm9pZCBk
aWRQYXVzZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIGRpZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNDb250ZW50U2NyaXB0KEpTQzo6RXhlY1N0YXRlKikgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFeGNlcHRpb24qKSBjb25zdCBvdmVycmlkZTsKLQotICAgIFdvcmtl
ckdsb2JhbFNjb3BlJiBtX3dvcmtlckdsb2JhbFNjb3BlOwotICAgIFN0cmluZyBtX2RlYnVnZ2Vy
VGFza01vZGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBXb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckFsbEluT25lLmNwcAppbmRleCAzN2M5ODRjLi42ZTFiZWVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAgLTUwLDcgKzUwLDYgQEAK
ICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclN0
eWxlU2hlZXQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIgotI2lu
Y2x1ZGUgIkluc3BlY3RvcldvcmtlckFnZW50LmNwcCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmNwcCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAiCiAjaW5jbHVk
ZSAiUGFnZUNvbnNvbGVBZ2VudC5jcHAiCkBAIC02Miw3ICs2MSwzIEBACiAjaW5jbHVkZSAiV2Vi
RGVidWdnZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCIK
ICNpbmNsdWRlICJXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwIgotI2luY2x1ZGUgIldvcmtl
ckNvbnNvbGVBZ2VudC5jcHAiCi0jaW5jbHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5jcHAiCi0j
aW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAiCi0jaW5jbHVkZSAiV29ya2Vy
UnVudGltZUFnZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI3NzM3ZTMuLmI5MTVl
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xl
SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaApAQCAtNDQsMTAgKzQ0LDkgQEAgaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UmIHBhZ2Us
IHN0ZDo6dW5pcXUKICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdl
bnRzRm9yUGFnZShwYWdlKSwgV1RGOjptb3ZlKG1lc3NhZ2UpKTsKIH0KIAotaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckdsb2Jh
bFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSwgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29u
c29sZU1lc3NhZ2U+IG1lc3NhZ2UpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyR2xvYmFsU2NvcGUqLCBzdGQ6OnVuaXF1ZV9w
dHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pCiB7Ci0gICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2Vy
R2xvYmFsU2NvcGUod29ya2VyR2xvYmFsU2NvcGUpKQotICAgICAgICBhZGRNZXNzYWdlVG9Db25z
b2xlSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgV1RGOjptb3ZlKG1lc3NhZ2UpKTsKKyAgICAv
LyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNzYzND4gV2ViIEluc3BlY3Rvcjogc3Vw
cG9ydCBkZWJ1Z2dpbmcgd2ViIHdvcmtlcnMKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUqIHN0
YXRlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4
IDMzOTc2MDAuLmI2YmY0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTUwLDcgKzUwLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0
b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXBsYXlBZ2VudC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JXb3JrZXJB
Z2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJKU0RP
TVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCkBAIC0xNjksNyArMTY4
LDYgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdl
LCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjpt
YWtlX3VuaXF1ZTxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PihwYWdlQ29udGV4dCwgbV9kb21B
Z2VudCwgZGVidWdnZXJBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5p
cXVlPEluc3BlY3RvckhlYXBBZ2VudD4ocGFnZUNvbnRleHQpKTsKICAgICBtX2FnZW50cy5hcHBl
bmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KHBhZ2VD
b250ZXh0LCBwYWdlQWdlbnQpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1
ZTxJbnNwZWN0b3JXb3JrZXJBZ2VudD4ocGFnZUNvbnRleHQpKTsKICAgICBtX2FnZW50cy5hcHBl
bmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JMYXllclRyZWVBZ2VudD4ocGFnZUNvbnRleHQp
KTsKIAogICAgIEFTU0VSVChtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+Y29tbWFuZExpbmVBUElI
b3N0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcAppbmRleCBlNTI3ZGFhLi4xYWQwN2ZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAt
NTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIkluc3BlY3Rvck5ldHdvcmtBZ2VudC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdl
bnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JXb3JrZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3Ry
dW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJQYWdl
RGVidWdnZXJBZ2VudC5oIgpAQCAtNjIsMTAgKzYxLDYgQEAKICNpbmNsdWRlICJTdHlsZVJlc29s
dmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViQ29uc29sZUFnZW50
LmgiCi0jaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV29ya2VyUnVudGltZUFnZW50LmgiCi0jaW5j
bHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNs
dWRlIDxpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2Ny
aXB0QXJndW1lbnRzLmg+CkBAIC05MTEsMzggKzkwNiw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50CiAgICAgICAgIGRvbVN0b3JhZ2VBZ2VudC0+ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQo
a2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHN0b3JhZ2VUeXBlLCBzZWN1cml0eU9yaWdpbiwgcGFn
ZSk7CiB9CiAKLWJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRQYXVzZURlZGlj
YXRlZFdvcmtlck9uU3RhcnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdB
Z2VudHMpCi17Ci0gICAgaWYgKEluc3BlY3RvcldvcmtlckFnZW50KiB3b3JrZXJBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yV29ya2VyQWdlbnQoKSkKLSAgICAgICAgcmV0dXJu
IHdvcmtlckFnZW50LT5zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQoKTsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFy
dFdvcmtlckdsb2JhbFNjb3BlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBXb3JrZXJHbG9iYWxTY29wZVByb3h5KiB3b3JrZXJHbG9iYWxTY29wZVByb3h5LCBj
b25zdCBVUkwmIHVybCkKLXsKLSAgICBpZiAoSW5zcGVjdG9yV29ya2VyQWdlbnQqIHdvcmtlckFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JXb3JrZXJBZ2VudCgpKQotICAgICAg
ICB3b3JrZXJBZ2VudC0+ZGlkU3RhcnRXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29w
ZVByb3h5LCB1cmwpOwotfQotCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2
YWx1YXRlV29ya2VyU2NyaXB0KFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSwg
aW50IHdvcmtlclRocmVhZFN0YXJ0TW9kZSkKLXsKLSAgICBpZiAod29ya2VyVGhyZWFkU3RhcnRN
b2RlICE9IFBhdXNlV29ya2VyR2xvYmFsU2NvcGVPblN0YXJ0KQotICAgICAgICByZXR1cm47Ci0K
LSAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVu
dGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKTsKLSAgICBp
ZiAoIWluc3RydW1lbnRpbmdBZ2VudHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChXb3Jr
ZXJSdW50aW1lQWdlbnQqIHJ1bnRpbWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPndvcmtl
clJ1bnRpbWVBZ2VudCgpKQotICAgICAgICBydW50aW1lQWdlbnQtPnBhdXNlV29ya2VyR2xvYmFs
U2NvcGUod29ya2VyR2xvYmFsU2NvcGUpOwotfQotCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d29ya2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXb3JrZXJHbG9iYWxTY29wZVByb3h5KiBwcm94eSkKLXsK
LSAgICBpZiAoSW5zcGVjdG9yV29ya2VyQWdlbnQqIHdvcmtlckFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy5pbnNwZWN0b3JXb3JrZXJBZ2VudCgpKQotICAgICAgICB3b3JrZXJBZ2VudC0+d29y
a2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVkKHByb3h5KTsKLX0KLQogI2lmIEVOQUJMRShXRUJfU09D
S0VUUykKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgVVJMJiByZXF1ZXN0VVJMKQogewpAQCAtMTE5OSwxOSArMTE2
Miw2IEBAIEluc3RydW1lbnRpbmdBZ2VudHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5z
dHJ1bWVudGluZ0FnZW50c0ZvclJlbmRlcmVyKFJlCiAgICAgcmV0dXJuIGluc3RydW1lbnRpbmdB
Z2VudHNGb3JGcmFtZShyZW5kZXJlci0+ZnJhbWUoKSk7CiB9CiAKLUluc3RydW1lbnRpbmdBZ2Vu
dHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtl
ckdsb2JhbFNjb3BlKFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSkKLXsKLSAg
ICByZXR1cm4gd29ya2VyR2xvYmFsU2NvcGUgPyAmd29ya2VyR2xvYmFsU2NvcGUtPndvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIoKS5tX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkgOiBudWxscHRy
OwotfQotCi1JbnN0cnVtZW50aW5nQWdlbnRzKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omlu
c3RydW1lbnRpbmdBZ2VudHNGb3JOb25Eb2N1bWVudENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKLXsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgaWYgKGlzPFdvcmtl
ckdsb2JhbFNjb3BlPigqY29udGV4dCkpCi0gICAgICAgIHJldHVybiBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yV29ya2VyR2xvYmFsU2NvcGUoZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRl
eHQpKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmxheWVyVHJlZURpZENoYW5nZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cykKIHsKICAgICBpZiAoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQqIGxheWVy
VHJlZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JMYXllclRyZWVBZ2VudCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCmluZGV4IDY5NmQ4MjQuLjFiNGYzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEwMCw3ICsxMDAsNiBA
QCBjbGFzcyBTdHlsZVJ1bGU7CiBjbGFzcyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50OwogY2xhc3Mg
VVJMOwogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZVBy
b3h5OwogY2xhc3MgWE1MSHR0cFJlcXVlc3Q7CiAKIHN0cnVjdCBSZXBsYXlQb3NpdGlvbjsKQEAg
LTIyNSwxMSArMjI0LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hE
T01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiosIFBh
Z2UqKTsKIAotICAgIHN0YXRpYyBib29sIHNob3VsZFBhdXNlRGVkaWNhdGVkV29ya2VyT25TdGFy
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0gICAgc3RhdGljIHZvaWQgZGlkU3RhcnRXb3Jr
ZXJHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyR2xvYmFsU2NvcGVQ
cm94eSosIGNvbnN0IFVSTCYpOwotICAgIHN0YXRpYyB2b2lkIHdvcmtlckdsb2JhbFNjb3BlVGVy
bWluYXRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyR2xvYmFsU2NvcGVQcm94eSop
OwotICAgIHN0YXRpYyB2b2lkIHdpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdChXb3JrZXJHbG9iYWxT
Y29wZSosIGludCB3b3JrZXJUaHJlYWRTdGFydE1vZGUpOwotCiAjaWYgRU5BQkxFKFdFQl9SRVBM
QVkpCiAgICAgc3RhdGljIHZvaWQgc2Vzc2lvbkNyZWF0ZWQoUGFnZSYsIFJlZlB0cjxSZXBsYXlT
ZXNzaW9uPiYmKTsKICAgICBzdGF0aWMgdm9pZCBzZXNzaW9uTG9hZGVkKFBhZ2UmLCBSZWZQdHI8
UmVwbGF5U2Vzc2lvbj4mJik7CkBAIC0zOTksMTAgKzM5Myw2IEBAIHByaXZhdGU6CiAKICAgICBz
dGF0aWMgdm9pZCBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBT
dHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qLCBQYWdlKik7CiAK
LSAgICBzdGF0aWMgYm9vbCBzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnRJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRTdGFydFdvcmtlckdsb2Jh
bFNjb3BlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV29ya2VyR2xvYmFsU2NvcGVQcm94eSos
IGNvbnN0IFVSTCYpOwotICAgIHN0YXRpYyB2b2lkIHdvcmtlckdsb2JhbFNjb3BlVGVybWluYXRl
ZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdvcmtlckdsb2JhbFNjb3BlUHJveHkqKTsKLQog
I2lmIEVOQUJMRShXRUJfUkVQTEFZKQogICAgIHN0YXRpYyB2b2lkIHNlc3Npb25DcmVhdGVkSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgUmVmUHRyPFJlcGxheVNlc3Npb24+JiYpOwogICAgIHN0
YXRpYyB2b2lkIHNlc3Npb25Mb2FkZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBSZWZQdHI8
UmVwbGF5U2Vzc2lvbj4mJik7CkBAIC00NDYsOSArNDM2LDYgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KERv
Y3VtZW50Kik7CiAgICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqKTsKIAotICAgIHN0YXRpYyBJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUoV29ya2Vy
R2xvYmFsU2NvcGUqKTsKLSAgICBzdGF0aWMgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50c0Zvck5vbkRvY3VtZW50Q29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
Ci0KICAgICBzdGF0aWMgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogcmV0cmlldmVUaW1lbGluZUFn
ZW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAgICAgc3RhdGlj
IHZvaWQgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGJv
b2wgaXNET01FdmVudCwgY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMp
OwpAQCAtMTA2NSwyNiArMTA1Miw2IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrCiAgICAgICAg
IGRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywga2V5
LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHN0b3JhZ2VUeXBlLCBzZWN1cml0eU9yaWdpbiwgcGFnZSk7
CiB9CiAKLWlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkUGF1c2VE
ZWRpY2F0ZWRXb3JrZXJPblN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi17
Ci0gICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKGZhbHNlKTsKLSAgICBpZiAoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNG
b3JDb250ZXh0KGNvbnRleHQpKQotICAgICAgICByZXR1cm4gc2hvdWxkUGF1c2VEZWRpY2F0ZWRX
b3JrZXJPblN0YXJ0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cyk7Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29y
a2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV29ya2VyR2xv
YmFsU2NvcGVQcm94eSogcHJveHksIGNvbnN0IFVSTCYgdXJsKQotewotICAgIGlmIChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0Zv
ckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIGRpZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGVJbXBs
KCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm94eSwgdXJsKTsKLX0KLQotaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3b3JrZXJHbG9iYWxTY29wZVRlcm1pbmF0ZWQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV29ya2VyR2xvYmFsU2NvcGVQcm94eSogcHJveHkp
Ci17Ci0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBp
bnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkKLSAgICAgICAgd29ya2VyR2xv
YmFsU2NvcGVUZXJtaW5hdGVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJveHkpOwotfQot
CiAjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoRG9jdW1lbnQqIGRvY3VtZW50LCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCkKIHsKQEAgLTEyNzYsNyArMTI0
Myw3IEBAIGlubGluZSBJbnN0cnVtZW50aW5nQWdlbnRzKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246Omluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGlmIChpczxEb2N1bWVudD4oKmNvbnRleHQpKQogICAgICAgICByZXR1cm4gaW5zdHJ1bWVu
dGluZ0FnZW50c0ZvclBhZ2UoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLT5wYWdlKCkpOwot
ICAgIHJldHVybiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yTm9uRG9jdW1lbnRDb250ZXh0KGNvbnRl
eHQpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBpbmxpbmUgSW5zdHJ1bWVudGluZ0FnZW50
cyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUo
RnJhbWUqIGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmgKaW5kZXggZjAxZTcwMy4uN2U1Yjk2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC05Miw3ICs5Miw3
IEBAIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgZmluYWwKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbnNwZWN0b3JUaW1lbGluZUFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBlbnVtIEluc3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9yLCBX
b3JrZXJJbnNwZWN0b3IgfTsKKyAgICBlbnVtIEluc3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9y
IH07CiAKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KFdlYkFnZW50Q29udGV4dCYsIEluc3Bl
Y3RvclBhZ2VBZ2VudCosIEluc3BlY3RvclR5cGUpOwogICAgIHZpcnR1YWwgfkluc3BlY3RvclRp
bWVsaW5lQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JXZWJBZ2VudEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
ZWJBZ2VudEJhc2UuaAppbmRleCAwMzFlNGM5Li5mNjgyMzM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldlYkFnZW50QmFzZS5oCkBAIC0zNCw3ICszNCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNz
IFBhZ2U7Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKIAogLy8gRklYTUU6IG1vdmUgdGhpcyB0
byBJbnNwZWN0b3IgbmFtZXNwYWNlIHdoZW4gcmVtYWluaW5nIGFnZW50cyBtb3ZlLgogc3RydWN0
IFdlYkFnZW50Q29udGV4dCA6IHB1YmxpYyBJbnNwZWN0b3I6OkFnZW50Q29udGV4dCB7CkBAIC01
NywxNiArNTYsNiBAQCBzdHJ1Y3QgUGFnZUFnZW50Q29udGV4dCA6IHB1YmxpYyBXZWJBZ2VudENv
bnRleHQgewogICAgIFBhZ2UmIGluc3BlY3RlZFBhZ2U7CiB9OwogCi1zdHJ1Y3QgV29ya2VyQWdl
bnRDb250ZXh0IDogcHVibGljIFdlYkFnZW50Q29udGV4dCB7Ci0gICAgV29ya2VyQWdlbnRDb250
ZXh0KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCwgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckds
b2JhbFNjb3BlKQotICAgICAgICA6IFdlYkFnZW50Q29udGV4dChjb250ZXh0KQotICAgICAgICAs
IHdvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKQotICAgIHsKLSAgICB9Ci0KLSAg
ICBXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGU7Ci19OwotCiBjbGFzcyBJbnNw
ZWN0b3JBZ2VudEJhc2UgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudEJhc2Ugewog
cHJvdGVjdGVkOgogICAgIEluc3BlY3RvckFnZW50QmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFdl
YkFnZW50Q29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
ZWQ0NzI1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yV29ya2VyQWdlbnQuaCIKLQotI2luY2x1ZGUgIklu
c3RydW1lbnRpbmdBZ2VudHMuaCIKLSNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRlICJXb3JrZXJH
bG9iYWxTY29wZVByb3h5LmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
RGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi11c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEluc3BlY3RvcldvcmtlckFnZW50OjpXb3JrZXJG
cm9udGVuZENoYW5uZWwgOiBwdWJsaWMgV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6UGFnZUluc3Bl
Y3RvciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGlj
aXQgV29ya2VyRnJvbnRlbmRDaGFubmVsKEluc3BlY3Rvcjo6V29ya2VyRnJvbnRlbmREaXNwYXRj
aGVyKiBmcm9udGVuZERpc3BhdGNoZXIsIFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIHByb3h5KQot
ICAgICAgICA6IG1fZnJvbnRlbmREaXNwYXRjaGVyKGZyb250ZW5kRGlzcGF0Y2hlcikKLSAgICAg
ICAgLCBtX3Byb3h5KHByb3h5KQotICAgICAgICAsIG1faWQoc19uZXh0SWQrKykKLSAgICAgICAg
LCBtX2Nvbm5lY3RlZChmYWxzZSkKLSAgICB7Ci0gICAgfQotICAgIHZpcnR1YWwgfldvcmtlckZy
b250ZW5kQ2hhbm5lbCgpCi0gICAgewotICAgICAgICBkaXNjb25uZWN0RnJvbVdvcmtlckdsb2Jh
bFNjb3BlKCk7Ci0gICAgfQotCi0gICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQot
ICAgIFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIHByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9wcm94
eTsgfQotCi0gICAgdm9pZCBjb25uZWN0VG9Xb3JrZXJHbG9iYWxTY29wZSgpCi0gICAgewotICAg
ICAgICBpZiAobV9jb25uZWN0ZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fY29u
bmVjdGVkID0gdHJ1ZTsKLSAgICAgICAgbV9wcm94eS0+Y29ubmVjdFRvSW5zcGVjdG9yKHRoaXMp
OwotICAgIH0KLQotICAgIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXJHbG9iYWxTY29wZSgpCi0g
ICAgewotICAgICAgICBpZiAoIW1fY29ubmVjdGVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBtX2Nvbm5lY3RlZCA9IGZhbHNlOwotICAgICAgICBtX3Byb3h5LT5kaXNjb25uZWN0RnJv
bUluc3BlY3RvcigpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICAvLyBXb3JrZXJHbG9iYWxTY29w
ZVByb3h5OjpQYWdlSW5zcGVjdG9yIGltcGxlbWVudGF0aW9uCi0gICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoTWVzc2FnZUZyb21Xb3JrZXIoY29uc3QgU3RyaW5nJiBtZXNzYWdlU3RyaW5nKSBvdmVy
cmlkZQotICAgIHsKLSAgICAgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBwYXJzZWRNZXNzYWdl
OwotICAgICAgICBpZiAoIUluc3BlY3RvclZhbHVlOjpwYXJzZUpTT04obWVzc2FnZVN0cmluZywg
cGFyc2VkTWVzc2FnZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gbWVzc2FnZU9iamVjdDsKLSAgICAgICAgaWYgKCFwYXJzZWRNZXNzYWdl
LT5hc09iamVjdChtZXNzYWdlT2JqZWN0KSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlcihtX2lkLCBt
ZXNzYWdlT2JqZWN0KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3I6OldvcmtlckZyb250ZW5kRGlz
cGF0Y2hlciogbV9mcm9udGVuZERpc3BhdGNoZXI7Ci0gICAgV29ya2VyR2xvYmFsU2NvcGVQcm94
eSogbV9wcm94eTsKLSAgICBpbnQgbV9pZDsKLSAgICBib29sIG1fY29ubmVjdGVkOwotICAgIHN0
YXRpYyBpbnQgc19uZXh0SWQ7Ci19OwotCi1pbnQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6Oldvcmtl
ckZyb250ZW5kQ2hhbm5lbDo6c19uZXh0SWQgPSAxOwotCi1JbnNwZWN0b3JXb3JrZXJBZ2VudDo6
SW5zcGVjdG9yV29ya2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0KQotICAgIDogSW5z
cGVjdG9yQWdlbnRCYXNlKEFTQ0lJTGl0ZXJhbCgiV29ya2VyIiksIGNvbnRleHQpCi0gICAgLCBt
X2Zyb250ZW5kRGlzcGF0Y2hlcihzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3Rvcjo6V29ya2VyRnJv
bnRlbmREaXNwYXRjaGVyPihjb250ZXh0LmZyb250ZW5kUm91dGVyKSkKLSAgICAsIG1fYmFja2Vu
ZERpc3BhdGNoZXIoSW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGNv
bnRleHQuYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpKQotewotICAgIG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5zZXRJbnNwZWN0b3JXb3JrZXJBZ2VudCh0aGlzKTsKLX0KLQotSW5zcGVjdG9yV29ya2Vy
QWdlbnQ6On5JbnNwZWN0b3JXb3JrZXJBZ2VudCgpCi17Ci0gICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLnNldEluc3BlY3RvcldvcmtlckFnZW50KG51bGxwdHIpOwotfQotCi12b2lkIEluc3BlY3Rv
cldvcmtlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9u
dGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQotewotfQotCi12b2lk
IEluc3BlY3RvcldvcmtlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCi17Ci0gICAgbV9zaG91bGRQYXVzZURlZGljYXRlZFdv
cmtlck9uU3RhcnQgPSBmYWxzZTsKLSAgICBFcnJvclN0cmluZyB1bnVzZWQ7Ci0gICAgZGlzYWJs
ZSh1bnVzZWQpOwotfQotCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjplbmFibGUoRXJyb3JT
dHJpbmcmKQotewotICAgIG1fZW5hYmxlZCA9IHRydWU7Ci0KLSAgICBjcmVhdGVXb3JrZXJGcm9u
dGVuZENoYW5uZWxzRm9yRXhpc3RpbmdXb3JrZXJzKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29y
a2VyQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQotewotICAgIG1fZW5hYmxlZCA9IGZhbHNl
OwotCi0gICAgZGVzdHJveVdvcmtlckZyb250ZW5kQ2hhbm5lbHMoKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JXb3JrZXJBZ2VudDo6Y2FuSW5zcGVjdFdvcmtlcnMoRXJyb3JTdHJpbmcmLCBib29sKiBy
ZXN1bHQpCi17Ci0gICAgKnJlc3VsdCA9IHRydWU7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29ya2Vy
QWdlbnQ6OmNvbm5lY3RUb1dvcmtlcihFcnJvclN0cmluZyYgZXJyb3IsIGludCB3b3JrZXJJZCkK
LXsKLSAgICBXb3JrZXJGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBtX2lkVG9DaGFubmVsLmdl
dCh3b3JrZXJJZCk7Ci0gICAgaWYgKGNoYW5uZWwpCi0gICAgICAgIGNoYW5uZWwtPmNvbm5lY3RU
b1dvcmtlckdsb2JhbFNjb3BlKCk7Ci0gICAgZWxzZQotICAgICAgICBlcnJvciA9IEFTQ0lJTGl0
ZXJhbCgiV29ya2VyIGlzIGdvbmUiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6
ZGlzY29ubmVjdEZyb21Xb3JrZXIoRXJyb3JTdHJpbmcmIGVycm9yLCBpbnQgd29ya2VySWQpCi17
Ci0gICAgV29ya2VyRnJvbnRlbmRDaGFubmVsKiBjaGFubmVsID0gbV9pZFRvQ2hhbm5lbC5nZXQo
d29ya2VySWQpOwotICAgIGlmIChjaGFubmVsKQotICAgICAgICBjaGFubmVsLT5kaXNjb25uZWN0
RnJvbVdvcmtlckdsb2JhbFNjb3BlKCk7Ci0gICAgZWxzZQotICAgICAgICBlcnJvciA9IEFTQ0lJ
TGl0ZXJhbCgiV29ya2VyIGlzIGdvbmUiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dDo6c2VuZE1lc3NhZ2VUb1dvcmtlcihFcnJvclN0cmluZyYgZXJyb3IsIGludCB3b3JrZXJJZCwg
Y29uc3QgSW5zcGVjdG9yT2JqZWN0JiBtZXNzYWdlKQotewotICAgIFdvcmtlckZyb250ZW5kQ2hh
bm5lbCogY2hhbm5lbCA9IG1faWRUb0NoYW5uZWwuZ2V0KHdvcmtlcklkKTsKLSAgICBpZiAoY2hh
bm5lbCkKLSAgICAgICAgY2hhbm5lbC0+cHJveHkoKS0+c2VuZE1lc3NhZ2VUb0luc3BlY3Rvciht
ZXNzYWdlLnRvSlNPTlN0cmluZygpKTsKLSAgICBlbHNlCi0gICAgICAgIGVycm9yID0gQVNDSUlM
aXRlcmFsKCJXb3JrZXIgaXMgZ29uZSIpOwotfQotCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50
OjpzZXRBdXRvY29ubmVjdFRvV29ya2VycyhFcnJvclN0cmluZyYsIGJvb2wgdmFsdWUpCi17Ci0g
ICAgbV9zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQgPSB2YWx1ZTsKLX0KLQotYm9v
bCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3Rh
cnQ7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoV29ya2VyR2xvYmFsU2NvcGVQcm94eSogd29ya2VyR2xvYmFsU2NvcGVQcm94eSwgY29u
c3QgVVJMJiB1cmwpCi17Ci0gICAgbV9kZWRpY2F0ZWRXb3JrZXJzLnNldCh3b3JrZXJHbG9iYWxT
Y29wZVByb3h5LCB1cmwuc3RyaW5nKCkpOwotICAgIGlmIChtX2VuYWJsZWQpCi0gICAgICAgIGNy
ZWF0ZVdvcmtlckZyb250ZW5kQ2hhbm5lbCh3b3JrZXJHbG9iYWxTY29wZVByb3h5LCB1cmwuc3Ry
aW5nKCkpOwotfQotCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojp3b3JrZXJHbG9iYWxTY29w
ZVRlcm1pbmF0ZWQoV29ya2VyR2xvYmFsU2NvcGVQcm94eSogcHJveHkpCi17Ci0gICAgbV9kZWRp
Y2F0ZWRXb3JrZXJzLnJlbW92ZShwcm94eSk7Ci0gICAgZm9yIChXb3JrZXJDaGFubmVsczo6aXRl
cmF0b3IgaXQgPSBtX2lkVG9DaGFubmVsLmJlZ2luKCk7IGl0ICE9IG1faWRUb0NoYW5uZWwuZW5k
KCk7ICsraXQpIHsKLSAgICAgICAgaWYgKHByb3h5ID09IGl0LT52YWx1ZS0+cHJveHkoKSkgewot
ICAgICAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPndvcmtlclRlcm1pbmF0ZWQoaXQtPmtl
eSk7Ci0gICAgICAgICAgICBkZWxldGUgaXQtPnZhbHVlOwotICAgICAgICAgICAgbV9pZFRvQ2hh
bm5lbC5yZW1vdmUoaXQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQot
fQotCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpjcmVhdGVXb3JrZXJGcm9udGVuZENoYW5u
ZWxzRm9yRXhpc3RpbmdXb3JrZXJzKCkKLXsKLSAgICBmb3IgKGF1dG8mIHdvcmtlciA6IG1fZGVk
aWNhdGVkV29ya2VycykKLSAgICAgICAgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsKHdvcmtl
ci5rZXksIHdvcmtlci52YWx1ZSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRl
c3Ryb3lXb3JrZXJGcm9udGVuZENoYW5uZWxzKCkKLXsKLSAgICBmb3IgKGF1dG8mIGNoYW5uZWwg
OiBtX2lkVG9DaGFubmVsLnZhbHVlcygpKSB7Ci0gICAgICAgIGNoYW5uZWwtPmRpc2Nvbm5lY3RG
cm9tV29ya2VyR2xvYmFsU2NvcGUoKTsKLSAgICAgICAgZGVsZXRlIGNoYW5uZWw7Ci0gICAgfQot
ICAgIG1faWRUb0NoYW5uZWwuY2xlYXIoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dDo6Y3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsKFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIHdv
cmtlckdsb2JhbFNjb3BlUHJveHksIGNvbnN0IFN0cmluZyYgdXJsKQotewotICAgIFdvcmtlckZy
b250ZW5kQ2hhbm5lbCogY2hhbm5lbCA9IG5ldyBXb3JrZXJGcm9udGVuZENoYW5uZWwobV9mcm9u
dGVuZERpc3BhdGNoZXIuZ2V0KCksIHdvcmtlckdsb2JhbFNjb3BlUHJveHkpOwotICAgIG1faWRU
b0NoYW5uZWwuc2V0KGNoYW5uZWwtPmlkKCksIGNoYW5uZWwpOwotCi0gICAgaWYgKG1fc2hvdWxk
UGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0KQotICAgICAgICBjaGFubmVsLT5jb25uZWN0VG9X
b3JrZXJHbG9iYWxTY29wZSgpOwotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT53b3JrZXJDcmVh
dGVkKGNoYW5uZWwtPmlkKCksIHVybCwgbV9zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3Rh
cnQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkMmY1Y2U3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJp
YnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElu
c3BlY3RvcldvcmtlckFnZW50X2gKLSNkZWZpbmUgSW5zcGVjdG9yV29ya2VyQWdlbnRfaAotCi0j
aW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0j
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLQotbmFtZXNwYWNlIEluc3BlY3RvciB7Ci1jbGFzcyBJ
bnNwZWN0b3JPYmplY3Q7Ci1jbGFzcyBXb3JrZXJGcm9udGVuZERpc3BhdGNoZXI7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFVSTDsKLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJv
eHk7Ci0KLXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwotCi1jbGFzcyBJbnNwZWN0b3JXb3Jr
ZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0
b3I6OldvcmtlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgSW5zcGVjdG9yV29ya2VyQWdlbnQoV2Vi
QWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yV29ya2VyQWdlbnQoKTsKLQot
ICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpG
cm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKLQotICAgIC8vIENhbGxlZCBmcm9tIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbgotICAgIGJvb2wgc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJP
blN0YXJ0KCkgY29uc3Q7Ci0gICAgdm9pZCBkaWRTdGFydFdvcmtlckdsb2JhbFNjb3BlKFdvcmtl
ckdsb2JhbFNjb3BlUHJveHkqLCBjb25zdCBVUkwmKTsKLSAgICB2b2lkIHdvcmtlckdsb2JhbFNj
b3BlVGVybWluYXRlZChXb3JrZXJHbG9iYWxTY29wZVByb3h5Kik7Ci0KLSAgICAvLyBDYWxsZWQg
ZnJvbSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcgotICAgIHZpcnR1YWwgdm9pZCBlbmFibGUo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0
cmluZyYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBjYW5JbnNwZWN0V29ya2VycyhFcnJv
clN0cmluZyYsIGJvb2wqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdFRvV29y
a2VyKEVycm9yU3RyaW5nJiwgaW50IHdvcmtlcklkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzY29ubmVjdEZyb21Xb3JrZXIoRXJyb3JTdHJpbmcmLCBpbnQgd29ya2VySWQpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKEVycm9yU3RyaW5nJiwg
aW50IHdvcmtlcklkLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgbWVzc2FnZSkg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEF1dG9jb25uZWN0VG9Xb3JrZXJzKEVycm9y
U3RyaW5nJiwgYm9vbCB2YWx1ZSkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBjcmVh
dGVXb3JrZXJGcm9udGVuZENoYW5uZWxzRm9yRXhpc3RpbmdXb3JrZXJzKCk7Ci0gICAgdm9pZCBj
cmVhdGVXb3JrZXJGcm9udGVuZENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGVQcm94eSosIGNvbnN0
IFN0cmluZyYgdXJsKTsKLSAgICB2b2lkIGRlc3Ryb3lXb3JrZXJGcm9udGVuZENoYW5uZWxzKCk7
Ci0KLSAgICBjbGFzcyBXb3JrZXJGcm9udGVuZENoYW5uZWw7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8SW5zcGVjdG9yOjpXb3JrZXJGcm9udGVuZERpc3BhdGNoZXI+IG1fZnJvbnRlbmREaXNwYXRj
aGVyOwotICAgIFJlZlB0cjxJbnNwZWN0b3I6OldvcmtlckJhY2tlbmREaXNwYXRjaGVyPiBtX2Jh
Y2tlbmREaXNwYXRjaGVyOwotCi0gICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQgeyBmYWxzZSB9OwotICAgIAot
ICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFdvcmtlckZyb250ZW5kQ2hhbm5lbCo+IFdvcmtlckNo
YW5uZWxzOwotICAgIFdvcmtlckNoYW5uZWxzIG1faWRUb0NoYW5uZWw7Ci0gICAgdHlwZWRlZiBI
YXNoTWFwPFdvcmtlckdsb2JhbFNjb3BlUHJveHkqLCBTdHJpbmc+IERlZGljYXRlZFdvcmtlcnM7
Ci0gICAgRGVkaWNhdGVkV29ya2VycyBtX2RlZGljYXRlZFdvcmtlcnM7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JXb3JrZXJBZ2Vu
dF9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldvcmtl
clJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyUmVz
b3VyY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWVhYTBkMC4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaAor
KysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvcldvcmtlclJlc291
cmNlX2gKLSNkZWZpbmUgSW5zcGVjdG9yV29ya2VyUmVzb3VyY2VfaAotCi0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW5zcGVjdG9y
V29ya2VyUmVzb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JXb3JrZXJSZXNvdXJj
ZT4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yV29ya2VyUmVzb3VyY2U+IGNy
ZWF0ZShpbnRwdHJfdCBpZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgaXNTaGFyZWRXb3JrZXIp
Ci0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNwZWN0b3JXb3JrZXJSZXNv
dXJjZShpZCwgdXJsLCBpc1NoYXJlZFdvcmtlcikpOwotICAgIH0KLQotICAgIGludHB0cl90IGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3Qg
eyByZXR1cm4gbV91cmw7IH0KLSAgICBib29sIGlzU2hhcmVkV29ya2VyKCkgY29uc3QgeyByZXR1
cm4gbV9pc1NoYXJlZFdvcmtlcjsgfQotcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JXb3JrZXJSZXNv
dXJjZShpbnRwdHJfdCBpZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgaXNTaGFyZWRXb3JrZXIp
Ci0gICAgICAgIDogbV9pZChpZCkKLSAgICAgICAgLCBtX3VybCh1cmwpCi0gICAgICAgICwgbV9p
c1NoYXJlZFdvcmtlcihpc1NoYXJlZFdvcmtlcikKLSAgICB7Ci0gICAgfQotCi0gICAgaW50cHRy
X3QgbV9pZDsKLSAgICBTdHJpbmcgbV91cmw7Ci0gICAgYm9vbCBtX2lzU2hhcmVkV29ya2VyOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSW5zcGVjdG9yV29ya2Vy
UmVzb3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1l
bnRpbmdBZ2VudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuY3BwCmluZGV4IDE0ZGFiNzEuLjczZGZjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKQEAgLTMyLDEyICszMiw2IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogCi0j
aW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNs
dWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgotI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotCiB1c2luZyBuYW1lc3BhY2Ug
SW5zcGVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw3ICs1MSw2IEBAIHZvaWQg
SW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1faW5zcGVjdG9yRE9NQWdlbnQgPSBu
dWxscHRyOwogICAgIG1faW5zcGVjdG9yTmV0d29ya0FnZW50ID0gbnVsbHB0cjsKICAgICBtX3Bh
Z2VSdW50aW1lQWdlbnQgPSBudWxscHRyOwotICAgIG1fd29ya2VyUnVudGltZUFnZW50ID0gbnVs
bHB0cjsKICAgICBtX2luc3BlY3RvclRpbWVsaW5lQWdlbnQgPSBudWxscHRyOwogICAgIG1fcGVy
c2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50ID0gbnVsbHB0cjsKQEAgLTY5LDcgKzYyLDYgQEAgdm9pZCBJbnN0cnVt
ZW50aW5nQWdlbnRzOjpyZXNldCgpCiAgICAgbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gbnVs
bHB0cjsKICAgICBtX3BhZ2VEZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQgPSBudWxscHRyOwotICAgIG1faW5zcGVjdG9yV29ya2VyQWdlbnQg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAppbmRleCA0MGQ0ZjEyLi5jM2RhY2Yx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgK
QEAgLTU1LDEzICs1NSwxMCBAQCBjbGFzcyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ7CiBjbGFzcyBJ
bnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXBsYXlBZ2VudDsKIGNsYXNzIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JXb3JrZXJBZ2VudDsKIGNsYXNz
IFBhZ2U7CiBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudDsKIGNsYXNzIFBhZ2VSdW50aW1lQWdlbnQ7
CiBjbGFzcyBXZWJDb25zb2xlQWdlbnQ7Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKLWNsYXNz
IFdvcmtlclJ1bnRpbWVBZ2VudDsKIAogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50cyA6IHB1Ymxp
YyBSZWZDb3VudGVkPEluc3RydW1lbnRpbmdBZ2VudHM+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShJbnN0cnVtZW50aW5nQWdlbnRzKTsKQEAgLTk5LDkgKzk2LDYgQEAgcHVibGljOgogICAg
IFBhZ2VSdW50aW1lQWdlbnQqIHBhZ2VSdW50aW1lQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2VSdW50aW1lQWdlbnQ7IH0KICAgICB2b2lkIHNldFBhZ2VSdW50aW1lQWdlbnQoUGFnZVJ1bnRp
bWVBZ2VudCogYWdlbnQpIHsgbV9wYWdlUnVudGltZUFnZW50ID0gYWdlbnQ7IH0KIAotICAgIFdv
cmtlclJ1bnRpbWVBZ2VudCogd29ya2VyUnVudGltZUFnZW50KCkgY29uc3QgeyByZXR1cm4gbV93
b3JrZXJSdW50aW1lQWdlbnQ7IH0KLSAgICB2b2lkIHNldFdvcmtlclJ1bnRpbWVBZ2VudChXb3Jr
ZXJSdW50aW1lQWdlbnQqIGFnZW50KSB7IG1fd29ya2VyUnVudGltZUFnZW50ID0gYWdlbnQ7IH0K
LQogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIGluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSBj
b25zdCB7IHJldHVybiBtX2luc3BlY3RvclRpbWVsaW5lQWdlbnQ7IH0KICAgICB2b2lkIHNldElu
c3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogYWdlbnQpIHsgbV9p
bnNwZWN0b3JUaW1lbGluZUFnZW50ID0gYWdlbnQ7IH0KIApAQCAtMTMxLDkgKzEyNSw2IEBAIHB1
YmxpYzoKICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBpbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OyB9CiAg
ICAgdm9pZCBzZXRJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KEluc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCA9IGFnZW50OyB9CiAK
LSAgICBJbnNwZWN0b3JXb3JrZXJBZ2VudCogaW5zcGVjdG9yV29ya2VyQWdlbnQoKSBjb25zdCB7
IHJldHVybiBtX2luc3BlY3RvcldvcmtlckFnZW50OyB9Ci0gICAgdm9pZCBzZXRJbnNwZWN0b3JX
b3JrZXJBZ2VudChJbnNwZWN0b3JXb3JrZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JXb3Jr
ZXJBZ2VudCA9IGFnZW50OyB9Ci0KICAgICBJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogaW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckxheWVyVHJlZUFn
ZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JMYXllclRyZWVBZ2VudChJbnNwZWN0b3JMYXll
clRyZWVBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JMYXllclRyZWVBZ2VudCA9IGFnZW50OyB9
CiAKQEAgLTE1MCw3ICsxNDEsNiBAQCBwcml2YXRlOgogICAgIEluc3BlY3RvckRPTUFnZW50KiBt
X2luc3BlY3RvckRPTUFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3Rvck5ldHdvcmtBZ2Vu
dCogbV9pbnNwZWN0b3JOZXR3b3JrQWdlbnQgeyBudWxscHRyIH07CiAgICAgUGFnZVJ1bnRpbWVB
Z2VudCogbV9wYWdlUnVudGltZUFnZW50IHsgbnVsbHB0ciB9OwotICAgIFdvcmtlclJ1bnRpbWVB
Z2VudCogbV93b3JrZXJSdW50aW1lQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCogbV9pbnNwZWN0b3JUaW1lbGluZUFnZW50IHsgbnVsbHB0ciB9OwogICAgIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQqIG1fcGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQg
eyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KiBtX2luc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudCB7IG51bGxwdHIgfTsKQEAgLTE2Miw3ICsxNTIsNiBAQCBwcml2YXRlOgog
ICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudCogbV9pbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50IHsgbnVsbHB0ciB9OwogICAgIFBhZ2VEZWJ1Z2dlckFnZW50KiBtX3BhZ2VEZWJ1Z2dl
ckFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIG1faW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudCB7IG51bGxwdHIgfTsKLSAgICBJbnNwZWN0b3JXb3JrZXJB
Z2VudCogbV9pbnNwZWN0b3JXb3JrZXJBZ2VudCB7IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
Q29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2Vu
dC5oCmluZGV4IDRjNzU4ZjAuLjhhYjFjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VDb25zb2xlQWdlbnQuaApAQCAtNDcsNyArNDcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+UGFnZUNvbnNvbGVBZ2VudCgpIHsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBp
c1dvcmtlckFnZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCkgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1Nl
cnZlci5jcHAKaW5kZXggZTdjNWY5My4uY2I2NGEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTUyLDcgKzUyLDcgQEAg
dXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFnZVNj
cmlwdERlYnVnU2VydmVyOjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXIoUGFnZSYgcGFnZSkKLSAgICA6
IFNjcmlwdERlYnVnU2VydmVyKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSwg
ZmFsc2UpCisgICAgOiBTY3JpcHREZWJ1Z1NlcnZlcihXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6
OmNvbW1vblZNKCkpCiAgICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI3MTk0ODYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckNvbnNvbGVBZ2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBk
aXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXb3JrZXJDb25zb2xlQWdlbnQuaCIKLQotdXNpbmcg
bmFtZXNwYWNlIEluc3BlY3RvcjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1Xb3JrZXJDb25z
b2xlQWdlbnQ6OldvcmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmIGNvbnRleHQp
Ci0gICAgOiBXZWJDb25zb2xlQWdlbnQoY29udGV4dCkKLXsKLX0KLQotdm9pZCBXb3JrZXJDb25z
b2xlQWdlbnQ6OmFkZEluc3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcmIGVycm9yLCBpbnQpCi17Ci0g
ICAgZXJyb3IgPSBBU0NJSUxpdGVyYWwoImFkZEluc3BlY3RlZE5vZGUgaXMgbm90IHN1cHBvcnRl
ZCBmb3Igd29ya2VycyIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGIyNGU4MzAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFdvcmtlckNvbnNvbGVBZ2VudF9oCi0jZGVmaW5lIFdvcmtlckNvbnNvbGVBZ2VudF9oCi0K
LSNpbmNsdWRlICJJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIKLSNpbmNsdWRlICJXZWJDb25zb2xl
QWdlbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBXb3JrZXJDb25zb2xlQWdl
bnQgZmluYWwgOiBwdWJsaWMgV2ViQ29uc29sZUFnZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShXb3JrZXJDb25zb2xlQWdlbnQpOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwot
cHVibGljOgotICAgIFdvcmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAg
ICB2aXJ0dWFsIH5Xb3JrZXJDb25zb2xlQWdlbnQoKSB7IH0KLQotICAgIHZpcnR1YWwgYm9vbCBp
c1dvcmtlckFnZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRl
OgotICAgIHZpcnR1YWwgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCkgb3ZlcnJpZGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyAhZGVmaW5lZChXb3JrZXJDb25zb2xlQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzFiMzBmZi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzcgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5oIgotCi0jaW5jbHVk
ZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
ci5oIgotI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdC5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIu
aD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuaD4KLSNpbmNsdWRlIDx3
dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KLSNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1uYW1lc3BhY2UgewotCi1TdGF0aWNMb2NrIHdvcmtlckRlYnVnZ2Vy
QWdlbnRzTXV0ZXg7Ci0KLXR5cGVkZWYgSGFzaE1hcDxXb3JrZXJUaHJlYWQqLCBXb3JrZXJEZWJ1
Z2dlckFnZW50Kj4gV29ya2VyRGVidWdnZXJBZ2VudHM7Ci0KLVdvcmtlckRlYnVnZ2VyQWdlbnRz
JiB3b3JrZXJEZWJ1Z2dlckFnZW50cygpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdv
cmtlckRlYnVnZ2VyQWdlbnRzPiBhZ2VudHM7Ci0KLSAgICByZXR1cm4gYWdlbnRzOwotfQotCi1j
bGFzcyBSdW5JbnNwZWN0b3JDb21tYW5kc1Rhc2sgOiBwdWJsaWMgV29ya2VyU2NyaXB0RGVidWdT
ZXJ2ZXI6OlRhc2sgewotcHVibGljOgotICAgIFJ1bkluc3BlY3RvckNvbW1hbmRzVGFzayhXb3Jr
ZXJUaHJlYWQqIHRocmVhZCwgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2JhbFNjb3BlKQot
ICAgICAgICA6IG1fdGhyZWFkKHRocmVhZCkKLSAgICAgICAgLCBtX3dvcmtlckdsb2JhbFNjb3Bl
KHdvcmtlckdsb2JhbFNjb3BlKSB7IH0KLSAgICB2aXJ0dWFsIH5SdW5JbnNwZWN0b3JDb21tYW5k
c1Rhc2soKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcnVuKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAg
ICAgIC8vIFByb2Nlc3MgYWxsIHF1ZXVlZCBkZWJ1Z2dlciBjb21tYW5kcy4gSXQgaXMgc2FmZSB0
byB1c2UgbV93b3JrZXJHbG9iYWxTY29wZSBoZXJlCi0gICAgICAgIC8vIGJlY2F1c2UgaXQgaXMg
YWxpdmUgaWYgUnVuV29ya2VyTG9vcCBpcyBub3QgdGVybWluYXRlZCwgb3RoZXJ3aXNlIGl0IHdp
bGwKLSAgICAgICAgLy8ganVzdCBiZSBpZ25vcmVkLiBXb3JrZXJUaHJlYWQgaXMgY2VydGFpbmx5
IGFsaXZlIGlmIHRoaXMgdGFzayBpcyBiZWluZyBleGVjdXRlZC4KLSAgICAgICAgd2hpbGUgKE1l
c3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZCA9PSBtX3RocmVhZC0+cnVuTG9vcCgpLnJ1bkluTW9k
ZShtX3dvcmtlckdsb2JhbFNjb3BlLCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tN
b2RlLCBXb3JrZXJSdW5Mb29wOjpEb250V2FpdEZvck1lc3NhZ2UpKSB7IH0KLSAgICB9Ci0KLXBy
aXZhdGU6Ci0gICAgV29ya2VyVGhyZWFkKiBtX3RocmVhZDsKLSAgICBXb3JrZXJHbG9iYWxTY29w
ZSogbV93b3JrZXJHbG9iYWxTY29wZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlCi0KLWNvbnN0IGNo
YXIqIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUgPSAiZGVidWdnZXIiOwot
Ci1Xb3JrZXJEZWJ1Z2dlckFnZW50OjpXb3JrZXJEZWJ1Z2dlckFnZW50KFdvcmtlckFnZW50Q29u
dGV4dCYgY29udGV4dCkKLSAgICA6IFdlYkRlYnVnZ2VyQWdlbnQoY29udGV4dCkKLSAgICAsIG1f
aW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dC53b3JrZXJHbG9iYWxTY29wZSkKLXsK
LSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh3b3JrZXJEZWJ1Z2dlckFnZW50
c011dGV4KTsKLSAgICB3b3JrZXJEZWJ1Z2dlckFnZW50cygpLnNldCgmY29udGV4dC53b3JrZXJH
bG9iYWxTY29wZS50aHJlYWQoKSwgdGhpcyk7Ci19Ci0KLVdvcmtlckRlYnVnZ2VyQWdlbnQ6On5X
b3JrZXJEZWJ1Z2dlckFnZW50KCkKLXsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4g
bG9jayh3b3JrZXJEZWJ1Z2dlckFnZW50c011dGV4KTsKLQotICAgIEFTU0VSVCh3b3JrZXJEZWJ1
Z2dlckFnZW50cygpLmNvbnRhaW5zKCZtX2luc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlLnRocmVh
ZCgpKSk7Ci0gICAgd29ya2VyRGVidWdnZXJBZ2VudHMoKS5yZW1vdmUoJm1faW5zcGVjdGVkV29y
a2VyR2xvYmFsU2NvcGUudGhyZWFkKCkpOwotfQotCi12b2lkIFdvcmtlckRlYnVnZ2VyQWdlbnQ6
OmludGVycnVwdEFuZERpc3BhdGNoSW5zcGVjdG9yQ29tbWFuZHMoV29ya2VyVGhyZWFkKiB0aHJl
YWQpCi17Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sod29ya2VyRGVidWdn
ZXJBZ2VudHNNdXRleCk7Ci0KLSAgICBpZiAoV29ya2VyRGVidWdnZXJBZ2VudCogYWdlbnQgPSB3
b3JrZXJEZWJ1Z2dlckFnZW50cygpLmdldCh0aHJlYWQpKSB7Ci0gICAgICAgIFdvcmtlclNjcmlw
dERlYnVnU2VydmVyJiB3b3JrZXJTY3JpcHREZWJ1Z1NlcnZlciA9IHN0YXRpY19jYXN0PFdvcmtl
clNjcmlwdERlYnVnU2VydmVyJj4oYWdlbnQtPnNjcmlwdERlYnVnU2VydmVyKCkpOwotICAgICAg
ICB3b3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5pbnRlcnJ1cHRBbmRSdW5UYXNrKHN0ZDo6bWFrZV91
bmlxdWU8UnVuSW5zcGVjdG9yQ29tbWFuZHNUYXNrPih0aHJlYWQsICZhZ2VudC0+bV9pbnNwZWN0
ZWRXb3JrZXJHbG9iYWxTY29wZSkpOwotICAgIH0KLX0KLQotdm9pZCBXb3JrZXJEZWJ1Z2dlckFn
ZW50OjpicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQotewotICAgIG1faW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGUuYWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6TG9nLCBtZXNzYWdlKTsKLX0K
LQotSW5qZWN0ZWRTY3JpcHQgV29ya2VyRGVidWdnZXJBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JF
dmFsKEVycm9yU3RyaW5nJiBlcnJvciwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCi17
Ci0gICAgaWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkgewotICAgICAgICBlcnJvciA9IEFTQ0lJTGl0
ZXJhbCgiRXhlY3V0aW9uIGNvbnRleHQgaWQgaXMgbm90IHN1cHBvcnRlZCBmb3Igd29ya2VycyBh
cyB0aGVyZSBpcyBvbmx5IG9uZSBleGVjdXRpb24gY29udGV4dC4iKTsKLSAgICAgICAgcmV0dXJu
IEluamVjdGVkU2NyaXB0KCk7Ci0gICAgfQotCi0gICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0
YXRlID0gZXhlY1N0YXRlRnJvbVdvcmtlckdsb2JhbFNjb3BlKCZtX2luc3BlY3RlZFdvcmtlckds
b2JhbFNjb3BlKTsKLSAgICByZXR1cm4gaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCkuaW5qZWN0ZWRT
Y3JpcHRGb3Ioc2NyaXB0U3RhdGUpOwotfQotCi12b2lkIFdvcmtlckRlYnVnZ2VyQWdlbnQ6Om11
dGVDb25zb2xlKCkKLXsKLSAgICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Ig
d29ya2Vycy4KLX0KLQotdm9pZCBXb3JrZXJEZWJ1Z2dlckFnZW50Ojp1bm11dGVDb25zb2xlKCkK
LXsKLSAgICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJEZWJ1Z2dlckFnZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1NjY2
ZWYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2Vy
QWdlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXb3JrZXJEZWJ1Z2dl
ckFnZW50X2gKLSNkZWZpbmUgV29ya2VyRGVidWdnZXJBZ2VudF9oCi0KLSNpbmNsdWRlICJXZWJE
ZWJ1Z2dlckFnZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgV29ya2VyR2xv
YmFsU2NvcGU7Ci1jbGFzcyBXb3JrZXJUaHJlYWQ7Ci0KLWNsYXNzIFdvcmtlckRlYnVnZ2VyQWdl
bnQgZmluYWwgOiBwdWJsaWMgV2ViRGVidWdnZXJBZ2VudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV29ya2VyRGVidWdnZXJBZ2VudCk7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
Ci1wdWJsaWM6Ci0gICAgV29ya2VyRGVidWdnZXJBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsK
LSAgICB2aXJ0dWFsIH5Xb3JrZXJEZWJ1Z2dlckFnZW50KCk7Ci0KLSAgICBzdGF0aWMgY29uc3Qg
Y2hhciogZGVidWdnZXJUYXNrTW9kZTsKLSAgICBzdGF0aWMgdm9pZCBpbnRlcnJ1cHRBbmREaXNw
YXRjaEluc3BlY3RvckNvbW1hbmRzKFdvcmtlclRocmVhZCopOwotCi0gICAgdmlydHVhbCBJbnNw
ZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYs
IGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29s
ZSgpIG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBX
b3JrZXJHbG9iYWxTY29wZSYgbV9pbnNwZWN0ZWRXb3JrZXJHbG9iYWxTY29wZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vICFkZWZpbmVkKFdvcmtlckRlYnVnZ2Vy
QWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDhiODEw
Mi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMTggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgotCi0jaW5jbHVk
ZSAiQ29tbWFuZExpbmVBUElIb3N0LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgotI2luY2x1ZGUgIklu
c3RydW1lbnRpbmdBZ2VudHMuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKLSNpbmNs
dWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJXZWJJbmplY3RlZFNjcmlw
dEhvc3QuaCIKLSNpbmNsdWRlICJXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKLSNpbmNsdWRl
ICJXb3JrZXJDb25zb2xlQWdlbnQuaCIKLSNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50Lmgi
Ci0jaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJSZXBvcnRp
bmdQcm94eS5oIgotI2luY2x1ZGUgIldvcmtlclJ1bnRpbWVBZ2VudC5oIgotI2luY2x1ZGUgIldv
cmtlclRocmVhZC5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlci5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4K
LSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgotI2lu
Y2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgotI2luY2x1ZGUgPHd0
Zi9TdG9wd2F0Y2guaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLXVzaW5nIG5hbWVzcGFjZSBJ
bnNwZWN0b3I7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIHsKLQotY2xhc3Mg
UGFnZUluc3BlY3RvclByb3h5IDogcHVibGljIEZyb250ZW5kQ2hhbm5lbCB7Ci0gICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgUGFnZUluc3BlY3RvclBy
b3h5KFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSkKLSAgICAgICAgOiBtX3dv
cmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSB7IH0KLSAgICB2aXJ0dWFsIH5QYWdl
SW5zcGVjdG9yUHJveHkoKSB7IH0KLQotICAgIHZpcnR1YWwgQ29ubmVjdGlvblR5cGUgY29ubmVj
dGlvblR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb25uZWN0aW9uVHlwZTo6TG9jYWw7
IH0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBtX3dvcmtlckdsb2Jh
bFNjb3BlLnRocmVhZCgpLndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdE1lc3NhZ2VUb1BhZ2VJ
bnNwZWN0b3IobWVzc2FnZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBXb3Jr
ZXJHbG9iYWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsKLX07Ci0KLX0KLQotV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJHbG9iYWxT
Y29wZSYgd29ya2VyR2xvYmFsU2NvcGUpCi0gICAgOiBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtl
ckdsb2JhbFNjb3BlKQotICAgICwgbV9pbnN0cnVtZW50aW5nQWdlbnRzKEluc3RydW1lbnRpbmdB
Z2VudHM6OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihzdGQ6
Om1ha2VfdW5pcXVlPFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcj4oKnRoaXMsIFdlYkluamVjdGVk
U2NyaXB0SG9zdDo6Y3JlYXRlKCkpKQotICAgICwgbV9leGVjdXRpb25TdG9wd2F0Y2goU3RvcHdh
dGNoOjpjcmVhdGUoKSkKLSAgICAsIG1fc2NyaXB0RGVidWdTZXJ2ZXIod29ya2VyR2xvYmFsU2Nv
cGUsIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpCi0gICAgLCBtX2Zyb250
ZW5kUm91dGVyKEZyb250ZW5kUm91dGVyOjpjcmVhdGUoKSkKLSAgICAsIG1fYmFja2VuZERpc3Bh
dGNoZXIoQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShtX2Zyb250ZW5kUm91dGVyLmNvcHlSZWYo
KSkpCi17Ci0gICAgQWdlbnRDb250ZXh0IGJhc2VDb250ZXh0ID0gewotICAgICAgICAqdGhpcywK
LSAgICAgICAgKm1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLAotICAgICAgICBtX2Zyb250ZW5kUm91
dGVyLmdldCgpLAotICAgICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpCi0gICAgfTsKLQot
ICAgIFdlYkFnZW50Q29udGV4dCB3ZWJDb250ZXh0ID0gewotICAgICAgICBiYXNlQ29udGV4dCwK
LSAgICAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpCi0gICAgfTsKLQotICAgIFdvcmtl
ckFnZW50Q29udGV4dCB3b3JrZXJDb250ZXh0ID0gewotICAgICAgICB3ZWJDb250ZXh0LAotICAg
ICAgICB3b3JrZXJHbG9iYWxTY29wZSwKLSAgICB9OwotCi0gICAgYXV0byBydW50aW1lQWdlbnQg
PSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclJ1bnRpbWVBZ2VudD4od29ya2VyQ29udGV4dCk7Ci0g
ICAgbV9ydW50aW1lQWdlbnQgPSBydW50aW1lQWdlbnQuZ2V0KCk7Ci0gICAgbV9pbnN0cnVtZW50
aW5nQWdlbnRzLT5zZXRXb3JrZXJSdW50aW1lQWdlbnQobV9ydW50aW1lQWdlbnQpOwotICAgIG1f
YWdlbnRzLmFwcGVuZChXVEY6Om1vdmUocnVudGltZUFnZW50KSk7Ci0KLSAgICBhdXRvIGNvbnNv
bGVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyQ29uc29sZUFnZW50Pih3b3JrZXJDb250
ZXh0KTsKLSAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFdlYkNvbnNvbGVBZ2VudChjb25z
b2xlQWdlbnQuZ2V0KCkpOwotCi0gICAgYXV0byBkZWJ1Z2dlckFnZW50ID0gc3RkOjptYWtlX3Vu
aXF1ZTxXb3JrZXJEZWJ1Z2dlckFnZW50Pih3b3JrZXJDb250ZXh0KTsKLSAgICBtX2FnZW50cy5h
cHBlbmQoV1RGOjptb3ZlKGRlYnVnZ2VyQWdlbnQpKTsKLQotICAgIG1fYWdlbnRzLmFwcGVuZChz
dGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KHdvcmtlckNvbnRleHQsIG51
bGxwdHIsIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvcikpOwotICAgIG1f
YWdlbnRzLmFwcGVuZChXVEY6Om1vdmUoY29uc29sZUFnZW50KSk7Ci0KLSAgICBpZiAoQ29tbWFu
ZExpbmVBUElIb3N0KiBjb21tYW5kTGluZUFQSUhvc3QgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci0+Y29tbWFuZExpbmVBUElIb3N0KCkpIHsKLSAgICAgICAgY29tbWFuZExpbmVBUElIb3N0LT5p
bml0KG51bGxwdHIKLSAgICAgICAgICAgICwgbnVsbHB0cgotICAgICAgICAgICAgLCBudWxscHRy
Ci0gICAgICAgICAgICAsIG51bGxwdHIKLSAgICAgICAgICAgICwgbnVsbHB0cgotICAgICAgICAp
OwotICAgIH0KLX0KLSAKLVdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6On5Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKCkKLXsKLSAgICBBU1NFUlQoIW1fZnJvbnRlbmRSb3V0ZXItPmhhc0Zyb250
ZW5kcygpKTsKLSAgICBBU1NFUlQoIW1fZm9yd2FyZGluZ0NoYW5uZWwpOwotCi0gICAgbV9pbnN0
cnVtZW50aW5nQWdlbnRzLT5yZXNldCgpOwotfQotCi12b2lkIFdvcmtlckluc3BlY3RvckNvbnRy
b2xsZXI6Ondvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkKCkKLXsKLSAgICBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlci0+ZGlzY29ubmVjdCgpOwotCi0gICAgaWYgKG1fZnJvbnRlbmRSb3V0ZXItPmhh
c0Zyb250ZW5kcygpKQotICAgICAgICBkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNv
bjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkKTsKLX0KLQotdm9pZCBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQotewotICAgIEFTU0VSVCghbV9mcm9udGVuZFJv
dXRlci0+aGFzRnJvbnRlbmRzKCkpOwotICAgIEFTU0VSVCghbV9mb3J3YXJkaW5nQ2hhbm5lbCk7
Ci0KLSAgICBtX2ZvcndhcmRpbmdDaGFubmVsID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlSW5zcGVj
dG9yUHJveHk+KG1fd29ya2VyR2xvYmFsU2NvcGUpOwotICAgIG1fZnJvbnRlbmRSb3V0ZXItPmNv
bm5lY3RGcm9udGVuZChtX2ZvcndhcmRpbmdDaGFubmVsLmdldCgpKTsKLSAgICBtX2FnZW50cy5k
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoJm1fZnJvbnRlbmRSb3V0ZXIuZ2V0KCksICZtX2Jh
Y2tlbmREaXNwYXRjaGVyLmdldCgpKTsKLX0KLQotdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9s
bGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uIHJlYXNv
bikKLXsKLSAgICBBU1NFUlQobV9mcm9udGVuZFJvdXRlci0+aGFzRnJvbnRlbmRzKCkpOwotICAg
IEFTU0VSVChtX2ZvcndhcmRpbmdDaGFubmVsKTsKLQotICAgIG1fYWdlbnRzLndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7Ci0gICAgbV9mcm9udGVuZFJvdXRlci0+ZGlzY29u
bmVjdEZyb250ZW5kKG1fZm9yd2FyZGluZ0NoYW5uZWwuZ2V0KCkpOwotICAgIG1fZm9yd2FyZGlu
Z0NoYW5uZWwgPSBudWxscHRyOwotfQotCi12b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6
OmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0g
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2gobWVzc2FnZSk7Ci19Ci0KLXZvaWQgV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdW1lKCkKLXsKLSAgICBFcnJvclN0cmluZyB1bnVz
ZWQ7Ci0gICAgbV9ydW50aW1lQWdlbnQtPnJ1bih1bnVzZWQpOwotfQotCi1JbnNwZWN0b3JGdW5j
dGlvbkNhbGxIYW5kbGVyIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmZ1bmN0aW9uQ2FsbEhh
bmRsZXIoKSBjb25zdAotewotICAgIHJldHVybiBXZWJDb3JlOjpmdW5jdGlvbkNhbGxIYW5kbGVy
RnJvbUFueVRocmVhZDsKLX0KLQotSW5zcGVjdG9yRXZhbHVhdGVIYW5kbGVyIFdvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXI6OmV2YWx1YXRlSGFuZGxlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdl
YkNvcmU6OmV2YWx1YXRlSGFuZGxlckZyb21BbnlUaHJlYWQ7Ci19Ci0KLXZvaWQgV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlcjo6d2lsbENhbGxJbmplY3RlZFNjcmlwdEZ1bmN0aW9uKEpTQzo6RXhl
Y1N0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0
TGluZSkKLXsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoc2NyaXB0U3RhdGUpOwot
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxDYWxsRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc2Ny
aXB0TmFtZSwgc2NyaXB0TGluZSk7Ci0gICAgbV9pbmplY3RlZFNjcmlwdEluc3RydW1lbnRhdGlv
bkNvb2tpZXMuYXBwZW5kKGNvb2tpZSk7Ci19Ci0KLXZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6ZGlkQ2FsbEluamVjdGVkU2NyaXB0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqIHNjcmlw
dFN0YXRlKQotewotICAgIEFTU0VSVCghbV9pbmplY3RlZFNjcmlwdEluc3RydW1lbnRhdGlvbkNv
b2tpZXMuaXNFbXB0eSgpKTsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoc2NyaXB0
U3RhdGUpOwotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBtX2lu
amVjdGVkU2NyaXB0SW5zdHJ1bWVudGF0aW9uQ29va2llcy50YWtlTGFzdCgpOwotICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSwgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk7Ci19Ci0KLVJlZjxTdG9wd2F0Y2g+IFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6OmV4ZWN1dGlvblN0b3B3YXRjaCgpCi17Ci0gICAgcmV0dXJuIG1fZXhlY3V0aW9uU3RvcHdh
dGNoLmNvcHlSZWYoKTsKLX0KLQotV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXImIFdvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXI6OnNjcmlwdERlYnVnU2VydmVyKCkKLXsKLSAgICByZXR1cm4gbV9zY3Jp
cHREZWJ1Z1NlcnZlcjsKLX0KLQotVk0mIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OnZtKCkK
LXsKLSAgICByZXR1cm4gbV93b3JrZXJHbG9iYWxTY29wZS52bSgpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRmZjFi
NC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlv
bi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyX2gKLSNkZWZpbmUgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcl9o
Ci0KLSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUuaCIKLSNpbmNsdWRl
ICJJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlci5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5Lmg+Ci0j
aW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckVudmlyb25tZW50Lmg+Ci0jaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBJbnNwZWN0b3IgewotY2xhc3MgRnJvbnRlbmRDaGFubmVs
OwotY2xhc3MgRnJvbnRlbmRSb3V0ZXI7Ci19OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjsKLWNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7
Ci1jbGFzcyBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI7Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29w
ZTsKLWNsYXNzIFdvcmtlclJ1bnRpbWVBZ2VudDsKLQotY2xhc3MgV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlciBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckVudmlyb25tZW50IHsK
LSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKTsKLSAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlJik7Ci0gICAgdmlydHVhbCB+V29y
a2VySW5zcGVjdG9yQ29udHJvbGxlcigpOwotCi0gICAgdm9pZCB3b3JrZXJHbG9iYWxTY29wZURl
c3Ryb3llZCgpOwotCi0gICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoKTsKLSAgICB2b2lkIGRpc2Nv
bm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwotICAgIHZvaWQgZGlz
cGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgcmVzdW1l
KCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuQWNjZXNzSW5zcGVj
dGVkU2NyaXB0U3RhdGUoSlNDOjpFeGVjU3RhdGUqKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9Ci0gICAgdmlydHVhbCBJbnNwZWN0b3I6Okluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRs
ZXIgZnVuY3Rpb25DYWxsSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgSW5z
cGVjdG9yOjpJbnNwZWN0b3JFdmFsdWF0ZUhhbmRsZXIgZXZhbHVhdGVIYW5kbGVyKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlv
bihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExp
bmUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5j
dGlvbihKU0M6OkV4ZWNTdGF0ZSopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBmcm9udGVu
ZEluaXRpYWxpemVkKCkgb3ZlcnJpZGUgeyB9Ci0gICAgdmlydHVhbCBSZWY8V1RGOjpTdG9wd2F0
Y2g+IGV4ZWN1dGlvblN0b3B3YXRjaCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXImIHNjcmlwdERlYnVnU2VydmVyKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBKU0M6OlZNJiB2bSgpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb247Ci0KLSAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3Jr
ZXJHbG9iYWxTY29wZTsKLSAgICBSZWY8SW5zdHJ1bWVudGluZ0FnZW50cz4gbV9pbnN0cnVtZW50
aW5nQWdlbnRzOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI+
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwotICAgIFdvcmtlclJ1bnRpbWVBZ2VudCogbV9ydW50
aW1lQWdlbnQgeyBudWxscHRyIH07Ci0gICAgSW5zcGVjdG9yOjpBZ2VudFJlZ2lzdHJ5IG1fYWdl
bnRzOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbD4gbV9m
b3J3YXJkaW5nQ2hhbm5lbDsKLSAgICBSZWY8V1RGOjpTdG9wd2F0Y2g+IG1fZXhlY3V0aW9uU3Rv
cHdhdGNoOwotICAgIFdvcmtlclNjcmlwdERlYnVnU2VydmVyIG1fc2NyaXB0RGVidWdTZXJ2ZXI7
Ci0gICAgUmVmPEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXI+IG1fZnJvbnRlbmRSb3V0ZXI7Ci0g
ICAgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7
Ci0gICAgVmVjdG9yPEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSwgMj4gbV9pbmplY3Rl
ZFNjcmlwdEluc3RydW1lbnRhdGlvbkNvb2tpZXM7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyAhZGVm
aW5lZChXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1Mjg3OWM1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJSdW50aW1lQWdlbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldvcmtlclJ1bnRpbWVBZ2VudC5oIgotCi0jaW5jbHVkZSAi
RE9NV2luZG93LmgiCi0jaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgotI2luY2x1ZGUg
IkpTRE9NV2luZG93QmFzZS5oIgotI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCi0jaW5jbHVkZSAi
V29ya2VyRGVidWdnZXJBZ2VudC5oIgotI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCi0j
aW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgotI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgotI2lu
Y2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9J
bmplY3RlZFNjcmlwdE1hbmFnZXIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1Xb3JrZXJSdW50aW1lQWdlbnQ6OldvcmtlclJ1bnRpbWVB
Z2VudChXb3JrZXJBZ2VudENvbnRleHQmIGNvbnRleHQpCi0gICAgOiBJbnNwZWN0b3JSdW50aW1l
QWdlbnQoY29udGV4dCkKLSAgICAsIG1fYmFja2VuZERpc3BhdGNoZXIoSW5zcGVjdG9yOjpSdW50
aW1lQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0LmJhY2tlbmREaXNwYXRjaGVyLCB0
aGlzKSkKLSAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUoY29udGV4dC53b3JrZXJHbG9iYWxTY29w
ZSkKLXsKLX0KLQotdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlciopCi17Ci19Ci0KLXZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQotewot
ICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
cmVhc29uKTsKLX0KLQotSW5qZWN0ZWRTY3JpcHQgV29ya2VyUnVudGltZUFnZW50OjppbmplY3Rl
ZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmIGVycm9yLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNv
bnRleHRJZCkKLXsKLSAgICBpZiAoZXhlY3V0aW9uQ29udGV4dElkKSB7Ci0gICAgICAgIGVycm9y
ID0gQVNDSUlMaXRlcmFsKCJFeGVjdXRpb24gY29udGV4dCBpZCBpcyBub3Qgc3VwcG9ydGVkIGZv
ciB3b3JrZXJzIGFzIHRoZXJlIGlzIG9ubHkgb25lIGV4ZWN1dGlvbiBjb250ZXh0LiIpOwotICAg
ICAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHQoKTsKLSAgICB9Ci0KLSAgICBKU0M6OkV4ZWNTdGF0
ZSogc2NyaXB0U3RhdGUgPSBleGVjU3RhdGVGcm9tV29ya2VyR2xvYmFsU2NvcGUoJm1fd29ya2Vy
R2xvYmFsU2NvcGUpOwotICAgIHJldHVybiBpbmplY3RlZFNjcmlwdE1hbmFnZXIoKS5pbmplY3Rl
ZFNjcmlwdEZvcihzY3JpcHRTdGF0ZSk7Ci19Ci0KLXZvaWQgV29ya2VyUnVudGltZUFnZW50Ojpt
dXRlQ29uc29sZSgpCi17Ci0gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9y
IHdvcmtlcnMuCi19Ci0KLXZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xlKCkK
LXsKLSAgICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KLX0K
LQotdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OnJ1bihFcnJvclN0cmluZyYpCi17Ci0gICAgbV9w
YXVzZWQgPSBmYWxzZTsKLX0KLQotdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OnBhdXNlV29ya2Vy
R2xvYmFsU2NvcGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCi17Ci0gICAgbV9wYXVzZWQg
PSB0cnVlOwotICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0OwotICAgIGRvIHsKLSAg
ICAgICAgcmVzdWx0ID0gY29udGV4dC0+dGhyZWFkKCkucnVuTG9vcCgpLnJ1bkluTW9kZShjb250
ZXh0LCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKTsKLSAgICAvLyBLZWVw
IHdhaXRpbmcgdW50aWwgZXhlY3V0aW9uIGlzIHJlc3VtZWQuCi0gICAgfSB3aGlsZSAocmVzdWx0
ID09IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZCAmJiBtX3BhdXNlZCk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM0ZGU5Mi4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0g
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV29ya2VyUnVudGltZUFnZW50X2gKLSNk
ZWZpbmUgV29ya2VyUnVudGltZUFnZW50X2gKLQotI2luY2x1ZGUgIkluc3BlY3RvcldlYkFnZW50
QmFzZS5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7Ci10
eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKLQotY2xhc3MgV29ya2VyUnVudGltZUFnZW50IGZp
bmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yUnVudGltZUFnZW50IHsKLXB1YmxpYzoK
LSAgICBXb3JrZXJSdW50aW1lQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVh
bCB+V29ya2VyUnVudGltZUFnZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6
OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJp
ZGU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcnVuKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0KLSAg
ICB2b2lkIHBhdXNlV29ya2VyR2xvYmFsU2NvcGUoV29ya2VyR2xvYmFsU2NvcGUqKTsKLQotcHJp
dmF0ZToKLSAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGU7Ci0KLSAgICBSZWZQdHI8SW5zcGVj
dG9yOjpSdW50aW1lQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7Ci0gICAg
V29ya2VyR2xvYmFsU2NvcGUmIG1fd29ya2VyR2xvYmFsU2NvcGU7Ci0KLSAgICBib29sIG1fcGF1
c2VkIHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
ICFkZWZpbmVkKEluc3BlY3RvclBhZ2VyQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNw
cAppbmRleCBkZTNkNGUxLi5jZTEyYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBA
IC0xNjEsOCArMTYxLDYgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICAgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBmYWxz
ZSwgdHJ1ZSkpOwogICAgIGVsc2UgewogICAgICAgICBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3Rh
cnRNb2RlID0gRG9udFBhdXNlV29ya2VyR2xvYmFsU2NvcGVPblN0YXJ0OwotICAgICAgICBpZiAo
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3Rh
cnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgICAgIHN0YXJ0TW9kZSA9IFBh
dXNlV29ya2VyR2xvYmFsU2NvcGVPblN0YXJ0OwogICAgICAgICBtX2NvbnRleHRQcm94eS0+c3Rh
cnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0TG9h
ZGVyLT5zY3JpcHQoKSwgc3RhcnRNb2RlKTsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpzY3JpcHRJbXBvcnRlZChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fc2NyaXB0TG9h
ZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBiMjE2N2I3
Li40MmYyMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRl
ICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyTG9jYXRpb24u
aCIKICNpbmNsdWRlICJXb3JrZXJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJXb3JrZXJPYmplY3RQ
cm94eS5oIgpAQCAtNjksNyArNjgsNiBAQCBXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXbwogICAgICwg
bV91c2VyQWdlbnQodXNlckFnZW50KQogICAgICwgbV9zY3JpcHQoc3RkOjptYWtlX3VuaXF1ZTxX
b3JrZXJTY3JpcHRDb250cm9sbGVyPih0aGlzKSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKLSAg
ICAsIG1fd29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXI+KCp0aGlzKSkKICAgICAsIG1fY2xvc2luZyhmYWxzZSkKICAgICAs
IG1fZXZlbnRRdWV1ZSgqdGhpcykKICAgICAsIG1fdG9wT3JpZ2luKHRvcE9yaWdpbikKQEAgLTgx
LDggKzc5LDYgQEAgV29ya2VyR2xvYmFsU2NvcGU6On5Xb3JrZXJHbG9iYWxTY29wZSgpCiB7CiAg
ICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSB0aHJlYWQoKS50aHJlYWRJRCgpKTsKIAotICAg
IG1fd29ya2VySW5zcGVjdG9yQ29udHJvbGxlci0+d29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWQo
KTsKLQogICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIG5vIG9ic2VydmVycy4KICAgICBub3RpZnlP
YnNlcnZlcnNPZlN0b3AoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5oCmluZGV4IDVmYTVlODcuLjJhY2VmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTQ2LDcgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgY2xhc3MgQmxvYjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247Ci0gICAgY2xh
c3MgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBjbGFzcyBXb3JrZXJMb2NhdGlvbjsK
ICAgICBjbGFzcyBXb3JrZXJOYXZpZ2F0b3I7CiAgICAgY2xhc3MgV29ya2VyVGhyZWFkOwpAQCAt
OTUsOCArOTQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0NvbnRleHRUaHJlYWQoKSBjb25zdCBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCBib29sIGlz
SlNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdCBvdmVycmlkZTsKIAotICAgICAgICBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyJiB3b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkgeyByZXR1cm4g
Km1fd29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjsgfQotCiAgICAgICAgIC8vIFRoZXNlIG1ldGhv
ZHMgYXJlIHVzZWQgZm9yIEdDIG1hcmtpbmcuIFNlZSBKU1dvcmtlckdsb2JhbFNjb3BlOjp2aXNp
dENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpIGluCiAgICAgICAgIC8vIEpTV29ya2VyR2xv
YmFsU2NvcGVDdXN0b20uY3BwLgogICAgICAgICBXb3JrZXJOYXZpZ2F0b3IqIG9wdGlvbmFsTmF2
aWdhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0b3IuZ2V0KCk7IH0KQEAgLTE2MSw3ICsx
NTgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKICAgICAgICAgV29ya2VyVGhyZWFkJiBtX3Ro
cmVhZDsKIAotICAgICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcj4gbV93b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOwogICAgICAgICBib29sIG1fY2xv
c2luZzsKIAogICAgICAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV93b3JrZXJPYnNlcnZlcnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHku
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCmluZGV4
IDc5ZjY3YTQuLmY1ZmJmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGVQcm94eS5oCkBAIC01OSwxNSArNTksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJPYmplY3REZXN0cm95ZWQoKSA9IDA7CiAKICAg
ICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25saW5l
KSA9IDA7Ci0KLSAgICAgICAgY2xhc3MgUGFnZUluc3BlY3RvciB7Ci0gICAgICAgIHB1YmxpYzoK
LSAgICAgICAgICAgIHZpcnR1YWwgflBhZ2VJbnNwZWN0b3IoKSB7IH0KLSAgICAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKGNvbnN0IFN0cmluZyYpID0gMDsK
LSAgICAgICAgfTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3RUb0luc3BlY3RvcihQYWdl
SW5zcGVjdG9yKikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbUluc3Bl
Y3RvcigpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb0luc3BlY3Rvcihj
b25zdCBTdHJpbmcmKSB7IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IGJk
NzRlYWMuLmY2Y2YxMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCkBAIC0zNywxNCArMzcsMTAgQEAKICNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50
LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIldvcmtlci5oIgotI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdl
bnQuaCIKLSNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCi0jaW5jbHVkZSA8
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3Jp
cHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC02Myw3ICs1OSw2IEBAIFdvcmtlck1lc3NhZ2luZ1By
b3h5OjpXb3JrZXJNZXNzYWdpbmdQcm94eShXb3JrZXIqIHdvcmtlck9iamVjdCkKICAgICAsIG1f
dW5jb25maXJtZWRNZXNzYWdlQ291bnQoMCkKICAgICAsIG1fd29ya2VyVGhyZWFkSGFkUGVuZGlu
Z0FjdGl2aXR5KGZhbHNlKQogICAgICwgbV9hc2tlZFRvVGVybWluYXRlKGZhbHNlKQotICAgICwg
bV9wYWdlSW5zcGVjdG9yKG51bGxwdHIpCiB7CiAgICAgQVNTRVJUKG1fd29ya2VyT2JqZWN0KTsK
ICAgICBBU1NFUlQoKGlzPERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBp
c01haW5UaHJlYWQoKSkKQEAgLTg1LDcgKzgwLDYgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3QK
ICAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMs
ICp0aGlzLCBzdGFydE1vZGUsIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXBy
ZWNhdGVkSGVhZGVyKCksIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNh
dGVkSGVhZGVyVHlwZSgpLCBkb2N1bWVudC50b3BPcmlnaW4oKSk7CiAgICAgd29ya2VyVGhyZWFk
Q3JlYXRlZCh0aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQoKTsKLSAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LmdldCgpLCB0aGlzLCBzY3JpcHRVUkwpOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5Ojpwb3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJy
YXk+IGNoYW5uZWxzKQpAQCAtMjExLDM4ICsyMDUsNiBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1By
b3h5Ojpub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkKICAgICB9KTsKIH0K
IAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y29ubmVjdFRvSW5zcGVjdG9yKFdvcmtlckds
b2JhbFNjb3BlUHJveHk6OlBhZ2VJbnNwZWN0b3IqIHBhZ2VJbnNwZWN0b3IpCi17Ci0gICAgaWYg
KG1fYXNrZWRUb1Rlcm1pbmF0ZSkKLSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVCghbV9wYWdl
SW5zcGVjdG9yKTsKLSAgICBtX3BhZ2VJbnNwZWN0b3IgPSBwYWdlSW5zcGVjdG9yOwotICAgIG1f
d29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtdIChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKCk7
Ci0gICAgfSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7Ci19Ci0KLXZv
aWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKCkKLXsKLSAg
ICBtX3BhZ2VJbnNwZWN0b3IgPSBudWxscHRyOwotICAgIGlmIChtX2Fza2VkVG9UZXJtaW5hdGUp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNr
Rm9yTW9kZShbXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICBk
b3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkud29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb246Oklu
c3BlY3RvckRlc3Ryb3llZCk7Ci0gICAgfSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJU
YXNrTW9kZSk7Ci19Ci0KLXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnNlbmRNZXNzYWdlVG9J
bnNwZWN0b3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIGlmIChtX2Fza2VkVG9UZXJt
aW5hdGUpCi0gICAgICAgIHJldHVybjsKLSAgICBTdHJpbmdDYXB0dXJlIGNhcHR1cmVkTWVzc2Fn
ZShtZXNzYWdlKTsKLSAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbY2FwdHVyZWRNZXNzYWdlXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewot
ICAgICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkud29ya2VySW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjYXB0dXJlZE1lc3Nh
Z2Uuc3RyaW5nKCkpOwotICAgIH0sIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01v
ZGUpOwotICAgIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmludGVycnVwdEFuZERpc3BhdGNoSW5zcGVj
dG9yQ29tbWFuZHMobV93b3JrZXJUaHJlYWQuZ2V0KCkpOwotfQotCiB2b2lkIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojp3b3JrZXJHbG9iYWxTY29wZURlc3Ryb3llZCgpCiB7CiAgICAgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbdGhpc10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KSB7CkBAIC0yNjYsOCArMjI4LDYgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6d29ya2Vy
R2xvYmFsU2NvcGVEZXN0cm95ZWRJbnRlcm5hbCgpCiAgICAgbV9hc2tlZFRvVGVybWluYXRlID0g
dHJ1ZTsKICAgICBtX3dvcmtlclRocmVhZCA9IG51bGxwdHI7CiAKLSAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246Ondvcmtlckdsb2JhbFNjb3BlVGVybWluYXRlZChtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuZ2V0KCksIHRoaXMpOwotCiAgICAgaWYgKG1fbWF5QmVEZXN0cm95ZWQpCiAgICAg
ICAgIGRlbGV0ZSB0aGlzOwogfQpAQCAtMjgwLDE3ICsyNDAsNiBAQCB2b2lkIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojp0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpCiAKICAgICBpZiAobV93b3Jr
ZXJUaHJlYWQpCiAgICAgICAgIG1fd29ya2VyVGhyZWFkLT5zdG9wKCk7Ci0KLSAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246Ondvcmtlckdsb2JhbFNjb3BlVGVybWluYXRlZChtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuZ2V0KCksIHRoaXMpOwotfQotCi12b2lkIFdvcmtlck1lc3NhZ2luZ1By
b3h5Ojpwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17
Ci0gICAgU3RyaW5nQ2FwdHVyZSBjYXB0dXJlZE1lc3NhZ2UobWVzc2FnZSk7Ci0gICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FwdHVyZWRNZXNzYWdlXSAoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKLSAgICAgICAgaWYgKG1fcGFnZUluc3BlY3RvcikKLSAg
ICAgICAgICAgIG1fcGFnZUluc3BlY3Rvci0+ZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlcihjYXB0
dXJlZE1lc3NhZ2Uuc3RyaW5nKCkpOwotICAgIH0pOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5Ojpjb25maXJtTWVzc2FnZUZyb21Xb3JrZXJPYmplY3QoYm9vbCBoYXNQZW5kaW5nQWN0
aXZpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgK
aW5kZXggOTU5NDFjNi4uZWI3YWY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuaApAQCAtNTgsMTYgKzU4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHdvcmtlck9iamVjdERlc3Ryb3llZCgpIG92ZXJyaWRl
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNP
bmxpbmUpIG92ZXJyaWRlOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0VG9JbnNwZWN0
b3IoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6UGFnZUluc3BlY3RvciopIG92ZXJyaWRlOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyb21JbnNwZWN0b3IoKSBvdmVycmlkZTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9JbnNwZWN0b3IoY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGU7Ci0KICAgICAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlck9iamVjdFBy
b3h5LgogICAgICAgICAvLyAoT25seSB1c2UgdGhlc2UgbWV0aG9kcyBpbiB0aGUgd29ya2VyIGNv
bnRleHQgdGhyZWFkLikKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJP
YmplY3QoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRvV29y
a2VyT2JqZWN0KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpIG92ZXJyaWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1BhZ2VJ
bnNwZWN0b3IoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBj
b25maXJtTWVzc2FnZUZyb21Xb3JrZXJPYmplY3QoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpIG92
ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdvcmtl
ckdsb2JhbFNjb3BlQ2xvc2VkKCkgb3ZlcnJpZGU7CkBAIC04OSw3ICs4NCw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBNZXNzYWdl
V29ya2VyVGFzazsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFBvc3RNZXNzYWdlVG9QYWdlSW5zcGVj
dG9yVGFzazsKICAgICAgICAgZnJpZW5kIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVk
VGFzazsKICAgICAgICAgZnJpZW5kIGNsYXNzIFdvcmtlckV4Y2VwdGlvblRhc2s7CiAgICAgICAg
IGZyaWVuZCBjbGFzcyBXb3JrZXJUaHJlYWRBY3Rpdml0eVJlcG9ydFRhc2s7CkBAIC0xMDksNyAr
MTAzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fYXNrZWRUb1Rlcm1p
bmF0ZTsKIAogICAgICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s+PiBtX3F1ZXVlZEVhcmx5VGFza3M7IC8vIFRhc2tzIGFyZSBxdWV1ZWQgaGVy
ZSB1bnRpbCB0aGVyZSdzIGEgdGhyZWFkIG9iamVjdCBjcmVhdGVkLgotICAgICAgICBXb3JrZXJH
bG9iYWxTY29wZVByb3h5OjpQYWdlSW5zcGVjdG9yKiBtX3BhZ2VJbnNwZWN0b3I7CiAgICAgfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJSZXBvcnRpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJSZXBvcnRpbmdQcm94eS5oCmluZGV4IGRmMzVlNTEuLmFkY2JiOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUmVwb3J0aW5nUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmgKQEAgLTQ1LDggKzQ1LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1l
c3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKSA9IDA7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdl
VG9QYWdlSW5zcGVjdG9yKGNvbnN0IFN0cmluZyYpID0gMDsKLQogICAgICAgICAvLyBJbnZva2Vk
IHdoZW4gY2xvc2UoKSBpcyBpbnZva2VkIG9uIHRoZSB3b3JrZXIgY29udGV4dC4KICAgICAgICAg
dmlydHVhbCB2b2lkIHdvcmtlckdsb2JhbFNjb3BlQ2xvc2VkKCkgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggODdiNTA5Zi4uMGE2MWMzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lu
Y2x1ZGUgIldvcmtlclRocmVhZC5oIgogCiAjaW5jbHVkZSAiRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNs
dWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCkBAIC0xNDcsNyArMTQ2LDYgQEAgdm9pZCBXb3JrZXJU
aHJlYWQ6OndvcmtlclRocmVhZCgpCiAgICAgfQogCiAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxl
ciogc2NyaXB0ID0gbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCk7Ci0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVXb3JrZXJTY3JpcHQod29ya2VyR2xvYmFsU2Nv
cGUoKSwgbV9zdGFydHVwRGF0YS0+bV9zdGFydE1vZGUpOwogICAgIHNjcmlwdC0+ZXZhbHVhdGUo
U2NyaXB0U291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5tX3NvdXJjZUNvZGUsIG1fc3RhcnR1cERh
dGEtPm1fc2NyaXB0VVJMKSk7CiAgICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNl
IGl0cyBtZW1iZXIgdmFyaWFibGUgZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVh
ZCAoc2luY2UKICAgICAvLyBhbGwgcmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBw
ZW5pbmcgb24gdGhlIHRocmVhZCBhdCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266593</attachid>
            <date>2015-12-03 21:01:08 -0800</date>
            <delta_ts>2015-12-03 21:07:48 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rm-worker.patch</filename>
            <type>text/plain</type>
            <size>144405</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTU4MmY3Li5iMjdkMDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTUtMTIt
MDMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgdW50ZXN0ZWQgYW5kIHVudXNlZCBXb3JrZXIgaW5zcGVjdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXIuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2RlZGlj
YXRlZC13b3JrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rl
cm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29y
a2VyLXdoaWxlLXBhdXNlZC5odG1sOiBSZW1vdmVkLgorCisyMDE1LTEyLTAzICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3Bl
Y2lmaWNhbGx5IElkZW50aWZ5IHRoZSBHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVudCBTY29wZQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODI4CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0
ZWQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9w
YXVzZS1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTQxMjM5NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw1ICswLDAgQEAKLVN0YXJ0ZWQgd29ya2VyCi1Xb3JrZXIgY3JlYXRlZAotZGlkQ29ubmVj
dFRvV29ya2VyCi1TVUNDRVNTOiBXb3JrZXIgcGF1c2VkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29ya2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZGU5ZjBmLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29ya2VyLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciB3b3JrZXI7Ci1m
dW5jdGlvbiBzdGFydFdvcmtlckFuZFJ1blRlc3QoKQotewotICAgIHdvcmtlciA9IG5ldyBXb3Jr
ZXIoInJlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLmpzIik7Ci0gICAgd29ya2VyLm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKDEpOwotICAg
IGxvZygiU3RhcnRlZCB3b3JrZXIiKTsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHZhciB3b3JrZXJJZDsKLSAgICB2YXIgd29ya2VyUmVxdWVzdElkID0gMTsK
LSAgICBmdW5jdGlvbiBzZW5kQ29tbWFuZFRvV29ya2VyKG1ldGhvZCwgcGFyYW1zKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5zZW5kTWVzc2Fn
ZVRvV29ya2VyIiwgewotICAgICAgICAgICAgIndvcmtlcklkIjogd29ya2VySWQsCi0gICAgICAg
ICAgICAibWVzc2FnZSI6IHsKLSAgICAgICAgICAgICAgICAibWV0aG9kIjogbWV0aG9kLAotICAg
ICAgICAgICAgICAgICJwYXJhbXMiOiBwYXJhbXMsCi0gICAgICAgICAgICAgICAgImlkIjogd29y
a2VyUmVxdWVzdElkKysKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
SW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5lbmFibGUiLCB7fSwgZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkgewotICAgICAgICBpZiAoImVycm9yIiBpbiBtZXNzYWdlT2JqZWN0
KSB7Ci0gICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBDb3VsZG4ndCBlbmFibGUg
d29ya2VyIGRlYnVnZ2VyOiAiICsgbWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsKLSAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0pOwot
Ci0gICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJXb3JrZXIud29ya2VyQ3JlYXRl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIHdvcmtlcklkID0g
bWVzc2FnZU9iamVjdFsicGFyYW1zIl1bIndvcmtlcklkIl07Ci0gICAgICAgIFByb3RvY29sVGVz
dC5sb2coIldvcmtlciBjcmVhdGVkIik7Ci0gICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRD
b21tYW5kKCJXb3JrZXIuY29ubmVjdFRvV29ya2VyIiwgeyAid29ya2VySWQiOiB3b3JrZXJJZCB9
LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJkaWRDb25uZWN0VG9Xb3JrZXIiKTsKLSAgICAgICAgICAgIHNlbmRDb21tYW5kVG9Xb3JrZXIo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICAgICAgICAgIHNlbmRDb21tYW5kVG9Xb3JrZXIo
IkRlYnVnZ2VyLnBhdXNlIiwge30pOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0
b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIldvcmtlci5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2Vy
Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsibWVzc2FnZSJdOwotICAgICAgICBpZiAobWVzc2Fn
ZVsibWV0aG9kIl0gPT09ICJEZWJ1Z2dlci5wYXVzZWQiKSB7Ci0gICAgICAgICAgICBQcm90b2Nv
bFRlc3QubG9nKCJTVUNDRVNTOiBXb3JrZXIgcGF1c2VkIik7Ci0gICAgICAgICAgICBzZW5kQ29t
bWFuZFRvV29ya2VyKCJEZWJ1Z2dlci5kaXNhYmxlIiwge30pOwotICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbkxvYWQ9InN0YXJ0V29ya2VyQW5kUnVuVGVzdCgpOyI+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVz
b3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZlMWYwNTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOSAr
MCwwIEBACi12YXIgbWVzc2FnZV9pZCA9IDE7Ci1vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkg
ewotICBkb1dvcmsoKTsKLX07Ci0KLWZ1bmN0aW9uIGRvV29yaygpIHsKLSAgcG9zdE1lc3NhZ2Uo
Ik1lc3NhZ2UgIyIgKyBtZXNzYWdlX2lkKyspOwotICBzZXRUaW1lb3V0KGRvV29yaywgNTApOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1k
ZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdGVybWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUtcGF1c2Vk
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY4YmIwZi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGVybWluYXRlLWRlZGlj
YXRlZC13b3JrZXItd2hpbGUtcGF1c2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDkgKzAsMCBAQAotVGVzdCB0aGF0IGluc3BlY3RlZCBwYWdlIHdvbid0IGNyYXNoIGlmIGluc3Bl
Y3RlZCB3b3JrZXIgaXMgdGVybWluYXRlZCB3aGlsZSBpdCBpcyBwYXVzZWQuIFRlc3QgcGFzc2Vz
IGlmIGl0IGRvZXNuJ3QgY3Jhc2guCi0KLUJ1ZyAxMDEwNjUuCi1TdGFydGVkIHdvcmtlcgotV29y
a2VyIGNyZWF0ZWQKLWRpZENvbm5lY3RUb1dvcmtlcgotV29ya2VyIHBhdXNlZAotU1VDQ0VTUzog
RGlkIHRlcm1pbmF0ZSBwYXVzZWQgd29ya2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVk
LXdvcmtlci13aGlsZS1wYXVzZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODY0YjFhNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGVy
bWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUtcGF1c2VkLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29s
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciB3b3JrZXI7Ci1mdW5jdGlvbiBzdGFy
dFdvcmtlckFuZFJ1blRlc3QoKQotewotICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoInJlc291cmNl
cy9kZWRpY2F0ZWQtd29ya2VyLmpzIik7Ci0gICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGV2ZW50KSB7IH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKDEpOwotICAgIGxvZygiU3RhcnRl
ZCB3b3JrZXIiKTsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHZhciB3b3JrZXJJZDsKLSAgICB2YXIgd29ya2VyUmVxdWVzdElkID0gMTsKLSAgICBmdW5jdGlv
biBzZW5kQ29tbWFuZFRvV29ya2VyKG1ldGhvZCwgcGFyYW1zKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5zZW5kTWVzc2FnZVRvV29ya2VyIiwg
ewotICAgICAgICAgICAgIndvcmtlcklkIjogd29ya2VySWQsCi0gICAgICAgICAgICAibWVzc2Fn
ZSI6IHsKLSAgICAgICAgICAgICAgICAibWV0aG9kIjogbWV0aG9kLAotICAgICAgICAgICAgICAg
ICJwYXJhbXMiOiBwYXJhbXMsCi0gICAgICAgICAgICAgICAgImlkIjogd29ya2VyUmVxdWVzdElk
KysKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yUHJv
dG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5lbmFibGUiLCB7fSwgZnVuY3Rpb24obWVzc2FnZU9i
amVjdCkgewotICAgICAgICBpZiAoImVycm9yIiBpbiBtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAg
ICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBDb3VsZG4ndCBlbmFibGUgd29ya2VyIGRlYnVn
Z2VyOiAiICsgbWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsKLSAgICAgICAgICAgIFByb3Rv
Y29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgSW5zcGVj
dG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJXb3JrZXIud29ya2VyQ3JlYXRlZCJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIHdvcmtlcklkID0gbWVzc2FnZU9iamVj
dFsicGFyYW1zIl1bIndvcmtlcklkIl07Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIldvcmtl
ciBjcmVhdGVkIik7Ci0gICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJXb3Jr
ZXIuY29ubmVjdFRvV29ya2VyIiwgeyJ3b3JrZXJJZCI6IHdvcmtlcklkfSwgZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkgewotICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiZGlkQ29ubmVjdFRv
V29ya2VyIik7Ci0gICAgICAgICAgICBzZW5kQ29tbWFuZFRvV29ya2VyKCJEZWJ1Z2dlci5lbmFi
bGUiLCB7fSk7Ci0gICAgICAgICAgICBzZW5kQ29tbWFuZFRvV29ya2VyKCJEZWJ1Z2dlci5wYXVz
ZSIsIHt9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZl
bnRIYW5kbGVyWyJXb3JrZXIuZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlciJdID0gZnVuY3Rpb24o
bWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIHZhciBtZXNzYWdlID0gbWVzc2FnZU9iamVj
dFsicGFyYW1zIl1bIm1lc3NhZ2UiXTsKLSAgICAgICAgaWYgKG1lc3NhZ2VbIm1ldGhvZCJdID09
PSAiRGVidWdnZXIucGF1c2VkIikgewotICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiV29y
a2VyIHBhdXNlZCIpOwotICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24iOiAid29ya2VyLnRlcm1pbmF0ZSgpIn0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKCJTVUNDRVNTOiBEaWQgdGVybWluYXRlIHBhdXNlZCB3b3JrZXIiKTsKLSAgICAgICAgICAg
ICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfQotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25Mb2FkPSJzdGFydFdv
cmtlckFuZFJ1blRlc3QoKTsiPgotPHA+VGVzdCB0aGF0IGluc3BlY3RlZCBwYWdlIHdvbid0IGNy
YXNoIGlmIGluc3BlY3RlZCB3b3JrZXIgaXMgdGVybWluYXRlZCB3aGlsZSBpdCBpcyBwYXVzZWQu
IFRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTA2NSI+QnVnIDEwMTA2NS48L2E+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5NGU0ZTdmLi45MmUw
OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNS0xMi0w
MyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFJlbW92ZSB1bnRlc3RlZCBhbmQgdW51c2VkIFdvcmtlciBpbnNwZWN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4NDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLm1ha2U6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAo
SlNDOjpEZWJ1Z2dlcjo6RGVidWdnZXIpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6d2lsbEV4
ZWN1dGVQcm9ncmFtKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlci5oOgorICAgICAgICAq
IGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAg
KEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcjo6SlNHbG9iYWxPYmpl
Y3RTY3JpcHREZWJ1Z1NlcnZlcik6CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2Vy
dmVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0RGVidWdTZXJ2ZXI6OlNjcmlwdERl
YnVnU2VydmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAg
KEluc3BlY3Rvcjo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpydW4pOiBEZWxldGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9wcm90b2NvbC9SdW50aW1lLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL3By
b3RvY29sL1dvcmtlci5qc29uOiBSZW1vdmVkLgorCisyMDE1LTEyLTAzICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3BlY2lm
aWNhbGx5IElkZW50aWZ5IHRoZSBHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVudCBTY29wZQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODI4CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNzY4ZWJhYS4uOGRl
NzI2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE5
NCw3ICsxOTQsNiBAQCBJTlNQRUNUT1JfRE9NQUlOUyA9IFwKICAgICAkKEphdmFTY3JpcHRDb3Jl
KS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9p
bnNwZWN0b3IvcHJvdG9jb2wvUnVudGltZS5qc29uIFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9p
bnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbiBcCi0gICAgJChKYXZhU2NyaXB0Q29yZSkv
aW5zcGVjdG9yL3Byb3RvY29sL1dvcmtlci5qc29uIFwKICMKIAogaWZlcSAoJChmaW5kc3RyaW5n
IEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFLCQoRkVBVFVSRV9ERUZJTkVTKSksIEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKaW5kZXggNzA4ODMxOC4uNTAyOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuY3BwCkBAIC0xMTMsMTQgKzExMywxMyBAQCBwcml2YXRlOgogICAgIERl
YnVnZ2VyJiBtX2RlYnVnZ2VyOwogfTsKIAotRGVidWdnZXI6OkRlYnVnZ2VyKFZNJiB2bSwgYm9v
bCBpc0luV29ya2VyVGhyZWFkKQorRGVidWdnZXI6OkRlYnVnZ2VyKFZNJiB2bSkKICAgICA6IG1f
dm0odm0pCiAgICAgLCBtX3BhdXNlT25FeGNlcHRpb25zU3RhdGUoRG9udFBhdXNlT25FeGNlcHRp
b25zKQogICAgICwgbV9wYXVzZU9uTmV4dFN0YXRlbWVudChmYWxzZSkKICAgICAsIG1faXNQYXVz
ZWQoZmFsc2UpCiAgICAgLCBtX2JyZWFrcG9pbnRzQWN0aXZhdGVkKHRydWUpCiAgICAgLCBtX2hh
c0hhbmRsZXJGb3JFeGNlcHRpb25DYWxsYmFjayhmYWxzZSkKLSAgICAsIG1faXNJbldvcmtlclRo
cmVhZChpc0luV29ya2VyVGhyZWFkKQogICAgICwgbV9zdXBwcmVzc0FsbFBhdXNlcyhmYWxzZSkK
ICAgICAsIG1fc3RlcHBpbmdNb2RlKFN0ZXBwaW5nTW9kZURpc2FibGVkKQogICAgICwgbV9yZWFz
b25Gb3JQYXVzZShOb3RQYXVzZWQpCkBAIC03MDcsMTMgKzcwNiw3IEBAIHZvaWQgRGVidWdnZXI6
OndpbGxFeGVjdXRlUHJvZ3JhbShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgUGF1c2VSZWFzb25EZWNsYXJhdGlvbiByZWFzb24oKnRoaXMsIFBhdXNlZEF0U3Rh
cnRPZlByb2dyYW0pOwotICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIGZvciB3aGV0aGVyIHdlJ3Jl
IGRlYnVnZ2luZyBhIHdvcmtlciB0aHJlYWQgaXMgYSB3b3JrYXJvdW5kCi0gICAgLy8gZm9yIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI2MzcuIFJlbW92ZSBpdCB3
aGVuIHdlIHJld29yawotICAgIC8vIHRoZSBkZWJ1Z2dlciBpbXBsZW1lbnRhdGlvbiB0byBub3Qg
cmVxdWlyZSBjYWxsYmFja3MuCi0gICAgaWYgKCFtX2lzSW5Xb3JrZXJUaHJlYWQpCi0gICAgICAg
IHVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoY2FsbEZyYW1lKTsKLSAgICBlbHNlIGlm
IChpc1N0ZXBwaW5nKCkpCi0gICAgICAgIHVwZGF0ZUNhbGxGcmFtZShjYWxsRnJhbWUpOworICAg
IHVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoY2FsbEZyYW1lKTsKIH0KIAogdm9pZCBE
ZWJ1Z2dlcjo6ZGlkRXhlY3V0ZVByb2dyYW0oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCmluZGV4IDI5MmIxNDcuLmFlMzZmMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCkBAIC00NCw3ICs0
NCw3IEBAIHR5cGVkZWYgRXhlY1N0YXRlIENhbGxGcmFtZTsKIAogY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgRGVidWdnZXIgewogcHVibGljOgotICAgIERlYnVnZ2VyKFZNJiwgYm9vbCBpc0luV29y
a2VyVGhyZWFkID0gZmFsc2UpOworICAgIERlYnVnZ2VyKFZNJik7CiAgICAgdmlydHVhbCB+RGVi
dWdnZXIoKTsKIAogICAgIFZNJiB2bSgpIHsgcmV0dXJuIG1fdm07IH0KQEAgLTE5OCw3ICsxOTgs
NiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1BhdXNlZCA6IDE7CiAgICAgYm9vbCBtX2JyZWFr
cG9pbnRzQWN0aXZhdGVkIDogMTsKICAgICBib29sIG1faGFzSGFuZGxlckZvckV4Y2VwdGlvbkNh
bGxiYWNrIDogMTsKLSAgICBib29sIG1faXNJbldvcmtlclRocmVhZCA6IDE7CiAgICAgYm9vbCBt
X3N1cHByZXNzQWxsUGF1c2VzIDogMTsKICAgICB1bnNpZ25lZCBtX3N0ZXBwaW5nTW9kZSA6IDE7
IC8vIFN0ZXBwaW5nTW9kZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmNwcApp
bmRleCA2ZDhjZTIwLi5lOWEyOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIG5hbWVzcGFjZSBJ
bnNwZWN0b3IgewogCiBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpKU0dsb2JhbE9i
amVjdFNjcmlwdERlYnVnU2VydmVyKEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi0gICAg
OiBTY3JpcHREZWJ1Z1NlcnZlcihnbG9iYWxPYmplY3Qudm0oKSwgZmFsc2UpCisgICAgOiBTY3Jp
cHREZWJ1Z1NlcnZlcihnbG9iYWxPYmplY3Qudm0oKSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGds
b2JhbE9iamVjdCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggNDY0NDYzMC4uODk4OTFiZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNl
IEluc3BlY3RvciB7CiAKLVNjcmlwdERlYnVnU2VydmVyOjpTY3JpcHREZWJ1Z1NlcnZlcihWTSYg
dm0sIGJvb2wgaXNJbldvcmtlclRocmVhZCkKLSAgICA6IERlYnVnZ2VyKHZtLCBpc0luV29ya2Vy
VGhyZWFkKQorU2NyaXB0RGVidWdTZXJ2ZXI6OlNjcmlwdERlYnVnU2VydmVyKFZNJiB2bSkKKyAg
ICA6IERlYnVnZ2VyKHZtKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggZTA2NzBmZi4uZWEyMTBkM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2Vy
dmVyLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJvdGVjdGVkOgogICAgIHR5cGVkZWYgSGFzaFNldDxT
Y3JpcHREZWJ1Z0xpc3RlbmVyKj4gTGlzdGVuZXJTZXQ7CiAgICAgdHlwZWRlZiB2b2lkIChTY3Jp
cHREZWJ1Z1NlcnZlcjo6KkphdmFTY3JpcHRFeGVjdXRpb25DYWxsYmFjaykoU2NyaXB0RGVidWdM
aXN0ZW5lciopOwogCi0gICAgU2NyaXB0RGVidWdTZXJ2ZXIoSlNDOjpWTSYsIGJvb2wgaXNJbldv
cmtlclRocmVhZCA9IGZhbHNlKTsKKyAgICBTY3JpcHREZWJ1Z1NlcnZlcihKU0M6OlZNJik7CiAg
ICAgflNjcmlwdERlYnVnU2VydmVyKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoRGVidWdn
ZXIoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4IDdlNWNmODAuLjBlMjI4
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC02NCw4ICs2NCw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcm
LCBib29sIGVuYWJsZWQpIG92ZXJyaWRlID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkSW5zcGVj
dGVkTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlID0gMDsKIAotICAgIHZp
cnR1YWwgYm9vbCBpc1dvcmtlckFnZW50KCkgY29uc3QgPSAwOwotCiAgICAgYm9vbCBlbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCByZXNldCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAppbmRleCA3NjA0OGFmLi5mZmVjZmJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTI0MSwxMSArMjQxLDYgQEAgdm9pZCBJbnNw
ZWN0b3JSdW50aW1lQWdlbnQ6OnJlbGVhc2VPYmplY3RHcm91cChFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgb2JqZWMKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5yZWxlYXNlT2JqZWN0
R3JvdXAob2JqZWN0R3JvdXApOwogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cnVu
KEVycm9yU3RyaW5nJikKLXsKLSAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEy
NzYzND4gV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBkZWJ1Z2dpbmcgd2ViIHdvcmtlcnMKLX0KLQog
dm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmdldFJ1bnRpbWVUeXBlc0ZvclZhcmlhYmxlc0F0
T2Zmc2V0cyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVj
dG9yQXJyYXkmIGxvY2F0aW9ucywgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PElu
c3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlR5cGVEZXNjcmlwdGlvbj4+JiB0eXBlRGVzY3Jp
cHRpb25zKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUnVudGltZUFnZW50LmgKaW5kZXggMGU1MGI1YS4uZTMzODViOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFn
ZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yUnVudGltZUFnZW50LmgKQEAgLTY4LDcgKzY4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBnZXRDb2xsZWN0aW9uRW50cmllcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGludCogc3RhcnRJbmRleCwg
Y29uc3QgaW50KiBudW1iZXJUb0ZldGNoLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJy
YXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6Q29sbGVjdGlvbkVudHJ5Pj4mIGVudHJp
ZXMpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVzdWx0KEVycm9yU3Ry
aW5nJiwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIGNhbGxBcmd1bWVudCwgY29u
c3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQsIEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok9wdE91dHB1
dDxpbnQ+KiBzYXZlZFJlc3VsdEluZGV4KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVsZWFzZU9iamVjdEdyb3VwKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBvYmplY3RH
cm91cCkgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBnZXRSdW50aW1lVHlwZXNGb3JWYXJpYWJsZXNB
dE9mZnNldHMoRXJyb3JTdHJpbmcmLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBs
b2NhdGlvbnMsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlBy
b3RvY29sOjpSdW50aW1lOjpUeXBlRGVzY3JpcHRpb24+PiYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBlbmFibGVUeXBlUHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzYWJsZVR5cGVQcm9maWxlcihFcnJvclN0cmluZyYpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgKaW5kZXggYTZmMWUwZS4uZjk2NmU5
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNH
bG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oCkBAIC00MSw4ICs0MSw2
IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogWEhScyBhbmQgTm9kZXMgb25seSBtYWtlcyBzZW5z
ZSBkZWJ1Z2dpbmcgYSBXZWIgY29udGV4dC4gQ2FuIHRoaXMgYmUgbW92ZWQgdG8gYSBkaWZmZXJl
bnQgYWdlbnQ/CiAgICAgdmlydHVhbCB2b2lkIHNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9y
U3RyaW5nJiwgYm9vbCBlbmFibGVkKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkSW5z
cGVjdGVkTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOwotCi0gICAgdmly
dHVhbCBib29sIGlzV29ya2VyQWdlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1J1bnRpbWUuanNvbiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUnVudGltZS5qc29uCmluZGV4IDBiYWIxY2Uu
LmFmODc0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvUnVudGltZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvUnVudGltZS5qc29uCkBAIC0zMDUsMTAgKzMwNSw2IEBACiAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiUmVsZWFzZXMgYWxsIHJlbW90ZSBvYmplY3RzIHRoYXQgYmVsb25nIHRv
IGEgZ2l2ZW4gZ3JvdXAuIgogICAgICAgICB9LAogICAgICAgICB7Ci0gICAgICAgICAgICAibmFt
ZSI6ICJydW4iLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRlbGxzIGluc3BlY3RlZCBp
bnN0YW5jZSh3b3JrZXIgb3IgcGFnZSkgdGhhdCBpdCBjYW4gcnVuIGluIGNhc2UgaXQgd2FzIHN0
YXJ0ZWQgcGF1c2VkLiIKLSAgICAgICAgfSwKLSAgICAgICAgewogICAgICAgICAgICAgIm5hbWUi
OiAiZW5hYmxlIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbmFibGVzIHJlcG9ydGlu
ZyBvZiBleGVjdXRpb24gY29udGV4dHMgY3JlYXRpb24gYnkgbWVhbnMgb2YgPGNvZGU+ZXhlY3V0
aW9uQ29udGV4dENyZWF0ZWQ8L2NvZGU+IGV2ZW50LiBXaGVuIHRoZSByZXBvcnRpbmcgZ2V0cyBl
bmFibGVkIHRoZSBldmVudCB3aWxsIGJlIHNlbnQgaW1tZWRpYXRlbHkgZm9yIGVhY2ggZXhpc3Rp
bmcgZXhlY3V0aW9uIGNvbnRleHQuIgogICAgICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Xb3JrZXIuanNvbiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvV29ya2VyLmpzb24KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDUyNjllMTMuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9Xb3JrZXIuanNvbgorKysgL2Rldi9udWxsCkBAIC0xLDcx
ICswLDAgQEAKLXsKLSAgICAiZG9tYWluIjogIldvcmtlciIsCi0gICAgInR5cGVzIjogW10sCi0g
ICAgImF2YWlsYWJpbGl0eSI6ICJ3ZWIiLAotICAgICJjb21tYW5kcyI6IFsKLSAgICAgICAgewot
ICAgICAgICAgICAgIm5hbWUiOiAiZW5hYmxlIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgICAibmFtZSI6ICJkaXNhYmxlIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgICAibmFtZSI6ICJzZW5kTWVzc2FnZVRvV29ya2VyIiwKLSAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid29ya2VySWQiLCAidHlwZSI6ICJp
bnRlZ2VyIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWVzc2FnZSIsICJ0eXBlIjog
Im9iamVjdCIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgICAibmFtZSI6ICJjYW5JbnNwZWN0V29ya2VycyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiVGVsbHMgd2hldGhlciBicm93c2VyIHN1cHBvcnRzIHdvcmtlcnMgaW5zcGVjdGlvbi4i
LAotICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgYnJvd3Nl
ciBoYXMgd29ya2VycyBzdXBwb3J0LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJjb25uZWN0VG9Xb3JrZXIiLAotICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIs
ICJ0eXBlIjogImludGVnZXIiIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgIm5hbWUiOiAiZGlzY29ubmVjdEZyb21Xb3JrZXIiLAotICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIs
ICJ0eXBlIjogImludGVnZXIiIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgIm5hbWUiOiAic2V0QXV0b2Nvbm5lY3RUb1dvcmtlcnMiLAotICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2YWx1ZSIs
ICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0sCi0g
ICAgImV2ZW50cyI6IFsKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAid29ya2VyQ3Jl
YXRlZCIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImluc3BlY3RvckNvbm5lY3RlZCIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAid29ya2Vy
VGVybWluYXRlZCIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogIndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfQotICAgICAgICAgICAg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJkaXNwYXRjaE1l
c3NhZ2VGcm9tV29ya2VyIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAid29ya2VySWQiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibWVzc2FnZSIsICJ0eXBlIjogIm9iamVjdCIgfQotICAgICAg
ICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJkaXNj
b25uZWN0ZWRGcm9tV29ya2VyIgotICAgICAgICB9Ci0gICAgXQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBkMjdiNGJkLi41MDE0ZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTI1OSw3
ICsxMjU5LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVK
U0J1aWx0aW5zLmNwcAogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxl
ci5jcHAKICAgICBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAotICAgIGJp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAogCiAgICAgYnJpZGdlL0lkZW50
aWZpZXJSZXAuY3BwCiAgICAgYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMTg5OSw3ICsxODk4
LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAogICAg
IGluc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKICAgICBpbnNwZWN0b3IvUGFnZUNv
bnNvbGVBZ2VudC5jcHAKQEAgLTE5MTEsMTAgKzE5MDksNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgaW5zcGVjdG9yL1dlYkRlYnVnZ2VyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dlYklu
amVjdGVkU2NyaXB0SG9zdC5jcHAKICAgICBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmNwcAotICAgIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCi0gICAgaW5zcGVj
dG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCi0gICAgaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKIAog
ICAgIGxvYWRlci9Db250ZW50RmlsdGVyLmNwcAogICAgIGxvYWRlci9Db29raWVKYXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMTU2NTgyYi4uYmY0M2Y0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBA
CisyMDE1LTEyLTAzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHVudGVzdGVkIGFuZCB1bnVzZWQgV29ya2VyIGlu
c3BlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MTg0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVy
Lmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9D
b25zb2xlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxk
UGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0SW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGVJ
bXBsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbEV2YWx1YXRlV29ya2VyU2NyaXB0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVkSW1w
bCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
Omluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JOb25Eb2N1bWVudENvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRQYXVzZURlZGljYXRlZFdv
cmtlck9uU3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRTdGFydFdvcmtlckdsb2JhbFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2NvcGVUZXJt
aW5hdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXZWJBZ2VudEJhc2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckFnZW50Q29udGV4dDo6V29ya2VyQWdlbnRDb250ZXh0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5zdHJ1bWVudGluZ0FnZW50czo6d29ya2VyUnVudGltZUFnZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnNldFdvcmtlclJ1bnRpbWVBZ2VudCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjppbnNwZWN0
b3JXb3JrZXJBZ2VudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5n
QWdlbnRzOjpzZXRJbnNwZWN0b3JXb3JrZXJBZ2VudCk6IERlbGV0ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVNjcmlw
dERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZl
cjo6UGFnZVNjcmlwdERlYnVnU2VydmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyQ29u
c29sZUFnZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyQ29uc29s
ZUFnZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdl
bnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50
Lmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyLmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2Vu
dC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5o
OiBSZW1vdmVkLgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlcjo6bm90aWZ5RmluaXNoZWQpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2Nv
cGU6Oldvcmtlckdsb2JhbFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckdsb2JhbFNjb3BlOjp+V29ya2VyR2xvYmFsU2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2Jh
bFNjb3BlOjp3b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckdsb2JhbFNjb3BlUHJveHk6OlBhZ2VJbnNwZWN0b3I6On5QYWdlSW5zcGVjdG9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNvbm5lY3RUb0lu
c3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZVBy
b3h5OjpkaXNjb25uZWN0RnJvbUluc3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpzZW5kTWVzc2FnZVRvSW5zcGVjdG9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpXb3JrZXJNZXNzYWdpbmdQcm94eSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3Jr
ZXJHbG9iYWxTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdp
bmdQcm94eTo6Y29ubmVjdFRvSW5zcGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpkaXNjb25uZWN0RnJvbUluc3BlY3Rvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c2VuZE1lc3NhZ2VUb0lu
c3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94
eTo6d29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6dGVybWluYXRlV29ya2VyR2xvYmFsU2Nv
cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnBv
c3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSZXBvcnRpbmdQ
cm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKTogRGVsZXRlZC4KKwogMjAxNS0xMi0w
MyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSB0aGUgdXNlIG9mIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgZnJvbSBSZW5kZXJM
YXllcjo6cGFpbnRMYXllckJ5QXBwbHlpbmdUcmFuc2Zvcm0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDkyYWZiYzQuLjZmMjc0OTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAt
MTkwNTYsMjAgKzE5MDU2LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxiaW5kaW5nc1xqc1xXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAiPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2Vf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGx1Z2luc1xET01NaW1lVHlwZS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbHVnaW5zXERPTU1pbWVUeXBlQXJyYXku
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGx1Z2luc1xET01QbHVnaW4uY3Bw
IiAvPgpAQCAtMTk1NjcsMjAgKzE5NTUzLDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIj4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnN0cnVtZW50
aW5nQWdlbnRzLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC0xOTcwNywzNCArMTk2NzksNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25zb2xlQWdlbnQuY3BwIj4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29t
cGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJEZWJ1Z2dl
ckFnZW50LmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNw
ZWN0b3JcV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xOTc2MywzNCArMTk3MDcsNiBAQAogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29t
cGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcV29ya2VyUnVudGltZUFnZW50LmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxtYXRobWxcTWF0aE1MQWxsSW5PbmUuY3BwIj4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIyODc4LDggKzIyNzk0LDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdHlsZVNo
ZWV0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9y
XEluc3BlY3RvcldlYkFnZW50QmFzZS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXEluc3BlY3RvcldvcmtlckFnZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnN0cnVtZW50aW5nQWdlbnRzLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcTmV0d29ya1Jlc291cmNlc0RhdGEu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxQYWdlQ29uc29sZUFn
ZW50LmgiIC8+CkBAIC0yMjg5MSwxMCArMjI4MDUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXFdlYkRlYnVnZ2VyQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGluc3BlY3RvclxXZWJJbmplY3RlZFNjcmlwdEhvc3QuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIg
Lz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25zb2xlQWdl
bnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJEZWJ1
Z2dlckFnZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXFdvcmtlclJ1bnRpbWVBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cbWF0aG1sXE1hdGhNTEVsZW1lbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXG1hdGhtbFxNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxtYXRobWxcTWF0aE1MTWF0aEVsZW1lbnQuaCIgLz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwppbmRleCA5OTZhY2M4Li45ZjIxODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC00NDg0LDkgKzQ0ODQs
NiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcV29y
a2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIj4KLSAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0Zp
bHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsdWdp
bnNcRE9NTWltZVR5cGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGx1Z2luczwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgpAQCAtNDY5MSw5ICs0Njg4LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCI+CiAgICAgICA8Rmls
dGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvcldvcmtlckFnZW50LmNwcCI+Ci0gICAgICA8
RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3RydW1lbnRpbmdBZ2VudHMuY3BwIj4KICAgICAg
IDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00NzI3LDE4
ICs0NzIxLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXZWJJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
V29ya2VyQ29uc29sZUFnZW50LmNwcCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVy
PgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9y
XFdvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0
ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0
b3I8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxXb3JrZXJSdW50aW1lQWdlbnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVj
dG9yPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxtYXRobWxcTWF0aE1MQWxsSW5PbmUuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXG1h
dGhtbDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTE5ODMsMTIgKzExOTY1LDYgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JXZWJBZ2VudEJh
c2UuaCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvcldvcmtlckFn
ZW50LmgiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVk
ZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JXb3JrZXJS
ZXNvdXJjZS5oIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zdHJ1bWVudGlu
Z0FnZW50cy5oIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CkBAIC0xMjAyMiwxOCArMTE5OTgsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caW5zcGVjdG9yXFdlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oIj4KICAgICAgIDxGaWx0ZXI+
aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxpbnNwZWN0b3JcV29ya2VyQ29uc29sZUFnZW50LmgiPgotICAgICAgPEZpbHRlcj5p
bnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJEZWJ1Z2dlckFnZW50LmgiPgotICAgICAgPEZpbHRlcj5p
bnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiPgotICAgICAgPEZp
bHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJSdW50aW1lQWdlbnQuaCI+Ci0gICAgICA8Rmls
dGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cbWF0aG1sXE1hdGhNTEVsZW1lbnQuaCI+CiAgICAgICA8RmlsdGVyPnJlbmRl
cmluZ1xtYXRobWw8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZmY4MjI5Li45ODE2
NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC01NDI0LDggKzU0MjQsOCBAQAogCQlCQzNCRTlBQjBFOUMyNDIwMDA4MzU1ODgg
LyogUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzNCRTlBQTBFOUMyNDIwMDA4MzU1ODggLyogUmVuZGVyU2Nyb2xs
YmFyUGFydC5jcHAgKi87IH07CiAJCUJDM0MzOUI2MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlh
TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzNDMzlCNDBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwICovOyB9OwogCQlCQzND
MzlCNzBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0MzOUI1MEMwRDNEOEQwMDVGNEQ3QSAvKiBK
U01lZGlhTGlzdC5oICovOyB9OwotCQlCQzNEODVCQjFDMEUyRTc3MDBEM0I2MTAgLyogSlNIVE1M
UGljdHVyZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM4MDhCMTIxQzBFMkIzNTAwNjZGRDZCIC8qIEpTSFRNTFBpY3R1cmVFbGVtZW50
LmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwotCQlCQzNEODVCQzFD
MEUyRTdBMDBEM0I2MTAgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODA4QjEzMUMwRTJCMzUwMDY2RkQ2QiAv
KiBKU0hUTUxQaWN0dXJlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07CisJCUJDM0Q4NUJCMUMwRTJFNzcwMEQzQjYxMCAvKiBKU0hUTUxQaWN0dXJlRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgw
OEIxMjFDMEUyQjM1MDA2NkZENkIgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQuY3BwICovOyB9Owor
CQlCQzNEODVCQzFDMEUyRTdBMDBEM0I2MTAgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODA4QjEzMUMwRTJC
MzUwMDY2RkQ2QiAvKiBKU0hUTUxQaWN0dXJlRWxlbWVudC5oICovOyB9OwogCQlCQzQzNjhFODBD
MjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM0MzY4RTcwQzIyNkUzMjAwNUVGQjVGIC8qIFJlY3QuaCAqLzsgfTsK
IAkJQkM0NkMxRUUwQzBEREJERjAwMjBDRkMzIC8qIEpTQ1NTUnVsZUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ2QzFFRDBDMEREQkRG
MDAyMENGQzMgLyogSlNDU1NSdWxlQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQkM0NkMxRkEwQzBEREM4
RjAwMjBDRkMzIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0NkMxRjAwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NT
Q2hhcnNldFJ1bGUuY3BwICovOyB9OwpAQCAtNTY2MCw4ICs1NjYwLDggQEAKIAkJQkNDMDY1ODgw
RjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xp
ZW50UmVjdC5oICovOyB9OwogCQlCQ0MwNjU4OTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRS
ZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0MwNjU4NTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgKi87IH07
CiAJCUJDQzA2NThBMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NjBGM0NFMkE3
MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oICovOyB9OwotCQlCQ0MwRTg3NTFCRkU3MEU5
MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODczMUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1M
UGljdHVyZUVsZW1lbnQuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07
Ci0JCUJDQzBFODc2MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODc0MUJGRTcw
RTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRf
VEFHUyA9ICgpOyB9OyB9OworCQlCQ0MwRTg3NTFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1
cmVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQzBFODczMUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwICov
OyB9OworCQlCQ0MwRTg3NjFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwRTg3NDFC
RkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi87IH07CiAJCUJDQzQzODc4
MEU4ODZDQzcwMDUzM0RENSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNDM4NzcwRTg4NkNDNzAw
NTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi87IH07CiAJCUJDQzU3MzM1
MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyog
RE9NUHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlCQ0M1NzMzNjBENjk1QkJFMDA2RUY1MTcgLyog
RE9NUHJvZ3Jlc3NFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1t
ICovOyB9OwpAQCAtNjU5NSwyNCArNjU5NSwxMSBAQAogCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZF
RUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ0Qzc1NzExMjk0RkY2MDBGMjZFRUUgLyog
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgKi87IH07CiAJCUYzNDc0MkRDMTM0MzYy
RjAwMDUzMUJDMiAvKiBQYWdlRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ3NDJEQTEzNDM2MkYwMDA1MzFCQzIgLyogUGFn
ZURlYnVnZ2VyQWdlbnQuY3BwICovOyB9OwogCQlGMzQ3NDJERDEzNDM2MkYwMDA1MzFCQzIgLyog
UGFnZURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEYzNDc0MkRCMTM0MzYyRjAwMDUzMUJDMiAvKiBQYWdlRGVidWdnZXJBZ2VudC5o
ICovOyB9OwotCQlGMzQ3NDJFMDEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ3
NDJERTEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgKi87IH07Ci0J
CUYzNDc0MkUxMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ3NDJERjEzNDM2MzFG
MDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5oICovOyB9OwotCQlGMzQ3NDJFODEzNDM2
MzUwMDA1MzFCQzIgLyogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM0NzQyRTYxMzQzNjM1MDAwNTMxQkMy
IC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCAqLzsgfTsKLQkJRjM0NzQyRTkxMzQzNjM1
MDAwNTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ3NDJFNzEzNDM2MzUwMDA1MzFCQzIgLyog
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLzsgfTsKIAkJRjM1MEI3MzUxM0YxMzc3RDAwODgw
QzQzIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjM1MEI3MzQxM0YxMzc3RDAwODgwQzQzIC8qIEluc3RydW1l
bnRpbmdBZ2VudHMuY3BwICovOyB9OwotCQlGMzZFMDdBNDEzNThBOEJFMDBBQUNCQzkgLyogV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGMzZFMDdBMjEzNThBOEJFMDBBQUNCQzkgLyogV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5jcHAgKi87IH07Ci0JCUYzNkUwN0E1MTM1OEE4QkUwMEFBQ0JDOSAvKiBX
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGMzZFMDdBMzEzNThBOEJFMDBBQUNCQzkgLyogV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5oICovOyB9OwotCQlGMzc1Q0MwNzExNTBEMzAwMDA4RERCODEgLyogSW5z
cGVjdG9yV29ya2VyUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJS
ZXNvdXJjZS5oICovOyB9OwotCQlGMzgxMEMxQjEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9y
V29ya2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjM4MTBDMTkxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNw
cCAqLzsgfTsKLQkJRjM4MTBDMUMxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFn
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzgx
MEMxQTEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCAqLzsgfTsKIAkJ
RjM4MjA4OTIxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEExNDdEMzVGOTAw
MTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuY3BwICovOyB9OwogCQlGMzgyMDg5MzE0N0QzNUY5
MDAxMEJDMDYgLyogUGFnZUNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEIxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25z
b2xlQWdlbnQuaCAqLzsgfTsKIAkJRjM4MjA4OTQxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50
aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjM4MjA4OEMxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuY3BwICovOyB9
OwogCQlGMzgyMDg5NTE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEQxNDdEMzVG
OTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCAqLzsgfTsKLQkJRjM4MjA4OTYxNDdEMzVG
OTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzgyMDg4RTE0N0QzNUY5MDAxMEJDMDYgLyogV29y
a2VyQ29uc29sZUFnZW50LmNwcCAqLzsgfTsKLQkJRjM4MjA4OTcxNDdEMzVGOTAwMTBCQzA2IC8q
IFdvcmtlckNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjM4MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2Vu
dC5oICovOyB9OwotCQlGMzgyMDg5ODE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFn
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
ODIwODkwMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuY3BwICovOyB9Owot
CQlGMzgyMDg5OTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzgyMDg5MTE0N0QzNUY5
MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggKi87IH07CiAJCUYzQUJGRTBDMTMwRTlE
QTAwMEU3RjdEMSAvKiBJbnN0cnVtZW50aW5nQWdlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0FCRkUwQjEzMEU5REEwMDBFN0Y3RDEgLyogSW5z
dHJ1bWVudGluZ0FnZW50cy5oICovOyB9OwogCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyog
SlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAq
LzsgfTsKIAkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFE
NTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCAqLzsgfTsKQEAgLTE0NTEzLDI0ICsxNDUw
MCwxMSBAQAogCQlGMzQ0Qzc1NzExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjM0NzQyREExMzQzNjJGMDAwNTMxQkMyIC8qIFBhZ2VEZWJ1Z2dlckFnZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VEZWJ1Z2dlckFnZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM0NzQyREIxMzQzNjJGMDAwNTMxQkMyIC8q
IFBhZ2VEZWJ1Z2dlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
Z2VEZWJ1Z2dlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzNDc0MkRF
MTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlckRlYnVnZ2VyQWdlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlGMzQ3NDJERjEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2Vy
RGVidWdnZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJE
ZWJ1Z2dlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzNDc0MkU2MTM0
MzYzNTAwMDUzMUJDMiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzNDc0MkU3MTM0MzYzNTAwMDUzMUJDMiAvKiBX
b3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGMzUwQjczNDEzRjEzNzdEMDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnN0cnVtZW50aW5nQWdlbnRzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjM2RTA3QTIxMzU4QThCRTAwQUFDQkM5
IC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUYzNkUwN0EzMTM1OEE4QkUwMEFBQ0JDOSAvKiBXb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjM3
NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvcldvcmtlclJlc291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzODEwQzE5MTM2NUE0OTYwMEVENkUzMyAvKiBJ
bnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUYzODEwQzFBMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJBZ2VudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzgyMDg4QTE0N0QzNUY5MDAxMEJDMDYgLyog
UGFnZUNvbnNvbGVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQYWdlQ29uc29sZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM4
MjA4OEIxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNvbnNvbGVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGMzgyMDg4QzE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2Vu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlUnVudGltZUFn
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM4MjA4OEQxNDdEMzVGOTAw
MTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGFnZVJ1bnRpbWVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlG
MzgyMDg4RTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlckNvbnNvbGVBZ2VudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzODIwODhGMTQ3RDM1RjkwMDEwQkMwNiAvKiBX
b3JrZXJDb25zb2xlQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29y
a2VyQ29uc29sZUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzODIwODkw
MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyUnVudGltZUFnZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjM4MjA4OTExNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1
bnRpbWVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJSdW50
aW1lQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNBQkZFMEIxMzBFOURB
MDAwRTdGN0QxIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5zdHJ1bWVudGluZ0FnZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFcnJvckhhbmRsZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyog
SlNFcnJvckhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJv
ckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MDI4LDkgKzE2MDAy
LDYgQEAKIAkJCQk3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgKi8sCiAJCQkJNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQuaCAqLywKIAkJCQlBNTkzQ0Y4QTE4NDA1MzUyMDBCRkNFMjcgLyogSW5zcGVj
dG9yV2ViQWdlbnRCYXNlLmggKi8sCi0JCQkJRjM4MTBDMTkxMzY1QTQ5NjAwRUQ2RTMzIC8qIElu
c3BlY3RvcldvcmtlckFnZW50LmNwcCAqLywKLQkJCQlGMzgxMEMxQTEzNjVBNDk2MDBFRDZFMzMg
LyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCAqLywKLQkJCQlGMzc1Q0MwNjExNTBEMzAwMDA4RERC
ODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLywKIAkJCQlGMzUwQjczNDEzRjEzNzdE
MDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgKi8sCiAJCQkJRjNBQkZFMEIxMzBF
OURBMDAwRTdGN0QxIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuaCAqLywKIAkJCQk1OUMyN0YwNDEz
OEQyOEMxMDA3OUI3RTIgLyogTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwICovLApAQCAtMTYwNTUs
MTQgKzE2MDI2LDYgQEAKIAkJCQlBNTg0MEUyMzE4N0I4QUMyMDA4NDNCMTAgLyogV2ViSW5qZWN0
ZWRTY3JpcHRIb3N0LmggKi8sCiAJCQkJQTU4NEZFMkQxODY0Q0I4NDAwODQzQjEwIC8qIFdlYklu
amVjdGVkU2NyaXB0TWFuYWdlci5jcHAgKi8sCiAJCQkJQTU4NEZFMkUxODY0Q0I4NDAwODQzQjEw
IC8qIFdlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oICovLAotCQkJCUYzODIwODhFMTQ3RDM1Rjkw
MDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwICovLAotCQkJCUYzODIwODhGMTQ3RDM1
RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCAqLywKLQkJCQlGMzQ3NDJERTEzNDM2
MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgKi8sCi0JCQkJRjM0NzQyREYx
MzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQuaCAqLywKLQkJCQlGMzZFMDdB
MjEzNThBOEJFMDBBQUNCQzkgLyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi8sCi0J
CQkJRjM2RTA3QTMxMzU4QThCRTAwQUFDQkM5IC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
aCAqLywKLQkJCQlGMzgyMDg5MDE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50
LmNwcCAqLywKLQkJCQlGMzgyMDg5MTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFn
ZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGluc3BlY3RvcjsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0yMTk5Niw4ICsyMTk1OSw2IEBACiAJCQkJMEYwOTlEMDcxN0I5NjhBMTAw
RkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovLAogCQkJCUUxQTY0M0ZD
MEVDMDk3QTAwMDc3OTY2OCAvKiBXb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKIAkJCQlF
MUE2NDNGMTBFQzA5NzI1MDA3Nzk2NjggLyogV29ya2VyU2NyaXB0Q29udHJvbGxlci5oICovLAot
CQkJCUYzNDc0MkU2MTM0MzYzNTAwMDUzMUJDMiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5j
cHAgKi8sCi0JCQkJRjM0NzQyRTcxMzQzNjM1MDAwNTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVn
U2VydmVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGpzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTI1OTY3LDggKzI1OTI4LDYgQEAKIAkJCQk4MkFCMTc3NDEyNUM4MjY3MDBDNTA2
OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTMzQTgx
MDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1OTNDRjhCMTg0MDUzNTIwMEJGQ0UyNyAvKiBJbnNwZWN0b3JXZWJBZ2VudEJhc2Uu
aCBpbiBIZWFkZXJzICovLAotCQkJCUYzODEwQzFDMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0
b3JXb3JrZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjM3NUNDMDcxMTUwRDMwMDAwOERE
QjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGM0FC
RkUwQzEzMEU5REEwMDBFN0Y3RDEgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjI3NTM1NzIwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNDYyQTRBMTExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggaW4g
SGVhZGVycyAqLywKQEAgLTI4MTI1LDE0ICsyODA4NCwxMSBAQAogCQkJCUExNDgzMkM2MTg3RjY2
OEYwMERBNjNBNiAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzk5MTk5
NzEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJFNDM0NjQ2MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUYzODIwODk3MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUYzNDc0MkUxMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBM0UyNjQzMTE0NzQ4OTkxMDA1QTg1ODggLyogV29y
a2VyRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NDkwRjU0NkE4MjAwQjBG
MUJBIC8qIFdvcmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkNCNDFC
QjRDNEU4MDAxMjg5OEYgLyogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3RjhFNjY2MTUxRDRBNEUwMEQyRDE4MSAvKiBXb3JrZXJHbG9iYWxT
Y29wZU5vdGlmaWNhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjRCMEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLywKLQkJCQlG
MzZFMDdBNTEzNThBOEJFMDBBQUNCQzkgLyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRl
clByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODE0MSw5
ICsyODA5Nyw3IEBACiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVj
dFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyog
V29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZB
ODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKLQkJCQlGMzgyMDg5
OTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMUE2NDNGMjBFQzA5NzI1MDA3Nzk2NjggLyogV29ya2VyU2NyaXB0Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRjM0NzQyRTkxMzQzNjM1MDAwNTMxQkMyIC8qIFdvcmtlclNj
cmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q2QjM0OTBGNjExMDQ1MDBC
NzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUE3Njgw
NDBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4g
SGVhZGVycyAqLywKQEAgLTI5NTcyLDcgKzI5NTI2LDYgQEAKIAkJCQk5OUNDMEI2NjE4QkU5RjE1
MDA2Q0VCQ0MgLyogSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODJBQjE3NzMxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNzU0MTMzQUExMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjM4MTBDMUIxMzY1QTQ5NjAwRUQ2RTMz
IC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzNTBCNzM1
MTNGMTM3N0QwMDg4MEM0MyAvKiBJbnN0cnVtZW50aW5nQWdlbnRzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJENDZGMDRFMTdCOTZGQkQwMDU2NDdGMCAvKiBJbnRQb2ludC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMjc1MzU2MDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnRDRy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTMxNTE4LDIwICszMTQ3MSwxNSBAQAogCQkJCUExNDgzMkM1MTg3RjY2
ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBE
REY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0
MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlG
MzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUYzNDc0MkUwMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzRTI2NDMwMTQ3NDg5OTEwMDVBODU4OCAvKiBX
b3JrZXJFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNDM0NjQ4MEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJHbG9iYWxTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg1
RkNCMzFCQjRDNEU4MDAxMjg5OEYgLyogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdGOEU2NjUxNTFENEE0QjAwRDJEMTgxIC8qIFdvcmtl
ckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGMzZFMDdB
NDEzNThBOEJFMDBBQUNCQzkgLyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRTQzNDY0QzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9jYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NEYwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjcxQTE0MEVFRUM4MDQw
MEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2
NTIwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJRjM4MjA4OTgxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMUE2NDNGRDBFQzA5N0EwMDA3Nzk2NjggLyogV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGMzQ3NDJFODEzNDM2MzUwMDA1MzFC
QzIgLyogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdE
NkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRTQzNDY1NDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBCOTA1NkY4MEYyNjg1RjMwMDk1RkY2QSAvKiBXb3JrZXJUaHJl
YWRhYmxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMGE0YTgzNi4uZmM5NmRkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUu
Y3BwCkBAIC0xNDgsNCArMTQ4LDMgQEAKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwIgogI2luY2x1ZGUgIldlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAiCiAjaW5jbHVk
ZSAiV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAiCi0jaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAwZWFlNjRjLi41OWY2NmJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNp
bmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9iamVjdFByb3h5
LmgiCi0jaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKICNpbmNsdWRlICJXb3Jr
ZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PGhlYXAvU3Ryb25nSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlYTg1OWE5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoYykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVyLmgi
Ci0KLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1
ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuaCIKLSNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5o
IgotI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKLSNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
LSNpbmNsdWRlIDxydW50aW1lL1ZNLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OldvcmtlclNj
cmlwdERlYnVnU2VydmVyKFdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IG1vZGUpCi0gICAgOiBTY3JpcHREZWJ1Z1NlcnZlcihjb250ZXh0LnNjcmlwdCgpLT52bSgpLCB0
cnVlKQotICAgICwgbV93b3JrZXJHbG9iYWxTY29wZShjb250ZXh0KQotICAgICwgbV9kZWJ1Z2dl
clRhc2tNb2RlKG1vZGUpCi17Ci19Ci0KLXZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmF0
dGFjaERlYnVnZ2VyKCkKLXsKLSAgICBtX3dvcmtlckdsb2JhbFNjb3BlLnNjcmlwdCgpLT5hdHRh
Y2hEZWJ1Z2dlcih0aGlzKTsKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwotfQotCi12
b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZXRhY2hEZWJ1Z2dlcihib29sIHNraXBSZWNv
bXBpbGUpCi17Ci0gICAgaWYgKG1fd29ya2VyR2xvYmFsU2NvcGUuc2NyaXB0KCkpCi0gICAgICAg
IG1fd29ya2VyR2xvYmFsU2NvcGUuc2NyaXB0KCktPmRldGFjaERlYnVnZ2VyKHRoaXMpOwotICAg
IGlmICghc2tpcFJlY29tcGlsZSkKLSAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsK
LX0KLQotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlv
bnMoKQotewotICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0oKSk7Ci0gICAgSlNDOjpEZWJ1
Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKLX0KLQotdm9pZCBXb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKQotewotICAgIFRpbWVyQmFzZTo6
ZmlyZVRpbWVyc0luTmVzdGVkRXZlbnRMb29wKCk7Ci0KLSAgICBNZXNzYWdlUXVldWVXYWl0UmVz
dWx0IHJlc3VsdDsKLSAgICBkbyB7Ci0gICAgICAgIHJlc3VsdCA9IG1fd29ya2VyR2xvYmFsU2Nv
cGUudGhyZWFkKCkucnVuTG9vcCgpLnJ1bkluTW9kZSgmbV93b3JrZXJHbG9iYWxTY29wZSwgbV9k
ZWJ1Z2dlclRhc2tNb2RlKTsKLSAgICAvLyBLZWVwIHdhaXRpbmcgdW50aWwgZXhlY3V0aW9uIGlz
IHJlc3VtZWQuCi0gICAgfSB3aGlsZSAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQg
JiYgIW1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyk7Ci19Ci0KLXZvaWQgV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXI6OnJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlND
OjpFeGNlcHRpb24qIGV4Y2VwdGlvbikgY29uc3QKLXsKLSAgICBXZWJDb3JlOjpyZXBvcnRFeGNl
cHRpb24oZXhlYywgZXhjZXB0aW9uKTsKLX0KLQotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6aW50ZXJydXB0QW5kUnVuVGFzayhzdGQ6OnVuaXF1ZV9wdHI8VGFzaz4pCi17Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhMzE5OGFiLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdERlYnVnU2VydmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRp
c3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcl9oCi0jZGVmaW5lIFdvcmtlclNjcmlwdERlYnVnU2Vy
dmVyX2gKLQotI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwotCi1jbGFzcyBXb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlciBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6OlNjcmlwdERlYnVn
U2VydmVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cik7Ci1wdWJsaWM6Ci0gICAgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIoV29ya2VyR2xvYmFsU2Nv
cGUmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB+V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIoKSB7IH0K
LQotICAgIGNsYXNzIFRhc2sgewotICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAg
ICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgflRhc2soKSB7IH0KLSAgICAgICAgdmlydHVhbCB2
b2lkIHJ1bigpID0gMDsKLSAgICB9OwotCi0gICAgdmlydHVhbCB2b2lkIHJlY29tcGlsZUFsbEpT
RnVuY3Rpb25zKCkgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGludGVycnVwdEFuZFJ1blRhc2soc3Rk
Ojp1bmlxdWVfcHRyPFRhc2s+KTsKLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
RGVidWdnZXIoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoRGVidWdnZXIoYm9v
bCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaWRQYXVz
ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNDb250ZW50U2NyaXB0KEpTQzo6RXhlY1N0YXRlKikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFeGNlcHRpb24qKSBjb25zdCBvdmVycmlkZTsKLQotICAgIFdvcmtlckdsb2Jh
bFNjb3BlJiBtX3dvcmtlckdsb2JhbFNjb3BlOwotICAgIFN0cmluZyBtX2RlYnVnZ2VyVGFza01v
ZGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBXb3JrZXJTY3Jp
cHREZWJ1Z1NlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFs
bEluT25lLmNwcAppbmRleCAzN2M5ODRjLi42ZTFiZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAgLTUwLDcgKzUwLDYgQEAKICNpbmNs
dWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclN0eWxlU2hl
ZXQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIgotI2luY2x1ZGUg
Ikluc3BlY3RvcldvcmtlckFnZW50LmNwcCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRz
LmNwcCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAiCiAjaW5jbHVkZSAiUGFn
ZUNvbnNvbGVBZ2VudC5jcHAiCkBAIC02Miw3ICs2MSwzIEBACiAjaW5jbHVkZSAiV2ViRGVidWdn
ZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCIKICNpbmNs
dWRlICJXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwIgotI2luY2x1ZGUgIldvcmtlckNvbnNv
bGVBZ2VudC5jcHAiCi0jaW5jbHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5jcHAiCi0jaW5jbHVk
ZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAiCi0jaW5jbHVkZSAiV29ya2VyUnVudGlt
ZUFnZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI3NzM3ZTMuLmI5MTVlOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1
bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVJbnN0cnVtZW50YXRpb24uaApAQCAtNDQsMTAgKzQ0LDkgQEAgaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UmIHBhZ2UsIHN0ZDo6
dW5pcXUKICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9y
UGFnZShwYWdlKSwgV1RGOjptb3ZlKG1lc3NhZ2UpKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckdsb2JhbFNjb3Bl
KiB3b3JrZXJHbG9iYWxTY29wZSwgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1l
c3NhZ2U+IG1lc3NhZ2UpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyR2xvYmFsU2NvcGUqLCBzdGQ6OnVuaXF1ZV9wdHI8SW5z
cGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pCiB7Ci0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFs
U2NvcGUod29ya2VyR2xvYmFsU2NvcGUpKQotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1w
bCgqaW5zdHJ1bWVudGluZ0FnZW50cywgV1RGOjptb3ZlKG1lc3NhZ2UpKTsKKyAgICAvLyBGSVhN
RTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNzYzND4gV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBk
ZWJ1Z2dpbmcgd2ViIHdvcmtlcnMKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpjb25zb2xlQ291bnQoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDMzOTc2
MDAuLmI2YmY0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKQEAgLTUwLDcgKzUwLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdl
QWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXBsYXlBZ2VudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JXb3JrZXJBZ2VudC5o
IgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCkBAIC0xNjksNyArMTY4LDYgQEAg
SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdlLCBJbnNw
ZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3Vu
aXF1ZTxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PihwYWdlQ29udGV4dCwgbV9kb21BZ2VudCwg
ZGVidWdnZXJBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPElu
c3BlY3RvckhlYXBBZ2VudD4ocGFnZUNvbnRleHQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KHBhZ2VDb250ZXh0
LCBwYWdlQWdlbnQpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNw
ZWN0b3JXb3JrZXJBZ2VudD4ocGFnZUNvbnRleHQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JMYXllclRyZWVBZ2VudD4ocGFnZUNvbnRleHQpKTsKIAog
ICAgIEFTU0VSVChtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+Y29tbWFuZExpbmVBUElIb3N0KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAppbmRleCBlNTI3ZGFhLi4xYWQwN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTEsNyAr
NTEsNiBAQAogI2luY2x1ZGUgIkluc3BlY3Rvck5ldHdvcmtBZ2VudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIK
LSNpbmNsdWRlICJJbnNwZWN0b3JXb3JrZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRp
bmdBZ2VudHMuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJQYWdlRGVidWdn
ZXJBZ2VudC5oIgpAQCAtNjIsMTAgKzYxLDYgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViQ29uc29sZUFnZW50LmgiCi0j
aW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV29ya2VyUnVudGltZUFnZW50LmgiCi0jaW5jbHVkZSAi
V29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNsdWRlIDxp
bnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0QXJn
dW1lbnRzLmg+CkBAIC05MTEsMzggKzkwNiw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50CiAg
ICAgICAgIGRvbVN0b3JhZ2VBZ2VudC0+ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoa2V5LCBv
bGRWYWx1ZSwgbmV3VmFsdWUsIHN0b3JhZ2VUeXBlLCBzZWN1cml0eU9yaWdpbiwgcGFnZSk7CiB9
CiAKLWJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRQYXVzZURlZGljYXRlZFdv
cmtlck9uU3RhcnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMp
Ci17Ci0gICAgaWYgKEluc3BlY3RvcldvcmtlckFnZW50KiB3b3JrZXJBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMuaW5zcGVjdG9yV29ya2VyQWdlbnQoKSkKLSAgICAgICAgcmV0dXJuIHdvcmtl
ckFnZW50LT5zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtl
ckdsb2JhbFNjb3BlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBXb3JrZXJHbG9iYWxTY29wZVByb3h5KiB3b3JrZXJHbG9iYWxTY29wZVByb3h5LCBjb25zdCBV
UkwmIHVybCkKLXsKLSAgICBpZiAoSW5zcGVjdG9yV29ya2VyQWdlbnQqIHdvcmtlckFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JXb3JrZXJBZ2VudCgpKQotICAgICAgICB3b3Jr
ZXJBZ2VudC0+ZGlkU3RhcnRXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZVByb3h5
LCB1cmwpOwotfQotCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRl
V29ya2VyU2NyaXB0KFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSwgaW50IHdv
cmtlclRocmVhZFN0YXJ0TW9kZSkKLXsKLSAgICBpZiAod29ya2VyVGhyZWFkU3RhcnRNb2RlICE9
IFBhdXNlV29ya2VyR2xvYmFsU2NvcGVPblN0YXJ0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKTsKLSAgICBpZiAoIWlu
c3RydW1lbnRpbmdBZ2VudHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChXb3JrZXJSdW50
aW1lQWdlbnQqIHJ1bnRpbWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPndvcmtlclJ1bnRp
bWVBZ2VudCgpKQotICAgICAgICBydW50aW1lQWdlbnQtPnBhdXNlV29ya2VyR2xvYmFsU2NvcGUo
d29ya2VyR2xvYmFsU2NvcGUpOwotfQotCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d29ya2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBXb3JrZXJHbG9iYWxTY29wZVByb3h5KiBwcm94eSkKLXsKLSAgICBp
ZiAoSW5zcGVjdG9yV29ya2VyQWdlbnQqIHdvcmtlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JXb3JrZXJBZ2VudCgpKQotICAgICAgICB3b3JrZXJBZ2VudC0+d29ya2VyR2xv
YmFsU2NvcGVUZXJtaW5hdGVkKHByb3h5KTsKLX0KLQogI2lmIEVOQUJMRShXRUJfU09DS0VUUykK
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXRJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgVVJMJiByZXF1ZXN0VVJMKQogewpAQCAtMTE5OSwxOSArMTE2Miw2IEBA
IEluc3RydW1lbnRpbmdBZ2VudHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVu
dGluZ0FnZW50c0ZvclJlbmRlcmVyKFJlCiAgICAgcmV0dXJuIGluc3RydW1lbnRpbmdBZ2VudHNG
b3JGcmFtZShyZW5kZXJlci0+ZnJhbWUoKSk7CiB9CiAKLUluc3RydW1lbnRpbmdBZ2VudHMqIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2Jh
bFNjb3BlKFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSkKLXsKLSAgICByZXR1
cm4gd29ya2VyR2xvYmFsU2NvcGUgPyAmd29ya2VyR2xvYmFsU2NvcGUtPndvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIoKS5tX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkgOiBudWxscHRyOwotfQot
Ci1JbnN0cnVtZW50aW5nQWdlbnRzKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omluc3RydW1l
bnRpbmdBZ2VudHNGb3JOb25Eb2N1bWVudENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKLXsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgaWYgKGlzPFdvcmtlckdsb2Jh
bFNjb3BlPigqY29udGV4dCkpCi0gICAgICAgIHJldHVybiBpbnN0cnVtZW50aW5nQWdlbnRzRm9y
V29ya2VyR2xvYmFsU2NvcGUoZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpKTsK
LSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmxheWVyVHJlZURpZENoYW5nZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cykKIHsKICAgICBpZiAoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQqIGxheWVyVHJlZUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CmluZGV4IDY5NmQ4MjQuLjFiNGYzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEwMCw3ICsxMDAsNiBAQCBjbGFz
cyBTdHlsZVJ1bGU7CiBjbGFzcyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50OwogY2xhc3MgVVJMOwog
Y2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZVByb3h5Owog
Y2xhc3MgWE1MSHR0cFJlcXVlc3Q7CiAKIHN0cnVjdCBSZXBsYXlQb3NpdGlvbjsKQEAgLTIyNSwx
MSArMjI0LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hET01TdG9y
YWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiosIFBhZ2UqKTsK
IAotICAgIHN0YXRpYyBib29sIHNob3VsZFBhdXNlRGVkaWNhdGVkV29ya2VyT25TdGFydChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7Ci0gICAgc3RhdGljIHZvaWQgZGlkU3RhcnRXb3JrZXJHbG9i
YWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyR2xvYmFsU2NvcGVQcm94eSos
IGNvbnN0IFVSTCYpOwotICAgIHN0YXRpYyB2b2lkIHdvcmtlckdsb2JhbFNjb3BlVGVybWluYXRl
ZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyR2xvYmFsU2NvcGVQcm94eSopOwotICAg
IHN0YXRpYyB2b2lkIHdpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdChXb3JrZXJHbG9iYWxTY29wZSos
IGludCB3b3JrZXJUaHJlYWRTdGFydE1vZGUpOwotCiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAg
ICAgc3RhdGljIHZvaWQgc2Vzc2lvbkNyZWF0ZWQoUGFnZSYsIFJlZlB0cjxSZXBsYXlTZXNzaW9u
PiYmKTsKICAgICBzdGF0aWMgdm9pZCBzZXNzaW9uTG9hZGVkKFBhZ2UmLCBSZWZQdHI8UmVwbGF5
U2Vzc2lvbj4mJik7CkBAIC0zOTksMTAgKzM5Myw2IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMg
dm9pZCBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcm
IG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qLCBQYWdlKik7CiAKLSAgICBz
dGF0aWMgYm9vbCBzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRTdGFydFdvcmtlckdsb2JhbFNjb3Bl
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV29ya2VyR2xvYmFsU2NvcGVQcm94eSosIGNvbnN0
IFVSTCYpOwotICAgIHN0YXRpYyB2b2lkIHdvcmtlckdsb2JhbFNjb3BlVGVybWluYXRlZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIFdvcmtlckdsb2JhbFNjb3BlUHJveHkqKTsKLQogI2lmIEVO
QUJMRShXRUJfUkVQTEFZKQogICAgIHN0YXRpYyB2b2lkIHNlc3Npb25DcmVhdGVkSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgUmVmUHRyPFJlcGxheVNlc3Npb24+JiYpOwogICAgIHN0YXRpYyB2
b2lkIHNlc3Npb25Mb2FkZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBSZWZQdHI8UmVwbGF5
U2Vzc2lvbj4mJik7CkBAIC00NDYsOSArNDM2LDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KERvY3VtZW50
Kik7CiAgICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNG
b3JSZW5kZXJlcihSZW5kZXJPYmplY3QqKTsKIAotICAgIHN0YXRpYyBJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUoV29ya2VyR2xvYmFs
U2NvcGUqKTsKLSAgICBzdGF0aWMgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50c0Zvck5vbkRvY3VtZW50Q29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0KICAg
ICBzdGF0aWMgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogcmV0cmlldmVUaW1lbGluZUFnZW50KGNv
bnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAgICAgc3RhdGljIHZvaWQg
cGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGJvb2wgaXNE
T01FdmVudCwgY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMpOwpAQCAt
MTA2NSwyNiArMTA1Miw2IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrCiAgICAgICAgIGRpZERp
c3BhdGNoRE9NU3RvcmFnZUV2ZW50SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywga2V5LCBvbGRW
YWx1ZSwgbmV3VmFsdWUsIHN0b3JhZ2VUeXBlLCBzZWN1cml0eU9yaWdpbiwgcGFnZSk7CiB9CiAK
LWlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkUGF1c2VEZWRpY2F0
ZWRXb3JrZXJPblN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKGZhbHNlKTsKLSAgICBpZiAoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250
ZXh0KGNvbnRleHQpKQotICAgICAgICByZXR1cm4gc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJP
blN0YXJ0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyR2xv
YmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV29ya2VyR2xvYmFsU2Nv
cGVQcm94eSogcHJveHksIGNvbnN0IFVSTCYgdXJsKQotewotICAgIGlmIChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRl
eHQoY29udGV4dCkpCi0gICAgICAgIGRpZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGVJbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCBwcm94eSwgdXJsKTsKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3b3JrZXJHbG9iYWxTY29wZVRlcm1pbmF0ZWQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgV29ya2VyR2xvYmFsU2NvcGVQcm94eSogcHJveHkpCi17Ci0g
ICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkKLSAgICAgICAgd29ya2VyR2xvYmFsU2Nv
cGVUZXJtaW5hdGVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJveHkpOwotfQotCiAjaWYg
RU5BQkxFKFdFQl9TT0NLRVRTKQogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJTb2NrZXQoRG9jdW1lbnQqIGRvY3VtZW50LCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCkKIHsKQEAgLTEyNzYsNyArMTI0Myw3IEBA
IGlubGluZSBJbnN0cnVtZW50aW5nQWdlbnRzKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omlu
c3RydW1lbnRpbmdBZ2VudHNGb3JDb250CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
IChpczxEb2N1bWVudD4oKmNvbnRleHQpKQogICAgICAgICByZXR1cm4gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvclBhZ2UoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLT5wYWdlKCkpOwotICAgIHJl
dHVybiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yTm9uRG9jdW1lbnRDb250ZXh0KGNvbnRleHQpOwor
ICAgIHJldHVybiBudWxscHRyOwogfQogCiBpbmxpbmUgSW5zdHJ1bWVudGluZ0FnZW50cyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoRnJhbWUq
IGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmgKaW5kZXggZjAxZTcwMy4uN2U1Yjk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC05Miw3ICs5Miw3IEBAIGNs
YXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgZmluYWwKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShJbnNwZWN0b3JUaW1lbGluZUFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBlbnVtIEluc3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9yLCBXb3JrZXJJ
bnNwZWN0b3IgfTsKKyAgICBlbnVtIEluc3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9yIH07CiAK
ICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KFdlYkFnZW50Q29udGV4dCYsIEluc3BlY3RvclBh
Z2VBZ2VudCosIEluc3BlY3RvclR5cGUpOwogICAgIHZpcnR1YWwgfkluc3BlY3RvclRpbWVsaW5l
QWdlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
ZWJBZ2VudEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXZWJBZ2Vu
dEJhc2UuaAppbmRleCAwMzFlNGM5Li5mNjgyMzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvcldlYkFnZW50QmFzZS5oCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIFBhZ2U7
Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKIAogLy8gRklYTUU6IG1vdmUgdGhpcyB0byBJbnNw
ZWN0b3IgbmFtZXNwYWNlIHdoZW4gcmVtYWluaW5nIGFnZW50cyBtb3ZlLgogc3RydWN0IFdlYkFn
ZW50Q29udGV4dCA6IHB1YmxpYyBJbnNwZWN0b3I6OkFnZW50Q29udGV4dCB7CkBAIC01NywxNiAr
NTYsNiBAQCBzdHJ1Y3QgUGFnZUFnZW50Q29udGV4dCA6IHB1YmxpYyBXZWJBZ2VudENvbnRleHQg
ewogICAgIFBhZ2UmIGluc3BlY3RlZFBhZ2U7CiB9OwogCi1zdHJ1Y3QgV29ya2VyQWdlbnRDb250
ZXh0IDogcHVibGljIFdlYkFnZW50Q29udGV4dCB7Ci0gICAgV29ya2VyQWdlbnRDb250ZXh0KFdl
YkFnZW50Q29udGV4dCYgY29udGV4dCwgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNj
b3BlKQotICAgICAgICA6IFdlYkFnZW50Q29udGV4dChjb250ZXh0KQotICAgICAgICAsIHdvcmtl
ckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKQotICAgIHsKLSAgICB9Ci0KLSAgICBXb3Jr
ZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGU7Ci19OwotCiBjbGFzcyBJbnNwZWN0b3JB
Z2VudEJhc2UgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudEJhc2UgewogcHJvdGVj
dGVkOgogICAgIEluc3BlY3RvckFnZW50QmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkFnZW50
Q29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yV29ya2VyQWdlbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWQ0NzI1
Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJB
Z2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiSW5zcGVjdG9yV29ya2VyQWdlbnQuaCIKLQotI2luY2x1ZGUgIkluc3RydW1l
bnRpbmdBZ2VudHMuaCIKLSNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRlICJXb3JrZXJHbG9iYWxT
Y29wZVByb3h5LmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kRGlzcGF0
Y2hlcnMuaD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgotCi11c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEluc3BlY3RvcldvcmtlckFnZW50OjpXb3JrZXJGcm9udGVu
ZENoYW5uZWwgOiBwdWJsaWMgV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6UGFnZUluc3BlY3RvciB7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgV29y
a2VyRnJvbnRlbmRDaGFubmVsKEluc3BlY3Rvcjo6V29ya2VyRnJvbnRlbmREaXNwYXRjaGVyKiBm
cm9udGVuZERpc3BhdGNoZXIsIFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIHByb3h5KQotICAgICAg
ICA6IG1fZnJvbnRlbmREaXNwYXRjaGVyKGZyb250ZW5kRGlzcGF0Y2hlcikKLSAgICAgICAgLCBt
X3Byb3h5KHByb3h5KQotICAgICAgICAsIG1faWQoc19uZXh0SWQrKykKLSAgICAgICAgLCBtX2Nv
bm5lY3RlZChmYWxzZSkKLSAgICB7Ci0gICAgfQotICAgIHZpcnR1YWwgfldvcmtlckZyb250ZW5k
Q2hhbm5lbCgpCi0gICAgewotICAgICAgICBkaXNjb25uZWN0RnJvbVdvcmtlckdsb2JhbFNjb3Bl
KCk7Ci0gICAgfQotCi0gICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgIFdv
cmtlckdsb2JhbFNjb3BlUHJveHkqIHByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9wcm94eTsgfQot
Ci0gICAgdm9pZCBjb25uZWN0VG9Xb3JrZXJHbG9iYWxTY29wZSgpCi0gICAgewotICAgICAgICBp
ZiAobV9jb25uZWN0ZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fY29ubmVjdGVk
ID0gdHJ1ZTsKLSAgICAgICAgbV9wcm94eS0+Y29ubmVjdFRvSW5zcGVjdG9yKHRoaXMpOwotICAg
IH0KLQotICAgIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXJHbG9iYWxTY29wZSgpCi0gICAgewot
ICAgICAgICBpZiAoIW1fY29ubmVjdGVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBt
X2Nvbm5lY3RlZCA9IGZhbHNlOwotICAgICAgICBtX3Byb3h5LT5kaXNjb25uZWN0RnJvbUluc3Bl
Y3RvcigpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICAvLyBXb3JrZXJHbG9iYWxTY29wZVByb3h5
OjpQYWdlSW5zcGVjdG9yIGltcGxlbWVudGF0aW9uCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
TWVzc2FnZUZyb21Xb3JrZXIoY29uc3QgU3RyaW5nJiBtZXNzYWdlU3RyaW5nKSBvdmVycmlkZQot
ICAgIHsKLSAgICAgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBwYXJzZWRNZXNzYWdlOwotICAg
ICAgICBpZiAoIUluc3BlY3RvclZhbHVlOjpwYXJzZUpTT04obWVzc2FnZVN0cmluZywgcGFyc2Vk
TWVzc2FnZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gbWVzc2FnZU9iamVjdDsKLSAgICAgICAgaWYgKCFwYXJzZWRNZXNzYWdlLT5hc09i
amVjdChtZXNzYWdlT2JqZWN0KSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2Zy
b250ZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlcihtX2lkLCBtZXNzYWdl
T2JqZWN0KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3I6OldvcmtlckZyb250ZW5kRGlzcGF0Y2hl
ciogbV9mcm9udGVuZERpc3BhdGNoZXI7Ci0gICAgV29ya2VyR2xvYmFsU2NvcGVQcm94eSogbV9w
cm94eTsKLSAgICBpbnQgbV9pZDsKLSAgICBib29sIG1fY29ubmVjdGVkOwotICAgIHN0YXRpYyBp
bnQgc19uZXh0SWQ7Ci19OwotCi1pbnQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OldvcmtlckZyb250
ZW5kQ2hhbm5lbDo6c19uZXh0SWQgPSAxOwotCi1JbnNwZWN0b3JXb3JrZXJBZ2VudDo6SW5zcGVj
dG9yV29ya2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0KQotICAgIDogSW5zcGVjdG9y
QWdlbnRCYXNlKEFTQ0lJTGl0ZXJhbCgiV29ya2VyIiksIGNvbnRleHQpCi0gICAgLCBtX2Zyb250
ZW5kRGlzcGF0Y2hlcihzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3Rvcjo6V29ya2VyRnJvbnRlbmRE
aXNwYXRjaGVyPihjb250ZXh0LmZyb250ZW5kUm91dGVyKSkKLSAgICAsIG1fYmFja2VuZERpc3Bh
dGNoZXIoSW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGNvbnRleHQu
YmFja2VuZERpc3BhdGNoZXIsIHRoaXMpKQotewotICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5z
ZXRJbnNwZWN0b3JXb3JrZXJBZ2VudCh0aGlzKTsKLX0KLQotSW5zcGVjdG9yV29ya2VyQWdlbnQ6
On5JbnNwZWN0b3JXb3JrZXJBZ2VudCgpCi17Ci0gICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNl
dEluc3BlY3RvcldvcmtlckFnZW50KG51bGxwdHIpOwotfQotCi12b2lkIEluc3BlY3Rvcldvcmtl
ckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJv
dXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQotewotfQotCi12b2lkIEluc3Bl
Y3RvcldvcmtlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkRpc2Nvbm5lY3RSZWFzb24pCi17Ci0gICAgbV9zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9u
U3RhcnQgPSBmYWxzZTsKLSAgICBFcnJvclN0cmluZyB1bnVzZWQ7Ci0gICAgZGlzYWJsZSh1bnVz
ZWQpOwotfQotCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcm
KQotewotICAgIG1fZW5hYmxlZCA9IHRydWU7Ci0KLSAgICBjcmVhdGVXb3JrZXJGcm9udGVuZENo
YW5uZWxzRm9yRXhpc3RpbmdXb3JrZXJzKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQotewotICAgIG1fZW5hYmxlZCA9IGZhbHNlOwotCi0g
ICAgZGVzdHJveVdvcmtlckZyb250ZW5kQ2hhbm5lbHMoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JX
b3JrZXJBZ2VudDo6Y2FuSW5zcGVjdFdvcmtlcnMoRXJyb3JTdHJpbmcmLCBib29sKiByZXN1bHQp
Ci17Ci0gICAgKnJlc3VsdCA9IHRydWU7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6
OmNvbm5lY3RUb1dvcmtlcihFcnJvclN0cmluZyYgZXJyb3IsIGludCB3b3JrZXJJZCkKLXsKLSAg
ICBXb3JrZXJGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBtX2lkVG9DaGFubmVsLmdldCh3b3Jr
ZXJJZCk7Ci0gICAgaWYgKGNoYW5uZWwpCi0gICAgICAgIGNoYW5uZWwtPmNvbm5lY3RUb1dvcmtl
ckdsb2JhbFNjb3BlKCk7Ci0gICAgZWxzZQotICAgICAgICBlcnJvciA9IEFTQ0lJTGl0ZXJhbCgi
V29ya2VyIGlzIGdvbmUiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlzY29u
bmVjdEZyb21Xb3JrZXIoRXJyb3JTdHJpbmcmIGVycm9yLCBpbnQgd29ya2VySWQpCi17Ci0gICAg
V29ya2VyRnJvbnRlbmRDaGFubmVsKiBjaGFubmVsID0gbV9pZFRvQ2hhbm5lbC5nZXQod29ya2Vy
SWQpOwotICAgIGlmIChjaGFubmVsKQotICAgICAgICBjaGFubmVsLT5kaXNjb25uZWN0RnJvbVdv
cmtlckdsb2JhbFNjb3BlKCk7Ci0gICAgZWxzZQotICAgICAgICBlcnJvciA9IEFTQ0lJTGl0ZXJh
bCgiV29ya2VyIGlzIGdvbmUiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2Vu
ZE1lc3NhZ2VUb1dvcmtlcihFcnJvclN0cmluZyYgZXJyb3IsIGludCB3b3JrZXJJZCwgY29uc3Qg
SW5zcGVjdG9yT2JqZWN0JiBtZXNzYWdlKQotewotICAgIFdvcmtlckZyb250ZW5kQ2hhbm5lbCog
Y2hhbm5lbCA9IG1faWRUb0NoYW5uZWwuZ2V0KHdvcmtlcklkKTsKLSAgICBpZiAoY2hhbm5lbCkK
LSAgICAgICAgY2hhbm5lbC0+cHJveHkoKS0+c2VuZE1lc3NhZ2VUb0luc3BlY3RvcihtZXNzYWdl
LnRvSlNPTlN0cmluZygpKTsKLSAgICBlbHNlCi0gICAgICAgIGVycm9yID0gQVNDSUlMaXRlcmFs
KCJXb3JrZXIgaXMgZ29uZSIpOwotfQotCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpzZXRB
dXRvY29ubmVjdFRvV29ya2VycyhFcnJvclN0cmluZyYsIGJvb2wgdmFsdWUpCi17Ci0gICAgbV9z
aG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQgPSB2YWx1ZTsKLX0KLQotYm9vbCBJbnNw
ZWN0b3JXb3JrZXJBZ2VudDo6c2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQ7Ci19
Ci0KLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGUo
V29ya2VyR2xvYmFsU2NvcGVQcm94eSogd29ya2VyR2xvYmFsU2NvcGVQcm94eSwgY29uc3QgVVJM
JiB1cmwpCi17Ci0gICAgbV9kZWRpY2F0ZWRXb3JrZXJzLnNldCh3b3JrZXJHbG9iYWxTY29wZVBy
b3h5LCB1cmwuc3RyaW5nKCkpOwotICAgIGlmIChtX2VuYWJsZWQpCi0gICAgICAgIGNyZWF0ZVdv
cmtlckZyb250ZW5kQ2hhbm5lbCh3b3JrZXJHbG9iYWxTY29wZVByb3h5LCB1cmwuc3RyaW5nKCkp
OwotfQotCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojp3b3JrZXJHbG9iYWxTY29wZVRlcm1p
bmF0ZWQoV29ya2VyR2xvYmFsU2NvcGVQcm94eSogcHJveHkpCi17Ci0gICAgbV9kZWRpY2F0ZWRX
b3JrZXJzLnJlbW92ZShwcm94eSk7Ci0gICAgZm9yIChXb3JrZXJDaGFubmVsczo6aXRlcmF0b3Ig
aXQgPSBtX2lkVG9DaGFubmVsLmJlZ2luKCk7IGl0ICE9IG1faWRUb0NoYW5uZWwuZW5kKCk7ICsr
aXQpIHsKLSAgICAgICAgaWYgKHByb3h5ID09IGl0LT52YWx1ZS0+cHJveHkoKSkgewotICAgICAg
ICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPndvcmtlclRlcm1pbmF0ZWQoaXQtPmtleSk7Ci0g
ICAgICAgICAgICBkZWxldGUgaXQtPnZhbHVlOwotICAgICAgICAgICAgbV9pZFRvQ2hhbm5lbC5y
ZW1vdmUoaXQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotfQotCi12
b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpjcmVhdGVXb3JrZXJGcm9udGVuZENoYW5uZWxzRm9y
RXhpc3RpbmdXb3JrZXJzKCkKLXsKLSAgICBmb3IgKGF1dG8mIHdvcmtlciA6IG1fZGVkaWNhdGVk
V29ya2VycykKLSAgICAgICAgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsKHdvcmtlci5rZXks
IHdvcmtlci52YWx1ZSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRlc3Ryb3lX
b3JrZXJGcm9udGVuZENoYW5uZWxzKCkKLXsKLSAgICBmb3IgKGF1dG8mIGNoYW5uZWwgOiBtX2lk
VG9DaGFubmVsLnZhbHVlcygpKSB7Ci0gICAgICAgIGNoYW5uZWwtPmRpc2Nvbm5lY3RGcm9tV29y
a2VyR2xvYmFsU2NvcGUoKTsKLSAgICAgICAgZGVsZXRlIGNoYW5uZWw7Ci0gICAgfQotICAgIG1f
aWRUb0NoYW5uZWwuY2xlYXIoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y3Jl
YXRlV29ya2VyRnJvbnRlbmRDaGFubmVsKFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIHdvcmtlckds
b2JhbFNjb3BlUHJveHksIGNvbnN0IFN0cmluZyYgdXJsKQotewotICAgIFdvcmtlckZyb250ZW5k
Q2hhbm5lbCogY2hhbm5lbCA9IG5ldyBXb3JrZXJGcm9udGVuZENoYW5uZWwobV9mcm9udGVuZERp
c3BhdGNoZXIuZ2V0KCksIHdvcmtlckdsb2JhbFNjb3BlUHJveHkpOwotICAgIG1faWRUb0NoYW5u
ZWwuc2V0KGNoYW5uZWwtPmlkKCksIGNoYW5uZWwpOwotCi0gICAgaWYgKG1fc2hvdWxkUGF1c2VE
ZWRpY2F0ZWRXb3JrZXJPblN0YXJ0KQotICAgICAgICBjaGFubmVsLT5jb25uZWN0VG9Xb3JrZXJH
bG9iYWxTY29wZSgpOwotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT53b3JrZXJDcmVhdGVkKGNo
YW5uZWwtPmlkKCksIHVybCwgbV9zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
MmY1Y2U3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3Rv
cldvcmtlckFnZW50X2gKLSNkZWZpbmUgSW5zcGVjdG9yV29ya2VyQWdlbnRfaAotCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVycy5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KLQotbmFtZXNwYWNlIEluc3BlY3RvciB7Ci1jbGFzcyBJbnNwZWN0
b3JPYmplY3Q7Ci1jbGFzcyBXb3JrZXJGcm9udGVuZERpc3BhdGNoZXI7Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLWNsYXNzIFVSTDsKLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJveHk7Ci0K
LXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwotCi1jbGFzcyBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6Oldv
cmtlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgSW5zcGVjdG9yV29ya2VyQWdlbnQoV2ViQWdlbnRD
b250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yV29ya2VyQWdlbnQoKTsKLQotICAgIHZp
cnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVu
ZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNj
b25uZWN0UmVhc29uKSBvdmVycmlkZTsKLQotICAgIC8vIENhbGxlZCBmcm9tIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbgotICAgIGJvb2wgc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0
KCkgY29uc3Q7Ci0gICAgdm9pZCBkaWRTdGFydFdvcmtlckdsb2JhbFNjb3BlKFdvcmtlckdsb2Jh
bFNjb3BlUHJveHkqLCBjb25zdCBVUkwmKTsKLSAgICB2b2lkIHdvcmtlckdsb2JhbFNjb3BlVGVy
bWluYXRlZChXb3JrZXJHbG9iYWxTY29wZVByb3h5Kik7Ci0KLSAgICAvLyBDYWxsZWQgZnJvbSBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcgotICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JT
dHJpbmcmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBjYW5JbnNwZWN0V29ya2VycyhFcnJvclN0cmlu
ZyYsIGJvb2wqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdFRvV29ya2VyKEVy
cm9yU3RyaW5nJiwgaW50IHdvcmtlcklkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
Y29ubmVjdEZyb21Xb3JrZXIoRXJyb3JTdHJpbmcmLCBpbnQgd29ya2VySWQpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKEVycm9yU3RyaW5nJiwgaW50IHdv
cmtlcklkLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgbWVzc2FnZSkgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEF1dG9jb25uZWN0VG9Xb3JrZXJzKEVycm9yU3RyaW5n
JiwgYm9vbCB2YWx1ZSkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBjcmVhdGVXb3Jr
ZXJGcm9udGVuZENoYW5uZWxzRm9yRXhpc3RpbmdXb3JrZXJzKCk7Ci0gICAgdm9pZCBjcmVhdGVX
b3JrZXJGcm9udGVuZENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGVQcm94eSosIGNvbnN0IFN0cmlu
ZyYgdXJsKTsKLSAgICB2b2lkIGRlc3Ryb3lXb3JrZXJGcm9udGVuZENoYW5uZWxzKCk7Ci0KLSAg
ICBjbGFzcyBXb3JrZXJGcm9udGVuZENoYW5uZWw7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5z
cGVjdG9yOjpXb3JrZXJGcm9udGVuZERpc3BhdGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwot
ICAgIFJlZlB0cjxJbnNwZWN0b3I6OldvcmtlckJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmRE
aXNwYXRjaGVyOwotCi0gICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9z
aG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQgeyBmYWxzZSB9OwotICAgIAotICAgIHR5
cGVkZWYgSGFzaE1hcDxpbnQsIFdvcmtlckZyb250ZW5kQ2hhbm5lbCo+IFdvcmtlckNoYW5uZWxz
OwotICAgIFdvcmtlckNoYW5uZWxzIG1faWRUb0NoYW5uZWw7Ci0gICAgdHlwZWRlZiBIYXNoTWFw
PFdvcmtlckdsb2JhbFNjb3BlUHJveHkqLCBTdHJpbmc+IERlZGljYXRlZFdvcmtlcnM7Ci0gICAg
RGVkaWNhdGVkV29ya2VycyBtX2RlZGljYXRlZFdvcmtlcnM7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JXb3JrZXJBZ2VudF9oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlclJlc291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyUmVzb3VyY2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWVhYTBkMC4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaAorKysgL2Rl
di9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvcldvcmtlclJlc291cmNlX2gK
LSNkZWZpbmUgSW5zcGVjdG9yV29ya2VyUmVzb3VyY2VfaAotCi0jaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW5zcGVjdG9yV29ya2Vy
UmVzb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZT4gewot
cHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yV29ya2VyUmVzb3VyY2U+IGNyZWF0ZShp
bnRwdHJfdCBpZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgaXNTaGFyZWRXb3JrZXIpCi0gICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZShp
ZCwgdXJsLCBpc1NoYXJlZFdvcmtlcikpOwotICAgIH0KLQotICAgIGludHB0cl90IGlkKCkgY29u
c3QgeyByZXR1cm4gbV9pZDsgfQotICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1
cm4gbV91cmw7IH0KLSAgICBib29sIGlzU2hhcmVkV29ya2VyKCkgY29uc3QgeyByZXR1cm4gbV9p
c1NoYXJlZFdvcmtlcjsgfQotcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZShp
bnRwdHJfdCBpZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgaXNTaGFyZWRXb3JrZXIpCi0gICAg
ICAgIDogbV9pZChpZCkKLSAgICAgICAgLCBtX3VybCh1cmwpCi0gICAgICAgICwgbV9pc1NoYXJl
ZFdvcmtlcihpc1NoYXJlZFdvcmtlcikKLSAgICB7Ci0gICAgfQotCi0gICAgaW50cHRyX3QgbV9p
ZDsKLSAgICBTdHJpbmcgbV91cmw7Ci0gICAgYm9vbCBtX2lzU2hhcmVkV29ya2VyOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSW5zcGVjdG9yV29ya2VyUmVzb3Vy
Y2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMu
Y3BwCmluZGV4IDE0ZGFiNzEuLjczZGZjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKQEAgLTMyLDEyICszMiw2IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJX
b3JrZXJHbG9iYWxTY29wZS5oIgotI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
aCIKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVj
dG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw3ICs1MSw2IEBAIHZvaWQgSW5zdHJ1
bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1faW5zcGVjdG9yRE9NQWdlbnQgPSBudWxscHRy
OwogICAgIG1faW5zcGVjdG9yTmV0d29ya0FnZW50ID0gbnVsbHB0cjsKICAgICBtX3BhZ2VSdW50
aW1lQWdlbnQgPSBudWxscHRyOwotICAgIG1fd29ya2VyUnVudGltZUFnZW50ID0gbnVsbHB0cjsK
ICAgICBtX2luc3BlY3RvclRpbWVsaW5lQWdlbnQgPSBudWxscHRyOwogICAgIG1fcGVyc2lzdGVu
dEluc3BlY3RvclRpbWVsaW5lQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50ID0gbnVsbHB0cjsKQEAgLTY5LDcgKzYyLDYgQEAgdm9pZCBJbnN0cnVtZW50aW5n
QWdlbnRzOjpyZXNldCgpCiAgICAgbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsK
ICAgICBtX3BhZ2VEZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQgPSBudWxscHRyOwotICAgIG1faW5zcGVjdG9yV29ya2VyQWdlbnQgPSBudWxs
cHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAppbmRleCA0MGQ0ZjEyLi5jM2RhY2YxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKQEAgLTU1
LDEzICs1NSwxMCBAQCBjbGFzcyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ7CiBjbGFzcyBJbnNwZWN0
b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXBsYXlBZ2VudDsKIGNsYXNzIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JXb3JrZXJBZ2VudDsKIGNsYXNzIFBhZ2U7
CiBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudDsKIGNsYXNzIFBhZ2VSdW50aW1lQWdlbnQ7CiBjbGFz
cyBXZWJDb25zb2xlQWdlbnQ7Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKLWNsYXNzIFdvcmtl
clJ1bnRpbWVBZ2VudDsKIAogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50cyA6IHB1YmxpYyBSZWZD
b3VudGVkPEluc3RydW1lbnRpbmdBZ2VudHM+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJ
bnN0cnVtZW50aW5nQWdlbnRzKTsKQEAgLTk5LDkgKzk2LDYgQEAgcHVibGljOgogICAgIFBhZ2VS
dW50aW1lQWdlbnQqIHBhZ2VSdW50aW1lQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VSdW50
aW1lQWdlbnQ7IH0KICAgICB2b2lkIHNldFBhZ2VSdW50aW1lQWdlbnQoUGFnZVJ1bnRpbWVBZ2Vu
dCogYWdlbnQpIHsgbV9wYWdlUnVudGltZUFnZW50ID0gYWdlbnQ7IH0KIAotICAgIFdvcmtlclJ1
bnRpbWVBZ2VudCogd29ya2VyUnVudGltZUFnZW50KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJS
dW50aW1lQWdlbnQ7IH0KLSAgICB2b2lkIHNldFdvcmtlclJ1bnRpbWVBZ2VudChXb3JrZXJSdW50
aW1lQWdlbnQqIGFnZW50KSB7IG1fd29ya2VyUnVudGltZUFnZW50ID0gYWdlbnQ7IH0KLQogICAg
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIGluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSBjb25zdCB7
IHJldHVybiBtX2luc3BlY3RvclRpbWVsaW5lQWdlbnQ7IH0KICAgICB2b2lkIHNldEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0
b3JUaW1lbGluZUFnZW50ID0gYWdlbnQ7IH0KIApAQCAtMTMxLDkgKzEyNSw2IEBAIHB1YmxpYzoK
ICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBpbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OyB9CiAgICAgdm9p
ZCBzZXRJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQq
IGFnZW50KSB7IG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCA9IGFnZW50OyB9CiAKLSAgICBJ
bnNwZWN0b3JXb3JrZXJBZ2VudCogaW5zcGVjdG9yV29ya2VyQWdlbnQoKSBjb25zdCB7IHJldHVy
biBtX2luc3BlY3RvcldvcmtlckFnZW50OyB9Ci0gICAgdm9pZCBzZXRJbnNwZWN0b3JXb3JrZXJB
Z2VudChJbnNwZWN0b3JXb3JrZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JXb3JrZXJBZ2Vu
dCA9IGFnZW50OyB9Ci0KICAgICBJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogaW5zcGVjdG9yTGF5
ZXJUcmVlQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckxheWVyVHJlZUFnZW50OyB9
CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JMYXllclRyZWVBZ2VudChJbnNwZWN0b3JMYXllclRyZWVB
Z2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JMYXllclRyZWVBZ2VudCA9IGFnZW50OyB9CiAKQEAg
LTE1MCw3ICsxNDEsNiBAQCBwcml2YXRlOgogICAgIEluc3BlY3RvckRPTUFnZW50KiBtX2luc3Bl
Y3RvckRPTUFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3Rvck5ldHdvcmtBZ2VudCogbV9p
bnNwZWN0b3JOZXR3b3JrQWdlbnQgeyBudWxscHRyIH07CiAgICAgUGFnZVJ1bnRpbWVBZ2VudCog
bV9wYWdlUnVudGltZUFnZW50IHsgbnVsbHB0ciB9OwotICAgIFdvcmtlclJ1bnRpbWVBZ2VudCog
bV93b3JrZXJSdW50aW1lQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudCogbV9pbnNwZWN0b3JUaW1lbGluZUFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQqIG1fcGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQgeyBudWxs
cHRyIH07CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KiBtX2luc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudCB7IG51bGxwdHIgfTsKQEAgLTE2Miw3ICsxNTIsNiBAQCBwcml2YXRlOgogICAgIElu
c3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudCogbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50
IHsgbnVsbHB0ciB9OwogICAgIFBhZ2VEZWJ1Z2dlckFnZW50KiBtX3BhZ2VEZWJ1Z2dlckFnZW50
IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIG1faW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudCB7IG51bGxwdHIgfTsKLSAgICBJbnNwZWN0b3JXb3JrZXJBZ2VudCog
bV9pbnNwZWN0b3JXb3JrZXJBZ2VudCB7IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29s
ZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oCmlu
ZGV4IDRjNzU4ZjAuLjhhYjFjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VD
b25zb2xlQWdlbnQuaApAQCAtNDcsNyArNDcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UGFn
ZUNvbnNvbGVBZ2VudCgpIHsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtl
ckFnZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBhZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCkgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5j
cHAKaW5kZXggZTdjNWY5My4uY2I2NGEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgdXNpbmcg
bmFtZXNwYWNlIEluc3BlY3RvcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFnZVNjcmlwdERl
YnVnU2VydmVyOjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXIoUGFnZSYgcGFnZSkKLSAgICA6IFNjcmlw
dERlYnVnU2VydmVyKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSwgZmFsc2Up
CisgICAgOiBTY3JpcHREZWJ1Z1NlcnZlcihXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNvbW1v
blZNKCkpCiAgICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI3MTk0ODYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckNvbnNvbGVBZ2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXb3JrZXJDb25zb2xlQWdlbnQuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIEluc3BlY3RvcjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1Xb3JrZXJDb25zb2xlQWdl
bnQ6OldvcmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmIGNvbnRleHQpCi0gICAg
OiBXZWJDb25zb2xlQWdlbnQoY29udGV4dCkKLXsKLX0KLQotdm9pZCBXb3JrZXJDb25zb2xlQWdl
bnQ6OmFkZEluc3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcmIGVycm9yLCBpbnQpCi17Ci0gICAgZXJy
b3IgPSBBU0NJSUxpdGVyYWwoImFkZEluc3BlY3RlZE5vZGUgaXMgbm90IHN1cHBvcnRlZCBmb3Ig
d29ya2VycyIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGIyNGU4MzAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckNvbnNvbGVBZ2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJp
YnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdv
cmtlckNvbnNvbGVBZ2VudF9oCi0jZGVmaW5lIFdvcmtlckNvbnNvbGVBZ2VudF9oCi0KLSNpbmNs
dWRlICJJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIKLSNpbmNsdWRlICJXZWJDb25zb2xlQWdlbnQu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBXb3JrZXJDb25zb2xlQWdlbnQgZmlu
YWwgOiBwdWJsaWMgV2ViQ29uc29sZUFnZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
b3JrZXJDb25zb2xlQWdlbnQpOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGlj
OgotICAgIFdvcmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0
dWFsIH5Xb3JrZXJDb25zb2xlQWdlbnQoKSB7IH0KLQotICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtl
ckFnZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAg
IHZpcnR1YWwgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCkg
b3ZlcnJpZGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhZGVm
aW5lZChXb3JrZXJDb25zb2xlQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzFiMzBmZi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5oIgotCi0jaW5jbHVkZSAiV29y
a2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIgot
I2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaD4KLSNp
bmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuaD4KLSNpbmNsdWRlIDx3dGYvTG9j
ay5oPgotI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1uYW1lc3BhY2UgewotCi1TdGF0aWNMb2NrIHdvcmtlckRlYnVnZ2VyQWdlbnRz
TXV0ZXg7Ci0KLXR5cGVkZWYgSGFzaE1hcDxXb3JrZXJUaHJlYWQqLCBXb3JrZXJEZWJ1Z2dlckFn
ZW50Kj4gV29ya2VyRGVidWdnZXJBZ2VudHM7Ci0KLVdvcmtlckRlYnVnZ2VyQWdlbnRzJiB3b3Jr
ZXJEZWJ1Z2dlckFnZW50cygpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdvcmtlckRl
YnVnZ2VyQWdlbnRzPiBhZ2VudHM7Ci0KLSAgICByZXR1cm4gYWdlbnRzOwotfQotCi1jbGFzcyBS
dW5JbnNwZWN0b3JDb21tYW5kc1Rhc2sgOiBwdWJsaWMgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6
OlRhc2sgewotcHVibGljOgotICAgIFJ1bkluc3BlY3RvckNvbW1hbmRzVGFzayhXb3JrZXJUaHJl
YWQqIHRocmVhZCwgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2JhbFNjb3BlKQotICAgICAg
ICA6IG1fdGhyZWFkKHRocmVhZCkKLSAgICAgICAgLCBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtl
ckdsb2JhbFNjb3BlKSB7IH0KLSAgICB2aXJ0dWFsIH5SdW5JbnNwZWN0b3JDb21tYW5kc1Rhc2so
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcnVuKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIC8v
IFByb2Nlc3MgYWxsIHF1ZXVlZCBkZWJ1Z2dlciBjb21tYW5kcy4gSXQgaXMgc2FmZSB0byB1c2Ug
bV93b3JrZXJHbG9iYWxTY29wZSBoZXJlCi0gICAgICAgIC8vIGJlY2F1c2UgaXQgaXMgYWxpdmUg
aWYgUnVuV29ya2VyTG9vcCBpcyBub3QgdGVybWluYXRlZCwgb3RoZXJ3aXNlIGl0IHdpbGwKLSAg
ICAgICAgLy8ganVzdCBiZSBpZ25vcmVkLiBXb3JrZXJUaHJlYWQgaXMgY2VydGFpbmx5IGFsaXZl
IGlmIHRoaXMgdGFzayBpcyBiZWluZyBleGVjdXRlZC4KLSAgICAgICAgd2hpbGUgKE1lc3NhZ2VR
dWV1ZU1lc3NhZ2VSZWNlaXZlZCA9PSBtX3RocmVhZC0+cnVuTG9vcCgpLnJ1bkluTW9kZShtX3dv
cmtlckdsb2JhbFNjb3BlLCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlLCBX
b3JrZXJSdW5Mb29wOjpEb250V2FpdEZvck1lc3NhZ2UpKSB7IH0KLSAgICB9Ci0KLXByaXZhdGU6
Ci0gICAgV29ya2VyVGhyZWFkKiBtX3RocmVhZDsKLSAgICBXb3JrZXJHbG9iYWxTY29wZSogbV93
b3JrZXJHbG9iYWxTY29wZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlCi0KLWNvbnN0IGNoYXIqIFdv
cmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUgPSAiZGVidWdnZXIiOwotCi1Xb3Jr
ZXJEZWJ1Z2dlckFnZW50OjpXb3JrZXJEZWJ1Z2dlckFnZW50KFdvcmtlckFnZW50Q29udGV4dCYg
Y29udGV4dCkKLSAgICA6IFdlYkRlYnVnZ2VyQWdlbnQoY29udGV4dCkKLSAgICAsIG1faW5zcGVj
dGVkV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dC53b3JrZXJHbG9iYWxTY29wZSkKLXsKLSAgICBz
dGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh3b3JrZXJEZWJ1Z2dlckFnZW50c011dGV4
KTsKLSAgICB3b3JrZXJEZWJ1Z2dlckFnZW50cygpLnNldCgmY29udGV4dC53b3JrZXJHbG9iYWxT
Y29wZS50aHJlYWQoKSwgdGhpcyk7Ci19Ci0KLVdvcmtlckRlYnVnZ2VyQWdlbnQ6On5Xb3JrZXJE
ZWJ1Z2dlckFnZW50KCkKLXsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh3
b3JrZXJEZWJ1Z2dlckFnZW50c011dGV4KTsKLQotICAgIEFTU0VSVCh3b3JrZXJEZWJ1Z2dlckFn
ZW50cygpLmNvbnRhaW5zKCZtX2luc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpKSk7
Ci0gICAgd29ya2VyRGVidWdnZXJBZ2VudHMoKS5yZW1vdmUoJm1faW5zcGVjdGVkV29ya2VyR2xv
YmFsU2NvcGUudGhyZWFkKCkpOwotfQotCi12b2lkIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmludGVy
cnVwdEFuZERpc3BhdGNoSW5zcGVjdG9yQ29tbWFuZHMoV29ya2VyVGhyZWFkKiB0aHJlYWQpCi17
Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sod29ya2VyRGVidWdnZXJBZ2Vu
dHNNdXRleCk7Ci0KLSAgICBpZiAoV29ya2VyRGVidWdnZXJBZ2VudCogYWdlbnQgPSB3b3JrZXJE
ZWJ1Z2dlckFnZW50cygpLmdldCh0aHJlYWQpKSB7Ci0gICAgICAgIFdvcmtlclNjcmlwdERlYnVn
U2VydmVyJiB3b3JrZXJTY3JpcHREZWJ1Z1NlcnZlciA9IHN0YXRpY19jYXN0PFdvcmtlclNjcmlw
dERlYnVnU2VydmVyJj4oYWdlbnQtPnNjcmlwdERlYnVnU2VydmVyKCkpOwotICAgICAgICB3b3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlci5pbnRlcnJ1cHRBbmRSdW5UYXNrKHN0ZDo6bWFrZV91bmlxdWU8
UnVuSW5zcGVjdG9yQ29tbWFuZHNUYXNrPih0aHJlYWQsICZhZ2VudC0+bV9pbnNwZWN0ZWRXb3Jr
ZXJHbG9iYWxTY29wZSkpOwotICAgIH0KLX0KLQotdm9pZCBXb3JrZXJEZWJ1Z2dlckFnZW50Ojpi
cmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQotewotICAgIG1faW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGUuYWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6TG9nLCBtZXNzYWdlKTsKLX0KLQotSW5q
ZWN0ZWRTY3JpcHQgV29ya2VyRGVidWdnZXJBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVy
cm9yU3RyaW5nJiBlcnJvciwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCi17Ci0gICAg
aWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkgewotICAgICAgICBlcnJvciA9IEFTQ0lJTGl0ZXJhbCgi
RXhlY3V0aW9uIGNvbnRleHQgaWQgaXMgbm90IHN1cHBvcnRlZCBmb3Igd29ya2VycyBhcyB0aGVy
ZSBpcyBvbmx5IG9uZSBleGVjdXRpb24gY29udGV4dC4iKTsKLSAgICAgICAgcmV0dXJuIEluamVj
dGVkU2NyaXB0KCk7Ci0gICAgfQotCi0gICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlID0g
ZXhlY1N0YXRlRnJvbVdvcmtlckdsb2JhbFNjb3BlKCZtX2luc3BlY3RlZFdvcmtlckdsb2JhbFNj
b3BlKTsKLSAgICByZXR1cm4gaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCkuaW5qZWN0ZWRTY3JpcHRG
b3Ioc2NyaXB0U3RhdGUpOwotfQotCi12b2lkIFdvcmtlckRlYnVnZ2VyQWdlbnQ6Om11dGVDb25z
b2xlKCkKLXsKLSAgICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vy
cy4KLX0KLQotdm9pZCBXb3JrZXJEZWJ1Z2dlckFnZW50Ojp1bm11dGVDb25zb2xlKCkKLXsKLSAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1NjY2ZWYuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXb3JrZXJEZWJ1Z2dlckFnZW50
X2gKLSNkZWZpbmUgV29ya2VyRGVidWdnZXJBZ2VudF9oCi0KLSNpbmNsdWRlICJXZWJEZWJ1Z2dl
ckFnZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgV29ya2VyR2xvYmFsU2Nv
cGU7Ci1jbGFzcyBXb3JrZXJUaHJlYWQ7Ci0KLWNsYXNzIFdvcmtlckRlYnVnZ2VyQWdlbnQgZmlu
YWwgOiBwdWJsaWMgV2ViRGVidWdnZXJBZ2VudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V29ya2VyRGVidWdnZXJBZ2VudCk7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJs
aWM6Ci0gICAgV29ya2VyRGVidWdnZXJBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5Xb3JrZXJEZWJ1Z2dlckFnZW50KCk7Ci0KLSAgICBzdGF0aWMgY29uc3QgY2hhciog
ZGVidWdnZXJUYXNrTW9kZTsKLSAgICBzdGF0aWMgdm9pZCBpbnRlcnJ1cHRBbmREaXNwYXRjaElu
c3BlY3RvckNvbW1hbmRzKFdvcmtlclRocmVhZCopOwotCi0gICAgdmlydHVhbCBJbnNwZWN0b3I6
OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0
IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbXV0
ZUNvbnNvbGUoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92
ZXJyaWRlOwotCi0gICAgdmlydHVhbCB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBXb3JrZXJH
bG9iYWxTY29wZSYgbV9pbnNwZWN0ZWRXb3JrZXJHbG9iYWxTY29wZTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vICFkZWZpbmVkKFdvcmtlckRlYnVnZ2VyQWdlbnRf
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdhOGEyNi4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgotCi0jaW5jbHVkZSAiQ29t
bWFuZExpbmVBUElIb3N0LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgi
Ci0jaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgotI2luY2x1ZGUgIkluc3RydW1l
bnRpbmdBZ2VudHMuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKLSNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJXZWJJbmplY3RlZFNjcmlwdEhvc3Qu
aCIKLSNpbmNsdWRlICJXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKLSNpbmNsdWRlICJXb3Jr
ZXJDb25zb2xlQWdlbnQuaCIKLSNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCi0jaW5j
bHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJSZXBvcnRpbmdQcm94
eS5oIgotI2luY2x1ZGUgIldvcmtlclJ1bnRpbWVBZ2VudC5oIgotI2luY2x1ZGUgIldvcmtlclRo
cmVhZC5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5o
PgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KLSNpbmNs
dWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgotI2luY2x1ZGUg
PGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgotI2luY2x1ZGUgPHd0Zi9TdG9w
d2F0Y2guaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLXVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0
b3I7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIHsKLQotY2xhc3MgUGFnZUlu
c3BlY3RvclByb3h5IDogcHVibGljIEZyb250ZW5kQ2hhbm5lbCB7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgUGFnZUluc3BlY3RvclByb3h5KFdv
cmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSkKLSAgICAgICAgOiBtX3dvcmtlckds
b2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSB7IH0KLSAgICB2aXJ0dWFsIH5QYWdlSW5zcGVj
dG9yUHJveHkoKSB7IH0KLQotICAgIHZpcnR1YWwgQ29ubmVjdGlvblR5cGUgY29ubmVjdGlvblR5
cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb25uZWN0aW9uVHlwZTo6TG9jYWw7IH0KLXBy
aXZhdGU6Ci0gICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3Bl
LnRocmVhZCgpLndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0
b3IobWVzc2FnZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBXb3JrZXJHbG9i
YWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsKLX07Ci0KLX0KLQotV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSYg
d29ya2VyR2xvYmFsU2NvcGUpCi0gICAgOiBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2Jh
bFNjb3BlKQotICAgICwgbV9pbnN0cnVtZW50aW5nQWdlbnRzKEluc3RydW1lbnRpbmdBZ2VudHM6
OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcj4oKnRoaXMsIFdlYkluamVjdGVkU2NyaXB0
SG9zdDo6Y3JlYXRlKCkpKQotICAgICwgbV9leGVjdXRpb25TdG9wd2F0Y2goU3RvcHdhdGNoOjpj
cmVhdGUoKSkKLSAgICAsIG1fc2NyaXB0RGVidWdTZXJ2ZXIod29ya2VyR2xvYmFsU2NvcGUsIFdv
cmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpCi0gICAgLCBtX2Zyb250ZW5kUm91
dGVyKEZyb250ZW5kUm91dGVyOjpjcmVhdGUoKSkKLSAgICAsIG1fYmFja2VuZERpc3BhdGNoZXIo
QmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShtX2Zyb250ZW5kUm91dGVyLmNvcHlSZWYoKSkpCi17
Ci0gICAgQWdlbnRDb250ZXh0IGJhc2VDb250ZXh0ID0gewotICAgICAgICAqdGhpcywKLSAgICAg
ICAgKm1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLAotICAgICAgICBtX2Zyb250ZW5kUm91dGVyLmdl
dCgpLAotICAgICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpCi0gICAgfTsKLQotICAgIFdl
YkFnZW50Q29udGV4dCB3ZWJDb250ZXh0ID0gewotICAgICAgICBiYXNlQ29udGV4dCwKLSAgICAg
ICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpCi0gICAgfTsKLQotICAgIFdvcmtlckFnZW50
Q29udGV4dCB3b3JrZXJDb250ZXh0ID0gewotICAgICAgICB3ZWJDb250ZXh0LAotICAgICAgICB3
b3JrZXJHbG9iYWxTY29wZSwKLSAgICB9OwotCi0gICAgYXV0byBydW50aW1lQWdlbnQgPSBzdGQ6
Om1ha2VfdW5pcXVlPFdvcmtlclJ1bnRpbWVBZ2VudD4od29ya2VyQ29udGV4dCk7Ci0gICAgbV9y
dW50aW1lQWdlbnQgPSBydW50aW1lQWdlbnQuZ2V0KCk7Ci0gICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5zZXRXb3JrZXJSdW50aW1lQWdlbnQobV9ydW50aW1lQWdlbnQpOwotICAgIG1fYWdlbnRz
LmFwcGVuZChXVEY6Om1vdmUocnVudGltZUFnZW50KSk7Ci0KLSAgICBhdXRvIGNvbnNvbGVBZ2Vu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyQ29uc29sZUFnZW50Pih3b3JrZXJDb250ZXh0KTsK
LSAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFdlYkNvbnNvbGVBZ2VudChjb25zb2xlQWdl
bnQuZ2V0KCkpOwotCi0gICAgYXV0byBkZWJ1Z2dlckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxX
b3JrZXJEZWJ1Z2dlckFnZW50Pih3b3JrZXJDb250ZXh0KTsKLSAgICBtX2FnZW50cy5hcHBlbmQo
V1RGOjptb3ZlKGRlYnVnZ2VyQWdlbnQpKTsKLQotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1h
a2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KHdvcmtlckNvbnRleHQsIG51bGxwdHIs
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvcikpOwotICAgIG1fYWdlbnRz
LmFwcGVuZChXVEY6Om1vdmUoY29uc29sZUFnZW50KSk7Ci0KLSAgICBpZiAoQ29tbWFuZExpbmVB
UElIb3N0KiBjb21tYW5kTGluZUFQSUhvc3QgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+Y29t
bWFuZExpbmVBUElIb3N0KCkpIHsKLSAgICAgICAgY29tbWFuZExpbmVBUElIb3N0LT5pbml0KG51
bGxwdHIKLSAgICAgICAgICAgICwgbnVsbHB0cgotICAgICAgICAgICAgLCBudWxscHRyCi0gICAg
ICAgICAgICAsIG51bGxwdHIKLSAgICAgICAgICAgICwgbnVsbHB0cgotICAgICAgICApOwotICAg
IH0KLX0KLSAKLVdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6On5Xb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyKCkKLXsKLSAgICBBU1NFUlQoIW1fZnJvbnRlbmRSb3V0ZXItPmhhc0Zyb250ZW5kcygp
KTsKLSAgICBBU1NFUlQoIW1fZm9yd2FyZGluZ0NoYW5uZWwpOwotCi0gICAgbV9pbnN0cnVtZW50
aW5nQWdlbnRzLT5yZXNldCgpOwotfQotCi12b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6
OmNvbm5lY3RGcm9udGVuZCgpCi17Ci0gICAgQVNTRVJUKCFtX2Zyb250ZW5kUm91dGVyLT5oYXNG
cm9udGVuZHMoKSk7Ci0gICAgQVNTRVJUKCFtX2ZvcndhcmRpbmdDaGFubmVsKTsKLQotICAgIG1f
Zm9yd2FyZGluZ0NoYW5uZWwgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VJbnNwZWN0b3JQcm94eT4o
bV93b3JrZXJHbG9iYWxTY29wZSk7Ci0gICAgbV9mcm9udGVuZFJvdXRlci0+Y29ubmVjdEZyb250
ZW5kKG1fZm9yd2FyZGluZ0NoYW5uZWwuZ2V0KCkpOwotICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZCgmbV9mcm9udGVuZFJvdXRlci5nZXQoKSwgJm1fYmFja2VuZERpc3Bh
dGNoZXIuZ2V0KCkpOwotfQotCi12b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nv
bm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQotewotICAg
IEFTU0VSVChtX2Zyb250ZW5kUm91dGVyLT5oYXNGcm9udGVuZHMoKSk7Ci0gICAgQVNTRVJUKG1f
Zm9yd2FyZGluZ0NoYW5uZWwpOwotCi0gICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQocmVhc29uKTsKLSAgICBtX2Zyb250ZW5kUm91dGVyLT5kaXNjb25uZWN0RnJvbnRl
bmQobV9mb3J3YXJkaW5nQ2hhbm5lbC5nZXQoKSk7Ci0gICAgbV9mb3J3YXJkaW5nQ2hhbm5lbCA9
IG51bGxwdHI7Ci19Ci0KLXZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzcGF0Y2hN
ZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBtX2JhY2tl
bmREaXNwYXRjaGVyLT5kaXNwYXRjaChtZXNzYWdlKTsKLX0KLQotdm9pZCBXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyOjpyZXN1bWUoKQotewotICAgIEVycm9yU3RyaW5nIHVudXNlZDsKLSAgICBt
X3J1bnRpbWVBZ2VudC0+cnVuKHVudXNlZCk7Ci19Ci0KLUluc3BlY3RvckZ1bmN0aW9uQ2FsbEhh
bmRsZXIgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZnVuY3Rpb25DYWxsSGFuZGxlcigpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhy
ZWFkOwotfQotCi1JbnNwZWN0b3JFdmFsdWF0ZUhhbmRsZXIgV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6ZXZhbHVhdGVIYW5kbGVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6ZXZh
bHVhdGVIYW5kbGVyRnJvbUFueVRocmVhZDsKLX0KLQotdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyOjp3aWxsQ2FsbEluamVjdGVkU2NyaXB0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqIHNj
cmlwdFN0YXRlLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQotewot
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShzY3JpcHRTdGF0ZSk7Ci0gICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbENhbGxGdW5jdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzY3JpcHROYW1lLCBz
Y3JpcHRMaW5lKTsKLSAgICBtX2luamVjdGVkU2NyaXB0SW5zdHJ1bWVudGF0aW9uQ29va2llcy5h
cHBlbmQoY29va2llKTsKLX0KLQotdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRD
YWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUpCi17
Ci0gICAgQVNTRVJUKCFtX2luamVjdGVkU2NyaXB0SW5zdHJ1bWVudGF0aW9uQ29va2llcy5pc0Vt
cHR5KCkpOwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShzY3JpcHRTdGF0ZSk7Ci0g
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IG1faW5qZWN0ZWRTY3Jp
cHRJbnN0cnVtZW50YXRpb25Db29raWVzLnRha2VMYXN0KCk7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oY29va2llLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KTsKLX0KLQotUmVmPFN0b3B3YXRjaD4gV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZXhlY3V0
aW9uU3RvcHdhdGNoKCkKLXsKLSAgICByZXR1cm4gbV9leGVjdXRpb25TdG9wd2F0Y2guY29weVJl
ZigpOwotfQotCi1Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciYgV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6c2NyaXB0RGVidWdTZXJ2ZXIoKQotewotICAgIHJldHVybiBtX3NjcmlwdERlYnVnU2Vy
dmVyOwotfQotCi1WTSYgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6dm0oKQotewotICAgIHJl
dHVybiBtX3dvcmtlckdsb2JhbFNjb3BlLnZtKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjUxYjQyLi4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcl9oCi0jZGVmaW5lIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXJfaAotCi0jaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9y
V2ViQWdlbnRCYXNlLmgiCi0jaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKLSNp
bmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oPgotI2luY2x1ZGUgPGlu
c3BlY3Rvci9JbnNwZWN0b3JFbnZpcm9ubWVudC5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgot
Ci1uYW1lc3BhY2UgSW5zcGVjdG9yIHsKLWNsYXNzIEZyb250ZW5kQ2hhbm5lbDsKLWNsYXNzIEZy
b250ZW5kUm91dGVyOwotfTsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb247Ci1jbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwotY2xhc3MgV2Vi
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwotY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7Ci1jbGFzcyBX
b3JrZXJSdW50aW1lQWdlbnQ7Ci0KLWNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIgZmlu
YWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZpcm9ubWVudCB7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik7Ci0gICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSYpOwotICAgIHZpcnR1YWwgfldvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIoKTsKLQotICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKCk7Ci0gICAgdm9pZCBk
aXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKLSAgICB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHJl
c3VtZSgpOwotCi0gICAgdmlydHVhbCBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGNhbkFjY2Vzc0lu
c3BlY3RlZFNjcmlwdFN0YXRlKEpTQzo6RXhlY1N0YXRlKikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbnNwZWN0b3JGdW5jdGlvbkNhbGxI
YW5kbGVyIGZ1bmN0aW9uQ2FsbEhhbmRsZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IEluc3BlY3Rvcjo6SW5zcGVjdG9yRXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRlSGFuZGxlcigpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FsbEluamVjdGVkU2NyaXB0RnVu
Y3Rpb24oSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FsbEluamVjdGVkU2NyaXB0
RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZnJv
bnRlbmRJbml0aWFsaXplZCgpIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwgUmVmPFdURjo6U3Rv
cHdhdGNoPiBleGVjdXRpb25TdG9wd2F0Y2goKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFdvcmtl
clNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgSlNDOjpWTSYgdm0oKSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xh
c3MgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOwotCi0gICAgV29ya2VyR2xvYmFsU2NvcGUmIG1f
d29ya2VyR2xvYmFsU2NvcGU7Ci0gICAgUmVmPEluc3RydW1lbnRpbmdBZ2VudHM+IG1faW5zdHJ1
bWVudGluZ0FnZW50czsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyPiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKLSAgICBXb3JrZXJSdW50aW1lQWdlbnQqIG1f
cnVudGltZUFnZW50IHsgbnVsbHB0ciB9OwotICAgIEluc3BlY3Rvcjo6QWdlbnRSZWdpc3RyeSBt
X2FnZW50czsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWw+
IG1fZm9yd2FyZGluZ0NoYW5uZWw7Ci0gICAgUmVmPFdURjo6U3RvcHdhdGNoPiBtX2V4ZWN1dGlv
blN0b3B3YXRjaDsKLSAgICBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciBtX3NjcmlwdERlYnVnU2Vy
dmVyOwotICAgIFJlZjxJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyPiBtX2Zyb250ZW5kUm91dGVy
OwotICAgIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRj
aGVyOwotICAgIFZlY3RvcjxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUsIDI+IG1faW5q
ZWN0ZWRTY3JpcHRJbnN0cnVtZW50YXRpb25Db29raWVzOwotfTsKLQotfQotCi0jZW5kaWYgLy8g
IWRlZmluZWQoV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTI4NzljNS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VyUnVudGltZUFnZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBk
aXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXb3JrZXJSdW50aW1lQWdlbnQuaCIKLQotI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKLSNpbmNs
dWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKLSNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgotI2luY2x1
ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuaCIKLSNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5o
IgotI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKLSNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
LSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaD4KLSNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV29ya2VyUnVudGltZUFnZW50OjpXb3JrZXJSdW50
aW1lQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBjb250ZXh0KQotICAgIDogSW5zcGVjdG9yUnVu
dGltZUFnZW50KGNvbnRleHQpCi0gICAgLCBtX2JhY2tlbmREaXNwYXRjaGVyKEluc3BlY3Rvcjo6
UnVudGltZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoY29udGV4dC5iYWNrZW5kRGlzcGF0Y2hl
ciwgdGhpcykpCi0gICAgLCBtX3dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQud29ya2VyR2xvYmFs
U2NvcGUpCi17Ci19Ci0KLXZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2Vu
ZERpc3BhdGNoZXIqKQotewotfQotCi12b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uIHJlYXNvbikK
LXsKLSAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKHJlYXNvbik7Ci19Ci0KLUluamVjdGVkU2NyaXB0IFdvcmtlclJ1bnRpbWVBZ2VudDo6aW5q
ZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiBlcnJvciwgY29uc3QgaW50KiBleGVjdXRp
b25Db250ZXh0SWQpCi17Ci0gICAgaWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkgewotICAgICAgICBl
cnJvciA9IEFTQ0lJTGl0ZXJhbCgiRXhlY3V0aW9uIGNvbnRleHQgaWQgaXMgbm90IHN1cHBvcnRl
ZCBmb3Igd29ya2VycyBhcyB0aGVyZSBpcyBvbmx5IG9uZSBleGVjdXRpb24gY29udGV4dC4iKTsK
LSAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0KCk7Ci0gICAgfQotCi0gICAgSlNDOjpFeGVj
U3RhdGUqIHNjcmlwdFN0YXRlID0gZXhlY1N0YXRlRnJvbVdvcmtlckdsb2JhbFNjb3BlKCZtX3dv
cmtlckdsb2JhbFNjb3BlKTsKLSAgICByZXR1cm4gaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCkuaW5q
ZWN0ZWRTY3JpcHRGb3Ioc2NyaXB0U3RhdGUpOwotfQotCi12b2lkIFdvcmtlclJ1bnRpbWVBZ2Vu
dDo6bXV0ZUNvbnNvbGUoKQotewotICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gbXV0ZSBjb25zb2xl
IGZvciB3b3JrZXJzLgotfQotCi12b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29uc29s
ZSgpCi17Ci0gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdvcmtlcnMu
Ci19Ci0KLXZvaWQgV29ya2VyUnVudGltZUFnZW50OjpydW4oRXJyb3JTdHJpbmcmKQotewotICAg
IG1fcGF1c2VkID0gZmFsc2U7Ci19Ci0KLXZvaWQgV29ya2VyUnVudGltZUFnZW50OjpwYXVzZVdv
cmtlckdsb2JhbFNjb3BlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQotewotICAgIG1fcGF1
c2VkID0gdHJ1ZTsKLSAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdDsKLSAgICBkbyB7
Ci0gICAgICAgIHJlc3VsdCA9IGNvbnRleHQtPnRocmVhZCgpLnJ1bkxvb3AoKS5ydW5Jbk1vZGUo
Y29udGV4dCwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7Ci0gICAgLy8g
S2VlcCB3YWl0aW5nIHVudGlsIGV4ZWN1dGlvbiBpcyByZXN1bWVkLgotICAgIH0gd2hpbGUgKHJl
c3VsdCA9PSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQgJiYgbV9wYXVzZWQpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
UnVudGltZUFnZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjNGRlOTIuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5o
CisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdvcmtlclJ1bnRpbWVBZ2VudF9o
Ci0jZGVmaW5lIFdvcmtlclJ1bnRpbWVBZ2VudF9oCi0KLSNpbmNsdWRlICJJbnNwZWN0b3JXZWJB
Z2VudEJhc2UuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFdvcmtlckdsb2JhbFNjb3Bl
OwotdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7Ci0KLWNsYXNzIFdvcmtlclJ1bnRpbWVBZ2Vu
dCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCB7Ci1wdWJs
aWM6Ci0gICAgV29ya2VyUnVudGltZUFnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOwotICAgIHZp
cnR1YWwgfldvcmtlclJ1bnRpbWVBZ2VudCgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVj
dG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOwotCi0gICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyYpIG92ZXJyaWRlOwot
Ci0gICAgdm9pZCBwYXVzZVdvcmtlckdsb2JhbFNjb3BlKFdvcmtlckdsb2JhbFNjb3BlKik7Ci0K
LXByaXZhdGU6Ci0gICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVk
U2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElk
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOwotCi0gICAgUmVmUHRyPElu
c3BlY3Rvcjo6UnVudGltZUJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwot
ICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3dvcmtlckdsb2JhbFNjb3BlOwotCi0gICAgYm9vbCBt
X3BhdXNlZCB7IGZhbHNlIH07Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JQYWdlckFnZW50X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAKaW5kZXggZGUzZDRlMS4uY2UxMmI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNw
cApAQCAtMTYxLDggKzE2MSw2IEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAg
ICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwg
ZmFsc2UsIHRydWUpKTsKICAgICBlbHNlIHsKICAgICAgICAgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
IHN0YXJ0TW9kZSA9IERvbnRQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25TdGFydDsKLSAgICAgICAg
aWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJP
blN0YXJ0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgICAgICBzdGFydE1vZGUg
PSBQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25TdGFydDsKICAgICAgICAgbV9jb250ZXh0UHJveHkt
PnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBtX3Njcmlw
dExvYWRlci0+c2NyaXB0KCksIHN0YXJ0TW9kZSk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3Njcmlw
dExvYWRlci0+aWRlbnRpZmllcigpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggOTA4
ZDFlMy4uNDJmMjEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luUG9saWN5LmgiCiAjaW5jbHVkZSAiVVJMLmgiCi0jaW5j
bHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIldvcmtlckxvY2F0
aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiV29ya2VyT2Jq
ZWN0UHJveHkuaCIKQEAgLTY5LDcgKzY4LDYgQEAgV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV28KICAg
ICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKICAgICAsIG1fc2NyaXB0KHN0ZDo6bWFrZV91bmlx
dWU8V29ya2VyU2NyaXB0Q29udHJvbGxlcj4odGhpcykpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQp
Ci0gICAgLCBtX3dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxXb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcykpCiAgICAgLCBtX2Nsb3NpbmcoZmFsc2UpCiAg
ICAgLCBtX2V2ZW50UXVldWUoKnRoaXMpCiAgICAgLCBtX3RvcE9yaWdpbih0b3BPcmlnaW4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNWZhNWU4Ny4u
MmFjZWZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApA
QCAtNDYsNyArNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBCbG9iOwog
ICAgIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKLSAgICBjbGFzcyBXb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyOwogICAgIGNsYXNzIFdvcmtlckxvY2F0aW9uOwogICAgIGNsYXNzIFdvcmtlck5hdmln
YXRvcjsKICAgICBjbGFzcyBXb3JrZXJUaHJlYWQ7CkBAIC05NSw4ICs5NCw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNKU0V4ZWN1dGlvbkZvcmJpZGRlbigp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgICAgIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXImIHdv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIoKSB7IHJldHVybiAqbV93b3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyOyB9Ci0KICAgICAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCBmb3IgR0MgbWFy
a2luZy4gU2VlIEpTV29ya2VyR2xvYmFsU2NvcGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RW
aXNpdG9yJikgaW4KICAgICAgICAgLy8gSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAuCiAg
ICAgICAgIFdvcmtlck5hdmlnYXRvciogb3B0aW9uYWxOYXZpZ2F0b3IoKSBjb25zdCB7IHJldHVy
biBtX25hdmlnYXRvci5nZXQoKTsgfQpAQCAtMTYxLDcgKzE1OCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlclNjcmlwdENvbnRyb2xsZXI+IG1f
c2NyaXB0OwogICAgICAgICBXb3JrZXJUaHJlYWQmIG1fdGhyZWFkOwogCi0gICAgICAgIGNvbnN0
IHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyPiBtX3dvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXI7CiAgICAgICAgIGJvb2wgbV9jbG9zaW5nOwogCiAgICAgICAgIEhhc2hT
ZXQ8T2JzZXJ2ZXIqPiBtX3dvcmtlck9ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNzlmNjdhNC4uZjVmYmY0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAg
LTU5LDE1ICs1OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IHdvcmtlck9iamVjdERlc3Ryb3llZCgpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpID0gMDsKLQotICAgICAgICBjbGFz
cyBQYWdlSW5zcGVjdG9yIHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgdmlydHVhbCB+
UGFnZUluc3BlY3RvcigpIHsgfQotICAgICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTWVz
c2FnZUZyb21Xb3JrZXIoY29uc3QgU3RyaW5nJikgPSAwOwotICAgICAgICB9OwotICAgICAgICB2
aXJ0dWFsIHZvaWQgY29ubmVjdFRvSW5zcGVjdG9yKFBhZ2VJbnNwZWN0b3IqKSB7IH0KLSAgICAg
ICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKCkgeyB9Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBzZW5kTWVzc2FnZVRvSW5zcGVjdG9yKGNvbnN0IFN0cmluZyYpIHsgfQogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggYmQ3NGVhYy4uZjZjZjEzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTM3
LDE0ICszNywxMCBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV29y
a2VyLmgiCi0jaW5jbHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5oIgotI2luY2x1ZGUgIldvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdl
bnRCYXNlLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
QEAgLTYzLDcgKzU5LDYgQEAgV29ya2VyTWVzc2FnaW5nUHJveHk6Oldvcmtlck1lc3NhZ2luZ1By
b3h5KFdvcmtlciogd29ya2VyT2JqZWN0KQogICAgICwgbV91bmNvbmZpcm1lZE1lc3NhZ2VDb3Vu
dCgwKQogICAgICwgbV93b3JrZXJUaHJlYWRIYWRQZW5kaW5nQWN0aXZpdHkoZmFsc2UpCiAgICAg
LCBtX2Fza2VkVG9UZXJtaW5hdGUoZmFsc2UpCi0gICAgLCBtX3BhZ2VJbnNwZWN0b3IobnVsbHB0
cikKIHsKICAgICBBU1NFUlQobV93b3JrZXJPYmplY3QpOwogICAgIEFTU0VSVCgoaXM8RG9jdW1l
bnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGlzTWFpblRocmVhZCgpKQpAQCAtODUs
NyArODAsNiBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogICAgIFJlZlB0cjxEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNjcmlw
dFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9j
dW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXIoKSwgZG9jdW1l
bnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXJUeXBlKCksIGRvY3Vt
ZW50LnRvcE9yaWdpbigpKTsKICAgICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVhZCk7CiAgICAg
dGhyZWFkLT5zdGFydCgpOwotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRX
b3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCksIHRoaXMsIHNj
cmlwdFVSTCk7CiB9CiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9X
b3JrZXJPYmplY3QoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMpCkBAIC0yMTEs
MzggKzIwNSw2IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6Om5vdGlmeU5ldHdvcmtTdGF0
ZUNoYW5nZShib29sIGlzT25saW5lKQogICAgIH0pOwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5Ojpjb25uZWN0VG9JbnNwZWN0b3IoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6UGFnZUlu
c3BlY3RvciogcGFnZUluc3BlY3RvcikKLXsKLSAgICBpZiAobV9hc2tlZFRvVGVybWluYXRlKQot
ICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKCFtX3BhZ2VJbnNwZWN0b3IpOwotICAgIG1fcGFn
ZUluc3BlY3RvciA9IHBhZ2VJbnNwZWN0b3I7Ci0gICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3Ao
KS5wb3N0VGFza0Zvck1vZGUoW10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsK
LSAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLndvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXIoKS5jb25uZWN0RnJvbnRlbmQoKTsKLSAgICB9LCBXb3JrZXJEZWJ1Z2dl
ckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKTsKLX0KLQotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6ZGlzY29ubmVjdEZyb21JbnNwZWN0b3IoKQotewotICAgIG1fcGFnZUluc3BlY3RvciA9IG51
bGxwdHI7Ci0gICAgaWYgKG1fYXNrZWRUb1Rlcm1pbmF0ZSkKLSAgICAgICAgcmV0dXJuOwotICAg
IG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtdIChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNj
b3BlPihjb250ZXh0KS53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250
ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKLSAg
ICB9LCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKTsKLX0KLQotdm9pZCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6c2VuZE1lc3NhZ2VUb0luc3BlY3Rvcihjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCi17Ci0gICAgaWYgKG1fYXNrZWRUb1Rlcm1pbmF0ZSkKLSAgICAgICAgcmV0dXJu
OwotICAgIFN0cmluZ0NhcHR1cmUgY2FwdHVyZWRNZXNzYWdlKG1lc3NhZ2UpOwotICAgIG1fd29y
a2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYXB0dXJlZE1lc3NhZ2VdIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAgIGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPihjb250ZXh0KS53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0
Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNhcHR1cmVkTWVzc2FnZS5zdHJpbmcoKSk7Ci0gICAgfSwg
V29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7Ci0gICAgV29ya2VyRGVidWdn
ZXJBZ2VudDo6aW50ZXJydXB0QW5kRGlzcGF0Y2hJbnNwZWN0b3JDb21tYW5kcyhtX3dvcmtlclRo
cmVhZC5nZXQoKSk7Ci19Ci0KIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6Ondvcmtlckdsb2Jh
bFNjb3BlRGVzdHJveWVkKCkKIHsKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RU
YXNrKFt0aGlzXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKQEAgLTI2Niw4ICsyMjgsNiBA
QCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJHbG9iYWxTY29wZURlc3Ryb3llZElu
dGVybmFsKCkKICAgICBtX2Fza2VkVG9UZXJtaW5hdGUgPSB0cnVlOwogICAgIG1fd29ya2VyVGhy
ZWFkID0gbnVsbHB0cjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xv
YmFsU2NvcGVUZXJtaW5hdGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhpcyk7
Ci0KICAgICBpZiAobV9tYXlCZURlc3Ryb3llZCkKICAgICAgICAgZGVsZXRlIHRoaXM7CiB9CkBA
IC0yODAsMTcgKzI0MCw2IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnRlcm1pbmF0ZVdv
cmtlckdsb2JhbFNjb3BlKCkKIAogICAgIGlmIChtX3dvcmtlclRocmVhZCkKICAgICAgICAgbV93
b3JrZXJUaHJlYWQtPnN0b3AoKTsKLQotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29y
a2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwg
dGhpcyk7Ci19Ci0KLXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9QYWdl
SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBTdHJpbmdDYXB0dXJlIGNh
cHR1cmVkTWVzc2FnZShtZXNzYWdlKTsKLSAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBv
c3RUYXNrKFt0aGlzLCBjYXB0dXJlZE1lc3NhZ2VdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jikg
ewotICAgICAgICBpZiAobV9wYWdlSW5zcGVjdG9yKQotICAgICAgICAgICAgbV9wYWdlSW5zcGVj
dG9yLT5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKGNhcHR1cmVkTWVzc2FnZS5zdHJpbmcoKSk7
Ci0gICAgfSk7CiB9CiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OmNvbmZpcm1NZXNzYWdl
RnJvbVdvcmtlck9iamVjdChib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCA5NTk0MWM2Li5lYjdhZjU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBA
IC01OCwxNiArNTgsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkgb3ZlcnJpZGU7CiAKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3RUb0luc3BlY3RvcihXb3JrZXJHbG9iYWxTY29wZVBy
b3h5OjpQYWdlSW5zcGVjdG9yKikgb3ZlcnJpZGU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNj
b25uZWN0RnJvbUluc3BlY3RvcigpIG92ZXJyaWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Vu
ZE1lc3NhZ2VUb0luc3BlY3Rvcihjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLQogICAgICAgICAv
LyBJbXBsZW1lbnRhdGlvbnMgb2YgV29ya2VyT2JqZWN0UHJveHkuCiAgICAgICAgIC8vIChPbmx5
IHVzZSB0aGVzZSBtZXRob2RzIGluIHRoZSB3b3JrZXIgY29udGV4dCB0aHJlYWQuKQogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4sIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4pIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29ya2Vy
T2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNv
bHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpIG92ZXJyaWRlOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBp
bnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgb3ZlcnJpZGU7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbmZpcm1NZXNzYWdlRnJvbVdvcmtl
ck9iamVjdChib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCByZXBvcnRQZW5kaW5nQWN0aXZpdHkoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpIG92
ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyR2xvYmFsU2NvcGVDbG9zZWQoKSBv
dmVycmlkZTsKQEAgLTg5LDcgKzg0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIE1lc3NhZ2VXb3JrZXJUYXNrOwotICAgICAgICBm
cmllbmQgY2xhc3MgUG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3JUYXNrOwogICAgICAgICBmcmll
bmQgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRUYXNrOwogICAgICAgICBmcmllbmQg
Y2xhc3MgV29ya2VyRXhjZXB0aW9uVGFzazsKICAgICAgICAgZnJpZW5kIGNsYXNzIFdvcmtlclRo
cmVhZEFjdGl2aXR5UmVwb3J0VGFzazsKQEAgLTEwOSw3ICsxMDMsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGJvb2wgbV9hc2tlZFRvVGVybWluYXRlOwogCiAgICAgICAgIFZlY3Rv
cjxzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4+IG1fcXVldWVk
RWFybHlUYXNrczsgLy8gVGFza3MgYXJlIHF1ZXVlZCBoZXJlIHVudGlsIHRoZXJlJ3MgYSB0aHJl
YWQgb2JqZWN0IGNyZWF0ZWQuCi0gICAgICAgIFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OlBhZ2VJ
bnNwZWN0b3IqIG1fcGFnZUluc3BlY3RvcjsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJlcG9ydGluZ1By
b3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmgKaW5k
ZXggZGYzNWU1MS4uYWRjYmI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJSZXBvcnRpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
UmVwb3J0aW5nUHJveHkuaApAQCAtNDUsOCArNDUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsK
IAotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3IoY29uc3Qg
U3RyaW5nJikgPSAwOwotCiAgICAgICAgIC8vIEludm9rZWQgd2hlbiBjbG9zZSgpIGlzIGludm9r
ZWQgb24gdGhlIHdvcmtlciBjb250ZXh0LgogICAgICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyR2xv
YmFsU2NvcGVDbG9zZWQoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAppbmRleCA4N2I1MDlmLi4wYTYxYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgi
CiAKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIgotI2luY2x1ZGUgIklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEu
aCIKQEAgLTE0Nyw3ICsxNDYsNiBAQCB2b2lkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkK
ICAgICB9CiAKICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBtX3dvcmtlckds
b2JhbFNjb3BlLT5zY3JpcHQoKTsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxF
dmFsdWF0ZVdvcmtlclNjcmlwdCh3b3JrZXJHbG9iYWxTY29wZSgpLCBtX3N0YXJ0dXBEYXRhLT5t
X3N0YXJ0TW9kZSk7CiAgICAgc2NyaXB0LT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3Rh
cnR1cERhdGEtPm1fc291cmNlQ29kZSwgbV9zdGFydHVwRGF0YS0+bV9zY3JpcHRVUkwpKTsKICAg
ICAvLyBGcmVlIHRoZSBzdGFydHVwIGRhdGEgdG8gY2F1c2UgaXRzIG1lbWJlciB2YXJpYWJsZSBk
ZXJlZidzIGhhcHBlbiBvbiB0aGUgd29ya2VyJ3MgdGhyZWFkIChzaW5jZQogICAgIC8vIGFsbCBy
ZWYvZGVyZWZzIG9mIHRoZXNlIG9iamVjdHMgYXJlIGhhcHBlbmluZyBvbiB0aGUgdGhyZWFkIGF0
IHRoaXMgcG9pbnQpLiBOb3RlIHRoYXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266596</attachid>
            <date>2015-12-03 21:07:48 -0800</date>
            <delta_ts>2015-12-04 08:38:49 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rm-worker-2.patch</filename>
            <type>text/plain</type>
            <size>144931</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTU4MmY3Li5iMjdkMDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTUtMTIt
MDMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgdW50ZXN0ZWQgYW5kIHVudXNlZCBXb3JrZXIgaW5zcGVjdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXIuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2RlZGlj
YXRlZC13b3JrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rl
cm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29y
a2VyLXdoaWxlLXBhdXNlZC5odG1sOiBSZW1vdmVkLgorCisyMDE1LTEyLTAzICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3Bl
Y2lmaWNhbGx5IElkZW50aWZ5IHRoZSBHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVudCBTY29wZQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODI4CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0
ZWQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9w
YXVzZS1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTQxMjM5NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw1ICswLDAgQEAKLVN0YXJ0ZWQgd29ya2VyCi1Xb3JrZXIgY3JlYXRlZAotZGlkQ29ubmVj
dFRvV29ya2VyCi1TVUNDRVNTOiBXb3JrZXIgcGF1c2VkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29ya2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZGU5ZjBmLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29ya2VyLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciB3b3JrZXI7Ci1m
dW5jdGlvbiBzdGFydFdvcmtlckFuZFJ1blRlc3QoKQotewotICAgIHdvcmtlciA9IG5ldyBXb3Jr
ZXIoInJlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLmpzIik7Ci0gICAgd29ya2VyLm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKDEpOwotICAg
IGxvZygiU3RhcnRlZCB3b3JrZXIiKTsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHZhciB3b3JrZXJJZDsKLSAgICB2YXIgd29ya2VyUmVxdWVzdElkID0gMTsK
LSAgICBmdW5jdGlvbiBzZW5kQ29tbWFuZFRvV29ya2VyKG1ldGhvZCwgcGFyYW1zKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5zZW5kTWVzc2Fn
ZVRvV29ya2VyIiwgewotICAgICAgICAgICAgIndvcmtlcklkIjogd29ya2VySWQsCi0gICAgICAg
ICAgICAibWVzc2FnZSI6IHsKLSAgICAgICAgICAgICAgICAibWV0aG9kIjogbWV0aG9kLAotICAg
ICAgICAgICAgICAgICJwYXJhbXMiOiBwYXJhbXMsCi0gICAgICAgICAgICAgICAgImlkIjogd29y
a2VyUmVxdWVzdElkKysKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
SW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5lbmFibGUiLCB7fSwgZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkgewotICAgICAgICBpZiAoImVycm9yIiBpbiBtZXNzYWdlT2JqZWN0
KSB7Ci0gICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBDb3VsZG4ndCBlbmFibGUg
d29ya2VyIGRlYnVnZ2VyOiAiICsgbWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsKLSAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0pOwot
Ci0gICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJXb3JrZXIud29ya2VyQ3JlYXRl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIHdvcmtlcklkID0g
bWVzc2FnZU9iamVjdFsicGFyYW1zIl1bIndvcmtlcklkIl07Ci0gICAgICAgIFByb3RvY29sVGVz
dC5sb2coIldvcmtlciBjcmVhdGVkIik7Ci0gICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRD
b21tYW5kKCJXb3JrZXIuY29ubmVjdFRvV29ya2VyIiwgeyAid29ya2VySWQiOiB3b3JrZXJJZCB9
LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJkaWRDb25uZWN0VG9Xb3JrZXIiKTsKLSAgICAgICAgICAgIHNlbmRDb21tYW5kVG9Xb3JrZXIo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICAgICAgICAgIHNlbmRDb21tYW5kVG9Xb3JrZXIo
IkRlYnVnZ2VyLnBhdXNlIiwge30pOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0
b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIldvcmtlci5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2Vy
Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsibWVzc2FnZSJdOwotICAgICAgICBpZiAobWVzc2Fn
ZVsibWV0aG9kIl0gPT09ICJEZWJ1Z2dlci5wYXVzZWQiKSB7Ci0gICAgICAgICAgICBQcm90b2Nv
bFRlc3QubG9nKCJTVUNDRVNTOiBXb3JrZXIgcGF1c2VkIik7Ci0gICAgICAgICAgICBzZW5kQ29t
bWFuZFRvV29ya2VyKCJEZWJ1Z2dlci5kaXNhYmxlIiwge30pOwotICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbkxvYWQ9InN0YXJ0V29ya2VyQW5kUnVuVGVzdCgpOyI+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVz
b3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZlMWYwNTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOSAr
MCwwIEBACi12YXIgbWVzc2FnZV9pZCA9IDE7Ci1vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkg
ewotICBkb1dvcmsoKTsKLX07Ci0KLWZ1bmN0aW9uIGRvV29yaygpIHsKLSAgcG9zdE1lc3NhZ2Uo
Ik1lc3NhZ2UgIyIgKyBtZXNzYWdlX2lkKyspOwotICBzZXRUaW1lb3V0KGRvV29yaywgNTApOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1k
ZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdGVybWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUtcGF1c2Vk
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY4YmIwZi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGVybWluYXRlLWRlZGlj
YXRlZC13b3JrZXItd2hpbGUtcGF1c2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDkgKzAsMCBAQAotVGVzdCB0aGF0IGluc3BlY3RlZCBwYWdlIHdvbid0IGNyYXNoIGlmIGluc3Bl
Y3RlZCB3b3JrZXIgaXMgdGVybWluYXRlZCB3aGlsZSBpdCBpcyBwYXVzZWQuIFRlc3QgcGFzc2Vz
IGlmIGl0IGRvZXNuJ3QgY3Jhc2guCi0KLUJ1ZyAxMDEwNjUuCi1TdGFydGVkIHdvcmtlcgotV29y
a2VyIGNyZWF0ZWQKLWRpZENvbm5lY3RUb1dvcmtlcgotV29ya2VyIHBhdXNlZAotU1VDQ0VTUzog
RGlkIHRlcm1pbmF0ZSBwYXVzZWQgd29ya2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVk
LXdvcmtlci13aGlsZS1wYXVzZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODY0YjFhNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGVy
bWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUtcGF1c2VkLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29s
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciB3b3JrZXI7Ci1mdW5jdGlvbiBzdGFy
dFdvcmtlckFuZFJ1blRlc3QoKQotewotICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoInJlc291cmNl
cy9kZWRpY2F0ZWQtd29ya2VyLmpzIik7Ci0gICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGV2ZW50KSB7IH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKDEpOwotICAgIGxvZygiU3RhcnRl
ZCB3b3JrZXIiKTsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHZhciB3b3JrZXJJZDsKLSAgICB2YXIgd29ya2VyUmVxdWVzdElkID0gMTsKLSAgICBmdW5jdGlv
biBzZW5kQ29tbWFuZFRvV29ya2VyKG1ldGhvZCwgcGFyYW1zKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5zZW5kTWVzc2FnZVRvV29ya2VyIiwg
ewotICAgICAgICAgICAgIndvcmtlcklkIjogd29ya2VySWQsCi0gICAgICAgICAgICAibWVzc2Fn
ZSI6IHsKLSAgICAgICAgICAgICAgICAibWV0aG9kIjogbWV0aG9kLAotICAgICAgICAgICAgICAg
ICJwYXJhbXMiOiBwYXJhbXMsCi0gICAgICAgICAgICAgICAgImlkIjogd29ya2VyUmVxdWVzdElk
KysKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yUHJv
dG9jb2wuc2VuZENvbW1hbmQoIldvcmtlci5lbmFibGUiLCB7fSwgZnVuY3Rpb24obWVzc2FnZU9i
amVjdCkgewotICAgICAgICBpZiAoImVycm9yIiBpbiBtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAg
ICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBDb3VsZG4ndCBlbmFibGUgd29ya2VyIGRlYnVn
Z2VyOiAiICsgbWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsKLSAgICAgICAgICAgIFByb3Rv
Y29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgSW5zcGVj
dG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJXb3JrZXIud29ya2VyQ3JlYXRlZCJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIHdvcmtlcklkID0gbWVzc2FnZU9iamVj
dFsicGFyYW1zIl1bIndvcmtlcklkIl07Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIldvcmtl
ciBjcmVhdGVkIik7Ci0gICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJXb3Jr
ZXIuY29ubmVjdFRvV29ya2VyIiwgeyJ3b3JrZXJJZCI6IHdvcmtlcklkfSwgZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkgewotICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiZGlkQ29ubmVjdFRv
V29ya2VyIik7Ci0gICAgICAgICAgICBzZW5kQ29tbWFuZFRvV29ya2VyKCJEZWJ1Z2dlci5lbmFi
bGUiLCB7fSk7Ci0gICAgICAgICAgICBzZW5kQ29tbWFuZFRvV29ya2VyKCJEZWJ1Z2dlci5wYXVz
ZSIsIHt9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZl
bnRIYW5kbGVyWyJXb3JrZXIuZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlciJdID0gZnVuY3Rpb24o
bWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIHZhciBtZXNzYWdlID0gbWVzc2FnZU9iamVj
dFsicGFyYW1zIl1bIm1lc3NhZ2UiXTsKLSAgICAgICAgaWYgKG1lc3NhZ2VbIm1ldGhvZCJdID09
PSAiRGVidWdnZXIucGF1c2VkIikgewotICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiV29y
a2VyIHBhdXNlZCIpOwotICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24iOiAid29ya2VyLnRlcm1pbmF0ZSgpIn0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKCJTVUNDRVNTOiBEaWQgdGVybWluYXRlIHBhdXNlZCB3b3JrZXIiKTsKLSAgICAgICAgICAg
ICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfQotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25Mb2FkPSJzdGFydFdv
cmtlckFuZFJ1blRlc3QoKTsiPgotPHA+VGVzdCB0aGF0IGluc3BlY3RlZCBwYWdlIHdvbid0IGNy
YXNoIGlmIGluc3BlY3RlZCB3b3JrZXIgaXMgdGVybWluYXRlZCB3aGlsZSBpdCBpcyBwYXVzZWQu
IFRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTA2NSI+QnVnIDEwMTA2NS48L2E+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTE4
NjZiNS4uN2IxMTM5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTE1
OCw3ICsxMTU4LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9ET01BSU5TCiAgICAg
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KICAgICAk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL3Byb3RvY29sL1J1bnRpbWUuanNvbgogICAg
ICR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbgot
ICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvcHJvdG9jb2wvV29ya2VyLmpzb24K
ICkKIAogaWYgKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggOTRlNGU3Zi4uOTYwOTA5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMzEgQEAKIDIwMTUtMTItMDMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW50ZXN0ZWQgYW5kIHVudXNlZCBX
b3JrZXIgaW5zcGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUxODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdn
ZXI6OkRlYnVnZ2VyKToKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OndpbGxFeGVjdXRlUHJvZ3Jh
bSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6
OkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXI6OkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVi
dWdTZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpTY3JpcHREZWJ1Z1NlcnZlcik6
CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6
Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cnVuKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvdG9jb2wvUnVudGltZS5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9Xb3Jr
ZXIuanNvbjogUmVtb3ZlZC4KKworMjAxNS0xMi0wMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNwZWNpZmljYWxseSBJZGVu
dGlmeSB0aGUgR2xvYmFsIExleGljYWwgRW52aXJvbm1lbnQgU2NvcGUKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTgyOAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDc2OGViYWEuLjhkZTcyNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xOTQsNyArMTk0LDYg
QEAgSU5TUEVDVE9SX0RPTUFJTlMgPSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9y
L3Byb3RvY29sL1BhZ2UuanNvbiBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3By
b3RvY29sL1J1bnRpbWUuanNvbiBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3By
b3RvY29sL1RpbWVsaW5lLmpzb24gXAotICAgICQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9w
cm90b2NvbC9Xb3JrZXIuanNvbiBcCiAjCiAKIGlmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSwkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IDcw
ODgzMTguLjUwMjliMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcApAQCAtMTEzLDE0ICsxMTMsMTMgQEAgcHJpdmF0ZToKICAgICBEZWJ1Z2dlciYgbV9k
ZWJ1Z2dlcjsKIH07CiAKLURlYnVnZ2VyOjpEZWJ1Z2dlcihWTSYgdm0sIGJvb2wgaXNJbldvcmtl
clRocmVhZCkKK0RlYnVnZ2VyOjpEZWJ1Z2dlcihWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQogICAg
ICwgbV9wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKERvbnRQYXVzZU9uRXhjZXB0aW9ucykKICAgICAs
IG1fcGF1c2VPbk5leHRTdGF0ZW1lbnQoZmFsc2UpCiAgICAgLCBtX2lzUGF1c2VkKGZhbHNlKQog
ICAgICwgbV9icmVha3BvaW50c0FjdGl2YXRlZCh0cnVlKQogICAgICwgbV9oYXNIYW5kbGVyRm9y
RXhjZXB0aW9uQ2FsbGJhY2soZmFsc2UpCi0gICAgLCBtX2lzSW5Xb3JrZXJUaHJlYWQoaXNJbldv
cmtlclRocmVhZCkKICAgICAsIG1fc3VwcHJlc3NBbGxQYXVzZXMoZmFsc2UpCiAgICAgLCBtX3N0
ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAgICAsIG1fcmVhc29uRm9yUGF1c2Uo
Tm90UGF1c2VkKQpAQCAtNzA3LDEzICs3MDYsNyBAQCB2b2lkIERlYnVnZ2VyOjp3aWxsRXhlY3V0
ZVByb2dyYW0oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBh
dXNlUmVhc29uRGVjbGFyYXRpb24gcmVhc29uKCp0aGlzLCBQYXVzZWRBdFN0YXJ0T2ZQcm9ncmFt
KTsKLSAgICAvLyBGSVhNRTogVGhpcyBjaGVjayBmb3Igd2hldGhlciB3ZSdyZSBkZWJ1Z2dpbmcg
YSB3b3JrZXIgdGhyZWFkIGlzIGEgd29ya2Fyb3VuZAotICAgIC8vIGZvciBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNjM3LiBSZW1vdmUgaXQgd2hlbiB3ZSByZXdv
cmsKLSAgICAvLyB0aGUgZGVidWdnZXIgaW1wbGVtZW50YXRpb24gdG8gbm90IHJlcXVpcmUgY2Fs
bGJhY2tzLgotICAgIGlmICghbV9pc0luV29ya2VyVGhyZWFkKQotICAgICAgICB1cGRhdGVDYWxs
RnJhbWVBbmRQYXVzZUlmTmVlZGVkKGNhbGxGcmFtZSk7Ci0gICAgZWxzZSBpZiAoaXNTdGVwcGlu
ZygpKQotICAgICAgICB1cGRhdGVDYWxsRnJhbWUoY2FsbEZyYW1lKTsKKyAgICB1cGRhdGVDYWxs
RnJhbWVBbmRQYXVzZUlmTmVlZGVkKGNhbGxGcmFtZSk7CiB9CiAKIHZvaWQgRGVidWdnZXI6OmRp
ZEV4ZWN1dGVQcm9ncmFtKENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXIuaAppbmRleCAyOTJiMTQ3Li5hZTM2ZjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaApAQCAtNDQsNyArNDQsNyBAQCB0eXBl
ZGVmIEV4ZWNTdGF0ZSBDYWxsRnJhbWU7CiAKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIERlYnVn
Z2VyIHsKIHB1YmxpYzoKLSAgICBEZWJ1Z2dlcihWTSYsIGJvb2wgaXNJbldvcmtlclRocmVhZCA9
IGZhbHNlKTsKKyAgICBEZWJ1Z2dlcihWTSYpOwogICAgIHZpcnR1YWwgfkRlYnVnZ2VyKCk7CiAK
ICAgICBWTSYgdm0oKSB7IHJldHVybiBtX3ZtOyB9CkBAIC0xOTgsNyArMTk4LDYgQEAgcHJpdmF0
ZToKICAgICBib29sIG1faXNQYXVzZWQgOiAxOwogICAgIGJvb2wgbV9icmVha3BvaW50c0FjdGl2
YXRlZCA6IDE7CiAgICAgYm9vbCBtX2hhc0hhbmRsZXJGb3JFeGNlcHRpb25DYWxsYmFjayA6IDE7
Ci0gICAgYm9vbCBtX2lzSW5Xb3JrZXJUaHJlYWQgOiAxOwogICAgIGJvb2wgbV9zdXBwcmVzc0Fs
bFBhdXNlcyA6IDE7CiAgICAgdW5zaWduZWQgbV9zdGVwcGluZ01vZGUgOiAxOyAvLyBTdGVwcGlu
Z01vZGUKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggNmQ4Y2Uy
MC4uZTlhMjhjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC0z
NSw3ICszNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsK
IAogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcjo6SlNHbG9iYWxPYmplY3RTY3JpcHRE
ZWJ1Z1NlcnZlcihKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotICAgIDogU2NyaXB0RGVi
dWdTZXJ2ZXIoZ2xvYmFsT2JqZWN0LnZtKCksIGZhbHNlKQorICAgIDogU2NyaXB0RGVidWdTZXJ2
ZXIoZ2xvYmFsT2JqZWN0LnZtKCkpCiAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3Qp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1Njcmlw
dERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDQ2NDQ2MzAuLjg5ODkxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC00
Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogCi1TY3JpcHREZWJ1Z1NlcnZlcjo6U2NyaXB0RGVidWdTZXJ2ZXIoVk0mIHZtLCBib29sIGlz
SW5Xb3JrZXJUaHJlYWQpCi0gICAgOiBEZWJ1Z2dlcih2bSwgaXNJbldvcmtlclRocmVhZCkKK1Nj
cmlwdERlYnVnU2VydmVyOjpTY3JpcHREZWJ1Z1NlcnZlcihWTSYgdm0pCisgICAgOiBEZWJ1Z2dl
cih2bSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9TY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9T
Y3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IGUwNjcwZmYuLmVhMjEwZDNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC02
Myw3ICs2Myw3IEBAIHByb3RlY3RlZDoKICAgICB0eXBlZGVmIEhhc2hTZXQ8U2NyaXB0RGVidWdM
aXN0ZW5lcio+IExpc3RlbmVyU2V0OwogICAgIHR5cGVkZWYgdm9pZCAoU2NyaXB0RGVidWdTZXJ2
ZXI6OipKYXZhU2NyaXB0RXhlY3V0aW9uQ2FsbGJhY2spKFNjcmlwdERlYnVnTGlzdGVuZXIqKTsK
IAotICAgIFNjcmlwdERlYnVnU2VydmVyKEpTQzo6Vk0mLCBib29sIGlzSW5Xb3JrZXJUaHJlYWQg
PSBmYWxzZSk7CisgICAgU2NyaXB0RGVidWdTZXJ2ZXIoSlNDOjpWTSYpOwogICAgIH5TY3JpcHRE
ZWJ1Z1NlcnZlcigpOwogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaERlYnVnZ2VyKCkgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA3ZTVjZjgwLi4wZTIyOGQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNjQsOCArNjQsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFi
bGVkKSBvdmVycmlkZSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5vZGUoRXJy
b3JTdHJpbmcmLCBpbnQgbm9kZUlkKSBvdmVycmlkZSA9IDA7CiAKLSAgICB2aXJ0dWFsIGJvb2wg
aXNXb3JrZXJBZ2VudCgpIGNvbnN0ID0gMDsKLQogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZW5hYmxlZDsgfQogICAgIHZvaWQgcmVzZXQoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5jcHAKaW5kZXggNzYwNDhhZi4uZmZlY2ZiYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwCkBAIC0yNDEsMTEgKzI0MSw2IEBAIHZvaWQgSW5zcGVjdG9yUnVudGlt
ZUFnZW50OjpyZWxlYXNlT2JqZWN0R3JvdXAoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG9i
amVjCiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIucmVsZWFzZU9iamVjdEdyb3VwKG9iamVj
dEdyb3VwKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnJ1bihFcnJvclN0cmlu
ZyYpCi17Ci0gICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjc2MzQ+IFdlYiBJ
bnNwZWN0b3I6IHN1cHBvcnQgZGVidWdnaW5nIHdlYiB3b3JrZXJzCi19Ci0KIHZvaWQgSW5zcGVj
dG9yUnVudGltZUFnZW50OjpnZXRSdW50aW1lVHlwZXNGb3JWYXJpYWJsZXNBdE9mZnNldHMoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBs
b2NhdGlvbnMsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlBy
b3RvY29sOjpSdW50aW1lOjpUeXBlRGVzY3JpcHRpb24+PiYgdHlwZURlc2NyaXB0aW9ucykKIHsK
ICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5oCmluZGV4IDBlNTBiNWEuLmUzMzg1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5oCkBAIC02OCw3ICs2OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q29s
bGVjdGlvbkVudHJpZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25z
dCBTdHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBpbnQqIHN0YXJ0SW5kZXgsIGNvbnN0IGludCog
bnVtYmVyVG9GZXRjaCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rv
cjo6UHJvdG9jb2w6OlJ1bnRpbWU6OkNvbGxlY3Rpb25FbnRyeT4+JiBlbnRyaWVzKSBvdmVycmlk
ZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlc3VsdChFcnJvclN0cmluZyYsIGNvbnN0
IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBjYWxsQXJndW1lbnQsIGNvbnN0IGludCogZXhl
Y3V0aW9uQ29udGV4dElkLCBJbnNwZWN0b3I6OlByb3RvY29sOjpPcHRPdXRwdXQ8aW50Piogc2F2
ZWRSZXN1bHRJbmRleCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VP
YmplY3RHcm91cChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApIG92ZXJy
aWRlIGZpbmFsOwotICAgIHZpcnR1YWwgdm9pZCBydW4oRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0UnVudGltZVR5cGVzRm9yVmFyaWFibGVzQXRPZmZzZXRzKEVy
cm9yU3RyaW5nJiwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JBcnJheSYgbG9jYXRpb25zLCBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVu
dGltZTo6VHlwZURlc2NyaXB0aW9uPj4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlVHlwZVByb2ZpbGVyKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRpc2FibGVUeXBlUHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29u
c29sZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0ds
b2JhbE9iamVjdENvbnNvbGVBZ2VudC5oCmluZGV4IGE2ZjFlMGUuLmY5NjZlOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0
Q29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaApAQCAtNDEsOCArNDEsNiBAQCBwdWJsaWM6
CiAgICAgLy8gRklYTUU6IFhIUnMgYW5kIE5vZGVzIG9ubHkgbWFrZXMgc2Vuc2UgZGVidWdnaW5n
IGEgV2ViIGNvbnRleHQuIENhbiB0aGlzIGJlIG1vdmVkIHRvIGEgZGlmZmVyZW50IGFnZW50Pwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJv
b2wgZW5hYmxlZCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5vZGUo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKSBvdmVycmlkZTsKLQotICAgIHZpcnR1YWwgYm9vbCBp
c1dvcmtlckFnZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9SdW50aW1lLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL1J1bnRpbWUuanNvbgppbmRleCAwYmFiMWNlLi5hZjg3NGQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1J1bnRp
bWUuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1J1
bnRpbWUuanNvbgpAQCAtMzA1LDEwICszMDUsNiBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlJlbGVhc2VzIGFsbCByZW1vdGUgb2JqZWN0cyB0aGF0IGJlbG9uZyB0byBhIGdpdmVuIGdy
b3VwLiIKICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicnVuIiwK
LSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUZWxscyBpbnNwZWN0ZWQgaW5zdGFuY2Uod29y
a2VyIG9yIHBhZ2UpIHRoYXQgaXQgY2FuIHJ1biBpbiBjYXNlIGl0IHdhcyBzdGFydGVkIHBhdXNl
ZC4iCi0gICAgICAgIH0sCi0gICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIs
CiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyByZXBvcnRpbmcgb2YgZXhlY3V0
aW9uIGNvbnRleHRzIGNyZWF0aW9uIGJ5IG1lYW5zIG9mIDxjb2RlPmV4ZWN1dGlvbkNvbnRleHRD
cmVhdGVkPC9jb2RlPiBldmVudC4gV2hlbiB0aGUgcmVwb3J0aW5nIGdldHMgZW5hYmxlZCB0aGUg
ZXZlbnQgd2lsbCBiZSBzZW50IGltbWVkaWF0ZWx5IGZvciBlYWNoIGV4aXN0aW5nIGV4ZWN1dGlv
biBjb250ZXh0LiIKICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvV29ya2VyLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL1dvcmtlci5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1MjY5ZTEzLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvV29ya2VyLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi17
Ci0gICAgImRvbWFpbiI6ICJXb3JrZXIiLAotICAgICJ0eXBlcyI6IFtdLAotICAgICJhdmFpbGFi
aWxpdHkiOiAid2ViIiwKLSAgICAiY29tbWFuZHMiOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAg
ICJuYW1lIjogImVuYWJsZSIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5h
bWUiOiAiZGlzYWJsZSIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUi
OiAic2VuZE1lc3NhZ2VUb1dvcmtlciIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwK
LSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1lc3NhZ2UiLCAidHlwZSI6ICJvYmplY3QiIH0K
LSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUi
OiAiY2FuSW5zcGVjdFdvcmtlcnMiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRlbGxz
IHdoZXRoZXIgYnJvd3NlciBzdXBwb3J0cyB3b3JrZXJzIGluc3BlY3Rpb24uIiwKLSAgICAgICAg
ICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5
cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlmIGJyb3dzZXIgaGFzIHdvcmtl
cnMgc3VwcG9ydC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgIm5hbWUiOiAiY29ubmVjdFRvV29ya2VyIiwKLSAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid29ya2VySWQiLCAidHlwZSI6ICJp
bnRlZ2VyIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJuYW1lIjogImRpc2Nvbm5lY3RGcm9tV29ya2VyIiwKLSAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid29ya2VySWQiLCAidHlwZSI6ICJp
bnRlZ2VyIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJuYW1lIjogInNldEF1dG9jb25uZWN0VG9Xb3JrZXJzIiwKLSAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFsdWUiLCAidHlwZSI6ICJi
b29sZWFuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBdLAotICAgICJldmVudHMi
OiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogIndvcmtlckNyZWF0ZWQiLAotICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3Jr
ZXJJZCIsICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1
cmwiLCAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpbnNw
ZWN0b3JDb25uZWN0ZWQiLCAidHlwZSI6ICJib29sZWFuIiB9Ci0gICAgICAgICAgICBdCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogIndvcmtlclRlcm1pbmF0ZWQi
LAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ3b3JrZXJJZCIsICJ0eXBlIjogImludGVnZXIiIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAiZGlzcGF0Y2hNZXNzYWdlRnJvbVdv
cmtlciIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIm1lc3NhZ2UiLCAidHlwZSI6ICJvYmplY3QiIH0KLSAgICAgICAgICAgIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAiZGlzY29ubmVjdGVkRnJv
bVdvcmtlciIKLSAgICAgICAgfQotICAgIF0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDI3
YjRiZC4uNTAxNGQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyNTksNyArMTI1OSw2IEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9XZWJDb3JlSlNCdWlsdGlucy5j
cHAKICAgICBiaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCiAgICAg
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKLSAgICBiaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKIAogICAgIGJyaWRnZS9JZGVudGlmaWVyUmVwLmNw
cAogICAgIGJyaWRnZS9OUF9qc29iamVjdC5jcHAKQEAgLTE4OTksNyArMTg5OCw2IEBAIHNldChX
ZWJDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHAKICAgICBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKICAgICBpbnNwZWN0b3Iv
TmV0d29ya1Jlc291cmNlc0RhdGEuY3BwCiAgICAgaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQu
Y3BwCkBAIC0xOTExLDEwICsxOTA5LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGluc3Bl
Y3Rvci9XZWJEZWJ1Z2dlckFnZW50LmNwcAogICAgIGluc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlw
dEhvc3QuY3BwCiAgICAgaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKLSAg
ICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcAotICAgIGluc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcAotICAgIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcAotICAgIGluc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCiAKICAgICBsb2FkZXIv
Q29udGVudEZpbHRlci5jcHAKICAgICBsb2FkZXIvQ29va2llSmFyLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDE1NjU4MmIuLmEzNDU5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NSBAQAorMjAxNS0xMi0w
MyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFJlbW92ZSB1bnRlc3RlZCBhbmQgdW51c2VkIFdvcmtlciBpbnNwZWN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4NDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAg
ICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERl
YnVnU2VydmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHREZWJ1Z1NlcnZlci5oOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JB
bGxJbk9uZS5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVt
ZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVj
dG9yQ29udHJvbGxlcik6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OnNob3VsZFBhdXNlRGVkaWNhdGVkV29ya2VyT25TdGFydEltcGwpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtl
ckdsb2JhbFNjb3BlSW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondvcmtlckdsb2JhbFNjb3Bl
VGVybWluYXRlZEltcGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0
cnVtZW50aW5nQWdlbnRzRm9yTm9uRG9jdW1lbnRDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkUGF1
c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondvcmtlckds
b2JhbFNjb3BlVGVybWluYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV2ViQWdl
bnRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJBZ2VudENvbnRleHQ6OldvcmtlckFn
ZW50Q29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcldvcmtl
ckFnZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2Vy
QWdlbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyUmVz
b3VyY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCk6IERl
bGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OndvcmtlclJ1bnRpbWVBZ2VudCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRXb3JrZXJS
dW50aW1lQWdlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0Fn
ZW50czo6aW5zcGVjdG9yV29ya2VyQWdlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zdHJ1bWVudGluZ0FnZW50czo6c2V0SW5zcGVjdG9yV29ya2VyQWdlbnQpOiBEZWxldGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2Ny
aXB0RGVidWdTZXJ2ZXI6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcik6CisgICAgICAgICogaW5zcGVj
dG9yL1dvcmtlckNvbnNvbGVBZ2VudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L1dvcmtlckNvbnNvbGVBZ2VudC5oOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2Vy
RGVidWdnZXJBZ2VudC5oOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5oOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3Jr
ZXJSdW50aW1lQWdlbnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJS
dW50aW1lQWdlbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6fldvcmtlckdsb2JhbFNjb3BlKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJHbG9iYWxTY29wZTo6d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6IERlbGV0ZWQu
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpQYWdlSW5zcGVjdG9yOjp+UGFnZUluc3Bl
Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZVByb3h5
Ojpjb25uZWN0VG9JbnNwZWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
R2xvYmFsU2NvcGVQcm94eTo6ZGlzY29ubmVjdEZyb21JbnNwZWN0b3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGVQcm94eTo6c2VuZE1lc3NhZ2VUb0luc3Bl
Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6V29ya2VyTWVzc2Fn
aW5nUHJveHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJv
eHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyTWVzc2FnaW5nUHJveHk6OmNvbm5lY3RUb0luc3BlY3Rvcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6ZGlzY29ubmVjdEZyb21JbnNwZWN0
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnNl
bmRNZXNzYWdlVG9JbnNwZWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
TWVzc2FnaW5nUHJveHk6Ondvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkSW50ZXJuYWwpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnRlcm1pbmF0ZVdv
cmtlckdsb2JhbFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyUmVwb3J0aW5nUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCk6IERlbGV0ZWQu
CisKIDIwMTUtMTItMDMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgdGhlIHVzZSBvZiBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IGZyb20gUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJCeUFwcGx5aW5nVHJhbnNmb3JtCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA5MmFmYmM0
Li42ZjI3NDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKQEAgLTE5MDU2LDIwICsxOTA1Niw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIu
Y3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsdWdpbnNcRE9N
TWltZVR5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGx1Z2luc1xET01N
aW1lVHlwZUFycmF5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsdWdpbnNc
RE9NUGx1Z2luLmNwcCIgLz4KQEAgLTE5NTY3LDIwICsxOTU1Myw2IEBACiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxl
PgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvcldvcmtlckFn
ZW50LmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk3MDcsMzQgKzE5Njc5LDYgQEAKICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV29ya2VyQ29uc29sZUFnZW50
LmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
V29ya2VyRGVidWdnZXJBZ2VudC5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXFdlYkluamVjdGVkU2NyaXB0SG9zdC5jcHAiPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk3NjMsMzQgKzE5NzA3LDYg
QEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXFdvcmtlclJ1bnRpbWVBZ2VudC5jcHAiPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2Vf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cbWF0aG1sXE1hdGhNTEFsbEluT25lLmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMjg3
OCw4ICsyMjc5NCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9yU3R5bGVTaGVldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVj
dG9yXEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JXb3JrZXJBZ2VudC5oIiAvPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvcldvcmtlclJlc291cmNlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXE5ldHdvcmtS
ZXNvdXJjZXNEYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
UGFnZUNvbnNvbGVBZ2VudC5oIiAvPgpAQCAtMjI4OTEsMTAgKzIyODA1LDYgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXZWJEZWJ1Z2dlckFnZW50LmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV2ViSW5qZWN0ZWRTY3JpcHRIb3N0Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV2ViSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV29y
a2VyQ29uc29sZUFnZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcV29ya2VyRGVidWdnZXJBZ2VudC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXb3JrZXJSdW50aW1lQWdlbnQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXG1hdGhtbFxNYXRoTUxFbGVtZW50LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxtYXRobWxcTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cbWF0aG1sXE1hdGhNTE1hdGhFbGVtZW50Lmgi
IC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKaW5kZXggOTk2YWNjOC4uOWYyMTg4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAt
NDQ4NCw5ICs0NDg0LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XFdvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJp
bmRpbmdzXGpzXFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCI+Ci0gICAgICA8RmlsdGVyPmJp
bmRpbmdzXGpzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbHVnaW5zXERPTU1pbWVUeXBlLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsdWdpbnM8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTQ2OTEsOSArNDY4OCw2IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAi
PgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHAiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnN0cnVtZW50aW5nQWdlbnRz
LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtNDcyNywxOCArNDcyMSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNw
ZWN0b3JcV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3Bl
Y3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5caW5zcGVjdG9yXFdvcmtlckNvbnNvbGVBZ2VudC5jcHAiPgotICAgICAgPEZpbHRlcj5pbnNw
ZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCI+Ci0gICAgICA8RmlsdGVyPmlu
c3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIj4KLSAgICAgIDxG
aWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV29ya2VyUnVudGltZUFnZW50LmNwcCI+Ci0gICAgICA8
RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cbWF0aG1sXE1hdGhNTEFsbEluT25lLmNwcCI+CiAgICAgICA8RmlsdGVy
PnJlbmRlcmluZ1xtYXRobWw8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTExOTgzLDEy
ICsxMTk2NSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVj
dG9yV2ViQWdlbnRCYXNlLmgiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0g
ICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9yV29ya2VyUmVzb3VyY2UuaCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVy
PgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9y
XEluc3RydW1lbnRpbmdBZ2VudHMuaCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTIwMjIsMTggKzExOTk4LDYgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCI+CiAg
ICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXFdvcmtlckNvbnNvbGVBZ2VudC5oIj4KLSAg
ICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+Ci0gICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV29ya2VyRGVidWdnZXJBZ2VudC5oIj4KLSAg
ICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+Ci0gICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5o
Ij4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+Ci0g
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcV29ya2VyUnVudGltZUFnZW50Lmgi
PgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXG1hdGhtbFxNYXRoTUxFbGVtZW50LmgiPgogICAgICAg
PEZpbHRlcj5yZW5kZXJpbmdcbWF0aG1sPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NmZmODIyOS4uOTgxNjVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTQyNCw4ICs1NDI0LDggQEAKIAkJQkMzQkU5QUIwRTlD
MjQyMDAwODM1NTg4IC8qIFJlbmRlclNjcm9sbGJhclBhcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQkU5QUEwRTlDMjQyMDAwODM1NTg4IC8q
IFJlbmRlclNjcm9sbGJhclBhcnQuY3BwICovOyB9OwogCQlCQzNDMzlCNjBDMEQzRDhEMDA1RjRE
N0EgLyogSlNNZWRpYUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzQzM5QjQwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCAq
LzsgfTsKIAkJQkMzQzM5QjcwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNDMzlCNTBDMEQzRDhE
MDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCAqLzsgfTsKLQkJQkMzRDg1QkIxQzBFMkU3NzAwRDNC
NjEwIC8qIEpTSFRNTFBpY3R1cmVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODA4QjEyMUMwRTJCMzUwMDY2RkQ2QiAvKiBKU0hUTUxQ
aWN0dXJlRWxlbWVudC5jcHAgKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsK
LQkJQkMzRDg1QkMxQzBFMkU3QTAwRDNCNjEwIC8qIEpTSFRNTFBpY3R1cmVFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgwOEIxMzFDMEUy
QjM1MDA2NkZENkIgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVNT
RVRfVEFHUyA9ICgpOyB9OyB9OworCQlCQzNEODVCQjFDMEUyRTc3MDBEM0I2MTAgLyogSlNIVE1M
UGljdHVyZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM4MDhCMTIxQzBFMkIzNTAwNjZGRDZCIC8qIEpTSFRNTFBpY3R1cmVFbGVtZW50
LmNwcCAqLzsgfTsKKwkJQkMzRDg1QkMxQzBFMkU3QTAwRDNCNjEwIC8qIEpTSFRNTFBpY3R1cmVF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzgwOEIxMzFDMEUyQjM1MDA2NkZENkIgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQuaCAqLzsgfTsK
IAkJQkM0MzY4RTgwQzIyNkUzMjAwNUVGQjVGIC8qIFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDM2OEU3MEMyMjZFMzIwMDVFRkI1RiAvKiBS
ZWN0LmggKi87IH07CiAJCUJDNDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
NkMxRUQwQzBEREJERjAwMjBDRkMzIC8qIEpTQ1NTUnVsZUN1c3RvbS5jcHAgKi87IH07CiAJCUJD
NDZDMUZBMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDZDMUYwMEMwRERDOEYwMDIw
Q0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmNwcCAqLzsgfTsKQEAgLTU2NjAsOCArNTY2MCw4IEBA
CiAJCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg0MEYzQ0UyQTcwMENE
MkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLzsgfTsKIAkJQkNDMDY1ODkwRjNDRTJBNzAwQ0QyRDg3
IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDMDY1ODUwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExp
c3QuY3BwICovOyB9OwogCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkND
MDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuaCAqLzsgfTsKLQkJQkND
MEU4NzUxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwRTg3MzFCRkU3MEU5MDA4
RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFH
UyA9ICgpOyB9OyB9OwotCQlCQ0MwRTg3NjFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0MwRTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi87IHNldHRp
bmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJQkNDMEU4NzUxQkZFNzBFOTAwOEY3RjUw
IC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0MwRTg3MzFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVF
bGVtZW50LmNwcCAqLzsgfTsKKwkJQkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0
dXJlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNDMEU4NzQxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oICovOyB9
OwogCQlCQ0M0Mzg3ODBFODg2Q0M3MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzQz
ODc3MEU4ODZDQzcwMDUzM0RENSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwICovOyB9
OwogCQlCQ0M1NzMzNTBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNTczMzMwRDY5NUJC
RTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAqLzsgfTsKIAkJQkNDNTczMzYwRDY5NUJC
RTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMzNDBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJv
Z3Jlc3NFdmVudC5tbSAqLzsgfTsKQEAgLTY1OTUsMjQgKzY1OTUsMTEgQEAKIAkJRjM0NEM3NTgx
MTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM0NEM3NTcxMTI5NEZG
NjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwICovOyB9OwogCQlG
MzQ3NDJEQzEzNDM2MkYwMDA1MzFCQzIgLyogUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM0NzQyREExMzQzNjJGMDAw
NTMxQkMyIC8qIFBhZ2VEZWJ1Z2dlckFnZW50LmNwcCAqLzsgfTsKIAkJRjM0NzQyREQxMzQzNjJG
MDAwNTMxQkMyIC8qIFBhZ2VEZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzQ3NDJEQjEzNDM2MkYwMDA1MzFCQzIgLyogUGFnZURl
YnVnZ2VyQWdlbnQuaCAqLzsgfTsKLQkJRjM0NzQyRTAxMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtl
ckRlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjM0NzQyREUxMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQu
Y3BwICovOyB9OwotCQlGMzQ3NDJFMTEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJB
Z2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM0
NzQyREYxMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQuaCAqLzsgfTsKLQkJ
RjM0NzQyRTgxMzQzNjM1MDAwNTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNDc0MkU2MTM0
MzYzNTAwMDUzMUJDMiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAgKi87IH07Ci0JCUYz
NDc0MkU5MTM0MzYzNTAwMDUzMUJDMiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM0NzQyRTcxMzQzNjM1
MDAwNTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmggKi87IH07CiAJCUYzNTBCNzM1
MTNGMTM3N0QwMDg4MEM0MyAvKiBJbnN0cnVtZW50aW5nQWdlbnRzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNTBCNzM0MTNGMTM3N0QwMDg4MEM0
MyAvKiBJbnN0cnVtZW50aW5nQWdlbnRzLmNwcCAqLzsgfTsKLQkJRjM2RTA3QTQxMzU4QThCRTAw
QUFDQkM5IC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM2RTA3QTIxMzU4QThCRTAwQUFDQkM5IC8q
IFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwICovOyB9OwotCQlGMzZFMDdBNTEzNThBOEJF
MDBBQUNCQzkgLyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM2RTA3QTMxMzU4QThCRTAwQUFDQkM5IC8q
IFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCAqLzsgfTsKLQkJRjM3NUNDMDcxMTUwRDMwMDAw
OEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzc1Q0MwNjExNTBEMzAwMDA4RERCODEgLyogSW5z
cGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLzsgfTsKLQkJRjM4MTBDMUIxMzY1QTQ5NjAwRUQ2RTMz
IC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEYzODEwQzE5MTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAgKi87IH07Ci0JCUYzODEwQzFDMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjM4MTBDMUExMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50
LmggKi87IH07CiAJCUYzODIwODkyMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlQ29uc29sZUFnZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzODIw
ODhBMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlQ29uc29sZUFnZW50LmNwcCAqLzsgfTsKIAkJRjM4
MjA4OTMxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzODIwODhCMTQ3RDM1RjkwMDEwQkMw
NiAvKiBQYWdlQ29uc29sZUFnZW50LmggKi87IH07CiAJCUYzODIwODk0MTQ3RDM1RjkwMDEwQkMw
NiAvKiBQYWdlUnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEYzODIwODhDMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlUnVudGltZUFn
ZW50LmNwcCAqLzsgfTsKIAkJRjM4MjA4OTUxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1l
QWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
ODIwODhEMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlUnVudGltZUFnZW50LmggKi87IH07Ci0JCUYz
ODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEUxNDdEMzVGOTAw
MTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgKi87IH07Ci0JCUYzODIwODk3MTQ3RDM1
RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzODIwODhGMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3Jr
ZXJDb25zb2xlQWdlbnQuaCAqLzsgfTsKLQkJRjM4MjA4OTgxNDdEMzVGOTAwMTBCQzA2IC8qIFdv
cmtlclJ1bnRpbWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGMzgyMDg5MDE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50
LmNwcCAqLzsgfTsKLQkJRjM4MjA4OTkxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVB
Z2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4
MjA4OTExNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5oICovOyB9OwogCQlG
M0FCRkUwQzEzMEU5REEwMDBFN0Y3RDEgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNBQkZFMEIxMzBFOURBMDAw
RTdGN0QxIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuaCAqLzsgfTsKIAkJRjNENDYxNDgxMTYxRDUz
MjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9y
SGFuZGxlci5jcHAgKi87IH07CiAJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9y
SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi87IH07CkBAIC0x
NDUxMywyNCArMTQ1MDAsMTEgQEAKIAkJRjM0NEM3NTcxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUYzNDc0MkRBMTM0MzYyRjAwMDUzMUJDMiAvKiBQYWdlRGVidWdnZXJB
Z2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlRGVidWdn
ZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNDc0MkRCMTM0MzYy
RjAwMDUzMUJDMiAvKiBQYWdlRGVidWdnZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYWdlRGVidWdnZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlGMzQ3NDJERTEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJEZWJ1Z2dlckFnZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjM0NzQyREYxMzQzNjMxRjAwNTMx
QkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV29ya2VyRGVidWdnZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlGMzQ3NDJFNjEzNDM2MzUwMDA1MzFCQzIgLyogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyU2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMzQ3NDJFNzEzNDM2MzUw
MDA1MzFCQzIgLyogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjM1MEI3MzQxM0YxMzc3RDAwODgwQzQzIC8qIEluc3RydW1lbnRpbmdB
Z2VudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zdHJ1bWVu
dGluZ0FnZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzNkUwN0EyMTM1
OEE4QkUwMEFBQ0JDOSAvKiBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMzZFMDdBMzEzNThBOEJFMDBBQUNCQzkg
LyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJS
ZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMzgxMEMxOTEzNjVBNDk2
MDBFRDZFMzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlGMzgxMEMxQTEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9yV29y
a2VyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yV29y
a2VyQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM4MjA4OEExNDdEMzVG
OTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGFnZUNvbnNvbGVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUYzODIwODhCMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlQ29uc29sZUFnZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VDb25zb2xlQWdlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM4MjA4OEMxNDdEMzVGOTAwMTBCQzA2IC8qIFBh
Z2VSdW50aW1lQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGFnZVJ1bnRpbWVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzODIw
ODhEMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlUnVudGltZUFnZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VSdW50aW1lQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRjM4MjA4OEUxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2Vu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJDb25zb2xl
QWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMzgyMDg4RjE0N0QzNUY5
MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdvcmtlckNvbnNvbGVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlGMzgyMDg5MDE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlclJ1bnRpbWVBZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzODIwODkxMTQ3RDM1RjkwMDEwQkMw
NiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV29ya2VyUnVudGltZUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYz
QUJGRTBCMTMwRTlEQTAwMEU3RjdEMSAvKiBJbnN0cnVtZW50aW5nQWdlbnRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3RydW1lbnRpbmdBZ2VudHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JI
YW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JI
YW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNENDYxNDcxMTYxRDUz
MjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTRXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NjAyOCw5ICsxNjAwMiw2IEBACiAJCQkJNzU0MTMzQTkxMDJFMDBGNDAwMDc1RDAwIC8qIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwICovLAogCQkJCTc1NDEzM0E3MTAyRTAwRTgwMDA3NUQwMCAv
KiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmggKi8sCiAJCQkJQTU5M0NGOEExODQwNTM1MjAwQkZD
RTI3IC8qIEluc3BlY3RvcldlYkFnZW50QmFzZS5oICovLAotCQkJCUYzODEwQzE5MTM2NUE0OTYw
MEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgKi8sCi0JCQkJRjM4MTBDMUExMzY1
QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmggKi8sCi0JCQkJRjM3NUNDMDYx
MTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggKi8sCiAJCQkJRjM1
MEI3MzQxM0YxMzc3RDAwODgwQzQzIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuY3BwICovLAogCQkJ
CUYzQUJGRTBCMTMwRTlEQTAwMEU3RjdEMSAvKiBJbnN0cnVtZW50aW5nQWdlbnRzLmggKi8sCiAJ
CQkJNTlDMjdGMDQxMzhEMjhDMTAwNzlCN0UyIC8qIE5ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcCAq
LywKQEAgLTE2MDU1LDE0ICsxNjAyNiw2IEBACiAJCQkJQTU4NDBFMjMxODdCOEFDMjAwODQzQjEw
IC8qIFdlYkluamVjdGVkU2NyaXB0SG9zdC5oICovLAogCQkJCUE1ODRGRTJEMTg2NENCODQwMDg0
M0IxMCAvKiBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwICovLAogCQkJCUE1ODRGRTJFMTg2
NENCODQwMDg0M0IxMCAvKiBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCAqLywKLQkJCQlGMzgy
MDg4RTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCAqLywKLQkJCQlG
MzgyMDg4RjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmggKi8sCi0JCQkJ
RjM0NzQyREUxMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQuY3BwICovLAot
CQkJCUYzNDc0MkRGMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmggKi8s
Ci0JCQkJRjM2RTA3QTIxMzU4QThCRTAwQUFDQkM5IC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwICovLAotCQkJCUYzNkUwN0EzMTM1OEE4QkUwMEFBQ0JDOSAvKiBXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmggKi8sCi0JCQkJRjM4MjA4OTAxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtl
clJ1bnRpbWVBZ2VudC5jcHAgKi8sCi0JCQkJRjM4MjA4OTExNDdEMzVGOTAwMTBCQzA2IC8qIFdv
cmtlclJ1bnRpbWVBZ2VudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpbnNwZWN0b3I7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjE5OTYsOCArMjE5NTksNiBAQAogCQkJCTBGMDk5
RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLywK
IAkJCQlFMUE2NDNGQzBFQzA5N0EwMDA3Nzk2NjggLyogV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHAgKi8sCiAJCQkJRTFBNjQzRjEwRUMwOTcyNTAwNzc5NjY4IC8qIFdvcmtlclNjcmlwdENvbnRy
b2xsZXIuaCAqLywKLQkJCQlGMzQ3NDJFNjEzNDM2MzUwMDA1MzFCQzIgLyogV29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwICovLAotCQkJCUYzNDc0MkU3MTM0MzYzNTAwMDUzMUJDMiAvKiBXb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBqczsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTk2Nyw4ICsyNTkyOCw2IEBACiAJCQkJODJBQjE3NzQx
MjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTc1NDEzM0E4MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTkzQ0Y4QjE4NDA1MzUyMDBCRkNFMjcgLyogSW5zcGVjdG9y
V2ViQWdlbnRCYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGMzgxMEMxQzEzNjVBNDk2MDBFRDZF
MzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUYzNzVDQzA3
MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjNBQkZFMEMxMzBFOURBMDAwRTdGN0QxIC8qIEluc3RydW1lbnRpbmdBZ2VudHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTcyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2lu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ2MkE0QTExMTNFNzFCRTAwNEE0MjIwIC8qIEludFBv
aW50SGFzaC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODEyNSwxNCArMjgwODQsMTEgQEAKIAkJCQlB
MTQ4MzJDNjE4N0Y2NjhGMDBEQTYzQTYgLyogV0tWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzc5OTE5OTcxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxlRm9ybWF0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRTQzNDY0NjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlGMzgyMDg5NzE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlGMzQ3NDJFMTEzNDM2MzFGMDA1MzFCQzIgLyogV29y
a2VyRGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTNFMjY0MzExNDc0ODk5MTAw
NUE4NTg4IC8qIFdvcmtlckV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjQ5
MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE4NUZDQjQxQkI0QzRFODAwMTI4OThGIC8qIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERh
dGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0Y4RTY2NjE1MUQ0QTRFMDBEMkQxODEgLyog
V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQz
NDY0QjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJRjM2RTA3QTUxMzU4QThCRTAwQUFDQkM5IC8qIFdvcmtlckluc3BlY3RvckNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAv
KiBXb3JrZXJMb2FkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NEQwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1
MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICov
LApAQCAtMjgxNDEsOSArMjgwOTcsNyBAQAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXJPYmplY3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RTI5QTYxMDJGQTk2
MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQky
RTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRjM4MjA4OTkxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTFBNjQzRjIwRUMwOTcyNTAwNzc5NjY4IC8qIFdvcmtlclNjcmlw
dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUYzNDc0MkU5MTM0MzYzNTAwMDUzMUJD
MiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdENkIz
NDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
clRocmVhZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTU3Miw3ICsyOTUyNiw2IEBACiAJCQkJOTlD
QzBCNjYxOEJFOUYxNTAwNkNFQkNDIC8qIEluc3BlY3RvclJlcGxheUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTgyQUIxNzczMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NDEzM0FBMTAyRTAwRjQwMDA3NUQwMCAvKiBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUYzODEwQzFCMTM2
NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGMzUwQjczNTEzRjEzNzdEMDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDQ2RjA0RTE3Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9pbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NjAwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBv
aW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTUxOCwyMCArMzE0NzEsMTUgQEAKIAkJCQlB
MTQ4MzJDNTE4N0Y2NjgzMDBEQTYzQTYgLyogV0tWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Mzc5OTE5OTYxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxlRm9ybWF0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJFNDM0NjQ1MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRjM4MjA4OTYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGMzQ3NDJFMDEzNDM2MzFGMDA1MzFCQzIgLyogV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0UyNjQzMDE0NzQ4OTkx
MDA1QTg1ODggLyogV29ya2VyRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQz
NDY0ODBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyR2xvYmFsU2NvcGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTE4NUZDQjMxQkI0QzRFODAwMTI4OThGIC8qIFdvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3RjhFNjY1MTUxRDRBNEIwMEQy
RDE4MSAvKiBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJRjM2RTA3QTQxMzU4QThCRTAwQUFDQkM5IC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NEMwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNDM0NjRGMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI3
MUExNDBFRUVDODA0MDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJFNDM0NjUyMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUYzODIwODk4MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJSdW50aW1l
QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBNjQzRkQwRUMwOTdBMDAwNzc5NjY4IC8q
IFdvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjM0NzQyRTgx
MzQzNjM1MDAwNTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3RDZCMzRBMEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NTQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
clRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwQjkwNTZGODBGMjY4NUYzMDA5NUZGNkEg
LyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDBhNGE4
MzYuLmZjOTZkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcApAQCAtMTQ4LDQgKzE0OCwzIEBACiAjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcCIKICNpbmNsdWRlICJXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIu
Y3BwIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIgotI2luY2x1ZGUgIldv
cmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMGVhZTY0Yy4uNTlmNjZi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGll
bnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3Jr
ZXJPYmplY3RQcm94eS5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVyLmgiCiAj
aW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUu
aD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWE4NTlhOS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlci5oIgotCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiVGlt
ZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCi0jaW5jbHVkZSAiV29ya2Vy
R2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCi0jaW5jbHVkZSAiV29y
a2VyVGhyZWFkLmgiCi0jaW5jbHVkZSA8cnVudGltZS9WTS5oPgotCi11c2luZyBuYW1lc3BhY2Ug
SW5zcGVjdG9yOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdvcmtlclNjcmlwdERlYnVnU2Vy
dmVyOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcihXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCwg
Y29uc3QgU3RyaW5nJiBtb2RlKQotICAgIDogU2NyaXB0RGVidWdTZXJ2ZXIoY29udGV4dC5zY3Jp
cHQoKS0+dm0oKSwgdHJ1ZSkKLSAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCkKLSAg
ICAsIG1fZGVidWdnZXJUYXNrTW9kZShtb2RlKQotewotfQotCi12b2lkIFdvcmtlclNjcmlwdERl
YnVnU2VydmVyOjphdHRhY2hEZWJ1Z2dlcigpCi17Ci0gICAgbV93b3JrZXJHbG9iYWxTY29wZS5z
Y3JpcHQoKS0+YXR0YWNoRGVidWdnZXIodGhpcyk7Ci0gICAgcmVjb21waWxlQWxsSlNGdW5jdGlv
bnMoKTsKLX0KLQotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6ZGV0YWNoRGVidWdnZXIo
Ym9vbCBza2lwUmVjb21waWxlKQotewotICAgIGlmIChtX3dvcmtlckdsb2JhbFNjb3BlLnNjcmlw
dCgpKQotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLnNjcmlwdCgpLT5kZXRhY2hEZWJ1Z2dl
cih0aGlzKTsKLSAgICBpZiAoIXNraXBSZWNvbXBpbGUpCi0gICAgICAgIHJlY29tcGlsZUFsbEpT
RnVuY3Rpb25zKCk7Ci19Ci0KLXZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGls
ZUFsbEpTRnVuY3Rpb25zKCkKLXsKLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKCkpOwot
ICAgIEpTQzo6RGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7Ci19Ci0KLXZvaWQg
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKCkKLXsKLSAg
ICBUaW1lckJhc2U6OmZpcmVUaW1lcnNJbk5lc3RlZEV2ZW50TG9vcCgpOwotCi0gICAgTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7Ci0gICAgZG8gewotICAgICAgICByZXN1bHQgPSBtX3dv
cmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLnJ1bkxvb3AoKS5ydW5Jbk1vZGUoJm1fd29ya2VyR2xv
YmFsU2NvcGUsIG1fZGVidWdnZXJUYXNrTW9kZSk7Ci0gICAgLy8gS2VlcCB3YWl0aW5nIHVudGls
IGV4ZWN1dGlvbiBpcyByZXN1bWVkLgotICAgIH0gd2hpbGUgKHJlc3VsdCAhPSBNZXNzYWdlUXVl
dWVUZXJtaW5hdGVkICYmICFtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMpOwotfQotCi12
b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZXBvcnRFeGNlcHRpb24oSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIEpTQzo6RXhjZXB0aW9uKiBleGNlcHRpb24pIGNvbnN0Ci17Ci0gICAgV2ViQ29y
ZTo6cmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7Ci19Ci0KLXZvaWQgV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXI6OmludGVycnVwdEFuZFJ1blRhc2soc3RkOjp1bmlxdWVfcHRyPFRhc2s+
KQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTMxOThhYi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXJfaAotI2RlZmluZSBXb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlcl9oCi0KLSNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2
ZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsK
LQotY2xhc3MgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9y
OjpTY3JpcHREZWJ1Z1NlcnZlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXIpOwotcHVibGljOgotICAgIFdvcmtlclNjcmlwdERlYnVnU2VydmVyKFdv
cmtlckdsb2JhbFNjb3BlJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgfldvcmtlclNjcmlwdERlYnVn
U2VydmVyKCkgeyB9Ci0KLSAgICBjbGFzcyBUYXNrIHsKLSAgICAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5UYXNrKCkgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBydW4oKSA9IDA7Ci0gICAgfTsKLQotICAgIHZpcnR1YWwgdm9pZCBy
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBpbnRlcnJ1cHRB
bmRSdW5UYXNrKHN0ZDo6dW5pcXVlX3B0cjxUYXNrPik7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIGF0dGFjaERlYnVnZ2VyKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRldGFj
aERlYnVnZ2VyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3ZlcnJpZGU7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVjdCopIG92ZXJyaWRlIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKCkgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBib29sIGlzQ29udGVudFNjcmlwdChKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlv
bihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RXhjZXB0aW9uKikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAg
ICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsKLSAgICBTdHJpbmcgbV9k
ZWJ1Z2dlclRhc2tNb2RlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKaW5kZXggMzdjOTg0Yy4uNmUxYmVlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCkBAIC01MCw3ICs1
MCw2IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cCIKLSNpbmNsdWRlICJJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zdHJ1
bWVudGluZ0FnZW50cy5jcHAiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwIgog
I2luY2x1ZGUgIlBhZ2VDb25zb2xlQWdlbnQuY3BwIgpAQCAtNjIsNyArNjEsMyBAQAogI2luY2x1
ZGUgIldlYkRlYnVnZ2VyQWdlbnQuY3BwIgogI2luY2x1ZGUgIldlYkluamVjdGVkU2NyaXB0SG9z
dC5jcHAiCiAjaW5jbHVkZSAiV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCIKLSNpbmNsdWRl
ICJXb3JrZXJDb25zb2xlQWdlbnQuY3BwIgotI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQu
Y3BwIgotI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIgotI2luY2x1ZGUg
IldvcmtlclJ1bnRpbWVBZ2VudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRleCAyNzczN2Uz
Li5iOTE1ZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29uc29sZUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQ0LDEwICs0NCw5IEBAIGlubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShQYWdl
JiBwYWdlLCBzdGQ6OnVuaXF1CiAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVu
dGluZ0FnZW50c0ZvclBhZ2UocGFnZSksIFdURjo6bW92ZShtZXNzYWdlKSk7CiB9CiAKLWlubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShXb3Jr
ZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0
b3I6OkNvbnNvbGVNZXNzYWdlPiBtZXNzYWdlKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckdsb2JhbFNjb3BlKiwgc3RkOjp1
bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KQogewotICAgIGlmIChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0Zv
cldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSkKLSAgICAgICAgYWRkTWVzc2Fn
ZVRvQ29uc29sZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIFdURjo6bW92ZShtZXNzYWdlKSk7
CisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjc2MzQ+IFdlYiBJbnNwZWN0
b3I6IHN1cHBvcnQgZGVidWdnaW5nIHdlYiB3b3JrZXJzCiB9CiAKIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAppbmRleCAzMzk3NjAwLi5iNmJmNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC01MCw3ICs1MCw2IEBACiAjaW5jbHVkZSAi
SW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVwbGF5QWdlbnQuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9y
V29ya2VyQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVk
ZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgpAQCAtMTY5
LDcgKzE2OCw2IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFn
ZSYgcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgbV9hZ2VudHMuYXBwZW5k
KHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4ocGFnZUNvbnRleHQs
IG1fZG9tQWdlbnQsIGRlYnVnZ2VyQWdlbnQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjpt
YWtlX3VuaXF1ZTxJbnNwZWN0b3JIZWFwQWdlbnQ+KHBhZ2VDb250ZXh0KSk7CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
PihwYWdlQ29udGV4dCwgcGFnZUFnZW50KSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFr
ZV91bmlxdWU8SW5zcGVjdG9yV29ya2VyQWdlbnQ+KHBhZ2VDb250ZXh0KSk7CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ+KHBhZ2VD
b250ZXh0KSk7CiAKICAgICBBU1NFUlQobV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmNvbW1hbmRM
aW5lQVBJSG9zdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZTUyN2RhYS4uMWFkMDdmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JOZXR3b3JrQWdlbnQuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1l
bGluZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yV29ya2VyQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVk
ZSAiUGFnZURlYnVnZ2VyQWdlbnQuaCIKQEAgLTYyLDEwICs2MSw2IEBACiAjaW5jbHVkZSAiU3R5
bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIldlYkNvbnNv
bGVBZ2VudC5oIgotI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIldvcmtlclJ1bnRpbWVBZ2VudC5o
IgotI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8aW5zcGVj
dG9yL1NjcmlwdEFyZ3VtZW50cy5oPgpAQCAtOTExLDM4ICs5MDYsNiBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudAogICAgICAgICBkb21TdG9yYWdlQWdlbnQtPmRpZERpc3BhdGNoRE9NU3RvcmFn
ZUV2ZW50KGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzdG9yYWdlVHlwZSwgc2VjdXJpdHlPcmln
aW4sIHBhZ2UpOwogfQogCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkUGF1
c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50aW5nQWdlbnRzKQotewotICAgIGlmIChJbnNwZWN0b3JXb3JrZXJBZ2VudCogd29ya2VyQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvcldvcmtlckFnZW50KCkpCi0gICAgICAg
IHJldHVybiB3b3JrZXJBZ2VudC0+c2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0KCk7
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkU3RhcnRXb3JrZXJHbG9iYWxTY29wZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgV29ya2VyR2xvYmFsU2NvcGVQcm94eSogd29ya2VyR2xvYmFsU2NvcGVQ
cm94eSwgY29uc3QgVVJMJiB1cmwpCi17Ci0gICAgaWYgKEluc3BlY3RvcldvcmtlckFnZW50KiB3
b3JrZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yV29ya2VyQWdlbnQoKSkK
LSAgICAgICAgd29ya2VyQWdlbnQtPmRpZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xv
YmFsU2NvcGVQcm94eSwgdXJsKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdChXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFs
U2NvcGUsIGludCB3b3JrZXJUaHJlYWRTdGFydE1vZGUpCi17Ci0gICAgaWYgKHdvcmtlclRocmVh
ZFN0YXJ0TW9kZSAhPSBQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25TdGFydCkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSk7
Ci0gICAgaWYgKCFpbnN0cnVtZW50aW5nQWdlbnRzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoV29ya2VyUnVudGltZUFnZW50KiBydW50aW1lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LT53b3JrZXJSdW50aW1lQWdlbnQoKSkKLSAgICAgICAgcnVudGltZUFnZW50LT5wYXVzZVdvcmtl
ckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246Ondvcmtlckdsb2JhbFNjb3BlVGVybWluYXRlZEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV29ya2VyR2xvYmFsU2NvcGVQcm94eSogcHJv
eHkpCi17Ci0gICAgaWYgKEluc3BlY3RvcldvcmtlckFnZW50KiB3b3JrZXJBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yV29ya2VyQWdlbnQoKSkKLSAgICAgICAgd29ya2VyQWdl
bnQtPndvcmtlckdsb2JhbFNjb3BlVGVybWluYXRlZChwcm94eSk7Ci19Ci0KICNpZiBFTkFCTEUo
V0VCX1NPQ0tFVFMpCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2Vi
U29ja2V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCkKIHsKQEAgLTExOTks
MTkgKzExNjIsNiBAQCBJbnN0cnVtZW50aW5nQWdlbnRzKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246Omluc3RydW1lbnRpbmdBZ2VudHNGb3JSZW5kZXJlcihSZQogICAgIHJldHVybiBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yRnJhbWUocmVuZGVyZXItPmZyYW1lKCkpOwogfQogCi1JbnN0cnVtZW50
aW5nQWdlbnRzKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omluc3RydW1lbnRpbmdBZ2VudHNG
b3JXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUp
Ci17Ci0gICAgcmV0dXJuIHdvcmtlckdsb2JhbFNjb3BlID8gJndvcmtlckdsb2JhbFNjb3BlLT53
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkubV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpIDog
bnVsbHB0cjsKLX0KLQotSW5zdHJ1bWVudGluZ0FnZW50cyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yTm9uRG9jdW1lbnRDb250ZXh0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUKGNvbnRleHQpOwotICAgIGlmIChp
czxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpKQotICAgICAgICByZXR1cm4gaW5zdHJ1bWVu
dGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KSk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpsYXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGluc3RydW1lbnRpbmdBZ2VudHMpCiB7CiAgICAgaWYgKEluc3BlY3RvckxheWVyVHJlZUFnZW50
KiBsYXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yTGF5ZXJUcmVl
QWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaAppbmRleCA2OTZkODI0Li4xYjRmM2M2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xMDAsNyAr
MTAwLDYgQEAgY2xhc3MgU3R5bGVSdWxlOwogY2xhc3MgVGhyZWFkYWJsZUxvYWRlckNsaWVudDsK
IGNsYXNzIFVSTDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwotY2xhc3MgV29ya2VyR2xvYmFs
U2NvcGVQcm94eTsKIGNsYXNzIFhNTEh0dHBSZXF1ZXN0OwogCiBzdHJ1Y3QgUmVwbGF5UG9zaXRp
b247CkBAIC0yMjUsMTEgKzIyNCw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIGRpZERp
c3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmln
aW4qLCBQYWdlKik7CiAKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRQYXVzZURlZGljYXRlZFdvcmtl
ck9uU3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotICAgIHN0YXRpYyB2b2lkIGRpZFN0
YXJ0V29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFdvcmtlckdsb2Jh
bFNjb3BlUHJveHkqLCBjb25zdCBVUkwmKTsKLSAgICBzdGF0aWMgdm9pZCB3b3JrZXJHbG9iYWxT
Y29wZVRlcm1pbmF0ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFdvcmtlckdsb2JhbFNjb3Bl
UHJveHkqKTsKLSAgICBzdGF0aWMgdm9pZCB3aWxsRXZhbHVhdGVXb3JrZXJTY3JpcHQoV29ya2Vy
R2xvYmFsU2NvcGUqLCBpbnQgd29ya2VyVGhyZWFkU3RhcnRNb2RlKTsKLQogI2lmIEVOQUJMRShX
RUJfUkVQTEFZKQogICAgIHN0YXRpYyB2b2lkIHNlc3Npb25DcmVhdGVkKFBhZ2UmLCBSZWZQdHI8
UmVwbGF5U2Vzc2lvbj4mJik7CiAgICAgc3RhdGljIHZvaWQgc2Vzc2lvbkxvYWRlZChQYWdlJiwg
UmVmUHRyPFJlcGxheVNlc3Npb24+JiYpOwpAQCAtMzk5LDEwICszOTMsNiBAQCBwcml2YXRlOgog
CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiwgUGFn
ZSopOwogCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkU3RhcnRXb3Jr
ZXJHbG9iYWxTY29wZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdvcmtlckdsb2JhbFNjb3Bl
UHJveHkqLCBjb25zdCBVUkwmKTsKLSAgICBzdGF0aWMgdm9pZCB3b3JrZXJHbG9iYWxTY29wZVRl
cm1pbmF0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXb3JrZXJHbG9iYWxTY29wZVByb3h5
Kik7Ci0KICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKICAgICBzdGF0aWMgdm9pZCBzZXNzaW9uQ3Jl
YXRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFJlZlB0cjxSZXBsYXlTZXNzaW9uPiYmKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXNzaW9uTG9hZGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
UmVmUHRyPFJlcGxheVNlc3Npb24+JiYpOwpAQCAtNDQ2LDkgKzQzNiw2IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1
bWVudChEb2N1bWVudCopOwogICAgIHN0YXRpYyBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0Kik7CiAKLSAgICBzdGF0aWMgSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3Bl
KFdvcmtlckdsb2JhbFNjb3BlKik7Ci0gICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JOb25Eb2N1bWVudENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwotCiAgICAgc3RhdGljIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHJldHJpZXZlVGlt
ZWxpbmVBZ2VudChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKIAogICAg
IHN0YXRpYyB2b2lkIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKEluc3RydW1lbnRpbmdBZ2Vu
dHMmLCBib29sIGlzRE9NRXZlbnQsIGNvbnN0IFN0cmluZyYgZXZlbnROYW1lLCBib29sIHN5bmNo
cm9ub3VzKTsKQEAgLTEwNjUsMjYgKzEwNTIsNiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYgawog
ICAgICAgICBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwoKmluc3RydW1lbnRpbmdBZ2Vu
dHMsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzdG9yYWdlVHlwZSwgc2VjdXJpdHlPcmlnaW4s
IHBhZ2UpOwogfQogCi1pbmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNob3Vs
ZFBhdXNlRGVkaWNhdGVkV29ya2VyT25TdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQotewotICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhmYWxzZSk7Ci0gICAgaWYg
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5n
QWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIHNob3VsZFBhdXNlRGVk
aWNhdGVkV29ya2VyT25TdGFydEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMpOwotICAgIHJldHVy
biBmYWxzZTsKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRT
dGFydFdvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFdv
cmtlckdsb2JhbFNjb3BlUHJveHkqIHByb3h5LCBjb25zdCBVUkwmIHVybCkKLXsKLSAgICBpZiAo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdB
Z2VudHNGb3JDb250ZXh0KGNvbnRleHQpKQotICAgICAgICBkaWRTdGFydFdvcmtlckdsb2JhbFNj
b3BlSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJveHksIHVybCk7Ci19Ci0KLWlubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFdvcmtlckdsb2JhbFNjb3BlUHJveHkq
IHByb3h5KQotewotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIHdv
cmtlckdsb2JhbFNjb3BlVGVybWluYXRlZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb3h5
KTsKLX0KLQogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0KERvY3VtZW50KiBkb2N1bWVudCwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwpCiB7CkBAIC0xMjc2
LDcgKzEyNDMsNyBAQCBpbmxpbmUgSW5zdHJ1bWVudGluZ0FnZW50cyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udAogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS0+cGFn
ZSgpKTsKLSAgICByZXR1cm4gaW5zdHJ1bWVudGluZ0FnZW50c0Zvck5vbkRvY3VtZW50Q29udGV4
dChjb250ZXh0KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogaW5saW5lIEluc3RydW1lbnRp
bmdBZ2VudHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVudGluZ0FnZW50c0Zv
ckZyYW1lKEZyYW1lKiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGYwMWU3MDMuLjdlNWI5NmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtOTIs
NyArOTIsNyBAQCBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IGZpbmFsCiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZW51bSBJbnNwZWN0b3JUeXBlIHsgUGFnZUluc3Bl
Y3RvciwgV29ya2VySW5zcGVjdG9yIH07CisgICAgZW51bSBJbnNwZWN0b3JUeXBlIHsgUGFnZUlu
c3BlY3RvciB9OwogCiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChXZWJBZ2VudENvbnRleHQm
LCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JUeXBlKTsKICAgICB2aXJ0dWFsIH5JbnNw
ZWN0b3JUaW1lbGluZUFnZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV2ViQWdlbnRCYXNlLmgKaW5kZXggMDMxZTRjOS4uZjY4MjMzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldlYkFnZW50QmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXZWJBZ2VudEJhc2UuaApAQCAtMzQsNyAr
MzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7
CiBjbGFzcyBQYWdlOwotY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CiAKIC8vIEZJWE1FOiBtb3Zl
IHRoaXMgdG8gSW5zcGVjdG9yIG5hbWVzcGFjZSB3aGVuIHJlbWFpbmluZyBhZ2VudHMgbW92ZS4K
IHN0cnVjdCBXZWJBZ2VudENvbnRleHQgOiBwdWJsaWMgSW5zcGVjdG9yOjpBZ2VudENvbnRleHQg
ewpAQCAtNTcsMTYgKzU2LDYgQEAgc3RydWN0IFBhZ2VBZ2VudENvbnRleHQgOiBwdWJsaWMgV2Vi
QWdlbnRDb250ZXh0IHsKICAgICBQYWdlJiBpbnNwZWN0ZWRQYWdlOwogfTsKIAotc3RydWN0IFdv
cmtlckFnZW50Q29udGV4dCA6IHB1YmxpYyBXZWJBZ2VudENvbnRleHQgewotICAgIFdvcmtlckFn
ZW50Q29udGV4dChXZWJBZ2VudENvbnRleHQmIGNvbnRleHQsIFdvcmtlckdsb2JhbFNjb3BlJiB3
b3JrZXJHbG9iYWxTY29wZSkKLSAgICAgICAgOiBXZWJBZ2VudENvbnRleHQoY29udGV4dCkKLSAg
ICAgICAgLCB3b3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSkKLSAgICB7Ci0gICAg
fQotCi0gICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlOwotfTsKLQogY2xh
c3MgSW5zcGVjdG9yQWdlbnRCYXNlIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yQWdlbnRC
YXNlIHsKIHByb3RlY3RlZDoKICAgICBJbnNwZWN0b3JBZ2VudEJhc2UoY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJBZ2VudENvbnRleHQmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZWVkNDcyNS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjI5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRp
c3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvcldvcmtlckFnZW50LmgiCi0KLSNpbmNs
dWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCi0jaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVkZSAi
V29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZERpc3BhdGNoZXJzLmg+Ci0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVl
cy5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEluc3BlY3Rv
cjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6
V29ya2VyRnJvbnRlbmRDaGFubmVsIDogcHVibGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OlBh
Z2VJbnNwZWN0b3IgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAg
IGV4cGxpY2l0IFdvcmtlckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3I6OldvcmtlckZyb250ZW5k
RGlzcGF0Y2hlciogZnJvbnRlbmREaXNwYXRjaGVyLCBXb3JrZXJHbG9iYWxTY29wZVByb3h5KiBw
cm94eSkKLSAgICAgICAgOiBtX2Zyb250ZW5kRGlzcGF0Y2hlcihmcm9udGVuZERpc3BhdGNoZXIp
Ci0gICAgICAgICwgbV9wcm94eShwcm94eSkKLSAgICAgICAgLCBtX2lkKHNfbmV4dElkKyspCi0g
ICAgICAgICwgbV9jb25uZWN0ZWQoZmFsc2UpCi0gICAgewotICAgIH0KLSAgICB2aXJ0dWFsIH5X
b3JrZXJGcm9udGVuZENoYW5uZWwoKQotICAgIHsKLSAgICAgICAgZGlzY29ubmVjdEZyb21Xb3Jr
ZXJHbG9iYWxTY29wZSgpOwotICAgIH0KLQotICAgIGludCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aWQ7IH0KLSAgICBXb3JrZXJHbG9iYWxTY29wZVByb3h5KiBwcm94eSgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJveHk7IH0KLQotICAgIHZvaWQgY29ubmVjdFRvV29ya2VyR2xvYmFsU2NvcGUoKQotICAg
IHsKLSAgICAgICAgaWYgKG1fY29ubmVjdGVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBtX2Nvbm5lY3RlZCA9IHRydWU7Ci0gICAgICAgIG1fcHJveHktPmNvbm5lY3RUb0luc3BlY3Rv
cih0aGlzKTsKLSAgICB9Ci0KLSAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyR2xvYmFsU2Nv
cGUoKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2Nvbm5lY3RlZCkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgbV9jb25uZWN0ZWQgPSBmYWxzZTsKLSAgICAgICAgbV9wcm94eS0+ZGlzY29u
bmVjdEZyb21JbnNwZWN0b3IoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgLy8gV29ya2VyR2xv
YmFsU2NvcGVQcm94eTo6UGFnZUluc3BlY3RvciBpbXBsZW1lbnRhdGlvbgotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZVN0cmlu
Zykgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcGFyc2Vk
TWVzc2FnZTsKLSAgICAgICAgaWYgKCFJbnNwZWN0b3JWYWx1ZTo6cGFyc2VKU09OKG1lc3NhZ2VT
dHJpbmcsIHBhcnNlZE1lc3NhZ2UpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1lc3NhZ2VPYmplY3Q7Ci0gICAgICAgIGlmICghcGFyc2Vk
TWVzc2FnZS0+YXNPYmplY3QobWVzc2FnZU9iamVjdCkpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmRpc3BhdGNoTWVzc2FnZUZyb21Xb3JrZXIo
bV9pZCwgbWVzc2FnZU9iamVjdCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yOjpXb3JrZXJGcm9u
dGVuZERpc3BhdGNoZXIqIG1fZnJvbnRlbmREaXNwYXRjaGVyOwotICAgIFdvcmtlckdsb2JhbFNj
b3BlUHJveHkqIG1fcHJveHk7Ci0gICAgaW50IG1faWQ7Ci0gICAgYm9vbCBtX2Nvbm5lY3RlZDsK
LSAgICBzdGF0aWMgaW50IHNfbmV4dElkOwotfTsKLQotaW50IEluc3BlY3RvcldvcmtlckFnZW50
OjpXb3JrZXJGcm9udGVuZENoYW5uZWw6OnNfbmV4dElkID0gMTsKLQotSW5zcGVjdG9yV29ya2Vy
QWdlbnQ6Okluc3BlY3RvcldvcmtlckFnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKLSAg
ICA6IEluc3BlY3RvckFnZW50QmFzZShBU0NJSUxpdGVyYWwoIldvcmtlciIpLCBjb250ZXh0KQot
ICAgICwgbV9mcm9udGVuZERpc3BhdGNoZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3I6Oldv
cmtlckZyb250ZW5kRGlzcGF0Y2hlcj4oY29udGV4dC5mcm9udGVuZFJvdXRlcikpCi0gICAgLCBt
X2JhY2tlbmREaXNwYXRjaGVyKEluc3BlY3Rvcjo6V29ya2VyQmFja2VuZERpc3BhdGNoZXI6OmNy
ZWF0ZShjb250ZXh0LmJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKSkKLXsKLSAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMuc2V0SW5zcGVjdG9yV29ya2VyQWdlbnQodGhpcyk7Ci19Ci0KLUluc3BlY3Rv
cldvcmtlckFnZW50Ojp+SW5zcGVjdG9yV29ya2VyQWdlbnQoKQotewotICAgIG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5zZXRJbnNwZWN0b3JXb3JrZXJBZ2VudChudWxscHRyKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKLXsKLX0K
LQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQotewotICAgIG1fc2hvdWxkUGF1c2VEZWRp
Y2F0ZWRXb3JrZXJPblN0YXJ0ID0gZmFsc2U7Ci0gICAgRXJyb3JTdHJpbmcgdW51c2VkOwotICAg
IGRpc2FibGUodW51c2VkKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKLXsKLSAgICBtX2VuYWJsZWQgPSB0cnVlOwotCi0gICAgY3JlYXRlV29y
a2VyRnJvbnRlbmRDaGFubmVsc0ZvckV4aXN0aW5nV29ya2VycygpOwotfQotCi12b2lkIEluc3Bl
Y3RvcldvcmtlckFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKLXsKLSAgICBtX2VuYWJsZWQg
PSBmYWxzZTsKLQotICAgIGRlc3Ryb3lXb3JrZXJGcm9udGVuZENoYW5uZWxzKCk7Ci19Ci0KLXZv
aWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNhbkluc3BlY3RXb3JrZXJzKEVycm9yU3RyaW5nJiwg
Ym9vbCogcmVzdWx0KQotewotICAgICpyZXN1bHQgPSB0cnVlOwotfQotCi12b2lkIEluc3BlY3Rv
cldvcmtlckFnZW50Ojpjb25uZWN0VG9Xb3JrZXIoRXJyb3JTdHJpbmcmIGVycm9yLCBpbnQgd29y
a2VySWQpCi17Ci0gICAgV29ya2VyRnJvbnRlbmRDaGFubmVsKiBjaGFubmVsID0gbV9pZFRvQ2hh
bm5lbC5nZXQod29ya2VySWQpOwotICAgIGlmIChjaGFubmVsKQotICAgICAgICBjaGFubmVsLT5j
b25uZWN0VG9Xb3JrZXJHbG9iYWxTY29wZSgpOwotICAgIGVsc2UKLSAgICAgICAgZXJyb3IgPSBB
U0NJSUxpdGVyYWwoIldvcmtlciBpcyBnb25lIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29ya2Vy
QWdlbnQ6OmRpc2Nvbm5lY3RGcm9tV29ya2VyKEVycm9yU3RyaW5nJiBlcnJvciwgaW50IHdvcmtl
cklkKQotewotICAgIFdvcmtlckZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCA9IG1faWRUb0NoYW5u
ZWwuZ2V0KHdvcmtlcklkKTsKLSAgICBpZiAoY2hhbm5lbCkKLSAgICAgICAgY2hhbm5lbC0+ZGlz
Y29ubmVjdEZyb21Xb3JrZXJHbG9iYWxTY29wZSgpOwotICAgIGVsc2UKLSAgICAgICAgZXJyb3Ig
PSBBU0NJSUxpdGVyYWwoIldvcmtlciBpcyBnb25lIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29y
a2VyQWdlbnQ6OnNlbmRNZXNzYWdlVG9Xb3JrZXIoRXJyb3JTdHJpbmcmIGVycm9yLCBpbnQgd29y
a2VySWQsIGNvbnN0IEluc3BlY3Rvck9iamVjdCYgbWVzc2FnZSkKLXsKLSAgICBXb3JrZXJGcm9u
dGVuZENoYW5uZWwqIGNoYW5uZWwgPSBtX2lkVG9DaGFubmVsLmdldCh3b3JrZXJJZCk7Ci0gICAg
aWYgKGNoYW5uZWwpCi0gICAgICAgIGNoYW5uZWwtPnByb3h5KCktPnNlbmRNZXNzYWdlVG9JbnNw
ZWN0b3IobWVzc2FnZS50b0pTT05TdHJpbmcoKSk7Ci0gICAgZWxzZQotICAgICAgICBlcnJvciA9
IEFTQ0lJTGl0ZXJhbCgiV29ya2VyIGlzIGdvbmUiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3Jr
ZXJBZ2VudDo6c2V0QXV0b2Nvbm5lY3RUb1dvcmtlcnMoRXJyb3JTdHJpbmcmLCBib29sIHZhbHVl
KQotewotICAgIG1fc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0ID0gdmFsdWU7Ci19
Ci0KLWJvb2wgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNob3VsZFBhdXNlRGVkaWNhdGVkV29ya2Vy
T25TdGFydCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3Jr
ZXJPblN0YXJ0OwotfQotCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpkaWRTdGFydFdvcmtl
ckdsb2JhbFNjb3BlKFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIHdvcmtlckdsb2JhbFNjb3BlUHJv
eHksIGNvbnN0IFVSTCYgdXJsKQotewotICAgIG1fZGVkaWNhdGVkV29ya2Vycy5zZXQod29ya2Vy
R2xvYmFsU2NvcGVQcm94eSwgdXJsLnN0cmluZygpKTsKLSAgICBpZiAobV9lbmFibGVkKQotICAg
ICAgICBjcmVhdGVXb3JrZXJGcm9udGVuZENoYW5uZWwod29ya2VyR2xvYmFsU2NvcGVQcm94eSwg
dXJsLnN0cmluZygpKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d29ya2VyR2xv
YmFsU2NvcGVUZXJtaW5hdGVkKFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIHByb3h5KQotewotICAg
IG1fZGVkaWNhdGVkV29ya2Vycy5yZW1vdmUocHJveHkpOwotICAgIGZvciAoV29ya2VyQ2hhbm5l
bHM6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvQ2hhbm5lbC5iZWdpbigpOyBpdCAhPSBtX2lkVG9DaGFu
bmVsLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIGlmIChwcm94eSA9PSBpdC0+dmFsdWUtPnByb3h5
KCkpIHsKLSAgICAgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT53b3JrZXJUZXJtaW5hdGVk
KGl0LT5rZXkpOwotICAgICAgICAgICAgZGVsZXRlIGl0LT52YWx1ZTsKLSAgICAgICAgICAgIG1f
aWRUb0NoYW5uZWwucmVtb3ZlKGl0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgIH0KLX0KLQotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y3JlYXRlV29ya2VyRnJvbnRl
bmRDaGFubmVsc0ZvckV4aXN0aW5nV29ya2VycygpCi17Ci0gICAgZm9yIChhdXRvJiB3b3JrZXIg
OiBtX2RlZGljYXRlZFdvcmtlcnMpCi0gICAgICAgIGNyZWF0ZVdvcmtlckZyb250ZW5kQ2hhbm5l
bCh3b3JrZXIua2V5LCB3b3JrZXIudmFsdWUpOwotfQotCi12b2lkIEluc3BlY3RvcldvcmtlckFn
ZW50OjpkZXN0cm95V29ya2VyRnJvbnRlbmRDaGFubmVscygpCi17Ci0gICAgZm9yIChhdXRvJiBj
aGFubmVsIDogbV9pZFRvQ2hhbm5lbC52YWx1ZXMoKSkgewotICAgICAgICBjaGFubmVsLT5kaXNj
b25uZWN0RnJvbVdvcmtlckdsb2JhbFNjb3BlKCk7Ci0gICAgICAgIGRlbGV0ZSBjaGFubmVsOwot
ICAgIH0KLSAgICBtX2lkVG9DaGFubmVsLmNsZWFyKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yV29y
a2VyQWdlbnQ6OmNyZWF0ZVdvcmtlckZyb250ZW5kQ2hhbm5lbChXb3JrZXJHbG9iYWxTY29wZVBy
b3h5KiB3b3JrZXJHbG9iYWxTY29wZVByb3h5LCBjb25zdCBTdHJpbmcmIHVybCkKLXsKLSAgICBX
b3JrZXJGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBuZXcgV29ya2VyRnJvbnRlbmRDaGFubmVs
KG1fZnJvbnRlbmREaXNwYXRjaGVyLmdldCgpLCB3b3JrZXJHbG9iYWxTY29wZVByb3h5KTsKLSAg
ICBtX2lkVG9DaGFubmVsLnNldChjaGFubmVsLT5pZCgpLCBjaGFubmVsKTsKLQotICAgIGlmICht
X3Nob3VsZFBhdXNlRGVkaWNhdGVkV29ya2VyT25TdGFydCkKLSAgICAgICAgY2hhbm5lbC0+Y29u
bmVjdFRvV29ya2VyR2xvYmFsU2NvcGUoKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+d29y
a2VyQ3JlYXRlZChjaGFubmVsLT5pZCgpLCB1cmwsIG1fc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3Jr
ZXJPblN0YXJ0KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDJmNWNlNy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBJbnNwZWN0b3JXb3JrZXJBZ2VudF9oCi0jZGVmaW5lIEluc3BlY3RvcldvcmtlckFnZW50
X2gKLQotI2luY2x1ZGUgIkluc3BlY3RvcldlYkFnZW50QmFzZS5oIgotI2luY2x1ZGUgPGluc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0KLW5hbWVzcGFjZSBJbnNwZWN0b3Igewot
Y2xhc3MgSW5zcGVjdG9yT2JqZWN0OwotY2xhc3MgV29ya2VyRnJvbnRlbmREaXNwYXRjaGVyOwot
fQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBVUkw7Ci1jbGFzcyBXb3JrZXJHbG9iYWxT
Y29wZVByb3h5OwotCi10eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKLQotY2xhc3MgSW5zcGVj
dG9yV29ya2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMg
SW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIgewotICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IEluc3BlY3RvcldvcmtlckFn
ZW50KFdlYkFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvcldvcmtlckFnZW50
KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7Ci0KLSAgICAvLyBDYWxsZWQgZnJv
bSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KLSAgICBib29sIHNob3VsZFBhdXNlRGVkaWNhdGVk
V29ya2VyT25TdGFydCgpIGNvbnN0OwotICAgIHZvaWQgZGlkU3RhcnRXb3JrZXJHbG9iYWxTY29w
ZShXb3JrZXJHbG9iYWxTY29wZVByb3h5KiwgY29uc3QgVVJMJik7Ci0gICAgdm9pZCB3b3JrZXJH
bG9iYWxTY29wZVRlcm1pbmF0ZWQoV29ya2VyR2xvYmFsU2NvcGVQcm94eSopOwotCi0gICAgLy8g
Q2FsbGVkIGZyb20gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIKLSAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuSW5zcGVjdFdvcmtl
cnMoRXJyb3JTdHJpbmcmLCBib29sKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbm5l
Y3RUb1dvcmtlcihFcnJvclN0cmluZyYsIGludCB3b3JrZXJJZCkgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyKEVycm9yU3RyaW5nJiwgaW50IHdvcmtlcklk
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihFcnJvclN0
cmluZyYsIGludCB3b3JrZXJJZCwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIG1l
c3NhZ2UpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvY29ubmVjdFRvV29ya2Vy
cyhFcnJvclN0cmluZyYsIGJvb2wgdmFsdWUpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIHZv
aWQgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsc0ZvckV4aXN0aW5nV29ya2VycygpOwotICAg
IHZvaWQgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsKFdvcmtlckdsb2JhbFNjb3BlUHJveHkq
LCBjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgdm9pZCBkZXN0cm95V29ya2VyRnJvbnRlbmRDaGFu
bmVscygpOwotCi0gICAgY2xhc3MgV29ya2VyRnJvbnRlbmRDaGFubmVsOwotCi0gICAgc3RkOjp1
bmlxdWVfcHRyPEluc3BlY3Rvcjo6V29ya2VyRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zyb250ZW5k
RGlzcGF0Y2hlcjsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5kRGlzcGF0Y2hl
cj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKLQotICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsK
LSAgICBib29sIG1fc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0IHsgZmFsc2UgfTsK
LSAgICAKLSAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBXb3JrZXJGcm9udGVuZENoYW5uZWwqPiBX
b3JrZXJDaGFubmVsczsKLSAgICBXb3JrZXJDaGFubmVscyBtX2lkVG9DaGFubmVsOwotICAgIHR5
cGVkZWYgSGFzaE1hcDxXb3JrZXJHbG9iYWxTY29wZVByb3h5KiwgU3RyaW5nPiBEZWRpY2F0ZWRX
b3JrZXJzOwotICAgIERlZGljYXRlZFdvcmtlcnMgbV9kZWRpY2F0ZWRXb3JrZXJzOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yV29y
a2VyQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JXb3JrZXJSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlclJlc291cmNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlYWEwZDAuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlclJlc291
cmNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJbnNwZWN0b3JXb3Jr
ZXJSZXNvdXJjZV9oCi0jZGVmaW5lIEluc3BlY3RvcldvcmtlclJlc291cmNlX2gKLQotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIElu
c3BlY3RvcldvcmtlclJlc291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yV29ya2Vy
UmVzb3VyY2U+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc3BlY3RvcldvcmtlclJlc291
cmNlPiBjcmVhdGUoaW50cHRyX3QgaWQsIGNvbnN0IFN0cmluZyYgdXJsLCBib29sIGlzU2hhcmVk
V29ya2VyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zcGVjdG9yV29y
a2VyUmVzb3VyY2UoaWQsIHVybCwgaXNTaGFyZWRXb3JrZXIpKTsKLSAgICB9Ci0KLSAgICBpbnRw
dHJfdCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIHVybCgp
IGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgYm9vbCBpc1NoYXJlZFdvcmtlcigpIGNvbnN0
IHsgcmV0dXJuIG1faXNTaGFyZWRXb3JrZXI7IH0KLXByaXZhdGU6Ci0gICAgSW5zcGVjdG9yV29y
a2VyUmVzb3VyY2UoaW50cHRyX3QgaWQsIGNvbnN0IFN0cmluZyYgdXJsLCBib29sIGlzU2hhcmVk
V29ya2VyKQotICAgICAgICA6IG1faWQoaWQpCi0gICAgICAgICwgbV91cmwodXJsKQotICAgICAg
ICAsIG1faXNTaGFyZWRXb3JrZXIoaXNTaGFyZWRXb3JrZXIpCi0gICAgewotICAgIH0KLQotICAg
IGludHB0cl90IG1faWQ7Ci0gICAgU3RyaW5nIG1fdXJsOwotICAgIGJvb2wgbV9pc1NoYXJlZFdv
cmtlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEluc3BlY3Rv
cldvcmtlclJlc291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmNwcAppbmRleCAxNGRhYjcxLi43M2RmYzkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCkBAIC0zMiwxMiArMzIs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMu
aCIKIAotI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJQYWdlLmgi
Ci0jaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmgiCi0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLQogdXNpbmcgbmFt
ZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsNyArNTEsNiBA
QCB2b2lkIEluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KCkKICAgICBtX2luc3BlY3RvckRPTUFn
ZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3BlY3Rvck5ldHdvcmtBZ2VudCA9IG51bGxwdHI7CiAg
ICAgbV9wYWdlUnVudGltZUFnZW50ID0gbnVsbHB0cjsKLSAgICBtX3dvcmtlclJ1bnRpbWVBZ2Vu
dCA9IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JUaW1lbGluZUFnZW50ID0gbnVsbHB0cjsKICAg
ICBtX3BlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGluZUFnZW50ID0gbnVsbHB0cjsKICAgICBtX2lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudCA9IG51bGxwdHI7CkBAIC02OSw3ICs2Miw2IEBAIHZvaWQg
SW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1faW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCA9IG51bGxwdHI7CiAgICAgbV9wYWdlRGVidWdnZXJBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9p
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKLSAgICBtX2luc3BlY3Rvcldvcmtl
ckFnZW50ID0gbnVsbHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggNDBkNGYxMi4u
YzNkYWNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oCkBAIC01NSwxMyArNTUsMTAgQEAgY2xhc3MgSW5zcGVjdG9yTmV0d29ya0FnZW50Owog
Y2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yUmVwbGF5QWdlbnQ7CiBj
bGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yV29ya2VyQWdlbnQ7
CiBjbGFzcyBQYWdlOwogY2xhc3MgUGFnZURlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBQYWdlUnVudGlt
ZUFnZW50OwogY2xhc3MgV2ViQ29uc29sZUFnZW50OwotY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7
Ci1jbGFzcyBXb3JrZXJSdW50aW1lQWdlbnQ7CiAKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHMg
OiBwdWJsaWMgUmVmQ291bnRlZDxJbnN0cnVtZW50aW5nQWdlbnRzPiB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSW5zdHJ1bWVudGluZ0FnZW50cyk7CkBAIC05OSw5ICs5Niw2IEBAIHB1Ymxp
YzoKICAgICBQYWdlUnVudGltZUFnZW50KiBwYWdlUnVudGltZUFnZW50KCkgY29uc3QgeyByZXR1
cm4gbV9wYWdlUnVudGltZUFnZW50OyB9CiAgICAgdm9pZCBzZXRQYWdlUnVudGltZUFnZW50KFBh
Z2VSdW50aW1lQWdlbnQqIGFnZW50KSB7IG1fcGFnZVJ1bnRpbWVBZ2VudCA9IGFnZW50OyB9CiAK
LSAgICBXb3JrZXJSdW50aW1lQWdlbnQqIHdvcmtlclJ1bnRpbWVBZ2VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fd29ya2VyUnVudGltZUFnZW50OyB9Ci0gICAgdm9pZCBzZXRXb3JrZXJSdW50aW1lQWdl
bnQoV29ya2VyUnVudGltZUFnZW50KiBhZ2VudCkgeyBtX3dvcmtlclJ1bnRpbWVBZ2VudCA9IGFn
ZW50OyB9Ci0KICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBpbnNwZWN0b3JUaW1lbGluZUFn
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JUaW1lbGluZUFnZW50OyB9CiAgICAgdm9p
ZCBzZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIGFnZW50
KSB7IG1faW5zcGVjdG9yVGltZWxpbmVBZ2VudCA9IGFnZW50OyB9CiAKQEAgLTEzMSw5ICsxMjUs
NiBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCogaW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dDsgfQogICAgIHZvaWQgc2V0SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChJbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQgPSBhZ2Vu
dDsgfQogCi0gICAgSW5zcGVjdG9yV29ya2VyQWdlbnQqIGluc3BlY3RvcldvcmtlckFnZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JXb3JrZXJBZ2VudDsgfQotICAgIHZvaWQgc2V0SW5z
cGVjdG9yV29ya2VyQWdlbnQoSW5zcGVjdG9yV29ya2VyQWdlbnQqIGFnZW50KSB7IG1faW5zcGVj
dG9yV29ya2VyQWdlbnQgPSBhZ2VudDsgfQotCiAgICAgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQq
IGluc3BlY3RvckxheWVyVHJlZUFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JMYXll
clRyZWVBZ2VudDsgfQogICAgIHZvaWQgc2V0SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQgPSBh
Z2VudDsgfQogCkBAIC0xNTAsNyArMTQxLDYgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3JET01B
Z2VudCogbV9pbnNwZWN0b3JET01BZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JOZXR3
b3JrQWdlbnQqIG1faW5zcGVjdG9yTmV0d29ya0FnZW50IHsgbnVsbHB0ciB9OwogICAgIFBhZ2VS
dW50aW1lQWdlbnQqIG1fcGFnZVJ1bnRpbWVBZ2VudCB7IG51bGxwdHIgfTsKLSAgICBXb3JrZXJS
dW50aW1lQWdlbnQqIG1fd29ya2VyUnVudGltZUFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIG1faW5zcGVjdG9yVGltZWxpbmVBZ2VudCB7IG51bGxwdHIgfTsK
ICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBtX3BlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogbV9pbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQgeyBudWxscHRyIH07CkBAIC0xNjIsNyArMTUyLDYgQEAgcHJp
dmF0ZToKICAgICBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIG1faW5zcGVjdG9y
RGVidWdnZXJBZ2VudCB7IG51bGxwdHIgfTsKICAgICBQYWdlRGVidWdnZXJBZ2VudCogbV9wYWdl
RGVidWdnZXJBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
KiBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQgeyBudWxscHRyIH07Ci0gICAgSW5zcGVjdG9y
V29ya2VyQWdlbnQqIG1faW5zcGVjdG9yV29ya2VyQWdlbnQgeyBudWxscHRyIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvUGFnZUNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25z
b2xlQWdlbnQuaAppbmRleCA0Yzc1OGYwLi44YWIxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKQEAgLTQ3LDcgKzQ3LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgflBhZ2VDb25zb2xlQWdlbnQoKSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFs
IGJvb2wgaXNXb3JrZXJBZ2VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGNsZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkSW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQp
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVNj
cmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGU3YzVmOTMuLmNiNjRhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC01Miw3ICs1
Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6UGFnZVNjcmlwdERlYnVnU2VydmVyKFBhZ2UmIHBhZ2Up
Ci0gICAgOiBTY3JpcHREZWJ1Z1NlcnZlcihXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNvbW1v
blZNKCksIGZhbHNlKQorICAgIDogU2NyaXB0RGVidWdTZXJ2ZXIoV2ViQ29yZTo6SlNET01XaW5k
b3dCYXNlOjpjb21tb25WTSgpKQogICAgICwgbV9wYWdlKHBhZ2UpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNzE5NDg2Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV29ya2VyQ29uc29sZUFnZW50LmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV29y
a2VyQ29uc29sZUFnZW50OjpXb3JrZXJDb25zb2xlQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBj
b250ZXh0KQotICAgIDogV2ViQ29uc29sZUFnZW50KGNvbnRleHQpCi17Ci19Ci0KLXZvaWQgV29y
a2VyQ29uc29sZUFnZW50OjphZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nJiBlcnJvciwgaW50
KQotewotICAgIGVycm9yID0gQVNDSUlMaXRlcmFsKCJhZGRJbnNwZWN0ZWROb2RlIGlzIG5vdCBz
dXBwb3J0ZWQgZm9yIHdvcmtlcnMiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMjRlODMwLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0g
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBXb3JrZXJDb25zb2xlQWdlbnRfaAotI2RlZmluZSBXb3JrZXJDb25zb2xlQWdl
bnRfaAotCi0jaW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCi0jaW5jbHVkZSAiV2Vi
Q29uc29sZUFnZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgV29ya2VyQ29u
c29sZUFnZW50IGZpbmFsIDogcHVibGljIFdlYkNvbnNvbGVBZ2VudCB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV29ya2VyQ29uc29sZUFnZW50KTsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKLXB1YmxpYzoKLSAgICBXb3JrZXJDb25zb2xlQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0
Jik7Ci0gICAgdmlydHVhbCB+V29ya2VyQ29uc29sZUFnZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFs
IGJvb2wgaXNXb3JrZXJBZ2VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQot
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgYWRkSW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyYs
IGludCBub2RlSWQpIG92ZXJyaWRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gIWRlZmluZWQoV29ya2VyQ29uc29sZUFnZW50X2gpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMxYjMwZmYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM3ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuaCIKLQot
I2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKLSNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHQuaD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmg+Ci0jaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmg+Ci0jaW5j
bHVkZSA8d3RmL0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+Ci0jaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIHsKLQotU3RhdGljTG9jayB3b3JrZXJE
ZWJ1Z2dlckFnZW50c011dGV4OwotCi10eXBlZGVmIEhhc2hNYXA8V29ya2VyVGhyZWFkKiwgV29y
a2VyRGVidWdnZXJBZ2VudCo+IFdvcmtlckRlYnVnZ2VyQWdlbnRzOwotCi1Xb3JrZXJEZWJ1Z2dl
ckFnZW50cyYgd29ya2VyRGVidWdnZXJBZ2VudHMoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxXb3JrZXJEZWJ1Z2dlckFnZW50cz4gYWdlbnRzOwotCi0gICAgcmV0dXJuIGFnZW50czsK
LX0KLQotY2xhc3MgUnVuSW5zcGVjdG9yQ29tbWFuZHNUYXNrIDogcHVibGljIFdvcmtlclNjcmlw
dERlYnVnU2VydmVyOjpUYXNrIHsKLXB1YmxpYzoKLSAgICBSdW5JbnNwZWN0b3JDb21tYW5kc1Rh
c2soV29ya2VyVGhyZWFkKiB0aHJlYWQsIFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxT
Y29wZSkKLSAgICAgICAgOiBtX3RocmVhZCh0aHJlYWQpCi0gICAgICAgICwgbV93b3JrZXJHbG9i
YWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSkgeyB9Ci0gICAgdmlydHVhbCB+UnVuSW5zcGVjdG9y
Q29tbWFuZHNUYXNrKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJ1bigpIG92ZXJyaWRlCi0gICAg
ewotICAgICAgICAvLyBQcm9jZXNzIGFsbCBxdWV1ZWQgZGVidWdnZXIgY29tbWFuZHMuIEl0IGlz
IHNhZmUgdG8gdXNlIG1fd29ya2VyR2xvYmFsU2NvcGUgaGVyZQotICAgICAgICAvLyBiZWNhdXNl
IGl0IGlzIGFsaXZlIGlmIFJ1bldvcmtlckxvb3AgaXMgbm90IHRlcm1pbmF0ZWQsIG90aGVyd2lz
ZSBpdCB3aWxsCi0gICAgICAgIC8vIGp1c3QgYmUgaWdub3JlZC4gV29ya2VyVGhyZWFkIGlzIGNl
cnRhaW5seSBhbGl2ZSBpZiB0aGlzIHRhc2sgaXMgYmVpbmcgZXhlY3V0ZWQuCi0gICAgICAgIHdo
aWxlIChNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQgPT0gbV90aHJlYWQtPnJ1bkxvb3AoKS5y
dW5Jbk1vZGUobV93b3JrZXJHbG9iYWxTY29wZSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdn
ZXJUYXNrTW9kZSwgV29ya2VyUnVuTG9vcDo6RG9udFdhaXRGb3JNZXNzYWdlKSkgeyB9Ci0gICAg
fQotCi1wcml2YXRlOgotICAgIFdvcmtlclRocmVhZCogbV90aHJlYWQ7Ci0gICAgV29ya2VyR2xv
YmFsU2NvcGUqIG1fd29ya2VyR2xvYmFsU2NvcGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZQotCi1j
b25zdCBjaGFyKiBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlID0gImRlYnVn
Z2VyIjsKLQotV29ya2VyRGVidWdnZXJBZ2VudDo6V29ya2VyRGVidWdnZXJBZ2VudChXb3JrZXJB
Z2VudENvbnRleHQmIGNvbnRleHQpCi0gICAgOiBXZWJEZWJ1Z2dlckFnZW50KGNvbnRleHQpCi0g
ICAgLCBtX2luc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQud29ya2VyR2xvYmFsU2Nv
cGUpCi17Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sod29ya2VyRGVidWdn
ZXJBZ2VudHNNdXRleCk7Ci0gICAgd29ya2VyRGVidWdnZXJBZ2VudHMoKS5zZXQoJmNvbnRleHQu
d29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCksIHRoaXMpOwotfQotCi1Xb3JrZXJEZWJ1Z2dlckFn
ZW50Ojp+V29ya2VyRGVidWdnZXJBZ2VudCgpCi17Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRp
Y0xvY2s+IGxvY2sod29ya2VyRGVidWdnZXJBZ2VudHNNdXRleCk7Ci0KLSAgICBBU1NFUlQod29y
a2VyRGVidWdnZXJBZ2VudHMoKS5jb250YWlucygmbV9pbnNwZWN0ZWRXb3JrZXJHbG9iYWxTY29w
ZS50aHJlYWQoKSkpOwotICAgIHdvcmtlckRlYnVnZ2VyQWdlbnRzKCkucmVtb3ZlKCZtX2luc3Bl
Y3RlZFdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpKTsKLX0KLQotdm9pZCBXb3JrZXJEZWJ1Z2dl
ckFnZW50OjppbnRlcnJ1cHRBbmREaXNwYXRjaEluc3BlY3RvckNvbW1hbmRzKFdvcmtlclRocmVh
ZCogdGhyZWFkKQotewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHdvcmtl
ckRlYnVnZ2VyQWdlbnRzTXV0ZXgpOwotCi0gICAgaWYgKFdvcmtlckRlYnVnZ2VyQWdlbnQqIGFn
ZW50ID0gd29ya2VyRGVidWdnZXJBZ2VudHMoKS5nZXQodGhyZWFkKSkgewotICAgICAgICBXb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlciYgd29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIgPSBzdGF0aWNfY2Fz
dDxXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciY+KGFnZW50LT5zY3JpcHREZWJ1Z1NlcnZlcigpKTsK
LSAgICAgICAgd29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaW50ZXJydXB0QW5kUnVuVGFzayhzdGQ6
Om1ha2VfdW5pcXVlPFJ1bkluc3BlY3RvckNvbW1hbmRzVGFzaz4odGhyZWFkLCAmYWdlbnQtPm1f
aW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGUpKTsKLSAgICB9Ci19Ci0KLXZvaWQgV29ya2VyRGVi
dWdnZXJBZ2VudDo6YnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKLXsKLSAgICBtX2luc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlLmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkxvZywgbWVzc2Fn
ZSk7Ci19Ci0KLUluamVjdGVkU2NyaXB0IFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmluamVjdGVkU2Ny
aXB0Rm9yRXZhbChFcnJvclN0cmluZyYgZXJyb3IsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4
dElkKQotewotICAgIGlmIChleGVjdXRpb25Db250ZXh0SWQpIHsKLSAgICAgICAgZXJyb3IgPSBB
U0NJSUxpdGVyYWwoIkV4ZWN1dGlvbiBjb250ZXh0IGlkIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHdv
cmtlcnMgYXMgdGhlcmUgaXMgb25seSBvbmUgZXhlY3V0aW9uIGNvbnRleHQuIik7Ci0gICAgICAg
IHJldHVybiBJbmplY3RlZFNjcmlwdCgpOwotICAgIH0KLQotICAgIEpTQzo6RXhlY1N0YXRlKiBz
Y3JpcHRTdGF0ZSA9IGV4ZWNTdGF0ZUZyb21Xb3JrZXJHbG9iYWxTY29wZSgmbV9pbnNwZWN0ZWRX
b3JrZXJHbG9iYWxTY29wZSk7Ci0gICAgcmV0dXJuIGluamVjdGVkU2NyaXB0TWFuYWdlcigpLmlu
amVjdGVkU2NyaXB0Rm9yKHNjcmlwdFN0YXRlKTsKLX0KLQotdm9pZCBXb3JrZXJEZWJ1Z2dlckFn
ZW50OjptdXRlQ29uc29sZSgpCi17Ci0gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNv
bGUgZm9yIHdvcmtlcnMuCi19Ci0KLXZvaWQgV29ya2VyRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29u
c29sZSgpCi17Ci0gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdvcmtl
cnMuCi19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1NTY2NmVmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRp
b24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV29ya2Vy
RGVidWdnZXJBZ2VudF9oCi0jZGVmaW5lIFdvcmtlckRlYnVnZ2VyQWdlbnRfaAotCi0jaW5jbHVk
ZSAiV2ViRGVidWdnZXJBZ2VudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFdv
cmtlckdsb2JhbFNjb3BlOwotY2xhc3MgV29ya2VyVGhyZWFkOwotCi1jbGFzcyBXb3JrZXJEZWJ1
Z2dlckFnZW50IGZpbmFsIDogcHVibGljIFdlYkRlYnVnZ2VyQWdlbnQgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFdvcmtlckRlYnVnZ2VyQWdlbnQpOwotICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIFdvcmtlckRlYnVnZ2VyQWdlbnQoV29ya2VyQWdlbnRDb250
ZXh0Jik7Ci0gICAgdmlydHVhbCB+V29ya2VyRGVidWdnZXJBZ2VudCgpOwotCi0gICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGRlYnVnZ2VyVGFza01vZGU7Ci0gICAgc3RhdGljIHZvaWQgaW50ZXJydXB0
QW5kRGlzcGF0Y2hJbnNwZWN0b3JDb21tYW5kcyhXb3JrZXJUaHJlYWQqKTsKLQotICAgIHZpcnR1
YWwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JT
dHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHVubXV0
ZUNvbnNvbGUoKSBvdmVycmlkZTsKLQotICAgIHZpcnR1YWwgdm9pZCBicmVha3BvaW50QWN0aW9u
TG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6
Ci0gICAgV29ya2VyR2xvYmFsU2NvcGUmIG1faW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGU7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhZGVmaW5lZChXb3JrZXJE
ZWJ1Z2dlckFnZW50X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI3YThhMjYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjEwICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRp
c3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKLQot
I2luY2x1ZGUgIkNvbW1hbmRMaW5lQVBJSG9zdC5oIgotI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKLSNpbmNs
dWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgi
Ci0jaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiV2ViSW5qZWN0
ZWRTY3JpcHRIb3N0LmgiCi0jaW5jbHVkZSAiV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCi0j
aW5jbHVkZSAiV29ya2VyQ29uc29sZUFnZW50LmgiCi0jaW5jbHVkZSAiV29ya2VyRGVidWdnZXJB
Z2VudC5oIgotI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiV29ya2Vy
UmVwb3J0aW5nUHJveHkuaCIKLSNpbmNsdWRlICJXb3JrZXJSdW50aW1lQWdlbnQuaCIKLSNpbmNs
dWRlICJXb3JrZXJUaHJlYWQuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuaD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsLmg+Ci0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMu
aD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KLSNpbmNs
dWRlIDx3dGYvU3RvcHdhdGNoLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci11c2luZyBuYW1l
c3BhY2UgSW5zcGVjdG9yOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLW5hbWVzcGFjZSB7Ci0K
LWNsYXNzIFBhZ2VJbnNwZWN0b3JQcm94eSA6IHB1YmxpYyBGcm9udGVuZENoYW5uZWwgewotICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFBhZ2VJbnNw
ZWN0b3JQcm94eShXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUpCi0gICAgICAg
IDogbV93b3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSkgeyB9Ci0gICAgdmlydHVh
bCB+UGFnZUluc3BlY3RvclByb3h5KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIENvbm5lY3Rpb25UeXBl
IGNvbm5lY3Rpb25UeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ29ubmVjdGlvblR5cGU6
OkxvY2FsOyB9Ci1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRl
bmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgbV93b3Jr
ZXJHbG9iYWxTY29wZS50aHJlYWQoKS53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RNZXNzYWdl
VG9QYWdlSW5zcGVjdG9yKG1lc3NhZ2UpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgV29ya2VyR2xvYmFsU2NvcGUmIG1fd29ya2VyR2xvYmFsU2NvcGU7Ci19OwotCi19Ci0KLVdv
cmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2Vy
R2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlKQotICAgIDogbV93b3JrZXJHbG9iYWxTY29w
ZSh3b3JrZXJHbG9iYWxTY29wZSkKLSAgICAsIG1faW5zdHJ1bWVudGluZ0FnZW50cyhJbnN0cnVt
ZW50aW5nQWdlbnRzOjpjcmVhdGUoKnRoaXMpKQotICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXIoc3RkOjptYWtlX3VuaXF1ZTxXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI+KCp0aGlzLCBXZWJJ
bmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZSgpKSkKLSAgICAsIG1fZXhlY3V0aW9uU3RvcHdhdGNo
KFN0b3B3YXRjaDo6Y3JlYXRlKCkpCi0gICAgLCBtX3NjcmlwdERlYnVnU2VydmVyKHdvcmtlckds
b2JhbFNjb3BlLCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKQotICAgICwg
bV9mcm9udGVuZFJvdXRlcihGcm9udGVuZFJvdXRlcjo6Y3JlYXRlKCkpCi0gICAgLCBtX2JhY2tl
bmREaXNwYXRjaGVyKEJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUobV9mcm9udGVuZFJvdXRlci5j
b3B5UmVmKCkpKQotewotICAgIEFnZW50Q29udGV4dCBiYXNlQ29udGV4dCA9IHsKLSAgICAgICAg
KnRoaXMsCi0gICAgICAgICptX2luamVjdGVkU2NyaXB0TWFuYWdlciwKLSAgICAgICAgbV9mcm9u
dGVuZFJvdXRlci5nZXQoKSwKLSAgICAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQoKQotICAg
IH07Ci0KLSAgICBXZWJBZ2VudENvbnRleHQgd2ViQ29udGV4dCA9IHsKLSAgICAgICAgYmFzZUNv
bnRleHQsCi0gICAgICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKQotICAgIH07Ci0KLSAg
ICBXb3JrZXJBZ2VudENvbnRleHQgd29ya2VyQ29udGV4dCA9IHsKLSAgICAgICAgd2ViQ29udGV4
dCwKLSAgICAgICAgd29ya2VyR2xvYmFsU2NvcGUsCi0gICAgfTsKLQotICAgIGF1dG8gcnVudGlt
ZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJSdW50aW1lQWdlbnQ+KHdvcmtlckNvbnRl
eHQpOwotICAgIG1fcnVudGltZUFnZW50ID0gcnVudGltZUFnZW50LmdldCgpOwotICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy0+c2V0V29ya2VyUnVudGltZUFnZW50KG1fcnVudGltZUFnZW50KTsK
LSAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjptb3ZlKHJ1bnRpbWVBZ2VudCkpOwotCi0gICAgYXV0
byBjb25zb2xlQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlckNvbnNvbGVBZ2VudD4od29y
a2VyQ29udGV4dCk7Ci0gICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRXZWJDb25zb2xlQWdl
bnQoY29uc29sZUFnZW50LmdldCgpKTsKLQotICAgIGF1dG8gZGVidWdnZXJBZ2VudCA9IHN0ZDo6
bWFrZV91bmlxdWU8V29ya2VyRGVidWdnZXJBZ2VudD4od29ya2VyQ29udGV4dCk7Ci0gICAgbV9h
Z2VudHMuYXBwZW5kKFdURjo6bW92ZShkZWJ1Z2dlckFnZW50KSk7Ci0KLSAgICBtX2FnZW50cy5h
cHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JUaW1lbGluZUFnZW50Pih3b3JrZXJDb250
ZXh0LCBudWxscHRyLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpXb3JrZXJJbnNwZWN0b3IpKTsK
LSAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjptb3ZlKGNvbnNvbGVBZ2VudCkpOwotCi0gICAgaWYg
KENvbW1hbmRMaW5lQVBJSG9zdCogY29tbWFuZExpbmVBUElIb3N0ID0gbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXItPmNvbW1hbmRMaW5lQVBJSG9zdCgpKSB7Ci0gICAgICAgIGNvbW1hbmRMaW5lQVBJ
SG9zdC0+aW5pdChudWxscHRyCi0gICAgICAgICAgICAsIG51bGxwdHIKLSAgICAgICAgICAgICwg
bnVsbHB0cgotICAgICAgICAgICAgLCBudWxscHRyCi0gICAgICAgICAgICAsIG51bGxwdHIKLSAg
ICAgICAgKTsKLSAgICB9Ci19Ci0gCi1Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjp+V29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlcigpCi17Ci0gICAgQVNTRVJUKCFtX2Zyb250ZW5kUm91dGVyLT5o
YXNGcm9udGVuZHMoKSk7Ci0gICAgQVNTRVJUKCFtX2ZvcndhcmRpbmdDaGFubmVsKTsKLQotICAg
IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+cmVzZXQoKTsKLX0KLQotdm9pZCBXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQotewotICAgIEFTU0VSVCghbV9mcm9udGVu
ZFJvdXRlci0+aGFzRnJvbnRlbmRzKCkpOwotICAgIEFTU0VSVCghbV9mb3J3YXJkaW5nQ2hhbm5l
bCk7Ci0KLSAgICBtX2ZvcndhcmRpbmdDaGFubmVsID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlSW5z
cGVjdG9yUHJveHk+KG1fd29ya2VyR2xvYmFsU2NvcGUpOwotICAgIG1fZnJvbnRlbmRSb3V0ZXIt
PmNvbm5lY3RGcm9udGVuZChtX2ZvcndhcmRpbmdDaGFubmVsLmdldCgpKTsKLSAgICBtX2FnZW50
cy5kaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoJm1fZnJvbnRlbmRSb3V0ZXIuZ2V0KCksICZt
X2JhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsKLX0KLQotdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uIHJl
YXNvbikKLXsKLSAgICBBU1NFUlQobV9mcm9udGVuZFJvdXRlci0+aGFzRnJvbnRlbmRzKCkpOwot
ICAgIEFTU0VSVChtX2ZvcndhcmRpbmdDaGFubmVsKTsKLQotICAgIG1fYWdlbnRzLndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7Ci0gICAgbV9mcm9udGVuZFJvdXRlci0+ZGlz
Y29ubmVjdEZyb250ZW5kKG1fZm9yd2FyZGluZ0NoYW5uZWwuZ2V0KCkpOwotICAgIG1fZm9yd2Fy
ZGluZ0NoYW5uZWwgPSBudWxscHRyOwotfQotCi12b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17
Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2gobWVzc2FnZSk7Ci19Ci0KLXZvaWQg
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdW1lKCkKLXsKLSAgICBFcnJvclN0cmluZyB1
bnVzZWQ7Ci0gICAgbV9ydW50aW1lQWdlbnQtPnJ1bih1bnVzZWQpOwotfQotCi1JbnNwZWN0b3JG
dW5jdGlvbkNhbGxIYW5kbGVyIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmZ1bmN0aW9uQ2Fs
bEhhbmRsZXIoKSBjb25zdAotewotICAgIHJldHVybiBXZWJDb3JlOjpmdW5jdGlvbkNhbGxIYW5k
bGVyRnJvbUFueVRocmVhZDsKLX0KLQotSW5zcGVjdG9yRXZhbHVhdGVIYW5kbGVyIFdvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXI6OmV2YWx1YXRlSGFuZGxlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OmV2YWx1YXRlSGFuZGxlckZyb21BbnlUaHJlYWQ7Ci19Ci0KLXZvaWQgV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbENhbGxJbmplY3RlZFNjcmlwdEZ1bmN0aW9uKEpTQzo6
RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2Ny
aXB0TGluZSkKLXsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoc2NyaXB0U3RhdGUp
OwotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxDYWxsRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
c2NyaXB0TmFtZSwgc2NyaXB0TGluZSk7Ci0gICAgbV9pbmplY3RlZFNjcmlwdEluc3RydW1lbnRh
dGlvbkNvb2tpZXMuYXBwZW5kKGNvb2tpZSk7Ci19Ci0KLXZvaWQgV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlkQ2FsbEluamVjdGVkU2NyaXB0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqIHNj
cmlwdFN0YXRlKQotewotICAgIEFTU0VSVCghbV9pbmplY3RlZFNjcmlwdEluc3RydW1lbnRhdGlv
bkNvb2tpZXMuaXNFbXB0eSgpKTsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoc2Ny
aXB0U3RhdGUpOwotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBt
X2luamVjdGVkU2NyaXB0SW5zdHJ1bWVudGF0aW9uQ29va2llcy50YWtlTGFzdCgpOwotICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSwgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7Ci19Ci0KLVJlZjxTdG9wd2F0Y2g+IFdvcmtlckluc3BlY3RvckNvbnRy
b2xsZXI6OmV4ZWN1dGlvblN0b3B3YXRjaCgpCi17Ci0gICAgcmV0dXJuIG1fZXhlY3V0aW9uU3Rv
cHdhdGNoLmNvcHlSZWYoKTsKLX0KLQotV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXImIFdvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdERlYnVnU2VydmVyKCkKLXsKLSAgICByZXR1cm4gbV9z
Y3JpcHREZWJ1Z1NlcnZlcjsKLX0KLQotVk0mIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OnZt
KCkKLXsKLSAgICByZXR1cm4gbV93b3JrZXJHbG9iYWxTY29wZS52bSgpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY1
MWI0Mi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXJfaAotI2RlZmluZSBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
X2gKLQotI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZS5oIgotI2luY2x1
ZGUgIkluc3BlY3RvcldlYkFnZW50QmFzZS5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVn
U2VydmVyLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaD4K
LSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KLSNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIEluc3BlY3RvciB7Ci1jbGFzcyBGcm9udGVuZENoYW5u
ZWw7Ci1jbGFzcyBGcm9udGVuZFJvdXRlcjsKLX07Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOwotY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50
czsKLWNsYXNzIFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjsKLWNsYXNzIFdvcmtlckdsb2JhbFNj
b3BlOwotY2xhc3MgV29ya2VyUnVudGltZUFnZW50OwotCi1jbGFzcyBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyIGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yRW52aXJvbm1lbnQg
ewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIpOwot
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUmKTsKLSAgICB2aXJ0dWFsIH5X
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0KLSAgICB2b2lkIGNvbm5lY3RGcm9udGVuZCgp
OwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
bik7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7
Ci0gICAgdm9pZCByZXN1bWUoKTsKLQotICAgIHZpcnR1YWwgYm9vbCBkZXZlbG9wZXJFeHRyYXNF
bmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBjYW5BY2Nlc3NJbnNwZWN0ZWRTY3JpcHRTdGF0ZShKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5zcGVjdG9y
RnVuY3Rpb25DYWxsSGFuZGxlciBmdW5jdGlvbkNhbGxIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBJbnNwZWN0b3I6Okluc3BlY3RvckV2YWx1YXRlSGFuZGxlciBldmFsdWF0
ZUhhbmRsZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbGxJbmpl
Y3RlZFNjcmlwdEZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRO
YW1lLCBpbnQgc2NyaXB0TGluZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENhbGxJ
bmplY3RlZFNjcmlwdEZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKikgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIGZyb250ZW5kSW5pdGlhbGl6ZWQoKSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFs
IFJlZjxXVEY6OlN0b3B3YXRjaD4gZXhlY3V0aW9uU3RvcHdhdGNoKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIEpTQzo6Vk0mIHZtKCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0g
ICAgZnJpZW5kIGNsYXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjsKLQotICAgIFdvcmtlckds
b2JhbFNjb3BlJiBtX3dvcmtlckdsb2JhbFNjb3BlOwotICAgIFJlZjxJbnN0cnVtZW50aW5nQWdl
bnRzPiBtX2luc3RydW1lbnRpbmdBZ2VudHM7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkluamVj
dGVkU2NyaXB0TWFuYWdlcj4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7Ci0gICAgV29ya2VyUnVu
dGltZUFnZW50KiBtX3J1bnRpbWVBZ2VudCB7IG51bGxwdHIgfTsKLSAgICBJbnNwZWN0b3I6OkFn
ZW50UmVnaXN0cnkgbV9hZ2VudHM7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6RnJv
bnRlbmRDaGFubmVsPiBtX2ZvcndhcmRpbmdDaGFubmVsOwotICAgIFJlZjxXVEY6OlN0b3B3YXRj
aD4gbV9leGVjdXRpb25TdG9wd2F0Y2g7Ci0gICAgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIgbV9z
Y3JpcHREZWJ1Z1NlcnZlcjsKLSAgICBSZWY8SW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcj4gbV9m
cm9udGVuZFJvdXRlcjsKLSAgICBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcj4gbV9i
YWNrZW5kRGlzcGF0Y2hlcjsKLSAgICBWZWN0b3I8SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llLCAyPiBtX2luamVjdGVkU2NyaXB0SW5zdHJ1bWVudGF0aW9uQ29va2llczsKLX07Ci0KLX0K
LQotI2VuZGlmIC8vICFkZWZpbmVkKFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXJfaCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyODc5YzUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV29ya2VyUnVudGltZUFnZW50
LmgiCi0KLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdl
bnRzLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCi0jaW5jbHVkZSAiU2NyaXB0U3Rh
dGUuaCIKLSNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCi0jaW5jbHVkZSAiV29ya2Vy
R2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCi0jaW5jbHVkZSAiV29y
a2VyVGhyZWFkLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg+Ci0jaW5j
bHVkZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgSW5zcGVjdG9yOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdvcmtlclJ1bnRpbWVBZ2Vu
dDo6V29ya2VyUnVudGltZUFnZW50KFdvcmtlckFnZW50Q29udGV4dCYgY29udGV4dCkKLSAgICA6
IEluc3BlY3RvclJ1bnRpbWVBZ2VudChjb250ZXh0KQotICAgICwgbV9iYWNrZW5kRGlzcGF0Y2hl
cihJbnNwZWN0b3I6OlJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGNvbnRleHQuYmFj
a2VuZERpc3BhdGNoZXIsIHRoaXMpKQotICAgICwgbV93b3JrZXJHbG9iYWxTY29wZShjb250ZXh0
Lndvcmtlckdsb2JhbFNjb3BlKQotewotfQotCi12b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKLXsKLX0KLQotdm9pZCBXb3JrZXJSdW50aW1lQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
YXNvbiByZWFzb24pCi17Ci0gICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChyZWFzb24pOwotfQotCi1JbmplY3RlZFNjcmlwdCBXb3JrZXJSdW50
aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYgZXJyb3IsIGNvbnN0
IGludCogZXhlY3V0aW9uQ29udGV4dElkKQotewotICAgIGlmIChleGVjdXRpb25Db250ZXh0SWQp
IHsKLSAgICAgICAgZXJyb3IgPSBBU0NJSUxpdGVyYWwoIkV4ZWN1dGlvbiBjb250ZXh0IGlkIGlz
IG5vdCBzdXBwb3J0ZWQgZm9yIHdvcmtlcnMgYXMgdGhlcmUgaXMgb25seSBvbmUgZXhlY3V0aW9u
IGNvbnRleHQuIik7Ci0gICAgICAgIHJldHVybiBJbmplY3RlZFNjcmlwdCgpOwotICAgIH0KLQot
ICAgIEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSA9IGV4ZWNTdGF0ZUZyb21Xb3JrZXJHbG9i
YWxTY29wZSgmbV93b3JrZXJHbG9iYWxTY29wZSk7Ci0gICAgcmV0dXJuIGluamVjdGVkU2NyaXB0
TWFuYWdlcigpLmluamVjdGVkU2NyaXB0Rm9yKHNjcmlwdFN0YXRlKTsKLX0KLQotdm9pZCBXb3Jr
ZXJSdW50aW1lQWdlbnQ6Om11dGVDb25zb2xlKCkKLXsKLSAgICAvLyBXZSBkb24ndCBuZWVkIHRv
IG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KLX0KLQotdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6
OnVubXV0ZUNvbnNvbGUoKQotewotICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gbXV0ZSBjb25zb2xl
IGZvciB3b3JrZXJzLgotfQotCi12b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6cnVuKEVycm9yU3Ry
aW5nJikKLXsKLSAgICBtX3BhdXNlZCA9IGZhbHNlOwotfQotCi12b2lkIFdvcmtlclJ1bnRpbWVB
Z2VudDo6cGF1c2VXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkK
LXsKLSAgICBtX3BhdXNlZCA9IHRydWU7Ci0gICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1
bHQ7Ci0gICAgZG8gewotICAgICAgICByZXN1bHQgPSBjb250ZXh0LT50aHJlYWQoKS5ydW5Mb29w
KCkucnVuSW5Nb2RlKGNvbnRleHQsIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01v
ZGUpOwotICAgIC8vIEtlZXAgd2FpdGluZyB1bnRpbCBleGVjdXRpb24gaXMgcmVzdW1lZC4KLSAg
ICB9IHdoaWxlIChyZXN1bHQgPT0gTWVzc2FnZVF1ZXVlTWVzc2FnZVJlY2VpdmVkICYmIG1fcGF1
c2VkKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyYzRkZTkyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJS
dW50aW1lQWdlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlv
bi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXb3JrZXJS
dW50aW1lQWdlbnRfaAotI2RlZmluZSBXb3JrZXJSdW50aW1lQWdlbnRfaAotCi0jaW5jbHVkZSAi
SW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBXb3Jr
ZXJHbG9iYWxTY29wZTsKLXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwotCi1jbGFzcyBXb3Jr
ZXJSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JSdW50aW1l
QWdlbnQgewotcHVibGljOgotICAgIFdvcmtlclJ1bnRpbWVBZ2VudChXb3JrZXJBZ2VudENvbnRl
eHQmKTsKLSAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQoKSB7IH0KLQotICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJv
dXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKSBvdmVycmlkZTsKLQotICAgIHZpcnR1YWwgdm9pZCBydW4oRXJyb3JTdHJpbmcm
KSBvdmVycmlkZTsKLQotICAgIHZvaWQgcGF1c2VXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJHbG9i
YWxTY29wZSopOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbmplY3RlZFNj
cmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1
dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCkg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKLQot
ICAgIFJlZlB0cjxJbnNwZWN0b3I6OlJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5k
RGlzcGF0Y2hlcjsKLSAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsK
LQotICAgIGJvb2wgbV9wYXVzZWQgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yUGFnZXJBZ2VudF9oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IGRlM2Q0ZTEuLmNlMTJiNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlci5jcHAKQEAgLTE2MSw4ICsxNjEsNiBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5Rmlu
aXNoZWQoKQogICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIFdvcmtlclRo
cmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUgPSBEb250UGF1c2VXb3JrZXJHbG9iYWxTY29wZU9uU3Rh
cnQ7Ci0gICAgICAgIGlmIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNob3VsZFBhdXNlRGVk
aWNhdGVkV29ya2VyT25TdGFydChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICAg
ICAgc3RhcnRNb2RlID0gUGF1c2VXb3JrZXJHbG9iYWxTY29wZU9uU3RhcnQ7CiAgICAgICAgIG1f
Y29udGV4dFByb3h5LT5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwo
KSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVy
bCgpKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBzdGFydE1vZGUpOwogICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlw
dCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCmluZGV4IDkwOGQxZTMuLjQyZjIxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUg
IlVSTC5oIgotI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlck5hdmlnYXRvci5oIgogI2luY2x1
ZGUgIldvcmtlck9iamVjdFByb3h5LmgiCkBAIC02OSw3ICs2OCw2IEBAIFdvcmtlckdsb2JhbFNj
b3BlOjpXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIFdvCiAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdlbnQpCiAgICAgLCBtX3NjcmlwdChz
dGQ6Om1ha2VfdW5pcXVlPFdvcmtlclNjcmlwdENvbnRyb2xsZXI+KHRoaXMpKQogICAgICwgbV90
aHJlYWQodGhyZWFkKQotICAgICwgbV93b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKHN0ZDo6bWFr
ZV91bmlxdWU8V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcj4oKnRoaXMpKQogICAgICwgbV9jbG9z
aW5nKGZhbHNlKQogICAgICwgbV9ldmVudFF1ZXVlKCp0aGlzKQogICAgICwgbV90b3BPcmlnaW4o
dG9wT3JpZ2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmlu
ZGV4IDVmYTVlODcuLjJhY2VmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmgKQEAgLTQ2LDcgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
Y2xhc3MgQmxvYjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247Ci0gICAgY2xhc3MgV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBjbGFzcyBXb3JrZXJMb2NhdGlvbjsKICAgICBjbGFz
cyBXb3JrZXJOYXZpZ2F0b3I7CiAgICAgY2xhc3MgV29ya2VyVGhyZWFkOwpAQCAtOTUsOCArOTQs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRU
aHJlYWQoKSBjb25zdCBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCBib29sIGlzSlNFeGVjdXRp
b25Gb3JiaWRkZW4oKSBjb25zdCBvdmVycmlkZTsKIAotICAgICAgICBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyJiB3b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkgeyByZXR1cm4gKm1fd29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlcjsgfQotCiAgICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVz
ZWQgZm9yIEdDIG1hcmtpbmcuIFNlZSBKU1dvcmtlckdsb2JhbFNjb3BlOjp2aXNpdENoaWxkcmVu
VmlydHVhbChTbG90VmlzaXRvciYpIGluCiAgICAgICAgIC8vIEpTV29ya2VyR2xvYmFsU2NvcGVD
dXN0b20uY3BwLgogICAgICAgICBXb3JrZXJOYXZpZ2F0b3IqIG9wdGlvbmFsTmF2aWdhdG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0b3IuZ2V0KCk7IH0KQEAgLTE2MSw3ICsxNTgsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJTY3JpcHRD
b250cm9sbGVyPiBtX3NjcmlwdDsKICAgICAgICAgV29ya2VyVGhyZWFkJiBtX3RocmVhZDsKIAot
ICAgICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcj4g
bV93b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOwogICAgICAgICBib29sIG1fY2xvc2luZzsKIAog
ICAgICAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV93b3JrZXJPYnNlcnZlcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCmluZGV4IDc5ZjY3YTQu
LmY1ZmJmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGVQcm94eS5oCkBAIC01OSwxNSArNTksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCB3b3JrZXJPYmplY3REZXN0cm95ZWQoKSA9IDA7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25saW5lKSA9IDA7Ci0K
LSAgICAgICAgY2xhc3MgUGFnZUluc3BlY3RvciB7Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAg
ICAgIHZpcnR1YWwgflBhZ2VJbnNwZWN0b3IoKSB7IH0KLSAgICAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICAgICAg
fTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3RUb0luc3BlY3RvcihQYWdlSW5zcGVjdG9y
KikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbUluc3BlY3RvcigpIHsg
fQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb0luc3BlY3Rvcihjb25zdCBTdHJp
bmcmKSB7IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IGJkNzRlYWMuLmY2
Y2YxMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCkBAIC0zNywxNCArMzcsMTAgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIldvcmtlci5oIgotI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuaCIKLSNp
bmNsdWRlICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3Rh
Y2suaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CkBAIC02Myw3ICs1OSw2IEBAIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpXb3Jr
ZXJNZXNzYWdpbmdQcm94eShXb3JrZXIqIHdvcmtlck9iamVjdCkKICAgICAsIG1fdW5jb25maXJt
ZWRNZXNzYWdlQ291bnQoMCkKICAgICAsIG1fd29ya2VyVGhyZWFkSGFkUGVuZGluZ0FjdGl2aXR5
KGZhbHNlKQogICAgICwgbV9hc2tlZFRvVGVybWluYXRlKGZhbHNlKQotICAgICwgbV9wYWdlSW5z
cGVjdG9yKG51bGxwdHIpCiB7CiAgICAgQVNTRVJUKG1fd29ya2VyT2JqZWN0KTsKICAgICBBU1NF
UlQoKGlzPERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBpc01haW5UaHJl
YWQoKSkKQEAgLTg1LDcgKzgwLDYgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRX
b3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3QKICAgICBSZWZQ
dHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6
OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBz
dGFydE1vZGUsIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVh
ZGVyKCksIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVy
VHlwZSgpLCBkb2N1bWVudC50b3BPcmlnaW4oKSk7CiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0
aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQoKTsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0Lmdl
dCgpLCB0aGlzLCBzY3JpcHRVUkwpOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpw
b3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5u
ZWxzKQpAQCAtMjExLDM4ICsyMDUsNiBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpub3Rp
ZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkKICAgICB9KTsKIH0KIAotdm9pZCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6Y29ubmVjdFRvSW5zcGVjdG9yKFdvcmtlckdsb2JhbFNjb3Bl
UHJveHk6OlBhZ2VJbnNwZWN0b3IqIHBhZ2VJbnNwZWN0b3IpCi17Ci0gICAgaWYgKG1fYXNrZWRU
b1Rlcm1pbmF0ZSkKLSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVCghbV9wYWdlSW5zcGVjdG9y
KTsKLSAgICBtX3BhZ2VJbnNwZWN0b3IgPSBwYWdlSW5zcGVjdG9yOwotICAgIG1fd29ya2VyVGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KSB7Ci0gICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0
KS53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKCk7Ci0gICAgfSwg
V29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7Ci19Ci0KLXZvaWQgV29ya2Vy
TWVzc2FnaW5nUHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKCkKLXsKLSAgICBtX3BhZ2VJ
bnNwZWN0b3IgPSBudWxscHRyOwotICAgIGlmIChtX2Fza2VkVG9UZXJtaW5hdGUpCi0gICAgICAg
IHJldHVybjsKLSAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShb
XSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICBkb3duY2FzdDxX
b3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkud29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLmRp
c2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRl
c3Ryb3llZCk7Ci0gICAgfSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7
Ci19Ci0KLXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnNlbmRNZXNzYWdlVG9JbnNwZWN0b3Io
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIGlmIChtX2Fza2VkVG9UZXJtaW5hdGUpCi0g
ICAgICAgIHJldHVybjsKLSAgICBTdHJpbmdDYXB0dXJlIGNhcHR1cmVkTWVzc2FnZShtZXNzYWdl
KTsKLSAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FwdHVy
ZWRNZXNzYWdlXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICBk
b3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkud29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcigpLmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjYXB0dXJlZE1lc3NhZ2Uuc3RyaW5n
KCkpOwotICAgIH0sIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOwotICAg
IFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmludGVycnVwdEFuZERpc3BhdGNoSW5zcGVjdG9yQ29tbWFu
ZHMobV93b3JrZXJUaHJlYWQuZ2V0KCkpOwotfQotCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojp3b3JrZXJHbG9iYWxTY29wZURlc3Ryb3llZCgpCiB7CiAgICAgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5wb3N0VGFzayhbdGhpc10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CkBAIC0y
NjYsOCArMjI4LDYgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6d29ya2VyR2xvYmFsU2Nv
cGVEZXN0cm95ZWRJbnRlcm5hbCgpCiAgICAgbV9hc2tlZFRvVGVybWluYXRlID0gdHJ1ZTsKICAg
ICBtX3dvcmtlclRocmVhZCA9IG51bGxwdHI7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246Ondvcmtlckdsb2JhbFNjb3BlVGVybWluYXRlZChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Z2V0KCksIHRoaXMpOwotCiAgICAgaWYgKG1fbWF5QmVEZXN0cm95ZWQpCiAgICAgICAgIGRlbGV0
ZSB0aGlzOwogfQpAQCAtMjgwLDE3ICsyNDAsNiBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojp0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpCiAKICAgICBpZiAobV93b3JrZXJUaHJlYWQp
CiAgICAgICAgIG1fd29ya2VyVGhyZWFkLT5zdG9wKCk7Ci0KLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246Ondvcmtlckdsb2JhbFNjb3BlVGVybWluYXRlZChtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuZ2V0KCksIHRoaXMpOwotfQotCi12b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0
TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgU3Ry
aW5nQ2FwdHVyZSBjYXB0dXJlZE1lc3NhZ2UobWVzc2FnZSk7Ci0gICAgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FwdHVyZWRNZXNzYWdlXSAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIHsKLSAgICAgICAgaWYgKG1fcGFnZUluc3BlY3RvcikKLSAgICAgICAgICAg
IG1fcGFnZUluc3BlY3Rvci0+ZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlcihjYXB0dXJlZE1lc3Nh
Z2Uuc3RyaW5nKCkpOwotICAgIH0pOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpj
b25maXJtTWVzc2FnZUZyb21Xb3JrZXJPYmplY3QoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggOTU5
NDFjNi4uZWI3YWY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuaApAQCAtNTgsMTYgKzU4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHdvcmtlck9iamVjdERlc3Ryb3llZCgpIG92ZXJyaWRlOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpIG92
ZXJyaWRlOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0VG9JbnNwZWN0b3IoV29ya2Vy
R2xvYmFsU2NvcGVQcm94eTo6UGFnZUluc3BlY3RvciopIG92ZXJyaWRlOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlzY29ubmVjdEZyb21JbnNwZWN0b3IoKSBvdmVycmlkZTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9JbnNwZWN0b3IoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
Ci0KICAgICAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlck9iamVjdFByb3h5LgogICAg
ICAgICAvLyAoT25seSB1c2UgdGhlc2UgbWV0aG9kcyBpbiB0aGUgd29ya2VyIGNvbnRleHQgdGhy
ZWFkLikKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJPYmplY3QoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBv
cnRDaGFubmVsQXJyYXk+KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RFeGNl
cHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVO
dW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSBvdmVycmlk
ZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQg
bGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpIG92
ZXJyaWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3Io
Y29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb25maXJtTWVz
c2FnZUZyb21Xb3JrZXJPYmplY3QoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpIG92ZXJyaWRlOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KGJvb2wgaGFzUGVuZGlu
Z0FjdGl2aXR5KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdvcmtlckdsb2JhbFNj
b3BlQ2xvc2VkKCkgb3ZlcnJpZGU7CkBAIC04OSw3ICs4NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBNZXNzYWdlV29ya2VyVGFz
azsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yVGFzazsK
ICAgICAgICAgZnJpZW5kIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkVGFzazsKICAg
ICAgICAgZnJpZW5kIGNsYXNzIFdvcmtlckV4Y2VwdGlvblRhc2s7CiAgICAgICAgIGZyaWVuZCBj
bGFzcyBXb3JrZXJUaHJlYWRBY3Rpdml0eVJlcG9ydFRhc2s7CkBAIC0xMDksNyArMTAzLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fYXNrZWRUb1Rlcm1pbmF0ZTsKIAog
ICAgICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2s+PiBtX3F1ZXVlZEVhcmx5VGFza3M7IC8vIFRhc2tzIGFyZSBxdWV1ZWQgaGVyZSB1bnRpbCB0
aGVyZSdzIGEgdGhyZWFkIG9iamVjdCBjcmVhdGVkLgotICAgICAgICBXb3JrZXJHbG9iYWxTY29w
ZVByb3h5OjpQYWdlSW5zcGVjdG9yKiBtX3BhZ2VJbnNwZWN0b3I7CiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJSZXBvcnRpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSZXBvcnRp
bmdQcm94eS5oCmluZGV4IGRmMzVlNTEuLmFkY2JiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyUmVwb3J0aW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmgKQEAgLTQ1LDggKzQ1LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dv
cmtlck9iamVjdChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKSA9IDA7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9QYWdlSW5z
cGVjdG9yKGNvbnN0IFN0cmluZyYpID0gMDsKLQogICAgICAgICAvLyBJbnZva2VkIHdoZW4gY2xv
c2UoKSBpcyBpbnZva2VkIG9uIHRoZSB3b3JrZXIgY29udGV4dC4KICAgICAgICAgdmlydHVhbCB2
b2lkIHdvcmtlckdsb2JhbFNjb3BlQ2xvc2VkKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAKaW5kZXggODdiNTA5Zi4uMGE2MWMzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIldv
cmtlclRocmVhZC5oIgogCiAjaW5jbHVkZSAiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCIK
LSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJl
YWRHbG9iYWxEYXRhLmgiCkBAIC0xNDcsNyArMTQ2LDYgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6Ondv
cmtlclRocmVhZCgpCiAgICAgfQogCiAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0
ID0gbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCk7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRXZhbHVhdGVXb3JrZXJTY3JpcHQod29ya2VyR2xvYmFsU2NvcGUoKSwgbV9z
dGFydHVwRGF0YS0+bV9zdGFydE1vZGUpOwogICAgIHNjcmlwdC0+ZXZhbHVhdGUoU2NyaXB0U291
cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5tX3NvdXJjZUNvZGUsIG1fc3RhcnR1cERhdGEtPm1fc2Ny
aXB0VVJMKSk7CiAgICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1i
ZXIgdmFyaWFibGUgZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UK
ICAgICAvLyBhbGwgcmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24g
dGhlIHRocmVhZCBhdCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0Cg==
</data>
<flag name="review"
          id="291611"
          type_id="1"
          status="+"
          setter="bburg"
    />
    <flag name="commit-queue"
          id="291612"
          type_id="3"
          status="-"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>