<?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>22148</bug_id>
          
          <creation_ts>2008-11-09 08:17:11 -0800</creation_ts>
          <short_desc>nytime.com page crashes browser during load</short_desc>
          <delta_ts>2008-11-20 10:52:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.nytimes.com/2008/11/10/health/10heart.html?_r=1&amp;partner=rssnyt&amp;emc=rss&amp;oref=slogin</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>NeedsReduction</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dent">chris.dent</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          <cc>chris.dent</cc>
    
    <cc>ggaren</cc>
    
    <cc>mihnea</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zwarich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>98071</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dent">chris.dent</who>
    <bug_when>2008-11-09 08:17:11 -0800</bug_when>
    <thetext>Version 3.1.2 (5525.20.1) and the nightly build just prior.

When loading the above url into a freshly started browser, the application crashes towards the end of the load (most of the layout is done, just getting ready for a good read, and the crash happens).

Consistently repeatable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98072</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dent">chris.dent</who>
    <bug_when>2008-11-09 08:18:44 -0800</bug_when>
    <thetext>If  I disable javascript from the develop menu, the crash does not happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98074</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-11-09 08:59:45 -0800</bug_when>
    <thetext>Please attach a crash log: &lt;http://webkit.org/quality/crashlogs.html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98082</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-11-09 10:42:43 -0800</bug_when>
    <thetext>Confirmed with r38239:

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000114
Crashed Thread:  0

Thread 0 Crashed:
0   com.apple.JavaScriptCore      	0x0053dc2f bool WTF::HashTable&lt;void*, std::pair&lt;void*, unsigned int&gt;, WTF::PairFirstExtractor&lt;std::pair&lt;void*, unsigned int&gt; &gt;, WTF::PtrHash&lt;void*&gt;, WTF::PairHashTraits&lt;WTF::HashTraits&lt;void*&gt;, WTF::HashTraits&lt;unsigned int&gt; &gt;, WTF::HashTraits&lt;void*&gt; &gt;::contains&lt;void*, WTF::IdentityHashTranslator&lt;void*, std::pair&lt;void*, unsigned int&gt;, WTF::PtrHash&lt;void*&gt; &gt; &gt;(void* const&amp;) const + 9 (HashTable.h:779)
1   com.apple.JavaScriptCore      	0x0053dc78 WTF::HashTable&lt;void*, std::pair&lt;void*, unsigned int&gt;, WTF::PairFirstExtractor&lt;std::pair&lt;void*, unsigned int&gt; &gt;, WTF::PtrHash&lt;void*&gt;, WTF::PairHashTraits&lt;WTF::HashTraits&lt;void*&gt;, WTF::HashTraits&lt;unsigned int&gt; &gt;, WTF::HashTraits&lt;void*&gt; &gt;::contains(void* const&amp;) const + 24 (HashTable.h:315)
2   com.apple.JavaScriptCore      	0x0053dc96 WTF::HashMap&lt;void*, unsigned int, WTF::PtrHash&lt;void*&gt;, WTF::HashTraits&lt;void*&gt;, WTF::HashTraits&lt;unsigned int&gt; &gt;::contains(void* const&amp;) const + 24 (HashMap.h:173)
3   com.apple.JavaScriptCore      	0x0052fa69 JSC::Machine::cti_vm_throw(void*, ...) + 83 (Machine.cpp:5960)
4   com.apple.JavaScriptCore      	0x00524020 jscGeneratedNativeCode + 0 (Machine.cpp:4296)
5   com.apple.JavaScriptCore      	0x0052afb2 JSC::Machine::execute(JSC::ProgramNode*, JSC::ExecState*, JSC::ScopeChainNode*, JSC::JSObject*, JSC::JSValue**) + 674 (Machine.cpp:934)
6   com.apple.JavaScriptCore      	0x004b358a JSC::Interpreter::evaluate(JSC::ExecState*, JSC::ScopeChain&amp;, JSC::SourceCode const&amp;, JSC::JSValue*) + 438 (Interpreter.cpp:68)
7   com.apple.WebCore             	0x0398b896 WebCore::ScriptController::evaluate(WebCore::String const&amp;, int, WebCore::String const&amp;) + 250 (ScriptController.cpp:111)
8   com.apple.WebCore             	0x0351368c WebCore::FrameLoader::executeScript(WebCore::String const&amp;, int, WebCore::String const&amp;) + 154 (FrameLoader.cpp:792)
9   com.apple.WebCore             	0x035a2054 WebCore::HTMLTokenizer::scriptExecution(WebCore::String const&amp;, WebCore::HTMLTokenizer::State, WebCore::String const&amp;, int) + 300 (HTMLTokenizer.cpp:563)
10  com.apple.WebCore             	0x035a24c3 WebCore::HTMLTokenizer::notifyFinished(WebCore::CachedResource*) + 623 (HTMLTokenizer.cpp:2011)
11  com.apple.WebCore             	0x0335c6ce WebCore::CachedScript::checkNotify() + 86 (CachedScript.cpp:92)
12  com.apple.WebCore             	0x0335c8cb WebCore::CachedScript::data(WTF::PassRefPtr&lt;WebCore::SharedBuffer&gt;, bool) + 279 (CachedScript.cpp:84)
13  com.apple.WebCore             	0x03991351 WebCore::Loader::Host::didFinishLoading(WebCore::SubresourceLoader*) + 413 (loader.cpp:300)
14  com.apple.WebCore             	0x0390c257 WebCore::SubresourceLoader::didFinishLoading() + 169 (SubresourceLoader.cpp:196)
15  com.apple.WebCore             	0x03833332 WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*) + 24 (ResourceLoader.cpp:399)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98083</commentid>
    <comment_count>4</comment_count>
      <attachid>25001</attachid>
    <who name="Chris Dent">chris.dent</who>
    <bug_when>2008-11-09 10:44:56 -0800</bug_when>
    <thetext>Created attachment 25001
crash log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98100</commentid>
    <comment_count>5</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-09 13:41:48 -0800</bug_when>
    <thetext>I&apos;ll assign this to myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98101</commentid>
    <comment_count>6</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-09 14:05:06 -0800</bug_when>
    <thetext>I can&apos;t reproduce this. Can you still reproduce it, Chris?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98102</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dent">chris.dent</who>
    <bug_when>2008-11-09 14:10:34 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I can&apos;t reproduce this. Can you still reproduce it, Chris?

Yes. I&apos;ll attach a new crash report, just to be sure.

I also tried disabling caches, to see if that made any difference. It did not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98103</commentid>
    <comment_count>8</comment_count>
      <attachid>25007</attachid>
    <who name="Chris Dent">chris.dent</who>
    <bug_when>2008-11-09 14:11:43 -0800</bug_when>
    <thetext>Created attachment 25007
second crash log, for confirmation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98105</commentid>
    <comment_count>9</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-09 14:19:23 -0800</bug_when>
    <thetext>What is the precise revision of the nightly you are using? I have tried all recent ones, but none seem to crash.

Can you make a web archive (File / Save As...) and see whether loading the web archive crashes? If it does, then upload it to this bug, so that even if nytimes.com changes I can still try it on another machine at work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98218</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-10 15:27:35 -0800</bug_when>
    <thetext>It crashes for me; latest nightly (11/9). Mac OS X 10.5.5, intel. Crash at:
Thread 0 Crashed:
0   com.apple.JavaScriptCore      	0x003cae39 JSC::Machine::cti_vm_throw(void*, ...) + 57
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98219</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-10 15:30:44 -0800</bug_when>
    <thetext>In Machine::cti_vm_throw(), codeBlock is 0, so a debug build crashes in:
    ASSERT(codeBlock-&gt;ctiReturnAddressVPCMap.contains(ARG_globalData-&gt;throwReturnAddress));
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98220</commentid>
    <comment_count>12</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-10 15:32:59 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; In Machine::cti_vm_throw(), codeBlock is 0, so a debug build crashes in:
&gt;    
&gt; ASSERT(codeBlock-&gt;ctiReturnAddressVPCMap.contains(ARG_globalData-&gt;throwReturnAddress));

That&apos;s not good. Does it crash with a local web archive copy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98221</commentid>
    <comment_count>13</comment_count>
      <attachid>25030</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-10 15:39:20 -0800</bug_when>
    <thetext>Created attachment 25030
Webarchive of crashy page

Yes, it crashes when loading from this webarchive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99374</commentid>
    <comment_count>14</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-19 13:11:32 -0800</bug_when>
    <thetext>Now that my machine died and I have a loaner, I can reproduce this with the 11/9 nightly. I will try a ToT debug build and see if that works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99427</commentid>
    <comment_count>15</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-19 21:48:51 -0800</bug_when>
    <thetext>I have a one line reduction:

function f(a) { f(); } f();

It dies throwing the recursion limit exception. Yes, this was actually happening on a NY Times article, because they load two copies of prototype.js in a weird way.

This was fixed in r38322 by Geoff:

http://trac.webkit.org/changeset/38322

Geoff, do you immediately see why your patch would have fixed this?

I&apos;ll make tests for this and similar cases and put them up for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99429</commentid>
    <comment_count>16</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-11-19 22:24:36 -0800</bug_when>
    <thetext>&gt; I have a one line reduction:
&gt; 
&gt; function f(a) { f(); } f();

Nice reduction.

&gt; This was fixed in r38322 by Geoff:
&gt; 
&gt; http://trac.webkit.org/changeset/38322
&gt; 
&gt; Geoff, do you immediately see why your patch would have fixed this?

Yes.

The old &quot;throwStackOverflowPreviousFrame&quot; was buggy, but untested. My patch tickled fast/js/global-recursion-on-full-stack.html in a way that illustrated the problem. Since I had to rewrite the logic of throwStackOverflowPreviousFrame anyway, I fixed the bug along the way. Here&apos;s what I said in the ChangeLog:

&quot;Fixed a latent bug in stack overflow checking that is now hit because
the register layout has changed a bit -- namely: when throwing a stack
overflow exception inside an op_call helper, we need to account for the
fact that the current call frame is only half-constructed, and use the
parent call frame instead.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99492</commentid>
    <comment_count>17</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-20 09:49:01 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; Geoff, do you immediately see why your patch would have fixed this?
&gt; 
&gt; Yes.
&gt; 
&gt; The old &quot;throwStackOverflowPreviousFrame&quot; was buggy, but untested. My patch
&gt; tickled fast/js/global-recursion-on-full-stack.html in a way that illustrated
&gt; the problem. Since I had to rewrite the logic of
&gt; throwStackOverflowPreviousFrame anyway, I fixed the bug along the way. Here&apos;s
&gt; what I said in the ChangeLog:
&gt; 
&gt; &quot;Fixed a latent bug in stack overflow checking that is now hit because
&gt; the register layout has changed a bit -- namely: when throwing a stack
&gt; overflow exception inside an op_call helper, we need to account for the
&gt; fact that the current call frame is only half-constructed, and use the
&gt; parent call frame instead.&quot;

Thanks. I saw that, but I wasn&apos;t quite sure at the moment if it applied in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99506</commentid>
    <comment_count>18</comment_count>
      <attachid>25318</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-20 10:47:41 -0800</bug_when>
    <thetext>Created attachment 25318
Patch to add tests

I confirmed that the tests added here cause DRT to crash in revisions where this bug existed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99507</commentid>
    <comment_count>19</comment_count>
      <attachid>25318</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-11-20 10:48:59 -0800</bug_when>
    <thetext>Comment on attachment 25318
Patch to add tests

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99508</commentid>
    <comment_count>20</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-20 10:52:55 -0800</bug_when>
    <thetext>Landed in r38624.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>25001</attachid>
            <date>2008-11-09 10:44:56 -0800</date>
            <delta_ts>2008-11-09 10:44:56 -0800</delta_ts>
            <desc>crash log</desc>
            <filename>Safari_2008-11-09-160711_matter.crash</filename>
            <type>text/plain</type>
            <size>25019</size>
            <attacher name="Chris Dent">chris.dent</attacher>
            
              <data encoding="base64">UHJvY2VzczogICAgICAgICBTYWZhcmkgWzIxMDRdClBhdGg6ICAgICAgICAgICAgL0FwcGxpY2F0
aW9ucy9XZWJLaXQuYXBwL0NvbnRlbnRzL01hY09TL1dlYktpdApJZGVudGlmaWVyOiAgICAgIG9y
Zy53ZWJraXQubmlnaHRseS5XZWJLaXQKVmVyc2lvbjogICAgICAgICByMzgyNDAgKDM4MjQwKQpD
b2RlIFR5cGU6ICAgICAgIFg4NiAoTmF0aXZlKQpQYXJlbnQgUHJvY2VzczogIGxhdW5jaGQgWzUy
Ml0KCkRhdGUvVGltZTogICAgICAgMjAwOC0xMS0wOSAxNjowNzoxMS40NDEgKzAwMDAKT1MgVmVy
c2lvbjogICAgICBNYWMgT1MgWCAxMC41LjUgKDlGMjExNCkKUmVwb3J0IFZlcnNpb246ICA2CgpF
eGNlcHRpb24gVHlwZTogIEVYQ19CQURfQUNDRVNTIChTSUdCVVMpCkV4Y2VwdGlvbiBDb2Rlczog
S0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgYXQgMHgwMDAwMDAwMDAwMDAwMTE4CkNyYXNoZWQgVGhy
ZWFkOiAgMAoKVGhyZWFkIDAgQ3Jhc2hlZDoKMCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAg
ICAgIAkweDAwM2NhZTM5IEpTQzo6TWFjaGluZTo6Y3RpX3ZtX3Rocm93KHZvaWQqLCAuLi4pICsg
NTcKClRocmVhZCAxOgowICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE4ZmRl
ZWUgX19zZW13YWl0X3NpZ25hbCArIDEwCjEgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAg
ICAJMHg5MTkyOGJmMSBwdGhyZWFkX2NvbmRfd2FpdCRVTklYMjAwMyArIDczCjIgICBjb20uYXBw
bGUuV2ViQ29yZSAgICAgICAgICAgICAJMHgwMGZjYzk0NCBXZWJDb3JlOjpJY29uRGF0YWJhc2U6
OnN5bmNUaHJlYWRNYWluTG9vcCgpICsgMjQ0CjMgICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAg
ICAgICAJMHgwMGZjY2E1NSBXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNU
aHJlYWQoKSArIDE4MQo0ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5Mjdm
NzkgX3B0aHJlYWRfc3RhcnQgKyAzMjEKNSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAg
IAkweDkxOTI3ZTM2IHRocmVhZF9zdGFydCArIDM0CgpUaHJlYWQgMjoKMCAgIGxpYlN5c3RlbS5C
LmR5bGliICAgICAgICAgICAgIAkweDkxOGY2ZDA2IG1hY2hfbXNnX3RyYXAgKyAxMAoxICAgbGli
U3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE4ZmU0ZmMgbWFjaF9tc2cgKyA3MgoyICAg
Y29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4OTQxMTYwY2UgQ0ZSdW5Mb29wUnVuU3Bl
Y2lmaWMgKyAxNzkwCjMgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJMHg5NDExNmNm
OCBDRlJ1bkxvb3BSdW5Jbk1vZGUgKyA4OAo0ICAgY29tLmFwcGxlLkNGTmV0d29yayAgICAgICAg
ICAgCTB4OTI3OTllY2EgQ0ZVUkxDYWNoZVdvcmtlclRocmVhZCh2b2lkKikgKyAzOTYKNSAgIGxp
YlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTI3Zjc5IF9wdGhyZWFkX3N0YXJ0ICsg
MzIxCjYgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MTkyN2UzNiB0aHJlYWRf
c3RhcnQgKyAzNAoKVGhyZWFkIDM6CjAgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJ
MHg5MThmNmQwNiBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAg
ICAgICAgIAkweDkxOGZlNGZjIG1hY2hfbXNnICsgNzIKMiAgIGNvbS5hcHBsZS5Db3JlRm91bmRh
dGlvbiAgICAgIAkweDk0MTE2MGNlIENGUnVuTG9vcFJ1blNwZWNpZmljICsgMTc5MAozICAgY29t
LmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4OTQxMTZjZjggQ0ZSdW5Mb29wUnVuSW5Nb2Rl
ICsgODgKNCAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAgIAkweDkwYzVhMTAwICtbTlNV
UkxDb25uZWN0aW9uKE5TVVJMQ29ubmVjdGlvblJlYWxseUludGVybmFsKSBfcmVzb3VyY2VMb2Fk
TG9vcDpdICsgMzIwCjUgICBjb20uYXBwbGUuRm91bmRhdGlvbiAgICAgICAgICAJMHg5MGJmNmJh
ZCAtW05TVGhyZWFkIG1haW5dICsgNDUKNiAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAg
IAkweDkwYmY2NzU0IF9fTlNUaHJlYWRfX21haW5fXyArIDMwOAo3ICAgbGliU3lzdGVtLkIuZHls
aWIgICAgICAgICAgICAgCTB4OTE5MjdmNzkgX3B0aHJlYWRfc3RhcnQgKyAzMjEKOCAgIGxpYlN5
c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTI3ZTM2IHRocmVhZF9zdGFydCArIDM0CgpU
aHJlYWQgNDoKMCAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTQ2NjcyIHNl
bGVjdCREQVJXSU5fRVhUU04gKyAxMAoxICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAg
CTB4OTE5MjdmNzkgX3B0aHJlYWRfc3RhcnQgKyAzMjEKMiAgIGxpYlN5c3RlbS5CLmR5bGliICAg
ICAgICAgICAgIAkweDkxOTI3ZTM2IHRocmVhZF9zdGFydCArIDM0CgpUaHJlYWQgNToKMCAgIGxp
YlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOGZkZWVlIF9fc2Vtd2FpdF9zaWduYWwg
KyAxMAoxICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5MjhiZjEgcHRocmVh
ZF9jb25kX3dhaXQkVU5JWDIwMDMgKyA3MwoyICAgY29tLmFwcGxlLkNvbG9yU3luYyAgICAgICAg
ICAgCTB4OTE3OGI0NWMgcHRocmVhZFNlbWFwaG9yZVdhaXQodF9wdGhyZWFkU2VtYXBob3JlKikg
KyA0MgozICAgY29tLmFwcGxlLkNvbG9yU3luYyAgICAgICAgICAgCTB4OTE3OWRkOGUgQ01NQ29u
dlRhc2sodm9pZCopICsgNTQKNCAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkx
OTI3Zjc5IF9wdGhyZWFkX3N0YXJ0ICsgMzIxCjUgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAg
ICAgICAJMHg5MTkyN2UzNiB0aHJlYWRfc3RhcnQgKyAzNAoKVGhyZWFkIDY6CjAgICBsaWJTeXN0
ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MThmNmQwNiBtYWNoX21zZ190cmFwICsgMTAKMSAg
IGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOGZlNGZjIG1hY2hfbXNnICsgNzIK
MiAgIC4uLnJvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdpbgkweDE5ZmNkOTU5IG1lbWNvcHlfbW14
ICsgNzA5NDk3CjMgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MTkyN2Y3OSBf
cHRocmVhZF9zdGFydCArIDMyMQo0ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4
OTE5MjdlMzYgdGhyZWFkX3N0YXJ0ICsgMzQKClRocmVhZCA3OgowICAgbGliU3lzdGVtLkIuZHls
aWIgICAgICAgICAgICAgCTB4OTE4ZjZkNGUgc2VtYXBob3JlX3dhaXRfc2lnbmFsX3RyYXAgKyAx
MAoxICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5MjkwZWEgX3B0aHJlYWRf
Y29uZF93YWl0ICsgMTI2NwoyICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5
NmU1MjkgcHRocmVhZF9jb25kX3dhaXQgKyA0OAozICAgLi4ucm9tZWRpYS5GbGFzaCBQbGF5ZXIu
cGx1Z2luCTB4MTllOTQ5MjggMHgxOWIwMjAwMCArIDM3NDYwODgKNCAgIC4uLnJvbWVkaWEuRmxh
c2ggUGxheWVyLnBsdWdpbgkweDE5ZWNjMjMwIEZsYXNoX0VuZm9yY2VMb2NhbFNlY3VyaXR5ICsg
MTI1MDAwCjUgICAuLi5yb21lZGlhLkZsYXNoIFBsYXllci5wbHVnaW4JMHgxOWU5NGJkMiAweDE5
YjAyMDAwICsgMzc0Njc3MAo2ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5
MjdmNzkgX3B0aHJlYWRfc3RhcnQgKyAzMjEKNyAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAg
ICAgIAkweDkxOTI3ZTM2IHRocmVhZF9zdGFydCArIDM0CgpUaHJlYWQgODoKMCAgIGxpYlN5c3Rl
bS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOGY2ZDRlIHNlbWFwaG9yZV93YWl0X3NpZ25hbF90
cmFwICsgMTAKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTI5MGVhIF9w
dGhyZWFkX2NvbmRfd2FpdCArIDEyNjcKMiAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAg
IAkweDkxOTZlNTI5IHB0aHJlYWRfY29uZF93YWl0ICsgNDgKMyAgIC4uLnJvbWVkaWEuRmxhc2gg
UGxheWVyLnBsdWdpbgkweDE5ZTk0OTI4IDB4MTliMDIwMDAgKyAzNzQ2MDg4CjQgICAuLi5yb21l
ZGlhLkZsYXNoIFBsYXllci5wbHVnaW4JMHgxOWVjYzIzMCBGbGFzaF9FbmZvcmNlTG9jYWxTZWN1
cml0eSArIDEyNTAwMAo1ICAgLi4ucm9tZWRpYS5GbGFzaCBQbGF5ZXIucGx1Z2luCTB4MTllOTRi
ZDIgMHgxOWIwMjAwMCArIDM3NDY3NzAKNiAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAg
IAkweDkxOTI3Zjc5IF9wdGhyZWFkX3N0YXJ0ICsgMzIxCjcgICBsaWJTeXN0ZW0uQi5keWxpYiAg
ICAgICAgICAgICAJMHg5MTkyN2UzNiB0aHJlYWRfc3RhcnQgKyAzNAoKVGhyZWFkIDAgY3Jhc2hl
ZCB3aXRoIFg4NiBUaHJlYWQgU3RhdGUgKDMyLWJpdCk6CiAgZWF4OiAweDAwMDAwMDAwICBlYng6
IDB4MTgzNDQ3ODAgIGVjeDogMHgwMDdiOWI4MCAgZWR4OiAweGJmZmZkZmI0CiAgZWRpOiAweDE3
ZjA3ZmQwICBlc2k6IDB4MDAwMDAxZjkgIGVicDogMHgxOTdkMDhjMCAgZXNwOiAweGJmZmZkZjEw
CiAgIHNzOiAweDAwMDAwMDFmICBlZmw6IDB4MDAwMTAyODIgIGVpcDogMHgwMDNjYWUzOSAgIGNz
OiAweDAwMDAwMDE3CiAgIGRzOiAweDAwMDAwMDFmICAgZXM6IDB4MDAwMDAwMWYgICBmczogMHgw
MDAwMDAwMCAgIGdzOiAweDAwMDAwMDM3CiAgY3IyOiAweDAwMDAwMTE4CgpCaW5hcnkgSW1hZ2Vz
OgogICAgMHgxMDAwIC0gICAweDEzM2ZlZiAgY29tLmFwcGxlLlNhZmFyaSAzLjEuMiAoNTUyNS4y
MC4xKSA8OTUzYTk3ZmNiZGM2MzFlODk0ZjgzNDVkMzUzOTcwNmI+IC9BcHBsaWNhdGlvbnMvU2Fm
YXJpLmFwcC9Db250ZW50cy9NYWNPUy9TYWZhcmkKICAweDE3YjAwMCAtICAgMHgxN2NmZmMgK1dl
YktpdE5pZ2h0bHlFbmFibGVyLmR5bGliID8/PyAoPz8/KSA8NzFmNzc3ZDI2YzNmMDlkZWJlYTJj
OThlMWU1OTE1NTQ+IC9BcHBsaWNhdGlvbnMvV2ViS2l0LmFwcC9Db250ZW50cy9SZXNvdXJjZXMv
V2ViS2l0TmlnaHRseUVuYWJsZXIuZHlsaWIKICAweDE4MTAwMCAtICAgMHgyNDlmZmYgIGNvbS5h
cHBsZS5XZWJLaXQgcjM4MjQwICg1MjguNSspIDwwMTgzMzQ4ZDQ1MzAwMjM3MWQ1NmYxYzQzODli
OGViOD4gL0FwcGxpY2F0aW9ucy9XZWJLaXQuYXBwL0NvbnRlbnRzL0ZyYW1ld29ya3MvMTAuNS9X
ZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvV2ViS2l0CiAgMHgyZDcwMDAgLSAgIDB4MmU2ZmY4
ICBTeW5kaWNhdGlvblVJID8/PyAoPz8/KSA8YzM1NDQzYzQ2MGViNDM1MWVhNDM0NmZiZTI1YTFi
NGU+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TeW5kaWNhdGlvblVJLmZyYW1l
d29yay9WZXJzaW9ucy9BL1N5bmRpY2F0aW9uVUkKICAweDJmNjAwMCAtICAgMHg0MzVmZWYgIGNv
bS5hcHBsZS5KYXZhU2NyaXB0Q29yZSA1MjgrICg1MjguNSspIDw5MDliZTA0YmQwZTFiZGNiMzdk
NzRlM2E5MzJlMjI3YT4gL0FwcGxpY2F0aW9ucy9XZWJLaXQuYXBwL0NvbnRlbnRzL0ZyYW1ld29y
a3MvMTAuNS9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9KYXZhU2NyaXB0Q29y
ZQogIDB4ZDU1MDAwIC0gIDB4MTU4ZmZmZiAgY29tLmFwcGxlLldlYkNvcmUgNTI4KyAoNTI4LjUr
KSA8MjQzNWYwNjU0YTM1NTU4MGZiNmIwYzJiZTdmYjFjNTQ+IC9BcHBsaWNhdGlvbnMvV2ViS2l0
LmFwcC9Db250ZW50cy9GcmFtZXdvcmtzLzEwLjUvV2ViQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9XZWJDb3JlCiAweDFjYjAwMDAgLSAgMHgxZTk4ZmZmICBjb20uYXBwbGUuUmF3Q2FtZXJhLmJ1
bmRsZSAyLjAuMTEgKDQxMCkgPDc3MDRjYzU3ZjdkYWNlYjgxNjcyYmZkYzQ0MzRkYTQwPiAvU3lz
dGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL1Jhd0NhbWVyYS5idW5kbGUvQ29udGVudHMvTWFjT1Mv
UmF3Q2FtZXJhCjB4MTY2NTcwMDAgLSAweDE2NjVjZmYzICBsaWJDR1hDb3JlSW1hZ2UuQS5keWxp
YiA/Pz8gKD8/PykgPDE4MWZiYTRhMmZjMjYzMmE2ZjFmODUwM2VhZDQ0OTUzPiAvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9s
aWJDR1hDb3JlSW1hZ2UuQS5keWxpYgoweDE4MDM4MDAwIC0gMHgxODAzOGZmZSAgY29tLmFwcGxl
LkphdmFQbHVnaW5Db2NvYSAxMi4yLjAgKDEyLjIuMCkgPGIwOGQxMjg1MTgyZmZjYmFlZGQ3NDdk
MTdmZGFlZWZkPiAvTGlicmFyeS9JbnRlcm5ldCBQbHVnLUlucy9KYXZhUGx1Z2luQ29jb2EuYnVu
ZGxlL0NvbnRlbnRzL01hY09TL0phdmFQbHVnaW5Db2NvYQoweDE4MjljMDAwIC0gMHgxODJhMmZm
ZCAgY29tLmFwcGxlLkphdmFWTSAxMi4yLjAgKDEyLjIuMCkgPDlhZDM5MTQ5Y2M3ZWNjOTFkYTNl
OTNkZjdmNjFkMzE1PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvSmF2YVZNCjB4MThjNGMwMDAgLSAweDE4YzZiZmVkICBjb20uYXBwbGUuYXVk
aW8uQ29yZUF1ZGlvS2l0IDEuNSAoMS41KSA8NTg1ZjVlYzk1ZGM4ZjFlZmU1MWQ4MjBiZTg0ZDUz
YTY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVBdWRpb0tpdC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9Db3JlQXVkaW9LaXQKMHgxOWIwMjAwMCAtIDB4MWExMDJmZmIgK2NvbS5tYWNyb21l
ZGlhLkZsYXNoIFBsYXllci5wbHVnaW4gOS4wLjEyNCAoMS4wLjRmNjApIDw4MzU1ZGNmMDc2NTY0
YjY3ODRjNTE3ZmQwZWNjYjJmMj4gL0xpYnJhcnkvSW50ZXJuZXQgUGx1Zy1JbnMvRmxhc2ggUGxh
eWVyLnBsdWdpbi9Db250ZW50cy9NYWNPUy9GbGFzaCBQbGF5ZXIKMHg4ZmUwMDAwMCAtIDB4OGZl
MmRhNTMgIGR5bGQgOTYuMiAoPz8/KSA8MGQzOWYxMTM0NDE2MTYzMjdjMjkyYzk0OWYzY2FhM2U+
IC91c3IvbGliL2R5bGQKMHg5MDAwMzAwMCAtIDB4OTAwMTBmZTcgIGNvbS5hcHBsZS5vcGVuZ2wg
MS41LjggKDEuNS44KSA8MWQ1MzVmMWM0MjZjNmNmZWI4MzZiYTA0Zjg5NmE2YTA+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9PcGVuR0wKMHg5
MDAxMTAwMCAtIDB4OTAwNmVmZmIgIGxpYnN0ZGMrKy42LmR5bGliID8/PyAoPz8/KSA8Zjc1ZTUx
MzNkNzI3NjlkZTVjZTZjMDYxNTNmYzY1ZjY+IC91c3IvbGliL2xpYnN0ZGMrKy42LmR5bGliCjB4
OTAwNmYwMDAgLSAweDkwMDljZmViICBsaWJ2RFNQLmR5bGliID8/PyAoPz8/KSA8NGRhYWZlZDc4
YTQ3MTEzM2VjMzBiM2FlNjM0YjZkM2U+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2Vs
ZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvbGlidkRTUC5keWxpYgoweDkwMDlkMDAwIC0gMHg5MDIxY2ZmZiAgY29tLmFwcGxl
LkFkZHJlc3NCb29rLmZyYW1ld29yayA0LjEuMSAoNjk2KSA8NTRkZWZmMWQyNTc4MDJlMjdiZjA2
MGI4MGQ4ZWU0ZGU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FkZHJlc3NCb29rLmZyYW1l
d29yay9WZXJzaW9ucy9BL0FkZHJlc3NCb29rCjB4OTAyMWQwMDAgLSAweDkwNWJhZmVmICBjb20u
YXBwbGUuUXVhcnR6Q29yZSAxLjUuNiAoMS41LjYpIDwyNTEyZWU4MzlkZmEyN2IwOWExYTNlYWRk
MzYzZTY1MT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6Q29yZS5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9RdWFydHpDb3JlCjB4OTA1YmIwMDAgLSAweDkwNzAxZmY3ICBjb20uYXBwbGUu
SW1hZ2VJTy5mcmFtZXdvcmsgMi4wLjQgKDIuMC40KSA8YjQwN2YwNmZmOWI2ODkzODk5ZTJlMzk5
Y2I2NWM5NTM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbWFnZUlPLmZyYW1ld29yay9WZXJzaW9u
cy9BL0ltYWdlSU8KMHg5MDcwMjAwMCAtIDB4OTA4M2FmZjcgIGxpYmljdWNvcmUuQS5keWxpYiA/
Pz8gKD8/PykgPDA1NDczZjdlYTcyZDk2Yjg0MTVmNjE2NGFmZDkwZWYwPiAvdXNyL2xpYi9saWJp
Y3Vjb3JlLkEuZHlsaWIKMHg5MDgzYjAwMCAtIDB4OTA4NTFmZTcgIGNvbS5hcHBsZS5Db3JlVmlk
ZW8gMS41LjEgKDEuNS4xKSA8ODBiMTczNTcxY2RiOTlhODI5ZTFiOGVjMGE2NzcyOTE+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVWaWRlby5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3Jl
VmlkZW8KMHg5MGFiYjAwMCAtIDB4OTBiMTdmZjcgIGNvbS5hcHBsZS5odG1scmVuZGVyaW5nIDY4
ICgxLjEuMykgPDFjNWMwYzQxNzg5MWI5MjBkZmUxMzkzODVmYzZjMTU1PiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9IVE1M
UmVuZGVyaW5nLmZyYW1ld29yay9WZXJzaW9ucy9BL0hUTUxSZW5kZXJpbmcKMHg5MGIxODAwMCAt
IDB4OTBiMjBmZmYgIGNvbS5hcHBsZS5EaXNrQXJiaXRyYXRpb24gMi4yLjEgKDIuMi4xKSA8MjY2
NGVlYjNhNGQwYzk1YTIxYzA4OTg5MmEwYWU4ZDA+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0Rpc2tBcmJpdHJhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9EaXNrQXJiaXRyYXRpb24KMHg5
MGIyMTAwMCAtIDB4OTBiMjhmZTkgIGxpYmdjY19zLjEuZHlsaWIgPz8/ICg/Pz8pIDxlMjgwZGRm
M2Y1ZmIzMDQ5ZTY3NGVkY2IxMDlmMzg5YT4gL3Vzci9saWIvbGliZ2NjX3MuMS5keWxpYgoweDkw
YjI5MDAwIC0gMHg5MGI0OGZmYSAgbGliSlBFRy5keWxpYiA/Pz8gKD8/PykgPGI4MjIzNDJiY2M3
NjRjODNkNDU1N2E4YjY3ZmEwYzFjPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNh
dGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW1hZ2VJTy5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliSlBFRy5keWxpYgoweDkwYjQ5MDAwIC0gMHg5
MGJkM2ZlMyAgY29tLmFwcGxlLkRlc2t0b3BTZXJ2aWNlcyAxLjQuNyAoMS40LjcpIDxjMzU5MTM4
Mzc4MGRkMTI1OTRjMzdkYmRlNTk5NThiNj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL0Rlc2t0b3BTZXJ2aWNlc1ByaXYuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRGVza3RvcFNlcnZp
Y2VzUHJpdgoweDkwYmQ0MDAwIC0gMHg5MGJlYWZmZiAgY29tLmFwcGxlLkRpY3Rpb25hcnlTZXJ2
aWNlcyAxLjAuMCAoMS4wLjApIDw3ZDIwYjhkMWZiMjM4YzNlNzFkMGZhNmZkYTE4YzRmNz4gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvRGljdGlvbmFyeVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0RpY3Rp
b25hcnlTZXJ2aWNlcwoweDkwYmViMDAwIC0gMHg5MGJlYmZmOCAgY29tLmFwcGxlLkFwcGxpY2F0
aW9uU2VydmljZXMgMzQgKDM0KSA8ZWU3YmRmNTkzZGEwNTBiYjMwYzdhMWZjNDQ2ZWI4YTY+IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvQXBwbGljYXRpb25TZXJ2aWNlcwoweDkwYmVjMDAwIC0gMHg5MGU2N2ZlNyAgY29t
LmFwcGxlLkZvdW5kYXRpb24gNi41LjYgKDY3Ny4yMSkgPDQwNjEwZTc3MDgzZjdlZmVmNThmZTBl
NWJmM2EyMDY2PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Gb3VuZGF0aW9uLmZyYW1ld29y
ay9WZXJzaW9ucy9DL0ZvdW5kYXRpb24KMHg5MGU2ODAwMCAtIDB4OTBlODNmZmIgIGxpYlBuZy5k
eWxpYiA/Pz8gKD8/PykgPDBkNmI5OTFhZmM4MzFlYTA2ZjI5NThlNTkzM2QzM2RkPiAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9u
cy9BL0ZyYW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGli
UG5nLmR5bGliCjB4OTBlODQwMDAgLSAweDkwZThkZmZmICBjb20uYXBwbGUuc3BlZWNoLnJlY29n
bml0aW9uLmZyYW1ld29yayAzLjcuMjQgKDMuNy4yNCkgPGRhMmQ4NDExOTIxYTNmZDhiYzg5OGRj
NzUzYjdmM2VlPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1Zl
cnNpb25zL0EvRnJhbWV3b3Jrcy9TcGVlY2hSZWNvZ25pdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9TcGVlY2hSZWNvZ25pdGlvbgoweDkwZThlMDAwIC0gMHg5MGU5ZGZmZiAgbGlic2FzbDIuMi5k
eWxpYiA/Pz8gKD8/PykgPDNiOGYzYTZjODJhZDQwMjQ1ZmQxYTA4MGQ3YmJjZjc5PiAvdXNyL2xp
Yi9saWJzYXNsMi4yLmR5bGliCjB4OTBlZTAwMDAgLSAweDkwZWUwZmZkICBjb20uYXBwbGUudmVj
TGliIDMuNC4yICh2ZWNMaWIgMy40LjIpIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL3ZlY0xp
Yi5mcmFtZXdvcmsvVmVyc2lvbnMvQS92ZWNMaWIKMHg5MGVlMTAwMCAtIDB4OTBmZTJmZWYgIGNv
bS5hcHBsZS5QdWJTdWIgMS4wLjMgKDY1LjEuMSkgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
UHViU3ViLmZyYW1ld29yay9WZXJzaW9ucy9BL1B1YlN1YgoweDkwZmUzMDAwIC0gMHg5MGZlM2Zm
OCAgY29tLmFwcGxlLkNvY29hIDYuNSAoPz8/KSA8YTFiYzkyNDdjZjY1YzIwZjFhNDRkMDk3M2Ni
ZTY0OWM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZyYW1ld29yay9WZXJzaW9u
cy9BL0NvY29hCjB4OTBmZTQwMDAgLSAweDkwZmU4ZmZmICBsaWJHSUYuZHlsaWIgPz8/ICg/Pz8p
IDw3NzE0YWUyNGViNjRiNDhmYTcxOWZiOTliY2JlMzRmMz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtz
L0ltYWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYkdJRi5keWxpYgoweDkw
ZmU5MDAwIC0gMHg5MTA0MmZmNyAgbGliR0xVLmR5bGliID8/PyAoPz8/KSAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVzL2xpYkdM
VS5keWxpYgoweDkxMDQzMDAwIC0gMHg5MTA4NWZlZiAgY29tLmFwcGxlLk5hdmlnYXRpb25TZXJ2
aWNlcyAzLjUuMiAoMTYzKSA8NzJjZGM5ZDIxZjY2OTA4Mzc4NzA5MjNlN2I4Y2EzNTg+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdv
cmtzL05hdmlnYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9OYXZpZ2F0aW9uU2Vy
dmljZXMKMHg5MTA4NjAwMCAtIDB4OTEwOWFmZjMgIGNvbS5hcHBsZS5JbWFnZUNhcHR1cmUgNC4w
ICg1LjAuMCkgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJz
aW9ucy9BL0ZyYW1ld29ya3MvSW1hZ2VDYXB0dXJlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ltYWdl
Q2FwdHVyZQoweDkxMDliMDAwIC0gMHg5MTBkYWZlZiAgbGliVElGRi5keWxpYiA/Pz8gKD8/Pykg
PGQ0YmNjOWI5YzUwOGU1Mzg0OWQyZDQ2YmI2OTAwOTIyPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3Mv
SW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliVElGRi5keWxpYgoweDkx
MTBiMDAwIC0gMHg5MTFjNWZlMyAgY29tLmFwcGxlLkNvcmVTZXJ2aWNlcy5PU1NlcnZpY2VzIDIy
Ni41ICgyMjYuNSkgPGVmOTk0NWIxMzA0NDk1ZjNlODA4NWM5MzVmMWI4MWUzPiAvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3
b3Jrcy9PU1NlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL09TU2VydmljZXMKMHg5MTFjNjAw
MCAtIDB4OTE0ZThmZTIgIGNvbS5hcHBsZS5RdWlja1RpbWUgNy41LjUgKDk5NS4yMi4zKSA8MDdm
ZmQxMzRkNThmZGJmZTM3N2JhOTAwN2Y1OTEyODk+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L1F1aWNrVGltZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9RdWlja1RpbWUKMHg5MTViODAwMCAtIDB4
OTE2MDlmZjcgIGNvbS5hcHBsZS5ISVNlcnZpY2VzIDEuNy4wICg/Pz8pIDw2Nzk4ODcxODc4MGEw
YTM2N2IxYmRlNjJmNWE2N2M0Yj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp
b25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0hJU2VydmljZXMuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvSElTZXJ2aWNlcwoweDkxNmFkMDAwIC0gMHg5MTZkZmZmZiAgY29t
LmFwcGxlLkxEQVBGcmFtZXdvcmsgMS40LjUgKDExMCkgPDhlMmQ5ZmY2MjMzY2Y0NGNiNjc1MzM2
MjU4NDBjMmFmPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9MREFQLmZyYW1ld29yay9WZXJz
aW9ucy9BL0xEQVAKMHg5MTZlMDAwMCAtIDB4OTE3MWVmZjcgIGxpYkdMSW1hZ2UuZHlsaWIgPz8/
ICg/Pz8pIDw3NWEzMzZiNjEyNjc4MDJlNjZlN2UzMmE4YTdkOWM2NT4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9saWJHTElt
YWdlLmR5bGliCjB4OTE3MWYwMDAgLSAweDkxNzJiZmY5ICBjb20uYXBwbGUuaGVscGRhdGEgMS4w
LjEgKDE0LjIpIC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9IZWxwRGF0YS5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9IZWxwRGF0YQoweDkxNzJjMDAwIC0gMHg5MTcyZWZmNSAgbGliUmFk
aWFuY2UuZHlsaWIgPz8/ICg/Pz8pIDw4MmQ2MDZjNDlmNWRjNzcyMzFmOWQwZTJiZTllZDZhYj4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9GcmFtZXdvcmtzL0ltYWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3Vy
Y2VzL2xpYlJhZGlhbmNlLmR5bGliCjB4OTE3MmYwMDAgLSAweDkxNzU3ZmY3ICBjb20uYXBwbGUu
c2hvcnRjdXQgMSAoMS4wKSA8MzVjZDE3ZDAxNzljYTgzOWM1ZmIwODY5NGYzZGM1ZWY+IC9TeXN0
ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TaG9ydGN1dC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9TaG9ydGN1dAoweDkxNzU4MDAwIC0gMHg5MTgyM2ZmZiAgY29tLmFwcGxlLkNvbG9yU3luYyA0
LjUuMSAoNC41LjEpIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj
ZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db2xvclN5bmMuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvQ29sb3JTeW5jCjB4OTE4MzgwMDAgLSAweDkxODgxZmVmICBjb20uYXBwbGUuTWV0
YWRhdGEgMTAuNS4yICgzOTguMjMpIDxkOTZmNjM1N2E4ZDZmOTc2MTczNDc4ZjI3MTcyYjAyMT4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9u
cy9BL0ZyYW1ld29ya3MvTWV0YWRhdGEuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTWV0YWRhdGEKMHg5
MTg4MjAwMCAtIDB4OTE4ODJmZmMgIGNvbS5hcHBsZS5hdWRpby51bml0cy5BdWRpb1VuaXQgMS41
ICgxLjUpIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0F1ZGlvVW5pdC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9BdWRpb1VuaXQKMHg5MThmNjAwMCAtIDB4OTFhNWRmZjMgIGxpYlN5c3RlbS5CLmR5
bGliID8/PyAoPz8/KSA8ZmM0YzMwODU2ZjYyOTUzYTU3ZjQ5MjdlODljMzM3Mzk+IC91c3IvbGli
L2xpYlN5c3RlbS5CLmR5bGliCjB4OTFhNWUwMDAgLSAweDkxYjgyZmUzICBjb20uYXBwbGUuYXVk
aW8udG9vbGJveC5BdWRpb1Rvb2xib3ggMS41LjEgKDEuNS4xKSAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9BdWRpb1Rvb2xib3guZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXVkaW9Ub29sYm94CjB4
OTFiODMwMDAgLSAweDkxYjg4ZmZmICBjb20uYXBwbGUuQ29tbW9uUGFuZWxzIDEuMi40ICg4NSkg
PGMxMzVmMDJlZGQ2YjJlMjg2NDMxMWUwYjlkMDhhOThkPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db21tb25QYW5lbHMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29tbW9uUGFuZWxzCjB4OTFiODkwMDAgLSAweDkxYzZhZmY3
ICBsaWJ4bWwyLjIuZHlsaWIgPz8/ICg/Pz8pIDxhYjI1MzRiZmE3YTc3NGIyYWQ3NWNjMmQ5YWQ2
ODNhNj4gL3Vzci9saWIvbGlieG1sMi4yLmR5bGliCjB4OTFjNmIwMDAgLSAweDkxZDMyZmYyICBj
b20uYXBwbGUudkltYWdlIDMuMCAoMy4wKSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2Nl
bGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdkltYWdlLmZyYW1ld29yay9W
ZXJzaW9ucy9BL3ZJbWFnZQoweDkxZTk1MDAwIC0gMHg5MWY0N2ZmYiAgbGliY3J5cHRvLjAuOS43
LmR5bGliID8/PyAoPz8/KSA8NzViODBiZmYwZDVjZmFmMTBiNmI2ZmU5ODJkYTM1Nzg+IC91c3Iv
bGliL2xpYmNyeXB0by4wLjkuNy5keWxpYgoweDkxZjQ4MDAwIC0gMHg5MWZjNGZlYiAgY29tLmFw
cGxlLmF1ZGlvLkNvcmVBdWRpbyAzLjEuMCAoMy4xKSA8Mzk2MzNiYjVmYTIwYTgxMzcxOWZmNDNj
NWNlNGZhMzg+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVBdWRpby5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9Db3JlQXVkaW8KMHg5MjExZTAwMCAtIDB4OTIxMmFmZmUgIGxpYkdMLmR5bGli
ID8/PyAoPz8/KSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvTGlicmFyaWVzL2xpYkdMLmR5bGliCjB4OTIxMmIwMDAgLSAweDkyMWE4ZmVmICBs
aWJ2TWlzYy5keWxpYiA/Pz8gKD8/PykgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxl
cmF0ZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9saWJ2TWlzYy5keWxpYgoweDkyMWE5MDAwIC0gMHg5MjIzMGZmNyAgbGlic3FsaXRl
My4wLmR5bGliID8/PyAoPz8/KSA8ZWVlZGM4YmY2ODgxYWM5ZjJjMTk1NGIxYzgwMzc3MjA+IC91
c3IvbGliL2xpYnNxbGl0ZTMuMC5keWxpYgoweDkyMjMxMDAwIC0gMHg5MjcwMmY3NiAgbGliR0xQ
cm9ncmFtbWFiaWxpdHkuZHlsaWIgPz8/ICg/Pz8pIDwxY2M2OWQ0MWM0YmY0ZGZmNzAzNDY1MmJk
ZjU5MmI0Mj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJz
aW9ucy9BL0xpYnJhcmllcy9saWJHTFByb2dyYW1tYWJpbGl0eS5keWxpYgoweDkyNzUzMDAwIC0g
MHg5Mjc4ZGZlNyAgY29tLmFwcGxlLmNvcmV1aSAxLjIgKDYyKSAvU3lzdGVtL0xpYnJhcnkvUHJp
dmF0ZUZyYW1ld29ya3MvQ29yZVVJLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVVSQoweDkyNzhl
MDAwIC0gMHg5MjgxMmZlMyAgY29tLmFwcGxlLkNGTmV0d29yayAzMzkuNSAoMzM5LjUpIDxiMTRi
YmQwNjEwY2I1NWQ5YTMzZWUwNjFkNjYxYjcyZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
Q29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ0ZOZXR3b3JrLmZy
YW1ld29yay9WZXJzaW9ucy9BL0NGTmV0d29yawoweDkyODEzMDAwIC0gMHg5MzAxMGZlZiAgY29t
LmFwcGxlLkFwcEtpdCA2LjUuNSAoOTQ5LjQxKSA8MmFmYzBmM2Y2YjMxZDg5N2I3YTgxM2E2Y2I4
ZjUzYzE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvVmVyc2lv
bnMvQy9BcHBLaXQKMHg5MzAxMTAwMCAtIDB4OTM0MjFmZWYgIGxpYkJMQVMuZHlsaWIgPz8/ICg/
Pz8pIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGliQkxBUy5keWxp
YgoweDkzNDIyMDAwIC0gMHg5MzQ1Y2ZmZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAz
LjAgKDMyOTg5KSA8MGExMmQ4ZDU1MjA1Njc3N2E4NWI0ZTBlMWQwYjc1ZjE+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL1NlY3VyaXR5Rm91bmRhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9T
ZWN1cml0eUZvdW5kYXRpb24KMHg5MzQ1ZDAwMCAtIDB4OTM0NjdmZWIgIGNvbS5hcHBsZS5hdWRp
by5Tb3VuZE1hbmFnZXIgMy45LjIgKDMuOS4yKSA8ZGYwNzdhODA0OGFmYzMwNzVjNmYyZDllNzc4
MGU3OGU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9GcmFtZXdvcmtzL0NhcmJvblNvdW5kLmZyYW1ld29yay9WZXJzaW9ucy9BL0NhcmJvblNv
dW5kCjB4OTM1OWEwMDAgLSAweDkzNWMyZmZmICBsaWJjdXBzLjIuZHlsaWIgPz8/ICg/Pz8pIDwx
MDMxY2E1YjY5MmI4MGE5NTY4ZTU3YTM0MmI2MDE1Nz4gL3Vzci9saWIvbGliY3Vwcy4yLmR5bGli
CjB4OTM2MWYwMDAgLSAweDkzNjI2ZmZlICBsaWJic20uZHlsaWIgPz8/ICg/Pz8pIDxmYTdhZTVm
MWE2MjFkOWI2OWU3ZTE4NzQ3Yzk0MDVmYj4gL3Vzci9saWIvbGliYnNtLmR5bGliCjB4OTM2Mjcw
MDAgLSAweDkzNmE2ZmY1ICBjb20uYXBwbGUuU2VhcmNoS2l0IDEuMi4xICgxLjIuMSkgPGYyOGY4
ZGQwZjE1NWE2NDUzNDExYTBjOWI1NzAyNzY0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9D
b3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9TZWFyY2hLaXQuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvU2VhcmNoS2l0CjB4OTM3MTUwMDAgLSAweDkzNzQ0ZmUzICBjb20u
YXBwbGUuQUUgNDAyLjIgKDQwMi4yKSA8OTVjMTlkNGVlNGViODYyNzBhZDQwNGUzMmEyYzY3ZTE+
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9GcmFtZXdvcmtzL0FFLmZyYW1ld29yay9WZXJzaW9ucy9BL0FFCjB4OTM3NDYwMDAgLSAw
eDkzN2VkZmViICBjb20uYXBwbGUuUUQgMy4xMS41NCAoPz8/KSA8YzMxMTUwYjQwZmNjMjdjMTk1
ZGU0MGYwYWUxMzg2NjY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy
dmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9RRAoweDkzN2VlMDAwIC0gMHg5MzgwY2ZmZiAgbGlicmVzb2x2LjkuZHlsaWIgPz8/ICg/
Pz8pIDw5ZWQ4MDkyNTZjZTg5MTNjZGRjMzI2OWMyZTM2NDY1ND4gL3Vzci9saWIvbGlicmVzb2x2
LjkuZHlsaWIKMHg5M2E0ZjAwMCAtIDB4OTNhOTlmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWludGVy
ZmFjZSAzLjAgKDMyNTMyKSA8Njc5OTJmMjMxNzUyMThkMzczY2QxMTA3YTIwNDFjOWU+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1NlY3VyaXR5SW50ZXJmYWNlLmZyYW1ld29yay9WZXJzaW9u
cy9BL1NlY3VyaXR5SW50ZXJmYWNlCjB4OTNhOWEwMDAgLSAweDkzYWQwZmVmICBsaWJ0aWR5LkEu
ZHlsaWIgPz8/ICg/Pz8pIDxlYzc3ZTE1YmNlMjQxNzYxZTU5MWRlNDEzZGRjODY4Mj4gL3Vzci9s
aWIvbGlidGlkeS5BLmR5bGliCjB4OTNiYWIwMDAgLSAweDkzYzA1ZmY3ICBjb20uYXBwbGUuQ29y
ZVRleHQgMi4wLjMgKD8/PykgPGJlZTc4ZDZhZjJiYzQ4MDVmMmNhN2Q0MzMwYmMxMTI0PiAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJz
aW9ucy9BL0ZyYW1ld29ya3MvQ29yZVRleHQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVRleHQK
MHg5M2MwNjAwMCAtIDB4OTNjMTZmZmMgIGNvbS5hcHBsZS5MYW5nQW5hbHlzaXMgMS42LjQgKDEu
Ni40KSA8YmM3ZWI3MDNkZGMzN2JmODVhZGY5M2UzNWVmZDM5NDc+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3
b3Jrcy9MYW5nQW5hbHlzaXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGFuZ0FuYWx5c2lzCjB4OTNj
MTcwMDAgLSAweDkzY2EzZmY3ICBjb20uYXBwbGUuTGF1bmNoU2VydmljZXMgMjkwICgyOTApIDw4
ZjI2YjU1M2E4Y2M0NzNmOGJhZGZjOTFjYTU1MWVkZT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvTGF1bmNoU2Vy
dmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGF1bmNoU2VydmljZXMKMHg5M2NhNDAwMCAtIDB4
OTNjYTRmZmQgIGNvbS5hcHBsZS5BY2NlbGVyYXRlLnZlY0xpYiAzLjQuMiAodmVjTGliIDMuNC4y
KSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9u
cy9BL0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL3ZlY0xpYgoweDkzY2E1
MDAwIC0gMHg5M2QzOGZmMyAgY29tLmFwcGxlLkFwcGxpY2F0aW9uU2VydmljZXMuQVRTIDMuNCAo
Pz8/KSA8ZWJmODc0YmQzMGQ4OWQ4NzcyN2QyZjE4NjE5NTZmYjk+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3
b3Jrcy9BVFMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQVRTCjB4OTNkZTkwMDAgLSAweDkzZTRmZmZi
ICBjb20uYXBwbGUuSVNTdXBwb3J0IDEuNyAoMzgpIC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9JU1N1cHBvcnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSVNTdXBwb3J0CjB4OTNlNTMw
MDAgLSAweDkzZTUzZmZmICBjb20uYXBwbGUuQ2FyYm9uIDEzNiAoMTM2KSA8NDE3NzkxNmJiZjcw
ZTBkZGM0NDZmOTQwMDFkNTRjOTU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9DYXJib24KMHg5M2U1NDAwMCAtIDB4OTNlNTRmZmQgIGNvbS5h
cHBsZS5BY2NlbGVyYXRlIDEuNC4yIChBY2NlbGVyYXRlIDEuNC4yKSAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0FjY2VsZXJhdGUKMHg5
M2U1NTAwMCAtIDB4OTNlNTlmZmYgIGxpYm1hdGhDb21tb24uQS5keWxpYiA/Pz8gKD8/PykgL3Vz
ci9saWIvc3lzdGVtL2xpYm1hdGhDb21tb24uQS5keWxpYgoweDkzZTVhMDAwIC0gMHg5M2U3ZWZm
ZiAgbGlieHNsdC4xLmR5bGliID8/PyAoPz8/KSA8ZWE1YzhkMzQ5YTM5MzRlY2MyYjkzNmY5Y2Rm
YWJhMDQ+IC91c3IvbGliL2xpYnhzbHQuMS5keWxpYgoweDkzZWM0MDAwIC0gMHg5M2VjNmZmZiAg
Y29tLmFwcGxlLkNyYXNoUmVwb3J0ZXJTdXBwb3J0IDEwLjUuNSAoMTU5KSA8NzM0MWE5MGJkYWYx
OGQ0YjU1YmI2YjM4N2FiOGE5NjI+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9D
cmFzaFJlcG9ydGVyU3VwcG9ydC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DcmFzaFJlcG9ydGVyU3Vw
cG9ydAoweDkzZjg1MDAwIC0gMHg5NDA2YWZmMyAgY29tLmFwcGxlLkNvcmVEYXRhIDEwMC4xICgx
ODYpIDw1MDIxOWJjYjAwNWNiMTVlYTk5OWExOTM5MWE4ZDUyMz4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQ29yZURhdGEuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZURhdGEKMHg5NDA2YjAw
MCAtIDB4OTQwYTJmZmYgIGNvbS5hcHBsZS5TeXN0ZW1Db25maWd1cmF0aW9uIDEuOS4yICgxLjku
MikgPGVhYjU0NjI1NWFjMDk5Yjk2MTZkZjk5OWM5MzU5ZDBlPiAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9TeXN0ZW1Db25maWd1cmF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1N5c3RlbUNv
bmZpZ3VyYXRpb24KMHg5NDBhNDAwMCAtIDB4OTQxZDZmZmYgIGNvbS5hcHBsZS5Db3JlRm91bmRh
dGlvbiA2LjUuNCAoNDc2LjE1KSA8ZGRlMjdjOGJjMzNiOTU2OGNkOTM0Y2U1NGU2YzQxOWQ+IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9u
cy9BL0NvcmVGb3VuZGF0aW9uCjB4OTQxZDcwMDAgLSAweDk0MWRkZmZmICBjb20uYXBwbGUucHJp
bnQuZnJhbWV3b3JrLlByaW50IDIxOC4wLjIgKDIyMC4xKSA8NmMyZGRlYTQ1ZDljZGZmOWE5YmUw
NjY2YTEzZTJkZDQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9GcmFtZXdvcmtzL1ByaW50LmZyYW1ld29yay9WZXJzaW9ucy9BL1ByaW50CjB4
OTQxZGUwMDAgLSAweDk0MWRlZmZiICBjb20uYXBwbGUuaW5zdGFsbHNlcnZlci5mcmFtZXdvcmsg
MS4wICg4KSAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW5zdGFsbFNlcnZlci5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9JbnN0YWxsU2VydmVyCjB4OTUyYzYwMDAgLSAweDk1MzQwZmY4
ICBjb20uYXBwbGUucHJpbnQuZnJhbWV3b3JrLlByaW50Q29yZSA1LjUuMyAoMjQ1LjMpIDw5ODYz
M2VmNjdkNDE5YzFiMDJmNTY1NTZjYjRkODQzZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1ByaW50
Q29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9QcmludENvcmUKMHg5NTM0MTAwMCAtIDB4OTUzNDhm
ZjcgIGxpYkNHQVRTLkEuZHlsaWIgPz8/ICg/Pz8pIDxjOTJkZDI1MTQzYTJkNTU3MDBmNjRkOGMy
NzRjYTAwZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVHcmFwaGljcy5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9SZXNvdXJjZXMvbGliQ0dBVFMuQS5keWxpYgoweDk1MzYxMDAwIC0gMHg5NTM2OGZm
ZiAgY29tLmFwcGxlLmFnbCAzLjAuOSAoQUdMLTMuMC45KSA8MGRiNDk1ZWRjMmFmYmVkNjgxZjNl
ZjZhNWNhNzE3NDE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FHTC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9BR0wKMHg5NTM2ZTAwMCAtIDB4OTUzNzBmZmYgIGNvbS5hcHBsZS5zZWN1cml0eWhp
IDMuMCAoMzA4MTcpIDw0MDU2MmI4NWQ5OTExODM1NGM5NzRlNzZjMzJmYTZmYj4gL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3Mv
U2VjdXJpdHlISS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TZWN1cml0eUhJCjB4OTUzNzEwMDAgLSAw
eDk1Njc4ZmZmICBjb20uYXBwbGUuSElUb29sYm94IDEuNS40ICg/Pz8pIDxmNDA4NGNmOGI2NDlm
ZTE2NmJlNDI1MmFmZjExNDEzOD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZy
YW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSElUb29sYm94LmZyYW1ld29yay9WZXJzaW9u
cy9BL0hJVG9vbGJveAoweDk1Njc5MDAwIC0gMHg5NTk1M2ZmMyAgY29tLmFwcGxlLkNvcmVTZXJ2
aWNlcy5DYXJib25Db3JlIDc4Ni42ICg3ODYuNikgPDk1NmM0Mzg4N2M2NzhmMzQ0NDYyYTJiMWM3
M2NiYTUzPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL0Nh
cmJvbkNvcmUKMHg5NTk1NDAwMCAtIDB4OTU5NzJmZjMgIGNvbS5hcHBsZS5EaXJlY3RvcnlTZXJ2
aWNlLkZyYW1ld29yayAzLjUuNSAoMy41LjUpIDwzNmEwMzJlNDVmMjk5MTAwNGNhODc3NDM3MDlm
ODBhMT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRGlyZWN0b3J5U2VydmljZS5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9EaXJlY3RvcnlTZXJ2aWNlCjB4OTU5NzMwMDAgLSAweDk1YjQxZmZmICBj
b20uYXBwbGUuc2VjdXJpdHkgNS4wLjQgKDM0MTAyKSA8YWZiMDgzMDM0ZTU1ZDA2N2QwYjhkOTFh
ODMyNjlhZDU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1NlY3VyaXR5LmZyYW1ld29yay9W
ZXJzaW9ucy9BL1NlY3VyaXR5CjB4OTViNDIwMDAgLSAweDk1YmYyZmZmICBlZHUubWl0LktlcmJl
cm9zIDYuMC4xMiAoNi4wLjEyKSA8NTVhMjFlMWI4OWU3YTg0NTNkZDIzNjNkZGI1ZjgxODU+IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0tlcmJlcm9zLmZyYW1ld29yay9WZXJzaW9ucy9BL0tl
cmJlcm9zCjB4OTYzMjYwMDAgLSAweDk2MzRhZmViICBsaWJzc2wuMC45LjcuZHlsaWIgPz8/ICg/
Pz8pIDxkMDQxNTZjNjEwNTMwY2E0NDk3OWM4OTk4MzRmYzI0ZD4gL3Vzci9saWIvbGlic3NsLjAu
OS43LmR5bGliCjB4OTYzNmUwMDAgLSAweDk2M2Y5ZmZmICBjb20uYXBwbGUuZnJhbWV3b3JrLklP
S2l0IDEuNS4xICg/Pz8pIDxmZWE0MGEwMDE1NTk0MzFmNzY4MTEzYjkwYjZmNzU5OT4gL1N5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU9LaXQKMHg5
NjNmYTAwMCAtIDB4OTY0M2JmZTcgIGxpYlJJUC5BLmR5bGliID8/PyAoPz8/KSA8YTQyMTI3MzVh
MTZlZWQwM2M2Y2M2Yzc1ODkzYjYxN2Q+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxp
Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db3JlR3JhcGhp
Y3MuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYlJJUC5BLmR5bGliCjB4OTY0M2Mw
MDAgLSAweDk2NDNjZmZhICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzIDMyICgzMikgPDM3M2Q2YTg4
OGY5MjA0NjQxZjMxM2JjNjA3MGFlMDY1PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3Jl
U2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVNlcnZpY2VzCjB4OTY0M2QwMDAgLSAw
eDk2NDU1ZmZmICBjb20uYXBwbGUub3BlbnNjcmlwdGluZyAxLjIuOCAoPz8/KSA8MDEyOWQyZjc1
MGY1ZGRjYjkyZjRhY2Y4YTM1NDE5NTI+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJv
bi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL09wZW5TY3JpcHRpbmcuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvT3BlblNjcmlwdGluZwoweDk2NDU2MDAwIC0gMHg5NjQ1YmZmZiAgY29tLmFw
cGxlLmJhY2t1cC5mcmFtZXdvcmsgMS4wICgxLjApIC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9CYWNrdXAuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQmFja3VwCjB4OTY0NWMwMDAgLSAw
eDk2YWZjZmZmICBjb20uYXBwbGUuQ29yZUdyYXBoaWNzIDEuNDAwLjE2ICg/Pz8pIDxjMDZhNzkx
ODUwZjkxNmMxZDJhZjRlNjFmMTMzMmYwNT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw
bGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVHcmFw
aGljcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlR3JhcGhpY3MKMHg5NmFmZDAwMCAtIDB4OTZi
MGJmZmQgIGxpYnouMS5keWxpYiA/Pz8gKD8/PykgPGE5OGIzYjIyMWE3MmI1NGZhZjczZGVkM2Rk
NzAwMGU1PiAvdXNyL2xpYi9saWJ6LjEuZHlsaWIKMHg5NmIxODAwMCAtIDB4OTZiMjNmZTcgIGxp
YkNTeW5jLkEuZHlsaWIgPz8/ICg/Pz8pIDxiNjRkOGMzODkyMmM4OTEzZGE2YTg2YzNiOWI3NjFh
ND4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVHcmFwaGljcy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9SZXNvdXJjZXMvbGliQ1N5bmMuQS5keWxpYgoweDk2YjI0MDAwIC0gMHg5NmIyN2ZmZiAgY29t
LmFwcGxlLmhlbHAgMS4xICgzNikgPDFhMjVhOGZiYjQ5YTgzMGVmYjMxZDVjMGE1MjkzOWNkPiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJh
bWV3b3Jrcy9IZWxwLmZyYW1ld29yay9WZXJzaW9ucy9BL0hlbHAKMHg5NmIyODAwMCAtIDB4OTZi
MzdmZmUgIGNvbS5hcHBsZS5EU09iakNXcmFwcGVycy5GcmFtZXdvcmsgMS4zICgxLjMpIDwxODI5
ODZiNzQyNDdiNDU5YjJhNjdhNDcwNzFiZGM2Yj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFt
ZXdvcmtzL0RTT2JqQ1dyYXBwZXJzLmZyYW1ld29yay9WZXJzaW9ucy9BL0RTT2JqQ1dyYXBwZXJz
CjB4OTZjMTkwMDAgLSAweDk2YzFhZmZjICBsaWJmZmkuZHlsaWIgPz8/ICg/Pz8pIDxlYWYxMGI5
OWEzZmJjNDkyMGIxNzU4MDk0MDc0NjZjMD4gL3Vzci9saWIvbGliZmZpLmR5bGliCjB4OTZjMWIw
MDAgLSAweDk2Y2FlZmZmICBjb20uYXBwbGUuaW5rLmZyYW1ld29yayAxMDEuMyAoODYpIDxkNGM4
NWI1Y2FmYTgwMjdmZmYwNDJiODRhOGJlNzFkYz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
Q2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW5rLmZyYW1ld29yay9WZXJz
aW9ucy9BL0luawoweDk2Y2FmMDAwIC0gMHg5NzA2ZGZlYSAgbGliTEFQQUNLLmR5bGliID8/PyAo
Pz8/KSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJz
aW9ucy9BL0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL2xpYkxBUEFDSy5k
eWxpYgoweDk3MDZlMDAwIC0gMHg5NzA5OWZlNyAgbGliYXV0by5keWxpYiA/Pz8gKD8/PykgPDJl
NDRjNTIzYjg1MWU4ZTI1ZjA1ZDEzYTQ4MDcwYTU4PiAvdXNyL2xpYi9saWJhdXRvLmR5bGliCjB4
OTcwOWEwMDAgLSAweDk3MTdhZmZmICBsaWJvYmpjLkEuZHlsaWIgPz8/ICg/Pz8pIDw0MDBlOTQz
ZjllOGE2NzhlZWEyMmExZDEyMDU0OTBlZT4gL3Vzci9saWIvbGlib2JqYy5BLmR5bGliCjB4OTcx
N2IwMDAgLSAweDk3MThiZmZmICBjb20uYXBwbGUuc3BlZWNoLnN5bnRoZXNpcy5mcmFtZXdvcmsg
My43LjEgKDMuNy4xKSA8MjczZDk2ZmY4NjFkYzY4YmU2NTljMDdlZjU2ZjU5OWE+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvRnJhbWV3b3Jrcy9TcGVlY2hTeW50aGVzaXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU3BlZWNo
U3ludGhlc2lzCjB4ZmZmZTgwMDAgLSAweGZmZmViZmZmICBsaWJvYmpjLkEuZHlsaWIgPz8/ICg/
Pz8pIC91c3IvbGliL2xpYm9iamMuQS5keWxpYgoweGZmZmYwMDAwIC0gMHhmZmZmMTc4MCAgbGli
U3lzdGVtLkIuZHlsaWIgPz8/ICg/Pz8pIC91c3IvbGliL2xpYlN5c3RlbS5CLmR5bGliCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>25007</attachid>
            <date>2008-11-09 14:11:43 -0800</date>
            <delta_ts>2008-11-09 14:11:43 -0800</delta_ts>
            <desc>second crash log, for confirmation</desc>
            <filename>crash2.txt</filename>
            <type>text/plain</type>
            <size>25355</size>
            <attacher name="Chris Dent">chris.dent</attacher>
            
              <data encoding="base64">UHJvY2VzczogICAgICAgICBTYWZhcmkgWzI0MjVdClBhdGg6ICAgICAgICAgICAgL0FwcGxpY2F0
aW9ucy9XZWJLaXQuYXBwL0NvbnRlbnRzL01hY09TL1dlYktpdApJZGVudGlmaWVyOiAgICAgIG9y
Zy53ZWJraXQubmlnaHRseS5XZWJLaXQKVmVyc2lvbjogICAgICAgICByMzgyNDAgKDM4MjQwKQpD
b2RlIFR5cGU6ICAgICAgIFg4NiAoTmF0aXZlKQpQYXJlbnQgUHJvY2VzczogIGxhdW5jaGQgWzUy
Ml0KCkRhdGUvVGltZTogICAgICAgMjAwOC0xMS0wOSAyMjowNzowOC45ODUgKzAwMDAKT1MgVmVy
c2lvbjogICAgICBNYWMgT1MgWCAxMC41LjUgKDlGMjExNCkKUmVwb3J0IFZlcnNpb246ICA2CgpF
eGNlcHRpb24gVHlwZTogIEVYQ19CQURfQUNDRVNTIChTSUdCVVMpCkV4Y2VwdGlvbiBDb2Rlczog
S0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgYXQgMHgwMDAwMDAwMDAwMDAwMTE4CkNyYXNoZWQgVGhy
ZWFkOiAgMAoKVGhyZWFkIDAgQ3Jhc2hlZDoKMCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAg
ICAgIAkweDAwM2NhZTM5IEpTQzo6TWFjaGluZTo6Y3RpX3ZtX3Rocm93KHZvaWQqLCAuLi4pICsg
NTcKClRocmVhZCAxOgowICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE4ZmRl
ZWUgX19zZW13YWl0X3NpZ25hbCArIDEwCjEgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAg
ICAJMHg5MTkyOGJmMSBwdGhyZWFkX2NvbmRfd2FpdCRVTklYMjAwMyArIDczCjIgICBjb20uYXBw
bGUuV2ViQ29yZSAgICAgICAgICAgICAJMHgwMGZjYzk0NCBXZWJDb3JlOjpJY29uRGF0YWJhc2U6
OnN5bmNUaHJlYWRNYWluTG9vcCgpICsgMjQ0CjMgICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAg
ICAgICAJMHgwMGZjY2E1NSBXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNU
aHJlYWQoKSArIDE4MQo0ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5Mjdm
NzkgX3B0aHJlYWRfc3RhcnQgKyAzMjEKNSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAg
IAkweDkxOTI3ZTM2IHRocmVhZF9zdGFydCArIDM0CgpUaHJlYWQgMjoKMCAgIGxpYlN5c3RlbS5C
LmR5bGliICAgICAgICAgICAgIAkweDkxOGY2ZDA2IG1hY2hfbXNnX3RyYXAgKyAxMAoxICAgbGli
U3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE4ZmU0ZmMgbWFjaF9tc2cgKyA3MgoyICAg
Y29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4OTQxMTYwY2UgQ0ZSdW5Mb29wUnVuU3Bl
Y2lmaWMgKyAxNzkwCjMgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJMHg5NDExNmNm
OCBDRlJ1bkxvb3BSdW5Jbk1vZGUgKyA4OAo0ICAgY29tLmFwcGxlLkNGTmV0d29yayAgICAgICAg
ICAgCTB4OTI3OTllY2EgQ0ZVUkxDYWNoZVdvcmtlclRocmVhZCh2b2lkKikgKyAzOTYKNSAgIGxp
YlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTI3Zjc5IF9wdGhyZWFkX3N0YXJ0ICsg
MzIxCjYgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MTkyN2UzNiB0aHJlYWRf
c3RhcnQgKyAzNAoKVGhyZWFkIDM6CjAgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJ
MHg5MThmNmQwNiBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAg
ICAgICAgIAkweDkxOGZlNGZjIG1hY2hfbXNnICsgNzIKMiAgIGNvbS5hcHBsZS5Db3JlRm91bmRh
dGlvbiAgICAgIAkweDk0MTE2MGNlIENGUnVuTG9vcFJ1blNwZWNpZmljICsgMTc5MAozICAgY29t
LmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4OTQxMTZjZjggQ0ZSdW5Mb29wUnVuSW5Nb2Rl
ICsgODgKNCAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAgIAkweDkwYzVhMTAwICtbTlNV
UkxDb25uZWN0aW9uKE5TVVJMQ29ubmVjdGlvblJlYWxseUludGVybmFsKSBfcmVzb3VyY2VMb2Fk
TG9vcDpdICsgMzIwCjUgICBjb20uYXBwbGUuRm91bmRhdGlvbiAgICAgICAgICAJMHg5MGJmNmJh
ZCAtW05TVGhyZWFkIG1haW5dICsgNDUKNiAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAg
IAkweDkwYmY2NzU0IF9fTlNUaHJlYWRfX21haW5fXyArIDMwOAo3ICAgbGliU3lzdGVtLkIuZHls
aWIgICAgICAgICAgICAgCTB4OTE5MjdmNzkgX3B0aHJlYWRfc3RhcnQgKyAzMjEKOCAgIGxpYlN5
c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTI3ZTM2IHRocmVhZF9zdGFydCArIDM0CgpU
aHJlYWQgNDoKMCAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTQ2NjcyIHNl
bGVjdCREQVJXSU5fRVhUU04gKyAxMAoxICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAg
CTB4OTE5MjdmNzkgX3B0aHJlYWRfc3RhcnQgKyAzMjEKMiAgIGxpYlN5c3RlbS5CLmR5bGliICAg
ICAgICAgICAgIAkweDkxOTI3ZTM2IHRocmVhZF9zdGFydCArIDM0CgpUaHJlYWQgNToKMCAgIGxp
YlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOGY2ZDA2IG1hY2hfbXNnX3RyYXAgKyAx
MAoxICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE4ZmU0ZmMgbWFjaF9tc2cg
KyA3MgoyICAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4OTQxMTYwY2UgQ0ZSdW5M
b29wUnVuU3BlY2lmaWMgKyAxNzkwCjMgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJ
MHg5NDExNmNmOCBDRlJ1bkxvb3BSdW5Jbk1vZGUgKyA4OAo0ICAgY29tLmFwcGxlLkZvdW5kYXRp
b24gICAgICAgICAgCTB4OTBjMmIxMzUgLVtOU1J1bkxvb3AoTlNSdW5Mb29wKSBydW5Nb2RlOmJl
Zm9yZURhdGU6XSArIDIxMwo1ICAgY29tLmFwcGxlLkZvdW5kYXRpb24gICAgICAgICAgCTB4OTBj
MzcyNTQgLVtOU1J1bkxvb3AoTlNSdW5Mb29wKSBydW5dICsgODQKNiAgIGNvbS5hcHBsZS5TYWZh
cmkgICAgICAgICAgICAgIAkweDAwMDVjNjQwIDB4MTAwMCArIDM3NDMzNgo3ICAgY29tLmFwcGxl
LkZvdW5kYXRpb24gICAgICAgICAgCTB4OTBiZjZiYWQgLVtOU1RocmVhZCBtYWluXSArIDQ1Cjgg
ICBjb20uYXBwbGUuRm91bmRhdGlvbiAgICAgICAgICAJMHg5MGJmNjc1NCBfX05TVGhyZWFkX19t
YWluX18gKyAzMDgKOSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTI3Zjc5
IF9wdGhyZWFkX3N0YXJ0ICsgMzIxCjEwICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJ
MHg5MTkyN2UzNiB0aHJlYWRfc3RhcnQgKyAzNAoKVGhyZWFkIDY6CjAgICBsaWJTeXN0ZW0uQi5k
eWxpYiAgICAgICAgICAgICAJMHg5MThmNmQwNiBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYlN5
c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOGZlNGZjIG1hY2hfbXNnICsgNzIKMiAgIC4u
LnJvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdpbgkweDFhNTc2OTU5IG1lbWNvcHlfbW14ICsgNzA5
NDk3CjMgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MTkyN2Y3OSBfcHRocmVh
ZF9zdGFydCArIDMyMQo0ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5Mjdl
MzYgdGhyZWFkX3N0YXJ0ICsgMzQKClRocmVhZCA3OgowICAgbGliU3lzdGVtLkIuZHlsaWIgICAg
ICAgICAgICAgCTB4OTE4ZjZkNGUgc2VtYXBob3JlX3dhaXRfc2lnbmFsX3RyYXAgKyAxMAoxICAg
bGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5MjkwZWEgX3B0aHJlYWRfY29uZF93
YWl0ICsgMTI2NwoyICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5NmU1Mjkg
cHRocmVhZF9jb25kX3dhaXQgKyA0OAozICAgLi4ucm9tZWRpYS5GbGFzaCBQbGF5ZXIucGx1Z2lu
CTB4MWE0M2Q5MjggMHgxYTBhYjAwMCArIDM3NDYwODgKNCAgIC4uLnJvbWVkaWEuRmxhc2ggUGxh
eWVyLnBsdWdpbgkweDFhNDc1MjMwIEZsYXNoX0VuZm9yY2VMb2NhbFNlY3VyaXR5ICsgMTI1MDAw
CjUgICAuLi5yb21lZGlhLkZsYXNoIFBsYXllci5wbHVnaW4JMHgxYTQzZGJkMiAweDFhMGFiMDAw
ICsgMzc0Njc3MAo2ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTE5MjdmNzkg
X3B0aHJlYWRfc3RhcnQgKyAzMjEKNyAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkw
eDkxOTI3ZTM2IHRocmVhZF9zdGFydCArIDM0CgpUaHJlYWQgODoKMCAgIGxpYlN5c3RlbS5CLmR5
bGliICAgICAgICAgICAgIAkweDkxOGY2ZDRlIHNlbWFwaG9yZV93YWl0X3NpZ25hbF90cmFwICsg
MTAKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkxOTI5MGVhIF9wdGhyZWFk
X2NvbmRfd2FpdCArIDEyNjcKMiAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkx
OTZlNTI5IHB0aHJlYWRfY29uZF93YWl0ICsgNDgKMyAgIC4uLnJvbWVkaWEuRmxhc2ggUGxheWVy
LnBsdWdpbgkweDFhNDNkOTI4IDB4MWEwYWIwMDAgKyAzNzQ2MDg4CjQgICAuLi5yb21lZGlhLkZs
YXNoIFBsYXllci5wbHVnaW4JMHgxYTQ3NTIzMCBGbGFzaF9FbmZvcmNlTG9jYWxTZWN1cml0eSAr
IDEyNTAwMAo1ICAgLi4ucm9tZWRpYS5GbGFzaCBQbGF5ZXIucGx1Z2luCTB4MWE0M2RiZDIgMHgx
YTBhYjAwMCArIDM3NDY3NzAKNiAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkx
OTI3Zjc5IF9wdGhyZWFkX3N0YXJ0ICsgMzIxCjcgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAg
ICAgICAJMHg5MTkyN2UzNiB0aHJlYWRfc3RhcnQgKyAzNAoKVGhyZWFkIDAgY3Jhc2hlZCB3aXRo
IFg4NiBUaHJlYWQgU3RhdGUgKDMyLWJpdCk6CiAgZWF4OiAweDAwMDAwMDAwICBlYng6IDB4MTg4
MTNmNDggIGVjeDogMHgwMDdiZjEwMCAgZWR4OiAweGJmZmZkZmI0CiAgZWRpOiAweDE3ZDIwZmQw
ICBlc2k6IDB4MDAwMDAxZjkgIGVicDogMHgxOGRiMzhjMCAgZXNwOiAweGJmZmZkZjEwCiAgIHNz
OiAweDAwMDAwMDFmICBlZmw6IDB4MDAwMTAyODIgIGVpcDogMHgwMDNjYWUzOSAgIGNzOiAweDAw
MDAwMDE3CiAgIGRzOiAweDAwMDAwMDFmICAgZXM6IDB4MDAwMDAwMWYgICBmczogMHgwMDAwMDAw
MCAgIGdzOiAweDAwMDAwMDM3CiAgY3IyOiAweDAwMDAwMTE4CgpCaW5hcnkgSW1hZ2VzOgogICAg
MHgxMDAwIC0gICAweDEzM2ZlZiAgY29tLmFwcGxlLlNhZmFyaSAzLjEuMiAoNTUyNS4yMC4xKSA8
OTUzYTk3ZmNiZGM2MzFlODk0ZjgzNDVkMzUzOTcwNmI+IC9BcHBsaWNhdGlvbnMvU2FmYXJpLmFw
cC9Db250ZW50cy9NYWNPUy9TYWZhcmkKICAweDE3YjAwMCAtICAgMHgxN2NmZmMgK1dlYktpdE5p
Z2h0bHlFbmFibGVyLmR5bGliID8/PyAoPz8/KSA8NzFmNzc3ZDI2YzNmMDlkZWJlYTJjOThlMWU1
OTE1NTQ+IC9BcHBsaWNhdGlvbnMvV2ViS2l0LmFwcC9Db250ZW50cy9SZXNvdXJjZXMvV2ViS2l0
TmlnaHRseUVuYWJsZXIuZHlsaWIKICAweDE4MTAwMCAtICAgMHgyNDlmZmYgIGNvbS5hcHBsZS5X
ZWJLaXQgcjM4MjQwICg1MjguNSspIDwwMTgzMzQ4ZDQ1MzAwMjM3MWQ1NmYxYzQzODliOGViOD4g
L0FwcGxpY2F0aW9ucy9XZWJLaXQuYXBwL0NvbnRlbnRzL0ZyYW1ld29ya3MvMTAuNS9XZWJLaXQu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvV2ViS2l0CiAgMHgyZDcwMDAgLSAgIDB4MmU2ZmY4ICBTeW5k
aWNhdGlvblVJID8/PyAoPz8/KSA8YzM1NDQzYzQ2MGViNDM1MWVhNDM0NmZiZTI1YTFiNGU+IC9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TeW5kaWNhdGlvblVJLmZyYW1ld29yay9W
ZXJzaW9ucy9BL1N5bmRpY2F0aW9uVUkKICAweDJmNjAwMCAtICAgMHg0MzVmZWYgIGNvbS5hcHBs
ZS5KYXZhU2NyaXB0Q29yZSA1MjgrICg1MjguNSspIDw5MDliZTA0YmQwZTFiZGNiMzdkNzRlM2E5
MzJlMjI3YT4gL0FwcGxpY2F0aW9ucy9XZWJLaXQuYXBwL0NvbnRlbnRzL0ZyYW1ld29ya3MvMTAu
NS9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9KYXZhU2NyaXB0Q29yZQogIDB4
ZDU1MDAwIC0gIDB4MTU4ZmZmZiAgY29tLmFwcGxlLldlYkNvcmUgNTI4KyAoNTI4LjUrKSA8MjQz
NWYwNjU0YTM1NTU4MGZiNmIwYzJiZTdmYjFjNTQ+IC9BcHBsaWNhdGlvbnMvV2ViS2l0LmFwcC9D
b250ZW50cy9GcmFtZXdvcmtzLzEwLjUvV2ViQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9XZWJD
b3JlCiAweDFjYjAwMDAgLSAgMHgxZTk4ZmZmICBjb20uYXBwbGUuUmF3Q2FtZXJhLmJ1bmRsZSAy
LjAuMTEgKDQxMCkgPDc3MDRjYzU3ZjdkYWNlYjgxNjcyYmZkYzQ0MzRkYTQwPiAvU3lzdGVtL0xp
YnJhcnkvQ29yZVNlcnZpY2VzL1Jhd0NhbWVyYS5idW5kbGUvQ29udGVudHMvTWFjT1MvUmF3Q2Ft
ZXJhCjB4MTY2NTYwMDAgLSAweDE2NjViZmYzICBsaWJDR1hDb3JlSW1hZ2UuQS5keWxpYiA/Pz8g
KD8/PykgPDE4MWZiYTRhMmZjMjYzMmE2ZjFmODUwM2VhZDQ0OTUzPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1l
d29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9saWJDR1hD
b3JlSW1hZ2UuQS5keWxpYgoweDE4NDZiMDAwIC0gMHgxODQ2YmZmZSAgY29tLmFwcGxlLkphdmFQ
bHVnaW5Db2NvYSAxMi4yLjAgKDEyLjIuMCkgPGIwOGQxMjg1MTgyZmZjYmFlZGQ3NDdkMTdmZGFl
ZWZkPiAvTGlicmFyeS9JbnRlcm5ldCBQbHVnLUlucy9KYXZhUGx1Z2luQ29jb2EuYnVuZGxlL0Nv
bnRlbnRzL01hY09TL0phdmFQbHVnaW5Db2NvYQoweDE4NTdkMDAwIC0gMHgxODU4M2ZmZCAgY29t
LmFwcGxlLkphdmFWTSAxMi4yLjAgKDEyLjIuMCkgPDlhZDM5MTQ5Y2M3ZWNjOTFkYTNlOTNkZjdm
NjFkMzE1PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL1ZlcnNp
b25zL0EvSmF2YVZNCjB4MTk1ODAwMDAgLSAweDE5NTlmZmVkICBjb20uYXBwbGUuYXVkaW8uQ29y
ZUF1ZGlvS2l0IDEuNSAoMS41KSA8NTg1ZjVlYzk1ZGM4ZjFlZmU1MWQ4MjBiZTg0ZDUzYTY+IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVBdWRpb0tpdC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9Db3JlQXVkaW9LaXQKMHgxYTBhYjAwMCAtIDB4MWE2YWJmZmIgK2NvbS5tYWNyb21lZGlhLkZs
YXNoIFBsYXllci5wbHVnaW4gOS4wLjEyNCAoMS4wLjRmNjApIDw4MzU1ZGNmMDc2NTY0YjY3ODRj
NTE3ZmQwZWNjYjJmMj4gL0xpYnJhcnkvSW50ZXJuZXQgUGx1Zy1JbnMvRmxhc2ggUGxheWVyLnBs
dWdpbi9Db250ZW50cy9NYWNPUy9GbGFzaCBQbGF5ZXIKMHg4ZmUwMDAwMCAtIDB4OGZlMmRhNTMg
IGR5bGQgOTYuMiAoPz8/KSA8MGQzOWYxMTM0NDE2MTYzMjdjMjkyYzk0OWYzY2FhM2U+IC91c3Iv
bGliL2R5bGQKMHg5MDAwMzAwMCAtIDB4OTAwMTBmZTcgIGNvbS5hcHBsZS5vcGVuZ2wgMS41Ljgg
KDEuNS44KSA8MWQ1MzVmMWM0MjZjNmNmZWI4MzZiYTA0Zjg5NmE2YTA+IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9PcGVuR0wKMHg5MDAxMTAw
MCAtIDB4OTAwNmVmZmIgIGxpYnN0ZGMrKy42LmR5bGliID8/PyAoPz8/KSA8Zjc1ZTUxMzNkNzI3
NjlkZTVjZTZjMDYxNTNmYzY1ZjY+IC91c3IvbGliL2xpYnN0ZGMrKy42LmR5bGliCjB4OTAwNmYw
MDAgLSAweDkwMDljZmViICBsaWJ2RFNQLmR5bGliID8/PyAoPz8/KSA8NGRhYWZlZDc4YTQ3MTEz
M2VjMzBiM2FlNjM0YjZkM2U+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvbGlidkRTUC5keWxpYgoweDkwMDlkMDAwIC0gMHg5MDIxY2ZmZiAgY29tLmFwcGxlLkFkZHJl
c3NCb29rLmZyYW1ld29yayA0LjEuMSAoNjk2KSA8NTRkZWZmMWQyNTc4MDJlMjdiZjA2MGI4MGQ4
ZWU0ZGU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FkZHJlc3NCb29rLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0FkZHJlc3NCb29rCjB4OTAyMWQwMDAgLSAweDkwNWJhZmVmICBjb20uYXBwbGUu
UXVhcnR6Q29yZSAxLjUuNiAoMS41LjYpIDwyNTEyZWU4MzlkZmEyN2IwOWExYTNlYWRkMzYzZTY1
MT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6Q29yZS5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9RdWFydHpDb3JlCjB4OTA1YmIwMDAgLSAweDkwNzAxZmY3ICBjb20uYXBwbGUuSW1hZ2VJ
Ty5mcmFtZXdvcmsgMi4wLjQgKDIuMC40KSA8YjQwN2YwNmZmOWI2ODkzODk5ZTJlMzk5Y2I2NWM5
NTM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbWFnZUlPLmZyYW1ld29yay9WZXJzaW9ucy9BL0lt
YWdlSU8KMHg5MDcwMjAwMCAtIDB4OTA4M2FmZjcgIGxpYmljdWNvcmUuQS5keWxpYiA/Pz8gKD8/
PykgPDA1NDczZjdlYTcyZDk2Yjg0MTVmNjE2NGFmZDkwZWYwPiAvdXNyL2xpYi9saWJpY3Vjb3Jl
LkEuZHlsaWIKMHg5MDgzYjAwMCAtIDB4OTA4NTFmZTcgIGNvbS5hcHBsZS5Db3JlVmlkZW8gMS41
LjEgKDEuNS4xKSA8ODBiMTczNTcxY2RiOTlhODI5ZTFiOGVjMGE2NzcyOTE+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NvcmVWaWRlby5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlVmlkZW8K
MHg5MGFiYjAwMCAtIDB4OTBiMTdmZjcgIGNvbS5hcHBsZS5odG1scmVuZGVyaW5nIDY4ICgxLjEu
MykgPDFjNWMwYzQxNzg5MWI5MjBkZmUxMzkzODVmYzZjMTU1PiAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9IVE1MUmVuZGVy
aW5nLmZyYW1ld29yay9WZXJzaW9ucy9BL0hUTUxSZW5kZXJpbmcKMHg5MGIxODAwMCAtIDB4OTBi
MjBmZmYgIGNvbS5hcHBsZS5EaXNrQXJiaXRyYXRpb24gMi4yLjEgKDIuMi4xKSA8MjY2NGVlYjNh
NGQwYzk1YTIxYzA4OTg5MmEwYWU4ZDA+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Rpc2tB
cmJpdHJhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9EaXNrQXJiaXRyYXRpb24KMHg5MGIyMTAw
MCAtIDB4OTBiMjhmZTkgIGxpYmdjY19zLjEuZHlsaWIgPz8/ICg/Pz8pIDxlMjgwZGRmM2Y1ZmIz
MDQ5ZTY3NGVkY2IxMDlmMzg5YT4gL3Vzci9saWIvbGliZ2NjX3MuMS5keWxpYgoweDkwYjI5MDAw
IC0gMHg5MGI0OGZmYSAgbGliSlBFRy5keWxpYiA/Pz8gKD8/PykgPGI4MjIzNDJiY2M3NjRjODNk
NDU1N2E4YjY3ZmEwYzFjPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNl
cnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliSlBFRy5keWxpYgoweDkwYjQ5MDAwIC0gMHg5MGJkM2Zl
MyAgY29tLmFwcGxlLkRlc2t0b3BTZXJ2aWNlcyAxLjQuNyAoMS40LjcpIDxjMzU5MTM4Mzc4MGRk
MTI1OTRjMzdkYmRlNTk5NThiNj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Rl
c2t0b3BTZXJ2aWNlc1ByaXYuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRGVza3RvcFNlcnZpY2VzUHJp
dgoweDkwYmQ0MDAwIC0gMHg5MGJlYWZmZiAgY29tLmFwcGxlLkRpY3Rpb25hcnlTZXJ2aWNlcyAx
LjAuMCAoMS4wLjApIDw3ZDIwYjhkMWZiMjM4YzNlNzFkMGZhNmZkYTE4YzRmNz4gL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1l
d29ya3MvRGljdGlvbmFyeVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0RpY3Rpb25hcnlT
ZXJ2aWNlcwoweDkwYmViMDAwIC0gMHg5MGJlYmZmOCAgY29tLmFwcGxlLkFwcGxpY2F0aW9uU2Vy
dmljZXMgMzQgKDM0KSA8ZWU3YmRmNTkzZGEwNTBiYjMwYzdhMWZjNDQ2ZWI4YTY+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvQXBwbGljYXRpb25TZXJ2aWNlcwoweDkwYmVjMDAwIC0gMHg5MGU2N2ZlNyAgY29tLmFwcGxl
LkZvdW5kYXRpb24gNi41LjYgKDY3Ny4yMSkgPDQwNjEwZTc3MDgzZjdlZmVmNThmZTBlNWJmM2Ey
MDY2PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Gb3VuZGF0aW9uLmZyYW1ld29yay9WZXJz
aW9ucy9DL0ZvdW5kYXRpb24KMHg5MGU2ODAwMCAtIDB4OTBlODNmZmIgIGxpYlBuZy5keWxpYiA/
Pz8gKD8/PykgPDBkNmI5OTFhZmM4MzFlYTA2ZjI5NThlNTkzM2QzM2RkPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0Zy
YW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliUG5nLmR5
bGliCjB4OTBlODQwMDAgLSAweDkwZThkZmZmICBjb20uYXBwbGUuc3BlZWNoLnJlY29nbml0aW9u
LmZyYW1ld29yayAzLjcuMjQgKDMuNy4yNCkgPGRhMmQ4NDExOTIxYTNmZDhiYzg5OGRjNzUzYjdm
M2VlPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25z
L0EvRnJhbWV3b3Jrcy9TcGVlY2hSZWNvZ25pdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TcGVl
Y2hSZWNvZ25pdGlvbgoweDkwZThlMDAwIC0gMHg5MGU5ZGZmZiAgbGlic2FzbDIuMi5keWxpYiA/
Pz8gKD8/PykgPDNiOGYzYTZjODJhZDQwMjQ1ZmQxYTA4MGQ3YmJjZjc5PiAvdXNyL2xpYi9saWJz
YXNsMi4yLmR5bGliCjB4OTBlZTAwMDAgLSAweDkwZWUwZmZkICBjb20uYXBwbGUudmVjTGliIDMu
NC4yICh2ZWNMaWIgMy40LjIpIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS92ZWNMaWIKMHg5MGVlMTAwMCAtIDB4OTBmZTJmZWYgIGNvbS5hcHBs
ZS5QdWJTdWIgMS4wLjMgKDY1LjEuMSkgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUHViU3Vi
LmZyYW1ld29yay9WZXJzaW9ucy9BL1B1YlN1YgoweDkwZmUzMDAwIC0gMHg5MGZlM2ZmOCAgY29t
LmFwcGxlLkNvY29hIDYuNSAoPz8/KSA8YTFiYzkyNDdjZjY1YzIwZjFhNDRkMDk3M2NiZTY0OWM+
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZyYW1ld29yay9WZXJzaW9ucy9BL0Nv
Y29hCjB4OTBmZTQwMDAgLSAweDkwZmU4ZmZmICBsaWJHSUYuZHlsaWIgPz8/ICg/Pz8pIDw3NzE0
YWUyNGViNjRiNDhmYTcxOWZiOTliY2JlMzRmMz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0ltYWdl
SU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYkdJRi5keWxpYgoweDkwZmU5MDAw
IC0gMHg5MTA0MmZmNyAgbGliR0xVLmR5bGliID8/PyAoPz8/KSAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVzL2xpYkdMVS5keWxp
YgoweDkxMDQzMDAwIC0gMHg5MTA4NWZlZiAgY29tLmFwcGxlLk5hdmlnYXRpb25TZXJ2aWNlcyAz
LjUuMiAoMTYzKSA8NzJjZGM5ZDIxZjY2OTA4Mzc4NzA5MjNlN2I4Y2EzNTg+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL05h
dmlnYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9OYXZpZ2F0aW9uU2VydmljZXMK
MHg5MTA4NjAwMCAtIDB4OTEwOWFmZjMgIGNvbS5hcHBsZS5JbWFnZUNhcHR1cmUgNC4wICg1LjAu
MCkgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvSW1hZ2VDYXB0dXJlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ltYWdlQ2FwdHVy
ZQoweDkxMDliMDAwIC0gMHg5MTBkYWZlZiAgbGliVElGRi5keWxpYiA/Pz8gKD8/PykgPGQ0YmNj
OWI5YzUwOGU1Mzg0OWQyZDQ2YmI2OTAwOTIyPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B
cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW1hZ2VJ
Ty5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliVElGRi5keWxpYgoweDkxMTBiMDAw
IC0gMHg5MTFjNWZlMyAgY29tLmFwcGxlLkNvcmVTZXJ2aWNlcy5PU1NlcnZpY2VzIDIyNi41ICgy
MjYuNSkgPGVmOTk0NWIxMzA0NDk1ZjNlODA4NWM5MzVmMWI4MWUzPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9P
U1NlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL09TU2VydmljZXMKMHg5MTFjNjAwMCAtIDB4
OTE0ZThmZTIgIGNvbS5hcHBsZS5RdWlja1RpbWUgNy41LjUgKDk5NS4yMi4zKSA8MDdmZmQxMzRk
NThmZGJmZTM3N2JhOTAwN2Y1OTEyODk+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1F1aWNr
VGltZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9RdWlja1RpbWUKMHg5MTViODAwMCAtIDB4OTE2MDlm
ZjcgIGNvbS5hcHBsZS5ISVNlcnZpY2VzIDEuNy4wICg/Pz8pIDw2Nzk4ODcxODc4MGEwYTM2N2Ix
YmRlNjJmNWE2N2M0Yj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2
aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0hJU2VydmljZXMuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvSElTZXJ2aWNlcwoweDkxNmFkMDAwIC0gMHg5MTZkZmZmZiAgY29tLmFwcGxl
LkxEQVBGcmFtZXdvcmsgMS40LjUgKDExMCkgPDhlMmQ5ZmY2MjMzY2Y0NGNiNjc1MzM2MjU4NDBj
MmFmPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9MREFQLmZyYW1ld29yay9WZXJzaW9ucy9B
L0xEQVAKMHg5MTZlMDAwMCAtIDB4OTE3MWVmZjcgIGxpYkdMSW1hZ2UuZHlsaWIgPz8/ICg/Pz8p
IDw3NWEzMzZiNjEyNjc4MDJlNjZlN2UzMmE4YTdkOWM2NT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9saWJHTEltYWdlLmR5
bGliCjB4OTE3MWYwMDAgLSAweDkxNzJiZmY5ICBjb20uYXBwbGUuaGVscGRhdGEgMS4wLjEgKDE0
LjIpIC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9IZWxwRGF0YS5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9IZWxwRGF0YQoweDkxNzJjMDAwIC0gMHg5MTcyZWZmNSAgbGliUmFkaWFuY2Uu
ZHlsaWIgPz8/ICg/Pz8pIDw4MmQ2MDZjNDlmNWRjNzcyMzFmOWQwZTJiZTllZDZhYj4gL1N5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9GcmFtZXdvcmtzL0ltYWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xp
YlJhZGlhbmNlLmR5bGliCjB4OTE3MmYwMDAgLSAweDkxNzU3ZmY3ICBjb20uYXBwbGUuc2hvcnRj
dXQgMSAoMS4wKSA8MzVjZDE3ZDAxNzljYTgzOWM1ZmIwODY5NGYzZGM1ZWY+IC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TaG9ydGN1dC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TaG9y
dGN1dAoweDkxNzU4MDAwIC0gMHg5MTgyM2ZmZiAgY29tLmFwcGxlLkNvbG9yU3luYyA0LjUuMSAo
NC41LjEpIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db2xvclN5bmMuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvQ29sb3JTeW5jCjB4OTE4MzgwMDAgLSAweDkxODgxZmVmICBjb20uYXBwbGUuTWV0YWRhdGEg
MTAuNS4yICgzOTguMjMpIDxkOTZmNjM1N2E4ZDZmOTc2MTczNDc4ZjI3MTcyYjAyMT4gL1N5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0Zy
YW1ld29ya3MvTWV0YWRhdGEuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTWV0YWRhdGEKMHg5MTg4MjAw
MCAtIDB4OTE4ODJmZmMgIGNvbS5hcHBsZS5hdWRpby51bml0cy5BdWRpb1VuaXQgMS41ICgxLjUp
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0F1ZGlvVW5pdC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9BdWRpb1VuaXQKMHg5MThmNjAwMCAtIDB4OTFhNWRmZjMgIGxpYlN5c3RlbS5CLmR5bGliID8/
PyAoPz8/KSA8ZmM0YzMwODU2ZjYyOTUzYTU3ZjQ5MjdlODljMzM3Mzk+IC91c3IvbGliL2xpYlN5
c3RlbS5CLmR5bGliCjB4OTFhNWUwMDAgLSAweDkxYjgyZmUzICBjb20uYXBwbGUuYXVkaW8udG9v
bGJveC5BdWRpb1Rvb2xib3ggMS41LjEgKDEuNS4xKSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9BdWRpb1Rvb2xib3guZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXVkaW9Ub29sYm94CjB4OTFiODMw
MDAgLSAweDkxYjg4ZmZmICBjb20uYXBwbGUuQ29tbW9uUGFuZWxzIDEuMi40ICg4NSkgPGMxMzVm
MDJlZGQ2YjJlMjg2NDMxMWUwYjlkMDhhOThkPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9D
YXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db21tb25QYW5lbHMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvQ29tbW9uUGFuZWxzCjB4OTFiODkwMDAgLSAweDkxYzZhZmY3ICBsaWJ4
bWwyLjIuZHlsaWIgPz8/ICg/Pz8pIDxhYjI1MzRiZmE3YTc3NGIyYWQ3NWNjMmQ5YWQ2ODNhNj4g
L3Vzci9saWIvbGlieG1sMi4yLmR5bGliCjB4OTFjNmIwMDAgLSAweDkxZDMyZmYyICBjb20uYXBw
bGUudkltYWdlIDMuMCAoMy4wKSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRl
LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdkltYWdlLmZyYW1ld29yay9WZXJzaW9u
cy9BL3ZJbWFnZQoweDkxZTk1MDAwIC0gMHg5MWY0N2ZmYiAgbGliY3J5cHRvLjAuOS43LmR5bGli
ID8/PyAoPz8/KSA8NzViODBiZmYwZDVjZmFmMTBiNmI2ZmU5ODJkYTM1Nzg+IC91c3IvbGliL2xp
YmNyeXB0by4wLjkuNy5keWxpYgoweDkxZjQ4MDAwIC0gMHg5MWZjNGZlYiAgY29tLmFwcGxlLmF1
ZGlvLkNvcmVBdWRpbyAzLjEuMCAoMy4xKSA8Mzk2MzNiYjVmYTIwYTgxMzcxOWZmNDNjNWNlNGZh
Mzg+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVBdWRpby5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9Db3JlQXVkaW8KMHg5MjExZTAwMCAtIDB4OTIxMmFmZmUgIGxpYkdMLmR5bGliID8/PyAo
Pz8/KSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvTGlicmFyaWVzL2xpYkdMLmR5bGliCjB4OTIxMmIwMDAgLSAweDkyMWE4ZmVmICBsaWJ2TWlz
Yy5keWxpYiA/Pz8gKD8/PykgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9saWJ2TWlzYy5keWxpYgoweDkyMWE5MDAwIC0gMHg5MjIzMGZmNyAgbGlic3FsaXRlMy4wLmR5
bGliID8/PyAoPz8/KSA8ZWVlZGM4YmY2ODgxYWM5ZjJjMTk1NGIxYzgwMzc3MjA+IC91c3IvbGli
L2xpYnNxbGl0ZTMuMC5keWxpYgoweDkyMjMxMDAwIC0gMHg5MjcwMmY3NiAgbGliR0xQcm9ncmFt
bWFiaWxpdHkuZHlsaWIgPz8/ICg/Pz8pIDwxY2M2OWQ0MWM0YmY0ZGZmNzAzNDY1MmJkZjU5MmI0
Mj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJzaW9ucy9B
L0xpYnJhcmllcy9saWJHTFByb2dyYW1tYWJpbGl0eS5keWxpYgoweDkyNzUzMDAwIC0gMHg5Mjc4
ZGZlNyAgY29tLmFwcGxlLmNvcmV1aSAxLjIgKDYyKSAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvQ29yZVVJLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVVSQoweDkyNzhlMDAwIC0g
MHg5MjgxMmZlMyAgY29tLmFwcGxlLkNGTmV0d29yayAzMzkuNSAoMzM5LjUpIDxiMTRiYmQwNjEw
Y2I1NWQ5YTMzZWUwNjFkNjYxYjcyZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNl
cnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ0ZOZXR3b3JrLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0NGTmV0d29yawoweDkyODEzMDAwIC0gMHg5MzAxMGZlZiAgY29tLmFwcGxl
LkFwcEtpdCA2LjUuNSAoOTQ5LjQxKSA8MmFmYzBmM2Y2YjMxZDg5N2I3YTgxM2E2Y2I4ZjUzYzE+
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQy9B
cHBLaXQKMHg5MzAxMTAwMCAtIDB4OTM0MjFmZWYgIGxpYkJMQVMuZHlsaWIgPz8/ICg/Pz8pIC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
RnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGliQkxBUy5keWxpYgoweDkz
NDIyMDAwIC0gMHg5MzQ1Y2ZmZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAgKDMy
OTg5KSA8MGExMmQ4ZDU1MjA1Njc3N2E4NWI0ZTBlMWQwYjc1ZjE+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL1NlY3VyaXR5Rm91bmRhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TZWN1cml0
eUZvdW5kYXRpb24KMHg5MzQ1ZDAwMCAtIDB4OTM0NjdmZWIgIGNvbS5hcHBsZS5hdWRpby5Tb3Vu
ZE1hbmFnZXIgMy45LjIgKDMuOS4yKSA8ZGYwNzdhODA0OGFmYzMwNzVjNmYyZDllNzc4MGU3OGU+
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9G
cmFtZXdvcmtzL0NhcmJvblNvdW5kLmZyYW1ld29yay9WZXJzaW9ucy9BL0NhcmJvblNvdW5kCjB4
OTM1OWEwMDAgLSAweDkzNWMyZmZmICBsaWJjdXBzLjIuZHlsaWIgPz8/ICg/Pz8pIDwxMDMxY2E1
YjY5MmI4MGE5NTY4ZTU3YTM0MmI2MDE1Nz4gL3Vzci9saWIvbGliY3Vwcy4yLmR5bGliCjB4OTM2
MWYwMDAgLSAweDkzNjI2ZmZlICBsaWJic20uZHlsaWIgPz8/ICg/Pz8pIDxmYTdhZTVmMWE2MjFk
OWI2OWU3ZTE4NzQ3Yzk0MDVmYj4gL3Vzci9saWIvbGliYnNtLmR5bGliCjB4OTM2MjcwMDAgLSAw
eDkzNmE2ZmY1ICBjb20uYXBwbGUuU2VhcmNoS2l0IDEuMi4xICgxLjIuMSkgPGYyOGY4ZGQwZjE1
NWE2NDUzNDExYTBjOWI1NzAyNzY0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2Vy
dmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9TZWFyY2hLaXQuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvU2VhcmNoS2l0CjB4OTM3MTUwMDAgLSAweDkzNzQ0ZmUzICBjb20uYXBwbGUu
QUUgNDAyLjIgKDQwMi4yKSA8OTVjMTlkNGVlNGViODYyNzBhZDQwNGUzMmEyYzY3ZTE+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9G
cmFtZXdvcmtzL0FFLmZyYW1ld29yay9WZXJzaW9ucy9BL0FFCjB4OTM3NDYwMDAgLSAweDkzN2Vk
ZmViICBjb20uYXBwbGUuUUQgMy4xMS41NCAoPz8/KSA8YzMxMTUwYjQwZmNjMjdjMTk1ZGU0MGYw
YWUxMzg2NjY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9R
RAoweDkzN2VlMDAwIC0gMHg5MzgwY2ZmZiAgbGlicmVzb2x2LjkuZHlsaWIgPz8/ICg/Pz8pIDw5
ZWQ4MDkyNTZjZTg5MTNjZGRjMzI2OWMyZTM2NDY1ND4gL3Vzci9saWIvbGlicmVzb2x2LjkuZHls
aWIKMHg5M2E0ZjAwMCAtIDB4OTNhOTlmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWludGVyZmFjZSAz
LjAgKDMyNTMyKSA8Njc5OTJmMjMxNzUyMThkMzczY2QxMTA3YTIwNDFjOWU+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL1NlY3VyaXR5SW50ZXJmYWNlLmZyYW1ld29yay9WZXJzaW9ucy9BL1Nl
Y3VyaXR5SW50ZXJmYWNlCjB4OTNhOWEwMDAgLSAweDkzYWQwZmVmICBsaWJ0aWR5LkEuZHlsaWIg
Pz8/ICg/Pz8pIDxlYzc3ZTE1YmNlMjQxNzYxZTU5MWRlNDEzZGRjODY4Mj4gL3Vzci9saWIvbGli
dGlkeS5BLmR5bGliCjB4OTNiYWIwMDAgLSAweDkzYzA1ZmY3ICBjb20uYXBwbGUuQ29yZVRleHQg
Mi4wLjMgKD8/PykgPGJlZTc4ZDZhZjJiYzQ4MDVmMmNhN2Q0MzMwYmMxMTI0PiAvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvQ29yZVRleHQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVRleHQKMHg5M2Mw
NjAwMCAtIDB4OTNjMTZmZmMgIGNvbS5hcHBsZS5MYW5nQW5hbHlzaXMgMS42LjQgKDEuNi40KSA8
YmM3ZWI3MDNkZGMzN2JmODVhZGY5M2UzNWVmZDM5NDc+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9M
YW5nQW5hbHlzaXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGFuZ0FuYWx5c2lzCjB4OTNjMTcwMDAg
LSAweDkzY2EzZmY3ICBjb20uYXBwbGUuTGF1bmNoU2VydmljZXMgMjkwICgyOTApIDw4ZjI2YjU1
M2E4Y2M0NzNmOGJhZGZjOTFjYTU1MWVkZT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29y
ZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvTGF1bmNoU2VydmljZXMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGF1bmNoU2VydmljZXMKMHg5M2NhNDAwMCAtIDB4OTNjYTRm
ZmQgIGNvbS5hcHBsZS5BY2NlbGVyYXRlLnZlY0xpYiAzLjQuMiAodmVjTGliIDMuNC4yKSAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0Zy
YW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL3ZlY0xpYgoweDkzY2E1MDAwIC0g
MHg5M2QzOGZmMyAgY29tLmFwcGxlLkFwcGxpY2F0aW9uU2VydmljZXMuQVRTIDMuNCAoPz8/KSA8
ZWJmODc0YmQzMGQ4OWQ4NzcyN2QyZjE4NjE5NTZmYjk+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9B
VFMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQVRTCjB4OTNkZTkwMDAgLSAweDkzZTRmZmZiICBjb20u
YXBwbGUuSVNTdXBwb3J0IDEuNyAoMzgpIC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9JU1N1cHBvcnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSVNTdXBwb3J0CjB4OTNlNTMwMDAgLSAw
eDkzZTUzZmZmICBjb20uYXBwbGUuQ2FyYm9uIDEzNiAoMTM2KSA8NDE3NzkxNmJiZjcwZTBkZGM0
NDZmOTQwMDFkNTRjOTU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9DYXJib24KMHg5M2U1NDAwMCAtIDB4OTNlNTRmZmQgIGNvbS5hcHBsZS5B
Y2NlbGVyYXRlIDEuNC4yIChBY2NlbGVyYXRlIDEuNC4yKSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0FjY2VsZXJhdGUKMHg5M2U1NTAw
MCAtIDB4OTNlNTlmZmYgIGxpYm1hdGhDb21tb24uQS5keWxpYiA/Pz8gKD8/PykgL3Vzci9saWIv
c3lzdGVtL2xpYm1hdGhDb21tb24uQS5keWxpYgoweDkzZTVhMDAwIC0gMHg5M2U3ZWZmZiAgbGli
eHNsdC4xLmR5bGliID8/PyAoPz8/KSA8ZWE1YzhkMzQ5YTM5MzRlY2MyYjkzNmY5Y2RmYWJhMDQ+
IC91c3IvbGliL2xpYnhzbHQuMS5keWxpYgoweDkzZWM0MDAwIC0gMHg5M2VjNmZmZiAgY29tLmFw
cGxlLkNyYXNoUmVwb3J0ZXJTdXBwb3J0IDEwLjUuNSAoMTU5KSA8NzM0MWE5MGJkYWYxOGQ0YjU1
YmI2YjM4N2FiOGE5NjI+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9DcmFzaFJl
cG9ydGVyU3VwcG9ydC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DcmFzaFJlcG9ydGVyU3VwcG9ydAow
eDkzZjg1MDAwIC0gMHg5NDA2YWZmMyAgY29tLmFwcGxlLkNvcmVEYXRhIDEwMC4xICgxODYpIDw1
MDIxOWJjYjAwNWNiMTVlYTk5OWExOTM5MWE4ZDUyMz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQ29yZURhdGEuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZURhdGEKMHg5NDA2YjAwMCAtIDB4
OTQwYTJmZmYgIGNvbS5hcHBsZS5TeXN0ZW1Db25maWd1cmF0aW9uIDEuOS4yICgxLjkuMikgPGVh
YjU0NjI1NWFjMDk5Yjk2MTZkZjk5OWM5MzU5ZDBlPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9TeXN0ZW1Db25maWd1cmF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1N5c3RlbUNvbmZpZ3Vy
YXRpb24KMHg5NDBhNDAwMCAtIDB4OTQxZDZmZmYgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiA2
LjUuNCAoNDc2LjE1KSA8ZGRlMjdjOGJjMzNiOTU2OGNkOTM0Y2U1NGU2YzQxOWQ+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0Nv
cmVGb3VuZGF0aW9uCjB4OTQxZDcwMDAgLSAweDk0MWRkZmZmICBjb20uYXBwbGUucHJpbnQuZnJh
bWV3b3JrLlByaW50IDIxOC4wLjIgKDIyMC4xKSA8NmMyZGRlYTQ1ZDljZGZmOWE5YmUwNjY2YTEz
ZTJkZDQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9GcmFtZXdvcmtzL1ByaW50LmZyYW1ld29yay9WZXJzaW9ucy9BL1ByaW50CjB4OTQxZGUw
MDAgLSAweDk0MWRlZmZiICBjb20uYXBwbGUuaW5zdGFsbHNlcnZlci5mcmFtZXdvcmsgMS4wICg4
KSAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW5zdGFsbFNlcnZlci5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9JbnN0YWxsU2VydmVyCjB4OTUyYzYwMDAgLSAweDk1MzQwZmY4ICBjb20u
YXBwbGUucHJpbnQuZnJhbWV3b3JrLlByaW50Q29yZSA1LjUuMyAoMjQ1LjMpIDw5ODYzM2VmNjdk
NDE5YzFiMDJmNTY1NTZjYjRkODQzZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGlj
YXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1ByaW50Q29yZS5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9QcmludENvcmUKMHg5NTM0MTAwMCAtIDB4OTUzNDhmZjcgIGxp
YkNHQVRTLkEuZHlsaWIgPz8/ICg/Pz8pIDxjOTJkZDI1MTQzYTJkNTU3MDBmNjRkOGMyNzRjYTAw
ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVHcmFwaGljcy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9SZXNvdXJjZXMvbGliQ0dBVFMuQS5keWxpYgoweDk1MzYxMDAwIC0gMHg5NTM2OGZmZiAgY29t
LmFwcGxlLmFnbCAzLjAuOSAoQUdMLTMuMC45KSA8MGRiNDk1ZWRjMmFmYmVkNjgxZjNlZjZhNWNh
NzE3NDE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FHTC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9BR0wKMHg5NTM2ZTAwMCAtIDB4OTUzNzBmZmYgIGNvbS5hcHBsZS5zZWN1cml0eWhpIDMuMCAo
MzA4MTcpIDw0MDU2MmI4NWQ5OTExODM1NGM5NzRlNzZjMzJmYTZmYj4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvU2VjdXJp
dHlISS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TZWN1cml0eUhJCjB4OTUzNzEwMDAgLSAweDk1Njc4
ZmZmICBjb20uYXBwbGUuSElUb29sYm94IDEuNS40ICg/Pz8pIDxmNDA4NGNmOGI2NDlmZTE2NmJl
NDI1MmFmZjExNDEzOD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSElUb29sYm94LmZyYW1ld29yay9WZXJzaW9ucy9BL0hJ
VG9vbGJveAoweDk1Njc5MDAwIC0gMHg5NTk1M2ZmMyAgY29tLmFwcGxlLkNvcmVTZXJ2aWNlcy5D
YXJib25Db3JlIDc4Ni42ICg3ODYuNikgPDk1NmM0Mzg4N2M2NzhmMzQ0NDYyYTJiMWM3M2NiYTUz
PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL0NhcmJvbkNv
cmUKMHg5NTk1NDAwMCAtIDB4OTU5NzJmZjMgIGNvbS5hcHBsZS5EaXJlY3RvcnlTZXJ2aWNlLkZy
YW1ld29yayAzLjUuNSAoMy41LjUpIDwzNmEwMzJlNDVmMjk5MTAwNGNhODc3NDM3MDlmODBhMT4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRGlyZWN0b3J5U2VydmljZS5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9EaXJlY3RvcnlTZXJ2aWNlCjB4OTU5NzMwMDAgLSAweDk1YjQxZmZmICBjb20uYXBw
bGUuc2VjdXJpdHkgNS4wLjQgKDM0MTAyKSA8YWZiMDgzMDM0ZTU1ZDA2N2QwYjhkOTFhODMyNjlh
ZDU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1NlY3VyaXR5LmZyYW1ld29yay9WZXJzaW9u
cy9BL1NlY3VyaXR5CjB4OTViNDIwMDAgLSAweDk1YmYyZmZmICBlZHUubWl0LktlcmJlcm9zIDYu
MC4xMiAoNi4wLjEyKSA8NTVhMjFlMWI4OWU3YTg0NTNkZDIzNjNkZGI1ZjgxODU+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0tlcmJlcm9zLmZyYW1ld29yay9WZXJzaW9ucy9BL0tlcmJlcm9z
CjB4OTYzMjYwMDAgLSAweDk2MzRhZmViICBsaWJzc2wuMC45LjcuZHlsaWIgPz8/ICg/Pz8pIDxk
MDQxNTZjNjEwNTMwY2E0NDk3OWM4OTk4MzRmYzI0ZD4gL3Vzci9saWIvbGlic3NsLjAuOS43LmR5
bGliCjB4OTYzNmUwMDAgLSAweDk2M2Y5ZmZmICBjb20uYXBwbGUuZnJhbWV3b3JrLklPS2l0IDEu
NS4xICg/Pz8pIDxmZWE0MGEwMDE1NTk0MzFmNzY4MTEzYjkwYjZmNzU5OT4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU9LaXQKMHg5NjNmYTAw
MCAtIDB4OTY0M2JmZTcgIGxpYlJJUC5BLmR5bGliID8/PyAoPz8/KSA8YTQyMTI3MzVhMTZlZWQw
M2M2Y2M2Yzc1ODkzYjYxN2Q+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9u
U2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db3JlR3JhcGhpY3MuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYlJJUC5BLmR5bGliCjB4OTY0M2MwMDAgLSAw
eDk2NDNjZmZhICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzIDMyICgzMikgPDM3M2Q2YTg4OGY5MjA0
NjQxZjMxM2JjNjA3MGFlMDY1PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2Vydmlj
ZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVNlcnZpY2VzCjB4OTY0M2QwMDAgLSAweDk2NDU1
ZmZmICBjb20uYXBwbGUub3BlbnNjcmlwdGluZyAxLjIuOCAoPz8/KSA8MDEyOWQyZjc1MGY1ZGRj
YjkyZjRhY2Y4YTM1NDE5NTI+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL09wZW5TY3JpcHRpbmcuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvT3BlblNjcmlwdGluZwoweDk2NDU2MDAwIC0gMHg5NjQ1YmZmZiAgY29tLmFwcGxlLmJh
Y2t1cC5mcmFtZXdvcmsgMS4wICgxLjApIC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9CYWNrdXAuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQmFja3VwCjB4OTY0NWMwMDAgLSAweDk2YWZj
ZmZmICBjb20uYXBwbGUuQ29yZUdyYXBoaWNzIDEuNDAwLjE2ICg/Pz8pIDxjMDZhNzkxODUwZjkx
NmMxZDJhZjRlNjFmMTMzMmYwNT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp
b25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVHcmFwaGljcy5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlR3JhcGhpY3MKMHg5NmFmZDAwMCAtIDB4OTZiMGJmZmQg
IGxpYnouMS5keWxpYiA/Pz8gKD8/PykgPGE5OGIzYjIyMWE3MmI1NGZhZjczZGVkM2RkNzAwMGU1
PiAvdXNyL2xpYi9saWJ6LjEuZHlsaWIKMHg5NmIxODAwMCAtIDB4OTZiMjNmZTcgIGxpYkNTeW5j
LkEuZHlsaWIgPz8/ICg/Pz8pIDxiNjRkOGMzODkyMmM4OTEzZGE2YTg2YzNiOWI3NjFhND4gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVHcmFwaGljcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNv
dXJjZXMvbGliQ1N5bmMuQS5keWxpYgoweDk2YjI0MDAwIC0gMHg5NmIyN2ZmZiAgY29tLmFwcGxl
LmhlbHAgMS4xICgzNikgPDFhMjVhOGZiYjQ5YTgzMGVmYjMxZDVjMGE1MjkzOWNkPiAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jr
cy9IZWxwLmZyYW1ld29yay9WZXJzaW9ucy9BL0hlbHAKMHg5NmIyODAwMCAtIDB4OTZiMzdmZmUg
IGNvbS5hcHBsZS5EU09iakNXcmFwcGVycy5GcmFtZXdvcmsgMS4zICgxLjMpIDwxODI5ODZiNzQy
NDdiNDU5YjJhNjdhNDcwNzFiZGM2Yj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L0RTT2JqQ1dyYXBwZXJzLmZyYW1ld29yay9WZXJzaW9ucy9BL0RTT2JqQ1dyYXBwZXJzCjB4OTZj
MTkwMDAgLSAweDk2YzFhZmZjICBsaWJmZmkuZHlsaWIgPz8/ICg/Pz8pIDxlYWYxMGI5OWEzZmJj
NDkyMGIxNzU4MDk0MDc0NjZjMD4gL3Vzci9saWIvbGliZmZpLmR5bGliCjB4OTZjMWIwMDAgLSAw
eDk2Y2FlZmZmICBjb20uYXBwbGUuaW5rLmZyYW1ld29yayAxMDEuMyAoODYpIDxkNGM4NWI1Y2Fm
YTgwMjdmZmYwNDJiODRhOGJlNzFkYz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9u
LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW5rLmZyYW1ld29yay9WZXJzaW9ucy9B
L0luawoweDk2Y2FmMDAwIC0gMHg5NzA2ZGZlYSAgbGliTEFQQUNLLmR5bGliID8/PyAoPz8/KSAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL2xpYkxBUEFDSy5keWxpYgow
eDk3MDZlMDAwIC0gMHg5NzA5OWZlNyAgbGliYXV0by5keWxpYiA/Pz8gKD8/PykgPDJlNDRjNTIz
Yjg1MWU4ZTI1ZjA1ZDEzYTQ4MDcwYTU4PiAvdXNyL2xpYi9saWJhdXRvLmR5bGliCjB4OTcwOWEw
MDAgLSAweDk3MTdhZmZmICBsaWJvYmpjLkEuZHlsaWIgPz8/ICg/Pz8pIDw0MDBlOTQzZjllOGE2
NzhlZWEyMmExZDEyMDU0OTBlZT4gL3Vzci9saWIvbGlib2JqYy5BLmR5bGliCjB4OTcxN2IwMDAg
LSAweDk3MThiZmZmICBjb20uYXBwbGUuc3BlZWNoLnN5bnRoZXNpcy5mcmFtZXdvcmsgMy43LjEg
KDMuNy4xKSA8MjczZDk2ZmY4NjFkYzY4YmU2NTljMDdlZjU2ZjU5OWE+IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJh
bWV3b3Jrcy9TcGVlY2hTeW50aGVzaXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU3BlZWNoU3ludGhl
c2lzCjB4ZmZmZTgwMDAgLSAweGZmZmViZmZmICBsaWJvYmpjLkEuZHlsaWIgPz8/ICg/Pz8pIC91
c3IvbGliL2xpYm9iamMuQS5keWxpYgoweGZmZmYwMDAwIC0gMHhmZmZmMTc4MCAgbGliU3lzdGVt
LkIuZHlsaWIgPz8/ICg/Pz8pIC91c3IvbGliL2xpYlN5c3RlbS5CLmR5bGliCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>25030</attachid>
            <date>2008-11-10 15:39:20 -0800</date>
            <delta_ts>2008-11-10 15:39:20 -0800</delta_ts>
            <desc>Webarchive of crashy page</desc>
            <filename>NYT.webarchive</filename>
            <type>application/octet-stream</type>
            <size>1185757</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">YnBsaXN0MDDTAAEAAgADAAQADwFCXxAPV2ViTWFpblJlc291cmNlXxAPV2ViU3VicmVzb3VyY2Vz
XxATV2ViU3ViZnJhbWVBcmNoaXZlc9UABQAGAAcACAAJAAoACwAMAA0ADl5XZWJSZXNvdXJjZVVS
TF8QG1dlYlJlc291cmNlVGV4dEVuY29kaW5nTmFtZV8QE1dlYlJlc291cmNlTUlNRVR5cGVfEA9X
ZWJSZXNvdXJjZURhdGFfEBRXZWJSZXNvdXJjZUZyYW1lTmFtZV8QaWh0dHA6Ly93d3cubnl0aW1l
cy5jb20vMjAwOC8xMS8xMC9oZWFsdGgvMTBoZWFydC5odG1sP19yPTImcGFydG5lcj1yc3NueXQm
ZW1jPXJzcyZvcmVmPXNsb2dpbiZvcmVmPXNsb2dpblVVVEYtOFl0ZXh0L2h0bWxPEgABl+g8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj48IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3
dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj48aHRtbD48aGVhZD4KCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgo8c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9q
cy9jb21tb24uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9
Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL3RpbWVzcGVvcGxlL3ByZWxvYWRl
ci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgb25lcnJvcj0idGhy
b3coJ05ZVEQucmVxdWlyZTogQW4gZXJyb3Igb2NjdXJlZCcpIj48L3NjcmlwdD48c2NyaXB0IHNy
Yz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvbGliL05ZVEQvMC4wLjEvY29v
a2llLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD48
c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvdGltZXNwZW9w
bGUvdXJpbGlzdC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9z
Y3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL3Rp
bWVzcGVvcGxlL21hcmdpbmZpeC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1
dGYtOCI+PC9zY3JpcHQ+PGxpbmsgaHJlZj0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9j
c3MvYXBwL3RpbWVzcGVvcGxlL3RpbWVzcGVvcGxlLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0i
c3R5bGVzaGVldCI+PGxpbmsgaHJlZj0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9jc3Mv
YXBwL2xpYi9zaGFkb3cvZHJvcF9zaGFkb3cuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHls
ZXNoZWV0Ij48c3R5bGU+aHRtbCBib2R5IHtwYWRkaW5nLXRvcDo0MHB4O308L3N0eWxlPgo8c2Ny
aXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcnRpY2xlL2FydGljbGVT
aGFyZS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0
dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvVGFjb2RhX0FNU19ERENfSGVhZGVyLmpzIiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBo
aWNzOC5ueXRpbWVzLmNvbS9qcy9maWxlaXQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0iaHR0cDovL2dyYXBoaWNz
OC5ueXRpbWVzLmNvbS9qcy9jb21tb24vc2NyZWVuL0Ryb3BEb3duLmpzIj48L3NjcmlwdD4KPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiBzcmM9Imh0
dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvY29tbW9uL3NjcmVlbi9tb2RpZnlOYXZpZ2F0
aW9uRGlzcGxheS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBs
YW5ndWFnZT0iSmF2YVNjcmlwdCIgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pz
L2NvbW1vbi9zY3JlZW4vYWx0Q2xpY2tUb1NlYXJjaC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9
Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2xpYi9wcm90b3R5cGUvMS42LjAu
Mi9wcm90b3R5cGUuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIG9u
ZXJyb3I9InRocm93KCdOWVRELnJlcXVpcmU6IEFuIGVycm9yIG9jY3VyZWQnKSI+PC9zY3JpcHQ+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4oZnVuY3Rpb24g
KCkgCnsKICBOWVRELldvcmRSZWZlcmVuY2UuaW5pdGlhbGl6ZSgpOwp9KSgpOzwvc2NyaXB0Pgo8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0i
aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy91dGlsL3Rvb2x0aXAuanMiPjwvc2NyaXB0
PgoKCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHA6Ly9n
cmFwaGljczgubnl0aW1lcy5jb20vY3NzL2NvbW1vbi9nbG9iYWwuY3NzIj4KPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KCQkJQGltcG9ydCB1cmwoaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9j
c3MvY29tbW9uL3NjcmVlbi9hcnRpY2xlLmNzcyk7CgkJCUBpbXBvcnQgdXJsKGh0dHA6Ly9ncmFw
aGljczgubnl0aW1lcy5jb20vY3NzL3NlY3Rpb24vaGVhbHRoL3NjcmVlbi8yMDA3MDUvYXJ0aWNs
ZS5jc3MpOwoJCTwvc3R5bGU+CjwhLS1baWYgSUUgN10+CgkJPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KCQkJQGltcG9ydCB1cmwoaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9jc3MvY29tbW9u
L3NjcmVlbi9pZTcuY3NzKTsgCgkJCQoJCTwvc3R5bGU+CgkJPCFbZW5kaWZdLS0+CgoKPHRpdGxl
PkNob2xlc3Rlcm9sLUZpZ2h0aW5nIERydWdzIFNob3cgV2lkZXIgQmVuZWZpdCAtIE5ZVGltZXMu
Y29tPC90aXRsZT4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkEgc3R1ZHkgc3Vn
Z2VzdHMgY2hvbGVzdGVyb2wtbG93ZXJpbmcgZHJ1Z3MgY291bGQgYmVuZWZpdCBtaWxsaW9ucyBt
b3JlIHBlb3BsZSwgZXZlbiBpZiB0aGV5IGhhdmUgbG93IGNob2xlc3Rlcm9sLiI+Cgo8bWV0YSBu
YW1lPSJrZXl3b3JkcyIgY29udGVudD0iU3RhdGlucyAoQ2hvbGVzdGVyb2wtTG93ZXJpbmcgRHJ1
Z3MpLENob2xlc3Rlcm9sLEhlYXJ0LFN0cm9rZSxNZWRpY2luZSBhbmQgSGVhbHRoLERydWdzIChQ
aGFybWFjZXV0aWNhbHMpIj4KCjxtZXRhIG5hbWU9Im1pc3NwZWxsaW5nIiBjb250ZW50PSIiPgoK
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9aXNvLTg4NTktMSI+Cgo8bWV0YSBuYW1lPSJST0JPVFMiIGNvbnRlbnQ9Ik5PQVJDSElWRSI+
Cgo8bWV0YSBuYW1lPSJESVNQTEFZREFURSIgY29udGVudD0iTm92ZW1iZXIgMTAsIDIwMDgiPgoK
PG1ldGEgbmFtZT0iaGRsIiBjb250ZW50PSJDaG9sZXN0ZXJvbC1GaWdodGluZyBEcnVncyBTaG93
IFdpZGVyIEJlbmVmaXQiPgoKPG1ldGEgbmFtZT0iaGRsX3AiIGNvbnRlbnQ9IkNob2xlc3Rlcm9s
LUZpZ2h0aW5nIERydWdzIFNob3cgV2lkZXIgQmVuZWZpdCI+CiAKPG1ldGEgbmFtZT0iYnlsIiBj
b250ZW50PSJCeSBQQU0gQkVMTFVDSyI+Cgo8bWV0YSBuYW1lPSJscCIgY29udGVudD0iQSBzdHVk
eSBzdWdnZXN0cyBjaG9sZXN0ZXJvbC1sb3dlcmluZyBkcnVncyBjb3VsZCBiZW5lZml0IG1pbGxp
b25zIG1vcmUgcGVvcGxlLCBldmVuIGlmIHRoZXkgaGF2ZSBsb3cgY2hvbGVzdGVyb2wuIj4KCjxt
ZXRhIG5hbWU9ImNyZSIgY29udGVudD0iVGhlIE5ldyBZb3JrIFRpbWVzIj4KCjxtZXRhIG5hbWU9
ImVkdCIgY29udGVudD0iTmV3WW9yayI+Cgo8bWV0YSBuYW1lPSJwZGF0ZSIgY29udGVudD0iMjAw
ODExMTAiPgoKPG1ldGEgbmFtZT0idHRsIiBjb250ZW50PSIiPgogCjxtZXRhIG5hbWU9InZpcnRs
b2MiIGNvbnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJkZXMiIGNvbnRlbnQ9IlN0YXRpbnMgKENob2xl
c3Rlcm9sLUxvd2VyaW5nIERydWdzKTtDaG9sZXN0ZXJvbDtIZWFydDtTdHJva2U7TWVkaWNpbmUg
YW5kIEhlYWx0aDtEcnVncyAoUGhhcm1hY2V1dGljYWxzKSI+Cgo8bWV0YSBuYW1lPSJwZXIiIGNv
bnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJvcmciIGNvbnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJnZW8i
IGNvbnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJ0aWNrZXIiIGNvbnRlbnQ9IkFzdHJhWmVuZWNhIFBM
Q3xBWk58TllTRSI+Cgo8bWV0YSBuYW1lPSJkYXQiIGNvbnRlbnQ9Ik5vdmVtYmVyIDEwLCAyMDA4
Ij4KCjxtZXRhIG5hbWU9InRvbSIgY29udGVudD0iTmV3cyI+Cgo8bWV0YSBuYW1lPSJjYXQiIGNv
bnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJjb2wiIGNvbnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJkc2si
IGNvbnRlbnQ9IkhlYWx0aCI+Cgo8bWV0YSBuYW1lPSJhcnRpY2xlaWQiIGNvbnRlbnQ9IjExOTQ4
MzI0MjIyMjIiPgoKPG1ldGEgbmFtZT0iQ0ciIGNvbnRlbnQ9ImhlYWx0aCI+Cgo8bWV0YSBuYW1l
PSJTQ0ciIGNvbnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJQVCIgY29udGVudD0iQXJ0aWNsZSI+Cgo8
bWV0YSBuYW1lPSJQU1QiIGNvbnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJoZHJfaW1nIiBjb250ZW50
PSIvaW1hZ2VzL2FydGljbGUvaGVhZGVyL3NlY3RfaGVhbHRoLmdpZiI+Cgo8bWV0YSBuYW1lPSJ0
aHVtYm5haWwiIGNvbnRlbnQ9IiI+Cgo8bWV0YSBuYW1lPSJ0aHVtYm5haWxfaGVpZ2h0IiBjb250
ZW50PSIiPgoKPG1ldGEgbmFtZT0idGh1bWJuYWlsX3dpZHRoIiBjb250ZW50PSIiPgoKCgoKCgoK
CjxtZXRhIG5hbWU9IkFSVElDTEVfVEVNUExBVEVfVkVSU0lPTiIgY29udGVudD0iNjAwIj4KCjxt
ZXRhIG5hbWU9InNlYyIgY29udGVudD0iQSI+Cgo8bWV0YSBuYW1lPSJwZyIgY29udGVudD0iMSI+
CgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiPgoJdmFyIGdvb2dsZV9oaW50cyA9ICJT
dGF0aW5zKyhDaG9sZXN0ZXJvbC1Mb3dlcmluZytEcnVncyksQ2hvbGVzdGVyb2wsSGVhcnQsU3Ry
b2tlIjsKCXZhciBnb29nbGVfYWRfY2hhbm5lbCA9ICJhcl9oZWFsdGgiOwo8L3NjcmlwdD4KCjxs
aW5rIHJlbD0iYWx0ZXJuYXRlIiBtZWRpYT0iaGFuZGhlbGQiIGhyZWY9Imh0dHA6Ly9tb2JpbGUu
bnl0aW1lcy5jb20vMjAwOC8xMS8xMC9oZWFsdGgvMTBoZWFydC54bWwiPgo8bGluayByZWw9ImFs
dGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIgdGl0bGU9Ik5ZVGltZXMuY29tIEhl
YWx0aCBSU1MiIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vc2VydmljZXMveG1sL3Jzcy9u
eXQvSGVhbHRoLnhtbC54bWwiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4i
PgogICNhcnRpY2xlSW5saW5lIHVsIHsgCiAgICAgIG1hcmdpbjogLjVlbSAwIDEuMmVtIDA7IAog
IH0KICAjYXJ0aWNsZUlubGluZSB1bCBsaSB7IAogICAgICBtYXJnaW4tYm90dG9tOiAuNWVtOyAK
ICAgICAgcGFkZGluZzogMDsgCiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IAogICAgICBm
b250LXNpemU6IDgxLjUlOyAKICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNh
bnMtc2VyaWY7IAogICAgICBsaW5lLWhlaWdodDogMS40ZW07IAogIH0KICAjYXJ0aWNsZUlubGlu
ZSBsaSBhIHsgCiAgICAgIHBhZGRpbmc6IC4yZW0gMCAuMmVtIDQuNWVtOyAKICAgICAgYmFja2dy
b3VuZDogdHJhbnNwYXJlbnQgdXJsKGh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2Vz
L2dsb2JhbC9pY29ucy9yc3MuZ2lmKSBuby1yZXBlYXQgMCAwOyAKICB9CiAgPC9zdHlsZT48c2Ny
aXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0
cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvYW5hbHl0aWNzL2NvbnRyb2xsZXJfdjEu
MS5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2FuYWx5
dGljcy9ndy5qcz9jc2lkPUgwNzcwNyI+PC9zY3JpcHQ+PHNjcmlwdCBsYW5ndWFnZT0iamF2YXNj
cmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1l
cy5jb20vanMvYXBwL2FuYWx5dGljcy9yZXZlbnVlc2NpZW5jZS5qcyI+PC9zY3JpcHQ+PG1ldGEg
aWQ9IldULmNnX24iIG5hbWU9IldULmNnX24iIGNvbnRlbnQ9IkhlYWx0aCI+PG1ldGEgaWQ9IldU
LnpfZ3B0IiBuYW1lPSJXVC56X2dwdCIgY29udGVudD0iQXJ0aWNsZSI+PG1ldGEgaWQ9IldULnJ2
IiBuYW1lPSJXVC5ydiIgY29udGVudD0iMCI+PG1ldGEgaWQ9IldULnpfZ3BzdCIgbmFtZT0iV1Qu
el9ncHN0IiBjb250ZW50PSJOZXdzIj48bWV0YSBpZD0iV1Quel9oZGwiIG5hbWU9IldULnpfaGRs
IiBjb250ZW50PSJDaG9sZXN0ZXJvbC1GaWdodGluZyBEcnVncyBTaG93IFdpZGVyIEJlbmVmaXQi
PjxtZXRhIGlkPSJXVC56X2FpZCIgbmFtZT0iV1Quel9haWQiIGNvbnRlbnQ9IjExOTQ4MzI0MjIy
MjIiPjxtZXRhIGlkPSJXVC56X3B1ZCIgbmFtZT0iV1Quel9wdWQiIGNvbnRlbnQ9IjIwMDgxMTEw
Ij48bWV0YSBpZD0iV1Quel9wdXQiIG5hbWU9IldULnpfcHV0IiBjb250ZW50PSJ3ZWIiPjxtZXRh
IGlkPSJXVC56LmdzZyIgbmFtZT0iV1Quei5nc2ciIGNvbnRlbnQ9IndlYiI+PG1ldGEgaWQ9IldU
LnpfcHVhIiBuYW1lPSJXVC56X3B1YSIgY29udGVudD0iZnJlZSI+PG1ldGEgaWQ9IldULnpfY2xt
c3QiIG5hbWU9IldULnpfY2xtc3QiIGNvbnRlbnQ9IlBBTSBCRUxMVUNLIj48bWV0YSBpZD0iV1Qu
el9wdXYiIG5hbWU9IldULnpfcHV2IiBjb250ZW50PSJOb3JtYWwiPjxtZXRhIGlkPSJXVC56X3B1
ZHIiIG5hbWU9IldULnpfcHVkciIgY29udGVudD0iU2FtZSBEYXkiPjxtZXRhIGlkPSJXVC56X3B5
ciIgbmFtZT0iV1Quel9weXIiIGNvbnRlbnQ9IjIwMDgiPjxtZXRhIGlkPSJXVC5tY19pZCIgbmFt
ZT0iV1QubWNfaWQiIGNvbnRlbnQ9InJzcyI+PG1ldGEgaWQ9IldULm1jX2V2IiBuYW1lPSJXVC5t
Y19ldiIgY29udGVudD0iY2xpY2siPjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHRjb250ZW50
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNv
bS9qcy9hcHAvYW5hbHl0aWNzL3d0aW5pdC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBsYW5ndWFnZT0i
amF2YXNjcmlwdGNvbnRlbnQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vZ3Jh
cGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC9hbmFseXRpY3Mvd3RiYXNlLmpzIj48L3NjcmlwdD48
c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
aHR0cDovL2pzLnJldnNjaS5uZXQvY29tbW9uL3BjeC5qcz90bXBsPWNtJmFtcDtjc2lkPUgwNzcw
NyZhbXA7a289MjAwOF8xMV8xMF9fMCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHA6Ly9jb250
ZW50LmRsLXJtcy5jb20vZHQvcy8xNDg2Ny9zLmpzIj48L3NjcmlwdD48L2hlYWQ+PGJvZHk+PGRp
diBpZD0iVFBfY29udGFpbmVyX3NoYWRvdyIgY2xhc3M9InNfc2hhZG93Ij48L2Rpdj48ZGl2IGlk
PSJUUF9jb250YWluZXIiPjxkaXYgaWQ9IlRQX2lubmVyIj48ZGl2IGlkPSJUUF9wZW9wbGUiIGNs
YXNzPSJ0b2dnbGVUYWIgZmlyc3RydW4iPjxoND48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMu
Y29tL2xvZ2luP1VSST1odHRwOi8vd3d3Lm55dGltZXMuY29tLzIwMDgvMTEvMTAvaGVhbHRoLzEw
aGVhcnQuaHRtbD9fcj0yJmFtcDtwYXJ0bmVyPXJzc255dCZhbXA7ZW1jPXJzcyZhbXA7b3JlZj1z
bG9naW4mYW1wO29yZWY9c2xvZ2luIiBpZD0iVFBfbG9naW5fbGluayI+TG9nIEluPC9hPiBvciA8
YSBpZD0iVFBfcmVnaXN0ZXJfbGluayI+UmVnaXN0ZXI8L2E+IDwvaDQ+PGEgaWQ9IlRQX21pbmlt
aXplX2J1dHRvbl9ndWVzdCIgY2xhc3M9InRvb2xiYXJfYnV0dG9uIiBvbmNsaWNrPSJyZXR1cm4g
ZmFsc2UiPk5vLCB0aGFua3M8L2E+PC9kaXY+ICAgICAgICAgICAgIDxkaXYgaWQ9IlRQX3VzZXIi
IGNsYXNzPSJ0b2dnbGVUYWIiPjxoND5XZWxjb21lIHRvIFRpbWVzUGVvcGxlPC9oND48YSBpZD0i
VFBfaW5mb2xpbmsiIGNsYXNzPSJ0b29sYmFyX2J1dHRvbiIgb25jbGljaz0icmV0dXJuIGZhbHNl
Ij5XaGF04oCZcyB0aGlzPzwvYT48L2Rpdj4gICAgICAgICAgICAgPGRpdiBpZD0iVFBfZmVlZF90
YWIiIGNsYXNzPSJ0b2dnbGVUYWIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPiA8ZGl2IGNsYXNzPSJ0
cF90aWxlX2FkX2NvbnRhaW5lciI+PC9kaXY+PGg0PkxhdGVzdCBBY3Rpdml0eTwvaDQ+ICAgICAg
ICAgICAgIDwvZGl2PiAgICAgICAgICAgICA8ZGl2IGlkPSJUUF9mZWVkIiBzdHlsZT0iIiBjbGFz
cz0idGltZXNwZW9wbGVfcGFuZWwiPiAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRQX2ZlZWRfY29u
dGVudCIgY2xhc3M9IlRQX2ZlZWRfY29udGVudCI+PHRhYmxlPjx0Ym9keT48dHI+PHRkPjxhIGhy
ZWY9Imh0dHA6Ly90aW1lc3Blb3BsZS5ueXRpbWVzLmNvbS92aWV3L3VzZXIvMCI+PGltZyBjbGFz
cz0iVFBfYXZhdGFyICIgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy9h
cHBzL3RpbWVzcGVvcGxlL25vbmUucG5nIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiPjwvYT48L3Rk
PiA8dGQ+PHNwYW4gY2xhc3M9IlRQX3N0b3J5Ij48YSBocmVmPSJodHRwOi8vdGltZXNwZW9wbGUu
bnl0aW1lcy5jb20vdmlldy91c2VyLzAiPjwvYT4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJUUF9v
YmplY3QiPjxhIGhyZWY9Imh0dHA6Ly90aW1lc3Blb3BsZS5ueXRpbWVzLmNvbS9ob21lL2Fib3V0
LyIgdGl0bGU9IlNoYXJlIGFuZCBEaXNjb3ZlciB0aGUgQmVzdCBvZiBOWVRpbWVzLmNvbSI+U2hh
cmUgYW5kIERpc2NvdmVyIHRoZSBCZXN0IG9mIE5ZVGltZXMuY29tPC9hPjwvc3Bhbj48L3RkPiA8
dGQgY2xhc3M9InRpbWVzdGFtcCI+MzozOCBwbTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9k
aXY+ICAgICAgICAgICAgICAgPGRpdiBpZD0iVFBfZmVlZF9oYW5kbGUiPiAgICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iVFBfZ3Jvb3ZlIj48L2Rpdj4gICAgICAgICAgICAgICA8L2Rpdj4gICAg
ICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgIDxkaXYgaWQ9IlRQX2ZlZWRfdG9nZ2xlIj48L2Rp
dj4gICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZTsgIiBpZD0iVFBfc3Bpbm5l
ciI+ICAgICAgICAgICAgICAgPG9iamVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGRhdGE9Imh0
dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzL2FwcHMvdGltZXNwZW9wbGUvc3Bpbm5l
ci5zd2YiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIj4gICAgICAgICAgICAg
ICAgIDxwYXJhbSB2YWx1ZT0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvYXBw
cy90aW1lc3Blb3BsZS9zcGlubmVyLnN3ZiIgbmFtZT0ibW92aWUiPiAgICAgICAgICAgICAgICAg
PHBhcmFtIHZhbHVlPSJUcmFuc3BhcmVudCIgbmFtZT0iV01vZGUiPiAgICAgICAgICAgICAgIDwv
b2JqZWN0PiAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj4KCgo8YSBuYW1lPSJ0b3AiPjwv
YT4KPCEtLUhhdCAtLT4KPG55dF9oZWFkZXI+Cgo8L255dF9oZWFkZXI+CjxhIGhyZWY9IiNhcnRp
Y2xlQm9keUxpbmsiIGNsYXNzPSJqdW1wTGluayI+U2tpcCB0byBhcnRpY2xlPC9hPgo8IS0tTmV3
IGNhbGwgZm9yIHRvcG5hdiBzdHVmZi4gLS0+CjxkaXYgaWQ9InNoZWxsIiBjbGFzcz0iIj4KCjxk
aXYgaWQ9ImxvZ2luIj4KPHVsIGlkPSJtZW1iZXJUb29scyI+Cgo8IS0tIEFEWElORk8gY2xhc3Np
ZmljYXRpb249InRleHRfYWQiIGNhbXBhaWduPSJueXQyMDA4LWNpcmMtYmFyMV90ZXh0bGluay0z
M0hKNi1ob21lcGFnZSItLT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9hZHgv
YmluL2FkeF9jbGljay5odG1sP3R5cGU9Z290byZhbXA7cGFnZT13d3cubnl0aW1lcy5jb20veXIv
bW8vZGF5L2hlYWx0aCZhbXA7cG9zPUJhcjEmYW1wO3NuMj1jOTBiYmFjNy83YjUyNzIwOSZhbXA7
c24xPTQyOTUxNjJhL2NkNzc3NzMxJmFtcDtjYW1wPW55dDIwMDgtY2lyYy1iYXIxX3RleHRsaW5r
LTMzSEo2LWhvbWVwYWdlJmFtcDthZD1nZXRob21lZGVsaXZlcnkuaHRtbCZhbXA7Z290bz1odHRw
cyUzQSUyRiUyRnd3dyUyRW55dGltZXNhdGhvbWUlMkVjb20lMkZzcGxpdHRlciU1RmNwJTJGaW5k
ZXglMkVwaHAlM0ZTUFRSJTVGSUQlM0RoZE5ZVCUyNk1lZGlhQ29kZSUzRFc0N0FGJTI2Q01QJTNE
MzNISjYiIHRhcmdldD0iX2JsYW5rIj5HZXQgSG9tZSBEZWxpdmVyeSA8L2E+PC9saT4KCgkJCTxs
aT48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2F1dGgvbG9naW4/VVJJPWh0dHA6Ly8i
PkxvZyBJbjwvYT48L2xpPiAKCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20v
Z3N0L3JlZ2kuaHRtbCI+UmVnaXN0ZXIgTm93PC9hPjwvbGk+CgkJCQoKCjxsaSBpZD0iVFBfcmVz
dG9yZV9idXR0b24iIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxhPlRpbWVzUGVvcGxlPC9hPjwvbGk+
PC91bD4KPHVsIGNsYXNzPSJ0YWJzIj4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5j
b20iPkhvbWUgUGFnZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL215Lm55dGltZXMuY29t
Ij5NeSBUaW1lczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9w
YWdlcy90b2RheXNwYXBlci9pbmRleC5odG1sIj5Ub2RheSdzIFBhcGVyPC9hPjwvbGk+CjxsaT48
YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3ZpZGVvIj5WaWRlbzwvYT48L2xpPgo8bGk+
PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9tb3N0cG9wdWxhciI+TW9zdCBQb3B1bGFy
PC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vdG9waWNzLm55dGltZXMuY29tL3RvcC9yZWZl
cmVuY2UvdGltZXN0b3BpY3MvIj5UaW1lcyBUb3BpY3M8L2E+PC9saT4KPC91bD4KPC9kaXY+Cgo8
ZGl2IGlkPSJwYWdlIj4KCjxkaXYgaWQ9Im1hc3RoZWFkIj4KCjxmb3JtIGlkPSJzZWFyY2hGb3Jt
IiBuYW1lPSJzZWFyY2hGb3JtIiBtZXRob2Q9ImdldCIgYWN0aW9uPSJodHRwOi8vcXVlcnkubnl0
aW1lcy5jb20vc2VhcmNoL3NpdGVzZWFyY2giIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZv
cm0tdXJsZW5jb2RlZCI+CjxkaXYgaWQ9Im55dFNlYXJjaFdpZGdldCI+CjxsYWJlbCBmb3I9InNl
YXJjaFF1ZXJ5Ij5TZWFyY2ggQWxsIE5ZVGltZXMuY29tPC9sYWJlbD4KPGlucHV0IHR5cGU9InRl
eHQiIG5hbWU9InF1ZXJ5IiBpZD0ic2VhcmNoUXVlcnkiPgo8aW5wdXQgaWQ9InNlYXJjaFN1Ym1p
dCIgdGl0bGU9IlNlYXJjaCIgYWx0PSJHbyIgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cDovL2dyYXBo
aWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvZ2xvYmFsL2J1dHRvbnMvZ28uZ2lmIj4KPGlucHV0IHR5
cGU9ImhpZGRlbiIgaWQ9InNlYXJjaEFsbCIgbmFtZT0idHlwZSIgdmFsdWU9Im55dCI+CjwvZGl2
Pgo8L2Zvcm0+CjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20iPjxpbWcgaWQ9Ik5ZVExv
Z28iIGFsdD0iTmV3IFlvcmsgVGltZXMiIHRpdGxlPSJOZXcgWW9yayBUaW1lcyIgc3JjPSJodHRw
Oi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy9taXNjL255dGxvZ28xNTN4MjMuZ2lmIj48
L2E+CjxkaXYgaWQ9IkJhcjMiPgoKPC9kaXY+CjxkaXYgaWQ9ImRhdGUiPgo8L2Rpdj4KPGgxPgo8
YSBocmVmPSJodHRwOi8vaGVhbHRoLm55dGltZXMuY29tL3BhZ2VzL2hlYWx0aC9pbmRleC5odG1s
Ij5IZWFsdGg8L2E+CjwvaDE+CjwvZGl2PgoKCjxkaXYgaWQ9Im5hdmlnYXRpb24iPgo8dWwgY2xh
c3M9InRhYnMiPgo8bGkgaWQ9Im5hdldvcmxkIj48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMu
Y29tL3BhZ2VzL3dvcmxkL2luZGV4Lmh0bWwiPldvcmxkPC9hPgo8L2xpPgo8bGkgaWQ9Im5hdlVT
Ij48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL25hdGlvbmFsL2luZGV4Lmh0
bWwiPlUuUy48L2E+CjwvbGk+CjxsaSBpZD0ibmF2TllSZWdpb24iPjxhIGhyZWY9Imh0dHA6Ly93
d3cubnl0aW1lcy5jb20vcGFnZXMvbnlyZWdpb24vaW5kZXguaHRtbCI+Ti5ZLiAvIFJlZ2lvbjwv
YT4KPC9saT4KPGxpIGlkPSJuYXZCdXNpbmVzcyI+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVz
LmNvbS9wYWdlcy9idXNpbmVzcy9pbmRleC5odG1sIj5CdXNpbmVzczwvYT4KPC9saT4KPGxpIGlk
PSJuYXZUZWNobm9sb2d5Ij48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL3Rl
Y2hub2xvZ3kvaW5kZXguaHRtbCI+VGVjaG5vbG9neTwvYT4KPC9saT4KPGxpIGlkPSJuYXZTY2ll
bmNlIj48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL3NjaWVuY2UvaW5kZXgu
aHRtbCI+U2NpZW5jZTwvYT4KPC9saT4KPGxpIGlkPSJuYXZIZWFsdGgiIGNsYXNzPSJzZWxlY3Rl
ZCI+PGEgaHJlZj0iaHR0cDovL2hlYWx0aC5ueXRpbWVzLmNvbS9wYWdlcy9oZWFsdGgvaW5kZXgu
aHRtbCI+SGVhbHRoPC9hPgoKPC9saT4KPGxpIGlkPSJuYXZTcG9ydHMiPjxhIGhyZWY9Imh0dHA6
Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvc3BvcnRzL2luZGV4Lmh0bWwiPlNwb3J0czwvYT4KPC9s
aT4KPGxpIGlkPSJuYXZPcGluaW9uIj48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3Bh
Z2VzL29waW5pb24vaW5kZXguaHRtbCI+T3BpbmlvbjwvYT4KPC9saT4KPGxpIGlkPSJuYXZBcnRz
Ij48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL2FydHMvaW5kZXguaHRtbCI+
QXJ0czwvYT4KPC9saT4KPGxpIGlkPSJuYXZTdHlsZSI+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRp
bWVzLmNvbS9wYWdlcy9zdHlsZS9pbmRleC5odG1sIj5TdHlsZTwvYT4KPC9saT4KPGxpIGlkPSJu
YXZUcmF2ZWwiPjxhIGhyZWY9Imh0dHA6Ly90cmF2ZWwubnl0aW1lcy5jb20vcGFnZXMvdHJhdmVs
L2luZGV4Lmh0bWwiPlRyYXZlbDwvYT4KPC9saT4KPGxpIGlkPSJuYXZKb2JzIj48YSBocmVmPSJo
dHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL2pvYnMvaW5kZXguaHRtbCI+Sm9iczwvYT4KPC9s
aT4KPGxpIGlkPSJuYXZSZWFsZXN0YXRlIj48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29t
L3BhZ2VzL3JlYWxlc3RhdGUvaW5kZXguaHRtbCI+UmVhbCBFc3RhdGU8L2E+CjwvbGk+CjxsaSBp
ZD0ibmF2QXV0b3MiPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvYXV0b21v
YmlsZXMvaW5kZXguaHRtbCI+QXV0b3M8L2E+CjwvbGk+CjwvdWw+CjxkaXYgaWQ9InN1Yk5hdmln
YXRpb24iPjx1bCBpZD0ic3VibmF2SGVhbHRoIj4KPGxpPjxhIGhyZWY9Imh0dHA6Ly9oZWFsdGgu
bnl0aW1lcy5jb20vcGFnZXMvaGVhbHRoL3Jlc2VhcmNoL2luZGV4Lmh0bWwiPlJlc2VhcmNoPC9h
Pgo8L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL2hlYWx0aC5ueXRpbWVzLmNvbS9wYWdlcy9oZWFs
dGgvbnV0cml0aW9uL2luZGV4Lmh0bWwiPkZpdG5lc3MgJmFtcDsgTnV0cml0aW9uPC9hPgo8L2xp
Pgo8bGk+PGEgaHJlZj0iaHR0cDovL2hlYWx0aC5ueXRpbWVzLmNvbS9wYWdlcy9oZWFsdGgvcG9s
aWN5L2luZGV4Lmh0bWwiPk1vbmV5ICZhbXA7IFBvbGljeTwvYT4KPC9saT4KPGxpPjxhIGhyZWY9
Imh0dHA6Ly9oZWFsdGgubnl0aW1lcy5jb20vcGFnZXMvaGVhbHRoL3ZpZXdzL2luZGV4Lmh0bWwi
PlZpZXdzPC9hPgo8L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL2hlYWx0aC5ueXRpbWVzLmNvbS9o
ZWFsdGgvZ3VpZGVzL2luZGV4Lmh0bWwiPkhlYWx0aCBHdWlkZTwvYT4KPC9saT4KPC91bD48L2Rp
dj48L2Rpdj48IS0tI25hdmlnYXRpb24gLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij5tb2RpZnlOYXZpZ2F0aW9uRGlzcGxheSgpOzwvc2NyaXB0PgoKPCEtLXNwYWNlIGhvbGRlciBm
b3IgdG9vbCBiYXIgLS0+CjxkaXYgaWQ9ImFkeExlYWRlcmJvYXJkIj48ZGl2IGNsYXNzPSJjbGVh
cmZpeCI+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2FkLnlpZWxk
bWFuYWdlci5jb20vc3Q/YWRfdHlwZT1hZCZhbXA7YWRfc2l6ZT03Mjh4OTAmYW1wO3NlY3Rpb249
Mzk0ODEwIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRw
Oi8vYWQueWllbGRtYW5hZ2VyLmNvbS9pbXA/Wj03Mjh4OTAmYW1wO3M9Mzk0ODEwJmFtcDtfc2Fs
dD05MTc2NzMzMTYmYW1wO0I9MTAmYW1wO3U9aHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVzLmNvbSUy
RjIwMDglMkYxMSUyRjEwJTJGaGVhbHRoJTJGMTBoZWFydC5odG1sJTNGX3IlM0QyJTI2cGFydG5l
ciUzRHJzc255dCUyNmVtYyUzRHJzcyUyNm9yZWYlM0RzbG9naW4lMjZvcmVmJTNEc2xvZ2luJmFt
cDtyPTEiPjwvc2NyaXB0PjxpZnJhbWUgc2Nyb2xsaW5nPSJubyIgbWFyZ2lud2lkdGg9IjAiIG1h
cmdpbmhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIGhlaWdodD0iOTAiIHdpZHRoPSI3MjgiIHNy
Yz0iaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vaWZyYW1lMz9wZ0lBQURvR0JnQUpkeElBLlpR
RkFBSUFBQUFBQVA4QUFBQUNFQUlBQmdLZlNRZ0FybGNJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBTTNNek16TXpQQS56Y3pNek16TThELk56TXpNek16d1A4M016TXpNelBBLkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFvZGxQaTRPcVlRWEpjS256RG9yV3YzU2o4U25Mb04xTVJnRC1yd0FBQUFBPSwsaHR0cDovL3d3
dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0Lmh0bWw/X3I9MiZhbXA7cGFy
dG5lcj1yc3NueXQmYW1wO2VtYz1yc3MmYW1wO29yZWY9c2xvZ2luJmFtcDtvcmVmPXNsb2dpbiI+
PC9pZnJhbWU+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEwcHg7
IGNvbG9yOiMwMDQyNzY7IGZsb2F0OiByaWdodDsgbWFyZ2luLXJpZ2h0OiAxMjVweDsiPjxhIGhy
ZWY9Imh0dHA6Ly93d3cubnl0aW1lcy53aHNpdGVzLm5ldC9tZWRpYWtpdC8iPkFkdmVydGlzZSBv
biBOWVRpbWVzLmNvbTwvYT48L2Rpdj48L2Rpdj48L2Rpdj4KPGEgbmFtZT0iYXJ0aWNsZUJvZHlM
aW5rIj48L2E+CjxkaXYgaWQ9Im1haW4iPgoKCgoKCjxkaXYgaWQ9ImFDb2x1bW4iPgo8ZGl2IGlk
PSJhcnRpY2xlIj4KCjxzY3JpcHQgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pz
L3NlY3Rpb24vaGVhbHRoL2F1dG9jb21wbGV0ZS9zdWdnZXN0LmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNv
bS9qcy9jb21tb24vYXV0b2NvbXBsZXRlL3Byb3RvdHlwZS5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20v
anMvY29tbW9uL2F1dG9jb21wbGV0ZS9zY3JpcHRhY3Vsb3VzLmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNv
bS9qcy9jb21tb24vYXV0b2NvbXBsZXRlL2VmZmVjdHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pz
L2NvbW1vbi9hdXRvY29tcGxldGUvZHJhZ2Ryb3AuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+
PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL3Nl
Y3Rpb24vaGVhbHRoL2F1dG9jb21wbGV0ZS9jb250cm9scy5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48L3NjcmlwdD4KPGRpdiBpZD0iaGVhZGVyX3NlYXJjaCIgY2xhc3M9ImNsZWFyZml4Ij4K
PGRpdiBjbGFzcz0ic2VhcmNoQ29udGVudCI+Cjxmb3JtIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gt
d3d3LWZvcm0tdXJsZW5jb2RlZCIgbmFtZT0ibWFpbkZvcm1Cb3R0b20iIG1ldGhvZD0iR0VUIiBh
Y3Rpb249Imh0dHA6Ly9oZWFsdGgubnl0aW1lcy5jb20vZ3N0L2hlYWx0aC9oZWFsdGhzZWFyY2gu
aHRtbD8iPgo8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PGxhYmVsIGZvcj0idGVybSI+U2VhcmNoIEhl
YWx0aDxzcGFuIGNsYXNzPSJzZWFyY2hOb3RlcyI+PGEgaHJlZj0iaHR0cDovL2hlYWx0aC5ueXRp
bWVzLmNvbS9oZWFsdGgvZ3VpZGVzL2luZGV4Lmh0bWwiPjMsMDAwKyBUb3BpY3M8L2E+PC9zcGFu
PjwvbGFiZWw+PC9kaXY+CjxkaXYgY2xhc3M9InNyY2hGaWVsZCI+CjxpbnB1dCBpZD0icXVlcnlf
YWxsIiBuYW1lPSJ0ZXJtIiB0eXBlPSJ0ZXh0IiBhdXRvY29tcGxldGU9Im9mZiI+IAo8ZGl2IGNs
YXNzPSJhdXRvX2NvbXBsZXRlIiBpZD0icXVlcnlfc3VnZ2VzdGlvbnMiIHN0eWxlPSJkaXNwbGF5
OiBub25lOyAiPjwvZGl2Pgo8aW5wdXQgYWxpZ249ImFic2JvdHRvbSIgY2xhc3M9IkdvQnV0dG9u
IiB0aXRsZT0iR28iIGFsdD0iR28iIHR5cGU9ImltYWdlIiBzcmM9Imh0dHA6Ly9ncmFwaGljczgu
bnl0aW1lcy5jb20vaW1hZ2VzL2dsb2JhbC9idXR0b25zL2dvLmdpZiI+IAo8L2Rpdj4KPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCQkJaWYgKG5hdmlnYXRvci51c2VyQWdlbnQubWF0
Y2goJ09wZXJhJykgPT0gbnVsbCkgewoJCQkJCXZhciBvU3VnZ2VzdCA9IG5ldyBBdXRvY29tcGxl
dGVyLkxvY2FsKCdxdWVyeV9hbGwnLCAncXVlcnlfc3VnZ2VzdGlvbnMnLCBzdWdnZXN0aW9ucywg
e21pbkNoYXJzOjMsY2hvaWNlczoxNSxwYXJ0aWFsU2VhcmNoOnRydWV9KTsKCQkJCQlvU3VnZ2Vz
dC5zZXJ2ZXJUeXBlID0gJ3Byb2R1Y3Rpb24nOwoJCQkJfQoJCQk8L3NjcmlwdD4KPC9mb3JtPgo8
L2Rpdj4KPGRpdiBpZD0iSEVTZWFyY2hTcG9uMiI+Cgo8L2Rpdj4KPC9kaXY+CgoKPGgxPgo8bnl0
X2hlYWRsaW5lIHZlcnNpb249IjEuMCIgdHlwZT0iICI+CkNob2xlc3Rlcm9sLUZpZ2h0aW5nIERy
dWdzIFNob3cgV2lkZXIgQmVuZWZpdAo8L255dF9oZWFkbGluZT4KPC9oMT4KCgo8c2NyaXB0IGxh
bmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiPmZ1bmN0aW9uIGdldFNo
YXJlUGFzc2tleSgpIHsgcmV0dXJuICdleD0xMzg0MDU5NjAwJmVuPTM1YzFhMDExMmZlZWMzMTEm
ZWk9NTEyNCc7fTwvc2NyaXB0Pgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0
ZXh0L0phdmFTY3JpcHQiPgpmdW5jdGlvbiBnZXRTaGFyZVVSTCgpIHsKCXJldHVybiBlbmNvZGVV
UklDb21wb25lbnQoJ2h0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8xMC9oZWFsdGgvMTBo
ZWFydC5odG1sJyk7Cn0KZnVuY3Rpb24gZ2V0U2hhcmVIZWFkbGluZSgpIHsKCXJldHVybiBlbmNv
ZGVVUklDb21wb25lbnQoJ0Nob2xlc3Rlcm9sLUZpZ2h0aW5nIERydWdzIFNob3cgV2lkZXIgQmVu
ZWZpdCcpOwp9CmZ1bmN0aW9uIGdldFNoYXJlRGVzY3JpcHRpb24oKSB7IAoKCXJldHVybiBlbmNv
ZGVVUklDb21wb25lbnQoJ0Egc3R1ZHkgc3VnZ2VzdHMgY2hvbGVzdGVyb2wtbG93ZXJpbmcgZHJ1
Z3MgY291bGQgYmVuZWZpdCBtaWxsaW9ucyBtb3JlIHBlb3BsZSwgZXZlbiBpZiB0aGV5IGhhdmUg
bG93IGNob2xlc3Rlcm9sLicpOwp9CmZ1bmN0aW9uIGdldFNoYXJlS2V5d29yZHMoKSB7CglyZXR1
cm4gZW5jb2RlVVJJQ29tcG9uZW50KCdDaG9sZXN0ZXJvbCxIZWFydCxNZWRpY2luZSBhbmQgSGVh
bHRoLFN0YXRpbnMgKENob2xlc3Rlcm9sLUxvd2VyaW5nIERydWdzKSxTdHJva2UsRHJ1Z3MgKFBo
YXJtYWNldXRpY2FscyknKTsKfQpmdW5jdGlvbiBnZXRTaGFyZVNlY3Rpb24oKSB7CglyZXR1cm4g
ZW5jb2RlVVJJQ29tcG9uZW50KCdoZWFsdGgnKTsKfQpmdW5jdGlvbiBnZXRTaGFyZVNlY3Rpb25E
aXNwbGF5KCkgewoKCXJldHVybiBlbmNvZGVVUklDb21wb25lbnQoJ0hlYWx0aCcpOwp9CmZ1bmN0
aW9uIGdldFNoYXJlU3ViU2VjdGlvbigpIHsKCXJldHVybiBlbmNvZGVVUklDb21wb25lbnQoJycp
Owp9CmZ1bmN0aW9uIGdldFNoYXJlQnlsaW5lKCkgewoJcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVu
dCgnQnkgUEFNIEJFTExVQ0snKTsKfQpmdW5jdGlvbiBnZXRTaGFyZVB1YmRhdGUoKSB7CglyZXR1
cm4gZW5jb2RlVVJJQ29tcG9uZW50KCdOb3ZlbWJlciAxMCwgMjAwOCcpOwp9Cjwvc2NyaXB0Pgo8
ZGl2IGlkPSJ0b29sc1JpZ2h0Ij4KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+CgkJCTwh
LS0gCgkJCWZ1bmN0aW9uIHN1Ym1pdENDQ0Zvcm0oKXsKCQkJCVBvcFVwID0gd2luZG93Lm9wZW4o
JycsICdfSWNvbicsJ2xvY2F0aW9uPW5vLHRvb2xiYXI9bm8sc3RhdHVzPW5vLHdpZHRoPTY1MCxo
ZWlnaHQ9NTUwLHNjcm9sbGJhcnM9eWVzLHJlc2l6YWJsZT15ZXMnKTsKCQkJCXRoaXMuZG9jdW1l
bnQuY2NjZm9ybS5zdWJtaXQoKTsKCQkJfQoJCQkvLyAtLT4KCQkJPC9zY3JpcHQ+Cjxmb3JtIG5h
bWU9ImNjY2Zvcm0iIGFjdGlvbj0iaHR0cHM6Ly9zMTAwLmNvcHlyaWdodC5jb20vQ29tbW9uQXBw
L0xvYWRpbmdBcHBsaWNhdGlvbi5qc3AiIHRhcmdldD0iX0ljb24iPjxpbnB1dCB0eXBlPSJoaWRk
ZW4iIG5hbWU9IlRpdGxlIiB2YWx1ZT0iQ2hvbGVzdGVyb2wtRmlnaHRpbmcgRHJ1Z3MgU2hvdyBX
aWRlciBCZW5lZml0Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBdXRob3IiIHZhbHVlPSJC
eSBQQU0gQkVMTFVDSyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ29udGVudElEIiB2YWx1
ZT0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0Lmh0bWwi
PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkZvcm1hdFR5cGUiIHZhbHVlPSJkZWZhdWx0Ij48
aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQdWJsaWNhdGlvbkRhdGUiIHZhbHVlPSJOT1YgMTAg
MjAwOCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUHVibGlzaGVyTmFtZSIgdmFsdWU9IlRo
ZSBOZXcgWW9yayBUaW1lcyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUHVibGljYXRpb24i
IHZhbHVlPSJueXRpbWVzLmNvbSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0id29yZENvdW50
IiB2YWx1ZT0iMTUyNSI+PC9mb3JtPgo8ZGl2IGNsYXNzPSJhcnRpY2xlVG9vbHMiPgo8ZGl2IGNs
YXNzPSJ0b29sc0NvbnRhaW5lciI+Cjx1bCBjbGFzcz0idG9vbHNMaXN0IiBpZD0idG9vbHNMaXN0
Ij4KPGxpIGNsYXNzPSJlbWFpbCI+Cgo8YSBpZD0iZW1haWxUaGlzIiBvbmNsaWNrPSJzX2NvZGVf
bGlua3RyYWNrKCdBcnRpY2xlLVRvb2wtRW1haWxTaWduSW4nKTsiIGhyZWY9Imh0dHA6Ly93d3cu
bnl0aW1lcy5jb20vYXV0aC9sb2dpbj9VUkk9aHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzEx
LzEwL2hlYWx0aC8xMGhlYXJ0Lmh0bWwiPlNpZ24gSW4gdG8gRS1NYWlsIG9yIFNhdmUgVGhpczwv
YT4KPC9saT4KPGxpIGNsYXNzPSJwcmludCI+CjxhIGhyZWY9Ii8yMDA4LzExLzEwL2hlYWx0aC8x
MGhlYXJ0Lmh0bWw/X3I9MiZhbXA7b3JlZj1zbG9naW4mYW1wO3BhcnRuZXI9cnNzbnl0JmFtcDtl
bWM9cnNzJmFtcDtwYWdld2FudGVkPXByaW50Ij5QcmludDwvYT4KPC9saT4KIDxsaSBjbGFzcz0i
c2luZ2xlUGFnZSI+CjxhIGhyZWY9Ii8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0Lmh0bWw/X3I9
MiZhbXA7b3JlZj1zbG9naW4mYW1wO3BhcnRuZXI9cnNzbnl0JmFtcDtlbWM9cnNzJmFtcDtwYWdl
d2FudGVkPWFsbCI+IFNpbmdsZSBQYWdlPC9hPgogPC9saT4KPGxpIGNsYXNzPSJyZXByaW50cyI+
PGEgaHJlZj0iIyIgb25jbGljaz0iamF2YXNjcmlwdDpzdWJtaXRDQ0NGb3JtKCk7Ij5SZXByaW50
czwvYT48L2xpPgoKPGxpIGNsYXNzPSJwb3N0IiBpZD0icG9zdCI+PGEgaHJlZj0iIyI+IFNoYXJl
PC9hPjx1bCBpZD0icG9zdExpc3QiIGNsYXNzPSJoaWRlIj48bGkgY2xhc3M9ImxpbmtlZGluIj48
YSBocmVmPSJqYXZhc2NyaXB0OmFydGljbGVTaGFyZSgnbGlua2VkaW4nKTsiIHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvYXJ0
aWNsZS9mdW5jdGlvbnMvbGlua2VkaW4uZ2lmKTsgIj5MaW5rZWRpbjwvYT48L2xpPjxsaSBjbGFz
cz0iZGlnZyI+PGEgaHJlZj0iamF2YXNjcmlwdDphcnRpY2xlU2hhcmUoJ2RpZ2cnKTsiIHN0eWxl
PSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFn
ZXMvYXJ0aWNsZS9mdW5jdGlvbnMvZGlnZy5naWYpOyAiPkRpZ2c8L2E+PC9saT48bGkgY2xhc3M9
ImZhY2Vib29rIj48YSBocmVmPSJqYXZhc2NyaXB0OmFydGljbGVTaGFyZSgnZmFjZWJvb2snKTsi
IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNv
bS9pbWFnZXMvYXJ0aWNsZS9mdW5jdGlvbnMvZmFjZWJvb2suZ2lmKTsgIj5GYWNlYm9vazwvYT48
L2xpPjxsaSBjbGFzcz0ibWl4eCI+PGEgaHJlZj0iamF2YXNjcmlwdDphcnRpY2xlU2hhcmUoJ21p
eHgnKTsiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2dyYXBoaWNzOC5ueXRp
bWVzLmNvbS9pbWFnZXMvYXJ0aWNsZS9mdW5jdGlvbnMvbWl4eC5naWYpOyAiPk1peHg8L2E+PC9s
aT48bGkgY2xhc3M9InlhaG9vYnV6eiI+PHNwYW4gaWQ9InlhaG9vQnV6ekJhZGdlLWZvcm0iIGNs
YXNzPSJ5YWhvb0J1enpCYWRnZS1mb3JtIj48YSBocmVmPSJodHRwOi8vYnV6ei55YWhvby5jb20v
YXJ0aWNsZS9uZXdfeW9ya190aW1lcy9odHRwJTI1M0ElMjUyRiUyNTJGd3d3Lm55dGltZXMuY29t
JTI1MkYyMDA4JTI1MkYxMSUyNTJGMTAlMjUyRmhlYWx0aCUyNTJGMTBoZWFydC5odG1sIj48c3Bh
biBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7Y3Vyc29yOmhhbmQ7cG9zaXRpb246cmVsYXRpdmU7cGFk
ZGluZy1sZWZ0OjIwcHg7bGluZS1oZWlnaHQ6MTZweDsiPjxzcGFuIHN0eWxlPSJjdXJzb3I6cG9p
bnRlcjtjdXJzb3I6aGFuZDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xl
ZnQ6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybChodHRwOi8vbC55aW1nLmNvbS9kcy9vcmlv
bi8wLjMuOS9pbWcvYmFkZ2UtbG9nby5wbmcpIHRvcCBsZWZ0IG5vLXJlcGVhdDtoZWlnaHQ6MTZw
eDt3aWR0aDoxNnB4OyI+PC9zcGFuPllhaG9vISBCdXp6PC9zcGFuPjwvYT48L3NwYW4+PC9saT48
bGkgY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iamF2YXNjcmlwdDphcnRpY2xlU2hhcmUoJ3Bl
cm1hbGluaycpOyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vZ3JhcGhpY3M4
Lm55dGltZXMuY29tL2ltYWdlcy9hcnRpY2xlL2Z1bmN0aW9ucy9wZXJtYWxpbmsuZ2lmKTsgIj5Q
ZXJtYWxpbms8L2E+PC9saT48L3VsPjwvbGk+PC91bD4KPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNj
cmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij53cml0ZVBvc3QoKTs8L3NjcmlwdD48c2NyaXB0
IGJhZGdldHlwZT0idGV4dCIgc3JjPSJodHRwOi8vZC55aW1nLmNvbS9kcy9iYWRnZS5qcyI+bmV3
X3lvcmtfdGltZXM6aHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL2hlYWx0aC8xMGhl
YXJ0Lmh0bWw8L3NjcmlwdD4KPGRpdiBpZD0iYWR4VG9vbFNwb25zb3IiPjxhIGhyZWY9Imh0dHA6
Ly93d3cubnl0aW1lcy5jb20vYWR4L2Jpbi9hZHhfY2xpY2suaHRtbD90eXBlPWdvdG8mYW1wO3Bh
Z2U9d3d3Lm55dGltZXMuY29tL3lyL21vL2RheS9oZWFsdGgmYW1wO3Bvcz1GcmFtZTRBJmFtcDtz
bjI9MThhZjg2MDkvODYyMzQ2MGEmYW1wO3NuMT1mOTk2OTZmLzdhNGUzYzE0JmFtcDtjYW1wPWZv
eHNlYXJjaDIwMDhfZW1haWx0b29sc184MTA5MDlkX255dDUmYW1wO2FkPXNsdW1kb2dfZF84OHgz
MV8xMS0xMCZhbXA7Z290bz1odHRwJTNBJTJGJTJGd3d3JTJFZm94c2VhcmNobGlnaHQlMkVjb20l
MkZzbHVtZG9nbWlsbGlvbmFpcmUiIHRhcmdldD0iX2JsYW5rIj4KPGltZyBzcmM9Imh0dHA6Ly9n
cmFwaGljczgubnl0aW1lcy5jb20vYWR4L2ltYWdlcy9BRFMvMTgvNjMvYWQuMTg2MzM1L3NkbV9h
d184OHgzMV90dy5naWYiIHdpZHRoPSI4OCIgaGVpZ2h0PSIzMSI+CjwvYT4KPC9kaXY+CjwvZGl2
Pgo8L2Rpdj4KPC9kaXY+Cgo8bnl0X2J5bGluZSB2ZXJzaW9uPSIxLjAiIHR5cGU9IiAiPgo8ZGl2
IGNsYXNzPSJieWxpbmUiPkJ5IDxhIGhyZWY9Imh0dHA6Ly90b3BpY3Mubnl0aW1lcy5jb20vdG9w
L3JlZmVyZW5jZS90aW1lc3RvcGljcy9wZW9wbGUvYi9wYW1fYmVsbHVjay9pbmRleC5odG1sP2lu
bGluZT1ueXQtcGVyIiB0aXRsZT0iTW9yZSBBcnRpY2xlcyBieSBQYW0gQmVsbHVjayI+UEFNIEJF
TExVQ0s8L2E+PC9kaXY+Cjwvbnl0X2J5bGluZT4KPGRpdiBjbGFzcz0idGltZXN0YW1wIj5QdWJs
aXNoZWQ6IE5vdmVtYmVyIDksIDIwMDggPC9kaXY+CjxkaXYgaWQ9ImFydGljbGVCb2R5Ij4KCgoK
CgoKPG55dF90ZXh0PgoKCiAgICA8cD4gQSBsYXJnZSBuZXcgc3R1ZHkgc3VnZ2VzdHMgdGhhdCBt
aWxsaW9ucyBtb3JlIHBlb3BsZSBjb3VsZCBiZW5lZml0IGZyb20gdGFraW5nIHRoZSA8YSBocmVm
PSJodHRwOi8vaGVhbHRoLm55dGltZXMuY29tL2hlYWx0aC9ndWlkZXMvbnV0cml0aW9uL2Nob2xl
c3Rlcm9sL292ZXJ2aWV3Lmh0bWw/aW5saW5lPW55dC1jbGFzc2lmaWVyIiB0aXRsZT0iSW4tZGVw
dGggcmVmZXJlbmNlIGFuZCBuZXdzIGFydGljbGVzIGFib3V0IENob2xlc3Rlcm9sLiI+Y2hvbGVz
dGVyb2w8L2E+LWxvd2VyaW5nIGRydWdzIGtub3duIGFzIHN0YXRpbnMsIGV2ZW4gaWYgdGhleSBo
YXZlIGxvdyBjaG9sZXN0ZXJvbCwgYmVjYXVzZSB0aGUgZHJ1Z3MgY2FuIHNpZ25pZmljYW50bHkg
bG93ZXIgdGhlaXIgcmlzayBvZiBoZWFydCBhdHRhY2tzLCBzdHJva2VzIGFuZCBkZWF0aC4gPC9w
PiAKPGRpdiBpZD0iYXJ0aWNsZUlubGluZSIgY2xhc3M9ImlubGluZUxlZnQiPgo8ZGl2IGlkPSJp
bmxpbmVCb3giPjxhIGhyZWY9IiNzZWNvbmRQYXJhZ3JhcGgiIGNsYXNzPSJqdW1wTGluayI+U2tp
cCB0byBuZXh0IHBhcmFncmFwaDwvYT4KICAKICAgIAo8ZGl2IGlkPSJpbmxpbmVNdWx0aW1lZGlh
Ij4KPGg0Pk11bHRpbWVkaWE8L2g0Pgo8ZGl2IGNsYXNzPSJzdG9yeSBmaXJzdCI+CgoKCgoKCgo8
YSBocmVmPSJqYXZhc2NyaXB0OnBvcF9tZV91cDIoJ2h0dHA6Ly93d3cubnl0aW1lcy5jb20vaW1h
Z2VwYWdlcy8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0LmdyYXBoaXgucmVhZHkuaHRtbCcsICc1
NzBfNDI3JywgJ3dpZHRoPTU3MCxoZWlnaHQ9NDI3LGxvY2F0aW9uPW5vLHNjcm9sbGJhcnM9eWVz
LHRvb2xiYXJzPW5vLHJlc2l6YWJsZT15ZXMnKSI+CjxpbWcgc3JjPSJodHRwOi8vZ3JhcGhpY3M4
Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzExLzEwL2hlYWx0aC8xMTEwLW5hdC13ZWJIRUFSVC0x
OTAuanBnIiBoZWlnaHQ9IjEyNiIgd2lkdGg9IjE5MCIgYWx0PSJTdGF0aW5zIFJlZHVjZSBSaXNr
cyIgYm9yZGVyPSIwIj48c3BhbiBjbGFzcz0ibWVkaWFUeXBlIGdyYXBoaWMiPkdyYXBoaWM8L3Nw
YW4+CjwvYT4KCgo8aDI+Cgo8YSBocmVmPSJqYXZhc2NyaXB0OnBvcF9tZV91cDIoJ2h0dHA6Ly93
d3cubnl0aW1lcy5jb20vaW1hZ2VwYWdlcy8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0LmdyYXBo
aXgucmVhZHkuaHRtbCcsICc1NzBfNDI3JywgJ3dpZHRoPTU3MCxoZWlnaHQ9NDI3LGxvY2F0aW9u
PW5vLHNjcm9sbGJhcnM9eWVzLHRvb2xiYXJzPW5vLHJlc2l6YWJsZT15ZXMnKSI+U3RhdGlucyBS
ZWR1Y2UgUmlza3M8L2E+IAoKPC9oMj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2Rpdj4K
PC9kaXY+CjxkaXYgaWQ9InNpZGViYXJBcnRpY2xlcyI+CjxoND5SZWxhdGVkPC9oND4KPGgyPjxh
IGhyZWY9Imh0dHA6Ly9oZWFsdGgubnl0aW1lcy5jb20vaGVhbHRoL2d1aWRlcy9udXRyaXRpb24v
Y2hvbGVzdGVyb2wvb3ZlcnZpZXcuaHRtbCI+SGVhbHRoIEd1aWRlOiAgQ2hvbGVzdGVyb2w8L2E+
PC9oMj4KPC9kaXY+CjwhLS1SU1MgRmVlZCBNYXJrdXAgLS0+CjxoND5SU1MgRmVlZDwvaDQ+Cgo8
dWw+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3NlcnZpY2VzL3htbC9yc3Mv
bnl0L0hlYWx0aC54bWwiPkdldCBIZWFsdGggTmV3cyBGcm9tIFRoZSBOZXcgWW9yayBUaW1lcyDC
uzwvYT48L2xpPgo8L3VsPgo8ZGl2IGNsYXNzPSJkb3VibGVSdWxlIGxhc3RSdWxlIj48L2Rpdj4K
PCEtLWVuZCBSU1MgRmVlZCBNYXJrdXAgLS0+CiAgCjwvZGl2Pgo8L2Rpdj48YSBuYW1lPSJzZWNv
bmRQYXJhZ3JhcGgiPjwvYT4KIDxwPiBUaGUgc3R1ZHksIGludm9sdmluZyBuZWFybHkgMTgsMDAw
IHBlb3BsZSB3b3JsZHdpZGUsIHRlc3RlZCBzdGF0aW4gdHJlYXRtZW50IGluIG1lbiA1MCBhbmQg
b2xkZXIgYW5kIGluIHdvbWVuIDYwIGFuZCBvbGRlciB3aG8gZGlkIG5vdCBoYXZlIGhpZ2ggY2hv
bGVzdGVyb2wgb3IgaGlzdG9yaWVzIG9mIGhlYXJ0IGRpc2Vhc2UuIFdoYXQgdGhleSBkaWQgaGF2
ZSB3YXMgaGlnaCBsZXZlbHMgb2YgYSBwcm90ZWluIGNhbGxlZCBoaWdoLXNlbnNpdGl2aXR5IDxh
IGhyZWY9Imh0dHA6Ly9oZWFsdGgubnl0aW1lcy5jb20vaGVhbHRoL2d1aWRlcy90ZXN0L2MtcmVh
Y3RpdmUtcHJvdGVpbi9vdmVydmlldy5odG1sP2lubGluZT1ueXQtY2xhc3NpZmllciIgdGl0bGU9
IkluLWRlcHRoIHJlZmVyZW5jZSBhbmQgbmV3cyBhcnRpY2xlcyBhYm91dCBDLXJlYWN0aXZlIHBy
b3RlaW4uIj5DLXJlYWN0aXZlIHByb3RlaW48L2E+LCBvciBDUlAsIHdoaWNoIGluZGljYXRlcyBp
bmZsYW1tYXRpb24gaW4gdGhlIGJvZHkuPC9wPjxwPiBUaGUgc3R1ZHksIHByZXNlbnRlZCBTdW5k
YXkgYXQgYW4gPGEgaHJlZj0iaHR0cDovL3RvcGljcy5ueXRpbWVzLmNvbS90b3AvcmVmZXJlbmNl
L3RpbWVzdG9waWNzL29yZ2FuaXphdGlvbnMvYS9hbWVyaWNhbl9oZWFydF9hc3NvY2lhdGlvbi9p
bmRleC5odG1sP2lubGluZT1ueXQtb3JnIiB0aXRsZT0iTW9yZSBhcnRpY2xlcyBhYm91dCBBbWVy
aWNhbiBIZWFydCBBc3NvY2lhdGlvbiI+QW1lcmljYW4gSGVhcnQgQXNzb2NpYXRpb248L2E+IGNv
bnZlbnRpb24gaW4gTmV3IE9ybGVhbnMgYW5kIHB1Ymxpc2hlZCBvbmxpbmUgaW4gVGhlIDxhIGhy
ZWY9Imh0dHA6Ly90b3BpY3Mubnl0aW1lcy5jb20vdG9wL3JlZmVyZW5jZS90aW1lc3RvcGljcy9v
cmdhbml6YXRpb25zL24vbmV3X2VuZ2xhbmRfam91cm5hbF9vZl9tZWRpY2luZS9pbmRleC5odG1s
P2lubGluZT1ueXQtb3JnIiB0aXRsZT0iTW9yZSBhcnRpY2xlcyBhYm91dCBOZXcgRW5nbGFuZCBK
b3VybmFsIG9mIE1lZGljaW5lIj5OZXcgRW5nbGFuZCBKb3VybmFsIG9mIE1lZGljaW5lPC9hPiwg
Zm91bmQgdGhhdCB0aGUgcmlzayBvZiA8YSBocmVmPSJodHRwOi8vaGVhbHRoLm55dGltZXMuY29t
L2hlYWx0aC9ndWlkZXMvZGlzZWFzZS9oZWFydC1hdHRhY2svb3ZlcnZpZXcuaHRtbD9pbmxpbmU9
bnl0LWNsYXNzaWZpZXIiIHRpdGxlPSJJbi1kZXB0aCByZWZlcmVuY2UgYW5kIG5ld3MgYXJ0aWNs
ZXMgYWJvdXQgSGVhcnQgYXR0YWNrLiI+aGVhcnQgYXR0YWNrPC9hPiB3YXMgbW9yZSB0aGFuIGN1
dCBpbiBoYWxmIGZvciBwZW9wbGUgd2hvIHRvb2sgc3RhdGlucy4gPC9wPjxwPiBUaG9zZSBwZW9w
bGUgd2VyZSBhbHNvIGFsbW9zdCA1MCBwZXJjZW50IGxlc3MgbGlrZWx5IHRvIHN1ZmZlciBhIDxh
IGhyZWY9Imh0dHA6Ly9oZWFsdGgubnl0aW1lcy5jb20vaGVhbHRoL2d1aWRlcy9kaXNlYXNlL3N0
cm9rZS9vdmVydmlldy5odG1sP2lubGluZT1ueXQtY2xhc3NpZmllciIgdGl0bGU9IkluLWRlcHRo
IHJlZmVyZW5jZSBhbmQgbmV3cyBhcnRpY2xlcyBhYm91dCBzdHJva2VzLiI+c3Ryb2tlPC9hPiBv
ciBuZWVkIDxhIGhyZWY9Imh0dHA6Ly9oZWFsdGgubnl0aW1lcy5jb20vaGVhbHRoL2d1aWRlcy9z
dXJnZXJ5L2FuZ2lvcGxhc3R5L292ZXJ2aWV3Lmh0bWw/aW5saW5lPW55dC1jbGFzc2lmaWVyIiB0
aXRsZT0iSW4tZGVwdGggcmVmZXJlbmNlIGFuZCBuZXdzIGFydGljbGVzIGFib3V0IEFuZ2lvcGxh
c3R5LiI+YW5naW9wbGFzdHk8L2E+IG9yIGJ5cGFzcyBzdXJnZXJ5LCBhbmQgdGhleSB3ZXJlIDIw
IHBlcmNlbnQgbGVzcyBsaWtlbHkgdG8gZGllIGR1cmluZyB0aGUgc3R1ZHkuIFRoZSBzdGF0aW4g
d2FzIGNvbnNpZGVyZWQgc28gYmVuZWZpY2lhbCB0aGF0IGFuIGluZGVwZW5kZW50IHNhZmV0eSBt
b25pdG9yaW5nIGJvYXJkIHN0b3BwZWQgd2hhdCB3YXMgc3VwcG9zZWQgdG8gYmUgYSBmaXZlLXll
YXIgdHJpYWwgbGFzdCBNYXJjaCBhZnRlciBsZXNzIHRoYW4gdHdvIHllYXJzLiA8L3A+PHA+IFNj
aWVudGlzdHMgc2FpZCB0aGUgcmVzZWFyY2ggY291bGQgcHJvdmlkZSBjbHVlcyBvbiBob3cgdG8g
YWRkcmVzcyBhIGxvbmctY29uZm91bmRpbmcgc3RhdGlzdGljOiB0aGF0IGhhbGYgb2YgaGVhcnQg
YXR0YWNrcyBhbmQgc3Ryb2tlcyBvY2N1ciBpbiBwZW9wbGUgd2l0aG91dCBoaWdoIGNob2xlc3Rl
cm9sLiA8L3A+PHA+IOKAnFRoZXNlIGFyZSBmaW5kaW5ncyB0aGF0IGFyZSByZWFsbHkgZ29pbmcg
dG8gaW1wYWN0IHRoZSBwcmFjdGljZSBvZiBjYXJkaW9sb2d5IGluIHRoZSBjb3VudHJ5LOKAnSBz
YWlkIERyLiBFbGl6YWJldGggRy4gTmFiZWwsIGRpcmVjdG9yIG9mIHRoZSBOYXRpb25hbCBIZWFy
dCwgTHVuZyBhbmQgQmxvb2QgSW5zdGl0dXRlLCB3aGljaCB3YXMgbm90IGludm9sdmVkIGluIHRo
ZSByZXNlYXJjaC4g4oCcSXTigJlzIGF0IGEgbWluaW11bSBhbiBleHRyZW1lbHkgaW1wb3J0YW50
IHN0dWR5IGFuZCBoYXMgdGhlIHBvdGVudGlhbCB0byBiZSBhIGxhbmRtYXJrIHN0dWR5LuKAnTwv
cD48cD4gVGhlIHN0dWR5IGlzIHN0aXJyaW5nIGRlYmF0ZSBvdmVyIHdobyBzaG91bGQgdGFrZSBh
IGJsb29kIHRlc3QgdG8gY2hlY2sgQ1JQIGFuZCB1bmRlciB3aGF0IGNpcmN1bXN0YW5jZXMgc29t
ZW9uZSB3aXRoIGhpZ2ggbGV2ZWxzIG9mIHRoZSBwcm90ZWluIHNob3VsZCBiZSBnaXZlbiBhIHN0
YXRpbi4gQmVjYXVzZSBoZWFydCBkaXNlYXNlIGlzIGEgY29tcGxleCBpbGxuZXNzIGFmZmVjdGVk
IGJ5IG1hbnkgcmlzayBmYWN0b3JzIOKAlCBpbmNsdWRpbmcgPGEgaHJlZj0iaHR0cDovL2hlYWx0
aC5ueXRpbWVzLmNvbS9oZWFsdGgvZ3VpZGVzL3NwZWNpYWx0b3BpYy9zbW9raW5nLWFuZC1zbW9r
ZWxlc3MtdG9iYWNjby9vdmVydmlldy5odG1sP2lubGluZT1ueXQtY2xhc3NpZmllciIgdGl0bGU9
IkluLWRlcHRoIHJlZmVyZW5jZSBhbmQgbmV3cyBhcnRpY2xlcyBhYm91dCBTbW9raW5nLiI+c21v
a2luZzwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9oZWFsdGgubnl0aW1lcy5jb20vaGVhbHRoL2d1aWRl
cy9kaXNlYXNlL2h5cGVydGVuc2lvbi9vdmVydmlldy5odG1sP2lubGluZT1ueXQtY2xhc3NpZmll
ciIgdGl0bGU9IkluLWRlcHRoIHJlZmVyZW5jZSBhbmQgbmV3cyBhcnRpY2xlcyBhYm91dCBIeXBl
cnRlbnNpb24uIj5oeXBlcnRlbnNpb248L2E+IGFuZCBiZWluZyBvdmVyd2VpZ2h0IOKAlCBtb3N0
IHJlc2VhcmNoZXJzIHNhaWQgaGlnaCBDUlAgYWxvbmUgc2hvdWxkIG5vdCBqdXN0aWZ5IHByZXNj
cmliaW5nIHN0YXRpbnMgdG8gcGVvcGxlIHdobyBoYXZlIG5ldmVyIGhhZCBoZWFydCBwcm9ibGVt
cy4gPC9wPjxwPiBTb21lIGV4cGVydHMgY2F1dGlvbmVkIGFnYWluc3QgdGVzdGluZyBwZW9wbGUg
Zm9yIHRoZSBwcm90ZWluIHVubGVzcyB0aGV5IGhhZCBvdGhlciByaXNrIGZhY3RvcnMsIGFuZCB0
aGV5IHNhaWQgbW9yZSByZXNlYXJjaCB3YXMgbmVlZGVkIHRvIHBpbnBvaW50IHRoZSBwYXRpZW50
cyBmb3Igd2hvbSB0aGUgYmVuZWZpdCBvZiBzdGF0aW5zIG91dHdlaWdocyB0aGUgcmlza3MuIE9u
IHJhcmUgb2NjYXNpb25zLCBzdGF0aW5zIGhhdmUgYmVlbiBsaW5rZWQgdG8gbXVzY2xlIGRldGVy
aW9yYXRpb24gb3Iga2lkbmV5IHByb2JsZW1zLCBhbmQgc29tZSBwYXRpZW50cyByZXBvcnRlZCBm
b2dnaW5lc3Mgb2YgbWVtb3J5LiBPdGhlciByZXNlYXJjaGVycyByZWNvbW1lbmRlZCB0ZXN0aW5n
IGZvciBDUlAgbW9yZSBmcmVxdWVudGx5IGFuZCB1c2luZyBzdGF0aW5zIG1vcmUgYWdncmVzc2l2
ZWx5LiA8L3A+PHA+VGhlIHN0dWR5LCBjYWxsZWQgPGEgaHJlZj0iaHR0cDovL3RvcGljcy5ueXRp
bWVzLmNvbS90b3AvbmV3cy9zY2llbmNlL3RvcGljcy9qdXBpdGVyX3BsYW5ldC9pbmRleC5odG1s
P2lubGluZT1ueXQtY2xhc3NpZmllciIgdGl0bGU9Ik1vcmUgYXJ0aWNsZXMgYWJvdXQgSnVwaXRl
ciAoUGxhbmV0KS4iPkp1cGl0ZXI8L2E+LCBpcyBhbHNvIGZ1ZWxpbmcgYSBkZWJhdGUgYW1vbmcg
c2NpZW50aXN0cyBhYm91dCB0aGUgcHJvdGVpbuKAmXMgaW1wb3J0YW5jZSBhbmQgaW5mbGFtbWF0
aW9u4oCZcyByb2xlIGluIGhlYXJ0IGRpc2Vhc2UuPC9wPjxwPkRyLiBOYWJlbCBzYWlkIG5hdGlv
bmFsIHBhbmVscyB3ZXJlIGxpa2VseSB0byByZXZpc2UgdGhlaXIgb2ZmaWNpYWwgZ3VpZGVsaW5l
cyBmb3IgZG9jdG9ycyB0byByZWNvbW1lbmQgQ1JQIHRlc3RpbmcgYW5kIHN0YXRpbiB0aGVyYXB5
IGZvciBzb21lIHBlb3BsZSBub3QgcHJldmlvdXNseSBjb25zaWRlcmVkIGNhbmRpZGF0ZXMuIDwv
cD48cD5DdXJyZW50IHByYWN0aWNlLCBzaGUgc2FpZCwgaXMgdG8gdHJlYXQgcGVvcGxlIHdpdGgg
aGlnaCBjaG9sZXN0ZXJvbCB3aXRoIHN0YXRpbnMgYW5kIHRvIGNvdW5zZWwgcGVvcGxlIGF0IGxv
dyByaXNrIGZvciBoZWFydCBkaXNlYXNlIGFib3V0IDxhIGhyZWY9Imh0dHA6Ly9oZWFsdGgubnl0
aW1lcy5jb20vaGVhbHRoL2d1aWRlcy9zcGVjaWFsdG9waWMvZm9vZC1ndWlkZS1weXJhbWlkL292
ZXJ2aWV3Lmh0bWw/aW5saW5lPW55dC1jbGFzc2lmaWVyIiB0aXRsZT0iSW4tZGVwdGggcmVmZXJl
bmNlIGFuZCBuZXdzIGFydGljbGVzIGFib3V0IERpZXQgYW5kIE51dHJpdGlvbi4iPmRpZXQ8L2E+
IGFuZCBleGVyY2lzZS48L3A+PHA+IOKAnFdoYXQgY2FyZGlvbG9naXN0cyBoYXZlIG5ldmVyIGtu
b3duIHdoYXQgdG8gZG8gYWJvdXQgaXMgdGhlIGludGVybWVkaWF0ZSByYW5nZeKAnSBvZiBwYXRp
ZW50cywgRHIuIE5hYmVsIHNhaWQsIHdobyBtYXkgYmUgb3ZlcndlaWdodCwgc21va2Ugb3IgaGF2
ZSBoeXBlcnRlbnNpb24gYnV0IGRvIG5vdCBoYXZlIHRoZSBtb3N0IHNlcmlvdXMgcmVkIGZsYWdz
IG9mIGhpZ2ggY2hvbGVzdGVyb2wgb3IgPGEgaHJlZj0iaHR0cDovL2hlYWx0aC5ueXRpbWVzLmNv
bS9oZWFsdGgvZ3VpZGVzL2Rpc2Vhc2UvZGlhYmV0ZXMvb3ZlcnZpZXcuaHRtbD9pbmxpbmU9bnl0
LWNsYXNzaWZpZXIiIHRpdGxlPSJJbi1kZXB0aCByZWZlcmVuY2UgYW5kIG5ld3MgYXJ0aWNsZXMg
YWJvdXQgRGlhYmV0ZXMuIj5kaWFiZXRlczwvYT4uIOKAnEkgdGhpbmsgQ1JQIHdpbGwgZW1lcmdl
IGFzIGEgbmV3IHJpc2sgZmFjdG9yIGFkZGVkIHRvIHRyYWRpdGlvbmFsIHJpc2sgZmFjdG9ycy7i
gJ0gPC9wPjxwPiBUaGUgbGVhZGVyIG9mIHRoZSBKdXBpdGVyIHN0dWR5LCBEci4gUGF1bCBNLiBS
aWRrZXIsIGRpcmVjdG9yIG9mIHRoZSBDZW50ZXIgZm9yIENhcmRpb3Zhc2N1bGFyIERpc2Vhc2Ug
UHJldmVudGlvbiBhdCA8YSBocmVmPSJodHRwOi8vdG9waWNzLm55dGltZXMuY29tL3RvcC9yZWZl
cmVuY2UvdGltZXN0b3BpY3Mvb3JnYW5pemF0aW9ucy9iL2JyaWdoYW1fYW5kX3dvbWVuc19ob3Nw
aXRhbC9pbmRleC5odG1sP2lubGluZT1ueXQtb3JnIiB0aXRsZT0iTW9yZSBhcnRpY2xlcyBhYm91
dCBCcmlnaGFtIGFuZCBXb21lbidzIEhvc3BpdGFsIj5CcmlnaGFtIGFuZCBXb21lbuKAmXMgSG9z
cGl0YWw8L2E+IGluIEJvc3Rvbiwgc2FpZCBleHBhbmRpbmcgc3RhdGluIHVzZSBjb3VsZCBwcmV2
ZW50IGFib3V0IDI1MCwwMDAgaGVhcnQgYXR0YWNrcywgc3Ryb2tlcywgdmFzY3VsYXIgcHJvY2Vk
dXJlcyBvciBjYXJkaWFjIGRlYXRocyBvdmVyIGZpdmUgeWVhcnMuIDwvcD48cD5Tb21lIGV4cGVy
dHMgbm90IGludm9sdmVkIGluIHRoZSBzdHVkeSBzYWlkIHNldmVyYWwgbWlsbGlvbiBtb3JlIEFt
ZXJpY2FucyBzaG91bGQgcHJvYmFibHkgYmUgdGFraW5nIHN0YXRpbnMuIEFib3V0IDE2IG1pbGxp
b24gdG8gMjAgbWlsbGlvbiBkbyBub3cuPC9wPjxwPiDigJxUaGUgSnVwaXRlciB0cmlhbCB2ZXJ5
IGNvbnZpbmNpbmdseSB1c2VkIENSUCBhcyBhIHdheSB0byBpZGVudGlmeSBhbm90aGVyIGdyb3Vw
IG9mIGhpZ2gtcmlzayBpbmRpdmlkdWFscyB3aG8gd291bGQgbm90IG90aGVyd2lzZSBoYXZlIGJl
ZW4gdHJlYXRlZCBhbmQgc3VwcG9ydHMgdGhlIGNvbmNlcHQgdGhhdCB0aG9zZSBwZW9wbGUgc2hv
dWxkIGJlIHRyZWF0ZWQgd2l0aCBhIHN0YXRpbizigJ0gc2FpZCBEci4gRGFuaWVsIEouIFJhZGVy
LCBhIGhlYXJ0IHJlc2VhcmNoZXIgYXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly90b3BpY3Mubnl0aW1l
cy5jb20vdG9wL3JlZmVyZW5jZS90aW1lc3RvcGljcy9vcmdhbml6YXRpb25zL3UvdW5pdmVyc2l0
eV9vZl9wZW5uc3lsdmFuaWEvaW5kZXguaHRtbD9pbmxpbmU9bnl0LW9yZyIgdGl0bGU9Ik1vcmUg
YXJ0aWNsZXMgYWJvdXQgVW5pdmVyc2l0eSBvZiBQZW5uc3lsdmFuaWEiPlVuaXZlcnNpdHkgb2Yg
UGVubnN5bHZhbmlhPC9hPiBTY2hvb2wgb2YgTWVkaWNpbmUgd2hvIHdhcyBub3QgY29ubmVjdGVk
IHRvIHRoZSBzdHVkeS48L3A+PHA+U29tZSBjb25zdW1lciBhZHZvY2F0ZXMgYW5kIGRvY3RvcnMg
cmFpc2VkIGNvbmNlcm5zIGFib3V0IHRoZSBleHBlbnNlIG9mIHB1dHRpbmcgcmVsYXRpdmVseSBo
ZWFsdGh5IHBhdGllbnRzIG9uIHN0YXRpbnMsIHdoaWNoIHdvdWxkIGNvc3QgdGhlIGhlYWx0aCBz
eXN0ZW0gYmlsbGlvbnMgb2YgZG9sbGFycy4gTmFtZS1icmFuZCBzdGF0aW5zIGNhbiBjb3N0ICQz
IGEgZGF5LCBidXQgZ2VuZXJpY3MgYXJlIG11Y2ggY2hlYXBlci4gRHIuIFJpZGtlciBzYWlkIGhl
IGJlbGlldmVkIHRoYXQgdGhlIHdpZGVuaW5nIHVzZSBvZiB0aGUgZHJ1Z3MgbWlnaHQgcHJldmVu
dCBjb3N0cyBhc3NvY2lhdGVkIHdpdGggaGVhcnQgYXR0YWNrcyBhbmQgc3VyZ2VyeS4gPC9wPjxw
PlNldmVyYWwgZXhwZXJ0cyBzYWlkIHRoYXQgYWx0aG91Z2ggdGhlIHJlc2VhcmNoIHdhcyBzaWdu
aWZpY2FudCBhbmQgd291bGQgYWZmZWN0IGNsaW5pY2FsIHByYWN0aWNlLCB0aGUgc3R1ZHkgYXMg
cHVibGlzaGVkIGRpZCBub3QgZ2l2ZSBlbm91Z2ggZGV0YWlsIGFib3V0IHdoaWNoIHBhdGllbnRz
IHNob3VsZCBub3cgYmUgdGVzdGVkIGZvciBDUlAgb3IgZ2l2ZW4gc3RhdGlucy4gPC9wPjxwPklu
IGFuIGFjY29tcGFueWluZyBlZGl0b3JpYWwsIERyLiBNYXJrIEEuIEhsYXRreSwgYSBwcm9mZXNz
b3Igb2YgaGVhbHRoIHJlc2VhcmNoIGF0IDxhIGhyZWY9Imh0dHA6Ly90b3BpY3Mubnl0aW1lcy5j
b20vdG9wL3JlZmVyZW5jZS90aW1lc3RvcGljcy9vcmdhbml6YXRpb25zL3Mvc3RhbmZvcmRfdW5p
dmVyc2l0eS9pbmRleC5odG1sP2lubGluZT1ueXQtb3JnIiB0aXRsZT0iTW9yZSBhcnRpY2xlcyBh
Ym91dCBTdGFuZm9yZCBVbml2ZXJzaXR5Ij5TdGFuZm9yZCBVbml2ZXJzaXR5PC9hPiwgcXVlc3Rp
b25lZCB0aGUgY29zdCBvZiBleHBhbmRpbmcgc3RhdGluIHVzZS4gSGUgYWxzbyBzYWlkIHRoYXQg
dGhlIHN0dWR5LCB3aGljaCB0ZXN0ZWQgcGVvcGxlIHdpdGggbGV2ZWxzIG9mIHRoZSBwcm90ZWlu
IG92ZXIgdHdvIG1pbGxpZ3JhbXMgcGVyIGxpdGVyLCBkaWQgbm90IGluZGljYXRlIHdoZXRoZXIg
dGhhdCBsZXZlbCBvciBhIGhpZ2hlciBDUlAgbGV2ZWwgc2hvdWxkIGJlIHRoZSB0aHJlc2hvbGQg
Zm9yIHRyZWF0bWVudC4gPC9wPjxwPiBEci4gU2lkbmV5IFdvbGZlLCBkaXJlY3RvciBvZiB0aGUg
aGVhbHRoIHJlc2VhcmNoIGdyb3VwIGZvciA8YSBocmVmPSJodHRwOi8vdG9waWNzLm55dGltZXMu
Y29tL3RvcC9yZWZlcmVuY2UvdGltZXN0b3BpY3Mvb3JnYW5pemF0aW9ucy9wL3B1YmxpY19jaXRp
emVuL2luZGV4Lmh0bWw/aW5saW5lPW55dC1vcmciIHRpdGxlPSJNb3JlIGFydGljbGVzIGFib3V0
IFB1YmxpYyBDaXRpemVuIj5QdWJsaWMgQ2l0aXplbjwvYT4sIGEgbm9ucHJvZml0IGNvbnN1bWVy
IGFkdm9jYWN5IGdyb3VwLCBzYWlkIHRoZSBzdHVkeSBkaWQgbm90IGdpdmUgZW5vdWdoIGRldGFp
bCBhYm91dCB0aGUgZWZmZWN0IG9mIHN0YXRpbnMgb24gcGFydGljaXBhbnRzIHdobyBoYWQgb25s
eSBoaWdoIHByb3RlaW4gbGV2ZWxzLCBjb21wYXJlZCB3aXRoIHRob3NlIHdobyBhbHNvIHNtb2tl
ZCBvciBoYWQgYSBjb25kaXRpb24gY2FsbGVkIG1ldGFib2xpYyBzeW5kcm9tZS4gPC9wPjxwPlNv
bWUgZXhwZXJ0cyBxdWVzdGlvbmVkIHdoZXRoZXIgc3RvcHBpbmcgdGhlIHRyaWFsIGVhcmx5IGhh
ZCBsaW1pdGVkIHRoZSBwb3NzaWJpbGl0eSBvZiBzb21lIG1vcmUgbWVhbmluZ2Z1bCBkYXRhLiBE
ci4gUmlka2VyIHNhaWQgaXQgaGFkIG5vdC48L3A+PHA+SGUgc2FpZCB0aGUgcHVibGlzaGVkIHN0
dWR5LCBhcyB3ZWxsIGFzIHVucHVibGlzaGVkIGRhdGEsIGluZGljYXRlZCB0aGF0IGFsbCB0aGUg
c3RhdGluLXRha2VycyBleHBlcmllbmNlZCB0aGUgc2FtZSBiZW5lZml0LCBpbmNsdWRpbmcgdGhv
c2UgY29uc2lkZXJlZCDigJx2ZXJ5IGxvdyByaXNr4oCdIGJlY2F1c2UgdGhleSBoYWQgbm8gcmlz
ayBmYWN0b3JzIG90aGVyIHRoYW4gaGlnaCBsZXZlbHMgb2YgdGhlIHByb3RlaW4uIDwvcD48cD5U
aGUgdHJpYWwgd2FzIG9uZSBvZiB0aGUgZmV3IHRvIHRlc3Qgc3RhdGlucyB0aGF0IGluY2x1ZGVk
IG1hbnkgd29tZW4sIEhpc3BhbmljcyBhbmQgYmxhY2tzLCBncm91cHMgdGhhdCBhbGwgc2hvd2Vk
IHNpbWlsYXIgYmVuZWZpdCBmcm9tIHN0YXRpbnMuIDwvcD48cD4gTGlrZSBtYW55IGNsaW5pY2Fs
IHRyaWFscywgdGhlIEp1cGl0ZXIgc3R1ZHkgd2FzIHNwb25zb3JlZCBieSBhIHBoYXJtYWNldXRp
Y2FsIGNvbXBhbnksIGluIHRoaXMgY2FzZSBBc3RyYVplbmVjYS4gSXQgbWFrZXMgdGhlIGRydWcg
aW4gdGhlIHRyaWFsLCByb3N1dmFzdGF0aW4sIHdoaWNoIGlzIHNvbGQgYXMgPGEgaHJlZj0iaHR0
cDovL3RvcGljcy5ueXRpbWVzLmNvbS90b3AvbmV3cy9oZWFsdGgvZGlzZWFzZXNjb25kaXRpb25z
YW5kaGVhbHRodG9waWNzL2NyZXN0b3JfZHJ1Zy9pbmRleC5odG1sP2lubGluZT1ueXQtY2xhc3Np
ZmllciIgdGl0bGU9IlJlY2VudCBhbmQgYXJjaGl2YWwgaGVhbHRoIG5ld3MgYWJvdXQgQ3Jlc3Rv
ci4iPkNyZXN0b3I8L2E+LiBUaGUgbW9zdCBwb3RlbnQgc3RhdGluIG9uIHRoZSBtYXJrZXQsIENy
ZXN0b3IgaGFzIGJlZW4gY3JpdGljaXplZCBieSBjb25zdW1lciBoZWFsdGggYWR2b2NhdGVzIHdo
byBzYXkgaXQgaXMgbW9yZSBsaWtlbHkgdG8gbGVhZCB0byBtdXNjbGUgZGV0ZXJpb3JhdGlvbiBh
bmQga2lkbmV5IHByb2JsZW1zLjwvcD48cD4gSW4gMjAwNSwgdGhlIDxhIGhyZWY9Imh0dHA6Ly90
b3BpY3Mubnl0aW1lcy5jb20vdG9wL3JlZmVyZW5jZS90aW1lc3RvcGljcy9vcmdhbml6YXRpb25z
L2YvZm9vZF9hbmRfZHJ1Z19hZG1pbmlzdHJhdGlvbi9pbmRleC5odG1sP2lubGluZT1ueXQtb3Jn
IiB0aXRsZT0iTW9yZSBhcnRpY2xlcyBhYm91dCB0aGUgVS5TLiBGb29kIEFuZCBEcnVnIEFkbWlu
aXN0cmF0aW9uLiI+Rm9vZCBhbmQgRHJ1ZyBBZG1pbmlzdHJhdGlvbjwvYT4gcmVqZWN0ZWQgYSBw
ZXRpdGlvbiBieSBQdWJsaWMgQ2l0aXplbiB0byBiYW4gQ3Jlc3Rvciwgc2F5aW5nIGl0cyByaXNr
cyB3ZXJlIG5vdCBzdWJzdGFudGlhbGx5IGRpZmZlcmVudCBmcm9tIHNpbWlsYXIgZHJ1Z3MuIDwv
cD48cD4gSW4gdGhlIEp1cGl0ZXIgc3R1ZHksIGluIHdoaWNoIHBlb3BsZSBnb3QgZWl0aGVyIHJv
c3V2YXN0YXRpbiBvciBhIHBsYWNlYm8sIHRoZXJlIHdhcyBubyBpbmNyZWFzZSBpbiBtdXNjbGUg
b3Iga2lkbmV5IHByb2JsZW1zIGZvciB0aG9zZSB0YWtpbmcgdGhlIHN0YXRpbi4gVGhlcmUgd2Fz
IGEgc21hbGwgaW5jcmVhc2UgaW4gZGlhYmV0ZXMuIDwvcD48ZGl2IGlkPSJwYWdlTGlua3MiPjx1
bCBpZD0icGFnZU51bWJlcnMiPjxsaT4gMSA8L2xpPjxsaT4gPGEgb25jbGljaz0ic19jb2RlX2xp
bmt0cmFjaygnQXJ0aWNsZS1NdWx0aVBhZ2VQYWdlTnVtMicpOyIgdGl0bGU9IlBhZ2UgMiIgaHJl
Zj0iLzIwMDgvMTEvMTAvaGVhbHRoLzEwaGVhcnQuaHRtbD9wYWdld2FudGVkPTImYW1wO19yPTIm
YW1wO3BhcnRuZXI9cnNzbnl0JmFtcDtlbWM9cnNzIj4yPC9hPiA8L2xpPjwvdWw+PGEgY2xhc3M9
Im5leHQiIG9uY2xpY2s9InNfY29kZV9saW5rdHJhY2soJ0FydGljbGUtTXVsdGlQYWdlLU5leHQn
KTsiIHRpdGxlPSJOZXh0IFBhZ2UiIGhyZWY9Ii8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0Lmh0
bWw/cGFnZXdhbnRlZD0yJmFtcDtfcj0yJmFtcDtwYXJ0bmVyPXJzc255dCZhbXA7ZW1jPXJzcyI+
TmV4dCBQYWdlIMK7PC9hPjwvZGl2PjxueXRfdXBkYXRlX2JvdHRvbT4KPC9ueXRfdXBkYXRlX2Jv
dHRvbT4KPC9ueXRfdGV4dD4KPGRpdiBjbGFzcz0ibmV4dEFydGljbGVMaW5rIGNsZWFyZml4Ij4K
PGEgb25jbGljaz0ic19jb2RlX2xpbmt0cmFjaygnQXJ0aWNsZS1Nb3JlQXJ0aWNsZXNCb3R0b20n
KTsiIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvaGVhbHRoL2luZGV4Lmh0bWwi
Pk1vcmUgQXJ0aWNsZXMgaW4gCgkJCQlIZWFsdGggwrs8L2E+CjxzcGFuPkEgdmVyc2lvbiBvZiB0
aGlzIGFydGljbGUgYXBwZWFyZWQgaW4gcHJpbnQgb24gTm92ZW1iZXIgMTAsIDIwMDgsIG9uIHBh
Z2UgQTEgb2YgdGhlIE5ldyBZb3JrIGVkaXRpb24uPC9zcGFuPgkJCQkJCQkJCQkKPC9kaXY+CQkK
PC9kaXY+CjwvZGl2Pgo8IS0tc3RvcnkgZW5kIC0tPgo8ZGl2IGlkPSJhcnRpY2xlRXh0cmFzIj4K
CjxkaXYgaWQ9ImFkeENpcmNCb3R0b20iPjwhLS0gQURYSU5GTyBjbGFzc2lmaWNhdGlvbj0idGV4
dF9hZCIgY2FtcGFpZ249Im55dDIwMDgtY2lyYy1mb290ZXItMzQ4S0YtdGV4dGxpbmstYWxsIi0t
PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vYWR4L2Jpbi9hZHhfY2xpY2suaHRtbD90
eXBlPWdvdG8mYW1wO3BhZ2U9d3d3Lm55dGltZXMuY29tL3lyL21vL2RheS9oZWFsdGgmYW1wO3Bv
cz1Cb3R0b20xJmFtcDtzbjI9NDk1Nzg5N2YvZGExNjRhYjcmYW1wO3NuMT1jMzYzYjY4YS9mZjAy
Y2FmZiZhbXA7Y2FtcD1ueXQyMDA4LWNpcmMtZm9vdGVyLTM0OEtGLXRleHRsaW5rLWFsbCZhbXA7
YWQ9dGV4dGFkX25lZWRfdG9fa25vd19tb3JlJmFtcDtnb3RvPWh0dHBzJTNBJTJGJTJGd3d3JTJF
bnl0aW1lc2F0aG9tZSUyRWNvbSUyRnNwbGl0dGVyJTVGY3AlMkZpbmRleCUyRXBocCUzRlNQVFIl
NUZJRCUzRGhkTllUJTI2TWVkaWFDb2RlJTNEVzE2QUslMjZDTVAlM0QzNDhLRiIgaWQ9ImFkeERl
bGl2ZXJ5IiB0YXJnZXQ9Il9ibGFuayI+TmVlZCB0byBrbm93IG1vcmU/IDUwJSBvZmYgaG9tZSBk
ZWxpdmVyeSBvZiBUaGUgVGltZXMuPC9hPjwvZGl2PgoKCjwhLS1Hb29nbGUgYWRzIHBsYWNlaG9s
ZGVyIC0tPgo8ZGl2IGlkPSJhZHhTcG9uTGluayI+PHRhYmxlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9
IiIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHN0eWxlPSJ3aWR0
aDoxMDAlOyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweDsgYm9yZGVyLWNv
bG9yOiAjOWRhM2FkIj4KPHRib2R5Pjx0cj4KPHRkIHN0eWxlPSJmb250LWZhbWlseTpBcmlhbCxI
ZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjEycHg7IGNvbG9yOiMzMzMzMzM7IiB2YWxp
Z249InRvcCI+PHRhYmxlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGNlbGxzcGFjaW5nPSIw
IiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAwJTsgaGVpZ2h0OjEw
MCU7Ij4KPHRib2R5Pjx0cj4KIDx0ZCBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojOWRhM2FkOyB3
aWR0aDo3MCU7IGhlaWdodDoyMHB4OyBwYWRkaW5nLXRvcDoycHg7IHBhZGRpbmctbGVmdDoxMXB4
OyBwYWRkaW5nLWJvdHRvbToycHg7IGZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNl
cmlmOyBmb250LXNpemU6MTJweDsgY29sb3I6IzMzMzMzMzsiIHdpZHRoPSI3MCUiIGhlaWdodD0i
MjAiIGJnY29sb3I9IiM5ZGEzYWQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGZvbnQt
d2VpZ2h0OiBub3JtYWw7IGNvbG9yOiNmZmZmZmY7Ij5BZHMgYnkgR29vZ2xlPC9zcGFuPjwvdGQ+
Cjx0ZCBzdHlsZT0icGFkZGluZy10b3A6MnB4OyBwYWRkaW5nLWJvdHRvbToycHg7IHdpZHRoOjMw
JTsgaGVpZ2h0OjIwcHg7IGFsaWduOnJpZ2h0OyBiYWNrZ3JvdW5kLWNvbG9yOiM5ZGEzYWQ7IGZv
bnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJweDsgY29s
b3I6IzMzMzMzMzsiIHdpZHRoPSIzMCUiIGhlaWdodD0iMjAiIGFsaWduPSJyaWdodCIgYmdjb2xv
cj0iIzlkYTNhZCI+PHNwYW4+PGEgc3R5bGU9ImZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxz
YW5zLXNlcmlmOyBjb2xvcjogd2hpdGU7IGZvbnQtc2l6ZToxMnB4OyBwYWRkaW5nLXJpZ2h0Ojdw
eDsiIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vcmVmL21lbWJlcmNlbnRlci9mYXEvbGlu
a2luZ3FhMTYuaHRtbCIgb25jbGljaz0id2luZG93Lm9wZW4oJycsJ3BvcHVwYWQnLCdsZWZ0PTEw
MCx0b3A9MTAwLHdpZHRoPTM5MCxoZWlnaHQ9MzkwLHJlc2l6YWJsZSxzY3JvbGxiYXJzPW5vJyki
IHRhcmdldD0icG9wdXBhZCI+d2hhdCdzIHRoaXM/PC9hPjwvc3Bhbj48L3RkPgo8L3RyPgo8L3Ri
b2R5PjwvdGFibGU+CjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIHN0eWxlPSJoZWlnaHQ6MTEwcHg7IGZv
bnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJweDsgY29s
b3I6IzMzMzMzMzsiIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjExMCI+PHRhYmxlIGhlaWdodD0iMTAw
JSIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIw
IiBiZ2NvbG9yPSIjZjhmOGY5IiBzdHlsZT0iaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IHBhZGRp
bmc6NHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjk7Ij4KPHRib2R5Pjx0cj4KPHRkIHN0eWxl
PSJjdXJzb3I6cG9pbnRlcjsgY3Vyc29yOmhhbmQ7IGZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGlj
YSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJweDsgY29sb3I6IzMzMzMzMzsgYmFja2dyb3VuZC1j
b2xvcjojZjhmOGY5OyIgaWQ9InRhdzAiIHZhbGlnbj0ibWlkZGxlIiBvbmZvY3VzPSJzcygnZ28g
dG8gd3d3LkxPVkFaQS5jb20nLCdhdzAnKSIgb25tb3VzZW92ZXI9InNzKCdnbyB0byB3d3cuTE9W
QVpBLmNvbScsJ2F3MCcpIiBvbm1vdXNlb3V0PSJjcygpIiBvbmNsaWNrPSJnYSh0aGlzLGV2ZW50
KSI+PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6MTRweDsgcGFkZGluZy1sZWZ0OjdweDsgcGFkZGlu
Zy1ib3R0b206NXB4OyI+PGEgaWQ9ImF3MCIgaHJlZj0iaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3lu
ZGljYXRpb24uY29tL3BhZ2VhZC9pY2xrP3NhPWwmYW1wO2FpPUI1Q2c1Qk1ZWVNlN1NJb204cVFP
MHFySDhEWm5PeW5YNXlleXRESTJJX2Y4RHNNVTNFQUVZQVNDYzhfZ0JLQU00QUZEUzJxXzhCMkRK
NXY2R3lLT2dHYklCRDNkM2R5NXVlWFJwYldWekxtTnZiY2dCQWRvQk5XaDBkSEE2THk5M2QzY3Vi
bmwwYVcxbGN5NWpiMjB2TWpBd09DOHhNUzh4TUM5b1pXRnNkR2d2TVRCb1pXRnlkQzVvZEcxc3lB
S2x2T1lIcUFNQjZBTXQ2QU92Qk9nRHVBUG9BNk1EOVFNQUJBQUE5UU1rQUFBQW1BUUEmYW1wO251
bT0xJmFtcDthZHVybD1odHRwOi8vbmEubGluay5kZWNkbmEubmV0L24vNTQ4MjUvNjAwNTgvd3d3
LmxvdmF6YS5jb20vampscXE0JTNCMTElM0I0JTNCJTNCOCUzQjdoOWElM0I5eHloZWglM0IxNXB6
OGYlM0IlM0I3OGthNiUzQiUzQjElM0IvaS9jJTNGMCUyNnBxJTNEJTI1MmYlMjYyNDdjciUzRDMy
MTk2NjY2NjkmYW1wO2NsaWVudD1jYS1ueXRpbWVzX2FydGljbGVfdmFyIiB0YXJnZXQ9Il9ibGFu
ayIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4OyBjb2xvcjojMDAwMDY2OyBmb250LXdlaWdodDpib2xk
OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyIgb25mb2N1cz0ic3MoJ2dvIHRvIHd3dy5MT1ZB
WkEuY29tJywnYXcwJykiIG9uY2xpY2s9ImhhKCdhdzAnKSIgb25tb3VzZW92ZXI9InJldHVybiBz
cygnZ28gdG8gd3d3LkxPVkFaQS5jb20nLCdhdzAnKSIgb25tb3VzZW91dD0iY3MoKSI+TG93ZXIg
WW91ciBUcmlnbHljZXJpZGVzPC9hPjxicj4KPGEgaHJlZj0iaHR0cDovL3BhZ2VhZDIuZ29vZ2xl
c3luZGljYXRpb24uY29tL3BhZ2VhZC9pY2xrP3NhPWwmYW1wO2FpPUI1Q2c1Qk1ZWVNlN1NJb204
cVFPMHFySDhEWm5PeW5YNXlleXRESTJJX2Y4RHNNVTNFQUVZQVNDYzhfZ0JLQU00QUZEUzJxXzhC
MkRKNXY2R3lLT2dHYklCRDNkM2R5NXVlWFJwYldWekxtTnZiY2dCQWRvQk5XaDBkSEE2THk5M2Qz
Y3VibmwwYVcxbGN5NWpiMjB2TWpBd09DOHhNUzh4TUM5b1pXRnNkR2d2TVRCb1pXRnlkQzVvZEcx
c3lBS2x2T1lIcUFNQjZBTXQ2QU92Qk9nRHVBUG9BNk1EOVFNQUJBQUE5UU1rQUFBQW1BUUEmYW1w
O251bT0xJmFtcDthZHVybD1odHRwOi8vbmEubGluay5kZWNkbmEubmV0L24vNTQ4MjUvNjAwNTgv
d3d3LmxvdmF6YS5jb20vampscXE0JTNCMTElM0I0JTNCJTNCOCUzQjdoOWElM0I5eHloZWglM0Ix
NXB6OGYlM0IlM0I3OGthNiUzQiUzQjElM0IvaS9jJTNGMCUyNnBxJTNEJTI1MmYlMjYyNDdjciUz
RDMyMTk2NjY2NjkmYW1wO2NsaWVudD1jYS1ueXRpbWVzX2FydGljbGVfdmFyIiB0YXJnZXQ9Il9i
bGFuayIgc3R5bGU9ImZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250
LXNpemU6MTFweDtjb2xvcjojMzMzMzMzO3RleHQtZGVjb3JhdGlvbjpub25lOyI+R2V0IFRpcHMg
b24gSG93IHRvIExvd2VyIFlvdXIgVHJpZ2x5Y2VyaWRlIExldmVscy4gTGVhcm4gTW9yZS48L2E+
PGJyPgo8YSBocmVmPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFk
L2ljbGs/c2E9bCZhbXA7YWk9QjVDZzVCTVlZU2U3U0lvbThxUU8wcXJIOERabk95blg1eWV5dERJ
MklfZjhEc01VM0VBRVlBU0NjOF9nQktBTTRBRkRTMnFfOEIyREo1djZHeUtPZ0diSUJEM2QzZHk1
dWVYUnBiV1Z6TG1OdmJjZ0JBZG9CTldoMGRIQTZMeTkzZDNjdWJubDBhVzFsY3k1amIyMHZNakF3
T0M4eE1TOHhNQzlvWldGc2RHZ3ZNVEJvWldGeWRDNW9kRzFzeUFLbHZPWUhxQU1CNkFNdDZBT3ZC
T2dEdUFQb0E2TUQ5UU1BQkFBQTlRTWtBQUFBbUFRQSZhbXA7bnVtPTEmYW1wO2FkdXJsPWh0dHA6
Ly9uYS5saW5rLmRlY2RuYS5uZXQvbi81NDgyNS82MDA1OC93d3cubG92YXphLmNvbS9qamxxcTQl
M0IxMSUzQjQlM0IlM0I4JTNCN2g5YSUzQjl4eWhlaCUzQjE1cHo4ZiUzQiUzQjc4a2E2JTNCJTNC
MSUzQi9pL2MlM0YwJTI2cHElM0QlMjUyZiUyNjI0N2NyJTNEMzIxOTY2NjY2OSZhbXA7Y2xpZW50
PWNhLW55dGltZXNfYXJ0aWNsZV92YXIiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZm9udC1zaXpl
OjEwcHg7IGNvbG9yOiMwMDAwNjY7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1kZWNvcmF0aW9u
Om5vbmU7Ij53d3cuTE9WQVpBLmNvbTwvYT48L2Rpdj4KPC90ZD4KPC90cj4KPHRyPgo8dGQgc3R5
bGU9ImN1cnNvcjpwb2ludGVyOyBjdXJzb3I6aGFuZDsgZm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0
aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjojMzMzMzMzOyBiYWNrZ3JvdW5k
LWNvbG9yOiNmOGY4Zjk7IiBpZD0idGF3MSIgdmFsaWduPSJtaWRkbGUiIG9uZm9jdXM9InNzKCdn
byB0byBBbm5zV2VpZ2h0TG9zcy5jb20nLCdhdzEnKSIgb25tb3VzZW92ZXI9InNzKCdnbyB0byBB
bm5zV2VpZ2h0TG9zcy5jb20nLCdhdzEnKSIgb25tb3VzZW91dD0iY3MoKSIgb25jbGljaz0iZ2Eo
dGhpcyxldmVudCkiPjxkaXYgc3R5bGU9ImxpbmUtaGVpZ2h0OjE0cHg7IHBhZGRpbmctbGVmdDo3
cHg7IHBhZGRpbmctYm90dG9tOjVweDsiPjxhIGlkPSJhdzEiIGhyZWY9Imh0dHA6Ly9wYWdlYWQy
Lmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvaWNsaz9zYT1sJmFtcDthaT1CUndEaEJNWVlT
ZTdTSW9tOHFRTzBxckg4RFpUbnVJMEJzSWFTcHduQWpiY0JrTlluRUFJWUFpQ2M4X2dCS0FNNEFG
QzFnSm40QkdESjV2Nkd5S09nR2FBQjJ1WGVfQU95QVE5M2QzY3VibmwwYVcxbGN5NWpiMjNJQVFI
YUFUVm9kSFJ3T2k4dmQzZDNMbTU1ZEdsdFpYTXVZMjl0THpJd01EZ3ZNVEV2TVRBdmFHVmhiSFJv
THpFd2FHVmhjblF1YUhSdGJJQUNBYWdEQWVnRExlZ0Ryd1RvQTdnRDZBT2pBX1VEQUFRQUFQVURK
QUFBQUpnRUFBJmFtcDtudW09MiZhbXA7YWR1cmw9aHR0cDovL3d3dy5hbm5zd2VpZ2h0bG9zcy5j
b20vJTNGdDIwMmlkJTNENTEwNDElMjZ0MjAya3clM0RoZWFsdGglMjUyMGNob2xlc3Rlcm9sJmFt
cDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJm
b250LXNpemU6MTJweDsgY29sb3I6IzAwMDA2NjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNv
cmF0aW9uOnVuZGVybGluZTsiIG9uZm9jdXM9InNzKCdnbyB0byBBbm5zV2VpZ2h0TG9zcy5jb20n
LCdhdzEnKSIgb25jbGljaz0iaGEoJ2F3MScpIiBvbm1vdXNlb3Zlcj0icmV0dXJuIHNzKCdnbyB0
byBBbm5zV2VpZ2h0TG9zcy5jb20nLCdhdzEnKSIgb25tb3VzZW91dD0iY3MoKSI+MiBSdWxlcyBm
b3IgU3RvbWFjaCBGYXQ8L2E+PGJyPgo8YSBocmVmPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5k
aWNhdGlvbi5jb20vcGFnZWFkL2ljbGs/c2E9bCZhbXA7YWk9QlJ3RGhCTVlZU2U3U0lvbThxUU8w
cXJIOERaVG51STBCc0lhU3B3bkFqYmNCa05ZbkVBSVlBaUNjOF9nQktBTTRBRkMxZ0puNEJHREo1
djZHeUtPZ0dhQUIydVhlX0FPeUFROTNkM2N1Ym5sMGFXMWxjeTVqYjIzSUFRSGFBVFZvZEhSd09p
OHZkM2QzTG01NWRHbHRaWE11WTI5dEx6SXdNRGd2TVRFdk1UQXZhR1ZoYkhSb0x6RXdhR1ZoY25R
dWFIUnRiSUFDQWFnREFlZ0RMZWdEcndUb0E3Z0Q2QU9qQV9VREFBUUFBUFVESkFBQUFKZ0VBQSZh
bXA7bnVtPTImYW1wO2FkdXJsPWh0dHA6Ly93d3cuYW5uc3dlaWdodGxvc3MuY29tLyUzRnQyMDJp
ZCUzRDUxMDQxJTI2dDIwMmt3JTNEaGVhbHRoJTI1MjBjaG9sZXN0ZXJvbCZhbXA7Y2xpZW50PWNh
LW55dGltZXNfYXJ0aWNsZV92YXIiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZm9udC1mYW1pbHk6
QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMXB4O2NvbG9yOiMzMzMzMzM7
dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij5PYmV5IHRoZXNlIDIgRWFzeSBSdWxlcyAmYW1wOyBEcm9w
IDkgbGJzIGV2ZXJ5IDExIERheXMgRWZmb3J0bGVzczwvYT48YnI+CjxhIGhyZWY9Imh0dHA6Ly9w
YWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvaWNsaz9zYT1sJmFtcDthaT1CUndE
aEJNWVlTZTdTSW9tOHFRTzBxckg4RFpUbnVJMEJzSWFTcHduQWpiY0JrTlluRUFJWUFpQ2M4X2dC
S0FNNEFGQzFnSm40QkdESjV2Nkd5S09nR2FBQjJ1WGVfQU95QVE5M2QzY3VibmwwYVcxbGN5NWpi
MjNJQVFIYUFUVm9kSFJ3T2k4dmQzZDNMbTU1ZEdsdFpYTXVZMjl0THpJd01EZ3ZNVEV2TVRBdmFH
VmhiSFJvTHpFd2FHVmhjblF1YUhSdGJJQUNBYWdEQWVnRExlZ0Ryd1RvQTdnRDZBT2pBX1VEQUFR
QUFQVURKQUFBQUpnRUFBJmFtcDtudW09MiZhbXA7YWR1cmw9aHR0cDovL3d3dy5hbm5zd2VpZ2h0
bG9zcy5jb20vJTNGdDIwMmlkJTNENTEwNDElMjZ0MjAya3clM0RoZWFsdGglMjUyMGNob2xlc3Rl
cm9sJmFtcDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciIgdGFyZ2V0PSJfYmxhbmsiIHN0
eWxlPSJmb250LXNpemU6MTBweDsgY29sb3I6IzAwMDA2NjsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0
ZXh0LWRlY29yYXRpb246bm9uZTsiPkFubnNXZWlnaHRMb3NzLmNvbTwvYT48L2Rpdj4KPC90ZD4K
PC90cj4KPHRyPgo8dGQgc3R5bGU9ImN1cnNvcjpwb2ludGVyOyBjdXJzb3I6aGFuZDsgZm9udC1m
YW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjoj
MzMzMzMzOyBiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjk7IiBpZD0idGF3MiIgdmFsaWduPSJtaWRk
bGUiIG9uZm9jdXM9InNzKCdnbyB0byB3d3cuZG91Z2xhc3NyZXBvcnQuY29tL2Nob2xlc3Rlcm9s
JywnYXcyJykiIG9ubW91c2VvdmVyPSJzcygnZ28gdG8gd3d3LmRvdWdsYXNzcmVwb3J0LmNvbS9j
aG9sZXN0ZXJvbCcsJ2F3MicpIiBvbm1vdXNlb3V0PSJjcygpIiBvbmNsaWNrPSJnYSh0aGlzLGV2
ZW50KSI+PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6MTRweDsgcGFkZGluZy1sZWZ0OjdweDsgcGFk
ZGluZy1ib3R0b206NXB4OyI+PGEgaWQ9ImF3MiIgaHJlZj0iaHR0cDovL3BhZ2VhZDIuZ29vZ2xl
c3luZGljYXRpb24uY29tL3BhZ2VhZC9pY2xrP3NhPWwmYW1wO2FpPUJVNTk1Qk1ZWVNlN1NJb204
cVFPMHFySDhEWXVrcjNTUnM1amhCTUNOdHdHdzJ3WVFBeGdESUp6ei1BRW9BemdBVU83aC1tQmd5
ZWItaHNpam9CbWdBY3V2cVA0RHNnRVBkM2QzTG01NWRHbHRaWE11WTI5dHlBRUIyZ0UxYUhSMGNE
b3ZMM2QzZHk1dWVYUnBiV1Z6TG1OdmJTOHlNREE0THpFeEx6RXdMMmhsWVd4MGFDOHhNR2hsWVhK
MExtaDBiV3lBQWdISUF1bW43d1NvQXdIb0F5M29BNjhFNkFPNEEtZ0Rvd1AxQXdBRUFBRDFBeVFB
QUFDWUJBQSZhbXA7bnVtPTMmYW1wO2dnbGFkZ3JwPTE3NzU5NjcwMTY4Nzc1NTgxMjUwJmFtcDtn
Z2xjcmVhdD03MTAyNzMzMzQxMjE1OTczMzQ4JmFtcDthZHVybD1odHRwOi8vd3d3LmRvdWdsYXNz
cmVwb3J0LmNvbS9yZXBvcnRzL2xfY2hvbGVzdGVyb2xfZnJlZV9yZXBvcnQuaHRtbCZhbXA7Y2xp
ZW50PWNhLW55dGltZXNfYXJ0aWNsZV92YXIiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZm9udC1z
aXplOjEycHg7IGNvbG9yOiMwMDAwNjY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlv
bjp1bmRlcmxpbmU7IiBvbmZvY3VzPSJzcygnZ28gdG8gd3d3LmRvdWdsYXNzcmVwb3J0LmNvbS9j
aG9sZXN0ZXJvbCcsJ2F3MicpIiBvbmNsaWNrPSJoYSgnYXcyJykiIG9ubW91c2VvdmVyPSJyZXR1
cm4gc3MoJ2dvIHRvIHd3dy5kb3VnbGFzc3JlcG9ydC5jb20vY2hvbGVzdGVyb2wnLCdhdzInKSIg
b25tb3VzZW91dD0iY3MoKSI+VGhlIEJpZyBDaG9sZXN0ZXJvbCBNeXRoPC9hPjxicj4KPGEgaHJl
Zj0iaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9pY2xrP3NhPWwm
YW1wO2FpPUJVNTk1Qk1ZWVNlN1NJb204cVFPMHFySDhEWXVrcjNTUnM1amhCTUNOdHdHdzJ3WVFB
eGdESUp6ei1BRW9BemdBVU83aC1tQmd5ZWItaHNpam9CbWdBY3V2cVA0RHNnRVBkM2QzTG01NWRH
bHRaWE11WTI5dHlBRUIyZ0UxYUhSMGNEb3ZMM2QzZHk1dWVYUnBiV1Z6TG1OdmJTOHlNREE0THpF
eEx6RXdMMmhsWVd4MGFDOHhNR2hsWVhKMExtaDBiV3lBQWdISUF1bW43d1NvQXdIb0F5M29BNjhF
NkFPNEEtZ0Rvd1AxQXdBRUFBRDFBeVFBQUFDWUJBQSZhbXA7bnVtPTMmYW1wO2dnbGFkZ3JwPTE3
NzU5NjcwMTY4Nzc1NTgxMjUwJmFtcDtnZ2xjcmVhdD03MTAyNzMzMzQxMjE1OTczMzQ4JmFtcDth
ZHVybD1odHRwOi8vd3d3LmRvdWdsYXNzcmVwb3J0LmNvbS9yZXBvcnRzL2xfY2hvbGVzdGVyb2xf
ZnJlZV9yZXBvcnQuaHRtbCZhbXA7Y2xpZW50PWNhLW55dGltZXNfYXJ0aWNsZV92YXIiIHRhcmdl
dD0iX2JsYW5rIiBzdHlsZT0iZm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7
IGZvbnQtc2l6ZToxMXB4O2NvbG9yOiMzMzMzMzM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij5SZWNl
bnQgU3R1ZGllcyBDb25maXJtIFdoYXQgVGhpcyBEb2N0b3IgSGFzIEJlZW4gU2F5aW5nIGZvciBZ
ZWFycy48L2E+PGJyPgo8YSBocmVmPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5j
b20vcGFnZWFkL2ljbGs/c2E9bCZhbXA7YWk9QlU1OTVCTVlZU2U3U0lvbThxUU8wcXJIOERZdWty
M1NSczVqaEJNQ050d0d3MndZUUF4Z0RJSnp6LUFFb0F6Z0FVTzdoLW1CZ3llYi1oc2lqb0JtZ0Fj
dXZxUDREc2dFUGQzZDNMbTU1ZEdsdFpYTXVZMjl0eUFFQjJnRTFhSFIwY0RvdkwzZDNkeTV1ZVhS
cGJXVnpMbU52YlM4eU1EQTRMekV4THpFd0wyaGxZV3gwYUM4eE1HaGxZWEowTG1oMGJXeUFBZ0hJ
QXVtbjd3U29Bd0hvQXkzb0E2OEU2QU80QS1nRG93UDFBd0FFQUFEMUF5UUFBQUNZQkFBJmFtcDtu
dW09MyZhbXA7Z2dsYWRncnA9MTc3NTk2NzAxNjg3NzU1ODEyNTAmYW1wO2dnbGNyZWF0PTcxMDI3
MzMzNDEyMTU5NzMzNDgmYW1wO2FkdXJsPWh0dHA6Ly93d3cuZG91Z2xhc3NyZXBvcnQuY29tL3Jl
cG9ydHMvbF9jaG9sZXN0ZXJvbF9mcmVlX3JlcG9ydC5odG1sJmFtcDtjbGllbnQ9Y2Etbnl0aW1l
c19hcnRpY2xlX3ZhciIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJmb250LXNpemU6MTBweDsgY29s
b3I6IzAwMDA2NjsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWRlY29yYXRpb246bm9uZTsiPnd3
dy5kb3VnbGFzc3JlcG9ydC5jb20vY2hvbGVzdGVyb2w8L2E+PC9kaXY+CjwvdGQ+CjwvdHI+Cjwv
dGJvZHk+PC90YWJsZT4KPC90ZD4KPC90cj4KPC90Ym9keT48L3RhYmxlPjwvZGl2PgoKPGRpdiBp
ZD0icmVsYXRlZEFydGljbGVzIiBjbGFzcz0ibGlzdCI+PGgzPlBhc3QgQ292ZXJhZ2U8L2gzPjx1
bD48bGk+PHNwYW4gY2xhc3M9ImhlYWRsaW5lV3JhcHBlciI+PGEgb25jbGljaz0ic19jb2RlX2xp
bmt0cmFjaygnQXJ0aWNsZS1SZWxhdGVkQXJ0aWNsZXMtc2VhcmNoRnJlZScpOyIgaHJlZj0iaHR0
cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzA5LzAyL2J1c2luZXNzLzAydnl0b3Jpbi5odG1sP2Z0
YT15Ij5USEUgRVZJREVOQ0UgR0FQOyBGb3IgV2lkZWx5IFVzZWQgRHJ1ZywgUXVlc3Rpb24gT2Yg
VXNlZnVsbmVzcyBJcyBTdGlsbCBMaW5nZXJpbmc8L2E+PC9zcGFuPsKgKFNlcHRlbWJlciAyLCAy
MDA4KTwvbGk+PGxpPjxzcGFuIGNsYXNzPSJoZWFkbGluZVdyYXBwZXIiPjxhIG9uY2xpY2s9InNf
Y29kZV9saW5rdHJhY2soJ0FydGljbGUtUmVsYXRlZEFydGljbGVzLXNlYXJjaEZyZWUnKTsiIGhy
ZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8wNy8yNi9idXNpbmVzcy8yNmtpZG1lZC5o
dG1sP2Z0YT15Ij5XZWlnaHQgRHJpdmVzIHRoZSBZb3VuZyB0byBBZHVsdCBQaWxscywgRGF0YSBT
YXlzPC9hPjwvc3Bhbj7CoChKdWx5IDI2LCAyMDA4KTwvbGk+PGxpPjxzcGFuIGNsYXNzPSJoZWFk
bGluZVdyYXBwZXIiPjxhIG9uY2xpY2s9InNfY29kZV9saW5rdHJhY2soJ0FydGljbGUtUmVsYXRl
ZEFydGljbGVzLXNlYXJjaEZyZWUnKTsiIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAw
OC8wNy8wOC9oZWFsdGgvMDh3ZWxsLmh0bWw/ZnRhPXkiPldFTEw7IDgtWWVhci1PbGRzIG9uIFN0
YXRpbnM/IEEgTmV3IFBsYW4gUXVpY2tseSBCaXRlcyBCYWNrPC9hPjwvc3Bhbj7CoChKdWx5IDgs
IDIwMDgpPC9saT48bGk+PHNwYW4gY2xhc3M9ImhlYWRsaW5lV3JhcHBlciI+PGEgb25jbGljaz0i
c19jb2RlX2xpbmt0cmFjaygnQXJ0aWNsZS1SZWxhdGVkQXJ0aWNsZXMtc2VhcmNoRnJlZScpOyIg
aHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzA0LzAxL2J1c2luZXNzLzAxZHJ1Zy5o
dG1sP2Z0YT15Ij5BY2N1c2F0aW9ucyBPZiBEZWxheXMgSW4gUmVsZWFzaW5nIERydWcgUmVzdWx0
czwvYT48L3NwYW4+wqAoQXByaWwgMSwgMjAwOCk8L2xpPjwvdWw+PC9kaXY+CjwhLS1yZWxhdGVk
IGJsb2dzIHByb21vIC0tPgo8IS0tcmVsYXRlZCBibG9ncyBwcm9tbyBlbmQgLS0+Cgo8ZGl2IGlk
PSJyZWxhdGVkVG9waWNzIj4KPGgzPlJlbGF0ZWQgU2VhcmNoZXM8L2gzPgo8Zm9ybSBhY3Rpb249
Ii9tZW0vdG50Lmh0bWwiIG1ldGhvZD0iR0VUIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1m
b3JtLXVybGVuY29kZWQiPgo8dWw+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJldEEiIHZh
bHVlPSJodHRwOi8vd3d3Lm55dGltZXMuY29tMjAwOC8xMS8xMC9oZWFsdGgvMTBoZWFydC5odG1s
Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmV0VCIgdmFsdWU9IkNob2xlc3Rlcm9sLUZp
Z2h0aW5nIERydWdzIFNob3cgV2lkZXIgQmVuZWZpdCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h
bWU9Im1vZHVsZSIgdmFsdWU9ImNhbGwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhbGVy
dF9jb250ZXh0IiB2YWx1ZT0iMSI+CSAgICAKPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idG9w
aWMxIiB2YWx1ZT0iU3RhdGlucyAoQ2hvbGVzdGVyb2wtTG93ZXJpbmcgRHJ1Z3MpIj4KPGlucHV0
IHR5cGU9ImhpZGRlbiIgbmFtZT0idG9waWNfZmllbGQxIiB2YWx1ZT0ibWRlcyI+CQkJCQkKPGxp
Pgo8c3Bhbj48YSBocmVmPSJodHRwOi8vcXVlcnkubnl0aW1lcy5jb20vc2VhcmNoL3F1ZXJ5P3Bw
ZHM9ZGVzJmFtcDt2MT1TVEFUSU5TKyUyOENIT0xFU1RFUk9MLUxPV0VSSU5HK0RSVUdTJTI5JmFt
cDtmZHE9MTk5NjAxMDEmYW1wO3RkPXN5c2RhdGUmYW1wO3NvcnQ9bmV3ZXN0JmFtcDthYz1TVEFU
SU5TKyUyOENIT0xFU1RFUk9MLUxPV0VSSU5HK0RSVUdTJTI5JmFtcDtydD0xJTJDZGVzJTJDb3Jn
JTJDcGVyJTJDZ2VvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OnNfY29kZV9saW5rdHJhY2soJ0FydGlj
bGUtUmVsYXRlZFRvcGljcycpOyI+U3RhdGlucyAoQ2hvbGVzdGVyb2wtTG93ZXJpbmcgRHJ1Z3Mp
PC9hPjwvc3Bhbj4KPHNwYW4gY2xhc3M9ImFsZXJ0Ij4KPGEgaHJlZj0iaHR0cDovL3NlbGVjdC5u
eXRpbWVzLmNvbS9tZW0vdG50Lmh0bWw/bW9kdWxlPWNhbGwmYW1wO2FsZXJ0X2NvbnRleHQ9MSZh
bXA7dG9waWMxPVNUQVRJTlMrJTI4Q0hPTEVTVEVST0wtTE9XRVJJTkcrRFJVR1MlMjkmYW1wO3Rv
cGljX2ZpZWxkMT1kZXMmYW1wO3RvcGljMV9jaGVjaz15JmFtcDtyZXRBPSZhbXA7cmV0VD0mYW1w
O2Nza2V5PSIgb25jbGljaz0iamF2YXNjcmlwdDpzX2NvZGVfbGlua3RyYWNrKCdBcnRpY2xlLVJl
bGF0ZWRUb3BpY3MnKTsgZGNzTXVsdGlUcmFjaygnRENTLmRjc3NpcCcsJ3d3dy5ueXRpbWVzLmNv
bScsJ0RDUy5kY3N1cmknLCcvbmV3c3RyYWNrZXIvYWRkLmh0bWwnLCdXVC50aScsJ05ld3N0cmFj
a2VyIEFkZCcsJ1dULnpfbnRhJywnQWRkJywnV1QucGVycycsJ1BlcicsJ1dULnpfZGNzbScsJzEn
KTsiPgpHZXQgRS1NYWlsIEFsZXJ0czwvYT4KPC9zcGFuPgo8L2xpPgo8aW5wdXQgdHlwZT0iaGlk
ZGVuIiBuYW1lPSJ0b3BpYzIiIHZhbHVlPSJDaG9sZXN0ZXJvbCI+CjxpbnB1dCB0eXBlPSJoaWRk
ZW4iIG5hbWU9InRvcGljX2ZpZWxkMiIgdmFsdWU9ImRlcyI+CQkJCQkKPGxpPgo8c3Bhbj48YSBo
cmVmPSJodHRwOi8vcXVlcnkubnl0aW1lcy5jb20vc2VhcmNoL3F1ZXJ5P3BwZHM9ZGVzJmFtcDt2
MT1DSE9MRVNURVJPTCZhbXA7ZmRxPTE5OTYwMTAxJmFtcDt0ZD1zeXNkYXRlJmFtcDtzb3J0PW5l
d2VzdCZhbXA7YWM9Q0hPTEVTVEVST0wmYW1wO3J0PTElMkNkZXMlMkNvcmclMkNwZXIlMkNnZW8i
IG9uY2xpY2s9ImphdmFzY3JpcHQ6c19jb2RlX2xpbmt0cmFjaygnQXJ0aWNsZS1SZWxhdGVkVG9w
aWNzJyk7Ij5DaG9sZXN0ZXJvbDwvYT48L3NwYW4+CjxzcGFuIGNsYXNzPSJhbGVydCI+CjxhIGhy
ZWY9Imh0dHA6Ly9zZWxlY3Qubnl0aW1lcy5jb20vbWVtL3RudC5odG1sP21vZHVsZT1jYWxsJmFt
cDthbGVydF9jb250ZXh0PTEmYW1wO3RvcGljMT1DSE9MRVNURVJPTCZhbXA7dG9waWNfZmllbGQx
PWRlcyZhbXA7dG9waWMxX2NoZWNrPXkmYW1wO3JldEE9JmFtcDtyZXRUPSZhbXA7Y3NrZXk9IiBv
bmNsaWNrPSJqYXZhc2NyaXB0OnNfY29kZV9saW5rdHJhY2soJ0FydGljbGUtUmVsYXRlZFRvcGlj
cycpOyBkY3NNdWx0aVRyYWNrKCdEQ1MuZGNzc2lwJywnd3d3Lm55dGltZXMuY29tJywnRENTLmRj
c3VyaScsJy9uZXdzdHJhY2tlci9hZGQuaHRtbCcsJ1dULnRpJywnTmV3c3RyYWNrZXIgQWRkJywn
V1Quel9udGEnLCdBZGQnLCdXVC5wZXJzJywnUGVyJywnV1Quel9kY3NtJywnMScpOyI+CkdldCBF
LU1haWwgQWxlcnRzPC9hPgo8L3NwYW4+CjwvbGk+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9
InRvcGljMyIgdmFsdWU9IkhlYXJ0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idG9waWNf
ZmllbGQzIiB2YWx1ZT0iZGVzIj4JCQkJCQo8bGk+CjxzcGFuPjxhIGhyZWY9Imh0dHA6Ly9xdWVy
eS5ueXRpbWVzLmNvbS9zZWFyY2gvcXVlcnk/cHBkcz1kZXMmYW1wO3YxPUhFQVJUJmFtcDtmZHE9
MTk5NjAxMDEmYW1wO3RkPXN5c2RhdGUmYW1wO3NvcnQ9bmV3ZXN0JmFtcDthYz1IRUFSVCZhbXA7
cnQ9MSUyQ2RlcyUyQ29yZyUyQ3BlciUyQ2dlbyIgb25jbGljaz0iamF2YXNjcmlwdDpzX2NvZGVf
bGlua3RyYWNrKCdBcnRpY2xlLVJlbGF0ZWRUb3BpY3MnKTsiPkhlYXJ0PC9hPjwvc3Bhbj4KPHNw
YW4gY2xhc3M9ImFsZXJ0Ij4KPGEgaHJlZj0iaHR0cDovL3NlbGVjdC5ueXRpbWVzLmNvbS9tZW0v
dG50Lmh0bWw/bW9kdWxlPWNhbGwmYW1wO2FsZXJ0X2NvbnRleHQ9MSZhbXA7dG9waWMxPUhFQVJU
JmFtcDt0b3BpY19maWVsZDE9ZGVzJmFtcDt0b3BpYzFfY2hlY2s9eSZhbXA7cmV0QT0mYW1wO3Jl
dFQ9JmFtcDtjc2tleT0iIG9uY2xpY2s9ImphdmFzY3JpcHQ6c19jb2RlX2xpbmt0cmFjaygnQXJ0
aWNsZS1SZWxhdGVkVG9waWNzJyk7IGRjc011bHRpVHJhY2soJ0RDUy5kY3NzaXAnLCd3d3cubnl0
aW1lcy5jb20nLCdEQ1MuZGNzdXJpJywnL25ld3N0cmFja2VyL2FkZC5odG1sJywnV1QudGknLCdO
ZXdzdHJhY2tlciBBZGQnLCdXVC56X250YScsJ0FkZCcsJ1dULnBlcnMnLCdQZXInLCdXVC56X2Rj
c20nLCcxJyk7Ij4KR2V0IEUtTWFpbCBBbGVydHM8L2E+Cjwvc3Bhbj4KPC9saT4KPGlucHV0IHR5
cGU9ImhpZGRlbiIgbmFtZT0idG9waWM0IiB2YWx1ZT0iU3Ryb2tlIj4KPGlucHV0IHR5cGU9Imhp
ZGRlbiIgbmFtZT0idG9waWNfZmllbGQ0IiB2YWx1ZT0ibWRlcyI+CQkJCQkKPGxpPgo8c3Bhbj48
YSBocmVmPSJodHRwOi8vcXVlcnkubnl0aW1lcy5jb20vc2VhcmNoL3F1ZXJ5P3BwZHM9ZGVzJmFt
cDt2MT1TVFJPS0UmYW1wO2ZkcT0xOTk2MDEwMSZhbXA7dGQ9c3lzZGF0ZSZhbXA7c29ydD1uZXdl
c3QmYW1wO2FjPVNUUk9LRSZhbXA7cnQ9MSUyQ2RlcyUyQ29yZyUyQ3BlciUyQ2dlbyIgb25jbGlj
az0iamF2YXNjcmlwdDpzX2NvZGVfbGlua3RyYWNrKCdBcnRpY2xlLVJlbGF0ZWRUb3BpY3MnKTsi
PlN0cm9rZTwvYT48L3NwYW4+CjxzcGFuIGNsYXNzPSJhbGVydCI+CjxhIGhyZWY9Imh0dHA6Ly9z
ZWxlY3Qubnl0aW1lcy5jb20vbWVtL3RudC5odG1sP21vZHVsZT1jYWxsJmFtcDthbGVydF9jb250
ZXh0PTEmYW1wO3RvcGljMT1TVFJPS0UmYW1wO3RvcGljX2ZpZWxkMT1kZXMmYW1wO3RvcGljMV9j
aGVjaz15JmFtcDtyZXRBPSZhbXA7cmV0VD0mYW1wO2Nza2V5PSIgb25jbGljaz0iamF2YXNjcmlw
dDpzX2NvZGVfbGlua3RyYWNrKCdBcnRpY2xlLVJlbGF0ZWRUb3BpY3MnKTsgZGNzTXVsdGlUcmFj
aygnRENTLmRjc3NpcCcsJ3d3dy5ueXRpbWVzLmNvbScsJ0RDUy5kY3N1cmknLCcvbmV3c3RyYWNr
ZXIvYWRkLmh0bWwnLCdXVC50aScsJ05ld3N0cmFja2VyIEFkZCcsJ1dULnpfbnRhJywnQWRkJywn
V1QucGVycycsJ1BlcicsJ1dULnpfZGNzbScsJzEnKTsiPgpHZXQgRS1NYWlsIEFsZXJ0czwvYT4K
PC9zcGFuPgo8L2xpPgo8L3VsPgo8L2Zvcm0+CjwvZGl2PgoKPC9kaXY+CjxkaXYgY2xhc3M9ImNs
ZWFyIj48L2Rpdj4KPC9kaXY+CjxkaXYgaWQ9ImJDb2x1bW4iPgo8ZGl2IGNsYXNzPSJjb2x1bW5H
cm91cCI+Cgo8ZGl2IGNsYXNzPSJyZWxhdGVkU3RvcmllcyB3ZWxsIj4KPGgzIGNsYXNzPSJzZWN0
aW9uSGVhZGVyIj48YSBocmVmPSJodHRwOi8vd2VsbC5ibG9ncy5ueXRpbWVzLmNvbS8iIGFsdD0i
V2VsbCIgdGl0bGU9IldlbGwiPldlbGw8L2E+PC9oMz4KPGRpdiBjbGFzcz0ic3RvcnkiPgo8aDU+
PGEgaHJlZj0iaHR0cDovL3dlbGwuYmxvZ3Mubnl0aW1lcy5jb20vMjAwOC8xMS8xMC9hcmUtc2No
b29scy1yZWFsbHktdG8tYmxhbWUtZm9yLXBvb3ItZWF0aW5nLyIgdGFyZ2V0PSJfYmxhbmsiPkFy
ZSBTY2hvb2xzIFJlYWxseSB0byBCbGFtZSBmb3IgUG9vciBFYXRpbmc/PC9hPjwvaDU+CjxwIGNs
YXNzPSJkYXRlIj5Ob3ZlbWJlciAxMCwgMjAwOCwgPHNwYW4gY2xhc3M9InRpbWVzdGFtcCI+IDI6
MTcgUE08L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3RvcnkiPgo8aDU+PGEgaHJlZj0i
aHR0cDovL3dlbGwuYmxvZ3Mubnl0aW1lcy5jb20vMjAwOC8xMS8xMC9uby1yZXNwZWN0LWZvci1z
cGVlZC1saW1pdHMvIiB0YXJnZXQ9Il9ibGFuayI+Tm8gUmVzcGVjdCBmb3IgU3BlZWQgTGltaXRz
PC9hPjwvaDU+CjxwIGNsYXNzPSJkYXRlIj5Ob3ZlbWJlciAxMCwgMjAwOCwgPHNwYW4gY2xhc3M9
InRpbWVzdGFtcCI+MTA6NDAgQU08L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3Rvcnki
Pgo8aDU+PGEgaHJlZj0iaHR0cDovL3dlbGwuYmxvZ3Mubnl0aW1lcy5jb20vMjAwOC8xMS8wNy9h
bGxlcmdpZXMtYW5kLXRoZS1maXJzdC1kb2cvIiB0YXJnZXQ9Il9ibGFuayI+QWxsZXJnaWVzIGFu
ZCB0aGUgRmlyc3QgRG9nPC9hPjwvaDU+CjxwIGNsYXNzPSJkYXRlIj5Ob3ZlbWJlciAgNywgMjAw
ODwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InN0b3J5Ij4KPGg1PjxhIGhyZWY9Imh0dHA6Ly93ZWxs
LmJsb2dzLm55dGltZXMuY29tLzIwMDgvMTEvMDYvbm8tcHJhaXNlLWZvci1kb2N0b3JzLWluLXRy
YWluaW5nLyIgdGFyZ2V0PSJfYmxhbmsiPk5vIFByYWlzZSBmb3IgRG9jdG9ycy1pbi1UcmFpbmlu
ZzwvYT48L2g1Pgo8cCBjbGFzcz0iZGF0ZSI+Tm92ZW1iZXIgIDYsIDIwMDg8L3A+CjwvZGl2Pgo8
ZGl2IGNsYXNzPSJzdG9yeSI+CjxoNT48YSBocmVmPSJodHRwOi8vd2VsbC5ibG9ncy5ueXRpbWVz
LmNvbS8yMDA4LzExLzA2L2RyeS1wZXQtZm9vZC1hbmQtaHVtYW4tc2FsbW9uZWxsYS8iIHRhcmdl
dD0iX2JsYW5rIj5EcnkgUGV0IEZvb2QgYW5kIFNhbG1vbmVsbGEgaW4gSHVtYW5zPC9hPjwvaDU+
CjxwIGNsYXNzPSJkYXRlIj5Ob3ZlbWJlciAgNiwgMjAwODwvcD4KPC9kaXY+CjwvZGl2PgoKCgo8
L2Rpdj4KCgo8ZGl2IGNsYXNzPSJjb2x1bW5Hcm91cCI+PCEtLSBBRFhJTkZPIGNsYXNzaWZpY2F0
aW9uPSJmZWF0dXJlX3NxdWFyZXMiIGNhbXBhaWduPSJyZWdpbGl0ZS1QNC1hdHRpbWVzIi0tPjxp
ZnJhbWUgdGl0bGU9InJlZ2lsaXRlIiBzcmM9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vZ3N0L2xp
dGVzdWJfaW5zZXJ0Lmh0bWw/cHJvZHVjdD1FTCZhbXA7c2l6ZT0zMzZYOTAiIHdpZHRoPSIzMzYi
IGhlaWdodD0iOTAiIG1hcmdpbmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiIGZyYW1lYm9yZGVy
PSIwIiB2c3BhY2U9IjAiIGhzcGFjZT0iMCIgc2Nyb2xsaW5nPSJubyI+PC9pZnJhbWU+IDwvZGl2
PgoKCjxkaXYgaWQ9ImFkeEJpZ0FkIiBjbGFzcz0iY29sdW1uR3JvdXAiPgo8ZGl2IGNsYXNzPSJj
bGVhcmZpeCI+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2FkLnlp
ZWxkbWFuYWdlci5jb20vc3Q/YWRfdHlwZT1hZCZhbXA7YWRfc2l6ZT0zMzZ4MjgwLDMwMHgyNTAm
YW1wO3NlY3Rpb249Mzk0ODEwIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJodHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9pbXA/Wj0zMzZ4MjgwLDMwMHgyNTAm
YW1wO3M9Mzk0ODEwJmFtcDtfc2FsdD0zMzc4Mzg1ODk2JmFtcDtYPTEyMTAxMjEmYW1wO0I9MTAm
YW1wO3U9aHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVzLmNvbSUyRjIwMDglMkYxMSUyRjEwJTJGaGVh
bHRoJTJGMTBoZWFydC5odG1sJTNGX3IlM0QyJTI2cGFydG5lciUzRHJzc255dCUyNmVtYyUzRHJz
cyUyNm9yZWYlM0RzbG9naW4lMjZvcmVmJTNEc2xvZ2luJmFtcDtyPTEiPjwvc2NyaXB0PjxpZnJh
bWUgc2Nyb2xsaW5nPSJubyIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCIgZnJhbWVi
b3JkZXI9IjAiIGhlaWdodD0iMjUwIiB3aWR0aD0iMzAwIiBzcmM9Imh0dHA6Ly9hZC55aWVsZG1h
bmFnZXIuY29tL2lmcmFtZTM/cGdJQUFEb0dCZ0FEb0JNQUphUUZBQUlBQUFBQUFQOEFBQUFDRUFJ
QUF3S2ZTUWdBeEc4SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUGcu
QUFBQUFBQUEtRDhBQUFBQUFBRDRQd0FBQUFBQUFQZy5BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTFprc0VJU3FZUVZkVmtiS2Mx
UDZ3MTZZVzBRVGJyV2VrOWZqZndBQUFBQT0sLGh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8x
MS8xMC9oZWFsdGgvMTBoZWFydC5odG1sP19yPTImYW1wO3BhcnRuZXI9cnNzbnl0JmFtcDtlbWM9
cnNzJmFtcDtvcmVmPXNsb2dpbiZhbXA7b3JlZj1zbG9naW4iPjwvaWZyYW1lPjxkaXYgc3R5bGU9
ImZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjojMDA0Mjc2OyBmbG9h
dDogcmlnaHQ7IG1hcmdpbi1yaWdodDogOXB4OyI+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVz
Lndoc2l0ZXMubmV0L21lZGlha2l0LyI+QWR2ZXJ0aXNlIG9uIE5ZVGltZXMuY29tPC9hPjwvZGl2
PjwvZGl2PjwvZGl2PgoKCgo8ZGl2IGNsYXNzPSJjb2x1bW5Hcm91cCI+Cgo8ZGl2IGNsYXNzPSJj
bGVhcmZpeCIgaWQ9ImhlYWx0aF9maXRfdG9vbHMiPgo8aDMgY2xhc3M9InByb21vIj5IZWFsdGgg
JmFtcDsgRml0bmVzcyBUb29sczwvaDM+CjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20v
cmVmL2hlYWx0aC9ibWkuaHRtbCI+PGltZyBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5j
b20vaW1hZ2VzLzIwMDcvMDQvMzAvaGVhbHRoL2hlYWx0aF90b29sLmdpZiIgYWx0PSIiIGNsYXNz
PSJjYWxsb3V0IiBib3JkZXI9IjAiIGhlaWdodD0iNzUiIGhzcGFjZT0iMCIgdnNwYWNlPSIwIiB3
aWR0aD0iNzUiPjwvYT4KPGg1PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vcmVmL2hl
YWx0aC9ibWkuaHRtbCI+Qk1JIENhbGN1bGF0b3I8L2E+PC9oNT4KPGEgaHJlZj0iaHR0cDovL3d3
dy5ueXRpbWVzLmNvbS9yZWYvaGVhbHRoL2JtaS5odG1sIiBjbGFzcz0ibW9yZSI+V2hhdCdzIHlv
dXIgc2NvcmU/IMK7PC9hPgo8aDU+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9yZWYv
aGVhbHRoL2NhbG9yaWVjb3VudGVyLmh0bWwiPkNhbG9yaWUgQ2FsY3VsYXRvciBmb3IgR29hbCBX
ZWlnaHQ8L2E+PC9oNT4KPGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9yZWYvaGVhbHRo
L2NhbG9yaWVjb3VudGVyLmh0bWwiIGNsYXNzPSJtb3JlIj5XaGF0J3MgeW91ciBsaW1pdD8gwrs8
L2E+Cgo8ZGl2IGlkPSJGcmFtZTVBIj4KPCEtLSBBRFhJTkZPIGNsYXNzaWZpY2F0aW9uPSJmZWF0
dXJlX3Bvc2l0aW9uIiBjYW1wYWlnbj0iSGVhbHRoLU1hcmtldGluZ01vZHVsZS1GcmFtZTVBIi0t
PjwhLS0gSEVBTFRIIFBST01PIC0tPgogPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGlu
Zz0iMCIgc3R5bGU9ImJvcmRlcjpzb2xpZCAjMzMzOyBib3JkZXItd2lkdGg6MTBweCAxcHg7IGZv
bnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6MzM2cHg7
IGJhY2tncm91bmQ6I2ZmZjsgX3Bvc2l0aW9uOiByZWxhdGl2ZTsiPgoJPHRib2R5Pjx0cj4KCQk8
dGQgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDogMTIwcHg7Ij48YSB0YXJnZXQ9Il9uZXciIGhy
ZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vYWR4L2Jpbi9hZHhfY2xpY2suaHRtbD90eXBlPWdv
dG8mYW1wO3BhZ2U9d3d3Lm55dGltZXMuY29tL3lyL21vL2RheS9oZWFsdGgmYW1wO3Bvcz1GcmFt
ZTVBJmFtcDtzbjI9MThhYjg2MDkvODYyMzQ1OGEmYW1wO3NuMT1hNmJmMGVkYi9iZDUyMzdjZCZh
bXA7Y2FtcD1IZWFsdGgtTWFya2V0aW5nTW9kdWxlLUZyYW1lNUEmYW1wO2FkPUhMLUQtSS1OWVQt
TU9ELUZQLUNNOS1ITC0wMzA4LU5BUyZhbXA7Z290bz1odHRwOi8vaGVhbHRoLm55dGltZXMuY29t
L2hlYWx0aC9ndWlkZXMvZGlzZWFzZS9hbGxlcmdpYy1yaGluaXRpcy9vdmVydmlldy5odG1sJTNG
V1QubWNfaWQ9SEwtRC1JLU5ZVC1NT0QtRlAtQ005LUhMLTAzMDgtTkFTJTI2V1QubWNfZXY9Y2xp
Y2slMjZta3Q9SEwtRC1JLU5ZVC1NT0QtRlAtQ005LUhMLTAzMDgtTkFTIj48aW1nIHNyYz0iaHR0
cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9hZHMvbWFya2V0aW5nL21tMDgvaGVhbHRoLW5hc2Fs
YWxsZXJnaWVzLmdpZiIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjMiIGJvcmRlcj0iMCI+PC9hPjwv
dGQ+CgkJPHRkIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MjE2cHg7Ij48aDIgc3R5bGU9Im1h
cmdpbjowO3BhZGRpbmc6MTFweCA1cHggMXB4IDEwcHg7Zm9udC1zaXplOjIycHg7Ij48YSBzdHls
ZT0iY29sb3I6IzY2MDAwMDsiIHRhcmdldD0iX25ldyIgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVz
LmNvbS9hZHgvYmluL2FkeF9jbGljay5odG1sP3R5cGU9Z290byZhbXA7cGFnZT13d3cubnl0aW1l
cy5jb20veXIvbW8vZGF5L2hlYWx0aCZhbXA7cG9zPUZyYW1lNUEmYW1wO3NuMj0xOGFiODYwOS84
NjIzNDU4YSZhbXA7c24xPWE2YmYwZWRiL2JkNTIzN2NkJmFtcDtjYW1wPUhlYWx0aC1NYXJrZXRp
bmdNb2R1bGUtRnJhbWU1QSZhbXA7YWQ9SEwtRC1JLU5ZVC1NT0QtRlAtQ005LUhMLTAzMDgtTkFT
JmFtcDtnb3RvPWh0dHA6Ly9oZWFsdGgubnl0aW1lcy5jb20vaGVhbHRoL2d1aWRlcy9kaXNlYXNl
L2FsbGVyZ2ljLXJoaW5pdGlzL292ZXJ2aWV3Lmh0bWwlM0ZXVC5tY19pZD1ITC1ELUktTllULU1P
RC1GUC1DTTktSEwtMDMwOC1OQVMlMjZXVC5tY19ldj1jbGljayUyNm1rdD1ITC1ELUktTllULU1P
RC1GUC1DTTktSEwtMDMwOC1OQVMiPkhvdyB0byB0cmVhdDxicj5uYXNhbCBhbGxlcmdpZXM8L2E+
PC9oMj48aDMgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6IDVweCAwIDEwcHggMTFweDtmb250LXNp
emU6MTFweDsiPjxhIHN0eWxlPSJjb2xvcjojMzMzMzMzOyIgdGFyZ2V0PSJfbmV3IiBocmVmPSJo
dHRwOi8vd3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2NsaWNrLmh0bWw/dHlwZT1nb3RvJmFt
cDtwYWdlPXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVhbHRoJmFtcDtwb3M9RnJhbWU1QSZh
bXA7c24yPTE4YWI4NjA5Lzg2MjM0NThhJmFtcDtzbjE9YTZiZjBlZGIvYmQ1MjM3Y2QmYW1wO2Nh
bXA9SGVhbHRoLU1hcmtldGluZ01vZHVsZS1GcmFtZTVBJmFtcDthZD1ITC1ELUktTllULU1PRC1G
UC1DTTktSEwtMDMwOC1OQVMmYW1wO2dvdG89aHR0cDovL2hlYWx0aC5ueXRpbWVzLmNvbS9oZWFs
dGgvZ3VpZGVzL2Rpc2Vhc2UvYWxsZXJnaWMtcmhpbml0aXMvb3ZlcnZpZXcuaHRtbCUzRldULm1j
X2lkPUhMLUQtSS1OWVQtTU9ELUZQLUNNOS1ITC0wMzA4LU5BUyUyNldULm1jX2V2PWNsaWNrJTI2
bWt0PUhMLUQtSS1OWVQtTU9ELUZQLUNNOS1ITC0wMzA4LU5BUyI+TEVBUk4gTU9SRSDCuzwvYT48
L2gzPjxhIHN0eWxlPSJjb2xvcjojMzMzMzMzOyIgdGFyZ2V0PSJfbmV3IiBocmVmPSJodHRwOi8v
d3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2NsaWNrLmh0bWw/dHlwZT1nb3RvJmFtcDtwYWdl
PXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVhbHRoJmFtcDtwb3M9RnJhbWU1QSZhbXA7c24y
PTE4YWI4NjA5Lzg2MjM0NThhJmFtcDtzbjE9YTZiZjBlZGIvYmQ1MjM3Y2QmYW1wO2NhbXA9SGVh
bHRoLU1hcmtldGluZ01vZHVsZS1GcmFtZTVBJmFtcDthZD1ITC1ELUktTllULU1PRC1GUC1DTTkt
SEwtMDMwOC1OQVMmYW1wO2dvdG89aHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wYWdlcy9oZWFsdGgv
aW5kZXguaHRtbCUzRldULm1jX2lkPUhMLUQtSS1OWVQtTU9ELUZQLUNNOS1ITC0wMzA4LUwxJTI2
V1QubWNfZXY9Y2xpY2slMjZta3Q9SEwtRC1JLU5ZVC1NT0QtRlAtQ005LUhMLTAzMDgtTDEiPjxp
bWcgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2Fkcy9tYXJrZXRpbmcvbW0wOC9o
ZWFsdGgtdXJsLmdpZiIgYWx0PSJueXRpbWVzLmNvbS9oZWFsdGgiIHdpZHRoPSIxNjYiIGhlaWdo
dD0iMTciIGJvcmRlcj0iMCIgc3R5bGU9Im1hcmdpbi1sZWZ0OiA5cHg7Ij48L2E+PC90ZD4KCgk8
L3RyPgo8L3Rib2R5PjwvdGFibGU+CiA8IS0tIC9IRUFMVEggUFJPTU8gLS0+CgoKCjwvZGl2PgoK
PC9kaXY+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0iY29sdW1uR3JvdXAiIGlkPSJtb3N0UG9wV2lkZ2V0
Ij4KCiAgICAgIDwhLS0gTU9TVCBQT1BVTEFSIE1PRFVMRSBTVEFSVFMgLS0+CiAgICAgIDxoND5N
T1NUIFBPUFVMQVIgLSBIRUFMVEg8L2g0PgogICAgICAgICA8ZGl2IGlkPSJ0YWJzQ29udGFpbmVy
Ij4KICAgICAgICAgPHVsIGNsYXNzPSJ0YWJzIj4KICAgICAgICAgICAgPGxpIGNsYXNzPSJzZWxl
Y3RlZCI+PGEgaHJlZj0iIyI+RS1NYWlsZWQ8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhy
ZWY9IiMiPkJsb2dnZWQ8L2E+PC9saT4KICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAg
ICA8L3VsPgogICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCjxkaXYgY2xhc3M9InRhYkNvbnRl
bnQgdGFiQ29udGVudEFjdGl2ZSIgaWQ9Im1vc3RFbWFpbGVkIj4KPG9sPgo8bGk+PGEgaHJlZj0i
aHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0Lmh0bWw/ZW0i
IHRpdGxlPSJDbGljayB0byBnbyB0byB0aGlzIGFydGljbGUiPkNob2xlc3Rlcm9sLUZpZ2h0aW5n
IERydWdzIFNob3cgV2lkZXIgQmVuZWZpdDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3
dy5ueXRpbWVzLmNvbS8yMDA4LzExLzA3L2hlYWx0aC9udXRyaXRpb24vMDdyZWNpcGVoZWFsdGgu
aHRtbD9lbSIgdGl0bGU9IkNsaWNrIHRvIGdvIHRvIHRoaXMgYXJ0aWNsZSI+UmVjaXBlcyBmb3Ig
SGVhbHRoOsKgUXVpbm9hIFBpbGFmIFdpdGggQ2hpY2sgUGVhcywgUG9tZWdyYW5hdGUgYW5kIFNw
aWNlczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzEx
LzA2L2hlYWx0aC9udXRyaXRpb24vMDZyZWNpcGVoZWFsdGguaHRtbD9lbSIgdGl0bGU9IkNsaWNr
IHRvIGdvIHRvIHRoaXMgYXJ0aWNsZSI+UmVjaXBlcyBmb3IgSGVhbHRoOsKgQW5kZWFuIEJlYW4g
U3RldyBXaXRoIFdpbnRlciBTcXVhc2ggYW5kIFF1aW5vYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0i
aHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzA1L2hlYWx0aC9udXRyaXRpb24vMDVyZWNp
cGVoZWFsdGguaHRtbD9lbSIgdGl0bGU9IkNsaWNrIHRvIGdvIHRvIHRoaXMgYXJ0aWNsZSI+UmVj
aXBlcyBmb3IgSGVhbHRoOsKgQmFrZWQgUXVpbm9hIFdpdGggU3BpbmFjaCBhbmQgQ2hlZXNlPC9h
PjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd2VsbC5ibG9ncy5ueXRpbWVzLmNvbS8yMDA4LzEx
LzA2L2RyeS1wZXQtZm9vZC1hbmQtaHVtYW4tc2FsbW9uZWxsYS8/ZW0iIHRpdGxlPSJDbGljayB0
byBnbyB0byB0aGlzIGFydGljbGUiPldlbGw6IERyeSBQZXQgRm9vZCBhbmQgU2FsbW9uZWxsYSBp
biBIdW1hbnM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAw
OC8xMS8wMy9oZWFsdGgvbnV0cml0aW9uLzAzcmVjaXBlaGVhbHRoLmh0bWw/ZW0iIHRpdGxlPSJD
bGljayB0byBnbyB0byB0aGlzIGFydGljbGUiPlJlY2lwZXMgZm9yIEhlYWx0aDrCoFF1aW5vYTog
QSBQcm90ZWluLVBhY2tlZCBBbHRlcm5hdGl2ZSB0byBHcmFpbnM8L2E+PC9saT4KPGxpPjxhIGhy
ZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8wNC9oZWFsdGgvbnV0cml0aW9uLzA0
cmVjaXBlaGVhbHRoLmh0bWw/ZW0iIHRpdGxlPSJDbGljayB0byBnbyB0byB0aGlzIGFydGljbGUi
PlJlY2lwZXMgZm9yIEhlYWx0aDrCoFF1aW5vYSBTYWxhZCBXaXRoIExpbWUgR2luZ2VyIERyZXNz
aW5nIGFuZCBTaHJpbXA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5j
b20vMjAwOC8xMS8xMC9oZWFsdGgvMTBkYXZpcy5odG1sP2VtIiB0aXRsZT0iQ2xpY2sgdG8gZ28g
dG8gdGhpcyBhcnRpY2xlIj5Sb25hbGQgRGF2aXMsIEhlYWx0aCBDcnVzYWRlciwgRGllcyBhdCA1
MjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzA0
L2hlYWx0aC8wNGJyb2R5Lmh0bWw/ZW0iIHRpdGxlPSJDbGljayB0byBnbyB0byB0aGlzIGFydGlj
bGUiPlBlcnNvbmFsIEhlYWx0aDrCoFRoZSBQb3NzaWJpbGl0aWVzIGluIEh5cG5vc2lzLCBXaGVy
ZSB0aGUgUGF0aWVudCBIYXMgdGhlIFBvd2VyPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8v
d3d3Lm55dGltZXMuY29tLzIwMDgvMTEvMDcvaGVhbHRoL2NoZW4xMS0wNi5odG1sP2VtIiB0aXRs
ZT0iQ2xpY2sgdG8gZ28gdG8gdGhpcyBhcnRpY2xlIj5Eb2N0b3IgYW5kIFBhdGllbnQ6wqBBIFBv
c2l0aXZlIEFwcHJvYWNoIHRvIERvY3RvcnMtaW4tVHJhaW5pbmc8L2E+PC9saT4KPC9vbD4KPGEg
Y2xhc3M9Im1vcmUiIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vZ3N0L21vc3RlbWFpbGVk
Lmh0bWwiPkdvIHRvIENvbXBsZXRlIExpc3Qgwrs8L2E+CjwvZGl2PjwhLS0gI21vc3QgZW1haWxl
ZCB0b3AxMCAtLT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYkNvbnRlbnQiIGlkPSJtb3N0
QmxvZ2dlZCI+CjxvbD4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8x
MS8wNi9oZWFsdGgvcmVzZWFyY2gvMDZjYW5jZXIuaHRtbD9ibCZhbXA7ZXg9MTIyNjQ2NjAwMCZh
bXA7ZW49MGMyYmEwMDFiMzgyMWM2MiZhbXA7ZWk9NTA4NyUwQSIgdGl0bGU9IkNsaWNrIHRvIGdv
IHRvIHRoaXMgYXJ0aWNsZSI+U2NpZW50aXN0cyBEZWNvZGUgRW50aXJlIFNldCBvZiBDYW5jZXIg
R2VuZXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8x
MS8wNy9oZWFsdGgvY2hlbjExLTA2Lmh0bWw/YmwmYW1wO2V4PTEyMjY0NjYwMDAmYW1wO2VuPTBj
MmJhMDAxYjM4MjFjNjImYW1wO2VpPTUwODclMEEiIHRpdGxlPSJDbGljayB0byBnbyB0byB0aGlz
IGFydGljbGUiPkEgUG9zaXRpdmUgQXBwcm9hY2ggdG8gRG9jdG9ycy1pbi1UcmFpbmluZzwvYT48
L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzA0L2hlYWx0
aC9udXRyaXRpb24vMDR3ZWxsLmh0bWw/YmwmYW1wO2V4PTEyMjY0NjYwMDAmYW1wO2VuPTBjMmJh
MDAxYjM4MjFjNjImYW1wO2VpPTUwODclMEEiIHRpdGxlPSJDbGljayB0byBnbyB0byB0aGlzIGFy
dGljbGUiPk1vbmV5IElzIFRpZ2h0LCBhbmQgSnVuayBGb29kIEJlY2tvbnM8L2E+PC9saT4KPGxp
PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8wNC9oZWFsdGgvcmVzZWFy
Y2gvMDRnbG9iYWwuaHRtbD9ibCZhbXA7ZXg9MTIyNjQ2NjAwMCZhbXA7ZW49MGMyYmEwMDFiMzgy
MWM2MiZhbXA7ZWk9NTA4NyUwQSIgdGl0bGU9IkNsaWNrIHRvIGdvIHRvIHRoaXMgYXJ0aWNsZSI+
RGVhZGx5IE5ldyBWaXJ1cyBUaG91Z2h0IHRvIEJlIENvbnRhaW5lZDwvYT48L2xpPgo8bGk+PGEg
aHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9pbnRlcmFjdGl2ZS8yMDA4LzEwLzMxL2hlYWx0
aC8yMDA4MTAzMV9XRUxMUVVJWi5odG1sP2JsJmFtcDtleD0xMjI2NDY2MDAwJmFtcDtlbj0wYzJi
YTAwMWIzODIxYzYyJmFtcDtlaT01MDg3JTBBIiB0aXRsZT0iQ2xpY2sgdG8gZ28gdG8gdGhpcyBh
cnRpY2xlIj5UaGUgV2VpcmQgQm9keSBRdWl6PC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8v
d3d3Lm55dGltZXMuY29tLzIwMDgvMTEvMDQvaGVhbHRoLzA0cG9zdC5odG1sP2JsJmFtcDtleD0x
MjI2NDY2MDAwJmFtcDtlbj0wYzJiYTAwMWIzODIxYzYyJmFtcDtlaT01MDg3JTBBIiB0aXRsZT0i
Q2xpY2sgdG8gZ28gdG8gdGhpcyBhcnRpY2xlIj5HcmF2ZSBXYXJuaW5ncyBvZiBEaXNlYXNlLCBX
aXRoIHRoZSBBZG1hbidzIEZsYWlyPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm55
dGltZXMuY29tLzIwMDgvMTEvMDQvaGVhbHRoLzA0ZGVuZ3VlZmV2ZXIuaHRtbD9ibCZhbXA7ZXg9
MTIyNjQ2NjAwMCZhbXA7ZW49MGMyYmEwMDFiMzgyMWM2MiZhbXA7ZWk9NTA4NyUwQSIgdGl0bGU9
IkNsaWNrIHRvIGdvIHRvIHRoaXMgYXJ0aWNsZSI+VGhlIFdhciBvbiBEZW5ndWUgRmV2ZXI8L2E+
PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8wNC9oZWFs
dGgvMDRicm9keS5odG1sP2JsJmFtcDtleD0xMjI2NDY2MDAwJmFtcDtlbj0wYzJiYTAwMWIzODIx
YzYyJmFtcDtlaT01MDg3JTBBIiB0aXRsZT0iQ2xpY2sgdG8gZ28gdG8gdGhpcyBhcnRpY2xlIj5U
aGUgUG9zc2liaWxpdGllcyBpbiBIeXBub3NpcywgV2hlcmUgdGhlIFBhdGllbnQgSGFzIHRoZSBQ
b3dlcjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzEx
LzEwL2hlYWx0aC8xMGhlYXJ0Lmh0bWw/YmwmYW1wO2V4PTEyMjY0NjYwMDAmYW1wO2VuPTBjMmJh
MDAxYjM4MjFjNjImYW1wO2VpPTUwODclMEEiIHRpdGxlPSJDbGljayB0byBnbyB0byB0aGlzIGFy
dGljbGUiPlN0dWR5IFNob3dzIFdpZGUgQmVuZWZpdCBGcm9tIFN0YXRpbnM8L2E+PC9saT4KPGxp
PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8wNC9oZWFsdGgvcmVzZWFy
Y2gvMDRtaW5kLmh0bWw/YmwmYW1wO2V4PTEyMjY0NjYwMDAmYW1wO2VuPTBjMmJhMDAxYjM4MjFj
NjImYW1wO2VpPTUwODclMEEiIHRpdGxlPSJDbGljayB0byBnbyB0byB0aGlzIGFydGljbGUiPldo
ZW4gRHV0eSBDYWxsczogVGhlIFZhbHVlIG9mIFZvdGluZywgQmV5b25kIFBvbGl0aWNzPC9hPjwv
bGk+Cjwvb2w+CjxhIGNsYXNzPSJtb3JlIiBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2dz
dC9tb3N0YmxvZ2dlZC5odG1sIj5HbyB0byBDb21wbGV0ZSBMaXN0IMK7PC9hPgo8L2Rpdj48IS0t
ICNtb3N0IGJsb2dnZWQgdG9wMTAgLS0+CgogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAg
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5uZXcgQWNjb3JkaWFuKCJtb3N0UG9w
V2lkZ2V0Iik7PC9zY3JpcHQ+CiAgICAgIDwhLS0gTU9TVCBQT1BVTEFSIE1PRFVMRSBFTkRTIC0t
PgogICAKCjwvZGl2Pgo8ZGl2IGlkPSJhZHhNaWRkbGUiIGNsYXNzPSJjb2x1bW5Hcm91cCI+PCEt
LSBBRFhJTkZPIGNsYXNzaWZpY2F0aW9uPSJmZWF0dXJlX3Bvc2l0aW9uIiBjYW1wYWlnbj0iTllU
MjAwOC1tYXJrZXRpbmdtb2R1bGVfdjIiLS0+Cgo8IS0tIE1BUktFVElORyBNT0RVTEUgLS0+CiAg
PGRpdiBzdHlsZT0iYm9yZGVyOnNvbGlkICMzMzM7Ym9yZGVyLXdpZHRoOjEwcHggMXB4O2ZvbnQt
ZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7dGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDozMzRweDtiYWNr
Z3JvdW5kOiNmZmYiPgogICAgCiAgPGRpdiBzdHlsZT0icGFkZGluZzo5cHggMTRweDtiYWNrZ3Jv
dW5kOiNmZmYiPiA8YSBzdHlsZT0iZmxvYXQ6bGVmdCIgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVz
LmNvbS9hZHgvYmluL2FkeF9jbGljay5odG1sP3R5cGU9Z290byZhbXA7cGFnZT13d3cubnl0aW1l
cy5jb20veXIvbW8vZGF5L2hlYWx0aCZhbXA7cG9zPUJveDEmYW1wO3NuMj05MjE3NzUxZS9mYmIy
NzIwYSZhbXA7c24xPTkyMGQwZDIxL2NjYzg3ZGU4JmFtcDtjYW1wPU5ZVDIwMDgtbWFya2V0aW5n
bW9kdWxlX3YyJmFtcDthZD1ITC1ELUktTllULU1PRC1NT0QtTTA2OC1ST1MtMTEwOCZhbXA7Z290
bz1odHRwOi8vbnl0aW1lcy5jb20vJTNGV1QubWNfaWQ9SEwtRC1JLU5ZVC1NT0QtTU9ELU0wNjgt
Uk9TLTExMDgtTE9HTyUyNldULm1jX2V2PWNsaWNrIiB0YXJnZXQ9Il9uZXciPjxpbWcgc3JjPSJo
dHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2Fkcy9tYXJrZXRpbmcvbW0wNy9ueXQtbG9nby5w
bmciIGFsdD0iVGhlIE5ldyBZb3JrIFRpbWVzIiB3aWR0aD0iMTUxIiBoZWlnaHQ9IjI2IiBib3Jk
ZXI9IjAiPjwvYT4gCiAgICA8YSBzdHlsZT0iZmxvYXQ6cmlnaHQiIGhyZWY9Imh0dHA6Ly93d3cu
bnl0aW1lcy5jb20vYWR4L2Jpbi9hZHhfY2xpY2suaHRtbD90eXBlPWdvdG8mYW1wO3BhZ2U9d3d3
Lm55dGltZXMuY29tL3lyL21vL2RheS9oZWFsdGgmYW1wO3Bvcz1Cb3gxJmFtcDtzbjI9OTIxNzc1
MWUvZmJiMjcyMGEmYW1wO3NuMT05MjBkMGQyMS9jY2M4N2RlOCZhbXA7Y2FtcD1OWVQyMDA4LW1h
cmtldGluZ21vZHVsZV92MiZhbXA7YWQ9SEwtRC1JLU5ZVC1NT0QtTU9ELU0wNjgtUk9TLTExMDgm
YW1wO2dvdG89aHR0cDovL2hlYWx0aC5ueXRpbWVzLmNvbS9wYWdlcy9oZWFsdGgvaW5kZXguaHRt
bCUzRldULm1jX2lkPUhMLUQtSS1OWVQtTU9ELU1PRC1NMDY4LVJPUy0xMTA4LVZSVCUyNldULm1j
X2V2PWNsaWNrIiB0YXJnZXQ9Il9uZXciPjxpbWcgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGlt
ZXMuY29tL2Fkcy9tYXJrZXRpbmcvbW0wNy92ZXJ0aWNhbF9oZWFsdGguZ2lmIiBhbHQ9IkhlYWx0
aCIgd2lkdGg9IjE0NSIgaGVpZ2h0PSIyMyIgYm9yZGVyPSIwIj48L2E+IAogICAgPHAgc3R5bGU9
ImZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7IGNsZWFyOmJvdGg7IHRleHQtYWxpZ246cmln
aHQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxMXB4OyBtYXJnaW46MDtwYWRkaW5nOjA7
Ij4KICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2Ns
aWNrLmh0bWw/dHlwZT1nb3RvJmFtcDtwYWdlPXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVh
bHRoJmFtcDtwb3M9Qm94MSZhbXA7c24yPTkyMTc3NTFlL2ZiYjI3MjBhJmFtcDtzbjE9OTIwZDBk
MjEvY2NjODdkZTgmYW1wO2NhbXA9TllUMjAwOC1tYXJrZXRpbmdtb2R1bGVfdjImYW1wO2FkPUhM
LUQtSS1OWVQtTU9ELU1PRC1NMDY4LVJPUy0xMTA4JmFtcDtnb3RvPWh0dHA6Ly9oZWFsdGgubnl0
aW1lcy5jb20vcGFnZXMvaGVhbHRoL2luZGV4Lmh0bWwlM0ZXVC5tY19pZD1ITC1ELUktTllULU1P
RC1NT0QtTTA2OC1ST1MtMTEwOC1VUkwlMjZXVC5tY19ldj1jbGljayIgdGFyZ2V0PSJfbmV3Ij5u
eXRpbWVzLmNvbS9oZWFsdGg8L2E+CiAgICAgIDwvcD4KICAgIDwvZGl2PgogIDxhIGhyZWY9Imh0
dHA6Ly93d3cubnl0aW1lcy5jb20vYWR4L2Jpbi9hZHhfY2xpY2suaHRtbD90eXBlPWdvdG8mYW1w
O3BhZ2U9d3d3Lm55dGltZXMuY29tL3lyL21vL2RheS9oZWFsdGgmYW1wO3Bvcz1Cb3gxJmFtcDtz
bjI9OTIxNzc1MWUvZmJiMjcyMGEmYW1wO3NuMT05MjBkMGQyMS9jY2M4N2RlOCZhbXA7Y2FtcD1O
WVQyMDA4LW1hcmtldGluZ21vZHVsZV92MiZhbXA7YWQ9SEwtRC1JLU5ZVC1NT0QtTU9ELU0wNjgt
Uk9TLTExMDgmYW1wO2dvdG89aHR0cDovL2hlYWx0aC5ueXRpbWVzLmNvbS9yZWYvaGVhbHRoL2hl
YWx0aGd1aWRlL2Vzbi1kZXByZXNzaW9uLWVzcy5odG1sJTNGZXg9MTI0MTQxMzIwMCUyNmVuPTUz
MjYyOTQ3YTQ1ZDI0OWIlMjZlaT01MDg3JTI2V1QubWNfaWQ9SEwtRC1JLU5ZVC1NT0QtTU9ELU0w
NjgtUk9TLTExMDgtUEglMjZXVC5tY19ldj1jbGljayIgdGFyZ2V0PSJfbmV3Ij48aW1nIHNyYz0i
aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9hZHMvbWFya2V0aW5nL21tMDgvaGVhbHRoXzEx
MTAwOC5qcGciIHdpZHRoPSIzMzQiIGhlaWdodD0iMTA1IiBib3JkZXI9IjAiPjwvYT4KICA8ZGl2
IHN0eWxlPSJwYWRkaW5nOjlweCAxNHB4O2JhY2tncm91bmQ6I2ZmZiI+CiAgICAgIDxoMiBzdHls
ZT0iZm9udC1zaXplOjE3cHg7bWFyZ2luOjAiPjxhIHN0eWxlPSJjb2xvcjojODQzOTE5OyIgdGFy
Z2V0PSJfbmV3IiBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2NsaWNr
Lmh0bWw/dHlwZT1nb3RvJmFtcDtwYWdlPXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVhbHRo
JmFtcDtwb3M9Qm94MSZhbXA7c24yPTkyMTc3NTFlL2ZiYjI3MjBhJmFtcDtzbjE9OTIwZDBkMjEv
Y2NjODdkZTgmYW1wO2NhbXA9TllUMjAwOC1tYXJrZXRpbmdtb2R1bGVfdjImYW1wO2FkPUhMLUQt
SS1OWVQtTU9ELU1PRC1NMDY4LVJPUy0xMTA4JmFtcDtnb3RvPWh0dHA6Ly9oZWFsdGgubnl0aW1l
cy5jb20vcmVmL2hlYWx0aC9oZWFsdGhndWlkZS9lc24tZGVwcmVzc2lvbi1lc3MuaHRtbCUzRmV4
PTEyNDE0MTMyMDAlMjZlbj01MzI2Mjk0N2E0NWQyNDliJTI2ZWk9NTA4NyUyNldULm1jX2lkPUhM
LUQtSS1OWVQtTU9ELU1PRC1NMDY4LVJPUy0xMTA4LUhEUiUyNldULm1jX2V2PWNsaWNrIj5MaWZ0
aW5nIHRoZSBjdXJ0YWluIG9uIGRlcHJlc3Npb248L2E+PC9oMj4KICAgICAgPHAgc3R5bGU9ImZv
bnQtc2l6ZToxMXB4O21hcmdpbjozcHggMDtwYWRkaW5nOjA7Zm9udC1mYW1pbHk6QXJpYWwsc2Fu
cy1zZXJpZjsiPkFsc28gaW4gSGVhbHRoOjwvcD4KICAgICAgPHVsIHN0eWxlPSJmb250LXNpemU6
MTFweDttYXJnaW46MCIgY2xhc3M9InJlZmVyIj4KICAgICAgICA8bGkgc3R5bGU9ImZvbnQtc2l6
ZToxMXB4Ij48YSBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSIgdGFyZ2V0PSJfbmV3
IiBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2NsaWNrLmh0bWw/dHlw
ZT1nb3RvJmFtcDtwYWdlPXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVhbHRoJmFtcDtwb3M9
Qm94MSZhbXA7c24yPTkyMTc3NTFlL2ZiYjI3MjBhJmFtcDtzbjE9OTIwZDBkMjEvY2NjODdkZTgm
YW1wO2NhbXA9TllUMjAwOC1tYXJrZXRpbmdtb2R1bGVfdjImYW1wO2FkPUhMLUQtSS1OWVQtTU9E
LU1PRC1NMDY4LVJPUy0xMTA4JmFtcDtnb3RvPWh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8x
MS8wNC9oZWFsdGgvcmVzZWFyY2gvMDRiYWJ5Lmh0bWwlM0ZleD0xMjQxNDEzMjAwJTI2ZW49NmNi
ZGE3ZjkzMTZlNGZiMyUyNmVpPTUwODclMjZXVC5tY19pZD1ITC1ELUktTllULU1PRC1NT0QtTTA2
OC1ST1MtMTEwOC1MMSUyNldULm1jX2V2PWNsaWNrIj5EZXByZXNzaW9uIGxpbmtlZCB0byBwcmVt
YXR1cmUgZGVsaXZlcmllcyA8L2E+PC9saT4KICAgICAgICA8bGkgc3R5bGU9ImZvbnQtc2l6ZTox
MXB4Ij48YSBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSIgdGFyZ2V0PSJfbmV3IiBo
cmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2NsaWNrLmh0bWw/dHlwZT1n
b3RvJmFtcDtwYWdlPXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVhbHRoJmFtcDtwb3M9Qm94
MSZhbXA7c24yPTkyMTc3NTFlL2ZiYjI3MjBhJmFtcDtzbjE9OTIwZDBkMjEvY2NjODdkZTgmYW1w
O2NhbXA9TllUMjAwOC1tYXJrZXRpbmdtb2R1bGVfdjImYW1wO2FkPUhMLUQtSS1OWVQtTU9ELU1P
RC1NMDY4LVJPUy0xMTA4JmFtcDtnb3RvPWh0dHA6Ly93ZWxsLmJsb2dzLm55dGltZXMuY29tLzIw
MDgvMTAvMjEvZGVwcmVzc2lvbi1hbmQtdGhlLW5vYmVsLXByaXplJTNGZXg9MTI0MTQxMzIwMCUy
NmVuPTQ5OTI5ZDMwZGY2MWEyM2ElMjZlaT01MDg3JTI2V1QubWNfaWQ9SEwtRC1JLU5ZVC1NT0Qt
TU9ELU0wNjgtUk9TLTExMDgtTDIlMjZXVC5tY19ldj1jbGljayI+SGFzIGRlcHJlc3Npb24gaW50
ZXJydXB0ZWQgeW91ciBjYXJlZXIgcGF0aD88L2E+PC9saT4KICAgICAgICA8bGkgc3R5bGU9ImZv
bnQtc2l6ZToxMXB4Ij48YSBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSIgdGFyZ2V0
PSJfbmV3IiBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2NsaWNrLmh0
bWw/dHlwZT1nb3RvJmFtcDtwYWdlPXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVhbHRoJmFt
cDtwb3M9Qm94MSZhbXA7c24yPTkyMTc3NTFlL2ZiYjI3MjBhJmFtcDtzbjE9OTIwZDBkMjEvY2Nj
ODdkZTgmYW1wO2NhbXA9TllUMjAwOC1tYXJrZXRpbmdtb2R1bGVfdjImYW1wO2FkPUhMLUQtSS1O
WVQtTU9ELU1PRC1NMDY4LVJPUy0xMTA4JmFtcDtnb3RvPWh0dHA6Ly9oZWFsdGgubnl0aW1lcy5j
b20vaGVhbHRoL2d1aWRlcy9zeW1wdG9tcy9kZXByZXNzaW9uL292ZXJ2aWV3Lmh0bWwlM0ZleD0x
MjQxNDEzMjAwJTI2ZW49ZWNiMWY4ZmY5YzhkYWI0MSUyNmVpPTUwODclMjZXVC5tY19pZD1ITC1E
LUktTllULU1PRC1NT0QtTTA2OC1ST1MtMTEwOC1MMyUyNldULm1jX2V2PWNsaWNrIj5XaGF0IGFy
ZSB0aGUgc3ltcHRvbXMgb2YgZGVwcmVzc2lvbj88L2E+PC9saT4KICAgICAgPC91bD4KICAgIDwv
ZGl2PgogICAgCiAgPC9kaXY+CiA8IS0tIC9NQVJLRVRJTkcgTU9EVUxFIC0tPgo8L2Rpdj4KCgo8
ZGl2IGNsYXNzPSJjb2x1bW5Hcm91cCBhZHZlcnRpc2VtZW50Q29sdW1uR3JvdXAiPgo8aDQ+QWR2
ZXJ0aXNlbWVudHM8L2g0Pgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48
dGJvZHk+PHRyPjx0ZCBjbGFzcz0iY0NvbHVtbiI+CjxkaXYgY2xhc3M9ImNDb2x1bW4tVGV4dEFk
c0JveCI+Cgo8ZGl2IGNsYXNzPSJjQ29sdW1uLVRleHRBZHNMZWZ0Ij4KPGRpdiBjbGFzcz0iY0Nv
bHVtbi1UZXh0QWQiPjwhLS0gQURYSU5GTyBjbGFzc2lmaWNhdGlvbj0idGV4dF9hZCIgY2FtcGFp
Z249Im55dDIwMDgtY2lyYy10ZXh0YWQtMzNXWDMtcm9zIi0tPjwhLS0gc3RhcnQgdGV4dCBsaW5r
IC0tPgo8YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2NsaWNrLmh0
bWw/dHlwZT1nb3RvJmFtcDtwYWdlPXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVhbHRoJmFt
cDtwb3M9UmlnaHQ1QSZhbXA7c24yPWEwNDhiOWJjLzg2NzBjNzhhJmFtcDtzbjE9M2ExOGFiZTMv
YTZlZTA1NiZhbXA7Y2FtcD1ueXQyMDA4LWNpcmMtdGV4dGFkLTMzV1gzLXJvcyZhbXA7YWQ9dGV4
dGFkXzMzV1gzJmFtcDtnb3RvPWh0dHBzJTNBLy93d3cubnl0aW1lc2F0aG9tZS5jb20vc3BsaXR0
ZXJfY3AvaW5kZXgucGhwJTNGU1BUUl9JRCUzRGhkTllUJTI2TWVkaWFDb2RlJTNEVzE2QUQlMjZD
TVAlM0QzM1dYMyIgdGFyZ2V0PSJfYmxhbmsiPgo8ZGl2IGNsYXNzPSJjQ29sdW1uLVRleHRBZHNI
ZWFkZXIiPk5lZWQgdG8ga25vdyBtb3JlPyA8L2Rpdj4KPGJyPkdldCA1MCUgb2ZmIGhvbWUgZGVs
aXZlcnkgb2YgVGhlIFRpbWVzLjwvYT4KPCEtLSBlbmQgdGV4dCBsaW5rIC0tPjwvZGl2PgoKCgo8
L2Rpdj4KCgo8ZGl2IGNsYXNzPSJjQ29sdW1uLVRleHRBZHNSaWdodCI+PCEtLSBBRFhJTkZPIGNs
YXNzaWZpY2F0aW9uPSJib3hfODZ4NjAiIGNhbXBhaWduPSJDYXBnZW1pbmlfRlJIMlVTQS05MzE0
NTYtbnl0MiItLT48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2FkeC9iaW4vYWR4X2Ns
aWNrLmh0bWw/dHlwZT1nb3RvJmFtcDtwYWdlPXd3dy5ueXRpbWVzLmNvbS95ci9tby9kYXkvaGVh
bHRoJmFtcDtwb3M9Qm90dG9tMyZhbXA7c24yPTQ5NTc4OTgxL2RhMzY0YWI3JmFtcDtzbjE9MWJm
YzJhYS9iZjI4MDBkNSZhbXA7Y2FtcD1DYXBnZW1pbmlfRlJIMlVTQS05MzE0NTYtbnl0MiZhbXA7
YWQ9Q2FwZ2VtaW5pX0ZSSDJVU0EuU2l0ZUZvckRheS44OHgyMi5qcGVnJmFtcDtnb3RvPWh0dHAl
M0ElMkYlMkZ3d3clMkVjYXBnZW1pbmklMkVjb20iIHRhcmdldD0iX2JsYW5rIj4KPGltZyBzcmM9
Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vYWR4L2ltYWdlcy9BRFMvMTgvMzAvYWQuMTgz
MDIyL0NBUF9RMjA4Xzg4eDIyX2xvZ29fVVMuanBnIiB3aWR0aD0iODgiIGhlaWdodD0iMjIiPgo8
L2E+PC9kaXY+Cgo8L2Rpdj4KPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KPC9kaXY+CgoKPGRp
diBpZD0iYWR4QmlnQWQyIiBjbGFzcz0iY29sdW1uR3JvdXAiPjwhLS0gQURYSU5GTyBjbGFzc2lm
aWNhdGlvbj0iYmlnYWQiIGNhbXBhaWduPSJhZHJlYWR5MTRkLWhlYWx0aC04Njk5OTkiLS0+PGRp
diBzdHlsZT0id2lkdGg6MzAwcHg7Ij4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vc3Q/YWRfdHlwZT1hZCZhbXA7YWRfc2l6ZT0z
MDB4MjUwJmFtcDtzZWN0aW9uPTMwNzk0MiI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vaW1wP1o9MzAweDI1MCZh
bXA7cz0zMDc5NDImYW1wO19zYWx0PTMzNDc2NDI0OTcmYW1wO1g9MTIxMDEyMSwxMjg2MTQ3JmFt
cDtCPTEwJmFtcDt1PWh0dHAlM0ElMkYlMkZ3d3cubnl0aW1lcy5jb20lMkYyMDA4JTJGMTElMkYx
MCUyRmhlYWx0aCUyRjEwaGVhcnQuaHRtbCUzRl9yJTNEMiUyNnBhcnRuZXIlM0Ryc3NueXQlMjZl
bWMlM0Ryc3MlMjZvcmVmJTNEc2xvZ2luJTI2b3JlZiUzRHNsb2dpbiZhbXA7cj0xIj48L3Njcmlw
dD48aWZyYW1lIHNjcm9sbGluZz0ibm8iIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAi
IGZyYW1lYm9yZGVyPSIwIiBoZWlnaHQ9IjI1MCIgd2lkdGg9IjMwMCIgc3JjPSJodHRwOi8vd3d3
Lm55dGltZXMuY29tL2Fkcy9hZHZlcnRpc2luZ2NvbS9yZXZfQWRjb21fMzAweDI1MF90aWVyMS5o
dG1sIj48L2lmcmFtZT4KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkFyaWFsO2ZvbnQtc2l6ZTox
MHB4O2NvbG9yOiMwMDQyNzY7bWFyZ2luOjA7cGFkZGluZzowOyI+CjxkaXYgc3R5bGU9ImNsZWFy
OmJvdGg7Ij48L2Rpdj4KPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij48YSBocmVmPSJodHRwOi8v
d3d3Lm55dGltZXMuY29tL3NlbGZzZXJ2aWNlJTNmdXRtX3NvdXJjZT1ueXRpbWVzJTI2dXRtX21l
ZGl1bT10ZXh0JTI2dXRtX2NvbnRlbnQ9YmlnYWQlMjZ1dG1fY2FtcGFpZ249c3RhdGljIj5BZHZl
cnRpc2Ugb24gTllUaW1lcy5jb208L2E+PC9kaXY+Cjwvc3Bhbj4KPC9kaXY+PC9kaXY+Cgo8YnI+
CjwhLS1Hb29nbGUgYWRzIHBsYWNlaG9sZGVyIC0tPgo8ZGl2IGlkPSJhZHhTcG9uTGluazIiIGNs
YXNzPSJjb2x1bW5Hcm91cCI+PHRhYmxlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IiIgYm9yZGVyPSIw
IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlOyBib3Jk
ZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweDsgYm9yZGVyLWNvbG9yOiAjOWRhM2Fk
Ij4KPHRib2R5Pjx0cj4KPHRkIHN0eWxlPSJmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fu
cy1zZXJpZjsgZm9udC1zaXplOjEycHg7IGNvbG9yOiMzMzMzMzM7IiB2YWxpZ249InRvcCI+PHRh
YmxlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGlu
Zz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7Ij4KPHRib2R5
Pjx0cj4KIDx0ZCBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojOWRhM2FkOyB3aWR0aDo3MCU7IGhl
aWdodDoyMHB4OyBwYWRkaW5nLXRvcDoycHg7IHBhZGRpbmctbGVmdDoxMXB4OyBwYWRkaW5nLWJv
dHRvbToycHg7IGZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNp
emU6MTJweDsgY29sb3I6IzMzMzMzMzsiIHdpZHRoPSI3MCUiIGhlaWdodD0iMjAiIGJnY29sb3I9
IiM5ZGEzYWQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3Jt
YWw7IGNvbG9yOiNmZmZmZmY7Ij5BZHMgYnkgR29vZ2xlPC9zcGFuPjwvdGQ+Cjx0ZCBzdHlsZT0i
cGFkZGluZy10b3A6MnB4OyBwYWRkaW5nLWJvdHRvbToycHg7IHdpZHRoOjMwJTsgaGVpZ2h0OjIw
cHg7IGFsaWduOnJpZ2h0OyBiYWNrZ3JvdW5kLWNvbG9yOiM5ZGEzYWQ7IGZvbnQtZmFtaWx5OkFy
aWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJweDsgY29sb3I6IzMzMzMzMzsi
IHdpZHRoPSIzMCUiIGhlaWdodD0iMjAiIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iIzlkYTNhZCI+
PHNwYW4+PGEgc3R5bGU9ImZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBj
b2xvcjogd2hpdGU7IGZvbnQtc2l6ZToxMnB4OyBwYWRkaW5nLXJpZ2h0OjdweDsiIGhyZWY9Imh0
dHA6Ly93d3cubnl0aW1lcy5jb20vcmVmL21lbWJlcmNlbnRlci9mYXEvbGlua2luZ3FhMTYuaHRt
bCIgb25jbGljaz0id2luZG93Lm9wZW4oJycsJ3BvcHVwYWQnLCdsZWZ0PTEwMCx0b3A9MTAwLHdp
ZHRoPTM5MCxoZWlnaHQ9MzkwLHJlc2l6YWJsZSxzY3JvbGxiYXJzPW5vJykiIHRhcmdldD0icG9w
dXBhZCI+d2hhdCdzIHRoaXM/PC9hPjwvc3Bhbj48L3RkPgo8L3RyPgo8L3Rib2R5PjwvdGFibGU+
CjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIHN0eWxlPSJoZWlnaHQ6MTEwcHg7IGZvbnQtZmFtaWx5OkFy
aWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJweDsgY29sb3I6IzMzMzMzMzsi
IHZhbGlnbj0idG9wIiBoZWlnaHQ9IjExMCI+PHRhYmxlIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEw
MCUiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBiZ2NvbG9yPSIj
ZjhmOGY5IiBzdHlsZT0iaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6NHB4OyBiYWNr
Z3JvdW5kLWNvbG9yOiNmOGY4Zjk7Ij4KPHRib2R5Pjx0cj4KPHRkIHN0eWxlPSJjdXJzb3I6cG9p
bnRlcjsgY3Vyc29yOmhhbmQ7IGZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlm
OyBmb250LXNpemU6MTJweDsgY29sb3I6IzMzMzMzMzsgYmFja2dyb3VuZC1jb2xvcjojZjhmOGY5
OyIgaWQ9InRhdzAiIHZhbGlnbj0ibWlkZGxlIiBvbmZvY3VzPSJzcygnZ28gdG8gY3QuaGVhcnRz
Y2FuLmdvb2dsZXBhZ2VzLmNvbScsJ2F3MCcpIiBvbm1vdXNlb3Zlcj0ic3MoJ2dvIHRvIGN0Lmhl
YXJ0c2Nhbi5nb29nbGVwYWdlcy5jb20nLCdhdzAnKSIgb25tb3VzZW91dD0iY3MoKSIgb25jbGlj
az0iZ2EodGhpcyxldmVudCkiPjxkaXYgc3R5bGU9ImxpbmUtaGVpZ2h0OjE0cHg7IHBhZGRpbmct
bGVmdDo3cHg7IHBhZGRpbmctYm90dG9tOjVweDsiPjxhIGlkPSJhdzAiIGhyZWY9Imh0dHA6Ly9w
YWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvaWNsaz9zYT1sJmFtcDthaT1CeGMt
T0JNWVlTY3pYRnBpS3FBT3duSVRLRGNUWXNpYXcwLVhHQXNDTnR3R0ExR0VRQVJnRUlKenotQUVv
QXpnQVVLUG80NnY4X19fX193Rmd5ZWItaHNpam9CbXlBUTkzZDNjdWJubDBhVzFsY3k1amIyM0lB
UUhhQVRWb2RIUndPaTh2ZDNkM0xtNTVkR2x0WlhNdVkyOXRMekl3TURndk1URXZNVEF2YUdWaGJI
Um9MekV3YUdWaGNuUXVhSFJ0YklBQ0FhZ0RBZWdEcndUb0F5M29BN2dENkFQOEFlZ0QtQUgxQXdJ
RUFBRDFBeVFBQUFDWUJBQSZhbXA7bnVtPTQmYW1wO2FkdXJsPWh0dHA6Ly9jdC5oZWFydHNjYW4u
Z29vZ2xlcGFnZXMuY29tJmFtcDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciIgdGFyZ2V0
PSJfYmxhbmsiIHN0eWxlPSJmb250LXNpemU6MTJweDsgY29sb3I6IzAwMDA2NjsgZm9udC13ZWln
aHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsiIG9uZm9jdXM9InNzKCdnbyB0byBj
dC5oZWFydHNjYW4uZ29vZ2xlcGFnZXMuY29tJywnYXcwJykiIG9uY2xpY2s9ImhhKCdhdzAnKSIg
b25tb3VzZW92ZXI9InJldHVybiBzcygnZ28gdG8gY3QuaGVhcnRzY2FuLmdvb2dsZXBhZ2VzLmNv
bScsJ2F3MCcpIiBvbm1vdXNlb3V0PSJjcygpIj5DVCBIZWFydCBTY2FuOiBhIHJlc291cmNlPC9h
Pjxicj4KPGEgaHJlZj0iaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2Vh
ZC9pY2xrP3NhPWwmYW1wO2FpPUJ4Yy1PQk1ZWVNjelhGcGlLcUFPd25JVEtEY1RZc2lhdzAtWEdB
c0NOdHdHQTFHRVFBUmdFSUp6ei1BRW9BemdBVUtQbzQ2djhfX19fX3dGZ3llYi1oc2lqb0JteUFR
OTNkM2N1Ym5sMGFXMWxjeTVqYjIzSUFRSGFBVFZvZEhSd09pOHZkM2QzTG01NWRHbHRaWE11WTI5
dEx6SXdNRGd2TVRFdk1UQXZhR1ZoYkhSb0x6RXdhR1ZoY25RdWFIUnRiSUFDQWFnREFlZ0Ryd1Rv
QXkzb0E3Z0Q2QVA4QWVnRC1BSDFBd0lFQUFEMUF5UUFBQUNZQkFBJmFtcDtudW09NCZhbXA7YWR1
cmw9aHR0cDovL2N0LmhlYXJ0c2Nhbi5nb29nbGVwYWdlcy5jb20mYW1wO2NsaWVudD1jYS1ueXRp
bWVzX2FydGljbGVfdmFyIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9ImZvbnQtZmFtaWx5OkFyaWFs
LEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTFweDtjb2xvcjojMzMzMzMzO3RleHQt
ZGVjb3JhdGlvbjpub25lOyI+UGF0aWVudCBhbmQgUGh5c2ljaWFuIEVkdWNhdGlvbiA2NC1zbGlj
ZSBJbWFnaW5nIG9mIEhlYXJ0IERpc2Vhc2U8L2E+PGJyPgo8YSBocmVmPSJodHRwOi8vcGFnZWFk
Mi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2ljbGs/c2E9bCZhbXA7YWk9QnhjLU9CTVlZ
U2N6WEZwaUtxQU93bklUS0RjVFlzaWF3MC1YR0FzQ050d0dBMUdFUUFSZ0VJSnp6LUFFb0F6Z0FV
S1BvNDZ2OF9fX19fd0ZneWViLWhzaWpvQm15QVE5M2QzY3VibmwwYVcxbGN5NWpiMjNJQVFIYUFU
Vm9kSFJ3T2k4dmQzZDNMbTU1ZEdsdFpYTXVZMjl0THpJd01EZ3ZNVEV2TVRBdmFHVmhiSFJvTHpF
d2FHVmhjblF1YUhSdGJJQUNBYWdEQWVnRHJ3VG9BeTNvQTdnRDZBUDhBZWdELUFIMUF3SUVBQUQx
QXlRQUFBQ1lCQUEmYW1wO251bT00JmFtcDthZHVybD1odHRwOi8vY3QuaGVhcnRzY2FuLmdvb2ds
ZXBhZ2VzLmNvbSZhbXA7Y2xpZW50PWNhLW55dGltZXNfYXJ0aWNsZV92YXIiIHRhcmdldD0iX2Js
YW5rIiBzdHlsZT0iZm9udC1zaXplOjEwcHg7IGNvbG9yOiMwMDAwNjY7IGZvbnQtd2VpZ2h0Om5v
cm1hbDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij5jdC5oZWFydHNjYW4uZ29vZ2xlcGFnZXMuY29t
PC9hPjwvZGl2Pgo8L3RkPgo8L3RyPgo8dHI+Cjx0ZCBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IGN1
cnNvcjpoYW5kOyBmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1z
aXplOjEycHg7IGNvbG9yOiMzMzMzMzM7IGJhY2tncm91bmQtY29sb3I6I2Y4ZjhmOTsiIGlkPSJ0
YXcxIiB2YWxpZ249Im1pZGRsZSIgb25mb2N1cz0ic3MoJ2dvIHRvIGJhcmJsb3Nlc3dlaWdodC5j
b20nLCdhdzEnKSIgb25tb3VzZW92ZXI9InNzKCdnbyB0byBiYXJibG9zZXN3ZWlnaHQuY29tJywn
YXcxJykiIG9ubW91c2VvdXQ9ImNzKCkiIG9uY2xpY2s9ImdhKHRoaXMsZXZlbnQpIj48ZGl2IHN0
eWxlPSJsaW5lLWhlaWdodDoxNHB4OyBwYWRkaW5nLWxlZnQ6N3B4OyBwYWRkaW5nLWJvdHRvbTo1
cHg7Ij48YSBpZD0iYXcxIiBocmVmPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5j
b20vcGFnZWFkL2ljbGs/c2E9bCZhbXA7YWk9QmRSbEtCTVlZU2N6WEZwaUtxQU93bklUS0RjdXQt
SUFCMThEay1BZkFqYmNCZ013NkVBSVlCU0NjOF9nQktBTTRBRkMwcktfa192X19fXzhCWU1ubV9v
YklvNkFab0FHRDU3UHVBN0lCRDNkM2R5NXVlWFJwYldWekxtTnZiY2dCQWRvQk5XaDBkSEE2THk5
M2QzY3VibmwwYVcxbGN5NWpiMjB2TWpBd09DOHhNUzh4TUM5b1pXRnNkR2d2TVRCb1pXRnlkQzVv
ZEcxc3FRSlhNUFRfM3hXblBxZ0RBZWdEcndUb0F5M29BN2dENkFQOEFlZ0QtQUgxQXdJRUFBRDFB
eVFBQUFDWUJBQSZhbXA7bnVtPTUmYW1wO2FkdXJsPWh0dHA6Ly93d3cuYmFyYmxvc2Vzd2VpZ2h0
LmNvbS93ZWlnaHRsb3Nzc3RvcnkxLmh0bSZhbXA7Y2xpZW50PWNhLW55dGltZXNfYXJ0aWNsZV92
YXIiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZm9udC1zaXplOjEycHg7IGNvbG9yOiMwMDAwNjY7
IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IiBvbmZvY3VzPSJz
cygnZ28gdG8gYmFyYmxvc2Vzd2VpZ2h0LmNvbScsJ2F3MScpIiBvbmNsaWNrPSJoYSgnYXcxJyki
IG9ubW91c2VvdmVyPSJyZXR1cm4gc3MoJ2dvIHRvIGJhcmJsb3Nlc3dlaWdodC5jb20nLCdhdzEn
KSIgb25tb3VzZW91dD0iY3MoKSI+MiBTdGVwcyB0byBBIEZsYXQgU3RvbWFjaDwvYT48YnI+Cjxh
IGhyZWY9Imh0dHA6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvaWNsaz9z
YT1sJmFtcDthaT1CZFJsS0JNWVlTY3pYRnBpS3FBT3duSVRLRGN1dC1JQUIxOERrLUFmQWpiY0Jn
TXc2RUFJWUJTQ2M4X2dCS0FNNEFGQzByS19rX3ZfX19fOEJZTW5tX29iSW82QVpvQUdENTdQdUE3
SUJEM2QzZHk1dWVYUnBiV1Z6TG1OdmJjZ0JBZG9CTldoMGRIQTZMeTkzZDNjdWJubDBhVzFsY3k1
amIyMHZNakF3T0M4eE1TOHhNQzlvWldGc2RHZ3ZNVEJvWldGeWRDNW9kRzFzcVFKWE1QVF8zeFdu
UHFnREFlZ0Ryd1RvQXkzb0E3Z0Q2QVA4QWVnRC1BSDFBd0lFQUFEMUF5UUFBQUNZQkFBJmFtcDtu
dW09NSZhbXA7YWR1cmw9aHR0cDovL3d3dy5iYXJibG9zZXN3ZWlnaHQuY29tL3dlaWdodGxvc3Nz
dG9yeTEuaHRtJmFtcDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciIgdGFyZ2V0PSJfYmxh
bmsiIHN0eWxlPSJmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1z
aXplOjExcHg7Y29sb3I6IzMzMzMzMzt0ZXh0LWRlY29yYXRpb246bm9uZTsiPkhvdyBJIERyb3Bw
ZWQgMTEgbGJzIGluIDIgV2Vla3MgYnkgRm9sbG93aW5nIDIgRWFzeSBTdGVwcy48L2E+PGJyPgo8
YSBocmVmPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2ljbGs/
c2E9bCZhbXA7YWk9QmRSbEtCTVlZU2N6WEZwaUtxQU93bklUS0RjdXQtSUFCMThEay1BZkFqYmNC
Z013NkVBSVlCU0NjOF9nQktBTTRBRkMwcktfa192X19fXzhCWU1ubV9vYklvNkFab0FHRDU3UHVB
N0lCRDNkM2R5NXVlWFJwYldWekxtTnZiY2dCQWRvQk5XaDBkSEE2THk5M2QzY3VibmwwYVcxbGN5
NWpiMjB2TWpBd09DOHhNUzh4TUM5b1pXRnNkR2d2TVRCb1pXRnlkQzVvZEcxc3FRSlhNUFRfM3hX
blBxZ0RBZWdEcndUb0F5M29BN2dENkFQOEFlZ0QtQUgxQXdJRUFBRDFBeVFBQUFDWUJBQSZhbXA7
bnVtPTUmYW1wO2FkdXJsPWh0dHA6Ly93d3cuYmFyYmxvc2Vzd2VpZ2h0LmNvbS93ZWlnaHRsb3Nz
c3RvcnkxLmh0bSZhbXA7Y2xpZW50PWNhLW55dGltZXNfYXJ0aWNsZV92YXIiIHRhcmdldD0iX2Js
YW5rIiBzdHlsZT0iZm9udC1zaXplOjEwcHg7IGNvbG9yOiMwMDAwNjY7IGZvbnQtd2VpZ2h0Om5v
cm1hbDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij5iYXJibG9zZXN3ZWlnaHQuY29tPC9hPjwvZGl2
Pgo8L3RkPgo8L3RyPgo8dHI+Cjx0ZCBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IGN1cnNvcjpoYW5k
OyBmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjEycHg7
IGNvbG9yOiMzMzMzMzM7IGJhY2tncm91bmQtY29sb3I6I2Y4ZjhmOTsiIGlkPSJ0YXcyIiB2YWxp
Z249Im1pZGRsZSIgb25mb2N1cz0ic3MoJ2dvIHRvIHd3dy52ZXNjZWxsLmNvbS9hZHVsdC1zdGVt
LWNlbGxzJywnYXcyJykiIG9ubW91c2VvdmVyPSJzcygnZ28gdG8gd3d3LnZlc2NlbGwuY29tL2Fk
dWx0LXN0ZW0tY2VsbHMnLCdhdzInKSIgb25tb3VzZW91dD0iY3MoKSIgb25jbGljaz0iZ2EodGhp
cyxldmVudCkiPjxkaXYgc3R5bGU9ImxpbmUtaGVpZ2h0OjE0cHg7IHBhZGRpbmctbGVmdDo3cHg7
IHBhZGRpbmctYm90dG9tOjVweDsiPjxhIGlkPSJhdzIiIGhyZWY9Imh0dHA6Ly9wYWdlYWQyLmdv
b2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvaWNsaz9zYT1sJmFtcDthaT1CVkY1dkJNWVlTY3pY
RnBpS3FBT3duSVRLRGNqdHpvY0I1cnpqMmdqQWpiY0JzSmhHRUFNWUJpQ2M4X2dCS0FNNEFGREd6
XzJNQkdESjV2Nkd5S09nR2FBQnRJZU9fZ095QVE5M2QzY3VibmwwYVcxbGN5NWpiMjNJQVFIYUFU
Vm9kSFJ3T2k4dmQzZDNMbTU1ZEdsdFpYTXVZMjl0THpJd01EZ3ZNVEV2TVRBdmFHVmhiSFJvTHpF
d2FHVmhjblF1YUhSdGJJQUNBYWdEQWVnRHJ3VG9BeTNvQTdnRDZBUDhBZWdELUFIMUF3SUVBQUQx
QXlRQUFBQ1lCQUEmYW1wO251bT02JmFtcDthZHVybD1odHRwOi8vd3d3LnZlc2NlbGwuY29tL2Fk
dWx0LXN0ZW0tY2VsbHMvaGVhcnQtbXVzY2xlLWhlYWx0aC1hc3BlY3RzLnBocCZhbXA7Y2xpZW50
PWNhLW55dGltZXNfYXJ0aWNsZV92YXIiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZm9udC1zaXpl
OjEycHg7IGNvbG9yOiMwMDAwNjY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjp1
bmRlcmxpbmU7IiBvbmZvY3VzPSJzcygnZ28gdG8gd3d3LnZlc2NlbGwuY29tL2FkdWx0LXN0ZW0t
Y2VsbHMnLCdhdzInKSIgb25jbGljaz0iaGEoJ2F3MicpIiBvbm1vdXNlb3Zlcj0icmV0dXJuIHNz
KCdnbyB0byB3d3cudmVzY2VsbC5jb20vYWR1bHQtc3RlbS1jZWxscycsJ2F3MicpIiBvbm1vdXNl
b3V0PSJjcygpIj5GaXggWW91ciBEYW1hZ2VkIEhlYXJ0PC9hPjxicj4KPGEgaHJlZj0iaHR0cDov
L3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9pY2xrP3NhPWwmYW1wO2FpPUJW
RjV2Qk1ZWVNjelhGcGlLcUFPd25JVEtEY2p0em9jQjVyemoyZ2pBamJjQnNKaEdFQU1ZQmlDYzhf
Z0JLQU00QUZER3pfMk1CR0RKNXY2R3lLT2dHYUFCdEllT19nT3lBUTkzZDNjdWJubDBhVzFsY3k1
amIyM0lBUUhhQVRWb2RIUndPaTh2ZDNkM0xtNTVkR2x0WlhNdVkyOXRMekl3TURndk1URXZNVEF2
YUdWaGJIUm9MekV3YUdWaGNuUXVhSFJ0YklBQ0FhZ0RBZWdEcndUb0F5M29BN2dENkFQOEFlZ0Qt
QUgxQXdJRUFBRDFBeVFBQUFDWUJBQSZhbXA7bnVtPTYmYW1wO2FkdXJsPWh0dHA6Ly93d3cudmVz
Y2VsbC5jb20vYWR1bHQtc3RlbS1jZWxscy9oZWFydC1tdXNjbGUtaGVhbHRoLWFzcGVjdHMucGhw
JmFtcDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxl
PSJmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjExcHg7
Y29sb3I6IzMzMzMzMzt0ZXh0LWRlY29yYXRpb246bm9uZTsiPllvdXIgU3RlbSBDZWxscyBDYW4g
Rml4IFlvdXIgSGVhcnQhIEEgRmluZXIgUXVhbGl0eSBvZiBMaWZlIGlzIFBvc3NpYmxlPC9hPjxi
cj4KPGEgaHJlZj0iaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9p
Y2xrP3NhPWwmYW1wO2FpPUJWRjV2Qk1ZWVNjelhGcGlLcUFPd25JVEtEY2p0em9jQjVyemoyZ2pB
amJjQnNKaEdFQU1ZQmlDYzhfZ0JLQU00QUZER3pfMk1CR0RKNXY2R3lLT2dHYUFCdEllT19nT3lB
UTkzZDNjdWJubDBhVzFsY3k1amIyM0lBUUhhQVRWb2RIUndPaTh2ZDNkM0xtNTVkR2x0WlhNdVky
OXRMekl3TURndk1URXZNVEF2YUdWaGJIUm9MekV3YUdWaGNuUXVhSFJ0YklBQ0FhZ0RBZWdEcndU
b0F5M29BN2dENkFQOEFlZ0QtQUgxQXdJRUFBRDFBeVFBQUFDWUJBQSZhbXA7bnVtPTYmYW1wO2Fk
dXJsPWh0dHA6Ly93d3cudmVzY2VsbC5jb20vYWR1bHQtc3RlbS1jZWxscy9oZWFydC1tdXNjbGUt
aGVhbHRoLWFzcGVjdHMucGhwJmFtcDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciIgdGFy
Z2V0PSJfYmxhbmsiIHN0eWxlPSJmb250LXNpemU6MTBweDsgY29sb3I6IzAwMDA2NjsgZm9udC13
ZWlnaHQ6bm9ybWFsOyB0ZXh0LWRlY29yYXRpb246bm9uZTsiPnd3dy52ZXNjZWxsLmNvbS9hZHVs
dC1zdGVtLWNlbGxzPC9hPjwvZGl2Pgo8L3RkPgo8L3RyPgo8L3Rib2R5PjwvdGFibGU+CjwvdGQ+
CjwvdHI+CjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlw
dCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQppZiAoKCF3aW5kb3cubnl0X2dvb2dsZV9h
ZF9jaGFubmVsKSAmJiAod2luZG93Lmdvb2dsZV9hZF9jaGFubmVsKSkgeyB2YXIgbnl0X2dvb2ds
ZV9hZF9jaGFubmVsID0gZ29vZ2xlX2FkX2NoYW5uZWw7IH0KaWYgKCghd2luZG93Lm55dF9nb29n
bGVfaGludHMpICYmICh3aW5kb3cuZ29vZ2xlX2hpbnRzKSkgeyB2YXIgbnl0X2dvb2dsZV9oaW50
cyA9IGdvb2dsZV9oaW50czsgfQppZiAoKCF3aW5kb3cubnl0X2dvb2dsZV9jb250ZW50cykgJiYg
KHdpbmRvdy5nb29nbGVfY29udGVudHMpKSB7IHZhciBueXRfZ29vZ2xlX2NvbnRlbnRzID0gZ29v
Z2xlX2NvbnRlbnRzOyB9CmZ1bmN0aW9uIHNzKHcsaWQpIHt3aW5kb3cuc3RhdHVzID0gdztyZXR1
cm4gdHJ1ZTt9ZnVuY3Rpb24gY3MoKXt3aW5kb3cuc3RhdHVzPScnO31mdW5jdGlvbiBoYShhKXsg
IHBoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsgbmhpPXBoYS5ocmVmLmluZGV4T2YoIiZu
aD0iKTtpZihuaGkgPCAxKSB7cGhiPXBoYS5ocmVmKyImbmg9MSI7fSBwaGEuaHJlZj1waGI7fWZ1
bmN0aW9uIGNhKGEpIHsgIHBoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsgbmNpPXBoYS5o
cmVmLmluZGV4T2YoIiZuYz0iKTtpZihuY2kgPCAxKSB7cGhiPXBoYS5ocmVmKyImbmM9MSI7fSBw
aGEuaHJlZj1waGI7d2luZG93Lm9wZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkuaHJlZik7
fWZ1bmN0aW9uIGdhKG8sZSkge2lmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCkge2E9by5pZC5z
dWJzdHJpbmcoMSk7cCA9ICIiO3IgPSAiIjtnID0gZS50YXJnZXQ7aWYgKGcpIHt0ID0gZy5pZDtm
ID0gZy5wYXJlbnROb2RlO2lmIChmKSB7cCA9IGYuaWQ7aCA9IGYucGFyZW50Tm9kZTtpZiAoaCly
ID0gaC5pZDt9fSBlbHNlIHtoID0gZS5zcmNFbGVtZW50O2YgPSBoLnBhcmVudE5vZGU7aWYgKGYp
cCA9IGYuaWQ7dCA9IGguaWQ7fWlmICh0PT1hIHx8IHA9PWEgfHwgcj09YSlyZXR1cm4gdHJ1ZTtw
aGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7IG5iaT1waGEuaHJlZi5pbmRleE9mKCImbmI9
Iik7aWYobmJpIDwgMSkge3BoYj1waGEuaHJlZisiJm5iPTEiO30gcGhhLmhyZWY9cGhiO3dpbmRv
dy5vcGVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpLmhyZWYpO319CiAKZnVuY3Rpb24gZ29v
Z2xlX2FkX3JlcXVlc3RfZG9uZShhZHMpIHsKCXZhciBzID0gIiI7CiAKCWlmIChhZHMubGVuZ3Ro
ID09IDApIHsKCQlyZXR1cm47Cgl9IGVsc2UgaWYgKGdvb2dsZV9hZC5iaWR0eXBlID09ICJDUE0i
ICYmIGFkc1swXS50eXBlICE9ICdpbWFnZScpIHsKCQlnb29nbGVfYWRfc2VjdGlvbl9saW5lX2hl
aWdodCA9ICIyMnB4IjsKCQlnb29nbGVfYWRfc2VjdGlvbl9wYWRkaW5nX2xlZnQgPSAiMTJweCI7
CgkJZ29vZ2xlX3RpdGxlX2xpbmtfZm9udF9zaXplID0gIjE4cHgiOwoJCWdvb2dsZV9hZF90ZXh0
X2ZvbnRfc2l6ZSA9ICIxNHB4IjsKCQlnb29nbGVfdmlzaWJsZV91cmxfZm9udF9zaXplID0gIjE0
cHgiOwoJCWdvb2dsZV90YXJnZXRfZGl2ID0gJ2FkeFNwb25MaW5rMic7Cgl9IGVsc2UgaWYgKGFk
c1swXS50eXBlICE9ICdpbWFnZScpIHsKCQlnb29nbGVfYWRfc2VjdGlvbl9saW5lX2hlaWdodCA9
ICIxNHB4IjsKCQlnb29nbGVfYWRfc2VjdGlvbl9wYWRkaW5nX2xlZnQgPSAiN3B4IjsKCQlnb29n
bGVfdGl0bGVfbGlua19mb250X3NpemUgPSAiMTJweCI7CgkJZ29vZ2xlX2FkX3RleHRfZm9udF9z
aXplID0gIjExcHgiOwoJCWdvb2dsZV92aXNpYmxlX3VybF9mb250X3NpemUgPSAiMTBweCI7CgkJ
Z29vZ2xlX3RhcmdldF9kaXYgPSAnYWR4U3BvbkxpbmsyJzsKCX0KCXMgKz0gJzx0YWJsZSB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5n
PSIwIiBzdHlsZT0id2lkdGg6MTAwJTsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXdpZHRo
OiAxcHg7IGJvcmRlci1jb2xvcjogIzlkYTNhZCIgPlxuPHRyPlxuPHRkIHN0eWxlPSJmb250LWZh
bWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjEycHg7IGNvbG9yOiMz
MzMzMzM7IiB2YWxpZ249InRvcCI+PHRhYmxlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGNl
bGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAw
JTsgaGVpZ2h0OjEwMCU7Ij5cbjx0cj5cbiA8dGQgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6Izlk
YTNhZDsgd2lkdGg6NzAlOyBoZWlnaHQ6MjBweDsgcGFkZGluZy10b3A6MnB4OyBwYWRkaW5nLWxl
ZnQ6MTFweDsgcGFkZGluZy1ib3R0b206MnB4OyBmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Es
c2Fucy1zZXJpZjsgZm9udC1zaXplOjEycHg7IGNvbG9yOiMzMzMzMzM7IiB3aWR0aD0iNzAlIiBo
ZWlnaHQ9IjIwIiBiZ2NvbG9yPSIjOWRhM2FkIiA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTJw
eDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6I2ZmZmZmZjsiID5BZHMgYnkgR29vZ2xlPC9z
cGFuPjwvdGQ+XG48dGQgc3R5bGU9InBhZGRpbmctdG9wOjJweDsgcGFkZGluZy1ib3R0b206MnB4
OyB3aWR0aDozMCU7IGhlaWdodDoyMHB4OyBhbGlnbjpyaWdodDsgYmFja2dyb3VuZC1jb2xvcjoj
OWRhM2FkOyBmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXpl
OjEycHg7IGNvbG9yOiMzMzMzMzM7IiB3aWR0aD0iMzAlIiBoZWlnaHQ9IjIwIiBhbGlnbj0icmln
aHQiIGJnY29sb3I9IiM5ZGEzYWQiID48c3Bhbj48YSBzdHlsZT0iZm9udC1mYW1pbHk6QXJpYWws
SGVsdmV0aWNhLHNhbnMtc2VyaWY7IGNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOjEycHg7IHBhZGRp
bmctcmlnaHQ6N3B4OyIgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9yZWYvbWVtYmVyY2Vu
dGVyL2ZhcS9saW5raW5ncWExNi5odG1sIiBvbmNsaWNrPSJ3aW5kb3cub3BlbihcJ1wnLFwncG9w
dXBhZFwnLFwnbGVmdD0xMDAsdG9wPTEwMCx3aWR0aD0zOTAsaGVpZ2h0PTM5MCxyZXNpemFibGUs
c2Nyb2xsYmFycz1ub1wnKSIgdGFyZ2V0PSJwb3B1cGFkIj53aGF0XCdzIHRoaXM/PC9hPjwvc3Bh
bj48L3RkPlxuPC90cj5cbjwvdGFibGU+XG48L3RkPlxuPC90cj5cbjx0cj5cbjx0ZCBzdHlsZT0i
aGVpZ2h0OjExMHB4OyBmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9u
dC1zaXplOjEycHg7IGNvbG9yOiMzMzMzMzM7IiB2YWxpZ249InRvcCIgaGVpZ2h0PSIxMTAiPjx0
YWJsZSBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNp
bmc9IjAiIGJvcmRlcj0iMCIgYmdjb2xvcj0iI2Y4ZjhmOSIgc3R5bGU9ImhlaWdodDoxMDAlOyB3
aWR0aDoxMDAlOyBwYWRkaW5nOjRweDsgYmFja2dyb3VuZC1jb2xvcjojZjhmOGY5OyI+XG4nOwoJ
Zm9yIChpID0gMDsgaSA8IGFkcy5sZW5ndGg7ICsraSkgewoJCXMgKz0gJzx0cj5cbjx0ZCBzdHls
ZT0iY3Vyc29yOnBvaW50ZXI7IGN1cnNvcjpoYW5kOyBmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRp
Y2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjEycHg7IGNvbG9yOiMzMzMzMzM7IGJhY2tncm91bmQt
Y29sb3I6I2Y4ZjhmOTsiIGlkPSJ0YXcnICsgaSArICciIHZhbGlnbj0ibWlkZGxlIiBvbkZvY3Vz
PSJzcyhcJ2dvIHRvICcgKyBhZHNbaV0udmlzaWJsZV91cmwgKyAnXCcsXCdhdycgKyBpICsgJ1wn
KSIgb25Nb3VzZU92ZXI9InNzKFwnZ28gdG8gJyArIGFkc1tpXS52aXNpYmxlX3VybCArICdcJyxc
J2F3JyArIGkgKyAnXCcpIiAgb25Nb3VzZU91dD0iY3MoKSIgb25DbGljaz0iZ2EodGhpcyxldmVu
dCkiPjxkaXYgc3R5bGU9ImxpbmUtaGVpZ2h0OicgKyBnb29nbGVfYWRfc2VjdGlvbl9saW5lX2hl
aWdodCArICc7IHBhZGRpbmctbGVmdDonICsgZ29vZ2xlX2FkX3NlY3Rpb25fcGFkZGluZ19sZWZ0
ICsgJzsgcGFkZGluZy1ib3R0b206NXB4OyIgPjxhIGlkPSJhdycgKyBpICsgJyIgaHJlZj0iJyAr
IGFkc1tpXS51cmwgKyAnIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9ImZvbnQtc2l6ZTonICsgZ29v
Z2xlX3RpdGxlX2xpbmtfZm9udF9zaXplICsgJzsgY29sb3I6IzAwMDA2NjsgZm9udC13ZWlnaHQ6
Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsiIG9uRm9jdXM9InNzKFwnZ28gdG8gJyAr
IGFkc1tpXS52aXNpYmxlX3VybCArICdcJyxcJ2F3JyArIGkgKyAnXCcpIiBvbkNsaWNrPSJoYShc
J2F3JyArIGkgKyAnXCcpIiBvbk1vdXNlT3Zlcj0icmV0dXJuIHNzKFwnZ28gdG8gJyArIGFkc1tp
XS52aXNpYmxlX3VybCArICdcJyxcJ2F3JyArIGkgKyAnXCcpIiAgb25Nb3VzZU91dD0iY3MoKSI+
JyArIGFkc1tpXS5saW5lMSArICc8L2E+PGJyPlxuPGEgaHJlZj0iJyArIGFkc1tpXS51cmwgKyAn
IiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9ImZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5z
LXNlcmlmOyBmb250LXNpemU6JyArIGdvb2dsZV9hZF90ZXh0X2ZvbnRfc2l6ZSArICc7Y29sb3I6
IzMzMzMzMzt0ZXh0LWRlY29yYXRpb246bm9uZTsiPicgKyBhZHNbaV0ubGluZTIgKyAnICcgKyBh
ZHNbaV0ubGluZTMgKyAnPC9hPjxicj5cbjxhIGhyZWY9IicgKyBhZHNbaV0udXJsICsgJyIgdGFy
Z2V0PSJfYmxhbmsiIHN0eWxlPSJmb250LXNpemU6JyArIGdvb2dsZV92aXNpYmxlX3VybF9mb250
X3NpemUgKyAnOyBjb2xvcjojMDAwMDY2OyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtZGVjb3Jh
dGlvbjpub25lOyI+JyArIGFkc1tpXS52aXNpYmxlX3VybCArICc8L2E+PC9kaXY+XG48L3RkPlxu
PC90cj5cbic7Cgl9CglzICs9ICc8L3RhYmxlPlxuPC90ZD5cbjwvdHI+XG48L3RhYmxlPic7Cglk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChnb29nbGVfdGFyZ2V0X2RpdikuaW5uZXJIVE1MID0gczsK
CXJldHVybjsKfQpnb29nbGVfYWRfb3V0cHV0ID0gJ2pzJzsKZ29vZ2xlX21heF9udW1fYWRzID0g
JzMnOwpnb29nbGVfYWRfY2xpZW50ID0gJ255dGltZXNfYXJ0aWNsZV92YXInOwpnb29nbGVfc2Fm
ZSA9ICdoaWdoJzsKZ29vZ2xlX2hpbnRzID0gbnl0X2dvb2dsZV9oaW50czsKZ29vZ2xlX2FkX2No
YW5uZWwgPSBueXRfZ29vZ2xlX2FkX2NoYW5uZWw7CmlmICh3aW5kb3cubnl0X2dvb2dsZV9jb3Vu
dCkgeyBnb29nbGVfc2tpcCA9IHBhcnNlSW50KG55dF9nb29nbGVfY291bnQpKzM7IH0gZWxzZSB7
IGdvb2dsZV9za2lwID0gMzsgfQovLyAtLT4KPC9zY3JpcHQ+Cgo8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0iaHR0cDovL3BhZ2VhZDIuZ29v
Z2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9zaG93X2Fkcy5qcyI+PC9zY3JpcHQ+PHNjcmlwdD4g
d2luZG93Lmdvb2dsZV9yZW5kZXJfYWQoKTsgPC9zY3JpcHQ+PHNjcmlwdCBsYW5ndWFnZT0iSmF2
YVNjcmlwdDEuMSIgc3JjPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFn
ZWFkL2Fkcz9jbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciZhbXA7ZHQ9MTIyNjM2MDMyNDIw
NCZhbXA7aGludHM9U3RhdGlucyUyQihDaG9sZXN0ZXJvbC1Mb3dlcmluZyUyQkRydWdzKSUyQ0No
b2xlc3Rlcm9sJTJDSGVhcnQlMkNTdHJva2UmYW1wO2Fkc2FmZT1oaWdoJmFtcDtza2lwPTMmYW1w
O251bV9hZHM9MyZhbXA7b3V0cHV0PWpzJmFtcDtjb3JyZWxhdG9yPTEyMjYzNjAzMjQyMDQmYW1w
O2NoYW5uZWw9YXJfaGVhbHRoJmFtcDt1cmw9aHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVzLmNvbSUy
RjIwMDglMkYxMSUyRjEwJTJGaGVhbHRoJTJGMTBoZWFydC5odG1sJTNGX3IlM0QyJTI2cGFydG5l
ciUzRHJzc255dCUyNmVtYyUzRHJzcyUyNm9yZWYlM0RzbG9naW4lMjZvcmVmJTNEc2xvZ2luJmFt
cDtlYT0wJmFtcDtmcm09MCZhbXA7Z2FfdmlkPTE0NzczNTc4NC4xMjI2MzYwMzI0JmFtcDtnYV9z
aWQ9MTIyNjM2MDMyNCZhbXA7Z2FfaGlkPTQxMTYxMzM2OSZhbXA7Zmxhc2g9OS4wLjEyNCZhbXA7
dV9oPTEwNTAmYW1wO3Vfdz0xNjgwJmFtcDt1X2FoPTEwNTAmYW1wO3VfYXc9MTY4MCZhbXA7dV9j
ZD0yNCZhbXA7dV90ej0tNDgwJmFtcDt1X2hpcz0xJmFtcDt1X2phdmE9dHJ1ZSZhbXA7dV9ucGx1
Zz04JmFtcDt1X25taW1lPTEzOCI+PC9zY3JpcHQ+CgoKPGJyPgo8IS0tR29vZ2xlIGFkcyBwbGFj
ZWhvbGRlciAtLT4KPGRpdiBpZD0iYWR4U3BvbkxpbmtBIiBjbGFzcz0iY29sdW1uR3JvdXAiPjwv
ZGl2Pgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pgo8IS0tCmlmICgoIXdpbmRvdy5ueXRfZ29vZ2xlX2FkX2NoYW5uZWwpICYmICh3aW5kb3cuZ29v
Z2xlX2FkX2NoYW5uZWwpKSB7IHZhciBueXRfZ29vZ2xlX2FkX2NoYW5uZWwgPSBnb29nbGVfYWRf
Y2hhbm5lbDsgfQppZiAoKCF3aW5kb3cubnl0X2dvb2dsZV9oaW50cykgJiYgKHdpbmRvdy5nb29n
bGVfaGludHMpKSB7IHZhciBueXRfZ29vZ2xlX2hpbnRzID0gZ29vZ2xlX2hpbnRzOyB9CmlmICgo
IXdpbmRvdy5ueXRfZ29vZ2xlX2NvbnRlbnRzKSAmJiAod2luZG93Lmdvb2dsZV9jb250ZW50cykp
IHsgdmFyIG55dF9nb29nbGVfY29udGVudHMgPSBnb29nbGVfY29udGVudHM7IH0KZnVuY3Rpb24g
c3ModyxpZCkge3dpbmRvdy5zdGF0dXMgPSB3O3JldHVybiB0cnVlO31mdW5jdGlvbiBjcygpe3dp
bmRvdy5zdGF0dXM9Jyc7fWZ1bmN0aW9uIGhhKGEpeyAgcGhhPWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGEpOyBuaGk9cGhhLmhyZWYuaW5kZXhPZigiJm5oPSIpO2lmKG5oaSA8IDEpIHtwaGI9cGhh
LmhyZWYrIiZuaD0xIjt9IHBoYS5ocmVmPXBoYjt9ZnVuY3Rpb24gY2EoYSkgeyAgcGhhPWRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGEpOyBuY2k9cGhhLmhyZWYuaW5kZXhPZigiJm5jPSIpO2lmKG5j
aSA8IDEpIHtwaGI9cGhhLmhyZWYrIiZuYz0xIjt9IHBoYS5ocmVmPXBoYjt3aW5kb3cub3Blbihk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChhKS5ocmVmKTt9ZnVuY3Rpb24gZ2EobyxlKSB7aWYgKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKSB7YT1vLmlkLnN1YnN0cmluZygxKTtwID0gIiI7ciA9ICIi
O2cgPSBlLnRhcmdldDtpZiAoZykge3QgPSBnLmlkO2YgPSBnLnBhcmVudE5vZGU7aWYgKGYpIHtw
ID0gZi5pZDtoID0gZi5wYXJlbnROb2RlO2lmIChoKXIgPSBoLmlkO319IGVsc2Uge2ggPSBlLnNy
Y0VsZW1lbnQ7ZiA9IGgucGFyZW50Tm9kZTtpZiAoZilwID0gZi5pZDt0ID0gaC5pZDt9aWYgKHQ9
PWEgfHwgcD09YSB8fCByPT1hKXJldHVybiB0cnVlO3BoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChhKTsgbmJpPXBoYS5ocmVmLmluZGV4T2YoIiZuYj0iKTtpZihuYmkgPCAxKSB7cGhiPXBoYS5o
cmVmKyImbmI9MSI7fSBwaGEuaHJlZj1waGI7d2luZG93Lm9wZW4oZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoYSkuaHJlZik7fX0KIApmdW5jdGlvbiBnb29nbGVfYWRfcmVxdWVzdF9kb25lKGFkcykg
ewoJdmFyIHMgPSAiIjsKIAoJaWYgKGFkcy5sZW5ndGggPT0gMCkgewoJCXJldHVybjsKCX0gZWxz
ZSBpZiAoZ29vZ2xlX2FkLmJpZHR5cGUgPT0gIkNQTSIgJiYgYWRzWzBdLnR5cGUgIT0gJ2ltYWdl
JykgewoJCWdvb2dsZV9hZF9zZWN0aW9uX2xpbmVfaGVpZ2h0ID0gIjIycHgiOwoJCWdvb2dsZV9h
ZF9zZWN0aW9uX3BhZGRpbmdfbGVmdCA9ICIxMnB4IjsKCQlnb29nbGVfdGl0bGVfbGlua19mb250
X3NpemUgPSAiMThweCI7CgkJZ29vZ2xlX2FkX3RleHRfZm9udF9zaXplID0gIjE0cHgiOwoJCWdv
b2dsZV92aXNpYmxlX3VybF9mb250X3NpemUgPSAiMTRweCI7CgkJZ29vZ2xlX3RhcmdldF9kaXYg
PSAnYWR4U3BvbkxpbmtBJzsKCX0gZWxzZSBpZiAoYWRzWzBdLnR5cGUgIT0gJ2ltYWdlJykgewoJ
CWdvb2dsZV9hZF9zZWN0aW9uX2xpbmVfaGVpZ2h0ID0gIjE0cHgiOwoJCWdvb2dsZV9hZF9zZWN0
aW9uX3BhZGRpbmdfbGVmdCA9ICI3cHgiOwoJCWdvb2dsZV90aXRsZV9saW5rX2ZvbnRfc2l6ZSA9
ICIxMnB4IjsKCQlnb29nbGVfYWRfdGV4dF9mb250X3NpemUgPSAiMTFweCI7CgkJZ29vZ2xlX3Zp
c2libGVfdXJsX2ZvbnRfc2l6ZSA9ICIxMHB4IjsKCQlnb29nbGVfdGFyZ2V0X2RpdiA9ICdhZHhT
cG9uTGluayc7Cgl9CglzICs9ICc8dGFibGUgd2lkdGg9IjEwMCUiIGhlaWdodD0iIiBib3JkZXI9
IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgc3R5bGU9IndpZHRoOjEwMCU7IGJv
cmRlci1zdHlsZTogc29saWQ7IGJvcmRlci13aWR0aDogMXB4OyBib3JkZXItY29sb3I6ICM5ZGEz
YWQiID5cbjx0cj5cbjx0ZCBzdHlsZT0iZm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMt
c2VyaWY7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjojMzMzMzMzOyIgdmFsaWduPSJ0b3AiPjx0YWJs
ZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9
IjAiIGJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyI+XG48dHI+XG4g
PHRkIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiM5ZGEzYWQ7IHdpZHRoOjcwJTsgaGVpZ2h0OjIw
cHg7IHBhZGRpbmctdG9wOjJweDsgcGFkZGluZy1sZWZ0OjExcHg7IHBhZGRpbmctYm90dG9tOjJw
eDsgZm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMnB4
OyBjb2xvcjojMzMzMzMzOyIgd2lkdGg9IjcwJSIgaGVpZ2h0PSIyMCIgYmdjb2xvcj0iIzlkYTNh
ZCIgPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGNv
bG9yOiNmZmZmZmY7IiA+QWRzIGJ5IEdvb2dsZTwvc3Bhbj48L3RkPlxuPHRkIHN0eWxlPSJwYWRk
aW5nLXRvcDoycHg7IHBhZGRpbmctYm90dG9tOjJweDsgd2lkdGg6MzAlOyBoZWlnaHQ6MjBweDsg
YWxpZ246cmlnaHQ7IGJhY2tncm91bmQtY29sb3I6IzlkYTNhZDsgZm9udC1mYW1pbHk6QXJpYWws
SGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjojMzMzMzMzOyIgd2lk
dGg9IjMwJSIgaGVpZ2h0PSIyMCIgYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjOWRhM2FkIiA+PHNw
YW4+PGEgc3R5bGU9ImZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBjb2xv
cjogd2hpdGU7IGZvbnQtc2l6ZToxMnB4OyBwYWRkaW5nLXJpZ2h0OjdweDsiIGhyZWY9Imh0dHA6
Ly93d3cubnl0aW1lcy5jb20vcmVmL21lbWJlcmNlbnRlci9mYXEvbGlua2luZ3FhMTYuaHRtbCIg
b25jbGljaz0id2luZG93Lm9wZW4oXCdcJyxcJ3BvcHVwYWRcJyxcJ2xlZnQ9MTAwLHRvcD0xMDAs
d2lkdGg9MzkwLGhlaWdodD0zOTAscmVzaXphYmxlLHNjcm9sbGJhcnM9bm9cJykiIHRhcmdldD0i
cG9wdXBhZCI+d2hhdFwncyB0aGlzPzwvYT48L3NwYW4+PC90ZD5cbjwvdHI+XG48L3RhYmxlPlxu
PC90ZD5cbjwvdHI+XG48dHI+XG48dGQgc3R5bGU9ImhlaWdodDoxMTBweDsgZm9udC1mYW1pbHk6
QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjojMzMzMzMz
OyIgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTEwIj48dGFibGUgaGVpZ2h0PSIxMDAlIiB3aWR0aD0i
MTAwJSIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGJnY29sb3I9
IiNmOGY4ZjkiIHN0eWxlPSJoZWlnaHQ6MTAwJTsgd2lkdGg6MTAwJTsgcGFkZGluZzo0cHg7IGJh
Y2tncm91bmQtY29sb3I6I2Y4ZjhmOTsiPlxuJzsKCWZvciAoaSA9IDA7IGkgPCBhZHMubGVuZ3Ro
OyArK2kpIHsKCQlzICs9ICc8dHI+XG48dGQgc3R5bGU9ImN1cnNvcjpwb2ludGVyOyBjdXJzb3I6
aGFuZDsgZm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTox
MnB4OyBjb2xvcjojMzMzMzMzOyBiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjk7IiBpZD0idGF3JyAr
IGkgKyAnIiB2YWxpZ249Im1pZGRsZSIgb25Gb2N1cz0ic3MoXCdnbyB0byAnICsgYWRzW2ldLnZp
c2libGVfdXJsICsgJ1wnLFwnYXcnICsgaSArICdcJykiIG9uTW91c2VPdmVyPSJzcyhcJ2dvIHRv
ICcgKyBhZHNbaV0udmlzaWJsZV91cmwgKyAnXCcsXCdhdycgKyBpICsgJ1wnKSIgIG9uTW91c2VP
dXQ9ImNzKCkiIG9uQ2xpY2s9ImdhKHRoaXMsZXZlbnQpIj48ZGl2IHN0eWxlPSJsaW5lLWhlaWdo
dDonICsgZ29vZ2xlX2FkX3NlY3Rpb25fbGluZV9oZWlnaHQgKyAnOyBwYWRkaW5nLWxlZnQ6JyAr
IGdvb2dsZV9hZF9zZWN0aW9uX3BhZGRpbmdfbGVmdCArICc7IHBhZGRpbmctYm90dG9tOjVweDsi
ID48YSBpZD0iYXcnICsgaSArICciIGhyZWY9IicgKyBhZHNbaV0udXJsICsgJyIgdGFyZ2V0PSJf
YmxhbmsiIHN0eWxlPSJmb250LXNpemU6JyArIGdvb2dsZV90aXRsZV9saW5rX2ZvbnRfc2l6ZSAr
ICc7IGNvbG9yOiMwMDAwNjY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjp1bmRl
cmxpbmU7IiBvbkZvY3VzPSJzcyhcJ2dvIHRvICcgKyBhZHNbaV0udmlzaWJsZV91cmwgKyAnXCcs
XCdhdycgKyBpICsgJ1wnKSIgb25DbGljaz0iaGEoXCdhdycgKyBpICsgJ1wnKSIgb25Nb3VzZU92
ZXI9InJldHVybiBzcyhcJ2dvIHRvICcgKyBhZHNbaV0udmlzaWJsZV91cmwgKyAnXCcsXCdhdycg
KyBpICsgJ1wnKSIgIG9uTW91c2VPdXQ9ImNzKCkiPicgKyBhZHNbaV0ubGluZTEgKyAnPC9hPjxi
cj5cbjxhIGhyZWY9IicgKyBhZHNbaV0udXJsICsgJyIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJm
b250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOicgKyBnb29n
bGVfYWRfdGV4dF9mb250X3NpemUgKyAnO2NvbG9yOiMzMzMzMzM7dGV4dC1kZWNvcmF0aW9uOm5v
bmU7Ij4nICsgYWRzW2ldLmxpbmUyICsgJyAnICsgYWRzW2ldLmxpbmUzICsgJzwvYT48YnI+XG48
YSBocmVmPSInICsgYWRzW2ldLnVybCArICciIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZm9udC1z
aXplOicgKyBnb29nbGVfdmlzaWJsZV91cmxfZm9udF9zaXplICsgJzsgY29sb3I6IzAwMDA2Njsg
Zm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWRlY29yYXRpb246bm9uZTsiPicgKyBhZHNbaV0udmlz
aWJsZV91cmwgKyAnPC9hPjwvZGl2PlxuPC90ZD5cbjwvdHI+XG4nOwoJfQoJcyArPSAnPC90YWJs
ZT5cbjwvdGQ+XG48L3RyPlxuPC90YWJsZT4nOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ29v
Z2xlX3RhcmdldF9kaXYpLmlubmVySFRNTCA9IHM7CglyZXR1cm47Cn0KaWYgKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhZHhTcG9uTGluazIiKSkgeyBnb29nbGVfdGFyZ2V0aW5nID0gJ2NvbnRl
bnQnOyB9Cmdvb2dsZV9hZF9vdXRwdXQgPSAnanMnOwpnb29nbGVfbWF4X251bV9hZHMgPSAnMyc7
Cmdvb2dsZV9hZF9jbGllbnQgPSAnbnl0aW1lc19hcnRpY2xlX3Zhcic7Cmdvb2dsZV9zYWZlID0g
J2hpZ2gnOwpnb29nbGVfaGludHMgPSBueXRfZ29vZ2xlX2hpbnRzOwpnb29nbGVfYWRfY2hhbm5l
bCA9IG55dF9nb29nbGVfYWRfY2hhbm5lbDsKaWYgKHdpbmRvdy5ueXRfZ29vZ2xlX2NvdW50KSB7
IGdvb2dsZV9za2lwID0gbnl0X2dvb2dsZV9jb3VudDsgfQovLyAtLT4KPC9zY3JpcHQ+Cgo8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0iaHR0
cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9zaG93X2Fkcy5qcyI+PC9z
Y3JpcHQ+PHNjcmlwdD4gd2luZG93Lmdvb2dsZV9yZW5kZXJfYWQoKTsgPC9zY3JpcHQ+PHNjcmlw
dCBsYW5ndWFnZT0iSmF2YVNjcmlwdDEuMSIgc3JjPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5k
aWNhdGlvbi5jb20vcGFnZWFkL2Fkcz9jbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciZhbXA7
ZHQ9MTIyNjM2MDMyNDQxMyZhbXA7aGludHM9U3RhdGlucyUyQihDaG9sZXN0ZXJvbC1Mb3dlcmlu
ZyUyQkRydWdzKSUyQ0Nob2xlc3Rlcm9sJTJDSGVhcnQlMkNTdHJva2UmYW1wO2Fkc2FmZT1oaWdo
JmFtcDt0YXJnZXRpbmc9Y29udGVudCZhbXA7bnVtX2Fkcz0zJmFtcDtvdXRwdXQ9anMmYW1wO2Nv
cnJlbGF0b3I9MTIyNjM2MDMyNDIwNCZhbXA7Y2hhbm5lbD1hcl9oZWFsdGgmYW1wO3B2X2NoPWFy
X2hlYWx0aCUyQiZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cubnl0aW1lcy5jb20lMkYyMDA4JTJG
MTElMkYxMCUyRmhlYWx0aCUyRjEwaGVhcnQuaHRtbCUzRl9yJTNEMiUyNnBhcnRuZXIlM0Ryc3Nu
eXQlMjZlbWMlM0Ryc3MlMjZvcmVmJTNEc2xvZ2luJTI2b3JlZiUzRHNsb2dpbiZhbXA7ZWE9MCZh
bXA7ZnJtPTAmYW1wO2dhX3ZpZD0xNDc3MzU3ODQuMTIyNjM2MDMyNCZhbXA7Z2Ffc2lkPTEyMjYz
NjAzMjQmYW1wO2dhX2hpZD00MTE2MTMzNjkmYW1wO2ZsYXNoPTkuMC4xMjQmYW1wO3VfaD0xMDUw
JmFtcDt1X3c9MTY4MCZhbXA7dV9haD0xMDUwJmFtcDt1X2F3PTE2ODAmYW1wO3VfY2Q9MjQmYW1w
O3VfdHo9LTQ4MCZhbXA7dV9oaXM9MSZhbXA7dV9qYXZhPXRydWUmYW1wO3VfbnBsdWc9OCZhbXA7
dV9ubWltZT0xMzgiPjwvc2NyaXB0PgoKPC9kaXY+PCEtLWVuZCAjYkNvbHVtbiAtLT4KCjwhLS1N
T1RIUyAtLT4KCjwhLS1OWVRfREVCVUcgZWxlbWVudCBzdGFydDogbnl0aW1lczIwMDYvaG9tZXBh
Z2UvaW5zaWRlTllUaW1lc0JhciAtLT4KPGRpdiBpZD0iaW5zaWRlTllUaW1lcyI+CgoKCQkJPHNj
cmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0
dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvY29tbW9uL3NjcmVlbi9JbnNpZGVOWVRpbWVz
QnJvd3Nlci5qcyI+PC9zY3JpcHQ+CgkJCTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CgkJCQlpZiAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCl7CgkJ
CQkvL2luaXQgYnJvd3NlcgoJCQkJYnJvd3NlciA9IG5ldyBJbnNpZGVOWVRpbWVzQnJvd3Nlcigg
Imluc2lkZU5ZVGltZXNCcm93c2VyIiwgImxlZnRBcnJvdyIsICJyaWdodEFycm93IiwgNiAsIDEs
ICJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy9nbG9iYWwvYnV0dG9ucy8iICk7
CgoJCQkJLy9pbml0IHNsaWRlcwkJCQkJCQkJICAgCgkJCQkKCQkJCQlicm93c2VyLmFkZEl0ZW0o
IG5ldyBJbnNpZGVOWVRpbWVzSXRlbSggImh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8x
MC9hcnRzL3RlbGV2aXNpb24vMTBoZXJvLmh0bWwiICwgImh0dHA6Ly9ncmFwaGljczgubnl0aW1l
cy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvYXJ0cy90ZWxldmlzaW9uLzEwbW90aF9oZXJvZXMuanBn
IiAsICJGbGFnZ2luZyDigJhIZXJvZXPigJkgQXR0ZW1wdHMgU2VsZi1SZXNjdWUiICwgIlRlbGV2
aXNpb24iICwgImh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvYXJ0cy90ZWxldmlzaW9uL2lu
ZGV4Lmh0bWwiLCBmYWxzZSApICk7CgkJCQkJCgkJCQoJCQkJCWJyb3dzZXIuYWRkSXRlbSggbmV3
IEluc2lkZU5ZVGltZXNJdGVtKCAiaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL29w
aW5pb24vMTBhbGZvcmQuaHRtbCIgLCAiaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFn
ZXMvMjAwOC8xMS8xMC9vcGluaW9uLzEwbW90aC1vcGVkMy5naWYiICwgIiIgLCAiT3BpbmlvbiIg
LCAiaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wYWdlcy9vcGluaW9uL2luZGV4Lmh0bWwiLCBmYWxz
ZSApICk7CgkJCQkJCgkJCQoJCQkJCWJyb3dzZXIuYWRkSXRlbSggbmV3IEluc2lkZU5ZVGltZXNJ
dGVtKCAiaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL255cmVnaW9uLzEwYmlnY2l0
eS5odG1sIiAsICJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzExLzEw
L255cmVnaW9uLzEwbW90aF9iaWdjaXR5LmpwZyIgLCAiNiBDZW50cyBJcyA2IENlbnRzLCBidXQg
VGltZT8gVGhhdOKAmXMgU29tZXRoaW5nIiAsICJOLlkuIC8gUmVnaW9uIiAsICJodHRwOi8vd3d3
Lm55dGltZXMuY29tL3BhZ2VzL255cmVnaW9uL2luZGV4Lmh0bWwiLCBmYWxzZSApICk7CgkJCQkJ
CgkJCQoJCQkJCWJyb3dzZXIuYWRkSXRlbSggbmV3IEluc2lkZU5ZVGltZXNJdGVtKCAiaHR0cDov
L3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL3VzLzEwYmFrZS5odG1sIiAsICJodHRwOi8vZ3Jh
cGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzExLzEwL3VzLzEwbW90aF9iYWtlLmpwZyIg
LCAiQmFrZSBTYWxlcyBGYWxsIFZpY3RpbSB0byBQdXNoIGZvciBIZWFsdGhpZXIgRm9vZHMiICwg
IlUuUy4iICwgImh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvbmF0aW9uYWwvaW5kZXguaHRt
bCIsIGZhbHNlICkgKTsKCQkJCQkKCQkJCgkJCQkJYnJvd3Nlci5hZGRJdGVtKCBuZXcgSW5zaWRl
TllUaW1lc0l0ZW0oICJodHRwOi8vZmlzaC5ibG9ncy5ueXRpbWVzLmNvbS8yMDA4LzExLzA5L3Bz
eWNob2xvZ3ktYW5kLXRvcnR1cmUvIiAsICJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2lt
YWdlcy8yMDA4LzExLzEwL29waW5pb24vMTBmaXNoLmdpZiIgLCAiIiAsICJPcGluaW9uIiAsICJo
dHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL29waW5pb24vaW5kZXguaHRtbCIsIGZhbHNlICkg
KTsKCQkJCQkKCQkJCgkJCQkJYnJvd3Nlci5hZGRJdGVtKCBuZXcgSW5zaWRlTllUaW1lc0l0ZW0o
ICJodHRwOi8vd3d3Lm55dGltZXMuY29tLzIwMDgvMTEvMTAvdXMvcG9saXRpY3MvMTBiYWJpZXMu
aHRtbCIgLCAiaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvMjAwOC8xMS8xMC91
cy9wb2xpdGljcy8xMG1vdGhfYmFieS5qcGciICwgIkJhcmFjayBhIEhvdCBOYW1lIGZvciBOZXcg
QmFiaWVzIiAsICJQb2xpdGljcyIgLCAiaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wYWdlcy9wb2xp
dGljcy9pbmRleC5odG1sIiwgZmFsc2UgKSApOwoJCQkJCQoJCQkKCQkJCQlicm93c2VyLmFkZEl0
ZW0oIG5ldyBJbnNpZGVOWVRpbWVzSXRlbSggImh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8x
MS8wNy9hcnRzL211c2ljLzA3ZmF1cy5odG1sIiAsICJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMu
Y29tL2ltYWdlcy8yMDA4LzExLzEwL2FydHMvbXVzaWMvMTBtb3RoX2ZhdXN0LmpwZyIgLCAiVGVj
aG5vLUFsY2hlbXkgYXQgdGhlIE9wZXJhIiAsICJNdXNpYyIgLCAiaHR0cDovL3d3dy5ueXRpbWVz
LmNvbS9wYWdlcy9hcnRzL211c2ljL2luZGV4Lmh0bWwiLCBmYWxzZSApICk7CgkJCQkJCgkJCQoJ
CQkJCWJyb3dzZXIuYWRkSXRlbSggbmV3IEluc2lkZU5ZVGltZXNJdGVtKCAiaHR0cDovL3d3dy5u
eXRpbWVzLmNvbS8yMDA4LzExLzEwL29waW5pb24vMTBlaHJlbmhhbHQuaHRtbCIgLCAiaHR0cDov
L2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvMjAwOC8xMS8xMC9vcGluaW9uLzEwbW90aF9v
cGVkLmpwZyIgLCAiT3AtRWQ6IE9iYW1hIGFuZCBDb25ncmVzcywgVG9vIEZyaWVuZGx5PyIgLCAi
T3BpbmlvbiIgLCAiaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wYWdlcy9vcGluaW9uL2luZGV4Lmh0
bWwiLCBmYWxzZSApICk7CgkJCQkJCgkJCQoJCQkJCWJyb3dzZXIuYWRkSXRlbSggbmV3IEluc2lk
ZU5ZVGltZXNJdGVtKCAiaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL29waW5pb24v
bDEwb2JhbWEuaHRtbCIgLCAiaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvMjAw
OC8xMS8xMC9vcGluaW9uLzEwbW90aF9sZXR0ZXJzLmdpZiIgLCAiIiAsICJPcGluaW9uIiAsICJo
dHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL29waW5pb24vaW5kZXguaHRtbCIsIGZhbHNlICkg
KTsKCQkJCQkKCQkJCgkJCQkJYnJvd3Nlci5hZGRJdGVtKCBuZXcgSW5zaWRlTllUaW1lc0l0ZW0o
ICJodHRwOi8vd3d3Lm55dGltZXMuY29tLzIwMDgvMTEvMDkvd2Vla2lucmV2aWV3LzA5cG93ZWxs
Lmh0bWwiICwgImh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMDkv
d2Vla2lucmV2aWV3LzA5bW90aF9wb3dlbGwuanBnIiAsICJTZWVraW5nIGEgUG9ldCBmb3IgdGhl
IEdyZWF0IE1lc3Mgb2Yg4oCZMDgiICwgIldlZWsgaW4gUmV2aWV3IiAsICJodHRwOi8vd3d3Lm55
dGltZXMuY29tL3BhZ2VzL3dlZWtpbnJldmlldy9pbmRleC5odG1sIiwgZmFsc2UgKSApOwoJCQkJ
CQoJCQkKCQkJCQlicm93c2VyLmFkZEl0ZW0oIG5ldyBJbnNpZGVOWVRpbWVzSXRlbSggImh0dHA6
Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8xMC93b3JsZC9ldXJvcGUvMTBiaWtlLmh0bWwiICwg
Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvd29ybGQvMTBt
b3RoX2Jpa2UuanBnIiAsICJFdXJvcGVhbiBQcm9ncmFtcyBSZWRpc3RyaWJ1dGUgdGhlIFdoZWVs
cyIgLCAiV29ybGQiICwgImh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvd29ybGQvaW5kZXgu
aHRtbCIsIGZhbHNlICkgKTsKCQkJCQkKCQkJCgkJCQkJYnJvd3Nlci5hZGRJdGVtKCBuZXcgSW5z
aWRlTllUaW1lc0l0ZW0oICJodHRwOi8vd3d3Lm55dGltZXMuY29tLzIwMDgvMTEvMTAvYnVzaW5l
c3MvbWVkaWEvMTBzaWx2ZXIuaHRtbCIgLCAiaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9p
bWFnZXMvMjAwOC8xMS8xMC9idXNpbmVzcy9tZWRpYS8xMG1vdGhfc2lsdmVyLmpwZyIgLCAiVGhp
cyBNYXRoIFdoaXogQ2FsbGVkIEl0IGZvciBPYmFtYSBNb250aHMgQWdvIiAsICJNZWRpYSAmIEFk
dmVydGlzaW5nIiAsICJodHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL2J1c2luZXNzL21lZGlh
L2luZGV4Lmh0bWwiLCBmYWxzZSApICk7CgkJCQkJCgkJCQoJCQkJfQoJCQk8L3NjcmlwdD4KCQkJ
CgkJCQoKCgoJPGRpdiBpZD0iaW5zaWRlTllUaW1lc0hlYWRlciI+CgkJPGRpdiBjbGFzcz0iIiBz
dHlsZT0iZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tdG9wOjdweCI+CgkJCTxzcGFuIGlkPSJsZWZ0QXJy
b3ciPjxpbWcgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy9nbG9iYWwv
YnV0dG9ucy9tb3RoX3JldmVyc2Vfb2ZmLmdpZiIgbmFtZT0ibW90aF9yZXZlcnNlIj48L3NwYW4+
wqA8c3BhbiBpZD0icmlnaHRBcnJvdyI+PGEgaHJlZj0iamF2YXNjcmlwdDpicm93c2VyLnVwZGF0
ZSgxKSI+PGltZyBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzL2dsb2Jh
bC9idXR0b25zL21vdGhfZm9yd2FyZC5naWYiIG5hbWU9Im1vdGhfZm9yd2FyZCI+PC9hPjwvc3Bh
bj4KCQk8L2Rpdj4KCQk8aDQ+SW5zaWRlIE5ZVGltZXMuY29tPC9oND4KCTwvZGl2PgoKCTx0YWJs
ZSBpZD0iaW5zaWRlTllUaW1lc0Jyb3dzZXIiPgoJCTx0aGVhZD4KCQkJPHRyPgoJCQkKCQkJCTx0
aD48aDQ+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wYWdlcy9hcnRzL3RlbGV2aXNp
b24vaW5kZXguaHRtbCI+VGVsZXZpc2lvbiDCuzwvYT48L2g0PjwvdGg+CgkJCQoJCQkJPHRoPjxo
ND48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL29waW5pb24vaW5kZXguaHRt
bCI+T3BpbmlvbiDCuzwvYT48L2g0PjwvdGg+CgkJCQoJCQkJPHRoPjxoND48YSBocmVmPSJodHRw
Oi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL255cmVnaW9uL2luZGV4Lmh0bWwiPk4uWS4gLyBSZWdp
b24gwrs8L2E+PC9oND48L3RoPgoJCQkKCQkJCTx0aD48aDQ+PGEgaHJlZj0iaHR0cDovL3d3dy5u
eXRpbWVzLmNvbS9wYWdlcy9uYXRpb25hbC9pbmRleC5odG1sIj5VLlMuIMK7PC9hPjwvaDQ+PC90
aD4KCQkJCgkJCQk8dGg+PGg0PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMv
b3Bpbmlvbi9pbmRleC5odG1sIj5PcGluaW9uIMK7PC9hPjwvaDQ+PC90aD4KCQkJCgkJCQk8dGg+
PGg0PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvcG9saXRpY3MvaW5kZXgu
aHRtbCI+UG9saXRpY3Mgwrs8L2E+PC9oND48L3RoPgoJCQkKCQkJPC90cj4KCQk8L3RoZWFkPgoJ
CTx0Ym9keT4KCQkJPHRyPgoJCQkJCgkJCQk8dGQ+CgkJCQkJPGRpdiBjbGFzcz0ic3RvcnkiPgoJ
CQkJCQk8ZGl2IGNsYXNzPSJjYWxsb3V0Ij4KCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cubnl0
aW1lcy5jb20vMjAwOC8xMS8xMC9hcnRzL3RlbGV2aXNpb24vMTBoZXJvLmh0bWwiPgoJCQkJCQkJ
CTxpbWcgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzExLzEw
L2FydHMvdGVsZXZpc2lvbi8xMG1vdGhfaGVyb2VzLmpwZyIgYWx0PSJGbGFnZ2luZyDigJhIZXJv
ZXPigJkgQXR0ZW1wdHMgU2VsZi1SZXNjdWUiIHdpZHRoPSIxNTEiIGhlaWdodD0iMTUxIj4KCQkJ
CQkJCTwvYT4KCQkJCQkJPC9kaXY+CgkJCQkJCTxoNT48YSBocmVmPSJodHRwOi8vd3d3Lm55dGlt
ZXMuY29tLzIwMDgvMTEvMTAvYXJ0cy90ZWxldmlzaW9uLzEwaGVyby5odG1sIiBjbGFzcz0iIj5G
bGFnZ2luZyDigJhIZXJvZXPigJkgQXR0ZW1wdHMgU2VsZi1SZXNjdWU8L2E+PC9oNT4KCQkJCQk8
L2Rpdj4KCQkJCTwvdGQ+CgkJCQkKCQkJCTx0ZD4KCQkJCQk8ZGl2IGNsYXNzPSJzdG9yeSI+CgkJ
CQkJCTxkaXYgY2xhc3M9ImNhbGxvdXQiPgoJCQkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ueXRp
bWVzLmNvbS8yMDA4LzExLzEwL29waW5pb24vMTBhbGZvcmQuaHRtbCI+CgkJCQkJCQkJPGltZyBz
cmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvb3Bpbmlv
bi8xMG1vdGgtb3BlZDMuZ2lmIiBhbHQ9IiIgd2lkdGg9IjE1MSIgaGVpZ2h0PSIxNTEiPgoJCQkJ
CQkJPC9hPgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGg1PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1l
cy5jb20vMjAwOC8xMS8xMC9vcGluaW9uLzEwYWxmb3JkLmh0bWwiIGNsYXNzPSIiPjwvYT48L2g1
PgoJCQkJCTwvZGl2PgoJCQkJPC90ZD4KCQkJCQoJCQkJPHRkPgoJCQkJCTxkaXYgY2xhc3M9InN0
b3J5Ij4KCQkJCQkJPGRpdiBjbGFzcz0iY2FsbG91dCI+CgkJCQkJCQk8YSBocmVmPSJodHRwOi8v
d3d3Lm55dGltZXMuY29tLzIwMDgvMTEvMTAvbnlyZWdpb24vMTBiaWdjaXR5Lmh0bWwiPgoJCQkJ
CQkJCTxpbWcgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzEx
LzEwL255cmVnaW9uLzEwbW90aF9iaWdjaXR5LmpwZyIgYWx0PSI2IENlbnRzIElzIDYgQ2VudHMs
IGJ1dCBUaW1lPyBUaGF04oCZcyBTb21ldGhpbmciIHdpZHRoPSIxNTEiIGhlaWdodD0iMTUxIj4K
CQkJCQkJCTwvYT4KCQkJCQkJPC9kaXY+CgkJCQkJCTxoNT48YSBocmVmPSJodHRwOi8vd3d3Lm55
dGltZXMuY29tLzIwMDgvMTEvMTAvbnlyZWdpb24vMTBiaWdjaXR5Lmh0bWwiIGNsYXNzPSIiPjYg
Q2VudHMgSXMgNiBDZW50cywgYnV0IFRpbWU/IFRoYXTigJlzIFNvbWV0aGluZzwvYT48L2g1PgoJ
CQkJCTwvZGl2PgoJCQkJPC90ZD4KCQkJCQoJCQkJPHRkPgoJCQkJCTxkaXYgY2xhc3M9InN0b3J5
Ij4KCQkJCQkJPGRpdiBjbGFzcz0iY2FsbG91dCI+CgkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3
Lm55dGltZXMuY29tLzIwMDgvMTEvMTAvdXMvMTBiYWtlLmh0bWwiPgoJCQkJCQkJCTxpbWcgc3Jj
PSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzExLzEwL3VzLzEwbW90
aF9iYWtlLmpwZyIgYWx0PSJCYWtlIFNhbGVzIEZhbGwgVmljdGltIHRvIFB1c2ggZm9yIEhlYWx0
aGllciBGb29kcyIgd2lkdGg9IjE1MSIgaGVpZ2h0PSIxNTEiPgoJCQkJCQkJPC9hPgoJCQkJCQk8
L2Rpdj4KCQkJCQkJPGg1PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8x
MC91cy8xMGJha2UuaHRtbCIgY2xhc3M9IiI+QmFrZSBTYWxlcyBGYWxsIFZpY3RpbSB0byBQdXNo
IGZvciBIZWFsdGhpZXIgRm9vZHM8L2E+PC9oNT4KCQkJCQk8L2Rpdj4KCQkJCTwvdGQ+CgkJCQkK
CQkJCTx0ZD4KCQkJCQk8ZGl2IGNsYXNzPSJzdG9yeSI+CgkJCQkJCTxkaXYgY2xhc3M9ImNhbGxv
dXQiPgoJCQkJCQkJPGEgaHJlZj0iaHR0cDovL2Zpc2guYmxvZ3Mubnl0aW1lcy5jb20vMjAwOC8x
MS8wOS9wc3ljaG9sb2d5LWFuZC10b3J0dXJlLyI+CgkJCQkJCQkJPGltZyBzcmM9Imh0dHA6Ly9n
cmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvb3Bpbmlvbi8xMGZpc2guZ2lm
IiBhbHQ9IiIgd2lkdGg9IjE1MSIgaGVpZ2h0PSIxNTEiPgoJCQkJCQkJPC9hPgoJCQkJCQk8L2Rp
dj4KCQkJCQkJPGg1PjxhIGhyZWY9Imh0dHA6Ly9maXNoLmJsb2dzLm55dGltZXMuY29tLzIwMDgv
MTEvMDkvcHN5Y2hvbG9neS1hbmQtdG9ydHVyZS8iIGNsYXNzPSIiPjwvYT48L2g1PgoJCQkJCTwv
ZGl2PgoJCQkJPC90ZD4KCQkJCQoJCQkJPHRkPgoJCQkJCTxkaXYgY2xhc3M9InN0b3J5Ij4KCQkJ
CQkJPGRpdiBjbGFzcz0iY2FsbG91dCI+CgkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lm55dGlt
ZXMuY29tLzIwMDgvMTEvMTAvdXMvcG9saXRpY3MvMTBiYWJpZXMuaHRtbCI+CgkJCQkJCQkJPGlt
ZyBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvdXMv
cG9saXRpY3MvMTBtb3RoX2JhYnkuanBnIiBhbHQ9IkJhcmFjayBhIEhvdCBOYW1lIGZvciBOZXcg
QmFiaWVzIiB3aWR0aD0iMTUxIiBoZWlnaHQ9IjE1MSI+CgkJCQkJCQk8L2E+CgkJCQkJCTwvZGl2
PgoJCQkJCQk8aDU+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL3Vz
L3BvbGl0aWNzLzEwYmFiaWVzLmh0bWwiIGNsYXNzPSIiPkJhcmFjayBhIEhvdCBOYW1lIGZvciBO
ZXcgQmFiaWVzPC9hPjwvaDU+CgkJCQkJPC9kaXY+CgkJCQk8L3RkPgoJCQkKCQkJCQoJCQk8L3Ry
PgoKCQk8L3Rib2R5PgoJPC90YWJsZT4KCTxzY3JpcHQ+YnJvd3Nlci5zaG93QnV0dG9ucygpPC9z
Y3JpcHQ+Cgo8L2Rpdj4KPCEtLU5ZVF9ERUJVRyBlbGVtZW50IGVuZDogbnl0aW1lczIwMDYvaG9t
ZXBhZ2UvaW5zaWRlTllUaW1lc0JhciAtLT4KCjwvZGl2Pgo8IS0tRm9vdGVyIC0tPgoKPG55dF9m
b290ZXI+CSAKPG55dF9jb3B5cmlnaHQ+Cgo8ZGl2IGlkPSJmb290ZXIiPgo8ZGl2IGNsYXNzPSJm
b290ZXJSb3ciPgo8YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tLyI+SG9tZTwvYT4KPHVs
Pgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wYWdlcy93b3JsZC9pbmRleC5o
dG1sIj5Xb3JsZDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9w
YWdlcy9uYXRpb25hbC9pbmRleC5odG1sIj5VLlMuPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRw
Oi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL255cmVnaW9uL2luZGV4Lmh0bWwiPk4uWS4gLyBSZWdp
b248L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvYnVz
aW5lc3MvaW5kZXguaHRtbCI+QnVzaW5lc3M8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93
d3cubnl0aW1lcy5jb20vcGFnZXMvdGVjaG5vbG9neS9pbmRleC5odG1sIj5UZWNobm9sb2d5PC9h
PjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL3NjaWVuY2Uv
aW5kZXguaHRtbCI+U2NpZW5jZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ueXRp
bWVzLmNvbS9wYWdlcy9oZWFsdGgvaW5kZXguaHRtbCI+SGVhbHRoPC9hPjwvbGk+CjxsaT48YSBo
cmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3BhZ2VzL3Nwb3J0cy9pbmRleC5odG1sIj5TcG9y
dHM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vcGFnZXMvb3Bp
bmlvbi9pbmRleC5odG1sIj5PcGluaW9uPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3
Lm55dGltZXMuY29tL3BhZ2VzL2FydHMvaW5kZXguaHRtbCI+QXJ0czwvYT48L2xpPgo8bGk+PGEg
aHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wYWdlcy9zdHlsZS9pbmRleC5odG1sIj5TdHls
ZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3RyYXZlbC5ueXRpbWVzLmNvbS9wYWdlcy90
cmF2ZWwvaW5kZXguaHRtbCI+VHJhdmVsPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3
Lm55dGltZXMuY29tL3BhZ2VzL2pvYnMvaW5kZXguaHRtbCI+Sm9iczwvYT48L2xpPgo8bGk+PGEg
aHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wYWdlcy9yZWFsZXN0YXRlL2luZGV4Lmh0bWwi
PlJlYWwgRXN0YXRlPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29t
L3BhZ2VzL2F1dG9tb2JpbGVzL2luZGV4Lmh0bWwiPkF1dG9tb2JpbGVzPC9hPjwvbGk+CjxsaT48
YSBocmVmPSIjdG9wIj5CYWNrIHRvIFRvcDwvYT48L2xpPgo8L3VsPgo8L2Rpdj4KPGEgaHJlZj0i
aHR0cDovL3d3dy5ueXRpbWVzLmNvbS9yZWYvbWVtYmVyY2VudGVyL2hlbHAvY29weXJpZ2h0Lmh0
bWwiPkNvcHlyaWdodCAyMDA4PC9hPiAKPGEgaHJlZj0iaHR0cDovL3d3dy5ueXRjby5jb20vIj5U
aGUgTmV3IFlvcmsgVGltZXMgQ29tcGFueTwvYT4KPHVsPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3
dy5ueXRpbWVzLmNvbS9wcml2YWN5Ij5Qcml2YWN5IFBvbGljeTwvYT48L2xpPgo8bGk+PGEgaHJl
Zj0iaHR0cDovL3F1ZXJ5Lm55dGltZXMuY29tL2dzdC9zaXRlc2VhcmNoX3NlbGVjdG9yLmh0bWw/
cXVlcnk9JmFtcDtkYXRlX3NlbGVjdD1mdWxsJmFtcDt0eXBlPW55dCI+U2VhcmNoPC9hPjwvbGk+
CjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2NvcnJlY3Rpb25zLmh0bWwiPkNv
cnJlY3Rpb25zPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL3Jz
cyIgY2xhc3M9InJzc0J1dHRvbiI+UlNTPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vZmly
c3Rsb29rLm55dGltZXMuY29tIj5GaXJzdCBMb29rPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRw
Oi8vd3d3Lm55dGltZXMuY29tL21lbWJlcmNlbnRlci9zaXRlaGVscC5odG1sIj5IZWxwPC9hPjwv
bGk+CjxsaT48YSBocmVmPSJodHRwOi8vbnl0aW1lcy5jb20vcmVmL21lbWJlcmNlbnRlci9oZWxw
L2luZm9zZXJ2ZGlyZWN0b3J5Lmh0bWwiPkNvbnRhY3QgVXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9
Imh0dHBzOi8vY2FyZWVycy5ueXRjby5jb20vVEFNL255dF9kb2NzL1RBTS9jYW5kaWRhdGUuaHRt
bCI+V29yayBmb3IgVXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly9zcGlkZXJiaXRlcy5u
eXRpbWVzLmNvbS8iPlNpdGUgTWFwPC9hPjwvbGk+CjwvdWw+CjwvZGl2PgoKPC9ueXRfY29weXJp
Z2h0Pgo8L255dF9mb290ZXI+ICAKCjwvZGl2Pgo8L2Rpdj4KCgkJCQoJCTwhLS0gU3RhcnQgVVBU
IGNhbGwgLS0+CgkJPGltZyBoZWlnaHQ9IjEiIHdpZHRoPSIzIiBib3JkZXI9IjAiIHNyYz0iaHR0
cDovL3VwLm55dGltZXMuY29tLz9kPTAvMTgvJmFtcDt0PTImYW1wO3M9MCZhbXA7dWk9MCZhbXA7
cj0mYW1wO3U9d3d3JTJlbnl0aW1lcyUyZWNvbSUyZjIwMDglMmYxMSUyZjEwJTJmaGVhbHRoJTJm
MTBoZWFydCUyZWh0bWwlM2YlNWZyJTNkMiUyNm9yZWYlM2RzbG9naW4lMjZwYXJ0bmVyJTNkcnNz
bnl0JTI2ZW1jJTNkcnNzIj4KCQk8IS0tIEVuZCBVUFQgY2FsbCAtLT4KCQoJCQogICAgICAgIDxz
Y3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPjwhLS0KICAgICAgICAgIHZhciBkY3N2aWQ9IjAi
OwogICAgICAgICAgdmFyIHJlZ3N0YXR1cz0ibm9uLXJlZ2lzdGVyZWQiOwogICAgICAgIC8vLS0+
PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5j
b20vanMvYXBwL2FuYWx5dGljcy90cmFja2luZ1RhZ3NfdjEuMS5qcyIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNv
bS9qcy9hcHAvdGltZXNwZW9wbGUvbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNo
YXJzZXQ9InV0Zi04Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRp
bWVzLmNvbS9qcy9hcHAvbGliL3Byb3RvdHlwZS8xLjYuMC4yL3Byb3RvdHlwZS5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0
dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2xpYi9zY3JpcHRhY3Vsb3VzLzEuOC4x
L2J1aWxkZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2Ny
aXB0PjxzY3JpcHQgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC9saWIv
c2NyaXB0YWN1bG91cy8xLjguMS9lZmZlY3RzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNo
YXJzZXQ9InV0Zi04Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRp
bWVzLmNvbS9qcy9hcHAvbGliL3NjcmlwdGFjdWxvdXMvMS44LjEvZHJhZ2Ryb3AuanMiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJo
dHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC9saWIvc2NyaXB0YWN1bG91cy8xLjgu
MS9jb250cm9scy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9z
Y3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL3Rp
bWVzcGVvcGxlL2RlZmF1bHRmZWVkLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9
InV0Zi04Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNv
bS9qcy9hcHAvdGltZXNwZW9wbGUvYnVpbGQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hh
cnNldD0idXRmLTgiPjwvc2NyaXB0PgogICAgICAgIDxub3NjcmlwdD48L25vc2NyaXB0PgogICAK
CgoJCTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFzY3JpcHQiPlRhY29kYV9BTVNfRERDX2FkZFBhaXIo
InRfc2VjdGlvbiIsIkhlYWx0aCIpPC9zY3JpcHQ+CgkJPHNjcmlwdCBsYW5ndWFnZT0iSmF2YXNj
cmlwdCI+VGFjb2RhX0FNU19ERENfYWRkUGFpcigic2l0ZSIsIm55dGltZXMuY29tIik8L3Njcmlw
dD4KCQk8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij5UYWNvZGFfQU1TX0REQygiaHR0cDov
L3RlLm55dGltZXMuY29tL3R0ZS9ibGFuay5naWYiLCIxLjAiKTwvc2NyaXB0PjxpbWcgc3JjPSJo
dHRwOi8vdGUubnl0aW1lcy5jb20vdHRlL2JsYW5rLmdpZj8wLjk3MzM1NjY2MDQ1NTQ2NTMmYW1w
O3NuaXBwZXRfdmVyc2lvbj0xLjNhJmFtcDtyZWZlcnJlcj0mYW1wO3BhZ2U9aHR0cCUzQS8vd3d3
Lm55dGltZXMuY29tLzIwMDgvMTEvMTAvaGVhbHRoLzEwaGVhcnQuaHRtbCUzRl9yJTNEMiUyNnBh
cnRuZXIlM0Ryc3NueXQlMjZlbWMlM0Ryc3MlMjZvcmVmJTNEc2xvZ2luJTI2b3JlZiUzRHNsb2dp
biZhbXA7dGltZXpvbmU9NDgwJmFtcDtjbGlzdF9USUQ9M2ZnMjBvYTEzb3ZwbnAmYW1wO2NsaXN0
X1JNSUQ9MDVlODlmNjc3NDQ5NDc4ZmU2ZjU5ZWVmJmFtcDt2YXJfdF9zZWN0aW9uPUhlYWx0aCZh
bXA7dmFyX3NpdGU9bnl0aW1lcy5jb20iIGhlaWdodD0iMSIgd2lkdGg9IjEiIGJvcmRlcj0iMCIg
aWQ9InRhY29kYSI+CQoJCQo8aW1nIHNyYz0iL2FkeC9iaW4vY2xpZW50c2lkZS80YTllMDE1N1Ey
RnE1dlEyN1EyNy1xSDdRNUUtbmI3U2M1SC1RNjBRNUJjeVEyRkpRNUVRMjNRNjBPSkZPQFEyM0pR
MjNRMjd5UTVDQCIgaGVpZ2h0PSIxIiB3aWR0aD0iMyI+CgoKCgoKPCEtLSBBRFhJTkZPIGNsYXNz
aWZpY2F0aW9uPSJibGFuay1idXQtY291bnQtaW1wcyIgY2FtcGFpZ249ImJsYW5rLXBvcHVuZGVy
YmxvY2tlciItLT48aW1nIHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9hZHMvYmxh
bmsuZ2lmIj4KPHNjcmlwdCBzcmM9Imh0dHA6Ly9jb250ZW50LmRsLXJtcy5jb20vcm1zLzE0ODY3
L25vZGV0YWcuanMiPjwvc2NyaXB0PgoKCjwhLS0gQURYSU5GTyBjbGFzc2lmaWNhdGlvbj0idGV4
dF9hZCIgY2FtcGFpZ249InRhY29kYS10cmFja2luZ3RhZyItLT48c2NyaXB0IGxhbmd1YWdlPSJK
YXZhU2NyaXB0Ij52YXIgdGNkYWNtZD0iZHQiOzwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cDov
L2FuLnRhY29kYS5uZXQvYW4vMTI5ODUvc2xmLmpzIiBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+PC9z
Y3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHA6Ly9hbnJ0eC50YWNvZGEubmV0L3J0eC9yLmpzP2NtZD1I
TFQmYW1wO3NpPTEyOTg1JmFtcDt4cz0xJmFtcDt2PTMuMTUmYW1wO2NiPTg3ODU3IiBsYW5ndWFn
ZT0iSmF2YVNjcmlwdCI+PC9zY3JpcHQ+CjwhLS0gQURYSU5GTyBjbGFzc2lmaWNhdGlvbj0iYmxh
bmstYnV0LWNvdW50LWltcHMiIGNhbXBhaWduPSJEZWxpdmVyeVRFU1RfMTREYXlzLWFsbE5ZVGlt
ZXMuY29tIi0tPjxpbWcgc3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2Fkcy9ibGFu
ay5naWYiPgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKPC9ib2R5PjwvaHRtbD5QrxBK
ABAAFgAaAB4AIgAmACsALwAzADcAOwA/AEMARwBLAE8AUwBXAFsAXwBjAGcAbQBxAHYAewB/AIQA
iACMAJAAlACYAJwAoACkAKgArQCxALUAuQC9AMEAxQDJAM0A0QDVANkA3gDiAOYA6gDuAPIA9gD6
AP4BAgEGAQoBDgESARYBGgEeASIBJgEqAS4BMgE2AToBPtQABQARAAcACAASABMAFAAVXxATV2Vi
UmVzb3VyY2VSZXNwb25zZV8QKWh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvY29tbW9u
LmpzTxEEmGJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3Rz
EgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvECQLDCYs
LTMeNDVTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprb3BVJG51bGzdDQ4PEBESExQVFhcYGRobHB0e
HyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAI4AC
gCIQCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEClo
dHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2NvbW1vbi5qc9IuLzAxWCRjbGFzc2VzWiRj
bGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wZzMTwQyNMNNjc4OUZXTlMua2V5c1pOUy5v
YmplY3RzgCGsOjs8PT4/QEFCQ0RFgAmACoALgAyADYAOgA+AEIARgBKAE4AUrEdISUpLTE1OT1BR
UoAVgBaAF4AYgBmAGoAbgByAHYAegB+AIFREYXRlXUNhY2hlLUNvbnRyb2xdTGFzdC1Nb2RpZmll
ZF1BY2NlcHQtUmFuZ2VzXxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNv
bnRlbnQtTGVuZ3RoXk50Y29lbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvblRWYXJ5XxAdTW9uLCAx
MCBOb3YgMjAwOCAyMzozODo0MyBHTVRfEBdwcml2YXRlLCBtYXgtYWdlPTI1NDgzM18QHVRodSwg
MDYgTm92IDIwMDggMjI6MjQ6MDIgR01UVWJ5dGVzVGd6aXBfEBZTdW4tT05FLVdlYi1TZXJ2ZXIv
Ni4xXxAYYXBwbGljYXRpb24veC1qYXZhc2NyaXB0VDMzNDJVMTA0MjhfEA8iMjhiYy00OTEzNmU4
MiJaa2VlcC1hbGl2ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2xto21uMl8QE05TTXV0YWJsZURpY3Rp
b25hcnlcTlNEaWN0aW9uYXJ5ESi80i4vcXKjcnMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxS
ZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAiwCRAKwAswC2ALkAvQDBAMQAxwDKAM0A0ADT
ANYA2QDbAN0A3wDhAOMA5QDnAOkA6wDtAO8A8QD4AQABDAEOARABEgE+AUMBTAFXAVoBYAFpAXIB
dAF7AYMBjgGQAZ0BnwGhAaMBpQGnAakBqwGtAa8BsQGzAbUBwgHEAcYByAHKAcwBzgHQAdIB1AHW
AdgB2gHfAe0B+wIJAhwCIwIwAj8CTgJTAl4CYwKDAp0CvQLDAsgC4QL8AwEDBwMZAyQDNgM7Az8D
VQNiA2UDagNuA4IAAAAAAAACAQAAAAAAAAB0AAAAAAAAAAAAAAAAAAADkF8QGGFwcGxpY2F0aW9u
L3gtamF2YXNjcmlwdE8RKLwgLyogIAkgCiAkSWQ6IGNvbW1vbi5qcyA2MzY5IDIwMDgtMTEtMDUg
MTY6MDk6MDBaIHNhbnRlcCAkIAkgCiAoYykgMjAwNi0yMDA3IFRoZSBOZXcgWW9yayBUaW1lcyBD
b21wYW55IAkgCiAqLwoKCWZ1bmN0aW9uIG5hbWVJdCgpIHsKICAgIAl3aW5kb3cubmFtZSA9ICdu
eXRpbWVzbWFpbic7CgkgICAgaWYgKChuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0IElu
dGVybmV0IEV4cGxvcmVyIikgJiYgKGRvY3VtZW50LmFsbC5nbG9iYWxzZWFyY2hmb3JtKSl7CgkJ
CQlkb2N1bWVudC5hbGwuZ2xvYmFsc2VhcmNoZm9ybS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2li
bGUiOwogICAgICB9CiAgIH0KICAgICAKCWZ1bmN0aW9uIHBvcF9tZV91cChwVVJMLGZlYXR1cmVz
KXsgCgkJbmV3X3dpbmRvdyA9IHdpbmRvdy5vcGVuKHBVUkwsICJwb3B1cF93aW5kb3ciLCBmZWF0
dXJlcyk7CgkJbmV3X3dpbmRvdy5mb2N1cygpOwoJfQoKCWZ1bmN0aW9uIHBvcF9tZV91cDIocFVS
TCxuYW1lLGZlYXR1cmVzKXsKCQluZXdfd2luZG93ID0gd2luZG93Lm9wZW4ocFVSTCxuYW1lLGZl
YXR1cmVzKTsKCQluZXdfd2luZG93LmZvY3VzKCk7Cgl9CgoJZnVuY3Rpb24gY2hhbmdlSW1hZ2Uo
aW1hZ2VfbmFtZSxpbWFnZV9zcmMpIHsKICAgCQlkb2N1bWVudC5pbWFnZXNbaW1hZ2VfbmFtZV0u
c3JjID0gaW1hZ2Vfc3JjOwoJfQoKCWZ1bmN0aW9uIGdvVG9VUkwob2JqKXsKCQl2YXIgZiA9IChv
Ymouc2VjdGlvbikgPyBvYmogOiBvYmouZm9ybTsKCQl2YXIgc2VsZWN0ZWQgPSBmLnNlY3Rpb24u
c2VsZWN0ZWRJbmRleDsKCQl2YXIgVVJMID0gZi5zZWN0aW9uLm9wdGlvbnNbc2VsZWN0ZWRdLnZh
bHVlOwoJCWlmIChVUkwgIT0gIiIpIGRvY3VtZW50LmxvY2F0aW9uID0gVVJMOwoJCXJldHVybiBm
YWxzZTsKCX0KCglmdW5jdGlvbiBnb1RvVVJMMihzZWwpewoJLy8gVGhpcyB2ZXJzaW9uIG9ubHkg
d29ya3MgZm9yIG9uQ2hhbmdlIGV2ZW50cyBmcm9tIHNlbGVjdCBvYmplY3RzCgkvLyBidXQgdGhl
IHNlbGVjdCBvYmplY3QgY2FuIGhhdmUgYW55IG5hbWUsIHVubGlrZSBnb1RvVVJMKCkgd2hpY2gg
cmVxdWlyZXMgCgkvLyB0aGUgc2VsZWN0IG9iamVjdCB0byBiZSBuYW1lZCAic2VjdGlvbiIKCQoJ
CXZhciBzZWxlY3RlZCA9IHNlbC5zZWxlY3RlZEluZGV4OwoJCXZhciB1cmwgPSBzZWwub3B0aW9u
c1tzZWxlY3RlZF0udmFsdWU7CgkJaWYgKHVybCAhPSAiIikgZG9jdW1lbnQubG9jYXRpb24gPSB1
cmw7CgkJcmV0dXJuIGZhbHNlOwoJfQoJaWYgKHdpbmRvdy5zZWxmICE9IHdpbmRvdy50b3AgJiYg
IWRvY3VtZW50LnJlZmVycmVyLm1hdGNoKC9odHRwcz86XC9cL1teP1wvXStcLm55dGltZXNcLmNv
bVwvLykpIHsKCQl0b3AubG9jYXRpb24ucmVwbGFjZSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUp
OyAKCX0KCQoJLy9iZWdpbiBmdW5jdGlvbnMgZm9yIFRyYXZlbCBmbGFzaCBzbGlkZXNob3dzCglm
dW5jdGlvbiB3cml0ZUZsYXNoU2xpZGVTaG93KHhtbEZpbGUpewoJCXZhciBzd2ZGaWxlID0gIi9z
bGlkZXNob3cvc3dmL3NsaWRlc2hvdy5zd2Y/WE1MZmlsZT0vc2xpZGVzaG93L3htbC90cmF2ZWwv
IiArIHhtbEZpbGU7CgkJCgkJdmFyIEhUTUxzdHIgPSAiIjsKCQlIVE1Mc3RyICs9ICI8b2JqZWN0
IGNsYXNzaWQ9XCJjbHNpZDpkMjdjZGI2ZS1hZTZkLTExY2YtOTZiOC00NDQ1NTM1NDAwMDBcIiBj
b2RlYmFzZT1cImh0dHA6Ly9mcGRvd25sb2FkLm1hY3JvbWVkaWEuY29tL3B1Yi9zaG9ja3dhdmUv
Y2Ficy9mbGFzaC9zd2ZsYXNoLmNhYiN2ZXJzaW9uPTYsMCwwLDBcIiB3aWR0aD1cIjM5MFwiIGhl
aWdodD1cIjMwMFwiIGlkPVwic2xpZGVzaG93XCIgYWxpZ249XCJtaWRkbGVcIj4iOwoJCUhUTUxz
dHIgKz0gIjxwYXJhbSBuYW1lPVwiYWxsb3dTY3JpcHRBY2Nlc3NcIiB2YWx1ZT1cInNhbWVEb21h
aW5cIiAvPiI7CgkJSFRNTHN0ciArPSAiPHBhcmFtIG5hbWU9XCJtb3ZpZVwiIHZhbHVlPVwiIiAr
IHN3ZkZpbGUgKyAiXCIgLz4iOwoJCUhUTUxzdHIgKz0gIjxwYXJhbSBuYW1lPVwicXVhbGl0eVwi
IHZhbHVlPVwiaGlnaFwiIC8+IjsKCQlIVE1Mc3RyICs9ICI8cGFyYW0gbmFtZT1cIndtb2RlXCIg
dmFsdWU9XCJ0cmFuc3BhcmVudFwiIC8+IjsKCQlIVE1Mc3RyICs9ICI8ZW1iZWQgc3JjPVwiIiAr
IHN3ZkZpbGUgKyAiXCIgd21vZGU9XCJ0cmFuc3BhcmVudFwiIHF1YWxpdHk9XCJoaWdoXCIgd2lk
dGg9XCIzOTBcIiBoZWlnaHQ9XCIzMDBcIiBuYW1lPVwic2xpZGVzaG93XCIgYWxpZ249XCJtaWRk
bGVcIiBhbGxvd1NjcmlwdEFjY2Vzcz1cInNhbWVEb21haW5cIiB0eXBlPVwiYXBwbGljYXRpb24v
eC1zaG9ja3dhdmUtZmxhc2hcIiBwbHVnaW5zcGFnZT1cImh0dHA6Ly93d3cubWFjcm9tZWRpYS5j
b20vZ28vZ2V0Zmxhc2hwbGF5ZXJcIiAvPiI7CgkJSFRNTHN0ciArPSAiPC9vYmplY3Q+IjsKCQly
ZXR1cm4gSFRNTHN0cjsKCX0KCQoJZnVuY3Rpb24gc2hvd0ZpcnN0U2xpZGUoaW1nTmFtZSwgcGhv
dG9DcmVkaXQsIHBob3RvQ2FwdGlvbil7CgkJdmFyIEhUTUxzdHIgPSAiIjsKCQlIVE1Mc3RyICs9
ICI8IS0tIGJlZ2luIHBob3RvIC0tPiI7CgkJSFRNTHN0ciArPSAiPGltZyBzcmM9XCJodHRwOi8v
Z3JhcGhpY3Mubnl0aW1lcy5jb20vaW1hZ2VzL3NlY3Rpb24vdHJhdmVsL3NsaWRlc2hvdy8iICsg
aW1nTmFtZSArICJcIiB3aWR0aD1cIjM5MFwiIGhlaWdodD1cIjIwMFwiIGFsdD1cInBob3RvXCIg
Ym9yZGVyPVwiMFwiPiI7CgkJSFRNTHN0ciArPSAiPCEtLSBlbmQgcGhvdG8gLS0+IjsKCQlIVE1M
c3RyICs9ICI8ZGl2IGFsaWduPVwicmlnaHRcIiBjbGFzcz1cInBob3RvY3JlZGl0XCI+IiArIHBo
b3RvQ3JlZGl0ICsgIjwvZGl2PiI7CgkJSFRNTHN0ciArPSAiPGRpdiBjbGFzcz1cInBob3RvY2Fw
dGlvblwiPiIgKyBwaG90b0NhcHRpb24gKyAiPC9kaXY+IjsKCQlyZXR1cm4gSFRNTHN0cjsKCX0K
CS8vZW5kIGZ1bmN0aW9ucyBmb3IgVHJhdmVsIGZsYXNoIHNsaWRlc2hvd3MKCQoJLy9iZWdpbiBm
dW5jdGlvbnMgZm9yIEdsb2JhbCBmbGFzaCBzbGlkZXNob3dzCglmdW5jdGlvbiB3cml0ZUVtYmVk
ZGVkRmxhc2hTbGlkZVNob3coeG1sRmlsZSl7CgkJdmFyIHN3ZkZpbGUgPSAiL3NsaWRlc2hvdy9z
d2Yvc2xpZGVzaG93LnN3Zj9YTUxmaWxlPS9zbGlkZXNob3cveG1sLyIgKyB4bWxGaWxlOwoJCQoJ
CXZhciBIVE1Mc3RyID0gIiI7CgkJSFRNTHN0ciArPSAiPG9iamVjdCBjbGFzc2lkPVwiY2xzaWQ6
ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0NTUzNTQwMDAwXCIgY29kZWJhc2U9XCJodHRwOi8v
ZnBkb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFz
aC5jYWIjdmVyc2lvbj02LDAsMCwwXCIgd2lkdGg9XCIzOTBcIiBoZWlnaHQ9XCIzMDBcIiBpZD1c
InNsaWRlc2hvd1wiIGFsaWduPVwibWlkZGxlXCI+IjsKCQlIVE1Mc3RyICs9ICI8cGFyYW0gbmFt
ZT1cImFsbG93U2NyaXB0QWNjZXNzXCIgdmFsdWU9XCJzYW1lRG9tYWluXCIgLz4iOwoJCUhUTUxz
dHIgKz0gIjxwYXJhbSBuYW1lPVwibW92aWVcIiB2YWx1ZT1cIiIgKyBzd2ZGaWxlICsgIlwiIC8+
IjsKCQlIVE1Mc3RyICs9ICI8cGFyYW0gbmFtZT1cInF1YWxpdHlcIiB2YWx1ZT1cImhpZ2hcIiAv
PiI7CgkJSFRNTHN0ciArPSAiPHBhcmFtIG5hbWU9XCJ3bW9kZVwiIHZhbHVlPVwidHJhbnNwYXJl
bnRcIiAvPiI7CgkJSFRNTHN0ciArPSAiPGVtYmVkIHNyYz1cIiIgKyBzd2ZGaWxlICsgIlwiIHdt
b2RlPVwidHJhbnNwYXJlbnRcIiBxdWFsaXR5YWlnaFwiIHdpZHRoPVwiMzkwXCIgaGVpZ2h0PVwi
MzAwXCIgbmFtZT1cInNsaWRlc2hvd1wiIGFsaWduPVwibWlkZGxlXCIgYWxsb3dTY3JpcHRBY2Nl
c3M9XCJzYW1lRG9tYWluXCIgdHlwZT1cImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoXCIg
cGx1Z2luc3BhZ2U9XCJodHRwOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVy
XCIgLz4iOwoJCUhUTUxzdHIgKz0gIjwvb2JqZWN0PiI7CgkJcmV0dXJuIEhUTUxzdHI7Cgl9CgkK
CWZ1bmN0aW9uIHNob3dGaXJzdEVtYmVkZGVkU2xpZGUoaW1nTmFtZSwgcGhvdG9DcmVkaXQsIHBo
b3RvQ2FwdGlvbil7CgkJdmFyIEhUTUxzdHIgPSAiIjsKCQlIVE1Mc3RyICs9ICI8IS0tIGJlZ2lu
IHBob3RvIC0tPiI7CgkJSFRNTHN0ciArPSAiPGltZyBzcmM9XCIiICsgaW1nTmFtZSArICJcIiB3
aWR0aD1cIjM5MFwiIGhlaWdodD1cIjIwMFwiIGFsdD1cInBob3RvXCIgYm9yZGVyPVwiMFwiPiI7
CgkJSFRNTHN0ciArPSAiPCEtLSBlbmQgcGhvdG8gLS0+IjsKCQlIVE1Mc3RyICs9ICI8ZGl2IGFs
aWduPVwicmlnaHRcIiBjbGFzcz1cInBob3RvY3JlZGl0XCI+IiArIHBob3RvQ3JlZGl0ICsgIjwv
ZGl2PiI7CgkJSFRNTHN0ciArPSAiPGRpdiBjbGFzcz1cInBob3RvY2FwdGlvblwiPiIgKyBwaG90
b0NhcHRpb24gKyAiPC9kaXY+IjsKCQlyZXR1cm4gSFRNTHN0cjsKCX0KCS8vZW5kIGZ1bmN0aW9u
cyBmb3IgR2xvYmFsIGZsYXNoIHNsaWRlc2hvd3MKCQoJCglmdW5jdGlvbiBwcmVsb2FkTmF2SW1h
Z2VzKGltYWdlTmFtZXMsIGltYWdlUGF0aCl7CgkJdmFyIGxvYWRlZEltYWdlcyA9IG5ldyBBcnJh
eSgpOwoJCWlmIChkb2N1bWVudC5pbWFnZXMpIHsKCQkJZm9yICh2YXIgaT0wOyBpIDwgaW1hZ2VO
YW1lcy5sZW5ndGg7IGkrKyl7CgkJCQlsb2FkZWRJbWFnZXNbaV0gPSBuZXcgSW1hZ2UoKTsKCQkJ
CWxvYWRlZEltYWdlc1tpXS5zcmMgPSBpbWFnZVBhdGggKyAibmF2XyIgKyBpbWFnZU5hbWVzW2ld
ICsgIl9vZmYuZ2lmIjsKCQkJfQoJCX0KCQoJfQoJCglmdW5jdGlvbiByZWFkQ29va2llKHZhbHVl
KXsKCQl2YXIgYWxsQ29va2llVmFscyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpOwoJCWZv
ciAodmFyIGk9MDsgaSA8IGFsbENvb2tpZVZhbHMubGVuZ3RoOyBpKyspeyAvL2xvb3AgdGhyb3Vn
aCBhbGwgY29va2llcwoJCQlpZiAoYWxsQ29va2llVmFsc1tpXS5pbmRleE9mKHZhbHVlKSAhPSAt
MSkgeyAvL2ZpbmQgdGFyZ2V0IGNvb2tpZQoJCQkJdmFyIGNvb2tpZVZhbCA9IGFsbENvb2tpZVZh
bHNbaV0uc3BsaXQoIj0iKTsgLy9zcGxpdCBuYW1lL3ZhbHVlIHBhaXIKCQkJCXJldHVybiBjb29r
aWVWYWxbMV07IC8vcmV0dXJuIHRhcmdldCBjb29raWUgdmFsdWUKCQkJfQoJCX0KCX0KCQoJZnVu
Y3Rpb24gZXhwYW5kTXVsdGltZWRpYVdpbmRvdygpewoJCWlmICh3aW5kb3cucmVzaXplVG8gJiYg
d2luZG93Lm1vdmVUbykgewoJCQl3aW5kb3cucmVzaXplVG8oc2NyZWVuLmF2YWlsV2lkdGgsIHNj
cmVlbi5hdmFpbEhlaWdodCk7CgkJCXdpbmRvdy5tb3ZlVG8oMCwwKTsKCQl9Cgl9CgkKCWZ1bmN0
aW9uIHNocmlua011bHRpbWVkaWFXaW5kb3codyxoKXsKCQlpZiAod2luZG93LnJlc2l6ZVRvKSB3
aW5kb3cucmVzaXplVG8odyxoKTsKCQlpZiAod2luZG93Lm1vdmVUbykgewoJCQl2YXIgd2luWCA9
ICgoc2NyZWVuLmF2YWlsV2lkdGgvMikgLSAody8yKSk7CgkJCXZhciB3aW5ZID0gKChzY3JlZW4u
YXZhaWxIZWlnaHQvMikgLSAoaC8yKSk7CgkJCXdpbmRvdy5tb3ZlVG8od2luWCx3aW5ZKTsKCQl9
Cgl9CgkKCWZ1bmN0aW9uIGllWExpcXVpZFdpZHRoKCkgewoJCWlmIChkb2N1bWVudC5ib2R5LmNs
aWVudFdpZHRoIDwgNzc0KSB7CgkJCXJldHVybiAiNzY4cHgiOwoJCX0gZWxzZSBpZiAoZG9jdW1l
bnQuYm9keS5jbGllbnRXaWR0aCA+IDk4NCkgewoJCQlyZXR1cm4gIjk4MHB4IjsKCQl9IGVsc2Ug
ewoJCQlyZXR1cm4gImF1dG8iOwoJCX0KCX0KCglmdW5jdGlvbiBzZXRDbGllbnRTaXplQ29va2ll
cygpIHsKICAgICAgICAJdmFyIGNsaWVudF93ID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDsK
ICAgICAgIAkJdmFyIHBhdGggPSAiLyI7CiAgICAgICAgCXZhciBkb21haW4gPSAibnl0aW1lcy5j
b20iOwogICAgICAgIAlkb2N1bWVudC5jb29raWUgPSAiY2xpZW50X3c9IiArIGNsaWVudF93ICsg
IjsgcGF0aD0gIiArIHBhdGggKyAiOyBkb21haW49IiArIGRvbWFpbjsKCX0KCgoKLy8gRnVuY3Rp
b24gZm9yIENsYXNzaWZpZWRzIGFuZCBNb3N0IFBvcHVsYXIgbW9kdWxlcwogICBmdW5jdGlvbiBB
Y2NvcmRpYW4odGFyZ2V0KSB7CiAgIAl0eXBlb2YgdGFyZ2V0ID09ICJvYmplY3QiID8gdGhpcy5l
bGVtZW50ID0gdGFyZ2V0IDogdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
dGFyZ2V0KTsgaWYgKCF0aGlzLmVsZW1lbnQpIHJldHVybiBmYWxzZTsgIAogICAJdGhpcy51bCA9
IHRoaXMuZWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidWwiKVswXTsgCiAgIAl0aGlzLnRh
YnMgPSB0aGlzLnVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaSIpOwogICAJdGhpcy50YWJDb250
ZW50ID0gdGhpcy5nZXRUYWJDb250ZW50KCk7CiAgIAl0aGlzLmJpbmQoKTsKICAgfQoKICAgQWNj
b3JkaWFuLnByb3RvdHlwZS5nZXRUYWJDb250ZW50ID0gZnVuY3Rpb24oKSB7CiAgIAl0YWJDb250
ZW50PSBuZXcgQXJyYXkoKTsgICAgCiAgIAl0aGlzLmRpdnMgPSB0aGlzLmVsZW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImRpdiIpOwogICAJZm9yKHZhciBpID0gMDsgaSA8IHRoaXMuZGl2cy5s
ZW5ndGg7IGkrKykgewogICAgICAgICAgIGlmICgvdGFiQ29udGVudC9pLnRlc3QodGhpcy5kaXZz
W2ldLmNsYXNzTmFtZSkpIHsKICAgICAgICAgICB0YWJDb250ZW50LnB1c2godGhpcy5kaXZzW2ld
KTsgICAgICAgICAgICAgICAgICAgICAgICAKICAgCQl9CiAgIAl9CiAgIAlyZXR1cm4gdGFiQ29u
dGVudDsKICAgfQoKCiAgIEFjY29yZGlhbi5wcm90b3R5cGUuYmluZCA9IGZ1bmN0aW9uKCkgeyAg
ICAKICAgCXZhciBvID0gdGhpczsKICAgCWZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYnMubGVu
Z3RoOyBpKyspIHsKICAgCQl0aGlzLnRhYnNbaV0ub25jbGljayA9IGZ1bmN0aW9uKCkgeyAKICAg
CQkgICBpZiAodGhpcy5jbGFzc05hbWUgIT0gJ3NlbGVjdGVkJykgewogICAJCSAgICAgIG8ub3Bl
bih0aGlzKTsgcmV0dXJuIGZhbHNlOwogICAJCSAgICAgIHZhciBhID0gdGhpcy5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiYSIpWzBdOwogICAJCSAgICAgIGlmIChhKSBhLm9uY2xpY2sgPSBmdW5jdGlv
bigpIHsgCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAKICAgICAgICAgICAgICAg
fQogICAJCSAgIH0KICAgCQl9IAogICAJfQogICB9CgogICBBY2NvcmRpYW4ucHJvdG90eXBlLm9w
ZW4gPSBmdW5jdGlvbihjYWxsZXIpIHsgICAgCiAgIAlmb3IodmFyIGkgPSAwOyBpIDwgdGhpcy50
YWJzLmxlbmd0aDsgaSsrKSB7CiAgIAkJdmFyIHRhYiA9IHRoaXMudGFic1tpXTsgCiAgIAkJaWYg
KHRhYiA9PSBjYWxsZXIpIHsgIAogICAJCQl0aGlzLmNvbGxhcHNlKCk7CiAgIAkJCXRhYi5jbGFz
c05hbWUgPSAic2VsZWN0ZWQiCiAgIAkJCXRoaXMudGFiQ29udGVudFtpXS5zdHlsZS5kaXNwbGF5
ID0gImJsb2NrIjsKICAgCQl9CiAgIAl9CiAgIH0KCiAgIEFjY29yZGlhbi5wcm90b3R5cGUuY29s
bGFwc2UgPSBmdW5jdGlvbigpIHsKICAgCWZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYnMubGVu
Z3RoOyBpKyspIHsgICAgCiAgIAkJdGhpcy50YWJzW2ldLmNsYXNzTmFtZSA9ICIiOwogICAJCXRo
aXMudGFiQ29udGVudFtpXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyAgICAgICAgICAgICAgICAg
CiAgIAl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICB9CgovL0Z1bmN0aW9uIGZvciBHb29nbGUgYWRzIGxpbmtzCmZ1bmN0
aW9uIGxpbmtib3godXJsLCB3aW5OYW1lKSB7CiAgIHdpbmRvdy5vcGVuKHVybCwgd2luTmFtZSwg
CiJsb2NhdGlvbj15ZXMsZGlyZWN0b3JpZXM9eWVzLG1lbnViYXI9eWVzLHRvb2xiYXI9eWVzLHN0
YXR1cz15ZXMscmVzaXphYmxlPXllcyxzY3JvbGxiYXJzPXllcyIpOwp9ICAgIAoKCmZ1bmN0aW9u
IGVuaGFuY2VBY2NvcmRpYW5zKCkgewoJdmFyIGRpdnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnZGl2Jyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsK
CQl2YXIgZWxlbWVudCA9IGRpdnNbaV07ICAgICAKCQlpZiAoL2FjY29yZGlhbi9pLnRlc3QoZWxl
bWVudC5jbGFzc05hbWUpKSB7CgkJCW5ldyBBY2NvcmRpYW4oZWxlbWVudCk7CgkJfQoJfSAKfQoK
Z2V0TWV0YVRhZ1ZhbHVlID0gZnVuY3Rpb24obmFtZSl7CiAgICAgICAgaWYgKGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKSB7CiAgICAgICAgICAgICAgICB2YXIgbWV0YSA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRhIik7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBp
PTA7IGkgPCBtZXRhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICht
ZXRhW2ldLm5hbWUgPT0gbmFtZSkgcmV0dXJuIG1ldGFbaV0uY29udGVudDsKICAgICAgICAgICAg
ICAgIH0KICAgICAgICB9Cn0KCnZhciBOWVREID0gTllURCB8fCB7fTsKCk5ZVEQuSG9zdHMgPSAo
ZnVuY3Rpb24oKXsKICB2YXIgaG9zdCwgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJzY3JpcHQiKTsKICAKICBmb3IgKHZhciBpID0gMCwgc2NyaXB0OyBzY3JpcHQgPSBz
Y3JpcHRzW2ldOyBpKyspIHsKICAgIGhvc3QgPSBzY3JpcHQuc3JjICYmIC9eKC4rXC5ueXRpbWVz
LmNvbSlcL2pzXC9jb21tb25cLmpzLy50ZXN0KHNjcmlwdC5zcmMpID8gUmVnRXhwLiQxIDogJyc7
CiAgICBpZiAoaG9zdCkgeyBicmVhayB9OwogIH07CgogIHJldHVybiB7CiAgICBpbWFnZUhvc3Q6
IGhvc3QsCiAgICBqc0hvc3Q6IGhvc3QsCiAgICBjc3NIb3N0OiBob3N0CiAgfQp9KSgpOwoKCk5Z
VEQucmVxdWlyZSA9IGZ1bmN0aW9uKGZpbGUsIGNhbGxiYWNrKSB7CiAgCiAgaWYgKGRvY3VtZW50
LmxvYWRlZCkgeyB0aHJvdygnQ2Fubm90IHJlcXVpcmUgZmlsZSwgZG9jdW1lbnQgaXMgYWxyZWFk
eSBsb2FkZWQnKTsgfSAgCiAgCiAgdmFyIGZvcmNlID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5n
dGggLSAxXSA9PT0gdHJ1ZTsKICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJzY3JpcHQiKTsKICB2YXIgbG9hZGVkX3NjcmlwdHMgPSB7fTsKICAKICBmb3IgKHZh
ciBpID0gMCwgc2NyaXB0OyBzY3JpcHQgPSBzY3JpcHRzW2ldOyBpKyspIHsKICAgIGlmKHNjcmlw
dC5zcmMpIHsgbG9hZGVkX3NjcmlwdHNbc2NyaXB0LnNyY10gPSAxOyB9CiAgfTsKCiAgdmFyIHVy
bCA9IGZpbGUuaW5kZXhPZignLycpID09IDAgPyAgTllURC5Ib3N0cy5qc0hvc3QgKyBmaWxlIDog
ZmlsZTsKICAKICBpZiAoZm9yY2UgfHwgIWxvYWRlZF9zY3JpcHRzW3VybF0pIHsgCiAgICBkb2N1
bWVudC53cml0ZSgnPHNjcmlwdCBzcmM9IicgKyB1cmwgKyAnIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04IiBvbmVycm9yPSJ0aHJvdyhcJ05ZVEQucmVxdWlyZTogQW4gZXJy
b3Igb2NjdXJlZFwnKSI+PFwvc2NyaXB0PicpOwogIH0KICAKICBpZiAodHlwZW9mIGNhbGxiYWNr
ID09ICdmdW5jdGlvbicpIHsKICAgIAogICAgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIp
IHsKICAgICAgZG9jdW1lbnQud3JpdGUoJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBj
aGFyc2V0PSJ1dGYtOCI+KCcgKyBjYWxsYmFjay50b1N0cmluZygpICsgJykoKTs8XC9zY3JpcHQ+
Jyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgTllURC5yZXF1aXJlLmNhbGxiYWNrcyA9IE5ZVEQu
cmVxdWlyZS5jYWxsYmFja3MgfHwgW107CiAgICAgIE5ZVEQucmVxdWlyZS5jYWxsYmFja3MucHVz
aChjYWxsYmFjayk7CiAgICAgIGRvY3VtZW50LndyaXRlKCI8c2NyaXB0IGlkPV9fb25BZnRlclJl
cXVpcmUiICsgTllURC5yZXF1aXJlLmNhbGxiYWNrcy5sZW5ndGggKyAiIHNyYz0vLzo+PFwvc2Ny
aXB0PiIpOwogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiX19vbkFmdGVyUmVxdWlyZSIg
KyBOWVRELnJlcXVpcmUuY2FsbGJhY2tzLmxlbmd0aCkub25yZWFkeXN0YXRlY2hhbmdlID0gZnVu
Y3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMucmVhZHlTdGF0ZSA9PSAiY29tcGxldGUiKSB7CiAg
ICAgICAgICB0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CiAgICAgICAgICAoTllURC5y
ZXF1aXJlLmNhbGxiYWNrcy5wb3AoKSkoKTsKICAgICAgICB9CiAgICAgIH07CiAgICB9CiAgICAK
ICB9CiAgCn07CgoKLy8gTG9hZCBUaW1lc1Blb3BsZQppZiAoIXdpbmRvdy5UaW1lc1Blb3BsZSAm
JiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0FwcGxlV2ViS2l0LzQxJykgPT0gLTEgJiYg
IXdpbmRvdy5vcGVyYSkgewogIE5ZVEQucmVxdWlyZSgnL2pzL2FwcC90aW1lc3Blb3BsZS9wcmVs
b2FkZXIuanMnKTsKfQrUAAUAEQAHAAgAFwAYABQAGV8QPGh0dHA6Ly9ncmFwaGljczgubnl0aW1l
cy5jb20vanMvYXBwL3RpbWVzcGVvcGxlL3ByZWxvYWRlci5qc08RBKZicGxpc3QwMNQBAgMEBQYJ
ClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VS
ZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAkCwwmLC0zHjQ1U1RVVldYWVpbXF1eX2BhYmNk
ZWZnaGlqa29wVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMk
MTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgCOAAoAiEAgQAIAGgAeABYAIEAeAABAB0w0n
KCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxA8aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVz
LmNvbS9qcy9hcHAvdGltZXNwZW9wbGUvcHJlbG9hZGVyLmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNz
bmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7BnqfnRDI0w02Nzg5RldOUy5rZXlzWk5TLm9iamVj
dHOAIaw6Ozw9Pj9AQUJDREWACYAKgAuADIANgA6AD4AQgBGAEoATgBSsR0hJSktMTU5PUFFSgBWA
FoAXgBiAGYAagBuAHIAdgB6AH4AgVERhdGVdQ2FjaGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkXUFj
Y2VwdC1SYW5nZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVu
dC1MZW5ndGheTnRjb2VudC1MZW5ndGhURXRhZ1pDb25uZWN0aW9uVFZhcnlfEB1Nb24sIDEwIE5v
diAyMDA4IDIzOjM4OjQzIEdNVF8QF3ByaXZhdGUsIG1heC1hZ2U9NDQ0NDA0XxAdV2VkLCAwOCBP
Y3QgMjAwOCAxNDo0NTo1MiBHTVRVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFf
EBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRTNTk5VDE0MTdeIjU4OS00OGVjYzdhMCJaa2VlcC1h
bGl2ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2xto21uMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNE
aWN0aW9uYXJ5EQWJ0i4vcXKjcnMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAI
ABEAGgAfACkAMgA3ADoAUABSAGQAiwCRAKwAswC2ALkAvQDBAMQAxwDKAM0A0ADTANYA2QDbAN0A
3wDhAOMA5QDnAOkA6wDtAO8A8QD4AQABDAEOARABEgFRAVYBXwFqAW0BcwF8AYUBhwGOAZYBoQGj
AbABsgG0AbYBuAG6AbwBvgHAAcIBxAHGAcgB1QHXAdkB2wHdAd8B4QHjAeUB5wHpAesB7QHyAgAC
DgIcAi8CNgJDAlICYQJmAnECdgKWArAC0ALWAtsC9AMPAxMDGAMnAzIDRANJA00DYwNwA3MDeAN8
A5AAAAAAAAACAQAAAAAAAAB0AAAAAAAAAAAAAAAAAAADnk8RBYkvKgokSWQkCihjKSAyMDA4IFRo
ZSBOZXcgWW9yayBUaW1lcyBDb21wYW55CiovCgppZiAoISEod2luZG93LmF0dGFjaEV2ZW50ICYm
ICF3aW5kb3cub3BlcmEpIHx8IHR5cGVvZiBjb25zb2xlID09ICd1bmRlZmluZWQnKSB7CiAgdHJ5
IHsKICAgIGNvbnNvbGUgPSB7fTsKICAgIGNvbnNvbGUubG9nID0gZnVuY3Rpb24oKXt9OwogICAg
Y29uc29sZS53YXJuID0gZnVuY3Rpb24oKXt9OwogICAgY29uc29sZS5lcnJvciA9IGZ1bmN0aW9u
KCl7fTsKICAgIGNvbnNvbGUudGltZSA9IGZ1bmN0aW9uKCl7fTsKICAgIGNvbnNvbGUudGltZUVu
ZCA9IGZ1bmN0aW9uKCl7fTsKICB9IGNhdGNoKGUpIHt9Cn0KCnZhciBUUENPTkZJRyA9IHsKICBo
b3N0OiAgICAgICAgICAgICAgJ2h0dHA6Ly90aW1lc3Blb3BsZS5ueXRpbWVzLmNvbScsCiAgY3Nz
X2hvc3Q6ICAgICAgICAgICdodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tJywKICBpbWFnZV9o
b3N0OiAgICAgICAgJ2h0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20nLAogIGpzX2hvc3Q6ICAg
ICAgICAgICAnaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbScsCiAgYWRfaG9zdDogICAgICAg
ICAgICdodHRwOi8vd3d3Lm55dGltZXMuY29tJywKICB1c2VyX2ltYWdlX2hvc3QgOiAgJ2h0dHA6
Ly9waW1hZ2UudGltZXNwZW9wbGUubnl0aW1lcy5jb20nLAogIGltYWdlX3BhdGg6ICAgICAgICAn
L2ltYWdlcy9hcHBzL3RpbWVzcGVvcGxlLycsCiAgY3NzX3BhdGg6ICAgICAgICAgICcvY3NzL2Fw
cC90aW1lc3Blb3BsZS8nLAogIHNlcnZpY2U6ICAgICAgICAgICAnL3N2Yy90aW1lc3Blb3BsZS9m
ZS9mZV9zdmMuaHRtbCcsCiAgaW1hZ2Vfc2VydmljZTogICAgICdodHRwOi8vdHAtdXBsb2FkLm55
dGltZXMuY29tL3Bvc3RwaWMucGhwJywKICB4cGk6ICAgICAgICAgICAgICAgZmFsc2UsCiAgdG9r
ZW46ICAgICAgICAgICAgIC9STUlEPShbXjtdKykvLnRlc3QodW5lc2NhcGUoZG9jdW1lbnQuY29v
a2llKSkgPyBSZWdFeHAuJDEgOiAnJwp9OwoKdmFyIFRpbWVzUGVvcGxlID0gewogIHZlcnNpb246
ICcxLjEnCn07CgpUaW1lc1Blb3BsZS5yZXF1aXJlID0gZnVuY3Rpb24odXJsKSB7CiAgZG9jdW1l
bnQud3JpdGUoJzxzY3JpcHQgc3JjPSInKyB1cmwgKyciIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
Y2hhcnNldD0idXRmLTgiPjxcL3NjcmlwdD4nKTsKfQoKVGltZXNQZW9wbGUucmVxdWlyZShUUENP
TkZJRy5qc19ob3N0ICsgJy9qcy9hcHAvbGliL05ZVEQvMC4wLjEvY29va2llLmpzJyk7ClRpbWVz
UGVvcGxlLnJlcXVpcmUoVFBDT05GSUcuanNfaG9zdCArICcvanMvYXBwL3RpbWVzcGVvcGxlL3Vy
aWxpc3QuanMnKTsKVGltZXNQZW9wbGUucmVxdWlyZShUUENPTkZJRy5qc19ob3N0ICsgJy9qcy9h
cHAvdGltZXNwZW9wbGUvbWFyZ2luZml4LmpzJyk71AAFABEABwAIABsAHAAUAB1fEDxodHRwOi8v
Z3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC9saWIvTllURC8wLjAuMS9jb29raWUuanNPEQSn
YnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEH
CF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QJAsMJiwtMx40NVNU
VVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtvcFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQd
JVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAjgAKAIhAIEACA
BoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QPGh0dHA6Ly9n
cmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2xpYi9OWVRELzAuMC4xL2Nvb2tpZS5qc9IuLzAx
WCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+waBhjQQyNMNNjc4OUZX
TlMua2V5c1pOUy5vYmplY3RzgCGsOjs8PT4/QEFCQ0RFgAmACoALgAyADYAOgA+AEIARgBKAE4AU
rEdISUpLTE1OT1BRUoAVgBaAF4AYgBmAGoAbgByAHYAegB+AIFREYXRlXUNhY2hlLUNvbnRyb2xd
TGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzXxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJcQ29u
dGVudC1UeXBlXkNvbnRlbnQtTGVuZ3RoXk50Y29lbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvblRW
YXJ5XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVRfEBdwcml2YXRlLCBtYXgtYWdlPTIw
MzM3OF8QHVdlZCwgMTAgU2VwIDIwMDggMjI6MTk6NDUgR01UVWJ5dGVzVGd6aXBfEBZTdW4tT05F
LVdlYi1TZXJ2ZXIvNi4xXxAYYXBwbGljYXRpb24veC1qYXZhc2NyaXB0VDExMzVUMjcwNF4iYTkw
LTQ4Yzg0ODAxIlprZWVwLWFsaXZlXxAPQWNjZXB0LUVuY29kaW5n0i4vbG2jbW4yXxATTlNNdXRh
YmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRCpDSLi9xcqNyczJfEBFOU0hUVFBVUkxSZXNwb25z
ZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACLAJEArACzALYAuQC9AMEAxADH
AMoAzQDQANMA1gDZANsA3QDfAOEA4wDlAOcA6QDrAO0A7wDxAPgBAAEMAQ4BEAESAVEBVgFfAWoB
bQFzAXwBhQGHAY4BlgGhAaMBsAGyAbQBtgG4AboBvAG+AcABwgHEAcYByAHVAdcB2QHbAd0B3wHh
AeMB5QHnAekB6wHtAfICAAIOAhwCLwI2AkMCUgJhAmYCcQJ2ApYCsALQAtYC2wL0Aw8DFAMZAygD
MwNFA0oDTgNkA3EDdAN5A30DkQAAAAAAAAIBAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAOfTxEKkHZh
ciBOWVREID0gd2luZG93Lk5ZVEQgfHwge307CgovKgogKiBTdGFuZGFyZCBjbGFzcyB0byB3b3Jr
IHdpdGggdW5lbmNyeXB0ZWQgY29va2llcyBpbiBKUy4KICogIFVzZSB0aGUgTllURC5Db29raWVz
LmdldE9yQ3JlYXRlKCkgbWV0aG9kIHRvIHJlY2VpdmUgYSBjb29raWUKICogIG9iamVjdCB0byB3
b3JrIHdpdGguICBEZXRhaWxzIG9mIGNvb2tpZSBzZXR0aW5nIGFuZCBwYXJzaW5nCiAqICBhcmUg
cHJpdmF0ZSBmb3IgcHJvdGVjdGlvbi4gQ2FuIG9ubHkgbW9kaWZ5IGV4aXN0aW5nIGNvb2tpZXMK
ICogIGlmIHRoaXMgc2FtZSBjbGFzcyB3YXMgdGhlIG9uZSB0aGF0IGNyZWF0ZWQgaXQuCiAqLwpO
WVRELkNvb2tpZXMgPSB7CglnZXRPckNyZWF0ZTogZnVuY3Rpb24gKGNvb2tpZU5hbWUpIHsKCQl2
YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpOwoJCXZhciBuYW1lU2VhcmNo
U3RyaW5nID0gY29va2llTmFtZSArICc9JzsKCQl2YXIgY29va2llVmFsdWVTdHJpbmcgPSAnJzsK
CQlmb3IgKHZhciBjPTAsIGxlbj1jb29raWVzLmxlbmd0aDsgYzxsZW47ICsrYykgewoJCQkgdmFy
IGN1ciA9IGNvb2tpZXNbY107CgkJCSBjdXIgPSBjdXIucmVwbGFjZSgvXiAqLywgJycpOwoJCQkg
aWYgKGN1ci5pbmRleE9mKG5hbWVTZWFyY2hTdHJpbmcpID09IDApIHsKCQkJCSAgY29va2llVmFs
dWVTdHJpbmcgPSBjdXIuc3Vic3RyaW5nKG5hbWVTZWFyY2hTdHJpbmcubGVuZ3RoLGN1ci5sZW5n
dGgpOwoJCQkgfQoJCX0KCgkJdmFyIENvb2tpZSA9IGZ1bmN0aW9uIChuYW1lLHN0cikgewoJCQl2
YXIgY2hlY2tLZXkgPSAnY3JlYXRvcic7CgkJCXZhciBjaGVja1ZhbCA9ICdOWVRELkNvb2tpZXMn
OwoJCQl2YXIgY29va2llTmFtZSA9IG5hbWU7CgkJCXZhciBjb29raWVTdHJpbmcgPSBzdHIgfHwg
IiI7CgkJCXZhciBrZXlWYWxQYWlycyA9IHt9OwoKCQkJaWYgKHN0ciAhPSAiIikgewoJCQkJdmFy
IGNoZWNrU3RyID0gY2hlY2tLZXkgKyAnfCcgKyBjaGVja1ZhbDsKCQkJCWlmIChjb29raWVTdHJp
bmcuaW5kZXhPZihjaGVja1N0cikgPT0gLTEpIHsKCQkJCQl0aHJvdyhuYW1lICsgIiBjb29raWUg
d2FzIE5PVCBjcmVhdGVkIGJ5IHRoZSBOWVRELkNvb2tpZXMgY2xhc3MgYW5kIGNhbid0IGJlIG1v
ZGlmaWVkLiIpOwoJCQkJCXJldHVybiBudWxsOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJdmFyIHJl
Z2V4ID0gbmV3IFJlZ0V4cChjaGVja1N0ciwgImciKTsKCQkJCQljb29raWVTdHJpbmcucmVwbGFj
ZShyZWdleCwgIiIpOwoJCQkJfQoJCQkJdmFyIHBhaXJzID0gY29va2llU3RyaW5nLnNwbGl0KCde
Jyk7CgkJCQlmb3IgKHZhciBwPTAsIGxlbj1wYWlycy5sZW5ndGg7IHA8bGVuOyArK3ApIHsKCQkJ
CQl2YXIgY3VyID0gcGFpcnNbcF07CgkJCQkJdmFyIHZhbHMgPSBjdXIuc3BsaXQoJ3wnKTsKCQkJ
CQlrZXlWYWxQYWlyc1t2YWxzWzBdXSA9IHZhbHNbMV07CgkJCQl9CgkJCX0KCgkJCXZhciBzZXQg
PSBmdW5jdGlvbigpIHsKCQkJCXZhciBleHAgPSBuZXcgRGF0ZSgpOwoJCQkJdmFyIGxlbiA9IDA7
CgkJCQl2YXIga2V5dmFscyA9IFtdOwoJCQkJaWYgKGtleVZhbFBhaXJzW2NoZWNrS2V5XSkgewoJ
CQkJCWRlbGV0ZSBrZXlWYWxQYWlyc1tjaGVja0tleV07CgkJCQl9CgkJCQlmb3IgKGtleSBpbiBr
ZXlWYWxQYWlycykgewoJCQkJCWlmIChrZXlWYWxQYWlycy5oYXNPd25Qcm9wZXJ0eShrZXkpKXsK
CQkJCQkJa2V5dmFscy5wdXNoKGtleSArICJ8IiArIGtleVZhbFBhaXJzW2tleV0pOwoJCQkJCQls
ZW4rKzsKCQkJCQl9CgkJCQl9CgkJCQlrZXl2YWxzLnB1c2goY2hlY2tLZXkgKyAifCIgKyBjaGVj
a1ZhbCk7CgkJCQlpZiAobGVuID4gMCkgewoJCQkJCWV4cC5zZXRUaW1lKGV4cC5nZXRUaW1lKCkg
KyAzMTUzNjAwMDAwMCk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQlleHAuc2V0VGltZShleHAuZ2V0
VGltZSgpIC0gODY0MDAwMDApOwoJCQkJfQoJCQkJdmFyIGV4cGlyZXMgPSAiOyBleHBpcmVzPSIg
KyBleHAudG9HTVRTdHJpbmcoKTsKCQkJCWRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZU5hbWUgKyAi
PSIgKyBrZXl2YWxzLmpvaW4oJ14nKSArIGV4cGlyZXMgKyAiOyBkb21haW49bnl0aW1lcy5jb207
IHBhdGg9LyI7CgkJCX07CgoJCQkvKgoJCQkgKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUg
dGhlIGludGVyZmFjZSBmb3IgdGhlIENvb2tpZSBvYmplY3QuCgkJCSAqLwoJCQl0aGlzLmxvb2t1
cCA9IGZ1bmN0aW9uIChrZXkpIHsKCQkJCXJldHVybiBrZXlWYWxQYWlyc1trZXldOwoJCQl9OwoK
CQkJdGhpcy5hZGQgPSBmdW5jdGlvbiAob2JqKSB7CgkJCQlmb3IgKGtleSBpbiBvYmopIHsKCQkJ
CQlpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHsKCQkJCQkJa2V5VmFsUGFpcnNba2V5XSA9
IG9ialtrZXldOwoJCQkJCX0KCQkJCX0KCQkJCXNldCgpOwoJCQl9OwoKCQkJdGhpcy5yZW1vdmUg
PSBmdW5jdGlvbiAoKSB7CgkJCQlmb3IgKHZhciBpPTAsIGFyZzsgYXJnID0gYXJndW1lbnRzW2ld
OyArK2kpIHsKCQkJCQlpZiAoa2V5VmFsUGFpcnNbYXJnXSkgewoJCQkJCQlkZWxldGUga2V5VmFs
UGFpcnNbYXJnXTsKCQkJCQl9CgkJCQl9CgkJCQlzZXQoKTsKCQkJfTsKCQkJLyogRW5kIHB1Ymxp
YyBpbnRlcmZhY2UgKi8KCQl9OwoKCQlyZXR1cm4gbmV3IENvb2tpZShjb29raWVOYW1lLCBjb29r
aWVWYWx1ZVN0cmluZyk7Cgl9Cn07CgrUAAUAEQAHAAgAHwAgABQAIV8QOmh0dHA6Ly9ncmFwaGlj
czgubnl0aW1lcy5jb20vanMvYXBwL3RpbWVzcGVvcGxlL3VyaWxpc3QuanNPEQSlYnBsaXN0MDDU
AQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJl
c291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QJAsMJiwtMx40NVNUVVZXWFlaW1xd
Xl9gYWJjZGVmZ2hpamtvcFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NS
JDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAjgAKAIhAIEACABoAHgAWACBAH
gAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QOmh0dHA6Ly9ncmFwaGljczgu
bnl0aW1lcy5jb20vanMvYXBwL3RpbWVzcGVvcGxlL3VyaWxpc3QuanPSLi8wMVgkY2xhc3Nlc1ok
Y2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsGgu3+EMjTDTY3ODlGV05TLmtleXNaTlMu
b2JqZWN0c4AhrDo7PD0+P0BBQkNERYAJgAqAC4AMgA2ADoAPgBCAEYASgBOAFKxHSElKS0xNTk9Q
UVKAFYAWgBeAGIAZgBqAG4AcgB2AHoAfgCBURGF0ZV1DYWNoZS1Db250cm9sXUxhc3QtTW9kaWZp
ZWRdQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRlbnQtVHlwZV5D
b250ZW50LUxlbmd0aF5OdGNvZW50LUxlbmd0aFRFdGFnWkNvbm5lY3Rpb25UVmFyeV8QHU1vbiwg
MTAgTm92IDIwMDggMjM6Mzg6NDMgR01UXxAXcHJpdmF0ZSwgbWF4LWFnZT01ODEwNDJfEB1Nb24s
IDEwIE5vdiAyMDA4IDE3OjAwOjQ2IEdNVFVieXRlc1RnemlwXxAWU3VuLU9ORS1XZWItU2VydmVy
LzYuMV8QGGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFQxMjQ2VDQwNjVeImZlMS00OTE4NjhiZSJa
a2VlcC1hbGl2ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2xto21uMl8QE05TTXV0YWJsZURpY3Rpb25h
cnlcTlNEaWN0aW9uYXJ5EQ/h0i4vcXKjcnMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNw
b25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAiwCRAKwAswC2ALkAvQDBAMQAxwDKAM0A0ADTANYA
2QDbAN0A3wDhAOMA5QDnAOkA6wDtAO8A8QD4AQABDAEOARABEgFPAVQBXQFoAWsBcQF6AYMBhQGM
AZQBnwGhAa4BsAGyAbQBtgG4AboBvAG+AcABwgHEAcYB0wHVAdcB2QHbAd0B3wHhAeMB5QHnAekB
6wHwAf4CDAIaAi0CNAJBAlACXwJkAm8CdAKUAq4CzgLUAtkC8gMNAxIDFwMmAzEDQwNIA0wDYgNv
A3IDdwN7A48AAAAAAAACAQAAAAAAAAB0AAAAAAAAAAAAAAAAAAADnU8RD+EvKgokSWQ6IHVyaWxp
c3QuanMgNjQxNiAyMDA4LTExLTA3IDE2OjE1OjQyWiBzYW50ZXAgJAooYykgMjAwOCBUaGUgTmV3
IFlvcmsgVGltZXMgQ29tcGFueQoKKi8KClRpbWVzUGVvcGxlLlVSSUxpc3QgPSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICBhbGxvd2VkSG9zdHM6IFsKICAgICdueXQuY29tJywgCiAgICAn
d3d3Lm55dC5jb20nLCAKICAgICdueXRpbWVzLmNvbScsIAogICAgJ3d3dy5ueXRpbWVzLmNvbScs
IAogICAgJ2NvbW11bml0eS5ueXRpbWVzLmNvbScsIAogICAgJ2VsZWN0aW9ucy5ueXRpbWVzLmNv
bScsCiAgICAnZXZlbnRzLm55dGltZXMuY29tJywgCiAgICAnbW92aWVzLm55dGltZXMuY29tJywg
CiAgICAnbW92aWVzMi5ueXRpbWVzLmNvbScsIAogICAgJ215Lm55dGltZXMuY29tJywgCiAgICAn
cG9saXRpY3Mubnl0aW1lcy5jb20nLCAKICAgICd0ZWNoMi5ueXRpbWVzLmNvbScsIAogICAgJ3Rl
Y2gubnl0aW1lcy5jb20nLCAKICAgICd0cmF2ZWwubnl0aW1lcy5jb20nLCAKICAgICd0cmF2ZWwy
Lm55dGltZXMuY29tJywgCiAgICAndG9waWNzLm55dGltZXMuY29tJywgCiAgICAndGhlYXRlci5u
eXRpbWVzLmNvbScsIAogICAgJ2pvYm1hcmtldC5ueXRpbWVzLmNvbScsIAogICAgJ3F1ZXJ5Lm55
dGltZXMuY29tJywgCiAgICAnaGVhbHRoLm55dGltZXMuY29tJywgCiAgICAndGltZXNtYWNoaW5l
Lm55dGltZXMuY29tJywgCiAgICAndGltZXNwZW9wbGUubnl0aW1lcy5jb20nLCAKICAgICd3d3cu
c2VhMS5ueXRpbWVzLmNvbScsIAogICAgJ3R2Lm55dGltZXMuY29tJywKICAgICdhcmllZmYuYmxv
Z3Mubnl0aW1lcy5jb20nLAogICAgJ2FydHNiZWF0LmJsb2dzLm55dGltZXMuY29tJywKICAgICdi
YWdoZGFkYnVyZWF1LmJsb2dzLm55dGltZXMuY29tJywKICAgICdiaXRzLmJsb2dzLm55dGltZXMu
Y29tJywgCiAgICAnYml0dGVuLmJsb2dzLm55dGltZXMuY29tJywgCiAgICAnYmxvdy5ibG9ncy5u
eXRpbWVzLmNvbScsIAogICAgJ2Jyb29rcy5ibG9ncy5ueXRpbWVzLmNvbScsCiAgICAnY2FtcGFp
Z25pbmdmb3JoaXN0b3J5LmJsb2dzLm55dGltZXMuY29tJywKICAgICdjYW1wYWlnbnN0b3BzLmJs
b2dzLm55dGltZXMuY29tJywKICAgICdjYXZldHQuYmxvZ3Mubnl0aW1lcy5jb20nLAogICAgJ2Np
dHlyb29tLmJsb2dzLm55dGltZXMuY29tJywKICAgICdjb2xsaW5zLmJsb2dzLm55dGltZXMuY29t
JywgCiAgICAnY29uc3VsdHMuYmxvZ3Mubnl0aW1lcy5jb20nLAogICAgJ2RpbmVyc2pvdXJuYWwu
YmxvZ3Mubnl0aW1lcy5jb20nLCAKICAgICdkb3RlYXJ0aC5ibG9ncy5ueXRpbWVzLmNvbScsCiAg
ICAnZWNvbm9taXguYmxvZ3Mubnl0aW1lcy5jb20nLAogICAgJ2VnYW4uYmxvZ3Mubnl0aW1lcy5j
b20nLAogICAgJ2VtcGlyZXpvbmUuYmxvZ3Mubnl0aW1lcy5jb20nLCAKICAgICdmYWlyYW5kZm91
bC5ibG9ncy5ueXRpbWVzLmNvbScsCiAgICAnZmlzaC5ibG9ncy5ueXRpbWVzLmNvbScsCiAgICAn
Z2FkZ2V0d2lzZS5ibG9ncy5ueXRpbWVzLmNvbScsCiAgICAnZ3JlZW5pbmMuYmxvZ3Mubnl0aW1l
cy5jb20nLAogICAgJ2hhcHB5ZGF5cy5ibG9ncy5ueXRpbWVzLmNvbScsIAogICAgJ2lkZWFzLmJs
b2dzLm55dGltZXMuY29tJywgCiAgICAna3Jpc3RvZi5ibG9ncy5ueXRpbWVzLmNvbScsCiAgICAn
bGVzc29ucGxhbnMuYmxvZ3Mubnl0aW1lcy5jb20nLCAKICAgICdtZWFzdXJlZm9ybWVhc3VyZS5i
bG9ncy5ueXRpbWVzLmNvbScsCiAgICAnbW9ycmlzLmJsb2dzLm55dGltZXMuY29tJywKICAgICdu
ZXdvbGRhZ2UuYmxvZ3Mubnl0aW1lcy5jb20nLAogICAgJ29seW1waWNzLmJsb2dzLm55dGltZXMu
Y29tJywKICAgICdvcGluaW9uYXRvci5ibG9ncy5ueXRpbWVzLmNvbScsCiAgICAnb3V0b2Zib3Vu
ZHMuYmxvZ3Mubnl0aW1lcy5jb20nLAogICAgJ3BhcGVyY3V0cy5ibG9ncy5ueXRpbWVzLmNvbScs
IAogICAgJ3BhcmVudGluZy5ibG9ncy5ueXRpbWVzLmNvbScsCiAgICAncGlwZWxpbmUuYmxvZ3Mu
bnl0aW1lcy5jb20nLCAKICAgICdwb2d1ZS5ibG9ncy5ueXRpbWVzLmNvbScsCiAgICAncG9sbGFu
LmJsb2dzLm55dGltZXMuY29tJywgCiAgICAncmVhZGluZ3Jvb20uYmxvZ3Mubnl0aW1lcy5jb20n
LAogICAgJ3N1bW1lcmNpdHkuYmxvZ3Mubnl0aW1lcy5jb20nLCAKICAgICd0aGVib2FyZC5ibG9n
cy5ueXRpbWVzLmNvbScsCiAgICAndGhlY2F1Y3VzLmJsb2dzLm55dGltZXMuY29tJywgCiAgICAn
dGhlY2xpbWIuYmxvZ3Mubnl0aW1lcy5jb20nLAogICAgJ3RoZWdyYWR1YXRlcy5ibG9ncy5ueXRp
bWVzLmNvbScsCiAgICAndGhlcG91ci5ibG9ncy5ueXRpbWVzLmNvbScsIAogICAgJ3RpZXJuZXls
YWIuYmxvZ3Mubnl0aW1lcy5jb20nLAogICAgJ3RpbWVzdHJhdmVsZXIuYmxvZ3Mubnl0aW1lcy5j
b20nLAogICAgJ3RvcGljcy5ibG9ncy5ueXRpbWVzLmNvbScsIAogICAgJ3R2ZGVjb2Rlci5ibG9n
cy5ueXRpbWVzLmNvbScsIAogICAgJ3Vzb3Blbi5ibG9ncy5ueXRpbWVzLmNvbScsIAogICAgJ3dl
bGwuYmxvZ3Mubnl0aW1lcy5jb20nLCAKICAgICd3aGVlbHMuYmxvZ3Mubnl0aW1lcy5jb20nLCAK
ICAgICd3b3JkcGxheS5ibG9ncy5ueXRpbWVzLmNvbScgCiAgXSwKICAKICBkZW5pZWRVUklzOlsK
ICAgIC8uKj9nbG9naW4uKi8sIC8uKj9cL2F1dGhcL2xvZ2luLiovLCAvLio/Z3N0XC9zaWdub3V0
LiovLCAvLio/cGFnZXdhbnRlZD1wcmludC4qLywgLy4qP3BhZ2Vtb2RlPXByaW50LiovLAogICAg
Ly4qP1wvc3R5bGVcL3RcLy4qLywgLy4qP2FyY2hpdmVcL3BkZi4qLywgLy4qP21hcmtldHMub24u
bnl0aW1lcy5jb20uKi8sIAogICAgLy4qP1xsZWFybmluZy4qLywgLy4qP1wvbWVtYmVyY2VudGVy
LiovLCAvLio/XC9tZW1cLy4qLywgLy4qP1wvZ3N0XC9mb3Jnb3QuKi8sCiAgICAvLio/XC9nc3Rc
L3Vuc3ViLiovLCAvLio/XC9nc3RcL3JlZ2kuKi8sIC8uKj9cL3JlZ2kuKi8sIC8uKj9cL3JlZlwv
Y3Jvc3N3b3Jkc1wvc2V0cHV6emxlLiovLAogICAgLy4qP1wvZ3N0XC9tb3N0YmxvZ2dlZC4qLywg
Ly4qP1wvZ3N0XC9tb3N0c2VhcmNoZWQuKi8sIC8uKj9cL2dzdFwvbW9zdGVtYWlsZWQuKi8sCiAg
ICAvLio/XC9tYXJrZXRpbmdcLy4qLywgLy4qP2pvYm1hcmtldC5ueXRpbWVzLmNvbS4qLywgLy4q
P1wvcGFja2FnZXNcL2h0bWxcL3N0eWxlXC8uKj8vLAogICAgLy4qP1wvZ3N0XC9saXRlc3ViX2lu
c2VydC4qLywgLy4qP1wvcmVmXC9jbGFzc2lmaWVkc1wvLio/LwogIF0sCiAgCiAgZGVuaWVkTWV0
YVRhZ3M6WwogICAgeyJQU1QiOiAiQXVkaW8gU2xpZGVzaG93In0KICBdLAoKICBhbGxvd3NDdXJy
ZW50SG9zdDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gKCgnfCcgKyB0aGlzLmFsbG93ZWRIb3N0
cy5qb2luKCd8JykgKyAnfCcpLmluZGV4T2YoJ3wnICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAn
fCcpID4gLTEpOwogIH0sCiAgCiAgYWxsb3dzQ3VycmVudFR5cGU6IGZ1bmN0aW9uKCkgewogICAg
Zm9yICh2YXIgaSA9IDAsIHBhaXI7IHBhaXIgPSB0aGlzLmRlbmllZE1ldGFUYWdzW2ldOyBpKysp
IHsKICAgICAgZm9yKHZhciBrZXkgaW4gcGFpcikgewogICAgICAgIHZhciBtYXRjaGVzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoa2V5KTsKICAgICAgICBmb3IgKHZhciBqID0gMCwgbWF0
Y2g7IG1hdGNoID0gbWF0Y2hlc1tqXTsgaisrKSB7CiAgICAgICAgICBpZihtYXRjaC5jb250ZW50
ID09IHBhaXJba2V5XSkge3JldHVybiBmYWxzZTt9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAg
ICByZXR1cm4gdHJ1ZTsKICB9LAoKICBhbGxvd3NDdXJyZW50VVJJOiBmdW5jdGlvbigpIHsKICAg
IGZvciAodmFyIGkgPSAwLCBwYXR0ZXJuOyBwYXR0ZXJuID0gdGhpcy5kZW5pZWRVUklzW2ldOyBp
KyspIHsKICAgICAgaWYgKHBhdHRlcm4udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZikpIHtyZXR1
cm4gZmFsc2U7fQogICAgfTsKICAgIHJldHVybiB0aGlzLmFsbG93c0N1cnJlbnRUeXBlKCk7CiAg
fQoKfTvUAAUAEQAHAAgAIwAkABQAJV8QPGh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMv
YXBwL3RpbWVzcGVvcGxlL21hcmdpbmZpeC5qc08RBKZicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lv
blQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYAB
XxAPTlNLZXllZEFyY2hpdmVyrxAkCwwmLC0zHjQ1U1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa29w
VSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1
UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgCOAAoAiEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5i
YXNlW05TLnJlbGF0aXZlgASAAIADXxA8aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9h
cHAvdGltZXNwZW9wbGUvbWFyZ2luZml4Lmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVO
U1VSTFhOU09iamVjdCNBrZH7BoSY5RDI0w02Nzg5RldOUy5rZXlzWk5TLm9iamVjdHOAIaw6Ozw9
Pj9AQUJDREWACYAKgAuADIANgA6AD4AQgBGAEoATgBSsR0hJSktMTU5PUFFSgBWAFoAXgBiAGYAa
gBuAHIAdgB6AH4AgVERhdGVdQ2FjaGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5n
ZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhe
TnRjb2VudC1MZW5ndGhURXRhZ1pDb25uZWN0aW9uVFZhcnlfEB1Nb24sIDEwIE5vdiAyMDA4IDIz
OjM4OjQzIEdNVF8QF3ByaXZhdGUsIG1heC1hZ2U9MjAzMzc4XxAdTW9uLCAyMiBTZXAgMjAwOCAx
Nzo0MDo0MCBHTVRVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNh
dGlvbi94LWphdmFzY3JpcHRTODYzVDE5MjReIjc4NC00OGQ3ZDg5OCJaa2VlcC1hbGl2ZV8QD0Fj
Y2VwdC1FbmNvZGluZ9IuL2xto21uMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5
EQeE0i4vcXKjcnMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkA
MgA3ADoAUABSAGQAiwCRAKwAswC2ALkAvQDBAMQAxwDKAM0A0ADTANYA2QDbAN0A3wDhAOMA5QDn
AOkA6wDtAO8A8QD4AQABDAEOARABEgFRAVYBXwFqAW0BcwF8AYUBhwGOAZYBoQGjAbABsgG0AbYB
uAG6AbwBvgHAAcIBxAHGAcgB1QHXAdkB2wHdAd8B4QHjAeUB5wHpAesB7QHyAgACDgIcAi8CNgJD
AlICYQJmAnECdgKWArAC0ALWAtsC9AMPAxMDGAMnAzIDRANJA00DYwNwA3MDeAN8A5AAAAAAAAAC
AQAAAAAAAAB0AAAAAAAAAAAAAAAAAAADnk8RB4QvKgokSWQ6IG1hcmdpbmZpeC5qcyA1NDQ4IDIw
MDgtMDktMjEgMDE6Mzc6NTBaIHNhbnRlcCAkCihjKSAyMDA4IFRoZSBOZXcgWW9yayBUaW1lcyBD
b21wYW55CiovCgoKKGZ1bmN0aW9uKCl7CiAgCiAgZnVuY3Rpb24gcnVuKCkgewogICAgaWYoVGlt
ZXNQZW9wbGUuVVJJTGlzdC5hbGxvd3NDdXJyZW50SG9zdCgpICYmIFRpbWVzUGVvcGxlLlVSSUxp
c3QuYWxsb3dzQ3VycmVudFVSSSgpKXsKICAgICAgbG9hZENTUygpOwogICAgICByZXN0b3JlU3Rh
dGUoKTsKICAgICAgVGltZXNQZW9wbGUucHJlSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgfSAKICAg
IGVsc2UgewogICAgICBkZWxldGUgVGltZXNQZW9wbGU7CiAgICB9CiAgfQogIAogIGZ1bmN0aW9u
IHJlc3RvcmVTdGF0ZSgpewogICAgaWYgKE5ZVEQuQ29va2llcy5nZXRPckNyZWF0ZSgndHBzdGF0
ZScpLmxvb2t1cCgnbWluaW1pemVkJykgIT0gJ1lFUycpIHsKICAgICAgYWRkTWFyZ2luKCk7CiAg
ICAgIGRyYXdQbGFjZUhvbGRlcigpOwogICAgfQogIH0KICAKICBmdW5jdGlvbiBhZGRNYXJnaW4o
KSB7CiAgICBkb2N1bWVudC53cml0ZSgnPHN0eWxlPmh0bWwgYm9keSB7cGFkZGluZy10b3A6NDBw
eDt9PFwvc3R5bGU+Jyk7CiAgfQogIAogIGZ1bmN0aW9uIGRyYXdQbGFjZUhvbGRlcigpIHsKICAg
IGlmKGRvY3VtZW50LmJvZHkgJiYgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKXsKICAgICAgaWYg
KCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVFBfY29udGFpbmVyJykpIHsKICAgICAgICB2YXIg
Y29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykKICAgICAgICBjb250YWlu
ZXIuaWQgPSAnVFBfY29udGFpbmVyJzsKICAgICAgICB2YXIgc2hhZG93ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykKICAgICAgICBzaGFkb3cuaWQgPSAnVFBfY29udGFpbmVyX3NoYWRv
dyc7CiAgICAgICAgc2hhZG93LmNsYXNzTmFtZSA9ICdzX3NoYWRvdyc7CiAgICAgICAgZG9jdW1l
bnQuYm9keS5pbnNlcnRCZWZvcmUoY29udGFpbmVyLCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQp
OwogICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHNoYWRvdywgY29udGFpbmVyKTsK
ICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgIHNldFRpbWVvdXQoYXJndW1lbnRzLmNhbGxl
ZSwgMTApOyAgCiAgICB9CiAgfQogIAogIGZ1bmN0aW9uIGxvYWRDU1MoKSB7CiAgICAvL1RPRE8g
dXNlIGRvY3VtZW50RnJhZ21lbnQ/CiAgICB2YXIgaWU2ID0gKCEhKHdpbmRvdy5hdHRhY2hFdmVu
dCAmJiAhd2luZG93Lm9wZXJhKSAmJiAocGFyc2VGbG9hdChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5z
cGxpdCgnOycpWzFdLnNwbGl0KCcgJylbMl0pIDwgNykpOwogICAgdmFyIGhlYWQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdOwogICAgdmFyIHBhdGggPSBUUENPTkZJ
Ry5jc3NfaG9zdCArIFRQQ09ORklHLmNzc19wYXRoOwogICAgCiAgICBmdW5jdGlvbiBjcmVhdGVM
aW5rKHVyaSkgewogICAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOwog
ICAgICBsaW5rLmhyZWYgPSB1cmk7CiAgICAgIGxpbmsudHlwZSA9ICd0ZXh0L2Nzcyc7CiAgICAg
IGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnOwogICAgICBoZWFkLmFwcGVuZENoaWxkKGxpbmspOwog
ICAgICBsaW5rID0gbnVsbDsKICAgIH0KICAgIAogICAgY3JlYXRlTGluayhwYXRoICsgJ3RpbWVz
cGVvcGxlLmNzcycpOwogICAgY3JlYXRlTGluayhUUENPTkZJRy5jc3NfaG9zdCArICcvY3NzL2Fw
cC9saWIvc2hhZG93L2Ryb3Bfc2hhZG93LmNzcycpOwogICAgaWYoaWU2KSB7CiAgICAgIGNyZWF0
ZUxpbmsocGF0aCArICd0aW1lc3Blb3BsZV9pZTYuY3NzJyk7CiAgICB9CiAgICAKICB9CiAgCiAg
cnVuKCk7CiAgCn0pKCk71AAFABEABwAIACcAKAApACpfEEBodHRwOi8vZ3JhcGhpY3M4Lm55dGlt
ZXMuY29tL2Nzcy9hcHAvdGltZXNwZW9wbGUvdGltZXNwZW9wbGUuY3NzTxEEnWJwbGlzdDAw1AEC
AwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNv
dXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvECQLDCYsLTMeNDVTVFVWV1hZWltcXV5f
YGFiY2RlZmdoaWprb3BVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNsYXNzUiQz
UiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAI4ACgCIQCBAAgAaAB4AFgAgQB4AA
EAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEEBodHRwOi8vZ3JhcGhpY3M4Lm55
dGltZXMuY29tL2Nzcy9hcHAvdGltZXNwZW9wbGUvdGltZXNwZW9wbGUuY3Nz0i4vMDFYJGNsYXNz
ZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7BobKBBDI0w02Nzg5RldOUy5rZXlz
Wk5TLm9iamVjdHOAIaw6Ozw9Pj9AQUJDREWACYAKgAuADIANgA6AD4AQgBGAEoATgBSsR0hJSktM
TU5PUFFSgBWAFoAXgBiAGYAagBuAHIAdgB6AH4AgVERhdGVdQ2FjaGUtQ29udHJvbF1MYXN0LU1v
ZGlmaWVkXUFjY2VwdC1SYW5nZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5
cGVeQ29udGVudC1MZW5ndGheTnRjb2VudC1MZW5ndGhURXRhZ1pDb25uZWN0aW9uVFZhcnlfEB1N
b24sIDEwIE5vdiAyMDA4IDIzOjM4OjQzIEdNVF8QF3ByaXZhdGUsIG1heC1hZ2U9MTA5NjM2XxAd
VGh1LCAyMyBPY3QgMjAwOCAxNToyODozOSBHTVRVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNl
cnZlci82LjFYdGV4dC9jc3NUMzQwM1UxMjI1OV8QDyIyZmUzLTQ5MDA5ODI3IlprZWVwLWFsaXZl
XxAPQWNjZXB0LUVuY29kaW5n0i4vbG2jbW4yXxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rp
b25hcnkRL+PSLi9xcqNyczJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAa
AB8AKQAyADcAOgBQAFIAZACLAJEArACzALYAuQC9AMEAxADHAMoAzQDQANMA1gDZANsA3QDfAOEA
4wDlAOcA6QDrAO0A7wDxAPgBAAEMAQ4BEAESAVUBWgFjAW4BcQF3AYABiQGLAZIBmgGlAacBtAG2
AbgBugG8Ab4BwAHCAcQBxgHIAcoBzAHZAdsB3QHfAeEB4wHlAecB6QHrAe0B7wHxAfYCBAISAiAC
MwI6AkcCVgJlAmoCdQJ6ApoCtALUAtoC3wL4AwEDBgMMAx4DKQM7A0ADRANaA2cDagNvA3MDhwAA
AAAAAAIBAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAOVWHRleHQvY3NzTxEv4y8qCiRJZDogdGltZXNw
ZW9wbGUuY3NzIDU5NzUgMjAwOC0xMC0xNyAyMToxNDowNVogc2FudGVwICQKKGMpMjAwNiAtIDIw
MDcgVGhlIE5ldyBZb3JrIFRpbWVzIENvbXBhbnkgCiovCgpAaW1wb3J0IHVybCgvY3NzL2FwcC9s
aWIvY3JvcHBlci9jcm9wcGVyLmNzcyk7CgpidXR0b24uYXBwQnV0dG9uLApidXR0b24uYXBwQnV0
dG9uU21hbGwgewogIHZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICBmb250LXNpemU6IDExcHg7CiAg
Zm9udC13ZWlnaHQ6IGJvbGQ7CiAgbWFyZ2luOjA7CiAgcGFkZGluZzogMCAxMnB4IDAgMDsKICBo
ZWlnaHQ6MjhweDsKICBjb2xvcjogd2hpdGU7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIHRl
eHQtYWxpZ246Y2VudGVyOyAKICBib3JkZXI6IDA7CiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2
ZXRpY2EsIHNhbnMtc2VyaWY7CiAgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9hcHBzL2J1dHRvbnMv
cmlnaHRjYXAucG5nKSByaWdodCBuby1yZXBlYXQ7IAogIGN1cnNvcjpwb2ludGVyOwogIHdpZHRo
OmF1dG87Cn0KCmJ1dHRvbi5hcHBCdXR0b25TbWFsbCB7CiAgZm9udC1zaXplOiAxMXB4OwogIHBh
ZGRpbmc6IDAgOHB4IDAgMDsKICBoZWlnaHQ6MTlweDsKICBiYWNrZ3JvdW5kOnVybCgvaW1hZ2Vz
L2FwcHMvYnV0dG9ucy9yaWdodGNhcHNtYWxsLnBuZykgcmlnaHQgbm8tcmVwZWF0OyAKfQoKYnV0
dG9uLmFwcEJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwKYnV0dG9uLmFwcEJ1dHRvblNtYWxsOjot
bW96LWZvY3VzLWlubmVyIHsKICBwYWRkaW5nOjA7CiAgYm9yZGVyOjAKfQoKYnV0dG9uLmFwcEJ1
dHRvbjpmb2N1cywKYnV0dG9uLmFwcEJ1dHRvblNtYWxsOmZvY3VzIHsKICBvdXRsaW5lOiAxcHgg
ZG90dGVkOwp9CgpidXR0b24uYXBwQnV0dG9uIHNwYW4sCmJ1dHRvbi5hcHBCdXR0b25TbWFsbCBz
cGFuIHsgCiAgcG9zaXRpb246cmVsYXRpdmU7IAogIGRpc3BsYXk6YmxvY2s7IAogIHdoaXRlLXNw
YWNlOm5vd3JhcDsgCiAgcGFkZGluZzowIDAgMCAxMnB4OwogIGhlaWdodDoyOHB4OyAKICBsaW5l
LWhlaWdodDoyOHB4OwogIGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYXBwcy9idXR0b25zL2xlZnRj
YXAucG5nKSBsZWZ0IG5vLXJlcGVhdDsgCn0KCmJ1dHRvbi5hcHBCdXR0b25TbWFsbCBzcGFuICB7
CiAgcGFkZGluZzowIDAgMCA4cHg7CiAgaGVpZ2h0OjE5cHg7IAogIGxpbmUtaGVpZ2h0OjE5cHg7
CiAgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9hcHBzL2J1dHRvbnMvbGVmdGNhcHNtYWxsLnBuZykg
bGVmdCBuby1yZXBlYXQ7IAp9CgpidXR0b24uYWx0U21hbGwgewogIGNvbG9yOiMwMDQyNzY7CiAg
Zm9udC13ZWlnaHQ6bm9ybWFsOwogIGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYXBwcy9idXR0b25z
L3JpZ2h0Y2Fwc21hbGxfbGluZS5wbmcpIHJpZ2h0IG5vLXJlcGVhdDsgCn0KCmJ1dHRvbi5hbHRT
bWFsbCBzcGFuIHsKICBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2FwcHMvYnV0dG9ucy9sZWZ0Y2Fw
c21hbGxfbGluZS5wbmcpIGxlZnQgbm8tcmVwZWF0OyAKfQoKLypGSVhNRSByZW1vdmUgd2hlbiB0
aGlzIGlzIGFkZGVkIGluIGllIGZpbGVzKi8KYnV0dG9uLmFwcEJ1dHRvbiwKYnV0dG9uLmFwcEJ1
dHRvblNtYWxsIHsKICAgKndpZHRoOmF1dG87CiAgICpvdmVyZmxvdzp2aXNpYmxlOwogICBfd2lk
dGg6YXV0bzsgCiAgIF9vdmVyZmxvdzp2aXNpYmxlOwogfQoKYnV0dG9uLmFwcEJ1dHRvbiBzcGFu
LApidXR0b24uYXBwQnV0dG9uU21hbGwgc3BhbiB7IAogICBfbWFyZ2luLXRvcDoxcHg7IAogfQoK
aHRtbCBib2R5IHsKICBtYXJnaW4tbGVmdDowOwogIG1hcmdpbi1yaWdodDowCn0KCiNUUF90b29s
c19yZXBsYWNlbWVudCB7CiAgd2lkdGg6OTczcHg7CiAgY2xlYXI6Ym90aDsKICBvdmVyZmxvdzpo
aWRkZW47CiAgbWFyZ2luOjAgYXV0bzsKICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwg
c2Fucy1zZXJpZjsKICBmb250LXNpemU6MTJweDsKICBtYXJnaW4tYm90dG9tOjVweDsKfQoKI1RQ
X2NvbnRhaW5lciB7CiAgdGV4dC1hbGlnbjogbGVmdDsKICBib3JkZXItdG9wOiAycHggc29saWQg
YmxhY2s7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODA7CiAgbWFyZ2luLWJvdHRv
bTogMTBweDsKICBsaW5lLWhlaWdodDpub3JtYWwgIWltcG9ydGFudDsKICAKfQoKI1RQX2NvbnRh
aW5lciBoMyB7CiAgZm9udC1zaXplOjE2cHg7Cn0KCiNUUF9jb250YWluZXIgYSwKI1RQX3Jlc3Rv
cmVfYnV0dG9uIGEgewogIGNvbG9yOiMwMDQyNzY7CiAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7CiAg
Y3Vyc29yOnBvaW50ZXI7Cn0KCiNUUF9yZXN0b3JlX2J1dHRvbiBhIHsKICBmb250LXNpemU6MTJw
eDsKfQoKI1RQX2NvbnRhaW5lciBhOmhvdmVyIHsKICBjb2xvcjojMDA0Mjc2OwogIHRleHQtZGVj
b3JhdGlvbjp1bmRlcmxpbmU7Cn0KCiNUUF9jb250YWluZXIgaW1nIHsKICB2ZXJ0aWNhbC1hbGln
bjptaWRkbGU7Cn0KCiNUUF9jb250YWluZXIgYSBpbWcgewogIGJvcmRlcjpub25lOwp9CgojVFBf
Y29udGFpbmVyIGhyIHsKICBjbGVhcjpib3RoOwp9CgojVFBfY29udGFpbmVyIHAgewogIGZvbnQt
c2l6ZToxMnB4OwogIGxpbmUtaGVpZ2h0OjEuM2VtICFpbXBvcnRhbnQ7Cn0KCiNUUF9jb250YWlu
ZXIgc21hbGwgewogIGxpbmUtaGVpZ2h0OjEuMmVtICFpbXBvcnRhbnQ7Cn0KCiNUUF9jb250YWlu
ZXIgcCwgCiNUUF9jb250YWluZXIgaDEsIAojVFBfY29udGFpbmVyIGgyLCAKI1RQX2NvbnRhaW5l
ciBoMywgCiNUUF9jb250YWluZXIgaDQsIAojVFBfY29udGFpbmVyIGg1LCAKI1RQX2NvbnRhaW5l
ciBoNiB7CiAgbWFyZ2luOjAgMCAuOGVtOwp9CgojVFBfY29udGFpbmVyICNUUF91c2VyIC5kaXNw
bGF5X25hbWUgYSB7CiAgY29sb3I6YmxhY2s7Cn0KCgojVFBfY29udGFpbmVyIGhyIHsKICBtYXJn
aW46OHB4IDA7CiAgYm9yZGVyOjA7CiAgYmFja2dyb3VuZDojY2NjOwogIGhlaWdodDoxcHg7Cn0K
CiNUUF9jb250YWluZXIgcC5lcnJvciB7CiAgY29sb3I6I2E4MTgxNzsKICBtYXJnaW4tYm90dG9t
OjA7CiAgZm9udC1zaXplOjEwcHg7CiAgcG9zaXRpb246YWJzb2x1dGU7Cn0KCiNUUF9jb250YWlu
ZXIgLnJpZ2h0IHsKICBmbG9hdDpyaWdodDsKfQojVFBfY29udGFpbmVyIC5jb2x1bW4gewogIGZs
b2F0OiBsZWZ0OwogIHdpZHRoOiAyOTZweDsKICBtYXJnaW46MCAyNHB4IDAgMDsKfQoKI1RQX2Nv
bnRhaW5lciAuY29sdW1uIC50ZXh0IHsKICB3aWR0aDoyMDBweDsKICBkaXNwbGF5OmJsb2NrOwp9
CgojVFBfY29udGFpbmVyIC5jb2x1bW4ubGFzdCB7CiAgbWFyZ2luLXJpZ2h0OjAgIWltcG9ydGFu
dDsKICB3aWR0aDoyOTRweDsKfQojVFBfY29udGFpbmVyIC5yb3cgewogIG1hcmdpbi1ib3R0b206
MTBweDsKfQojVFBfY29udGFpbmVyIC5yb3c6bGFzdC1jaGlsZCB7CiAgbWFyZ2luLWJvdHRvbTow
Owp9CgojVFBfY29udGFpbmVyIC53cmFwIHsKICBvdmVyZmxvdzogaGlkZGVuOwogIGNsZWFyOmJv
dGg7CiAgem9vbToxOwp9CiNUUF9jb250YWluZXIgLmluc2V0IHsKICBtYXJnaW46MCAhaW1wb3J0
YW50OwogIHBhZGRpbmc6MTJweCAyMHB4Owp9CiNUUF9jb250YWluZXIgeyAKICB3aWR0aCA6IDEw
MCU7IAogIGhlaWdodCA6IDM1cHg7CiAgei1pbmRleCA6IDEwMDAwOwogIGJhY2tncm91bmQ6IHdo
aXRlOwp9CiNUUF9jb250YWluZXJfc2hhZG93IHsKICB3aWR0aCA6IDEwMCU7CiAgaGVpZ2h0IDog
MTZweDsKICB6LWluZGV4IDogOTk5OTsKICBmb250LXNpemU6MDsKfQpib2R5ID4gI1RQX2NvbnRh
aW5lciB7IAogIHBvc2l0aW9uIDogZml4ZWQ7CiAgdG9wOiAwOwogIGxlZnQ6IDA7Cn0KYm9keSA+
ICNUUF9jb250YWluZXJfc2hhZG93IHsKICBwb3NpdGlvbiA6IGZpeGVkOwogIHRvcDogMzBweDsK
ICBsZWZ0OiAwOwp9Cgpib2R5ID4gI1RQX2NvbnRhaW5lcl9zaGFkb3cgewogIGJhY2tncm91bmQ6
IHVybCgnL2ltYWdlcy9nbG9iYWwvc2hhZG93L2Ryb3Bfc2hhZG93L3MucG5nJykgcmVwZWF0LXgg
Y2VudGVyOwp9CgovKiBGSVggTUUgLm1vZHVsZSovIAojVFBfY29udGFpbmVyIC5tb2R1bGUsICNU
UF9jb250YWluZXIgLlRQX21vZHVsZSB7CiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7CiAg
cGFkZGluZy10b3A6IDEwcHg7CiAgYmFja2dyb3VuZDogbm9uZTsKICBvdmVyZmxvdzogaGlkZGVu
Owp9CiNUUF9jb250YWluZXIgLm1vZHVsZS5maXJzdCB7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmct
dG9wOiAwCn0KCiNUUF9jb250YWluZXIgaW5wdXQgewogIHZlcnRpY2FsLWFsaWduOm1pZGRsZTsK
fQoKI1RQX2NvbnRhaW5lciAuZWRpdG9yX2ZpZWxkLAojVFBfY29udGFpbmVyIGlucHV0LnRleHQg
ewogIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6
ZTogMTJweDsKICBwYWRkaW5nOiAxcHg7CiAgYm9yZGVyOjFweCBzb2xpZCAjY2NjOwp9CgojVFBf
Y29udGFpbmVyIC5lZGl0b3JfZmllbGQgewogIG1hcmdpbi1yaWdodDo1cHg7Cn0KCiNUUF9jb250
YWluZXIgaW5wdXQuZXJyb3IgewogIGJvcmRlcjoxcHggc29saWQgI2E4MTgxNzsKfQoKI1RQX2lu
bmVyIHsKICB3aWR0aDogOTcwcHg7CiAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2M7CiAgYm9y
ZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjOwogIG1hcmdpbjogMCBhdXRvOwogIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICBoZWlnaHQ6IDM1cHg7IC8qIHBh
ZGRpbmc6MnB4OyovCn0KI1RQX2NvbnRhaW5lciAjVFBfdXNlciB7Cn0KI1RQX3VzZXIgIC5UUF9h
dmF0YXIgewogIG1hcmdpbjogLTNweCA1cHggMCAtM3B4Owp9CgojVFBfY29udGFpbmVyICNUUF9w
ZW9wbGUgewogIGZsb2F0OnJpZ2h0Owp9CiNUUF9jb250YWluZXIgLnRvZ2dsZVRhYiB7CiAgd2lk
dGg6IDE0OHB4OwogIHBhZGRpbmc6IDZweCA2cHggMCA2cHg7Cn0KI1RQX2NvbnRhaW5lciAuVFBf
Z3Jvb3ZlIHsKICB3aWR0aDo0MHB4OwogIGhlaWdodDo0cHg7CiAgbWFyZ2luOjAgYXV0bzsKICBi
YWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9hcHBzL3RpbWVzcGVvcGxlL2hhbmRsZS5naWYn
KTsKICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Owp9CgojVFBfY29udGFpbmVyIC50b2dn
bGVUYWIuYWN0aXZlIHsKICB3aWR0aDoxNTZweDsKICBwYWRkaW5nOjA7Cn0KI1RQX2NvbnRhaW5l
ciAudG9nZ2xlVGFiLmFjdGl2ZS5sZWZ0X2Fycm93IHsKICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1y
ZXBlYXQ7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBjZW50ZXI7CiAgcGFkZGluZy1yaWdo
dDo5cHg7CiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2FwcHMvdGltZXNwZW9wbGUv
dGFiLXRpcC1yaWdodC5naWYnKTsKfQojVFBfY29udGFpbmVyIC50b2dnbGVUYWIuYWN0aXZlLnJp
Z2h0X2Fycm93IHsKICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7CiAgYmFja2dyb3VuZC1w
b3NpdGlvbjpsZWZ0IGNlbnRlcjsKICBwYWRkaW5nLWxlZnQ6OXB4OwogIGJhY2tncm91bmQtaW1h
Z2U6IHVybCgnL2ltYWdlcy9hcHBzL3RpbWVzcGVvcGxlL3RhYi10aXAtbGVmdC5naWYnKTsKfQoj
VFBfY29udGFpbmVyIC50b2dnbGVUYWIuYWN0aXZlIGg0IHsKICBoZWlnaHQ6MjBweDsKICBwYWRk
aW5nOiA5cHggNnB4IDZweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiM4MDgwODA7CiAgY29sb3I6d2hp
dGUgIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOmNlbnRlcjsKfQojVFBfZmVlZF90YWIudG9nZ2xl
VGFiLmFjdGl2ZSBoNCB7CiAgdGV4dC1hbGlnbjpsZWZ0Owp9CgojVFBfY29udGFpbmVyIC50b2dn
bGVUYWIgaDQgewogIG1hcmdpbjowOwp9CgojVFBfY29udGFpbmVyIC50b2dnbGVUYWIuZmlyc3Ry
dW4gewovKiAgcGFkZGluZzo3cHggNnB4IDZweDsqLwogIHRleHQtYWxpZ246Y2VudGVyOwp9Cgoj
VFBfY29udGFpbmVyIGgyIHsKICBtYXJnaW46IDAgIWltcG9ydGFudDsKICBmb250LXNpemU6IDI0
cHg7CiAgcGFkZGluZy10b3A6IDNweDsKICBmb250LXdlaWdodDogYm9sZDsKfQojVFBfY29udGFp
bmVyIGg0IHsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgbWFyZ2lu
OiAwIDAgMWVtOwp9CiNUUF91c2VyIGgzIHsKICBtYXJnaW46IDAgIWltcG9ydGFudDsKICBmb250
LXNpemU6IDEycHg7CiAgcGFkZGluZy10b3A6IDNweDsKfQojVFBfY29udGFpbmVyIC50b29sYmFy
X2J1dHRvbiB7CiAgZm9udC1zaXplOiAxMHB4Owp9CiNUUF9jb250YWluZXIsICNUUF9mZWVkIHsK
ICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKICBjb2xvcjogIzMz
MzsKfQoKI1RQX2ZlZWQgewogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogIGhlaWdodDogMjFw
eDsKICBwYWRkaW5nOiAzcHggMHB4IDExcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBib3JkZXIt
Ym90dG9tOjA7Cn0KLnRpbWVzcGVvcGxlX3BhbmVsIHsKICBib3JkZXI6IDFweCBzb2xpZCAjY2Nj
OwogIGJvcmRlci13aWR0aDogMCAxcHg7CiAgd2lkdGg6IDY1NHB4OwogIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKICBsZWZ0OiAxNTdweDsKICB0b3A6IDBweDsKICBiYWNrZ3JvdW5kOiNFREYyRjU7CiAg
Ym9yZGVyLXdpZHRoOiAwIDFweCAxcHg7CiAgei1pbmRleDoxMDAwOwp9CgojVFBfY29udGFpbmVy
IC5UUF9wYW5lbF9jb250YWluZXIgewogIC8qcmVnYWluIHotaW5kZXggb3ZlciBmbGFzaCBieSBm
b3JjaW5nIGFuIGludmlzaWJsZSBzY3JvbGxiYXIqLwogIHdpZHRoOjY1NXB4OwogIG92ZXJmbG93
LXg6aGlkZGVuOwp9CgojVFBfY29udGFpbmVyICAjVFBfZmVlZF90YWIgewogIHdpZHRoOjY1NHB4
OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiAxNTlweDsKICB0b3A6IDBweDsKfQoKI1RQ
X2NvbnRhaW5lciAudGltZXN0YW1wIHsKICBjb2xvcjogIzY2NjsKICB0ZXh0LXRyYW5zZm9ybTog
dXBwZXJjYXNlOwogIGZvbnQtc2l6ZTogMTBweDsKICB0ZXh0LWFsaWduOiByaWdodDsKICBwYWRk
aW5nLXJpZ2h0OiA1cHgKfQojVFBfdXNlciAuVFBfYXZhdGFyIHsKICBtYXJnaW4tdG9wOi0zcHg7
CiAgbWFyZ2luLWxlZnQ6LTNweDsKfQoKI1RQX3VzZXIgLlRQX2F2YXRhciwKI1RQX3Byb2ZpbGUg
LlRQX2F2YXRhciwKI1RQX3Byb2ZpbGUgI3ByZXZpZXdBcmVhIHsKICBvdmVyZmxvdzogaGlkZGVu
OwogIGZsb2F0OiBsZWZ0OwogIGRpc3BsYXk6IGlubGluZTsKICBtYXJnaW4tcmlnaHQ6NnB4Owog
IG1hcmdpbi1ib3R0b206NnB4Owp9CgojVFBfZmVlZCBzcGFuIHsKICB2ZXJ0aWNhbC1hbGlnbjog
bWlkZGxlOwp9CiNUUF9mZWVkLnRlYXNlIHsgCiAgLypoZWlnaHQ6MjhweDsqLyBib3JkZXItYm90
dG9tLXdpZHRoOjFweDsKICBib3JkZXItY29sb3I6ICNDQ0M7Cn0KI1RQX2ZlZWQub3BlbiB7CiAg
Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkOwogIGJvcmRlci1jb2xvcjogI0NDQzsKICB0b3A6MzVw
eDsKICBwYWRkaW5nOjAgMCAxNXB4IDA7Cn0KI1RQX2ZlZWQub3BlbiAuVFBfZmVlZF9jb250ZW50
LAojVFBfZmVlZF9tb25pdG9yIC5UUF9mZWVkX2NvbnRlbnQgewogIGhlaWdodDoxMDAlOwogIG92
ZXJmbG93OmF1dG87Cn0KI1RQX3VzZXJfaW1hZ2UgewogIG1hcmdpbi1yaWdodDogMTBweDsKfQoj
VFBfZmVlZCBoMiB7CiAgZm9udC1zaXplOiAxOHB4OwogIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBz
ZXJpZjsKICBmb250LXdlaWdodDogbm9ybWFsOwogIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KLlRQ
X2F2YXRhciB7CiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsKfQouVFBfZmVlZF9jb250ZW50IHsK
ICBiYWNrZ3JvdW5kOndoaXRlOwogIG92ZXJmbG93OmF1dG87Cn0KI1RQX2NvbnRhaW5lciB0YWJs
ZSB7CiAgYm9yZGVyLXNwYWNpbmc6MDsKfQouVFBfZmVlZF9jb250ZW50IHRhYmxlIHsKICB3aWR0
aDogNjIwcHg7Cn0KLm9wZW4gLlRQX2ZlZWRfY29udGVudCB0YWJsZSB7CiAgd2lkdGg6IDYzN3B4
Owp9Cgoub3BlbiAuVFBfZmVlZF9jb250ZW50IHRkIHsKICBib3JkZXItYm90dG9tOiAxcHggc29s
aWQgI2NjYzsKfQoKLlRQX2ZlZWRfY29udGVudCB0ZCB7CiAgcGFkZGluZzogNnB4IDBweCA2cHgg
MTBweDsKICBiYWNrZ3JvdW5kOiBub25lOwogIGZvbnQtc2l6ZTogMTNweDsKfQouVFBfZmVlZF9j
b250ZW50IC5UUF9zdG9yeSB7Cn0KLlRQX2ZlZWRfY29udGVudCBoNSB7CiAgZm9udC1mYW1pbHk6
IEdlb3JnaWEsIHNlcmlmOwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgbWFyZ2luOiAwOwp9Ci5U
UF9mZWVkX2NvbnRlbnQgbGkgKiB7CiAgZm9udC1zaXplOiAxZW07Cn0KLlRQX2ZlZWRfY29udGVu
dCBhOnZpc2l0ZWQgewogIGNvbG9yOiAjMDA0Mjc2Owp9CiNUUF9jb250YWluZXIgI1RQX3NlYXJj
aF90ZXJtIHsKICB3aWR0aDogMjM3cHg7CiAgbWFyZ2luLXJpZ2h0OjVweDsKICBkaXNwbGF5Omlu
bGluZTsKfQoKYm9keSA+ICNUUF9jb250YWluZXIgI1RQX3NlYXJjaF90ZXJtIHsKLyogIHBvc2l0
aW9uOmZpeGVkOyAvKiBmaXhlcyBkaXNhcHBlYXJpbmcgY3Vyc29yIGJ1ZyovKi8KfQojVFBfc2Vh
cmNoX2J1dHRvbiB7Ci8qICBwb3NpdGlvbjpyZWxhdGl2ZTsqLwovKiAgbGVmdDogMjQ4cHg7Ki8K
LyogIG1hcmdpbi1ib3R0b206MTBweDsqLwogIHdpZHRoOjUwcHg7Cn0KI1RQX3JlY29tbWVuZF9i
dXR0b24gYSAgewovKiAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9hcHBzL3RpbWVzcGVv
cGxlL3RpbWVzcGVvcGxlMTZ4MTYuZ2lmKTsqLwogIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVh
dDsKICBwYWRkaW5nOjBwdCAwcHQgM3B4IDIwcHg7Cn0KI1RQX2ZlZWQgI1RQX2ZlZWRfaGFuZGxl
IHsKICBkaXNwbGF5Om5vbmU7Cn0KI1RQX2ZlZWQub3BlbiAjVFBfZmVlZF9oYW5kbGUgewogIGRp
c3BsYXk6YmxvY2s7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJvdHRvbTogMDsKICB6LWluZGV4
OiAxMDAwOwogIHdpZHRoOiAxMDAlOwogIHBhZGRpbmc6IDZweCAwOwogIGJhY2tncm91bmQtY29s
b3I6ICNlMmUyZTI7CiAgY3Vyc29yOiBucy1yZXNpemU7Cn0KI1RQX2NvbnRhaW5lciAuc2Nyb2xs
Ym94IHsKICBoZWlnaHQ6IDEyM3B4OwogIHdpZHRoOjEwMCU7CiAgb3ZlcmZsb3cteTogYXV0bzsK
ICBvdmVyZmxvdy14OiBoaWRkZW47CiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICBiYWNrZ3Jv
dW5kOiB3aGl0ZTsKfQouVFBfc3RhdHVzIHsKICBjb2xvcjogIzk5OTsKICBmb250LXNpemU6IDEw
cHg7Cn0KLlRQX3N0b3J5IHsKICBmb250LXNpemU6MTNweDsKfQojVFBfZmF2b3JpdGVzX3BhbmUg
dGFibGUgewogIHdpZHRoOiAxMDAlOwp9CgoKI1RQX2ZlZWRfbW9uaXRvciB7CiAgaGVpZ2h0OjE5
NHB4OwogIGJvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7Cn0KLlRQX2NvbnRyb2wgewogIG1hcmdp
bi1ib3R0b206IDEwcHg7CiAgb3ZlcmZsb3c6aGlkZGVuOwogIGNsZWFyOmJvdGg7Cn0KI1RQX2Nv
bnRhaW5lciAubGFiZWxfY29udGFpbmVyIHsKICB3aWR0aDogODVweDsKICBmbG9hdDogbGVmdDsK
ICBkaXNwbGF5OiBpbmxpbmU7CiAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgcGFkZGluZy10b3A6M3B4
Owp9CiNUUF9jb250YWluZXIgLmNvbnRyb2xfY29udGFpbmVyIHsKICAvKnBhZGRpbmctbGVmdDo4
NXB4OyovCiAgZmxvYXQ6cmlnaHQ7CiAgcGFkZGluZy1ib3R0b206NnB4Owp9CiNUUF9jb250YWlu
ZXIgbGFiZWwgewogIGZvbnQtc2l6ZToxMXB4OwogIGNvbG9yOiMzMzM7CiAgZm9udC13ZWlnaHQ6
Ym9sZDsKfQojVFBfY29udGFpbmVyIGxhYmVsLmlubGluZSB7CiAgZmxvYXQ6bm9uZTsKICBkaXNw
bGF5OmlubGluZTsKICBmb250LXdlaWdodDogbm9ybWFsOwp9CiNUUF9mZWVkX3RvZ2dsZSB7CiAg
Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICByaWdo
dDogMTYxcHg7CiAgdG9wOiA1cHg7CiAgei1pbmRleDogMTAwMDsKICB3aWR0aDogMjhweDsKICBo
ZWlnaHQ6IDI1cHg7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5k
LXBvc2l0aW9uOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2FwcHMv
dGltZXNwZW9wbGUvYXJyb3ctZG93bi5naWYnKTsKICBjdXJzb3I6IHBvaW50ZXI7Cn0KI1RQX2Zl
ZWRfdG9nZ2xlLm9wZW4gewogIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy9hcHBzL3Rp
bWVzcGVvcGxlL2Fycm93LXVwLmdpZicpOwp9CgojVFBfZmlyc3RuYW1lLCAjVFBfbGFzdG5hbWUg
ewogIHdpZHRoOiAxMjhweDsKfQojVFBfcGhvdG9fdXJsIHsKICB3aWR0aDogMjAzcHg7Cn0KI1RQ
X2ZpcnN0bmFtZSB7CiAgbWFyZ2luLXJpZ2h0OiAxMHB4Owp9CiNUUF9sb2NhdGlvbiB7CiAgd2lk
dGg6IDI3M3B4Owp9CiNUUF9zaGFyaW5nX2J1dHRvbnMgewogIGZsb2F0OiByaWdodDsKfQojVFBf
Y29udGFpbmVyIGZpZWxkc2V0IHsKICBib3JkZXI6IDA7CiAgcGFkZGluZzogMDsKfQojVFBfY29u
dGFpbmVyIC5zdGVwX251bWJlciB7CiAgZm9udC1zaXplOiAzMnB4OwogIGxpbmUtaGVpZ2h0OiAx
OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgY29sb3I6ICMzMzM7CiAgZmxvYXQ6IGxlZnQ7Cn0K
I1RQX2NvbnRhaW5lciAuY29sdW1uLmxhc3QgewogIG1hcmdpbi1yaWdodDogMDsKfQoKI1RQX2Zp
cnN0X3J1biB7CiAgbWFyZ2luLXRvcDogMTJweDsKICBmb250LXNpemU6IDE2cHg7Cn0KCiNUUF9j
b250YWluZXIuZmlyc3RydW4sICNUUF9jb250YWluZXIuZmlyc3RydW4gI1RQX2lubmVyIHsKICBo
ZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7Cn0K
Ym9keS5maXJzdHJ1biB7CiAgcGFkZGluZy10b3A6IDA7CiAgbWFyZ2luLXRvcDogMDsKfQouZmly
c3RydW4gI1RQX2FjdGl2YXRlX2J1dHRvbiB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2luOiAy
MHB4IGF1dG87CiAgZm9udC1zaXplOiAxNnB4OwogIGZsb2F0OiBub25lOwp9CgojVFBfY29udGFp
bmVyIC5oaWdobGlnaHQgewogIGJhY2tncm91bmQtY29sb3I6I0Y4RjhENDsKfQoKI1RQX2NvbnRh
aW5lciAuc2Nyb2xsYm94IHRhYmxlIHsKICBtYXJnaW46NnB4IDA7CiAgdGFibGUtbGF5b3V0OmZp
eGVkOwogIGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsKfQoKI1RQX2NvbnRhaW5lciAuc2Nyb2xs
Ym94IHRkIHsKICBwYWRkaW5nOjJweCA2cHg7CiAgb3ZlcmZsb3c6aGlkZGVuOwp9CgouVFBfYXZh
dGFyX2NlbGwgewogIHRleHQtYWxpZ246cmlnaHQ7CiAgd2lkdGg6MjBweDsKfQoKLlRQX2Rpc3Bs
YXluYW1lX2NlbGwgewogIHdpZHRoOjExMHB4Owp9CgouVFBfbG9jYXRpb25fY2VsbCB7CiAgd2lk
dGg6NjVweDsKfQoKLlRQX2J1dHRvbl9jZWxsIHsKICB3aWR0aDoyNnB4OwogIHRleHQtYWxpZ246
Y2VudGVyOwp9CgojVFBfbG9naW5fZm9ybSBwLmVycm9yIHsKICBwb3NpdGlvbjphYnNvbHV0ZTsK
ICBsZWZ0OjQyNnB4OwogIHRvcDozMHB4OwogIGZvbnQtc2l6ZToxMnB4OwogIGZvbnQtd2VpZ2h0
OmJvbGQ7Cn0KCiNUUF9jb250YWluZXIgLmltYWdlV2VsbCB7CiAgd2lkdGg6Mjk2cHg7CiAgYmFj
a2dyb3VuZDogIzk5OTsKICBtYXJnaW4tYm90dG9tOjEwcHg7Cn0KCiNUUF9jb250YWluZXIgLmlt
Z0Nyb3Bfd3JhcCB7CiAgbWFyZ2luOjAgYXV0bzsKfQoKI1RQX3NlYXJjaF9yZXN1bHRzIHsKbWFy
Z2luLXRvcDo2cHg7Cm1hcmdpbi1ib3R0b206MTJweDsKfQoKI1RQX2ZyaWVuZHNfcGFuZSB7CiAg
bWFyZ2luLWJvdHRvbToxMnB4Owp9CgojVFBfc3Bpbm5lciB7CiAgcG9zaXRpb246YWJzb2x1dGU7
CiAgdG9wOjZweDsKICByaWdodDotMzBweDsKfQoKI1RQX21pbmltaXplX2J1dHRvbiB7CiAgYm9y
ZGVyLWxlZnQ6MXB4IHNvbGlkICNDQ0NDQ0M7CiAgY29sb3I6Izk5OTk5OTsKICBjdXJzb3I6cG9p
bnRlcjsKICBmb250LXNpemU6MThweDsKICBmb250LXdlaWdodDpib2xkOwogIHBhZGRpbmc6N3B4
IDlweCA2cHg7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgcmlnaHQ6MDsKICB0ZXh0LWFsaWduOmNl
bnRlcjsKICB0b3A6MDsKICB3aWR0aDoxNXB4Owp9CgouVFBfdGlsZV9hZCB7CiAgZmxvYXQ6cmln
aHQ7CiAgbWFyZ2luLWJvdHRvbToxMHB4Owp9CgojVFBfZmVlZF90YWIgLlRQX3RpbGVfYWQgewog
IG1hcmdpbi1yaWdodDo0MHB4OwogIG1hcmdpbi10b3A6MXB4OwogIG1hcmdpbi1ib3R0b206MDsK
ICBmbG9hdDpub25lOwogIHBvc2l0aW9uOmFic29sdXRlOwogIHJpZ2h0OjA7Cn3UAAUAEQAHAAgA
LAAtACkALl8QP2h0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vY3NzL2FwcC9saWIvc2hhZG93
L2Ryb3Bfc2hhZG93LmNzc08RBJdicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNo
aXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFy
Y2hpdmVyrxAkCwwmLC0zHjQ1U1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa29wVSRudWxs3Q0ODxAR
EhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQy
UiQ5UiQwUiQxgCOAAoAiEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0
aXZlgASAAIADXxA/aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9jc3MvYXBwL2xpYi9zaGFk
b3cvZHJvcF9zaGFkb3cuY3Nz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09i
amVjdCNBrZH7BocktxDI0w02Nzg5RldOUy5rZXlzWk5TLm9iamVjdHOAIaw6Ozw9Pj9AQUJDREWA
CYAKgAuADIANgA6AD4AQgBGAEoATgBSsR0hJSktMTU5PUFFSgBWAFoAXgBiAGYAagBuAHIAdgB6A
H4AgVERhdGVdQ2FjaGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNfEBBDb250
ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGheTnRjb2VudC1M
ZW5ndGhURXRhZ1pDb25uZWN0aW9uVFZhcnlfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQzIEdN
VF8QF3ByaXZhdGUsIG1heC1hZ2U9MjAzMzc5XxAdTW9uLCAyMiBTZXAgMjAwOCAwNDo0ODoxNSBH
TVRVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFYdGV4dC9jc3NTNTI2VDI5MjRe
ImI2Yy00OGQ3MjM4ZiJaa2VlcC1hbGl2ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2xto21uMl8QE05T
TXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQts0i4vcXKjcnMyXxARTlNIVFRQVVJMUmVz
cG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAiwCRAKwAswC2ALkAvQDB
AMQAxwDKAM0A0ADTANYA2QDbAN0A3wDhAOMA5QDnAOkA6wDtAO8A8QD4AQABDAEOARABEgFUAVkB
YgFtAXABdgF/AYgBigGRAZkBpAGmAbMBtQG3AbkBuwG9Ab8BwQHDAcUBxwHJAcsB2AHaAdwB3gHg
AeIB5AHmAegB6gHsAe4B8AH1AgMCEQIfAjICOQJGAlUCZAJpAnQCeQKZArMC0wLZAt4C9wMAAwQD
CQMYAyMDNQM6Az4DVANhA2QDaQNtA4EAAAAAAAACAQAAAAAAAAB0AAAAAAAAAAAAAAAAAAADj08R
C2wuc2hhZG93X2NvbnRhaW5lci5kcm9wX3NoYWRvdyAuc2hhZG93X2NlbnRlcl93cmFwcGVyIHsK
ICBmbG9hdDpsZWZ0OwogIHdpZHRoOjEwMCU7Cn0KLnNoYWRvd19jb250YWluZXIuZHJvcF9zaGFk
b3cgLnNoYWRvd19yaWdodCB7CiAgZmxvYXQ6bGVmdDsKCXdpZHRoOjE5cHg7CiAgbWFyZ2luLWxl
ZnQ6LTE5cHgKfSAgCgouc2hhZG93X2NvbnRhaW5lci5kcm9wX3NoYWRvdyAuc2hhZG93X2xlZnQg
ewogIGZsb2F0OmxlZnQ7CiAgbWFyZ2luLWxlZnQ6LTEwMCU7CiAJd2lkdGg6MTlweDsKfQoKLnNo
YWRvd19jb250YWluZXIuZHJvcF9zaGFkb3cgLnNlX3NoYWRvdyB7CiAgYmFja2dyb3VuZDp1cmwo
L2ltYWdlcy9nbG9iYWwvc2hhZG93L2Ryb3Bfc2hhZG93L3NlLnBuZyk7CiAgaGVpZ2h0OjE5cHg7
CiAgX2JhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5z
Zm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9Jy9pbWFnZXMvZ2xvYmFsL3NoYWRv
dy9kcm9wX3NoYWRvdy9zZS5wbmcnLCBzaXppbmdNZXRob2Q9J3NjYWxlJyk7Cn0KCi5zaGFkb3df
Y29udGFpbmVyLmRyb3Bfc2hhZG93IC5zX3NoYWRvdyB7CiAgYmFja2dyb3VuZDp1cmwoL2ltYWdl
cy9nbG9iYWwvc2hhZG93L2Ryb3Bfc2hhZG93L3MucG5nKTsKICBoZWlnaHQ6MTlweDsKICBtYXJn
aW46IDAgMTlweDsKICBfYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKICBmaWx0ZXI6IHByb2dpZDpE
WEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYUltYWdlTG9hZGVyKHNyYz0nL2ltYWdlcy9n
bG9iYWwvc2hhZG93L2Ryb3Bfc2hhZG93L3MucG5nJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpOwp9
Cgouc2hhZG93X2NvbnRhaW5lci5kcm9wX3NoYWRvdyAuc3dfc2hhZG93IHsKICBiYWNrZ3JvdW5k
OnVybCgvaW1hZ2VzL2dsb2JhbC9zaGFkb3cvZHJvcF9zaGFkb3cvc3cucG5nKTsKICBoZWlnaHQ6
MTlweDsKICBfYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKICBmaWx0ZXI6IHByb2dpZDpEWEltYWdl
VHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYUltYWdlTG9hZGVyKHNyYz0nL2ltYWdlcy9nbG9iYWwv
c2hhZG93L2Ryb3Bfc2hhZG93L3N3LnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsKfQoKLnNo
YWRvd19jb250YWluZXIuZHJvcF9zaGFkb3cgLm5lX3NoYWRvdyB7CiAgYmFja2dyb3VuZDp1cmwo
L2ltYWdlcy9nbG9iYWwvc2hhZG93L2Ryb3Bfc2hhZG93L25lLnBuZyk7CiAgaGVpZ2h0OjE5cHg7
CiAgX2JhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5z
Zm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9Jy9pbWFnZXMvZ2xvYmFsL3NoYWRv
dy9kcm9wX3NoYWRvdy9uZS5wbmcnLCBzaXppbmdNZXRob2Q9J3NjYWxlJyk7Cn0KCi5zaGFkb3df
Y29udGFpbmVyLmRyb3Bfc2hhZG93IC5uX3NoYWRvdyB7CiAgYmFja2dyb3VuZDp1cmwoL2ltYWdl
cy9nbG9iYWwvc2hhZG93L2Ryb3Bfc2hhZG93L24ucG5nKTsKICBoZWlnaHQ6MTlweDsgCiAgbWFy
Z2luOiAwIDE5cHg7CiAgX2JhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgZmlsdGVyOiBwcm9naWQ6
RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9Jy9pbWFnZXMv
Z2xvYmFsL3NoYWRvdy9kcm9wX3NoYWRvdy9uLnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsK
fQoKLnNoYWRvd19jb250YWluZXIuZHJvcF9zaGFkb3cgLm53X3NoYWRvdyB7CiAgYmFja2dyb3Vu
ZDp1cmwoL2ltYWdlcy9nbG9iYWwvc2hhZG93L2Ryb3Bfc2hhZG93L253LnBuZyk7CiAgaGVpZ2h0
OjE5cHg7CiAgX2JhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFn
ZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9Jy9pbWFnZXMvZ2xvYmFs
L3NoYWRvdy9kcm9wX3NoYWRvdy9udy5wbmcnLCBzaXppbmdNZXRob2Q9J3NjYWxlJyk7Cn0KCi5z
aGFkb3dfY29udGFpbmVyLmRyb3Bfc2hhZG93IC5lX3NoYWRvdyB7CiAgYmFja2dyb3VuZDp1cmwo
L2ltYWdlcy9nbG9iYWwvc2hhZG93L2Ryb3Bfc2hhZG93L2UucG5nKSByZXBlYXQteTsKICBoZWln
aHQ6MTAwJTsKICBfYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKICBmaWx0ZXI6IHByb2dpZDpEWElt
YWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYUltYWdlTG9hZGVyKHNyYz0nL2ltYWdlcy9nbG9i
YWwvc2hhZG93L2Ryb3Bfc2hhZG93L2UucG5nJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpOwp9Cgou
c2hhZG93X2NvbnRhaW5lci5kcm9wX3NoYWRvdyAud19zaGFkb3cgewogIGJhY2tncm91bmQ6dXJs
KC9pbWFnZXMvZ2xvYmFsL3NoYWRvdy9kcm9wX3NoYWRvdy93LnBuZykgcmVwZWF0LXk7CiAgaGVp
Z2h0OjEwMCU7CiAgX2JhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgZmlsdGVyOiBwcm9naWQ6RFhJ
bWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9Jy9pbWFnZXMvZ2xv
YmFsL3NoYWRvdy9kcm9wX3NoYWRvdy93LnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsKfQoK
LnNoYWRvd19jb250YWluZXIuZHJvcF9zaGFkb3cgLmNfc2hhZG93IHsKICBoZWlnaHQ6MTAwJTsg
ICAgICAgICAgICAgICAKICAvKiBQYWRkaW5nIGlzIHVzZWQgdG8gc2V0IHNoaWZ0IHZhbHVlcyBm
b3IgdW5mb2N1c2VkIHdpbmRvdyAqLwogIHBhZGRpbmc6IDIwcHggMTJweCAxMnB4IDE2cHg7CiAg
LyogTWFyaW5nIGlzIHVzZWQgdG8gc2V0IHNoaWZ0IHZhbHVlcyBmb3IgZm9jdXNlZCB3aW5kb3cg
Ki8KICBtYXJnaW46IDIwcHggN3B4IDZweCAxNnB4OyAKfQogICAgICAgIApodG1sIHsKICBmaWx0
ZXI6IGV4cHJlc3Npb24oZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hl
IiwgZmFsc2UsIHRydWUpKTsKfdQABQARAAcACAAwADEAFAAyXxA3aHR0cDovL2dyYXBoaWNzOC5u
eXRpbWVzLmNvbS9qcy9hcnRpY2xlL2FydGljbGVTaGFyZS5qc08RBElicGxpc3QwMNQBAgMEBQYJ
ClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VS
ZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAgCwwmLC0zHjQ1T1BRUlNUVVZXWFlaW1xdXl9g
YWJjZ2hVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMk
MTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAH4ACgB4QCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQr
V05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEDdodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29t
L2pzL2FydGljbGUvYXJ0aWNsZVNoYXJlLmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVO
U1VSTFhOU09iamVjdCNBrZH7BodlVhDI0w02Nzg5RFdOUy5rZXlzWk5TLm9iamVjdHOAHao6Ozw9
Pj9AQUJDgAmACoALgAyADYAOgA+AEIARgBKqRUZHSElKS0xNToATgBSAFYAWgBeAGIAZgBqAG4Ac
VFZhcnldQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRlbnQtVHlw
ZVREYXRlXkNvbnRlbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkXxAPQWNj
ZXB0LUVuY29kaW5nVWJ5dGVzVGd6aXBfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xXxAYYXBwbGlj
YXRpb24veC1qYXZhc2NyaXB0XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVRUMzI2MF8Q
DyIyOTJhLTQ4ZTExNDNiIlprZWVwLWFsaXZlXxAdTW9uLCAyOSBTZXAgMjAwOCAxNzo0NTozMSBH
TVTSLi9kZaNlZjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeREpKtIuL2lqo2pr
Ml8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBk
AIcAjQCoAK8AsgC1ALkAvQDAAMMAxgDJAMwAzwDSANUA1wDZANsA3QDfAOEA4wDlAOcA6QDrAO0A
9AD8AQgBCgEMAQ4BSAFNAVYBYQFkAWoBcwF8AX4BhQGNAZgBmgGlAacBqQGrAa0BrwGxAbMBtQG3
AbkBxAHGAcgBygHMAc4B0AHSAdQB1gHYAd0B6wH+AgUCEgIXAiYCKwI2AkQCVgJcAmECegKVArUC
ugLMAtcC9wL8AwADFgMjAyYDKwMvA0MAAAAAAAACAQAAAAAAAABsAAAAAAAAAAAAAAAAAAADUU8R
KSovLyAkSWQ6IGFydGljbGVTaGFyZS5qcyA1MzY3IDIwMDgtMDktMTggMjI6Mjg6MzhaIGNjb3Js
aXNzICQKCmZ1bmN0aW9uIHNob3dIaWRlU3dhcCAoaWQxLCBpZDIpIHsKCWlmIChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCkgewoJCWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZDEpLmNsYXNz
TmFtZSA9PSAnaGlkZScgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQyKS5jbGFzc05hbWUg
PT0gJ3Bvc3QnKSB7CgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkMSkuY2xhc3NOYW1lID0g
J3Nob3cnOwoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZDIpLmNsYXNzTmFtZSA9ICdwb3N0
RnJhbWUnOwoJCX0gZWxzZSB7CiAgICAgICAJCSAgICAgCWRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGlkMSkuY2xhc3NOYW1lID0gJ2hpZGUnOwogICAgICAgICAgICAJCWRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkMikuY2xhc3NOYW1lID0gJ3Bvc3QnOwoJCX0KCX0KfQoKZnVuY3Rpb24gYXJ0aWNs
ZVNoYXJlKHNpdGUpIHsKCXZhciBwb3BVcFVybDsKICAgIHZhciB0aXRsZSA9IGdldFNoYXJlSGVh
ZGxpbmUoKTsKICAgIHZhciBkZXNjcmlwdGlvbiA9IGdldFNoYXJlRGVzY3JpcHRpb24oKTsKCXN3
aXRjaCAoc2l0ZSkgewoJY2FzZSAibmV3c3ZpbmUiOgoJCXBvcFVwVXJsID0gZ2VuZXJhdGVQYXNz
a2V5VVJMKCduZXdzdmluZScpOwoJCXZhciBrZXl3b3JkcyA9IGdldFNoYXJlU2VjdGlvbigpOyAK
CQlpZih0eXBlb2YoZ2V0U2hhcmVTdWJTZWN0aW9uKSA9PSAnZnVuY3Rpb24nKSB7CgkJCWlmKGdl
dFNoYXJlU3ViU2VjdGlvbigpICE9ICcnKSB7CgkJCQlrZXl3b3JkcyA9IGtleXdvcmRzICsgJywn
ICsgZ2V0U2hhcmVTdWJTZWN0aW9uKCk7CgkJCX0KCQl9CgkJaWYgKGdldFNoYXJlS2V5d29yZHMo
KSAhPSAnJykgewoJCQlrZXl3b3JkcyA9IGtleXdvcmRzICsgJywnICsgZ2V0U2hhcmVLZXl3b3Jk
cygpOwoJCX0KCQlwb3N0UG9wVXAoJ2h0dHA6Ly93d3cubmV3c3ZpbmUuY29tL193aW5lL3NhdmU/
dmVyPTImcG9wb2ZmPTAmYWZmPW55dGltZXMmdD0nICsga2V5d29yZHMgKyAnJmU9JyArIGRlc2Ny
aXB0aW9uICsgJyZoPScgKyB0aXRsZSArICcmdT0nICsgcG9wVXBVcmwsICduZXdzdmluZScsICd0
b29sYmFyPTAsc3RhdHVzPTAsaGVpZ2h0PTQ0NSx3aWR0aD02NTAsc2Nyb2xsYmFycz15ZXMscmVz
aXphYmxlPXllcycpOwoJCXNfY29kZV9saW5rdHJhY2soJ0FydGljbGUtVG9vbC1TaGFyZS1OZXdz
dmluZScpOwoJCWJyZWFrOwoJY2FzZSAiZmFjZWJvb2siOgoJCXBvcFVwVXJsID0gZ2VuZXJhdGVQ
YXNza2V5VVJMKCdmYWNlYm9vaycpOwoJCXBvc3RQb3BVcCgnaHR0cDovL3d3dy5mYWNlYm9vay5j
b20vc2hhcmVyLnBocD91PScgKyBwb3BVcFVybCArICcmdD0nICsgdGl0bGUsICdmYWNlYm9vaycs
ICd0b29sYmFyPTAsc3RhdHVzPTAsaGVpZ2h0PTQzNix3aWR0aD02NDYsc2Nyb2xsYmFycz15ZXMs
cmVzaXphYmxlPXllcycpOwoJCXNfY29kZV9saW5rdHJhY2soJ0FydGljbGUtVG9vbC1TaGFyZS1G
YWNlYm9vaycpOwoJCWJyZWFrOwoJY2FzZSAiZGlnZyI6CgkJcG9wVXBVcmwgPSBnZW5lcmF0ZVBh
c3NrZXlVUkwoJ2RpZ2cnKTsKCQl2YXIgdG9waWMgPSBnZXRTaGFyZVNlY3Rpb24oKTsJCgkJcG9z
dFBvcFVwKCdodHRwOi8vZGlnZy5jb20vcmVtb3RlLXN1Ym1pdD9waGFzZT0yJnVybD0nICsgcG9w
VXBVcmwgKyAnJnRpdGxlPScgKyB0aXRsZSArICcmYm9keXRleHQ9JyArIGRlc2NyaXB0aW9uLCAn
ZGlnZycsICd0b29sYmFyPTAsc3RhdHVzPTAsaGVpZ2h0PTQ1MCx3aWR0aD02NTAsc2Nyb2xsYmFy
cz15ZXMscmVzaXphYmxlPXllcycpOwoJCXNfY29kZV9saW5rdHJhY2soJ0FydGljbGUtVG9vbC1T
aGFyZS1EaWdnJyk7CgkJYnJlYWs7CQoJY2FzZSAicGVybWFsaW5rIjoKCQlwb3BVcFVybCA9IGdl
bmVyYXRlUGFzc2tleVVSTCgncGVybWFsaW5rJyk7CgkJdmFyIHNlY3Rpb24gPSBnZXRTaGFyZVNl
Y3Rpb25EaXNwbGF5KCk7CgkJdmFyIGJ5bGluZSA9IGdldFNoYXJlQnlsaW5lKCk7CgkJdmFyIHB1
YmRhdGUgPSBnZXRTaGFyZVB1YmRhdGUoKTsJCgkJcG9zdFBvcFVwKCdodHRwOi8vd3d3Lm55dGlt
ZXMuY29tL2V4cG9ydF9odG1sL2NvbW1vbi9uZXdfYXJ0aWNsZV9wb3N0Lmh0bWw/dXJsPScgKyBw
b3BVcFVybCArICcmdGl0bGU9JyArIHRpdGxlKyAnJnN1bW1hcnk9JyArIGRlc2NyaXB0aW9uICsg
JyZzZWN0aW9uPScgKyBzZWN0aW9uICsgJyZwdWJkYXRlPScgKyBwdWJkYXRlICsgJyZieWxpbmU9
JyArIGJ5bGluZSwgJ3Blcm1hbGluaycsICd0b29sYmFyPTAsc3RhdHVzPTAsaGVpZ2h0PTQxMCx3
aWR0aD00OTAsc2Nyb2xsYmFycz15ZXMscmVzaXphYmxlPW5vJyk7CgkJc19jb2RlX2xpbmt0cmFj
aygnQXJ0aWNsZS1Ub29sLVNoYXJlLVBlcm1hbGluaycpOwoJCWJyZWFrOwkKCWNhc2UgImRlbGlj
aW91cyI6CgkJcG9wVXBVcmwgPSBnZW5lcmF0ZVBhc3NrZXlVUkwoJ2RlbGljaW91cycpOwoJCXBv
c3RQb3BVcCgnaHR0cDovL2RlbC5pY2lvLnVzL3Bvc3Q/dj00JnBhcnRuZXI9bnl0Jm5vdWkmanVt
cD1jbG9zZSZ1cmw9JyArIHBvcFVwVXJsICsgJyZ0aXRsZT0nICsgdGl0bGUgKyAnJmJvZHl0ZXh0
PScgKyBkZXNjcmlwdGlvbiwgJ2RlbGljaW91cycsICd0b29sYmFyPTAsc3RhdHVzPTAsaGVpZ2h0
PTQwMCx3aWR0aD03MDAsc2Nyb2xsYmFycz15ZXMscmVzaXphYmxlPW5vJyk7CgkJc19jb2RlX2xp
bmt0cmFjaygnQXJ0aWNsZS1Ub29sLVNoYXJlLURlbGljaW91cycpOwoJCWJyZWFrOwkJCQoKCWNh
c2UgInlhaG9vYnV6eiI6CgkJLy8gZmFsbC1iYWNrIGJlaGF2aW9yLiAgQXQgbGVhc3QgaXQnbGwg
anVzdCBvcGVuIHRoZSBwYWdlIGluIGEgbmV3IHdpbmRvdy90YWIsIGJ1dCBub3QgZG93bnNpemVk
LgogICAgCQlwb3N0UG9wVXAoICdodHRwOi8vYnV6ei55YWhvby5jb20vYXJ0aWNsZS9uZXdfeW9y
a190aW1lcy8nCgkJCSAgICArIGVuY29kZVVSSUNvbXBvbmVudChnZXRTaGFyZVVSTCgpKSwKCQkJ
ICAgICd5YWhvb2J1enonLAogICAgICAgICAgICAgICAgICAgICAgICAgJ3Njcm9sbGJhcnM9eWVz
LHJlc2l6YWJsZT15ZXMnCgkJKTsKCQlzX2NvZGVfbGlua3RyYWNrKCdBcnRpY2xlLVRvb2wtU2hh
cmUtWWFob29CdXp6Jyk7CgkJYnJlYWs7CQkJCgoJY2FzZSAibWl4eCI6CgkJdHJ5IHsKCQkgICAg
dmFyIHBvcFVwVXJsID0gZ2V0U2hhcmVVUkwoKTsKCQkgICAgdmFyIHBhc3NLZXkgID0gZW5jb2Rl
VVJJQ29tcG9uZW50KCAnPycgKyBnZXRTaGFyZVBhc3NrZXkoKSApOwoJCSAgICB2YXIgb3RoZXJQ
YXJhbXMgPSAKCQkJICAgICAnJnRpdGxlPScgICAgICAgKyBnZXRTaGFyZUhlYWRsaW5lKCkKCQkJ
ICAgKyAnJmRlc2NyaXB0aW9uPScgKyBnZXRTaGFyZURlc2NyaXB0aW9uKCkKCQkJICAgKyAnJnRh
Z3M9JyAgICAgICAgKyBnZXRTaGFyZUtleXdvcmRzKCkKCQkJICAgKyAnJnBhcnRuZXI9JyAgICAg
KyAnTllUJzsKCQkgICAgcG9zdFBvcFVwKCAKCQkJICAgJ2h0dHA6Ly9taW5pLm1peHguY29tL3N1
Ym1pdC9zdG9yeScKCQkJICAgKyAnP3BhZ2VfdXJsPScgICAgKyBnZXRTaGFyZVVSTCgpCgkJCSAg
ICsgcGFzc0tleSAKCQkJICAgKyBvdGhlclBhcmFtcywKCQkJICAgJ21peHgnLAoJCQkgICAndG9v
bGJhcj0wLHN0YXR1cz0wLGhlaWdodD01NTAsd2lkdGg9NzAwLHNjcm9sbGJhcnM9eWVzLHJlc2l6
YWJsZT1ubycKCQkgICAgKTsKCQl9IGNhdGNoKGUpIHsKCQkgICAgcG9zdFBvcFVwKCAKCQkJICAg
J2h0dHA6Ly9taW5pLm1peHguY29tL3N1Ym1pdC9zdG9yeScKCQkJICAgKyAnP3BhZ2VfdXJsPScg
ICAgKyBnZXRTaGFyZVVSTCgpCgkJCSAgICsgJyZ0aXRsZT0nICAgICAgICsgZ2V0U2hhcmVIZWFk
bGluZSgpCgkJCSAgICsgJyZwYXJ0bmVyPScgICAgICsgJ05ZVCcKCQkJICAgLAoJCQkgICAnbWl4
eCcsCgkJCSAgICd0b29sYmFyPTAsc3RhdHVzPTAsaGVpZ2h0PTU1MCx3aWR0aD03MDAsc2Nyb2xs
YmFycz15ZXMscmVzaXphYmxlPW5vJwoJCSAgICApOwoJCX0KCQlzX2NvZGVfbGlua3RyYWNrKCdB
cnRpY2xlLVRvb2wtU2hhcmUtTWl4eCcpOwoJCWJyZWFrOwoJY2FzZSAibGlua2VkaW4iOgoJICAv
L2h0dHA6Ly93d3cubGlua2VkaW4uY29tL3NoYXJlQXJ0aWNsZT9taW5pPXRydWUmdXJsPXthcnRp
Y2xlVXJsfSZ0aXRsZT17YXJ0aWNsZVRpdGxlfSZzdW1tYXJ5PXthcnRpY2xlU3VtbWFyeX0mc291
cmNlPXthcnRpY2xlU291cmNlfQoJICBwb3N0UG9wVXAoCgkgICAgICdodHRwOi8vd3d3Lmxpbmtl
ZGluLmNvbS9zaGFyZUFydGljbGU/bWluaT10cnVlJwoJCSAgICsgJyZ1cmw9JyAgICAgICAgICsg
Z2V0U2hhcmVVUkwoKQoJCSAgICsgJyZ0aXRsZT0nICAgICAgICsgZ2V0U2hhcmVIZWFkbGluZSgp
CgkJICAgKyAnJnN1bW1hcnk9JyAgICAgKyBkZXNjcmlwdGlvbgoJCSAgICsgJyZzb3VyY2U9JyAg
ICAgICsgJ1RoZSBOZXcgWW9yayBUaW1lcycKCQkgICAsCgkJICAgJ0xpbmtlZGluJywKCQkgICAn
dG9vbGJhcj0wLHN0YXR1cz0wLGhlaWdodD01NTAsd2lkdGg9NzAwLHNjcm9sbGJhcnM9eWVzLHJl
c2l6YWJsZT1ubycKCSAgKQoJICBzX2NvZGVfbGlua3RyYWNrKCdBcnRpY2xlLVRvb2wtU2hhcmUt
TGlua2VkSW4nKTsKCSAgICAgYnJlYWs7Cgl9Cn0KCmZ1bmN0aW9uIGdlbmVyYXRlUGFzc2tleVVS
TCh0cmFja2VyKSB7Cgl2YXIgc2hhcmVVUkwgPSBnZXRTaGFyZVVSTCgpOwoJdmFyIHF1ZXJ5U3Ry
ID0gKGRlY29kZVVSSUNvbXBvbmVudChzaGFyZVVSTCkuaW5kZXhPZignPycpID4gMCkgPyAiJiIg
OiAiPyI7CgogICAgICAgIHN3aXRjaCAodHJhY2tlcil7CiAgICAgICAgICAgICAgICBjYXNlICJw
ZXJtYWxpbmsiOiBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZhciBwYXNza2V5ID0g
Z2V0U2hhcmVQYXNza2V5KCk7IHF1ZXJ5U3RyICs9IChwYXNza2V5ICE9ICcnKSA/IHBhc3NrZXkg
KyAiJiIgOiAiIjsKICAgICAgICB9CiAgICAgICAgcXVlcnlTdHIgKz0gJ3BhcnRuZXI9JyArIHRy
YWNrZXI7CiAgICAgICAgcXVlcnlTdHIgKz0gJyZleHByb2Q9JyArIHRyYWNrZXI7CgogICAgICAg
IHJldHVybiBzaGFyZVVSTCArIGVuY29kZVVSSUNvbXBvbmVudChxdWVyeVN0cik7Cn0KCmZ1bmN0
aW9uIHBvc3RQb3BVcCh1cmwsIG5hbWUsIHBhcmFtcykgewoJdmFyIHdpbiA9IHdpbmRvdy5vcGVu
KHVybCwgbmFtZSwgcGFyYW1zKTsKfQoKZnVuY3Rpb24gYWRkUG9zdEl0ZW0ocGFyZW50RWxlbWVu
dCwgc2hhcmVsaW5rTmFtZSwgc2hhcmVsaW5rVGV4dCkgewoJdmFyIGltYWdlSG9zdCA9ICJodHRw
Oi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tIjsKCXZhciBpbWFnZVBhdGggPSAiL2ltYWdlcy9hcnRp
Y2xlL2Z1bmN0aW9ucy8iOwoJaWYoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgKXsKCQlpZiggdHlw
ZW9mKHdpbmRvdy5zaGFyZVRvb2xzRXhjbHVkZUxpc3QpIT0ndW5kZWZpbmVkJwoJCSAgICAmJiB0
eXBlb2Yod2luZG93LnNoYXJlVG9vbHNFeGNsdWRlTGlzdFtzaGFyZWxpbmtOYW1lXSkhPSd1bmRl
ZmluZWQnICkgewoJCSAgICByZXR1cm47CgkJfQoJCXZhciBwb3N0SXRlbSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoIkxJIik7CgkJcG9zdEl0ZW0uY2xhc3NOYW1lID0gc2hhcmVsaW5rTmFtZTsK
CQkKCQl2YXIgaXRlbUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJBIik7CgkJaXRlbUxp
bmsuc2V0QXR0cmlidXRlKCJocmVmIiwgImphdmFzY3JpcHQ6YXJ0aWNsZVNoYXJlKCciKyBzaGFy
ZWxpbmtOYW1lICsiJyk7Iik7CgkJaXRlbUxpbmsuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gInVy
bCgnIiArIGltYWdlSG9zdCArIGltYWdlUGF0aCArIHNoYXJlbGlua05hbWUgKyAiLmdpZicpIjsK
CQlpdGVtTGluay5pbm5lckhUTUwgPSBzaGFyZWxpbmtUZXh0OwoKCQlwb3N0SXRlbS5hcHBlbmRD
aGlsZChpdGVtTGluayk7CgkJcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZChwb3N0SXRlbSk7Cgl9
Cn0KCmZ1bmN0aW9uIHdyaXRlUG9zdChleGNsdWRlTGlzdCkgewoJCglpZiggZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCApewoJCXZhciBwYXJlbnRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rvb2xzTGlzdCcpOwoJCQoJCS8vY3JlYXRlIHBvc3QgbGkKCQl2YXIgcG9zdEVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAiTEkiKTsKCQlwb3N0RWxlbWVudC5jbGFzc05hbWUg
PSAicG9zdCI7CgkJcG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsICJwb3N0Iik7CgkJLy8g
Y3JlYXRlIHBvc3QgbGluawoJCXZhciBwb3N0TGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
IkEiKTsKCQlwb3N0TGluay5zZXRBdHRyaWJ1dGUoImhyZWYiLCAiIyIpOwoJCS8vcG9zdExpbmsu
c2V0QXR0cmlidXRlKCJvbkNsaWNrIiwgInNob3dIaWRlU3dhcChcJ3Bvc3RMaXN0XCcsIFwncG9z
dFwnKTsgcmV0dXJuIGZhbHNlOyIpOwoJCXBvc3RMaW5rLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7
IHNob3dIaWRlU3dhcCgncG9zdExpc3QnLCAncG9zdCcpOyByZXR1cm4gZmFsc2U7IH07CgkJcG9z
dExpbmsuaW5uZXJIVE1MID0gIiBTaGFyZSI7CgoJCXBvc3RFbGVtZW50LmFwcGVuZENoaWxkKHBv
c3RMaW5rKTsKCQkKCQkvLyBjcmVhdGUgdW5vcmRlcmVkIGxpc3QgZm9yIHBvc3QgaXRlbXMKCQl2
YXIgcG9zdExpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJVTCIpOwoJCXBvc3RMaXN0LnNl
dEF0dHJpYnV0ZSgiaWQiLCJwb3N0TGlzdCIpOwkKCQlwb3N0TGlzdC5jbGFzc05hbWUgPSAiaGlk
ZSI7CgoJCS8vIElmIGV4Y2x1ZGVMaXN0IGlzIHN1cHBsaWVkLCBpdCdzIGEgaGFzaCBrZXllZCBv
biB2ZW5kb3IgbmFtZXMKCQkvLyAoQ1NTIGNsYXNzIG5hbWVzIGZvciB0aGUgdmVuZG9yIGxpbmtz
LCBhY3R1YWxseSkKCQlpZih0eXBlb2YoZXhjbHVkZUxpc3QpIT0ndW5kZWZpbmVkJykgewoJCSAg
ICB3aW5kb3cuc2hhcmVUb29sc0V4Y2x1ZGVMaXN0ID0gZXhjbHVkZUxpc3Q7CgkJfQoJCQoJCS8v
YWRkIHBvc3QgbGlua3MKCQlhZGRQb3N0cyhwb3N0TGlzdCk7CgkJCgkJcG9zdEVsZW1lbnQuYXBw
ZW5kQ2hpbGQocG9zdExpc3QpOyAKCQlwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHBvc3RFbGVt
ZW50KTsgCgkJaW5zdHJ1bWVudFlhaG9vQnV6ekJhZGdlKCk7Cgl9Cgp9CgpmdW5jdGlvbiBjcmVh
dGVZYWhvb0J1enpPbkxvYWQoKSB7CgkKCS8vIEFuIGV2ZW50IGxpc3RlbmVyIGlzIGF0dGFjaGVk
IG9uY2UgdGhlIGJhZGdlIGlzIGxvYWRlZCBzbyB0aGF0IAoJLy8gZnVuY3Rpb24gaXRzZWxmIGlz
IHNlcGFyYXRlZCBmcm9tIHRoZSBkb20gcmVmIHZpYSBhIGNsb3N1cmUgdG8gcHJldmVudCBJRSA2
IG1lbW9yeSBsZWFrYWdlLgoJd2luZG93LnlhaG9vQnV6ek9uTG9hZCA9IGZ1bmN0aW9uICgpIHsK
CQl2YXIgb25jbGljayA9IGZ1bmN0aW9uICgpIHsKCQkJLy8gdGhpcyBpcyB0aGUgb25jbGljayBo
YW5kbGVyIHRoYXQgZ2V0cyBhdHRhY2hlZCB0byB0aGUgYmFkZ2UuCgkJCXNfY29kZV9saW5rdHJh
Y2soJ0FydGljbGUtVG9vbC1TaGFyZS1ZYWhvb0J1enonKTsKCQl9OwoJCXJldHVybiBmdW5jdGlv
biAoKSB7CgkJICAgIGlmKHR5cGVvZih3aW5kb3dbJ3lhaG9vQnV6ek9uTG9hZCddKSE9J2Z1bmN0
aW9uJykgewoJCQkgICAgd2luZG93LnlhaG9vQnV6ek9uTG9hZD1udWxsOyAvLyBjbGVhbiB1cCB0
aGUgZ2xvYmFsLgoJCSAgICB9CgkJCXZhciBiYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd5YWhvb0J1enpCYWRnZS1mb3JtJyk7CgkJCWlmICggYmFkZ2UgKSB7CgkJCQlpZiAoIGJhZGdl
LmFkZEV2ZW50TGlzdGVuZXIgKSB7CgkJCQkJYmFkZ2UuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2sn
LCBvbmNsaWNrLCB0cnVlKTsKCQkJCX0gZWxzZSBpZiAoIGJhZGdlLmF0dGFjaEV2ZW50ICkgewoJ
CQkJCWJhZGdlLmF0dGFjaEV2ZW50KCdjbGljaycsIG9uY2xpY2spOwoJCQkJfSBlbHNlIHsKCQkJ
CQkvLyBjYW4ndCBwdXQgYW4gb25jbGljayBkaXJlY3RseSwgb3IgaXQnbGwgYnJlYWsgdGhlIGJh
ZGdlLgoJCQkJCS8vIFRoaXMgaXMgYW4gZWRnZSBjYXNlLCBzbyBsb3Npbmcgbm9uLW1vdXNlcnMg
aXMgbm90IHZlcnkgc2lnbmlmaWNhbnQuCgkJCQkJYmFkZ2Uub25tb3VzZWRvd24gPSBvbmNsaWNr
OwoJCQkJfQoJCQl9CgkJfQoJfSgpOwoJCn07CgpmdW5jdGlvbiBpbnN0cnVtZW50WWFob29CdXp6
QmFkZ2UoKSB7CgkKCWlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3lhaG9vQnV6ekJhZGdl
JykgKSB7CgkJLy8gYWxyZWFkeSBpbnN0cnVtZW50ZWQuIEFib3J0LgoJCXJldHVybjsKCX0KCQoJ
dmFyIGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9zdExpc3QnKTsKCWlmICggIWxp
c3QgKSB7CgkJLy8gaGF2ZW4ndCBjcmVhdGVkIHRoZSBsaXN0IHlldC4gQWJvcnQuCgkJcmV0dXJu
OwoJfQoJCgljcmVhdGVZYWhvb0J1enpPbkxvYWQoKTsKCQoJdmFyIHBvc3RMaW5rcyA9IGxpc3Qu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKTsKCWZvciAoIHZhciBpID0gMCwgbCA9IHBvc3RMaW5r
cy5sZW5ndGg7IGkgPCBsOyBpICsrICkgewoJCXZhciBocmVmID0gcG9zdExpbmtzW2ldLmhyZWY7
CgkJaHJlZiA9IGhyZWYudG9Mb3dlckNhc2UoKTsKCQlpZiAoIGhyZWYuaW5kZXhPZignYnV6eicp
ICE9PSAtMSAmJiBocmVmLmluZGV4T2YoJ3lhaG9vJykgIT09IC0xICkgewoJCQkvLyB3b3JrcyB3
aGV0aGVyIGl0J3MgdGhlIHJlYWwgVVJMIG9yIHRoZSBqYXZhc2NyaXB0OiB3aXRoIHlhaG9vYnV6
eiBpbiB0aGUgY2FsbC4KCQkJdmFyIGJhZGdlID0gcG9zdExpbmtzW2ldOwoJCQliYWRnZS5pZCA9
ICd5YWhvb0J1enpCYWRnZSc7CgkJfQoJfQoJCgkvLyBZISBCdXp6IHJlcXVpcmVzIGl0cyBvd24g
c2NyaXB0IGJlIGluY2x1ZGVkIGR5bmFtaWNhbGx5IGxpa2UgdGhpcyAuLi4KCXZhciBhcnRVcmlZ
YWhvbyA9IGRlY29kZVVSSUNvbXBvbmVudChnZXRTaGFyZVVSTCgpKTsKCWRvY3VtZW50LndyaXRl
KAoJICAgICAgICAnPHNjcmlwdCBiYWRnZXR5cGU9InRleHQiIHNyYz0iaHR0cDovL2QueWltZy5j
b20vZHMvYmFkZ2UuanMiPm5ld195b3JrX3RpbWVzOicKCQkgKyBhcnRVcmlZYWhvbwoJCSArICc8
L3NjcmlwdD4nCgkpOwp9CgpmdW5jdGlvbiBhZGRQb3N0cyhzaGFyZUxpc3QpIHsJCgkJCgkJaWYo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpIHsJCgkJCXZhciBzTGlzdDsKCQkJCQoJCQlpZih0eXBl
b2Yoc2hhcmVMaXN0KT09J3N0cmluZycpIHsKCQkJCXNMaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoc2hhcmVMaXN0KTsgCgkJCQl9CgkJCQoJCQllbHNlIGlmKHR5cGVvZihzaGFyZUxpc3Qp
PT0nb2JqZWN0JykgeyAKCQkJCXNMaXN0ID0gc2hhcmVMaXN0OwoJCQl9CgkJCQoJCQllbHNlIHsK
CQkJCXJldHVybiBmYWxzZTsKCQkJfQoKCQkJYWRkUG9zdEl0ZW0oc0xpc3QsICJsaW5rZWRpbiIs
ICJMaW5rZWRpbiIpOwoJCQlhZGRQb3N0SXRlbShzTGlzdCwgImRpZ2ciLCAiRGlnZyIpOwoJCQlh
ZGRQb3N0SXRlbShzTGlzdCwgImZhY2Vib29rIiwgIkZhY2Vib29rIik7CgkJCWFkZFBvc3RJdGVt
KHNMaXN0LCAibWl4eCIsICJNaXh4Iik7CgkJCWFkZFBvc3RJdGVtKHNMaXN0LCAieWFob29idXp6
IiwgIllhaG9vISBCdXp6Iik7CgkJCWFkZFBvc3RJdGVtKHNMaXN0LCAicGVybWFsaW5rIiwgIlBl
cm1hbGluayIpOwoJCX0KfQoKCmZ1bmN0aW9uIHRvZ2dsZVNoYXJlVGFiKHNoYXJlQnV0dG9uLCBw
b3N0TGlzdCwgZXhjbHVkZUxpc3QpIHsKCglpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCAmJiBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChzaGFyZUJ1dHRvbikgJiYgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQocG9zdExpc3QpKSB7CgoJCWlmKHR5cGVvZihleGNsdWRlTGlzdCkhPSd1bmRlZmluZWQn
KSB7CgkJICAgIHdpbmRvdy5zaGFyZVRvb2xzRXhjbHVkZUxpc3QgPSBleGNsdWRlTGlzdDsKCQl9
CgoJCWFkZFBvc3RzKHBvc3RMaXN0KTsKCQl2YXIgc2hhcmVTcGFuID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoc2hhcmVCdXR0b24pCgkJdmFyIGxpc3RDb250YWluZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChwb3N0TGlzdCkKCQl2YXIgc2hhcmVMaW5rID0gc2hhcmVTcGFuLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJhIikKCgkJaWYoc2hhcmVMaW5rICYmIGxpc3RDb250YWluZXIpewoKCQkJ
c2hhcmVMaW5rWzBdLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKCQkJCWlmKHRoaXMucGFyZW50Tm9k
ZS5jbGFzc05hbWU9PSIiKQoJCQkJCXsKCQkJCQkgdGhpcy5wYXJlbnROb2RlLmNsYXNzTmFtZT0i
b3BlbiI7CgkJCQkJIGxpc3RDb250YWluZXIuc3R5bGUuZGlzcGxheT0iYmxvY2siOwoJCQkJCSBy
ZXR1cm4gZmFsc2U7CgkJCQkJfSBlbHNlIHsgdGhpcy5wYXJlbnROb2RlLmNsYXNzTmFtZT0iIjsK
CQkJCQkJIGxpc3RDb250YWluZXIuc3R5bGUuZGlzcGxheT0ibm9uZSI7CgkJCQkJCSByZXR1cm4g
ZmFsc2U7CgkJCQkJCX0KCQkJfSAKCQl9IAoJfSAKCWVsc2UgcmV0dXJuIGZhbHNlOwp9CtQABQAR
AAcACAA0ADUAFAA2XxA4aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9UYWNvZGFfQU1T
X0REQ19IZWFkZXIuanNPEQRGYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2
ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNo
aXZlcq8QIAsMJiwtMx40NU9QUVJTVFVWV1hZWltcXV5fYGFiY2doVSRudWxs3Q0ODxAREhMUFRYX
GBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQw
UiQxgB+AAoAeEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASA
AIADXxA4aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9UYWNvZGFfQU1TX0REQ19IZWFk
ZXIuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsGirrg
EMjTDTY3ODlEV05TLmtleXNaTlMub2JqZWN0c4Adqjo7PD0+P0BBQkOACYAKgAuADIANgA6AD4AQ
gBGAEqpFRkdISUpLTE1OgBOAFIAVgBaAF4AYgBmAGoAbgBxUVmFyeV1BY2NlcHQtUmFuZ2VzXxAQ
Q29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJcQ29udGVudC1UeXBlVERhdGVeQ29udGVudC1MZW5ndGhU
RXRhZ1pDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRfEA9BY2NlcHQtRW5jb2RpbmdVYnl0ZXNUZ3pp
cF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRfEB1N
b24sIDEwIE5vdiAyMDA4IDIzOjM4OjQzIEdNVFM3NDFeIjgwYi00NzA1MGFiZSJaa2VlcC1hbGl2
ZV8QHVRodSwgMDQgT2N0IDIwMDcgMTU6NDY6MDYgR01U0i4vZGWjZWYyXxATTlNNdXRhYmxlRGlj
dGlvbmFyeVxOU0RpY3Rpb25hcnkRCAvSLi9paqNqazJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VS
TFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACHAI0AqACvALIAtQC5AL0AwADDAMYAyQDM
AM8A0gDVANcA2QDbAN0A3wDhAOMA5QDnAOkA6wDtAPQA/AEIAQoBDAEOAUkBTgFXAWIBZQFrAXQB
fQF/AYYBjgGZAZsBpgGoAaoBrAGuAbABsgG0AbYBuAG6AcUBxwHJAcsBzQHPAdEB0wHVAdcB2QHe
AewB/wIGAhMCGAInAiwCNwJFAlcCXQJiAnsClgK2AroCyQLUAvQC+QL9AxMDIAMjAygDLANAAAAA
AAAAAgEAAAAAAAAAbAAAAAAAAAAAAAAAAAAAA05PEQgLdmFyIFRhY29kYV9BTVNfRERDX3NuaXBw
ZXRfdmVyc2lvbiA9ICIxLjNhIjsKdmFyIFRhY29kYV9BTURfRERDX3NuaXBwZXRfZGF0ZSA9ICIw
MTE5MDUiOwp2YXIgVGFjb2RhX0FNU19ERENfY2xpc3QgPSBuZXcgQXJyYXkoIlRJRCIsIlJNSUQi
LCJueXQtZCIpOwp2YXIgVGFjb2RhX0FNU19ERENfY2xpc3Rfbm90c2V0ID0gbnVsbDsKdmFyIFRh
Y29kYV9BTVNfRERDX2tleXMgPSBuZXcgQXJyYXkoKTsKdmFyIFRhY29kYV9BTVNfRERDX3ZhbHVl
cyA9IG5ldyBBcnJheSgpOwp2YXIgVGFjb2RhX0FNU19ERENfdmFyc19udW0gPSAwOwpmdW5jdGlv
biBUYWNvZGFfQU1TX0REQ19nZXRDb29raWUobmFtZSkgewp2YXIgY25hbWUgPSBuYW1lICsgIj0i
Owp2YXIgZGMgPSBkb2N1bWVudC5jb29raWU7CmlmIChkYy5sZW5ndGggPiAwKSB7CmZvcih2YXIg
YmVnaW4gPSBkYy5pbmRleE9mKGNuYW1lKTsgYmVnaW4gIT0gLTE7IGJlZ2luID0gCmRjLmluZGV4
T2YoY25hbWUsIGJlZ2luKSkgewppZigoYmVnaW4gIT0gMCkgJiYgKGRjLmNoYXJBdChiZWdpbiAt
IDEpICE9ICcgJykpIHsKYmVnaW4rKzsKY29udGludWU7Cn0KYmVnaW4gKz0gY25hbWUubGVuZ3Ro
Owp2YXIgZW5kID0gZGMuaW5kZXhPZigiOyIsIGJlZ2luKTsKaWYgKGVuZCA9PSAtMSkKZW5kID0g
ZGMubGVuZ3RoOwpyZXR1cm4gdW5lc2NhcGUoZGMuc3Vic3RyaW5nKGJlZ2luLCBlbmQpKTsKfQp9
CnJldHVybiBUYWNvZGFfQU1TX0REQ19jbGlzdF9ub3RzZXQ7Cn0KZnVuY3Rpb24gVGFjb2RhX0FN
U19ERENfYWRkUGFpcihrZXksIHZhbHVlKSB7ClRhY29kYV9BTVNfRERDX2tleXNbVGFjb2RhX0FN
U19ERENfdmFyc19udW1dID0ga2V5OwpUYWNvZGFfQU1TX0REQ192YWx1ZXNbVGFjb2RhX0FNU19E
RENfdmFyc19udW1dID0gdmFsdWU7ClRhY29kYV9BTVNfRERDX3ZhcnNfbnVtKys7Cn0KZnVuY3Rp
b24gVGFjb2RhX0FNU19ERENfY29sbGVjdF92YXJzKCkgewp2YXIgVGFjb2RhX0FNU19ERENfdmFy
c19hc19zdHJpbmcgPSAiIjsKZm9yKHZhciBpID0gMDsgaSA8IFRhY29kYV9BTVNfRERDX3ZhcnNf
bnVtOyBpKyspIHsKVGFjb2RhX0FNU19ERENfdmFyc19hc19zdHJpbmcgKz0gIiZ2YXJfIiArIGVz
Y2FwZSggClRhY29kYV9BTVNfRERDX2tleXNbaV0gKSArICI9IiArIGVzY2FwZSggVGFjb2RhX0FN
U19ERENfdmFsdWVzW2ldICkgOwp9CnJldHVybiBUYWNvZGFfQU1TX0REQ192YXJzX2FzX3N0cmlu
ZzsKfQpmdW5jdGlvbiBUYWNvZGFfQU1TX0REQyhUYWNvZGFfQU1TX0REQ19pbWdfdXJsLCBUYWNv
ZGFfQU1TX0REQ19qcykgewpUYWNvZGFfQU1TX0REQ19qcyA9IHBhcnNlRmxvYXQoVGFjb2RhX0FN
U19ERENfanMpOwpUYWNvZGFfQU1TX0REQ19hcmdzID0gIj8iICsgTWF0aC5yYW5kb20oKSArICIm
c25pcHBldF92ZXJzaW9uPSIgKyAKVGFjb2RhX0FNU19ERENfc25pcHBldF92ZXJzaW9uICsgIiZy
ZWZlcnJlcj0iICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSArIAoiJnBhZ2U9IiArIGVzY2Fw
ZSh3aW5kb3cubG9jYXRpb24uaHJlZik7ClRhY29kYV9BTVNfRERDX2FyZ3MgKz0gIiZ0aW1lem9u
ZT0iICsgKG5ldyBEYXRlKCkpLmdldFRpbWV6b25lT2Zmc2V0KCk7CmZvcih2YXIgaSA9IDA7IGkg
PCBUYWNvZGFfQU1TX0REQ19jbGlzdC5sZW5ndGg7IGkrKykgewp2YXIgY2xpc3RfbmFtZSA9IFRh
Y29kYV9BTVNfRERDX2NsaXN0W2ldOwp2YXIgY2xpc3RfdmFsdWUgPSBUYWNvZGFfQU1TX0REQ19n
ZXRDb29raWUoY2xpc3RfbmFtZSk7CmlmKGNsaXN0X3ZhbHVlICE9IG51bGwpIHsKVGFjb2RhX0FN
U19ERENfYXJncyArPSAiJmNsaXN0XyIgKyBlc2NhcGUoY2xpc3RfbmFtZSkgKyAiPSIgKyAKZXNj
YXBlKGNsaXN0X3ZhbHVlKTsKfQp9ClRhY29kYV9BTVNfRERDX2FyZ3MgKz0gVGFjb2RhX0FNU19E
RENfY29sbGVjdF92YXJzKCk7CmRvY3VtZW50LndyaXRlKCc8SU1HICcrJ1NSQz0iJyArIFRhY29k
YV9BTVNfRERDX2ltZ191cmwgKyAKVGFjb2RhX0FNU19ERENfYXJncyArICciIGhlaWdodD0iMSIg
d2lkdGg9IjEiIGJvcmRlcj0iMCIgaWQ9InRhY29kYSI+Jyk7Cn0KCtQABQARAAcACAA4ADkAFAA6
XxApaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9maWxlaXQuanNPEQQ4YnBsaXN0MDDU
AQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJl
c291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QIAsMJiwtMx40NU9QUVJTVFVWV1hZ
WltcXV5fYGFiY2doVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1Ik
OFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgB+AAoAeEAgQAIAGgAeABYAIEAeAABAB
0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxApaHR0cDovL2dyYXBoaWNzOC5ueXRp
bWVzLmNvbS9qcy9maWxlaXQuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5T
T2JqZWN0I0GtkfsGlFLnEMjTDTY3ODlEV05TLmtleXNaTlMub2JqZWN0c4Adqjo7PD0+P0BBQkOA
CYAKgAuADIANgA6AD4AQgBGAEqpFRkdISUpLTE1OgBOAFIAVgBaAF4AYgBmAGoAbgBxUVmFyeV1B
Y2NlcHQtUmFuZ2VzXxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJcQ29udGVudC1UeXBlVERhdGVe
Q29udGVudC1MZW5ndGhURXRhZ1pDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRfEA9BY2NlcHQtRW5j
b2RpbmdVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNhdGlvbi94
LWphdmFzY3JpcHRfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQzIEdNVFQxMTU5XiJmYjMtNDcw
NTBhYmUiWmtlZXAtYWxpdmVfEB1UaHUsIDA0IE9jdCAyMDA3IDE1OjQ2OjA2IEdNVNIuL2Rlo2Vm
Ml8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQ+z0i4vaWqjamsyXxARTlNIVFRQ
VVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAhwCNAKgArwCy
ALUAuQC9AMAAwwDGAMkAzADPANIA1QDXANkA2wDdAN8A4QDjAOUA5wDpAOsA7QD0APwBCAEKAQwB
DgE6AT8BSAFTAVYBXAFlAW4BcAF3AX8BigGMAZcBmQGbAZ0BnwGhAaMBpQGnAakBqwG2AbgBugG8
Ab4BwAHCAcQBxgHIAcoBzwHdAfAB9wIEAgkCGAIdAigCNgJIAk4CUwJsAocCpwKsArsCxgLmAusC
7wMFAxIDFQMaAx4DMgAAAAAAAAIBAAAAAAAAAGwAAAAAAAAAAAAAAAAAAANATxEPsy8vIGZ1bmN0
aW9uIGZ1cmxJdCh0aXRsZSwgdXJsLCBjbGlwLCByZWZlcnJlciwgcGFydG5lcikgewovLyAgdmFy
IGZ1cmxpdD13aW5kb3cub3BlbihidWlsZFVSTCh0aXRsZSwgdXJsLCBjbGlwLCByZWZlcnJlciwg
cGFydG5lciwgdHJ1ZSksJ215ZnVybHdpbmRvdycsJ3Njcm9sbGJhcnM9bm8sd2lkdGg9NDc1LGhl
aWdodD01NzUsbGVmdD03NSx0b3A9MjAsc3RhdHVzPW5vLHJlc2l6YWJsZT15ZXMnKTsKLy8gICAg
IGZ1cmxpdC5mb2N1cygpOwovLyAgICAgcmV0dXJuIGZhbHNlOwovLyB9CgovKioKICogVGhpcyBm
dW5jdGlvbiBpcyBub3cgZXhjbHVzaXZlbHkgQXJ0aWNsZSBUb29scyBTYXZlLCAKICogVGhlIFNB
VkUgbGluayBpbmNsdWRlZCB3aXRoaW4gZWFjaCBhcnRpY2xlCiAqIAogKi8KZnVuY3Rpb24gZnVy
bEl0Tm9Qb3AodGl0bGUsIHVybCwgY2xpcCwgcmVmZXJyZXIsIHBhcnRuZXIpIHsKCWFydGljbGVU
b29sc1NhdmUodGl0bGUsIHVybCwgY2xpcCwgcmVmZXJyZXIsIHBhcnRuZXIpOwoJCn0KCi8qKgog
KiBBcnRpY2xlIHRvb2xzIHNhdmUKICogMS1jbGljayB3aXRoIHNpbXBsZSBjb25maXJtYXRpb24K
ICogCiAqLwpmdW5jdGlvbiBhcnRpY2xlVG9vbHNTYXZlKHRpdGxlLCB1cmwsIGNsaXAsIHJlZmVy
cmVyLCBwYXJ0bmVyKSB7CiAgICBzYXZlQXJ0aWNsZShidWlsZFVSTCh0aXRsZSwgdXJsLCBjbGlw
LCByZWZlcnJlciwgcGFydG5lciwgImFydGljbGVUb29sc1NhdmUiKSk7CiAgICByZXR1cm4gZmFs
c2U7CiAgICAKfQoKZnVuY3Rpb24gZHJvcERvd25Ub29sc1NhdmUodGl0bGUsIHVybCwgY2xpcCwg
cmVmZXJyZXIsIHBhcnRuZXIpIHsKICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBidWlsZFVS
TCh0aXRsZSwgdXJsLCBjbGlwLCByZWZlcnJlciwgcGFydG5lciwgIm5vcm1hbCIpOwogICAgcmV0
dXJuIGZhbHNlOwogICAgCn0KCmZ1bmN0aW9uIGJ1aWxkVVJMKHRpdGxlLCB1cmwsIGNsaXAsIHJl
ZmVycmVyLCBwYXJ0bmVyLCB0eXBlKSB7CiAgICAKICAgIHZhciBkID0gZG9jdW1lbnQ7CiAgICAK
ICAgIHBvcCA9ICJwPTEiOwogICAgCiAgICBpZiAoIXRpdGxlKSB7CiAgICAgICAgdGl0bGUgPSAi
IjsKICAgIH0gZWxzZSB7CiAgICAgICAgdGl0bGUgPSAiJnQ9IiArIGVuY29kZUl0KHRpdGxlKTsK
ICAgIH0KICAgIAogICAgaWYgKCF1cmwpIHsKICAgICAgICB1cmw9ICImdT0iOwogICAgfSBlbHNl
IHsKICAgICAgICB1cmwgPSAiJnU9IiArIGVzY2FwZSh1cmwpOwogICAgfQogICAgCiAgICBpZiAo
IXJlZmVycmVyKSB7CiAgICAgICAgcmVmZXJyZXIgPSBkLnJlZmVycmVyOwogICAgICAgIGlmICgh
cmVmZXJyZXIpIHsKICAgICAgICAgICAgcmVmZXJyZXIgPSAiJnI9IjsKICAgICAgICB9CiAgICAg
ICAgCiAgICB9IGVsc2UgewogICAgICAgIHJlZmVycmVyID0gIiZyPSIgKyBlc2NhcGUocmVmZXJy
ZXIpOwogICAgfQogICAgCiAgICBpZiAocGFydG5lciAmJiBwYXJ0bmVyICE9ICIiKSB7CiAgICAg
ICAgcGFydG5lciA9ICImc291cmNlPSIgKyBwYXJ0bmVyOwogICAgfSBlbHNlIHsKICAgICAgICBw
YXJ0bmVyID0gIiI7CiAgICB9CiAgICAKICAgIGlmICghY2xpcCkgewogICAgICAgIGQuc2VsZWN0
aW9uPyhkLnNlbGVjdGlvbi50eXBlIT0iTm9uZSI/ZC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS50
ZXh0OiIiKTooZC5nZXRTZWxlY3Rpb24/ZC5nZXRTZWxlY3Rpb24oKToiIik7CiAgICAgICAgaWYg
KGRvY3VtZW50LnNlbGVjdGlvbikgewogICAgICAgICAgIGlmIChkLnNlbGVjdGlvbi50eXBlICE9
ICJOb25lIikgewogICAgICAgICAgICAgICBjbGlwID0gZC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2Uo
KS50ZXh0OwogICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGQuZ2V0U2VsZWN0aW9uKSB7
CiAgICAgICAgICAgIGNsaXAgPSBkLmdldFNlbGVjdGlvbigpOwogICAgICAgIH0gZWxzZSBpZiAo
Z2V0U2VsZWN0aW9uKSB7CiAgICAgICAgICAgIGNsaXAgPSBnZXRTZWxlY3Rpb24oKTsKICAgICAg
ICB9CiAgICAgICAgaWYgKCFjbGlwKSB7CiAgICAgICAgICAgIGNsaXAgPSAiIjsKICAgICAgICB9
CiAgICB9CiAgICBjbGlwID0gIiZjPSIgKyBlbmNvZGVJdChjbGlwKTsKICAgIAogICAgaWYodHlw
ZW9mKGdldFNoYXJlU2VjdGlvbikgIT0gInVuZGVmaW5lZCIpIHsKICAgICAgICBzaGFyZVNlY3Rp
b24gPSAiJmR0PSIgKyBnZXRTaGFyZVNlY3Rpb24oKTsKICAgIH0gZWxzZSB7CiAgICAgICAgc2hh
cmVTZWN0aW9uID0gIiI7CiAgICB9CiAgICAKICAgIGlmKHR5cGUgPT0gIm5vcm1hbCIpIHsKICAg
ICAgICByZXR1cm4gImh0dHA6Ly90aW1lc2ZpbGUubnl0aW1lcy5jb20vc3RvcmVJdC5qc3A/IiAr
IHBvcCArIHRpdGxlICsgdXJsICsgcmVmZXJyZXIgKyBwYXJ0bmVyICsgY2xpcCArIHNoYXJlU2Vj
dGlvbjsKICAgICAgICAKICAgIH0gZWxzZSBpZih0eXBlID09ICJhcnRpY2xlVG9vbHNTYXZlIikg
ewogICAgICAgIHN0b3JlID0gIiZzdG9yZT1ueXRPbmVDbGljayI7CiAgICAgICAgcmV0dXJuICJo
dHRwOi8vdGltZXNmaWxlLm55dGltZXMuY29tL3N0b3JlPyIgKyBwb3AgKyB0aXRsZSArIHVybCAr
IHJlZmVycmVyICsgcGFydG5lciArIHN0b3JlICsgY2xpcCArIHNoYXJlU2VjdGlvbjsKICAgICAg
ICAKICAgIH0gZWxzZSB7CiAgICAgICAgc3RvcmUgPSAiJnN0b3JlPW1vc3RQb3B1bGFyT25lQ2xp
Y2siOwogICAgICAgIAogICAgICAgIGlmKGRheXMpIHsKICAgICAgICAgICAgZGF5cyA9ICImZGF5
cz0iICsgZGF5czsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYobXBwZykgewogICAgICAg
ICAgICBwYWdlID0gIiZwYWdlIiArIG1wcGc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8v
cHJvbXB0KCJNUCBPbmUgQ2xpY2sgU2F2ZSBVUkwiLCAiaHR0cDovL3RpbWVzZmlsZS5ueXRpbWVz
LmNvbS9zdG9yZT8iICsgcG9wICsgdGl0bGUgKyB1cmwgKyByZWZlcnJlciArIHBhcnRuZXIgKyBz
dG9yZSArIGNsaXAgKyBzaGFyZVNlY3Rpb24gKyBwYWdlICsgZGF5cyk7CiAgICAgICAgCiAgICAg
ICAgcmV0dXJuICJodHRwOi8vdGltZXNmaWxlLm55dGltZXMuY29tL3N0b3JlPyIgKyBwb3AgKyB0
aXRsZSArIHVybCArIHJlZmVycmVyICsgcGFydG5lciArIHN0b3JlICsgY2xpcCArIHNoYXJlU2Vj
dGlvbiArIHBhZ2UgKyBkYXlzOwogICAgICAgIAogICAgfQogICAgCn0KCmZ1bmN0aW9uIGVuY29k
ZUl0KHN0clRvRW5jb2RlKSB7CiAgICBpZiAodHlwZW9mKGVuY29kZVVSSUNvbXBvbmVudCkgIT0g
J2Z1bmN0aW9uJykgewogICAgICAgIHJldFZhbCA9IGVzY2FwZShzdHJUb0VuY29kZSk7CiAgICAg
ICAgCiAgICB9IGVsc2UgewoJICAgIHJldFZhbCA9IGVuY29kZVVSSUNvbXBvbmVudChzdHJUb0Vu
Y29kZSk7CgkgICAgCiAgICB9CiAgICByZXR1cm4gcmV0VmFsOwp9CgpmdW5jdGlvbiBkZWNvZGVJ
dChzdHJUb0RlY29kZSkgewogICAgaWYgKHR5cGVvZihkZWNvZGVVUklDb21wb25lbnQpICE9ICdm
dW5jdGlvbicpIHsKICAgICAgICByZXRWYWwgPSB1bmVzY2FwZShzdHJUb0VuY29kZSk7CiAgICAg
ICAgCiAgICB9IGVsc2UgewoJICAgIHJldFZhbCA9IGRlY29kZVVSSUNvbXBvbmVudChzdHJUb0Rl
Y29kZSk7CgkgICAgCiAgICB9CiAgICByZXR1cm4gcmV0VmFsOwp9CgpmdW5jdGlvbiBzYXZlQXJ0
aWNsZSh1cmwpIHsKCXZhciBpbnRfd2luZG93TGVmdCA9IChzY3JlZW4ud2lkdGggLSA0MjApIC8g
MjsKCXZhciBpbnRfd2luZG93VG9wID0gKHNjcmVlbi5oZWlnaHQgLSAzNzApIC8gMjsKCXZhciBz
dHJfd2luZG93UHJvcGVydGllcyA9ICcsdG9wPScgKyBpbnRfd2luZG93VG9wICsgJyxsZWZ0PScg
KyBpbnRfd2luZG93TGVmdCA7CgluZXdfd2luZG93ID0gd2luZG93Lm9wZW4odXJsLCJzYXZlIiwi
d2lkdGg9NDIwLGhlaWdodD0zNzAsc2Nyb2xsYmFycz0wLHN0YXR1c2Jhcj0wLHJlc2l6YWJsZT0x
LHRvb2xiYXI9MCxsb2NhdGlvbj0wLG1lbnViYXI9MCIrc3RyX3dpbmRvd1Byb3BlcnRpZXMpOwoJ
bmV3X3dpbmRvdy5mb2N1cygpOwp91AAFABEABwAIADwAPQAUAD5fEDlodHRwOi8vZ3JhcGhpY3M4
Lm55dGltZXMuY29tL2pzL2NvbW1vbi9zY3JlZW4vRHJvcERvd24uanNPEQRHYnBsaXN0MDDUAQID
BAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291
cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QIAsMJiwtMx40NU9QUVJTVFVWV1hZWltc
XV5fYGFiY2doVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMk
MTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgB+AAoAeEAgQAIAGgAeABYAIEAeAABAB0w0n
KCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxA5aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVz
LmNvbS9qcy9jb21tb24vc2NyZWVuL0Ryb3BEb3duLmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFt
ZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7BpW6LBDI0w02Nzg5RFdOUy5rZXlzWk5TLm9iamVjdHOA
Hao6Ozw9Pj9AQUJDgAmACoALgAyADYAOgA+AEIARgBKqRUZHSElKS0xNToATgBSAFYAWgBeAGIAZ
gBqAG4AcVFZhcnldQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRl
bnQtVHlwZVREYXRlXkNvbnRlbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVk
XxAPQWNjZXB0LUVuY29kaW5nVWJ5dGVzVGd6aXBfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xXxAY
YXBwbGljYXRpb24veC1qYXZhc2NyaXB0XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVRT
NTQxXiI1YmQtNDcwNTBhYmUiWmtlZXAtYWxpdmVfEB1UaHUsIDA0IE9jdCAyMDA3IDE1OjQ2OjA2
IEdNVNIuL2Rlo2VmMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQW90i4vaWqj
amsyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABS
AGQAhwCNAKgArwCyALUAuQC9AMAAwwDGAMkAzADPANIA1QDXANkA2wDdAN8A4QDjAOUA5wDpAOsA
7QD0APwBCAEKAQwBDgFKAU8BWAFjAWYBbAF1AX4BgAGHAY8BmgGcAacBqQGrAa0BrwGxAbMBtQG3
AbkBuwHGAcgBygHMAc4B0AHSAdQB1gHYAdoB3wHtAgACBwIUAhkCKAItAjgCRgJYAl4CYwJ8ApcC
twK7AsoC1QL1AvoC/gMUAyEDJAMpAy0DQQAAAAAAAAIBAAAAAAAAAGwAAAAAAAAAAAAAAAAAAANP
TxEFvWZ1bmN0aW9uIERyb3BEb3duKCBkcm9wRG93bklkICl7CglpZiggd2luZG93LmRyb3BEb3du
cyAmJiB3aW5kb3cuZHJvcERvd25zW2Ryb3BEb3duSWRdICl7CQkvLyBhbHJlYWR5IHJlZ2lzdGVy
ZWQKCQlyZXR1cm4gd2luZG93LmRyb3BEb3duc1tkcm9wRG93bklkXTsKCX0gZWxzZSB7CQkJCQkJ
CQkJCQkJCS8vIHVucmVnaXN0ZXJlZAoJCXRoaXMuZWxlbWVudElkID0gZHJvcERvd25JZDsKCQl0
aGlzLm1vdXNlT3ZlciA9IGZhbHNlOwoJCXRoaXMudGltZW91dElEOwoJCQoJCXZhciBkZE9iaiA9
IHRoaXMuZ2V0RWxlbWVudCgpOwoJCi8vCQlpZiggZGRPYmouY2xhc3NOYW1lICE9ICJkcm9wRG93
biIgKSB0aHJvdyBuZXcgRXJyb3IoIHRoaXMuZWxlbWVudElkICsgIiBpcyBub3QgYSB2YWxpZCBE
cm9wRG93bi4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBwcm92aWRlZCBpdCBhIENTUyBjbGFz
cyBvZiAnZHJvcERvd24nLiIgKTsKCQkKCQkvL3JlZ2lzdGVyCgkJaWYoICF3aW5kb3cuZHJvcERv
d25zICkJd2luZG93LmRyb3BEb3ducyA9IG5ldyBPYmplY3QoKTsKCQl3aW5kb3cuZHJvcERvd25z
W3RoaXMuZHJvcERvd25JZF0gPSB0aGlzOwoJfQkJCQkKfQoKRHJvcERvd24ucHJvdG90eXBlLnNo
b3cgPSBmdW5jdGlvbigpewoJZGRPYmogPSB0aGlzLmdldEVsZW1lbnQoKTsKCWRkT2JqLnN0eWxl
LnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CgkKCWRkT2JqLm9ubW91c2VvdXQgPSBmdW5jdGlvbigg
ZXZlbnQgKXsKCQl3aW5kb3cuZHJvcERvd25zW3RoaXMuZWxlbWVudElkXS5tb3VzZU92ZXIgPSBm
YWxzZTsKCQl0aGlzLnRpbWVvdXRJRCA9IHdpbmRvdy5zZXRUaW1lb3V0KCAid2luZG93LmRyb3BE
b3duc1snIiArIHRoaXMuZWxlbWVudElkICsgIiddLmNoZWNrT3ZlcigpOyIgLCA1MDAgICk7CgkJ
Cgl9CgkKCWRkT2JqLm9ubW91c2VvdmVyID0gZnVuY3Rpb24oIGV2ZW50ICl7CgkJd2luZG93LmRy
b3BEb3duc1t0aGlzLmVsZW1lbnRJZF0ubW91c2VPdmVyID0gdHJ1ZTsKCQl3aW5kb3cuY2xlYXJU
aW1lb3V0KHRoaXMudGltZW91dElEKTsKCX0KfQoKRHJvcERvd24ucHJvdG90eXBlLlRpbWVPdXQg
PSBmdW5jdGlvbigpewoJdmFyIGRkT2JqID0gdGhpczsKCXRoaXMudGltZW91dElEID0gd2luZG93
LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCl7ZGRPYmouY2hlY2tPdmVyKCk7fSAsIDUwMCAgKTsKfQoK
RHJvcERvd24ucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbigpewoJdGhpcy5nZXRFbGVtZW50KCku
c3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwp9CgpEcm9wRG93bi5wcm90b3R5cGUuZ2V0RWxl
bWVudCA9IGZ1bmN0aW9uKCl7CglyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIHRoaXMu
ZWxlbWVudElkICk7Cn0KCkRyb3BEb3duLnByb3RvdHlwZS5jaGVja092ZXIgPSBmdW5jdGlvbigp
ewoJaWYoIHRoaXMubW91c2VPdmVyID09IGZhbHNlICkgdGhpcy5oaWRlKCk7Cn0K1AAFABEABwAI
AEAAQQAUAEJfEEhodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2NvbW1vbi9zY3JlZW4v
bW9kaWZ5TmF2aWdhdGlvbkRpc3BsYXkuanNPEQRWYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25U
JHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8Q
D05TS2V5ZWRBcmNoaXZlcq8QIAsMJiwtMx40NU9QUVJTVFVWV1hZWltcXV5fYGFiY2doVSRudWxs
3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0
UiQ3UiQyUiQ5UiQwUiQxgB+AAoAeEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05T
LnJlbGF0aXZlgASAAIADXxBIaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9jb21tb24v
c2NyZWVuL21vZGlmeU5hdmlnYXRpb25EaXNwbGF5Lmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFt
ZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7BpbhehDI0w02Nzg5RFdOUy5rZXlzWk5TLm9iamVjdHOA
Hao6Ozw9Pj9AQUJDgAmACoALgAyADYAOgA+AEIARgBKqRUZHSElKS0xNToATgBSAFYAWgBeAGIAZ
gBqAG4AcVFZhcnldQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRl
bnQtVHlwZVREYXRlXkNvbnRlbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVk
XxAPQWNjZXB0LUVuY29kaW5nVWJ5dGVzVGd6aXBfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xXxAY
YXBwbGljYXRpb24veC1qYXZhc2NyaXB0XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVRT
NTE1XiI1MDItNDcwNTBhYmUiWmtlZXAtYWxpdmVfEB1UaHUsIDA0IE9jdCAyMDA3IDE1OjQ2OjA2
IEdNVNIuL2Rlo2VmMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQUC0i4vaWqj
amsyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABS
AGQAhwCNAKgArwCyALUAuQC9AMAAwwDGAMkAzADPANIA1QDXANkA2wDdAN8A4QDjAOUA5wDpAOsA
7QD0APwBCAEKAQwBDgFZAV4BZwFyAXUBewGEAY0BjwGWAZ4BqQGrAbYBuAG6AbwBvgHAAcIBxAHG
AcgBygHVAdcB2QHbAd0B3wHhAeMB5QHnAekB7gH8Ag8CFgIjAigCNwI8AkcCVQJnAm0CcgKLAqYC
xgLKAtkC5AMEAwkDDQMjAzADMwM4AzwDUAAAAAAAAAIBAAAAAAAAAGwAAAAAAAAAAAAAAAAAAANe
TxEFAmZ1bmN0aW9uIG1vZGlmeU5hdmlnYXRpb25EaXNwbGF5KCl7CglpZihkb2N1bWVudC5jcmVh
dGVFbGVtZW50ICYmIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAibmF2aWdhdGlvbiIpKSB7CQoJ
CXZhciBuYXZEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggIm5hdmlnYXRpb24iICk7CgkJ
dmFyIG5hdkxpc3QgPSBldmFsQ2hpbGROb2RlcyggbmF2RGl2ICwgWyJub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpID09ICd1bCciICwgImNsYXNzTmFtZSA9PSAndGFicyciXSApOwoJCXZhciBzZWxlY3Rl
ZEl0ZW0gPSBldmFsQ2hpbGROb2RlcyAoIG5hdkxpc3QgLCBbImNsYXNzTmFtZSA9PSAnc2VsZWN0
ZWQnIiAsICJub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09ICdsaSciXSApOyBpZiAoIXNlbGVjdGVk
SXRlbSkgcmV0dXJuIGZhbHNlOwoJCXZhciBzdWJOYXZMaXN0ID0gZXZhbENoaWxkTm9kZXMoIHNl
bGVjdGVkSXRlbSAsIFsibm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PSAndWwnIl0gKTsKCQkKCQlp
ZihzdWJOYXZMaXN0KSB7CgkJCgkJCXN1Yk5hdkxpc3QuaWQgPSAic3ViIiArIHNlbGVjdGVkSXRl
bS5pZDsKCgkJCXZhciBzdWJOYXZEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAiRElWIiAp
OwoJCQlzdWJOYXZEaXYuaWQgPSAic3ViTmF2aWdhdGlvbiI7CgkJCW5hdkRpdi5hcHBlbmRDaGls
ZCggc3ViTmF2RGl2ICk7CgkJCXNlbGVjdGVkSXRlbS5yZW1vdmVDaGlsZCggc3ViTmF2TGlzdCAp
OwoKCQkJc3ViTmF2RGl2LmFwcGVuZENoaWxkKCBzdWJOYXZMaXN0ICk7CgkJfQoJfQp9CgoKCmZ1
bmN0aW9uIGV2YWxDaGlsZE5vZGVzKCBwYXJlbnRPYmogLCBldmFsU3RhdGVtZW50QXJyYXkgKXsK
CXZhciBldmFsU3RhdGVtZW50ID0gbmV3IFN0cmluZygpOwoKCXRyeXsKCQlmb3IoIGlFU0E9MCA7
IGlFU0EgPCBldmFsU3RhdGVtZW50QXJyYXkubGVuZ3RoIDsgaUVTQSsrICl7CgkJCWlmKCBpRVNB
ICE9IDAgKSBldmFsU3RhdGVtZW50ICs9ICIgJiYgIjsKCQkJZXZhbFN0YXRlbWVudCArPSAiIHBh
cmVudE9iai5jaGlsZE5vZGVzW2lFQ05dLiIgKyBldmFsU3RhdGVtZW50QXJyYXlbaUVTQV0gKyAi
ICI7CgkJfQoJCQoJCWZvciggaUVDTj0wIDsgaUVDTiA8IHBhcmVudE9iai5jaGlsZE5vZGVzLmxl
bmd0aCA7IGlFQ04rKyApewoJCQlpZiggZXZhbCggZXZhbFN0YXRlbWVudCApICl7CgkJCQlyZXR1
cm4gcGFyZW50T2JqLmNoaWxkTm9kZXNbaUVDTl07CgkJCX0KCQl9CgkJcmV0dXJuIG51bGw7Cgl9
IGNhdGNoKCBlICl7CgkJcmV0dXJuIG51bGw7Cgl9Cn3UAAUAEQAHAAgARABFABQARl8QQWh0dHA6
Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvY29tbW9uL3NjcmVlbi9hbHRDbGlja1RvU2VhcmNo
LmpzTxEEq2JwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3Rz
EgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvECQLDCYs
LTMeNDVTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprb3BVJG51bGzdDQ4PEBESExQVFhcYGRobHB0e
HyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAI4AC
gCIQCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEEFo
dHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2NvbW1vbi9zY3JlZW4vYWx0Q2xpY2tUb1Nl
YXJjaC5qc9IuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+waY
CS0QyNMNNjc4OUZXTlMua2V5c1pOUy5vYmplY3RzgCGsOjs8PT4/QEFCQ0RFgAmACoALgAyADYAO
gA+AEIARgBKAE4AUrEdISUpLTE1OT1BRUoAVgBaAF4AYgBmAGoAbgByAHYAegB+AIFREYXRlXUNh
Y2hlLUNvbnRyb2xdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzXxAQQ29udGVudC1FbmNvZGlu
Z1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNvbnRlbnQtTGVuZ3RoXk50Y29lbnQtTGVuZ3RoVEV0YWda
Q29ubmVjdGlvblRWYXJ5XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVRfEBZwcml2YXRl
LCBtYXgtYWdlPTY1NzgxXxAdVGh1LCAxNiBPY3QgMjAwOCAyMDowNzozOCBHTVRVYnl0ZXNUZ3pp
cF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRUMTEz
N1QyODQyXiJiMWEtNDhmNzlmMGEiWmtlZXAtYWxpdmVfEA9BY2NlcHQtRW5jb2RpbmfSLi9sbaNt
bjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeRELGtIuL3Fyo3JzMl8QEU5TSFRU
UFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIsAkQCsALMA
tgC5AL0AwQDEAMcAygDNANAA0wDWANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPEA+AEAAQwBDgEQ
ARIBVgFbAWQBbwFyAXgBgQGKAYwBkwGbAaYBqAG1AbcBuQG7Ab0BvwHBAcMBxQHHAckBywHNAdoB
3AHeAeAB4gHkAeYB6AHqAewB7gHwAfIB9wIFAhMCIQI0AjsCSAJXAmYCawJ2AnsCmwK0AtQC2gLf
AvgDEwMYAx0DLAM3A0kDTgNSA2gDdQN4A30DgQOVAAAAAAAAAgEAAAAAAAAAdAAAAAAAAAAAAAAA
AAAAA6NPEQsaTllURC5yZXF1aXJlKCJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2Fw
cC9saWIvcHJvdG90eXBlLzEuNi4wLjIvcHJvdG90eXBlLmpzIiwgZnVuY3Rpb24oKXtOWVRELldv
cmRSZWZlcmVuY2UuaW5pdGlhbGl6ZSgpO30pOwoKTllURC5Xb3JkUmVmZXJlbmNlID0gKGZ1bmN0
aW9uKCl7CiAgCiAgdmFyIHNlbGVjdGlvbiwgc2VsZWN0aW9uVGV4dCwgc2VsZWN0aW9uQnV0dG9u
LCBuZXdSYW5nZTsKICAKICBmdW5jdGlvbiBoYW5kbGVDbGljayhldmVudCkgewogICAgaWYgKHNl
bGVjdGlvbkJ1dHRvbil7CiAgICAgIGNsZWFuVXAoKTsKICAgIH0KICAgIAogICAgc2VsZWN0aW9u
ID0gZ2V0U2VsZWN0aW9uKCk7CiAgICBzZWxlY3Rpb25UZXh0ID0gc2VsZWN0aW9uICYmIHNlbGVj
dGlvbi50b1N0cmluZygpOwogICAgaWYgKHNlbGVjdGlvblRleHQpIHsKICAgICAgd2luZG93LnNl
dFRpbWVvdXQoaW5zZXJ0QnV0dG9uLCAwKTsKICAgICAgZXZlbnQuc3RvcCgpOwogICAgfQogIH0K
ICAKICBmdW5jdGlvbiBnZXRTZWxlY3Rpb24oKSB7CiAgICByZXR1cm4gVHJ5LnRoZXNlKAogICAg
ICBmdW5jdGlvbigpIHsgcmV0dXJuIHdpbmRvdy5nZXRTZWxlY3Rpb24oKSB9LAogICAgICBmdW5j
dGlvbigpIHsgcmV0dXJuIGRvY3VtZW50LmdldFNlbGVjdGlvbigpIH0sCiAgICAgIGZ1bmN0aW9u
KCkgeyAKICAgICAgICB2YXIgc2VsZWN0aW9uID0gZG9jdW1lbnQuc2VsZWN0aW9uICYmIGRvY3Vt
ZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpOwogICAgICAgIHNlbGVjdGlvbi50b1N0cmluZyA9
IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy50ZXh0IH07CiAgICAgICAgcmV0dXJuIHNlbGVjdGlv
bjsKICAgICAgfQogICAgKSB8fCBmYWxzZTsKICB9CiAgCiAgZnVuY3Rpb24gaW5zZXJ0QnV0dG9u
KCkgewogICAgCiAgICBzZWxlY3Rpb25CdXR0b24gPSBuZXcgRWxlbWVudCgKICAgICAgICAnc3Bh
bicsIHsKICAgICAgICAgICdjbGFzc05hbWUnOidueXRkX3NlbGVjdGlvbl9idXR0b24nLAogICAg
ICAgICAgJ2lkJzonbnl0ZF9zZWxlY3Rpb25fYnV0dG9uJywKICAgICAgICAgICd0aXRsZSc6J0xv
b2t1cCBXb3JkJywKICAgICAgICAgICdzdHlsZSc6ICdtYXJnaW46LTIwcHggMCAwIC0yMHB4OyBw
b3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZDp1cmwoaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVz
LmNvbS9pbWFnZXMvZ2xvYmFsL3dvcmRfcmVmZXJlbmNlL3JlZl9idWJibGUucG5nKTt3aWR0aDoy
NXB4O2hlaWdodDoyOXB4O2N1cnNvcjpwb2ludGVyO19iYWNrZ3JvdW5kLWltYWdlOiBub25lO2Zp
bHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIo
c3JjPSJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy9nbG9iYWwvd29yZF9yZWZl
cmVuY2UvcmVmX2J1YmJsZS5wbmciLCBzaXppbmdNZXRob2Q9ImltYWdlIik7JwogICAgICAgIH0K
ICAgICkKICAgICAgCiAgICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUpIHsKICAgICAgdmFyIHRt
cCA9IG5ldyBFbGVtZW50KCdkaXYnKTsKICAgICAgdG1wLmFwcGVuZENoaWxkKHNlbGVjdGlvbkJ1
dHRvbik7CiAgICAgIG5ld1JhbmdlID0gc2VsZWN0aW9uLmR1cGxpY2F0ZSgpOwogICAgICBuZXdS
YW5nZS5zZXRFbmRQb2ludCggIlN0YXJ0VG9FbmQiLCBzZWxlY3Rpb24pOwogICAgICBuZXdSYW5n
ZS5wYXN0ZUhUTUwodG1wLmlubmVySFRNTCk7CiAgICAgIHNlbGVjdGlvbkJ1dHRvbiA9ICQoJ255
dGRfc2VsZWN0aW9uX2J1dHRvbicpOwogICAgfQogICAgZWxzZSB7CiAgICAgIHZhciByYW5nZSA9
IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApOwogICAgICBuZXdSYW5nZSA9IGRvY3VtZW50LmNyZWF0
ZVJhbmdlKCk7CiAgICAgIG5ld1JhbmdlLnNldFN0YXJ0KHNlbGVjdGlvbi5mb2N1c05vZGUsIHJh
bmdlLmVuZE9mZnNldCk7CiAgICAgIG5ld1JhbmdlLmluc2VydE5vZGUoc2VsZWN0aW9uQnV0dG9u
KTsKICAgIH0KICAgIAogICAgRWxlbWVudC5vYnNlcnZlKHNlbGVjdGlvbkJ1dHRvbiwgJ21vdXNl
dXAnLCBleHBvcnRTZWxlY3Rpb24sIHRydWUpOwogICAgCiAgfQogIAogIGZ1bmN0aW9uIGNsZWFu
VXAoKSB7CiAgICBzZWxlY3Rpb24gPSBudWxsOwogICAgc2VsZWN0aW9uQnV0dG9uLnN0b3BPYnNl
cnZpbmcoJ21vdXNldXAnLCBleHBvcnRTZWxlY3Rpb24pOwogICAgbmV3UmFuZ2UgJiYgbmV3UmFu
Z2UucGFzdGVIVE1MICYmIG5ld1JhbmdlLnBhc3RlSFRNTCgnJyk7CiAgICBuZXdSYW5nZSA9IG51
bGw7CiAgICBzZWxlY3Rpb25CdXR0b24ucmVtb3ZlKCk7CiAgICBzZWxlY3Rpb25CdXR0b24gPSBu
dWxsOwogICAgc2VsZWN0aW9uVGV4dCA9ICcnOwogIH0KICAKICBmdW5jdGlvbiBleHBvcnRTZWxl
Y3Rpb24oZXZlbnQpIHsKICAgIHZhciB1cmwgPSAnaHR0cDovL3F1ZXJ5Lm55dGltZXMuY29tL3Nl
YXJjaC9xdWVyeT9zcmNoc3Q9cmVmJnF1ZXJ5PScgKyBlbmNvZGVVUklDb21wb25lbnQoc2VsZWN0
aW9uVGV4dCkgKyAnJmZ3PTMnOwogICAgdmFyIG5ld3dpbiA9IHdpbmRvdy5vcGVuKHVybCwnYW5z
d2Vyc2RvdGNvbScsJ2hlaWdodD00NTAsd2lkdGg9ODIwLGxvY2F0aW9uPWZhbHNlLG1lbnViYXI9
ZmFsc2UsdG9vbGJhcj1mYWxzZSxzdGF0dXM9ZmFsc2UscmVzaXphYmxlLCBzY3JvbGxiYXJzJyk7
CiAgICBpZiAobmV3d2luKSBuZXd3aW4uZm9jdXMoKTsKICAgIGV2ZW50LnN0b3AoKTsKICB9CiAg
CiAgcmV0dXJuIHsKICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgICBkb2N1bWVudC5v
YnNlcnZlKCdtb3VzZXVwJywgaGFuZGxlQ2xpY2ssIGZhbHNlKTsKICAgIH0KICB9OwogIAp9KSgp
O9QABQARAAcACABIAEkAFABKXxBGaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAv
bGliL3Byb3RvdHlwZS8xLjYuMC4yL3Byb3RvdHlwZS5qc08RBJRicGxpc3QwMNQBAgMEBQYJClgk
dmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNw
b25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAiCwwmLC0zHjQ1UVJTVFVWV1hZWltcXV5fYGFiY2Rl
ZmdrbFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQx
MVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAhgAKAIBAIEACABoAHgAWACBAHgAAQAdMNJygpJCtX
TlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QRmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20v
anMvYXBwL2xpYi9wcm90b3R5cGUvMS42LjAuMi9wcm90b3R5cGUuanPSLi8wMVgkY2xhc3Nlc1ok
Y2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsGmhXbEMjTDTY3ODlFV05TLmtleXNaTlMu
b2JqZWN0c4Afqzo7PD0+P0BBQkNEgAmACoALgAyADYAOgA+AEIARgBKAE6tGR0hJSktMTU5PUIAU
gBWAFoAXgBiAGYAagBuAHIAdgB5dTGFzdC1Nb2RpZmllZF1DYWNoZS1Db250cm9sXUFjY2VwdC1S
YW5nZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVURGF0ZV5Db250ZW50
LUxlbmd0aFRFdGFnWkNvbm5lY3Rpb25UVmFyeV8QHVRodSwgMjEgRmViIDIwMDggMjA6NDU6MTQg
R01UXxAXcHJpdmF0ZSwgbWF4LWFnZT0yNjY1MzdVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNl
cnZlci82LjFfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRfEB1Nb24sIDEwIE5vdiAyMDA4IDIz
OjM4OjQzIEdNVFUzMjkwMl8QECIxZWNhZi00N2JkZTJkYSJaa2VlcC1hbGl2ZV8QD0FjY2VwdC1F
bmNvZGluZ9IuL2hpo2lqMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EgAB7K/S
Li9tbqNubzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcA
OgBQAFIAZACJAI8AqgCxALQAtwC7AL8AwgDFAMgAywDOANEA1ADXANkA2wDdAN8A4QDjAOUA5wDp
AOsA7QDvAPYA/gEKAQwBDgEQAVkBXgFnAXIBdQF7AYQBjQGPAZYBngGpAasBtwG5AbsBvQG/AcEB
wwHFAccByQHLAc0B2QHbAd0B3wHhAeMB5QHnAekB6wHtAe8B/QILAhkCLAIzAkACRQJUAlkCZAJp
AokCowKpAq4CxwLiAwIDCAMbAyYDOAM9A0EDVwNkA2kDbgNyA4YAAAAAAAACAQAAAAAAAABwAAAA
AAAAAAAAAAAAAAADlE8SAAHsry8qICBQcm90b3R5cGUgSmF2YVNjcmlwdCBmcmFtZXdvcmssIHZl
cnNpb24gMS42LjAuMgogKiAgKGMpIDIwMDUtMjAwOCBTYW0gU3RlcGhlbnNvbgogKgogKiAgUHJv
dG90eXBlIGlzIGZyZWVseSBkaXN0cmlidXRhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBhbiBNSVQt
c3R5bGUgbGljZW5zZS4KICogIEZvciBkZXRhaWxzLCBzZWUgdGhlIFByb3RvdHlwZSB3ZWIgc2l0
ZTogaHR0cDovL3d3dy5wcm90b3R5cGVqcy5vcmcvCiAqCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoK
dmFyIFByb3RvdHlwZSA9IHsKICBWZXJzaW9uOiAnMS42LjAuMicsCgogIEJyb3dzZXI6IHsKICAg
IElFOiAgICAgISEod2luZG93LmF0dGFjaEV2ZW50ICYmICF3aW5kb3cub3BlcmEpLAogICAgT3Bl
cmE6ICAhIXdpbmRvdy5vcGVyYSwKICAgIFdlYktpdDogbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRl
eE9mKCdBcHBsZVdlYktpdC8nKSA+IC0xLAogICAgR2Vja286ICBuYXZpZ2F0b3IudXNlckFnZW50
LmluZGV4T2YoJ0dlY2tvJykgPiAtMSAmJiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0tI
VE1MJykgPT0gLTEsCiAgICBNb2JpbGVTYWZhcmk6ICEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRj
aCgvQXBwbGUuKk1vYmlsZS4qU2FmYXJpLykKICB9LAoKICBCcm93c2VyRmVhdHVyZXM6IHsKICAg
IFhQYXRoOiAhIWRvY3VtZW50LmV2YWx1YXRlLAogICAgRWxlbWVudEV4dGVuc2lvbnM6ICEhd2lu
ZG93LkhUTUxFbGVtZW50LAogICAgU3BlY2lmaWNFbGVtZW50RXh0ZW5zaW9uczoKICAgICAgZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykuX19wcm90b19fICYmCiAgICAgIGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpLl9fcHJvdG9fXyAhPT0KICAgICAgICBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdmb3JtJykuX19wcm90b19fCiAgfSwKCiAgU2NyaXB0RnJhZ21lbnQ6ICc8c2NyaXB0
W14+XSo+KFtcXFNcXHNdKj8pPFwvc2NyaXB0PicsCiAgSlNPTkZpbHRlcjogL15cL1wqLXNlY3Vy
ZS0oW1xzXFNdKilcKlwvXHMqJC8sCgogIGVtcHR5RnVuY3Rpb246IGZ1bmN0aW9uKCkgeyB9LAog
IEs6IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHggfQp9OwoKaWYgKFByb3RvdHlwZS5Ccm93c2VyLk1v
YmlsZVNhZmFyaSkKICBQcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLlNwZWNpZmljRWxlbWVudEV4
dGVuc2lvbnMgPSBmYWxzZTsKCgovKiBCYXNlZCBvbiBBbGV4IEFybmVsbCdzIGluaGVyaXRhbmNl
IGltcGxlbWVudGF0aW9uLiAqLwp2YXIgQ2xhc3MgPSB7CiAgY3JlYXRlOiBmdW5jdGlvbigpIHsK
ICAgIHZhciBwYXJlbnQgPSBudWxsLCBwcm9wZXJ0aWVzID0gJEEoYXJndW1lbnRzKTsKICAgIGlm
IChPYmplY3QuaXNGdW5jdGlvbihwcm9wZXJ0aWVzWzBdKSkKICAgICAgcGFyZW50ID0gcHJvcGVy
dGllcy5zaGlmdCgpOwoKICAgIGZ1bmN0aW9uIGtsYXNzKCkgewogICAgICB0aGlzLmluaXRpYWxp
emUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgIH0KCiAgICBPYmplY3QuZXh0ZW5kKGtsYXNz
LCBDbGFzcy5NZXRob2RzKTsKICAgIGtsYXNzLnN1cGVyY2xhc3MgPSBwYXJlbnQ7CiAgICBrbGFz
cy5zdWJjbGFzc2VzID0gW107CgogICAgaWYgKHBhcmVudCkgewogICAgICB2YXIgc3ViY2xhc3Mg
PSBmdW5jdGlvbigpIHsgfTsKICAgICAgc3ViY2xhc3MucHJvdG90eXBlID0gcGFyZW50LnByb3Rv
dHlwZTsKICAgICAga2xhc3MucHJvdG90eXBlID0gbmV3IHN1YmNsYXNzOwogICAgICBwYXJlbnQu
c3ViY2xhc3Nlcy5wdXNoKGtsYXNzKTsKICAgIH0KCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBy
b3BlcnRpZXMubGVuZ3RoOyBpKyspCiAgICAgIGtsYXNzLmFkZE1ldGhvZHMocHJvcGVydGllc1tp
XSk7CgogICAgaWYgKCFrbGFzcy5wcm90b3R5cGUuaW5pdGlhbGl6ZSkKICAgICAga2xhc3MucHJv
dG90eXBlLmluaXRpYWxpemUgPSBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbjsKCiAgICBrbGFzcy5w
cm90b3R5cGUuY29uc3RydWN0b3IgPSBrbGFzczsKCiAgICByZXR1cm4ga2xhc3M7CiAgfQp9OwoK
Q2xhc3MuTWV0aG9kcyA9IHsKICBhZGRNZXRob2RzOiBmdW5jdGlvbihzb3VyY2UpIHsKICAgIHZh
ciBhbmNlc3RvciAgID0gdGhpcy5zdXBlcmNsYXNzICYmIHRoaXMuc3VwZXJjbGFzcy5wcm90b3R5
cGU7CiAgICB2YXIgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7CgogICAgaWYgKCFP
YmplY3Qua2V5cyh7IHRvU3RyaW5nOiB0cnVlIH0pLmxlbmd0aCkKICAgICAgcHJvcGVydGllcy5w
dXNoKCJ0b1N0cmluZyIsICJ2YWx1ZU9mIik7CgogICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9
IHByb3BlcnRpZXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIHByb3BlcnR5
ID0gcHJvcGVydGllc1tpXSwgdmFsdWUgPSBzb3VyY2VbcHJvcGVydHldOwogICAgICBpZiAoYW5j
ZXN0b3IgJiYgT2JqZWN0LmlzRnVuY3Rpb24odmFsdWUpICYmCiAgICAgICAgICB2YWx1ZS5hcmd1
bWVudE5hbWVzKCkuZmlyc3QoKSA9PSAiJHN1cGVyIikgewogICAgICAgIHZhciBtZXRob2QgPSB2
YWx1ZSwgdmFsdWUgPSBPYmplY3QuZXh0ZW5kKChmdW5jdGlvbihtKSB7CiAgICAgICAgICByZXR1
cm4gZnVuY3Rpb24oKSB7IHJldHVybiBhbmNlc3RvclttXS5hcHBseSh0aGlzLCBhcmd1bWVudHMp
IH07CiAgICAgICAgfSkocHJvcGVydHkpLndyYXAobWV0aG9kKSwgewogICAgICAgICAgdmFsdWVP
ZjogIGZ1bmN0aW9uKCkgeyByZXR1cm4gbWV0aG9kIH0sCiAgICAgICAgICB0b1N0cmluZzogZnVu
Y3Rpb24oKSB7IHJldHVybiBtZXRob2QudG9TdHJpbmcoKSB9CiAgICAgICAgfSk7CiAgICAgIH0K
ICAgICAgdGhpcy5wcm90b3R5cGVbcHJvcGVydHldID0gdmFsdWU7CiAgICB9CgogICAgcmV0dXJu
IHRoaXM7CiAgfQp9OwoKdmFyIEFic3RyYWN0ID0geyB9OwoKT2JqZWN0LmV4dGVuZCA9IGZ1bmN0
aW9uKGRlc3RpbmF0aW9uLCBzb3VyY2UpIHsKICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBzb3VyY2Up
CiAgICBkZXN0aW5hdGlvbltwcm9wZXJ0eV0gPSBzb3VyY2VbcHJvcGVydHldOwogIHJldHVybiBk
ZXN0aW5hdGlvbjsKfTsKCk9iamVjdC5leHRlbmQoT2JqZWN0LCB7CiAgaW5zcGVjdDogZnVuY3Rp
b24ob2JqZWN0KSB7CiAgICB0cnkgewogICAgICBpZiAoT2JqZWN0LmlzVW5kZWZpbmVkKG9iamVj
dCkpIHJldHVybiAndW5kZWZpbmVkJzsKICAgICAgaWYgKG9iamVjdCA9PT0gbnVsbCkgcmV0dXJu
ICdudWxsJzsKICAgICAgcmV0dXJuIG9iamVjdC5pbnNwZWN0ID8gb2JqZWN0Lmluc3BlY3QoKSA6
IFN0cmluZyhvYmplY3QpOwogICAgfSBjYXRjaCAoZSkgewogICAgICBpZiAoZSBpbnN0YW5jZW9m
IFJhbmdlRXJyb3IpIHJldHVybiAnLi4uJzsKICAgICAgdGhyb3cgZTsKICAgIH0KICB9LAoKICB0
b0pTT046IGZ1bmN0aW9uKG9iamVjdCkgewogICAgdmFyIHR5cGUgPSB0eXBlb2Ygb2JqZWN0Owog
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6CiAgICAgIGNhc2UgJ2Z1
bmN0aW9uJzoKICAgICAgY2FzZSAndW5rbm93bic6IHJldHVybjsKICAgICAgY2FzZSAnYm9vbGVh
bic6IHJldHVybiBvYmplY3QudG9TdHJpbmcoKTsKICAgIH0KCiAgICBpZiAob2JqZWN0ID09PSBu
dWxsKSByZXR1cm4gJ251bGwnOwogICAgaWYgKG9iamVjdC50b0pTT04pIHJldHVybiBvYmplY3Qu
dG9KU09OKCk7CiAgICBpZiAoT2JqZWN0LmlzRWxlbWVudChvYmplY3QpKSByZXR1cm47CgogICAg
dmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIHByb3BlcnR5IGluIG9iamVjdCkgewogICAg
ICB2YXIgdmFsdWUgPSBPYmplY3QudG9KU09OKG9iamVjdFtwcm9wZXJ0eV0pOwogICAgICBpZiAo
IU9iamVjdC5pc1VuZGVmaW5lZCh2YWx1ZSkpCiAgICAgICAgcmVzdWx0cy5wdXNoKHByb3BlcnR5
LnRvSlNPTigpICsgJzogJyArIHZhbHVlKTsKICAgIH0KCiAgICByZXR1cm4gJ3snICsgcmVzdWx0
cy5qb2luKCcsICcpICsgJ30nOwogIH0sCgogIHRvUXVlcnlTdHJpbmc6IGZ1bmN0aW9uKG9iamVj
dCkgewogICAgcmV0dXJuICRIKG9iamVjdCkudG9RdWVyeVN0cmluZygpOwogIH0sCgogIHRvSFRN
TDogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICByZXR1cm4gb2JqZWN0ICYmIG9iamVjdC50b0hUTUwg
PyBvYmplY3QudG9IVE1MKCkgOiBTdHJpbmcuaW50ZXJwcmV0KG9iamVjdCk7CiAgfSwKCiAga2V5
czogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICB2YXIga2V5cyA9IFtdOwogICAgZm9yICh2YXIgcHJv
cGVydHkgaW4gb2JqZWN0KQogICAgICBrZXlzLnB1c2gocHJvcGVydHkpOwogICAgcmV0dXJuIGtl
eXM7CiAgfSwKCiAgdmFsdWVzOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHZhciB2YWx1ZXMgPSBb
XTsKICAgIGZvciAodmFyIHByb3BlcnR5IGluIG9iamVjdCkKICAgICAgdmFsdWVzLnB1c2gob2Jq
ZWN0W3Byb3BlcnR5XSk7CiAgICByZXR1cm4gdmFsdWVzOwogIH0sCgogIGNsb25lOiBmdW5jdGlv
bihvYmplY3QpIHsKICAgIHJldHVybiBPYmplY3QuZXh0ZW5kKHsgfSwgb2JqZWN0KTsKICB9LAoK
ICBpc0VsZW1lbnQ6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0dXJuIG9iamVjdCAmJiBvYmpl
Y3Qubm9kZVR5cGUgPT0gMTsKICB9LAoKICBpc0FycmF5OiBmdW5jdGlvbihvYmplY3QpIHsKICAg
IHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiB0eXBlb2Ygb2JqZWN0ID09ICJvYmplY3QiICYmCiAg
ICAgICdzcGxpY2UnIGluIG9iamVjdCAmJiAnam9pbicgaW4gb2JqZWN0OwogIH0sCgogIGlzSGFz
aDogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICByZXR1cm4gb2JqZWN0IGluc3RhbmNlb2YgSGFzaDsK
ICB9LAoKICBpc0Z1bmN0aW9uOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHJldHVybiB0eXBlb2Yg
b2JqZWN0ID09ICJmdW5jdGlvbiI7CiAgfSwKCiAgaXNTdHJpbmc6IGZ1bmN0aW9uKG9iamVjdCkg
ewogICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT0gInN0cmluZyI7CiAgfSwKCiAgaXNOdW1iZXI6
IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT0gIm51bWJlciI7
CiAgfSwKCiAgaXNVbmRlZmluZWQ6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0dXJuIHR5cGVv
ZiBvYmplY3QgPT0gInVuZGVmaW5lZCI7CiAgfQp9KTsKCk9iamVjdC5leHRlbmQoRnVuY3Rpb24u
cHJvdG90eXBlLCB7CiAgYXJndW1lbnROYW1lczogZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZXMg
PSB0aGlzLnRvU3RyaW5nKCkubWF0Y2goL15bXHNcKF0qZnVuY3Rpb25bXihdKlwoKC4qPylcKS8p
WzFdLnNwbGl0KCIsIikuaW52b2tlKCJzdHJpcCIpOwogICAgcmV0dXJuIG5hbWVzLmxlbmd0aCA9
PSAxICYmICFuYW1lc1swXSA/IFtdIDogbmFtZXM7CiAgfSwKCiAgYmluZDogZnVuY3Rpb24oKSB7
CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIgJiYgT2JqZWN0LmlzVW5kZWZpbmVkKGFyZ3Vt
ZW50c1swXSkpIHJldHVybiB0aGlzOwogICAgdmFyIF9fbWV0aG9kID0gdGhpcywgYXJncyA9ICRB
KGFyZ3VtZW50cyksIG9iamVjdCA9IGFyZ3Muc2hpZnQoKTsKICAgIHJldHVybiBmdW5jdGlvbigp
IHsKICAgICAgcmV0dXJuIF9fbWV0aG9kLmFwcGx5KG9iamVjdCwgYXJncy5jb25jYXQoJEEoYXJn
dW1lbnRzKSkpOwogICAgfQogIH0sCgogIGJpbmRBc0V2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKCkg
ewogICAgdmFyIF9fbWV0aG9kID0gdGhpcywgYXJncyA9ICRBKGFyZ3VtZW50cyksIG9iamVjdCA9
IGFyZ3Muc2hpZnQoKTsKICAgIHJldHVybiBmdW5jdGlvbihldmVudCkgewogICAgICByZXR1cm4g
X19tZXRob2QuYXBwbHkob2JqZWN0LCBbZXZlbnQgfHwgd2luZG93LmV2ZW50XS5jb25jYXQoYXJn
cykpOwogICAgfQogIH0sCgogIGN1cnJ5OiBmdW5jdGlvbigpIHsKICAgIGlmICghYXJndW1lbnRz
Lmxlbmd0aCkgcmV0dXJuIHRoaXM7CiAgICB2YXIgX19tZXRob2QgPSB0aGlzLCBhcmdzID0gJEEo
YXJndW1lbnRzKTsKICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIF9fbWV0aG9k
LmFwcGx5KHRoaXMsIGFyZ3MuY29uY2F0KCRBKGFyZ3VtZW50cykpKTsKICAgIH0KICB9LAoKICBk
ZWxheTogZnVuY3Rpb24oKSB7CiAgICB2YXIgX19tZXRob2QgPSB0aGlzLCBhcmdzID0gJEEoYXJn
dW1lbnRzKSwgdGltZW91dCA9IGFyZ3Muc2hpZnQoKSAqIDEwMDA7CiAgICByZXR1cm4gd2luZG93
LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBfX21ldGhvZC5hcHBseShfX21l
dGhvZCwgYXJncyk7CiAgICB9LCB0aW1lb3V0KTsKICB9LAoKICB3cmFwOiBmdW5jdGlvbih3cmFw
cGVyKSB7CiAgICB2YXIgX19tZXRob2QgPSB0aGlzOwogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewog
ICAgICByZXR1cm4gd3JhcHBlci5hcHBseSh0aGlzLCBbX19tZXRob2QuYmluZCh0aGlzKV0uY29u
Y2F0KCRBKGFyZ3VtZW50cykpKTsKICAgIH0KICB9LAoKICBtZXRob2RpemU6IGZ1bmN0aW9uKCkg
ewogICAgaWYgKHRoaXMuX21ldGhvZGl6ZWQpIHJldHVybiB0aGlzLl9tZXRob2RpemVkOwogICAg
dmFyIF9fbWV0aG9kID0gdGhpczsKICAgIHJldHVybiB0aGlzLl9tZXRob2RpemVkID0gZnVuY3Rp
b24oKSB7CiAgICAgIHJldHVybiBfX21ldGhvZC5hcHBseShudWxsLCBbdGhpc10uY29uY2F0KCRB
KGFyZ3VtZW50cykpKTsKICAgIH07CiAgfQp9KTsKCkZ1bmN0aW9uLnByb3RvdHlwZS5kZWZlciA9
IEZ1bmN0aW9uLnByb3RvdHlwZS5kZWxheS5jdXJyeSgwLjAxKTsKCkRhdGUucHJvdG90eXBlLnRv
SlNPTiA9IGZ1bmN0aW9uKCkgewogIHJldHVybiAnIicgKyB0aGlzLmdldFVUQ0Z1bGxZZWFyKCkg
KyAnLScgKwogICAgKHRoaXMuZ2V0VVRDTW9udGgoKSArIDEpLnRvUGFkZGVkU3RyaW5nKDIpICsg
Jy0nICsKICAgIHRoaXMuZ2V0VVRDRGF0ZSgpLnRvUGFkZGVkU3RyaW5nKDIpICsgJ1QnICsKICAg
IHRoaXMuZ2V0VVRDSG91cnMoKS50b1BhZGRlZFN0cmluZygyKSArICc6JyArCiAgICB0aGlzLmdl
dFVUQ01pbnV0ZXMoKS50b1BhZGRlZFN0cmluZygyKSArICc6JyArCiAgICB0aGlzLmdldFVUQ1Nl
Y29uZHMoKS50b1BhZGRlZFN0cmluZygyKSArICdaIic7Cn07Cgp2YXIgVHJ5ID0gewogIHRoZXNl
OiBmdW5jdGlvbigpIHsKICAgIHZhciByZXR1cm5WYWx1ZTsKCiAgICBmb3IgKHZhciBpID0gMCwg
bGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBs
YW1iZGEgPSBhcmd1bWVudHNbaV07CiAgICAgIHRyeSB7CiAgICAgICAgcmV0dXJuVmFsdWUgPSBs
YW1iZGEoKTsKICAgICAgICBicmVhazsKICAgICAgfSBjYXRjaCAoZSkgeyB9CiAgICB9CgogICAg
cmV0dXJuIHJldHVyblZhbHVlOwogIH0KfTsKClJlZ0V4cC5wcm90b3R5cGUubWF0Y2ggPSBSZWdF
eHAucHJvdG90eXBlLnRlc3Q7CgpSZWdFeHAuZXNjYXBlID0gZnVuY3Rpb24oc3RyKSB7CiAgcmV0
dXJuIFN0cmluZyhzdHIpLnJlcGxhY2UoLyhbLiorP149IToke30oKXxbXF1cL1xcXSkvZywgJ1xc
JDEnKTsKfTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFyIFBlcmlvZGljYWxFeGVjdXRlciA9
IENsYXNzLmNyZWF0ZSh7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oY2FsbGJhY2ssIGZyZXF1ZW5j
eSkgewogICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrOwogICAgdGhpcy5mcmVxdWVuY3kgPSBm
cmVxdWVuY3k7CiAgICB0aGlzLmN1cnJlbnRseUV4ZWN1dGluZyA9IGZhbHNlOwoKICAgIHRoaXMu
cmVnaXN0ZXJDYWxsYmFjaygpOwogIH0sCgogIHJlZ2lzdGVyQ2FsbGJhY2s6IGZ1bmN0aW9uKCkg
ewogICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKHRoaXMub25UaW1lckV2ZW50LmJpbmQodGhp
cyksIHRoaXMuZnJlcXVlbmN5ICogMTAwMCk7CiAgfSwKCiAgZXhlY3V0ZTogZnVuY3Rpb24oKSB7
CiAgICB0aGlzLmNhbGxiYWNrKHRoaXMpOwogIH0sCgogIHN0b3A6IGZ1bmN0aW9uKCkgewogICAg
aWYgKCF0aGlzLnRpbWVyKSByZXR1cm47CiAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpOwog
ICAgdGhpcy50aW1lciA9IG51bGw7CiAgfSwKCiAgb25UaW1lckV2ZW50OiBmdW5jdGlvbigpIHsK
ICAgIGlmICghdGhpcy5jdXJyZW50bHlFeGVjdXRpbmcpIHsKICAgICAgdHJ5IHsKICAgICAgICB0
aGlzLmN1cnJlbnRseUV4ZWN1dGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5leGVjdXRlKCk7CiAg
ICAgIH0gZmluYWxseSB7CiAgICAgICAgdGhpcy5jdXJyZW50bHlFeGVjdXRpbmcgPSBmYWxzZTsK
ICAgICAgfQogICAgfQogIH0KfSk7Ck9iamVjdC5leHRlbmQoU3RyaW5nLCB7CiAgaW50ZXJwcmV0
OiBmdW5jdGlvbih2YWx1ZSkgewogICAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6IFN0cmlu
Zyh2YWx1ZSk7CiAgfSwKICBzcGVjaWFsQ2hhcjogewogICAgJ1xiJzogJ1xcYicsCiAgICAnXHQn
OiAnXFx0JywKICAgICdcbic6ICdcXG4nLAogICAgJ1xmJzogJ1xcZicsCiAgICAnXHInOiAnXFxy
JywKICAgICdcXCc6ICdcXFxcJwogIH0KfSk7CgpPYmplY3QuZXh0ZW5kKFN0cmluZy5wcm90b3R5
cGUsIHsKICBnc3ViOiBmdW5jdGlvbihwYXR0ZXJuLCByZXBsYWNlbWVudCkgewogICAgdmFyIHJl
c3VsdCA9ICcnLCBzb3VyY2UgPSB0aGlzLCBtYXRjaDsKICAgIHJlcGxhY2VtZW50ID0gYXJndW1l
bnRzLmNhbGxlZS5wcmVwYXJlUmVwbGFjZW1lbnQocmVwbGFjZW1lbnQpOwoKICAgIHdoaWxlIChz
b3VyY2UubGVuZ3RoID4gMCkgewogICAgICBpZiAobWF0Y2ggPSBzb3VyY2UubWF0Y2gocGF0dGVy
bikpIHsKICAgICAgICByZXN1bHQgKz0gc291cmNlLnNsaWNlKDAsIG1hdGNoLmluZGV4KTsKICAg
ICAgICByZXN1bHQgKz0gU3RyaW5nLmludGVycHJldChyZXBsYWNlbWVudChtYXRjaCkpOwogICAg
ICAgIHNvdXJjZSAgPSBzb3VyY2Uuc2xpY2UobWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgp
OwogICAgICB9IGVsc2UgewogICAgICAgIHJlc3VsdCArPSBzb3VyY2UsIHNvdXJjZSA9ICcnOwog
ICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIHN1YjogZnVuY3Rpb24ocGF0
dGVybiwgcmVwbGFjZW1lbnQsIGNvdW50KSB7CiAgICByZXBsYWNlbWVudCA9IHRoaXMuZ3N1Yi5w
cmVwYXJlUmVwbGFjZW1lbnQocmVwbGFjZW1lbnQpOwogICAgY291bnQgPSBPYmplY3QuaXNVbmRl
ZmluZWQoY291bnQpID8gMSA6IGNvdW50OwoKICAgIHJldHVybiB0aGlzLmdzdWIocGF0dGVybiwg
ZnVuY3Rpb24obWF0Y2gpIHsKICAgICAgaWYgKC0tY291bnQgPCAwKSByZXR1cm4gbWF0Y2hbMF07
CiAgICAgIHJldHVybiByZXBsYWNlbWVudChtYXRjaCk7CiAgICB9KTsKICB9LAoKICBzY2FuOiBm
dW5jdGlvbihwYXR0ZXJuLCBpdGVyYXRvcikgewogICAgdGhpcy5nc3ViKHBhdHRlcm4sIGl0ZXJh
dG9yKTsKICAgIHJldHVybiBTdHJpbmcodGhpcyk7CiAgfSwKCiAgdHJ1bmNhdGU6IGZ1bmN0aW9u
KGxlbmd0aCwgdHJ1bmNhdGlvbikgewogICAgbGVuZ3RoID0gbGVuZ3RoIHx8IDMwOwogICAgdHJ1
bmNhdGlvbiA9IE9iamVjdC5pc1VuZGVmaW5lZCh0cnVuY2F0aW9uKSA/ICcuLi4nIDogdHJ1bmNh
dGlvbjsKICAgIHJldHVybiB0aGlzLmxlbmd0aCA+IGxlbmd0aCA/CiAgICAgIHRoaXMuc2xpY2Uo
MCwgbGVuZ3RoIC0gdHJ1bmNhdGlvbi5sZW5ndGgpICsgdHJ1bmNhdGlvbiA6IFN0cmluZyh0aGlz
KTsKICB9LAoKICBzdHJpcDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC9e
XHMrLywgJycpLnJlcGxhY2UoL1xzKyQvLCAnJyk7CiAgfSwKCiAgc3RyaXBUYWdzOiBmdW5jdGlv
bigpIHsKICAgIHJldHVybiB0aGlzLnJlcGxhY2UoLzxcLz9bXj5dKz4vZ2ksICcnKTsKICB9LAoK
ICBzdHJpcFNjcmlwdHM6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMucmVwbGFjZShuZXcg
UmVnRXhwKFByb3RvdHlwZS5TY3JpcHRGcmFnbWVudCwgJ2ltZycpLCAnJyk7CiAgfSwKCiAgZXh0
cmFjdFNjcmlwdHM6IGZ1bmN0aW9uKCkgewogICAgdmFyIG1hdGNoQWxsID0gbmV3IFJlZ0V4cChQ
cm90b3R5cGUuU2NyaXB0RnJhZ21lbnQsICdpbWcnKTsKICAgIHZhciBtYXRjaE9uZSA9IG5ldyBS
ZWdFeHAoUHJvdG90eXBlLlNjcmlwdEZyYWdtZW50LCAnaW0nKTsKICAgIHJldHVybiAodGhpcy5t
YXRjaChtYXRjaEFsbCkgfHwgW10pLm1hcChmdW5jdGlvbihzY3JpcHRUYWcpIHsKICAgICAgcmV0
dXJuIChzY3JpcHRUYWcubWF0Y2gobWF0Y2hPbmUpIHx8IFsnJywgJyddKVsxXTsKICAgIH0pOwog
IH0sCgogIGV2YWxTY3JpcHRzOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmV4dHJhY3RT
Y3JpcHRzKCkubWFwKGZ1bmN0aW9uKHNjcmlwdCkgeyByZXR1cm4gZXZhbChzY3JpcHQpIH0pOwog
IH0sCgogIGVzY2FwZUhUTUw6IGZ1bmN0aW9uKCkgewogICAgdmFyIHNlbGYgPSBhcmd1bWVudHMu
Y2FsbGVlOwogICAgc2VsZi50ZXh0LmRhdGEgPSB0aGlzOwogICAgcmV0dXJuIHNlbGYuZGl2Lmlu
bmVySFRNTDsKICB9LAoKICB1bmVzY2FwZUhUTUw6IGZ1bmN0aW9uKCkgewogICAgdmFyIGRpdiA9
IG5ldyBFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5pbm5lckhUTUwgPSB0aGlzLnN0cmlwVGFncygp
OwogICAgcmV0dXJuIGRpdi5jaGlsZE5vZGVzWzBdID8gKGRpdi5jaGlsZE5vZGVzLmxlbmd0aCA+
IDEgPwogICAgICAkQShkaXYuY2hpbGROb2RlcykuaW5qZWN0KCcnLCBmdW5jdGlvbihtZW1vLCBu
b2RlKSB7IHJldHVybiBtZW1vK25vZGUubm9kZVZhbHVlIH0pIDoKICAgICAgZGl2LmNoaWxkTm9k
ZXNbMF0ubm9kZVZhbHVlKSA6ICcnOwogIH0sCgogIHRvUXVlcnlQYXJhbXM6IGZ1bmN0aW9uKHNl
cGFyYXRvcikgewogICAgdmFyIG1hdGNoID0gdGhpcy5zdHJpcCgpLm1hdGNoKC8oW14/I10qKSgj
LiopPyQvKTsKICAgIGlmICghbWF0Y2gpIHJldHVybiB7IH07CgogICAgcmV0dXJuIG1hdGNoWzFd
LnNwbGl0KHNlcGFyYXRvciB8fCAnJicpLmluamVjdCh7IH0sIGZ1bmN0aW9uKGhhc2gsIHBhaXIp
IHsKICAgICAgaWYgKChwYWlyID0gcGFpci5zcGxpdCgnPScpKVswXSkgewogICAgICAgIHZhciBr
ZXkgPSBkZWNvZGVVUklDb21wb25lbnQocGFpci5zaGlmdCgpKTsKICAgICAgICB2YXIgdmFsdWUg
PSBwYWlyLmxlbmd0aCA+IDEgPyBwYWlyLmpvaW4oJz0nKSA6IHBhaXJbMF07CiAgICAgICAgaWYg
KHZhbHVlICE9IHVuZGVmaW5lZCkgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpOwoK
ICAgICAgICBpZiAoa2V5IGluIGhhc2gpIHsKICAgICAgICAgIGlmICghT2JqZWN0LmlzQXJyYXko
aGFzaFtrZXldKSkgaGFzaFtrZXldID0gW2hhc2hba2V5XV07CiAgICAgICAgICBoYXNoW2tleV0u
cHVzaCh2YWx1ZSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaGFzaFtrZXldID0gdmFsdWU7CiAg
ICAgIH0KICAgICAgcmV0dXJuIGhhc2g7CiAgICB9KTsKICB9LAoKICB0b0FycmF5OiBmdW5jdGlv
bigpIHsKICAgIHJldHVybiB0aGlzLnNwbGl0KCcnKTsKICB9LAoKICBzdWNjOiBmdW5jdGlvbigp
IHsKICAgIHJldHVybiB0aGlzLnNsaWNlKDAsIHRoaXMubGVuZ3RoIC0gMSkgKwogICAgICBTdHJp
bmcuZnJvbUNoYXJDb2RlKHRoaXMuY2hhckNvZGVBdCh0aGlzLmxlbmd0aCAtIDEpICsgMSk7CiAg
fSwKCiAgdGltZXM6IGZ1bmN0aW9uKGNvdW50KSB7CiAgICByZXR1cm4gY291bnQgPCAxID8gJycg
OiBuZXcgQXJyYXkoY291bnQgKyAxKS5qb2luKHRoaXMpOwogIH0sCgogIGNhbWVsaXplOiBmdW5j
dGlvbigpIHsKICAgIHZhciBwYXJ0cyA9IHRoaXMuc3BsaXQoJy0nKSwgbGVuID0gcGFydHMubGVu
Z3RoOwogICAgaWYgKGxlbiA9PSAxKSByZXR1cm4gcGFydHNbMF07CgogICAgdmFyIGNhbWVsaXpl
ZCA9IHRoaXMuY2hhckF0KDApID09ICctJwogICAgICA/IHBhcnRzWzBdLmNoYXJBdCgwKS50b1Vw
cGVyQ2FzZSgpICsgcGFydHNbMF0uc3Vic3RyaW5nKDEpCiAgICAgIDogcGFydHNbMF07CgogICAg
Zm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykKICAgICAgY2FtZWxpemVkICs9IHBhcnRzW2ld
LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcGFydHNbaV0uc3Vic3RyaW5nKDEpOwoKICAgIHJl
dHVybiBjYW1lbGl6ZWQ7CiAgfSwKCiAgY2FwaXRhbGl6ZTogZnVuY3Rpb24oKSB7CiAgICByZXR1
cm4gdGhpcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHRoaXMuc3Vic3RyaW5nKDEpLnRvTG93
ZXJDYXNlKCk7CiAgfSwKCiAgdW5kZXJzY29yZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhp
cy5nc3ViKC86Oi8sICcvJykuZ3N1YigvKFtBLVpdKykoW0EtWl1bYS16XSkvLCcjezF9XyN7Mn0n
KS5nc3ViKC8oW2EtelxkXSkoW0EtWl0pLywnI3sxfV8jezJ9JykuZ3N1YigvLS8sJ18nKS50b0xv
d2VyQ2FzZSgpOwogIH0sCgogIGRhc2hlcml6ZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhp
cy5nc3ViKC9fLywnLScpOwogIH0sCgogIGluc3BlY3Q6IGZ1bmN0aW9uKHVzZURvdWJsZVF1b3Rl
cykgewogICAgdmFyIGVzY2FwZWRTdHJpbmcgPSB0aGlzLmdzdWIoL1tceDAwLVx4MWZcXF0vLCBm
dW5jdGlvbihtYXRjaCkgewogICAgICB2YXIgY2hhcmFjdGVyID0gU3RyaW5nLnNwZWNpYWxDaGFy
W21hdGNoWzBdXTsKICAgICAgcmV0dXJuIGNoYXJhY3RlciA/IGNoYXJhY3RlciA6ICdcXHUwMCcg
KyBtYXRjaFswXS5jaGFyQ29kZUF0KCkudG9QYWRkZWRTdHJpbmcoMiwgMTYpOwogICAgfSk7CiAg
ICBpZiAodXNlRG91YmxlUXVvdGVzKSByZXR1cm4gJyInICsgZXNjYXBlZFN0cmluZy5yZXBsYWNl
KC8iL2csICdcXCInKSArICciJzsKICAgIHJldHVybiAiJyIgKyBlc2NhcGVkU3RyaW5nLnJlcGxh
Y2UoLycvZywgJ1xcXCcnKSArICInIjsKICB9LAoKICB0b0pTT046IGZ1bmN0aW9uKCkgewogICAg
cmV0dXJuIHRoaXMuaW5zcGVjdCh0cnVlKTsKICB9LAoKICB1bmZpbHRlckpTT046IGZ1bmN0aW9u
KGZpbHRlcikgewogICAgcmV0dXJuIHRoaXMuc3ViKGZpbHRlciB8fCBQcm90b3R5cGUuSlNPTkZp
bHRlciwgJyN7MX0nKTsKICB9LAoKICBpc0pTT046IGZ1bmN0aW9uKCkgewogICAgdmFyIHN0ciA9
IHRoaXM7CiAgICBpZiAoc3RyLmJsYW5rKCkpIHJldHVybiBmYWxzZTsKICAgIHN0ciA9IHRoaXMu
cmVwbGFjZSgvXFwuL2csICdAJykucmVwbGFjZSgvIlteIlxcXG5ccl0qIi9nLCAnJyk7CiAgICBy
ZXR1cm4gKC9eWyw6e31cW1xdMC05LlwtK0VhZWZsbnItdSBcblxyXHRdKiQvKS50ZXN0KHN0cik7
CiAgfSwKCiAgZXZhbEpTT046IGZ1bmN0aW9uKHNhbml0aXplKSB7CiAgICB2YXIganNvbiA9IHRo
aXMudW5maWx0ZXJKU09OKCk7CiAgICB0cnkgewogICAgICBpZiAoIXNhbml0aXplIHx8IGpzb24u
aXNKU09OKCkpIHJldHVybiBldmFsKCcoJyArIGpzb24gKyAnKScpOwogICAgfSBjYXRjaCAoZSkg
eyB9CiAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoJ0JhZGx5IGZvcm1lZCBKU09OIHN0cmluZzog
JyArIHRoaXMuaW5zcGVjdCgpKTsKICB9LAoKICBpbmNsdWRlOiBmdW5jdGlvbihwYXR0ZXJuKSB7
CiAgICByZXR1cm4gdGhpcy5pbmRleE9mKHBhdHRlcm4pID4gLTE7CiAgfSwKCiAgc3RhcnRzV2l0
aDogZnVuY3Rpb24ocGF0dGVybikgewogICAgcmV0dXJuIHRoaXMuaW5kZXhPZihwYXR0ZXJuKSA9
PT0gMDsKICB9LAoKICBlbmRzV2l0aDogZnVuY3Rpb24ocGF0dGVybikgewogICAgdmFyIGQgPSB0
aGlzLmxlbmd0aCAtIHBhdHRlcm4ubGVuZ3RoOwogICAgcmV0dXJuIGQgPj0gMCAmJiB0aGlzLmxh
c3RJbmRleE9mKHBhdHRlcm4pID09PSBkOwogIH0sCgogIGVtcHR5OiBmdW5jdGlvbigpIHsKICAg
IHJldHVybiB0aGlzID09ICcnOwogIH0sCgogIGJsYW5rOiBmdW5jdGlvbigpIHsKICAgIHJldHVy
biAvXlxzKiQvLnRlc3QodGhpcyk7CiAgfSwKCiAgaW50ZXJwb2xhdGU6IGZ1bmN0aW9uKG9iamVj
dCwgcGF0dGVybikgewogICAgcmV0dXJuIG5ldyBUZW1wbGF0ZSh0aGlzLCBwYXR0ZXJuKS5ldmFs
dWF0ZShvYmplY3QpOwogIH0KfSk7CgppZiAoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0IHx8IFBy
b3RvdHlwZS5Ccm93c2VyLklFKSBPYmplY3QuZXh0ZW5kKFN0cmluZy5wcm90b3R5cGUsIHsKICBl
c2NhcGVIVE1MOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnJlcGxhY2UoLyYvZywnJmFt
cDsnKS5yZXBsYWNlKC88L2csJyZsdDsnKS5yZXBsYWNlKC8+L2csJyZndDsnKTsKICB9LAogIHVu
ZXNjYXBlSFRNTDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC8mYW1wOy9n
LCcmJykucmVwbGFjZSgvJmx0Oy9nLCc8JykucmVwbGFjZSgvJmd0Oy9nLCc+Jyk7CiAgfQp9KTsK
ClN0cmluZy5wcm90b3R5cGUuZ3N1Yi5wcmVwYXJlUmVwbGFjZW1lbnQgPSBmdW5jdGlvbihyZXBs
YWNlbWVudCkgewogIGlmIChPYmplY3QuaXNGdW5jdGlvbihyZXBsYWNlbWVudCkpIHJldHVybiBy
ZXBsYWNlbWVudDsKICB2YXIgdGVtcGxhdGUgPSBuZXcgVGVtcGxhdGUocmVwbGFjZW1lbnQpOwog
IHJldHVybiBmdW5jdGlvbihtYXRjaCkgeyByZXR1cm4gdGVtcGxhdGUuZXZhbHVhdGUobWF0Y2gp
IH07Cn07CgpTdHJpbmcucHJvdG90eXBlLnBhcnNlUXVlcnkgPSBTdHJpbmcucHJvdG90eXBlLnRv
UXVlcnlQYXJhbXM7CgpPYmplY3QuZXh0ZW5kKFN0cmluZy5wcm90b3R5cGUuZXNjYXBlSFRNTCwg
ewogIGRpdjogIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAogIHRleHQ6IGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCcnKQp9KTsKCndpdGggKFN0cmluZy5wcm90b3R5cGUuZXNjYXBlSFRN
TCkgZGl2LmFwcGVuZENoaWxkKHRleHQpOwoKdmFyIFRlbXBsYXRlID0gQ2xhc3MuY3JlYXRlKHsK
ICBpbml0aWFsaXplOiBmdW5jdGlvbih0ZW1wbGF0ZSwgcGF0dGVybikgewogICAgdGhpcy50ZW1w
bGF0ZSA9IHRlbXBsYXRlLnRvU3RyaW5nKCk7CiAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuIHx8
IFRlbXBsYXRlLlBhdHRlcm47CiAgfSwKCiAgZXZhbHVhdGU6IGZ1bmN0aW9uKG9iamVjdCkgewog
ICAgaWYgKE9iamVjdC5pc0Z1bmN0aW9uKG9iamVjdC50b1RlbXBsYXRlUmVwbGFjZW1lbnRzKSkK
ICAgICAgb2JqZWN0ID0gb2JqZWN0LnRvVGVtcGxhdGVSZXBsYWNlbWVudHMoKTsKCiAgICByZXR1
cm4gdGhpcy50ZW1wbGF0ZS5nc3ViKHRoaXMucGF0dGVybiwgZnVuY3Rpb24obWF0Y2gpIHsKICAg
ICAgaWYgKG9iamVjdCA9PSBudWxsKSByZXR1cm4gJyc7CgogICAgICB2YXIgYmVmb3JlID0gbWF0
Y2hbMV0gfHwgJyc7CiAgICAgIGlmIChiZWZvcmUgPT0gJ1xcJykgcmV0dXJuIG1hdGNoWzJdOwoK
ICAgICAgdmFyIGN0eCA9IG9iamVjdCwgZXhwciA9IG1hdGNoWzNdOwogICAgICB2YXIgcGF0dGVy
biA9IC9eKFteLltdK3xcWygoPzouKj9bXlxcXSk/KVxdKShcLnxcW3wkKS87CiAgICAgIG1hdGNo
ID0gcGF0dGVybi5leGVjKGV4cHIpOwogICAgICBpZiAobWF0Y2ggPT0gbnVsbCkgcmV0dXJuIGJl
Zm9yZTsKCiAgICAgIHdoaWxlIChtYXRjaCAhPSBudWxsKSB7CiAgICAgICAgdmFyIGNvbXAgPSBt
YXRjaFsxXS5zdGFydHNXaXRoKCdbJykgPyBtYXRjaFsyXS5nc3ViKCdcXFxcXScsICddJykgOiBt
YXRjaFsxXTsKICAgICAgICBjdHggPSBjdHhbY29tcF07CiAgICAgICAgaWYgKG51bGwgPT0gY3R4
IHx8ICcnID09IG1hdGNoWzNdKSBicmVhazsKICAgICAgICBleHByID0gZXhwci5zdWJzdHJpbmco
J1snID09IG1hdGNoWzNdID8gbWF0Y2hbMV0ubGVuZ3RoIDogbWF0Y2hbMF0ubGVuZ3RoKTsKICAg
ICAgICBtYXRjaCA9IHBhdHRlcm4uZXhlYyhleHByKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGJl
Zm9yZSArIFN0cmluZy5pbnRlcnByZXQoY3R4KTsKICAgIH0pOwogIH0KfSk7ClRlbXBsYXRlLlBh
dHRlcm4gPSAvKF58LnxccnxcbikoI1x7KC4qPylcfSkvOwoKdmFyICRicmVhayA9IHsgfTsKCnZh
ciBFbnVtZXJhYmxlID0gewogIGVhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAg
ICB2YXIgaW5kZXggPSAwOwogICAgaXRlcmF0b3IgPSBpdGVyYXRvci5iaW5kKGNvbnRleHQpOwog
ICAgdHJ5IHsKICAgICAgdGhpcy5fZWFjaChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGl0ZXJh
dG9yKHZhbHVlLCBpbmRleCsrKTsKICAgICAgfSk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIGlm
IChlICE9ICRicmVhaykgdGhyb3cgZTsKICAgIH0KICAgIHJldHVybiB0aGlzOwogIH0sCgogIGVh
Y2hTbGljZTogZnVuY3Rpb24obnVtYmVyLCBpdGVyYXRvciwgY29udGV4dCkgewogICAgaXRlcmF0
b3IgPSBpdGVyYXRvciA/IGl0ZXJhdG9yLmJpbmQoY29udGV4dCkgOiBQcm90b3R5cGUuSzsKICAg
IHZhciBpbmRleCA9IC1udW1iZXIsIHNsaWNlcyA9IFtdLCBhcnJheSA9IHRoaXMudG9BcnJheSgp
OwogICAgd2hpbGUgKChpbmRleCArPSBudW1iZXIpIDwgYXJyYXkubGVuZ3RoKQogICAgICBzbGlj
ZXMucHVzaChhcnJheS5zbGljZShpbmRleCwgaW5kZXgrbnVtYmVyKSk7CiAgICByZXR1cm4gc2xp
Y2VzLmNvbGxlY3QoaXRlcmF0b3IsIGNvbnRleHQpOwogIH0sCgogIGFsbDogZnVuY3Rpb24oaXRl
cmF0b3IsIGNvbnRleHQpIHsKICAgIGl0ZXJhdG9yID0gaXRlcmF0b3IgPyBpdGVyYXRvci5iaW5k
KGNvbnRleHQpIDogUHJvdG90eXBlLks7CiAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICAgIHRoaXMu
ZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmICEh
aXRlcmF0b3IodmFsdWUsIGluZGV4KTsKICAgICAgaWYgKCFyZXN1bHQpIHRocm93ICRicmVhazsK
ICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBhbnk6IGZ1bmN0aW9uKGl0ZXJhdG9y
LCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yID8gaXRlcmF0b3IuYmluZChjb250
ZXh0KSA6IFByb3RvdHlwZS5LOwogICAgdmFyIHJlc3VsdCA9IGZhbHNlOwogICAgdGhpcy5lYWNo
KGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICBpZiAocmVzdWx0ID0gISFpdGVyYXRvcih2
YWx1ZSwgaW5kZXgpKQogICAgICAgIHRocm93ICRicmVhazsKICAgIH0pOwogICAgcmV0dXJuIHJl
c3VsdDsKICB9LAoKICBjb2xsZWN0OiBmdW5jdGlvbihpdGVyYXRvciwgY29udGV4dCkgewogICAg
aXRlcmF0b3IgPSBpdGVyYXRvciA/IGl0ZXJhdG9yLmJpbmQoY29udGV4dCkgOiBQcm90b3R5cGUu
SzsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGlu
ZGV4KSB7CiAgICAgIHJlc3VsdHMucHVzaChpdGVyYXRvcih2YWx1ZSwgaW5kZXgpKTsKICAgIH0p
OwogICAgcmV0dXJuIHJlc3VsdHM7CiAgfSwKCiAgZGV0ZWN0OiBmdW5jdGlvbihpdGVyYXRvciwg
Y29udGV4dCkgewogICAgaXRlcmF0b3IgPSBpdGVyYXRvci5iaW5kKGNvbnRleHQpOwogICAgdmFy
IHJlc3VsdDsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYg
KGl0ZXJhdG9yKHZhbHVlLCBpbmRleCkpIHsKICAgICAgICByZXN1bHQgPSB2YWx1ZTsKICAgICAg
ICB0aHJvdyAkYnJlYWs7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoK
ICBmaW5kQWxsOiBmdW5jdGlvbihpdGVyYXRvciwgY29udGV4dCkgewogICAgaXRlcmF0b3IgPSBp
dGVyYXRvci5iaW5kKGNvbnRleHQpOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMuZWFj
aChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKGl0ZXJhdG9yKHZhbHVlLCBpbmRl
eCkpCiAgICAgICAgcmVzdWx0cy5wdXNoKHZhbHVlKTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3Vs
dHM7CiAgfSwKCiAgZ3JlcDogZnVuY3Rpb24oZmlsdGVyLCBpdGVyYXRvciwgY29udGV4dCkgewog
ICAgaXRlcmF0b3IgPSBpdGVyYXRvciA/IGl0ZXJhdG9yLmJpbmQoY29udGV4dCkgOiBQcm90b3R5
cGUuSzsKICAgIHZhciByZXN1bHRzID0gW107CgogICAgaWYgKE9iamVjdC5pc1N0cmluZyhmaWx0
ZXIpKQogICAgICBmaWx0ZXIgPSBuZXcgUmVnRXhwKGZpbHRlcik7CgogICAgdGhpcy5lYWNoKGZ1
bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICBpZiAoZmlsdGVyLm1hdGNoKHZhbHVlKSkKICAg
ICAgICByZXN1bHRzLnB1c2goaXRlcmF0b3IodmFsdWUsIGluZGV4KSk7CiAgICB9KTsKICAgIHJl
dHVybiByZXN1bHRzOwogIH0sCgogIGluY2x1ZGU6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgaWYg
KE9iamVjdC5pc0Z1bmN0aW9uKHRoaXMuaW5kZXhPZikpCiAgICAgIGlmICh0aGlzLmluZGV4T2Yo
b2JqZWN0KSAhPSAtMSkgcmV0dXJuIHRydWU7CgogICAgdmFyIGZvdW5kID0gZmFsc2U7CiAgICB0
aGlzLmVhY2goZnVuY3Rpb24odmFsdWUpIHsKICAgICAgaWYgKHZhbHVlID09IG9iamVjdCkgewog
ICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICB0aHJvdyAkYnJlYWs7CiAgICAgIH0KICAgIH0p
OwogICAgcmV0dXJuIGZvdW5kOwogIH0sCgogIGluR3JvdXBzT2Y6IGZ1bmN0aW9uKG51bWJlciwg
ZmlsbFdpdGgpIHsKICAgIGZpbGxXaXRoID0gT2JqZWN0LmlzVW5kZWZpbmVkKGZpbGxXaXRoKSA/
IG51bGwgOiBmaWxsV2l0aDsKICAgIHJldHVybiB0aGlzLmVhY2hTbGljZShudW1iZXIsIGZ1bmN0
aW9uKHNsaWNlKSB7CiAgICAgIHdoaWxlKHNsaWNlLmxlbmd0aCA8IG51bWJlcikgc2xpY2UucHVz
aChmaWxsV2l0aCk7CiAgICAgIHJldHVybiBzbGljZTsKICAgIH0pOwogIH0sCgogIGluamVjdDog
ZnVuY3Rpb24obWVtbywgaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIGl0ZXJhdG9yID0gaXRlcmF0
b3IuYmluZChjb250ZXh0KTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsK
ICAgICAgbWVtbyA9IGl0ZXJhdG9yKG1lbW8sIHZhbHVlLCBpbmRleCk7CiAgICB9KTsKICAgIHJl
dHVybiBtZW1vOwogIH0sCgogIGludm9rZTogZnVuY3Rpb24obWV0aG9kKSB7CiAgICB2YXIgYXJn
cyA9ICRBKGFyZ3VtZW50cykuc2xpY2UoMSk7CiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24o
dmFsdWUpIHsKICAgICAgcmV0dXJuIHZhbHVlW21ldGhvZF0uYXBwbHkodmFsdWUsIGFyZ3MpOwog
ICAgfSk7CiAgfSwKCiAgbWF4OiBmdW5jdGlvbihpdGVyYXRvciwgY29udGV4dCkgewogICAgaXRl
cmF0b3IgPSBpdGVyYXRvciA/IGl0ZXJhdG9yLmJpbmQoY29udGV4dCkgOiBQcm90b3R5cGUuSzsK
ICAgIHZhciByZXN1bHQ7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAg
ICAgIHZhbHVlID0gaXRlcmF0b3IodmFsdWUsIGluZGV4KTsKICAgICAgaWYgKHJlc3VsdCA9PSBu
dWxsIHx8IHZhbHVlID49IHJlc3VsdCkKICAgICAgICByZXN1bHQgPSB2YWx1ZTsKICAgIH0pOwog
ICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBtaW46IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0
KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yID8gaXRlcmF0b3IuYmluZChjb250ZXh0KSA6IFBy
b3RvdHlwZS5LOwogICAgdmFyIHJlc3VsdDsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwg
aW5kZXgpIHsKICAgICAgdmFsdWUgPSBpdGVyYXRvcih2YWx1ZSwgaW5kZXgpOwogICAgICBpZiAo
cmVzdWx0ID09IG51bGwgfHwgdmFsdWUgPCByZXN1bHQpCiAgICAgICAgcmVzdWx0ID0gdmFsdWU7
CiAgICB9KTsKICAgIHJldHVybiByZXN1bHQ7CiAgfSwKCiAgcGFydGl0aW9uOiBmdW5jdGlvbihp
dGVyYXRvciwgY29udGV4dCkgewogICAgaXRlcmF0b3IgPSBpdGVyYXRvciA/IGl0ZXJhdG9yLmJp
bmQoY29udGV4dCkgOiBQcm90b3R5cGUuSzsKICAgIHZhciB0cnVlcyA9IFtdLCBmYWxzZXMgPSBb
XTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgKGl0ZXJhdG9y
KHZhbHVlLCBpbmRleCkgPwogICAgICAgIHRydWVzIDogZmFsc2VzKS5wdXNoKHZhbHVlKTsKICAg
IH0pOwogICAgcmV0dXJuIFt0cnVlcywgZmFsc2VzXTsKICB9LAoKICBwbHVjazogZnVuY3Rpb24o
cHJvcGVydHkpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB0aGlzLmVhY2goZnVuY3Rpb24o
dmFsdWUpIHsKICAgICAgcmVzdWx0cy5wdXNoKHZhbHVlW3Byb3BlcnR5XSk7CiAgICB9KTsKICAg
IHJldHVybiByZXN1bHRzOwogIH0sCgogIHJlamVjdDogZnVuY3Rpb24oaXRlcmF0b3IsIGNvbnRl
eHQpIHsKICAgIGl0ZXJhdG9yID0gaXRlcmF0b3IuYmluZChjb250ZXh0KTsKICAgIHZhciByZXN1
bHRzID0gW107CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIGlm
ICghaXRlcmF0b3IodmFsdWUsIGluZGV4KSkKICAgICAgICByZXN1bHRzLnB1c2godmFsdWUpOwog
ICAgfSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICBzb3J0Qnk6IGZ1bmN0aW9uKGl0ZXJh
dG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yLmJpbmQoY29udGV4dCk7CiAg
ICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIHJldHVybiB7
dmFsdWU6IHZhbHVlLCBjcml0ZXJpYTogaXRlcmF0b3IodmFsdWUsIGluZGV4KX07CiAgICB9KS5z
b3J0KGZ1bmN0aW9uKGxlZnQsIHJpZ2h0KSB7CiAgICAgIHZhciBhID0gbGVmdC5jcml0ZXJpYSwg
YiA9IHJpZ2h0LmNyaXRlcmlhOwogICAgICByZXR1cm4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6
IDA7CiAgICB9KS5wbHVjaygndmFsdWUnKTsKICB9LAoKICB0b0FycmF5OiBmdW5jdGlvbigpIHsK
ICAgIHJldHVybiB0aGlzLm1hcCgpOwogIH0sCgogIHppcDogZnVuY3Rpb24oKSB7CiAgICB2YXIg
aXRlcmF0b3IgPSBQcm90b3R5cGUuSywgYXJncyA9ICRBKGFyZ3VtZW50cyk7CiAgICBpZiAoT2Jq
ZWN0LmlzRnVuY3Rpb24oYXJncy5sYXN0KCkpKQogICAgICBpdGVyYXRvciA9IGFyZ3MucG9wKCk7
CgogICAgdmFyIGNvbGxlY3Rpb25zID0gW3RoaXNdLmNvbmNhdChhcmdzKS5tYXAoJEEpOwogICAg
cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICByZXR1cm4gaXRl
cmF0b3IoY29sbGVjdGlvbnMucGx1Y2soaW5kZXgpKTsKICAgIH0pOwogIH0sCgogIHNpemU6IGZ1
bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMudG9BcnJheSgpLmxlbmd0aDsKICB9LAoKICBpbnNw
ZWN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiAnIzxFbnVtZXJhYmxlOicgKyB0aGlzLnRvQXJy
YXkoKS5pbnNwZWN0KCkgKyAnPic7CiAgfQp9OwoKT2JqZWN0LmV4dGVuZChFbnVtZXJhYmxlLCB7
CiAgbWFwOiAgICAgRW51bWVyYWJsZS5jb2xsZWN0LAogIGZpbmQ6ICAgIEVudW1lcmFibGUuZGV0
ZWN0LAogIHNlbGVjdDogIEVudW1lcmFibGUuZmluZEFsbCwKICBmaWx0ZXI6ICBFbnVtZXJhYmxl
LmZpbmRBbGwsCiAgbWVtYmVyOiAgRW51bWVyYWJsZS5pbmNsdWRlLAogIGVudHJpZXM6IEVudW1l
cmFibGUudG9BcnJheSwKICBldmVyeTogICBFbnVtZXJhYmxlLmFsbCwKICBzb21lOiAgICBFbnVt
ZXJhYmxlLmFueQp9KTsKZnVuY3Rpb24gJEEoaXRlcmFibGUpIHsKICBpZiAoIWl0ZXJhYmxlKSBy
ZXR1cm4gW107CiAgaWYgKGl0ZXJhYmxlLnRvQXJyYXkpIHJldHVybiBpdGVyYWJsZS50b0FycmF5
KCk7CiAgdmFyIGxlbmd0aCA9IGl0ZXJhYmxlLmxlbmd0aCB8fCAwLCByZXN1bHRzID0gbmV3IEFy
cmF5KGxlbmd0aCk7CiAgd2hpbGUgKGxlbmd0aC0tKSByZXN1bHRzW2xlbmd0aF0gPSBpdGVyYWJs
ZVtsZW5ndGhdOwogIHJldHVybiByZXN1bHRzOwp9CgppZiAoUHJvdG90eXBlLkJyb3dzZXIuV2Vi
S2l0KSB7CiAgJEEgPSBmdW5jdGlvbihpdGVyYWJsZSkgewogICAgaWYgKCFpdGVyYWJsZSkgcmV0
dXJuIFtdOwogICAgaWYgKCEoT2JqZWN0LmlzRnVuY3Rpb24oaXRlcmFibGUpICYmIGl0ZXJhYmxl
ID09ICdbb2JqZWN0IE5vZGVMaXN0XScpICYmCiAgICAgICAgaXRlcmFibGUudG9BcnJheSkgcmV0
dXJuIGl0ZXJhYmxlLnRvQXJyYXkoKTsKICAgIHZhciBsZW5ndGggPSBpdGVyYWJsZS5sZW5ndGgg
fHwgMCwgcmVzdWx0cyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgd2hpbGUgKGxlbmd0aC0tKSBy
ZXN1bHRzW2xlbmd0aF0gPSBpdGVyYWJsZVtsZW5ndGhdOwogICAgcmV0dXJuIHJlc3VsdHM7CiAg
fTsKfQoKQXJyYXkuZnJvbSA9ICRBOwoKT2JqZWN0LmV4dGVuZChBcnJheS5wcm90b3R5cGUsIEVu
dW1lcmFibGUpOwoKaWYgKCFBcnJheS5wcm90b3R5cGUuX3JldmVyc2UpIEFycmF5LnByb3RvdHlw
ZS5fcmV2ZXJzZSA9IEFycmF5LnByb3RvdHlwZS5yZXZlcnNlOwoKT2JqZWN0LmV4dGVuZChBcnJh
eS5wcm90b3R5cGUsIHsKICBfZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIGZvciAodmFy
IGkgPSAwLCBsZW5ndGggPSB0aGlzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKQogICAgICBpdGVy
YXRvcih0aGlzW2ldKTsKICB9LAoKICBjbGVhcjogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmxlbmd0
aCA9IDA7CiAgICByZXR1cm4gdGhpczsKICB9LAoKICBmaXJzdDogZnVuY3Rpb24oKSB7CiAgICBy
ZXR1cm4gdGhpc1swXTsKICB9LAoKICBsYXN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlz
W3RoaXMubGVuZ3RoIC0gMV07CiAgfSwKCiAgY29tcGFjdDogZnVuY3Rpb24oKSB7CiAgICByZXR1
cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHZhbHVlICE9IG51
bGw7CiAgICB9KTsKICB9LAoKICBmbGF0dGVuOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlz
LmluamVjdChbXSwgZnVuY3Rpb24oYXJyYXksIHZhbHVlKSB7CiAgICAgIHJldHVybiBhcnJheS5j
b25jYXQoT2JqZWN0LmlzQXJyYXkodmFsdWUpID8KICAgICAgICB2YWx1ZS5mbGF0dGVuKCkgOiBb
dmFsdWVdKTsKICAgIH0pOwogIH0sCgogIHdpdGhvdXQ6IGZ1bmN0aW9uKCkgewogICAgdmFyIHZh
bHVlcyA9ICRBKGFyZ3VtZW50cyk7CiAgICByZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24odmFs
dWUpIHsKICAgICAgcmV0dXJuICF2YWx1ZXMuaW5jbHVkZSh2YWx1ZSk7CiAgICB9KTsKICB9LAoK
ICByZXZlcnNlOiBmdW5jdGlvbihpbmxpbmUpIHsKICAgIHJldHVybiAoaW5saW5lICE9PSBmYWxz
ZSA/IHRoaXMgOiB0aGlzLnRvQXJyYXkoKSkuX3JldmVyc2UoKTsKICB9LAoKICByZWR1Y2U6IGZ1
bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMubGVuZ3RoID4gMSA/IHRoaXMgOiB0aGlzWzBdOwog
IH0sCgogIHVuaXE6IGZ1bmN0aW9uKHNvcnRlZCkgewogICAgcmV0dXJuIHRoaXMuaW5qZWN0KFtd
LCBmdW5jdGlvbihhcnJheSwgdmFsdWUsIGluZGV4KSB7CiAgICAgIGlmICgwID09IGluZGV4IHx8
IChzb3J0ZWQgPyBhcnJheS5sYXN0KCkgIT0gdmFsdWUgOiAhYXJyYXkuaW5jbHVkZSh2YWx1ZSkp
KQogICAgICAgIGFycmF5LnB1c2godmFsdWUpOwogICAgICByZXR1cm4gYXJyYXk7CiAgICB9KTsK
ICB9LAoKICBpbnRlcnNlY3Q6IGZ1bmN0aW9uKGFycmF5KSB7CiAgICByZXR1cm4gdGhpcy51bmlx
KCkuZmluZEFsbChmdW5jdGlvbihpdGVtKSB7CiAgICAgIHJldHVybiBhcnJheS5kZXRlY3QoZnVu
Y3Rpb24odmFsdWUpIHsgcmV0dXJuIGl0ZW0gPT09IHZhbHVlIH0pOwogICAgfSk7CiAgfSwKCiAg
Y2xvbmU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIFtdLmNvbmNhdCh0aGlzKTsKICB9LAoKICBz
aXplOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmxlbmd0aDsKICB9LAoKICBpbnNwZWN0
OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiAnWycgKyB0aGlzLm1hcChPYmplY3QuaW5zcGVjdCku
am9pbignLCAnKSArICddJzsKICB9LAoKICB0b0pTT046IGZ1bmN0aW9uKCkgewogICAgdmFyIHJl
c3VsdHMgPSBbXTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbihvYmplY3QpIHsKICAgICAgdmFyIHZh
bHVlID0gT2JqZWN0LnRvSlNPTihvYmplY3QpOwogICAgICBpZiAoIU9iamVjdC5pc1VuZGVmaW5l
ZCh2YWx1ZSkpIHJlc3VsdHMucHVzaCh2YWx1ZSk7CiAgICB9KTsKICAgIHJldHVybiAnWycgKyBy
ZXN1bHRzLmpvaW4oJywgJykgKyAnXSc7CiAgfQp9KTsKCi8vIHVzZSBuYXRpdmUgYnJvd3NlciBK
UyAxLjYgaW1wbGVtZW50YXRpb24gaWYgYXZhaWxhYmxlCmlmIChPYmplY3QuaXNGdW5jdGlvbihB
cnJheS5wcm90b3R5cGUuZm9yRWFjaCkpCiAgQXJyYXkucHJvdG90eXBlLl9lYWNoID0gQXJyYXku
cHJvdG90eXBlLmZvckVhY2g7CgppZiAoIUFycmF5LnByb3RvdHlwZS5pbmRleE9mKSBBcnJheS5w
cm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uKGl0ZW0sIGkpIHsKICBpIHx8IChpID0gMCk7CiAg
dmFyIGxlbmd0aCA9IHRoaXMubGVuZ3RoOwogIGlmIChpIDwgMCkgaSA9IGxlbmd0aCArIGk7CiAg
Zm9yICg7IGkgPCBsZW5ndGg7IGkrKykKICAgIGlmICh0aGlzW2ldID09PSBpdGVtKSByZXR1cm4g
aTsKICByZXR1cm4gLTE7Cn07CgppZiAoIUFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgQXJy
YXkucHJvdG90eXBlLmxhc3RJbmRleE9mID0gZnVuY3Rpb24oaXRlbSwgaSkgewogIGkgPSBpc05h
TihpKSA/IHRoaXMubGVuZ3RoIDogKGkgPCAwID8gdGhpcy5sZW5ndGggKyBpIDogaSkgKyAxOwog
IHZhciBuID0gdGhpcy5zbGljZSgwLCBpKS5yZXZlcnNlKCkuaW5kZXhPZihpdGVtKTsKICByZXR1
cm4gKG4gPCAwKSA/IG4gOiBpIC0gbiAtIDE7Cn07CgpBcnJheS5wcm90b3R5cGUudG9BcnJheSA9
IEFycmF5LnByb3RvdHlwZS5jbG9uZTsKCmZ1bmN0aW9uICR3KHN0cmluZykgewogIGlmICghT2Jq
ZWN0LmlzU3RyaW5nKHN0cmluZykpIHJldHVybiBbXTsKICBzdHJpbmcgPSBzdHJpbmcuc3RyaXAo
KTsKICByZXR1cm4gc3RyaW5nID8gc3RyaW5nLnNwbGl0KC9ccysvKSA6IFtdOwp9CgppZiAoUHJv
dG90eXBlLkJyb3dzZXIuT3BlcmEpewogIEFycmF5LnByb3RvdHlwZS5jb25jYXQgPSBmdW5jdGlv
bigpIHsKICAgIHZhciBhcnJheSA9IFtdOwogICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IHRo
aXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIGFycmF5LnB1c2godGhpc1tpXSk7CiAgICBmb3Ig
KHZhciBpID0gMCwgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7
CiAgICAgIGlmIChPYmplY3QuaXNBcnJheShhcmd1bWVudHNbaV0pKSB7CiAgICAgICAgZm9yICh2
YXIgaiA9IDAsIGFycmF5TGVuZ3RoID0gYXJndW1lbnRzW2ldLmxlbmd0aDsgaiA8IGFycmF5TGVu
Z3RoOyBqKyspCiAgICAgICAgICBhcnJheS5wdXNoKGFyZ3VtZW50c1tpXVtqXSk7CiAgICAgIH0g
ZWxzZSB7CiAgICAgICAgYXJyYXkucHVzaChhcmd1bWVudHNbaV0pOwogICAgICB9CiAgICB9CiAg
ICByZXR1cm4gYXJyYXk7CiAgfTsKfQpPYmplY3QuZXh0ZW5kKE51bWJlci5wcm90b3R5cGUsIHsK
ICB0b0NvbG9yUGFydDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy50b1BhZGRlZFN0cmlu
ZygyLCAxNik7CiAgfSwKCiAgc3VjYzogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcyArIDE7
CiAgfSwKCiAgdGltZXM6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICAkUigwLCB0aGlzLCB0cnVl
KS5lYWNoKGl0ZXJhdG9yKTsKICAgIHJldHVybiB0aGlzOwogIH0sCgogIHRvUGFkZGVkU3RyaW5n
OiBmdW5jdGlvbihsZW5ndGgsIHJhZGl4KSB7CiAgICB2YXIgc3RyaW5nID0gdGhpcy50b1N0cmlu
ZyhyYWRpeCB8fCAxMCk7CiAgICByZXR1cm4gJzAnLnRpbWVzKGxlbmd0aCAtIHN0cmluZy5sZW5n
dGgpICsgc3RyaW5nOwogIH0sCgogIHRvSlNPTjogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gaXNG
aW5pdGUodGhpcykgPyB0aGlzLnRvU3RyaW5nKCkgOiAnbnVsbCc7CiAgfQp9KTsKCiR3KCdhYnMg
cm91bmQgY2VpbCBmbG9vcicpLmVhY2goZnVuY3Rpb24obWV0aG9kKXsKICBOdW1iZXIucHJvdG90
eXBlW21ldGhvZF0gPSBNYXRoW21ldGhvZF0ubWV0aG9kaXplKCk7Cn0pOwpmdW5jdGlvbiAkSChv
YmplY3QpIHsKICByZXR1cm4gbmV3IEhhc2gob2JqZWN0KTsKfTsKCnZhciBIYXNoID0gQ2xhc3Mu
Y3JlYXRlKEVudW1lcmFibGUsIChmdW5jdGlvbigpIHsKCiAgZnVuY3Rpb24gdG9RdWVyeVBhaXIo
a2V5LCB2YWx1ZSkgewogICAgaWYgKE9iamVjdC5pc1VuZGVmaW5lZCh2YWx1ZSkpIHJldHVybiBr
ZXk7CiAgICByZXR1cm4ga2V5ICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZy5pbnRl
cnByZXQodmFsdWUpKTsKICB9CgogIHJldHVybiB7CiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihv
YmplY3QpIHsKICAgICAgdGhpcy5fb2JqZWN0ID0gT2JqZWN0LmlzSGFzaChvYmplY3QpID8gb2Jq
ZWN0LnRvT2JqZWN0KCkgOiBPYmplY3QuY2xvbmUob2JqZWN0KTsKICAgIH0sCgogICAgX2VhY2g6
IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLl9vYmplY3Qp
IHsKICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLl9vYmplY3Rba2V5XSwgcGFpciA9IFtrZXksIHZh
bHVlXTsKICAgICAgICBwYWlyLmtleSA9IGtleTsKICAgICAgICBwYWlyLnZhbHVlID0gdmFsdWU7
CiAgICAgICAgaXRlcmF0b3IocGFpcik7CiAgICAgIH0KICAgIH0sCgogICAgc2V0OiBmdW5jdGlv
bihrZXksIHZhbHVlKSB7CiAgICAgIHJldHVybiB0aGlzLl9vYmplY3Rba2V5XSA9IHZhbHVlOwog
ICAgfSwKCiAgICBnZXQ6IGZ1bmN0aW9uKGtleSkgewogICAgICByZXR1cm4gdGhpcy5fb2JqZWN0
W2tleV07CiAgICB9LAoKICAgIHVuc2V0OiBmdW5jdGlvbihrZXkpIHsKICAgICAgdmFyIHZhbHVl
ID0gdGhpcy5fb2JqZWN0W2tleV07CiAgICAgIGRlbGV0ZSB0aGlzLl9vYmplY3Rba2V5XTsKICAg
ICAgcmV0dXJuIHZhbHVlOwogICAgfSwKCiAgICB0b09iamVjdDogZnVuY3Rpb24oKSB7CiAgICAg
IHJldHVybiBPYmplY3QuY2xvbmUodGhpcy5fb2JqZWN0KTsKICAgIH0sCgogICAga2V5czogZnVu
Y3Rpb24oKSB7CiAgICAgIHJldHVybiB0aGlzLnBsdWNrKCdrZXknKTsKICAgIH0sCgogICAgdmFs
dWVzOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMucGx1Y2soJ3ZhbHVlJyk7CiAgICB9
LAoKICAgIGluZGV4OiBmdW5jdGlvbih2YWx1ZSkgewogICAgICB2YXIgbWF0Y2ggPSB0aGlzLmRl
dGVjdChmdW5jdGlvbihwYWlyKSB7CiAgICAgICAgcmV0dXJuIHBhaXIudmFsdWUgPT09IHZhbHVl
OwogICAgICB9KTsKICAgICAgcmV0dXJuIG1hdGNoICYmIG1hdGNoLmtleTsKICAgIH0sCgogICAg
bWVyZ2U6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLnVwZGF0
ZShvYmplY3QpOwogICAgfSwKCiAgICB1cGRhdGU6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgICBy
ZXR1cm4gbmV3IEhhc2gob2JqZWN0KS5pbmplY3QodGhpcywgZnVuY3Rpb24ocmVzdWx0LCBwYWly
KSB7CiAgICAgICAgcmVzdWx0LnNldChwYWlyLmtleSwgcGFpci52YWx1ZSk7CiAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgfSk7CiAgICB9LAoKICAgIHRvUXVlcnlTdHJpbmc6IGZ1bmN0aW9u
KCkgewogICAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24ocGFpcikgewogICAgICAgIHZhciBr
ZXkgPSBlbmNvZGVVUklDb21wb25lbnQocGFpci5rZXkpLCB2YWx1ZXMgPSBwYWlyLnZhbHVlOwoK
ICAgICAgICBpZiAodmFsdWVzICYmIHR5cGVvZiB2YWx1ZXMgPT0gJ29iamVjdCcpIHsKICAgICAg
ICAgIGlmIChPYmplY3QuaXNBcnJheSh2YWx1ZXMpKQogICAgICAgICAgICByZXR1cm4gdmFsdWVz
Lm1hcCh0b1F1ZXJ5UGFpci5jdXJyeShrZXkpKS5qb2luKCcmJyk7CiAgICAgICAgfQogICAgICAg
IHJldHVybiB0b1F1ZXJ5UGFpcihrZXksIHZhbHVlcyk7CiAgICAgIH0pLmpvaW4oJyYnKTsKICAg
IH0sCgogICAgaW5zcGVjdDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAnIzxIYXNoOnsnICsg
dGhpcy5tYXAoZnVuY3Rpb24ocGFpcikgewogICAgICAgIHJldHVybiBwYWlyLm1hcChPYmplY3Qu
aW5zcGVjdCkuam9pbignOiAnKTsKICAgICAgfSkuam9pbignLCAnKSArICd9Pic7CiAgICB9LAoK
ICAgIHRvSlNPTjogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBPYmplY3QudG9KU09OKHRoaXMu
dG9PYmplY3QoKSk7CiAgICB9LAoKICAgIGNsb25lOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJu
IG5ldyBIYXNoKHRoaXMpOwogICAgfQogIH0KfSkoKSk7CgpIYXNoLnByb3RvdHlwZS50b1RlbXBs
YXRlUmVwbGFjZW1lbnRzID0gSGFzaC5wcm90b3R5cGUudG9PYmplY3Q7Ckhhc2guZnJvbSA9ICRI
Owp2YXIgT2JqZWN0UmFuZ2UgPSBDbGFzcy5jcmVhdGUoRW51bWVyYWJsZSwgewogIGluaXRpYWxp
emU6IGZ1bmN0aW9uKHN0YXJ0LCBlbmQsIGV4Y2x1c2l2ZSkgewogICAgdGhpcy5zdGFydCA9IHN0
YXJ0OwogICAgdGhpcy5lbmQgPSBlbmQ7CiAgICB0aGlzLmV4Y2x1c2l2ZSA9IGV4Y2x1c2l2ZTsK
ICB9LAoKICBfZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIHZhciB2YWx1ZSA9IHRoaXMu
c3RhcnQ7CiAgICB3aGlsZSAodGhpcy5pbmNsdWRlKHZhbHVlKSkgewogICAgICBpdGVyYXRvcih2
YWx1ZSk7CiAgICAgIHZhbHVlID0gdmFsdWUuc3VjYygpOwogICAgfQogIH0sCgogIGluY2x1ZGU6
IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPCB0aGlzLnN0YXJ0KQogICAgICByZXR1
cm4gZmFsc2U7CiAgICBpZiAodGhpcy5leGNsdXNpdmUpCiAgICAgIHJldHVybiB2YWx1ZSA8IHRo
aXMuZW5kOwogICAgcmV0dXJuIHZhbHVlIDw9IHRoaXMuZW5kOwogIH0KfSk7Cgp2YXIgJFIgPSBm
dW5jdGlvbihzdGFydCwgZW5kLCBleGNsdXNpdmUpIHsKICByZXR1cm4gbmV3IE9iamVjdFJhbmdl
KHN0YXJ0LCBlbmQsIGV4Y2x1c2l2ZSk7Cn07Cgp2YXIgQWpheCA9IHsKICBnZXRUcmFuc3BvcnQ6
IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIFRyeS50aGVzZSgKICAgICAgZnVuY3Rpb24oKSB7cmV0
dXJuIG5ldyBYTUxIdHRwUmVxdWVzdCgpfSwKICAgICAgZnVuY3Rpb24oKSB7cmV0dXJuIG5ldyBB
Y3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUCcpfSwKICAgICAgZnVuY3Rpb24oKSB7cmV0dXJu
IG5ldyBBY3RpdmVYT2JqZWN0KCdNaWNyb3NvZnQuWE1MSFRUUCcpfQogICAgKSB8fCBmYWxzZTsK
ICB9LAoKICBhY3RpdmVSZXF1ZXN0Q291bnQ6IDAKfTsKCkFqYXguUmVzcG9uZGVycyA9IHsKICBy
ZXNwb25kZXJzOiBbXSwKCiAgX2VhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB0aGlzLnJl
c3BvbmRlcnMuX2VhY2goaXRlcmF0b3IpOwogIH0sCgogIHJlZ2lzdGVyOiBmdW5jdGlvbihyZXNw
b25kZXIpIHsKICAgIGlmICghdGhpcy5pbmNsdWRlKHJlc3BvbmRlcikpCiAgICAgIHRoaXMucmVz
cG9uZGVycy5wdXNoKHJlc3BvbmRlcik7CiAgfSwKCiAgdW5yZWdpc3RlcjogZnVuY3Rpb24ocmVz
cG9uZGVyKSB7CiAgICB0aGlzLnJlc3BvbmRlcnMgPSB0aGlzLnJlc3BvbmRlcnMud2l0aG91dChy
ZXNwb25kZXIpOwogIH0sCgogIGRpc3BhdGNoOiBmdW5jdGlvbihjYWxsYmFjaywgcmVxdWVzdCwg
dHJhbnNwb3J0LCBqc29uKSB7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24ocmVzcG9uZGVyKSB7CiAg
ICAgIGlmIChPYmplY3QuaXNGdW5jdGlvbihyZXNwb25kZXJbY2FsbGJhY2tdKSkgewogICAgICAg
IHRyeSB7CiAgICAgICAgICByZXNwb25kZXJbY2FsbGJhY2tdLmFwcGx5KHJlc3BvbmRlciwgW3Jl
cXVlc3QsIHRyYW5zcG9ydCwganNvbl0pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsgfQogICAgICB9
CiAgICB9KTsKICB9Cn07CgpPYmplY3QuZXh0ZW5kKEFqYXguUmVzcG9uZGVycywgRW51bWVyYWJs
ZSk7CgpBamF4LlJlc3BvbmRlcnMucmVnaXN0ZXIoewogIG9uQ3JlYXRlOiAgIGZ1bmN0aW9uKCkg
eyBBamF4LmFjdGl2ZVJlcXVlc3RDb3VudCsrIH0sCiAgb25Db21wbGV0ZTogZnVuY3Rpb24oKSB7
IEFqYXguYWN0aXZlUmVxdWVzdENvdW50LS0gfQp9KTsKCkFqYXguQmFzZSA9IENsYXNzLmNyZWF0
ZSh7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ob3B0aW9ucykgewogICAgdGhpcy5vcHRpb25zID0g
ewogICAgICBtZXRob2Q6ICAgICAgICdwb3N0JywKICAgICAgYXN5bmNocm9ub3VzOiB0cnVlLAog
ICAgICBjb250ZW50VHlwZTogICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLAog
ICAgICBlbmNvZGluZzogICAgICdVVEYtOCcsCiAgICAgIHBhcmFtZXRlcnM6ICAgJycsCiAgICAg
IGV2YWxKU09OOiAgICAgdHJ1ZSwKICAgICAgZXZhbEpTOiAgICAgICB0cnVlCiAgICB9OwogICAg
T2JqZWN0LmV4dGVuZCh0aGlzLm9wdGlvbnMsIG9wdGlvbnMgfHwgeyB9KTsKCiAgICB0aGlzLm9w
dGlvbnMubWV0aG9kID0gdGhpcy5vcHRpb25zLm1ldGhvZC50b0xvd2VyQ2FzZSgpOwoKICAgIGlm
IChPYmplY3QuaXNTdHJpbmcodGhpcy5vcHRpb25zLnBhcmFtZXRlcnMpKQogICAgICB0aGlzLm9w
dGlvbnMucGFyYW1ldGVycyA9IHRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzLnRvUXVlcnlQYXJhbXMo
KTsKICAgIGVsc2UgaWYgKE9iamVjdC5pc0hhc2godGhpcy5vcHRpb25zLnBhcmFtZXRlcnMpKQog
ICAgICB0aGlzLm9wdGlvbnMucGFyYW1ldGVycyA9IHRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzLnRv
T2JqZWN0KCk7CiAgfQp9KTsKCkFqYXguUmVxdWVzdCA9IENsYXNzLmNyZWF0ZShBamF4LkJhc2Us
IHsKICBfY29tcGxldGU6IGZhbHNlLAoKICBpbml0aWFsaXplOiBmdW5jdGlvbigkc3VwZXIsIHVy
bCwgb3B0aW9ucykgewogICAgJHN1cGVyKG9wdGlvbnMpOwogICAgdGhpcy50cmFuc3BvcnQgPSBB
amF4LmdldFRyYW5zcG9ydCgpOwogICAgdGhpcy5yZXF1ZXN0KHVybCk7CiAgfSwKCiAgcmVxdWVz
dDogZnVuY3Rpb24odXJsKSB7CiAgICB0aGlzLnVybCA9IHVybDsKICAgIHRoaXMubWV0aG9kID0g
dGhpcy5vcHRpb25zLm1ldGhvZDsKICAgIHZhciBwYXJhbXMgPSBPYmplY3QuY2xvbmUodGhpcy5v
cHRpb25zLnBhcmFtZXRlcnMpOwoKICAgIGlmICghWydnZXQnLCAncG9zdCddLmluY2x1ZGUodGhp
cy5tZXRob2QpKSB7CiAgICAgIC8vIHNpbXVsYXRlIG90aGVyIHZlcmJzIG92ZXIgcG9zdAogICAg
ICBwYXJhbXNbJ19tZXRob2QnXSA9IHRoaXMubWV0aG9kOwogICAgICB0aGlzLm1ldGhvZCA9ICdw
b3N0JzsKICAgIH0KCiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbXM7CgogICAgaWYgKHBhcmFt
cyA9IE9iamVjdC50b1F1ZXJ5U3RyaW5nKHBhcmFtcykpIHsKICAgICAgLy8gd2hlbiBHRVQsIGFw
cGVuZCBwYXJhbWV0ZXJzIHRvIFVSTAogICAgICBpZiAodGhpcy5tZXRob2QgPT0gJ2dldCcpCiAg
ICAgICAgdGhpcy51cmwgKz0gKHRoaXMudXJsLmluY2x1ZGUoJz8nKSA/ICcmJyA6ICc/JykgKyBw
YXJhbXM7CiAgICAgIGVsc2UgaWYgKC9Lb25xdWVyb3J8U2FmYXJpfEtIVE1MLy50ZXN0KG5hdmln
YXRvci51c2VyQWdlbnQpKQogICAgICAgIHBhcmFtcyArPSAnJl89JzsKICAgIH0KCiAgICB0cnkg
ewogICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgQWpheC5SZXNwb25zZSh0aGlzKTsKICAgICAgaWYg
KHRoaXMub3B0aW9ucy5vbkNyZWF0ZSkgdGhpcy5vcHRpb25zLm9uQ3JlYXRlKHJlc3BvbnNlKTsK
ICAgICAgQWpheC5SZXNwb25kZXJzLmRpc3BhdGNoKCdvbkNyZWF0ZScsIHRoaXMsIHJlc3BvbnNl
KTsKCiAgICAgIHRoaXMudHJhbnNwb3J0Lm9wZW4odGhpcy5tZXRob2QudG9VcHBlckNhc2UoKSwg
dGhpcy51cmwsCiAgICAgICAgdGhpcy5vcHRpb25zLmFzeW5jaHJvbm91cyk7CgogICAgICBpZiAo
dGhpcy5vcHRpb25zLmFzeW5jaHJvbm91cykgdGhpcy5yZXNwb25kVG9SZWFkeVN0YXRlLmJpbmQo
dGhpcykuZGVmZXIoMSk7CgogICAgICB0aGlzLnRyYW5zcG9ydC5vbnJlYWR5c3RhdGVjaGFuZ2Ug
PSB0aGlzLm9uU3RhdGVDaGFuZ2UuYmluZCh0aGlzKTsKICAgICAgdGhpcy5zZXRSZXF1ZXN0SGVh
ZGVycygpOwoKICAgICAgdGhpcy5ib2R5ID0gdGhpcy5tZXRob2QgPT0gJ3Bvc3QnID8gKHRoaXMu
b3B0aW9ucy5wb3N0Qm9keSB8fCBwYXJhbXMpIDogbnVsbDsKICAgICAgdGhpcy50cmFuc3BvcnQu
c2VuZCh0aGlzLmJvZHkpOwoKICAgICAgLyogRm9yY2UgRmlyZWZveCB0byBoYW5kbGUgcmVhZHkg
c3RhdGUgNCBmb3Igc3luY2hyb25vdXMgcmVxdWVzdHMgKi8KICAgICAgaWYgKCF0aGlzLm9wdGlv
bnMuYXN5bmNocm9ub3VzICYmIHRoaXMudHJhbnNwb3J0Lm92ZXJyaWRlTWltZVR5cGUpCiAgICAg
ICAgdGhpcy5vblN0YXRlQ2hhbmdlKCk7CgogICAgfQogICAgY2F0Y2ggKGUpIHsKICAgICAgdGhp
cy5kaXNwYXRjaEV4Y2VwdGlvbihlKTsKICAgIH0KICB9LAoKICBvblN0YXRlQ2hhbmdlOiBmdW5j
dGlvbigpIHsKICAgIHZhciByZWFkeVN0YXRlID0gdGhpcy50cmFuc3BvcnQucmVhZHlTdGF0ZTsK
ICAgIGlmIChyZWFkeVN0YXRlID4gMSAmJiAhKChyZWFkeVN0YXRlID09IDQpICYmIHRoaXMuX2Nv
bXBsZXRlKSkKICAgICAgdGhpcy5yZXNwb25kVG9SZWFkeVN0YXRlKHRoaXMudHJhbnNwb3J0LnJl
YWR5U3RhdGUpOwogIH0sCgogIHNldFJlcXVlc3RIZWFkZXJzOiBmdW5jdGlvbigpIHsKICAgIHZh
ciBoZWFkZXJzID0gewogICAgICAnWC1SZXF1ZXN0ZWQtV2l0aCc6ICdYTUxIdHRwUmVxdWVzdCcs
CiAgICAgICdYLVByb3RvdHlwZS1WZXJzaW9uJzogUHJvdG90eXBlLlZlcnNpb24sCiAgICAgICdB
Y2NlcHQnOiAndGV4dC9qYXZhc2NyaXB0LCB0ZXh0L2h0bWwsIGFwcGxpY2F0aW9uL3htbCwgdGV4
dC94bWwsICovKicKICAgIH07CgogICAgaWYgKHRoaXMubWV0aG9kID09ICdwb3N0JykgewogICAg
ICBoZWFkZXJzWydDb250ZW50LXR5cGUnXSA9IHRoaXMub3B0aW9ucy5jb250ZW50VHlwZSArCiAg
ICAgICAgKHRoaXMub3B0aW9ucy5lbmNvZGluZyA/ICc7IGNoYXJzZXQ9JyArIHRoaXMub3B0aW9u
cy5lbmNvZGluZyA6ICcnKTsKCiAgICAgIC8qIEZvcmNlICJDb25uZWN0aW9uOiBjbG9zZSIgZm9y
IG9sZGVyIE1vemlsbGEgYnJvd3NlcnMgdG8gd29yawogICAgICAgKiBhcm91bmQgYSBidWcgd2hl
cmUgWE1MSHR0cFJlcXVlc3Qgc2VuZHMgYW4gaW5jb3JyZWN0CiAgICAgICAqIENvbnRlbnQtbGVu
Z3RoIGhlYWRlci4gU2VlIE1vemlsbGEgQnVnemlsbGEgIzI0NjY1MS4KICAgICAgICovCiAgICAg
IGlmICh0aGlzLnRyYW5zcG9ydC5vdmVycmlkZU1pbWVUeXBlICYmCiAgICAgICAgICAobmF2aWdh
dG9yLnVzZXJBZ2VudC5tYXRjaCgvR2Vja29cLyhcZHs0fSkvKSB8fCBbMCwyMDA1XSlbMV0gPCAy
MDA1KQogICAgICAgICAgICBoZWFkZXJzWydDb25uZWN0aW9uJ10gPSAnY2xvc2UnOwogICAgfQoK
ICAgIC8vIHVzZXItZGVmaW5lZCBoZWFkZXJzCiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5y
ZXF1ZXN0SGVhZGVycyA9PSAnb2JqZWN0JykgewogICAgICB2YXIgZXh0cmFzID0gdGhpcy5vcHRp
b25zLnJlcXVlc3RIZWFkZXJzOwoKICAgICAgaWYgKE9iamVjdC5pc0Z1bmN0aW9uKGV4dHJhcy5w
dXNoKSkKICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZXh0cmFzLmxlbmd0aDsgaSA8
IGxlbmd0aDsgaSArPSAyKQogICAgICAgICAgaGVhZGVyc1tleHRyYXNbaV1dID0gZXh0cmFzW2kr
MV07CiAgICAgIGVsc2UKICAgICAgICAkSChleHRyYXMpLmVhY2goZnVuY3Rpb24ocGFpcikgeyBo
ZWFkZXJzW3BhaXIua2V5XSA9IHBhaXIudmFsdWUgfSk7CiAgICB9CgogICAgZm9yICh2YXIgbmFt
ZSBpbiBoZWFkZXJzKQogICAgICB0aGlzLnRyYW5zcG9ydC5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUs
IGhlYWRlcnNbbmFtZV0pOwogIH0sCgogIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgewogICAgdmFyIHN0
YXR1cyA9IHRoaXMuZ2V0U3RhdHVzKCk7CiAgICByZXR1cm4gIXN0YXR1cyB8fCAoc3RhdHVzID49
IDIwMCAmJiBzdGF0dXMgPCAzMDApOwogIH0sCgogIGdldFN0YXR1czogZnVuY3Rpb24oKSB7CiAg
ICB0cnkgewogICAgICByZXR1cm4gdGhpcy50cmFuc3BvcnQuc3RhdHVzIHx8IDA7CiAgICB9IGNh
dGNoIChlKSB7IHJldHVybiAwIH0KICB9LAoKICByZXNwb25kVG9SZWFkeVN0YXRlOiBmdW5jdGlv
bihyZWFkeVN0YXRlKSB7CiAgICB2YXIgc3RhdGUgPSBBamF4LlJlcXVlc3QuRXZlbnRzW3JlYWR5
U3RhdGVdLCByZXNwb25zZSA9IG5ldyBBamF4LlJlc3BvbnNlKHRoaXMpOwoKICAgIGlmIChzdGF0
ZSA9PSAnQ29tcGxldGUnKSB7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5fY29tcGxldGUgPSB0
cnVlOwogICAgICAgICh0aGlzLm9wdGlvbnNbJ29uJyArIHJlc3BvbnNlLnN0YXR1c10KICAgICAg
ICAgfHwgdGhpcy5vcHRpb25zWydvbicgKyAodGhpcy5zdWNjZXNzKCkgPyAnU3VjY2VzcycgOiAn
RmFpbHVyZScpXQogICAgICAgICB8fCBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbikocmVzcG9uc2Us
IHJlc3BvbnNlLmhlYWRlckpTT04pOwogICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgdGhpcy5k
aXNwYXRjaEV4Y2VwdGlvbihlKTsKICAgICAgfQoKICAgICAgdmFyIGNvbnRlbnRUeXBlID0gcmVz
cG9uc2UuZ2V0SGVhZGVyKCdDb250ZW50LXR5cGUnKTsKICAgICAgaWYgKHRoaXMub3B0aW9ucy5l
dmFsSlMgPT0gJ2ZvcmNlJwogICAgICAgICAgfHwgKHRoaXMub3B0aW9ucy5ldmFsSlMgJiYgdGhp
cy5pc1NhbWVPcmlnaW4oKSAmJiBjb250ZW50VHlwZQogICAgICAgICAgJiYgY29udGVudFR5cGUu
bWF0Y2goL15ccyoodGV4dHxhcHBsaWNhdGlvbilcLyh4LSk/KGphdmF8ZWNtYSlzY3JpcHQoOy4q
KT9ccyokL2kpKSkKICAgICAgICB0aGlzLmV2YWxSZXNwb25zZSgpOwogICAgfQoKICAgIHRyeSB7
CiAgICAgICh0aGlzLm9wdGlvbnNbJ29uJyArIHN0YXRlXSB8fCBQcm90b3R5cGUuZW1wdHlGdW5j
dGlvbikocmVzcG9uc2UsIHJlc3BvbnNlLmhlYWRlckpTT04pOwogICAgICBBamF4LlJlc3BvbmRl
cnMuZGlzcGF0Y2goJ29uJyArIHN0YXRlLCB0aGlzLCByZXNwb25zZSwgcmVzcG9uc2UuaGVhZGVy
SlNPTik7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIHRoaXMuZGlzcGF0Y2hFeGNlcHRpb24oZSk7
CiAgICB9CgogICAgaWYgKHN0YXRlID09ICdDb21wbGV0ZScpIHsKICAgICAgLy8gYXZvaWQgbWVt
b3J5IGxlYWsgaW4gTVNJRTogY2xlYW4gdXAKICAgICAgdGhpcy50cmFuc3BvcnQub25yZWFkeXN0
YXRlY2hhbmdlID0gUHJvdG90eXBlLmVtcHR5RnVuY3Rpb247CiAgICB9CiAgfSwKCiAgaXNTYW1l
T3JpZ2luOiBmdW5jdGlvbigpIHsKICAgIHZhciBtID0gdGhpcy51cmwubWF0Y2goL15ccypodHRw
cz86XC9cL1teXC9dKi8pOwogICAgcmV0dXJuICFtIHx8IChtWzBdID09ICcje3Byb3RvY29sfS8v
I3tkb21haW59I3twb3J0fScuaW50ZXJwb2xhdGUoewogICAgICBwcm90b2NvbDogbG9jYXRpb24u
cHJvdG9jb2wsCiAgICAgIGRvbWFpbjogZG9jdW1lbnQuZG9tYWluLAogICAgICBwb3J0OiBsb2Nh
dGlvbi5wb3J0ID8gJzonICsgbG9jYXRpb24ucG9ydCA6ICcnCiAgICB9KSk7CiAgfSwKCiAgZ2V0
SGVhZGVyOiBmdW5jdGlvbihuYW1lKSB7CiAgICB0cnkgewogICAgICByZXR1cm4gdGhpcy50cmFu
c3BvcnQuZ2V0UmVzcG9uc2VIZWFkZXIobmFtZSkgfHwgbnVsbDsKICAgIH0gY2F0Y2ggKGUpIHsg
cmV0dXJuIG51bGwgfQogIH0sCgogIGV2YWxSZXNwb25zZTogZnVuY3Rpb24oKSB7CiAgICB0cnkg
ewogICAgICByZXR1cm4gZXZhbCgodGhpcy50cmFuc3BvcnQucmVzcG9uc2VUZXh0IHx8ICcnKS51
bmZpbHRlckpTT04oKSk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIHRoaXMuZGlzcGF0Y2hFeGNl
cHRpb24oZSk7CiAgICB9CiAgfSwKCiAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2Vw
dGlvbikgewogICAgKHRoaXMub3B0aW9ucy5vbkV4Y2VwdGlvbiB8fCBQcm90b3R5cGUuZW1wdHlG
dW5jdGlvbikodGhpcywgZXhjZXB0aW9uKTsKICAgIEFqYXguUmVzcG9uZGVycy5kaXNwYXRjaCgn
b25FeGNlcHRpb24nLCB0aGlzLCBleGNlcHRpb24pOwogIH0KfSk7CgpBamF4LlJlcXVlc3QuRXZl
bnRzID0KICBbJ1VuaW5pdGlhbGl6ZWQnLCAnTG9hZGluZycsICdMb2FkZWQnLCAnSW50ZXJhY3Rp
dmUnLCAnQ29tcGxldGUnXTsKCkFqYXguUmVzcG9uc2UgPSBDbGFzcy5jcmVhdGUoewogIGluaXRp
YWxpemU6IGZ1bmN0aW9uKHJlcXVlc3QpewogICAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAg
IHZhciB0cmFuc3BvcnQgID0gdGhpcy50cmFuc3BvcnQgID0gcmVxdWVzdC50cmFuc3BvcnQsCiAg
ICAgICAgcmVhZHlTdGF0ZSA9IHRoaXMucmVhZHlTdGF0ZSA9IHRyYW5zcG9ydC5yZWFkeVN0YXRl
OwoKICAgIGlmKChyZWFkeVN0YXRlID4gMiAmJiAhUHJvdG90eXBlLkJyb3dzZXIuSUUpIHx8IHJl
YWR5U3RhdGUgPT0gNCkgewogICAgICB0aGlzLnN0YXR1cyAgICAgICA9IHRoaXMuZ2V0U3RhdHVz
KCk7CiAgICAgIHRoaXMuc3RhdHVzVGV4dCAgID0gdGhpcy5nZXRTdGF0dXNUZXh0KCk7CiAgICAg
IHRoaXMucmVzcG9uc2VUZXh0ID0gU3RyaW5nLmludGVycHJldCh0cmFuc3BvcnQucmVzcG9uc2VU
ZXh0KTsKICAgICAgdGhpcy5oZWFkZXJKU09OICAgPSB0aGlzLl9nZXRIZWFkZXJKU09OKCk7CiAg
ICB9CgogICAgaWYocmVhZHlTdGF0ZSA9PSA0KSB7CiAgICAgIHZhciB4bWwgPSB0cmFuc3BvcnQu
cmVzcG9uc2VYTUw7CiAgICAgIHRoaXMucmVzcG9uc2VYTUwgID0gT2JqZWN0LmlzVW5kZWZpbmVk
KHhtbCkgPyBudWxsIDogeG1sOwogICAgICB0aGlzLnJlc3BvbnNlSlNPTiA9IHRoaXMuX2dldFJl
c3BvbnNlSlNPTigpOwogICAgfQogIH0sCgogIHN0YXR1czogICAgICAwLAogIHN0YXR1c1RleHQ6
ICcnLAoKICBnZXRTdGF0dXM6IEFqYXguUmVxdWVzdC5wcm90b3R5cGUuZ2V0U3RhdHVzLAoKICBn
ZXRTdGF0dXNUZXh0OiBmdW5jdGlvbigpIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiB0aGlzLnRy
YW5zcG9ydC5zdGF0dXNUZXh0IHx8ICcnOwogICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gJycgfQog
IH0sCgogIGdldEhlYWRlcjogQWpheC5SZXF1ZXN0LnByb3RvdHlwZS5nZXRIZWFkZXIsCgogIGdl
dEFsbEhlYWRlcnM6IGZ1bmN0aW9uKCkgewogICAgdHJ5IHsKICAgICAgcmV0dXJuIHRoaXMuZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzKCk7CiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBudWxsIH0KICB9
LAoKICBnZXRSZXNwb25zZUhlYWRlcjogZnVuY3Rpb24obmFtZSkgewogICAgcmV0dXJuIHRoaXMu
dHJhbnNwb3J0LmdldFJlc3BvbnNlSGVhZGVyKG5hbWUpOwogIH0sCgogIGdldEFsbFJlc3BvbnNl
SGVhZGVyczogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy50cmFuc3BvcnQuZ2V0QWxsUmVz
cG9uc2VIZWFkZXJzKCk7CiAgfSwKCiAgX2dldEhlYWRlckpTT046IGZ1bmN0aW9uKCkgewogICAg
dmFyIGpzb24gPSB0aGlzLmdldEhlYWRlcignWC1KU09OJyk7CiAgICBpZiAoIWpzb24pIHJldHVy
biBudWxsOwogICAganNvbiA9IGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoanNvbikpOwogICAg
dHJ5IHsKICAgICAgcmV0dXJuIGpzb24uZXZhbEpTT04odGhpcy5yZXF1ZXN0Lm9wdGlvbnMuc2Fu
aXRpemVKU09OIHx8CiAgICAgICAgIXRoaXMucmVxdWVzdC5pc1NhbWVPcmlnaW4oKSk7CiAgICB9
IGNhdGNoIChlKSB7CiAgICAgIHRoaXMucmVxdWVzdC5kaXNwYXRjaEV4Y2VwdGlvbihlKTsKICAg
IH0KICB9LAoKICBfZ2V0UmVzcG9uc2VKU09OOiBmdW5jdGlvbigpIHsKICAgIHZhciBvcHRpb25z
ID0gdGhpcy5yZXF1ZXN0Lm9wdGlvbnM7CiAgICBpZiAoIW9wdGlvbnMuZXZhbEpTT04gfHwgKG9w
dGlvbnMuZXZhbEpTT04gIT0gJ2ZvcmNlJyAmJgogICAgICAhKHRoaXMuZ2V0SGVhZGVyKCdDb250
ZW50LXR5cGUnKSB8fCAnJykuaW5jbHVkZSgnYXBwbGljYXRpb24vanNvbicpKSB8fAogICAgICAg
IHRoaXMucmVzcG9uc2VUZXh0LmJsYW5rKCkpCiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgIHRy
eSB7CiAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlVGV4dC5ldmFsSlNPTihvcHRpb25zLnNhbml0
aXplSlNPTiB8fAogICAgICAgICF0aGlzLnJlcXVlc3QuaXNTYW1lT3JpZ2luKCkpOwogICAgfSBj
YXRjaCAoZSkgewogICAgICB0aGlzLnJlcXVlc3QuZGlzcGF0Y2hFeGNlcHRpb24oZSk7CiAgICB9
CiAgfQp9KTsKCkFqYXguVXBkYXRlciA9IENsYXNzLmNyZWF0ZShBamF4LlJlcXVlc3QsIHsKICBp
bml0aWFsaXplOiBmdW5jdGlvbigkc3VwZXIsIGNvbnRhaW5lciwgdXJsLCBvcHRpb25zKSB7CiAg
ICB0aGlzLmNvbnRhaW5lciA9IHsKICAgICAgc3VjY2VzczogKGNvbnRhaW5lci5zdWNjZXNzIHx8
IGNvbnRhaW5lciksCiAgICAgIGZhaWx1cmU6IChjb250YWluZXIuZmFpbHVyZSB8fCAoY29udGFp
bmVyLnN1Y2Nlc3MgPyBudWxsIDogY29udGFpbmVyKSkKICAgIH07CgogICAgb3B0aW9ucyA9IE9i
amVjdC5jbG9uZShvcHRpb25zKTsKICAgIHZhciBvbkNvbXBsZXRlID0gb3B0aW9ucy5vbkNvbXBs
ZXRlOwogICAgb3B0aW9ucy5vbkNvbXBsZXRlID0gKGZ1bmN0aW9uKHJlc3BvbnNlLCBqc29uKSB7
CiAgICAgIHRoaXMudXBkYXRlQ29udGVudChyZXNwb25zZS5yZXNwb25zZVRleHQpOwogICAgICBp
ZiAoT2JqZWN0LmlzRnVuY3Rpb24ob25Db21wbGV0ZSkpIG9uQ29tcGxldGUocmVzcG9uc2UsIGpz
b24pOwogICAgfSkuYmluZCh0aGlzKTsKCiAgICAkc3VwZXIodXJsLCBvcHRpb25zKTsKICB9LAoK
ICB1cGRhdGVDb250ZW50OiBmdW5jdGlvbihyZXNwb25zZVRleHQpIHsKICAgIHZhciByZWNlaXZl
ciA9IHRoaXMuY29udGFpbmVyW3RoaXMuc3VjY2VzcygpID8gJ3N1Y2Nlc3MnIDogJ2ZhaWx1cmUn
XSwKICAgICAgICBvcHRpb25zID0gdGhpcy5vcHRpb25zOwoKICAgIGlmICghb3B0aW9ucy5ldmFs
U2NyaXB0cykgcmVzcG9uc2VUZXh0ID0gcmVzcG9uc2VUZXh0LnN0cmlwU2NyaXB0cygpOwoKICAg
IGlmIChyZWNlaXZlciA9ICQocmVjZWl2ZXIpKSB7CiAgICAgIGlmIChvcHRpb25zLmluc2VydGlv
bikgewogICAgICAgIGlmIChPYmplY3QuaXNTdHJpbmcob3B0aW9ucy5pbnNlcnRpb24pKSB7CiAg
ICAgICAgICB2YXIgaW5zZXJ0aW9uID0geyB9OyBpbnNlcnRpb25bb3B0aW9ucy5pbnNlcnRpb25d
ID0gcmVzcG9uc2VUZXh0OwogICAgICAgICAgcmVjZWl2ZXIuaW5zZXJ0KGluc2VydGlvbik7CiAg
ICAgICAgfQogICAgICAgIGVsc2Ugb3B0aW9ucy5pbnNlcnRpb24ocmVjZWl2ZXIsIHJlc3BvbnNl
VGV4dCk7CiAgICAgIH0KICAgICAgZWxzZSByZWNlaXZlci51cGRhdGUocmVzcG9uc2VUZXh0KTsK
ICAgIH0KICB9Cn0pOwoKQWpheC5QZXJpb2RpY2FsVXBkYXRlciA9IENsYXNzLmNyZWF0ZShBamF4
LkJhc2UsIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbigkc3VwZXIsIGNvbnRhaW5lciwgdXJsLCBv
cHRpb25zKSB7CiAgICAkc3VwZXIob3B0aW9ucyk7CiAgICB0aGlzLm9uQ29tcGxldGUgPSB0aGlz
Lm9wdGlvbnMub25Db21wbGV0ZTsKCiAgICB0aGlzLmZyZXF1ZW5jeSA9ICh0aGlzLm9wdGlvbnMu
ZnJlcXVlbmN5IHx8IDIpOwogICAgdGhpcy5kZWNheSA9ICh0aGlzLm9wdGlvbnMuZGVjYXkgfHwg
MSk7CgogICAgdGhpcy51cGRhdGVyID0geyB9OwogICAgdGhpcy5jb250YWluZXIgPSBjb250YWlu
ZXI7CiAgICB0aGlzLnVybCA9IHVybDsKCiAgICB0aGlzLnN0YXJ0KCk7CiAgfSwKCiAgc3RhcnQ6
IGZ1bmN0aW9uKCkgewogICAgdGhpcy5vcHRpb25zLm9uQ29tcGxldGUgPSB0aGlzLnVwZGF0ZUNv
bXBsZXRlLmJpbmQodGhpcyk7CiAgICB0aGlzLm9uVGltZXJFdmVudCgpOwogIH0sCgogIHN0b3A6
IGZ1bmN0aW9uKCkgewogICAgdGhpcy51cGRhdGVyLm9wdGlvbnMub25Db21wbGV0ZSA9IHVuZGVm
aW5lZDsKICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTsKICAgICh0aGlzLm9uQ29tcGxldGUg
fHwgUHJvdG90eXBlLmVtcHR5RnVuY3Rpb24pLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgfSwK
CiAgdXBkYXRlQ29tcGxldGU6IGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICBpZiAodGhpcy5vcHRp
b25zLmRlY2F5KSB7CiAgICAgIHRoaXMuZGVjYXkgPSAocmVzcG9uc2UucmVzcG9uc2VUZXh0ID09
IHRoaXMubGFzdFRleHQgPwogICAgICAgIHRoaXMuZGVjYXkgKiB0aGlzLm9wdGlvbnMuZGVjYXkg
OiAxKTsKCiAgICAgIHRoaXMubGFzdFRleHQgPSByZXNwb25zZS5yZXNwb25zZVRleHQ7CiAgICB9
CiAgICB0aGlzLnRpbWVyID0gdGhpcy5vblRpbWVyRXZlbnQuYmluZCh0aGlzKS5kZWxheSh0aGlz
LmRlY2F5ICogdGhpcy5mcmVxdWVuY3kpOwogIH0sCgogIG9uVGltZXJFdmVudDogZnVuY3Rpb24o
KSB7CiAgICB0aGlzLnVwZGF0ZXIgPSBuZXcgQWpheC5VcGRhdGVyKHRoaXMuY29udGFpbmVyLCB0
aGlzLnVybCwgdGhpcy5vcHRpb25zKTsKICB9Cn0pOwpmdW5jdGlvbiAkKGVsZW1lbnQpIHsKICBp
ZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHsKICAgIGZvciAodmFyIGkgPSAwLCBlbGVtZW50cyA9
IFtdLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspCiAgICAgIGVs
ZW1lbnRzLnB1c2goJChhcmd1bWVudHNbaV0pKTsKICAgIHJldHVybiBlbGVtZW50czsKICB9CiAg
aWYgKE9iamVjdC5pc1N0cmluZyhlbGVtZW50KSkKICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50KTsKICByZXR1cm4gRWxlbWVudC5leHRlbmQoZWxlbWVudCk7Cn0K
CmlmIChQcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLlhQYXRoKSB7CiAgZG9jdW1lbnQuX2dldEVs
ZW1lbnRzQnlYUGF0aCA9IGZ1bmN0aW9uKGV4cHJlc3Npb24sIHBhcmVudEVsZW1lbnQpIHsKICAg
IHZhciByZXN1bHRzID0gW107CiAgICB2YXIgcXVlcnkgPSBkb2N1bWVudC5ldmFsdWF0ZShleHBy
ZXNzaW9uLCAkKHBhcmVudEVsZW1lbnQpIHx8IGRvY3VtZW50LAogICAgICBudWxsLCBYUGF0aFJl
c3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7CiAgICBmb3IgKHZhciBpID0g
MCwgbGVuZ3RoID0gcXVlcnkuc25hcHNob3RMZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykKICAgICAg
cmVzdWx0cy5wdXNoKEVsZW1lbnQuZXh0ZW5kKHF1ZXJ5LnNuYXBzaG90SXRlbShpKSkpOwogICAg
cmV0dXJuIHJlc3VsdHM7CiAgfTsKfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgppZiAoIXdpbmRv
dy5Ob2RlKSB2YXIgTm9kZSA9IHsgfTsKCmlmICghTm9kZS5FTEVNRU5UX05PREUpIHsKICAvLyBE
T00gbGV2ZWwgMiBFQ01BU2NyaXB0IExhbmd1YWdlIEJpbmRpbmcKICBPYmplY3QuZXh0ZW5kKE5v
ZGUsIHsKICAgIEVMRU1FTlRfTk9ERTogMSwKICAgIEFUVFJJQlVURV9OT0RFOiAyLAogICAgVEVY
VF9OT0RFOiAzLAogICAgQ0RBVEFfU0VDVElPTl9OT0RFOiA0LAogICAgRU5USVRZX1JFRkVSRU5D
RV9OT0RFOiA1LAogICAgRU5USVRZX05PREU6IDYsCiAgICBQUk9DRVNTSU5HX0lOU1RSVUNUSU9O
X05PREU6IDcsCiAgICBDT01NRU5UX05PREU6IDgsCiAgICBET0NVTUVOVF9OT0RFOiA5LAogICAg
RE9DVU1FTlRfVFlQRV9OT0RFOiAxMCwKICAgIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6IDExLAog
ICAgTk9UQVRJT05fTk9ERTogMTIKICB9KTsKfQoKKGZ1bmN0aW9uKCkgewogIHZhciBlbGVtZW50
ID0gdGhpcy5FbGVtZW50OwogIHRoaXMuRWxlbWVudCA9IGZ1bmN0aW9uKHRhZ05hbWUsIGF0dHJp
YnV0ZXMpIHsKICAgIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzIHx8IHsgfTsKICAgIHRhZ05hbWUg
PSB0YWdOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICB2YXIgY2FjaGUgPSBFbGVtZW50LmNhY2hlOwog
ICAgaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFICYmIGF0dHJpYnV0ZXMubmFtZSkgewogICAgICB0
YWdOYW1lID0gJzwnICsgdGFnTmFtZSArICcgbmFtZT0iJyArIGF0dHJpYnV0ZXMubmFtZSArICci
Pic7CiAgICAgIGRlbGV0ZSBhdHRyaWJ1dGVzLm5hbWU7CiAgICAgIHJldHVybiBFbGVtZW50Lndy
aXRlQXR0cmlidXRlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSksIGF0dHJpYnV0ZXMp
OwogICAgfQogICAgaWYgKCFjYWNoZVt0YWdOYW1lXSkgY2FjaGVbdGFnTmFtZV0gPSBFbGVtZW50
LmV4dGVuZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpKTsKICAgIHJldHVybiBFbGVt
ZW50LndyaXRlQXR0cmlidXRlKGNhY2hlW3RhZ05hbWVdLmNsb25lTm9kZShmYWxzZSksIGF0dHJp
YnV0ZXMpOwogIH07CiAgT2JqZWN0LmV4dGVuZCh0aGlzLkVsZW1lbnQsIGVsZW1lbnQgfHwgeyB9
KTsKfSkuY2FsbCh3aW5kb3cpOwoKRWxlbWVudC5jYWNoZSA9IHsgfTsKCkVsZW1lbnQuTWV0aG9k
cyA9IHsKICB2aXNpYmxlOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50
KS5zdHlsZS5kaXNwbGF5ICE9ICdub25lJzsKICB9LAoKICB0b2dnbGU6IGZ1bmN0aW9uKGVsZW1l
bnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgRWxlbWVudFtFbGVtZW50LnZpc2li
bGUoZWxlbWVudCkgPyAnaGlkZScgOiAnc2hvdyddKGVsZW1lbnQpOwogICAgcmV0dXJuIGVsZW1l
bnQ7CiAgfSwKCiAgaGlkZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgJChlbGVtZW50KS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgc2hvdzogZnVu
Y3Rpb24oZWxlbWVudCkgewogICAgJChlbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICBy
ZXR1cm4gZWxlbWVudDsKICB9LAoKICByZW1vdmU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVs
ZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVs
ZW1lbnQpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgdXBkYXRlOiBmdW5jdGlvbihlbGVt
ZW50LCBjb250ZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChjb250ZW50
ICYmIGNvbnRlbnQudG9FbGVtZW50KSBjb250ZW50ID0gY29udGVudC50b0VsZW1lbnQoKTsKICAg
IGlmIChPYmplY3QuaXNFbGVtZW50KGNvbnRlbnQpKSByZXR1cm4gZWxlbWVudC51cGRhdGUoKS5p
bnNlcnQoY29udGVudCk7CiAgICBjb250ZW50ID0gT2JqZWN0LnRvSFRNTChjb250ZW50KTsKICAg
IGVsZW1lbnQuaW5uZXJIVE1MID0gY29udGVudC5zdHJpcFNjcmlwdHMoKTsKICAgIGNvbnRlbnQu
ZXZhbFNjcmlwdHMuYmluZChjb250ZW50KS5kZWZlcigpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAg
fSwKCiAgcmVwbGFjZTogZnVuY3Rpb24oZWxlbWVudCwgY29udGVudCkgewogICAgZWxlbWVudCA9
ICQoZWxlbWVudCk7CiAgICBpZiAoY29udGVudCAmJiBjb250ZW50LnRvRWxlbWVudCkgY29udGVu
dCA9IGNvbnRlbnQudG9FbGVtZW50KCk7CiAgICBlbHNlIGlmICghT2JqZWN0LmlzRWxlbWVudChj
b250ZW50KSkgewogICAgICBjb250ZW50ID0gT2JqZWN0LnRvSFRNTChjb250ZW50KTsKICAgICAg
dmFyIHJhbmdlID0gZWxlbWVudC5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICAgIHJh
bmdlLnNlbGVjdE5vZGUoZWxlbWVudCk7CiAgICAgIGNvbnRlbnQuZXZhbFNjcmlwdHMuYmluZChj
b250ZW50KS5kZWZlcigpOwogICAgICBjb250ZW50ID0gcmFuZ2UuY3JlYXRlQ29udGV4dHVhbEZy
YWdtZW50KGNvbnRlbnQuc3RyaXBTY3JpcHRzKCkpOwogICAgfQogICAgZWxlbWVudC5wYXJlbnRO
b2RlLnJlcGxhY2VDaGlsZChjb250ZW50LCBlbGVtZW50KTsKICAgIHJldHVybiBlbGVtZW50Owog
IH0sCgogIGluc2VydDogZnVuY3Rpb24oZWxlbWVudCwgaW5zZXJ0aW9ucykgewogICAgZWxlbWVu
dCA9ICQoZWxlbWVudCk7CgogICAgaWYgKE9iamVjdC5pc1N0cmluZyhpbnNlcnRpb25zKSB8fCBP
YmplY3QuaXNOdW1iZXIoaW5zZXJ0aW9ucykgfHwKICAgICAgICBPYmplY3QuaXNFbGVtZW50KGlu
c2VydGlvbnMpIHx8IChpbnNlcnRpb25zICYmIChpbnNlcnRpb25zLnRvRWxlbWVudCB8fCBpbnNl
cnRpb25zLnRvSFRNTCkpKQogICAgICAgICAgaW5zZXJ0aW9ucyA9IHtib3R0b206aW5zZXJ0aW9u
c307CgogICAgdmFyIGNvbnRlbnQsIGluc2VydCwgdGFnTmFtZSwgY2hpbGROb2RlczsKCiAgICBm
b3IgKHZhciBwb3NpdGlvbiBpbiBpbnNlcnRpb25zKSB7CiAgICAgIGNvbnRlbnQgID0gaW5zZXJ0
aW9uc1twb3NpdGlvbl07CiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24udG9Mb3dlckNhc2UoKTsK
ICAgICAgaW5zZXJ0ID0gRWxlbWVudC5faW5zZXJ0aW9uVHJhbnNsYXRpb25zW3Bvc2l0aW9uXTsK
CiAgICAgIGlmIChjb250ZW50ICYmIGNvbnRlbnQudG9FbGVtZW50KSBjb250ZW50ID0gY29udGVu
dC50b0VsZW1lbnQoKTsKICAgICAgaWYgKE9iamVjdC5pc0VsZW1lbnQoY29udGVudCkpIHsKICAg
ICAgICBpbnNlcnQoZWxlbWVudCwgY29udGVudCk7CiAgICAgICAgY29udGludWU7CiAgICAgIH0K
CiAgICAgIGNvbnRlbnQgPSBPYmplY3QudG9IVE1MKGNvbnRlbnQpOwoKICAgICAgdGFnTmFtZSA9
ICgocG9zaXRpb24gPT0gJ2JlZm9yZScgfHwgcG9zaXRpb24gPT0gJ2FmdGVyJykKICAgICAgICA/
IGVsZW1lbnQucGFyZW50Tm9kZSA6IGVsZW1lbnQpLnRhZ05hbWUudG9VcHBlckNhc2UoKTsKCiAg
ICAgIGNoaWxkTm9kZXMgPSBFbGVtZW50Ll9nZXRDb250ZW50RnJvbUFub255bW91c0VsZW1lbnQo
dGFnTmFtZSwgY29udGVudC5zdHJpcFNjcmlwdHMoKSk7CgogICAgICBpZiAocG9zaXRpb24gPT0g
J3RvcCcgfHwgcG9zaXRpb24gPT0gJ2FmdGVyJykgY2hpbGROb2Rlcy5yZXZlcnNlKCk7CiAgICAg
IGNoaWxkTm9kZXMuZWFjaChpbnNlcnQuY3VycnkoZWxlbWVudCkpOwoKICAgICAgY29udGVudC5l
dmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7CiAgICB9CgogICAgcmV0dXJuIGVsZW1l
bnQ7CiAgfSwKCiAgd3JhcDogZnVuY3Rpb24oZWxlbWVudCwgd3JhcHBlciwgYXR0cmlidXRlcykg
ewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoT2JqZWN0LmlzRWxlbWVudCh3cmFw
cGVyKSkKICAgICAgJCh3cmFwcGVyKS53cml0ZUF0dHJpYnV0ZShhdHRyaWJ1dGVzIHx8IHsgfSk7
CiAgICBlbHNlIGlmIChPYmplY3QuaXNTdHJpbmcod3JhcHBlcikpIHdyYXBwZXIgPSBuZXcgRWxl
bWVudCh3cmFwcGVyLCBhdHRyaWJ1dGVzKTsKICAgIGVsc2Ugd3JhcHBlciA9IG5ldyBFbGVtZW50
KCdkaXYnLCB3cmFwcGVyKTsKICAgIGlmIChlbGVtZW50LnBhcmVudE5vZGUpCiAgICAgIGVsZW1l
bnQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQod3JhcHBlciwgZWxlbWVudCk7CiAgICB3cmFwcGVy
LmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgcmV0dXJuIHdyYXBwZXI7CiAgfSwKCiAgaW5zcGVj
dDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIg
cmVzdWx0ID0gJzwnICsgZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICAkSCh7J2lk
JzogJ2lkJywgJ2NsYXNzTmFtZSc6ICdjbGFzcyd9KS5lYWNoKGZ1bmN0aW9uKHBhaXIpIHsKICAg
ICAgdmFyIHByb3BlcnR5ID0gcGFpci5maXJzdCgpLCBhdHRyaWJ1dGUgPSBwYWlyLmxhc3QoKTsK
ICAgICAgdmFyIHZhbHVlID0gKGVsZW1lbnRbcHJvcGVydHldIHx8ICcnKS50b1N0cmluZygpOwog
ICAgICBpZiAodmFsdWUpIHJlc3VsdCArPSAnICcgKyBhdHRyaWJ1dGUgKyAnPScgKyB2YWx1ZS5p
bnNwZWN0KHRydWUpOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0ICsgJz4nOwogIH0sCgogIHJl
Y3Vyc2l2ZWx5Q29sbGVjdDogZnVuY3Rpb24oZWxlbWVudCwgcHJvcGVydHkpIHsKICAgIGVsZW1l
bnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIGVsZW1lbnRzID0gW107CiAgICB3aGlsZSAoZWxlbWVu
dCA9IGVsZW1lbnRbcHJvcGVydHldKQogICAgICBpZiAoZWxlbWVudC5ub2RlVHlwZSA9PSAxKQog
ICAgICAgIGVsZW1lbnRzLnB1c2goRWxlbWVudC5leHRlbmQoZWxlbWVudCkpOwogICAgcmV0dXJu
IGVsZW1lbnRzOwogIH0sCgogIGFuY2VzdG9yczogZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0
dXJuICQoZWxlbWVudCkucmVjdXJzaXZlbHlDb2xsZWN0KCdwYXJlbnROb2RlJyk7CiAgfSwKCiAg
ZGVzY2VuZGFudHM6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQpLnNl
bGVjdCgiKiIpOwogIH0sCgogIGZpcnN0RGVzY2VuZGFudDogZnVuY3Rpb24oZWxlbWVudCkgewog
ICAgZWxlbWVudCA9ICQoZWxlbWVudCkuZmlyc3RDaGlsZDsKICAgIHdoaWxlIChlbGVtZW50ICYm
IGVsZW1lbnQubm9kZVR5cGUgIT0gMSkgZWxlbWVudCA9IGVsZW1lbnQubmV4dFNpYmxpbmc7CiAg
ICByZXR1cm4gJChlbGVtZW50KTsKICB9LAoKICBpbW1lZGlhdGVEZXNjZW5kYW50czogZnVuY3Rp
b24oZWxlbWVudCkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkuZmlyc3RDaGlsZCkp
IHJldHVybiBbXTsKICAgIHdoaWxlIChlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgIT0gMSkg
ZWxlbWVudCA9IGVsZW1lbnQubmV4dFNpYmxpbmc7CiAgICBpZiAoZWxlbWVudCkgcmV0dXJuIFtl
bGVtZW50XS5jb25jYXQoJChlbGVtZW50KS5uZXh0U2libGluZ3MoKSk7CiAgICByZXR1cm4gW107
CiAgfSwKCiAgcHJldmlvdXNTaWJsaW5nczogZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0dXJu
ICQoZWxlbWVudCkucmVjdXJzaXZlbHlDb2xsZWN0KCdwcmV2aW91c1NpYmxpbmcnKTsKICB9LAoK
ICBuZXh0U2libGluZ3M6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQp
LnJlY3Vyc2l2ZWx5Q29sbGVjdCgnbmV4dFNpYmxpbmcnKTsKICB9LAoKICBzaWJsaW5nczogZnVu
Y3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICByZXR1cm4gZWxl
bWVudC5wcmV2aW91c1NpYmxpbmdzKCkucmV2ZXJzZSgpLmNvbmNhdChlbGVtZW50Lm5leHRTaWJs
aW5ncygpKTsKICB9LAoKICBtYXRjaDogZnVuY3Rpb24oZWxlbWVudCwgc2VsZWN0b3IpIHsKICAg
IGlmIChPYmplY3QuaXNTdHJpbmcoc2VsZWN0b3IpKQogICAgICBzZWxlY3RvciA9IG5ldyBTZWxl
Y3RvcihzZWxlY3Rvcik7CiAgICByZXR1cm4gc2VsZWN0b3IubWF0Y2goJChlbGVtZW50KSk7CiAg
fSwKCiAgdXA6IGZ1bmN0aW9uKGVsZW1lbnQsIGV4cHJlc3Npb24sIGluZGV4KSB7CiAgICBlbGVt
ZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHJldHVybiAk
KGVsZW1lbnQucGFyZW50Tm9kZSk7CiAgICB2YXIgYW5jZXN0b3JzID0gZWxlbWVudC5hbmNlc3Rv
cnMoKTsKICAgIHJldHVybiBPYmplY3QuaXNOdW1iZXIoZXhwcmVzc2lvbikgPyBhbmNlc3RvcnNb
ZXhwcmVzc2lvbl0gOgogICAgICBTZWxlY3Rvci5maW5kRWxlbWVudChhbmNlc3RvcnMsIGV4cHJl
c3Npb24sIGluZGV4KTsKICB9LAoKICBkb3duOiBmdW5jdGlvbihlbGVtZW50LCBleHByZXNzaW9u
LCBpbmRleCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoYXJndW1lbnRzLmxl
bmd0aCA9PSAxKSByZXR1cm4gZWxlbWVudC5maXJzdERlc2NlbmRhbnQoKTsKICAgIHJldHVybiBP
YmplY3QuaXNOdW1iZXIoZXhwcmVzc2lvbikgPyBlbGVtZW50LmRlc2NlbmRhbnRzKClbZXhwcmVz
c2lvbl0gOgogICAgICBlbGVtZW50LnNlbGVjdChleHByZXNzaW9uKVtpbmRleCB8fCAwXTsKICB9
LAoKICBwcmV2aW91czogZnVuY3Rpb24oZWxlbWVudCwgZXhwcmVzc2lvbiwgaW5kZXgpIHsKICAg
IGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgcmV0
dXJuICQoU2VsZWN0b3IuaGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyhlbGVtZW50KSk7
CiAgICB2YXIgcHJldmlvdXNTaWJsaW5ncyA9IGVsZW1lbnQucHJldmlvdXNTaWJsaW5ncygpOwog
ICAgcmV0dXJuIE9iamVjdC5pc051bWJlcihleHByZXNzaW9uKSA/IHByZXZpb3VzU2libGluZ3Nb
ZXhwcmVzc2lvbl0gOgogICAgICBTZWxlY3Rvci5maW5kRWxlbWVudChwcmV2aW91c1NpYmxpbmdz
LCBleHByZXNzaW9uLCBpbmRleCk7CiAgfSwKCiAgbmV4dDogZnVuY3Rpb24oZWxlbWVudCwgZXhw
cmVzc2lvbiwgaW5kZXgpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGFyZ3Vt
ZW50cy5sZW5ndGggPT0gMSkgcmV0dXJuICQoU2VsZWN0b3IuaGFuZGxlcnMubmV4dEVsZW1lbnRT
aWJsaW5nKGVsZW1lbnQpKTsKICAgIHZhciBuZXh0U2libGluZ3MgPSBlbGVtZW50Lm5leHRTaWJs
aW5ncygpOwogICAgcmV0dXJuIE9iamVjdC5pc051bWJlcihleHByZXNzaW9uKSA/IG5leHRTaWJs
aW5nc1tleHByZXNzaW9uXSA6CiAgICAgIFNlbGVjdG9yLmZpbmRFbGVtZW50KG5leHRTaWJsaW5n
cywgZXhwcmVzc2lvbiwgaW5kZXgpOwogIH0sCgogIHNlbGVjdDogZnVuY3Rpb24oKSB7CiAgICB2
YXIgYXJncyA9ICRBKGFyZ3VtZW50cyksIGVsZW1lbnQgPSAkKGFyZ3Muc2hpZnQoKSk7CiAgICBy
ZXR1cm4gU2VsZWN0b3IuZmluZENoaWxkRWxlbWVudHMoZWxlbWVudCwgYXJncyk7CiAgfSwKCiAg
YWRqYWNlbnQ6IGZ1bmN0aW9uKCkgewogICAgdmFyIGFyZ3MgPSAkQShhcmd1bWVudHMpLCBlbGVt
ZW50ID0gJChhcmdzLnNoaWZ0KCkpOwogICAgcmV0dXJuIFNlbGVjdG9yLmZpbmRDaGlsZEVsZW1l
bnRzKGVsZW1lbnQucGFyZW50Tm9kZSwgYXJncykud2l0aG91dChlbGVtZW50KTsKICB9LAoKICBp
ZGVudGlmeTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAg
ICB2YXIgaWQgPSBlbGVtZW50LnJlYWRBdHRyaWJ1dGUoJ2lkJyksIHNlbGYgPSBhcmd1bWVudHMu
Y2FsbGVlOwogICAgaWYgKGlkKSByZXR1cm4gaWQ7CiAgICBkbyB7IGlkID0gJ2Fub255bW91c19l
bGVtZW50XycgKyBzZWxmLmNvdW50ZXIrKyB9IHdoaWxlICgkKGlkKSk7CiAgICBlbGVtZW50Lndy
aXRlQXR0cmlidXRlKCdpZCcsIGlkKTsKICAgIHJldHVybiBpZDsKICB9LAoKICByZWFkQXR0cmli
dXRlOiBmdW5jdGlvbihlbGVtZW50LCBuYW1lKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsK
ICAgIGlmIChQcm90b3R5cGUuQnJvd3Nlci5JRSkgewogICAgICB2YXIgdCA9IEVsZW1lbnQuX2F0
dHJpYnV0ZVRyYW5zbGF0aW9ucy5yZWFkOwogICAgICBpZiAodC52YWx1ZXNbbmFtZV0pIHJldHVy
biB0LnZhbHVlc1tuYW1lXShlbGVtZW50LCBuYW1lKTsKICAgICAgaWYgKHQubmFtZXNbbmFtZV0p
IG5hbWUgPSB0Lm5hbWVzW25hbWVdOwogICAgICBpZiAobmFtZS5pbmNsdWRlKCc6JykpIHsKICAg
ICAgICByZXR1cm4gKCFlbGVtZW50LmF0dHJpYnV0ZXMgfHwgIWVsZW1lbnQuYXR0cmlidXRlc1tu
YW1lXSkgPyBudWxsIDoKICAgICAgICAgZWxlbWVudC5hdHRyaWJ1dGVzW25hbWVdLnZhbHVlOwog
ICAgICB9CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC5nZXRBdHRyaWJ1dGUobmFtZSk7CiAgfSwK
CiAgd3JpdGVBdHRyaWJ1dGU6IGZ1bmN0aW9uKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7CiAgICBl
bGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBhdHRyaWJ1dGVzID0geyB9LCB0ID0gRWxlbWVu
dC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLndyaXRlOwoKICAgIGlmICh0eXBlb2YgbmFtZSA9PSAn
b2JqZWN0JykgYXR0cmlidXRlcyA9IG5hbWU7CiAgICBlbHNlIGF0dHJpYnV0ZXNbbmFtZV0gPSBP
YmplY3QuaXNVbmRlZmluZWQodmFsdWUpID8gdHJ1ZSA6IHZhbHVlOwoKICAgIGZvciAodmFyIGF0
dHIgaW4gYXR0cmlidXRlcykgewogICAgICBuYW1lID0gdC5uYW1lc1thdHRyXSB8fCBhdHRyOwog
ICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXNbYXR0cl07CiAgICAgIGlmICh0LnZhbHVlc1thdHRyXSkg
bmFtZSA9IHQudmFsdWVzW2F0dHJdKGVsZW1lbnQsIHZhbHVlKTsKICAgICAgaWYgKHZhbHVlID09
PSBmYWxzZSB8fCB2YWx1ZSA9PT0gbnVsbCkKICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0
ZShuYW1lKTsKICAgICAgZWxzZSBpZiAodmFsdWUgPT09IHRydWUpCiAgICAgICAgZWxlbWVudC5z
ZXRBdHRyaWJ1dGUobmFtZSwgbmFtZSk7CiAgICAgIGVsc2UgZWxlbWVudC5zZXRBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOwogICAgfQogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgZ2V0SGVpZ2h0
OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS5nZXREaW1lbnNpb25z
KCkuaGVpZ2h0OwogIH0sCgogIGdldFdpZHRoOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1
cm4gJChlbGVtZW50KS5nZXREaW1lbnNpb25zKCkud2lkdGg7CiAgfSwKCiAgY2xhc3NOYW1lczog
ZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0dXJuIG5ldyBFbGVtZW50LkNsYXNzTmFtZXMoZWxl
bWVudCk7CiAgfSwKCiAgaGFzQ2xhc3NOYW1lOiBmdW5jdGlvbihlbGVtZW50LCBjbGFzc05hbWUp
IHsKICAgIGlmICghKGVsZW1lbnQgPSAkKGVsZW1lbnQpKSkgcmV0dXJuOwogICAgdmFyIGVsZW1l
bnRDbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZTsKICAgIHJldHVybiAoZWxlbWVudENsYXNz
TmFtZS5sZW5ndGggPiAwICYmIChlbGVtZW50Q2xhc3NOYW1lID09IGNsYXNzTmFtZSB8fAogICAg
ICBuZXcgUmVnRXhwKCIoXnxcXHMpIiArIGNsYXNzTmFtZSArICIoXFxzfCQpIikudGVzdChlbGVt
ZW50Q2xhc3NOYW1lKSkpOwogIH0sCgogIGFkZENsYXNzTmFtZTogZnVuY3Rpb24oZWxlbWVudCwg
Y2xhc3NOYW1lKSB7CiAgICBpZiAoIShlbGVtZW50ID0gJChlbGVtZW50KSkpIHJldHVybjsKICAg
IGlmICghZWxlbWVudC5oYXNDbGFzc05hbWUoY2xhc3NOYW1lKSkKICAgICAgZWxlbWVudC5jbGFz
c05hbWUgKz0gKGVsZW1lbnQuY2xhc3NOYW1lID8gJyAnIDogJycpICsgY2xhc3NOYW1lOwogICAg
cmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgcmVtb3ZlQ2xhc3NOYW1lOiBmdW5jdGlvbihlbGVtZW50
LCBjbGFzc05hbWUpIHsKICAgIGlmICghKGVsZW1lbnQgPSAkKGVsZW1lbnQpKSkgcmV0dXJuOwog
ICAgZWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKAogICAgICBu
ZXcgUmVnRXhwKCIoXnxcXHMrKSIgKyBjbGFzc05hbWUgKyAiKFxccyt8JCkiKSwgJyAnKS5zdHJp
cCgpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgdG9nZ2xlQ2xhc3NOYW1lOiBmdW5jdGlv
bihlbGVtZW50LCBjbGFzc05hbWUpIHsKICAgIGlmICghKGVsZW1lbnQgPSAkKGVsZW1lbnQpKSkg
cmV0dXJuOwogICAgcmV0dXJuIGVsZW1lbnRbZWxlbWVudC5oYXNDbGFzc05hbWUoY2xhc3NOYW1l
KSA/CiAgICAgICdyZW1vdmVDbGFzc05hbWUnIDogJ2FkZENsYXNzTmFtZSddKGNsYXNzTmFtZSk7
CiAgfSwKCiAgLy8gcmVtb3ZlcyB3aGl0ZXNwYWNlLW9ubHkgdGV4dCBub2RlIGNoaWxkcmVuCiAg
Y2xlYW5XaGl0ZXNwYWNlOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVt
ZW50KTsKICAgIHZhciBub2RlID0gZWxlbWVudC5maXJzdENoaWxkOwogICAgd2hpbGUgKG5vZGUp
IHsKICAgICAgdmFyIG5leHROb2RlID0gbm9kZS5uZXh0U2libGluZzsKICAgICAgaWYgKG5vZGUu
bm9kZVR5cGUgPT0gMyAmJiAhL1xTLy50ZXN0KG5vZGUubm9kZVZhbHVlKSkKICAgICAgICBlbGVt
ZW50LnJlbW92ZUNoaWxkKG5vZGUpOwogICAgICBub2RlID0gbmV4dE5vZGU7CiAgICB9CiAgICBy
ZXR1cm4gZWxlbWVudDsKICB9LAoKICBlbXB0eTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0
dXJuICQoZWxlbWVudCkuaW5uZXJIVE1MLmJsYW5rKCk7CiAgfSwKCiAgZGVzY2VuZGFudE9mOiBm
dW5jdGlvbihlbGVtZW50LCBhbmNlc3RvcikgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCksIGFu
Y2VzdG9yID0gJChhbmNlc3Rvcik7CiAgICB2YXIgb3JpZ2luYWxBbmNlc3RvciA9IGFuY2VzdG9y
OwoKICAgIGlmIChlbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKQogICAgICByZXR1cm4g
KGVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYW5jZXN0b3IpICYgOCkgPT09IDg7Cgog
ICAgaWYgKGVsZW1lbnQuc291cmNlSW5kZXggJiYgIVByb3RvdHlwZS5Ccm93c2VyLk9wZXJhKSB7
CiAgICAgIHZhciBlID0gZWxlbWVudC5zb3VyY2VJbmRleCwgYSA9IGFuY2VzdG9yLnNvdXJjZUlu
ZGV4LAogICAgICAgbmV4dEFuY2VzdG9yID0gYW5jZXN0b3IubmV4dFNpYmxpbmc7CiAgICAgIGlm
ICghbmV4dEFuY2VzdG9yKSB7CiAgICAgICAgZG8geyBhbmNlc3RvciA9IGFuY2VzdG9yLnBhcmVu
dE5vZGU7IH0KICAgICAgICB3aGlsZSAoIShuZXh0QW5jZXN0b3IgPSBhbmNlc3Rvci5uZXh0U2li
bGluZykgJiYgYW5jZXN0b3IucGFyZW50Tm9kZSk7CiAgICAgIH0KICAgICAgaWYgKG5leHRBbmNl
c3RvciAmJiBuZXh0QW5jZXN0b3Iuc291cmNlSW5kZXgpCiAgICAgICByZXR1cm4gKGUgPiBhICYm
IGUgPCBuZXh0QW5jZXN0b3Iuc291cmNlSW5kZXgpOwogICAgfQoKICAgIHdoaWxlIChlbGVtZW50
ID0gZWxlbWVudC5wYXJlbnROb2RlKQogICAgICBpZiAoZWxlbWVudCA9PSBvcmlnaW5hbEFuY2Vz
dG9yKSByZXR1cm4gdHJ1ZTsKICAgIHJldHVybiBmYWxzZTsKICB9LAoKICBzY3JvbGxUbzogZnVu
Y3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgcG9zID0g
ZWxlbWVudC5jdW11bGF0aXZlT2Zmc2V0KCk7CiAgICB3aW5kb3cuc2Nyb2xsVG8ocG9zWzBdLCBw
b3NbMV0pOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgZ2V0U3R5bGU6IGZ1bmN0aW9uKGVs
ZW1lbnQsIHN0eWxlKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHN0eWxlID0gc3R5
bGUgPT0gJ2Zsb2F0JyA/ICdjc3NGbG9hdCcgOiBzdHlsZS5jYW1lbGl6ZSgpOwogICAgdmFyIHZh
bHVlID0gZWxlbWVudC5zdHlsZVtzdHlsZV07CiAgICBpZiAoIXZhbHVlKSB7CiAgICAgIHZhciBj
c3MgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwp
OwogICAgICB2YWx1ZSA9IGNzcyA/IGNzc1tzdHlsZV0gOiBudWxsOwogICAgfQogICAgaWYgKHN0
eWxlID09ICdvcGFjaXR5JykgcmV0dXJuIHZhbHVlID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiAxLjA7
CiAgICByZXR1cm4gdmFsdWUgPT0gJ2F1dG8nID8gbnVsbCA6IHZhbHVlOwogIH0sCgogIGdldE9w
YWNpdHk6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQpLmdldFN0eWxl
KCdvcGFjaXR5Jyk7CiAgfSwKCiAgc2V0U3R5bGU6IGZ1bmN0aW9uKGVsZW1lbnQsIHN0eWxlcykg
ewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgZWxlbWVudFN0eWxlID0gZWxlbWVu
dC5zdHlsZSwgbWF0Y2g7CiAgICBpZiAoT2JqZWN0LmlzU3RyaW5nKHN0eWxlcykpIHsKICAgICAg
ZWxlbWVudC5zdHlsZS5jc3NUZXh0ICs9ICc7JyArIHN0eWxlczsKICAgICAgcmV0dXJuIHN0eWxl
cy5pbmNsdWRlKCdvcGFjaXR5JykgPwogICAgICAgIGVsZW1lbnQuc2V0T3BhY2l0eShzdHlsZXMu
bWF0Y2goL29wYWNpdHk6XHMqKFxkP1wuP1xkKikvKVsxXSkgOiBlbGVtZW50OwogICAgfQogICAg
Zm9yICh2YXIgcHJvcGVydHkgaW4gc3R5bGVzKQogICAgICBpZiAocHJvcGVydHkgPT0gJ29wYWNp
dHknKSBlbGVtZW50LnNldE9wYWNpdHkoc3R5bGVzW3Byb3BlcnR5XSk7CiAgICAgIGVsc2UKICAg
ICAgICBlbGVtZW50U3R5bGVbKHByb3BlcnR5ID09ICdmbG9hdCcgfHwgcHJvcGVydHkgPT0gJ2Nz
c0Zsb2F0JykgPwogICAgICAgICAgKE9iamVjdC5pc1VuZGVmaW5lZChlbGVtZW50U3R5bGUuc3R5
bGVGbG9hdCkgPyAnY3NzRmxvYXQnIDogJ3N0eWxlRmxvYXQnKSA6CiAgICAgICAgICAgIHByb3Bl
cnR5XSA9IHN0eWxlc1twcm9wZXJ0eV07CgogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgc2V0
T3BhY2l0eTogZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1l
bnQpOwogICAgZWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gKHZhbHVlID09IDEgfHwgdmFsdWUgPT09
ICcnKSA/ICcnIDoKICAgICAgKHZhbHVlIDwgMC4wMDAwMSkgPyAwIDogdmFsdWU7CiAgICByZXR1
cm4gZWxlbWVudDsKICB9LAoKICBnZXREaW1lbnNpb25zOiBmdW5jdGlvbihlbGVtZW50KSB7CiAg
ICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBkaXNwbGF5ID0gJChlbGVtZW50KS5nZXRT
dHlsZSgnZGlzcGxheScpOwogICAgaWYgKGRpc3BsYXkgIT0gJ25vbmUnICYmIGRpc3BsYXkgIT0g
bnVsbCkgLy8gU2FmYXJpIGJ1ZwogICAgICByZXR1cm4ge3dpZHRoOiBlbGVtZW50Lm9mZnNldFdp
ZHRoLCBoZWlnaHQ6IGVsZW1lbnQub2Zmc2V0SGVpZ2h0fTsKCiAgICAvLyBBbGwgKldpZHRoIGFu
ZCAqSGVpZ2h0IHByb3BlcnRpZXMgZ2l2ZSAwIG9uIGVsZW1lbnRzIHdpdGggZGlzcGxheSBub25l
LAogICAgLy8gc28gZW5hYmxlIHRoZSBlbGVtZW50IHRlbXBvcmFyaWx5CiAgICB2YXIgZWxzID0g
ZWxlbWVudC5zdHlsZTsKICAgIHZhciBvcmlnaW5hbFZpc2liaWxpdHkgPSBlbHMudmlzaWJpbGl0
eTsKICAgIHZhciBvcmlnaW5hbFBvc2l0aW9uID0gZWxzLnBvc2l0aW9uOwogICAgdmFyIG9yaWdp
bmFsRGlzcGxheSA9IGVscy5kaXNwbGF5OwogICAgZWxzLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsK
ICAgIGVscy5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CiAgICBlbHMuZGlzcGxheSA9ICdibG9jayc7
CiAgICB2YXIgb3JpZ2luYWxXaWR0aCA9IGVsZW1lbnQuY2xpZW50V2lkdGg7CiAgICB2YXIgb3Jp
Z2luYWxIZWlnaHQgPSBlbGVtZW50LmNsaWVudEhlaWdodDsKICAgIGVscy5kaXNwbGF5ID0gb3Jp
Z2luYWxEaXNwbGF5OwogICAgZWxzLnBvc2l0aW9uID0gb3JpZ2luYWxQb3NpdGlvbjsKICAgIGVs
cy52aXNpYmlsaXR5ID0gb3JpZ2luYWxWaXNpYmlsaXR5OwogICAgcmV0dXJuIHt3aWR0aDogb3Jp
Z2luYWxXaWR0aCwgaGVpZ2h0OiBvcmlnaW5hbEhlaWdodH07CiAgfSwKCiAgbWFrZVBvc2l0aW9u
ZWQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFy
IHBvcyA9IEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJyk7CiAgICBpZiAocG9z
ID09ICdzdGF0aWMnIHx8ICFwb3MpIHsKICAgICAgZWxlbWVudC5fbWFkZVBvc2l0aW9uZWQgPSB0
cnVlOwogICAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAgICAgLy8g
T3BlcmEgcmV0dXJucyB0aGUgb2Zmc2V0IHJlbGF0aXZlIHRvIHRoZSBwb3NpdGlvbmluZyBjb250
ZXh0LCB3aGVuIGFuCiAgICAgIC8vIGVsZW1lbnQgaXMgcG9zaXRpb24gcmVsYXRpdmUgYnV0IHRv
cCBhbmQgbGVmdCBoYXZlIG5vdCBiZWVuIGRlZmluZWQKICAgICAgaWYgKHdpbmRvdy5vcGVyYSkg
ewogICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gMDsKICAgICAgICBlbGVtZW50LnN0eWxlLmxl
ZnQgPSAwOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICB1bmRvUG9z
aXRpb25lZDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAg
ICBpZiAoZWxlbWVudC5fbWFkZVBvc2l0aW9uZWQpIHsKICAgICAgZWxlbWVudC5fbWFkZVBvc2l0
aW9uZWQgPSB1bmRlZmluZWQ7CiAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPQogICAgICAg
IGVsZW1lbnQuc3R5bGUudG9wID0KICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPQogICAgICAg
IGVsZW1lbnQuc3R5bGUuYm90dG9tID0KICAgICAgICBlbGVtZW50LnN0eWxlLnJpZ2h0ID0gJyc7
CiAgICB9CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBtYWtlQ2xpcHBpbmc6IGZ1bmN0aW9u
KGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGVsZW1lbnQuX292
ZXJmbG93KSByZXR1cm4gZWxlbWVudDsKICAgIGVsZW1lbnQuX292ZXJmbG93ID0gRWxlbWVudC5n
ZXRTdHlsZShlbGVtZW50LCAnb3ZlcmZsb3cnKSB8fCAnYXV0byc7CiAgICBpZiAoZWxlbWVudC5f
b3ZlcmZsb3cgIT09ICdoaWRkZW4nKQogICAgICBlbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hp
ZGRlbic7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICB1bmRvQ2xpcHBpbmc6IGZ1bmN0aW9u
KGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKCFlbGVtZW50Ll9v
dmVyZmxvdykgcmV0dXJuIGVsZW1lbnQ7CiAgICBlbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gZWxl
bWVudC5fb3ZlcmZsb3cgPT0gJ2F1dG8nID8gJycgOiBlbGVtZW50Ll9vdmVyZmxvdzsKICAgIGVs
ZW1lbnQuX292ZXJmbG93ID0gbnVsbDsKICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIGN1bXVs
YXRpdmVPZmZzZXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZVQgPSAwLCB2YWx1
ZUwgPSAwOwogICAgZG8gewogICAgICB2YWx1ZVQgKz0gZWxlbWVudC5vZmZzZXRUb3AgIHx8IDA7
CiAgICAgIHZhbHVlTCArPSBlbGVtZW50Lm9mZnNldExlZnQgfHwgMDsKICAgICAgZWxlbWVudCA9
IGVsZW1lbnQub2Zmc2V0UGFyZW50OwogICAgfSB3aGlsZSAoZWxlbWVudCk7CiAgICByZXR1cm4g
RWxlbWVudC5fcmV0dXJuT2Zmc2V0KHZhbHVlTCwgdmFsdWVUKTsKICB9LAoKICBwb3NpdGlvbmVk
T2Zmc2V0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIgdmFsdWVUID0gMCwgdmFsdWVMID0g
MDsKICAgIGRvIHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQub2Zmc2V0VG9wICB8fCAwOwogICAg
ICB2YWx1ZUwgKz0gZWxlbWVudC5vZmZzZXRMZWZ0IHx8IDA7CiAgICAgIGVsZW1lbnQgPSBlbGVt
ZW50Lm9mZnNldFBhcmVudDsKICAgICAgaWYgKGVsZW1lbnQpIHsKICAgICAgICBpZiAoZWxlbWVu
dC50YWdOYW1lID09ICdCT0RZJykgYnJlYWs7CiAgICAgICAgdmFyIHAgPSBFbGVtZW50LmdldFN0
eWxlKGVsZW1lbnQsICdwb3NpdGlvbicpOwogICAgICAgIGlmIChwICE9PSAnc3RhdGljJykgYnJl
YWs7CiAgICAgIH0KICAgIH0gd2hpbGUgKGVsZW1lbnQpOwogICAgcmV0dXJuIEVsZW1lbnQuX3Jl
dHVybk9mZnNldCh2YWx1ZUwsIHZhbHVlVCk7CiAgfSwKCiAgYWJzb2x1dGl6ZTogZnVuY3Rpb24o
ZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoZWxlbWVudC5nZXRT
dHlsZSgncG9zaXRpb24nKSA9PSAnYWJzb2x1dGUnKSByZXR1cm47CiAgICAvLyBQb3NpdGlvbi5w
cmVwYXJlKCk7IC8vIFRvIGJlIGRvbmUgbWFudWFsbHkgYnkgU2NyaXB0eSB3aGVuIGl0IG5lZWRz
IGl0LgoKICAgIHZhciBvZmZzZXRzID0gZWxlbWVudC5wb3NpdGlvbmVkT2Zmc2V0KCk7CiAgICB2
YXIgdG9wICAgICA9IG9mZnNldHNbMV07CiAgICB2YXIgbGVmdCAgICA9IG9mZnNldHNbMF07CiAg
ICB2YXIgd2lkdGggICA9IGVsZW1lbnQuY2xpZW50V2lkdGg7CiAgICB2YXIgaGVpZ2h0ICA9IGVs
ZW1lbnQuY2xpZW50SGVpZ2h0OwoKICAgIGVsZW1lbnQuX29yaWdpbmFsTGVmdCAgID0gbGVmdCAt
IHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS5sZWZ0ICB8fCAwKTsKICAgIGVsZW1lbnQuX29yaWdp
bmFsVG9wICAgID0gdG9wICAtIHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS50b3AgfHwgMCk7CiAg
ICBlbGVtZW50Ll9vcmlnaW5hbFdpZHRoICA9IGVsZW1lbnQuc3R5bGUud2lkdGg7CiAgICBlbGVt
ZW50Ll9vcmlnaW5hbEhlaWdodCA9IGVsZW1lbnQuc3R5bGUuaGVpZ2h0OwoKICAgIGVsZW1lbnQu
c3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgZWxlbWVudC5zdHlsZS50b3AgICAgPSB0
b3AgKyAncHgnOwogICAgZWxlbWVudC5zdHlsZS5sZWZ0ICAgPSBsZWZ0ICsgJ3B4JzsKICAgIGVs
ZW1lbnQuc3R5bGUud2lkdGggID0gd2lkdGggKyAncHgnOwogICAgZWxlbWVudC5zdHlsZS5oZWln
aHQgPSBoZWlnaHQgKyAncHgnOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgcmVsYXRpdml6
ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAo
ZWxlbWVudC5nZXRTdHlsZSgncG9zaXRpb24nKSA9PSAncmVsYXRpdmUnKSByZXR1cm47CiAgICAv
LyBQb3NpdGlvbi5wcmVwYXJlKCk7IC8vIFRvIGJlIGRvbmUgbWFudWFsbHkgYnkgU2NyaXB0eSB3
aGVuIGl0IG5lZWRzIGl0LgoKICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUn
OwogICAgdmFyIHRvcCAgPSBwYXJzZUZsb2F0KGVsZW1lbnQuc3R5bGUudG9wICB8fCAwKSAtIChl
bGVtZW50Ll9vcmlnaW5hbFRvcCB8fCAwKTsKICAgIHZhciBsZWZ0ID0gcGFyc2VGbG9hdChlbGVt
ZW50LnN0eWxlLmxlZnQgfHwgMCkgLSAoZWxlbWVudC5fb3JpZ2luYWxMZWZ0IHx8IDApOwoKICAg
IGVsZW1lbnQuc3R5bGUudG9wICAgID0gdG9wICsgJ3B4JzsKICAgIGVsZW1lbnQuc3R5bGUubGVm
dCAgID0gbGVmdCArICdweCc7CiAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGVsZW1lbnQuX29y
aWdpbmFsSGVpZ2h0OwogICAgZWxlbWVudC5zdHlsZS53aWR0aCAgPSBlbGVtZW50Ll9vcmlnaW5h
bFdpZHRoOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgY3VtdWxhdGl2ZVNjcm9sbE9mZnNl
dDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVlVCA9IDAsIHZhbHVlTCA9IDA7CiAg
ICBkbyB7CiAgICAgIHZhbHVlVCArPSBlbGVtZW50LnNjcm9sbFRvcCAgfHwgMDsKICAgICAgdmFs
dWVMICs9IGVsZW1lbnQuc2Nyb2xsTGVmdCB8fCAwOwogICAgICBlbGVtZW50ID0gZWxlbWVudC5w
YXJlbnROb2RlOwogICAgfSB3aGlsZSAoZWxlbWVudCk7CiAgICByZXR1cm4gRWxlbWVudC5fcmV0
dXJuT2Zmc2V0KHZhbHVlTCwgdmFsdWVUKTsKICB9LAoKICBnZXRPZmZzZXRQYXJlbnQ6IGZ1bmN0
aW9uKGVsZW1lbnQpIHsKICAgIGlmIChlbGVtZW50Lm9mZnNldFBhcmVudCkgcmV0dXJuICQoZWxl
bWVudC5vZmZzZXRQYXJlbnQpOwogICAgaWYgKGVsZW1lbnQgPT0gZG9jdW1lbnQuYm9keSkgcmV0
dXJuICQoZWxlbWVudCk7CgogICAgd2hpbGUgKChlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2Rl
KSAmJiBlbGVtZW50ICE9IGRvY3VtZW50LmJvZHkpCiAgICAgIGlmIChFbGVtZW50LmdldFN0eWxl
KGVsZW1lbnQsICdwb3NpdGlvbicpICE9ICdzdGF0aWMnKQogICAgICAgIHJldHVybiAkKGVsZW1l
bnQpOwoKICAgIHJldHVybiAkKGRvY3VtZW50LmJvZHkpOwogIH0sCgogIHZpZXdwb3J0T2Zmc2V0
OiBmdW5jdGlvbihmb3JFbGVtZW50KSB7CiAgICB2YXIgdmFsdWVUID0gMCwgdmFsdWVMID0gMDsK
CiAgICB2YXIgZWxlbWVudCA9IGZvckVsZW1lbnQ7CiAgICBkbyB7CiAgICAgIHZhbHVlVCArPSBl
bGVtZW50Lm9mZnNldFRvcCAgfHwgMDsKICAgICAgdmFsdWVMICs9IGVsZW1lbnQub2Zmc2V0TGVm
dCB8fCAwOwoKICAgICAgLy8gU2FmYXJpIGZpeAogICAgICBpZiAoZWxlbWVudC5vZmZzZXRQYXJl
bnQgPT0gZG9jdW1lbnQuYm9keSAmJgogICAgICAgIEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwg
J3Bvc2l0aW9uJykgPT0gJ2Fic29sdXRlJykgYnJlYWs7CgogICAgfSB3aGlsZSAoZWxlbWVudCA9
IGVsZW1lbnQub2Zmc2V0UGFyZW50KTsKCiAgICBlbGVtZW50ID0gZm9yRWxlbWVudDsKICAgIGRv
IHsKICAgICAgaWYgKCFQcm90b3R5cGUuQnJvd3Nlci5PcGVyYSB8fCBlbGVtZW50LnRhZ05hbWUg
PT0gJ0JPRFknKSB7CiAgICAgICAgdmFsdWVUIC09IGVsZW1lbnQuc2Nyb2xsVG9wICB8fCAwOwog
ICAgICAgIHZhbHVlTCAtPSBlbGVtZW50LnNjcm9sbExlZnQgfHwgMDsKICAgICAgfQogICAgfSB3
aGlsZSAoZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZSk7CgogICAgcmV0dXJuIEVsZW1lbnQu
X3JldHVybk9mZnNldCh2YWx1ZUwsIHZhbHVlVCk7CiAgfSwKCiAgY2xvbmVQb3NpdGlvbjogZnVu
Y3Rpb24oZWxlbWVudCwgc291cmNlKSB7CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQo
ewogICAgICBzZXRMZWZ0OiAgICB0cnVlLAogICAgICBzZXRUb3A6ICAgICB0cnVlLAogICAgICBz
ZXRXaWR0aDogICB0cnVlLAogICAgICBzZXRIZWlnaHQ6ICB0cnVlLAogICAgICBvZmZzZXRUb3A6
ICAwLAogICAgICBvZmZzZXRMZWZ0OiAwCiAgICB9LCBhcmd1bWVudHNbMl0gfHwgeyB9KTsKCiAg
ICAvLyBmaW5kIHBhZ2UgcG9zaXRpb24gb2Ygc291cmNlCiAgICBzb3VyY2UgPSAkKHNvdXJjZSk7
CiAgICB2YXIgcCA9IHNvdXJjZS52aWV3cG9ydE9mZnNldCgpOwoKICAgIC8vIGZpbmQgY29vcmRp
bmF0ZSBzeXN0ZW0gdG8gdXNlCiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBkZWx0
YSA9IFswLCAwXTsKICAgIHZhciBwYXJlbnQgPSBudWxsOwogICAgLy8gZGVsdGEgWzAsMF0gd2ls
bCBkbyBmaW5lIHdpdGggcG9zaXRpb246IGZpeGVkIGVsZW1lbnRzLAogICAgLy8gcG9zaXRpb246
YWJzb2x1dGUgbmVlZHMgb2Zmc2V0UGFyZW50IGRlbHRhcwogICAgaWYgKEVsZW1lbnQuZ2V0U3R5
bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJykgPT0gJ2Fic29sdXRlJykgewogICAgICBwYXJlbnQgPSBl
bGVtZW50LmdldE9mZnNldFBhcmVudCgpOwogICAgICBkZWx0YSA9IHBhcmVudC52aWV3cG9ydE9m
ZnNldCgpOwogICAgfQoKICAgIC8vIGNvcnJlY3QgYnkgYm9keSBvZmZzZXRzIChmaXhlcyBTYWZh
cmkpCiAgICBpZiAocGFyZW50ID09IGRvY3VtZW50LmJvZHkpIHsKICAgICAgZGVsdGFbMF0gLT0g
ZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwogICAgICBkZWx0YVsxXSAtPSBkb2N1bWVudC5ib2R5
Lm9mZnNldFRvcDsKICAgIH0KCiAgICAvLyBzZXQgcG9zaXRpb24KICAgIGlmIChvcHRpb25zLnNl
dExlZnQpICAgZWxlbWVudC5zdHlsZS5sZWZ0ICA9IChwWzBdIC0gZGVsdGFbMF0gKyBvcHRpb25z
Lm9mZnNldExlZnQpICsgJ3B4JzsKICAgIGlmIChvcHRpb25zLnNldFRvcCkgICAgZWxlbWVudC5z
dHlsZS50b3AgICA9IChwWzFdIC0gZGVsdGFbMV0gKyBvcHRpb25zLm9mZnNldFRvcCkgKyAncHgn
OwogICAgaWYgKG9wdGlvbnMuc2V0V2lkdGgpICBlbGVtZW50LnN0eWxlLndpZHRoID0gc291cmNl
Lm9mZnNldFdpZHRoICsgJ3B4JzsKICAgIGlmIChvcHRpb25zLnNldEhlaWdodCkgZWxlbWVudC5z
dHlsZS5oZWlnaHQgPSBzb3VyY2Uub2Zmc2V0SGVpZ2h0ICsgJ3B4JzsKICAgIHJldHVybiBlbGVt
ZW50OwogIH0KfTsKCkVsZW1lbnQuTWV0aG9kcy5pZGVudGlmeS5jb3VudGVyID0gMTsKCk9iamVj
dC5leHRlbmQoRWxlbWVudC5NZXRob2RzLCB7CiAgZ2V0RWxlbWVudHNCeVNlbGVjdG9yOiBFbGVt
ZW50Lk1ldGhvZHMuc2VsZWN0LAogIGNoaWxkRWxlbWVudHM6IEVsZW1lbnQuTWV0aG9kcy5pbW1l
ZGlhdGVEZXNjZW5kYW50cwp9KTsKCkVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucyA9IHsK
ICB3cml0ZTogewogICAgbmFtZXM6IHsKICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLAogICAgICBo
dG1sRm9yOiAgICdmb3InCiAgICB9LAogICAgdmFsdWVzOiB7IH0KICB9Cn07CgppZiAoUHJvdG90
eXBlLkJyb3dzZXIuT3BlcmEpIHsKICBFbGVtZW50Lk1ldGhvZHMuZ2V0U3R5bGUgPSBFbGVtZW50
Lk1ldGhvZHMuZ2V0U3R5bGUud3JhcCgKICAgIGZ1bmN0aW9uKHByb2NlZWQsIGVsZW1lbnQsIHN0
eWxlKSB7CiAgICAgIHN3aXRjaCAoc3R5bGUpIHsKICAgICAgICBjYXNlICdsZWZ0JzogY2FzZSAn
dG9wJzogY2FzZSAncmlnaHQnOiBjYXNlICdib3R0b20nOgogICAgICAgICAgaWYgKHByb2NlZWQo
ZWxlbWVudCwgJ3Bvc2l0aW9uJykgPT09ICdzdGF0aWMnKSByZXR1cm4gbnVsbDsKICAgICAgICBj
YXNlICdoZWlnaHQnOiBjYXNlICd3aWR0aCc6CiAgICAgICAgICAvLyByZXR1cm5zICcwcHgnIGZv
ciBoaWRkZW4gZWxlbWVudHM7IHdlIHdhbnQgaXQgdG8gcmV0dXJuIG51bGwKICAgICAgICAgIGlm
ICghRWxlbWVudC52aXNpYmxlKGVsZW1lbnQpKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICAvLyBy
ZXR1cm5zIHRoZSBib3JkZXItYm94IGRpbWVuc2lvbnMgcmF0aGVyIHRoYW4gdGhlIGNvbnRlbnQt
Ym94CiAgICAgICAgICAvLyBkaW1lbnNpb25zLCBzbyB3ZSBzdWJ0cmFjdCBwYWRkaW5nIGFuZCBi
b3JkZXJzIGZyb20gdGhlIHZhbHVlCiAgICAgICAgICB2YXIgZGltID0gcGFyc2VJbnQocHJvY2Vl
ZChlbGVtZW50LCBzdHlsZSksIDEwKTsKCiAgICAgICAgICBpZiAoZGltICE9PSBlbGVtZW50Wydv
ZmZzZXQnICsgc3R5bGUuY2FwaXRhbGl6ZSgpXSkKICAgICAgICAgICAgcmV0dXJuIGRpbSArICdw
eCc7CgogICAgICAgICAgdmFyIHByb3BlcnRpZXM7CiAgICAgICAgICBpZiAoc3R5bGUgPT09ICdo
ZWlnaHQnKSB7CiAgICAgICAgICAgIHByb3BlcnRpZXMgPSBbJ2JvcmRlci10b3Atd2lkdGgnLCAn
cGFkZGluZy10b3AnLAogICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tJywgJ2JvcmRlci1ib3R0
b20td2lkdGgnXTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICBwcm9w
ZXJ0aWVzID0gWydib3JkZXItbGVmdC13aWR0aCcsICdwYWRkaW5nLWxlZnQnLAogICAgICAgICAg
ICAgJ3BhZGRpbmctcmlnaHQnLCAnYm9yZGVyLXJpZ2h0LXdpZHRoJ107CiAgICAgICAgICB9CiAg
ICAgICAgICByZXR1cm4gcHJvcGVydGllcy5pbmplY3QoZGltLCBmdW5jdGlvbihtZW1vLCBwcm9w
ZXJ0eSkgewogICAgICAgICAgICB2YXIgdmFsID0gcHJvY2VlZChlbGVtZW50LCBwcm9wZXJ0eSk7
CiAgICAgICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgPyBtZW1vIDogbWVtbyAtIHBhcnNlSW50
KHZhbCwgMTApOwogICAgICAgICAgfSkgKyAncHgnOwogICAgICAgIGRlZmF1bHQ6IHJldHVybiBw
cm9jZWVkKGVsZW1lbnQsIHN0eWxlKTsKICAgICAgfQogICAgfQogICk7CgogIEVsZW1lbnQuTWV0
aG9kcy5yZWFkQXR0cmlidXRlID0gRWxlbWVudC5NZXRob2RzLnJlYWRBdHRyaWJ1dGUud3JhcCgK
ICAgIGZ1bmN0aW9uKHByb2NlZWQsIGVsZW1lbnQsIGF0dHJpYnV0ZSkgewogICAgICBpZiAoYXR0
cmlidXRlID09PSAndGl0bGUnKSByZXR1cm4gZWxlbWVudC50aXRsZTsKICAgICAgcmV0dXJuIHBy
b2NlZWQoZWxlbWVudCwgYXR0cmlidXRlKTsKICAgIH0KICApOwp9CgplbHNlIGlmIChQcm90b3R5
cGUuQnJvd3Nlci5JRSkgewogIC8vIElFIGRvZXNuJ3QgcmVwb3J0IG9mZnNldHMgY29ycmVjdGx5
IGZvciBzdGF0aWMgZWxlbWVudHMsIHNvIHdlIGNoYW5nZSB0aGVtCiAgLy8gdG8gInJlbGF0aXZl
IiB0byBnZXQgdGhlIHZhbHVlcywgdGhlbiBjaGFuZ2UgdGhlbSBiYWNrLgogIEVsZW1lbnQuTWV0
aG9kcy5nZXRPZmZzZXRQYXJlbnQgPSBFbGVtZW50Lk1ldGhvZHMuZ2V0T2Zmc2V0UGFyZW50Lndy
YXAoCiAgICBmdW5jdGlvbihwcm9jZWVkLCBlbGVtZW50KSB7CiAgICAgIGVsZW1lbnQgPSAkKGVs
ZW1lbnQpOwogICAgICB2YXIgcG9zaXRpb24gPSBlbGVtZW50LmdldFN0eWxlKCdwb3NpdGlvbicp
OwogICAgICBpZiAocG9zaXRpb24gIT09ICdzdGF0aWMnKSByZXR1cm4gcHJvY2VlZChlbGVtZW50
KTsKICAgICAgZWxlbWVudC5zZXRTdHlsZSh7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH0pOwogICAg
ICB2YXIgdmFsdWUgPSBwcm9jZWVkKGVsZW1lbnQpOwogICAgICBlbGVtZW50LnNldFN0eWxlKHsg
cG9zaXRpb246IHBvc2l0aW9uIH0pOwogICAgICByZXR1cm4gdmFsdWU7CiAgICB9CiAgKTsKCiAg
JHcoJ3Bvc2l0aW9uZWRPZmZzZXQgdmlld3BvcnRPZmZzZXQnKS5lYWNoKGZ1bmN0aW9uKG1ldGhv
ZCkgewogICAgRWxlbWVudC5NZXRob2RzW21ldGhvZF0gPSBFbGVtZW50Lk1ldGhvZHNbbWV0aG9k
XS53cmFwKAogICAgICBmdW5jdGlvbihwcm9jZWVkLCBlbGVtZW50KSB7CiAgICAgICAgZWxlbWVu
dCA9ICQoZWxlbWVudCk7CiAgICAgICAgdmFyIHBvc2l0aW9uID0gZWxlbWVudC5nZXRTdHlsZSgn
cG9zaXRpb24nKTsKICAgICAgICBpZiAocG9zaXRpb24gIT09ICdzdGF0aWMnKSByZXR1cm4gcHJv
Y2VlZChlbGVtZW50KTsKICAgICAgICAvLyBUcmlnZ2VyIGhhc0xheW91dCBvbiB0aGUgb2Zmc2V0
IHBhcmVudCBzbyB0aGF0IElFNiByZXBvcnRzCiAgICAgICAgLy8gYWNjdXJhdGUgb2Zmc2V0VG9w
IGFuZCBvZmZzZXRMZWZ0IHZhbHVlcyBmb3IgcG9zaXRpb246IGZpeGVkLgogICAgICAgIHZhciBv
ZmZzZXRQYXJlbnQgPSBlbGVtZW50LmdldE9mZnNldFBhcmVudCgpOwogICAgICAgIGlmIChvZmZz
ZXRQYXJlbnQgJiYgb2Zmc2V0UGFyZW50LmdldFN0eWxlKCdwb3NpdGlvbicpID09PSAnZml4ZWQn
KQogICAgICAgICAgb2Zmc2V0UGFyZW50LnNldFN0eWxlKHsgem9vbTogMSB9KTsKICAgICAgICBl
bGVtZW50LnNldFN0eWxlKHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfSk7CiAgICAgICAgdmFyIHZh
bHVlID0gcHJvY2VlZChlbGVtZW50KTsKICAgICAgICBlbGVtZW50LnNldFN0eWxlKHsgcG9zaXRp
b246IHBvc2l0aW9uIH0pOwogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgKTsKICB9
KTsKCiAgRWxlbWVudC5NZXRob2RzLmdldFN0eWxlID0gZnVuY3Rpb24oZWxlbWVudCwgc3R5bGUp
IHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgc3R5bGUgPSAoc3R5bGUgPT0gJ2Zsb2F0
JyB8fCBzdHlsZSA9PSAnY3NzRmxvYXQnKSA/ICdzdHlsZUZsb2F0JyA6IHN0eWxlLmNhbWVsaXpl
KCk7CiAgICB2YXIgdmFsdWUgPSBlbGVtZW50LnN0eWxlW3N0eWxlXTsKICAgIGlmICghdmFsdWUg
JiYgZWxlbWVudC5jdXJyZW50U3R5bGUpIHZhbHVlID0gZWxlbWVudC5jdXJyZW50U3R5bGVbc3R5
bGVdOwoKICAgIGlmIChzdHlsZSA9PSAnb3BhY2l0eScpIHsKICAgICAgaWYgKHZhbHVlID0gKGVs
ZW1lbnQuZ2V0U3R5bGUoJ2ZpbHRlcicpIHx8ICcnKS5tYXRjaCgvYWxwaGFcKG9wYWNpdHk9KC4q
KVwpLykpCiAgICAgICAgaWYgKHZhbHVlWzFdKSByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZVsxXSkg
LyAxMDA7CiAgICAgIHJldHVybiAxLjA7CiAgICB9CgogICAgaWYgKHZhbHVlID09ICdhdXRvJykg
ewogICAgICBpZiAoKHN0eWxlID09ICd3aWR0aCcgfHwgc3R5bGUgPT0gJ2hlaWdodCcpICYmIChl
bGVtZW50LmdldFN0eWxlKCdkaXNwbGF5JykgIT0gJ25vbmUnKSkKICAgICAgICByZXR1cm4gZWxl
bWVudFsnb2Zmc2V0JyArIHN0eWxlLmNhcGl0YWxpemUoKV0gKyAncHgnOwogICAgICByZXR1cm4g
bnVsbDsKICAgIH0KICAgIHJldHVybiB2YWx1ZTsKICB9OwoKICBFbGVtZW50Lk1ldGhvZHMuc2V0
T3BhY2l0eSA9IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVlKSB7CiAgICBmdW5jdGlvbiBzdHJpcEFs
cGhhKGZpbHRlcil7CiAgICAgIHJldHVybiBmaWx0ZXIucmVwbGFjZSgvYWxwaGFcKFteXCldKlwp
L2dpLCcnKTsKICAgIH0KICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIGN1cnJlbnRT
dHlsZSA9IGVsZW1lbnQuY3VycmVudFN0eWxlOwogICAgaWYgKChjdXJyZW50U3R5bGUgJiYgIWN1
cnJlbnRTdHlsZS5oYXNMYXlvdXQpIHx8CiAgICAgICghY3VycmVudFN0eWxlICYmIGVsZW1lbnQu
c3R5bGUuem9vbSA9PSAnbm9ybWFsJykpCiAgICAgICAgZWxlbWVudC5zdHlsZS56b29tID0gMTsK
CiAgICB2YXIgZmlsdGVyID0gZWxlbWVudC5nZXRTdHlsZSgnZmlsdGVyJyksIHN0eWxlID0gZWxl
bWVudC5zdHlsZTsKICAgIGlmICh2YWx1ZSA9PSAxIHx8IHZhbHVlID09PSAnJykgewogICAgICAo
ZmlsdGVyID0gc3RyaXBBbHBoYShmaWx0ZXIpKSA/CiAgICAgICAgc3R5bGUuZmlsdGVyID0gZmls
dGVyIDogc3R5bGUucmVtb3ZlQXR0cmlidXRlKCdmaWx0ZXInKTsKICAgICAgcmV0dXJuIGVsZW1l
bnQ7CiAgICB9IGVsc2UgaWYgKHZhbHVlIDwgMC4wMDAwMSkgdmFsdWUgPSAwOwogICAgc3R5bGUu
ZmlsdGVyID0gc3RyaXBBbHBoYShmaWx0ZXIpICsKICAgICAgJ2FscGhhKG9wYWNpdHk9JyArICh2
YWx1ZSAqIDEwMCkgKyAnKSc7CiAgICByZXR1cm4gZWxlbWVudDsKICB9OwoKICBFbGVtZW50Ll9h
dHRyaWJ1dGVUcmFuc2xhdGlvbnMgPSB7CiAgICByZWFkOiB7CiAgICAgIG5hbWVzOiB7CiAgICAg
ICAgJ2NsYXNzJzogJ2NsYXNzTmFtZScsCiAgICAgICAgJ2Zvcic6ICAgJ2h0bWxGb3InCiAgICAg
IH0sCiAgICAgIHZhbHVlczogewogICAgICAgIF9nZXRBdHRyOiBmdW5jdGlvbihlbGVtZW50LCBh
dHRyaWJ1dGUpIHsKICAgICAgICAgIHJldHVybiBlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1
dGUsIDIpOwogICAgICAgIH0sCiAgICAgICAgX2dldEF0dHJOb2RlOiBmdW5jdGlvbihlbGVtZW50
LCBhdHRyaWJ1dGUpIHsKICAgICAgICAgIHZhciBub2RlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGVO
b2RlKGF0dHJpYnV0ZSk7CiAgICAgICAgICByZXR1cm4gbm9kZSA/IG5vZGUudmFsdWUgOiAiIjsK
ICAgICAgICB9LAogICAgICAgIF9nZXRFdjogZnVuY3Rpb24oZWxlbWVudCwgYXR0cmlidXRlKSB7
CiAgICAgICAgICBhdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwog
ICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZSA/IGF0dHJpYnV0ZS50b1N0cmluZygpLnNsaWNlKDIz
LCAtMikgOiBudWxsOwogICAgICAgIH0sCiAgICAgICAgX2ZsYWc6IGZ1bmN0aW9uKGVsZW1lbnQs
IGF0dHJpYnV0ZSkgewogICAgICAgICAgcmV0dXJuICQoZWxlbWVudCkuaGFzQXR0cmlidXRlKGF0
dHJpYnV0ZSkgPyBhdHRyaWJ1dGUgOiBudWxsOwogICAgICAgIH0sCiAgICAgICAgc3R5bGU6IGZ1
bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgIHJldHVybiBlbGVtZW50LnN0eWxlLmNzc1RleHQu
dG9Mb3dlckNhc2UoKTsKICAgICAgICB9LAogICAgICAgIHRpdGxlOiBmdW5jdGlvbihlbGVtZW50
KSB7CiAgICAgICAgICByZXR1cm4gZWxlbWVudC50aXRsZTsKICAgICAgICB9CiAgICAgIH0KICAg
IH0KICB9OwoKICBFbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnMud3JpdGUgPSB7CiAgICBu
YW1lczogT2JqZWN0LmV4dGVuZCh7CiAgICAgIGNlbGxwYWRkaW5nOiAnY2VsbFBhZGRpbmcnLAog
ICAgICBjZWxsc3BhY2luZzogJ2NlbGxTcGFjaW5nJwogICAgfSwgRWxlbWVudC5fYXR0cmlidXRl
VHJhbnNsYXRpb25zLnJlYWQubmFtZXMpLAogICAgdmFsdWVzOiB7CiAgICAgIGNoZWNrZWQ6IGZ1
bmN0aW9uKGVsZW1lbnQsIHZhbHVlKSB7CiAgICAgICAgZWxlbWVudC5jaGVja2VkID0gISF2YWx1
ZTsKICAgICAgfSwKCiAgICAgIHN0eWxlOiBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAg
ICAgIGVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IHZhbHVlID8gdmFsdWUgOiAnJzsKICAgICAgfQog
ICAgfQogIH07CgogIEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy5oYXMgPSB7fTsKCiAg
JHcoJ2NvbFNwYW4gcm93U3BhbiB2QWxpZ24gZGF0ZVRpbWUgYWNjZXNzS2V5IHRhYkluZGV4ICcg
KwogICAgICAnZW5jVHlwZSBtYXhMZW5ndGggcmVhZE9ubHkgbG9uZ0Rlc2MnKS5lYWNoKGZ1bmN0
aW9uKGF0dHIpIHsKICAgIEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy53cml0ZS5uYW1l
c1thdHRyLnRvTG93ZXJDYXNlKCldID0gYXR0cjsKICAgIEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5z
bGF0aW9ucy5oYXNbYXR0ci50b0xvd2VyQ2FzZSgpXSA9IGF0dHI7CiAgfSk7CgogIChmdW5jdGlv
bih2KSB7CiAgICBPYmplY3QuZXh0ZW5kKHYsIHsKICAgICAgaHJlZjogICAgICAgIHYuX2dldEF0
dHIsCiAgICAgIHNyYzogICAgICAgICB2Ll9nZXRBdHRyLAogICAgICB0eXBlOiAgICAgICAgdi5f
Z2V0QXR0ciwKICAgICAgYWN0aW9uOiAgICAgIHYuX2dldEF0dHJOb2RlLAogICAgICBkaXNhYmxl
ZDogICAgdi5fZmxhZywKICAgICAgY2hlY2tlZDogICAgIHYuX2ZsYWcsCiAgICAgIHJlYWRvbmx5
OiAgICB2Ll9mbGFnLAogICAgICBtdWx0aXBsZTogICAgdi5fZmxhZywKICAgICAgb25sb2FkOiAg
ICAgIHYuX2dldEV2LAogICAgICBvbnVubG9hZDogICAgdi5fZ2V0RXYsCiAgICAgIG9uY2xpY2s6
ICAgICB2Ll9nZXRFdiwKICAgICAgb25kYmxjbGljazogIHYuX2dldEV2LAogICAgICBvbm1vdXNl
ZG93bjogdi5fZ2V0RXYsCiAgICAgIG9ubW91c2V1cDogICB2Ll9nZXRFdiwKICAgICAgb25tb3Vz
ZW92ZXI6IHYuX2dldEV2LAogICAgICBvbm1vdXNlbW92ZTogdi5fZ2V0RXYsCiAgICAgIG9ubW91
c2VvdXQ6ICB2Ll9nZXRFdiwKICAgICAgb25mb2N1czogICAgIHYuX2dldEV2LAogICAgICBvbmJs
dXI6ICAgICAgdi5fZ2V0RXYsCiAgICAgIG9ua2V5cHJlc3M6ICB2Ll9nZXRFdiwKICAgICAgb25r
ZXlkb3duOiAgIHYuX2dldEV2LAogICAgICBvbmtleXVwOiAgICAgdi5fZ2V0RXYsCiAgICAgIG9u
c3VibWl0OiAgICB2Ll9nZXRFdiwKICAgICAgb25yZXNldDogICAgIHYuX2dldEV2LAogICAgICBv
bnNlbGVjdDogICAgdi5fZ2V0RXYsCiAgICAgIG9uY2hhbmdlOiAgICB2Ll9nZXRFdgogICAgfSk7
CiAgfSkoRWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLnJlYWQudmFsdWVzKTsKfQoKZWxz
ZSBpZiAoUHJvdG90eXBlLkJyb3dzZXIuR2Vja28gJiYgL3J2OjFcLjhcLjAvLnRlc3QobmF2aWdh
dG9yLnVzZXJBZ2VudCkpIHsKICBFbGVtZW50Lk1ldGhvZHMuc2V0T3BhY2l0eSA9IGZ1bmN0aW9u
KGVsZW1lbnQsIHZhbHVlKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGVsZW1lbnQu
c3R5bGUub3BhY2l0eSA9ICh2YWx1ZSA9PSAxKSA/IDAuOTk5OTk5IDoKICAgICAgKHZhbHVlID09
PSAnJykgPyAnJyA6ICh2YWx1ZSA8IDAuMDAwMDEpID8gMCA6IHZhbHVlOwogICAgcmV0dXJuIGVs
ZW1lbnQ7CiAgfTsKfQoKZWxzZSBpZiAoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KSB7CiAgRWxl
bWVudC5NZXRob2RzLnNldE9wYWNpdHkgPSBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAg
ZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBlbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAodmFsdWUg
PT0gMSB8fCB2YWx1ZSA9PT0gJycpID8gJycgOgogICAgICAodmFsdWUgPCAwLjAwMDAxKSA/IDAg
OiB2YWx1ZTsKCiAgICBpZiAodmFsdWUgPT0gMSkKICAgICAgaWYoZWxlbWVudC50YWdOYW1lID09
ICdJTUcnICYmIGVsZW1lbnQud2lkdGgpIHsKICAgICAgICBlbGVtZW50LndpZHRoKys7IGVsZW1l
bnQud2lkdGgtLTsKICAgICAgfSBlbHNlIHRyeSB7CiAgICAgICAgdmFyIG4gPSBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgnICcpOwogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQobik7CiAgICAg
ICAgZWxlbWVudC5yZW1vdmVDaGlsZChuKTsKICAgICAgfSBjYXRjaCAoZSkgeyB9CgogICAgcmV0
dXJuIGVsZW1lbnQ7CiAgfTsKCiAgLy8gU2FmYXJpIHJldHVybnMgbWFyZ2lucyBvbiBib2R5IHdo
aWNoIGlzIGluY29ycmVjdCBpZiB0aGUgY2hpbGQgaXMgYWJzb2x1dGVseQogIC8vIHBvc2l0aW9u
ZWQuICBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgcmVkZWZpbmUgRWxlbWVudCNjdW11bGF0aXZl
T2Zmc2V0IGZvcgogIC8vIEtIVE1ML1dlYktpdCBvbmx5LgogIEVsZW1lbnQuTWV0aG9kcy5jdW11
bGF0aXZlT2Zmc2V0ID0gZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVlVCA9IDAsIHZh
bHVlTCA9IDA7CiAgICBkbyB7CiAgICAgIHZhbHVlVCArPSBlbGVtZW50Lm9mZnNldFRvcCAgfHwg
MDsKICAgICAgdmFsdWVMICs9IGVsZW1lbnQub2Zmc2V0TGVmdCB8fCAwOwogICAgICBpZiAoZWxl
bWVudC5vZmZzZXRQYXJlbnQgPT0gZG9jdW1lbnQuYm9keSkKICAgICAgICBpZiAoRWxlbWVudC5n
ZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKSA9PSAnYWJzb2x1dGUnKSBicmVhazsKCiAgICAg
IGVsZW1lbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDsKICAgIH0gd2hpbGUgKGVsZW1lbnQpOwoK
ICAgIHJldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQodmFsdWVMLCB2YWx1ZVQpOwogIH07Cn0K
CmlmIChQcm90b3R5cGUuQnJvd3Nlci5JRSB8fCBQcm90b3R5cGUuQnJvd3Nlci5PcGVyYSkgewog
IC8vIElFIGFuZCBPcGVyYSBhcmUgbWlzc2luZyAuaW5uZXJIVE1MIHN1cHBvcnQgZm9yIFRBQkxF
LXJlbGF0ZWQgYW5kIFNFTEVDVCBlbGVtZW50cwogIEVsZW1lbnQuTWV0aG9kcy51cGRhdGUgPSBm
dW5jdGlvbihlbGVtZW50LCBjb250ZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKCiAg
ICBpZiAoY29udGVudCAmJiBjb250ZW50LnRvRWxlbWVudCkgY29udGVudCA9IGNvbnRlbnQudG9F
bGVtZW50KCk7CiAgICBpZiAoT2JqZWN0LmlzRWxlbWVudChjb250ZW50KSkgcmV0dXJuIGVsZW1l
bnQudXBkYXRlKCkuaW5zZXJ0KGNvbnRlbnQpOwoKICAgIGNvbnRlbnQgPSBPYmplY3QudG9IVE1M
KGNvbnRlbnQpOwogICAgdmFyIHRhZ05hbWUgPSBlbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2Uo
KTsKCiAgICBpZiAodGFnTmFtZSBpbiBFbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnMudGFn
cykgewogICAgICAkQShlbGVtZW50LmNoaWxkTm9kZXMpLmVhY2goZnVuY3Rpb24obm9kZSkgeyBl
bGVtZW50LnJlbW92ZUNoaWxkKG5vZGUpIH0pOwogICAgICBFbGVtZW50Ll9nZXRDb250ZW50RnJv
bUFub255bW91c0VsZW1lbnQodGFnTmFtZSwgY29udGVudC5zdHJpcFNjcmlwdHMoKSkKICAgICAg
ICAuZWFjaChmdW5jdGlvbihub2RlKSB7IGVsZW1lbnQuYXBwZW5kQ2hpbGQobm9kZSkgfSk7CiAg
ICB9CiAgICBlbHNlIGVsZW1lbnQuaW5uZXJIVE1MID0gY29udGVudC5zdHJpcFNjcmlwdHMoKTsK
CiAgICBjb250ZW50LmV2YWxTY3JpcHRzLmJpbmQoY29udGVudCkuZGVmZXIoKTsKICAgIHJldHVy
biBlbGVtZW50OwogIH07Cn0KCmlmICgnb3V0ZXJIVE1MJyBpbiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKSkgewogIEVsZW1lbnQuTWV0aG9kcy5yZXBsYWNlID0gZnVuY3Rpb24oZWxlbWVu
dCwgY29udGVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CgogICAgaWYgKGNvbnRlbnQg
JiYgY29udGVudC50b0VsZW1lbnQpIGNvbnRlbnQgPSBjb250ZW50LnRvRWxlbWVudCgpOwogICAg
aWYgKE9iamVjdC5pc0VsZW1lbnQoY29udGVudCkpIHsKICAgICAgZWxlbWVudC5wYXJlbnROb2Rl
LnJlcGxhY2VDaGlsZChjb250ZW50LCBlbGVtZW50KTsKICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAg
ICB9CgogICAgY29udGVudCA9IE9iamVjdC50b0hUTUwoY29udGVudCk7CiAgICB2YXIgcGFyZW50
ID0gZWxlbWVudC5wYXJlbnROb2RlLCB0YWdOYW1lID0gcGFyZW50LnRhZ05hbWUudG9VcHBlckNh
c2UoKTsKCiAgICBpZiAoRWxlbWVudC5faW5zZXJ0aW9uVHJhbnNsYXRpb25zLnRhZ3NbdGFnTmFt
ZV0pIHsKICAgICAgdmFyIG5leHRTaWJsaW5nID0gZWxlbWVudC5uZXh0KCk7CiAgICAgIHZhciBm
cmFnbWVudHMgPSBFbGVtZW50Ll9nZXRDb250ZW50RnJvbUFub255bW91c0VsZW1lbnQodGFnTmFt
ZSwgY29udGVudC5zdHJpcFNjcmlwdHMoKSk7CiAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChlbGVt
ZW50KTsKICAgICAgaWYgKG5leHRTaWJsaW5nKQogICAgICAgIGZyYWdtZW50cy5lYWNoKGZ1bmN0
aW9uKG5vZGUpIHsgcGFyZW50Lmluc2VydEJlZm9yZShub2RlLCBuZXh0U2libGluZykgfSk7CiAg
ICAgIGVsc2UKICAgICAgICBmcmFnbWVudHMuZWFjaChmdW5jdGlvbihub2RlKSB7IHBhcmVudC5h
cHBlbmRDaGlsZChub2RlKSB9KTsKICAgIH0KICAgIGVsc2UgZWxlbWVudC5vdXRlckhUTUwgPSBj
b250ZW50LnN0cmlwU2NyaXB0cygpOwoKICAgIGNvbnRlbnQuZXZhbFNjcmlwdHMuYmluZChjb250
ZW50KS5kZWZlcigpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfTsKfQoKRWxlbWVudC5fcmV0dXJu
T2Zmc2V0ID0gZnVuY3Rpb24obCwgdCkgewogIHZhciByZXN1bHQgPSBbbCwgdF07CiAgcmVzdWx0
LmxlZnQgPSBsOwogIHJlc3VsdC50b3AgPSB0OwogIHJldHVybiByZXN1bHQ7Cn07CgpFbGVtZW50
Ll9nZXRDb250ZW50RnJvbUFub255bW91c0VsZW1lbnQgPSBmdW5jdGlvbih0YWdOYW1lLCBodG1s
KSB7CiAgdmFyIGRpdiA9IG5ldyBFbGVtZW50KCdkaXYnKSwgdCA9IEVsZW1lbnQuX2luc2VydGlv
blRyYW5zbGF0aW9ucy50YWdzW3RhZ05hbWVdOwogIGlmICh0KSB7CiAgICBkaXYuaW5uZXJIVE1M
ID0gdFswXSArIGh0bWwgKyB0WzFdOwogICAgdFsyXS50aW1lcyhmdW5jdGlvbigpIHsgZGl2ID0g
ZGl2LmZpcnN0Q2hpbGQgfSk7CiAgfSBlbHNlIGRpdi5pbm5lckhUTUwgPSBodG1sOwogIHJldHVy
biAkQShkaXYuY2hpbGROb2Rlcyk7Cn07CgpFbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnMg
PSB7CiAgYmVmb3JlOiBmdW5jdGlvbihlbGVtZW50LCBub2RlKSB7CiAgICBlbGVtZW50LnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKG5vZGUsIGVsZW1lbnQpOwogIH0sCiAgdG9wOiBmdW5jdGlvbihl
bGVtZW50LCBub2RlKSB7CiAgICBlbGVtZW50Lmluc2VydEJlZm9yZShub2RlLCBlbGVtZW50LmZp
cnN0Q2hpbGQpOwogIH0sCiAgYm90dG9tOiBmdW5jdGlvbihlbGVtZW50LCBub2RlKSB7CiAgICBl
bGVtZW50LmFwcGVuZENoaWxkKG5vZGUpOwogIH0sCiAgYWZ0ZXI6IGZ1bmN0aW9uKGVsZW1lbnQs
IG5vZGUpIHsKICAgIGVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgZWxlbWVu
dC5uZXh0U2libGluZyk7CiAgfSwKICB0YWdzOiB7CiAgICBUQUJMRTogIFsnPHRhYmxlPicsICAg
ICAgICAgICAgICAgICc8L3RhYmxlPicsICAgICAgICAgICAgICAgICAgIDFdLAogICAgVEJPRFk6
ICBbJzx0YWJsZT48dGJvZHk+JywgICAgICAgICAnPC90Ym9keT48L3RhYmxlPicsICAgICAgICAg
ICAyXSwKICAgIFRSOiAgICAgWyc8dGFibGU+PHRib2R5Pjx0cj4nLCAgICAgJzwvdHI+PC90Ym9k
eT48L3RhYmxlPicsICAgICAgM10sCiAgICBURDogICAgIFsnPHRhYmxlPjx0Ym9keT48dHI+PHRk
PicsICc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPicsIDRdLAogICAgU0VMRUNUOiBbJzxzZWxl
Y3Q+JywgICAgICAgICAgICAgICAnPC9zZWxlY3Q+JywgICAgICAgICAgICAgICAgICAxXQogIH0K
fTsKCihmdW5jdGlvbigpIHsKICBPYmplY3QuZXh0ZW5kKHRoaXMudGFncywgewogICAgVEhFQUQ6
IHRoaXMudGFncy5UQk9EWSwKICAgIFRGT09UOiB0aGlzLnRhZ3MuVEJPRFksCiAgICBUSDogICAg
dGhpcy50YWdzLlRECiAgfSk7Cn0pLmNhbGwoRWxlbWVudC5faW5zZXJ0aW9uVHJhbnNsYXRpb25z
KTsKCkVsZW1lbnQuTWV0aG9kcy5TaW11bGF0ZWQgPSB7CiAgaGFzQXR0cmlidXRlOiBmdW5jdGlv
bihlbGVtZW50LCBhdHRyaWJ1dGUpIHsKICAgIGF0dHJpYnV0ZSA9IEVsZW1lbnQuX2F0dHJpYnV0
ZVRyYW5zbGF0aW9ucy5oYXNbYXR0cmlidXRlXSB8fCBhdHRyaWJ1dGU7CiAgICB2YXIgbm9kZSA9
ICQoZWxlbWVudCkuZ2V0QXR0cmlidXRlTm9kZShhdHRyaWJ1dGUpOwogICAgcmV0dXJuIG5vZGUg
JiYgbm9kZS5zcGVjaWZpZWQ7CiAgfQp9OwoKRWxlbWVudC5NZXRob2RzLkJ5VGFnID0geyB9OwoK
T2JqZWN0LmV4dGVuZChFbGVtZW50LCBFbGVtZW50Lk1ldGhvZHMpOwoKaWYgKCFQcm90b3R5cGUu
QnJvd3NlckZlYXR1cmVzLkVsZW1lbnRFeHRlbnNpb25zICYmCiAgICBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKS5fX3Byb3RvX18pIHsKICB3aW5kb3cuSFRNTEVsZW1lbnQgPSB7IH07CiAg
d2luZG93LkhUTUxFbGVtZW50LnByb3RvdHlwZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpLl9fcHJvdG9fXzsKICBQcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLkVsZW1lbnRFeHRlbnNp
b25zID0gdHJ1ZTsKfQoKRWxlbWVudC5leHRlbmQgPSAoZnVuY3Rpb24oKSB7CiAgaWYgKFByb3Rv
dHlwZS5Ccm93c2VyRmVhdHVyZXMuU3BlY2lmaWNFbGVtZW50RXh0ZW5zaW9ucykKICAgIHJldHVy
biBQcm90b3R5cGUuSzsKCiAgdmFyIE1ldGhvZHMgPSB7IH0sIEJ5VGFnID0gRWxlbWVudC5NZXRo
b2RzLkJ5VGFnOwoKICB2YXIgZXh0ZW5kID0gT2JqZWN0LmV4dGVuZChmdW5jdGlvbihlbGVtZW50
KSB7CiAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudC5fZXh0ZW5kZWRCeVByb3RvdHlwZSB8fAog
ICAgICAgIGVsZW1lbnQubm9kZVR5cGUgIT0gMSB8fCBlbGVtZW50ID09IHdpbmRvdykgcmV0dXJu
IGVsZW1lbnQ7CgogICAgdmFyIG1ldGhvZHMgPSBPYmplY3QuY2xvbmUoTWV0aG9kcyksCiAgICAg
IHRhZ05hbWUgPSBlbGVtZW50LnRhZ05hbWUsIHByb3BlcnR5LCB2YWx1ZTsKCiAgICAvLyBleHRl
bmQgbWV0aG9kcyBmb3Igc3BlY2lmaWMgdGFncwogICAgaWYgKEJ5VGFnW3RhZ05hbWVdKSBPYmpl
Y3QuZXh0ZW5kKG1ldGhvZHMsIEJ5VGFnW3RhZ05hbWVdKTsKCiAgICBmb3IgKHByb3BlcnR5IGlu
IG1ldGhvZHMpIHsKICAgICAgdmFsdWUgPSBtZXRob2RzW3Byb3BlcnR5XTsKICAgICAgaWYgKE9i
amVjdC5pc0Z1bmN0aW9uKHZhbHVlKSAmJiAhKHByb3BlcnR5IGluIGVsZW1lbnQpKQogICAgICAg
IGVsZW1lbnRbcHJvcGVydHldID0gdmFsdWUubWV0aG9kaXplKCk7CiAgICB9CgogICAgZWxlbWVu
dC5fZXh0ZW5kZWRCeVByb3RvdHlwZSA9IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwogICAgcmV0
dXJuIGVsZW1lbnQ7CgogIH0sIHsKICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkgewogICAgICAvLyBl
eHRlbmQgbWV0aG9kcyBmb3IgYWxsIHRhZ3MgKFNhZmFyaSBkb2Vzbid0IG5lZWQgdGhpcykKICAg
ICAgaWYgKCFQcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLkVsZW1lbnRFeHRlbnNpb25zKSB7CiAg
ICAgICAgT2JqZWN0LmV4dGVuZChNZXRob2RzLCBFbGVtZW50Lk1ldGhvZHMpOwogICAgICAgIE9i
amVjdC5leHRlbmQoTWV0aG9kcywgRWxlbWVudC5NZXRob2RzLlNpbXVsYXRlZCk7CiAgICAgIH0K
ICAgIH0KICB9KTsKCiAgZXh0ZW5kLnJlZnJlc2goKTsKICByZXR1cm4gZXh0ZW5kOwp9KSgpOwoK
RWxlbWVudC5oYXNBdHRyaWJ1dGUgPSBmdW5jdGlvbihlbGVtZW50LCBhdHRyaWJ1dGUpIHsKICBp
ZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUpIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShhdHRy
aWJ1dGUpOwogIHJldHVybiBFbGVtZW50Lk1ldGhvZHMuU2ltdWxhdGVkLmhhc0F0dHJpYnV0ZShl
bGVtZW50LCBhdHRyaWJ1dGUpOwp9OwoKRWxlbWVudC5hZGRNZXRob2RzID0gZnVuY3Rpb24obWV0
aG9kcykgewogIHZhciBGID0gUHJvdG90eXBlLkJyb3dzZXJGZWF0dXJlcywgVCA9IEVsZW1lbnQu
TWV0aG9kcy5CeVRhZzsKCiAgaWYgKCFtZXRob2RzKSB7CiAgICBPYmplY3QuZXh0ZW5kKEZvcm0s
IEZvcm0uTWV0aG9kcyk7CiAgICBPYmplY3QuZXh0ZW5kKEZvcm0uRWxlbWVudCwgRm9ybS5FbGVt
ZW50Lk1ldGhvZHMpOwogICAgT2JqZWN0LmV4dGVuZChFbGVtZW50Lk1ldGhvZHMuQnlUYWcsIHsK
ICAgICAgIkZPUk0iOiAgICAgT2JqZWN0LmNsb25lKEZvcm0uTWV0aG9kcyksCiAgICAgICJJTlBV
VCI6ICAgIE9iamVjdC5jbG9uZShGb3JtLkVsZW1lbnQuTWV0aG9kcyksCiAgICAgICJTRUxFQ1Qi
OiAgIE9iamVjdC5jbG9uZShGb3JtLkVsZW1lbnQuTWV0aG9kcyksCiAgICAgICJURVhUQVJFQSI6
IE9iamVjdC5jbG9uZShGb3JtLkVsZW1lbnQuTWV0aG9kcykKICAgIH0pOwogIH0KCiAgaWYgKGFy
Z3VtZW50cy5sZW5ndGggPT0gMikgewogICAgdmFyIHRhZ05hbWUgPSBtZXRob2RzOwogICAgbWV0
aG9kcyA9IGFyZ3VtZW50c1sxXTsKICB9CgogIGlmICghdGFnTmFtZSkgT2JqZWN0LmV4dGVuZChF
bGVtZW50Lk1ldGhvZHMsIG1ldGhvZHMgfHwgeyB9KTsKICBlbHNlIHsKICAgIGlmIChPYmplY3Qu
aXNBcnJheSh0YWdOYW1lKSkgdGFnTmFtZS5lYWNoKGV4dGVuZCk7CiAgICBlbHNlIGV4dGVuZCh0
YWdOYW1lKTsKICB9CgogIGZ1bmN0aW9uIGV4dGVuZCh0YWdOYW1lKSB7CiAgICB0YWdOYW1lID0g
dGFnTmFtZS50b1VwcGVyQ2FzZSgpOwogICAgaWYgKCFFbGVtZW50Lk1ldGhvZHMuQnlUYWdbdGFn
TmFtZV0pCiAgICAgIEVsZW1lbnQuTWV0aG9kcy5CeVRhZ1t0YWdOYW1lXSA9IHsgfTsKICAgIE9i
amVjdC5leHRlbmQoRWxlbWVudC5NZXRob2RzLkJ5VGFnW3RhZ05hbWVdLCBtZXRob2RzKTsKICB9
CgogIGZ1bmN0aW9uIGNvcHkobWV0aG9kcywgZGVzdGluYXRpb24sIG9ubHlJZkFic2VudCkgewog
ICAgb25seUlmQWJzZW50ID0gb25seUlmQWJzZW50IHx8IGZhbHNlOwogICAgZm9yICh2YXIgcHJv
cGVydHkgaW4gbWV0aG9kcykgewogICAgICB2YXIgdmFsdWUgPSBtZXRob2RzW3Byb3BlcnR5XTsK
ICAgICAgaWYgKCFPYmplY3QuaXNGdW5jdGlvbih2YWx1ZSkpIGNvbnRpbnVlOwogICAgICBpZiAo
IW9ubHlJZkFic2VudCB8fCAhKHByb3BlcnR5IGluIGRlc3RpbmF0aW9uKSkKICAgICAgICBkZXN0
aW5hdGlvbltwcm9wZXJ0eV0gPSB2YWx1ZS5tZXRob2RpemUoKTsKICAgIH0KICB9CgogIGZ1bmN0
aW9uIGZpbmRET01DbGFzcyh0YWdOYW1lKSB7CiAgICB2YXIga2xhc3M7CiAgICB2YXIgdHJhbnMg
PSB7CiAgICAgICJPUFRHUk9VUCI6ICJPcHRHcm91cCIsICJURVhUQVJFQSI6ICJUZXh0QXJlYSIs
ICJQIjogIlBhcmFncmFwaCIsCiAgICAgICJGSUVMRFNFVCI6ICJGaWVsZFNldCIsICJVTCI6ICJV
TGlzdCIsICJPTCI6ICJPTGlzdCIsICJETCI6ICJETGlzdCIsCiAgICAgICJESVIiOiAiRGlyZWN0
b3J5IiwgIkgxIjogIkhlYWRpbmciLCAiSDIiOiAiSGVhZGluZyIsICJIMyI6ICJIZWFkaW5nIiwK
ICAgICAgIkg0IjogIkhlYWRpbmciLCAiSDUiOiAiSGVhZGluZyIsICJINiI6ICJIZWFkaW5nIiwg
IlEiOiAiUXVvdGUiLAogICAgICAiSU5TIjogIk1vZCIsICJERUwiOiAiTW9kIiwgIkEiOiAiQW5j
aG9yIiwgIklNRyI6ICJJbWFnZSIsICJDQVBUSU9OIjoKICAgICAgIlRhYmxlQ2FwdGlvbiIsICJD
T0wiOiAiVGFibGVDb2wiLCAiQ09MR1JPVVAiOiAiVGFibGVDb2wiLCAiVEhFQUQiOgogICAgICAi
VGFibGVTZWN0aW9uIiwgIlRGT09UIjogIlRhYmxlU2VjdGlvbiIsICJUQk9EWSI6ICJUYWJsZVNl
Y3Rpb24iLCAiVFIiOgogICAgICAiVGFibGVSb3ciLCAiVEgiOiAiVGFibGVDZWxsIiwgIlREIjog
IlRhYmxlQ2VsbCIsICJGUkFNRVNFVCI6CiAgICAgICJGcmFtZVNldCIsICJJRlJBTUUiOiAiSUZy
YW1lIgogICAgfTsKICAgIGlmICh0cmFuc1t0YWdOYW1lXSkga2xhc3MgPSAnSFRNTCcgKyB0cmFu
c1t0YWdOYW1lXSArICdFbGVtZW50JzsKICAgIGlmICh3aW5kb3dba2xhc3NdKSByZXR1cm4gd2lu
ZG93W2tsYXNzXTsKICAgIGtsYXNzID0gJ0hUTUwnICsgdGFnTmFtZSArICdFbGVtZW50JzsKICAg
IGlmICh3aW5kb3dba2xhc3NdKSByZXR1cm4gd2luZG93W2tsYXNzXTsKICAgIGtsYXNzID0gJ0hU
TUwnICsgdGFnTmFtZS5jYXBpdGFsaXplKCkgKyAnRWxlbWVudCc7CiAgICBpZiAod2luZG93W2ts
YXNzXSkgcmV0dXJuIHdpbmRvd1trbGFzc107CgogICAgd2luZG93W2tsYXNzXSA9IHsgfTsKICAg
IHdpbmRvd1trbGFzc10ucHJvdG90eXBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1l
KS5fX3Byb3RvX187CiAgICByZXR1cm4gd2luZG93W2tsYXNzXTsKICB9CgogIGlmIChGLkVsZW1l
bnRFeHRlbnNpb25zKSB7CiAgICBjb3B5KEVsZW1lbnQuTWV0aG9kcywgSFRNTEVsZW1lbnQucHJv
dG90eXBlKTsKICAgIGNvcHkoRWxlbWVudC5NZXRob2RzLlNpbXVsYXRlZCwgSFRNTEVsZW1lbnQu
cHJvdG90eXBlLCB0cnVlKTsKICB9CgogIGlmIChGLlNwZWNpZmljRWxlbWVudEV4dGVuc2lvbnMp
IHsKICAgIGZvciAodmFyIHRhZyBpbiBFbGVtZW50Lk1ldGhvZHMuQnlUYWcpIHsKICAgICAgdmFy
IGtsYXNzID0gZmluZERPTUNsYXNzKHRhZyk7CiAgICAgIGlmIChPYmplY3QuaXNVbmRlZmluZWQo
a2xhc3MpKSBjb250aW51ZTsKICAgICAgY29weShUW3RhZ10sIGtsYXNzLnByb3RvdHlwZSk7CiAg
ICB9CiAgfQoKICBPYmplY3QuZXh0ZW5kKEVsZW1lbnQsIEVsZW1lbnQuTWV0aG9kcyk7CiAgZGVs
ZXRlIEVsZW1lbnQuQnlUYWc7CgogIGlmIChFbGVtZW50LmV4dGVuZC5yZWZyZXNoKSBFbGVtZW50
LmV4dGVuZC5yZWZyZXNoKCk7CiAgRWxlbWVudC5jYWNoZSA9IHsgfTsKfTsKCmRvY3VtZW50LnZp
ZXdwb3J0ID0gewogIGdldERpbWVuc2lvbnM6IGZ1bmN0aW9uKCkgewogICAgdmFyIGRpbWVuc2lv
bnMgPSB7IH07CiAgICB2YXIgQiA9IFByb3RvdHlwZS5Ccm93c2VyOwogICAgJHcoJ3dpZHRoIGhl
aWdodCcpLmVhY2goZnVuY3Rpb24oZCkgewogICAgICB2YXIgRCA9IGQuY2FwaXRhbGl6ZSgpOwog
ICAgICBkaW1lbnNpb25zW2RdID0gKEIuV2ViS2l0ICYmICFkb2N1bWVudC5ldmFsdWF0ZSkgPyBz
ZWxmWydpbm5lcicgKyBEXSA6CiAgICAgICAgKEIuT3BlcmEpID8gZG9jdW1lbnQuYm9keVsnY2xp
ZW50JyArIERdIDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WydjbGllbnQnICsgRF07CiAgICB9
KTsKICAgIHJldHVybiBkaW1lbnNpb25zOwogIH0sCgogIGdldFdpZHRoOiBmdW5jdGlvbigpIHsK
ICAgIHJldHVybiB0aGlzLmdldERpbWVuc2lvbnMoKS53aWR0aDsKICB9LAoKICBnZXRIZWlnaHQ6
IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuZ2V0RGltZW5zaW9ucygpLmhlaWdodDsKICB9
LAoKICBnZXRTY3JvbGxPZmZzZXRzOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBFbGVtZW50Ll9y
ZXR1cm5PZmZzZXQoCiAgICAgIHdpbmRvdy5wYWdlWE9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQsCiAgICAgIHdp
bmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8
IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKTsKICB9Cn07Ci8qIFBvcnRpb25zIG9mIHRoZSBTZWxl
Y3RvciBjbGFzcyBhcmUgZGVyaXZlZCBmcm9tIEphY2sgU2xvY3Vt4oCZcyBEb21RdWVyeSwKICog
cGFydCBvZiBZVUktRXh0IHZlcnNpb24gMC40MCwgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1z
IG9mIGFuIE1JVC1zdHlsZQogKiBsaWNlbnNlLiAgUGxlYXNlIHNlZSBodHRwOi8vd3d3Lnl1aS1l
eHQuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gKi8KCnZhciBTZWxlY3RvciA9IENsYXNzLmNy
ZWF0ZSh7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZXhwcmVzc2lvbikgewogICAgdGhpcy5leHBy
ZXNzaW9uID0gZXhwcmVzc2lvbi5zdHJpcCgpOwogICAgdGhpcy5jb21waWxlTWF0Y2hlcigpOwog
IH0sCgogIHNob3VsZFVzZVhQYXRoOiBmdW5jdGlvbigpIHsKICAgIGlmICghUHJvdG90eXBlLkJy
b3dzZXJGZWF0dXJlcy5YUGF0aCkgcmV0dXJuIGZhbHNlOwoKICAgIHZhciBlID0gdGhpcy5leHBy
ZXNzaW9uOwoKICAgIC8vIFNhZmFyaSAzIGNob2tlcyBvbiA6Ki1vZi10eXBlIGFuZCA6ZW1wdHkK
ICAgIGlmIChQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQgJiYKICAgICAoZS5pbmNsdWRlKCItb2Yt
dHlwZSIpIHx8IGUuaW5jbHVkZSgiOmVtcHR5IikpKQogICAgICByZXR1cm4gZmFsc2U7CgogICAg
Ly8gWFBhdGggY2FuJ3QgZG8gbmFtZXNwYWNlZCBhdHRyaWJ1dGVzLCBub3IgY2FuIGl0IHJlYWQK
ICAgIC8vIHRoZSAiY2hlY2tlZCIgcHJvcGVydHkgZnJvbSBET00gbm9kZXMKICAgIGlmICgoLyhc
W1tcdy1dKj86fDpjaGVja2VkKS8pLnRlc3QodGhpcy5leHByZXNzaW9uKSkKICAgICAgcmV0dXJu
IGZhbHNlOwoKICAgIHJldHVybiB0cnVlOwogIH0sCgogIGNvbXBpbGVNYXRjaGVyOiBmdW5jdGlv
bigpIHsKICAgIGlmICh0aGlzLnNob3VsZFVzZVhQYXRoKCkpCiAgICAgIHJldHVybiB0aGlzLmNv
bXBpbGVYUGF0aE1hdGNoZXIoKTsKCiAgICB2YXIgZSA9IHRoaXMuZXhwcmVzc2lvbiwgcHMgPSBT
ZWxlY3Rvci5wYXR0ZXJucywgaCA9IFNlbGVjdG9yLmhhbmRsZXJzLAogICAgICAgIGMgPSBTZWxl
Y3Rvci5jcml0ZXJpYSwgbGUsIHAsIG07CgogICAgaWYgKFNlbGVjdG9yLl9jYWNoZVtlXSkgewog
ICAgICB0aGlzLm1hdGNoZXIgPSBTZWxlY3Rvci5fY2FjaGVbZV07CiAgICAgIHJldHVybjsKICAg
IH0KCiAgICB0aGlzLm1hdGNoZXIgPSBbInRoaXMubWF0Y2hlciA9IGZ1bmN0aW9uKHJvb3QpIHsi
LAogICAgICAgICAgICAgICAgICAgICJ2YXIgciA9IHJvb3QsIGggPSBTZWxlY3Rvci5oYW5kbGVy
cywgYyA9IGZhbHNlLCBuOyJdOwoKICAgIHdoaWxlIChlICYmIGxlICE9IGUgJiYgKC9cUy8pLnRl
c3QoZSkpIHsKICAgICAgbGUgPSBlOwogICAgICBmb3IgKHZhciBpIGluIHBzKSB7CiAgICAgICAg
cCA9IHBzW2ldOwogICAgICAgIGlmIChtID0gZS5tYXRjaChwKSkgewogICAgICAgICAgdGhpcy5t
YXRjaGVyLnB1c2goT2JqZWN0LmlzRnVuY3Rpb24oY1tpXSkgPyBjW2ldKG0pIDoKICAgIAkgICAg
ICBuZXcgVGVtcGxhdGUoY1tpXSkuZXZhbHVhdGUobSkpOwogICAgICAgICAgZSA9IGUucmVwbGFj
ZShtWzBdLCAnJyk7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAg
ICB0aGlzLm1hdGNoZXIucHVzaCgicmV0dXJuIGgudW5pcXVlKG4pO1xufSIpOwogICAgZXZhbCh0
aGlzLm1hdGNoZXIuam9pbignXG4nKSk7CiAgICBTZWxlY3Rvci5fY2FjaGVbdGhpcy5leHByZXNz
aW9uXSA9IHRoaXMubWF0Y2hlcjsKICB9LAoKICBjb21waWxlWFBhdGhNYXRjaGVyOiBmdW5jdGlv
bigpIHsKICAgIHZhciBlID0gdGhpcy5leHByZXNzaW9uLCBwcyA9IFNlbGVjdG9yLnBhdHRlcm5z
LAogICAgICAgIHggPSBTZWxlY3Rvci54cGF0aCwgbGUsIG07CgogICAgaWYgKFNlbGVjdG9yLl9j
YWNoZVtlXSkgewogICAgICB0aGlzLnhwYXRoID0gU2VsZWN0b3IuX2NhY2hlW2VdOyByZXR1cm47
CiAgICB9CgogICAgdGhpcy5tYXRjaGVyID0gWycuLy8qJ107CiAgICB3aGlsZSAoZSAmJiBsZSAh
PSBlICYmICgvXFMvKS50ZXN0KGUpKSB7CiAgICAgIGxlID0gZTsKICAgICAgZm9yICh2YXIgaSBp
biBwcykgewogICAgICAgIGlmIChtID0gZS5tYXRjaChwc1tpXSkpIHsKICAgICAgICAgIHRoaXMu
bWF0Y2hlci5wdXNoKE9iamVjdC5pc0Z1bmN0aW9uKHhbaV0pID8geFtpXShtKSA6CiAgICAgICAg
ICAgIG5ldyBUZW1wbGF0ZSh4W2ldKS5ldmFsdWF0ZShtKSk7CiAgICAgICAgICBlID0gZS5yZXBs
YWNlKG1bMF0sICcnKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQoK
ICAgIHRoaXMueHBhdGggPSB0aGlzLm1hdGNoZXIuam9pbignJyk7CiAgICBTZWxlY3Rvci5fY2Fj
aGVbdGhpcy5leHByZXNzaW9uXSA9IHRoaXMueHBhdGg7CiAgfSwKCiAgZmluZEVsZW1lbnRzOiBm
dW5jdGlvbihyb290KSB7CiAgICByb290ID0gcm9vdCB8fCBkb2N1bWVudDsKICAgIGlmICh0aGlz
LnhwYXRoKSByZXR1cm4gZG9jdW1lbnQuX2dldEVsZW1lbnRzQnlYUGF0aCh0aGlzLnhwYXRoLCBy
b290KTsKICAgIHJldHVybiB0aGlzLm1hdGNoZXIocm9vdCk7CiAgfSwKCiAgbWF0Y2g6IGZ1bmN0
aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMudG9rZW5zID0gW107CgogICAgdmFyIGUgPSB0aGlzLmV4
cHJlc3Npb24sIHBzID0gU2VsZWN0b3IucGF0dGVybnMsIGFzID0gU2VsZWN0b3IuYXNzZXJ0aW9u
czsKICAgIHZhciBsZSwgcCwgbTsKCiAgICB3aGlsZSAoZSAmJiBsZSAhPT0gZSAmJiAoL1xTLyku
dGVzdChlKSkgewogICAgICBsZSA9IGU7CiAgICAgIGZvciAodmFyIGkgaW4gcHMpIHsKICAgICAg
ICBwID0gcHNbaV07CiAgICAgICAgaWYgKG0gPSBlLm1hdGNoKHApKSB7CiAgICAgICAgICAvLyB1
c2UgdGhlIFNlbGVjdG9yLmFzc2VydGlvbnMgbWV0aG9kcyB1bmxlc3MgdGhlIHNlbGVjdG9yCiAg
ICAgICAgICAvLyBpcyB0b28gY29tcGxleC4KICAgICAgICAgIGlmIChhc1tpXSkgewogICAgICAg
ICAgICB0aGlzLnRva2Vucy5wdXNoKFtpLCBPYmplY3QuY2xvbmUobSldKTsKICAgICAgICAgICAg
ZSA9IGUucmVwbGFjZShtWzBdLCAnJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAv
LyByZWx1Y3RhbnRseSBkbyBhIGRvY3VtZW50LXdpZGUgc2VhcmNoCiAgICAgICAgICAgIC8vIGFu
ZCBsb29rIGZvciBhIG1hdGNoIGluIHRoZSBhcnJheQogICAgICAgICAgICByZXR1cm4gdGhpcy5m
aW5kRWxlbWVudHMoZG9jdW1lbnQpLmluY2x1ZGUoZWxlbWVudCk7CiAgICAgICAgICB9CiAgICAg
ICAgfQogICAgICB9CiAgICB9CgogICAgdmFyIG1hdGNoID0gdHJ1ZSwgbmFtZSwgbWF0Y2hlczsK
ICAgIGZvciAodmFyIGkgPSAwLCB0b2tlbjsgdG9rZW4gPSB0aGlzLnRva2Vuc1tpXTsgaSsrKSB7
CiAgICAgIG5hbWUgPSB0b2tlblswXSwgbWF0Y2hlcyA9IHRva2VuWzFdOwogICAgICBpZiAoIVNl
bGVjdG9yLmFzc2VydGlvbnNbbmFtZV0oZWxlbWVudCwgbWF0Y2hlcykpIHsKICAgICAgICBtYXRj
aCA9IGZhbHNlOyBicmVhazsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBtYXRjaDsKICB9LAoK
ICB0b1N0cmluZzogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uOwogIH0s
CgogIGluc3BlY3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICIjPFNlbGVjdG9yOiIgKyB0aGlz
LmV4cHJlc3Npb24uaW5zcGVjdCgpICsgIj4iOwogIH0KfSk7CgpPYmplY3QuZXh0ZW5kKFNlbGVj
dG9yLCB7CiAgX2NhY2hlOiB7IH0sCgogIHhwYXRoOiB7CiAgICBkZXNjZW5kYW50OiAgICIvLyoi
LAogICAgY2hpbGQ6ICAgICAgICAiLyoiLAogICAgYWRqYWNlbnQ6ICAgICAiL2ZvbGxvd2luZy1z
aWJsaW5nOjoqWzFdIiwKICAgIGxhdGVyU2libGluZzogJy9mb2xsb3dpbmctc2libGluZzo6Kics
CiAgICB0YWdOYW1lOiAgICAgIGZ1bmN0aW9uKG0pIHsKICAgICAgaWYgKG1bMV0gPT0gJyonKSBy
ZXR1cm4gJyc7CiAgICAgIHJldHVybiAiW2xvY2FsLW5hbWUoKT0nIiArIG1bMV0udG9Mb3dlckNh
c2UoKSArCiAgICAgICAgICAgICAiJyBvciBsb2NhbC1uYW1lKCk9JyIgKyBtWzFdLnRvVXBwZXJD
YXNlKCkgKyAiJ10iOwogICAgfSwKICAgIGNsYXNzTmFtZTogICAgIltjb250YWlucyhjb25jYXQo
JyAnLCBAY2xhc3MsICcgJyksICcgI3sxfSAnKV0iLAogICAgaWQ6ICAgICAgICAgICAiW0BpZD0n
I3sxfSddIiwKICAgIGF0dHJQcmVzZW5jZTogZnVuY3Rpb24obSkgewogICAgICBtWzFdID0gbVsx
XS50b0xvd2VyQ2FzZSgpOwogICAgICByZXR1cm4gbmV3IFRlbXBsYXRlKCJbQCN7MX1dIikuZXZh
bHVhdGUobSk7CiAgICB9LAogICAgYXR0cjogZnVuY3Rpb24obSkgewogICAgICBtWzFdID0gbVsx
XS50b0xvd2VyQ2FzZSgpOwogICAgICBtWzNdID0gbVs1XSB8fCBtWzZdOwogICAgICByZXR1cm4g
bmV3IFRlbXBsYXRlKFNlbGVjdG9yLnhwYXRoLm9wZXJhdG9yc1ttWzJdXSkuZXZhbHVhdGUobSk7
CiAgICB9LAogICAgcHNldWRvOiBmdW5jdGlvbihtKSB7CiAgICAgIHZhciBoID0gU2VsZWN0b3Iu
eHBhdGgucHNldWRvc1ttWzFdXTsKICAgICAgaWYgKCFoKSByZXR1cm4gJyc7CiAgICAgIGlmIChP
YmplY3QuaXNGdW5jdGlvbihoKSkgcmV0dXJuIGgobSk7CiAgICAgIHJldHVybiBuZXcgVGVtcGxh
dGUoU2VsZWN0b3IueHBhdGgucHNldWRvc1ttWzFdXSkuZXZhbHVhdGUobSk7CiAgICB9LAogICAg
b3BlcmF0b3JzOiB7CiAgICAgICc9JzogICJbQCN7MX09JyN7M30nXSIsCiAgICAgICchPSc6ICJb
QCN7MX0hPScjezN9J10iLAogICAgICAnXj0nOiAiW3N0YXJ0cy13aXRoKEAjezF9LCAnI3szfScp
XSIsCiAgICAgICckPSc6ICJbc3Vic3RyaW5nKEAjezF9LCAoc3RyaW5nLWxlbmd0aChAI3sxfSkg
LSBzdHJpbmctbGVuZ3RoKCcjezN9JykgKyAxKSk9JyN7M30nXSIsCiAgICAgICcqPSc6ICJbY29u
dGFpbnMoQCN7MX0sICcjezN9JyldIiwKICAgICAgJ349JzogIltjb250YWlucyhjb25jYXQoJyAn
LCBAI3sxfSwgJyAnKSwgJyAjezN9ICcpXSIsCiAgICAgICd8PSc6ICJbY29udGFpbnMoY29uY2F0
KCctJywgQCN7MX0sICctJyksICctI3szfS0nKV0iCiAgICB9LAogICAgcHNldWRvczogewogICAg
ICAnZmlyc3QtY2hpbGQnOiAnW25vdChwcmVjZWRpbmctc2libGluZzo6KildJywKICAgICAgJ2xh
c3QtY2hpbGQnOiAgJ1tub3QoZm9sbG93aW5nLXNpYmxpbmc6OiopXScsCiAgICAgICdvbmx5LWNo
aWxkJzogICdbbm90KHByZWNlZGluZy1zaWJsaW5nOjoqIG9yIGZvbGxvd2luZy1zaWJsaW5nOjoq
KV0nLAogICAgICAnZW1wdHknOiAgICAgICAiW2NvdW50KCopID0gMCBhbmQgKGNvdW50KHRleHQo
KSkgPSAwIG9yIHRyYW5zbGF0ZSh0ZXh0KCksICcgXHRcclxuJywgJycpID0gJycpXSIsCiAgICAg
ICdjaGVja2VkJzogICAgICJbQGNoZWNrZWRdIiwKICAgICAgJ2Rpc2FibGVkJzogICAgIltAZGlz
YWJsZWRdIiwKICAgICAgJ2VuYWJsZWQnOiAgICAgIltub3QoQGRpc2FibGVkKV0iLAogICAgICAn
bm90JzogZnVuY3Rpb24obSkgewogICAgICAgIHZhciBlID0gbVs2XSwgcCA9IFNlbGVjdG9yLnBh
dHRlcm5zLAogICAgICAgICAgICB4ID0gU2VsZWN0b3IueHBhdGgsIGxlLCB2OwoKICAgICAgICB2
YXIgZXhjbHVzaW9uID0gW107CiAgICAgICAgd2hpbGUgKGUgJiYgbGUgIT0gZSAmJiAoL1xTLyku
dGVzdChlKSkgewogICAgICAgICAgbGUgPSBlOwogICAgICAgICAgZm9yICh2YXIgaSBpbiBwKSB7
CiAgICAgICAgICAgIGlmIChtID0gZS5tYXRjaChwW2ldKSkgewogICAgICAgICAgICAgIHYgPSBP
YmplY3QuaXNGdW5jdGlvbih4W2ldKSA/IHhbaV0obSkgOiBuZXcgVGVtcGxhdGUoeFtpXSkuZXZh
bHVhdGUobSk7CiAgICAgICAgICAgICAgZXhjbHVzaW9uLnB1c2goIigiICsgdi5zdWJzdHJpbmco
MSwgdi5sZW5ndGggLSAxKSArICIpIik7CiAgICAgICAgICAgICAgZSA9IGUucmVwbGFjZShtWzBd
LCAnJyk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAg
ICAgICB9CiAgICAgICAgcmV0dXJuICJbbm90KCIgKyBleGNsdXNpb24uam9pbigiIGFuZCAiKSAr
ICIpXSI7CiAgICAgIH0sCiAgICAgICdudGgtY2hpbGQnOiAgICAgIGZ1bmN0aW9uKG0pIHsKICAg
ICAgICByZXR1cm4gU2VsZWN0b3IueHBhdGgucHNldWRvcy5udGgoIihjb3VudCguL3ByZWNlZGlu
Zy1zaWJsaW5nOjoqKSArIDEpICIsIG0pOwogICAgICB9LAogICAgICAnbnRoLWxhc3QtY2hpbGQn
OiBmdW5jdGlvbihtKSB7CiAgICAgICAgcmV0dXJuIFNlbGVjdG9yLnhwYXRoLnBzZXVkb3MubnRo
KCIoY291bnQoLi9mb2xsb3dpbmctc2libGluZzo6KikgKyAxKSAiLCBtKTsKICAgICAgfSwKICAg
ICAgJ250aC1vZi10eXBlJzogICAgZnVuY3Rpb24obSkgewogICAgICAgIHJldHVybiBTZWxlY3Rv
ci54cGF0aC5wc2V1ZG9zLm50aCgicG9zaXRpb24oKSAiLCBtKTsKICAgICAgfSwKICAgICAgJ250
aC1sYXN0LW9mLXR5cGUnOiBmdW5jdGlvbihtKSB7CiAgICAgICAgcmV0dXJuIFNlbGVjdG9yLnhw
YXRoLnBzZXVkb3MubnRoKCIobGFzdCgpICsgMSAtIHBvc2l0aW9uKCkpICIsIG0pOwogICAgICB9
LAogICAgICAnZmlyc3Qtb2YtdHlwZSc6ICBmdW5jdGlvbihtKSB7CiAgICAgICAgbVs2XSA9ICIx
IjsgcmV0dXJuIFNlbGVjdG9yLnhwYXRoLnBzZXVkb3NbJ250aC1vZi10eXBlJ10obSk7CiAgICAg
IH0sCiAgICAgICdsYXN0LW9mLXR5cGUnOiAgIGZ1bmN0aW9uKG0pIHsKICAgICAgICBtWzZdID0g
IjEiOyByZXR1cm4gU2VsZWN0b3IueHBhdGgucHNldWRvc1snbnRoLWxhc3Qtb2YtdHlwZSddKG0p
OwogICAgICB9LAogICAgICAnb25seS1vZi10eXBlJzogICBmdW5jdGlvbihtKSB7CiAgICAgICAg
dmFyIHAgPSBTZWxlY3Rvci54cGF0aC5wc2V1ZG9zOyByZXR1cm4gcFsnZmlyc3Qtb2YtdHlwZSdd
KG0pICsgcFsnbGFzdC1vZi10eXBlJ10obSk7CiAgICAgIH0sCiAgICAgIG50aDogZnVuY3Rpb24o
ZnJhZ21lbnQsIG0pIHsKICAgICAgICB2YXIgbW0sIGZvcm11bGEgPSBtWzZdLCBwcmVkaWNhdGU7
CiAgICAgICAgaWYgKGZvcm11bGEgPT0gJ2V2ZW4nKSBmb3JtdWxhID0gJzJuKzAnOwogICAgICAg
IGlmIChmb3JtdWxhID09ICdvZGQnKSAgZm9ybXVsYSA9ICcybisxJzsKICAgICAgICBpZiAobW0g
PSBmb3JtdWxhLm1hdGNoKC9eKFxkKykkLykpIC8vIGRpZ2l0IG9ubHkKICAgICAgICAgIHJldHVy
biAnWycgKyBmcmFnbWVudCArICI9ICIgKyBtbVsxXSArICddJzsKICAgICAgICBpZiAobW0gPSBm
b3JtdWxhLm1hdGNoKC9eKC0/XGQqKT9uKChbKy1dKShcZCspKT8vKSkgeyAvLyBhbitiCiAgICAg
ICAgICBpZiAobW1bMV0gPT0gIi0iKSBtbVsxXSA9IC0xOwogICAgICAgICAgdmFyIGEgPSBtbVsx
XSA/IE51bWJlcihtbVsxXSkgOiAxOwogICAgICAgICAgdmFyIGIgPSBtbVsyXSA/IE51bWJlciht
bVsyXSkgOiAwOwogICAgICAgICAgcHJlZGljYXRlID0gIlsoKCN7ZnJhZ21lbnR9IC0gI3tifSkg
bW9kICN7YX0gPSAwKSBhbmQgIiArCiAgICAgICAgICAiKCgje2ZyYWdtZW50fSAtICN7Yn0pIGRp
diAje2F9ID49IDApXSI7CiAgICAgICAgICByZXR1cm4gbmV3IFRlbXBsYXRlKHByZWRpY2F0ZSku
ZXZhbHVhdGUoewogICAgICAgICAgICBmcmFnbWVudDogZnJhZ21lbnQsIGE6IGEsIGI6IGIgfSk7
CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKCiAgY3JpdGVyaWE6IHsKICAgIHRhZ05hbWU6
ICAgICAgJ24gPSBoLnRhZ05hbWUobiwgciwgIiN7MX0iLCBjKTsgICAgICBjID0gZmFsc2U7JywK
ICAgIGNsYXNzTmFtZTogICAgJ24gPSBoLmNsYXNzTmFtZShuLCByLCAiI3sxfSIsIGMpOyAgICBj
ID0gZmFsc2U7JywKICAgIGlkOiAgICAgICAgICAgJ24gPSBoLmlkKG4sIHIsICIjezF9IiwgYyk7
ICAgICAgICAgICBjID0gZmFsc2U7JywKICAgIGF0dHJQcmVzZW5jZTogJ24gPSBoLmF0dHJQcmVz
ZW5jZShuLCByLCAiI3sxfSIsIGMpOyBjID0gZmFsc2U7JywKICAgIGF0dHI6IGZ1bmN0aW9uKG0p
IHsKICAgICAgbVszXSA9IChtWzVdIHx8IG1bNl0pOwogICAgICByZXR1cm4gbmV3IFRlbXBsYXRl
KCduID0gaC5hdHRyKG4sIHIsICIjezF9IiwgIiN7M30iLCAiI3syfSIsIGMpOyBjID0gZmFsc2U7
JykuZXZhbHVhdGUobSk7CiAgICB9LAogICAgcHNldWRvOiBmdW5jdGlvbihtKSB7CiAgICAgIGlm
IChtWzZdKSBtWzZdID0gbVs2XS5yZXBsYWNlKC8iL2csICdcXCInKTsKICAgICAgcmV0dXJuIG5l
dyBUZW1wbGF0ZSgnbiA9IGgucHNldWRvKG4sICIjezF9IiwgIiN7Nn0iLCByLCBjKTsgYyA9IGZh
bHNlOycpLmV2YWx1YXRlKG0pOwogICAgfSwKICAgIGRlc2NlbmRhbnQ6ICAgJ2MgPSAiZGVzY2Vu
ZGFudCI7JywKICAgIGNoaWxkOiAgICAgICAgJ2MgPSAiY2hpbGQiOycsCiAgICBhZGphY2VudDog
ICAgICdjID0gImFkamFjZW50IjsnLAogICAgbGF0ZXJTaWJsaW5nOiAnYyA9ICJsYXRlclNpYmxp
bmciOycKICB9LAoKICBwYXR0ZXJuczogewogICAgLy8gY29tYmluYXRvcnMgbXVzdCBiZSBsaXN0
ZWQgZmlyc3QKICAgIC8vIChhbmQgZGVzY2VuZGFudCBuZWVkcyB0byBiZSBsYXN0IGNvbWJpbmF0
b3IpCiAgICBsYXRlclNpYmxpbmc6IC9eXHMqflxzKi8sCiAgICBjaGlsZDogICAgICAgIC9eXHMq
PlxzKi8sCiAgICBhZGphY2VudDogICAgIC9eXHMqXCtccyovLAogICAgZGVzY2VuZGFudDogICAv
XlxzLywKCiAgICAvLyBzZWxlY3RvcnMgZm9sbG93CiAgICB0YWdOYW1lOiAgICAgIC9eXHMqKFwq
fFtcd1wtXSspKFxifCQpPy8sCiAgICBpZDogICAgICAgICAgIC9eIyhbXHdcLVwqXSspKFxifCQp
LywKICAgIGNsYXNzTmFtZTogICAgL15cLihbXHdcLVwqXSspKFxifCQpLywKICAgIHBzZXVkbzoK
L146KChmaXJzdHxsYXN0fG50aHxudGgtbGFzdHxvbmx5KSgtY2hpbGR8LW9mLXR5cGUpfGVtcHR5
fGNoZWNrZWR8KGVufGRpcylhYmxlZHxub3QpKFwoKC4qPylcKSk/KFxifCR8KD89XHN8Wzorfj5d
KSkvLAogICAgYXR0clByZXNlbmNlOiAvXlxbKFtcd10rKVxdLywKICAgIGF0dHI6ICAgICAgICAg
L1xbKCg/Oltcdy1dKjopP1tcdy1dKylccyooPzooWyFeJCp+fF0/PSlccyooKFsnIl0pKFteXDRd
Kj8pXDR8KFteJyJdW15cXV0qPykpKT9cXS8KICB9LAoKICAvLyBmb3IgU2VsZWN0b3IubWF0Y2gg
YW5kIEVsZW1lbnQjbWF0Y2gKICBhc3NlcnRpb25zOiB7CiAgICB0YWdOYW1lOiBmdW5jdGlvbihl
bGVtZW50LCBtYXRjaGVzKSB7CiAgICAgIHJldHVybiBtYXRjaGVzWzFdLnRvVXBwZXJDYXNlKCkg
PT0gZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk7CiAgICB9LAoKICAgIGNsYXNzTmFtZTog
ZnVuY3Rpb24oZWxlbWVudCwgbWF0Y2hlcykgewogICAgICByZXR1cm4gRWxlbWVudC5oYXNDbGFz
c05hbWUoZWxlbWVudCwgbWF0Y2hlc1sxXSk7CiAgICB9LAoKICAgIGlkOiBmdW5jdGlvbihlbGVt
ZW50LCBtYXRjaGVzKSB7CiAgICAgIHJldHVybiBlbGVtZW50LmlkID09PSBtYXRjaGVzWzFdOwog
ICAgfSwKCiAgICBhdHRyUHJlc2VuY2U6IGZ1bmN0aW9uKGVsZW1lbnQsIG1hdGNoZXMpIHsKICAg
ICAgcmV0dXJuIEVsZW1lbnQuaGFzQXR0cmlidXRlKGVsZW1lbnQsIG1hdGNoZXNbMV0pOwogICAg
fSwKCiAgICBhdHRyOiBmdW5jdGlvbihlbGVtZW50LCBtYXRjaGVzKSB7CiAgICAgIHZhciBub2Rl
VmFsdWUgPSBFbGVtZW50LnJlYWRBdHRyaWJ1dGUoZWxlbWVudCwgbWF0Y2hlc1sxXSk7CiAgICAg
IHJldHVybiBub2RlVmFsdWUgJiYgU2VsZWN0b3Iub3BlcmF0b3JzW21hdGNoZXNbMl1dKG5vZGVW
YWx1ZSwgbWF0Y2hlc1s1XSB8fCBtYXRjaGVzWzZdKTsKICAgIH0KICB9LAoKICBoYW5kbGVyczog
ewogICAgLy8gVVRJTElUWSBGVU5DVElPTlMKICAgIC8vIGpvaW5zIHR3byBjb2xsZWN0aW9ucwog
ICAgY29uY2F0OiBmdW5jdGlvbihhLCBiKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBu
b2RlID0gYltpXTsgaSsrKQogICAgICAgIGEucHVzaChub2RlKTsKICAgICAgcmV0dXJuIGE7CiAg
ICB9LAoKICAgIC8vIG1hcmtzIGFuIGFycmF5IG9mIG5vZGVzIGZvciBjb3VudGluZwogICAgbWFy
azogZnVuY3Rpb24obm9kZXMpIHsKICAgICAgdmFyIF90cnVlID0gUHJvdG90eXBlLmVtcHR5RnVu
Y3Rpb247CiAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykK
ICAgICAgICBub2RlLl9jb3VudGVkQnlQcm90b3R5cGUgPSBfdHJ1ZTsKICAgICAgcmV0dXJuIG5v
ZGVzOwogICAgfSwKCiAgICB1bm1hcms6IGZ1bmN0aW9uKG5vZGVzKSB7CiAgICAgIGZvciAodmFy
IGkgPSAwLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBub2RlLl9jb3VudGVk
QnlQcm90b3R5cGUgPSB1bmRlZmluZWQ7CiAgICAgIHJldHVybiBub2RlczsKICAgIH0sCgogICAg
Ly8gbWFyayBlYWNoIGNoaWxkIG5vZGUgd2l0aCBpdHMgcG9zaXRpb24gKGZvciBudGggY2FsbHMp
CiAgICAvLyAib2ZUeXBlIiBmbGFnIGluZGljYXRlcyB3aGV0aGVyIHdlJ3JlIGluZGV4aW5nIGZv
ciBudGgtb2YtdHlwZQogICAgLy8gcmF0aGVyIHRoYW4gbnRoLWNoaWxkCiAgICBpbmRleDogZnVu
Y3Rpb24ocGFyZW50Tm9kZSwgcmV2ZXJzZSwgb2ZUeXBlKSB7CiAgICAgIHBhcmVudE5vZGUuX2Nv
dW50ZWRCeVByb3RvdHlwZSA9IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwogICAgICBpZiAocmV2
ZXJzZSkgewogICAgICAgIGZvciAodmFyIG5vZGVzID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzLCBp
ID0gbm9kZXMubGVuZ3RoIC0gMSwgaiA9IDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICB2YXIg
bm9kZSA9IG5vZGVzW2ldOwogICAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSAmJiAoIW9m
VHlwZSB8fCBub2RlLl9jb3VudGVkQnlQcm90b3R5cGUpKSBub2RlLm5vZGVJbmRleCA9IGorKzsK
ICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGogPSAxLCBu
b2RlcyA9IHBhcmVudE5vZGUuY2hpbGROb2Rlczsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAg
ICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAxICYmICghb2ZUeXBlIHx8IG5vZGUuX2NvdW50ZWRC
eVByb3RvdHlwZSkpIG5vZGUubm9kZUluZGV4ID0gaisrOwogICAgICB9CiAgICB9LAoKICAgIC8v
IGZpbHRlcnMgb3V0IGR1cGxpY2F0ZXMgYW5kIGV4dGVuZHMgYWxsIG5vZGVzCiAgICB1bmlxdWU6
IGZ1bmN0aW9uKG5vZGVzKSB7CiAgICAgIGlmIChub2Rlcy5sZW5ndGggPT0gMCkgcmV0dXJuIG5v
ZGVzOwogICAgICB2YXIgcmVzdWx0cyA9IFtdLCBuOwogICAgICBmb3IgKHZhciBpID0gMCwgbCA9
IG5vZGVzLmxlbmd0aDsgaSA8IGw7IGkrKykKICAgICAgICBpZiAoIShuID0gbm9kZXNbaV0pLl9j
b3VudGVkQnlQcm90b3R5cGUpIHsKICAgICAgICAgIG4uX2NvdW50ZWRCeVByb3RvdHlwZSA9IFBy
b3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwogICAgICAgICAgcmVzdWx0cy5wdXNoKEVsZW1lbnQuZXh0
ZW5kKG4pKTsKICAgICAgICB9CiAgICAgIHJldHVybiBTZWxlY3Rvci5oYW5kbGVycy51bm1hcmso
cmVzdWx0cyk7CiAgICB9LAoKICAgIC8vIENPTUJJTkFUT1IgRlVOQ1RJT05TCiAgICBkZXNjZW5k
YW50OiBmdW5jdGlvbihub2RlcykgewogICAgICB2YXIgaCA9IFNlbGVjdG9yLmhhbmRsZXJzOwog
ICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07
IGkrKykKICAgICAgICBoLmNvbmNhdChyZXN1bHRzLCBub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1l
KCcqJykpOwogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgY2hpbGQ6IGZ1bmN0aW9u
KG5vZGVzKSB7CiAgICAgIHZhciBoID0gU2VsZWN0b3IuaGFuZGxlcnM7CiAgICAgIGZvciAodmFy
IGkgPSAwLCByZXN1bHRzID0gW10sIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKSB7CiAgICAg
ICAgZm9yICh2YXIgaiA9IDAsIGNoaWxkOyBjaGlsZCA9IG5vZGUuY2hpbGROb2Rlc1tqXTsgaisr
KQogICAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlID09IDEgJiYgY2hpbGQudGFnTmFtZSAhPSAn
IScpIHJlc3VsdHMucHVzaChjaGlsZCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAg
ICB9LAoKICAgIGFkamFjZW50OiBmdW5jdGlvbihub2RlcykgewogICAgICBmb3IgKHZhciBpID0g
MCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykgewogICAgICAgIHZh
ciBuZXh0ID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmcobm9kZSk7CiAgICAgICAgaWYgKG5leHQp
IHJlc3VsdHMucHVzaChuZXh0KTsKICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0s
CgogICAgbGF0ZXJTaWJsaW5nOiBmdW5jdGlvbihub2RlcykgewogICAgICB2YXIgaCA9IFNlbGVj
dG9yLmhhbmRsZXJzOwogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBu
b2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBoLmNvbmNhdChyZXN1bHRzLCBFbGVtZW50Lm5l
eHRTaWJsaW5ncyhub2RlKSk7CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKCiAgICBuZXh0
RWxlbWVudFNpYmxpbmc6IGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgd2hpbGUgKG5vZGUgPSBub2Rl
Lm5leHRTaWJsaW5nKQoJICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSkgcmV0dXJuIG5vZGU7
CiAgICAgIHJldHVybiBudWxsOwogICAgfSwKCiAgICBwcmV2aW91c0VsZW1lbnRTaWJsaW5nOiBm
dW5jdGlvbihub2RlKSB7CiAgICAgIHdoaWxlIChub2RlID0gbm9kZS5wcmV2aW91c1NpYmxpbmcp
CiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSkgcmV0dXJuIG5vZGU7CiAgICAgIHJldHVy
biBudWxsOwogICAgfSwKCiAgICAvLyBUT0tFTiBGVU5DVElPTlMKICAgIHRhZ05hbWU6IGZ1bmN0
aW9uKG5vZGVzLCByb290LCB0YWdOYW1lLCBjb21iaW5hdG9yKSB7CiAgICAgIHZhciB1VGFnTmFt
ZSA9IHRhZ05hbWUudG9VcHBlckNhc2UoKTsKICAgICAgdmFyIHJlc3VsdHMgPSBbXSwgaCA9IFNl
bGVjdG9yLmhhbmRsZXJzOwogICAgICBpZiAobm9kZXMpIHsKICAgICAgICBpZiAoY29tYmluYXRv
cikgewogICAgICAgICAgLy8gZmFzdGxhbmUgZm9yIG9yZGluYXJ5IGRlc2NlbmRhbnQgY29tYmlu
YXRvcnMKICAgICAgICAgIGlmIChjb21iaW5hdG9yID09ICJkZXNjZW5kYW50IikgewogICAgICAg
ICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAg
ICAgICAgaC5jb25jYXQocmVzdWx0cywgbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdOYW1l
KSk7CiAgICAgICAgICAgIHJldHVybiByZXN1bHRzOwogICAgICAgICAgfSBlbHNlIG5vZGVzID0g
dGhpc1tjb21iaW5hdG9yXShub2Rlcyk7CiAgICAgICAgICBpZiAodGFnTmFtZSA9PSAiKiIpIHJl
dHVybiBub2RlczsKICAgICAgICB9CiAgICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUg
PSBub2Rlc1tpXTsgaSsrKQogICAgICAgICAgaWYgKG5vZGUudGFnTmFtZS50b1VwcGVyQ2FzZSgp
ID09PSB1VGFnTmFtZSkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICAgIHJldHVybiByZXN1bHRz
OwogICAgICB9IGVsc2UgcmV0dXJuIHJvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFnTmFtZSk7
CiAgICB9LAoKICAgIGlkOiBmdW5jdGlvbihub2Rlcywgcm9vdCwgaWQsIGNvbWJpbmF0b3IpIHsK
ICAgICAgdmFyIHRhcmdldE5vZGUgPSAkKGlkKSwgaCA9IFNlbGVjdG9yLmhhbmRsZXJzOwogICAg
ICBpZiAoIXRhcmdldE5vZGUpIHJldHVybiBbXTsKICAgICAgaWYgKCFub2RlcyAmJiByb290ID09
IGRvY3VtZW50KSByZXR1cm4gW3RhcmdldE5vZGVdOwogICAgICBpZiAobm9kZXMpIHsKICAgICAg
ICBpZiAoY29tYmluYXRvcikgewogICAgICAgICAgaWYgKGNvbWJpbmF0b3IgPT0gJ2NoaWxkJykg
ewogICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKysp
CiAgICAgICAgICAgICAgaWYgKHRhcmdldE5vZGUucGFyZW50Tm9kZSA9PSBub2RlKSByZXR1cm4g
W3RhcmdldE5vZGVdOwogICAgICAgICAgfSBlbHNlIGlmIChjb21iaW5hdG9yID09ICdkZXNjZW5k
YW50JykgewogICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ld
OyBpKyspCiAgICAgICAgICAgICAgaWYgKEVsZW1lbnQuZGVzY2VuZGFudE9mKHRhcmdldE5vZGUs
IG5vZGUpKSByZXR1cm4gW3RhcmdldE5vZGVdOwogICAgICAgICAgfSBlbHNlIGlmIChjb21iaW5h
dG9yID09ICdhZGphY2VudCcpIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5v
ZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgICAgICAgIGlmIChTZWxlY3Rvci5oYW5kbGVycy5w
cmV2aW91c0VsZW1lbnRTaWJsaW5nKHRhcmdldE5vZGUpID09IG5vZGUpCiAgICAgICAgICAgICAg
ICByZXR1cm4gW3RhcmdldE5vZGVdOwogICAgICAgICAgfSBlbHNlIG5vZGVzID0gaFtjb21iaW5h
dG9yXShub2Rlcyk7CiAgICAgICAgfQogICAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBub2Rl
ID0gbm9kZXNbaV07IGkrKykKICAgICAgICAgIGlmIChub2RlID09IHRhcmdldE5vZGUpIHJldHVy
biBbdGFyZ2V0Tm9kZV07CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICAgIHJldHVybiAo
dGFyZ2V0Tm9kZSAmJiBFbGVtZW50LmRlc2NlbmRhbnRPZih0YXJnZXROb2RlLCByb290KSkgPyBb
dGFyZ2V0Tm9kZV0gOiBbXTsKICAgIH0sCgogICAgY2xhc3NOYW1lOiBmdW5jdGlvbihub2Rlcywg
cm9vdCwgY2xhc3NOYW1lLCBjb21iaW5hdG9yKSB7CiAgICAgIGlmIChub2RlcyAmJiBjb21iaW5h
dG9yKSBub2RlcyA9IHRoaXNbY29tYmluYXRvcl0obm9kZXMpOwogICAgICByZXR1cm4gU2VsZWN0
b3IuaGFuZGxlcnMuYnlDbGFzc05hbWUobm9kZXMsIHJvb3QsIGNsYXNzTmFtZSk7CiAgICB9LAoK
ICAgIGJ5Q2xhc3NOYW1lOiBmdW5jdGlvbihub2Rlcywgcm9vdCwgY2xhc3NOYW1lKSB7CiAgICAg
IGlmICghbm9kZXMpIG5vZGVzID0gU2VsZWN0b3IuaGFuZGxlcnMuZGVzY2VuZGFudChbcm9vdF0p
OwogICAgICB2YXIgbmVlZGxlID0gJyAnICsgY2xhc3NOYW1lICsgJyAnOwogICAgICBmb3IgKHZh
ciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlLCBub2RlQ2xhc3NOYW1lOyBub2RlID0gbm9kZXNb
aV07IGkrKykgewogICAgICAgIG5vZGVDbGFzc05hbWUgPSBub2RlLmNsYXNzTmFtZTsKICAgICAg
ICBpZiAobm9kZUNsYXNzTmFtZS5sZW5ndGggPT0gMCkgY29udGludWU7CiAgICAgICAgaWYgKG5v
ZGVDbGFzc05hbWUgPT0gY2xhc3NOYW1lIHx8ICgnICcgKyBub2RlQ2xhc3NOYW1lICsgJyAnKS5p
bmNsdWRlKG5lZWRsZSkpCiAgICAgICAgICByZXN1bHRzLnB1c2gobm9kZSk7CiAgICAgIH0KICAg
ICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAoKICAgIGF0dHJQcmVzZW5jZTogZnVuY3Rpb24obm9k
ZXMsIHJvb3QsIGF0dHIsIGNvbWJpbmF0b3IpIHsKICAgICAgaWYgKCFub2Rlcykgbm9kZXMgPSBy
b290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIik7CiAgICAgIGlmIChub2RlcyAmJiBjb21iaW5h
dG9yKSBub2RlcyA9IHRoaXNbY29tYmluYXRvcl0obm9kZXMpOwogICAgICB2YXIgcmVzdWx0cyA9
IFtdOwogICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAg
ICAgICAgaWYgKEVsZW1lbnQuaGFzQXR0cmlidXRlKG5vZGUsIGF0dHIpKSByZXN1bHRzLnB1c2go
bm9kZSk7CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKCiAgICBhdHRyOiBmdW5jdGlvbihu
b2Rlcywgcm9vdCwgYXR0ciwgdmFsdWUsIG9wZXJhdG9yLCBjb21iaW5hdG9yKSB7CiAgICAgIGlm
ICghbm9kZXMpIG5vZGVzID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpOwogICAgICBp
ZiAobm9kZXMgJiYgY29tYmluYXRvcikgbm9kZXMgPSB0aGlzW2NvbWJpbmF0b3JdKG5vZGVzKTsK
ICAgICAgdmFyIGhhbmRsZXIgPSBTZWxlY3Rvci5vcGVyYXRvcnNbb3BlcmF0b3JdLCByZXN1bHRz
ID0gW107CiAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykg
ewogICAgICAgIHZhciBub2RlVmFsdWUgPSBFbGVtZW50LnJlYWRBdHRyaWJ1dGUobm9kZSwgYXR0
cik7CiAgICAgICAgaWYgKG5vZGVWYWx1ZSA9PT0gbnVsbCkgY29udGludWU7CiAgICAgICAgaWYg
KGhhbmRsZXIobm9kZVZhbHVlLCB2YWx1ZSkpIHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgfQog
ICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgcHNldWRvOiBmdW5jdGlvbihub2Rlcywg
bmFtZSwgdmFsdWUsIHJvb3QsIGNvbWJpbmF0b3IpIHsKICAgICAgaWYgKG5vZGVzICYmIGNvbWJp
bmF0b3IpIG5vZGVzID0gdGhpc1tjb21iaW5hdG9yXShub2Rlcyk7CiAgICAgIGlmICghbm9kZXMp
IG5vZGVzID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpOwogICAgICByZXR1cm4gU2Vs
ZWN0b3IucHNldWRvc1tuYW1lXShub2RlcywgdmFsdWUsIHJvb3QpOwogICAgfQogIH0sCgogIHBz
ZXVkb3M6IHsKICAgICdmaXJzdC1jaGlsZCc6IGZ1bmN0aW9uKG5vZGVzLCB2YWx1ZSwgcm9vdCkg
ewogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNb
aV07IGkrKykgewogICAgICAgIGlmIChTZWxlY3Rvci5oYW5kbGVycy5wcmV2aW91c0VsZW1lbnRT
aWJsaW5nKG5vZGUpKSBjb250aW51ZTsKICAgICAgICAgIHJlc3VsdHMucHVzaChub2RlKTsKICAg
ICAgfQogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCiAgICAnbGFzdC1jaGlsZCc6IGZ1bmN0
aW9uKG5vZGVzLCB2YWx1ZSwgcm9vdCkgewogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9
IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykgewogICAgICAgIGlmIChTZWxlY3Rvci5o
YW5kbGVycy5uZXh0RWxlbWVudFNpYmxpbmcobm9kZSkpIGNvbnRpbnVlOwogICAgICAgICAgcmVz
dWx0cy5wdXNoKG5vZGUpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKICAg
ICdvbmx5LWNoaWxkJzogZnVuY3Rpb24obm9kZXMsIHZhbHVlLCByb290KSB7CiAgICAgIHZhciBo
ID0gU2VsZWN0b3IuaGFuZGxlcnM7CiAgICAgIGZvciAodmFyIGkgPSAwLCByZXN1bHRzID0gW10s
IG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgIGlmICghaC5wcmV2aW91c0VsZW1l
bnRTaWJsaW5nKG5vZGUpICYmICFoLm5leHRFbGVtZW50U2libGluZyhub2RlKSkKICAgICAgICAg
IHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAogICAgJ250
aC1jaGlsZCc6ICAgICAgICBmdW5jdGlvbihub2RlcywgZm9ybXVsYSwgcm9vdCkgewogICAgICBy
ZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMsIGZvcm11bGEsIHJvb3QpOwogICAgfSwK
ICAgICdudGgtbGFzdC1jaGlsZCc6ICAgZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJvb3QpIHsK
ICAgICAgcmV0dXJuIFNlbGVjdG9yLnBzZXVkb3MubnRoKG5vZGVzLCBmb3JtdWxhLCByb290LCB0
cnVlKTsKICAgIH0sCiAgICAnbnRoLW9mLXR5cGUnOiAgICAgIGZ1bmN0aW9uKG5vZGVzLCBmb3Jt
dWxhLCByb290KSB7CiAgICAgIHJldHVybiBTZWxlY3Rvci5wc2V1ZG9zLm50aChub2RlcywgZm9y
bXVsYSwgcm9vdCwgZmFsc2UsIHRydWUpOwogICAgfSwKICAgICdudGgtbGFzdC1vZi10eXBlJzog
ZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJvb3QpIHsKICAgICAgcmV0dXJuIFNlbGVjdG9yLnBz
ZXVkb3MubnRoKG5vZGVzLCBmb3JtdWxhLCByb290LCB0cnVlLCB0cnVlKTsKICAgIH0sCiAgICAn
Zmlyc3Qtb2YtdHlwZSc6ICAgIGZ1bmN0aW9uKG5vZGVzLCBmb3JtdWxhLCByb290KSB7CiAgICAg
IHJldHVybiBTZWxlY3Rvci5wc2V1ZG9zLm50aChub2RlcywgIjEiLCByb290LCBmYWxzZSwgdHJ1
ZSk7CiAgICB9LAogICAgJ2xhc3Qtb2YtdHlwZSc6ICAgICBmdW5jdGlvbihub2RlcywgZm9ybXVs
YSwgcm9vdCkgewogICAgICByZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMsICIxIiwg
cm9vdCwgdHJ1ZSwgdHJ1ZSk7CiAgICB9LAogICAgJ29ubHktb2YtdHlwZSc6ICAgICBmdW5jdGlv
bihub2RlcywgZm9ybXVsYSwgcm9vdCkgewogICAgICB2YXIgcCA9IFNlbGVjdG9yLnBzZXVkb3M7
CiAgICAgIHJldHVybiBwWydsYXN0LW9mLXR5cGUnXShwWydmaXJzdC1vZi10eXBlJ10obm9kZXMs
IGZvcm11bGEsIHJvb3QpLCBmb3JtdWxhLCByb290KTsKICAgIH0sCgogICAgLy8gaGFuZGxlcyB0
aGUgYW4rYiBsb2dpYwogICAgZ2V0SW5kaWNlczogZnVuY3Rpb24oYSwgYiwgdG90YWwpIHsKICAg
ICAgaWYgKGEgPT0gMCkgcmV0dXJuIGIgPiAwID8gW2JdIDogW107CiAgICAgIHJldHVybiAkUigx
LCB0b3RhbCkuaW5qZWN0KFtdLCBmdW5jdGlvbihtZW1vLCBpKSB7CiAgICAgICAgaWYgKDAgPT0g
KGkgLSBiKSAlIGEgJiYgKGkgLSBiKSAvIGEgPj0gMCkgbWVtby5wdXNoKGkpOwogICAgICAgIHJl
dHVybiBtZW1vOwogICAgICB9KTsKICAgIH0sCgogICAgLy8gaGFuZGxlcyBudGgoLWxhc3QpLWNo
aWxkLCBudGgoLWxhc3QpLW9mLXR5cGUsIGFuZCAoZmlyc3R8bGFzdCktb2YtdHlwZQogICAgbnRo
OiBmdW5jdGlvbihub2RlcywgZm9ybXVsYSwgcm9vdCwgcmV2ZXJzZSwgb2ZUeXBlKSB7CiAgICAg
IGlmIChub2Rlcy5sZW5ndGggPT0gMCkgcmV0dXJuIFtdOwogICAgICBpZiAoZm9ybXVsYSA9PSAn
ZXZlbicpIGZvcm11bGEgPSAnMm4rMCc7CiAgICAgIGlmIChmb3JtdWxhID09ICdvZGQnKSAgZm9y
bXVsYSA9ICcybisxJzsKICAgICAgdmFyIGggPSBTZWxlY3Rvci5oYW5kbGVycywgcmVzdWx0cyA9
IFtdLCBpbmRleGVkID0gW10sIG07CiAgICAgIGgubWFyayhub2Rlcyk7CiAgICAgIGZvciAodmFy
IGkgPSAwLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykgewogICAgICAgIGlmICghbm9kZS5w
YXJlbnROb2RlLl9jb3VudGVkQnlQcm90b3R5cGUpIHsKICAgICAgICAgIGguaW5kZXgobm9kZS5w
YXJlbnROb2RlLCByZXZlcnNlLCBvZlR5cGUpOwogICAgICAgICAgaW5kZXhlZC5wdXNoKG5vZGUu
cGFyZW50Tm9kZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChmb3JtdWxhLm1hdGNoKC9e
XGQrJC8pKSB7IC8vIGp1c3QgYSBudW1iZXIKICAgICAgICBmb3JtdWxhID0gTnVtYmVyKGZvcm11
bGEpOwogICAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykK
ICAgICAgICAgIGlmIChub2RlLm5vZGVJbmRleCA9PSBmb3JtdWxhKSByZXN1bHRzLnB1c2gobm9k
ZSk7CiAgICAgIH0gZWxzZSBpZiAobSA9IGZvcm11bGEubWF0Y2goL14oLT9cZCopP24oKFsrLV0p
KFxkKykpPy8pKSB7IC8vIGFuK2IKICAgICAgICBpZiAobVsxXSA9PSAiLSIpIG1bMV0gPSAtMTsK
ICAgICAgICB2YXIgYSA9IG1bMV0gPyBOdW1iZXIobVsxXSkgOiAxOwogICAgICAgIHZhciBiID0g
bVsyXSA/IE51bWJlcihtWzJdKSA6IDA7CiAgICAgICAgdmFyIGluZGljZXMgPSBTZWxlY3Rvci5w
c2V1ZG9zLmdldEluZGljZXMoYSwgYiwgbm9kZXMubGVuZ3RoKTsKICAgICAgICBmb3IgKHZhciBp
ID0gMCwgbm9kZSwgbCA9IGluZGljZXMubGVuZ3RoOyBub2RlID0gbm9kZXNbaV07IGkrKykgewog
ICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsOyBqKyspCiAgICAgICAgICAgIGlmIChub2Rl
Lm5vZGVJbmRleCA9PSBpbmRpY2VzW2pdKSByZXN1bHRzLnB1c2gobm9kZSk7CiAgICAgICAgfQog
ICAgICB9CiAgICAgIGgudW5tYXJrKG5vZGVzKTsKICAgICAgaC51bm1hcmsoaW5kZXhlZCk7CiAg
ICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKCiAgICAnZW1wdHknOiBmdW5jdGlvbihub2Rlcywg
dmFsdWUsIHJvb3QpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsg
bm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICAvLyBJRSB0cmVhdHMgY29tbWVudHMgYXMg
ZWxlbWVudCBub2RlcwogICAgICAgIGlmIChub2RlLnRhZ05hbWUgPT0gJyEnIHx8IChub2RlLmZp
cnN0Q2hpbGQgJiYgIW5vZGUuaW5uZXJIVE1MLm1hdGNoKC9eXHMqJC8pKSkgY29udGludWU7CiAg
ICAgICAgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHRzOwog
ICAgfSwKCiAgICAnbm90JzogZnVuY3Rpb24obm9kZXMsIHNlbGVjdG9yLCByb290KSB7CiAgICAg
IHZhciBoID0gU2VsZWN0b3IuaGFuZGxlcnMsIHNlbGVjdG9yVHlwZSwgbTsKICAgICAgdmFyIGV4
Y2x1c2lvbnMgPSBuZXcgU2VsZWN0b3Ioc2VsZWN0b3IpLmZpbmRFbGVtZW50cyhyb290KTsKICAg
ICAgaC5tYXJrKGV4Y2x1c2lvbnMpOwogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtd
LCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBpZiAoIW5vZGUuX2NvdW50ZWRC
eVByb3RvdHlwZSkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICBoLnVubWFyayhleGNsdXNpb25z
KTsKICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAoKICAgICdlbmFibGVkJzogZnVuY3Rpb24o
bm9kZXMsIHZhbHVlLCByb290KSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCByZXN1bHRzID0gW10s
IG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgIGlmICghbm9kZS5kaXNhYmxlZCkg
cmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgJ2Rp
c2FibGVkJzogZnVuY3Rpb24obm9kZXMsIHZhbHVlLCByb290KSB7CiAgICAgIGZvciAodmFyIGkg
PSAwLCByZXN1bHRzID0gW10sIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgIGlm
IChub2RlLmRpc2FibGVkKSByZXN1bHRzLnB1c2gobm9kZSk7CiAgICAgIHJldHVybiByZXN1bHRz
OwogICAgfSwKCiAgICAnY2hlY2tlZCc6IGZ1bmN0aW9uKG5vZGVzLCB2YWx1ZSwgcm9vdCkgewog
ICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07
IGkrKykKICAgICAgICBpZiAobm9kZS5jaGVja2VkKSByZXN1bHRzLnB1c2gobm9kZSk7CiAgICAg
IHJldHVybiByZXN1bHRzOwogICAgfQogIH0sCgogIG9wZXJhdG9yczogewogICAgJz0nOiAgZnVu
Y3Rpb24obnYsIHYpIHsgcmV0dXJuIG52ID09IHY7IH0sCiAgICAnIT0nOiBmdW5jdGlvbihudiwg
dikgeyByZXR1cm4gbnYgIT0gdjsgfSwKICAgICdePSc6IGZ1bmN0aW9uKG52LCB2KSB7IHJldHVy
biBudi5zdGFydHNXaXRoKHYpOyB9LAogICAgJyQ9JzogZnVuY3Rpb24obnYsIHYpIHsgcmV0dXJu
IG52LmVuZHNXaXRoKHYpOyB9LAogICAgJyo9JzogZnVuY3Rpb24obnYsIHYpIHsgcmV0dXJuIG52
LmluY2x1ZGUodik7IH0sCiAgICAnfj0nOiBmdW5jdGlvbihudiwgdikgeyByZXR1cm4gKCcgJyAr
IG52ICsgJyAnKS5pbmNsdWRlKCcgJyArIHYgKyAnICcpOyB9LAogICAgJ3w9JzogZnVuY3Rpb24o
bnYsIHYpIHsgcmV0dXJuICgnLScgKyBudi50b1VwcGVyQ2FzZSgpICsgJy0nKS5pbmNsdWRlKCct
JyArIHYudG9VcHBlckNhc2UoKSArICctJyk7IH0KICB9LAoKICBzcGxpdDogZnVuY3Rpb24oZXhw
cmVzc2lvbikgewogICAgdmFyIGV4cHJlc3Npb25zID0gW107CiAgICBleHByZXNzaW9uLnNjYW4o
LygoW1x3Izoufj4rKClccy1dK3xcKnxcWy4qP1xdKSspXHMqKCx8JCkvLCBmdW5jdGlvbihtKSB7
CiAgICAgIGV4cHJlc3Npb25zLnB1c2gobVsxXS5zdHJpcCgpKTsKICAgIH0pOwogICAgcmV0dXJu
IGV4cHJlc3Npb25zOwogIH0sCgogIG1hdGNoRWxlbWVudHM6IGZ1bmN0aW9uKGVsZW1lbnRzLCBl
eHByZXNzaW9uKSB7CiAgICB2YXIgbWF0Y2hlcyA9ICQkKGV4cHJlc3Npb24pLCBoID0gU2VsZWN0
b3IuaGFuZGxlcnM7CiAgICBoLm1hcmsobWF0Y2hlcyk7CiAgICBmb3IgKHZhciBpID0gMCwgcmVz
dWx0cyA9IFtdLCBlbGVtZW50OyBlbGVtZW50ID0gZWxlbWVudHNbaV07IGkrKykKICAgICAgaWYg
KGVsZW1lbnQuX2NvdW50ZWRCeVByb3RvdHlwZSkgcmVzdWx0cy5wdXNoKGVsZW1lbnQpOwogICAg
aC51bm1hcmsobWF0Y2hlcyk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICBmaW5kRWxlbWVu
dDogZnVuY3Rpb24oZWxlbWVudHMsIGV4cHJlc3Npb24sIGluZGV4KSB7CiAgICBpZiAoT2JqZWN0
LmlzTnVtYmVyKGV4cHJlc3Npb24pKSB7CiAgICAgIGluZGV4ID0gZXhwcmVzc2lvbjsgZXhwcmVz
c2lvbiA9IGZhbHNlOwogICAgfQogICAgcmV0dXJuIFNlbGVjdG9yLm1hdGNoRWxlbWVudHMoZWxl
bWVudHMsIGV4cHJlc3Npb24gfHwgJyonKVtpbmRleCB8fCAwXTsKICB9LAoKICBmaW5kQ2hpbGRF
bGVtZW50czogZnVuY3Rpb24oZWxlbWVudCwgZXhwcmVzc2lvbnMpIHsKICAgIGV4cHJlc3Npb25z
ID0gU2VsZWN0b3Iuc3BsaXQoZXhwcmVzc2lvbnMuam9pbignLCcpKTsKICAgIHZhciByZXN1bHRz
ID0gW10sIGggPSBTZWxlY3Rvci5oYW5kbGVyczsKICAgIGZvciAodmFyIGkgPSAwLCBsID0gZXhw
cmVzc2lvbnMubGVuZ3RoLCBzZWxlY3RvcjsgaSA8IGw7IGkrKykgewogICAgICBzZWxlY3RvciA9
IG5ldyBTZWxlY3RvcihleHByZXNzaW9uc1tpXS5zdHJpcCgpKTsKICAgICAgaC5jb25jYXQocmVz
dWx0cywgc2VsZWN0b3IuZmluZEVsZW1lbnRzKGVsZW1lbnQpKTsKICAgIH0KICAgIHJldHVybiAo
bCA+IDEpID8gaC51bmlxdWUocmVzdWx0cykgOiByZXN1bHRzOwogIH0KfSk7CgppZiAoUHJvdG90
eXBlLkJyb3dzZXIuSUUpIHsKICBPYmplY3QuZXh0ZW5kKFNlbGVjdG9yLmhhbmRsZXJzLCB7CiAg
ICAvLyBJRSByZXR1cm5zIGNvbW1lbnQgbm9kZXMgb24gZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioi
KS4KICAgIC8vIEZpbHRlciB0aGVtIG91dC4KICAgIGNvbmNhdDogZnVuY3Rpb24oYSwgYikgewog
ICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IGJbaV07IGkrKykKICAgICAgICBpZiAo
bm9kZS50YWdOYW1lICE9PSAiISIpIGEucHVzaChub2RlKTsKICAgICAgcmV0dXJuIGE7CiAgICB9
LAoKICAgIC8vIElFIGltcHJvcGVybHkgc2VyaWFsaXplcyBfY291bnRlZEJ5UHJvdG90eXBlIGlu
IChpbm5lcnxvdXRlcilIVE1MLgogICAgdW5tYXJrOiBmdW5jdGlvbihub2RlcykgewogICAgICBm
b3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgbm9kZS5y
ZW1vdmVBdHRyaWJ1dGUoJ19jb3VudGVkQnlQcm90b3R5cGUnKTsKICAgICAgcmV0dXJuIG5vZGVz
OwogICAgfQogIH0pOwp9CgpmdW5jdGlvbiAkJCgpIHsKICByZXR1cm4gU2VsZWN0b3IuZmluZENo
aWxkRWxlbWVudHMoZG9jdW1lbnQsICRBKGFyZ3VtZW50cykpOwp9CnZhciBGb3JtID0gewogIHJl
c2V0OiBmdW5jdGlvbihmb3JtKSB7CiAgICAkKGZvcm0pLnJlc2V0KCk7CiAgICByZXR1cm4gZm9y
bTsKICB9LAoKICBzZXJpYWxpemVFbGVtZW50czogZnVuY3Rpb24oZWxlbWVudHMsIG9wdGlvbnMp
IHsKICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPSAnb2JqZWN0Jykgb3B0aW9ucyA9IHsgaGFzaDog
ISFvcHRpb25zIH07CiAgICBlbHNlIGlmIChPYmplY3QuaXNVbmRlZmluZWQob3B0aW9ucy5oYXNo
KSkgb3B0aW9ucy5oYXNoID0gdHJ1ZTsKICAgIHZhciBrZXksIHZhbHVlLCBzdWJtaXR0ZWQgPSBm
YWxzZSwgc3VibWl0ID0gb3B0aW9ucy5zdWJtaXQ7CgogICAgdmFyIGRhdGEgPSBlbGVtZW50cy5p
bmplY3QoeyB9LCBmdW5jdGlvbihyZXN1bHQsIGVsZW1lbnQpIHsKICAgICAgaWYgKCFlbGVtZW50
LmRpc2FibGVkICYmIGVsZW1lbnQubmFtZSkgewogICAgICAgIGtleSA9IGVsZW1lbnQubmFtZTsg
dmFsdWUgPSAkKGVsZW1lbnQpLmdldFZhbHVlKCk7CiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwg
JiYgKGVsZW1lbnQudHlwZSAhPSAnc3VibWl0JyB8fCAoIXN1Ym1pdHRlZCAmJgogICAgICAgICAg
ICBzdWJtaXQgIT09IGZhbHNlICYmICghc3VibWl0IHx8IGtleSA9PSBzdWJtaXQpICYmIChzdWJt
aXR0ZWQgPSB0cnVlKSkpKSB7CiAgICAgICAgICBpZiAoa2V5IGluIHJlc3VsdCkgewogICAgICAg
ICAgICAvLyBhIGtleSBpcyBhbHJlYWR5IHByZXNlbnQ7IGNvbnN0cnVjdCBhbiBhcnJheSBvZiB2
YWx1ZXMKICAgICAgICAgICAgaWYgKCFPYmplY3QuaXNBcnJheShyZXN1bHRba2V5XSkpIHJlc3Vs
dFtrZXldID0gW3Jlc3VsdFtrZXldXTsKICAgICAgICAgICAgcmVzdWx0W2tleV0ucHVzaCh2YWx1
ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHJlc3VsdFtrZXldID0gdmFsdWU7CiAgICAg
ICAgfQogICAgICB9CiAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9KTsKCiAgICByZXR1cm4gb3B0
aW9ucy5oYXNoID8gZGF0YSA6IE9iamVjdC50b1F1ZXJ5U3RyaW5nKGRhdGEpOwogIH0KfTsKCkZv
cm0uTWV0aG9kcyA9IHsKICBzZXJpYWxpemU6IGZ1bmN0aW9uKGZvcm0sIG9wdGlvbnMpIHsKICAg
IHJldHVybiBGb3JtLnNlcmlhbGl6ZUVsZW1lbnRzKEZvcm0uZ2V0RWxlbWVudHMoZm9ybSksIG9w
dGlvbnMpOwogIH0sCgogIGdldEVsZW1lbnRzOiBmdW5jdGlvbihmb3JtKSB7CiAgICByZXR1cm4g
JEEoJChmb3JtKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpKS5pbmplY3QoW10sCiAgICAgIGZ1
bmN0aW9uKGVsZW1lbnRzLCBjaGlsZCkgewogICAgICAgIGlmIChGb3JtLkVsZW1lbnQuU2VyaWFs
aXplcnNbY2hpbGQudGFnTmFtZS50b0xvd2VyQ2FzZSgpXSkKICAgICAgICAgIGVsZW1lbnRzLnB1
c2goRWxlbWVudC5leHRlbmQoY2hpbGQpKTsKICAgICAgICByZXR1cm4gZWxlbWVudHM7CiAgICAg
IH0KICAgICk7CiAgfSwKCiAgZ2V0SW5wdXRzOiBmdW5jdGlvbihmb3JtLCB0eXBlTmFtZSwgbmFt
ZSkgewogICAgZm9ybSA9ICQoZm9ybSk7CiAgICB2YXIgaW5wdXRzID0gZm9ybS5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnaW5wdXQnKTsKCiAgICBpZiAoIXR5cGVOYW1lICYmICFuYW1lKSByZXR1cm4g
JEEoaW5wdXRzKS5tYXAoRWxlbWVudC5leHRlbmQpOwoKICAgIGZvciAodmFyIGkgPSAwLCBtYXRj
aGluZ0lucHV0cyA9IFtdLCBsZW5ndGggPSBpbnB1dHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysp
IHsKICAgICAgdmFyIGlucHV0ID0gaW5wdXRzW2ldOwogICAgICBpZiAoKHR5cGVOYW1lICYmIGlu
cHV0LnR5cGUgIT0gdHlwZU5hbWUpIHx8IChuYW1lICYmIGlucHV0Lm5hbWUgIT0gbmFtZSkpCiAg
ICAgICAgY29udGludWU7CiAgICAgIG1hdGNoaW5nSW5wdXRzLnB1c2goRWxlbWVudC5leHRlbmQo
aW5wdXQpKTsKICAgIH0KCiAgICByZXR1cm4gbWF0Y2hpbmdJbnB1dHM7CiAgfSwKCiAgZGlzYWJs
ZTogZnVuY3Rpb24oZm9ybSkgewogICAgZm9ybSA9ICQoZm9ybSk7CiAgICBGb3JtLmdldEVsZW1l
bnRzKGZvcm0pLmludm9rZSgnZGlzYWJsZScpOwogICAgcmV0dXJuIGZvcm07CiAgfSwKCiAgZW5h
YmxlOiBmdW5jdGlvbihmb3JtKSB7CiAgICBmb3JtID0gJChmb3JtKTsKICAgIEZvcm0uZ2V0RWxl
bWVudHMoZm9ybSkuaW52b2tlKCdlbmFibGUnKTsKICAgIHJldHVybiBmb3JtOwogIH0sCgogIGZp
bmRGaXJzdEVsZW1lbnQ6IGZ1bmN0aW9uKGZvcm0pIHsKICAgIHZhciBlbGVtZW50cyA9ICQoZm9y
bSkuZ2V0RWxlbWVudHMoKS5maW5kQWxsKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgcmV0dXJu
ICdoaWRkZW4nICE9IGVsZW1lbnQudHlwZSAmJiAhZWxlbWVudC5kaXNhYmxlZDsKICAgIH0pOwog
ICAgdmFyIGZpcnN0QnlJbmRleCA9IGVsZW1lbnRzLmZpbmRBbGwoZnVuY3Rpb24oZWxlbWVudCkg
ewogICAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYkluZGV4JykgJiYgZWxlbWVu
dC50YWJJbmRleCA+PSAwOwogICAgfSkuc29ydEJ5KGZ1bmN0aW9uKGVsZW1lbnQpIHsgcmV0dXJu
IGVsZW1lbnQudGFiSW5kZXggfSkuZmlyc3QoKTsKCiAgICByZXR1cm4gZmlyc3RCeUluZGV4ID8g
Zmlyc3RCeUluZGV4IDogZWxlbWVudHMuZmluZChmdW5jdGlvbihlbGVtZW50KSB7CiAgICAgIHJl
dHVybiBbJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddLmluY2x1ZGUoZWxlbWVudC50YWdO
YW1lLnRvTG93ZXJDYXNlKCkpOwogICAgfSk7CiAgfSwKCiAgZm9jdXNGaXJzdEVsZW1lbnQ6IGZ1
bmN0aW9uKGZvcm0pIHsKICAgIGZvcm0gPSAkKGZvcm0pOwogICAgZm9ybS5maW5kRmlyc3RFbGVt
ZW50KCkuYWN0aXZhdGUoKTsKICAgIHJldHVybiBmb3JtOwogIH0sCgogIHJlcXVlc3Q6IGZ1bmN0
aW9uKGZvcm0sIG9wdGlvbnMpIHsKICAgIGZvcm0gPSAkKGZvcm0pLCBvcHRpb25zID0gT2JqZWN0
LmNsb25lKG9wdGlvbnMgfHwgeyB9KTsKCiAgICB2YXIgcGFyYW1zID0gb3B0aW9ucy5wYXJhbWV0
ZXJzLCBhY3Rpb24gPSBmb3JtLnJlYWRBdHRyaWJ1dGUoJ2FjdGlvbicpIHx8ICcnOwogICAgaWYg
KGFjdGlvbi5ibGFuaygpKSBhY3Rpb24gPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKICAgIG9wdGlv
bnMucGFyYW1ldGVycyA9IGZvcm0uc2VyaWFsaXplKHRydWUpOwoKICAgIGlmIChwYXJhbXMpIHsK
ICAgICAgaWYgKE9iamVjdC5pc1N0cmluZyhwYXJhbXMpKSBwYXJhbXMgPSBwYXJhbXMudG9RdWVy
eVBhcmFtcygpOwogICAgICBPYmplY3QuZXh0ZW5kKG9wdGlvbnMucGFyYW1ldGVycywgcGFyYW1z
KTsKICAgIH0KCiAgICBpZiAoZm9ybS5oYXNBdHRyaWJ1dGUoJ21ldGhvZCcpICYmICFvcHRpb25z
Lm1ldGhvZCkKICAgICAgb3B0aW9ucy5tZXRob2QgPSBmb3JtLm1ldGhvZDsKCiAgICByZXR1cm4g
bmV3IEFqYXguUmVxdWVzdChhY3Rpb24sIG9wdGlvbnMpOwogIH0KfTsKCi8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwoKRm9ybS5FbGVtZW50ID0gewogIGZvY3VzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAg
ICAkKGVsZW1lbnQpLmZvY3VzKCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBzZWxlY3Q6
IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICQoZWxlbWVudCkuc2VsZWN0KCk7CiAgICByZXR1cm4g
ZWxlbWVudDsKICB9Cn07CgpGb3JtLkVsZW1lbnQuTWV0aG9kcyA9IHsKICBzZXJpYWxpemU6IGZ1
bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKCFlbGVt
ZW50LmRpc2FibGVkICYmIGVsZW1lbnQubmFtZSkgewogICAgICB2YXIgdmFsdWUgPSBlbGVtZW50
LmdldFZhbHVlKCk7CiAgICAgIGlmICh2YWx1ZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICB2YXIg
cGFpciA9IHsgfTsKICAgICAgICBwYWlyW2VsZW1lbnQubmFtZV0gPSB2YWx1ZTsKICAgICAgICBy
ZXR1cm4gT2JqZWN0LnRvUXVlcnlTdHJpbmcocGFpcik7CiAgICAgIH0KICAgIH0KICAgIHJldHVy
biAnJzsKICB9LAoKICBnZXRWYWx1ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9
ICQoZWxlbWVudCk7CiAgICB2YXIgbWV0aG9kID0gZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNl
KCk7CiAgICByZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzW21ldGhvZF0oZWxlbWVudCk7
CiAgfSwKCiAgc2V0VmFsdWU6IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVlKSB7CiAgICBlbGVtZW50
ID0gJChlbGVtZW50KTsKICAgIHZhciBtZXRob2QgPSBlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNh
c2UoKTsKICAgIEZvcm0uRWxlbWVudC5TZXJpYWxpemVyc1ttZXRob2RdKGVsZW1lbnQsIHZhbHVl
KTsKICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIGNsZWFyOiBmdW5jdGlvbihlbGVtZW50KSB7
CiAgICAkKGVsZW1lbnQpLnZhbHVlID0gJyc7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBw
cmVzZW50OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS52YWx1ZSAh
PSAnJzsKICB9LAoKICBhY3RpdmF0ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9
ICQoZWxlbWVudCk7CiAgICB0cnkgewogICAgICBlbGVtZW50LmZvY3VzKCk7CiAgICAgIGlmIChl
bGVtZW50LnNlbGVjdCAmJiAoZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT0gJ2lucHV0
JyB8fAogICAgICAgICAgIVsnYnV0dG9uJywgJ3Jlc2V0JywgJ3N1Ym1pdCddLmluY2x1ZGUoZWxl
bWVudC50eXBlKSkpCiAgICAgICAgZWxlbWVudC5zZWxlY3QoKTsKICAgIH0gY2F0Y2ggKGUpIHsg
fQogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgZGlzYWJsZTogZnVuY3Rpb24oZWxlbWVudCkg
ewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBlbGVtZW50LmJsdXIoKTsKICAgIGVsZW1l
bnQuZGlzYWJsZWQgPSB0cnVlOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgZW5hYmxlOiBm
dW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGVsZW1lbnQu
ZGlzYWJsZWQgPSBmYWxzZTsKICAgIHJldHVybiBlbGVtZW50OwogIH0KfTsKCi8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLwoKdmFyIEZpZWxkID0gRm9ybS5FbGVtZW50Owp2YXIgJEYgPSBGb3JtLkVsZW1l
bnQuTWV0aG9kcy5nZXRWYWx1ZTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKRm9ybS5FbGVtZW50
LlNlcmlhbGl6ZXJzID0gewogIGlucHV0OiBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAg
c3dpdGNoIChlbGVtZW50LnR5cGUudG9Mb3dlckNhc2UoKSkgewogICAgICBjYXNlICdjaGVja2Jv
eCc6CiAgICAgIGNhc2UgJ3JhZGlvJzoKICAgICAgICByZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlh
bGl6ZXJzLmlucHV0U2VsZWN0b3IoZWxlbWVudCwgdmFsdWUpOwogICAgICBkZWZhdWx0OgogICAg
ICAgIHJldHVybiBGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnMudGV4dGFyZWEoZWxlbWVudCwgdmFs
dWUpOwogICAgfQogIH0sCgogIGlucHV0U2VsZWN0b3I6IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVl
KSB7CiAgICBpZiAoT2JqZWN0LmlzVW5kZWZpbmVkKHZhbHVlKSkgcmV0dXJuIGVsZW1lbnQuY2hl
Y2tlZCA/IGVsZW1lbnQudmFsdWUgOiBudWxsOwogICAgZWxzZSBlbGVtZW50LmNoZWNrZWQgPSAh
IXZhbHVlOwogIH0sCgogIHRleHRhcmVhOiBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAg
aWYgKE9iamVjdC5pc1VuZGVmaW5lZCh2YWx1ZSkpIHJldHVybiBlbGVtZW50LnZhbHVlOwogICAg
ZWxzZSBlbGVtZW50LnZhbHVlID0gdmFsdWU7CiAgfSwKCiAgc2VsZWN0OiBmdW5jdGlvbihlbGVt
ZW50LCBpbmRleCkgewogICAgaWYgKE9iamVjdC5pc1VuZGVmaW5lZChpbmRleCkpCiAgICAgIHJl
dHVybiB0aGlzW2VsZW1lbnQudHlwZSA9PSAnc2VsZWN0LW9uZScgPwogICAgICAgICdzZWxlY3RP
bmUnIDogJ3NlbGVjdE1hbnknXShlbGVtZW50KTsKICAgIGVsc2UgewogICAgICB2YXIgb3B0LCB2
YWx1ZSwgc2luZ2xlID0gIU9iamVjdC5pc0FycmF5KGluZGV4KTsKICAgICAgZm9yICh2YXIgaSA9
IDAsIGxlbmd0aCA9IGVsZW1lbnQubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICBv
cHQgPSBlbGVtZW50Lm9wdGlvbnNbaV07CiAgICAgICAgdmFsdWUgPSB0aGlzLm9wdGlvblZhbHVl
KG9wdCk7CiAgICAgICAgaWYgKHNpbmdsZSkgewogICAgICAgICAgaWYgKHZhbHVlID09IGluZGV4
KSB7CiAgICAgICAgICAgIG9wdC5zZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSBvcHQuc2VsZWN0ZWQgPSBpbmRleC5p
bmNsdWRlKHZhbHVlKTsKICAgICAgfQogICAgfQogIH0sCgogIHNlbGVjdE9uZTogZnVuY3Rpb24o
ZWxlbWVudCkgewogICAgdmFyIGluZGV4ID0gZWxlbWVudC5zZWxlY3RlZEluZGV4OwogICAgcmV0
dXJuIGluZGV4ID49IDAgPyB0aGlzLm9wdGlvblZhbHVlKGVsZW1lbnQub3B0aW9uc1tpbmRleF0p
IDogbnVsbDsKICB9LAoKICBzZWxlY3RNYW55OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIg
dmFsdWVzLCBsZW5ndGggPSBlbGVtZW50Lmxlbmd0aDsKICAgIGlmICghbGVuZ3RoKSByZXR1cm4g
bnVsbDsKCiAgICBmb3IgKHZhciBpID0gMCwgdmFsdWVzID0gW107IGkgPCBsZW5ndGg7IGkrKykg
ewogICAgICB2YXIgb3B0ID0gZWxlbWVudC5vcHRpb25zW2ldOwogICAgICBpZiAob3B0LnNlbGVj
dGVkKSB2YWx1ZXMucHVzaCh0aGlzLm9wdGlvblZhbHVlKG9wdCkpOwogICAgfQogICAgcmV0dXJu
IHZhbHVlczsKICB9LAoKICBvcHRpb25WYWx1ZTogZnVuY3Rpb24ob3B0KSB7CiAgICAvLyBleHRl
bmQgZWxlbWVudCBiZWNhdXNlIGhhc0F0dHJpYnV0ZSBtYXkgbm90IGJlIG5hdGl2ZQogICAgcmV0
dXJuIEVsZW1lbnQuZXh0ZW5kKG9wdCkuaGFzQXR0cmlidXRlKCd2YWx1ZScpID8gb3B0LnZhbHVl
IDogb3B0LnRleHQ7CiAgfQp9OwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpBYnN0cmFjdC5UaW1l
ZE9ic2VydmVyID0gQ2xhc3MuY3JlYXRlKFBlcmlvZGljYWxFeGVjdXRlciwgewogIGluaXRpYWxp
emU6IGZ1bmN0aW9uKCRzdXBlciwgZWxlbWVudCwgZnJlcXVlbmN5LCBjYWxsYmFjaykgewogICAg
JHN1cGVyKGNhbGxiYWNrLCBmcmVxdWVuY3kpOwogICAgdGhpcy5lbGVtZW50ICAgPSAkKGVsZW1l
bnQpOwogICAgdGhpcy5sYXN0VmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7CiAgfSwKCiAgZXhlY3V0
ZTogZnVuY3Rpb24oKSB7CiAgICB2YXIgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7CiAgICBpZiAo
T2JqZWN0LmlzU3RyaW5nKHRoaXMubGFzdFZhbHVlKSAmJiBPYmplY3QuaXNTdHJpbmcodmFsdWUp
ID8KICAgICAgICB0aGlzLmxhc3RWYWx1ZSAhPSB2YWx1ZSA6IFN0cmluZyh0aGlzLmxhc3RWYWx1
ZSkgIT0gU3RyaW5nKHZhbHVlKSkgewogICAgICB0aGlzLmNhbGxiYWNrKHRoaXMuZWxlbWVudCwg
dmFsdWUpOwogICAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlOwogICAgfQogIH0KfSk7CgpGb3Jt
LkVsZW1lbnQuT2JzZXJ2ZXIgPSBDbGFzcy5jcmVhdGUoQWJzdHJhY3QuVGltZWRPYnNlcnZlciwg
ewogIGdldFZhbHVlOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBGb3JtLkVsZW1lbnQuZ2V0VmFs
dWUodGhpcy5lbGVtZW50KTsKICB9Cn0pOwoKRm9ybS5PYnNlcnZlciA9IENsYXNzLmNyZWF0ZShB
YnN0cmFjdC5UaW1lZE9ic2VydmVyLCB7CiAgZ2V0VmFsdWU6IGZ1bmN0aW9uKCkgewogICAgcmV0
dXJuIEZvcm0uc2VyaWFsaXplKHRoaXMuZWxlbWVudCk7CiAgfQp9KTsKCi8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwoKQWJzdHJhY3QuRXZlbnRPYnNlcnZlciA9IENsYXNzLmNyZWF0ZSh7CiAgaW5pdGlh
bGl6ZTogZnVuY3Rpb24oZWxlbWVudCwgY2FsbGJhY2spIHsKICAgIHRoaXMuZWxlbWVudCAgPSAk
KGVsZW1lbnQpOwogICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrOwoKICAgIHRoaXMubGFzdFZh
bHVlID0gdGhpcy5nZXRWYWx1ZSgpOwogICAgaWYgKHRoaXMuZWxlbWVudC50YWdOYW1lLnRvTG93
ZXJDYXNlKCkgPT0gJ2Zvcm0nKQogICAgICB0aGlzLnJlZ2lzdGVyRm9ybUNhbGxiYWNrcygpOwog
ICAgZWxzZQogICAgICB0aGlzLnJlZ2lzdGVyQ2FsbGJhY2sodGhpcy5lbGVtZW50KTsKICB9LAoK
ICBvbkVsZW1lbnRFdmVudDogZnVuY3Rpb24oKSB7CiAgICB2YXIgdmFsdWUgPSB0aGlzLmdldFZh
bHVlKCk7CiAgICBpZiAodGhpcy5sYXN0VmFsdWUgIT0gdmFsdWUpIHsKICAgICAgdGhpcy5jYWxs
YmFjayh0aGlzLmVsZW1lbnQsIHZhbHVlKTsKICAgICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTsK
ICAgIH0KICB9LAoKICByZWdpc3RlckZvcm1DYWxsYmFja3M6IGZ1bmN0aW9uKCkgewogICAgRm9y
bS5nZXRFbGVtZW50cyh0aGlzLmVsZW1lbnQpLmVhY2godGhpcy5yZWdpc3RlckNhbGxiYWNrLCB0
aGlzKTsKICB9LAoKICByZWdpc3RlckNhbGxiYWNrOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBp
ZiAoZWxlbWVudC50eXBlKSB7CiAgICAgIHN3aXRjaCAoZWxlbWVudC50eXBlLnRvTG93ZXJDYXNl
KCkpIHsKICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgY2FzZSAncmFkaW8nOgogICAg
ICAgICAgRXZlbnQub2JzZXJ2ZShlbGVtZW50LCAnY2xpY2snLCB0aGlzLm9uRWxlbWVudEV2ZW50
LmJpbmQodGhpcykpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
IEV2ZW50Lm9ic2VydmUoZWxlbWVudCwgJ2NoYW5nZScsIHRoaXMub25FbGVtZW50RXZlbnQuYmlu
ZCh0aGlzKSk7CiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgfQogIH0KfSk7CgpGb3JtLkVs
ZW1lbnQuRXZlbnRPYnNlcnZlciA9IENsYXNzLmNyZWF0ZShBYnN0cmFjdC5FdmVudE9ic2VydmVy
LCB7CiAgZ2V0VmFsdWU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIEZvcm0uRWxlbWVudC5nZXRW
YWx1ZSh0aGlzLmVsZW1lbnQpOwogIH0KfSk7CgpGb3JtLkV2ZW50T2JzZXJ2ZXIgPSBDbGFzcy5j
cmVhdGUoQWJzdHJhY3QuRXZlbnRPYnNlcnZlciwgewogIGdldFZhbHVlOiBmdW5jdGlvbigpIHsK
ICAgIHJldHVybiBGb3JtLnNlcmlhbGl6ZSh0aGlzLmVsZW1lbnQpOwogIH0KfSk7CmlmICghd2lu
ZG93LkV2ZW50KSB2YXIgRXZlbnQgPSB7IH07CgpPYmplY3QuZXh0ZW5kKEV2ZW50LCB7CiAgS0VZ
X0JBQ0tTUEFDRTogOCwKICBLRVlfVEFCOiAgICAgICA5LAogIEtFWV9SRVRVUk46ICAgMTMsCiAg
S0VZX0VTQzogICAgICAyNywKICBLRVlfTEVGVDogICAgIDM3LAogIEtFWV9VUDogICAgICAgMzgs
CiAgS0VZX1JJR0hUOiAgICAzOSwKICBLRVlfRE9XTjogICAgIDQwLAogIEtFWV9ERUxFVEU6ICAg
NDYsCiAgS0VZX0hPTUU6ICAgICAzNiwKICBLRVlfRU5EOiAgICAgIDM1LAogIEtFWV9QQUdFVVA6
ICAgMzMsCiAgS0VZX1BBR0VET1dOOiAzNCwKICBLRVlfSU5TRVJUOiAgIDQ1LAoKICBjYWNoZTog
eyB9LAoKICByZWxhdGVkVGFyZ2V0OiBmdW5jdGlvbihldmVudCkgewogICAgdmFyIGVsZW1lbnQ7
CiAgICBzd2l0Y2goZXZlbnQudHlwZSkgewogICAgICBjYXNlICdtb3VzZW92ZXInOiBlbGVtZW50
ID0gZXZlbnQuZnJvbUVsZW1lbnQ7IGJyZWFrOwogICAgICBjYXNlICdtb3VzZW91dCc6ICBlbGVt
ZW50ID0gZXZlbnQudG9FbGVtZW50OyAgIGJyZWFrOwogICAgICBkZWZhdWx0OiByZXR1cm4gbnVs
bDsKICAgIH0KICAgIHJldHVybiBFbGVtZW50LmV4dGVuZChlbGVtZW50KTsKICB9Cn0pOwoKRXZl
bnQuTWV0aG9kcyA9IChmdW5jdGlvbigpIHsKICB2YXIgaXNCdXR0b247CgogIGlmIChQcm90b3R5
cGUuQnJvd3Nlci5JRSkgewogICAgdmFyIGJ1dHRvbk1hcCA9IHsgMDogMSwgMTogNCwgMjogMiB9
OwogICAgaXNCdXR0b24gPSBmdW5jdGlvbihldmVudCwgY29kZSkgewogICAgICByZXR1cm4gZXZl
bnQuYnV0dG9uID09IGJ1dHRvbk1hcFtjb2RlXTsKICAgIH07CgogIH0gZWxzZSBpZiAoUHJvdG90
eXBlLkJyb3dzZXIuV2ViS2l0KSB7CiAgICBpc0J1dHRvbiA9IGZ1bmN0aW9uKGV2ZW50LCBjb2Rl
KSB7CiAgICAgIHN3aXRjaCAoY29kZSkgewogICAgICAgIGNhc2UgMDogcmV0dXJuIGV2ZW50Lndo
aWNoID09IDEgJiYgIWV2ZW50Lm1ldGFLZXk7CiAgICAgICAgY2FzZSAxOiByZXR1cm4gZXZlbnQu
d2hpY2ggPT0gMSAmJiBldmVudC5tZXRhS2V5OwogICAgICAgIGRlZmF1bHQ6IHJldHVybiBmYWxz
ZTsKICAgICAgfQogICAgfTsKCiAgfSBlbHNlIHsKICAgIGlzQnV0dG9uID0gZnVuY3Rpb24oZXZl
bnQsIGNvZGUpIHsKICAgICAgcmV0dXJuIGV2ZW50LndoaWNoID8gKGV2ZW50LndoaWNoID09PSBj
b2RlICsgMSkgOiAoZXZlbnQuYnV0dG9uID09PSBjb2RlKTsKICAgIH07CiAgfQoKICByZXR1cm4g
ewogICAgaXNMZWZ0Q2xpY2s6ICAgZnVuY3Rpb24oZXZlbnQpIHsgcmV0dXJuIGlzQnV0dG9uKGV2
ZW50LCAwKSB9LAogICAgaXNNaWRkbGVDbGljazogZnVuY3Rpb24oZXZlbnQpIHsgcmV0dXJuIGlz
QnV0dG9uKGV2ZW50LCAxKSB9LAogICAgaXNSaWdodENsaWNrOiAgZnVuY3Rpb24oZXZlbnQpIHsg
cmV0dXJuIGlzQnV0dG9uKGV2ZW50LCAyKSB9LAoKICAgIGVsZW1lbnQ6IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgIHZhciBub2RlID0gRXZlbnQuZXh0ZW5kKGV2ZW50KS50YXJnZXQ7CiAgICAgIHJl
dHVybiBFbGVtZW50LmV4dGVuZChub2RlLm5vZGVUeXBlID09IE5vZGUuVEVYVF9OT0RFID8gbm9k
ZS5wYXJlbnROb2RlIDogbm9kZSk7CiAgICB9LAoKICAgIGZpbmRFbGVtZW50OiBmdW5jdGlvbihl
dmVudCwgZXhwcmVzc2lvbikgewogICAgICB2YXIgZWxlbWVudCA9IEV2ZW50LmVsZW1lbnQoZXZl
bnQpOwogICAgICBpZiAoIWV4cHJlc3Npb24pIHJldHVybiBlbGVtZW50OwogICAgICB2YXIgZWxl
bWVudHMgPSBbZWxlbWVudF0uY29uY2F0KGVsZW1lbnQuYW5jZXN0b3JzKCkpOwogICAgICByZXR1
cm4gU2VsZWN0b3IuZmluZEVsZW1lbnQoZWxlbWVudHMsIGV4cHJlc3Npb24sIDApOwogICAgfSwK
CiAgICBwb2ludGVyOiBmdW5jdGlvbihldmVudCkgewogICAgICByZXR1cm4gewogICAgICAgIHg6
IGV2ZW50LnBhZ2VYIHx8IChldmVudC5jbGllbnRYICsKICAgICAgICAgIChkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQpKSwKICAg
ICAgICB5OiBldmVudC5wYWdlWSB8fCAoZXZlbnQuY2xpZW50WSArCiAgICAgICAgICAoZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCkp
CiAgICAgIH07CiAgICB9LAoKICAgIHBvaW50ZXJYOiBmdW5jdGlvbihldmVudCkgeyByZXR1cm4g
RXZlbnQucG9pbnRlcihldmVudCkueCB9LAogICAgcG9pbnRlclk6IGZ1bmN0aW9uKGV2ZW50KSB7
IHJldHVybiBFdmVudC5wb2ludGVyKGV2ZW50KS55IH0sCgogICAgc3RvcDogZnVuY3Rpb24oZXZl
bnQpIHsKICAgICAgRXZlbnQuZXh0ZW5kKGV2ZW50KTsKICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGV2ZW50LnN0b3BwZWQg
PSB0cnVlOwogICAgfQogIH07Cn0pKCk7CgpFdmVudC5leHRlbmQgPSAoZnVuY3Rpb24oKSB7CiAg
dmFyIG1ldGhvZHMgPSBPYmplY3Qua2V5cyhFdmVudC5NZXRob2RzKS5pbmplY3QoeyB9LCBmdW5j
dGlvbihtLCBuYW1lKSB7CiAgICBtW25hbWVdID0gRXZlbnQuTWV0aG9kc1tuYW1lXS5tZXRob2Rp
emUoKTsKICAgIHJldHVybiBtOwogIH0pOwoKICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUpIHsK
ICAgIE9iamVjdC5leHRlbmQobWV0aG9kcywgewogICAgICBzdG9wUHJvcGFnYXRpb246IGZ1bmN0
aW9uKCkgeyB0aGlzLmNhbmNlbEJ1YmJsZSA9IHRydWUgfSwKICAgICAgcHJldmVudERlZmF1bHQ6
ICBmdW5jdGlvbigpIHsgdGhpcy5yZXR1cm5WYWx1ZSA9IGZhbHNlIH0sCiAgICAgIGluc3BlY3Q6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gIltvYmplY3QgRXZlbnRdIiB9CiAgICB9KTsKCiAgICByZXR1
cm4gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgaWYgKCFldmVudCkgcmV0dXJuIGZhbHNlOwogICAg
ICBpZiAoZXZlbnQuX2V4dGVuZGVkQnlQcm90b3R5cGUpIHJldHVybiBldmVudDsKCiAgICAgIGV2
ZW50Ll9leHRlbmRlZEJ5UHJvdG90eXBlID0gUHJvdG90eXBlLmVtcHR5RnVuY3Rpb247CiAgICAg
IHZhciBwb2ludGVyID0gRXZlbnQucG9pbnRlcihldmVudCk7CiAgICAgIE9iamVjdC5leHRlbmQo
ZXZlbnQsIHsKICAgICAgICB0YXJnZXQ6IGV2ZW50LnNyY0VsZW1lbnQsCiAgICAgICAgcmVsYXRl
ZFRhcmdldDogRXZlbnQucmVsYXRlZFRhcmdldChldmVudCksCiAgICAgICAgcGFnZVg6ICBwb2lu
dGVyLngsCiAgICAgICAgcGFnZVk6ICBwb2ludGVyLnkKICAgICAgfSk7CiAgICAgIHJldHVybiBP
YmplY3QuZXh0ZW5kKGV2ZW50LCBtZXRob2RzKTsKICAgIH07CgogIH0gZWxzZSB7CiAgICBFdmVu
dC5wcm90b3R5cGUgPSBFdmVudC5wcm90b3R5cGUgfHwgZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhU
TUxFdmVudHMiKS5fX3Byb3RvX187CiAgICBPYmplY3QuZXh0ZW5kKEV2ZW50LnByb3RvdHlwZSwg
bWV0aG9kcyk7CiAgICByZXR1cm4gUHJvdG90eXBlLks7CiAgfQp9KSgpOwoKT2JqZWN0LmV4dGVu
ZChFdmVudCwgKGZ1bmN0aW9uKCkgewogIHZhciBjYWNoZSA9IEV2ZW50LmNhY2hlOwoKICBmdW5j
dGlvbiBnZXRFdmVudElEKGVsZW1lbnQpIHsKICAgIGlmIChlbGVtZW50Ll9wcm90b3R5cGVFdmVu
dElEKSByZXR1cm4gZWxlbWVudC5fcHJvdG90eXBlRXZlbnRJRFswXTsKICAgIGFyZ3VtZW50cy5j
YWxsZWUuaWQgPSBhcmd1bWVudHMuY2FsbGVlLmlkIHx8IDE7CiAgICByZXR1cm4gZWxlbWVudC5f
cHJvdG90eXBlRXZlbnRJRCA9IFsrK2FyZ3VtZW50cy5jYWxsZWUuaWRdOwogIH0KCiAgZnVuY3Rp
b24gZ2V0RE9NRXZlbnROYW1lKGV2ZW50TmFtZSkgewogICAgaWYgKGV2ZW50TmFtZSAmJiBldmVu
dE5hbWUuaW5jbHVkZSgnOicpKSByZXR1cm4gImRhdGFhdmFpbGFibGUiOwogICAgcmV0dXJuIGV2
ZW50TmFtZTsKICB9CgogIGZ1bmN0aW9uIGdldENhY2hlRm9ySUQoaWQpIHsKICAgIHJldHVybiBj
YWNoZVtpZF0gPSBjYWNoZVtpZF0gfHwgeyB9OwogIH0KCiAgZnVuY3Rpb24gZ2V0V3JhcHBlcnNG
b3JFdmVudE5hbWUoaWQsIGV2ZW50TmFtZSkgewogICAgdmFyIGMgPSBnZXRDYWNoZUZvcklEKGlk
KTsKICAgIHJldHVybiBjW2V2ZW50TmFtZV0gPSBjW2V2ZW50TmFtZV0gfHwgW107CiAgfQoKICBm
dW5jdGlvbiBjcmVhdGVXcmFwcGVyKGVsZW1lbnQsIGV2ZW50TmFtZSwgaGFuZGxlcikgewogICAg
dmFyIGlkID0gZ2V0RXZlbnRJRChlbGVtZW50KTsKICAgIHZhciBjID0gZ2V0V3JhcHBlcnNGb3JF
dmVudE5hbWUoaWQsIGV2ZW50TmFtZSk7CiAgICBpZiAoYy5wbHVjaygiaGFuZGxlciIpLmluY2x1
ZGUoaGFuZGxlcikpIHJldHVybiBmYWxzZTsKCiAgICB2YXIgd3JhcHBlciA9IGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgIGlmICghRXZlbnQgfHwgIUV2ZW50LmV4dGVuZCB8fAogICAgICAgIChldmVu
dC5ldmVudE5hbWUgJiYgZXZlbnQuZXZlbnROYW1lICE9IGV2ZW50TmFtZSkpCiAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CgogICAgICBFdmVudC5leHRlbmQoZXZlbnQpOwogICAgICBoYW5kbGVyLmNh
bGwoZWxlbWVudCwgZXZlbnQpOwogICAgfTsKCiAgICB3cmFwcGVyLmhhbmRsZXIgPSBoYW5kbGVy
OwogICAgYy5wdXNoKHdyYXBwZXIpOwogICAgcmV0dXJuIHdyYXBwZXI7CiAgfQoKICBmdW5jdGlv
biBmaW5kV3JhcHBlcihpZCwgZXZlbnROYW1lLCBoYW5kbGVyKSB7CiAgICB2YXIgYyA9IGdldFdy
YXBwZXJzRm9yRXZlbnROYW1lKGlkLCBldmVudE5hbWUpOwogICAgcmV0dXJuIGMuZmluZChmdW5j
dGlvbih3cmFwcGVyKSB7IHJldHVybiB3cmFwcGVyLmhhbmRsZXIgPT0gaGFuZGxlciB9KTsKICB9
CgogIGZ1bmN0aW9uIGRlc3Ryb3lXcmFwcGVyKGlkLCBldmVudE5hbWUsIGhhbmRsZXIpIHsKICAg
IHZhciBjID0gZ2V0Q2FjaGVGb3JJRChpZCk7CiAgICBpZiAoIWNbZXZlbnROYW1lXSkgcmV0dXJu
IGZhbHNlOwogICAgY1tldmVudE5hbWVdID0gY1tldmVudE5hbWVdLndpdGhvdXQoZmluZFdyYXBw
ZXIoaWQsIGV2ZW50TmFtZSwgaGFuZGxlcikpOwogIH0KCiAgZnVuY3Rpb24gZGVzdHJveUNhY2hl
KCkgewogICAgZm9yICh2YXIgaWQgaW4gY2FjaGUpCiAgICAgIGZvciAodmFyIGV2ZW50TmFtZSBp
biBjYWNoZVtpZF0pCiAgICAgICAgY2FjaGVbaWRdW2V2ZW50TmFtZV0gPSBudWxsOwogIH0KCiAg
aWYgKHdpbmRvdy5hdHRhY2hFdmVudCkgewogICAgd2luZG93LmF0dGFjaEV2ZW50KCJvbnVubG9h
ZCIsIGRlc3Ryb3lDYWNoZSk7CiAgfQoKICByZXR1cm4gewogICAgb2JzZXJ2ZTogZnVuY3Rpb24o
ZWxlbWVudCwgZXZlbnROYW1lLCBoYW5kbGVyKSB7CiAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQp
OwogICAgICB2YXIgbmFtZSA9IGdldERPTUV2ZW50TmFtZShldmVudE5hbWUpOwoKICAgICAgdmFy
IHdyYXBwZXIgPSBjcmVhdGVXcmFwcGVyKGVsZW1lbnQsIGV2ZW50TmFtZSwgaGFuZGxlcik7CiAg
ICAgIGlmICghd3JhcHBlcikgcmV0dXJuIGVsZW1lbnQ7CgogICAgICBpZiAoZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKSB7CiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIHdy
YXBwZXIsIGZhbHNlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBlbGVtZW50LmF0dGFjaEV2ZW50
KCJvbiIgKyBuYW1lLCB3cmFwcGVyKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAg
ICB9LAoKICAgIHN0b3BPYnNlcnZpbmc6IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50TmFtZSwgaGFu
ZGxlcikgewogICAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgICAgdmFyIGlkID0gZ2V0RXZl
bnRJRChlbGVtZW50KSwgbmFtZSA9IGdldERPTUV2ZW50TmFtZShldmVudE5hbWUpOwoKICAgICAg
aWYgKCFoYW5kbGVyICYmIGV2ZW50TmFtZSkgewogICAgICAgIGdldFdyYXBwZXJzRm9yRXZlbnRO
YW1lKGlkLCBldmVudE5hbWUpLmVhY2goZnVuY3Rpb24od3JhcHBlcikgewogICAgICAgICAgZWxl
bWVudC5zdG9wT2JzZXJ2aW5nKGV2ZW50TmFtZSwgd3JhcHBlci5oYW5kbGVyKTsKICAgICAgICB9
KTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKCiAgICAgIH0gZWxzZSBpZiAoIWV2ZW50TmFtZSkg
ewogICAgICAgIE9iamVjdC5rZXlzKGdldENhY2hlRm9ySUQoaWQpKS5lYWNoKGZ1bmN0aW9uKGV2
ZW50TmFtZSkgewogICAgICAgICAgZWxlbWVudC5zdG9wT2JzZXJ2aW5nKGV2ZW50TmFtZSk7CiAg
ICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICAgIH0KCiAgICAgIHZhciB3cmFw
cGVyID0gZmluZFdyYXBwZXIoaWQsIGV2ZW50TmFtZSwgaGFuZGxlcik7CiAgICAgIGlmICghd3Jh
cHBlcikgcmV0dXJuIGVsZW1lbnQ7CgogICAgICBpZiAoZWxlbWVudC5yZW1vdmVFdmVudExpc3Rl
bmVyKSB7CiAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBwZXIs
IGZhbHNlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBlbGVtZW50LmRldGFjaEV2ZW50KCJvbiIg
KyBuYW1lLCB3cmFwcGVyKTsKICAgICAgfQoKICAgICAgZGVzdHJveVdyYXBwZXIoaWQsIGV2ZW50
TmFtZSwgaGFuZGxlcik7CgogICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0sCgogICAgZmlyZTog
ZnVuY3Rpb24oZWxlbWVudCwgZXZlbnROYW1lLCBtZW1vKSB7CiAgICAgIGVsZW1lbnQgPSAkKGVs
ZW1lbnQpOwogICAgICBpZiAoZWxlbWVudCA9PSBkb2N1bWVudCAmJiBkb2N1bWVudC5jcmVhdGVF
dmVudCAmJiAhZWxlbWVudC5kaXNwYXRjaEV2ZW50KQogICAgICAgIGVsZW1lbnQgPSBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQ7CgogICAgICB2YXIgZXZlbnQ7CiAgICAgIGlmIChkb2N1bWVudC5j
cmVhdGVFdmVudCkgewogICAgICAgIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxF
dmVudHMiKTsKICAgICAgICBldmVudC5pbml0RXZlbnQoImRhdGFhdmFpbGFibGUiLCB0cnVlLCB0
cnVlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50
T2JqZWN0KCk7CiAgICAgICAgZXZlbnQuZXZlbnRUeXBlID0gIm9uZGF0YWF2YWlsYWJsZSI7CiAg
ICAgIH0KCiAgICAgIGV2ZW50LmV2ZW50TmFtZSA9IGV2ZW50TmFtZTsKICAgICAgZXZlbnQubWVt
byA9IG1lbW8gfHwgeyB9OwoKICAgICAgaWYgKGRvY3VtZW50LmNyZWF0ZUV2ZW50KSB7CiAgICAg
ICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBl
bGVtZW50LmZpcmVFdmVudChldmVudC5ldmVudFR5cGUsIGV2ZW50KTsKICAgICAgfQoKICAgICAg
cmV0dXJuIEV2ZW50LmV4dGVuZChldmVudCk7CiAgICB9CiAgfTsKfSkoKSk7CgpPYmplY3QuZXh0
ZW5kKEV2ZW50LCBFdmVudC5NZXRob2RzKTsKCkVsZW1lbnQuYWRkTWV0aG9kcyh7CiAgZmlyZTog
ICAgICAgICAgRXZlbnQuZmlyZSwKICBvYnNlcnZlOiAgICAgICBFdmVudC5vYnNlcnZlLAogIHN0
b3BPYnNlcnZpbmc6IEV2ZW50LnN0b3BPYnNlcnZpbmcKfSk7CgpPYmplY3QuZXh0ZW5kKGRvY3Vt
ZW50LCB7CiAgZmlyZTogICAgICAgICAgRWxlbWVudC5NZXRob2RzLmZpcmUubWV0aG9kaXplKCks
CiAgb2JzZXJ2ZTogICAgICAgRWxlbWVudC5NZXRob2RzLm9ic2VydmUubWV0aG9kaXplKCksCiAg
c3RvcE9ic2VydmluZzogRWxlbWVudC5NZXRob2RzLnN0b3BPYnNlcnZpbmcubWV0aG9kaXplKCks
CiAgbG9hZGVkOiAgICAgICAgZmFsc2UKfSk7CgooZnVuY3Rpb24oKSB7CiAgLyogU3VwcG9ydCBm
b3IgdGhlIERPTUNvbnRlbnRMb2FkZWQgZXZlbnQgaXMgYmFzZWQgb24gd29yayBieSBEYW4gV2Vi
YiwKICAgICBNYXR0aGlhcyBNaWxsZXIsIERlYW4gRWR3YXJkcyBhbmQgSm9obiBSZXNpZy4gKi8K
CiAgdmFyIHRpbWVyOwoKICBmdW5jdGlvbiBmaXJlQ29udGVudExvYWRlZEV2ZW50KCkgewogICAg
aWYgKGRvY3VtZW50LmxvYWRlZCkgcmV0dXJuOwogICAgaWYgKHRpbWVyKSB3aW5kb3cuY2xlYXJJ
bnRlcnZhbCh0aW1lcik7CiAgICBkb2N1bWVudC5maXJlKCJkb206bG9hZGVkIik7CiAgICBkb2N1
bWVudC5sb2FkZWQgPSB0cnVlOwogIH0KCiAgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIp
IHsKICAgIGlmIChQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQpIHsKICAgICAgdGltZXIgPSB3aW5k
b3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKC9sb2FkZWR8Y29tcGxldGUv
LnRlc3QoZG9jdW1lbnQucmVhZHlTdGF0ZSkpCiAgICAgICAgICBmaXJlQ29udGVudExvYWRlZEV2
ZW50KCk7CiAgICAgIH0sIDApOwoKICAgICAgRXZlbnQub2JzZXJ2ZSh3aW5kb3csICJsb2FkIiwg
ZmlyZUNvbnRlbnRMb2FkZWRFdmVudCk7CgogICAgfSBlbHNlIHsKICAgICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsCiAgICAgICAgZmlyZUNvbnRlbnRMb2Fk
ZWRFdmVudCwgZmFsc2UpOwogICAgfQoKICB9IGVsc2UgewogICAgZG9jdW1lbnQud3JpdGUoIjxz
Y3JpcHQgaWQ9X19vbkRPTUNvbnRlbnRMb2FkZWQgZGVmZXIgc3JjPS8vOj48XC9zY3JpcHQ+Iik7
CiAgICAkKCJfX29uRE9NQ29udGVudExvYWRlZCIpLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0
aW9uKCkgewogICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKICAgICAg
ICB0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CiAgICAgICAgZmlyZUNvbnRlbnRMb2Fk
ZWRFdmVudCgpOwogICAgICB9CiAgICB9OwogIH0KfSkoKTsKLyotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIERFUFJFQ0FURUQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
CgpIYXNoLnRvUXVlcnlTdHJpbmcgPSBPYmplY3QudG9RdWVyeVN0cmluZzsKCnZhciBUb2dnbGUg
PSB7IGRpc3BsYXk6IEVsZW1lbnQudG9nZ2xlIH07CgpFbGVtZW50Lk1ldGhvZHMuY2hpbGRPZiA9
IEVsZW1lbnQuTWV0aG9kcy5kZXNjZW5kYW50T2Y7Cgp2YXIgSW5zZXJ0aW9uID0gewogIEJlZm9y
ZTogZnVuY3Rpb24oZWxlbWVudCwgY29udGVudCkgewogICAgcmV0dXJuIEVsZW1lbnQuaW5zZXJ0
KGVsZW1lbnQsIHtiZWZvcmU6Y29udGVudH0pOwogIH0sCgogIFRvcDogZnVuY3Rpb24oZWxlbWVu
dCwgY29udGVudCkgewogICAgcmV0dXJuIEVsZW1lbnQuaW5zZXJ0KGVsZW1lbnQsIHt0b3A6Y29u
dGVudH0pOwogIH0sCgogIEJvdHRvbTogZnVuY3Rpb24oZWxlbWVudCwgY29udGVudCkgewogICAg
cmV0dXJuIEVsZW1lbnQuaW5zZXJ0KGVsZW1lbnQsIHtib3R0b206Y29udGVudH0pOwogIH0sCgog
IEFmdGVyOiBmdW5jdGlvbihlbGVtZW50LCBjb250ZW50KSB7CiAgICByZXR1cm4gRWxlbWVudC5p
bnNlcnQoZWxlbWVudCwge2FmdGVyOmNvbnRlbnR9KTsKICB9Cn07Cgp2YXIgJGNvbnRpbnVlID0g
bmV3IEVycm9yKCcidGhyb3cgJGNvbnRpbnVlIiBpcyBkZXByZWNhdGVkLCB1c2UgInJldHVybiIg
aW5zdGVhZCcpOwoKLy8gVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gc2NyaXB0LmFjdWxvLnVzOyBu
b3RpY2UgdGhlIGRlcHJlY2F0ZWQgbWV0aG9kcwovLyBmdXJ0aGVyIGJlbG93LCB0aGF0IG1hcCB0
byB0aGUgbmV3ZXIgRWxlbWVudCBtZXRob2RzLgp2YXIgUG9zaXRpb24gPSB7CiAgLy8gc2V0IHRv
IHRydWUgaWYgbmVlZGVkLCB3YXJuaW5nOiBmaXJlZm94IHBlcmZvcm1hbmNlIHByb2JsZW1zCiAg
Ly8gTk9UIG5lZWVkZWQgZm9yIHBhZ2Ugc2Nyb2xsaW5nLCBvbmx5IGlmIGRyYWdnYWJsZSBjb250
YWluZWQgaW4KICAvLyBzY3JvbGxhYmxlIGVsZW1lbnRzCiAgaW5jbHVkZVNjcm9sbE9mZnNldHM6
IGZhbHNlLAoKICAvLyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyB3aXRoaW5JbmNsdWRp
bmdTY3JvbGxvZmZzZXQsIGV2ZXJ5IHRpbWUgdGhlCiAgLy8gcGFnZSBpcyBzY3JvbGxlZAogIHBy
ZXBhcmU6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5kZWx0YVggPSAgd2luZG93LnBhZ2VYT2Zmc2V0
CiAgICAgICAgICAgICAgICB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdAog
ICAgICAgICAgICAgICAgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0CiAgICAgICAgICAgICAg
ICB8fCAwOwogICAgdGhpcy5kZWx0YVkgPSAgd2luZG93LnBhZ2VZT2Zmc2V0CiAgICAgICAgICAg
ICAgICB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wCiAgICAgICAgICAgICAg
ICB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcAogICAgICAgICAgICAgICAgfHwgMDsKICB9LAoK
ICAvLyBjYWNoZXMgeC95IGNvb3JkaW5hdGUgcGFpciB0byB1c2Ugd2l0aCBvdmVybGFwCiAgd2l0
aGluOiBmdW5jdGlvbihlbGVtZW50LCB4LCB5KSB7CiAgICBpZiAodGhpcy5pbmNsdWRlU2Nyb2xs
T2Zmc2V0cykKICAgICAgcmV0dXJuIHRoaXMud2l0aGluSW5jbHVkaW5nU2Nyb2xsb2Zmc2V0cyhl
bGVtZW50LCB4LCB5KTsKICAgIHRoaXMueGNvbXAgPSB4OwogICAgdGhpcy55Y29tcCA9IHk7CiAg
ICB0aGlzLm9mZnNldCA9IEVsZW1lbnQuY3VtdWxhdGl2ZU9mZnNldChlbGVtZW50KTsKCiAgICBy
ZXR1cm4gKHkgPj0gdGhpcy5vZmZzZXRbMV0gJiYKICAgICAgICAgICAgeSA8ICB0aGlzLm9mZnNl
dFsxXSArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0ICYmCiAgICAgICAgICAgIHggPj0gdGhpcy5vZmZz
ZXRbMF0gJiYKICAgICAgICAgICAgeCA8ICB0aGlzLm9mZnNldFswXSArIGVsZW1lbnQub2Zmc2V0
V2lkdGgpOwogIH0sCgogIHdpdGhpbkluY2x1ZGluZ1Njcm9sbG9mZnNldHM6IGZ1bmN0aW9uKGVs
ZW1lbnQsIHgsIHkpIHsKICAgIHZhciBvZmZzZXRjYWNoZSA9IEVsZW1lbnQuY3VtdWxhdGl2ZVNj
cm9sbE9mZnNldChlbGVtZW50KTsKCiAgICB0aGlzLnhjb21wID0geCArIG9mZnNldGNhY2hlWzBd
IC0gdGhpcy5kZWx0YVg7CiAgICB0aGlzLnljb21wID0geSArIG9mZnNldGNhY2hlWzFdIC0gdGhp
cy5kZWx0YVk7CiAgICB0aGlzLm9mZnNldCA9IEVsZW1lbnQuY3VtdWxhdGl2ZU9mZnNldChlbGVt
ZW50KTsKCiAgICByZXR1cm4gKHRoaXMueWNvbXAgPj0gdGhpcy5vZmZzZXRbMV0gJiYKICAgICAg
ICAgICAgdGhpcy55Y29tcCA8ICB0aGlzLm9mZnNldFsxXSArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
ICYmCiAgICAgICAgICAgIHRoaXMueGNvbXAgPj0gdGhpcy5vZmZzZXRbMF0gJiYKICAgICAgICAg
ICAgdGhpcy54Y29tcCA8ICB0aGlzLm9mZnNldFswXSArIGVsZW1lbnQub2Zmc2V0V2lkdGgpOwog
IH0sCgogIC8vIHdpdGhpbiBtdXN0IGJlIGNhbGxlZCBkaXJlY3RseSBiZWZvcmUKICBvdmVybGFw
OiBmdW5jdGlvbihtb2RlLCBlbGVtZW50KSB7CiAgICBpZiAoIW1vZGUpIHJldHVybiAwOwogICAg
aWYgKG1vZGUgPT0gJ3ZlcnRpY2FsJykKICAgICAgcmV0dXJuICgodGhpcy5vZmZzZXRbMV0gKyBl
bGVtZW50Lm9mZnNldEhlaWdodCkgLSB0aGlzLnljb21wKSAvCiAgICAgICAgZWxlbWVudC5vZmZz
ZXRIZWlnaHQ7CiAgICBpZiAobW9kZSA9PSAnaG9yaXpvbnRhbCcpCiAgICAgIHJldHVybiAoKHRo
aXMub2Zmc2V0WzBdICsgZWxlbWVudC5vZmZzZXRXaWR0aCkgLSB0aGlzLnhjb21wKSAvCiAgICAg
ICAgZWxlbWVudC5vZmZzZXRXaWR0aDsKICB9LAoKICAvLyBEZXByZWNhdGlvbiBsYXllciAtLSB1
c2UgbmV3ZXIgRWxlbWVudCBtZXRob2RzIG5vdyAoMS41LjIpLgoKICBjdW11bGF0aXZlT2Zmc2V0
OiBFbGVtZW50Lk1ldGhvZHMuY3VtdWxhdGl2ZU9mZnNldCwKCiAgcG9zaXRpb25lZE9mZnNldDog
RWxlbWVudC5NZXRob2RzLnBvc2l0aW9uZWRPZmZzZXQsCgogIGFic29sdXRpemU6IGZ1bmN0aW9u
KGVsZW1lbnQpIHsKICAgIFBvc2l0aW9uLnByZXBhcmUoKTsKICAgIHJldHVybiBFbGVtZW50LmFi
c29sdXRpemUoZWxlbWVudCk7CiAgfSwKCiAgcmVsYXRpdml6ZTogZnVuY3Rpb24oZWxlbWVudCkg
ewogICAgUG9zaXRpb24ucHJlcGFyZSgpOwogICAgcmV0dXJuIEVsZW1lbnQucmVsYXRpdml6ZShl
bGVtZW50KTsKICB9LAoKICByZWFsT2Zmc2V0OiBFbGVtZW50Lk1ldGhvZHMuY3VtdWxhdGl2ZVNj
cm9sbE9mZnNldCwKCiAgb2Zmc2V0UGFyZW50OiBFbGVtZW50Lk1ldGhvZHMuZ2V0T2Zmc2V0UGFy
ZW50LAoKICBwYWdlOiBFbGVtZW50Lk1ldGhvZHMudmlld3BvcnRPZmZzZXQsCgogIGNsb25lOiBm
dW5jdGlvbihzb3VyY2UsIHRhcmdldCwgb3B0aW9ucykgewogICAgb3B0aW9ucyA9IG9wdGlvbnMg
fHwgeyB9OwogICAgcmV0dXJuIEVsZW1lbnQuY2xvbmVQb3NpdGlvbih0YXJnZXQsIHNvdXJjZSwg
b3B0aW9ucyk7CiAgfQp9OwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgppZiAoIWRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUpIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgPSBm
dW5jdGlvbihpbnN0YW5jZU1ldGhvZHMpewogIGZ1bmN0aW9uIGl0ZXIobmFtZSkgewogICAgcmV0
dXJuIG5hbWUuYmxhbmsoKSA/IG51bGwgOiAiW2NvbnRhaW5zKGNvbmNhdCgnICcsIEBjbGFzcywg
JyAnKSwgJyAiICsgbmFtZSArICIgJyldIjsKICB9CgogIGluc3RhbmNlTWV0aG9kcy5nZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lID0gUHJvdG90eXBlLkJyb3dzZXJGZWF0dXJlcy5YUGF0aCA/CiAgZnVu
Y3Rpb24oZWxlbWVudCwgY2xhc3NOYW1lKSB7CiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUudG9T
dHJpbmcoKS5zdHJpcCgpOwogICAgdmFyIGNvbmQgPSAvXHMvLnRlc3QoY2xhc3NOYW1lKSA/ICR3
KGNsYXNzTmFtZSkubWFwKGl0ZXIpLmpvaW4oJycpIDogaXRlcihjbGFzc05hbWUpOwogICAgcmV0
dXJuIGNvbmQgPyBkb2N1bWVudC5fZ2V0RWxlbWVudHNCeVhQYXRoKCcuLy8qJyArIGNvbmQsIGVs
ZW1lbnQpIDogW107CiAgfSA6IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgewogICAgY2xh
c3NOYW1lID0gY2xhc3NOYW1lLnRvU3RyaW5nKCkuc3RyaXAoKTsKICAgIHZhciBlbGVtZW50cyA9
IFtdLCBjbGFzc05hbWVzID0gKC9ccy8udGVzdChjbGFzc05hbWUpID8gJHcoY2xhc3NOYW1lKSA6
IG51bGwpOwogICAgaWYgKCFjbGFzc05hbWVzICYmICFjbGFzc05hbWUpIHJldHVybiBlbGVtZW50
czsKCiAgICB2YXIgbm9kZXMgPSAkKGVsZW1lbnQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCcqJyk7
CiAgICBjbGFzc05hbWUgPSAnICcgKyBjbGFzc05hbWUgKyAnICc7CgogICAgZm9yICh2YXIgaSA9
IDAsIGNoaWxkLCBjbjsgY2hpbGQgPSBub2Rlc1tpXTsgaSsrKSB7CiAgICAgIGlmIChjaGlsZC5j
bGFzc05hbWUgJiYgKGNuID0gJyAnICsgY2hpbGQuY2xhc3NOYW1lICsgJyAnKSAmJiAoY24uaW5j
bHVkZShjbGFzc05hbWUpIHx8CiAgICAgICAgICAoY2xhc3NOYW1lcyAmJiBjbGFzc05hbWVzLmFs
bChmdW5jdGlvbihuYW1lKSB7CiAgICAgICAgICAgIHJldHVybiAhbmFtZS50b1N0cmluZygpLmJs
YW5rKCkgJiYgY24uaW5jbHVkZSgnICcgKyBuYW1lICsgJyAnKTsKICAgICAgICAgIH0pKSkpCiAg
ICAgICAgZWxlbWVudHMucHVzaChFbGVtZW50LmV4dGVuZChjaGlsZCkpOwogICAgfQogICAgcmV0
dXJuIGVsZW1lbnRzOwogIH07CgogIHJldHVybiBmdW5jdGlvbihjbGFzc05hbWUsIHBhcmVudEVs
ZW1lbnQpIHsKICAgIHJldHVybiAkKHBhcmVudEVsZW1lbnQgfHwgZG9jdW1lbnQuYm9keSkuZ2V0
RWxlbWVudHNCeUNsYXNzTmFtZShjbGFzc05hbWUpOwogIH07Cn0oRWxlbWVudC5NZXRob2RzKTsK
Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKRWxlbWVudC5DbGFzc05hbWVzID0gQ2xhc3MuY3JlYXRl
KCk7CkVsZW1lbnQuQ2xhc3NOYW1lcy5wcm90b3R5cGUgPSB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rp
b24oZWxlbWVudCkgewogICAgdGhpcy5lbGVtZW50ID0gJChlbGVtZW50KTsKICB9LAoKICBfZWFj
aDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUuc3BsaXQo
L1xzKy8pLnNlbGVjdChmdW5jdGlvbihuYW1lKSB7CiAgICAgIHJldHVybiBuYW1lLmxlbmd0aCA+
IDA7CiAgICB9KS5fZWFjaChpdGVyYXRvcik7CiAgfSwKCiAgc2V0OiBmdW5jdGlvbihjbGFzc05h
bWUpIHsKICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7CiAgfSwKCiAgYWRk
OiBmdW5jdGlvbihjbGFzc05hbWVUb0FkZCkgewogICAgaWYgKHRoaXMuaW5jbHVkZShjbGFzc05h
bWVUb0FkZCkpIHJldHVybjsKICAgIHRoaXMuc2V0KCRBKHRoaXMpLmNvbmNhdChjbGFzc05hbWVU
b0FkZCkuam9pbignICcpKTsKICB9LAoKICByZW1vdmU6IGZ1bmN0aW9uKGNsYXNzTmFtZVRvUmVt
b3ZlKSB7CiAgICBpZiAoIXRoaXMuaW5jbHVkZShjbGFzc05hbWVUb1JlbW92ZSkpIHJldHVybjsK
ICAgIHRoaXMuc2V0KCRBKHRoaXMpLndpdGhvdXQoY2xhc3NOYW1lVG9SZW1vdmUpLmpvaW4oJyAn
KSk7CiAgfSwKCiAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICRBKHRoaXMpLmpv
aW4oJyAnKTsKICB9Cn07CgpPYmplY3QuZXh0ZW5kKEVsZW1lbnQuQ2xhc3NOYW1lcy5wcm90b3R5
cGUsIEVudW1lcmFibGUpOwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpFbGVtZW50LmFkZE1ldGhv
ZHMoKTvUAAUAEQAHAAgATABNABQATl8QL2h0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMv
dXRpbC90b29sdGlwLmpzTxEEdWJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hp
dmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJj
aGl2ZXKvECILDCYsLTMeNDVRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2tsVSRudWxs3Q0ODxAREhMU
FRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5
UiQwUiQxgCGAAoAgEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZl
gASAAIADXxAvaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy91dGlsL3Rvb2x0aXAuanPS
Li8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsGrm8vEMjTDTY3
ODlFV05TLmtleXNaTlMub2JqZWN0c4Afqzo7PD0+P0BBQkNEgAmACoALgAyADYAOgA+AEIARgBKA
E6tGR0hJSktMTU5PUIAUgBWAFoAXgBiAGYAagBuAHIAdgB5dTGFzdC1Nb2RpZmllZF1DYWNoZS1D
b250cm9sXUFjY2VwdC1SYW5nZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5
cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25UVmFyeV8QHVRodSwgMjUgT2N0
IDIwMDcgMTg6MDU6MzMgR01UXxAXcHJpdmF0ZSwgbWF4LWFnZT0zMDA0NDRVYnl0ZXNUZ3ppcF8Q
FlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRTODQ0XxAd
TW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVReIjhjOS00NzIwZGFlZCJaa2VlcC1hbGl2ZV8Q
D0FjY2VwdC1FbmNvZGluZ9IuL2hpo2lqMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9u
YXJ5EQjJ0i4vbW6jbm8yXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAf
ACkAMgA3ADoAUABSAGQAiQCPAKoAsQC0ALcAuwC/AMIAxQDIAMsAzgDRANQA1wDZANsA3QDfAOEA
4wDlAOcA6QDrAO0A7wD2AP4BCgEMAQ4BEAFCAUcBUAFbAV4BZAFtAXYBeAF/AYcBkgGUAaABogGk
AaYBqAGqAawBrgGwAbIBtAG2AcIBxAHGAcgBygHMAc4B0AHSAdQB1gHYAeYB9AICAhUCHAIpAjgC
PQJCAk0CUgJyAowCkgKXArACywLPAu8C/gMJAxsDIAMkAzoDRwNKA08DUwNnAAAAAAAAAgEAAAAA
AAAAcAAAAAAAAAAAAAAAAAAAA3VPEQjJLyoKJElkOiB0b29sdGlwLmpzLHYgMS4yIDIwMDcvMTAv
MjIgMTk6MjY6NDQgY29va24gRXhwICQgCihjKTIwMDYgLSAyMDA3IFRoZSBOZXcgWW9yayBUaW1l
cyBDb21wYW55IAoqLwoKZnVuY3Rpb24gdG9vbHRpcCgpIHsKCXRoaXMuY29udGFpbmVyID0gbnVs
bDsKCXRoaXMuY29udGVudCA9IG51bGw7IAoJdGhpcy5taWxpc2Vjb25kcyA9IDUwMDA7Cgl0aGlz
LnRpbWVvdXRJZCA9IG51bGw7Cgl0aGlzLnRvcE9mZnNldCA9IDA7Cgl0aGlzLmxlZnRPZmZzZXQg
PSA2NTsKCXRoaXMuY29vcmRzID0gW107CglyZXR1cm4gdGhpczsKfQoKdG9vbHRpcC5wcm90b3R5
cGUud3JpdGUgPSBmdW5jdGlvbigpewoJdGhpcy5jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKCQoJdGhpcy5jb250YWluZXIuc2V0QXR0cmlidXRlKCJpZCIsICJ0b29s
VGlwIik7Cgl0aGlzLmNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoImNsYXNzIiwic2hvdyIpOwoJCglj
bG9zZUJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJY2xvc2VCdXR0b24u
c2V0QXR0cmlidXRlKCJpZCIsICJidXR0b24iKTsKCUEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJhIik7CglBLnNldEF0dHJpYnV0ZSgiaHJlZiIsICJqYXZhc2NyaXB0OnRvb2x0aXAuaGlkZSgp
OyIpOwoJQS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiY2xvc2Ugd2luZG93
IikpOwoJY2xvc2VCdXR0b24uYXBwZW5kQ2hpbGQoQSk7Cgl0aGlzLmNvbnRhaW5lci5hcHBlbmRD
aGlsZChjbG9zZUJ1dHRvbik7CgoJdGhpcy5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7Cgl0aGlzLmNvbnRlbnQuc2V0QXR0cmlidXRlKCJpZCIsICJjb250ZW50Iik7Cgl0
aGlzLmNvbnRlbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRoaXMgaXMg
dGhlIHRvb2xiYXIiKSk7Cgl0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnQp
OwoJCglkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyKTsKfQoKdG9vbHRp
cC5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uKCl7CglpZiAodGhpcy50aW1lb3V0SWQgIT0gbnVs
bCkgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCk7IAp9CgoKdG9vbHRpcC5wcm90
b3R5cGUuZmluZFBvcyA9IGZ1bmN0aW9uKG9iaikgewoJdmFyIGN1cmxlZnQgPSBjdXJ0b3AgPSAw
OwoJaWYgKG9iai5vZmZzZXRQYXJlbnQpIHsKCQljdXJsZWZ0ID0gb2JqLm9mZnNldExlZnQKCQlj
dXJ0b3AgPSBvYmoub2Zmc2V0VG9wCgkJd2hpbGUgKG9iaiA9IG9iai5vZmZzZXRQYXJlbnQpIHsK
CQkJY3VybGVmdCArPSBvYmoub2Zmc2V0TGVmdAoJCQljdXJ0b3AgKz0gb2JqLm9mZnNldFRvcAoJ
CX0KCX0KCXRoaXMuY29vcmRzID0gW2N1cmxlZnQsY3VydG9wXTsKfQoKCnRvb2x0aXAucHJvdG90
eXBlLnNob3cgPSBmdW5jdGlvbihvYmosIHRleHQpIHsKCXRoaXMuc3RvcCgpOwoJLy9pbml0aWFs
aXplIHRvb2x0aXAgZGl2CglpZiAodGhpcy5jb250YWluZXIgPT0gbnVsbCkgeyB0aGlzLndyaXRl
KCk7IH0KCXRoaXMuZmluZFBvcyhvYmopOwoJdG9wT2Zmc2V0ID0gKGFyZ3VtZW50c1syXSkgPyBh
cmd1bWVudHNbMl0gOiB0aGlzLnRvcE9mZnNldDsgLy91c2UgY3VzdG9tIHZhbHVlIGZvciB0b3Ag
aWYgYXZhaWxhYmxlCglsZWZ0T2Zmc2V0ID0gKGFyZ3VtZW50c1szXSkgPyBhcmd1bWVudHNbM10g
OiB0aGlzLmxlZnRPZmZzZXQ7IC8vdXNlIGN1c3RvbSB2YWx1ZSBmb3IgbGVmdCBpZiBhdmFpbGFi
bGUKCXRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9ICh0aGlzLmNvb3Jkc1sxXSArIHRvcE9mZnNl
dCkgKyAncHgnOwoJdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9ICh0aGlzLmNvb3Jkc1swXSAr
IGxlZnRPZmZzZXQpICsgICdweCc7Cgl0aGlzLmNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gImJs
b2NrIjsKCXRoaXMuY29udGVudC5pbm5lckhUTUwgPSB0ZXh0Owp9Cgp0b29sdGlwLnByb3RvdHlw
ZS5yb2xsb3V0ID0gZnVuY3Rpb24oKXsKCXRoaXMudGltZW91dElkID0gd2luZG93LnNldFRpbWVv
dXQoInRvb2x0aXAuaGlkZSgpIiwgdGhpcy5taWxpc2Vjb25kcyk7Cn0KCQp0b29sdGlwLnByb3Rv
dHlwZS5oaWRlID0gZnVuY3Rpb24oKSB7Cgl0aGlzLnN0b3AoKTsKCXRoaXMuY29udGFpbmVyLnN0
eWxlLmRpc3BsYXkgPSAibm9uZSI7Cn0KCnRvb2x0aXAgPSBuZXcgdG9vbHRpcCgpOwrUAAUAEQAH
AAgAUABRACkAUl8QMmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vY3NzL2NvbW1vbi9nbG9i
YWwuY3NzTxEEZWJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmpl
Y3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvECIL
DCYsLTMeNDVRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2tsVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwd
Hh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgCGA
AoAgEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxAy
aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9jc3MvY29tbW9uL2dsb2JhbC5jc3PSLi8wMVgk
Y2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsGs2fDEMjTDTY3ODlFV05T
LmtleXNaTlMub2JqZWN0c4Afqzo7PD0+P0BBQkNEgAmACoALgAyADYAOgA+AEIARgBKAE6tGR0hJ
SktMTU5PUIAUgBWAFoAXgBiAGYAagBuAHIAdgB5dTGFzdC1Nb2RpZmllZF1DYWNoZS1Db250cm9s
XUFjY2VwdC1SYW5nZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVeQ29u
dGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25UVmFyeV8QHVR1ZSwgMDEgSnVsIDIwMDgg
MTU6NDE6MjQgR01UXxAWcHJpdmF0ZSwgbWF4LWFnZT02MjI5OFVieXRlc1RnemlwXxAWU3VuLU9O
RS1XZWItU2VydmVyLzYuMVh0ZXh0L2Nzc1M0ODlfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQz
IEdNVF4iMzQ5LTQ4NmE1MDI0IlprZWVwLWFsaXZlXxAPQWNjZXB0LUVuY29kaW5n0i4vaGmjaWoy
XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRA0nSLi9tbqNubzJfEBFOU0hUVFBV
UkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACJAI8AqgCxALQA
twC7AL8AwgDFAMgAywDOANEA1ADXANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPYA/gEKAQwBDgEQ
AUUBSgFTAV4BYQFnAXABeQF7AYIBigGVAZcBowGlAacBqQGrAa0BrwGxAbMBtQG3AbkBxQHHAckB
ywHNAc8B0QHTAdUB1wHZAdsB6QH3AgUCGAIfAiwCOwJAAkUCUAJVAnUCjgKUApkCsgK7Ar8C3wLu
AvkDCwMQAxQDKgM3AzoDPwNDA1cAAAAAAAACAQAAAAAAAABwAAAAAAAAAAAAAAAAAAADZU8RA0kv
KgokSWQ6IGdsb2JhbC5jc3MsdiAxLjkgMjAwOC8wNi8yMyAyMToyNToxMiBrY29ja2J1cm4gRXhw
ICQKKGMpMjAwNiAtIDIwMDcgVGhlIE5ldyBZb3JrIFRpbWVzIENvbXBhbnkgCiovCgoKYm9keSB7
CgliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKCWZvbnQ6IHNtYWxsIEdlb3JnaWEsIHNlcmlmOwoJ
fQoKQG1lZGlhIHByaW50IHsKCQlib2R5IHsgCgkJCWJhY2tncm91bmQtaW1hZ2U6IHVybChodHRw
Oi8vd3Quby5ueXRpbWVzLmNvbS9kY3N5bTU3eXcxMDAwMHMxczhnMGJvb3p0Xzl0MXgvZGNzLmdp
Zj9kY3N1cmk9cHJpbnQuaHRtbCZkY3NkYXQ9MTA2ODQ1MzI4MTc1MiZXVC50aT1QcmludC1UcmFj
a2VyJldULnpfZGNzbT0xKTsgCgkJCX0KCX0KCmh0bWw+Ym9keSB7Cglmb250OiA4NC41JSBHZW9y
Z2lhLCBzZXJpZjsKCX0KCmgxLCBoMiwgaDMsIGg0LCBoNSB7Cgljb2xvcjogYmxhY2s7Cgl9Cgph
IHsKCWNvbG9yOiAjMDA0Mjc2OwoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJfQoKYTpob3ZlciB7
Cgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCX0KCmE6dmlzaXRlZCB7Cgljb2xvcjogIzY2
NjY5OTsKCX0KCmltZyB7Cglib3JkZXI6IG5vbmU7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cgl9
Cgpmb3JtIHsKCXBhZGRpbmc6IDBweDsKCXdpZHRoOiAwcHg7CglkaXNwbGF5OiBpbmxpbmU7Cgl9
Cgp1bCB7CgltYXJnaW46IDA7CglwYWRkaW5nOiAwOwoJbGlzdC1zdHlsZTogbm9uZTsKCX0KCQpv
bCB7CgltYXJnaW46IDA7CglwYWRkaW5nOiAwOwoJfQoJCmxpIHsKCW1hcmdpbjogMDsKCXBhZGRp
bmc6IDA7Cgl9CgkKI25hZ0JhciB7CglkaXNwbGF5OiBub25lOwoJfQoK1AAFABEABwAIAFQAVQAU
AFZfEEBodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC9hbmFseXRpY3MvY29udHJv
bGxlcl92MS4xLmpzTxEEoGJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVy
WCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2
ZXKvECQLDCYsLTMeNDVTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprb3BVJG51bGzdDQ4PEBESExQV
FhcYGRobHB0eHyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlS
JDBSJDGAI4ACgCIQCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWA
BIAAgANfEEBodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC9hbmFseXRpY3MvY29u
dHJvbGxlcl92MS4xLmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVj
dCNBrZH7CVp+2BDI0w02Nzg5RldOUy5rZXlzWk5TLm9iamVjdHOAIaw6Ozw9Pj9AQUJDREWACYAK
gAuADIANgA6AD4AQgBGAEoATgBSsR0hJSktMTU5PUFFSgBWAFoAXgBiAGYAagBuAHIAdgB6AH4Ag
VERhdGVdQ2FjaGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNfEBBDb250ZW50
LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGheTnRjb2VudC1MZW5n
dGhURXRhZ1pDb25uZWN0aW9uVFZhcnlfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQ0IEdNVFpt
YXgtYWdlPTFkXxAdTW9uLCAyMiBTZXAgMjAwOCAyMTo1NTo0MiBHTVRVYnl0ZXNUZ3ppcF8QFlN1
bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRUOTk5M1U0Mjcz
Nl8QDyJhNmYwLTQ4ZDgxNDVlIlprZWVwLWFsaXZlXxAPQWNjZXB0LUVuY29kaW5n0i4vbG2jbW4y
XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRpvDSLi9xcqNyczJfEBFOU0hUVFBV
UkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACLAJEArACzALYA
uQC9AMEAxADHAMoAzQDQANMA1gDZANsA3QDfAOEA4wDlAOcA6QDrAO0A7wDxAPgBAAEMAQ4BEAES
AVUBWgFjAW4BcQF3AYABiQGLAZIBmgGlAacBtAG2AbgBugG8Ab4BwAHCAcQBxgHIAcoBzAHZAdsB
3QHfAeEB4wHlAecB6QHrAe0B7wHxAfYCBAISAiACMwI6AkcCVgJlAmoCdQJ6ApoCpQLFAssC0ALp
AwQDCQMPAyEDLAM+A0MDRwNdA2oDbQNyA3YDigAAAAAAAAIBAAAAAAAAAHQAAAAAAAAAAAAAAAAA
AAOYTxGm8C8qCiRJZDogY29udHJvbGxlcl92MS4xLmpzIDEyOTg4IDIwMDgtMDgtMTQgMTQ6MTE6
MjZaIGRhdmlkICQgCiovCgovLyBTRVQgR0xPQkFMIFZBUlMKdmFyIG55dF91cmwgICAgICAgID0g
ZG9jdW1lbnQuVVJMOwp2YXIgbnl0X2RvbWFpbiAgICAgPSBkb2N1bWVudC5kb21haW47CnZhciBu
eXRfcGF0aCAgICAgICA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKdmFyIHd0X2Rjc2lkQXJy
YXkgID0geyJHZW5lcmFsIjoiZGNzeW01N3l3MTAwMDBzMXM4ZzBib296dF85dDF4IiwKICAgICAg
ICAgICAgICAgICAgICAgIkhvbWVwYWdlIjoiZGNzYTVwZ2ZxMTAwMDBjOXp1eXNxazBsbV82aTh5
IiwKICAgICAgICAgICAgICAgICAgICAgIldvcmxkIjoiZGNzcGp0Mm5hMDAwMDB3Y252bzh3ZGFl
b183cTlvIiwKICAgICAgICAgICAgICAgICAgICAgIlUuUy4iOiJkY3N5cGZxM2owMDAwMGdzY2x3
ZmxqYWVvXzZpM3ciLAogICAgICAgICAgICAgICAgICAgICAiUG9saXRpY3MiOiJkY3NhMjNybXYx
MDAwMHdvd2llanB3eDg2XzR2N2oiLAogICAgICAgICAgICAgICAgICAgICAiTi5ZLi9SZWdpb24i
OiJkY3NqNXRiNG4xMDAwMDBzbDc2Y3VsYWVvXzRmM3ciLAogICAgICAgICAgICAgICAgICAgICAi
QnVzaW5lc3MiOiJkY3NjMzJ1cGoxMDAwMGM1OG43a2dwYWVvXzhpM2ciLAogICAgICAgICAgICAg
ICAgICAgICAiVGVjaG5vbG9neSI6ImRjczU5MWtsZzAwMDAwYzk3cGJsZnJhZW9fN3AzcCIsCiAg
ICAgICAgICAgICAgICAgICAgICJTY2llbmNlIjoiZGNzYW9uOXJ3MDAwMDAwOGlmbWdxdGFlb18y
ZjljIiwKICAgICAgICAgICAgICAgICAgICAgIkhlYWx0aCI6ImRjc2ZqNmwwdDEwMDAwOGlqdDBp
cnphZW9fMms4ZiIsCiAgICAgICAgICAgICAgICAgICAgICJTcG9ydHMiOiJkY3NzNHZ5dHIwMDAw
MDBrYnV5Nmo4YmVvXzZmN3MiLAogICAgICAgICAgICAgICAgICAgICAiT3BpbmlvbiI6ImRjczV5
ZHdmcTEwMDAwOG1lNDU2bWFiZW9fMXoydiIsCiAgICAgICAgICAgICAgICAgICAgICJCb29rcyI6
ImRjc3M5MHRqZjAwMDAwa256bXV4NmhiZW9fOHI4eSIsCiAgICAgICAgICAgICAgICAgICAgICJE
YW5jZSI6ImRjczlpaHhxNjAwMDAwdzg0Mm1lYmtiZW9fOXI2cSIsCiAgICAgICAgICAgICAgICAg
ICAgICJNb3ZpZXMiOiJkY3N5b2FxdmwwMDAwMHdjMzRxZmFtYmVvXzRxM2IiLAogICAgICAgICAg
ICAgICAgICAgICAiTXVzaWMiOiJkY3NyaW95c2UxMDAwMDBramdoYXF1YmVvXzJkNHgiLAogICAg
ICAgICAgICAgICAgICAgICAiVFYiOiJkY3NnaG4xajkwMDAwMGdzOHlmZ2Z3YmVvXzNyOWwiLAog
ICAgICAgICAgICAgICAgICAgICAiVGhlYXRlciI6ImRjc3hsOWY0ODEwMDAwb3ViOG1maXliZW9f
NWw4diIsCiAgICAgICAgICAgICAgICAgICAgICJBcnRzIjoiZGNzbnUxazhuMDAwMDBvaTJwcnY5
ZmJlb18ydzVzIiwKICAgICAgICAgICAgICAgICAgICAgIlQ6U3R5bGUiOiJkY3MzMWMyZmQxMDAw
MHc4d2ptbzIyY2VvXzV4Nm4iLAogICAgICAgICAgICAgICAgICAgICAiU3R5bGUiOiJkY3MyZGxh
MmkwMDAwMDQzMXFrbDcwY2VvXzNqNHIiLAogICAgICAgICAgICAgICAgICAgICAiVHJhdmVsIjoi
ZGNza3R3ZXk4MTAwMDBrZnA5bnN2M2Nlb182bjFyIiwKICAgICAgICAgICAgICAgICAgICAgIkpv
YnMiOiJkY3N4bW55ZGUxMDAwMDBvZXJseWs1Y2VvXzZrNWsiLAogICAgICAgICAgICAgICAgICAg
ICAiUmVhbCBFc3RhdGUiOiJkY3N1dnZjY3AwMDAwMDBzZHRwemo3Y2VvXzNqMngiLAogICAgICAg
ICAgICAgICAgICAgICAiR3JlYXQgSG9tZXMiOiJkY3N6d2Fzc3UxMDAwMHc4Y29ndjQyeTg2Xzho
OHYiLAogICAgICAgICAgICAgICAgICAgICAiQXV0b3MiOiJkY3MzaTJ0dHcwMDAwMDQzeHlrODM5
Y2VvXzJ2Nm4iLAogICAgICAgICAgICAgICAgICAgICAiQ2xhc3NpZmllZHMiOiJkY3NvNWViMnIx
MDAwMGNwejlicTVjY2VvXzNqNWUiLAogICAgICAgICAgICAgICAgICAgICAiVmlkZW8iOiJkY3Mx
ajQ2MHIxMDAwMDh1dzdlczJlY2VvXzZjNHciLAogICAgICAgICAgICAgICAgICAgICAiVGltZXNT
ZWxlY3QiOiJkY3NxZGtjZGoxMDAwMDR6dDVodXpmY2VvXzNiN3YiLAogICAgICAgICAgICAgICAg
ICAgICAiVGltZXMgVG9waWNzIjoiZGNzM2JhZnRyMTAwMDAwOHE1b3h2amNlb180cjlnIiwKICAg
ICAgICAgICAgICAgICAgICAgIk1lbWJlciBDZW50ZXIiOiJkY3N0OXhpb3IxMDAwMHdvNDVsOWFu
Y2VvXzR1OWUiLAogICAgICAgICAgICAgICAgICAgICAiQ3Jvc3N3b3Jkcy9HYW1lcyI6ImRjc2Vw
dWphYTEwMDAwMHM1YnE5YnBjZW9fN3c2ayIsCiAgICAgICAgICAgICAgICAgICAgICJTdW5kYXkg
TWFnYXppbmUiOiJkY3NybXNqNm4xMDAwMHdvazkzM3FyY2VvXzF4OGQiLAogICAgICAgICAgICAg
ICAgICAgICAiTW9zdCBQb3B1bGFyIjoiZGNzdm1nY3M5MTAwMDBvMnVidjF6MWRlb184YjVzIiwK
ICAgICAgICAgICAgICAgICAgICAgIkxlYXJuaW5nIE5ldHdvcmsiOiJkY3NsaDBlNHgwMDAwMGdn
em1ubjNsZGVvXzZmOGsiLAogICAgICAgICAgICAgICAgICAgICAiS25vd2xlZGdlIE5ldHdvcmsi
OiJkY3M2OXI3b2kxMDAwMDRuc2NvcndtZGVvXzdyNGkiLAogICAgICAgICAgICAgICAgICAgICAi
V2VlayBJbiBSZXZpZXciOiJkY3N2ZmNlaWgxMDAwMG82MTBpNjVxZGVvXzd5NXIiLAogICAgICAg
ICAgICAgICAgICAgICAiV2VhdGhlciI6ImRjc2tlcjR3ZjEwMDAwd3N6ajhiMzJlZW9fNG03dSIs
CiAgICAgICAgICAgICAgICAgICAgICJOZXdzIFRyYWNrZXIiOiJkY3NhMWgybW4wMDAwMG9hY2Y0
b2Y1ZWVvXzVmMm0iLAogICAgICAgICAgICAgICAgICAgICAiTXVsdGltZWRpYSI6ImRjc3ZzMzRk
eTAwMDAwMGNodGJtazdlZW9fM2Y5cCIsCiAgICAgICAgICAgICAgICAgICAgICJDYXJ0b29ucyAv
IEh1bW9yIjoiZGNzYzFkaDQ2MDAwMDBvaWFqY3FkOWVlb185bDJtIiwKICAgICAgICAgICAgICAg
ICAgICAgIkNhcnRvb25zIjoiZGNzYzFkaDQ2MDAwMDBvaWFqY3FkOWVlb185bDJtIiwKICAgICAg
ICAgICAgICAgICAgICAgIkFQL1JldXRlcnMiOiJkY3MxNWRuazkxMDAwMDRyN2phbWZ3dTBwXzN2
OG4iLAogICAgICAgICAgICAgICAgICAgICAiU2VhcmNoIjoiZGNzbWNudHpsMDAwMDB3d3lodHkz
MGRlb184bzJ2IiwKICAgICAgICAgICAgICAgICAgICAgIkJsb2dydW5uZXIiOiJkY3M5cnFkcjYx
MDAwMDA4Mmo2ZTd4Y2VvXzFjOHIiLAogICAgICAgICAgICAgICAgICAgICAiTXlUaW1lcyI6ImRj
c2N0bHhscDEwMDAwY2hkamw0amxjZW9fMmQxbiIsCiAgICAgICAgICAgICAgICAgICAgICJUaW1l
cyBGaWxlIjoiZGNzOTF0ejIzMDAwMDBjMXAxN2hzM2Vlb180bzdlIiwKICAgICAgICAgICAgICAg
ICAgICAgIkVtYWlsIFRoaXMiOiJkY3N5Nnh4YzIxMDAwMGcwNzYzOWZra3ZzXzdiN28iLAogICAg
ICAgICAgICAgICAgICAgICAiQXJjaGl2ZSI6ImRjc3N4Yzd0dzEwMDAwZ2dyY3FjYTFjYnJfMXYx
aSIsCiAgICAgICAgICAgICAgICAgICAgICJPbHltcGljcyI6ImRjczNvaXZhZzEwMDAwNHpkOXhn
eDFtZmhfNGY5dyIsCiAgICAgICAgICAgICAgICAgICAgICJXaWRnZXQiOiJkY3NveTJkZTMwMDAw
MGNoOWc0cWc5b2N0XzlqNHgiLAogICAgICAgICAgICAgICAgICAgICAiU2VsZiBTZXJ2aWNlIjoi
ZGNzMXRvdnYzMTAwMDA0cmpjZGwzaDc5al83cDlmIn07Cgp2YXIgd3RfY2dBcnJheSAgICAgPSB7
ImFwb25saW5lIjoiQVAvUmV1dGVycyIsCiAgICAgICAgICAgICAgICAgICAgICJhcnRzIjoiQXJ0
cyIsCiAgICAgICAgICAgICAgICAgICAgICJhdXRvbW9iaWxlcyI6IkF1dG9zIiwKICAgICAgICAg
ICAgICAgICAgICAgImJvb2tzIjoiQm9va3MiLAogICAgICAgICAgICAgICAgICAgICAiYnVzaW5l
c3MiOiJCdXNpbmVzcyIsCiAgICAgICAgICAgICAgICAgICAgICJjcm9zc3dvcmRzIjoiQ3Jvc3N3
b3Jkcy9HYW1lcyIsCiAgICAgICAgICAgICAgICAgICAgICJkaW5pbmciOiJTdHlsZSIsCiAgICAg
ICAgICAgICAgICAgICAgICJlZHVjYXRpb24iOiJVLlMuIiwKICAgICAgICAgICAgICAgICAgICAg
ImZhc2hpb24iOiJTdHlsZSIsCiAgICAgICAgICAgICAgICAgICAgICJnYXJkZW4iOiJTdHlsZSIs
CiAgICAgICAgICAgICAgICAgICAgICJncmVhdGhvbWVzYW5kZGVzdGluYXRpb25zIjoiR3JlYXQg
SG9tZXMiLAogICAgICAgICAgICAgICAgICAgICAiaGVhbHRoIjoiSGVhbHRoIiwKICAgICAgICAg
ICAgICAgICAgICAgImpvYnMiOiJKb2JzIiwKICAgICAgICAgICAgICAgICAgICAgIm1hZ2F6aW5l
IjoiU3VuZGF5IE1hZ2F6aW5lIiwKICAgICAgICAgICAgICAgICAgICAgIm1vdmllcyI6Ik1vdmll
cyIsCiAgICAgICAgICAgICAgICAgICAgICJtdWx0aW1lZGlhIjoiR2VuZXJhbCIsCiAgICAgICAg
ICAgICAgICAgICAgICJueXJlZ2lvbiI6Ik4uWS4vUmVnaW9uIiwKICAgICAgICAgICAgICAgICAg
ICAgIm9seW1waWNzIjoiT2x5bXBpY3MiLAogICAgICAgICAgICAgICAgICAgICAib3BpbmlvbiI6
Ik9waW5pb24iLAogICAgICAgICAgICAgICAgICAgICAicG9kY2FzdHMiOiJHZW5lcmFsIiwKICAg
ICAgICAgICAgICAgICAgICAgInB1YmxpY2VkaXRvciI6Ik9waW5pb24iLAogICAgICAgICAgICAg
ICAgICAgICAicmVhbGVzdGF0ZSI6IlJlYWwgRXN0YXRlIiwKICAgICAgICAgICAgICAgICAgICAg
InJldXRlcnMiOiJBUC9SZXV0ZXJzIiwKICAgICAgICAgICAgICAgICAgICAgInNjaWVuY2UiOiJT
Y2llbmNlIiwKICAgICAgICAgICAgICAgICAgICAgInNwb3J0cyI6IlNwb3J0cyIsCiAgICAgICAg
ICAgICAgICAgICAgICJzdHlsZSI6IlN0eWxlIiwKICAgICAgICAgICAgICAgICAgICAgInRlY2hu
b2xvZ3kiOiJUZWNobm9sb2d5IiwKICAgICAgICAgICAgICAgICAgICAgInRoZWF0ZXIiOiJUaGVh
dGVyIiwKICAgICAgICAgICAgICAgICAgICAgInRpbWVzdG9waWNzIjoiVGltZXMgVG9waWNzIiwK
ICAgICAgICAgICAgICAgICAgICAgInRvZGF5c3BhcGVyIjoiR2VuZXJhbCIsCiAgICAgICAgICAg
ICAgICAgICAgICJ0cmF2ZWwiOiJUcmF2ZWwiLAogICAgICAgICAgICAgICAgICAgICAidXMiOiJV
LlMuIiwKICAgICAgICAgICAgICAgICAgICAgIndhc2hpbmd0b24iOiJVLlMuIiwKICAgICAgICAg
ICAgICAgICAgICAgIndlZWtpbnJldmlldyI6IldlZWsgaW4gUmV2aWV3IiwKICAgICAgICAgICAg
ICAgICAgICAgIndvcmxkIjoiV29ybGQifTsKCnZhciB3dF9zY2dBcnJheSAgICA9IHsiZGVzaWdu
IjoiQXJ0IGFuZCBEZXNpZ24iLAogICAgICAgICAgICAgICAgICAgICAiYm94b2ZmaWNlIjoiQm94
IE9mZmljZSIsCiAgICAgICAgICAgICAgICAgICAgICJhdXRvcmV2aWV3cyI6Ik5ldyBDYXJzIiwK
ICAgICAgICAgICAgICAgICAgICAgImNvbGxlY3RpYmxlcyI6IkNvbGxlY3RpYmxlcyIsCiAgICAg
ICAgICAgICAgICAgICAgICJyZXZpZXciOiJTdW5kYXkgQm9vayBSZXZpZXciLAogICAgICAgICAg
ICAgICAgICAgICAiYmVzdHNlbGxlciI6IkJlc3QtU2VsbGVyIExpc3RzIiwKICAgICAgICAgICAg
ICAgICAgICAgImNoYXB0ZXJzIjoiRmlyc3QgQ2hhcHRlcnMiLAogICAgICAgICAgICAgICAgICAg
ICAibWVkaWEiOiJNZWRpYSBhbmQgQWR2ZXJ0aXNpbmciLAogICAgICAgICAgICAgICAgICAgICAi
d29ybGRidXNpbmVzcyI6IldvcmxkIEJ1c2luZXNzIiwKICAgICAgICAgICAgICAgICAgICAgInNt
YWxsYnVzaW5lc3MiOiJTbWFsbCBCdXNpbmVzcyIsCiAgICAgICAgICAgICAgICAgICAgICJ5b3Vy
bW9uZXkiOiJZb3VyIE1vbmV5IiwKICAgICAgICAgICAgICAgICAgICAgInJlc2VhcmNoIjoiUmVz
ZWFyY2giLAogICAgICAgICAgICAgICAgICAgICAibnV0cml0aW9uIjoiRml0bmVzcyBhbmQgTnV0
cml0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgInBvbGljeSI6Ik1vbmV5IGFuZCBQb2xpY3ki
LAogICAgICAgICAgICAgICAgICAgICAidmlld3MiOiJWaWV3cyIsCiAgICAgICAgICAgICAgICAg
ICAgICJndWlkZSI6IkhlYWx0aCBHdWlkZSIsCiAgICAgICAgICAgICAgICAgICAgICJjdXJyZW50
cmVsZWFzZXMiOiJJbiBUaGVhdGVycyIsCiAgICAgICAgICAgICAgICAgICAgICJob21ldmlkZW8i
OiJPbiBEVkQiLAogICAgICAgICAgICAgICAgICAgICAiY3JpdGljc3BpY2tzIjoiQ3JpdGljcyBQ
aWNrIiwKICAgICAgICAgICAgICAgICAgICAgInRoZWNpdHkiOiJUaGUgQ2l0eSIsCiAgICAgICAg
ICAgICAgICAgICAgICJueXJlZ2lvbnNwZWNpYWwyIjoiVGhlIFJlZ2lvbiIsCiAgICAgICAgICAg
ICAgICAgICAgICJueXJlZ2lvbm9waW5pb25zIjoiTlkvUmVnaW9uIE9waW5pb25zIiwKICAgICAg
ICAgICAgICAgICAgICAgImVhcnRoIjoiRW52aXJvbm1lbnQiLAogICAgICAgICAgICAgICAgICAg
ICAic3BhY2UiOiJTcGFjZSBhbmQgQ29zbW9zIiwKICAgICAgICAgICAgICAgICAgICAgImJhc2Vi
YWxsIjoiQmFzZWJhbGwiLAogICAgICAgICAgICAgICAgICAgICAiZm9vdGJhbGwiOiJQcm8gRm9v
dGJhbGwiLAogICAgICAgICAgICAgICAgICAgICAibmNhYWZvb3RiYWxsIjoiQ29sbGVnZSBGb290
YmFsbCIsCiAgICAgICAgICAgICAgICAgICAgICJiYXNrZXRiYWxsIjoiUHJvIEJhc2tldGJhbGwi
LAogICAgICAgICAgICAgICAgICAgICAibmNhYWJhc2tldGJhbGwiOiJDb2xsZWdlIEJhc2tldGJh
bGwiLAogICAgICAgICAgICAgICAgICAgICAiaG9ja2V5IjoiSG9ja2V5IiwKICAgICAgICAgICAg
ICAgICAgICAgInNvY2NlciI6IlNvY2NlciIsCiAgICAgICAgICAgICAgICAgICAgICJnb2xmIjoi
R29sZiIsCiAgICAgICAgICAgICAgICAgICAgICJ0ZW5uaXMiOiJUZW5uaXMiLAogICAgICAgICAg
ICAgICAgICAgICAib3RoZXJzcG9ydHMiOiJPdGhlciBTcG9ydHMiLAogICAgICAgICAgICAgICAg
ICAgICAiZmFzaGlvbiI6IkZhc2hpb24iLAogICAgICAgICAgICAgICAgICAgICAiZGluaW5nIjoi
RGluaW5nIiwKICAgICAgICAgICAgICAgICAgICAgImdhcmRlbiI6IkhvbWUgYW5kIEdhcmRlbiIs
CiAgICAgICAgICAgICAgICAgICAgICJ3ZWRkaW5ncyI6IldlZGRpbmdzIiwKICAgICAgICAgICAg
ICAgICAgICAgInRtYWdhemluZSI6IlQgTWFnYXppbmUiLAogICAgICAgICAgICAgICAgICAgICAi
cGVyc29uYWx0ZWNoIjoiUGVyc29uYWwgVGVjaCIsCiAgICAgICAgICAgICAgICAgICAgICJicm9h
ZHdheSI6IkJyb2Fkd2F5IiwKICAgICAgICAgICAgICAgICAgICAgIm9mZmJyb2Fkd2F5IjoiT2Zm
IEJyb2Fkd2F5IiwKICAgICAgICAgICAgICAgICAgICAgIm9mZm9mZmJyb2Fkd2F5IjoiT2ZmIE9m
ZiBCcm9hZHdheSIsCiAgICAgICAgICAgICAgICAgICAgICJsb25kb24iOiJMb25kb24iLAogICAg
ICAgICAgICAgICAgICAgICAicmV2aWV3cyI6IlJldmlld3MiLAogICAgICAgICAgICAgICAgICAg
ICAid2FzaGluZ3RvbiI6Ildhc2hpbmd0b24iLAogICAgICAgICAgICAgICAgICAgICAiZWR1Y2F0
aW9uIjoiRWR1Y2F0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgImFmcmljYSI6IkFmcmljYSIs
CiAgICAgICAgICAgICAgICAgICAgICJhbWVyaWNhcyI6IkFtZXJpY2FzIiwKICAgICAgICAgICAg
ICAgICAgICAgImFzaWEiOiJBc2lhIFBhY2lmaWMiLAogICAgICAgICAgICAgICAgICAgICAiZXVy
b3BlIjoiRXVyb3BlIiwKICAgICAgICAgICAgICAgICAgICAgIm1pZGRsZWVhc3QiOiJNaWRkbGUg
RWFzdCIsCiAgICAgICAgICAgICAgICAgICAgICJlZGl0b3JpYWxzIjoiRWRpdG9yaWFscyIsCiAg
ICAgICAgICAgICAgICAgICAgICJjb250cmlidXRvcnMiOiJDb250cmlidXRvcnMiLAogICAgICAg
ICAgICAgICAgICAgICAibnlyZWdpb25vcGluaW9ucyI6Ik5ZL1JlZ2lvbiBPcGluaW9ucyIsCiAg
ICAgICAgICAgICAgICAgICAgICJjb21tdW5pdGllcyI6IkNvbW11bml0aWVzIiwKICAgICAgICAg
ICAgICAgICAgICAgImNvbW1lcmNpYWwiOiJDb21tZXJjaWFsIiwKICAgICAgICAgICAgICAgICAg
ICAgInBvZGNhc3RzIjoiUG9kY2FzdHMiLAogICAgICAgICAgICAgICAgICAgICAiZGVhbGJvb2tq
b2JzIjoiRGVhbGJvb2sgSm9icyJ9OwoKLy8gUE9QVUxBVEUgTUVUQSBUQUdTCi8vIEdldCBjb250
ZW50IGdyb3VwCnZhciB3dF9jb250ZW50R3JvdXAgPSBnZXRNZXRhVGFnKCJXVC5jZ19uIik7CnZh
ciB3dF9jZ1RhZzsKaWYgKHd0X2NvbnRlbnRHcm91cCA9PSAiIikgewogIHd0X2NnVGFnID0gZ2V0
TWV0YVRhZygiQ0ciKTsKICB3dF90ZW1wY29udGVudEdyb3VwID0gd3RfY2dBcnJheVt3dF9jZ1Rh
Z107CiAgaWYgKHd0X3RlbXBjb250ZW50R3JvdXAgIT0gdW5kZWZpbmVkKSB7CiAgICB3dF9jb250
ZW50R3JvdXAgPSB3dF90ZW1wY29udGVudEdyb3VwOwogIH0gZWxzZSB7CiAgICB3dF9jb250ZW50
R3JvdXAgPSB3dF9jZ1RhZzsKICB9CiAgaWYgKHd0X2NvbnRlbnRHcm91cCA9PSAiIikgewogICAg
d3RfY29udGVudEdyb3VwID0gZ2V0Q29udGVudEdyb3VwKG55dF91cmwsIG55dF9kb21haW4sIG55
dF9wYXRoKTsKICB9Cn0KCi8vIEdldCBzdWJjb250ZW50IGdyb3VwCnd0X3NjZ1RhZyA9IGdldE1l
dGFUYWcoIlNDRyIpOwp3dF90ZW1wc3ViY29udGVudEdyb3VwID0gd3Rfc2NnQXJyYXlbd3Rfc2Nn
VGFnXTsKaWYgKHd0X3RlbXBzdWJjb250ZW50R3JvdXAgIT0gdW5kZWZpbmVkKSB7CiAgd3Rfc2Nn
VGFnID0gd3RfdGVtcHN1YmNvbnRlbnRHcm91cDsgCn0Kd3Rfc3ViY29udGVudEdyb3VwID0gd3Rf
c2NnVGFnOwoKLy8gVXBkYXRlIGNvbnRlbnQgYW5kIHN1YmNvbnRlbnQgZ3JvdXBzIApoYW5kbGVD
R0V4Y2VwdGlvbnMoKTsKYWRkTWV0YVRhZygiV1QuY2dfbiIsIHd0X2NvbnRlbnRHcm91cCk7CmFk
ZE1ldGFUYWcoIldULmNnX3MiLCB3dF9zdWJjb250ZW50R3JvdXApOwoKLy8gUmVhZCBnZW5lcmlj
IHRhZ3MgZnJvbSBwYWdlCnJlYWRQYWdlVGFncygpOwoKLy8gR2V0IGNvbnRlbnQgc3BlY2lmaWMg
aW5mbwpzZXRDb250ZW50SW5mbygpOwoKLy8gU2V0IHJlZmVycmVyIGluZm8Kc2V0UmVmZXJyZXJJ
bmZvKCk7CgovLyBTZXQgU2VjdGlvbiBGcm9udApzZXRTZWN0aW9uRnJvbnQoKTsKCi8vIFNldCBn
ZGNzaWQgKGRlZmF1bHQgdG8gR2VuZXJhbCBpZiB0aGVyZSBpcyBubyBtYXRjaCkKZ2Rjc2lkID0g
d3RfZGNzaWRBcnJheVt3dF9jb250ZW50R3JvdXBdOwppZiAoZ2Rjc2lkID09IHVuZGVmaW5lZCkg
ewogIGdkY3NpZCA9ICJkY3N5bTU3eXcxMDAwMHMxczhnMGJvb3p0Xzl0MXgiOwp9CgovLyBTZXQg
ZGNzdmlkCnZhciBkY3N2aWQ7CmlmIChkY3N2aWQgIT0gdW5kZWZpbmVkICYmIGRjc3ZpZCAhPSAi
MCIpIHsKICBhZGRNZXRhVGFnKCJXVC5kY3N2aWQiLCBkY3N2aWQpOwp9CgovLyBTZXQgcmVnaXN0
cmF0aW9uIHN0YXR1cwp2YXIgcmVnc3RhdHVzOwppZiAocmVnc3RhdHVzICE9IHVuZGVmaW5lZCkg
ewogIGFkZE1ldGFUYWcoIldULnJ2IiwgKHJlZ3N0YXR1cyA9PSAicmVnaXN0ZXJlZCIpID8gIjEi
IDogIjAiKTsKfQoKLy8gU2V0IGFydGljbGUgaW5mb3JtYXRpb24KdmFyIG1ldGFBcnRpY2xlSWQg
PSBnZXRNZXRhVGFnKCJhcnRpY2xlaWQiKTsKaWYgKG1ldGFBcnRpY2xlSWQgIT0gIiIgJiYgZ2V0
TWV0YVRhZygiV1Quel9ncHN0IikgIT0gIkNvbW1lbnRzIE92ZXJmbG93IikgewogIHNldEFydGlj
bGVJbmZvKG1ldGFBcnRpY2xlSWQpOwp9IGVsc2UgewogIHNldENvbW1lbnRPdmVyZmxvd0luZm8o
bWV0YUFydGljbGVJZCk7Cn0KCi8vIFNldCBwdWIgZGF0ZSByYW5nZTsgTkIgLSB0aGlzIG5lZWRz
IHRvIGJlIGFmdGVyIHNldEFydGljbGVJbmZvCnZhciBwdWJfZGF0ZSA9IGdldE1ldGFUYWcoIldU
LnpfcHVkIik7CmlmIChwdWJfZGF0ZSAhPSAiIikgewogIHNldFB1YkRhdGVJbmZvKHB1Yl9kYXRl
KTsKfQoKLy8gU2V0IGludGVyYWN0aXZlIGluZm9ybWF0aW9uCnZhciB0b21NZXRhVGFnID0gZ2V0
TWV0YVRhZygidG9tIik7CmlmICh0b21NZXRhVGFnID09ICJpbnRlcmFjdGl2ZV9ncmFwaGljIiB8
fCB0b21NZXRhVGFnID09ICJpbnRlcmFjdGl2ZV9mZWF0dXJlIikgewogIHNldEludGVyYWN0aXZl
R3JhcGhpY0luZm8oKTsKfQoKLy8gU2V0IGltYWdlcGFnZXMgCmlmICgvXlwvaW1hZ2VwYWdlcy8u
dGVzdChueXRfcGF0aCkpIHsKICBhZGRNZXRhVGFnKCJQVCIsICJNdWx0aW1lZGlhIik7CiAgYWRk
TWV0YVRhZygiUFNUIiwgIkltYWdlIik7Cn0KCi8vIFNldCBzbGlkZXNob3cgaW5mb3JtYXRpb24K
dmFyIHRvbU1ldGFUYWcgPSBnZXRNZXRhVGFnKCJ0b20iKTsKaWYgKCh0b21NZXRhVGFnID09ICJT
bGlkZXNob3ciKSB8fCAoL15cL3NsaWRlc2hvd1wvWzAtOV1bMC05XVswLTldWzAtOV1cL1swLTFd
WzAtOV1cL1swLTNdWzAtOV1cLy8udGVzdChueXRfcGF0aCkpKSB7CiAgc2V0U2xpZGVzaG93SW5m
bygpOwp9CgovLyBTZXQgY2FtcGFpZ24gaW5mb3JtYXRpb24KdmFyIG1ldGFFbWFpbENhbXBJZCA9
IGdldFF1ZXJ5UGFyYW1ldGVyKCJlbWMiKTsKYWRkTWV0YVRhZygiV1QubWNfaWQiLCBtZXRhRW1h
aWxDYW1wSWQpOwoKdmFyIGV4dGVybmFsQ2FtcElkID0gZ2V0UXVlcnlQYXJhbWV0ZXIoImV4Y2Ft
cCIpOwppZiAoZXh0ZXJuYWxDYW1wSWQgIT0gIiIpIHsKICBhZGRNZXRhVGFnKCJXVC5tY19pZCIs
IGV4dGVybmFsQ2FtcElkKTsKICBhZGRNZXRhVGFnKCJXVC5zcmNoIiwgIjEiKTsKfQoKaWYgKGdl
dE1ldGFUYWcoIldULm1jX2lkIikgIT0gIiIpIHsKICBhZGRNZXRhVGFnKCJXVC5tY19ldiIsICJj
bGljayIpOyAKfQoKLy8gU2V0IG5vX2ludGVyc3RpdGlhbCBwYXJhbQppZiAocXVlcnlQYXJhbWV0
ZXJFeGlzdHMoIm5vX2ludGVyc3RpdGlhbCIpKSB7CiAgYWRkTWV0YVRhZygiV1Quel9kaXJsbmsi
LCAiMSIpOwp9CgovLyBTZXQgdGhlIGNsaWNrIHRyYWNraW5nIHZhcmlhYmxlIGZvciBzcGVjaWZp
YyBwYWdlcwpzZXRUcmFja0V2ZW50cygpOwoKLy8gU2V0IG9uc2l0ZSBzZWFyY2ggaW5mb3JtYXRp
b24Kc2V0U2VhcmNoSW5mbygpOwoKLy8gU2V0IGRlZmF1bHQgaW5mb3JtYXRpb24Kc2V0RGVmYXVs
dFRhZ3MoKTsKCi8vIEluY2x1ZGUgV2ViVHJlbmRzIHd0aW5pdC5qcwp2YXIgd3Rpbml0RmlsZSA9
IGpzX2hvc3QrInd0aW5pdC5qcyI7CmluY2x1ZGVGaWxlKHd0aW5pdEZpbGUpOwoKLy8gSW5jbHVk
ZSBXZWJUcmVuZHMgd3RiYXNlLmpzCnZhciB3dGJhc2VGaWxlID0ganNfaG9zdCsid3RiYXNlLmpz
IjsKaW5jbHVkZUZpbGUod3RiYXNlRmlsZSk7CgoKCi8vIEZVTkNUSU9OUwpmdW5jdGlvbiBnZXRD
b250ZW50R3JvdXAod3RfdXJsLCB3dF9kb21haW4sIHd0X3BhdGgpIHsKCiAgdmFyIGNvbnRlbnRH
cm91cCA9IGdldE1ldGFUYWcoImNvbnRlbnRHcm91cCIpOwogIGlmIChjb250ZW50R3JvdXAgPT0g
IiIpIHsKCiAgICAvLyBob21lcGFnZQogICAgaWYoL15odHRwOlwvXC8od3d3XC4pPyhueXRpbWVz
fHRpbWVzKVwuY29tXC8oXC98aW5kZXhcLmh0bWx8cGFnZXNcL3xwYWdlc1wvcGFydG5lcnNcL2Fv
bFwvaG9tZXBhZ2VcL3x5clwvbW9cL2RheVwvKT8kLy50ZXN0KHd0X3VybCkpICB7CiAgICAgIGNv
bnRlbnRHcm91cCA9ICJIb21lcGFnZSI7CgogICAgLy8gd29ybGQKICAgIH0gZWxzZSBpZiAoL1wv
WzAtOV1bMC05XVswLTldWzAtOV1cL1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL1xiKHdvcmxkfGlu
dGVybmF0aW9uYWwpXGJcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvaW50ZXJu
YXRpb25hbFwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9cL3BhY2thZ2VzXC9odG1s
XC9cYih3b3JsZHxpbnRlcm5hdGlvbmFsKVxiXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAg
fHwgL15cL1xiKHBhZ2VzfHJlZnxyZXV0ZXJzfGFwb25saW5lfGNmcilcYlwvd29ybGRcLy8udGVz
dCh3dF9wYXRoKSkgewogICAgICBjb250ZW50R3JvdXAgPSAiV29ybGQiOwoKICAgIC8vIHBvbGl0
aWNzCiAgICB9IGVsc2UgaWYgKC9cL1swLTldWzAtOV1bMC05XVswLTldXC9bMC0xXVswLTldXC9b
MC0zXVswLTldXC9cYih1c1wvcG9saXRpY3N8cG9saXRpY3MpXGJcLy8udGVzdCh3dF9wYXRoKQog
ICAgICAgICAgICB8fCAvXC9wYWNrYWdlc1wvaHRtbFwvcG9saXRpY3NcLy8udGVzdCh3dF9wYXRo
KQogICAgICAgICAgICB8fCAvXlwvcGFnZXNcL3BvbGl0aWNzXC8vLnRlc3Qod3RfcGF0aCkKICAg
ICAgICAgICAgfHwgL15cL3lyXC9tb1wvZGF5XC9wb2xpdGljc1wvLy50ZXN0KHd0X3BhdGgpCiAg
ICAgICAgICAgIHx8IC9eXC9wb2xpdGljc1wvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8
IC9eXC9yZWZcL3BvbGl0aWNzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3Jl
ZlwvdXNcL3BvbGl0aWNzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL1wvZWxlY3Rp
b24tZ3VpZGVcLy8udGVzdCh3dF9wYXRoKSkgewogICAgICBjb250ZW50R3JvdXAgPSAiUG9saXRp
Y3MiOwoKICAgIC8vIHVzCiAgICB9IGVsc2UgaWYgKC9cL1swLTldWzAtOV1bMC05XVswLTldXC9b
MC0xXVswLTldXC9bMC0zXVswLTldXC9cYih1c3xlZHVjYXRpb258d2FzaGluZ3RvbnxuYXRpb25h
bClcYlwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9cL3BhY2thZ2VzXC9odG1sXC9c
Yih1c3xlZHVjYXRpb258d2FzaGluZ3RvbnxuYXRpb25hbClcYlwvLy50ZXN0KHd0X3BhdGgpCiAg
ICAgICAgICAgIHx8IC9eXC9wYWdlc1wvXGIodXN8ZWR1Y2F0aW9ufHdhc2hpbmd0b258bmF0aW9u
YWwpXGJcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwveXJcL21vXC9kYXlcL1xi
KHVzfGVkdWNhdGlvbnx3YXNoaW5ndG9ufG5hdGlvbmFsKVxiXC8vLnRlc3Qod3RfcGF0aCkKICAg
ICAgICAgICAgfHwgL15cL1xiKHVzfGVkdWNhdGlvbnx3YXNoaW5ndG9ufG5hdGlvbmFsKVxiXC8v
LnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL2Fwb25saW5lXC91c1wvLy50ZXN0KHd0
X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC9yZXV0ZXJzXC91c1wvLy50ZXN0KHd0X3BhdGgpCiAg
ICAgICAgICAgIHx8IC9eXC9yZWZcL1xiKHVzfGVkdWNhdGlvbnx3YXNoaW5ndG9ufG5hdGlvbmFs
KVxiXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL2NxXC8vLnRlc3Qod3RfcGF0
aCkpIHsKICAgICAgY29udGVudEdyb3VwID0gIlUuUy4iOwoKICAgIC8vIG55IHJlZ2lvbiAtIGNo
ZWNrIHRoaXMgYmVmb3JlIG9waW5pb24KICAgIH0gZWxzZSBpZiAoL1wvWzAtOV1bMC05XVswLTld
WzAtOV1cL1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL255cmVnaW9uXC8vLnRlc3Qod3RfcGF0aCkK
ICAgICAgICAgICAgfHwgL15cL3BhY2thZ2VzXC9raHRtbFwvWzAtOV1bMC05XVswLTldWzAtOV1c
L1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL255cmVnaW9uXC8vLnRlc3Qod3RfcGF0aCkKICAgICAg
ICAgICAgfHwgL1wvcGFja2FnZXNcL2h0bWxcL255cmVnaW9uXC8vLnRlc3Qod3RfcGF0aCkKICAg
ICAgICAgICAgfHwgL15cL3BhZ2VzXC9ueXJlZ2lvblwvLy50ZXN0KHd0X3BhdGgpKSB7CiAgICAg
IGNvbnRlbnRHcm91cCA9ICJOLlkuL1JlZ2lvbiI7CgogICAgLy8gYnVzaW5lc3MKICAgIH0gZWxz
ZSBpZiAoL1wvWzAtOV1bMC05XVswLTldWzAtOV1cL1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL2J1
c2luZXNzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL1wvcGFja2FnZXNcL2h0bWxc
L2J1c2luZXNzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3BhZ2VzXC9idXNp
bmVzc1wvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC95clwvbW9cL2RheVwvYnVz
aW5lc3NcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvYnVzaW5lc3NcLy8udGVz
dCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvYXBvbmxpbmVcL2J1c2luZXNzXC8vLnRlc3Qo
d3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3JldXRlcnNcL2J1c2luZXNzXC8vLnRlc3Qod3Rf
cGF0aCkKICAgICAgICAgICAgfHwgL15cL3JlZlwvYnVzaW5lc3NcLy8udGVzdCh3dF9wYXRoKQog
ICAgICAgICAgICB8fCAvXlwvYWxsYnVzaW5lc3NcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAg
ICB8fCAvXlwvaW5jX2NvbVwvLy50ZXN0KHd0X3BhdGgpKSB7CiAgICAgIGNvbnRlbnRHcm91cCA9
ICJCdXNpbmVzcyI7CgogICAgLy8gdGVjaG5vbG9neQogICAgfSBlbHNlIGlmICh3dF9kb21haW4g
PT0gInRlY2gubnl0aW1lcy5jb20iCiAgICAgICAgICAgIHx8IHd0X2RvbWFpbiA9PSAidGVjaDIu
bnl0aW1lcy5jb20iCiAgICAgICAgICAgIHx8IHd0X2RvbWFpbiA9PSAiZG93bmxvYWQubnl0aW1l
cy5jb20iICAgIAogICAgICAgICAgICB8fCAvXC9bMC05XVswLTldWzAtOV1bMC05XVwvWzAtMV1b
MC05XVwvWzAtM11bMC05XVwvdGVjaG5vbG9neVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAg
IHx8IC9cL3BhY2thZ2VzXC9odG1sXC90ZWNobm9sb2d5XC8vLnRlc3Qod3RfcGF0aCkKICAgICAg
ICAgICAgfHwgL15cL3BhZ2VzXC90ZWNobm9sb2d5XC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAg
ICAgfHwgL15cL3RlY2hcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvYXBvbmxp
bmVcL3RlY2hub2xvZ3lcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcmV1dGVy
c1wvdGVjaG5vbG9neVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC9yZWZcL3Rl
Y2hub2xvZ3lcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcGFnZXNcL2NuZXRc
Ly8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvY25ldFwvLy50ZXN0KHd0X3BhdGgp
CiAgICAgICAgICAgIHx8IC9eXC9wYWlkY29udGVudFwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAg
ICAgIHx8IC9eXC9pZGdcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAoL15cL2dzdFwv
ZnVsbHBhZ2VcLmh0bWwvLnRlc3Qod3RfcGF0aCkgJiYgZ2V0UXVlcnlQYXJhbWV0ZXIoInNlYyIp
ID09ICJ0ZWNobm9sb2d5IikpIHsKICAgICAgY29udGVudEdyb3VwID0gIlRlY2hub2xvZ3kiOwoK
ICAgIC8vIHNjaWVuY2UKICAgIH0gZWxzZSBpZiAoL1wvWzAtOV1bMC05XVswLTldWzAtOV1cL1sw
LTFdWzAtOV1cL1swLTNdWzAtOV1cL3NjaWVuY2VcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAg
ICB8fCAvXC9wYWNrYWdlc1wvaHRtbFwvc2NpZW5jZVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAg
ICAgIHx8IC9eXC9yZWZcL3NjaWVuY2VcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAv
XlwvcGFnZXNcL3NjaWVuY2VcLy8udGVzdCh3dF9wYXRoKSkgewogICAgICBjb250ZW50R3JvdXAg
PSAiU2NpZW5jZSI7CiAgCiAgICAvLyBoZWFsdGgKICAgIH0gZWxzZSBpZiAod3RfZG9tYWluID09
ICJoZWFsdGgubnl0aW1lcy5jb20iCiAgICAgICAgICAgIHx8IC9cL1swLTldWzAtOV1bMC05XVsw
LTldXC9bMC0xXVswLTldXC9bMC0zXVswLTldXC9oZWFsdGhcLy8udGVzdCh3dF9wYXRoKQogICAg
ICAgICAgICB8fCAvXC9wYWNrYWdlc1wvaHRtbFwvaGVhbHRoXC8vLnRlc3Qod3RfcGF0aCkKICAg
ICAgICAgICAgfHwgL15cL3BhZ2VzXC9oZWFsdGhcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAg
ICB8fCAvXlwvYXBvbmxpbmVcL2hlYWx0aFwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8
IC9eXC9yZXV0ZXJzXC9oZWFsdGhcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwv
cmVmXC9oZWFsdGhcLy8udGVzdCh3dF9wYXRoKSkgewogICAgICBjb250ZW50R3JvdXAgPSAiSGVh
bHRoIjsKIAogICAgLy8gc3BvcnRzCiAgICB9IGVsc2UgaWYgKC9cL1swLTldWzAtOV1bMC05XVsw
LTldXC9bMC0xXVswLTldXC9bMC0zXVswLTldXC9zcG9ydHNcLy8udGVzdCh3dF9wYXRoKQogICAg
ICAgICAgICB8fCAvXC9wYWNrYWdlc1wvaHRtbFwvc3BvcnRzXC8vLnRlc3Qod3RfcGF0aCkKICAg
ICAgICAgICAgfHwgL15cL3lyXC9tb1wvZGF5XC9zcG9ydHNcLy8udGVzdCh3dF9wYXRoKQogICAg
ICAgICAgICB8fCAvXlwvc3BvcnRzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15c
L3BhZ2VzXC9zcG9ydHNcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvYXBvbmxp
bmVcL3Nwb3J0c1wvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC9yZXV0ZXJzXC9z
cG9ydHNcLy8udGVzdCh3dF9wYXRoKSkgewogICAgICBjb250ZW50R3JvdXAgPSAiU3BvcnRzIjsK
IAogICAgLy8gb3BpbmlvbgogICAgfSBlbHNlIGlmICgvXC9bMC05XVswLTldWzAtOV1bMC05XVwv
WzAtMV1bMC05XVwvWzAtM11bMC05XVwvb3BpbmlvblwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAg
ICAgIHx8IC9cL3BhY2thZ2VzXC9odG1sXC9vcGluaW9uXC8vLnRlc3Qod3RfcGF0aCkKICAgICAg
ICAgICAgfHwgL15cL3BhZ2VzXC9vcGluaW9uXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAg
fHwgL15cL3BhZ2VzXC9yZWFkZXJzb3BpbmlvbnNcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAg
ICB8fCAvXlwvb3BpbmlvblwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC90b3Bc
L29waW5pb25cLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcmVmXC9vcGluaW9u
XC8vLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdyb3VwID0gIk9waW5pb24iOwogCiAg
ICAvLyBib29rcwogICAgfSBlbHNlIGlmICgvXC9bMC05XVswLTldWzAtOV1bMC05XVwvWzAtMV1b
MC05XVwvWzAtM11bMC05XVwvYm9va3NcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAv
XC9wYWNrYWdlc1wvaHRtbFwvYm9va3NcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAv
XlwvcGFnZXNcL2Jvb2tzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3JlZlwv
Ym9va3NcLy8udGVzdCh3dF9wYXRoKSkgewogICAgICBjb250ZW50R3JvdXAgPSAiQm9va3MiOwoK
ICAgIC8vIGRhbmNlCiAgICB9IGVsc2UgaWYgKC9cL1swLTldWzAtOV1bMC05XVswLTldXC9bMC0x
XVswLTldXC9bMC0zXVswLTldXC9hcnRzXC9kYW5jZVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAg
ICAgIHx8IC9cL3BhY2thZ2VzXC9odG1sXC9kYW5jZVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAg
ICAgIHx8IC9eXC9wYWdlc1wvYXJ0c1wvZGFuY2VcLy8udGVzdCh3dF9wYXRoKSkgewogICAgICBj
b250ZW50R3JvdXAgPSAiRGFuY2UiOwoKICAgIC8vIG1vdmllcwogICAgfSBlbHNlIGlmICh3dF9k
b21haW4gPT0gIm1vdmllcy5ueXRpbWVzLmNvbSIKICAgICAgICAgICAgfHwgd3RfZG9tYWluID09
ICJtb3ZpZXMyLm55dGltZXMuY29tIgogICAgICAgICAgICB8fCAvXC9bMC05XVswLTldWzAtOV1b
MC05XVwvWzAtMV1bMC05XVwvWzAtM11bMC05XVwvbW92aWVzXC8vLnRlc3Qod3RfcGF0aCkKICAg
ICAgICAgICAgfHwgL1wvcGFja2FnZXNcL2h0bWxcL21vdmllc1wvLy50ZXN0KHd0X3BhdGgpCiAg
ICAgICAgICAgIHx8IC9eXC9wYWdlc1wvbW92aWVzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAg
ICAgfHwgL15cL3JlZlwvbW92aWVzXC8vLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdy
b3VwID0gIk1vdmllcyI7CgogICAgLy8gbXVzaWMKICAgIH0gZWxzZSBpZiAoL1wvWzAtOV1bMC05
XVswLTldWzAtOV1cL1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL2FydHNcL211c2ljXC8vLnRlc3Qo
d3RfcGF0aCkKICAgICAgICAgICAgfHwgL1wvcGFja2FnZXNcL2h0bWxcL211c2ljXC8vLnRlc3Qo
d3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3BhZ2VzXC9hcnRzXC9tdXNpY1wvLy50ZXN0KHd0
X3BhdGgpKSB7CiAgICAgIGNvbnRlbnRHcm91cCA9ICJNdXNpYyI7CgogICAgLy8gdGVsZXZpc2lv
bgogICAgfSBlbHNlIGlmICgvXC9bMC05XVswLTldWzAtOV1bMC05XVwvWzAtMV1bMC05XVwvWzAt
M11bMC05XVwvYXJ0c1wvdGVsZXZpc2lvblwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8
IC9cL3BhY2thZ2VzXC9odG1sXC90ZWxldmlzaW9uXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAg
ICAgfHwgL15cL3BhZ2VzXC9hcnRzXC90ZWxldmlzaW9uXC8vLnRlc3Qod3RfcGF0aCkpIHsKICAg
ICAgY29udGVudEdyb3VwID0gIlRWIjsKIAogICAgLy8gdGhlYXRlcgogICAgfSBlbHNlIGlmICh3
dF9kb21haW4gPT0gInRoZWF0ZXIubnl0aW1lcy5jb20iCiAgICAgICAgICAgIHx8IHd0X2RvbWFp
biA9PSAidGhlYXRlcjIubnl0aW1lcy5jb20iCiAgICAgICAgICAgIHx8IC9cL1swLTldWzAtOV1b
MC05XVswLTldXC9bMC0xXVswLTldXC9bMC0zXVswLTldXC90aGVhdGVyXC8vLnRlc3Qod3RfcGF0
aCkKICAgICAgICAgICAgfHwgL1wvbWVtXC90aGVhdGVyXC8vLnRlc3Qod3RfcGF0aCkKICAgICAg
ICAgICAgfHwgL1wvbWVtXC90aWNrZXR3YXRjaFwuaHRtbC8udGVzdCh3dF9wYXRoKQogICAgICAg
ICAgICB8fCAvXC9wYWNrYWdlc1wvaHRtbFwvdGhlYXRlclwvLy50ZXN0KHd0X3BhdGgpCiAgICAg
ICAgICAgIHx8IC9eXC9wYWdlc1wvdGhlYXRlclwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAg
IHx8IC9eXC9yZWFkZXJzcmV2aWV3c1wvdGhlYXRlclwvLy50ZXN0KHd0X3BhdGgpKSB7CiAgICAg
IGNvbnRlbnRHcm91cCA9ICJUaGVhdGVyIjsKCiAgICAvLyBhcnQgLSBtdXN0IGFwcGVhciBhZnRl
ciBpdHMgc3Vic2VjdGlvbnMKICAgIH0gZWxzZSBpZiAoL1wvWzAtOV1bMC05XVswLTldWzAtOV1c
L1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL2FydHNcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAg
ICB8fCAvXC9wYWNrYWdlc1wvaHRtbFwvYXJ0c1wvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAg
IHx8IC9eXC9hcG9ubGluZVwvYXJ0c1wvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9e
XC9yZXV0ZXJzXC9hcnRzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3BhZ2Vz
XC9hcnRzXC8vLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdyb3VwID0gIkFydHMiOwoK
ICAgIC8vIHRzdHlsZSAtIGNoZWNrIHRoaXMgYmVmb3JlIHN0eWxlCiAgICB9IGVsc2UgaWYgKC9c
L1swLTldWzAtOV1bMC05XVswLTldXC9bMC0xXVswLTldXC9bMC0zXVswLTldXC9zdHlsZVwvXGIo
dHx0bWFnYXppbmUpXGJcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcGFnZXNc
L3N0eWxlXC8odHx0bWFnYXppbmUpXC8vLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdy
b3VwID0gIlQ6U3R5bGUiOwogCiAgICAvLyBzdHlsZQogICAgfSBlbHNlIGlmICgvXC9bMC05XVsw
LTldWzAtOV1bMC05XVwvWzAtMV1bMC05XVwvWzAtM11bMC05XVwvXGIoc3R5bGV8ZmFzaGlvbnxk
aW5pbmd8Z2FyZGVuKVxiXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL1wvcGFja2Fn
ZXNcL2h0bWxcL1xiKHN0eWxlfGZhc2hpb258ZGluaW5nfGdhcmRlbilcYlwvLy50ZXN0KHd0X3Bh
dGgpCiAgICAgICAgICAgIHx8IC9eXC9wYWdlc1wvXGIoc3R5bGV8ZmFzaGlvbnxkaW5pbmd8Z2Fy
ZGVuKVxiXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3JlZlwvZmFzaGlvblwv
Ly50ZXN0KHd0X3BhdGgpKSB7CiAgICAgIGNvbnRlbnRHcm91cCA9ICJTdHlsZSI7CgogICAgLy8g
dHJhdmVsCiAgICB9IGVsc2UgaWYgKHd0X2RvbWFpbiA9PSAidHJhdmVsLm55dGltZXMuY29tIgog
ICAgICAgICAgICB8fCB3dF9kb21haW4gPT0gInRyYXZlbDIubnl0aW1lcy5jb20iCiAgICAgICAg
ICAgIHx8IC9cL1swLTldWzAtOV1bMC05XVswLTldXC9bMC0xXVswLTldXC9bMC0zXVswLTldXC90
cmF2ZWxcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcGFnZXNcL3RyYXZlbFwv
Ly50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC90cmF2ZWxcLy8udGVzdCh3dF9wYXRo
KQogICAgICAgICAgICB8fCAvXlwvbWFwXC90cmF2ZWxcLy8udGVzdCh3dF9wYXRoKQogICAgICAg
ICAgICB8fCAvXlwvcGFja2FnZXNcL2h0bWxcL3RyYXZlbFwvLy50ZXN0KHd0X3BhdGgpCiAgICAg
ICAgICAgIHx8IC9eXC9nc3RcL3RyYXZlbFwvdHJhdnNlYXJjaFwuaHRtbC8udGVzdCh3dF9wYXRo
KQogICAgICAgICAgICB8fCAoL15cL2dzdFwvZnVsbHBhZ2VcLmh0bWwvLnRlc3Qod3RfcGF0aCkg
JiYgZ2V0UXVlcnlQYXJhbWV0ZXIoInNlYyIpID09ICJ0cmF2ZWwiKSkgewogICAgICBjb250ZW50
R3JvdXAgPSAiVHJhdmVsIjsKIAogICAgLy8gam9icwogICAgfSBlbHNlIGlmICh3dF9kb21haW4g
PT0gImpvYm1hcmtldC5ueXRpbWVzLmNvbSIKICAgICAgICAgICAgfHwgd3RfZG9tYWluID09ICJz
YWxhcnkubnl0aW1lcy5jb20iCiAgICAgICAgICAgIHx8IC9cL3BhY2thZ2VzXC9odG1sXC9qb2Jz
XC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3BhZ2VzXC9qb2JzXC8vLnRlc3Qo
d3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL21hcmtldGluZ1wvam9ibWFya2V0XC8vLnRlc3Qo
d3RfcGF0aCkpIHsKICAgICAgY29udGVudEdyb3VwID0gIkpvYnMiOwogICAgCiAgICAvLyBncmVh
dGhvbWVzCiAgICB9IGVsc2UgaWYgKC9cL1swLTldWzAtOV1bMC05XVswLTldXC9bMC0xXVswLTld
XC9bMC0zXVswLTldXC9cYihyZWFsZXN0YXRlXC9ncmVhdGhvbWVzfGdyZWF0aG9tZXNhbmRkZXN0
aW5hdGlvbnMpXGJcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcGFnZXNcL2dy
ZWF0LWhvbWVzLWFuZC1kZXN0aW5hdGlvbnNcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8
fCAvXlwvcGFnZXNcL2dyZWF0aG9tZXNcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAv
XlwvdG9wXC9ncmVhdC1ob21lcy1hbmQtZGVzdGluYXRpb25zXC8vLnRlc3Qod3RfcGF0aCkpIHsK
ICAgICAgY29udGVudEdyb3VwID0gIlJlYWwgRXN0YXRlIjsKCiAgICAvLyByZWFsZXN0YXRlCiAg
ICB9IGVsc2UgaWYgKHd0X2RvbWFpbiA9PSAicmVhbGVzdGF0ZS5ueXRpbWVzLmNvbSIKICAgICAg
ICAgICAgfHwgL1wvWzAtOV1bMC05XVswLTldWzAtOV1cL1swLTFdWzAtOV1cL1swLTNdWzAtOV1c
L3JlYWxlc3RhdGVcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXC9wYWNrYWdlc1wv
aHRtbFwvcmVhbGVzdGF0ZVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC9wYWdl
c1wvcmVhbGVzdGF0ZVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC9yZWZcL3Jl
YWxlc3RhdGVcLy8udGVzdCh3dF9wYXRoKSkgewogICAgICBjb250ZW50R3JvdXAgPSAiUmVhbCBF
c3RhdGUiOwoKICAgIC8vIGF1dG9zCiAgICB9IGVsc2UgaWYgKHd0X2RvbWFpbiA9PSAiYXV0b3Mu
bnl0aW1lcy5jb20iCiAgICAgICAgICAgIHx8IHd0X2RvbWFpbiA9PSAiY29sbGVjdGlibGVjYXJz
Lm55dGltZXMuY29tIgogICAgICAgICAgICB8fCAvXC9bMC05XVswLTldWzAtOV1bMC05XVwvWzAt
MV1bMC05XVwvWzAtM11bMC05XVwvYXV0b21vYmlsZXNcLy8udGVzdCh3dF9wYXRoKQogICAgICAg
ICAgICB8fCAvXlwvcGFnZXNcL2F1dG9tb2JpbGVzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAg
ICAgfHwgL15cL3JlZlwvYXV0b21vYmlsZXNcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8
fCAvXlwvYXV0b21vYmlsZXNcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvYXV0
b3NcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcGFja2FnZXNcL2h0bWxcL2F1
dG9tb2JpbGVzXC8vLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdyb3VwID0gIkF1dG9z
IjsKCiAgICAvLyBzZWFyY2ggCiAgICB9IGVsc2UgaWYgKC9eXC9zZWFyY2hcL3F1ZXJ5Ly50ZXN0
KHd0X3BhdGgpKSB7CiAgICAgIGNvbnRlbnRHcm91cCA9ICJTZWFyY2giOwoKICAgIC8vIGNsYXNz
aWZpZWRzCiAgICB9IGVsc2UgaWYgKHd0X2RvbWFpbiA9PSAibGlzdGluZ3Mubnl0aW1lcy5jb20i
CiAgICAgICAgICAgIHx8IHd0X2RvbWFpbiA9PSAicGxhY2VhZC5ueXRpbWVzLmNvbSIKICAgICAg
ICAgICAgfHwgL15cL3RvcFwvY2xhc3NpZmllZHNcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAg
ICB8fCAvXlwvZ3N0XC9wZXJzb25hbHMuaHRtbC8udGVzdCh3dF9wYXRoKSkgewogICAgICBjb250
ZW50R3JvdXAgPSAiQ2xhc3NpZmllZHMiOwoKICAgIC8vIHZpZGVvCiAgICB9IGVsc2UgaWYgKHd0
X2RvbWFpbiA9PSAidmlkZW8ub24ubnl0aW1lcy5jb20iKSB7CiAgICAgIGNvbnRlbnRHcm91cCA9
ICJWaWRlbyI7CgogICAgLy8gdGltZXN0b3BpY3MKICAgIH0gZWxzZSBpZiAoL15cL3RvcFwvcmVm
ZXJlbmNlXC90aW1lc3RvcGljc1wvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC90
b3BcL25ld3NcL2J1c2luZXNzXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3Rv
cFwvbmV3c1wvaW50ZXJuYXRpb25hbFwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9e
XC90b3BcL25ld3NcL25hdGlvbmFsXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15c
L3RvcFwvY2xhc3NpZmllZHNcL3JlYWxlc3RhdGVcLy8udGVzdCh3dF9wYXRoKSkgewogICAgICBj
b250ZW50R3JvdXAgPSAiVGltZXMgVG9waWNzIjsKCiAgICAvLyBlbWFpbCB0aGlzCiAgICB9IGVs
c2UgaWYgKC9eXC9tZW1cL2VtYWlsdGhpcy5odG1sLy50ZXN0KHd0X3BhdGgpKSB7CiAgICAgIGNv
bnRlbnRHcm91cCA9ICJFbWFpbCBUaGlzIjsKCiAgICAvLyBuZXdzdHJhY2tlciAKICAgIH0gZWxz
ZSBpZiAoL15cL21lbVwvdG50Lmh0bWwvLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdy
b3VwID0gIk5ld3MgVHJhY2tlciI7CiAKICAgIC8vIG1lbWJlcmNlbnRlcgogICAgfSBlbHNlIGlm
ICgvXlwvbWVtYmVyY2VudGVyXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL21l
bVwvZW1haWxcLmh0bWwvLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL21lbVwvcHJv
ZmlsZVwuaHRtbC8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcmVmXC9tZW1iZXJj
ZW50ZXJcLy8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvYXV0aFwvbG9naW4vLnRl
c3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL2ZvcmdvdC8udGVzdCh3dF9wYXRoKQogICAg
ICAgICAgICB8fCAvXlwvY29tbWVyY2VcL2pzcFwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAg
IHx8IC9eXC9nc3RcLyhyZWdpfGZvcmdvdHxjb25maXJtZW18YmV0YW1haWx8c2lnbm91dHxwdXJj
aGFzZV9nYylcLmh0bWwvLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdyb3VwID0gIk1l
bWJlciBDZW50ZXIiOwogCiAgICAvLyBjcm9zc3dvcmRzZ2FtZXMKICAgIH0gZWxzZSBpZiAoL1wv
WzAtOV1bMC05XVswLTldWzAtOV1cL1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL2Nyb3Nzd29yZHNc
Ly8udGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcGFnZXNcL2Nyb3Nzd29yZHNcLy8u
dGVzdCh3dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcmVmXC9jcm9zc3dvcmRzXC8vLnRlc3Qo
d3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3ByZW1pdW1cL3h3b3JkXC8vLnRlc3Qod3RfcGF0
aCkKICAgICAgICAgICAgfHwgL15cL3ByZW1pdW1wcm9kdWN0c1wvY3Jvc3N3b3Jkc1wvaW5kZXgu
aHRtbC8udGVzdCh3dF9wYXRoKSkgewogICAgICBjb250ZW50R3JvdXAgPSAiQ3Jvc3N3b3Jkcy9H
YW1lcyI7CgogICAgLy8gc3VuZGF5bWFnYXppbmUKICAgIH0gZWxzZSBpZiAoL1wvWzAtOV1bMC05
XVswLTldWzAtOV1cL1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL21hZ2F6aW5lXC8vLnRlc3Qod3Rf
cGF0aCkKICAgICAgICAgICAgfHwgL15cL3BhZ2VzXC9tYWdhemluZVwvLy50ZXN0KHd0X3BhdGgp
CiAgICAgICAgICAgIHx8IC9eXC9yZWZcL21hZ2F6aW5lXC8vLnRlc3Qod3RfcGF0aCkKICAgICAg
ICAgICAgfHwgL15cL3BhY2thZ2VzXC9odG1sXC9tYWdhemluZVwvLy50ZXN0KHd0X3BhdGgpKSB7
CiAgICAgIGNvbnRlbnRHcm91cCA9ICJTdW5kYXkgTWFnYXppbmUiOwoKICAgIC8vIG1vc3Rwb3B1
bGFyCiAgICB9IGVsc2UgaWYgKC9eXC9nc3RcL21vc3QocG9wdWxhcnxlbWFpbGVkfGJsb2dnZWR8
c2VhcmNoZWR8cG9wdWxhcm1vdmllcylcLmh0bWwvLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29u
dGVudEdyb3VwID0gIk1vc3QgUG9wdWxhciI7CgogICAgLy8gbGVhcm5pbmduZXR3b3JrCiAgICB9
IGVsc2UgaWYgKC9eXC9sZWFybmluZ1wvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9c
L3BhY2thZ2VzXC9odG1sXC9sZWFybmluZ1wvLy50ZXN0KHd0X3BhdGgpKSB7CiAgICAgIGNvbnRl
bnRHcm91cCA9ICJMZWFybmluZyBOZXR3b3JrIjsKCiAgICAvLyBrbm93bGVkZ2VuZXR3b3JrCiAg
ICB9IGVsc2UgaWYgKHd0X2RvbWFpbiA9PSAiY29sbGVnZS5ueXRpbWVzLmNvbSIKICAgICAgICAg
ICAgfHwgL1wvcGFja2FnZXNcL2h0bWxcL2NvbGxlZ2VcLy8udGVzdCh3dF9wYXRoKQogICAgICAg
ICAgICB8fCAvXlwvY29sbGVnZVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9cL1sw
LTldWzAtOV1bMC05XVswLTldXC9bMC0xXVswLTldXC9bMC0zXVswLTldXC9jb2xsZWdlXC8vLnRl
c3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdyb3VwID0gIktub3dsZWRnZSBOZXR3b3JrIjsK
CiAgICAvLyB3ZWVraW5yZXZpZXcKICAgIH0gZWxzZSBpZiAoL1wvWzAtOV1bMC05XVswLTldWzAt
OV1cL1swLTFdWzAtOV1cL1swLTNdWzAtOV1cL3dlZWtpbnJldmlld1wvLy50ZXN0KHd0X3BhdGgp
CiAgICAgICAgICAgIHx8IC9cL3BhY2thZ2VzXC9odG1sXC93ZWVraW5yZXZpZXdcLy8udGVzdCh3
dF9wYXRoKQogICAgICAgICAgICB8fCAvXlwvcGFnZXNcL3dlZWtpbnJldmlld1wvLy50ZXN0KHd0
X3BhdGgpCiAgICAgICAgICAgIHx8IC9eXC93ZWVraW5yZXZpZXdcLy8udGVzdCh3dF9wYXRoKSkg
ewogICAgICBjb250ZW50R3JvdXAgPSAiV2VlayBJbiBSZXZpZXciOwoKICAgIC8vIHdlYXRoZXIK
ICAgIH0gZWxzZSBpZiAoL15cL2dzdFwvd2VhdGhlci5odG1sLy50ZXN0KHd0X3BhdGgpCiAgICAg
ICAgICAgIHx8IC9eXC9tZW1cL3dlYXRoZXIuaHRtbC8udGVzdCh3dF9wYXRoKQogICAgICAgICAg
ICB8fCAvXC9wYWNrYWdlc1wvaHRtbFwvd2VhdGhlclwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAg
ICAgIHx8IC9eXC93ZWF0aGVyLy50ZXN0KHd0X3BhdGgpKSB7CiAgICAgIGNvbnRlbnRHcm91cCA9
ICJXZWF0aGVyIjsKCiAgICAvLyBtdWx0aW1lZGlhCiAgICB9IGVsc2UgaWYgKC9eXC9wYWdlc1wv
bXVsdGltZWRpYVwvLy50ZXN0KHd0X3BhdGgpCiAgICAgICAgICAgIHx8IC9cL3BhY2thZ2VzXC9o
dG1sXC9tdWx0aW1lZGlhXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL15cL3JlZlwv
bXVsdGltZWRpYVwvLy50ZXN0KHd0X3BhdGgpKSB7CiAgICAgIGNvbnRlbnRHcm91cCA9ICJNdWx0
aW1lZGlhIjsKCiAgICAvLyBjYXJ0b29ucwogICAgfSBlbHNlIGlmICgvXlwvcGFnZXNcL2NhcnRv
b25zXC8vLnRlc3Qod3RfcGF0aCkKICAgICAgICAgICAgfHwgL1wvcGFja2FnZXNcL2h0bWxcL2Nh
cnRvb25zXC8vLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdyb3VwID0gIkNhcnRvb25z
IjsKIAogICAgLy8gYXByZXV0ZXJzCiAgICB9IGVsc2UgaWYgKC9eXC9wYWdlc1wvXGIoYXBvbmxp
bmV8cmV1dGVycylcYlwvLy50ZXN0KHd0X3BhdGgpKSB7CiAgICAgIGNvbnRlbnRHcm91cCA9ICJB
UC9SZXV0ZXJzIjsKCiAgICAvLyBwaWN0dXJlcyBvZiB0aGUgZGF5IAogICAgfSBlbHNlIGlmICgv
Xlwvc2xpZGVzaG93XC9bMC05XVswLTldWzAtOV1bMC05XVwvWzAtMV1bMC05XVwvWzAtM11bMC05
XVwvbnl0ZnJvbnRwYWdlXC8vLnRlc3Qod3RfcGF0aCkpIHsKICAgICAgY29udGVudEdyb3VwID0g
IkhvbWVwYWdlIjsKCQkKCS8vIHNlbGZzZXJ2aWNlCiAgICB9IGVsc2UgaWYgKHd0X2RvbWFpbiA9
PSAibnl0aW1lcy5hZHJlYWR5LmNvbSIpIHsKICAgICAgY29udGVudEdyb3VwID0gIlNlbGYgU2Vy
dmljZSI7CgogICAgLy8gZGVmYXVsdCB0byBHZW5lcmFsIAogICAgfSBlbHNlIHsKICAgICAgY29u
dGVudEdyb3VwID0gIkdlbmVyYWwiOwogICAgfQoKICB9CgogIHJldHVybiBjb250ZW50R3JvdXA7
Cgp9CgpmdW5jdGlvbiByZWFkUGFnZVRhZ3MoKSB7CgogIGFkZE1ldGFUYWcoIldULnpfZ3B0Iiwg
ICAgZ2V0TWV0YVRhZygiUFQiKSk7ICAgICAgIC8vIHBhZ2UgdHlwZQogIGFkZE1ldGFUYWcoIldU
LnpfZ3BzdCIsICAgZ2V0TWV0YVRhZygiUFNUIikpOyAgICAgIC8vIHBhZ2Ugc3VidHlwZQogIGFk
ZE1ldGFUYWcoIldULnpfZ3Bzc3QiLCAgZ2V0TWV0YVRhZygiUFNTVCIpKTsgICAgIC8vIHBhZ2Ug
c3ViIDIgdHlwZQogIGFkZE1ldGFUYWcoIldULnpfZ3Bzc3N0IiwgZ2V0TWV0YVRhZygiUFNTU1Qi
KSk7ICAgIC8vIHBhZ2Ugc3ViIDMgdHlwZQogIGFkZE1ldGFUYWcoIldULnpfcGMiLCAgICAgZ2V0
TWV0YVRhZygiUEMiKSk7ICAgICAgIC8vIHBhcnRuZXIgY29udGVudAogIGFkZE1ldGFUYWcoIldU
LnpfcHMiLCAgICAgZ2V0TWV0YVRhZygiUFMiKSk7ICAgICAgIC8vIHBhcnRuZXIgc3VwcGxpZWQg
CiAgYWRkTWV0YVRhZygiV1Quel9wdXYiLCAgICBnZXRNZXRhVGFnKCJQVVYiKSk7ICAgICAgLy8g
cHVibGlzaCB2aWV3CiAgYWRkTWV0YVRhZygiV1Quel9nb3NzdCIsICBnZXRNZXRhVGFnKCJHT09T
VCIpKTsgICAgLy8gZ2xvYmFsIG9uc2l0ZSBzZWFyY2gKICBhZGRNZXRhVGFnKCJXVC56X2dvc3N0
IiwgIGdldE1ldGFUYWcoIkdPU1NUIikpOyAgICAvLyBnbG9iYWwgb25zaXRlIHNlYXJjaAogIGFk
ZE1ldGFUYWcoIldULnpfZ3NhYyIsICAgZ2V0TWV0YVRhZygiR1NBQyIpKTsgICAgIC8vIGdsb2Jh
bCBzZWFyY2ggYXV0byBjb21wbGV0ZQogIGFkZE1ldGFUYWcoIldULnpfZ3RuIiwgICAgZ2V0TWV0
YVRhZygiR1ROIikpOyAgICAgIC8vIGdsb2JhbCB0b3BpYyBuYW1lCiAgYWRkTWV0YVRhZygiV1Qu
Z2NvbSIsICAgICBnZXRNZXRhVGFnKCJHQ09NIikpOyAgICAgLy8gZ2xvYmFsIC0gY29tbXVuaXR5
IHBhZ2UKICBhZGRNZXRhVGFnKCJXVC56X2NsbXN0IiwgIGdldE1ldGFUYWcoIkNMTVNUIikpOyAg
ICAvLyBibG9ncyBvZmYgQWJvdXQKICBhZGRNZXRhVGFnKCJXVC56X2JuIiwgICAgIGdldE1ldGFU
YWcoIkJOIikpOyAgICAgICAvLyBibG9ncyBvZmYgQWJvdXQKICBhZGRNZXRhVGFnKCJXVC56X3B1
ZCIsICAgIGdldE1ldGFUYWcoIlBVRCIpKTsgICAgICAvLyBibG9ncyBvZmYgQWJvdXQKCn0KCmZ1
bmN0aW9uIHNldENvbnRlbnRJbmZvKCkgewoKICAvLyByZWFkIHBhZ2UgdGFncyBmb3IgY29udGVu
dCBncm91cHMKICBpZiAod3RfY29udGVudEdyb3VwID09ICJIZWFsdGgiKSB7CiAKICAgIGFkZE1l
dGFUYWcoIldULnpfaGdzdCIsICBnZXRNZXRhVGFnKCJIR1NUIikpOyAgIC8vIGhlYWx0aCBndWlk
ZSBzdWJqZWN0IHR5cGUKICAgIGFkZE1ldGFUYWcoIldULnpfaGdzbiIsICBnZXRNZXRhVGFnKCJI
R1NOIikpOyAgIC8vIGhlYWx0aCBndWlkZSBzdWJqZWN0IG5hbWUKCiAgfSBlbHNlIGlmICh3dF9j
b250ZW50R3JvdXAgPT0gIlRpbWVzIFRvcGljcyIpIHsKICAgIGFkZE1ldGFUYWcoIldULnpfZ3B0
IiwgICJUb3BpYyIpOwoKICB9IGVsc2UgaWYgKHd0X2NvbnRlbnRHcm91cCA9PSAiQm9va3MiKSB7
CiAgICBhZGRNZXRhVGFnKCJXVC56X2JwZXIiLCBnZXRNZXRhVGFnKCJwZXIiKSk7CiAgICBhZGRN
ZXRhVGFnKCJXVC56X2ViayIsICBnZXRNZXRhVGFnKCJ0dGwiKSk7CgogIH0gZWxzZSBpZiAod3Rf
Y29udGVudEdyb3VwID09ICJSZWFsIEVzdGF0ZSIgfHwgd3RfY29udGVudEdyb3VwID09ICJHcmVh
dCBIb21lcyIpIHsKICAgIGFkZE1ldGFUYWcoIldULnpfcmVzeiIsICBnZXRNZXRhVGFnKCJSRVNa
IikpOyAgIC8vIHJlYWwgZXN0YXRlIHNlYXJjaCB6aXAgY29kZXMKICAgIGFkZE1ldGFUYWcoIldU
LnpfcmVzIiwgICBnZXRNZXRhVGFnKCJSRVMiKSk7ICAgIC8vIHJlYWwgZXN0YXRlIHN0YXRlCiAg
ICBhZGRNZXRhVGFnKCJXVC56X3JlY28iLCAgZ2V0TWV0YVRhZygiUkVDTyIpKTsgICAvLyByZWFs
IGVzdGF0ZSBjb3VudGllcwogICAgYWRkTWV0YVRhZygiV1Quel9yZXIiLCAgIGdldE1ldGFUYWco
IlJFUiIpKTsgICAgLy8gcmVhbCBlc3RhdGUgcmVnaW9uIAoKICB9IGVsc2UgaWYgKHd0X2NvbnRl
bnRHcm91cCA9PSAiVGhlYXRlciIpIHsKICAgIGFkZE1ldGFUYWcoIldULnpfZXBsYXkiLCAgZ2V0
TWV0YVRhZygidHRsIikpOwoKICB9IGVsc2UgaWYgKHd0X2NvbnRlbnRHcm91cCA9PSAiVHJhdmVs
IikgewogICAgaW5jbHVkZUZpbGUoanNfaG9zdCsiY29udGVudC90cmF2ZWxfdjEuMS5qcyIpOwoK
ICB9IGVsc2UgaWYgKHd0X2NvbnRlbnRHcm91cCA9PSAiTW92aWVzIikgewogICAgaW5jbHVkZUZp
bGUoanNfaG9zdCsiY29udGVudC9tb3ZpZXNfdjEuMS5qcyIpOwoKICB9IGVsc2UgaWYgKHd0X2Nv
bnRlbnRHcm91cCA9PSAiTWVtYmVyIENlbnRlciIpIHsKICAgIGluY2x1ZGVGaWxlKGpzX2hvc3Qr
ImNvbnRlbnQvbWVtYmVyY2VudGVyX3YxLjEuanMiKTsKCiAgfSBlbHNlIGlmICh3dF9jb250ZW50
R3JvdXAgPT0gIkVtYWlsIFRoaXMiKSB7CiAgICBpbmNsdWRlRmlsZShqc19ob3N0KyJjb250ZW50
L2VtYWlsdGhpc192MS4xLmpzIik7CgogIH0KCn0KCmZ1bmN0aW9uIHNldFJlZmVycmVySW5mbygp
IHsKCiAgdmFyIHJlZlVybCA9IGRvY3VtZW50LnJlZmVycmVyOwogIGlmIChyZWZVcmwgIT0gdW5k
ZWZpbmVkICYmIHJlZlVybCAhPSAiIiApIHsKICAgIHZhciByZWZEb20gPSByZWZVcmwubWF0Y2go
IC86XC9cLyh3d3dcLik/KFteXC86XSspLyApOyAKICAgIHJlZkRvbSA9IHJlZkRvbVsyXT9yZWZE
b21bMl06Jyc7IAogICAgYWRkTWV0YVRhZygiV1Quel9yZWYiLCByZWZEb20pOwogICAgYWRkTWV0
YVRhZygiV1Quel9zb3JnIiwgaXNTZWFyY2hFbmdpbmUocmVmRG9tKSk7IAogIH0KfQoKZnVuY3Rp
b24gZ2V0UmVmZXJyZXJRdWVyeSgpIHsKCiAgdmFyIHJlZlF1ZXJ5ID0gIiI7CiAgdmFyIHVybF9w
YXJ0cyA9IGRvY3VtZW50LnJlZmVycmVyLnNwbGl0KCc/Jyk7CiAgaWYgKHVybF9wYXJ0c1sxXSl7
IAogICAgdmFyIHVybF9hcmdzID0gdXJsX3BhcnRzWzFdLnNwbGl0KCcmJyk7CiAgICBmb3IodmFy
IGk9MDsgaTx1cmxfYXJncy5sZW5ndGg7IGkrKyl7CiAgICAgIHZhciBrZXl2YWwgPSB1cmxfYXJn
c1tpXS5zcGxpdCgnPScpOwogICAgICBpZiAoa2V5dmFsWzBdID09ICdxJyl7CiAgICAgICAgcmVm
UXVlcnkgPSBrZXl2YWxbMV07CiAgICAgIH0KICAgIH0KICB9CiAgcmV0dXJuIHJlZlF1ZXJ5Owp9
CgpmdW5jdGlvbiBpc1NlYXJjaEVuZ2luZShyZWZEb20pIHsKCiAgdmFyIHJlZlR5cGUgPSAiIjsK
ICBpZigoL2dvb2dsZVwuLy50ZXN0KHJlZkRvbSkgJiYgZ2V0UmVmZXJyZXJRdWVyeSgpICE9ICIi
KSAKICAgfHwoL3NlYXJjaFwuLy50ZXN0KHJlZkRvbSkpCiAgIHx8KC9hc2suY29tLy50ZXN0KHJl
ZkRvbSkpCiAgIHx8KC9hbHRhdmlzdGEuY29tLy50ZXN0KHJlZkRvbSkpKSB7CiAgICByZWZUeXBl
ID0gIjEiOwogIH0KICByZXR1cm4gcmVmVHlwZTsKCn0KCmZ1bmN0aW9uIGhhbmRsZUNHRXhjZXB0
aW9ucygpIHsKCiAgLy8gcHJvbW90ZSB0byBjb250ZW50IGdyb3VwCiAgaWYgKHd0X3N1YmNvbnRl
bnRHcm91cCA9PSAiZGFuY2UiKSB7CiAgICB3dF9jb250ZW50R3JvdXAgPSAiRGFuY2UiOwogICAg
d3Rfc3ViY29udGVudEdyb3VwID0gIiI7CiAgfSBlbHNlIGlmICh3dF9zdWJjb250ZW50R3JvdXAg
PT0gIm11c2ljIikgewogICAgd3RfY29udGVudEdyb3VwID0gIk11c2ljIjsKICAgIHd0X3N1YmNv
bnRlbnRHcm91cCA9ICIiOwogIH0gZWxzZSBpZiAod3Rfc3ViY29udGVudEdyb3VwID09ICJ0ZWxl
dmlzaW9uIikgewogICAgd3RfY29udGVudEdyb3VwID0gIlRWIjsKICAgIHd0X3N1YmNvbnRlbnRH
cm91cCA9ICIiOwogIH0gZWxzZSBpZiAod3Rfc3ViY29udGVudEdyb3VwID09ICJvbHltcGljcyIp
IHsKICAgIHd0X2NvbnRlbnRHcm91cCA9ICJPbHltcGljcyI7CiAgICB3dF9zdWJjb250ZW50R3Jv
dXAgPSAiIjsKICB9IGVsc2UgaWYgKHd0X3N1YmNvbnRlbnRHcm91cCA9PSAicG9saXRpY3MiKSB7
CiAgICB3dF9jb250ZW50R3JvdXAgPSAiUG9saXRpY3MiOwogICAgd3Rfc3ViY29udGVudEdyb3Vw
ID0gIiI7CiAgfQoKICAvLyBkZW1vdGUgdG8gc3ViY29udGVudCBncm91cAogIGlmICh3dF9jZ1Rh
ZyA9PSAiZWR1Y2F0aW9uIikgewogICAgd3Rfc3ViY29udGVudEdyb3VwID0gIkVkdWNhdGlvbiI7
CiAgfSBlbHNlIGlmICh3dF9jZ1RhZyA9PSAid2FzaGluZ3RvbiIpIHsKICAgIHd0X3N1YmNvbnRl
bnRHcm91cCA9ICJXYXNoaW5ndG9uIjsKICB9IGVsc2UgaWYgKHd0X2NnVGFnID09ICJmYXNoaW9u
IikgewogICAgd3Rfc3ViY29udGVudEdyb3VwID0gIkZhc2hpb24iOwogIH0gZWxzZSBpZiAod3Rf
Y2dUYWcgPT0gImRpbmluZyIpIHsKICAgIHd0X3N1YmNvbnRlbnRHcm91cCA9ICJEaW5pbmciOwog
IH0gZWxzZSBpZiAod3RfY2dUYWcgPT0gImdhcmRlbiIpIHsKICAgIHd0X3N1YmNvbnRlbnRHcm91
cCA9ICJHYXJkZW4iOwogIH0KCiAgLy8gcmV3cml0ZSBjb250ZW50IGdyb3VwIGJhc2VkIG9uIHN1
YmNvbnRlbnRncm91cAogIGlmICh3dF9zY2dUYWcgPT0gIldlZGRpbmdzIikgewogICAgd3RfY29u
dGVudEdyb3VwID0gIlN0eWxlIjsKICAgIHd0X3N1YmNvbnRlbnRHcm91cCA9ICJXZWRkaW5ncyI7
CiAgfQogIGlmICh3dF9zdWJjb250ZW50R3JvdXAgPT0gIkRlYWxib29rIEpvYnMiKSB7CiAgICB3
dF9jb250ZW50R3JvdXAgPSAiQnVzaW5lc3MiOwogIH0KICAKICAvLyByZXdyaXRlIGNvbnRlbnQg
Z3JvdXAKICBpZiAod3RfY2dUYWcgPT0gInh3b3JkIikgewogICAgd3RfY29udGVudEdyb3VwID0g
IkNyb3Nzd29yZHMvR2FtZXMiOwogIH0KfQoKZnVuY3Rpb24gc2V0U2VjdGlvbkZyb250KCkgewoK
ICBpZiAoIChnZXRNZXRhVGFnKCJXVC56X2dwdCIpID09ICJTZWN0aW9uIEZyb250IikgJiYgZ2V0
TWV0YVRhZygiV1QuY2dfcyIpKSB7CiAgICB0ZW1wV1RWYWwgPSAiU3Vic2VjdGlvbiBGcm9udCI7
CiAgICBhZGRNZXRhVGFnKCJXVC56X2dwc3QiLCAiU3Vic2VjdGlvbiBGcm9udCIpOwogIH0KCn0K
CmZ1bmN0aW9uIHNldEludGVyYWN0aXZlR3JhcGhpY0luZm8oKSB7CgogIGFkZE1ldGFUYWcoIldU
LnpfZ3B0IiwgIk11bHRpbWVkaWEiKTsKICBhZGRNZXRhVGFnKCJXVC56X2dwc3QiLCAiRmxhc2gi
KTsKICBhZGRNZXRhVGFnKCJXVC56X3B1ZCIsIGdldE1ldGFUYWcoInBkYXRlIikpOwoKfQoKZnVu
Y3Rpb24gc2V0U2xpZGVzaG93SW5mbygpIHsKCiAgYWRkTWV0YVRhZygiV1Quel9ncHQiLCAiTXVs
dGltZWRpYSIpOwogIGFkZE1ldGFUYWcoIldULnpfZ3BzdCIsICJTbGlkZXNob3ciKTsKICBhZGRN
ZXRhVGFnKCJXVC56X3B1ZCIsIGdldE1ldGFUYWcoInBkYXRlIikpOwoKfQoKZnVuY3Rpb24gc2V0
QXJ0aWNsZUluZm8oYXJ0aWNsZUlEKSB7CgogIGlmIChhcnRpY2xlSUQgIT0gIiIpIHsKICAgIGFk
ZE1ldGFUYWcoIldULnpfZ3B0IiwgIkFydGljbGUiKTsKICAgIGFkZE1ldGFUYWcoIldULnpfZ3Bz
dCIsIGdldE1ldGFUYWcoInRvbSIpKTsKICAgIGFkZE1ldGFUYWcoIldULnpfaGRsIiwgZ2V0TWV0
YVRhZygiaGRsIikpOyAKICAgIGFkZE1ldGFUYWcoIldULnpfYWlkIiwgYXJ0aWNsZUlEKTsKICAg
IHZhciBwdWJEYXRlID0gZ2V0TWV0YVRhZygicGRhdGUiKTsKICAgIGFkZE1ldGFUYWcoIldULnpf
cHVkIiwgcHViRGF0ZSk7CiAgICBhZGRNZXRhVGFnKCJXVC56X3B1dCIsICJ3ZWIiKTsKCSB2YXIg
cHViVHlwZSA9IGdldFB1YlR5cGVGcm9tRGF0ZShwdWJEYXRlKTsgCiAgICBhZGRNZXRhVGFnKCJX
VC56LmdzZyIsIHB1YlR5cGUpOwoJIGlmIChwdWJUeXBlID09ICJBcmNoaXZlIikgewoJICAgYWRk
TWV0YVRhZygiV1Quel9nYXQiLCAiMTk4Ny1QcmVzZW50Iik7CiAgICB9CiAgICBhZGRNZXRhVGFn
KCJXVC56X3B1YSIsICJmcmVlIik7CgogICAgdmFyIGJ5bFZhbCA9IGdldE1ldGFUYWcoImJ5bCIp
OwogICAgYnlsVmFsID0gYnlsVmFsLnJlcGxhY2UoIiYjODIxNzsiLCInIik7IAogICAgaWYgKGJ5
bFZhbC5pbmRleE9mKCJCeSAiKSAhPSAtMSkgewogICAgICBieWxWYWwgPSBieWxWYWwuc3Vic3Ry
aW5nKDMpOwogICAgICBieWxWYWxJbmQgPSBieWxWYWwuaW5kZXhPZigiIGFuZCAiKTsKICAgICAg
aWYgKGJ5bFZhbEluZCAhPSAtMSkgewogICAgICAgIGJ5bFZhbCA9IGJ5bFZhbC5zdWJzdHJpbmco
MCwgYnlsVmFsSW5kKSArICI7IiArIGJ5bFZhbC5zdWJzdHJpbmcoYnlsVmFsSW5kKzUpOwogICAg
ICB9CiAgICB9CiAgICBhZGRNZXRhVGFnKCJXVC56X2NsbXN0IiwgYnlsVmFsKTsKICAgIHNldFhU
UyhieWxWYWwpOwogICAgdmFyIHBhZ2VXYW50ZWQgPSBnZXRRdWVyeVBhcmFtZXRlcigicGFnZXdh
bnRlZCIpOwogICAgaWYgKHBhZ2VXYW50ZWQgPT0gIiIpIHsKICAgICAgYWRkTWV0YVRhZygiV1Qu
el9wdXYiLCAiTm9ybWFsIik7IAogICAgfSBlbHNlIHsKICAgICAgYWRkTWV0YVRhZygiV1Quel9w
dXYiLCBwYWdlV2FudGVkKTsKICAgIH0KICB9Cn0KCmZ1bmN0aW9uIHNldFB1YkRhdGVJbmZvKHBk
YXRlKSB7CiAgc2V0UHViRGF0ZVJhbmdlKHBkYXRlKTsKICBhZGRNZXRhVGFnKCJXVC56X3B5ciIs
IHBkYXRlLnN1YnN0cmluZygwLCA0KSk7Cn0KCmZ1bmN0aW9uIHNldFB1YkRhdGVSYW5nZShwZGF0
ZSkgewogIHZhciByZWxhdGl2ZVB1YkRhdGUgPSAiTm8gUHViIERhdGUiOwogIHZhciBjdXJyZW50
RGF0ZSA9IG5ldyBEYXRlKCk7CiAgdmFyIGN1cnJlbnREYXRlTXMgPSBjdXJyZW50RGF0ZS5nZXRU
aW1lKCk7CgogIHZhciBwdWJEYXRlID0gbmV3IERhdGUoKTsKICBpZiAocGRhdGUubGVuZ3RoPT04
KSB7CiAgICB2YXIgdFllYXIgPSBwZGF0ZS5zdWJzdHJpbmcoMCw0KTsKICAgIHZhciB0TW9udGgg
PSBwZGF0ZS5zdWJzdHJpbmcoNCw2KTsKICAgIHZhciB0RGF5ID0gcGRhdGUuc3Vic3RyaW5nKDYs
OCk7CiAgICBwdWJEYXRlLnNldEZ1bGxZZWFyKHRZZWFyLHRNb250aC0xLHREYXkpOwogIH0KICB2
YXIgcHViRGF0ZU1zID0gcHViRGF0ZS5nZXRUaW1lKCk7CgogIHZhciBwdWJsaWNEb21haW5TdGFy
dERhdGUgPSBuZXcgRGF0ZSgpOwogIHB1YmxpY0RvbWFpblN0YXJ0RGF0ZS5zZXRZZWFyKDE4NTEp
OwogIHB1YmxpY0RvbWFpblN0YXJ0RGF0ZS5zZXRNb250aCgwKTsKICBwdWJsaWNEb21haW5TdGFy
dERhdGUuc2V0RGF0ZSgxKTsKICB2YXIgcHVibGljRG9tYWluU3RhcnREYXRlTXMgPSBwdWJsaWNE
b21haW5TdGFydERhdGUuZ2V0VGltZSgpOwoKICB2YXIgcGF5QXJjaGl2ZVN0YXJ0RGF0ZSA9IG5l
dyBEYXRlKCk7CiAgcGF5QXJjaGl2ZVN0YXJ0RGF0ZS5zZXRZZWFyKDE5MjMpOwogIHBheUFyY2hp
dmVTdGFydERhdGUuc2V0TW9udGgoMCk7CiAgcGF5QXJjaGl2ZVN0YXJ0RGF0ZS5zZXREYXRlKDEp
OwogIHZhciBwYXlBcmNoaXZlU3RhcnREYXRlTXMgPSBwYXlBcmNoaXZlU3RhcnREYXRlLmdldFRp
bWUoKTsKCiAgdmFyIHBheUFyY2hpdmVFbmREYXRlID0gbmV3IERhdGUoKTsKICBwYXlBcmNoaXZl
RW5kRGF0ZS5zZXRZZWFyKDE5ODYpOwogIHBheUFyY2hpdmVFbmREYXRlLnNldE1vbnRoKDExKTsK
ICBwYXlBcmNoaXZlRW5kRGF0ZS5zZXREYXRlKDMxKTsKICB2YXIgcGF5QXJjaGl2ZUVuZERhdGVN
cyA9IHBheUFyY2hpdmVFbmREYXRlLmdldFRpbWUoKTsKCiAgdmFyIGRhdGVEaWZmTXMgPSBjdXJy
ZW50RGF0ZU1zIC0gcHViRGF0ZU1zOwoKICBpZihkYXRlRGlmZk1zIDwgMCkgewogICAgcmVsYXRp
dmVQdWJEYXRlID0gIlRvbW9ycm93IjsKICB9IGVsc2UgaWYoMCA8PSBkYXRlRGlmZk1zICYmIGRh
dGVEaWZmTXMgPCA4NjQwMDAwMCkgewogICAgcmVsYXRpdmVQdWJEYXRlID0gIlNhbWUgRGF5IjsK
ICB9IGVsc2UgaWYoODY0MDAwMDAgPD0gZGF0ZURpZmZNcyAmJiBkYXRlRGlmZk1zIDwgMTcyODAw
MDAwKSB7CiAgICByZWxhdGl2ZVB1YkRhdGUgPSAiMSBEYXkiOwogIH0gZWxzZSBpZigxNzI4MDAw
MDAgPD0gZGF0ZURpZmZNcyAmJiBkYXRlRGlmZk1zIDwgMjU5MjAwMDAwKSB7CiAgICByZWxhdGl2
ZVB1YkRhdGUgPSAiMiBEYXkiOwogIH0gZWxzZSBpZigyNTkyMDAwMDAgPD0gZGF0ZURpZmZNcyAm
JiBkYXRlRGlmZk1zIDwgMzQ1NjAwMDAwKSB7CiAgICByZWxhdGl2ZVB1YkRhdGUgPSAiMyBEYXki
OwogIH0gZWxzZSBpZigzNDU2MDAwMDAgPD0gZGF0ZURpZmZNcyAmJiBkYXRlRGlmZk1zIDwgNDMy
MDAwMDAwKSB7CiAgICByZWxhdGl2ZVB1YkRhdGUgPSAiNCBEYXkiOwogIH0gZWxzZSBpZig0MzIw
MDAwMDAgPD0gZGF0ZURpZmZNcyAmJiBkYXRlRGlmZk1zIDwgNTE4NDAwMDAwKSB7CiAgICByZWxh
dGl2ZVB1YkRhdGUgPSAiNSBEYXkiOwogIH0gZWxzZSBpZig1MTg0MDAwMDAgPD0gZGF0ZURpZmZN
cyAmJiBkYXRlRGlmZk1zIDwgNjA0ODAwMDAwKSB7CiAgICByZWxhdGl2ZVB1YkRhdGUgPSAiNiBE
YXkiOwogIH0gZWxzZSBpZig2MDQ4MDAwMDAgPD0gZGF0ZURpZmZNcyAmJiBkYXRlRGlmZk1zIDwg
NjkxMjAwMDAwKSB7CiAgICByZWxhdGl2ZVB1YkRhdGUgPSAiNyBEYXkiOwogIH0gZWxzZSBpZig2
OTEyMDAwMDAgPD0gZGF0ZURpZmZNcyAmJiBkYXRlRGlmZk1zIDwgMjY3ODQwMDAwMCkgewogICAg
cmVsYXRpdmVQdWJEYXRlID0gIk1vbnRoIjsKICB9IGVsc2UgaWYoMjY3ODQwMDAwMCA8PSBkYXRl
RGlmZk1zICYmIGRhdGVEaWZmTXMgPCA3Nzc2MDAwMDAwKSB7CiAgICByZWxhdGl2ZVB1YkRhdGUg
PSAiOTAgRGF5IjsKICB9IGVsc2UgaWYoNzc3NjAwMDAwMCA8PSBkYXRlRGlmZk1zICYmIGRhdGVE
aWZmTXMgPCAzMTUzNjAwMDAwMCkgewogICAgcmVsYXRpdmVQdWJEYXRlID0gIjEgWWVhciI7CiAg
fSBlbHNlIGlmKDMxNTM2MDAwMDAwIDw9IGRhdGVEaWZmTXMgJiYgZGF0ZURpZmZNcyA8IDE1NzY4
MDAwMDAwMCkgewogICAgcmVsYXRpdmVQdWJEYXRlID0gIjUgWWVhcnMiOwogIH0gZWxzZSBpZigx
NTc2ODAwMDAwMDAgPD0gZGF0ZURpZmZNcyAmJiBkYXRlRGlmZk1zIDwgMzE1MzYwMDAwMDAwKSB7
CiAgICByZWxhdGl2ZVB1YkRhdGUgPSAiMTAgWWVhcnMiOwogIH0gZWxzZSBpZigzMTUzNjAwMDAw
MDAgPD0gZGF0ZURpZmZNcyAmJiBwdWJEYXRlTXMgPiBwYXlBcmNoaXZlRW5kRGF0ZU1zKSB7CiAg
ICByZWxhdGl2ZVB1YkRhdGUgPSAiUG9zdCA4NiI7CiAgfSBlbHNlIGlmKDMxNTM2MDAwMDAwMCA8
PSBkYXRlRGlmZk1zICYmIChwYXlBcmNoaXZlU3RhcnREYXRlTXMgPD0gcHViRGF0ZU1zICYmIHB1
YkRhdGVNcyA8PSBwYXlBcmNoaXZlRW5kRGF0ZU1zKSkgewogICAgcmVsYXRpdmVQdWJEYXRlID0g
IlBheSBBcmNoaXZlIjsKICB9IGVsc2UgaWYoMzE1MzYwMDAwMDAwIDw9IGRhdGVEaWZmTXMgJiYg
KHB1YmxpY0RvbWFpblN0YXJ0RGF0ZU1zIDw9IHB1YkRhdGVNcyAmJiBwdWJEYXRlTXMgPD0gcGF5
QXJjaGl2ZVN0YXJ0RGF0ZU1zKSkgewogICAgcmVsYXRpdmVQdWJEYXRlID0gIlB1YmxpYyBEb21h
aW4iOwogIH0KCiAgYWRkTWV0YVRhZygiV1Quel9wdWRyIiwgcmVsYXRpdmVQdWJEYXRlKTsKCn0K
CmZ1bmN0aW9uIHNldENvbW1lbnRPdmVyZmxvd0luZm8oYXJ0aWNsZUlEKSB7CgogIGFkZE1ldGFU
YWcoIldULnpfYWlkIiwgYXJ0aWNsZUlEKTsKICBhZGRNZXRhVGFnKCJXVC56X2hkbCIsIGdldE1l
dGFUYWcoImhkbCIpKTsgCiAgaWYgKGdldE1ldGFUYWcoIldULnpfZ3BzdCIpID09ICJDb21tZW50
cyBPdmVyZmxvdyIpIHsKICAgIGFkZE1ldGFUYWcoIldULmdjb20iLCAiQ29tIik7IAogIH0KIAog
IC8vIFNldCBhcnRpY2xlIGNvbW1lbnQgcGFnZSBudW1iZXIgCiAgYWRkTWV0YVRhZygiV1Quel9h
Y3BuIiwgZ2V0TWV0YVRhZygiQUNQTiIpKTsKCiAgLy8gU2V0IGFydGljbGUgY29tbWVudCBvdmVy
dmlldyBzb3J0CiAgYWRkTWV0YVRhZygiV1Quel9hY29zIiwgZ2V0TWV0YVRhZygiQUNPUyIpKTsK
Cn0KCmZ1bmN0aW9uIGdldFB1YlR5cGVGcm9tRGF0ZShwZGF0ZSkgewoKICBpZiAocGRhdGUgIT0g
dW5kZWZpbmVkICYmIHBkYXRlLmxlbmd0aCA9PSA4KSB7CiAgICB2YXIgY3VycmVudERhdGUgPSBu
ZXcgRGF0ZSgpOwogICAgdmFyIGFydGljbGVEYXRlID0gbmV3IERhdGUoKTsKICAgIGFydGljbGVE
YXRlLnNldERhdGUocGRhdGUuc3Vic3RyaW5nKDYpKTsKICAgIGFydGljbGVEYXRlLnNldE1vbnRo
KHBkYXRlLnN1YnN0cmluZyg0LDYpLTEpOwogICAgYXJ0aWNsZURhdGUuc2V0RnVsbFllYXIocGRh
dGUuc3Vic3RyaW5nKDAsNCkpOwoKICAgIGlmIChhcnRpY2xlRGF0ZSA8IGN1cnJlbnREYXRlKSB7
CiAgICAgIHJldHVybiAiQXJjaGl2ZSI7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gIndlYiI7
CiAgICB9CiAgfSBlbHNlIHsKICAgIHJldHVybiAid2ViIjsKICB9Cgp9CgpmdW5jdGlvbiBzZXRY
VFMoY2xtc3QpIHsKCiAgaWYgKC9EQVZJRCBCUk9PS1MvLnRlc3QoY2xtc3QpCiAgICB8fC9NQVVS
RUVOIERPV0QvLnRlc3QoY2xtc3QpCiAgICB8fC9ST0dFUiBDT0hFTi8udGVzdChjbG1zdCkKICAg
IHx8L1RIT01BUyBMLiBGUklFRE1BTi8udGVzdChjbG1zdCkKICAgIHx8L0JPQiBIRVJCRVJULy50
ZXN0KGNsbXN0KQogICAgfHwvTklDSE9MQVMgRC4gS1JJU1RPRi8udGVzdChjbG1zdCkKICAgIHx8
L1BBVUwgS1JVR01BTi8udGVzdChjbG1zdCkKICAgIHx8L0ZSQU5LIFJJQ0gvLnRlc3QoY2xtc3Qp
CiAgICB8fC9EQVZFIEFOREVSU09OLy50ZXN0KGNsbXN0KQogICAgfHwvUEVURVIgQVBQTEVCT01F
Ly50ZXN0KGNsbXN0KQogICAgfHwvSEFSVkVZIEFSQVRPTi8udGVzdChjbG1zdCkKICAgIHx8L0RB
TiBCQVJSWS8udGVzdChjbG1zdCkKICAgIHx8L0pJTSBEV1lFUi8udGVzdChjbG1zdCkKICAgIHx8
L0NMWURFIEhBQkVSTUFOLy50ZXN0KGNsbXN0KQogICAgfHwvQURBTSBMSVBUQUsvLnRlc3QoY2xt
c3QpCiAgICB8fC9HUkVUQ0hFTiBNT1JHRU5TT04vLnRlc3QoY2xtc3QpCiAgICB8fC9KT0UgTk9D
RVJBLy50ZXN0KGNsbXN0KQogICAgfHwvSk9TRVBIIE5PQ0VSQS8udGVzdChjbG1zdCkKICAgIHx8
L0ZMT1lEIE5PUlJJUy8udGVzdChjbG1zdCkKICAgIHx8L1dJTExJQU0gQy4gUkhPREVOLy50ZXN0
KGNsbXN0KQogICAgfHwvU0VMRU5BIFJPQkVSVFMvLnRlc3QoY2xtc3QpCiAgICB8fC9HRU9SR0Ug
VkVDU0VZLy50ZXN0KGNsbXN0KQogICAgfHwvSk9ITiBWSU5PQ1VSLy50ZXN0KGNsbXN0KSkgewog
ICAgICBhZGRNZXRhVGFnKCJXVC56X2d0cyIsICJYVFMiKTsKICB9Cgp9CgpmdW5jdGlvbiBzZXRT
ZWFyY2hJbmZvKCkgewoKICB2YXIgc2VhcmNoUmVzdWx0czsKICB2YXIgd3Rfb3NzICAgPSAiIjsK
ICB2YXIgd3Rfb3NzX3IgPSAiIjsKICB2YXIgd3RfZ29zc3QgPSAiIjsKICB2YXIgb3NzTmFtZSAg
PSAiIjsKICB2YXIgb3Nzck5hbWUgPSAiIjsKCiAgLy8gZm9yIGdsb2JhbCBzZWFyY2hlcwogIGlm
ICgvXlwvc2VhcmNoXC9xdWVyeS8udGVzdChueXRfcGF0aCkpIHsKICAgIHd0X29zcyA9IGdldFF1
ZXJ5UGFyYW1ldGVyKCJxdWVyeSIpOwogICAgc2VhcmNoUmVzdWx0cyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzb3J0QnkiKTsKICAgIHd0X2dvc3N0ID0gZ2V0UXVlcnlQYXJhbWV0ZXIoInNy
Y2hzdCIpOwogICAgb3NzTmFtZSA9ICJXVC5vc3MiOwogICAgb3Nzck5hbWUgPSAiV1Qub3NzX3Ii
OwogIH0KCiAgLy8gZm9yIHRlY2ggc2VhcmNoIG9ubHkKICBpZiAoL1wvZ3N0XC90ZWNobm9sb2d5
XC90ZWNoc2VhcmNoLmh0bWwvLnRlc3Qobnl0X3BhdGgpKSB7CiAgICB3dF9vc3MgPSBnZXRRdWVy
eVBhcmFtZXRlcigicXVlcnkiKTsKICAgIHNlYXJjaFJlc3VsdHMgPSBnZXRFbGVtZW50c0J5Q2xh
c3MoImRpdiIsICJyZXN1bHRfc3VtbWFyeSIpOwogICAgb3NzTmFtZSA9ICJXVC56X3Rvc3MiOwog
ICAgb3Nzck5hbWUgPSAiV1Quel90b3NzX3IiOwogIH0KCiAgLy8gZm9yIG1vdmllIHNlYXJjaCBv
bmx5CiAgaWYgKC9cL2dzdFwvbW92aWVzXC9tc2VhcmNoLmh0bWwvLnRlc3Qobnl0X3BhdGgpKSB7
CiAgICB3dF9vc3MgPSBnZXRRdWVyeVBhcmFtZXRlcigicXVlcnkiKTsKICAgIHNlYXJjaFJlc3Vs
dHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0c1dlbGwiKTsKICAgIG9zc05hbWUg
PSAiV1Quel9tb3NzIjsKICAgIG9zc3JOYW1lID0gIldULnpfbW9zc19yIjsKICB9CgogIC8vIGZv
ciBoZWFsdGggc2VhcmNoIG9ubHkKICBpZiAoL1wvZ3N0XC9oZWFsdGhcL2hlYWx0aHNlYXJjaC5o
dG1sLy50ZXN0KG55dF9wYXRoKSkgewogICAgd3Rfb3NzID0gZ2V0UXVlcnlQYXJhbWV0ZXIoInF1
ZXJ5Iik7CiAgICBpZiAod3Rfb3NzID09ICIiKSB7CiAgICAgIHd0X29zcyA9IGdldFF1ZXJ5UGFy
YW1ldGVyKCJ0ZXJtIik7IAogICAgfQogICAgc2VhcmNoUmVzdWx0cyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzb3J0QnkiKTsKICAgIG9zc05hbWUgPSAiV1Quel9ob3NzIjsKICAgIG9zc3JO
YW1lID0gIldULnpfaG9zc19yIjsKICB9CgogIGlmIChudWxsID09IHNlYXJjaFJlc3VsdHMpIHsK
ICAgIHd0X29zc19yID0gIjAiOwogIH0gZWxzZSB7CiAgICB3dF9vc3NfciA9ICIxIjsKICAgIGlm
ICh3dF9vc3MgPT0gIiIgKSB7CiAgICAgIHd0X29zcyA9ICJObyBUZXJtIjsKICAgIH0KICB9Cgog
IGlmICh3dF9vc3MgIT0gIiIpIHsKICAgIGFkZE1ldGFUYWcob3NzTmFtZSwgd3Rfb3NzKTsKICAg
IGFkZE1ldGFUYWcob3Nzck5hbWUsIHd0X29zc19yKTsKICB9CgogIGlmICh3dF9nb3NzdCAhPSAi
IikgewogICAgdmFyIHd0X29zc3RBcnJheSA9IHsibnl0IjoiU2VhcmNoID4gQXJ0aWNsZXMgMTk4
MS1QcmVzZW50IiwKICAgICAgICAgICAgICAgICAgICAgICAgInAiOiJTZWFyY2ggPiBBcnRpY2xl
cyAxODUxLTE5ODAiLAogICAgICAgICAgICAgICAgICAgICAgICAiZyI6IlNlYXJjaCA+IEdvb2ds
ZSBXZWIgUmVzdWx0cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtIjoiU2VhcmNoID4gTXVs
dGltZWRpYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJueWNrcyI6IlNlYXJjaCA+IE5ZQyBF
dmVudHMgJiBWZW51ZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVmIjoiU2VhcmNoID4g
UmVmZXJlbmNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgImJsb2ciOiJTZWFyY2ggPiBCbG9n
cyJ9CiAgICB2YXIgc2VhcmNoVHlwZSA9IHd0X29zc3RBcnJheVt3dF9nb3NzdF07CiAgICBpZiAo
c2VhcmNoVHlwZSA9PSB1bmRlZmluZWQpIHsKICAgICAgc2VhcmNoVHlwZSA9IHd0X2dvc3N0Owog
ICAgfQogICAgYWRkTWV0YVRhZygiV1Quel9nb3NzdCIsIHNlYXJjaFR5cGUpOwogIH0KCn0KCmZ1
bmN0aW9uIHNldFRyYWNrRXZlbnRzKCkgewogIHZhciB3dF9zZWN0aW9uID0gZ2V0TWV0YVRhZygi
V1QuY2dfbiIpOwogIHZhciB3dF9zdWJzZWN0aW9uID0gZ2V0TWV0YVRhZygiV1QuY2dfcyIpOwog
IHZhciB3dF9wYWdldHlwZSA9IGdldE1ldGFUYWcoIldULnpfZ3B0Iik7CiAgICBpZiAod3RfcGFn
ZXR5cGUgPT0gIkhvbWVwYWdlIiB8fAogICAgICAgKHd0X3NlY3Rpb24gPT0gIlRlY2hub2xvZ3ki
ICYmIHd0X3BhZ2V0eXBlID09ICJTZWN0aW9uIEZyb250IikgfHwKICAgICAgICh3dF9zZWN0aW9u
ID09ICJBdXRvcyIgJiYgd3RfcGFnZXR5cGUgPT0gIlNlY3Rpb24gRnJvbnQiKSB8fCAKICAgICAg
ICh3dF9zZWN0aW9uID09ICJTZWFyY2giICYmIHd0X3N1YnNlY3Rpb24gPT0gIm55dCIpKSB7CiAg
ICBndHJhY2tldmVudHMgPSB0cnVlOwogIH0KfQoKLy8gaGVscGVyIGZ1bmN0aW9ucyB1c2VkIGJ5
IHRoaXMgYW5kIG90aGVyIGNvbnRlbnQgamF2YXNjcmlwdCBmaWxlcwpmdW5jdGlvbiBhZGRNZXRh
VGFnKHRhZ05hbWUsIHRhZ0NvbnRlbnQpIHsKCiAgdmFyIHRlbXBWYWx1ZSA9IGdldE1ldGFUYWco
dGFnTmFtZSk7CiAgaWYgKHRlbXBWYWx1ZSA9PSAiIikgewogICAgdGVtcFZhbHVlID0gZ2V0UXVl
cnlQYXJhbWV0ZXIodGFnTmFtZSk7CiAgfQogIGlmICh0ZW1wVmFsdWUgPT0gIiIgJiYgdGFnQ29u
dGVudCAhPSAiIikgewogICAgdmFyIG5ld01ldGFUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdtZXRhJyk7CiAgICBuZXdNZXRhVGFnLmlkID0gdGFnTmFtZTsKICAgIG5ld01ldGFUYWcubmFt
ZSA9IHRhZ05hbWU7CiAgICBuZXdNZXRhVGFnLmNvbnRlbnQgPSB0YWdDb250ZW50OwogICAgZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKS5pdGVtKDApLmFwcGVuZENoaWxkKG5l
d01ldGFUYWcpOwogIH0KCn0KCmZ1bmN0aW9uIG92ZXJ3cml0ZU1ldGFUYWcodGFnTmFtZSwgdGFn
Q29udGVudCkgewoKICB2YXIgbmV3TWV0YVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21l
dGEnKTsKICBuZXdNZXRhVGFnLm5hbWUgPSB0YWdOYW1lOwogIG5ld01ldGFUYWcuY29udGVudCA9
IHRhZ0NvbnRlbnQ7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKS5pdGVt
KDApLmFwcGVuZENoaWxkKG5ld01ldGFUYWcpOwoKfQoKZnVuY3Rpb24gZ2V0TWV0YVRhZyh0YWdO
YW1lKSB7CgogIHZhciBtZXRhVGFnQ29udGVudCA9ICIiOwogIHZhciBtZXRhVGFnRWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhZ05hbWUpOwogIHZhciB0ZW1wU3RyaW5nID0gIiI7
CiAgaWYgKG1ldGFUYWdFbGVtZW50ID09IG51bGwgfHwgbWV0YVRhZ0VsZW1lbnQgPT0gdW5kZWZp
bmVkKSB7CiAgICB2YXIgbWV0YVRhZ3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
bWV0YSIpOwogICAgZm9yKHZhciBpPTA7aTxtZXRhVGFncy5sZW5ndGg7aSsrKSB7CiAgICAgIGlm
KG1ldGFUYWdzW2ldLm5hbWUgPT0gdGFnTmFtZSkgewogICAgICAgIG1ldGFUYWdDb250ZW50ID0g
bWV0YVRhZ3NbaV0uY29udGVudDsKICAgICAgfQogICAgfQogIH0gZWxzZSB7CiAgICBtZXRhVGFn
Q29udGVudCA9IG1ldGFUYWdFbGVtZW50LmNvbnRlbnQ7CiAgfQoKICByZXR1cm4gbWV0YVRhZ0Nv
bnRlbnQ7Cgp9CgpmdW5jdGlvbiBnZXRRdWVyeVBhcmFtZXRlcihuYW1lKSB7CgogIG5hbWUgPSBu
YW1lLnJlcGxhY2UoL1tcW10vLCJcXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXF0iKTsKICB2YXIg
cmVnZXhTID0gIltcXD8mXSIrbmFtZSsiPShbXiYjXSopIjsKICB2YXIgcmVnZXggPSBuZXcgUmVn
RXhwKCByZWdleFMgKTsKICB2YXIgcmVzdWx0cyA9IHJlZ2V4LmV4ZWMoIHdpbmRvdy5sb2NhdGlv
bi5ocmVmICk7CiAgaWYoIHJlc3VsdHMgPT0gbnVsbCApIHsKICAgIHJldHVybiAiIjsKICB9IGVs
c2UgewogICAgcmV0dXJuIHJlc3VsdHNbMV07CiAgfQoKfQoKZnVuY3Rpb24gcXVlcnlQYXJhbWV0
ZXJFeGlzdHMobmFtZSkgewoKICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bXFtdLywiXFxcWyIpLnJl
cGxhY2UoL1tcXV0vLCJcXFxdIik7CiAgdmFyIHJlZ2V4UyA9ICJbXFw/Jl0iK25hbWU7CiAgdmFy
IHJlZ2V4ID0gbmV3IFJlZ0V4cCggcmVnZXhTICk7CiAgcmV0dXJuIHJlZ2V4LnRlc3QoIHdpbmRv
dy5sb2NhdGlvbi5ocmVmICk7Cgp9CgpmdW5jdGlvbiBzZXREZWZhdWx0VGFncygpIHsKCiAgaWYg
KGdldE1ldGFUYWcoIldULnpfZ3B0IikgPT0gIiIpIHsKICAgIGFkZE1ldGFUYWcoIldULnpfZ3B0
IiwgIk90aGVyIik7CiAgfQoKfQoKZnVuY3Rpb24gZ2V0RWxlbWVudHNCeUNsYXNzKHRhZ05hbWUs
IGNsYXNzTmFtZSkgewoKICB2YXIgcmVzdWx0QXJyYXkgPSBuZXcgQXJyYXkoKTsKICB2YXIgY2xh
c3NSZWdFeHAgPSBuZXcgUmVnRXhwKCdcXGInK2NsYXNzTmFtZSsnXFxiJyk7CiAgdmFyIGVsZW1l
bnRzQnlUYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdOYW1lKTsKICBmb3Io
dmFyIGk9MCxqPWVsZW1lbnRzQnlUYWcubGVuZ3RoOyBpPGo7IGkrKykgewogICAgaWYoY2xhc3NS
ZWdFeHAudGVzdChlbGVtZW50c0J5VGFnW2ldLmNsYXNzTmFtZSkpIHsKICAgICAgcmVzdWx0QXJy
YXkucHVzaChlbGVtZW50c0J5VGFnW2ldKTsKICAgIH0gCiAgfQogIGlmIChyZXN1bHRBcnJheS5s
ZW5ndGggPT0gMCkgcmVzdWx0QXJyYXkgPSBudWxsOwogIHJldHVybiByZXN1bHRBcnJheTsKCn0K
CmZ1bmN0aW9uIGluY2x1ZGVGaWxlKGluY0ZpbGVuYW1lKSB7CgogIHZhciBpbmNGaWxlSlMgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICBpbmNGaWxlSlMuc2V0QXR0cmlidXRl
KCdsYW5ndWFnZScsICdqYXZhc2NyaXB0Y29udGVudCcpOwogIGluY0ZpbGVKUy5zZXRBdHRyaWJ1
dGUoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7CiAgaW5jRmlsZUpTLnNldEF0dHJpYnV0ZSgn
c3JjJywgaW5jRmlsZW5hbWUpOwogIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFk
JykuaXRlbSgwKS5hcHBlbmRDaGlsZChpbmNGaWxlSlMpOwoKfQoKc19jb2RlX2xpbmt0cmFjayA9
IHNfY29kZV9saW5rdHJhY2tfY2xhc3NpZmllZHMgPSBzX2NvZGVfbGlua3RyYWNrX2luZGl2ID0g
ZnVuY3Rpb24oZGVzYykgewogdHJ5IHsgZGNzTXVsdGlUcmFjaygnRENTLmRjc3NpcCcsICd3d3cu
bnl0aW1lcy5jb20nLCAnRENTLmRjc3VyaScsICcvJyArIGRlc2MgKyAnLmh0bWwnLCAnV1QudGkn
LCBkZXNjLCAnV1Quel9kY3NtJywgJzEnKTsgfQoJICBjYXRjaChlcnIpIHsgfQp9CgrUAAUAEQAH
AAgAWABZABQAWl8QP2h0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2FuYWx5dGlj
cy9ndy5qcz9jc2lkPUgwNzcwN08RBK1icGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRh
cmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXll
ZEFyY2hpdmVyrxAkCwwmLC0zHjQ1U1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa29wVSRudWxs3Q0O
DxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3
UiQyUiQ5UiQwUiQxgCOAAoAiEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJl
bGF0aXZlgASAAIADXxA/aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvYW5hbHl0
aWNzL2d3LmpzP2NzaWQ9SDA3NzA30i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhO
U09iamVjdCNBrZH7CVr2xxDI0w02Nzg5RldOUy5rZXlzWk5TLm9iamVjdHOAIaw6Ozw9Pj9AQUJD
REWACYAKgAuADIANgA6AD4AQgBGAEoATgBSsR0hJSktMTU5PUFFSgBWAFoAXgBiAGYAagBuAHIAd
gB6AH4AgVERhdGVdQ2FjaGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNfEBBD
b250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGheTnRjb2Vu
dC1MZW5ndGhURXRhZ1pDb25uZWN0aW9uVFZhcnlfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQ0
IEdNVF8QF3ByaXZhdGUsIG1heC1hZ2U9MjY1NTI0XxAdTW9uLCAyMiBTZXAgMjAwOCAyMTo1NTo0
MyBHTVRVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNhdGlvbi94
LWphdmFzY3JpcHRUMjE3NVQ1MjU5XxAPIjE0OGItNDhkODE0NWYiWmtlZXAtYWxpdmVfEA9BY2Nl
cHQtRW5jb2RpbmfSLi9sbaNtbjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeREU
i9IuL3Fyo3JzMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIA
NwA6AFAAUgBkAIsAkQCsALMAtgC5AL0AwQDEAMcAygDNANAA0wDWANkA2wDdAN8A4QDjAOUA5wDp
AOsA7QDvAPEA+AEAAQwBDgEQARIBVAFZAWIBbQFwAXYBfwGIAYoBkQGZAaQBpgGzAbUBtwG5AbsB
vQG/AcEBwwHFAccByQHLAdgB2gHcAd4B4AHiAeQB5gHoAeoB7AHuAfAB9QIDAhECHwIyAjkCRgJV
AmQCaQJ0AnkCmQKzAtMC2QLeAvcDEgMXAxwDLgM5A0sDUANUA2oDdwN6A38DgwOXAAAAAAAAAgEA
AAAAAAAAdAAAAAAAAAAAAAAAAAAAA6VPERSLLyoKICogQnVpbGQgdmVyc2lvbiBVVy0xMS4xLjAt
OTQKICAqLwogIHZhciByc2lfazsKICB2YXIgcnNpX25vdyA9IG5ldyBEYXRlKCk7CiAgdmFyIHJz
aV9jc2lkID0gJ0gwNzcwNyc7CiAgLy88IS0tIAogIC8vIHYzIC8vCiAgLy8gU3RhcnQgQ29uZmln
IC8vIAogIHZhciBETV9DU0lEID0gIkgwNzcwNyI7CiAgdmFyIERNX1BJWCA9ICJwaXgwMS5yZXZz
Y2kubmV0IjsKICB2YXIgRE1fRFJFRiA9IDA7CiAgdmFyIERNX01VTFQgPSAwOwogIHZhciBETV9S
RUZfT04gPSAxOwogIHZhciBETV9USVRfT04gPSAwOwogIC8vIEVuZCBDb25maWcgLy8gCiAgdmFy
IERNX1RFU1QgPSAwO3ZhciBfRE1fRFRFID0gbmV3IERhdGUoKTt2YXIgX0RNX1VEQyA9IGRvY3Vt
ZW50O3ZhciBfRE1fQ0hSID0gbnVsbDt2YXIgX0RNX3NJbWcgPSBuZXcgQXJyYXkoKTt2YXIgX0RN
X2hleGMgPSBuZXcgQXJyYXkoIjAiLCIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjki
LCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiKTt2YXIgX0RNX0JDTDEgPSAiPyY9JS4oKSI7dmFyIF9E
TV9HQ0wyID0gIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Ijt2YXIgX0RNX1RHSUQgPSAiYiIgKyBfRE1faGV4Y1soRE1fVEVTVDw8
MyB8IDB4MyldO3ZhciBfRE1fRVVSSSA9IHR5cGVvZihlbmNvZGVVUklDb21wb25lbnQpPT0iZnVu
Y3Rpb24iO3ZhciBfRE1fQ0NBID0gdHlwZW9mKCIiLmNoYXJDb2RlQXQpPT0iZnVuY3Rpb24iO2Zv
cihfRE1fQ0hSPSIiLGk9MDtpPDI1NjtpKyspIHsgX0RNX0NIUiArPSBTdHJpbmcuZnJvbUNoYXJD
b2RlKGkpOyB9dmFyIF9ETV9BU0NJSSA9IF9ETV9DSFIuc3Vic3RyKDAsMTI4KTt2YXIgX0RNX1VU
WiA9ICgtMSpfRE1fRFRFLmdldFRpbWV6b25lT2Zmc2V0KCkpKzcyMDt2YXIgX0RNX0NOViwgX0RN
X0xPQywgX0RNX1JFRjt2YXIgX0RNX0NMRCA9IDA7X0RNX3JzdFJlcSgpO2Z1bmN0aW9uIERNX3Rh
ZygpIHsgaWYgKF9ETV9DTEQgPT0gMCB8fCBETV9NVUxUID09IDEpIHsgX0RNX0NMRCA9IDE7IGlm
KERNX0RSRUY9PTEpIHsgX0RNX2FkZE5WKCJETV9MT0MiLF9ETV9lbmNkKF9ETV9SRUYsX0RNX0JD
TDEsMCkpOyB9IGVsc2UgeyBfRE1fYWRkTlYoIkRNX0xPQyIsX0RNX2VuY2QoX0RNX0xPQyxfRE1f
QkNMMSwwKSk7IH0gaWYoRE1fUkVGX09OPT0xKXsgX0RNX2FkZE5WKCJETV9SRUYiLF9ETV9lbmNk
KF9ETV9SRUYsX0RNX0JDTDEsMCkpOyB9IGlmKERNX1RJVF9PTj09MSl7IF9ETV9hZGROVigiRE1f
VElUIixfRE1fZW5jZChfRE1fVURDLnRpdGxlLnRvU3RyaW5nKCksX0RNX0JDTDEsMCkpOyB9IF9E
TV9DTlYrPSImRE1fRU9NPTEiOyBfRE1fcGFjayhfRE1fQ05WKTsgfSBfRE1fcnN0UmVxKCk7fWZ1
bmN0aW9uIF9ETV9wYWNrKGQpIHsgdmFyIHJkdGUgPSBuZXcgRGF0ZSgpOyB2YXIgcmlkID0gX0RN
X3RvSGV4KE1hdGguZmxvb3IocmR0ZSkpOyB2YXIgYnNlPSIiLGhkcj0iIixkYXQ9IiI7IHZhciBw
cnQ9bG9jYXRpb24ucHJvdG9jb2wrIi8vIjsgdmFyIG1ybD0yMDAwLHVzZD0wOyBkPV9ETV9lbmNk
KGQsX0RNX0dDTDIsMSk7IGhkcj0iLyIrRE1fQ1NJRCsiLyIrX0RNX1RHSUQrIi8wLzMvIitfRE1f
VVRaKyIvMS8wLyIrcmlkKyIvMC8wLzAwMDAwMDAwIjsgYnNlPSIvIitNYXRoLmZsb29yKE1hdGgu
cmFuZG9tKCkqTWF0aC5wb3coMTAsOSkpKyIuZ2lmP0Q9IjsgdXNkPShwcnQrRE1fUElYK2hkciti
c2UpLmxlbmd0aDsgZGF0PWQuc3Vic3RyKDAsKG1ybC11c2QtKGQuY2hhckF0KG1ybC11c2QtMSk9
PSclJz8xOihkLmNoYXJBdChtcmwtdXNkLTIpPT0nJSc/MjowKSkpKTsgX0RNX3NoaXAoX0RNX3Rv
SGV4KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpNYXRoLnBvdygxMCw5KSkpLHBydCxETV9QSVgs
aGRyK2JzZStkYXQsMCk7IHJldHVybiAxO31mdW5jdGlvbiBfRE1fc2hpcChzcmwscCxzMSx1LHQp
IHsgX0RNX3NJbWdbc3JsXT1uZXcgSW1hZ2UoMiwzKTsgX0RNX3NJbWdbc3JsXS5zcmMgPSBwK3Mx
K3U7fWZ1bmN0aW9uIF9ETV9hZGROVihuLHYpIHsgIF9ETV9DTlYgKz0gKF9ETV9DTlY/IiYiOiIi
KStuKyI9Iit2OyB9ZnVuY3Rpb24gX0RNX2hleGVzYyhpKSB7IHJldHVybiAiJSIrX0RNX3BhZChf
RE1fdG9IZXgoaSksMik7fWZ1bmN0aW9uIF9ETV9lc2MoYykgeyBpZihfRE1fRVVSSSl7IHJldHVy
biBlbmNvZGVVUklDb21wb25lbnQoYyk7IH1lbHNleyB2YXIgY2k9X0RNX0NDQT9jLmNoYXJDb2Rl
QXQoMCk6X0RNX0NIUi5pbmRleE9mKGMpOyBpZihjaTwwKXsgcmV0dXJuICIiOyB9IGlmKGNpPD0w
eDAwN2YpeyByZXR1cm4gX0RNX2hleGVzYyhjaSk7IH1lbHNlIGlmKGNpPD0weDA3ZmYpeyByZXR1
cm4gX0RNX2hleGVzYygweGMwfChjaT4+NikpK19ETV9oZXhlc2MoMHg4MHwoY2kmMHgzZikpOyB9
ZWxzZXsgcmV0dXJuIF9ETV9oZXhlc2MoMHhlMHwoY2k+PjEyKSkrX0RNX2hleGVzYygweDgwfCgo
Y2k+PjYpJjB4M2YpKStfRE1faGV4ZXNjKDB4ODB8KGNpJjB4M2YpKTsgfSB9fWZ1bmN0aW9uIF9E
TV9lbmNkKHMsY2hycyxiKXsgZm9yKHZhciBpPTAsbnM9IiIsYz0iIjtpPHMubGVuZ3RoO2krKyl7
IGM9cy5jaGFyQXQoaSk7IGlmKChiPT0xID8gY2hycy5pbmRleE9mKGMpPj0wIDogY2hycy5pbmRl
eE9mKGMpPDApKXsgbnMrPWM7IH1lbHNleyBucys9X0RNX2VzYyhjKTsgfSB9IHJldHVybiBuczt9
ZnVuY3Rpb24gX0RNX2FzY2lpT25seShzKXsgZm9yICh2YXIgaT0wLG5zPSIiLGM9IiI7aTxzLmxl
bmd0aDsrK2kpeyBjPXMuY2hhckF0KGkpOyBpZihfRE1fQVNDSUkuaW5kZXhPZihjKT49MCkgbnMr
PWM7IH0gcmV0dXJuIG5zO31mdW5jdGlvbiBfRE1fYXBwZW5kVG9VcmwodSxuLHYpIHsgcmV0dXJu
IHUrKCh1LmluZGV4T2YoIj8iKT09LTEpPyI/IjoiJiIpK19ETV9hc2NpaU9ubHkobikrIj0iK19E
TV9hc2NpaU9ubHkodik7fWZ1bmN0aW9uIF9ETV90b0hleChuKXsgdmFyIHJtZD0wLHF1bz0wLGhl
eD0iIjsgaWYobiA8IDE2KSB7IHJldHVybiBfRE1faGV4Y1tuXTsgfWVsc2V7IHJtZCA9IChuJTE2
KTsgcXVvID0gTWF0aC5mbG9vcigobiAtIHJtZCkvMTYpOyByZXR1cm4gKF9ETV90b0hleChxdW8p
K19ETV90b0hleChybWQpKTsgfX1mdW5jdGlvbiBfRE1fcGFkKGQscCl7IGQgKz0gIiI7IHdoaWxl
KGQubGVuZ3RoIDwgcCl7IGQgPSAiMCIrZDsgfSByZXR1cm4gZDt9ZnVuY3Rpb24gX0RNX2RlRnJh
Zyh1KXsgdmFyIGk9dS5pbmRleE9mKCcjJyk7IGlmKGk+PTApeyByZXR1cm4gdS5zdWJzdHIoMCxp
KTsgfSByZXR1cm4gdTt9ZnVuY3Rpb24gX0RNX3JzdFJlcSgpIHsgX0RNX0NOViA9ICIiOyBfRE1f
TE9DID0gX0RNX2RlRnJhZyhfRE1fVURDLmxvY2F0aW9uLnRvU3RyaW5nKCkpOyBfRE1fUkVGID0g
X0RNX2RlRnJhZyhfRE1fVURDLnJlZmVycmVyLnRvU3RyaW5nKCkpO31mdW5jdGlvbiBETV9jYXQo
Y2F0KSB7IF9ETV9hZGROVigiRE1fQ0FUIixfRE1fZW5jZChjYXQsX0RNX0JDTDEsMCkpfWZ1bmN0
aW9uIERNX25hbWUoZikgeyBfRE1fYWRkTlYoIkRNX05BTSIsX0RNX2VuY2QoZixfRE1fQkNMMSww
KSl9ZnVuY3Rpb24gRE1fa2V5d29yZHMoaykgeyBfRE1fYWRkTlYoIkRNX0tZVyIsX0RNX2VuY2Qo
ayxfRE1fQkNMMSwwKSl9ZnVuY3Rpb24gRE1fYWRkVG9Mb2Mobix2KSB7IF9ETV9MT0M9X0RNX2Fw
cGVuZFRvVXJsKF9ETV9MT0Msbix2KTsgaWYoRE1fRFJFRj09MSkgeyBfRE1fUkVGPV9ETV9hcHBl
bmRUb1VybChfRE1fUkVGLG4sdik7IH19ZnVuY3Rpb24gRE1fYWRkRW5jVG9Mb2Mobix2KSB7IERN
X2FkZFRvTG9jKF9ETV9lbmNkKG4sX0RNX0dDTDIsMSksX0RNX2VuY2QodixfRE1fR0NMMiwxKSk7
fWZ1bmN0aW9uIERNX3NldExvYyh1KSB7IF9ETV9MT0M9dTsgaWYoRE1fRFJFRj09MSkgeyBfRE1f
UkVGPXU7IH19Ly8tLT4gCiAgdmFyIHJzaV90ZD1yc2lfbm93LmdldEZ1bGxZZWFyKCkrJ18nKyhy
c2lfbm93LmdldE1vbnRoKCkrMSkrJ18nK3JzaV9ub3cuZ2V0RGF0ZSgpOwogIHZhciByc2lfY3Q9
MDsKICB2YXIgcnNpX2JlZz1kb2N1bWVudC5jb29raWUuaW5kZXhPZigncnNpX2N0PScpOwogIGlm
KHJzaV9iZWc+PTApewogIHJzaV9iZWc9ZG9jdW1lbnQuY29va2llLmluZGV4T2YoJz0nLHJzaV9i
ZWcpKzE7CiAgaWYocnNpX2JlZz4wKXsKICBpZihyc2lfdGQ9PWRvY3VtZW50LmNvb2tpZS5zdWJz
dHJpbmcocnNpX2JlZyxyc2lfYmVnK3JzaV90ZC5sZW5ndGgpKXsKICByc2lfYmVnKz0ocnNpX3Rk
Lmxlbmd0aCsxKTsKICB2YXIgcnNpX2VuZD1kb2N1bWVudC5jb29raWUuaW5kZXhPZignOycscnNp
X2JlZyk7CiAgaWYocnNpX2VuZD09LTEpCiAgcnNpX2VuZD1kb2N1bWVudC5jb29raWUubGVuZ3Ro
OwogIHZhciByc2lfcGFyPXBhcnNlSW50KGRvY3VtZW50LmNvb2tpZS5zdWJzdHJpbmcocnNpX2Jl
Zyxyc2lfZW5kKSk7CiAgaWYoIWlzTmFOKHJzaV9wYXIpKQogIHJzaV9jdD1yc2lfcGFyOwogIH19
fQogIHZhciByc2lfdG9tPW5ldyBEYXRlKHJzaV9ub3cuZ2V0VGltZSgpKzg2NDAwMDAwKTsKICB2
YXIgcnNpX2RvbT1sb2NhdGlvbi5ob3N0bmFtZTsKICByc2lfZG9tPXJzaV9kb20ucmVwbGFjZSgv
LiooXC5bXHdcLV0rXC5bYS16QS1aXXszfSQpLywnJDEnKTsKICByc2lfZG9tPXJzaV9kb20ucmVw
bGFjZSgvLiooXC5bXHdcLV0rXC5cdytcLlthLXpBLVpdezJ9JCkvLCckMScpOwogIHJzaV9kb209
cnNpX2RvbS5yZXBsYWNlKC8uKihcLltcd1wtXXszLH1cLlthLXpBLVpdezJ9JCkvLCckMScpOwog
IGRvY3VtZW50LmNvb2tpZT0oJ3JzaV9jdD0nK3JzaV90ZCsnOicrKHJzaV9jdCsxKSsnO2V4cGly
ZXM9Jytyc2lfdG9tLnRvR01UU3RyaW5nKCkrJztwYXRoPS87ZG9tYWluPScrcnNpX2RvbSk7CiAg
cnNpX2sgPSAnJmtvPScgKyByc2lfdGQgKyAnX18nICsgTWF0aC5mbG9vcigocnNpX2N0KzIpLzMp
OwogCiAgdmFyIHJldlNjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgcmV2
U2Muc2V0QXR0cmlidXRlKCdsYW5ndWFnZScsICdqYXZhc2NyaXB0Jyk7CiAgcmV2U2Muc2V0QXR0
cmlidXRlKCd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpOwogIHJldlNjLnNldEF0dHJpYnV0ZSgn
c3JjJywgbG9jYXRpb24ucHJvdG9jb2wgKyAnLy9qcy5yZXZzY2kubmV0L2NvbW1vbi9wY3guanM/
dG1wbD1jbSZjc2lkPUgwNzcwNycgKyByc2lfayk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ2hlYWQnKS5pdGVtKDApLmFwcGVuZENoaWxkKHJldlNjKTsK1AAFABEABwAIAFwAXQAU
AF5fED9odHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC9hbmFseXRpY3MvcmV2ZW51
ZXNjaWVuY2UuanNPEQSpYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJY
JG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZl
cq8QJAsMJiwtMx40NVNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtvcFUkbnVsbN0NDg8QERITFBUW
FxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIk
MFIkMYAjgAKAIhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAE
gACAA18QP2h0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2FuYWx5dGljcy9yZXZl
bnVlc2NpZW5jZS5qc9IuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3Qj
Qa2R+wlbEegQyNMNNjc4OUZXTlMua2V5c1pOUy5vYmplY3RzgCGsOjs8PT4/QEFCQ0RFgAmACoAL
gAyADYAOgA+AEIARgBKAE4AUrEdISUpLTE1OT1BRUoAVgBaAF4AYgBmAGoAbgByAHYAegB+AIFRE
YXRlXUNhY2hlLUNvbnRyb2xdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzXxAQQ29udGVudC1F
bmNvZGluZ1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNvbnRlbnQtTGVuZ3RoXk50Y29lbnQtTGVuZ3Ro
VEV0YWdaQ29ubmVjdGlvblRWYXJ5XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NCBHTVRfEBdw
cml2YXRlLCBtYXgtYWdlPTU2MjEyOV8QHU1vbiwgMjIgU2VwIDIwMDggMjE6NTU6NDMgR01UVWJ5
dGVzVGd6aXBfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xXxAYYXBwbGljYXRpb24veC1qYXZhc2Ny
aXB0UzUzNVQxMDMzXiI0MDktNDhkODE0NWYiWmtlZXAtYWxpdmVfEA9BY2NlcHQtRW5jb2RpbmfS
Li9sbaNtbjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeREECdIuL3Fyo3JzMl8Q
EU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIsA
kQCsALMAtgC5AL0AwQDEAMcAygDNANAA0wDWANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPEA+AEA
AQwBDgEQARIBVAFZAWIBbQFwAXYBfwGIAYoBkQGZAaQBpgGzAbUBtwG5AbsBvQG/AcEBwwHFAccB
yQHLAdgB2gHcAd4B4AHiAeQB5gHoAeoB7AHuAfAB9QIDAhECHwIyAjkCRgJVAmQCaQJ0AnkCmQKz
AtMC2QLeAvcDEgMWAxsDKgM1A0cDTANQA2YDcwN2A3sDfwOTAAAAAAAAAgEAAAAAAAAAdAAAAAAA
AAAAAAAAAAAAA6FPEQQJLyoKJElkOiByZXZlbnVlc2NpZW5jZS5qcyAxMDAwNSAyMDA4LTA2LTE2
IDE0OjMzOjM5WiB1dHpjICQgCiovCgpmdW5jdGlvbiBnZXRNZXRhVGFnKHRhZ05hbWUpIHsKCiAg
dmFyIG1ldGFUYWdzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRhIik7CiAgZm9y
KHZhciBpIGluIG1ldGFUYWdzKXsgCiAgICBpZihtZXRhVGFnc1tpXS5uYW1lID09IHRhZ05hbWUp
IHsKICAgICAgcmV0dXJuIG1ldGFUYWdzW2ldLmNvbnRlbnQ7CiAgICB9CiAgfQogIHJldHVybiAi
IjsKfQoKZnVuY3Rpb24gYWRkQ2F0ZWdvcnkoY2F0ZWdvcnksIHZhbHVlVG9BcHBlbmQpIHsKCiAg
aWYgKHZhbHVlVG9BcHBlbmQgIT0gIiIpIAogICAgcmV0dXJuIGNhdGVnb3J5ICsgIiA+ICIgKyB2
YWx1ZVRvQXBwZW5kOwogIGVsc2UKICAgIHJldHVybiBjYXRlZ29yeTsKfQoKZnVuY3Rpb24gcmV2
ZW51ZXNjaWVuY2VJbml0KCkgewogICAgdmFyIGNvbnRlbnRHcm91cCA9IGdldE1ldGFUYWcoIldU
LmNnX24iKTsKICAgIGlmIChjb250ZW50R3JvdXAgIT0gIkhvbWVwYWdlIikgewogICAgICAgIHZh
ciBjYXRWYWx1ZSA9ICJOWVRpbWVzZ2xvYmFsIjsKICAgICAgICBjYXRWYWx1ZSA9IGFkZENhdGVn
b3J5KGNhdFZhbHVlLCBjb250ZW50R3JvdXApOwogICAgICAgIGNhdFZhbHVlID0gYWRkQ2F0ZWdv
cnkoY2F0VmFsdWUsIGdldE1ldGFUYWcoIldULmNnX3MiKSk7CiAgICAgICAgRE1fY2F0KGNhdFZh
bHVlKTsKICAgICAgICBETV90YWcoKTsKICAgIH0KfQoKaWYgKC9NU0lFLy50ZXN0KG5hdmlnYXRv
ci51c2VyQWdlbnQpKSB7CgkvLyBJbiBJRSwgd3JhcHBpbmcgdGhpcyBjb2RlIGJsb2NrIGluIHNl
dFRpbWVvdXQgaXMgbmVlZGVkIGJlY2F1c2UgaW4gY2VydGFpbiBjYXNlcywKCS8vIGl0IHdpbGwg
ZXhlY3V0ZSBiZWZvcmUgb3RoZXIgc2NyaXB0IGZpbGVzIG5lZWRlZCBhcmUgZnVsbHkgbG9hZGVk
LgoJd2luZG93LnNldFRpbWVvdXQocmV2ZW51ZXNjaWVuY2VJbml0LCAxKTsKfSBlbHNlIHsKCXJl
dmVudWVzY2llbmNlSW5pdCgpOwp9CtQABQARAAcACABgAGEAFABiXxA3aHR0cDovL2dyYXBoaWNz
OC5ueXRpbWVzLmNvbS9qcy9hcHAvYW5hbHl0aWNzL3d0aW5pdC5qc08RBHxicGxpc3QwMNQBAgME
BQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3Vy
Y2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAiCwwmLC0zHjQ1UVJTVFVWV1hZWltcXV5f
YGFiY2RlZmdrbFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhT
JDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAhgAKAIBAIEACABoAHgAWACBAHgAAQAdMN
JygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QN2h0dHA6Ly9ncmFwaGljczgubnl0aW1l
cy5jb20vanMvYXBwL2FuYWx5dGljcy93dGluaXQuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1l
ojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsJZFHbEMjTDTY3ODlFV05TLmtleXNaTlMub2JqZWN0c4Af
qzo7PD0+P0BBQkNEgAmACoALgAyADYAOgA+AEIARgBKAE6tGR0hJSktMTU5PUIAUgBWAFoAXgBiA
GYAagBuAHIAdgB5dTGFzdC1Nb2RpZmllZF1DYWNoZS1Db250cm9sXUFjY2VwdC1SYW5nZXNfEBBD
b250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRF
dGFnWkNvbm5lY3Rpb25UVmFyeV8QHU1vbiwgMjcgQXVnIDIwMDcgMTc6NDk6MTIgR01UXxAWcHJp
dmF0ZSwgbWF4LWFnZT05NjA0NFVieXRlc1RnemlwXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMV8Q
GGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFM1NzdfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQ0
IEdNVF4iNDg1LTQ2ZDMwZTk4IlprZWVwLWFsaXZlXxAPQWNjZXB0LUVuY29kaW5n0i4vaGmjaWoy
XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRBIXSLi9tbqNubzJfEBFOU0hUVFBV
UkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACJAI8AqgCxALQA
twC7AL8AwgDFAMgAywDOANEA1ADXANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPYA/gEKAQwBDgEQ
AUoBTwFYAWMBZgFsAXUBfgGAAYcBjwGaAZwBqAGqAawBrgGwAbIBtAG2AbgBugG8Ab4BygHMAc4B
0AHSAdQB1gHYAdoB3AHeAeAB7gH8AgoCHQIkAjECQAJFAkoCVQJaAnoCkwKZAp4CtwLSAtYC9gMF
AxADIgMnAysDQQNOA1EDVgNaA24AAAAAAAACAQAAAAAAAABwAAAAAAAAAAAAAAAAAAADfE8RBIVm
dW5jdGlvbiBEY3NJbml0KCl7CiAgdGhpcy5lbmFibGVkPXRydWU7CiAgdGhpcy50cmFja2V2ZW50
cz1ndHJhY2tldmVudHM7CiAgICAgIHRoaXMuZGNzaWQ9Z2Rjc2lkOwogIHRoaXMuZnBjZG9tPWdm
cGNkb207CiAgdGhpcy5kb21haW49Z2RvbWFpbjsKICB0aGlzLmV4cmU9KGZ1bmN0aW9uKCl7CiAg
ICBpZiAod2luZG93LlJlZ0V4cCl7CiAgICAgIHJldHVybihuZXcgUmVnRXhwKCJkY3ModXJpKXwo
cmVmKXwoYXV0KXwobWV0KXwoc3RhKXwoc2lwKXwocHJvKXwoYnl0KXwoZGF0KXwocDNwKXwoY2Zn
KXwocmVkaXJlY3QpfChjaXApIiwiaSIpKTsKICAgIH0KICAgIGVsc2V7CiAgICAgIHJldHVybigi
Iik7CiAgICB9CiAgfSkoKTsKICB0aGlzLmZwYz0iV1RfRlBDIjsKICB0aGlzLmkxOG49ZmFsc2U7
CiAgdGhpcy5pbWFnZXM9W107CiAgdGhpcy5pbmRleD0wOwogIHRoaXMucXA9W107CiAgdGhpcy5y
ZT0oZnVuY3Rpb24oKXsKICAgIGlmICh3aW5kb3cuUmVnRXhwKXsKICAgICAgcmV0dXJuKHRoaXMu
aTE4bj97IiUyNSI6L1wlL2d9OnsiJTA5IjovXHQvZywiJTIwIjovIC9nLCIlMjMiOi9cIy9nLCIl
MjYiOi9cJi9nLCIlMkIiOi9cKy9nLCIlM0YiOi9cPy9nLCIlNUMiOi9cXC9nLCIlMjIiOi9cIi9n
LCIlN0YiOi9ceDdGL2csIiVBMCI6L1x4QTAvZ30pOwogICAgfQogICAgZWxzZXsKICAgICAgcmV0
dXJuKCIiKTsKICAgIH0KICB9KSgpOwogIHRoaXMudGltZXpvbmU9LTU7Ci8vICB2YXIgdD10aGlz
OwovLyAgICAoZnVuY3Rpb24oKXsKLy8gICAgICAgIGlmICh0LmVuYWJsZWQmJihkb2N1bWVudC5j
b29raWUuaW5kZXhPZih0LmZwYysiPSIpPT0tMSkmJihkb2N1bWVudC5jb29raWUuaW5kZXhPZigi
V1RMT1BUT1VUPSIpPT0tMSkpewovLyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8c2NyIisi
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSciKyJodHRwIisod2luZG93LmxvY2F0aW9u
LnByb3RvY29sLmluZGV4T2YoJ2h0dHBzOicpPT0wPydzJzonJykrIjovLyIrdC5kb21haW4rIi8i
K3QuZGNzaWQrIi93dGlkLmpzIisiJz48XC9zY3IiKyJpcHQ+Iik7Ci8vICAgICAgICB9Ci8vICB9
KSgpOwp9CnZhciBEQ1M9e307CnZhciBXVD17fTsKdmFyIERDU2V4dD17fTsKdmFyIGRjc0luaXQ9
bmV3IERjc0luaXQoKTsKCtQABQARAAcACABkAGUAFABmXxA3aHR0cDovL2dyYXBoaWNzOC5ueXRp
bWVzLmNvbS9qcy9hcHAvYW5hbHl0aWNzL3d0YmFzZS5qc08RBKZicGxpc3QwMNQBAgMEBQYJClgk
dmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNw
b25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAkCwwmLC0zHjQ1U1RVVldYWVpbXF1eX2BhYmNkZWZn
aGlqa29wVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBT
JDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgCOAAoAiEAgQAIAGgAeABYAIEAeAABAB0w0nKCkk
K1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxA3aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNv
bS9qcy9hcHAvYW5hbHl0aWNzL3d0YmFzZS5qc9IuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJV
TlNVUkxYTlNPYmplY3QjQa2R+wll27oQyNMNNjc4OUZXTlMua2V5c1pOUy5vYmplY3RzgCGsOjs8
PT4/QEFCQ0RFgAmACoALgAyADYAOgA+AEIARgBKAE4AUrEdISUpLTE1OT1BRUoAVgBaAF4AYgBmA
GoAbgByAHYAegB+AIFREYXRlXUNhY2hlLUNvbnRyb2xdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFu
Z2VzXxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNvbnRlbnQtTGVuZ3Ro
Xk50Y29lbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvblRWYXJ5XxAdTW9uLCAxMCBOb3YgMjAwOCAy
MzozODo0NCBHTVRfEBdwcml2YXRlLCBtYXgtYWdlPTU2MjMzNl8QHU1vbiwgMjIgU2VwIDIwMDgg
MjE6NTU6NDMgR01UVWJ5dGVzVGd6aXBfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xXxAYYXBwbGlj
YXRpb24veC1qYXZhc2NyaXB0VDU5MTBVMTg2NDdfEA8iNDhkNy00OGQ4MTQ1ZiJaa2VlcC1hbGl2
ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2xto21uMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0
aW9uYXJ5EUjX0i4vcXKjcnMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEA
GgAfACkAMgA3ADoAUABSAGQAiwCRAKwAswC2ALkAvQDBAMQAxwDKAM0A0ADTANYA2QDbAN0A3wDh
AOMA5QDnAOkA6wDtAO8A8QD4AQABDAEOARABEgFMAVEBWgFlAWgBbgF3AYABggGJAZEBnAGeAasB
rQGvAbEBswG1AbcBuQG7Ab0BvwHBAcMB0AHSAdQB1gHYAdoB3AHeAeAB4gHkAeYB6AHtAfsCCQIX
AioCMQI+Ak0CXAJhAmwCcQKRAqsCywLRAtYC7wMKAw8DFQMnAzIDRANJA00DYwNwA3MDeAN8A5AA
AAAAAAACAQAAAAAAAAB0AAAAAAAAAAAAAAAAAAADnk8RSNcvKgokSWQ6IHd0YmFzZS5qcyAxMDAw
NSAyMDA4LTA2LTE2IDE0OjMzOjM5WiB1dHpjICQgCiAqLwpmdW5jdGlvbiBkY3NDUVAoKXsKICAg
ICAgICAgICAgdmFyIHFyeT13aW5kb3cubG9jYXRpb24uc2VhcmNoLnRvTG93ZXJDYXNlKCk7CiAg
ICAgICAgICAgIGlmICggKHFyeSAmJiAocXJ5LmluZGV4T2YoInd0Lm1jX2lkIikhPS0xKSAmJiAo
cXJ5LmluZGV4T2YoInd0Lm1jX2V2Iik9PS0xKSkgfHwgKChXVC5tY19pZCE9bnVsbCkgJiYgKFdU
Lm1jX2lkLnRvU3RyaW5nKCkhPSIiKSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiY2xpY2siOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiIjsKICAgICAgICAgICAgfQp9CmZ1bmN0aW9uIGRjc0Nvb2tpZSgp
ewoJaWYgKHR5cGVvZihkY3NPdGhlcik9PSJmdW5jdGlvbiIpewoJCWRjc090aGVyKCk7Cgl9Cgll
bHNlIGlmICh0eXBlb2YoZGNzRlBDKT09ImZ1bmN0aW9uIil7CgkJZGNzRlBDKGRjc0luaXQudGlt
ZXpvbmUpOwoJfQp9CmZ1bmN0aW9uIGRjc0dldENvb2tpZShuYW1lKXsKCXZhciBjb29raWVzPWRv
Y3VtZW50LmNvb2tpZS5zcGxpdCgiOyAiKTsKCXZhciBjbWF0Y2g9W107Cgl2YXIgaWR4PTA7Cgl2
YXIgaT0wOwoJdmFyIG5hbWVsZW49bmFtZS5sZW5ndGg7Cgl2YXIgY2xlbj1jb29raWVzLmxlbmd0
aDsKCWZvciAoaT0wO2k8Y2xlbjtpKyspewoJCXZhciBjPWNvb2tpZXNbaV07CgkJaWYgKChjLnN1
YnN0cmluZygwLG5hbWVsZW4rMSkpPT0obmFtZSsiPSIpKXsKCQkJY21hdGNoW2lkeCsrXT1jOwoJ
CX0KCX0KCXZhciBjbWF0Y2hDb3VudD1jbWF0Y2gubGVuZ3RoOwoJaWYgKGNtYXRjaENvdW50PjAp
ewoJCWlkeD0wOwoJCWlmICgoY21hdGNoQ291bnQ+MSkmJihuYW1lPT1kY3NJbml0LmZwYykpewoJ
CQl2YXIgZExhdGVzdD1uZXcgRGF0ZSgwKTsKCQkJZm9yIChpPTA7aTxjbWF0Y2hDb3VudDtpKysp
ewoJCQkJdmFyIGx2PXBhcnNlSW50KGRjc0dldENydW1iKGNtYXRjaFtpXSwibHYiKSk7CgkJCQl2
YXIgZExzdD1uZXcgRGF0ZShsdik7CgkJCQlpZiAoZExzdD5kTGF0ZXN0KXsKCQkJCQlkTGF0ZXN0
LnNldFRpbWUoZExzdC5nZXRUaW1lKCkpOwoJCQkJCWlkeD1pOwoJCQkJfQoJCQl9CgkJfQoJCXJl
dHVybiB1bmVzY2FwZShjbWF0Y2hbaWR4XS5zdWJzdHJpbmcobmFtZWxlbisxKSk7Cgl9CgllbHNl
ewoJCXJldHVybiBudWxsOwoJfQp9CmZ1bmN0aW9uIGRjc0dldENydW1iKGN2YWwsY3J1bWIpewoJ
dmFyIGFDb29raWU9Y3ZhbC5zcGxpdCgiOiIpOwoJZm9yICh2YXIgaT0wO2k8YUNvb2tpZS5sZW5n
dGg7aSsrKXsKCQl2YXIgYUNydW1iPWFDb29raWVbaV0uc3BsaXQoIj0iKTsKCQlpZiAoY3J1bWI9
PWFDcnVtYlswXSl7CgkJCXJldHVybiBhQ3J1bWJbMV07CgkJfQoJfQoJcmV0dXJuIG51bGw7Cn0K
ZnVuY3Rpb24gZGNzR2V0SWRDcnVtYihjdmFsLGNydW1iKXsKCXZhciBpZD1jdmFsLnN1YnN0cmlu
ZygwLGN2YWwuaW5kZXhPZigiOmx2PSIpKTsKCXZhciBhQ3J1bWI9aWQuc3BsaXQoIj0iKTsKCWZv
ciAodmFyIGk9MDtpPGFDcnVtYi5sZW5ndGg7aSsrKXsKCQlpZiAoY3J1bWI9PWFDcnVtYlswXSl7
CgkJCXJldHVybiBhQ3J1bWJbMV07CgkJfQoJfQoJcmV0dXJuIG51bGw7Cn0KZnVuY3Rpb24gZGNz
RlBDKG9mZnNldCl7CglpZiAodHlwZW9mKG9mZnNldCk9PSJ1bmRlZmluZWQiKXsKCQlyZXR1cm47
Cgl9CglpZiAoZG9jdW1lbnQuY29va2llLmluZGV4T2YoIldUTE9QVE9VVD0iKSE9LTEpewoJCXJl
dHVybjsKCX0KCXZhciBuYW1lPWRjc0luaXQuZnBjOwoJdmFyIGRDdXI9bmV3IERhdGUoKTsKCXZh
ciBhZGo9KGRDdXIuZ2V0VGltZXpvbmVPZmZzZXQoKSo2MDAwMCkrKG9mZnNldCozNjAwMDAwKTsK
CWRDdXIuc2V0VGltZShkQ3VyLmdldFRpbWUoKSthZGopOwoJdmFyIGRFeHA9bmV3IERhdGUoZEN1
ci5nZXRUaW1lKCkrMzE1MzYwMDAwMDAwKTsKCXZhciBkU2VzPW5ldyBEYXRlKGRDdXIuZ2V0VGlt
ZSgpKTsKCVdULmNvX2Y9V1QudnRfc2lkPVdULnZ0X2Y9V1QudnRfZl9hPVdULnZ0X2Zfcz1XVC52
dF9mX2Q9V1QudnRfZl90bGg9V1QudnRfZl90bHY9IiI7CglpZiAoZG9jdW1lbnQuY29va2llLmlu
ZGV4T2YobmFtZSsiPSIpPT0tMSl7CgkJaWYgKCh0eXBlb2YoZ1d0SWQpIT0idW5kZWZpbmVkIikm
JihnV3RJZCE9IiIpKXsKCQkJV1QuY29fZj1nV3RJZDsKCQl9CgkJZWxzZSBpZiAoKHR5cGVvZihn
VGVtcFd0SWQpIT0idW5kZWZpbmVkIikmJihnVGVtcFd0SWQhPSIiKSl7CgkJCVdULmNvX2Y9Z1Rl
bXBXdElkOwoJCQlXVC52dF9mPSIxIjsKCQl9CgkJZWxzZXsKCQkJV1QuY29fZj0iMiI7CgkJCXZh
ciBjdXI9ZEN1ci5nZXRUaW1lKCkudG9TdHJpbmcoKTsKCQkJZm9yICh2YXIgaT0yO2k8PSgzMi1j
dXIubGVuZ3RoKTtpKyspewoJCQkJV1QuY29fZis9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjE2
LjApLnRvU3RyaW5nKDE2KTsKCQkJfQoJCQlXVC5jb19mKz1jdXI7CgkJCVdULnZ0X2Y9IjEiOwoJ
CX0KCQlpZiAodHlwZW9mKGdXdEFjY291bnRSb2xsdXApPT0idW5kZWZpbmVkIil7CgkJCVdULnZ0
X2ZfYT0iMSI7CgkJfQoJCVdULnZ0X2Zfcz1XVC52dF9mX2Q9IjEiOwoJCVdULnZ0X2ZfdGxoPVdU
LnZ0X2ZfdGx2PSIwIjsKCX0KCWVsc2V7CgkJdmFyIGM9ZGNzR2V0Q29va2llKG5hbWUpOwoJCXZh
ciBpZD1kY3NHZXRJZENydW1iKGMsImlkIik7CgkJdmFyIGx2PXBhcnNlSW50KGRjc0dldENydW1i
KGMsImx2IikpOwoJCXZhciBzcz1wYXJzZUludChkY3NHZXRDcnVtYihjLCJzcyIpKTsKCQlpZiAo
KGlkPT1udWxsKXx8KGlkPT0ibnVsbCIpfHxpc05hTihsdil8fGlzTmFOKHNzKSl7CgkJCXJldHVy
bjsKCQl9CgkJV1QuY29fZj1pZDsKCQl2YXIgZExzdD1uZXcgRGF0ZShsdik7CgkJV1QudnRfZl90
bGg9TWF0aC5mbG9vcigoZExzdC5nZXRUaW1lKCktYWRqKS8xMDAwKTsKCQlkU2VzLnNldFRpbWUo
c3MpOwoJCWlmICgoZEN1ci5nZXRUaW1lKCk+KGRMc3QuZ2V0VGltZSgpKzE4MDAwMDApKXx8KGRD
dXIuZ2V0VGltZSgpPihkU2VzLmdldFRpbWUoKSsyODgwMDAwMCkpKXsKCQkJV1QudnRfZl90bHY9
TWF0aC5mbG9vcigoZFNlcy5nZXRUaW1lKCktYWRqKS8xMDAwKTsKCQkJZFNlcy5zZXRUaW1lKGRD
dXIuZ2V0VGltZSgpKTsKCQkJV1QudnRfZl9zPSIxIjsKCQl9CgkJaWYgKChkQ3VyLmdldERheSgp
IT1kTHN0LmdldERheSgpKXx8KGRDdXIuZ2V0TW9udGgoKSE9ZExzdC5nZXRNb250aCgpKXx8KGRD
dXIuZ2V0WWVhcigpIT1kTHN0LmdldFllYXIoKSkpewoJCQlXVC52dF9mX2Q9IjEiOwoJCX0KCX0K
CVdULmNvX2Y9ZXNjYXBlKFdULmNvX2YpOwoJV1QudnRfc2lkPVdULmNvX2YrIi4iKyhkU2VzLmdl
dFRpbWUoKS1hZGopOwoJdmFyIGV4cGlyeT0iOyBleHBpcmVzPSIrZEV4cC50b0dNVFN0cmluZygp
OwoJZG9jdW1lbnQuY29va2llPW5hbWUrIj0iKyJpZD0iK1dULmNvX2YrIjpsdj0iK2RDdXIuZ2V0
VGltZSgpLnRvU3RyaW5nKCkrIjpzcz0iK2RTZXMuZ2V0VGltZSgpLnRvU3RyaW5nKCkrZXhwaXJ5
KyI7IHBhdGg9LyIrKCgoZGNzSW5pdC5mcGNkb20hPSIiKSk/KCI7IGRvbWFpbj0iK2Rjc0luaXQu
ZnBjZG9tKTooIiIpKTsKCWlmIChkb2N1bWVudC5jb29raWUuaW5kZXhPZihuYW1lKyI9Iik9PS0x
KXsKCQlXVC5jb19mPVdULnZ0X3NpZD1XVC52dF9mX3M9V1QudnRfZl9kPVdULnZ0X2ZfdGxoPVdU
LnZ0X2ZfdGx2PSIiOwoJCVdULnZ0X2Y9V1QudnRfZl9hPSIyIjsKCX0KfQoKZnVuY3Rpb24gZGNz
VHlwZU1hdGNoKHB0aCwgdHlwZWxpc3QpewoJdmFyIHR5cGU9cHRoLnN1YnN0cmluZyhwdGgubGFz
dEluZGV4T2YoIi4iKSsxLHB0aC5sZW5ndGgpOwoJdmFyIHR5cGVzPXR5cGVsaXN0LnNwbGl0KCIs
Iik7Cglmb3IgKHZhciBpPTA7aTx0eXBlcy5sZW5ndGg7aSsrKXsKCQlpZiAodHlwZT09dHlwZXNb
aV0pewoJCQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9CglyZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gZGNz
RXZ0KGV2dCx0YWcpewoJdmFyIGU9ZXZ0LnRhcmdldHx8ZXZ0LnNyY0VsZW1lbnQ7Cgl3aGlsZSAo
ZS50YWdOYW1lJiYoZS50YWdOYW1lIT10YWcpKXsKCQllPWUucGFyZW50RWxlbWVudHx8ZS5wYXJl
bnROb2RlOwoJfQoJcmV0dXJuIGU7Cn0KZnVuY3Rpb24gZGNzU2V0VmFyKCl7CiAgICBpZiAoKGFy
Z3VtZW50cy5sZW5ndGglMj09MCkmJihuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNU0lF
IikhPS0xKSl7CgkJZm9yICh2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKz0yKXsKCQkJaWYg
KGFyZ3VtZW50c1tpXS5pbmRleE9mKCdXVC4nKT09MCl7CgkJCQlXVFthcmd1bWVudHNbaV0uc3Vi
c3RyaW5nKDMpXT1hcmd1bWVudHNbaSsxXTsKCQkJfQoJCQllbHNlIGlmIChhcmd1bWVudHNbaV0u
aW5kZXhPZignRENTLicpPT0wKXsKCQkJCURDU1thcmd1bWVudHNbaV0uc3Vic3RyaW5nKDQpXT1h
cmd1bWVudHNbaSsxXTsKCQkJfQoJCQllbHNlIGlmIChhcmd1bWVudHNbaV0uaW5kZXhPZignRENT
ZXh0LicpPT0wKXsKICAgICAgICAgICAgICAgIERDU2V4dFthcmd1bWVudHNbaV0uc3Vic3RyaW5n
KDcpXT1hcmd1bWVudHNbaSsxXTsKCQkJfQoJCX0KICAgIH0KfQpmdW5jdGlvbiBkY3NTZXRWYXJD
YXAoZSl7CiAgICB2YXIgZ0NhcCA9IGUub25jbGljay50b1N0cmluZygpOwogICAgdmFyIGdTdGFy
dCA9IGdDYXAuc3Vic3RyaW5nKGdDYXAuaW5kZXhPZigiZGNzU2V0VmFyKCIpKzEwLGdDYXAubGVu
Z3RoKTsKICAgIHZhciBnRW5kID0gZ1N0YXJ0LnN1YnN0cmluZygwLGdTdGFydC5pbmRleE9mKCIp
OyIpKS5yZXBsYWNlKC9ccyIvZ2ksIiIpLnJlcGxhY2UoLyIvZ2ksIiIpOwogICAgdmFyIGdTcGxp
dCA9IGdFbmQuc3BsaXQoIiwiKTsKICAgIGlmIChnU3BsaXQubGVuZ3RoIT0tMSl7CgkJZm9yICh2
YXIgaT0wO2k8Z1NwbGl0Lmxlbmd0aDtpKz0yKXsKICAgICAgICAgICAgaWYgKGdTcGxpdFtpXS5p
bmRleE9mKCdXVC4nKT09MCl7CgkJCQlXVFtnU3BsaXRbaV0uc3Vic3RyaW5nKDMpXT1nU3BsaXRb
aSsxXTsKCQkJfQoJCQllbHNlIGlmIChnU3BsaXRbaV0uaW5kZXhPZignRENTLicpPT0wKXsKCQkJ
CURDU1tnU3BsaXRbaV0uc3Vic3RyaW5nKDQpXT1nU3BsaXRbaSsxXTsKCQkJfQoJCQllbHNlIGlm
IChnU3BsaXRbaV0uaW5kZXhPZignRENTZXh0LicpPT0wKXsKICAgICAgICAgICAgICAgIERDU2V4
dFtnU3BsaXRbaV0uc3Vic3RyaW5nKDcpXT1nU3BsaXRbaSsxXTsKCQkJfQoJCX0KICAgIH0KfQoK
ZnVuY3Rpb24gZGNzTmF2aWdhdGlvbih3dG5vZGUpewoJdHJ5ewoJdmFyIHd0Q291bnQ9MDsKCXdo
aWxlKHd0Q291bnQhPTEpewoJCWlmKHd0bm9kZS5wYXJlbnROb2RlLnRhZ05hbWUhPSJESVYiKXsK
CQkJd3Rub2RlPXd0bm9kZS5wYXJlbnROb2RlOwoJCX0KCQlpZih3dG5vZGUucGFyZW50Tm9kZS50
YWdOYW1lPT0iRElWIil7CgkJCWlmKHd0bm9kZS5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgnaWQn
KSl7CgkJCQlXVC5uYXYgPSB3dG5vZGUucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoImlkIik7CgkJ
CQl3dENvdW50PTE7CgkJCX0KCQkJZWxzZXsKCQkJCXd0bm9kZT13dG5vZGUucGFyZW50Tm9kZTsK
CQkJfQkJCgkJfQoJfX0KCWNhdGNoKGVycm9yKXt9CQkJCQp9CgpmdW5jdGlvbiBkY3NCaW5kKGV2
ZW50LGZ1bmMpewoJaWYgKCh0eXBlb2Yod2luZG93W2Z1bmNdKT09ImZ1bmN0aW9uIikmJmRvY3Vt
ZW50LmJvZHkpewoJCWlmIChkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIpewoJCQlkb2N1
bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIHdpbmRvd1tmdW5jXSwgdHJ1ZSk7CgkJ
fQoJCWVsc2UgaWYoZG9jdW1lbnQuYm9keS5hdHRhY2hFdmVudCl7CgkJCWRvY3VtZW50LmJvZHku
YXR0YWNoRXZlbnQoIm9uIitldmVudCwgd2luZG93W2Z1bmNdKTsKCQl9Cgl9Cn0KZnVuY3Rpb24g
ZGNzRVQoKXsKCXZhciBlPShuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNU0lFIikhPS0x
KT8iY2xpY2siOiJtb3VzZWRvd24iOwoJZGNzQmluZChlLCJkY3NEb3dubG9hZCIpOwoJZGNzQmlu
ZChlLCJkY3NEeW5hbWljIik7CglkY3NCaW5kKGUsImRjc0Zvcm1CdXR0b24iKTsKCWRjc0JpbmQo
ImtleXByZXNzIiwiZGNzRm9ybUJ1dHRvbiIpOwoJZGNzQmluZChlLCJkY3NJbWFnZU1hcCIpOwp9
CmZ1bmN0aW9uIGRjc011bHRpVHJhY2soKXsKCWlmIChhcmd1bWVudHMubGVuZ3RoJTI9PTApewoJ
CWZvciAodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSs9Mil7CgkJCWlmIChhcmd1bWVudHNb
aV0uaW5kZXhPZignV1QuJyk9PTApewoJCQkJV1RbYXJndW1lbnRzW2ldLnN1YnN0cmluZygzKV09
YXJndW1lbnRzW2krMV07CgkJCX0KCQkJZWxzZSBpZiAoYXJndW1lbnRzW2ldLmluZGV4T2YoJ0RD
Uy4nKT09MCl7CgkJCQlEQ1NbYXJndW1lbnRzW2ldLnN1YnN0cmluZyg0KV09YXJndW1lbnRzW2kr
MV07CgkJCX0KCQkJZWxzZSBpZiAoYXJndW1lbnRzW2ldLmluZGV4T2YoJ0RDU2V4dC4nKT09MCl7
CgkJCQlEQ1NleHRbYXJndW1lbnRzW2ldLnN1YnN0cmluZyg3KV09YXJndW1lbnRzW2krMV07CgkJ
CX0KCQl9CgkJdmFyIGRDdXJyZW50PW5ldyBEYXRlKCk7CgkJRENTLmRjc2RhdD1kQ3VycmVudC5n
ZXRUaW1lKCk7CgkJZGNzRnVuYygiZGNzQ29va2llIik7CgkJZGNzVGFnKCk7Cgl9Cn0KZnVuY3Rp
b24gZGNzUVAoTil7CglpZiAodHlwZW9mKE4pPT0idW5kZWZpbmVkIil7CgkJcmV0dXJuICIiOwoJ
fQoJdmFyIHFyeT1sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOwoJaWYgKHFyeSE9IiIpewoJ
CXZhciBwYWlycz1xcnkuc3BsaXQoIiYiKTsKCQlmb3IgKHZhciBpPTA7aTxwYWlycy5sZW5ndGg7
aSsrKXsKCQkJdmFyIHBvcz1wYWlyc1tpXS5pbmRleE9mKCI9Iik7CgkJCWlmIChwb3MhPS0xKXsK
CQkJCWlmIChwYWlyc1tpXS5zdWJzdHJpbmcoMCxwb3MpPT1OKXsKCQkJCQlkY3NJbml0LnFwW2Rj
c0luaXQucXAubGVuZ3RoXT0oaT09MD8iIjoiJiIpK3BhaXJzW2ldOwoJCQkJCXJldHVybiBwYWly
c1tpXS5zdWJzdHJpbmcocG9zKzEpOwoJCQkJfQoJCQl9CgkJfQoJfQoJcmV0dXJuICIiOwp9Cgov
LyBBZGQgZXZlbnQgaGFuZGxlcnMgaGVyZQoKLy8gQ29kZSBzZWN0aW9uIGZvciBUcmFjayBjbGlj
a3MgdG8gZG93bmxvYWQgbGlua3MuCmZ1bmN0aW9uIGRjc0Rvd25sb2FkKGV2dCl7CgoJZXZ0PWV2
dHx8KHdpbmRvdy5ldmVudHx8IiIpOwoJaWYgKGV2dCYmKCh0eXBlb2YoZXZ0LndoaWNoKSE9Im51
bWJlciIpfHwoZXZ0LndoaWNoPT0xKSkpewoJCXZhciBlPWRjc0V2dChldnQsIkEiKTsKCQlpZiAo
ZSl7CgkJICB2YXIgZ2NsaWNrPWUub25jbGljaz9lLm9uY2xpY2sudG9TdHJpbmcoKTplLm1vdXNl
ZG93bj9lLm1vdXNlZG93bi50b1N0cmluZygpOiIiOwoJCSAgaWYgKGUuaG9zdG5hbWUmJmUuaHJl
ZiYmZS5wcm90b2NvbCYmKGUucHJvdG9jb2wuaW5kZXhPZigiaHR0cCIpIT0tMSkmJihnY2xpY2su
aW5kZXhPZigiZGNzTXVsdGlUcmFjayIpPT0tMSkpewogICAgICAgICAgICBpZigobmF2aWdhdG9y
LmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIpPT0tMSkmJihlLm9uY2xpY2spKXtkY3NTZXRWYXJD
YXAoZSk7fQogICAgICAgICAgICBkY3NOYXZpZ2F0aW9uKGUpOwoJCQkJdmFyIHFyeT1lLnNlYXJj
aD9lLnNlYXJjaC5zdWJzdHJpbmcoZS5zZWFyY2guaW5kZXhPZigiPyIpKzEsZS5zZWFyY2gubGVu
Z3RoKToiIjsKCQkJCXZhciBwdGg9ZS5wYXRobmFtZT8oKGUucGF0aG5hbWUuaW5kZXhPZigiLyIp
IT0wKT8iLyIrZS5wYXRobmFtZTplLnBhdGhuYW1lKToiLyI7CgkJCQl2YXIgdHRsPSIiOwoJCQkJ
dmFyIHRleHQ9ZG9jdW1lbnQuYWxsP2UuaW5uZXJUZXh0OmUudGV4dDsKCQkJCXZhciBpbWc9ZGNz
RXZ0KGV2dCwiSU1HIik7CgkJCQlpZiAoaW1nLmFsdCl7CgkJCQkJdHRsPWltZy5hbHQ7CgkJCQl9
CgkJCQllbHNlIGlmICh0ZXh0KXsKCQkJCQl0dGw9dGV4dDsKCQkJCX0KCQkJCWVsc2UgaWYgKGUu
aW5uZXJIVE1MKXsKCQkJCQl0dGw9ZS5pbm5lckhUTUw7CgkJCQl9CgkJCQlkY3NNdWx0aVRyYWNr
KCJEQ1MuZGNzc2lwIixlLmhvc3RuYW1lLCJEQ1MuZGNzdXJpIixwdGgsIkRDUy5kY3NxcnkiLGUu
c2VhcmNofHwiIiwiV1QudGkiLCJMaW5rOiIrdHRsLCJXVC5kbCIsIjIwIik7CgkJCQlEQ1MuZGNz
c2lwPURDUy5kY3N1cmk9RENTLmRjc3FyeT1XVC50aT1XVC5kbD1XVC5udj0iIjsKCQkKCQkJfQoJ
CX0KCX0KfQovLyBDb2RlIHNlY3Rpb24gZm9yIFRyYWNrIGZvcm0gYnV0dG9uIGNsaWNrcy4KZnVu
Y3Rpb24gZGNzRm9ybUJ1dHRvbihldnQpewoJZXZ0PWV2dHx8KHdpbmRvdy5ldmVudHx8IiIpOwoJ
aWYgKGV2dCYmKCh0eXBlb2YoZXZ0LndoaWNoKSE9Im51bWJlciIpfHwoZXZ0LndoaWNoPT0xKXx8
KGV2dC53aGljaD09MTMpKSl7CgkJdmFyIHRhZ3M9WyJJTlBVVCIsIkJVVFRPTiJdOwoJCWZvciAo
dmFyIGo9MDtqPHRhZ3MubGVuZ3RoO2orKyl7CgkJCXZhciBlPWRjc0V2dChldnQsdGFnc1tqXSk7
CgkJCXZhciB0eXBlPWUudHlwZXx8IiI7CgkJCXZhciBnY2xpY2s9ZS5vbmNsaWNrP2Uub25jbGlj
ay50b1N0cmluZygpOmUubW91c2Vkb3duP2UubW91c2Vkb3duLnRvU3RyaW5nKCk6IiI7CgkJCWlm
ICgoZ2NsaWNrLmluZGV4T2YoImRjc011bHRpVHJhY2siKT09LTEpJiZ0eXBlJiYoKHR5cGU9PSJz
dWJtaXQiKXx8KHR5cGU9PSJpbWFnZSIpfHwodHlwZT09ImJ1dHRvbiIpfHwodHlwZT09InJlc2V0
IikpfHwoKHR5cGU9PSJ0ZXh0IikmJigoZXZ0LndoaWNofHxldnQua2V5Q29kZSk9PTEzKSkpewoJ
CQkgICAgaWYoKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoIk1TSUUiKT09LTEpJiYoZS5v
bmNsaWNrKSl7ZGNzU2V0VmFyQ2FwKGUpO30KICAgICAgICAgICAgICAgIGRjc05hdmlnYXRpb24o
ZSk7CiAgICAgICAgICAgICAgICB2YXIgdXJpPSIiOwoJCQkJdmFyIHR0bD0iIjsKCQkJCXZhciBx
cnk9IiI7CgkJCQl2YXIgaWQ9MDsKCQkJCWlmIChlLmZvcm0pewoJCQkJCXZhciBlbGVtcz1lLmZv
cm0uZWxlbWVudHM7CgkJCQkJZm9yICh2YXIgaT0wO2k8ZWxlbXMubGVuZ3RoO2krKyl7CgkJCQkJ
CXZhciBldHlwZT1lbGVtc1tpXS50eXBlOwoJCQkJCQlpZiAoKGV0eXBlPT0idGV4dCIpfHwoZXR5
cGU9PSJ0ZXh0YXJlYSIpfHwoZXR5cGU9PSJoaWRkZW4iKXx8KGV0eXBlPT0ic2VsZWN0LW9uZSIp
KXsKCQkJCQkJCXFyeSs9KChxcnk9PSIiKT8iIjoiJiIpK2VzY2FwZShlbGVtc1tpXS5uYW1lKSsi
PSIrZXNjYXBlKGVsZW1zW2ldLnZhbHVlKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQl1cmk9ZS5mb3Jt
LmFjdGlvbnx8d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwoJCQkJCXR0bD1lLmZvcm0uaWR8fGUu
Zm9ybS5uYW1lfHxlLmZvcm0uY2xhc3NOYW1lfHwiVW5rbm93biI7CgkJCQkJaWQ9KGUuZm9ybS5t
ZXRob2QmJihlLmZvcm0ubWV0aG9kLnRvTG93ZXJDYXNlKCk9PSJwb3N0IikpPzI3OjI2OwoJCQkJ
fQoJCQkJZWxzZXsKCQkJCQl1cmk9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwoJCQkJCXR0bD1l
Lm5hbWV8fGUuaWR8fCJVbmtub3duIjsKCQkJCQlpZD0odGFnc1tqXS50b0xvd2VyQ2FzZSgpPT0i
aW5wdXQiKT8yODoyOTsKCQkJCX0KCQkJCWlmICh1cmkmJnR0bCYmKGV2dC5rZXlDb2RlIT05KSl7
CgkJCQkJZGNzTXVsdGlUcmFjaygiRENTLmRjc3VyaSIsdXJpLCJEQ1MuZGNzcXJ5IixxcnksIldU
LnRpIiwiRm9ybUJ1dHRvbjoiK3R0bCwiV1QuZGwiLGlkLCJXVC5udiIsZGNzTmF2aWdhdGlvbihl
dnQpKTsKCQkJCX0KCQkJCURDUy5kY3N1cmk9RENTLmRjc3FyeT1XVC50aT1XVC5kbD1XVC5udj0i
IjsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJfQp9CgoKCgovLyBDb2RlIHNlY3Rpb24gZm9yIGNsaWNr
cyB0byBpbWFnZSBtYXBzLgpmdW5jdGlvbiBkY3NJbWFnZU1hcChldnQpewoJZXZ0PWV2dHx8KHdp
bmRvdy5ldmVudHx8IiIpOwoJaWYgKGV2dCl7CgkJdmFyIGU9ZGNzRXZ0KGV2dCwiQVJFQSIpOwoJ
CXZhciBnY2xpY2s9ZS5vbmNsaWNrP2Uub25jbGljay50b1N0cmluZygpOmUubW91c2Vkb3duP2Uu
bW91c2Vkb3duLnRvU3RyaW5nKCk6IiI7CgkJaWYgKChnY2xpY2suaW5kZXhPZigiZGNzTXVsdGlU
cmFjayIpPT0tMSkmJmUuaG9zdG5hbWUmJmUuaHJlZiYmZS5wcm90b2NvbCYmKGUucHJvdG9jb2wu
aW5kZXhPZigiaHR0cCIpIT0tMSkpewogICAgICAgICAgICBpZigobmF2aWdhdG9yLmFwcFZlcnNp
b24uaW5kZXhPZigiTVNJRSIpPT0tMSkmJihlLm9uY2xpY2spKXtkY3NTZXRWYXJDYXAoZSk7fQog
ICAgICAgICAgICAgICAgZGNzTmF2aWdhdGlvbihlKTsKICAgICAgICAgICAgdmFyIHB0aD1lLnBh
dGhuYW1lPygoZS5wYXRobmFtZS5pbmRleE9mKCIvIikhPTApPyIvIitlLnBhdGhuYW1lOmUucGF0
aG5hbWUpOiIvIjsKCQkJZGNzTXVsdGlUcmFjaygiRENTLmRjc3NpcCIsZS5ob3N0bmFtZSwiRENT
LmRjc3VyaSIscHRoLCJEQ1MuZGNzcXJ5IixlLnNlYXJjaHx8IiIsIldULnRpIiwiSW1hZ2VNYXA6
IiwiV1QuZGwiLCIzMCIpOwoJCQlEQ1MuZGNzc2lwPURDUy5kY3N1cmk9RENTLmRjc3FyeT1XVC50
aT1XVC5kbD1XVC5udj0iIjsKCQkJCgkJfQkJCQoJfQp9CgovLyBDb2RlIHNlY3Rpb24gZm9yIEVu
YWJsZSBjdXN0b20gbWV0YSB0YWcgY2FwdHVyZS4KZnVuY3Rpb24gZGNzTWV0YUNhcCgpewoJdmFy
IG5hbWVsc3Q9Ik1FVEFUQSI7Cgl2YXIgZWxlbXM7CglpZiAoZG9jdW1lbnQuYWxsKXsKCQllbGVt
cz1kb2N1bWVudC5hbGwudGFncygibWV0YSIpOwoJfQoJZWxzZSBpZiAoZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50KXsKCQllbGVtcz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWV0YSIp
OwoJfQoJaWYgKHR5cGVvZihlbGVtcykhPSJ1bmRlZmluZWQiKXsKCQl2YXIgbmFtZXM9bmFtZWxz
dC50b0xvd2VyQ2FzZSgpLnNwbGl0KCIsIik7CgkJdmFyIG5sZW49bmFtZXMubGVuZ3RoOwoJCXZh
ciBlbGVuPWVsZW1zLmxlbmd0aDsKCQlmb3IgKHZhciBpPTA7aTxlbGVuO2krKyl7CgkJCXZhciBu
YW1lPWVsZW1zLml0ZW0oaSkubmFtZS50b0xvd2VyQ2FzZSgpOwoJCQl2YXIgY29udGVudD1lbGVt
cy5pdGVtKGkpLmNvbnRlbnQ7CgkJCWlmICgobmFtZS5sZW5ndGg+MCkmJihjb250ZW50Lmxlbmd0
aD4wKSl7CgkJCQlmb3IodmFyIGo9MDtqPG5sZW47aisrKXsKCQkJCQlpZiAobmFtZT09bmFtZXNb
al0pewoJCQkJCQlEQ1NleHRbIm1ldGFfIituYW1lc1tqXV09Y29udGVudDsKCQkJCQkJYnJlYWs7
CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfQp9CgpmdW5jdGlvbiBkY3NBZHYoKXsKCWlmIChkY3NJ
bml0LnRyYWNrZXZlbnRzKXsKCQlpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHt3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRjc0VULCBmYWxzZSk7fSAgLy8gbW96aWxsYSBhbmQg
ZnJpZW5kcwogICAgICAgIGVsc2UgaWYgKHdpbmRvdy5hdHRhY2hFdmVudCkge3dpbmRvdy5hdHRh
Y2hFdmVudCgnb25sb2FkJywgZGNzRVQpO30gLy8gSUUKCX0KCWRjc0Z1bmMoImRjc0Nvb2tpZSIp
OwoJZGNzRnVuYygiZGNzQWRTZWFyY2giKTsKCWRjc0Z1bmMoImRjc1RQIik7CglkY3NGdW5jKCJk
Y3NNZXRhQ2FwIik7Cn0KCi8vIEFkZCBjdXN0b21pemF0aW9ucyBoZXJlCgpmdW5jdGlvbiBkY3NW
YXIoKXsKCXZhciBkQ3VycmVudD1uZXcgRGF0ZSgpOwoJV1QudHo9ZEN1cnJlbnQuZ2V0VGltZXpv
bmVPZmZzZXQoKS82MCotMTsKCWlmIChXVC50ej09MCl7CgkJV1QudHo9IjAiOwoJfQoJV1QuYmg9
ZEN1cnJlbnQuZ2V0SG91cnMoKTsKCVdULnVsPW5hdmlnYXRvci5hcHBOYW1lPT0iTmV0c2NhcGUi
P25hdmlnYXRvci5sYW5ndWFnZTpuYXZpZ2F0b3IudXNlckxhbmd1YWdlOwoJaWYgKHR5cGVvZihz
Y3JlZW4pPT0ib2JqZWN0Iil7CgkJV1QuY2Q9bmF2aWdhdG9yLmFwcE5hbWU9PSJOZXRzY2FwZSI/
c2NyZWVuLnBpeGVsRGVwdGg6c2NyZWVuLmNvbG9yRGVwdGg7CgkJV1Quc3I9c2NyZWVuLndpZHRo
KyJ4IitzY3JlZW4uaGVpZ2h0OwoJfQoJaWYgKHR5cGVvZihuYXZpZ2F0b3IuamF2YUVuYWJsZWQo
KSk9PSJib29sZWFuIil7CgkJV1Quam89bmF2aWdhdG9yLmphdmFFbmFibGVkKCk/IlllcyI6Ik5v
IjsKCX0KCWlmIChkb2N1bWVudC50aXRsZSl7CgkJV1QudGk9ZG9jdW1lbnQudGl0bGU7Cgl9CglX
VC5qcz0iWWVzIjsKCVdULmp2PWRjc0pWKCk7CglpZiAoZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQu
Ym9keS5hZGRCZWhhdmlvcil7CgkJZG9jdW1lbnQuYm9keS5hZGRCZWhhdmlvcigiI2RlZmF1bHQj
Y2xpZW50Q2FwcyIpOwoJCVdULmN0PWRvY3VtZW50LmJvZHkuY29ubmVjdGlvblR5cGV8fCJ1bmtu
b3duIjsKCQlkb2N1bWVudC5ib2R5LmFkZEJlaGF2aW9yKCIjZGVmYXVsdCNob21lUGFnZSIpOwoJ
CVdULmhwPWRvY3VtZW50LmJvZHkuaXNIb21lUGFnZShsb2NhdGlvbi5ocmVmKT8iMSI6IjAiOwoJ
fQoJZWxzZXsKCQlXVC5jdD0idW5rbm93biI7Cgl9CglpZiAocGFyc2VJbnQobmF2aWdhdG9yLmFw
cFZlcnNpb24pPjMpewoJCWlmICgobmF2aWdhdG9yLmFwcE5hbWU9PSJNaWNyb3NvZnQgSW50ZXJu
ZXQgRXhwbG9yZXIiKSYmZG9jdW1lbnQuYm9keSl7CgkJCVdULmJzPWRvY3VtZW50LmJvZHkub2Zm
c2V0V2lkdGgrIngiK2RvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OwoJCX0KCQllbHNlIGlmIChu
YXZpZ2F0b3IuYXBwTmFtZT09Ik5ldHNjYXBlIil7CgkJCVdULmJzPXdpbmRvdy5pbm5lcldpZHRo
KyJ4Iit3aW5kb3cuaW5uZXJIZWlnaHQ7CgkJfQoJfQoJV1QuZmk9Ik5vIjsKCWlmICh3aW5kb3cu
QWN0aXZlWE9iamVjdCl7CgkJZm9yKHZhciBpPTEwO2k+MDtpLS0pewoJCQl0cnl7CgkJCQl2YXIg
Zmxhc2ggPSBuZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2gu
IitpKTsKCQkJCVdULmZpPSJZZXMiOwoJCQkJV1QuZnY9aSsiLjAiOwoJCQkJYnJlYWs7CgkJCX0K
CQkJY2F0Y2goZSl7CgkJCX0KCQl9Cgl9CgllbHNlIGlmIChuYXZpZ2F0b3IucGx1Z2lucyYmbmF2
aWdhdG9yLnBsdWdpbnMubGVuZ3RoKXsKCQlmb3IgKHZhciBpPTA7aTxuYXZpZ2F0b3IucGx1Z2lu
cy5sZW5ndGg7aSsrKXsKCQkJaWYgKG5hdmlnYXRvci5wbHVnaW5zW2ldLm5hbWUuaW5kZXhPZign
U2hvY2t3YXZlIEZsYXNoJykhPS0xKXsKCQkJCVdULmZpPSJZZXMiOwoJCQkJV1QuZnY9bmF2aWdh
dG9yLnBsdWdpbnNbaV0uZGVzY3JpcHRpb24uc3BsaXQoIiAiKVsyXTsKCQkJCWJyZWFrOwoJCQl9
CgkJfQoJfQoJaWYgKGRjc0luaXQuaTE4bil7CgkJV1QuZW09KHR5cGVvZihlbmNvZGVVUklDb21w
b25lbnQpPT0iZnVuY3Rpb24iKT8idXJpIjoiZXNjIjsKCQlpZiAodHlwZW9mKGRvY3VtZW50LmRl
ZmF1bHRDaGFyc2V0KT09InN0cmluZyIpewoJCQlXVC5sZT1kb2N1bWVudC5kZWZhdWx0Q2hhcnNl
dDsKCQl9IAoJCWVsc2UgaWYgKHR5cGVvZihkb2N1bWVudC5jaGFyYWN0ZXJTZXQpPT0ic3RyaW5n
Iil7CgkJCVdULmxlPWRvY3VtZW50LmNoYXJhY3RlclNldDsKCQl9Cgl9CglXVC50dj0iMS4wLjci
OwovLwlXVC5zcD0iQEBTUExJVFZBTFVFQEAiOwoJV1QuZGw9MDsKCURDUy5kY3NkYXQ9ZEN1cnJl
bnQuZ2V0VGltZSgpOwoJRENTLmRjc3NpcD13aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7CglEQ1Mu
ZGNzdXJpPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKCVdULmVzPURDUy5kY3NzaXArRENTLmRj
c3VyaTsKCWlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoKXsKCQlEQ1MuZGNzcXJ5PXdpbmRvdy5s
b2NhdGlvbi5zZWFyY2g7CgkJaWYgKGRjc0luaXQucXAubGVuZ3RoPjApewoJCQlmb3IgKHZhciBp
PTA7aTxkY3NJbml0LnFwLmxlbmd0aDtpKyspewoJCQkJdmFyIHBvcz1EQ1MuZGNzcXJ5LmluZGV4
T2YoZGNzSW5pdC5xcFtpXSk7CgkJCQlpZiAocG9zIT0tMSl7CgkJCQkJdmFyIGZyb250PURDUy5k
Y3Nxcnkuc3Vic3RyaW5nKDAscG9zKTsKCQkJCQl2YXIgZW5kPURDUy5kY3Nxcnkuc3Vic3RyaW5n
KHBvcytkY3NJbml0LnFwW2ldLmxlbmd0aCxEQ1MuZGNzcXJ5Lmxlbmd0aCk7CgkJCQkJRENTLmRj
c3FyeT1mcm9udCtlbmQ7CgkJCQl9CgkJCX0KCQl9Cgl9CglpZiAoKHdpbmRvdy5kb2N1bWVudC5y
ZWZlcnJlciE9IiIpJiYod2luZG93LmRvY3VtZW50LnJlZmVycmVyIT0iLSIpKXsKCQlpZiAoIShu
YXZpZ2F0b3IuYXBwTmFtZT09Ik1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciImJnBhcnNlSW50
KG5hdmlnYXRvci5hcHBWZXJzaW9uKTw0KSl7CgkJCURDUy5kY3NyZWY9d2luZG93LmRvY3VtZW50
LnJlZmVycmVyOwoJCX0KCX0KfQpmdW5jdGlvbiBkY3NBKE4sVil7CglpZiAoZGNzSW5pdC5pMThu
JiYoZGNzSW5pdC5leHJlIT0iIikmJiFkY3NJbml0LmV4cmUudGVzdChOKSl7CgkJaWYgKE49PSJk
Y3NxcnkiKXsKCQkJdmFyIG5ld1Y9IiI7CgkJCXZhciBwYXJhbXM9Vi5zdWJzdHJpbmcoMSkuc3Bs
aXQoIiYiKTsKCQkJZm9yICh2YXIgaT0wO2k8cGFyYW1zLmxlbmd0aDtpKyspewoJCQkJdmFyIHBh
aXI9cGFyYW1zW2ldOwoJCQkJdmFyIHBvcz1wYWlyLmluZGV4T2YoIj0iKTsKCQkJCWlmIChwb3Mh
PS0xKXsKCQkJCQl2YXIga2V5PXBhaXIuc3Vic3RyaW5nKDAscG9zKTsKCQkJCQl2YXIgdmFsPXBh
aXIuc3Vic3RyaW5nKHBvcysxKTsKCQkJCQlpZiAoaSE9MCl7CgkJCQkJCW5ld1YrPSImIjsKCQkJ
CQl9CgkJCQkJbmV3Vis9a2V5KyI9IitkY3NFbmNvZGUodmFsKTsKCQkJCX0KCQkJfQoJCQlWPVYu
c3Vic3RyaW5nKDAsMSkrbmV3VjsKCQl9CgkJZWxzZXsKCQkJVj1kY3NFbmNvZGUoVik7CgkJfQoJ
fQoJcmV0dXJuICImIitOKyI9IitkY3NFc2NhcGUoViwgZGNzSW5pdC5yZSk7Cn0KZnVuY3Rpb24g
ZGNzRXNjYXBlKFMsIFJFTCl7CglpZiAoUkVMIT0iIil7CgkJdmFyIHJldFN0ciA9IG5ldyBTdHJp
bmcoUyk7CgkJZm9yICh2YXIgUiBpbiBSRUwpewoJCQlpZiAodHlwZW9mKFJFTFtSXSkhPSJmdW5j
dGlvbiIpewoJCQkJcmV0U3RyID0gcmV0U3RyLnJlcGxhY2UoUkVMW1JdLFIpOwoJCQl9CgkJfQoJ
CXJldHVybiByZXRTdHI7Cgl9CgllbHNlewoJCXJldHVybiBlc2NhcGUoUyk7Cgl9Cn0KZnVuY3Rp
b24gZGNzRW5jb2RlKFMpewoJcmV0dXJuICh0eXBlb2YoZW5jb2RlVVJJQ29tcG9uZW50KT09ImZ1
bmN0aW9uIik/ZW5jb2RlVVJJQ29tcG9uZW50KFMpOmVzY2FwZShTKTsKfQpmdW5jdGlvbiBkY3ND
cmVhdGVJbWFnZShkY3NTcmMpewoJaWYgKGRvY3VtZW50LmltYWdlcyl7CgkJZGNzSW5pdC5pbWFn
ZXNbZGNzSW5pdC5pbmRleF09bmV3IEltYWdlOwoJCWRjc0luaXQuaW1hZ2VzW2Rjc0luaXQuaW5k
ZXhdLnNyYz1kY3NTcmM7CgkJZGNzSW5pdC5pbmRleCsrOwoJfQoJZWxzZXsKCQlkb2N1bWVudC53
cml0ZSgnPElNRyBBTFQ9IiIgQk9SREVSPSIwIiBOQU1FPSJEQ1NJTUciIFdJRFRIPSIxIiBIRUlH
SFQ9IjEiIFNSQz0iJytkY3NTcmMrJyI+Jyk7Cgl9Cn0KZnVuY3Rpb24gZGNzTWV0YSgpewoJdmFy
IGVsZW1zOwoJaWYgKGRvY3VtZW50LmFsbCl7CgkJZWxlbXM9ZG9jdW1lbnQuYWxsLnRhZ3MoIm1l
dGEiKTsKCX0KCWVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7CgkJZWxlbXM9ZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm1ldGEiKTsKCX0KCWlmICh0eXBlb2YoZWxlbXMp
IT0idW5kZWZpbmVkIil7CgkJdmFyIGxlbmd0aD1lbGVtcy5sZW5ndGg7CgkJZm9yICh2YXIgaT0w
O2k8bGVuZ3RoO2krKyl7CgkJCXZhciBuYW1lPWVsZW1zLml0ZW0oaSkubmFtZTsKCQkJdmFyIGNv
bnRlbnQ9ZWxlbXMuaXRlbShpKS5jb250ZW50OwoJCQl2YXIgZXF1aXY9ZWxlbXMuaXRlbShpKS5o
dHRwRXF1aXY7CgkJCWlmIChuYW1lLmxlbmd0aD4wKXsKCQkJCWlmIChuYW1lLmluZGV4T2YoIldU
LiIpPT0wKXsKCQkJCQlXVFtuYW1lLnN1YnN0cmluZygzKV09Y29udGVudDsKCQkJCX0KCQkJCWVs
c2UgaWYgKG5hbWUuaW5kZXhPZigiRENTZXh0LiIpPT0wKXsKCQkJCQlEQ1NleHRbbmFtZS5zdWJz
dHJpbmcoNyldPWNvbnRlbnQ7CgkJCQl9CgkJCQllbHNlIGlmIChuYW1lLmluZGV4T2YoIkRDUy4i
KT09MCl7CgkJCQkJRENTW25hbWUuc3Vic3RyaW5nKDQpXT1jb250ZW50OwoJCQkJfQoJCQl9CgkJ
CWVsc2UgaWYgKGRjc0luaXQuaTE4biYmKGVxdWl2PT0iQ29udGVudC1UeXBlIikpewoJCQkJdmFy
IHBvcz1jb250ZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2hhcnNldD0iKTsKCQkJCWlmIChw
b3MhPS0xKXsKCQkJCQlXVC5tbGU9Y29udGVudC5zdWJzdHJpbmcocG9zKzgpOwoJCQkJfQoJCQl9
CgkJfQoJfQp9CmZ1bmN0aW9uIGRjc1RhZygpewoJaWYgKGRvY3VtZW50LmNvb2tpZS5pbmRleE9m
KCJXVExPUFRPVVQ9IikhPS0xKXsKCQlyZXR1cm47Cgl9Cgl2YXIgUD0iaHR0cCIrKHdpbmRvdy5s
b2NhdGlvbi5wcm90b2NvbC5pbmRleE9mKCdodHRwczonKT09MD8ncyc6JycpKyI6Ly8iK2Rjc0lu
aXQuZG9tYWluKyhkY3NJbml0LmRjc2lkPT0iIj8nJzonLycrZGNzSW5pdC5kY3NpZCkrIi9kY3Mu
Z2lmPyI7Cglmb3IgKHZhciBOIGluIERDUyl7CgkJaWYgKCh0eXBlb2YgRENTW05dIT0iZnVuY3Rp
b24iKSYmRENTW05dKXsKCQkJUCs9ZGNzQShOLERDU1tOXSk7CgkJfQoJfQoJdmFyIGtleXM9WyJj
b19mIiwidnRfc2lkIiwidnRfZl90bHYiXTsKCWZvciAodmFyIGk9MDtpPGtleXMubGVuZ3RoO2kr
Kyl7CgkJdmFyIGtleT1rZXlzW2ldOwoJCWlmIChXVFtrZXldKXsKCQkJUCs9ZGNzQSgiV1QuIitr
ZXksV1Rba2V5XSk7CgkJCWRlbGV0ZSBXVFtrZXldOwoJCX0KCX0KCWZvciAoTiBpbiBXVCl7CgkJ
aWYgKCh0eXBlb2YgV1RbTl0hPSJmdW5jdGlvbiIpJiZXVFtOXSl7CgkJCVArPWRjc0EoIldULiIr
TixXVFtOXSk7CgkJfQoJfQoJZm9yIChOIGluIERDU2V4dCl7CgkJaWYgKCh0eXBlb2YgRENTZXh0
W05dIT0iZnVuY3Rpb24iKSYmRENTZXh0W05dKXsKCQkJUCs9ZGNzQShOLERDU2V4dFtOXSk7CgkJ
fQoJfQoJaWYgKFAubGVuZ3RoPjIwNDgmJm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignTVNJ
RScpPj0wKXsKCQlQPVAuc3Vic3RyaW5nKDAsMjA0MCkrIiZXVC50dT0xIjsKCX0KCWRjc0NyZWF0
ZUltYWdlKFApOwoJV1QuYWQ9IiI7Cn0KZnVuY3Rpb24gZGNzSlYoKXsKCXZhciBhZ3Q9bmF2aWdh
dG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpOwoJdmFyIG1ham9yPXBhcnNlSW50KG5hdmlnYXRv
ci5hcHBWZXJzaW9uKTsKCXZhciBtYWM9KGFndC5pbmRleE9mKCJtYWMiKSE9LTEpOwoJdmFyIGZm
PShhZ3QuaW5kZXhPZigiZmlyZWZveCIpIT0tMSk7Cgl2YXIgZmYwPShhZ3QuaW5kZXhPZigiZmly
ZWZveC8wLiIpIT0tMSk7Cgl2YXIgZmYxMD0oYWd0LmluZGV4T2YoImZpcmVmb3gvMS4wIikhPS0x
KTsKCXZhciBmZjE1PShhZ3QuaW5kZXhPZigiZmlyZWZveC8xLjUiKSE9LTEpOwoJdmFyIGZmMnVw
PShmZiYmIWZmMCYmIWZmMTAmIWZmMTUpOwoJdmFyIG5uPSghZmYmJihhZ3QuaW5kZXhPZigibW96
aWxsYSIpIT0tMSkmJihhZ3QuaW5kZXhPZigiY29tcGF0aWJsZSIpPT0tMSkpOwoJdmFyIG5uND0o
bm4mJihtYWpvcj09NCkpOwoJdmFyIG5uNnVwPShubiYmKG1ham9yPj01KSk7Cgl2YXIgaWU9KChh
Z3QuaW5kZXhPZigibXNpZSIpIT0tMSkmJihhZ3QuaW5kZXhPZigib3BlcmEiKT09LTEpKTsKCXZh
ciBpZTQ9KGllJiYobWFqb3I9PTQpJiYoYWd0LmluZGV4T2YoIm1zaWUgNCIpIT0tMSkpOwoJdmFy
IGllNXVwPShpZSYmIWllNCk7Cgl2YXIgb3A9KGFndC5pbmRleE9mKCJvcGVyYSIpIT0tMSk7Cgl2
YXIgb3A1PShhZ3QuaW5kZXhPZigib3BlcmEgNSIpIT0tMXx8YWd0LmluZGV4T2YoIm9wZXJhLzUi
KSE9LTEpOwoJdmFyIG9wNj0oYWd0LmluZGV4T2YoIm9wZXJhIDYiKSE9LTF8fGFndC5pbmRleE9m
KCJvcGVyYS82IikhPS0xKTsKCXZhciBvcDd1cD0ob3AmJiFvcDUmJiFvcDYpOwoJdmFyIGp2PSIx
LjEiOwoJaWYgKGZmMnVwKXsKCQlqdj0iMS43IjsKCX0KCWVsc2UgaWYgKGZmMTUpewoJCWp2PSIx
LjYiOwoJfQoJZWxzZSBpZiAoZmYwfHxmZjEwfHxubjZ1cHx8b3A3dXApewoJCWp2PSIxLjUiOwoJ
fQoJZWxzZSBpZiAoKG1hYyYmaWU1dXApfHxvcDYpewoJCWp2PSIxLjQiOwoJfQoJZWxzZSBpZiAo
aWU1dXB8fG5uNHx8b3A1KXsKCQlqdj0iMS4zIjsKCX0KCWVsc2UgaWYgKGllNCl7CgkJanY9IjEu
MiI7Cgl9CglyZXR1cm4ganY7Cn0KZnVuY3Rpb24gZGNzRnVuYyhmdW5jKXsKCWlmICh0eXBlb2Yo
d2luZG93W2Z1bmNdKT09ImZ1bmN0aW9uIil7CgkJd2luZG93W2Z1bmNdKCk7Cgl9Cn0KCmZ1bmN0
aW9uIHd0YmFzZUluaXQoKSB7CglpZiAoZGNzSW5pdC5lbmFibGVkKXsKCQlkY3NWYXIoKTsKCQlk
Y3NNZXRhKCk7CgkJV1QubWNfZXY9ZGNzQ1FQKCk7CgkJZGNzRnVuYygiZGNzQWR2Iik7CgkJZGNz
VGFnKCk7Cgl9Cn0KCmlmICgvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgewoJLy8g
SW4gSUUsIHdyYXBwaW5nIHRoaXMgY29kZSBibG9jayBpbiBzZXRUaW1lb3V0IGlzIG5lZWRlZCBi
ZWNhdXNlIGluIGNlcnRhaW4gY2FzZXMsCgkvLyBpdCB3aWxsIGV4ZWN1dGUgYmVmb3JlIG90aGVy
IHNjcmlwdCBmaWxlcyBuZWVkZWQgYXJlIGZ1bGx5IGxvYWRlZC4KCXdpbmRvdy5zZXRUaW1lb3V0
KHd0YmFzZUluaXQsIDEpOwp9IGVsc2UgewoJd3RiYXNlSW5pdCgpOwp9CtUABQAGABEABwAIAGgA
aQBqAGsAbF8QR2h0dHA6Ly9qcy5yZXZzY2kubmV0L2NvbW1vbi9wY3guanM/dG1wbD1jbSZjc2lk
PUgwNzcwNyZrbz0yMDA4XzExXzEwX18wWmlzby04ODU5LTFPEQQtYnBsaXN0MDDUAQIDBAUGCQpY
JHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVz
cG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QHAsMJiwtMx40NUtMTU5PUFFSU1RVVldYWVpbX2BV
JG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVS
JDZSJDRSJDdSJDJSJDlSJDBSJDGAG4ACgBoQCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJh
c2VbTlMucmVsYXRpdmWABIAAgANfEEdodHRwOi8vanMucmV2c2NpLm5ldC9jb21tb24vcGN4Lmpz
P3RtcGw9Y20mY3NpZD1IMDc3MDcma289MjAwOF8xMV8xMF9fMNIuLzAxWCRjbGFzc2VzWiRjbGFz
c25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wnaX4UQyNMNNjc4OUJXTlMua2V5c1pOUy5vYmpl
Y3RzgBmoOjs8PT4/QEGACYAKgAuADIANgA6AD4AQqENERUZHSElKgBGAEoATgBSAFYAWgBeAGF1D
YWNoZS1Db250cm9sV0V4cGlyZXNWU2VydmVyXENvbnRlbnQtVHlwZV5Db250ZW50LUxlbmd0aFRE
YXRlWkNvbm5lY3Rpb25dTGFzdC1Nb2RpZmllZF8QFm1heC1hZ2U9ODY0MDAsIHByaXZhdGVfEB1U
dWUsIDExIE5vdiAyMDA4IDIzOjM5OjM5IEdNVF8QEUFwYWNoZS1Db3lvdGUvMS4xXxAidGV4dC9q
YXZhc2NyaXB0O2NoYXJzZXQ9SVNPLTg4NTktMVM1MzdfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM5
OjM4IEdNVFVjbG9zZV8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzk6MzkgR01U0i4vXF2jXV4yXxAT
TlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRAhnSLi9hYqNiYzJfEBFOU0hUVFBVUkxS
ZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACDAIkApACrAK4AsQC1
ALkAvAC/AMIAxQDIAMsAzgDRANMA1QDXANkA2wDdAN8A4QDjAOUA5wDpAPAA+AEEAQYBCAEKAVQB
WQFiAW0BcAF2AX8BiAGKAZEBmQGkAaYBrwGxAbMBtQG3AbkBuwG9Ab8ByAHKAcwBzgHQAdIB1AHW
AdgB5gHuAfUCAgIRAhYCIQIvAkgCaAJ8AqECpQLFAssC6wLwAvQDCgMXAxoDHwMjAzcAAAAAAAAC
AQAAAAAAAABkAAAAAAAAAAAAAAAAAAADRV8QD3RleHQvamF2YXNjcmlwdE8RAhkvKg0KICogQnVp
bGQgdmVyc2lvbiBWZXJtb250LTEyLjAuMC0xMjINCiAqLw0KCnJzaW5ldHNlZ3MgPSBbXTsKdmFy
IHJzaV9leHA9bmV3IERhdGUocnNpX25vdy5nZXRUaW1lKCkrMjQxOTIwMDAwMCk7CnZhciByc2lf
ZG9tPWxvY2F0aW9uLmhvc3RuYW1lOwpyc2lfZG9tPXJzaV9kb20ucmVwbGFjZSgvLiooXC5bXHdc
LV0rXC5bYS16QS1aXXszfSQpLywnJDEnKTsKcnNpX2RvbT1yc2lfZG9tLnJlcGxhY2UoLy4qKFwu
W1x3XC1dK1wuXHcrXC5bYS16QS1aXXsyfSQpLywnJDEnKTsKcnNpX2RvbT1yc2lfZG9tLnJlcGxh
Y2UoLy4qKFwuW1x3XC1dezMsfVwuW2EtekEtWl17Mn0kKS8sJyQxJyk7CmRvY3VtZW50LmNvb2tp
ZT0oJ3JzaV9zZWdzPScrcnNpbmV0c2Vncy5qb2luKCd8JykrJztleHBpcmVzPScrcnNpX2V4cC50
b0dNVFN0cmluZygpKyc7cGF0aD0vO2RvbWFpbj0nK3JzaV9kb20pOwppZih0eXBlb2YoRE1fb25T
ZWdzQXZhaWxhYmxlKT09ImZ1bmN0aW9uIil7RE1fb25TZWdzQXZhaWxhYmxlKHJzaW5ldHNlZ3Ms
J0gwNzcwNycpO30KICDUAAUAEQAHAAgAbgBvABQAcF8QKWh0dHA6Ly9jb250ZW50LmRsLXJtcy5j
b20vZHQvcy8xNDg2Ny9zLmpzTxEExmJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFy
Y2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVk
QXJjaGl2ZXKvECALDCYsLTMeNDVPUFFSU1RVVldYWVpbXF1eX2BhYmNnaFUkbnVsbN0NDg8QERIT
FBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIk
OVIkMFIkMYAfgAKAHhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2
ZYAEgACAA18QKWh0dHA6Ly9jb250ZW50LmRsLXJtcy5jb20vZHQvcy8xNDg2Ny9zLmpz0i4vMDFY
JGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7Ct+efBDI0w02Nzg5RFdO
Uy5rZXlzWk5TLm9iamVjdHOAHao6Ozw9Pj9AQUJDgAmACoALgAyADYAOgA+AEIARgBKqRUZHSElK
S0xNToATgBSAFYAWgBeAGIAZgBqAG4AcXUNhY2hlLUNvbnRyb2xXRXhwaXJlc11BY2NlcHQtUmFu
Z2VzVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rp
b25dTGFzdC1Nb2RpZmllZF8QJHB1YmxpYywgbXVzdC1yZXZhbGlkYXRlLCBtYXgtYWdlPTkwMF8Q
HU1vbiwgMTAgTm92IDIwMDggMjM6NTM6NDUgR01UVWJ5dGVzXxBvQXBhY2hlLUFkdmFuY2VkRXh0
cmFuZXRTZXJ2ZXIvMi4wLjUwIChNYW5kcmFrZWxpbnV4LzcuMi4xMDFtZGsuMTZrTGltaXQpIG1v
ZF9wZXJsLzEuOTlfMTYgUGVybC92NS44LjUgUEhQLzQuMy44XxAYYXBwbGljYXRpb24veC1qYXZh
c2NyaXB0UjQ3XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NSBHTVRfEBYiYzM0M2QzYjUtMmYt
YzA3NjE2MDAiWmtlZXAtYWxpdmVfEB1UaHUsIDA2IE5vdiAyMDA4IDA1OjQxOjQ0IEdNVNIuL2Rl
o2VmMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EC/SLi9paqNqazJfEBFOU0hU
VFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACHAI0AqACv
ALIAtQC5AL0AwADDAMYAyQDMAM8A0gDVANcA2QDbAN0A3wDhAOMA5QDnAOkA6wDtAPQA/AEIAQoB
DAEOAToBPwFIAVMBVgFcAWUBbgFwAXcBfwGKAYwBlwGZAZsBnQGfAaEBowGlAacBqQGrAbYBuAG6
AbwBvgHAAcIBxAHGAcgBygHYAeAB7gH1AgICEQIWAhsCJgI0AlsCewKBAvMDDgMRAzEDSgNVA3UD
egN+A5QDoQOjA6gDrAPAAAAAAAAAAgEAAAAAAAAAbAAAAAAAAAAAAAAAAAAAA85PEC8vKiBOb2Rl
IGNvbXBsZXRlZCByZWNydWl0bWVudCwgbm90aGluZyB0byBkbyAqL9QABQARAAcACAByAHMAdAB1
XxA9aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvYXBwcy90aW1lc3Blb3BsZS9u
b25lLnBuZ08RA+xicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2Jq
ZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAc
CwwmLC0zHjQ1S0xNTk9QUVJTVFVWV1hZWltfYFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEi
IyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAbgAKAGhAI
EACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QPWh0dHA6
Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzL2FwcHMvdGltZXNwZW9wbGUvbm9uZS5wbmfS
Li8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsKDxLCEMjTDTY3
ODlCV05TLmtleXNaTlMub2JqZWN0c4AZqDo7PD0+P0BBgAmACoALgAyADYAOgA+AEKhDREVGR0hJ
SoARgBKAE4AUgBWAFoAXgBhdQWNjZXB0LVJhbmdlc1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNvbnRl
bnQtTGVuZ3RoVERhdGVURXRhZ1pDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRVYnl0ZXNfEBZTdW4t
T05FLVdlYi1TZXJ2ZXIvNi4xWWltYWdlL3BuZ1QxMzI5XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzoz
ODo0NSBHTVReIjUzMS00OGQ2NzBhMyJaa2VlcC1hbGl2ZV8QHVN1biwgMjEgU2VwIDIwMDggMTY6
MDQ6NTEgR01U0i4vXF2jXV4yXxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRBTHS
Li9hYqNiYzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcA
OgBQAFIAZACDAIkApACrAK4AsQC1ALkAvAC/AMIAxQDIAMsAzgDRANMA1QDXANkA2wDdAN8A4QDj
AOUA5wDpAPAA+AEEAQYBCAEKAUoBTwFYAWMBZgFsAXUBfgGAAYcBjwGaAZwBpQGnAakBqwGtAa8B
sQGzAbUBvgHAAcIBxAHGAcgBygHMAc4B3AHjAfAB/wIEAgkCFAIiAigCQQJLAlACcAJ/AooCqgKv
ArMCyQLWAtkC3gLiAvYAAAAAAAACAQAAAAAAAABkAAAAAAAAAAAAAAAAAAADBFlpbWFnZS9wbmdP
EQUxiVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAAK/INwWK6QAAABl0
RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA5UExURfLy8uXl5fPz8+bm5unp6ejo
6Ozs7PDw8PHx8e7u7uvr6+rq6u/v7+fn5+3t7fb29vT09OTk5PX19Z3/jDQAAAR+SURBVHjaYhCi
EAAEEAOlBgAEEMUGAAQQxQYABBDFBgAEEMUGAAQQsQYIcPCxsfEwCGBIAAQQVgME+DnYedg5mJCV
CzCws/GysmGoBwggbAYwcPJxs7CysHCx8XAwCQkgjOAWZObmQFMMEEAMWBzLxigIBcwsfBxI7mYH
SnCj6QAIIEwDOJgFUQAjNw8D1DPsvEAz2VCVAwQQpp/Q9ANNYGRm4QK6g4mHFcRFMwAggNANYGAT
xAIYmXmBYcIL9hoLE4oGgABCN4CdWZAAYEXVAhBAGAYQ0i/IjaoBIIDQDBDgImgAJ6oOgABCM4AJ
ZAAzFw8PHxcrI1b9vOyoOgACCN0LwDBk5GMQEGBiYOcEGoIZImxMqEkJIIDQDeARFOSCiTFwcLJx
s7IyMyInCiYhVAMAAgjdACZeQR4BaIrk5ADKMnHwsTAzMjJCEgQ3E3q6AQggdAMEOBnZwAYwsDBz
wVQzsbOzsTDycnOyY+ZGgADCSIkCPCzAHMTOxczLxwDNWpxCwDDhYGVnEsDULwQQQFgyE5MAEyer
IDMf0H4BAR42FlYusCtYmLAWFAABhC07C3ACMw0nMCMDLQcmf0awAQys2MsegADCJgpKCywMwBIE
kqog+Q+XAQABhEWUCxjijBxMbLzQRIDfAIAAwhTlBOvj5uGE5F5CBgAEEEY0MrCC0wsXO5MQCyOS
AQI4AhEggDASEhskywqAwh3FAFbsBgAEEPbsDLUTagAoFph4mDmZsCQDIYAAQi8iwQHPzIduABMw
ZBjZOLAYABBAaAZwggOOlxPFAD4hDjZQyDJz82C6ASCA0AzgA+thZUc2gJEPKgz0GqYBAAGEaoAA
tyCi3BRABCInmMnIi8UAgABCNYCDFbsBQhwgk1k4sYQBQAChGsDDi1TwIhsgwMDHyMWBLRYAAgjV
AD5I6kUNA0g6YOLFql8IIIBQDWCDGMDMiWmAAAtW/UIAAYTVBYJcGAkJkRfQzAEIIKwuEOQVQI5G
FAM40Ip1gABCNYCdF5oBeYTgeYGVhwnJAAZOHlQDAAIIraJjhVWAAtBEwcIH0Q8zgI0bzQCAAEI1
gIkbVgEAy18GVmZWNnZ+ASEkAziYWdG8ABBA6EkZXoVycHCyciHlP7ABQBeyoOkACCD0zMQLrwO5
OQWYUHzHAM6raO0LIYAAQjcP7gdBLtTsz8AKaTyh+UAIIIDQq3dORDXMgyLHxMLJxSyI4QMhgADC
4LMgKlIuHrgjBATYecG+40Ev2AACCKNQRW6iMPPxCACrMyDmgOZTZoyCESCAMOtGLpQGGi83Hw8f
Nyu0jmDkxMgQAAGEWdgzsKA0TRh5eXkZGRGtA3QAEEBYagt2buyNG6B+LKUqQABhq25wmMDIzY5F
MUAAYa2vsLc22bCqBQgg7M19JnaM5h6wrsNaogAEEK4OB7DJz8KL1GjnxKUQIIBw9lgEhNiB0cfN
wsLCys3GLsSESx1AAOHv8rADU5AAO14lAAFEcacLIIAoNgAggCg2ACCAKDYAIIAoNgAggCg2ACDA
ACjJAEv7mH+AAAAAAElFTkSuQmCC1AAFABEABwAIAHcAeAB5AHpfEDlodHRwOi8vZ3JhcGhpY3M4
Lm55dGltZXMuY29tL2ltYWdlcy9nbG9iYWwvYnV0dG9ucy9nby5naWZPEQPlYnBsaXN0MDDUAQID
BAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291
cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QHAsMJiwtMx40NUtMTU5PUFFSU1RVVldY
WVpbX2BVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMk
MTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAG4ACgBoQCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQr
V05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEDlodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29t
L2ltYWdlcy9nbG9iYWwvYnV0dG9ucy9nby5naWbSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEy
VU5TVVJMWE5TT2JqZWN0I0GtkfsGs1QZEMjTDTY3ODlCV05TLmtleXNaTlMub2JqZWN0c4AZqDo7
PD0+P0BBgAmACoALgAyADYAOgA+AEKhDREVGR0hJSoARgBKAE4AUgBWAFoAXgBhdQWNjZXB0LVJh
bmdlc1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNvbnRlbnQtTGVuZ3RoVERhdGVURXRhZ1pDb25uZWN0
aW9uXUxhc3QtTW9kaWZpZWRVYnl0ZXNfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xWWltYWdlL2dp
ZlMxODZfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQzIEdNVF0iYmEtNDU5NjQ3YmEiWmtlZXAt
YWxpdmVfEB1TYXQsIDMwIERlYyAyMDA2IDExOjA0OjI2IEdNVNIuL1xdo11eMl8QE05TTXV0YWJs
ZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5ELrSLi9hYqNiYzJfEBFOU0hUVFBVUkxSZXNwb25zZV1O
U1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACDAIkApACrAK4AsQC1ALkAvAC/AMIA
xQDIAMsAzgDRANMA1QDXANkA2wDdAN8A4QDjAOUA5wDpAPAA+AEEAQYBCAEKAUYBSwFUAV8BYgFo
AXEBegF8AYMBiwGWAZgBoQGjAaUBpwGpAasBrQGvAbEBugG8Ab4BwAHCAcQBxgHIAcoB2AHfAewB
+wIAAgUCEAIeAiQCPQJHAksCawJ5AoQCpAKpAq0CwwLQAtIC1wLbAu8AAAAAAAACAQAAAAAAAABk
AAAAAAAAAAAAAAAAAAAC/VlpbWFnZS9naWZPELpHSUY4OWEWABMAsw8A////srKyiIiI7u7uZmZm
zMzM3d3du7u7REREMzMzqqqqmZmZd3d3IiIiVVVV////IfkEAQAADwAsAAAAABYAEwBABGfwhUmr
tRJooMQuBYcQwwZMZqqm6Oqa7ZcgowEwSRJu8ev2mo6g9OoJFACDgCA4eAAIWMDnC0gu2EuG+pty
V8CvBsg8LBpEsFfTBAwOB8MgMVgwpCYDgrgQGBwABQR4YixrhWOHiAERADvUAAUAEQAHAAgAfAB9
AHkAfl8QOmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzL21pc2Mvbnl0bG9nbzE1
M3gyMy5naWZPEQPpYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9i
amVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8Q
HAsMJiwtMx40NUtMTU5PUFFSU1RVVldYWVpbX2BVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAh
IiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAG4ACgBoQ
CBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEDpodHRw
Oi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy9taXNjL255dGxvZ28xNTN4MjMuZ2lm0i4v
MDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7BrIwuhDI0w02Nzg5
QldOUy5rZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAPgBCoQ0RFRkdISUqA
EYASgBOAFIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQtVHlwZV5Db250ZW50
LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5dGVzXxAWU3VuLU9O
RS1XZWItU2VydmVyLzYuMVlpbWFnZS9naWZUMTg3N18QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6
NDMgR01UXiI3NTUtNDU5NjQ3YzciWmtlZXAtYWxpdmVfEB1TYXQsIDMwIERlYyAyMDA2IDExOjA0
OjM5IEdNVNIuL1xdo11eMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQdV0i4v
YWKjYmMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoA
UABSAGQAgwCJAKQAqwCuALEAtQC5ALwAvwDCAMUAyADLAM4A0QDTANUA1wDZANsA3QDfAOEA4wDl
AOcA6QDwAPgBBAEGAQgBCgFHAUwBVQFgAWMBaQFyAXsBfQGEAYwBlwGZAaIBpAGmAagBqgGsAa4B
sAGyAbsBvQG/AcEBwwHFAccByQHLAdkB4AHtAfwCAQIGAhECHwIlAj4CSAJNAm0CfAKHAqcCrAKw
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
DYuYhixtIbQ1eKIlOH2EW8sKVrvyAK+QWKtZkXCPvAp2rAaICITSic1prgIfkI2sNpw6Wb2clQh8
eSwOVIM8IFTAACBaQ14kS9rSUhWwWVCpZfl6VGDAdQwiLYkXSktb0oYAADvUAAUAEQAHAAgAgACB
AIIAg18QRmh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL3N0P2FkX3R5cGU9YWQmYWRfc2l6ZT03
Mjh4OTAmc2VjdGlvbj0zOTQ4MTBPEQQKYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkk
YXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5
ZWRBcmNoaXZlcq8QGwsMIigpLzAxMkhJSktMTU5PUFFSU1RVVlRXW1UkbnVsbNsNDg8QERITFBUW
FxgZGhscHR4fIBohViRjbGFzc1IkM1IkOFIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAagAIQCIAG
gAeABYAIEAUQABAB0w0jJCUmJ1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBGaHR0cDovL2Fk
LnlpZWxkbWFuYWdlci5jb20vc3Q/YWRfdHlwZT1hZCZhZF9zaXplPTcyOHg5MCZzZWN0aW9uPTM5
NDgxMNIqKywtWCRjbGFzc2VzWiRjbGFzc25hbWWiLS5VTlNVUkxYTlNPYmplY3QjQa2R+wa6jzsQ
AhDI0w0zNDU2P1dOUy5rZXlzWk5TLm9iamVjdHOAGag3ODk6Ozw9PoAJgAqAC4AMgA2ADoAPgBCo
QEFCQ0RFRkeAEYASgBOAFIAVgBaAF4AYU1AzcF1DYWNoZS1Db250cm9sVlByYWdtYVZTZXJ2ZXJU
RGF0ZV5Db250ZW50LUxlbmd0aFpDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRfEGNwb2xpY3lyZWY9
Ii93M2MvcDNwLnhtbCIsIENQPSJOT0kgRFNQIENPUiBOSUQgQ1VSYSBBRE1hIERFVmEgUFNBYSBQ
U0RhIE9VUiBCVVMgQ09NIElOVCBPVEMgUFVSIFNUQSJYbm8tc3RvcmVYbm8tY2FjaGVfEBpybWFz
LXNlcnZlci1jb3JlLWx6MS8zLjYuMF8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDMgR01UVDQx
NTdVY2xvc2XSKitYWaNZWi5fEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyedIqK1xd
o11eLl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAA
UgBkAIIAiACfAKYAqQCsAK8AsgC1ALgAuwC+AMEAxADGAMgAygDMAM4A0ADSANQA1gDYAN8A5wDz
APUA9wD5AUIBRwFQAVsBXgFkAW0BdgF4AXoBgQGJAZQBlgGfAaEBowGlAacBqQGrAa0BrwG4AboB
vAG+AcABwgHEAcYByAHMAdoB4QHoAe0B/AIHAhUCewKEAo0CqgLKAs8C1QLaAt4C9AMBAwYDCgMe
AAAAAAAAAgEAAAAAAAAAXwAAAAAAAAAAAAAAAAAAAyxadGV4dC9wbGFpbk8RED0vKiBBbGwgcG9y
dGlvbnMgb2YgdGhpcyBzb2Z0d2FyZSBhcmUgY29weXJpZ2h0IChjKSAyMDAzLTIwMDYgUmlnaHQg
TWVkaWEqL3ZhciBybV9iYW5fZmxhc2g9MDt2YXIgcm1fdXJsPSIiO3ZhciBybV9wb3BfZnJlcXVl
bmN5PTA7dmFyIHJtX3BvcF9pZD0wO3ZhciBybV9wb3BfdGltZXM9MDt2YXIgcm1fcG9wX25vZnJl
cWNhcD0wO3ZhciBybV9wYXNzYmFjaz0wO3ZhciBybV90YWdfdHlwZT0iIjtybV90YWdfdHlwZSA9
ICJhZCI7IHJtX3VybCA9ICJodHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9pbXA/Wj03Mjh4OTAm
cz0zOTQ4MTAmX3NhbHQ9OTE3NjczMzE2Ijt2YXIgUk1fUE9QX0NPT0tJRV9OQU1FPSd5bV9wb3Bf
ZnJlcSc7dmFyIFJNX0lOVF9DT09LSUVfTkFNRT0neW1faW50X2ZyZXEnO2lmKCF3aW5kb3cucm1f
Y3JleF9kYXRhKXtybV9jcmV4X2RhdGE9bmV3IEFycmF5KCk7fWlmKHJtX3Bhc3NiYWNrPT0wKXty
bV9wYl9kYXRhPW5ldyBBcnJheSgpO2lmKHJtX2NyZXhfZGF0YS5sZW5ndGg+MCl7cm1fdXJsKz0i
Jlg9Ijtmb3IodmFyIGk9MDtpPHJtX2NyZXhfZGF0YS5sZW5ndGg7aSsrKXtybV91cmwrPXJtX2Ny
ZXhfZGF0YVtpXTtpZihpIT1ybV9jcmV4X2RhdGEubGVuZ3RoLTEpe3JtX3VybCs9IiwiO319fX1l
bHNle3JtX3BiX2RhdGEucHVzaChybV9jcmV4X2RhdGEucG9wKCkpO3JtX3VybCs9IiZYPSI7Zm9y
KHZhciBpPTA7aTxybV9wYl9kYXRhLmxlbmd0aDtpKyspe3JtX3VybCs9cm1fcGJfZGF0YVtpXTtp
ZihpIT1ybV9wYl9kYXRhLmxlbmd0aC0xKXtybV91cmwrPSIsIjt9fXJtX3VybCs9IiZZPXBiIjt9
dmFyIGZsYXNoPW5ldyBPYmplY3QoKTtmbGFzaD1mbGFzaERldGVjdGlvbigpO2lmKGNvb2tpZXNF
bmFibGVkKCkpe3JtX3VybCs9KGZsYXNoLmluc3RhbGxlZD8iJkI9MTAiOiImQj0xMiIpO31lbHNl
e3JtX3VybCs9KGZsYXNoLmluc3RhbGxlZD8iJkI9MTEiOiImQj0xMyIpO31pZighZmxhc2guaW5z
dGFsbGVkfHxybV9iYW5fZmxhc2g9PTEpe3JtX3VybCs9IiZtPTIiO312YXIgdXJsPScnO3RyeXtp
ZihybV90YWdfdHlwZT09ImFkIil7aWYodG9wPT1zZWxmKXt1cmw9ZW5jb2RlVVJJQ29tcG9uZW50
KHRvcC5sb2NhdGlvbi5ocmVmKTt1cmw9dXJsLnN1YnN0cigwLDI1Nik7cm1fdXJsKz0iJnU9Iit1
cmw7fX1lbHNlIGlmKHJtX3RhZ190eXBlPT0iaWZyYW1lIil7dXJsPWVuY29kZVVSSUNvbXBvbmVu
dChkb2N1bWVudC5yZWZlcnJlcik7dXJsPXVybC5zdWJzdHIoMCwyNTYpO3JtX3VybCs9IiZ1PSIr
dXJsO319Y2F0Y2goZSl7fWlmKHRvcD09c2VsZil7cm1fdXJsKz0iJnI9MSI7fWVsc2V7cm1fdXJs
Kz0iJnI9MCI7fXZhciBybV90YWdfc3JjPSc8U0NSSVBUIFRZUEU9InRleHQvamF2YXNjcmlwdCIg
U1JDPSInK3JtX3VybCsnIj48XC9TQ1JJUFQ+JztpZihybV9wb3BfZnJlcXVlbmN5KXtpZihybUNh
blNob3dQb3Aocm1fcG9wX2lkLHJtX3BvcF90aW1lcyxybV9wb3BfZnJlcXVlbmN5KXx8cm1fcG9w
X25vZnJlcWNhcCl7ZG9jdW1lbnQud3JpdGUocm1fdGFnX3NyYyk7fX1lbHNle2RvY3VtZW50Lndy
aXRlKHJtX3RhZ19zcmMpO31mdW5jdGlvbiBjb29raWVzRW5hYmxlZCgpe3ZhciBjb29raWVFbmFi
bGVkPShuYXZpZ2F0b3IuY29va2llRW5hYmxlZCk/dHJ1ZTpmYWxzZTtpZih0eXBlb2YgbmF2aWdh
dG9yLmNvb2tpZUVuYWJsZWQ9PSJ1bmRlZmluZWQiJiYhY29va2llRW5hYmxlZCl7ZG9jdW1lbnQu
Y29va2llPSJ0ZXN0Y29va2llIjtjb29raWVFbmFibGVkPShkb2N1bWVudC5jb29raWUuaW5kZXhP
ZigidGVzdGNvb2tpZSIpIT0tMSk/dHJ1ZTpmYWxzZTt9cmV0dXJuIGNvb2tpZUVuYWJsZWQ7fWZ1
bmN0aW9uIHJtR2V0Q29va2llKE5hbWUpe3ZhciBzZWFyY2g9TmFtZSsiPSI7dmFyIENvb2tpZVN0
cmluZz1kb2N1bWVudC5jb29raWU7dmFyIHJlc3VsdD1udWxsO2lmKENvb2tpZVN0cmluZy5sZW5n
dGg+MCl7b2Zmc2V0PUNvb2tpZVN0cmluZy5pbmRleE9mKHNlYXJjaCk7aWYob2Zmc2V0IT0tMSl7
b2Zmc2V0Kz1zZWFyY2gubGVuZ3RoO2VuZD1Db29raWVTdHJpbmcuaW5kZXhPZigiOyIsb2Zmc2V0
KTtpZihlbmQ9PS0xKXtlbmQ9Q29va2llU3RyaW5nLmxlbmd0aDt9cmVzdWx0PXVuZXNjYXBlKENv
b2tpZVN0cmluZy5zdWJzdHJpbmcob2Zmc2V0LGVuZCkpO319cmV0dXJuIHJlc3VsdDt9ZnVuY3Rp
b24gZmxhc2hEZXRlY3Rpb24oKXt2YXIgZmxhc2g9bmV3IE9iamVjdCgpO2ZsYXNoLmluc3RhbGxl
ZD1mYWxzZTtmbGFzaC52ZXJzaW9uPScwLjAnO2lmKG5hdmlnYXRvci5wbHVnaW5zJiZuYXZpZ2F0
b3IucGx1Z2lucy5sZW5ndGgpe2Zvcih4PTA7eDxuYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGg7eCsr
KXtpZihuYXZpZ2F0b3IucGx1Z2luc1t4XS5uYW1lLmluZGV4T2YoJ1Nob2Nrd2F2ZSBGbGFzaCcp
IT0tMSl7Zmxhc2gudmVyc2lvbj1uYXZpZ2F0b3IucGx1Z2luc1t4XS5kZXNjcmlwdGlvbi5zcGxp
dCgnU2hvY2t3YXZlIEZsYXNoICcpWzFdO2ZsYXNoLmluc3RhbGxlZD10cnVlO2JyZWFrO319fWVs
c2UgaWYod2luZG93LkFjdGl2ZVhPYmplY3Qpe2Zvcih4PTI7eDwxMDt4Kyspe3RyeXtvRmxhc2g9
ZXZhbCgibmV3IEFjdGl2ZVhPYmplY3QoJ1Nob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLiIr
eCsiJyk7Iik7aWYob0ZsYXNoKXtmbGFzaC5pbnN0YWxsZWQ9dHJ1ZTtmbGFzaC52ZXJzaW9uPXgr
Jy4wJzt9fWNhdGNoKGUpe319fXJldHVybiBmbGFzaDt9ZnVuY3Rpb24gcm1SZXBsYWNlKG15U3Ry
aW5nLHRvUmVwbGFjZSxyZXBsYWNlQnkpe3JldHVybihteVN0cmluZy5yZXBsYWNlKG5ldyBSZWdF
eHAodG9SZXBsYWNlLCdnaScpLHJlcGxhY2VCeSkpO31mdW5jdGlvbiB3cml0ZUNvb2tpZShja05h
bWUsY2tWYWwpe3ZhciBudW1kYXlzPTE0O3ZhciB0b2RheT1uZXcgRGF0ZSgpO3ZhciBleHBpcmVz
PW5ldyBEYXRlKCk7ZXhwaXJlcy5zZXRUaW1lKHRvZGF5LmdldFRpbWUoKSsoMTAwMCo2MCo2MCoy
NCpudW1kYXlzKSk7dmFyIGNvb2tpZVRleHQ9Y2tOYW1lKyI9Iitja1ZhbCsiO2V4cGlyZXM9Iitl
eHBpcmVzLnRvR01UU3RyaW5nKCkrIjtwYXRoPS87Ijtkb2N1bWVudC5jb29raWU9Y29va2llVGV4
dDtyZXR1cm4gbnVsbDt9ZnVuY3Rpb24gcm1DYW5TaG93UG9wKHJtX3BvcF9pZCxwb3BfdGltZXMs
cG9wX2ZyZXF1ZW5jeSl7dmFyIGNvdW50Q29va2llTmFtZT1STV9QT1BfQ09PS0lFX05BTUUrcm1f
cG9wX2lkO3ZhciBleHBpcmVDb29raWVOYW1lPVJNX1BPUF9DT09LSUVfTkFNRSsiX2V4cGlyYXRp
b24iK3JtX3BvcF9pZDt2YXIgc2hvd25UaW1lcz1ybUdldENvb2tpZShjb3VudENvb2tpZU5hbWUp
O2lmKHNob3duVGltZXM9PW51bGwpe3JtV3JpdGVFeHBpcmF0aW9uQ29va2llKGV4cGlyZUNvb2tp
ZU5hbWUscG9wX2ZyZXF1ZW5jeSk7c2hvd25UaW1lcz0wO31lbHNle3Nob3duVGltZXM9TnVtYmVy
KHNob3duVGltZXMpO31pZihzaG93blRpbWVzPHBvcF90aW1lcyl7c2hvd25UaW1lcz0xK3Nob3du
VGltZXM7dmFyIGV4cGlyYXRpb249cm1HZXRDb29raWUoZXhwaXJlQ29va2llTmFtZSk7cm1Xcml0
ZVBvcEZyZXF1ZW5jeUNvb2tpZShybV9wb3BfaWQsc2hvd25UaW1lcyxleHBpcmF0aW9uKTtyZXR1
cm5fdmFsdWU9dHJ1ZTt9ZWxzZXtyZXR1cm5fdmFsdWU9ZmFsc2U7fXJldHVybiByZXR1cm5fdmFs
dWU7fWZ1bmN0aW9uIHJtV3JpdGVQb3BGcmVxdWVuY3lDb29raWUocm1fcG9wX2lkLHNob3duVGlt
ZXMsZXhwaXJhdGlvbil7dmFyIGNvb2tpZU5hbWU9Uk1fUE9QX0NPT0tJRV9OQU1FK3JtX3BvcF9p
ZDt2YXIgY29va2llVGV4dD1jb29raWVOYW1lKyI9IitzaG93blRpbWVzKyI7IisiZXhwaXJlcz0i
K2V4cGlyYXRpb24rIjtwYXRoPS87Ijtkb2N1bWVudC5jb29raWU9Y29va2llVGV4dDt9ZnVuY3Rp
b24gcm1Xcml0ZUV4cGlyYXRpb25Db29raWUoY29va2llTmFtZSxmcmVxdWVuY3kpe3ZhciB0b2Rh
eT1uZXcgRGF0ZSgpO3ZhciBleHBpcmVzPW5ldyBEYXRlKCk7ZXhwaXJlcy5zZXRUaW1lKHRvZGF5
LmdldFRpbWUoKSsoMTAwMCpmcmVxdWVuY3kpKTt2YXIgY29va2llVGV4dD1jb29raWVOYW1lKyI9
IitleHBpcmVzLnRvR01UU3RyaW5nKCkrIjsiKyJleHBpcmVzPSIrZXhwaXJlcy50b0dNVFN0cmlu
ZygpKyI7cGF0aD0vOyI7ZG9jdW1lbnQuY29va2llPWNvb2tpZVRleHQ7fdQABQARAAcACACFAIYA
FACHXxDZaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vaW1wP1o9NzI4eDkwJnM9Mzk0ODEwJl9z
YWx0PTkxNzY3MzMxNiZCPTEwJnU9aHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVzLmNvbSUyRjIwMDgl
MkYxMSUyRjEwJTJGaGVhbHRoJTJGMTBoZWFydC5odG1sJTNGX3IlM0QyJTI2cGFydG5lciUzRHJz
c255dCUyNmVtYyUzRHJzcyUyNm9yZWYlM0RzbG9naW4lMjZvcmVmJTNEc2xvZ2luJnI9MU8RBdpi
cGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcI
XxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAfCwwiKCkvMDEyTE1O
T1BRUlNUVVZXWFlaW1hcXV5fY1UkbnVsbNsNDg8QERITFBUWFxgZGhscHR4fIBohViRjbGFzc1Ik
M1IkOFIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAegAIQCIAGgAeABYAIEAUQABAB0w0jJCUmJ1dO
Uy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxDZaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vaW1w
P1o9NzI4eDkwJnM9Mzk0ODEwJl9zYWx0PTkxNzY3MzMxNiZCPTEwJnU9aHR0cCUzQSUyRiUyRnd3
dy5ueXRpbWVzLmNvbSUyRjIwMDglMkYxMSUyRjEwJTJGaGVhbHRoJTJGMTBoZWFydC5odG1sJTNG
X3IlM0QyJTI2cGFydG5lciUzRHJzc255dCUyNmVtYyUzRHJzcyUyNm9yZWYlM0RzbG9naW4lMjZv
cmVmJTNEc2xvZ2luJnI9MdIqKywtWCRjbGFzc2VzWiRjbGFzc25hbWWiLS5VTlNVUkxYTlNPYmpl
Y3QjQa2R+wbrHIYQAhDI0w0zNDU2QVdOUy5rZXlzWk5TLm9iamVjdHOAHao3ODk6Ozw9Pj9AgAmA
CoALgAyADYAOgA+AEIARgBKqQkNERUZHSElKS4ATgBSAFYAWgBeAGIAZgBqAG4AcU1AzcF1DYWNo
ZS1Db250cm9sXUxhc3QtTW9kaWZpZWRWUHJhZ21hVlNlcnZlclxDb250ZW50LVR5cGVURGF0ZV5D
b250ZW50LUxlbmd0aFpDb25uZWN0aW9uWlNldC1Db29raWVfEGNwb2xpY3lyZWY9Ii93M2MvcDNw
LnhtbCIsIENQPSJOT0kgRFNQIENPUiBOSUQgQ1VSYSBBRE1hIERFVmEgUFNBYSBQU0RhIE9VUiBC
VVMgQ09NIElOVCBPVEMgUFVSIFNUQSJYbm8tc3RvcmVfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4
OjQzIEdNVFhuby1jYWNoZV8QGnJtYXMtc2VydmVyLWNvcmUtbHoxLzMuNi4wXxAYYXBwbGljYXRp
b24veC1qYXZhc2NyaXB0UzY4OFVjbG9zZV8Q6GZsX2luc3Q9MTsgcGF0aD0vOyBleHBpcmVzPVNh
dCwgMDktTWF5LTIwMDkgMjM6Mzg6NDMgR01ULCB1aWQ9dWlkPWI1ZjgxZjBhLWFmODAtMTFkZC04
NGZmLTAwMWNjNGE1N2E5MCZfaG1hY3Y9MSZfc2FsdD0xMjQ4MDUwOTg1Jl9rZXlpZD1rMSZfaG1h
Yz1iM2IxZDhkYzNlMzIzOTdiZDFmNzNhODI3ZjVkYWYzYjQ0NzZhNTgxOyBwYXRoPS87IGV4cGly
ZXM9V2VkLCAxMC1EZWMtMjAwOCAyMzozODo0MyBHTVTSKitgYaNhYi5fEBNOU011dGFibGVEaWN0
aW9uYXJ5XE5TRGljdGlvbmFyedIqK2Rlo2VmLl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVz
cG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIYAjACjAKoArQCwALMAtgC5ALwAvwDCAMUAyADK
AMwAzgDQANIA1ADWANgA2gDcAOMA6wD3APkA+wD9AdkB3gHnAfIB9QH7AgQCDQIPAhECGAIgAisC
LQI4AjoCPAI+AkACQgJEAkYCSAJKAkwCVwJZAlsCXQJfAmECYwJlAmcCaQJrAm8CfQKLApICmQKm
AqsCugLFAtADNgM/A18DaAOFA6ADpAOqBJUEmgSeBLQEwQTGBMoE3gAAAAAAAAIBAAAAAAAAAGcA
AAAAAAAAAAAAAAAAAATsTxECsGRvY3VtZW50LndyaXRlKCc8aWZyYW1lIHNjcm9sbGluZz1cIm5v
XCIgbWFyZ2lud2lkdGg9XCIwXCIgbWFyZ2luaGVpZ2h0PVwiMFwiIGZyYW1lYm9yZGVyPVwiMFwi
IGhlaWdodD1cIjkwXCIgd2lkdGg9XCI3MjhcIiBzcmM9XCJodHRwOi8vYWQueWllbGRtYW5hZ2Vy
LmNvbS9pZnJhbWUzP3BnSUFBRG9HQmdBSmR4SUEuWlFGQUFJQUFBQUFBUDhBQUFBQ0VBSUFCZ0tm
U1FnQXJsY0lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNM016TXpNelBBLnpjek16
TXpNOEQuTnpNek16TXp3UDgzTXpNek16UEEuQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW9kbFBpNE9xWVFYSmNLbnpEb3JXdjNT
ajhTbkxvTjFNUmdELXJ3QUFBQUE9LCxodHRwOi8vd3d3Lm55dGltZXMuY29tLzIwMDgvMTEvMTAv
aGVhbHRoLzEwaGVhcnQuaHRtbD9fcj0yJnBhcnRuZXI9cnNzbnl0JmVtYz1yc3Mmb3JlZj1zbG9n
aW4mb3JlZj1zbG9naW5cIj48L2lmcmFtZT4nKTsKdmFyIHJtX2RhdGEgPSBuZXcgT2JqZWN0KCk7
CnJtX2RhdGEuY3JlYXRpdmVfaWQgPSAxMjEwMTIxOwpybV9kYXRhLm9mZmVyX3R5cGUgPSAzOwpy
bV9kYXRhLmVudGl0eV9pZCA9IDk5OTE1OwppZiAod2luZG93LnJtX2NyZXhfZGF0YSkge3JtX2Ny
ZXhfZGF0YS5wdXNoKDEyMTAxMjEpO33UAAUAEQAHAAgAiQCKABQAi18QRmh0dHA6Ly9ncmFwaGlj
czgubnl0aW1lcy5jb20vanMvc2VjdGlvbi9oZWFsdGgvYXV0b2NvbXBsZXRlL3N1Z2dlc3QuanNP
EQS5YnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGG
oNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QJAsMJiwtMx40
NVNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtvcFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEi
IyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAjgAKAIhAI
EACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QRmh0dHA6
Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvc2VjdGlvbi9oZWFsdGgvYXV0b2NvbXBsZXRlL3N1
Z2dlc3QuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsH
EeVcEMjTDTY3ODlGV05TLmtleXNaTlMub2JqZWN0c4AhrDo7PD0+P0BBQkNERYAJgAqAC4AMgA2A
DoAPgBCAEYASgBOAFKxHSElKS0xNTk9QUVKAFYAWgBeAGIAZgBqAG4AcgB2AHoAfgCBeQ29udGVu
dC1MZW5ndGhdQ2FjaGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNfEBBDb250
ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVURGF0ZV5OdGNvZW50LUxlbmd0aFRFdGFn
WkNvbm5lY3Rpb25UVmFyeVUyNzc2Nl8QF3ByaXZhdGUsIG1heC1hZ2U9MzQ2NTg4XxAdRnJpLCAw
NyBOb3YgMjAwOCAxMzoyNTozMiBHTVRVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82
LjFfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQz
IEdNVFU3OTUwOV8QECIxMzY5NS00OTE0NDFjYyJaa2VlcC1hbGl2ZV8QD0FjY2VwdC1FbmNvZGlu
Z9IuL2xto21uMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EgABNpXSLi9xcqNy
czJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIA
ZACLAJEArACzALYAuQC9AMEAxADHAMoAzQDQANMA1gDZANsA3QDfAOEA4wDlAOcA6QDrAO0A7wDx
APgBAAEMAQ4BEAESAVsBYAFpAXQBdwF9AYYBjwGRAZgBoAGrAa0BugG8Ab4BwAHCAcQBxgHIAcoB
zAHOAdAB0gHfAeEB4wHlAecB6QHrAe0B7wHxAfMB9QH3AgYCFAIiAjACQwJKAlcCXAJrAnACewKA
AoYCoALAAsYCywLkAv8DHwMlAzgDQwNVA1oDXgN0A4EDhgOLA48DowAAAAAAAAIBAAAAAAAAAHQA
AAAAAAAAAAAAAAAAAAOxTxIAATaVdmFyIHN1Z2dlc3Rpb25zID0gW1siQmFydGhvbGluJ3MgQWJz
Y2VzcyIsMV0sWyJCcmVhc3QgSW5mZWN0aW9uIiwxXSxbIkNlcnZpY2FsIER5c3BsYXNpYSIsMV0s
WyJBZGhlc2lvbiIsMV0sWyJDZXJ2aWNhbCBQb2x5cHMiLDFdLFsiTWlzY2FycmlhZ2UiLDFdLFsi
THV0ZWFsIFBoYXNlIERlZmVjdCIsMV0sWyJBc2hlcm1hbiBTeW5kcm9tZSIsMV0sWyJFbmRvbWV0
cml0aXMiLDFdLFsiRGVybWF0aXRpcyBIZXJwZXRpZm9ybWlzIiwxXSxbIlRyYWNob21hIiwxXSxb
IlZhZ2luaXNtdXMiLDFdLFsiRnVydW5jbGUiLDFdLFsiUG9ydC1XaW5lIFN0YWluIiwxXSxbIlNl
bGVjdGl2ZSBEZWZpY2llbmN5IG9mIElnQSIsMV0sWyJBbGJpbmlzbSIsMV0sWyJNdWx0aXBsZSBM
ZW50aWdpbmVzIFN5bmRyb21lIiwxXSxbIlVydGljYXJpYSBQaWdtZW50b3NhIiwxXSxbIlhlcm9k
ZXJtYSBQaWdtZW50b3NhIiwxXSxbIkVobGVycy1EYW5sb3MgU3luZHJvbWUiLDFdLFsiRWN0b2Rl
cm1hbCBEeXNwbGFzaWEiLDFdLFsiRXJ5dGhyYXNtYSIsMV0sWyJUaW5lYSBWZXJzaWNvbG9yIiwx
XSxbIk1vbmdvbGlhbiBCbHVlIFNwb3RzIiwxXSxbIkVyeXRoZW1hIFRveGljdW0iLDFdLFsiSGVt
YW5naW9tYSIsMV0sWyJIb3QgVHViIEZvbGxpY3VsaXRpcyIsMV0sWyJJbmNvbnRpbmVudGlhIFBp
Z21lbnRpIEFjaHJvbWlhbnMiLDFdLFsiS2VyYXRvc2lzIFBpbGFyaXMiLDFdLFsiUGl0eXJpYXNp
cyBBbGJhIiwxXSxbIkVwaWRlcm1vbHlzaXMgQnVsbG9zYSIsMV0sWyJQeW9nZW5pYyBHcmFudWxv
bWEiLDFdLFsiQWxvcGVjaWEgQXJlYXRhIiwxXSxbIkljaHRoeW9zaXMgVnVsZ2FyaXMiLDFdLFsi
QmFzYWwgQ2VsbCBOZXZ1cyBTeW5kcm9tZSIsMV0sWyJCYXRoaW5nIFRydW5rIE5ldnVzIiwxXSxb
IkNyZWVwaW5nIEVydXB0aW9uIiwxXSxbIlBlcmlvcmFsIERlcm1hdGl0aXMiLDFdLFsiSGVyZWRp
dGFyeSBBbmdpb2VkZW1hIiwxXSxbIlRyaWNob3JyaGV4aXMgTm9kb3NhIiwxXSxbIlNraW4gQ2Fu
Y2VyIiwxXSxbIk5lY3JvdGl6aW5nIFNvZnQgVGlzc3VlIEluZmVjdGlvbiIsMV0sWyJQYXJvbnlj
aGlhIiwxXSxbIlZ1bHZpdGlzIiwxXSxbIkFjcm9kZXJtYXRpdGlzIiwxXSxbIlhhbnRob21hIiwx
XSxbIkNoZXJyeSBBbmdpb21hIiwxXSxbIk1vdXRoIFVsY2VycyIsMV0sWyJDZXJlYnJhbCBIeXBv
eGlhIiwxXSxbIkdhbmdsaW9uZXVyb2JsYXN0b21hIiwxXSxbIkdhbmdsaW9uZXVyb21hIiwxXSxb
IlBvbHlhcnRlcml0aXMgTm9kb3NhIiwxXSxbIlJpbmd3b3JtIiwxXSxbIkJpcnRobWFya3MgLSBS
ZWQiLDFdLFsiVGhvcmFjaWMgT3V0bGV0IFN5bmRyb21lIiwxXSxbIldhYXJkZW5idXJnIFN5bmRy
b21lIiwxXSxbIlJoYWJkb215b3NhcmNvbWEiLDFdLFsiU3BlZWNoIERpc29yZGVycyIsMV0sWyJB
dXRvbm9taWMgSHlwZXJyZWZsZXhpYSIsMV0sWyJWZXJ0aWdvLUFzc29jaWF0ZWQgRGlzb3JkZXJz
IiwxXSxbIlRyZW1vciIsMV0sWyJTdHV0dGVyaW5nIiwxXSxbIkJyYWluIEhlcm5pYXRpb24iLDFd
LFsiU3ViZHVyYWwgRWZmdXNpb24iLDFdLFsiVmVydGVicm9iYXNpbGFyIENpcmN1bGF0b3J5IERp
c29yZGVycyIsMV0sWyJNeW90b25pYSBDb25nZW5pdGEiLDFdLFsiQmVuaWduIFBvc2l0aW9uYWwg
VmVydGlnbyIsMV0sWyJGYWNpYWwgTmVydmUgUGFsc3kgRHVlIHRvIEJpcnRoIFRyYXVtYSIsMV0s
WyJTdHVyZ2UtV2ViZXIgU3luZHJvbWUiLDFdLFsiQW5ldXJ5c20gaW4gdGhlIEJyYWluIiwxXSxb
IkVuY2VwaGFsaXRpcyIsMV0sWyJFcGlkdXJhbCBBYnNjZXNzIiwxXSxbIkJydXhpc20iLDFdLFsi
VGF5LVNhY2hzIERpc2Vhc2UiLDFdLFsiQnJhY2hpYWwgUGxleG9wYXRoeSIsMV0sWyJTdWJhY3V0
ZSBTY2xlcm9zaW5nIFBhbmVuY2VwaGFsaXRpcyIsMV0sWyJEZXZlbG9wbWVudGFsIFJlYWRpbmcg
RGlzb3JkZXIiLDFdLFsiTmV1cmFsZ2lhIiwxXSxbIk5ldXJvYmxhc3RvbWEiLDFdLFsiU3Bhc211
cyBOdXRhbnMiLDFdLFsiRmFjaWFsIFRpY3MiLDFdLFsiRnJpZWRyZWljaCdzIEF0YXhpYSIsMV0s
WyJFeHRyYWR1cmFsIEhlbW9ycmhhZ2UiLDFdLFsiU3BpbmFsIENvcmQgQWJzY2VzcyIsMV0sWyJT
eXJpbmdvbXllbGlhIiwxXSxbIlRlbXBvcmFsIExvYmUgU2VpenVyZSIsMV0sWyJTdHJva2UgU2Vj
b25kYXJ5IHRvIEZNRCIsMV0sWyJPcmdhbmljIEJyYWluIFN5bmRyb21lIiwxXSxbIlBvbGlvbXll
bGl0aXMiLDFdLFsiU3BpbmFsIFR1bW9yIiwxXSxbIlBvc3RlcmlvciBGb3NzYSBUdW1vciIsMV0s
WyJBY3V0ZSBDZXJlYmVsbGFyIEF0YXhpYSIsMV0sWyJUYWVuaWFzaXMiLDFdLFsiUGhhcnluZ2l0
aXMgLSBWaXJhbCIsMV0sWyJIZXBhdG9jZXJlYnJhbCBEZWdlbmVyYXRpb24iLDFdLFsiQXRheGlh
IC0gVGVsYW5naWVjdGFzaWEiLDFdLFsiQnJhY2hpYWwgUGFsc3kgaW4gTmV3Ym9ybnMiLDFdLFsi
QnJhbmNoaWFsIENsZWZ0IEN5c3QiLDFdLFsiVmVybmFsIENvbmp1bmN0aXZpdGlzIiwxXSxbIkhl
cnBldGljIFN0b21hdGl0aXMiLDFdLFsiSW5mYW50IEJvdHVsaXNtIiwxXSxbIkxhcnluZ2l0aXMi
LDFdLFsiTGVpc2htYW5pYXNpcyIsMV0sWyJSaWxleS1EYXkgU3luZHJvbWUiLDFdLFsiU3Rvcmsg
Qml0ZSIsMV0sWyJIYW50YXZpcnVzIiwxXSxbIlZhY2NpbmUgUmVhY3Rpb24iLDFdLFsiRGlwaHls
bG9ib3Rocmlhc2lzIiwxXSxbIkxlcHRvc3Bpcm9zaXMiLDFdLFsiSHltZW5vbGVwaWFzaXMiLDFd
LFsiS3VydSIsMV0sWyJMaXN0ZXJpb3NpcyIsMV0sWyJEZW5ndWUgRmV2ZXIiLDFdLFsiRWhybGlj
aGlvc2lzIiwxXSxbIk1pbGlhIiwxXSxbIkJpcnRoLUFjcXVpcmVkIEhlcnBlcyIsMV0sWyJJbmZl
Y3Rpb3VzIE15cmluZ2l0aXMiLDFdLFsiUGFyYWluZmx1ZW56YSIsMV0sWyJQbGV1cmlzeSIsMV0s
WyJDaGFnYXMgRGlzZWFzZSIsMV0sWyJHcm91cCBCIFN0cmVwdG9jb2NjYWwgU2VwdGljZW1pYSBv
ZiB0aGUgTmV3Ym9ybiIsMV0sWyJEZW5ndWUgSGVtb3JyaGFnaWMgRmV2ZXIiLDFdLFsiVGljayBQ
YXJhbHlzaXMiLDFdLFsiQ29uZ2VuaXRhbCBUb3hvcGxhc21vc2lzIiwxXSxbIlNsZWVwaW5nIFNp
Y2tuZXNzIiwxXSxbIlR5cGh1cyIsMV0sWyJXaGlwd29ybSBJbmZlY3Rpb24iLDFdLFsiU3lkZW5o
YW0gQ2hvcmVhIiwxXSxbIlllbGxvdyBGZXZlciIsMV0sWyJSaWNrZXR0c2lhbCBQb3giLDFdLFsi
U2NhbGRlZCBTa2luIFN5bmRyb21lIiwxXSxbIkFic2Nlc3MiLDFdLFsiU2Nyb2Z1bGEiLDFdLFsi
U2VwdGljZW1pYSIsMV0sWyJTbWFsbHBveCIsMV0sWyJTd2ltbWluZyBQb29sIEdyYW51bG9tYSIs
MV0sWyJSZWxhcHNpbmcgRmV2ZXIiLDFdLFsiQ29uZ2VuaXRhbCBDeXRvbWVnYWxvdmlydXMiLDFd
LFsiQ29uZ2VuaXRhbCBTeXBoaWxpcyIsMV0sWyJDaGxhbXlkaWEiLDFdLFsiUHJvY3RpdGlzIC0g
U3RyZXB0b2NvY2NhbCIsMV0sWyJMZXByb3N5IiwxXSxbIlJhdC1CaXRlIEZldmVyIiwxXSxbIk1l
bmluZ29jb2NjZW1pYSIsMV0sWyJOb21hIiwxXSxbIlBlcml0b25pdGlzIiwxXSxbIk90aXRpcyIs
MV0sWyJRIEZldmVyIiwxXSxbIlNwb3JvdHJpY2hvc2lzIiwxXSxbIkVib2xhIEhlbW9ycmhhZ2lj
IEZldmVyIiwxXSxbIkVDSE8gVmlydXMiLDFdLFsiUmFiaWVzIiwxXSxbIllhd3MiLDFdLFsiU3lw
aGlsaXMiLDFdLFsiQ3J5cHRvY29jY29zaXMiLDFdLFsiRmxlYXMiLDFdLFsiRnVuZ2FsIE5haWwg
SW5mZWN0aW9uIiwxXSxbIlRyaWNob21vbmlhc2lzIiwxXSxbIlR5cGhvaWQgRmV2ZXIiLDFdLFsi
QXNwZXJnaWxsb3NpcyIsMV0sWyJDaGlnZ2VycyIsMV0sWyJMeW1lIERpc2Vhc2UiLDFdLFsiU2No
aXN0b3NvbWlhc2lzIiwxXSxbIkNvY2NpZGlvaWRvbXljb3NpcyIsMV0sWyJIZXJwZXMgU2ltcGxl
eCIsMV0sWyJBbnRocmF4IiwxXSxbIkNvbmdlbml0YWwgQWZpYnJpbm9nZW5lbWlhIiwxXSxbIk1h
bGlnbmFudCBIeXBlcnRoZXJtaWEiLDFdLFsiTWFsaWduYW50IFRlcmF0b21hIiwxXSxbIk1vc2Fp
Y2lzbSIsMV0sWyJDaGVkaWFrLUhpZ2FzaGkgU3luZHJvbWUiLDFdLFsiQUJPIEluY29tcGF0aWJp
bGl0eSIsMV0sWyJBZ2FtbWFnbG9idWxpbmVtaWEiLDFdLFsiQnVya2l0dCBMeW1waG9tYSIsMV0s
WyJHcmFmdC1WZXJzdXMtSG9zdCBEaXNlYXNlIiwxXSxbIlR1bW9yIiwxXSxbIkh5cGVyaW1tdW5v
Z2xvYnVsaW4gRSBTeW5kcm9tZSIsMV0sWyJCbGVlZGluZyBEaXNvcmRlcnMiLDFdLFsiRXJ5dGhy
b3BsYXNpYSBvZiBRdWV5cmF0IiwxXSxbIkx5bXBoYWRlbml0aXMgYW5kIEx5bXBoYW5naXRpcyIs
MV0sWyJFd2luZydzIFNhcmNvbWEiLDFdLFsiVHJhbnNmdXNpb24gUmVhY3Rpb24iLDFdLFsiQWdy
YW51bG9jeXRvc2lzIiwxXSxbIkNhbmNlciIsMV0sWyJSZXRyb2dyYWRlIEVqYWN1bGF0aW9uIiwx
XSxbIlNjcm90YWwgTWFzc2VzIiwxXSxbIlZhcmljb2NlbGUiLDFdLFsiRXBpc3BhZGlhcyIsMV0s
WyJIeXBvc3BhZGlhcyIsMV0sWyJUZXN0aWN1bGFyIEluZmVjdGlvbiBvciBUb3JzaW9uIiwxXSxb
IlRlc3RpY3VsYXIgQ2FuY2VyIiwxXSxbIlBhcmFwaGltb3NpcyIsMV0sWyJQZXJpcmVuYWwgQWJz
Y2VzcyIsMV0sWyJCbGFkZGVyIFN0b25lcyIsMV0sWyJDYW5jZXIgLSBQZW5pcyIsMV0sWyJVcmV0
aHJpdGlzIC0gQ2hyb25pYyIsMV0sWyJDdXJ2YXR1cmUgb2YgdGhlIFBlbmlzIiwxXSxbIkVwaWRp
ZHltaXRpcyIsMV0sWyJPcmNoaXRpcyIsMV0sWyJSZW5hbCBBcnRlcnkgU3Rlbm9zaXMiLDFdLFsi
VVBKIE9ic3RydWN0aW9uIiwxXSxbIlBvdHRlciBTeW5kcm9tZSIsMV0sWyJQcnVuZSBCZWxseSBT
eW5kcm9tZSIsMV0sWyJVcmdlIEluY29udGluZW5jZSIsMV0sWyJVcmV0aHJhbCBTdHJpY3R1cmUi
LDFdLFsiQWN1dGUgQXJ0ZXJpYWwgT2NjbHVzaW9uIC0gS2lkbmV5IiwxXSxbIk9zZ29vZC1TY2hs
YXR0ZXIgRGlzZWFzZSIsMV0sWyJBbnRlcmlvciBLbmVlIFBhaW4iLDJdLFsiU3BvbmR5bG9saXN0
aGVzaXMiLDFdLFsiSGlnaCBBcmNoIiwxXSxbIlBlcyBQbGFudXMiLDFdLFsiS25vY2sgS25lZXMi
LDFdLFsiTGVnZy1DYWx2ZS1QZXJ0aGVzIERpc2Vhc2UiLDFdLFsiVGFrYXlhc3UgQXJ0ZXJpdGlz
IiwxXSxbIk9zdGVpdGlzIEZpYnJvc2EiLDFdLFsiUGVyaWNob25kcml0aXMiLDFdLFsiUnViaW5z
dGVpbi1UYXliaSBTeW5kcm9tZSIsMV0sWyJUZW5vc3lub3ZpdGlzIiwxXSxbIkFydGhyaXRpcyIs
MV0sWyJDaHJvbmljIEZhdGlndWUgU3luZHJvbWUiLDFdLFsiU2NoZWllIFN5bmRyb21lIiwxXSxb
IkFjaG9uZHJvZ2VuZXNpcyIsMV0sWyJTY29saW9zaXMiLDFdLFsiQWNyb2R5c29zdG9zaXMiLDFd
LFsiSGFtbWVyIFRvZSIsMV0sWyJIeXBvY2hvbmRyaWEiLDFdLFsiSW5ncm93biBUb2VuYWlsIiwx
XSxbIkludHJhZHVjdGFsIFBhcGlsbG9tYSIsMV0sWyJDaHJvbmljIEdyYW51bG9tYXRvdXMgRGlz
ZWFzZSIsMV0sWyJLeXBob3NpcyIsMV0sWyJGaWJyb3VzIER5c3BsYXNpYSIsMV0sWyJDbHViZm9v
dCIsMV0sWyJUZW5kaW5pdGlzIiwxXSxbIkJvbmUgVHVtb3JzIiwxXSxbIkJ1bmlvbnMiLDFdLFsi
Q29ybnMgYW5kIENhbGx1c2VzIiwxXSxbIkR1cHV5dHJlbidzIENvbnRyYWN0dXJlIiwxXSxbIlRN
SiBEaXNvcmRlcnMiLDFdLFsiVm9sa21hbm4ncyBJc2NoZW1pYyBDb250cmFjdHVyZSIsMV0sWyJC
YWtlcidzIEN5c3QiLDFdLFsiQ29tcGFydG1lbnQgU3luZHJvbWUiLDFdLFsiSGFsbGVydm9yZGVu
LVNwYXR6IERpc2Vhc2UiLDFdLFsiU2Vjb25kYXJ5IEFtZW5vcnJoZWEiLDFdLFsiRGlhYmV0aWMg
UmV0aW5vcGF0aHkiLDFdLFsiVGh5cm9pZCBDYW5jZXIiLDFdLFsiRGlhYmV0ZXMiLDFdLFsiSHlw
ZXJwYXJhdGh5cm9pZGlzbSIsMV0sWyJNYWNyb2FteWxhc2VtaWEiLDFdLFsiTWNDdW5lLUFsYnJp
Z2h0IFN5bmRyb21lIiwxXSxbIkh5cG90aGFsYW1pYyBUdW1vciIsMV0sWyJBbWVub3JyaGVhIC0g
UHJpbWFyeSIsMV0sWyJNb3JxdWlvIFN5bmRyb21lIiwxXSxbIk5pZW1hbm4tUGljayBEaXNlYXNl
IiwxXSxbIlBvcnBoeXJpYSIsMV0sWyJSdXNzZWxsLVNpbHZlciBTeW5kcm9tZSIsMV0sWyJTYW5m
aWxpcHBvIFN5bmRyb21lIiwxXSxbIk1ldGFjaHJvbWF0aWMgTGV1a29keXN0cm9waHkiLDFdLFsi
SG9tb2N5c3RpbnVyaWEiLDFdLFsiQWxrYXB0b251cmlhIiwxXSxbIkhhcnRudXAgRGlzb3JkZXIi
LDFdLFsiSHlwb3RoYWxhbWljIER5c2Z1bmN0aW9uIiwxXSxbIkh1bnRlciBTeW5kcm9tZSIsMV0s
WyJIdXJsZXIgU3luZHJvbWUiLDFdLFsiS3JhYmJlIERpc2Vhc2UiLDFdLFsiSW5mZXJ0aWxpdHkg
aW4gTWVuIiwxXSxbIkNvbmdlbml0YWwgSHlwb3RoeXJvaWRpc20iLDFdLFsiRHlzbWVub3JyaGVh
IGluIHRoZSBBZG9sZXNjZW50IiwxXSxbIkh5cG9nb25hZGlzbSIsMV0sWyJUcmFuc2llbnQgRmFt
aWxpYWwgSHlwZXJiaWxpcnViaW5lbWlhIiwxXSxbIlB5cnV2YXRlIEtpbmFzZSBEZWZpY2llbmN5
IiwxXSxbIk11c2N1bGFyIER5c3Ryb3BoeSIsMV0sWyJBbGthbG9zaXMiLDFdLFsiQW5vcmNoaWEi
LDFdLFsiQmVja3dpdGgtV2llZGVtYW5uIFN5bmRyb21lIiwxXSxbIlBhcmF0aHlyb2lkIEFkZW5v
bWEiLDFdLFsiUGFyYXRoeXJvaWQgSHlwZXJwbGFzaWEiLDFdLFsiQWRyZW5vbGV1a29keXN0cm9w
aHkiLDFdLFsiR3Jvd3RoIEhvcm1vbmUgRGVmaWNpZW5jeSIsMV0sWyJNYWxlIFBhdHRlcm4gQmFs
ZG5lc3MiLDFdLFsiR29pdGVyIiwxXSxbIkh5cGVya2FsZW1pYSIsMV0sWyJBbmRyb2dlbiBJbnNl
bnNpdGl2aXR5IFN5bmRyb21lIiwxXSxbIkFjaWRvc2lzIiwxXSxbIlNoZWVoYW4gU3luZHJvbWUi
LDFdLFsiUmVpZmVuc3RlaW4gU3luZHJvbWUiLDFdLFsiRmVtYWxlIFBhdHRlcm4gQmFsZG5lc3Mi
LDFdLFsiR2lnYW50aXNtIiwxXSxbIlByZWNvY2lvdXMgUHViZXJ0eSIsMV0sWyJNZXRhYm9saWMg
TmV1cm9wYXRoaWVzIiwxXSxbIk1ldGh5bG1hbG9uaWMgQWNpZGVtaWEiLDFdLFsiT3ZhcmlhbiBI
eXBvZnVuY3Rpb24iLDFdLFsiT3ZhcmlhbiBPdmVycHJvZHVjdGlvbiBvZiBBbmRyb2dlbnMiLDFd
LFsiUGhlbnlsa2V0b251cmlhIiwxXSxbIlBpdHVpdGFyeSBJbmZhcmN0aW9uIiwxXSxbIk1lbmtl
cyBTeW5kcm9tZSIsMV0sWyJNZXNlbnRlcmljIEFydGVyeSBJc2NoZW1pYSIsMV0sWyJNZXNlbnRl
cmljIFZlbm91cyBUaHJvbWJvc2lzIiwxXSxbIlBsdW1tZXItVmluc29uIFN5bmRyb21lL0Vzb3Bo
YWdlYWwgV2ViIiwxXSxbIk5lY3JvdGl6aW5nIEVudGVyb2NvbGl0aXMiLDFdLFsiRW50ZXJpdGlz
IiwxXSxbIkdhc3RyaXRpcyIsMV0sWyJJbnRlc3RpbmFsIElzY2hlbWlhIGFuZCBJbmZhcmN0aW9u
IiwxXSxbIlBpbndvcm1zIiwxXSxbIkVzb3BoYWdpdGlzIiwxXSxbIkhlcGF0aXRpcyIsMV0sWyJJ
bXBlcmZvcmF0ZSBBbnVzIiwxXSxbIkxpdmVyIFNwb3RzIiwxXSxbIkFubnVsYXIgUGFuY3JlYXMi
LDFdLFsiQmFycmV0dCdzIEVzb3BoYWd1cyIsMV0sWyJQYW5jcmVhdGl0aXMiLDFdLFsiQmlsaWFy
eSBBdHJlc2lhIiwxXSxbIkJsaW5kIExvb3AgU3luZHJvbWUiLDFdLFsiSGlyc2Noc3BydW5nJ3Mg
RGlzZWFzZSIsMV0sWyJHYXN0cm9lc29waGFnZWFsIFJlZmx1eCBpbiBJbmZhbnRzIiwxXSxbIkRp
YXBocmFnbWF0aWMgSGVybmlhIiwxXSxbIkZlbW9yYWwgSGVybmlhIiwxXSxbIkhpYXRhbCBIZXJu
aWEiLDFdLFsiR2FsbGJsYWRkZXIgRGlzZWFzZSIsMV0sWyJQcm9jdGl0aXMiLDFdLFsiUmVjdGFs
IFByb2xhcHNlIiwxXSxbIkNoaW5lc2UgUmVzdGF1cmFudCBTeW5kcm9tZSIsMV0sWyJDcmlnbGVy
LU5hamphciBTeW5kcm9tZSIsMV0sWyJEaXN0ZW50aW9uIG9mIHRoZSBDb2xvbidzIFNwbGVuaWMg
RmxleHVyZSIsMV0sWyJFbnRlcm8tRW50ZXJhbCBvciBFbnRlcm9jdXRhbmVvdXMgRmlzdHVsYSIs
MV0sWyJBbmFsIEZpc3N1cmUiLDFdLFsiRHVvZGVuYWwgQXRyZXNpYSIsMV0sWyJDb2xpdGlzIiwx
XSxbIlZhc2N1bGFyIFNwYXNtIiwxXSxbIkFuZXVyeXNtIiwxXSxbIkFvcnRpYyBBcmNoIFN5bmRy
b21lIiwxXSxbIkNvbmdlbml0YWwgSGVhcnQgRGlzZWFzZSIsMV0sWyJUb3RhbCBBbm9tYWxvdXMg
UHVsbW9uYXJ5IFZlbm91cyBSZXR1cm4iLDFdLFsiV2lsbGlhbXMgU3luZHJvbWUiLDFdLFsiTHlt
cGhhdGljIE9ic3RydWN0aW9uIiwxXSxbIlRob3JhY2ljIEFvcnRpYyBBbmV1cnlzbSIsMV0sWyJQ
YXRlbnQgRm9yYW1lbiBPdmFsZSIsMV0sWyJBbmdpbmEiLDFdLFsiVGhyb21ib3BobGViaXRpcyIs
MV0sWyJWYXJpY29zZSBWZWlucyIsMV0sWyJUcmljdXNwaWQgQXRyZXNpYSIsMV0sWyJUcnVuY3Vz
IEFydGVyaW9zdXMiLDFdLFsiUG9ydGFjYXZhbCBTaHVudCIsMV0sWyJIeXBvcGxhc3RpYyBMZWZ0
IEhlYXJ0IiwxXSxbIkVjdG9waWMgSGVhcnRiZWF0IiwxXSxbIkFycmh5dGhtaWFzIiwxXSxbIkFy
dGVyaWFsIEVtYm9saXNtIiwxXSxbIlBlcmljYXJkaXRpcyAtIENvbnN0cmljdGl2ZSIsMV0sWyJD
eWFub3RpYyBIZWFydCBEaXNlYXNlIiwxXSxbIkNhcmRpb215b3BhdGh5IiwxXSxbIlZlbnRyaWN1
bGFyIFNlcHRhbCBEZWZlY3QiLDFdLFsiVHJhY2hlYWwvQnJvbmNoaWFsIFJ1cHR1cmUiLDFdLFsi
U3BpZGVyIEFuZ2lvbWEiLDFdLFsiUHVsbW9uYXJ5IFZhbHZlIFN0ZW5vc2lzIiwxXSxbIlNWQyBP
YnN0cnVjdGlvbiIsMV0sWyJQdWxtb25hcnkgQXRyZXNpYSIsMV0sWyJFbmRvY2FyZGl0aXMiLDFd
LFsiUGFyYXF1YXQgTHVuZyIsMV0sWyJNZWRpYXN0aW5hbCBUdW1vciIsMV0sWyJCcm9uY2hpdGlz
IiwxXSxbIkJyb25jaG9wdWxtb25hcnkgRHlzcGxhc2lhIiwxXSxbIkJ5c3Npbm9zaXMiLDFdLFsi
UHVsbW9uYXJ5IEFydGVyaW92ZW5vdXMgRmlzdHVsYSIsMV0sWyJUcmFjaGVvbWFsYWNpYSIsMV0s
WyJBbnRlcmlvciBDcnVjaWF0ZSBMaWdhbWVudCAoQUNMKSBJbmp1cnkiLDJdLFsiUG9zdGVyaW9y
IENydWNpYXRlIExpZ2FtZW50IFBDTCBJbmp1cnkiLDJdLFsiTWVkaWFsIENvbGxhdGVyYWwgTGln
YW1lbnQgKE1DTCkgSW5qdXJ5IG9mIHRoZSBLbmVlIiwyXSxbIkxhdGVyYWwgQ29sbGF0ZXJhbCBM
aWdhbWVudCBMQ0wgSW5qdXJ5IG9mIHRoZSBLbmVlIiwyXSxbIkhpc3RvcGxhc21vc2lzIiwxXSxb
Ikh5ZHJvY2FyYm9uIFBuZXVtb25pYSIsMV0sWyJSZXRyb2NhbGNhbmVhbCBCdXJzaXRpcyIsMV0s
WyJDU0YgTGVhayIsMV0sWyJCYXNhbCBHYW5nbGlhIER5c2Z1bmN0aW9uIiwxXSxbIktuZWUgQ2Fw
IERpc2xvY2F0aW9uIiwyXSxbIk1lbmlzY3VzIFRlYXJzIiwyXSxbIkFjaGlsbGVzIFRlbmRpbml0
aXMiLDFdLFsiU3BpbmFsIENvcmQgVHJhdW1hIiwxXSxbIlRvb3RoIEFic2Nlc3MiLDFdLFsiQWNv
dXN0aWMgVHJhdW1hIiwxXSxbIkZhY2lhbCBUcmF1bWEiLDFdLFsiVHJhdW1hdGljIEluanVyeSBv
ZiB0aGUgQmxhZGRlciBhbmQgVXJldGhyYSIsMV0sWyJFYXIgQmFyb3RyYXVtYSIsMV0sWyJJbmp1
cnkgLSBLaWRuZXkgYW5kIFVyZXRlciIsMV0sWyJQZXJpb2RvbnRpdGlzIiwxXSxbIkdpbmdpdm9z
dG9tYXRpdGlzIiwxXSxbIkdsb3NzaXRpcyIsMV0sWyJMYWJ5cmludGhpdGlzIiwxXSxbIkRlbnRh
bCBDYXZpdGllcyIsMV0sWyJHaW5naXZpdGlzIiwxXSxbIkltcGFjdGVkIFRvb3RoIiwxXSxbIk1h
bG9jY2x1c2lvbiBvZiBUZWV0aCIsMV0sWyJDbGVmdCBMaXAgYW5kIFBhbGF0ZSIsMV0sWyJUcmVu
Y2ggTW91dGgiLDFdLFsiQWdlLVJlbGF0ZWQgSGVhcmluZyBMb3NzIiwxXSxbIkxldWtvcGxha2lh
IiwxXSxbIkx1ZHdpZydzIEFuZ2luYSIsMV0sWyJPY2N1cGF0aW9uYWwgSGVhcmluZyBMb3NzIiwx
XSxbIkdlb2dyYXBoaWMgVG9uZ3VlIiwxXSxbIkNob2xlc3RlYXRvbWEiLDFdLFsiVG9uc2lsbGl0
aXMiLDFdLFsiT3Rvc2NsZXJvc2lzIiwxXSxbIlJoaW5vcGh5bWEiLDFdLFsiUnVwdHVyZWQgRWFy
ZHJ1bSIsMV0sWyJTYWxpdmFyeSBEdWN0IFN0b25lcyIsMV0sWyJTYWxpdmFyeSBHbGFuZCBUdW1v
cnMiLDFdLFsiU2FsaXZhcnkgR2xhbmQgSW5mZWN0aW9ucyIsMV0sWyJPcmFsIENhbmNlciIsMV0s
WyJDYW5jZXIgLSBUaHJvYXQgb3IgTGFyeW54IiwxXSxbIlJldGluaXRpcyBQaWdtZW50b3NhIiwx
XSxbIlJldGlub2JsYXN0b21hIiwxXSxbIkFsbGVyZ2ljIENvbmp1bmN0aXZpdGlzIiwxXSxbIkNv
cm5lYWwgVWxjZXJzIGFuZCBJbmZlY3Rpb25zIiwxXSxbIkJlbmlnbiBFYXIgQ3lzdCBvciBUdW1v
ciIsMV0sWyJNYXN0b2lkaXRpcyIsMV0sWyJSZXRpbmFsIFZlc3NlbCBPY2NsdXNpb24iLDFdLFsi
TWVsYW5vbWEgb2YgdGhlIEV5ZSIsMV0sWyJOZWFyc2lnaHRlZG5lc3MiLDFdLFsiT3B0aWMgR2xp
b21hIiwxXSxbIlBpbmd1ZWN1bGEiLDFdLFsiUHJlc2J5b3BpYSIsMV0sWyJSZXRpbmFsIERldGFj
aG1lbnQiLDFdLFsiSHlwaGVtYSIsMV0sWyJBbWJseW9waWEiLDFdLFsiQXN0aWdtYXRpc20iLDFd
LFsiQmxvY2tlZCBUZWFyIER1Y3QiLDFdLFsiQ29ybmVhbCBJbmp1cnkiLDFdLFsiUHRvc2lzIiwx
XSxbIkVwaXNjbGVyaXRpcyIsMV0sWyJGYXJzaWdodGVkbmVzcyIsMV0sWyJLZXJhdG9jb251cyIs
MV0sWyJDaGFsYXppb24iLDFdLFsiRWN0cm9waW9uIiwxXSxbIkVudHJvcGlvbiIsMV0sWyJFeWVs
aWQgQnVtcCIsMV0sWyJDb25qdW5jdGl2aXRpcyIsMV0sWyJQdGVyeWdpdW0iLDFdLFsiT3JiaXRh
bCBDZWxsdWxpdGlzIiwxXSxbIlV2ZWl0aXMiLDFdLFsiQ2Fua2VyIFNvcmVzIiwxXSxbIkh5cGVy
dGVuc2l2ZSBSZXRpbm9wYXRoeSIsMV0sWyJNYWN1bGFyIERlZ2VuZXJhdGlvbiIsMV0sWyJDYXRh
cmFjdCIsMV0sWyJDb2xvciBCbGluZG5lc3MiLDFdLFsiU2NsZXJpdGlzIiwxXSxbIlN0cmFiaXNt
dXMiLDFdLFsiRG93biBTeW5kcm9tZSIsMV0sWyJQZWRpYXRyaWMgQXN0aG1hIiwxXSxbIkZhaWx1
cmUgdG8gVGhyaXZlIiwxXSxbIkdhc3Ryb3NjaGlzaXMiLDFdLFsiRGlza2l0aXMiLDFdLFsiT21w
aGFsb2NlbGUiLDFdLFsiQnJlYXN0IE1pbGsgSmF1bmRpY2UiLDFdLFsiU3BpbmFsIE11c2N1bGFy
IEF0cm9waHkiLDFdLFsiS2F3YXNha2kgRGlzZWFzZSIsMV0sWyJOdXJzZW1haWQncyBFbGJvdyIs
MV0sWyJSZXRyb3BoYXJ5bmdlYWwgQWJzY2VzcyIsMV0sWyJWb2x2dWx1cyAtIENoaWxkaG9vZCIs
MV0sWyJQZXJpdG9uc2lsbGFyIEFic2Nlc3MiLDFdLFsiVW1iaWxpY2FsIEhlcm5pYSIsMV0sWyJU
cmFjaGVpdGlzIiwxXSxbIkRlaHlkcmF0aW9uIiwxXSxbIkZpZnRoIERpc2Vhc2UiLDFdLFsiQ29s
aWMgYW5kIENyeWluZyIsMV0sWyJXYXggQmxvY2thZ2UiLDFdLFsiRmVicmlsZSBTZWl6dXJlcyIs
MV0sWyJUb3hpYyBTeW5vdml0aXMiLDFdLFsiRGV2ZWxvcG1lbnRhbCBEeXNwbGFzaWEgb2YgdGhl
IEhpcCIsMV0sWyJTbGlwcGVkIENhcGl0YWwgRmVtb3JhbCBFcGlwaHlzaXMiLDFdLFsiVW5kZXNj
ZW5kZWQgVGVzdGljbGUiLDFdLFsiU2NhcmxldCBGZXZlciIsMV0sWyJCcm9uY2hpb2xpdGlzIiwx
XSxbIlB5bG9yaWMgU3Rlbm9zaXMiLDFdLFsiU2Vib3JyaGVpYyBEZXJtYXRpdGlzIiwxXSxbIkRp
YXBlciBEZXJtYXRpdGlzIC0gQ2FuZGlkYS1Bc3NvY2lhdGVkIiwxXSxbIkhhbmQgLSBGb290IC0g
TW91dGggRGlzZWFzZSIsMV0sWyJCcmVhdGggSG9sZGluZyBTcGVsbCIsMV0sWyJSb3Nlb2xhIiwx
XSxbIkhlcnBhbmdpbmEiLDFdLFsiRGlhcGVyIERlcm1hdGl0aXMgLSBJcnJpdGFudC1JbmR1Y2Vk
IiwxXSxbIlBob2JpYSAtIFNpbXBsZS9TcGVjaWZpYyIsMV0sWyJTb2NpYWwgUGhvYmlhIiwxXSxb
IkludHVzc3VzY2VwdGlvbiBDaGlsZHJlbiIsMV0sWyJDcm91cCIsMV0sWyJIZXJuaWEiLDFdLFsi
RXNvcGhhZ2VhbCBBdHJlc2lhIiwxXSxbIlNvbWF0aXphdGlvbiBEaXNvcmRlciIsMV0sWyJCYXJi
aXR1cmF0ZSBJbnRveGljYXRpb24gYW5kIE92ZXJkb3NlIiwxXSxbIk5pY290aW5lIFdpdGhkcmF3
YWwiLDFdLFsiQ29udmVyc2lvbiBEaXNvcmRlciIsMV0sWyJDb2NhaW5lIFdpdGhkcmF3YWwiLDFd
LFsiT3BpYXRlIFdpdGhkcmF3YWwiLDFdLFsiTWFqb3IgRGVwcmVzc2lvbiIsMV0sWyJBdm9pZGFu
dCBQZXJzb25hbGl0eSBEaXNvcmRlciIsMV0sWyJEZXBlbmRlbnQgUGVyc29uYWxpdHkgRGlzb3Jk
ZXIiLDFdLFsiT2JzZXNzaXZlLUNvbXB1bHNpdmUgUGVyc29uYWxpdHkgRGlzb3JkZXIiLDFdLFsi
UGFzc2l2ZS1BZ2dyZXNzaXZlIFBlcnNvbmFsaXR5IERpc29yZGVyIiwxXSxbIkFsY29ob2xpc20i
LDFdLFsiUGVyc29uYWxpdHkgRGlzb3JkZXJzIiwxXSxbIk5hcmNpc3Npc3RpYyBQZXJzb25hbGl0
eSBEaXNvcmRlciIsMV0sWyJCb3JkZXJsaW5lIFBlcnNvbmFsaXR5IERpc29yZGVyIiwxXSxbIlNj
aGl6b3BocmVuaWEgLSBQYXJhbm9pZCBUeXBlIiwxXSxbIlNjaGl6b3BocmVuaWEgLSBEaXNvcmdh
bml6ZWQgVHlwZSIsMV0sWyJQYXJhbm9pZCBQZXJzb25hbGl0eSBEaXNvcmRlciIsMV0sWyJNYWpv
ciBEZXByZXNzaW9uIFdpdGggUHN5Y2hvdGljIEZlYXR1cmVzIiwxXSxbIlNjaGl6b3BocmVuaWEi
LDFdLFsiT2JzZXNzaXZlLUNvbXB1bHNpdmUgRGlzb3JkZXIiLDFdLFsiU2NoaXpvYWZmZWN0aXZl
IERpc29yZGVyIiwxXSxbIkFnb3JhcGhvYmlhIiwxXSxbIkFkanVzdG1lbnQgRGlzb3JkZXIiLDFd
LFsiQmlwb2xhciBEaXNvcmRlciIsMV0sWyJTY2hpem9pZCBQZXJzb25hbGl0eSBEaXNvcmRlciIs
MV0sWyJBbnRpc29jaWFsIFBlcnNvbmFsaXR5IERpc29yZGVyIiwxXSxbIlNvbWF0b2Zvcm0gUGFp
biBEaXNvcmRlciIsMV0sWyJQYW5pYyBEaXNvcmRlciBXaXRoIEFnb3JhcGhvYmlhIiwxXSxbIlBh
bmljIERpc29yZGVyIiwxXSxbIlBvc3QtVHJhdW1hdGljIFN0cmVzcyBEaXNvcmRlciIsMV0sWyJD
b25kdWN0IERpc29yZGVyIiwxXSxbIlV0ZXJpbmUgRmlicm9pZHMiLDFdLFsiRW5kb21ldHJpb3Np
cyIsMV0sWyJHZW5lcmFsaXplZCBBbnhpZXR5IERpc29yZGVyIiwxXSxbIkR5c3RoeW1pYSIsMV0s
WyJCcmVhc3QgQ2FuY2VyIiwxXSxbIkFib3J0aW9uIC0gSW5mZWN0ZWQiLDFdLFsiSHlkYXRpZGlm
b3JtIE1vbGUiLDFdLFsiRW5kb21ldHJpYWwgQ2FuY2VyIiwxXSxbIkZldGFsIEFsY29ob2wgU3lu
ZHJvbWUiLDFdLFsiRmlicm9jeXN0aWMgQnJlYXN0IERpc2Vhc2UiLDFdLFsiQWJvcnRpb24gLSBU
aHJlYXRlbmVkIiwxXSxbIkNhbmNlciAtIFZ1bHZhIiwxXSxbIkR5c2Z1bmN0aW9uYWwgVXRlcmlu
ZSBCbGVlZGluZyBEVUIiLDFdLFsiQWJvcnRpb24gLSBJbmNvbXBsZXRlIiwxXSxbIlBsYWNlbnRh
IEFicnVwdGlvIiwxXSxbIkVjdG9waWMgUHJlZ25hbmN5IiwxXSxbIkdlc3RhdGlvbmFsIERpYWJl
dGVzIiwxXSxbIlZ1bHZvdmFnaW5pdGlzIiwxXSxbIlByZWVjbGFtcHNpYSIsMV0sWyJFY2xhbXBz
aWEiLDFdLFsiUGxhY2VudGEgUHJldmlhIiwxXSxbIk1lbm9wYXVzZSIsMV0sWyJQZWx2aWMgSW5m
bGFtbWF0b3J5IERpc2Vhc2UgKFBJRCkiLDFdLFsiT3ZhcmlhbiBDYW5jZXIiLDFdLFsiSEVMTFAg
U3luZHJvbWUiLDFdLFsiU3RyZXNzIEluY29udGluZW5jZSIsMV0sWyJBdHJvcGhpYyBWYWdpbml0
aXMiLDFdLFsiQ2VydmljYWwgQ2FuY2VyIiwxXSxbIkdlbml0YWwgV2FydHMiLDFdLFsiQ3V0YW5l
b3VzIENhbmRpZGlhc2lzIiwxXSxbIkVyeXRoZW1hIE5vZG9zdW0iLDFdLFsiUGVtcGhpZ3VzIFZ1
bGdhcmlzIiwxXSxbIkJ1bGxvdXMgUGVtcGhpZ29pZCIsMV0sWyJTZWJvcnJoZWljIEtlcmF0b3Np
cyIsMV0sWyJXYXJ0cyIsMV0sWyJSb3NhY2VhIiwxXSxbIkxpY2hlbiBTaW1wbGV4IENocm9uaWN1
cyIsMV0sWyJBY25lIiwxXSxbIkFsbGVyZ2ljIFZhc2N1bGl0aXMiLDFdLFsiQXRobGV0ZSdzIEZv
b3QiLDFdLFsiSm9jayBJdGNoIiwxXSxbIlRpbmVhIENvcnBvcmlzIiwxXSxbIlBpdHlyaWFzaXMg
Um9zZWEiLDFdLFsiVGluZWEgQ2FwaXRpcyIsMV0sWyJFY3RoeW1hIiwxXSxbIlNraW4gTGVzaW9u
IG9mIEJsYXN0b215Y29zaXMiLDFdLFsiU2tpbiBMZXNpb24gb2YgQ29jY2lkaW9pZG9teWNvc2lz
IiwxXSxbIkxpY2hlbiBQbGFudXMiLDFdLFsiU2tpbiBMZXNpb24gb2YgSGlzdG9wbGFzbW9zaXMi
LDFdLFsiQ29udGFjdCBEZXJtYXRpdGlzIiwxXSxbIk51bW11bGFyIEVjemVtYSIsMV0sWyJTa2lu
IEFic2Nlc3MiLDFdLFsiVHVsYXJlbWlhIiwxXSxbIkdlbml0YWwgSGVycGVzIiwxXSxbIkhlcnBl
cyBab3N0ZXIiLDFdLFsiSW1wZXRpZ28iLDFdLFsiU3lwaGlsaXMgLSBQcmltYXJ5IiwxXSxbIkNl
bGx1bGl0aXMiLDFdLFsiQmFsYW5pdGlzIiwxXSxbIkN1dGFuZW91cyBTa2luIFRhZ3MiLDFdLFsi
S2Vsb2lkcyIsMV0sWyJNZWxhbm9tYSIsMV0sWyJFcnl0aGVtYSBNdWx0aWZvcm1lIiwxXSxbIkFj
YW50aG9zaXMgTmlncmljYW5zIiwxXSxbIkVjemVtYSIsMV0sWyJOZXVyb2ZpYnJvbWF0b3Npcy0x
IiwxXSxbIlN5cGhpbGlzIC0gU2Vjb25kYXJ5IiwxXSxbIlB1YmljIExpY2UiLDFdLFsiU2ViYWNl
b3VzIEN5c3QiLDFdLFsiQW5hcGh5bGF4aXMiLDFdLFsiSGl2ZXMiLDFdLFsiSGVhZCBMaWNlIiwx
XSxbIkFuZ2lvZWRlbWEiLDFdLFsiR3JhbnVsb21hIEFubnVsYXJlIiwxXSxbIlN0YXNpcyBEZXJt
YXRpdGlzIGFuZCBVbGNlcnMiLDFdLFsiTWVsYXNtYSIsMV0sWyJPc2xlci1XZWJlci1SZW5kdSBT
eW5kcm9tZSIsMV0sWyJCb2R5IExpY2UiLDFdLFsiRGVybWF0b215b3NpdGlzIiwxXSxbIkR5c2hp
ZHJvdGljIEVjemVtYSIsMV0sWyJNb2xsdXNjdW0gQ29udGFnaW9zdW0iLDFdLFsiQWN0aW5pYyBL
ZXJhdG9zaXMiLDFdLFsiQmlydGhtYXJrcyAtIFBpZ21lbnRlZCIsMV0sWyJTcXVhbW91cyBDZWxs
IFNraW4gQ2FuY2VyIiwxXSxbIlNjYWJpZXMiLDFdLFsiVml0aWxpZ28iLDFdLFsiQ2FyYnVuY2xl
IiwxXSxbIkRydWcgQWxsZXJnaWVzIiwxXSxbIlNlcnVtIFNpY2tuZXNzIiwxXSxbIkltbXVuZSBS
ZXNwb25zZSIsNV0sWyJQc29yaWFzaXMgLSBHdXR0YXRlIiwxXSxbIkZvbGxpY3VsaXRpcyIsMV0s
WyJCYXNhbCBDZWxsIENhcmNpbm9tYSIsMV0sWyJJbW11bm9kZWZpY2llbmN5IERpc29yZGVycyIs
MV0sWyJBbGxlcmdpZXMiLDFdLFsiQWxsZXJnaWMgUmhpbml0aXMiLDFdLFsiQWxsZXJneSB0byBN
b2xkIC0gRGFuZGVyIC0gRHVzdCIsMV0sWyJUcmFuc3BsYW50IFJlamVjdGlvbiIsMV0sWyJBdXRv
aW1tdW5lIERpc29yZGVycyIsMV0sWyJGb29kIEFsbGVyZ3kiLDFdLFsiU2xlZXAgQXBuZWEiLDFd
LFsiSW5zb21uaWEiLDFdLFsiSXJyZWd1bGFyIFNsZWVwLVdha2UgU3luZHJvbWUiLDFdLFsiUmVz
dGxlc3MgTGVnIFN5bmRyb21lIiwxXSxbIlNsZWVwIFdhbGtpbmciLDFdLFsiTmlnaHQgVGVycm9y
IiwxXSxbIk1peGVkIFRlbnNpb24gTWlncmFpbmUiLDFdLFsiQ29uY3Vzc2lvbiIsMV0sWyJTbGVl
cCBEaXNvcmRlcnMiLDFdLFsiTmFyY29sZXBzeSIsMV0sWyJUZW5zaW9uIEhlYWRhY2hlIiwxXSxb
IkNvbW1vbiBQZXJvbmVhbCBOZXJ2ZSBEeXNmdW5jdGlvbiIsMV0sWyJUaWJpYWwgTmVydmUgRHlz
ZnVuY3Rpb24iLDFdLFsiSW5jcmVhc2VkIEludHJhY3JhbmlhbCBQcmVzc3VyZSIsMV0sWyJGYWNp
YWwgTmVydmUgUGFsc3kiLDFdLFsiTmV1cm9maWJyb21hdG9zaXMgMiIsMV0sWyJJbnRyYWNlcmVi
cmFsIEhlbW9ycmhhZ2UiLDFdLFsiUmFkaWFsIE5lcnZlIER5c2Z1bmN0aW9uIiwxXSxbIkFtYXVy
b3NpcyBGdWdheCIsMV0sWyJXaWxzb24ncyBEaXNlYXNlIiwxXSxbIkNsdXN0ZXIgSGVhZGFjaGVz
IiwxXSxbIlR1YmVyb3VzIFNjbGVyb3NpcyIsMV0sWyJDcmV1dHpmZWxkdC1KYWtvYiBEaXNlYXNl
IiwxXSxbIlVsbmFyIE5lcnZlIER5c2Z1bmN0aW9uIiwxXSxbIkJyYWluIEFic2Nlc3MiLDFdLFsi
Q2hyb25pYyBJbmZsYW1tYXRvcnkgUG9seW5ldXJvcGF0aHkiLDFdLFsiQWNvdXN0aWMgTmV1cm9t
YSIsMV0sWyJBcnRlcmlvdmVub3VzIE1hbGZvcm1hdGlvbiAtIENlcmVicmFsIiwxXSxbIk1vbm9u
ZXVyb3BhdGh5IiwxXSxbIkNocm9uaWMgU3ViZHVyYWwgSGVtYXRvbWEiLDFdLFsiTW9ub25ldXJp
dGlzIE11bHRpcGxleCIsMV0sWyJBdXRvbm9taWMgTmV1cm9wYXRoeSIsMV0sWyJIdW50aW5ndG9u
J3MgRGlzZWFzZSIsMV0sWyJXZXJuaWNrZS1Lb3JzYWtvZmYgU3luZHJvbWUiLDFdLFsiQmVsbCdz
IFBhbHN5IiwxXSxbIkV0aHlsZW5lIEdseWNvbCBJbnRveGljYXRpb24iLDFdLFsiQ2VudHJhbCBQ
b250aW5lIE15ZWxpbm9seXNpcyIsMV0sWyJNZXRhc3RhdGljIEJyYWluIFR1bW9yIiwxXSxbIkZh
bWlsaWFsIFRyZW1vciIsMV0sWyJBbGNvaG9sIFdpdGhkcmF3YWwiLDFdLFsiRHJ1Zy1JbmR1Y2Vk
IFRyZW1vciIsMV0sWyJEZWxpcml1bSBUcmVtZW5zIiwxXSxbIlByb2dyZXNzaXZlIFN1cHJhbnVj
bGVhciBQYWxzeSIsMV0sWyJCcmFpbiBUdW1vciAtIENoaWxkcmVuIiwxXSxbIkVzc2VudGlhbCBU
cmVtb3IiLDFdLFsiTXVsdGlwbGUgU3lzdGVtIEF0cm9waHkiLDFdLFsiT2xpdm9wb250b2NlcmVi
ZWxsYXIgQXRyb3BoeSIsMV0sWyJTZWNvbmRhcnkgUGFya2luc29uaXNtIiwxXSxbIkFsemhlaW1l
cidzIERpc2Vhc2UiLDFdLFsiSGVtb3JyaGFnaWMgU3Ryb2tlIiwxXSxbIkV5ZWxpZCBUd2l0Y2gi
LDFdLFsiU3Ryb2tlIFNlY29uZGFyeSB0byBDYXJvdGlkIFN0ZW5vc2lzIiwxXSxbIk5vcm1hbCBQ
cmVzc3VyZSBIeWRyb2NlcGhhbHVzIChOUEgpIiwxXSxbIlBhcmtpbnNvbidzIERpc2Vhc2UiLDFd
LFsiU2Vuc29yaW1vdG9yIFBvbHluZXVyb3BhdGh5IiwxXSxbIlBpY2sncyBEaXNlYXNlIiwxXSxb
IkNocm9uaWMgTW90b3IgVGljIERpc29yZGVyIiwxXSxbIk11bHRpLUluZmFyY3QgRGVtZW50aWEi
LDFdLFsiVHJhbnNpZW50IFRpYyBEaXNvcmRlciIsMV0sWyJHZW5lcmFsIFBhcmVzaXMiLDFdLFsi
VG9ydGljb2xsaXMiLDFdLFsiU3Ryb2tlIFJlbGF0ZWQgdG8gQ29jYWluZSBVc2UiLDFdLFsiTXVs
dGlwbGUgU2NsZXJvc2lzIiwxXSxbIlN0cm9rZSBTZWNvbmRhcnkgdG8gQXRoZXJvc2NsZXJvc2lz
IiwxXSxbIkRlbWVudGlhIiwxXSxbIkRlbGlyaXVtIiwxXSxbIk9wdGljIE5ldXJpdGlzIiwxXSxb
IlRyaWdlbWluYWwgTmV1cmFsZ2lhIiwxXSxbIlBhcmluYXVkIFN5bmRyb21lIiwxXSxbIlRyYW5z
aWVudCBJc2NoZW1pYyBBdHRhY2siLDFdLFsiU3Ryb2tlIFNlY29uZGFyeSB0byBDYXJvdGlkIERp
c3NlY3Rpb24iLDFdLFsiR2lsbGVzIERlIExhIFRvdXJldHRlIFN5bmRyb21lIiwxXSxbIlByaW1h
cnkgTHltcGhvbWEgb2YgdGhlIEJyYWluIiwxXSxbIlN0cm9rZSBTZWNvbmRhcnkgdG8gQ2FyZGlv
Z2VuaWMgRW1ib2xpc20iLDFdLFsiU3lwaGlsaXRpYyBNeWVsb3BhdGh5IiwxXSxbIlN1YmFjdXRl
IENvbWJpbmVkIERlZ2VuZXJhdGlvbiIsMV0sWyJTeXBoaWxpdGljIEFzZXB0aWMgTWVuaW5naXRp
cyIsMV0sWyJTdHJva2UiLDFdLFsiQ2hhcmNvdC1NYXJpZS1Ub290aCBEaXNlYXNlIiwxXSxbIlN0
cm9rZSBTZWNvbmRhcnkgdG8gU3lwaGlsaXMiLDFdLFsiTWlncmFpbmUgV2l0aG91dCBBdXJhIiwx
XSxbIkNlcmVicmFsIFBhbHN5IiwxXSxbIkRlZXAgSW50cmFjZXJlYnJhbCBIZW1vcnJoYWdlIiwx
XSxbIkxvYmFyIEludHJhY2VyZWJyYWwgSGVtb3JyaGFnZSIsMV0sWyJTZW5pbGUgQ2VyZWJyYWwg
QW15bG9pZCBBbmdpb3BhdGh5IiwxXSxbIk5ldXJvc2FyY29pZG9zaXMiLDFdLFsiTWlncmFpbmUg
V2l0aCBBdXJhIiwxXSxbIkh5cGVydGVuc2l2ZSBJbnRyYWNlcmVicmFsIEhlbW9ycmhhZ2UiLDFd
LFsiTGFtYmVydC1FYXRvbiBTeW5kcm9tZSIsMV0sWyJMaW1iLUdpcmRsZSBNdXNjdWxhciBEeXN0
cm9waGllcyIsMV0sWyJNeWFzdGhlbmlhIEdyYXZpcyIsMV0sWyJTdWJkdXJhbCBIZW1hdG9tYSIs
MV0sWyJBbGNvaG9saWMgTmV1cm9wYXRoeSIsMV0sWyJNaWdyYWluZSIsMV0sWyJOZXVyb3N5cGhp
bGlzIiwxXSxbIlBpdHVpdGFyeSBUdW1vciIsMV0sWyJEdWNoZW5uZSBNdXNjdWxhciBEeXN0cm9w
aHkiLDFdLFsiQmVja2VyJ3MgTXVzY3VsYXIgRHlzdHJvcGh5IiwxXSxbIkZhY2lvc2NhcHVsb2h1
bWVyYWwgTXVzY3VsYXIgRHlzdHJvcGh5IiwxXSxbIkhvcm5lciBTeW5kcm9tZSIsMV0sWyJNZW5p
ZXJlJ3MgRGlzZWFzZSIsMV0sWyJHZW5lcmFsaXplZCBUb25pYy1DbG9uaWMgU2VpenVyZSIsMV0s
WyJQZXRpdCBNYWwgU2VpenVyZSIsMV0sWyJQYXJ0aWFsIChGb2NhbCkgU2VpenVyZSIsMV0sWyJD
cmFuaWFsIE1vbm9uZXVyb3BhdGh5IElJSSAtIENvbXByZXNzaW9uIFR5cGUiLDFdLFsiTmV1cm9w
YXRoeSBTZWNvbmRhcnkgdG8gRHJ1Z3MiLDFdLFsiU3ViYXJhY2hub2lkIEhlbW9ycmhhZ2UiLDFd
LFsiRXBpbGVwc3kiLDFdLFsiQW15b3Ryb3BoaWMgTGF0ZXJhbCBTY2xlcm9zaXMiLDFdLFsiQXhp
bGxhcnkgTmVydmUgRHlzZnVuY3Rpb24iLDFdLFsiQ3JhbmlhbCBNb25vbmV1cm9wYXRoeSBWSSIs
MV0sWyJEaXN0YWwgTWVkaWFuIE5lcnZlIER5c2Z1bmN0aW9uIiwxXSxbIkNyYW5pYWwgTW9ub25l
dXJvcGF0aHkgSUlJIC0gRGlhYmV0aWMgVHlwZSIsMV0sWyJEaWFiZXRpYyBOZXVyb3BhdGh5Iiwx
XSxbIkZlbW9yYWwgTmVydmUgRHlzZnVuY3Rpb24iLDFdLFsiSW5mZWN0aW91cyBFbmRvY2FyZGl0
aXMiLDFdLFsiQXN5bXB0b21hdGljIEhJViBJbmZlY3Rpb24iLDFdLFsiRGVtZW50aWEgRHVlIHRv
IE1ldGFib2xpYyBDYXVzZXMiLDFdLFsiR3VpbGxhaW4tQmFycmUgU3luZHJvbWUiLDFdLFsiVGFy
ZGl2ZSBEeXNraW5lc2lhIiwxXSxbIlNjaWF0aWNhIiwxXSxbIk1lbmluZ2l0aXMiLDFdLFsiUHJv
Z3Jlc3NpdmUgTXVsdGlmb2NhbCBMZXVrb2VuY2VwaGFsb3BhdGh5IiwxXSxbIkNvbG9yYWRvIFRp
Y2sgRmV2ZXIiLDFdLFsiRWNoaW5vY29jY3VzIiwxXSxbIlNpbnVzaXRpcyAtIENocm9uaWMiLDFd
LFsiQ29tbW9uIENvbGQiLDFdLFsiTm9jYXJkaWEgSW5mZWN0aW9uIiwxXSxbIlN3aW1tZXIncyBF
YXIgLSBDaHJvbmljIiwxXSxbIlNlcHRpYyBTaG9jayIsMV0sWyJMeW1lIERpc2Vhc2UgLSBDaHJv
bmljIFBlcnNpc3RlbnQiLDFdLFsiTHltZSBEaXNlYXNlIC0gUHJpbWFyeSIsMV0sWyJQbmV1bW9j
eXN0aXMgQ2FyaW5paSBQbmV1bW9uaWEiLDFdLFsiTWFsaWduYW50IE90aXRpcyBFeHRlcm5hIiwx
XSxbIkNNViAtIEdhc3Ryb2VudGVyaXRpcy9Db2xpdGlzIiwxXSxbIkthcG9zaSdzIFNhcmNvbWEi
LDFdLFsiU3lwaGlsaXMgLSBUZXJ0aWFyeSIsMV0sWyJDTVYgLSBJbW11bm9jb21wcm9taXNlZCBI
b3N0IiwxXSxbIkNNViAtIFBuZXVtb25pYSIsMV0sWyJDTVYgUmV0aW5pdGlzIiwxXSxbIlNlcHNp
cyIsMV0sWyJDaGxhbXlkaWEgSW5mZWN0aW9ucyBpbiBXb21lbiIsMV0sWyJQZXJpdG9uaXRpcyAt
IERpYWx5c2lzIEFzc29jaWF0ZWQiLDFdLFsiVG94aWMgU2hvY2sgU3luZHJvbWUiLDFdLFsiUm9j
a3kgTW91bnRhaW4gU3BvdHRlZCBGZXZlciIsMV0sWyJQaGFyeW5naXRpcyIsMV0sWyJDdWx0dXJl
LU5lZ2F0aXZlIEVuZG9jYXJkaXRpcyIsMV0sWyJDaGxhbXlkaWFsIFVyZXRocml0aXMgLSBNYWxl
IiwxXSxbIlBlcml0b25pdGlzIC0gU2Vjb25kYXJ5IiwxXSxbIkdvbm9jb2NjZW1pYSBEaXNzZW1p
bmF0ZWQiLDFdLFsiSGVycGVzIEVzb3BoYWdpdGlzIiwxXSxbIlNpbnVzaXRpcyIsMV0sWyJQZXJp
dG9uaXRpcyAtIFNwb250YW5lb3VzIiwxXSxbIk11Y29ybXljb3NpcyIsMV0sWyJNZW5pbmdpdGlz
IC0gVHViZXJjdWxvdXMiLDFdLFsiQ01WIEVzb3BoYWdpdGlzIiwxXSxbIkVhciBJbmZlY3Rpb24g
LSBBY3V0ZSIsMV0sWyJTdHJlcCBUaHJvYXQiLDFdLFsiQXR5cGljYWwgTXljb2JhY3RlcmlhbCBJ
bmZlY3Rpb24iLDFdLFsiSW5oYWxhdGlvbiBBbnRocmF4IiwxXSxbIk1lbmluZ2l0aXMgLSBDcnlw
dG9jb2NjYWwiLDFdLFsiQ2FuZGlkYSBFc29waGFnaXRpcyIsMV0sWyJUb3hvcGxhc21vc2lzIiwx
XSxbIlN0cm9uZ3lsb2lkaWFzaXMiLDFdLFsiVHJpY2hpbm9zaXMiLDFdLFsiVmlzY2VyYWwgTGFy
dmEgTWlncmFucyIsMV0sWyJMeW1waG9ncmFudWxvbWEgVmVuZXJldW0iLDFdLFsiQ2hhbmNyb2lk
IiwxXSxbIkdyYW51bG9tYSBJbmd1aW5hbGUiLDFdLFsiSG9va3dvcm0iLDFdLFsiTWFsYXJpYSIs
MV0sWyJTd2ltbWVyJ3MgRWFyIiwxXSxbIkRpc3NlbWluYXRlZCBUdWJlcmN1bG9zaXMiLDFdLFsi
THltZSBEaXNlYXNlIC0gRWFybHkgRGlzc2VtaW5hdGVkIiwxXSxbIlRocnVzaCIsMV0sWyJDeXN0
aWNlcmNvc2lzIiwxXSxbIkFzY2FyaWFzaXMiLDFdLFsiR2FzIEdhbmdyZW5lIiwxXSxbIkFzZXB0
aWMgTWVuaW5naXRpcyIsMV0sWyJUZXRhbnVzIiwxXSxbIkxlZ2lvbm5haXJlJ3MgRGlzZWFzZSIs
MV0sWyJDcnlwdG9zcG9yaWRpdW0gRW50ZXJpdGlzIiwxXSxbIkVyeXNpcGVsYXMiLDFdLFsiT3Rp
dGlzIE1lZGlhIC0gQ2hyb25pYyIsMV0sWyJNZW5pbmdpdGlzIC0gU3RhcGh5bG9jb2NjYWwiLDFd
LFsiTWVuaW5naXRpcyAtIE1lbmluZ29jb2NjYWwiLDFdLFsiTWVuaW5naXRpcyAtIEdyYW0tTmVn
YXRpdmUiLDFdLFsiUSBGZXZlciAtIEVhcmx5IiwxXSxbIk1lbmluZ2l0aXMgLSBILiBJbmZsdWVu
emFlIiwxXSxbIk1lbmluZ2l0aXMgLSBQbmV1bW9jb2NjYWwiLDFdLFsiUGhhcnluZ2l0aXMgLSBH
b25vY29jY2FsIiwxXSxbIkhJViBJbmZlY3Rpb24iLDFdLFsiRWFybHkgU3ltcHRvbWF0aWMgSElW
IEluZmVjdGlvbiIsMV0sWyJBY3V0ZSBILkkuVi4gSW5mZWN0aW9uIiwxXSxbIkVwaWdsb3R0aXRp
cyIsMV0sWyJIZXJwZXMgTGFiaWFsaXMgKE9yYWwgSGVycGVzIFNpbXBsZXgpIiwxXSxbIkN1dGFu
ZW91cyBBbnRocmF4IiwxXSxbIkFJRFMiLDFdLFsiUGxhZ3VlIiwxXSxbIkJydWNlbGxvc2lzIiwx
XSxbIkJvdHVsaXNtIiwxXSxbIkFjdGlub215Y29zaXMiLDFdLFsiUGVyaXBoZXJhbCBOZXVyb3Bh
dGh5IiwxXSxbIlBvbHljeXRoZW1pYSBWZXJhIiwxXSxbIk1vbm9udWNsZW9zaXMiLDFdLFsiSGFp
cnkgQ2VsbCBMZXVrZW1pYSIsMV0sWyJNYWNyb2dsb2J1bGluZW1pYSBvZiBXYWxkZW5zdHJvbSIs
MV0sWyJNdWx0aXBsZSBNeWVsb21hIiwxXSxbIklyb24gRGVmaWNpZW5jeSBBbmVtaWEiLDFdLFsi
U2Vjb25kYXJ5IFN5c3RlbWljIEFteWxvaWRvc2lzIiwxXSxbIlRocm9tYm9jeXRvcGVuaWEiLDFd
LFsiVGhhbGFzc2VtaWEiLDFdLFsiQ29uZ2VuaXRhbCBQbGF0ZWxldCBGdW5jdGlvbiBEZWZlY3Rz
IiwxXSxbIkRydWctSW5kdWNlZCBJbW11bmUgSGVtb2x5dGljIEFuZW1pYSIsMV0sWyJJZGlvcGF0
aGljIEF1dG9pbW11bmUgSGVtb2x5dGljIEFuZW1pYSIsMV0sWyJIb2Rna2luJ3MgTHltcGhvbWEi
LDFdLFsiTm9uLUhvZGdraW4ncyBMeW1waG9tYSIsMV0sWyJJbW11bmUgSGVtb2x5dGljIEFuZW1p
YSIsMV0sWyJDaHJvbmljIE15ZWxvZ2Vub3VzIExldWtlbWlhIENNTCIsMV0sWyJIZW1vbHl0aWMg
QW5lbWlhIiwxXSxbIkhlbW9nbG9iaW4gQyBEaXNlYXNlIiwxXSxbIkRpc3NlbWluYXRlZCBJbnRy
YXZhc2N1bGFyIENvYWd1bGF0aW9uIERJQyIsMV0sWyJBbmVtaWEgLSBCMTIgRGVmaWNpZW5jeSIs
MV0sWyJQZXJuaWNpb3VzIEFuZW1pYSIsMV0sWyJHYXVjaGVyIERpc2Vhc2UiLDFdLFsiQW5lbWlh
IG9mIENocm9uaWMgRGlzZWFzZSIsMV0sWyJIZXJlZGl0YXJ5IE92YWxvY3l0b3NpcyIsMV0sWyJN
ZWdhbG9ibGFzdGljIEFuZW1pYSIsMV0sWyJBY3V0ZSBDeXRvbWVnYWxvdmlydXMgKENNVikgSW5m
ZWN0aW9uIiwxXSxbIkhlcmVkaXRhcnkgRWxsaXB0b2N5dG9zaXMiLDFdLFsiQ29uZ2VuaXRhbCBQ
cm90ZWluIEMgb3IgUyBEZWZpY2llbmN5IiwxXSxbIkFuZW1pYSIsMV0sWyJNZXRoZW1vZ2xvYmlu
ZW1pYSIsMV0sWyJQYXJveHlzbWFsIENvbGQgSGVtb2dsb2JpbnVyaWEgUENIIiwxXSxbIkZvbGF0
ZS1EZWZpY2llbmN5IEFuZW1pYSIsMV0sWyJUaHJvbWJvdGljIFRocm9tYm9jeXRvcGVuaWMgUHVy
cHVyYSIsMV0sWyJGYWN0b3IgWCBEZWZpY2llbmN5IiwxXSxbIklkaW9wYXRoaWMgQXBsYXN0aWMg
QW5lbWlhIiwxXSxbIkZhY3RvciBWIERlZmljaWVuY3kiLDFdLFsiVm9uIFdpbGxlYnJhbmQgRGlz
ZWFzZSIsMV0sWyJGYWN0b3IgWElJIEhhZ2VtYW4gRmFjdG9yIERlZmljaWVuY3kiLDFdLFsiQWNx
dWlyZWQgUGxhdGVsZXQgRnVuY3Rpb24gRGVmZWN0IiwxXSxbIkx1cHVzIEFudGljb2FndWxhbnRz
IiwxXSxbIkZhY3RvciBWSUkgRGVmaWNpZW5jeSIsMV0sWyJGYWN0b3IgSUkgRGVmaWNpZW5jeSIs
MV0sWyJQcmltYXJ5IFRocm9tYm9jeXRoZW1pYSIsMV0sWyJIZW1vcGhpbGlhIiwxXSxbIkhlbW9w
aGlsaWEgQSIsMV0sWyJIZW1vcGhpbGlhIEIiLDFdLFsiQ3J5b2dsb2J1bGluZW1pYSIsMV0sWyJB
Y3V0ZSBMeW1waG9jeXRpYyBMZXVrZW1pYSAoQUxMKSIsMV0sWyJBY3V0ZSBNeWVsb2lkIExldWtl
bWlhIiwxXSxbIkh5cGVydmlzY29zaXR5IC0gTmV3Ym9ybiIsMV0sWyJDb25nZW5pdGFsIFNwaGVy
b2N5dGljIEFuZW1pYSIsMV0sWyJQcmltYXJ5IE15ZWxvZmlicm9zaXMiLDFdLFsiQ2hyb25pYyBM
eW1waG9jeXRpYyBMZXVrZW1pYSBDTEwiLDFdLFsiUHJpbWFyeSBBbXlsb2lkb3NpcyIsMV0sWyJQ
YXJveHlzbWFsIE5vY3R1cm5hbCBIZW1vZ2xvYmludXJpYSBQTkgiLDFdLFsiSWRpb3BhdGhpYyBU
aHJvbWJvY3l0b3BlbmljIFB1cnB1cmEgSVRQIiwxXSxbIlNlY29uZGFyeSBBcGxhc3RpYyBBbmVt
aWEiLDFdLFsiUHJvc3RhdGl0aXMgLSBDaHJvbmljIiwxXSxbIlByb3N0YXRpdGlzIC0gTm9uYmFj
dGVyaWFsIiwxXSxbIkNhbmNlciAtIFJlbmFsIFBlbHZpcyBvciBVcmV0ZXIiLDFdLFsiQ3lzdGl0
aXMgLSBBY3V0ZSBCYWN0ZXJpYWwiLDFdLFsiU2lja2xlIENlbGwgQW5lbWlhIiwxXSxbIkdsdWNv
c2UtNi1QaG9zcGhhdGUgRGVoeWRyb2dlbmFzZSBEZWZpY2llbmN5IiwxXSxbIktpZG5leSBJbmZl
Y3Rpb24gKFB5ZWxvbmVwaHJpdGlzKSIsMV0sWyJSZW5hbCBDZWxsIENhcmNpbm9tYSIsMV0sWyJU
ZXN0aWN1bGFyIFRvcnNpb24iLDFdLFsiSHlkcm9jZWxlIiwxXSxbIlByb3N0YXRpdGlzIC0gQWN1
dGUiLDFdLFsiQXN5bXB0b21hdGljIEJhY3Rlcml1cmlhIiwxXSxbIlVyaW5hcnkgVHJhY3QgSW5m
ZWN0aW9uIiwxXSxbIlJlY3VycmVudCBDeXN0aXRpcyIsMV0sWyJBY3V0ZSBVbmlsYXRlcmFsIE9i
c3RydWN0aXZlIFVyb3BhdGh5IiwxXSxbIkhlbW9seXRpYy1VcmVtaWMgU3luZHJvbWUiLDFdLFsi
RGlhYmV0ZXMgSW5zaXBpZHVzIC0gTmVwaHJvZ2VuaWMiLDFdLFsiQWN1dGUgVHVidWxhciBOZWNy
b3NpcyIsMV0sWyJSZW5hbCBWZWluIFRocm9tYm9zaXMiLDFdLFsiQ3lzdGl0aXMgLSBOb25pbmZl
Y3Rpb3VzIiwxXSxbIlByZXJlbmFsIEF6b3RlbWlhIiwxXSxbIlBvbHljeXN0aWMgS2lkbmV5IERp
c2Vhc2UiLDFdLFsiUG9zdC1TdHJlcHRvY29jY2FsIEdOIiwxXSxbIkFscG9ydCBTeW5kcm9tZSIs
MV0sWyJVcmluYXJ5IFRyYWN0IEluZmVjdGlvbiAtIENocm9uaWMgb3IgUmVjdXJyZW50IiwxXSxb
IlVuaWxhdGVyYWwgSHlkcm9uZXBocm9zaXMiLDFdLFsiT2JzdHJ1Y3RpdmUgVXJvcGF0aHkiLDFd
LFsiQWN1dGUgS2lkbmV5IEZhaWx1cmUiLDFdLFsiTWluaW1hbCBDaGFuZ2UgRGlzZWFzZSIsMV0s
WyJQcm94aW1hbCBSZW5hbCBUdWJ1bGFyIEFjaWRvc2lzIiwxXSxbIkNocm9uaWMgVW5pbGF0ZXJh
bCBPYnN0cnVjdGl2ZSBVcm9wYXRoeSIsMV0sWyJDaHJvbmljIEdsb21lcnVsb25lcGhyaXRpcyIs
MV0sWyJFbmQtc3RhZ2UgS2lkbmV5IERpc2Vhc2UiLDFdLFsiQWN1dGUgTmVwaHJpdGljIFN5bmRy
b21lIiwxXSxbIk5lcGhyb3RpYyBTeW5kcm9tZSIsMV0sWyJNYWxpZ25hbnQgSHlwZXJ0ZW5zaW9u
IChBcnRlcmlvbGFyIE5lcGhyb3NjbGVyb3NpcykiLDFdLFsiTmVwaHJvY2FsY2lub3NpcyIsMV0s
WyJEaXN0YWwgUmVuYWwgVHVidWxhciBBY2lkb3NpcyIsMV0sWyJEaWFiZXRpYyBOZXBocm9wYXRo
eSIsMV0sWyJIZXBhdG9yZW5hbCBTeW5kcm9tZSIsMV0sWyJBbmFsZ2VzaWMgTmVwaHJvcGF0aHki
LDFdLFsiQ2F0aGV0ZXItQXNzb2NpYXRlZCBVVEkiLDFdLFsiR2xvbWVydWxvbmVwaHJpdGlzIiwx
XSxbIkFjdXRlIEJpbGF0ZXJhbCBPYnN0cnVjdGl2ZSBVcm9wYXRoeSIsMV0sWyJCbGFkZGVyIENh
bmNlciIsMV0sWyJMdXB1cyBOZXBocml0aXMiLDFdLFsiUmVuYWwgUGFwaWxsYXJ5IE5lY3Jvc2lz
IiwxXSxbIk1lbWJyYW5vcHJvbGlmZXJhdGl2ZSBHTiBJIiwxXSxbIk1lbWJyYW5vcHJvbGlmZXJh
dGl2ZSBHTiBJSSIsMV0sWyJJbnRlcnN0aXRpYWwgQ3lzdGl0aXMgSUMiLDFdLFsiRm9jYWwgU2Vn
bWVudGFsIEdsb21lcnVsb3NjbGVyb3NpcyIsMV0sWyJBdGhlcm9lbWJvbGljIFJlbmFsIERpc2Vh
c2UiLDFdLFsiQmlsYXRlcmFsIEh5ZHJvbmVwaHJvc2lzIiwxXSxbIlJhcGlkbHkgUHJvZ3Jlc3Np
dmUgKENyZXNjZW50aWMpIEdsb21lcnVsb25lcGhyaXRpcyIsMV0sWyJDaHJvbmljIFJlbmFsIEZh
aWx1cmUiLDFdLFsiTWVtYnJhbm91cyBOZXBocm9wYXRoeSIsMV0sWyJSaGFiZG9teW9seXNpcyIs
MV0sWyJIeXBlcnRlbnNpb24iLDFdLFsiVXJldGVyb2NlbGUiLDFdLFsiUmV0cm9wZXJpdG9uZWFs
IEZpYnJvc2lzIiwxXSxbIkludGVyc3RpdGlhbCBOZXBocml0aXMiLDFdLFsiTWVkdWxsYXJ5IEN5
c3RpYyBLaWRuZXkgRGlzZWFzZSIsMV0sWyJJZ0EgTmVwaHJvcGF0aHkgQmVyZ2VyJ3MgRGlzZWFz
ZSIsMV0sWyJDaHJvbmljIEJpbGF0ZXJhbCBPYnN0cnVjdGl2ZSBVcm9wYXRoeSIsMV0sWyJLaWRu
ZXkgU3RvbmVzIiwxXSxbIlJlZmx1eCBOZXBocm9wYXRoeSIsMV0sWyJEaWFiZXRlcyBJbnNpcGlk
dXMgLSBDZW50cmFsIiwxXSxbIlNqb2dyZW4gU3luZHJvbWUiLDFdLFsiQWR1bHQgU3RpbGwncyBE
aXNlYXNlIiwxXSxbIkp1dmVuaWxlIFJoZXVtYXRvaWQgQXJ0aHJpdGlzIiwxXSxbIkNob25kcm9t
YWxhY2lhIFBhdGVsbGEiLDFdLFsiR29ub2NvY2NhbCBBcnRocml0aXMiLDFdLFsiTm9uc3BlY2lm
aWMgQmFjayBQYWluIiwxXSxbIkZyb3plbiBTaG91bGRlciIsMV0sWyJUZW5uaXMgRWxib3ciLDFd
LFsiQ29tcHJlc3Npb24gRnJhY3R1cmVzIG9mIHRoZSBCYWNrIiwxXSxbIkZ1bmdhbCBBcnRocml0
aXMiLDFdLFsiRmVsdHkgU3luZHJvbWUiLDFdLFsiRHJ1Zy1JbmR1Y2VkIEx1cHVzIEVyeXRoZW1h
dG9zdXMiLDFdLFsiRW9zaW5vcGhpbGljIEZhc2NpaXRpcyIsMV0sWyJUZW1wb3JhbCBBcnRlcml0
aXMiLDFdLFsiSGVybmlhdGVkIE51Y2xldXMgUHVscG9zdXMgKFNsaXBwZWQgRGlzaykiLDFdLFsi
U3lzdGVtaWMgTHVwdXMgRXJ5dGhlbWF0b3N1cyIsMV0sWyJDZXJ2aWNhbCBTcG9uZHlsb3NpcyIs
MV0sWyJPc3Rlb215ZWxpdGlzIiwxXSxbIlJvdGF0b3IgQ3VmZiBUZW5kaW5pdGlzIiwxXSxbIlVy
ZXRocml0aXMiLDFdLFsiUmVhY3RpdmUgQXJ0aHJpdGlzIiwxXSxbIlNwaW5hbCBTdGVub3NpcyIs
MV0sWyJQc29yaWFzaXMiLDFdLFsiUG9seW15b3NpdGlzIC0gQWR1bHQiLDFdLFsiU2NsZXJvZGVy
bWEiLDFdLFsiU2VwdGljIEFydGhyaXRpcyIsMV0sWyJSaGV1bWF0b2lkIEFydGhyaXRpcyIsMV0s
WyJOZWNyb3RpemluZyBWYXNjdWxpdGlzIiwxXSxbIkNhcnBhbCBUdW5uZWwgU3luZHJvbWUiLDFd
LFsiRmlicm9teWFsZ2lhIiwxXSxbIlBzZXVkb2dvdXQiLDFdLFsiQWN1dGUgR291dHkgQXJ0aHJp
dGlzIiwxXSxbIk9zdGVvYXJ0aHJpdGlzIiwxXSxbIkdvdXQgLSBDaHJvbmljIiwxXSxbIkhlbm9j
aC1TY2hvbmxlaW4gUHVycHVyYSIsMV0sWyJEcnkgRXllIFN5bmRyb21lIiwxXSxbIkFua3lsb3Np
bmcgU3BvbmR5bGl0aXMiLDFdLFsiUHNvcmlhdGljIEFydGhyaXRpcyIsMV0sWyJQYWdldCdzIERp
c2Vhc2UiLDFdLFsiUG9seW15YWxnaWEgUmhldW1hdGljYSIsMV0sWyJWaXJhbCBBcnRocml0aXMi
LDFdLFsiVHViZXJjdWxvdXMgQXJ0aHJpdGlzIiwxXSxbIk1hcmZhbiBTeW5kcm9tZSIsMV0sWyJC
dXJzaXRpcyIsMV0sWyJSYXluYXVkJ3MgUGhlbm9tZW5vbiIsMV0sWyJFY3RvcGljIEN1c2hpbmcg
U3luZHJvbWUiLDFdLFsiQ3VzaGluZyBTeW5kcm9tZSBEdWUgdG8gQWRyZW5hbCBUdW1vciIsMV0s
WyJGYW1pbGlhbCBMaXBvcHJvdGVpbiBMaXBhc2UgRGVmaWNpZW5jeSIsMV0sWyJDdXNoaW5nIFN5
bmRyb21lIiwxXSxbIkNvbmdlbml0YWwgQWRyZW5hbCBIeXBlcnBsYXNpYSIsMV0sWyJDaHlsb21p
Y3JvbmVtaWEgU3luZHJvbWUiLDFdLFsiRmFtaWxpYWwgRHlzYmV0YWxpcG9wcm90ZWluZW1pYSIs
MV0sWyJIaWdoIEJsb29kIENob2xlc3Rlcm9sIGFuZCBUcmlnbHljZXJpZGVzIiwxXSxbIk1hbG51
dHJpdGlvbiIsMV0sWyJNdWx0aXBsZSBFbmRvY3JpbmUgTmVvcGxhc2lhIE1FTiBJSSIsMV0sWyJQ
YW5jcmVhdGljIElzbGV0IENlbGwgVHVtb3IiLDFdLFsiSHlwb25hdHJlbWlhIiwxXSxbIlRlc3Rp
Y3VsYXIgRmFpbHVyZSIsMV0sWyJGYW1pbGlhbCBDb21iaW5lZCBIeXBlcmxpcGlkZW1pYSIsMV0s
WyJGYW1pbGlhbCBIeXBlcnRyaWdseWNlcmlkZW1pYSIsMV0sWyJNdWx0aXBsZSBFbmRvY3JpbmUg
TmVvcGxhc2lhIFR5cGUgSSIsMV0sWyJGYW1pbGlhbCBIeXBlcmNob2xlc3Rlcm9sZW1pYSIsMV0s
WyJIeXBvZ2x5Y2VtaWEiLDFdLFsiSW5zdWxpbm9tYSIsMV0sWyJQYWlubGVzcyAoU2lsZW50KSBU
aHlyb2lkaXRpcyIsMV0sWyJDdXNoaW5nIFN5bmRyb21lIC0gRXhvZ2Vub3VzIiwxXSxbIkh5cG9n
b25hZG90cm9waWMgSHlwb2dvbmFkaXNtIiwxXSxbIkxhY3RpYyBBY2lkb3NpcyIsMV0sWyJIeXBv
cGFyYXRoeXJvaWRpc20iLDFdLFsiVHVybmVyIFN5bmRyb21lIiwxXSxbIlByb3N0YXRlIENhbmNl
ciIsMV0sWyJFbmxhcmdlZCBQcm9zdGF0ZSIsMV0sWyJLbGluZWZlbHRlciBTeW5kcm9tZSIsMV0s
WyJDb2xsb2lkIE5vZHVsYXIgR29pdGVyIiwxXSxbIlByaW1hcnkgSHlwZXJwYXJhdGh5cm9pZGlz
bSIsMV0sWyJBZGRpc29uJ3MgRGlzZWFzZSIsMV0sWyJNYXBsZSBTeXJ1cCBVcmluZSBEaXNlYXNl
IiwxXSxbIk1lZHVsbGFyeSBDYXJjaW5vbWEgb2YgVGh5cm9pZCIsMV0sWyJTdWJhY3V0ZSBUaHly
b2lkaXRpcyIsMV0sWyJPc3Rlb21hbGFjaWEiLDFdLFsiRGlhYmV0ZXMgSW5zaXBpZHVzIiwxXSxb
IkhlcmVkaXRhcnkgVXJlYSBDeWNsZSBBYm5vcm1hbGl0eSIsMV0sWyJIeXBvdGh5cm9pZGlzbSAt
IFByaW1hcnkiLDFdLFsiUG9seWN5c3RpYyBPdmFyeSBEaXNlYXNlIiwxXSxbIkV4b2dlbm91cyBB
ZHJlbmFsIEluc3VmZmljaWVuY3kiLDFdLFsiQ2hyb25pYyBUaHlyb2lkaXRpcyAoSGFzaGltb3Rv
J3MgRGlzZWFzZSkiLDFdLFsiR2FsYWN0b3NlbWlhIiwxXSxbIk9zdGVvcG9yb3NpcyIsMV0sWyJB
bm9yZXhpYSBOZXJ2b3NhIiwxXSxbIkZhbWlsaWFsIE1lZGl0ZXJyYW5lYW4gRmV2ZXIiLDFdLFsi
UHNldWRvaHlwb3BhcmF0aHlyb2lkaXNtIiwxXSxbIkh5cGVyY2FsY2VtaWEiLDFdLFsiSGVyZWRp
dGFyeSBGcnVjdG9zZSBJbnRvbGVyYW5jZSIsMV0sWyJIeXBlcnRoeXJvaWRpc20iLDFdLFsiQWN1
dGUgQWRyZW5hbCBDcmlzaXMiLDFdLFsiR3JhdmVzIERpc2Vhc2UiLDFdLFsiQ2FyY2lub2lkIFN5
bmRyb21lIiwxXSxbIkN1c2hpbmcncyBEaXNlYXNlIiwxXSxbIkVtcHR5IFNlbGxhIFN5bmRyb21l
IiwxXSxbIkh5cGVydml0YW1pbm9zaXMgQSIsMV0sWyJQc2V1ZG90dW1vciBDZXJlYnJpIiwxXSxb
IkFuYXBsYXN0aWMgVGh5cm9pZCBDYW5jZXIiLDFdLFsiSHlwb3RoeXJvaWRpc20iLDFdLFsiQ3lz
dGludXJpYSIsMV0sWyJQaGVvY2hyb21vY3l0b21hIiwxXSxbIkJ1bGltaWEiLDFdLFsiSHlwb3Bp
dHVpdGFyaXNtIiwxXSxbIlJpY2tldHMiLDFdLFsiQ3JhbmlvcGhhcnluZ2lvbWEiLDFdLFsiQmVy
aWJlcmkiLDFdLFsiRmFuY29uaSBTeW5kcm9tZSIsMV0sWyJGYW5jb25pJ3MgQW5lbWlhIiwxXSxb
Ik1ldGFib2xpYyBBY2lkb3NpcyIsMV0sWyJQcm9sYWN0aW5vbWEiLDFdLFsiUHJvbGFjdGlub21h
IC0gTWFsZXMiLDFdLFsiVm9uIEdpZXJrZSBEaXNlYXNlIiwxXSxbIk1pbGstQWxrYWxpIFN5bmRy
b21lIiwxXSxbIkdsdWNhZ29ub21hIiwxXSxbIkhlbW9jaHJvbWF0b3NpcyIsMV0sWyJNY0FyZGxl
IFN5bmRyb21lIiwxXSxbIkh5cGVyYWxkb3N0ZXJvbmlzbSAtIFByaW1hcnkgYW5kIFNlY29uZGFy
eSIsMV0sWyJab2xsaW5nZXItRWxsaXNvbiBTeW5kcm9tZSIsMV0sWyJUaHlyb2lkIENhbmNlciAt
IFBhcGlsbGFyeSBDYXJjaW5vbWEiLDFdLFsiU2Vjb25kYXJ5IEh5cGVycGFyYXRoeXJvaWRpc20i
LDFdLFsiVGh5cm90b3hpYyBQZXJpb2RpYyBQYXJhbHlzaXMiLDFdLFsiRGlhYmV0aWMgS2V0b2Fj
aWRvc2lzIiwxXSxbIkFjcm9tZWdhbHkiLDFdLFsiQWxjb2hvbGljIEtldG9hY2lkb3NpcyIsMV0s
WyJIeXBvdGh5cm9pZGlzbSAtIFNlY29uZGFyeSIsMV0sWyJUb3hpYyBOb2R1bGFyIEdvaXRlciIs
MV0sWyJIeXBva2FsZW1pYyBQZXJpb2RpYyBQYXJhbHlzaXMiLDFdLFsiVHlwZSAyIERpYWJldGVz
IiwxXSxbIkVjdG9waWMgQURIIFNlY3JldGlvbiIsMV0sWyJIeXBlcmthbGVtaWMgUGVyaW9kaWMg
UGFyYWx5c2lzIiwxXSxbIkRydWctSW5kdWNlZCBIeXBvZ2x5Y2VtaWEiLDFdLFsiRGlhYmV0aWMg
SHlwZXJnbHljZW1pYyBIeXBlcm9zbW9sYXIgQ29tYSIsMV0sWyJUeXBlIDEgRGlhYmV0ZXMiLDFd
LFsiRHJ1Zy1JbmR1Y2VkIEh5cG90aHlyb2lkaXNtIiwxXSxbIkJhcnR0ZXIgU3luZHJvbWUiLDFd
LFsiRmFjdGl0aW91cyBIeXBlcnRoeXJvaWRpc20iLDFdLFsiQ2hvbGVyYSIsMV0sWyJHYXN0cm9w
YXJlc2lzIiwxXSxbIkFtZWJpYXNpcyIsMV0sWyJNYWxhYnNvcnB0aW9uIiwxXSxbIlJhZGlhdGlv
biBFbnRlcml0aXMiLDFdLFsiR2lsYmVydCdzIERpc2Vhc2UiLDFdLFsiSGVwYXRpYyBFbmNlcGhh
bG9wYXRoeSIsMV0sWyJFLiBDb2xpIEVudGVyaXRpcyIsMV0sWyJDaG9sYW5naW9jYXJjaW5vbWEi
LDFdLFsiSGVtb3JyaG9pZHMiLDFdLFsiU2FsbW9uZWxsYSBFbnRlcm9jb2xpdGlzIiwxXSxbIlNo
aWdlbGxhIEVudGVyaXRpcyIsMV0sWyJDaG9sYW5naXRpcyIsMV0sWyJFc29waGFnZWFsIENhbmNl
ciIsMV0sWyJIZXBhdGl0aXMgQyIsMV0sWyJTY2xlcm9zaW5nIENob2xhbmdpdGlzIiwxXSxbIkFz
Y2l0ZXMiLDFdLFsiQWN1dGUgUGFuY3JlYXRpdGlzIiwxXSxbIkdpYXJkaWFzaXMiLDFdLFsiRXNv
cGhhZ2VhbCBTcGFzbSIsMV0sWyJQcmltYXJ5IEJpbGlhcnkgQ2lycmhvc2lzIiwxXSxbIkxpdmVy
IE1ldGFzdGFzZXMiLDFdLFsiSGVwYXRpdGlzIEEiLDFdLFsiSGVwYXRpdGlzIEIiLDFdLFsiSGVw
YXRvY2VsbHVsYXIgQ2FyY2lub21hIiwxXSxbIkFsY29ob2xpYyBMaXZlciBEaXNlYXNlIiwxXSxb
IkxhY3Rvc2UgSW50b2xlcmFuY2UiLDFdLFsiTWFsbG9yeS1XZWlzcyBUZWFyIiwxXSxbIlBhbmNy
ZWF0aWMgQWJzY2VzcyIsMV0sWyJQYW5jcmVhdGljIFBzZXVkb2N5c3QiLDFdLFsiR2FsbHN0b25l
cyIsMV0sWyJDaG9sZWRvY2hvbGl0aGlhc2lzIiwxXSxbIlRyb3BpY2FsIFNwcnVlIiwxXSxbIkJs
ZWVkaW5nIEVzb3BoYWdlYWwgVmFyaWNlcyIsMV0sWyJDb2xvbiBDYW5jZXIiLDFdLFsiQmlsZSBE
dWN0IE9ic3RydWN0aW9uIiwxXSxbIkFjdXRlIENob2xlY3lzdGl0aXMgKEdhbGxzdG9uZXMpIiwx
XSxbIkdhc3Ryb2Vzb3BoYWdlYWwgUmVmbHV4IERpc2Vhc2UiLDFdLFsiQ29sb3JlY3RhbCBQb2x5
cHMiLDFdLFsiQWNoYWxhc2lhIiwxXSxbIlB5b2dlbmljIExpdmVyIEFic2Nlc3MiLDFdLFsiQ2ly
cmhvc2lzIiwxXSxbIkFwcGVuZGljaXRpcyIsMV0sWyJEaXZlcnRpY3VsaXRpcyIsMV0sWyJJc2No
ZW1pYyBDb2xpdGlzIiwxXSxbIlBzZXVkb21lbWJyYW5vdXMgQ29saXRpcyIsMV0sWyJJbnRlc3Rp
bmFsIE9ic3RydWN0aW9uIiwxXSxbIkJhY3RlcmlhbCBHYXN0cm9lbnRlcml0aXMiLDFdLFsiVG94
aWMgTWVnYWNvbG9uIiwxXSxbIkNyb2huJ3MgRGlzZWFzZSIsMV0sWyJVbGNlcmF0aXZlIENvbGl0
aXMiLDFdLFsiVmlyYWwgR2FzdHJvZW50ZXJpdGlzIiwxXSxbIlByaW1hcnkgSW50ZXN0aW5hbCBQ
c2V1ZG8tT2JzdHJ1Y3Rpb24iLDFdLFsiUGFuY3JlYXMgRGl2aXN1bSIsMV0sWyJHYXN0cml0aXMg
LSBBY3V0ZSIsMV0sWyJEdWJpbi1Kb2huc29uIFN5bmRyb21lIiwxXSxbIkhlcGF0aWMgSGVtYW5n
aW9tYSIsMV0sWyJQZXV0ei1KZWdoZXJzIFN5bmRyb21lIiwxXSxbIkF1dG9pbW11bmUgSGVwYXRp
dGlzIiwxXSxbIklycml0YWJsZSBCb3dlbCBTeW5kcm9tZSIsMV0sWyJIZXBhdGljIFZlaW4gT2Jz
dHJ1Y3Rpb24gQnVkZC1DaGlhcmkiLDFdLFsiTWVja2VsJ3MgRGl2ZXJ0aWN1bHVtIiwxXSxbIkdh
c3Ryb2ludGVzdGluYWwgUGVyZm9yYXRpb24iLDFdLFsiUGFuY3JlYXRpYyBDYXJjaW5vbWEiLDFd
LFsiU2hvcnQgQm93ZWwgU3luZHJvbWUiLDFdLFsiQW5naW9keXNwbGFzaWEgb2YgdGhlIENvbG9u
IiwxXSxbIkNlbGlhYyBEaXNlYXNlIC0gU3BydWUiLDFdLFsiU3RhcGggQXVyZXVzIEZvb2QgUG9p
c29uaW5nIiwxXSxbIlZJUG9tYSIsMV0sWyJIZWxpY29iYWN0ZXIgUHlsb3JpIiwxXSxbIkZlY2Fs
IEltcGFjdGlvbiIsMV0sWyJFc29waGFnZWFsIFBlcmZvcmF0aW9uIiwxXSxbIkdhc3RyaXRpcyAt
IENocm9uaWMiLDFdLFsiRHJ1Zy1JbmR1Y2VkIEhlcGF0aXRpcyIsMV0sWyJCaWxpYXJ5IFN0cmlj
dHVyZSIsMV0sWyJDaHJvbmljIFBhbmNyZWF0aXRpcyIsMV0sWyJTbWFsbCBCb3dlbCBCYWN0ZXJp
YWwgT3Zlcmdyb3d0aCIsMV0sWyJHYXN0cmljIENhbmNlciIsMV0sWyJDYW1weWxvYmFjdGVyIEVu
dGVyaXRpcyIsMV0sWyJDaHJvbmljIFBlcnNpc3RlbnQgSGVwYXRpdGlzIiwxXSxbIkludHJhLUFi
ZG9taW5hbCBBYnNjZXNzIiwxXSxbIkdhc3RyaWMgVWxjZXIiLDFdLFsiSGVwYXRpYyBJc2NoZW1p
YSIsMV0sWyJDaG9sZXN0YXNpcyIsMV0sWyJEZWx0YSBBZ2VudCBIZXBhdGl0aXMgRCIsMV0sWyJD
aHJvbmljIENob2xlY3lzdGl0aXMiLDFdLFsiRHJ1Zy1JbmR1Y2VkIENob2xlc3Rhc2lzIiwxXSxb
IkFtZWJpYyBMaXZlciBBYnNjZXNzIiwxXSxbIlBlcHRpYyBVbGNlciIsMV0sWyJFc29waGFnZWFs
IFN0cmljdHVyZSAtIEJlbmlnbiIsMV0sWyJMb3dlciBFc29waGFnZWFsIFJpbmcgU2NoYXR6a2ki
LDFdLFsiV2hpcHBsZSdzIERpc2Vhc2UiLDFdLFsiSmF1bmRpY2UtQXNzb2NpYXRlZCBDb25kaXRp
b25zIiwxXSxbIlVuc3RhYmxlIEFuZ2luYSIsMV0sWyJNeW9jYXJkaWFsIENvbnR1c2lvbiIsMV0s
WyJWZW5vdXMgSW5zdWZmaWNpZW5jeSIsMV0sWyJSZW5vdmFzY3VsYXIgSHlwZXJ0ZW5zaW9uIiwx
XSxbIlBobGVnbWFzaWEgQ2VydWxlYSBEb2xlbnMiLDFdLFsiQ2FyZGlhYyBBbXlsb2lkb3NpcyIs
MV0sWyJDYXJkaWFjIFRhbXBvbmFkZSIsMV0sWyJIZWFydCBBdHRhY2siLDFdLFsiU3RhYmxlIEFu
Z2luYSIsMV0sWyJTdXBlcmZpY2lhbCBUaHJvbWJvcGhsZWJpdGlzIiwxXSxbIkh5cGVydHJvcGhp
YyBDYXJkaW9teW9wYXRoeSIsMV0sWyJNdWx0aWZvY2FsIEF0cmlhbCBUYWNoeWNhcmRpYSIsMV0s
WyJWZW50cmljdWxhciBUYWNoeWNhcmRpYSIsMV0sWyJQZXJpcGFydHVtIENhcmRpb215b3BhdGh5
IiwxXSxbIlJlc3RyaWN0aXZlIENhcmRpb215b3BhdGh5IiwxXSxbIkNvYXJjdGF0aW9uIG9mIHRo
ZSBBb3J0YSIsMV0sWyJDYXJkaW9nZW5pYyBTaG9jayIsMV0sWyJBb3J0aWMgSW5zdWZmaWNpZW5j
eSIsMV0sWyJNaXRyYWwgVmFsdmUgUHJvbGFwc2UiLDFdLFsiQW9ydGljIERpc3NlY3Rpb24iLDFd
LFsiUGVyaWNhcmRpdGlzIiwxXSxbIlBhcm94eXNtYWwgU3VwcmF2ZW50cmljdWxhciBUYWNoeWNh
cmRpYSBQU1ZUIiwxXSxbIkF0cmlhbCBGaWJyaWxsYXRpb24vRmx1dHRlciIsMV0sWyJBb3J0aWMg
U3Rlbm9zaXMiLDFdLFsiVGhyb21ib2FuZ2lpdGlzIE9ibGl0ZXJhbnMiLDFdLFsiUGVyaWNhcmRp
dGlzIC0gQmFjdGVyaWFsIiwxXSxbIkFsY29ob2xpYyBDYXJkaW9teW9wYXRoeSIsMV0sWyJNaXRy
YWwgU3Rlbm9zaXMiLDFdLFsiTWl0cmFsIFJlZ3VyZ2l0YXRpb24gLSBDaHJvbmljIiwxXSxbIk1p
dHJhbCBSZWd1cmdpdGF0aW9uIC0gQWN1dGUiLDFdLFsiQXRoZXJvc2NsZXJvc2lzIiwxXSxbIkh5
cG92b2xlbWljIFNob2NrIiwxXSxbIkRpbGF0ZWQgQ2FyZGlvbXlvcGF0aHkiLDFdLFsiVHJpY3Vz
cGlkIFJlZ3VyZ2l0YXRpb24iLDFdLFsiQXJ0ZXJpb3NjbGVyb3NpcyBvZiB0aGUgRXh0cmVtaXRp
ZXMiLDFdLFsiUGVyaWNhcmRpdGlzIC0gQWZ0ZXIgSGVhcnQgQXR0YWNrIiwxXSxbIklzY2hlbWlj
IENhcmRpb215b3BhdGh5IiwxXSxbIlNpY2sgU2ludXMgU3luZHJvbWUiLDFdLFsiQWJkb21pbmFs
IEFvcnRpYyBBbmV1cnlzbSIsMV0sWyJIeXBlcnRlbnNpdmUgSGVhcnQgRGlzZWFzZSIsMV0sWyJD
b3N0b2Nob25kcml0aXMiLDFdLFsiRGlnaXRhbGlzIFRveGljaXR5IiwxXSxbIkNvcm9uYXJ5IEFy
dGVyeSBTcGFzbSIsMV0sWyJFc3NlbnRpYWwgSHlwZXJ0ZW5zaW9uIiwxXSxbIlJpZ2h0LVNpZGVk
IEhlYXJ0IEZhaWx1cmUiLDFdLFsiRHJ1Zy1JbmR1Y2VkIEh5cGVydGVuc2lvbiIsMV0sWyJEZWVw
IFZlbm91cyBUaHJvbWJvc2lzIiwxXSxbIkF0cmlhbCBTZXB0YWwgRGVmZWN0IiwxXSxbIkhlYXJ0
IEZhaWx1cmUiLDFdLFsiTGVmdC1TaWRlZCBIZWFydCBGYWlsdXJlIiwxXSxbIkN5c3RpYyBIeWdy
b21hIiwxXSxbIk15b2NhcmRpdGlzIiwxXSxbIldvbGZmLVBhcmtpbnNvbi1XaGl0ZSBTeW5kcm9t
ZSIsMV0sWyJIZWFydCBEaXNlYXNlIiwxXSxbIkFzdGhtYSIsMV0sWyJHb29kcGFzdHVyZSBTeW5k
cm9tZSIsMV0sWyJDaGVtaWNhbCBQbmV1bW9uaXRpcyIsMV0sWyJCcm9uY2hpZWN0YXNpcyIsMV0s
WyJQbmV1bW9uaWEiLDFdLFsiSG9zcGl0YWwtQWNxdWlyZWQgUG5ldW1vbmlhIiwxXSxbIlB1bG1v
bmFyeSBFZGVtYSIsMV0sWyJXZWdlbmVyJ3MgR3JhbnVsb21hdG9zaXMiLDFdLFsiRW1waHlzZW1h
IiwxXSxbIkNhcGxhbiBTeW5kcm9tZSIsMV0sWyJTaWxpY29zaXMgLSBBY3V0ZSIsMV0sWyJTaWxp
Y29zaXMiLDFdLFsiQ29yIFB1bG1vbmFsZSIsMV0sWyJDb2FsIFdvcmtlcidzIFBuZXVtb2Nvbmlv
c2lzIiwxXSxbIlB1bG1vbmFyeSBFbWJvbHVzIiwxXSxbIkFjdXRlIE1vdW50YWluIFNpY2tuZXNz
IiwxXSxbIkRpZmZ1c2UgSW50ZXJzdGl0aWFsIEx1bmcgRGlzZWFzZSIsMV0sWyJMdW5nIENhbmNl
ciAtIFNtYWxsIENlbGwiLDFdLFsiRW1weWVtYSIsMV0sWyJBY3V0ZSBCcm9uY2hpdGlzIiwxXSxb
IkhlbW90aG9yYXgiLDFdLFsiUHVsbW9uYXJ5IEFzcGVyZ2lsbG9tYSAoTXljZXRvbWEpIiwxXSxb
IkFzcGlyYXRpb24gUG5ldW1vbmlhIiwxXSxbIk1lc290aGVsaW9tYSAoTWFsaWduYW50KSIsMV0s
WyJNZXNvdGhlbGlvbWEgKEJlbmlnbi1GaWJyb3VzKSIsMV0sWyJNZXRhc3RhdGljIFBsZXVyYWwg
VHVtb3IiLDFdLFsiQXNiZXN0b3NpcyIsMV0sWyJDaHJvbmljIEJyb25jaGl0aXMiLDFdLFsiQWxw
aGEtMSBBbnRpdHJ5cHNpbiBEZWZpY2llbmN5IiwxXSxbIlB1bG1vbmFyeSBBbHZlb2xhciBQcm90
ZWlub3NpcyIsMV0sWyJIeXBlcnNlbnNpdGl2aXR5IFBuZXVtb25pdGlzIiwxXSxbIk9jY3VwYXRp
b25hbCBBc3RobWEiLDFdLFsiUmVzcGlyYXRvcnkgQWxrYWxvc2lzIiwxXSxbIlByaW1hcnkgUHVs
bW9uYXJ5IEh5cGVydGVuc2lvbiIsMV0sWyJSaGV1bWF0b2lkIEx1bmcgRGlzZWFzZSIsMV0sWyJC
cm9uY2hpYWwgQWRlbm9tYSIsMV0sWyJBUkRTIChBY3V0ZSBSZXNwaXJhdG9yeSBEaXN0cmVzcyBT
eW5kcm9tZSkiLDFdLFsiRHJ1Zy1JbmR1Y2VkIFB1bG1vbmFyeSBEaXNlYXNlIiwxXSxbIlNpbXBs
ZSBQdWxtb25hcnkgRW9zaW5vcGhpbGlhIiwxXSxbIlB1bG1vbmFyeSBBc3BlcmdpbGxvc2lzIC0g
SW52YXNpdmUiLDFdLFsiQ3lzdGljIEZpYnJvc2lzIiwxXSxbIkJsYXN0b215Y29zaXMiLDFdLFsi
TWV0YXN0YXRpYyBDYW5jZXIgdG8gdGhlIEx1bmciLDFdLFsiSGlzdG9wbGFzbW9zaXMgLSBBY3V0
ZSBQcmltYXJ5IFB1bG1vbmFyeSIsMV0sWyJIaXN0b3BsYXNtb3NpcyAtIENocm9uaWMgUHVsbW9u
YXJ5IiwxXSxbIlNwb250YW5lb3VzIFBuZXVtb3Rob3JheCIsMV0sWyJIaXN0b3BsYXNtb3NpcyAt
IERpc3NlbWluYXRlZCIsMV0sWyJDb2NjaWRpb2lkb215Y29zaXMgLSBDaHJvbmljIFB1bG1vbmFy
eSIsMV0sWyJDaHJvbmljIE9ic3RydWN0aXZlIFB1bG1vbmFyeSBEaXNlYXNlIiwxXSxbIlJlc3Bp
cmF0b3J5IEFjaWRvc2lzIiwxXSxbIlBuZXVtb25pYSBpbiBJbW11bm9jb21wcm9taXNlZCBIb3N0
IiwxXSxbIkNvY2NpZGlvaWRvbXljb3NpcyAtIEFjdXRlIFB1bG1vbmFyeSIsMV0sWyJDb2NjaWRp
b2lkb215Y29zaXMgLSBEaXNzZW1pbmF0ZWQiLDFdLFsiVGVuc2lvbiBQbmV1bW90aG9yYXgiLDFd
LFsiUG5ldW1vbWVkaWFzdGludW0iLDFdLFsiT2Jlc2l0eSBIeXBvdmVudGlsYXRpb24gU3luZHJv
bWUgT0hTIiwxXSxbIlBsZXVyYWwgRWZmdXNpb24iLDFdLFsiUG5ldW1vdGhvcmF4IiwxXSxbIlBz
aXR0YWNvc2lzIiwxXSxbIlRyYXVtYXRpYyBQbmV1bW90aG9yYXgiLDFdLFsiUHVsbW9uYXJ5IE5v
Y2FyZGlvc2lzIiwxXSxbIlB1bG1vbmFyeSBUdWJlcmN1bG9zaXMiLDFdLFsiUHJpbWFyeSBBbHZl
b2xhciBIeXBvdmVudGlsYXRpb24iLDFdLFsiQXR5cGljYWwgUG5ldW1vbmlhIiwxXSxbIlRoZSBG
bHUiLDFdLFsiTWVkaWFzdGluaXRpcyIsMV0sWyJNeWNvcGxhc21hIFBuZXVtb25pYSIsMV0sWyJT
YXJjb2lkb3NpcyIsMV0sWyJQdWxtb25hcnkgQXNwZXJnaWxsb3NpcyAtIEFsbGVyZ2ljIEJyb25j
aG9wdWxtb25hcnkgVHlwZSIsMV0sWyJTb2xpdGFyeSBQdWxtb25hcnkgTm9kdWxlIiwxXSxbIklu
ZHVzdHJpYWwgQnJvbmNoaXRpcyIsMV0sWyJWaXJhbCBQbmV1bW9uaWEiLDFdLFsiUHVsbW9uYXJ5
IEFjdGlub215Y29zaXMiLDFdLFsiUHVsbW9uYXJ5IFZlbm8tT2NjbHVzaXZlIERpc2Vhc2UiLDFd
LFsiSWRpb3BhdGhpYyBQdWxtb25hcnkgRmlicm9zaXMiLDFdLFsiQWN1dGUgVXBwZXIgQWlyd2F5
IE9ic3RydWN0aW9uIiwxXSxbIkhpc3Rpb2N5dG9zaXMiLDFdLFsiSGVhcnQgQXR0YWNrIEZpcnN0
IEFpZCIsMl0sWyJTbGVlcCBEaXNvcmRlcnMgaW4gdGhlIEVsZGVybHkiLDFdLFsiQXRlbGVjdGFz
aXMiLDFdLFsiU3VuYnVybiBGaXJzdCBBaWQiLDJdLFsiRmlzaGhvb2sgUmVtb3ZhbCIsMl0sWyJI
ZWF0IEVtZXJnZW5jaWVzIiwyXSxbIkZyb3N0Yml0ZSIsMl0sWyJCcm9rZW4gb3IgS25vY2tlZCBP
dXQgVG9vdGgiLDJdLFsiQ2hlbWljYWwgQnVybiBvciBSZWFjdGlvbiIsMl0sWyJTa3VsbCBGcmFj
dHVyZSIsMl0sWyJOb3NlIEZyYWN0dXJlIiwyXSxbIkV5ZSBFbWVyZ2VuY2llcyIsMl0sWyJDaG9r
aW5nIC0gSW5mYW50IFVuZGVyIDEgWWVhciIsMl0sWyJDaG9raW5nIC0gQWR1bHQgb3IgQ2hpbGQg
T3ZlciAxIFllYXIiLDJdLFsiQ2hva2luZyAtIFVuY29uc2Npb3VzIEFkdWx0IG9yIENoaWxkIE92
ZXIgMSBZZWFyIiwyXSxbIkVhciBFbWVyZ2VuY2llcyIsMl0sWyJFbGVjdHJpY2FsIEluanVyeSIs
Ml0sWyJTdHJhaW5zIiwyXSxbIkN1dHMgYW5kIFB1bmN0dXJlIFdvdW5kcyIsMl0sWyJHZW5pdGFs
IEluanVyeSIsMl0sWyJCbGVlZGluZyIsMl0sWyJOZWFyIERyb3duaW5nIiwyXSxbIlNwcmFpbnMi
LDJdLFsiSHVtYW4gQml0ZXMiLDJdLFsiRm9yZWlnbiBPYmplY3QgLSBJbmhhbGVkIG9yIFN3YWxs
b3dlZCIsMl0sWyJGb3JlaWduIEJvZHkgaW4gdGhlIE5vc2UiLDJdLFsiSHlwb3RoZXJtaWEiLDJd
LFsiU2hvY2siLDJdLFsiSG93IHRvIE1ha2UgYSBTcGxpbnQiLDJdLFsiQW5pbWFsIEJpdGVzIiwy
XSxbIlNwaW5hbC9OZWNrIEluanVyeSIsMl0sWyJCdXJucyIsMl0sWyJTbmFrZSBCaXRlIiwyXSxb
Ik1hcmluZSBBbmltYWwgU3RpbmdzIG9yIEJpdGVzIiwyXSxbIkluc2VjdCBCaXRlcyBhbmQgU3Rp
bmdzIiwyXSxbIkhlYWQgSW5qdXJ5IiwyXSxbIlVuY29uc2Npb3VzbmVzcyAtIEZpcnN0IEFpZCIs
Ml0sWyJXaGlwbGFzaCIsMl0sWyJSYWRpYXRpb24gU2lja25lc3MiLDJdLFsiUG9pc29uIEl2eSAt
IE9hayAtIFN1bWFjIFJhc2giLDJdLFsiQ29udnVsc2lvbnMiLDJdLFsiRGlzbG9jYXRpb24iLDJd
LFsiRHJ1ZyBBYnVzZSBGaXJzdCBBaWQiLDJdLFsiSG93IHRvIE1ha2UgYSBTbGluZyIsMl0sWyJT
bWFzaGVkIEZpbmdlcnMiLDJdLFsiSmF3IC0gQnJva2VuIG9yIERpc2xvY2F0ZWQiLDJdLFsiQ1BS
IC0gQWR1bHQiLDJdLFsiQnJva2VuIEJvbmUiLDJdLFsiQ29sbGVzJyBXcmlzdCBGcmFjdHVyZSIs
Ml0sWyJQb2lzb25pbmcgRmlyc3QgQWlkIiwyXSxbIlNoYWtlbiBCYWJ5IFN5bmRyb21lIiwyXSxb
IkFsbGVyZ2ljIFJlYWN0aW9ucyIsMl0sWyJBbXB1dGF0aW9uIC0gVHJhdW1hdGljIiwyXSxbIkJy
ZWF0aGluZyBEaWZmaWN1bHRpZXMgLSBGaXJzdCBBaWQiLDJdLFsiVGFpbGJvbmUgVHJhdW1hIiwy
XSxbIkNQUiAtIEluZmFudCIsMl0sWyJDUFIgLSBDaGlsZCAxIHRvIDggWXJzIE9sZCIsMl0sWyJD
ZXJ2aWNpdGlzIiwxXSxbIkdlc3RhdGlvbmFsIFRyb3Bob2JsYXN0aWMgRGlzZWFzZSIsMV0sWyJE
ZXZlbG9wbWVudGFsIERpc29yZGVycyBvZiB0aGUgRmVtYWxlIFJlcHJvZHVjdGl2ZSBUcmFjdCIs
MV0sWyJEZXZlbG9wbWVudGFsIERpc29yZGVycyBvZiB0aGUgVmFnaW5hIGFuZCBWdWx2YSIsMV0s
WyJIeXBlcmVtZXNpcyBHcmF2aWRhcnVtIiwxXSxbIkludHJhdXRlcmluZSBHcm93dGggUmVzdHJp
Y3Rpb24iLDFdLFsiU3ViYXJlb2xhciBBYnNjZXNzIiwxXSxbIkx1bXBzIGluIHRoZSBCcmVhc3Rz
IiwxXSxbIk1pdHRlbHNjaG1lcnoiLDFdLFsiT3ZhcmlhbiBDeXN0cyIsMV0sWyJQcmVtZW5zdHJ1
YWwgU3luZHJvbWUiLDFdLFsiUmV0cm92ZXJzaW9uIG9mIHRoZSBVdGVydXMiLDFdLFsiQXJyaGVu
b2JsYXN0b21hIG9mIE92YXJ5IiwxXSxbIlV0ZXJpbmUgUHJvbGFwc2UiLDFdLFsiVmFnaW5hbCBD
eXN0cyIsMV0sWyJWYWdpbmFsIFR1bW9ycyIsMV0sWyJWYWdpbmFsIFllYXN0IEluZmVjdGlvbiIs
MV0sWyJBYm9ydGlvbiAtIEVsZWN0aXZlIG9yIFRoZXJhcGV1dGljIiwxXSxbIkFkZW5vbXlvc2lz
IiwxXSxbIk5hYm90aGlhbiBDeXN0IiwxXSxbIk5pcHBsZSBQcm9ibGVtcyIsMV0sWyJBZG9sZXNj
ZW50IFByZWduYW5jeSIsMV0sWyJUcmljaG90aWxsb21hbmlhIiwxXSxbIkFkb2xlc2NlbnQgRGVw
cmVzc2lvbiIsMV0sWyJBbm9yZWN0YWwgQWJzY2VzcyIsMV0sWyJQYXRob2xvZ2ljYWwgR2FtYmxp
bmciLDFdLFsiRGVwcmVzc2lvbiAtIEVsZGVybHkiLDFdLFsiRHJ1ZyBBYnVzZSBhbmQgRGVwZW5k
ZW5jZSIsMV0sWyJNZW50YWwgUmV0YXJkYXRpb24iLDFdLFsiUHJlbWF0dXJlIEVqYWN1bGF0aW9u
IiwxXSxbIlNjaGl6b3R5cGFsIFBlcnNvbmFsaXR5IERpc29yZGVyIiwxXSxbIkF1dGlzbSIsMV0s
WyJHZW5kZXIgSWRlbnRpdHkgRGlzb3JkZXIiLDFdLFsiQnJpZWYgUmVhY3RpdmUgUHN5Y2hvc2lz
IiwxXSxbIkdyaWVmIiwxXSxbIkhpc3RyaW9uaWMgUGVyc29uYWxpdHkgRGlzb3JkZXIiLDFdLFsi
U2Vhc29uYWwgQWZmZWN0aXZlIERpc29yZGVyIiwxXSxbIkRldmVsb3BtZW50YWwgQ29vcmRpbmF0
aW9uIERpc29yZGVyIiwxXSxbIk1hdGhlbWF0aWNzIERpc29yZGVyIiwxXSxbIkNoaWxkaG9vZCBE
aXNpbnRlZ3JhdGl2ZSBEaXNvcmRlciIsMV0sWyJSZXR0IFN5bmRyb21lIiwxXSxbIk9wcG9zaXRp
b25hbCBEZWZpYW50IERpc29yZGVyIiwxXSxbIlBpY2EiLDFdLFsiUnVtaW5hdGlvbiBEaXNvcmRl
ciIsMV0sWyJGZWVkaW5nIERpc29yZGVyIG9mIEluZmFuY3kgYW5kIEVhcmx5IENoaWxkaG9vZCIs
MV0sWyJQaG9ub2xvZ2ljYWwgRGlzb3JkZXIiLDFdLFsiU2VwYXJhdGlvbiBBbnhpZXR5IiwxXSxb
IkRpc29yZGVyIG9mIFdyaXR0ZW4gRXhwcmVzc2lvbiIsMV0sWyJFeHByZXNzaXZlIExhbmd1YWdl
IERpc29yZGVyIC0gRGV2ZWxvcG1lbnRhbCIsMV0sWyJNaXhlZCBSZWNlcHRpdmUtRXhwcmVzc2l2
ZSBMYW5ndWFnZSBEaXNvcmRlciIsMV0sWyJTZWxlY3RpdmUgTXV0aXNtIiwxXSxbIlJlYWN0aXZl
IEF0dGFjaG1lbnQgRGlzb3JkZXIgb2YgSW5mYW5jeSBvciBFYXJseSBDaGlsZGhvb2QiLDFdLFsi
U3RlcmVvdHlwaWMgTW92ZW1lbnQgRGlzb3JkZXIiLDFdLFsiQXNwZXJnZXIgU3luZHJvbWUiLDFd
LFsiQ3ljbG90aHltaWMgRGlzb3JkZXIiLDFdLFsiQXR0ZW50aW9uIERlZmljaXQgSHlwZXJhY3Rp
dml0eSBEaXNvcmRlciAoQURIRCkiLDFdLFsiQ2hpbGQgQWJ1c2UgLSBQaHlzaWNhbCIsMV0sWyJQ
c3ljaG9zaXMiLDFdLFsiU3VpY2lkZSBhbmQgU3VpY2lkYWwgQmVoYXZpb3IiLDFdLFsiTXVuY2hh
dXNlbiBTeW5kcm9tZSBieSBQcm94eSIsMV0sWyJCZWR3ZXR0aW5nIiwxXSxbIk11bXBzIiwxXSxb
Ik15ZWxvbWVuaW5nb2NlbGUgQ2hpbGRyZW4iLDFdLFsiTmV3Ym9ybiBKYXVuZGljZSIsMV0sWyJQ
YXRlbnQgRHVjdHVzIEFydGVyaW9zdXMiLDFdLFsiUGVydHVzc2lzIiwxXSxbIlByZW1hdHVyZSBJ
bmZhbnQiLDFdLFsiUmVzcGlyYXRvcnkgRGlzdHJlc3MgU3luZHJvbWUgUkRTIGluIEluZmFudHMi
LDFdLFsiUmVzcGlyYXRvcnkgU3luY3l0aWFsIFZpcnVzIFJTViIsMV0sWyJSZXllIFN5bmRyb21l
IiwxXSxbIlN1ZGRlbiBJbmZhbnQgRGVhdGggU3luZHJvbWUiLDFdLFsiVGV0cmFsb2d5IG9mIEZh
bGxvdCIsMV0sWyJUcmFuc3Bvc2l0aW9uIG9mIHRoZSBHcmVhdCBWZXNzZWxzIiwxXSxbIk1lYXNs
ZXMiLDFdLFsiRW5jb3ByZXNpcyIsMV0sWyJIeWRyb2NlcGhhbHVzIiwxXSxbIkp1dmVuaWxlIEFu
Z2lvZmlicm9tYSIsMV0sWyJPc3Rlb2dlbmVzaXMgSW1wZXJmZWN0YSIsMV0sWyJSdWJlbGxhIiwx
XSxbIldpbG1zIFR1bW9yIiwxXSxbIkNvbmdlbml0YWwgTmVwaHJvdGljIFN5bmRyb21lIiwxXSxb
IkFjaG9uZHJvcGxhc2lhIiwxXSxbIkFtZWxvZ2VuZXNpcyBJbXBlcmZlY3RhIiwxXSxbIkFtbmlv
dGljIENvbnN0cmljdGlvbiBCYW5kcyIsMV0sWyJBbmVuY2VwaGFseSIsMV0sWyJBcGVydCBTeW5k
cm9tZSIsMV0sWyJCZXpvYXIiLDFdLFsiSW5jb250aW5lbnRpYSBQaWdtZW50aSIsMV0sWyJCbG91
bnQncyBEaXNlYXNlIiwxXSxbIkJvd2xlZ3MiLDFdLFsiQ2FuYXZhbiBEaXNlYXNlIiwxXSxbIkNh
cHV0IFN1Y2NlZGFuZXVtIiwxXSxbIkZyYWN0dXJlZCBDbGF2aWNsZSBpbiB0aGUgTmV3Ym9ybiIs
MV0sWyJDbGVpZG9jcmFuaWFsIER5c29zdG9zaXMiLDFdLFsiQ3Jhbmlvc3lub3N0b3NpcyIsMV0s
WyJDcmFuaW90YWJlcyIsMV0sWyJDaGlja2VucG94IiwxXSxbIkNyaSBEdSBDaGF0IFN5bmRyb21l
IiwxXSxbIkh5cGVydml0YW1pbm9zaXMgRCIsMV0sWyJGZXRhbCBUcmFuc2Z1c2lvbiBTeW5kcm9t
ZSIsMV0sWyJNZWNvbml1bSBBc3BpcmF0aW9uIChJbmhhbGF0aW9uKSIsMV0sWyJJbmZhbnQgb2Yg
RGlhYmV0aWMgTW90aGVyIiwxXSxbIk1hdGVybmFsIERlcHJpdmF0aW9uIFN5bmRyb21lIiwxXSxb
Ik1lYXRhbCBTdGVub3NpcyIsMV0sWyJSaCBJbmNvbXBhdGliaWxpdHkiLDFdLFsiTWV0YXRhcnN1
cyBBZGR1Y3R1cyIsMV0sWyJEaWFzdGFzaXMgUmVjdGkiLDFdLFsiRXBzdGVpbiBQZWFybHMiLDFd
LFsiS3dhc2hpb3Jrb3IiLDFdLFsiUHJhZGVyLVdpbGxpIFN5bmRyb21lIiwxXSxbIk5lb25hdGFs
IENvbmp1bmN0aXZpdGlzIiwxXSxbIlBpZXJyZSBSb2JpbiBTeW5kcm9tZSIsMV0sWyJEaXBodGhl
cmlhIiwxXSxbIkludGVyc3RpdGlhbCBLZXJhdGl0aXMiLDFdLFsiQ2VudHJhbCBTZXJvdXMgQ2hv
cm9pZG9wYXRoeSIsMV0sWyJOZXVyb25hbCBDZXJvaWQgTGlwb2Z1c2Npbm9zZXMgKE5DTFMpIiwx
XSxbIkNhdCBTY3JhdGNoIERpc2Vhc2UiLDFdLFsiQ29uZ2VuaXRhbCBDYXRhcmFjdCIsMV0sWyJT
dWJjb25qdW5jdGl2YWwgSGVtb3JyaGFnZSIsMV0sWyJSZXRpbm9wYXRoeSBvZiBQcmVtYXR1cml0
eSIsMV0sWyJCbGVwaGFyaXRpcyIsMV0sWyJHbGF1Y29tYSIsMV0sWyJNZWlib21pYW5pdGlzIiwx
XSxbIk9wdGljIE5lcnZlIEF0cm9waHkiLDFdLFsiT3JiaXRhbCBQc2V1ZG90dW1vciIsMV0sWyJE
YWNyeW9hZGVuaXRpcyIsMV0sWyJDYXZlcm5vdXMgU2ludXMgVGhyb21ib3NpcyIsMV0sWyJHbG9t
dXMgSnVndWxhcmUgVHVtb3IiLDFdLFsiR2xvc3NvcGhhcnluZ2VhbCBOZXVyYWxnaWEiLDFdLFsi
TXVjb3VzIEN5c3QiLDFdLFsiVG9uZ3VlIFRpZSIsMV0sWyJOYXNhbCBQb2x5cHMiLDFdLFsiQ2hv
YW5hbCBBdHJlc2lhIiwxXSxbIkxhcnluZ2VhbCBOZXJ2ZSBEYW1hZ2UiLDFdLFsiU2FsaXZhcnkg
R2xhbmQgRGlzb3JkZXJzIiwxXSxbIlJhbXNheSBIdW50IFN5bmRyb21lIiwxXSxbIlZhc29tb3Rv
ciBSaGluaXRpcyIsMV0sWyJFbmxhcmdlZCBBZGVub2lkcyIsMV0sWyJPc3Rlb3NhcmNvbWEiLDFd
LFsiTWV0aHlsbWVyY3VyeSBQb2lzb25pbmciLDFdLFsiRm9vZCBQb2lzb25pbmciLDFdLFsiQWFy
c2tvZyBTeW5kcm9tZSIsMV0sWyJMZXNjaC1OeWhhbiBTeW5kcm9tZSIsMV0sWyJOb29uYW4gU3lu
ZHJvbWUiLDFdLFsiUHJvZ2VyaWEiLDFdLFsiQ29uZ2VuaXRhbCBSdWJlbGxhIiwxXSxbIlRyZWFj
aGVyLUNvbGxpbnMgU3luZHJvbWUiLDFdLFsiVHJpc29teSAxMyIsMV0sWyJUcmlzb215IDE4Iiwx
XSxbIkFhc2UgU3luZHJvbWUiLDFdLFsiQWRyZW5vY29ydGljYWwgQ2FyY2lub21hIiwxXSxbIkFp
Y2FyZGkgU3luZHJvbWUiLDFdLFsiQWxzdHImIzI0NjttIFN5bmRyb21lIiwxXSxbIkJhc3Nlbi1L
b3JuendlaWcgU3luZHJvbWUiLDFdLFsiRWxsaXMtVmFuIENyZXZlbGQgU3luZHJvbWUiLDFdLFsi
RnJhZ2lsZSBYIFN5bmRyb21lIiwxXSxbIkludGVyc2V4IiwxXSxbIlByZXZlbnRpdmUgSGVhbHRo
IENhcmUiLDVdLFsiVHJhdmVsZXIncyBHdWlkZSB0byBBdm9pZGluZyBJbmZlY3Rpb3VzIERpc2Vh
c2VzIiw1XSxbIlNhZmUgRHJpdmluZyBmb3IgVGVlbnMiLDVdLFsiU2FmZXR5Iiw1XSxbIkRvY3Rv
ciBvZiBNZWRpY2luZSBQcm9mZXNzaW9uIE1EIiw1XSxbIkNob29zaW5nIGEgUHJpbWFyeSBDYXJl
IFByb3ZpZGVyIiw1XSxbIkxvc2luZyBXZWlnaHQiLDVdLFsiUGh5c2ljYWwgQWN0aXZpdHkiLDVd
LFsiV2VpZ2h0IE1hbmFnZW1lbnQiLDVdLFsiQWxjb2hvbCBVc2UiLDVdLFsiRHJ1ZyBBYnVzZSIs
NV0sWyJCaXJ0aCBDb250cm9sIGFuZCBGYW1pbHkgUGxhbm5pbmciLDVdLFsiUHViZXJ0eSBhbmQg
QWRvbGVzY2VuY2UiLDVdLFsiU2V4dWFsIFByb2JsZW1zIE92ZXJ2aWV3Iiw1XSxbIkluaGliaXRl
ZCBTZXh1YWwgRGVzaXJlIiwxXSxbIkRlbGF5ZWQgRWphY3VsYXRpb24iLDFdLFsiUmFwZSIsNV0s
WyJHZXR0aW5nIGEgUHJlc2NyaXB0aW9uIEZpbGxlZCIsNV0sWyJEZW50YWwgQ2FyZSAtIEFkdWx0
Iiw1XSxbIkFiZG9taW5hbCBQYWluIERpYWdub3NpcyIsNV0sWyJDaGlsZCBTYWZldHkgU2VhdHMi
LDVdLFsiU21va2luZyAtIFRpcHMgb24gSG93IHRvIFF1aXQiLDVdLFsiQnJlYXN0IEx1bXAgU2Vs
ZiBFeGFtIiw1XSxbIldlaWdodCBQcm9ibGVtcyBhbmQgQ2hpbGRyZW4iLDVdLFsiQWRvbGVzY2Vu
dCBEZXZlbG9wbWVudCIsNV0sWyJJbmZhbnQgLSBOZXdib3JuIERldmVsb3BtZW50Iiw1XSxbIlRv
ZGRsZXIgRGV2ZWxvcG1lbnQiLDVdLFsiUHJlc2Nob29sZXIgRGV2ZWxvcG1lbnQiLDVdLFsiSW1t
dW5pemF0aW9ucyAtIEdlbmVyYWwgT3ZlcnZpZXciLDVdLFsiSW5mbHVlbnphIFZhY2NpbmUiLDVd
LFsiVGV0YW51cyAtIFZhY2NpbmUiLDVdLFsiU21va2luZyBhbmQgU21va2VsZXNzIFRvYmFjY28i
LDVdLFsiQ2hhZmluZyIsNV0sWyJSZW1lbWJlcmluZyBUaXBzIiw1XSxbIkdlbmV0aWNzIiw1XSxb
IkF1dG9zb21hbCBEb21pbmFudCIsNV0sWyJTZXgtTGlua2VkIERvbWluYW50Iiw1XSxbIlNleC1M
aW5rZWQgUmVjZXNzaXZlIiw1XSxbIkF1dG9zb21hbCBSZWNlc3NpdmUiLDVdLFsiR2VuZXRpYyBD
b3Vuc2VsaW5nIGFuZCBQcmVuYXRhbCBEaWFnbm9zaXMiLDVdLFsiVG9kZGxlciBUZXN0IG9yIFBy
b2NlZHVyZSBQcmVwYXJhdGlvbiIsNV0sWyJTY2hvb2wgQWdlIFRlc3Qgb3IgUHJvY2VkdXJlIFBy
ZXBhcmF0aW9uIiw1XSxbIkVhcmx5IENoaWxkaG9vZCBDYXJpZXMiLDVdLFsiQ2hhcmxleSBIb3Jz
ZSIsMV0sWyJDb2xvbiBDYW5jZXIgU2NyZWVuaW5nIiw1XSxbIkRpYWJldGVzIFJpc2sgRmFjdG9y
cyIsNV0sWyJGb29kIEd1aWRlIFB5cmFtaWQiLDVdLFsiRGlldCBhbmQgRGlzZWFzZSIsNV0sWyJI
ZWFydGJ1cm4gUHJldmVudGlvbiIsNV0sWyJJbnNvbW5pYSBDb25jZXJucyIsNV0sWyJNYW1tb2dy
YW0gLSBSZWNvbW1lbmRlZCBBZ2UiLDVdLFsiUGFpbiBNZWRpY2F0aW9ucyIsNV0sWyJQaHlzaWNh
bCBFeGFtIEZyZXF1ZW5jeSIsNV0sWyJWaXRhbWluIEMgYW5kIENvbGRzIiw1XSxbIkhvbWUgUGhh
cm1hY3kiLDVdLFsiRGlzY2lwbGluZSIsNV0sWyJBZHJlbmFsIEdsYW5kcyIsNV0sWyJBbW5pb3Rp
YyBGbHVpZCIsNV0sWyJCbGFkZGVyIE91dGxldCBPYnN0cnVjdGlvbiIsMV0sWyJTdGVudCIsNl0s
WyJDaHJvbW9zb21lIiw1XSxbIkVsZWN0cm9jYXV0ZXJpemF0aW9uIiw1XSxbIkdlbmVzIiw1XSxb
IkhlYWx0aHkgTGl2aW5nIiw1XSxbIlZpdGFtaW5zIiwzXSxbIlZpdGFtaW4gQSIsM10sWyJUaGlh
bWluZSIsM10sWyJWaXRhbWluIEI2IiwzXSxbIlZpdGFtaW4gQjEyIiwzXSxbIlZpdGFtaW4gQyIs
M10sWyJWaXRhbWluIEQiLDNdLFsiVml0YW1pbiBFIiwzXSxbIlZpdGFtaW4gSyIsM10sWyJGb2xp
YyBBY2lkIChGb2xhdGUpIiwzXSxbIk5pYWNpbiIsM10sWyJQYW50b3RoZW5pYyBBY2lkIGFuZCBC
aW90aW4iLDNdLFsiUmlib2ZsYXZpbiIsM10sWyJDYWxjaXVtIGluIERpZXQiLDNdLFsiUG90YXNz
aXVtIGluIERpZXQiLDNdLFsiU2VsZW5pdW0gaW4gRGlldCIsM10sWyJTb2RpdW0gaW4gRGlldCIs
M10sWyJaaW5jIGluIERpZXQiLDNdLFsiQ2hsb3JpZGUgaW4gRGlldCIsM10sWyJDaHJvbWl1bSBp
biBEaWV0IiwzXSxbIkNvcHBlciBpbiBEaWV0IiwzXSxbIkZsdW9yaWRlIGluIERpZXQiLDNdLFsi
SW9kaW5lIGluIERpZXQiLDNdLFsiSXJvbiBpbiBEaWV0IiwzXSxbIk1hZ25lc2l1bSBpbiBEaWV0
IiwzXSxbIlBob3NwaG9ydXMgaW4gRGlldCIsM10sWyJGb29kIEphZ3MiLDNdLFsiSHlwZXJhY3Rp
dml0eSBhbmQgU3VnYXIiLDNdLFsiTGVhZCAtIE51dHJpdGlvbmFsIENvbnNpZGVyYXRpb25zIiwz
XSxbIkFmbGF0b3hpbiIsM10sWyJQZXN0aWNpZGVzIiwzXSxbIkdlbmV0aWNhbGx5IEVuZ2luZWVy
ZWQgRm9vZHMiLDNdLFsiVHJhdmVsZXIncyBEaWFycmhlYSBEaWV0IiwzXSxbIkZvb2QgU2FmZXR5
IiwzXSxbIkZvb2QgQWRkaXRpdmVzIiwzXSxbIkhlYXJ0IERpc2Vhc2UgYW5kIERpZXQiLDNdLFsi
Q3lzdGljIEZpYnJvc2lzIC0gTnV0cml0aW9uYWwgQ29uc2lkZXJhdGlvbnMiLDNdLFsiSW5ib3Ju
IEVycm9ycyBvZiBNZXRhYm9saXNtIiwzXSxbIkRpZXQgLSBDYW5jZXIgVHJlYXRtZW50IiwzXSxb
IkRpYWJldGVzIERpZXQiLDNdLFsiRGlldCAtIExpdmVyIERpc2Vhc2UiLDNdLFsiRGlldCBmb3Ig
UGVvcGxlIFdpdGggQ2hyb25pYyBLaWRuZXkgRGlzZWFzZSIsM10sWyJDZWxpYWMgRGlzZWFzZSAt
IE51dHJpdGlvbmFsIENvbnNpZGVyYXRpb25zIiwzXSxbIlN3ZWV0ZW5lcnMiLDNdLFsiQ2FmZmVp
bmUgaW4gdGhlIERpZXQiLDNdLFsiQWxjb2hvbCBhbmQgRGlldCIsM10sWyJJbmZhbnQgRm9ybXVs
YXMiLDNdLFsiQmFsYW5jZWQgRGlldCIsM10sWyJCcmVhc3QgTWlsayIsM10sWyJPdmVyY29taW5n
IEJyZWFzdGZlZWRpbmcgUHJvYmxlbXMiLDNdLFsiQnJlYXN0ZmVlZGluZyBUaXBzIiwzXSxbIkJy
ZWFzdC1GZWVkaW5nIE1vdGhlcnMgLSBTZWxmLUNhcmUiLDNdLFsiQWdlLUFwcHJvcHJpYXRlIERp
ZXQgZm9yIENoaWxkcmVuIiwzXSxbIkRpZXQgLSBDYWxvcmllcyIsM10sWyJGb29kIExhYmVsaW5n
IiwzXSxbIkRpZXQgLSBDb25zdGlwYXRpb24iLDNdLFsiQ29va2luZyBVdGVuc2lscyBhbmQgTnV0
cml0aW9uIiwzXSxbIkZhc3QgRm9vZHMiLDNdLFsiVmVnZXRhcmlhbmlzbSIsM10sWyJQcm90ZWlu
IGluIERpZXQiLDNdLFsiRmF0IiwzXSxbIkNhcmJvaHlkcmF0ZXMiLDNdLFsiRmliZXIiLDNdLFsi
V2F0ZXIgaW4gRGlldCIsM10sWyJDaG9sZXN0ZXJvbCIsM10sWyJMZWFkIFBvaXNvbmluZyIsNF0s
WyJNZXJjdXJpYyBDaGxvcmlkZSIsNF0sWyJNZXJjdXJpYyBPeGlkZSIsNF0sWyJNZXJjdXJ5Iiw0
XSxbIk5hcGh0aGFsZW5lIiw0XSxbIk5pdHJpYyBBY2lkIiw0XSxbIk94YWxpYyBBY2lkIiw0XSxb
IkFjZXRvbmUgUG9pc29uaW5nIiw0XSxbIlBvdGFzc2l1bSBDYXJib25hdGUiLDRdLFsiUG90YXNz
aXVtIEh5ZHJveGlkZSIsNF0sWyJTb2RpdW0gQm9yYXRlIFBvaXNvbmluZyIsNF0sWyJTb2RpdW0g
Q2FyYm9uYXRlIFBvaXNvbmluZyIsNF0sWyJTb2RpdW0gSHlkcm94aWRlIFBvaXNvbmluZyIsNF0s
WyJTb2RpdW0gSHlwb2NobG9yaXRlIFBvaXNvbmluZyIsNF0sWyJTb2RpdW0gUGhvc3BoYXRlIFBv
aXNvbmluZyIsNF0sWyJTb2RpdW0gU2FsaWN5bGF0ZSBPdmVyZG9zZSIsNF0sWyJBbW1vbml1bSBI
eWRyb3hpZGUgUG9pc29uaW5nIiw0XSxbIlN1bGZ1cmljIEFjaWQgUG9pc29uaW5nIiw0XSxbIkNo
bG9ybWVyb2RyaW4gT3ZlcmRvc2UiLDRdLFsiQ29iYWx0Iiw0XSxbIkNvcHBlciBQb2lzb25pbmci
LDRdLFsiSHlkcm9jaGxvcmljIEFjaWQiLDRdLFsiSHlkcm9mbHVvcmljIEFjaWQgUG9pc29uaW5n
Iiw0XSxbIk1vcnBoaW5lIE92ZXJkb3NlIiw0XSxbIk1vdHJpbiBPdmVyZG9zZSIsNF0sWyJOYXBy
b3hlbiBTb2RpdW0gT3ZlcmRvc2UiLDRdLFsiUGVudG9iYXJiaXRhbCBPdmVyZG9zZSIsNF0sWyJO
aWNvdGluZSIsNF0sWyJOb3JwcmFtaW4gT3ZlcmRvc2UiLDRdLFsiT3hhemVwYW0gT3ZlcmRvc2Ui
LDRdLFsiUGFyYS1BbWlub2JlbnpvaWMgQWNpZCBQb2lzb25pbmciLDRdLFsiUGVudGF6b2NpbmUg
T3ZlcmRvc2UiLDRdLFsiUGVyY29jZXQgT3ZlcmRvc2UiLDRdLFsiUGVyY29kYW4gT3ZlcmRvc2Ui
LDRdLFsiQW50aWRpYXJyaGVhbCBBZ2VudCBPdmVyZG9zZSIsNF0sWyJQZXJpYWN0aW4gT3ZlcmRv
c2UiLDRdLFsiUGV0cm9sZXVtIEplbGx5IE92ZXJkb3NlIiw0XSxbIlBoZW5jeWNsaWRpbmUgT3Zl
cmRvc2UiLDRdLFsiUHJvbWV0aGF6aW5lIE92ZXJkb3NlIiw0XSxbIlBoZW5pbmRhbWluZSBPdmVy
ZG9zZSIsNF0sWyJQaGVuaXJhbWluZSBPdmVyZG9zZSIsNF0sWyJQaGVub2JhcmJpdGFsIE92ZXJk
b3NlIiw0XSxbIlBoZW55bGJ1dGF6b25lIE92ZXJkb3NlIiw0XSxbIlBoZW55dG9pbiBPdmVyZG9z
ZSIsNF0sWyJQaXJveGljYW0gT3ZlcmRvc2UiLDRdLFsiUHJvcG94eXBoZW5lIE92ZXJkb3NlIiw0
XSxbIlByb3B5bCBBbGNvaG9sIiw0XSxbIkNhbGNpdW0gQ2FyYm9uYXRlIFdpdGggTWFnbmVzaXVt
IEFudGFjaWQgT3ZlcmRvc2UiLDRdLFsiQXNwaXJpbiBPdmVyZG9zZSIsNF0sWyJTZWNvYmFyYml0
YWwgT3ZlcmRvc2UiLDRdLFsiRG94ZXBpbiBQb2lzb25pbmciLDRdLFsiU29kaXVtIEJpc3VsZmF0
ZSIsNF0sWyJTb3JiaWMgQWNpZCBQb2lzb25pbmciLDRdLFsiU3VsaW5kYWMgT3ZlcmRvc2UiLDRd
LFsiVGhpb3JpZGF6aW5lIFBvaXNvbmluZyIsNF0sWyJUb2xtZXRpbiBQb2lzb25pbmciLDRdLFsi
VHJhem9kb25lIEh5ZHJvY2hsb3JpZGUgT3ZlcmRvc2UiLDRdLFsiQWNldGFtaW5vcGhlbiBhbmQg
Q29kZWluZSBPdmVyZG9zZSIsNF0sWyJCYWNpdHJhY2luIE92ZXJkb3NlIiw0XSxbIkNhbXBob3Ig
T3ZlcmRvc2UiLDRdLFsiQmFjaXRyYWNpbiBaaW5jIE92ZXJkb3NlIiw0XSxbIlppbmMiLDRdLFsi
WmluYyBPeGlkZSBPdmVyZG9zZSIsNF0sWyJBbWlub3BoeWxsaW5lIE92ZXJkb3NlIiw0XSxbIlRo
aWF6aWRlIE92ZXJkb3NlIiw0XSxbIkJldGEgQmxvY2tlcnMgT3ZlcmRvc2UiLDRdLFsiQ2FmZmVp
bmUgT3ZlcmRvc2UiLDRdLFsiQ2FsY2l1bSBBbnRhZ29uaXN0IE92ZXJkb3NlIiw0XSxbIkNhcmRp
YWMgR2x5Y29zaWRlIE92ZXJkb3NlIiw0XSxbIkNvcnRpY29zdGVyb2lkcyBPdmVyZG9zZSIsNF0s
WyJTcG9ydHMgQ3JlYW0gT3ZlcmRvc2UiLDRdLFsiRXN0cm9nZW4gT3ZlcmRvc2UiLDRdLFsiSDIg
UmVjZXB0b3IgQW50YWdvbmlzdHMgUG9pc29uaW5nIiw0XSxbIkxheGF0aXZlIE92ZXJkb3NlIiw0
XSxbIk5pdHJvZ2x5Y2VyaW4gT3ZlcmRvc2UiLDRdLFsiT3JhbCBIeXBvZ2x5Y2VtaWNzIE92ZXJk
b3NlIiw0XSxbIlBpcGVyb255bCBCdXRveGlkZSBXaXRoIFB5cmV0aHJpbnMgUG9pc29uaW5nIiw0
XSxbIlRldHJhaHlkcm96b2xpbmUgUG9pc29uaW5nIiw0XSxbIlRoeXJvaWQgUHJlcGFyYXRpb24g
T3ZlcmRvc2UiLDRdLFsiV2FydCBQcmVwYXJhdGlvbnMgUG9pc29uaW5nIiw0XSxbIkFkcmVuZXJn
aWMgQnJvbmNob2RpbGF0b3JzIE92ZXJkb3NlIiw0XSxbIlJvZGVudGljaWRlIEFudGljb2FndWxh
bnQgUG9pc29uaW5nIiw0XSxbIk11bHRpcGxlIFZpdGFtaW4gT3ZlcmRvc2UiLDRdLFsiUGhlbm90
aGlhemluZSBPdmVyZG9zZSIsNF0sWyJBY2V0YW1pbm9waGVuIE92ZXJkb3NlIiw0XSxbIkJpcnRo
IENvbnRyb2wgUGlsbHMgT3ZlcmRvc2UiLDRdLFsiQnJvbXBoZW5pcmFtaW5lIE92ZXJkb3NlIiw0
XSxbIkJ1dGF6b2xpZGluIE92ZXJkb3NlIiw0XSxbIkNhbGNpdW0gQ2FyYm9uYXRlIE92ZXJkb3Nl
Iiw0XSxbIkNhbXBoby1QaGVuaXF1ZSBPdmVyZG9zZSIsNF0sWyJDaGxvcmRpYXplcG94aWRlIE92
ZXJkb3NlIiw0XSxbIkNobG9ycHJvbWF6aW5lIE92ZXJkb3NlIiw0XSxbIkFjZXRvbWVyb2N0b2wg
T3ZlcmRvc2UiLDRdLFsiQ2xpbml0ZXN0IFRhYmxldHMgUG9pc29uaW5nIiw0XSxbIkNvZGVpbmUg
T3ZlcmRvc2UiLDRdLFsiQ29tcGF6aW5lIE92ZXJkb3NlIiw0XSxbIkNvbnRhYyBPdmVyZG9zZSIs
NF0sWyJDeXByb2hlcHRhZGluZSBPdmVyZG9zZSIsNF0sWyJEZXNpcHJhbWluZSBIeWRyb2NobG9y
aWRlIE92ZXJkb3NlIiw0XSxbIkRleHRyb21ldGhvcnBoYW4gT3ZlcmRvc2UiLDRdLFsiRGlhemVw
YW0gT3ZlcmRvc2UiLDRdLFsiRGljbG9mZW5hYyBTb2RpdW0gT3ZlcmRvc2UiLDRdLFsiQW1pdHJp
cHR5bGluZSBIeWRyb2NobG9yaWRlIE92ZXJkb3NlIiw0XSxbIkRpbGFudGluIE92ZXJkb3NlIiw0
XSxbIkh5ZHJvbW9ycGhvbmUgT3ZlcmRvc2UiLDRdLFsiRGltZW5oeWRyaW5hdGUgT3ZlcmRvc2Ui
LDRdLFsiRGlwaGVuaHlkcmFtaW5lIE92ZXJkb3NlIiw0XSxbIkV0aGFub2wgT3ZlcmRvc2UiLDRd
LFsiQW1pdHJpcHR5bGluZSBhbmQgUGVycGhlbmF6aW5lIE92ZXJkb3NlIiw0XSxbIkV1Y2FseXB0
dXMgT2lsIE92ZXJkb3NlIiw0XSxbIkV1Z2Vub2wgT2lsIE92ZXJkb3NlIiw0XSxbIkZlbm9wcm9m
ZW4gQ2FsY2l1bSBPdmVyZG9zZSIsNF0sWyJGbHVvcmlkZSBPdmVyZG9zZSIsNF0sWyJIeWRyb2dl
biBQZXJveGlkZSBQb2lzb25pbmciLDRdLFsiSHlkcm94eXppbmUgT3ZlcmRvc2UiLDRdLFsiSWJ1
cHJvZmVuIE92ZXJkb3NlIiw0XSxbIkltaXByYW1pbmUgT3ZlcmRvc2UiLDRdLFsiSW5kb21ldGhh
Y2luIE92ZXJkb3NlIiw0XSxbIklvZGluZSBPdmVyZG9zZSIsNF0sWyJJcm9uIE92ZXJkb3NlIiw0
XSxbIklzb3Byb3Bhbm9sIE92ZXJkb3NlIiw0XSxbIktldG9wcm9mZW4gT3ZlcmRvc2UiLDRdLFsi
TGFub2xpbiBQb2lzb25pbmciLDRdLFsiTW91dGh3YXNoIE92ZXJkb3NlIiw0XSxbIkxpdGhpdW0g
T3ZlcmRvc2UiLDRdLFsiTG9tb3RpbCBPdmVyZG9zZSIsNF0sWyJIeWRyb2NvZG9uZSBhbmQgQWNl
dGFtaW5vcGhlbiBPdmVyZG9zZSIsNF0sWyJNZWNsb2ZlbmFtYXRlIE92ZXJkb3NlIiw0XSxbIk1l
bnRob2wgT3ZlcmRvc2UiLDRdLFsiTWVwZXJpZGluZSBIeWRyb2NobG9yaWRlIE92ZXJkb3NlIiw0
XSxbIk1lcHJvYmFtYXRlIE92ZXJkb3NlIiw0XSxbIk1lcnRoaW9sYXRlIFBvaXNvbmluZyIsNF0s
WyJNZXRoYWRvbmUgT3ZlcmRvc2UiLDRdLFsiTWV0aGFub2wgT3ZlcmRvc2UiLDRdLFsiTWV0aGFw
eXJpbGVuZSBIeWRyb2NobG9yaWRlIE92ZXJkb3NlIiw0XSxbIk1ldGh5bCBTYWxpY3lsYXRlIE92
ZXJkb3NlIiw0XSxbIk1pbmVyYWwgT2lsIE92ZXJkb3NlIiw0XSxbIlBlcHBlcm1pbnQgT2lsIE92
ZXJkb3NlIiw0XSxbIlNhc3NhZnJhcyBPaWwgT3ZlcmRvc2UiLDRdLFsiQ29sZCBXYXZlIExvdGlv
biBQb2lzb25pbmciLDRdLFsiQ29sb2duZXMiLDRdLFsiQ3V0aWNsZSBSZW1vdmVyIFBvaXNvbmlu
ZyIsNF0sWyJEZW9kb3JhbnQgUG9pc29uaW5nIiw0XSxbIkRlcGlsYXRvcmllcyIsNF0sWyJBZnRl
ciBTaGF2ZXMiLDRdLFsiRmFjZSBQb3dkZXIgUG9pc29uaW5nIiw0XSxbIkhhaXIgQmxlYWNoIFBv
aXNvbmluZyIsNF0sWyJIYWlyIER5ZSBQb2lzb25pbmciLDRdLFsiSGFpciBTcHJheSBQb2lzb25p
bmciLDRdLFsiSGFpciBTdHJhaWdodGVuZXIgUG9pc29uaW5nIiw0XSxbIkhhaXIgVG9uaWMiLDRd
LFsiSGFuZCBMb3Rpb24gUG9pc29uaW5nIiw0XSxbIkFsb2UiLDRdLFsiSW5jZW5zZSIsNF0sWyJM
YXZlbmRlciBPaWwiLDRdLFsiU2FjaGV0IFBvaXNvbmluZyIsNF0sWyJTaGF2aW5nIENyZWFtIFBv
aXNvbmluZyIsNF0sWyJTdW5zY3JlZW4gLSBTd2FsbG93aW5nIiw0XSxbIlRhbGN1bSBQb3dkZXIi
LDRdLFsiQmVuemVuZSBJbmdlc3Rpb24iLDRdLFsiTmFpbCBQb2xpc2ggUG9pc29uaW5nIiw0XSxb
IkxpcCBNb2lzdHVyaXplciBQb2lzb25pbmciLDRdLFsiQXV0b21hdGljIERpc2h3YXNoZXIgU29h
cCAtIFBvaXNvbmluZyIsNF0sWyJPaWwtQmFzZWQgUGFpbnQgUG9pc29uaW5nIiw0XSxbIlBhcmFm
ZmluIFBvaXNvbmluZyIsNF0sWyJQaG90b2dyYXBoaWMgRml4YXRpdmUgUG9pc29uaW5nIiw0XSxb
IlBpbmUgT2lsIFBvaXNvbmluZyIsNF0sWyJQbGFzdGljIENhc3RpbmcgUmVzaW4gUG9pc29uaW5n
Iiw0XSxbIlBsYXN0aWMgUmVzaW4gSGFyZGVuZXIgUG9pc29uaW5nIiw0XSxbIlJlZnJpZ2VyYW50
IFBvaXNvbmluZyIsNF0sWyJTaGFtcG9vIC0gU3dhbGxvd2luZyIsNF0sWyJCYWtpbmcgUG93ZGVy
IE92ZXJkb3NlIiw0XSxbIlNvYXAgSW5nZXN0aW9uIiw0XSxbIlN0YXJjaCBJbmdlc3Rpb24iLDRd
LFsiU3RlYW0gSXJvbiBDbGVhbmVyIiw0XSxbIlRvaWxldCBCb3dsIENsZWFuZXJzIGFuZCBEZW9k
b3JpemVycyIsNF0sWyJUb290aHBhc3RlIE92ZXJkb3NlIiw0XSxbIlR1cnBlbnRpbmUgT2lsIiw0
XSxbIlZhcm5pc2giLDRdLFsiV2F0ZXJjb2xvcnMiLDRdLFsiQmFraW5nIFNvZGEgT3ZlcmRvc2Ui
LDRdLFsiV2luZG93IENsZWFuZXIiLDRdLFsiQW50aWZyZWV6ZSIsNF0sWyJBc3BoYWx0IENlbWVu
dCIsNF0sWyJEaWVzZWwgT2lsIiw0XSxbIkV0aHlsZW5lIEdseWNvbCIsNF0sWyJBbW1vbmlhIFBv
aXNvbmluZyIsNF0sWyJCZWVzd2F4IFBvaXNvbmluZyIsNF0sWyJCdWJibGUgQmF0aCBTb2FwcyIs
NF0sWyJCdWcgU3ByYXlzIiw0XSxbIkJ1dHRvbiBCYXR0ZXJpZXMiLDRdLFsiQ2FuZGxlIFBvaXNv
bmluZyIsNF0sWyJDYXN0b3IgT2lsIE92ZXJkb3NlIiw0XSxbIkNlZGFyIExlYWYgT2lsIiw0XSxb
IkFudGktUnVzdCBQcm9kdWN0cyIsNF0sWyJDaGFsayBQb2lzb25pbmciLDRdLFsiQ2hsb3JpbmUg
UG9pc29uaW5nIiw0XSxbIkNobG9yaW5hdGVkIExpbWUgUG9pc29uaW5nIiw0XSxbIkRldGVyZ2Vu
dHMiLDRdLFsiRHJhaW4gQ2xlYW5lcnMiLDRdLFsiRHJhaW4gT3BlbmluZyBBZ2VudHMiLDRdLFsi
RHJhaW5waXBlIENsZWFuZXJzIiw0XSxbIkR5ZSBSZW1vdmVyIFBvaXNvbmluZyIsNF0sWyJDbG90
aCBEeWUgUG9pc29uaW5nIiw0XSxbIkZ1cm5pdHVyZSBQb2xpc2giLDRdLFsiSW5rIFJlbW92ZXIi
LDRdLFsiSW5rIC0gV3JpdGluZyIsNF0sWyJKZXdlbHJ5IENsZWFuZXJzIiw0XSxbIkxhY3F1ZXIi
LDRdLFsiTWV0YWwgUG9saXNoZXMiLDRdLFsiTWlsZGV3IFJlbW92ZXIiLDRdLFsiTWluZXJhbCBT
cGlyaXRzIiw0XSxbIk92ZW4gQ2xlYW5lcnMiLDRdLFsiUGFpbnRzIC0gTGFjcXVlciBhbmQgVmFy
bmlzaCBSZW1vdmVycyIsNF0sWyJQYWludHMgLSBFbXVsc2lvbiBUeXBlIiw0XSxbIldpbmRzaGll
bGQgV2FzaGVyIEZsdWlkIiw0XSxbIkNhcmJvbiBNb25veGlkZSIsNF0sWyJEcnkgQ2VsbCBCYXR0
ZXJpZXMiLDRdLFsiR2Fzb2xpbmUiLDRdLFsiS2Vyb3NlbmUiLDRdLFsiVGFyIFJlbW92ZXIiLDRd
LFsiTWFnaWMgTWFya2VycyIsNF0sWyJNZXRhbCBDbGVhbmVyIiw0XSxbIldheCIsNF0sWyJQZW5j
aWwgRXJhc2VycyIsNF0sWyJQZW5jaWwgTGVhZCIsNF0sWyJSdWJiZXIgQ2VtZW50Iiw0XSxbIlNo
ZWxsYWMiLDRdLFsiU29sZGVyIiw0XSxbIldvb2QgU3RhaW5zIiw0XSxbIkhvdXNlaG9sZCBHbHVl
Iiw0XSxbIldvb2QgQWxjb2hvbCIsNF0sWyJDYXVsa2luZyBDb21wb3VuZHMiLDRdLFsiVG9sdWVu
ZS9YeWxlbmUiLDRdLFsiRmx1eCAoQWNpZCBTb2xkZXJpbmcpIFBvaXNvbmluZyIsNF0sWyJHbGF6
ZSBQb2lzb25pbmciLDRdLFsiSW5zZWN0aWNpZGUiLDRdLFsiTGlnaHRlciBGbHVpZCIsNF0sWyJN
YWxhdGhpb24gUG9pc29uaW5nIiw0XSxbIlByb3BhbmUiLDRdLFsiRGlhemlub24gUG9pc29uaW5n
Iiw0XSxbIlJvdW5kdXAgR3Jhc3MgYW5kIFdlZWQgS2lsbGVyIFBvaXNvbmluZyIsNF0sWyJTd2lt
bWluZyBQb29sIENsZWFuZXJzIiw0XSxbIkRpcnQgLSBTd2FsbG93aW5nIiw0XSxbIkZlcnRpbGl6
ZXJzIGFuZCBIb3VzZWhvbGQgUGxhbnQgRm9vZHMiLDRdLFsiQ2VudGlwZWRlIiw0XSxbIkZpcmUt
QW50Iiw0XSxbIkZ1bm5lbC1XZWIgU3BpZGVyIiw0XSxbIkplbGx5ZmlzaCIsNF0sWyJNaWxsaXBl
ZGVzIiw0XSxbIkJlZSBQb2lzb24iLDRdLFsiU2NvcnBpb24gRmlzaCIsNF0sWyJTY29ycGlvbnMi
LDRdLFsiUG9pc29uaW5nIC0gRmlzaCBhbmQgU2hlbGxmaXNoIiw0XSxbIlNuYWtlIEJpdGUgUG9p
c29uIiw0XSxbIlN0aW5ncmF5Iiw0XSxbIlN0b25lZmlzaCIsNF0sWyJUYXJhbnR1bGEgU3BpZGVy
Iiw0XSxbIlRpY2tzIiw0XSxbIldhc3AiLDRdLFsiQmxhY2sgV2lkb3cgU3BpZGVyIiw0XSxbIkJy
b3duIFJlY2x1c2UgU3BpZGVyIiw0XSxbIkNhdGVycGlsbGFycyIsNF0sWyJIZXJvaW4gT3ZlcmRv
c2UiLDRdLFsiQ2FsYWRpdW0iLDRdLFsiQ2FsbGEgTGlseSIsNF0sWyJEaWVmZmVuYmFjaGlhIiw0
XSxbIkVsZXBoYW50IEVhciIsNF0sWyJHcmFzcyIsNF0sWyJKYWNrLWluLXRoZS1QdWxwaXQiLDRd
LFsiSmVydXNhbGVtIENoZXJyeSBQb2lzb25pbmciLDRdLFsiUGhpbG9kZW5kcm9uIiw0XSxbIlBv
a2V3ZWVkIFBvaXNvbmluZyIsNF0sWyJQb3RhdG8gUG9pc29uaW5nIC0gR3JlZW4gVHViZXJzIGFu
ZCBTcHJvdXRzIiw0XSxbIlJodWJhcmIgTGVhdmVzIFBvaXNvbmluZyIsNF0sWyJZZXcgUG9pc29u
aW5nIiw0XSxbIkZveGdsb3ZlIFBvaXNvbmluZyIsNF0sWyJKaW1zb253ZWVkIiw0XSxbIkxpbHkt
b2YtdGhlLVZhbGxleSIsNF0sWyJNaXN0bGV0b2UiLDRdLFsiT2xlYW5kZXIiLDRdLFsiUG9pbnNl
dHRpYSIsNF0sWyJQb2lzb24gSXZ5IC0gT2FrIC0gU3VtYWMiLDRdLFsiQmxhY2sgTmlnaHRzaGFk
ZSBQb2lzb25pbmciLDRdLFsiQmx1ZSBOaWdodHNoYWRlIFBvaXNvbmluZyIsNF0sWyJDYWxjaXVt
IFBob3NwaGF0ZSIsNF0sWyJDYXJib2xpYyBBY2lkIiw0XSxbIkNobG9yb3BoeWxsIiw0XSxbIkN5
YW5vYWNyeWxhdGVzIiw0XSxbIkZ1ZWwgT2lsIiw0XSxbIk1lcmJyb21pbiBPdmVyZG9zZSIsNF0s
WyJNeXJpc3RpY2FsIE9pbCIsNF0sWyJQYXJhZGljaGxvcm9iZW56ZW5lIiw0XSxbIlN0b2RkYXJk
IFNvbHZlbnQgUG9pc29uaW5nIiw0XSxbIkNhbGNpdW0gSHlkcm94aWRlIiw0XSxbIkMtU2VjdGlv
biIsNl0sWyJBYm9ydGlvbiIsNl0sWyJUdWJhbCBMaWdhdGlvbiIsNl0sWyJEIGFuZCBDIiw2XSxb
Ikh5c3RlcmVjdG9teSIsNl0sWyJQZWx2aWMgTGFwYXJvc2NvcHkiLDZdLFsiQ2Vydml4IFRyZWF0
bWVudCAtIENyeW9zdXJnZXJ5Iiw2XSxbIkJyZWFzdCBMdW1wIFJlbW92YWwiLDZdLFsiTWFzdGVj
dG9teSIsNl0sWyJFcGlzaW90b215Iiw2XSxbIkFwcGVuZGVjdG9teSIsNl0sWyJQeWxvcm9wbGFz
dHkiLDZdLFsiRXhjaGFuZ2UgVHJhbnNmdXNpb24iLDZdLFsiR2FzdHJvc2NoaXNpcyBSZXBhaXIi
LDZdLFsiSGlhdGFsIEhlcm5pYSBSZXBhaXIiLDZdLFsiSW1wZXJmb3JhdGUgQW51cyBSZXBhaXIi
LDZdLFsiSW50ZXN0aW5hbCBPYnN0cnVjdGlvbiBSZXBhaXIiLDZdLFsiQWJkb21pbmFsIEV4cGxv
cmF0aW9uIiw2XSxbIk1lY2tlbCdzIERpdmVydGljdWxlY3RvbXkiLDZdLFsiR2FsbGJsYWRkZXIg
UmVtb3ZhbCIsNl0sWyJQYXJhdGh5cm9pZGVjdG9teSIsNl0sWyJSZWN0YWwgUHJvbGFwc2UgUmVw
YWlyIiw2XSxbIlRoeXJvaWQgR2xhbmQgUmVtb3ZhbCIsNl0sWyJUcmFjaGVvZXNvcGhhZ2VhbCBG
aXN0dWxhIGFuZCBFc29waGFnZWFsIEF0cmVzaWEgUmVwYWlyIiw2XSxbIlVtYmlsaWNhbCBIZXJu
aWEgUmVwYWlyIiw2XSxbIkRpYXBocmFnbWF0aWMgSGVybmlhIFJlcGFpciAtIENvbmdlbml0YWwi
LDZdLFsiRmVlZGluZyBUdWJlIEluc2VydGlvbiAtIEdhc3Ryb3N0b215Iiw2XSxbIk9tcGhhbG9j
ZWxlIFJlcGFpciIsNl0sWyJIZW1vcnJob2lkIFN1cmdlcnkiLDZdLFsiSGVybmlhIFJlcGFpciIs
Nl0sWyJMYXJnZSBCb3dlbCBSZXNlY3Rpb24iLDZdLFsiQ29sb3N0b215Iiw2XSxbIlNtYWxsIEJv
d2VsIFJlc2VjdGlvbiIsNl0sWyJTcGxlZW4gUmVtb3ZhbCIsNl0sWyJHYXN0cmVjdG9teSIsNl0s
WyJIZWFydCBCeXBhc3MgU3VyZ2VyeSIsNl0sWyJDaGVzdCBUdWJlIEluc2VydGlvbiIsNl0sWyJD
b25nZW5pdGFsIEhlYXJ0IERlZmVjdCBDb3JyZWN0aXZlIFN1cmdlcnkiLDZdLFsiUGVjdHVzIEV4
Y2F2YXR1bSBSZXBhaXIiLDZdLFsiQ2Fyb3RpZCBBcnRlcnkgU3VyZ2VyeSIsNl0sWyJWYXJpY29z
ZSBWZWluIFRoZXJhcHkiLDZdLFsiQW5naW9wbGFzdHkiLDZdLFsiSGVhcnQgVmFsdmUgU3VyZ2Vy
eSIsNl0sWyJUcmFjaGVvc3RvbXkiLDZdLFsiTHVuZyBTdXJnZXJ5Iiw2XSxbIkNhdGFyYWN0IFJl
bW92YWwiLDZdLFsiTGFzZXIgU3VyZ2VyeSIsNl0sWyJDb3JuZWFsIFN1cmdlcnkiLDZdLFsiUmV0
aW5hbCBEZXRhY2htZW50IFJlcGFpciIsNl0sWyJFeWUgTXVzY2xlIFJlcGFpciIsNl0sWyJCdW5p
b24gUmVtb3ZhbCIsNl0sWyJCb25lIEdyYWZ0Iiw2XSxbIkNsdWJmb290IFJlcGFpciIsNl0sWyJM
ZWcgTGVuZ3RoZW5pbmcvU2hvcnRlbmluZyIsNl0sWyJCb25lIEZyYWN0dXJlIFJlcGFpciIsNl0s
WyJSZXBsYW50YXRpb24gb2YgRGlnaXRzIiw2XSxbIlNwaW5hbCBGdXNpb24iLDZdLFsiUmVwYWly
IG9mIFdlYmJlZCBGaW5nZXJzIG9yIFRvZXMiLDZdLFsiVGVuZG9uIFJlcGFpciIsNl0sWyJTcGlu
YWwgU3VyZ2VyeSAtIENlcnZpY2FsIiw2XSxbIktuZWUgQXJ0aHJvc2NvcHkiLDZdLFsiU3BpbmFs
IFN1cmdlcnkgLSBMdW1iYXIiLDZdLFsiS25lZSBKb2ludCBSZXBsYWNlbWVudCIsNl0sWyJIaXAg
Sm9pbnQgUmVwbGFjZW1lbnQiLDZdLFsiQ2FycGFsIFR1bm5lbCBSZWxlYXNlIiw2XSxbIkV5ZWxp
ZCBMaWZ0Iiw2XSxbIkFiZG9taW5hbCBXYWxsIFN1cmdlcnkiLDZdLFsiQ2xlZnQgTGlwIGFuZCBQ
YWxhdGUgUmVwYWlyIiw2XSxbIkhlYWQgYW5kIEZhY2UgUmVjb25zdHJ1Y3Rpb24iLDZdLFsiSGVt
YW5naW9tYSBFeGNpc2lvbiIsNl0sWyJTa2luIEdyYWZ0Iiw2XSxbIkNvc21ldGljIE5vc2UgU3Vy
Z2VyeSIsNl0sWyJDb3NtZXRpYyBCcmVhc3QgU3VyZ2VyeSIsNl0sWyJMaXBvc3VjdGlvbiIsNl0s
WyJDaGluIEF1Z21lbnRhdGlvbiIsNl0sWyJTa2luLVNtb290aGluZyBTdXJnZXJ5Iiw2XSxbIkNv
c21ldGljIEVhciBTdXJnZXJ5Iiw2XSxbIkZhY2VsaWZ0Iiw2XSxbIkZvcmVoZWFkIExpZnQiLDZd
LFsiU2NhciBSZXZpc2lvbiIsNl0sWyJTdXJnZXJpZXMgZm9yIEZlbWFsZSBTdHJlc3MgSW5jb250
aW5lbmNlIiw2XSxbIlBhdGVudCBVcmFjaHVzIFJlcGFpciIsNl0sWyJUZXN0aWN1bGFyIFRvcnNp
b24gUmVwYWlyIiw2XSxbIlZhc2VjdG9teSIsNl0sWyJQcm9zdGF0ZSBSZW1vdmFsIiw2XSxbIkJs
YWRkZXIgRXhzdHJvcGh5IFJlcGFpciIsNl0sWyJDaXJjdW1jaXNpb24iLDZdLFsiSHlkcm9jZWxl
IFJlcGFpciIsNl0sWyJIeXBvc3BhZGlhcyBSZXBhaXIiLDZdLFsiS2lkbmV5IFJlbW92YWwiLDZd
LFsiVW5kZXNjZW5kZWQgVGVzdGljbGUgUmVwYWlyIiw2XSxbIkhlYXJ0IFRyYW5zcGxhbnQiLDZd
LFsiSGVhcnQtYW5kLUx1bmcgVHJhbnNwbGFudCIsNl0sWyJLaWRuZXkgVHJhbnNwbGFudCIsNl0s
WyJMaXZlciBUcmFuc3BsYW50Iiw2XSxbIlBhbmNyZWFzIFRyYW5zcGxhbnQiLDZdLFsiQ29ybmVh
bCBUcmFuc3BsYW50Iiw2XSxbIkJvbmUgTWFycm93IFRyYW5zcGxhbnQiLDZdLFsiTHVuZyBUcmFu
c3BsYW50Iiw2XSxbIkFkZW5vaWQgUmVtb3ZhbCIsNl0sWyJTZXB0b3BsYXN0eSIsNl0sWyJUb25z
aWxsZWN0b215Iiw2XSxbIkVhcmRydW0gUmVwYWlyIiw2XSxbIkVhciBUdWJlIEluc2VydGlvbiIs
Nl0sWyJFbWVyZ2VuY3kgQWlyd2F5IFB1bmN0dXJlIiw2XSxbIkJyYWluIFN1cmdlcnkiLDZdLFsi
VmVudHJpY3Vsb3Blcml0b25lYWwgU2h1bnQiLDZdLFsiTWVuaW5nb2NlbGUgUmVwYWlyIiw2XSxb
IkRlbGF5ZWQgR3Jvd3RoIiw3XSxbIlBvb3IgRmVlZGluZyBpbiBJbmZhbnRzIiw3XSxbIkNyeWlu
ZyAtIEV4Y2Vzc2l2ZSAwLTYgTW9udGhzIiw3XSxbIkhlYWRhY2hlIiw3XSxbIk5lY2sgUGFpbiIs
N10sWyJQcm9nbmF0aGlzbSIsN10sWyJGYWNlIFBhaW4iLDddLFsiRmFjaWFsIFBhcmFseXNpcyIs
N10sWyJWaXNpb24gUHJvYmxlbXMiLDddLFsiRXBpY2FudGhhbCBGb2xkcyIsN10sWyJFeWUgUmVk
bmVzcyIsN10sWyJFeWUgUGFpbiIsN10sWyJFeWVzIC0gQnVsZ2luZyIsN10sWyJFeWUgQnVybmlu
ZyAtIEl0Y2hpbmcgYW5kIERpc2NoYXJnZSIsN10sWyJFeWVsaWQgRHJvb3BpbmciLDddLFsiV2F0
ZXJ5IEV5ZXMiLDddLFsiRXllIE1vdmVtZW50cyAtIFVuY29udHJvbGxhYmxlIiw3XSxbIkNoZW1v
c2lzIiw3XSxbIlZpc2lvbiAtIE5pZ2h0IEJsaW5kbmVzcyIsN10sWyJCbGluZG5lc3MiLDddLFsi
UGhvdG9waG9iaWEiLDddLFsiRWFyIERpc2NoYXJnZSIsN10sWyJUaW5uaXR1cyIsN10sWyJIZWFy
aW5nIExvc3MiLDddLFsiRWFybG9iZSBDcmVhc2VzIiw3XSxbIkVhcmFjaGUiLDddLFsiVG9uZ3Vl
IFByb2JsZW1zIiw3XSxbIkRyb29saW5nIiw3XSxbIk5hc2FsIENvbmdlc3Rpb24iLDddLFsiVGFz
dGUgLSBJbXBhaXJlZCIsN10sWyJOYXNhbCBEaXNjaGFyZ2UiLDddLFsiU21lbGwgLSBJbXBhaXJl
ZCIsN10sWyJTb3JlIFRocm9hdCIsN10sWyJIb2Fyc2VuZXNzIG9yIENoYW5naW5nIFZvaWNlIiw3
XSxbIk5hc2FsIEZsYXJpbmciLDddLFsiTG93IE5hc2FsIEJyaWRnZSIsN10sWyJCcm9hZCBOYXNh
bCBCcmlkZ2UiLDddLFsiQnJlYXRoIE9kb3IiLDddLFsiTW91dGggU29yZXMiLDddLFsiU25lZXpp
bmciLDddLFsiVG9vdGggRm9ybWF0aW9uIC0gRGVsYXllZCBvciBBYnNlbnQiLDddLFsiQmxlZWRp
bmcgR3VtcyIsN10sWyJXaWRlbHkgU3BhY2VkIFRlZXRoIiw3XSxbIlRvb3RoIC0gQWJub3JtYWwg
U2hhcGUiLDddLFsiVG9vdGggLSBBYm5vcm1hbCBDb2xvcnMiLDddLFsiR3VtcyAtIFN3b2xsZW4i
LDddLFsiVG9vdGhhY2hlcyIsN10sWyJIaWNjdXBzIiw3XSxbIkJyZWF0aGluZyAtIFNsb3dlZCBv
ciBTdG9wcGVkIiw3XSxbIldoZWV6aW5nIiw3XSxbIkh5cGVydmVudGlsYXRpb24iLDddLFsiQ291
Z2giLDddLFsiQ291Z2hpbmcgVXAgQmxvb2QiLDddLFsiQnJlYXRoaW5nIFNvdW5kcyAtIEFibm9y
bWFsIChTdHJpZG9yKSIsN10sWyJCcmVhdGhpbmcgRGlmZmljdWx0eSIsN10sWyJCcmVhdGhpbmcg
RGlmZmljdWx0eSAtIEx5aW5nIERvd24iLDddLFsiUHVsc2UgLSBCb3VuZGluZyIsN10sWyJQdWxz
ZSAtIFdlYWsgb3IgQWJzZW50Iiw3XSxbIkNoZXN0IFBhaW4iLDddLFsiQmVsY2hpbmciLDddLFsi
SGVhcnQgUGFscGl0YXRpb25zIiw3XSxbIldlaWdodCBHYWluIC0gVW5pbnRlbnRpb25hbCIsN10s
WyJUaGlyc3QgLSBFeGNlc3NpdmUiLDddLFsiVGhpcnN0IC0gQWJzZW50Iiw3XSxbIkRyeSBFeWVz
Iiw3XSxbIkZhdGlndWUiLDddLFsiTWFsYWlzZSIsN10sWyJGZXZlciIsN10sWyJDaGlsbHMiLDdd
LFsiRmFpbnRpbmciLDddLFsiRGl6emluZXNzIiw3XSxbIkhlYXQgSW50b2xlcmFuY2UiLDddLFsi
Q29sZCBJbnRvbGVyYW5jZSIsN10sWyJZYXduaW5nIC0gRXhjZXNzaXZlIiw3XSxbIlN3b2xsZW4g
R2xhbmRzIiw3XSxbIk5lY2sgTHVtcCIsN10sWyJBcm1waXQgTHVtcCIsN10sWyJHcm9pbiBMdW1w
Iiw3XSxbIk9iZXNpdHkiLDddLFsiTW9yYmlkIE9iZXNpdHkiLDddLFsiU3dlbGxpbmciLDddLFsi
Rm9vdCwgTGVnLCBhbmQgQW5rbGUgU3dlbGxpbmciLDddLFsiRmFjaWFsIFN3ZWxsaW5nIiw3XSxb
Ik5vc2VibGVlZCIsN10sWyJXZWlnaHQgTG9zcyAtIFVuaW50ZW50aW9uYWwiLDddLFsiQmFjayBQ
YWluIC0gTG93Iiw3XSxbIlJpYiBDYWdlIFBhaW4iLDddLFsiU3VwZXJudW1lcmFyeSBOaXBwbGVz
Iiw3XSxbIkdyb2luIFBhaW4iLDddLFsiSHVtcCBCZWhpbmQgdGhlIFNob3VsZGVycyIsN10sWyJG
bGFuayBQYWluIiw3XSxbIkhlYXJ0YnVybiIsN10sWyJTd2FsbG93aW5nIERpZmZpY3VsdHkiLDdd
LFsiU3dhbGxvd2luZyBQYWluIG9yIEJ1cm5pbmciLDddLFsiTmF1c2VhIGFuZCBWb21pdGluZyIs
N10sWyJWb21pdGluZyBCbG9vZCIsN10sWyJNb3JuaW5nIFNpY2tuZXNzIiw3XSxbIkFiZG9taW5h
bCBQYWluIiw3XSxbIkFwcGV0aXRlIC0gRGVjcmVhc2VkIiw3XSxbIkFiZG9tZW4gLSBTd29sbGVu
Iiw3XSxbIkdhcyAtIEZsYXR1bGVuY2UiLDddLFsiQ29uc3RpcGF0aW9uIiw3XSxbIkRpYXJyaGVh
Iiw3XSxbIkFiZG9taW5hbCBGdWxsbmVzcyBQcmVtYXR1cmVseSBBZnRlciBNZWFscyIsN10sWyJT
dG9vbHMgLSBGbG9hdGluZyIsN10sWyJTdG9vbHMgLSBQYWxlIG9yIENsYXkgQ29sb3JlZCIsN10s
WyJCbG9vZHkgb3IgVGFycnkgU3Rvb2xzIiw3XSxbIlRlbmVzbXVzIiw3XSxbIlN0b29scyAtIEZv
dWwgU21lbGxpbmciLDddLFsiR2FzdHJvaW50ZXN0aW5hbCBCbGVlZGluZyIsN10sWyJBcHBldGl0
ZSAtIEluY3JlYXNlZCIsN10sWyJCb3dlbCBJbmNvbnRpbmVuY2UiLDddLFsiQWJkb21pbmFsIFJp
Z2lkaXR5Iiw3XSxbIkFiZG9taW5hbCBTb3VuZHMiLDddLFsiVXJpbmUgLSBCbG9vZHkiLDddLFsi
VXJpbmUgLSBBYm5vcm1hbCBDb2xvciIsN10sWyJGcmVxdWVudCBvciBVcmdlbnQgVXJpbmF0aW9u
Iiw3XSxbIlVyaW5hdGlvbiAtIEV4Y2Vzc2l2ZSBhdCBOaWdodCIsN10sWyJVcmluYXJ5IEluY29u
dGluZW5jZSIsN10sWyJVcmluYXRpb24gLSBEaWZmaWN1bHR5IFdpdGggRmxvdyIsN10sWyJVcmlu
YXRpb24gLSBCZWQgV2V0dGluZyIsN10sWyJVcmluYXRpb24gLSBQYWluZnVsIiw3XSxbIlVyaW5h
dGlvbiAtIEV4Y2Vzc2l2ZSBWb2x1bWUiLDddLFsiVXJpbmUgT3V0cHV0IC0gRGVjcmVhc2VkIiw3
XSxbIkV4Y2Vzc2l2ZSBvciBVbndhbnRlZCBIYWlyIGluIFdvbWVuIiw3XSxbIk1lbnN0cnVhdGlv
biAtIEFic2VudCIsN10sWyJQYWluZnVsIE1lbnN0cnVhbCBQZXJpb2RzIiw3XSxbIkZlbWFsZSBT
ZXh1YWwgRHlzZnVuY3Rpb24iLDddLFsiQnJlYXN0IFBhaW4iLDddLFsiQnJlYXN0IC0gUHJlbWVu
c3RydWFsIFRlbmRlcm5lc3MgYW5kIFN3ZWxsaW5nIiw3XSxbIk5pcHBsZSBEaXNjaGFyZ2UgLSBB
Ym5vcm1hbCIsN10sWyJCcmVhc3QgTHVtcCIsN10sWyJWYWdpbmFsIEJsZWVkaW5nIEJldHdlZW4g
UGVyaW9kcyIsN10sWyJTZXh1YWwgSW50ZXJjb3Vyc2UgLSBQYWluZnVsIiw3XSxbIlZhZ2luYWwg
RGlzY2hhcmdlIiw3XSxbIlZhZ2luYWwgSXRjaGluZyIsN10sWyJUZXN0aWNsZSBQYWluIiw3XSxb
IlNjcm90YWwgU3dlbGxpbmciLDddLFsiVGVzdGljbGUgTHVtcCIsN10sWyJCbG9vZCBpbiB0aGUg
U2VtZW4iLDddLFsiRXJlY3Rpb24gUHJvYmxlbXMiLDddLFsiR3luZWNvbWFzdGlhIiw3XSxbIlBl
bmlzIFBhaW4iLDddLFsiQW5rbGUgUGFpbiIsN10sWyJDbGF3IEZvb3QiLDddLFsiQ2xhdyBIYW5k
Iiw3XSxbIlNrZWxldGFsIExpbWIgQWJub3JtYWxpdGllcyIsN10sWyJTaG91bGRlciBQYWluIiw3
XSxbIkVsYm93IFBhaW4iLDddLFsiTGltaXRlZCBSYW5nZSBvZiBNb3Rpb24iLDddLFsiV2Vha25l
c3MiLDddLFsiV3Jpc3QgUGFpbiIsN10sWyJQb2x5ZGFjdHlseSIsN10sWyJTaGluIFNwbGludHMi
LDddLFsiTXVzY2xlIEFjaGVzIiw3XSxbIkhpcCBQYWluIiw3XSxbIkJvbmUgUGFpbiBvciBUZW5k
ZXJuZXNzIiw3XSxbIkhlZWwgUGFpbiIsN10sWyJMZWcgUGFpbiIsN10sWyJGb290IFBhaW4iLDdd
LFsiQmxvY2thZ2Ugb2YgTGVnIEFydGVyaWVzIiw3XSxbIkNvbnRyYWN0dXJlIERlZm9ybWl0eSIs
N10sWyJLbmVlIFBhaW4iLDddLFsiTXVzY2xlIEF0cm9waHkiLDddLFsiQWJub3JtYWwgUG9zdHVy
aW5nIiw3XSxbIk11c2NsZSBGdW5jdGlvbiBMb3NzIiw3XSxbIkZvY2FsIE5ldXJvbG9naWNhbCBE
ZWZpY2l0cyIsN10sWyJIYW5kIFRyZW1vciIsN10sWyJNdXNjbGUgQ3JhbXBzIiw3XSxbIkhhbmQg
b3IgRm9vdCBTcGFzbXMiLDddLFsiT3Bpc3Rob3Rvbm9zIiw3XSxbIk1vdmVtZW50IC0gVW5wcmVk
aWN0YWJsZSBvciBKZXJreSIsN10sWyJNb3ZlbWVudCAtIFVuY29udHJvbGxlZCBvciBTbG93Iiw3
XSxbIk1vdmVtZW50IC0gVW5jb29yZGluYXRlZCIsN10sWyJXYWxraW5nIEFibm9ybWFsaXRpZXMi
LDddLFsiU2VpenVyZXMiLDddLFsiTW92ZW1lbnQgLSBVbmNvbnRyb2xsYWJsZSIsN10sWyJDb25z
Y2lvdXNuZXNzIC0gRGVjcmVhc2VkIiw3XSxbIkFwcmF4aWEiLDddLFsiU3BlZWNoIEltcGFpcm1l
bnQgKEFkdWx0KSIsN10sWyJDb25mdXNpb24iLDddLFsiTnVtYm5lc3MgYW5kIFRpbmdsaW5nIiw3
XSxbIlNub3JpbmciLDddLFsiRHJvd3NpbmVzcyIsN10sWyJOaWdodG1hcmVzIiw3XSxbIlNsZWVw
aW5nIERpZmZpY3VsdHkiLDddLFsiU3RyZXNzIGFuZCBBbnhpZXR5Iiw3XSxbIkFnaXRhdGlvbiIs
N10sWyJEZXByZXNzaW9uIiw3XSxbIklycml0YWJpbGl0eSIsN10sWyJTa2luIERpc2NvbG9yYXRp
b24gLSBCbHVpc2giLDddLFsiU2tpbiAtIENsYW1teSIsN10sWyJJdGNoaW5nIiw3XSxbIlN3ZWF0
aW5nIiw3XSxbIlN3ZWF0aW5nIC0gQWJzZW50Iiw3XSxbIlJhc2hlcyIsN10sWyJHZW5pdGFsIFNv
cmVzIC0gTWFsZSIsN10sWyJHZW5pdGFsIFNvcmVzIC0gRmVtYWxlIiw3XSxbIkludGVydHJpZ28i
LDddLFsiU2tpbiBDb2xvciAtIFBhdGNoeSIsN10sWyJTdW5idXJuIiw3XSxbIlB1cnB1cmEiLDdd
LFsiQmxlZWRpbmcgSW50byB0aGUgU2tpbiIsN10sWyJTa2luIEJsdXNoaW5nL0ZsdXNoaW5nIiw3
XSxbIlNraW4gLSBBYm5vcm1hbGx5IERhcmsgb3IgTGlnaHQiLDddLFsiSmF1bmRpY2UgLSBZZWxs
b3cgU2tpbiIsN10sWyJQYWxlbmVzcyIsN10sWyJEcnkgSGFpciIsN10sWyJIYWlyIExvc3MiLDdd
LFsiTmFpbCBBYm5vcm1hbGl0aWVzIiw3XSxbIkZpbmdlciBQYWluIiw3XSxbIkZpbmdlcnMgVGhh
dCBDaGFuZ2UgQ29sb3IiLDddLFsiRHJ5IFNraW4iLDddLFsiV3JpbmtsZXMiLDddLFsiUGlsb25p
ZGFsIERpbXBsZSIsN10sWyJBdXRpc3RpYyBCZWhhdmlvciIsN10sWyJCZWhhdmlvciAtIFVudXN1
YWwgb3IgU3RyYW5nZSIsN10sWyJIeXBlcmFjdGl2aXR5Iiw3XSxbIk1lbW9yeSBMb3NzIiw3XSxb
IkhhbGx1Y2luYXRpb25zIiw3XSxbIlJhc2ggLSBDaGlsZCBVbmRlciAyIFllYXJzIiw3XSxbIklu
ZGlnZXN0aW9uIiw3XSxbIkpvaW50IFBhaW4iLDddLFsiSm9pbnQgU3dlbGxpbmciLDddLFsiTWVu
c3RydWFsIFBlcmlvZHMgLSBIZWF2eSwgUHJvbG9uZ2VkLCBvciBJcnJlZ3VsYXIiLDddLFsiVmFn
aW5hbCBCbGVlZGluZyBpbiBQcmVnbmFuY3kiLDddLFsiQmluZ2UgRWF0aW5nIiw3XSxbIkhlYXJ0
IE11cm11cnMgYW5kIE90aGVyIFNvdW5kcyIsN10sWyJQb2x5aHlkcmFtbmlvcyIsN10sWyJOYXRh
bCBUZWV0aCIsN10sWyJBbWJpZ3VvdXMgR2VuaXRhbGlhIiw3XSxbIkhlbW9seXRpYyBDcmlzaXMi
LDddLFsiU2hvcnQgU3RhdHVyZSIsN10sWyJNaWNyb2NlcGhhbHkiLDddLFsiUG9pbnQgVGVuZGVy
bmVzcyAtIEFiZG9tZW4iLDddLFsiQWJkb21pbmFsIE1hc3MiLDddLFsiSGVwYXRvbWVnYWx5Iiw3
XSxbIlNwbGVub21lZ2FseSIsN10sWyJMdW1wIGluIHRoZSBBYmRvbWVuIiw3XSxbIkxvcmRvc2lz
Iiw3XSxbIlNraW4gTHVtcHMiLDddLFsiSHlwZXJlbGFzdGljIFNraW4iLDddLFsiU2tpbiBUdXJn
b3IiLDddLFsiQ2x1YmJpbmcgb2YgdGhlIEZpbmdlcnMgb3IgVG9lcyIsN10sWyJTcGxpbnRlciBI
ZW1vcnJoYWdlcyIsN10sWyJUZWxhbmdpZWN0YXNpYSIsN10sWyJOaWtvbHNreSdzIFNpZ24iLDdd
LFsiU3ViY3V0YW5lb3VzIEVtcGh5c2VtYSIsN10sWyJTdHJpYWUiLDddLFsiQXJhY2hub2RhY3R5
bHkiLDddLFsiV2ViYmluZyBvZiB0aGUgRmluZ2VycyBvciBUb2VzIiw3XSxbIlNpbWlhbiBDcmVh
c2UiLDddLFsiU2Vuc29yaW5ldXJhbCBEZWFmbmVzcyIsN10sWyJJbmZhbnRpbGUgUmVmbGV4ZXMi
LDddLFsiTW9ybyBSZWZsZXgiLDddLFsiQmFiaW5za2kncyBSZWZsZXgiLDddLFsiSHlwZXJtb2Jp
bGUgSm9pbnRzIiw3XSxbIk11c2NsZSBUd2l0Y2hpbmciLDddLFsiU3Bhc3RpY2l0eSIsN10sWyJI
eXBvdG9uaWEiLDddLFsiRGVjZXJlYnJhdGUgUG9zdHVyZSIsN10sWyJEZWNvcnRpY2F0ZSBQb3N0
dXJlIiw3XSxbIkZyb250YWwgQm9zc2luZyIsN10sWyJTaG9ydCBQaGlsdHJ1bSIsN10sWyJQaW5u
YSBBYm5vcm1hbGl0aWVzIGFuZCBMb3ctU2V0IEVhcnMiLDddLFsiUHJlYXVyaWN1bGFyIFRhZyBv
ciBQaXQiLDddLFsiSW5jcmVhc2VkIEhlYWQgQ2lyY3VtZmVyZW5jZSIsN10sWyJNaWNyb2duYXRo
aWEiLDddLFsiU3V0dXJlcyAtIFNlcGFyYXRlZCIsN10sWyJTdXR1cmVzIC0gUmlkZ2VkIiw3XSxb
IkZvbnRhbmVsbGVzIC0gU3Vua2VuIiw3XSxbIkZvbnRhbmVsbGVzIC0gQnVsZ2luZyIsN10sWyJG
b250YW5lbGxlcyAtIEV4Y2Vzc2l2ZWx5IExhcmdlIiw3XSxbIk1ldG9waWMgUmlkZ2UiLDddLFsi
TW90b3JtZW50YWwgUmV0YXJkYXRpb24iLDddLFsiQW5pc29jb3JpYSIsN10sWyJQdXBpbCAtIFdo
aXRlIFNwb3RzIiw3XSxbIlBhbHBlYnJhbCBTbGFudCAtIEV5ZSIsN10sWyJDbG91ZHkgQ29ybmVh
Iiw3XSxbIkNvbG9ib21hIG9mIHRoZSBJcmlzIiw3XSxbIkhldGVyb2Nocm9taWEiLDddLFsiUGVj
dHVzIEV4Y2F2YXR1bSIsN10sWyJQZWN0dXMgQ2FyaW5hdHVtIiw3XSxbIkludGVyY29zdGFsIFJl
dHJhY3Rpb25zIiw3XSxbIkJyZWF0aCBTb3VuZHMiLDddLFsiRWxlY3Ryb2NvbnZ1bHNpdmUgVGhl
cmFweSIsOF0sWyJVcm9mbG93bWV0cnkiLDhdLFsiTWVudGFsIFN0YXR1cyBUZXN0cyIsOF0sWyJB
cnRlcmlvZ3JhbSIsOF0sWyJBdXRvaW1tdW5lIExpdmVyIERpc2Vhc2UgUGFuZWwiLDhdLFsiQiBh
bmQgVCBDZWxsIFNjcmVlbiIsOF0sWyJDVCBTY2FuIiw4XSxbIkVMSVNBIiw4XSxbIkFudGlib2R5
IFRpdGVyIiw4XSxbIkxhdGV4IEFnZ2x1dGluYXRpb24gVGVzdCIsOF0sWyJNUkkiLDhdLFsiVWx0
cmFzb3VuZCIsOF0sWyJYLVJheSIsOF0sWyJFbmRvc2NvcHkiLDhdLFsiRXJlY3Rpb24gU2VsZi1U
ZXN0Iiw4XSxbIkVhciBFeGFtaW5hdGlvbiIsOF0sWyJBdWRpb2xvZ3kiLDhdLFsiVXJpbmUgQ2hl
bWlzdHJ5Iiw4XSxbIkNvb21icycgVGVzdCIsOF0sWyJCbG9vZCBUeXBpbmciLDhdLFsiUFNBIiw4
XSxbIkhldGVyb3BoaWwgQWdnbHV0aW5hdGlvbiBUZXN0Iiw4XSxbIlJlc3BpcmF0b3J5IFN5bmN5
dGlhbCBWaXJ1cyBBbnRpYm9kaWVzIiw4XSxbIlJvdGF2aXJ1cyBBbnRpZ2VuIFRlc3QiLDhdLFsi
VE9SQ0ggU2NyZWVuIiw4XSxbIkFudGlwYXJpZXRhbCBDZWxscyBBbnRpYm9kaWVzIiw4XSxbIlNl
cnVtIEhlcnBlcyBTaW1wbGV4IEFudGlib2RpZXMiLDhdLFsiQzEgRXN0ZXJhc2UgSW5oaWJpdG9y
Iiw4XSxbIkNvbXBsZW1lbnQgQ29tcG9uZW50IDQiLDhdLFsiTml0cm9ibHVlIFRldHJhem9saXVt
IFRlc3QiLDhdLFsiQy1SZWFjdGl2ZSBQcm90ZWluIiw4XSxbIlB5cnV2YXRlIEtpbmFzZSIsOF0s
WyJTZXJ1bSBDaG9saW5lc3RlcmFzZSIsOF0sWyJTZXJ1bSBDaHJvbWl1bSIsOF0sWyJMZWFkIExl
dmVscyAtIEJsb29kIiw4XSxbIlBsYXNtYSBBbWlubyBBY2lkcyIsOF0sWyJTZXJ1bSBQaGVueWxh
bGFuaW5lIFNjcmVlbmluZyIsOF0sWyJIZW1vZ2xvYmludXJpYSIsOF0sWyJVcmluZSBEcnVnIFNj
cmVlbiIsOF0sWyJVcmluZSBNZWxhbmluIiw4XSxbIkFtaW5vYWNpZHVyaWEiLDhdLFsiQWNpZCBN
dWNvcG9seXNhY2NoYXJpZGVzIiw4XSxbIkNTRiBDaGVtaXN0cnkiLDhdLFsiQ1NGIE15ZWxpbiBC
YXNpYyBQcm90ZWluIiw4XSxbIkhlbW9nbG9iaW4gRGVyaXZhdGl2ZXMiLDhdLFsiUG9ycGh5cmlu
cyAtIEJsb29kIiw4XSxbIkZpYnJpbm9wZXB0aWRlIEEiLDhdLFsiU2VydW0gVEJHIExldmVsIiw4
XSxbIkFudGktSW5zdWxpbiBBbnRpYm9keSBUZXN0Iiw4XSxbIkdyb3d0aCBIb3Jtb25lIFN1cHBy
ZXNzaW9uIFRlc3QiLDhdLFsiR3Jvd3RoIEhvcm1vbmUgU3RpbXVsYXRpb24gVGVzdCIsOF0sWyJH
YXN0cmljIEN1bHR1cmUiLDhdLFsiQnJlYXN0IFVsdHJhc291bmQiLDhdLFsiTWFtbW9ncmFwaHki
LDhdLFsiWC1SYXkgLSBTa2VsZXRvbiIsOF0sWyJBYnNjZXNzIFNjYW4gLSBSYWRpb2FjdGl2ZSIs
OF0sWyJMZXByb21pbiBTa2luIFRlc3QiLDhdLFsiVHViZXJjdWxpbiBUaW5lIFRlc3QiLDhdLFsi
Q1NEIFNraW4gVGVzdCIsOF0sWyJXb29kJ3MgTGFtcCIsOF0sWyJDb2xvciBWaXNpb24gVGVzdCIs
OF0sWyJFbGVjdHJvcmV0aW5vZ3JhcGh5Iiw4XSxbIlRyYW5zaWxsdW1pbmF0aW9uIiw4XSxbIlR5
bXBhbm9tZXRyeSIsOF0sWyJIaXMgQnVuZGxlIEVsZWN0cm9ncmFwaHkiLDhdLFsiQ29sZCBTdGlt
dWxhdGlvbiBUZXN0IGZvciBSYXluYXVkJ3MgUGhlbm9tZW5vbiIsOF0sWyJTdG9vbCBHdWFpYWMg
VGVzdCIsOF0sWyJDYXBpbGxhcnkgTmFpbCBSZWZpbGwgVGVzdCIsOF0sWyJWaXN1YWwgQWN1aXR5
IFRlc3QiLDhdLFsiRXh0cmFvY3VsYXIgTXVzY2xlIEZ1bmN0aW9uIFRlc3RpbmciLDhdLFsiQmxv
b2QgUHJlc3N1cmUiLDhdLFsiUHVsc2UiLDhdLFsiVGVtcGVyYXR1cmUgTWVhc3VyZW1lbnQiLDhd
LFsiRXNvcGhhZ2VhbCBQSCBNb25pdG9yaW5nIiw4XSxbIkFQR0FSIiw4XSxbIkNvcmQgQmxvb2Qi
LDhdLFsiSHlzdGVyb3NhbHBpbmdvZ3JhcGh5Iiw4XSxbIkZldGFsIEhlYXJ0IE1vbml0b3Jpbmci
LDhdLFsiQ2hvcmlvbmljIFZpbGx1cyBTYW1wbGluZyIsOF0sWyJGZXRhbC1NYXRlcm5hbCBFcnl0
aHJvY3l0ZSBEaXN0cmlidXRpb24iLDhdLFsiRmV0YWwgQmxvb2QgVGVzdGluZyIsOF0sWyJOZW9u
YXRhbCBDeXN0aWMgRmlicm9zaXMgU2NyZWVuaW5nIiw4XSxbIkludHJhY3JhbmlhbCBQcmVzc3Vy
ZSBNb25pdG9yaW5nIiw4XSxbIk1ldGh5bGVuZSBCbHVlIFRlc3QiLDhdLFsiQnVjY2FsIFNtZWFy
Iiw4XSxbIkJpb3BzeSAtIFBvbHlwcyIsOF0sWyJCaW9wc3kiLDhdLFsiVXJpbmUgQ29sbGVjdGlv
biAtIEluZmFudHMiLDhdLFsiQXJ0aHJvc2NvcHkiLDhdLFsiQ2FyZGlhYyBDYXRoZXRlcml6YXRp
b24iLDhdLFsiVGhvcmFjZW50ZXNpcyIsOF0sWyJEaWFseXNpcyIsOF0sWyJBcnRlcmlhbCBTdGlj
ayIsOF0sWyJWZW5pcHVuY3R1cmUiLDhdLFsiVXJpbmUgMjQtSG91ciBWb2x1bWUiLDhdLFsiRGVu
dGFsIFBsYXF1ZSBJZGVudGlmaWNhdGlvbiBhdCBIb21lIiw4XSxbIkNhcGlsbGFyeSBTYW1wbGUi
LDhdLFsiQ2VyZWJyYWwgU3BpbmFsIEZsdWlkIENTRiBDb2xsZWN0aW9uIiw4XSxbIkNhbG9yaWMg
U3RpbXVsYXRpb24iLDhdLFsiVGhlcmFwZXV0aWMgRHJ1ZyBMZXZlbHMiLDhdLFsiVXJpbmUgT2Rv
ciIsOF0sWyJQcmVnbmFuY3kgVGVzdCIsOF0sWyJEdXBsZXggVWx0cmFzb3VuZCIsOF0sWyJTdGFu
ZGFyZCBPcGh0aGFsbWljIEV4YW0iLDhdLFsiQmxvb2QgR2x1Y29zZSBNb25pdG9yaW5nIiw4XSxb
IlBlYWsgRXhwaXJhdG9yeSBGbG93IFJhdGUiLDhdLFsiSG9tZSBWaXNpb24gVGVzdHMiLDhdLFsi
VG9ub21ldHJ5Iiw4XSxbIkVsZWN0cm9ueXN0YWdtb2dyYXBoeSIsOF0sWyJHYWxsaXVtIEdhLiBT
Y2FuIiw4XSxbIlNraW4gTGVzaW9uIEFzcGlyYXRpb24iLDhdLFsiUGlud29ybSBUZXN0Iiw4XSxb
IkdyYW0gU3RhaW4gb2YgVGlzc3VlIEJpb3BzeSIsOF0sWyJNb25vbnVjbGVvc2lzIFNwb3QgVGVz
dCIsOF0sWyJDb21wbGVtZW50Iiw4XSxbIkRlbHRhLUFMQSIsOF0sWyJHYW1tYS1HbHV0YW15bCBU
cmFuc3BlcHRpZGFzZSIsOF0sWyIxNy1IeWRyb3h5Y29ydGljb3N0ZXJvaWRzIiw4XSxbIjE3LUtl
dG9zdGVyb2lkcyIsOF0sWyJFeHRyZW1pdHkgWC1SYXkiLDhdLFsiQ0hFTS03Iiw4XSxbIk9zbW9s
YWxpdHkiLDhdLFsiQW15bGFzZSAtIEJsb29kIiw4XSxbIkxpcGFzZSBUZXN0Iiw4XSxbIkdsdWNv
c2UgVG9sZXJhbmNlIFRlc3QiLDhdLFsiUHJvc3RhdGljIEFjaWQgUGhvc3BoYXRhc2UgUEFQIiw4
XSxbIkNIRU0tMjAiLDhdLFsiQ08yIFRlc3QgLSBTZXJ1bSIsOF0sWyJBTFAiLDhdLFsiTERIIiw4
XSxbIkFTVCIsOF0sWyJBTFQiLDhdLFsiQlVOIiw4XSxbIkNyZWF0aW5pbmUgLSBTZXJ1bSIsOF0s
WyJVcmljIEFjaWQgLSBCbG9vZCIsOF0sWyJTZXJ1bSBDYWxjaXVtIiw4XSxbIlNlcnVtIFBob3Nw
aG9ydXMiLDhdLFsiQmlsaXJ1YmluIiw4XSxbIkFsYnVtaW4gLSBTZXJ1bSIsOF0sWyJTZXJ1bSBT
b2RpdW0iLDhdLFsiR2x1Y29zZSBUZXN0Iiw4XSxbIlRvdGFsIFByb3RlaW4iLDhdLFsiUG90YXNz
aXVtIFRlc3QiLDhdLFsiU2VydW0gQ2hsb3JpZGUiLDhdLFsiQ2FsY2l1bSAtIElvbml6ZWQiLDhd
LFsiU2VydW0gTWFnbmVzaXVtIC0gVGVzdCIsOF0sWyJTZXJ1bSBJcm9uIiw4XSxbIlRvdGFsIEly
b24gQmluZGluZyBDYXBhY2l0eSIsOF0sWyJGZXJyaXRpbiIsOF0sWyJDb3JvbmFyeSBSaXNrIFBy
b2ZpbGUiLDhdLFsiQ2hvbGVzdGVyb2wgVGVzdCIsOF0sWyJUcmlnbHljZXJpZGUgTGV2ZWwiLDhd
LFsiVkxETCIsOF0sWyJMREwgVGVzdCIsOF0sWyJIREwiLDhdLFsiQUxQIElzb2VuenltZSBUZXN0
Iiw4XSxbIlNlcnVtIEtldG9uZXMiLDhdLFsiTERIIElzb2VuenltZXMiLDhdLFsiTGFjdG9zZSBU
b2xlcmFuY2UgVGVzdCIsOF0sWyJTY2hpcm1lcidzIFRlc3QiLDhdLFsiQXBvbGlwb3Byb3RlaW4g
QjEwMCIsOF0sWyJDUEsiLDhdLFsiQ1BLIElzb2VuenltZXMgVGVzdCIsOF0sWyJBcG9saXBvcHJv
dGVpbiBDSUkiLDhdLFsiQW1tb25pdW0gSW9uIiw4XSxbIkxhY3RpYyBBY2lkIFRlc3QiLDhdLFsi
VmFzb2FjdGl2ZSBJbnRlc3RpbmFsIFBvbHlwZXB0aWRlIiw4XSxbIkhDRyBpbiBCbG9vZCBTZXJ1
bSAtIFF1YWxpdGF0aXZlIiw4XSxbIkhDRyBCbG9vZCBUZXN0IC0gUXVhbnRpdGF0aXZlIiw4XSxb
IlNlcm9sb2d5Iiw4XSxbIkZUQS1BQlMiLDhdLFsiRXBzdGVpbi1CYXJyIFZpcnVzIFRlc3QiLDhd
LFsiVG94b3BsYXNtYSBUZXN0Iiw4XSxbIlZEUkwiLDhdLFsiVCAoVGh5bXVzIERlcml2ZWQpIEx5
bXBob2N5dGUgQ291bnQiLDhdLFsiVDQgVGVzdCIsOF0sWyJCLUNlbGwgTGV1a2VtaWEvTHltcGhv
bWEgUGFuZWwiLDhdLFsiQWxsZXJneSBUZXN0aW5nIiw4XSxbIkNvbXBsZW1lbnQgRml4YXRpb24g
VGVzdCB0byBDLiBCdXJuZXRpaSIsOF0sWyJJbW11bm9mbHVvcmVzY2VuY2UiLDhdLFsiQW50aXN0
cmVwdG9seXNpbiBPIFRpdGVyIiw4XSxbIlNlcm9sb2d5IGZvciBUdWxhcmVtaWEiLDhdLFsiQW50
aS1HbG9tZXJ1bGFyIEJhc2VtZW50IE1lbWJyYW5lIiw4XSxbIkNvY2NpZGlvaWRlcyBQcmVjaXBp
dGluIiw4XSxbIkNTRiBDb2NjaWRpb2lkZXMgQ29tcGxlbWVudCBGaXhhdGlvbiIsOF0sWyJIaXN0
b3BsYXNtYSBDb21wbGVtZW50IEZpeGF0aW9uIiw4XSxbIkFudGltaXRvY2hvbmRyaWFsIEFudGli
b2R5Iiw4XSxbIkNhbXB5bG9iYWN0ZXIgU2Vyb2xvZ3kgVGVzdCIsOF0sWyJBbnRpLVNtb290aCBN
dXNjbGUgQW50aWJvZHkiLDhdLFsiQXNwZXJnaWxsb3NpcyBQcmVjaXBpdGluIiw4XSxbIlJQUiIs
OF0sWyJTZXJvbG9naWMgVGVzdCBmb3IgQi4gQW50aHJhY2lzIiw4XSxbIkFudGludWNsZWFyIEFu
dGlib2R5IFBhbmVsIiw4XSxbIlNlcm9sb2d5IGZvciBCcnVjZWxsb3NpcyIsOF0sWyJBbnRpLURO
YXNlIEIiLDhdLFsiSElWIEVMSVNBL1dlc3Rlcm4gQmxvdCIsOF0sWyJDb21wbGVtZW50IENvbXBv
bmVudCAzIEMzIiw4XSxbIlByb3RlaW4gRWxlY3Ryb3Bob3Jlc2lzIC0gU2VydW0iLDhdLFsiSW1t
dW5vZWxlY3Ryb3Bob3Jlc2lzIC0gU2VydW0iLDhdLFsiSW1tdW5vZml4YXRpb24gLSBTZXJ1bSIs
OF0sWyJTZXJ1bSBHbG9idWxpbiBFbGVjdHJvcGhvcmVzaXMiLDhdLFsiUXVhbnRpdGF0aXZlIElt
bXVub2dsb2J1bGlucyAtIE5lcGhlbG9tZXRyeSIsOF0sWyJDTVYgU2Vyb2xvZ3kgVGVzdCIsOF0s
WyJDb2NjaWRpb2lkZXMgQ29tcGxlbWVudCBGaXhhdGlvbiIsOF0sWyJSaGV1bWF0b2lkIEZhY3Rv
ciIsOF0sWyJGZWJyaWxlL0NvbGQgQWdnbHV0aW5pbnMiLDhdLFsiSGlzdG9jb21wYXRpYmlsaXR5
IEFudGlnZW4gVGVzdCIsOF0sWyJITEEtQjI3IEFudGlnZW4iLDhdLFsiUGxhdGVsZXQgQXNzb2Np
YXRlZCBBbnRpYm9kaWVzIiw4XSxbIlNwdXR1bSBEaXJlY3QgRmx1b3Jlc2NlbnQgQW50aWJvZHkg
REZBIiw4XSxbIkx5bWUgRGlzZWFzZSBBbnRpYm9keSIsOF0sWyJDcnlvZ2xvYnVsaW5zIiw4XSxb
IkFudGl0aHlyb2lkIE1pY3Jvc29tYWwgQW50aWJvZHkiLDhdLFsiQW50aXRoeXJvZ2xvYnVsaW4g
QW50aWJvZHkiLDhdLFsiSGVwYXRpdGlzIFZpcnVzIFRlc3Qgb3IgUGFuZWwiLDhdLFsiTGV1Y2lu
ZSBBbWlub3BlcHRpZGFzZSAtIFNlcnVtIiw4XSxbIlRyeXBzaW5vZ2VuIiw4XSxbIkNhdGVjaG9s
YW1pbmVzIC0gQmxvb2QiLDhdLFsiU2VydW0gU2Vyb3RvbmluIExldmVsIiw4XSxbIk1ldGhhbm9s
IFRlc3QiLDhdLFsiRXRoeWxlbmUgR2x5Y29sIFRlc3QiLDhdLFsiTWV0aHlsbWFsb25pYyBBY2lk
Iiw4XSxbIkFsZG9sYXNlIiw4XSxbIkFDRSBMZXZlbHMiLDhdLFsiRGlnb3hpbiAtIFRlc3QiLDhd
LFsiMjUtSHlkcm94eSBWaXRhbWluIEQiLDhdLFsiVml0YW1pbiBBIFRlc3QiLDhdLFsiQmV0YS1D
YXJvdGVuZSIsOF0sWyJTY2hpbGxpbmcgVGVzdCIsOF0sWyJBbHBoYSBGZXRvcHJvdGVpbiIsOF0s
WyJDRUEiLDhdLFsiNSctTidUYXNlIiw4XSxbIkFjZXR5bGNob2xpbmUgUmVjZXB0b3IgQW50aWJv
ZHkiLDhdLFsiRGlnaXRveGluIC0gVGVzdCIsOF0sWyJUb3hpY29sb2d5IFNjcmVlbiIsOF0sWyJV
cmluYWx5c2lzIiw4XSxbIlByb3RlaW4gLSBVcmluZSIsOF0sWyJHbHVjb3NlIC0gVXJpbmUiLDhd
LFsiUkJDIC0gVXJpbmUiLDhdLFsiVXJpbmUgUEgiLDhdLFsiTGV1a29jeXRlIEVzdGVyYXNlIiw4
XSxbIktldG9uZXMgLSBVcmluZSIsOF0sWyJVcmluYXJ5IENhc3RzIiw4XSxbIlVyaW5lIFNwZWNp
ZmljIEdyYXZpdHkiLDhdLFsiRmVjYWwgRmF0Iiw4XSxbIlByb3RlaW4gRWxlY3Ryb3Bob3Jlc2lz
IC0gVXJpbmUiLDhdLFsiU3Rvb2wgQy4gRGlmZmljaWxlIFRveGluIiw4XSxbIk1pY3JvYWxidW1p
bnVyaWEgVGVzdCIsOF0sWyJJbW11bm9lbGVjdHJvcGhvcmVzaXMgLSBVcmluZSIsOF0sWyJJbW11
bm9maXhhdGlvbiAtIFVyaW5lIiw4XSxbIlRyeXBzaW4gYW5kIENoeW1vdHJ5cHNpbiBpbiBTdG9v
bCIsOF0sWyJCaWxpcnViaW4gLSBVcmluZSIsOF0sWyJQQkciLDhdLFsiQmVuY2UtSm9uZXMgUHJv
dGVpbiAtIFF1YW50aXRhdGl2ZSIsOF0sWyJTb2RpdW0gLSBVcmluZSIsOF0sWyJQb3Rhc3NpdW0g
LSBVcmluZSIsOF0sWyJDaGxvcmlkZSAtIFVyaW5lIiw4XSxbIkZyYWN0aW9uYWwgRXhjcmV0aW9u
IG9mIFNvZGl1bSIsOF0sWyJDYWxjaXVtIC0gVXJpbmUiLDhdLFsiMjQtSG91ciBVcmluZSBDb3Bw
ZXIvQ3UiLDhdLFsiVXJlYSBOaXRyb2dlbiAtIFVyaW5lIiw4XSxbIkQtWHlsb3NlIEFic29ycHRp
b24iLDhdLFsiQW15bGFzZSAtIFVyaW5lIiw4XSxbIlVyaW5lIENvbmNlbnRyYXRpb24gVGVzdCIs
OF0sWyJPc21vbGFsaXR5IC0gVXJpbmUiLDhdLFsiQ3JlYXRpbmluZSAtIFVyaW5lIiw4XSxbIkNy
ZWF0aW5pbmUgQ2xlYXJhbmNlIiw4XSxbIjUtSElBQSIsOF0sWyJDYXRlY2hvbGFtaW5lcyAtIFVy
aW5lIiw4XSxbIlBvcnBoeXJpbnMgLSBVcmluZSIsOF0sWyJBY2lkIExvYWRpbmcgVGVzdCBwSCIs
OF0sWyJVcmljIEFjaWQgLSBVcmluZSIsOF0sWyJMZXVjaW5lIEFtaW5vcGVwdGlkYXNlIC0gVXJp
bmUiLDhdLFsiQ2l0cmljIEFjaWQgVXJpbmUgVGVzdCIsOF0sWyJIQ0cgaW4gVXJpbmUiLDhdLFsi
MjQtSG91ciBVcmluYXJ5IEFsZG9zdGVyb25lIEV4Y3JldGlvbiBSYXRlIiw4XSxbIjI0LUhvdXIg
VXJpbmUgUHJvdGVpbiIsOF0sWyJDU0YgVkRSTCBUZXN0Iiw4XSxbIlBsZXVyYWwgRmx1aWQgQW5h
bHlzaXMiLDhdLFsiQ1NGIENlbGwgQ291bnQiLDhdLFsiUGVyaXRvbmVhbCBGbHVpZCBBbmFseXNp
cyIsOF0sWyJTZW1lbiBBbmFseXNpcyIsOF0sWyJDU0YgVG90YWwgUHJvdGVpbiIsOF0sWyJTeW5v
dmlhbCBGbHVpZCBBbmFseXNpcyIsOF0sWyJTd2VhdCBFbGVjdHJvbHl0ZXMiLDhdLFsiQ1NGIE9s
aWdvY2xvbmFsIEJhbmRpbmciLDhdLFsiQnJlYXRoIEFsY29ob2wgVGVzdCIsOF0sWyJDU0YgR2x1
Y29zZSIsOF0sWyJIYXB0b2dsb2JpbiIsOF0sWyJMRSBDZWxsIFRlc3QiLDhdLFsiR2FsYWN0b3Nl
LTEtUGhvc3BoYXRlIFVyaWR5bHRyYW5zZmVyYXNlIiw4XSxbIlJldGljdWxvY3l0ZSBDb3VudCIs
OF0sWyJFU1IiLDhdLFsiSGVtb2dsb2JpbiBFbGVjdHJvcGhvcmVzaXMiLDhdLFsiSGJBMWMiLDhd
LFsiT3Ntb3RpYyBGcmFnaWxpdHkiLDhdLFsiQ0JDIiw4XSxbIldCQyBDb3VudCIsOF0sWyJSQkMg
Q291bnQiLDhdLFsiSGVtb2dsb2JpbiIsOF0sWyJIZW1hdG9jcml0IEhDVCIsOF0sWyJQbGF0ZWxl
dCBDb3VudCIsOF0sWyJSQkMgSW5kaWNlcyIsOF0sWyJFb3Npbm9waGlsIENvdW50IC0gQWJzb2x1
dGUiLDhdLFsiRmlicmlub2dlbiIsOF0sWyJMZXVrb2N5dGUgQWxrYWxpbmUgUGhvc3BoYXRhc2Ui
LDhdLFsiUHJvdGhyb21iaW4gVGltZSBQVCIsOF0sWyJQYXJ0aWFsIFRocm9tYm9wbGFzdGluIFRp
bWUgUFRUIiw4XSxbIkV1Z2xvYnVsaW4gTHlzaXMgVGltZSIsOF0sWyJGaWJyaW4gRGVncmFkYXRp
b24gUHJvZHVjdHMiLDhdLFsiQmxlZWRpbmcgVGltZSIsOF0sWyJCbG9vZCBEaWZmZXJlbnRpYWwi
LDhdLFsiQm9uZSBNYXJyb3cgQXNwaXJhdGlvbiIsOF0sWyJQcm90ZWluIEMiLDhdLFsiUHJvdGVp
biBTIiw4XSxbIkFudGl0aHJvbWJpbiBJSUkiLDhdLFsiQ2VydWxvcGxhc21pbiIsOF0sWyJNeW9n
bG9iaW4gLSBTZXJ1bSIsOF0sWyJNeW9nbG9iaW4gLSBVcmluZSIsOF0sWyJCbG9vZCBTbWVhciIs
OF0sWyJTaWNrbGUgQ2VsbCBUZXN0Iiw4XSxbIlRhcnRyYXRlIFJlc2lzdGFudCBBY2lkIFBob3Nw
aGF0YXNlIFRlc3QiLDhdLFsiRG9uYXRoLUxhbmRzdGVpbmVyIFRlc3QiLDhdLFsiUGxhdGVsZXQg
QWdncmVnYXRpb24gVGVzdCIsOF0sWyJHbHVjb3NlLTYtUGhvc3BoYXRlIERlaHlkcm9nZW5hc2Ui
LDhdLFsiSGFtIFRlc3QiLDhdLFsiU3VnYXItV2F0ZXIgSGVtb2x5c2lzIFRlc3QiLDhdLFsiRmFj
dG9yIElJIEFzc2F5Iiw4XSxbIkZhY3RvciBWIEFzc2F5Iiw4XSxbIkZhY3RvciBWSUkgQXNzYXki
LDhdLFsiU2VydW0gSGVtb2dsb2JpbiIsOF0sWyJGYWN0b3IgVklJSSBBc3NheSIsOF0sWyJGYWN0
b3IgSVggQXNzYXkiLDhdLFsiRmFjdG9yIFggQXNzYXkiLDhdLFsiRmFjdG9yIFhJSSBBc3NheSIs
OF0sWyJCb25lIE1hcnJvdyBDdWx0dXJlIiw4XSxbIkVyeXRocm9wb2lldGluIFRlc3QiLDhdLFsi
VFNIIiw4XSxbIlRTSSIsOF0sWyJGb2xpYyBBY2lkIC0gVGVzdCIsOF0sWyJUMyIsOF0sWyJSVDNV
Iiw4XSxbIlJhZGlvYWN0aXZlIElvZGluZSBVcHRha2UiLDhdLFsiUFRIIiw4XSxbIlBUSC1SZWxh
dGVkIFByb3RlaW4iLDhdLFsiTWV0eXJhcG9uZSBUZXN0Iiw4XSxbIkNvcnRpc29sIExldmVsIiw4
XSxbIkRleGFtZXRoYXNvbmUgU3VwcHJlc3Npb24gVGVzdCIsOF0sWyJBQ1RIIiw4XSxbIkFDVEgg
Q29ydHJvc3luIFN0aW11bGF0aW9uIFRlc3QiLDhdLFsiR2FzdHJpbiIsOF0sWyJSZW5pbiIsOF0s
WyJDYWxjaXRvbmluIiw4XSxbIkluc3VsaW4gVGVzdCIsOF0sWyJJbnN1bGluIEMtUGVwdGlkZSIs
OF0sWyJBREgiLDhdLFsiQ29ydGlzb2wgLSBVcmluZSIsOF0sWyJBbGRvc3Rlcm9uZSIsOF0sWyJW
aXRhbWluIEIxMiBMZXZlbCIsOF0sWyJHcm93dGggSG9ybW9uZSIsOF0sWyJUZXN0b3N0ZXJvbmUi
LDhdLFsiTEggQmxvb2QgVGVzdCIsOF0sWyJMSCBSZXNwb25zZSB0byBHblJIIiw4XSxbIkZTSCIs
OF0sWyJFc3RyYWRpb2wgLSBUZXN0Iiw4XSxbIjE3LU9IIFByb2dlc3Rlcm9uZSIsOF0sWyJTZXJ1
bSBQcm9nZXN0ZXJvbmUiLDhdLFsiQWxwaGEtMSBBbnRpdHJ5cHNpbiIsOF0sWyJHbHVjYWdvbiIs
OF0sWyJESEVBLVN1bGZhdGUgLSBTZXJ1bSIsOF0sWyJQcm9sYWN0aW4iLDhdLFsiUGVyaWNhcmRp
YWwgRmx1aWQgR3JhbSBTdGFpbiIsOF0sWyJQZXJpY2FyZGlhbCBGbHVpZCBDdWx0dXJlIiw4XSxb
IlBsZXVyYWwgRmx1aWQgU21lYXIiLDhdLFsiUGxldXJhbCBGbHVpZCBHcmFtIFN0YWluIiw4XSxb
IlJvdXRpbmUgU3B1dHVtIEN1bHR1cmUiLDhdLFsiU3B1dHVtIFN0YWluIGZvciBNeWNvYmFjdGVy
aWEiLDhdLFsiUGxldXJhbCBGbHVpZCBDdWx0dXJlIiw4XSxbIkx1bmcgTmVlZGxlIEJpb3BzeSBD
dWx0dXJlIiw4XSxbIlBlcml0b25lYWwgRmx1aWQgQ3VsdHVyZSIsOF0sWyJDdWx0dXJlIC0gR2Fz
dHJpYyBUaXNzdWUgQmlvcHN5Iiw4XSxbIlNtZWFyIG9mIER1b2RlbmFsIEZsdWlkIEFzcGlyYXRl
Iiw4XSxbIkN1bHR1cmUgLSBEdW9kZW5hbCBUaXNzdWUgQmlvcHN5Iiw4XSxbIlNtYWxsIEludGVz
dGluYWwgQXNwaXJhdGUgYW5kIEN1bHR1cmUiLDhdLFsiU21hbGwgQm93ZWwgVGlzc3VlIEJpb3Bz
eSBTbWVhciIsOF0sWyJDdWx0dXJlIC0gQ29sb25pYyBUaXNzdWUgQmlvcHN5Iiw4XSxbIkJpbGUg
Q3VsdHVyZSIsOF0sWyJTdHJpbmcgVGVzdCIsOF0sWyJTcHV0dW0gU21lYXIgS09IIFRlc3QiLDhd
LFsiTHltcGggTm9kZSBDdWx0dXJlIiw4XSxbIk15Y29iYWN0ZXJpYWwgQ3VsdHVyZSBvZiBMaXZl
ciBCaW9wc3kiLDhdLFsiSGVycGVzIFZpcmFsIEN1bHR1cmUgb2YgTGVzaW9uIiw4XSxbIk15Y29i
YWN0ZXJpYWwgQ3VsdHVyZSBvZiBTdXNwZWN0ZWQgTm9uLVB1bG1vbmFyeSBTaXRlIG9mIFBhdGhv
bG9neSIsOF0sWyJTZW5zaXRpdml0eSBBbmFseXNpcyIsOF0sWyJDdWx0dXJlIC0gSm9pbnQgRmx1
aWQgKEFzcGlyYXRlKSIsOF0sWyJKb2ludCBGbHVpZCBHcmFtIFN0YWluIiw4XSxbIkJsb29kIEN1
bHR1cmUiLDhdLFsiU3RyZXB0b2NvY2NhbCBTY3JlZW4iLDhdLFsiVGhyb2F0IFN3YWIgQ3VsdHVy
ZSIsOF0sWyJOYXNvcGhhcnluZ2VhbCBDdWx0dXJlIiw4XSxbIkJyb25jaG9zY29waWMgQ3VsdHVy
ZSIsOF0sWyJHcmFtIFN0YWluIG9mIFVyZXRocmFsIERpc2NoYXJnZSIsOF0sWyJVcmV0aHJhbCBE
aXNjaGFyZ2UgQ3VsdHVyZSIsOF0sWyJVcmluZSBDdWx0dXJlIC0gQ2xlYW4gQ2F0Y2giLDhdLFsi
VXJpbmUgQ3VsdHVyZSAtIENhdGhldGVyaXplZCBTcGVjaW1lbiIsOF0sWyJFbmRvY2VydmljYWwg
R3JhbSBTdGFpbiIsOF0sWyJDdWx0dXJlIC0gRW5kb2NlcnZpeCIsOF0sWyJGZWNhbCBTbWVhciIs
OF0sWyJTdG9vbCBPdmEgYW5kIFBhcmFzaXRlcyBFeGFtIiw4XSxbIlN0b29sIEdyYW0gU3RhaW4i
LDhdLFsiRmVjYWwgQ3VsdHVyZSIsOF0sWyJSZWN0YWwgQ3VsdHVyZSIsOF0sWyJHcmFtIFN0YWlu
IG9mIFNraW4gTGVzaW9uIiw4XSxbIlNraW4gTGVzaW9uIEtPSCBFeGFtIiw4XSxbIlNraW4gb3Ig
TXVjb3NhbCBCaW9wc3kgQ3VsdHVyZSIsOF0sWyJFYXIgRHJhaW5hZ2UgQ3VsdHVyZSIsOF0sWyJF
c29waGFnZWFsIEJpb3BzeSBDdWx0dXJlIiw4XSxbIlNwdXR1bSBHcmFtIFN0YWluIiw4XSxbIkFj
aWQtRmFzdCBTdGFpbiIsOF0sWyJNeWNvYmFjdGVyaWFsIEN1bHR1cmUgb2YgQm9uZSBNYXJyb3ci
LDhdLFsiQ1NGIFNtZWFyIiw4XSxbIkNTRiBDdWx0dXJlIiw4XSxbIlJlbmFsIFZlbm9ncmFtIiw4
XSxbIkV4dHJlbWl0eSBBcnRlcmlvZ3JhcGh5Iiw4XSxbIlZlbm9ncmFtIC0gTGVnIiw4XSxbIkNh
cm90aWQgRHVwbGV4Iiw4XSxbIkRvcHBsZXIgVWx0cmFzb3VuZCBFeGFtIG9mIGFuIEFybSBvciBM
ZWciLDhdLFsiVGh5cm9pZCBVbHRyYXNvdW5kIiw4XSxbIkFiZG9taW5hbCBVbHRyYXNvdW5kIiw4
XSxbIlByZWduYW5jeSBVbHRyYXNvdW5kIiw4XSxbIlRyYW5zdmFnaW5hbCBVbHRyYXNvdW5kIiw4
XSxbIlRlc3RpY2xlIFVsdHJhc291bmQiLDhdLFsiUmVuYWwgQXJ0ZXJpb2dyYXBoeSIsOF0sWyJJ
bnRyYXZlbm91cyBQeWVsb2dyYW0iLDhdLFsiUmV0cm9ncmFkZSBDeXN0b2dyYXBoeSIsOF0sWyJW
b2lkaW5nIEN5c3RvdXJldGhyb2dyYW0iLDhdLFsiT3JiaXQgQ1QgU2NhbiIsOF0sWyJDcmFuaWFs
IENUIFNjYW4iLDhdLFsiTHVtYm9zYWNyYWwgU3BpbmUgQ1QiLDhdLFsiVGhvcmFjaWMgQ1QiLDhd
LFsiQWJkb21pbmFsIENUIFNjYW4iLDhdLFsiUmVuYWwgU2NhbiIsOF0sWyJNUkkgb2YgdGhlIEhl
YWQiLDhdLFsiU3BpbmUgTVJJIiw4XSxbIkx1bWJvc2FjcmFsIFNwaW5lIE1SSSIsOF0sWyJDaGVz
dCBNUkkiLDhdLFsiSGVhcnQgTVJJIiw4XSxbIkFiZG9taW5hbCBNUkkiLDhdLFsiRXllIGFuZCBP
cmJpdCBVbHRyYXNvdW5kIiw4XSxbIkx5bXBoYW5naW9ncmFtIiw4XSxbIkNlcmVicmFsIEFuZ2lv
Z3JhcGh5Iiw4XSxbIkNoZXN0IFRvbW9ncmFtIiw4XSxbIkRlbnRhbCBYLVJheXMiLDhdLFsiU2t1
bGwgWC1SYXkiLDhdLFsiU2ludXMgWC1SYXkiLDhdLFsiQ2hlc3QgWC1SYXkiLDhdLFsiTmVjayBY
LVJheSIsOF0sWyJUaG9yYWNpYyBTcGluZSBYLVJheSIsOF0sWyJMdW1ib3NhY3JhbCBTcGluZSBY
LVJheSIsOF0sWyJCb25lIFgtUmF5Iiw4XSxbIlBlbHZpcyBYLVJheSIsOF0sWyJKb2ludCBYLVJh
eSIsOF0sWyJIYW5kIFgtUmF5Iiw4XSxbIlNpYWxvZ3JhbSIsOF0sWyJQdWxtb25hcnkgQW5naW9n
cmFwaHkiLDhdLFsiQW9ydGljIEFuZ2lvZ3JhcGh5Iiw4XSxbIkFiZG9taW5hbCBGaWxtIiw4XSxb
IlVwcGVyIEdJIGFuZCBTbWFsbCBCb3dlbCBTZXJpZXMiLDhdLFsiQmFyaXVtIEVuZW1hIiw4XSxb
IkVudGVyb2NseXNpcyIsOF0sWyJNZXNlbnRlcmljIEFydGVyaW9ncmFwaHkiLDhdLFsiUGVyY3V0
YW5lb3VzIFRyYW5zaGVwYXRpYyBDaG9sYW5naW9ncmFtIiw4XSxbIk9yYWwgQ2hvbGVjeXN0b2dy
YW0iLDhdLFsiTnVjbGVhciBWZW50cmljdWxvZ3JhcGh5Iiw4XSxbIlJhZGlvbnVjbGlkZSBDaXN0
ZXJub2dyYW0iLDhdLFsiTHVuZyBHYWxsaXVtIEdhLiBTY2FuIiw4XSxbIkxpdmVyIFNjYW4iLDhd
LFsiR2FsbGJsYWRkZXIgUmFkaW9udWNsaWRlIFNjYW4iLDhdLFsiSXNvdG9wZSBTdHVkeSIsOF0s
WyJQdWxtb25hcnkgVmVudGlsYXRpb24vUGVyZnVzaW9uIFNjYW4iLDhdLFsiVGh5cm9pZCBTY2Fu
Iiw4XSxbIk1JQkcgU2NpbnRpc2NhbiIsOF0sWyJSZW5hbCBQZXJmdXNpb24gU2NpbnRpc2NhbiIs
OF0sWyJSYWRpb251Y2xpZGUgQ3lzdG9ncmFtIiw4XSxbIkJvbmUgU2NhbiIsOF0sWyJXQkMgU2Nh
biIsOF0sWyJSQkMgKE51Y2xlYXIpIFNjYW4iLDhdLFsiQXNwZXJnaWxsdXMgQW50aWdlbiBTa2lu
IFRlc3QiLDhdLFsiVHphbmNrIFRlc3QiLDhdLFsiSGlzdG9wbGFzbWEgU2tpbiBUZXN0Iiw4XSxb
IlBQRCBTa2luIFRlc3QiLDhdLFsiU2tpbiBMZXNpb24gQmlvcHN5Iiw4XSxbIkFiZG9taW5hbCBX
YWxsIEZhdCBQYWQgQmlvcHN5Iiw4XSxbIlNraW4gVGVzdCBBbmVyZ3kiLDhdLFsiQ29jY2lkaW9p
ZGluIG9yIFNwaGVydWxpbiBTa2luIFRlc3QiLDhdLFsiUmVmcmFjdGlvbiBUZXN0Iiw4XSxbIkZs
dW9yZXNjZWluIEV5ZSBTdGFpbiIsOF0sWyJGbHVvcmVzY2VpbiBBbmdpb2dyYXBoeSIsOF0sWyJT
YWxpdmFyeSBHbGFuZCBCaW9wc3kiLDhdLFsiTmFzYWwgTXVjb3NhbCBCaW9wc3kiLDhdLFsiVG9u
Z3VlIEJpb3BzeSIsOF0sWyJPcm9waGFyeW54IExlc2lvbiBCaW9wc3kiLDhdLFsiR3VtIEJpb3Bz
eSIsOF0sWyJQdWxtb25hcnkgRnVuY3Rpb24gVGVzdHMiLDhdLFsiTHVuZyBEaWZmdXNpb24gVGVz
dGluZyIsOF0sWyJCbG9vZCBHYXNlcyIsOF0sWyJVcHBlciBBaXJ3YXkgQmlvcHN5Iiw4XSxbIkJy
b25jaG9zY29weSIsOF0sWyJCcm9uY2hvc2NvcHkgV2l0aCBUcmFuc2Jyb25jaGlhbCBCaW9wc3ki
LDhdLFsiTHVuZyBOZWVkbGUgQmlvcHN5Iiw4XSxbIk9wZW4gTHVuZyBCaW9wc3kiLDhdLFsiUGxl
dXJhbCBOZWVkbGUgQmlvcHN5Iiw4XSxbIk9wZW4gUGxldXJhbCBCaW9wc3kiLDhdLFsiTWVkaWFz
dGlub3Njb3B5IFdpdGggQmlvcHN5Iiw4XSxbIkN5dG9sb2d5IEV4YW0gb2YgUGxldXJhbCBGbHVp
ZCIsOF0sWyJJbnRyYWNhcmRpYWMgRWxlY3Ryb3BoeXNpb2xvZ3kgU3R1ZHkgRVBTIiw4XSxbIkVD
RyIsOF0sWyJFY2hvY2FyZGlvZ3JhbSIsOF0sWyJTd2FuLUdhbnogLSBSaWdodCBIZWFydCBDYXRo
ZXRlcml6YXRpb24iLDhdLFsiTGVmdCBIZWFydCBDYXRoZXRlcml6YXRpb24iLDhdLFsiUGVyaWNh
cmRpb2NlbnRlc2lzIiw4XSxbIk15b2NhcmRpYWwgQmlvcHN5Iiw4XSxbIlJpZ2h0IEhlYXJ0IFZl
bnRyaWN1bG9ncmFwaHkiLDhdLFsiTGVmdCBIZWFydCBWZW50cmljdWxhciBBbmdpb2dyYXBoeSIs
OF0sWyJDb3JvbmFyeSBBbmdpb2dyYXBoeSIsOF0sWyJIb2x0ZXIgTW9uaXRvciAyNGgiLDhdLFsi
RXhlcmNpc2UgU3RyZXNzIFRlc3QiLDhdLFsiVmlzdWFsIEZpZWxkIiw4XSxbIlNsaXQtTGFtcCBF
eGFtIiw4XSxbIk9waHRoYWxtb3Njb3B5Iiw4XSxbIkdhc3RyaWMgU3VjdGlvbiIsOF0sWyJTdG9t
YWNoIEFjaWQgVGVzdCIsOF0sWyJFc29waGFnZWFsIE1hbm9tZXRyeSIsOF0sWyJTaWdtb2lkb3Nj
b3B5Iiw4XSxbIkNvbG9ub3Njb3B5Iiw4XSxbIkJvd2VsIFRyYW5zaXQgVGltZSIsOF0sWyJFR0Qg
LSBFc29waGFnb2dhc3Ryb2R1b2Rlbm9zY29weSIsOF0sWyJTbWFsbCBCb3dlbCBCaW9wc3kiLDhd
LFsiQW5vc2NvcHkiLDhdLFsiUmVjdGFsIEJpb3BzeSIsOF0sWyJTZWNyZXRpbiBTdGltdWxhdGlv
biBUZXN0Iiw4XSxbIkVSQ1AiLDhdLFsiQmlvcHN5IC0gQmlsaWFyeSBUcmFjdCIsOF0sWyJMaXZl
ciBCaW9wc3kiLDhdLFsiQWJkb21pbmFsIFRhcCIsOF0sWyJCZXJuc3RlaW4gVGVzdCIsOF0sWyJQ
YXJhdGh5cm9pZCBCaW9wc3kiLDhdLFsiRmluZSBOZWVkbGUgQXNwaXJhdGlvbiBvZiB0aGUgVGh5
cm9pZCIsOF0sWyJBZHJlbmFsZWN0b215Iiw4XSxbIkJsYWRkZXIgQmlvcHN5Iiw4XSxbIkN5c3Rv
c2NvcHkiLDhdLFsiQ3lzdG9tZXRyaWMgU3R1ZHkiLDhdLFsiQ3l0b2xvZ3kgRXhhbSBvZiBVcmlu
ZSIsOF0sWyJVcmV0ZXJhbCBSZXRyb2dyYWRlIEJydXNoIEJpb3BzeSBDeXRvbG9neSIsOF0sWyJS
ZW5hbCBCaW9wc3kiLDhdLFsiVGVzdGljdWxhciBCaW9wc3kiLDhdLFsiVGVzdGljdWxhciBTZWxm
LUV4YW1pbmF0aW9uIiw4XSxbIkNvbGQgS25pZmUgQ29uZSBCaW9wc3kiLDhdLFsiUGFwIFNtZWFy
Iiw4XSxbIkNlcnZpY2FsIEJpb3BzeSIsOF0sWyJDb2xwb3Njb3B5IC0gRGlyZWN0ZWQgQmlvcHN5
Iiw4XSxbIlByZWduYW5lZGlvbCIsOF0sWyJIdW1hbiBQbGFjZW50YWwgTGFjdG9nZW4iLDhdLFsi
VmFnaW5pdGlzIFRlc3QgLSBXZXQgTW91bnQiLDhdLFsiRW5kb21ldHJpYWwgQmlvcHN5Iiw4XSxb
IkRpYWdub3N0aWMgTGFwYXJvc2NvcHkiLDhdLFsiQ3VsZG9jZW50ZXNpcyIsOF0sWyJCcmVhc3Qg
QmlvcHN5Iiw4XSxbIkFtbmlvY2VudGVzaXMiLDhdLFsiU3lub3ZpYWwgQmlvcHN5Iiw4XSxbIkJv
bmUgTGVzaW9uIEJpb3BzeSIsOF0sWyJNdXNjbGUgQmlvcHN5Iiw4XSxbIkNhcnBhbCBUdW5uZWwg
QmlvcHN5Iiw4XSxbIkJBRVIgLSBCcmFpbnN0ZW0gQXVkaXRvcnkgRXZva2VkIFJlc3BvbnNlIiw4
XSxbIk5lcnZlIENvbmR1Y3Rpb24gVmVsb2NpdHkiLDhdLFsiTmVydmUgQmlvcHN5Iiw4XSxbIkVs
ZWN0cm9teW9ncmFwaHkiLDhdLFsiVGVuc2lsb24gVGVzdCIsOF0sWyJFRUciLDhdLFsiUG9seXNv
bW5vZ3JhcGh5Iiw4XSxbIkx5bXBoIE5vZGUgQmlvcHN5Iiw4XSxbIkJvbmUgTWFycm93IEJpb3Bz
eSIsOF0sWyJLYXJ5b3R5cGluZyIsOF0sWyJEaWFiZXRlcyBGb290IENhcmUiLDVdLFsiVmVzaWNs
ZXMiLDddLFsiUmhldW1hdGljIEZldmVyIiwxXSxbIkNsZWFuIEludGVybWl0dGVudCBTZWxmLUNh
dGhldGVyaXphdGlvbiIsNV0sWyJVcmluYXJ5IENhdGhldGVycyIsNV0sWyJBbnRlcmlvciBWYWdp
bmFsIFdhbGwgUmVwYWlyIiw2XSxbIkluZmxhdGFibGUgQXJ0aWZpY2lhbCBTcGhpbmN0ZXIiLDZd
LFsiQ2VudHJhbCBTbGVlcCBBcG5lYSIsMV0sWyJBZ2luZyBDaGFuZ2VzIGluIEJvZHkgU2hhcGUi
LDVdLFsiQWdpbmcgQ2hhbmdlcyBpbiBIb3Jtb25lIFByb2R1Y3Rpb24iLDVdLFsiQ29uZG9tcyIs
NV0sWyJBZ2luZyBDaGFuZ2VzIGluIHRoZSBGYWNlIiw1XSxbIkFnaW5nIENoYW5nZXMgaW4gSGFp
ciBhbmQgTmFpbHMiLDVdLFsiQWdpbmcgQ2hhbmdlcyBpbiB0aGUgSGVhcnQgYW5kIEJsb29kIFZl
c3NlbHMiLDVdLFsiQWdpbmcgQ2hhbmdlcyBpbiBJbW11bml0eSIsNV0sWyJBZ2luZyBDaGFuZ2Vz
IGluIHRoZSBLaWRuZXlzIiw1XSxbIkFnaW5nIENoYW5nZXMgaW4gdGhlIEx1bmdzIiw1XSxbIkFn
aW5nIENoYW5nZXMgaW4gT3JnYW5zIC0gVGlzc3VlIC0gQ2VsbHMiLDVdLFsiQWdpbmcgQ2hhbmdl
cyBpbiB0aGUgU2Vuc2VzIiw1XSxbIkFnaW5nIENoYW5nZXMgaW4gU2tpbiIsNV0sWyJBZ2luZyBD
aGFuZ2VzIGluIHRoZSBCb25lcyAtIE11c2NsZXMgLSBKb2ludHMiLDVdLFsiQWdpbmcgQ2hhbmdl
cyBpbiB0aGUgRmVtYWxlIFJlcHJvZHVjdGl2ZSBTeXN0ZW0iLDVdLFsiQWdpbmcgQ2hhbmdlcyBp
biB0aGUgTWFsZSBSZXByb2R1Y3RpdmUgU3lzdGVtIiw1XSxbIkFnaW5nIENoYW5nZXMgaW4gU2xl
ZXAiLDVdLFsiQWdpbmcgQ2hhbmdlcyBpbiBWaXRhbCBTaWducyIsNV0sWyJBZ2luZyBDaGFuZ2Vz
IGluIHRoZSBOZXJ2b3VzIFN5c3RlbSIsNV0sWyJGbHVzaGFibGUgUmVhZ2VudCBTdG9vbCBCbG9v
ZCBUZXN0Iiw4XSxbIkZlY2FsIE9jY3VsdCBCbG9vZCBUZXN0IEZPQlQiLDhdLFsiT3RpdGlzIE1l
ZGlhIFdpdGggRWZmdXNpb24iLDFdLFsiTWluaW1hbGx5IEludmFzaXZlIEhlYXJ0IFN1cmdlcnki
LDZdLFsiTGFwYXJvc2NvcHkiLDhdLFsiR3luZWNvbG9naWMgTGFwYXJvc2NvcHkiLDhdLFsiTEFT
SUsgRXllIFN1cmdlcnkiLDZdLFsiUGxhbnRhciBGYXNjaWl0aXMiLDFdLFsiR3JheSBTeW5kcm9t
ZSIsMV0sWyJMSCBVcmluZSBUZXN0IChIb21lIFRlc3QpIiw4XSxbIkNoaWNrZW5wb3ggLSBWYWNj
aW5lIiw1XSxbIkRpZ2l0YWwgUmVjdGFsIEV4YW0iLDhdLFsiUHJlc3N1cmUgVWxjZXIiLDJdLFsi
U2tpbiBTZWxmLUV4YW0iLDhdLFsiVGhyb21ib2x5dGljIFRoZXJhcHkiLDVdLFsiSG9ybW9uZSBS
ZXBsYWNlbWVudCBUaGVyYXB5Iiw1XSxbIkxpdGhvdHJpcHN5Iiw2XSxbIkNvcm9uYXJ5IEhlYXJ0
IERpc2Vhc2UiLDFdLFsiSXJvbiBEZWZpY2llbmN5IEFuZW1pYSAtIENoaWxkcmVuIiwxXSxbIktp
ZG5leSBEaWV0IC0gRGlhbHlzaXMgUGF0aWVudHMiLDNdLFsiU3RyZXNzIEVjaG9jYXJkaW9ncmFw
aHkiLDhdLFsiQ29tcGxleCBSZWdpb25hbCBQYWluIFN5bmRyb21lIiwxXSxbIldlc3QgTmlsZSBW
aXJ1cyIsMV0sWyJIZWFydCBEaXNlYXNlIGFuZCBXb21lbiIsNV0sWyJTdG9yaW5nIE1lZGljaW5l
IFNhZmVseSIsNV0sWyJTZXZlcmUgQWN1dGUgUmVzcGlyYXRvcnkgU3luZHJvbWUgU0FSUyIsMV0s
WyJQcmVtZW5zdHJ1YWwgRHlzcGhvcmljIERpc29yZGVyIiwxXSxbIkx1bmcgQ2FuY2VyIC0gTm9u
LVNtYWxsIENlbGwiLDFdLFsiQm9uZSBNaW5lcmFsIERlbnNpdHkgVGVzdCIsOF0sWyJSYXBpZCBT
aGFsbG93IEJyZWF0aGluZyIsN10sWyJHYXN0cmljIEJ5cGFzcyIsNl0sWyJWZW50cmljdWxhciBG
aWJyaWxsYXRpb24iLDFdLFsiVGhhbGxpdW0gYW5kIFNlc3RhbWliaSBTdHJlc3MgVGVzdHMiLDhd
LFsiSW1wbGFudGFibGUgQ2FyZGlvdmVydGVyLURlZmlicmlsbGF0b3IiLDVdLFsiQ29jaGxlYXIg
SW1wbGFudCIsNV0sWyJTb3kiLDNdLFsiSGFpciBUcmFuc3BsYW50Iiw2XSxbIlNob3VsZGVyIEFy
dGhyb3Njb3B5Iiw2XSxbIlJvdGF0b3IgQ3VmZiBSZXBhaXIiLDZdLFsiQUNMIFJlY29uc3RydWN0
aW9uIiw2XSxbIk1lbmlzY2FsIEFsbG9ncmFmdCBUcmFuc3BsYW50YXRpb24iLDZdLFsiVHJhbnNq
dWd1bGFyIEludHJhaGVwYXRpYyBQb3J0b3N5c3RlbWljIFNodW50IFRJUFMiLDZdLFsiVGljayBC
aXRlIiwyXSxbIkJydWlzZSIsMl0sWyJQcmVnbmFuY3kgQ2FyZSIsNV0sWyJQb3N0LVBhcnR1bSBE
ZXByZXNzaW9uIiwxXSxbIkZpYnJvYWRlbm9tYSAtIEJyZWFzdCIsMV0sWyJDQS0xMjUiLDhdLFsi
R2FuZ3JlbmUiLDFdLFsiQnJhaW4gVHVtb3IgLSBBZHVsdHMiLDFdLFsiQ2hpbGQgQWJ1c2UgLSBT
ZXh1YWwiLDFdLFsiQ2hpbGQgTmVnbGVjdCBhbmQgUHN5Y2hvbG9naWNhbCBBYnVzZSIsMV0sWyJB
cG5lYSBvZiBQcmVtYXR1cml0eSIsMV0sWyJIeXBlcmdseWNlbWlhIC0gSW5mYW50cyIsMV0sWyJI
eXBvY2FsY2VtaWEgLSBJbmZhbnRzIiwxXSxbIk5ldXRyb3BlbmlhIC0gSW5mYW50cyIsMV0sWyJP
c3Rlb3BlbmlhIC0gUHJlbWF0dXJlIEluZmFudHMiLDFdLFsiUGVyaXZlbnRyaWN1bGFyIExldWtv
bWFsYWNpYSIsMV0sWyJUcmFuc2llbnQgVGFjaHlwbmVhIC0gTmV3Ym9ybiIsMV0sWyJOSUNVIENv
bnN1bHRhbnRzIGFuZCBTdXBwb3J0IFN0YWZmIiw1XSxbIk1pY3JvZGlza2VjdG9teSIsNl0sWyJW
aXJ0dWFsIENvbG9ub3Njb3B5Iiw4XSxbIkFua2xlIFJlcGxhY2VtZW50Iiw2XSxbIktuZWUgTWlj
cm9mcmFjdHVyZSBTdXJnZXJ5Iiw2XSxbIlVuaWNvbXBhcnRtZW50YWwgS25lZSBBcnRocm9wbGFz
dHkiLDZdLFsiTmV3Ym9ybiBTY3JlZW5pbmcgVGVzdHMiLDhdLFsiRWxib3cgUmVwbGFjZW1lbnQi
LDZdLFsiSHlwZXJoaWRyb3NpcyIsMV0sWyJBc2VwdGljIE5lY3Jvc2lzIiwxXSxbIk1SU0EgSW5m
ZWN0aW9uIiwxXSxbIkxpcG9wcm90ZWluLUEiLDhdLFsiQXZpYW4gSW5mbHVlbnphIiwxXSxbIlBh
cmF0aHlyb2lkIENhbmNlciIsMV0sWyJUaHlyb2lkIE5vZHVsZSIsMV0sWyJJbnRyYXZhc2N1bGFy
IFVsdHJhc291bmQiLDZdLFsiR29ub3JyaGVhIiwxXSxbIlZlbnRyaWN1bGFyIEFzc2lzdCBEZXZp
Y2UiLDZdLFsiTWFnbmV0aWMgUmVzb25hbmNlIEFuZ2lvZ3JhcGh5Iiw4XSxbIkx1bmcgQ2FuY2Vy
IiwxXSxbIlNlcm90b25pbiBTeW5kcm9tZSIsMV0sWyJBdHJpYWwgTXl4b21hIiwxXSxbIlN0ZXJl
b3RhY3RpYyBSYWRpb3N1cmdlcnkiLDZdLFsiUm9vdCBDYW5hbCIsNl0sWyJFbmRvdmFzY3VsYXIg
RW1ib2xpemF0aW9uIiw2XSxbIkh5cG90ZW5zaW9uIiwxXSxbIkluIFZpdHJvIEZlcnRpbGl6YXRp
b24gSVZGIiw2XSxbIkh5ZHJvY29kb25lL094eWNvZG9uZSBPdmVyZG9zZSIsNF0sWyJNb3J0b24n
cyBOZXVyb21hIiwxXSxbIkxpbWIgUGxldGh5c21vZ3JhcGh5Iiw4XSxbIkVuZG9zY29waWMgVGhv
cmFjaWMgU3ltcGF0aGVjdG9teSIsNl0sWyJJb250b3Bob3Jlc2lzIiw2XSxbIkluZmVydGlsaXR5
IGluIFdvbWVuIiwxXV071AAFABEABwAIAI0AjgAUAI9fEEBodHRwOi8vZ3JhcGhpY3M4Lm55dGlt
ZXMuY29tL2pzL2NvbW1vbi9hdXRvY29tcGxldGUvcHJvdG90eXBlLmpzTxEEU2JwbGlzdDAw1AEC
AwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNv
dXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvECALDCYsLTMeNDVPUFFSU1RVVldYWVpb
XF1eX2BhYmNnaFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhT
JDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAfgAKAHhAIEACABoAHgAWACBAHgAAQAdMN
JygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QQGh0dHA6Ly9ncmFwaGljczgubnl0aW1l
cy5jb20vanMvY29tbW9uL2F1dG9jb21wbGV0ZS9wcm90b3R5cGUuanPSLi8wMVgkY2xhc3Nlc1ok
Y2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsHHuhsEMjTDTY3ODlEV05TLmtleXNaTlMu
b2JqZWN0c4Adqjo7PD0+P0BBQkOACYAKgAuADIANgA6AD4AQgBGAEqpFRkdISUpLTE1OgBOAFIAV
gBaAF4AYgBmAGoAbgBxUVmFyeV1BY2NlcHQtUmFuZ2VzXxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2
ZXJcQ29udGVudC1UeXBlVERhdGVeQ29udGVudC1MZW5ndGhURXRhZ1pDb25uZWN0aW9uXUxhc3Qt
TW9kaWZpZWRfEA9BY2NlcHQtRW5jb2RpbmdVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZl
ci82LjFfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4
OjQzIEdNVFUxMDYxOV8QDyJiOWYzLTQ3MDUwYWJlIlprZWVwLWFsaXZlXxAdVGh1LCAwNCBPY3Qg
MjAwNyAxNTo0NjowNiBHTVTSLi9kZaNlZjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlv
bmFyeRG589IuL2lqo2prMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoA
HwApADIANwA6AFAAUgBkAIcAjQCoAK8AsgC1ALkAvQDAAMMAxgDJAMwAzwDSANUA1wDZANsA3QDf
AOEA4wDlAOcA6QDrAO0A9AD8AQgBCgEMAQ4BUQFWAV8BagFtAXMBfAGFAYcBjgGWAaEBowGuAbAB
sgG0AbYBuAG6AbwBvgHAAcIBzQHPAdEB0wHVAdcB2QHbAd0B3wHhAeYB9AIHAg4CGwIgAi8CNAI/
Ak0CXwJlAmoCgwKeAr4CxALWAuEDAQMGAwoDIAMtAzADNQM5A00AAAAAAAACAQAAAAAAAABsAAAA
AAAAAAAAAAAAAAADW08RufMvKiAgUHJvdG90eXBlIEphdmFTY3JpcHQgZnJhbWV3b3JrLCB2ZXJz
aW9uIDEuNC4wCiAqICAoYykgMjAwNSBTYW0gU3RlcGhlbnNvbiA8c2FtQGNvbmlvLm5ldD4KICoK
ICogIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gV2hlbiBzZW5kaW5nIHBh
dGNoZXMsIHBsZWFzZSBkaWZmCiAqICBhZ2FpbnN0IHRoZSBzb3VyY2UgdHJlZSwgYXZhaWxhYmxl
IGZyb20gdGhlIFByb3RvdHlwZSBkYXJjcyByZXBvc2l0b3J5LgogKgogKiAgUHJvdG90eXBlIGlz
IGZyZWVseSBkaXN0cmlidXRhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBhbiBNSVQtc3R5bGUgbGlj
ZW5zZS4KICoKICogIEZvciBkZXRhaWxzLCBzZWUgdGhlIFByb3RvdHlwZSB3ZWIgc2l0ZTogaHR0
cDovL3Byb3RvdHlwZS5jb25pby5uZXQvCiAqCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFyIFBy
b3RvdHlwZSA9IHsKICBWZXJzaW9uOiAnMS40LjAnLAogIFNjcmlwdEZyYWdtZW50OiAnKD86PHNj
cmlwdC4qPz4pKChcbnxccnwuKSo/KSg/OjxcL3NjcmlwdD4pJywKCiAgZW1wdHlGdW5jdGlvbjog
ZnVuY3Rpb24oKSB7fSwKICBLOiBmdW5jdGlvbih4KSB7cmV0dXJuIHh9Cn0KCnZhciBDbGFzcyA9
IHsKICBjcmVhdGU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICB0
aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgIH0KICB9Cn0KCnZhciBB
YnN0cmFjdCA9IG5ldyBPYmplY3QoKTsKCk9iamVjdC5leHRlbmQgPSBmdW5jdGlvbihkZXN0aW5h
dGlvbiwgc291cmNlKSB7CiAgZm9yIChwcm9wZXJ0eSBpbiBzb3VyY2UpIHsKICAgIGRlc3RpbmF0
aW9uW3Byb3BlcnR5XSA9IHNvdXJjZVtwcm9wZXJ0eV07CiAgfQogIHJldHVybiBkZXN0aW5hdGlv
bjsKfQoKT2JqZWN0Lmluc3BlY3QgPSBmdW5jdGlvbihvYmplY3QpIHsKICB0cnkgewogICAgaWYg
KG9iamVjdCA9PSB1bmRlZmluZWQpIHJldHVybiAndW5kZWZpbmVkJzsKICAgIGlmIChvYmplY3Qg
PT0gbnVsbCkgcmV0dXJuICdudWxsJzsKICAgIHJldHVybiBvYmplY3QuaW5zcGVjdCA/IG9iamVj
dC5pbnNwZWN0KCkgOiBvYmplY3QudG9TdHJpbmcoKTsKICB9IGNhdGNoIChlKSB7CiAgICBpZiAo
ZSBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpIHJldHVybiAnLi4uJzsKICAgIHRocm93IGU7CiAgfQp9
CgpGdW5jdGlvbi5wcm90b3R5cGUuYmluZCA9IGZ1bmN0aW9uKCkgewogIHZhciBfX21ldGhvZCA9
IHRoaXMsIGFyZ3MgPSAkQShhcmd1bWVudHMpLCBvYmplY3QgPSBhcmdzLnNoaWZ0KCk7CiAgcmV0
dXJuIGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIF9fbWV0aG9kLmFwcGx5KG9iamVjdCwgYXJncy5j
b25jYXQoJEEoYXJndW1lbnRzKSkpOwogIH0KfQoKRnVuY3Rpb24ucHJvdG90eXBlLmJpbmRBc0V2
ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihvYmplY3QpIHsKICB2YXIgX19tZXRob2QgPSB0aGlzOwog
IHJldHVybiBmdW5jdGlvbihldmVudCkgewogICAgcmV0dXJuIF9fbWV0aG9kLmNhbGwob2JqZWN0
LCBldmVudCB8fCB3aW5kb3cuZXZlbnQpOwogIH0KfQoKT2JqZWN0LmV4dGVuZChOdW1iZXIucHJv
dG90eXBlLCB7CiAgdG9Db2xvclBhcnQ6IGZ1bmN0aW9uKCkgewogICAgdmFyIGRpZ2l0cyA9IHRo
aXMudG9TdHJpbmcoMTYpOwogICAgaWYgKHRoaXMgPCAxNikgcmV0dXJuICcwJyArIGRpZ2l0czsK
ICAgIHJldHVybiBkaWdpdHM7CiAgfSwKCiAgc3VjYzogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4g
dGhpcyArIDE7CiAgfSwKCiAgdGltZXM6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICAkUigwLCB0
aGlzLCB0cnVlKS5lYWNoKGl0ZXJhdG9yKTsKICAgIHJldHVybiB0aGlzOwogIH0KfSk7Cgp2YXIg
VHJ5ID0gewogIHRoZXNlOiBmdW5jdGlvbigpIHsKICAgIHZhciByZXR1cm5WYWx1ZTsKCiAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgbGFt
YmRhID0gYXJndW1lbnRzW2ldOwogICAgICB0cnkgewogICAgICAgIHJldHVyblZhbHVlID0gbGFt
YmRhKCk7CiAgICAgICAgYnJlYWs7CiAgICAgIH0gY2F0Y2ggKGUpIHt9CiAgICB9CgogICAgcmV0
dXJuIHJldHVyblZhbHVlOwogIH0KfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgp2YXIgUGVyaW9k
aWNhbEV4ZWN1dGVyID0gQ2xhc3MuY3JlYXRlKCk7ClBlcmlvZGljYWxFeGVjdXRlci5wcm90b3R5
cGUgPSB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oY2FsbGJhY2ssIGZyZXF1ZW5jeSkgewogICAg
dGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrOwogICAgdGhpcy5mcmVxdWVuY3kgPSBmcmVxdWVuY3k7
CiAgICB0aGlzLmN1cnJlbnRseUV4ZWN1dGluZyA9IGZhbHNlOwoKICAgIHRoaXMucmVnaXN0ZXJD
YWxsYmFjaygpOwogIH0sCgogIHJlZ2lzdGVyQ2FsbGJhY2s6IGZ1bmN0aW9uKCkgewogICAgc2V0
SW50ZXJ2YWwodGhpcy5vblRpbWVyRXZlbnQuYmluZCh0aGlzKSwgdGhpcy5mcmVxdWVuY3kgKiAx
MDAwKTsKICB9LAoKICBvblRpbWVyRXZlbnQ6IGZ1bmN0aW9uKCkgewogICAgaWYgKCF0aGlzLmN1
cnJlbnRseUV4ZWN1dGluZykgewogICAgICB0cnkgewogICAgICAgIHRoaXMuY3VycmVudGx5RXhl
Y3V0aW5nID0gdHJ1ZTsKICAgICAgICB0aGlzLmNhbGxiYWNrKCk7CiAgICAgIH0gZmluYWxseSB7
CiAgICAgICAgdGhpcy5jdXJyZW50bHlFeGVjdXRpbmcgPSBmYWxzZTsKICAgICAgfQogICAgfQog
IH0KfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpmdW5jdGlvbiAkKCkgewogIHZhciBlbGVtZW50
cyA9IG5ldyBBcnJheSgpOwoKICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7
IGkrKykgewogICAgdmFyIGVsZW1lbnQgPSBhcmd1bWVudHNbaV07CiAgICBpZiAodHlwZW9mIGVs
ZW1lbnQgPT0gJ3N0cmluZycpCiAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50KTsKCiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKQogICAgICByZXR1cm4g
ZWxlbWVudDsKCiAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQpOwogIH0KCiAgcmV0dXJuIGVsZW1l
bnRzOwp9Ck9iamVjdC5leHRlbmQoU3RyaW5nLnByb3RvdHlwZSwgewogIHN0cmlwVGFnczogZnVu
Y3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC88XC8/W14+XSs+L2dpLCAnJyk7CiAg
fSwKCiAgc3RyaXBTY3JpcHRzOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnJlcGxhY2Uo
bmV3IFJlZ0V4cChQcm90b3R5cGUuU2NyaXB0RnJhZ21lbnQsICdpbWcnKSwgJycpOwogIH0sCgog
IGV4dHJhY3RTY3JpcHRzOiBmdW5jdGlvbigpIHsKICAgIHZhciBtYXRjaEFsbCA9IG5ldyBSZWdF
eHAoUHJvdG90eXBlLlNjcmlwdEZyYWdtZW50LCAnaW1nJyk7CiAgICB2YXIgbWF0Y2hPbmUgPSBu
ZXcgUmVnRXhwKFByb3RvdHlwZS5TY3JpcHRGcmFnbWVudCwgJ2ltJyk7CiAgICByZXR1cm4gKHRo
aXMubWF0Y2gobWF0Y2hBbGwpIHx8IFtdKS5tYXAoZnVuY3Rpb24oc2NyaXB0VGFnKSB7CiAgICAg
IHJldHVybiAoc2NyaXB0VGFnLm1hdGNoKG1hdGNoT25lKSB8fCBbJycsICcnXSlbMV07CiAgICB9
KTsKICB9LAoKICBldmFsU2NyaXB0czogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5leHRy
YWN0U2NyaXB0cygpLm1hcChldmFsKTsKICB9LAoKICBlc2NhcGVIVE1MOiBmdW5jdGlvbigpIHsK
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIHZhciB0ZXh0
ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcyk7CiAgICBkaXYuYXBwZW5kQ2hpbGQodGV4
dCk7CiAgICByZXR1cm4gZGl2LmlubmVySFRNTDsKICB9LAoKICB1bmVzY2FwZUhUTUw6IGZ1bmN0
aW9uKCkgewogICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAg
ZGl2LmlubmVySFRNTCA9IHRoaXMuc3RyaXBUYWdzKCk7CiAgICByZXR1cm4gZGl2LmNoaWxkTm9k
ZXNbMF0gPyBkaXYuY2hpbGROb2Rlc1swXS5ub2RlVmFsdWUgOiAnJzsKICB9LAoKICB0b1F1ZXJ5
UGFyYW1zOiBmdW5jdGlvbigpIHsKICAgIHZhciBwYWlycyA9IHRoaXMubWF0Y2goL15cPz8oLiop
JC8pWzFdLnNwbGl0KCcmJyk7CiAgICByZXR1cm4gcGFpcnMuaW5qZWN0KHt9LCBmdW5jdGlvbihw
YXJhbXMsIHBhaXJTdHJpbmcpIHsKICAgICAgdmFyIHBhaXIgPSBwYWlyU3RyaW5nLnNwbGl0KCc9
Jyk7CiAgICAgIHBhcmFtc1twYWlyWzBdXSA9IHBhaXJbMV07CiAgICAgIHJldHVybiBwYXJhbXM7
CiAgICB9KTsKICB9LAoKICB0b0FycmF5OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnNw
bGl0KCcnKTsKICB9LAoKICBjYW1lbGl6ZTogZnVuY3Rpb24oKSB7CiAgICB2YXIgb1N0cmluZ0xp
c3QgPSB0aGlzLnNwbGl0KCctJyk7CiAgICBpZiAob1N0cmluZ0xpc3QubGVuZ3RoID09IDEpIHJl
dHVybiBvU3RyaW5nTGlzdFswXTsKCiAgICB2YXIgY2FtZWxpemVkU3RyaW5nID0gdGhpcy5pbmRl
eE9mKCctJykgPT0gMAogICAgICA/IG9TdHJpbmdMaXN0WzBdLmNoYXJBdCgwKS50b1VwcGVyQ2Fz
ZSgpICsgb1N0cmluZ0xpc3RbMF0uc3Vic3RyaW5nKDEpCiAgICAgIDogb1N0cmluZ0xpc3RbMF07
CgogICAgZm9yICh2YXIgaSA9IDEsIGxlbiA9IG9TdHJpbmdMaXN0Lmxlbmd0aDsgaSA8IGxlbjsg
aSsrKSB7CiAgICAgIHZhciBzID0gb1N0cmluZ0xpc3RbaV07CiAgICAgIGNhbWVsaXplZFN0cmlu
ZyArPSBzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcy5zdWJzdHJpbmcoMSk7CiAgICB9Cgog
ICAgcmV0dXJuIGNhbWVsaXplZFN0cmluZzsKICB9LAoKICBpbnNwZWN0OiBmdW5jdGlvbigpIHsK
ICAgIHJldHVybiAiJyIgKyB0aGlzLnJlcGxhY2UoJ1xcJywgJ1xcXFwnKS5yZXBsYWNlKCInIiwg
J1xcXCcnKSArICInIjsKICB9Cn0pOwoKU3RyaW5nLnByb3RvdHlwZS5wYXJzZVF1ZXJ5ID0gU3Ry
aW5nLnByb3RvdHlwZS50b1F1ZXJ5UGFyYW1zOwoKdmFyICRicmVhayAgICA9IG5ldyBPYmplY3Qo
KTsKdmFyICRjb250aW51ZSA9IG5ldyBPYmplY3QoKTsKCnZhciBFbnVtZXJhYmxlID0gewogIGVh
Y2g6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB2YXIgaW5kZXggPSAwOwogICAgdHJ5IHsKICAg
ICAgdGhpcy5fZWFjaChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBp
dGVyYXRvcih2YWx1ZSwgaW5kZXgrKyk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAg
aWYgKGUgIT0gJGNvbnRpbnVlKSB0aHJvdyBlOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9IGNh
dGNoIChlKSB7CiAgICAgIGlmIChlICE9ICRicmVhaykgdGhyb3cgZTsKICAgIH0KICB9LAoKICBh
bGw6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICAgIHRoaXMu
ZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmICEh
KGl0ZXJhdG9yIHx8IFByb3RvdHlwZS5LKSh2YWx1ZSwgaW5kZXgpOwogICAgICBpZiAoIXJlc3Vs
dCkgdGhyb3cgJGJyZWFrOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIGFueTog
ZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIHZhciByZXN1bHQgPSB0cnVlOwogICAgdGhpcy5lYWNo
KGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICBpZiAocmVzdWx0ID0gISEoaXRlcmF0b3Ig
fHwgUHJvdG90eXBlLkspKHZhbHVlLCBpbmRleCkpCiAgICAgICAgdGhyb3cgJGJyZWFrOwogICAg
fSk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIGNvbGxlY3Q6IGZ1bmN0aW9uKGl0ZXJhdG9y
KSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBp
bmRleCkgewogICAgICByZXN1bHRzLnB1c2goaXRlcmF0b3IodmFsdWUsIGluZGV4KSk7CiAgICB9
KTsKICAgIHJldHVybiByZXN1bHRzOwogIH0sCgogIGRldGVjdDogZnVuY3Rpb24gKGl0ZXJhdG9y
KSB7CiAgICB2YXIgcmVzdWx0OwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkg
ewogICAgICBpZiAoaXRlcmF0b3IodmFsdWUsIGluZGV4KSkgewogICAgICAgIHJlc3VsdCA9IHZh
bHVlOwogICAgICAgIHRocm93ICRicmVhazsKICAgICAgfQogICAgfSk7CiAgICByZXR1cm4gcmVz
dWx0OwogIH0sCgogIGZpbmRBbGw6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB2YXIgcmVzdWx0
cyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICBpZiAo
aXRlcmF0b3IodmFsdWUsIGluZGV4KSkKICAgICAgICByZXN1bHRzLnB1c2godmFsdWUpOwogICAg
fSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICBncmVwOiBmdW5jdGlvbihwYXR0ZXJuLCBp
dGVyYXRvcikgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2
YWx1ZSwgaW5kZXgpIHsKICAgICAgdmFyIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTsK
ICAgICAgaWYgKHN0cmluZ1ZhbHVlLm1hdGNoKHBhdHRlcm4pKQogICAgICAgIHJlc3VsdHMucHVz
aCgoaXRlcmF0b3IgfHwgUHJvdG90eXBlLkspKHZhbHVlLCBpbmRleCkpOwogICAgfSkKICAgIHJl
dHVybiByZXN1bHRzOwogIH0sCgogIGluY2x1ZGU6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgdmFy
IGZvdW5kID0gZmFsc2U7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUpIHsKICAgICAgaWYg
KHZhbHVlID09IG9iamVjdCkgewogICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICB0aHJvdyAk
YnJlYWs7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGZvdW5kOwogIH0sCgogIGluamVjdDog
ZnVuY3Rpb24obWVtbywgaXRlcmF0b3IpIHsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwg
aW5kZXgpIHsKICAgICAgbWVtbyA9IGl0ZXJhdG9yKG1lbW8sIHZhbHVlLCBpbmRleCk7CiAgICB9
KTsKICAgIHJldHVybiBtZW1vOwogIH0sCgogIGludm9rZTogZnVuY3Rpb24obWV0aG9kKSB7CiAg
ICB2YXIgYXJncyA9ICRBKGFyZ3VtZW50cykuc2xpY2UoMSk7CiAgICByZXR1cm4gdGhpcy5jb2xs
ZWN0KGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgIHJldHVybiB2YWx1ZVttZXRob2RdLmFwcGx5KHZh
bHVlLCBhcmdzKTsKICAgIH0pOwogIH0sCgogIG1heDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAg
IHZhciByZXN1bHQ7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAg
IHZhbHVlID0gKGl0ZXJhdG9yIHx8IFByb3RvdHlwZS5LKSh2YWx1ZSwgaW5kZXgpOwogICAgICBp
ZiAodmFsdWUgPj0gKHJlc3VsdCB8fCB2YWx1ZSkpCiAgICAgICAgcmVzdWx0ID0gdmFsdWU7CiAg
ICB9KTsKICAgIHJldHVybiByZXN1bHQ7CiAgfSwKCiAgbWluOiBmdW5jdGlvbihpdGVyYXRvcikg
ewogICAgdmFyIHJlc3VsdDsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsK
ICAgICAgdmFsdWUgPSAoaXRlcmF0b3IgfHwgUHJvdG90eXBlLkspKHZhbHVlLCBpbmRleCk7CiAg
ICAgIGlmICh2YWx1ZSA8PSAocmVzdWx0IHx8IHZhbHVlKSkKICAgICAgICByZXN1bHQgPSB2YWx1
ZTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBwYXJ0aXRpb246IGZ1bmN0aW9u
KGl0ZXJhdG9yKSB7CiAgICB2YXIgdHJ1ZXMgPSBbXSwgZmFsc2VzID0gW107CiAgICB0aGlzLmVh
Y2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICgoaXRlcmF0b3IgfHwgUHJvdG90eXBl
LkspKHZhbHVlLCBpbmRleCkgPwogICAgICAgIHRydWVzIDogZmFsc2VzKS5wdXNoKHZhbHVlKTsK
ICAgIH0pOwogICAgcmV0dXJuIFt0cnVlcywgZmFsc2VzXTsKICB9LAoKICBwbHVjazogZnVuY3Rp
b24ocHJvcGVydHkpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB0aGlzLmVhY2goZnVuY3Rp
b24odmFsdWUsIGluZGV4KSB7CiAgICAgIHJlc3VsdHMucHVzaCh2YWx1ZVtwcm9wZXJ0eV0pOwog
ICAgfSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICByZWplY3Q6IGZ1bmN0aW9uKGl0ZXJh
dG9yKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVl
LCBpbmRleCkgewogICAgICBpZiAoIWl0ZXJhdG9yKHZhbHVlLCBpbmRleCkpCiAgICAgICAgcmVz
dWx0cy5wdXNoKHZhbHVlKTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdHM7CiAgfSwKCiAgc29y
dEJ5OiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgcmV0dXJuIHRoaXMuY29sbGVjdChmdW5jdGlv
bih2YWx1ZSwgaW5kZXgpIHsKICAgICAgcmV0dXJuIHt2YWx1ZTogdmFsdWUsIGNyaXRlcmlhOiBp
dGVyYXRvcih2YWx1ZSwgaW5kZXgpfTsKICAgIH0pLnNvcnQoZnVuY3Rpb24obGVmdCwgcmlnaHQp
IHsKICAgICAgdmFyIGEgPSBsZWZ0LmNyaXRlcmlhLCBiID0gcmlnaHQuY3JpdGVyaWE7CiAgICAg
IHJldHVybiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMDsKICAgIH0pLnBsdWNrKCd2YWx1ZScp
OwogIH0sCgogIHRvQXJyYXk6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuY29sbGVjdChQ
cm90b3R5cGUuSyk7CiAgfSwKCiAgemlwOiBmdW5jdGlvbigpIHsKICAgIHZhciBpdGVyYXRvciA9
IFByb3RvdHlwZS5LLCBhcmdzID0gJEEoYXJndW1lbnRzKTsKICAgIGlmICh0eXBlb2YgYXJncy5s
YXN0KCkgPT0gJ2Z1bmN0aW9uJykKICAgICAgaXRlcmF0b3IgPSBhcmdzLnBvcCgpOwoKICAgIHZh
ciBjb2xsZWN0aW9ucyA9IFt0aGlzXS5jb25jYXQoYXJncykubWFwKCRBKTsKICAgIHJldHVybiB0
aGlzLm1hcChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaXRlcmF0b3IodmFsdWUgPSBj
b2xsZWN0aW9ucy5wbHVjayhpbmRleCkpOwogICAgICByZXR1cm4gdmFsdWU7CiAgICB9KTsKICB9
LAoKICBpbnNwZWN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiAnIzxFbnVtZXJhYmxlOicgKyB0
aGlzLnRvQXJyYXkoKS5pbnNwZWN0KCkgKyAnPic7CiAgfQp9CgpPYmplY3QuZXh0ZW5kKEVudW1l
cmFibGUsIHsKICBtYXA6ICAgICBFbnVtZXJhYmxlLmNvbGxlY3QsCiAgZmluZDogICAgRW51bWVy
YWJsZS5kZXRlY3QsCiAgc2VsZWN0OiAgRW51bWVyYWJsZS5maW5kQWxsLAogIG1lbWJlcjogIEVu
dW1lcmFibGUuaW5jbHVkZSwKICBlbnRyaWVzOiBFbnVtZXJhYmxlLnRvQXJyYXkKfSk7CnZhciAk
QSA9IEFycmF5LmZyb20gPSBmdW5jdGlvbihpdGVyYWJsZSkgewogIGlmICghaXRlcmFibGUpIHJl
dHVybiBbXTsKICBpZiAoaXRlcmFibGUudG9BcnJheSkgewogICAgcmV0dXJuIGl0ZXJhYmxlLnRv
QXJyYXkoKTsKICB9IGVsc2UgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgaXRlcmFibGUubGVuZ3RoOyBpKyspCiAgICAgIHJlc3VsdHMucHVzaChpdGVyYWJs
ZVtpXSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9Cn0KCk9iamVjdC5leHRlbmQoQXJyYXkucHJv
dG90eXBlLCBFbnVtZXJhYmxlKTsKCkFycmF5LnByb3RvdHlwZS5fcmV2ZXJzZSA9IEFycmF5LnBy
b3RvdHlwZS5yZXZlcnNlOwoKT2JqZWN0LmV4dGVuZChBcnJheS5wcm90b3R5cGUsIHsKICBfZWFj
aDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5n
dGg7IGkrKykKICAgICAgaXRlcmF0b3IodGhpc1tpXSk7CiAgfSwKCiAgY2xlYXI6IGZ1bmN0aW9u
KCkgewogICAgdGhpcy5sZW5ndGggPSAwOwogICAgcmV0dXJuIHRoaXM7CiAgfSwKCiAgZmlyc3Q6
IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXNbMF07CiAgfSwKCiAgbGFzdDogZnVuY3Rpb24o
KSB7CiAgICByZXR1cm4gdGhpc1t0aGlzLmxlbmd0aCAtIDFdOwogIH0sCgogIGNvbXBhY3Q6IGZ1
bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAg
IHJldHVybiB2YWx1ZSAhPSB1bmRlZmluZWQgfHwgdmFsdWUgIT0gbnVsbDsKICAgIH0pOwogIH0s
CgogIGZsYXR0ZW46IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuaW5qZWN0KFtdLCBmdW5j
dGlvbihhcnJheSwgdmFsdWUpIHsKICAgICAgcmV0dXJuIGFycmF5LmNvbmNhdCh2YWx1ZS5jb25z
dHJ1Y3RvciA9PSBBcnJheSA/CiAgICAgICAgdmFsdWUuZmxhdHRlbigpIDogW3ZhbHVlXSk7CiAg
ICB9KTsKICB9LAoKICB3aXRob3V0OiBmdW5jdGlvbigpIHsKICAgIHZhciB2YWx1ZXMgPSAkQShh
cmd1bWVudHMpOwogICAgcmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAg
IHJldHVybiAhdmFsdWVzLmluY2x1ZGUodmFsdWUpOwogICAgfSk7CiAgfSwKCiAgaW5kZXhPZjog
ZnVuY3Rpb24ob2JqZWN0KSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBp
KyspCiAgICAgIGlmICh0aGlzW2ldID09IG9iamVjdCkgcmV0dXJuIGk7CiAgICByZXR1cm4gLTE7
CiAgfSwKCiAgcmV2ZXJzZTogZnVuY3Rpb24oaW5saW5lKSB7CiAgICByZXR1cm4gKGlubGluZSAh
PT0gZmFsc2UgPyB0aGlzIDogdGhpcy50b0FycmF5KCkpLl9yZXZlcnNlKCk7CiAgfSwKCiAgc2hp
ZnQ6IGZ1bmN0aW9uKCkgewogICAgdmFyIHJlc3VsdCA9IHRoaXNbMF07CiAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRoaXMubGVuZ3RoIC0gMTsgaSsrKQogICAgICB0aGlzW2ldID0gdGhpc1tpICsg
MV07CiAgICB0aGlzLmxlbmd0aC0tOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBpbnNwZWN0
OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiAnWycgKyB0aGlzLm1hcChPYmplY3QuaW5zcGVjdCku
am9pbignLCAnKSArICddJzsKICB9Cn0pOwp2YXIgSGFzaCA9IHsKICBfZWFjaDogZnVuY3Rpb24o
aXRlcmF0b3IpIHsKICAgIGZvciAoa2V5IGluIHRoaXMpIHsKICAgICAgdmFyIHZhbHVlID0gdGhp
c1trZXldOwogICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicpIGNvbnRpbnVlOwoK
ICAgICAgdmFyIHBhaXIgPSBba2V5LCB2YWx1ZV07CiAgICAgIHBhaXIua2V5ID0ga2V5OwogICAg
ICBwYWlyLnZhbHVlID0gdmFsdWU7CiAgICAgIGl0ZXJhdG9yKHBhaXIpOwogICAgfQogIH0sCgog
IGtleXM6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMucGx1Y2soJ2tleScpOwogIH0sCgog
IHZhbHVlczogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5wbHVjaygndmFsdWUnKTsKICB9
LAoKICBtZXJnZTogZnVuY3Rpb24oaGFzaCkgewogICAgcmV0dXJuICRIKGhhc2gpLmluamVjdCgk
SCh0aGlzKSwgZnVuY3Rpb24obWVyZ2VkSGFzaCwgcGFpcikgewogICAgICBtZXJnZWRIYXNoW3Bh
aXIua2V5XSA9IHBhaXIudmFsdWU7CiAgICAgIHJldHVybiBtZXJnZWRIYXNoOwogICAgfSk7CiAg
fSwKCiAgdG9RdWVyeVN0cmluZzogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5tYXAoZnVu
Y3Rpb24ocGFpcikgewogICAgICByZXR1cm4gcGFpci5tYXAoZW5jb2RlVVJJQ29tcG9uZW50KS5q
b2luKCc9Jyk7CiAgICB9KS5qb2luKCcmJyk7CiAgfSwKCiAgaW5zcGVjdDogZnVuY3Rpb24oKSB7
CiAgICByZXR1cm4gJyM8SGFzaDp7JyArIHRoaXMubWFwKGZ1bmN0aW9uKHBhaXIpIHsKICAgICAg
cmV0dXJuIHBhaXIubWFwKE9iamVjdC5pbnNwZWN0KS5qb2luKCc6ICcpOwogICAgfSkuam9pbign
LCAnKSArICd9Pic7CiAgfQp9CgpmdW5jdGlvbiAkSChvYmplY3QpIHsKICB2YXIgaGFzaCA9IE9i
amVjdC5leHRlbmQoe30sIG9iamVjdCB8fCB7fSk7CiAgT2JqZWN0LmV4dGVuZChoYXNoLCBFbnVt
ZXJhYmxlKTsKICBPYmplY3QuZXh0ZW5kKGhhc2gsIEhhc2gpOwogIHJldHVybiBoYXNoOwp9Ck9i
amVjdFJhbmdlID0gQ2xhc3MuY3JlYXRlKCk7Ck9iamVjdC5leHRlbmQoT2JqZWN0UmFuZ2UucHJv
dG90eXBlLCBFbnVtZXJhYmxlKTsKT2JqZWN0LmV4dGVuZChPYmplY3RSYW5nZS5wcm90b3R5cGUs
IHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihzdGFydCwgZW5kLCBleGNsdXNpdmUpIHsKICAgIHRo
aXMuc3RhcnQgPSBzdGFydDsKICAgIHRoaXMuZW5kID0gZW5kOwogICAgdGhpcy5leGNsdXNpdmUg
PSBleGNsdXNpdmU7CiAgfSwKCiAgX2VhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB2YXIg
dmFsdWUgPSB0aGlzLnN0YXJ0OwogICAgZG8gewogICAgICBpdGVyYXRvcih2YWx1ZSk7CiAgICAg
IHZhbHVlID0gdmFsdWUuc3VjYygpOwogICAgfSB3aGlsZSAodGhpcy5pbmNsdWRlKHZhbHVlKSk7
CiAgfSwKCiAgaW5jbHVkZTogZnVuY3Rpb24odmFsdWUpIHsKICAgIGlmICh2YWx1ZSA8IHRoaXMu
c3RhcnQpCiAgICAgIHJldHVybiBmYWxzZTsKICAgIGlmICh0aGlzLmV4Y2x1c2l2ZSkKICAgICAg
cmV0dXJuIHZhbHVlIDwgdGhpcy5lbmQ7CiAgICByZXR1cm4gdmFsdWUgPD0gdGhpcy5lbmQ7CiAg
fQp9KTsKCnZhciAkUiA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQsIGV4Y2x1c2l2ZSkgewogIHJldHVy
biBuZXcgT2JqZWN0UmFuZ2Uoc3RhcnQsIGVuZCwgZXhjbHVzaXZlKTsKfQoKdmFyIEFqYXggPSB7
CiAgZ2V0VHJhbnNwb3J0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBUcnkudGhlc2UoCiAgICAg
IGZ1bmN0aW9uKCkge3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKX0s
CiAgICAgIGZ1bmN0aW9uKCkge3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhN
TEhUVFAnKX0sCiAgICAgIGZ1bmN0aW9uKCkge3JldHVybiBuZXcgWE1MSHR0cFJlcXVlc3QoKX0K
ICAgICkgfHwgZmFsc2U7CiAgfSwKCiAgYWN0aXZlUmVxdWVzdENvdW50OiAwCn0KCkFqYXguUmVz
cG9uZGVycyA9IHsKICByZXNwb25kZXJzOiBbXSwKCiAgX2VhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9y
KSB7CiAgICB0aGlzLnJlc3BvbmRlcnMuX2VhY2goaXRlcmF0b3IpOwogIH0sCgogIHJlZ2lzdGVy
OiBmdW5jdGlvbihyZXNwb25kZXJUb0FkZCkgewogICAgaWYgKCF0aGlzLmluY2x1ZGUocmVzcG9u
ZGVyVG9BZGQpKQogICAgICB0aGlzLnJlc3BvbmRlcnMucHVzaChyZXNwb25kZXJUb0FkZCk7CiAg
fSwKCiAgdW5yZWdpc3RlcjogZnVuY3Rpb24ocmVzcG9uZGVyVG9SZW1vdmUpIHsKICAgIHRoaXMu
cmVzcG9uZGVycyA9IHRoaXMucmVzcG9uZGVycy53aXRob3V0KHJlc3BvbmRlclRvUmVtb3ZlKTsK
ICB9LAoKICBkaXNwYXRjaDogZnVuY3Rpb24oY2FsbGJhY2ssIHJlcXVlc3QsIHRyYW5zcG9ydCwg
anNvbikgewogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHJlc3BvbmRlcikgewogICAgICBpZiAocmVz
cG9uZGVyW2NhbGxiYWNrXSAmJiB0eXBlb2YgcmVzcG9uZGVyW2NhbGxiYWNrXSA9PSAnZnVuY3Rp
b24nKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJlc3BvbmRlcltjYWxsYmFja10uYXBwbHko
cmVzcG9uZGVyLCBbcmVxdWVzdCwgdHJhbnNwb3J0LCBqc29uXSk7CiAgICAgICAgfSBjYXRjaCAo
ZSkge30KICAgICAgfQogICAgfSk7CiAgfQp9OwoKT2JqZWN0LmV4dGVuZChBamF4LlJlc3BvbmRl
cnMsIEVudW1lcmFibGUpOwoKQWpheC5SZXNwb25kZXJzLnJlZ2lzdGVyKHsKICBvbkNyZWF0ZTog
ZnVuY3Rpb24oKSB7CiAgICBBamF4LmFjdGl2ZVJlcXVlc3RDb3VudCsrOwogIH0sCgogIG9uQ29t
cGxldGU6IGZ1bmN0aW9uKCkgewogICAgQWpheC5hY3RpdmVSZXF1ZXN0Q291bnQtLTsKICB9Cn0p
OwoKQWpheC5CYXNlID0gZnVuY3Rpb24oKSB7fTsKQWpheC5CYXNlLnByb3RvdHlwZSA9IHsKICBz
ZXRPcHRpb25zOiBmdW5jdGlvbihvcHRpb25zKSB7CiAgICB0aGlzLm9wdGlvbnMgPSB7CiAgICAg
IG1ldGhvZDogICAgICAgJ3Bvc3QnLAogICAgICBhc3luY2hyb25vdXM6IHRydWUsCiAgICAgIHBh
cmFtZXRlcnM6ICAgJycKICAgIH0KICAgIE9iamVjdC5leHRlbmQodGhpcy5vcHRpb25zLCBvcHRp
b25zIHx8IHt9KTsKICB9LAoKICByZXNwb25zZUlzU3VjY2VzczogZnVuY3Rpb24oKSB7CiAgICBy
ZXR1cm4gdGhpcy50cmFuc3BvcnQuc3RhdHVzID09IHVuZGVmaW5lZAogICAgICAgIHx8IHRoaXMu
dHJhbnNwb3J0LnN0YXR1cyA9PSAwCiAgICAgICAgfHwgKHRoaXMudHJhbnNwb3J0LnN0YXR1cyA+
PSAyMDAgJiYgdGhpcy50cmFuc3BvcnQuc3RhdHVzIDwgMzAwKTsKICB9LAoKICByZXNwb25zZUlz
RmFpbHVyZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gIXRoaXMucmVzcG9uc2VJc1N1Y2Nlc3Mo
KTsKICB9Cn0KCkFqYXguUmVxdWVzdCA9IENsYXNzLmNyZWF0ZSgpOwpBamF4LlJlcXVlc3QuRXZl
bnRzID0KICBbJ1VuaW5pdGlhbGl6ZWQnLCAnTG9hZGluZycsICdMb2FkZWQnLCAnSW50ZXJhY3Rp
dmUnLCAnQ29tcGxldGUnXTsKCkFqYXguUmVxdWVzdC5wcm90b3R5cGUgPSBPYmplY3QuZXh0ZW5k
KG5ldyBBamF4LkJhc2UoKSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVybCwgb3B0aW9ucykg
ewogICAgdGhpcy50cmFuc3BvcnQgPSBBamF4LmdldFRyYW5zcG9ydCgpOwogICAgdGhpcy5zZXRP
cHRpb25zKG9wdGlvbnMpOwogICAgdGhpcy5yZXF1ZXN0KHVybCk7CiAgfSwKCiAgcmVxdWVzdDog
ZnVuY3Rpb24odXJsKSB7CiAgICB2YXIgcGFyYW1ldGVycyA9IHRoaXMub3B0aW9ucy5wYXJhbWV0
ZXJzIHx8ICcnOwogICAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoID4gMCkgcGFyYW1ldGVycyArPSAn
Jl89JzsKCiAgICB0cnkgewogICAgICB0aGlzLnVybCA9IHVybDsKICAgICAgaWYgKHRoaXMub3B0
aW9ucy5tZXRob2QgPT0gJ2dldCcgJiYgcGFyYW1ldGVycy5sZW5ndGggPiAwKQogICAgICAgIHRo
aXMudXJsICs9ICh0aGlzLnVybC5tYXRjaCgvXD8vKSA/ICcmJyA6ICc/JykgKyBwYXJhbWV0ZXJz
OwoKICAgICAgQWpheC5SZXNwb25kZXJzLmRpc3BhdGNoKCdvbkNyZWF0ZScsIHRoaXMsIHRoaXMu
dHJhbnNwb3J0KTsKCiAgICAgIHRoaXMudHJhbnNwb3J0Lm9wZW4odGhpcy5vcHRpb25zLm1ldGhv
ZCwgdGhpcy51cmwsCiAgICAgICAgdGhpcy5vcHRpb25zLmFzeW5jaHJvbm91cyk7CgogICAgICBp
ZiAodGhpcy5vcHRpb25zLmFzeW5jaHJvbm91cykgewogICAgICAgIHRoaXMudHJhbnNwb3J0Lm9u
cmVhZHlzdGF0ZWNoYW5nZSA9IHRoaXMub25TdGF0ZUNoYW5nZS5iaW5kKHRoaXMpOwogICAgICAg
IHNldFRpbWVvdXQoKGZ1bmN0aW9uKCkge3RoaXMucmVzcG9uZFRvUmVhZHlTdGF0ZSgxKX0pLmJp
bmQodGhpcyksIDEwKTsKICAgICAgfQoKICAgICAgdGhpcy5zZXRSZXF1ZXN0SGVhZGVycygpOwoK
ICAgICAgdmFyIGJvZHkgPSB0aGlzLm9wdGlvbnMucG9zdEJvZHkgPyB0aGlzLm9wdGlvbnMucG9z
dEJvZHkgOiBwYXJhbWV0ZXJzOwogICAgICB0aGlzLnRyYW5zcG9ydC5zZW5kKHRoaXMub3B0aW9u
cy5tZXRob2QgPT0gJ3Bvc3QnID8gYm9keSA6IG51bGwpOwoKICAgIH0gY2F0Y2ggKGUpIHsKICAg
ICAgdGhpcy5kaXNwYXRjaEV4Y2VwdGlvbihlKTsKICAgIH0KICB9LAoKICBzZXRSZXF1ZXN0SGVh
ZGVyczogZnVuY3Rpb24oKSB7CiAgICB2YXIgcmVxdWVzdEhlYWRlcnMgPQogICAgICBbJ1gtUmVx
dWVzdGVkLVdpdGgnLCAnWE1MSHR0cFJlcXVlc3QnLAogICAgICAgJ1gtUHJvdG90eXBlLVZlcnNp
b24nLCBQcm90b3R5cGUuVmVyc2lvbl07CgogICAgaWYgKHRoaXMub3B0aW9ucy5tZXRob2QgPT0g
J3Bvc3QnKSB7CiAgICAgIHJlcXVlc3RIZWFkZXJzLnB1c2goJ0NvbnRlbnQtdHlwZScsCiAgICAg
ICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpOwoKICAgICAgLyogRm9yY2Ug
IkNvbm5lY3Rpb246IGNsb3NlIiBmb3IgTW96aWxsYSBicm93c2VycyB0byB3b3JrIGFyb3VuZAog
ICAgICAgKiBhIGJ1ZyB3aGVyZSBYTUxIdHRwUmVxZXVlc3Qgc2VuZHMgYW4gaW5jb3JyZWN0IENv
bnRlbnQtbGVuZ3RoCiAgICAgICAqIGhlYWRlci4gU2VlIE1vemlsbGEgQnVnemlsbGEgIzI0NjY1
MS4KICAgICAgICovCiAgICAgIGlmICh0aGlzLnRyYW5zcG9ydC5vdmVycmlkZU1pbWVUeXBlKQog
ICAgICAgIHJlcXVlc3RIZWFkZXJzLnB1c2goJ0Nvbm5lY3Rpb24nLCAnY2xvc2UnKTsKICAgIH0K
CiAgICBpZiAodGhpcy5vcHRpb25zLnJlcXVlc3RIZWFkZXJzKQogICAgICByZXF1ZXN0SGVhZGVy
cy5wdXNoLmFwcGx5KHJlcXVlc3RIZWFkZXJzLCB0aGlzLm9wdGlvbnMucmVxdWVzdEhlYWRlcnMp
OwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVxdWVzdEhlYWRlcnMubGVuZ3RoOyBpICs9IDIp
CiAgICAgIHRoaXMudHJhbnNwb3J0LnNldFJlcXVlc3RIZWFkZXIocmVxdWVzdEhlYWRlcnNbaV0s
IHJlcXVlc3RIZWFkZXJzW2krMV0pOwogIH0sCgogIG9uU3RhdGVDaGFuZ2U6IGZ1bmN0aW9uKCkg
ewogICAgdmFyIHJlYWR5U3RhdGUgPSB0aGlzLnRyYW5zcG9ydC5yZWFkeVN0YXRlOwogICAgaWYg
KHJlYWR5U3RhdGUgIT0gMSkKICAgICAgdGhpcy5yZXNwb25kVG9SZWFkeVN0YXRlKHRoaXMudHJh
bnNwb3J0LnJlYWR5U3RhdGUpOwogIH0sCgogIGhlYWRlcjogZnVuY3Rpb24obmFtZSkgewogICAg
dHJ5IHsKICAgICAgcmV0dXJuIHRoaXMudHJhbnNwb3J0LmdldFJlc3BvbnNlSGVhZGVyKG5hbWUp
OwogICAgfSBjYXRjaCAoZSkge30KICB9LAoKICBldmFsSlNPTjogZnVuY3Rpb24oKSB7CiAgICB0
cnkgewogICAgICByZXR1cm4gZXZhbCh0aGlzLmhlYWRlcignWC1KU09OJykpOwogICAgfSBjYXRj
aCAoZSkge30KICB9LAoKICBldmFsUmVzcG9uc2U6IGZ1bmN0aW9uKCkgewogICAgdHJ5IHsKICAg
ICAgcmV0dXJuIGV2YWwodGhpcy50cmFuc3BvcnQucmVzcG9uc2VUZXh0KTsKICAgIH0gY2F0Y2gg
KGUpIHsKICAgICAgdGhpcy5kaXNwYXRjaEV4Y2VwdGlvbihlKTsKICAgIH0KICB9LAoKICByZXNw
b25kVG9SZWFkeVN0YXRlOiBmdW5jdGlvbihyZWFkeVN0YXRlKSB7CiAgICB2YXIgZXZlbnQgPSBB
amF4LlJlcXVlc3QuRXZlbnRzW3JlYWR5U3RhdGVdOwogICAgdmFyIHRyYW5zcG9ydCA9IHRoaXMu
dHJhbnNwb3J0LCBqc29uID0gdGhpcy5ldmFsSlNPTigpOwoKICAgIGlmIChldmVudCA9PSAnQ29t
cGxldGUnKSB7CiAgICAgIHRyeSB7CiAgICAgICAgKHRoaXMub3B0aW9uc1snb24nICsgdGhpcy50
cmFuc3BvcnQuc3RhdHVzXQogICAgICAgICB8fCB0aGlzLm9wdGlvbnNbJ29uJyArICh0aGlzLnJl
c3BvbnNlSXNTdWNjZXNzKCkgPyAnU3VjY2VzcycgOiAnRmFpbHVyZScpXQogICAgICAgICB8fCBQ
cm90b3R5cGUuZW1wdHlGdW5jdGlvbikodHJhbnNwb3J0LCBqc29uKTsKICAgICAgfSBjYXRjaCAo
ZSkgewogICAgICAgIHRoaXMuZGlzcGF0Y2hFeGNlcHRpb24oZSk7CiAgICAgIH0KCiAgICAgIGlm
ICgodGhpcy5oZWFkZXIoJ0NvbnRlbnQtdHlwZScpIHx8ICcnKS5tYXRjaCgvXnRleHRcL2phdmFz
Y3JpcHQvaSkpCiAgICAgICAgdGhpcy5ldmFsUmVzcG9uc2UoKTsKICAgIH0KCiAgICB0cnkgewog
ICAgICAodGhpcy5vcHRpb25zWydvbicgKyBldmVudF0gfHwgUHJvdG90eXBlLmVtcHR5RnVuY3Rp
b24pKHRyYW5zcG9ydCwganNvbik7CiAgICAgIEFqYXguUmVzcG9uZGVycy5kaXNwYXRjaCgnb24n
ICsgZXZlbnQsIHRoaXMsIHRyYW5zcG9ydCwganNvbik7CiAgICB9IGNhdGNoIChlKSB7CiAgICAg
IHRoaXMuZGlzcGF0Y2hFeGNlcHRpb24oZSk7CiAgICB9CgogICAgLyogQXZvaWQgbWVtb3J5IGxl
YWsgaW4gTVNJRTogY2xlYW4gdXAgdGhlIG9uY29tcGxldGUgZXZlbnQgaGFuZGxlciAqLwogICAg
aWYgKGV2ZW50ID09ICdDb21wbGV0ZScpCiAgICAgIHRoaXMudHJhbnNwb3J0Lm9ucmVhZHlzdGF0
ZWNoYW5nZSA9IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwogIH0sCgogIGRpc3BhdGNoRXhjZXB0
aW9uOiBmdW5jdGlvbihleGNlcHRpb24pIHsKICAgICh0aGlzLm9wdGlvbnMub25FeGNlcHRpb24g
fHwgUHJvdG90eXBlLmVtcHR5RnVuY3Rpb24pKHRoaXMsIGV4Y2VwdGlvbik7CiAgICBBamF4LlJl
c3BvbmRlcnMuZGlzcGF0Y2goJ29uRXhjZXB0aW9uJywgdGhpcywgZXhjZXB0aW9uKTsKICB9Cn0p
OwoKQWpheC5VcGRhdGVyID0gQ2xhc3MuY3JlYXRlKCk7CgpPYmplY3QuZXh0ZW5kKE9iamVjdC5l
eHRlbmQoQWpheC5VcGRhdGVyLnByb3RvdHlwZSwgQWpheC5SZXF1ZXN0LnByb3RvdHlwZSksIHsK
ICBpbml0aWFsaXplOiBmdW5jdGlvbihjb250YWluZXIsIHVybCwgb3B0aW9ucykgewogICAgdGhp
cy5jb250YWluZXJzID0gewogICAgICBzdWNjZXNzOiBjb250YWluZXIuc3VjY2VzcyA/ICQoY29u
dGFpbmVyLnN1Y2Nlc3MpIDogJChjb250YWluZXIpLAogICAgICBmYWlsdXJlOiBjb250YWluZXIu
ZmFpbHVyZSA/ICQoY29udGFpbmVyLmZhaWx1cmUpIDoKICAgICAgICAoY29udGFpbmVyLnN1Y2Nl
c3MgPyBudWxsIDogJChjb250YWluZXIpKQogICAgfQoKICAgIHRoaXMudHJhbnNwb3J0ID0gQWph
eC5nZXRUcmFuc3BvcnQoKTsKICAgIHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zKTsKCiAgICB2YXIg
b25Db21wbGV0ZSA9IHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlIHx8IFByb3RvdHlwZS5lbXB0eUZ1
bmN0aW9uOwogICAgdGhpcy5vcHRpb25zLm9uQ29tcGxldGUgPSAoZnVuY3Rpb24odHJhbnNwb3J0
LCBvYmplY3QpIHsKICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7CiAgICAgIG9uQ29tcGxldGUo
dHJhbnNwb3J0LCBvYmplY3QpOwogICAgfSkuYmluZCh0aGlzKTsKCiAgICB0aGlzLnJlcXVlc3Qo
dXJsKTsKICB9LAoKICB1cGRhdGVDb250ZW50OiBmdW5jdGlvbigpIHsKICAgIHZhciByZWNlaXZl
ciA9IHRoaXMucmVzcG9uc2VJc1N1Y2Nlc3MoKSA/CiAgICAgIHRoaXMuY29udGFpbmVycy5zdWNj
ZXNzIDogdGhpcy5jb250YWluZXJzLmZhaWx1cmU7CiAgICB2YXIgcmVzcG9uc2UgPSB0aGlzLnRy
YW5zcG9ydC5yZXNwb25zZVRleHQ7CgogICAgaWYgKCF0aGlzLm9wdGlvbnMuZXZhbFNjcmlwdHMp
CiAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2Uuc3RyaXBTY3JpcHRzKCk7CgogICAgaWYgKHJlY2Vp
dmVyKSB7CiAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW5zZXJ0aW9uKSB7CiAgICAgICAgbmV3IHRo
aXMub3B0aW9ucy5pbnNlcnRpb24ocmVjZWl2ZXIsIHJlc3BvbnNlKTsKICAgICAgfSBlbHNlIHsK
ICAgICAgICBFbGVtZW50LnVwZGF0ZShyZWNlaXZlciwgcmVzcG9uc2UpOwogICAgICB9CiAgICB9
CgogICAgaWYgKHRoaXMucmVzcG9uc2VJc1N1Y2Nlc3MoKSkgewogICAgICBpZiAodGhpcy5vbkNv
bXBsZXRlKQogICAgICAgIHNldFRpbWVvdXQodGhpcy5vbkNvbXBsZXRlLmJpbmQodGhpcyksIDEw
KTsKICAgIH0KICB9Cn0pOwoKQWpheC5QZXJpb2RpY2FsVXBkYXRlciA9IENsYXNzLmNyZWF0ZSgp
OwpBamF4LlBlcmlvZGljYWxVcGRhdGVyLnByb3RvdHlwZSA9IE9iamVjdC5leHRlbmQobmV3IEFq
YXguQmFzZSgpLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oY29udGFpbmVyLCB1cmwsIG9wdGlv
bnMpIHsKICAgIHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zKTsKICAgIHRoaXMub25Db21wbGV0ZSA9
IHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlOwoKICAgIHRoaXMuZnJlcXVlbmN5ID0gKHRoaXMub3B0
aW9ucy5mcmVxdWVuY3kgfHwgMik7CiAgICB0aGlzLmRlY2F5ID0gKHRoaXMub3B0aW9ucy5kZWNh
eSB8fCAxKTsKCiAgICB0aGlzLnVwZGF0ZXIgPSB7fTsKICAgIHRoaXMuY29udGFpbmVyID0gY29u
dGFpbmVyOwogICAgdGhpcy51cmwgPSB1cmw7CgogICAgdGhpcy5zdGFydCgpOwogIH0sCgogIHN0
YXJ0OiBmdW5jdGlvbigpIHsKICAgIHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlID0gdGhpcy51cGRh
dGVDb21wbGV0ZS5iaW5kKHRoaXMpOwogICAgdGhpcy5vblRpbWVyRXZlbnQoKTsKICB9LAoKICBz
dG9wOiBmdW5jdGlvbigpIHsKICAgIHRoaXMudXBkYXRlci5vbkNvbXBsZXRlID0gdW5kZWZpbmVk
OwogICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpOwogICAgKHRoaXMub25Db21wbGV0ZSB8fCBQ
cm90b3R5cGUuZW1wdHlGdW5jdGlvbikuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICB9LAoKICB1
cGRhdGVDb21wbGV0ZTogZnVuY3Rpb24ocmVxdWVzdCkgewogICAgaWYgKHRoaXMub3B0aW9ucy5k
ZWNheSkgewogICAgICB0aGlzLmRlY2F5ID0gKHJlcXVlc3QucmVzcG9uc2VUZXh0ID09IHRoaXMu
bGFzdFRleHQgPwogICAgICAgIHRoaXMuZGVjYXkgKiB0aGlzLm9wdGlvbnMuZGVjYXkgOiAxKTsK
CiAgICAgIHRoaXMubGFzdFRleHQgPSByZXF1ZXN0LnJlc3BvbnNlVGV4dDsKICAgIH0KICAgIHRo
aXMudGltZXIgPSBzZXRUaW1lb3V0KHRoaXMub25UaW1lckV2ZW50LmJpbmQodGhpcyksCiAgICAg
IHRoaXMuZGVjYXkgKiB0aGlzLmZyZXF1ZW5jeSAqIDEwMDApOwogIH0sCgogIG9uVGltZXJFdmVu
dDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnVwZGF0ZXIgPSBuZXcgQWpheC5VcGRhdGVyKHRoaXMu
Y29udGFpbmVyLCB0aGlzLnVybCwgdGhpcy5vcHRpb25zKTsKICB9Cn0pOwpkb2N1bWVudC5nZXRF
bGVtZW50c0J5Q2xhc3NOYW1lID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBwYXJlbnRFbGVtZW50KSB7
CiAgdmFyIGNoaWxkcmVuID0gKCQocGFyZW50RWxlbWVudCkgfHwgZG9jdW1lbnQuYm9keSkuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJyonKTsKICByZXR1cm4gJEEoY2hpbGRyZW4pLmluamVjdChbXSwg
ZnVuY3Rpb24oZWxlbWVudHMsIGNoaWxkKSB7CiAgICBpZiAoY2hpbGQuY2xhc3NOYW1lLm1hdGNo
KG5ldyBSZWdFeHAoIihefFxccykiICsgY2xhc3NOYW1lICsgIihcXHN8JCkiKSkpCiAgICAgIGVs
ZW1lbnRzLnB1c2goY2hpbGQpOwogICAgcmV0dXJuIGVsZW1lbnRzOwogIH0pOwp9CgovKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KCmlmICghd2luZG93LkVsZW1lbnQpIHsKICB2YXIgRWxlbWVudCA9IG5l
dyBPYmplY3QoKTsKfQoKT2JqZWN0LmV4dGVuZChFbGVtZW50LCB7CiAgdmlzaWJsZTogZnVuY3Rp
b24oZWxlbWVudCkgewogICAgcmV0dXJuICQoZWxlbWVudCkuc3R5bGUuZGlzcGxheSAhPSAnbm9u
ZSc7CiAgfSwKCiAgdG9nZ2xlOiBmdW5jdGlvbigpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBlbGVtZW50ID0gJChhcmd1bWVudHNb
aV0pOwogICAgICBFbGVtZW50W0VsZW1lbnQudmlzaWJsZShlbGVtZW50KSA/ICdoaWRlJyA6ICdz
aG93J10oZWxlbWVudCk7CiAgICB9CiAgfSwKCiAgaGlkZTogZnVuY3Rpb24oKSB7CiAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgZWxlbWVu
dCA9ICQoYXJndW1lbnRzW2ldKTsKICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUn
OwogICAgfQogIH0sCgogIHNob3c6IGZ1bmN0aW9uKCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGVsZW1lbnQgPSAkKGFyZ3VtZW50
c1tpXSk7CiAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgfQogIH0sCgogIHJl
bW92ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBl
bGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7CiAgfSwKCiAgdXBkYXRlOiBm
dW5jdGlvbihlbGVtZW50LCBodG1sKSB7CiAgICAkKGVsZW1lbnQpLmlubmVySFRNTCA9IGh0bWwu
c3RyaXBTY3JpcHRzKCk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge2h0bWwuZXZhbFNjcmlw
dHMoKX0sIDEwKTsKICB9LAoKICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVs
ZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0SGVpZ2h0OwogIH0s
CgogIGNsYXNzTmFtZXM6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiBuZXcgRWxlbWVu
dC5DbGFzc05hbWVzKGVsZW1lbnQpOwogIH0sCgogIGhhc0NsYXNzTmFtZTogZnVuY3Rpb24oZWxl
bWVudCwgY2xhc3NOYW1lKSB7CiAgICBpZiAoIShlbGVtZW50ID0gJChlbGVtZW50KSkpIHJldHVy
bjsKICAgIHJldHVybiBFbGVtZW50LmNsYXNzTmFtZXMoZWxlbWVudCkuaW5jbHVkZShjbGFzc05h
bWUpOwogIH0sCgogIGFkZENsYXNzTmFtZTogZnVuY3Rpb24oZWxlbWVudCwgY2xhc3NOYW1lKSB7
CiAgICBpZiAoIShlbGVtZW50ID0gJChlbGVtZW50KSkpIHJldHVybjsKICAgIHJldHVybiBFbGVt
ZW50LmNsYXNzTmFtZXMoZWxlbWVudCkuYWRkKGNsYXNzTmFtZSk7CiAgfSwKCiAgcmVtb3ZlQ2xh
c3NOYW1lOiBmdW5jdGlvbihlbGVtZW50LCBjbGFzc05hbWUpIHsKICAgIGlmICghKGVsZW1lbnQg
PSAkKGVsZW1lbnQpKSkgcmV0dXJuOwogICAgcmV0dXJuIEVsZW1lbnQuY2xhc3NOYW1lcyhlbGVt
ZW50KS5yZW1vdmUoY2xhc3NOYW1lKTsKICB9LAoKICAvLyByZW1vdmVzIHdoaXRlc3BhY2Utb25s
eSB0ZXh0IG5vZGUgY2hpbGRyZW4KICBjbGVhbldoaXRlc3BhY2U6IGZ1bmN0aW9uKGVsZW1lbnQp
IHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVt
ZW50LmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIG5vZGUgPSBlbGVtZW50LmNo
aWxkTm9kZXNbaV07CiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDMgJiYgIS9cUy8udGVzdChu
b2RlLm5vZGVWYWx1ZSkpCiAgICAgICAgRWxlbWVudC5yZW1vdmUobm9kZSk7CiAgICB9CiAgfSwK
CiAgZW1wdHk6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQpLmlubmVy
SFRNTC5tYXRjaCgvXlxzKiQvKTsKICB9LAoKICBzY3JvbGxUbzogZnVuY3Rpb24oZWxlbWVudCkg
ewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgeCA9IGVsZW1lbnQueCA/IGVsZW1l
bnQueCA6IGVsZW1lbnQub2Zmc2V0TGVmdCwKICAgICAgICB5ID0gZWxlbWVudC55ID8gZWxlbWVu
dC55IDogZWxlbWVudC5vZmZzZXRUb3A7CiAgICB3aW5kb3cuc2Nyb2xsVG8oeCwgeSk7CiAgfSwK
CiAgZ2V0U3R5bGU6IGZ1bmN0aW9uKGVsZW1lbnQsIHN0eWxlKSB7CiAgICBlbGVtZW50ID0gJChl
bGVtZW50KTsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQuc3R5bGVbc3R5bGUuY2FtZWxpemUoKV07
CiAgICBpZiAoIXZhbHVlKSB7CiAgICAgIGlmIChkb2N1bWVudC5kZWZhdWx0VmlldyAmJiBkb2N1
bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKSB7CiAgICAgICAgdmFyIGNzcyA9IGRv
Y3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7CiAgICAg
ICAgdmFsdWUgPSBjc3MgPyBjc3MuZ2V0UHJvcGVydHlWYWx1ZShzdHlsZSkgOiBudWxsOwogICAg
ICB9IGVsc2UgaWYgKGVsZW1lbnQuY3VycmVudFN0eWxlKSB7CiAgICAgICAgdmFsdWUgPSBlbGVt
ZW50LmN1cnJlbnRTdHlsZVtzdHlsZS5jYW1lbGl6ZSgpXTsKICAgICAgfQogICAgfQoKICAgIGlm
ICh3aW5kb3cub3BlcmEgJiYgWydsZWZ0JywgJ3RvcCcsICdyaWdodCcsICdib3R0b20nXS5pbmNs
dWRlKHN0eWxlKSkKICAgICAgaWYgKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9u
JykgPT0gJ3N0YXRpYycpIHZhbHVlID0gJ2F1dG8nOwoKICAgIHJldHVybiB2YWx1ZSA9PSAnYXV0
bycgPyBudWxsIDogdmFsdWU7CiAgfSwKCiAgc2V0U3R5bGU6IGZ1bmN0aW9uKGVsZW1lbnQsIHN0
eWxlKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGZvciAobmFtZSBpbiBzdHlsZSkK
ICAgICAgZWxlbWVudC5zdHlsZVtuYW1lLmNhbWVsaXplKCldID0gc3R5bGVbbmFtZV07CiAgfSwK
CiAgZ2V0RGltZW5zaW9uczogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxl
bWVudCk7CiAgICBpZiAoRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAnZGlzcGxheScpICE9ICdu
b25lJykKICAgICAgcmV0dXJuIHt3aWR0aDogZWxlbWVudC5vZmZzZXRXaWR0aCwgaGVpZ2h0OiBl
bGVtZW50Lm9mZnNldEhlaWdodH07CgogICAgLy8gQWxsICpXaWR0aCBhbmQgKkhlaWdodCBwcm9w
ZXJ0aWVzIGdpdmUgMCBvbiBlbGVtZW50cyB3aXRoIGRpc3BsYXkgbm9uZSwKICAgIC8vIHNvIGVu
YWJsZSB0aGUgZWxlbWVudCB0ZW1wb3JhcmlseQogICAgdmFyIGVscyA9IGVsZW1lbnQuc3R5bGU7
CiAgICB2YXIgb3JpZ2luYWxWaXNpYmlsaXR5ID0gZWxzLnZpc2liaWxpdHk7CiAgICB2YXIgb3Jp
Z2luYWxQb3NpdGlvbiA9IGVscy5wb3NpdGlvbjsKICAgIGVscy52aXNpYmlsaXR5ID0gJ2hpZGRl
bic7CiAgICBlbHMucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgZWxzLmRpc3BsYXkgPSAnJzsK
ICAgIHZhciBvcmlnaW5hbFdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDsKICAgIHZhciBvcmln
aW5hbEhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0OwogICAgZWxzLmRpc3BsYXkgPSAnbm9u
ZSc7CiAgICBlbHMucG9zaXRpb24gPSBvcmlnaW5hbFBvc2l0aW9uOwogICAgZWxzLnZpc2liaWxp
dHkgPSBvcmlnaW5hbFZpc2liaWxpdHk7CiAgICByZXR1cm4ge3dpZHRoOiBvcmlnaW5hbFdpZHRo
LCBoZWlnaHQ6IG9yaWdpbmFsSGVpZ2h0fTsKICB9LAoKICBtYWtlUG9zaXRpb25lZDogZnVuY3Rp
b24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgcG9zID0gRWxl
bWVudC5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKTsKICAgIGlmIChwb3MgPT0gJ3N0YXRp
YycgfHwgIXBvcykgewogICAgICBlbGVtZW50Ll9tYWRlUG9zaXRpb25lZCA9IHRydWU7CiAgICAg
IGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnOwogICAgICAvLyBPcGVyYSByZXR1
cm5zIHRoZSBvZmZzZXQgcmVsYXRpdmUgdG8gdGhlIHBvc2l0aW9uaW5nIGNvbnRleHQsIHdoZW4g
YW4KICAgICAgLy8gZWxlbWVudCBpcyBwb3NpdGlvbiByZWxhdGl2ZSBidXQgdG9wIGFuZCBsZWZ0
IGhhdmUgbm90IGJlZW4gZGVmaW5lZAogICAgICBpZiAod2luZG93Lm9wZXJhKSB7CiAgICAgICAg
ZWxlbWVudC5zdHlsZS50b3AgPSAwOwogICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IDA7CiAg
ICAgIH0KICAgIH0KICB9LAoKICB1bmRvUG9zaXRpb25lZDogZnVuY3Rpb24oZWxlbWVudCkgewog
ICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoZWxlbWVudC5fbWFkZVBvc2l0aW9uZWQp
IHsKICAgICAgZWxlbWVudC5fbWFkZVBvc2l0aW9uZWQgPSB1bmRlZmluZWQ7CiAgICAgIGVsZW1l
bnQuc3R5bGUucG9zaXRpb24gPQogICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0KICAgICAgICBl
bGVtZW50LnN0eWxlLmxlZnQgPQogICAgICAgIGVsZW1lbnQuc3R5bGUuYm90dG9tID0KICAgICAg
ICBlbGVtZW50LnN0eWxlLnJpZ2h0ID0gJyc7CiAgICB9CiAgfSwKCiAgbWFrZUNsaXBwaW5nOiBm
dW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChlbGVt
ZW50Ll9vdmVyZmxvdykgcmV0dXJuOwogICAgZWxlbWVudC5fb3ZlcmZsb3cgPSBlbGVtZW50LnN0
eWxlLm92ZXJmbG93OwogICAgaWYgKChFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdvdmVyZmxv
dycpIHx8ICd2aXNpYmxlJykgIT0gJ2hpZGRlbicpCiAgICAgIGVsZW1lbnQuc3R5bGUub3ZlcmZs
b3cgPSAnaGlkZGVuJzsKICB9LAoKICB1bmRvQ2xpcHBpbmc6IGZ1bmN0aW9uKGVsZW1lbnQpIHsK
ICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGVsZW1lbnQuX292ZXJmbG93KSByZXR1
cm47CiAgICBlbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gZWxlbWVudC5fb3ZlcmZsb3c7CiAgICBl
bGVtZW50Ll9vdmVyZmxvdyA9IHVuZGVmaW5lZDsKICB9Cn0pOwoKdmFyIFRvZ2dsZSA9IG5ldyBP
YmplY3QoKTsKVG9nZ2xlLmRpc3BsYXkgPSBFbGVtZW50LnRvZ2dsZTsKCi8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwoKQWJzdHJhY3QuSW5zZXJ0aW9uID0gZnVuY3Rpb24oYWRqYWNlbmN5KSB7CiAgdGhp
cy5hZGphY2VuY3kgPSBhZGphY2VuY3k7Cn0KCkFic3RyYWN0Lkluc2VydGlvbi5wcm90b3R5cGUg
PSB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCwgY29udGVudCkgewogICAgdGhpcy5l
bGVtZW50ID0gJChlbGVtZW50KTsKICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQuc3RyaXBTY3Jp
cHRzKCk7CgogICAgaWYgKHRoaXMuYWRqYWNlbmN5ICYmIHRoaXMuZWxlbWVudC5pbnNlcnRBZGph
Y2VudEhUTUwpIHsKICAgICAgdHJ5IHsKICAgICAgICB0aGlzLmVsZW1lbnQuaW5zZXJ0QWRqYWNl
bnRIVE1MKHRoaXMuYWRqYWNlbmN5LCB0aGlzLmNvbnRlbnQpOwogICAgICB9IGNhdGNoIChlKSB7
CiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3Rib2R5
JykgewogICAgICAgICAgdGhpcy5pbnNlcnRDb250ZW50KHRoaXMuY29udGVudEZyb21Bbm9ueW1v
dXNUYWJsZSgpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9
CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucmFuZ2UgPSB0aGlzLmVsZW1lbnQub3du
ZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgICBpZiAodGhpcy5pbml0aWFsaXplUmFuZ2Up
IHRoaXMuaW5pdGlhbGl6ZVJhbmdlKCk7CiAgICAgIHRoaXMuaW5zZXJ0Q29udGVudChbdGhpcy5y
YW5nZS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQodGhpcy5jb250ZW50KV0pOwogICAgfQoKICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Y29udGVudC5ldmFsU2NyaXB0cygpfSwgMTApOwogIH0s
CgogIGNvbnRlbnRGcm9tQW5vbnltb3VzVGFibGU6IGZ1bmN0aW9uKCkgewogICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgZGl2LmlubmVySFRNTCA9ICc8dGFi
bGU+PHRib2R5PicgKyB0aGlzLmNvbnRlbnQgKyAnPC90Ym9keT48L3RhYmxlPic7CiAgICByZXR1
cm4gJEEoZGl2LmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlc1swXS5jaGlsZE5vZGVzKTsKICB9Cn0K
CnZhciBJbnNlcnRpb24gPSBuZXcgT2JqZWN0KCk7CgpJbnNlcnRpb24uQmVmb3JlID0gQ2xhc3Mu
Y3JlYXRlKCk7Ckluc2VydGlvbi5CZWZvcmUucHJvdG90eXBlID0gT2JqZWN0LmV4dGVuZChuZXcg
QWJzdHJhY3QuSW5zZXJ0aW9uKCdiZWZvcmVCZWdpbicpLCB7CiAgaW5pdGlhbGl6ZVJhbmdlOiBm
dW5jdGlvbigpIHsKICAgIHRoaXMucmFuZ2Uuc2V0U3RhcnRCZWZvcmUodGhpcy5lbGVtZW50KTsK
ICB9LAoKICBpbnNlcnRDb250ZW50OiBmdW5jdGlvbihmcmFnbWVudHMpIHsKICAgIGZyYWdtZW50
cy5lYWNoKChmdW5jdGlvbihmcmFnbWVudCkgewogICAgICB0aGlzLmVsZW1lbnQucGFyZW50Tm9k
ZS5pbnNlcnRCZWZvcmUoZnJhZ21lbnQsIHRoaXMuZWxlbWVudCk7CiAgICB9KS5iaW5kKHRoaXMp
KTsKICB9Cn0pOwoKSW5zZXJ0aW9uLlRvcCA9IENsYXNzLmNyZWF0ZSgpOwpJbnNlcnRpb24uVG9w
LnByb3RvdHlwZSA9IE9iamVjdC5leHRlbmQobmV3IEFic3RyYWN0Lkluc2VydGlvbignYWZ0ZXJC
ZWdpbicpLCB7CiAgaW5pdGlhbGl6ZVJhbmdlOiBmdW5jdGlvbigpIHsKICAgIHRoaXMucmFuZ2Uu
c2VsZWN0Tm9kZUNvbnRlbnRzKHRoaXMuZWxlbWVudCk7CiAgICB0aGlzLnJhbmdlLmNvbGxhcHNl
KHRydWUpOwogIH0sCgogIGluc2VydENvbnRlbnQ6IGZ1bmN0aW9uKGZyYWdtZW50cykgewogICAg
ZnJhZ21lbnRzLnJldmVyc2UoZmFsc2UpLmVhY2goKGZ1bmN0aW9uKGZyYWdtZW50KSB7CiAgICAg
IHRoaXMuZWxlbWVudC5pbnNlcnRCZWZvcmUoZnJhZ21lbnQsIHRoaXMuZWxlbWVudC5maXJzdENo
aWxkKTsKICAgIH0pLmJpbmQodGhpcykpOwogIH0KfSk7CgpJbnNlcnRpb24uQm90dG9tID0gQ2xh
c3MuY3JlYXRlKCk7Ckluc2VydGlvbi5Cb3R0b20ucHJvdG90eXBlID0gT2JqZWN0LmV4dGVuZChu
ZXcgQWJzdHJhY3QuSW5zZXJ0aW9uKCdiZWZvcmVFbmQnKSwgewogIGluaXRpYWxpemVSYW5nZTog
ZnVuY3Rpb24oKSB7CiAgICB0aGlzLnJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0aGlzLmVsZW1l
bnQpOwogICAgdGhpcy5yYW5nZS5jb2xsYXBzZSh0aGlzLmVsZW1lbnQpOwogIH0sCgogIGluc2Vy
dENvbnRlbnQ6IGZ1bmN0aW9uKGZyYWdtZW50cykgewogICAgZnJhZ21lbnRzLmVhY2goKGZ1bmN0
aW9uKGZyYWdtZW50KSB7CiAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChmcmFnbWVudCk7
CiAgICB9KS5iaW5kKHRoaXMpKTsKICB9Cn0pOwoKSW5zZXJ0aW9uLkFmdGVyID0gQ2xhc3MuY3Jl
YXRlKCk7Ckluc2VydGlvbi5BZnRlci5wcm90b3R5cGUgPSBPYmplY3QuZXh0ZW5kKG5ldyBBYnN0
cmFjdC5JbnNlcnRpb24oJ2FmdGVyRW5kJyksIHsKICBpbml0aWFsaXplUmFuZ2U6IGZ1bmN0aW9u
KCkgewogICAgdGhpcy5yYW5nZS5zZXRTdGFydEFmdGVyKHRoaXMuZWxlbWVudCk7CiAgfSwKCiAg
aW5zZXJ0Q29udGVudDogZnVuY3Rpb24oZnJhZ21lbnRzKSB7CiAgICBmcmFnbWVudHMuZWFjaCgo
ZnVuY3Rpb24oZnJhZ21lbnQpIHsKICAgICAgdGhpcy5lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0
QmVmb3JlKGZyYWdtZW50LAogICAgICAgIHRoaXMuZWxlbWVudC5uZXh0U2libGluZyk7CiAgICB9
KS5iaW5kKHRoaXMpKTsKICB9Cn0pOwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpFbGVtZW50LkNs
YXNzTmFtZXMgPSBDbGFzcy5jcmVhdGUoKTsKRWxlbWVudC5DbGFzc05hbWVzLnByb3RvdHlwZSA9
IHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLmVsZW1lbnQgPSAk
KGVsZW1lbnQpOwogIH0sCgogIF9lYWNoOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdGhpcy5l
bGVtZW50LmNsYXNzTmFtZS5zcGxpdCgvXHMrLykuc2VsZWN0KGZ1bmN0aW9uKG5hbWUpIHsKICAg
ICAgcmV0dXJuIG5hbWUubGVuZ3RoID4gMDsKICAgIH0pLl9lYWNoKGl0ZXJhdG9yKTsKICB9LAoK
ICBzZXQ6IGZ1bmN0aW9uKGNsYXNzTmFtZSkgewogICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9
IGNsYXNzTmFtZTsKICB9LAoKICBhZGQ6IGZ1bmN0aW9uKGNsYXNzTmFtZVRvQWRkKSB7CiAgICBp
ZiAodGhpcy5pbmNsdWRlKGNsYXNzTmFtZVRvQWRkKSkgcmV0dXJuOwogICAgdGhpcy5zZXQodGhp
cy50b0FycmF5KCkuY29uY2F0KGNsYXNzTmFtZVRvQWRkKS5qb2luKCcgJykpOwogIH0sCgogIHJl
bW92ZTogZnVuY3Rpb24oY2xhc3NOYW1lVG9SZW1vdmUpIHsKICAgIGlmICghdGhpcy5pbmNsdWRl
KGNsYXNzTmFtZVRvUmVtb3ZlKSkgcmV0dXJuOwogICAgdGhpcy5zZXQodGhpcy5zZWxlY3QoZnVu
Y3Rpb24oY2xhc3NOYW1lKSB7CiAgICAgIHJldHVybiBjbGFzc05hbWUgIT0gY2xhc3NOYW1lVG9S
ZW1vdmU7CiAgICB9KS5qb2luKCcgJykpOwogIH0sCgogIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsK
ICAgIHJldHVybiB0aGlzLnRvQXJyYXkoKS5qb2luKCcgJyk7CiAgfQp9CgpPYmplY3QuZXh0ZW5k
KEVsZW1lbnQuQ2xhc3NOYW1lcy5wcm90b3R5cGUsIEVudW1lcmFibGUpOwp2YXIgRmllbGQgPSB7
CiAgY2xlYXI6IGZ1bmN0aW9uKCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMu
bGVuZ3RoOyBpKyspCiAgICAgICQoYXJndW1lbnRzW2ldKS52YWx1ZSA9ICcnOwogIH0sCgogIGZv
Y3VzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAkKGVsZW1lbnQpLmZvY3VzKCk7CiAgfSwKCiAg
cHJlc2VudDogZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5s
ZW5ndGg7IGkrKykKICAgICAgaWYgKCQoYXJndW1lbnRzW2ldKS52YWx1ZSA9PSAnJykgcmV0dXJu
IGZhbHNlOwogICAgcmV0dXJuIHRydWU7CiAgfSwKCiAgc2VsZWN0OiBmdW5jdGlvbihlbGVtZW50
KSB7CiAgICAkKGVsZW1lbnQpLnNlbGVjdCgpOwogIH0sCgogIGFjdGl2YXRlOiBmdW5jdGlvbihl
bGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGVsZW1lbnQuZm9jdXMoKTsK
ICAgIGlmIChlbGVtZW50LnNlbGVjdCkKICAgICAgZWxlbWVudC5zZWxlY3QoKTsKICB9Cn0KCi8q
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFyIEZvcm0gPSB7CiAgc2VyaWFsaXplOiBmdW5jdGlvbihm
b3JtKSB7CiAgICB2YXIgZWxlbWVudHMgPSBGb3JtLmdldEVsZW1lbnRzKCQoZm9ybSkpOwogICAg
dmFyIHF1ZXJ5Q29tcG9uZW50cyA9IG5ldyBBcnJheSgpOwoKICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIHF1ZXJ5Q29tcG9uZW50ID0gRm9y
bS5FbGVtZW50LnNlcmlhbGl6ZShlbGVtZW50c1tpXSk7CiAgICAgIGlmIChxdWVyeUNvbXBvbmVu
dCkKICAgICAgICBxdWVyeUNvbXBvbmVudHMucHVzaChxdWVyeUNvbXBvbmVudCk7CiAgICB9Cgog
ICAgcmV0dXJuIHF1ZXJ5Q29tcG9uZW50cy5qb2luKCcmJyk7CiAgfSwKCiAgZ2V0RWxlbWVudHM6
IGZ1bmN0aW9uKGZvcm0pIHsKICAgIGZvcm0gPSAkKGZvcm0pOwogICAgdmFyIGVsZW1lbnRzID0g
bmV3IEFycmF5KCk7CgogICAgZm9yICh0YWdOYW1lIGluIEZvcm0uRWxlbWVudC5TZXJpYWxpemVy
cykgewogICAgICB2YXIgdGFnRWxlbWVudHMgPSBmb3JtLmdldEVsZW1lbnRzQnlUYWdOYW1lKHRh
Z05hbWUpOwogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRhZ0VsZW1lbnRzLmxlbmd0aDsgaisr
KQogICAgICAgIGVsZW1lbnRzLnB1c2godGFnRWxlbWVudHNbal0pOwogICAgfQogICAgcmV0dXJu
IGVsZW1lbnRzOwogIH0sCgogIGdldElucHV0czogZnVuY3Rpb24oZm9ybSwgdHlwZU5hbWUsIG5h
bWUpIHsKICAgIGZvcm0gPSAkKGZvcm0pOwogICAgdmFyIGlucHV0cyA9IGZvcm0uZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2lucHV0Jyk7CgogICAgaWYgKCF0eXBlTmFtZSAmJiAhbmFtZSkKICAgICAg
cmV0dXJuIGlucHV0czsKCiAgICB2YXIgbWF0Y2hpbmdJbnB1dHMgPSBuZXcgQXJyYXkoKTsKICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBpbnB1
dCA9IGlucHV0c1tpXTsKICAgICAgaWYgKCh0eXBlTmFtZSAmJiBpbnB1dC50eXBlICE9IHR5cGVO
YW1lKSB8fAogICAgICAgICAgKG5hbWUgJiYgaW5wdXQubmFtZSAhPSBuYW1lKSkKICAgICAgICBj
b250aW51ZTsKICAgICAgbWF0Y2hpbmdJbnB1dHMucHVzaChpbnB1dCk7CiAgICB9CgogICAgcmV0
dXJuIG1hdGNoaW5nSW5wdXRzOwogIH0sCgogIGRpc2FibGU6IGZ1bmN0aW9uKGZvcm0pIHsKICAg
IHZhciBlbGVtZW50cyA9IEZvcm0uZ2V0RWxlbWVudHMoZm9ybSk7CiAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBlbGVtZW50ID0gZWxlbWVu
dHNbaV07CiAgICAgIGVsZW1lbnQuYmx1cigpOwogICAgICBlbGVtZW50LmRpc2FibGVkID0gJ3Ry
dWUnOwogICAgfQogIH0sCgogIGVuYWJsZTogZnVuY3Rpb24oZm9ybSkgewogICAgdmFyIGVsZW1l
bnRzID0gRm9ybS5nZXRFbGVtZW50cyhmb3JtKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxl
bWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGVsZW1lbnQgPSBlbGVtZW50c1tpXTsKICAg
ICAgZWxlbWVudC5kaXNhYmxlZCA9ICcnOwogICAgfQogIH0sCgogIGZpbmRGaXJzdEVsZW1lbnQ6
IGZ1bmN0aW9uKGZvcm0pIHsKICAgIHJldHVybiBGb3JtLmdldEVsZW1lbnRzKGZvcm0pLmZpbmQo
ZnVuY3Rpb24oZWxlbWVudCkgewogICAgICByZXR1cm4gZWxlbWVudC50eXBlICE9ICdoaWRkZW4n
ICYmICFlbGVtZW50LmRpc2FibGVkICYmCiAgICAgICAgWydpbnB1dCcsICdzZWxlY3QnLCAndGV4
dGFyZWEnXS5pbmNsdWRlKGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKTsKICAgIH0pOwog
IH0sCgogIGZvY3VzRmlyc3RFbGVtZW50OiBmdW5jdGlvbihmb3JtKSB7CiAgICBGaWVsZC5hY3Rp
dmF0ZShGb3JtLmZpbmRGaXJzdEVsZW1lbnQoZm9ybSkpOwogIH0sCgogIHJlc2V0OiBmdW5jdGlv
bihmb3JtKSB7CiAgICAkKGZvcm0pLnJlc2V0KCk7CiAgfQp9CgpGb3JtLkVsZW1lbnQgPSB7CiAg
c2VyaWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsK
ICAgIHZhciBtZXRob2QgPSBlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTsKICAgIHZhciBw
YXJhbWV0ZXIgPSBGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnNbbWV0aG9kXShlbGVtZW50KTsKCiAg
ICBpZiAocGFyYW1ldGVyKSB7CiAgICAgIHZhciBrZXkgPSBlbmNvZGVVUklDb21wb25lbnQocGFy
YW1ldGVyWzBdKTsKICAgICAgaWYgKGtleS5sZW5ndGggPT0gMCkgcmV0dXJuOwoKICAgICAgaWYg
KHBhcmFtZXRlclsxXS5jb25zdHJ1Y3RvciAhPSBBcnJheSkKICAgICAgICBwYXJhbWV0ZXJbMV0g
PSBbcGFyYW1ldGVyWzFdXTsKCiAgICAgIHJldHVybiBwYXJhbWV0ZXJbMV0ubWFwKGZ1bmN0aW9u
KHZhbHVlKSB7CiAgICAgICAgcmV0dXJuIGtleSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2
YWx1ZSk7CiAgICAgIH0pLmpvaW4oJyYnKTsKICAgIH0KICB9LAoKICBnZXRWYWx1ZTogZnVuY3Rp
b24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgbWV0aG9kID0g
ZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICB2YXIgcGFyYW1ldGVyID0gRm9ybS5F
bGVtZW50LlNlcmlhbGl6ZXJzW21ldGhvZF0oZWxlbWVudCk7CgogICAgaWYgKHBhcmFtZXRlcikK
ICAgICAgcmV0dXJuIHBhcmFtZXRlclsxXTsKICB9Cn0KCkZvcm0uRWxlbWVudC5TZXJpYWxpemVy
cyA9IHsKICBpbnB1dDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgc3dpdGNoIChlbGVtZW50LnR5
cGUudG9Mb3dlckNhc2UoKSkgewogICAgICBjYXNlICdzdWJtaXQnOgogICAgICBjYXNlICdoaWRk
ZW4nOgogICAgICBjYXNlICdwYXNzd29yZCc6CiAgICAgIGNhc2UgJ3RleHQnOgogICAgICAgIHJl
dHVybiBGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnMudGV4dGFyZWEoZWxlbWVudCk7CiAgICAgIGNh
c2UgJ2NoZWNrYm94JzoKICAgICAgY2FzZSAncmFkaW8nOgogICAgICAgIHJldHVybiBGb3JtLkVs
ZW1lbnQuU2VyaWFsaXplcnMuaW5wdXRTZWxlY3RvcihlbGVtZW50KTsKICAgIH0KICAgIHJldHVy
biBmYWxzZTsKICB9LAoKICBpbnB1dFNlbGVjdG9yOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBp
ZiAoZWxlbWVudC5jaGVja2VkKQogICAgICByZXR1cm4gW2VsZW1lbnQubmFtZSwgZWxlbWVudC52
YWx1ZV07CiAgfSwKCiAgdGV4dGFyZWE6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiBb
ZWxlbWVudC5uYW1lLCBlbGVtZW50LnZhbHVlXTsKICB9LAoKICBzZWxlY3Q6IGZ1bmN0aW9uKGVs
ZW1lbnQpIHsKICAgIHJldHVybiBGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnNbZWxlbWVudC50eXBl
ID09ICdzZWxlY3Qtb25lJyA/CiAgICAgICdzZWxlY3RPbmUnIDogJ3NlbGVjdE1hbnknXShlbGVt
ZW50KTsKICB9LAoKICBzZWxlY3RPbmU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1
ZSA9ICcnLCBvcHQsIGluZGV4ID0gZWxlbWVudC5zZWxlY3RlZEluZGV4OwogICAgaWYgKGluZGV4
ID49IDApIHsKICAgICAgb3B0ID0gZWxlbWVudC5vcHRpb25zW2luZGV4XTsKICAgICAgdmFsdWUg
PSBvcHQudmFsdWU7CiAgICAgIGlmICghdmFsdWUgJiYgISgndmFsdWUnIGluIG9wdCkpCiAgICAg
ICAgdmFsdWUgPSBvcHQudGV4dDsKICAgIH0KICAgIHJldHVybiBbZWxlbWVudC5uYW1lLCB2YWx1
ZV07CiAgfSwKCiAgc2VsZWN0TWFueTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVl
ID0gbmV3IEFycmF5KCk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnQubGVuZ3RoOyBp
KyspIHsKICAgICAgdmFyIG9wdCA9IGVsZW1lbnQub3B0aW9uc1tpXTsKICAgICAgaWYgKG9wdC5z
ZWxlY3RlZCkgewogICAgICAgIHZhciBvcHRWYWx1ZSA9IG9wdC52YWx1ZTsKICAgICAgICBpZiAo
IW9wdFZhbHVlICYmICEoJ3ZhbHVlJyBpbiBvcHQpKQogICAgICAgICAgb3B0VmFsdWUgPSBvcHQu
dGV4dDsKICAgICAgICB2YWx1ZS5wdXNoKG9wdFZhbHVlKTsKICAgICAgfQogICAgfQogICAgcmV0
dXJuIFtlbGVtZW50Lm5hbWUsIHZhbHVlXTsKICB9Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoK
dmFyICRGID0gRm9ybS5FbGVtZW50LmdldFZhbHVlOwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpB
YnN0cmFjdC5UaW1lZE9ic2VydmVyID0gZnVuY3Rpb24oKSB7fQpBYnN0cmFjdC5UaW1lZE9ic2Vy
dmVyLnByb3RvdHlwZSA9IHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50LCBmcmVxdWVu
Y3ksIGNhbGxiYWNrKSB7CiAgICB0aGlzLmZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTsKICAgIHRoaXMu
ZWxlbWVudCAgID0gJChlbGVtZW50KTsKICAgIHRoaXMuY2FsbGJhY2sgID0gY2FsbGJhY2s7Cgog
ICAgdGhpcy5sYXN0VmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7CiAgICB0aGlzLnJlZ2lzdGVyQ2Fs
bGJhY2soKTsKICB9LAoKICByZWdpc3RlckNhbGxiYWNrOiBmdW5jdGlvbigpIHsKICAgIHNldElu
dGVydmFsKHRoaXMub25UaW1lckV2ZW50LmJpbmQodGhpcyksIHRoaXMuZnJlcXVlbmN5ICogMTAw
MCk7CiAgfSwKCiAgb25UaW1lckV2ZW50OiBmdW5jdGlvbigpIHsKICAgIHZhciB2YWx1ZSA9IHRo
aXMuZ2V0VmFsdWUoKTsKICAgIGlmICh0aGlzLmxhc3RWYWx1ZSAhPSB2YWx1ZSkgewogICAgICB0
aGlzLmNhbGxiYWNrKHRoaXMuZWxlbWVudCwgdmFsdWUpOwogICAgICB0aGlzLmxhc3RWYWx1ZSA9
IHZhbHVlOwogICAgfQogIH0KfQoKRm9ybS5FbGVtZW50Lk9ic2VydmVyID0gQ2xhc3MuY3JlYXRl
KCk7CkZvcm0uRWxlbWVudC5PYnNlcnZlci5wcm90b3R5cGUgPSBPYmplY3QuZXh0ZW5kKG5ldyBB
YnN0cmFjdC5UaW1lZE9ic2VydmVyKCksIHsKICBnZXRWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICBy
ZXR1cm4gRm9ybS5FbGVtZW50LmdldFZhbHVlKHRoaXMuZWxlbWVudCk7CiAgfQp9KTsKCkZvcm0u
T2JzZXJ2ZXIgPSBDbGFzcy5jcmVhdGUoKTsKRm9ybS5PYnNlcnZlci5wcm90b3R5cGUgPSBPYmpl
Y3QuZXh0ZW5kKG5ldyBBYnN0cmFjdC5UaW1lZE9ic2VydmVyKCksIHsKICBnZXRWYWx1ZTogZnVu
Y3Rpb24oKSB7CiAgICByZXR1cm4gRm9ybS5zZXJpYWxpemUodGhpcy5lbGVtZW50KTsKICB9Cn0p
OwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpBYnN0cmFjdC5FdmVudE9ic2VydmVyID0gZnVuY3Rp
b24oKSB7fQpBYnN0cmFjdC5FdmVudE9ic2VydmVyLnByb3RvdHlwZSA9IHsKICBpbml0aWFsaXpl
OiBmdW5jdGlvbihlbGVtZW50LCBjYWxsYmFjaykgewogICAgdGhpcy5lbGVtZW50ICA9ICQoZWxl
bWVudCk7CiAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7CgogICAgdGhpcy5sYXN0VmFsdWUg
PSB0aGlzLmdldFZhbHVlKCk7CiAgICBpZiAodGhpcy5lbGVtZW50LnRhZ05hbWUudG9Mb3dlckNh
c2UoKSA9PSAnZm9ybScpCiAgICAgIHRoaXMucmVnaXN0ZXJGb3JtQ2FsbGJhY2tzKCk7CiAgICBl
bHNlCiAgICAgIHRoaXMucmVnaXN0ZXJDYWxsYmFjayh0aGlzLmVsZW1lbnQpOwogIH0sCgogIG9u
RWxlbWVudEV2ZW50OiBmdW5jdGlvbigpIHsKICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUo
KTsKICAgIGlmICh0aGlzLmxhc3RWYWx1ZSAhPSB2YWx1ZSkgewogICAgICB0aGlzLmNhbGxiYWNr
KHRoaXMuZWxlbWVudCwgdmFsdWUpOwogICAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlOwogICAg
fQogIH0sCgogIHJlZ2lzdGVyRm9ybUNhbGxiYWNrczogZnVuY3Rpb24oKSB7CiAgICB2YXIgZWxl
bWVudHMgPSBGb3JtLmdldEVsZW1lbnRzKHRoaXMuZWxlbWVudCk7CiAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKQogICAgICB0aGlzLnJlZ2lzdGVyQ2FsbGJhY2so
ZWxlbWVudHNbaV0pOwogIH0sCgogIHJlZ2lzdGVyQ2FsbGJhY2s6IGZ1bmN0aW9uKGVsZW1lbnQp
IHsKICAgIGlmIChlbGVtZW50LnR5cGUpIHsKICAgICAgc3dpdGNoIChlbGVtZW50LnR5cGUudG9M
b3dlckNhc2UoKSkgewogICAgICAgIGNhc2UgJ2NoZWNrYm94JzoKICAgICAgICBjYXNlICdyYWRp
byc6CiAgICAgICAgICBFdmVudC5vYnNlcnZlKGVsZW1lbnQsICdjbGljaycsIHRoaXMub25FbGVt
ZW50RXZlbnQuYmluZCh0aGlzKSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdwYXNz
d29yZCc6CiAgICAgICAgY2FzZSAndGV4dCc6CiAgICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAg
ICAgIGNhc2UgJ3NlbGVjdC1vbmUnOgogICAgICAgIGNhc2UgJ3NlbGVjdC1tdWx0aXBsZSc6CiAg
ICAgICAgICBFdmVudC5vYnNlcnZlKGVsZW1lbnQsICdjaGFuZ2UnLCB0aGlzLm9uRWxlbWVudEV2
ZW50LmJpbmQodGhpcykpOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICB9Cn0KCkZv
cm0uRWxlbWVudC5FdmVudE9ic2VydmVyID0gQ2xhc3MuY3JlYXRlKCk7CkZvcm0uRWxlbWVudC5F
dmVudE9ic2VydmVyLnByb3RvdHlwZSA9IE9iamVjdC5leHRlbmQobmV3IEFic3RyYWN0LkV2ZW50
T2JzZXJ2ZXIoKSwgewogIGdldFZhbHVlOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBGb3JtLkVs
ZW1lbnQuZ2V0VmFsdWUodGhpcy5lbGVtZW50KTsKICB9Cn0pOwoKRm9ybS5FdmVudE9ic2VydmVy
ID0gQ2xhc3MuY3JlYXRlKCk7CkZvcm0uRXZlbnRPYnNlcnZlci5wcm90b3R5cGUgPSBPYmplY3Qu
ZXh0ZW5kKG5ldyBBYnN0cmFjdC5FdmVudE9ic2VydmVyKCksIHsKICBnZXRWYWx1ZTogZnVuY3Rp
b24oKSB7CiAgICByZXR1cm4gRm9ybS5zZXJpYWxpemUodGhpcy5lbGVtZW50KTsKICB9Cn0pOwpp
ZiAoIXdpbmRvdy5FdmVudCkgewogIHZhciBFdmVudCA9IG5ldyBPYmplY3QoKTsKfQoKT2JqZWN0
LmV4dGVuZChFdmVudCwgewogIEtFWV9CQUNLU1BBQ0U6IDgsCiAgS0VZX1RBQjogICAgICAgOSwK
ICBLRVlfUkVUVVJOOiAgIDEzLAogIEtFWV9FU0M6ICAgICAgMjcsCiAgS0VZX0xFRlQ6ICAgICAz
NywKICBLRVlfVVA6ICAgICAgIDM4LAogIEtFWV9SSUdIVDogICAgMzksCiAgS0VZX0RPV046ICAg
ICA0MCwKICBLRVlfREVMRVRFOiAgIDQ2LAoKICBlbGVtZW50OiBmdW5jdGlvbihldmVudCkgewog
ICAgcmV0dXJuIGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50OwogIH0sCgogIGlzTGVm
dENsaWNrOiBmdW5jdGlvbihldmVudCkgewogICAgcmV0dXJuICgoKGV2ZW50LndoaWNoKSAmJiAo
ZXZlbnQud2hpY2ggPT0gMSkpIHx8CiAgICAgICAgICAgICgoZXZlbnQuYnV0dG9uKSAmJiAoZXZl
bnQuYnV0dG9uID09IDEpKSk7CiAgfSwKCiAgcG9pbnRlclg6IGZ1bmN0aW9uKGV2ZW50KSB7CiAg
ICByZXR1cm4gZXZlbnQucGFnZVggfHwgKGV2ZW50LmNsaWVudFggKwogICAgICAoZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSk7
CiAgfSwKCiAgcG9pbnRlclk6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICByZXR1cm4gZXZlbnQucGFn
ZVkgfHwgKGV2ZW50LmNsaWVudFkgKwogICAgICAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNj
cm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCkpOwogIH0sCgogIHN0b3A6IGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIHsKICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICB9IGVs
c2UgewogICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwogICAgICBldmVudC5jYW5jZWxC
dWJibGUgPSB0cnVlOwogICAgfQogIH0sCgogIC8vIGZpbmQgdGhlIGZpcnN0IG5vZGUgd2l0aCB0
aGUgZ2l2ZW4gdGFnTmFtZSwgc3RhcnRpbmcgZnJvbSB0aGUKICAvLyBub2RlIHRoZSBldmVudCB3
YXMgdHJpZ2dlcmVkIG9uOyB0cmF2ZXJzZXMgdGhlIERPTSB1cHdhcmRzCiAgZmluZEVsZW1lbnQ6
IGZ1bmN0aW9uKGV2ZW50LCB0YWdOYW1lKSB7CiAgICB2YXIgZWxlbWVudCA9IEV2ZW50LmVsZW1l
bnQoZXZlbnQpOwogICAgd2hpbGUgKGVsZW1lbnQucGFyZW50Tm9kZSAmJiAoIWVsZW1lbnQudGFn
TmFtZSB8fAogICAgICAgIChlbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKSAhPSB0YWdOYW1l
LnRvVXBwZXJDYXNlKCkpKSkKICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZTsKICAg
IHJldHVybiBlbGVtZW50OwogIH0sCgogIG9ic2VydmVyczogZmFsc2UsCgogIF9vYnNlcnZlQW5k
Q2FjaGU6IGZ1bmN0aW9uKGVsZW1lbnQsIG5hbWUsIG9ic2VydmVyLCB1c2VDYXB0dXJlKSB7CiAg
ICBpZiAoIXRoaXMub2JzZXJ2ZXJzKSB0aGlzLm9ic2VydmVycyA9IFtdOwogICAgaWYgKGVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICB0aGlzLm9ic2VydmVycy5wdXNoKFtlbGVtZW50
LCBuYW1lLCBvYnNlcnZlciwgdXNlQ2FwdHVyZV0pOwogICAgICBlbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIobmFtZSwgb2JzZXJ2ZXIsIHVzZUNhcHR1cmUpOwogICAgfSBlbHNlIGlmIChlbGVtZW50
LmF0dGFjaEV2ZW50KSB7CiAgICAgIHRoaXMub2JzZXJ2ZXJzLnB1c2goW2VsZW1lbnQsIG5hbWUs
IG9ic2VydmVyLCB1c2VDYXB0dXJlXSk7CiAgICAgIGVsZW1lbnQuYXR0YWNoRXZlbnQoJ29uJyAr
IG5hbWUsIG9ic2VydmVyKTsKICAgIH0KICB9LAoKICB1bmxvYWRDYWNoZTogZnVuY3Rpb24oKSB7
CiAgICBpZiAoIUV2ZW50Lm9ic2VydmVycykgcmV0dXJuOwogICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBFdmVudC5vYnNlcnZlcnMubGVuZ3RoOyBpKyspIHsKICAgICAgRXZlbnQuc3RvcE9ic2Vydmlu
Zy5hcHBseSh0aGlzLCBFdmVudC5vYnNlcnZlcnNbaV0pOwogICAgICBFdmVudC5vYnNlcnZlcnNb
aV1bMF0gPSBudWxsOwogICAgfQogICAgRXZlbnQub2JzZXJ2ZXJzID0gZmFsc2U7CiAgfSwKCiAg
b2JzZXJ2ZTogZnVuY3Rpb24oZWxlbWVudCwgbmFtZSwgb2JzZXJ2ZXIsIHVzZUNhcHR1cmUpIHsK
ICAgIHZhciBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHVzZUNhcHR1cmUgPSB1c2VDYXB0dXJl
IHx8IGZhbHNlOwoKICAgIGlmIChuYW1lID09ICdrZXlwcmVzcycgJiYKICAgICAgICAobmF2aWdh
dG9yLmFwcFZlcnNpb24ubWF0Y2goL0tvbnF1ZXJvcnxTYWZhcml8S0hUTUwvKQogICAgICAgIHx8
IGVsZW1lbnQuYXR0YWNoRXZlbnQpKQogICAgICBuYW1lID0gJ2tleWRvd24nOwoKICAgIHRoaXMu
X29ic2VydmVBbmRDYWNoZShlbGVtZW50LCBuYW1lLCBvYnNlcnZlciwgdXNlQ2FwdHVyZSk7CiAg
fSwKCiAgc3RvcE9ic2VydmluZzogZnVuY3Rpb24oZWxlbWVudCwgbmFtZSwgb2JzZXJ2ZXIsIHVz
ZUNhcHR1cmUpIHsKICAgIHZhciBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHVzZUNhcHR1cmUg
PSB1c2VDYXB0dXJlIHx8IGZhbHNlOwoKICAgIGlmIChuYW1lID09ICdrZXlwcmVzcycgJiYKICAg
ICAgICAobmF2aWdhdG9yLmFwcFZlcnNpb24ubWF0Y2goL0tvbnF1ZXJvcnxTYWZhcml8S0hUTUwv
KQogICAgICAgIHx8IGVsZW1lbnQuZGV0YWNoRXZlbnQpKQogICAgICBuYW1lID0gJ2tleWRvd24n
OwoKICAgIGlmIChlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHsKICAgICAgZWxlbWVudC5y
ZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIG9ic2VydmVyLCB1c2VDYXB0dXJlKTsKICAgIH0gZWxz
ZSBpZiAoZWxlbWVudC5kZXRhY2hFdmVudCkgewogICAgICBlbGVtZW50LmRldGFjaEV2ZW50KCdv
bicgKyBuYW1lLCBvYnNlcnZlcik7CiAgICB9CiAgfQp9KTsKCi8qIHByZXZlbnQgbWVtb3J5IGxl
YWtzIGluIElFICovCkV2ZW50Lm9ic2VydmUod2luZG93LCAndW5sb2FkJywgRXZlbnQudW5sb2Fk
Q2FjaGUsIGZhbHNlKTsKdmFyIFBvc2l0aW9uID0gewogIC8vIHNldCB0byB0cnVlIGlmIG5lZWRl
ZCwgd2FybmluZzogZmlyZWZveCBwZXJmb3JtYW5jZSBwcm9ibGVtcwogIC8vIE5PVCBuZWVlZGVk
IGZvciBwYWdlIHNjcm9sbGluZywgb25seSBpZiBkcmFnZ2FibGUgY29udGFpbmVkIGluCiAgLy8g
c2Nyb2xsYWJsZSBlbGVtZW50cwogIGluY2x1ZGVTY3JvbGxPZmZzZXRzOiBmYWxzZSwKCiAgLy8g
bXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgd2l0aGluSW5jbHVkaW5nU2Nyb2xsb2Zmc2V0
LCBldmVyeSB0aW1lIHRoZQogIC8vIHBhZ2UgaXMgc2Nyb2xsZWQKICBwcmVwYXJlOiBmdW5jdGlv
bigpIHsKICAgIHRoaXMuZGVsdGFYID0gIHdpbmRvdy5wYWdlWE9mZnNldAogICAgICAgICAgICAg
ICAgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQKICAgICAgICAgICAgICAg
IHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdAogICAgICAgICAgICAgICAgfHwgMDsKICAgIHRo
aXMuZGVsdGFZID0gIHdpbmRvdy5wYWdlWU9mZnNldAogICAgICAgICAgICAgICAgfHwgZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcAogICAgICAgICAgICAgICAgfHwgZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3AKICAgICAgICAgICAgICAgIHx8IDA7CiAgfSwKCiAgcmVhbE9mZnNldDog
ZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVlVCA9IDAsIHZhbHVlTCA9IDA7CiAgICBk
byB7CiAgICAgIHZhbHVlVCArPSBlbGVtZW50LnNjcm9sbFRvcCAgfHwgMDsKICAgICAgdmFsdWVM
ICs9IGVsZW1lbnQuc2Nyb2xsTGVmdCB8fCAwOwogICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJl
bnROb2RlOwogICAgfSB3aGlsZSAoZWxlbWVudCk7CiAgICByZXR1cm4gW3ZhbHVlTCwgdmFsdWVU
XTsKICB9LAoKICBjdW11bGF0aXZlT2Zmc2V0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIg
dmFsdWVUID0gMCwgdmFsdWVMID0gMDsKICAgIGRvIHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQu
b2Zmc2V0VG9wICB8fCAwOwogICAgICB2YWx1ZUwgKz0gZWxlbWVudC5vZmZzZXRMZWZ0IHx8IDA7
CiAgICAgIGVsZW1lbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDsKICAgIH0gd2hpbGUgKGVsZW1l
bnQpOwogICAgcmV0dXJuIFt2YWx1ZUwsIHZhbHVlVF07CiAgfSwKCiAgcG9zaXRpb25lZE9mZnNl
dDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVlVCA9IDAsIHZhbHVlTCA9IDA7CiAg
ICBkbyB7CiAgICAgIHZhbHVlVCArPSBlbGVtZW50Lm9mZnNldFRvcCAgfHwgMDsKICAgICAgdmFs
dWVMICs9IGVsZW1lbnQub2Zmc2V0TGVmdCB8fCAwOwogICAgICBlbGVtZW50ID0gZWxlbWVudC5v
ZmZzZXRQYXJlbnQ7CiAgICAgIGlmIChlbGVtZW50KSB7CiAgICAgICAgcCA9IEVsZW1lbnQuZ2V0
U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJyk7CiAgICAgICAgaWYgKHAgPT0gJ3JlbGF0aXZlJyB8
fCBwID09ICdhYnNvbHV0ZScpIGJyZWFrOwogICAgICB9CiAgICB9IHdoaWxlIChlbGVtZW50KTsK
ICAgIHJldHVybiBbdmFsdWVMLCB2YWx1ZVRdOwogIH0sCgogIG9mZnNldFBhcmVudDogZnVuY3Rp
b24oZWxlbWVudCkgewogICAgaWYgKGVsZW1lbnQub2Zmc2V0UGFyZW50KSByZXR1cm4gZWxlbWVu
dC5vZmZzZXRQYXJlbnQ7CiAgICBpZiAoZWxlbWVudCA9PSBkb2N1bWVudC5ib2R5KSByZXR1cm4g
ZWxlbWVudDsKCiAgICB3aGlsZSAoKGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGUpICYmIGVs
ZW1lbnQgIT0gZG9jdW1lbnQuYm9keSkKICAgICAgaWYgKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVu
dCwgJ3Bvc2l0aW9uJykgIT0gJ3N0YXRpYycpCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CgogICAg
cmV0dXJuIGRvY3VtZW50LmJvZHk7CiAgfSwKCiAgLy8gY2FjaGVzIHgveSBjb29yZGluYXRlIHBh
aXIgdG8gdXNlIHdpdGggb3ZlcmxhcAogIHdpdGhpbjogZnVuY3Rpb24oZWxlbWVudCwgeCwgeSkg
ewogICAgaWYgKHRoaXMuaW5jbHVkZVNjcm9sbE9mZnNldHMpCiAgICAgIHJldHVybiB0aGlzLndp
dGhpbkluY2x1ZGluZ1Njcm9sbG9mZnNldHMoZWxlbWVudCwgeCwgeSk7CiAgICB0aGlzLnhjb21w
ID0geDsKICAgIHRoaXMueWNvbXAgPSB5OwogICAgdGhpcy5vZmZzZXQgPSB0aGlzLmN1bXVsYXRp
dmVPZmZzZXQoZWxlbWVudCk7CgogICAgcmV0dXJuICh5ID49IHRoaXMub2Zmc2V0WzFdICYmCiAg
ICAgICAgICAgIHkgPCAgdGhpcy5vZmZzZXRbMV0gKyBlbGVtZW50Lm9mZnNldEhlaWdodCAmJgog
ICAgICAgICAgICB4ID49IHRoaXMub2Zmc2V0WzBdICYmCiAgICAgICAgICAgIHggPCAgdGhpcy5v
ZmZzZXRbMF0gKyBlbGVtZW50Lm9mZnNldFdpZHRoKTsKICB9LAoKICB3aXRoaW5JbmNsdWRpbmdT
Y3JvbGxvZmZzZXRzOiBmdW5jdGlvbihlbGVtZW50LCB4LCB5KSB7CiAgICB2YXIgb2Zmc2V0Y2Fj
aGUgPSB0aGlzLnJlYWxPZmZzZXQoZWxlbWVudCk7CgogICAgdGhpcy54Y29tcCA9IHggKyBvZmZz
ZXRjYWNoZVswXSAtIHRoaXMuZGVsdGFYOwogICAgdGhpcy55Y29tcCA9IHkgKyBvZmZzZXRjYWNo
ZVsxXSAtIHRoaXMuZGVsdGFZOwogICAgdGhpcy5vZmZzZXQgPSB0aGlzLmN1bXVsYXRpdmVPZmZz
ZXQoZWxlbWVudCk7CgogICAgcmV0dXJuICh0aGlzLnljb21wID49IHRoaXMub2Zmc2V0WzFdICYm
CiAgICAgICAgICAgIHRoaXMueWNvbXAgPCAgdGhpcy5vZmZzZXRbMV0gKyBlbGVtZW50Lm9mZnNl
dEhlaWdodCAmJgogICAgICAgICAgICB0aGlzLnhjb21wID49IHRoaXMub2Zmc2V0WzBdICYmCiAg
ICAgICAgICAgIHRoaXMueGNvbXAgPCAgdGhpcy5vZmZzZXRbMF0gKyBlbGVtZW50Lm9mZnNldFdp
ZHRoKTsKICB9LAoKICAvLyB3aXRoaW4gbXVzdCBiZSBjYWxsZWQgZGlyZWN0bHkgYmVmb3JlCiAg
b3ZlcmxhcDogZnVuY3Rpb24obW9kZSwgZWxlbWVudCkgewogICAgaWYgKCFtb2RlKSByZXR1cm4g
MDsKICAgIGlmIChtb2RlID09ICd2ZXJ0aWNhbCcpCiAgICAgIHJldHVybiAoKHRoaXMub2Zmc2V0
WzFdICsgZWxlbWVudC5vZmZzZXRIZWlnaHQpIC0gdGhpcy55Y29tcCkgLwogICAgICAgIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0OwogICAgaWYgKG1vZGUgPT0gJ2hvcml6b250YWwnKQogICAgICByZXR1
cm4gKCh0aGlzLm9mZnNldFswXSArIGVsZW1lbnQub2Zmc2V0V2lkdGgpIC0gdGhpcy54Y29tcCkg
LwogICAgICAgIGVsZW1lbnQub2Zmc2V0V2lkdGg7CiAgfSwKCiAgY2xvbmU6IGZ1bmN0aW9uKHNv
dXJjZSwgdGFyZ2V0KSB7CiAgICBzb3VyY2UgPSAkKHNvdXJjZSk7CiAgICB0YXJnZXQgPSAkKHRh
cmdldCk7CiAgICB0YXJnZXQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgdmFyIG9m
ZnNldHMgPSB0aGlzLmN1bXVsYXRpdmVPZmZzZXQoc291cmNlKTsKICAgIHRhcmdldC5zdHlsZS50
b3AgICAgPSBvZmZzZXRzWzFdICsgJ3B4JzsKICAgIHRhcmdldC5zdHlsZS5sZWZ0ICAgPSBvZmZz
ZXRzWzBdICsgJ3B4JzsKICAgIHRhcmdldC5zdHlsZS53aWR0aCAgPSBzb3VyY2Uub2Zmc2V0V2lk
dGggKyAncHgnOwogICAgdGFyZ2V0LnN0eWxlLmhlaWdodCA9IHNvdXJjZS5vZmZzZXRIZWlnaHQg
KyAncHgnOwogIH0sCgogIHBhZ2U6IGZ1bmN0aW9uKGZvckVsZW1lbnQpIHsKICAgIHZhciB2YWx1
ZVQgPSAwLCB2YWx1ZUwgPSAwOwoKICAgIHZhciBlbGVtZW50ID0gZm9yRWxlbWVudDsKICAgIGRv
IHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQub2Zmc2V0VG9wICB8fCAwOwogICAgICB2YWx1ZUwg
Kz0gZWxlbWVudC5vZmZzZXRMZWZ0IHx8IDA7CgogICAgICAvLyBTYWZhcmkgZml4CiAgICAgIGlm
IChlbGVtZW50Lm9mZnNldFBhcmVudD09ZG9jdW1lbnQuYm9keSkKICAgICAgICBpZiAoRWxlbWVu
dC5nZXRTdHlsZShlbGVtZW50LCdwb3NpdGlvbicpPT0nYWJzb2x1dGUnKSBicmVhazsKCiAgICB9
IHdoaWxlIChlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQpOwoKICAgIGVsZW1lbnQgPSBm
b3JFbGVtZW50OwogICAgZG8gewogICAgICB2YWx1ZVQgLT0gZWxlbWVudC5zY3JvbGxUb3AgIHx8
IDA7CiAgICAgIHZhbHVlTCAtPSBlbGVtZW50LnNjcm9sbExlZnQgfHwgMDsKICAgIH0gd2hpbGUg
KGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGUpOwoKICAgIHJldHVybiBbdmFsdWVMLCB2YWx1
ZVRdOwogIH0sCgogIGNsb25lOiBmdW5jdGlvbihzb3VyY2UsIHRhcmdldCkgewogICAgdmFyIG9w
dGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgc2V0TGVmdDogICAgdHJ1ZSwKICAgICAgc2V0
VG9wOiAgICAgdHJ1ZSwKICAgICAgc2V0V2lkdGg6ICAgdHJ1ZSwKICAgICAgc2V0SGVpZ2h0OiAg
dHJ1ZSwKICAgICAgb2Zmc2V0VG9wOiAgMCwKICAgICAgb2Zmc2V0TGVmdDogMAogICAgfSwgYXJn
dW1lbnRzWzJdIHx8IHt9KQoKICAgIC8vIGZpbmQgcGFnZSBwb3NpdGlvbiBvZiBzb3VyY2UKICAg
IHNvdXJjZSA9ICQoc291cmNlKTsKICAgIHZhciBwID0gUG9zaXRpb24ucGFnZShzb3VyY2UpOwoK
ICAgIC8vIGZpbmQgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gdXNlCiAgICB0YXJnZXQgPSAkKHRhcmdl
dCk7CiAgICB2YXIgZGVsdGEgPSBbMCwgMF07CiAgICB2YXIgcGFyZW50ID0gbnVsbDsKICAgIC8v
IGRlbHRhIFswLDBdIHdpbGwgZG8gZmluZSB3aXRoIHBvc2l0aW9uOiBmaXhlZCBlbGVtZW50cywK
ICAgIC8vIHBvc2l0aW9uOmFic29sdXRlIG5lZWRzIG9mZnNldFBhcmVudCBkZWx0YXMKICAgIGlm
IChFbGVtZW50LmdldFN0eWxlKHRhcmdldCwncG9zaXRpb24nKSA9PSAnYWJzb2x1dGUnKSB7CiAg
ICAgIHBhcmVudCA9IFBvc2l0aW9uLm9mZnNldFBhcmVudCh0YXJnZXQpOwogICAgICBkZWx0YSA9
IFBvc2l0aW9uLnBhZ2UocGFyZW50KTsKICAgIH0KCiAgICAvLyBjb3JyZWN0IGJ5IGJvZHkgb2Zm
c2V0cyAoZml4ZXMgU2FmYXJpKQogICAgaWYgKHBhcmVudCA9PSBkb2N1bWVudC5ib2R5KSB7CiAg
ICAgIGRlbHRhWzBdIC09IGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKICAgICAgZGVsdGFbMV0g
LT0gZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICB9CgogICAgLy8gc2V0IHBvc2l0aW9uCiAg
ICBpZihvcHRpb25zLnNldExlZnQpICAgdGFyZ2V0LnN0eWxlLmxlZnQgID0gKHBbMF0gLSBkZWx0
YVswXSArIG9wdGlvbnMub2Zmc2V0TGVmdCkgKyAncHgnOwogICAgaWYob3B0aW9ucy5zZXRUb3Ap
ICAgIHRhcmdldC5zdHlsZS50b3AgICA9IChwWzFdIC0gZGVsdGFbMV0gKyBvcHRpb25zLm9mZnNl
dFRvcCkgKyAncHgnOwogICAgaWYob3B0aW9ucy5zZXRXaWR0aCkgIHRhcmdldC5zdHlsZS53aWR0
aCA9IHNvdXJjZS5vZmZzZXRXaWR0aCArICdweCc7CiAgICBpZihvcHRpb25zLnNldEhlaWdodCkg
dGFyZ2V0LnN0eWxlLmhlaWdodCA9IHNvdXJjZS5vZmZzZXRIZWlnaHQgKyAncHgnOwogIH0sCgog
IGFic29sdXRpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQp
OwogICAgaWYgKGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPT0gJ2Fic29sdXRlJykgcmV0dXJuOwog
ICAgUG9zaXRpb24ucHJlcGFyZSgpOwoKICAgIHZhciBvZmZzZXRzID0gUG9zaXRpb24ucG9zaXRp
b25lZE9mZnNldChlbGVtZW50KTsKICAgIHZhciB0b3AgICAgID0gb2Zmc2V0c1sxXTsKICAgIHZh
ciBsZWZ0ICAgID0gb2Zmc2V0c1swXTsKICAgIHZhciB3aWR0aCAgID0gZWxlbWVudC5jbGllbnRX
aWR0aDsKICAgIHZhciBoZWlnaHQgID0gZWxlbWVudC5jbGllbnRIZWlnaHQ7CgogICAgZWxlbWVu
dC5fb3JpZ2luYWxMZWZ0ICAgPSBsZWZ0IC0gcGFyc2VGbG9hdChlbGVtZW50LnN0eWxlLmxlZnQg
IHx8IDApOwogICAgZWxlbWVudC5fb3JpZ2luYWxUb3AgICAgPSB0b3AgIC0gcGFyc2VGbG9hdChl
bGVtZW50LnN0eWxlLnRvcCB8fCAwKTsKICAgIGVsZW1lbnQuX29yaWdpbmFsV2lkdGggID0gZWxl
bWVudC5zdHlsZS53aWR0aDsKICAgIGVsZW1lbnQuX29yaWdpbmFsSGVpZ2h0ID0gZWxlbWVudC5z
dHlsZS5oZWlnaHQ7CgogICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CiAg
ICBlbGVtZW50LnN0eWxlLnRvcCAgICA9IHRvcCArICdweCc7OwogICAgZWxlbWVudC5zdHlsZS5s
ZWZ0ICAgPSBsZWZ0ICsgJ3B4Jzs7CiAgICBlbGVtZW50LnN0eWxlLndpZHRoICA9IHdpZHRoICsg
J3B4Jzs7CiAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7OwogIH0sCgog
IHJlbGF0aXZpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQp
OwogICAgaWYgKGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPT0gJ3JlbGF0aXZlJykgcmV0dXJuOwog
ICAgUG9zaXRpb24ucHJlcGFyZSgpOwoKICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVs
YXRpdmUnOwogICAgdmFyIHRvcCAgPSBwYXJzZUZsb2F0KGVsZW1lbnQuc3R5bGUudG9wICB8fCAw
KSAtIChlbGVtZW50Ll9vcmlnaW5hbFRvcCB8fCAwKTsKICAgIHZhciBsZWZ0ID0gcGFyc2VGbG9h
dChlbGVtZW50LnN0eWxlLmxlZnQgfHwgMCkgLSAoZWxlbWVudC5fb3JpZ2luYWxMZWZ0IHx8IDAp
OwoKICAgIGVsZW1lbnQuc3R5bGUudG9wICAgID0gdG9wICsgJ3B4JzsKICAgIGVsZW1lbnQuc3R5
bGUubGVmdCAgID0gbGVmdCArICdweCc7CiAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGVsZW1l
bnQuX29yaWdpbmFsSGVpZ2h0OwogICAgZWxlbWVudC5zdHlsZS53aWR0aCAgPSBlbGVtZW50Ll9v
cmlnaW5hbFdpZHRoOwogIH0KfQoKLy8gU2FmYXJpIHJldHVybnMgbWFyZ2lucyBvbiBib2R5IHdo
aWNoIGlzIGluY29ycmVjdCBpZiB0aGUgY2hpbGQgaXMgYWJzb2x1dGVseQovLyBwb3NpdGlvbmVk
LiAgRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHJlZGVmaW5lIFBvc2l0aW9uLmN1bXVsYXRpdmVP
ZmZzZXQgZm9yCi8vIEtIVE1ML1dlYktpdCBvbmx5LgppZiAoL0tvbnF1ZXJvcnxTYWZhcml8S0hU
TUwvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHsKICBQb3NpdGlvbi5jdW11bGF0aXZlT2Zm
c2V0ID0gZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVlVCA9IDAsIHZhbHVlTCA9IDA7
CiAgICBkbyB7CiAgICAgIHZhbHVlVCArPSBlbGVtZW50Lm9mZnNldFRvcCAgfHwgMDsKICAgICAg
dmFsdWVMICs9IGVsZW1lbnQub2Zmc2V0TGVmdCB8fCAwOwogICAgICBpZiAoZWxlbWVudC5vZmZz
ZXRQYXJlbnQgPT0gZG9jdW1lbnQuYm9keSkKICAgICAgICBpZiAoRWxlbWVudC5nZXRTdHlsZShl
bGVtZW50LCAncG9zaXRpb24nKSA9PSAnYWJzb2x1dGUnKSBicmVhazsKCiAgICAgIGVsZW1lbnQg
PSBlbGVtZW50Lm9mZnNldFBhcmVudDsKICAgIH0gd2hpbGUgKGVsZW1lbnQpOwoKICAgIHJldHVy
biBbdmFsdWVMLCB2YWx1ZVRdOwogIH0KfdQABQARAAcACACRAJIAFACTXxBEaHR0cDovL2dyYXBo
aWNzOC5ueXRpbWVzLmNvbS9qcy9jb21tb24vYXV0b2NvbXBsZXRlL3NjcmlwdGFjdWxvdXMuanNP
EQRTYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGG
oNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QIAsMJiwtMx40
NU9QUVJTVFVWV1hZWltcXV5fYGFiY2doVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0l
ViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgB+AAoAeEAgQAIAG
gAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBEaHR0cDovL2dy
YXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9jb21tb24vYXV0b2NvbXBsZXRlL3NjcmlwdGFjdWxvdXMu
anPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsHJWwvEMjT
DTY3ODlEV05TLmtleXNaTlMub2JqZWN0c4Adqjo7PD0+P0BBQkOACYAKgAuADIANgA6AD4AQgBGA
EqpFRkdISUpLTE1OgBOAFIAVgBaAF4AYgBmAGoAbgBxdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFu
Z2VzXxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNvbnRlbnQtTGVuZ3Ro
VERhdGVURXRhZ1pDb25uZWN0aW9uVFZhcnlfEB1UaHUsIDA0IE9jdCAyMDA3IDE1OjQ2OjA2IEdN
VFVieXRlc1RnemlwXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMV8QGGFwcGxpY2F0aW9uL3gtamF2
YXNjcmlwdFQxMTc1XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVReIjg1Yy00NzA1MGFi
ZSJaa2VlcC1hbGl2ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2Rlo2VmMl8QE05TTXV0YWJsZURpY3Rp
b25hcnlcTlNEaWN0aW9uYXJ5EQhc0i4vaWqjamsyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxS
ZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAhwCNAKgArwCyALUAuQC9AMAAwwDGAMkAzADP
ANIA1QDXANkA2wDdAN8A4QDjAOUA5wDpAOsA7QD0APwBCAEKAQwBDgFVAVoBYwFuAXEBdwGAAYkB
iwGSAZoBpQGnAbIBtAG2AbgBugG8Ab4BwAHCAcQBxgHRAdMB1QHXAdkB2wHdAd8B4QHjAeUB8wIB
AhQCGwIoAjcCPAJBAkwCUQJxAncCfAKVArACtQLVAuQC7wMBAwYDCgMgAy0DMAM1AzkDTQAAAAAA
AAIBAAAAAAAAAGwAAAAAAAAAAAAAAAAAAANbTxEIXC8vIENvcHlyaWdodCAoYykgMjAwNSBUaG9t
YXMgRnVjaHMgKGh0dHA6Ly9zY3JpcHQuYWN1bG8udXMsIGh0dHA6Ly9taXIuYWN1bG8udXMpCi8v
IAovLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcKLy8gYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi8vICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRo
ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLy8gd2l0aG91dCBsaW1p
dGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAov
LyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3
YXJlLCBhbmQgdG8KLy8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi8vIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
Ly8gCi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlCi8vIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y
dGlvbnMgb2YgdGhlIFNvZnR3YXJlLgovLwovLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLy8gRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi8vIE1FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECi8vIE5PTklO
RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUKLy8gTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTgovLyBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04KLy8gV0lUSCBUSEUgU09G
VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCgp2YXIg
U2NyaXB0YWN1bG91cyA9IHsKICBWZXJzaW9uOiAnMS41LjEnLAogIHJlcXVpcmU6IGZ1bmN0aW9u
KGxpYnJhcnlOYW1lKSB7CiAgICAvLyBpbnNlcnRpbmcgdmlhIERPTSBmYWlscyBpbiBTYWZhcmkg
Mi4wLCBzbyBicnV0ZSBmb3JjZSBhcHByb2FjaAogICAgZG9jdW1lbnQud3JpdGUoJzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicrbGlicmFyeU5hbWUrJyI+PC9zY3JpcHQ+Jyk7
CiAgfSwKICBsb2FkOiBmdW5jdGlvbigpIHsKICAgIGlmKCh0eXBlb2YgUHJvdG90eXBlPT0ndW5k
ZWZpbmVkJykgfHwKICAgICAgcGFyc2VGbG9hdChQcm90b3R5cGUuVmVyc2lvbi5zcGxpdCgiLiIp
WzBdICsgIi4iICsKICAgICAgICAgICAgICAgICBQcm90b3R5cGUuVmVyc2lvbi5zcGxpdCgiLiIp
WzFdKSA8IDEuNCkKICAgICAgdGhyb3coInNjcmlwdC5hY3Vsby51cyByZXF1aXJlcyB0aGUgUHJv
dG90eXBlIEphdmFTY3JpcHQgZnJhbWV3b3JrID49IDEuNC4wIik7CiAgICAKICAgICRBKGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSkuZmluZEFsbCggZnVuY3Rpb24ocykg
ewogICAgICByZXR1cm4gKHMuc3JjICYmIHMuc3JjLm1hdGNoKC9zY3JpcHRhY3Vsb3VzXC5qcyhc
Py4qKT8kLykpCiAgICB9KS5lYWNoKCBmdW5jdGlvbihzKSB7CiAgICAgIHZhciBwYXRoID0gcy5z
cmMucmVwbGFjZSgvc2NyaXB0YWN1bG91c1wuanMoXD8uKik/JC8sJycpOwogICAgICB2YXIgaW5j
bHVkZXMgPSBzLnNyYy5tYXRjaCgvXD8uKmxvYWQ9KFthLXosXSopLyk7CiAgICAgIChpbmNsdWRl
cyA/IGluY2x1ZGVzWzFdIDogJ2VmZmVjdHMsZHJhZ2Ryb3AsY29udHJvbHMnKS5zcGxpdCgnLCcp
LmVhY2goCiAgICAgICBmdW5jdGlvbihpbmNsdWRlKSB7IFNjcmlwdGFjdWxvdXMucmVxdWlyZShw
YXRoK2luY2x1ZGUrJy5qcycpIH0pOwogICAgfSk7CiAgfQp9CgovL1NjcmlwdGFjdWxvdXMubG9h
ZCgpOwrUAAUAEQAHAAgAlQCWABQAl18QPmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMv
Y29tbW9uL2F1dG9jb21wbGV0ZS9lZmZlY3RzLmpzTxEEUGJwbGlzdDAw1AECAwQFBgkKWCR2ZXJz
aW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNl
gAFfEA9OU0tleWVkQXJjaGl2ZXKvECALDCYsLTMeNDVPUFFSU1RVVldYWVpbXF1eX2BhYmNnaFUk
bnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIk
NlIkNFIkN1IkMlIkOVIkMFIkMYAfgAKAHhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFz
ZVtOUy5yZWxhdGl2ZYAEgACAA18QPmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvY29t
bW9uL2F1dG9jb21wbGV0ZS9lZmZlY3RzLmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVO
U1VSTFhOU09iamVjdCNBrZH7BybxeBDI0w02Nzg5RFdOUy5rZXlzWk5TLm9iamVjdHOAHao6Ozw9
Pj9AQUJDgAmACoALgAyADYAOgA+AEIARgBKqRUZHSElKS0xNToATgBSAFYAWgBeAGIAZgBqAG4Ac
VFZhcnldQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRlbnQtVHlw
ZVREYXRlXkNvbnRlbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkXxAPQWNj
ZXB0LUVuY29kaW5nVWJ5dGVzVGd6aXBfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xXxAYYXBwbGlj
YXRpb24veC1qYXZhc2NyaXB0XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVRUNjg4NF8Q
DyI3Y2UxLTQ3MDUwYWJlIlprZWVwLWFsaXZlXxAdVGh1LCAwNCBPY3QgMjAwNyAxNTo0NjowNiBH
TVTSLi9kZaNlZjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeRF84dIuL2lqo2pr
Ml8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBk
AIcAjQCoAK8AsgC1ALkAvQDAAMMAxgDJAMwAzwDSANUA1wDZANsA3QDfAOEA4wDlAOcA6QDrAO0A
9AD8AQgBCgEMAQ4BTwFUAV0BaAFrAXEBegGDAYUBjAGUAZ8BoQGsAa4BsAGyAbQBtgG4AboBvAG+
AcABywHNAc8B0QHTAdUB1wHZAdsB3QHfAeQB8gIFAgwCGQIeAi0CMgI9AksCXQJjAmgCgQKcArwC
wQLTAt4C/gMDAwcDHQMqAy0DMgM2A0oAAAAAAAACAQAAAAAAAABsAAAAAAAAAAAAAAAAAAADWE8R
fOEvLyBDb3B5cmlnaHQgKGMpIDIwMDUgVGhvbWFzIEZ1Y2hzIChodHRwOi8vc2NyaXB0LmFjdWxv
LnVzLCBodHRwOi8vbWlyLmFjdWxvLnVzKQovLyBDb250cmlidXRvcnM6Ci8vICBKdXN0aW4gUGFs
bWVyIChodHRwOi8vZW5jeXRlbWVkaWEuY29tLykKLy8gIE1hcmsgUGlsZ3JpbSAoaHR0cDovL2Rp
dmVpbnRvbWFyay5vcmcvKQovLyAgTWFydGluIEJpYWxhc2lua2kKLy8gCi8vIFNlZSBzY3JpcHRh
Y3Vsb3VzLmpzIGZvciBmdWxsIGxpY2Vuc2UuICAKCi8qIC0tLS0tLS0tLS0tLS0gZWxlbWVudCBl
eHQgLS0tLS0tLS0tLS0tLS0gKi8gIAogCi8vIGNvbnZlcnRzIHJnYigpIGFuZCAjeHh4IHRvICN4
eHh4eHggZm9ybWF0LCAgCi8vIHJldHVybnMgc2VsZiAob3IgZmlyc3QgYXJndW1lbnQpIGlmIG5v
dCBjb252ZXJ0YWJsZSAgClN0cmluZy5wcm90b3R5cGUucGFyc2VDb2xvciA9IGZ1bmN0aW9uKCkg
eyAgCiAgdmFyIGNvbG9yID0gJyMnOyAgCiAgaWYodGhpcy5zbGljZSgwLDQpID09ICdyZ2IoJykg
eyAgCiAgICB2YXIgY29scyA9IHRoaXMuc2xpY2UoNCx0aGlzLmxlbmd0aC0xKS5zcGxpdCgnLCcp
OyAgCiAgICB2YXIgaT0wOyBkbyB7IGNvbG9yICs9IHBhcnNlSW50KGNvbHNbaV0pLnRvQ29sb3JQ
YXJ0KCkgfSB3aGlsZSAoKytpPDMpOyAgCiAgfSBlbHNlIHsgIAogICAgaWYodGhpcy5zbGljZSgw
LDEpID09ICcjJykgeyAgCiAgICAgIGlmKHRoaXMubGVuZ3RoPT00KSBmb3IodmFyIGk9MTtpPDQ7
aSsrKSBjb2xvciArPSAodGhpcy5jaGFyQXQoaSkgKyB0aGlzLmNoYXJBdChpKSkudG9Mb3dlckNh
c2UoKTsgIAogICAgICBpZih0aGlzLmxlbmd0aD09NykgY29sb3IgPSB0aGlzLnRvTG93ZXJDYXNl
KCk7ICAKICAgIH0gIAogIH0gIAogIHJldHVybihjb2xvci5sZW5ndGg9PTcgPyBjb2xvciA6IChh
cmd1bWVudHNbMF0gfHwgdGhpcykpOyAgCn0KCkVsZW1lbnQuY29sbGVjdFRleHROb2RlcyA9IGZ1
bmN0aW9uKGVsZW1lbnQpIHsgIAogIHJldHVybiAkQSgkKGVsZW1lbnQpLmNoaWxkTm9kZXMpLmNv
bGxlY3QoIGZ1bmN0aW9uKG5vZGUpIHsKICAgIHJldHVybiAobm9kZS5ub2RlVHlwZT09MyA/IG5v
ZGUubm9kZVZhbHVlIDogCiAgICAgIChub2RlLmhhc0NoaWxkTm9kZXMoKSA/IEVsZW1lbnQuY29s
bGVjdFRleHROb2Rlcyhub2RlKSA6ICcnKSk7CiAgfSkuZmxhdHRlbigpLmpvaW4oJycpOwp9CgpF
bGVtZW50LmNvbGxlY3RUZXh0Tm9kZXNJZ25vcmVDbGFzcyA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNs
YXNzTmFtZSkgeyAgCiAgcmV0dXJuICRBKCQoZWxlbWVudCkuY2hpbGROb2RlcykuY29sbGVjdCgg
ZnVuY3Rpb24obm9kZSkgewogICAgcmV0dXJuIChub2RlLm5vZGVUeXBlPT0zID8gbm9kZS5ub2Rl
VmFsdWUgOiAKICAgICAgKChub2RlLmhhc0NoaWxkTm9kZXMoKSAmJiAhRWxlbWVudC5oYXNDbGFz
c05hbWUobm9kZSxjbGFzc05hbWUpKSA/IAogICAgICAgIEVsZW1lbnQuY29sbGVjdFRleHROb2Rl
cyhub2RlKSA6ICcnKSk7CiAgfSkuZmxhdHRlbigpLmpvaW4oJycpOwp9CgpFbGVtZW50LnNldFN0
eWxlID0gZnVuY3Rpb24oZWxlbWVudCwgc3R5bGUpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsK
ICBmb3IoayBpbiBzdHlsZSkgZWxlbWVudC5zdHlsZVtrLmNhbWVsaXplKCldID0gc3R5bGVba107
Cn0KCkVsZW1lbnQuc2V0Q29udGVudFpvb20gPSBmdW5jdGlvbihlbGVtZW50LCBwZXJjZW50KSB7
ICAKICBFbGVtZW50LnNldFN0eWxlKGVsZW1lbnQsIHtmb250U2l6ZTogKHBlcmNlbnQvMTAwKSAr
ICdlbSd9KTsgICAKICBpZihuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdBcHBsZVdlYktp
dCcpPjApIHdpbmRvdy5zY3JvbGxCeSgwLDApOyAgCn0KCkVsZW1lbnQuZ2V0T3BhY2l0eSA9IGZ1
bmN0aW9uKGVsZW1lbnQpeyAgCiAgdmFyIG9wYWNpdHk7CiAgaWYgKG9wYWNpdHkgPSBFbGVtZW50
LmdldFN0eWxlKGVsZW1lbnQsICdvcGFjaXR5JykpICAKICAgIHJldHVybiBwYXJzZUZsb2F0KG9w
YWNpdHkpOyAgCiAgaWYgKG9wYWNpdHkgPSAoRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAnZmls
dGVyJykgfHwgJycpLm1hdGNoKC9hbHBoYVwob3BhY2l0eT0oLiopXCkvKSkgIAogICAgaWYob3Bh
Y2l0eVsxXSkgcmV0dXJuIHBhcnNlRmxvYXQob3BhY2l0eVsxXSkgLyAxMDA7ICAKICByZXR1cm4g
MS4wOyAgCn0KCkVsZW1lbnQuc2V0T3BhY2l0eSA9IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVlKXsg
IAogIGVsZW1lbnQ9ICQoZWxlbWVudCk7ICAKICBpZiAodmFsdWUgPT0gMSl7CiAgICBFbGVtZW50
LnNldFN0eWxlKGVsZW1lbnQsIHsgb3BhY2l0eTogCiAgICAgICgvR2Vja28vLnRlc3QobmF2aWdh
dG9yLnVzZXJBZ2VudCkgJiYgIS9Lb25xdWVyb3J8U2FmYXJpfEtIVE1MLy50ZXN0KG5hdmlnYXRv
ci51c2VyQWdlbnQpKSA/IAogICAgICAwLjk5OTk5OSA6IG51bGwgfSk7CiAgICBpZigvTVNJRS8u
dGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgIAogICAgICBFbGVtZW50LnNldFN0eWxlKGVsZW1l
bnQsIHtmaWx0ZXI6IEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwnZmlsdGVyJykucmVwbGFjZSgv
YWxwaGFcKFteXCldKlwpL2dpLCcnKX0pOyAgCiAgfSBlbHNlIHsgIAogICAgaWYodmFsdWUgPCAw
LjAwMDAxKSB2YWx1ZSA9IDA7ICAKICAgIEVsZW1lbnQuc2V0U3R5bGUoZWxlbWVudCwge29wYWNp
dHk6IHZhbHVlfSk7CiAgICBpZigvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgIAog
ICAgIEVsZW1lbnQuc2V0U3R5bGUoZWxlbWVudCwgCiAgICAgICB7IGZpbHRlcjogRWxlbWVudC5n
ZXRTdHlsZShlbGVtZW50LCdmaWx0ZXInKS5yZXBsYWNlKC9hbHBoYVwoW15cKV0qXCkvZ2ksJycp
ICsKICAgICAgICAgICAgICAgICAnYWxwaGEob3BhY2l0eT0nK3ZhbHVlKjEwMCsnKScgfSk7ICAK
ICB9ICAgCn0gIAogCkVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eSA9IGZ1bmN0aW9uKGVsZW1lbnQp
eyAgCiAgcmV0dXJuICQoZWxlbWVudCkuc3R5bGUub3BhY2l0eSB8fCAnJzsKfSAgCgpFbGVtZW50
LmNoaWxkcmVuV2l0aENsYXNzTmFtZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgeyAg
CiAgcmV0dXJuICRBKCQoZWxlbWVudCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJyonKSkuc2VsZWN0
KAogICAgZnVuY3Rpb24oYykgeyByZXR1cm4gRWxlbWVudC5oYXNDbGFzc05hbWUoYywgY2xhc3NO
YW1lKSB9KTsKfQoKQXJyYXkucHJvdG90eXBlLmNhbGwgPSBmdW5jdGlvbigpIHsKICB2YXIgYXJn
cyA9IGFyZ3VtZW50czsKICB0aGlzLmVhY2goZnVuY3Rpb24oZil7IGYuYXBwbHkodGhpcywgYXJn
cykgfSk7Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFyIEVmZmVjdCA9IHsKICB0YWdpZnlU
ZXh0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIgdGFnaWZ5U3R5bGUgPSAncG9zaXRpb246
cmVsYXRpdmUnOwogICAgaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHRhZ2lm
eVN0eWxlICs9ICc7em9vbToxJzsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgJEEoZWxl
bWVudC5jaGlsZE5vZGVzKS5lYWNoKCBmdW5jdGlvbihjaGlsZCkgewogICAgICBpZihjaGlsZC5u
b2RlVHlwZT09MykgewogICAgICAgIGNoaWxkLm5vZGVWYWx1ZS50b0FycmF5KCkuZWFjaCggZnVu
Y3Rpb24oY2hhcmFjdGVyKSB7CiAgICAgICAgICBlbGVtZW50Lmluc2VydEJlZm9yZSgKICAgICAg
ICAgICAgQnVpbGRlci5ub2RlKCdzcGFuJyx7c3R5bGU6IHRhZ2lmeVN0eWxlfSwKICAgICAgICAg
ICAgICBjaGFyYWN0ZXIgPT0gJyAnID8gU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApIDogY2hhcmFj
dGVyKSwgCiAgICAgICAgICAgICAgY2hpbGQpOwogICAgICAgIH0pOwogICAgICAgIEVsZW1lbnQu
cmVtb3ZlKGNoaWxkKTsKICAgICAgfQogICAgfSk7CiAgfSwKICBtdWx0aXBsZTogZnVuY3Rpb24o
ZWxlbWVudCwgZWZmZWN0KSB7CiAgICB2YXIgZWxlbWVudHM7CiAgICBpZigoKHR5cGVvZiBlbGVt
ZW50ID09ICdvYmplY3QnKSB8fCAKICAgICAgICAodHlwZW9mIGVsZW1lbnQgPT0gJ2Z1bmN0aW9u
JykpICYmIAogICAgICAgKGVsZW1lbnQubGVuZ3RoKSkKICAgICAgZWxlbWVudHMgPSBlbGVtZW50
OwogICAgZWxzZQogICAgICBlbGVtZW50cyA9ICQoZWxlbWVudCkuY2hpbGROb2RlczsKICAgICAg
CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICBzcGVlZDogMC4xLAogICAg
ICBkZWxheTogMC4wCiAgICB9LCBhcmd1bWVudHNbMl0gfHwge30pOwogICAgdmFyIG1hc3RlckRl
bGF5ID0gb3B0aW9ucy5kZWxheTsKCiAgICAkQShlbGVtZW50cykuZWFjaCggZnVuY3Rpb24oZWxl
bWVudCwgaW5kZXgpIHsKICAgICAgbmV3IGVmZmVjdChlbGVtZW50LCBPYmplY3QuZXh0ZW5kKG9w
dGlvbnMsIHsgZGVsYXk6IGluZGV4ICogb3B0aW9ucy5zcGVlZCArIG1hc3RlckRlbGF5IH0pKTsK
ICAgIH0pOwogIH0sCiAgUEFJUlM6IHsKICAgICdzbGlkZSc6ICBbJ1NsaWRlRG93bicsJ1NsaWRl
VXAnXSwKICAgICdibGluZCc6ICBbJ0JsaW5kRG93bicsJ0JsaW5kVXAnXSwKICAgICdhcHBlYXIn
OiBbJ0FwcGVhcicsJ0ZhZGUnXQogIH0sCiAgdG9nZ2xlOiBmdW5jdGlvbihlbGVtZW50LCBlZmZl
Y3QpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgZWZmZWN0ID0gKGVmZmVjdCB8fCAn
YXBwZWFyJykudG9Mb3dlckNhc2UoKTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7
CiAgICAgIHF1ZXVlOiB7IHBvc2l0aW9uOidlbmQnLCBzY29wZTooZWxlbWVudC5pZCB8fCAnZ2xv
YmFsJykgfQogICAgfSwgYXJndW1lbnRzWzJdIHx8IHt9KTsKICAgIEVmZmVjdFtFbGVtZW50LnZp
c2libGUoZWxlbWVudCkgPyAKICAgICAgRWZmZWN0LlBBSVJTW2VmZmVjdF1bMV0gOiBFZmZlY3Qu
UEFJUlNbZWZmZWN0XVswXV0oZWxlbWVudCwgb3B0aW9ucyk7CiAgfQp9OwoKdmFyIEVmZmVjdDIg
PSBFZmZlY3Q7IC8vIGRlcHJlY2F0ZWQKCi8qIC0tLS0tLS0tLS0tLS0gdHJhbnNpdGlvbnMgLS0t
LS0tLS0tLS0tLSAqLwoKRWZmZWN0LlRyYW5zaXRpb25zID0ge30KCkVmZmVjdC5UcmFuc2l0aW9u
cy5saW5lYXIgPSBmdW5jdGlvbihwb3MpIHsKICByZXR1cm4gcG9zOwp9CkVmZmVjdC5UcmFuc2l0
aW9ucy5zaW5vaWRhbCA9IGZ1bmN0aW9uKHBvcykgewogIHJldHVybiAoLU1hdGguY29zKHBvcypN
YXRoLlBJKS8yKSArIDAuNTsKfQpFZmZlY3QuVHJhbnNpdGlvbnMucmV2ZXJzZSAgPSBmdW5jdGlv
bihwb3MpIHsKICByZXR1cm4gMS1wb3M7Cn0KRWZmZWN0LlRyYW5zaXRpb25zLmZsaWNrZXIgPSBm
dW5jdGlvbihwb3MpIHsKICByZXR1cm4gKCgtTWF0aC5jb3MocG9zKk1hdGguUEkpLzQpICsgMC43
NSkgKyBNYXRoLnJhbmRvbSgpLzQ7Cn0KRWZmZWN0LlRyYW5zaXRpb25zLndvYmJsZSA9IGZ1bmN0
aW9uKHBvcykgewogIHJldHVybiAoLU1hdGguY29zKHBvcypNYXRoLlBJKig5KnBvcykpLzIpICsg
MC41Owp9CkVmZmVjdC5UcmFuc2l0aW9ucy5wdWxzZSA9IGZ1bmN0aW9uKHBvcykgewogIHJldHVy
biAoTWF0aC5mbG9vcihwb3MqMTApICUgMiA9PSAwID8gCiAgICAocG9zKjEwLU1hdGguZmxvb3Io
cG9zKjEwKSkgOiAxLShwb3MqMTAtTWF0aC5mbG9vcihwb3MqMTApKSk7Cn0KRWZmZWN0LlRyYW5z
aXRpb25zLm5vbmUgPSBmdW5jdGlvbihwb3MpIHsKICByZXR1cm4gMDsKfQpFZmZlY3QuVHJhbnNp
dGlvbnMuZnVsbCA9IGZ1bmN0aW9uKHBvcykgewogIHJldHVybiAxOwp9CgovKiAtLS0tLS0tLS0t
LS0tIGNvcmUgZWZmZWN0cyAtLS0tLS0tLS0tLS0tICovCgpFZmZlY3QuU2NvcGVkUXVldWUgPSBD
bGFzcy5jcmVhdGUoKTsKT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKEVmZmVjdC5TY29wZWRR
dWV1ZS5wcm90b3R5cGUsIEVudW1lcmFibGUpLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7
CiAgICB0aGlzLmVmZmVjdHMgID0gW107CiAgICB0aGlzLmludGVydmFsID0gbnVsbDsKICB9LAog
IF9lYWNoOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdGhpcy5lZmZlY3RzLl9lYWNoKGl0ZXJh
dG9yKTsKICB9LAogIGFkZDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICB2YXIgdGltZXN0YW1wID0g
bmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAKICAgIHZhciBwb3NpdGlvbiA9ICh0eXBlb2YgZWZm
ZWN0Lm9wdGlvbnMucXVldWUgPT0gJ3N0cmluZycpID8gCiAgICAgIGVmZmVjdC5vcHRpb25zLnF1
ZXVlIDogZWZmZWN0Lm9wdGlvbnMucXVldWUucG9zaXRpb247CiAgICAKICAgIHN3aXRjaChwb3Np
dGlvbikgewogICAgICBjYXNlICdmcm9udCc6CiAgICAgICAgLy8gbW92ZSB1bnN0YXJ0ZWQgZWZm
ZWN0cyBhZnRlciB0aGlzIGVmZmVjdCAgCiAgICAgICAgdGhpcy5lZmZlY3RzLmZpbmRBbGwoZnVu
Y3Rpb24oZSl7IHJldHVybiBlLnN0YXRlPT0naWRsZScgfSkuZWFjaCggZnVuY3Rpb24oZSkgewog
ICAgICAgICAgICBlLnN0YXJ0T24gICs9IGVmZmVjdC5maW5pc2hPbjsKICAgICAgICAgICAgZS5m
aW5pc2hPbiArPSBlZmZlY3QuZmluaXNoT247CiAgICAgICAgICB9KTsKICAgICAgICBicmVhazsK
ICAgICAgY2FzZSAnZW5kJzoKICAgICAgICAvLyBzdGFydCBlZmZlY3QgYWZ0ZXIgbGFzdCBxdWV1
ZWQgZWZmZWN0IGhhcyBmaW5pc2hlZAogICAgICAgIHRpbWVzdGFtcCA9IHRoaXMuZWZmZWN0cy5w
bHVjaygnZmluaXNoT24nKS5tYXgoKSB8fCB0aW1lc3RhbXA7CiAgICAgICAgYnJlYWs7CiAgICB9
CiAgICAKICAgIGVmZmVjdC5zdGFydE9uICArPSB0aW1lc3RhbXA7CiAgICBlZmZlY3QuZmluaXNo
T24gKz0gdGltZXN0YW1wOwogICAgdGhpcy5lZmZlY3RzLnB1c2goZWZmZWN0KTsKICAgIGlmKCF0
aGlzLmludGVydmFsKSAKICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKHRoaXMubG9v
cC5iaW5kKHRoaXMpLCA0MCk7CiAgfSwKICByZW1vdmU6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAg
dGhpcy5lZmZlY3RzID0gdGhpcy5lZmZlY3RzLnJlamVjdChmdW5jdGlvbihlKSB7IHJldHVybiBl
PT1lZmZlY3QgfSk7CiAgICBpZih0aGlzLmVmZmVjdHMubGVuZ3RoID09IDApIHsKICAgICAgY2xl
YXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTsKICAgICAgdGhpcy5pbnRlcnZhbCA9IG51bGw7CiAg
ICB9CiAgfSwKICBsb29wOiBmdW5jdGlvbigpIHsKICAgIHZhciB0aW1lUG9zID0gbmV3IERhdGUo
KS5nZXRUaW1lKCk7CiAgICB0aGlzLmVmZmVjdHMuaW52b2tlKCdsb29wJywgdGltZVBvcyk7CiAg
fQp9KTsKCkVmZmVjdC5RdWV1ZXMgPSB7CiAgaW5zdGFuY2VzOiAkSCgpLAogIGdldDogZnVuY3Rp
b24ocXVldWVOYW1lKSB7CiAgICBpZih0eXBlb2YgcXVldWVOYW1lICE9ICdzdHJpbmcnKSByZXR1
cm4gcXVldWVOYW1lOwogICAgCiAgICBpZighdGhpcy5pbnN0YW5jZXNbcXVldWVOYW1lXSkKICAg
ICAgdGhpcy5pbnN0YW5jZXNbcXVldWVOYW1lXSA9IG5ldyBFZmZlY3QuU2NvcGVkUXVldWUoKTsK
ICAgICAgCiAgICByZXR1cm4gdGhpcy5pbnN0YW5jZXNbcXVldWVOYW1lXTsKICB9Cn0KRWZmZWN0
LlF1ZXVlID0gRWZmZWN0LlF1ZXVlcy5nZXQoJ2dsb2JhbCcpOwoKRWZmZWN0LkRlZmF1bHRPcHRp
b25zID0gewogIHRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbCwKICBkdXJh
dGlvbjogICAxLjAsICAgLy8gc2Vjb25kcwogIGZwczogICAgICAgIDI1LjAsICAvLyBtYXguIDI1
ZnBzIGR1ZSB0byBFZmZlY3QuUXVldWUgaW1wbGVtZW50YXRpb24KICBzeW5jOiAgICAgICBmYWxz
ZSwgLy8gdHJ1ZSBmb3IgY29tYmluaW5nCiAgZnJvbTogICAgICAgMC4wLAogIHRvOiAgICAgICAg
IDEuMCwKICBkZWxheTogICAgICAwLjAsCiAgcXVldWU6ICAgICAgJ3BhcmFsbGVsJwp9CgpFZmZl
Y3QuQmFzZSA9IGZ1bmN0aW9uKCkge307CkVmZmVjdC5CYXNlLnByb3RvdHlwZSA9IHsKICBwb3Np
dGlvbjogbnVsbCwKICBzdGFydDogZnVuY3Rpb24ob3B0aW9ucykgewogICAgdGhpcy5vcHRpb25z
ICAgICAgPSBPYmplY3QuZXh0ZW5kKE9iamVjdC5leHRlbmQoe30sRWZmZWN0LkRlZmF1bHRPcHRp
b25zKSwgb3B0aW9ucyB8fCB7fSk7CiAgICB0aGlzLmN1cnJlbnRGcmFtZSA9IDA7CiAgICB0aGlz
LnN0YXRlICAgICAgICA9ICdpZGxlJzsKICAgIHRoaXMuc3RhcnRPbiAgICAgID0gdGhpcy5vcHRp
b25zLmRlbGF5KjEwMDA7CiAgICB0aGlzLmZpbmlzaE9uICAgICA9IHRoaXMuc3RhcnRPbiArICh0
aGlzLm9wdGlvbnMuZHVyYXRpb24qMTAwMCk7CiAgICB0aGlzLmV2ZW50KCdiZWZvcmVTdGFydCcp
OwogICAgaWYoIXRoaXMub3B0aW9ucy5zeW5jKQogICAgICBFZmZlY3QuUXVldWVzLmdldCh0eXBl
b2YgdGhpcy5vcHRpb25zLnF1ZXVlID09ICdzdHJpbmcnID8gCiAgICAgICAgJ2dsb2JhbCcgOiB0
aGlzLm9wdGlvbnMucXVldWUuc2NvcGUpLmFkZCh0aGlzKTsKICB9LAogIGxvb3A6IGZ1bmN0aW9u
KHRpbWVQb3MpIHsKICAgIGlmKHRpbWVQb3MgPj0gdGhpcy5zdGFydE9uKSB7CiAgICAgIGlmKHRp
bWVQb3MgPj0gdGhpcy5maW5pc2hPbikgewogICAgICAgIHRoaXMucmVuZGVyKDEuMCk7CiAgICAg
ICAgdGhpcy5jYW5jZWwoKTsKICAgICAgICB0aGlzLmV2ZW50KCdiZWZvcmVGaW5pc2gnKTsKICAg
ICAgICBpZih0aGlzLmZpbmlzaCkgdGhpcy5maW5pc2goKTsgCiAgICAgICAgdGhpcy5ldmVudCgn
YWZ0ZXJGaW5pc2gnKTsKICAgICAgICByZXR1cm47ICAKICAgICAgfQogICAgICB2YXIgcG9zICAg
PSAodGltZVBvcyAtIHRoaXMuc3RhcnRPbikgLyAodGhpcy5maW5pc2hPbiAtIHRoaXMuc3RhcnRP
bik7CiAgICAgIHZhciBmcmFtZSA9IE1hdGgucm91bmQocG9zICogdGhpcy5vcHRpb25zLmZwcyAq
IHRoaXMub3B0aW9ucy5kdXJhdGlvbik7CiAgICAgIGlmKGZyYW1lID4gdGhpcy5jdXJyZW50RnJh
bWUpIHsKICAgICAgICB0aGlzLnJlbmRlcihwb3MpOwogICAgICAgIHRoaXMuY3VycmVudEZyYW1l
ID0gZnJhbWU7CiAgICAgIH0KICAgIH0KICB9LAogIHJlbmRlcjogZnVuY3Rpb24ocG9zKSB7CiAg
ICBpZih0aGlzLnN0YXRlID09ICdpZGxlJykgewogICAgICB0aGlzLnN0YXRlID0gJ3J1bm5pbmcn
OwogICAgICB0aGlzLmV2ZW50KCdiZWZvcmVTZXR1cCcpOwogICAgICBpZih0aGlzLnNldHVwKSB0
aGlzLnNldHVwKCk7CiAgICAgIHRoaXMuZXZlbnQoJ2FmdGVyU2V0dXAnKTsKICAgIH0KICAgIGlm
KHRoaXMuc3RhdGUgPT0gJ3J1bm5pbmcnKSB7CiAgICAgIGlmKHRoaXMub3B0aW9ucy50cmFuc2l0
aW9uKSBwb3MgPSB0aGlzLm9wdGlvbnMudHJhbnNpdGlvbihwb3MpOwogICAgICBwb3MgKj0gKHRo
aXMub3B0aW9ucy50by10aGlzLm9wdGlvbnMuZnJvbSk7CiAgICAgIHBvcyArPSB0aGlzLm9wdGlv
bnMuZnJvbTsKICAgICAgdGhpcy5wb3NpdGlvbiA9IHBvczsKICAgICAgdGhpcy5ldmVudCgnYmVm
b3JlVXBkYXRlJyk7CiAgICAgIGlmKHRoaXMudXBkYXRlKSB0aGlzLnVwZGF0ZShwb3MpOwogICAg
ICB0aGlzLmV2ZW50KCdhZnRlclVwZGF0ZScpOwogICAgfQogIH0sCiAgY2FuY2VsOiBmdW5jdGlv
bigpIHsKICAgIGlmKCF0aGlzLm9wdGlvbnMuc3luYykKICAgICAgRWZmZWN0LlF1ZXVlcy5nZXQo
dHlwZW9mIHRoaXMub3B0aW9ucy5xdWV1ZSA9PSAnc3RyaW5nJyA/IAogICAgICAgICdnbG9iYWwn
IDogdGhpcy5vcHRpb25zLnF1ZXVlLnNjb3BlKS5yZW1vdmUodGhpcyk7CiAgICB0aGlzLnN0YXRl
ID0gJ2ZpbmlzaGVkJzsKICB9LAogIGV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUpIHsKICAgIGlm
KHRoaXMub3B0aW9uc1tldmVudE5hbWUgKyAnSW50ZXJuYWwnXSkgdGhpcy5vcHRpb25zW2V2ZW50
TmFtZSArICdJbnRlcm5hbCddKHRoaXMpOwogICAgaWYodGhpcy5vcHRpb25zW2V2ZW50TmFtZV0p
IHRoaXMub3B0aW9uc1tldmVudE5hbWVdKHRoaXMpOwogIH0sCiAgaW5zcGVjdDogZnVuY3Rpb24o
KSB7CiAgICByZXR1cm4gJyM8RWZmZWN0OicgKyAkSCh0aGlzKS5pbnNwZWN0KCkgKyAnLG9wdGlv
bnM6JyArICRIKHRoaXMub3B0aW9ucykuaW5zcGVjdCgpICsgJz4nOwogIH0KfQoKRWZmZWN0LlBh
cmFsbGVsID0gQ2xhc3MuY3JlYXRlKCk7Ck9iamVjdC5leHRlbmQoT2JqZWN0LmV4dGVuZChFZmZl
Y3QuUGFyYWxsZWwucHJvdG90eXBlLCBFZmZlY3QuQmFzZS5wcm90b3R5cGUpLCB7CiAgaW5pdGlh
bGl6ZTogZnVuY3Rpb24oZWZmZWN0cykgewogICAgdGhpcy5lZmZlY3RzID0gZWZmZWN0cyB8fCBb
XTsKICAgIHRoaXMuc3RhcnQoYXJndW1lbnRzWzFdKTsKICB9LAogIHVwZGF0ZTogZnVuY3Rpb24o
cG9zaXRpb24pIHsKICAgIHRoaXMuZWZmZWN0cy5pbnZva2UoJ3JlbmRlcicsIHBvc2l0aW9uKTsK
ICB9LAogIGZpbmlzaDogZnVuY3Rpb24ocG9zaXRpb24pIHsKICAgIHRoaXMuZWZmZWN0cy5lYWNo
KCBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgZWZmZWN0LnJlbmRlcigxLjApOwogICAgICBlZmZl
Y3QuY2FuY2VsKCk7CiAgICAgIGVmZmVjdC5ldmVudCgnYmVmb3JlRmluaXNoJyk7CiAgICAgIGlm
KGVmZmVjdC5maW5pc2gpIGVmZmVjdC5maW5pc2gocG9zaXRpb24pOwogICAgICBlZmZlY3QuZXZl
bnQoJ2FmdGVyRmluaXNoJyk7CiAgICB9KTsKICB9Cn0pOwoKRWZmZWN0Lk9wYWNpdHkgPSBDbGFz
cy5jcmVhdGUoKTsKT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKEVmZmVjdC5PcGFjaXR5LnBy
b3RvdHlwZSwgRWZmZWN0LkJhc2UucHJvdG90eXBlKSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9u
KGVsZW1lbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICAvLyBtYWtlIHRo
aXMgd29yayBvbiBJRSBvbiBlbGVtZW50cyB3aXRob3V0ICdsYXlvdXQnCiAgICBpZigvTVNJRS8u
dGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAoIXRoaXMuZWxlbWVudC5oYXNMYXlvdXQpKQog
ICAgICBFbGVtZW50LnNldFN0eWxlKHRoaXMuZWxlbWVudCwge3pvb206IDF9KTsKICAgIHZhciBv
cHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAgIGZyb206IEVsZW1lbnQuZ2V0T3BhY2l0eSh0
aGlzLmVsZW1lbnQpIHx8IDAuMCwKICAgICAgdG86ICAgMS4wCiAgICB9LCBhcmd1bWVudHNbMV0g
fHwge30pOwogICAgdGhpcy5zdGFydChvcHRpb25zKTsKICB9LAogIHVwZGF0ZTogZnVuY3Rpb24o
cG9zaXRpb24pIHsKICAgIEVsZW1lbnQuc2V0T3BhY2l0eSh0aGlzLmVsZW1lbnQsIHBvc2l0aW9u
KTsKICB9Cn0pOwoKRWZmZWN0Lk1vdmUgPSBDbGFzcy5jcmVhdGUoKTsKT2JqZWN0LmV4dGVuZChP
YmplY3QuZXh0ZW5kKEVmZmVjdC5Nb3ZlLnByb3RvdHlwZSwgRWZmZWN0LkJhc2UucHJvdG90eXBl
KSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9
ICQoZWxlbWVudCk7CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICB4OiAg
ICAwLAogICAgICB5OiAgICAwLAogICAgICBtb2RlOiAncmVsYXRpdmUnCiAgICB9LCBhcmd1bWVu
dHNbMV0gfHwge30pOwogICAgdGhpcy5zdGFydChvcHRpb25zKTsKICB9LAogIHNldHVwOiBmdW5j
dGlvbigpIHsKICAgIC8vIEJ1ZyBpbiBPcGVyYTogT3BlcmEgcmV0dXJucyB0aGUgInJlYWwiIHBv
c2l0aW9uIG9mIGEgc3RhdGljIGVsZW1lbnQgb3IKICAgIC8vIHJlbGF0aXZlIGVsZW1lbnQgdGhh
dCBkb2VzIG5vdCBoYXZlIHRvcC9sZWZ0IGV4cGxpY2l0bHkgc2V0LgogICAgLy8gPT0+IEFsd2F5
cyBzZXQgdG9wIGFuZCBsZWZ0IGZvciBwb3NpdGlvbiByZWxhdGl2ZSBlbGVtZW50cyBpbiB5b3Vy
IHN0eWxlc2hlZXRzIAogICAgLy8gKHRvIDAgaWYgeW91IGRvIG5vdCBuZWVkIHRoZW0pIAogICAg
RWxlbWVudC5tYWtlUG9zaXRpb25lZCh0aGlzLmVsZW1lbnQpOwogICAgdGhpcy5vcmlnaW5hbExl
ZnQgPSBwYXJzZUZsb2F0KEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCdsZWZ0JykgfHwg
JzAnKTsKICAgIHRoaXMub3JpZ2luYWxUb3AgID0gcGFyc2VGbG9hdChFbGVtZW50LmdldFN0eWxl
KHRoaXMuZWxlbWVudCwndG9wJykgIHx8ICcwJyk7CiAgICBpZih0aGlzLm9wdGlvbnMubW9kZSA9
PSAnYWJzb2x1dGUnKSB7CiAgICAgIC8vIGFic29sdXRlIG1vdmVtZW50LCBzbyB3ZSBuZWVkIHRv
IGNhbGMgZGVsdGFYIGFuZCBkZWx0YVkKICAgICAgdGhpcy5vcHRpb25zLnggPSB0aGlzLm9wdGlv
bnMueCAtIHRoaXMub3JpZ2luYWxMZWZ0OwogICAgICB0aGlzLm9wdGlvbnMueSA9IHRoaXMub3B0
aW9ucy55IC0gdGhpcy5vcmlnaW5hbFRvcDsKICAgIH0KICB9LAogIHVwZGF0ZTogZnVuY3Rpb24o
cG9zaXRpb24pIHsKICAgIEVsZW1lbnQuc2V0U3R5bGUodGhpcy5lbGVtZW50LCB7CiAgICAgIGxl
ZnQ6IHRoaXMub3B0aW9ucy54ICAqIHBvc2l0aW9uICsgdGhpcy5vcmlnaW5hbExlZnQgKyAncHgn
LAogICAgICB0b3A6ICB0aGlzLm9wdGlvbnMueSAgKiBwb3NpdGlvbiArIHRoaXMub3JpZ2luYWxU
b3AgICsgJ3B4JwogICAgfSk7CiAgfQp9KTsKCi8vIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0
eQpFZmZlY3QuTW92ZUJ5ID0gZnVuY3Rpb24oZWxlbWVudCwgdG9Ub3AsIHRvTGVmdCkgewogIHJl
dHVybiBuZXcgRWZmZWN0Lk1vdmUoZWxlbWVudCwgCiAgICBPYmplY3QuZXh0ZW5kKHsgeDogdG9M
ZWZ0LCB5OiB0b1RvcCB9LCBhcmd1bWVudHNbM10gfHwge30pKTsKfTsKCkVmZmVjdC5TY2FsZSA9
IENsYXNzLmNyZWF0ZSgpOwpPYmplY3QuZXh0ZW5kKE9iamVjdC5leHRlbmQoRWZmZWN0LlNjYWxl
LnByb3RvdHlwZSwgRWZmZWN0LkJhc2UucHJvdG90eXBlKSwgewogIGluaXRpYWxpemU6IGZ1bmN0
aW9uKGVsZW1lbnQsIHBlcmNlbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCkKICAg
IHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAgIHNjYWxlWDogdHJ1ZSwKICAgICAg
c2NhbGVZOiB0cnVlLAogICAgICBzY2FsZUNvbnRlbnQ6IHRydWUsCiAgICAgIHNjYWxlRnJvbUNl
bnRlcjogZmFsc2UsCiAgICAgIHNjYWxlTW9kZTogJ2JveCcsICAgICAgICAvLyAnYm94JyBvciAn
Y29udGVudHMnIG9yIHt9IHdpdGggcHJvdmlkZWQgdmFsdWVzCiAgICAgIHNjYWxlRnJvbTogMTAw
LjAsCiAgICAgIHNjYWxlVG86ICAgcGVyY2VudAogICAgfSwgYXJndW1lbnRzWzJdIHx8IHt9KTsK
ICAgIHRoaXMuc3RhcnQob3B0aW9ucyk7CiAgfSwKICBzZXR1cDogZnVuY3Rpb24oKSB7CiAgICB0
aGlzLnJlc3RvcmVBZnRlckZpbmlzaCA9IHRoaXMub3B0aW9ucy5yZXN0b3JlQWZ0ZXJGaW5pc2gg
fHwgZmFsc2U7CiAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbmluZyA9IEVsZW1lbnQuZ2V0U3R5bGUo
dGhpcy5lbGVtZW50LCdwb3NpdGlvbicpOwogICAgCiAgICB0aGlzLm9yaWdpbmFsU3R5bGUgPSB7
fTsKICAgIFsndG9wJywnbGVmdCcsJ3dpZHRoJywnaGVpZ2h0JywnZm9udFNpemUnXS5lYWNoKCBm
dW5jdGlvbihrKSB7CiAgICAgIHRoaXMub3JpZ2luYWxTdHlsZVtrXSA9IHRoaXMuZWxlbWVudC5z
dHlsZVtrXTsKICAgIH0uYmluZCh0aGlzKSk7CiAgICAgIAogICAgdGhpcy5vcmlnaW5hbFRvcCAg
PSB0aGlzLmVsZW1lbnQub2Zmc2V0VG9wOwogICAgdGhpcy5vcmlnaW5hbExlZnQgPSB0aGlzLmVs
ZW1lbnQub2Zmc2V0TGVmdDsKICAgIAogICAgdmFyIGZvbnRTaXplID0gRWxlbWVudC5nZXRTdHls
ZSh0aGlzLmVsZW1lbnQsJ2ZvbnQtc2l6ZScpIHx8ICcxMDAlJzsKICAgIFsnZW0nLCdweCcsJyUn
XS5lYWNoKCBmdW5jdGlvbihmb250U2l6ZVR5cGUpIHsKICAgICAgaWYoZm9udFNpemUuaW5kZXhP
Zihmb250U2l6ZVR5cGUpPjApIHsKICAgICAgICB0aGlzLmZvbnRTaXplICAgICA9IHBhcnNlRmxv
YXQoZm9udFNpemUpOwogICAgICAgIHRoaXMuZm9udFNpemVUeXBlID0gZm9udFNpemVUeXBlOwog
ICAgICB9CiAgICB9LmJpbmQodGhpcykpOwogICAgCiAgICB0aGlzLmZhY3RvciA9ICh0aGlzLm9w
dGlvbnMuc2NhbGVUbyAtIHRoaXMub3B0aW9ucy5zY2FsZUZyb20pLzEwMDsKICAgIAogICAgdGhp
cy5kaW1zID0gbnVsbDsKICAgIGlmKHRoaXMub3B0aW9ucy5zY2FsZU1vZGU9PSdib3gnKQogICAg
ICB0aGlzLmRpbXMgPSBbdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodCwgdGhpcy5lbGVtZW50Lm9m
ZnNldFdpZHRoXTsKICAgIGlmKC9eY29udGVudC8udGVzdCh0aGlzLm9wdGlvbnMuc2NhbGVNb2Rl
KSkKICAgICAgdGhpcy5kaW1zID0gW3RoaXMuZWxlbWVudC5zY3JvbGxIZWlnaHQsIHRoaXMuZWxl
bWVudC5zY3JvbGxXaWR0aF07CiAgICBpZighdGhpcy5kaW1zKQogICAgICB0aGlzLmRpbXMgPSBb
dGhpcy5vcHRpb25zLnNjYWxlTW9kZS5vcmlnaW5hbEhlaWdodCwKICAgICAgICAgICAgICAgICAg
IHRoaXMub3B0aW9ucy5zY2FsZU1vZGUub3JpZ2luYWxXaWR0aF07CiAgfSwKICB1cGRhdGU6IGZ1
bmN0aW9uKHBvc2l0aW9uKSB7CiAgICB2YXIgY3VycmVudFNjYWxlID0gKHRoaXMub3B0aW9ucy5z
Y2FsZUZyb20vMTAwLjApICsgKHRoaXMuZmFjdG9yICogcG9zaXRpb24pOwogICAgaWYodGhpcy5v
cHRpb25zLnNjYWxlQ29udGVudCAmJiB0aGlzLmZvbnRTaXplKQogICAgICBFbGVtZW50LnNldFN0
eWxlKHRoaXMuZWxlbWVudCwge2ZvbnRTaXplOiB0aGlzLmZvbnRTaXplICogY3VycmVudFNjYWxl
ICsgdGhpcy5mb250U2l6ZVR5cGUgfSk7CiAgICB0aGlzLnNldERpbWVuc2lvbnModGhpcy5kaW1z
WzBdICogY3VycmVudFNjYWxlLCB0aGlzLmRpbXNbMV0gKiBjdXJyZW50U2NhbGUpOwogIH0sCiAg
ZmluaXNoOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgaWYgKHRoaXMucmVzdG9yZUFmdGVyRmlu
aXNoKSBFbGVtZW50LnNldFN0eWxlKHRoaXMuZWxlbWVudCwgdGhpcy5vcmlnaW5hbFN0eWxlKTsK
ICB9LAogIHNldERpbWVuc2lvbnM6IGZ1bmN0aW9uKGhlaWdodCwgd2lkdGgpIHsKICAgIHZhciBk
ID0ge307CiAgICBpZih0aGlzLm9wdGlvbnMuc2NhbGVYKSBkLndpZHRoID0gd2lkdGggKyAncHgn
OwogICAgaWYodGhpcy5vcHRpb25zLnNjYWxlWSkgZC5oZWlnaHQgPSBoZWlnaHQgKyAncHgnOwog
ICAgaWYodGhpcy5vcHRpb25zLnNjYWxlRnJvbUNlbnRlcikgewogICAgICB2YXIgdG9wZCAgPSAo
aGVpZ2h0IC0gdGhpcy5kaW1zWzBdKS8yOwogICAgICB2YXIgbGVmdGQgPSAod2lkdGggIC0gdGhp
cy5kaW1zWzFdKS8yOwogICAgICBpZih0aGlzLmVsZW1lbnRQb3NpdGlvbmluZyA9PSAnYWJzb2x1
dGUnKSB7CiAgICAgICAgaWYodGhpcy5vcHRpb25zLnNjYWxlWSkgZC50b3AgPSB0aGlzLm9yaWdp
bmFsVG9wLXRvcGQgKyAncHgnOwogICAgICAgIGlmKHRoaXMub3B0aW9ucy5zY2FsZVgpIGQubGVm
dCA9IHRoaXMub3JpZ2luYWxMZWZ0LWxlZnRkICsgJ3B4JzsKICAgICAgfSBlbHNlIHsKICAgICAg
ICBpZih0aGlzLm9wdGlvbnMuc2NhbGVZKSBkLnRvcCA9IC10b3BkICsgJ3B4JzsKICAgICAgICBp
Zih0aGlzLm9wdGlvbnMuc2NhbGVYKSBkLmxlZnQgPSAtbGVmdGQgKyAncHgnOwogICAgICB9CiAg
ICB9CiAgICBFbGVtZW50LnNldFN0eWxlKHRoaXMuZWxlbWVudCwgZCk7CiAgfQp9KTsKCkVmZmVj
dC5IaWdobGlnaHQgPSBDbGFzcy5jcmVhdGUoKTsKT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5k
KEVmZmVjdC5IaWdobGlnaHQucHJvdG90eXBlLCBFZmZlY3QuQmFzZS5wcm90b3R5cGUpLCB7CiAg
aW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdGhpcy5lbGVtZW50ID0gJChlbGVt
ZW50KTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7IHN0YXJ0Y29sb3I6ICcjZmZm
Zjk5JyB9LCBhcmd1bWVudHNbMV0gfHwge30pOwogICAgdGhpcy5zdGFydChvcHRpb25zKTsKICB9
LAogIHNldHVwOiBmdW5jdGlvbigpIHsKICAgIC8vIFByZXZlbnQgZXhlY3V0aW5nIG9uIGVsZW1l
bnRzIG5vdCBpbiB0aGUgbGF5b3V0IGZsb3cKICAgIGlmKEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5l
bGVtZW50LCAnZGlzcGxheScpPT0nbm9uZScpIHsgdGhpcy5jYW5jZWwoKTsgcmV0dXJuOyB9CiAg
ICAvLyBEaXNhYmxlIGJhY2tncm91bmQgaW1hZ2UgZHVyaW5nIHRoZSBlZmZlY3QKICAgIHRoaXMu
b2xkU3R5bGUgPSB7CiAgICAgIGJhY2tncm91bmRJbWFnZTogRWxlbWVudC5nZXRTdHlsZSh0aGlz
LmVsZW1lbnQsICdiYWNrZ3JvdW5kLWltYWdlJykgfTsKICAgIEVsZW1lbnQuc2V0U3R5bGUodGhp
cy5lbGVtZW50LCB7YmFja2dyb3VuZEltYWdlOiAnbm9uZSd9KTsKICAgIGlmKCF0aGlzLm9wdGlv
bnMuZW5kY29sb3IpCiAgICAgIHRoaXMub3B0aW9ucy5lbmRjb2xvciA9IEVsZW1lbnQuZ2V0U3R5
bGUodGhpcy5lbGVtZW50LCAnYmFja2dyb3VuZC1jb2xvcicpLnBhcnNlQ29sb3IoJyNmZmZmZmYn
KTsKICAgIGlmKCF0aGlzLm9wdGlvbnMucmVzdG9yZWNvbG9yKQogICAgICB0aGlzLm9wdGlvbnMu
cmVzdG9yZWNvbG9yID0gRWxlbWVudC5nZXRTdHlsZSh0aGlzLmVsZW1lbnQsICdiYWNrZ3JvdW5k
LWNvbG9yJyk7CiAgICAvLyBpbml0IGNvbG9yIGNhbGN1bGF0aW9ucwogICAgdGhpcy5fYmFzZSAg
PSAkUigwLDIpLm1hcChmdW5jdGlvbihpKXsgcmV0dXJuIHBhcnNlSW50KHRoaXMub3B0aW9ucy5z
dGFydGNvbG9yLnNsaWNlKGkqMisxLGkqMiszKSwxNikgfS5iaW5kKHRoaXMpKTsKICAgIHRoaXMu
X2RlbHRhID0gJFIoMCwyKS5tYXAoZnVuY3Rpb24oaSl7IHJldHVybiBwYXJzZUludCh0aGlzLm9w
dGlvbnMuZW5kY29sb3Iuc2xpY2UoaSoyKzEsaSoyKzMpLDE2KS10aGlzLl9iYXNlW2ldIH0uYmlu
ZCh0aGlzKSk7CiAgfSwKICB1cGRhdGU6IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CiAgICBFbGVtZW50
LnNldFN0eWxlKHRoaXMuZWxlbWVudCx7YmFja2dyb3VuZENvbG9yOiAkUigwLDIpLmluamVjdCgn
IycsZnVuY3Rpb24obSx2LGkpewogICAgICByZXR1cm4gbSsoTWF0aC5yb3VuZCh0aGlzLl9iYXNl
W2ldKyh0aGlzLl9kZWx0YVtpXSpwb3NpdGlvbikpLnRvQ29sb3JQYXJ0KCkpOyB9LmJpbmQodGhp
cykpIH0pOwogIH0sCiAgZmluaXNoOiBmdW5jdGlvbigpIHsKICAgIEVsZW1lbnQuc2V0U3R5bGUo
dGhpcy5lbGVtZW50LCBPYmplY3QuZXh0ZW5kKHRoaXMub2xkU3R5bGUsIHsKICAgICAgYmFja2dy
b3VuZENvbG9yOiB0aGlzLm9wdGlvbnMucmVzdG9yZWNvbG9yCiAgICB9KSk7CiAgfQp9KTsKCkVm
ZmVjdC5TY3JvbGxUbyA9IENsYXNzLmNyZWF0ZSgpOwpPYmplY3QuZXh0ZW5kKE9iamVjdC5leHRl
bmQoRWZmZWN0LlNjcm9sbFRvLnByb3RvdHlwZSwgRWZmZWN0LkJhc2UucHJvdG90eXBlKSwgewog
IGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxl
bWVudCk7CiAgICB0aGlzLnN0YXJ0KGFyZ3VtZW50c1sxXSB8fCB7fSk7CiAgfSwKICBzZXR1cDog
ZnVuY3Rpb24oKSB7CiAgICBQb3NpdGlvbi5wcmVwYXJlKCk7CiAgICB2YXIgb2Zmc2V0cyA9IFBv
c2l0aW9uLmN1bXVsYXRpdmVPZmZzZXQodGhpcy5lbGVtZW50KTsKICAgIGlmKHRoaXMub3B0aW9u
cy5vZmZzZXQpIG9mZnNldHNbMV0gKz0gdGhpcy5vcHRpb25zLm9mZnNldDsKICAgIHZhciBtYXgg
PSB3aW5kb3cuaW5uZXJIZWlnaHQgPyAKICAgICAgd2luZG93LmhlaWdodCAtIHdpbmRvdy5pbm5l
ckhlaWdodCA6CiAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0IC0gCiAgICAgICAgKGRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgPyAKICAgICAgICAgIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgOiBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdo
dCk7CiAgICB0aGlzLnNjcm9sbFN0YXJ0ID0gUG9zaXRpb24uZGVsdGFZOwogICAgdGhpcy5kZWx0
YSA9IChvZmZzZXRzWzFdID4gbWF4ID8gbWF4IDogb2Zmc2V0c1sxXSkgLSB0aGlzLnNjcm9sbFN0
YXJ0OwogIH0sCiAgdXBkYXRlOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgUG9zaXRpb24ucHJl
cGFyZSgpOwogICAgd2luZG93LnNjcm9sbFRvKFBvc2l0aW9uLmRlbHRhWCwgCiAgICAgIHRoaXMu
c2Nyb2xsU3RhcnQgKyAocG9zaXRpb24qdGhpcy5kZWx0YSkpOwogIH0KfSk7CgovKiAtLS0tLS0t
LS0tLS0tIGNvbWJpbmF0aW9uIGVmZmVjdHMgLS0tLS0tLS0tLS0tLSAqLwoKRWZmZWN0LkZhZGUg
PSBmdW5jdGlvbihlbGVtZW50KSB7CiAgdmFyIG9sZE9wYWNpdHkgPSBFbGVtZW50LmdldElubGlu
ZU9wYWNpdHkoZWxlbWVudCk7CiAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICBmcm9t
OiBFbGVtZW50LmdldE9wYWNpdHkoZWxlbWVudCkgfHwgMS4wLAogIHRvOiAgIDAuMCwKICBhZnRl
ckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7IAogICAg
aWYoZWZmZWN0Lm9wdGlvbnMudG8hPTApIHJldHVybjsKICAgIGhpZGUoZWZmZWN0LmVsZW1lbnQp
OwogICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQsIHtvcGFjaXR5OiBvbGRPcGFjaXR5fSk7IH19
CiAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKICByZXR1cm4gbmV3IEVmZmVjdC5PcGFjaXR5KGVs
ZW1lbnQsb3B0aW9ucyk7Cn0KCkVmZmVjdC5BcHBlYXIgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAg
dmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICBmcm9tOiAoRWxlbWVudC5nZXRTdHlsZShl
bGVtZW50LCAnZGlzcGxheScpID09ICdub25lJyA/IDAuMCA6IEVsZW1lbnQuZ2V0T3BhY2l0eShl
bGVtZW50KSB8fCAwLjApLAogIHRvOiAgIDEuMCwKICBiZWZvcmVTZXR1cDogZnVuY3Rpb24oZWZm
ZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgc2V0T3BhY2l0eShlZmZlY3QuZWxlbWVudCwgZWZm
ZWN0Lm9wdGlvbnMuZnJvbSk7CiAgICBzaG93KGVmZmVjdC5lbGVtZW50KTsgfX0KICB9LCBhcmd1
bWVudHNbMV0gfHwge30pOwogIHJldHVybiBuZXcgRWZmZWN0Lk9wYWNpdHkoZWxlbWVudCxvcHRp
b25zKTsKfQoKRWZmZWN0LlB1ZmYgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQo
ZWxlbWVudCk7CiAgdmFyIG9sZFN0eWxlID0geyBvcGFjaXR5OiBFbGVtZW50LmdldElubGluZU9w
YWNpdHkoZWxlbWVudCksIHBvc2l0aW9uOiBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdwb3Np
dGlvbicpIH07CiAgcmV0dXJuIG5ldyBFZmZlY3QuUGFyYWxsZWwoCiAgIFsgbmV3IEVmZmVjdC5T
Y2FsZShlbGVtZW50LCAyMDAsIAogICAgICB7IHN5bmM6IHRydWUsIHNjYWxlRnJvbUNlbnRlcjog
dHJ1ZSwgc2NhbGVDb250ZW50OiB0cnVlLCByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWUgfSksIAog
ICAgIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCB7IHN5bmM6IHRydWUsIHRvOiAwLjAgfSAp
IF0sIAogICAgIE9iamVjdC5leHRlbmQoeyBkdXJhdGlvbjogMS4wLCAKICAgICAgYmVmb3JlU2V0
dXBJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgIHNl
dFN0eWxlKGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQsIHtwb3NpdGlvbjogJ2Fic29sdXRlJ30p
OyB9fSwKICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgo
RWxlbWVudCkgewogICAgICAgICBoaWRlKGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQpOwogICAg
ICAgICBzZXRTdHlsZShlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LCBvbGRTdHlsZSk7IH19CiAg
ICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KQogICApOwp9CgpFZmZlY3QuQmxpbmRVcCA9IGZ1bmN0
aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICBFbGVtZW50Lm1ha2VDbGlw
cGluZyhlbGVtZW50KTsKICByZXR1cm4gbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCAwLCAKICAg
IE9iamVjdC5leHRlbmQoeyBzY2FsZUNvbnRlbnQ6IGZhbHNlLCAKICAgICAgc2NhbGVYOiBmYWxz
ZSwgCiAgICAgIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgICAgYWZ0ZXJGaW5pc2hJbnRl
cm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgIFtoaWRlLCB1
bmRvQ2xpcHBpbmddLmNhbGwoZWZmZWN0LmVsZW1lbnQpOyB9fSAKICAgIH0sIGFyZ3VtZW50c1sx
XSB8fCB7fSkKICApOwp9CgpFZmZlY3QuQmxpbmREb3duID0gZnVuY3Rpb24oZWxlbWVudCkgewog
IGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvbGRIZWlnaHQgPSBFbGVtZW50LmdldFN0eWxl
KGVsZW1lbnQsICdoZWlnaHQnKTsKICB2YXIgZWxlbWVudERpbWVuc2lvbnMgPSBFbGVtZW50Lmdl
dERpbWVuc2lvbnMoZWxlbWVudCk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVudCwg
MTAwLCAKICAgIE9iamVjdC5leHRlbmQoeyBzY2FsZUNvbnRlbnQ6IGZhbHNlLCAKICAgICAgc2Nh
bGVYOiBmYWxzZSwKICAgICAgc2NhbGVGcm9tOiAwLAogICAgICBzY2FsZU1vZGU6IHtvcmlnaW5h
bEhlaWdodDogZWxlbWVudERpbWVuc2lvbnMuaGVpZ2h0LCBvcmlnaW5hbFdpZHRoOiBlbGVtZW50
RGltZW5zaW9ucy53aWR0aH0sCiAgICAgIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgICAg
YWZ0ZXJTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgIG1h
a2VDbGlwcGluZyhlZmZlY3QuZWxlbWVudCk7CiAgICAgICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1l
bnQsIHtoZWlnaHQ6ICcwcHgnfSk7CiAgICAgICAgc2hvdyhlZmZlY3QuZWxlbWVudCk7IAogICAg
ICB9fSwgIAogICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0
aChFbGVtZW50KSB7CiAgICAgICAgdW5kb0NsaXBwaW5nKGVmZmVjdC5lbGVtZW50KTsKICAgICAg
ICBzZXRTdHlsZShlZmZlY3QuZWxlbWVudCwge2hlaWdodDogb2xkSGVpZ2h0fSk7CiAgICAgIH19
CiAgICB9LCBhcmd1bWVudHNbMV0gfHwge30pCiAgKTsKfQoKRWZmZWN0LlN3aXRjaE9mZiA9IGZ1
bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb2xkT3BhY2l0
eSA9IEVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eShlbGVtZW50KTsKICByZXR1cm4gbmV3IEVmZmVj
dC5BcHBlYXIoZWxlbWVudCwgeyAKICAgIGR1cmF0aW9uOiAwLjQsCiAgICBmcm9tOiAwLAogICAg
dHJhbnNpdGlvbjogRWZmZWN0LlRyYW5zaXRpb25zLmZsaWNrZXIsCiAgICBhZnRlckZpbmlzaElu
dGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgbmV3IEVmZmVjdC5TY2FsZShlZmZlY3Qu
ZWxlbWVudCwgMSwgeyAKICAgICAgICBkdXJhdGlvbjogMC4zLCBzY2FsZUZyb21DZW50ZXI6IHRy
dWUsCiAgICAgICAgc2NhbGVYOiBmYWxzZSwgc2NhbGVDb250ZW50OiBmYWxzZSwgcmVzdG9yZUFm
dGVyRmluaXNoOiB0cnVlLAogICAgICAgIGJlZm9yZVNldHVwOiBmdW5jdGlvbihlZmZlY3QpIHsg
d2l0aChFbGVtZW50KSB7CiAgICAgICAgICBbbWFrZVBvc2l0aW9uZWQsbWFrZUNsaXBwaW5nXS5j
YWxsKGVmZmVjdC5lbGVtZW50KTsKICAgICAgICB9fSwKICAgICAgICBhZnRlckZpbmlzaEludGVy
bmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgICAgICBbaGlkZSx1
bmRvQ2xpcHBpbmcsdW5kb1Bvc2l0aW9uZWRdLmNhbGwoZWZmZWN0LmVsZW1lbnQpOwogICAgICAg
ICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQsIHtvcGFjaXR5OiBvbGRPcGFjaXR5fSk7CiAgICAg
ICAgfX0KICAgICAgfSkKICAgIH0KICB9KTsKfQoKRWZmZWN0LkRyb3BPdXQgPSBmdW5jdGlvbihl
bGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgdmFyIG9sZFN0eWxlID0gewogICAg
dG9wOiBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICd0b3AnKSwKICAgIGxlZnQ6IEVsZW1lbnQu
Z2V0U3R5bGUoZWxlbWVudCwgJ2xlZnQnKSwKICAgIG9wYWNpdHk6IEVsZW1lbnQuZ2V0SW5saW5l
T3BhY2l0eShlbGVtZW50KSB9OwogIHJldHVybiBuZXcgRWZmZWN0LlBhcmFsbGVsKAogICAgWyBu
ZXcgRWZmZWN0Lk1vdmUoZWxlbWVudCwge3g6IDAsIHk6IDEwMCwgc3luYzogdHJ1ZSB9KSwgCiAg
ICAgIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCB7IHN5bmM6IHRydWUsIHRvOiAwLjAgfSkg
XSwKICAgIE9iamVjdC5leHRlbmQoCiAgICAgIHsgZHVyYXRpb246IDAuNSwKICAgICAgICBiZWZv
cmVTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgICAgbWFr
ZVBvc2l0aW9uZWQoZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudCk7IH19LAogICAgICAgIGFmdGVy
RmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAg
ICAgIFtoaWRlLCB1bmRvUG9zaXRpb25lZF0uY2FsbChlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50
KTsKICAgICAgICAgIHNldFN0eWxlKGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQsIG9sZFN0eWxl
KTsgfX0gCiAgICAgIH0sIGFyZ3VtZW50c1sxXSB8fCB7fSkpOwp9CgpFZmZlY3QuU2hha2UgPSBm
dW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgdmFyIG9sZFN0eWxl
ID0gewogICAgdG9wOiBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICd0b3AnKSwKICAgIGxlZnQ6
IEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ2xlZnQnKSB9OwoJICByZXR1cm4gbmV3IEVmZmVj
dC5Nb3ZlKGVsZW1lbnQsIAoJICAgIHsgeDogIDIwLCB5OiAwLCBkdXJhdGlvbjogMC4wNSwgYWZ0
ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CgkgIG5ldyBFZmZlY3QuTW92ZShl
ZmZlY3QuZWxlbWVudCwKCSAgICB7IHg6IC00MCwgeTogMCwgZHVyYXRpb246IDAuMSwgIGFmdGVy
RmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewoJICBuZXcgRWZmZWN0Lk1vdmUoZWZm
ZWN0LmVsZW1lbnQsCgkgICAgeyB4OiAgNDAsIHk6IDAsIGR1cmF0aW9uOiAwLjEsICBhZnRlckZp
bmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKCSAgbmV3IEVmZmVjdC5Nb3ZlKGVmZmVj
dC5lbGVtZW50LAoJICAgIHsgeDogLTQwLCB5OiAwLCBkdXJhdGlvbjogMC4xLCAgYWZ0ZXJGaW5p
c2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CgkgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3Qu
ZWxlbWVudCwKCSAgICB7IHg6ICA0MCwgeTogMCwgZHVyYXRpb246IDAuMSwgIGFmdGVyRmluaXNo
SW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewoJICBuZXcgRWZmZWN0Lk1vdmUoZWZmZWN0LmVs
ZW1lbnQsCgkgICAgeyB4OiAtMjAsIHk6IDAsIGR1cmF0aW9uOiAwLjA1LCBhZnRlckZpbmlzaElu
dGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgICAgdW5kb1Bv
c2l0aW9uZWQoZWZmZWN0LmVsZW1lbnQpOwogICAgICAgIHNldFN0eWxlKGVmZmVjdC5lbGVtZW50
LCBvbGRTdHlsZSk7CiAgfX19KSB9fSkgfX0pIH19KSB9fSkgfX0pOwp9CgpFZmZlY3QuU2xpZGVE
b3duID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIEVsZW1l
bnQuY2xlYW5XaGl0ZXNwYWNlKGVsZW1lbnQpOwogIC8vIFNsaWRlRG93biBuZWVkIHRvIGhhdmUg
dGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgd3JhcHBlZCBpbiBhIGNvbnRhaW5lciBlbGVtZW50
IHdpdGggZml4ZWQgaGVpZ2h0IQogIHZhciBvbGRJbm5lckJvdHRvbSA9IEVsZW1lbnQuZ2V0U3R5
bGUoZWxlbWVudC5maXJzdENoaWxkLCAnYm90dG9tJyk7CiAgdmFyIGVsZW1lbnREaW1lbnNpb25z
ID0gRWxlbWVudC5nZXREaW1lbnNpb25zKGVsZW1lbnQpOwogIHJldHVybiBuZXcgRWZmZWN0LlNj
YWxlKGVsZW1lbnQsIDEwMCwgT2JqZWN0LmV4dGVuZCh7IAogICAgc2NhbGVDb250ZW50OiBmYWxz
ZSwgCiAgICBzY2FsZVg6IGZhbHNlLCAKICAgIHNjYWxlRnJvbTogMCwKICAgIHNjYWxlTW9kZTog
e29yaWdpbmFsSGVpZ2h0OiBlbGVtZW50RGltZW5zaW9ucy5oZWlnaHQsIG9yaWdpbmFsV2lkdGg6
IGVsZW1lbnREaW1lbnNpb25zLndpZHRofSwKICAgIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSwK
ICAgIGFmdGVyU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAg
bWFrZVBvc2l0aW9uZWQoZWZmZWN0LmVsZW1lbnQpOwogICAgICBtYWtlUG9zaXRpb25lZChlZmZl
Y3QuZWxlbWVudC5maXJzdENoaWxkKTsKICAgICAgaWYod2luZG93Lm9wZXJhKSBzZXRTdHlsZShl
ZmZlY3QuZWxlbWVudCwge3RvcDogJyd9KTsKICAgICAgbWFrZUNsaXBwaW5nKGVmZmVjdC5lbGVt
ZW50KTsKICAgICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQsIHtoZWlnaHQ6ICcwcHgnfSk7CiAg
ICAgIHNob3coZWxlbWVudCk7IH19LAogICAgYWZ0ZXJVcGRhdGVJbnRlcm5hbDogZnVuY3Rpb24o
ZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICBzZXRTdHlsZShlZmZlY3QuZWxlbWVudC5m
aXJzdENoaWxkLCB7Ym90dG9tOgogICAgICAgIChlZmZlY3QuZGltc1swXSAtIGVmZmVjdC5lbGVt
ZW50LmNsaWVudEhlaWdodCkgKyAncHgnIH0pOyB9fSwKICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6
IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgdW5kb0NsaXBwaW5nKGVm
ZmVjdC5lbGVtZW50KTsgCiAgICAgIHVuZG9Qb3NpdGlvbmVkKGVmZmVjdC5lbGVtZW50LmZpcnN0
Q2hpbGQpOwogICAgICB1bmRvUG9zaXRpb25lZChlZmZlY3QuZWxlbWVudCk7CiAgICAgIHNldFN0
eWxlKGVmZmVjdC5lbGVtZW50LmZpcnN0Q2hpbGQsIHtib3R0b206IG9sZElubmVyQm90dG9tfSk7
IH19CiAgICB9LCBhcmd1bWVudHNbMV0gfHwge30pCiAgKTsKfQogIApFZmZlY3QuU2xpZGVVcCA9
IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICBFbGVtZW50LmNs
ZWFuV2hpdGVzcGFjZShlbGVtZW50KTsKICB2YXIgb2xkSW5uZXJCb3R0b20gPSBFbGVtZW50Lmdl
dFN0eWxlKGVsZW1lbnQuZmlyc3RDaGlsZCwgJ2JvdHRvbScpOwogIHJldHVybiBuZXcgRWZmZWN0
LlNjYWxlKGVsZW1lbnQsIDAsIAogICBPYmplY3QuZXh0ZW5kKHsgc2NhbGVDb250ZW50OiBmYWxz
ZSwgCiAgICBzY2FsZVg6IGZhbHNlLCAKICAgIHNjYWxlTW9kZTogJ2JveCcsCiAgICBzY2FsZUZy
b206IDEwMCwKICAgIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgIGJlZm9yZVN0YXJ0SW50
ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgbWFrZVBvc2l0
aW9uZWQoZWZmZWN0LmVsZW1lbnQpOwogICAgICBtYWtlUG9zaXRpb25lZChlZmZlY3QuZWxlbWVu
dC5maXJzdENoaWxkKTsKICAgICAgaWYod2luZG93Lm9wZXJhKSBzZXRTdHlsZShlZmZlY3QuZWxl
bWVudCwge3RvcDogJyd9KTsKICAgICAgbWFrZUNsaXBwaW5nKGVmZmVjdC5lbGVtZW50KTsKICAg
ICAgc2hvdyhlbGVtZW50KTsgfX0sICAKICAgIGFmdGVyVXBkYXRlSW50ZXJuYWw6IGZ1bmN0aW9u
KGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQu
Zmlyc3RDaGlsZCwge2JvdHRvbToKICAgICAgICAoZWZmZWN0LmRpbXNbMF0gLSBlZmZlY3QuZWxl
bWVudC5jbGllbnRIZWlnaHQpICsgJ3B4JyB9KTsgfX0sCiAgICBhZnRlckZpbmlzaEludGVybmFs
OiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgICAgW2hpZGUsIHVuZG9D
bGlwcGluZ10uY2FsbChlZmZlY3QuZWxlbWVudCk7IAogICAgICAgIHVuZG9Qb3NpdGlvbmVkKGVm
ZmVjdC5lbGVtZW50LmZpcnN0Q2hpbGQpOwogICAgICAgIHVuZG9Qb3NpdGlvbmVkKGVmZmVjdC5l
bGVtZW50KTsKICAgICAgICBzZXRTdHlsZShlZmZlY3QuZWxlbWVudC5maXJzdENoaWxkLCB7Ym90
dG9tOiBvbGRJbm5lckJvdHRvbX0pOyB9fQogICB9LCBhcmd1bWVudHNbMV0gfHwge30pCiAgKTsK
fQoKLy8gQnVnIGluIG9wZXJhIG1ha2VzIHRoZSBURCBjb250YWluaW5nIHRoaXMgZWxlbWVudCBl
eHBhbmQgZm9yIGEgaW5zdGFuY2UgYWZ0ZXIgZmluaXNoIApFZmZlY3QuU3F1aXNoID0gZnVuY3Rp
b24oZWxlbWVudCkgewogIHJldHVybiBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIHdpbmRvdy5v
cGVyYSA/IDEgOiAwLCAKICAgIHsgcmVzdG9yZUFmdGVyRmluaXNoOiB0cnVlLAogICAgICBiZWZv
cmVTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgIG1ha2VD
bGlwcGluZyhlZmZlY3QuZWxlbWVudCk7IH19LCAgCiAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6
IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICBoaWRlKGVmZmVjdC5l
bGVtZW50KTsgCiAgICAgICAgdW5kb0NsaXBwaW5nKGVmZmVjdC5lbGVtZW50KTsgfX0KICB9KTsK
fQoKRWZmZWN0Lkdyb3cgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVu
dCk7CiAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgIGRpcmVjdGlvbjogJ2NlbnRl
cicsCiAgICBtb3ZlVHJhbnNpc3Rpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbCwKICAg
IHNjYWxlVHJhbnNpdGlvbjogRWZmZWN0LlRyYW5zaXRpb25zLnNpbm9pZGFsLAogICAgb3BhY2l0
eVRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5mdWxsCiAgfSwgYXJndW1lbnRzWzFdIHx8
IHt9KTsKICB2YXIgb2xkU3R5bGUgPSB7CiAgICB0b3A6IGVsZW1lbnQuc3R5bGUudG9wLAogICAg
bGVmdDogZWxlbWVudC5zdHlsZS5sZWZ0LAogICAgaGVpZ2h0OiBlbGVtZW50LnN0eWxlLmhlaWdo
dCwKICAgIHdpZHRoOiBlbGVtZW50LnN0eWxlLndpZHRoLAogICAgb3BhY2l0eTogRWxlbWVudC5n
ZXRJbmxpbmVPcGFjaXR5KGVsZW1lbnQpIH07CgogIHZhciBkaW1zID0gRWxlbWVudC5nZXREaW1l
bnNpb25zKGVsZW1lbnQpOyAgICAKICB2YXIgaW5pdGlhbE1vdmVYLCBpbml0aWFsTW92ZVk7CiAg
dmFyIG1vdmVYLCBtb3ZlWTsKICAKICBzd2l0Y2ggKG9wdGlvbnMuZGlyZWN0aW9uKSB7CiAgICBj
YXNlICd0b3AtbGVmdCc6CiAgICAgIGluaXRpYWxNb3ZlWCA9IGluaXRpYWxNb3ZlWSA9IG1vdmVY
ID0gbW92ZVkgPSAwOyAKICAgICAgYnJlYWs7CiAgICBjYXNlICd0b3AtcmlnaHQnOgogICAgICBp
bml0aWFsTW92ZVggPSBkaW1zLndpZHRoOwogICAgICBpbml0aWFsTW92ZVkgPSBtb3ZlWSA9IDA7
CiAgICAgIG1vdmVYID0gLWRpbXMud2lkdGg7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnYm90dG9t
LWxlZnQnOgogICAgICBpbml0aWFsTW92ZVggPSBtb3ZlWCA9IDA7CiAgICAgIGluaXRpYWxNb3Zl
WSA9IGRpbXMuaGVpZ2h0OwogICAgICBtb3ZlWSA9IC1kaW1zLmhlaWdodDsKICAgICAgYnJlYWs7
CiAgICBjYXNlICdib3R0b20tcmlnaHQnOgogICAgICBpbml0aWFsTW92ZVggPSBkaW1zLndpZHRo
OwogICAgICBpbml0aWFsTW92ZVkgPSBkaW1zLmhlaWdodDsKICAgICAgbW92ZVggPSAtZGltcy53
aWR0aDsKICAgICAgbW92ZVkgPSAtZGltcy5oZWlnaHQ7CiAgICAgIGJyZWFrOwogICAgY2FzZSAn
Y2VudGVyJzoKICAgICAgaW5pdGlhbE1vdmVYID0gZGltcy53aWR0aCAvIDI7CiAgICAgIGluaXRp
YWxNb3ZlWSA9IGRpbXMuaGVpZ2h0IC8gMjsKICAgICAgbW92ZVggPSAtZGltcy53aWR0aCAvIDI7
CiAgICAgIG1vdmVZID0gLWRpbXMuaGVpZ2h0IC8gMjsKICAgICAgYnJlYWs7CiAgfQogIAogIHJl
dHVybiBuZXcgRWZmZWN0Lk1vdmUoZWxlbWVudCwgewogICAgeDogaW5pdGlhbE1vdmVYLAogICAg
eTogaW5pdGlhbE1vdmVZLAogICAgZHVyYXRpb246IDAuMDEsIAogICAgYmVmb3JlU2V0dXA6IGZ1
bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgaGlkZShlZmZlY3QuZWxlbWVu
dCk7CiAgICAgIG1ha2VDbGlwcGluZyhlZmZlY3QuZWxlbWVudCk7CiAgICAgIG1ha2VQb3NpdGlv
bmVkKGVmZmVjdC5lbGVtZW50KTsKICAgIH19LAogICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVu
Y3Rpb24oZWZmZWN0KSB7CiAgICAgIG5ldyBFZmZlY3QuUGFyYWxsZWwoCiAgICAgICAgWyBuZXcg
RWZmZWN0Lk9wYWNpdHkoZWZmZWN0LmVsZW1lbnQsIHsgc3luYzogdHJ1ZSwgdG86IDEuMCwgZnJv
bTogMC4wLCB0cmFuc2l0aW9uOiBvcHRpb25zLm9wYWNpdHlUcmFuc2l0aW9uIH0pLAogICAgICAg
ICAgbmV3IEVmZmVjdC5Nb3ZlKGVmZmVjdC5lbGVtZW50LCB7IHg6IG1vdmVYLCB5OiBtb3ZlWSwg
c3luYzogdHJ1ZSwgdHJhbnNpdGlvbjogb3B0aW9ucy5tb3ZlVHJhbnNpdGlvbiB9KSwKICAgICAg
ICAgIG5ldyBFZmZlY3QuU2NhbGUoZWZmZWN0LmVsZW1lbnQsIDEwMCwgewogICAgICAgICAgICBz
Y2FsZU1vZGU6IHsgb3JpZ2luYWxIZWlnaHQ6IGRpbXMuaGVpZ2h0LCBvcmlnaW5hbFdpZHRoOiBk
aW1zLndpZHRoIH0sIAogICAgICAgICAgICBzeW5jOiB0cnVlLCBzY2FsZUZyb206IHdpbmRvdy5v
cGVyYSA/IDEgOiAwLCB0cmFuc2l0aW9uOiBvcHRpb25zLnNjYWxlVHJhbnNpdGlvbiwgcmVzdG9y
ZUFmdGVyRmluaXNoOiB0cnVlfSkKICAgICAgICBdLCBPYmplY3QuZXh0ZW5kKHsKICAgICAgICAg
ICAgIGJlZm9yZVNldHVwOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAg
ICAgICAgICAgIHNldFN0eWxlKGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQsIHtoZWlnaHQ6ICcw
cHgnfSk7CiAgICAgICAgICAgICAgIHNob3coZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudCk7IH19
LAogICAgICAgICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdp
dGgoRWxlbWVudCkgewogICAgICAgICAgICAgICBbdW5kb0NsaXBwaW5nLCB1bmRvUG9zaXRpb25l
ZF0uY2FsbChlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50KTsgCiAgICAgICAgICAgICAgIHNldFN0
eWxlKGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQsIG9sZFN0eWxlKTsgfX0KICAgICAgICAgICB9
LCBvcHRpb25zKQogICAgICApCiAgICB9CiAgfSk7Cn0KCkVmZmVjdC5TaHJpbmsgPSBmdW5jdGlv
bihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgdmFyIG9wdGlvbnMgPSBPYmpl
Y3QuZXh0ZW5kKHsKICAgIGRpcmVjdGlvbjogJ2NlbnRlcicsCiAgICBtb3ZlVHJhbnNpc3Rpb246
IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbCwKICAgIHNjYWxlVHJhbnNpdGlvbjogRWZmZWN0
LlRyYW5zaXRpb25zLnNpbm9pZGFsLAogICAgb3BhY2l0eVRyYW5zaXRpb246IEVmZmVjdC5UcmFu
c2l0aW9ucy5ub25lCiAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKICB2YXIgb2xkU3R5bGUgPSB7
CiAgICB0b3A6IGVsZW1lbnQuc3R5bGUudG9wLAogICAgbGVmdDogZWxlbWVudC5zdHlsZS5sZWZ0
LAogICAgaGVpZ2h0OiBlbGVtZW50LnN0eWxlLmhlaWdodCwKICAgIHdpZHRoOiBlbGVtZW50LnN0
eWxlLndpZHRoLAogICAgb3BhY2l0eTogRWxlbWVudC5nZXRJbmxpbmVPcGFjaXR5KGVsZW1lbnQp
IH07CgogIHZhciBkaW1zID0gRWxlbWVudC5nZXREaW1lbnNpb25zKGVsZW1lbnQpOwogIHZhciBt
b3ZlWCwgbW92ZVk7CiAgCiAgc3dpdGNoIChvcHRpb25zLmRpcmVjdGlvbikgewogICAgY2FzZSAn
dG9wLWxlZnQnOgogICAgICBtb3ZlWCA9IG1vdmVZID0gMDsKICAgICAgYnJlYWs7CiAgICBjYXNl
ICd0b3AtcmlnaHQnOgogICAgICBtb3ZlWCA9IGRpbXMud2lkdGg7CiAgICAgIG1vdmVZID0gMDsK
ICAgICAgYnJlYWs7CiAgICBjYXNlICdib3R0b20tbGVmdCc6CiAgICAgIG1vdmVYID0gMDsKICAg
ICAgbW92ZVkgPSBkaW1zLmhlaWdodDsKICAgICAgYnJlYWs7CiAgICBjYXNlICdib3R0b20tcmln
aHQnOgogICAgICBtb3ZlWCA9IGRpbXMud2lkdGg7CiAgICAgIG1vdmVZID0gZGltcy5oZWlnaHQ7
CiAgICAgIGJyZWFrOwogICAgY2FzZSAnY2VudGVyJzogIAogICAgICBtb3ZlWCA9IGRpbXMud2lk
dGggLyAyOwogICAgICBtb3ZlWSA9IGRpbXMuaGVpZ2h0IC8gMjsKICAgICAgYnJlYWs7CiAgfQog
IAogIHJldHVybiBuZXcgRWZmZWN0LlBhcmFsbGVsKAogICAgWyBuZXcgRWZmZWN0Lk9wYWNpdHko
ZWxlbWVudCwgeyBzeW5jOiB0cnVlLCB0bzogMC4wLCBmcm9tOiAxLjAsIHRyYW5zaXRpb246IG9w
dGlvbnMub3BhY2l0eVRyYW5zaXRpb24gfSksCiAgICAgIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVu
dCwgd2luZG93Lm9wZXJhID8gMSA6IDAsIHsgc3luYzogdHJ1ZSwgdHJhbnNpdGlvbjogb3B0aW9u
cy5zY2FsZVRyYW5zaXRpb24sIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZX0pLAogICAgICBuZXcg
RWZmZWN0Lk1vdmUoZWxlbWVudCwgeyB4OiBtb3ZlWCwgeTogbW92ZVksIHN5bmM6IHRydWUsIHRy
YW5zaXRpb246IG9wdGlvbnMubW92ZVRyYW5zaXRpb24gfSkKICAgIF0sIE9iamVjdC5leHRlbmQo
eyAgICAgICAgICAgIAogICAgICAgICBiZWZvcmVTdGFydEludGVybmFsOiBmdW5jdGlvbihlZmZl
Y3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgICAgICAgW21ha2VQb3NpdGlvbmVkLCBtYWtlQ2xp
cHBpbmddLmNhbGwoZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudCkgfX0sCiAgICAgICAgIGFmdGVy
RmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAg
ICAgICBbaGlkZSwgdW5kb0NsaXBwaW5nLCB1bmRvUG9zaXRpb25lZF0uY2FsbChlZmZlY3QuZWZm
ZWN0c1swXS5lbGVtZW50KTsKICAgICAgICAgICBzZXRTdHlsZShlZmZlY3QuZWZmZWN0c1swXS5l
bGVtZW50LCBvbGRTdHlsZSk7IH19CiAgICAgICB9LCBvcHRpb25zKQogICk7Cn0KCkVmZmVjdC5Q
dWxzYXRlID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZh
ciBvcHRpb25zICAgID0gYXJndW1lbnRzWzFdIHx8IHt9OwogIHZhciBvbGRPcGFjaXR5ID0gRWxl
bWVudC5nZXRJbmxpbmVPcGFjaXR5KGVsZW1lbnQpOwogIHZhciB0cmFuc2l0aW9uID0gb3B0aW9u
cy50cmFuc2l0aW9uIHx8IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbDsKICB2YXIgcmV2ZXJz
ZXIgICA9IGZ1bmN0aW9uKHBvcyl7IHJldHVybiB0cmFuc2l0aW9uKDEtRWZmZWN0LlRyYW5zaXRp
b25zLnB1bHNlKHBvcykpIH07CiAgcmV2ZXJzZXIuYmluZCh0cmFuc2l0aW9uKTsKICByZXR1cm4g
bmV3IEVmZmVjdC5PcGFjaXR5KGVsZW1lbnQsIAogICAgT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0
ZW5kKHsgIGR1cmF0aW9uOiAzLjAsIGZyb206IDAsCiAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6
IGZ1bmN0aW9uKGVmZmVjdCkgeyBFbGVtZW50LnNldFN0eWxlKGVmZmVjdC5lbGVtZW50LCB7b3Bh
Y2l0eTogb2xkT3BhY2l0eX0pOyB9CiAgICB9LCBvcHRpb25zKSwge3RyYW5zaXRpb246IHJldmVy
c2VyfSkpOwp9CgpFZmZlY3QuRm9sZCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0g
JChlbGVtZW50KTsKICB2YXIgb2xkU3R5bGUgPSB7CiAgICB0b3A6IGVsZW1lbnQuc3R5bGUudG9w
LAogICAgbGVmdDogZWxlbWVudC5zdHlsZS5sZWZ0LAogICAgd2lkdGg6IGVsZW1lbnQuc3R5bGUu
d2lkdGgsCiAgICBoZWlnaHQ6IGVsZW1lbnQuc3R5bGUuaGVpZ2h0IH07CiAgRWxlbWVudC5tYWtl
Q2xpcHBpbmcoZWxlbWVudCk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVudCwgNSwg
T2JqZWN0LmV4dGVuZCh7ICAgCiAgICBzY2FsZUNvbnRlbnQ6IGZhbHNlLAogICAgc2NhbGVYOiBm
YWxzZSwKICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgbmV3
IEVmZmVjdC5TY2FsZShlbGVtZW50LCAxLCB7IAogICAgICBzY2FsZUNvbnRlbnQ6IGZhbHNlLCAK
ICAgICAgc2NhbGVZOiBmYWxzZSwKICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24o
ZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgIFtoaWRlLCB1bmRvQ2xpcHBpbmddLmNh
bGwoZWZmZWN0LmVsZW1lbnQpOyAKICAgICAgICBzZXRTdHlsZShlZmZlY3QuZWxlbWVudCwgb2xk
U3R5bGUpOwogICAgICB9fSB9KTsKICB9fSwgYXJndW1lbnRzWzFdIHx8IHt9KSk7Cn0K1AAFABEA
BwAIAJkAmgAUAJtfED9odHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2NvbW1vbi9hdXRv
Y29tcGxldGUvZHJhZ2Ryb3AuanNPEQRRYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkk
YXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5
ZWRBcmNoaXZlcq8QIAsMJiwtMx40NU9QUVJTVFVWV1hZWltcXV5fYGFiY2doVSRudWxs3Q0ODxAR
EhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQy
UiQ5UiQwUiQxgB+AAoAeEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0
aXZlgASAAIADXxA/aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9jb21tb24vYXV0b2Nv
bXBsZXRlL2RyYWdkcm9wLmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09i
amVjdCNBrZH7BywPyxDI0w02Nzg5RFdOUy5rZXlzWk5TLm9iamVjdHOAHao6Ozw9Pj9AQUJDgAmA
CoALgAyADYAOgA+AEIARgBKqRUZHSElKS0xNToATgBSAFYAWgBeAGIAZgBqAG4AcVFZhcnldQWNj
ZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRlbnQtVHlwZVREYXRlXkNv
bnRlbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkXxAPQWNjZXB0LUVuY29k
aW5nVWJ5dGVzVGd6aXBfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xXxAYYXBwbGljYXRpb24veC1q
YXZhc2NyaXB0XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVRUNDc5Ml8QDyI0OTU4LTQ3
MDUwYWJlIlprZWVwLWFsaXZlXxAdVGh1LCAwNCBPY3QgMjAwNyAxNTo0NjowNiBHTVTSLi9kZaNl
ZjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeRFJWNIuL2lqo2prMl8QEU5TSFRU
UFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIcAjQCoAK8A
sgC1ALkAvQDAAMMAxgDJAMwAzwDSANUA1wDZANsA3QDfAOEA4wDlAOcA6QDrAO0A9AD8AQgBCgEM
AQ4BUAFVAV4BaQFsAXIBewGEAYYBjQGVAaABogGtAa8BsQGzAbUBtwG5AbsBvQG/AcEBzAHOAdAB
0gHUAdYB2AHaAdwB3gHgAeUB8wIGAg0CGgIfAi4CMwI+AkwCXgJkAmkCggKdAr0CwgLUAt8C/wME
AwgDHgMrAy4DMwM3A0sAAAAAAAACAQAAAAAAAABsAAAAAAAAAAAAAAAAAAADWU8RSVgvLyBDb3B5
cmlnaHQgKGMpIDIwMDUgVGhvbWFzIEZ1Y2hzIChodHRwOi8vc2NyaXB0LmFjdWxvLnVzLCBodHRw
Oi8vbWlyLmFjdWxvLnVzKQovLyAKLy8gU2VlIHNjcmlwdGFjdWxvdXMuanMgZm9yIGZ1bGwgbGlj
ZW5zZS4KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFyIERyb3BwYWJsZXMgPSB7CiAgZHJvcHM6
IFtdLAoKICByZW1vdmU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMuZHJvcHMgPSB0aGlz
LmRyb3BzLnJlamVjdChmdW5jdGlvbihkKSB7IHJldHVybiBkLmVsZW1lbnQ9PSQoZWxlbWVudCkg
fSk7CiAgfSwKCiAgYWRkOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVt
ZW50KTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAgIGdyZWVkeTogICAg
IHRydWUsCiAgICAgIGhvdmVyY2xhc3M6IG51bGwgIAogICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9
KTsKCiAgICAvLyBjYWNoZSBjb250YWluZXJzCiAgICBpZihvcHRpb25zLmNvbnRhaW5tZW50KSB7
CiAgICAgIG9wdGlvbnMuX2NvbnRhaW5lcnMgPSBbXTsKICAgICAgdmFyIGNvbnRhaW5tZW50ID0g
b3B0aW9ucy5jb250YWlubWVudDsKICAgICAgaWYoKHR5cGVvZiBjb250YWlubWVudCA9PSAnb2Jq
ZWN0JykgJiYgCiAgICAgICAgKGNvbnRhaW5tZW50LmNvbnN0cnVjdG9yID09IEFycmF5KSkgewog
ICAgICAgIGNvbnRhaW5tZW50LmVhY2goIGZ1bmN0aW9uKGMpIHsgb3B0aW9ucy5fY29udGFpbmVy
cy5wdXNoKCQoYykpIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIG9wdGlvbnMuX2NvbnRhaW5l
cnMucHVzaCgkKGNvbnRhaW5tZW50KSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgaWYob3B0aW9u
cy5hY2NlcHQpIG9wdGlvbnMuYWNjZXB0ID0gW29wdGlvbnMuYWNjZXB0XS5mbGF0dGVuKCk7Cgog
ICAgRWxlbWVudC5tYWtlUG9zaXRpb25lZChlbGVtZW50KTsgLy8gZml4IElFCiAgICBvcHRpb25z
LmVsZW1lbnQgPSBlbGVtZW50OwoKICAgIHRoaXMuZHJvcHMucHVzaChvcHRpb25zKTsKICB9LAoK
ICBpc0NvbnRhaW5lZDogZnVuY3Rpb24oZWxlbWVudCwgZHJvcCkgewogICAgdmFyIHBhcmVudE5v
ZGUgPSBlbGVtZW50LnBhcmVudE5vZGU7CiAgICByZXR1cm4gZHJvcC5fY29udGFpbmVycy5kZXRl
Y3QoZnVuY3Rpb24oYykgeyByZXR1cm4gcGFyZW50Tm9kZSA9PSBjIH0pOwogIH0sCgogIGlzQWZm
ZWN0ZWQ6IGZ1bmN0aW9uKHBvaW50LCBlbGVtZW50LCBkcm9wKSB7CiAgICByZXR1cm4gKAogICAg
ICAoZHJvcC5lbGVtZW50IT1lbGVtZW50KSAmJgogICAgICAoKCFkcm9wLl9jb250YWluZXJzKSB8
fAogICAgICAgIHRoaXMuaXNDb250YWluZWQoZWxlbWVudCwgZHJvcCkpICYmCiAgICAgICgoIWRy
b3AuYWNjZXB0KSB8fAogICAgICAgIChFbGVtZW50LmNsYXNzTmFtZXMoZWxlbWVudCkuZGV0ZWN0
KCAKICAgICAgICAgIGZ1bmN0aW9uKHYpIHsgcmV0dXJuIGRyb3AuYWNjZXB0LmluY2x1ZGUodikg
fSApICkpICYmCiAgICAgIFBvc2l0aW9uLndpdGhpbihkcm9wLmVsZW1lbnQsIHBvaW50WzBdLCBw
b2ludFsxXSkgKTsKICB9LAoKICBkZWFjdGl2YXRlOiBmdW5jdGlvbihkcm9wKSB7CiAgICBpZihk
cm9wLmhvdmVyY2xhc3MpCiAgICAgIEVsZW1lbnQucmVtb3ZlQ2xhc3NOYW1lKGRyb3AuZWxlbWVu
dCwgZHJvcC5ob3ZlcmNsYXNzKTsKICAgIHRoaXMubGFzdF9hY3RpdmUgPSBudWxsOwogIH0sCgog
IGFjdGl2YXRlOiBmdW5jdGlvbihkcm9wKSB7CiAgICBpZihkcm9wLmhvdmVyY2xhc3MpCiAgICAg
IEVsZW1lbnQuYWRkQ2xhc3NOYW1lKGRyb3AuZWxlbWVudCwgZHJvcC5ob3ZlcmNsYXNzKTsKICAg
IHRoaXMubGFzdF9hY3RpdmUgPSBkcm9wOwogIH0sCgogIHNob3c6IGZ1bmN0aW9uKHBvaW50LCBl
bGVtZW50KSB7CiAgICBpZighdGhpcy5kcm9wcy5sZW5ndGgpIHJldHVybjsKICAgIAogICAgaWYo
dGhpcy5sYXN0X2FjdGl2ZSkgdGhpcy5kZWFjdGl2YXRlKHRoaXMubGFzdF9hY3RpdmUpOwogICAg
dGhpcy5kcm9wcy5lYWNoKCBmdW5jdGlvbihkcm9wKSB7CiAgICAgIGlmKERyb3BwYWJsZXMuaXNB
ZmZlY3RlZChwb2ludCwgZWxlbWVudCwgZHJvcCkpIHsKICAgICAgICBpZihkcm9wLm9uSG92ZXIp
CiAgICAgICAgICAgZHJvcC5vbkhvdmVyKGVsZW1lbnQsIGRyb3AuZWxlbWVudCwgUG9zaXRpb24u
b3ZlcmxhcChkcm9wLm92ZXJsYXAsIGRyb3AuZWxlbWVudCkpOwogICAgICAgIGlmKGRyb3AuZ3Jl
ZWR5KSB7IAogICAgICAgICAgRHJvcHBhYmxlcy5hY3RpdmF0ZShkcm9wKTsKICAgICAgICAgIHRo
cm93ICRicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sCgogIGZpcmU6IGZ1bmN0
aW9uKGV2ZW50LCBlbGVtZW50KSB7CiAgICBpZighdGhpcy5sYXN0X2FjdGl2ZSkgcmV0dXJuOwog
ICAgUG9zaXRpb24ucHJlcGFyZSgpOwoKICAgIGlmICh0aGlzLmlzQWZmZWN0ZWQoW0V2ZW50LnBv
aW50ZXJYKGV2ZW50KSwgRXZlbnQucG9pbnRlclkoZXZlbnQpXSwgZWxlbWVudCwgdGhpcy5sYXN0
X2FjdGl2ZSkpCiAgICAgIGlmICh0aGlzLmxhc3RfYWN0aXZlLm9uRHJvcCkgCiAgICAgICAgdGhp
cy5sYXN0X2FjdGl2ZS5vbkRyb3AoZWxlbWVudCwgdGhpcy5sYXN0X2FjdGl2ZS5lbGVtZW50LCBl
dmVudCk7CiAgfSwKCiAgcmVzZXQ6IGZ1bmN0aW9uKCkgewogICAgaWYodGhpcy5sYXN0X2FjdGl2
ZSkKICAgICAgdGhpcy5kZWFjdGl2YXRlKHRoaXMubGFzdF9hY3RpdmUpOwogIH0KfQoKdmFyIERy
YWdnYWJsZXMgPSB7CiAgZHJhZ3M6IFtdLAogIG9ic2VydmVyczogW10sCiAgCiAgcmVnaXN0ZXI6
IGZ1bmN0aW9uKGRyYWdnYWJsZSkgewogICAgaWYodGhpcy5kcmFncy5sZW5ndGggPT0gMCkgewog
ICAgICB0aGlzLmV2ZW50TW91c2VVcCAgID0gdGhpcy5lbmREcmFnLmJpbmRBc0V2ZW50TGlzdGVu
ZXIodGhpcyk7CiAgICAgIHRoaXMuZXZlbnRNb3VzZU1vdmUgPSB0aGlzLnVwZGF0ZURyYWcuYmlu
ZEFzRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICAgdGhpcy5ldmVudEtleXByZXNzICA9IHRoaXMu
a2V5UHJlc3MuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICAgCiAgICAgIEV2ZW50Lm9i
c2VydmUoZG9jdW1lbnQsICJtb3VzZXVwIiwgdGhpcy5ldmVudE1vdXNlVXApOwogICAgICBFdmVu
dC5vYnNlcnZlKGRvY3VtZW50LCAibW91c2Vtb3ZlIiwgdGhpcy5ldmVudE1vdXNlTW92ZSk7CiAg
ICAgIEV2ZW50Lm9ic2VydmUoZG9jdW1lbnQsICJrZXlwcmVzcyIsIHRoaXMuZXZlbnRLZXlwcmVz
cyk7CiAgICB9CiAgICB0aGlzLmRyYWdzLnB1c2goZHJhZ2dhYmxlKTsKICB9LAogIAogIHVucmVn
aXN0ZXI6IGZ1bmN0aW9uKGRyYWdnYWJsZSkgewogICAgdGhpcy5kcmFncyA9IHRoaXMuZHJhZ3Mu
cmVqZWN0KGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQ9PWRyYWdnYWJsZSB9KTsKICAgIGlmKHRoaXMu
ZHJhZ3MubGVuZ3RoID09IDApIHsKICAgICAgRXZlbnQuc3RvcE9ic2VydmluZyhkb2N1bWVudCwg
Im1vdXNldXAiLCB0aGlzLmV2ZW50TW91c2VVcCk7CiAgICAgIEV2ZW50LnN0b3BPYnNlcnZpbmco
ZG9jdW1lbnQsICJtb3VzZW1vdmUiLCB0aGlzLmV2ZW50TW91c2VNb3ZlKTsKICAgICAgRXZlbnQu
c3RvcE9ic2VydmluZyhkb2N1bWVudCwgImtleXByZXNzIiwgdGhpcy5ldmVudEtleXByZXNzKTsK
ICAgIH0KICB9LAogIAogIGFjdGl2YXRlOiBmdW5jdGlvbihkcmFnZ2FibGUpIHsKICAgIHdpbmRv
dy5mb2N1cygpOyAvLyBhbGxvd3Mga2V5cHJlc3MgZXZlbnRzIGlmIHdpbmRvdyBpc24ndCBjdXJy
ZW50bHkgZm9jdXNlZCwgZmFpbHMgZm9yIFNhZmFyaQogICAgdGhpcy5hY3RpdmVEcmFnZ2FibGUg
PSBkcmFnZ2FibGU7CiAgfSwKICAKICBkZWFjdGl2YXRlOiBmdW5jdGlvbihkcmFnZ2JhbGUpIHsK
ICAgIHRoaXMuYWN0aXZlRHJhZ2dhYmxlID0gbnVsbDsKICB9LAogIAogIHVwZGF0ZURyYWc6IGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICBpZighdGhpcy5hY3RpdmVEcmFnZ2FibGUpIHJldHVybjsKICAg
IHZhciBwb2ludGVyID0gW0V2ZW50LnBvaW50ZXJYKGV2ZW50KSwgRXZlbnQucG9pbnRlclkoZXZl
bnQpXTsKICAgIC8vIE1vemlsbGEtYmFzZWQgYnJvd3NlcnMgZmlyZSBzdWNjZXNzaXZlIG1vdXNl
bW92ZSBldmVudHMgd2l0aAogICAgLy8gdGhlIHNhbWUgY29vcmRpbmF0ZXMsIHByZXZlbnQgbmVl
ZGxlc3MgcmVkcmF3aW5nIChtb3ogYnVnPykKICAgIGlmKHRoaXMuX2xhc3RQb2ludGVyICYmICh0
aGlzLl9sYXN0UG9pbnRlci5pbnNwZWN0KCkgPT0gcG9pbnRlci5pbnNwZWN0KCkpKSByZXR1cm47
CiAgICB0aGlzLl9sYXN0UG9pbnRlciA9IHBvaW50ZXI7CiAgICB0aGlzLmFjdGl2ZURyYWdnYWJs
ZS51cGRhdGVEcmFnKGV2ZW50LCBwb2ludGVyKTsKICB9LAogIAogIGVuZERyYWc6IGZ1bmN0aW9u
KGV2ZW50KSB7CiAgICBpZighdGhpcy5hY3RpdmVEcmFnZ2FibGUpIHJldHVybjsKICAgIHRoaXMu
X2xhc3RQb2ludGVyID0gbnVsbDsKICAgIHRoaXMuYWN0aXZlRHJhZ2dhYmxlLmVuZERyYWcoZXZl
bnQpOwogICAgdGhpcy5hY3RpdmVEcmFnZ2FibGUgPSBudWxsOwogIH0sCiAgCiAga2V5UHJlc3M6
IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBpZih0aGlzLmFjdGl2ZURyYWdnYWJsZSkKICAgICAgdGhp
cy5hY3RpdmVEcmFnZ2FibGUua2V5UHJlc3MoZXZlbnQpOwogIH0sCiAgCiAgYWRkT2JzZXJ2ZXI6
IGZ1bmN0aW9uKG9ic2VydmVyKSB7CiAgICB0aGlzLm9ic2VydmVycy5wdXNoKG9ic2VydmVyKTsK
ICAgIHRoaXMuX2NhY2hlT2JzZXJ2ZXJDYWxsYmFja3MoKTsKICB9LAogIAogIHJlbW92ZU9ic2Vy
dmVyOiBmdW5jdGlvbihlbGVtZW50KSB7ICAvLyBlbGVtZW50IGluc3RlYWQgb2Ygb2JzZXJ2ZXIg
Zml4ZXMgbWVtIGxlYWtzCiAgICB0aGlzLm9ic2VydmVycyA9IHRoaXMub2JzZXJ2ZXJzLnJlamVj
dCggZnVuY3Rpb24obykgeyByZXR1cm4gby5lbGVtZW50PT1lbGVtZW50IH0pOwogICAgdGhpcy5f
Y2FjaGVPYnNlcnZlckNhbGxiYWNrcygpOwogIH0sCiAgCiAgbm90aWZ5OiBmdW5jdGlvbihldmVu
dE5hbWUsIGRyYWdnYWJsZSwgZXZlbnQpIHsgIC8vICdvblN0YXJ0JywgJ29uRW5kJywgJ29uRHJh
ZycKICAgIGlmKHRoaXNbZXZlbnROYW1lKydDb3VudCddID4gMCkKICAgICAgdGhpcy5vYnNlcnZl
cnMuZWFjaCggZnVuY3Rpb24obykgewogICAgICAgIGlmKG9bZXZlbnROYW1lXSkgb1tldmVudE5h
bWVdKGV2ZW50TmFtZSwgZHJhZ2dhYmxlLCBldmVudCk7CiAgICAgIH0pOwogIH0sCiAgCiAgX2Nh
Y2hlT2JzZXJ2ZXJDYWxsYmFja3M6IGZ1bmN0aW9uKCkgewogICAgWydvblN0YXJ0Jywnb25FbmQn
LCdvbkRyYWcnXS5lYWNoKCBmdW5jdGlvbihldmVudE5hbWUpIHsKICAgICAgRHJhZ2dhYmxlc1tl
dmVudE5hbWUrJ0NvdW50J10gPSBEcmFnZ2FibGVzLm9ic2VydmVycy5zZWxlY3QoCiAgICAgICAg
ZnVuY3Rpb24obykgeyByZXR1cm4gb1tldmVudE5hbWVdOyB9CiAgICAgICkubGVuZ3RoOwogICAg
fSk7CiAgfQp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnZhciBEcmFnZ2FibGUgPSBDbGFzcy5j
cmVhdGUoKTsKRHJhZ2dhYmxlLnByb3RvdHlwZSA9IHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihl
bGVtZW50KSB7CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICBoYW5kbGU6
IGZhbHNlLAogICAgICBzdGFydGVmZmVjdDogZnVuY3Rpb24oZWxlbWVudCkgeyAKICAgICAgICBu
ZXcgRWZmZWN0Lk9wYWNpdHkoZWxlbWVudCwge2R1cmF0aW9uOjAuMiwgZnJvbToxLjAsIHRvOjAu
N30pOyAKICAgICAgfSwKICAgICAgcmV2ZXJ0ZWZmZWN0OiBmdW5jdGlvbihlbGVtZW50LCB0b3Bf
b2Zmc2V0LCBsZWZ0X29mZnNldCkgewogICAgICAgIHZhciBkdXIgPSBNYXRoLnNxcnQoTWF0aC5h
YnModG9wX29mZnNldF4yKStNYXRoLmFicyhsZWZ0X29mZnNldF4yKSkqMC4wMjsKICAgICAgICBl
bGVtZW50Ll9yZXZlcnQgPSBuZXcgRWZmZWN0Lk1vdmUoZWxlbWVudCwgeyB4OiAtbGVmdF9vZmZz
ZXQsIHk6IC10b3Bfb2Zmc2V0LCBkdXJhdGlvbjogZHVyfSk7CiAgICAgIH0sCiAgICAgIGVuZGVm
ZmVjdDogZnVuY3Rpb24oZWxlbWVudCkgeyAKICAgICAgICBuZXcgRWZmZWN0Lk9wYWNpdHkoZWxl
bWVudCwge2R1cmF0aW9uOjAuMiwgZnJvbTowLjcsIHRvOjEuMH0pOyAKICAgICAgfSwKICAgICAg
emluZGV4OiAxMDAwLAogICAgICByZXZlcnQ6IGZhbHNlLAogICAgICBzbmFwOiBmYWxzZSAgIC8v
IGZhbHNlLCBvciB4eSBvciBbeCx5XSBvciBmdW5jdGlvbih4LHkpeyByZXR1cm4gW3gseV0gfQog
ICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKCiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQp
OwogICAgCiAgICBpZihvcHRpb25zLmhhbmRsZSAmJiAodHlwZW9mIG9wdGlvbnMuaGFuZGxlID09
ICdzdHJpbmcnKSkKICAgICAgdGhpcy5oYW5kbGUgPSBFbGVtZW50LmNoaWxkcmVuV2l0aENsYXNz
TmFtZSh0aGlzLmVsZW1lbnQsIG9wdGlvbnMuaGFuZGxlKVswXTsgIAogICAgaWYoIXRoaXMuaGFu
ZGxlKSB0aGlzLmhhbmRsZSA9ICQob3B0aW9ucy5oYW5kbGUpOwogICAgaWYoIXRoaXMuaGFuZGxl
KSB0aGlzLmhhbmRsZSA9IHRoaXMuZWxlbWVudDsKCiAgICBFbGVtZW50Lm1ha2VQb3NpdGlvbmVk
KHRoaXMuZWxlbWVudCk7IC8vIGZpeCBJRSAgICAKCiAgICB0aGlzLmRlbHRhICAgID0gdGhpcy5j
dXJyZW50RGVsdGEoKTsKICAgIHRoaXMub3B0aW9ucyAgPSBvcHRpb25zOwogICAgdGhpcy5kcmFn
Z2luZyA9IGZhbHNlOyAgIAoKICAgIHRoaXMuZXZlbnRNb3VzZURvd24gPSB0aGlzLmluaXREcmFn
LmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyk7CiAgICBFdmVudC5vYnNlcnZlKHRoaXMuaGFuZGxl
LCAibW91c2Vkb3duIiwgdGhpcy5ldmVudE1vdXNlRG93bik7CiAgICAKICAgIERyYWdnYWJsZXMu
cmVnaXN0ZXIodGhpcyk7CiAgfSwKICAKICBkZXN0cm95OiBmdW5jdGlvbigpIHsKICAgIEV2ZW50
LnN0b3BPYnNlcnZpbmcodGhpcy5oYW5kbGUsICJtb3VzZWRvd24iLCB0aGlzLmV2ZW50TW91c2VE
b3duKTsKICAgIERyYWdnYWJsZXMudW5yZWdpc3Rlcih0aGlzKTsKICB9LAogIAogIGN1cnJlbnRE
ZWx0YTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4oWwogICAgICBwYXJzZUludChFbGVtZW50Lmdl
dFN0eWxlKHRoaXMuZWxlbWVudCwnbGVmdCcpIHx8ICcwJyksCiAgICAgIHBhcnNlSW50KEVsZW1l
bnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCd0b3AnKSB8fCAnMCcpXSk7CiAgfSwKICAKICBpbml0
RHJhZzogZnVuY3Rpb24oZXZlbnQpIHsKICAgIGlmKEV2ZW50LmlzTGVmdENsaWNrKGV2ZW50KSkg
eyAgICAKICAgICAgLy8gYWJvcnQgb24gZm9ybSBlbGVtZW50cywgZml4ZXMgYSBGaXJlZm94IGlz
c3VlCiAgICAgIHZhciBzcmMgPSBFdmVudC5lbGVtZW50KGV2ZW50KTsKICAgICAgaWYoc3JjLnRh
Z05hbWUgJiYgKAogICAgICAgIHNyYy50YWdOYW1lPT0nSU5QVVQnIHx8CiAgICAgICAgc3JjLnRh
Z05hbWU9PSdTRUxFQ1QnIHx8CiAgICAgICAgc3JjLnRhZ05hbWU9PSdCVVRUT04nIHx8CiAgICAg
ICAgc3JjLnRhZ05hbWU9PSdURVhUQVJFQScpKSByZXR1cm47CiAgICAgICAgCiAgICAgIGlmKHRo
aXMuZWxlbWVudC5fcmV2ZXJ0KSB7CiAgICAgICAgdGhpcy5lbGVtZW50Ll9yZXZlcnQuY2FuY2Vs
KCk7CiAgICAgICAgdGhpcy5lbGVtZW50Ll9yZXZlcnQgPSBudWxsOwogICAgICB9CiAgICAgIAog
ICAgICB2YXIgcG9pbnRlciA9IFtFdmVudC5wb2ludGVyWChldmVudCksIEV2ZW50LnBvaW50ZXJZ
KGV2ZW50KV07CiAgICAgIHZhciBwb3MgICAgID0gUG9zaXRpb24uY3VtdWxhdGl2ZU9mZnNldCh0
aGlzLmVsZW1lbnQpOwogICAgICB0aGlzLm9mZnNldCA9IFswLDFdLm1hcCggZnVuY3Rpb24oaSkg
eyByZXR1cm4gKHBvaW50ZXJbaV0gLSBwb3NbaV0pIH0pOwogICAgICAKICAgICAgRHJhZ2dhYmxl
cy5hY3RpdmF0ZSh0aGlzKTsKICAgICAgRXZlbnQuc3RvcChldmVudCk7CiAgICB9CiAgfSwKICAK
ICBzdGFydERyYWc6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICB0aGlzLmRyYWdnaW5nID0gdHJ1ZTsK
ICAgIAogICAgaWYodGhpcy5vcHRpb25zLnppbmRleCkgewogICAgICB0aGlzLm9yaWdpbmFsWiA9
IHBhcnNlSW50KEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCd6LWluZGV4JykgfHwgMCk7
CiAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS56SW5kZXggPSB0aGlzLm9wdGlvbnMuemluZGV4Owog
ICAgfQogICAgCiAgICBpZih0aGlzLm9wdGlvbnMuZ2hvc3RpbmcpIHsKICAgICAgdGhpcy5fY2xv
bmUgPSB0aGlzLmVsZW1lbnQuY2xvbmVOb2RlKHRydWUpOwogICAgICBQb3NpdGlvbi5hYnNvbHV0
aXplKHRoaXMuZWxlbWVudCk7CiAgICAgIHRoaXMuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJl
Zm9yZSh0aGlzLl9jbG9uZSwgdGhpcy5lbGVtZW50KTsKICAgIH0KICAgIAogICAgRHJhZ2dhYmxl
cy5ub3RpZnkoJ29uU3RhcnQnLCB0aGlzLCBldmVudCk7CiAgICBpZih0aGlzLm9wdGlvbnMuc3Rh
cnRlZmZlY3QpIHRoaXMub3B0aW9ucy5zdGFydGVmZmVjdCh0aGlzLmVsZW1lbnQpOwogIH0sCiAg
CiAgdXBkYXRlRHJhZzogZnVuY3Rpb24oZXZlbnQsIHBvaW50ZXIpIHsKICAgIGlmKCF0aGlzLmRy
YWdnaW5nKSB0aGlzLnN0YXJ0RHJhZyhldmVudCk7CiAgICBQb3NpdGlvbi5wcmVwYXJlKCk7CiAg
ICBEcm9wcGFibGVzLnNob3cocG9pbnRlciwgdGhpcy5lbGVtZW50KTsKICAgIERyYWdnYWJsZXMu
bm90aWZ5KCdvbkRyYWcnLCB0aGlzLCBldmVudCk7CiAgICB0aGlzLmRyYXcocG9pbnRlcik7CiAg
ICBpZih0aGlzLm9wdGlvbnMuY2hhbmdlKSB0aGlzLm9wdGlvbnMuY2hhbmdlKHRoaXMpOwogICAg
CiAgICAvLyBmaXggQXBwbGVXZWJLaXQgcmVuZGVyaW5nCiAgICBpZihuYXZpZ2F0b3IuYXBwVmVy
c2lvbi5pbmRleE9mKCdBcHBsZVdlYktpdCcpPjApIHdpbmRvdy5zY3JvbGxCeSgwLDApOwogICAg
RXZlbnQuc3RvcChldmVudCk7CiAgfSwKICAKICBmaW5pc2hEcmFnOiBmdW5jdGlvbihldmVudCwg
c3VjY2VzcykgewogICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlOwoKICAgIGlmKHRoaXMub3B0aW9u
cy5naG9zdGluZykgewogICAgICBQb3NpdGlvbi5yZWxhdGl2aXplKHRoaXMuZWxlbWVudCk7CiAg
ICAgIEVsZW1lbnQucmVtb3ZlKHRoaXMuX2Nsb25lKTsKICAgICAgdGhpcy5fY2xvbmUgPSBudWxs
OwogICAgfQoKICAgIGlmKHN1Y2Nlc3MpIERyb3BwYWJsZXMuZmlyZShldmVudCwgdGhpcy5lbGVt
ZW50KTsKICAgIERyYWdnYWJsZXMubm90aWZ5KCdvbkVuZCcsIHRoaXMsIGV2ZW50KTsKCiAgICB2
YXIgcmV2ZXJ0ID0gdGhpcy5vcHRpb25zLnJldmVydDsKICAgIGlmKHJldmVydCAmJiB0eXBlb2Yg
cmV2ZXJ0ID09ICdmdW5jdGlvbicpIHJldmVydCA9IHJldmVydCh0aGlzLmVsZW1lbnQpOwogICAg
CiAgICB2YXIgZCA9IHRoaXMuY3VycmVudERlbHRhKCk7CiAgICBpZihyZXZlcnQgJiYgdGhpcy5v
cHRpb25zLnJldmVydGVmZmVjdCkgewogICAgICB0aGlzLm9wdGlvbnMucmV2ZXJ0ZWZmZWN0KHRo
aXMuZWxlbWVudCwgCiAgICAgICAgZFsxXS10aGlzLmRlbHRhWzFdLCBkWzBdLXRoaXMuZGVsdGFb
MF0pOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5kZWx0YSA9IGQ7CiAgICB9CgogICAgaWYodGhp
cy5vcHRpb25zLnppbmRleCkKICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnpJbmRleCA9IHRoaXMu
b3JpZ2luYWxaOwoKICAgIGlmKHRoaXMub3B0aW9ucy5lbmRlZmZlY3QpIAogICAgICB0aGlzLm9w
dGlvbnMuZW5kZWZmZWN0KHRoaXMuZWxlbWVudCk7CgogICAgRHJhZ2dhYmxlcy5kZWFjdGl2YXRl
KHRoaXMpOwogICAgRHJvcHBhYmxlcy5yZXNldCgpOwogIH0sCiAgCiAga2V5UHJlc3M6IGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICBpZighZXZlbnQua2V5Q29kZT09RXZlbnQuS0VZX0VTQykgcmV0dXJu
OwogICAgdGhpcy5maW5pc2hEcmFnKGV2ZW50LCBmYWxzZSk7CiAgICBFdmVudC5zdG9wKGV2ZW50
KTsKICB9LAogIAogIGVuZERyYWc6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBpZighdGhpcy5kcmFn
Z2luZykgcmV0dXJuOwogICAgdGhpcy5maW5pc2hEcmFnKGV2ZW50LCB0cnVlKTsKICAgIEV2ZW50
LnN0b3AoZXZlbnQpOwogIH0sCiAgCiAgZHJhdzogZnVuY3Rpb24ocG9pbnQpIHsKICAgIHZhciBw
b3MgPSBQb3NpdGlvbi5jdW11bGF0aXZlT2Zmc2V0KHRoaXMuZWxlbWVudCk7CiAgICB2YXIgZCA9
IHRoaXMuY3VycmVudERlbHRhKCk7CiAgICBwb3NbMF0gLT0gZFswXTsgcG9zWzFdIC09IGRbMV07
CiAgICAKICAgIHZhciBwID0gWzAsMV0ubWFwKGZ1bmN0aW9uKGkpeyByZXR1cm4gKHBvaW50W2ld
LXBvc1tpXS10aGlzLm9mZnNldFtpXSkgfS5iaW5kKHRoaXMpKTsKICAgIAogICAgaWYodGhpcy5v
cHRpb25zLnNuYXApIHsKICAgICAgaWYodHlwZW9mIHRoaXMub3B0aW9ucy5zbmFwID09ICdmdW5j
dGlvbicpIHsKICAgICAgICBwID0gdGhpcy5vcHRpb25zLnNuYXAocFswXSxwWzFdKTsKICAgICAg
fSBlbHNlIHsKICAgICAgaWYodGhpcy5vcHRpb25zLnNuYXAgaW5zdGFuY2VvZiBBcnJheSkgewog
ICAgICAgIHAgPSBwLm1hcCggZnVuY3Rpb24odiwgaSkgewogICAgICAgICAgcmV0dXJuIE1hdGgu
cm91bmQodi90aGlzLm9wdGlvbnMuc25hcFtpXSkqdGhpcy5vcHRpb25zLnNuYXBbaV0gfS5iaW5k
KHRoaXMpKQogICAgICB9IGVsc2UgewogICAgICAgIHAgPSBwLm1hcCggZnVuY3Rpb24odikgewog
ICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQodi90aGlzLm9wdGlvbnMuc25hcCkqdGhpcy5vcHRp
b25zLnNuYXAgfS5iaW5kKHRoaXMpKQogICAgICB9CiAgICB9fQogICAgCiAgICB2YXIgc3R5bGUg
PSB0aGlzLmVsZW1lbnQuc3R5bGU7CiAgICBpZigoIXRoaXMub3B0aW9ucy5jb25zdHJhaW50KSB8
fCAodGhpcy5vcHRpb25zLmNvbnN0cmFpbnQ9PSdob3Jpem9udGFsJykpCiAgICAgIHN0eWxlLmxl
ZnQgPSBwWzBdICsgInB4IjsKICAgIGlmKCghdGhpcy5vcHRpb25zLmNvbnN0cmFpbnQpIHx8ICh0
aGlzLm9wdGlvbnMuY29uc3RyYWludD09J3ZlcnRpY2FsJykpCiAgICAgIHN0eWxlLnRvcCAgPSBw
WzFdICsgInB4IjsKICAgIGlmKHN0eWxlLnZpc2liaWxpdHk9PSJoaWRkZW4iKSBzdHlsZS52aXNp
YmlsaXR5ID0gIiI7IC8vIGZpeCBnZWNrbyByZW5kZXJpbmcKICB9Cn0KCi8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwoKdmFyIFNvcnRhYmxlT2JzZXJ2ZXIgPSBDbGFzcy5jcmVhdGUoKTsKU29ydGFibGVP
YnNlcnZlci5wcm90b3R5cGUgPSB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCwgb2Jz
ZXJ2ZXIpIHsKICAgIHRoaXMuZWxlbWVudCAgID0gJChlbGVtZW50KTsKICAgIHRoaXMub2JzZXJ2
ZXIgID0gb2JzZXJ2ZXI7CiAgICB0aGlzLmxhc3RWYWx1ZSA9IFNvcnRhYmxlLnNlcmlhbGl6ZSh0
aGlzLmVsZW1lbnQpOwogIH0sCiAgCiAgb25TdGFydDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmxh
c3RWYWx1ZSA9IFNvcnRhYmxlLnNlcmlhbGl6ZSh0aGlzLmVsZW1lbnQpOwogIH0sCiAgCiAgb25F
bmQ6IGZ1bmN0aW9uKCkgewogICAgU29ydGFibGUudW5tYXJrKCk7CiAgICBpZih0aGlzLmxhc3RW
YWx1ZSAhPSBTb3J0YWJsZS5zZXJpYWxpemUodGhpcy5lbGVtZW50KSkKICAgICAgdGhpcy5vYnNl
cnZlcih0aGlzLmVsZW1lbnQpCiAgfQp9Cgp2YXIgU29ydGFibGUgPSB7CiAgc29ydGFibGVzOiBu
ZXcgQXJyYXkoKSwKICAKICBvcHRpb25zOiBmdW5jdGlvbihlbGVtZW50KXsKICAgIGVsZW1lbnQg
PSAkKGVsZW1lbnQpOwogICAgcmV0dXJuIHRoaXMuc29ydGFibGVzLmRldGVjdChmdW5jdGlvbihz
KSB7IHJldHVybiBzLmVsZW1lbnQgPT0gZWxlbWVudCB9KTsKICB9LAogIAogIGRlc3Ryb3k6IGZ1
bmN0aW9uKGVsZW1lbnQpewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB0aGlzLnNvcnRh
Ymxlcy5maW5kQWxsKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMuZWxlbWVudCA9PSBlbGVtZW50IH0p
LmVhY2goZnVuY3Rpb24ocyl7CiAgICAgIERyYWdnYWJsZXMucmVtb3ZlT2JzZXJ2ZXIocy5lbGVt
ZW50KTsKICAgICAgcy5kcm9wcGFibGVzLmVhY2goZnVuY3Rpb24oZCl7IERyb3BwYWJsZXMucmVt
b3ZlKGQpIH0pOwogICAgICBzLmRyYWdnYWJsZXMuaW52b2tlKCdkZXN0cm95Jyk7CiAgICB9KTsK
ICAgIHRoaXMuc29ydGFibGVzID0gdGhpcy5zb3J0YWJsZXMucmVqZWN0KGZ1bmN0aW9uKHMpIHsg
cmV0dXJuIHMuZWxlbWVudCA9PSBlbGVtZW50IH0pOwogIH0sCiAgCiAgY3JlYXRlOiBmdW5jdGlv
bihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBvcHRpb25zID0g
T2JqZWN0LmV4dGVuZCh7IAogICAgICBlbGVtZW50OiAgICAgZWxlbWVudCwKICAgICAgdGFnOiAg
ICAgICAgICdsaScsICAgICAgIC8vIGFzc3VtZXMgbGkgY2hpbGRyZW4sIG92ZXJyaWRlIHdpdGgg
dGFnOiAndGFnbmFtZScKICAgICAgZHJvcE9uRW1wdHk6IGZhbHNlLAogICAgICB0cmVlOiAgICAg
ICAgZmFsc2UsICAgICAgLy8gZml4bWU6IHVuaW1wbGVtZW50ZWQKICAgICAgb3ZlcmxhcDogICAg
ICd2ZXJ0aWNhbCcsIC8vIG9uZSBvZiAndmVydGljYWwnLCAnaG9yaXpvbnRhbCcKICAgICAgY29u
c3RyYWludDogICd2ZXJ0aWNhbCcsIC8vIG9uZSBvZiAndmVydGljYWwnLCAnaG9yaXpvbnRhbCcs
IGZhbHNlCiAgICAgIGNvbnRhaW5tZW50OiBlbGVtZW50LCAgICAvLyBhbHNvIHRha2VzIGFycmF5
IG9mIGVsZW1lbnRzIChvciBpZCdzKTsgb3IgZmFsc2UKICAgICAgaGFuZGxlOiAgICAgIGZhbHNl
LCAgICAgIC8vIG9yIGEgQ1NTIGNsYXNzCiAgICAgIG9ubHk6ICAgICAgICBmYWxzZSwKICAgICAg
aG92ZXJjbGFzczogIG51bGwsCiAgICAgIGdob3N0aW5nOiAgICBmYWxzZSwKICAgICAgZm9ybWF0
OiAgICAgIG51bGwsCiAgICAgIG9uQ2hhbmdlOiAgICBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbiwK
ICAgICAgb25VcGRhdGU6ICAgIFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uCiAgICB9LCBhcmd1bWVu
dHNbMV0gfHwge30pOwoKICAgIC8vIGNsZWFyIGFueSBvbGQgc29ydGFibGUgd2l0aCBzYW1lIGVs
ZW1lbnQKICAgIHRoaXMuZGVzdHJveShlbGVtZW50KTsKCiAgICAvLyBidWlsZCBvcHRpb25zIGZv
ciB0aGUgZHJhZ2dhYmxlcwogICAgdmFyIG9wdGlvbnNfZm9yX2RyYWdnYWJsZSA9IHsKICAgICAg
cmV2ZXJ0OiAgICAgIHRydWUsCiAgICAgIGdob3N0aW5nOiAgICBvcHRpb25zLmdob3N0aW5nLAog
ICAgICBjb25zdHJhaW50OiAgb3B0aW9ucy5jb25zdHJhaW50LAogICAgICBoYW5kbGU6ICAgICAg
b3B0aW9ucy5oYW5kbGUgfTsKCiAgICBpZihvcHRpb25zLnN0YXJ0ZWZmZWN0KQogICAgICBvcHRp
b25zX2Zvcl9kcmFnZ2FibGUuc3RhcnRlZmZlY3QgPSBvcHRpb25zLnN0YXJ0ZWZmZWN0OwoKICAg
IGlmKG9wdGlvbnMucmV2ZXJ0ZWZmZWN0KQogICAgICBvcHRpb25zX2Zvcl9kcmFnZ2FibGUucmV2
ZXJ0ZWZmZWN0ID0gb3B0aW9ucy5yZXZlcnRlZmZlY3Q7CiAgICBlbHNlCiAgICAgIGlmKG9wdGlv
bnMuZ2hvc3RpbmcpIG9wdGlvbnNfZm9yX2RyYWdnYWJsZS5yZXZlcnRlZmZlY3QgPSBmdW5jdGlv
bihlbGVtZW50KSB7CiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgID0gMDsKICAgICAgICBlbGVt
ZW50LnN0eWxlLmxlZnQgPSAwOwogICAgICB9OwoKICAgIGlmKG9wdGlvbnMuZW5kZWZmZWN0KQog
ICAgICBvcHRpb25zX2Zvcl9kcmFnZ2FibGUuZW5kZWZmZWN0ID0gb3B0aW9ucy5lbmRlZmZlY3Q7
CgogICAgaWYob3B0aW9ucy56aW5kZXgpCiAgICAgIG9wdGlvbnNfZm9yX2RyYWdnYWJsZS56aW5k
ZXggPSBvcHRpb25zLnppbmRleDsKCiAgICAvLyBidWlsZCBvcHRpb25zIGZvciB0aGUgZHJvcHBh
YmxlcyAgCiAgICB2YXIgb3B0aW9uc19mb3JfZHJvcHBhYmxlID0gewogICAgICBvdmVybGFwOiAg
ICAgb3B0aW9ucy5vdmVybGFwLAogICAgICBjb250YWlubWVudDogb3B0aW9ucy5jb250YWlubWVu
dCwKICAgICAgaG92ZXJjbGFzczogIG9wdGlvbnMuaG92ZXJjbGFzcywKICAgICAgb25Ib3Zlcjog
ICAgIFNvcnRhYmxlLm9uSG92ZXIsCiAgICAgIGdyZWVkeTogICAgICAhb3B0aW9ucy5kcm9wT25F
bXB0eQogICAgfQoKICAgIC8vIGZpeCBmb3IgZ2Vja28gZW5naW5lCiAgICBFbGVtZW50LmNsZWFu
V2hpdGVzcGFjZShlbGVtZW50KTsgCgogICAgb3B0aW9ucy5kcmFnZ2FibGVzID0gW107CiAgICBv
cHRpb25zLmRyb3BwYWJsZXMgPSBbXTsKCiAgICAvLyBtYWtlIGl0IHNvCgogICAgLy8gZHJvcCBv
biBlbXB0eSBoYW5kbGluZwogICAgaWYob3B0aW9ucy5kcm9wT25FbXB0eSkgewogICAgICBEcm9w
cGFibGVzLmFkZChlbGVtZW50LAogICAgICAgIHtjb250YWlubWVudDogb3B0aW9ucy5jb250YWlu
bWVudCwgb25Ib3ZlcjogU29ydGFibGUub25FbXB0eUhvdmVyLCBncmVlZHk6IGZhbHNlfSk7CiAg
ICAgIG9wdGlvbnMuZHJvcHBhYmxlcy5wdXNoKGVsZW1lbnQpOwogICAgfQoKICAgICh0aGlzLmZp
bmRFbGVtZW50cyhlbGVtZW50LCBvcHRpb25zKSB8fCBbXSkuZWFjaCggZnVuY3Rpb24oZSkgewog
ICAgICAvLyBoYW5kbGVzIGFyZSBwZXItZHJhZ2dhYmxlCiAgICAgIHZhciBoYW5kbGUgPSBvcHRp
b25zLmhhbmRsZSA/IAogICAgICAgIEVsZW1lbnQuY2hpbGRyZW5XaXRoQ2xhc3NOYW1lKGUsIG9w
dGlvbnMuaGFuZGxlKVswXSA6IGU7ICAgIAogICAgICBvcHRpb25zLmRyYWdnYWJsZXMucHVzaCgK
ICAgICAgICBuZXcgRHJhZ2dhYmxlKGUsIE9iamVjdC5leHRlbmQob3B0aW9uc19mb3JfZHJhZ2dh
YmxlLCB7IGhhbmRsZTogaGFuZGxlIH0pKSk7CiAgICAgIERyb3BwYWJsZXMuYWRkKGUsIG9wdGlv
bnNfZm9yX2Ryb3BwYWJsZSk7CiAgICAgIG9wdGlvbnMuZHJvcHBhYmxlcy5wdXNoKGUpOyAgICAg
IAogICAgfSk7CgogICAgLy8ga2VlcCByZWZlcmVuY2UKICAgIHRoaXMuc29ydGFibGVzLnB1c2go
b3B0aW9ucyk7CgogICAgLy8gZm9yIG9udXBkYXRlCiAgICBEcmFnZ2FibGVzLmFkZE9ic2VydmVy
KG5ldyBTb3J0YWJsZU9ic2VydmVyKGVsZW1lbnQsIG9wdGlvbnMub25VcGRhdGUpKTsKCiAgfSwK
CiAgLy8gcmV0dXJuIGFsbCBzdWl0YWJsZS1mb3Itc29ydGFibGUgZWxlbWVudHMgaW4gYSBndWFy
YW50ZWVkIG9yZGVyCiAgZmluZEVsZW1lbnRzOiBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7
CiAgICBpZighZWxlbWVudC5oYXNDaGlsZE5vZGVzKCkpIHJldHVybiBudWxsOwogICAgdmFyIGVs
ZW1lbnRzID0gW107CiAgICAkQShlbGVtZW50LmNoaWxkTm9kZXMpLmVhY2goIGZ1bmN0aW9uKGUp
IHsKICAgICAgaWYoZS50YWdOYW1lICYmIGUudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT1vcHRpb25z
LnRhZy50b1VwcGVyQ2FzZSgpICYmCiAgICAgICAgKCFvcHRpb25zLm9ubHkgfHwgKEVsZW1lbnQu
aGFzQ2xhc3NOYW1lKGUsIG9wdGlvbnMub25seSkpKSkKICAgICAgICAgIGVsZW1lbnRzLnB1c2go
ZSk7CiAgICAgIGlmKG9wdGlvbnMudHJlZSkgewogICAgICAgIHZhciBncmFuZGNoaWxkcmVuID0g
dGhpcy5maW5kRWxlbWVudHMoZSwgb3B0aW9ucyk7CiAgICAgICAgaWYoZ3JhbmRjaGlsZHJlbikg
ZWxlbWVudHMucHVzaChncmFuZGNoaWxkcmVuKTsKICAgICAgfQogICAgfSk7CgogICAgcmV0dXJu
IChlbGVtZW50cy5sZW5ndGg+MCA/IGVsZW1lbnRzLmZsYXR0ZW4oKSA6IG51bGwpOwogIH0sCgog
IG9uSG92ZXI6IGZ1bmN0aW9uKGVsZW1lbnQsIGRyb3Bvbiwgb3ZlcmxhcCkgewogICAgaWYob3Zl
cmxhcD4wLjUpIHsKICAgICAgU29ydGFibGUubWFyayhkcm9wb24sICdiZWZvcmUnKTsKICAgICAg
aWYoZHJvcG9uLnByZXZpb3VzU2libGluZyAhPSBlbGVtZW50KSB7CiAgICAgICAgdmFyIG9sZFBh
cmVudE5vZGUgPSBlbGVtZW50LnBhcmVudE5vZGU7CiAgICAgICAgZWxlbWVudC5zdHlsZS52aXNp
YmlsaXR5ID0gImhpZGRlbiI7IC8vIGZpeCBnZWNrbyByZW5kZXJpbmcKICAgICAgICBkcm9wb24u
cGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgZHJvcG9uKTsKICAgICAgICBpZihkcm9w
b24ucGFyZW50Tm9kZSE9b2xkUGFyZW50Tm9kZSkgCiAgICAgICAgICBTb3J0YWJsZS5vcHRpb25z
KG9sZFBhcmVudE5vZGUpLm9uQ2hhbmdlKGVsZW1lbnQpOwogICAgICAgIFNvcnRhYmxlLm9wdGlv
bnMoZHJvcG9uLnBhcmVudE5vZGUpLm9uQ2hhbmdlKGVsZW1lbnQpOwogICAgICB9CiAgICB9IGVs
c2UgewogICAgICBTb3J0YWJsZS5tYXJrKGRyb3BvbiwgJ2FmdGVyJyk7CiAgICAgIHZhciBuZXh0
RWxlbWVudCA9IGRyb3Bvbi5uZXh0U2libGluZyB8fCBudWxsOwogICAgICBpZihuZXh0RWxlbWVu
dCAhPSBlbGVtZW50KSB7CiAgICAgICAgdmFyIG9sZFBhcmVudE5vZGUgPSBlbGVtZW50LnBhcmVu
dE5vZGU7CiAgICAgICAgZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7IC8vIGZp
eCBnZWNrbyByZW5kZXJpbmcKICAgICAgICBkcm9wb24ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo
ZWxlbWVudCwgbmV4dEVsZW1lbnQpOwogICAgICAgIGlmKGRyb3Bvbi5wYXJlbnROb2RlIT1vbGRQ
YXJlbnROb2RlKSAKICAgICAgICAgIFNvcnRhYmxlLm9wdGlvbnMob2xkUGFyZW50Tm9kZSkub25D
aGFuZ2UoZWxlbWVudCk7CiAgICAgICAgU29ydGFibGUub3B0aW9ucyhkcm9wb24ucGFyZW50Tm9k
ZSkub25DaGFuZ2UoZWxlbWVudCk7CiAgICAgIH0KICAgIH0KICB9LAoKICBvbkVtcHR5SG92ZXI6
IGZ1bmN0aW9uKGVsZW1lbnQsIGRyb3BvbikgewogICAgaWYoZWxlbWVudC5wYXJlbnROb2RlIT1k
cm9wb24pIHsKICAgICAgdmFyIG9sZFBhcmVudE5vZGUgPSBlbGVtZW50LnBhcmVudE5vZGU7CiAg
ICAgIGRyb3Bvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgU29ydGFibGUub3B0aW9ucyhv
bGRQYXJlbnROb2RlKS5vbkNoYW5nZShlbGVtZW50KTsKICAgICAgU29ydGFibGUub3B0aW9ucyhk
cm9wb24pLm9uQ2hhbmdlKGVsZW1lbnQpOwogICAgfQogIH0sCgogIHVubWFyazogZnVuY3Rpb24o
KSB7CiAgICBpZihTb3J0YWJsZS5fbWFya2VyKSBFbGVtZW50LmhpZGUoU29ydGFibGUuX21hcmtl
cik7CiAgfSwKCiAgbWFyazogZnVuY3Rpb24oZHJvcG9uLCBwb3NpdGlvbikgewogICAgLy8gbWFy
ayBvbiBnaG9zdGluZyBvbmx5CiAgICB2YXIgc29ydGFibGUgPSBTb3J0YWJsZS5vcHRpb25zKGRy
b3Bvbi5wYXJlbnROb2RlKTsKICAgIGlmKHNvcnRhYmxlICYmICFzb3J0YWJsZS5naG9zdGluZykg
cmV0dXJuOyAKCiAgICBpZighU29ydGFibGUuX21hcmtlcikgewogICAgICBTb3J0YWJsZS5fbWFy
a2VyID0gJCgnZHJvcG1hcmtlcicpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpOwog
ICAgICBFbGVtZW50LmhpZGUoU29ydGFibGUuX21hcmtlcik7CiAgICAgIEVsZW1lbnQuYWRkQ2xh
c3NOYW1lKFNvcnRhYmxlLl9tYXJrZXIsICdkcm9wbWFya2VyJyk7CiAgICAgIFNvcnRhYmxlLl9t
YXJrZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiYm9keSIpLml0ZW0oMCkuYXBwZW5kQ2hpbGQoU29ydGFibGUuX21hcmtl
cik7CiAgICB9ICAgIAogICAgdmFyIG9mZnNldHMgPSBQb3NpdGlvbi5jdW11bGF0aXZlT2Zmc2V0
KGRyb3Bvbik7CiAgICBTb3J0YWJsZS5fbWFya2VyLnN0eWxlLmxlZnQgPSBvZmZzZXRzWzBdICsg
J3B4JzsKICAgIFNvcnRhYmxlLl9tYXJrZXIuc3R5bGUudG9wID0gb2Zmc2V0c1sxXSArICdweCc7
CiAgICAKICAgIGlmKHBvc2l0aW9uPT0nYWZ0ZXInKQogICAgICBpZihzb3J0YWJsZS5vdmVybGFw
ID09ICdob3Jpem9udGFsJykgCiAgICAgICAgU29ydGFibGUuX21hcmtlci5zdHlsZS5sZWZ0ID0g
KG9mZnNldHNbMF0rZHJvcG9uLmNsaWVudFdpZHRoKSArICdweCc7CiAgICAgIGVsc2UKICAgICAg
ICBTb3J0YWJsZS5fbWFya2VyLnN0eWxlLnRvcCA9IChvZmZzZXRzWzFdK2Ryb3Bvbi5jbGllbnRI
ZWlnaHQpICsgJ3B4JzsKICAgIAogICAgRWxlbWVudC5zaG93KFNvcnRhYmxlLl9tYXJrZXIpOwog
IH0sCgogIHNlcmlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxl
bWVudCk7CiAgICB2YXIgc29ydGFibGVPcHRpb25zID0gdGhpcy5vcHRpb25zKGVsZW1lbnQpOwog
ICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgdGFnOiAgc29ydGFibGVPcHRp
b25zLnRhZywKICAgICAgb25seTogc29ydGFibGVPcHRpb25zLm9ubHksCiAgICAgIG5hbWU6IGVs
ZW1lbnQuaWQsCiAgICAgIGZvcm1hdDogc29ydGFibGVPcHRpb25zLmZvcm1hdCB8fCAvXlteX10q
XyguKikkLwogICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKICAgIHJldHVybiAkKHRoaXMuZmlu
ZEVsZW1lbnRzKGVsZW1lbnQsIG9wdGlvbnMpIHx8IFtdKS5tYXAoIGZ1bmN0aW9uKGl0ZW0pIHsK
ICAgICAgcmV0dXJuIChlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5uYW1lKSArICJbXT0iICsg
CiAgICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGl0ZW0uaWQubWF0Y2gob3B0aW9ucy5m
b3JtYXQpID8gaXRlbS5pZC5tYXRjaChvcHRpb25zLmZvcm1hdClbMV0gOiAnJykpOwogICAgfSku
am9pbigiJiIpOwogIH0KfdQABQARAAcACACdAJ4AFACfXxBHaHR0cDovL2dyYXBoaWNzOC5ueXRp
bWVzLmNvbS9qcy9zZWN0aW9uL2hlYWx0aC9hdXRvY29tcGxldGUvY29udHJvbHMuanNPEQSRYnBs
aXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8Q
E1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QIgsMJiwtMx40NVFSU1RV
VldYWVpbXF1eX2BhYmNkZWZna2xVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNs
YXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAIYACgCAQCBAAgAaAB4AF
gAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEEdodHRwOi8vZ3JhcGhp
Y3M4Lm55dGltZXMuY29tL2pzL3NlY3Rpb24vaGVhbHRoL2F1dG9jb21wbGV0ZS9jb250cm9scy5q
c9IuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wcu4kMQyNMN
Njc4OUVXTlMua2V5c1pOUy5vYmplY3RzgB+rOjs8PT4/QEFCQ0SACYAKgAuADIANgA6AD4AQgBGA
EoATq0ZHSElKS0xNTk9QgBSAFYAWgBeAGIAZgBqAG4AcgB2AHl1MYXN0LU1vZGlmaWVkXUNhY2hl
LUNvbnRyb2xdQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRlbnQt
VHlwZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvblRWYXJ5XxAdVGh1LCAwNCBP
Y3QgMjAwNyAxNjoxOTozMCBHTVRfEBdwcml2YXRlLCBtYXgtYWdlPTIyOTE0NFVieXRlc1Rnemlw
XxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMV8QGGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFQ1NTI4
XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0MyBHTVRfEA8iNDVmOS00NzA1MTI5MiJaa2VlcC1h
bGl2ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2hpo2lqMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNE
aWN0aW9uYXJ5EUX50i4vbW6jbm8yXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAI
ABEAGgAfACkAMgA3ADoAUABSAGQAiQCPAKoAsQC0ALcAuwC/AMIAxQDIAMsAzgDRANQA1wDZANsA
3QDfAOEA4wDlAOcA6QDrAO0A7wD2AP4BCgEMAQ4BEAFaAV8BaAFzAXYBfAGFAY4BkAGXAZ8BqgGs
AbgBugG8Ab4BwAHCAcQBxgHIAcoBzAHOAdoB3AHeAeAB4gHkAeYB6AHqAewB7gHwAf4CDAIaAi0C
NAJBAlACVQJaAmUCagKKAqQCqgKvAsgC4wLoAwgDGgMlAzcDPANAA1YDYwNmA2sDbwODAAAAAAAA
AgEAAAAAAAAAcAAAAAAAAAAAAAAAAAAAA5FPEUX5Ly8gQ29weXJpZ2h0IChjKSAyMDA1IFRob21h
cyBGdWNocyAoaHR0cDovL3NjcmlwdC5hY3Vsby51cywgaHR0cDovL21pci5hY3Vsby51cykKLy8g
ICAgICAgICAgIChjKSAyMDA1IEl2YW4gS3JzdGljIChodHRwOi8vYmxvZ3MubGF3LmhhcnZhcmQu
ZWR1L2l2YW4pCi8vICAgICAgICAgICAoYykgMjAwNSBKb24gVGlyc2VuIChodHRwOi8vd3d3LnRp
cnNlbi5jb20pCi8vIENvbnRyaWJ1dG9yczoKLy8gIFJpY2hhcmQgTGl2c2V5Ci8vICBSYWh1bCBC
aGFyZ2F2YQovLyAgUm9iIFdpbGxzCi8vIAovLyBTZWUgc2NyaXB0YWN1bG91cy5qcyBmb3IgZnVs
bCBsaWNlbnNlLgoKLy8gQXV0b2NvbXBsZXRlci5CYXNlIGhhbmRsZXMgYWxsIHRoZSBhdXRvY29t
cGxldGlvbiBmdW5jdGlvbmFsaXR5IAovLyB0aGF0J3MgaW5kZXBlbmRlbnQgb2YgdGhlIGRhdGEg
c291cmNlIGZvciBhdXRvY29tcGxldGlvbi4gVGhpcwovLyBpbmNsdWRlcyBkcmF3aW5nIHRoZSBh
dXRvY29tcGxldGlvbiBtZW51LCBvYnNlcnZpbmcga2V5Ym9hcmQKLy8gYW5kIG1vdXNlIGV2ZW50
cywgYW5kIHNpbWlsYXIuCi8vCi8vIFNwZWNpZmljIGF1dG9jb21wbGV0ZXJzIG5lZWQgdG8gcHJv
dmlkZSwgYXQgdGhlIHZlcnkgbGVhc3QsIAovLyBhIGdldFVwZGF0ZWRDaG9pY2VzIGZ1bmN0aW9u
IHRoYXQgd2lsbCBiZSBpbnZva2VkIGV2ZXJ5IHRpbWUKLy8gdGhlIHRleHQgaW5zaWRlIHRoZSBt
b25pdG9yZWQgdGV4dGJveCBjaGFuZ2VzLiBUaGlzIG1ldGhvZCAKLy8gc2hvdWxkIGdldCB0aGUg
dGV4dCBmb3Igd2hpY2ggdG8gcHJvdmlkZSBhdXRvY29tcGxldGlvbiBieQovLyBpbnZva2luZyB0
aGlzLmdldFRva2VuKCksIE5PVCBieSBkaXJlY3RseSBhY2Nlc3NpbmcKLy8gdGhpcy5lbGVtZW50
LnZhbHVlLiBUaGlzIGlzIHRvIGFsbG93IGluY3JlbWVudGFsIHRva2VuaXplZAovLyBhdXRvY29t
cGxldGlvbi4gU3BlY2lmaWMgYXV0by1jb21wbGV0aW9uIGxvZ2ljIChBSkFYLCBldGMpCi8vIGJl
bG9uZ3MgaW4gZ2V0VXBkYXRlZENob2ljZXMuCi8vCi8vIFRva2VuaXplZCBpbmNyZW1lbnRhbCBh
dXRvY29tcGxldGlvbiBpcyBlbmFibGVkIGF1dG9tYXRpY2FsbHkKLy8gd2hlbiBhbiBhdXRvY29t
cGxldGVyIGlzIGluc3RhbnRpYXRlZCB3aXRoIHRoZSAndG9rZW5zJyBvcHRpb24KLy8gaW4gdGhl
IG9wdGlvbnMgcGFyYW1ldGVyLCBlLmcuOgovLyBuZXcgQWpheC5BdXRvY29tcGxldGVyKCdpZCcs
J3VwZCcsICcvdXJsLycsIHsgdG9rZW5zOiAnLCcgfSk7Ci8vIHdpbGwgaW5jcmVtZW50YWxseSBh
dXRvY29tcGxldGUgd2l0aCBhIGNvbW1hIGFzIHRoZSB0b2tlbi4KLy8gQWRkaXRpb25hbGx5LCAn
LCcgaW4gdGhlIGFib3ZlIGV4YW1wbGUgY2FuIGJlIHJlcGxhY2VkIHdpdGgKLy8gYSB0b2tlbiBh
cnJheSwgZS5nLiB7IHRva2VuczogWycsJywgJ1xuJ10gfSB3aGljaAovLyBlbmFibGVzIGF1dG9j
b21wbGV0aW9uIG9uIG11bHRpcGxlIHRva2Vucy4gVGhpcyBpcyBtb3N0IAovLyB1c2VmdWwgd2hl
biBvbmUgb2YgdGhlIHRva2VucyBpcyBcbiAoYSBuZXdsaW5lKSwgYXMgaXQgCi8vIGFsbG93cyBz
bWFydCBhdXRvY29tcGxldGlvbiBhZnRlciBsaW5lYnJlYWtzLgoKdmFyIEF1dG9jb21wbGV0ZXIg
PSB7fQpBdXRvY29tcGxldGVyLkJhc2UgPSBmdW5jdGlvbigpIHt9OwpBdXRvY29tcGxldGVyLkJh
c2UucHJvdG90eXBlID0gewogIGJhc2VJbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50LCB1cGRh
dGUsIG9wdGlvbnMpIHsKICAgIHRoaXMuZWxlbWVudCAgICAgPSAkKGVsZW1lbnQpOyAKICAgIHRo
aXMudXBkYXRlICAgICAgPSAkKHVwZGF0ZSk7ICAKICAgIHRoaXMuaGFzRm9jdXMgICAgPSBmYWxz
ZTsgCiAgICB0aGlzLmNoYW5nZWQgICAgID0gZmFsc2U7IAogICAgdGhpcy5hY3RpdmUgICAgICA9
IGZhbHNlOyAKICAgIHRoaXMuaW5kZXggICAgICAgPSAwOyAgICAgCiAgICB0aGlzLmVudHJ5Q291
bnQgID0gMDsKCiAgICBpZiAodGhpcy5zZXRPcHRpb25zKQogICAgICB0aGlzLnNldE9wdGlvbnMo
b3B0aW9ucyk7CiAgICBlbHNlCiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307Cgog
ICAgdGhpcy5vcHRpb25zLnBhcmFtTmFtZSAgICA9IHRoaXMub3B0aW9ucy5wYXJhbU5hbWUgfHwg
dGhpcy5lbGVtZW50Lm5hbWU7CiAgICB0aGlzLm9wdGlvbnMudG9rZW5zICAgICAgID0gdGhpcy5v
cHRpb25zLnRva2VucyB8fCBbXTsKICAgIHRoaXMub3B0aW9ucy5mcmVxdWVuY3kgICAgPSB0aGlz
Lm9wdGlvbnMuZnJlcXVlbmN5IHx8IDA7IC8vIGNoYW5nZWQgZnJvbSAwLjQgYnkgRWl0YW4gb24g
OS8xMQogICAgdGhpcy5vcHRpb25zLm1pbkNoYXJzICAgICA9IHRoaXMub3B0aW9ucy5taW5DaGFy
cyB8fCAxOwogICAgdGhpcy5vcHRpb25zLm9uU2hvdyAgICAgICA9IHRoaXMub3B0aW9ucy5vblNo
b3cgfHwgCiAgICBmdW5jdGlvbihlbGVtZW50LCB1cGRhdGUpeyAKICAgICAgaWYoIXVwZGF0ZS5z
dHlsZS5wb3NpdGlvbiB8fCB1cGRhdGUuc3R5bGUucG9zaXRpb249PSdhYnNvbHV0ZScpIHsKICAg
ICAgICB1cGRhdGUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgICAgIFBvc2l0aW9u
LmNsb25lKGVsZW1lbnQsIHVwZGF0ZSwge3NldEhlaWdodDogZmFsc2UsIG9mZnNldFRvcDogZWxl
bWVudC5vZmZzZXRIZWlnaHR9KTsKICAgICAgfQogICAgICBFZmZlY3QuQXBwZWFyKHVwZGF0ZSx7
ZHVyYXRpb246MH0pOwogICAgfTsKICAgIHRoaXMub3B0aW9ucy5vbkhpZGUgPSB0aGlzLm9wdGlv
bnMub25IaWRlIHx8IAogICAgZnVuY3Rpb24oZWxlbWVudCwgdXBkYXRlKXsgbmV3IEVmZmVjdC5G
YWRlKHVwZGF0ZSx7ZHVyYXRpb246MC4xNX0pIH07CgogICAgaWYgKHR5cGVvZih0aGlzLm9wdGlv
bnMudG9rZW5zKSA9PSAnc3RyaW5nJykgCiAgICAgIHRoaXMub3B0aW9ucy50b2tlbnMgPSBuZXcg
QXJyYXkodGhpcy5vcHRpb25zLnRva2Vucyk7CgogICAgdGhpcy5vYnNlcnZlciA9IG51bGw7CiAg
ICAKICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2F1dG9jb21wbGV0ZScsJ29mZicpOwoK
ICAgIEVsZW1lbnQuaGlkZSh0aGlzLnVwZGF0ZSk7CgogICAgRXZlbnQub2JzZXJ2ZSh0aGlzLmVs
ZW1lbnQsICJibHVyIiwgdGhpcy5vbkJsdXIuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7CiAg
ICBFdmVudC5vYnNlcnZlKHRoaXMuZWxlbWVudCwgImtleXByZXNzIiwgdGhpcy5vbktleVByZXNz
LmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcykpOwogIH0sCgogIHNob3c6IGZ1bmN0aW9uKCkgewog
ICAgaWYoRWxlbWVudC5nZXRTdHlsZSh0aGlzLnVwZGF0ZSwgJ2Rpc3BsYXknKT09J25vbmUnKSB0
aGlzLm9wdGlvbnMub25TaG93KHRoaXMuZWxlbWVudCwgdGhpcy51cGRhdGUpOwogICAgaWYoIXRo
aXMuaWVmaXggJiYgCiAgICAgIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdNU0lFJyk+
MCkgJiYKICAgICAgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignT3BlcmEnKTwwKSAmJgog
ICAgICAoRWxlbWVudC5nZXRTdHlsZSh0aGlzLnVwZGF0ZSwgJ3Bvc2l0aW9uJyk9PSdhYnNvbHV0
ZScpKSB7CiAgICAgIG5ldyBJbnNlcnRpb24uQWZ0ZXIodGhpcy51cGRhdGUsIAogICAgICAgJzxp
ZnJhbWUgaWQ9IicgKyB0aGlzLnVwZGF0ZS5pZCArICdfaWVmaXgiICcrCiAgICAgICAnc3R5bGU9
ImRpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFu
c2Zvcm0uTWljcm9zb2Z0LkFscGhhKG9wYWNpdHk9MCk7IiAnICsKICAgICAgICdzcmM9ImphdmFz
Y3JpcHQ6ZmFsc2U7IiBmcmFtZWJvcmRlcj0iMCIgc2Nyb2xsaW5nPSJubyI+PC9pZnJhbWU+Jyk7
CiAgICAgIHRoaXMuaWVmaXggPSAkKHRoaXMudXBkYXRlLmlkKydfaWVmaXgnKTsKICAgIH0KICAg
IGlmKHRoaXMuaWVmaXgpIHNldFRpbWVvdXQodGhpcy5maXhJRU92ZXJsYXBwaW5nLmJpbmQodGhp
cyksIDUwKTsKICB9LAogIAogIGZpeElFT3ZlcmxhcHBpbmc6IGZ1bmN0aW9uKCkgewogICAgUG9z
aXRpb24uY2xvbmUodGhpcy51cGRhdGUsIHRoaXMuaWVmaXgpOwogICAgdGhpcy5pZWZpeC5zdHls
ZS56SW5kZXggPSAxOwogICAgdGhpcy51cGRhdGUuc3R5bGUuekluZGV4ID0gMjsKICAgIEVsZW1l
bnQuc2hvdyh0aGlzLmllZml4KTsKICB9LAoKICBoaWRlOiBmdW5jdGlvbigpIHsKICAgIHRoaXMu
c3RvcEluZGljYXRvcigpOwogICAgaWYoRWxlbWVudC5nZXRTdHlsZSh0aGlzLnVwZGF0ZSwgJ2Rp
c3BsYXknKSE9J25vbmUnKSB0aGlzLm9wdGlvbnMub25IaWRlKHRoaXMuZWxlbWVudCwgdGhpcy51
cGRhdGUpOwogICAgaWYodGhpcy5pZWZpeCkgRWxlbWVudC5oaWRlKHRoaXMuaWVmaXgpOwogIH0s
CgogIHN0YXJ0SW5kaWNhdG9yOiBmdW5jdGlvbigpIHsKICAgIGlmKHRoaXMub3B0aW9ucy5pbmRp
Y2F0b3IpIEVsZW1lbnQuc2hvdyh0aGlzLm9wdGlvbnMuaW5kaWNhdG9yKTsKICB9LAoKICBzdG9w
SW5kaWNhdG9yOiBmdW5jdGlvbigpIHsKICAgIGlmKHRoaXMub3B0aW9ucy5pbmRpY2F0b3IpIEVs
ZW1lbnQuaGlkZSh0aGlzLm9wdGlvbnMuaW5kaWNhdG9yKTsKICB9LAoKICBvbktleVByZXNzOiBm
dW5jdGlvbihldmVudCkgewogICAgaWYodGhpcy5hY3RpdmUpCiAgICAgIHN3aXRjaChldmVudC5r
ZXlDb2RlKSB7CiAgICAgICBjYXNlIEV2ZW50LktFWV9UQUI6CiAgICAgICBjYXNlIEV2ZW50LktF
WV9SRVRVUk46CiAgICAgICAgIC8vYWRkZWQgYnkgRWl0YW4gOS8xMy8wNgoJCQlpZiAodGhpcy5p
bmRleCA+PSAwKSB7CgkJCQl0aGlzLnNlbGVjdEVudHJ5KGV2ZW50KTsKICAgICAgICAgCUV2ZW50
LnN0b3AoZXZlbnQpOwoJCQkJLy9hZGRlZCBieSBFaXRhbiAxMS8yOS8wNgoJCQkJcmV0dXJuIGZh
bHNlOwoJCQl9CgkJCWVsc2UgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KICAgICAgIGNhc2UgRXZl
bnQuS0VZX0VTQzoKICAgICAgICAgdGhpcy5oaWRlKCk7CiAgICAgICAgIHRoaXMuYWN0aXZlID0g
ZmFsc2U7CiAgICAgICAgIEV2ZW50LnN0b3AoZXZlbnQpOwogICAgICAgICByZXR1cm47CiAgICAg
ICBjYXNlIEV2ZW50LktFWV9MRUZUOgogICAgICAgY2FzZSBFdmVudC5LRVlfUklHSFQ6CiAgICAg
ICAgIHJldHVybjsKICAgICAgIGNhc2UgRXZlbnQuS0VZX1VQOgogICAgICAgICB0aGlzLm1hcmtQ
cmV2aW91cygpOwogICAgICAgICB0aGlzLnJlbmRlcigpOwogICAgICAgICBpZihuYXZpZ2F0b3Iu
YXBwVmVyc2lvbi5pbmRleE9mKCdBcHBsZVdlYktpdCcpPjApIEV2ZW50LnN0b3AoZXZlbnQpOwog
ICAgICAgICBFdmVudC5zdG9wKGV2ZW50KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
Y2FzZSBFdmVudC5LRVlfRE9XTjoKICAgICAgICAgdGhpcy5tYXJrTmV4dCgpOwogICAgICAgICB0
aGlzLnJlbmRlcigpOwogICAgICAgICBpZihuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdB
cHBsZVdlYktpdCcpPjApIEV2ZW50LnN0b3AoZXZlbnQpOwogICAgICAgICBFdmVudC5zdG9wKGV2
ZW50KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgZWxzZSAKICAgICAgaWYo
ZXZlbnQua2V5Q29kZT09RXZlbnQuS0VZX1RBQiB8fCBldmVudC5rZXlDb2RlPT1FdmVudC5LRVlf
UkVUVVJOKSAKICAgICAgICByZXR1cm47CgogICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTsKICAgIHRo
aXMuaGFzRm9jdXMgPSB0cnVlOwoKICAgIGlmKHRoaXMub2JzZXJ2ZXIpIGNsZWFyVGltZW91dCh0
aGlzLm9ic2VydmVyKTsKICAgICAgdGhpcy5vYnNlcnZlciA9IAogICAgICAgIHNldFRpbWVvdXQo
dGhpcy5vbk9ic2VydmVyRXZlbnQuYmluZCh0aGlzKSwgdGhpcy5vcHRpb25zLmZyZXF1ZW5jeSox
MDAwKTsKICB9LAoKICBvbkhvdmVyOiBmdW5jdGlvbihldmVudCkgewogICAgdmFyIGVsZW1lbnQg
PSBFdmVudC5maW5kRWxlbWVudChldmVudCwgJ0xJJyk7CiAgICBpZih0aGlzLmluZGV4ICE9IGVs
ZW1lbnQuYXV0b2NvbXBsZXRlSW5kZXgpIAogICAgewogICAgICAgIHRoaXMuaW5kZXggPSBlbGVt
ZW50LmF1dG9jb21wbGV0ZUluZGV4OwogICAgICAgIHRoaXMucmVuZGVyKCk7CiAgICB9CiAgICBF
dmVudC5zdG9wKGV2ZW50KTsKICB9LAogIAogIG9uQ2xpY2s6IGZ1bmN0aW9uKGV2ZW50KSB7CiAg
ICB2YXIgZWxlbWVudCA9IEV2ZW50LmZpbmRFbGVtZW50KGV2ZW50LCAnTEknKTsKICAgIHRoaXMu
aW5kZXggPSBlbGVtZW50LmF1dG9jb21wbGV0ZUluZGV4OwogICAgdGhpcy5zZWxlY3RFbnRyeSgp
OwogICAgdGhpcy5oaWRlKCk7CiAgfSwKICAKICBvbkJsdXI6IGZ1bmN0aW9uKGV2ZW50KSB7CiAg
ICAvLyBuZWVkZWQgdG8gbWFrZSBjbGljayBldmVudHMgd29ya2luZwogICAgc2V0VGltZW91dCh0
aGlzLmhpZGUuYmluZCh0aGlzKSwgMjUwKTsKICAgIHRoaXMuaGFzRm9jdXMgPSBmYWxzZTsKICAg
IHRoaXMuYWN0aXZlID0gZmFsc2U7ICAgICAKICB9LCAKICAKICByZW5kZXI6IGZ1bmN0aW9uKCkg
ewogICAgaWYodGhpcy5lbnRyeUNvdW50ID4gMCkgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuZW50cnlDb3VudDsgaSsrKQogICAgICAgIHRoaXMuaW5kZXg9PWkgPyAKICAgICAgICAg
IEVsZW1lbnQuYWRkQ2xhc3NOYW1lKHRoaXMuZ2V0RW50cnkoaSksInNlbGVjdGVkIikgOiAKICAg
ICAgICAgIEVsZW1lbnQucmVtb3ZlQ2xhc3NOYW1lKHRoaXMuZ2V0RW50cnkoaSksInNlbGVjdGVk
Iik7CiAgICAgICAgCiAgICAgIGlmKHRoaXMuaGFzRm9jdXMpIHsgCiAgICAgICAgdGhpcy5zaG93
KCk7CiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlOwogICAgICB9CiAgICB9IGVsc2UgewogICAg
ICB0aGlzLmFjdGl2ZSA9IGZhbHNlOwogICAgICB0aGlzLmhpZGUoKTsKICAgIH0KICB9LAogIAog
IG1hcmtQcmV2aW91czogZnVuY3Rpb24oKSB7CiAgICBpZih0aGlzLmluZGV4ID4gMCkgdGhpcy5p
bmRleC0tCiAgICAgIGVsc2UgdGhpcy5pbmRleCA9IHRoaXMuZW50cnlDb3VudC0xOwogIH0sCiAg
CiAgbWFya05leHQ6IGZ1bmN0aW9uKCkgewogICAgaWYodGhpcy5pbmRleCA8IHRoaXMuZW50cnlD
b3VudC0xKSB0aGlzLmluZGV4KysKICAgICAgZWxzZSB0aGlzLmluZGV4ID0gMDsKICB9LAogIAog
IGdldEVudHJ5OiBmdW5jdGlvbihpbmRleCkgewogICAgcmV0dXJuIHRoaXMudXBkYXRlLmZpcnN0
Q2hpbGQuY2hpbGROb2Rlc1tpbmRleF07CiAgfSwKICAKICBnZXRDdXJyZW50RW50cnk6IGZ1bmN0
aW9uKCkgewogICAgcmV0dXJuIHRoaXMuZ2V0RW50cnkodGhpcy5pbmRleCk7CiAgfSwKICAKICBz
ZWxlY3RFbnRyeTogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlOwogICAgdGhp
cy51cGRhdGVFbGVtZW50KHRoaXMuZ2V0Q3VycmVudEVudHJ5KCkpOwogIH0sCgogIHVwZGF0ZUVs
ZW1lbnQ6IGZ1bmN0aW9uKHNlbGVjdGVkRWxlbWVudCkgewogICAgaWYgKHRoaXMub3B0aW9ucy51
cGRhdGVFbGVtZW50KSB7CiAgICAgIHRoaXMub3B0aW9ucy51cGRhdGVFbGVtZW50KHNlbGVjdGVk
RWxlbWVudCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciB2YWx1ZSA9ICcnOwogICAgaWYg
KHRoaXMub3B0aW9ucy5zZWxlY3QpIHsKICAgICAgdmFyIG5vZGVzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZSh0aGlzLm9wdGlvbnMuc2VsZWN0LCBzZWxlY3RlZEVsZW1lbnQpIHx8
IFtdOwogICAgICBpZihub2Rlcy5sZW5ndGg+MCkgdmFsdWUgPSBFbGVtZW50LmNvbGxlY3RUZXh0
Tm9kZXMobm9kZXNbMF0sIHRoaXMub3B0aW9ucy5zZWxlY3QpOwogICAgfSBlbHNlCiAgICAgIHZh
bHVlID0gRWxlbWVudC5jb2xsZWN0VGV4dE5vZGVzSWdub3JlQ2xhc3Moc2VsZWN0ZWRFbGVtZW50
LCAnaW5mb3JtYWwnKTsKICAgIAogICAgdmFyIGxhc3RUb2tlblBvcyA9IHRoaXMuZmluZExhc3RU
b2tlbigpOwogICAgaWYgKGxhc3RUb2tlblBvcyAhPSAtMSkgewogICAgICB2YXIgbmV3VmFsdWUg
PSB0aGlzLmVsZW1lbnQudmFsdWUuc3Vic3RyKDAsIGxhc3RUb2tlblBvcyArIDEpOwogICAgICB2
YXIgd2hpdGVzcGFjZSA9IHRoaXMuZWxlbWVudC52YWx1ZS5zdWJzdHIobGFzdFRva2VuUG9zICsg
MSkubWF0Y2goL15ccysvKTsKICAgICAgaWYgKHdoaXRlc3BhY2UpCiAgICAgICAgbmV3VmFsdWUg
Kz0gd2hpdGVzcGFjZVswXTsKICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gbmV3VmFsdWUgKyB2
YWx1ZTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHZhbHVlOwogICAg
fQogICAgdGhpcy5lbGVtZW50LmZvY3VzKCk7CiAgICAKICAgIGlmICh0aGlzLm9wdGlvbnMuYWZ0
ZXJVcGRhdGVFbGVtZW50KQogICAgICB0aGlzLm9wdGlvbnMuYWZ0ZXJVcGRhdGVFbGVtZW50KHRo
aXMuZWxlbWVudCwgc2VsZWN0ZWRFbGVtZW50KTsKICB9LAoKICB1cGRhdGVDaG9pY2VzOiBmdW5j
dGlvbihjaG9pY2VzKSB7CiAgICBpZighdGhpcy5jaGFuZ2VkICYmIHRoaXMuaGFzRm9jdXMpIHsK
ICAgICAgdGhpcy51cGRhdGUuaW5uZXJIVE1MID0gY2hvaWNlczsKICAgICAgRWxlbWVudC5jbGVh
bldoaXRlc3BhY2UodGhpcy51cGRhdGUpOwogICAgICBFbGVtZW50LmNsZWFuV2hpdGVzcGFjZSh0
aGlzLnVwZGF0ZS5maXJzdENoaWxkKTsKCiAgICAgIGlmKHRoaXMudXBkYXRlLmZpcnN0Q2hpbGQg
JiYgdGhpcy51cGRhdGUuZmlyc3RDaGlsZC5jaGlsZE5vZGVzKSB7CiAgICAgICAgdGhpcy5lbnRy
eUNvdW50ID0gCiAgICAgICAgICB0aGlzLnVwZGF0ZS5maXJzdENoaWxkLmNoaWxkTm9kZXMubGVu
Z3RoOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5lbnRyeUNvdW50OyBpKyspIHsK
ICAgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZ2V0RW50cnkoaSk7CiAgICAgICAgICBlbnRyeS5h
dXRvY29tcGxldGVJbmRleCA9IGk7CiAgICAgICAgICB0aGlzLmFkZE9ic2VydmVycyhlbnRyeSk7
CiAgICAgICAgfQogICAgICB9IGVsc2UgeyAKICAgICAgICB0aGlzLmVudHJ5Q291bnQgPSAwOwog
ICAgICB9CgogICAgICB0aGlzLnN0b3BJbmRpY2F0b3IoKTsKICAgICAgICAgICAgICAgIAogICAg
ICB0aGlzLmluZGV4ID0gMDsKCiAgICAgIHRoaXMucmVuZGVyKCk7CiAgICB9CiAgfSwKCiAgYWRk
T2JzZXJ2ZXJzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBFdmVudC5vYnNlcnZlKGVsZW1lbnQs
ICJtb3VzZW92ZXIiLCB0aGlzLm9uSG92ZXIuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7CiAg
ICBFdmVudC5vYnNlcnZlKGVsZW1lbnQsICJjbGljayIsIHRoaXMub25DbGljay5iaW5kQXNFdmVu
dExpc3RlbmVyKHRoaXMpKTsKICB9LAoKICBvbk9ic2VydmVyRXZlbnQ6IGZ1bmN0aW9uKCkgewog
ICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7ICAgCiAgICBpZih0aGlzLmdldFRva2VuKCkubGVuZ3Ro
Pj10aGlzLm9wdGlvbnMubWluQ2hhcnMpIHsKICAgICAgdGhpcy5zdGFydEluZGljYXRvcigpOwog
ICAgICB0aGlzLmdldFVwZGF0ZWRDaG9pY2VzKCk7CiAgICB9IGVsc2UgewogICAgICB0aGlzLmFj
dGl2ZSA9IGZhbHNlOwogICAgICB0aGlzLmhpZGUoKTsKICAgIH0KICB9LAoKICBnZXRUb2tlbjog
ZnVuY3Rpb24oKSB7CiAgICB2YXIgdG9rZW5Qb3MgPSB0aGlzLmZpbmRMYXN0VG9rZW4oKTsKICAg
IGlmICh0b2tlblBvcyAhPSAtMSkKICAgICAgdmFyIHJldCA9IHRoaXMuZWxlbWVudC52YWx1ZS5z
dWJzdHIodG9rZW5Qb3MgKyAxKS5yZXBsYWNlKC9eXHMrLywnJykucmVwbGFjZSgvXHMrJC8sJycp
OwogICAgZWxzZQogICAgICB2YXIgcmV0ID0gdGhpcy5lbGVtZW50LnZhbHVlOwoKICAgIHJldHVy
biAvXG4vLnRlc3QocmV0KSA/ICcnIDogcmV0OwogIH0sCgogIGZpbmRMYXN0VG9rZW46IGZ1bmN0
aW9uKCkgewogICAgdmFyIGxhc3RUb2tlblBvcyA9IC0xOwoKICAgIGZvciAodmFyIGk9MDsgaTx0
aGlzLm9wdGlvbnMudG9rZW5zLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciB0aGlzVG9rZW5Qb3Mg
PSB0aGlzLmVsZW1lbnQudmFsdWUubGFzdEluZGV4T2YodGhpcy5vcHRpb25zLnRva2Vuc1tpXSk7
CiAgICAgIGlmICh0aGlzVG9rZW5Qb3MgPiBsYXN0VG9rZW5Qb3MpCiAgICAgICAgbGFzdFRva2Vu
UG9zID0gdGhpc1Rva2VuUG9zOwogICAgfQogICAgcmV0dXJuIGxhc3RUb2tlblBvczsKICB9Cn0K
CkFqYXguQXV0b2NvbXBsZXRlciA9IENsYXNzLmNyZWF0ZSgpOwpPYmplY3QuZXh0ZW5kKE9iamVj
dC5leHRlbmQoQWpheC5BdXRvY29tcGxldGVyLnByb3RvdHlwZSwgQXV0b2NvbXBsZXRlci5CYXNl
LnByb3RvdHlwZSksIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50LCB1cGRhdGUsIHVy
bCwgb3B0aW9ucykgewoJICB0aGlzLmJhc2VJbml0aWFsaXplKGVsZW1lbnQsIHVwZGF0ZSwgb3B0
aW9ucyk7CiAgICB0aGlzLm9wdGlvbnMuYXN5bmNocm9ub3VzICA9IHRydWU7CiAgICB0aGlzLm9w
dGlvbnMub25Db21wbGV0ZSAgICA9IHRoaXMub25Db21wbGV0ZS5iaW5kKHRoaXMpOwogICAgdGhp
cy5vcHRpb25zLmRlZmF1bHRQYXJhbXMgPSB0aGlzLm9wdGlvbnMucGFyYW1ldGVycyB8fCBudWxs
OwogICAgdGhpcy51cmwgICAgICAgICAgICAgICAgICAgPSB1cmw7CiAgfSwKCiAgZ2V0VXBkYXRl
ZENob2ljZXM6IGZ1bmN0aW9uKCkgewogICAgZW50cnkgPSBlbmNvZGVVUklDb21wb25lbnQodGhp
cy5vcHRpb25zLnBhcmFtTmFtZSkgKyAnPScgKyAKICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHRo
aXMuZ2V0VG9rZW4oKSk7CgogICAgdGhpcy5vcHRpb25zLnBhcmFtZXRlcnMgPSB0aGlzLm9wdGlv
bnMuY2FsbGJhY2sgPwogICAgICB0aGlzLm9wdGlvbnMuY2FsbGJhY2sodGhpcy5lbGVtZW50LCBl
bnRyeSkgOiBlbnRyeTsKCiAgICBpZih0aGlzLm9wdGlvbnMuZGVmYXVsdFBhcmFtcykgCiAgICAg
IHRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzICs9ICcmJyArIHRoaXMub3B0aW9ucy5kZWZhdWx0UGFy
YW1zOwoKICAgIG5ldyBBamF4LlJlcXVlc3QodGhpcy51cmwsIHRoaXMub3B0aW9ucyk7CiAgfSwK
CiAgb25Db21wbGV0ZTogZnVuY3Rpb24ocmVxdWVzdCkgewogICAgdGhpcy51cGRhdGVDaG9pY2Vz
KHJlcXVlc3QucmVzcG9uc2VUZXh0KTsKICB9Cgp9KTsKCi8vIFRoZSBsb2NhbCBhcnJheSBhdXRv
Y29tcGxldGVyLiBVc2VkIHdoZW4geW91J2QgcHJlZmVyIHRvCi8vIGluamVjdCBhbiBhcnJheSBv
ZiBhdXRvY29tcGxldGlvbiBvcHRpb25zIGludG8gdGhlIHBhZ2UsIHJhdGhlcgovLyB0aGFuIHNl
bmRpbmcgb3V0IEFqYXggcXVlcmllcywgd2hpY2ggY2FuIGJlIHF1aXRlIHNsb3cgc29tZXRpbWVz
LgovLwovLyBUaGUgY29uc3RydWN0b3IgdGFrZXMgZm91ciBwYXJhbWV0ZXJzLiBUaGUgZmlyc3Qg
dHdvIGFyZSwgYXMgdXN1YWwsCi8vIHRoZSBpZCBvZiB0aGUgbW9uaXRvcmVkIHRleHRib3gsIGFu
ZCBpZCBvZiB0aGUgYXV0b2NvbXBsZXRpb24gbWVudS4KLy8gVGhlIHRoaXJkIGlzIHRoZSBhcnJh
eSB5b3Ugd2FudCB0byBhdXRvY29tcGxldGUgZnJvbSwgYW5kIHRoZSBmb3VydGgKLy8gaXMgdGhl
IG9wdGlvbnMgYmxvY2suCi8vCi8vIEV4dHJhIGxvY2FsIGF1dG9jb21wbGV0aW9uIG9wdGlvbnM6
Ci8vIC0gY2hvaWNlcyAtIEhvdyBtYW55IGF1dG9jb21wbGV0aW9uIGNob2ljZXMgdG8gb2ZmZXIK
Ly8KLy8gLSBwYXJ0aWFsU2VhcmNoIC0gSWYgZmFsc2UsIHRoZSBhdXRvY29tcGxldGVyIHdpbGwg
bWF0Y2ggZW50ZXJlZAovLyAgICAgICAgICAgICAgICAgICAgdGV4dCBvbmx5IGF0IHRoZSBiZWdp
bm5pbmcgb2Ygc3RyaW5ncyBpbiB0aGUgCi8vICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxl
dGUgYXJyYXkuIERlZmF1bHRzIHRvIHRydWUsIHdoaWNoIHdpbGwKLy8gICAgICAgICAgICAgICAg
ICAgIG1hdGNoIHRleHQgYXQgdGhlIGJlZ2lubmluZyBvZiBhbnkgKndvcmQqIGluIHRoZQovLyAg
ICAgICAgICAgICAgICAgICAgc3RyaW5ncyBpbiB0aGUgYXV0b2NvbXBsZXRlIGFycmF5LiBJZiB5
b3Ugd2FudCB0bwovLyAgICAgICAgICAgICAgICAgICAgc2VhcmNoIGFueXdoZXJlIGluIHRoZSBz
dHJpbmcsIGFkZGl0aW9uYWxseSBzZXQKLy8gICAgICAgICAgICAgICAgICAgIHRoZSBvcHRpb24g
ZnVsbFNlYXJjaCB0byB0cnVlIChkZWZhdWx0OiBvZmYpLgovLwovLyAtIGZ1bGxTc2VhcmNoIC0g
U2VhcmNoIGFueXdoZXJlIGluIGF1dG9jb21wbGV0ZSBhcnJheSBzdHJpbmdzLgovLwovLyAtIHBh
cnRpYWxDaGFycyAtIEhvdyBtYW55IGNoYXJhY3RlcnMgdG8gZW50ZXIgYmVmb3JlIHRyaWdnZXJp
bmcKLy8gICAgICAgICAgICAgICAgICAgYSBwYXJ0aWFsIG1hdGNoICh1bmxpa2UgbWluQ2hhcnMs
IHdoaWNoIGRlZmluZXMKLy8gICAgICAgICAgICAgICAgICAgaG93IG1hbnkgY2hhcmFjdGVycyBh
cmUgcmVxdWlyZWQgdG8gZG8gYW55IG1hdGNoCi8vICAgICAgICAgICAgICAgICAgIGF0IGFsbCku
IERlZmF1bHRzIHRvIDIuCi8vCi8vIC0gaWdub3JlQ2FzZSAtIFdoZXRoZXIgdG8gaWdub3JlIGNh
c2Ugd2hlbiBhdXRvY29tcGxldGluZy4KLy8gICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIHRy
dWUuCi8vCi8vIEl0J3MgcG9zc2libGUgdG8gcGFzcyBpbiBhIGN1c3RvbSBmdW5jdGlvbiBhcyB0
aGUgJ3NlbGVjdG9yJyAKLy8gb3B0aW9uLCBpZiB5b3UgcHJlZmVyIHRvIHdyaXRlIHlvdXIgb3du
IGF1dG9jb21wbGV0aW9uIGxvZ2ljLgovLyBJbiB0aGF0IGNhc2UsIHRoZSBvdGhlciBvcHRpb25z
IGFib3ZlIHdpbGwgbm90IGFwcGx5IHVubGVzcwovLyB5b3Ugc3VwcG9ydCB0aGVtLgoKQXV0b2Nv
bXBsZXRlci5Mb2NhbCA9IENsYXNzLmNyZWF0ZSgpOwpBdXRvY29tcGxldGVyLkxvY2FsLnByb3Rv
dHlwZSA9IE9iamVjdC5leHRlbmQobmV3IEF1dG9jb21wbGV0ZXIuQmFzZSgpLCB7CiAgaW5pdGlh
bGl6ZTogZnVuY3Rpb24oZWxlbWVudCwgdXBkYXRlLCBhcnJheSwgb3B0aW9ucykgewogICAgdGhp
cy5iYXNlSW5pdGlhbGl6ZShlbGVtZW50LCB1cGRhdGUsIG9wdGlvbnMpOwogICAgdGhpcy5vcHRp
b25zLmFycmF5ID0gYXJyYXk7CgoJICAvLyBtb2RpZmllZCBieSBFaXRhbiAxMi8xOS8wNgoJICAv
LyBzZXQgdXAgb21uaXR1cmUgb25zdWJtaXQgdHJhY2tlcgoJICAvKnZhciBzdWdnZXN0Rm9ybSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0cmF2ZWxHdWlkZSIpOwoJICBzdWdnZXN0Rm9ybS5v
bnN1Ym1pdCA9IGZ1bmN0aW9uICgpIHsgCgkJICAgICAgICAgICAgICAgICAgICAgICAgIHNfY29k
ZV9saW5rdHJhY2soJ0hvcml6TmF2LVRyYXZlbC1UeXBlZFNlYXJjaCcpOyAKCQkJCQkJCQkJCSBy
ZXR1cm4gdHJ1ZTsgCgkJCQkJCQkJCSB9OyovCiAgfSwKCiAgLy9lZGl0ZWQgYnkgRWl0YW4gOS82
LzA2CiAgbWFya1ByZXZpb3VzOiBmdW5jdGlvbigpIHsKICAgIGlmKHRoaXMuaW5kZXggPiAtMSkg
dGhpcy5pbmRleC0tCiAgICAgIGVsc2UgdGhpcy5pbmRleCA9IHRoaXMuZW50cnlDb3VudC0xOwog
IH0sCiAgCiAgbWFya05leHQ6IGZ1bmN0aW9uKCkgewogICAgaWYodGhpcy5pbmRleCA8IHRoaXMu
ZW50cnlDb3VudC0xKSB0aGlzLmluZGV4KysKICAgICAgZWxzZSB0aGlzLmluZGV4ID0gLTE7CiAg
fSwKICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICBnZXRVcGRhdGVkQ2hvaWNlczog
ZnVuY3Rpb24oKSB7CiAgICB0aGlzLnVwZGF0ZUNob2ljZXModGhpcy5vcHRpb25zLnNlbGVjdG9y
KHRoaXMpKTsKCgkgLy9hZGRlZCBieSBFaXRhbiA5LzYKCSB0aGlzLmluZGV4ID0gLTE7CgkgdGhp
cy5yZW5kZXIoKTsKICB9LAoKICBvbkNsaWNrOiBmdW5jdGlvbihldmVudCkgewogICAgdmFyIGVs
ZW1lbnQgPSBFdmVudC5maW5kRWxlbWVudChldmVudCwgJ0xJJyk7CiAgICB0aGlzLmluZGV4ID0g
ZWxlbWVudC5hdXRvY29tcGxldGVJbmRleDsKICAgIHZhciB2YWx1ZSA9IEVsZW1lbnQuY29sbGVj
dFRleHROb2Rlc0lnbm9yZUNsYXNzKHRoaXMuZ2V0Q3VycmVudEVudHJ5KCksICdpbmZvcm1hbCcp
OwoJIAogICAgLy90aGlzLnNlbGVjdEVudHJ5KCk7CiAgICAKCSB0aGlzLmhpZGUoKTsKCgkgLy8g
YWRkZWQgYnkgRWl0YW4gOC8zMC8wNgoKICAgIC8vIG9tbml0dXJlIHJlcG9ydGluZwoJIC8vc19j
b2RlX2xpbmt0cmFjaygnSG9yaXpOYXYtVHJhdmVsLUF1dG9TdWdnZXN0Jyk7CgoJIHZhciB1cmwg
PSB0aGlzLmdldFVybEZyb21OYW1lKHZhbHVlKTsKCSB2YXIgc3ViU3RyID0gdGhpcy5nZXRTdWJ0
eXBlU3RyaW5nKHRoaXMuZmluZEVsZW1lbnRTdWJ0eXBlKHZhbHVlKSk7CgkgCgkgd2luZG93Lmxv
Y2F0aW9uID0gdGhpcy5nZXRTZXJ2ZXJOYW1lKCkgKyAiaGVhbHRoL2d1aWRlcy8iICsgc3ViU3Ry
ICsgIi8iICsgdXJsICsgIi9vdmVydmlldy5odG1sP1dULnpfZ3NhYz0xIjsgCiAgfSwKCiAgc2Vs
ZWN0RW50cnk6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlOwogICAg
dGhpcy51cGRhdGVFbGVtZW50KHRoaXMuZ2V0Q3VycmVudEVudHJ5KCkpOwoKCSAvL2FkZGVkIGJ5
IEVpdGFuIDgvMzAvMDYKCSAvL3RoaXMuZWxlbWVudC5wYXJlbnROb2RlLnN1Ym1pdCgpOwoKCSAv
L2FkZGVkIGJ5IEVpdGFuIDkvMTMvMDYKCSB2YXIgZWxlbWVudCA9IHRoaXMuZ2V0Q3VycmVudEVu
dHJ5KCk7CiAgICB0aGlzLmluZGV4ID0gZWxlbWVudC5hdXRvY29tcGxldGVJbmRleDsKICAgIHZh
ciB2YWx1ZSA9IEVsZW1lbnQuY29sbGVjdFRleHROb2Rlc0lnbm9yZUNsYXNzKGVsZW1lbnQsICdp
bmZvcm1hbCcpOwoJIAoJIAoJIHRoaXMuaGlkZSgpCgoJIC8vIG9tbml0dXJlIHJlcG9ydGluZwoJ
IC8vc19jb2RlX2xpbmt0cmFjaygnSG9yaXpOYXYtVHJhdmVsLUF1dG9TdWdnZXN0Jyk7CgkgCgkg
dmFyIHVybCA9IHRoaXMuZ2V0VXJsRnJvbU5hbWUodmFsdWUpOwoJIHZhciBzdWJTdHIgPSB0aGlz
LmdldFN1YnR5cGVTdHJpbmcodGhpcy5maW5kRWxlbWVudFN1YnR5cGUodmFsdWUpKTsKCSAKCSB3
aW5kb3cubG9jYXRpb24gPSB0aGlzLmdldFNlcnZlck5hbWUoKSArICJoZWFsdGgvZ3VpZGVzLyIg
KyBzdWJTdHIgKyAiLyIgKyB1cmwgKyAiL292ZXJ2aWV3Lmh0bWw/V1Quel9nc2FjPTEiOyAKICB9
LCAKCiAgZmluZEVsZW1lbnRTdWJ0eXBlIDogZnVuY3Rpb24odmFsKSB7CgkgIGZvciAodmFyIGk9
MDsgaTx0aGlzLm9wdGlvbnMuYXJyYXkubGVuZ3RoOyArK2kpIHsKCQkgIGlmICh0aGlzLm9wdGlv
bnMuYXJyYXlbaV1bMF0gPT0gdmFsKSB7IHJldHVybiB0aGlzLm9wdGlvbnMuYXJyYXlbaV1bMV07
IH0KCSAgfQoJICByZXR1cm4gLTE7CiAgfSwKCiAgZ2V0VXJsRnJvbU5hbWUgOiBmdW5jdGlvbihu
YW1lKSB7CgluYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpOwoJbmFtZSA9IG5hbWUucmVwbGFjZSgv
XHMvZywgIi0iKS5yZXBsYWNlKC8tKy9nLCAiLSIpLnJlcGxhY2UoLyYjW147XSs7LywgIiIpLnJl
cGxhY2UoL1teYS16MC05XC1dL2csICIiKTsKCXJldHVybiBuYW1lOwogIH0sCgogIGdldFNlcnZl
ck5hbWUgOiBmdW5jdGlvbigpIHsKICAgICBpZiAodGhpcy5zZXJ2ZXJUeXBlID09ICJkZXZlbG9w
bWVudCIpIHsgcmV0dXJuICJodHRwOi8vZGhlYWx0aC5wcnZ0Lm55dGltZXMuY29tLyI7IH0KCSBl
bHNlIGlmICh0aGlzLnNlcnZlclR5cGUgPT0gInN0YWdpbmciKSB7IHJldHVybiAiaHR0cDovL3No
ZWFsdGgucHJ2dC5ueXRpbWVzLmNvbS8iOyB9CgkgZWxzZSB7IHJldHVybiAiaHR0cDovL2hlYWx0
aC5ueXRpbWVzLmNvbS8iOyB9CiAgfSwKCiAgZ2V0U3VidHlwZVN0cmluZyA6IGZ1bmN0aW9uKHZh
bCkgewoJICBzd2l0Y2godmFsKSB7CgkJICBjYXNlIDE6IHJldHVybiAiZGlzZWFzZSI7IGJyZWFr
OwoJCSAgY2FzZSAyOiByZXR1cm4gImluanVyeSI7IGJyZWFrOwoJCSAgY2FzZSAzOiByZXR1cm4g
Im51dHJpdGlvbiI7IGJyZWFrOwoJCSAgY2FzZSA0OiByZXR1cm4gInBvaXNvbiI7IGJyZWFrOwoJ
CSAgY2FzZSA1OiByZXR1cm4gInNwZWNpYWx0b3BpYyI7IGJyZWFrOwoJCSAgY2FzZSA2OiByZXR1
cm4gInN1cmdlcnkiOyBicmVhazsKCQkgIGNhc2UgNzogcmV0dXJuICJzeW1wdG9tcyI7IGJyZWFr
OwoJCSAgY2FzZSA4OiByZXR1cm4gInRlc3QiOyBicmVhazsKCQkgIGRlZmF1bHQ6IHJldHVybiAi
IjsKCSAgfQogIH0sCgogIHNldE9wdGlvbnM6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgIHRoaXMu
b3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICBjaG9pY2VzOiAxMCwKICAgICAgcGFydGlh
bFNlYXJjaDogdHJ1ZSwKICAgICAgcGFydGlhbENoYXJzOiAyLAogICAgICBpZ25vcmVDYXNlOiB0
cnVlLAogICAgICBmdWxsU2VhcmNoOiBmYWxzZSwKICAgICAgc2VsZWN0b3I6IGZ1bmN0aW9uKGlu
c3RhbmNlKSB7CiAgICAgICAgdmFyIHJldCAgICAgICA9IFtdOyAvLyBCZWdpbm5pbmcgbWF0Y2hl
cwogICAgICAgIHZhciBwYXJ0aWFsICAgPSBbXTsgLy8gSW5zaWRlIG1hdGNoZXMKICAgICAgICB2
YXIgZW50cnkgICAgID0gaW5zdGFuY2UuZ2V0VG9rZW4oKTsKICAgICAgICB2YXIgY291bnQgICAg
ID0gMDsKCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnN0YW5jZS5vcHRpb25zLmFycmF5
Lmxlbmd0aCAmJiAgCiAgICAgICAgICByZXQubGVuZ3RoIDwgaW5zdGFuY2Uub3B0aW9ucy5jaG9p
Y2VzIDsgaSsrKSB7IAoKICAgICAgICAgIHZhciBlbGVtID0gaW5zdGFuY2Uub3B0aW9ucy5hcnJh
eVtpXVswXTsKICAgICAgICAgIHZhciBmb3VuZFBvcyA9IGluc3RhbmNlLm9wdGlvbnMuaWdub3Jl
Q2FzZSA/IAogICAgICAgICAgICBlbGVtLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihlbnRyeS50b0xv
d2VyQ2FzZSgpKSA6IAogICAgICAgICAgICBlbGVtLmluZGV4T2YoZW50cnkpOwoKICAgICAgICAg
IHdoaWxlIChmb3VuZFBvcyAhPSAtMSkgewogICAgICAgICAgICBpZiAoZm91bmRQb3MgPT0gMCkg
eyAKICAgICAgICAgICAgICByZXQucHVzaCgiPGxpPjxzdHJvbmc+IiArIGVsZW0uc3Vic3RyKDAs
IGVudHJ5Lmxlbmd0aCkgKyAiPC9zdHJvbmc+IiArIAogICAgICAgICAgICAgICAgZWxlbS5zdWJz
dHIoZW50cnkubGVuZ3RoKSArICI8L2xpPiIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICB9IGVsc2UgaWYgKGVudHJ5Lmxlbmd0aCA+PSBpbnN0YW5jZS5vcHRpb25zLnBhcnRpYWxD
aGFycyAmJiAKICAgICAgICAgICAgICBpbnN0YW5jZS5vcHRpb25zLnBhcnRpYWxTZWFyY2ggJiYg
Zm91bmRQb3MgIT0gLTEpIHsKICAgICAgICAgICAgICBpZiAoaW5zdGFuY2Uub3B0aW9ucy5mdWxs
U2VhcmNoIHx8IC9ccy8udGVzdChlbGVtLnN1YnN0cihmb3VuZFBvcy0xLDEpKSkgewogICAgICAg
ICAgICAgICAgcGFydGlhbC5wdXNoKCI8bGk+IiArIGVsZW0uc3Vic3RyKDAsIGZvdW5kUG9zKSAr
ICI8c3Ryb25nPiIgKwogICAgICAgICAgICAgICAgICBlbGVtLnN1YnN0cihmb3VuZFBvcywgZW50
cnkubGVuZ3RoKSArICI8L3N0cm9uZz4iICsgZWxlbS5zdWJzdHIoCiAgICAgICAgICAgICAgICAg
IGZvdW5kUG9zICsgZW50cnkubGVuZ3RoKSArICI8L2xpPiIpOwogICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3VuZFBvcyA9
IGluc3RhbmNlLm9wdGlvbnMuaWdub3JlQ2FzZSA/IAogICAgICAgICAgICAgIGVsZW0udG9Mb3dl
ckNhc2UoKS5pbmRleE9mKGVudHJ5LnRvTG93ZXJDYXNlKCksIGZvdW5kUG9zICsgMSkgOiAKICAg
ICAgICAgICAgICBlbGVtLmluZGV4T2YoZW50cnksIGZvdW5kUG9zICsgMSk7CgogICAgICAgICAg
fQogICAgICAgIH0KICAgICAgICBpZiAocGFydGlhbC5sZW5ndGgpCiAgICAgICAgICByZXQgPSBy
ZXQuY29uY2F0KHBhcnRpYWwuc2xpY2UoMCwgaW5zdGFuY2Uub3B0aW9ucy5jaG9pY2VzIC0gcmV0
Lmxlbmd0aCkpCgkJICAKICAgICAgICByZXR1cm4gIjx1bD4iICsgcmV0LmpvaW4oJycpICsgIjwv
dWw+IjsKICAgICAgfQogICAgfSwgb3B0aW9ucyB8fCB7fSk7CiAgfQp9KTsK1AAFABEABwAIAKEA
ogAUAKNfEB1odHRwOi8vZC55aW1nLmNvbS9kcy9iYWRnZS5qc08RBHdicGxpc3QwMNQBAgMEBQYJ
ClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VS
ZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAkCwwmLC0zHjQ1U1RVVldYWVpbXF1eX2BhYmNk
ZWZnaGlqa29wVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMk
MTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgCOAAoAiEAgQAIAGgAeABYAIEAeAABAB0w0n
KCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxAdaHR0cDovL2QueWltZy5jb20vZHMvYmFk
Z2UuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsHPS75
EMjTDTY3ODlGV05TLmtleXNaTlMub2JqZWN0c4AhrDo7PD0+P0BBQkNERYAJgAqAC4AMgA2ADoAP
gBCAEYASgBOAFKxHSElKS0xNTk9QUVKAFYAWgBeAGIAZgBqAG4AcgB2AHoAfgCBUVmFyeV1DYWNo
ZS1Db250cm9sV0V4cGlyZXNTQWdlXUFjY2VwdC1SYW5nZXNfEBBDb250ZW50LUVuY29kaW5nXENv
bnRlbnQtVHlwZVZTZXJ2ZXJURGF0ZV5Db250ZW50LUxlbmd0aFpDb25uZWN0aW9uXUxhc3QtTW9k
aWZpZWRfEA9BY2NlcHQtRW5jb2RpbmddbWF4LWFnZT04NjQwMF8QHVR1ZSwgMTEgTm92IDIwMDgg
MjM6MDA6MDMgR01UVDIzMjBVYnl0ZXNUZ3ppcF8QGGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFpZ
VFMvMS4xNy44XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzowMDowMyBHTVRUMjMzOFprZWVwLWFsaXZl
XxAdV2VkLCAwMiBKdWwgMjAwOCAxNzo1NTo1OCBHTVTSLi9sbaNtbjJfEBNOU011dGFibGVEaWN0
aW9uYXJ5XE5TRGljdGlvbmFyeREYM9IuL3Fyo3JzMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJM
UmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIsAkQCsALMAtgC5AL0AwQDEAMcAygDNANAA
0wDWANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPEA+AEAAQwBDgEQARIBMgE3AUABSwFOAVQBXQFm
AWgBbwF3AYIBhAGRAZMBlQGXAZkBmwGdAZ8BoQGjAaUBpwGpAbYBuAG6AbwBvgHAAcIBxAHGAcgB
ygHMAc4B0wHhAekB7QH7Ag4CGwIiAicCNgJBAk8CYQJvAo8ClAKaAp8CugLFAuUC6gL1AxUDGgMe
AzQDQQNEA0kDTQNhAAAAAAAAAgEAAAAAAAAAdAAAAAAAAAAAAAAAAAAAA29PERgzKGZ1bmN0aW9u
KCl7dmFyIFQ9Imh0dHA6Ly9idXp6LnlhaG9vLmNvbSI7dmFyIEw9d2luZG93LmxvY2F0aW9uLmhy
ZWYucmVwbGFjZSgvaHR0cDpcL1wvKFteXC86XSspLiokLywiJDEiKS5zcGxpdCgiLiIpLnNsaWNl
KC0yKS5qb2luKCIuIik7dmFyIEY9Imh0dHA6Ly9sLnlpbWcuY29tL2RzL29yaW9uIjt2YXIgRz0i
MC4zLjkiO3ZhciBRPUYrIi8iK0c7dmFyIEQ9d2luZG93LnlhaG9vQnV6ek9uTG9hZHx8ZnVuY3Rp
b24oKXt9O3ZhciBDPXdpbmRvdy55YWhvb0J1enpBcnRpY2xlSWQ7dmFyIEg9d2luZG93LnlhaG9v
QnV6elNob3dCcmFuZGluZzt2YXIgSj13aW5kb3cueWFob29CdXp6QmFkZ2VUeXBlO3ZhciBTPWZ1
bmN0aW9uKFgsWSxXLFosVil7TSh7bmFtZToiZnJvbSIsdmFsdWU6InB1Ymxpc2hlciJ9KTtNKHtu
YW1lOiJhc3NldHR5cGUiLHZhbHVlOiJhcnRpY2xlIn0pO00oe25hbWU6InB1Ymxpc2hlcnVybiIs
dmFsdWU6WVswXX0pO00oe25hbWU6Imd1aWQiLHZhbHVlOllbMV19KTtNKHtuYW1lOiIuZG9uZSIs
dmFsdWU6Ii9hcnRpY2xlLyIrWVswXSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNv
bXBvbmVudChZWzFdKSl9KTtNKHtuYW1lOiJsb2MiLHZhbHVlOkx9KTtNKHtuYW1lOiJ2b3RldHlw
ZSIsdmFsdWU6MX0pO1IoWCxXLFosTysiL2FydGljbGUvIitZWzBdKyIvIitlbmNvZGVVUklDb21w
b25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KFlbMV0pKSxWKTtELmNhbGwoWCk7fTt2YXIgQj1bXTt2
YXIgTj1mdW5jdGlvbihZLFcpe3ZhciBWPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoWSk7Vi5hdHRh
Y2hFdmVudExpc3RlbmVyPVA7Vi5yZW1vdmVFdmVudExpc3RlbmVyPVA7Vi5hdHRhY2hFdmVudD1Q
O1YuZGV0YXRjaEV2ZW50PVA7Zm9yKHZhciBaIGluIFcpe2lmKFo9PT0ic3R5bGUiKXtmb3IodmFy
IFggaW4gV1taXSl7Vi5zdHlsZVtYXT1XW1pdW1hdO319ZWxzZXtWW1pdPVdbWl07fX1yZXR1cm4g
Vjt9O3ZhciBSPWZ1bmN0aW9uKFgsYixkLFcsWSl7dmFyIGMsZjt2YXIgWj0nPHNwYW4gc3R5bGU9
ImN1cnNvcjpwb2ludGVyO2N1cnNvcjpoYW5kO2NvbG9yOiM2NjY7bGluZS1oZWlnaHQ6MTBweDtk
aXNwbGF5OmJsb2NrO21hcmdpbi10b3A6M3B4O2ZvbnQtc2l6ZToxMHB4O2ZvbnQtZmFtaWx5OlZl
cmRhbmEsVGFob21hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO3BhZGRpbmctcmlnaHQ6NXB4
OyI+b24gWWFob28hPC9zcGFuPic7dmFyIGU9e2Zvcm06WCxocmVmOlcsb25jbGljazpJfTt2YXIg
Vj17InRleHREZWNvcmF0aW9uIjoibm9uZSIsIndpZHRoIjoiNzRweCIsImRpc3BsYXkiOiJibG9j
ayIsInRleHRBbGlnbiI6InJpZ2h0In07c3dpdGNoKGIpe2Nhc2UidGV4dCI6Zj0nPHNwYW4gc3R5
bGU9ImN1cnNvcjpwb2ludGVyO2N1cnNvcjpoYW5kO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmct
bGVmdDoyMHB4O2xpbmUtaGVpZ2h0OjE2cHg7Ij48c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7
Y3Vyc29yOmhhbmQ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7
YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoJytRKycvaW1nL2JhZGdlLWxvZ28ucG5nKSB0b3Ag
bGVmdCBuby1yZXBlYXQ7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDsiPjwvc3Bhbj5ZYWhvbyEgQnV6
ejwvc3Bhbj4nO2UuaW5uZXJIVE1MPWY7YnJlYWs7Y2FzZSJ0ZXh0YnV0dG9uIjpmPSc8c3BhbiBz
dHlsZT0iY3Vyc29yOnBvaW50ZXI7Y3Vyc29yOmhhbmQ7cG9zaXRpb246cmVsYXRpdmU7bGVmdDot
NHB4O3BhZGRpbmctbGVmdDoyNHB4O2ZvbnQtc2l6ZTo4MCU7Zm9udC1mYW1pbHk6VmVyZGFuYSxU
YWhvbWEsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdo
dDoyMnB4O2hlaWdodDoyMnB4O2NvbG9yOiMwMGM7YmFja2dyb3VuZDp1cmwoJytRKycvaW1nL2Jh
ZGdlLXRleHRidXR0b24ucG5nKSBsZWZ0IGNlbnRlciBuby1yZXBlYXQ7Ij5CdXp6IHVwITwvc3Bh
bj4nO2Uuc3R5bGU9e3RhcmdldDoiX25ldyIsd2lkdGg6ImF1dG8iLHBvc2l0aW9uOiJyZWxhdGl2
ZSIsbGVmdDoiNHB4IixkaXNwbGF5OiJibG9jayIsd2lkdGg6IjgwcHgiLGJhY2tncm91bmQ6InVy
bCgiK1ErIi9pbWcvYmFkZ2UtdGV4dGJ1dHRvbi5wbmcpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQi
fTtlLmlubmVySFRNTD1mO2JyZWFrO2Nhc2UibG9nbyI6Zj0nPHNwYW4gc3R5bGU9ImN1cnNvcjpw
b2ludGVyO2N1cnNvcjpoYW5kO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDoyMHB4O2xp
bmUtaGVpZ2h0OjE2cHg7Ij48c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7Y3Vyc29yOmhhbmQ7
ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7YmFja2dyb3VuZDp0
cmFuc3BhcmVudCB1cmwoJytRKycvaW1nL2JhZGdlLWxvZ28ucG5nKSB0b3AgbGVmdCBuby1yZXBl
YXQ7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDsiPjwvc3Bhbj48L3NwYW4+JztlLmlubmVySFRNTD1m
O2JyZWFrO2Nhc2Uic21hbGwiOmY9JzxzcGFuIHN0eWxlPSJjdXJzb3I6cG9pbnRlcjtjdXJzb3I6
aGFuZDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybCgnK1ErJy9pbWcvYmFkZ2Utc21hbGwucG5n
KSB0b3AgbGVmdCBuby1yZXBlYXQ7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtwYWRkaW5nLXRvcDoy
MnB4O3dpZHRoOjc0cHg7dGV4dC1pbmRlbnQ6LTk5OWVtO292ZXJmbG93OmhpZGRlbiI+QnV6eiB1
cCE8L3NwYW4+JztpZihkKXtmKz1aO31lLnN0eWxlPVY7ZS5pbm5lckhUTUw9ZjticmVhaztjYXNl
ImxhcmdlIjpmPSc8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7Y3Vyc29yOmhhbmQ7YmFja2dy
b3VuZDp0cmFuc3BhcmVudCB1cmwoJytRKycvaW1nL2JhZGdlLWxhcmdlLnBuZykgdG9wIGxlZnQg
bm8tcmVwZWF0O2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7cGFkZGluZy10b3A6MzNweDt3aWR0aDox
MDlweDt0ZXh0LWluZGVudDotOTk5ZW07b3ZlcmZsb3c6aGlkZGVuIj5CdXp6IHVwITwvc3Bhbj4n
O2lmKGQpe2YrPVo7fWUuc3R5bGU9VjtWLndpZHRoPSIxMDlweCI7ZS5pbm5lckhUTUw9ZjticmVh
aztjYXNlIm1lZGl1bSI6ZGVmYXVsdDpmPSc8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7Y3Vy
c29yOmhhbmQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoJytRKycvaW1nL2JhZGdlLW1lZGl1
bS5wbmcpIHRvcCBsZWZ0IG5vLXJlcGVhdDtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3BhZGRpbmct
dG9wOjI3cHg7d2lkdGg6OTFweDt0ZXh0LWluZGVudDotOTk5ZW07b3ZlcmZsb3c6aGlkZGVuIj5C
dXp6IHVwITwvc3Bhbj4nO2lmKGQpe2YrPVo7fWUuc3R5bGU9VjtWLndpZHRoPSI5MXB4IjtlLmlu
bmVySFRNTD1mO2JyZWFrO312YXIgZz1OKCJzcGFuIix7aWQ6WC5pZCxjbGFzc05hbWU6WC5jbGFz
c05hbWV9KTtnLmFwcGVuZENoaWxkKE4oImEiLGUpKTtYLmlkPVguaWQrIi1mb3JtIjtZLnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKGcsWSk7WS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKFkpO0soKTt9
O3ZhciBNPWZ1bmN0aW9uKFcpe3ZhciBWPU4oImlucHV0IixXKTtCLnB1c2goVik7fTt2YXIgST1m
dW5jdGlvbihYKXtYPVh8fHdpbmRvdy5ldmVudDt2YXIgVj1YLnRhcmdldHx8WC5zcmNFbGVtZW50
O3doaWxlKFYmJlYudGFnTmFtZSE9PSJBIil7Vj1WLnBhcmVudE5vZGU7fWlmKCFWKXtyZXR1cm4g
dHJ1ZTt9dmFyIFc9Vi5mb3JtO1UoVyk7aWYodHlwZW9mIChYLnByZXZlbnREZWZhdWx0KT09PSJm
dW5jdGlvbiIpe1gucHJldmVudERlZmF1bHQoKTt9WC5yZXR1cm5WYWx1ZT1mYWxzZTtYLmNhbmNl
bEJ1YmJsZT10cnVlO1guc3RvcFByb3BhZ2F0aW9uJiZYLnN0b3BQcm9wYWdhdGlvbigpO3JldHVy
biBmYWxzZTt9O3ZhciBQPWZ1bmN0aW9uKFYpe3JldHVybiB0cnVlO307dmFyIFU9ZnVuY3Rpb24o
Wil7aWYoIVope3JldHVybiB0cnVlO31mb3IodmFyIFk9Qi5sZW5ndGgtMTtZPi0xO1ktLSl7Wi5h
cHBlbmRDaGlsZChCW1ldKTt9Wi5vbnN1Ym1pdD1QO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Wik7Wi5zdWJtaXQoKTt2YXIgVz1aLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpO2Zvcih2
YXIgWT0wLFY9Vy5sZW5ndGg7WTxWO1krKyl7dHJ5e1dbWV0ucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChXW1ldKTt9Y2F0Y2goWCl7Y29udGludWU7fX1aLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoWik7
fTt2YXIgQT1mdW5jdGlvbigpe3ZhciBZPSJ5YWhvb0J1enpCYWRnZSIsVz1ZLFY9MCxYO3doaWxl
KChYPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFcpKSYmWC5fX19feWI9PTF8fGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKFcrIi1mb3JtIikpe1c9WSsiLSIrVjtWKys7fWlmKFgpe1guX19fX3liPTE7
fXJldHVybiBXO30oKTt2YXIgRT1mdW5jdGlvbigpe3ZhciBXPUE7Zm9yKHZhciBWPTA7Vjw1O1Yr
Kyl7Vys9U3RyaW5nLmZyb21DaGFyQ29kZShNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjYpKzk3
KTt9ZG9jdW1lbnQud3JpdGUoJzxzcGFuIGlkPSInK1crJyIgc3R5bGU9InBvc2l0aW9uOmFic29s
dXRlO2xlZnQ6LTk5OWVtO2hlaWdodDowO3dpZHRoOjA7Ij48L3NwYW4+Jyk7cmV0dXJuIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKFcpO30oKTtFLl9fX195Yj0xO3ZhciBLO3ZhciBPO3dpbmRvdy5z
ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Sz1mdW5jdGlvbigpe2lmKEUmJkUucGFyZW50Tm9kZSl7RS5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKEUpO31ZPW51bGw7fTt2YXIgVz1mdW5jdGlvbigpe2lmKCFF
KXtyZXR1cm4gdW5kZWZpbmVkO312YXIgYj1FO3doaWxlKGImJighYi50YWdOYW1lfHxiLnRhZ05h
bWUhPT0iU0NSSVBUIikpe2lmKGImJmIucHJldmlvdXNTaWJsaW5nJiZiLnByZXZpb3VzU2libGlu
Zy50YWdOYW1lJiZiLnByZXZpb3VzU2libGluZy5jaGlsZE5vZGVzLmxlbmd0aCl7Yj1iLnByZXZp
b3VzU2libGluZy5sYXN0Q2hpbGQ7fWVsc2V7aWYoYj09PWIucGFyZW50Tm9kZS5maXJzdENoaWxk
KXtiPWIucGFyZW50Tm9kZTt9ZWxzZXtiPWIucHJldmlvdXNTaWJsaW5nO319fWlmKCFiKXtyZXR1
cm4gdW5kZWZpbmVkO31iLl9fX195Yj0xO3JldHVybiBiO30oKTtPPShXJiZXLnNyYyl8fCIiO2lm
KE8uc3Vic3RyKDAsMSk9PT0iLyIpe089Imh0dHA6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0O31P
PU8ucmVwbGFjZSgvXmh0dHA6XC9cLyhbXlwvXSsueWFob28uY29tKSg6WzAtOV0rKT8oXC8uKik/
LywiaHR0cDovLyQxJDIiKTtpZighTy5tYXRjaCgvXmh0dHA6XC9cLyhbXlwvXSsueWFob28uY29t
KSg6WzAtOV0rKT8kLykpe089VDt9dmFyIFo9ZnVuY3Rpb24oKXt2YXIgYj0iIjtpZihDJiZ0eXBl
b2YgKEMpPT09InN0cmluZyIpe2I9Qzt9ZWxzZXtpZihXJiZXLmlubmVySFRNTCYmVy5zcmMpe2I9
Vy5pbm5lckhUTUwucmVwbGFjZSgvW1xuXHJcc1x0XSsvZywiICIpLnJlcGxhY2UoL15ccysvLCIi
KS5yZXBsYWNlKC9ccyskLywiIik7fX1iPWIuc3BsaXQoIjoiKTtyZXR1cm5bYi5zaGlmdCgpLGIu
am9pbigiOiIpXTt9KCk7dmFyIFg9ZnVuY3Rpb24oKXt2YXIgYjtpZihKJiZ0eXBlb2YgKEopPT09
InN0cmluZyIpe2I9Sjt9ZWxzZXtpZihXKXtiPVcuZ2V0QXR0cmlidXRlKCJiYWRnZXR5cGUiKTt9
fXJldHVybiBifHwibWVkaXVtIjt9KCk7dmFyIGE9ZnVuY3Rpb24oKXt2YXIgYjtpZihIJiZ0eXBl
b2YgKEgpIT09InVuZGVmaW5lZCIpe2I9SDt9ZWxzZXtpZihXKXtiPVcuZ2V0QXR0cmlidXRlKCJz
aG93YnJhbmRpbmciKTt9fWlmKCFpc05hTihiKSl7Yj0oK2IpO31lbHNle2lmKGI9PT0iZmFsc2Ui
fHxiPT09Im5vInx8Yj09PSJvZmYiKXtiPWZhbHNlO319cmV0dXJuICEhYjt9KCk7dmFyIFY9ZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoQSl8fEU7Vi5fX19feWI9MTt2YXIgWT1mdW5jdGlvbigpe2lm
KCFWKXtyZXR1cm4gdW5kZWZpbmVkO312YXIgYj1OKCJmb3JtIix7aWQ6QSsiLWZvcm0iLGNsYXNz
TmFtZToieWFob29CdXp6QmFkZ2UtZm9ybSIsYWN0aW9uOk8rIi92b3RlLyIsbWV0aG9kOiJwb3N0
Iix0YXJnZXQ6Il9uZXciLF9fX195YjoxLHN0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdo
dDoiMXB4Iix3aWR0aDoiMXB4Iix2aXNpYmlsaXR5OiJoaWRkZW4ifX0pO1YuaWQ9IiI7cmV0dXJu
IGI7fSgpO1MoWSxaLFgsYSxWKTt9LDApO30pKCk71AAFABEABwAIAKUApgB5AKdfEE9odHRwOi8v
Z3JhcGhpY3M4Lm55dGltZXMuY29tL2FkeC9pbWFnZXMvQURTLzE4LzYzL2FkLjE4NjMzNS9zZG1f
YXdfODh4MzFfdHcuZ2lmTxEEAWJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hp
dmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJj
aGl2ZXKvEBwLDCYsLTMeNDVLTE1OT1BRUlNUVVZXWFlaW19gVSRudWxs3Q0ODxAREhMUFRYXGBka
GxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQx
gBuAAoAaEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIAD
XxBPaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9hZHgvaW1hZ2VzL0FEUy8xOC82My9hZC4x
ODYzMzUvc2RtX2F3Xzg4eDMxX3R3LmdpZtIuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNV
UkxYTlNPYmplY3QjQa2R+wdmJi0QyNMNNjc4OUJXTlMua2V5c1pOUy5vYmplY3RzgBmoOjs8PT4/
QEGACYAKgAuADIANgA6AD4AQqENERUZHSElKgBGAEoATgBSAFYAWgBeAGF1BY2NlcHQtUmFuZ2Vz
VlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25d
TGFzdC1Nb2RpZmllZFVieXRlc18QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFZaW1hZ2UvZ2lmVDc1
MTZfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQzIEdNVF8QDyIxZDVjLTQ5MGY0MmJhIlprZWVw
LWFsaXZlXxAdTW9uLCAwMyBOb3YgMjAwOCAxODoyODoxMCBHTVTSLi9cXaNdXjJfEBNOU011dGFi
bGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeREdXNIuL2Fio2JjMl8QEU5TSFRUUFVSTFJlc3BvbnNl
XU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8A
wgDFAMgAywDOANEA0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBXAFhAWoBdQF4
AX4BhwGQAZIBmQGhAawBrgG3AbkBuwG9Ab8BwQHDAcUBxwHQAdIB1AHWAdgB2gHcAd4B4AHuAfUC
AgIRAhYCGwImAjQCOgJTAl0CYgKCApQCnwK/AsQCyALeAusC7gLzAvcDCwAAAAAAAAIBAAAAAAAA
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
rxJyEAaRUuASO3jGJvhABDmkgKbJlSQIBRCH3jbiD9HEABEagQFbY6AFlkgBDL7QinDUgA/1qMcW
Ll2GDljAAmWwwAm0fe0mnMDT/gD1ZrcaRoMIQAkAuIaTQ/ADUz0hDPwIQ2ADsGcAXKDP6t7AY/0B
AGEqQQnD3ECNjamEC6SgGHlIQQ02/AZodIEONLBANYjRgYpnmxjlqAYsiAGLE5xAswfYLrmT6D4t
EqR9pUBmWu+SXLsfcDJUKnfmYy/RiRBc4hTJAEYrKlwDPbzhDRVoQjWqkfEOVEPiZSAGxy0ACwt0
oCFQj7rUp94QHQQEADvUAAUAEQAHAAgAqQCqAKsArF8QT2h0dHA6Ly9ncmFwaGljczgubnl0aW1l
cy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvaGVhbHRoLzExMTAtbmF0LXdlYkhFQVJULTE5MC5qcGdP
EQQCYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGG
oNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QHAsMJiwtMx40
NUtMTU5PUFFSU1RVVldYWVpbX2BVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNs
YXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAG4ACgBoQCBAAgAaAB4AF
gAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEE9odHRwOi8vZ3JhcGhp
Y3M4Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzExLzEwL2hlYWx0aC8xMTEwLW5hdC13ZWJIRUFS
VC0xOTAuanBn0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7
B2XTuxDI0w02Nzg5QldOUy5rZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAP
gBCoQ0RFRkdISUqAEYASgBOAFIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQt
VHlwZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5
dGVzXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMVppbWFnZS9qcGVnVDY3MzRfEB1Nb24sIDEwIE5v
diAyMDA4IDIzOjM4OjQzIEdNVF8QDyIxYTRlLTQ5MTdhNGNjIlprZWVwLWFsaXZlXxAdTW9uLCAx
MCBOb3YgMjAwOCAwMzowNDo0NCBHTVTSLi9cXaNdXjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5T
RGljdGlvbmFyeREaTtIuL2Fio2JjMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UA
CAARABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8AwgDFAMgAywDOANEA0wDV
ANcA2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBXAFhAWoBdQF4AX4BhwGQAZIBmQGhAawB
rgG3AbkBuwG9Ab8BwQHDAcUBxwHQAdIB1AHWAdgB2gHcAd4B4AHuAfUCAgIRAhYCGwImAjQCOgJT
Al4CYwKDApUCoALAAsUCyQLfAuwC7wL0AvgDDAAAAAAAAAIBAAAAAAAAAGQAAAAAAAAAAAAAAAAA
AAMaWmltYWdlL2pwZWdPERpO/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA
/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQ
DA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAfgC+AwERAAIRAQMRAf/E
AI4AAAIDAQEBAAAAAAAAAAAAAAAEAQMFAgYHAQEBAQAAAAAAAAAAAAAAAAAAAQIQAAIBAwIEAwMI
BggEBwAAAAECAwARBBIFITETBkEiFFEyI2FxkTNzo1QVgUJSk7MHobHRstIkNRZickPTolM0lFVW
FxEBAQEAAgMBAQAAAAAAAAAAAAERIQIxURJBIv/aAAwDAQACEQMRAD8A+zjtPuKfDnWKRR62SPJg
n6hvDHGG+Dbn8Xy8uVz+ytwdzdh3grgJHj3eafNlyAjgCFZdTY6u4HnERZfLy4W4igpj7V7nDP1Z
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
dGlvbj0zOTQ4MTBPEQQTYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJY
JG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZl
cq8QGwsMIigpLzAxMkhJSktMTU5PUFFSU1RVVlRXW1UkbnVsbNsNDg8QERITFBUWFxgZGhscHR4f
IBohViRjbGFzc1IkM1IkOFIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAagAIQCIAGgAeABYAIEAUQ
ABAB0w0jJCUmJ1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBPaHR0cDovL2FkLnlpZWxkbWFu
YWdlci5jb20vc3Q/YWRfdHlwZT1hZCZhZF9zaXplPTMzNngyODAsMzAweDI1MCZzZWN0aW9uPTM5
NDgxMNIqKywtWCRjbGFzc2VzWiRjbGFzc25hbWWiLS5VTlNVUkxYTlNPYmplY3QjQa2R+wdvWMEQ
AhDI0w0zNDU2P1dOUy5rZXlzWk5TLm9iamVjdHOAGag3ODk6Ozw9PoAJgAqAC4AMgA2ADoAPgBCo
QEFCQ0RFRkeAEYASgBOAFIAVgBaAF4AYU1AzcF1DYWNoZS1Db250cm9sVlByYWdtYVZTZXJ2ZXJU
RGF0ZV5Db250ZW50LUxlbmd0aFpDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRfEGNwb2xpY3lyZWY9
Ii93M2MvcDNwLnhtbCIsIENQPSJOT0kgRFNQIENPUiBOSUQgQ1VSYSBBRE1hIERFVmEgUFNBYSBQ
U0RhIE9VUiBCVVMgQ09NIElOVCBPVEMgUFVSIFNUQSJYbm8tc3RvcmVYbm8tY2FjaGVfEBpybWFz
LXNlcnZlci1jb3JlLWx6MS8zLjYuMF8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDMgR01UVDQx
NjdVY2xvc2XSKitYWaNZWi5fEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyedIqK1xd
o11eLl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAA
UgBkAIIAiACfAKYAqQCsAK8AsgC1ALgAuwC+AMEAxADGAMgAygDMAM4A0ADSANQA1gDYAN8A5wDz
APUA9wD5AUsBUAFZAWQBZwFtAXYBfwGBAYMBigGSAZ0BnwGoAaoBrAGuAbABsgG0AbYBuAHBAcMB
xQHHAckBywHNAc8B0QHVAeMB6gHxAfYCBQIQAh4ChAKNApYCswLTAtgC3gLjAucC/QMKAw8DEwMn
AAAAAAAAAgEAAAAAAAAAXwAAAAAAAAAAAAAAAAAAAzVPERBHLyogQWxsIHBvcnRpb25zIG9mIHRo
aXMgc29mdHdhcmUgYXJlIGNvcHlyaWdodCAoYykgMjAwMy0yMDA2IFJpZ2h0IE1lZGlhKi92YXIg
cm1fYmFuX2ZsYXNoPTA7dmFyIHJtX3VybD0iIjt2YXIgcm1fcG9wX2ZyZXF1ZW5jeT0wO3ZhciBy
bV9wb3BfaWQ9MDt2YXIgcm1fcG9wX3RpbWVzPTA7dmFyIHJtX3BvcF9ub2ZyZXFjYXA9MDt2YXIg
cm1fcGFzc2JhY2s9MDt2YXIgcm1fdGFnX3R5cGU9IiI7cm1fdGFnX3R5cGUgPSAiYWQiOyBybV91
cmwgPSAiaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vaW1wP1o9MzM2eDI4MCwzMDB4MjUwJnM9
Mzk0ODEwJl9zYWx0PTMzNzgzODU4OTYiO3ZhciBSTV9QT1BfQ09PS0lFX05BTUU9J3ltX3BvcF9m
cmVxJzt2YXIgUk1fSU5UX0NPT0tJRV9OQU1FPSd5bV9pbnRfZnJlcSc7aWYoIXdpbmRvdy5ybV9j
cmV4X2RhdGEpe3JtX2NyZXhfZGF0YT1uZXcgQXJyYXkoKTt9aWYocm1fcGFzc2JhY2s9PTApe3Jt
X3BiX2RhdGE9bmV3IEFycmF5KCk7aWYocm1fY3JleF9kYXRhLmxlbmd0aD4wKXtybV91cmwrPSIm
WD0iO2Zvcih2YXIgaT0wO2k8cm1fY3JleF9kYXRhLmxlbmd0aDtpKyspe3JtX3VybCs9cm1fY3Jl
eF9kYXRhW2ldO2lmKGkhPXJtX2NyZXhfZGF0YS5sZW5ndGgtMSl7cm1fdXJsKz0iLCI7fX19fWVs
c2V7cm1fcGJfZGF0YS5wdXNoKHJtX2NyZXhfZGF0YS5wb3AoKSk7cm1fdXJsKz0iJlg9Ijtmb3Io
dmFyIGk9MDtpPHJtX3BiX2RhdGEubGVuZ3RoO2krKyl7cm1fdXJsKz1ybV9wYl9kYXRhW2ldO2lm
KGkhPXJtX3BiX2RhdGEubGVuZ3RoLTEpe3JtX3VybCs9IiwiO319cm1fdXJsKz0iJlk9cGIiO312
YXIgZmxhc2g9bmV3IE9iamVjdCgpO2ZsYXNoPWZsYXNoRGV0ZWN0aW9uKCk7aWYoY29va2llc0Vu
YWJsZWQoKSl7cm1fdXJsKz0oZmxhc2guaW5zdGFsbGVkPyImQj0xMCI6IiZCPTEyIik7fWVsc2V7
cm1fdXJsKz0oZmxhc2guaW5zdGFsbGVkPyImQj0xMSI6IiZCPTEzIik7fWlmKCFmbGFzaC5pbnN0
YWxsZWR8fHJtX2Jhbl9mbGFzaD09MSl7cm1fdXJsKz0iJm09MiI7fXZhciB1cmw9Jyc7dHJ5e2lm
KHJtX3RhZ190eXBlPT0iYWQiKXtpZih0b3A9PXNlbGYpe3VybD1lbmNvZGVVUklDb21wb25lbnQo
dG9wLmxvY2F0aW9uLmhyZWYpO3VybD11cmwuc3Vic3RyKDAsMjU2KTtybV91cmwrPSImdT0iK3Vy
bDt9fWVsc2UgaWYocm1fdGFnX3R5cGU9PSJpZnJhbWUiKXt1cmw9ZW5jb2RlVVJJQ29tcG9uZW50
KGRvY3VtZW50LnJlZmVycmVyKTt1cmw9dXJsLnN1YnN0cigwLDI1Nik7cm1fdXJsKz0iJnU9Iit1
cmw7fX1jYXRjaChlKXt9aWYodG9wPT1zZWxmKXtybV91cmwrPSImcj0xIjt9ZWxzZXtybV91cmwr
PSImcj0wIjt9dmFyIHJtX3RhZ19zcmM9JzxTQ1JJUFQgVFlQRT0idGV4dC9qYXZhc2NyaXB0IiBT
UkM9Iicrcm1fdXJsKyciPjxcL1NDUklQVD4nO2lmKHJtX3BvcF9mcmVxdWVuY3kpe2lmKHJtQ2Fu
U2hvd1BvcChybV9wb3BfaWQscm1fcG9wX3RpbWVzLHJtX3BvcF9mcmVxdWVuY3kpfHxybV9wb3Bf
bm9mcmVxY2FwKXtkb2N1bWVudC53cml0ZShybV90YWdfc3JjKTt9fWVsc2V7ZG9jdW1lbnQud3Jp
dGUocm1fdGFnX3NyYyk7fWZ1bmN0aW9uIGNvb2tpZXNFbmFibGVkKCl7dmFyIGNvb2tpZUVuYWJs
ZWQ9KG5hdmlnYXRvci5jb29raWVFbmFibGVkKT90cnVlOmZhbHNlO2lmKHR5cGVvZiBuYXZpZ2F0
b3IuY29va2llRW5hYmxlZD09InVuZGVmaW5lZCImJiFjb29raWVFbmFibGVkKXtkb2N1bWVudC5j
b29raWU9InRlc3Rjb29raWUiO2Nvb2tpZUVuYWJsZWQ9KGRvY3VtZW50LmNvb2tpZS5pbmRleE9m
KCJ0ZXN0Y29va2llIikhPS0xKT90cnVlOmZhbHNlO31yZXR1cm4gY29va2llRW5hYmxlZDt9ZnVu
Y3Rpb24gcm1HZXRDb29raWUoTmFtZSl7dmFyIHNlYXJjaD1OYW1lKyI9Ijt2YXIgQ29va2llU3Ry
aW5nPWRvY3VtZW50LmNvb2tpZTt2YXIgcmVzdWx0PW51bGw7aWYoQ29va2llU3RyaW5nLmxlbmd0
aD4wKXtvZmZzZXQ9Q29va2llU3RyaW5nLmluZGV4T2Yoc2VhcmNoKTtpZihvZmZzZXQhPS0xKXtv
ZmZzZXQrPXNlYXJjaC5sZW5ndGg7ZW5kPUNvb2tpZVN0cmluZy5pbmRleE9mKCI7IixvZmZzZXQp
O2lmKGVuZD09LTEpe2VuZD1Db29raWVTdHJpbmcubGVuZ3RoO31yZXN1bHQ9dW5lc2NhcGUoQ29v
a2llU3RyaW5nLnN1YnN0cmluZyhvZmZzZXQsZW5kKSk7fX1yZXR1cm4gcmVzdWx0O31mdW5jdGlv
biBmbGFzaERldGVjdGlvbigpe3ZhciBmbGFzaD1uZXcgT2JqZWN0KCk7Zmxhc2guaW5zdGFsbGVk
PWZhbHNlO2ZsYXNoLnZlcnNpb249JzAuMCc7aWYobmF2aWdhdG9yLnBsdWdpbnMmJm5hdmlnYXRv
ci5wbHVnaW5zLmxlbmd0aCl7Zm9yKHg9MDt4PG5hdmlnYXRvci5wbHVnaW5zLmxlbmd0aDt4Kysp
e2lmKG5hdmlnYXRvci5wbHVnaW5zW3hdLm5hbWUuaW5kZXhPZignU2hvY2t3YXZlIEZsYXNoJykh
PS0xKXtmbGFzaC52ZXJzaW9uPW5hdmlnYXRvci5wbHVnaW5zW3hdLmRlc2NyaXB0aW9uLnNwbGl0
KCdTaG9ja3dhdmUgRmxhc2ggJylbMV07Zmxhc2guaW5zdGFsbGVkPXRydWU7YnJlYWs7fX19ZWxz
ZSBpZih3aW5kb3cuQWN0aXZlWE9iamVjdCl7Zm9yKHg9Mjt4PDEwO3grKyl7dHJ5e29GbGFzaD1l
dmFsKCJuZXcgQWN0aXZlWE9iamVjdCgnU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2guIit4
KyInKTsiKTtpZihvRmxhc2gpe2ZsYXNoLmluc3RhbGxlZD10cnVlO2ZsYXNoLnZlcnNpb249eCsn
LjAnO319Y2F0Y2goZSl7fX19cmV0dXJuIGZsYXNoO31mdW5jdGlvbiBybVJlcGxhY2UobXlTdHJp
bmcsdG9SZXBsYWNlLHJlcGxhY2VCeSl7cmV0dXJuKG15U3RyaW5nLnJlcGxhY2UobmV3IFJlZ0V4
cCh0b1JlcGxhY2UsJ2dpJykscmVwbGFjZUJ5KSk7fWZ1bmN0aW9uIHdyaXRlQ29va2llKGNrTmFt
ZSxja1ZhbCl7dmFyIG51bWRheXM9MTQ7dmFyIHRvZGF5PW5ldyBEYXRlKCk7dmFyIGV4cGlyZXM9
bmV3IERhdGUoKTtleHBpcmVzLnNldFRpbWUodG9kYXkuZ2V0VGltZSgpKygxMDAwKjYwKjYwKjI0
Km51bWRheXMpKTt2YXIgY29va2llVGV4dD1ja05hbWUrIj0iK2NrVmFsKyI7ZXhwaXJlcz0iK2V4
cGlyZXMudG9HTVRTdHJpbmcoKSsiO3BhdGg9LzsiO2RvY3VtZW50LmNvb2tpZT1jb29raWVUZXh0
O3JldHVybiBudWxsO31mdW5jdGlvbiBybUNhblNob3dQb3Aocm1fcG9wX2lkLHBvcF90aW1lcyxw
b3BfZnJlcXVlbmN5KXt2YXIgY291bnRDb29raWVOYW1lPVJNX1BPUF9DT09LSUVfTkFNRStybV9w
b3BfaWQ7dmFyIGV4cGlyZUNvb2tpZU5hbWU9Uk1fUE9QX0NPT0tJRV9OQU1FKyJfZXhwaXJhdGlv
biIrcm1fcG9wX2lkO3ZhciBzaG93blRpbWVzPXJtR2V0Q29va2llKGNvdW50Q29va2llTmFtZSk7
aWYoc2hvd25UaW1lcz09bnVsbCl7cm1Xcml0ZUV4cGlyYXRpb25Db29raWUoZXhwaXJlQ29va2ll
TmFtZSxwb3BfZnJlcXVlbmN5KTtzaG93blRpbWVzPTA7fWVsc2V7c2hvd25UaW1lcz1OdW1iZXIo
c2hvd25UaW1lcyk7fWlmKHNob3duVGltZXM8cG9wX3RpbWVzKXtzaG93blRpbWVzPTErc2hvd25U
aW1lczt2YXIgZXhwaXJhdGlvbj1ybUdldENvb2tpZShleHBpcmVDb29raWVOYW1lKTtybVdyaXRl
UG9wRnJlcXVlbmN5Q29va2llKHJtX3BvcF9pZCxzaG93blRpbWVzLGV4cGlyYXRpb24pO3JldHVy
bl92YWx1ZT10cnVlO31lbHNle3JldHVybl92YWx1ZT1mYWxzZTt9cmV0dXJuIHJldHVybl92YWx1
ZTt9ZnVuY3Rpb24gcm1Xcml0ZVBvcEZyZXF1ZW5jeUNvb2tpZShybV9wb3BfaWQsc2hvd25UaW1l
cyxleHBpcmF0aW9uKXt2YXIgY29va2llTmFtZT1STV9QT1BfQ09PS0lFX05BTUUrcm1fcG9wX2lk
O3ZhciBjb29raWVUZXh0PWNvb2tpZU5hbWUrIj0iK3Nob3duVGltZXMrIjsiKyJleHBpcmVzPSIr
ZXhwaXJhdGlvbisiO3BhdGg9LzsiO2RvY3VtZW50LmNvb2tpZT1jb29raWVUZXh0O31mdW5jdGlv
biBybVdyaXRlRXhwaXJhdGlvbkNvb2tpZShjb29raWVOYW1lLGZyZXF1ZW5jeSl7dmFyIHRvZGF5
PW5ldyBEYXRlKCk7dmFyIGV4cGlyZXM9bmV3IERhdGUoKTtleHBpcmVzLnNldFRpbWUodG9kYXku
Z2V0VGltZSgpKygxMDAwKmZyZXF1ZW5jeSkpO3ZhciBjb29raWVUZXh0PWNvb2tpZU5hbWUrIj0i
K2V4cGlyZXMudG9HTVRTdHJpbmcoKSsiOyIrImV4cGlyZXM9IitleHBpcmVzLnRvR01UU3RyaW5n
KCkrIjtwYXRoPS87Ijtkb2N1bWVudC5jb29raWU9Y29va2llVGV4dDt91AAFABEABwAIALIAswAU
ALRfEO1odHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9pbXA/Wj0zMzZ4MjgwLDMwMHgyNTAmcz0z
OTQ4MTAmX3NhbHQ9MzM3ODM4NTg5NiZYPTEyMTAxMjEmQj0xMCZ1PWh0dHAlM0ElMkYlMkZ3d3cu
bnl0aW1lcy5jb20lMkYyMDA4JTJGMTElMkYxMCUyRmhlYWx0aCUyRjEwaGVhcnQuaHRtbCUzRl9y
JTNEMiUyNnBhcnRuZXIlM0Ryc3NueXQlMjZlbWMlM0Ryc3MlMjZvcmVmJTNEc2xvZ2luJTI2b3Jl
ZiUzRHNsb2dpbiZyPTFPEQXuYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2
ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNo
aXZlcq8QHwsMIigpLzAxMkxNTk9QUVJTVFVWV1hZWltYXF1eX2NVJG51bGzbDQ4PEBESExQVFhcY
GRobHB0eHyAaIVYkY2xhc3NSJDNSJDhSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAHoACEAiABoAH
gAWACBAFEAAQAdMNIyQlJidXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18Q7Wh0dHA6Ly9hZC55
aWVsZG1hbmFnZXIuY29tL2ltcD9aPTMzNngyODAsMzAweDI1MCZzPTM5NDgxMCZfc2FsdD0zMzc4
Mzg1ODk2Jlg9MTIxMDEyMSZCPTEwJnU9aHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVzLmNvbSUyRjIw
MDglMkYxMSUyRjEwJTJGaGVhbHRoJTJGMTBoZWFydC5odG1sJTNGX3IlM0QyJTI2cGFydG5lciUz
RHJzc255dCUyNmVtYyUzRHJzcyUyNm9yZWYlM0RzbG9naW4lMjZvcmVmJTNEc2xvZ2luJnI9MdIq
KywtWCRjbGFzc2VzWiRjbGFzc25hbWWiLS5VTlNVUkxYTlNPYmplY3QjQa2R+wgXWWgQAhDI0w0z
NDU2QVdOUy5rZXlzWk5TLm9iamVjdHOAHao3ODk6Ozw9Pj9AgAmACoALgAyADYAOgA+AEIARgBKq
QkNERUZHSElKS4ATgBSAFYAWgBeAGIAZgBqAG4AcU1AzcF1DYWNoZS1Db250cm9sXUxhc3QtTW9k
aWZpZWRWUHJhZ21hVlNlcnZlclxDb250ZW50LVR5cGVURGF0ZV5Db250ZW50LUxlbmd0aFpDb25u
ZWN0aW9uWlNldC1Db29raWVfEGNwb2xpY3lyZWY9Ii93M2MvcDNwLnhtbCIsIENQPSJOT0kgRFNQ
IENPUiBOSUQgQ1VSYSBBRE1hIERFVmEgUFNBYSBQU0RhIE9VUiBCVVMgQ09NIElOVCBPVEMgUFVS
IFNUQSJYbm8tc3RvcmVfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQ0IEdNVFhuby1jYWNoZV8Q
GnJtYXMtc2VydmVyLWNvcmUtbHoxLzMuNi4wXxAYYXBwbGljYXRpb24veC1qYXZhc2NyaXB0UzY5
MFVjbG9zZV8Q6GZsX2luc3Q9MTsgcGF0aD0vOyBleHBpcmVzPVNhdCwgMDktTWF5LTIwMDkgMjM6
Mzg6NDMgR01ULCB1aWQ9dWlkPWI2MjVjN2Q0LWFmODAtMTFkZC1iOGE0LTAwMWNjNDEwODgyZiZf
aG1hY3Y9MSZfc2FsdD0zNTkwMTA5NTk3Jl9rZXlpZD1rMSZfaG1hYz0yZDE1ZWIwZTI4NTM4NDk1
ZWZlYjliNzg1YjgzY2UwNDkxYTM3YjYyOyBwYXRoPS87IGV4cGlyZXM9V2VkLCAxMC1EZWMtMjAw
OCAyMzozODo0MyBHTVTSKitgYaNhYi5fEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFy
edIqK2Rlo2VmLl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIA
NwA6AFAAUgBkAIYAjACjAKoArQCwALMAtgC5ALwAvwDCAMUAyADKAMwAzgDQANIA1ADWANgA2gDc
AOMA6wD3APkA+wD9Ae0B8gH7AgYCCQIPAhgCIQIjAiUCLAI0Aj8CQQJMAk4CUAJSAlQCVgJYAloC
XAJeAmACawJtAm8CcQJzAnUCdwJ5AnsCfQJ/AoMCkQKfAqYCrQK6Ar8CzgLZAuQDSgNTA3MDfAOZ
A7QDuAO+BKkErgSyBMgE1QTaBN4E8gAAAAAAAAIBAAAAAAAAAGcAAAAAAAAAAAAAAAAAAAUATxEC
smRvY3VtZW50LndyaXRlKCc8aWZyYW1lIHNjcm9sbGluZz1cIm5vXCIgbWFyZ2lud2lkdGg9XCIw
XCIgbWFyZ2luaGVpZ2h0PVwiMFwiIGZyYW1lYm9yZGVyPVwiMFwiIGhlaWdodD1cIjI1MFwiIHdp
ZHRoPVwiMzAwXCIgc3JjPVwiaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vaWZyYW1lMz9wZ0lB
QURvR0JnQURvQk1BSmFRRkFBSUFBQUFBQVA4QUFBQUNFQUlBQXdLZlNRZ0F4RzhJQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQZy5BQUFBQUFBQS1EOEFBQUFBQUFENFB3
QUFBQUFBQVBnLkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFMWmtzRUlTcVlRVmRWa2JLYzFQNncxNllXMFFUYnJXZWs5Zmpmd0FB
QUFBPSwsaHR0cDovL3d3dy5ueXRpbWVzLmNvbS8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0Lmh0
bWw/X3I9MiZwYXJ0bmVyPXJzc255dCZlbWM9cnNzJm9yZWY9c2xvZ2luJm9yZWY9c2xvZ2luXCI+
PC9pZnJhbWU+Jyk7CnZhciBybV9kYXRhID0gbmV3IE9iamVjdCgpOwpybV9kYXRhLmNyZWF0aXZl
X2lkID0gMTI4NjE0NzsKcm1fZGF0YS5vZmZlcl90eXBlID0gMzsKcm1fZGF0YS5lbnRpdHlfaWQg
PSAxMDAwNTY7CmlmICh3aW5kb3cucm1fY3JleF9kYXRhKSB7cm1fY3JleF9kYXRhLnB1c2goMTI4
NjE0Nyk7fdQABQARAAcACAC2ALcAeQC4XxBFaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9p
bWFnZXMvMjAwNy8wNC8zMC9oZWFsdGgvaGVhbHRoX3Rvb2wuZ2lmTxED92JwbGlzdDAw1AECAwQF
BgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJj
ZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEBwLDCYsLTMeNDVLTE1OT1BRUlNUVVZXWFla
W19gVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDEx
UiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBuAAoAaEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dO
Uy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBFaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9p
bWFnZXMvMjAwNy8wNC8zMC9oZWFsdGgvaGVhbHRoX3Rvb2wuZ2lm0i4vMDFYJGNsYXNzZXNaJGNs
YXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7CCWC3BDI0w02Nzg5QldOUy5rZXlzWk5TLm9i
amVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAPgBCoQ0RFRkdISUqAEYASgBOAFIAVgBaAF4AY
XUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQtVHlwZV5Db250ZW50LUxlbmd0aFREYXRlVEV0
YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5dGVzXxAWU3VuLU9ORS1XZWItU2VydmVyLzYu
MVlpbWFnZS9naWZUNDQyOF8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UXxAPIjExNGMt
NDcyOTEwMDciWmtlZXAtYWxpdmVfEB1XZWQsIDMxIE9jdCAyMDA3IDIzOjMwOjE1IEdNVNIuL1xd
o11eMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5ERFM0i4vYWKjYmMyXxARTlNI
VFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAgwCJAKQA
qwCuALEAtQC5ALwAvwDCAMUAyADLAM4A0QDTANUA1wDZANsA3QDfAOEA4wDlAOcA6QDwAPgBBAEG
AQgBCgFSAVcBYAFrAW4BdAF9AYYBiAGPAZcBogGkAa0BrwGxAbMBtQG3AbkBuwG9AcYByAHKAcwB
zgHQAdIB1AHWAeQB6wH4AgcCDAIRAhwCKgIwAkkCUwJYAngCigKVArUCugK+AtQC4QLkAukC7QMB
AAAAAAAAAgEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAw9PERFMR0lGODlhSwBLAOYAAKKvfKKuheTp
2LvEqKy2lMndiaOuid3j0dTaxsrckbjDnPv+8uvz1bG7maGtgdnkuuzx46SwiqGxhJ6qg83cm8PK
tP7/+LvLjf7+/8PUkqOwgqWxhsnakcrehszgisDIqtLim9TjoszYqcnRucrdjsPTjMnalLa9pOLr
yJ6qfPb57NThq+js38zfjqy7gs7glKm0jMzekcvcjKSxgfn97Nfd0cjajc7Uwvf78ejwzLXEiv//
/Ki2g83eltDdpPDz47LBhfr9+PH16snbia25i7C9iqWuhsrei8fYjfP28sfXktflqtTdvqGrhvz/
/8rclO/329/pu8veifr6+fr+/f78/qWvkL/Mmtvorcvej/T55L7Piqazf6Cqgfz9+8fafrzNhsjM
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
eR7E6gEmoKp30QR3kACvyAa40A40GgmVcF0i9ZAL0S1+A6yqIKxE6pnGiqyIxf8DA7kCEAitdCKt
F4EDD6AEYICS/bE73lEEmsOt4EmsUnCsu4IPHbYCWoABbUAZ0coOFYEBZbAAOcAG/dmm3aGtpDqs
pzpMj5qsRPCA/joHAIupezot1GEBDHAH3HEYC5Gj8tqw3aoKBXBVuwI7iykbsVEF9lGr8mkRwrAD
AkBze3KZRFB8TiYyKmJMUYEcOvQEJNACGMecLxMdu7AWuZEjAYsOusARezABXcAMPVUsTcESA/EP
KbG1QrsSWeABeoAXqhYBOFEWGMsTXqALLPABVnCQTaCSUKG1vwRUOgRHiKpDyIQHnIEqJxARU2q2
eloWcpIJB7BjM1ACY2Jx4ompHGViTANhKNlwASkwAQ0wDn/wt4BrGb2gCxcxCThQA0mkB3EAB3AQ
B2KiIFxbSbFFLKW7kHFwAQ2AAJHhCBoCuIHrtBawtDkCFFGwBBTwBkNgCn9xBPh0UnKZIC0wT2+Q
BisQBQygAudQEYJzseigub0wGcJQCZbiDgugBTkQBSZGAWSjBv0wBDZgA3tIAfqDBTkgBAuwC5UQ
v5iQu5nLCPZ7v/ibv4UQCAA71AAFABEABwAIALoAuwB5ALxfEElodHRwOi8vZ3JhcGhpY3M4Lm55
dGltZXMuY29tL2Fkcy9tYXJrZXRpbmcvbW0wOC9oZWFsdGgtbmFzYWxhbGxlcmdpZXMuZ2lmTxED
/GJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDR
BwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEBwLDCYsLTMeNDVL
TE1OT1BRUlNUVVZXWFlaW19gVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFz
c1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBuAAoAaEAgQAIAGgAeABYAI
EAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBJaHR0cDovL2dyYXBoaWNz
OC5ueXRpbWVzLmNvbS9hZHMvbWFya2V0aW5nL21tMDgvaGVhbHRoLW5hc2FsYWxsZXJnaWVzLmdp
ZtIuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wgk7CAQyNMN
Njc4OUJXTlMua2V5c1pOUy5vYmplY3RzgBmoOjs8PT4/QEGACYAKgAuADIANgA6AD4AQqENERUZH
SElKgBGAEoATgBSAFYAWgBeAGF1BY2NlcHQtUmFuZ2VzVlNlcnZlclxDb250ZW50LVR5cGVeQ29u
dGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25dTGFzdC1Nb2RpZmllZFVieXRlc18QFlN1
bi1PTkUtV2ViLVNlcnZlci82LjFZaW1hZ2UvZ2lmVTEyNzI3XxAdTW9uLCAxMCBOb3YgMjAwOCAy
MzozODo0NCBHTVRfEA8iMzFiNy00N2VhYjA2NSJaa2VlcC1hbGl2ZV8QHVdlZCwgMjYgTWFyIDIw
MDggMjA6MjE6NTcgR01U0i4vXF2jXV4yXxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25h
cnkRMbfSLi9hYqNiYzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8A
KQAyADcAOgBQAFIAZACDAIkApACrAK4AsQC1ALkAvAC/AMIAxQDIAMsAzgDRANMA1QDXANkA2wDd
AN8A4QDjAOUA5wDpAPAA+AEEAQYBCAEKAVYBWwFkAW8BcgF4AYEBigGMAZMBmwGmAagBsQGzAbUB
twG5AbsBvQG/AcEBygHMAc4B0AHSAdQB1gHYAdoB6AHvAfwCCwIQAhUCIAIuAjQCTQJXAl0CfQKP
ApoCugK/AsMC2QLmAukC7gLyAwYAAAAAAAACAQAAAAAAAABkAAAAAAAAAAAAAAAAAAADFE8RMbdH
SUY4OWF4AHsA9wAAqHtz7NjbuZuViGNa27q1lmtky6mkqYR6pHRrysma16uk6ca3lI9vyaOauamm
cWdonHJp16Sbtnt1UTcxuaSa2cjK2LOsyre2ZVhXhVxV5MnI5qmlzs7Oq4mCyLSppmpkMiwn5KWe
lGRdUkE8ycqmelZNVUhFvJSNjZRbeWNd5ZuX793j5ru12reamYuH5rWp7Obmmnpz2JOMe1xRqpOK
i2lhs4yEq5mV1dTIu42DztPLvZKExoR728S91ti41YyIxJSLybua1r3Cu7SZy86219iqlVpV5+bQ
tIR7hVZP9ebptJSM1cacxZyS28anxJqMz9O3zZOMvMWSztOq1M/R1JuUbz40tYt8zpuTxYyDu4N7
o650omRdw5WF58/SzZWSwnt5vLKjxY2Luox8XFRTqn59s4N0SURBtqqIzIyFZUpD1Z2avLS0+/33
35+bvIaBdk1Ft5R61JSR35WRxqeJzc7E5tfGqqWJ9vX1zY2KsWpnxISCyK2vs3Jt25uV8by2w52a
iE1FvYyJtI6Jh3l6t7WNZFJMtZKGl1VMm3JaV1BNzZuNz9PTzZ2ZpZZ7vpuPxpWRr6KZzoWCtIWD
oFtW8/TquoN1fYROspuNzNCcmaOpa15f3NTUZ2o3uq2uzMfGk0pIjXBq9Nzf+O3w397d9/z2qYhr
9/v8saSh1KiRvJyCqbK3s4p2gkQ8/ff8o62ytJ6fW0xOgV9PmJ1p3OC0xsDAxpqF/fbyk19exsWS
yrCN6q+u5em6z8/TzpOE4sKh9Pb77/T2UVMfQTo4t29yzY6QrbWA3dfa3d3S193d9cW9vMPFxcvN
1paY4uTjs5mCt46Qx4aJr4Ju8LSwxcfL3bCvm21rpZCS09PT19fX///7+//7+/v7+/////v/09PX
//v6+/v/19PT09fR19PXy5qGuop119Pb09fX19fTy8fLq29uYVBR39/nck9N09vXjG9PPEUAsLSS
kFBP7O3uem9x4uHI1I6Otr7Hon5isYaHuoaHwJaX09Giz5aX////IfkEAAAAAAAsAAAAAHgAewAA
CP8AQYAYJpBgwWHDzpggiPCgwoUJFY4AYSKWiYsmMKRIESpGDAAHWF2Js2NHF5NdUqrs8sRWk0UN
UhmQqcCCTQI4WWjQ4CWAT59KAqxYwYmUN23/kipdyrQp04ECo0ZFeEbRGYQGh40gE8sqwhGKFmJk
F2uEoU0zanSMccBUyJI74qxEmbLlSzoNIiioaQEnARY9dvb8ObSwUHBInSpe/E+q44EIwyacOFAR
BgyKJg5TFHbCxREY2JlgV2ITx44A8gGQNtLkE1UnV3ax9eQJzJkGavol0GMBz8E+VwgNAGMFKTyJ
GStXCvUx5KqKQChkaGITBjJXt2L/fCb0aAwzOEL/8BgjnylWNnaoevLoREq6tZ/gTdVgb1+/CwLz
/ElYqPFR3niz3IAGSZVVZYpglZB0D3CWkAmKkIGRCYZgUJYa4KVVQw3W5OPRAYeEeAhLQJyUBRC2
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
DZ3dzClWN7KlBY5raJG1EDfJqJMMFbv5GBdeBAp35IH62JDDIV2oIlODFAhwAhBpSGCEJXlIIsc9
e2jhjxv3cLdOAXDEMFVoHrApRAWcwFAPCPUwAsyc3YRTJ1qucKOWfWS99s827XAA5KGICjmkLEYi
WUaCLj1ywg6PYCKAB4C98QYXInwRRRp+aLpPMxsUEw0x3SZxgGh8UCBED7Vo4EUAShACwjCaLONM
MHae4sopDaV1Y7A2EjRWRIYmq6yQJNUQyoHRnqDKIxU/QhVgY2yKQCN5yOHGHhII4o8/YEgggTVJ
DECDARWg2P9DBRUE4AUnK7iALyGrrIKPM3PiEXBZsbliH0QDfcVQMNko7ON/AQY4QKLMplAkkgj6
dYLFjyxBgUwnCLKOETs0kUUVzUigxRrVKADGOiiXEAM/fARwgQexzkuzF6iAUKvOmqxCDT25egPM
r/8gbLSNA3GzVlsLN43N49nAMwA8Aw4XCgAIDgJYxQI4RwFgg4whgggNPCFIFXusgwQS+zQCSRnW
ZDDAIID0EAABtdAcwMxeVMBHLCBs8go+r2jidy/9qraQNwvFZ/RDi2sDjjOOR54N9tiUZHmRoaCk
+SGeA/KIAQZ4fsJNRkBgASCNVNHH6iIYgcA+giBQQg3XyK2UAVOc8B5ABXwnhBQIz2/H04QLXLCK
ZASsTqeQDVm88hD8wCAdkYMcBh8HuexxEHuSo5wsUoCXItUgBjHoyyAO4RzPUcAAS2gAP2yAANoZ
wAIKgETbkGAGK0GrDDU4ACCEIAohwCoAxwgAJwJYgQEK7xWrOKAmCFEPfbWDHsEIR0MWEkGG4Ice
4sheRpwWxg1mcIMBAQA71AAFABEABwAIAL4AvwB5AMBfED5odHRwOi8vZ3JhcGhpY3M4Lm55dGlt
ZXMuY29tL2Fkcy9tYXJrZXRpbmcvbW0wOC9oZWFsdGgtdXJsLmdpZk8RA+xicGxpc3QwMNQBAgME
BQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3Vy
Y2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAcCwwmLC0zHjQ1S0xNTk9QUVJTVFVWV1hZ
WltfYFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQx
MVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAbgAKAGhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtX
TlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QPmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20v
YWRzL21hcmtldGluZy9tbTA4L2hlYWx0aC11cmwuZ2lm0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFt
ZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7CCUMwxDI0w02Nzg5QldOUy5rZXlzWk5TLm9iamVjdHOA
Gag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAPgBCoQ0RFRkdISUqAEYASgBOAFIAVgBaAF4AYXUFjY2Vw
dC1SYW5nZXNWU2VydmVyXENvbnRlbnQtVHlwZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29u
bmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5dGVzXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMVlpbWFn
ZS9naWZTODMxXxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NCBHTVReIjMzZi00N2IxZDMzYiJa
a2VlcC1hbGl2ZV8QHVR1ZSwgMTIgRmViIDIwMDggMTc6MTE6MjMgR01U0i4vXF2jXV4yXxATTlNN
dXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRAz/SLi9hYqNiYzJfEBFOU0hUVFBVUkxSZXNw
b25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACDAIkApACrAK4AsQC1ALkA
vAC/AMIAxQDIAMsAzgDRANMA1QDXANkA2wDdAN8A4QDjAOUA5wDpAPAA+AEEAQYBCAEKAUsBUAFZ
AWQBZwFtAXYBfwGBAYgBkAGbAZ0BpgGoAaoBrAGuAbABsgG0AbYBvwHBAcMBxQHHAckBywHNAc8B
3QHkAfECAAIFAgoCFQIjAikCQgJMAlACcAJ/AooCqgKvArMCyQLWAtkC3gLiAvYAAAAAAAACAQAA
AAAAAABkAAAAAAAAAAAAAAAAAAADBE8RAz9HSUY4OWGmABEAxAAAqampVVVVeXl5aGhoFRUV5OTk
ioqKmZmZyMjIQkJC8fHxqqqqFhYW8vLyenp6LS0t1tbWuLi4Li4u4+Pj1dXVQ0NDubm5Z2dniYmJ
x8fHVlZWmpqaAAAA////AAAAAAAAIfkEAAAAAAAsAAAAAKYAEQAABf9gJ45kaZ5oqq5s675wLM+l
UAkNre/txTEGjXDBEwU1AcDpqFEWVRuOdPOsFhXSoJRzeAa2VJNm27V2MuDOIm1ux6IcCpz7BKTR
0848bMVzwgACTm6ELQ8cCWdsRWkIZIp5S0gaCwBCYUEBQhCTAA5bDwAGmk0dTBsbmhEFAhoDECMA
A0gHOR0RmgIDBicTDq6pTgitGgIIRkIBqEIWE60DFCSOHEp+yxp8arPYCiIKGwMOGUKlaQKgANYb
lyRjUgRbfx3uUtN/9Pdp+PHw792f8RIoiPBuAIcAJgr0MxdPCpF9WxYy6CbiHIdufho6sbglQQMF
CRrm0RdvQ8Z4RET/2JEiYQ7ClYgUcpCQYY6GDDCpwExgUAqSLTjBWBQAp0IDAxhMGBD6Z80UgBwK
OEXUk4MQoN4YcBAgwt6DpT475Bw6x0BVKmlsZvDzdYsGEiStVmQ5jYg1EWzAWPOTgWPNd34YbLDV
TkqiBhkK9CQASZ7ex1IyqIws4u4XuVD//nAnoTHaPHftUXH3dkTc0n7gIfSMNxLkP3yrNjxDz2MJ
dw8Kc2BcIM1rk1g7hMxdOc3lt7LjuUtEwbeULnf9dCENN4+71R0uU2bd4VH353uBwixwCxWALnMk
H9hAZI6DBgUgzJGDFYxoe5J7y+v6iPr4DhagAtU3ztER2mkj4DMPvBswOTBCRuvEM46E8djDgXBS
MFDBFGMMUBV5UiCkwEJTgCTSANlRCFQ8pkgxQYIs0tNFSLvReMBJIm2BAITaXSijCArSw8chEz1Y
Ej4TrqikFB0owJFg8zAgwTsphdXBBPQQoEQDUEG54JIcZNQBPCjCuEWKeXAZESBa/ZFjZBAqqF02
KkBggRQDUFRIAeSZAMsKiSVEGAwrRTADn34WsgI+xyjqaAwGMfbopEhOaukK+vFy6aacduppESEA
ADvUAAUAEQAHAAgAwgDDAHQAxF8QPGh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vYWRzL21h
cmtldGluZy9tbTA3L255dC1sb2dvLnBuZ08RA+ticGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQk
dG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAP
TlNLZXllZEFyY2hpdmVyrxAcCwwmLC0zHjQ1S0xNTk9QUVJTVFVWV1hZWltfYFUkbnVsbN0NDg8Q
ERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1Ik
MlIkOVIkMFIkMYAbgAKAGhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxh
dGl2ZYAEgACAA18QPGh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vYWRzL21hcmtldGluZy9t
bTA3L255dC1sb2dvLnBuZ9IuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmpl
Y3QjQa2R+wgli4IQyNMNNjc4OUJXTlMua2V5c1pOUy5vYmplY3RzgBmoOjs8PT4/QEGACYAKgAuA
DIANgA6AD4AQqENERUZHSElKgBGAEoATgBSAFYAWgBeAGF1BY2NlcHQtUmFuZ2VzVlNlcnZlclxD
b250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25dTGFzdC1Nb2Rp
ZmllZFVieXRlc18QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFZaW1hZ2UvcG5nVDI1MTNfEB1Nb24s
IDEwIE5vdiAyMDA4IDIzOjM4OjQ0IEdNVF4iOWQxLTQ2ZTA1N2U1IlprZWVwLWFsaXZlXxAdVGh1
LCAwNiBTZXAgMjAwNyAxOTo0MToyNSBHTVTSLi9cXaNdXjJfEBNOU011dGFibGVEaWN0aW9uYXJ5
XE5TRGljdGlvbmFyeREJ0dIuL2Fio2JjMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9u
c2UACAARABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8AwgDFAMgAywDOANEA
0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBSQFOAVcBYgFlAWsBdAF9AX8BhgGO
AZkBmwGkAaYBqAGqAawBrgGwAbIBtAG9Ab8BwQHDAcUBxwHJAcsBzQHbAeIB7wH+AgMCCAITAiEC
JwJAAkoCTwJvAn4CiQKpAq4CsgLIAtUC2ALdAuEC9QAAAAAAAAIBAAAAAAAAAGQAAAAAAAAAAAAA
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
6OiYRz+A3Tl5R4BDybKcSCSGhuD6l18dH79dW9P5TritXx/uf9wKDo+VELlGCHE6bUrLm9WKpi71
cosBvIg47tR2jo6OS2v6G/cNjtip7fRXkUgkzqRqSHMikTD/rJzGof4zmRDGHz9+TAihus7XcdI/
pAkhpvGbc3BQmFP2Ox1EqdFoeK4/3HI8VoW5hdKazhrPFxcfwnIX5aiFOYUQoqlLh4eHi4sPEVxK
yycGK162t7fg3rTtFnA206xJkvTj1FQqdXOzuuH7nvAvWAGaByQN4XN9D+moOzgv5eXly1fYFoSJ
PiNnZ2dmZ7PA0j90Zn8ihDz7/dmKtvz06ROMoi9fvlpeXh76gMFjBbve23v+EWqzWBBB1gCJV1XV
ZDIFRBEztq5T4JxQ/cLSlxAJ6zr1PDdQfgsQv0xaZox5nhsgkJDesdCFBCqTlnPZHGruc+oHQgh8
CpUrShG4A/BD7IRaErJWxhhun18LWCjW3rASYhgmVO9gOlIzsAfbltUES2CJXqxwm8DnL8JuCLYs
q4k8GK1H2qYoRVEU8SjCl2MAaL78BgUOIHX8T8gP4Q4AFwYMgM0AlT+t0GMYJvjPMEy4hEgYTiyo
vLdaCyvyN4SiFHEJOHv0VpQCxUh+jKqqcDSCkfBTb1tVVby/eUCgraoqAHuR2k3w/aJtt/b2nhNC
otFogDpCYDTNWj6X3a3X+7CSVOrmbn23P5cbWorF+W+kr6Gi5PuebTcheE7PTH+KFZ2DA2AGQuTa
9Ez+IyZy226NTwgfx+ZBK9GKUjzzjQQ8Lhe8v/pUsSEE9dap+QPf/0rIlbO49yUaXhd8W3J15Ysr
97a9VCpNTFx/xlg0Hk8kErdv34LYLknSiafs0f9urtIfKXZqO4XCvc9+AB15cSRDyt8DAG91fuq6
EAuQAAAAAElFTkSuQmCC1AAFABEABwAIAMYAxwB5AMhfEENodHRwOi8vZ3JhcGhpY3M4Lm55dGlt
ZXMuY29tL2Fkcy9tYXJrZXRpbmcvbW0wNy92ZXJ0aWNhbF9oZWFsdGguZ2lmTxED8WJwbGlzdDAw
1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJS
ZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEBwLDCYsLTMeNDVLTE1OT1BRUlNU
VVZXWFlaW19gVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMk
MTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBuAAoAaEAgQAIAGgAeABYAIEAeAABAB0w0n
KCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBDaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVz
LmNvbS9hZHMvbWFya2V0aW5nL21tMDcvdmVydGljYWxfaGVhbHRoLmdpZtIuLzAxWCRjbGFzc2Vz
WiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wgk0N0QyNMNNjc4OUJXTlMua2V5c1pO
Uy5vYmplY3RzgBmoOjs8PT4/QEGACYAKgAuADIANgA6AD4AQqENERUZHSElKgBGAEoATgBSAFYAW
gBeAGF1BY2NlcHQtUmFuZ2VzVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0
ZVRFdGFnWkNvbm5lY3Rpb25dTGFzdC1Nb2RpZmllZFVieXRlc18QFlN1bi1PTkUtV2ViLVNlcnZl
ci82LjFZaW1hZ2UvZ2lmUzQ3M18QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UXiIxZDkt
NDZlNTkwMGMiWmtlZXAtYWxpdmVfEB1Nb24sIDEwIFNlcCAyMDA3IDE4OjQyOjIwIEdNVNIuL1xd
o11eMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQHZ0i4vYWKjYmMyXxARTlNI
VFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAgwCJAKQA
qwCuALEAtQC5ALwAvwDCAMUAyADLAM4A0QDTANUA1wDZANsA3QDfAOEA4wDlAOcA6QDwAPgBBAEG
AQgBCgFQAVUBXgFpAWwBcgF7AYQBhgGNAZUBoAGiAasBrQGvAbEBswG1AbcBuQG7AcQBxgHIAcoB
zAHOAdAB0gHUAeIB6QH2AgUCCgIPAhoCKAIuAkcCUQJVAnUChAKPAq8CtAK4As4C2wLeAuMC5wL7
AAAAAAAAAgEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAwlPEQHZR0lGODlhkQAXALMAAERERCIiImZm
Znd3dzMzM8zMzN3d3e7u7lVVVZmZmREREaqqqru7u4iIiAAAAP///yH5BAAAAAAALAAAAACRABcA
AAT/8MlJq7046827/2AojmRpnmiqrmzrvhbTMFfSGJPc7PyeWDsasFEx9I47nExYseFgUEnDQbQA
HMypY8vdAiqLLeKyrTC66C1tWq1cmdEX+/KeTAWMvJ5RqAy4BxZlFAd7Ag54eoFzVlhxUIxujlJU
HQEECA4/FYMYkXaVjXCPLJ8TdZRtGQVUU2OcDhqmD7MPqKQttbe1fg4FBluBFJ0Xs7qTuKWhklnL
GQEBEgSasLLOqXTIySpTAEgNAcjdSBWsA5SvE8RA17QO3kjho9snWmlczfe9fQ+sCtUZjN3rMo9e
iTt79ExrlmhPBQLRJoRbMCxWwHYIEzJYaJBbO1vihj5OAAZgTyYBFa2pwiaqY4pjzVZWsIfmnzqL
njB+vOXy4M6QMilA1Djxpkp2QXn2HAETVFAJwM71Qilh3UydSbUtFdGUZTGt/RzYfGCVgsCsBbd6
6OouAIC3cN8+IDC2gryq7+K+lXo2W1q1HNjSTHMAEYY/Uge+8+rUL+DHkCNLnky5MogIADvUAAUA
EQAHAAgAygDLAKsAzF8QQWh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vYWRzL21hcmtldGlu
Zy9tbTA4L2hlYWx0aF8xMTEwMDguanBnTxED9WJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0
b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9O
U0tleWVkQXJjaGl2ZXKvEBwLDCYsLTMeNDVLTE1OT1BRUlNUVVZXWFlaW19gVSRudWxs3Q0ODxAR
EhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQy
UiQ5UiQwUiQxgBuAAoAaEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0
aXZlgASAAIADXxBBaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9hZHMvbWFya2V0aW5nL21t
MDgvaGVhbHRoXzExMTAwOC5qcGfSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5T
T2JqZWN0I0GtkfsIJHp9EMjTDTY3ODlCV05TLmtleXNaTlMub2JqZWN0c4AZqDo7PD0+P0BBgAmA
CoALgAyADYAOgA+AEKhDREVGR0hJSoARgBKAE4AUgBWAFoAXgBhdQWNjZXB0LVJhbmdlc1ZTZXJ2
ZXJcQ29udGVudC1UeXBlXkNvbnRlbnQtTGVuZ3RoVERhdGVURXRhZ1pDb25uZWN0aW9uXUxhc3Qt
TW9kaWZpZWRVYnl0ZXNfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xWmltYWdlL2pwZWdVMTAwNzBf
EB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQ0IEdNVF8QDyIyNzU2LTQ5MTM1YTA2IlprZWVwLWFs
aXZlXxAdVGh1LCAwNiBOb3YgMjAwOCAyMDo1NjozOCBHTVTSLi9cXaNdXjJfEBNOU011dGFibGVE
aWN0aW9uYXJ5XE5TRGljdGlvbmFyeREnVtIuL2Fio2JjMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5T
VVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8AwgDF
AMgAywDOANEA0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBTgFTAVwBZwFqAXAB
eQGCAYQBiwGTAZ4BoAGpAasBrQGvAbEBswG1AbcBuQHCAcQBxgHIAcoBzAHOAdAB0gHgAecB9AID
AggCDQIYAiYCLAJFAlACVgJ2AogCkwKzArgCvALSAt8C4gLnAusC/wAAAAAAAAIBAAAAAAAAAGQA
AAAAAAAAAAAAAAAAAAMNTxEnVv/Y/+AAEEpGSUYAAQIAAGQAZAAA/+wAEUR1Y2t5AAEABAAAADwA
AP/uAA5BZG9iZQBkwAAAAAH/2wCEAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwMDAwM
EAwODxAPDgwTExQUExMcGxsbHB8fHx8fHx8fHx8BBwcHDQwNGBAQGBoVERUaHx8fHx8fHx8fHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH//AABEIAGkBTgMBEQACEQEDEQH/
xAChAAACAgMBAQEAAAAAAAAAAAAGBwQFAgMIAQAJAQADAQEBAQAAAAAAAAAAAAACAwQBBQAGEAAB
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
/KdS6WHetpSOAva4PC1rU7j5J7W8B5sLfZS0MTkF3t+Q4rsPL40/Fbwzk9nrw+SCHIS1lRU2bc7d
op0CqNGnDbjDEoMhR9J1XmB4pNuNahWSqCgtOS0qSv8AGPK5fkNRavOsoS2lsexY63IzTrySHTcO
X42B0Vbvr1GDdQ4NzkRCP4rNisiy0H5VIPEeI5V61dTK2bQOZzGx3ypSBe3AHiD30LUm1kp9uxfo
Myhxy6WesG/IKPCvUfgK6laF9vJkORFrUq/WNb9/ZW2QOM89tJDErBOROopfgOlBHahR6kmqMDmp
ye7SLz6hS83JHyOaU51J0zWtaki6lXNqXZBIrpcmwN6BhpFJNmAJJvQBSC2SlgdXm0rzQUgdlcmk
KKUnSgZhTwnlSZC1kHoa59ppF2y7o4uVp9CaVecdo/TQ6nZgDWOA8atsfODW2J8rXwo8Qm4ymfyx
VCEHrtKuMoZxfzBUtx9RhYL/AEqfChqZYDfdX/hZX7p/RQW3COJ3/wDUvfvGu3XY5r3LCNxFJuNQ
Q4rlUth1S7a4iljEbZP5RpaDZRT/AMs06gNgSl/mGr6EdiCvjTkIsfDnXjTNHzprGEvuHb7If/mZ
f+P+quF8j959l/j/AP4v9RhHjUDPoTzmKE0qMl8yf/OdYMBad+aPGsQpkwfkqowgdzv/ACjf+Emq
6bEmT7jWn89n/FTXrbi8v2DTV/pWv3asWxx67g6P+UP7wry2MuOHFf6ZvwoiWxuk/Mf3UfoNJN8m
lz8g/vGmM8ijkfnKoRhXPf6s/Cs8m49iVuz/AIpP7go2BXYq/aj/AJDJ/wCG3/fNH1znd3ZDDc+W
qWQIhyfl+FLsGiom8DS2MRQZD5TQHgTy3BVaeAnJfOaBmnuJ/wBKfGprna+O+wkH50/vGtLPyP/Z
1AAFABEABwAIAM4AzwCrANBfEFZodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2FkeC9pbWFn
ZXMvQURTLzE4LzMwL2FkLjE4MzAyMi9DQVBfUTIwOF84OHgyMl9sb2dvX1VTLmpwZ08RBAZicGxp
c3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxAT
V2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAcCwwmLC0zHjQ1S0xNTk9Q
UVJTVFVWV1hZWltfYFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNS
JDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAbgAKAGhAIEACABoAHgAWACBAHgAAQ
AdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QVmh0dHA6Ly9ncmFwaGljczgubnl0
aW1lcy5jb20vYWR4L2ltYWdlcy9BRFMvMTgvMzAvYWQuMTgzMDIyL0NBUF9RMjA4Xzg4eDIyX2xv
Z29fVVMuanBn0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7
CCS2phDI0w02Nzg5QldOUy5rZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAP
gBCoQ0RFRkdISUqAEYASgBOAFIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQt
VHlwZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5
dGVzXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMVppbWFnZS9qcGVnVDIwMzBfEB1Nb24sIDEwIE5v
diAyMDA4IDIzOjM4OjQ0IEdNVF4iN2VlLTQ4ZWEzNWE4IlprZWVwLWFsaXZlXxAdTW9uLCAwNiBP
Y3QgMjAwOCAxNTo1ODozMiBHTVTSLi9cXaNdXjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGlj
dGlvbmFyeREH7tIuL2Fio2JjMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAAR
ABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8AwgDFAMgAywDOANEA0wDVANcA
2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBYwFoAXEBfAF/AYUBjgGXAZkBoAGoAbMBtQG+
AcABwgHEAcYByAHKAcwBzgHXAdkB2wHdAd8B4QHjAeUB5wH1AfwCCQIYAh0CIgItAjsCQQJaAmUC
agKKApkCpALEAskCzQLjAvAC8wL4AvwDEAAAAAAAAAIBAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAMe
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
CKhTARbOXgI7SiR1gmDbxPuJ5jb7ofZ7hr68Sp+QPTT5xKbGZHXWHzVcW12SSPIVY6pmgZYe1Kds
QRxIgOmnuYqdftz4DXXEwK8sYJbt1M2pzhK08bvg2ZOHsrJXMgkhm3si7u6CSP8Any69PU9OCXXN
DnpygBu3lMZawENGmkiPYy1aSNYohLEkEy7nW0XchtDpur6R/wA9OGc56SB6afOAG2My3rr8ofDS
rLaZ4crVfdNVNaIQShlKMN4BXme5/H6cIXOTA56Q7W2VkRkmMf/Z1AAFABEABwAIANIA0wCCANRf
EEdodHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9zdD9hZF90eXBlPWFkJmFkX3NpemU9MzAweDI1
MCZzZWN0aW9uPTMwNzk0Mk8RBAticGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNo
aXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFy
Y2hpdmVyrxAbCwwiKCkvMDEySElKS0xNTk9QUVJTVFVWVFdbVSRudWxs2w0ODxAREhMUFRYXGBka
GxwdHh8gGiFWJGNsYXNzUiQzUiQ4UiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBqAAhAIgAaAB4AF
gAgQBRAAEAHTDSMkJSYnV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEEdodHRwOi8vYWQueWll
bGRtYW5hZ2VyLmNvbS9zdD9hZF90eXBlPWFkJmFkX3NpemU9MzAweDI1MCZzZWN0aW9uPTMwNzk0
MtIqKywtWCRjbGFzc2VzWiRjbGFzc25hbWWiLS5VTlNVUkxYTlNPYmplY3QjQa2R+wgnTTgQAhDI
0w0zNDU2P1dOUy5rZXlzWk5TLm9iamVjdHOAGag3ODk6Ozw9PoAJgAqAC4AMgA2ADoAPgBCoQEFC
Q0RFRkeAEYASgBOAFIAVgBaAF4AYU1AzcF1DYWNoZS1Db250cm9sVlByYWdtYVZTZXJ2ZXJURGF0
ZV5Db250ZW50LUxlbmd0aFpDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRfEGNwb2xpY3lyZWY9Ii93
M2MvcDNwLnhtbCIsIENQPSJOT0kgRFNQIENPUiBOSUQgQ1VSYSBBRE1hIERFVmEgUFNBYSBQU0Rh
IE9VUiBCVVMgQ09NIElOVCBPVEMgUFVSIFNUQSJYbm8tc3RvcmVYbm8tY2FjaGVfEBpybWFzLXNl
cnZlci1jb3JlLWx6MS8zLjYuMF8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UVDQxNTlV
Y2xvc2XSKitYWaNZWi5fEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyedIqK1xdo11e
Ll8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBk
AIIAiACfAKYAqQCsAK8AsgC1ALgAuwC+AMEAxADGAMgAygDMAM4A0ADSANQA1gDYAN8A5wDzAPUA
9wD5AUMBSAFRAVwBXwFlAW4BdwF5AXsBggGKAZUBlwGgAaIBpAGmAagBqgGsAa4BsAG5AbsBvQG/
AcEBwwHFAccByQHNAdsB4gHpAe4B/QIIAhYCfAKFAo4CqwLLAtAC1gLbAt8C9QMCAwcDCwMfAAAA
AAAAAgEAAAAAAAAAXwAAAAAAAAAAAAAAAAAAAy1PERA/LyogQWxsIHBvcnRpb25zIG9mIHRoaXMg
c29mdHdhcmUgYXJlIGNvcHlyaWdodCAoYykgMjAwMy0yMDA2IFJpZ2h0IE1lZGlhKi92YXIgcm1f
YmFuX2ZsYXNoPTA7dmFyIHJtX3VybD0iIjt2YXIgcm1fcG9wX2ZyZXF1ZW5jeT0wO3ZhciBybV9w
b3BfaWQ9MDt2YXIgcm1fcG9wX3RpbWVzPTA7dmFyIHJtX3BvcF9ub2ZyZXFjYXA9MDt2YXIgcm1f
cGFzc2JhY2s9MDt2YXIgcm1fdGFnX3R5cGU9IiI7cm1fdGFnX3R5cGUgPSAiYWQiOyBybV91cmwg
PSAiaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vaW1wP1o9MzAweDI1MCZzPTMwNzk0MiZfc2Fs
dD0zMzQ3NjQyNDk3Ijt2YXIgUk1fUE9QX0NPT0tJRV9OQU1FPSd5bV9wb3BfZnJlcSc7dmFyIFJN
X0lOVF9DT09LSUVfTkFNRT0neW1faW50X2ZyZXEnO2lmKCF3aW5kb3cucm1fY3JleF9kYXRhKXty
bV9jcmV4X2RhdGE9bmV3IEFycmF5KCk7fWlmKHJtX3Bhc3NiYWNrPT0wKXtybV9wYl9kYXRhPW5l
dyBBcnJheSgpO2lmKHJtX2NyZXhfZGF0YS5sZW5ndGg+MCl7cm1fdXJsKz0iJlg9Ijtmb3IodmFy
IGk9MDtpPHJtX2NyZXhfZGF0YS5sZW5ndGg7aSsrKXtybV91cmwrPXJtX2NyZXhfZGF0YVtpXTtp
ZihpIT1ybV9jcmV4X2RhdGEubGVuZ3RoLTEpe3JtX3VybCs9IiwiO319fX1lbHNle3JtX3BiX2Rh
dGEucHVzaChybV9jcmV4X2RhdGEucG9wKCkpO3JtX3VybCs9IiZYPSI7Zm9yKHZhciBpPTA7aTxy
bV9wYl9kYXRhLmxlbmd0aDtpKyspe3JtX3VybCs9cm1fcGJfZGF0YVtpXTtpZihpIT1ybV9wYl9k
YXRhLmxlbmd0aC0xKXtybV91cmwrPSIsIjt9fXJtX3VybCs9IiZZPXBiIjt9dmFyIGZsYXNoPW5l
dyBPYmplY3QoKTtmbGFzaD1mbGFzaERldGVjdGlvbigpO2lmKGNvb2tpZXNFbmFibGVkKCkpe3Jt
X3VybCs9KGZsYXNoLmluc3RhbGxlZD8iJkI9MTAiOiImQj0xMiIpO31lbHNle3JtX3VybCs9KGZs
YXNoLmluc3RhbGxlZD8iJkI9MTEiOiImQj0xMyIpO31pZighZmxhc2guaW5zdGFsbGVkfHxybV9i
YW5fZmxhc2g9PTEpe3JtX3VybCs9IiZtPTIiO312YXIgdXJsPScnO3RyeXtpZihybV90YWdfdHlw
ZT09ImFkIil7aWYodG9wPT1zZWxmKXt1cmw9ZW5jb2RlVVJJQ29tcG9uZW50KHRvcC5sb2NhdGlv
bi5ocmVmKTt1cmw9dXJsLnN1YnN0cigwLDI1Nik7cm1fdXJsKz0iJnU9Iit1cmw7fX1lbHNlIGlm
KHJtX3RhZ190eXBlPT0iaWZyYW1lIil7dXJsPWVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5y
ZWZlcnJlcik7dXJsPXVybC5zdWJzdHIoMCwyNTYpO3JtX3VybCs9IiZ1PSIrdXJsO319Y2F0Y2go
ZSl7fWlmKHRvcD09c2VsZil7cm1fdXJsKz0iJnI9MSI7fWVsc2V7cm1fdXJsKz0iJnI9MCI7fXZh
ciBybV90YWdfc3JjPSc8U0NSSVBUIFRZUEU9InRleHQvamF2YXNjcmlwdCIgU1JDPSInK3JtX3Vy
bCsnIj48XC9TQ1JJUFQ+JztpZihybV9wb3BfZnJlcXVlbmN5KXtpZihybUNhblNob3dQb3Aocm1f
cG9wX2lkLHJtX3BvcF90aW1lcyxybV9wb3BfZnJlcXVlbmN5KXx8cm1fcG9wX25vZnJlcWNhcCl7
ZG9jdW1lbnQud3JpdGUocm1fdGFnX3NyYyk7fX1lbHNle2RvY3VtZW50LndyaXRlKHJtX3RhZ19z
cmMpO31mdW5jdGlvbiBjb29raWVzRW5hYmxlZCgpe3ZhciBjb29raWVFbmFibGVkPShuYXZpZ2F0
b3IuY29va2llRW5hYmxlZCk/dHJ1ZTpmYWxzZTtpZih0eXBlb2YgbmF2aWdhdG9yLmNvb2tpZUVu
YWJsZWQ9PSJ1bmRlZmluZWQiJiYhY29va2llRW5hYmxlZCl7ZG9jdW1lbnQuY29va2llPSJ0ZXN0
Y29va2llIjtjb29raWVFbmFibGVkPShkb2N1bWVudC5jb29raWUuaW5kZXhPZigidGVzdGNvb2tp
ZSIpIT0tMSk/dHJ1ZTpmYWxzZTt9cmV0dXJuIGNvb2tpZUVuYWJsZWQ7fWZ1bmN0aW9uIHJtR2V0
Q29va2llKE5hbWUpe3ZhciBzZWFyY2g9TmFtZSsiPSI7dmFyIENvb2tpZVN0cmluZz1kb2N1bWVu
dC5jb29raWU7dmFyIHJlc3VsdD1udWxsO2lmKENvb2tpZVN0cmluZy5sZW5ndGg+MCl7b2Zmc2V0
PUNvb2tpZVN0cmluZy5pbmRleE9mKHNlYXJjaCk7aWYob2Zmc2V0IT0tMSl7b2Zmc2V0Kz1zZWFy
Y2gubGVuZ3RoO2VuZD1Db29raWVTdHJpbmcuaW5kZXhPZigiOyIsb2Zmc2V0KTtpZihlbmQ9PS0x
KXtlbmQ9Q29va2llU3RyaW5nLmxlbmd0aDt9cmVzdWx0PXVuZXNjYXBlKENvb2tpZVN0cmluZy5z
dWJzdHJpbmcob2Zmc2V0LGVuZCkpO319cmV0dXJuIHJlc3VsdDt9ZnVuY3Rpb24gZmxhc2hEZXRl
Y3Rpb24oKXt2YXIgZmxhc2g9bmV3IE9iamVjdCgpO2ZsYXNoLmluc3RhbGxlZD1mYWxzZTtmbGFz
aC52ZXJzaW9uPScwLjAnO2lmKG5hdmlnYXRvci5wbHVnaW5zJiZuYXZpZ2F0b3IucGx1Z2lucy5s
ZW5ndGgpe2Zvcih4PTA7eDxuYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGg7eCsrKXtpZihuYXZpZ2F0
b3IucGx1Z2luc1t4XS5uYW1lLmluZGV4T2YoJ1Nob2Nrd2F2ZSBGbGFzaCcpIT0tMSl7Zmxhc2gu
dmVyc2lvbj1uYXZpZ2F0b3IucGx1Z2luc1t4XS5kZXNjcmlwdGlvbi5zcGxpdCgnU2hvY2t3YXZl
IEZsYXNoICcpWzFdO2ZsYXNoLmluc3RhbGxlZD10cnVlO2JyZWFrO319fWVsc2UgaWYod2luZG93
LkFjdGl2ZVhPYmplY3Qpe2Zvcih4PTI7eDwxMDt4Kyspe3RyeXtvRmxhc2g9ZXZhbCgibmV3IEFj
dGl2ZVhPYmplY3QoJ1Nob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLiIreCsiJyk7Iik7aWYo
b0ZsYXNoKXtmbGFzaC5pbnN0YWxsZWQ9dHJ1ZTtmbGFzaC52ZXJzaW9uPXgrJy4wJzt9fWNhdGNo
KGUpe319fXJldHVybiBmbGFzaDt9ZnVuY3Rpb24gcm1SZXBsYWNlKG15U3RyaW5nLHRvUmVwbGFj
ZSxyZXBsYWNlQnkpe3JldHVybihteVN0cmluZy5yZXBsYWNlKG5ldyBSZWdFeHAodG9SZXBsYWNl
LCdnaScpLHJlcGxhY2VCeSkpO31mdW5jdGlvbiB3cml0ZUNvb2tpZShja05hbWUsY2tWYWwpe3Zh
ciBudW1kYXlzPTE0O3ZhciB0b2RheT1uZXcgRGF0ZSgpO3ZhciBleHBpcmVzPW5ldyBEYXRlKCk7
ZXhwaXJlcy5zZXRUaW1lKHRvZGF5LmdldFRpbWUoKSsoMTAwMCo2MCo2MCoyNCpudW1kYXlzKSk7
dmFyIGNvb2tpZVRleHQ9Y2tOYW1lKyI9Iitja1ZhbCsiO2V4cGlyZXM9IitleHBpcmVzLnRvR01U
U3RyaW5nKCkrIjtwYXRoPS87Ijtkb2N1bWVudC5jb29raWU9Y29va2llVGV4dDtyZXR1cm4gbnVs
bDt9ZnVuY3Rpb24gcm1DYW5TaG93UG9wKHJtX3BvcF9pZCxwb3BfdGltZXMscG9wX2ZyZXF1ZW5j
eSl7dmFyIGNvdW50Q29va2llTmFtZT1STV9QT1BfQ09PS0lFX05BTUUrcm1fcG9wX2lkO3ZhciBl
eHBpcmVDb29raWVOYW1lPVJNX1BPUF9DT09LSUVfTkFNRSsiX2V4cGlyYXRpb24iK3JtX3BvcF9p
ZDt2YXIgc2hvd25UaW1lcz1ybUdldENvb2tpZShjb3VudENvb2tpZU5hbWUpO2lmKHNob3duVGlt
ZXM9PW51bGwpe3JtV3JpdGVFeHBpcmF0aW9uQ29va2llKGV4cGlyZUNvb2tpZU5hbWUscG9wX2Zy
ZXF1ZW5jeSk7c2hvd25UaW1lcz0wO31lbHNle3Nob3duVGltZXM9TnVtYmVyKHNob3duVGltZXMp
O31pZihzaG93blRpbWVzPHBvcF90aW1lcyl7c2hvd25UaW1lcz0xK3Nob3duVGltZXM7dmFyIGV4
cGlyYXRpb249cm1HZXRDb29raWUoZXhwaXJlQ29va2llTmFtZSk7cm1Xcml0ZVBvcEZyZXF1ZW5j
eUNvb2tpZShybV9wb3BfaWQsc2hvd25UaW1lcyxleHBpcmF0aW9uKTtyZXR1cm5fdmFsdWU9dHJ1
ZTt9ZWxzZXtyZXR1cm5fdmFsdWU9ZmFsc2U7fXJldHVybiByZXR1cm5fdmFsdWU7fWZ1bmN0aW9u
IHJtV3JpdGVQb3BGcmVxdWVuY3lDb29raWUocm1fcG9wX2lkLHNob3duVGltZXMsZXhwaXJhdGlv
bil7dmFyIGNvb2tpZU5hbWU9Uk1fUE9QX0NPT0tJRV9OQU1FK3JtX3BvcF9pZDt2YXIgY29va2ll
VGV4dD1jb29raWVOYW1lKyI9IitzaG93blRpbWVzKyI7IisiZXhwaXJlcz0iK2V4cGlyYXRpb24r
IjtwYXRoPS87Ijtkb2N1bWVudC5jb29raWU9Y29va2llVGV4dDt9ZnVuY3Rpb24gcm1Xcml0ZUV4
cGlyYXRpb25Db29raWUoY29va2llTmFtZSxmcmVxdWVuY3kpe3ZhciB0b2RheT1uZXcgRGF0ZSgp
O3ZhciBleHBpcmVzPW5ldyBEYXRlKCk7ZXhwaXJlcy5zZXRUaW1lKHRvZGF5LmdldFRpbWUoKSso
MTAwMCpmcmVxdWVuY3kpKTt2YXIgY29va2llVGV4dD1jb29raWVOYW1lKyI9IitleHBpcmVzLnRv
R01UU3RyaW5nKCkrIjsiKyJleHBpcmVzPSIrZXhwaXJlcy50b0dNVFN0cmluZygpKyI7cGF0aD0v
OyI7ZG9jdW1lbnQuY29va2llPWNvb2tpZVRleHQ7fdQABQARAAcACADWANcAFADYXxDtaHR0cDov
L2FkLnlpZWxkbWFuYWdlci5jb20vaW1wP1o9MzAweDI1MCZzPTMwNzk0MiZfc2FsdD0zMzQ3NjQy
NDk3Jlg9MTIxMDEyMSwxMjg2MTQ3JkI9MTAmdT1odHRwJTNBJTJGJTJGd3d3Lm55dGltZXMuY29t
JTJGMjAwOCUyRjExJTJGMTAlMkZoZWFsdGglMkYxMGhlYXJ0Lmh0bWwlM0ZfciUzRDIlMjZwYXJ0
bmVyJTNEcnNzbnl0JTI2ZW1jJTNEcnNzJTI2b3JlZiUzRHNsb2dpbiUyNm9yZWYlM0RzbG9naW4m
cj0xTxEGgWJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3Rz
EgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEB8LDCIo
KS8wMTJMTU5PUFFSU1RVVldYWVpbWFxdXl9jVSRudWxs2w0ODxAREhMUFRYXGBkaGxwdHh8gGiFW
JGNsYXNzUiQzUiQ4UiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgB6AAhAIgAaAB4AFgAgQBRAAEAHT
DSMkJSYnV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEO1odHRwOi8vYWQueWllbGRtYW5hZ2Vy
LmNvbS9pbXA/Wj0zMDB4MjUwJnM9MzA3OTQyJl9zYWx0PTMzNDc2NDI0OTcmWD0xMjEwMTIxLDEy
ODYxNDcmQj0xMCZ1PWh0dHAlM0ElMkYlMkZ3d3cubnl0aW1lcy5jb20lMkYyMDA4JTJGMTElMkYx
MCUyRmhlYWx0aCUyRjEwaGVhcnQuaHRtbCUzRl9yJTNEMiUyNnBhcnRuZXIlM0Ryc3NueXQlMjZl
bWMlM0Ryc3MlMjZvcmVmJTNEc2xvZ2luJTI2b3JlZiUzRHNsb2dpbiZyPTHSKissLVgkY2xhc3Nl
c1okY2xhc3NuYW1loi0uVU5TVVJMWE5TT2JqZWN0I0GtkfsIL6MzEAIQyNMNMzQ1NkFXTlMua2V5
c1pOUy5vYmplY3RzgB2qNzg5Ojs8PT4/QIAJgAqAC4AMgA2ADoAPgBCAEYASqkJDREVGR0hJSkuA
E4AUgBWAFoAXgBiAGYAagBuAHFNQM3BdQ2FjaGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkVlByYWdt
YVZTZXJ2ZXJcQ29udGVudC1UeXBlVERhdGVeQ29udGVudC1MZW5ndGhaQ29ubmVjdGlvblpTZXQt
Q29va2llXxBjcG9saWN5cmVmPSIvdzNjL3AzcC54bWwiLCBDUD0iTk9JIERTUCBDT1IgTklEIENV
UmEgQURNYSBERVZhIFBTQWEgUFNEYSBPVVIgQlVTIENPTSBJTlQgT1RDIFBVUiBTVEEiWG5vLXN0
b3JlXxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NCBHTVRYbm8tY2FjaGVfEBpybWFzLXNlcnZl
ci1jb3JlLWx6MS8zLjYuMF8QGGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFMzNzlVY2xvc2VfEQF6
ZmxfaW5zdD0xOyBwYXRoPS87IGV4cGlyZXM9U2F0LCAwOS1NYXktMjAwOSAyMzozODo0NCBHTVQs
IGloPSJiISEhISMhI0ZzbCEhISEjOk1zSlAiOyBwYXRoPS87IGV4cGlyZXM9V2VkLCAxMC1Ob3Yt
MjAxMCAyMzozODo0NCBHTVQsIHVpZD11aWQ9YjY1OGY1NzgtYWY4MC0xMWRkLWI1N2EtMDAxY2M0
YTUyZWMyJl9obWFjdj0xJl9zYWx0PTI0Mjg5OTcyMTMmX2tleWlkPWsxJl9obWFjPWY4ODUyMjY1
ZDYxMGFjY2RlMzczM2MyYmM3ZmU3NmQ1Nzg2MTk0ZDg7IHBhdGg9LzsgZXhwaXJlcz1XZWQsIDEw
LURlYy0yMDA4IDIzOjM4OjQ0IEdNVCwgdnVkYXkxPVpDMGR6ITlfNlJSbShwUTsgcGF0aD0vOyBl
eHBpcmVzPVR1ZSwgMTEtTm92LTIwMDggMDA6MDA6MDAgR01U0iorYGGjYWIuXxATTlNNdXRhYmxl
RGljdGlvbmFyeVxOU0RpY3Rpb25hcnnSKitkZaNlZi5fEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VS
TFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACGAIwAowCqAK0AsACzALYAuQC8AL8AwgDF
AMgAygDMAM4A0ADSANQA1gDYANoA3ADjAOsA9wD5APsA/QHtAfIB+wIGAgkCDwIYAiECIwIlAiwC
NAI/AkECTAJOAlACUgJUAlYCWAJaAlwCXgJgAmsCbQJvAnECcwJ1AncCeQJ7An0CfwKDApECnwKm
Aq0CugK/As4C2QLkA0oDUwNzA3wDmQO0A7gDvgU8BUEFRQVbBWgFbQVxBYUAAAAAAAACAQAAAAAA
AABnAAAAAAAAAAAAAAAAAAAFk08RAXtkb2N1bWVudC53cml0ZSgnPGlmcmFtZSBzY3JvbGxpbmc9
XCJub1wiIG1hcmdpbndpZHRoPVwiMFwiIG1hcmdpbmhlaWdodD1cIjBcIiBmcmFtZWJvcmRlcj1c
IjBcIiBoZWlnaHQ9XCIyNTBcIiB3aWR0aD1cIjMwMFwiIHNyYz1cImh0dHA6Ly93d3cubnl0aW1l
cy5jb20vYWRzL2FkdmVydGlzaW5nY29tL3Jldl9BZGNvbV8zMDB4MjUwX3RpZXIxLmh0bWxcIj48
L2lmcmFtZT4nKTsKdmFyIHJtX2RhdGEgPSBuZXcgT2JqZWN0KCk7CnJtX2RhdGEuY3JlYXRpdmVf
aWQgPSA4NjY0NzY7CnJtX2RhdGEub2ZmZXJfdHlwZSA9IDM7CnJtX2RhdGEuZW50aXR5X2lkID0g
ODEyMTY7CmlmICh3aW5kb3cucm1fY3JleF9kYXRhKSB7cm1fY3JleF9kYXRhLnB1c2goODY2NDc2
KTt91QAFAAYAEQAHAAgA2gDbANwAawDdXxA3aHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRp
b24uY29tL3BhZ2VhZC9zaG93X2Fkcy5qc1V1dGYtOE8RBKlicGxpc3QwMNQBAgMEBQYJClgkdmVy
c2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25z
ZYABXxAPTlNLZXllZEFyY2hpdmVyrxAeCwwmLC0zHjQ1TU5PUFFSU1RVVldYWVpbXF1eX2NkVSRu
dWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2
UiQ0UiQ3UiQyUiQ5UiQwUiQxgB2AAoAcEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNl
W05TLnJlbGF0aXZlgASAAIADXxA3aHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29t
L3BhZ2VhZC9zaG93X2Fkcy5qc9IuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNP
YmplY3QjQa2R+whU3AEQyNMNNjc4OUNXTlMua2V5c1pOUy5vYmplY3RzgBupOjs8PT4/QEFCgAmA
CoALgAyADYAOgA+AEIARqURFRkdISUpLTIASgBOAFIAVgBaAF4AYgBmAGlNQM3BXRXhwaXJlc11D
YWNoZS1Db250cm9sXxAQQ29udGVudC1FbmNvZGluZ1xDb250ZW50LVR5cGVWU2VydmVyVERhdGVe
Q29udGVudC1MZW5ndGhdTGFzdC1Nb2RpZmllZF8QbHBvbGljeXJlZj0iaHR0cDovL3d3dy5nb29n
bGVhZHNlcnZpY2VzLmNvbS9wYWdlYWQvcDNwLnhtbCIsIENQPSJOT0kgREVWIFBTQSBQU0QgSVZB
IFBWRCBPVFAgT1VSIE9UUiBJTkQgT1RDIl8QHVR1ZSwgMTEgTm92IDIwMDggMjM6Mzg6NDQgR01U
XxApcHVibGljLCBtYXgtYWdlPTg2NDAwLCB4LWd6aXAtb2s9InB1YmxpYyJUZ3ppcF8QHnRleHQv
amF2YXNjcmlwdDsgY2hhcnNldD1VVEYtOFRjYWZlXxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0
NCBHTVRVMTc2OTRfEB1UaHUsIDMwIE9jdCAyMDA4IDIwOjMwOjQ3IEdNVNIuL2Bho2FiMl8QE05T
TXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EchW0i4vZWajZmcyXxARTlNIVFRQVVJMUmVz
cG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAhQCLAKYArQCwALMAtwC7
AL4AwQDEAMcAygDNANAA0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA6wDyAPoBBgEIAQoBDAFGAUsB
VAFfAWIBaAFxAXoBfAGDAYsBlgGYAaIBpAGmAagBqgGsAa4BsAGyAbQBvgHAAcIBxAHGAcgBygHM
Ac4B0AHUAdwB6gH9AgoCEQIWAiUCMwKiAsIC7gLzAxQDGQM5Az8DXwNkA2gDfgOLA44DkwOXA6sA
AAAAAAACAQAAAAAAAABoAAAAAAAAAAAAAAAAAAADuU8RyFYoZnVuY3Rpb24oKXsKdmFyIGg9ZmFs
c2UsaT1udWxsLG09dHJ1ZSxuPWRvY3VtZW50LHE9bmF2aWdhdG9yLHM9d2luZG93OwpmdW5jdGlv
biBhYSgpe3ZhciBhPW4uY29va2llLGI9TWF0aC5yb3VuZCgobmV3IERhdGUpLmdldFRpbWUoKS8x
MDAwKSxjPXMuZ29vZ2xlX2FuYWx5dGljc19kb21haW5fbmFtZSxkPXR5cGVvZiBjPT0idW5kZWZp
bmVkIj9iYSgiYXV0byIpOmJhKGMpLGU9YS5pbmRleE9mKCJfX3V0bWE9IitkKyIuIik+LTEsZj1h
LmluZGV4T2YoIl9fdXRtYj0iK2QpPi0xLGc9YS5pbmRleE9mKCJfX3V0bWM9IitkKT4tMSxqLGs9
e307aWYoZSl7aj1hLnNwbGl0KCJfX3V0bWE9IitkKyIuIilbMV0uc3BsaXQoIjsiKVswXS5zcGxp
dCgiLiIpO2suc2lkPWYmJmc/alszXSsiIjpzJiZzLmdhR2xvYmFsJiZzLmdhR2xvYmFsLnNpZD9z
LmdhR2xvYmFsLnNpZDpiKyIiO2sudmlkPWpbMF0rIi4iK2pbMV07ay5mcm9tX2Nvb2tpZT1tfWVs
c2V7ay5zaWQ9cyYmcy5nYUdsb2JhbCYmcy5nYUdsb2JhbC5zaWQ/cy5nYUdsb2JhbC5zaWQ6Yisi
IjtrLnZpZD1zJiZzLmdhR2xvYmFsJiZzLmdhR2xvYmFsLnZpZD8Kcy5nYUdsb2JhbC52aWQ6KGNh
KCleZGEoKSYyMTQ3NDgzNjQ3KSsiLiIrYjtrLmZyb21fY29va2llPWh9ay5kaD1kO2suaGlkPXMm
JnMuZ2FHbG9iYWwmJnMuZ2FHbG9iYWwuaGlkP3MuZ2FHbG9iYWwuaGlkOmNhKCk7cy5nYUdsb2Jh
bD1rO3JldHVybiBrfWZ1bmN0aW9uIGNhKCl7cmV0dXJuIE1hdGgucm91bmQoTWF0aC5yYW5kb20o
KSoyMTQ3NDgzNjQ3KX0KZnVuY3Rpb24gZGEoKXt2YXIgYT1uLmNvb2tpZT9uLmNvb2tpZToiIixi
PXMuaGlzdG9yeS5sZW5ndGgsYyxkLGU9W3EuYXBwTmFtZSxxLnZlcnNpb24scS5sYW5ndWFnZT9x
Lmxhbmd1YWdlOnEuYnJvd3Nlckxhbmd1YWdlLHEucGxhdGZvcm0scS51c2VyQWdlbnQscS5qYXZh
RW5hYmxlZCgpPzE6MF0uam9pbigiIik7aWYocy5zY3JlZW4pZSs9cy5zY3JlZW4ud2lkdGgrIngi
K3Muc2NyZWVuLmhlaWdodCtzLnNjcmVlbi5jb2xvckRlcHRoO2Vsc2UgaWYocy5qYXZhKXtkPWph
dmEuYXd0LlRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTY3JlZW5TaXplKCk7ZSs9ZC5z
Y3JlZW4ud2lkdGgrIngiK2Quc2NyZWVuLmhlaWdodH1lKz1hO2UrPW4ucmVmZXJyZXI/bi5yZWZl
cnJlcjoiIjtjPWUubGVuZ3RoO3doaWxlKGI+MCllKz1iLS1eYysrO3JldHVybiBlYShlKX0KZnVu
Y3Rpb24gZWEoYSl7dmFyIGI9MSxjPTAsZCxlO2lmKCEoYT09dW5kZWZpbmVkfHxhPT0iIikpe2I9
MDtmb3IoZD1hLmxlbmd0aC0xO2Q+PTA7ZC0tKXtlPWEuY2hhckNvZGVBdChkKTtiPShiPDw2JjI2
ODQzNTQ1NSkrZSsoZTw8MTQpO2M9YiYyNjYzMzgzMDQ7Yj1jIT0wP2JeYz4+MjE6Yn19cmV0dXJu
IGJ9ZnVuY3Rpb24gYmEoYSl7aWYoIWF8fGE9PSIifHxhPT0ibm9uZSIpcmV0dXJuIDE7aWYoImF1
dG8iPT1hKXthPW4uZG9tYWluO2lmKCJ3d3cuIj09YS5zdWJzdHJpbmcoMCw0KSlhPWEuc3Vic3Ry
aW5nKDQsYS5sZW5ndGgpfXJldHVybiBlYShhLnRvTG93ZXJDYXNlKCkpfTt2YXIgZmE9e2dvb2ds
ZV9hZF9jaGFubmVsOiJjaGFubmVsIixnb29nbGVfYWRfaG9zdDoiaG9zdCIsZ29vZ2xlX2FkX2hv
c3RfY2hhbm5lbDoiaF9jaCIsZ29vZ2xlX2FkX2hvc3RfdGllcl9pZDoiaHRfaWQiLGdvb2dsZV9h
ZF9yZWdpb246InJlZ2lvbiIsZ29vZ2xlX2FkX3NlY3Rpb246InJlZ2lvbiIsZ29vZ2xlX2FkX3R5
cGU6ImFkX3R5cGUiLGdvb2dsZV9hZHRlc3Q6ImFkdGVzdCIsZ29vZ2xlX2FsbG93X2V4cGFuZGFi
bGVfYWRzOiJlYSIsZ29vZ2xlX2FsdGVybmF0ZV9hZF91cmw6ImFsdGVybmF0ZV9hZF91cmwiLGdv
b2dsZV9hbHRlcm5hdGVfY29sb3I6ImFsdF9jb2xvciIsZ29vZ2xlX2JpZDoiYmlkIixnb29nbGVf
Y2l0eToiZ2NzIixnb29nbGVfY29sb3JfYmc6ImNvbG9yX2JnIixnb29nbGVfY29sb3JfYm9yZGVy
OiJjb2xvcl9ib3JkZXIiLGdvb2dsZV9jb2xvcl9saW5lOiJjb2xvcl9saW5lIixnb29nbGVfY29s
b3JfbGluazoiY29sb3JfbGluayIsZ29vZ2xlX2NvbG9yX3RleHQ6ImNvbG9yX3RleHQiLApnb29n
bGVfY29sb3JfdXJsOiJjb2xvcl91cmwiLGdvb2dsZV9jb250ZW50czoiY29udGVudHMiLGdvb2ds
ZV9jb3VudHJ5OiJnbCIsZ29vZ2xlX2N1c3RfYWdlOiJjdXN0X2FnZSIsZ29vZ2xlX2N1c3RfY2g6
ImN1c3RfY2giLGdvb2dsZV9jdXN0X2dlbmRlcjoiY3VzdF9nZW5kZXIiLGdvb2dsZV9jdXN0X2lk
OiJjdXN0X2lkIixnb29nbGVfY3VzdF9pbnRlcmVzdHM6ImN1c3RfaW50ZXJlc3RzIixnb29nbGVf
Y3VzdF9qb2I6ImN1c3Rfam9iIixnb29nbGVfY3VzdF9sOiJjdXN0X2wiLGdvb2dsZV9jdXN0X2xo
OiJjdXN0X2xoIixnb29nbGVfY3VzdF91X3VybDoiY3VzdF91X3VybCIsZ29vZ2xlX2Rpc2FibGVf
dmlkZW9fYXV0b3BsYXk6ImRpc2FibGVfdmlkZW9fYXV0b3BsYXkiLGdvb2dsZV9lZDoiZWQiLGdv
b2dsZV9lbmNvZGluZzoib2UiLGdvb2dsZV9mZWVkYmFjazoiZmVlZGJhY2tfbGluayIsZ29vZ2xl
X2ZsYXNoX3ZlcnNpb246ImZsYXNoIixnb29nbGVfZ2w6ImdsIixnb29nbGVfaGludHM6ImhpbnRz
IiwKZ29vZ2xlX2t3OiJrdyIsZ29vZ2xlX2t3X3R5cGU6Imt3X3R5cGUiLGdvb2dsZV9sYW5ndWFn
ZToiaGwiLGdvb2dsZV9yZWZlcnJlcl91cmw6InJlZiIsZ29vZ2xlX3JlZ2lvbjoiZ3IiLGdvb2ds
ZV9yZXVzZV9jb2xvcnM6InJldXNlX2NvbG9ycyIsZ29vZ2xlX3NhZmU6ImFkc2FmZSIsZ29vZ2xl
X3RhcmdldGluZzoidGFyZ2V0aW5nIixnb29nbGVfdWlfZmVhdHVyZXM6InVpIixnb29nbGVfdmlk
ZW9fZG9jX2lkOiJ2aWRlb19kb2NfaWQiLGdvb2dsZV92aWRlb19wcm9kdWN0X3R5cGU6InZpZGVv
X3Byb2R1Y3RfdHlwZSIsZ29vZ2xlX3BhZ2VfdXJsOiJ1cmwifSxnYT17Z29vZ2xlX2FkX2Zvcm1h
dDoiZm9ybWF0Iixnb29nbGVfYWRfb3V0cHV0OiJvdXRwdXQiLGdvb2dsZV9hZF9jYWxsYmFjazoi
Y2FsbGJhY2siLGdvb2dsZV9hZF9vdmVycmlkZToiZ29vZ2xlX2FkX292ZXJyaWRlIixnb29nbGVf
YWRfc2xvdDoic2xvdG5hbWUiLGdvb2dsZV9hbmFseXRpY3NfdWFjY3Q6ImdhX3dwaWRzIiwKZ29v
Z2xlX2NvcnJlbGF0b3I6ImNvcnJlbGF0b3IiLGdvb2dsZV9jcGFfY2hvaWNlOiJjcGFfY2hvaWNl
Iixnb29nbGVfY3RyX3RocmVzaG9sZDoiY3RyX3QiLGdvb2dsZV9pbWFnZV9zaXplOiJpbWFnZV9z
aXplIixnb29nbGVfbGFzdF9tb2RpZmllZF90aW1lOiJsbXQiLGdvb2dsZV9tYXhfbnVtX2Fkczoi
bnVtX2FkcyIsZ29vZ2xlX21heF9yYWRsaW5rX2xlbjoibWF4X3JhZGxpbmtfbGVuIixnb29nbGVf
bnVtX3JhZGxpbmtzOiJudW1fcmFkbGlua3MiLGdvb2dsZV9udW1fcmFkbGlua3NfcGVyX3VuaXQ6
Im51bV9yYWRsaW5rc19wZXJfdW5pdCIsZ29vZ2xlX29ubHlfYWRzX3dpdGhfdmlkZW86Im9ubHlf
YWRzX3dpdGhfdmlkZW8iLGdvb2dsZV9wYWdlX2xvY2F0aW9uOiJsb2MiLGdvb2dsZV9ybF9kZXN0
X3VybDoicmxfZGVzdF91cmwiLGdvb2dsZV9ybF9maWx0ZXJpbmc6InJsX2ZpbHRlcmluZyIsZ29v
Z2xlX3JsX21vZGU6InJsX21vZGUiLGdvb2dsZV9ydDoicnQiLGdvb2dsZV9za2lwOiJza2lwIn07
ZnVuY3Rpb24gaGEoKXt9aGEucHJvdG90eXBlLkViPWZ1bmN0aW9uKCl7fTtoYS5wcm90b3R5cGUu
RmI9ZnVuY3Rpb24oKXt9O2hhLnByb3RvdHlwZS5EYj1mdW5jdGlvbigpe307dmFyIHU9aTtmdW5j
dGlvbiBpYShhKXt1JiZ1LkViKGEpfWZ1bmN0aW9uIGphKGEpe3UmJnUuRmIoYSl9ZnVuY3Rpb24g
a2EoYSl7dSYmdS5EYihhKX1mdW5jdGlvbiB2KCl7dGhpcy5GPXRoaXMudGIoKTt0aGlzLmlhPWg7
aWYoIXRoaXMuRil7dGhpcy5pYT10aGlzLlZhKCk7dGhpcy5pYXx8amEoIkJyb3dzZXIgZG9lcyBu
b3QgYWxsb3cgY29va2llcyIpfX12LnByb3RvdHlwZS4kPSJfX2dhZHM9Ijt2LnByb3RvdHlwZS5O
PSJHb29nbGVBZFNlcnZpbmdUZXN0PSI7di5wcm90b3R5cGUuY2I9ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5GfTsKdi5wcm90b3R5cGUuc2V0Q29va2llSW5mbz1mdW5jdGlvbihhKXt0aGlzLkE9YS5f
Y29va2llc19bMF07aWYodGhpcy5BIT1pKXt0aGlzLkY9dGhpcy5BLl92YWx1ZV87dGhpcy5DYigp
fX07di5wcm90b3R5cGUuWWE9ZnVuY3Rpb24oYSl7dmFyIGI9KG5ldyBEYXRlKS52YWx1ZU9mKCks
Yz1uZXcgRGF0ZTtjLnNldFRpbWUoYithKTtyZXR1cm4gY307CnYucHJvdG90eXBlLlhhPWZ1bmN0
aW9uKGEpe2lmKHRoaXMuRiE9aXx8IXRoaXMuaWEpe2lhKCJTa2lwcGluZyBmZXRjaCBjb29raWUg
Y2FsbCIpO3JldHVybn12YXIgYj0ic2NyaXB0IixjPWRvY3VtZW50LmRvbWFpbixkPSJodHRwOi8v
cGFydG5lci5nb29nbGVhZHNlcnZpY2VzLmNvbS9nYW1wYWQvY29va2llLmpzP2NhbGxiYWNrPV9H
QV9nb29nbGVDb29raWVIZWxwZXIuc2V0Q29va2llSW5mbyZjbGllbnQ9IitsYShhKSsiJmRvbWFp
bj0iK2xhKGMpO2lhKCJJc3N1aW5nIGEgZmV0Y2ggY29va2llIGNhbGwgd2l0aCA8YSBocmVmPSci
K2QrIic+IitkKyI8L2E+Iik7ZG9jdW1lbnQud3JpdGUoIjwiK2IrJyBzcmM9IicrZCsnIj48Lycr
YisiPiIpfTsKdi5wcm90b3R5cGUuVmE9ZnVuY3Rpb24oKXtkb2N1bWVudC5jb29raWU9dGhpcy5O
KyJHb29kIjt2YXIgYT10aGlzLnVhKHRoaXMuTiksYj1hPT0iR29vZCI7aWYoYil7dmFyIGM9dGhp
cy5ZYSgtMSk7ZG9jdW1lbnQuY29va2llPXRoaXMuTisiOyBleHBpcmVzPSIrYy50b0dNVFN0cmlu
ZygpfXJldHVybiBifTt2LnByb3RvdHlwZS50Yj1mdW5jdGlvbigpe3ZhciBhPXRoaXMudWEodGhp
cy4kKTthIT1pP2lhKCJSZWFkIGZpcnN0IHBhcnR5IGNvb2tpZTogIithKTpqYSgiTm8gZmlyc3Qg
cGFydHkgY29va2llIGZvdW5kIik7cmV0dXJuIGF9O3YucHJvdG90eXBlLnVhPWZ1bmN0aW9uKGEp
e3ZhciBiPWRvY3VtZW50LmNvb2tpZSxjPWIuaW5kZXhPZihhKSxkPWk7aWYoYyE9LTEpe3ZhciBl
PWMrYS5sZW5ndGgsZj1iLmluZGV4T2YoIjsiLGUpO2lmKGY9PS0xKWY9Yi5sZW5ndGg7ZD1iLnN1
YnN0cmluZyhlLGYpfXJldHVybiBkfTsKdi5wcm90b3R5cGUuQ2I9ZnVuY3Rpb24oKXtpZih0aGlz
LkE9PWkpamEoIlNraXBwaW5nIGNvb2tpZSBjcmVhdGlvbjogbm8gY29va2llIGluZm8iKTtlbHNl
IGlmKHRoaXMuRj09aSlrYSgiU2tpcHBpbmcgY29va2llIGNyZWF0aW9uOiBubyBjb29raWUgdmFs
dWUiKTtlbHNle3ZhciBhPW5ldyBEYXRlO2Euc2V0VGltZSgxMDAwKnRoaXMuQS5fZXhwaXJlc18p
O3ZhciBiPXRoaXMuQS5fZG9tYWluXyxjPXRoaXMuJCt0aGlzLkYrIjsgZXhwaXJlcz0iK2EudG9H
TVRTdHJpbmcoKSsiOyBwYXRoPSIrdGhpcy5BLl9wYXRoXysiOyBkb21haW49LiIrYjtkb2N1bWVu
dC5jb29raWU9YztpYSgiV3JpdHRlbiBjb29raWU6ICIrYyl9fTtmdW5jdGlvbiBtYShhLGIpe3Zh
ciBjO3JldHVybiBhPyhjPXBhcnNlRmxvYXQoYSkpP2M6YjpifQpmdW5jdGlvbiBuYSgpe2lmKG5h
dmlnYXRvci5wbHVnaW5zJiZuYXZpZ2F0b3IubWltZVR5cGVzLmxlbmd0aCl7dmFyIGE9bmF2aWdh
dG9yLnBsdWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCJdO2lmKGEmJmEuZGVzY3JpcHRpb24pcmV0dXJu
IGEuZGVzY3JpcHRpb24ucmVwbGFjZSgvKFthLXpBLVpdfFxzKSsvLCIiKS5yZXBsYWNlKC8oXHMp
K3IvLCIuIil9ZWxzZSBpZihuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50
LmluZGV4T2YoIldpbmRvd3MgQ0UiKT49MCl7dmFyIGI9MyxjPTE7d2hpbGUoYyl0cnl7Yz1uZXcg
QWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2guIisoYisxKSk7Yisr
fWNhdGNoKGQpe2M9aX1yZXR1cm4gYi50b1N0cmluZygpfWVsc2UgaWYob2EoIm1zaWUiKSYmIXdp
bmRvdy5vcGVyYSl7dmFyIGM9aTt0cnl7Yz1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxh
c2guU2hvY2t3YXZlRmxhc2guNyIpfWNhdGNoKGQpe3ZhciBiPQowO3RyeXtjPW5ldyBBY3RpdmVY
T2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaC42Iik7Yj02O2MuQWxsb3dTY3Jp
cHRBY2Nlc3M9ImFsd2F5cyJ9Y2F0Y2goZCl7aWYoYj09NilyZXR1cm4gYi50b1N0cmluZygpfXRy
eXtjPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpfWNh
dGNoKGQpe319aWYoYyE9aSl7dmFyIGI9Yy5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKS5zcGxpdCgi
ICIpWzFdO3JldHVybiBiLnJlcGxhY2UoLywvZywiLiIpfX1yZXR1cm4iMCJ9O3ZhciBwYT1wYXx8
e30sdz10aGlzO3ZhciByYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5zcGxpdCgiLiIpLGU9Y3x8
dyxmOyEoZFswXWluIGUpJiZlLmV4ZWNTY3JpcHQmJmUuZXhlY1NjcmlwdCgidmFyICIrZFswXSk7
d2hpbGUoZC5sZW5ndGgmJihmPWQuc2hpZnQoKSkpaWYoIWQubGVuZ3RoJiZxYShiKSllW2ZdPWI7
ZWxzZSBlPWVbZl0/ZVtmXTooZVtmXT17fSl9LHNhPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zcGxp
dCgiLiIpLGQ9Ynx8dztmb3IodmFyIGU7ZT1jLnNoaWZ0KCk7KWlmKGRbZV0pZD1kW2VdO2Vsc2Ug
cmV0dXJuIGk7cmV0dXJuIGR9Owp2YXIgeD1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtpZihi
PT0ib2JqZWN0IilpZihhKXtpZih0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgYS5z
cGxpY2UhPSJ1bmRlZmluZWQiJiYhdGEoYSwibGVuZ3RoIikpcmV0dXJuImFycmF5IjtpZih0eXBl
b2YgYS5jYWxsIT0idW5kZWZpbmVkIilyZXR1cm4iZnVuY3Rpb24ifWVsc2UgcmV0dXJuIm51bGwi
O2Vsc2UgaWYoYj09ImZ1bmN0aW9uIiYmdHlwZW9mIGEuY2FsbD09InVuZGVmaW5lZCIpcmV0dXJu
Im9iamVjdCI7cmV0dXJuIGJ9LHVhPWZ1bmN0aW9uKGEsYil7aWYoYiBpbiBhKWZvcih2YXIgYyBp
biBhKWlmKGM9PWImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGIpKXJl
dHVybiBtO3JldHVybiBofTsKaWYoT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJs
ZSl2YXIgdGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSBpbnN0YW5jZW9mIE9iamVjdD9PYmplY3Qu
cHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoYSxiKTp1YShhLGIpfTtlbHNlIHRh
PXVhO3ZhciBxYT1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEhPSJ1bmRlZmluZWQifTt2YXIg
dmE9ZnVuY3Rpb24oYSl7dmFyIGI9eChhKTtyZXR1cm4gYj09ImFycmF5Inx8Yj09Im9iamVjdCIm
JnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciJ9Owp2YXIgeT1mdW5jdGlvbihhKXtyZXR1cm4geChh
KT09ImZ1bmN0aW9uIn0sd2E9ZnVuY3Rpb24oYSl7dmFyIGI9eChhKTtyZXR1cm4gYj09Im9iamVj
dCJ8fGI9PSJhcnJheSJ8fGI9PSJmdW5jdGlvbiJ9LHphPWZ1bmN0aW9uKGEpe2lmKGEuaGFzT3du
UHJvcGVydHkmJmEuaGFzT3duUHJvcGVydHkoeGEpKXt2YXIgYj1hW3hhXTtpZihiKXJldHVybiBi
fWFbeGFdfHwoYVt4YV09Kyt5YSk7cmV0dXJuIGFbeGFdfSx4YT0iY2xvc3VyZV9oYXNoQ29kZV8i
LHlhPTAsej1mdW5jdGlvbihhLGIpe3ZhciBjPWEuR2I7aWYoYXJndW1lbnRzLmxlbmd0aD4yKXt2
YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7YyYmZC51bnNoaWZ0
LmFwcGx5KGQsYyk7Yz1kfWI9YS5JYnx8YjthPWEuSGJ8fGE7dmFyIGUsZj1ifHx3O2U9Yz9mdW5j
dGlvbigpe3ZhciBnPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7Zy51bnNo
aWZ0LmFwcGx5KGcsYyk7cmV0dXJuIGEuYXBwbHkoZiwKZyl9OmZ1bmN0aW9uKCl7cmV0dXJuIGEu
YXBwbHkoZixhcmd1bWVudHMpfTtlLkdiPWM7ZS5JYj1iO2UuSGI9YTtyZXR1cm4gZX0sQWE9RGF0
ZS5ub3d8fGZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9LEJhPWZ1bmN0aW9u
KGEsYixjKXtyYShhLGIsYyl9LEE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7fWMucHJvdG90
eXBlPWIucHJvdG90eXBlO2Eubz1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3Rv
dHlwZS5jb25zdHJ1Y3Rvcj1hfTt2YXIgQ2E9ZnVuY3Rpb24oYSxiLGMpe2lmKGEuaW5kZXhPZily
ZXR1cm4gYS5pbmRleE9mKGIsYyk7aWYoQXJyYXkuaW5kZXhPZilyZXR1cm4gQXJyYXkuaW5kZXhP
ZihhLGIsYyk7dmFyIGQ9Yz09aT8wOmM8MD9NYXRoLm1heCgwLGEubGVuZ3RoK2MpOmM7Zm9yKHZh
ciBlPWQ7ZTxhLmxlbmd0aDtlKyspaWYoZSBpbiBhJiZhW2VdPT09YilyZXR1cm4gZTtyZXR1cm4t
MX0sRGE9ZnVuY3Rpb24oYSxiLGMpe2lmKGEuZm9yRWFjaClhLmZvckVhY2goYixjKTtlbHNlIGlm
KEFycmF5LmZvckVhY2gpQXJyYXkuZm9yRWFjaChhLGIsYyk7ZWxzZXt2YXIgZD1hLmxlbmd0aCxl
PXR5cGVvZiBhPT0ic3RyaW5nIj9hLnNwbGl0KCIiKTphO2Zvcih2YXIgZj0wO2Y8ZDtmKyspZiBp
biBlJiZiLmNhbGwoYyxlW2ZdLGYsYSl9fSxFYT1mdW5jdGlvbihhLGIpe3ZhciBjPUNhKGEsYiks
ZDtpZihkPWMhPS0xKUFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChhLGMsMSkubGVuZ3RoPT0x
O3JldHVybiBkfTsKdmFyIEZhPWZ1bmN0aW9uKGEpe2lmKHgoYSk9PSJhcnJheSIpcmV0dXJuIGEu
Y29uY2F0KCk7ZWxzZXt2YXIgYj1bXTtmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspYltj
XT1hW2NdO3JldHVybiBifX07dmFyIEdhPWZ1bmN0aW9uKGEsYil7dGhpcy54PXFhKGEpP2E6MDt0
aGlzLnk9cWEoYik/YjowfTtHYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4i
KCIrdGhpcy54KyIsICIrdGhpcy55KyIpIn07dmFyIEI9ZnVuY3Rpb24oYSxiKXt0aGlzLndpZHRo
PWE7dGhpcy5oZWlnaHQ9Yn07Qi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4i
KCIrdGhpcy53aWR0aCsiIHggIit0aGlzLmhlaWdodCsiKSJ9O0IucHJvdG90eXBlLmNlaWw9ZnVu
Y3Rpb24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRo
LmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtCLnByb3RvdHlwZS5mbG9vcj1mdW5jdGlv
bigpe3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZs
b29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Qi5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24o
KXt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3Vu
ZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9OwpCLnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbihh
KXt0aGlzLndpZHRoKj1hO3RoaXMuaGVpZ2h0Kj1hO3JldHVybiB0aGlzfTt2YXIgSGE9ZnVuY3Rp
b24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWIuY2FsbChjLGFbZF0sZCxhKX07dmFyIElhPWZ1bmN0
aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL15bXHNceGEwXSt8W1xzXHhhMF0rJC9nLCIiKX0sT2E9
ZnVuY3Rpb24oYSxiKXtpZihiKXJldHVybiBhLnJlcGxhY2UoSmEsIiZhbXA7IikucmVwbGFjZShL
YSwiJmx0OyIpLnJlcGxhY2UoTGEsIiZndDsiKS5yZXBsYWNlKE1hLCImcXVvdDsiKTtlbHNle2lm
KCFOYS50ZXN0KGEpKXJldHVybiBhO2lmKGEuaW5kZXhPZigiJiIpIT0tMSlhPWEucmVwbGFjZShK
YSwiJmFtcDsiKTtpZihhLmluZGV4T2YoIjwiKSE9LTEpYT1hLnJlcGxhY2UoS2EsIiZsdDsiKTtp
ZihhLmluZGV4T2YoIj4iKSE9LTEpYT1hLnJlcGxhY2UoTGEsIiZndDsiKTtpZihhLmluZGV4T2Yo
JyInKSE9LTEpYT1hLnJlcGxhY2UoTWEsIiZxdW90OyIpO3JldHVybiBhfX0sSmE9LyYvZyxLYT0v
PC9nLExhPS8+L2csTWE9L1wiL2csTmE9L1smPD5cIl0vLFBhPWZ1bmN0aW9uKGEsYil7dmFyIGM9
Yi5sZW5ndGg7Zm9yKHZhciBkPTA7ZDxjO2QrKyl7dmFyIGU9CmM9PTE/YjpiLmNoYXJBdChkKTtp
ZihhLmNoYXJBdCgwKT09ZSYmYS5jaGFyQXQoYS5sZW5ndGgtMSk9PWUpcmV0dXJuIGEuc3Vic3Ry
aW5nKDEsYS5sZW5ndGgtMSl9cmV0dXJuIGF9LFJhPWZ1bmN0aW9uKGEsYil7dmFyIGM9MCxkPUlh
KFN0cmluZyhhKSkuc3BsaXQoIi4iKSxlPUlhKFN0cmluZyhiKSkuc3BsaXQoIi4iKSxmPU1hdGgu
bWF4KGQubGVuZ3RoLGUubGVuZ3RoKTtmb3IodmFyIGc9MDtjPT0wJiZnPGY7ZysrKXt2YXIgaj1k
W2ddfHwiIixrPWVbZ118fCIiLGw9bmV3IFJlZ0V4cCgiKFxcZCopKFxcRCopIiwiZyIpLG89bmV3
IFJlZ0V4cCgiKFxcZCopKFxcRCopIiwiZyIpO2Rve3ZhciBwPWwuZXhlYyhqKXx8WyIiLCIiLCIi
XSx0PW8uZXhlYyhrKXx8WyIiLCIiLCIiXTtpZihwWzBdLmxlbmd0aD09MCYmdFswXS5sZW5ndGg9
PTApYnJlYWs7dmFyIHI9cFsxXS5sZW5ndGg9PTA/MDpwYXJzZUludChwWzFdLDEwKSxIPXRbMV0u
bGVuZ3RoPT0wPzA6cGFyc2VJbnQodFsxXSwKMTApO2M9UWEocixIKXx8UWEocFsyXS5sZW5ndGg9
PTAsdFsyXS5sZW5ndGg9PTApfHxRYShwWzJdLHRbMl0pfXdoaWxlKGM9PTApfXJldHVybiBjfSxR
YT1mdW5jdGlvbihhLGIpe2lmKGE8YilyZXR1cm4tMTtlbHNlIGlmKGE+YilyZXR1cm4gMTtyZXR1
cm4gMH07dmFyIFNhLFRhLFVhLFZhLFdhLFhhLFlhLFphLGRiLGViLGZiLGdiPWZ1bmN0aW9uKCl7
aWYody5uYXZpZ2F0b3IpcmV0dXJuIHcubmF2aWdhdG9yLnVzZXJBZ2VudDtyZXR1cm4gaX0saGI9
ZnVuY3Rpb24oKXt2YXIgYT1oLGI9aCxjPWgsZD1oLGU9aCxmPWgsZz1oLGo9aCxrPWgsbD0iIixv
PWdiKCk7aWYobyl7dmFyIHA9dy5uYXZpZ2F0b3I7YT1vLmluZGV4T2YoIk9wZXJhIik9PTA7Yj0h
YSYmby5pbmRleE9mKCJNU0lFIikhPS0xO2M9IWEmJm8uaW5kZXhPZigiV2ViS2l0IikhPS0xO2s9
YyYmby5pbmRleE9mKCJNb2JpbGUiKSE9LTE7ZD0hYSYmIWMmJnAucHJvZHVjdD09IkdlY2tvIjtl
PWQmJnAudmVuZG9yPT0iQ2FtaW5vIjt2YXIgdCxyO2lmKHcub3BlcmEpdD13Lm9wZXJhLnZlcnNp
b24oKTtlbHNle2lmKGQpcj0vcnZcOihbXlwpO10rKShcKXw7KS87ZWxzZSBpZihiKXI9L01TSUVc
cysoW15cKTtdKykoXCl8OykvO2Vsc2UgaWYoYylyPS9XZWJLaXRcLyhcUyspLztpZihyKXtyLnRl
c3Qobyk7CnQ9UmVnRXhwLiQxfX1sPXAucGxhdGZvcm18fCIiO2Y9bC5pbmRleE9mKCJNYWMiKSE9
LTE7Zz1sLmluZGV4T2YoIldpbiIpIT0tMTtqPWwuaW5kZXhPZigiTGludXgiKSE9LTF9U2E9YTtU
YT1iO1VhPWQ7VmE9ZTtXYT1jO1hhPWs7WWE9dDtaYT1sO2RiPWY7ZWI9ZztmYj1qfTtoYigpO3Zh
ciBpYj1TYSxDPVRhLGpiPVVhLEQ9V2Esa2I9WGE7dmFyIEU9ZnVuY3Rpb24oYSl7cmV0dXJuIFJh
KFlhLGEpPj0wfTt2YXIgbGI7dmFyIG1iPWZ1bmN0aW9uKCl7bGJ8fChsYj1uZXcgRik7cmV0dXJu
IGxifSxvYj1mdW5jdGlvbihhKXtyZXR1cm4gYT9uZXcgRihuYihhKSk6bWIoKX07CnZhciBwYj1m
dW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmciP2RvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGEpOmF9LHFiPXBiLHNiPWZ1bmN0aW9uKGEsYil7SGEoYixmdW5jdGlvbihjLGQpe2lmKGQ9
PSJzdHlsZSIpYS5zdHlsZS5jc3NUZXh0PWM7ZWxzZSBpZihkPT0iY2xhc3MiKWEuY2xhc3NOYW1l
PWM7ZWxzZSBpZihkPT0iZm9yIilhLmh0bWxGb3I9YztlbHNlIGlmKGQgaW4gcmIpYS5zZXRBdHRy
aWJ1dGUocmJbZF0sYyk7ZWxzZSBhW2RdPWN9KX0scmI9e2NlbGxwYWRkaW5nOiJjZWxsUGFkZGlu
ZyIsY2VsbHNwYWNpbmc6ImNlbGxTcGFjaW5nIixjb2xzcGFuOiJjb2xTcGFuIixyb3dzcGFuOiJy
b3dTcGFuIix2YWxpZ246InZBbGlnbiIsaGVpZ2h0OiJoZWlnaHQiLHdpZHRoOiJ3aWR0aCIsdXNl
bWFwOiJ1c2VNYXAiLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciJ9LHRiPWZ1bmN0aW9uKGEpe3Zh
ciBiPWF8fHd8fHdpbmRvdyxjPWIuZG9jdW1lbnQ7aWYoRCYmIUUoIjUwMCIpJiYKIWtiKXtpZih0
eXBlb2YgYi5pbm5lckhlaWdodD09InVuZGVmaW5lZCIpYj13aW5kb3c7dmFyIGQ9Yi5pbm5lckhl
aWdodCxlPWIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodDtpZihiPT1iLnRv
cClpZihlPGQpZC09MTU7cmV0dXJuIG5ldyBCKGIuaW5uZXJXaWR0aCxkKX12YXIgZj1vYihjKSxn
PWYuJGEoKT09IkNTUzFDb21wYXQiJiYoIWlifHxpYiYmRSgiOS41MCIpKT9jLmRvY3VtZW50RWxl
bWVudDpjLmJvZHk7cmV0dXJuIG5ldyBCKGcuY2xpZW50V2lkdGgsZy5jbGllbnRIZWlnaHQpfTt2
YXIgdWI9ZnVuY3Rpb24oYSxiKXthLmFwcGVuZENoaWxkKGIpfSx2Yj1mdW5jdGlvbihhKXtyZXR1
cm4gYSYmYS5wYXJlbnROb2RlP2EucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTppfTsKdmFyIHdi
PUQmJlJhKFlhLCI1MjEiKTw9MCx4Yj1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhLmNvbnRhaW5z
IT0idW5kZWZpbmVkIiYmIXdiJiZiLm5vZGVUeXBlPT0xKXJldHVybiBhPT1ifHxhLmNvbnRhaW5z
KGIpO2lmKHR5cGVvZiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIilyZXR1
cm4gYT09Ynx8Qm9vbGVhbihhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjE2KTt3aGlsZShi
JiZhIT1iKWI9Yi5wYXJlbnROb2RlO3JldHVybiBiPT1hfSxuYj1mdW5jdGlvbihhKXtyZXR1cm4g
YS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH0seWI9ZnVuY3Rpb24o
YSl7aWYoYSYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilpZih3YShhKSlyZXR1cm4gdHlwZW9m
IGEuaXRlbT09ImZ1bmN0aW9uInx8dHlwZW9mIGEuaXRlbT09InN0cmluZyI7ZWxzZSBpZih5KGEp
KXJldHVybiB0eXBlb2YgYS5pdGVtPT0iZnVuY3Rpb24iO3JldHVybiBofSwKRj1mdW5jdGlvbihh
KXt0aGlzLnM9YXx8dy5kb2N1bWVudHx8ZG9jdW1lbnR9O0YucHJvdG90eXBlLmFiPWZ1bmN0aW9u
KCl7cmV0dXJuIHRoaXMuc307Ri5wcm90b3R5cGUuT2E9ZnVuY3Rpb24oYSxiKXtpZihDJiZiJiZi
Lm5hbWUpYT0iPCIrYSsnIG5hbWU9IicrT2EoYi5uYW1lKSsnIj4nO3ZhciBjPXRoaXMuY3JlYXRl
RWxlbWVudChhKTtiJiZzYihjLGIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+Mil7ZnVuY3Rpb24gZChn
KXtpZihnKXRoaXMuYXBwZW5kQ2hpbGQoYyx0eXBlb2YgZz09InN0cmluZyI/dGhpcy5jcmVhdGVU
ZXh0Tm9kZShnKTpnKX1mb3IodmFyIGU9MjtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgZj1h
cmd1bWVudHNbZV07dmEoZikmJiEod2EoZikmJmYubm9kZVR5cGU+MCk/RGEoeWIoZik/RmEoZik6
ZixkLHRoaXMpOmQuY2FsbCh0aGlzLGYpfX1yZXR1cm4gY307Ri5wcm90b3R5cGUuY3JlYXRlRWxl
bWVudD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zLmNyZWF0ZUVsZW1lbnQoYSl9OwpGLnByb3Rv
dHlwZS5jcmVhdGVUZXh0Tm9kZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zLmNyZWF0ZVRleHRO
b2RlKGEpfTtGLnByb3RvdHlwZS4kYT1mdW5jdGlvbigpe2lmKHRoaXMucy5jb21wYXRNb2RlKXJl
dHVybiB0aGlzLnMuY29tcGF0TW9kZTtpZihEKXt2YXIgYT10aGlzLk9hKCJkaXYiLHtzdHlsZToi
cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDt3aWR0aDoxIn0pLGI9YS5zdHlsZS53
aWR0aD09IjFweCI/IkJhY2tDb21wYXQiOiJDU1MxQ29tcGF0IjtyZXR1cm4gdGhpcy5zLmNvbXBh
dE1vZGU9Yn1yZXR1cm4iQmFja0NvbXBhdCJ9OwpGLnByb3RvdHlwZS5vYT1mdW5jdGlvbigpe3Zh
ciBhPXRoaXMucyxiLGM7aWYoIUQmJmEuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiKXtiPWEuZG9j
dW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7Yz1hLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B9ZWxz
ZXtiPWEuYm9keS5zY3JvbGxMZWZ0O2M9YS5ib2R5LnNjcm9sbFRvcH1yZXR1cm4gbmV3IEdhKGIs
Yyl9O0YucHJvdG90eXBlLmFwcGVuZENoaWxkPXViO0YucHJvdG90eXBlLnJlbW92ZU5vZGU9dmI7
Ri5wcm90b3R5cGUuY29udGFpbnM9eGI7dmFyIHpiLEFiPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmIo
YSk7aWYoYy5kZWZhdWx0VmlldyYmYy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKXt2YXIg
ZD1jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSwiIik7aWYoZClyZXR1cm4gZFtiXX1y
ZXR1cm4gaX07CnZhciBCYj1mdW5jdGlvbihhKXtyZXR1cm4gQWIoYSwicG9zaXRpb24iKXx8KGEu
Y3VycmVudFN0eWxlP2EuY3VycmVudFN0eWxlLnBvc2l0aW9uOmkpfHxhLnN0eWxlLnBvc2l0aW9u
fSxDYj1mdW5jdGlvbihhKXt2YXIgYjtiPWE/YS5ub2RlVHlwZT09OT9hOm5iKGEpOm1iKCkuYWIo
KTtpZihDJiZiLmNvbXBhdE1vZGUhPSJDU1MxQ29tcGF0IilyZXR1cm4gYi5ib2R5O3JldHVybiBi
LmRvY3VtZW50RWxlbWVudH0sRGI9ZnVuY3Rpb24oYSl7dmFyIGI9bmIoYSksYz1qYiYmYi5nZXRC
b3hPYmplY3RGb3ImJkJiKGEpPT0iYWJzb2x1dGUiJiYoYS5zdHlsZS50b3A9PSIifHxhLnN0eWxl
LmxlZnQ9PSIiKTtpZih0eXBlb2YgemI9PSJ1bmRlZmluZWQiKXpiPVZhJiYhRSgiMS44LjAuMTEi
KTt2YXIgZD1uZXcgR2EoMCwwKSxlPUNiKGIpO2lmKGE9PWUpcmV0dXJuIGQ7dmFyIGY9aSxnO2lm
KGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0JiYhYyl7Zz1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
Owp2YXIgaj1vYihiKS5vYSgpO2QueD1nLmxlZnQrai54O2QueT1nLnRvcCtqLnl9ZWxzZSBpZihi
LmdldEJveE9iamVjdEZvciYmIWMmJiF6Yil7Zz1iLmdldEJveE9iamVjdEZvcihhKTt2YXIgaz1i
LmdldEJveE9iamVjdEZvcihlKTtkLng9Zy5zY3JlZW5YLWsuc2NyZWVuWDtkLnk9Zy5zY3JlZW5Z
LWsuc2NyZWVuWX1lbHNle2Y9YTtkb3tkLngrPWYub2Zmc2V0TGVmdDtkLnkrPWYub2Zmc2V0VG9w
O2lmKEQmJkJiKGYpPT0iZml4ZWQiKXtkLngrPWIuYm9keS5zY3JvbGxMZWZ0O2QueSs9Yi5ib2R5
LnNjcm9sbFRvcDticmVha31mPWYub2Zmc2V0UGFyZW50fXdoaWxlKGYmJmYhPWEpO2lmKGlifHxE
JiZCYihhKT09ImFic29sdXRlIilkLnktPWIuYm9keS5vZmZzZXRUb3A7Zj1hLm9mZnNldFBhcmVu
dDt3aGlsZShmJiZmIT1iLmJvZHkpe2QueC09Zi5zY3JvbGxMZWZ0O2lmKCFpYnx8Zi50YWdOYW1l
IT0iVFIiKWQueS09Zi5zY3JvbGxUb3A7Zj1mLm9mZnNldFBhcmVudH19aWYoamImJgphLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCl7dmFyIGw9QmIoYSk7aWYobD09InN0YXRpYyJ8fGw9PSJyZWxhdGl2
ZSIpe2QueD1NYXRoLmZsb29yKGQueCk7ZC55PU1hdGguZmxvb3IoZC55KX19cmV0dXJuIGR9LEVi
PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBHYTtpZihhLm5vZGVUeXBlPT0xKWlmKGEuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KXt2YXIgYz1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2IueD1jLmxlZnQ7
Yi55PWMudG9wfWVsc2V7dmFyIGQ9b2IoYSkub2EoKSxlPURiKGEpO2IueD1lLngtZC54O2IueT1l
LnktZC55fWVsc2V7Yi54PWEuY2xpZW50WDtiLnk9YS5jbGllbnRZfXJldHVybiBifSxGYj1mdW5j
dGlvbihhKXt2YXIgYj1uYihhKSxjPSIiO2lmKGIuY3JlYXRlVGV4dFJhbmdlKXt2YXIgZD1iLmJv
ZHkuY3JlYXRlVGV4dFJhbmdlKCk7ZC5tb3ZlVG9FbGVtZW50VGV4dChhKTtjPWQucXVlcnlDb21t
YW5kVmFsdWUoIkZvbnROYW1lIil9aWYoIWMpe2M9QWIoYSwiZm9udEZhbWlseSIpfHwKKGEuY3Vy
cmVudFN0eWxlP2EuY3VycmVudFN0eWxlLmZvbnRGYW1pbHk6aSl8fGEuc3R5bGUuZm9udEZhbWls
eTtpZihpYiYmZmIpYz1jLnJlcGxhY2UoLyBcW1teXF1dKlxdLywiIil9dmFyIGU9Yy5zcGxpdCgi
LCIpO2lmKGUubGVuZ3RoPjEpYz1lWzBdO3JldHVybiBQYShjLCJcIiciKX07dmFyIEc9ZnVuY3Rp
b24oKXt9O0cucHJvdG90eXBlLm5hPWg7Ry5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lm
KCF0aGlzLm5hKXt0aGlzLmIoKTt0aGlzLm5hPW19fTtHLnByb3RvdHlwZS5iPWZ1bmN0aW9uKCl7
fTt2YXIgR2I9ZnVuY3Rpb24oYSl7aWYoL15ccyokLy50ZXN0KGEpKXJldHVybiBoO3ZhciBiPS9c
XFsiXFxcL2JmbnJ0dV0vZyxjPS8iW14iXFxcblxyXHUyMDI4XHUyMDI5XHgwMC1ceDFmXHg3Zi1c
eDlmXSoifHRydWV8ZmFsc2V8bnVsbHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8v
ZyxkPS8oPzpefDp8LCkoPzpbXHNcdTIwMjhcdTIwMjldKlxbKSsvZyxlPS9eW1xdLDp7fVxzXHUy
MDI4XHUyMDI5XSokLztyZXR1cm4gZS50ZXN0KGEucmVwbGFjZShiLCJAIikucmVwbGFjZShjLCJd
IikucmVwbGFjZShkLCIiKSl9LEhiPWZ1bmN0aW9uKGEpe3ZhciBiPVN0cmluZyhhKTtpZih0eXBl
b2YgYi5wYXJzZUpTT049PSJmdW5jdGlvbiIpcmV0dXJuIGIucGFyc2VKU09OKCk7aWYoR2IoYSkp
dHJ5e3JldHVybiBldmFsKCIoIithKyIpIil9Y2F0Y2goYyl7fXRocm93IEVycm9yKCJJbnZhbGlk
IEpTT04gc3RyaW5nOiAiK2EpO30sSWI9aSxKYj1mdW5jdGlvbihhKXtJYnx8KEliPQpuZXcgSSk7
cmV0dXJuIEliLnNlcmlhbGl6ZShhKX0sST1mdW5jdGlvbigpe307SS5wcm90b3R5cGUuc2VyaWFs
aXplPWZ1bmN0aW9uKGEpe2lmKGEhPWkmJnR5cGVvZiBhLnRvSlNPTlN0cmluZz09ImZ1bmN0aW9u
IilyZXR1cm4gYS50b0pTT05TdHJpbmcoKTt2YXIgYj1bXTt0aGlzLlkoYSxiKTtyZXR1cm4gYi5q
b2luKCIiKX07CkkucHJvdG90eXBlLlk9ZnVuY3Rpb24oYSxiKXtzd2l0Y2godHlwZW9mIGEpe2Nh
c2UgInN0cmluZyI6dGhpcy54YShhLGIpO2JyZWFrO2Nhc2UgIm51bWJlciI6dGhpcy56YihhLGIp
O2JyZWFrO2Nhc2UgImJvb2xlYW4iOmIucHVzaChhKTticmVhaztjYXNlICJ1bmRlZmluZWQiOmIu
cHVzaCgibnVsbCIpO2JyZWFrO2Nhc2UgIm9iamVjdCI6aWYoYT09aSl7Yi5wdXNoKCJudWxsIik7
YnJlYWt9aWYoeChhKT09ImFycmF5Iil7dGhpcy55YihhLGIpO2JyZWFrfXRoaXMuQWIoYSxiKTti
cmVhaztjYXNlICJmdW5jdGlvbiI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biB0
eXBlOiAiK3R5cGVvZiBhKTt9fTt2YXIgS2I9eyciJzonXFwiJywiXFwiOiJcXFxcIiwiLyI6Ilxc
LyIsIlx1MDAwOCI6IlxcYiIsIlx1MDAwYyI6IlxcZiIsIlxuIjoiXFxuIiwiXHIiOiJcXHIiLCJc
dCI6IlxcdCIsIlx1MDAwYiI6IlxcdTAwMGIifTsKSS5wcm90b3R5cGUueGE9ZnVuY3Rpb24oYSxi
KXtiLnB1c2goJyInLGEucmVwbGFjZSgvW1xcXCJceDAwLVx4MWZceDgwLVx1ZmZmZl0vZyxmdW5j
dGlvbihjKXtpZihjIGluIEtiKXJldHVybiBLYltjXTt2YXIgZD1jLmNoYXJDb2RlQXQoMCksZT0i
XFx1IjtpZihkPDE2KWUrPSIwMDAiO2Vsc2UgaWYoZDwyNTYpZSs9IjAwIjtlbHNlIGlmKGQ8NDA5
NillKz0iMCI7cmV0dXJuIEtiW2NdPWUrZC50b1N0cmluZygxNil9KSwnIicpfTtJLnByb3RvdHlw
ZS56Yj1mdW5jdGlvbihhLGIpe2IucHVzaChpc0Zpbml0ZShhKSYmIWlzTmFOKGEpP2E6Im51bGwi
KX07SS5wcm90b3R5cGUueWI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxlbmd0aDtiLnB1c2goIlsi
KTt2YXIgZD0iIjtmb3IodmFyIGU9MDtlPGM7ZSsrKXtiLnB1c2goZCk7dGhpcy5ZKGFbZV0sYik7
ZD0iLCJ9Yi5wdXNoKCJdIil9OwpJLnByb3RvdHlwZS5BYj1mdW5jdGlvbihhLGIpe2IucHVzaCgi
eyIpO3ZhciBjPSIiO2Zvcih2YXIgZCBpbiBhKXt2YXIgZT1hW2RdO2lmKHR5cGVvZiBlIT0iZnVu
Y3Rpb24iKXtiLnB1c2goYyk7dGhpcy54YShkLGIpO2IucHVzaCgiOiIpO3RoaXMuWShlLGIpO2M9
IiwifX1iLnB1c2goIn0iKX07dmFyIEo9IlNFVFVQX0FDSyIsTGI9e30sTmI9ZnVuY3Rpb24oYSxi
KXt2YXIgYz1ifHxNYixkPWMubGVuZ3RoLGU9IiI7d2hpbGUoYS0tID4wKWUrPWMuY2hhckF0KE1h
dGguZmxvb3IoTWF0aC5yYW5kb20oKSpkKSk7cmV0dXJuIGV9LE1iPSJhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSI7dmFyIE9iPWZ1
bmN0aW9uKCl7fTtBKE9iLEcpO3ZhciBLPWZ1bmN0aW9uKGEpe3RoaXMuYT1hO3RoaXMuTD1bXTt0
aGlzLk1iPXoodGhpcy5UYSx0aGlzKX07QShLLE9iKTtLLnByb3RvdHlwZS5sPTA7Sy5wcm90b3R5
cGUuRz0xO0sucHJvdG90eXBlLlQ9aDtLLnByb3RvdHlwZS5CYj0wO0sucHJvdG90eXBlLmNvbm5l
Y3Q9ZnVuY3Rpb24oKXt0aGlzLlY9d2luZG93LnBhcmVudD09dGhpcy5hLmY/dGhpcy5HOnRoaXMu
bDtpZih0aGlzLlY9PXRoaXMubCl7dGhpcy5qPXRoaXMuYS51O3RoaXMuai5YUENfdG9PdXRlcj16
KHRoaXMucGEsdGhpcyl9ZWxzZSB0aGlzLmNhKCl9OwpLLnByb3RvdHlwZS5jYT1mdW5jdGlvbigp
e3ZhciBhPW07dHJ5e2lmKCF0aGlzLmopdGhpcy5qPXdpbmRvdy5mcmFtZUVsZW1lbnQ7aWYodGhp
cy5qJiZ0aGlzLmouWFBDX3RvT3V0ZXIpe3RoaXMuc2E9dGhpcy5qLlhQQ190b091dGVyO3RoaXMu
ai5YUENfdG9PdXRlci5YUENfdG9Jbm5lcj16KHRoaXMucGEsdGhpcyk7YT1oO3RoaXMuc2VuZCgi
dHAiLEopO3RoaXMuYS5rKCl9fWNhdGNoKGIpe31pZihhKXtpZighdGhpcy5FYSl0aGlzLkVhPXoo
dGhpcy5jYSx0aGlzKTt3aW5kb3cuc2V0VGltZW91dCh0aGlzLkVhLDEwMCl9fTtLLnByb3RvdHlw
ZS5EPWZ1bmN0aW9uKGEpe2lmKHRoaXMuVj09dGhpcy5sJiYhdGhpcy5hLmgoKSYmYT09Sil7dGhp
cy5zYT10aGlzLmouWFBDX3RvT3V0ZXIuWFBDX3RvSW5uZXI7dGhpcy5hLmsoKX1lbHNlIHRocm93
IEVycm9yKCJHb3QgdW5leHBlY3RlZCB0cmFuc3BvcnQgbWVzc2FnZS4iKTt9OwpLLnByb3RvdHlw
ZS5wYT1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLlQmJnRoaXMuTC5sZW5ndGg9PTApdGhpcy5hLm0o
YSxiKTtlbHNle3RoaXMuTC5wdXNoKHtzZXJ2aWNlTmFtZTphLHBheWxvYWQ6Yn0pO2lmKHRoaXMu
TC5sZW5ndGg9PTEpdGhpcy5CYj13aW5kb3cuc2V0VGltZW91dCh0aGlzLk1iLDEpfX07Sy5wcm90
b3R5cGUuVGE9ZnVuY3Rpb24oKXt3aGlsZSh0aGlzLkwubGVuZ3RoKXt2YXIgYT10aGlzLkwuc2hp
ZnQoKTt0aGlzLmEubShhLnNlcnZpY2VOYW1lLGEucGF5bG9hZCl9fTtLLnByb3RvdHlwZS5zZW5k
PWZ1bmN0aW9uKGEsYil7dGhpcy5UPW07dGhpcy5zYShhLGIpO3RoaXMuVD1ofTtLLnByb3RvdHlw
ZS5iPWZ1bmN0aW9uKCl7Sy5vLmIuY2FsbCh0aGlzKTt0aGlzLnNhPWk7dGhpcy5qPWl9O3ZhciBM
PWZ1bmN0aW9uKGEpe3RoaXMuYT1hO3RoaXMuTT10aGlzLmEuYy5wcHU7dGhpcy5QYj10aGlzLmEu
Yy5scHU7dGhpcy5XPVtdfSxQYixRYixSYjtBKEwsT2IpO0wucHJvdG90eXBlLlg9MDtMLnByb3Rv
dHlwZS56PWg7TC5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3RoaXMuTWEoKX07TC5wcm90
b3R5cGUuTWE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmEubmFtZSsiX21zZyI7dGhpcy5rYj10aGlz
LmhhKGEpO3RoaXMubmI9d2luZG93LmZyYW1lc1thXTthPXRoaXMuYS5uYW1lKyJfYWNrIjt0aGlz
LkJhPXRoaXMuaGEoYSk7dGhpcy5EYT13aW5kb3cuZnJhbWVzW2FdO3RoaXMuZWEoKX07CkwucHJv
dG90eXBlLmhhPWZ1bmN0aW9uKGEpe3ZhciBiPW1iKCkuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiks
Yz1iLnN0eWxlO2MucG9zaXRpb249ImFic29sdXRlIjtjLnRvcD0iLTEwcHgiO2MubGVmdD0iMTBw
eCI7Yy53aWR0aD0iMXB4IjtjLmhlaWdodD0iMXB4IjtiLmlkPWIubmFtZT1hO2Iuc3JjPXRoaXMu
TSsiI0lOSVRJQUwiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYik7cmV0dXJuIGJ9OwpMLnBy
b3RvdHlwZS5lYT1mdW5jdGlvbigpe3RoaXMuSWEmJndpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5J
YSk7aWYodGhpcy5xYSgibXNnIikmJnRoaXMucWEoImFjayIpKXt0aGlzLmxiPW5ldyBTYih0aGlz
LHRoaXMuYS5mLmZyYW1lc1t0aGlzLmEubmFtZSsiX21zZyJdLHoodGhpcy5yYix0aGlzKSk7dGhp
cy5DYT1uZXcgU2IodGhpcyx0aGlzLmEuZi5mcmFtZXNbdGhpcy5hLm5hbWUrIl9hY2siXSx6KHRo
aXMucWIsdGhpcykpO3RoaXMuZ2EoKX1lbHNle2lmKCF0aGlzLkhhKXRoaXMuSGE9eih0aGlzLmVh
LHRoaXMpO3RoaXMuSWE9d2luZG93LnNldFRpbWVvdXQodGhpcy5IYSwxMDApfX07TC5wcm90b3R5
cGUucWE9ZnVuY3Rpb24oYSl7dHJ5e3ZhciBiPXRoaXMuYS5mLmZyYW1lc1t0aGlzLmEubmFtZSsi
XyIrYV07aWYoIWJ8fGIubG9jYXRpb24uaHJlZi5pbmRleE9mKHRoaXMuUGIpIT0wKXJldHVybiBo
fWNhdGNoKGMpe3JldHVybiBofXJldHVybiBtfTsKTC5wcm90b3R5cGUuZ2E9ZnVuY3Rpb24oKXt2
YXIgYT10aGlzLmEuZi5mcmFtZXM7aWYoYVt0aGlzLmEubmFtZSsiX2FjayJdJiZhW3RoaXMuYS5u
YW1lKyJfbXNnIl0pe3RoaXMubWI9bmV3IFRiKHRoaXMuTSx0aGlzLm5iKTt0aGlzLk89bmV3IFRi
KHRoaXMuTSx0aGlzLkRhKTt3aW5kb3cuc2V0VGltZW91dCh6KGZ1bmN0aW9uKCl7dGhpcy5tYi5z
ZW5kKCJTRVRVUCIpO3RoaXMuU2I9bTt0aGlzLno9bX0sdGhpcyksMTAwKX1lbHNle2lmKCF0aGlz
LkphKXRoaXMuSmE9eih0aGlzLmdhLHRoaXMpO3dpbmRvdy5zZXRUaW1lb3V0KHRoaXMuSmEsMTAw
KX19O0wucHJvdG90eXBlLmZhPWZ1bmN0aW9uKCl7aWYodGhpcy54YiYmdGhpcy5RYil7dGhpcy5h
LmsoKTtpZih0aGlzLkkpe2Zvcih2YXIgYT0wLGI7YTx0aGlzLkkubGVuZ3RoO2ErKyl7Yj10aGlz
LklbYV07dGhpcy5hLm0oYi5zZXJ2aWNlLGIucGF5bG9hZCl9ZGVsZXRlIHRoaXMuSX19fTsKTC5w
cm90b3R5cGUucmI9ZnVuY3Rpb24oYSl7aWYoYT09IlNFVFVQIil7aWYoIXRoaXMuTylyZXR1cm47
dGhpcy5PLnNlbmQoSik7dGhpcy54Yj1tO3RoaXMuZmEoKX1lbHNlIGlmKHRoaXMuYS5oKCl8fHRo
aXMueGIpe3ZhciBiPWEuaW5kZXhPZigifCIpLGM9YS5zdWJzdHJpbmcoMCxiKSxkPWEuc3Vic3Ry
aW5nKGIrMSk7Yj1jLmluZGV4T2YoIiwiKTtpZihiPT0tMSl7dmFyIGU9Yzt0aGlzLk8uc2VuZCgi
QUNLOiIrZSk7dGhpcy5sYShkKX1lbHNle3ZhciBlPWMuc3Vic3RyaW5nKDAsYik7dGhpcy5PLnNl
bmQoIkFDSzoiK2UpO3ZhciBmPWMuc3Vic3RyaW5nKGIrMSkuc3BsaXQoIi8iKTtmWzBdPXBhcnNl
SW50KGZbMF0sMTApO2ZbMV09cGFyc2VJbnQoZlsxXSwxMCk7aWYoZlswXT09MSl0aGlzLnRhPVtd
O3RoaXMudGEucHVzaChkKTtpZihmWzBdPT1mWzFdKXt0aGlzLmxhKHRoaXMudGEuam9pbigiIikp
O2RlbGV0ZSB0aGlzLnRhfX19fTsKTC5wcm90b3R5cGUucWI9ZnVuY3Rpb24oYSl7aWYoYT09Sil7
dGhpcy56PWg7dGhpcy5RYj1tO3RoaXMuZmEoKX1lbHNlIGlmKHRoaXMuYS5oKCkpe2lmKCF0aGlz
LnopcmV0dXJuO3ZhciBiPXBhcnNlSW50KGEuc3BsaXQoIjoiKVsxXSwxMCk7aWYoYj09dGhpcy5Y
KXt0aGlzLno9aDt0aGlzLndhKCl9fX07TC5wcm90b3R5cGUud2E9ZnVuY3Rpb24oKXtpZih0aGlz
Lnp8fCF0aGlzLlcubGVuZ3RoKXJldHVybjt2YXIgYT10aGlzLlcuc2hpZnQoKTsrK3RoaXMuWDt0
aGlzLm1iLnNlbmQodGhpcy5YK2EpO3RoaXMuej1tfTtMLnByb3RvdHlwZS5sYT1mdW5jdGlvbihh
KXt2YXIgYj1hLmluZGV4T2YoIjoiKSxjPWEuc3Vic3RyKDAsYiksZD1hLnN1YnN0cmluZyhiKzEp
O3RoaXMuYS5oKCk/dGhpcy5hLm0oYyxkKToodGhpcy5JfHwodGhpcy5JPVtdKSkucHVzaCh7c2Vy
dmljZTpjLHBheWxvYWQ6ZH0pfTtMLnByb3RvdHlwZS5IPTM4MDA7CkwucHJvdG90eXBlLnNlbmQ9
ZnVuY3Rpb24oYSxiKXt2YXIgYz1hKyI6IitiO2lmKCFDfHxiLmxlbmd0aDw9dGhpcy5IKXRoaXMu
Vy5wdXNoKCJ8IitjKTtlbHNle3ZhciBkPWIubGVuZ3RoLGU9TWF0aC5jZWlsKGQvdGhpcy5IKSxm
PTAsZz0xO3doaWxlKGY8ZCl7dGhpcy5XLnB1c2goIiwiK2crIi8iK2UrInwiK2Muc3Vic3RyKGYs
dGhpcy5IKSk7ZysrO2YrPXRoaXMuSH19dGhpcy53YSgpfTtMLnByb3RvdHlwZS5iPWZ1bmN0aW9u
KCl7TC5vLmIuY2FsbCh0aGlzKTt2YXIgYT1VYjtFYShhLHRoaXMubGIpO0VhKGEsdGhpcy5DYSk7
dGhpcy5sYj10aGlzLkNhPWk7dmIodGhpcy5rYik7dmIodGhpcy5CYSk7dGhpcy5rYj10aGlzLkJh
PWk7dGhpcy5uYj10aGlzLkRhPWl9Owp2YXIgVWI9W10sWmI9ZnVuY3Rpb24oKXt2YXIgYT1oO3Ry
eXtmb3IodmFyIGI9MCxjPVViLmxlbmd0aDtiPGM7YisrKWE9YXx8VWJbYl0ucmVjZWl2ZSgpfWNh
dGNoKGQpe1ViW2JdLmUuYS5vYigpO2lmKCFVYi5sZW5ndGgpcmV0dXJufXZhciBlPUFhKCk7aWYo
YSlQYj1lO3ZhciBmPWUtUGI8MTAwMD8xMDoxMDA7UWI9d2luZG93LnNldFRpbWVvdXQoV2IsZil9
LFdiPXooWmIsTCksJGI9ZnVuY3Rpb24oKXtQYj1BYSgpO1FiJiZ3aW5kb3cuY2xlYXJUaW1lb3V0
KFFiKTtRYj13aW5kb3cuc2V0VGltZW91dChXYiwxMCl9LFRiPWZ1bmN0aW9uKGEsYil7dGhpcy5N
PWE7dGhpcy53Yj1iO3RoaXMua2E9MH07ClRiLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGEpe3Ro
aXMua2E9Kyt0aGlzLmthJTI7dmFyIGI9dGhpcy5NKyIjIit0aGlzLmthK2VuY29kZVVSSUNvbXBv
bmVudChhKTt0cnl7aWYoRCl0aGlzLndiLmxvY2F0aW9uLmhyZWY9YjtlbHNlIHRoaXMud2IubG9j
YXRpb24ucmVwbGFjZShiKX1jYXRjaChjKXt9UmI9QWEoKX07dmFyIFNiPWZ1bmN0aW9uKGEsYixj
KXt0aGlzLmU9YTt0aGlzLnNiPWI7dGhpcy5KYj1jO3RoaXMuUmE9dGhpcy5zYi5sb2NhdGlvbi5o
cmVmLnNwbGl0KCIjIilbMF0rIiNJTklUSUFMIjtVYi5wdXNoKHRoaXMpOyRiKCl9O1NiLnByb3Rv
dHlwZS5yZWNlaXZlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5zYi5sb2NhdGlvbi5ocmVmO2lmKGEh
PXRoaXMuUmEpe3RoaXMuUmE9YTt2YXIgYj1hLnNwbGl0KCIjIilbMV07aWYoYil7Yj1iLnN1YnN0
cigxKTt0aGlzLkpiKGRlY29kZVVSSUNvbXBvbmVudChiKSl9cmV0dXJuIG19ZWxzZSByZXR1cm4g
aH07dmFyIE09ZnVuY3Rpb24oYSxiKXtHLmNhbGwodGhpcyk7dGhpcy5pYj1iO3RoaXMudD1bXTt0
aGlzLlBhKGEpfTtBKE0sRyk7TS5wcm90b3R5cGUuUD1pO00ucHJvdG90eXBlLlE9aTtNLnByb3Rv
dHlwZS5DPWZ1bmN0aW9uKGEpe3RoaXMuUD1hfTtNLnByb3RvdHlwZS56YT1mdW5jdGlvbihhKXt0
aGlzLlE9YX07TS5wcm90b3R5cGUuaT1mdW5jdGlvbigpe2lmKHRoaXMudC5sZW5ndGgpcmV0dXJu
IHRoaXMudC5wb3AoKTtyZXR1cm4gdGhpcy5qYSgpfTtNLnByb3RvdHlwZS53PWZ1bmN0aW9uKGEp
e3RoaXMudC5sZW5ndGg8dGhpcy5pYj90aGlzLnQucHVzaChhKTp0aGlzLm1hKGEpfTtNLnByb3Rv
dHlwZS5QYT1mdW5jdGlvbihhKXtpZihhPnRoaXMuaWIpdGhyb3cgRXJyb3IoIltnb29nLnN0cnVj
dHMuU2ltcGxlUG9vbF0gSW5pdGlhbCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heCIpO2Zvcih2
YXIgYj0wO2I8YTtiKyspdGhpcy50LnB1c2godGhpcy5qYSgpKX07Ck0ucHJvdG90eXBlLmphPWZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuUD90aGlzLlAoKTp7fX07TS5wcm90b3R5cGUubWE9ZnVuY3Rp
b24oYSl7aWYodGhpcy5RKXRoaXMuUShhKTtlbHNlIGlmKHkoYS5kaXNwb3NlKSlhLmRpc3Bvc2Uo
KTtlbHNlIGZvcih2YXIgYiBpbiBhKWRlbGV0ZSBhW2JdfTtNLnByb3RvdHlwZS5iPWZ1bmN0aW9u
KCl7TS5vLmIuY2FsbCh0aGlzKTt2YXIgYT10aGlzLnQ7d2hpbGUoYS5sZW5ndGgpdGhpcy5tYShh
LnBvcCgpKTtkZWxldGUgdGhpcy50fTt2YXIgTj1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hO3Ro
aXMudGFyZ2V0PWI7dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0fTtBKE4sRyk7Ti5wcm90
b3R5cGUuYj1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLnR5cGU7ZGVsZXRlIHRoaXMudGFyZ2V0O2Rl
bGV0ZSB0aGlzLmN1cnJlbnRUYXJnZXR9O04ucHJvdG90eXBlLkI9aDtOLnByb3RvdHlwZS5VPW07
Ti5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7dGhpcy5CPW19O04ucHJvdG90
eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5VPWh9O3ZhciBPPWZ1bmN0aW9uKGEs
Yil7YSYmdGhpcy5pbml0KGEsYil9O0EoTyxOKTtPLnByb3RvdHlwZS50eXBlPWk7Ty5wcm90b3R5
cGUudGFyZ2V0PWk7Ty5wcm90b3R5cGUucmVsYXRlZFRhcmdldD1pO08ucHJvdG90eXBlLm9mZnNl
dFg9MDtPLnByb3RvdHlwZS5vZmZzZXRZPTA7Ty5wcm90b3R5cGUuY2xpZW50WD0wO08ucHJvdG90
eXBlLmNsaWVudFk9MDtPLnByb3RvdHlwZS5zY3JlZW5YPTA7Ty5wcm90b3R5cGUuc2NyZWVuWT0w
O08ucHJvdG90eXBlLmJ1dHRvbj0wO08ucHJvdG90eXBlLmtleUNvZGU9MDtPLnByb3RvdHlwZS5j
aGFyQ29kZT0wO08ucHJvdG90eXBlLmN0cmxLZXk9aDtPLnByb3RvdHlwZS5hbHRLZXk9aDtPLnBy
b3RvdHlwZS5zaGlmdEtleT1oO08ucHJvdG90eXBlLm1ldGFLZXk9aDtPLnByb3RvdHlwZS5nPWk7
Ck8ucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9YS50eXBlO3RoaXMudGFy
Z2V0PWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dGhpcy5jdXJyZW50VGFyZ2V0PWI7dGhpcy5yZWxh
dGVkVGFyZ2V0PWEucmVsYXRlZFRhcmdldD9hLnJlbGF0ZWRUYXJnZXQ6dGhpcy50eXBlPT0ibW91
c2VvdmVyIj9hLmZyb21FbGVtZW50OnRoaXMudHlwZT09Im1vdXNlb3V0Ij9hLnRvRWxlbWVudDpp
O3RoaXMub2Zmc2V0WD10eXBlb2YgYS5sYXllclg9PSJudW1iZXIiP2EubGF5ZXJYOmEub2Zmc2V0
WDt0aGlzLm9mZnNldFk9dHlwZW9mIGEubGF5ZXJZPT0ibnVtYmVyIj9hLmxheWVyWTphLm9mZnNl
dFk7dGhpcy5jbGllbnRYPXR5cGVvZiBhLmNsaWVudFg9PSJudW1iZXIiP2EuY2xpZW50WDphLnBh
Z2VYO3RoaXMuY2xpZW50WT10eXBlb2YgYS5jbGllbnRZPT0ibnVtYmVyIj9hLmNsaWVudFk6YS5w
YWdlWTt0aGlzLnNjcmVlblg9YS5zY3JlZW5YfHwwO3RoaXMuc2NyZWVuWT1hLnNjcmVlbll8fAow
O3RoaXMuYnV0dG9uPWEuYnV0dG9uO3RoaXMua2V5Q29kZT1hLmtleUNvZGV8fDA7dGhpcy5jaGFy
Q29kZT1hLmNoYXJDb2RlfHwodGhpcy50eXBlPT0ia2V5cHJlc3MiP2Eua2V5Q29kZTowKTt0aGlz
LmN0cmxLZXk9YS5jdHJsS2V5O3RoaXMuYWx0S2V5PWEuYWx0S2V5O3RoaXMuc2hpZnRLZXk9YS5z
aGlmdEtleTt0aGlzLm1ldGFLZXk9YS5tZXRhS2V5O3RoaXMuZz1hO2RlbGV0ZSB0aGlzLlU7ZGVs
ZXRlIHRoaXMuQn07Ty5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7dGhpcy5C
PW07aWYodGhpcy5nLnN0b3BQcm9wYWdhdGlvbil0aGlzLmcuc3RvcFByb3BhZ2F0aW9uKCk7ZWxz
ZSB0aGlzLmcuY2FuY2VsQnViYmxlPW19OwpPLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5j
dGlvbigpe3RoaXMuVT1oO2lmKHRoaXMuZy5wcmV2ZW50RGVmYXVsdCl0aGlzLmcucHJldmVudERl
ZmF1bHQoKTtlbHNle3RoaXMuZy5yZXR1cm5WYWx1ZT1oO3RyeXt0aGlzLmcua2V5Q29kZT0tMX1j
YXRjaChhKXt9fX07Ty5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTtPLnBy
b3RvdHlwZS5iPWZ1bmN0aW9uKCl7Ty5vLmIuY2FsbCh0aGlzKTt0aGlzLmc9aX07dmFyIFA9ZnVu
Y3Rpb24oKXt9LGFjPTA7UC5wcm90b3R5cGUuUz1pO1AucHJvdG90eXBlLmxpc3RlbmVyPWk7UC5w
cm90b3R5cGUucHJveHk9aTtQLnByb3RvdHlwZS5zcmM9aTtQLnByb3RvdHlwZS50eXBlPWk7UC5w
cm90b3R5cGUuY2FwdHVyZT1pO1AucHJvdG90eXBlLmhhbmRsZXI9aTtQLnByb3RvdHlwZS5rZXk9
MDtQLnByb3RvdHlwZS5yZW1vdmVkPWg7UC5wcm90b3R5cGUuZGE9aDtQLnByb3RvdHlwZS5pbml0
PWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZih5KGEpKXRoaXMuUz1tO2Vsc2UgaWYoYSYmYS5oYW5k
bGVFdmVudCYmeShhLmhhbmRsZUV2ZW50KSl0aGlzLlM9aDtlbHNlIHRocm93IEVycm9yKCJJbnZh
bGlkIGxpc3RlbmVyIGFyZ3VtZW50Iik7dGhpcy5saXN0ZW5lcj1hO3RoaXMucHJveHk9Yjt0aGlz
LnNyYz1jO3RoaXMudHlwZT1kO3RoaXMuY2FwdHVyZT0hIWU7dGhpcy5oYW5kbGVyPWY7dGhpcy5k
YT1oO3RoaXMua2V5PSsrYWM7dGhpcy5yZW1vdmVkPWh9OwpQLnByb3RvdHlwZS5oYW5kbGVFdmVu
dD1mdW5jdGlvbihhKXtpZih0aGlzLlMpcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLmhh
bmRsZXJ8fHRoaXMuc3JjLGEpO3JldHVybiB0aGlzLmxpc3RlbmVyLmhhbmRsZUV2ZW50LmNhbGwo
dGhpcy5saXN0ZW5lcixhKX07dmFyIGJjPXt9LFE9e30sY2M9e30sZGM9bmV3IE0oMCw2MDApO2Rj
LkMoZnVuY3Rpb24oKXtyZXR1cm57cjowfX0pO2RjLnphKGZ1bmN0aW9uKGEpe2Eucj0wfSk7dmFy
IFI9bmV3IE0oMCw2MDApO1IuQyhmdW5jdGlvbigpe3JldHVybltdfSk7Ui56YShmdW5jdGlvbihh
KXthLmxlbmd0aD0wO2RlbGV0ZSBhLks7ZGVsZXRlIGEucmF9KTt2YXIgZWM9bmV3IE0oMCw2MDAp
O2VjLkMoZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbihiKXtyZXR1cm4gZmMuY2FsbChhLnNyYyxh
LmtleSxiKX07cmV0dXJuIGF9KTt2YXIgZ2M9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFB9LGhjPW5l
dyBNKDAsNjAwKTtoYy5DKGdjKTsKdmFyIGljPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBPfSxqYz1m
dW5jdGlvbigpe3ZhciBhPWk7aWYoQyl7YT1uZXcgTSgwLDYwMCk7YS5DKGljKX1yZXR1cm4gYX0s
a2M9amMoKSxsYz0ib24iLG1jPXt9LG5jPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoYilpZih4KGIp
PT0iYXJyYXkiKXtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKyluYyhhLGJbZl0sYyxkLGUpO3Jl
dHVybiBpfWVsc2V7dmFyIGc9ISFkLGo9UTtiIGluIGp8fChqW2JdPWRjLmkoKSk7aj1qW2JdO2lm
KCEoZyBpbiBqKSl7altnXT1kYy5pKCk7ai5yKyt9aj1qW2ddO3ZhciBrPXphKGEpLGwsbztpZihq
W2tdKXtsPWpba107Zm9yKHZhciBmPTA7ZjxsLmxlbmd0aDtmKyspe289bFtmXTtpZihvLmxpc3Rl
bmVyPT1jJiZvLmhhbmRsZXI9PWUpe2lmKG8ucmVtb3ZlZClicmVhaztyZXR1cm4gbFtmXS5rZXl9
fX1lbHNle2w9altrXT1SLmkoKTtqLnIrK312YXIgcD1lYy5pKCk7cC5zcmM9YTtvPWhjLmkoKTtv
LmluaXQoYyxwLAphLGIsZyxlKTt2YXIgdD1vLmtleTtwLmtleT10O2wucHVzaChvKTtiY1t0XT1v
O2NjW2tdfHwoY2Nba109Ui5pKCkpO2NjW2tdLnB1c2gobyk7aWYoYS5hZGRFdmVudExpc3RlbmVy
KXtpZihhPT13fHwhYS5MYilhLmFkZEV2ZW50TGlzdGVuZXIoYixwLGcpfWVsc2UgYS5hdHRhY2hF
dmVudChvYyhiKSxwKTtyZXR1cm4gdH1lbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIGV2ZW50IHR5
cGUiKTt9LHBjPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoeChiKT09ImFycmF5Iil7Zm9yKHZhciBm
PTA7ZjxiLmxlbmd0aDtmKyspcGMoYSxiW2ZdLGMsZCxlKTtyZXR1cm4gaX12YXIgZz0hIWQsaj1x
YyhhLGIsZyk7aWYoIWopcmV0dXJuIGg7Zm9yKHZhciBmPTA7ZjxqLmxlbmd0aDtmKyspaWYoaltm
XS5saXN0ZW5lcj09YyYmaltmXS5jYXB0dXJlPT1nJiZqW2ZdLmhhbmRsZXI9PWUpcmV0dXJuIHJj
KGpbZl0ua2V5KTtyZXR1cm4gaH0scmM9ZnVuY3Rpb24oYSl7aWYoIWJjW2FdKXJldHVybiBoO3Zh
ciBiPQpiY1thXTtpZihiLnJlbW92ZWQpcmV0dXJuIGg7dmFyIGM9Yi5zcmMsZD1iLnR5cGUsZT1i
LnByb3h5LGY9Yi5jYXB0dXJlO2lmKGMucmVtb3ZlRXZlbnRMaXN0ZW5lcil7aWYoYz09d3x8IWMu
TGIpYy5yZW1vdmVFdmVudExpc3RlbmVyKGQsZSxmKX1lbHNlIGMuZGV0YWNoRXZlbnQmJmMuZGV0
YWNoRXZlbnQob2MoZCksZSk7dmFyIGc9emEoYyksaj1RW2RdW2ZdW2ddO2lmKGNjW2ddKXt2YXIg
az1jY1tnXTtFYShrLGIpO2subGVuZ3RoPT0wJiZkZWxldGUgY2NbZ119Yi5yZW1vdmVkPW07ai5y
YT1tO3NjKGQsZixnLGopO2RlbGV0ZSBiY1thXTtyZXR1cm4gbX0sc2M9ZnVuY3Rpb24oYSxiLGMs
ZCl7aWYoIWQuSylpZihkLnJhKXtmb3IodmFyIGU9MCxmPTA7ZTxkLmxlbmd0aDtlKyspe2lmKGRb
ZV0ucmVtb3ZlZCl7aGMudyhkW2VdKTtjb250aW51ZX1pZihlIT1mKWRbZl09ZFtlXTtmKyt9ZC5s
ZW5ndGg9ZjtkLnJhPWg7aWYoZj09MCl7Ui53KGQpO2RlbGV0ZSBRW2FdW2JdW2NdO1FbYV1bYl0u
ci0tOwppZihRW2FdW2JdLnI9PTApe2RjLncoUVthXVtiXSk7ZGVsZXRlIFFbYV1bYl07UVthXS5y
LS19aWYoUVthXS5yPT0wKXtkYy53KFFbYV0pO2RlbGV0ZSBRW2FdfX19fSxxYz1mdW5jdGlvbihh
LGIsYyl7dmFyIGQ9UTtpZihiIGluIGQpe2Q9ZFtiXTtpZihjIGluIGQpe2Q9ZFtjXTt2YXIgZT16
YShhKTtpZihkW2VdKXJldHVybiBkW2VdfX1yZXR1cm4gaX0sb2M9ZnVuY3Rpb24oYSl7aWYoYSBp
biBtYylyZXR1cm4gbWNbYV07cmV0dXJuIG1jW2FdPWxjK2F9LHVjPWZ1bmN0aW9uKGEsYixjLGQp
e3ZhciBlPTEsZj1RO2lmKGIgaW4gZil7Zj1mW2JdO2lmKGMgaW4gZil7Zj1mW2NdO3ZhciBnPXph
KGEpO2lmKGZbZ10pe3ZhciBqPWZbZ107aWYoai5LKWouSysrO2Vsc2Ugai5LPTE7dHJ5e3ZhciBr
PWoubGVuZ3RoO2Zvcih2YXIgbD0wO2w8aztsKyspe3ZhciBvPWpbbF07aWYobyYmIW8ucmVtb3Zl
ZCllJj10YyhvLGQpIT09aH19ZmluYWxseXtqLkstLTtzYyhiLGMsZyxqKX19fX1yZXR1cm4gQm9v
bGVhbihlKX0sCnRjPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5oYW5kbGVFdmVudChiKTthLmRhJiZy
YyhhLmtleSk7cmV0dXJuIGN9LGZjPWZ1bmN0aW9uKGEsYil7aWYoIWJjW2FdKXJldHVybiBtO3Zh
ciBjPWJjW2FdLGQ9Yy50eXBlLGU9UTtpZighKGQgaW4gZSkpcmV0dXJuIG07ZT1lW2RdO3ZhciBm
O2lmKEMpe3ZhciBnPWJ8fHNhKCJ3aW5kb3cuZXZlbnQiKSxqPW0gaW4gZTtpZihqKXtpZihnLmtl
eUNvZGU8MHx8Zy5yZXR1cm5WYWx1ZSE9dW5kZWZpbmVkKXJldHVybiBtO3ZjKGcpfXphKGMuc3Jj
KTt2YXIgaz1rYy5pKCk7ay5pbml0KGcsdGhpcyk7Zj1tO3RyeXtpZihqKXt2YXIgbD1SLmkoKTtm
b3IodmFyIG89ay5jdXJyZW50VGFyZ2V0O287bz1vLnBhcmVudE5vZGUpbC5wdXNoKG8pO2Zvcih2
YXIgcD1sLmxlbmd0aC0xOyFrLkImJnA+PTA7cC0tKXtrLmN1cnJlbnRUYXJnZXQ9bFtwXTtmJj11
YyhsW3BdLGQsbSxrKX1mb3IodmFyIHA9MDshay5CJiZwPGwubGVuZ3RoO3ArKyl7ay5jdXJyZW50
VGFyZ2V0PQpsW3BdO2YmPXVjKGxbcF0sZCxoLGspfX1lbHNlIGY9dGMoYyxrKX1maW5hbGx5e2lm
KGwpe2wubGVuZ3RoPTA7Ui53KGwpfWsuZGlzcG9zZSgpO2tjLncoayl9cmV0dXJuIGZ9dmFyIHQ9
bmV3IE8oYix0aGlzKTt0cnl7Zj10YyhjLHQpfWZpbmFsbHl7dC5kaXNwb3NlKCl9cmV0dXJuIGZ9
LHZjPWZ1bmN0aW9uKGEpe3ZhciBiPWg7aWYoYS5rZXlDb2RlPT0wKXRyeXthLmtleUNvZGU9LTE7
cmV0dXJufWNhdGNoKGMpe2I9bX1pZihifHxhLnJldHVyblZhbHVlPT11bmRlZmluZWQpYS5yZXR1
cm5WYWx1ZT1tfTt2YXIgUz1mdW5jdGlvbihhKXt0aGlzLmE9YTt0aGlzLk9iPXRoaXMuYS5jLnBy
dTt0aGlzLnBiPXRoaXMuYS5jLmlmcmlkO0QmJndjKCl9O0EoUyxPYik7aWYoRCl7dmFyIHhjPVtd
LHljPTAsd2M9ZnVuY3Rpb24oKXt5Y3x8KHljPXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7
emMoKX0sMTAwMCkpfSx6Yz1mdW5jdGlvbihhKXt2YXIgYj1BYSgpLGM9YXx8MzAwMDt3aGlsZSh4
Yy5sZW5ndGgmJmIteGNbMF0udGltZXN0YW1wPj1jKXt2YXIgZD14Yy5zaGlmdCgpLmlmcmFtZUVs
ZW1lbnQ7dmIoZCl9eWM9d2luZG93LnNldFRpbWVvdXQoQWMsMTAwMCl9LEFjPWZ1bmN0aW9uKCl7
emMoKX19Uy5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3RoaXMuc2VuZCgidHAiLCJTRVRV
UCIpfTtTLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2lmKGE9PSJTRVRVUCIpe3RoaXMuc2VuZCgi
dHAiLEopO3RoaXMuYS5rKCl9ZWxzZSBhPT1KJiZ0aGlzLmEuaygpfTsKUy5wcm90b3R5cGUuc2Vu
ZD1mdW5jdGlvbihhLGIpe2lmKEMpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
O2MuaW5uZXJIVE1MPSc8aWZyYW1lIG9ubG9hZD0idGhpcy54cGNPbmxvYWQoKSI+PC9pZnJhbWU+
Jzt2YXIgZD1jLmNoaWxkTm9kZXNbMF07ZC54cGNPbmxvYWQ9QmN9ZWxzZXt2YXIgZD1kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtEP3hjLnB1c2goe3RpbWVzdGFtcDpBYSgpLGlmcmFt
ZUVsZW1lbnQ6ZH0pOm5jKGQsImxvYWQiLEJjKX12YXIgZT1kLnN0eWxlO2UudmlzaWJpbGl0eT0i
aGlkZGVuIjtlLndpZHRoPWQuc3R5bGUuaGVpZ2h0PSIwcHgiO2UucG9zaXRpb249ImFic29sdXRl
Ijt2YXIgZj10aGlzLk9iO2YrPSIjIit0aGlzLmEubmFtZTtpZih0aGlzLnBiKWYrPSIsIit0aGlz
LnBiO2YrPSJ8IithKyI6IitlbmNvZGVVUklDb21wb25lbnQoYik7ZC5zcmM9Zjtkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGQpfTsKdmFyIEJjPWZ1bmN0aW9uKCl7dmIodGhpcyk7dGhpcy54cGNP
bmxvYWQ9aX07d2luZG93LnhwY1JlbGF5PWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5pbmRleE9mKCI6
IiksZD1iLnN1YnN0cmluZygwLGMpLGU9Yi5zdWJzdHJpbmcoYysxKTtMYlthXS5tKGQsZGVjb2Rl
VVJJQ29tcG9uZW50KGUpKX07Uy5wcm90b3R5cGUuYj1mdW5jdGlvbigpe1Muby5iLmNhbGwodGhp
cyk7RCYmemMoMCl9O3ZhciBUPWZ1bmN0aW9uKGEpe3RoaXMuYT1hfTtBKFQsT2IpO3ZhciBDYz1o
LEVjPWZ1bmN0aW9uKCl7aWYoIUNjKXtuYyh5KHdpbmRvdy5wb3N0TWVzc2FnZSk/d2luZG93OmRv
Y3VtZW50LCJtZXNzYWdlIixEYyxoLFQpO0NjPW19fSxEYz1mdW5jdGlvbihhKXt2YXIgYj1hLlph
KCkuZGF0YSxjPWIuaW5kZXhPZigifCIpLGQ9Yi5pbmRleE9mKCI6Iik7aWYoYz09LTF8fGQ9PS0x
KXJldHVybjt2YXIgZT1iLnN1YnN0cmluZygwLGMpLGY9Yi5zdWJzdHJpbmcoYysxLGQpLGc9Yi5z
dWJzdHJpbmcoZCsxKSxqPUxiW2VdO2omJmoubShmLGcpfTtULnByb3RvdHlwZS5EPWZ1bmN0aW9u
KGEpe3N3aXRjaChhKXtjYXNlICJTRVRVUCI6dGhpcy5zZW5kKCJ0cCIsSik7Y2FzZSBKOnRoaXMu
YS5rKCk7YnJlYWt9fTtULnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7RWMoKTt0aGlzLnNl
bmQoInRwIiwiU0VUVVAiKX07ClQucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10
aGlzLmEuZjtpZighYylyZXR1cm47dmFyIGQ9eSh3aW5kb3cucG9zdE1lc3NhZ2UpP2M6Yy5kb2N1
bWVudDt0aGlzLnNlbmQ9ZnVuY3Rpb24oZSxmKXtkLnBvc3RNZXNzYWdlKHRoaXMuYS5uYW1lKyJ8
IitlKyI6IitmLCIqIil9O3RoaXMuc2VuZChhLGIpfTtULnByb3RvdHlwZS5iPWZ1bmN0aW9uKCl7
VC5vLmIuY2FsbCh0aGlzKTtwYyhkb2N1bWVudCwibWVzc2FnZSIsdGhpcy5SYixoLHRoaXMpfTt2
YXIgVT1mdW5jdGlvbihhKXt0aGlzLmE9YTt0aGlzLkZhPWEuYXR8fCIiO3RoaXMudmI9YS5yYXR8
fCIiO0ZjKCk7dGhpc1tHY109dGhpcy5KO3RoaXNbSGNdPXRoaXMuTmF9O0EoVSxPYik7CnZhciBJ
Yz0iR1JQQ19fX19OSVhWQlNfd3JhcHBlciIsSmM9IkdSUENfX19fTklYVkJTX2dldF93cmFwcGVy
IixHYz0iR1JQQ19fX19OSVhKU19oYW5kbGVfbWVzc2FnZSIsSGM9IkdSUENfX19fTklYSlNfY3Jl
YXRlX2NoYW5uZWwiLEtjPSJHUlBDX19fX05JWFZCU19jb250YWluZXIiLEZjPWZ1bmN0aW9uKCl7
aWYod2luZG93Lm5peF9zZXR1cF9jb21wbGV0ZSlyZXR1cm47dmFyIGE9IkNsYXNzICIrSWMrIlxu
IFByaXZhdGUgbV9UcmFuc3BvcnRcblByaXZhdGUgbV9BdXRoXG5QdWJsaWMgU3ViIFNldFRyYW5z
cG9ydCh0cmFuc3BvcnQpXG5JZiBpc0VtcHR5KG1fVHJhbnNwb3J0KSBUaGVuXG5TZXQgbV9UcmFu
c3BvcnQgPSB0cmFuc3BvcnRcbkVuZCBJZlxuRW5kIFN1YlxuUHVibGljIFN1YiBTZXRBdXRoKGF1
dGgpXG5JZiBpc0VtcHR5KG1fQXV0aCkgVGhlblxubV9BdXRoID0gYXV0aFxuRW5kIElmXG5FbmQg
U3ViXG5QdWJsaWMgRnVuY3Rpb24gR2V0QXV0aFRva2VuKClcbiBHZXRBdXRoVG9rZW4gPSBtX0F1
dGhcbkVuZCBGdW5jdGlvblxuUHVibGljIFN1YiBTZW5kTWVzc2FnZShzZXJ2aWNlLCBwYXlsb2Fk
KVxuIENhbGwgbV9UcmFuc3BvcnQuIitHYysKIihzZXJ2aWNlLCBwYXlsb2FkKVxuRW5kIFN1Ylxu
UHVibGljIFN1YiBDcmVhdGVDaGFubmVsKGNoYW5uZWwpXG4gQ2FsbCBtX1RyYW5zcG9ydC4iK0hj
KyIoY2hhbm5lbClcbkVuZCBTdWJcblB1YmxpYyBTdWIgIitLYysiKClcbiBFbmQgU3ViXG5FbmQg
Q2xhc3NcbiBGdW5jdGlvbiAiK0pjKyIodHJhbnNwb3J0LCBhdXRoKVxuRGltIHdyYXBcblNldCB3
cmFwID0gTmV3ICIrSWMrIlxud3JhcC5TZXRUcmFuc3BvcnQgdHJhbnNwb3J0XG53cmFwLlNldEF1
dGggYXV0aFxuU2V0ICIrSmMrIiA9IHdyYXBcbkVuZCBGdW5jdGlvbiI7dHJ5e3dpbmRvdy5leGVj
U2NyaXB0KGEsInZic2NyaXB0Iik7d2luZG93Lm5peF9zZXR1cF9jb21wbGV0ZT1tfWNhdGNoKGIp
e319O1UucHJvdG90eXBlLmw9MDtVLnByb3RvdHlwZS5HPTE7VS5wcm90b3R5cGUudj1oO1UucHJv
dG90eXBlLm49aTsKVS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3RoaXMuVj13aW5kb3cu
cGFyZW50PT10aGlzLmEuZj90aGlzLkc6dGhpcy5sO3RoaXMuVj09dGhpcy5sP3RoaXMuYmEoKTp0
aGlzLmFhKCl9O1UucHJvdG90eXBlLmJhPWZ1bmN0aW9uKCl7aWYodGhpcy52KXJldHVybjt2YXIg
YT10aGlzLmEudTt0cnl7YS5jb250ZW50V2luZG93Lm9wZW5lcj13aW5kb3dbSmNdKHRoaXMsdGhp
cy5GYSk7dGhpcy52PW19Y2F0Y2goYil7fXRoaXMudnx8d2luZG93LnNldFRpbWVvdXQoeih0aGlz
LmJhLHRoaXMpLDEwMCl9OwpVLnByb3RvdHlwZS5hYT1mdW5jdGlvbigpe2lmKHRoaXMudilyZXR1
cm47dHJ5e3ZhciBhPXdpbmRvdy5vcGVuZXI7aWYoYSYmS2MgaW4gYSl7dGhpcy5uPWE7dmFyIGI9
dGhpcy5uLkdldEF1dGhUb2tlbigpO2lmKGIhPXRoaXMudmIpcmV0dXJuO3RoaXMubi5DcmVhdGVD
aGFubmVsKHdpbmRvd1tKY10odGhpcyx0aGlzLkZhKSk7dGhpcy52PW07dGhpcy5hLmsoKX19Y2F0
Y2goYyl7cmV0dXJufXRoaXMudnx8d2luZG93LnNldFRpbWVvdXQoeih0aGlzLmFhLHRoaXMpLDEw
MCl9O1UucHJvdG90eXBlLk5hPWZ1bmN0aW9uKGEpe3RoaXMubj1hO3ZhciBiPXRoaXMubi5HZXRB
dXRoVG9rZW4oKTtpZihiIT10aGlzLnZiKXJldHVybjt0aGlzLmEuaygpfTtVLnByb3RvdHlwZS5K
PWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe3RoaXMuYS5tKGEsYil9d2luZG93LnNldFRpbWVv
dXQoeihjLHRoaXMpLDEpfTsKVS5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIpe3RoaXMubi5T
ZW5kTWVzc2FnZShhLGIpfTtVLnByb3RvdHlwZS5iPWZ1bmN0aW9uKCl7VS5vLmIuY2FsbCh0aGlz
KTt0aGlzLm49aX07dmFyIFY9ZnVuY3Rpb24oYSl7dGhpcy5jPWE7dGhpcy5uYW1lPXRoaXMuYy5j
bnx8TmIoMTApO3RoaXMueWE9e307TGJbdGhpcy5uYW1lXT10aGlzO25jKHdpbmRvdywidW5sb2Fk
IixMYyl9O0EoVixHKTtWLnByb3RvdHlwZS5lPWk7Vi5wcm90b3R5cGUuWj0xO1YucHJvdG90eXBl
Lmg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5aPT0yfTtWLnByb3RvdHlwZS5mPWk7Vi5wcm90b3R5
cGUudT1pO1YucHJvdG90eXBlLkFhPWZ1bmN0aW9uKGEpe3RoaXMuZj1hfTsKVi5wcm90b3R5cGUu
UWE9ZnVuY3Rpb24oKXtpZih0aGlzLmUpcmV0dXJuO2lmKCF0aGlzLmMudHApaWYoeShkb2N1bWVu
dC5wb3N0TWVzc2FnZSl8fHkod2luZG93LnBvc3RNZXNzYWdlKSl0aGlzLmMudHA9MTtlbHNlIGlm
KGpiKXRoaXMuYy50cD0yO2Vsc2UgaWYoQyYmdGhpcy5jLnBydSl0aGlzLmMudHA9MztlbHNlIGlm
KEMpdGhpcy5jLnRwPTY7ZWxzZSBpZih0aGlzLmMubHB1JiZ0aGlzLmMucHB1KXRoaXMuYy50cD00
O3N3aXRjaCh0aGlzLmMudHApe2Nhc2UgMTp0aGlzLmU9bmV3IFQodGhpcyk7YnJlYWs7Y2FzZSA2
OnRoaXMuZT1uZXcgVSh0aGlzKTticmVhaztjYXNlIDI6dGhpcy5lPW5ldyBLKHRoaXMpO2JyZWFr
O2Nhc2UgMzp0aGlzLmU9bmV3IFModGhpcyk7YnJlYWs7Y2FzZSA0OnRoaXMuZT1uZXcgTCh0aGlz
KTticmVha31pZighdGhpcy5lKXRocm93IEVycm9yKCJDcm9zc1BhZ2VDaGFubmVsOiBObyBzdWl0
YWJsZSB0cmFuc3BvcnQgZm91bmQhIik7fTsKVi5wcm90b3R5cGUuU2E9aDtWLnByb3RvdHlwZS5M
YT1oO1YucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oYSl7dGhpcy5LYj1hO2lmKHRoaXMuU2Ep
e3RoaXMuTGE9bTtyZXR1cm59aWYodGhpcy5jLmlmcmlkKXRoaXMudT10eXBlb2YgdGhpcy5jLmlm
cmlkPT0ic3RyaW5nIj9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmMuaWZyaWQpOnRoaXMu
Yy5pZnJpZDtpZih0aGlzLnUpe3ZhciBiPXRoaXMudS5jb250ZW50V2luZG93O2J8fChiPXdpbmRv
dy5mcmFtZXNbdGhpcy5jLmlmcmlkXSk7dGhpcy5BYShiKX1pZighdGhpcy5mKWlmKHdpbmRvdz09
dG9wKXRocm93IEVycm9yKCJDcm9zc1BhZ2VDaGFubmVsOiBDYW4ndCBjb25uZWN0LCBwZWVyIHdp
bmRvdy1vYmplY3Qgbm90IHNldC4iKTtlbHNlIHRoaXMuQWEod2luZG93LnBhcmVudCk7dGhpcy5R
YSgpO3RoaXMuZS5jb25uZWN0KCl9OwpWLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe2lmKCF0
aGlzLmgoKSlyZXR1cm47dGhpcy5aPTM7dGhpcy5lLmRpc3Bvc2UoKTt0aGlzLmU9aX07Vi5wcm90
b3R5cGUuaz1mdW5jdGlvbigpe2lmKHRoaXMuaCgpKXJldHVybjt0aGlzLlo9Mjt0aGlzLktiKCl9
O1YucHJvdG90eXBlLm9iPWZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpfTtWLnByb3RvdHlwZS51Yj1m
dW5jdGlvbihhLGIsYyl7dGhpcy55YVthXT17bmFtZTphLGNhbGxiYWNrOmIsanNvbkVuY29kZWQ6
ISFjfX07Vi5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLmgoKSlyZXR1cm47
aWYodGhpcy5mLmNsb3NlZCl7dGhpcy5jbG9zZSgpO3JldHVybn1pZih3YShiKSliPUpiKGIpO3Ro
aXMuZS5zZW5kKGEsYil9OwpWLnByb3RvdHlwZS5tPWZ1bmN0aW9uKGEsYil7aWYoIWF8fGE9PSJ0
cCIpdGhpcy5lLkQoYik7ZWxzZSBpZih0aGlzLmgoKSl7dmFyIGM9dGhpcy55YVthXTtpZihjKXtp
ZihjLmpzb25FbmNvZGVkKXRyeXtiPUhiKGIpfWNhdGNoKGQpe3JldHVybn1jLmNhbGxiYWNrKGIp
fX19O1YucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXtWLm8uYi5jYWxsKHRoaXMpO3RoaXMuY2xvc2Uo
KTt0aGlzLmY9aTt0aGlzLnU9aTtkZWxldGUgdGhpcy55YTtMYlt0aGlzLm5hbWVdPWl9O3ZhciBM
Yz1mdW5jdGlvbigpe2Zvcih2YXIgYSBpbiBMYil7dmFyIGI9TGJbYV07YiYmYi5kaXNwb3NlKCl9
fTt2YXIgTWM9ZnVuY3Rpb24oYSl7dmFyIGI9YXx8ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wr
Ii8vIitkb2N1bWVudC5sb2NhdGlvbi5ob3N0O3JldHVybiBiKyIvcm9ib3RzLnR4dCJ9O3ZhciBX
PWZ1bmN0aW9uKGEsYil7dGhpcy5xPWIud2lkdGg7dGhpcy5wPWIuaGVpZ2h0O3RoaXMuR2E9TmIo
MTApO3RoaXMuTmI9dGhpcy5iYihhLGRvY3VtZW50KTt0aGlzLlI9aDt0aGlzLmQ9Yjt0aGlzLmQu
c3JjPXRoaXMuamIoZG9jdW1lbnQsYSk7dGhpcy5oYih0aGlzLmRiKGRvY3VtZW50KSl9O1cucHJv
dG90eXBlLmpiPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIrKGIuaW5kZXhPZigiPyIpPT0tMT8iPyI6
IiYiKSsidz0iK3RoaXMucSsiJmg9Iit0aGlzLnArIiZ4cGM9Iit0aGlzLkdhKyImcD0iK2VzY2Fw
ZShhLmxvY2F0aW9uLnByb3RvY29sKyIvLyIrYS5sb2NhdGlvbi5ob3N0KX07Vy5wcm90b3R5cGUu
ZGI9ZnVuY3Rpb24oKXt2YXIgYT17fTthLmlmcmlkPXRoaXMuZC5pZDthLnB1PXRoaXMuZC5zcmM7
YS5jbj10aGlzLkdhO2EucHB1PU1jKHRoaXMuTmIpO2EubHB1PU1jKCk7cmV0dXJuIGF9OwpXLnBy
b3RvdHlwZS5oYj1mdW5jdGlvbihhKXt0aGlzLmE9bmV3IFYoYSk7dGhpcy5hLnViKCJleHBhbmRh
YmxlX2FkIix6KHRoaXMuSix0aGlzKSk7dGhpcy5hLmNvbm5lY3QoZnVuY3Rpb24oKXt9KTt3aW5k
b3cuc2V0VGltZW91dCh6KHRoaXMuZmIsdGhpcyksMzAwMDApfTtXLnByb3RvdHlwZS5mYj1mdW5j
dGlvbigpe3RoaXMuYSYmIXRoaXMuYS5oKCkmJnRoaXMuYS5kaXNwb3NlKCl9O1cucHJvdG90eXBl
LmJiPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5pbmRleE9mKCIvLyIpLGQ9Yz4wLGU9ZD9hLnN1YnN0
cmluZygwLGMpOmIubG9jYXRpb24ucHJvdG9jb2wsZj1kP2Euc3Vic3RyaW5nKGMrMik6Yi5sb2Nh
dGlvbi5ob3N0LGc9Zi5pbmRleE9mKCIvIik7aWYoZCYmZz4wKWY9Zi5zdWJzdHJpbmcoMCxnKTty
ZXR1cm4gZSsiLy8iK2Z9OwpXLnByb3RvdHlwZS5KPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3BsaXQo
Il8iKSxjPWJbMF07aWYoYz09ImV4cGFuZCIpdGhpcy5nYihiKTtlbHNlIGM9PSJjb2xsYXBzZSIm
JnRoaXMuZWIoKX07Vy5wcm90b3R5cGUudmE9ZnVuY3Rpb24oYSl7dGhpcy5hLnNlbmQoImV4cGFu
ZGFibGVfYWQiLGEpfTtXLnByb3RvdHlwZS5nYj1mdW5jdGlvbihhKXtpZih0aGlzLlIpcmV0dXJu
O3ZhciBiLGM7Zm9yKHZhciBkIGluIGEpe3ZhciBlPWFbZF0uY2hhckF0KDApO2lmKGU9PSJ3Iili
PXBhcnNlSW50KGFbZF0uc3Vic3RyaW5nKDEpLDEwKTtlbHNlIGlmKGU9PSJoIiljPXBhcnNlSW50
KGFbZF0uc3Vic3RyaW5nKDEpLDEwKX12YXIgZj10aGlzLlVhKGIsYyk7dGhpcy5XYShiLGMsZik7
dGhpcy52YSgib2tfZXhwYW5kX3ciK2IrIl9oIitjKyJfZCIrZil9OwpXLnByb3RvdHlwZS5lYj1m
dW5jdGlvbigpe2lmKCF0aGlzLlIpcmV0dXJuO3RoaXMuS2EoKTt0aGlzLnZhKCJva19jb2xsYXBz
ZV93Iit0aGlzLnErIl9oIit0aGlzLnApfTtXLnByb3RvdHlwZS5LYT1mdW5jdGlvbigpe3RoaXMu
ZC5zdHlsZS53aWR0aD10aGlzLnErInB4Ijt0aGlzLmQuc3R5bGUuaGVpZ2h0PXRoaXMucCsicHgi
O3RoaXMuZC5zdHlsZS5sZWZ0PSIwIjt0aGlzLmQuc3R5bGUudG9wPSIwIjt0aGlzLmQuc3R5bGUu
ekluZGV4PWk7dGhpcy5kLnBhcmVudE5vZGUuc3R5bGUuekluZGV4PWk7dGhpcy5SPWh9OwpXLnBy
b3RvdHlwZS5XYT1mdW5jdGlvbihhLGIsYyl7dGhpcy5kLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0
ZSI7dGhpcy5kLnN0eWxlLndpZHRoPWErInB4Ijt0aGlzLmQuc3R5bGUuaGVpZ2h0PWIrInB4Ijt0
aGlzLmQuc3R5bGUuekluZGV4PTk5OTk7dGhpcy5kLnBhcmVudE5vZGUuc3R5bGUuekluZGV4PTk5
OTk7aWYoYT50aGlzLnEmJihjPT0wfHxjPT0zKSl0aGlzLmQuc3R5bGUubGVmdD0iLSIrKGEtdGhp
cy5xKSsicHgiO2lmKGI+dGhpcy5wJiYoYz09MXx8Yz09MCkpdGhpcy5kLnN0eWxlLnRvcD0iLSIr
KGItdGhpcy5wKSsicHgiO3RoaXMuUj1tfTsKVy5wcm90b3R5cGUuVWE9ZnVuY3Rpb24oYSxiKXt2
YXIgYz1FYih0aGlzLmQpLGQ9dGIod2luZG93KSxlPWEtdGhpcy5xLGY9Yi10aGlzLnAsZz1jLnks
aj1mPmcsaz1kLmhlaWdodC0oYy55K3RoaXMucCksbD1qfHxrPj1nLG89Yy54LHA9ZT5vLHQ9ZC53
aWR0aC0oYy54K3RoaXMucSkscj1wfHx0Pj1vLEg9MDtpZihsJiZyKUg9MjtlbHNlIGlmKGwmJiFy
KUg9MztlbHNlIGlmKCFsJiZyKUg9MTtlbHNlIGlmKCFsJiYhcilIPTA7cmV0dXJuIEh9O0JhKCJF
eHBhbmRhYmxlQWRTbG90IixXKTt2YXIgTmM9MDtmdW5jdGlvbiBPYyhhKXtyZXR1cm4gYSE9aT8n
IicrYSsnIic6JyIiJ31mdW5jdGlvbiBsYShhKXtyZXR1cm4gdHlwZW9mIGVuY29kZVVSSUNvbXBv
bmVudD09ImZ1bmN0aW9uIj9lbmNvZGVVUklDb21wb25lbnQoYSk6ZXNjYXBlKGEpfWZ1bmN0aW9u
IFgoYSxiKXtpZihhJiZiKXdpbmRvdy5nb29nbGVfYWRfdXJsKz0iJiIrYSsiPSIrYn1mdW5jdGlv
biBZKGEpe3ZhciBiPXdpbmRvdyxjPWZhW2FdfHxnYVthXXx8aSxkPWJbYV07WChjLGQpfWZ1bmN0
aW9uIFooYSxiKXtiIT1pJiZYKGEsbGEoYikpfWZ1bmN0aW9uICQoYSl7dmFyIGI9d2luZG93LGM9
ZmFbYV18fGdhW2FdfHxpLGQ9YlthXTtaKGMsZCl9ZnVuY3Rpb24gUGMoYSxiKXt2YXIgYz13aW5k
b3csZD1mYVthXXx8Z2FbYV18fGksZT1jW2FdO2lmKGQmJmUmJnR5cGVvZiBlPT0ib2JqZWN0Iill
PWVbYiVlLmxlbmd0aF07WChkLGUpfQpmdW5jdGlvbiBRYyhhLGIpe3ZhciBjPWEuc2NyZWVuLGQ9
bmF2aWdhdG9yLmphdmFFbmFibGVkKCksZT0tYi5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGMpe1go
InVfaCIsYy5oZWlnaHQpO1goInVfdyIsYy53aWR0aCk7WCgidV9haCIsYy5hdmFpbEhlaWdodCk7
WCgidV9hdyIsYy5hdmFpbFdpZHRoKTtYKCJ1X2NkIixjLmNvbG9yRGVwdGgpfVgoInVfdHoiLGUp
O1goInVfaGlzIixoaXN0b3J5Lmxlbmd0aCk7WCgidV9qYXZhIixkKTtuYXZpZ2F0b3IucGx1Z2lu
cyYmWCgidV9ucGx1ZyIsbmF2aWdhdG9yLnBsdWdpbnMubGVuZ3RoKTtuYXZpZ2F0b3IubWltZVR5
cGVzJiZYKCJ1X25taW1lIixuYXZpZ2F0b3IubWltZVR5cGVzLmxlbmd0aCl9CmZ1bmN0aW9uIFJj
KGEpe2lmKCFhLmdvb2dsZV9lbmFibGVfZmlyc3RfcGFydHlfY29va2llKXJldHVybjtpZih1PT1p
KXU9bmV3IGhhO2lmKGEuX0dBX2dvb2dsZUNvb2tpZUhlbHBlcj09aSlhLl9HQV9nb29nbGVDb29r
aWVIZWxwZXI9bmV3IHY7aWYoIWEuX2dvb2dsZV9jb29raWVfZmV0Y2hlZCl7YS5fZ29vZ2xlX2Nv
b2tpZV9mZXRjaGVkPW07YS5fR0FfZ29vZ2xlQ29va2llSGVscGVyLlhhKFNjKGEuZ29vZ2xlX2Fk
X2NsaWVudCkpfX1mdW5jdGlvbiBTYyhhKXtpZihhKXthPWEudG9Mb3dlckNhc2UoKTtpZihhLnN1
YnN0cmluZygwLDMpIT0iY2EtIilhPSJjYS0iK2F9cmV0dXJuIGF9ZnVuY3Rpb24gVGMoYSl7aWYo
YSl7YT1hLnRvTG93ZXJDYXNlKCk7aWYoYS5zdWJzdHJpbmcoMCw5KSE9ImRpc3QtYWZmLSIpYT0i
ZGlzdC1hZmYtIithfXJldHVybiBhfQpmdW5jdGlvbiBVYyhhKXt2YXIgYj0iZ29vZ2xlX3VuaXF1
ZV9pZCI7aWYoYVtiXSkrK2FbYl07ZWxzZSBhW2JdPTE7cmV0dXJuIGFbYl19ZnVuY3Rpb24gVmMo
KXt2YXIgYT1DJiZFKCI2IikmJiFFKCI4IiksYj1qYiYmRSgiMS44LjEiKSxjPUQmJkUoIjUyNSIp
O2lmKGViJiYoYXx8Ynx8YykpcmV0dXJuIG07ZWxzZSBpZihkYiYmKGN8fGIpKXJldHVybiBtO2Vs
c2UgaWYoZmImJmIpcmV0dXJuIG07cmV0dXJuIGh9ZnVuY3Rpb24gV2MoYSxiKXt2YXIgYz1hLmdv
b2dsZV9hbGxvd19leHBhbmRhYmxlX2FkcztpZihjIT1pJiZjPT1ofHwhYi5ib2R5fHxhLmdvb2ds
ZV9hZF9vdXRwdXQhPSJodG1sInx8WGMoYSxiKXx8WWMoYSl8fFpjKGEuZ29vZ2xlX2FkX2Zvcm1h
dCl8fCFWYygpKXJldHVybiBoO3JldHVybiBtfQpmdW5jdGlvbiAkYygpe3ZhciBhPU1hdGgucmFu
ZG9tKCk7aWYoYTwwLjAzKXJldHVybiAzMDE0MzAwMTtlbHNlIGlmKGE8MC4wNilyZXR1cm4gMzAx
NDMwMDI7cmV0dXJuIDB9ZnVuY3Rpb24gYWQoKXt2YXIgYT1NYXRoLnJhbmRvbSgpO2lmKGE8MC4w
MSlyZXR1cm4gMzAxNDMwMDM7ZWxzZSBpZihhPDAuMDIpcmV0dXJuIDMwMTQzMDA0O2Vsc2UgaWYo
YTwwLjAzKXJldHVybiAzMDE0MzAwNTtlbHNlIGlmKGE8MC4wNClyZXR1cm4gMzAxNDMwMDY7ZWxz
ZSBpZihhPDAuMDUpcmV0dXJuIDMwMTQzMDA3O2Vsc2UgaWYoYTwwLjA2KXJldHVybiAzMDE0MzAw
ODtyZXR1cm4gMH1mdW5jdGlvbiBiZChhKXthLmdvb2dsZV9hbGxvd19leHBhbmRhYmxlX2Fkcz1o
O2EuZ29vZ2xlX2V4cGFuZGFibGVfaWZyYW1lPWh9dmFyIGNkPU1hdGgucmFuZG9tKCk8MC4wMDEw
OwpmdW5jdGlvbiBkZChhLGIpe2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzfHwoYS5nb29nbGVfaW1h
Z2VfcmVxdWVzdHM9W10pO3ZhciBjPW5ldyBJbWFnZTtjLnNyYz1iO2EuZ29vZ2xlX2ltYWdlX3Jl
cXVlc3RzLnB1c2goYyl9CmZ1bmN0aW9uIGVkKGEsYixjLGQpe3ZhciBlPVVjKGEpLGY9YS5nb29n
bGVfY29udGFpbmVyX2lkfHxkfHwiZ29vZ2xlX2FkX2RpdiIrZTtjPWMuc3Vic3RyaW5nKDAsMjAw
MCk7Yz1jLnJlcGxhY2UoLyVcdz8kLywiIik7dmFyIGc9InNjcmlwdCI7aWYoKGEuZ29vZ2xlX2Fk
X291dHB1dD09ImpzInx8YS5nb29nbGVfYWRfb3V0cHV0PT0ianNvbl9odG1sIikmJihhLmdvb2ds
ZV9hZF9yZXF1ZXN0X2RvbmV8fGEuZ29vZ2xlX3JhZGxpbmtfcmVxdWVzdF9kb25lKSliLndyaXRl
KCI8IitnKycgbGFuZ3VhZ2U9IkphdmFTY3JpcHQxLjEiIHNyYz0nK09jKGMpKyI+PC8iK2crIj4i
KTtlbHNlIGlmKGEuZ29vZ2xlX2FkX291dHB1dD09Imh0bWwiKWlmKGIuYm9keSYmKGEuZ29vZ2xl
X2V4cGFuZGFibGVfaWZyYW1lfHxOYz09MzAxNDMwMDIpKXt2YXIgaj1mZChmLHBhcnNlSW50KGEu
Z29vZ2xlX2FkX3dpZHRoLDEwKSxwYXJzZUludChhLmdvb2dsZV9hZF9oZWlnaHQsMTApLGIpLGs9
Z2QoZSwKYSxqKTthWyJnb29nbGVfZXhwYW5kYWJsZV9hZF9zbG90IitlXT1uZXcgVyhjLGspfWVs
c2V7dmFyIGw9JzxpZnJhbWUgbmFtZT0iZ29vZ2xlX2Fkc19mcmFtZSIgd2lkdGg9JytPYyhhLmdv
b2dsZV9hZF93aWR0aCkrIiBoZWlnaHQ9IitPYyhhLmdvb2dsZV9hZF9oZWlnaHQpKyIgZnJhbWVi
b3JkZXI9IitPYyhhLmdvb2dsZV9hZF9mcmFtZWJvcmRlcikrIiBzcmM9IitPYyhjKSsnIG1hcmdp
bndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiIHZzcGFjZT0iMCIgaHNwYWNlPSIwIiBhbGxvd3Ry
YW5zcGFyZW5jeT0idHJ1ZSIgc2Nyb2xsaW5nPSJubyI+PC9pZnJhbWU+JzthLmdvb2dsZV9jb250
YWluZXJfaWQ/aGQoYS5nb29nbGVfY29udGFpbmVyX2lkLGIsbCk6Yi53cml0ZShsKX1lbHNlIGEu
Z29vZ2xlX2FkX291dHB1dD09InRleHRsaW5rIiYmYi53cml0ZSgiPCIrZysnIGxhbmd1YWdlPSJK
YXZhU2NyaXB0MS4xIiBzcmM9JytPYyhjKSsiPjwvIitnKyI+Iik7aWYoY2Qpe3ZhciBvPQppZChh
KSsiL3BhZ2VhZC9nZW5fMjA0P2lkPWlmanMmdG9rZW49IithLmdvb2dsZV9jb3JyZWxhdG9yO2Rk
KGEsbyl9fWZ1bmN0aW9uIGZkKGEsYixjLGQpe3ZhciBlPXFiKGEpO2lmKGUpe2Uuc3R5bGUuZGlz
cGxheT0iYmxvY2siO2Uuc3R5bGUuaGVpZ2h0PWMrInB4IjtlLnN0eWxlLnZpc2liaWxpdHk9InZp
c2libGUiO2Uuc3R5bGUud2lkdGg9YisicHgifWVsc2V7ZC53cml0ZSgnPGlucyBpZD0iJythKyci
IHN0eWxlPSJ3aWR0aDonK2IrInB4O2hlaWdodDoiK2MrJ3B4O3Bvc2l0aW9uOnJlbGF0aXZlO21h
cmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6dmlzaWJsZTtib3JkZXI6
bm9uZSI+PC9pbnM+Jyk7ZT1xYihhKX1yZXR1cm4gZX0KZnVuY3Rpb24gZ2QoYSxiLGMpe3ZhciBk
PW1iKCkuY3JlYXRlRWxlbWVudCgiSUZSQU1FIik7ZC5pZD0iZ29vZ2xlX2Fkc19mcmFtZSIrYTtk
LmFsbG93VHJhbnNwYXJlbmN5PW07ZC5mcmFtZUJvcmRlcj1iLmdvb2dsZV9hZF9mcmFtZWJvcmRl
cnx8MDtkLmhlaWdodD1iLmdvb2dsZV9hZF9oZWlnaHQ7ZC5oc3BhY2U9MDtkLm1hcmdpbkhlaWdo
dD0wO2QubWFyZ2luV2lkdGg9MDtkLm5hbWU9Imdvb2dsZV9hZHNfZnJhbWUiO2Quc2Nyb2xsaW5n
PSJubyI7ZC5zdHlsZS5sZWZ0PTA7ZC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Quc3R5bGUu
dG9wPTA7ZC52c3BhY2U9MDtkLndpZHRoPWIuZ29vZ2xlX2FkX3dpZHRoO2MuYXBwZW5kQ2hpbGQo
ZCk7cmV0dXJuIGR9ZnVuY3Rpb24gamQoYSl7Zm9yKHZhciBiIGluIGZhKWFbYl09aTtmb3IodmFy
IGIgaW4gZ2Epe2lmKGI9PSJnb29nbGVfY29ycmVsYXRvciIpY29udGludWU7YVtiXT1pfWEuZ29v
Z2xlX2NvbnRhaW5lcl9pZD1pfQpmdW5jdGlvbiBZYyhhKXtpZihhLmdvb2dsZV9hZF9mb3JtYXQp
cmV0dXJuIGEuZ29vZ2xlX2FkX2Zvcm1hdC5pbmRleE9mKCJfMGFkcyIpPjA7cmV0dXJuIGEuZ29v
Z2xlX2FkX291dHB1dCE9Imh0bWwiJiZhLmdvb2dsZV9udW1fcmFkbGlua3M+MH1mdW5jdGlvbiBa
YyhhKXtyZXR1cm4gYSYmYS5pbmRleE9mKCJfc2RvIikhPS0xfQpmdW5jdGlvbiBrZChhKXt2YXIg
Yj1pLGM9d2luZG93LGQ9ZG9jdW1lbnQsZT1uZXcgRGF0ZSxmPWUuZ2V0VGltZSgpLGc9Yy5nb29n
bGVfYWRfZm9ybWF0LGo9aWQoYyksaztpZihjLmdvb2dsZV9jcGFfY2hvaWNlIT1iKXtjLmdvb2ds
ZV9hZF91cmw9aisiL2NwYS9hZHM/IjtrPWVzY2FwZShTYyhjLmdvb2dsZV9hZF9jbGllbnQpKTtj
Lmdvb2dsZV9hZF9yZWdpb249Il9nb29nbGVfY3BhX3JlZ2lvbl8iO1koImdvb2dsZV9jcGFfY2hv
aWNlIik7aWYodHlwZW9mIGQuY2hhcmFjdGVyU2V0IT0idW5kZWZpbmVkIilaKCJvZSIsZC5jaGFy
YWN0ZXJTZXQpO2Vsc2UgdHlwZW9mIGQuY2hhcnNldCE9InVuZGVmaW5lZCImJlooIm9lIixkLmNo
YXJzZXQpfWVsc2UgaWYoWmMoZykpe2MuZ29vZ2xlX2FkX3VybD1qKyIvcGFnZWFkL3Nkbz8iO2s9
ZXNjYXBlKFRjKGMuZ29vZ2xlX2FkX2NsaWVudCkpfWVsc2V7Yy5nb29nbGVfYWRfdXJsPWorIi9w
YWdlYWQvYWRzPyI7az1lc2NhcGUoU2MoYy5nb29nbGVfYWRfY2xpZW50KSl9Yy5nb29nbGVfYWRf
dXJsKz0KImNsaWVudD0iK2s7WSgiZ29vZ2xlX2FkX2hvc3QiKTtZKCJnb29nbGVfYWRfaG9zdF90
aWVyX2lkIik7dmFyIGw9Yy5nb29nbGVfbnVtX3Nsb3RzX2J5X2NsaWVudCxvPWMuZ29vZ2xlX251
bV9zbG90c19ieV9jaGFubmVsLHA9Yy5nb29nbGVfcHJldl9hZF9mb3JtYXRzX2J5X3JlZ2lvbix0
PWMuZ29vZ2xlX3ByZXZfYWRfc2xvdG5hbWVzX2J5X3JlZ2lvbjtpZihjLmdvb2dsZV9hZF9yZWdp
b249PWImJmMuZ29vZ2xlX2FkX3NlY3Rpb24hPWIpYy5nb29nbGVfYWRfcmVnaW9uPWMuZ29vZ2xl
X2FkX3NlY3Rpb247dmFyIHI9Yy5nb29nbGVfYWRfcmVnaW9uPT1iPyIiOmMuZ29vZ2xlX2FkX3Jl
Z2lvbjtpZihaYyhnKSl7Yy5nb29nbGVfbnVtX3Nkb19zbG90cz1jLmdvb2dsZV9udW1fc2RvX3Ns
b3RzP2MuZ29vZ2xlX251bV9zZG9fc2xvdHMrMToxO2lmKGMuZ29vZ2xlX251bV9zZG9fc2xvdHM+
NClyZXR1cm4gaH1lbHNlIGlmKFljKGMpKXtjLmdvb2dsZV9udW1fMGFkX3Nsb3RzPWMuZ29vZ2xl
X251bV8wYWRfc2xvdHM/CmMuZ29vZ2xlX251bV8wYWRfc2xvdHMrMToxO2lmKGMuZ29vZ2xlX251
bV8wYWRfc2xvdHM+MylyZXR1cm4gaH1lbHNlIGlmKGMuZ29vZ2xlX2NwYV9jaG9pY2U9PWIpe2Mu
Z29vZ2xlX251bV9hZF9zbG90cz1jLmdvb2dsZV9udW1fYWRfc2xvdHM/Yy5nb29nbGVfbnVtX2Fk
X3Nsb3RzKzE6MTtpZihjLmdvb2dsZV9udW1fc2xvdHNfdG9fcm90YXRlKXtwW3JdPWI7dFtyXT1i
O2lmKGMuZ29vZ2xlX251bV9zbG90X3RvX3Nob3c9PWIpYy5nb29nbGVfbnVtX3Nsb3RfdG9fc2hv
dz1mJWMuZ29vZ2xlX251bV9zbG90c190b19yb3RhdGUrMTtpZihjLmdvb2dsZV9udW1fc2xvdF90
b19zaG93IT1jLmdvb2dsZV9udW1fYWRfc2xvdHMpcmV0dXJuIGh9ZWxzZSBpZihjLmdvb2dsZV9u
dW1fYWRfc2xvdHM+NiYmcj09IiIpcmV0dXJuIGh9WCgiZHQiLGUuZ2V0VGltZSgpKTtZKCJnb29n
bGVfbGFuZ3VhZ2UiKTtjLmdvb2dsZV9jb3VudHJ5P1koImdvb2dsZV9jb3VudHJ5Iik6WSgiZ29v
Z2xlX2dsIik7ClkoImdvb2dsZV9yZWdpb24iKTskKCJnb29nbGVfY2l0eSIpOyQoImdvb2dsZV9o
aW50cyIpO1koImdvb2dsZV9zYWZlIik7WSgiZ29vZ2xlX2VuY29kaW5nIik7WSgiZ29vZ2xlX2xh
c3RfbW9kaWZpZWRfdGltZSIpOyQoImdvb2dsZV9hbHRlcm5hdGVfYWRfdXJsIik7WSgiZ29vZ2xl
X2FsdGVybmF0ZV9jb2xvciIpO1koImdvb2dsZV9za2lwIik7WSgiZ29vZ2xlX3RhcmdldGluZyIp
O3ZhciBIPWMuZ29vZ2xlX2FkX2NsaWVudDtpZihsW0hdKWxbSF0rPTE7ZWxzZXtsW0hdPTE7bC5s
ZW5ndGgrPTF9aWYocFtyXSlpZighWmMoZykpe1ooInByZXZfZm10cyIscFtyXS50b0xvd2VyQ2Fz
ZSgpKTtsLmxlbmd0aD4xJiZYKCJzbG90IixsW0hdKX10W3JdJiZaKCJwcmV2X3Nsb3RuYW1lcyIs
dFtyXS50b0xvd2VyQ2FzZSgpKTtpZihnJiYhYy5nb29nbGVfYWRfc2xvdCl7WigiZm9ybWF0Iixn
LnRvTG93ZXJDYXNlKCkpO1pjKGcpfHwocFtyXT1wW3JdP3Bbcl0rIiwiK2c6Zyl9aWYoYy5nb29n
bGVfYWRfc2xvdCl0W3JdPQp0W3JdP3Rbcl0rIiwiK2MuZ29vZ2xlX2FkX3Nsb3Q6Yy5nb29nbGVf
YWRfc2xvdDtZKCJnb29nbGVfbWF4X251bV9hZHMiKTtYKCJvdXRwdXQiLGMuZ29vZ2xlX2FkX291
dHB1dCk7WSgiZ29vZ2xlX2FkdGVzdCIpO1koImdvb2dsZV9hZF9jYWxsYmFjayIpO1koImdvb2ds
ZV9hZF9zbG90Iik7JCgiZ29vZ2xlX2NvcnJlbGF0b3IiKTtjLmdvb2dsZV9uZXdfZG9tYWluX2No
ZWNrZWQ9PTEmJmMuZ29vZ2xlX25ld19kb21haW5fZW5hYmxlZD09MCYmWCgiZGJsayIsMSk7aWYo
Yy5nb29nbGVfYWRfY2hhbm5lbCl7JCgiZ29vZ2xlX2FkX2NoYW5uZWwiKTt2YXIgVmI9IiIsWGI9
Yy5nb29nbGVfYWRfY2hhbm5lbC5zcGxpdChsZCk7Zm9yKHZhciAkYT0wOyRhPFhiLmxlbmd0aDsk
YSsrKXt2YXIgYWI9WGJbJGFdO2lmKG9bYWJdKVZiKz1hYisiKyI7ZWxzZSBvW2FiXT0xfVooInB2
X2NoIixWYil9aWYoYy5nb29nbGVfYWRfaG9zdF9jaGFubmVsKXskKCJnb29nbGVfYWRfaG9zdF9j
aGFubmVsIik7CnZhciB0ZD1tZChjLmdvb2dsZV9hZF9ob3N0X2NoYW5uZWwsYy5nb29nbGVfdmll
d2VkX2hvc3RfY2hhbm5lbHMpO1ooInB2X2hfY2giLHRkKX1jLmdvb2dsZV9lbmFibGVfZmlyc3Rf
cGFydHlfY29va2llJiZaKCJjb29raWUiLGMuX0dBX2dvb2dsZUNvb2tpZUhlbHBlci5jYigpKTsk
KCJnb29nbGVfcGFnZV91cmwiKTtQYygiZ29vZ2xlX2NvbG9yX2JnIixmKTtQYygiZ29vZ2xlX2Nv
bG9yX3RleHQiLGYpO1BjKCJnb29nbGVfY29sb3JfbGluayIsZik7UGMoImdvb2dsZV9jb2xvcl91
cmwiLGYpO1BjKCJnb29nbGVfY29sb3JfYm9yZGVyIixmKTtQYygiZ29vZ2xlX2NvbG9yX2xpbmUi
LGYpO2MuZ29vZ2xlX3JldXNlX2NvbG9ycz9YKCJyZXVzZV9jb2xvcnMiLDEpOlgoInJldXNlX2Nv
bG9ycyIsMCk7WSgiZ29vZ2xlX2t3X3R5cGUiKTskKCJnb29nbGVfa3ciKTskKCJnb29nbGVfY29u
dGVudHMiKTtZKCJnb29nbGVfbnVtX3JhZGxpbmtzIik7WSgiZ29vZ2xlX21heF9yYWRsaW5rX2xl
biIpOwpZKCJnb29nbGVfcmxfZmlsdGVyaW5nIik7WSgiZ29vZ2xlX3JsX21vZGUiKTtZKCJnb29n
bGVfcnQiKTskKCJnb29nbGVfcmxfZGVzdF91cmwiKTtZKCJnb29nbGVfbnVtX3JhZGxpbmtzX3Bl
cl91bml0Iik7WSgiZ29vZ2xlX2FkX3R5cGUiKTtZKCJnb29nbGVfaW1hZ2Vfc2l6ZSIpO1koImdv
b2dsZV9hZF9yZWdpb24iKTtpZighV2MoYyxkKSliZChjKTtlbHNlIGlmKGMuZ29vZ2xlX2V4cGFu
ZGFibGVfaWZyYW1lPT09aCliZChjKTtlbHNlIGlmKGsgaW57ImNhLXB1Yi05MDkxNDQyNDY0MjA0
MTc2IjoxLCJjYS1wdWItMjk0NDQ1MTcyNzg3MjYyNSI6MSwiY2EtcHViLTk0ODMyNjYxMjg0OTA2
MTAiOjEsImNhLXB1Yi01MzE4NzU2ODU5MDA0OTYzIjoxLCJjYS1wdWItOTA5MTQ0MjQ2NDIwNDE3
NiI6MSwiY2EtcHViLTU3ODM3OTEwMzQ1NzUyOTciOjEsImNhLXB1Yi0xOTU1OTI0NzE3ODQ1NDI3
IjoxLCJjYS1wdWItMTk1NTkyNDcxNzg0NTQyNyI6MSwiY2EtcHViLTkwOTE0NDI0NjQyMDQxNzYi
OjF9KWMuZ29vZ2xlX2V4cGFuZGFibGVfaWZyYW1lPQptO2Vsc2UgaWYoIShjLmdvb2dsZV9leHBh
bmRhYmxlX2lmcmFtZT09bSkpe05jPSRjKCk7WCgiZWlkIixOYyk7YmQoYyl9dmFyIFliPWMuZ29v
Z2xlX2FsbG93X2V4cGFuZGFibGVfYWRzO2lmKFliIT1pKVliP1goImVhIiwiMSIpOlgoImVhIiwi
MCIpO2lmKE5jPT0wKXtOYz1hZCgpO1goImVpZCIsTmMpfVkoImdvb2dsZV9mZWVkYmFjayIpOyQo
Imdvb2dsZV9yZWZlcnJlcl91cmwiKTskKCJnb29nbGVfcGFnZV9sb2NhdGlvbiIpO1goImZybSIs
Yy5nb29nbGVfaWZyYW1pbmcpO1koImdvb2dsZV9iaWQiKTtZKCJnb29nbGVfY3RyX3RocmVzaG9s
ZCIpO1koImdvb2dsZV9jdXN0X2FnZSIpO1koImdvb2dsZV9jdXN0X2dlbmRlciIpO1koImdvb2ds
ZV9jdXN0X2ludGVyZXN0cyIpO1koImdvb2dsZV9jdXN0X2lkIik7WSgiZ29vZ2xlX2N1c3Rfam9i
Iik7WSgiZ29vZ2xlX2N1c3RfdV91cmwiKTtZKCJnb29nbGVfY3VzdF9sIik7WSgiZ29vZ2xlX2N1
c3RfbGgiKTtZKCJnb29nbGVfY3VzdF9jaCIpOwpZKCJnb29nbGVfZWQiKTtZKCJnb29nbGVfdmlk
ZW9fZG9jX2lkIik7WSgiZ29vZ2xlX3ZpZGVvX3Byb2R1Y3RfdHlwZSIpOyQoImdvb2dsZV91aV9m
ZWF0dXJlcyIpOyQoImdvb2dsZV9vbmx5X2Fkc193aXRoX3ZpZGVvIik7JCgiZ29vZ2xlX2Rpc2Fi
bGVfdmlkZW9fYXV0b3BsYXkiKTtpZihhKXtaKCJmZiIsRmIoYSkpO3ZhciBiYj1EYihhKSxjYj10
YigpO2lmKGJiJiZjYil7WigiYml3IixjYi53aWR0aCk7WigiYmloIixjYi5oZWlnaHQpO1ooImFk
eCIsYmIueCk7WigiYWR5IixiYi55KX19YWEoKTtYKCJnYV92aWQiLGMuZ2FHbG9iYWwudmlkKTtY
KCJnYV9zaWQiLGMuZ2FHbG9iYWwuc2lkKTtYKCJnYV9oaWQiLGMuZ2FHbG9iYWwuaGlkKTtYKCJn
YV9mYyIsYy5nYUdsb2JhbC5mcm9tX2Nvb2tpZSk7JCgiZ29vZ2xlX2FuYWx5dGljc191YWNjdCIp
O1koImdvb2dsZV9hZF9vdmVycmlkZSIpO1koImdvb2dsZV9mbGFzaF92ZXJzaW9uIik7UWMoYyxl
KTtjZCYmWCgiZ2VuXzIwNCIsCiJ5ZXMiKTtyZXR1cm4gbX1mdW5jdGlvbiBtZChhLGIpe3ZhciBj
PWEuc3BsaXQoInwiKSxkPS0xLGU9W107Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspe3ZhciBn
PWNbZl0uc3BsaXQobGQpO2JbZl18fChiW2ZdPXt9KTt2YXIgaj0iIjtmb3IodmFyIGs9MDtrPGcu
bGVuZ3RoO2srKyl7dmFyIGw9Z1trXTtpZihiW2ZdW2xdKWorPSIrIitsO2Vsc2UgYltmXVtsXT0x
fWo9ai5zbGljZSgxKTtlW2ZdPWo7aWYoaiE9IiIpZD1mfXZhciBvPSIiO2lmKGQ+LTEpe2Zvcih2
YXIgZj0wO2Y8ZDtmKyspbys9ZVtmXSsifCI7bys9ZVtkXX1yZXR1cm4gb30KZnVuY3Rpb24gbmQo
KXt2YXIgYT13aW5kb3csYj1kb2N1bWVudDtSYyhhKTt2YXIgYztpZihNYXRoLnJhbmRvbSgpPDAu
MDEpe3ZhciBkPSJnb29nbGVfdGVtcF9zcGFuIjtpZighcWIoZCkpe2Iud3JpdGUoIjxzcGFuIGlk
PSIrZCsiPjwvc3Bhbj4iKTtjPXFiKGQpfX12YXIgZT1rZChjKTtjJiZ2YihjKTtpZighZSlyZXR1
cm47ZWQoYSxiLGEuZ29vZ2xlX2FkX3VybCk7amQoYSl9ZnVuY3Rpb24gb2QoKXtuZCgpO3JldHVy
biBtfQpmdW5jdGlvbiBYYyhhLGIpe2lmKGEudG9wLmxvY2F0aW9uPT1iLmxvY2F0aW9uKXJldHVy
biBoO3ZhciBjPWIuZG9jdW1lbnRFbGVtZW50O2lmKGEuZ29vZ2xlX2FkX3dpZHRoJiZhLmdvb2ds
ZV9hZF9oZWlnaHQpe3ZhciBkPTEsZT0xO2lmKGEuaW5uZXJIZWlnaHQpe2Q9YS5pbm5lcldpZHRo
O2U9YS5pbm5lckhlaWdodH1lbHNlIGlmKGMmJmMuY2xpZW50SGVpZ2h0KXtkPWMuY2xpZW50V2lk
dGg7ZT1jLmNsaWVudEhlaWdodH1lbHNlIGlmKGIuYm9keSl7ZD1iLmJvZHkuY2xpZW50V2lkdGg7
ZT1iLmJvZHkuY2xpZW50SGVpZ2h0fWlmKGU+MiphLmdvb2dsZV9hZF9oZWlnaHR8fGQ+MiphLmdv
b2dsZV9hZF93aWR0aClyZXR1cm4gaH1yZXR1cm4gbX0KZnVuY3Rpb24gcGQoYSl7dmFyIGI9d2lu
ZG93LGM9aSxkPWIub25lcnJvcjtiLm9uZXJyb3I9YTtpZihiLmdvb2dsZV9hZF9mcmFtZWJvcmRl
cj09YyliLmdvb2dsZV9hZF9mcmFtZWJvcmRlcj0wO2lmKGIuZ29vZ2xlX2FkX291dHB1dD09Yyli
Lmdvb2dsZV9hZF9vdXRwdXQ9Imh0bWwiO2lmKFpjKGIuZ29vZ2xlX2FkX2Zvcm1hdCkpe3ZhciBl
PWIuZ29vZ2xlX2FkX2Zvcm1hdC5tYXRjaCgvXihcZCspeChcZCspXy4qLyk7aWYoZSl7Yi5nb29n
bGVfYWRfd2lkdGg9cGFyc2VJbnQoZVsxXSwxMCk7Yi5nb29nbGVfYWRfaGVpZ2h0PXBhcnNlSW50
KGVbMl0sMTApO2IuZ29vZ2xlX2FkX291dHB1dD0iaHRtbCJ9fWlmKGIuZ29vZ2xlX2FkX2Zvcm1h
dD09YyYmYi5nb29nbGVfYWRfb3V0cHV0PT0iaHRtbCIpYi5nb29nbGVfYWRfZm9ybWF0PWIuZ29v
Z2xlX2FkX3dpZHRoKyJ4IitiLmdvb2dsZV9hZF9oZWlnaHQ7cWQoYixkb2N1bWVudCk7aWYoYi5n
b29nbGVfbnVtX3Nsb3RzX2J5X2NoYW5uZWw9PQpjKWIuZ29vZ2xlX251bV9zbG90c19ieV9jaGFu
bmVsPVtdO2lmKGIuZ29vZ2xlX3ZpZXdlZF9ob3N0X2NoYW5uZWxzPT1jKWIuZ29vZ2xlX3ZpZXdl
ZF9ob3N0X2NoYW5uZWxzPVtdO2lmKGIuZ29vZ2xlX251bV9zbG90c19ieV9jbGllbnQ9PWMpYi5n
b29nbGVfbnVtX3Nsb3RzX2J5X2NsaWVudD1bXTtpZihiLmdvb2dsZV9wcmV2X2FkX2Zvcm1hdHNf
YnlfcmVnaW9uPT1jKWIuZ29vZ2xlX3ByZXZfYWRfZm9ybWF0c19ieV9yZWdpb249W107aWYoYi5n
b29nbGVfcHJldl9hZF9zbG90bmFtZXNfYnlfcmVnaW9uPT1jKWIuZ29vZ2xlX3ByZXZfYWRfc2xv
dG5hbWVzX2J5X3JlZ2lvbj1bXTtpZihiLmdvb2dsZV9jb3JyZWxhdG9yPT1jKWIuZ29vZ2xlX2Nv
cnJlbGF0b3I9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoYi5nb29nbGVfYWRzbG90X2xvYWRlZD09
YyliLmdvb2dsZV9hZHNsb3RfbG9hZGVkPXt9O2lmKGIuZ29vZ2xlX2FkQ29udGVudHNCeVNsb3Q9
PWMpYi5nb29nbGVfYWRDb250ZW50c0J5U2xvdD0Ke307aWYoYi5nb29nbGVfZmxhc2hfdmVyc2lv
bj09YyliLmdvb2dsZV9mbGFzaF92ZXJzaW9uPW5hKCk7aWYoYi5nb29nbGVfbmV3X2RvbWFpbl9j
aGVja2VkPT1jKWIuZ29vZ2xlX25ld19kb21haW5fY2hlY2tlZD0wO2lmKGIuZ29vZ2xlX25ld19k
b21haW5fZW5hYmxlZD09YyliLmdvb2dsZV9uZXdfZG9tYWluX2VuYWJsZWQ9MDtiLm9uZXJyb3I9
ZH1mdW5jdGlvbiBvYShhKXtpZihhIGluIHJkKXJldHVybiByZFthXTtyZXR1cm4gcmRbYV09bmF2
aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYSkhPS0xfXZhciByZD17fTsK
ZnVuY3Rpb24gc2QoYSl7dmFyIGI9e30sYz1hLnNwbGl0KCI/IiksZD1jW2MubGVuZ3RoLTFdLnNw
bGl0KCImIik7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPWRbZV0uc3BsaXQoIj0i
KTtpZihmWzBdKXRyeXtiW2ZbMF0udG9Mb3dlckNhc2UoKV09Zi5sZW5ndGg+MT93aW5kb3cuZGVj
b2RlVVJJQ29tcG9uZW50P2RlY29kZVVSSUNvbXBvbmVudChmWzFdLnJlcGxhY2UoL1wrL2csIiAi
KSk6dW5lc2NhcGUoZlsxXSk6IiJ9Y2F0Y2goZyl7fX1yZXR1cm4gYn1mdW5jdGlvbiB1ZCgpe3Zh
ciBhPXdpbmRvdyxiPXNkKGRvY3VtZW50LlVSTCk7aWYoYi5nb29nbGVfYWRfb3ZlcnJpZGUpe2Eu
Z29vZ2xlX2FkX292ZXJyaWRlPWIuZ29vZ2xlX2FkX292ZXJyaWRlO2EuZ29vZ2xlX2FkdGVzdD0i
b24ifX1mdW5jdGlvbiB2ZChhLGIpe2Zvcih2YXIgYyBpbiBiKWFbImdvb2dsZV8iK2NdPWJbY119
CmZ1bmN0aW9uIHdkKGEsYil7aWYoIWIpcmV0dXJuIGEubG9jYXRpb247cmV0dXJuIGEucmVmZXJy
ZXJ9ZnVuY3Rpb24geGQoYSxiKXtpZighYiYmYS5nb29nbGVfcmVmZXJyZXJfdXJsPT1pKXJldHVy
biIwIjtlbHNlIGlmKGImJmEuZ29vZ2xlX3JlZmVycmVyX3VybD09aSlyZXR1cm4iMSI7ZWxzZSBp
ZighYiYmYS5nb29nbGVfcmVmZXJyZXJfdXJsIT1pKXJldHVybiIyIjtlbHNlIGlmKGImJmEuZ29v
Z2xlX3JlZmVycmVyX3VybCE9aSlyZXR1cm4iMyI7cmV0dXJuIjQifWZ1bmN0aW9uIHlkKGEsYixj
LGQpe2EucGFnZV91cmw9d2QoYyxkKTthLnBhZ2VfbG9jYXRpb249aX1mdW5jdGlvbiB6ZChhLGIs
YyxkKXthLnBhZ2VfdXJsPWIuZ29vZ2xlX3BhZ2VfdXJsO2EucGFnZV9sb2NhdGlvbj13ZChjLGQp
fHwiRU1QVFkifQpmdW5jdGlvbiBBZChhLGIpe3ZhciBjPXt9LGQ9WGMoYSxiKTtjLmlmcmFtaW5n
PXhkKGEsZCk7ISFhLmdvb2dsZV9wYWdlX3VybD96ZChjLGEsYixkKTp5ZChjLGEsYixkKTtjLmxh
c3RfbW9kaWZpZWRfdGltZT1iLmxvY2F0aW9uPT1jLnBhZ2VfdXJsP0RhdGUucGFyc2UoYi5sYXN0
TW9kaWZpZWQpLzEwMDA6aTtjLnJlZmVycmVyX3VybD1kP2EuZ29vZ2xlX3JlZmVycmVyX3VybDph
Lmdvb2dsZV9wYWdlX3VybCYmYS5nb29nbGVfcmVmZXJyZXJfdXJsP2EuZ29vZ2xlX3JlZmVycmVy
X3VybDpiLnJlZmVycmVyO3JldHVybiBjfWZ1bmN0aW9uIEJkKGEpe3ZhciBiPXt9LGM9YS5VUkwu
c3Vic3RyaW5nKGEuVVJMLmxhc3RJbmRleE9mKCJodHRwIikpO2IuaWZyYW1pbmc9aTtiLnBhZ2Vf
dXJsPWM7Yi5wYWdlX2xvY2F0aW9uPWEubG9jYXRpb247Yi5sYXN0X21vZGlmaWVkX3RpbWU9aTti
LnJlZmVycmVyX3VybD1jO3JldHVybiBifQpmdW5jdGlvbiBxZChhLGIpe3ZhciBjO2M9YS5nb29n
bGVfcGFnZV91cmw9PWkmJkNkW2IuZG9tYWluXT9CZChiKTpBZChhLGIpO3ZkKGEsYyl9ZnVuY3Rp
b24gaGQoYSxiLGMpe2lmKGEpe3ZhciBkPWIuZ2V0RWxlbWVudEJ5SWQoYSk7aWYoZCYmYyYmYy5s
ZW5ndGghPSIiKXtkLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiO2QuaW5uZXJIVE1MPWN9fX12
YXIgQ2Q9e307Q2RbImFkLnlpZWxkbWFuYWdlci5jb20iXT1tO3ZhciBsZD0vWyssIF0vO3dpbmRv
dy5nb29nbGVfcmVuZGVyX2FkPW5kO3ZhciBEZD17Z29vZ2xlOjEsZ29vZ2xlZ3JvdXBzOjEsZ21h
aWw6MSxnb29nbGVtYWlsOjEsb3JrdXQ6MSxnb29nbGVpbWFnZXM6MSxnb29nbGVwcmludDoxfTtm
dW5jdGlvbiBFZChhKXt2YXIgYj1hLmdvb2dsZV9wYWdlX2xvY2F0aW9ufHxhLmdvb2dsZV9wYWdl
X3VybDtpZighYilyZXR1cm4gaDtiPWIudG9TdHJpbmcoKTtpZihiLmluZGV4T2YoImh0dHA6Ly8i
KT09MCliPWIuc3Vic3RyaW5nKDcsYi5sZW5ndGgpO2Vsc2UgaWYoYi5pbmRleE9mKCJodHRwczov
LyIpPT0wKWI9Yi5zdWJzdHJpbmcoOCxiLmxlbmd0aCk7dmFyIGM9Yi5pbmRleE9mKCIvIik7aWYo
Yz09LTEpYz1iLmxlbmd0aDt2YXIgZD1iLnN1YnN0cmluZygwLGMpLGU9ZC5zcGxpdCgiLiIpLGY9
aDtpZihlLmxlbmd0aD49MylmPWVbZS5sZW5ndGgtM11pbiBEZDtpZihlLmxlbmd0aD49MilmPWZ8
fGVbZS5sZW5ndGgtMl1pbiBEZDtyZXR1cm4gZn0KZnVuY3Rpb24gRmQoYSxiLGMpe2lmKGEuZ29v
Z2xlX25ld19kb21haW5fY2hlY2tlZD09MCl7YS5nb29nbGVfcmFuZG9tX251bWJlcj1NYXRoLnJh
bmRvbSgpO2lmKGEuZ29vZ2xlX3JhbmRvbV9udW1iZXI8Yyl7dmFyIGQ9Imh0dHA6Ly9nb29nbGVh
ZHMuZy5kb3VibGVjbGljay5uZXQvcGFnZWFkL3Rlc3RfZG9tYWluLmpzIixlPSJzY3JpcHQiO2Iu
d3JpdGUoIjwiK2UrJyBzcmM9IicrZCsnIj48LycrZSsiPiIpO2EuZ29vZ2xlX25ld19kb21haW5f
Y2hlY2tlZD0xfX19ZnVuY3Rpb24gaWQoYSl7dmFyIGI9Imh0dHA6Ly9nb29nbGVhZHMuZy5kb3Vi
bGVjbGljay5uZXQiLGM9Imh0dHA6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSI7aWYo
IUVkKGEpJiZhLmdvb2dsZV9uZXdfZG9tYWluX2VuYWJsZWQ9PTEpcmV0dXJuIGI7cmV0dXJuIGN9
O3VkKCk7cGQob2QpO0ZkKHdpbmRvdyxkb2N1bWVudCxtYSgiMC4wNSIsMC4wMSkpO3ZhciBHZD0i
c2NyaXB0Ijtkb2N1bWVudC53cml0ZSgiPCIrR2QrIj4gd2luZG93Lmdvb2dsZV9yZW5kZXJfYWQo
KTsgPC8iK0dkKyI+Iik7Cn0pKCkK1QAFAAYAEQAHAAgA3wDbAOAAawDhXxECSmh0dHA6Ly9wYWdl
YWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvYWRzP2NsaWVudD1jYS1ueXRpbWVzX2Fy
dGljbGVfdmFyJmR0PTEyMjYzNjAzMjQyMDQmaGludHM9U3RhdGlucyUyQihDaG9sZXN0ZXJvbC1M
b3dlcmluZyUyQkRydWdzKSUyQ0Nob2xlc3Rlcm9sJTJDSGVhcnQlMkNTdHJva2UmYWRzYWZlPWhp
Z2gmc2tpcD0zJm51bV9hZHM9MyZvdXRwdXQ9anMmY29ycmVsYXRvcj0xMjI2MzYwMzI0MjA0JmNo
YW5uZWw9YXJfaGVhbHRoJnVybD1odHRwJTNBJTJGJTJGd3d3Lm55dGltZXMuY29tJTJGMjAwOCUy
RjExJTJGMTAlMkZoZWFsdGglMkYxMGhlYXJ0Lmh0bWwlM0ZfciUzRDIlMjZwYXJ0bmVyJTNEcnNz
bnl0JTI2ZW1jJTNEcnNzJTI2b3JlZiUzRHNsb2dpbiUyNm9yZWYlM0RzbG9naW4mZWE9MCZmcm09
MCZnYV92aWQ9MTQ3NzM1Nzg0LjEyMjYzNjAzMjQmZ2Ffc2lkPTEyMjYzNjAzMjQmZ2FfaGlkPTQx
MTYxMzM2OSZmbGFzaD05LjAuMTI0JnVfaD0xMDUwJnVfdz0xNjgwJnVfYWg9MTA1MCZ1X2F3PTE2
ODAmdV9jZD0yNCZ1X3R6PS00ODAmdV9oaXM9MSZ1X2phdmE9dHJ1ZSZ1X25wbHVnPTgmdV9ubWlt
ZT0xMzhPEQYyYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVj
dHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QGgsM
JiwtMx40NUlKS0xNTk9QUVJTVFVWV1tcVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0l
ViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBmAAoAYEAgQAIAG
gAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxECSmh0dHA6Ly9w
YWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvYWRzP2NsaWVudD1jYS1ueXRpbWVz
X2FydGljbGVfdmFyJmR0PTEyMjYzNjAzMjQyMDQmaGludHM9U3RhdGlucyUyQihDaG9sZXN0ZXJv
bC1Mb3dlcmluZyUyQkRydWdzKSUyQ0Nob2xlc3Rlcm9sJTJDSGVhcnQlMkNTdHJva2UmYWRzYWZl
PWhpZ2gmc2tpcD0zJm51bV9hZHM9MyZvdXRwdXQ9anMmY29ycmVsYXRvcj0xMjI2MzYwMzI0MjA0
JmNoYW5uZWw9YXJfaGVhbHRoJnVybD1odHRwJTNBJTJGJTJGd3d3Lm55dGltZXMuY29tJTJGMjAw
OCUyRjExJTJGMTAlMkZoZWFsdGglMkYxMGhlYXJ0Lmh0bWwlM0ZfciUzRDIlMjZwYXJ0bmVyJTNE
cnNzbnl0JTI2ZW1jJTNEcnNzJTI2b3JlZiUzRHNsb2dpbiUyNm9yZWYlM0RzbG9naW4mZWE9MCZm
cm09MCZnYV92aWQ9MTQ3NzM1Nzg0LjEyMjYzNjAzMjQmZ2Ffc2lkPTEyMjYzNjAzMjQmZ2FfaGlk
PTQxMTYxMzM2OSZmbGFzaD05LjAuMTI0JnVfaD0xMDUwJnVfdz0xNjgwJnVfYWg9MTA1MCZ1X2F3
PTE2ODAmdV9jZD0yNCZ1X3R6PS00ODAmdV9oaXM9MSZ1X2phdmE9dHJ1ZSZ1X25wbHVnPTgmdV9u
bWltZT0xMzjSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsI
ywwCEMjTDTY3ODlBV05TLmtleXNaTlMub2JqZWN0c4AXpzo7PD0+P0CACYAKgAuADIANgA6AD6dC
Q0RFRkdIgBCAEYASgBOAFIAVgBZTUDNwXUNhY2hlLUNvbnRyb2xfEBBDb250ZW50LUVuY29kaW5n
XENvbnRlbnQtVHlwZVZTZXJ2ZXJURGF0ZV5Db250ZW50LUxlbmd0aF8QbHBvbGljeXJlZj0iaHR0
cDovL3d3dy5nb29nbGVhZHNlcnZpY2VzLmNvbS9wYWdlYWQvcDNwLnhtbCIsIENQPSJOT0kgREVW
IFBTQSBQU0QgSVZBIFBWRCBPVFAgT1VSIE9UUiBJTkQgT1RDIl8QFXByaXZhdGUsIHgtZ3ppcC1v
az0iIlRnemlwXxAedGV4dC9qYXZhc2NyaXB0OyBjaGFyc2V0PVVURi04VGNhZmVfEB1Nb24sIDEw
IE5vdiAyMDA4IDIzOjM4OjQ0IEdNVFQxMDQy0i4vWFmjWVoyXxATTlNNdXRhYmxlRGljdGlvbmFy
eVxOU0RpY3Rpb25hcnkRCz3SLi9dXqNeXzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3Bv
bnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACBAIcAogCpAKwArwCzALcAugC9AMAAwwDGAMkAzADP
ANEA0wDVANcA2QDbAN0A3wDhAOMA5QDnAO4A9gECAQQBBgEIA1YDWwNkA28DcgN4A4EDigOMA5MD
mwOmA6gDsAOyA7QDtgO4A7oDvAO+A8YDyAPKA8wDzgPQA9ID1APYA+YD+QQGBA0EEgQhBJAEqASt
BM4E0wTzBPgE/QUBBRcFJAUnBSwFMAVEAAAAAAAAAgEAAAAAAAAAYAAAAAAAAAAAAAAAAAAABVJP
EQs9eyAKIAp2YXIgZ29vZ2xlX2FkcyA9IG5ldyBBcnJheSgpOyAKdmFyIGdvb2dsZV9hZDsgCnZh
ciBnb29nbGVfcmFkbGlua3MgPSBuZXcgQXJyYXkoKTsgCnZhciBnb29nbGVfcmFkbGluazsgCnZh
ciBnb29nbGVfaW5mbyA9IG5ldyBPYmplY3QoKTsgCmdvb2dsZV9hZCA9IG5ldyBPYmplY3QoKTsg
Cmdvb2dsZV9hZC5uID0gMTsgCmdvb2dsZV9hZC50eXBlID0gInRleHQiOyAKZ29vZ2xlX2FkLmJp
ZHR5cGUgPSAiQ1BDIjsgCmdvb2dsZV9hZC50YXJnZXRpbmdfdHlwZSA9ICJjb250ZXh0dWFsIjsg
Cmdvb2dsZV9hZC51cmwgPSAiaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3Bh
Z2VhZC9pY2xrP3NhPWwmYW1wO2FpPUJ4Yy1PQk1ZWVNjelhGcGlLcUFPd25JVEtEY1RZc2lhdzAt
WEdBc0NOdHdHQTFHRVFBUmdFSUp6ei1BRW9BemdBVUtQbzQ2djhfX19fX3dGZ3llYi1oc2lqb0Jt
eUFROTNkM2N1Ym5sMGFXMWxjeTVqYjIzSUFRSGFBVFZvZEhSd09pOHZkM2QzTG01NWRHbHRaWE11
WTI5dEx6SXdNRGd2TVRFdk1UQXZhR1ZoYkhSb0x6RXdhR1ZoY25RdWFIUnRiSUFDQWFnREFlZ0Ry
d1RvQXkzb0E3Z0Q2QVA4QWVnRC1BSDFBd0lFQUFEMUF5UUFBQUNZQkFBJmFtcDtudW09NCZhbXA7
YWR1cmw9aHR0cDovL2N0LmhlYXJ0c2Nhbi5nb29nbGVwYWdlcy5jb20mYW1wO2NsaWVudD1jYS1u
eXRpbWVzX2FydGljbGVfdmFyIjsgCmdvb2dsZV9hZC52aXNpYmxlX3VybCA9ICJjdC5oZWFydHNj
YW4uZ29vZ2xlcGFnZXMuY29tIjsgCmdvb2dsZV9hZC5saW5lMSA9ICJDVCBIZWFydCBTY2FuOiBh
IHJlc291cmNlIjsgCmdvb2dsZV9hZC5saW5lMiA9ICJQYXRpZW50IGFuZCBQaHlzaWNpYW4gRWR1
Y2F0aW9uIjsgCmdvb2dsZV9hZC5saW5lMyA9ICI2NC1zbGljZSBJbWFnaW5nIG9mIEhlYXJ0IERp
c2Vhc2UiOyAKZ29vZ2xlX2FkLnJlZ2lvbm5hbWUgPSAiIjsgCmdvb2dsZV9hZHNbMF0gPSBnb29n
bGVfYWQ7IApnb29nbGVfYWQgPSBuZXcgT2JqZWN0KCk7IApnb29nbGVfYWQubiA9IDI7IApnb29n
bGVfYWQudHlwZSA9ICJ0ZXh0IjsgCmdvb2dsZV9hZC5iaWR0eXBlID0gIkNQQyI7IApnb29nbGVf
YWQudGFyZ2V0aW5nX3R5cGUgPSAiY29udGV4dHVhbCI7IApnb29nbGVfYWQudXJsID0gImh0dHA6
Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvaWNsaz9zYT1sJmFtcDthaT1C
ZFJsS0JNWVlTY3pYRnBpS3FBT3duSVRLRGN1dC1JQUIxOERrLUFmQWpiY0JnTXc2RUFJWUJTQ2M4
X2dCS0FNNEFGQzByS19rX3ZfX19fOEJZTW5tX29iSW82QVpvQUdENTdQdUE3SUJEM2QzZHk1dWVY
UnBiV1Z6TG1OdmJjZ0JBZG9CTldoMGRIQTZMeTkzZDNjdWJubDBhVzFsY3k1amIyMHZNakF3T0M4
eE1TOHhNQzlvWldGc2RHZ3ZNVEJvWldGeWRDNW9kRzFzcVFKWE1QVF8zeFduUHFnREFlZ0Ryd1Rv
QXkzb0E3Z0Q2QVA4QWVnRC1BSDFBd0lFQUFEMUF5UUFBQUNZQkFBJmFtcDtudW09NSZhbXA7YWR1
cmw9aHR0cDovL3d3dy5iYXJibG9zZXN3ZWlnaHQuY29tL3dlaWdodGxvc3NzdG9yeTEuaHRtJmFt
cDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciI7IApnb29nbGVfYWQudmlzaWJsZV91cmwg
PSAiYmFyYmxvc2Vzd2VpZ2h0LmNvbSI7IApnb29nbGVfYWQubGluZTEgPSAiMiBTdGVwcyB0byBB
IEZsYXQgU3RvbWFjaCI7IApnb29nbGVfYWQubGluZTIgPSAiSG93IEkgRHJvcHBlZCAxMSBsYnMg
aW4gMiBXZWVrcyI7IApnb29nbGVfYWQubGluZTMgPSAiYnkgRm9sbG93aW5nIDIgRWFzeSBTdGVw
cy4iOyAKZ29vZ2xlX2FkLnJlZ2lvbm5hbWUgPSAiIjsgCmdvb2dsZV9hZHNbMV0gPSBnb29nbGVf
YWQ7IApnb29nbGVfYWQgPSBuZXcgT2JqZWN0KCk7IApnb29nbGVfYWQubiA9IDM7IApnb29nbGVf
YWQudHlwZSA9ICJ0ZXh0IjsgCmdvb2dsZV9hZC5iaWR0eXBlID0gIkNQQyI7IApnb29nbGVfYWQu
dGFyZ2V0aW5nX3R5cGUgPSAiY29udGV4dHVhbCI7IApnb29nbGVfYWQudXJsID0gImh0dHA6Ly9w
YWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvaWNsaz9zYT1sJmFtcDthaT1CVkY1
dkJNWVlTY3pYRnBpS3FBT3duSVRLRGNqdHpvY0I1cnpqMmdqQWpiY0JzSmhHRUFNWUJpQ2M4X2dC
S0FNNEFGREd6XzJNQkdESjV2Nkd5S09nR2FBQnRJZU9fZ095QVE5M2QzY3VibmwwYVcxbGN5NWpi
MjNJQVFIYUFUVm9kSFJ3T2k4dmQzZDNMbTU1ZEdsdFpYTXVZMjl0THpJd01EZ3ZNVEV2TVRBdmFH
VmhiSFJvTHpFd2FHVmhjblF1YUhSdGJJQUNBYWdEQWVnRHJ3VG9BeTNvQTdnRDZBUDhBZWdELUFI
MUF3SUVBQUQxQXlRQUFBQ1lCQUEmYW1wO251bT02JmFtcDthZHVybD1odHRwOi8vd3d3LnZlc2Nl
bGwuY29tL2FkdWx0LXN0ZW0tY2VsbHMvaGVhcnQtbXVzY2xlLWhlYWx0aC1hc3BlY3RzLnBocCZh
bXA7Y2xpZW50PWNhLW55dGltZXNfYXJ0aWNsZV92YXIiOyAKZ29vZ2xlX2FkLnZpc2libGVfdXJs
ID0gInd3dy52ZXNjZWxsLmNvbS9hZHVsdC1zdGVtLWNlbGxzIjsgCmdvb2dsZV9hZC5saW5lMSA9
ICJGaXggWW91ciBEYW1hZ2VkIEhlYXJ0IjsgCmdvb2dsZV9hZC5saW5lMiA9ICJZb3VyIFN0ZW0g
Q2VsbHMgQ2FuIEZpeCBZb3VyIEhlYXJ0ISI7IApnb29nbGVfYWQubGluZTMgPSAiQSBGaW5lciBR
dWFsaXR5IG9mIExpZmUgaXMgUG9zc2libGUiOyAKZ29vZ2xlX2FkLnJlZ2lvbm5hbWUgPSAiIjsg
Cmdvb2dsZV9hZHNbMl0gPSBnb29nbGVfYWQ7IAppZiAod2luZG93Lmdvb2dsZV9hZF9yZXF1ZXN0
X2RvbmUpIHsgCmdvb2dsZV9hZF9yZXF1ZXN0X2RvbmUoZ29vZ2xlX2Fkcyk7IAp9IAppZiAod2lu
ZG93Lmdvb2dsZV9yYWRsaW5rX3JlcXVlc3RfZG9uZSkgeyAKZ29vZ2xlX3JhZGxpbmtfcmVxdWVz
dF9kb25lKGdvb2dsZV9yYWRsaW5rcyk7IAp9IAp91QAFAAYAEQAHAAgA4wDbAOQAawDlXxECaGh0
dHA6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvYWRzP2NsaWVudD1jYS1u
eXRpbWVzX2FydGljbGVfdmFyJmR0PTEyMjYzNjAzMjQ0MTMmaGludHM9U3RhdGlucyUyQihDaG9s
ZXN0ZXJvbC1Mb3dlcmluZyUyQkRydWdzKSUyQ0Nob2xlc3Rlcm9sJTJDSGVhcnQlMkNTdHJva2Um
YWRzYWZlPWhpZ2gmdGFyZ2V0aW5nPWNvbnRlbnQmbnVtX2Fkcz0zJm91dHB1dD1qcyZjb3JyZWxh
dG9yPTEyMjYzNjAzMjQyMDQmY2hhbm5lbD1hcl9oZWFsdGgmcHZfY2g9YXJfaGVhbHRoJTJCJnVy
bD1odHRwJTNBJTJGJTJGd3d3Lm55dGltZXMuY29tJTJGMjAwOCUyRjExJTJGMTAlMkZoZWFsdGgl
MkYxMGhlYXJ0Lmh0bWwlM0ZfciUzRDIlMjZwYXJ0bmVyJTNEcnNzbnl0JTI2ZW1jJTNEcnNzJTI2
b3JlZiUzRHNsb2dpbiUyNm9yZWYlM0RzbG9naW4mZWE9MCZmcm09MCZnYV92aWQ9MTQ3NzM1Nzg0
LjEyMjYzNjAzMjQmZ2Ffc2lkPTEyMjYzNjAzMjQmZ2FfaGlkPTQxMTYxMzM2OSZmbGFzaD05LjAu
MTI0JnVfaD0xMDUwJnVfdz0xNjgwJnVfYWg9MTA1MCZ1X2F3PTE2ODAmdV9jZD0yNCZ1X3R6PS00
ODAmdV9oaXM9MSZ1X2phdmE9dHJ1ZSZ1X25wbHVnPTgmdV9ubWltZT0xMzhPEQZQYnBsaXN0MDDU
AQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJl
c291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QGgsMJiwtMx40NUlKS0xNTk9QUVJT
VFVWV1tcVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBT
JDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBmAAoAYEAgQAIAGgAeABYAIEAeAABAB0w0nKCkk
K1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxECaGh0dHA6Ly9wYWdlYWQyLmdvb2dsZXN5bmRp
Y2F0aW9uLmNvbS9wYWdlYWQvYWRzP2NsaWVudD1jYS1ueXRpbWVzX2FydGljbGVfdmFyJmR0PTEy
MjYzNjAzMjQ0MTMmaGludHM9U3RhdGlucyUyQihDaG9sZXN0ZXJvbC1Mb3dlcmluZyUyQkRydWdz
KSUyQ0Nob2xlc3Rlcm9sJTJDSGVhcnQlMkNTdHJva2UmYWRzYWZlPWhpZ2gmdGFyZ2V0aW5nPWNv
bnRlbnQmbnVtX2Fkcz0zJm91dHB1dD1qcyZjb3JyZWxhdG9yPTEyMjYzNjAzMjQyMDQmY2hhbm5l
bD1hcl9oZWFsdGgmcHZfY2g9YXJfaGVhbHRoJTJCJnVybD1odHRwJTNBJTJGJTJGd3d3Lm55dGlt
ZXMuY29tJTJGMjAwOCUyRjExJTJGMTAlMkZoZWFsdGglMkYxMGhlYXJ0Lmh0bWwlM0ZfciUzRDIl
MjZwYXJ0bmVyJTNEcnNzbnl0JTI2ZW1jJTNEcnNzJTI2b3JlZiUzRHNsb2dpbiUyNm9yZWYlM0Rz
bG9naW4mZWE9MCZmcm09MCZnYV92aWQ9MTQ3NzM1Nzg0LjEyMjYzNjAzMjQmZ2Ffc2lkPTEyMjYz
NjAzMjQmZ2FfaGlkPTQxMTYxMzM2OSZmbGFzaD05LjAuMTI0JnVfaD0xMDUwJnVfdz0xNjgwJnVf
YWg9MTA1MCZ1X2F3PTE2ODAmdV9jZD0yNCZ1X3R6PS00ODAmdV9oaXM9MSZ1X2phdmE9dHJ1ZSZ1
X25wbHVnPTgmdV9ubWltZT0xMzjSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5T
T2JqZWN0I0GtkfsJL961EMjTDTY3ODlBV05TLmtleXNaTlMub2JqZWN0c4AXpzo7PD0+P0CACYAK
gAuADIANgA6AD6dCQ0RFRkdIgBCAEYASgBOAFIAVgBZTUDNwXUNhY2hlLUNvbnRyb2xfEBBDb250
ZW50LUVuY29kaW5nXENvbnRlbnQtVHlwZVZTZXJ2ZXJURGF0ZV5Db250ZW50LUxlbmd0aF8QbHBv
bGljeXJlZj0iaHR0cDovL3d3dy5nb29nbGVhZHNlcnZpY2VzLmNvbS9wYWdlYWQvcDNwLnhtbCIs
IENQPSJOT0kgREVWIFBTQSBQU0QgSVZBIFBWRCBPVFAgT1VSIE9UUiBJTkQgT1RDIl8QFXByaXZh
dGUsIHgtZ3ppcC1vaz0iIlRnemlwXxAedGV4dC9qYXZhc2NyaXB0OyBjaGFyc2V0PVVURi04VGNh
ZmVfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQ0IEdNVFQxMzAz0i4vWFmjWVoyXxATTlNNdXRh
YmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRC/XSLi9dXqNeXzJfEBFOU0hUVFBVUkxSZXNwb25z
ZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACBAIcAogCpAKwArwCzALcAugC9
AMAAwwDGAMkAzADPANEA0wDVANcA2QDbAN0A3wDhAOMA5QDnAO4A9gECAQQBBgEIA3QDeQOCA40D
kAOWA58DqAOqA7EDuQPEA8YDzgPQA9ID1APWA9gD2gPcA+QD5gPoA+oD7APuA/AD8gP2BAQEFwQk
BCsEMAQ/BK4ExgTLBOwE8QURBRYFGwUfBTUFQgVFBUoFTgViAAAAAAAAAgEAAAAAAAAAYAAAAAAA
AAAAAAAAAAAABXBPEQv1eyAKIAp2YXIgZ29vZ2xlX2FkcyA9IG5ldyBBcnJheSgpOyAKdmFyIGdv
b2dsZV9hZDsgCnZhciBnb29nbGVfcmFkbGlua3MgPSBuZXcgQXJyYXkoKTsgCnZhciBnb29nbGVf
cmFkbGluazsgCnZhciBnb29nbGVfaW5mbyA9IG5ldyBPYmplY3QoKTsgCmdvb2dsZV9hZCA9IG5l
dyBPYmplY3QoKTsgCmdvb2dsZV9hZC5uID0gMTsgCmdvb2dsZV9hZC50eXBlID0gInRleHQiOyAK
Z29vZ2xlX2FkLmJpZHR5cGUgPSAiQ1BDIjsgCmdvb2dsZV9hZC50YXJnZXRpbmdfdHlwZSA9ICJj
b250ZXh0dWFsIjsgCmdvb2dsZV9hZC51cmwgPSAiaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGlj
YXRpb24uY29tL3BhZ2VhZC9pY2xrP3NhPWwmYW1wO2FpPUI1Q2c1Qk1ZWVNlN1NJb204cVFPMHFy
SDhEWm5PeW5YNXlleXRESTJJX2Y4RHNNVTNFQUVZQVNDYzhfZ0JLQU00QUZEUzJxXzhCMkRKNXY2
R3lLT2dHYklCRDNkM2R5NXVlWFJwYldWekxtTnZiY2dCQWRvQk5XaDBkSEE2THk5M2QzY3Vibmww
YVcxbGN5NWpiMjB2TWpBd09DOHhNUzh4TUM5b1pXRnNkR2d2TVRCb1pXRnlkQzVvZEcxc3lBS2x2
T1lIcUFNQjZBTXQ2QU92Qk9nRHVBUG9BNk1EOVFNQUJBQUE5UU1rQUFBQW1BUUEmYW1wO251bT0x
JmFtcDthZHVybD1odHRwOi8vbmEubGluay5kZWNkbmEubmV0L24vNTQ4MjUvNjAwNTgvd3d3Lmxv
dmF6YS5jb20vampscXE0JTNCMTElM0I0JTNCJTNCOCUzQjdoOWElM0I5eHloZWglM0IxNXB6OGYl
M0IlM0I3OGthNiUzQiUzQjElM0IvaS9jJTNGMCUyNnBxJTNEJTI1MmYlMjYyNDdjciUzRDMyMTk2
NjY2NjkmYW1wO2NsaWVudD1jYS1ueXRpbWVzX2FydGljbGVfdmFyIjsgCmdvb2dsZV9hZC52aXNp
YmxlX3VybCA9ICJ3d3cuTE9WQVpBLmNvbSI7IApnb29nbGVfYWQubGluZTEgPSAiTG93ZXIgWW91
ciBUcmlnbHljZXJpZGVzIjsgCmdvb2dsZV9hZC5saW5lMiA9ICJHZXQgVGlwcyBvbiBIb3cgdG8g
TG93ZXIgWW91ciI7IApnb29nbGVfYWQubGluZTMgPSAiVHJpZ2x5Y2VyaWRlIExldmVscy4gTGVh
cm4gTW9yZS4iOyAKZ29vZ2xlX2FkLnJlZ2lvbm5hbWUgPSAiIjsgCmdvb2dsZV9hZHNbMF0gPSBn
b29nbGVfYWQ7IApnb29nbGVfYWQgPSBuZXcgT2JqZWN0KCk7IApnb29nbGVfYWQubiA9IDI7IApn
b29nbGVfYWQudHlwZSA9ICJ0ZXh0IjsgCmdvb2dsZV9hZC5iaWR0eXBlID0gIkNQQyI7IApnb29n
bGVfYWQudGFyZ2V0aW5nX3R5cGUgPSAiY29udGV4dHVhbCI7IApnb29nbGVfYWQudXJsID0gImh0
dHA6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvaWNsaz9zYT1sJmFtcDth
aT1CUndEaEJNWVlTZTdTSW9tOHFRTzBxckg4RFpUbnVJMEJzSWFTcHduQWpiY0JrTlluRUFJWUFp
Q2M4X2dCS0FNNEFGQzFnSm40QkdESjV2Nkd5S09nR2FBQjJ1WGVfQU95QVE5M2QzY3VibmwwYVcx
bGN5NWpiMjNJQVFIYUFUVm9kSFJ3T2k4dmQzZDNMbTU1ZEdsdFpYTXVZMjl0THpJd01EZ3ZNVEV2
TVRBdmFHVmhiSFJvTHpFd2FHVmhjblF1YUhSdGJJQUNBYWdEQWVnRExlZ0Ryd1RvQTdnRDZBT2pB
X1VEQUFRQUFQVURKQUFBQUpnRUFBJmFtcDtudW09MiZhbXA7YWR1cmw9aHR0cDovL3d3dy5hbm5z
d2VpZ2h0bG9zcy5jb20vJTNGdDIwMmlkJTNENTEwNDElMjZ0MjAya3clM0RoZWFsdGglMjUyMGNo
b2xlc3Rlcm9sJmFtcDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3ZhciI7IApnb29nbGVfYWQu
dmlzaWJsZV91cmwgPSAiQW5uc1dlaWdodExvc3MuY29tIjsgCmdvb2dsZV9hZC5saW5lMSA9ICIy
IFJ1bGVzIGZvciBTdG9tYWNoIEZhdCI7IApnb29nbGVfYWQubGluZTIgPSAiT2JleSB0aGVzZSAy
IEVhc3kgUnVsZXMgXHgyNmFtcDsiOyAKZ29vZ2xlX2FkLmxpbmUzID0gIkRyb3AgOSBsYnMgZXZl
cnkgMTEgRGF5cyBFZmZvcnRsZXNzIjsgCmdvb2dsZV9hZC5yZWdpb25uYW1lID0gIiI7IApnb29n
bGVfYWRzWzFdID0gZ29vZ2xlX2FkOyAKZ29vZ2xlX2FkID0gbmV3IE9iamVjdCgpOyAKZ29vZ2xl
X2FkLm4gPSAzOyAKZ29vZ2xlX2FkLnR5cGUgPSAidGV4dCI7IApnb29nbGVfYWQuYmlkdHlwZSA9
ICJDUEMiOyAKZ29vZ2xlX2FkLnRhcmdldGluZ190eXBlID0gImNvbnRleHR1YWwiOyAKZ29vZ2xl
X2FkLnVybCA9ICJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2lj
bGs/c2E9bCZhbXA7YWk9QlU1OTVCTVlZU2U3U0lvbThxUU8wcXJIOERZdWtyM1NSczVqaEJNQ050
d0d3MndZUUF4Z0RJSnp6LUFFb0F6Z0FVTzdoLW1CZ3llYi1oc2lqb0JtZ0FjdXZxUDREc2dFUGQz
ZDNMbTU1ZEdsdFpYTXVZMjl0eUFFQjJnRTFhSFIwY0RvdkwzZDNkeTV1ZVhScGJXVnpMbU52YlM4
eU1EQTRMekV4THpFd0wyaGxZV3gwYUM4eE1HaGxZWEowTG1oMGJXeUFBZ0hJQXVtbjd3U29Bd0hv
QXkzb0E2OEU2QU80QS1nRG93UDFBd0FFQUFEMUF5UUFBQUNZQkFBJmFtcDtudW09MyZhbXA7Z2ds
YWRncnA9MTc3NTk2NzAxNjg3NzU1ODEyNTAmYW1wO2dnbGNyZWF0PTcxMDI3MzMzNDEyMTU5NzMz
NDgmYW1wO2FkdXJsPWh0dHA6Ly93d3cuZG91Z2xhc3NyZXBvcnQuY29tL3JlcG9ydHMvbF9jaG9s
ZXN0ZXJvbF9mcmVlX3JlcG9ydC5odG1sJmFtcDtjbGllbnQ9Y2Etbnl0aW1lc19hcnRpY2xlX3Zh
ciI7IApnb29nbGVfYWQudmlzaWJsZV91cmwgPSAid3d3LmRvdWdsYXNzcmVwb3J0LmNvbS9jaG9s
ZXN0ZXJvbCI7IApnb29nbGVfYWQubGluZTEgPSAiVGhlIEJpZyBDaG9sZXN0ZXJvbCBNeXRoIjsg
Cmdvb2dsZV9hZC5saW5lMiA9ICJSZWNlbnQgU3R1ZGllcyBDb25maXJtIFdoYXQgVGhpcyI7IApn
b29nbGVfYWQubGluZTMgPSAiRG9jdG9yIEhhcyBCZWVuIFNheWluZyBmb3IgWWVhcnMuIjsgCmdv
b2dsZV9hZC5yZWdpb25uYW1lID0gIiI7IApnb29nbGVfYWRzWzJdID0gZ29vZ2xlX2FkOyAKaWYg
KHdpbmRvdy5nb29nbGVfYWRfcmVxdWVzdF9kb25lKSB7IApnb29nbGVfYWRfcmVxdWVzdF9kb25l
KGdvb2dsZV9hZHMpOyAKfSAKaWYgKHdpbmRvdy5nb29nbGVfcmFkbGlua19yZXF1ZXN0X2RvbmUp
IHsgCmdvb2dsZV9yYWRsaW5rX3JlcXVlc3RfZG9uZShnb29nbGVfcmFkbGlua3MpOyAKfSAKfdQA
BQARAAcACADnAOgAFADpXxBFaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9jb21tb24v
c2NyZWVuL0luc2lkZU5ZVGltZXNCcm93c2VyLmpzTxEEV2JwbGlzdDAw1AECAwQFBgkKWCR2ZXJz
aW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNl
gAFfEA9OU0tleWVkQXJjaGl2ZXKvECALDCYsLTMeNDVPUFFSU1RVVldYWVpbXF1eX2BhYmNnaFUk
bnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIk
NlIkNFIkN1IkMlIkOVIkMFIkMYAfgAKAHhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFz
ZVtOUy5yZWxhdGl2ZYAEgACAA18QRWh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvY29t
bW9uL3NjcmVlbi9JbnNpZGVOWVRpbWVzQnJvd3Nlci5qc9IuLzAxWCRjbGFzc2VzWiRjbGFzc25h
bWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wkyjUMQyNMNNjc4OURXTlMua2V5c1pOUy5vYmplY3Rz
gB2qOjs8PT4/QEFCQ4AJgAqAC4AMgA2ADoAPgBCAEYASqkVGR0hJSktMTU6AE4AUgBWAFoAXgBiA
GYAagBuAHFRWYXJ5XUFjY2VwdC1SYW5nZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxDb250
ZW50LVR5cGVURGF0ZV5Db250ZW50LUxlbmd0aFRFdGFnWkNvbm5lY3Rpb25dTGFzdC1Nb2RpZmll
ZF8QD0FjY2VwdC1FbmNvZGluZ1VieXRlc1RnemlwXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMV8Q
GGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdF8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01U
VDE5MDhfEA8iMWJmZC00NzM4Y2QxNSJaa2VlcC1hbGl2ZV8QHU1vbiwgMTIgTm92IDIwMDcgMjI6
MDA6NTMgR01U0i4vZGWjZWYyXxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRG/3S
Li9paqNqazJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcA
OgBQAFIAZACHAI0AqACvALIAtQC5AL0AwADDAMYAyQDMAM8A0gDVANcA2QDbAN0A3wDhAOMA5QDn
AOkA6wDtAPQA/AEIAQoBDAEOAVYBWwFkAW8BcgF4AYEBigGMAZMBmwGmAagBswG1AbcBuQG7Ab0B
vwHBAcMBxQHHAdIB1AHWAdgB2gHcAd4B4AHiAeQB5gHrAfkCDAITAiACJQI0AjkCRAJSAmQCagJv
AogCowLDAsgC2gLlAwUDCgMOAyQDMQM0AzkDPQNRAAAAAAAAAgEAAAAAAAAAbAAAAAAAAAAAAAAA
AAAAA19PERv9LyogY2xhc3MgZm9yIGluZGl2aWR1YWwgc2xpZGVzICovCmZ1bmN0aW9uIEluc2lk
ZU5ZVGltZXNJdGVtKCB1cmwgLCBpbWdVcmwgLCBoZWFkbGluZSAsIGRpc3BsYXlfbmFtZSAsIGRp
c3BsYXlfdXJsLCBpc1BhaWQgKXsKCXRoaXMudXJsID0gdXJsOwoJdGhpcy5pbWdVcmwgPSBpbWdV
cmw7Cgl0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7Cgl0aGlzLmRpc3BsYXlfbmFtZSA9IGRpc3Bs
YXlfbmFtZTsKCXRoaXMuZGlzcGxheV91cmwgPSBkaXNwbGF5X3VybDsJCgl0aGlzLmlzUGFpZCA9
IGlzUGFpZDsKCXRoaXMucGFyZW50QnJvd3NlciA9IG51bGw7Cn0JCQkJCQkKCQkJCQkJCQovKiBj
bGFzcyBmb3IgdGhlIHNsaWRlIHBsYXllciAqLwpmdW5jdGlvbiBJbnNpZGVOWVRpbWVzQnJvd3Nl
ciggZWxlbWVudElkLCBsZWZ0QXJyb3dJZCwgcmlnaHRBcnJvd0lkLCBkaXNwbGF5SXRlbXNDb3Vu
dCAsIHNjcm9sbEl0ZW1zQ291bnQsIGltZ1NyYyApewoJdGhpcy5lbGVtZW50SWQgPSBlbGVtZW50
SWQ7Cgl0aGlzLmxlZnRBcnJvd0lkID0gbGVmdEFycm93SWQ7Cgl0aGlzLnJpZ2h0QXJyb3dJZCA9
IHJpZ2h0QXJyb3dJZDsKCXRoaXMuZGlzcGxheUl0ZW1zQ291bnQgPSBkaXNwbGF5SXRlbXNDb3Vu
dDsJCS8vIHRvdGFsIG51bWJlciBvZiBpdGVtcyB0byBiZSBkaXNwbGF5ZWQgYXQgb25lIHRpbWUK
CXRoaXMuc2Nyb2xsSXRlbXNDb3VudCA9IHNjcm9sbEl0ZW1zQ291bnQ7CQkvLyBob3cgbWFueSBp
dGVtcyB0byBzY3JvbGwgYnkgd2hlbiBjbGlja2luZyBuZXh0IG9yIHByZXZpb3VzCgl0aGlzLml0
ZW1BcnJheSA9IG5ldyBBcnJheSgpOwoJdGhpcy5pdGVtSW5kZXggPSAwOwoJdGhpcy5pbWdTcmMg
PSBpbWdTcmM7Cgl0aGlzLmxlZnRJbWdPZmYgPSB0aGlzLmltZ1NyYyArICJtb3RoX3JldmVyc2Vf
b2ZmLmdpZiI7Cgl0aGlzLmxlZnRJbWdPbiA9IHRoaXMuaW1nU3JjICsgIm1vdGhfcmV2ZXJzZS5n
aWYiOwoJdGhpcy5yaWdodEltZ09mZiA9IHRoaXMuaW1nU3JjICsgIm1vdGhfZm9yd2FyZF9vZmYu
Z2lmIjsKCXRoaXMucmlnaHRJbWdPbiA9IHRoaXMuaW1nU3JjICsgIm1vdGhfZm9yd2FyZC5naWYi
OwoJCgkvLyBzZWxmLXJlZ2lzdGVyCgkvL3RoaXMgPSB3aW5kb3cuaW5zaWRlTllUaW1lc0Jyb3dz
ZXJJbnN0YW5jZTsKfQoKCkluc2lkZU5ZVGltZXNCcm93c2VyLnByb3RvdHlwZS5zaG93QnV0dG9u
cyA9IGZ1bmN0aW9uKCl7CglpZiAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCl7CgkKCQkvL2JlZ2lu
IGxlZnQgYXJyb3cKCQlNT1RIbGVmdEFycm93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhp
cy5sZWZ0QXJyb3dJZCk7CgkJLy9jcmVhdGUgaW1hZ2UKCQlpc09mZiA9ICh0aGlzLml0ZW1JbmRl
eCA9PSAwKTsKCQlNT1RIbGVmdEFycm93SW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU1H
Iik7CgkJc3RhdGUgPSAoaXNPZmYpID8gdGhpcy5sZWZ0SW1nT2ZmIDogdGhpcy5sZWZ0SW1nT247
CgkJTU9USGxlZnRBcnJvd0ltZy5zZXRBdHRyaWJ1dGUoInNyYyIsIHN0YXRlICk7CgkJTU9USGxl
ZnRBcnJvd0ltZy5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAibW90aF9yZXZlcnNlIik7IAoJCQkJCgkJ
Ly9jcmVhdGUgYW5jaG9yCgkJaWYgKCFpc09mZil7CgkJCU1PVEhsZWZ0QXJyb3dBbmNob3IgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCAiQSIgKTsKCQkJTU9USGxlZnRBcnJvd0FuY2hvci5zZXRB
dHRyaWJ1dGUoImhyZWYiLCAiamF2YXNjcmlwdDpicm93c2VyLnVwZGF0ZSgwKSIpOwoJCQlNT1RI
bGVmdEFycm93QW5jaG9yLmFwcGVuZENoaWxkKE1PVEhsZWZ0QXJyb3dJbWcpOwoJCQlNT1RIbGVm
dEFycm93LmFwcGVuZENoaWxkKE1PVEhsZWZ0QXJyb3dBbmNob3IpOwoJCX0gZWxzZSB7CgkJCU1P
VEhsZWZ0QXJyb3cuYXBwZW5kQ2hpbGQoTU9USGxlZnRBcnJvd0ltZyk7CgkJfQoJCS8vZW5kIGxl
ZnQgYXJyb3cKCgkJLy9iZWdpbiByaWdodCBhcnJvdwoJCU1PVEhyaWdodEFycm93ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5yaWdodEFycm93SWQpOwoJCS8vY3JlYXRlIGltYWdlCgkJ
aXNPZmYgPSAoKHRoaXMuaXRlbUluZGV4ICsgdGhpcy5kaXNwbGF5SXRlbXNDb3VudCkgPj0gdGhp
cy5pdGVtQXJyYXkubGVuZ3RoKTsKCQlNT1RIcmlnaHRBcnJvd0ltZyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoIklNRyIpOwoJCXN0YXRlID0gKGlzT2ZmKSA/IHRoaXMucmlnaHRJbWdPZmYgOiB0
aGlzLnJpZ2h0SW1nT247CgkJTU9USHJpZ2h0QXJyb3dJbWcuc2V0QXR0cmlidXRlKCJzcmMiLCBz
dGF0ZSApOwoJCU1PVEhyaWdodEFycm93SW1nLnNldEF0dHJpYnV0ZSgibmFtZSIsICJtb3RoX2Zv
cndhcmQiKTsgCgkJLy9jcmVhdGUgYW5jaG9yCgkJaWYgKCFpc09mZil7CQoJCQlNT1RIcmlnaHRB
cnJvd0FuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkEiKTsKCQkJTU9USHJpZ2h0QXJy
b3dBbmNob3Iuc2V0QXR0cmlidXRlKCJocmVmIiAsICJqYXZhc2NyaXB0OmJyb3dzZXIudXBkYXRl
KDEpIik7CgkJCU1PVEhyaWdodEFycm93QW5jaG9yLmFwcGVuZENoaWxkKE1PVEhyaWdodEFycm93
SW1nKTsKCQkJTU9USHJpZ2h0QXJyb3cuYXBwZW5kQ2hpbGQoTU9USHJpZ2h0QXJyb3dBbmNob3Ip
OwoJCX0gZWxzZSB7CgkJCU1PVEhyaWdodEFycm93LmFwcGVuZENoaWxkKE1PVEhyaWdodEFycm93
SW1nKTsKCQl9CQoJCS8vZW5kIHJpZ2h0IGFycm93Cgl9Cn0KCgpJbnNpZGVOWVRpbWVzSXRlbS5w
cm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiggICl7CglpZiggZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCApewoJCXBhcmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggdGhpcy5wYXJl
bnRCcm93c2VyLmVsZW1lbnRJZCApOwoJCWlmKCBwYXJlbnRFbGVtZW50LnRhZ05hbWUgPT0gIlRB
QkxFIiAmJiB0aGlzLnBhcmVudEJyb3dzZXIuZ2V0SGVhZGVyUm93ICYmIHRoaXMucGFyZW50QnJv
d3Nlci5nZXRCb2R5Um93ICl7CgkJCQoJCQkvLyBjcmVhdGUgaGVhZGVyCgkJCWhlYWRlck9iaiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJUSCIgKTsKCQkJaGVhZGVyVGl0bGVPYmogPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCAiSDQiICk7CgkJCWlmICh0aGlzLmRpc3BsYXlfdXJsID09ICIj
IikgeyAKCQkJCWFuY2hvck9iaiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMuZGlzcGxh
eV9uYW1lKTsKCQkJfSBlbHNlIHsKCQkJCWFuY2hvck9iaiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoIkEiKTsKCQkJCWFuY2hvck9iai5zZXRBdHRyaWJ1dGUoImhyZWYiLCB0aGlzLmRpc3BsYXlf
dXJsKTsKCQkJCQoJCQkJaWYoIHRoaXMuaXNQYWlkICkgeyAKCQkJCQlsaW5rZWRPYmogPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsKCQkJCQlsaW5rZWRPYmouc2V0QXR0cmlidXRlKCJz
cmMiLCAiaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvaGVhZGVycy90aW1lc3Nl
bGVjdF9oZWFkZXI5MngxMS5naWYiKTsJCgkJCQkJYW5jaG9yT2JqLmFwcGVuZENoaWxkKGxpbmtl
ZE9iaik7CgkJCQl9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIHVzZSBpbm5lckhUTUwg
KyBodG1sLWVuY29kZWQgZW50aXR5IHNvIHRoYXQgdGhlICI+PiIgZGlzcGxheXMgY29ycmVjdGx5
CiAgICAgICAgICAgICAgICAgICAgLy8gb24gcGFnZXMgd2l0aCBpc28tODg1OS0xICphbmQqIFVU
Ri04IGNoYXJhY3RlciBlbmNvZGluZwogICAgICAgICAgICAgICAgICAgIGVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoICJkaXYiICk7CiAgICAgICAgICAgICAgICAgICAgZW50LmlubmVySFRN
TCA9ICIgJiN4MDBiYjsiCiAgICAgICAgICAgICAgICAgICAgYW5jaG9yT2JqLmFwcGVuZENoaWxk
KCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggdGhpcy5kaXNwbGF5X25hbWUgKyBlbnQuaW5uZXJI
VE1MICkgKTsKCQkJCX0KCQkJfQoJCQkJCQoJCQloZWFkZXJUaXRsZU9iai5hcHBlbmRDaGlsZCgg
YW5jaG9yT2JqICk7CgkJCWhlYWRlck9iai5hcHBlbmRDaGlsZCggaGVhZGVyVGl0bGVPYmogKTsK
CQkJdGhpcy5wYXJlbnRCcm93c2VyLmdldEhlYWRlclJvdygpLmFwcGVuZENoaWxkKCBoZWFkZXJP
YmogKTsKCQkJCgkJCS8vIGNyZWF0ZSBib2R5CgkJCXRkT2JqID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCggIlREIiApOwoJCQlzdG9yeU9iaiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJESVYi
ICk7CgkJCXN0b3J5T2JqLmNsYXNzTmFtZSA9ICJzdG9yeSI7CgkJCWNhbGxvdXRPYmogPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCAiRElWIiApOwoJCQljYWxsb3V0T2JqLmNsYXNzTmFtZSA9ICJj
YWxsb3V0IjsKCQkJY2FsbG91dExpbmtPYmogPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAiQSIg
KTsKCQkJY2FsbG91dExpbmtPYmouc2V0QXR0cmlidXRlKCAiaHJlZiIgLCB0aGlzLnVybCApOwoJ
CQljYWxsb3V0SW1nT2JqID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggIklNRyIgKTsKCQkJY2Fs
bG91dEltZ09iai5zZXRBdHRyaWJ1dGUoICJzcmMiICwgdGhpcy5pbWdVcmwgKTsKCQkJY2FsbG91
dEltZ09iai5zZXRBdHRyaWJ1dGUoICJhbHQiICwgdGhpcy5oZWFkbGluZSApOwoJCQljYWxsb3V0
TGlua09iai5hcHBlbmRDaGlsZCggY2FsbG91dEltZ09iaiApOwoJCQljYWxsb3V0T2JqLmFwcGVu
ZENoaWxkKCBjYWxsb3V0TGlua09iaiApOwoJCQlzdG9yeU9iai5hcHBlbmRDaGlsZCggY2FsbG91
dE9iaiApOwoJCQloZWFkbGluZU9iaiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJINSIgKTsK
CQkJaGVhZGxpbmVMaW5rT2JqID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggIkEiICk7CgkJCWhl
YWRsaW5lTGlua09iai5zZXRBdHRyaWJ1dGUoICJocmVmIiAsIHRoaXMudXJsICk7CgkJCWlmKCB0
aGlzLmlzUGFpZCApIGhlYWRsaW5lTGlua09iai5jbGFzc05hbWUgPSAic2VsZWN0IjsKICAgICAg
ICAgICAgLy8gZW5jb2RpbmcgZml4IGFzIGFib3ZlCiAgICAgICAgICAgIGVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoICJkaXYiICk7CiAgICAgICAgICAgIGVudC5pbm5lckhUTUwgPSB0aGlz
LmhlYWRsaW5lOwogICAgICAgICAgICBoZWFkbGluZUxpbmtPYmouYXBwZW5kQ2hpbGQoIGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCBlbnQuaW5uZXJIVE1MICkgKTsKCQkJaGVhZGxpbmVPYmouYXBw
ZW5kQ2hpbGQoIGhlYWRsaW5lTGlua09iaiApOwoJCQlzdG9yeU9iai5hcHBlbmRDaGlsZCggaGVh
ZGxpbmVPYmogKTsKCQkJdGRPYmouYXBwZW5kQ2hpbGQoIHN0b3J5T2JqICk7CgkJCXRoaXMucGFy
ZW50QnJvd3Nlci5nZXRCb2R5Um93KCkuYXBwZW5kQ2hpbGQoIHRkT2JqICk7CQoJCX0KCX0KfQkJ
CQkJCQkKCQkJCQkJCQpJbnNpZGVOWVRpbWVzQnJvd3Nlci5wcm90b3R5cGUuYWRkSXRlbSA9IGZ1
bmN0aW9uKCBpdGVtICl7CglpZiggaXRlbSBpbnN0YW5jZW9mIEluc2lkZU5ZVGltZXNJdGVtICl7
CgkJaXRlbS5wYXJlbnRCcm93c2VyID0gdGhpczsKCQl0aGlzLml0ZW1BcnJheS5wdXNoKCBpdGVt
ICk7Cgl9Cn0JCQkKCQkJCQkJCQpJbnNpZGVOWVRpbWVzQnJvd3Nlci5wcm90b3R5cGUudXBkYXRl
ID0gZnVuY3Rpb24oIGRvTW92ZVJpZ2h0ICl7Cgl0YWJsZU9iaiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCB0aGlzLmVsZW1lbnRJZCApOwoJCgkvL2luY3JlbWVudCBpbmRleCBjb3VudAoJdmFy
IG9yaWdJbmRleCA9IHRoaXMuaXRlbUluZGV4OwoJdGhpcy5pdGVtSW5kZXggPSAoZG9Nb3ZlUmln
aHQpID8gdGhpcy5pdGVtSW5kZXggKyB0aGlzLnNjcm9sbEl0ZW1zQ291bnQgOiB0aGlzLml0ZW1J
bmRleCAtIHRoaXMuc2Nyb2xsSXRlbXNDb3VudDsKCQoJLy9zZXQgdXBwZXIgYW5kIGxvd2VyIGJv
dW5kcwoJdGhpcy51cHBlckJvdW5kID0gdGhpcy5pdGVtQXJyYXkubGVuZ3RoIC0gdGhpcy5kaXNw
bGF5SXRlbXNDb3VudDsKCXRoaXMuaXRlbUluZGV4ID0gKCh0aGlzLml0ZW1JbmRleCArIHRoaXMu
ZGlzcGxheUl0ZW1zQ291bnQpID4gdGhpcy5pdGVtQXJyYXkubGVuZ3RoKSA/IHRoaXMuaXRlbUFy
cmF5Lmxlbmd0aC10aGlzLmRpc3BsYXlJdGVtc0NvdW50IDogdGhpcy5pdGVtSW5kZXg7Cgl0aGlz
Lml0ZW1JbmRleCA9ICh0aGlzLml0ZW1JbmRleCA8IDApID8gMCA6IHRoaXMuaXRlbUluZGV4OwoJ
CgkvL3VwZGF0ZSBidXR0b24gaW1hZ2VzCgl0aGlzLmRlbGV0ZUFsbENoaWxkcmVuT2YoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5sZWZ0QXJyb3dJZCkpOwoJdGhpcy5kZWxldGVBbGxDaGls
ZHJlbk9mKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMucmlnaHRBcnJvd0lkKSk7Cgl0aGlz
LnNob3dCdXR0b25zKCk7CgkKCWlmIChvcmlnSW5kZXggIT0gdGhpcy5pdGVtSW5kZXgpewoJCS8v
Y2xlYXIgCgkJdGhpcy5kZWxldGVBbGxDaGlsZHJlbk9mKCB0aGlzLmdldEhlYWRlclJvdygpICk7
CgkJdGhpcy5kZWxldGVBbGxDaGlsZHJlbk9mKCB0aGlzLmdldEJvZHlSb3coKSApOwoJCQoJCS8v
IHJlLXBvcHVsYXRlCgkJZm9yKCBpVXBkYXRlPXRoaXMuaXRlbUluZGV4IDsgaVVwZGF0ZSA8ICh0
aGlzLml0ZW1JbmRleCArIHRoaXMuZGlzcGxheUl0ZW1zQ291bnQpIDsgaVVwZGF0ZSsrICl7CgkJ
CXRoaXMuaXRlbUFycmF5W2lVcGRhdGVdLndyaXRlKCk7CgkJfQoJfQp9CgpJbnNpZGVOWVRpbWVz
QnJvd3Nlci5wcm90b3R5cGUuZ2V0SGVhZGVyUm93ID0gZnVuY3Rpb24oKXsKCXJldHVybiBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCggdGhpcy5lbGVtZW50SWQgKS5nZXRFbGVtZW50c0J5VGFnTmFt
ZSggIlRIRUFEIiApWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiVFIiIClbMF07Cn0KCkluc2lk
ZU5ZVGltZXNCcm93c2VyLnByb3RvdHlwZS5nZXRCb2R5Um93ID0gZnVuY3Rpb24oKXsKCXJldHVy
biBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggdGhpcy5lbGVtZW50SWQgKS5nZXRFbGVtZW50c0J5
VGFnTmFtZSggIlRCT0RZIiApWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiVFIiIClbMF07Cn0K
Ckluc2lkZU5ZVGltZXNCcm93c2VyLnByb3RvdHlwZS5kZWxldGVBbGxDaGlsZHJlbk9mID0gZnVu
Y3Rpb24oIGVsZW1lbnRPYmogKXsKCXdoaWxlIChlbGVtZW50T2JqLmhhc0NoaWxkTm9kZXMoKSkg
ZWxlbWVudE9iai5yZW1vdmVDaGlsZChlbGVtZW50T2JqLmZpcnN0Q2hpbGQpOwp9CtQABQARAAcA
CADrAOwAeQDtXxBHaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvZ2xvYmFsL2J1
dHRvbnMvbW90aF9yZXZlcnNlX29mZi5naWZPEQPzYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25U
JHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8Q
D05TS2V5ZWRBcmNoaXZlcq8QHAsMJiwtMx40NUtMTU5PUFFSU1RVVldYWVpbX2BVJG51bGzdDQ4P
EBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdS
JDJSJDlSJDBSJDGAG4ACgBoQCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVs
YXRpdmWABIAAgANfEEdodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy9nbG9iYWwv
YnV0dG9ucy9tb3RoX3JldmVyc2Vfb2ZmLmdpZtIuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJV
TlNVUkxYTlNPYmplY3QjQa2R+wk/4h4QyNMNNjc4OUJXTlMua2V5c1pOUy5vYmplY3RzgBmoOjs8
PT4/QEGACYAKgAuADIANgA6AD4AQqENERUZHSElKgBGAEoATgBSAFYAWgBeAGF1BY2NlcHQtUmFu
Z2VzVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rp
b25dTGFzdC1Nb2RpZmllZFVieXRlc18QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFZaW1hZ2UvZ2lm
UzEzMV8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UXSI4My00NTk2NDdiYSJaa2VlcC1h
bGl2ZV8QHVNhdCwgMzAgRGVjIDIwMDYgMTE6MDQ6MjYgR01U0i4vXF2jXV4yXxATTlNNdXRhYmxl
RGljdGlvbmFyeVxOU0RpY3Rpb25hcnkQg9IuL2Fio2JjMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5T
VVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8AwgDF
AMgAywDOANEA0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBVAFZAWIBbQFwAXYB
fwGIAYoBkQGZAaQBpgGvAbEBswG1AbcBuQG7Ab0BvwHIAcoBzAHOAdAB0gHUAdYB2AHmAe0B+gIJ
Ag4CEwIeAiwCMgJLAlUCWQJ5AocCkgKyArcCuwLRAt4C4ALlAukC/QAAAAAAAAIBAAAAAAAAAGQA
AAAAAAAAAAAAAAAAAAMLTxCDR0lGODlhFwAUAKIAAP///8zMzLOzs/Dw8Li4uL29vQAAAAAAACH5
BAAAAAAALAAAAAAXABQAQANIOLHc/grIKQcRmNKlu5/cJ4LBZ2HCF47i6g2Z504FGnezBqdyyba+
X0+oCpp4OKPugtTkACdU8cW8OZWU6HQE2xKdiodYPEgAADvUAAUAEQAHAAgA7wDwAHkA8V8QQ2h0
dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzL2dsb2JhbC9idXR0b25zL21vdGhfZm9y
d2FyZC5naWZPEQPvYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9i
amVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8Q
HAsMJiwtMx40NUtMTU5PUFFSU1RVVldYWVpbX2BVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAh
IiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAG4ACgBoQ
CBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEENodHRw
Oi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy9nbG9iYWwvYnV0dG9ucy9tb3RoX2Zvcndh
cmQuZ2lm0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7CUxc
vBDI0w02Nzg5QldOUy5rZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAPgBCo
Q0RFRkdISUqAEYASgBOAFIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQtVHlw
ZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5dGVz
XxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMVlpbWFnZS9naWZTMTMwXxAdTW9uLCAxMCBOb3YgMjAw
OCAyMzozODo0NCBHTVRdIjgyLTQ1OTY0N2JhIlprZWVwLWFsaXZlXxAdU2F0LCAzMCBEZWMgMjAw
NiAxMTowNDoyNiBHTVTSLi9cXaNdXjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFy
eRCC0i4vYWKjYmMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkA
MgA3ADoAUABSAGQAgwCJAKQAqwCuALEAtQC5ALwAvwDCAMUAyADLAM4A0QDTANUA1wDZANsA3QDf
AOEA4wDlAOcA6QDwAPgBBAEGAQgBCgFQAVUBXgFpAWwBcgF7AYQBhgGNAZUBoAGiAasBrQGvAbEB
swG1AbcBuQG7AcQBxgHIAcoBzAHOAdAB0gHUAeIB6QH2AgUCCgIPAhoCKAIuAkcCUQJVAnUCgwKO
Aq4CswK3As0C2gLcAuEC5QL5AAAAAAAAAgEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAwdPEIJHSUY4
OWEXABQAogAA////gICAAAAAzMzMiIiIERERIiIiAAAAIfkEAAAAAAAsAAAAABcAFABAA0c4sdz+
CsgpiRBlULq2/1MHjmEAWpj2ieTIbpYKvhR6Gav5xSTdbr5fSTjTeQiy4inlMsIuTE8QYMvkllbl
LnklShWPcHiQAAA71AAFABEABwAIAPMA9ACrAPVfEFBodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMu
Y29tL2ltYWdlcy8yMDA4LzExLzEwL2FydHMvdGVsZXZpc2lvbi8xMG1vdGhfaGVyb2VzLmpwZ08R
BANicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag
0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAcCwwmLC0zHjQ1
S0xNTk9QUVJTVFVWV1hZWltfYFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xh
c3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAbgAKAGhAIEACABoAHgAWA
CBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QUGh0dHA6Ly9ncmFwaGlj
czgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvYXJ0cy90ZWxldmlzaW9uLzEwbW90aF9o
ZXJvZXMuanBn0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7
CT8UmBDI0w02Nzg5QldOUy5rZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAP
gBCoQ0RFRkdISUqAEYASgBOAFIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQt
VHlwZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5
dGVzXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMVppbWFnZS9qcGVnVDk0OTBfEB1Nb24sIDEwIE5v
diAyMDA4IDIzOjM4OjQ0IEdNVF8QDyIyNTEyLTQ5MTdmMmJjIlprZWVwLWFsaXZlXxAdTW9uLCAx
MCBOb3YgMjAwOCAwODozNzoxNiBHTVTSLi9cXaNdXjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5T
RGljdGlvbmFyeRElEtIuL2Fio2JjMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UA
CAARABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8AwgDFAMgAywDOANEA0wDV
ANcA2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBXQFiAWsBdgF5AX8BiAGRAZMBmgGiAa0B
rwG4AboBvAG+AcABwgHEAcYByAHRAdMB1QHXAdkB2wHdAd8B4QHvAfYCAwISAhcCHAInAjUCOwJU
Al8CZAKEApYCoQLBAsYCygLgAu0C8AL1AvkDDQAAAAAAAAIBAAAAAAAAAGQAAAAAAAAAAAAAAAAA
AAMbTxElEv/Y/+AAEEpGSUYAAQIAAGQAZAAA/+wAEUR1Y2t5AAEABAAAAEEAAP/uAA5BZG9iZQBk
wAAAAAH/2wCEAAUEBAQEBAUEBAUHBQQFBwkHBQUHCQoICAkICAoNCgsLCwsKDQwMDA0MDAwPDxER
Dw8XFhYWFxkZGRkZGRkZGRkBBgYGCgkKFA0NFBYRDhEWGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZ
GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGf/AABEIAJcAlwMBEQACEQEDEQH/xAGiAAAABwEBAQEB
AAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAgEDAwIE
AgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0U5KismNz
wjVEJ5OjszYXVGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVmdoaWprbG
1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6
EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx8BTB0eEjQhVSYnLxMyQ0Q4IW
klMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kjs8MoKdPj84SUpLTE1OT0ZXWFlaW1xdXl
9UZWZnaGlqa2xtbm9kdXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6
ipqqusra6vr/2gAMAwEAAhEDEQA/AOZecvMfneDzd5ggtPMerQWqareR28Ed9cIiRrcOFVVVwFVR
sAMsjC02raZfefpbR75vNOrSCM09E6hcs5PsvPfJnHQW3vD67c/kn+Vs/mnzzdzat50134dH0i8m
e4ETlf3acZCwXgDzlYf6uYWXIfpH1H7PNnCAJvoHxtc/mZ+YlzcTXD+bdZR5naRkiv7mKNS5JIRE
cKiiuyqKDJjYKea0fmJ+YJH/ACl+uf8AcRu/+qmNsgA0PzE/MH/qb9c/7iN3/wBVMbSIrm/MT8wQ
P+Uv1z/uI3f/AFUxBUxDQ/MXz/384a4P+3ld/wDVTHdRwt/8rG8/+maeb9cLV7ajdV/5OYN7QapS
/wCVjfmD/wBTfrv/AHErv/qpkmNIqL8xPP5gf/nbdcJH7X6Ruq/f6mVkm22IFKDfmL+YP/U367/3
Ebv/AKqZMFgQFSP8xvP/AKTg+bdcLdj+kbuv/JzAbtQNkMfzG/ML/qcNd/7iV3/1UybWqf8AKxfz
C9Ov+L9d69f0jd/9VMF7sq2Wf8rH/ML/AKm/Xf8AuI3f/VTFD2j8sfNXmjUdBuJ9Q17VLuYMQHlv
J5GHyLOTmt1GSQmaJdvgxQOMbC/cgdD80ecJvzFj09/MWqy2RDH6s97cNH2/ZL8cMssvD5nmx8CI
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
7RwFjG5an1vqx2ycQb8miZFea23/AC91FSHk1fy+WG4Qa5pR37f8fWXU1Ar38g6r8X+5PQy9fiP6
c0gb/wDSVgoMrKZ6F5DkW4X6/qeiLEDVuGtaSxNO3w3R65XMHo245RHN6joGjamt44RdMTy8unam
knpalp0gYPp9wgLFLg7VPxHoo3NACcrjADru2ZMhJG2z/9nUAAUAEQAHAAgA9wD4AHkA+V8QR2h0
dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvb3Bpbmlvbi8xMG1v
dGgtb3BlZDMuZ2lmTxED9mJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVy
WCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2
ZXKvEBwLDCYsLTMeNDVLTE1OT1BRUlNUVVZXWFlaW19gVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwd
Hh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBuA
AoAaEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBH
aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvMjAwOC8xMS8xMC9vcGluaW9uLzEw
bW90aC1vcGVkMy5naWbSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0
I0GtkfsJP6xgEMjTDTY3ODlCV05TLmtleXNaTlMub2JqZWN0c4AZqDo7PD0+P0BBgAmACoALgAyA
DYAOgA+AEKhDREVGR0hJSoARgBKAE4AUgBWAFoAXgBhdQWNjZXB0LVJhbmdlc1ZTZXJ2ZXJcQ29u
dGVudC1UeXBlXkNvbnRlbnQtTGVuZ3RoVERhdGVURXRhZ1pDb25uZWN0aW9uXUxhc3QtTW9kaWZp
ZWRVYnl0ZXNfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xWWltYWdlL2dpZlQzNDU5XxAdTW9uLCAx
MCBOb3YgMjAwOCAyMzozODo0NCBHTVReImQ4My00OTE4N2M4YyJaa2VlcC1hbGl2ZV8QHU1vbiwg
MTAgTm92IDIwMDggMTg6MjU6MTYgR01U0i4vXF2jXV4yXxATTlNNdXRhYmxlRGljdGlvbmFyeVxO
U0RpY3Rpb25hcnkRDYPSLi9hYqNiYzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNl
AAgAEQAaAB8AKQAyADcAOgBQAFIAZACDAIkApACrAK4AsQC1ALkAvAC/AMIAxQDIAMsAzgDRANMA
1QDXANkA2wDdAN8A4QDjAOUA5wDpAPAA+AEEAQYBCAEKAVQBWQFiAW0BcAF2AX8BiAGKAZEBmQGk
AaYBrwGxAbMBtQG3AbkBuwG9Ab8ByAHKAcwBzgHQAdIB1AHWAdgB5gHtAfoCCQIOAhMCHgIsAjIC
SwJVAloCegKJApQCtAK5Ar0C0wLgAuMC6ALsAwAAAAAAAAACAQAAAAAAAABkAAAAAAAAAAAAAAAA
AAADDk8RDYNHSUY4OWGXAJcAswAAiKe/7vL2zNnk3ebtmbPIEU9/Zo6tIluId5q2M2iRVYGkqsDR
u83aRHSbAEJ2////IfkEAAAAAAAsAAAAAJcAlwAABP/wyUmrvThrSYBpyCaOZGmOAqAypzYwcCwz
w5UWTkO+c9D+wBEjUTAAEIcCIEhhKBzQhrRxgC4xixzJCXUcEDWmWExwJHwTg8MwlmQdFYDjemFo
S290e3+yH/QTTyFjdnAVDXQWdjolhXyPJlUEFwNQYUyOFQIsGIsmmZChGXkYCQ4hHVIPBAqIgBmg
DwACFgMIUghyjBIMAK9NUBRHIA8LrQaXlLcNBrSiGAheGWoJDwJPa0amZyKxB5wTZQY+BDi7lWuw
wRMLpswKAA0OBb8cDiwDVc7Ph3cXcoYeQNn3ZJe6ezCegHvgKZw/dGw6rZtQaJ+8SRdwcBLHz4I8
g3H/Jk58gC5ZnShSoCw0tQCYwV71eI1k6E/WnFIFwjTsOOFjBoATZlZZQmDKFIoTBdybgA7QTiEz
n8pJ1KkgT2HzMliVMFPeEoBdAsYyAC4WTZAbzEq9iUHALQJZ0PJT6sDkhKFBA0rwmnbkAB8BCKit
2S1qzakY1ER8epWvonl6hC7VYFZCPIGTZco9WGEtVTfSNF+lIKBAgX0SApjCyFVvpQOF9aYu8kCN
ApfCFKDubNggYgu6kG6eaxrcgNUVrAQ6LQJgIgGmlgTAMY6hqZwS6N7GUMYB6ix/JkQbVKE7iyFm
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
S6YUowJW7LBvugIAaWlKPhAGLGGTykGCAPeadHA09kIduZhqGNMzNcCaG7BXiQUqGcQ/ecVWHAiF
NFc+MqdB+cJHSEAe0BkCfpUCEyRBAFUI87AA2akgDpFBbjEn63mdhoUR/eOElxBehlVaP1AwhW2Q
WUHQheuxhhnQdBrSAltYYQI6hwq6oAzaoA76oBAaoRI6oRRaoRZ6oRjaWREAADvUAAUAEQAHAAgA
+wD8AKsA/V8QSmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAv
bnlyZWdpb24vMTBtb3RoX2JpZ2NpdHkuanBnTxED/WJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9u
VCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFf
EA9OU0tleWVkQXJjaGl2ZXKvEBwLDCYsLTMeNDVLTE1OT1BRUlNUVVZXWFlaW19gVSRudWxs3Q0O
DxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3
UiQyUiQ5UiQwUiQxgBuAAoAaEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJl
bGF0aXZlgASAAIADXxBKaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvMjAwOC8x
MS8xMC9ueXJlZ2lvbi8xMG1vdGhfYmlnY2l0eS5qcGfSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1l
ojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsJP7+lEMjTDTY3ODlCV05TLmtleXNaTlMub2JqZWN0c4AZ
qDo7PD0+P0BBgAmACoALgAyADYAOgA+AEKhDREVGR0hJSoARgBKAE4AUgBWAFoAXgBhdQWNjZXB0
LVJhbmdlc1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNvbnRlbnQtTGVuZ3RoVERhdGVURXRhZ1pDb25u
ZWN0aW9uXUxhc3QtTW9kaWZpZWRVYnl0ZXNfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xWmltYWdl
L2pwZWdUOTAwMV8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UXxAPIjIzMjktNDkxN2Jm
NjYiWmtlZXAtYWxpdmVfEB1Nb24sIDEwIE5vdiAyMDA4IDA0OjU4OjE0IEdNVNIuL1xdo11eMl8Q
E05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5ESMp0i4vYWKjYmMyXxARTlNIVFRQVVJM
UmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAgwCJAKQAqwCuALEA
tQC5ALwAvwDCAMUAyADLAM4A0QDTANUA1wDZANsA3QDfAOEA4wDlAOcA6QDwAPgBBAEGAQgBCgFX
AVwBZQFwAXMBeQGCAYsBjQGUAZwBpwGpAbIBtAG2AbgBugG8Ab4BwAHCAcsBzQHPAdEB0wHVAdcB
2QHbAekB8AH9AgwCEQIWAiECLwI1Ak4CWQJeAn4CkAKbArsCwALEAtoC5wLqAu8C8wMHAAAAAAAA
AgEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAxVPESMp/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVj
a3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYG
BwYGCAoICQkJCQgKCgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQU
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAlwCX
AwERAAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAA
AAAAAQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWx
QiPBUtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry
4/PE1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlp
eYmZqbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZx
gZEyobHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOz
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
VmK+FP3+SGWPn8j+pibQjeX1jB4JpMrU2pq1l/G6GTOWHn8pfqa92hod6UVvq2kh60K/pez6Dp0u
qZTLJGv2S/UyijoNBuwQzDSlFPsfpK0P4/WTmNLJ3D7C2j4qg8vX37NxpgPal/Y0/GfKxkP4BZGv
NLNR8tXZqWm0wn/L1OwX/iVwMkZx6/cUWkcnla+c0WXSlSm5Gr6YB/1E5CWQdxSFP/CN1X/ejSx7
/pjTT/2M5iynfRmK7/sd/g+87Xel/wDcW03/ALKcolK+jYCPwE58seVr+DVJ3e60wg6dqkYEep6f
I1ZNPuEBolwTQE/Eeijc0AJypEiK/tf/2dQABQARAAcACAD/AQAAqwEBXxBBaHR0cDovL2dyYXBo
aWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvMjAwOC8xMS8xMC91cy8xMG1vdGhfYmFrZS5qcGdPEQP0
YnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEH
CF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QHAsMJiwtMx40NUtM
TU5PUFFSU1RVVldYWVpbX2BVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNsYXNz
UiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAG4ACgBoQCBAAgAaAB4AFgAgQ
B4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEEFodHRwOi8vZ3JhcGhpY3M4
Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzExLzEwL3VzLzEwbW90aF9iYWtlLmpwZ9IuLzAxWCRj
bGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wk/S8cQyNMNNjc4OUJXTlMu
a2V5c1pOUy5vYmplY3RzgBmoOjs8PT4/QEGACYAKgAuADIANgA6AD4AQqENERUZHSElKgBGAEoAT
gBSAFYAWgBeAGF1BY2NlcHQtUmFuZ2VzVlNlcnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5n
dGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25dTGFzdC1Nb2RpZmllZFVieXRlc18QFlN1bi1PTkUtV2Vi
LVNlcnZlci82LjFaaW1hZ2UvanBlZ1Q5OTYxXxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NCBH
TVRfEA8iMjZlOS00OTE3YmZhYyJaa2VlcC1hbGl2ZV8QHU1vbiwgMTAgTm92IDIwMDggMDQ6NTk6
MjQgR01U0i4vXF2jXV4yXxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRJunSLi9h
YqNiYzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQ
AFIAZACDAIkApACrAK4AsQC1ALkAvAC/AMIAxQDIAMsAzgDRANMA1QDXANkA2wDdAN8A4QDjAOUA
5wDpAPAA+AEEAQYBCAEKAU4BUwFcAWcBagFwAXkBggGEAYsBkwGeAaABqQGrAa0BrwGxAbMBtQG3
AbkBwgHEAcYByAHKAcwBzgHQAdIB4AHnAfQCAwIIAg0CGAImAiwCRQJQAlUCdQKHApICsgK3ArsC
0QLeAuEC5gLqAv4AAAAAAAACAQAAAAAAAABkAAAAAAAAAAAAAAAAAAADDE8RJun/2P/gABBKRklG
AAECAABkAGQAAP/sABFEdWNreQABAAQAAAAyAAD/7gAOQWRvYmUAZMAAAAAB/9sAhAAIBgYGBgYI
BgYIDAgHCAwOCggICg4QDQ0ODQ0QEQwODQ0ODBEPEhMUExIPGBgaGhgYIyIiIiMnJycnJycnJycn
AQkICAkKCQsJCQsOCw0LDhEODg4OERMNDQ4NDRMYEQ8PDw8RGBYXFBQUFxYaGhgYGhohISAhIScn
JycnJycnJyf/wAARCACXAJcDASIAAhEBAxEB/8QBogAAAAcBAQEBAQAAAAAAAAAABAUDAgYBAAcI
CQoLAQACAgMBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAIBAwMCBAIGBwMEAgYCcwECAxEEAAUh
EjFBUQYTYSJxgRQykaEHFbFCI8FS0eEzFmLwJHKC8SVDNFOSorJjc8I1RCeTo7M2F1RkdMPS4ggm
gwkKGBmElEVGpLRW01UoGvLj88TU5PRldYWVpbXF1eX1ZnaGlqa2xtbm9jdHV2d3h5ent8fX5/c4
SFhoeIiYqLjI2Oj4KTlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+hEAAgIBAgMFBQQFBgQIAwNt
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
PsEU5VE21MHflFZT6PPfFYYby5u3VLk2l5aTm3t1+w5WGZ6hnO42+npmzZkDpV/Y1G73r7Vb85NN
vdQuNGltXt1aNJkkS4uoLYkcgVZfrMkXIElunhkEi8v33pRgy2Q+EcqahYnf2/0jNmyvNwV6r+Cc
fF0r4o2DQbtVU+tZk16fX7P/AKr5JtC0qSPUIJbmS2LxwOsCLdWzM3KnMgJKTsubNjh4KPBfLe0z
4+tfB61HzEUYAqAqgEdDQdsdV/DNmzIaWwX34gg03p4d8guv6F5Q1Vnkg1Ox07UATykjlj9Mt4TQ
8l38StD882bK8vh8P72q8/0M8fHxfu7vy/SwO80PWBpt5aevaPp7TRercLeWwh9WNqxsGknQgsKg
BgDTEY9H1QOrxm05CnJTf2hqe1KTnNmzGj4XCPrrerpvl4nEfpvrVp/pGn6kksh/0YL9Xu6qt1bP
V2t5VAqsxI+I79h3zZs2T9HB/HXF8bph6uP+G+H4P//Z1AAFABEABwAIAQMBBAB5AQVfEEFodHRw
Oi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2ltYWdlcy8yMDA4LzExLzEwL29waW5pb24vMTBmaXNo
LmdpZk8RA/NicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0
cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAcCwwm
LC0zHjQ1S0xNTk9QUVJTVFVWV1hZWltfYFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQd
JVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAbgAKAGhAIEACA
BoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QQWh0dHA6Ly9n
cmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvb3Bpbmlvbi8xMGZpc2guZ2lm
0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7CUxM4BDI0w02
Nzg5QldOUy5rZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAPgBCoQ0RFRkdI
SUqAEYASgBOAFIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQtVHlwZV5Db250
ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5dGVzXxAWU3Vu
LU9ORS1XZWItU2VydmVyLzYuMVlpbWFnZS9naWZUNDQ3NV8QHU1vbiwgMTAgTm92IDIwMDggMjM6
Mzg6NDQgR01UXxAPIjExN2ItNDkxN2Q0YTAiWmtlZXAtYWxpdmVfEB1Nb24sIDEwIE5vdiAyMDA4
IDA2OjI4OjQ4IEdNVNIuL1xdo11eMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5
ERF70i4vYWKjYmMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkA
MgA3ADoAUABSAGQAgwCJAKQAqwCuALEAtQC5ALwAvwDCAMUAyADLAM4A0QDTANUA1wDZANsA3QDf
AOEA4wDlAOcA6QDwAPgBBAEGAQgBCgFOAVMBXAFnAWoBcAF5AYIBhAGLAZMBngGgAakBqwGtAa8B
sQGzAbUBtwG5AcIBxAHGAcgBygHMAc4B0AHSAeAB5wH0AgMCCAINAhgCJgIsAkUCTwJUAnQChgKR
ArECtgK6AtAC3QLgAuUC6QL9AAAAAAAAAgEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAwtPERF7R0lG
ODlhlwCXAMQAAGlpafHx8eTk5LvN2kR0m9bW1pKSkoWFhXd3d4inv0FBQa2trU5OTru7u1xcXN3m
7czZ5O7y9jNokZmzyCJbiGaOrRFPf3eatlWBpKrA0aCgoABCdsnJyTMzM////wAAACH5BAAAAAAA
LAAAAACXAJcAAAX/oCeO5DgkGAGVZZawsHhWxBTfeK57UbLuwCBpQCwaiZBHYrMZ3B7M1+4xsWyk
Qs/jkd1VNpauGMekEAhMCUHCJIjQzhiEaQtermICZozDbCh8gSQbFSNMcRMbbh5wOC5ZS1hBUBtc
giU9P5d8FBGGTSMpb6CbI5Fdd3ilq5uShyMPi42sp1kUS4CsuqWvLHARF3oZJigqWgk0NglnCZ6m
eBBnZ3UxExWUcSQ9ZxUJ3lgDNAQXzh4JwRcyxRDA0yVKlru9JWgJEsi9Sq8RVRvB3RQUkaj1gAIF
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
oXhGJGhMY1ufCDqTn0hF7klEeSq1SUS19Cq2doS13aS1dwhWhpaFJ/lPNHeUF0lFrMh6C2VQA8UC
UZl1moSehvtQy8aMZrdQDXWiu5aM4bRK4iSiG0iihPuVvfiTA1VQrXhNw0ZlOsWNgNSqMsVRPmW4
S/mVLYmjaHapjXepQ4V7E6eTI9ClhIijTeq6dQS7P3WSloVYJwukJaBTuRWnEud1ByZXvUW7gHq9
lia9nDqWMWdXYXqpX5lbSFhN8LRGv5tM0WtYT3iNvoVyKscCzstElpq+QBmIyIuNJbBmUte8nJS7
OhWp+PA7X8G4S1N0gEZUqWdEv+dov7ObRi/VAI7LvxiYRNQ0uq8rfMu1UMmbvze0v9p7qUwKXbMK
TTwWSRtYaU9Xq99bwQrMUcoFVhqMjUv2SctkgABHaWZka+FaSxvYe3XpYBCGh/u1r4hrYMG3l21k
XuOqrtjGiUymrRY2mHV2m5GZw8LlreAaVeLaw+emxEAcYdLXX3+IexW1bC3WgWqVf6cJA6mZJ/0q
sEHwSnwlXZxUsN10sGvMAm0cAzJWslMqmxc7AgeQsWoixR7be1EVsiu7yIzcyI78yJAcyZI8yZRc
yZZ8yZicyZq8yZzcyZ78yaAcyqI8FSEAADvUAAUAEQAHAAgBBwEIAKsBCV8QSmh0dHA6Ly9ncmFw
aGljczgubnl0aW1lcy5jb20vaW1hZ2VzLzIwMDgvMTEvMTAvdXMvcG9saXRpY3MvMTBtb3RoX2Jh
YnkuanBnTxED/mJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmpl
Y3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEBwL
DCYsLTMeNDVLTE1OT1BRUlNUVVZXWFlaW19gVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIj
JB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBuAAoAaEAgQ
AIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBKaHR0cDov
L2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvMjAwOC8xMS8xMC91cy9wb2xpdGljcy8xMG1v
dGhfYmFieS5qcGfSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0Gt
kfsJP3vhEMjTDTY3ODlCV05TLmtleXNaTlMub2JqZWN0c4AZqDo7PD0+P0BBgAmACoALgAyADYAO
gA+AEKhDREVGR0hJSoARgBKAE4AUgBWAFoAXgBhdQWNjZXB0LVJhbmdlc1ZTZXJ2ZXJcQ29udGVu
dC1UeXBlXkNvbnRlbnQtTGVuZ3RoVERhdGVURXRhZ1pDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRV
Ynl0ZXNfEBZTdW4tT05FLVdlYi1TZXJ2ZXIvNi4xWmltYWdlL2pwZWdVMTAwMTdfEB1Nb24sIDEw
IE5vdiAyMDA4IDIzOjM4OjQ0IEdNVF8QDyIyNzIxLTQ5MTdmMmZlIlprZWVwLWFsaXZlXxAdTW9u
LCAxMCBOb3YgMjAwOCAwODozODoyMiBHTVTSLi9cXaNdXjJfEBNOU011dGFibGVEaWN0aW9uYXJ5
XE5TRGljdGlvbmFyeREnIdIuL2Fio2JjMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9u
c2UACAARABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8AwgDFAMgAywDOANEA
0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBVwFcAWUBcAFzAXkBggGLAY0BlAGc
AacBqQGyAbQBtgG4AboBvAG+AcABwgHLAc0BzwHRAdMB1QHXAdkB2wHpAfAB/QIMAhECFgIhAi8C
NQJOAlkCXwJ/ApECnAK8AsECxQLbAugC6wLwAvQDCAAAAAAAAAIBAAAAAAAAAGQAAAAAAAAAAAAA
AAAAAAMWTxEnIf/Y/+AAEEpGSUYAAQIAAGQAZAAA/+wAEUR1Y2t5AAEABAAAADwAAP/uAA5BZG9i
ZQBkwAAAAAH/2wCEAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwMDAwMEAwODxAPDgwT
ExQUExMcGxsbHB8fHx8fHx8fHx8BBwcHDQwNGBAQGBoVERUaHx8fHx8fHx8fHx8fHx8fHx8fHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH//AABEIAJcAlwMBEQACEQEDEQH/xAGiAAAABwEB
AQEBAAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAgED
AwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0U5Ki
smNzwjVEJ5OjszYXVGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVmdoaW
prbG1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6SlpqeoqaqrrK
2ur6EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx8BTB0eEjQhVSYnLxMyQ0
Q4IWklMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kjs8MoKdPj84SUpLTE1OT0ZXWFlaW1
xdXl9UZWZnaGlqa2xtbm9kdXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpK
Wmp6ipqqusra6vr/2gAMAwEAAhEDEQA/AOtRG+eSOK3jaeYTyD0UFS6sSV5O5CIF6ZrMmSXEaJ5o
ESSt1LR/Ol5bv6F/p+mR2i/EsMUl1I1DuGmf0lZq9eIyk5J0TxcvNyIiA6EpDFq3na0+ET6bqkXR
o2hktZ99tn/fL08RgjlycN2V4sR23H2vG/zP87ebrfWI9Otb2+05bSPlKkdwyufUNRykhcrIAKcW
+/fM7REmJJNscwF7fYwYefvO5bj/AIh1OpP/AC2XH/NeZxcfdMbTzf54JDPr+pEf8xk//NeUSyOT
jxE800XzZ5wZQw1zUPA/6VP/AM15VLIXJhiHcm+neY/NDwFpNZvz7m6m6/S2Q4z3t4xR7glV75m8
4rKypruogA9ruf8A5rweIe9JwR7kqufOHnVSV/xBqQqCAReXHX/g8vxzJcPPjAD1b/nGvVfMGtWX
m46xqN1fxw2yiKa5nkmeBgshLQq5dgx23XL8m2OR8nX2bD1e9qltarDKzEoXMvdtqb9M0ozT7y2F
X0m5Wz057u+RZzNL6UQkbiFUmjNU1+zl0MsieqgJzbXunW9mLeFLXUJ4Rxjkr8UtPs8qq3xHvvmR
LUGLOh3r7jWNDtXUTrai4ei+lxARCfE03PvkI5pE2UbJXq+tQMIGt0gigaQrzSJQGK9QGYEU+WGW
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
WSY6H5Y1rzDetZaNaNd3McbTSKGVQqKQCWZyqjcgDfrkZEBBL3b8ufKP+FvLxF2EOpXzCe6HX0uI
oIwR4U+/KZG2B5sQ88aZaav5hiY14WkITmvdmPI/Rlc22Iq0z0CFQ8ttxHomxvU4jw+qS5BLGvNv
lfVJvNutzJNYBJb+6dQ+o2COA0zEckedWU+IYVGY0o7udjnsEjk8n6pXe4036dU07/soxARKQeq+
TNDDaDaR3skUF5boE5xXto6SJU8GUxSOD8NPtZmxOwdfMbmmTwaXeIQI7xG8PjtSfvrjbGkWdPkQ
oZnR5P8AdZkmi6/5K8gv3DBaaXmzuv2mjB95Y/8AmrG1puOzkLULwqD1Yyxmn3Nja0mdrZ2UfINN
HIx6NzWtO9N8SsQUNrdjZXPlO5tZZ4YE9SNopndAnrK1QORPHkwr1OV5NwW3CamC8g1byzfFZRpt
5YcWeI3XK8tP91lmjUn1Rx57iuV4QeGQl9JHNzNRKPFGUfrB5d/eiY/Ll3LbcBc2EA683vbVqHw+
CQ1yGLDjP1SAbsuqmB6ISLd5ofmH/lXuuWavaMJ57f1pBe2giWJXUgvI0oRKkbBmzO00YQupX8HX
6rJOc4mUeHZ5v/g7Ve1xplf+2rpv/ZRmTxj8AtS3/Buq03uNMrT/AKuum/8AZRg4h+AqtYeRb64u
4objUtKsoHP726fU7Bwi9/hjnZifDbAZoe2/l75W8paI98vlrUk1S6mCfWJEu7WcrGpIUUjIKryN
dx1yiUj1R7008y29+to5soVnSNebRC4gjaWQ7BOcjqqqvVt/YYLWnmmheW9dhhuzqNzaS6jLcPJP
/ptnUcqcQQJTx+H9ntlZ82xPdE0S9jvJGaW0Km1vFot3asfitZFB+GQ7VO56AbnbAr//2dQABQAR
AAcACAELAQwAFAENXxBCaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvYW5hbHl0
aWNzL3RyYWNraW5nVGFnc192MS4xLmpzTxEEeWJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0
b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9O
U0tleWVkQXJjaGl2ZXKvECILDCYsLTMeNDVRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2tsVSRudWxs
3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0
UiQ3UiQyUiQ5UiQwUiQxgCGAAoAgEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05T
LnJlbGF0aXZlgASAAIADXxBCaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvYW5h
bHl0aWNzL3RyYWNraW5nVGFnc192MS4xLmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVO
U1VSTFhOU09iamVjdCNBrZH7CUymARDI0w02Nzg5RVdOUy5rZXlzWk5TLm9iamVjdHOAH6s6Ozw9
Pj9AQUJDRIAJgAqAC4AMgA2ADoAPgBCAEYASgBOrRkdISUpLTE1OT1CAFIAVgBaAF4AYgBmAGoAb
gByAHYAeVFZhcnldQ2FjaGUtQ29udHJvbF1BY2NlcHQtUmFuZ2VzXxAQQ29udGVudC1FbmNvZGlu
Z1ZTZXJ2ZXJcQ29udGVudC1UeXBlVERhdGVeQ29udGVudC1MZW5ndGhURXRhZ1pDb25uZWN0aW9u
XUxhc3QtTW9kaWZpZWRfEA9BY2NlcHQtRW5jb2RpbmdabWF4LWFnZT0xZFVieXRlc1RnemlwXxAW
U3VuLU9ORS1XZWItU2VydmVyLzYuMV8QGGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdF8QHU1vbiwg
MTAgTm92IDIwMDggMjM6Mzg6NDQgR01UUzgxOF4iOGU0LTQ4ZTEyNWRhIlprZWVwLWFsaXZlXxAd
TW9uLCAyOSBTZXAgMjAwOCAxOTowMDo0MiBHTVTSLi9oaaNpajJfEBNOU011dGFibGVEaWN0aW9u
YXJ5XE5TRGljdGlvbmFyeREI5NIuL21uo25vMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVz
cG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIkAjwCqALEAtAC3ALsAvwDCAMUAyADLAM4A0QDU
ANcA2QDbAN0A3wDhAOMA5QDnAOkA6wDtAO8A9gD+AQoBDAEOARABVQFaAWMBbgFxAXcBgAGJAYsB
kgGaAaUBpwGzAbUBtwG5AbsBvQG/AcEBwwHFAccByQHVAdcB2QHbAd0B3wHhAeMB5QHnAekB6wHw
Af4CDAIfAiYCMwI4AkcCTAJXAmUCdwKCAogCjQKmAsEC4QLlAvQC/wMfAyQDKAM+A0sDTgNTA1cD
awAAAAAAAAIBAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAN5TxEI5C8vIFNUQVJUIFdFQlRSRU5EUyBK
UyBUQUcKdmFyIGd0cmFja2V2ZW50cz1mYWxzZTsKdmFyIGdkY3NpZD0iZGNzeW01N3l3MTAwMDBz
MXM4ZzBib296dF85dDF4IjsKdmFyIGdmcGNkb209Ii5ueXRpbWVzLmNvbSI7CnZhciBnZG9tYWlu
PSJ3dC5vLm55dGltZXMuY29tIjsKdmFyIGpzX2hvc3Q7CmlmICh3aW5kb3cubG9jYXRpb24ucHJv
dG9jb2wuaW5kZXhPZignaHR0cHM6Jyk9PS0xKSB7CiAganNfaG9zdCA9ICJodHRwOi8vZ3JhcGhp
Y3M4Lm55dGltZXMuY29tL2pzL2FwcC9hbmFseXRpY3MvIjsKfSBlbHNlIHsKICBqc19ob3N0ID0g
Imh0dHBzOi8vc2VsZWN0Lm55dGltZXMuY29tL2pzL2FwcC9hbmFseXRpY3MvIjsKfQoKLy8gSW5j
bHVkZSBXZWJUcmVuZHMgd3RpZC5qcwp2YXIgd3RfaW5pdE9iaiA9IHsgZW5hYmxlZDp0cnVlLCBm
cGM6IldUX0ZQQyIsIGRvbWFpbjpnZG9tYWluLCBkY3NpZDpnZGNzaWQgfTsKaWYgKHd0X2luaXRP
YmouZW5hYmxlZCYmKGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKHd0X2luaXRPYmouZnBjKyI9Iik9
PS0xKSYmKGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJXVExPUFRPVVQ9Iik9PS0xKSl7CnZhciB3
dGlkX2pzX2hvc3Q9Imh0dHAiKyh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wuaW5kZXhPZignaHR0
cHM6Jyk9PTA/J3MnOicnKSsiOi8vIit3dF9pbml0T2JqLmRvbWFpbisiLyIrd3RfaW5pdE9iai5k
Y3NpZCsiLyIKdmFyIHd0aWRqcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwp3
dGlkanMuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpOwp3dGlkanMuc2V0
QXR0cmlidXRlKCdzcmMnLCB3dGlkX2pzX2hvc3QrJ3d0aWQuanMnKTsKZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ2hlYWQnKS5pdGVtKDApLmFwcGVuZENoaWxkKHd0aWRqcyk7Cn0KCnZh
ciB3dEluYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwp3dEluYy5zZXRBdHRy
aWJ1dGUoJ2xhbmd1YWdlJywgJ2phdmFzY3JpcHQnKTsKd3RJbmMuc2V0QXR0cmlidXRlKCd0eXBl
JywgJ3RleHQvamF2YXNjcmlwdCcpOwp3dEluYy5zZXRBdHRyaWJ1dGUoJ3NyYycsIGpzX2hvc3Qr
J2NvbnRyb2xsZXJfdjEuMS5qcycpOwpkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVh
ZCcpLml0ZW0oMCkuYXBwZW5kQ2hpbGQod3RJbmMpOwovLyBFTkQgV0VCVFJFTkRTIEpTIFRBRwoK
Ly8gU1RBUlQgUkVWRU5VRSBTQ0lFTkNFIFBJWEVMTElORyBDT0RFCnZhciByZXZTYyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwpyZXZTYy5zZXRBdHRyaWJ1dGUoJ2xhbmd1YWdl
JywgJ2phdmFzY3JpcHQnKTsKcmV2U2Muc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvamF2YXNj
cmlwdCcpOwpyZXZTYy5zZXRBdHRyaWJ1dGUoJ3NyYycsIGpzX2hvc3QrJ2d3LmpzP2NzaWQ9SDA3
NzA3Jyk7CmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJykuaXRlbSgwKS5hcHBl
bmRDaGlsZChyZXZTYyk7Cgp2YXIgY3VzdG9tUmV2U2NpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2NyaXB0Jyk7CmN1c3RvbVJldlNjaS5zZXRBdHRyaWJ1dGUoJ2xhbmd1YWdlJywgJ2phdmFz
Y3JpcHQnKTsKY3VzdG9tUmV2U2NpLnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0L2phdmFzY3Jp
cHQnKTsKY3VzdG9tUmV2U2NpLnNldEF0dHJpYnV0ZSgnc3JjJywganNfaG9zdCsncmV2ZW51ZXNj
aWVuY2UuanMnKTsKZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKS5pdGVtKDAp
LmFwcGVuZENoaWxkKGN1c3RvbVJldlNjaSk7Ci8vIEVORCBSRVZFTlVFIFNDSUVOQ0UgUElYRUxM
SU5HIENPREUKCgovLyBMb2FkIFRpbWVzUGVvcGxlCmlmIChuYXZpZ2F0b3IudXNlckFnZW50Lmlu
ZGV4T2YoJ0FwcGxlV2ViS2l0LzQxJykgPT0gLTEgJiYgIXdpbmRvdy5vcGVyYSkgewogIGlmKCF3
aW5kb3cuVGltZXNQZW9wbGUpIHsKICAgIGRvY3VtZW50LndyaXRlKCc8c2NyaXB0IHNyYz0iaHR0
cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvdGltZXNwZW9wbGUvcHJlbG9hZGVyLmpz
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48XC9zY3JpcHQ+Jyk7CiAg
fQogIGRvY3VtZW50LndyaXRlKCc8c2NyaXB0IHNyYz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVz
LmNvbS9qcy9hcHAvdGltZXNwZW9wbGUvbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij48XC9zY3JpcHQ+Jyk7Cn0K1AAFABEABwAIAQ8BEAAUARFfEDlodHRw
Oi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC90aW1lc3Blb3BsZS9sb2FkZXIuanNPEQSj
YnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEH
CF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QJAsMJiwtMx40NVNU
VVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtvcFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQd
JVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAjgAKAIhAIEACA
BoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QOWh0dHA6Ly9n
cmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL3RpbWVzcGVvcGxlL2xvYWRlci5qc9IuLzAxWCRj
bGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wla46QQyNMNNjc4OUZXTlMu
a2V5c1pOUy5vYmplY3RzgCGsOjs8PT4/QEFCQ0RFgAmACoALgAyADYAOgA+AEIARgBKAE4AUrEdI
SUpLTE1OT1BRUoAVgBaAF4AYgBmAGoAbgByAHYAegB+AIFREYXRlXUNhY2hlLUNvbnRyb2xdTGFz
dC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzXxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJcQ29udGVu
dC1UeXBlXkNvbnRlbnQtTGVuZ3RoXk50Y29lbnQtTGVuZ3RoVEV0YWdaQ29ubmVjdGlvblRWYXJ5
XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NCBHTVRfEBdwcml2YXRlLCBtYXgtYWdlPTQ1NTA5
M18QHVdlZCwgMDggT2N0IDIwMDggMTc6NTE6MTggR01UVWJ5dGVzVGd6aXBfEBZTdW4tT05FLVdl
Yi1TZXJ2ZXIvNi4xXxAYYXBwbGljYXRpb24veC1qYXZhc2NyaXB0UzQyMVQxMDA4XiIzZjAtNDhl
Y2YzMTYiWmtlZXAtYWxpdmVfEA9BY2NlcHQtRW5jb2RpbmfSLi9sbaNtbjJfEBNOU011dGFibGVE
aWN0aW9uYXJ5XE5TRGljdGlvbmFyeRED8NIuL3Fyo3JzMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5T
VVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIsAkQCsALMAtgC5AL0AwQDEAMcAygDN
ANAA0wDWANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPEA+AEAAQwBDgEQARIBTgFTAVwBZwFqAXAB
eQGCAYQBiwGTAZ4BoAGtAa8BsQGzAbUBtwG5AbsBvQG/AcEBwwHFAdIB1AHWAdgB2gHcAd4B4AHi
AeQB5gHoAeoB7wH9AgsCGQIsAjMCQAJPAl4CYwJuAnMCkwKtAs0C0wLYAvEDDAMQAxUDJAMvA0ED
RgNKA2ADbQNwA3UDeQONAAAAAAAAAgEAAAAAAAAAdAAAAAAAAAAAAAAAAAAAA5tPEQPwLyoKJElk
JAooYykgMjAwOCBUaGUgTmV3IFlvcmsgVGltZXMgQ29tcGFueQoqLwoKKGZ1bmN0aW9uKCkgewog
IGlmIChUaW1lc1Blb3BsZS5Db250cm9sbGVyKSByZXR1cm47CiAgaWYgKFRpbWVzUGVvcGxlLlVS
SUxpc3QuYWxsb3dzQ3VycmVudEhvc3QoKSAmJiBUaW1lc1Blb3BsZS5VUklMaXN0LmFsbG93c0N1
cnJlbnRVUkkoKSkgewogICAgdmFyIGpzX2hvc3QgPSBUUENPTkZJRy5qc19ob3N0OwogICAgdmFy
IHJlcXVpcmUgPSBUaW1lc1Blb3BsZS5yZXF1aXJlOwoKICAgIGlmICghd2luZG93LlByb3RvdHlw
ZSB8fCBQcm90b3R5cGUuVmVyc2lvbiA8ICcxLjYuMC4yJykgewogICAgICBUaW1lc1Blb3BsZS5y
ZXF1aXJlKGpzX2hvc3QgKyAnL2pzL2FwcC9saWIvcHJvdG90eXBlLzEuNi4wLjIvcHJvdG90eXBl
LmpzJyk7CiAgICB9CgogICAgLy9mb3JjZSBsb2FkIHNjcmlwdGFjdWxvdXMgc2luY2Ugd2UgY2Fu
J3QgZGV0ZXJtaW5lIHRoZSB2ZXJzaW9uIAogICAgcmVxdWlyZShqc19ob3N0ICsgJy9qcy9hcHAv
bGliL3NjcmlwdGFjdWxvdXMvMS44LjEvYnVpbGRlci5qcycpOwogICAgcmVxdWlyZShqc19ob3N0
ICsgJy9qcy9hcHAvbGliL3NjcmlwdGFjdWxvdXMvMS44LjEvZWZmZWN0cy5qcycpOwogICAgcmVx
dWlyZShqc19ob3N0ICsgJy9qcy9hcHAvbGliL3NjcmlwdGFjdWxvdXMvMS44LjEvZHJhZ2Ryb3Au
anMnKTsgIAogICAgcmVxdWlyZShqc19ob3N0ICsgJy9qcy9hcHAvbGliL3NjcmlwdGFjdWxvdXMv
MS44LjEvY29udHJvbHMuanMnKTsgICAgCgogICAgaWYgKCF3aW5kb3cuTllURCB8fCAhTllURC5D
b29raWVzKSB7CiAgICAgIHJlcXVpcmUoanNfaG9zdCArICcvanMvYXBwL2xpYi9OWVRELzAuMC4x
L2Nvb2tpZS5qcycpOwogICAgfQoKICAgIHJlcXVpcmUoanNfaG9zdCArICcvanMvYXBwL3RpbWVz
cGVvcGxlL2RlZmF1bHRmZWVkLmpzJyk7CiAgICByZXF1aXJlKGpzX2hvc3QgKyAnL2pzL2FwcC90
aW1lc3Blb3BsZS9idWlsZC5qcycpOwogIH0KfSkoKTsK1AAFABEABwAIARMBFAAUARVfEEZodHRw
Oi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC9saWIvc2NyaXB0YWN1bG91cy8xLjguMS9i
dWlsZGVyLmpzTxEEWGJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRv
YmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKv
ECALDCYsLTMeNDVPUFFSU1RVVldYWVpbXF1eX2BhYmNnaFUkbnVsbN0NDg8QERITFBUWFxgZGhsc
HR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAf
gAKAHhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18Q
Rmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2xpYi9zY3JpcHRhY3Vsb3VzLzEu
OC4xL2J1aWxkZXIuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0
I0GtkfsJdsC1EMjTDTY3ODlEV05TLmtleXNaTlMub2JqZWN0c4Adqjo7PD0+P0BBQkOACYAKgAuA
DIANgA6AD4AQgBGAEqpFRkdISUpLTE1OgBOAFIAVgBaAF4AYgBmAGoAbgBxdTGFzdC1Nb2RpZmll
ZF1BY2NlcHQtUmFuZ2VzXxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJcQ29udGVudC1UeXBlXkNv
bnRlbnQtTGVuZ3RoVERhdGVURXRhZ1pDb25uZWN0aW9uVFZhcnlfEB1GcmksIDEzIEp1biAyMDA4
IDE1OjE2OjI0IEdNVFVieXRlc1RnemlwXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMV8QGGFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdFQxODU5XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NCBHTVRf
EA8iMTJhMi00ODUyOGY0OCJaa2VlcC1hbGl2ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2Rlo2VmMl8Q
E05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5ERKi0i4vaWqjamsyXxARTlNIVFRQVVJM
UmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAhwCNAKgArwCyALUA
uQC9AMAAwwDGAMkAzADPANIA1QDXANkA2wDdAN8A4QDjAOUA5wDpAOsA7QD0APwBCAEKAQwBDgFX
AVwBZQFwAXMBeQGCAYsBjQGUAZwBpwGpAbQBtgG4AboBvAG+AcABwgHEAcYByAHTAdUB1wHZAdsB
3QHfAeEB4wHlAecB9QIDAhYCHQIqAjkCPgJDAk4CUwJzAnkCfgKXArICtwLXAukC9AMGAwsDDwMl
AzIDNQM6Az4DUgAAAAAAAAIBAAAAAAAAAGwAAAAAAAAAAAAAAAAAAANgTxESoi8vIHNjcmlwdC5h
Y3Vsby51cyBidWlsZGVyLmpzIHYxLjguMSwgVGh1IEphbiAwMyAyMjowNzoxMiAtMDUwMCAyMDA4
CgovLyBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBUaG9tYXMgRnVjaHMgKGh0dHA6Ly9zY3JpcHQu
YWN1bG8udXMsIGh0dHA6Ly9taXIuYWN1bG8udXMpCi8vCi8vIHNjcmlwdC5hY3Vsby51cyBpcyBm
cmVlbHkgZGlzdHJpYnV0YWJsZSB1bmRlciB0aGUgdGVybXMgb2YgYW4gTUlULXN0eWxlIGxpY2Vu
c2UuCi8vIEZvciBkZXRhaWxzLCBzZWUgdGhlIHNjcmlwdC5hY3Vsby51cyB3ZWIgc2l0ZTogaHR0
cDovL3NjcmlwdC5hY3Vsby51cy8KCnZhciBCdWlsZGVyID0gewogIE5PREVNQVA6IHsKICAgIEFS
RUE6ICdtYXAnLAogICAgQ0FQVElPTjogJ3RhYmxlJywKICAgIENPTDogJ3RhYmxlJywKICAgIENP
TEdST1VQOiAndGFibGUnLAogICAgTEVHRU5EOiAnZmllbGRzZXQnLAogICAgT1BUR1JPVVA6ICdz
ZWxlY3QnLAogICAgT1BUSU9OOiAnc2VsZWN0JywKICAgIFBBUkFNOiAnb2JqZWN0JywKICAgIFRC
T0RZOiAndGFibGUnLAogICAgVEQ6ICd0YWJsZScsCiAgICBURk9PVDogJ3RhYmxlJywKICAgIFRI
OiAndGFibGUnLAogICAgVEhFQUQ6ICd0YWJsZScsCiAgICBUUjogJ3RhYmxlJwogIH0sCiAgLy8g
bm90ZTogRm9yIEZpcmVmb3ggPCAxLjUsIE9QVElPTiBhbmQgT1BUR1JPVVAgdGFncyBhcmUgY3Vy
cmVudGx5IGJyb2tlbiwKICAvLyAgICAgICBkdWUgdG8gYSBGaXJlZm94IGJ1ZwogIG5vZGU6IGZ1
bmN0aW9uKGVsZW1lbnROYW1lKSB7CiAgICBlbGVtZW50TmFtZSA9IGVsZW1lbnROYW1lLnRvVXBw
ZXJDYXNlKCk7CiAgICAKICAgIC8vIHRyeSBpbm5lckhUTUwgYXBwcm9hY2gKICAgIHZhciBwYXJl
bnRUYWcgPSB0aGlzLk5PREVNQVBbZWxlbWVudE5hbWVdIHx8ICdkaXYnOwogICAgdmFyIHBhcmVu
dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHBhcmVudFRhZyk7CiAgICB0cnkgeyAv
LyBwcmV2ZW50IElFICJmZWF0dXJlIjogaHR0cDovL2Rldi5ydWJ5b25yYWlscy5vcmcvdGlja2V0
LzI3MDcKICAgICAgcGFyZW50RWxlbWVudC5pbm5lckhUTUwgPSAiPCIgKyBlbGVtZW50TmFtZSAr
ICI+PC8iICsgZWxlbWVudE5hbWUgKyAiPiI7CiAgICB9IGNhdGNoKGUpIHt9CiAgICB2YXIgZWxl
bWVudCA9IHBhcmVudEVsZW1lbnQuZmlyc3RDaGlsZCB8fCBudWxsOwogICAgICAKICAgIC8vIHNl
ZSBpZiBicm93c2VyIGFkZGVkIHdyYXBwaW5nIHRhZ3MKICAgIGlmKGVsZW1lbnQgJiYgKGVsZW1l
bnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpICE9IGVsZW1lbnROYW1lKSkKICAgICAgZWxlbWVudCA9
IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZWxlbWVudE5hbWUpWzBdOwogICAgCiAgICAv
LyBmYWxsYmFjayB0byBjcmVhdGVFbGVtZW50IGFwcHJvYWNoCiAgICBpZighZWxlbWVudCkgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudE5hbWUpOwogICAgCiAgICAvLyBh
Ym9ydCBpZiBub3RoaW5nIGNvdWxkIGJlIGNyZWF0ZWQKICAgIGlmKCFlbGVtZW50KSByZXR1cm47
CgogICAgLy8gYXR0cmlidXRlcyAob3IgdGV4dCkKICAgIGlmKGFyZ3VtZW50c1sxXSkKICAgICAg
aWYodGhpcy5faXNTdHJpbmdPck51bWJlcihhcmd1bWVudHNbMV0pIHx8CiAgICAgICAgKGFyZ3Vt
ZW50c1sxXSBpbnN0YW5jZW9mIEFycmF5KSB8fAogICAgICAgIGFyZ3VtZW50c1sxXS50YWdOYW1l
KSB7CiAgICAgICAgICB0aGlzLl9jaGlsZHJlbihlbGVtZW50LCBhcmd1bWVudHNbMV0pOwogICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICB2YXIgYXR0cnMgPSB0aGlzLl9hdHRyaWJ1dGVzKGFyZ3Vt
ZW50c1sxXSk7CiAgICAgICAgICBpZihhdHRycy5sZW5ndGgpIHsKICAgICAgICAgICAgdHJ5IHsg
Ly8gcHJldmVudCBJRSAiZmVhdHVyZSI6IGh0dHA6Ly9kZXYucnVieW9ucmFpbHMub3JnL3RpY2tl
dC8yNzA3CiAgICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbm5lckhUTUwgPSAiPCIgK2VsZW1l
bnROYW1lICsgIiAiICsKICAgICAgICAgICAgICAgIGF0dHJzICsgIj48LyIgKyBlbGVtZW50TmFt
ZSArICI+IjsKICAgICAgICAgICAgfSBjYXRjaChlKSB7fQogICAgICAgICAgICBlbGVtZW50ID0g
cGFyZW50RWxlbWVudC5maXJzdENoaWxkIHx8IG51bGw7CiAgICAgICAgICAgIC8vIHdvcmthcm91
bmQgZmlyZWZveCAxLjAuWCBidWcKICAgICAgICAgICAgaWYoIWVsZW1lbnQpIHsKICAgICAgICAg
ICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50TmFtZSk7CiAgICAg
ICAgICAgICAgZm9yKGF0dHIgaW4gYXJndW1lbnRzWzFdKSAKICAgICAgICAgICAgICAgIGVsZW1l
bnRbYXR0ciA9PSAnY2xhc3MnID8gJ2NsYXNzTmFtZScgOiBhdHRyXSA9IGFyZ3VtZW50c1sxXVth
dHRyXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihlbGVtZW50LnRhZ05hbWUudG9VcHBl
ckNhc2UoKSAhPSBlbGVtZW50TmFtZSkKICAgICAgICAgICAgICBlbGVtZW50ID0gcGFyZW50RWxl
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShlbGVtZW50TmFtZSlbMF07CiAgICAgICAgICB9CiAg
ICAgICAgfSAKCiAgICAvLyB0ZXh0LCBvciBhcnJheSBvZiBjaGlsZHJlbgogICAgaWYoYXJndW1l
bnRzWzJdKQogICAgICB0aGlzLl9jaGlsZHJlbihlbGVtZW50LCBhcmd1bWVudHNbMl0pOwoKICAg
ICByZXR1cm4gZWxlbWVudDsKICB9LAogIF90ZXh0OiBmdW5jdGlvbih0ZXh0KSB7CiAgICAgcmV0
dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOwogIH0sCgogIEFUVFJfTUFQOiB7CiAg
ICAnY2xhc3NOYW1lJzogJ2NsYXNzJywKICAgICdodG1sRm9yJzogJ2ZvcicKICB9LAoKICBfYXR0
cmlidXRlczogZnVuY3Rpb24oYXR0cmlidXRlcykgewogICAgdmFyIGF0dHJzID0gW107CiAgICBm
b3IoYXR0cmlidXRlIGluIGF0dHJpYnV0ZXMpCiAgICAgIGF0dHJzLnB1c2goKGF0dHJpYnV0ZSBp
biB0aGlzLkFUVFJfTUFQID8gdGhpcy5BVFRSX01BUFthdHRyaWJ1dGVdIDogYXR0cmlidXRlKSAr
CiAgICAgICAgICAnPSInICsgYXR0cmlidXRlc1thdHRyaWJ1dGVdLnRvU3RyaW5nKCkuZXNjYXBl
SFRNTCgpLmdzdWIoLyIvLCcmcXVvdDsnKSArICciJyk7CiAgICByZXR1cm4gYXR0cnMuam9pbigi
ICIpOwogIH0sCiAgX2NoaWxkcmVuOiBmdW5jdGlvbihlbGVtZW50LCBjaGlsZHJlbikgewogICAg
aWYoY2hpbGRyZW4udGFnTmFtZSkgewogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNoaWxkcmVu
KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYodHlwZW9mIGNoaWxkcmVuPT0nb2JqZWN0Jykg
eyAvLyBhcnJheSBjYW4gaG9sZCBub2RlcyBhbmQgdGV4dAogICAgICBjaGlsZHJlbi5mbGF0dGVu
KCkuZWFjaCggZnVuY3Rpb24oZSkgewogICAgICAgIGlmKHR5cGVvZiBlPT0nb2JqZWN0JykKICAg
ICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZSkKICAgICAgICBlbHNlCiAgICAgICAgICBpZihC
dWlsZGVyLl9pc1N0cmluZ09yTnVtYmVyKGUpKQogICAgICAgICAgICBlbGVtZW50LmFwcGVuZENo
aWxkKEJ1aWxkZXIuX3RleHQoZSkpOwogICAgICB9KTsKICAgIH0gZWxzZQogICAgICBpZihCdWls
ZGVyLl9pc1N0cmluZ09yTnVtYmVyKGNoaWxkcmVuKSkKICAgICAgICBlbGVtZW50LmFwcGVuZENo
aWxkKEJ1aWxkZXIuX3RleHQoY2hpbGRyZW4pKTsKICB9LAogIF9pc1N0cmluZ09yTnVtYmVyOiBm
dW5jdGlvbihwYXJhbSkgewogICAgcmV0dXJuKHR5cGVvZiBwYXJhbT09J3N0cmluZycgfHwgdHlw
ZW9mIHBhcmFtPT0nbnVtYmVyJyk7CiAgfSwKICBidWlsZDogZnVuY3Rpb24oaHRtbCkgewogICAg
dmFyIGVsZW1lbnQgPSB0aGlzLm5vZGUoJ2RpdicpOwogICAgJChlbGVtZW50KS51cGRhdGUoaHRt
bC5zdHJpcCgpKTsKICAgIHJldHVybiBlbGVtZW50LmRvd24oKTsKICB9LAogIGR1bXA6IGZ1bmN0
aW9uKHNjb3BlKSB7IAogICAgaWYodHlwZW9mIHNjb3BlICE9ICdvYmplY3QnICYmIHR5cGVvZiBz
Y29wZSAhPSAnZnVuY3Rpb24nKSBzY29wZSA9IHdpbmRvdzsgLy9nbG9iYWwgc2NvcGUgCiAgCiAg
ICB2YXIgdGFncyA9ICgiQSBBQkJSIEFDUk9OWU0gQUREUkVTUyBBUFBMRVQgQVJFQSBCIEJBU0Ug
QkFTRUZPTlQgQkRPIEJJRyBCTE9DS1FVT1RFIEJPRFkgIiArCiAgICAgICJCUiBCVVRUT04gQ0FQ
VElPTiBDRU5URVIgQ0lURSBDT0RFIENPTCBDT0xHUk9VUCBERCBERUwgREZOIERJUiBESVYgREwg
RFQgRU0gRklFTERTRVQgIiArCiAgICAgICJGT05UIEZPUk0gRlJBTUUgRlJBTUVTRVQgSDEgSDIg
SDMgSDQgSDUgSDYgSEVBRCBIUiBIVE1MIEkgSUZSQU1FIElNRyBJTlBVVCBJTlMgSVNJTkRFWCAi
KwogICAgICAiS0JEIExBQkVMIExFR0VORCBMSSBMSU5LIE1BUCBNRU5VIE1FVEEgTk9GUkFNRVMg
Tk9TQ1JJUFQgT0JKRUNUIE9MIE9QVEdST1VQIE9QVElPTiBQICIrCiAgICAgICJQQVJBTSBQUkUg
USBTIFNBTVAgU0NSSVBUIFNFTEVDVCBTTUFMTCBTUEFOIFNUUklLRSBTVFJPTkcgU1RZTEUgU1VC
IFNVUCBUQUJMRSBUQk9EWSBURCAiKwogICAgICAiVEVYVEFSRUEgVEZPT1QgVEggVEhFQUQgVElU
TEUgVFIgVFQgVSBVTCBWQVIiKS5zcGxpdCgvXHMrLyk7CiAgCiAgICB0YWdzLmVhY2goIGZ1bmN0
aW9uKHRhZyl7IAogICAgICBzY29wZVt0YWddID0gZnVuY3Rpb24oKSB7IAogICAgICAgIHJldHVy
biBCdWlsZGVyLm5vZGUuYXBwbHkoQnVpbGRlciwgW3RhZ10uY29uY2F0KCRBKGFyZ3VtZW50cykp
KTsgIAogICAgICB9IAogICAgfSk7CiAgfQp9CtQABQARAAcACAEXARgAFAEZXxBGaHR0cDovL2dy
YXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvbGliL3NjcmlwdGFjdWxvdXMvMS44LjEvZWZmZWN0
cy5qc08RBJBicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0
cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAiCwwm
LC0zHjQ1UVJTVFVWV1hZWltcXV5fYGFiY2RlZmdrbFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4f
ICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAhgAKA
IBAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QRmh0
dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2xpYi9zY3JpcHRhY3Vsb3VzLzEuOC4x
L2VmZmVjdHMuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0Gt
kfsJeIUrEMjTDTY3ODlFV05TLmtleXNaTlMub2JqZWN0c4Afqzo7PD0+P0BBQkNEgAmACoALgAyA
DYAOgA+AEIARgBKAE6tGR0hJSktMTU5PUIAUgBWAFoAXgBiAGYAagBuAHIAdgB5dTGFzdC1Nb2Rp
ZmllZF1DYWNoZS1Db250cm9sXUFjY2VwdC1SYW5nZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZl
clxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25UVmFyeV8Q
HUZyaSwgMTMgSnVuIDIwMDggMTU6MTY6MjQgR01UXxAXcHJpdmF0ZSwgbWF4LWFnZT0zMTMyNDRV
Ynl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNhdGlvbi94LWphdmFz
Y3JpcHRUOTczM18QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UXxAPIjk4NGEtNDg1Mjhm
NDgiWmtlZXAtYWxpdmVfEA9BY2NlcHQtRW5jb2RpbmfSLi9oaaNpajJfEBNOU011dGFibGVEaWN0
aW9uYXJ5XE5TRGljdGlvbmFyeRGYStIuL21uo25vMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJM
UmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIkAjwCqALEAtAC3ALsAvwDCAMUAyADLAM4A
0QDUANcA2QDbAN0A3wDhAOMA5QDnAOkA6wDtAO8A9gD+AQoBDAEOARABWQFeAWcBcgF1AXsBhAGN
AY8BlgGeAakBqwG3AbkBuwG9Ab8BwQHDAcUBxwHJAcsBzQHZAdsB3QHfAeEB4wHlAecB6QHrAe0B
7wH9AgsCGQIsAjMCQAJPAlQCWQJkAmkCiQKjAqkCrgLHAuIC5wMHAxkDJAM2AzsDPwNVA2IDZQNq
A24DggAAAAAAAAIBAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAOQTxGYSi8vIHNjcmlwdC5hY3Vsby51
cyBlZmZlY3RzLmpzIHYxLjguMSwgVGh1IEphbiAwMyAyMjowNzoxMiAtMDUwMCAyMDA4CgovLyBD
b3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBUaG9tYXMgRnVjaHMgKGh0dHA6Ly9zY3JpcHQuYWN1bG8u
dXMsIGh0dHA6Ly9taXIuYWN1bG8udXMpCi8vIENvbnRyaWJ1dG9yczoKLy8gIEp1c3RpbiBQYWxt
ZXIgKGh0dHA6Ly9lbmN5dGVtZWRpYS5jb20vKQovLyAgTWFyayBQaWxncmltIChodHRwOi8vZGl2
ZWludG9tYXJrLm9yZy8pCi8vICBNYXJ0aW4gQmlhbGFzaW5raQovLyAKLy8gc2NyaXB0LmFjdWxv
LnVzIGlzIGZyZWVseSBkaXN0cmlidXRhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBhbiBNSVQtc3R5
bGUgbGljZW5zZS4KLy8gRm9yIGRldGFpbHMsIHNlZSB0aGUgc2NyaXB0LmFjdWxvLnVzIHdlYiBz
aXRlOiBodHRwOi8vc2NyaXB0LmFjdWxvLnVzLyAKCi8vIGNvbnZlcnRzIHJnYigpIGFuZCAjeHh4
IHRvICN4eHh4eHggZm9ybWF0LCAgCi8vIHJldHVybnMgc2VsZiAob3IgZmlyc3QgYXJndW1lbnQp
IGlmIG5vdCBjb252ZXJ0YWJsZSAgClN0cmluZy5wcm90b3R5cGUucGFyc2VDb2xvciA9IGZ1bmN0
aW9uKCkgeyAgCiAgdmFyIGNvbG9yID0gJyMnOwogIGlmICh0aGlzLnNsaWNlKDAsNCkgPT0gJ3Jn
YignKSB7ICAKICAgIHZhciBjb2xzID0gdGhpcy5zbGljZSg0LHRoaXMubGVuZ3RoLTEpLnNwbGl0
KCcsJyk7ICAKICAgIHZhciBpPTA7IGRvIHsgY29sb3IgKz0gcGFyc2VJbnQoY29sc1tpXSkudG9D
b2xvclBhcnQoKSB9IHdoaWxlICgrK2k8Myk7ICAKICB9IGVsc2UgeyAgCiAgICBpZiAodGhpcy5z
bGljZSgwLDEpID09ICcjJykgeyAgCiAgICAgIGlmICh0aGlzLmxlbmd0aD09NCkgZm9yKHZhciBp
PTE7aTw0O2krKykgY29sb3IgKz0gKHRoaXMuY2hhckF0KGkpICsgdGhpcy5jaGFyQXQoaSkpLnRv
TG93ZXJDYXNlKCk7ICAKICAgICAgaWYgKHRoaXMubGVuZ3RoPT03KSBjb2xvciA9IHRoaXMudG9M
b3dlckNhc2UoKTsgIAogICAgfSAgCiAgfSAgCiAgcmV0dXJuIChjb2xvci5sZW5ndGg9PTcgPyBj
b2xvciA6IChhcmd1bWVudHNbMF0gfHwgdGhpcykpOyAgCn07CgovKi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KCkVsZW1lbnQuY29sbGVjdFRleHROb2RlcyA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsgIAogIHJl
dHVybiAkQSgkKGVsZW1lbnQpLmNoaWxkTm9kZXMpLmNvbGxlY3QoIGZ1bmN0aW9uKG5vZGUpIHsK
ICAgIHJldHVybiAobm9kZS5ub2RlVHlwZT09MyA/IG5vZGUubm9kZVZhbHVlIDogCiAgICAgIChu
b2RlLmhhc0NoaWxkTm9kZXMoKSA/IEVsZW1lbnQuY29sbGVjdFRleHROb2Rlcyhub2RlKSA6ICcn
KSk7CiAgfSkuZmxhdHRlbigpLmpvaW4oJycpOwp9OwoKRWxlbWVudC5jb2xsZWN0VGV4dE5vZGVz
SWdub3JlQ2xhc3MgPSBmdW5jdGlvbihlbGVtZW50LCBjbGFzc05hbWUpIHsgIAogIHJldHVybiAk
QSgkKGVsZW1lbnQpLmNoaWxkTm9kZXMpLmNvbGxlY3QoIGZ1bmN0aW9uKG5vZGUpIHsKICAgIHJl
dHVybiAobm9kZS5ub2RlVHlwZT09MyA/IG5vZGUubm9kZVZhbHVlIDogCiAgICAgICgobm9kZS5o
YXNDaGlsZE5vZGVzKCkgJiYgIUVsZW1lbnQuaGFzQ2xhc3NOYW1lKG5vZGUsY2xhc3NOYW1lKSkg
PyAKICAgICAgICBFbGVtZW50LmNvbGxlY3RUZXh0Tm9kZXNJZ25vcmVDbGFzcyhub2RlLCBjbGFz
c05hbWUpIDogJycpKTsKICB9KS5mbGF0dGVuKCkuam9pbignJyk7Cn07CgpFbGVtZW50LnNldENv
bnRlbnRab29tID0gZnVuY3Rpb24oZWxlbWVudCwgcGVyY2VudCkgewogIGVsZW1lbnQgPSAkKGVs
ZW1lbnQpOyAgCiAgZWxlbWVudC5zZXRTdHlsZSh7Zm9udFNpemU6IChwZXJjZW50LzEwMCkgKyAn
ZW0nfSk7ICAgCiAgaWYgKFByb3RvdHlwZS5Ccm93c2VyLldlYktpdCkgd2luZG93LnNjcm9sbEJ5
KDAsMCk7CiAgcmV0dXJuIGVsZW1lbnQ7Cn07CgpFbGVtZW50LmdldElubGluZU9wYWNpdHkgPSBm
dW5jdGlvbihlbGVtZW50KXsKICByZXR1cm4gJChlbGVtZW50KS5zdHlsZS5vcGFjaXR5IHx8ICcn
Owp9OwoKRWxlbWVudC5mb3JjZVJlcmVuZGVyaW5nID0gZnVuY3Rpb24oZWxlbWVudCkgewogIHRy
eSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBuID0gZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoJyAnKTsKICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQobik7CiAgICBlbGVtZW50LnJl
bW92ZUNoaWxkKG4pOwogIH0gY2F0Y2goZSkgeyB9Cn07CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
CnZhciBFZmZlY3QgPSB7CiAgX2VsZW1lbnREb2VzTm90RXhpc3RFcnJvcjogewogICAgbmFtZTog
J0VsZW1lbnREb2VzTm90RXhpc3RFcnJvcicsCiAgICBtZXNzYWdlOiAnVGhlIHNwZWNpZmllZCBE
T00gZWxlbWVudCBkb2VzIG5vdCBleGlzdCwgYnV0IGlzIHJlcXVpcmVkIGZvciB0aGlzIGVmZmVj
dCB0byBvcGVyYXRlJwogIH0sCiAgVHJhbnNpdGlvbnM6IHsKICAgIGxpbmVhcjogUHJvdG90eXBl
LkssCiAgICBzaW5vaWRhbDogZnVuY3Rpb24ocG9zKSB7CiAgICAgIHJldHVybiAoLU1hdGguY29z
KHBvcypNYXRoLlBJKS8yKSArIDAuNTsKICAgIH0sCiAgICByZXZlcnNlOiBmdW5jdGlvbihwb3Mp
IHsKICAgICAgcmV0dXJuIDEtcG9zOwogICAgfSwKICAgIGZsaWNrZXI6IGZ1bmN0aW9uKHBvcykg
ewogICAgICB2YXIgcG9zID0gKCgtTWF0aC5jb3MocG9zKk1hdGguUEkpLzQpICsgMC43NSkgKyBN
YXRoLnJhbmRvbSgpLzQ7CiAgICAgIHJldHVybiBwb3MgPiAxID8gMSA6IHBvczsKICAgIH0sCiAg
ICB3b2JibGU6IGZ1bmN0aW9uKHBvcykgewogICAgICByZXR1cm4gKC1NYXRoLmNvcyhwb3MqTWF0
aC5QSSooOSpwb3MpKS8yKSArIDAuNTsKICAgIH0sCiAgICBwdWxzZTogZnVuY3Rpb24ocG9zLCBw
dWxzZXMpIHsgCiAgICAgIHB1bHNlcyA9IHB1bHNlcyB8fCA1OyAKICAgICAgcmV0dXJuICgKICAg
ICAgICAoKHBvcyAlICgxL3B1bHNlcykpICogcHVsc2VzKS5yb3VuZCgpID09IDAgPyAKICAgICAg
ICAgICAgICAoKHBvcyAqIHB1bHNlcyAqIDIpIC0gKHBvcyAqIHB1bHNlcyAqIDIpLmZsb29yKCkp
IDogCiAgICAgICAgICAxIC0gKChwb3MgKiBwdWxzZXMgKiAyKSAtIChwb3MgKiBwdWxzZXMgKiAy
KS5mbG9vcigpKQogICAgICAgICk7CiAgICB9LAogICAgc3ByaW5nOiBmdW5jdGlvbihwb3MpIHsg
CiAgICAgIHJldHVybiAxIC0gKE1hdGguY29zKHBvcyAqIDQuNSAqIE1hdGguUEkpICogTWF0aC5l
eHAoLXBvcyAqIDYpKTsgCiAgICB9LAogICAgbm9uZTogZnVuY3Rpb24ocG9zKSB7CiAgICAgIHJl
dHVybiAwOwogICAgfSwKICAgIGZ1bGw6IGZ1bmN0aW9uKHBvcykgewogICAgICByZXR1cm4gMTsK
ICAgIH0KICB9LAogIERlZmF1bHRPcHRpb25zOiB7CiAgICBkdXJhdGlvbjogICAxLjAsICAgLy8g
c2Vjb25kcwogICAgZnBzOiAgICAgICAgMTAwLCAgIC8vIDEwMD0gYXNzdW1lIDY2ZnBzIG1heC4K
ICAgIHN5bmM6ICAgICAgIGZhbHNlLCAvLyB0cnVlIGZvciBjb21iaW5pbmcKICAgIGZyb206ICAg
ICAgIDAuMCwKICAgIHRvOiAgICAgICAgIDEuMCwKICAgIGRlbGF5OiAgICAgIDAuMCwKICAgIHF1
ZXVlOiAgICAgICdwYXJhbGxlbCcKICB9LAogIHRhZ2lmeVRleHQ6IGZ1bmN0aW9uKGVsZW1lbnQp
IHsKICAgIHZhciB0YWdpZnlTdHlsZSA9ICdwb3NpdGlvbjpyZWxhdGl2ZSc7CiAgICBpZiAoUHJv
dG90eXBlLkJyb3dzZXIuSUUpIHRhZ2lmeVN0eWxlICs9ICc7em9vbToxJzsKICAgIAogICAgZWxl
bWVudCA9ICQoZWxlbWVudCk7CiAgICAkQShlbGVtZW50LmNoaWxkTm9kZXMpLmVhY2goIGZ1bmN0
aW9uKGNoaWxkKSB7CiAgICAgIGlmIChjaGlsZC5ub2RlVHlwZT09MykgewogICAgICAgIGNoaWxk
Lm5vZGVWYWx1ZS50b0FycmF5KCkuZWFjaCggZnVuY3Rpb24oY2hhcmFjdGVyKSB7CiAgICAgICAg
ICBlbGVtZW50Lmluc2VydEJlZm9yZSgKICAgICAgICAgICAgbmV3IEVsZW1lbnQoJ3NwYW4nLCB7
c3R5bGU6IHRhZ2lmeVN0eWxlfSkudXBkYXRlKAogICAgICAgICAgICAgIGNoYXJhY3RlciA9PSAn
ICcgPyBTdHJpbmcuZnJvbUNoYXJDb2RlKDE2MCkgOiBjaGFyYWN0ZXIpLCAKICAgICAgICAgICAg
ICBjaGlsZCk7CiAgICAgICAgfSk7CiAgICAgICAgRWxlbWVudC5yZW1vdmUoY2hpbGQpOwogICAg
ICB9CiAgICB9KTsKICB9LAogIG11bHRpcGxlOiBmdW5jdGlvbihlbGVtZW50LCBlZmZlY3QpIHsK
ICAgIHZhciBlbGVtZW50czsKICAgIGlmICgoKHR5cGVvZiBlbGVtZW50ID09ICdvYmplY3QnKSB8
fCAKICAgICAgICBPYmplY3QuaXNGdW5jdGlvbihlbGVtZW50KSkgJiYgCiAgICAgICAoZWxlbWVu
dC5sZW5ndGgpKQogICAgICBlbGVtZW50cyA9IGVsZW1lbnQ7CiAgICBlbHNlCiAgICAgIGVsZW1l
bnRzID0gJChlbGVtZW50KS5jaGlsZE5vZGVzOwogICAgICAKICAgIHZhciBvcHRpb25zID0gT2Jq
ZWN0LmV4dGVuZCh7CiAgICAgIHNwZWVkOiAwLjEsCiAgICAgIGRlbGF5OiAwLjAKICAgIH0sIGFy
Z3VtZW50c1syXSB8fCB7IH0pOwogICAgdmFyIG1hc3RlckRlbGF5ID0gb3B0aW9ucy5kZWxheTsK
CiAgICAkQShlbGVtZW50cykuZWFjaCggZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgpIHsKICAgICAg
bmV3IGVmZmVjdChlbGVtZW50LCBPYmplY3QuZXh0ZW5kKG9wdGlvbnMsIHsgZGVsYXk6IGluZGV4
ICogb3B0aW9ucy5zcGVlZCArIG1hc3RlckRlbGF5IH0pKTsKICAgIH0pOwogIH0sCiAgUEFJUlM6
IHsKICAgICdzbGlkZSc6ICBbJ1NsaWRlRG93bicsJ1NsaWRlVXAnXSwKICAgICdibGluZCc6ICBb
J0JsaW5kRG93bicsJ0JsaW5kVXAnXSwKICAgICdhcHBlYXInOiBbJ0FwcGVhcicsJ0ZhZGUnXQog
IH0sCiAgdG9nZ2xlOiBmdW5jdGlvbihlbGVtZW50LCBlZmZlY3QpIHsKICAgIGVsZW1lbnQgPSAk
KGVsZW1lbnQpOwogICAgZWZmZWN0ID0gKGVmZmVjdCB8fCAnYXBwZWFyJykudG9Mb3dlckNhc2Uo
KTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAgIHF1ZXVlOiB7IHBvc2l0
aW9uOidlbmQnLCBzY29wZTooZWxlbWVudC5pZCB8fCAnZ2xvYmFsJyksIGxpbWl0OiAxIH0KICAg
IH0sIGFyZ3VtZW50c1syXSB8fCB7IH0pOwogICAgRWZmZWN0W2VsZW1lbnQudmlzaWJsZSgpID8g
CiAgICAgIEVmZmVjdC5QQUlSU1tlZmZlY3RdWzFdIDogRWZmZWN0LlBBSVJTW2VmZmVjdF1bMF1d
KGVsZW1lbnQsIG9wdGlvbnMpOwogIH0KfTsKCkVmZmVjdC5EZWZhdWx0T3B0aW9ucy50cmFuc2l0
aW9uID0gRWZmZWN0LlRyYW5zaXRpb25zLnNpbm9pZGFsOwoKLyogLS0tLS0tLS0tLS0tLSBjb3Jl
IGVmZmVjdHMgLS0tLS0tLS0tLS0tLSAqLwoKRWZmZWN0LlNjb3BlZFF1ZXVlID0gQ2xhc3MuY3Jl
YXRlKEVudW1lcmFibGUsIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuZWZm
ZWN0cyAgPSBbXTsKICAgIHRoaXMuaW50ZXJ2YWwgPSBudWxsOyAgICAKICB9LAogIF9lYWNoOiBm
dW5jdGlvbihpdGVyYXRvcikgewogICAgdGhpcy5lZmZlY3RzLl9lYWNoKGl0ZXJhdG9yKTsKICB9
LAogIGFkZDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICB2YXIgdGltZXN0YW1wID0gbmV3IERhdGUo
KS5nZXRUaW1lKCk7CiAgICAKICAgIHZhciBwb3NpdGlvbiA9IE9iamVjdC5pc1N0cmluZyhlZmZl
Y3Qub3B0aW9ucy5xdWV1ZSkgPyAKICAgICAgZWZmZWN0Lm9wdGlvbnMucXVldWUgOiBlZmZlY3Qu
b3B0aW9ucy5xdWV1ZS5wb3NpdGlvbjsKICAgIAogICAgc3dpdGNoKHBvc2l0aW9uKSB7CiAgICAg
IGNhc2UgJ2Zyb250JzoKICAgICAgICAvLyBtb3ZlIHVuc3RhcnRlZCBlZmZlY3RzIGFmdGVyIHRo
aXMgZWZmZWN0ICAKICAgICAgICB0aGlzLmVmZmVjdHMuZmluZEFsbChmdW5jdGlvbihlKXsgcmV0
dXJuIGUuc3RhdGU9PSdpZGxlJyB9KS5lYWNoKCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGUu
c3RhcnRPbiAgKz0gZWZmZWN0LmZpbmlzaE9uOwogICAgICAgICAgICBlLmZpbmlzaE9uICs9IGVm
ZmVjdC5maW5pc2hPbjsKICAgICAgICAgIH0pOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlICd3
aXRoLWxhc3QnOgogICAgICAgIHRpbWVzdGFtcCA9IHRoaXMuZWZmZWN0cy5wbHVjaygnc3RhcnRP
bicpLm1heCgpIHx8IHRpbWVzdGFtcDsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAnZW5kJzoK
ICAgICAgICAvLyBzdGFydCBlZmZlY3QgYWZ0ZXIgbGFzdCBxdWV1ZWQgZWZmZWN0IGhhcyBmaW5p
c2hlZAogICAgICAgIHRpbWVzdGFtcCA9IHRoaXMuZWZmZWN0cy5wbHVjaygnZmluaXNoT24nKS5t
YXgoKSB8fCB0aW1lc3RhbXA7CiAgICAgICAgYnJlYWs7CiAgICB9CiAgICAKICAgIGVmZmVjdC5z
dGFydE9uICArPSB0aW1lc3RhbXA7CiAgICBlZmZlY3QuZmluaXNoT24gKz0gdGltZXN0YW1wOwoK
ICAgIGlmICghZWZmZWN0Lm9wdGlvbnMucXVldWUubGltaXQgfHwgKHRoaXMuZWZmZWN0cy5sZW5n
dGggPCBlZmZlY3Qub3B0aW9ucy5xdWV1ZS5saW1pdCkpCiAgICAgIHRoaXMuZWZmZWN0cy5wdXNo
KGVmZmVjdCk7CiAgICAKICAgIGlmICghdGhpcy5pbnRlcnZhbCkKICAgICAgdGhpcy5pbnRlcnZh
bCA9IHNldEludGVydmFsKHRoaXMubG9vcC5iaW5kKHRoaXMpLCAxNSk7CiAgfSwKICByZW1vdmU6
IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgdGhpcy5lZmZlY3RzID0gdGhpcy5lZmZlY3RzLnJlamVj
dChmdW5jdGlvbihlKSB7IHJldHVybiBlPT1lZmZlY3QgfSk7CiAgICBpZiAodGhpcy5lZmZlY3Rz
Lmxlbmd0aCA9PSAwKSB7CiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7CiAgICAg
IHRoaXMuaW50ZXJ2YWwgPSBudWxsOwogICAgfQogIH0sCiAgbG9vcDogZnVuY3Rpb24oKSB7CiAg
ICB2YXIgdGltZVBvcyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgZm9yKHZhciBpPTAsIGxl
bj10aGlzLmVmZmVjdHMubGVuZ3RoO2k8bGVuO2krKykgCiAgICAgIHRoaXMuZWZmZWN0c1tpXSAm
JiB0aGlzLmVmZmVjdHNbaV0ubG9vcCh0aW1lUG9zKTsKICB9Cn0pOwoKRWZmZWN0LlF1ZXVlcyA9
IHsKICBpbnN0YW5jZXM6ICRIKCksCiAgZ2V0OiBmdW5jdGlvbihxdWV1ZU5hbWUpIHsKICAgIGlm
ICghT2JqZWN0LmlzU3RyaW5nKHF1ZXVlTmFtZSkpIHJldHVybiBxdWV1ZU5hbWU7CiAgICAKICAg
IHJldHVybiB0aGlzLmluc3RhbmNlcy5nZXQocXVldWVOYW1lKSB8fAogICAgICB0aGlzLmluc3Rh
bmNlcy5zZXQocXVldWVOYW1lLCBuZXcgRWZmZWN0LlNjb3BlZFF1ZXVlKCkpOwogIH0KfTsKRWZm
ZWN0LlF1ZXVlID0gRWZmZWN0LlF1ZXVlcy5nZXQoJ2dsb2JhbCcpOwoKRWZmZWN0LkJhc2UgPSBD
bGFzcy5jcmVhdGUoewogIHBvc2l0aW9uOiBudWxsLAogIHN0YXJ0OiBmdW5jdGlvbihvcHRpb25z
KSB7CiAgICBmdW5jdGlvbiBjb2RlRm9yRXZlbnQob3B0aW9ucyxldmVudE5hbWUpewogICAgICBy
ZXR1cm4gKAogICAgICAgIChvcHRpb25zW2V2ZW50TmFtZSsnSW50ZXJuYWwnXSA/ICd0aGlzLm9w
dGlvbnMuJytldmVudE5hbWUrJ0ludGVybmFsKHRoaXMpOycgOiAnJykgKwogICAgICAgIChvcHRp
b25zW2V2ZW50TmFtZV0gPyAndGhpcy5vcHRpb25zLicrZXZlbnROYW1lKycodGhpcyk7JyA6ICcn
KQogICAgICApOwogICAgfQogICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy50cmFuc2l0aW9uID09
PSBmYWxzZSkgb3B0aW9ucy50cmFuc2l0aW9uID0gRWZmZWN0LlRyYW5zaXRpb25zLmxpbmVhcjsK
ICAgIHRoaXMub3B0aW9ucyAgICAgID0gT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKHsgfSxF
ZmZlY3QuRGVmYXVsdE9wdGlvbnMpLCBvcHRpb25zIHx8IHsgfSk7CiAgICB0aGlzLmN1cnJlbnRG
cmFtZSA9IDA7CiAgICB0aGlzLnN0YXRlICAgICAgICA9ICdpZGxlJzsKICAgIHRoaXMuc3RhcnRP
biAgICAgID0gdGhpcy5vcHRpb25zLmRlbGF5KjEwMDA7CiAgICB0aGlzLmZpbmlzaE9uICAgICA9
IHRoaXMuc3RhcnRPbisodGhpcy5vcHRpb25zLmR1cmF0aW9uKjEwMDApOwogICAgdGhpcy5mcm9t
VG9EZWx0YSAgPSB0aGlzLm9wdGlvbnMudG8tdGhpcy5vcHRpb25zLmZyb207CiAgICB0aGlzLnRv
dGFsVGltZSAgICA9IHRoaXMuZmluaXNoT24tdGhpcy5zdGFydE9uOwogICAgdGhpcy50b3RhbEZy
YW1lcyAgPSB0aGlzLm9wdGlvbnMuZnBzKnRoaXMub3B0aW9ucy5kdXJhdGlvbjsKICAgIAogICAg
ZXZhbCgndGhpcy5yZW5kZXIgPSBmdW5jdGlvbihwb3MpeyAnKwogICAgICAnaWYgKHRoaXMuc3Rh
dGU9PSJpZGxlIil7dGhpcy5zdGF0ZT0icnVubmluZyI7JysKICAgICAgY29kZUZvckV2ZW50KHRo
aXMub3B0aW9ucywnYmVmb3JlU2V0dXAnKSsKICAgICAgKHRoaXMuc2V0dXAgPyAndGhpcy5zZXR1
cCgpOyc6JycpKyAKICAgICAgY29kZUZvckV2ZW50KHRoaXMub3B0aW9ucywnYWZ0ZXJTZXR1cCcp
KwogICAgICAnfTtpZiAodGhpcy5zdGF0ZT09InJ1bm5pbmciKXsnKwogICAgICAncG9zPXRoaXMu
b3B0aW9ucy50cmFuc2l0aW9uKHBvcykqJyt0aGlzLmZyb21Ub0RlbHRhKycrJyt0aGlzLm9wdGlv
bnMuZnJvbSsnOycrCiAgICAgICd0aGlzLnBvc2l0aW9uPXBvczsnKwogICAgICBjb2RlRm9yRXZl
bnQodGhpcy5vcHRpb25zLCdiZWZvcmVVcGRhdGUnKSsKICAgICAgKHRoaXMudXBkYXRlID8gJ3Ro
aXMudXBkYXRlKHBvcyk7JzonJykrCiAgICAgIGNvZGVGb3JFdmVudCh0aGlzLm9wdGlvbnMsJ2Fm
dGVyVXBkYXRlJykrCiAgICAgICd9fScpOwogICAgCiAgICB0aGlzLmV2ZW50KCdiZWZvcmVTdGFy
dCcpOwogICAgaWYgKCF0aGlzLm9wdGlvbnMuc3luYykKICAgICAgRWZmZWN0LlF1ZXVlcy5nZXQo
T2JqZWN0LmlzU3RyaW5nKHRoaXMub3B0aW9ucy5xdWV1ZSkgPyAKICAgICAgICAnZ2xvYmFsJyA6
IHRoaXMub3B0aW9ucy5xdWV1ZS5zY29wZSkuYWRkKHRoaXMpOwogIH0sCiAgbG9vcDogZnVuY3Rp
b24odGltZVBvcykgewogICAgaWYgKHRpbWVQb3MgPj0gdGhpcy5zdGFydE9uKSB7CiAgICAgIGlm
ICh0aW1lUG9zID49IHRoaXMuZmluaXNoT24pIHsKICAgICAgICB0aGlzLnJlbmRlcigxLjApOwog
ICAgICAgIHRoaXMuY2FuY2VsKCk7CiAgICAgICAgdGhpcy5ldmVudCgnYmVmb3JlRmluaXNoJyk7
CiAgICAgICAgaWYgKHRoaXMuZmluaXNoKSB0aGlzLmZpbmlzaCgpOyAKICAgICAgICB0aGlzLmV2
ZW50KCdhZnRlckZpbmlzaCcpOwogICAgICAgIHJldHVybjsgIAogICAgICB9CiAgICAgIHZhciBw
b3MgICA9ICh0aW1lUG9zIC0gdGhpcy5zdGFydE9uKSAvIHRoaXMudG90YWxUaW1lLAogICAgICAg
ICAgZnJhbWUgPSAocG9zICogdGhpcy50b3RhbEZyYW1lcykucm91bmQoKTsKICAgICAgaWYgKGZy
YW1lID4gdGhpcy5jdXJyZW50RnJhbWUpIHsKICAgICAgICB0aGlzLnJlbmRlcihwb3MpOwogICAg
ICAgIHRoaXMuY3VycmVudEZyYW1lID0gZnJhbWU7CiAgICAgIH0KICAgIH0KICB9LAogIGNhbmNl
bDogZnVuY3Rpb24oKSB7CiAgICBpZiAoIXRoaXMub3B0aW9ucy5zeW5jKQogICAgICBFZmZlY3Qu
UXVldWVzLmdldChPYmplY3QuaXNTdHJpbmcodGhpcy5vcHRpb25zLnF1ZXVlKSA/IAogICAgICAg
ICdnbG9iYWwnIDogdGhpcy5vcHRpb25zLnF1ZXVlLnNjb3BlKS5yZW1vdmUodGhpcyk7CiAgICB0
aGlzLnN0YXRlID0gJ2ZpbmlzaGVkJzsKICB9LAogIGV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUp
IHsKICAgIGlmICh0aGlzLm9wdGlvbnNbZXZlbnROYW1lICsgJ0ludGVybmFsJ10pIHRoaXMub3B0
aW9uc1tldmVudE5hbWUgKyAnSW50ZXJuYWwnXSh0aGlzKTsKICAgIGlmICh0aGlzLm9wdGlvbnNb
ZXZlbnROYW1lXSkgdGhpcy5vcHRpb25zW2V2ZW50TmFtZV0odGhpcyk7CiAgfSwKICBpbnNwZWN0
OiBmdW5jdGlvbigpIHsKICAgIHZhciBkYXRhID0gJEgoKTsKICAgIGZvcihwcm9wZXJ0eSBpbiB0
aGlzKQogICAgICBpZiAoIU9iamVjdC5pc0Z1bmN0aW9uKHRoaXNbcHJvcGVydHldKSkgZGF0YS5z
ZXQocHJvcGVydHksIHRoaXNbcHJvcGVydHldKTsKICAgIHJldHVybiAnIzxFZmZlY3Q6JyArIGRh
dGEuaW5zcGVjdCgpICsgJyxvcHRpb25zOicgKyAkSCh0aGlzLm9wdGlvbnMpLmluc3BlY3QoKSAr
ICc+JzsKICB9Cn0pOwoKRWZmZWN0LlBhcmFsbGVsID0gQ2xhc3MuY3JlYXRlKEVmZmVjdC5CYXNl
LCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWZmZWN0cykgewogICAgdGhpcy5lZmZlY3RzID0g
ZWZmZWN0cyB8fCBbXTsKICAgIHRoaXMuc3RhcnQoYXJndW1lbnRzWzFdKTsKICB9LAogIHVwZGF0
ZTogZnVuY3Rpb24ocG9zaXRpb24pIHsKICAgIHRoaXMuZWZmZWN0cy5pbnZva2UoJ3JlbmRlcics
IHBvc2l0aW9uKTsKICB9LAogIGZpbmlzaDogZnVuY3Rpb24ocG9zaXRpb24pIHsKICAgIHRoaXMu
ZWZmZWN0cy5lYWNoKCBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgZWZmZWN0LnJlbmRlcigxLjAp
OwogICAgICBlZmZlY3QuY2FuY2VsKCk7CiAgICAgIGVmZmVjdC5ldmVudCgnYmVmb3JlRmluaXNo
Jyk7CiAgICAgIGlmIChlZmZlY3QuZmluaXNoKSBlZmZlY3QuZmluaXNoKHBvc2l0aW9uKTsKICAg
ICAgZWZmZWN0LmV2ZW50KCdhZnRlckZpbmlzaCcpOwogICAgfSk7CiAgfQp9KTsKCkVmZmVjdC5U
d2VlbiA9IENsYXNzLmNyZWF0ZShFZmZlY3QuQmFzZSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9u
KG9iamVjdCwgZnJvbSwgdG8pIHsKICAgIG9iamVjdCA9IE9iamVjdC5pc1N0cmluZyhvYmplY3Qp
ID8gJChvYmplY3QpIDogb2JqZWN0OwogICAgdmFyIGFyZ3MgPSAkQShhcmd1bWVudHMpLCBtZXRo
b2QgPSBhcmdzLmxhc3QoKSwgCiAgICAgIG9wdGlvbnMgPSBhcmdzLmxlbmd0aCA9PSA1ID8gYXJn
c1szXSA6IG51bGw7CiAgICB0aGlzLm1ldGhvZCA9IE9iamVjdC5pc0Z1bmN0aW9uKG1ldGhvZCkg
PyBtZXRob2QuYmluZChvYmplY3QpIDoKICAgICAgT2JqZWN0LmlzRnVuY3Rpb24ob2JqZWN0W21l
dGhvZF0pID8gb2JqZWN0W21ldGhvZF0uYmluZChvYmplY3QpIDogCiAgICAgIGZ1bmN0aW9uKHZh
bHVlKSB7IG9iamVjdFttZXRob2RdID0gdmFsdWUgfTsKICAgIHRoaXMuc3RhcnQoT2JqZWN0LmV4
dGVuZCh7IGZyb206IGZyb20sIHRvOiB0byB9LCBvcHRpb25zIHx8IHsgfSkpOwogIH0sCiAgdXBk
YXRlOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgdGhpcy5tZXRob2QocG9zaXRpb24pOwogIH0K
fSk7CgpFZmZlY3QuRXZlbnQgPSBDbGFzcy5jcmVhdGUoRWZmZWN0LkJhc2UsIHsKICBpbml0aWFs
aXplOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuc3RhcnQoT2JqZWN0LmV4dGVuZCh7IGR1cmF0aW9u
OiAwIH0sIGFyZ3VtZW50c1swXSB8fCB7IH0pKTsKICB9LAogIHVwZGF0ZTogUHJvdG90eXBlLmVt
cHR5RnVuY3Rpb24KfSk7CgpFZmZlY3QuT3BhY2l0eSA9IENsYXNzLmNyZWF0ZShFZmZlY3QuQmFz
ZSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9
ICQoZWxlbWVudCk7CiAgICBpZiAoIXRoaXMuZWxlbWVudCkgdGhyb3coRWZmZWN0Ll9lbGVtZW50
RG9lc05vdEV4aXN0RXJyb3IpOwogICAgLy8gbWFrZSB0aGlzIHdvcmsgb24gSUUgb24gZWxlbWVu
dHMgd2l0aG91dCAnbGF5b3V0JwogICAgaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFICYmICghdGhp
cy5lbGVtZW50LmN1cnJlbnRTdHlsZS5oYXNMYXlvdXQpKQogICAgICB0aGlzLmVsZW1lbnQuc2V0
U3R5bGUoe3pvb206IDF9KTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAg
IGZyb206IHRoaXMuZWxlbWVudC5nZXRPcGFjaXR5KCkgfHwgMC4wLAogICAgICB0bzogICAxLjAK
ICAgIH0sIGFyZ3VtZW50c1sxXSB8fCB7IH0pOwogICAgdGhpcy5zdGFydChvcHRpb25zKTsKICB9
LAogIHVwZGF0ZTogZnVuY3Rpb24ocG9zaXRpb24pIHsKICAgIHRoaXMuZWxlbWVudC5zZXRPcGFj
aXR5KHBvc2l0aW9uKTsKICB9Cn0pOwoKRWZmZWN0Lk1vdmUgPSBDbGFzcy5jcmVhdGUoRWZmZWN0
LkJhc2UsIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLmVsZW1l
bnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKCF0aGlzLmVsZW1lbnQpIHRocm93KEVmZmVjdC5fZWxl
bWVudERvZXNOb3RFeGlzdEVycm9yKTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7
CiAgICAgIHg6ICAgIDAsCiAgICAgIHk6ICAgIDAsCiAgICAgIG1vZGU6ICdyZWxhdGl2ZScKICAg
IH0sIGFyZ3VtZW50c1sxXSB8fCB7IH0pOwogICAgdGhpcy5zdGFydChvcHRpb25zKTsKICB9LAog
IHNldHVwOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuZWxlbWVudC5tYWtlUG9zaXRpb25lZCgpOwog
ICAgdGhpcy5vcmlnaW5hbExlZnQgPSBwYXJzZUZsb2F0KHRoaXMuZWxlbWVudC5nZXRTdHlsZSgn
bGVmdCcpIHx8ICcwJyk7CiAgICB0aGlzLm9yaWdpbmFsVG9wICA9IHBhcnNlRmxvYXQodGhpcy5l
bGVtZW50LmdldFN0eWxlKCd0b3AnKSAgfHwgJzAnKTsKICAgIGlmICh0aGlzLm9wdGlvbnMubW9k
ZSA9PSAnYWJzb2x1dGUnKSB7CiAgICAgIHRoaXMub3B0aW9ucy54ID0gdGhpcy5vcHRpb25zLngg
LSB0aGlzLm9yaWdpbmFsTGVmdDsKICAgICAgdGhpcy5vcHRpb25zLnkgPSB0aGlzLm9wdGlvbnMu
eSAtIHRoaXMub3JpZ2luYWxUb3A7CiAgICB9CiAgfSwKICB1cGRhdGU6IGZ1bmN0aW9uKHBvc2l0
aW9uKSB7CiAgICB0aGlzLmVsZW1lbnQuc2V0U3R5bGUoewogICAgICBsZWZ0OiAodGhpcy5vcHRp
b25zLnggICogcG9zaXRpb24gKyB0aGlzLm9yaWdpbmFsTGVmdCkucm91bmQoKSArICdweCcsCiAg
ICAgIHRvcDogICh0aGlzLm9wdGlvbnMueSAgKiBwb3NpdGlvbiArIHRoaXMub3JpZ2luYWxUb3Ap
LnJvdW5kKCkgICsgJ3B4JwogICAgfSk7CiAgfQp9KTsKCi8vIGZvciBiYWNrd2FyZHMgY29tcGF0
aWJpbGl0eQpFZmZlY3QuTW92ZUJ5ID0gZnVuY3Rpb24oZWxlbWVudCwgdG9Ub3AsIHRvTGVmdCkg
ewogIHJldHVybiBuZXcgRWZmZWN0Lk1vdmUoZWxlbWVudCwgCiAgICBPYmplY3QuZXh0ZW5kKHsg
eDogdG9MZWZ0LCB5OiB0b1RvcCB9LCBhcmd1bWVudHNbM10gfHwgeyB9KSk7Cn07CgpFZmZlY3Qu
U2NhbGUgPSBDbGFzcy5jcmVhdGUoRWZmZWN0LkJhc2UsIHsKICBpbml0aWFsaXplOiBmdW5jdGlv
bihlbGVtZW50LCBwZXJjZW50KSB7CiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAg
aWYgKCF0aGlzLmVsZW1lbnQpIHRocm93KEVmZmVjdC5fZWxlbWVudERvZXNOb3RFeGlzdEVycm9y
KTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAgIHNjYWxlWDogdHJ1ZSwK
ICAgICAgc2NhbGVZOiB0cnVlLAogICAgICBzY2FsZUNvbnRlbnQ6IHRydWUsCiAgICAgIHNjYWxl
RnJvbUNlbnRlcjogZmFsc2UsCiAgICAgIHNjYWxlTW9kZTogJ2JveCcsICAgICAgICAvLyAnYm94
JyBvciAnY29udGVudHMnIG9yIHsgfSB3aXRoIHByb3ZpZGVkIHZhbHVlcwogICAgICBzY2FsZUZy
b206IDEwMC4wLAogICAgICBzY2FsZVRvOiAgIHBlcmNlbnQKICAgIH0sIGFyZ3VtZW50c1syXSB8
fCB7IH0pOwogICAgdGhpcy5zdGFydChvcHRpb25zKTsKICB9LAogIHNldHVwOiBmdW5jdGlvbigp
IHsKICAgIHRoaXMucmVzdG9yZUFmdGVyRmluaXNoID0gdGhpcy5vcHRpb25zLnJlc3RvcmVBZnRl
ckZpbmlzaCB8fCBmYWxzZTsKICAgIHRoaXMuZWxlbWVudFBvc2l0aW9uaW5nID0gdGhpcy5lbGVt
ZW50LmdldFN0eWxlKCdwb3NpdGlvbicpOwogICAgCiAgICB0aGlzLm9yaWdpbmFsU3R5bGUgPSB7
IH07CiAgICBbJ3RvcCcsJ2xlZnQnLCd3aWR0aCcsJ2hlaWdodCcsJ2ZvbnRTaXplJ10uZWFjaCgg
ZnVuY3Rpb24oaykgewogICAgICB0aGlzLm9yaWdpbmFsU3R5bGVba10gPSB0aGlzLmVsZW1lbnQu
c3R5bGVba107CiAgICB9LmJpbmQodGhpcykpOwogICAgICAKICAgIHRoaXMub3JpZ2luYWxUb3Ag
ID0gdGhpcy5lbGVtZW50Lm9mZnNldFRvcDsKICAgIHRoaXMub3JpZ2luYWxMZWZ0ID0gdGhpcy5l
bGVtZW50Lm9mZnNldExlZnQ7CiAgICAKICAgIHZhciBmb250U2l6ZSA9IHRoaXMuZWxlbWVudC5n
ZXRTdHlsZSgnZm9udC1zaXplJykgfHwgJzEwMCUnOwogICAgWydlbScsJ3B4JywnJScsJ3B0J10u
ZWFjaCggZnVuY3Rpb24oZm9udFNpemVUeXBlKSB7CiAgICAgIGlmIChmb250U2l6ZS5pbmRleE9m
KGZvbnRTaXplVHlwZSk+MCkgewogICAgICAgIHRoaXMuZm9udFNpemUgICAgID0gcGFyc2VGbG9h
dChmb250U2l6ZSk7CiAgICAgICAgdGhpcy5mb250U2l6ZVR5cGUgPSBmb250U2l6ZVR5cGU7CiAg
ICAgIH0KICAgIH0uYmluZCh0aGlzKSk7CiAgICAKICAgIHRoaXMuZmFjdG9yID0gKHRoaXMub3B0
aW9ucy5zY2FsZVRvIC0gdGhpcy5vcHRpb25zLnNjYWxlRnJvbSkvMTAwOwogICAgCiAgICB0aGlz
LmRpbXMgPSBudWxsOwogICAgaWYgKHRoaXMub3B0aW9ucy5zY2FsZU1vZGU9PSdib3gnKQogICAg
ICB0aGlzLmRpbXMgPSBbdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodCwgdGhpcy5lbGVtZW50Lm9m
ZnNldFdpZHRoXTsKICAgIGlmICgvXmNvbnRlbnQvLnRlc3QodGhpcy5vcHRpb25zLnNjYWxlTW9k
ZSkpCiAgICAgIHRoaXMuZGltcyA9IFt0aGlzLmVsZW1lbnQuc2Nyb2xsSGVpZ2h0LCB0aGlzLmVs
ZW1lbnQuc2Nyb2xsV2lkdGhdOwogICAgaWYgKCF0aGlzLmRpbXMpCiAgICAgIHRoaXMuZGltcyA9
IFt0aGlzLm9wdGlvbnMuc2NhbGVNb2RlLm9yaWdpbmFsSGVpZ2h0LAogICAgICAgICAgICAgICAg
ICAgdGhpcy5vcHRpb25zLnNjYWxlTW9kZS5vcmlnaW5hbFdpZHRoXTsKICB9LAogIHVwZGF0ZTog
ZnVuY3Rpb24ocG9zaXRpb24pIHsKICAgIHZhciBjdXJyZW50U2NhbGUgPSAodGhpcy5vcHRpb25z
LnNjYWxlRnJvbS8xMDAuMCkgKyAodGhpcy5mYWN0b3IgKiBwb3NpdGlvbik7CiAgICBpZiAodGhp
cy5vcHRpb25zLnNjYWxlQ29udGVudCAmJiB0aGlzLmZvbnRTaXplKQogICAgICB0aGlzLmVsZW1l
bnQuc2V0U3R5bGUoe2ZvbnRTaXplOiB0aGlzLmZvbnRTaXplICogY3VycmVudFNjYWxlICsgdGhp
cy5mb250U2l6ZVR5cGUgfSk7CiAgICB0aGlzLnNldERpbWVuc2lvbnModGhpcy5kaW1zWzBdICog
Y3VycmVudFNjYWxlLCB0aGlzLmRpbXNbMV0gKiBjdXJyZW50U2NhbGUpOwogIH0sCiAgZmluaXNo
OiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgaWYgKHRoaXMucmVzdG9yZUFmdGVyRmluaXNoKSB0
aGlzLmVsZW1lbnQuc2V0U3R5bGUodGhpcy5vcmlnaW5hbFN0eWxlKTsKICB9LAogIHNldERpbWVu
c2lvbnM6IGZ1bmN0aW9uKGhlaWdodCwgd2lkdGgpIHsKICAgIHZhciBkID0geyB9OwogICAgaWYg
KHRoaXMub3B0aW9ucy5zY2FsZVgpIGQud2lkdGggPSB3aWR0aC5yb3VuZCgpICsgJ3B4JzsKICAg
IGlmICh0aGlzLm9wdGlvbnMuc2NhbGVZKSBkLmhlaWdodCA9IGhlaWdodC5yb3VuZCgpICsgJ3B4
JzsKICAgIGlmICh0aGlzLm9wdGlvbnMuc2NhbGVGcm9tQ2VudGVyKSB7CiAgICAgIHZhciB0b3Bk
ICA9IChoZWlnaHQgLSB0aGlzLmRpbXNbMF0pLzI7CiAgICAgIHZhciBsZWZ0ZCA9ICh3aWR0aCAg
LSB0aGlzLmRpbXNbMV0pLzI7CiAgICAgIGlmICh0aGlzLmVsZW1lbnRQb3NpdGlvbmluZyA9PSAn
YWJzb2x1dGUnKSB7CiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zY2FsZVkpIGQudG9wID0gdGhp
cy5vcmlnaW5hbFRvcC10b3BkICsgJ3B4JzsKICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNjYWxl
WCkgZC5sZWZ0ID0gdGhpcy5vcmlnaW5hbExlZnQtbGVmdGQgKyAncHgnOwogICAgICB9IGVsc2Ug
ewogICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2NhbGVZKSBkLnRvcCA9IC10b3BkICsgJ3B4JzsK
ICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNjYWxlWCkgZC5sZWZ0ID0gLWxlZnRkICsgJ3B4JzsK
ICAgICAgfQogICAgfQogICAgdGhpcy5lbGVtZW50LnNldFN0eWxlKGQpOwogIH0KfSk7CgpFZmZl
Y3QuSGlnaGxpZ2h0ID0gQ2xhc3MuY3JlYXRlKEVmZmVjdC5CYXNlLCB7CiAgaW5pdGlhbGl6ZTog
ZnVuY3Rpb24oZWxlbWVudCkgewogICAgdGhpcy5lbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlm
ICghdGhpcy5lbGVtZW50KSB0aHJvdyhFZmZlY3QuX2VsZW1lbnREb2VzTm90RXhpc3RFcnJvcik7
CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoeyBzdGFydGNvbG9yOiAnI2ZmZmY5OScg
fSwgYXJndW1lbnRzWzFdIHx8IHsgfSk7CiAgICB0aGlzLnN0YXJ0KG9wdGlvbnMpOwogIH0sCiAg
c2V0dXA6IGZ1bmN0aW9uKCkgewogICAgLy8gUHJldmVudCBleGVjdXRpbmcgb24gZWxlbWVudHMg
bm90IGluIHRoZSBsYXlvdXQgZmxvdwogICAgaWYgKHRoaXMuZWxlbWVudC5nZXRTdHlsZSgnZGlz
cGxheScpPT0nbm9uZScpIHsgdGhpcy5jYW5jZWwoKTsgcmV0dXJuOyB9CiAgICAvLyBEaXNhYmxl
IGJhY2tncm91bmQgaW1hZ2UgZHVyaW5nIHRoZSBlZmZlY3QKICAgIHRoaXMub2xkU3R5bGUgPSB7
IH07CiAgICBpZiAoIXRoaXMub3B0aW9ucy5rZWVwQmFja2dyb3VuZEltYWdlKSB7CiAgICAgIHRo
aXMub2xkU3R5bGUuYmFja2dyb3VuZEltYWdlID0gdGhpcy5lbGVtZW50LmdldFN0eWxlKCdiYWNr
Z3JvdW5kLWltYWdlJyk7CiAgICAgIHRoaXMuZWxlbWVudC5zZXRTdHlsZSh7YmFja2dyb3VuZElt
YWdlOiAnbm9uZSd9KTsKICAgIH0KICAgIGlmICghdGhpcy5vcHRpb25zLmVuZGNvbG9yKQogICAg
ICB0aGlzLm9wdGlvbnMuZW5kY29sb3IgPSB0aGlzLmVsZW1lbnQuZ2V0U3R5bGUoJ2JhY2tncm91
bmQtY29sb3InKS5wYXJzZUNvbG9yKCcjZmZmZmZmJyk7CiAgICBpZiAoIXRoaXMub3B0aW9ucy5y
ZXN0b3JlY29sb3IpCiAgICAgIHRoaXMub3B0aW9ucy5yZXN0b3JlY29sb3IgPSB0aGlzLmVsZW1l
bnQuZ2V0U3R5bGUoJ2JhY2tncm91bmQtY29sb3InKTsKICAgIC8vIGluaXQgY29sb3IgY2FsY3Vs
YXRpb25zCiAgICB0aGlzLl9iYXNlICA9ICRSKDAsMikubWFwKGZ1bmN0aW9uKGkpeyByZXR1cm4g
cGFyc2VJbnQodGhpcy5vcHRpb25zLnN0YXJ0Y29sb3Iuc2xpY2UoaSoyKzEsaSoyKzMpLDE2KSB9
LmJpbmQodGhpcykpOwogICAgdGhpcy5fZGVsdGEgPSAkUigwLDIpLm1hcChmdW5jdGlvbihpKXsg
cmV0dXJuIHBhcnNlSW50KHRoaXMub3B0aW9ucy5lbmRjb2xvci5zbGljZShpKjIrMSxpKjIrMyks
MTYpLXRoaXMuX2Jhc2VbaV0gfS5iaW5kKHRoaXMpKTsKICB9LAogIHVwZGF0ZTogZnVuY3Rpb24o
cG9zaXRpb24pIHsKICAgIHRoaXMuZWxlbWVudC5zZXRTdHlsZSh7YmFja2dyb3VuZENvbG9yOiAk
UigwLDIpLmluamVjdCgnIycsZnVuY3Rpb24obSx2LGkpewogICAgICByZXR1cm4gbSsoKHRoaXMu
X2Jhc2VbaV0rKHRoaXMuX2RlbHRhW2ldKnBvc2l0aW9uKSkucm91bmQoKS50b0NvbG9yUGFydCgp
KTsgfS5iaW5kKHRoaXMpKSB9KTsKICB9LAogIGZpbmlzaDogZnVuY3Rpb24oKSB7CiAgICB0aGlz
LmVsZW1lbnQuc2V0U3R5bGUoT2JqZWN0LmV4dGVuZCh0aGlzLm9sZFN0eWxlLCB7CiAgICAgIGJh
Y2tncm91bmRDb2xvcjogdGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvcgogICAgfSkpOwogIH0KfSk7
CgpFZmZlY3QuU2Nyb2xsVG8gPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgdmFyIG9wdGlvbnMgPSBh
cmd1bWVudHNbMV0gfHwgeyB9LAogICAgc2Nyb2xsT2Zmc2V0cyA9IGRvY3VtZW50LnZpZXdwb3J0
LmdldFNjcm9sbE9mZnNldHMoKSwKICAgIGVsZW1lbnRPZmZzZXRzID0gJChlbGVtZW50KS5jdW11
bGF0aXZlT2Zmc2V0KCksCiAgICBtYXggPSAod2luZG93LmhlaWdodCB8fCBkb2N1bWVudC5ib2R5
LnNjcm9sbEhlaWdodCkgLSBkb2N1bWVudC52aWV3cG9ydC5nZXRIZWlnaHQoKTsgIAoKICBpZiAo
b3B0aW9ucy5vZmZzZXQpIGVsZW1lbnRPZmZzZXRzWzFdICs9IG9wdGlvbnMub2Zmc2V0OwoKICBy
ZXR1cm4gbmV3IEVmZmVjdC5Ud2VlbihudWxsLAogICAgc2Nyb2xsT2Zmc2V0cy50b3AsCiAgICBl
bGVtZW50T2Zmc2V0c1sxXSA+IG1heCA/IG1heCA6IGVsZW1lbnRPZmZzZXRzWzFdLAogICAgb3B0
aW9ucywKICAgIGZ1bmN0aW9uKHApeyBzY3JvbGxUbyhzY3JvbGxPZmZzZXRzLmxlZnQsIHAucm91
bmQoKSkgfQogICk7Cn07CgovKiAtLS0tLS0tLS0tLS0tIGNvbWJpbmF0aW9uIGVmZmVjdHMgLS0t
LS0tLS0tLS0tLSAqLwoKRWZmZWN0LkZhZGUgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVu
dCA9ICQoZWxlbWVudCk7CiAgdmFyIG9sZE9wYWNpdHkgPSBlbGVtZW50LmdldElubGluZU9wYWNp
dHkoKTsKICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgZnJvbTogZWxlbWVudC5n
ZXRPcGFjaXR5KCkgfHwgMS4wLAogICAgdG86ICAgMC4wLAogICAgYWZ0ZXJGaW5pc2hJbnRlcm5h
bDogZnVuY3Rpb24oZWZmZWN0KSB7IAogICAgICBpZiAoZWZmZWN0Lm9wdGlvbnMudG8hPTApIHJl
dHVybjsKICAgICAgZWZmZWN0LmVsZW1lbnQuaGlkZSgpLnNldFN0eWxlKHtvcGFjaXR5OiBvbGRP
cGFjaXR5fSk7IAogICAgfQogIH0sIGFyZ3VtZW50c1sxXSB8fCB7IH0pOwogIHJldHVybiBuZXcg
RWZmZWN0Lk9wYWNpdHkoZWxlbWVudCxvcHRpb25zKTsKfTsKCkVmZmVjdC5BcHBlYXIgPSBmdW5j
dGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgdmFyIG9wdGlvbnMgPSBP
YmplY3QuZXh0ZW5kKHsKICBmcm9tOiAoZWxlbWVudC5nZXRTdHlsZSgnZGlzcGxheScpID09ICdu
b25lJyA/IDAuMCA6IGVsZW1lbnQuZ2V0T3BhY2l0eSgpIHx8IDAuMCksCiAgdG86ICAgMS4wLAog
IC8vIGZvcmNlIFNhZmFyaSB0byByZW5kZXIgZmxvYXRlZCBlbGVtZW50cyBwcm9wZXJseQogIGFm
dGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgZWZmZWN0LmVsZW1lbnQu
Zm9yY2VSZXJlbmRlcmluZygpOwogIH0sCiAgYmVmb3JlU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkg
ewogICAgZWZmZWN0LmVsZW1lbnQuc2V0T3BhY2l0eShlZmZlY3Qub3B0aW9ucy5mcm9tKS5zaG93
KCk7IAogIH19LCBhcmd1bWVudHNbMV0gfHwgeyB9KTsKICByZXR1cm4gbmV3IEVmZmVjdC5PcGFj
aXR5KGVsZW1lbnQsb3B0aW9ucyk7Cn07CgpFZmZlY3QuUHVmZiA9IGZ1bmN0aW9uKGVsZW1lbnQp
IHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb2xkU3R5bGUgPSB7IAogICAgb3BhY2l0
eTogZWxlbWVudC5nZXRJbmxpbmVPcGFjaXR5KCksIAogICAgcG9zaXRpb246IGVsZW1lbnQuZ2V0
U3R5bGUoJ3Bvc2l0aW9uJyksCiAgICB0b3A6ICBlbGVtZW50LnN0eWxlLnRvcCwKICAgIGxlZnQ6
IGVsZW1lbnQuc3R5bGUubGVmdCwKICAgIHdpZHRoOiBlbGVtZW50LnN0eWxlLndpZHRoLAogICAg
aGVpZ2h0OiBlbGVtZW50LnN0eWxlLmhlaWdodAogIH07CiAgcmV0dXJuIG5ldyBFZmZlY3QuUGFy
YWxsZWwoCiAgIFsgbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCAyMDAsIAogICAgICB7IHN5bmM6
IHRydWUsIHNjYWxlRnJvbUNlbnRlcjogdHJ1ZSwgc2NhbGVDb250ZW50OiB0cnVlLCByZXN0b3Jl
QWZ0ZXJGaW5pc2g6IHRydWUgfSksIAogICAgIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCB7
IHN5bmM6IHRydWUsIHRvOiAwLjAgfSApIF0sIAogICAgIE9iamVjdC5leHRlbmQoeyBkdXJhdGlv
bjogMS4wLCAKICAgICAgYmVmb3JlU2V0dXBJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAg
ICAgICAgUG9zaXRpb24uYWJzb2x1dGl6ZShlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50KQogICAg
ICB9LAogICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAg
ICAgZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudC5oaWRlKCkuc2V0U3R5bGUob2xkU3R5bGUpOyB9
CiAgICAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSkKICAgKTsKfTsKCkVmZmVjdC5CbGluZFVwID0g
ZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIGVsZW1lbnQubWFr
ZUNsaXBwaW5nKCk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVudCwgMCwKICAgIE9i
amVjdC5leHRlbmQoeyBzY2FsZUNvbnRlbnQ6IGZhbHNlLCAKICAgICAgc2NhbGVYOiBmYWxzZSwg
CiAgICAgIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5h
bDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgICAgZWZmZWN0LmVsZW1lbnQuaGlkZSgpLnVuZG9D
bGlwcGluZygpOwogICAgICB9IAogICAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSkKICApOwp9OwoK
RWZmZWN0LkJsaW5kRG93biA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVt
ZW50KTsKICB2YXIgZWxlbWVudERpbWVuc2lvbnMgPSBlbGVtZW50LmdldERpbWVuc2lvbnMoKTsK
ICByZXR1cm4gbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCAxMDAsIE9iamVjdC5leHRlbmQoeyAK
ICAgIHNjYWxlQ29udGVudDogZmFsc2UsIAogICAgc2NhbGVYOiBmYWxzZSwKICAgIHNjYWxlRnJv
bTogMCwKICAgIHNjYWxlTW9kZToge29yaWdpbmFsSGVpZ2h0OiBlbGVtZW50RGltZW5zaW9ucy5o
ZWlnaHQsIG9yaWdpbmFsV2lkdGg6IGVsZW1lbnREaW1lbnNpb25zLndpZHRofSwKICAgIHJlc3Rv
cmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgIGFmdGVyU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgewog
ICAgICBlZmZlY3QuZWxlbWVudC5tYWtlQ2xpcHBpbmcoKS5zZXRTdHlsZSh7aGVpZ2h0OiAnMHB4
J30pLnNob3coKTsgCiAgICB9LCAgCiAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihl
ZmZlY3QpIHsKICAgICAgZWZmZWN0LmVsZW1lbnQudW5kb0NsaXBwaW5nKCk7CiAgICB9CiAgfSwg
YXJndW1lbnRzWzFdIHx8IHsgfSkpOwp9OwoKRWZmZWN0LlN3aXRjaE9mZiA9IGZ1bmN0aW9uKGVs
ZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb2xkT3BhY2l0eSA9IGVsZW1l
bnQuZ2V0SW5saW5lT3BhY2l0eSgpOwogIHJldHVybiBuZXcgRWZmZWN0LkFwcGVhcihlbGVtZW50
LCBPYmplY3QuZXh0ZW5kKHsKICAgIGR1cmF0aW9uOiAwLjQsCiAgICBmcm9tOiAwLAogICAgdHJh
bnNpdGlvbjogRWZmZWN0LlRyYW5zaXRpb25zLmZsaWNrZXIsCiAgICBhZnRlckZpbmlzaEludGVy
bmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgbmV3IEVmZmVjdC5TY2FsZShlZmZlY3QuZWxl
bWVudCwgMSwgeyAKICAgICAgICBkdXJhdGlvbjogMC4zLCBzY2FsZUZyb21DZW50ZXI6IHRydWUs
CiAgICAgICAgc2NhbGVYOiBmYWxzZSwgc2NhbGVDb250ZW50OiBmYWxzZSwgcmVzdG9yZUFmdGVy
RmluaXNoOiB0cnVlLAogICAgICAgIGJlZm9yZVNldHVwOiBmdW5jdGlvbihlZmZlY3QpIHsgCiAg
ICAgICAgICBlZmZlY3QuZWxlbWVudC5tYWtlUG9zaXRpb25lZCgpLm1ha2VDbGlwcGluZygpOwog
ICAgICAgIH0sCiAgICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7
CiAgICAgICAgICBlZmZlY3QuZWxlbWVudC5oaWRlKCkudW5kb0NsaXBwaW5nKCkudW5kb1Bvc2l0
aW9uZWQoKS5zZXRTdHlsZSh7b3BhY2l0eTogb2xkT3BhY2l0eX0pOwogICAgICAgIH0KICAgICAg
fSkKICAgIH0KICB9LCBhcmd1bWVudHNbMV0gfHwgeyB9KSk7Cn07CgpFZmZlY3QuRHJvcE91dCA9
IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb2xkU3R5
bGUgPSB7CiAgICB0b3A6IGVsZW1lbnQuZ2V0U3R5bGUoJ3RvcCcpLAogICAgbGVmdDogZWxlbWVu
dC5nZXRTdHlsZSgnbGVmdCcpLAogICAgb3BhY2l0eTogZWxlbWVudC5nZXRJbmxpbmVPcGFjaXR5
KCkgfTsKICByZXR1cm4gbmV3IEVmZmVjdC5QYXJhbGxlbCgKICAgIFsgbmV3IEVmZmVjdC5Nb3Zl
KGVsZW1lbnQsIHt4OiAwLCB5OiAxMDAsIHN5bmM6IHRydWUgfSksIAogICAgICBuZXcgRWZmZWN0
Lk9wYWNpdHkoZWxlbWVudCwgeyBzeW5jOiB0cnVlLCB0bzogMC4wIH0pIF0sCiAgICBPYmplY3Qu
ZXh0ZW5kKAogICAgICB7IGR1cmF0aW9uOiAwLjUsCiAgICAgICAgYmVmb3JlU2V0dXA6IGZ1bmN0
aW9uKGVmZmVjdCkgewogICAgICAgICAgZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudC5tYWtlUG9z
aXRpb25lZCgpOyAKICAgICAgICB9LAogICAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0
aW9uKGVmZmVjdCkgewogICAgICAgICAgZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudC5oaWRlKCku
dW5kb1Bvc2l0aW9uZWQoKS5zZXRTdHlsZShvbGRTdHlsZSk7CiAgICAgICAgfSAKICAgICAgfSwg
YXJndW1lbnRzWzFdIHx8IHsgfSkpOwp9OwoKRWZmZWN0LlNoYWtlID0gZnVuY3Rpb24oZWxlbWVu
dCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVu
ZCh7CiAgICBkaXN0YW5jZTogMjAsCiAgICBkdXJhdGlvbjogMC41CiAgfSwgYXJndW1lbnRzWzFd
IHx8IHt9KTsKICB2YXIgZGlzdGFuY2UgPSBwYXJzZUZsb2F0KG9wdGlvbnMuZGlzdGFuY2UpOwog
IHZhciBzcGxpdCA9IHBhcnNlRmxvYXQob3B0aW9ucy5kdXJhdGlvbikgLyAxMC4wOwogIHZhciBv
bGRTdHlsZSA9IHsKICAgIHRvcDogZWxlbWVudC5nZXRTdHlsZSgndG9wJyksCiAgICBsZWZ0OiBl
bGVtZW50LmdldFN0eWxlKCdsZWZ0JykgfTsKICAgIHJldHVybiBuZXcgRWZmZWN0Lk1vdmUoZWxl
bWVudCwKICAgICAgeyB4OiAgZGlzdGFuY2UsIHk6IDAsIGR1cmF0aW9uOiBzcGxpdCwgYWZ0ZXJG
aW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICBuZXcgRWZmZWN0Lk1vdmUoZWZm
ZWN0LmVsZW1lbnQsCiAgICAgIHsgeDogLWRpc3RhbmNlKjIsIHk6IDAsIGR1cmF0aW9uOiBzcGxp
dCoyLCAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICBuZXcgRWZm
ZWN0Lk1vdmUoZWZmZWN0LmVsZW1lbnQsCiAgICAgIHsgeDogIGRpc3RhbmNlKjIsIHk6IDAsIGR1
cmF0aW9uOiBzcGxpdCoyLCAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7
CiAgICBuZXcgRWZmZWN0Lk1vdmUoZWZmZWN0LmVsZW1lbnQsCiAgICAgIHsgeDogLWRpc3RhbmNl
KjIsIHk6IDAsIGR1cmF0aW9uOiBzcGxpdCoyLCAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rp
b24oZWZmZWN0KSB7CiAgICBuZXcgRWZmZWN0Lk1vdmUoZWZmZWN0LmVsZW1lbnQsCiAgICAgIHsg
eDogIGRpc3RhbmNlKjIsIHk6IDAsIGR1cmF0aW9uOiBzcGxpdCoyLCAgYWZ0ZXJGaW5pc2hJbnRl
cm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICBuZXcgRWZmZWN0Lk1vdmUoZWZmZWN0LmVsZW1l
bnQsCiAgICAgIHsgeDogLWRpc3RhbmNlLCB5OiAwLCBkdXJhdGlvbjogc3BsaXQsIGFmdGVyRmlu
aXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICAgIGVmZmVjdC5lbGVtZW50LnVu
ZG9Qb3NpdGlvbmVkKCkuc2V0U3R5bGUob2xkU3R5bGUpOwogIH19KSB9fSkgfX0pIH19KSB9fSkg
fX0pOwp9OwoKRWZmZWN0LlNsaWRlRG93biA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50
ID0gJChlbGVtZW50KS5jbGVhbldoaXRlc3BhY2UoKTsKICAvLyBTbGlkZURvd24gbmVlZCB0byBo
YXZlIHRoZSBjb250ZW50IG9mIHRoZSBlbGVtZW50IHdyYXBwZWQgaW4gYSBjb250YWluZXIgZWxl
bWVudCB3aXRoIGZpeGVkIGhlaWdodCEKICB2YXIgb2xkSW5uZXJCb3R0b20gPSBlbGVtZW50LmRv
d24oKS5nZXRTdHlsZSgnYm90dG9tJyk7CiAgdmFyIGVsZW1lbnREaW1lbnNpb25zID0gZWxlbWVu
dC5nZXREaW1lbnNpb25zKCk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVudCwgMTAw
LCBPYmplY3QuZXh0ZW5kKHsgCiAgICBzY2FsZUNvbnRlbnQ6IGZhbHNlLCAKICAgIHNjYWxlWDog
ZmFsc2UsIAogICAgc2NhbGVGcm9tOiB3aW5kb3cub3BlcmEgPyAwIDogMSwKICAgIHNjYWxlTW9k
ZToge29yaWdpbmFsSGVpZ2h0OiBlbGVtZW50RGltZW5zaW9ucy5oZWlnaHQsIG9yaWdpbmFsV2lk
dGg6IGVsZW1lbnREaW1lbnNpb25zLndpZHRofSwKICAgIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1
ZSwKICAgIGFmdGVyU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QuZWxlbWVu
dC5tYWtlUG9zaXRpb25lZCgpOwogICAgICBlZmZlY3QuZWxlbWVudC5kb3duKCkubWFrZVBvc2l0
aW9uZWQoKTsKICAgICAgaWYgKHdpbmRvdy5vcGVyYSkgZWZmZWN0LmVsZW1lbnQuc2V0U3R5bGUo
e3RvcDogJyd9KTsKICAgICAgZWZmZWN0LmVsZW1lbnQubWFrZUNsaXBwaW5nKCkuc2V0U3R5bGUo
e2hlaWdodDogJzBweCd9KS5zaG93KCk7IAogICAgfSwKICAgIGFmdGVyVXBkYXRlSW50ZXJuYWw6
IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QuZWxlbWVudC5kb3duKCkuc2V0U3R5bGUo
e2JvdHRvbToKICAgICAgICAoZWZmZWN0LmRpbXNbMF0gLSBlZmZlY3QuZWxlbWVudC5jbGllbnRI
ZWlnaHQpICsgJ3B4JyB9KTsgCiAgICB9LAogICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rp
b24oZWZmZWN0KSB7CiAgICAgIGVmZmVjdC5lbGVtZW50LnVuZG9DbGlwcGluZygpLnVuZG9Qb3Np
dGlvbmVkKCk7CiAgICAgIGVmZmVjdC5lbGVtZW50LmRvd24oKS51bmRvUG9zaXRpb25lZCgpLnNl
dFN0eWxlKHtib3R0b206IG9sZElubmVyQm90dG9tfSk7IH0KICAgIH0sIGFyZ3VtZW50c1sxXSB8
fCB7IH0pCiAgKTsKfTsKCkVmZmVjdC5TbGlkZVVwID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVs
ZW1lbnQgPSAkKGVsZW1lbnQpLmNsZWFuV2hpdGVzcGFjZSgpOwogIHZhciBvbGRJbm5lckJvdHRv
bSA9IGVsZW1lbnQuZG93bigpLmdldFN0eWxlKCdib3R0b20nKTsKICB2YXIgZWxlbWVudERpbWVu
c2lvbnMgPSBlbGVtZW50LmdldERpbWVuc2lvbnMoKTsKICByZXR1cm4gbmV3IEVmZmVjdC5TY2Fs
ZShlbGVtZW50LCB3aW5kb3cub3BlcmEgPyAwIDogMSwKICAgT2JqZWN0LmV4dGVuZCh7IHNjYWxl
Q29udGVudDogZmFsc2UsIAogICAgc2NhbGVYOiBmYWxzZSwgCiAgICBzY2FsZU1vZGU6ICdib3gn
LAogICAgc2NhbGVGcm9tOiAxMDAsCiAgICBzY2FsZU1vZGU6IHtvcmlnaW5hbEhlaWdodDogZWxl
bWVudERpbWVuc2lvbnMuaGVpZ2h0LCBvcmlnaW5hbFdpZHRoOiBlbGVtZW50RGltZW5zaW9ucy53
aWR0aH0sCiAgICByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWUsCiAgICBhZnRlclNldHVwOiBmdW5j
dGlvbihlZmZlY3QpIHsKICAgICAgZWZmZWN0LmVsZW1lbnQubWFrZVBvc2l0aW9uZWQoKTsKICAg
ICAgZWZmZWN0LmVsZW1lbnQuZG93bigpLm1ha2VQb3NpdGlvbmVkKCk7CiAgICAgIGlmICh3aW5k
b3cub3BlcmEpIGVmZmVjdC5lbGVtZW50LnNldFN0eWxlKHt0b3A6ICcnfSk7CiAgICAgIGVmZmVj
dC5lbGVtZW50Lm1ha2VDbGlwcGluZygpLnNob3coKTsKICAgIH0sICAKICAgIGFmdGVyVXBkYXRl
SW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QuZWxlbWVudC5kb3duKCku
c2V0U3R5bGUoe2JvdHRvbToKICAgICAgICAoZWZmZWN0LmRpbXNbMF0gLSBlZmZlY3QuZWxlbWVu
dC5jbGllbnRIZWlnaHQpICsgJ3B4JyB9KTsKICAgIH0sCiAgICBhZnRlckZpbmlzaEludGVybmFs
OiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgZWZmZWN0LmVsZW1lbnQuaGlkZSgpLnVuZG9DbGlw
cGluZygpLnVuZG9Qb3NpdGlvbmVkKCk7CiAgICAgIGVmZmVjdC5lbGVtZW50LmRvd24oKS51bmRv
UG9zaXRpb25lZCgpLnNldFN0eWxlKHtib3R0b206IG9sZElubmVyQm90dG9tfSk7CiAgICB9CiAg
IH0sIGFyZ3VtZW50c1sxXSB8fCB7IH0pCiAgKTsKfTsKCi8vIEJ1ZyBpbiBvcGVyYSBtYWtlcyB0
aGUgVEQgY29udGFpbmluZyB0aGlzIGVsZW1lbnQgZXhwYW5kIGZvciBhIGluc3RhbmNlIGFmdGVy
IGZpbmlzaCAKRWZmZWN0LlNxdWlzaCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICByZXR1cm4gbmV3
IEVmZmVjdC5TY2FsZShlbGVtZW50LCB3aW5kb3cub3BlcmEgPyAxIDogMCwgeyAKICAgIHJlc3Rv
cmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgIGJlZm9yZVNldHVwOiBmdW5jdGlvbihlZmZlY3QpIHsK
ICAgICAgZWZmZWN0LmVsZW1lbnQubWFrZUNsaXBwaW5nKCk7IAogICAgfSwgIAogICAgYWZ0ZXJG
aW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgIGVmZmVjdC5lbGVtZW50Lmhp
ZGUoKS51bmRvQ2xpcHBpbmcoKTsgCiAgICB9CiAgfSk7Cn07CgpFZmZlY3QuR3JvdyA9IGZ1bmN0
aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb3B0aW9ucyA9IE9i
amVjdC5leHRlbmQoewogICAgZGlyZWN0aW9uOiAnY2VudGVyJywKICAgIG1vdmVUcmFuc2l0aW9u
OiBFZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWwsCiAgICBzY2FsZVRyYW5zaXRpb246IEVmZmVj
dC5UcmFuc2l0aW9ucy5zaW5vaWRhbCwKICAgIG9wYWNpdHlUcmFuc2l0aW9uOiBFZmZlY3QuVHJh
bnNpdGlvbnMuZnVsbAogIH0sIGFyZ3VtZW50c1sxXSB8fCB7IH0pOwogIHZhciBvbGRTdHlsZSA9
IHsKICAgIHRvcDogZWxlbWVudC5zdHlsZS50b3AsCiAgICBsZWZ0OiBlbGVtZW50LnN0eWxlLmxl
ZnQsCiAgICBoZWlnaHQ6IGVsZW1lbnQuc3R5bGUuaGVpZ2h0LAogICAgd2lkdGg6IGVsZW1lbnQu
c3R5bGUud2lkdGgsCiAgICBvcGFjaXR5OiBlbGVtZW50LmdldElubGluZU9wYWNpdHkoKSB9OwoK
ICB2YXIgZGltcyA9IGVsZW1lbnQuZ2V0RGltZW5zaW9ucygpOyAgICAKICB2YXIgaW5pdGlhbE1v
dmVYLCBpbml0aWFsTW92ZVk7CiAgdmFyIG1vdmVYLCBtb3ZlWTsKICAKICBzd2l0Y2ggKG9wdGlv
bnMuZGlyZWN0aW9uKSB7CiAgICBjYXNlICd0b3AtbGVmdCc6CiAgICAgIGluaXRpYWxNb3ZlWCA9
IGluaXRpYWxNb3ZlWSA9IG1vdmVYID0gbW92ZVkgPSAwOyAKICAgICAgYnJlYWs7CiAgICBjYXNl
ICd0b3AtcmlnaHQnOgogICAgICBpbml0aWFsTW92ZVggPSBkaW1zLndpZHRoOwogICAgICBpbml0
aWFsTW92ZVkgPSBtb3ZlWSA9IDA7CiAgICAgIG1vdmVYID0gLWRpbXMud2lkdGg7CiAgICAgIGJy
ZWFrOwogICAgY2FzZSAnYm90dG9tLWxlZnQnOgogICAgICBpbml0aWFsTW92ZVggPSBtb3ZlWCA9
IDA7CiAgICAgIGluaXRpYWxNb3ZlWSA9IGRpbXMuaGVpZ2h0OwogICAgICBtb3ZlWSA9IC1kaW1z
LmhlaWdodDsKICAgICAgYnJlYWs7CiAgICBjYXNlICdib3R0b20tcmlnaHQnOgogICAgICBpbml0
aWFsTW92ZVggPSBkaW1zLndpZHRoOwogICAgICBpbml0aWFsTW92ZVkgPSBkaW1zLmhlaWdodDsK
ICAgICAgbW92ZVggPSAtZGltcy53aWR0aDsKICAgICAgbW92ZVkgPSAtZGltcy5oZWlnaHQ7CiAg
ICAgIGJyZWFrOwogICAgY2FzZSAnY2VudGVyJzoKICAgICAgaW5pdGlhbE1vdmVYID0gZGltcy53
aWR0aCAvIDI7CiAgICAgIGluaXRpYWxNb3ZlWSA9IGRpbXMuaGVpZ2h0IC8gMjsKICAgICAgbW92
ZVggPSAtZGltcy53aWR0aCAvIDI7CiAgICAgIG1vdmVZID0gLWRpbXMuaGVpZ2h0IC8gMjsKICAg
ICAgYnJlYWs7CiAgfQogIAogIHJldHVybiBuZXcgRWZmZWN0Lk1vdmUoZWxlbWVudCwgewogICAg
eDogaW5pdGlhbE1vdmVYLAogICAgeTogaW5pdGlhbE1vdmVZLAogICAgZHVyYXRpb246IDAuMDEs
IAogICAgYmVmb3JlU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QuZWxlbWVu
dC5oaWRlKCkubWFrZUNsaXBwaW5nKCkubWFrZVBvc2l0aW9uZWQoKTsKICAgIH0sCiAgICBhZnRl
ckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgbmV3IEVmZmVjdC5QYXJh
bGxlbCgKICAgICAgICBbIG5ldyBFZmZlY3QuT3BhY2l0eShlZmZlY3QuZWxlbWVudCwgeyBzeW5j
OiB0cnVlLCB0bzogMS4wLCBmcm9tOiAwLjAsIHRyYW5zaXRpb246IG9wdGlvbnMub3BhY2l0eVRy
YW5zaXRpb24gfSksCiAgICAgICAgICBuZXcgRWZmZWN0Lk1vdmUoZWZmZWN0LmVsZW1lbnQsIHsg
eDogbW92ZVgsIHk6IG1vdmVZLCBzeW5jOiB0cnVlLCB0cmFuc2l0aW9uOiBvcHRpb25zLm1vdmVU
cmFuc2l0aW9uIH0pLAogICAgICAgICAgbmV3IEVmZmVjdC5TY2FsZShlZmZlY3QuZWxlbWVudCwg
MTAwLCB7CiAgICAgICAgICAgIHNjYWxlTW9kZTogeyBvcmlnaW5hbEhlaWdodDogZGltcy5oZWln
aHQsIG9yaWdpbmFsV2lkdGg6IGRpbXMud2lkdGggfSwgCiAgICAgICAgICAgIHN5bmM6IHRydWUs
IHNjYWxlRnJvbTogd2luZG93Lm9wZXJhID8gMSA6IDAsIHRyYW5zaXRpb246IG9wdGlvbnMuc2Nh
bGVUcmFuc2l0aW9uLCByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWV9KQogICAgICAgIF0sIE9iamVj
dC5leHRlbmQoewogICAgICAgICAgICAgYmVmb3JlU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgewog
ICAgICAgICAgICAgICBlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LnNldFN0eWxlKHtoZWlnaHQ6
ICcwcHgnfSkuc2hvdygpOyAKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBhZnRlckZpbmlz
aEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICAgICAgICAgZWZmZWN0LmVmZmVj
dHNbMF0uZWxlbWVudC51bmRvQ2xpcHBpbmcoKS51bmRvUG9zaXRpb25lZCgpLnNldFN0eWxlKG9s
ZFN0eWxlKTsgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgfSwgb3B0aW9ucykKICAgICAgKQog
ICAgfQogIH0pOwp9OwoKRWZmZWN0LlNocmluayA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVt
ZW50ID0gJChlbGVtZW50KTsKICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgZGly
ZWN0aW9uOiAnY2VudGVyJywKICAgIG1vdmVUcmFuc2l0aW9uOiBFZmZlY3QuVHJhbnNpdGlvbnMu
c2lub2lkYWwsCiAgICBzY2FsZVRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRh
bCwKICAgIG9wYWNpdHlUcmFuc2l0aW9uOiBFZmZlY3QuVHJhbnNpdGlvbnMubm9uZQogIH0sIGFy
Z3VtZW50c1sxXSB8fCB7IH0pOwogIHZhciBvbGRTdHlsZSA9IHsKICAgIHRvcDogZWxlbWVudC5z
dHlsZS50b3AsCiAgICBsZWZ0OiBlbGVtZW50LnN0eWxlLmxlZnQsCiAgICBoZWlnaHQ6IGVsZW1l
bnQuc3R5bGUuaGVpZ2h0LAogICAgd2lkdGg6IGVsZW1lbnQuc3R5bGUud2lkdGgsCiAgICBvcGFj
aXR5OiBlbGVtZW50LmdldElubGluZU9wYWNpdHkoKSB9OwoKICB2YXIgZGltcyA9IGVsZW1lbnQu
Z2V0RGltZW5zaW9ucygpOwogIHZhciBtb3ZlWCwgbW92ZVk7CiAgCiAgc3dpdGNoIChvcHRpb25z
LmRpcmVjdGlvbikgewogICAgY2FzZSAndG9wLWxlZnQnOgogICAgICBtb3ZlWCA9IG1vdmVZID0g
MDsKICAgICAgYnJlYWs7CiAgICBjYXNlICd0b3AtcmlnaHQnOgogICAgICBtb3ZlWCA9IGRpbXMu
d2lkdGg7CiAgICAgIG1vdmVZID0gMDsKICAgICAgYnJlYWs7CiAgICBjYXNlICdib3R0b20tbGVm
dCc6CiAgICAgIG1vdmVYID0gMDsKICAgICAgbW92ZVkgPSBkaW1zLmhlaWdodDsKICAgICAgYnJl
YWs7CiAgICBjYXNlICdib3R0b20tcmlnaHQnOgogICAgICBtb3ZlWCA9IGRpbXMud2lkdGg7CiAg
ICAgIG1vdmVZID0gZGltcy5oZWlnaHQ7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnY2VudGVyJzog
IAogICAgICBtb3ZlWCA9IGRpbXMud2lkdGggLyAyOwogICAgICBtb3ZlWSA9IGRpbXMuaGVpZ2h0
IC8gMjsKICAgICAgYnJlYWs7CiAgfQogIAogIHJldHVybiBuZXcgRWZmZWN0LlBhcmFsbGVsKAog
ICAgWyBuZXcgRWZmZWN0Lk9wYWNpdHkoZWxlbWVudCwgeyBzeW5jOiB0cnVlLCB0bzogMC4wLCBm
cm9tOiAxLjAsIHRyYW5zaXRpb246IG9wdGlvbnMub3BhY2l0eVRyYW5zaXRpb24gfSksCiAgICAg
IG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVudCwgd2luZG93Lm9wZXJhID8gMSA6IDAsIHsgc3luYzog
dHJ1ZSwgdHJhbnNpdGlvbjogb3B0aW9ucy5zY2FsZVRyYW5zaXRpb24sIHJlc3RvcmVBZnRlckZp
bmlzaDogdHJ1ZX0pLAogICAgICBuZXcgRWZmZWN0Lk1vdmUoZWxlbWVudCwgeyB4OiBtb3ZlWCwg
eTogbW92ZVksIHN5bmM6IHRydWUsIHRyYW5zaXRpb246IG9wdGlvbnMubW92ZVRyYW5zaXRpb24g
fSkKICAgIF0sIE9iamVjdC5leHRlbmQoeyAgICAgICAgICAgIAogICAgICAgICBiZWZvcmVTdGFy
dEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICAgICBlZmZlY3QuZWZmZWN0c1sw
XS5lbGVtZW50Lm1ha2VQb3NpdGlvbmVkKCkubWFrZUNsaXBwaW5nKCk7IAogICAgICAgICB9LAog
ICAgICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICAg
ICBlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LmhpZGUoKS51bmRvQ2xpcHBpbmcoKS51bmRvUG9z
aXRpb25lZCgpLnNldFN0eWxlKG9sZFN0eWxlKTsgfQogICAgICAgfSwgb3B0aW9ucykKICApOwp9
OwoKRWZmZWN0LlB1bHNhdGUgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxl
bWVudCk7CiAgdmFyIG9wdGlvbnMgICAgPSBhcmd1bWVudHNbMV0gfHwgeyB9OwogIHZhciBvbGRP
cGFjaXR5ID0gZWxlbWVudC5nZXRJbmxpbmVPcGFjaXR5KCk7CiAgdmFyIHRyYW5zaXRpb24gPSBv
cHRpb25zLnRyYW5zaXRpb24gfHwgRWZmZWN0LlRyYW5zaXRpb25zLnNpbm9pZGFsOwogIHZhciBy
ZXZlcnNlciAgID0gZnVuY3Rpb24ocG9zKXsgcmV0dXJuIHRyYW5zaXRpb24oMS1FZmZlY3QuVHJh
bnNpdGlvbnMucHVsc2UocG9zLCBvcHRpb25zLnB1bHNlcykpIH07CiAgcmV2ZXJzZXIuYmluZCh0
cmFuc2l0aW9uKTsKICByZXR1cm4gbmV3IEVmZmVjdC5PcGFjaXR5KGVsZW1lbnQsIAogICAgT2Jq
ZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKHsgIGR1cmF0aW9uOiAyLjAsIGZyb206IDAsCiAgICAg
IGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyBlZmZlY3QuZWxlbWVudC5z
ZXRTdHlsZSh7b3BhY2l0eTogb2xkT3BhY2l0eX0pOyB9CiAgICB9LCBvcHRpb25zKSwge3RyYW5z
aXRpb246IHJldmVyc2VyfSkpOwp9OwoKRWZmZWN0LkZvbGQgPSBmdW5jdGlvbihlbGVtZW50KSB7
CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgdmFyIG9sZFN0eWxlID0gewogICAgdG9wOiBlbGVt
ZW50LnN0eWxlLnRvcCwKICAgIGxlZnQ6IGVsZW1lbnQuc3R5bGUubGVmdCwKICAgIHdpZHRoOiBl
bGVtZW50LnN0eWxlLndpZHRoLAogICAgaGVpZ2h0OiBlbGVtZW50LnN0eWxlLmhlaWdodCB9Owog
IGVsZW1lbnQubWFrZUNsaXBwaW5nKCk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVu
dCwgNSwgT2JqZWN0LmV4dGVuZCh7ICAgCiAgICBzY2FsZUNvbnRlbnQ6IGZhbHNlLAogICAgc2Nh
bGVYOiBmYWxzZSwKICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewog
ICAgbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCAxLCB7IAogICAgICBzY2FsZUNvbnRlbnQ6IGZh
bHNlLCAKICAgICAgc2NhbGVZOiBmYWxzZSwKICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVu
Y3Rpb24oZWZmZWN0KSB7CiAgICAgICAgZWZmZWN0LmVsZW1lbnQuaGlkZSgpLnVuZG9DbGlwcGlu
ZygpLnNldFN0eWxlKG9sZFN0eWxlKTsKICAgICAgfSB9KTsKICB9fSwgYXJndW1lbnRzWzFdIHx8
IHsgfSkpOwp9OwoKRWZmZWN0Lk1vcnBoID0gQ2xhc3MuY3JlYXRlKEVmZmVjdC5CYXNlLCB7CiAg
aW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdGhpcy5lbGVtZW50ID0gJChlbGVt
ZW50KTsKICAgIGlmICghdGhpcy5lbGVtZW50KSB0aHJvdyhFZmZlY3QuX2VsZW1lbnREb2VzTm90
RXhpc3RFcnJvcik7CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICBzdHls
ZTogeyB9CiAgICB9LCBhcmd1bWVudHNbMV0gfHwgeyB9KTsKICAgIAogICAgaWYgKCFPYmplY3Qu
aXNTdHJpbmcob3B0aW9ucy5zdHlsZSkpIHRoaXMuc3R5bGUgPSAkSChvcHRpb25zLnN0eWxlKTsK
ICAgIGVsc2UgewogICAgICBpZiAob3B0aW9ucy5zdHlsZS5pbmNsdWRlKCc6JykpCiAgICAgICAg
dGhpcy5zdHlsZSA9IG9wdGlvbnMuc3R5bGUucGFyc2VTdHlsZSgpOwogICAgICBlbHNlIHsKICAg
ICAgICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3NOYW1lKG9wdGlvbnMuc3R5bGUpOwogICAgICAgIHRo
aXMuc3R5bGUgPSAkSCh0aGlzLmVsZW1lbnQuZ2V0U3R5bGVzKCkpOwogICAgICAgIHRoaXMuZWxl
bWVudC5yZW1vdmVDbGFzc05hbWUob3B0aW9ucy5zdHlsZSk7CiAgICAgICAgdmFyIGNzcyA9IHRo
aXMuZWxlbWVudC5nZXRTdHlsZXMoKTsKICAgICAgICB0aGlzLnN0eWxlID0gdGhpcy5zdHlsZS5y
ZWplY3QoZnVuY3Rpb24oc3R5bGUpIHsKICAgICAgICAgIHJldHVybiBzdHlsZS52YWx1ZSA9PSBj
c3Nbc3R5bGUua2V5XTsKICAgICAgICB9KTsKICAgICAgICBvcHRpb25zLmFmdGVyRmluaXNoSW50
ZXJuYWwgPSBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICAgIGVmZmVjdC5lbGVtZW50LmFkZENs
YXNzTmFtZShlZmZlY3Qub3B0aW9ucy5zdHlsZSk7CiAgICAgICAgICBlZmZlY3QudHJhbnNmb3Jt
cy5lYWNoKGZ1bmN0aW9uKHRyYW5zZm9ybSkgewogICAgICAgICAgICBlZmZlY3QuZWxlbWVudC5z
dHlsZVt0cmFuc2Zvcm0uc3R5bGVdID0gJyc7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAg
IH0KICAgIH0KICAgIHRoaXMuc3RhcnQob3B0aW9ucyk7CiAgfSwKICAKICBzZXR1cDogZnVuY3Rp
b24oKXsKICAgIGZ1bmN0aW9uIHBhcnNlQ29sb3IoY29sb3IpewogICAgICBpZiAoIWNvbG9yIHx8
IFsncmdiYSgwLCAwLCAwLCAwKScsJ3RyYW5zcGFyZW50J10uaW5jbHVkZShjb2xvcikpIGNvbG9y
ID0gJyNmZmZmZmYnOwogICAgICBjb2xvciA9IGNvbG9yLnBhcnNlQ29sb3IoKTsKICAgICAgcmV0
dXJuICRSKDAsMikubWFwKGZ1bmN0aW9uKGkpewogICAgICAgIHJldHVybiBwYXJzZUludCggY29s
b3Iuc2xpY2UoaSoyKzEsaSoyKzMpLCAxNiApIAogICAgICB9KTsKICAgIH0KICAgIHRoaXMudHJh
bnNmb3JtcyA9IHRoaXMuc3R5bGUubWFwKGZ1bmN0aW9uKHBhaXIpewogICAgICB2YXIgcHJvcGVy
dHkgPSBwYWlyWzBdLCB2YWx1ZSA9IHBhaXJbMV0sIHVuaXQgPSBudWxsOwoKICAgICAgaWYgKHZh
bHVlLnBhcnNlQ29sb3IoJyN6enp6enonKSAhPSAnI3p6enp6eicpIHsKICAgICAgICB2YWx1ZSA9
IHZhbHVlLnBhcnNlQ29sb3IoKTsKICAgICAgICB1bml0ICA9ICdjb2xvcic7CiAgICAgIH0gZWxz
ZSBpZiAocHJvcGVydHkgPT0gJ29wYWNpdHknKSB7CiAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0
KHZhbHVlKTsKICAgICAgICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUgJiYgKCF0aGlzLmVsZW1l
bnQuY3VycmVudFN0eWxlLmhhc0xheW91dCkpCiAgICAgICAgICB0aGlzLmVsZW1lbnQuc2V0U3R5
bGUoe3pvb206IDF9KTsKICAgICAgfSBlbHNlIGlmIChFbGVtZW50LkNTU19MRU5HVEgudGVzdCh2
YWx1ZSkpIHsKICAgICAgICAgIHZhciBjb21wb25lbnRzID0gdmFsdWUubWF0Y2goL14oW1wrXC1d
P1swLTlcLl0rKSguKikkLyk7CiAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQoY29tcG9uZW50
c1sxXSk7CiAgICAgICAgICB1bml0ID0gKGNvbXBvbmVudHMubGVuZ3RoID09IDMpID8gY29tcG9u
ZW50c1syXSA6IG51bGw7CiAgICAgIH0KCiAgICAgIHZhciBvcmlnaW5hbFZhbHVlID0gdGhpcy5l
bGVtZW50LmdldFN0eWxlKHByb3BlcnR5KTsKICAgICAgcmV0dXJuIHsgCiAgICAgICAgc3R5bGU6
IHByb3BlcnR5LmNhbWVsaXplKCksIAogICAgICAgIG9yaWdpbmFsVmFsdWU6IHVuaXQ9PSdjb2xv
cicgPyBwYXJzZUNvbG9yKG9yaWdpbmFsVmFsdWUpIDogcGFyc2VGbG9hdChvcmlnaW5hbFZhbHVl
IHx8IDApLCAKICAgICAgICB0YXJnZXRWYWx1ZTogdW5pdD09J2NvbG9yJyA/IHBhcnNlQ29sb3Io
dmFsdWUpIDogdmFsdWUsCiAgICAgICAgdW5pdDogdW5pdAogICAgICB9OwogICAgfS5iaW5kKHRo
aXMpKS5yZWplY3QoZnVuY3Rpb24odHJhbnNmb3JtKXsKICAgICAgcmV0dXJuICgKICAgICAgICAo
dHJhbnNmb3JtLm9yaWdpbmFsVmFsdWUgPT0gdHJhbnNmb3JtLnRhcmdldFZhbHVlKSB8fAogICAg
ICAgICgKICAgICAgICAgIHRyYW5zZm9ybS51bml0ICE9ICdjb2xvcicgJiYKICAgICAgICAgIChp
c05hTih0cmFuc2Zvcm0ub3JpZ2luYWxWYWx1ZSkgfHwgaXNOYU4odHJhbnNmb3JtLnRhcmdldFZh
bHVlKSkKICAgICAgICApCiAgICAgICkKICAgIH0pOwogIH0sCiAgdXBkYXRlOiBmdW5jdGlvbihw
b3NpdGlvbikgewogICAgdmFyIHN0eWxlID0geyB9LCB0cmFuc2Zvcm0sIGkgPSB0aGlzLnRyYW5z
Zm9ybXMubGVuZ3RoOwogICAgd2hpbGUoaS0tKQogICAgICBzdHlsZVsodHJhbnNmb3JtID0gdGhp
cy50cmFuc2Zvcm1zW2ldKS5zdHlsZV0gPSAKICAgICAgICB0cmFuc2Zvcm0udW5pdD09J2NvbG9y
JyA/ICcjJysKICAgICAgICAgIChNYXRoLnJvdW5kKHRyYW5zZm9ybS5vcmlnaW5hbFZhbHVlWzBd
KwogICAgICAgICAgICAodHJhbnNmb3JtLnRhcmdldFZhbHVlWzBdLXRyYW5zZm9ybS5vcmlnaW5h
bFZhbHVlWzBdKSpwb3NpdGlvbikpLnRvQ29sb3JQYXJ0KCkgKwogICAgICAgICAgKE1hdGgucm91
bmQodHJhbnNmb3JtLm9yaWdpbmFsVmFsdWVbMV0rCiAgICAgICAgICAgICh0cmFuc2Zvcm0udGFy
Z2V0VmFsdWVbMV0tdHJhbnNmb3JtLm9yaWdpbmFsVmFsdWVbMV0pKnBvc2l0aW9uKSkudG9Db2xv
clBhcnQoKSArCiAgICAgICAgICAoTWF0aC5yb3VuZCh0cmFuc2Zvcm0ub3JpZ2luYWxWYWx1ZVsy
XSsKICAgICAgICAgICAgKHRyYW5zZm9ybS50YXJnZXRWYWx1ZVsyXS10cmFuc2Zvcm0ub3JpZ2lu
YWxWYWx1ZVsyXSkqcG9zaXRpb24pKS50b0NvbG9yUGFydCgpIDoKICAgICAgICAodHJhbnNmb3Jt
Lm9yaWdpbmFsVmFsdWUgKwogICAgICAgICAgKHRyYW5zZm9ybS50YXJnZXRWYWx1ZSAtIHRyYW5z
Zm9ybS5vcmlnaW5hbFZhbHVlKSAqIHBvc2l0aW9uKS50b0ZpeGVkKDMpICsgCiAgICAgICAgICAg
ICh0cmFuc2Zvcm0udW5pdCA9PT0gbnVsbCA/ICcnIDogdHJhbnNmb3JtLnVuaXQpOwogICAgdGhp
cy5lbGVtZW50LnNldFN0eWxlKHN0eWxlLCB0cnVlKTsKICB9Cn0pOwoKRWZmZWN0LlRyYW5zZm9y
bSA9IENsYXNzLmNyZWF0ZSh7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24odHJhY2tzKXsKICAgIHRo
aXMudHJhY2tzICA9IFtdOwogICAgdGhpcy5vcHRpb25zID0gYXJndW1lbnRzWzFdIHx8IHsgfTsK
ICAgIHRoaXMuYWRkVHJhY2tzKHRyYWNrcyk7CiAgfSwKICBhZGRUcmFja3M6IGZ1bmN0aW9uKHRy
YWNrcyl7CiAgICB0cmFja3MuZWFjaChmdW5jdGlvbih0cmFjayl7CiAgICAgIHRyYWNrID0gJEgo
dHJhY2spOwogICAgICB2YXIgZGF0YSA9IHRyYWNrLnZhbHVlcygpLmZpcnN0KCk7CiAgICAgIHRo
aXMudHJhY2tzLnB1c2goJEgoewogICAgICAgIGlkczogICAgIHRyYWNrLmtleXMoKS5maXJzdCgp
LAogICAgICAgIGVmZmVjdDogIEVmZmVjdC5Nb3JwaCwKICAgICAgICBvcHRpb25zOiB7IHN0eWxl
OiBkYXRhIH0KICAgICAgfSkpOwogICAgfS5iaW5kKHRoaXMpKTsKICAgIHJldHVybiB0aGlzOwog
IH0sCiAgcGxheTogZnVuY3Rpb24oKXsKICAgIHJldHVybiBuZXcgRWZmZWN0LlBhcmFsbGVsKAog
ICAgICB0aGlzLnRyYWNrcy5tYXAoZnVuY3Rpb24odHJhY2spewogICAgICAgIHZhciBpZHMgPSB0
cmFjay5nZXQoJ2lkcycpLCBlZmZlY3QgPSB0cmFjay5nZXQoJ2VmZmVjdCcpLCBvcHRpb25zID0g
dHJhY2suZ2V0KCdvcHRpb25zJyk7CiAgICAgICAgdmFyIGVsZW1lbnRzID0gWyQoaWRzKSB8fCAk
JChpZHMpXS5mbGF0dGVuKCk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnRzLm1hcChmdW5jdGlvbihl
KXsgcmV0dXJuIG5ldyBlZmZlY3QoZSwgT2JqZWN0LmV4dGVuZCh7IHN5bmM6dHJ1ZSB9LCBvcHRp
b25zKSkgfSk7CiAgICAgIH0pLmZsYXR0ZW4oKSwKICAgICAgdGhpcy5vcHRpb25zCiAgICApOwog
IH0KfSk7CgpFbGVtZW50LkNTU19QUk9QRVJUSUVTID0gJHcoCiAgJ2JhY2tncm91bmRDb2xvciBi
YWNrZ3JvdW5kUG9zaXRpb24gYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyQm90dG9tU3R5bGUgJyAr
IAogICdib3JkZXJCb3R0b21XaWR0aCBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyTGVmdFN0eWxlIGJv
cmRlckxlZnRXaWR0aCAnICsKICAnYm9yZGVyUmlnaHRDb2xvciBib3JkZXJSaWdodFN0eWxlIGJv
cmRlclJpZ2h0V2lkdGggYm9yZGVyU3BhY2luZyAnICsKICAnYm9yZGVyVG9wQ29sb3IgYm9yZGVy
VG9wU3R5bGUgYm9yZGVyVG9wV2lkdGggYm90dG9tIGNsaXAgY29sb3IgJyArCiAgJ2ZvbnRTaXpl
IGZvbnRXZWlnaHQgaGVpZ2h0IGxlZnQgbGV0dGVyU3BhY2luZyBsaW5lSGVpZ2h0ICcgKwogICdt
YXJnaW5Cb3R0b20gbWFyZ2luTGVmdCBtYXJnaW5SaWdodCBtYXJnaW5Ub3AgbWFya2VyT2Zmc2V0
IG1heEhlaWdodCAnKwogICdtYXhXaWR0aCBtaW5IZWlnaHQgbWluV2lkdGggb3BhY2l0eSBvdXRs
aW5lQ29sb3Igb3V0bGluZU9mZnNldCAnICsKICAnb3V0bGluZVdpZHRoIHBhZGRpbmdCb3R0b20g
cGFkZGluZ0xlZnQgcGFkZGluZ1JpZ2h0IHBhZGRpbmdUb3AgJyArCiAgJ3JpZ2h0IHRleHRJbmRl
bnQgdG9wIHdpZHRoIHdvcmRTcGFjaW5nIHpJbmRleCcpOwogIApFbGVtZW50LkNTU19MRU5HVEgg
PSAvXigoW1wrXC1dP1swLTlcLl0rKShlbXxleHxweHxpbnxjbXxtbXxwdHxwY3xcJSkpfDAkLzsK
ClN0cmluZy5fX3BhcnNlU3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7ClN0cmluZy5wcm90b3R5cGUucGFyc2VTdHlsZSA9IGZ1bmN0aW9uKCl7CiAgdmFyIHN0eWxl
LCBzdHlsZVJ1bGVzID0gJEgoKTsKICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KQogICAg
c3R5bGUgPSBuZXcgRWxlbWVudCgnZGl2Jyx7c3R5bGU6dGhpc30pLnN0eWxlOwogIGVsc2Ugewog
ICAgU3RyaW5nLl9fcGFyc2VTdHlsZUVsZW1lbnQuaW5uZXJIVE1MID0gJzxkaXYgc3R5bGU9Iicg
KyB0aGlzICsgJyI+PC9kaXY+JzsKICAgIHN0eWxlID0gU3RyaW5nLl9fcGFyc2VTdHlsZUVsZW1l
bnQuY2hpbGROb2Rlc1swXS5zdHlsZTsKICB9CiAgCiAgRWxlbWVudC5DU1NfUFJPUEVSVElFUy5l
YWNoKGZ1bmN0aW9uKHByb3BlcnR5KXsKICAgIGlmIChzdHlsZVtwcm9wZXJ0eV0pIHN0eWxlUnVs
ZXMuc2V0KHByb3BlcnR5LCBzdHlsZVtwcm9wZXJ0eV0pOyAKICB9KTsKICAKICBpZiAoUHJvdG90
eXBlLkJyb3dzZXIuSUUgJiYgdGhpcy5pbmNsdWRlKCdvcGFjaXR5JykpCiAgICBzdHlsZVJ1bGVz
LnNldCgnb3BhY2l0eScsIHRoaXMubWF0Y2goL29wYWNpdHk6XHMqKCg/OjB8MSk/KD86XC5cZCop
PykvKVsxXSk7CgogIHJldHVybiBzdHlsZVJ1bGVzOwp9OwoKaWYgKGRvY3VtZW50LmRlZmF1bHRW
aWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpIHsKICBFbGVtZW50
LmdldFN0eWxlcyA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciBjc3MgPSBkb2N1bWVudC5k
ZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKCQoZWxlbWVudCksIG51bGwpOwogICAgcmV0dXJu
IEVsZW1lbnQuQ1NTX1BST1BFUlRJRVMuaW5qZWN0KHsgfSwgZnVuY3Rpb24oc3R5bGVzLCBwcm9w
ZXJ0eSkgewogICAgICBzdHlsZXNbcHJvcGVydHldID0gY3NzW3Byb3BlcnR5XTsKICAgICAgcmV0
dXJuIHN0eWxlczsKICAgIH0pOwogIH07Cn0gZWxzZSB7CiAgRWxlbWVudC5nZXRTdHlsZXMgPSBm
dW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBjc3Mg
PSBlbGVtZW50LmN1cnJlbnRTdHlsZSwgc3R5bGVzOwogICAgc3R5bGVzID0gRWxlbWVudC5DU1Nf
UFJPUEVSVElFUy5pbmplY3QoeyB9LCBmdW5jdGlvbihyZXN1bHRzLCBwcm9wZXJ0eSkgewogICAg
ICByZXN1bHRzW3Byb3BlcnR5XSA9IGNzc1twcm9wZXJ0eV07CiAgICAgIHJldHVybiByZXN1bHRz
OwogICAgfSk7CiAgICBpZiAoIXN0eWxlcy5vcGFjaXR5KSBzdHlsZXMub3BhY2l0eSA9IGVsZW1l
bnQuZ2V0T3BhY2l0eSgpOwogICAgcmV0dXJuIHN0eWxlczsKICB9Owp9OwoKRWZmZWN0Lk1ldGhv
ZHMgPSB7CiAgbW9ycGg6IGZ1bmN0aW9uKGVsZW1lbnQsIHN0eWxlKSB7CiAgICBlbGVtZW50ID0g
JChlbGVtZW50KTsKICAgIG5ldyBFZmZlY3QuTW9ycGgoZWxlbWVudCwgT2JqZWN0LmV4dGVuZCh7
IHN0eWxlOiBzdHlsZSB9LCBhcmd1bWVudHNbMl0gfHwgeyB9KSk7CiAgICByZXR1cm4gZWxlbWVu
dDsKICB9LAogIHZpc3VhbEVmZmVjdDogZnVuY3Rpb24oZWxlbWVudCwgZWZmZWN0LCBvcHRpb25z
KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KQogICAgdmFyIHMgPSBlZmZlY3QuZGFzaGVyaXpl
KCkuY2FtZWxpemUoKSwga2xhc3MgPSBzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcy5zdWJz
dHJpbmcoMSk7CiAgICBuZXcgRWZmZWN0W2tsYXNzXShlbGVtZW50LCBvcHRpb25zKTsKICAgIHJl
dHVybiBlbGVtZW50OwogIH0sCiAgaGlnaGxpZ2h0OiBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25z
KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIG5ldyBFZmZlY3QuSGlnaGxpZ2h0KGVs
ZW1lbnQsIG9wdGlvbnMpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfQp9OwoKJHcoJ2ZhZGUgYXBw
ZWFyIGdyb3cgc2hyaW5rIGZvbGQgYmxpbmRVcCBibGluZERvd24gc2xpZGVVcCBzbGlkZURvd24g
JysKICAncHVsc2F0ZSBzaGFrZSBwdWZmIHNxdWlzaCBzd2l0Y2hPZmYgZHJvcE91dCcpLmVhY2go
CiAgZnVuY3Rpb24oZWZmZWN0KSB7IAogICAgRWZmZWN0Lk1ldGhvZHNbZWZmZWN0XSA9IGZ1bmN0
aW9uKGVsZW1lbnQsIG9wdGlvbnMpewogICAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgICAg
RWZmZWN0W2VmZmVjdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGVmZmVjdC5zdWJzdHJpbmco
MSldKGVsZW1lbnQsIG9wdGlvbnMpOwogICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICB9Cik7
CgokdygnZ2V0SW5saW5lT3BhY2l0eSBmb3JjZVJlcmVuZGVyaW5nIHNldENvbnRlbnRab29tIGNv
bGxlY3RUZXh0Tm9kZXMgY29sbGVjdFRleHROb2Rlc0lnbm9yZUNsYXNzIGdldFN0eWxlcycpLmVh
Y2goIAogIGZ1bmN0aW9uKGYpIHsgRWZmZWN0Lk1ldGhvZHNbZl0gPSBFbGVtZW50W2ZdOyB9Cik7
CgpFbGVtZW50LmFkZE1ldGhvZHMoRWZmZWN0Lk1ldGhvZHMpOwrUAAUAEQAHAAgBGwEcABQBHV8Q
R2h0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2xpYi9zY3JpcHRhY3Vsb3VzLzEu
OC4xL2RyYWdkcm9wLmpzTxEEWWJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hp
dmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJj
aGl2ZXKvECALDCYsLTMeNDVPUFFSU1RVVldYWVpbXF1eX2BhYmNnaFUkbnVsbN0NDg8QERITFBUW
FxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIk
MFIkMYAfgAKAHhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAE
gACAA18QR2h0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vanMvYXBwL2xpYi9zY3JpcHRhY3Vs
b3VzLzEuOC4xL2RyYWdkcm9wLmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhO
U09iamVjdCNBrZH7CX3GXBDI0w02Nzg5RFdOUy5rZXlzWk5TLm9iamVjdHOAHao6Ozw9Pj9AQUJD
gAmACoALgAyADYAOgA+AEIARgBKqRUZHSElKS0xNToATgBSAFYAWgBeAGIAZgBqAG4AcXUxhc3Qt
TW9kaWZpZWRdQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRlbnQt
VHlwZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvblRWYXJ5XxAdRnJpLCAxMyBK
dW4gMjAwOCAxNToxNjoyNCBHTVRVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFf
EBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRUNzcxN18QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6
NDQgR01UXxAPIjdiNzUtNDg1MjhmNDgiWmtlZXAtYWxpdmVfEA9BY2NlcHQtRW5jb2RpbmfSLi9k
ZaNlZjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeRF7ddIuL2lqo2prMl8QEU5T
SFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIcAjQCo
AK8AsgC1ALkAvQDAAMMAxgDJAMwAzwDSANUA1wDZANsA3QDfAOEA4wDlAOcA6QDrAO0A9AD8AQgB
CgEMAQ4BWAFdAWYBcQF0AXoBgwGMAY4BlQGdAagBqgG1AbcBuQG7Ab0BvwHBAcMBxQHHAckB1AHW
AdgB2gHcAd4B4AHiAeQB5gHoAfYCBAIXAh4CKwI6Aj8CRAJPAlQCdAJ6An8CmAKzArgC2ALqAvUD
BwMMAxADJgMzAzYDOwM/A1MAAAAAAAACAQAAAAAAAABsAAAAAAAAAAAAAAAAAAADYU8Re3UvLyBz
Y3JpcHQuYWN1bG8udXMgZHJhZ2Ryb3AuanMgdjEuOC4xLCBUaHUgSmFuIDAzIDIyOjA3OjEyIC0w
NTAwIDIwMDgKCi8vIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFRob21hcyBGdWNocyAoaHR0cDov
L3NjcmlwdC5hY3Vsby51cywgaHR0cDovL21pci5hY3Vsby51cykKLy8gICAgICAgICAgIChjKSAy
MDA1LTIwMDcgU2FtbWkgV2lsbGlhbXMgKGh0dHA6Ly93d3cub3Jpb250cmFuc2Zlci5jby5ueiwg
c2FtbWlAb3Jpb250cmFuc2Zlci5jby5ueikKLy8gCi8vIHNjcmlwdC5hY3Vsby51cyBpcyBmcmVl
bHkgZGlzdHJpYnV0YWJsZSB1bmRlciB0aGUgdGVybXMgb2YgYW4gTUlULXN0eWxlIGxpY2Vuc2Uu
Ci8vIEZvciBkZXRhaWxzLCBzZWUgdGhlIHNjcmlwdC5hY3Vsby51cyB3ZWIgc2l0ZTogaHR0cDov
L3NjcmlwdC5hY3Vsby51cy8KCmlmKE9iamVjdC5pc1VuZGVmaW5lZChFZmZlY3QpKQogIHRocm93
KCJkcmFnZHJvcC5qcyByZXF1aXJlcyBpbmNsdWRpbmcgc2NyaXB0LmFjdWxvLnVzJyBlZmZlY3Rz
LmpzIGxpYnJhcnkiKTsKCnZhciBEcm9wcGFibGVzID0gewogIGRyb3BzOiBbXSwKCiAgcmVtb3Zl
OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLmRyb3BzID0gdGhpcy5kcm9wcy5yZWplY3Qo
ZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5lbGVtZW50PT0kKGVsZW1lbnQpIH0pOwogIH0sCgogIGFk
ZDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIg
b3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICBncmVlZHk6ICAgICB0cnVlLAogICAgICBo
b3ZlcmNsYXNzOiBudWxsLAogICAgICB0cmVlOiAgICAgICBmYWxzZQogICAgfSwgYXJndW1lbnRz
WzFdIHx8IHsgfSk7CgogICAgLy8gY2FjaGUgY29udGFpbmVycwogICAgaWYob3B0aW9ucy5jb250
YWlubWVudCkgewogICAgICBvcHRpb25zLl9jb250YWluZXJzID0gW107CiAgICAgIHZhciBjb250
YWlubWVudCA9IG9wdGlvbnMuY29udGFpbm1lbnQ7CiAgICAgIGlmKE9iamVjdC5pc0FycmF5KGNv
bnRhaW5tZW50KSkgewogICAgICAgIGNvbnRhaW5tZW50LmVhY2goIGZ1bmN0aW9uKGMpIHsgb3B0
aW9ucy5fY29udGFpbmVycy5wdXNoKCQoYykpIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIG9w
dGlvbnMuX2NvbnRhaW5lcnMucHVzaCgkKGNvbnRhaW5tZW50KSk7CiAgICAgIH0KICAgIH0KICAg
IAogICAgaWYob3B0aW9ucy5hY2NlcHQpIG9wdGlvbnMuYWNjZXB0ID0gW29wdGlvbnMuYWNjZXB0
XS5mbGF0dGVuKCk7CgogICAgRWxlbWVudC5tYWtlUG9zaXRpb25lZChlbGVtZW50KTsgLy8gZml4
IElFCiAgICBvcHRpb25zLmVsZW1lbnQgPSBlbGVtZW50OwoKICAgIHRoaXMuZHJvcHMucHVzaChv
cHRpb25zKTsKICB9LAogIAogIGZpbmREZWVwZXN0Q2hpbGQ6IGZ1bmN0aW9uKGRyb3BzKSB7CiAg
ICBkZWVwZXN0ID0gZHJvcHNbMF07CiAgICAgIAogICAgZm9yIChpID0gMTsgaSA8IGRyb3BzLmxl
bmd0aDsgKytpKQogICAgICBpZiAoRWxlbWVudC5pc1BhcmVudChkcm9wc1tpXS5lbGVtZW50LCBk
ZWVwZXN0LmVsZW1lbnQpKQogICAgICAgIGRlZXBlc3QgPSBkcm9wc1tpXTsKICAgIAogICAgcmV0
dXJuIGRlZXBlc3Q7CiAgfSwKCiAgaXNDb250YWluZWQ6IGZ1bmN0aW9uKGVsZW1lbnQsIGRyb3Ap
IHsKICAgIHZhciBjb250YWlubWVudE5vZGU7CiAgICBpZihkcm9wLnRyZWUpIHsKICAgICAgY29u
dGFpbm1lbnROb2RlID0gZWxlbWVudC50cmVlTm9kZTsgCiAgICB9IGVsc2UgewogICAgICBjb250
YWlubWVudE5vZGUgPSBlbGVtZW50LnBhcmVudE5vZGU7CiAgICB9CiAgICByZXR1cm4gZHJvcC5f
Y29udGFpbmVycy5kZXRlY3QoZnVuY3Rpb24oYykgeyByZXR1cm4gY29udGFpbm1lbnROb2RlID09
IGMgfSk7CiAgfSwKICAKICBpc0FmZmVjdGVkOiBmdW5jdGlvbihwb2ludCwgZWxlbWVudCwgZHJv
cCkgewogICAgcmV0dXJuICgKICAgICAgKGRyb3AuZWxlbWVudCE9ZWxlbWVudCkgJiYKICAgICAg
KCghZHJvcC5fY29udGFpbmVycykgfHwKICAgICAgICB0aGlzLmlzQ29udGFpbmVkKGVsZW1lbnQs
IGRyb3ApKSAmJgogICAgICAoKCFkcm9wLmFjY2VwdCkgfHwKICAgICAgICAoRWxlbWVudC5jbGFz
c05hbWVzKGVsZW1lbnQpLmRldGVjdCggCiAgICAgICAgICBmdW5jdGlvbih2KSB7IHJldHVybiBk
cm9wLmFjY2VwdC5pbmNsdWRlKHYpIH0gKSApKSAmJgogICAgICBQb3NpdGlvbi53aXRoaW4oZHJv
cC5lbGVtZW50LCBwb2ludFswXSwgcG9pbnRbMV0pICk7CiAgfSwKCiAgZGVhY3RpdmF0ZTogZnVu
Y3Rpb24oZHJvcCkgewogICAgaWYoZHJvcC5ob3ZlcmNsYXNzKQogICAgICBFbGVtZW50LnJlbW92
ZUNsYXNzTmFtZShkcm9wLmVsZW1lbnQsIGRyb3AuaG92ZXJjbGFzcyk7CiAgICB0aGlzLmxhc3Rf
YWN0aXZlID0gbnVsbDsKICB9LAoKICBhY3RpdmF0ZTogZnVuY3Rpb24oZHJvcCkgewogICAgaWYo
ZHJvcC5ob3ZlcmNsYXNzKQogICAgICBFbGVtZW50LmFkZENsYXNzTmFtZShkcm9wLmVsZW1lbnQs
IGRyb3AuaG92ZXJjbGFzcyk7CiAgICB0aGlzLmxhc3RfYWN0aXZlID0gZHJvcDsKICB9LAoKICBz
aG93OiBmdW5jdGlvbihwb2ludCwgZWxlbWVudCkgewogICAgaWYoIXRoaXMuZHJvcHMubGVuZ3Ro
KSByZXR1cm47CiAgICB2YXIgZHJvcCwgYWZmZWN0ZWQgPSBbXTsKICAgIAogICAgdGhpcy5kcm9w
cy5lYWNoKCBmdW5jdGlvbihkcm9wKSB7CiAgICAgIGlmKERyb3BwYWJsZXMuaXNBZmZlY3RlZChw
b2ludCwgZWxlbWVudCwgZHJvcCkpCiAgICAgICAgYWZmZWN0ZWQucHVzaChkcm9wKTsKICAgIH0p
OwogICAgICAgIAogICAgaWYoYWZmZWN0ZWQubGVuZ3RoPjApCiAgICAgIGRyb3AgPSBEcm9wcGFi
bGVzLmZpbmREZWVwZXN0Q2hpbGQoYWZmZWN0ZWQpOwoKICAgIGlmKHRoaXMubGFzdF9hY3RpdmUg
JiYgdGhpcy5sYXN0X2FjdGl2ZSAhPSBkcm9wKSB0aGlzLmRlYWN0aXZhdGUodGhpcy5sYXN0X2Fj
dGl2ZSk7CiAgICBpZiAoZHJvcCkgewogICAgICBQb3NpdGlvbi53aXRoaW4oZHJvcC5lbGVtZW50
LCBwb2ludFswXSwgcG9pbnRbMV0pOwogICAgICBpZihkcm9wLm9uSG92ZXIpCiAgICAgICAgZHJv
cC5vbkhvdmVyKGVsZW1lbnQsIGRyb3AuZWxlbWVudCwgUG9zaXRpb24ub3ZlcmxhcChkcm9wLm92
ZXJsYXAsIGRyb3AuZWxlbWVudCkpOwogICAgICAKICAgICAgaWYgKGRyb3AgIT0gdGhpcy5sYXN0
X2FjdGl2ZSkgRHJvcHBhYmxlcy5hY3RpdmF0ZShkcm9wKTsKICAgIH0KICB9LAoKICBmaXJlOiBm
dW5jdGlvbihldmVudCwgZWxlbWVudCkgewogICAgaWYoIXRoaXMubGFzdF9hY3RpdmUpIHJldHVy
bjsKICAgIFBvc2l0aW9uLnByZXBhcmUoKTsKCiAgICBpZiAodGhpcy5pc0FmZmVjdGVkKFtFdmVu
dC5wb2ludGVyWChldmVudCksIEV2ZW50LnBvaW50ZXJZKGV2ZW50KV0sIGVsZW1lbnQsIHRoaXMu
bGFzdF9hY3RpdmUpKQogICAgICBpZiAodGhpcy5sYXN0X2FjdGl2ZS5vbkRyb3ApIHsKICAgICAg
ICB0aGlzLmxhc3RfYWN0aXZlLm9uRHJvcChlbGVtZW50LCB0aGlzLmxhc3RfYWN0aXZlLmVsZW1l
bnQsIGV2ZW50KTsgCiAgICAgICAgcmV0dXJuIHRydWU7IAogICAgICB9CiAgfSwKCiAgcmVzZXQ6
IGZ1bmN0aW9uKCkgewogICAgaWYodGhpcy5sYXN0X2FjdGl2ZSkKICAgICAgdGhpcy5kZWFjdGl2
YXRlKHRoaXMubGFzdF9hY3RpdmUpOwogIH0KfQoKdmFyIERyYWdnYWJsZXMgPSB7CiAgZHJhZ3M6
IFtdLAogIG9ic2VydmVyczogW10sCiAgCiAgcmVnaXN0ZXI6IGZ1bmN0aW9uKGRyYWdnYWJsZSkg
ewogICAgaWYodGhpcy5kcmFncy5sZW5ndGggPT0gMCkgewogICAgICB0aGlzLmV2ZW50TW91c2VV
cCAgID0gdGhpcy5lbmREcmFnLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgIHRoaXMu
ZXZlbnRNb3VzZU1vdmUgPSB0aGlzLnVwZGF0ZURyYWcuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlz
KTsKICAgICAgdGhpcy5ldmVudEtleXByZXNzICA9IHRoaXMua2V5UHJlc3MuYmluZEFzRXZlbnRM
aXN0ZW5lcih0aGlzKTsKICAgICAgCiAgICAgIEV2ZW50Lm9ic2VydmUoZG9jdW1lbnQsICJtb3Vz
ZXVwIiwgdGhpcy5ldmVudE1vdXNlVXApOwogICAgICBFdmVudC5vYnNlcnZlKGRvY3VtZW50LCAi
bW91c2Vtb3ZlIiwgdGhpcy5ldmVudE1vdXNlTW92ZSk7CiAgICAgIEV2ZW50Lm9ic2VydmUoZG9j
dW1lbnQsICJrZXlwcmVzcyIsIHRoaXMuZXZlbnRLZXlwcmVzcyk7CiAgICB9CiAgICB0aGlzLmRy
YWdzLnB1c2goZHJhZ2dhYmxlKTsKICB9LAogIAogIHVucmVnaXN0ZXI6IGZ1bmN0aW9uKGRyYWdn
YWJsZSkgewogICAgdGhpcy5kcmFncyA9IHRoaXMuZHJhZ3MucmVqZWN0KGZ1bmN0aW9uKGQpIHsg
cmV0dXJuIGQ9PWRyYWdnYWJsZSB9KTsKICAgIGlmKHRoaXMuZHJhZ3MubGVuZ3RoID09IDApIHsK
ICAgICAgRXZlbnQuc3RvcE9ic2VydmluZyhkb2N1bWVudCwgIm1vdXNldXAiLCB0aGlzLmV2ZW50
TW91c2VVcCk7CiAgICAgIEV2ZW50LnN0b3BPYnNlcnZpbmcoZG9jdW1lbnQsICJtb3VzZW1vdmUi
LCB0aGlzLmV2ZW50TW91c2VNb3ZlKTsKICAgICAgRXZlbnQuc3RvcE9ic2VydmluZyhkb2N1bWVu
dCwgImtleXByZXNzIiwgdGhpcy5ldmVudEtleXByZXNzKTsKICAgIH0KICB9LAogIAogIGFjdGl2
YXRlOiBmdW5jdGlvbihkcmFnZ2FibGUpIHsKICAgIGlmKGRyYWdnYWJsZS5vcHRpb25zLmRlbGF5
KSB7IAogICAgICB0aGlzLl90aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsgCiAgICAg
ICAgRHJhZ2dhYmxlcy5fdGltZW91dCA9IG51bGw7IAogICAgICAgIHdpbmRvdy5mb2N1cygpOyAK
ICAgICAgICBEcmFnZ2FibGVzLmFjdGl2ZURyYWdnYWJsZSA9IGRyYWdnYWJsZTsgCiAgICAgIH0u
YmluZCh0aGlzKSwgZHJhZ2dhYmxlLm9wdGlvbnMuZGVsYXkpOyAKICAgIH0gZWxzZSB7CiAgICAg
IHdpbmRvdy5mb2N1cygpOyAvLyBhbGxvd3Mga2V5cHJlc3MgZXZlbnRzIGlmIHdpbmRvdyBpc24n
dCBjdXJyZW50bHkgZm9jdXNlZCwgZmFpbHMgZm9yIFNhZmFyaQogICAgICB0aGlzLmFjdGl2ZURy
YWdnYWJsZSA9IGRyYWdnYWJsZTsKICAgIH0KICB9LAogIAogIGRlYWN0aXZhdGU6IGZ1bmN0aW9u
KCkgewogICAgdGhpcy5hY3RpdmVEcmFnZ2FibGUgPSBudWxsOwogIH0sCiAgCiAgdXBkYXRlRHJh
ZzogZnVuY3Rpb24oZXZlbnQpIHsKICAgIGlmKCF0aGlzLmFjdGl2ZURyYWdnYWJsZSkgcmV0dXJu
OwogICAgdmFyIHBvaW50ZXIgPSBbRXZlbnQucG9pbnRlclgoZXZlbnQpLCBFdmVudC5wb2ludGVy
WShldmVudCldOwogICAgLy8gTW96aWxsYS1iYXNlZCBicm93c2VycyBmaXJlIHN1Y2Nlc3NpdmUg
bW91c2Vtb3ZlIGV2ZW50cyB3aXRoCiAgICAvLyB0aGUgc2FtZSBjb29yZGluYXRlcywgcHJldmVu
dCBuZWVkbGVzcyByZWRyYXdpbmcgKG1veiBidWc/KQogICAgaWYodGhpcy5fbGFzdFBvaW50ZXIg
JiYgKHRoaXMuX2xhc3RQb2ludGVyLmluc3BlY3QoKSA9PSBwb2ludGVyLmluc3BlY3QoKSkpIHJl
dHVybjsKICAgIHRoaXMuX2xhc3RQb2ludGVyID0gcG9pbnRlcjsKICAgIAogICAgdGhpcy5hY3Rp
dmVEcmFnZ2FibGUudXBkYXRlRHJhZyhldmVudCwgcG9pbnRlcik7CiAgfSwKICAKICBlbmREcmFn
OiBmdW5jdGlvbihldmVudCkgewogICAgaWYodGhpcy5fdGltZW91dCkgeyAKICAgICAgY2xlYXJU
aW1lb3V0KHRoaXMuX3RpbWVvdXQpOyAKICAgICAgdGhpcy5fdGltZW91dCA9IG51bGw7IAogICAg
fQogICAgaWYoIXRoaXMuYWN0aXZlRHJhZ2dhYmxlKSByZXR1cm47CiAgICB0aGlzLl9sYXN0UG9p
bnRlciA9IG51bGw7CiAgICB0aGlzLmFjdGl2ZURyYWdnYWJsZS5lbmREcmFnKGV2ZW50KTsKICAg
IHRoaXMuYWN0aXZlRHJhZ2dhYmxlID0gbnVsbDsKICB9LAogIAogIGtleVByZXNzOiBmdW5jdGlv
bihldmVudCkgewogICAgaWYodGhpcy5hY3RpdmVEcmFnZ2FibGUpCiAgICAgIHRoaXMuYWN0aXZl
RHJhZ2dhYmxlLmtleVByZXNzKGV2ZW50KTsKICB9LAogIAogIGFkZE9ic2VydmVyOiBmdW5jdGlv
bihvYnNlcnZlcikgewogICAgdGhpcy5vYnNlcnZlcnMucHVzaChvYnNlcnZlcik7CiAgICB0aGlz
Ll9jYWNoZU9ic2VydmVyQ2FsbGJhY2tzKCk7CiAgfSwKICAKICByZW1vdmVPYnNlcnZlcjogZnVu
Y3Rpb24oZWxlbWVudCkgeyAgLy8gZWxlbWVudCBpbnN0ZWFkIG9mIG9ic2VydmVyIGZpeGVzIG1l
bSBsZWFrcwogICAgdGhpcy5vYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVycy5yZWplY3QoIGZ1bmN0
aW9uKG8pIHsgcmV0dXJuIG8uZWxlbWVudD09ZWxlbWVudCB9KTsKICAgIHRoaXMuX2NhY2hlT2Jz
ZXJ2ZXJDYWxsYmFja3MoKTsKICB9LAogIAogIG5vdGlmeTogZnVuY3Rpb24oZXZlbnROYW1lLCBk
cmFnZ2FibGUsIGV2ZW50KSB7ICAvLyAnb25TdGFydCcsICdvbkVuZCcsICdvbkRyYWcnCiAgICBp
Zih0aGlzW2V2ZW50TmFtZSsnQ291bnQnXSA+IDApCiAgICAgIHRoaXMub2JzZXJ2ZXJzLmVhY2go
IGZ1bmN0aW9uKG8pIHsKICAgICAgICBpZihvW2V2ZW50TmFtZV0pIG9bZXZlbnROYW1lXShldmVu
dE5hbWUsIGRyYWdnYWJsZSwgZXZlbnQpOwogICAgICB9KTsKICAgIGlmKGRyYWdnYWJsZS5vcHRp
b25zW2V2ZW50TmFtZV0pIGRyYWdnYWJsZS5vcHRpb25zW2V2ZW50TmFtZV0oZHJhZ2dhYmxlLCBl
dmVudCk7CiAgfSwKICAKICBfY2FjaGVPYnNlcnZlckNhbGxiYWNrczogZnVuY3Rpb24oKSB7CiAg
ICBbJ29uU3RhcnQnLCdvbkVuZCcsJ29uRHJhZyddLmVhY2goIGZ1bmN0aW9uKGV2ZW50TmFtZSkg
ewogICAgICBEcmFnZ2FibGVzW2V2ZW50TmFtZSsnQ291bnQnXSA9IERyYWdnYWJsZXMub2JzZXJ2
ZXJzLnNlbGVjdCgKICAgICAgICBmdW5jdGlvbihvKSB7IHJldHVybiBvW2V2ZW50TmFtZV07IH0K
ICAgICAgKS5sZW5ndGg7CiAgICB9KTsKICB9Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFy
IERyYWdnYWJsZSA9IENsYXNzLmNyZWF0ZSh7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVu
dCkgewogICAgdmFyIGRlZmF1bHRzID0gewogICAgICBoYW5kbGU6IGZhbHNlLAogICAgICByZXZl
cnRlZmZlY3Q6IGZ1bmN0aW9uKGVsZW1lbnQsIHRvcF9vZmZzZXQsIGxlZnRfb2Zmc2V0KSB7CiAg
ICAgICAgdmFyIGR1ciA9IE1hdGguc3FydChNYXRoLmFicyh0b3Bfb2Zmc2V0XjIpK01hdGguYWJz
KGxlZnRfb2Zmc2V0XjIpKSowLjAyOwogICAgICAgIG5ldyBFZmZlY3QuTW92ZShlbGVtZW50LCB7
IHg6IC1sZWZ0X29mZnNldCwgeTogLXRvcF9vZmZzZXQsIGR1cmF0aW9uOiBkdXIsCiAgICAgICAg
ICBxdWV1ZToge3Njb3BlOidfZHJhZ2dhYmxlJywgcG9zaXRpb246J2VuZCd9CiAgICAgICAgfSk7
CiAgICAgIH0sCiAgICAgIGVuZGVmZmVjdDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgICAgIHZh
ciB0b09wYWNpdHkgPSBPYmplY3QuaXNOdW1iZXIoZWxlbWVudC5fb3BhY2l0eSkgPyBlbGVtZW50
Ll9vcGFjaXR5IDogMS4wOwogICAgICAgIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCB7ZHVy
YXRpb246MC4yLCBmcm9tOjAuNywgdG86dG9PcGFjaXR5LCAKICAgICAgICAgIHF1ZXVlOiB7c2Nv
cGU6J19kcmFnZ2FibGUnLCBwb3NpdGlvbjonZW5kJ30sCiAgICAgICAgICBhZnRlckZpbmlzaDog
ZnVuY3Rpb24oKXsgCiAgICAgICAgICAgIERyYWdnYWJsZS5fZHJhZ2dpbmdbZWxlbWVudF0gPSBm
YWxzZSAKICAgICAgICAgIH0KICAgICAgICB9KTsgCiAgICAgIH0sCiAgICAgIHppbmRleDogMTAw
MCwKICAgICAgcmV2ZXJ0OiBmYWxzZSwKICAgICAgcXVpZXQ6IGZhbHNlLAogICAgICBzY3JvbGw6
IGZhbHNlLAogICAgICBzY3JvbGxTZW5zaXRpdml0eTogMjAsCiAgICAgIHNjcm9sbFNwZWVkOiAx
NSwKICAgICAgc25hcDogZmFsc2UsICAvLyBmYWxzZSwgb3IgeHkgb3IgW3gseV0gb3IgZnVuY3Rp
b24oeCx5KXsgcmV0dXJuIFt4LHldIH0KICAgICAgZGVsYXk6IDAKICAgIH07CiAgICAKICAgIGlm
KCFhcmd1bWVudHNbMV0gfHwgT2JqZWN0LmlzVW5kZWZpbmVkKGFyZ3VtZW50c1sxXS5lbmRlZmZl
Y3QpKQogICAgICBPYmplY3QuZXh0ZW5kKGRlZmF1bHRzLCB7CiAgICAgICAgc3RhcnRlZmZlY3Q6
IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgIGVsZW1lbnQuX29wYWNpdHkgPSBFbGVtZW50
LmdldE9wYWNpdHkoZWxlbWVudCk7CiAgICAgICAgICBEcmFnZ2FibGUuX2RyYWdnaW5nW2VsZW1l
bnRdID0gdHJ1ZTsKICAgICAgICAgIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCB7ZHVyYXRp
b246MC4yLCBmcm9tOmVsZW1lbnQuX29wYWNpdHksIHRvOjAuN30pOyAKICAgICAgICB9CiAgICAg
IH0pOwogICAgCiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoZGVmYXVsdHMsIGFyZ3Vt
ZW50c1sxXSB8fCB7IH0pOwoKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICAKICAg
IGlmKG9wdGlvbnMuaGFuZGxlICYmIE9iamVjdC5pc1N0cmluZyhvcHRpb25zLmhhbmRsZSkpCiAg
ICAgIHRoaXMuaGFuZGxlID0gdGhpcy5lbGVtZW50LmRvd24oJy4nK29wdGlvbnMuaGFuZGxlLCAw
KTsKICAgIAogICAgaWYoIXRoaXMuaGFuZGxlKSB0aGlzLmhhbmRsZSA9ICQob3B0aW9ucy5oYW5k
bGUpOwogICAgaWYoIXRoaXMuaGFuZGxlKSB0aGlzLmhhbmRsZSA9IHRoaXMuZWxlbWVudDsKICAg
IAogICAgaWYob3B0aW9ucy5zY3JvbGwgJiYgIW9wdGlvbnMuc2Nyb2xsLnNjcm9sbFRvICYmICFv
cHRpb25zLnNjcm9sbC5vdXRlckhUTUwpIHsKICAgICAgb3B0aW9ucy5zY3JvbGwgPSAkKG9wdGlv
bnMuc2Nyb2xsKTsKICAgICAgdGhpcy5faXNTY3JvbGxDaGlsZCA9IEVsZW1lbnQuY2hpbGRPZih0
aGlzLmVsZW1lbnQsIG9wdGlvbnMuc2Nyb2xsKTsKICAgIH0KCiAgICBFbGVtZW50Lm1ha2VQb3Np
dGlvbmVkKHRoaXMuZWxlbWVudCk7IC8vIGZpeCBJRSAgICAKCiAgICB0aGlzLm9wdGlvbnMgID0g
b3B0aW9uczsKICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTsgICAKCiAgICB0aGlzLmV2ZW50TW91
c2VEb3duID0gdGhpcy5pbml0RHJhZy5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpOwogICAgRXZl
bnQub2JzZXJ2ZSh0aGlzLmhhbmRsZSwgIm1vdXNlZG93biIsIHRoaXMuZXZlbnRNb3VzZURvd24p
OwogICAgCiAgICBEcmFnZ2FibGVzLnJlZ2lzdGVyKHRoaXMpOwogIH0sCiAgCiAgZGVzdHJveTog
ZnVuY3Rpb24oKSB7CiAgICBFdmVudC5zdG9wT2JzZXJ2aW5nKHRoaXMuaGFuZGxlLCAibW91c2Vk
b3duIiwgdGhpcy5ldmVudE1vdXNlRG93bik7CiAgICBEcmFnZ2FibGVzLnVucmVnaXN0ZXIodGhp
cyk7CiAgfSwKICAKICBjdXJyZW50RGVsdGE6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuKFsKICAg
ICAgcGFyc2VJbnQoRWxlbWVudC5nZXRTdHlsZSh0aGlzLmVsZW1lbnQsJ2xlZnQnKSB8fCAnMCcp
LAogICAgICBwYXJzZUludChFbGVtZW50LmdldFN0eWxlKHRoaXMuZWxlbWVudCwndG9wJykgfHwg
JzAnKV0pOwogIH0sCiAgCiAgaW5pdERyYWc6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBpZighT2Jq
ZWN0LmlzVW5kZWZpbmVkKERyYWdnYWJsZS5fZHJhZ2dpbmdbdGhpcy5lbGVtZW50XSkgJiYKICAg
ICAgRHJhZ2dhYmxlLl9kcmFnZ2luZ1t0aGlzLmVsZW1lbnRdKSByZXR1cm47CiAgICBpZihFdmVu
dC5pc0xlZnRDbGljayhldmVudCkpIHsgICAgCiAgICAgIC8vIGFib3J0IG9uIGZvcm0gZWxlbWVu
dHMsIGZpeGVzIGEgRmlyZWZveCBpc3N1ZQogICAgICB2YXIgc3JjID0gRXZlbnQuZWxlbWVudChl
dmVudCk7CiAgICAgIGlmKCh0YWdfbmFtZSA9IHNyYy50YWdOYW1lLnRvVXBwZXJDYXNlKCkpICYm
ICgKICAgICAgICB0YWdfbmFtZT09J0lOUFVUJyB8fAogICAgICAgIHRhZ19uYW1lPT0nU0VMRUNU
JyB8fAogICAgICAgIHRhZ19uYW1lPT0nT1BUSU9OJyB8fAogICAgICAgIHRhZ19uYW1lPT0nQlVU
VE9OJyB8fAogICAgICAgIHRhZ19uYW1lPT0nVEVYVEFSRUEnKSkgcmV0dXJuOwogICAgICAgIAog
ICAgICB2YXIgcG9pbnRlciA9IFtFdmVudC5wb2ludGVyWChldmVudCksIEV2ZW50LnBvaW50ZXJZ
KGV2ZW50KV07CiAgICAgIHZhciBwb3MgICAgID0gUG9zaXRpb24uY3VtdWxhdGl2ZU9mZnNldCh0
aGlzLmVsZW1lbnQpOwogICAgICB0aGlzLm9mZnNldCA9IFswLDFdLm1hcCggZnVuY3Rpb24oaSkg
eyByZXR1cm4gKHBvaW50ZXJbaV0gLSBwb3NbaV0pIH0pOwogICAgICAKICAgICAgRHJhZ2dhYmxl
cy5hY3RpdmF0ZSh0aGlzKTsKICAgICAgRXZlbnQuc3RvcChldmVudCk7CiAgICB9CiAgfSwKICAK
ICBzdGFydERyYWc6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICB0aGlzLmRyYWdnaW5nID0gdHJ1ZTsK
ICAgIGlmKCF0aGlzLmRlbHRhKQogICAgICB0aGlzLmRlbHRhID0gdGhpcy5jdXJyZW50RGVsdGEo
KTsKICAgIAogICAgaWYodGhpcy5vcHRpb25zLnppbmRleCkgewogICAgICB0aGlzLm9yaWdpbmFs
WiA9IHBhcnNlSW50KEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCd6LWluZGV4JykgfHwg
MCk7CiAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS56SW5kZXggPSB0aGlzLm9wdGlvbnMuemluZGV4
OwogICAgfQogICAgCiAgICBpZih0aGlzLm9wdGlvbnMuZ2hvc3RpbmcpIHsKICAgICAgdGhpcy5f
Y2xvbmUgPSB0aGlzLmVsZW1lbnQuY2xvbmVOb2RlKHRydWUpOwogICAgICB0aGlzLmVsZW1lbnQu
X29yaWdpbmFsbHlBYnNvbHV0ZSA9ICh0aGlzLmVsZW1lbnQuZ2V0U3R5bGUoJ3Bvc2l0aW9uJykg
PT0gJ2Fic29sdXRlJyk7CiAgICAgIGlmICghdGhpcy5lbGVtZW50Ll9vcmlnaW5hbGx5QWJzb2x1
dGUpCiAgICAgICAgUG9zaXRpb24uYWJzb2x1dGl6ZSh0aGlzLmVsZW1lbnQpOwogICAgICB0aGlz
LmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5fY2xvbmUsIHRoaXMuZWxlbWVu
dCk7CiAgICB9CiAgICAKICAgIGlmKHRoaXMub3B0aW9ucy5zY3JvbGwpIHsKICAgICAgaWYgKHRo
aXMub3B0aW9ucy5zY3JvbGwgPT0gd2luZG93KSB7CiAgICAgICAgdmFyIHdoZXJlID0gdGhpcy5f
Z2V0V2luZG93U2Nyb2xsKHRoaXMub3B0aW9ucy5zY3JvbGwpOwogICAgICAgIHRoaXMub3JpZ2lu
YWxTY3JvbGxMZWZ0ID0gd2hlcmUubGVmdDsKICAgICAgICB0aGlzLm9yaWdpbmFsU2Nyb2xsVG9w
ID0gd2hlcmUudG9wOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMub3JpZ2luYWxTY3JvbGxM
ZWZ0ID0gdGhpcy5vcHRpb25zLnNjcm9sbC5zY3JvbGxMZWZ0OwogICAgICAgIHRoaXMub3JpZ2lu
YWxTY3JvbGxUb3AgPSB0aGlzLm9wdGlvbnMuc2Nyb2xsLnNjcm9sbFRvcDsKICAgICAgfQogICAg
fQogICAgCiAgICBEcmFnZ2FibGVzLm5vdGlmeSgnb25TdGFydCcsIHRoaXMsIGV2ZW50KTsKICAg
ICAgICAKICAgIGlmKHRoaXMub3B0aW9ucy5zdGFydGVmZmVjdCkgdGhpcy5vcHRpb25zLnN0YXJ0
ZWZmZWN0KHRoaXMuZWxlbWVudCk7CiAgfSwKICAKICB1cGRhdGVEcmFnOiBmdW5jdGlvbihldmVu
dCwgcG9pbnRlcikgewogICAgaWYoIXRoaXMuZHJhZ2dpbmcpIHRoaXMuc3RhcnREcmFnKGV2ZW50
KTsKICAgIAogICAgaWYoIXRoaXMub3B0aW9ucy5xdWlldCl7CiAgICAgIFBvc2l0aW9uLnByZXBh
cmUoKTsKICAgICAgRHJvcHBhYmxlcy5zaG93KHBvaW50ZXIsIHRoaXMuZWxlbWVudCk7CiAgICB9
CiAgICAKICAgIERyYWdnYWJsZXMubm90aWZ5KCdvbkRyYWcnLCB0aGlzLCBldmVudCk7CiAgICAK
ICAgIHRoaXMuZHJhdyhwb2ludGVyKTsKICAgIGlmKHRoaXMub3B0aW9ucy5jaGFuZ2UpIHRoaXMu
b3B0aW9ucy5jaGFuZ2UodGhpcyk7CiAgICAKICAgIGlmKHRoaXMub3B0aW9ucy5zY3JvbGwpIHsK
ICAgICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7CiAgICAgIAogICAgICB2YXIgcDsKICAgICAgaWYg
KHRoaXMub3B0aW9ucy5zY3JvbGwgPT0gd2luZG93KSB7CiAgICAgICAgd2l0aCh0aGlzLl9nZXRX
aW5kb3dTY3JvbGwodGhpcy5vcHRpb25zLnNjcm9sbCkpIHsgcCA9IFsgbGVmdCwgdG9wLCBsZWZ0
K3dpZHRoLCB0b3AraGVpZ2h0IF07IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBwID0gUG9zaXRp
b24ucGFnZSh0aGlzLm9wdGlvbnMuc2Nyb2xsKTsKICAgICAgICBwWzBdICs9IHRoaXMub3B0aW9u
cy5zY3JvbGwuc2Nyb2xsTGVmdCArIFBvc2l0aW9uLmRlbHRhWDsKICAgICAgICBwWzFdICs9IHRo
aXMub3B0aW9ucy5zY3JvbGwuc2Nyb2xsVG9wICsgUG9zaXRpb24uZGVsdGFZOwogICAgICAgIHAu
cHVzaChwWzBdK3RoaXMub3B0aW9ucy5zY3JvbGwub2Zmc2V0V2lkdGgpOwogICAgICAgIHAucHVz
aChwWzFdK3RoaXMub3B0aW9ucy5zY3JvbGwub2Zmc2V0SGVpZ2h0KTsKICAgICAgfQogICAgICB2
YXIgc3BlZWQgPSBbMCwwXTsKICAgICAgaWYocG9pbnRlclswXSA8IChwWzBdK3RoaXMub3B0aW9u
cy5zY3JvbGxTZW5zaXRpdml0eSkpIHNwZWVkWzBdID0gcG9pbnRlclswXS0ocFswXSt0aGlzLm9w
dGlvbnMuc2Nyb2xsU2Vuc2l0aXZpdHkpOwogICAgICBpZihwb2ludGVyWzFdIDwgKHBbMV0rdGhp
cy5vcHRpb25zLnNjcm9sbFNlbnNpdGl2aXR5KSkgc3BlZWRbMV0gPSBwb2ludGVyWzFdLShwWzFd
K3RoaXMub3B0aW9ucy5zY3JvbGxTZW5zaXRpdml0eSk7CiAgICAgIGlmKHBvaW50ZXJbMF0gPiAo
cFsyXS10aGlzLm9wdGlvbnMuc2Nyb2xsU2Vuc2l0aXZpdHkpKSBzcGVlZFswXSA9IHBvaW50ZXJb
MF0tKHBbMl0tdGhpcy5vcHRpb25zLnNjcm9sbFNlbnNpdGl2aXR5KTsKICAgICAgaWYocG9pbnRl
clsxXSA+IChwWzNdLXRoaXMub3B0aW9ucy5zY3JvbGxTZW5zaXRpdml0eSkpIHNwZWVkWzFdID0g
cG9pbnRlclsxXS0ocFszXS10aGlzLm9wdGlvbnMuc2Nyb2xsU2Vuc2l0aXZpdHkpOwogICAgICB0
aGlzLnN0YXJ0U2Nyb2xsaW5nKHNwZWVkKTsKICAgIH0KICAgIAogICAgLy8gZml4IEFwcGxlV2Vi
S2l0IHJlbmRlcmluZwogICAgaWYoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KSB3aW5kb3cuc2Ny
b2xsQnkoMCwwKTsKICAgIAogICAgRXZlbnQuc3RvcChldmVudCk7CiAgfSwKICAKICBmaW5pc2hE
cmFnOiBmdW5jdGlvbihldmVudCwgc3VjY2VzcykgewogICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNl
OwogICAgCiAgICBpZih0aGlzLm9wdGlvbnMucXVpZXQpewogICAgICBQb3NpdGlvbi5wcmVwYXJl
KCk7CiAgICAgIHZhciBwb2ludGVyID0gW0V2ZW50LnBvaW50ZXJYKGV2ZW50KSwgRXZlbnQucG9p
bnRlclkoZXZlbnQpXTsKICAgICAgRHJvcHBhYmxlcy5zaG93KHBvaW50ZXIsIHRoaXMuZWxlbWVu
dCk7CiAgICB9CgogICAgaWYodGhpcy5vcHRpb25zLmdob3N0aW5nKSB7CiAgICAgIGlmICghdGhp
cy5lbGVtZW50Ll9vcmlnaW5hbGx5QWJzb2x1dGUpCiAgICAgICAgUG9zaXRpb24ucmVsYXRpdml6
ZSh0aGlzLmVsZW1lbnQpOwogICAgICBkZWxldGUgdGhpcy5lbGVtZW50Ll9vcmlnaW5hbGx5QWJz
b2x1dGU7CiAgICAgIEVsZW1lbnQucmVtb3ZlKHRoaXMuX2Nsb25lKTsKICAgICAgdGhpcy5fY2xv
bmUgPSBudWxsOwogICAgfQoKICAgIHZhciBkcm9wcGVkID0gZmFsc2U7IAogICAgaWYoc3VjY2Vz
cykgeyAKICAgICAgZHJvcHBlZCA9IERyb3BwYWJsZXMuZmlyZShldmVudCwgdGhpcy5lbGVtZW50
KTsgCiAgICAgIGlmICghZHJvcHBlZCkgZHJvcHBlZCA9IGZhbHNlOyAKICAgIH0KICAgIGlmKGRy
b3BwZWQgJiYgdGhpcy5vcHRpb25zLm9uRHJvcHBlZCkgdGhpcy5vcHRpb25zLm9uRHJvcHBlZCh0
aGlzLmVsZW1lbnQpOwogICAgRHJhZ2dhYmxlcy5ub3RpZnkoJ29uRW5kJywgdGhpcywgZXZlbnQp
OwoKICAgIHZhciByZXZlcnQgPSB0aGlzLm9wdGlvbnMucmV2ZXJ0OwogICAgaWYocmV2ZXJ0ICYm
IE9iamVjdC5pc0Z1bmN0aW9uKHJldmVydCkpIHJldmVydCA9IHJldmVydCh0aGlzLmVsZW1lbnQp
OwogICAgCiAgICB2YXIgZCA9IHRoaXMuY3VycmVudERlbHRhKCk7CiAgICBpZihyZXZlcnQgJiYg
dGhpcy5vcHRpb25zLnJldmVydGVmZmVjdCkgewogICAgICBpZiAoZHJvcHBlZCA9PSAwIHx8IHJl
dmVydCAhPSAnZmFpbHVyZScpCiAgICAgICAgdGhpcy5vcHRpb25zLnJldmVydGVmZmVjdCh0aGlz
LmVsZW1lbnQsCiAgICAgICAgICBkWzFdLXRoaXMuZGVsdGFbMV0sIGRbMF0tdGhpcy5kZWx0YVsw
XSk7CiAgICB9IGVsc2UgewogICAgICB0aGlzLmRlbHRhID0gZDsKICAgIH0KCiAgICBpZih0aGlz
Lm9wdGlvbnMuemluZGV4KQogICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuekluZGV4ID0gdGhpcy5v
cmlnaW5hbFo7CgogICAgaWYodGhpcy5vcHRpb25zLmVuZGVmZmVjdCkgCiAgICAgIHRoaXMub3B0
aW9ucy5lbmRlZmZlY3QodGhpcy5lbGVtZW50KTsKICAgICAgCiAgICBEcmFnZ2FibGVzLmRlYWN0
aXZhdGUodGhpcyk7CiAgICBEcm9wcGFibGVzLnJlc2V0KCk7CiAgfSwKICAKICBrZXlQcmVzczog
ZnVuY3Rpb24oZXZlbnQpIHsKICAgIGlmKGV2ZW50LmtleUNvZGUhPUV2ZW50LktFWV9FU0MpIHJl
dHVybjsKICAgIHRoaXMuZmluaXNoRHJhZyhldmVudCwgZmFsc2UpOwogICAgRXZlbnQuc3RvcChl
dmVudCk7CiAgfSwKICAKICBlbmREcmFnOiBmdW5jdGlvbihldmVudCkgewogICAgaWYoIXRoaXMu
ZHJhZ2dpbmcpIHJldHVybjsKICAgIHRoaXMuc3RvcFNjcm9sbGluZygpOwogICAgdGhpcy5maW5p
c2hEcmFnKGV2ZW50LCB0cnVlKTsKICAgIEV2ZW50LnN0b3AoZXZlbnQpOwogIH0sCiAgCiAgZHJh
dzogZnVuY3Rpb24ocG9pbnQpIHsKICAgIHZhciBwb3MgPSBQb3NpdGlvbi5jdW11bGF0aXZlT2Zm
c2V0KHRoaXMuZWxlbWVudCk7CiAgICBpZih0aGlzLm9wdGlvbnMuZ2hvc3RpbmcpIHsKICAgICAg
dmFyIHIgICA9IFBvc2l0aW9uLnJlYWxPZmZzZXQodGhpcy5lbGVtZW50KTsKICAgICAgcG9zWzBd
ICs9IHJbMF0gLSBQb3NpdGlvbi5kZWx0YVg7IHBvc1sxXSArPSByWzFdIC0gUG9zaXRpb24uZGVs
dGFZOwogICAgfQogICAgCiAgICB2YXIgZCA9IHRoaXMuY3VycmVudERlbHRhKCk7CiAgICBwb3Nb
MF0gLT0gZFswXTsgcG9zWzFdIC09IGRbMV07CiAgICAKICAgIGlmKHRoaXMub3B0aW9ucy5zY3Jv
bGwgJiYgKHRoaXMub3B0aW9ucy5zY3JvbGwgIT0gd2luZG93ICYmIHRoaXMuX2lzU2Nyb2xsQ2hp
bGQpKSB7CiAgICAgIHBvc1swXSAtPSB0aGlzLm9wdGlvbnMuc2Nyb2xsLnNjcm9sbExlZnQtdGhp
cy5vcmlnaW5hbFNjcm9sbExlZnQ7CiAgICAgIHBvc1sxXSAtPSB0aGlzLm9wdGlvbnMuc2Nyb2xs
LnNjcm9sbFRvcC10aGlzLm9yaWdpbmFsU2Nyb2xsVG9wOwogICAgfQogICAgCiAgICB2YXIgcCA9
IFswLDFdLm1hcChmdW5jdGlvbihpKXsgCiAgICAgIHJldHVybiAocG9pbnRbaV0tcG9zW2ldLXRo
aXMub2Zmc2V0W2ldKSAKICAgIH0uYmluZCh0aGlzKSk7CiAgICAKICAgIGlmKHRoaXMub3B0aW9u
cy5zbmFwKSB7CiAgICAgIGlmKE9iamVjdC5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5zbmFwKSkg
ewogICAgICAgIHAgPSB0aGlzLm9wdGlvbnMuc25hcChwWzBdLHBbMV0sdGhpcyk7CiAgICAgIH0g
ZWxzZSB7CiAgICAgIGlmKE9iamVjdC5pc0FycmF5KHRoaXMub3B0aW9ucy5zbmFwKSkgewogICAg
ICAgIHAgPSBwLm1hcCggZnVuY3Rpb24odiwgaSkgewogICAgICAgICAgcmV0dXJuICh2L3RoaXMu
b3B0aW9ucy5zbmFwW2ldKS5yb3VuZCgpKnRoaXMub3B0aW9ucy5zbmFwW2ldIH0uYmluZCh0aGlz
KSkKICAgICAgfSBlbHNlIHsKICAgICAgICBwID0gcC5tYXAoIGZ1bmN0aW9uKHYpIHsKICAgICAg
ICAgIHJldHVybiAodi90aGlzLm9wdGlvbnMuc25hcCkucm91bmQoKSp0aGlzLm9wdGlvbnMuc25h
cCB9LmJpbmQodGhpcykpCiAgICAgIH0KICAgIH19CiAgICAKICAgIHZhciBzdHlsZSA9IHRoaXMu
ZWxlbWVudC5zdHlsZTsKICAgIGlmKCghdGhpcy5vcHRpb25zLmNvbnN0cmFpbnQpIHx8ICh0aGlz
Lm9wdGlvbnMuY29uc3RyYWludD09J2hvcml6b250YWwnKSkKICAgICAgc3R5bGUubGVmdCA9IHBb
MF0gKyAicHgiOwogICAgaWYoKCF0aGlzLm9wdGlvbnMuY29uc3RyYWludCkgfHwgKHRoaXMub3B0
aW9ucy5jb25zdHJhaW50PT0ndmVydGljYWwnKSkKICAgICAgc3R5bGUudG9wICA9IHBbMV0gKyAi
cHgiOwogICAgCiAgICBpZihzdHlsZS52aXNpYmlsaXR5PT0iaGlkZGVuIikgc3R5bGUudmlzaWJp
bGl0eSA9ICIiOyAvLyBmaXggZ2Vja28gcmVuZGVyaW5nCiAgfSwKICAKICBzdG9wU2Nyb2xsaW5n
OiBmdW5jdGlvbigpIHsKICAgIGlmKHRoaXMuc2Nyb2xsSW50ZXJ2YWwpIHsKICAgICAgY2xlYXJJ
bnRlcnZhbCh0aGlzLnNjcm9sbEludGVydmFsKTsKICAgICAgdGhpcy5zY3JvbGxJbnRlcnZhbCA9
IG51bGw7CiAgICAgIERyYWdnYWJsZXMuX2xhc3RTY3JvbGxQb2ludGVyID0gbnVsbDsKICAgIH0K
ICB9LAogIAogIHN0YXJ0U2Nyb2xsaW5nOiBmdW5jdGlvbihzcGVlZCkgewogICAgaWYoIShzcGVl
ZFswXSB8fCBzcGVlZFsxXSkpIHJldHVybjsKICAgIHRoaXMuc2Nyb2xsU3BlZWQgPSBbc3BlZWRb
MF0qdGhpcy5vcHRpb25zLnNjcm9sbFNwZWVkLHNwZWVkWzFdKnRoaXMub3B0aW9ucy5zY3JvbGxT
cGVlZF07CiAgICB0aGlzLmxhc3RTY3JvbGxlZCA9IG5ldyBEYXRlKCk7CiAgICB0aGlzLnNjcm9s
bEludGVydmFsID0gc2V0SW50ZXJ2YWwodGhpcy5zY3JvbGwuYmluZCh0aGlzKSwgMTApOwogIH0s
CiAgCiAgc2Nyb2xsOiBmdW5jdGlvbigpIHsKICAgIHZhciBjdXJyZW50ID0gbmV3IERhdGUoKTsK
ICAgIHZhciBkZWx0YSA9IGN1cnJlbnQgLSB0aGlzLmxhc3RTY3JvbGxlZDsKICAgIHRoaXMubGFz
dFNjcm9sbGVkID0gY3VycmVudDsKICAgIGlmKHRoaXMub3B0aW9ucy5zY3JvbGwgPT0gd2luZG93
KSB7CiAgICAgIHdpdGggKHRoaXMuX2dldFdpbmRvd1Njcm9sbCh0aGlzLm9wdGlvbnMuc2Nyb2xs
KSkgewogICAgICAgIGlmICh0aGlzLnNjcm9sbFNwZWVkWzBdIHx8IHRoaXMuc2Nyb2xsU3BlZWRb
MV0pIHsKICAgICAgICAgIHZhciBkID0gZGVsdGEgLyAxMDAwOwogICAgICAgICAgdGhpcy5vcHRp
b25zLnNjcm9sbC5zY3JvbGxUbyggbGVmdCArIGQqdGhpcy5zY3JvbGxTcGVlZFswXSwgdG9wICsg
ZCp0aGlzLnNjcm9sbFNwZWVkWzFdICk7CiAgICAgICAgfQogICAgICB9CiAgICB9IGVsc2Ugewog
ICAgICB0aGlzLm9wdGlvbnMuc2Nyb2xsLnNjcm9sbExlZnQgKz0gdGhpcy5zY3JvbGxTcGVlZFsw
XSAqIGRlbHRhIC8gMTAwMDsKICAgICAgdGhpcy5vcHRpb25zLnNjcm9sbC5zY3JvbGxUb3AgICs9
IHRoaXMuc2Nyb2xsU3BlZWRbMV0gKiBkZWx0YSAvIDEwMDA7CiAgICB9CiAgICAKICAgIFBvc2l0
aW9uLnByZXBhcmUoKTsKICAgIERyb3BwYWJsZXMuc2hvdyhEcmFnZ2FibGVzLl9sYXN0UG9pbnRl
ciwgdGhpcy5lbGVtZW50KTsKICAgIERyYWdnYWJsZXMubm90aWZ5KCdvbkRyYWcnLCB0aGlzKTsK
ICAgIGlmICh0aGlzLl9pc1Njcm9sbENoaWxkKSB7CiAgICAgIERyYWdnYWJsZXMuX2xhc3RTY3Jv
bGxQb2ludGVyID0gRHJhZ2dhYmxlcy5fbGFzdFNjcm9sbFBvaW50ZXIgfHwgJEEoRHJhZ2dhYmxl
cy5fbGFzdFBvaW50ZXIpOwogICAgICBEcmFnZ2FibGVzLl9sYXN0U2Nyb2xsUG9pbnRlclswXSAr
PSB0aGlzLnNjcm9sbFNwZWVkWzBdICogZGVsdGEgLyAxMDAwOwogICAgICBEcmFnZ2FibGVzLl9s
YXN0U2Nyb2xsUG9pbnRlclsxXSArPSB0aGlzLnNjcm9sbFNwZWVkWzFdICogZGVsdGEgLyAxMDAw
OwogICAgICBpZiAoRHJhZ2dhYmxlcy5fbGFzdFNjcm9sbFBvaW50ZXJbMF0gPCAwKQogICAgICAg
IERyYWdnYWJsZXMuX2xhc3RTY3JvbGxQb2ludGVyWzBdID0gMDsKICAgICAgaWYgKERyYWdnYWJs
ZXMuX2xhc3RTY3JvbGxQb2ludGVyWzFdIDwgMCkKICAgICAgICBEcmFnZ2FibGVzLl9sYXN0U2Ny
b2xsUG9pbnRlclsxXSA9IDA7CiAgICAgIHRoaXMuZHJhdyhEcmFnZ2FibGVzLl9sYXN0U2Nyb2xs
UG9pbnRlcik7CiAgICB9CiAgICAKICAgIGlmKHRoaXMub3B0aW9ucy5jaGFuZ2UpIHRoaXMub3B0
aW9ucy5jaGFuZ2UodGhpcyk7CiAgfSwKICAKICBfZ2V0V2luZG93U2Nyb2xsOiBmdW5jdGlvbih3
KSB7CiAgICB2YXIgVCwgTCwgVywgSDsKICAgIHdpdGggKHcuZG9jdW1lbnQpIHsKICAgICAgaWYg
KHcuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3Ap
IHsKICAgICAgICBUID0gZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKICAgICAgICBMID0gZG9j
dW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7CiAgICAgIH0gZWxzZSBpZiAody5kb2N1bWVudC5ib2R5
KSB7CiAgICAgICAgVCA9IGJvZHkuc2Nyb2xsVG9wOwogICAgICAgIEwgPSBib2R5LnNjcm9sbExl
ZnQ7CiAgICAgIH0KICAgICAgaWYgKHcuaW5uZXJXaWR0aCkgewogICAgICAgIFcgPSB3LmlubmVy
V2lkdGg7CiAgICAgICAgSCA9IHcuaW5uZXJIZWlnaHQ7CiAgICAgIH0gZWxzZSBpZiAody5kb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSB7CiAg
ICAgICAgVyA9IGRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsKICAgICAgICBIID0gZG9jdW1l
bnRFbGVtZW50LmNsaWVudEhlaWdodDsKICAgICAgfSBlbHNlIHsKICAgICAgICBXID0gYm9keS5v
ZmZzZXRXaWR0aDsKICAgICAgICBIID0gYm9keS5vZmZzZXRIZWlnaHQKICAgICAgfQogICAgfQog
ICAgcmV0dXJuIHsgdG9wOiBULCBsZWZ0OiBMLCB3aWR0aDogVywgaGVpZ2h0OiBIIH07CiAgfQp9
KTsKCkRyYWdnYWJsZS5fZHJhZ2dpbmcgPSB7IH07CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnZh
ciBTb3J0YWJsZU9ic2VydmVyID0gQ2xhc3MuY3JlYXRlKHsKICBpbml0aWFsaXplOiBmdW5jdGlv
bihlbGVtZW50LCBvYnNlcnZlcikgewogICAgdGhpcy5lbGVtZW50ICAgPSAkKGVsZW1lbnQpOwog
ICAgdGhpcy5vYnNlcnZlciAgPSBvYnNlcnZlcjsKICAgIHRoaXMubGFzdFZhbHVlID0gU29ydGFi
bGUuc2VyaWFsaXplKHRoaXMuZWxlbWVudCk7CiAgfSwKICAKICBvblN0YXJ0OiBmdW5jdGlvbigp
IHsKICAgIHRoaXMubGFzdFZhbHVlID0gU29ydGFibGUuc2VyaWFsaXplKHRoaXMuZWxlbWVudCk7
CiAgfSwKICAKICBvbkVuZDogZnVuY3Rpb24oKSB7CiAgICBTb3J0YWJsZS51bm1hcmsoKTsKICAg
IGlmKHRoaXMubGFzdFZhbHVlICE9IFNvcnRhYmxlLnNlcmlhbGl6ZSh0aGlzLmVsZW1lbnQpKQog
ICAgICB0aGlzLm9ic2VydmVyKHRoaXMuZWxlbWVudCkKICB9Cn0pOwoKdmFyIFNvcnRhYmxlID0g
ewogIFNFUklBTElaRV9SVUxFOiAvXlteX1wtXSg/OltBLVphLXowLTlcLVxfXSopW19dKC4qKSQv
LAogIAogIHNvcnRhYmxlczogeyB9LAogIAogIF9maW5kUm9vdEVsZW1lbnQ6IGZ1bmN0aW9uKGVs
ZW1lbnQpIHsKICAgIHdoaWxlIChlbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKSAhPSAiQk9E
WSIpIHsgIAogICAgICBpZihlbGVtZW50LmlkICYmIFNvcnRhYmxlLnNvcnRhYmxlc1tlbGVtZW50
LmlkXSkgcmV0dXJuIGVsZW1lbnQ7CiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7
CiAgICB9CiAgfSwKCiAgb3B0aW9uczogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9
IFNvcnRhYmxlLl9maW5kUm9vdEVsZW1lbnQoJChlbGVtZW50KSk7CiAgICBpZighZWxlbWVudCkg
cmV0dXJuOwogICAgcmV0dXJuIFNvcnRhYmxlLnNvcnRhYmxlc1tlbGVtZW50LmlkXTsKICB9LAog
IAogIGRlc3Ryb3k6IGZ1bmN0aW9uKGVsZW1lbnQpewogICAgdmFyIHMgPSBTb3J0YWJsZS5vcHRp
b25zKGVsZW1lbnQpOwogICAgCiAgICBpZihzKSB7CiAgICAgIERyYWdnYWJsZXMucmVtb3ZlT2Jz
ZXJ2ZXIocy5lbGVtZW50KTsKICAgICAgcy5kcm9wcGFibGVzLmVhY2goZnVuY3Rpb24oZCl7IERy
b3BwYWJsZXMucmVtb3ZlKGQpIH0pOwogICAgICBzLmRyYWdnYWJsZXMuaW52b2tlKCdkZXN0cm95
Jyk7CiAgICAgIAogICAgICBkZWxldGUgU29ydGFibGUuc29ydGFibGVzW3MuZWxlbWVudC5pZF07
CiAgICB9CiAgfSwKCiAgY3JlYXRlOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0g
JChlbGVtZW50KTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7IAogICAgICBlbGVt
ZW50OiAgICAgZWxlbWVudCwKICAgICAgdGFnOiAgICAgICAgICdsaScsICAgICAgIC8vIGFzc3Vt
ZXMgbGkgY2hpbGRyZW4sIG92ZXJyaWRlIHdpdGggdGFnOiAndGFnbmFtZScKICAgICAgZHJvcE9u
RW1wdHk6IGZhbHNlLAogICAgICB0cmVlOiAgICAgICAgZmFsc2UsCiAgICAgIHRyZWVUYWc6ICAg
ICAndWwnLAogICAgICBvdmVybGFwOiAgICAgJ3ZlcnRpY2FsJywgLy8gb25lIG9mICd2ZXJ0aWNh
bCcsICdob3Jpem9udGFsJwogICAgICBjb25zdHJhaW50OiAgJ3ZlcnRpY2FsJywgLy8gb25lIG9m
ICd2ZXJ0aWNhbCcsICdob3Jpem9udGFsJywgZmFsc2UKICAgICAgY29udGFpbm1lbnQ6IGVsZW1l
bnQsICAgIC8vIGFsc28gdGFrZXMgYXJyYXkgb2YgZWxlbWVudHMgKG9yIGlkJ3MpOyBvciBmYWxz
ZQogICAgICBoYW5kbGU6ICAgICAgZmFsc2UsICAgICAgLy8gb3IgYSBDU1MgY2xhc3MKICAgICAg
b25seTogICAgICAgIGZhbHNlLAogICAgICBkZWxheTogICAgICAgMCwKICAgICAgaG92ZXJjbGFz
czogIG51bGwsCiAgICAgIGdob3N0aW5nOiAgICBmYWxzZSwKICAgICAgcXVpZXQ6ICAgICAgIGZh
bHNlLCAKICAgICAgc2Nyb2xsOiAgICAgIGZhbHNlLAogICAgICBzY3JvbGxTZW5zaXRpdml0eTog
MjAsCiAgICAgIHNjcm9sbFNwZWVkOiAxNSwKICAgICAgZm9ybWF0OiAgICAgIHRoaXMuU0VSSUFM
SVpFX1JVTEUsCiAgICAgIAogICAgICAvLyB0aGVzZSB0YWtlIGFycmF5cyBvZiBlbGVtZW50cyBv
ciBpZHMgYW5kIGNhbiBiZSAKICAgICAgLy8gdXNlZCBmb3IgYmV0dGVyIGluaXRpYWxpemF0aW9u
IHBlcmZvcm1hbmNlCiAgICAgIGVsZW1lbnRzOiAgICBmYWxzZSwKICAgICAgaGFuZGxlczogICAg
IGZhbHNlLAogICAgICAKICAgICAgb25DaGFuZ2U6ICAgIFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9u
LAogICAgICBvblVwZGF0ZTogICAgUHJvdG90eXBlLmVtcHR5RnVuY3Rpb24KICAgIH0sIGFyZ3Vt
ZW50c1sxXSB8fCB7IH0pOwoKICAgIC8vIGNsZWFyIGFueSBvbGQgc29ydGFibGUgd2l0aCBzYW1l
IGVsZW1lbnQKICAgIHRoaXMuZGVzdHJveShlbGVtZW50KTsKCiAgICAvLyBidWlsZCBvcHRpb25z
IGZvciB0aGUgZHJhZ2dhYmxlcwogICAgdmFyIG9wdGlvbnNfZm9yX2RyYWdnYWJsZSA9IHsKICAg
ICAgcmV2ZXJ0OiAgICAgIHRydWUsCiAgICAgIHF1aWV0OiAgICAgICBvcHRpb25zLnF1aWV0LAog
ICAgICBzY3JvbGw6ICAgICAgb3B0aW9ucy5zY3JvbGwsCiAgICAgIHNjcm9sbFNwZWVkOiBvcHRp
b25zLnNjcm9sbFNwZWVkLAogICAgICBzY3JvbGxTZW5zaXRpdml0eTogb3B0aW9ucy5zY3JvbGxT
ZW5zaXRpdml0eSwKICAgICAgZGVsYXk6ICAgICAgIG9wdGlvbnMuZGVsYXksCiAgICAgIGdob3N0
aW5nOiAgICBvcHRpb25zLmdob3N0aW5nLAogICAgICBjb25zdHJhaW50OiAgb3B0aW9ucy5jb25z
dHJhaW50LAogICAgICBoYW5kbGU6ICAgICAgb3B0aW9ucy5oYW5kbGUgfTsKCiAgICBpZihvcHRp
b25zLnN0YXJ0ZWZmZWN0KQogICAgICBvcHRpb25zX2Zvcl9kcmFnZ2FibGUuc3RhcnRlZmZlY3Qg
PSBvcHRpb25zLnN0YXJ0ZWZmZWN0OwoKICAgIGlmKG9wdGlvbnMucmV2ZXJ0ZWZmZWN0KQogICAg
ICBvcHRpb25zX2Zvcl9kcmFnZ2FibGUucmV2ZXJ0ZWZmZWN0ID0gb3B0aW9ucy5yZXZlcnRlZmZl
Y3Q7CiAgICBlbHNlCiAgICAgIGlmKG9wdGlvbnMuZ2hvc3RpbmcpIG9wdGlvbnNfZm9yX2RyYWdn
YWJsZS5yZXZlcnRlZmZlY3QgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAgICAgZWxlbWVudC5z
dHlsZS50b3AgID0gMDsKICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAwOwogICAgICB9OwoK
ICAgIGlmKG9wdGlvbnMuZW5kZWZmZWN0KQogICAgICBvcHRpb25zX2Zvcl9kcmFnZ2FibGUuZW5k
ZWZmZWN0ID0gb3B0aW9ucy5lbmRlZmZlY3Q7CgogICAgaWYob3B0aW9ucy56aW5kZXgpCiAgICAg
IG9wdGlvbnNfZm9yX2RyYWdnYWJsZS56aW5kZXggPSBvcHRpb25zLnppbmRleDsKCiAgICAvLyBi
dWlsZCBvcHRpb25zIGZvciB0aGUgZHJvcHBhYmxlcyAgCiAgICB2YXIgb3B0aW9uc19mb3JfZHJv
cHBhYmxlID0gewogICAgICBvdmVybGFwOiAgICAgb3B0aW9ucy5vdmVybGFwLAogICAgICBjb250
YWlubWVudDogb3B0aW9ucy5jb250YWlubWVudCwKICAgICAgdHJlZTogICAgICAgIG9wdGlvbnMu
dHJlZSwKICAgICAgaG92ZXJjbGFzczogIG9wdGlvbnMuaG92ZXJjbGFzcywKICAgICAgb25Ib3Zl
cjogICAgIFNvcnRhYmxlLm9uSG92ZXIKICAgIH0KICAgIAogICAgdmFyIG9wdGlvbnNfZm9yX3Ry
ZWUgPSB7CiAgICAgIG9uSG92ZXI6ICAgICAgU29ydGFibGUub25FbXB0eUhvdmVyLAogICAgICBv
dmVybGFwOiAgICAgIG9wdGlvbnMub3ZlcmxhcCwKICAgICAgY29udGFpbm1lbnQ6ICBvcHRpb25z
LmNvbnRhaW5tZW50LAogICAgICBob3ZlcmNsYXNzOiAgIG9wdGlvbnMuaG92ZXJjbGFzcwogICAg
fQoKICAgIC8vIGZpeCBmb3IgZ2Vja28gZW5naW5lCiAgICBFbGVtZW50LmNsZWFuV2hpdGVzcGFj
ZShlbGVtZW50KTsgCgogICAgb3B0aW9ucy5kcmFnZ2FibGVzID0gW107CiAgICBvcHRpb25zLmRy
b3BwYWJsZXMgPSBbXTsKCiAgICAvLyBkcm9wIG9uIGVtcHR5IGhhbmRsaW5nCiAgICBpZihvcHRp
b25zLmRyb3BPbkVtcHR5IHx8IG9wdGlvbnMudHJlZSkgewogICAgICBEcm9wcGFibGVzLmFkZChl
bGVtZW50LCBvcHRpb25zX2Zvcl90cmVlKTsKICAgICAgb3B0aW9ucy5kcm9wcGFibGVzLnB1c2go
ZWxlbWVudCk7CiAgICB9CgogICAgKG9wdGlvbnMuZWxlbWVudHMgfHwgdGhpcy5maW5kRWxlbWVu
dHMoZWxlbWVudCwgb3B0aW9ucykgfHwgW10pLmVhY2goIGZ1bmN0aW9uKGUsaSkgewogICAgICB2
YXIgaGFuZGxlID0gb3B0aW9ucy5oYW5kbGVzID8gJChvcHRpb25zLmhhbmRsZXNbaV0pIDoKICAg
ICAgICAob3B0aW9ucy5oYW5kbGUgPyAkKGUpLnNlbGVjdCgnLicgKyBvcHRpb25zLmhhbmRsZSlb
MF0gOiBlKTsgCiAgICAgIG9wdGlvbnMuZHJhZ2dhYmxlcy5wdXNoKAogICAgICAgIG5ldyBEcmFn
Z2FibGUoZSwgT2JqZWN0LmV4dGVuZChvcHRpb25zX2Zvcl9kcmFnZ2FibGUsIHsgaGFuZGxlOiBo
YW5kbGUgfSkpKTsKICAgICAgRHJvcHBhYmxlcy5hZGQoZSwgb3B0aW9uc19mb3JfZHJvcHBhYmxl
KTsKICAgICAgaWYob3B0aW9ucy50cmVlKSBlLnRyZWVOb2RlID0gZWxlbWVudDsKICAgICAgb3B0
aW9ucy5kcm9wcGFibGVzLnB1c2goZSk7ICAgICAgCiAgICB9KTsKICAgIAogICAgaWYob3B0aW9u
cy50cmVlKSB7CiAgICAgIChTb3J0YWJsZS5maW5kVHJlZUVsZW1lbnRzKGVsZW1lbnQsIG9wdGlv
bnMpIHx8IFtdKS5lYWNoKCBmdW5jdGlvbihlKSB7CiAgICAgICAgRHJvcHBhYmxlcy5hZGQoZSwg
b3B0aW9uc19mb3JfdHJlZSk7CiAgICAgICAgZS50cmVlTm9kZSA9IGVsZW1lbnQ7CiAgICAgICAg
b3B0aW9ucy5kcm9wcGFibGVzLnB1c2goZSk7CiAgICAgIH0pOwogICAgfQoKICAgIC8vIGtlZXAg
cmVmZXJlbmNlCiAgICB0aGlzLnNvcnRhYmxlc1tlbGVtZW50LmlkXSA9IG9wdGlvbnM7CgogICAg
Ly8gZm9yIG9udXBkYXRlCiAgICBEcmFnZ2FibGVzLmFkZE9ic2VydmVyKG5ldyBTb3J0YWJsZU9i
c2VydmVyKGVsZW1lbnQsIG9wdGlvbnMub25VcGRhdGUpKTsKCiAgfSwKCiAgLy8gcmV0dXJuIGFs
bCBzdWl0YWJsZS1mb3Itc29ydGFibGUgZWxlbWVudHMgaW4gYSBndWFyYW50ZWVkIG9yZGVyCiAg
ZmluZEVsZW1lbnRzOiBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7CiAgICByZXR1cm4gRWxl
bWVudC5maW5kQ2hpbGRyZW4oCiAgICAgIGVsZW1lbnQsIG9wdGlvbnMub25seSwgb3B0aW9ucy50
cmVlID8gdHJ1ZSA6IGZhbHNlLCBvcHRpb25zLnRhZyk7CiAgfSwKICAKICBmaW5kVHJlZUVsZW1l
bnRzOiBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7CiAgICByZXR1cm4gRWxlbWVudC5maW5k
Q2hpbGRyZW4oCiAgICAgIGVsZW1lbnQsIG9wdGlvbnMub25seSwgb3B0aW9ucy50cmVlID8gdHJ1
ZSA6IGZhbHNlLCBvcHRpb25zLnRyZWVUYWcpOwogIH0sCgogIG9uSG92ZXI6IGZ1bmN0aW9uKGVs
ZW1lbnQsIGRyb3Bvbiwgb3ZlcmxhcCkgewogICAgaWYoRWxlbWVudC5pc1BhcmVudChkcm9wb24s
IGVsZW1lbnQpKSByZXR1cm47CgogICAgaWYob3ZlcmxhcCA+IC4zMyAmJiBvdmVybGFwIDwgLjY2
ICYmIFNvcnRhYmxlLm9wdGlvbnMoZHJvcG9uKS50cmVlKSB7CiAgICAgIHJldHVybjsKICAgIH0g
ZWxzZSBpZihvdmVybGFwPjAuNSkgewogICAgICBTb3J0YWJsZS5tYXJrKGRyb3BvbiwgJ2JlZm9y
ZScpOwogICAgICBpZihkcm9wb24ucHJldmlvdXNTaWJsaW5nICE9IGVsZW1lbnQpIHsKICAgICAg
ICB2YXIgb2xkUGFyZW50Tm9kZSA9IGVsZW1lbnQucGFyZW50Tm9kZTsKICAgICAgICBlbGVtZW50
LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsgLy8gZml4IGdlY2tvIHJlbmRlcmluZwogICAg
ICAgIGRyb3Bvbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBkcm9wb24pOwogICAg
ICAgIGlmKGRyb3Bvbi5wYXJlbnROb2RlIT1vbGRQYXJlbnROb2RlKSAKICAgICAgICAgIFNvcnRh
YmxlLm9wdGlvbnMob2xkUGFyZW50Tm9kZSkub25DaGFuZ2UoZWxlbWVudCk7CiAgICAgICAgU29y
dGFibGUub3B0aW9ucyhkcm9wb24ucGFyZW50Tm9kZSkub25DaGFuZ2UoZWxlbWVudCk7CiAgICAg
IH0KICAgIH0gZWxzZSB7CiAgICAgIFNvcnRhYmxlLm1hcmsoZHJvcG9uLCAnYWZ0ZXInKTsKICAg
ICAgdmFyIG5leHRFbGVtZW50ID0gZHJvcG9uLm5leHRTaWJsaW5nIHx8IG51bGw7CiAgICAgIGlm
KG5leHRFbGVtZW50ICE9IGVsZW1lbnQpIHsKICAgICAgICB2YXIgb2xkUGFyZW50Tm9kZSA9IGVs
ZW1lbnQucGFyZW50Tm9kZTsKICAgICAgICBlbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsgLy8gZml4IGdlY2tvIHJlbmRlcmluZwogICAgICAgIGRyb3Bvbi5wYXJlbnROb2RlLmlu
c2VydEJlZm9yZShlbGVtZW50LCBuZXh0RWxlbWVudCk7CiAgICAgICAgaWYoZHJvcG9uLnBhcmVu
dE5vZGUhPW9sZFBhcmVudE5vZGUpIAogICAgICAgICAgU29ydGFibGUub3B0aW9ucyhvbGRQYXJl
bnROb2RlKS5vbkNoYW5nZShlbGVtZW50KTsKICAgICAgICBTb3J0YWJsZS5vcHRpb25zKGRyb3Bv
bi5wYXJlbnROb2RlKS5vbkNoYW5nZShlbGVtZW50KTsKICAgICAgfQogICAgfQogIH0sCiAgCiAg
b25FbXB0eUhvdmVyOiBmdW5jdGlvbihlbGVtZW50LCBkcm9wb24sIG92ZXJsYXApIHsKICAgIHZh
ciBvbGRQYXJlbnROb2RlID0gZWxlbWVudC5wYXJlbnROb2RlOwogICAgdmFyIGRyb3Bvbk9wdGlv
bnMgPSBTb3J0YWJsZS5vcHRpb25zKGRyb3Bvbik7CiAgICAgICAgCiAgICBpZighRWxlbWVudC5p
c1BhcmVudChkcm9wb24sIGVsZW1lbnQpKSB7CiAgICAgIHZhciBpbmRleDsKICAgICAgCiAgICAg
IHZhciBjaGlsZHJlbiA9IFNvcnRhYmxlLmZpbmRFbGVtZW50cyhkcm9wb24sIHt0YWc6IGRyb3Bv
bk9wdGlvbnMudGFnLCBvbmx5OiBkcm9wb25PcHRpb25zLm9ubHl9KTsKICAgICAgdmFyIGNoaWxk
ID0gbnVsbDsKICAgICAgICAgICAgCiAgICAgIGlmKGNoaWxkcmVuKSB7CiAgICAgICAgdmFyIG9m
ZnNldCA9IEVsZW1lbnQub2Zmc2V0U2l6ZShkcm9wb24sIGRyb3Bvbk9wdGlvbnMub3ZlcmxhcCkg
KiAoMS4wIC0gb3ZlcmxhcCk7CiAgICAgICAgCiAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4
IDwgY2hpbGRyZW4ubGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICAgICAgICBpZiAob2Zmc2V0IC0g
RWxlbWVudC5vZmZzZXRTaXplIChjaGlsZHJlbltpbmRleF0sIGRyb3Bvbk9wdGlvbnMub3Zlcmxh
cCkgPj0gMCkgewogICAgICAgICAgICBvZmZzZXQgLT0gRWxlbWVudC5vZmZzZXRTaXplIChjaGls
ZHJlbltpbmRleF0sIGRyb3Bvbk9wdGlvbnMub3ZlcmxhcCk7CiAgICAgICAgICB9IGVsc2UgaWYg
KG9mZnNldCAtIChFbGVtZW50Lm9mZnNldFNpemUgKGNoaWxkcmVuW2luZGV4XSwgZHJvcG9uT3B0
aW9ucy5vdmVybGFwKSAvIDIpID49IDApIHsKICAgICAgICAgICAgY2hpbGQgPSBpbmRleCArIDEg
PCBjaGlsZHJlbi5sZW5ndGggPyBjaGlsZHJlbltpbmRleCArIDFdIDogbnVsbDsKICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjaGlsZCA9IGNoaWxkcmVu
W2luZGV4XTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9
CiAgICAgIAogICAgICBkcm9wb24uaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGNoaWxkKTsKICAgICAg
CiAgICAgIFNvcnRhYmxlLm9wdGlvbnMob2xkUGFyZW50Tm9kZSkub25DaGFuZ2UoZWxlbWVudCk7
CiAgICAgIGRyb3Bvbk9wdGlvbnMub25DaGFuZ2UoZWxlbWVudCk7CiAgICB9CiAgfSwKCiAgdW5t
YXJrOiBmdW5jdGlvbigpIHsKICAgIGlmKFNvcnRhYmxlLl9tYXJrZXIpIFNvcnRhYmxlLl9tYXJr
ZXIuaGlkZSgpOwogIH0sCgogIG1hcms6IGZ1bmN0aW9uKGRyb3BvbiwgcG9zaXRpb24pIHsKICAg
IC8vIG1hcmsgb24gZ2hvc3Rpbmcgb25seQogICAgdmFyIHNvcnRhYmxlID0gU29ydGFibGUub3B0
aW9ucyhkcm9wb24ucGFyZW50Tm9kZSk7CiAgICBpZihzb3J0YWJsZSAmJiAhc29ydGFibGUuZ2hv
c3RpbmcpIHJldHVybjsgCgogICAgaWYoIVNvcnRhYmxlLl9tYXJrZXIpIHsKICAgICAgU29ydGFi
bGUuX21hcmtlciA9IAogICAgICAgICgkKCdkcm9wbWFya2VyJykgfHwgRWxlbWVudC5leHRlbmQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJykpKS4KICAgICAgICAgIGhpZGUoKS5hZGRDbGFz
c05hbWUoJ2Ryb3BtYXJrZXInKS5zZXRTdHlsZSh7cG9zaXRpb246J2Fic29sdXRlJ30pOwogICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpLml0ZW0oMCkuYXBwZW5kQ2hp
bGQoU29ydGFibGUuX21hcmtlcik7CiAgICB9ICAgIAogICAgdmFyIG9mZnNldHMgPSBQb3NpdGlv
bi5jdW11bGF0aXZlT2Zmc2V0KGRyb3Bvbik7CiAgICBTb3J0YWJsZS5fbWFya2VyLnNldFN0eWxl
KHtsZWZ0OiBvZmZzZXRzWzBdKydweCcsIHRvcDogb2Zmc2V0c1sxXSArICdweCd9KTsKICAgIAog
ICAgaWYocG9zaXRpb249PSdhZnRlcicpCiAgICAgIGlmKHNvcnRhYmxlLm92ZXJsYXAgPT0gJ2hv
cml6b250YWwnKSAKICAgICAgICBTb3J0YWJsZS5fbWFya2VyLnNldFN0eWxlKHtsZWZ0OiAob2Zm
c2V0c1swXStkcm9wb24uY2xpZW50V2lkdGgpICsgJ3B4J30pOwogICAgICBlbHNlCiAgICAgICAg
U29ydGFibGUuX21hcmtlci5zZXRTdHlsZSh7dG9wOiAob2Zmc2V0c1sxXStkcm9wb24uY2xpZW50
SGVpZ2h0KSArICdweCd9KTsKICAgIAogICAgU29ydGFibGUuX21hcmtlci5zaG93KCk7CiAgfSwK
ICAKICBfdHJlZTogZnVuY3Rpb24oZWxlbWVudCwgb3B0aW9ucywgcGFyZW50KSB7CiAgICB2YXIg
Y2hpbGRyZW4gPSBTb3J0YWJsZS5maW5kRWxlbWVudHMoZWxlbWVudCwgb3B0aW9ucykgfHwgW107
CiAgCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CiAgICAg
IHZhciBtYXRjaCA9IGNoaWxkcmVuW2ldLmlkLm1hdGNoKG9wdGlvbnMuZm9ybWF0KTsKCiAgICAg
IGlmICghbWF0Y2gpIGNvbnRpbnVlOwogICAgICAKICAgICAgdmFyIGNoaWxkID0gewogICAgICAg
IGlkOiBlbmNvZGVVUklDb21wb25lbnQobWF0Y2ggPyBtYXRjaFsxXSA6IG51bGwpLAogICAgICAg
IGVsZW1lbnQ6IGVsZW1lbnQsCiAgICAgICAgcGFyZW50OiBwYXJlbnQsCiAgICAgICAgY2hpbGRy
ZW46IFtdLAogICAgICAgIHBvc2l0aW9uOiBwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoLAogICAgICAg
IGNvbnRhaW5lcjogJChjaGlsZHJlbltpXSkuZG93bihvcHRpb25zLnRyZWVUYWcpCiAgICAgIH0K
ICAgICAgCiAgICAgIC8qIEdldCB0aGUgZWxlbWVudCBjb250YWluaW5nIHRoZSBjaGlsZHJlbiBh
bmQgcmVjdXJzZSBvdmVyIGl0ICovCiAgICAgIGlmIChjaGlsZC5jb250YWluZXIpCiAgICAgICAg
dGhpcy5fdHJlZShjaGlsZC5jb250YWluZXIsIG9wdGlvbnMsIGNoaWxkKQogICAgICAKICAgICAg
cGFyZW50LmNoaWxkcmVuLnB1c2ggKGNoaWxkKTsKICAgIH0KCiAgICByZXR1cm4gcGFyZW50OyAK
ICB9LAoKICB0cmVlOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50
KTsKICAgIHZhciBzb3J0YWJsZU9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoZWxlbWVudCk7CiAgICB2
YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICB0YWc6IHNvcnRhYmxlT3B0aW9ucy50
YWcsCiAgICAgIHRyZWVUYWc6IHNvcnRhYmxlT3B0aW9ucy50cmVlVGFnLAogICAgICBvbmx5OiBz
b3J0YWJsZU9wdGlvbnMub25seSwKICAgICAgbmFtZTogZWxlbWVudC5pZCwKICAgICAgZm9ybWF0
OiBzb3J0YWJsZU9wdGlvbnMuZm9ybWF0CiAgICB9LCBhcmd1bWVudHNbMV0gfHwgeyB9KTsKICAg
IAogICAgdmFyIHJvb3QgPSB7CiAgICAgIGlkOiBudWxsLAogICAgICBwYXJlbnQ6IG51bGwsCiAg
ICAgIGNoaWxkcmVuOiBbXSwKICAgICAgY29udGFpbmVyOiBlbGVtZW50LAogICAgICBwb3NpdGlv
bjogMAogICAgfQogICAgCiAgICByZXR1cm4gU29ydGFibGUuX3RyZWUoZWxlbWVudCwgb3B0aW9u
cywgcm9vdCk7CiAgfSwKCiAgLyogQ29uc3RydWN0IGEgW2ldIGluZGV4IGZvciBhIHBhcnRpY3Vs
YXIgbm9kZSAqLwogIF9jb25zdHJ1Y3RJbmRleDogZnVuY3Rpb24obm9kZSkgewogICAgdmFyIGlu
ZGV4ID0gJyc7CiAgICBkbyB7CiAgICAgIGlmIChub2RlLmlkKSBpbmRleCA9ICdbJyArIG5vZGUu
cG9zaXRpb24gKyAnXScgKyBpbmRleDsKICAgIH0gd2hpbGUgKChub2RlID0gbm9kZS5wYXJlbnQp
ICE9IG51bGwpOwogICAgcmV0dXJuIGluZGV4OwogIH0sCgogIHNlcXVlbmNlOiBmdW5jdGlvbihl
bGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBvcHRpb25zID0gT2Jq
ZWN0LmV4dGVuZCh0aGlzLm9wdGlvbnMoZWxlbWVudCksIGFyZ3VtZW50c1sxXSB8fCB7IH0pOwog
ICAgCiAgICByZXR1cm4gJCh0aGlzLmZpbmRFbGVtZW50cyhlbGVtZW50LCBvcHRpb25zKSB8fCBb
XSkubWFwKCBmdW5jdGlvbihpdGVtKSB7CiAgICAgIHJldHVybiBpdGVtLmlkLm1hdGNoKG9wdGlv
bnMuZm9ybWF0KSA/IGl0ZW0uaWQubWF0Y2gob3B0aW9ucy5mb3JtYXQpWzFdIDogJyc7CiAgICB9
KTsKICB9LAoKICBzZXRTZXF1ZW5jZTogZnVuY3Rpb24oZWxlbWVudCwgbmV3X3NlcXVlbmNlKSB7
CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVu
ZCh0aGlzLm9wdGlvbnMoZWxlbWVudCksIGFyZ3VtZW50c1syXSB8fCB7IH0pOwogICAgCiAgICB2
YXIgbm9kZU1hcCA9IHsgfTsKICAgIHRoaXMuZmluZEVsZW1lbnRzKGVsZW1lbnQsIG9wdGlvbnMp
LmVhY2goIGZ1bmN0aW9uKG4pIHsKICAgICAgICBpZiAobi5pZC5tYXRjaChvcHRpb25zLmZvcm1h
dCkpCiAgICAgICAgICAgIG5vZGVNYXBbbi5pZC5tYXRjaChvcHRpb25zLmZvcm1hdClbMV1dID0g
W24sIG4ucGFyZW50Tm9kZV07CiAgICAgICAgbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pOwog
ICAgfSk7CiAgIAogICAgbmV3X3NlcXVlbmNlLmVhY2goZnVuY3Rpb24oaWRlbnQpIHsKICAgICAg
dmFyIG4gPSBub2RlTWFwW2lkZW50XTsKICAgICAgaWYgKG4pIHsKICAgICAgICBuWzFdLmFwcGVu
ZENoaWxkKG5bMF0pOwogICAgICAgIGRlbGV0ZSBub2RlTWFwW2lkZW50XTsKICAgICAgfQogICAg
fSk7CiAgfSwKICAKICBzZXJpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQg
PSAkKGVsZW1lbnQpOwogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKFNvcnRhYmxlLm9w
dGlvbnMoZWxlbWVudCksIGFyZ3VtZW50c1sxXSB8fCB7IH0pOwogICAgdmFyIG5hbWUgPSBlbmNv
ZGVVUklDb21wb25lbnQoCiAgICAgIChhcmd1bWVudHNbMV0gJiYgYXJndW1lbnRzWzFdLm5hbWUp
ID8gYXJndW1lbnRzWzFdLm5hbWUgOiBlbGVtZW50LmlkKTsKICAgIAogICAgaWYgKG9wdGlvbnMu
dHJlZSkgewogICAgICByZXR1cm4gU29ydGFibGUudHJlZShlbGVtZW50LCBhcmd1bWVudHNbMV0p
LmNoaWxkcmVuLm1hcCggZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gW25hbWUgKyBT
b3J0YWJsZS5fY29uc3RydWN0SW5kZXgoaXRlbSkgKyAiW2lkXT0iICsgCiAgICAgICAgICAgICAg
ICBlbmNvZGVVUklDb21wb25lbnQoaXRlbS5pZCldLmNvbmNhdChpdGVtLmNoaWxkcmVuLm1hcChh
cmd1bWVudHMuY2FsbGVlKSk7CiAgICAgIH0pLmZsYXR0ZW4oKS5qb2luKCcmJyk7CiAgICB9IGVs
c2UgewogICAgICByZXR1cm4gU29ydGFibGUuc2VxdWVuY2UoZWxlbWVudCwgYXJndW1lbnRzWzFd
KS5tYXAoIGZ1bmN0aW9uKGl0ZW0pIHsKICAgICAgICByZXR1cm4gbmFtZSArICJbXT0iICsgZW5j
b2RlVVJJQ29tcG9uZW50KGl0ZW0pOwogICAgICB9KS5qb2luKCcmJyk7CiAgICB9CiAgfQp9Cgov
LyBSZXR1cm5zIHRydWUgaWYgY2hpbGQgaXMgY29udGFpbmVkIHdpdGhpbiBlbGVtZW50CkVsZW1l
bnQuaXNQYXJlbnQgPSBmdW5jdGlvbihjaGlsZCwgZWxlbWVudCkgewogIGlmICghY2hpbGQucGFy
ZW50Tm9kZSB8fCBjaGlsZCA9PSBlbGVtZW50KSByZXR1cm4gZmFsc2U7CiAgaWYgKGNoaWxkLnBh
cmVudE5vZGUgPT0gZWxlbWVudCkgcmV0dXJuIHRydWU7CiAgcmV0dXJuIEVsZW1lbnQuaXNQYXJl
bnQoY2hpbGQucGFyZW50Tm9kZSwgZWxlbWVudCk7Cn0KCkVsZW1lbnQuZmluZENoaWxkcmVuID0g
ZnVuY3Rpb24oZWxlbWVudCwgb25seSwgcmVjdXJzaXZlLCB0YWdOYW1lKSB7ICAgCiAgaWYoIWVs
ZW1lbnQuaGFzQ2hpbGROb2RlcygpKSByZXR1cm4gbnVsbDsKICB0YWdOYW1lID0gdGFnTmFtZS50
b1VwcGVyQ2FzZSgpOwogIGlmKG9ubHkpIG9ubHkgPSBbb25seV0uZmxhdHRlbigpOwogIHZhciBl
bGVtZW50cyA9IFtdOwogICRBKGVsZW1lbnQuY2hpbGROb2RlcykuZWFjaCggZnVuY3Rpb24oZSkg
ewogICAgaWYoZS50YWdOYW1lICYmIGUudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT10YWdOYW1lICYm
CiAgICAgICghb25seSB8fCAoRWxlbWVudC5jbGFzc05hbWVzKGUpLmRldGVjdChmdW5jdGlvbih2
KSB7IHJldHVybiBvbmx5LmluY2x1ZGUodikgfSkpKSkKICAgICAgICBlbGVtZW50cy5wdXNoKGUp
OwogICAgaWYocmVjdXJzaXZlKSB7CiAgICAgIHZhciBncmFuZGNoaWxkcmVuID0gRWxlbWVudC5m
aW5kQ2hpbGRyZW4oZSwgb25seSwgcmVjdXJzaXZlLCB0YWdOYW1lKTsKICAgICAgaWYoZ3JhbmRj
aGlsZHJlbikgZWxlbWVudHMucHVzaChncmFuZGNoaWxkcmVuKTsKICAgIH0KICB9KTsKCiAgcmV0
dXJuIChlbGVtZW50cy5sZW5ndGg+MCA/IGVsZW1lbnRzLmZsYXR0ZW4oKSA6IFtdKTsKfQoKRWxl
bWVudC5vZmZzZXRTaXplID0gZnVuY3Rpb24gKGVsZW1lbnQsIHR5cGUpIHsKICByZXR1cm4gZWxl
bWVudFsnb2Zmc2V0JyArICgodHlwZT09J3ZlcnRpY2FsJyB8fCB0eXBlPT0naGVpZ2h0JykgPyAn
SGVpZ2h0JyA6ICdXaWR0aCcpXTsKfQrUAAUAEQAHAAgBHwEgABQBIV8QR2h0dHA6Ly9ncmFwaGlj
czgubnl0aW1lcy5jb20vanMvYXBwL2xpYi9zY3JpcHRhY3Vsb3VzLzEuOC4xL2NvbnRyb2xzLmpz
TxEEkWJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgAB
hqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvECILDCYsLTMe
NDVRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2tsVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIj
JB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgCGAAoAgEAgQ
AIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBHaHR0cDov
L2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvbGliL3NjcmlwdGFjdWxvdXMvMS44LjEvY29u
dHJvbHMuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsJ
gd6tEMjTDTY3ODlFV05TLmtleXNaTlMub2JqZWN0c4Afqzo7PD0+P0BBQkNEgAmACoALgAyADYAO
gA+AEIARgBKAE6tGR0hJSktMTU5PUIAUgBWAFoAXgBiAGYAagBuAHIAdgB5dTGFzdC1Nb2RpZmll
ZF1DYWNoZS1Db250cm9sXUFjY2VwdC1SYW5nZXNfEBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxD
b250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25UVmFyeV8QHUZy
aSwgMTMgSnVuIDIwMDggMTU6MTY6MjQgR01UXxAXcHJpdmF0ZSwgbWF4LWFnZT0zMTMyNDVVYnl0
ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhhcHBsaWNhdGlvbi94LWphdmFzY3Jp
cHRUOTgzN18QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UXxAPIjg4MzQtNDg1MjhmNDgi
WmtlZXAtYWxpdmVfEA9BY2NlcHQtRW5jb2RpbmfSLi9oaaNpajJfEBNOU011dGFibGVEaWN0aW9u
YXJ5XE5TRGljdGlvbmFyeRGINNIuL21uo25vMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVz
cG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIkAjwCqALEAtAC3ALsAvwDCAMUAyADLAM4A0QDU
ANcA2QDbAN0A3wDhAOMA5QDnAOkA6wDtAO8A9gD+AQoBDAEOARABWgFfAWgBcwF2AXwBhQGOAZAB
lwGfAaoBrAG4AboBvAG+AcABwgHEAcYByAHKAcwBzgHaAdwB3gHgAeIB5AHmAegB6gHsAe4B8AH+
AgwCGgItAjQCQQJQAlUCWgJlAmoCigKkAqoCrwLIAuMC6AMIAxoDJQM3AzwDQANWA2MDZgNrA28D
gwAAAAAAAAIBAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAORTxGINC8vIHNjcmlwdC5hY3Vsby51cyBj
b250cm9scy5qcyB2MS44LjEsIFRodSBKYW4gMDMgMjI6MDc6MTIgLTA1MDAgMjAwOAoKLy8gQ29w
eXJpZ2h0IChjKSAyMDA1LTIwMDcgVGhvbWFzIEZ1Y2hzIChodHRwOi8vc2NyaXB0LmFjdWxvLnVz
LCBodHRwOi8vbWlyLmFjdWxvLnVzKQovLyAgICAgICAgICAgKGMpIDIwMDUtMjAwNyBJdmFuIEty
c3RpYyAoaHR0cDovL2Jsb2dzLmxhdy5oYXJ2YXJkLmVkdS9pdmFuKQovLyAgICAgICAgICAgKGMp
IDIwMDUtMjAwNyBKb24gVGlyc2VuIChodHRwOi8vd3d3LnRpcnNlbi5jb20pCi8vIENvbnRyaWJ1
dG9yczoKLy8gIFJpY2hhcmQgTGl2c2V5Ci8vICBSYWh1bCBCaGFyZ2F2YQovLyAgUm9iIFdpbGxz
Ci8vIAovLyBzY3JpcHQuYWN1bG8udXMgaXMgZnJlZWx5IGRpc3RyaWJ1dGFibGUgdW5kZXIgdGhl
IHRlcm1zIG9mIGFuIE1JVC1zdHlsZSBsaWNlbnNlLgovLyBGb3IgZGV0YWlscywgc2VlIHRoZSBz
Y3JpcHQuYWN1bG8udXMgd2ViIHNpdGU6IGh0dHA6Ly9zY3JpcHQuYWN1bG8udXMvCgovLyBBdXRv
Y29tcGxldGVyLkJhc2UgaGFuZGxlcyBhbGwgdGhlIGF1dG9jb21wbGV0aW9uIGZ1bmN0aW9uYWxp
dHkgCi8vIHRoYXQncyBpbmRlcGVuZGVudCBvZiB0aGUgZGF0YSBzb3VyY2UgZm9yIGF1dG9jb21w
bGV0aW9uLiBUaGlzCi8vIGluY2x1ZGVzIGRyYXdpbmcgdGhlIGF1dG9jb21wbGV0aW9uIG1lbnUs
IG9ic2VydmluZyBrZXlib2FyZAovLyBhbmQgbW91c2UgZXZlbnRzLCBhbmQgc2ltaWxhci4KLy8K
Ly8gU3BlY2lmaWMgYXV0b2NvbXBsZXRlcnMgbmVlZCB0byBwcm92aWRlLCBhdCB0aGUgdmVyeSBs
ZWFzdCwgCi8vIGEgZ2V0VXBkYXRlZENob2ljZXMgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGludm9r
ZWQgZXZlcnkgdGltZQovLyB0aGUgdGV4dCBpbnNpZGUgdGhlIG1vbml0b3JlZCB0ZXh0Ym94IGNo
YW5nZXMuIFRoaXMgbWV0aG9kIAovLyBzaG91bGQgZ2V0IHRoZSB0ZXh0IGZvciB3aGljaCB0byBw
cm92aWRlIGF1dG9jb21wbGV0aW9uIGJ5Ci8vIGludm9raW5nIHRoaXMuZ2V0VG9rZW4oKSwgTk9U
IGJ5IGRpcmVjdGx5IGFjY2Vzc2luZwovLyB0aGlzLmVsZW1lbnQudmFsdWUuIFRoaXMgaXMgdG8g
YWxsb3cgaW5jcmVtZW50YWwgdG9rZW5pemVkCi8vIGF1dG9jb21wbGV0aW9uLiBTcGVjaWZpYyBh
dXRvLWNvbXBsZXRpb24gbG9naWMgKEFKQVgsIGV0YykKLy8gYmVsb25ncyBpbiBnZXRVcGRhdGVk
Q2hvaWNlcy4KLy8KLy8gVG9rZW5pemVkIGluY3JlbWVudGFsIGF1dG9jb21wbGV0aW9uIGlzIGVu
YWJsZWQgYXV0b21hdGljYWxseQovLyB3aGVuIGFuIGF1dG9jb21wbGV0ZXIgaXMgaW5zdGFudGlh
dGVkIHdpdGggdGhlICd0b2tlbnMnIG9wdGlvbgovLyBpbiB0aGUgb3B0aW9ucyBwYXJhbWV0ZXIs
IGUuZy46Ci8vIG5ldyBBamF4LkF1dG9jb21wbGV0ZXIoJ2lkJywndXBkJywgJy91cmwvJywgeyB0
b2tlbnM6ICcsJyB9KTsKLy8gd2lsbCBpbmNyZW1lbnRhbGx5IGF1dG9jb21wbGV0ZSB3aXRoIGEg
Y29tbWEgYXMgdGhlIHRva2VuLgovLyBBZGRpdGlvbmFsbHksICcsJyBpbiB0aGUgYWJvdmUgZXhh
bXBsZSBjYW4gYmUgcmVwbGFjZWQgd2l0aAovLyBhIHRva2VuIGFycmF5LCBlLmcuIHsgdG9rZW5z
OiBbJywnLCAnXG4nXSB9IHdoaWNoCi8vIGVuYWJsZXMgYXV0b2NvbXBsZXRpb24gb24gbXVsdGlw
bGUgdG9rZW5zLiBUaGlzIGlzIG1vc3QgCi8vIHVzZWZ1bCB3aGVuIG9uZSBvZiB0aGUgdG9rZW5z
IGlzIFxuIChhIG5ld2xpbmUpLCBhcyBpdCAKLy8gYWxsb3dzIHNtYXJ0IGF1dG9jb21wbGV0aW9u
IGFmdGVyIGxpbmVicmVha3MuCgppZih0eXBlb2YgRWZmZWN0ID09ICd1bmRlZmluZWQnKQogIHRo
cm93KCJjb250cm9scy5qcyByZXF1aXJlcyBpbmNsdWRpbmcgc2NyaXB0LmFjdWxvLnVzJyBlZmZl
Y3RzLmpzIGxpYnJhcnkiKTsKCnZhciBBdXRvY29tcGxldGVyID0geyB9CkF1dG9jb21wbGV0ZXIu
QmFzZSA9IENsYXNzLmNyZWF0ZSh7CiAgYmFzZUluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQs
IHVwZGF0ZSwgb3B0aW9ucykgewogICAgZWxlbWVudCAgICAgICAgICA9ICQoZWxlbWVudCkKICAg
IHRoaXMuZWxlbWVudCAgICAgPSBlbGVtZW50OyAKICAgIHRoaXMudXBkYXRlICAgICAgPSAkKHVw
ZGF0ZSk7ICAKICAgIHRoaXMuaGFzRm9jdXMgICAgPSBmYWxzZTsgCiAgICB0aGlzLmNoYW5nZWQg
ICAgID0gZmFsc2U7IAogICAgdGhpcy5hY3RpdmUgICAgICA9IGZhbHNlOyAKICAgIHRoaXMuaW5k
ZXggICAgICAgPSAwOyAgICAgCiAgICB0aGlzLmVudHJ5Q291bnQgID0gMDsKICAgIHRoaXMub2xk
RWxlbWVudFZhbHVlID0gdGhpcy5lbGVtZW50LnZhbHVlOwoKICAgIGlmKHRoaXMuc2V0T3B0aW9u
cykKICAgICAgdGhpcy5zZXRPcHRpb25zKG9wdGlvbnMpOwogICAgZWxzZQogICAgICB0aGlzLm9w
dGlvbnMgPSBvcHRpb25zIHx8IHsgfTsKCiAgICB0aGlzLm9wdGlvbnMucGFyYW1OYW1lICAgID0g
dGhpcy5vcHRpb25zLnBhcmFtTmFtZSB8fCB0aGlzLmVsZW1lbnQubmFtZTsKICAgIHRoaXMub3B0
aW9ucy50b2tlbnMgICAgICAgPSB0aGlzLm9wdGlvbnMudG9rZW5zIHx8IFtdOwogICAgdGhpcy5v
cHRpb25zLmZyZXF1ZW5jeSAgICA9IHRoaXMub3B0aW9ucy5mcmVxdWVuY3kgfHwgMC40OwogICAg
dGhpcy5vcHRpb25zLm1pbkNoYXJzICAgICA9IHRoaXMub3B0aW9ucy5taW5DaGFycyB8fCAxOwog
ICAgdGhpcy5vcHRpb25zLm9uU2hvdyAgICAgICA9IHRoaXMub3B0aW9ucy5vblNob3cgfHwgCiAg
ICAgIGZ1bmN0aW9uKGVsZW1lbnQsIHVwZGF0ZSl7IAogICAgICAgIGlmKCF1cGRhdGUuc3R5bGUu
cG9zaXRpb24gfHwgdXBkYXRlLnN0eWxlLnBvc2l0aW9uPT0nYWJzb2x1dGUnKSB7CiAgICAgICAg
ICB1cGRhdGUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgICAgICAgUG9zaXRpb24u
Y2xvbmUoZWxlbWVudCwgdXBkYXRlLCB7CiAgICAgICAgICAgIHNldEhlaWdodDogZmFsc2UsIAog
ICAgICAgICAgICBvZmZzZXRUb3A6IGVsZW1lbnQub2Zmc2V0SGVpZ2h0CiAgICAgICAgICB9KTsK
ICAgICAgICB9CiAgICAgICAgRWZmZWN0LkFwcGVhcih1cGRhdGUse2R1cmF0aW9uOjAuMTV9KTsK
ICAgICAgfTsKICAgIHRoaXMub3B0aW9ucy5vbkhpZGUgPSB0aGlzLm9wdGlvbnMub25IaWRlIHx8
IAogICAgICBmdW5jdGlvbihlbGVtZW50LCB1cGRhdGUpeyBuZXcgRWZmZWN0LkZhZGUodXBkYXRl
LHtkdXJhdGlvbjowLjE1fSkgfTsKCiAgICBpZih0eXBlb2YodGhpcy5vcHRpb25zLnRva2Vucykg
PT0gJ3N0cmluZycpIAogICAgICB0aGlzLm9wdGlvbnMudG9rZW5zID0gbmV3IEFycmF5KHRoaXMu
b3B0aW9ucy50b2tlbnMpOwogICAgLy8gRm9yY2UgY2FycmlhZ2UgcmV0dXJucyBhcyB0b2tlbiBk
ZWxpbWl0ZXJzIGFueXdheQogICAgaWYgKCF0aGlzLm9wdGlvbnMudG9rZW5zLmluY2x1ZGUoJ1xu
JykpCiAgICAgIHRoaXMub3B0aW9ucy50b2tlbnMucHVzaCgnXG4nKTsKCiAgICB0aGlzLm9ic2Vy
dmVyID0gbnVsbDsKICAgIAogICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXV0b2NvbXBs
ZXRlJywnb2ZmJyk7CgogICAgRWxlbWVudC5oaWRlKHRoaXMudXBkYXRlKTsKCiAgICBFdmVudC5v
YnNlcnZlKHRoaXMuZWxlbWVudCwgJ2JsdXInLCB0aGlzLm9uQmx1ci5iaW5kQXNFdmVudExpc3Rl
bmVyKHRoaXMpKTsKICAgIEV2ZW50Lm9ic2VydmUodGhpcy5lbGVtZW50LCAna2V5ZG93bicsIHRo
aXMub25LZXlQcmVzcy5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKTsKICB9LAoKICBzaG93OiBm
dW5jdGlvbigpIHsKICAgIGlmKEVsZW1lbnQuZ2V0U3R5bGUodGhpcy51cGRhdGUsICdkaXNwbGF5
Jyk9PSdub25lJykgdGhpcy5vcHRpb25zLm9uU2hvdyh0aGlzLmVsZW1lbnQsIHRoaXMudXBkYXRl
KTsKICAgIGlmKCF0aGlzLmllZml4ICYmIAogICAgICAoUHJvdG90eXBlLkJyb3dzZXIuSUUpICYm
CiAgICAgIChFbGVtZW50LmdldFN0eWxlKHRoaXMudXBkYXRlLCAncG9zaXRpb24nKT09J2Fic29s
dXRlJykpIHsKICAgICAgbmV3IEluc2VydGlvbi5BZnRlcih0aGlzLnVwZGF0ZSwgCiAgICAgICAn
PGlmcmFtZSBpZD0iJyArIHRoaXMudXBkYXRlLmlkICsgJ19pZWZpeCIgJysKICAgICAgICdzdHls
ZT0iZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRy
YW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEob3BhY2l0eT0wKTsiICcgKwogICAgICAgJ3NyYz0iamF2
YXNjcmlwdDpmYWxzZTsiIGZyYW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIj48L2lmcmFtZT4n
KTsKICAgICAgdGhpcy5pZWZpeCA9ICQodGhpcy51cGRhdGUuaWQrJ19pZWZpeCcpOwogICAgfQog
ICAgaWYodGhpcy5pZWZpeCkgc2V0VGltZW91dCh0aGlzLmZpeElFT3ZlcmxhcHBpbmcuYmluZCh0
aGlzKSwgNTApOwogIH0sCiAgCiAgZml4SUVPdmVybGFwcGluZzogZnVuY3Rpb24oKSB7CiAgICBQ
b3NpdGlvbi5jbG9uZSh0aGlzLnVwZGF0ZSwgdGhpcy5pZWZpeCwge3NldFRvcDooIXRoaXMudXBk
YXRlLnN0eWxlLmhlaWdodCl9KTsKICAgIHRoaXMuaWVmaXguc3R5bGUuekluZGV4ID0gMTsKICAg
IHRoaXMudXBkYXRlLnN0eWxlLnpJbmRleCA9IDI7CiAgICBFbGVtZW50LnNob3codGhpcy5pZWZp
eCk7CiAgfSwKCiAgaGlkZTogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnN0b3BJbmRpY2F0b3IoKTsK
ICAgIGlmKEVsZW1lbnQuZ2V0U3R5bGUodGhpcy51cGRhdGUsICdkaXNwbGF5JykhPSdub25lJykg
dGhpcy5vcHRpb25zLm9uSGlkZSh0aGlzLmVsZW1lbnQsIHRoaXMudXBkYXRlKTsKICAgIGlmKHRo
aXMuaWVmaXgpIEVsZW1lbnQuaGlkZSh0aGlzLmllZml4KTsKICB9LAoKICBzdGFydEluZGljYXRv
cjogZnVuY3Rpb24oKSB7CiAgICBpZih0aGlzLm9wdGlvbnMuaW5kaWNhdG9yKSBFbGVtZW50LnNo
b3codGhpcy5vcHRpb25zLmluZGljYXRvcik7CiAgfSwKCiAgc3RvcEluZGljYXRvcjogZnVuY3Rp
b24oKSB7CiAgICBpZih0aGlzLm9wdGlvbnMuaW5kaWNhdG9yKSBFbGVtZW50LmhpZGUodGhpcy5v
cHRpb25zLmluZGljYXRvcik7CiAgfSwKCiAgb25LZXlQcmVzczogZnVuY3Rpb24oZXZlbnQpIHsK
ICAgIGlmKHRoaXMuYWN0aXZlKQogICAgICBzd2l0Y2goZXZlbnQua2V5Q29kZSkgewogICAgICAg
Y2FzZSBFdmVudC5LRVlfVEFCOgogICAgICAgY2FzZSBFdmVudC5LRVlfUkVUVVJOOgogICAgICAg
ICB0aGlzLnNlbGVjdEVudHJ5KCk7CiAgICAgICAgIEV2ZW50LnN0b3AoZXZlbnQpOwogICAgICAg
Y2FzZSBFdmVudC5LRVlfRVNDOgogICAgICAgICB0aGlzLmhpZGUoKTsKICAgICAgICAgdGhpcy5h
Y3RpdmUgPSBmYWxzZTsKICAgICAgICAgRXZlbnQuc3RvcChldmVudCk7CiAgICAgICAgIHJldHVy
bjsKICAgICAgIGNhc2UgRXZlbnQuS0VZX0xFRlQ6CiAgICAgICBjYXNlIEV2ZW50LktFWV9SSUdI
VDoKICAgICAgICAgcmV0dXJuOwogICAgICAgY2FzZSBFdmVudC5LRVlfVVA6CiAgICAgICAgIHRo
aXMubWFya1ByZXZpb3VzKCk7CiAgICAgICAgIHRoaXMucmVuZGVyKCk7CiAgICAgICAgIEV2ZW50
LnN0b3AoZXZlbnQpOwogICAgICAgICByZXR1cm47CiAgICAgICBjYXNlIEV2ZW50LktFWV9ET1dO
OgogICAgICAgICB0aGlzLm1hcmtOZXh0KCk7CiAgICAgICAgIHRoaXMucmVuZGVyKCk7CiAgICAg
ICAgIEV2ZW50LnN0b3AoZXZlbnQpOwogICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICBlbHNl
IAogICAgICAgaWYoZXZlbnQua2V5Q29kZT09RXZlbnQuS0VZX1RBQiB8fCBldmVudC5rZXlDb2Rl
PT1FdmVudC5LRVlfUkVUVVJOIHx8IAogICAgICAgICAoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0
ID4gMCAmJiBldmVudC5rZXlDb2RlID09IDApKSByZXR1cm47CgogICAgdGhpcy5jaGFuZ2VkID0g
dHJ1ZTsKICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlOwoKICAgIGlmKHRoaXMub2JzZXJ2ZXIpIGNs
ZWFyVGltZW91dCh0aGlzLm9ic2VydmVyKTsKICAgICAgdGhpcy5vYnNlcnZlciA9IAogICAgICAg
IHNldFRpbWVvdXQodGhpcy5vbk9ic2VydmVyRXZlbnQuYmluZCh0aGlzKSwgdGhpcy5vcHRpb25z
LmZyZXF1ZW5jeSoxMDAwKTsKICB9LAoKICBhY3RpdmF0ZTogZnVuY3Rpb24oKSB7CiAgICB0aGlz
LmNoYW5nZWQgPSBmYWxzZTsKICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlOwogICAgdGhpcy5nZXRV
cGRhdGVkQ2hvaWNlcygpOwogIH0sCgogIG9uSG92ZXI6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICB2
YXIgZWxlbWVudCA9IEV2ZW50LmZpbmRFbGVtZW50KGV2ZW50LCAnTEknKTsKICAgIGlmKHRoaXMu
aW5kZXggIT0gZWxlbWVudC5hdXRvY29tcGxldGVJbmRleCkgCiAgICB7CiAgICAgICAgdGhpcy5p
bmRleCA9IGVsZW1lbnQuYXV0b2NvbXBsZXRlSW5kZXg7CiAgICAgICAgdGhpcy5yZW5kZXIoKTsK
ICAgIH0KICAgIEV2ZW50LnN0b3AoZXZlbnQpOwogIH0sCiAgCiAgb25DbGljazogZnVuY3Rpb24o
ZXZlbnQpIHsKICAgIHZhciBlbGVtZW50ID0gRXZlbnQuZmluZEVsZW1lbnQoZXZlbnQsICdMSScp
OwogICAgdGhpcy5pbmRleCA9IGVsZW1lbnQuYXV0b2NvbXBsZXRlSW5kZXg7CiAgICB0aGlzLnNl
bGVjdEVudHJ5KCk7CiAgICB0aGlzLmhpZGUoKTsKICB9LAogIAogIG9uQmx1cjogZnVuY3Rpb24o
ZXZlbnQpIHsKICAgIC8vIG5lZWRlZCB0byBtYWtlIGNsaWNrIGV2ZW50cyB3b3JraW5nCiAgICBz
ZXRUaW1lb3V0KHRoaXMuaGlkZS5iaW5kKHRoaXMpLCAyNTApOwogICAgdGhpcy5oYXNGb2N1cyA9
IGZhbHNlOwogICAgdGhpcy5hY3RpdmUgPSBmYWxzZTsgICAgIAogIH0sIAogIAogIHJlbmRlcjog
ZnVuY3Rpb24oKSB7CiAgICBpZih0aGlzLmVudHJ5Q291bnQgPiAwKSB7CiAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGhpcy5lbnRyeUNvdW50OyBpKyspCiAgICAgICAgdGhpcy5pbmRleD09aSA/
IAogICAgICAgICAgRWxlbWVudC5hZGRDbGFzc05hbWUodGhpcy5nZXRFbnRyeShpKSwic2VsZWN0
ZWQiKSA6IAogICAgICAgICAgRWxlbWVudC5yZW1vdmVDbGFzc05hbWUodGhpcy5nZXRFbnRyeShp
KSwic2VsZWN0ZWQiKTsKICAgICAgaWYodGhpcy5oYXNGb2N1cykgeyAKICAgICAgICB0aGlzLnNo
b3coKTsKICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAg
ICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7CiAgICAgIHRoaXMuaGlkZSgpOwogICAgfQogIH0sCiAg
CiAgbWFya1ByZXZpb3VzOiBmdW5jdGlvbigpIHsKICAgIGlmKHRoaXMuaW5kZXggPiAwKSB0aGlz
LmluZGV4LS0KICAgICAgZWxzZSB0aGlzLmluZGV4ID0gdGhpcy5lbnRyeUNvdW50LTE7CiAgICB0
aGlzLmdldEVudHJ5KHRoaXMuaW5kZXgpLnNjcm9sbEludG9WaWV3KHRydWUpOwogIH0sCiAgCiAg
bWFya05leHQ6IGZ1bmN0aW9uKCkgewogICAgaWYodGhpcy5pbmRleCA8IHRoaXMuZW50cnlDb3Vu
dC0xKSB0aGlzLmluZGV4KysKICAgICAgZWxzZSB0aGlzLmluZGV4ID0gMDsKICAgIHRoaXMuZ2V0
RW50cnkodGhpcy5pbmRleCkuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpOwogIH0sCiAgCiAgZ2V0RW50
cnk6IGZ1bmN0aW9uKGluZGV4KSB7CiAgICByZXR1cm4gdGhpcy51cGRhdGUuZmlyc3RDaGlsZC5j
aGlsZE5vZGVzW2luZGV4XTsKICB9LAogIAogIGdldEN1cnJlbnRFbnRyeTogZnVuY3Rpb24oKSB7
CiAgICByZXR1cm4gdGhpcy5nZXRFbnRyeSh0aGlzLmluZGV4KTsKICB9LAogIAogIHNlbGVjdEVu
dHJ5OiBmdW5jdGlvbigpIHsKICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7CiAgICB0aGlzLnVwZGF0
ZUVsZW1lbnQodGhpcy5nZXRDdXJyZW50RW50cnkoKSk7CiAgfSwKCiAgdXBkYXRlRWxlbWVudDog
ZnVuY3Rpb24oc2VsZWN0ZWRFbGVtZW50KSB7CiAgICBpZiAodGhpcy5vcHRpb25zLnVwZGF0ZUVs
ZW1lbnQpIHsKICAgICAgdGhpcy5vcHRpb25zLnVwZGF0ZUVsZW1lbnQoc2VsZWN0ZWRFbGVtZW50
KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHZhbHVlID0gJyc7CiAgICBpZiAodGhpcy5v
cHRpb25zLnNlbGVjdCkgewogICAgICB2YXIgbm9kZXMgPSAkKHNlbGVjdGVkRWxlbWVudCkuc2Vs
ZWN0KCcuJyArIHRoaXMub3B0aW9ucy5zZWxlY3QpIHx8IFtdOwogICAgICBpZihub2Rlcy5sZW5n
dGg+MCkgdmFsdWUgPSBFbGVtZW50LmNvbGxlY3RUZXh0Tm9kZXMobm9kZXNbMF0sIHRoaXMub3B0
aW9ucy5zZWxlY3QpOwogICAgfSBlbHNlCiAgICAgIHZhbHVlID0gRWxlbWVudC5jb2xsZWN0VGV4
dE5vZGVzSWdub3JlQ2xhc3Moc2VsZWN0ZWRFbGVtZW50LCAnaW5mb3JtYWwnKTsKICAgIAogICAg
dmFyIGJvdW5kcyA9IHRoaXMuZ2V0VG9rZW5Cb3VuZHMoKTsKICAgIGlmIChib3VuZHNbMF0gIT0g
LTEpIHsKICAgICAgdmFyIG5ld1ZhbHVlID0gdGhpcy5lbGVtZW50LnZhbHVlLnN1YnN0cigwLCBi
b3VuZHNbMF0pOwogICAgICB2YXIgd2hpdGVzcGFjZSA9IHRoaXMuZWxlbWVudC52YWx1ZS5zdWJz
dHIoYm91bmRzWzBdKS5tYXRjaCgvXlxzKy8pOwogICAgICBpZiAod2hpdGVzcGFjZSkKICAgICAg
ICBuZXdWYWx1ZSArPSB3aGl0ZXNwYWNlWzBdOwogICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSBu
ZXdWYWx1ZSArIHZhbHVlICsgdGhpcy5lbGVtZW50LnZhbHVlLnN1YnN0cihib3VuZHNbMV0pOwog
ICAgfSBlbHNlIHsKICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdmFsdWU7CiAgICB9CiAgICB0
aGlzLm9sZEVsZW1lbnRWYWx1ZSA9IHRoaXMuZWxlbWVudC52YWx1ZTsKICAgIHRoaXMuZWxlbWVu
dC5mb2N1cygpOwogICAgCiAgICBpZiAodGhpcy5vcHRpb25zLmFmdGVyVXBkYXRlRWxlbWVudCkK
ICAgICAgdGhpcy5vcHRpb25zLmFmdGVyVXBkYXRlRWxlbWVudCh0aGlzLmVsZW1lbnQsIHNlbGVj
dGVkRWxlbWVudCk7CiAgfSwKCiAgdXBkYXRlQ2hvaWNlczogZnVuY3Rpb24oY2hvaWNlcykgewog
ICAgaWYoIXRoaXMuY2hhbmdlZCAmJiB0aGlzLmhhc0ZvY3VzKSB7CiAgICAgIHRoaXMudXBkYXRl
LmlubmVySFRNTCA9IGNob2ljZXM7CiAgICAgIEVsZW1lbnQuY2xlYW5XaGl0ZXNwYWNlKHRoaXMu
dXBkYXRlKTsKICAgICAgRWxlbWVudC5jbGVhbldoaXRlc3BhY2UodGhpcy51cGRhdGUuZG93bigp
KTsKCiAgICAgIGlmKHRoaXMudXBkYXRlLmZpcnN0Q2hpbGQgJiYgdGhpcy51cGRhdGUuZG93bigp
LmNoaWxkTm9kZXMpIHsKICAgICAgICB0aGlzLmVudHJ5Q291bnQgPSAKICAgICAgICAgIHRoaXMu
dXBkYXRlLmRvd24oKS5jaGlsZE5vZGVzLmxlbmd0aDsKICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXMuZW50cnlDb3VudDsgaSsrKSB7CiAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLmdl
dEVudHJ5KGkpOwogICAgICAgICAgZW50cnkuYXV0b2NvbXBsZXRlSW5kZXggPSBpOwogICAgICAg
ICAgdGhpcy5hZGRPYnNlcnZlcnMoZW50cnkpOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsgCiAg
ICAgICAgdGhpcy5lbnRyeUNvdW50ID0gMDsKICAgICAgfQoKICAgICAgdGhpcy5zdG9wSW5kaWNh
dG9yKCk7CiAgICAgIHRoaXMuaW5kZXggPSAwOwogICAgICAKICAgICAgaWYodGhpcy5lbnRyeUNv
dW50PT0xICYmIHRoaXMub3B0aW9ucy5hdXRvU2VsZWN0KSB7CiAgICAgICAgdGhpcy5zZWxlY3RF
bnRyeSgpOwogICAgICAgIHRoaXMuaGlkZSgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMu
cmVuZGVyKCk7CiAgICAgIH0KICAgIH0KICB9LAoKICBhZGRPYnNlcnZlcnM6IGZ1bmN0aW9uKGVs
ZW1lbnQpIHsKICAgIEV2ZW50Lm9ic2VydmUoZWxlbWVudCwgIm1vdXNlb3ZlciIsIHRoaXMub25I
b3Zlci5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKTsKICAgIEV2ZW50Lm9ic2VydmUoZWxlbWVu
dCwgImNsaWNrIiwgdGhpcy5vbkNsaWNrLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcykpOwogIH0s
CgogIG9uT2JzZXJ2ZXJFdmVudDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmNoYW5nZWQgPSBmYWxz
ZTsgICAKICAgIHRoaXMudG9rZW5Cb3VuZHMgPSBudWxsOwogICAgaWYodGhpcy5nZXRUb2tlbigp
Lmxlbmd0aD49dGhpcy5vcHRpb25zLm1pbkNoYXJzKSB7CiAgICAgIHRoaXMuZ2V0VXBkYXRlZENo
b2ljZXMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7CiAgICAgIHRo
aXMuaGlkZSgpOwogICAgfQogICAgdGhpcy5vbGRFbGVtZW50VmFsdWUgPSB0aGlzLmVsZW1lbnQu
dmFsdWU7CiAgfSwKCiAgZ2V0VG9rZW46IGZ1bmN0aW9uKCkgewogICAgdmFyIGJvdW5kcyA9IHRo
aXMuZ2V0VG9rZW5Cb3VuZHMoKTsKICAgIHJldHVybiB0aGlzLmVsZW1lbnQudmFsdWUuc3Vic3Ry
aW5nKGJvdW5kc1swXSwgYm91bmRzWzFdKS5zdHJpcCgpOwogIH0sCgogIGdldFRva2VuQm91bmRz
OiBmdW5jdGlvbigpIHsKICAgIGlmIChudWxsICE9IHRoaXMudG9rZW5Cb3VuZHMpIHJldHVybiB0
aGlzLnRva2VuQm91bmRzOwogICAgdmFyIHZhbHVlID0gdGhpcy5lbGVtZW50LnZhbHVlOwogICAg
aWYgKHZhbHVlLnN0cmlwKCkuZW1wdHkoKSkgcmV0dXJuIFstMSwgMF07CiAgICB2YXIgZGlmZiA9
IGFyZ3VtZW50cy5jYWxsZWUuZ2V0Rmlyc3REaWZmZXJlbmNlUG9zKHZhbHVlLCB0aGlzLm9sZEVs
ZW1lbnRWYWx1ZSk7CiAgICB2YXIgb2Zmc2V0ID0gKGRpZmYgPT0gdGhpcy5vbGRFbGVtZW50VmFs
dWUubGVuZ3RoID8gMSA6IDApOwogICAgdmFyIHByZXZUb2tlblBvcyA9IC0xLCBuZXh0VG9rZW5Q
b3MgPSB2YWx1ZS5sZW5ndGg7CiAgICB2YXIgdHA7CiAgICBmb3IgKHZhciBpbmRleCA9IDAsIGwg
PSB0aGlzLm9wdGlvbnMudG9rZW5zLmxlbmd0aDsgaW5kZXggPCBsOyArK2luZGV4KSB7CiAgICAg
IHRwID0gdmFsdWUubGFzdEluZGV4T2YodGhpcy5vcHRpb25zLnRva2Vuc1tpbmRleF0sIGRpZmYg
KyBvZmZzZXQgLSAxKTsKICAgICAgaWYgKHRwID4gcHJldlRva2VuUG9zKSBwcmV2VG9rZW5Qb3Mg
PSB0cDsKICAgICAgdHAgPSB2YWx1ZS5pbmRleE9mKHRoaXMub3B0aW9ucy50b2tlbnNbaW5kZXhd
LCBkaWZmICsgb2Zmc2V0KTsKICAgICAgaWYgKC0xICE9IHRwICYmIHRwIDwgbmV4dFRva2VuUG9z
KSBuZXh0VG9rZW5Qb3MgPSB0cDsKICAgIH0KICAgIHJldHVybiAodGhpcy50b2tlbkJvdW5kcyA9
IFtwcmV2VG9rZW5Qb3MgKyAxLCBuZXh0VG9rZW5Qb3NdKTsKICB9Cn0pOwoKQXV0b2NvbXBsZXRl
ci5CYXNlLnByb3RvdHlwZS5nZXRUb2tlbkJvdW5kcy5nZXRGaXJzdERpZmZlcmVuY2VQb3MgPSBm
dW5jdGlvbihuZXdTLCBvbGRTKSB7CiAgdmFyIGJvdW5kYXJ5ID0gTWF0aC5taW4obmV3Uy5sZW5n
dGgsIG9sZFMubGVuZ3RoKTsKICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgYm91bmRhcnk7
ICsraW5kZXgpCiAgICBpZiAobmV3U1tpbmRleF0gIT0gb2xkU1tpbmRleF0pCiAgICAgIHJldHVy
biBpbmRleDsKICByZXR1cm4gYm91bmRhcnk7Cn07CgpBamF4LkF1dG9jb21wbGV0ZXIgPSBDbGFz
cy5jcmVhdGUoQXV0b2NvbXBsZXRlci5CYXNlLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxl
bWVudCwgdXBkYXRlLCB1cmwsIG9wdGlvbnMpIHsKICAgIHRoaXMuYmFzZUluaXRpYWxpemUoZWxl
bWVudCwgdXBkYXRlLCBvcHRpb25zKTsKICAgIHRoaXMub3B0aW9ucy5hc3luY2hyb25vdXMgID0g
dHJ1ZTsKICAgIHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlICAgID0gdGhpcy5vbkNvbXBsZXRlLmJp
bmQodGhpcyk7CiAgICB0aGlzLm9wdGlvbnMuZGVmYXVsdFBhcmFtcyA9IHRoaXMub3B0aW9ucy5w
YXJhbWV0ZXJzIHx8IG51bGw7CiAgICB0aGlzLnVybCAgICAgICAgICAgICAgICAgICA9IHVybDsK
ICB9LAoKICBnZXRVcGRhdGVkQ2hvaWNlczogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnN0YXJ0SW5k
aWNhdG9yKCk7CiAgICAKICAgIHZhciBlbnRyeSA9IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLm9w
dGlvbnMucGFyYW1OYW1lKSArICc9JyArIAogICAgICBlbmNvZGVVUklDb21wb25lbnQodGhpcy5n
ZXRUb2tlbigpKTsKCiAgICB0aGlzLm9wdGlvbnMucGFyYW1ldGVycyA9IHRoaXMub3B0aW9ucy5j
YWxsYmFjayA/CiAgICAgIHRoaXMub3B0aW9ucy5jYWxsYmFjayh0aGlzLmVsZW1lbnQsIGVudHJ5
KSA6IGVudHJ5OwoKICAgIGlmKHRoaXMub3B0aW9ucy5kZWZhdWx0UGFyYW1zKSAKICAgICAgdGhp
cy5vcHRpb25zLnBhcmFtZXRlcnMgKz0gJyYnICsgdGhpcy5vcHRpb25zLmRlZmF1bHRQYXJhbXM7
CiAgICAKICAgIG5ldyBBamF4LlJlcXVlc3QodGhpcy51cmwsIHRoaXMub3B0aW9ucyk7CiAgfSwK
CiAgb25Db21wbGV0ZTogZnVuY3Rpb24ocmVxdWVzdCkgewogICAgdGhpcy51cGRhdGVDaG9pY2Vz
KHJlcXVlc3QucmVzcG9uc2VUZXh0KTsKICB9Cn0pOwoKLy8gVGhlIGxvY2FsIGFycmF5IGF1dG9j
b21wbGV0ZXIuIFVzZWQgd2hlbiB5b3UnZCBwcmVmZXIgdG8KLy8gaW5qZWN0IGFuIGFycmF5IG9m
IGF1dG9jb21wbGV0aW9uIG9wdGlvbnMgaW50byB0aGUgcGFnZSwgcmF0aGVyCi8vIHRoYW4gc2Vu
ZGluZyBvdXQgQWpheCBxdWVyaWVzLCB3aGljaCBjYW4gYmUgcXVpdGUgc2xvdyBzb21ldGltZXMu
Ci8vCi8vIFRoZSBjb25zdHJ1Y3RvciB0YWtlcyBmb3VyIHBhcmFtZXRlcnMuIFRoZSBmaXJzdCB0
d28gYXJlLCBhcyB1c3VhbCwKLy8gdGhlIGlkIG9mIHRoZSBtb25pdG9yZWQgdGV4dGJveCwgYW5k
IGlkIG9mIHRoZSBhdXRvY29tcGxldGlvbiBtZW51LgovLyBUaGUgdGhpcmQgaXMgdGhlIGFycmF5
IHlvdSB3YW50IHRvIGF1dG9jb21wbGV0ZSBmcm9tLCBhbmQgdGhlIGZvdXJ0aAovLyBpcyB0aGUg
b3B0aW9ucyBibG9jay4KLy8KLy8gRXh0cmEgbG9jYWwgYXV0b2NvbXBsZXRpb24gb3B0aW9uczoK
Ly8gLSBjaG9pY2VzIC0gSG93IG1hbnkgYXV0b2NvbXBsZXRpb24gY2hvaWNlcyB0byBvZmZlcgov
LwovLyAtIHBhcnRpYWxTZWFyY2ggLSBJZiBmYWxzZSwgdGhlIGF1dG9jb21wbGV0ZXIgd2lsbCBt
YXRjaCBlbnRlcmVkCi8vICAgICAgICAgICAgICAgICAgICB0ZXh0IG9ubHkgYXQgdGhlIGJlZ2lu
bmluZyBvZiBzdHJpbmdzIGluIHRoZSAKLy8gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0
ZSBhcnJheS4gRGVmYXVsdHMgdG8gdHJ1ZSwgd2hpY2ggd2lsbAovLyAgICAgICAgICAgICAgICAg
ICAgbWF0Y2ggdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIGFueSAqd29yZCogaW4gdGhlCi8vICAg
ICAgICAgICAgICAgICAgICBzdHJpbmdzIGluIHRoZSBhdXRvY29tcGxldGUgYXJyYXkuIElmIHlv
dSB3YW50IHRvCi8vICAgICAgICAgICAgICAgICAgICBzZWFyY2ggYW55d2hlcmUgaW4gdGhlIHN0
cmluZywgYWRkaXRpb25hbGx5IHNldAovLyAgICAgICAgICAgICAgICAgICAgdGhlIG9wdGlvbiBm
dWxsU2VhcmNoIHRvIHRydWUgKGRlZmF1bHQ6IG9mZikuCi8vCi8vIC0gZnVsbFNzZWFyY2ggLSBT
ZWFyY2ggYW55d2hlcmUgaW4gYXV0b2NvbXBsZXRlIGFycmF5IHN0cmluZ3MuCi8vCi8vIC0gcGFy
dGlhbENoYXJzIC0gSG93IG1hbnkgY2hhcmFjdGVycyB0byBlbnRlciBiZWZvcmUgdHJpZ2dlcmlu
ZwovLyAgICAgICAgICAgICAgICAgICBhIHBhcnRpYWwgbWF0Y2ggKHVubGlrZSBtaW5DaGFycywg
d2hpY2ggZGVmaW5lcwovLyAgICAgICAgICAgICAgICAgICBob3cgbWFueSBjaGFyYWN0ZXJzIGFy
ZSByZXF1aXJlZCB0byBkbyBhbnkgbWF0Y2gKLy8gICAgICAgICAgICAgICAgICAgYXQgYWxsKS4g
RGVmYXVsdHMgdG8gMi4KLy8KLy8gLSBpZ25vcmVDYXNlIC0gV2hldGhlciB0byBpZ25vcmUgY2Fz
ZSB3aGVuIGF1dG9jb21wbGV0aW5nLgovLyAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gdHJ1
ZS4KLy8KLy8gSXQncyBwb3NzaWJsZSB0byBwYXNzIGluIGEgY3VzdG9tIGZ1bmN0aW9uIGFzIHRo
ZSAnc2VsZWN0b3InIAovLyBvcHRpb24sIGlmIHlvdSBwcmVmZXIgdG8gd3JpdGUgeW91ciBvd24g
YXV0b2NvbXBsZXRpb24gbG9naWMuCi8vIEluIHRoYXQgY2FzZSwgdGhlIG90aGVyIG9wdGlvbnMg
YWJvdmUgd2lsbCBub3QgYXBwbHkgdW5sZXNzCi8vIHlvdSBzdXBwb3J0IHRoZW0uCgpBdXRvY29t
cGxldGVyLkxvY2FsID0gQ2xhc3MuY3JlYXRlKEF1dG9jb21wbGV0ZXIuQmFzZSwgewogIGluaXRp
YWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQsIHVwZGF0ZSwgYXJyYXksIG9wdGlvbnMpIHsKICAgIHRo
aXMuYmFzZUluaXRpYWxpemUoZWxlbWVudCwgdXBkYXRlLCBvcHRpb25zKTsKICAgIHRoaXMub3B0
aW9ucy5hcnJheSA9IGFycmF5OwogIH0sCgogIGdldFVwZGF0ZWRDaG9pY2VzOiBmdW5jdGlvbigp
IHsKICAgIHRoaXMudXBkYXRlQ2hvaWNlcyh0aGlzLm9wdGlvbnMuc2VsZWN0b3IodGhpcykpOwog
IH0sCgogIHNldE9wdGlvbnM6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgIHRoaXMub3B0aW9ucyA9
IE9iamVjdC5leHRlbmQoewogICAgICBjaG9pY2VzOiAxMCwKICAgICAgcGFydGlhbFNlYXJjaDog
dHJ1ZSwKICAgICAgcGFydGlhbENoYXJzOiAyLAogICAgICBpZ25vcmVDYXNlOiB0cnVlLAogICAg
ICBmdWxsU2VhcmNoOiBmYWxzZSwKICAgICAgc2VsZWN0b3I6IGZ1bmN0aW9uKGluc3RhbmNlKSB7
CiAgICAgICAgdmFyIHJldCAgICAgICA9IFtdOyAvLyBCZWdpbm5pbmcgbWF0Y2hlcwogICAgICAg
IHZhciBwYXJ0aWFsICAgPSBbXTsgLy8gSW5zaWRlIG1hdGNoZXMKICAgICAgICB2YXIgZW50cnkg
ICAgID0gaW5zdGFuY2UuZ2V0VG9rZW4oKTsKICAgICAgICB2YXIgY291bnQgICAgID0gMDsKCiAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnN0YW5jZS5vcHRpb25zLmFycmF5Lmxlbmd0aCAm
JiAgCiAgICAgICAgICByZXQubGVuZ3RoIDwgaW5zdGFuY2Uub3B0aW9ucy5jaG9pY2VzIDsgaSsr
KSB7IAoKICAgICAgICAgIHZhciBlbGVtID0gaW5zdGFuY2Uub3B0aW9ucy5hcnJheVtpXTsKICAg
ICAgICAgIHZhciBmb3VuZFBvcyA9IGluc3RhbmNlLm9wdGlvbnMuaWdub3JlQ2FzZSA/IAogICAg
ICAgICAgICBlbGVtLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihlbnRyeS50b0xvd2VyQ2FzZSgpKSA6
IAogICAgICAgICAgICBlbGVtLmluZGV4T2YoZW50cnkpOwoKICAgICAgICAgIHdoaWxlIChmb3Vu
ZFBvcyAhPSAtMSkgewogICAgICAgICAgICBpZiAoZm91bmRQb3MgPT0gMCAmJiBlbGVtLmxlbmd0
aCAhPSBlbnRyeS5sZW5ndGgpIHsgCiAgICAgICAgICAgICAgcmV0LnB1c2goIjxsaT48c3Ryb25n
PiIgKyBlbGVtLnN1YnN0cigwLCBlbnRyeS5sZW5ndGgpICsgIjwvc3Ryb25nPiIgKyAKICAgICAg
ICAgICAgICAgIGVsZW0uc3Vic3RyKGVudHJ5Lmxlbmd0aCkgKyAiPC9saT4iKTsKICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS5sZW5ndGggPj0gaW5zdGFu
Y2Uub3B0aW9ucy5wYXJ0aWFsQ2hhcnMgJiYgCiAgICAgICAgICAgICAgaW5zdGFuY2Uub3B0aW9u
cy5wYXJ0aWFsU2VhcmNoICYmIGZvdW5kUG9zICE9IC0xKSB7CiAgICAgICAgICAgICAgaWYgKGlu
c3RhbmNlLm9wdGlvbnMuZnVsbFNlYXJjaCB8fCAvXHMvLnRlc3QoZWxlbS5zdWJzdHIoZm91bmRQ
b3MtMSwxKSkpIHsKICAgICAgICAgICAgICAgIHBhcnRpYWwucHVzaCgiPGxpPiIgKyBlbGVtLnN1
YnN0cigwLCBmb3VuZFBvcykgKyAiPHN0cm9uZz4iICsKICAgICAgICAgICAgICAgICAgZWxlbS5z
dWJzdHIoZm91bmRQb3MsIGVudHJ5Lmxlbmd0aCkgKyAiPC9zdHJvbmc+IiArIGVsZW0uc3Vic3Ry
KAogICAgICAgICAgICAgICAgICBmb3VuZFBvcyArIGVudHJ5Lmxlbmd0aCkgKyAiPC9saT4iKTsK
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgZm91bmRQb3MgPSBpbnN0YW5jZS5vcHRpb25zLmlnbm9yZUNhc2UgPyAKICAgICAg
ICAgICAgICBlbGVtLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihlbnRyeS50b0xvd2VyQ2FzZSgpLCBm
b3VuZFBvcyArIDEpIDogCiAgICAgICAgICAgICAgZWxlbS5pbmRleE9mKGVudHJ5LCBmb3VuZFBv
cyArIDEpOwoKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHBhcnRpYWwubGVuZ3Ro
KQogICAgICAgICAgcmV0ID0gcmV0LmNvbmNhdChwYXJ0aWFsLnNsaWNlKDAsIGluc3RhbmNlLm9w
dGlvbnMuY2hvaWNlcyAtIHJldC5sZW5ndGgpKQogICAgICAgIHJldHVybiAiPHVsPiIgKyByZXQu
am9pbignJykgKyAiPC91bD4iOwogICAgICB9CiAgICB9LCBvcHRpb25zIHx8IHsgfSk7CiAgfQp9
KTsKCi8vIEFKQVggaW4tcGxhY2UgZWRpdG9yIGFuZCBjb2xsZWN0aW9uIGVkaXRvcgovLyBGdWxs
IHJld3JpdGUgYnkgQ2hyaXN0b3BoZSBQb3J0ZW5ldXZlIDx0ZGRAdGRkc3dvcmxkLmNvbT4gKEFw
cmlsIDIwMDcpLgoKLy8gVXNlIHRoaXMgaWYgeW91IG5vdGljZSB3ZWlyZCBzY3JvbGxpbmcgcHJv
YmxlbXMgb24gc29tZSBicm93c2VycywKLy8gdGhlIERPTSBtaWdodCBiZSBhIGJpdCBjb25mdXNl
ZCB3aGVuIHRoaXMgZ2V0cyBjYWxsZWQgc28gZG8gdGhpcwovLyB3YWl0cyAxIG1zICh3aXRoIHNl
dFRpbWVvdXQpIHVudGlsIGl0IGRvZXMgdGhlIGFjdGl2YXRpb24KRmllbGQuc2Nyb2xsRnJlZUFj
dGl2YXRlID0gZnVuY3Rpb24oZmllbGQpIHsKICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
RmllbGQuYWN0aXZhdGUoZmllbGQpOwogIH0sIDEpOwp9CgpBamF4LkluUGxhY2VFZGl0b3IgPSBD
bGFzcy5jcmVhdGUoewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQsIHVybCwgb3B0aW9u
cykgewogICAgdGhpcy51cmwgPSB1cmw7CiAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50ID0gJChl
bGVtZW50KTsKICAgIHRoaXMucHJlcGFyZU9wdGlvbnMoKTsKICAgIHRoaXMuX2NvbnRyb2xzID0g
eyB9OwogICAgYXJndW1lbnRzLmNhbGxlZS5kZWFsV2l0aERlcHJlY2F0ZWRPcHRpb25zKG9wdGlv
bnMpOyAvLyBERVBSRUNBVElPTiBMQVlFUiEhIQogICAgT2JqZWN0LmV4dGVuZCh0aGlzLm9wdGlv
bnMsIG9wdGlvbnMgfHwgeyB9KTsKICAgIGlmICghdGhpcy5vcHRpb25zLmZvcm1JZCAmJiB0aGlz
LmVsZW1lbnQuaWQpIHsKICAgICAgdGhpcy5vcHRpb25zLmZvcm1JZCA9IHRoaXMuZWxlbWVudC5p
ZCArICctaW5wbGFjZWVkaXRvcic7CiAgICAgIGlmICgkKHRoaXMub3B0aW9ucy5mb3JtSWQpKQog
ICAgICAgIHRoaXMub3B0aW9ucy5mb3JtSWQgPSAnJzsKICAgIH0KICAgIGlmICh0aGlzLm9wdGlv
bnMuZXh0ZXJuYWxDb250cm9sKQogICAgICB0aGlzLm9wdGlvbnMuZXh0ZXJuYWxDb250cm9sID0g
JCh0aGlzLm9wdGlvbnMuZXh0ZXJuYWxDb250cm9sKTsKICAgIGlmICghdGhpcy5vcHRpb25zLmV4
dGVybmFsQ29udHJvbCkKICAgICAgdGhpcy5vcHRpb25zLmV4dGVybmFsQ29udHJvbE9ubHkgPSBm
YWxzZTsKICAgIHRoaXMuX29yaWdpbmFsQmFja2dyb3VuZCA9IHRoaXMuZWxlbWVudC5nZXRTdHls
ZSgnYmFja2dyb3VuZC1jb2xvcicpIHx8ICd0cmFuc3BhcmVudCc7CiAgICB0aGlzLmVsZW1lbnQu
dGl0bGUgPSB0aGlzLm9wdGlvbnMuY2xpY2tUb0VkaXRUZXh0OwogICAgdGhpcy5fYm91bmRDYW5j
ZWxIYW5kbGVyID0gdGhpcy5oYW5kbGVGb3JtQ2FuY2VsbGF0aW9uLmJpbmQodGhpcyk7CiAgICB0
aGlzLl9ib3VuZENvbXBsZXRlID0gKHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlIHx8IFByb3RvdHlw
ZS5lbXB0eUZ1bmN0aW9uKS5iaW5kKHRoaXMpOwogICAgdGhpcy5fYm91bmRGYWlsdXJlSGFuZGxl
ciA9IHRoaXMuaGFuZGxlQUpBWEZhaWx1cmUuYmluZCh0aGlzKTsKICAgIHRoaXMuX2JvdW5kU3Vi
bWl0SGFuZGxlciA9IHRoaXMuaGFuZGxlRm9ybVN1Ym1pc3Npb24uYmluZCh0aGlzKTsKICAgIHRo
aXMuX2JvdW5kV3JhcHBlckhhbmRsZXIgPSB0aGlzLndyYXBVcC5iaW5kKHRoaXMpOwogICAgdGhp
cy5yZWdpc3Rlckxpc3RlbmVycygpOwogIH0sCiAgY2hlY2tGb3JFc2NhcGVPclJldHVybjogZnVu
Y3Rpb24oZSkgewogICAgaWYgKCF0aGlzLl9lZGl0aW5nIHx8IGUuY3RybEtleSB8fCBlLmFsdEtl
eSB8fCBlLnNoaWZ0S2V5KSByZXR1cm47CiAgICBpZiAoRXZlbnQuS0VZX0VTQyA9PSBlLmtleUNv
ZGUpCiAgICAgIHRoaXMuaGFuZGxlRm9ybUNhbmNlbGxhdGlvbihlKTsKICAgIGVsc2UgaWYgKEV2
ZW50LktFWV9SRVRVUk4gPT0gZS5rZXlDb2RlKQogICAgICB0aGlzLmhhbmRsZUZvcm1TdWJtaXNz
aW9uKGUpOwogIH0sCiAgY3JlYXRlQ29udHJvbDogZnVuY3Rpb24obW9kZSwgaGFuZGxlciwgZXh0
cmFDbGFzc2VzKSB7CiAgICB2YXIgY29udHJvbCA9IHRoaXMub3B0aW9uc1ttb2RlICsgJ0NvbnRy
b2wnXTsKICAgIHZhciB0ZXh0ID0gdGhpcy5vcHRpb25zW21vZGUgKyAnVGV4dCddOwogICAgaWYg
KCdidXR0b24nID09IGNvbnRyb2wpIHsKICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lucHV0Jyk7CiAgICAgIGJ0bi50eXBlID0gJ3N1Ym1pdCc7CiAgICAgIGJ0bi52YWx1
ZSA9IHRleHQ7CiAgICAgIGJ0bi5jbGFzc05hbWUgPSAnZWRpdG9yXycgKyBtb2RlICsgJ19idXR0
b24nOwogICAgICBpZiAoJ2NhbmNlbCcgPT0gbW9kZSkKICAgICAgICBidG4ub25jbGljayA9IHRo
aXMuX2JvdW5kQ2FuY2VsSGFuZGxlcjsKICAgICAgdGhpcy5fZm9ybS5hcHBlbmRDaGlsZChidG4p
OwogICAgICB0aGlzLl9jb250cm9sc1ttb2RlXSA9IGJ0bjsKICAgIH0gZWxzZSBpZiAoJ2xpbmsn
ID09IGNvbnRyb2wpIHsKICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdh
Jyk7CiAgICAgIGxpbmsuaHJlZiA9ICcjJzsKICAgICAgbGluay5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7CiAgICAgIGxpbmsub25jbGljayA9ICdjYW5jZWwnID09
IG1vZGUgPyB0aGlzLl9ib3VuZENhbmNlbEhhbmRsZXIgOiB0aGlzLl9ib3VuZFN1Ym1pdEhhbmRs
ZXI7CiAgICAgIGxpbmsuY2xhc3NOYW1lID0gJ2VkaXRvcl8nICsgbW9kZSArICdfbGluayc7CiAg
ICAgIGlmIChleHRyYUNsYXNzZXMpCiAgICAgICAgbGluay5jbGFzc05hbWUgKz0gJyAnICsgZXh0
cmFDbGFzc2VzOwogICAgICB0aGlzLl9mb3JtLmFwcGVuZENoaWxkKGxpbmspOwogICAgICB0aGlz
Ll9jb250cm9sc1ttb2RlXSA9IGxpbms7CiAgICB9CiAgfSwKICBjcmVhdGVFZGl0RmllbGQ6IGZ1
bmN0aW9uKCkgewogICAgdmFyIHRleHQgPSAodGhpcy5vcHRpb25zLmxvYWRUZXh0VVJMID8gdGhp
cy5vcHRpb25zLmxvYWRpbmdUZXh0IDogdGhpcy5nZXRUZXh0KCkpOwogICAgdmFyIGZsZDsKICAg
IGlmICgxID49IHRoaXMub3B0aW9ucy5yb3dzICYmICEvXHJ8XG4vLnRlc3QodGhpcy5nZXRUZXh0
KCkpKSB7CiAgICAgIGZsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAg
IGZsZC50eXBlID0gJ3RleHQnOwogICAgICB2YXIgc2l6ZSA9IHRoaXMub3B0aW9ucy5zaXplIHx8
IHRoaXMub3B0aW9ucy5jb2xzIHx8IDA7CiAgICAgIGlmICgwIDwgc2l6ZSkgZmxkLnNpemUgPSBz
aXplOwogICAgfSBlbHNlIHsKICAgICAgZmxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4
dGFyZWEnKTsKICAgICAgZmxkLnJvd3MgPSAoMSA+PSB0aGlzLm9wdGlvbnMucm93cyA/IHRoaXMu
b3B0aW9ucy5hdXRvUm93cyA6IHRoaXMub3B0aW9ucy5yb3dzKTsKICAgICAgZmxkLmNvbHMgPSB0
aGlzLm9wdGlvbnMuY29scyB8fCA0MDsKICAgIH0KICAgIGZsZC5uYW1lID0gdGhpcy5vcHRpb25z
LnBhcmFtTmFtZTsKICAgIGZsZC52YWx1ZSA9IHRleHQ7IC8vIE5vIEhUTUwgYnJlYWtzIGNvbnZl
cnNpb24gYW55bW9yZQogICAgZmxkLmNsYXNzTmFtZSA9ICdlZGl0b3JfZmllbGQnOwogICAgaWYg
KHRoaXMub3B0aW9ucy5zdWJtaXRPbkJsdXIpCiAgICAgIGZsZC5vbmJsdXIgPSB0aGlzLl9ib3Vu
ZFN1Ym1pdEhhbmRsZXI7CiAgICB0aGlzLl9jb250cm9scy5lZGl0b3IgPSBmbGQ7CiAgICBpZiAo
dGhpcy5vcHRpb25zLmxvYWRUZXh0VVJMKQogICAgICB0aGlzLmxvYWRFeHRlcm5hbFRleHQoKTsK
ICAgIHRoaXMuX2Zvcm0uYXBwZW5kQ2hpbGQodGhpcy5fY29udHJvbHMuZWRpdG9yKTsKICB9LAog
IGNyZWF0ZUZvcm06IGZ1bmN0aW9uKCkgewogICAgdmFyIGlwZSA9IHRoaXM7CiAgICBmdW5jdGlv
biBhZGRUZXh0KG1vZGUsIGNvbmRpdGlvbikgewogICAgICB2YXIgdGV4dCA9IGlwZS5vcHRpb25z
Wyd0ZXh0JyArIG1vZGUgKyAnQ29udHJvbHMnXTsKICAgICAgaWYgKCF0ZXh0IHx8IGNvbmRpdGlv
biA9PT0gZmFsc2UpIHJldHVybjsKICAgICAgaXBlLl9mb3JtLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKICAgIH07CiAgICB0aGlzLl9mb3JtID0gJChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdmb3JtJykpOwogICAgdGhpcy5fZm9ybS5pZCA9IHRoaXMub3B0aW9u
cy5mb3JtSWQ7CiAgICB0aGlzLl9mb3JtLmFkZENsYXNzTmFtZSh0aGlzLm9wdGlvbnMuZm9ybUNs
YXNzTmFtZSk7CiAgICB0aGlzLl9mb3JtLm9uc3VibWl0ID0gdGhpcy5fYm91bmRTdWJtaXRIYW5k
bGVyOwogICAgdGhpcy5jcmVhdGVFZGl0RmllbGQoKTsKICAgIGlmICgndGV4dGFyZWEnID09IHRo
aXMuX2NvbnRyb2xzLmVkaXRvci50YWdOYW1lLnRvTG93ZXJDYXNlKCkpCiAgICAgIHRoaXMuX2Zv
cm0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7CiAgICBpZiAodGhp
cy5vcHRpb25zLm9uRm9ybUN1c3RvbWl6YXRpb24pCiAgICAgIHRoaXMub3B0aW9ucy5vbkZvcm1D
dXN0b21pemF0aW9uKHRoaXMsIHRoaXMuX2Zvcm0pOwogICAgYWRkVGV4dCgnQmVmb3JlJywgdGhp
cy5vcHRpb25zLm9rQ29udHJvbCB8fCB0aGlzLm9wdGlvbnMuY2FuY2VsQ29udHJvbCk7CiAgICB0
aGlzLmNyZWF0ZUNvbnRyb2woJ29rJywgdGhpcy5fYm91bmRTdWJtaXRIYW5kbGVyKTsKICAgIGFk
ZFRleHQoJ0JldHdlZW4nLCB0aGlzLm9wdGlvbnMub2tDb250cm9sICYmIHRoaXMub3B0aW9ucy5j
YW5jZWxDb250cm9sKTsKICAgIHRoaXMuY3JlYXRlQ29udHJvbCgnY2FuY2VsJywgdGhpcy5fYm91
bmRDYW5jZWxIYW5kbGVyLCAnZWRpdG9yX2NhbmNlbCcpOwogICAgYWRkVGV4dCgnQWZ0ZXInLCB0
aGlzLm9wdGlvbnMub2tDb250cm9sIHx8IHRoaXMub3B0aW9ucy5jYW5jZWxDb250cm9sKTsKICB9
LAogIGRlc3Ryb3k6IGZ1bmN0aW9uKCkgewogICAgaWYgKHRoaXMuX29sZElubmVySFRNTCkKICAg
ICAgdGhpcy5lbGVtZW50LmlubmVySFRNTCA9IHRoaXMuX29sZElubmVySFRNTDsKICAgIHRoaXMu
bGVhdmVFZGl0TW9kZSgpOwogICAgdGhpcy51bnJlZ2lzdGVyTGlzdGVuZXJzKCk7CiAgfSwKICBl
bnRlckVkaXRNb2RlOiBmdW5jdGlvbihlKSB7CiAgICBpZiAodGhpcy5fc2F2aW5nIHx8IHRoaXMu
X2VkaXRpbmcpIHJldHVybjsKICAgIHRoaXMuX2VkaXRpbmcgPSB0cnVlOwogICAgdGhpcy50cmln
Z2VyQ2FsbGJhY2soJ29uRW50ZXJFZGl0TW9kZScpOwogICAgaWYgKHRoaXMub3B0aW9ucy5leHRl
cm5hbENvbnRyb2wpCiAgICAgIHRoaXMub3B0aW9ucy5leHRlcm5hbENvbnRyb2wuaGlkZSgpOwog
ICAgdGhpcy5lbGVtZW50LmhpZGUoKTsKICAgIHRoaXMuY3JlYXRlRm9ybSgpOwogICAgdGhpcy5l
bGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX2Zvcm0sIHRoaXMuZWxlbWVudCk7
CiAgICBpZiAoIXRoaXMub3B0aW9ucy5sb2FkVGV4dFVSTCkKICAgICAgdGhpcy5wb3N0UHJvY2Vz
c0VkaXRGaWVsZCgpOwogICAgaWYgKGUpIEV2ZW50LnN0b3AoZSk7CiAgfSwKICBlbnRlckhvdmVy
OiBmdW5jdGlvbihlKSB7CiAgICBpZiAodGhpcy5vcHRpb25zLmhvdmVyQ2xhc3NOYW1lKQogICAg
ICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3NOYW1lKHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzTmFtZSk7
CiAgICBpZiAodGhpcy5fc2F2aW5nKSByZXR1cm47CiAgICB0aGlzLnRyaWdnZXJDYWxsYmFjaygn
b25FbnRlckhvdmVyJyk7CiAgfSwKICBnZXRUZXh0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0
aGlzLmVsZW1lbnQuaW5uZXJIVE1MOwogIH0sCiAgaGFuZGxlQUpBWEZhaWx1cmU6IGZ1bmN0aW9u
KHRyYW5zcG9ydCkgewogICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2soJ29uRmFpbHVyZScsIHRyYW5z
cG9ydCk7CiAgICBpZiAodGhpcy5fb2xkSW5uZXJIVE1MKSB7CiAgICAgIHRoaXMuZWxlbWVudC5p
bm5lckhUTUwgPSB0aGlzLl9vbGRJbm5lckhUTUw7CiAgICAgIHRoaXMuX29sZElubmVySFRNTCA9
IG51bGw7CiAgICB9CiAgfSwKICBoYW5kbGVGb3JtQ2FuY2VsbGF0aW9uOiBmdW5jdGlvbihlKSB7
CiAgICB0aGlzLndyYXBVcCgpOwogICAgaWYgKGUpIEV2ZW50LnN0b3AoZSk7CiAgfSwKICBoYW5k
bGVGb3JtU3VibWlzc2lvbjogZnVuY3Rpb24oZSkgewogICAgdmFyIGZvcm0gPSB0aGlzLl9mb3Jt
OwogICAgdmFyIHZhbHVlID0gJEYodGhpcy5fY29udHJvbHMuZWRpdG9yKTsKICAgIHRoaXMucHJl
cGFyZVN1Ym1pc3Npb24oKTsKICAgIHZhciBwYXJhbXMgPSB0aGlzLm9wdGlvbnMuY2FsbGJhY2so
Zm9ybSwgdmFsdWUpIHx8ICcnOwogICAgaWYgKE9iamVjdC5pc1N0cmluZyhwYXJhbXMpKQogICAg
ICBwYXJhbXMgPSBwYXJhbXMudG9RdWVyeVBhcmFtcygpOwogICAgcGFyYW1zLmVkaXRvcklkID0g
dGhpcy5lbGVtZW50LmlkOwogICAgaWYgKHRoaXMub3B0aW9ucy5odG1sUmVzcG9uc2UpIHsKICAg
ICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsgZXZhbFNjcmlwdHM6IHRydWUgfSwgdGhp
cy5vcHRpb25zLmFqYXhPcHRpb25zKTsKICAgICAgT2JqZWN0LmV4dGVuZChvcHRpb25zLCB7CiAg
ICAgICAgcGFyYW1ldGVyczogcGFyYW1zLAogICAgICAgIG9uQ29tcGxldGU6IHRoaXMuX2JvdW5k
V3JhcHBlckhhbmRsZXIsCiAgICAgICAgb25GYWlsdXJlOiB0aGlzLl9ib3VuZEZhaWx1cmVIYW5k
bGVyCiAgICAgIH0pOwogICAgICBuZXcgQWpheC5VcGRhdGVyKHsgc3VjY2VzczogdGhpcy5lbGVt
ZW50IH0sIHRoaXMudXJsLCBvcHRpb25zKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBvcHRpb25z
ID0gT2JqZWN0LmV4dGVuZCh7IG1ldGhvZDogJ2dldCcgfSwgdGhpcy5vcHRpb25zLmFqYXhPcHRp
b25zKTsKICAgICAgT2JqZWN0LmV4dGVuZChvcHRpb25zLCB7CiAgICAgICAgcGFyYW1ldGVyczog
cGFyYW1zLAogICAgICAgIG9uQ29tcGxldGU6IHRoaXMuX2JvdW5kV3JhcHBlckhhbmRsZXIsCiAg
ICAgICAgb25GYWlsdXJlOiB0aGlzLl9ib3VuZEZhaWx1cmVIYW5kbGVyCiAgICAgIH0pOwogICAg
ICBuZXcgQWpheC5SZXF1ZXN0KHRoaXMudXJsLCBvcHRpb25zKTsKICAgIH0KICAgIGlmIChlKSBF
dmVudC5zdG9wKGUpOwogIH0sCiAgbGVhdmVFZGl0TW9kZTogZnVuY3Rpb24oKSB7CiAgICB0aGlz
LmVsZW1lbnQucmVtb3ZlQ2xhc3NOYW1lKHRoaXMub3B0aW9ucy5zYXZpbmdDbGFzc05hbWUpOwog
ICAgdGhpcy5yZW1vdmVGb3JtKCk7CiAgICB0aGlzLmxlYXZlSG92ZXIoKTsKICAgIHRoaXMuZWxl
bWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLl9vcmlnaW5hbEJhY2tncm91bmQ7CiAg
ICB0aGlzLmVsZW1lbnQuc2hvdygpOwogICAgaWYgKHRoaXMub3B0aW9ucy5leHRlcm5hbENvbnRy
b2wpCiAgICAgIHRoaXMub3B0aW9ucy5leHRlcm5hbENvbnRyb2wuc2hvdygpOwogICAgdGhpcy5f
c2F2aW5nID0gZmFsc2U7CiAgICB0aGlzLl9lZGl0aW5nID0gZmFsc2U7CiAgICB0aGlzLl9vbGRJ
bm5lckhUTUwgPSBudWxsOwogICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2soJ29uTGVhdmVFZGl0TW9k
ZScpOwogIH0sCiAgbGVhdmVIb3ZlcjogZnVuY3Rpb24oZSkgewogICAgaWYgKHRoaXMub3B0aW9u
cy5ob3ZlckNsYXNzTmFtZSkKICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzTmFtZSh0aGlz
Lm9wdGlvbnMuaG92ZXJDbGFzc05hbWUpOwogICAgaWYgKHRoaXMuX3NhdmluZykgcmV0dXJuOwog
ICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2soJ29uTGVhdmVIb3ZlcicpOwogIH0sCiAgbG9hZEV4dGVy
bmFsVGV4dDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLl9mb3JtLmFkZENsYXNzTmFtZSh0aGlzLm9w
dGlvbnMubG9hZGluZ0NsYXNzTmFtZSk7CiAgICB0aGlzLl9jb250cm9scy5lZGl0b3IuZGlzYWJs
ZWQgPSB0cnVlOwogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsgbWV0aG9kOiAnZ2V0
JyB9LCB0aGlzLm9wdGlvbnMuYWpheE9wdGlvbnMpOwogICAgT2JqZWN0LmV4dGVuZChvcHRpb25z
LCB7CiAgICAgIHBhcmFtZXRlcnM6ICdlZGl0b3JJZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHRo
aXMuZWxlbWVudC5pZCksCiAgICAgIG9uQ29tcGxldGU6IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9u
LAogICAgICBvblN1Y2Nlc3M6IGZ1bmN0aW9uKHRyYW5zcG9ydCkgewogICAgICAgIHRoaXMuX2Zv
cm0ucmVtb3ZlQ2xhc3NOYW1lKHRoaXMub3B0aW9ucy5sb2FkaW5nQ2xhc3NOYW1lKTsKICAgICAg
ICB2YXIgdGV4dCA9IHRyYW5zcG9ydC5yZXNwb25zZVRleHQ7CiAgICAgICAgaWYgKHRoaXMub3B0
aW9ucy5zdHJpcExvYWRlZFRleHRUYWdzKQogICAgICAgICAgdGV4dCA9IHRleHQuc3RyaXBUYWdz
KCk7CiAgICAgICAgdGhpcy5fY29udHJvbHMuZWRpdG9yLnZhbHVlID0gdGV4dDsKICAgICAgICB0
aGlzLl9jb250cm9scy5lZGl0b3IuZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLnBvc3RQ
cm9jZXNzRWRpdEZpZWxkKCk7CiAgICAgIH0uYmluZCh0aGlzKSwKICAgICAgb25GYWlsdXJlOiB0
aGlzLl9ib3VuZEZhaWx1cmVIYW5kbGVyCiAgICB9KTsKICAgIG5ldyBBamF4LlJlcXVlc3QodGhp
cy5vcHRpb25zLmxvYWRUZXh0VVJMLCBvcHRpb25zKTsKICB9LAogIHBvc3RQcm9jZXNzRWRpdEZp
ZWxkOiBmdW5jdGlvbigpIHsKICAgIHZhciBmcGMgPSB0aGlzLm9wdGlvbnMuZmllbGRQb3N0Q3Jl
YXRpb247CiAgICBpZiAoZnBjKQogICAgICAkKHRoaXMuX2NvbnRyb2xzLmVkaXRvcilbJ2ZvY3Vz
JyA9PSBmcGMgPyAnZm9jdXMnIDogJ2FjdGl2YXRlJ10oKTsKICB9LAogIHByZXBhcmVPcHRpb25z
OiBmdW5jdGlvbigpIHsKICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5jbG9uZShBamF4LkluUGxh
Y2VFZGl0b3IuRGVmYXVsdE9wdGlvbnMpOwogICAgT2JqZWN0LmV4dGVuZCh0aGlzLm9wdGlvbnMs
IEFqYXguSW5QbGFjZUVkaXRvci5EZWZhdWx0Q2FsbGJhY2tzKTsKICAgIFt0aGlzLl9leHRyYURl
ZmF1bHRPcHRpb25zXS5mbGF0dGVuKCkuY29tcGFjdCgpLmVhY2goZnVuY3Rpb24oZGVmcykgewog
ICAgICBPYmplY3QuZXh0ZW5kKHRoaXMub3B0aW9ucywgZGVmcyk7CiAgICB9LmJpbmQodGhpcykp
OwogIH0sCiAgcHJlcGFyZVN1Ym1pc3Npb246IGZ1bmN0aW9uKCkgewogICAgdGhpcy5fc2F2aW5n
ID0gdHJ1ZTsKICAgIHRoaXMucmVtb3ZlRm9ybSgpOwogICAgdGhpcy5sZWF2ZUhvdmVyKCk7CiAg
ICB0aGlzLnNob3dTYXZpbmcoKTsKICB9LAogIHJlZ2lzdGVyTGlzdGVuZXJzOiBmdW5jdGlvbigp
IHsKICAgIHRoaXMuX2xpc3RlbmVycyA9IHsgfTsKICAgIHZhciBsaXN0ZW5lcjsKICAgICRIKEFq
YXguSW5QbGFjZUVkaXRvci5MaXN0ZW5lcnMpLmVhY2goZnVuY3Rpb24ocGFpcikgewogICAgICBs
aXN0ZW5lciA9IHRoaXNbcGFpci52YWx1ZV0uYmluZCh0aGlzKTsKICAgICAgdGhpcy5fbGlzdGVu
ZXJzW3BhaXIua2V5XSA9IGxpc3RlbmVyOwogICAgICBpZiAoIXRoaXMub3B0aW9ucy5leHRlcm5h
bENvbnRyb2xPbmx5KQogICAgICAgIHRoaXMuZWxlbWVudC5vYnNlcnZlKHBhaXIua2V5LCBsaXN0
ZW5lcik7CiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZXh0ZXJuYWxDb250cm9sKQogICAgICAgIHRo
aXMub3B0aW9ucy5leHRlcm5hbENvbnRyb2wub2JzZXJ2ZShwYWlyLmtleSwgbGlzdGVuZXIpOwog
ICAgfS5iaW5kKHRoaXMpKTsKICB9LAogIHJlbW92ZUZvcm06IGZ1bmN0aW9uKCkgewogICAgaWYg
KCF0aGlzLl9mb3JtKSByZXR1cm47CiAgICB0aGlzLl9mb3JtLnJlbW92ZSgpOwogICAgdGhpcy5f
Zm9ybSA9IG51bGw7CiAgICB0aGlzLl9jb250cm9scyA9IHsgfTsKICB9LAogIHNob3dTYXZpbmc6
IGZ1bmN0aW9uKCkgewogICAgdGhpcy5fb2xkSW5uZXJIVE1MID0gdGhpcy5lbGVtZW50LmlubmVy
SFRNTDsKICAgIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLm9wdGlvbnMuc2F2aW5nVGV4
dDsKICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzc05hbWUodGhpcy5vcHRpb25zLnNhdmluZ0NsYXNz
TmFtZSk7CiAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gdGhpcy5fb3Jp
Z2luYWxCYWNrZ3JvdW5kOwogICAgdGhpcy5lbGVtZW50LnNob3coKTsKICB9LAogIHRyaWdnZXJD
YWxsYmFjazogZnVuY3Rpb24oY2JOYW1lLCBhcmcpIHsKICAgIGlmICgnZnVuY3Rpb24nID09IHR5
cGVvZiB0aGlzLm9wdGlvbnNbY2JOYW1lXSkgewogICAgICB0aGlzLm9wdGlvbnNbY2JOYW1lXSh0
aGlzLCBhcmcpOwogICAgfQogIH0sCiAgdW5yZWdpc3Rlckxpc3RlbmVyczogZnVuY3Rpb24oKSB7
CiAgICAkSCh0aGlzLl9saXN0ZW5lcnMpLmVhY2goZnVuY3Rpb24ocGFpcikgewogICAgICBpZiAo
IXRoaXMub3B0aW9ucy5leHRlcm5hbENvbnRyb2xPbmx5KQogICAgICAgIHRoaXMuZWxlbWVudC5z
dG9wT2JzZXJ2aW5nKHBhaXIua2V5LCBwYWlyLnZhbHVlKTsKICAgICAgaWYgKHRoaXMub3B0aW9u
cy5leHRlcm5hbENvbnRyb2wpCiAgICAgICAgdGhpcy5vcHRpb25zLmV4dGVybmFsQ29udHJvbC5z
dG9wT2JzZXJ2aW5nKHBhaXIua2V5LCBwYWlyLnZhbHVlKTsKICAgIH0uYmluZCh0aGlzKSk7CiAg
fSwKICB3cmFwVXA6IGZ1bmN0aW9uKHRyYW5zcG9ydCkgewogICAgdGhpcy5sZWF2ZUVkaXRNb2Rl
KCk7CiAgICAvLyBDYW4ndCB1c2UgdHJpZ2dlckNhbGxiYWNrIGR1ZSB0byBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5OiByZXF1aXJlcwogICAgLy8gYmluZGluZyArIGRpcmVjdCBlbGVtZW50CiAgICB0
aGlzLl9ib3VuZENvbXBsZXRlKHRyYW5zcG9ydCwgdGhpcy5lbGVtZW50KTsKICB9Cn0pOwoKT2Jq
ZWN0LmV4dGVuZChBamF4LkluUGxhY2VFZGl0b3IucHJvdG90eXBlLCB7CiAgZGlzcG9zZTogQWph
eC5JblBsYWNlRWRpdG9yLnByb3RvdHlwZS5kZXN0cm95Cn0pOwoKQWpheC5JblBsYWNlQ29sbGVj
dGlvbkVkaXRvciA9IENsYXNzLmNyZWF0ZShBamF4LkluUGxhY2VFZGl0b3IsIHsKICBpbml0aWFs
aXplOiBmdW5jdGlvbigkc3VwZXIsIGVsZW1lbnQsIHVybCwgb3B0aW9ucykgewogICAgdGhpcy5f
ZXh0cmFEZWZhdWx0T3B0aW9ucyA9IEFqYXguSW5QbGFjZUNvbGxlY3Rpb25FZGl0b3IuRGVmYXVs
dE9wdGlvbnM7CiAgICAkc3VwZXIoZWxlbWVudCwgdXJsLCBvcHRpb25zKTsKICB9LAoKICBjcmVh
dGVFZGl0RmllbGQ6IGZ1bmN0aW9uKCkgewogICAgdmFyIGxpc3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzZWxlY3QnKTsKICAgIGxpc3QubmFtZSA9IHRoaXMub3B0aW9ucy5wYXJhbU5hbWU7
CiAgICBsaXN0LnNpemUgPSAxOwogICAgdGhpcy5fY29udHJvbHMuZWRpdG9yID0gbGlzdDsKICAg
IHRoaXMuX2NvbGxlY3Rpb24gPSB0aGlzLm9wdGlvbnMuY29sbGVjdGlvbiB8fCBbXTsKICAgIGlm
ICh0aGlzLm9wdGlvbnMubG9hZENvbGxlY3Rpb25VUkwpCiAgICAgIHRoaXMubG9hZENvbGxlY3Rp
b24oKTsKICAgIGVsc2UKICAgICAgdGhpcy5jaGVja0ZvckV4dGVybmFsVGV4dCgpOwogICAgdGhp
cy5fZm9ybS5hcHBlbmRDaGlsZCh0aGlzLl9jb250cm9scy5lZGl0b3IpOwogIH0sCgogIGxvYWRD
b2xsZWN0aW9uOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuX2Zvcm0uYWRkQ2xhc3NOYW1lKHRoaXMu
b3B0aW9ucy5sb2FkaW5nQ2xhc3NOYW1lKTsKICAgIHRoaXMuc2hvd0xvYWRpbmdUZXh0KHRoaXMu
b3B0aW9ucy5sb2FkaW5nQ29sbGVjdGlvblRleHQpOwogICAgdmFyIG9wdGlvbnMgPSBPYmplY3Qu
ZXh0ZW5kKHsgbWV0aG9kOiAnZ2V0JyB9LCB0aGlzLm9wdGlvbnMuYWpheE9wdGlvbnMpOwogICAg
T2JqZWN0LmV4dGVuZChvcHRpb25zLCB7CiAgICAgIHBhcmFtZXRlcnM6ICdlZGl0b3JJZD0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuZWxlbWVudC5pZCksCiAgICAgIG9uQ29tcGxldGU6IFBy
b3RvdHlwZS5lbXB0eUZ1bmN0aW9uLAogICAgICBvblN1Y2Nlc3M6IGZ1bmN0aW9uKHRyYW5zcG9y
dCkgewogICAgICAgIHZhciBqcyA9IHRyYW5zcG9ydC5yZXNwb25zZVRleHQuc3RyaXAoKTsKICAg
ICAgICBpZiAoIS9eXFsuKlxdJC8udGVzdChqcykpIC8vIFRPRE86IGltcHJvdmUgc2FuaXR5IGNo
ZWNrCiAgICAgICAgICB0aHJvdyAnU2VydmVyIHJldHVybmVkIGFuIGludmFsaWQgY29sbGVjdGlv
biByZXByZXNlbnRhdGlvbi4nOwogICAgICAgIHRoaXMuX2NvbGxlY3Rpb24gPSBldmFsKGpzKTsK
ICAgICAgICB0aGlzLmNoZWNrRm9yRXh0ZXJuYWxUZXh0KCk7CiAgICAgIH0uYmluZCh0aGlzKSwK
ICAgICAgb25GYWlsdXJlOiB0aGlzLm9uRmFpbHVyZQogICAgfSk7CiAgICBuZXcgQWpheC5SZXF1
ZXN0KHRoaXMub3B0aW9ucy5sb2FkQ29sbGVjdGlvblVSTCwgb3B0aW9ucyk7CiAgfSwKCiAgc2hv
d0xvYWRpbmdUZXh0OiBmdW5jdGlvbih0ZXh0KSB7CiAgICB0aGlzLl9jb250cm9scy5lZGl0b3Iu
ZGlzYWJsZWQgPSB0cnVlOwogICAgdmFyIHRlbXBPcHRpb24gPSB0aGlzLl9jb250cm9scy5lZGl0
b3IuZmlyc3RDaGlsZDsKICAgIGlmICghdGVtcE9wdGlvbikgewogICAgICB0ZW1wT3B0aW9uID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgIHRlbXBPcHRpb24udmFsdWUg
PSAnJzsKICAgICAgdGhpcy5fY29udHJvbHMuZWRpdG9yLmFwcGVuZENoaWxkKHRlbXBPcHRpb24p
OwogICAgICB0ZW1wT3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTsKICAgIH0KICAgIHRlbXBPcHRpb24u
dXBkYXRlKCh0ZXh0IHx8ICcnKS5zdHJpcFNjcmlwdHMoKS5zdHJpcFRhZ3MoKSk7CiAgfSwKCiAg
Y2hlY2tGb3JFeHRlcm5hbFRleHQ6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5fdGV4dCA9IHRoaXMu
Z2V0VGV4dCgpOwogICAgaWYgKHRoaXMub3B0aW9ucy5sb2FkVGV4dFVSTCkKICAgICAgdGhpcy5s
b2FkRXh0ZXJuYWxUZXh0KCk7CiAgICBlbHNlCiAgICAgIHRoaXMuYnVpbGRPcHRpb25MaXN0KCk7
CiAgfSwKCiAgbG9hZEV4dGVybmFsVGV4dDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnNob3dMb2Fk
aW5nVGV4dCh0aGlzLm9wdGlvbnMubG9hZGluZ1RleHQpOwogICAgdmFyIG9wdGlvbnMgPSBPYmpl
Y3QuZXh0ZW5kKHsgbWV0aG9kOiAnZ2V0JyB9LCB0aGlzLm9wdGlvbnMuYWpheE9wdGlvbnMpOwog
ICAgT2JqZWN0LmV4dGVuZChvcHRpb25zLCB7CiAgICAgIHBhcmFtZXRlcnM6ICdlZGl0b3JJZD0n
ICsgZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuZWxlbWVudC5pZCksCiAgICAgIG9uQ29tcGxldGU6
IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uLAogICAgICBvblN1Y2Nlc3M6IGZ1bmN0aW9uKHRyYW5z
cG9ydCkgewogICAgICAgIHRoaXMuX3RleHQgPSB0cmFuc3BvcnQucmVzcG9uc2VUZXh0LnN0cmlw
KCk7CiAgICAgICAgdGhpcy5idWlsZE9wdGlvbkxpc3QoKTsKICAgICAgfS5iaW5kKHRoaXMpLAog
ICAgICBvbkZhaWx1cmU6IHRoaXMub25GYWlsdXJlCiAgICB9KTsKICAgIG5ldyBBamF4LlJlcXVl
c3QodGhpcy5vcHRpb25zLmxvYWRUZXh0VVJMLCBvcHRpb25zKTsKICB9LAoKICBidWlsZE9wdGlv
bkxpc3Q6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5fZm9ybS5yZW1vdmVDbGFzc05hbWUodGhpcy5v
cHRpb25zLmxvYWRpbmdDbGFzc05hbWUpOwogICAgdGhpcy5fY29sbGVjdGlvbiA9IHRoaXMuX2Nv
bGxlY3Rpb24ubWFwKGZ1bmN0aW9uKGVudHJ5KSB7CiAgICAgIHJldHVybiAyID09PSBlbnRyeS5s
ZW5ndGggPyBlbnRyeSA6IFtlbnRyeSwgZW50cnldLmZsYXR0ZW4oKTsKICAgIH0pOwogICAgdmFy
IG1hcmtlciA9ICgndmFsdWUnIGluIHRoaXMub3B0aW9ucykgPyB0aGlzLm9wdGlvbnMudmFsdWUg
OiB0aGlzLl90ZXh0OwogICAgdmFyIHRleHRGb3VuZCA9IHRoaXMuX2NvbGxlY3Rpb24uYW55KGZ1
bmN0aW9uKGVudHJ5KSB7CiAgICAgIHJldHVybiBlbnRyeVswXSA9PSBtYXJrZXI7CiAgICB9LmJp
bmQodGhpcykpOwogICAgdGhpcy5fY29udHJvbHMuZWRpdG9yLnVwZGF0ZSgnJyk7CiAgICB2YXIg
b3B0aW9uOwogICAgdGhpcy5fY29sbGVjdGlvbi5lYWNoKGZ1bmN0aW9uKGVudHJ5LCBpbmRleCkg
ewogICAgICBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAg
b3B0aW9uLnZhbHVlID0gZW50cnlbMF07CiAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHRleHRGb3Vu
ZCA/IGVudHJ5WzBdID09IG1hcmtlciA6IDAgPT0gaW5kZXg7CiAgICAgIG9wdGlvbi5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlbnRyeVsxXSkpOwogICAgICB0aGlzLl9jb250
cm9scy5lZGl0b3IuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgIH0uYmluZCh0aGlzKSk7CiAgICB0
aGlzLl9jb250cm9scy5lZGl0b3IuZGlzYWJsZWQgPSBmYWxzZTsKICAgIEZpZWxkLnNjcm9sbEZy
ZWVBY3RpdmF0ZSh0aGlzLl9jb250cm9scy5lZGl0b3IpOwogIH0KfSk7CgovLyoqKiogREVQUkVD
QVRJT04gTEFZRVIgRk9SIEluUGxhY2VbQ29sbGVjdGlvbl1FZGl0b3IhICoqKioKLy8qKioqIFRo
aXMgb25seSAgZXhpc3RzIGZvciBhIHdoaWxlLCAgaW4gb3JkZXIgdG8gIGxldCAqKioqCi8vKioq
KiB1c2VycyBhZGFwdCB0byAgdGhlIG5ldyBBUEkuICBSZWFkIHVwIG9uIHRoZSBuZXcgKioqKgov
LyoqKiogQVBJIGFuZCBjb252ZXJ0IHlvdXIgY29kZSB0byBpdCBBU0FQISAgICAgICAgICAgICoq
KioKCkFqYXguSW5QbGFjZUVkaXRvci5wcm90b3R5cGUuaW5pdGlhbGl6ZS5kZWFsV2l0aERlcHJl
Y2F0ZWRPcHRpb25zID0gZnVuY3Rpb24ob3B0aW9ucykgewogIGlmICghb3B0aW9ucykgcmV0dXJu
OwogIGZ1bmN0aW9uIGZhbGxiYWNrKG5hbWUsIGV4cHIpIHsKICAgIGlmIChuYW1lIGluIG9wdGlv
bnMgfHwgZXhwciA9PT0gdW5kZWZpbmVkKSByZXR1cm47CiAgICBvcHRpb25zW25hbWVdID0gZXhw
cjsKICB9OwogIGZhbGxiYWNrKCdjYW5jZWxDb250cm9sJywgKG9wdGlvbnMuY2FuY2VsTGluayA/
ICdsaW5rJyA6IChvcHRpb25zLmNhbmNlbEJ1dHRvbiA/ICdidXR0b24nIDoKICAgIG9wdGlvbnMu
Y2FuY2VsTGluayA9PSBvcHRpb25zLmNhbmNlbEJ1dHRvbiA9PSBmYWxzZSA/IGZhbHNlIDogdW5k
ZWZpbmVkKSkpOwogIGZhbGxiYWNrKCdva0NvbnRyb2wnLCAob3B0aW9ucy5va0xpbmsgPyAnbGlu
aycgOiAob3B0aW9ucy5va0J1dHRvbiA/ICdidXR0b24nIDoKICAgIG9wdGlvbnMub2tMaW5rID09
IG9wdGlvbnMub2tCdXR0b24gPT0gZmFsc2UgPyBmYWxzZSA6IHVuZGVmaW5lZCkpKTsKICBmYWxs
YmFjaygnaGlnaGxpZ2h0Q29sb3InLCBvcHRpb25zLmhpZ2hsaWdodGNvbG9yKTsKICBmYWxsYmFj
aygnaGlnaGxpZ2h0RW5kQ29sb3InLCBvcHRpb25zLmhpZ2hsaWdodGVuZGNvbG9yKTsKfTsKCk9i
amVjdC5leHRlbmQoQWpheC5JblBsYWNlRWRpdG9yLCB7CiAgRGVmYXVsdE9wdGlvbnM6IHsKICAg
IGFqYXhPcHRpb25zOiB7IH0sCiAgICBhdXRvUm93czogMywgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIFVzZSB3aGVuIG11bHRpLWxpbmUgdy8gcm93cyA9PSAxCiAgICBjYW5jZWxD
b250cm9sOiAnbGluaycsICAgICAgICAgICAgICAgICAgICAgIC8vICdsaW5rJ3wnYnV0dG9uJ3xm
YWxzZQogICAgY2FuY2VsVGV4dDogJ2NhbmNlbCcsCiAgICBjbGlja1RvRWRpdFRleHQ6ICdDbGlj
ayB0byBlZGl0JywKICAgIGV4dGVybmFsQ29udHJvbDogbnVsbCwgICAgICAgICAgICAgICAgICAg
ICAgLy8gaWR8ZWx0CiAgICBleHRlcm5hbENvbnRyb2xPbmx5OiBmYWxzZSwKICAgIGZpZWxkUG9z
dENyZWF0aW9uOiAnYWN0aXZhdGUnLCAgICAgICAgICAgICAgLy8gJ2FjdGl2YXRlJ3wnZm9jdXMn
fGZhbHNlCiAgICBmb3JtQ2xhc3NOYW1lOiAnaW5wbGFjZWVkaXRvci1mb3JtJywKICAgIGZvcm1J
ZDogbnVsbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWR8ZWx0CiAgICBoaWdo
bGlnaHRDb2xvcjogJyNmZmZmOTknLAogICAgaGlnaGxpZ2h0RW5kQ29sb3I6ICcjZmZmZmZmJywK
ICAgIGhvdmVyQ2xhc3NOYW1lOiAnJywKICAgIGh0bWxSZXNwb25zZTogdHJ1ZSwKICAgIGxvYWRp
bmdDbGFzc05hbWU6ICdpbnBsYWNlZWRpdG9yLWxvYWRpbmcnLAogICAgbG9hZGluZ1RleHQ6ICdM
b2FkaW5nLi4uJywKICAgIG9rQ29udHJvbDogJ2J1dHRvbicsICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gJ2xpbmsnfCdidXR0b24nfGZhbHNlCiAgICBva1RleHQ6ICdvaycsCiAgICBwYXJhbU5h
bWU6ICd2YWx1ZScsCiAgICByb3dzOiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIElmIDEgYW5kIG11bHRpLWxpbmUsIHVzZXMgYXV0b1Jvd3MKICAgIHNhdmluZ0NsYXNz
TmFtZTogJ2lucGxhY2VlZGl0b3Itc2F2aW5nJywKICAgIHNhdmluZ1RleHQ6ICdTYXZpbmcuLi4n
LAogICAgc2l6ZTogMCwKICAgIHN0cmlwTG9hZGVkVGV4dFRhZ3M6IGZhbHNlLAogICAgc3VibWl0
T25CbHVyOiBmYWxzZSwKICAgIHRleHRBZnRlckNvbnRyb2xzOiAnJywKICAgIHRleHRCZWZvcmVD
b250cm9sczogJycsCiAgICB0ZXh0QmV0d2VlbkNvbnRyb2xzOiAnJwogIH0sCiAgRGVmYXVsdENh
bGxiYWNrczogewogICAgY2FsbGJhY2s6IGZ1bmN0aW9uKGZvcm0pIHsKICAgICAgcmV0dXJuIEZv
cm0uc2VyaWFsaXplKGZvcm0pOwogICAgfSwKICAgIG9uQ29tcGxldGU6IGZ1bmN0aW9uKHRyYW5z
cG9ydCwgZWxlbWVudCkgewogICAgICAvLyBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdGhp
cyBvbmUgaXMgYm91bmQgdG8gdGhlIElQRSwgYW5kIHBhc3NlcwogICAgICAvLyB0aGUgZWxlbWVu
dCBkaXJlY3RseS4gIEl0IHdhcyB0b28gb2Z0ZW4gY3VzdG9taXplZCwgc28gd2UgZG9uJ3QgYnJl
YWsgaXQuCiAgICAgIG5ldyBFZmZlY3QuSGlnaGxpZ2h0KGVsZW1lbnQsIHsKICAgICAgICBzdGFy
dGNvbG9yOiB0aGlzLm9wdGlvbnMuaGlnaGxpZ2h0Q29sb3IsIGtlZXBCYWNrZ3JvdW5kSW1hZ2U6
IHRydWUgfSk7CiAgICB9LAogICAgb25FbnRlckVkaXRNb2RlOiBudWxsLAogICAgb25FbnRlckhv
dmVyOiBmdW5jdGlvbihpcGUpIHsKICAgICAgaXBlLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENv
bG9yID0gaXBlLm9wdGlvbnMuaGlnaGxpZ2h0Q29sb3I7CiAgICAgIGlmIChpcGUuX2VmZmVjdCkK
ICAgICAgICBpcGUuX2VmZmVjdC5jYW5jZWwoKTsKICAgIH0sCiAgICBvbkZhaWx1cmU6IGZ1bmN0
aW9uKHRyYW5zcG9ydCwgaXBlKSB7CiAgICAgIGFsZXJ0KCdFcnJvciBjb21tdW5pY2F0aW9uIHdp
dGggdGhlIHNlcnZlcjogJyArIHRyYW5zcG9ydC5yZXNwb25zZVRleHQuc3RyaXBUYWdzKCkpOwog
ICAgfSwKICAgIG9uRm9ybUN1c3RvbWl6YXRpb246IG51bGwsIC8vIFRha2VzIHRoZSBJUEUgYW5k
IGl0cyBnZW5lcmF0ZWQgZm9ybSwgYWZ0ZXIgZWRpdG9yLCBiZWZvcmUgY29udHJvbHMuCiAgICBv
bkxlYXZlRWRpdE1vZGU6IG51bGwsCiAgICBvbkxlYXZlSG92ZXI6IGZ1bmN0aW9uKGlwZSkgewog
ICAgICBpcGUuX2VmZmVjdCA9IG5ldyBFZmZlY3QuSGlnaGxpZ2h0KGlwZS5lbGVtZW50LCB7CiAg
ICAgICAgc3RhcnRjb2xvcjogaXBlLm9wdGlvbnMuaGlnaGxpZ2h0Q29sb3IsIGVuZGNvbG9yOiBp
cGUub3B0aW9ucy5oaWdobGlnaHRFbmRDb2xvciwKICAgICAgICByZXN0b3JlY29sb3I6IGlwZS5f
b3JpZ2luYWxCYWNrZ3JvdW5kLCBrZWVwQmFja2dyb3VuZEltYWdlOiB0cnVlCiAgICAgIH0pOwog
ICAgfQogIH0sCiAgTGlzdGVuZXJzOiB7CiAgICBjbGljazogJ2VudGVyRWRpdE1vZGUnLAogICAg
a2V5ZG93bjogJ2NoZWNrRm9yRXNjYXBlT3JSZXR1cm4nLAogICAgbW91c2VvdmVyOiAnZW50ZXJI
b3ZlcicsCiAgICBtb3VzZW91dDogJ2xlYXZlSG92ZXInCiAgfQp9KTsKCkFqYXguSW5QbGFjZUNv
bGxlY3Rpb25FZGl0b3IuRGVmYXVsdE9wdGlvbnMgPSB7CiAgbG9hZGluZ0NvbGxlY3Rpb25UZXh0
OiAnTG9hZGluZyBvcHRpb25zLi4uJwp9OwoKLy8gRGVsYXllZCBvYnNlcnZlciwgbGlrZSBGb3Jt
LkVsZW1lbnQuT2JzZXJ2ZXIsIAovLyBidXQgd2FpdHMgZm9yIGRlbGF5IGFmdGVyIGxhc3Qga2V5
IGlucHV0Ci8vIElkZWFsIGZvciBsaXZlLXNlYXJjaCBmaWVsZHMKCkZvcm0uRWxlbWVudC5EZWxh
eWVkT2JzZXJ2ZXIgPSBDbGFzcy5jcmVhdGUoewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1l
bnQsIGRlbGF5LCBjYWxsYmFjaykgewogICAgdGhpcy5kZWxheSAgICAgPSBkZWxheSB8fCAwLjU7
CiAgICB0aGlzLmVsZW1lbnQgICA9ICQoZWxlbWVudCk7CiAgICB0aGlzLmNhbGxiYWNrICA9IGNh
bGxiYWNrOwogICAgdGhpcy50aW1lciAgICAgPSBudWxsOwogICAgdGhpcy5sYXN0VmFsdWUgPSAk
Rih0aGlzLmVsZW1lbnQpOyAKICAgIEV2ZW50Lm9ic2VydmUodGhpcy5lbGVtZW50LCdrZXl1cCcs
dGhpcy5kZWxheWVkTGlzdGVuZXIuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7CiAgfSwKICBk
ZWxheWVkTGlzdGVuZXI6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBpZih0aGlzLmxhc3RWYWx1ZSA9
PSAkRih0aGlzLmVsZW1lbnQpKSByZXR1cm47CiAgICBpZih0aGlzLnRpbWVyKSBjbGVhclRpbWVv
dXQodGhpcy50aW1lcik7CiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCh0aGlzLm9uVGltZXJF
dmVudC5iaW5kKHRoaXMpLCB0aGlzLmRlbGF5ICogMTAwMCk7CiAgICB0aGlzLmxhc3RWYWx1ZSA9
ICRGKHRoaXMuZWxlbWVudCk7CiAgfSwKICBvblRpbWVyRXZlbnQ6IGZ1bmN0aW9uKCkgewogICAg
dGhpcy50aW1lciA9IG51bGw7CiAgICB0aGlzLmNhbGxiYWNrKHRoaXMuZWxlbWVudCwgJEYodGhp
cy5lbGVtZW50KSk7CiAgfQp9KTsK1AAFABEABwAIASMBJAAUASVfED5odHRwOi8vZ3JhcGhpY3M4
Lm55dGltZXMuY29tL2pzL2FwcC90aW1lc3Blb3BsZS9kZWZhdWx0ZmVlZC5qc08RBKdicGxpc3Qw
MNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2Vi
UmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAkCwwmLC0zHjQ1U1RVVldYWVpb
XF1eX2BhYmNkZWZnaGlqa29wVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFz
c1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgCOAAoAiEAgQAIAGgAeABYAI
EAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxA+aHR0cDovL2dyYXBoaWNz
OC5ueXRpbWVzLmNvbS9qcy9hcHAvdGltZXNwZW9wbGUvZGVmYXVsdGZlZWQuanPSLi8wMVgkY2xh
c3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsJhhYOEMjTDTY3ODlGV05TLmtl
eXNaTlMub2JqZWN0c4AhrDo7PD0+P0BBQkNERYAJgAqAC4AMgA2ADoAPgBCAEYASgBOAFKxHSElK
S0xNTk9QUVKAFYAWgBeAGIAZgBqAG4AcgB2AHoAfgCBURGF0ZV1DYWNoZS1Db250cm9sXUxhc3Qt
TW9kaWZpZWRdQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRlbnQt
VHlwZV5Db250ZW50LUxlbmd0aF5OdGNvZW50LUxlbmd0aFRFdGFnWkNvbm5lY3Rpb25UVmFyeV8Q
HU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UXxAXcHJpdmF0ZSwgbWF4LWFnZT0yMDMzNzhf
EB1Nb24sIDIyIFNlcCAyMDA4IDE3OjQwOjQwIEdNVFVieXRlc1RnemlwXxAWU3VuLU9ORS1XZWIt
U2VydmVyLzYuMV8QGGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFMyNzlTNjI0XiIyNzAtNDhkN2Q4
OTgiWmtlZXAtYWxpdmVfEA9BY2NlcHQtRW5jb2RpbmfSLi9sbaNtbjJfEBNOU011dGFibGVEaWN0
aW9uYXJ5XE5TRGljdGlvbmFyeRECcNIuL3Fyo3JzMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJM
UmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIsAkQCsALMAtgC5AL0AwQDEAMcAygDNANAA
0wDWANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPEA+AEAAQwBDgEQARIBUwFYAWEBbAFvAXUBfgGH
AYkBkAGYAaMBpQGyAbQBtgG4AboBvAG+AcABwgHEAcYByAHKAdcB2QHbAd0B3wHhAeMB5QHnAekB
6wHtAe8B9AICAhACHgIxAjgCRQJUAmMCaAJzAngCmAKyAtIC2ALdAvYDEQMVAxkDKAMzA0UDSgNO
A2QDcQN0A3kDfQORAAAAAAAAAgEAAAAAAAAAdAAAAAAAAAAAAAAAAAAAA59PEQJwLyoKewogICAg
ImFjdG9yRGlzcGxheW5hbWUiOiIiLAogICAgImFjdG9ySWQiOiwKICAgICJwaWNVUkwiOiIiLAog
ICAgInZlcmIiOiIiLAogICAgIm9iamVjdCI6IiIsCiAgICAib2JqZWN0X2Rlc2MiOiIiLAogICAg
Im9iamVjdF91cmwiOiIiLAogICAgIm9iamVjdF90eXBlIjoiIiwKICAgICJvYmplY3RfdGh1bWJu
YWlsX3VybCI6IiIsCiAgICAiZGF0ZV91cGRhdGVkIjoiIgp9CiovCgpUaW1lc1Blb3BsZS5EZWZh
dWx0RmVlZCA9IFsKICB7CiAgICAiYWN0b3JEaXNwbGF5bmFtZSI6IiIsCiAgICAiYWN0b3JJZCI6
IDAsCiAgICAicGljVVJMIjoiaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvYXBw
cy90aW1lc3Blb3BsZS9ub25lLnBuZyIsCiAgICAidmVyYiI6IiIsCiAgICAib2JqZWN0IjoiU2hh
cmUgYW5kIERpc2NvdmVyIHRoZSBCZXN0IG9mIE5ZVGltZXMuY29tIiwKICAgICJvYmplY3RfZGVz
YyI6IiIsCiAgICAib2JqZWN0X3VybCI6Imh0dHA6Ly90aW1lc3Blb3BsZS5ueXRpbWVzLmNvbS9o
b21lL2Fib3V0LyIsCiAgICAib2JqZWN0X3R5cGUiOiIiLAogICAgIm9iamVjdF90aHVtYm5haWxf
dXJsIjoiIiwKICAgICJkYXRlX3VwZGF0ZWQiOm5ldyBEYXRlKCkKICB9Cl071AAFABEABwAIAScB
KAAUASlfEDhodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2pzL2FwcC90aW1lc3Blb3BsZS9i
dWlsZC5qc08RBKxicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2Jq
ZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNLZXllZEFyY2hpdmVyrxAk
CwwmLC0zHjQ1U1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa29wVSRudWxs3Q0ODxAREhMUFRYXGBka
GxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQx
gCOAAoAiEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIAD
XxA4aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9qcy9hcHAvdGltZXNwZW9wbGUvYnVpbGQu
anPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsJh+LnEMjT
DTY3ODlGV05TLmtleXNaTlMub2JqZWN0c4AhrDo7PD0+P0BBQkNERYAJgAqAC4AMgA2ADoAPgBCA
EYASgBOAFKxHSElKS0xNTk9QUVKAFYAWgBeAGIAZgBqAG4AcgB2AHoAfgCBeQ29udGVudC1MZW5n
dGhdQ2FjaGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNfEBBDb250ZW50LUVu
Y29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVURGF0ZV5OdGNvZW50LUxlbmd0aFRFdGFnWkNvbm5l
Y3Rpb25UVmFyeVUzNTA4MF8QF3ByaXZhdGUsIG1heC1hZ2U9MTkyMzE1XxAdVGh1LCAzMCBPY3Qg
MjAwOCAyMTo0OTozNSBHTVRVYnl0ZXNUZ3ppcF8QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFfEBhh
cHBsaWNhdGlvbi94LWphdmFzY3JpcHRfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQ0IEdNVFYx
Mjg3NDhfEBAiMWY2ZWMtNDkwYTJiZWYiWmtlZXAtYWxpdmVfEA9BY2NlcHQtRW5jb2RpbmfSLi9s
baNtbjJfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyeRIAAfbs0i4vcXKjcnMyXxAR
TlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAiwCR
AKwAswC2ALkAvQDBAMQAxwDKAM0A0ADTANYA2QDbAN0A3wDhAOMA5QDnAOkA6wDtAO8A8QD4AQAB
DAEOARABEgFNAVIBWwFmAWkBbwF4AYEBgwGKAZIBnQGfAawBrgGwAbIBtAG2AbgBugG8Ab4BwAHC
AcQB0QHTAdUB1wHZAdsB3QHfAeEB4wHlAecB6QH4AgYCFAIiAjUCPAJJAk4CXQJiAm0CcgJ4ApIC
sgK4Ar0C1gLxAxEDGAMrAzYDSANNA1EDZwN0A3kDfgOCA5YAAAAAAAACAQAAAAAAAAB0AAAAAAAA
AAAAAAAAAAADpE8SAAH27C8vIERlc2NyaXB0aW9uOiBTdHJpbmcgZXh0ZW5zaW9ucwoKLy8gVGFr
ZXMgYSBzdHJpbmcsIGNvbnZlcnQgZmlyc3QgY2hhcmFjdGVyIG9mIGVhY2ggd29yZAovLyB0byB1
cHBlcmNhc2UsIHJlbWFpbmluZyB0ZXh0IG9mIHdvcmQgdG8gbG93ZXJjYXNlCi8vClN0cmluZy5w
cm90b3R5cGUudGl0bGVpemUgPSBmdW5jdGlvbigpewoJdmFyIGEgPSB0aGlzLnNwbGl0KC9ccysv
Zyk7Cgl2YXIgcCA9IC8oXHcpKFx3KikvOwogICAgZm9yIChpPTA7aTxhLmxlbmd0aDtpICsrKSB7
CiAgICAgICAgdmFyIHBhcnRzID0gYVtpXS5tYXRjaChwKTsKICAgICAgICB2YXIgZmlyc3QgPSBw
YXJ0c1sxXS50b1VwcGVyQ2FzZSgpOwogICAgICAgIHZhciByZXN0ICA9IHBhcnRzWzJdLnRvTG93
ZXJDYXNlKCk7CiAgICAgICAgYVtpXSA9IGZpcnN0ICsgcmVzdDsKICAgIH0KCXJldHVybiBhLmpv
aW4oJyAnKTsKfQoKTllURCA9IHdpbmRvdy5OWVREIHx8IHt9OwoKLy8gUFVCTElTSEVSL09CU0VS
VkVSCk5ZVEQuRXZlbnRQdWJsaXNoZXIgPSBDbGFzcy5jcmVhdGUoewogIAogIGluaXRpYWxpemU6
IGZ1bmN0aW9uKCl7CiAgICB0aGlzLm9ic2VydmVycyA9IFtdOwogIH0sCiAgCiAgcmVnaXN0ZXI6
IGZ1bmN0aW9uKG9ic2VydmVyKSB7CiAgICB0aGlzLm9ic2VydmVycy5wdXNoKG9ic2VydmVyKTsK
ICB9LAogIAogIHVucmVnaXN0ZXI6IGZ1bmN0aW9uKG9ic2VydmVyKSB7CiAgICB0aGlzLm9ic2Vy
dmVycyA9IHRoaXMub2JzZXJ2ZXJzLndpdGhvdXQob2JzZXJ2ZXIpOwogIH0sCiAgCiAgbm90aWZ5
T2JzZXJ2ZXJzOiBmdW5jdGlvbihldmVudCxkYXRhKSB7CiAgICBmb3IgKHZhciBpID0gMCwgb2Jz
ZXJ2ZXJzID0gdGhpcy5vYnNlcnZlcnM7IGkgPCBvYnNlcnZlcnMubGVuZ3RoOyBpKyspIHsKICAg
ICAgb2JzZXJ2ZXJzW2ldLnVwZGF0ZSh7ZXZlbnQ6ZXZlbnQsZGF0YTpkYXRhfSkKICAgIH07CiAg
fQp9KS8qCiogICAgc2NyaXB0LmFjdWxvLnVzIHJlc2l6YWJsZS0xLjEuanMsIFNhdCBEZWMgMjJ0
aCAyMDA3CioKKiAgICBPcmdpbmFsOiBodHRwOi8vc2NyaXB0LmFjdWxvLnVzLwoqCiogICAgU2Ny
aXB0YWN1bG91cyBleHRlbnNpb24gMjAwNyAiVmFzaWwgUG9wb3Zza2kiID0+IHZhc19wb3BvdnNr
aUBob3RtYWlsLmNvbQoqICAgIEV4dGVuc2lvbiBiYXNlZCBvbiBTY3JpcHRhY3Vsb3VzIGRyYWdk
cm9wLmpzIGJ5IFRob21hcyBGdWNocwoqCiogIFRoaXMgZXh0ZW5zc2lvbiBpcyBmcmVlbHkgZGlz
dHJpYnV0YWJsZSB1bmRlciB0aGUgdGVybXMgb2YgYW4gTUlULXN0eWxlIGxpY2Vuc2UuCiovCgp2
YXIgUmVzaXphYmxlcyA9IHsKICByZXNpemVyczogW10sCiAgb2JzZXJ2ZXJzOiBbXSwKCiAgcmVn
aXN0ZXI6IGZ1bmN0aW9uKHJlc2l6YWJsZSkgewogICAgaWYodGhpcy5yZXNpemVycy5sZW5ndGgg
PT0gMCkgewogICAgICB0aGlzLmV2ZW50TW91c2VVcCAgID0gdGhpcy5lbmRSZXNpemUuYmluZEFz
RXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICAgdGhpcy5ldmVudE1vdXNlTW92ZSA9IHRoaXMudXBk
YXRlUmVzaXplLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgIHRoaXMuZXZlbnRLZXlw
cmVzcyAgPSB0aGlzLmtleVByZXNzLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyk7CgogICAgICBF
dmVudC5vYnNlcnZlKGRvY3VtZW50LCAibW91c2V1cCIsIHRoaXMuZXZlbnRNb3VzZVVwKTsKICAg
ICAgRXZlbnQub2JzZXJ2ZShkb2N1bWVudCwgIm1vdXNlbW92ZSIsIHRoaXMuZXZlbnRNb3VzZU1v
dmUpOwogICAgICBFdmVudC5vYnNlcnZlKGRvY3VtZW50LCAia2V5cHJlc3MiLCB0aGlzLmV2ZW50
S2V5cHJlc3MpOwogICAgfQogICAgdGhpcy5yZXNpemVycy5wdXNoKHJlc2l6YWJsZSk7CiAgfSwK
CiAgdW5yZWdpc3RlcjogZnVuY3Rpb24ocmVzaXphYmxlKSB7CiAgICB0aGlzLnJlc2l6ZXJzID0g
dGhpcy5yZXNpemVycy5yZWplY3QoZnVuY3Rpb24ocikgeyByZXR1cm4gcj09cmVzaXphYmxlIH0p
OwogICAgaWYodGhpcy5yZXNpemVycy5sZW5ndGggPT0gMCkgewogICAgICBFdmVudC5zdG9wT2Jz
ZXJ2aW5nKGRvY3VtZW50LCAibW91c2V1cCIsIHRoaXMuZXZlbnRNb3VzZVVwKTsKICAgICAgRXZl
bnQuc3RvcE9ic2VydmluZyhkb2N1bWVudCwgIm1vdXNlbW92ZSIsIHRoaXMuZXZlbnRNb3VzZU1v
dmUpOwogICAgICBFdmVudC5zdG9wT2JzZXJ2aW5nKGRvY3VtZW50LCAia2V5cHJlc3MiLCB0aGlz
LmV2ZW50S2V5cHJlc3MpOwogICAgfQogIH0sCgogIGFjdGl2YXRlOiBmdW5jdGlvbihyZXNpemFi
bGUpIHsKICAgIGlmKHJlc2l6YWJsZS5vcHRpb25zLmRlbGF5KSB7IAogICAgICB0aGlzLl90aW1l
b3V0ID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsgCiAgICAgICAgUmVzaXphYmxlcy5fdGltZW91
dCA9IG51bGw7IAogICAgICAgIHdpbmRvdy5mb2N1cygpOyAKICAgICAgICBSZXNpemFibGVzLmFj
dGl2ZVJlc2l6YWJsZSA9IHJlc2l6YWJsZTsgCiAgICAgIH0uYmluZCh0aGlzKSwgcmVzaXphYmxl
Lm9wdGlvbnMuZGVsYXkpOyAKICAgIH0gZWxzZSB7CiAgICAgIHdpbmRvdy5mb2N1cygpOyAvLyBh
bGxvd3Mga2V5cHJlc3MgZXZlbnRzIGlmIHdpbmRvdyBpc24ndCBjdXJyZW50bHkgZm9jdXNlZCwg
ZmFpbHMgZm9yIFNhZmFyaQogICAgICB0aGlzLmFjdGl2ZVJlc2l6YWJsZSA9IHJlc2l6YWJsZTsK
ICAgIH0KICB9LAogIGRlYWN0aXZhdGU6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5hY3RpdmVSZXNp
emFibGUgPSBudWxsOwogIH0sCiAgdXBkYXRlUmVzaXplOiBmdW5jdGlvbihldmVudCkgewogICAg
aWYoIXRoaXMuYWN0aXZlUmVzaXphYmxlKSByZXR1cm47CiAgICB2YXIgcG9pbnRlciA9IFtFdmVu
dC5wb2ludGVyWChldmVudCksIEV2ZW50LnBvaW50ZXJZKGV2ZW50KV07CiAgICAgaWYodGhpcy5f
bGFzdFBvaW50ZXIgJiYgKHRoaXMuX2xhc3RQb2ludGVyLmluc3BlY3QoKSA9PSBwb2ludGVyLmlu
c3BlY3QoKSkpIHJldHVybjsKICAgIHRoaXMuX2xhc3RQb2ludGVyID0gcG9pbnRlcjsKICAgIHRo
aXMuYWN0aXZlUmVzaXphYmxlLnVwZGF0ZVJlc2l6ZShldmVudCwgcG9pbnRlcik7CiAgfSwKICBl
bmRSZXNpemU6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBpZih0aGlzLl90aW1lb3V0KSB7IAogICAg
ICBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCk7IAogICAgICB0aGlzLl90aW1lb3V0ID0gbnVs
bDsgCiAgICB9CiAgICBpZighdGhpcy5hY3RpdmVSZXNpemFibGUpIHJldHVybjsKICAgIHRoaXMu
X2xhc3RQb2ludGVyID0gbnVsbDsKICAgIHRoaXMuYWN0aXZlUmVzaXphYmxlLmVuZFJlc2l6ZShl
dmVudCk7CiAgICB0aGlzLmFjdGl2ZVJlc2l6YWJsZSA9IG51bGw7CiAgfSwKCiAga2V5UHJlc3M6
IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBpZih0aGlzLmFjdGl2ZVJlc2l6YWJsZSkKICAgICAgdGhp
cy5hY3RpdmVSZXNpemFibGUua2V5UHJlc3MoZXZlbnQpOwogIH0sCgogIGFkZE9ic2VydmVyOiBm
dW5jdGlvbihvYnNlcnZlcikgewogICAgdGhpcy5vYnNlcnZlcnMucHVzaChvYnNlcnZlcik7CiAg
ICB0aGlzLl9jYWNoZU9ic2VydmVyQ2FsbGJhY2tzKCk7CiAgfSwKCiAgcmVtb3ZlT2JzZXJ2ZXI6
IGZ1bmN0aW9uKGVsZW1lbnQpIHsgIC8vIGVsZW1lbnQgaW5zdGVhZCBvZiBvYnNlcnZlciBmaXhl
cyBtZW0gbGVha3MKICAgIHRoaXMub2JzZXJ2ZXJzID0gdGhpcy5vYnNlcnZlcnMucmVqZWN0KCBm
dW5jdGlvbihvKSB7IHJldHVybiBvLmVsZW1lbnQ9PWVsZW1lbnQgfSk7CiAgICB0aGlzLl9jYWNo
ZU9ic2VydmVyQ2FsbGJhY2tzKCk7CiAgfSwKCiAgbm90aWZ5OiBmdW5jdGlvbihldmVudE5hbWUs
IHJlc2l6YWJsZSwgZXZlbnQpIHsgIC8vICdvblN0YXJ0JywgJ29uRW5kJywgJ29uRHJhZycKICAg
IGlmKHRoaXNbZXZlbnROYW1lKydDb3VudCddID4gMCkKICAgICAgdGhpcy5vYnNlcnZlcnMuZWFj
aCggZnVuY3Rpb24obykgewogICAgICAgIGlmKG9bZXZlbnROYW1lXSkgb1tldmVudE5hbWVdKGV2
ZW50TmFtZSwgcmVzaXphYmxlLCBldmVudCk7CiAgICAgIH0pOwogICAgaWYocmVzaXphYmxlLm9w
dGlvbnNbZXZlbnROYW1lXSkgcmVzaXphYmxlLm9wdGlvbnNbZXZlbnROYW1lXShyZXNpemFibGUs
IGV2ZW50KTsKICB9LAoKICBfY2FjaGVPYnNlcnZlckNhbGxiYWNrczogZnVuY3Rpb24oKSB7CiAg
ICBbJ29uU3RhcnQnLCdvbkVuZCcsJ29uUmVzaXplJ10uZWFjaCggZnVuY3Rpb24oZXZlbnROYW1l
KSB7CiAgICAgIFJlc2l6YWJsZXNbZXZlbnROYW1lKydDb3VudCddID0gUmVzaXphYmxlcy5vYnNl
cnZlcnMuc2VsZWN0KAogICAgICAgIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG9bZXZlbnROYW1lXTsg
fQogICAgICApLmxlbmd0aDsKICAgIH0pOwogIH0KfQoKdmFyIFJlc2l6YWJsZSA9IENsYXNzLmNy
ZWF0ZSgpOwpSZXNpemFibGUuX3Jlc2l6aW5nICAgID0ge307CgpSZXNpemFibGUucHJvdG90eXBl
ID0gewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciBkZWZhdWx0cyA9
IHsKICAgICAgaGFuZGxlOiBmYWxzZSwKCiAgICAgIGVuZGVmZmVjdDogZnVuY3Rpb24oZWxlbWVu
dCkgewogICAgICAgIHZhciB0b09wYWNpdHkgPSB0eXBlb2YgZWxlbWVudC5fb3BhY2l0eSA9PSAn
bnVtYmVyJyA/IGVsZW1lbnQuX29wYWNpdHkgOiAxLjA7CiAgICAgICAgbmV3IEVmZmVjdC5PcGFj
aXR5KGVsZW1lbnQsIHtkdXJhdGlvbjowLjIsIGZyb206MC43LCB0bzp0b09wYWNpdHksIAogICAg
ICAgICAgcXVldWU6IHtzY29wZTonX3Jlc2l6YWJsZScsIHBvc2l0aW9uOidlbmQnfSwKICAgICAg
ICAgIGFmdGVyRmluaXNoOiBmdW5jdGlvbigpeyAKICAgICAgICAgICAgUmVzaXphYmxlLl9yZXNp
emluZ1tlbGVtZW50XSA9IGZhbHNlIAogICAgICAgICAgfQogICAgICAgIH0pOyAKICAgICAgfSwK
ICAgICAgemluZGV4OiAxMDAwLAogICAgICByZXZlcnQ6IGZhbHNlLAogICAgICBzbmFwOiBmYWxz
ZSwgIC8vIGZhbHNlLCBvciB4eSBvciBbeCx5XSBvciBmdW5jdGlvbih4LHkpeyByZXR1cm4gW3gs
eV0gfQogICAgICBkZWxheTogMAogICAgfTsKCiAgICBpZighYXJndW1lbnRzWzFdIHx8IHR5cGVv
ZiBhcmd1bWVudHNbMV0uZW5kZWZmZWN0ID09ICd1bmRlZmluZWQnKQogICAgICBPYmplY3QuZXh0
ZW5kKGRlZmF1bHRzLCB7CiAgICAgICAgc3RhcnRlZmZlY3Q6IGZ1bmN0aW9uKGVsZW1lbnQpIHsK
ICAgICAgICAgIGVsZW1lbnQuX29wYWNpdHkgPSBFbGVtZW50LmdldE9wYWNpdHkoZWxlbWVudCk7
CiAgICAgICAgICBSZXNpemFibGUuX3Jlc2l6aW5nW2VsZW1lbnRdID0gdHJ1ZTsKICAgICAgICAg
IG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCB7ZHVyYXRpb246MC4yLCBmcm9tOmVsZW1lbnQu
X29wYWNpdHksIHRvOjAuN30pOyAKICAgICAgICB9CiAgICAgIH0pOwoKICAgIHZhciBvcHRpb25z
ID0gT2JqZWN0LmV4dGVuZChkZWZhdWx0cywgYXJndW1lbnRzWzFdIHx8IHt9KTsKICAgIHRoaXMu
ZWxlbWVudCA9ICQoZWxlbWVudCk7CgogICAgaWYob3B0aW9ucy5oYW5kbGUgJiYgKHR5cGVvZiBv
cHRpb25zLmhhbmRsZSA9PSAnc3RyaW5nJykpCiAgICAgIHRoaXMuaGFuZGxlID0gdGhpcy5lbGVt
ZW50LmRvd24oJy4nK29wdGlvbnMuaGFuZGxlLCAwKTsKCiAgICBpZighdGhpcy5oYW5kbGUpIHRo
aXMuaGFuZGxlID0gJChvcHRpb25zLmhhbmRsZSk7CiAgICBpZighdGhpcy5oYW5kbGUpIHRoaXMu
aGFuZGxlID0gdGhpcy5lbGVtZW50OwoKICAgIEVsZW1lbnQubWFrZVBvc2l0aW9uZWQodGhpcy5l
bGVtZW50KTsgLy8gZml4IElFICAgIAogICAgdGhpcy5kZWx0YSAgICA9IHRoaXMuY3VycmVudERl
bHRhKCk7CiAgICB0aGlzLm9wdGlvbnMgID0gb3B0aW9uczsKICAgIHRoaXMucmVzaXppbmcgPSBm
YWxzZTsgICAKCiAgICB0aGlzLmV2ZW50TW91c2VEb3duID0gdGhpcy5pbml0UmVzaXplLmJpbmRB
c0V2ZW50TGlzdGVuZXIodGhpcyk7CiAgICBFdmVudC5vYnNlcnZlKHRoaXMuaGFuZGxlLCAibW91
c2Vkb3duIiwgdGhpcy5ldmVudE1vdXNlRG93bik7CgogICAgUmVzaXphYmxlcy5yZWdpc3Rlcih0
aGlzKTsKICB9LAogICByZXZlcnRlZmZlY3Q6IGZ1bmN0aW9uKGVsZW1lbnQsIGhvcml6b250YWws
IHZlcnRpY2FsKSB7CiAgICAgICB2YXIgaG9yaXogPSB0aGlzLl9lZGltWzBdIC0gaG9yaXpvbnRh
bDsKICAgICAgICB2YXIgdmVydCA9IHRoaXMuX2VkaW1bMV0gLSB2ZXJ0aWNhbDsKICAgICAgICBu
ZXcgRWZmZWN0LlJlU2l6ZShlbGVtZW50LCB7ZGlyZWN0aW9uOid2ZXJ0JywgYW1vdW50OnZlcnR9
KTsKICAgICAgICBuZXcgRWZmZWN0LlJlU2l6ZShlbGVtZW50LCB7ZGlyZWN0aW9uOidob3Jpem9u
dGFsJywgYW1vdW50Omhvcml6fSk7CiAgICB9LAoKICBkZXN0cm95OiBmdW5jdGlvbigpIHsKICAg
IEV2ZW50LnN0b3BPYnNlcnZpbmcodGhpcy5oYW5kbGUsICJtb3VzZWRvd24iLCB0aGlzLmV2ZW50
TW91c2VEb3duKTsKICAgIFJlc2l6YWJsZXMudW5yZWdpc3Rlcih0aGlzKTsKICB9LAoKICBjdXJy
ZW50RGVsdGE6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuKFsKICAgICAgcGFyc2VJbnQoRWxlbWVu
dC5nZXRTdHlsZSh0aGlzLmVsZW1lbnQsJ2xlZnQnKSB8fCAnMCcpLAogICAgICBwYXJzZUludChF
bGVtZW50LmdldFN0eWxlKHRoaXMuZWxlbWVudCwndG9wJykgfHwgJzAnKV0pOwogIH0sCiAgaW5p
dFJlc2l6ZTogZnVuY3Rpb24oZXZlbnQpIHsKICAgIGlmKHR5cGVvZiBSZXNpemFibGUuX3Jlc2l6
aW5nW3RoaXMuZWxlbWVudF0gIT0gJ3VuZGVmaW5lZCcgJiYKICAgICAgUmVzaXphYmxlLl9yZXNp
emluZ1t0aGlzLmVsZW1lbnRdKSByZXR1cm47CiAgICBpZihFdmVudC5pc0xlZnRDbGljayhldmVu
dCkpIHsgICAgCiAgICAgIC8vIGFib3J0IG9uIGZvcm0gZWxlbWVudHMsIGZpeGVzIGEgRmlyZWZv
eCBpc3N1ZQogICAgICB2YXIgc3JjID0gRXZlbnQuZWxlbWVudChldmVudCk7CiAgICAgIGlmKCh0
YWdfbmFtZSA9IHNyYy50YWdOYW1lLnRvVXBwZXJDYXNlKCkpICYmICgKICAgICAgICB0YWdfbmFt
ZT09J0lOUFVUJyB8fAogICAgICAgIHRhZ19uYW1lPT0nU0VMRUNUJyB8fAogICAgICAgIHRhZ19u
YW1lPT0nT1BUSU9OJyB8fAogICAgICAgIHRhZ19uYW1lPT0nQlVUVE9OJyB8fAogICAgICAgIHRh
Z19uYW1lPT0nVEVYVEFSRUEnKSkgcmV0dXJuOwoKICAgICAgdmFyIHBvaW50ZXIgPSBbRXZlbnQu
cG9pbnRlclgoZXZlbnQpLCBFdmVudC5wb2ludGVyWShldmVudCldOwogICAgICAgICAgdGhpcy5f
aW5pdGlhbFggPSBwb2ludGVyWzBdOwogICAgICAgICAgdGhpcy5faW5pdGlhbFkgPSBwb2ludGVy
WzFdOwogICAgICAgICAgdmFyIGRpbSA9IEVsZW1lbnQuZ2V0RGltZW5zaW9ucyh0aGlzLmVsZW1l
bnQpOwoKICAgICAgICAgIHRoaXMuX2VkaW0gPSBbZGltLndpZHRoLGRpbS5oZWlnaHRdOwogICAg
ICAgICAgdGhpcy5fbWluID0gWzEsMV07CiAgICAgICAgICB0aGlzLl9tYXggPSBbMCwwXTsKICAg
ICAgdmFyIHBvcyA9IFBvc2l0aW9uLmN1bXVsYXRpdmVPZmZzZXQodGhpcy5lbGVtZW50KTsKICAg
ICAgdGhpcy5vZmZzZXQgPSBbMCwxXS5tYXAoIGZ1bmN0aW9uKGkpIHsgcmV0dXJuIChwb2ludGVy
W2ldIC0gcG9zW2ldKSB9KTsgCgogICAgICAgIGlmKHRoaXMub3B0aW9ucy5wcmVzZXJ2ZVJhdGlv
KXsKICAgICAgICAgICAgdGhpcy5fcmF0aW8gPSBkaW0ud2lkdGggLyBkaW0uaGVpZ2h0OyAgICAK
ICAgICAgICB9CgogICAgICAgIGlmKHRoaXMub3B0aW9ucy5iaW5kID09IHRydWUgfHwgdGhpcy5v
cHRpb25zLmZsaXApewogICAgICAgICAgICB0aGlzLl9wYXJlbnREaW0gPSBFbGVtZW50LmdldERp
bWVuc2lvbnModGhpcy5lbGVtZW50LnBhcmVudE5vZGUpOyAKICAgICAgICAgICAgdGhpcy5fY29w
ID0gUG9zaXRpb24uY3VtdWxhdGl2ZU9mZnNldCh0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSk7CiAg
ICAgICAgICAgIHRoaXMuX2NvZSA9IFBvc2l0aW9uLmN1bXVsYXRpdmVPZmZzZXQodGhpcy5lbGVt
ZW50KTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRPZmZzZXQgPSBbdGhpcy5fY29l
WzBdLXRoaXMuX2NvcFswXSwgdGhpcy5fY29lWzFdLXRoaXMuX2NvcFsxXV07CiAgICAgICAgICAg
IGlmKHRoaXMub3B0aW9ucy5mbGlwKXsKICAgICAgICAgICAgICAgIHZhciBtYXJnaW5zID0gW3Bh
cnNlSW50KEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCAnbWFyZ2luLWxlZnQnKSkgfHwg
IjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQoRWxlbWVudC5nZXRT
dHlsZSh0aGlzLmVsZW1lbnQsJ21hcmdpbi10b3AnKSkgfHwgIjAiXTsKCiAgICAgICAgICAgICAg
ICB0aGlzLmVsZW1lbnQuc2V0U3R5bGUoe292ZXJmbG93OidoaWRkZW4nfSk7CiAgICAgICAgICAg
ICAgICB0aGlzLl9tYyA9IFsodGhpcy5fZWRpbVswXS0odGhpcy5faW5pdGlhbFgtKHRoaXMuX2Nv
ZVswXSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLl9lZGltWzFdLSh0aGlz
Ll9pbml0aWFsWS0odGhpcy5fY29lWzFdKSkpXTsKICAgICAgICAgICAgICAgIHRoaXMuX2luZiA9
IFBvc2l0aW9uLnBvc2l0aW9uZWRPZmZzZXQodGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgICAg
IC8vaWUgZml4OgogICAgICAgICAgICAgICAgdGhpcy5faW5mWzBdIC09IHRoaXMuZWxlbWVudC5w
YXJlbnROb2RlICE9IGRvY3VtZW50LmJvZHkgPyB0aGlzLl9jb3BbMF0gOiAwOwogICAgICAgICAg
ICAgICAgdGhpcy5faW5mWzFdIC09IHRoaXMuZWxlbWVudC5wYXJlbnROb2RlICE9IGRvY3VtZW50
LmJvZHkgPyB0aGlzLl9jb3BbMV0gOiAwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAg
IGlmKHRoaXMub3B0aW9ucy5taW4pewogICAgICAgICAgICBpZih0aGlzLm9wdGlvbnMubWluIGlu
c3RhbmNlb2YgQXJyYXkpewogICAgICAgICAgICAgICAgdGhpcy5fbWluID0gdGhpcy5fbWluLm1h
cChmdW5jdGlvbih2LGkpe3JldHVybiAodGhpcy5vcHRpb25zLm1pbltpXSA+IDAgPyB0aGlzLm9w
dGlvbnMubWluW2ldIDogMSk7fS5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICB0aGlzLl9taW4gPSB0aGlzLl9taW4ubWFwKGZ1bmN0aW9u
KHYsaSl7cmV0dXJuICh0aGlzLm9wdGlvbnMubWluID4gMCA/IHRoaXMub3B0aW9ucy5taW4gOiAx
KTt9LmJpbmQodGhpcykpOwogICAgICAgIH0gICAgICAgIAogICAgICAgIGlmKHRoaXMub3B0aW9u
cy5tYXgpewogICAgICAgICAgICBpZih0aGlzLm9wdGlvbnMubWF4IGluc3RhbmNlb2YgQXJyYXkp
ewogICAgICAgICAgICAgICAgdGhpcy5fbWF4ID0gdGhpcy5fbWF4Lm1hcChmdW5jdGlvbih2LGkp
eyByZXR1cm4gKHRoaXMub3B0aW9ucy5tYXhbaV0gPj0gdGhpcy5fbWluW2ldKSA/IHRoaXMub3B0
aW9ucy5tYXhbaV0gOiAwOyB9LmJpbmQodGhpcykpOwogICAgICAgICAgICB9CiAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgIHRoaXMuX21heCA9IHRoaXMuX21heC5tYXAoZnVuY3Rpb24o
dixpKXsgcmV0dXJuICh0aGlzLm9wdGlvbnMubWF4ID49IHRoaXMuX21pbltpXSkgPyB0aGlzLm9w
dGlvbnMubWF4IDogMDsgfS5iaW5kKHRoaXMpKTsKICAgICAgICB9CgogICAgICBSZXNpemFibGVz
LmFjdGl2YXRlKHRoaXMpOwogICAgICBFdmVudC5zdG9wKGV2ZW50KTsKICAgIH0KICB9LAoKICBz
dGFydFJlc2l6ZTogZnVuY3Rpb24oZXZlbnQpIHsKICAgIHRoaXMucmVzaXppbmcgPSB0cnVlOwog
ICAgaWYodGhpcy5vcHRpb25zLnppbmRleCkgewogICAgICB0aGlzLm9yaWdpbmFsWiA9IHBhcnNl
SW50KEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCd6LWluZGV4JykgfHwgMCk7CiAgICAg
IHRoaXMuZWxlbWVudC5zdHlsZS56SW5kZXggPSB0aGlzLm9wdGlvbnMuemluZGV4OwogICAgfQog
ICAgaWYodGhpcy5vcHRpb25zLmdob3N0aW5nKSB7CiAgICAgIC8vIElmIGVsZW1lbnQgaGFzIG1h
cmdpbi1sZWZ0L3JpZ2h0L3RvcC9ib3R0b20gc2V0IGFsbCBzb3J0IG9mIHByb2JsZW1zIG9jY3Vy
cyByZWdhcmRpbmcgdGhlIGVsZW1lbnRzIHN0YXJ0aW5nIHBvc2l0aW9uIAogICAgICAvLyBhbmQg
ZmluYWwgcG9zaXRpb24gZXNwZWNpYWxseSBpbiBJRSAobW9yZSBwcm9ibGVtcyB3aGVuIGFsc28g
c25hcCBhbmQgZ2hvc3RpbmcgYXJlIGluaXRpYXRlZCB0b2dldGhlcikKICAgICAgLy8gKHNpbWls
YXIgaGFwcGVucyBpbiBEcmFnZ2FibGUgLSBtaWdodCBuZWVkIGZpeGluZyB0aGVyZSBhcyB3ZWxs
Pz8pCiAgICAgIC8vIG5leHQgZmV3IGxpbmVzIFNPTFZFIHRoZSBwcm9ibGVtICh3b3JrcyBmb3Ig
ZXZlcnkgY29tYmluYXRpb246IHBvc2l0aW9uOmFic29sdXRlK29mZnNldCB8fCByZWxhdGl2ZStt
YXJnaW5zIGV0Yy4pCiAgICAgIHRoaXMuX2Nsb25lID0gdGhpcy5lbGVtZW50LmNsb25lTm9kZSh0
cnVlKTsKICAgICAgdGhpcy5lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX2Ns
b25lLCB0aGlzLmVsZW1lbnQpOwogICAgICB2YXIgc3R5bGUgPSB0aGlzLl9jbG9uZS5zdHlsZTsK
ICAgICAgUG9zaXRpb24uYWJzb2x1dGl6ZSh0aGlzLl9jbG9uZSk7CiAgICAgIC8vIHBhcnRpYWwg
SUUgbWFyZ2luIGZpeCAoaWYgYW5vdGhlciBlbGVtZW50IGlzIGJlbG93IGl0IGluIElFIGl0IGxv
b3NlcyBpdHMgcG9zaXRpb24gaS5lLiBvZmZzZXQgb24gYm90dG9tIGlzIHJlc2V0KQogICAgICBp
ZihuYXZpZ2F0b3IuYXBwTmFtZS5pbmRleE9mKCdNaWNyb3NvZnQnKSAhPSAtMSAmJiBwYXJzZUlu
dChFbGVtZW50LmdldFN0eWxlKHRoaXMuZWxlbWVudCwgJ21hcmdpbi10b3AnKSkgPiAwKXsKICAg
ICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9IHN0eWxlLm1hcmdpblRvcDsKICAgICAgfQog
ICAgICAvLwogICAgICBzdHlsZS5tYXJnaW4gPSAnMHB4JzsKICAgIH0KICAgIFJlc2l6YWJsZXMu
bm90aWZ5KCdvblN0YXJ0JywgdGhpcywgZXZlbnQpOwoKICAgIGlmKHRoaXMub3B0aW9ucy5zdGFy
dGVmZmVjdCkgdGhpcy5vcHRpb25zLnN0YXJ0ZWZmZWN0KHRoaXMuZWxlbWVudCk7CiAgfSwKICB1
cGRhdGVSZXNpemU6IGZ1bmN0aW9uKGV2ZW50LCBwb2ludGVyKSB7CiAgIGlmKCF0aGlzLnJlc2l6
aW5nKSB0aGlzLnN0YXJ0UmVzaXplKGV2ZW50KTsKCiAgICBSZXNpemFibGVzLm5vdGlmeSgnb25S
ZXNpemUnLCB0aGlzLCBldmVudCk7CiAgICB0aGlzLmRyYXcocG9pbnRlcik7CiAgICBpZih0aGlz
Lm9wdGlvbnMuY2hhbmdlKSB0aGlzLm9wdGlvbnMuY2hhbmdlKHRoaXMpOwoKICAgIEV2ZW50LnN0
b3AoZXZlbnQpOwogIH0sCgogIGZpbmlzaFJlc2l6ZTogZnVuY3Rpb24oZXZlbnQsIHN1Y2Nlc3Mp
IHsKICAgIHRoaXMucmVzaXppbmcgPSBmYWxzZTsKICAgIGlmKHRoaXMub3B0aW9ucy5naG9zdGlu
ZykgewogICAgICBpZihuYXZpZ2F0b3IuYXBwTmFtZS5pbmRleE9mKCdNaWNyb3NvZnQnKSAhPSAt
MSAmJiBwYXJzZUludChFbGVtZW50LmdldFN0eWxlKHRoaXMuZWxlbWVudCwgJ21hcmdpbi10b3An
KSkgPiAwKQogICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9IHRoaXMuX2Nsb25lLnN0
eWxlLm1hcmdpblRvcDsKICAgICAgRWxlbWVudC5yZW1vdmUodGhpcy5fY2xvbmUpOwogICAgICB0
aGlzLl9jbG9uZSA9IG51bGw7CiAgICB9CiAgICBSZXNpemFibGVzLm5vdGlmeSgnb25FbmQnLCB0
aGlzLCBldmVudCk7CiAgICB2YXIgcmV2ZXJ0ID0gdGhpcy5vcHRpb25zLnJldmVydDsKICAgIGlm
KHJldmVydCAmJiB0eXBlb2YgcmV2ZXJ0ID09ICdmdW5jdGlvbicpIHJldmVydCA9IHJldmVydCh0
aGlzLmVsZW1lbnQpOwoKICAgIGlmKHJldmVydCAmJiB0aGlzLnJldmVydGVmZmVjdCkgewogICAg
ICAgIHZhciBkaW0gPSBFbGVtZW50LmdldERpbWVuc2lvbnModGhpcy5lbGVtZW50KTsKICAgICAg
ICB0aGlzLnJldmVydGVmZmVjdCh0aGlzLmVsZW1lbnQsIGRpbS53aWR0aCwgZGltLmhlaWdodCk7
Ly9kWzFdLXRoaXMuZGVsdGFbMV0sIGRbMF0tdGhpcy5kZWx0YVswXQogICAgfSAKICAgIGlmKHRo
aXMub3B0aW9ucy56aW5kZXgpCiAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS56SW5kZXggPSB0aGlz
Lm9yaWdpbmFsWjsKCiAgICBpZih0aGlzLm9wdGlvbnMuZW5kZWZmZWN0KSAKICAgICAgdGhpcy5v
cHRpb25zLmVuZGVmZmVjdCh0aGlzLmVsZW1lbnQpOwoKICAgIFJlc2l6YWJsZXMuZGVhY3RpdmF0
ZSh0aGlzKTsKICB9LAoKICBrZXlQcmVzczogZnVuY3Rpb24oZXZlbnQpIHsKICAgIGlmKGV2ZW50
LmtleUNvZGUhPUV2ZW50LktFWV9FU0MpIHJldHVybjsKICAgIHRoaXMuZmluaXNoUmVzaXplKGV2
ZW50LCBmYWxzZSk7CiAgICBFdmVudC5zdG9wKGV2ZW50KTsKICB9LAoKICBlbmRSZXNpemU6IGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICBpZighdGhpcy5yZXNpemluZykgcmV0dXJuOwogICAgdGhpcy5m
aW5pc2hSZXNpemUoZXZlbnQsIHRydWUpOwogICAgRXZlbnQuc3RvcChldmVudCk7CiAgfSwKCiAg
ZHJhdzogZnVuY3Rpb24ocG9pbnQpIHsKICAgICAgdmFyIHBvcyA9IFBvc2l0aW9uLmN1bXVsYXRp
dmVPZmZzZXQodGhpcy5lbGVtZW50KTsKICAgIHZhciBkID0gdGhpcy5jdXJyZW50RGVsdGEoKTsK
ICAgICAgICAgICAgcG9zWzBdIC09IGRbMF07IAogICAgICAgICAgICBwb3NbMV0gLT0gZFsxXTsK
CiAgICAgICAgdmFyIHAgPSBbMCwxXS5tYXAoZnVuY3Rpb24oaSl7IAogICAgICAgICAgcmV0dXJu
IChwb2ludFtpXS1wb3NbaV0tdGhpcy5vZmZzZXRbaV0pIAogICAgICAgIH0uYmluZCh0aGlzKSk7
CgogICAgdmFyIGxfd2lkdGggPSBwWzBdICsgdGhpcy5fZWRpbVswXSAtIGRbMF07CiAgICB2YXIg
bF9oZWlnaHQgPSBwWzFdICsgdGhpcy5fZWRpbVsxXSAtIGRbMV07CgogICAgcFswXSA9IChsX3dp
ZHRoID4gdGhpcy5fbWluWzBdKSA/IGxfd2lkdGggOiB0aGlzLl9taW5bMF07CiAgICBwWzFdID0g
KGxfaGVpZ2h0ID4gdGhpcy5fbWluWzFdKSA/IGxfaGVpZ2h0IDogdGhpcy5fbWluWzFdOwoKICAg
IGlmKHRoaXMub3B0aW9ucy5zbmFwKSB7CiAgICAgICAgaWYodHlwZW9mIHRoaXMub3B0aW9ucy5z
bmFwID09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgcCA9IHRoaXMub3B0aW9ucy5zbmFwKHBb
MF0scFsxXSx0aGlzKTsKICAgICAgICAgIH0gCiAgICAgICAgICBlbHNlIHsKICAgICAgICAgIGlm
KHRoaXMub3B0aW9ucy5zbmFwIGluc3RhbmNlb2YgQXJyYXkpIHsKICAgICAgICAgICAgcCA9IHAu
bWFwKCBmdW5jdGlvbih2LCBpKSB7CiAgICAgICAgICAgIC8vIElGIEphdmFzY3JpcHQgYWxlcnQg
YWN0aXZhdGVkIGluIElFIHRocm93cyBlcnJvciBpZiBvbmUgb2YgdGhlIHNuYXAgdmFsdWVzIGlz
IDAgOiBbMjAsMF0KICAgICAgICAgICAgLy8gb3IgaWYgdGhpcyBtYXAgZnVuY3Rpb25zIHJldHVy
bnMgMCBmb3IgaS10aCBlbGVtZW50CiAgICAgICAgICAgIC8vIFNhbWUgaGFwcGVucyBpbiBEcmFn
Z2FibGUgKG5lZWRzIHRvIGJlIHBhdGNoZWQ/PykKICAgICAgICAgICAgdmFyIGRpbSA9IE1hdGgu
cm91bmQodi90aGlzLm9wdGlvbnMuc25hcFtpXSkqdGhpcy5vcHRpb25zLnNuYXBbaV07CiAgICAg
ICAgICAgIHJldHVybiAodGhpcy5vcHRpb25zLnNuYXBbaV0gPiAwKSA/ICgoZGltID4gdGhpcy5f
bWluW2ldKSA/IGRpbSA6IHRoaXMuX21pbltpXSkgOiB0aGlzLl9lZGltW2ldOyAKICAgICAgICAg
ICAgfS5iaW5kKHRoaXMpKQogICAgICAgICAgfSAKICAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICBwID0gcC5tYXAoIGZ1bmN0aW9uKHYsaSkgewogICAgICAgICAgICB2YXIgZGltID0gTWF0aC5y
b3VuZCh2L3RoaXMub3B0aW9ucy5zbmFwKSp0aGlzLm9wdGlvbnMuc25hcC1kW2ldOwogICAgICAg
ICAgICByZXR1cm4gKHRoaXMub3B0aW9ucy5zbmFwID4gMCkgPyAoKGRpbSA+IHRoaXMuX21pbltp
XSkgPyBkaW0gOiB0aGlzLl9taW5baV0pIDogdGhpcy5fZWRpbVtpXSB9LmJpbmQodGhpcykpCiAg
ICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmKHRoaXMub3B0aW9ucy5iaW5kKXsKICAg
ICAgICBpZih0aGlzLl9wYXJlbnREaW0ud2lkdGggPD0gcFswXSt0aGlzLmVsZW1lbnRPZmZzZXRb
MF0pCiAgICAgICAgICAgIHBbMF0gPSB0aGlzLl9wYXJlbnREaW0ud2lkdGggLSB0aGlzLmVsZW1l
bnRPZmZzZXRbMF0gLSAyOwogICAgICAgIGlmKHRoaXMuX3BhcmVudERpbS5oZWlnaHQgPD0gcFsx
XSt0aGlzLmVsZW1lbnRPZmZzZXRbMV0pCiAgICAgICAgICAgIHBbMV0gPSB0aGlzLl9wYXJlbnRE
aW0uaGVpZ2h0IC0gdGhpcy5lbGVtZW50T2Zmc2V0WzFdIC0gMjsKICAgIH0KCiAgICBpZih0aGlz
Lm9wdGlvbnMubWluKXsKICAgICAgICBwWzBdID0gcFswXSA+IHRoaXMuX21pblswXSA/IHBbMF0g
OiB0aGlzLl9taW5bMF07CiAgICAgICAgcFsxXSA9IHBbMV0gPiB0aGlzLl9taW5bMV0gPyBwWzFd
IDogdGhpcy5fbWluWzFdOwogICAgfQogICAgaWYodGhpcy5vcHRpb25zLm1heCl7CiAgICAgICAg
cFswXSA9IHBbMF0gPCB0aGlzLl9tYXhbMF0gPyBwWzBdIDogKHRoaXMuX21heFswXSA+IDAgPyB0
aGlzLl9tYXhbMF0gOiBwWzBdKTsKICAgICAgICBwWzFdID0gcFsxXSA8IHRoaXMuX21heFsxXSA/
IHBbMV0gOiAodGhpcy5fbWF4WzFdID4gMCA/IHRoaXMuX21heFsxXSA6IHBbMV0pOwogICAgfQoK
ICAgIHZhciBzdHlsZSA9IHRoaXMuZWxlbWVudC5zdHlsZTsKICAgIGlmKHRoaXMub3B0aW9ucy5m
bGlwKXsKICAgICAgICB2YXIgcjEgPSAocG9pbnRbMF0rdGhpcy5fbWNbMF0pOwogICAgICAgIHZh
ciByMiA9IChwb2ludFsxXSt0aGlzLl9tY1sxXSk7CiAgICAgICAgaWYocjEgPD0gdGhpcy5fY29l
WzBdKXsKICAgICAgICAgICAgc3R5bGUubGVmdCA9IHIxLXRoaXMuX2NvcFswXSsicHgiOy8vdGhp
cy5fbWNbMF0KICAgICAgICAgICAgcFswXSA9IHRoaXMuX2NvZVswXSAtIHRoaXMuZWxlbWVudC5v
ZmZzZXRMZWZ0OwogICAgICAgIH0gICAgICAgIAogICAgICAgIGVsc2UKICAgICAgICAgICAgc3R5
bGUubGVmdCA9IHRoaXMuX2luZlswXSsncHgnOwogICAgICAgIGlmKHIyIDw9IHRoaXMuX2NvZVsx
XSl7CiAgICAgICAgICAgIHN0eWxlLnRvcCA9IHIyLXRoaXMuX2NvcFsxXSsicHgiOy8vdGhpcy5f
bWNbMF0KICAgICAgICAgICAgcFsxXSA9IHRoaXMuX2NvZVsxXSAtIHRoaXMuZWxlbWVudC5vZmZz
ZXRUb3A7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgc3R5bGUudG9wID0gdGhp
cy5faW5mWzFdKydweCc7CiAgICB9CgogICAgaWYodGhpcy5vcHRpb25zLnByZXNlcnZlUmF0aW8p
ewogICAgICAgIHBbMF0gPSB0aGlzLl9yYXRpbyAqIHBbMV07CiAgICB9CgogICAgaWYoKCF0aGlz
Lm9wdGlvbnMuY29uc3RyYWludCkgfHwgKHRoaXMub3B0aW9ucy5jb25zdHJhaW50PT0naG9yaXpv
bnRhbCcpKXsKICAgICAgICBzdHlsZS53aWR0aCA9IHBbMF0rInB4IjsKICAgIH0KICAgIGlmKCgh
dGhpcy5vcHRpb25zLmNvbnN0cmFpbnQpIHx8ICh0aGlzLm9wdGlvbnMuY29uc3RyYWludD09J3Zl
cnRpY2FsJykpewogICAgICAgICBzdHlsZS5oZWlnaHQgPSBwWzFdKyJweCI7CiAgICB9CiAgICBp
ZihzdHlsZS52aXNpYmlsaXR5PT0iaGlkZGVuIikgc3R5bGUudmlzaWJpbGl0eSA9ICIiOyAvLyBm
aXggZ2Vja28gcmVuZGVyaW5nCiAgfQp9CgovLyBzY3JpcHQuYWN1bG8udXMgRWZmZWN0UmVzaXpl
LmpzCgovLyBDb3B5cmlnaHQoYykgMjAwNyAtIEZyb3N0IElubm92YXRpb24gQVMsIGh0dHA6Ly9h
amF4d2lkZ2V0cy5jb20KLy8KLy8gRWZmZWN0UmVzaXplLmpzIGlzIGZyZWVseSBkaXN0cmlidXRh
YmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBhbiBNSVQtc3R5bGUgbGljZW5zZS4KLy8gRm9yIGRldGFp
bHMsIHNlZSB0aGUgc2NyaXB0LmFjdWxvLnVzIHdlYiBzaXRlOiBodHRwOi8vc2NyaXB0LmFjdWxv
LnVzLwoKLyogSGVscGVyIEVmZmVjdCBmb3IgcmVzaXppbmcgZWxlbWVudHMuLi4KICovCkVmZmVj
dC5SZVNpemUgPSBDbGFzcy5jcmVhdGUoKTsKT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKEVm
ZmVjdC5SZVNpemUucHJvdG90eXBlLCBFZmZlY3QuQmFzZS5wcm90b3R5cGUpLCB7CiAgaW5pdGlh
bGl6ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDsKICAg
IGlmKCF0aGlzLmVsZW1lbnQpIHRocm93KEVmZmVjdC5fZWxlbWVudERvZXNOb3RFeGlzdEVycm9y
KTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7IGFtb3VudDogMTAwLCBkaXJlY3Rp
b246ICd2ZXJ0JywgdG9TaXplOm51bGwgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKICAgIGlmKCBv
cHRpb25zLmRpcmVjdGlvbiA9PSAndmVydCcgKQogICAgICB0aGlzLm9yaWdpbmFsU2l6ZSA9IG9w
dGlvbnMub3JpZ2luYWxTaXplIHx8IHBhcnNlSW50KHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQp
OwogICAgZWxzZQogICAgICB0aGlzLm9yaWdpbmFsU2l6ZSA9IG9wdGlvbnMub3JpZ2luYWxTaXpl
IHx8IHBhcnNlSW50KHRoaXMuZWxlbWVudC5zdHlsZS53aWR0aCk7CgogICAgaWYoIG9wdGlvbnMu
dG9TaXplICE9IG51bGwgKQogICAgICBvcHRpb25zLmFtb3VudCA9IG9wdGlvbnMudG9TaXplIC0g
dGhpcy5vcmlnaW5hbFNpemU7CgogICAgdGhpcy5zdGFydChvcHRpb25zKTsKICB9LAogIHNldHVw
OiBmdW5jdGlvbigpIHsKICAgIC8vIFByZXZlbnQgZXhlY3V0aW5nIG9uIGVsZW1lbnRzIG5vdCBp
biB0aGUgbGF5b3V0IGZsb3cKICAgIGlmKHRoaXMuZWxlbWVudC5nZXRTdHlsZSgnZGlzcGxheScp
PT0nbm9uZScpIHsgdGhpcy5jYW5jZWwoKTsgcmV0dXJuOyB9CiAgfSwKICB1cGRhdGU6IGZ1bmN0
aW9uKHBvc2l0aW9uKSB7CiAgICBpZiggdGhpcy5vcHRpb25zLmRpcmVjdGlvbiA9PSAndmVydCcg
KXsKICAgICAgdGhpcy5lbGVtZW50LnNldFN0eWxlKHtoZWlnaHQ6IHRoaXMub3JpZ2luYWxTaXpl
Kyh0aGlzLm9wdGlvbnMuYW1vdW50KnBvc2l0aW9uKSsncHgnfSk7CiAgICB9IGVsc2UgewogICAg
ICB0aGlzLmVsZW1lbnQuc2V0U3R5bGUoe3dpZHRoOiB0aGlzLm9yaWdpbmFsU2l6ZSsodGhpcy5v
cHRpb25zLmFtb3VudCpwb3NpdGlvbikrJ3B4J30pOwogICAgfQogIH0sCiAgZmluaXNoOiBmdW5j
dGlvbigpewogICAgaWYoIHRoaXMub3B0aW9ucy5kaXJlY3Rpb24gPT0gJ3ZlcnQnICl7CiAgICAg
IHRoaXMuZWxlbWVudC5zZXRTdHlsZSh7aGVpZ2h0OiB0aGlzLm9yaWdpbmFsU2l6ZSt0aGlzLm9w
dGlvbnMuYW1vdW50KydweCd9KTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuZWxlbWVudC5zZXRT
dHlsZSh7d2lkdGg6IHRoaXMub3JpZ2luYWxTaXplK3RoaXMub3B0aW9ucy5hbW91bnQrJ3B4J30p
OwogICAgfQogIH0KfSk7LyogIEZST00gUHJvdG90eXBlLVVJCioKKiAgUHJvdG90eXBlLVVJIGlz
IGZyZWVseSBkaXN0cmlidXRhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBhbiBNSVQtc3R5bGUgbGlj
ZW5zZS4KKiAgRm9yIGRldGFpbHMsIHNlZSB0aGUgUHJvdG90eXBlVUkgd2ViIHNpdGU6IGh0dHA6
Ly93d3cucHJvdG90eXBlLXVpLmNvbS8KKgoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKaWYgKFByb3Rv
dHlwZS5Ccm93c2VyLklFKSB7CiAgUHJvdG90eXBlLkJyb3dzZXIuSUVWZXJzaW9uID0gcGFyc2VG
bG9hdChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5zcGxpdCgnOycpWzFdLnN0cmlwKCkuc3BsaXQoJyAn
KVsxXSk7CiAgUHJvdG90eXBlLkJyb3dzZXIuSUU2ID0gIFByb3RvdHlwZS5Ccm93c2VyLklFVmVy
c2lvbiA9PSA2OwogIFByb3RvdHlwZS5Ccm93c2VyLklFNyA9ICBQcm90b3R5cGUuQnJvd3Nlci5J
RVZlcnNpb24gPT0gNzsKfQoKRWxlbWVudC5hZGRNZXRob2RzKHsKICBnZXRTY3JvbGxEaW1lbnNp
b25zOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gewogICAgICB3aWR0aDogIGVsZW1l
bnQuc2Nyb2xsV2lkdGgsCiAgICAgIGhlaWdodDogZWxlbWVudC5zY3JvbGxIZWlnaHQKICAgIH0K
ICB9LAoKICBnZXRTY3JvbGxPZmZzZXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiBF
bGVtZW50Ll9yZXR1cm5PZmZzZXQoZWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50LnNjcm9sbFRv
cCk7CiAgfSwKCiAgc2V0U2Nyb2xsT2Zmc2V0OiBmdW5jdGlvbihlbGVtZW50LCBvZmZzZXQpIHsK
ICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykK
ICAgIG9mZnNldCA9IHsgbGVmdDogb2Zmc2V0LCB0b3A6IGFyZ3VtZW50c1syXSB9OwogICAgZWxl
bWVudC5zY3JvbGxMZWZ0ID0gb2Zmc2V0LmxlZnQ7CiAgICBlbGVtZW50LnNjcm9sbFRvcCAgPSBv
ZmZzZXQudG9wOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgLy8gcmV0dXJucyAiY2xlYW4i
IG51bWVyaWNhbCBzdHlsZSAod2l0aG91dCAicHgiKSBvciBudWxsIGlmIHN0eWxlIGNhbiBub3Qg
YmUgcmVzb2x2ZWQKICAvLyBvciBpcyBub3QgbnVtZXJpYwogIGdldE51bVN0eWxlOiBmdW5jdGlv
bihlbGVtZW50LCBzdHlsZSkgewogICAgdmFyIHZhbHVlID0gcGFyc2VGbG9hdCgkKGVsZW1lbnQp
LmdldFN0eWxlKHN0eWxlKSk7CiAgICByZXR1cm4gaXNOYU4odmFsdWUpID8gbnVsbCA6IHZhbHVl
OwogIH0sCgogIC8vIGJ5IFRvYmllIExhbmdlbCAoaHR0cDovL3RvYmllbGFuZ2VsLmNvbS8yMDA3
LzUvMjIvcHJvdG90eXBlLXF1aWNrLXRpcCkKICBhcHBlbmRUZXh0OiBmdW5jdGlvbihlbGVtZW50
LCB0ZXh0KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHRleHQgPSBTdHJpbmcuaW50
ZXJwcmV0KHRleHQpOwogICAgZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSh0ZXh0KSk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9Cn0pOwogIApTaGFkb3cgPSBDbGFz
cy5jcmVhdGUoewoKCiAgLyoKICAgIE1ldGhvZDogaW5pdGlhbGl6ZQogICAgICBDb25zdHJ1Y3Rv
ciwgYWRkcyBzaGFkb3cgZWxlbWVudHMgdG8gdGhlIERPTSBpZiBlbGVtZW50IGlzIGluIHRoZSBE
T00uCiAgICAgIEVsZW1lbnQgTVVTVCBCRSBpbiBBQlNPTFVURSBwb3NpdGlvbi4KCiAgICBQYXJh
bWV0ZXJzOgogICAgICBlbGVtZW50IC0gRE9NIGVsZW1lbnQKICAgICAgb3B0aW9ucyAtIEhhc2ht
YXAgb2Ygb3B0aW9ucwogICAgICAgIC0gdGhlbWUgKGRlZmF1bHQ6IG1hY19zaGFkb3cpCiAgICAg
ICAgLSBmb2N1cyAoZGVmYXVsdDogdHJ1ZSkKICAgICAgICAtIHpJbmRleCAoZGVmYXVsdDogMTAw
KQoKICAgIFJldHVybnM6CiAgICAgIHRoaXMKICAqLwogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVs
ZW1lbnQsIG9wdGlvbnMpIHsKICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAg
ICB0aGVtZTogImRyb3Bfc2hhZG93IiwKICAgICAgZm9jdXM6IGZhbHNlLAogICAgICB6SW5kZXg6
IDEwMAogICAgfSwgb3B0aW9ucykKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB0
aGlzLmNyZWF0ZSgpOwogICAgaWYgKE9iamVjdC5pc0VsZW1lbnQodGhpcy5lbGVtZW50LnBhcmVu
dE5vZGUpKQogICAgICB0aGlzLnJlbmRlcigpOwogIH0sCgogIC8qCiAgICBNZXRob2Q6IGRlc3Ry
b3kKICAgICAgRGVzdHJ1Y3RvciwgcmVtb3ZlcyBlbGVtZW50cyBmcm9tIHRoZSBET00KICAqLwog
IGRlc3Ryb3k6IGZ1bmN0aW9uKCkgewogICAgaWYgKHRoaXMuc2hhZG93LnBhcmVudE5vZGUpCiAg
ICAgIHRoaXMucmVtb3ZlKCk7CiAgfSwKCiAgLy8gR3JvdXA6IFNpemUgYW5kIFBvc2l0aW9uCiAg
LyoKICAgIE1ldGhvZDogc2V0UG9zaXRpb24KICAgICAgU2V0cyB0b3AvbGVmdCBzaGFkb3cgcG9z
aXRpb24gaW4gcGl4ZWxzCgogICAgUGFyYW1ldGVyczoKICAgICAgdG9wIC0gIHRvcCBwb3NpdGlv
biBpbiBwaXhlbAogICAgICBsZWZ0IC0gbGVmdCBwb3NpdGlvbiBpbiBwaXhlbAoKICAgIFJldHVy
bnM6CiAgICAgIHRoaXMKICAqLwogIHNldFBvc2l0aW9uOiBmdW5jdGlvbih0b3AsIGxlZnQpIHsK
ICAgIGlmICh0aGlzLnNoYWRvd1NpemUpIHsKICAgICAgdmFyIHNoYWRvd1N0eWxlID0gdGhpcy5z
aGFkb3cuc3R5bGU7CgogICAgICBzaGFkb3dTdHlsZS50b3AgID0gcGFyc2VJbnQodG9wKSAgLSB0
aGlzLnNoYWRvd1NpemUudG9wICArIHRoaXMuc2hhZG93U2hpZnQudG9wICsgJ3B4JzsKICAgICAg
c2hhZG93U3R5bGUubGVmdCA9IHBhcnNlSW50KGxlZnQpIC0gdGhpcy5zaGFkb3dTaXplLmxlZnQg
KyB0aGlzLnNoYWRvd1NoaWZ0LmxlZnQrICdweCc7CiAgICB9CiAgICByZXR1cm4gdGhpczsKICB9
LAoKICAvKgogICAgTWV0aG9kOiBzZXRTaXplCiAgICAgIFNldHMgd2lkdGgvaGVpZ2h0IHNoYWRv
dyBpbiBwaXhlbHMKCiAgICBQYXJhbWV0ZXJzOgogICAgICB3aWR0aCAgLSB3aWR0aCBpbiBwaXhl
bAogICAgICBoZWlnaHQgLSBoZWlnaHQgaW4gcGl4ZWwKCiAgICBSZXR1cm5zOgogICAgICB0aGlz
CiAgKi8KICBzZXRTaXplOiBmdW5jdGlvbih3aWR0aCwgaGVpZ2h0KSB7CiAgICBpZiAodGhpcy5z
aGFkb3dTaXplKSB7CiAgICAgIHZhciB3ID0gcGFyc2VJbnQod2lkdGgpICsgdGhpcy5zaGFkb3dT
aXplLndpZHRoIC0gdGhpcy5zaGFkb3dTaGlmdC53aWR0aCArICJweCI7CiAgICAgIHRoaXMuc2hh
ZG93LnN0eWxlLndpZHRoID0gdzsKICAgICAgdmFyIGggPSAgcGFyc2VJbnQoaGVpZ2h0KSAtIHRo
aXMuc2hhZG93U2hpZnQuaGVpZ2h0ICsgInB4IjsKCiAgICAgIC8vIHRoaXMuc2hhZG93Q29udGVu
dHNbMV0uc3R5bGUuaGVpZ2h0ID0gaDsKICAgICAgdGhpcy5zaGFkb3dDb250ZW50c1sxXS5jaGls
ZEVsZW1lbnRzKCkuZWFjaChmdW5jdGlvbihlKSB7ZS5zdHlsZS5oZWlnaHQgPSBofSk7CiAgICAg
IHRoaXMuc2hhZG93Q29udGVudHMuZWFjaChmdW5jdGlvbihpdGVtKXsgaXRlbS5zdHlsZS53aWR0
aCA9IHd9KTsKICAgIH0KICAgIHJldHVybiB0aGlzOwogIH0sCgogIC8qCiAgICBNZXRob2Q6IHNl
dEJvdW5kcwogICAgICBTZXRzIHNoYWRvdyBib3VuZHMgaW4gcGl4ZWxzCgogICAgUGFyYW1ldGVy
czoKICAgICAgYm91bmRzIC0gYW4gSGFzaCB7dG9wOiwgbGVmdDosIHdpZHRoOiwgaGVpZ2h0On0K
CiAgICBSZXR1cm5zOgogICAgICB0aGlzCiAgKi8KICBzZXRCb3VuZHM6IGZ1bmN0aW9uKGJvdW5k
cykgewogICAgcmV0dXJuIHRoaXMuc2V0UG9zaXRpb24oYm91bmRzLnRvcCwgYm91bmRzLmxlZnQp
LnNldFNpemUoYm91bmRzLndpZHRoLCBib3VuZHMuaGVpZ2h0KTsKICB9LAoKICAvKgogICAgTWV0
aG9kOiBzZXRaSW5kZXgKICAgICAgU2V0cyBzaGFkb3cgei1pbmRleAoKICAgIFBhcmFtZXRlcnM6
CiAgICAgIHpJbmRleCAtIHpJbmRleCB2YWx1ZQoKICAgIFJldHVybnM6CiAgICAgIHRoaXMKICAq
LwogIHNldFpJbmRleDogZnVuY3Rpb24oekluZGV4KSB7CiAgICB0aGlzLnNoYWRvdy5zdHlsZS56
SW5kZXggPSB6SW5kZXg7CiAgICByZXR1cm4gdGhpczsKICB9LAoKICAgLy8gR3JvdXA6IFJlbmRl
cgogIC8qCiAgICBNZXRob2Q6IHNob3cKICAgICAgRGlzcGxheXMgc2hhZG93CgogICAgUmV0dXJu
czoKICAgICAgdGhpcwogICovCiAgc2hvdzogZnVuY3Rpb24oKSB7CiAgIHRoaXMuc2hhZG93LnNo
b3coKTsKICAgcmV0dXJuIHRoaXM7CiAgfSwKCiAgLyoKICAgIE1ldGhvZDogaGlkZQogICAgICBI
aWRlcyBzaGFkb3cKCiAgICBSZXR1cm5zOgogICAgICB0aGlzCiAgKi8KICBoaWRlOiBmdW5jdGlv
bigpIHsKICAgIHRoaXMuc2hhZG93LmhpZGUoKTsKICAgIHJldHVybiB0aGlzOwogIH0sCgogIC8q
CiAgICBNZXRob2Q6IHJlbW92ZQogICAgICBSZW1vdmVzIHNoYWRvdyBmcm9tIHRoZSBET00KCiAg
ICBSZXR1cm5zOgogICAgICB0aGlzCiAgKi8KICByZW1vdmU6IGZ1bmN0aW9uKCkgewogICAgdGhp
cy5zaGFkb3cucmVtb3ZlKCk7CiAgICByZXR1cm4gdGhpczsKICB9LAoKICAvLyBHcm91cDogU3Rh
dHVzCiAgLyoKICAgIE1ldGhvZDogZm9jdXMKICAgICAgRm9jdXMgc2hhZG93LgoKICAgICAgQ2hh
bmdlIHNoYWRvdyBzaGlmdC4gU2hpZnQgdmFsdWVzIGFyZSBzZXQgaW4gQ1NTIGZpbGUgYXMgbWFy
Z2luIGFuZCBwYWRkaW5nIG9mIHNoYWRvd19jb250YWluZXIKICAgICAgdG8gYWRkIHZpc3VhbCBp
bmZvcm1hdGlvbiBvZiBzaGFkb3cgc3RhdHVzLgoKICAgIFJldHVybnM6CiAgICAgIHRoaXMKICAq
LwogIGZvY3VzOiBmdW5jdGlvbigpIHsKICAgIHRoaXMub3B0aW9ucy5mb2N1cyA9IHRydWU7CiAg
ICB0aGlzLnVwZGF0ZVNoYWRvdygpOwogICAgcmV0dXJuIHRoaXM7CiAgfSwKCiAgLyoKICAgIE1l
dGhvZDogYmx1cgogICAgICBCbHVycyBzaGFkb3cuCgogICAgICBDaGFuZ2Ugc2hhZG93IHNoaWZ0
LiBTaGlmdCB2YWx1ZXMgYXJlIHNldCBpbiBDU1MgZmlsZSBhcyBtYXJnaW4gYW5kIHBhZGRpbmcg
b2Ygc2hhZG93X2NvbnRhaW5lcgogICAgICB0byBhZGQgdmlzdWFsIGluZm9ybWF0aW9uIG9mIHNo
YWRvdyBzdGF0dXMuCgogICAgUmV0dXJuczoKICAgICAgdGhpcwogICovCiAgYmx1cjogZnVuY3Rp
b24oKSB7CiAgICB0aGlzLm9wdGlvbnMuZm9jdXMgPSBmYWxzZTsKICAgIHRoaXMudXBkYXRlU2hh
ZG93KCk7CiAgICByZXR1cm4gdGhpczsKICB9LAoKICAvLyBQcml2YXRlIEZ1bmN0aW9ucwogIC8v
IEFkZHMgc2hhZG93IGVsZW1lbnRzIHRvIERPTSwgY29tcHV0ZXMgc2hhZG93IHNpemUgYW5kIGRp
c3BsYXlzIGl0CiAgcmVuZGVyOiBmdW5jdGlvbigpIHsKICAgIGlmICh0aGlzLmVsZW1lbnQucGFy
ZW50Tm9kZSAmJiAhT2JqZWN0LmlzRWxlbWVudCh0aGlzLnNoYWRvdy5wYXJlbnROb2RlKSkgewog
ICAgICB0aGlzLmVsZW1lbnQucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzLnNoYWRvdyk7CiAg
ICAgIHRoaXMuY29tcHV0ZVNpemUoKTsKICAgICAgdGhpcy5zZXRCb3VuZHMoT2JqZWN0LmV4dGVu
ZCh0aGlzLmVsZW1lbnQuZ2V0RGltZW5zaW9ucygpLCB0aGlzLmdldEVsZW1lbnRQb3NpdGlvbigp
KSk7CiAgICAgIHRoaXMuc2hhZG93LnNob3coKTsKICAgIH0KICAgIHJldHVybiB0aGlzOwogIH0s
CgogIC8vIENyZWF0ZXMgSFRNTCBlbGVtZW50cyB3aXRob3V0IGluc2VydGluZyB0aGVtIGludG8g
dGhlIERPTQogIGNyZWF0ZTogZnVuY3Rpb24oKSB7CiAgICB2YXIgekluZGV4ID0gdGhpcy5lbGVt
ZW50LmdldFN0eWxlKCd6SW5kZXgnKTsKICAgIGlmICghekluZGV4KQogICAgICB0aGlzLmVsZW1l
bnQuc2V0U3R5bGUoe3pJbmRleDogdGhpcy5vcHRpb25zLnpJbmRleH0pOwogICAgekluZGV4ID0g
KHpJbmRleCB8fCB0aGlzLm9wdGlvbnMuekluZGV4KSAtIDE7CgogICAgdGhpcy5zaGFkb3dDb250
ZW50cyA9IG5ldyBBcnJheSgzKTsKICAgIHRoaXMuc2hhZG93Q29udGVudHNbMF0gPSBuZXcgRWxl
bWVudCgiZGl2IikKICAgICAgLmluc2VydChuZXcgRWxlbWVudCgiZGl2Iiwge2NsYXNzTmFtZTog
InNoYWRvd19jZW50ZXJfd3JhcHBlciJ9KS5pbnNlcnQobmV3IEVsZW1lbnQoImRpdiIsIHtjbGFz
c05hbWU6ICJuX3NoYWRvdyJ9KSkpCiAgICAgIC5pbnNlcnQobmV3IEVsZW1lbnQoImRpdiIsIHtj
bGFzc05hbWU6ICJzaGFkb3dfcmlnaHQgbmVfc2hhZG93In0pKQogICAgICAuaW5zZXJ0KG5ldyBF
bGVtZW50KCJkaXYiLCB7Y2xhc3NOYW1lOiAic2hhZG93X2xlZnQgbndfc2hhZG93In0pKTsKCiAg
ICB0aGlzLnNoYWRvd0NvbnRlbnRzWzFdID0gbmV3IEVsZW1lbnQoImRpdiIpCiAgICAgIC5pbnNl
cnQobmV3IEVsZW1lbnQoImRpdiIsIHtjbGFzc05hbWU6ICJzaGFkb3dfY2VudGVyX3dyYXBwZXIg
Y19zaGFkb3cifSkpCiAgICAgIC5pbnNlcnQobmV3IEVsZW1lbnQoImRpdiIsIHtjbGFzc05hbWU6
ICJzaGFkb3dfcmlnaHQgZV9zaGFkb3cifSkpCiAgICAgIC5pbnNlcnQobmV3IEVsZW1lbnQoImRp
diIsIHtjbGFzc05hbWU6ICJzaGFkb3dfbGVmdCB3X3NoYWRvdyJ9KSk7CiAgICB0aGlzLmNlbnRl
ckVsZW1lbnRzID0gdGhpcy5zaGFkb3dDb250ZW50c1sxXS5jaGlsZEVsZW1lbnRzKCk7CgogICAg
dGhpcy5zaGFkb3dDb250ZW50c1syXSA9IG5ldyBFbGVtZW50KCJkaXYiKQogICAgICAuaW5zZXJ0
KG5ldyBFbGVtZW50KCJkaXYiLCB7Y2xhc3NOYW1lOiAic2hhZG93X2NlbnRlcl93cmFwcGVyIn0p
Lmluc2VydChuZXcgRWxlbWVudCgiZGl2Iiwge2NsYXNzTmFtZTogInNfc2hhZG93In0pKSkKICAg
ICAgLmluc2VydChuZXcgRWxlbWVudCgiZGl2Iiwge2NsYXNzTmFtZTogInNoYWRvd19yaWdodCBz
ZV9zaGFkb3cifSkpCiAgICAgIC5pbnNlcnQobmV3IEVsZW1lbnQoImRpdiIsIHtjbGFzc05hbWU6
ICJzaGFkb3dfbGVmdCBzd19zaGFkb3cifSkpOwoKICAgIHRoaXMuc2hhZG93ID0gbmV3IEVsZW1l
bnQoImRpdiIsIHtjbGFzc05hbWU6ICJzaGFkb3dfY29udGFpbmVyICIgKyB0aGlzLm9wdGlvbnMu
dGhlbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6ICJwb3Np
dGlvbjphYnNvbHV0ZTsgdG9wOi0xMDAwMHB4OyBsZWZ0Oi0xMDAwMHB4OyBkaXNwbGF5Om5vbmU7
IHotaW5kZXg6IiArIHpJbmRleCB9KQogICAgICAuaW5zZXJ0KHRoaXMuc2hhZG93Q29udGVudHNb
MF0pCiAgICAgIC5pbnNlcnQodGhpcy5zaGFkb3dDb250ZW50c1sxXSkKICAgICAgLmluc2VydCh0
aGlzLnNoYWRvd0NvbnRlbnRzWzJdKTsKICB9LAoKICAvLyBDb21wdXRlIHNoYWRvdyBzaXplCiAg
Y29tcHV0ZVNpemU6IGZ1bmN0aW9uKCkgewogICAgaWYgKHRoaXMuZm9jdXNlZFNoYWRvd1NoaWZ0
KQogICAgICByZXR1cm47CiAgICB0aGlzLnNoYWRvdy5zaG93KCk7CgogICAgLy8gVHJpY2sgdG8g
Z2V0IHNoYWRvdyBzaGlmdCBkZXNpZ25lZCBpbiBDU1MgYXMgcGFkZGluZwogICAgdmFyIGNvbnRl
bnQgPSB0aGlzLnNoYWRvd0NvbnRlbnRzWzFdLnNlbGVjdCgiZGl2LmNfc2hhZG93IikuZmlyc3Qo
KTsKICAgIHRoaXMudW5mb2N1c2VkU2hhZG93U2hpZnQgPSB7fTsKICAgIHRoaXMuZm9jdXNlZFNo
YWRvd1NoaWZ0ID0ge307CgogICAgJHcoInRvcCBsZWZ0IGJvdHRvbSByaWdodCIpLmVhY2goZnVu
Y3Rpb24ocG9zKSB7dGhpcy51bmZvY3VzZWRTaGFkb3dTaGlmdFtwb3NdID0gY29udGVudC5nZXRO
dW1TdHlsZSgicGFkZGluZy0iICsgcG9zKSB8fCAwfS5iaW5kKHRoaXMpKTsKICAgIHRoaXMudW5m
b2N1c2VkU2hhZG93U2hpZnQud2lkdGggID0gdGhpcy51bmZvY3VzZWRTaGFkb3dTaGlmdC5sZWZ0
ICsgdGhpcy51bmZvY3VzZWRTaGFkb3dTaGlmdC5yaWdodDsKICAgIHRoaXMudW5mb2N1c2VkU2hh
ZG93U2hpZnQuaGVpZ2h0ID0gdGhpcy51bmZvY3VzZWRTaGFkb3dTaGlmdC50b3AgKyB0aGlzLnVu
Zm9jdXNlZFNoYWRvd1NoaWZ0LmJvdHRvbTsKCiAgICAkdygidG9wIGxlZnQgYm90dG9tIHJpZ2h0
IikuZWFjaChmdW5jdGlvbihwb3MpIHt0aGlzLmZvY3VzZWRTaGFkb3dTaGlmdFtwb3NdID0gY29u
dGVudC5nZXROdW1TdHlsZSgibWFyZ2luLSIgKyBwb3MpIHx8IDB9LmJpbmQodGhpcykpOwogICAg
dGhpcy5mb2N1c2VkU2hhZG93U2hpZnQud2lkdGggID0gdGhpcy5mb2N1c2VkU2hhZG93U2hpZnQu
bGVmdCArIHRoaXMuZm9jdXNlZFNoYWRvd1NoaWZ0LnJpZ2h0OwogICAgdGhpcy5mb2N1c2VkU2hh
ZG93U2hpZnQuaGVpZ2h0ID0gdGhpcy5mb2N1c2VkU2hhZG93U2hpZnQudG9wICsgdGhpcy5mb2N1
c2VkU2hhZG93U2hpZnQuYm90dG9tOwoKICAgIHRoaXMuc2hhZG93U2hpZnQgPSB0aGlzLm9wdGlv
bnMuZm9jdXMgPyB0aGlzLmZvY3VzZWRTaGFkb3dTaGlmdCA6IHRoaXMudW5mb2N1c2VkU2hhZG93
U2hpZnQ7CgogICAgLy8gR2V0IHNoYWRvdyBzaXplCiAgICB0aGlzLnNoYWRvd1NpemUgID0ge3Rv
cDogICAgdGhpcy5zaGFkb3dDb250ZW50c1swXS5jaGlsZEVsZW1lbnRzKClbMV0uZ2V0TnVtU3R5
bGUoImhlaWdodCIpLAogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAgIHRoaXMuc2hhZG93
Q29udGVudHNbMF0uY2hpbGRFbGVtZW50cygpWzFdLmdldE51bVN0eWxlKCJ3aWR0aCIpLAogICAg
ICAgICAgICAgICAgICAgICAgICBib3R0b206IHRoaXMuc2hhZG93Q29udGVudHNbMl0uY2hpbGRF
bGVtZW50cygpWzFdLmdldE51bVN0eWxlKCJoZWlnaHQiKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgcmlnaHQ6ICB0aGlzLnNoYWRvd0NvbnRlbnRzWzBdLmNoaWxkRWxlbWVudHMoKVsyXS5nZXRO
dW1TdHlsZSgid2lkdGgiKX07CgogICAgdGhpcy5zaGFkb3dTaXplLndpZHRoICA9IHRoaXMuc2hh
ZG93U2l6ZS5sZWZ0ICsgdGhpcy5zaGFkb3dTaXplLnJpZ2h0OwogICAgdGhpcy5zaGFkb3dTaXpl
LmhlaWdodCA9IHRoaXMuc2hhZG93U2l6ZS50b3AgKyB0aGlzLnNoYWRvd1NpemUuYm90dG9tOwoK
ICAgIC8vIFJlbW92ZSBwYWRkaW5nCiAgICBjb250ZW50LnNldFN0eWxlKCJwYWRkaW5nOjA7IG1h
cmdpbjowIik7CiAgICB0aGlzLnNoYWRvdy5oaWRlKCk7CiAgfSwKCiAgLy8gVXBkYXRlIHNoYWRv
dyBzaXplIChjYWxsZWQgd2hlbiBpdCBjaGFuZ2VzIGZyb20gZm9jdXNlZCB0byBibHVyIGFuZCB2
aWNlLXZlcnNhKQogIHVwZGF0ZVNoYWRvdzogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnNoYWRvd1No
aWZ0ID0gdGhpcy5vcHRpb25zLmZvY3VzID8gdGhpcy5mb2N1c2VkU2hhZG93U2hpZnQgOiB0aGlz
LnVuZm9jdXNlZFNoYWRvd1NoaWZ0OwogICAgdmFyIHNoYWRvd1N0eWxlID0gdGhpcy5zaGFkb3cu
c3R5bGUsIHBvcyAgPSB0aGlzLmdldEVsZW1lbnRQb3NpdGlvbigpLCBzaXplID0gdGhpcy5lbGVt
ZW50LmdldERpbWVuc2lvbnMoKTsKCiAgICBzaGFkb3dTdHlsZS50b3AgID0gIHBvcy50b3AgICAg
LSB0aGlzLnNoYWRvd1NpemUudG9wICAgKyB0aGlzLnNoYWRvd1NoaWZ0LnRvcCAgICsgJ3B4JzsK
ICAgIHNoYWRvd1N0eWxlLmxlZnQgID0gcG9zLmxlZnQgICAtIHRoaXMuc2hhZG93U2l6ZS5sZWZ0
ICArIHRoaXMuc2hhZG93U2hpZnQubGVmdCAgKyAncHgnOwogICAgc2hhZG93U3R5bGUud2lkdGgg
PSBzaXplLndpZHRoICsgdGhpcy5zaGFkb3dTaXplLndpZHRoIC0gdGhpcy5zaGFkb3dTaGlmdC53
aWR0aCArICJweCI7CiAgICB2YXIgaCA9IHNpemUuaGVpZ2h0IC0gdGhpcy5zaGFkb3dTaGlmdC5o
ZWlnaHQgKyAicHgiOwogICAgdGhpcy5jZW50ZXJFbGVtZW50cy5lYWNoKGZ1bmN0aW9uKGUpIHtl
LnN0eWxlLmhlaWdodCA9IGh9KTsKCiAgICB2YXIgdyA9IHNpemUud2lkdGggKyB0aGlzLnNoYWRv
d1NpemUud2lkdGggLSB0aGlzLnNoYWRvd1NoaWZ0LndpZHRoKyAicHgiOwogICAgdGhpcy5zaGFk
b3dDb250ZW50cy5lYWNoKGZ1bmN0aW9uKGl0ZW0pIHsgaXRlbS5zdHlsZS53aWR0aCA9IHcgfSk7
CiAgfSwKCiAgLy8gR2V0IGVsZW1lbnQgcG9zaXRpb24gaW4gaW50ZWdlciB2YWx1ZXMKICBnZXRF
bGVtZW50UG9zaXRpb246IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHt0b3A6IHRoaXMuZWxlbWVu
dC5nZXROdW1TdHlsZSgidG9wIiksIGxlZnQ6IHRoaXMuZWxlbWVudC5nZXROdW1TdHlsZSgibGVm
dCIpfQogIH0KfSk7LyoqIAogKiBDb3B5cmlnaHQgKGMpIDIwMDYsIERhdmlkIFNwdXJyIChodHRw
Oi8vd3d3LmRlZnVzaW9uLm9yZy51ay8pCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIAogKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CiAqIAogKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiB0aGUgRGF2aWQgU3B1cnIgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
ICogCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICogCiAqIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGlj
ZW5zZXMvYnNkLWxpY2Vuc2UucGhwCiAqIAogKiBTZWUgc2NyaXB0YWN1bG91cy5qcyBmb3IgZnVs
bCBzY3JpcHRhY3Vsb3VzIGxpY2VuY2UKICovCgp2YXIgQ3JvcERyYWdnYWJsZT1DbGFzcy5jcmVh
dGUoKTsKT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKENyb3BEcmFnZ2FibGUucHJvdG90eXBl
LERyYWdnYWJsZS5wcm90b3R5cGUpLHtpbml0aWFsaXplOmZ1bmN0aW9uKF8xKXsKdGhpcy5vcHRp
b25zPU9iamVjdC5leHRlbmQoe2RyYXdNZXRob2Q6ZnVuY3Rpb24oKXsKfX0sYXJndW1lbnRzWzFd
fHx7fSk7CnRoaXMuZWxlbWVudD0kKF8xKTsKdGhpcy5oYW5kbGU9dGhpcy5lbGVtZW50Owp0aGlz
LmRlbHRhPXRoaXMuY3VycmVudERlbHRhKCk7CnRoaXMuZHJhZ2dpbmc9ZmFsc2U7CnRoaXMuZXZl
bnRNb3VzZURvd249dGhpcy5pbml0RHJhZy5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpOwpFdmVu
dC5vYnNlcnZlKHRoaXMuaGFuZGxlLCJtb3VzZWRvd24iLHRoaXMuZXZlbnRNb3VzZURvd24pOwpE
cmFnZ2FibGVzLnJlZ2lzdGVyKHRoaXMpOwp9LGRyYXc6ZnVuY3Rpb24oXzIpewp2YXIgXzM9UG9z
aXRpb24uY3VtdWxhdGl2ZU9mZnNldCh0aGlzLmVsZW1lbnQpOwp2YXIgZD10aGlzLmN1cnJlbnRE
ZWx0YSgpOwpfM1swXS09ZFswXTsKXzNbMV0tPWRbMV07CnZhciBwPVswLDFdLm1hcChmdW5jdGlv
bihpKXsKcmV0dXJuIChfMltpXS1fM1tpXS10aGlzLm9mZnNldFtpXSk7Cn0uYmluZCh0aGlzKSk7
CnRoaXMub3B0aW9ucy5kcmF3TWV0aG9kKHApOwp9fSk7CnZhciBDcm9wcGVyPXt9OwpDcm9wcGVy
LkltZz1DbGFzcy5jcmVhdGUoKTsKQ3JvcHBlci5JbWcucHJvdG90eXBlPXtpbml0aWFsaXplOmZ1
bmN0aW9uKF83LF84KXsKdGhpcy5vcHRpb25zPU9iamVjdC5leHRlbmQoe3JhdGlvRGltOnt4OjAs
eTowfSxtaW5XaWR0aDowLG1pbkhlaWdodDowLGRpc3BsYXlPbkluaXQ6ZmFsc2Usb25FbmRDcm9w
OlByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uLGNhcHR1cmVLZXlzOnRydWUsb25sb2FkQ29vcmRzOm51
bGwsbWF4V2lkdGg6MCxtYXhIZWlnaHQ6MH0sXzh8fHt9KTsKdGhpcy5pbWc9JChfNyk7CnRoaXMu
Y2xpY2tDb29yZHM9e3g6MCx5OjB9Owp0aGlzLmRyYWdnaW5nPWZhbHNlOwp0aGlzLnJlc2l6aW5n
PWZhbHNlOwp0aGlzLmlzV2ViS2l0PS9Lb25xdWVyb3J8U2FmYXJpfEtIVE1MLy50ZXN0KG5hdmln
YXRvci51c2VyQWdlbnQpOwp0aGlzLmlzSUU9L01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2Vu
dCk7CnRoaXMuaXNPcGVyYTg9L09wZXJhXHNbMS04XS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50
KTsKdGhpcy5yYXRpb1g9MDsKdGhpcy5yYXRpb1k9MDsKdGhpcy5hdHRhY2hlZD1mYWxzZTsKdGhp
cy5maXhlZFdpZHRoPSh0aGlzLm9wdGlvbnMubWF4V2lkdGg+MCYmKHRoaXMub3B0aW9ucy5taW5X
aWR0aD49dGhpcy5vcHRpb25zLm1heFdpZHRoKSk7CnRoaXMuZml4ZWRIZWlnaHQ9KHRoaXMub3B0
aW9ucy5tYXhIZWlnaHQ+MCYmKHRoaXMub3B0aW9ucy5taW5IZWlnaHQ+PXRoaXMub3B0aW9ucy5t
YXhIZWlnaHQpKTsKaWYodHlwZW9mIHRoaXMuaW1nPT0idW5kZWZpbmVkIil7CnJldHVybjsKfQpp
Zih0aGlzLm9wdGlvbnMucmF0aW9EaW0ueD4wJiZ0aGlzLm9wdGlvbnMucmF0aW9EaW0ueT4wKXsK
dmFyIF9jPXRoaXMuZ2V0R0NEKHRoaXMub3B0aW9ucy5yYXRpb0RpbS54LHRoaXMub3B0aW9ucy5y
YXRpb0RpbS55KTsKdGhpcy5yYXRpb1g9dGhpcy5vcHRpb25zLnJhdGlvRGltLngvX2M7CnRoaXMu
cmF0aW9ZPXRoaXMub3B0aW9ucy5yYXRpb0RpbS55L19jOwp9CnRoaXMuc3ViSW5pdGlhbGl6ZSgp
OwppZih0aGlzLmltZy5jb21wbGV0ZSl7CnRoaXMub25Mb2FkKCk7Cn1lbHNlewpFdmVudC5vYnNl
cnZlKHRoaXMuaW1nLCJsb2FkIix0aGlzLm9uTG9hZC5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMp
KTsKfQp9LGdldEdDRDpmdW5jdGlvbihhLGIpewppZihiPT0wKXsKcmV0dXJuIGE7Cn0KcmV0dXJu
IHRoaXMuZ2V0R0NEKGIsYSViKTsKfSxvbkxvYWQ6ZnVuY3Rpb24oKXsKdmFyIF9mPSJpbWdDcm9w
XyI7CnZhciBfMTA9dGhpcy5pbWcucGFyZW50Tm9kZTsKdmFyIF8xMT0iIjsKaWYodGhpcy5pc09w
ZXJhOCl7Cl8xMT0iIG9wZXJhOCI7Cn0KdGhpcy5pbWdXcmFwPUJ1aWxkZXIubm9kZSgiZGl2Iix7
ImNsYXNzIjpfZisid3JhcCIrXzExfSk7CnRoaXMubm9ydGg9QnVpbGRlci5ub2RlKCJkaXYiLHsi
Y2xhc3MiOl9mKyJvdmVybGF5ICIrX2YrIm5vcnRoIn0sW0J1aWxkZXIubm9kZSgic3BhbiIpXSk7
CnRoaXMuZWFzdD1CdWlsZGVyLm5vZGUoImRpdiIseyJjbGFzcyI6X2YrIm92ZXJsYXkgIitfZisi
ZWFzdCJ9LFtCdWlsZGVyLm5vZGUoInNwYW4iKV0pOwp0aGlzLnNvdXRoPUJ1aWxkZXIubm9kZSgi
ZGl2Iix7ImNsYXNzIjpfZisib3ZlcmxheSAiK19mKyJzb3V0aCJ9LFtCdWlsZGVyLm5vZGUoInNw
YW4iKV0pOwp0aGlzLndlc3Q9QnVpbGRlci5ub2RlKCJkaXYiLHsiY2xhc3MiOl9mKyJvdmVybGF5
ICIrX2YrIndlc3QifSxbQnVpbGRlci5ub2RlKCJzcGFuIildKTsKdmFyIF8xMj1bdGhpcy5ub3J0
aCx0aGlzLmVhc3QsdGhpcy5zb3V0aCx0aGlzLndlc3RdOwp0aGlzLmRyYWdBcmVhPUJ1aWxkZXIu
bm9kZSgiZGl2Iix7ImNsYXNzIjpfZisiZHJhZ0FyZWEifSxfMTIpOwp0aGlzLmhhbmRsZU49QnVp
bGRlci5ub2RlKCJkaXYiLHsiY2xhc3MiOl9mKyJoYW5kbGUgIitfZisiaGFuZGxlTiJ9KTsKdGhp
cy5oYW5kbGVORT1CdWlsZGVyLm5vZGUoImRpdiIseyJjbGFzcyI6X2YrImhhbmRsZSAiK19mKyJo
YW5kbGVORSJ9KTsKdGhpcy5oYW5kbGVFPUJ1aWxkZXIubm9kZSgiZGl2Iix7ImNsYXNzIjpfZisi
aGFuZGxlICIrX2YrImhhbmRsZUUifSk7CnRoaXMuaGFuZGxlU0U9QnVpbGRlci5ub2RlKCJkaXYi
LHsiY2xhc3MiOl9mKyJoYW5kbGUgIitfZisiaGFuZGxlU0UifSk7CnRoaXMuaGFuZGxlUz1CdWls
ZGVyLm5vZGUoImRpdiIseyJjbGFzcyI6X2YrImhhbmRsZSAiK19mKyJoYW5kbGVTIn0pOwp0aGlz
LmhhbmRsZVNXPUJ1aWxkZXIubm9kZSgiZGl2Iix7ImNsYXNzIjpfZisiaGFuZGxlICIrX2YrImhh
bmRsZVNXIn0pOwp0aGlzLmhhbmRsZVc9QnVpbGRlci5ub2RlKCJkaXYiLHsiY2xhc3MiOl9mKyJo
YW5kbGUgIitfZisiaGFuZGxlVyJ9KTsKdGhpcy5oYW5kbGVOVz1CdWlsZGVyLm5vZGUoImRpdiIs
eyJjbGFzcyI6X2YrImhhbmRsZSAiK19mKyJoYW5kbGVOVyJ9KTsKdGhpcy5zZWxBcmVhPUJ1aWxk
ZXIubm9kZSgiZGl2Iix7ImNsYXNzIjpfZisic2VsQXJlYSJ9LFtCdWlsZGVyLm5vZGUoImRpdiIs
eyJjbGFzcyI6X2YrIm1hcnF1ZWVIb3JpeiAiK19mKyJtYXJxdWVlTm9ydGgifSxbQnVpbGRlci5u
b2RlKCJzcGFuIildKSxCdWlsZGVyLm5vZGUoImRpdiIseyJjbGFzcyI6X2YrIm1hcnF1ZWVWZXJ0
ICIrX2YrIm1hcnF1ZWVFYXN0In0sW0J1aWxkZXIubm9kZSgic3BhbiIpXSksQnVpbGRlci5ub2Rl
KCJkaXYiLHsiY2xhc3MiOl9mKyJtYXJxdWVlSG9yaXogIitfZisibWFycXVlZVNvdXRoIn0sW0J1
aWxkZXIubm9kZSgic3BhbiIpXSksQnVpbGRlci5ub2RlKCJkaXYiLHsiY2xhc3MiOl9mKyJtYXJx
dWVlVmVydCAiK19mKyJtYXJxdWVlV2VzdCJ9LFtCdWlsZGVyLm5vZGUoInNwYW4iKV0pLHRoaXMu
aGFuZGxlTix0aGlzLmhhbmRsZU5FLHRoaXMuaGFuZGxlRSx0aGlzLmhhbmRsZVNFLHRoaXMuaGFu
ZGxlUyx0aGlzLmhhbmRsZVNXLHRoaXMuaGFuZGxlVyx0aGlzLmhhbmRsZU5XLEJ1aWxkZXIubm9k
ZSgiZGl2Iix7ImNsYXNzIjpfZisiY2xpY2tBcmVhIn0pXSk7CnRoaXMuaW1nV3JhcC5hcHBlbmRD
aGlsZCh0aGlzLmltZyk7CnRoaXMuaW1nV3JhcC5hcHBlbmRDaGlsZCh0aGlzLmRyYWdBcmVhKTsK
dGhpcy5kcmFnQXJlYS5hcHBlbmRDaGlsZCh0aGlzLnNlbEFyZWEpOwp0aGlzLmRyYWdBcmVhLmFw
cGVuZENoaWxkKEJ1aWxkZXIubm9kZSgiZGl2Iix7ImNsYXNzIjpfZisiY2xpY2tBcmVhIn0pKTsK
XzEwLmFwcGVuZENoaWxkKHRoaXMuaW1nV3JhcCk7CnRoaXMuc3RhcnREcmFnQmluZD10aGlzLnN0
YXJ0RHJhZy5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpOwpFdmVudC5vYnNlcnZlKHRoaXMuZHJh
Z0FyZWEsIm1vdXNlZG93biIsdGhpcy5zdGFydERyYWdCaW5kKTsKdGhpcy5vbkRyYWdCaW5kPXRo
aXMub25EcmFnLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyk7CkV2ZW50Lm9ic2VydmUoZG9jdW1l
bnQsIm1vdXNlbW92ZSIsdGhpcy5vbkRyYWdCaW5kKTsKdGhpcy5lbmRDcm9wQmluZD10aGlzLmVu
ZENyb3AuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKTsKRXZlbnQub2JzZXJ2ZShkb2N1bWVudCwi
bW91c2V1cCIsdGhpcy5lbmRDcm9wQmluZCk7CnRoaXMucmVzaXplQmluZD10aGlzLnN0YXJ0UmVz
aXplLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyk7CnRoaXMuaGFuZGxlcz1bdGhpcy5oYW5kbGVO
LHRoaXMuaGFuZGxlTkUsdGhpcy5oYW5kbGVFLHRoaXMuaGFuZGxlU0UsdGhpcy5oYW5kbGVTLHRo
aXMuaGFuZGxlU1csdGhpcy5oYW5kbGVXLHRoaXMuaGFuZGxlTlddOwp0aGlzLnJlZ2lzdGVySGFu
ZGxlcyh0cnVlKTsKaWYodGhpcy5vcHRpb25zLmNhcHR1cmVLZXlzKXsKdGhpcy5rZXlzQmluZD10
aGlzLmhhbmRsZUtleXMuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKTsKRXZlbnQub2JzZXJ2ZShk
b2N1bWVudCwia2V5cHJlc3MiLHRoaXMua2V5c0JpbmQpOwp9Cm5ldyBDcm9wRHJhZ2dhYmxlKHRo
aXMuc2VsQXJlYSx7ZHJhd01ldGhvZDp0aGlzLm1vdmVBcmVhLmJpbmRBc0V2ZW50TGlzdGVuZXIo
dGhpcyl9KTsKdGhpcy5zZXRQYXJhbXMoKTsKfSxyZWdpc3RlckhhbmRsZXM6ZnVuY3Rpb24oXzEz
KXsKZm9yKHZhciBpPTA7aTx0aGlzLmhhbmRsZXMubGVuZ3RoO2krKyl7CnZhciBfMTU9JCh0aGlz
LmhhbmRsZXNbaV0pOwppZihfMTMpewp2YXIgXzE2PWZhbHNlOwppZih0aGlzLmZpeGVkV2lkdGgm
JnRoaXMuZml4ZWRIZWlnaHQpewpfMTY9dHJ1ZTsKfWVsc2V7CmlmKHRoaXMuZml4ZWRXaWR0aHx8
dGhpcy5maXhlZEhlaWdodCl7CnZhciBfMTc9XzE1LmNsYXNzTmFtZS5tYXRjaCgvKFtTfE5dW0V8
V10pJC8pOwp2YXIgXzE4PV8xNS5jbGFzc05hbWUubWF0Y2goLyhFfFcpJC8pOwp2YXIgXzE5PV8x
NS5jbGFzc05hbWUubWF0Y2goLyhOfFMpJC8pOwppZihfMTcpewpfMTY9dHJ1ZTsKfWVsc2V7Cmlm
KHRoaXMuZml4ZWRXaWR0aCYmXzE4KXsKXzE2PXRydWU7Cn1lbHNlewppZih0aGlzLmZpeGVkSGVp
Z2h0JiZfMTkpewpfMTY9dHJ1ZTsKfQp9Cn0KfQp9CmlmKF8xNil7Cl8xNS5oaWRlKCk7Cn1lbHNl
ewpFdmVudC5vYnNlcnZlKF8xNSwibW91c2Vkb3duIix0aGlzLnJlc2l6ZUJpbmQpOwp9Cn1lbHNl
ewpfMTUuc2hvdygpOwpFdmVudC5zdG9wT2JzZXJ2aW5nKF8xNSwibW91c2Vkb3duIix0aGlzLnJl
c2l6ZUJpbmQpOwp9Cn0KfSxzZXRQYXJhbXM6ZnVuY3Rpb24oKXsKdGhpcy5pbWdXPXRoaXMuaW1n
LndpZHRoOwp0aGlzLmltZ0g9dGhpcy5pbWcuaGVpZ2h0OwokKHRoaXMubm9ydGgpLnNldFN0eWxl
KHtoZWlnaHQ6MH0pOwokKHRoaXMuZWFzdCkuc2V0U3R5bGUoe3dpZHRoOjAsaGVpZ2h0OjB9KTsK
JCh0aGlzLnNvdXRoKS5zZXRTdHlsZSh7aGVpZ2h0OjB9KTsKJCh0aGlzLndlc3QpLnNldFN0eWxl
KHt3aWR0aDowLGhlaWdodDowfSk7CiQodGhpcy5pbWdXcmFwKS5zZXRTdHlsZSh7IndpZHRoIjp0
aGlzLmltZ1crInB4IiwiaGVpZ2h0Ijp0aGlzLmltZ0grInB4In0pOwokKHRoaXMuc2VsQXJlYSku
aGlkZSgpOwp2YXIgXzFhPXt4MTowLHkxOjAseDI6MCx5MjowfTsKdmFyIF8xYj1mYWxzZTsKaWYo
dGhpcy5vcHRpb25zLm9ubG9hZENvb3JkcyE9bnVsbCl7Cl8xYT10aGlzLmNsb25lQ29vcmRzKHRo
aXMub3B0aW9ucy5vbmxvYWRDb29yZHMpOwpfMWI9dHJ1ZTsKfWVsc2V7CmlmKHRoaXMub3B0aW9u
cy5yYXRpb0RpbS54PjAmJnRoaXMub3B0aW9ucy5yYXRpb0RpbS55PjApewpfMWEueDE9TWF0aC5j
ZWlsKCh0aGlzLmltZ1ctdGhpcy5vcHRpb25zLnJhdGlvRGltLngpLzIpOwpfMWEueTE9TWF0aC5j
ZWlsKCh0aGlzLmltZ0gtdGhpcy5vcHRpb25zLnJhdGlvRGltLnkpLzIpOwpfMWEueDI9XzFhLngx
K3RoaXMub3B0aW9ucy5yYXRpb0RpbS54OwpfMWEueTI9XzFhLnkxK3RoaXMub3B0aW9ucy5yYXRp
b0RpbS55OwpfMWI9dHJ1ZTsKfQp9CnRoaXMuc2V0QXJlYUNvb3JkcyhfMWEsZmFsc2UsZmFsc2Us
MSk7CmlmKHRoaXMub3B0aW9ucy5kaXNwbGF5T25Jbml0JiZfMWIpewp0aGlzLnNlbEFyZWEuc2hv
dygpOwp0aGlzLmRyYXdBcmVhKCk7CnRoaXMuZW5kQ3JvcCgpOwp9CnRoaXMuYXR0YWNoZWQ9dHJ1
ZTsKfSxyZW1vdmU6ZnVuY3Rpb24oKXsKaWYodGhpcy5hdHRhY2hlZCl7CnRoaXMuYXR0YWNoZWQ9
ZmFsc2U7CnRoaXMuaW1nV3JhcC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmltZyx0aGlz
LmltZ1dyYXApOwp0aGlzLmltZ1dyYXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmltZ1dy
YXApOwpFdmVudC5zdG9wT2JzZXJ2aW5nKHRoaXMuZHJhZ0FyZWEsIm1vdXNlZG93biIsdGhpcy5z
dGFydERyYWdCaW5kKTsKRXZlbnQuc3RvcE9ic2VydmluZyhkb2N1bWVudCwibW91c2Vtb3ZlIix0
aGlzLm9uRHJhZ0JpbmQpOwpFdmVudC5zdG9wT2JzZXJ2aW5nKGRvY3VtZW50LCJtb3VzZXVwIix0
aGlzLmVuZENyb3BCaW5kKTsKdGhpcy5yZWdpc3RlckhhbmRsZXMoZmFsc2UpOwppZih0aGlzLm9w
dGlvbnMuY2FwdHVyZUtleXMpewpFdmVudC5zdG9wT2JzZXJ2aW5nKGRvY3VtZW50LCJrZXlwcmVz
cyIsdGhpcy5rZXlzQmluZCk7Cn0KfQp9LHJlc2V0OmZ1bmN0aW9uKCl7CmlmKCF0aGlzLmF0dGFj
aGVkKXsKdGhpcy5vbkxvYWQoKTsKfWVsc2V7CnRoaXMuc2V0UGFyYW1zKCk7Cn0KdGhpcy5lbmRD
cm9wKCk7Cn0saGFuZGxlS2V5czpmdW5jdGlvbihlKXsKdmFyIGRpcj17eDowLHk6MH07CmlmKCF0
aGlzLmRyYWdnaW5nKXsKc3dpdGNoKGUua2V5Q29kZSl7CmNhc2UgKDM3KToKZGlyLng9LTE7CmJy
ZWFrOwpjYXNlICgzOCk6CmRpci55PS0xOwpicmVhazsKY2FzZSAoMzkpOgpkaXIueD0xOwpicmVh
azsKY2FzZSAoNDApOgpkaXIueT0xOwpicmVhazsKfQppZihkaXIueCE9MHx8ZGlyLnkhPTApewpp
ZihlLnNoaWZ0S2V5KXsKZGlyLngqPTEwOwpkaXIueSo9MTA7Cn0KdGhpcy5tb3ZlQXJlYShbdGhp
cy5hcmVhQ29vcmRzLngxK2Rpci54LHRoaXMuYXJlYUNvb3Jkcy55MStkaXIueV0pOwpFdmVudC5z
dG9wKGUpOwp9Cn0KfSxjYWxjVzpmdW5jdGlvbigpewpyZXR1cm4gKHRoaXMuYXJlYUNvb3Jkcy54
Mi10aGlzLmFyZWFDb29yZHMueDEpOwp9LGNhbGNIOmZ1bmN0aW9uKCl7CnJldHVybiAodGhpcy5h
cmVhQ29vcmRzLnkyLXRoaXMuYXJlYUNvb3Jkcy55MSk7Cn0sbW92ZUFyZWE6ZnVuY3Rpb24oXzFl
KXsKdGhpcy5zZXRBcmVhQ29vcmRzKHt4MTpfMWVbMF0seTE6XzFlWzFdLHgyOl8xZVswXSt0aGlz
LmNhbGNXKCkseTI6XzFlWzFdK3RoaXMuY2FsY0goKX0sdHJ1ZSxmYWxzZSk7CnRoaXMuZHJhd0Fy
ZWEoKTsKfSxjbG9uZUNvb3JkczpmdW5jdGlvbihfMWYpewpyZXR1cm4ge3gxOl8xZi54MSx5MTpf
MWYueTEseDI6XzFmLngyLHkyOl8xZi55Mn07Cn0sc2V0QXJlYUNvb3JkczpmdW5jdGlvbihfMjAs
XzIxLF8yMixfMjMsXzI0KXsKaWYoXzIxKXsKdmFyIF8yNT1fMjAueDItXzIwLngxOwp2YXIgXzI2
PV8yMC55Mi1fMjAueTE7CmlmKF8yMC54MTwwKXsKXzIwLngxPTA7Cl8yMC54Mj1fMjU7Cn0KaWYo
XzIwLnkxPDApewpfMjAueTE9MDsKXzIwLnkyPV8yNjsKfQppZihfMjAueDI+dGhpcy5pbWdXKXsK
XzIwLngyPXRoaXMuaW1nVzsKXzIwLngxPXRoaXMuaW1nVy1fMjU7Cn0KaWYoXzIwLnkyPnRoaXMu
aW1nSCl7Cl8yMC55Mj10aGlzLmltZ0g7Cl8yMC55MT10aGlzLmltZ0gtXzI2Owp9Cn1lbHNlewpp
ZihfMjAueDE8MCl7Cl8yMC54MT0wOwp9CmlmKF8yMC55MTwwKXsKXzIwLnkxPTA7Cn0KaWYoXzIw
LngyPnRoaXMuaW1nVyl7Cl8yMC54Mj10aGlzLmltZ1c7Cn0KaWYoXzIwLnkyPnRoaXMuaW1nSCl7
Cl8yMC55Mj10aGlzLmltZ0g7Cn0KaWYoXzIzIT1udWxsKXsKaWYodGhpcy5yYXRpb1g+MCl7CnRo
aXMuYXBwbHlSYXRpbyhfMjAse3g6dGhpcy5yYXRpb1gseTp0aGlzLnJhdGlvWX0sXzIzLF8yNCk7
Cn1lbHNlewppZihfMjIpewp0aGlzLmFwcGx5UmF0aW8oXzIwLHt4OjEseToxfSxfMjMsXzI0KTsK
fQp9CnZhciBfMjc9W3RoaXMub3B0aW9ucy5taW5XaWR0aCx0aGlzLm9wdGlvbnMubWluSGVpZ2h0
XTsKdmFyIF8yOD1bdGhpcy5vcHRpb25zLm1heFdpZHRoLHRoaXMub3B0aW9ucy5tYXhIZWlnaHRd
OwppZihfMjdbMF0+MHx8XzI3WzFdPjB8fF8yOFswXT4wfHxfMjhbMV0+MCl7CnZhciBfMjk9e2Ex
Ol8yMC54MSxhMjpfMjAueDJ9Owp2YXIgXzJhPXthMTpfMjAueTEsYTI6XzIwLnkyfTsKdmFyIF8y
Yj17bWluOjAsbWF4OnRoaXMuaW1nV307CnZhciBfMmM9e21pbjowLG1heDp0aGlzLmltZ0h9Owpp
ZigoXzI3WzBdIT0wfHxfMjdbMV0hPTApJiZfMjIpewppZihfMjdbMF0+MCl7Cl8yN1sxXT1fMjdb
MF07Cn1lbHNlewppZihfMjdbMV0+MCl7Cl8yN1swXT1fMjdbMV07Cn0KfQp9CmlmKChfMjhbMF0h
PTB8fF8yOFswXSE9MCkmJl8yMil7CmlmKF8yOFswXT4wJiZfMjhbMF08PV8yOFsxXSl7Cl8yOFsx
XT1fMjhbMF07Cn1lbHNlewppZihfMjhbMV0+MCYmXzI4WzFdPD1fMjhbMF0pewpfMjhbMF09XzI4
WzFdOwp9Cn0KfQppZihfMjdbMF0+MCl7CnRoaXMuYXBwbHlEaW1SZXN0cmljdGlvbihfMjksXzI3
WzBdLF8yMy54LF8yYiwibWluIik7Cn0KaWYoXzI3WzFdPjEpewp0aGlzLmFwcGx5RGltUmVzdHJp
Y3Rpb24oXzJhLF8yN1sxXSxfMjMueSxfMmMsIm1pbiIpOwp9CmlmKF8yOFswXT4wKXsKdGhpcy5h
cHBseURpbVJlc3RyaWN0aW9uKF8yOSxfMjhbMF0sXzIzLngsXzJiLCJtYXgiKTsKfQppZihfMjhb
MV0+MSl7CnRoaXMuYXBwbHlEaW1SZXN0cmljdGlvbihfMmEsXzI4WzFdLF8yMy55LF8yYywibWF4
Iik7Cn0KXzIwPXt4MTpfMjkuYTEseTE6XzJhLmExLHgyOl8yOS5hMix5MjpfMmEuYTJ9Owp9Cn0K
fQp0aGlzLmFyZWFDb29yZHM9XzIwOwp9LGFwcGx5RGltUmVzdHJpY3Rpb246ZnVuY3Rpb24oXzJk
LHZhbCxfMmYsXzMwLF8zMSl7CnZhciBfMzI7CmlmKF8zMT09Im1pbiIpewpfMzI9KChfMmQuYTIt
XzJkLmExKTx2YWwpOwp9ZWxzZXsKXzMyPSgoXzJkLmEyLV8yZC5hMSk+dmFsKTsKfQppZihfMzIp
ewppZihfMmY9PTEpewpfMmQuYTI9XzJkLmExK3ZhbDsKfWVsc2V7Cl8yZC5hMT1fMmQuYTItdmFs
Owp9CmlmKF8yZC5hMTxfMzAubWluKXsKXzJkLmExPV8zMC5taW47Cl8yZC5hMj12YWw7Cn1lbHNl
ewppZihfMmQuYTI+XzMwLm1heCl7Cl8yZC5hMT1fMzAubWF4LXZhbDsKXzJkLmEyPV8zMC5tYXg7
Cn0KfQp9Cn0sYXBwbHlSYXRpbzpmdW5jdGlvbihfMzMsXzM0LF8zNSxfMzYpewp2YXIgXzM3Owpp
ZihfMzY9PSJOInx8XzM2PT0iUyIpewpfMzc9dGhpcy5hcHBseVJhdGlvVG9BeGlzKHthMTpfMzMu
eTEsYjE6XzMzLngxLGEyOl8zMy55MixiMjpfMzMueDJ9LHthOl8zNC55LGI6XzM0Lnh9LHthOl8z
NS55LGI6XzM1Lnh9LHttaW46MCxtYXg6dGhpcy5pbWdXfSk7Cl8zMy54MT1fMzcuYjE7Cl8zMy55
MT1fMzcuYTE7Cl8zMy54Mj1fMzcuYjI7Cl8zMy55Mj1fMzcuYTI7Cn1lbHNlewpfMzc9dGhpcy5h
cHBseVJhdGlvVG9BeGlzKHthMTpfMzMueDEsYjE6XzMzLnkxLGEyOl8zMy54MixiMjpfMzMueTJ9
LHthOl8zNC54LGI6XzM0Lnl9LHthOl8zNS54LGI6XzM1Lnl9LHttaW46MCxtYXg6dGhpcy5pbWdI
fSk7Cl8zMy54MT1fMzcuYTE7Cl8zMy55MT1fMzcuYjE7Cl8zMy54Mj1fMzcuYTI7Cl8zMy55Mj1f
MzcuYjI7Cn0KfSxhcHBseVJhdGlvVG9BeGlzOmZ1bmN0aW9uKF8zOCxfMzksXzNhLF8zYil7CnZh
ciBfM2M9T2JqZWN0LmV4dGVuZChfMzgse30pOwp2YXIgXzNkPV8zYy5hMi1fM2MuYTE7CnZhciBf
M2U9TWF0aC5mbG9vcihfM2QqXzM5LmIvXzM5LmEpOwp2YXIgXzNmOwp2YXIgXzQwOwp2YXIgXzQx
PW51bGw7CmlmKF8zYS5iPT0xKXsKXzNmPV8zYy5iMStfM2U7CmlmKF8zZj5fM2IubWF4KXsKXzNm
PV8zYi5tYXg7Cl80MT1fM2YtXzNjLmIxOwp9Cl8zYy5iMj1fM2Y7Cn1lbHNlewpfM2Y9XzNjLmIy
LV8zZTsKaWYoXzNmPF8zYi5taW4pewpfM2Y9XzNiLm1pbjsKXzQxPV8zZitfM2MuYjI7Cn0KXzNj
LmIxPV8zZjsKfQppZihfNDEhPW51bGwpewpfNDA9TWF0aC5mbG9vcihfNDEqXzM5LmEvXzM5LmIp
OwppZihfM2EuYT09MSl7Cl8zYy5hMj1fM2MuYTErXzQwOwp9ZWxzZXsKXzNjLmExPV8zYy5hMT1f
M2MuYTItXzQwOwp9Cn0KcmV0dXJuIF8zYzsKfSxkcmF3QXJlYTpmdW5jdGlvbigpewp2YXIgXzQy
PXRoaXMuY2FsY1coKTsKdmFyIF80Mz10aGlzLmNhbGNIKCk7CnZhciBweD0icHgiOwp2YXIgXzQ1
PVt0aGlzLmFyZWFDb29yZHMueDErcHgsdGhpcy5hcmVhQ29vcmRzLnkxK3B4LF80MitweCxfNDMr
cHgsdGhpcy5hcmVhQ29vcmRzLngyK3B4LHRoaXMuYXJlYUNvb3Jkcy55MitweCwodGhpcy5pbWcu
d2lkdGgtdGhpcy5hcmVhQ29vcmRzLngyKStweCwodGhpcy5pbWcuaGVpZ2h0LXRoaXMuYXJlYUNv
b3Jkcy55MikrcHhdOwp2YXIgXzQ2PXRoaXMuc2VsQXJlYS5zdHlsZTsKXzQ2LmxlZnQ9XzQ1WzBd
OwpfNDYudG9wPV80NVsxXTsKXzQ2LndpZHRoPV80NVsyXTsKXzQ2LmhlaWdodD1fNDVbM107CnZh
ciBfNDc9TWF0aC5jZWlsKChfNDItNikvMikrcHg7CnZhciBfNDg9TWF0aC5jZWlsKChfNDMtNikv
MikrcHg7CnRoaXMuaGFuZGxlTi5zdHlsZS5sZWZ0PV80NzsKdGhpcy5oYW5kbGVFLnN0eWxlLnRv
cD1fNDg7CnRoaXMuaGFuZGxlUy5zdHlsZS5sZWZ0PV80NzsKdGhpcy5oYW5kbGVXLnN0eWxlLnRv
cD1fNDg7CnRoaXMubm9ydGguc3R5bGUuaGVpZ2h0PV80NVsxXTsKdmFyIF80OT10aGlzLmVhc3Qu
c3R5bGU7Cl80OS50b3A9XzQ1WzFdOwpfNDkuaGVpZ2h0PV80NVszXTsKXzQ5LmxlZnQ9XzQ1WzRd
OwpfNDkud2lkdGg9XzQ1WzZdOwp2YXIgXzRhPXRoaXMuc291dGguc3R5bGU7Cl80YS50b3A9XzQ1
WzVdOwpfNGEuaGVpZ2h0PV80NVs3XTsKdmFyIF80Yj10aGlzLndlc3Quc3R5bGU7Cl80Yi50b3A9
XzQ1WzFdOwpfNGIuaGVpZ2h0PV80NVszXTsKXzRiLndpZHRoPV80NVswXTsKdGhpcy5zdWJEcmF3
QXJlYSgpOwp0aGlzLmZvcmNlUmVSZW5kZXIoKTsKfSxmb3JjZVJlUmVuZGVyOmZ1bmN0aW9uKCl7
CmlmKHRoaXMuaXNJRXx8dGhpcy5pc1dlYktpdCl7CnZhciBuPWRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCIgIik7CnZhciBkLGVsLGZpeEVMLGk7CmlmKHRoaXMuaXNJRSl7CmZpeEVsPXRoaXMuc2Vs
QXJlYTsKfWVsc2V7CmlmKHRoaXMuaXNXZWJLaXQpewpmaXhFbD1kb2N1bWVudC5nZXRFbGVtZW50
c0J5Q2xhc3NOYW1lKCJpbWdDcm9wX21hcnF1ZWVTb3V0aCIsdGhpcy5pbWdXcmFwKVswXTsKZD1C
dWlsZGVyLm5vZGUoImRpdiIsIiIpOwpkLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7CnZhciBf
NGU9WyJTRSIsIlMiLCJTVyJdOwpmb3IoaT0wO2k8XzRlLmxlbmd0aDtpKyspewplbD1kb2N1bWVu
dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJpbWdDcm9wX2hhbmRsZSIrXzRlW2ldLHRoaXMuc2Vs
QXJlYSlbMF07CmlmKGVsLmNoaWxkTm9kZXMubGVuZ3RoKXsKZWwucmVtb3ZlQ2hpbGQoZWwuY2hp
bGROb2Rlc1swXSk7Cn0KZWwuYXBwZW5kQ2hpbGQoZCk7Cn0KfQp9CmZpeEVsLmFwcGVuZENoaWxk
KG4pOwpmaXhFbC5yZW1vdmVDaGlsZChuKTsKfQp9LHN0YXJ0UmVzaXplOmZ1bmN0aW9uKGUpewp0
aGlzLnN0YXJ0Q29vcmRzPXRoaXMuY2xvbmVDb29yZHModGhpcy5hcmVhQ29vcmRzKTsKdGhpcy5y
ZXNpemluZz10cnVlOwp0aGlzLnJlc2l6ZUhhbmRsZT1FdmVudC5lbGVtZW50KGUpLmNsYXNzTmFt
ZXMoKS50b1N0cmluZygpLnJlcGxhY2UoLyhbXk58TkV8RXxTRXxTfFNXfFd8TlddKSsvLCIiKTsK
RXZlbnQuc3RvcChlKTsKfSxzdGFydERyYWc6ZnVuY3Rpb24oZSl7CnRoaXMuc2VsQXJlYS5zaG93
KCk7CnRoaXMuY2xpY2tDb29yZHM9dGhpcy5nZXRDdXJQb3MoZSk7CnRoaXMuc2V0QXJlYUNvb3Jk
cyh7eDE6dGhpcy5jbGlja0Nvb3Jkcy54LHkxOnRoaXMuY2xpY2tDb29yZHMueSx4Mjp0aGlzLmNs
aWNrQ29vcmRzLngseTI6dGhpcy5jbGlja0Nvb3Jkcy55fSxmYWxzZSxmYWxzZSxudWxsKTsKdGhp
cy5kcmFnZ2luZz10cnVlOwp0aGlzLm9uRHJhZyhlKTsKRXZlbnQuc3RvcChlKTsKfSxnZXRDdXJQ
b3M6ZnVuY3Rpb24oZSl7CnZhciBlbD10aGlzLmltZ1dyYXAsd3JhcE9mZnNldHM9UG9zaXRpb24u
Y3VtdWxhdGl2ZU9mZnNldChlbCk7CndoaWxlKGVsLm5vZGVOYW1lIT0iQk9EWSIpewp3cmFwT2Zm
c2V0c1sxXS09ZWwuc2Nyb2xsVG9wfHwwOwp3cmFwT2Zmc2V0c1swXS09ZWwuc2Nyb2xsTGVmdHx8
MDsKZWw9ZWwucGFyZW50Tm9kZTsKfQpyZXR1cm4gY3VyUG9zPXt4OkV2ZW50LnBvaW50ZXJYKGUp
LXdyYXBPZmZzZXRzWzBdLHk6RXZlbnQucG9pbnRlclkoZSktd3JhcE9mZnNldHNbMV19Owp9LG9u
RHJhZzpmdW5jdGlvbihlKXsKaWYodGhpcy5kcmFnZ2luZ3x8dGhpcy5yZXNpemluZyl7CnZhciBf
NTQ9bnVsbDsKdmFyIF81NT10aGlzLmdldEN1clBvcyhlKTsKdmFyIF81Nj10aGlzLmNsb25lQ29v
cmRzKHRoaXMuYXJlYUNvb3Jkcyk7CnZhciBfNTc9e3g6MSx5OjF9OwppZih0aGlzLmRyYWdnaW5n
KXsKaWYoXzU1Lng8dGhpcy5jbGlja0Nvb3Jkcy54KXsKXzU3Lng9LTE7Cn0KaWYoXzU1Lnk8dGhp
cy5jbGlja0Nvb3Jkcy55KXsKXzU3Lnk9LTE7Cn0KdGhpcy50cmFuc2Zvcm1Db29yZHMoXzU1Lngs
dGhpcy5jbGlja0Nvb3Jkcy54LF81NiwieCIpOwp0aGlzLnRyYW5zZm9ybUNvb3JkcyhfNTUueSx0
aGlzLmNsaWNrQ29vcmRzLnksXzU2LCJ5Iik7Cn1lbHNlewppZih0aGlzLnJlc2l6aW5nKXsKXzU0
PXRoaXMucmVzaXplSGFuZGxlOwppZihfNTQubWF0Y2goL0UvKSl7CnRoaXMudHJhbnNmb3JtQ29v
cmRzKF81NS54LHRoaXMuc3RhcnRDb29yZHMueDEsXzU2LCJ4Iik7CmlmKF81NS54PHRoaXMuc3Rh
cnRDb29yZHMueDEpewpfNTcueD0tMTsKfQp9ZWxzZXsKaWYoXzU0Lm1hdGNoKC9XLykpewp0aGlz
LnRyYW5zZm9ybUNvb3JkcyhfNTUueCx0aGlzLnN0YXJ0Q29vcmRzLngyLF81NiwieCIpOwppZihf
NTUueDx0aGlzLnN0YXJ0Q29vcmRzLngyKXsKXzU3Lng9LTE7Cn0KfQp9CmlmKF81NC5tYXRjaCgv
Ti8pKXsKdGhpcy50cmFuc2Zvcm1Db29yZHMoXzU1LnksdGhpcy5zdGFydENvb3Jkcy55MixfNTYs
InkiKTsKaWYoXzU1Lnk8dGhpcy5zdGFydENvb3Jkcy55Mil7Cl81Ny55PS0xOwp9Cn1lbHNlewpp
ZihfNTQubWF0Y2goL1MvKSl7CnRoaXMudHJhbnNmb3JtQ29vcmRzKF81NS55LHRoaXMuc3RhcnRD
b29yZHMueTEsXzU2LCJ5Iik7CmlmKF81NS55PHRoaXMuc3RhcnRDb29yZHMueTEpewpfNTcueT0t
MTsKfQp9Cn0KfQp9CnRoaXMuc2V0QXJlYUNvb3JkcyhfNTYsZmFsc2UsZS5zaGlmdEtleSxfNTcs
XzU0KTsKdGhpcy5kcmF3QXJlYSgpOwpFdmVudC5zdG9wKGUpOwp9Cn0sdHJhbnNmb3JtQ29vcmRz
OmZ1bmN0aW9uKF81OCxfNTksXzVhLF81Yil7CnZhciBfNWM9W181OCxfNTldOwppZihfNTg+XzU5
KXsKXzVjLnJldmVyc2UoKTsKfQpfNWFbXzViKyIxIl09XzVjWzBdOwpfNWFbXzViKyIyIl09XzVj
WzFdOwp9LGVuZENyb3A6ZnVuY3Rpb24oKXsKdGhpcy5kcmFnZ2luZz1mYWxzZTsKdGhpcy5yZXNp
emluZz1mYWxzZTsKdGhpcy5vcHRpb25zLm9uRW5kQ3JvcCh0aGlzLmFyZWFDb29yZHMse3dpZHRo
OnRoaXMuY2FsY1coKSxoZWlnaHQ6dGhpcy5jYWxjSCgpfSk7Cn0sc3ViSW5pdGlhbGl6ZTpmdW5j
dGlvbigpewp9LHN1YkRyYXdBcmVhOmZ1bmN0aW9uKCl7Cn19OwpDcm9wcGVyLkltZ1dpdGhQcmV2
aWV3PUNsYXNzLmNyZWF0ZSgpOwpPYmplY3QuZXh0ZW5kKE9iamVjdC5leHRlbmQoQ3JvcHBlci5J
bWdXaXRoUHJldmlldy5wcm90b3R5cGUsQ3JvcHBlci5JbWcucHJvdG90eXBlKSx7c3ViSW5pdGlh
bGl6ZTpmdW5jdGlvbigpewp0aGlzLmhhc1ByZXZpZXdJbWc9ZmFsc2U7CmlmKHR5cGVvZiAodGhp
cy5vcHRpb25zLnByZXZpZXdXcmFwKSE9InVuZGVmaW5lZCImJnRoaXMub3B0aW9ucy5taW5XaWR0
aD4wJiZ0aGlzLm9wdGlvbnMubWluSGVpZ2h0PjApewp0aGlzLnByZXZpZXdXcmFwPSQodGhpcy5v
cHRpb25zLnByZXZpZXdXcmFwKTsKdGhpcy5wcmV2aWV3SW1nPXRoaXMuaW1nLmNsb25lTm9kZShm
YWxzZSk7CnRoaXMucHJldmlld0ltZy5pZD0iaW1nQ3JvcF8iK3RoaXMucHJldmlld0ltZy5pZDsK
dGhpcy5vcHRpb25zLmRpc3BsYXlPbkluaXQ9dHJ1ZTsKdGhpcy5oYXNQcmV2aWV3SW1nPXRydWU7
CnRoaXMucHJldmlld1dyYXAuYWRkQ2xhc3NOYW1lKCJpbWdDcm9wX3ByZXZpZXdXcmFwIik7CnRo
aXMucHJldmlld1dyYXAuc2V0U3R5bGUoe3dpZHRoOnRoaXMub3B0aW9ucy5taW5XaWR0aCsicHgi
LGhlaWdodDp0aGlzLm9wdGlvbnMubWluSGVpZ2h0KyJweCJ9KTsKdGhpcy5wcmV2aWV3V3JhcC5h
cHBlbmRDaGlsZCh0aGlzLnByZXZpZXdJbWcpOwp9Cn0sc3ViRHJhd0FyZWE6ZnVuY3Rpb24oKXsK
aWYodGhpcy5oYXNQcmV2aWV3SW1nKXsKdmFyIF81ZD10aGlzLmNhbGNXKCk7CnZhciBfNWU9dGhp
cy5jYWxjSCgpOwp2YXIgXzVmPXt4OnRoaXMuaW1nVy9fNWQseTp0aGlzLmltZ0gvXzVlfTsKdmFy
IF82MD17eDpfNWQvdGhpcy5vcHRpb25zLm1pbldpZHRoLHk6XzVlL3RoaXMub3B0aW9ucy5taW5I
ZWlnaHR9Owp2YXIgXzYxPXt3Ok1hdGguY2VpbCh0aGlzLm9wdGlvbnMubWluV2lkdGgqXzVmLngp
KyJweCIsaDpNYXRoLmNlaWwodGhpcy5vcHRpb25zLm1pbkhlaWdodCpfNWYueSkrInB4Iix4OiIt
IitNYXRoLmNlaWwodGhpcy5hcmVhQ29vcmRzLngxL182MC54KSsicHgiLHk6Ii0iK01hdGguY2Vp
bCh0aGlzLmFyZWFDb29yZHMueTEvXzYwLnkpKyJweCJ9Owp2YXIgXzYyPXRoaXMucHJldmlld0lt
Zy5zdHlsZTsKXzYyLndpZHRoPV82MS53OwpfNjIuaGVpZ2h0PV82MS5oOwpfNjIubGVmdD1fNjEu
eDsKXzYyLnRvcD1fNjEueTsKfQp9fSk7CgovKgokSWQ6IHRleHQuanMgNTQ2NCAyMDA4LTA5LTIx
IDIyOjE2OjQyWiBzYW50ZXAgJAooYykgMjAwOCBUaGUgTmV3IFlvcmsgVGltZXMgQ29tcGFueQoq
LwoKVGltZXNQZW9wbGUuVGV4dCA9IHsKICBpbmZvVGl0bGU6ICdKb2luIHRoZSBuZXR3b3JrIG9m
IFRpbWVzIHJlYWRlcnMhJywKICBpbmZvVGV4dDogJ0ZvbGxvdyBmcmllbmRzLCBjby13b3JrZXJz
LCBqb3VybmFsaXN0cyBhbmQgb3RoZXIgVGltZXMgcmVhZGVycy4gRGlzY292ZXIgYW5kIHNoYXJl
IGFydGljbGVzLCBibG9nIHBvc3RzLCBtdWx0aW1lZGlhIGFuZCByZWFkZXIgY29tbWVudHMuIDxh
IGhyZWY9Imh0dHA6Ly90aW1lc3Blb3BsZS5ueXRpbWVzLmNvbS9wYWNrYWdlcy9odG1sL3RpbWVz
cGVvcGxlL2ZhcS8iIHRpdGxlPSJUaW1lc1Blb3BsZSBGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9u
cyI+UmVhZCB0aGUgVGltZXNQZW9wbGUgRkFRPC9hPiB0byBsZWFybiBtb3JlLiA8YnI+PGJyPkFs
cmVhZHkgIGEgbWVtYmVyIG9mIFRpbWVzUGVvcGxlPyBMb2cgaW4gbm93LiBOb3QgeWV0IGEgbWVt
YmVyPyBSZWdpc3RlciBub3cuJywKICBsb2dpblRpdGxlOiAnTG9naW4nLAogIGxvZ2luVGV4dDog
J0VudGVyIHRoZSBlLW1haWwgYWRkcmVzcyBhbmQgcGFzc3dvcmQgeW91IHVzZSB0byBsb2cgaW4g
dG8gTllUaW1lcy5jb20uIE5vdCBhbiBOWVRpbWVzLmNvbSBtZW1iZXIgeWV0PyA8YSAgY2xhc3M9
IlRQX3JlZ2lzdGVyX2xpbmsiPlJlZ2lzdGVyPC9hPi4nLAogIG1lbWJlclNpZ25VcFRpdGxlOiAn
U2lnbiBVcCBmb3IgVGltZXNQZW9wbGUnLAogIG1lbWJlclNpZ25VcFRleHQ6ICdFbnRlciBhIG5h
bWUgYW5kIGxvY2F0aW9uIHRoYXQgd2lsbCBoZWxwIG90aGVyIHJlYWRlcnMgZmluZCB5b3UuJywK
ICBndWVzdFNpZ251cFRpdGxlOiAnUmVnaXN0ZXIgZm9yIFRpbWVzUGVvcGxlIGFuZCBOWVRpbWVz
LmNvbScsCiAgZ3Vlc3RTaWdudXBUZXh0OiAnTm90IGFuIE5ZVGltZXMuY29tIG1lbWJlciB5ZXQ/
IEdldCBhIGZyZWUgVGltZXNQZW9wbGUgbWVtYmVyc2hpcCBhbmQgYWNjZXNzIHRvIE5ZVGltZXMu
Y29tLiBBbHJlYWR5IGFuIE5ZVGltZXMuY29tIG1lbWJlcj8gPGEgIGNsYXNzPSJUUF9sb2dpbl9s
aW5rIj5Mb2cgaW48L2E+LicsCiAgc2hhcmluZ1RleHQ6ICdXaGVuIHlvdSBzaGFyZSB5b3VyIGFj
dGl2aXR5LCBvdGhlciBtZW1iZXJzIHdpbGwgYmUgYWJsZSB0byBzZWUgeW91ciByZWNvbW1lbmRh
dGlvbnMsIGNvbW1lbnRzLCByYXRpbmdzIGFuZCBtb3JlLiAgPGEgaHJlZj0iaHR0cDovL3RpbWVz
cGVvcGxlLm55dGltZXMuY29tL3BhY2thZ2VzL2h0bWwvdGltZXNwZW9wbGUvZmFxLyMxMyIgdGl0
bGU9IlRpbWVzUGVvcGxlIEZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zIj5SZWFkIHRoZSBUaW1l
c1Blb3BsZSBGQVE8L2E+IHRvIGxlYXJuIG1vcmUgYWJvdXQgc2hhcmluZy4nLAogIGltYWdlQ29w
eXJpZ2h0VGV4dDogJ1lvdXIgaW1hZ2UgbXVzdCBjb21wbHkgd2l0aCBvdXIgPGEgaHJlZj0iaHR0
cDovL3d3dy5ueXRpbWVzLmNvbS9yZWYvbWVtYmVyY2VudGVyL2hlbHAvYWdyZWUuaHRtbCNkaXNj
dXNzaW9ucyI+TWVtYmVyIEFncmVlbWVudDwvYT4uIEJ5IGNsaWNraW5nIHNhdmUsIHlvdSBjZXJ0
aWZ5IHRoYXQgeW91IGhhdmUgdGhlIHJpZ2h0IHRvIG1vZGlmeSBhbmQgZGlzdHJpYnV0ZSB0aGlz
IGltYWdlLicsCiAgZmVlZGJhY2tUZXh0OiAnUXVlc3Rpb25zPyBDb21tZW50cz8gPGEgaHJlZj0i
bWFpbHRvOnRpbWVzcGVvcGxlQG55dGltZXMuY29tIj4gQ29udGFjdCB1cy48L2E+IHwgPGEgaHJl
Zj0iaHR0cDovL3RpbWVzcGVvcGxlLm55dGltZXMuY29tL3BhY2thZ2VzL2h0bWwvdGltZXNwZW9w
bGUvZmFxLyMzIiB0aXRsZT0iVGltZXNQZW9wbGUgUHJpdmFjeSBQb2xpY3kiPlByaXZhY3kgUG9s
aWN5PC9hPicsCiAgd2VsY29tZVRpdGxlOiAnV2VsY29tZSB0byBUaW1lc1Blb3BsZSEnLAogIHdl
bGNvbWVUZXh0OiAnTm93IHlvdSBjYW4gc2hhcmUgcmVjb21tZW5kYXRpb25zLCByYXRpbmdzIGFu
ZCBjb21tZW50cyB3aXRoIG90aGVyIE5ldyBZb3JrIFRpbWVzIHJlYWRlcnMuPGJyPjxicj4gVG8g
c3RhcnQgYnVpbGRpbmcgeW91ciBuZXR3b3JrLCB5b3UgY2FuIHNlYXJjaCBmb3Igb3RoZXIgbWVt
YmVycywgc2VsZWN0IGZyb20gYSBsaXN0IG9mIHN1Z2dlc3RlZCB1c2Vycywgb3IgaW1wb3J0IHlv
dXIgZS1tYWlsIGNvbnRhY3RzLicsCiAgc2VhcmNoVGl0bGU6ICdTZWFyY2ggZm9yIFBlb3BsZScs
CiAgYWRUZXh0OiAnPGlmcmFtZSBjbGFzcz0iVFBfdGlsZV9hZCIgd2lkdGg9Ijg4IiBoZWlnaHQ9
IjMxIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIiBmcmFtZWJvcmRlcj0iMCIgc2Ny
b2xsaW5nPSJubyIgc3JjPSInK1RQQ09ORklHLmFkX2hvc3QrJy9wYWNrYWdlcy9odG1sL3RpbWVz
cGVvcGxlL2FkLmh0bWwiPjwvaWZyYW1lPicsCiAgc2hhcmluZ05vdGljZVRleHQ6ICdXaGVuIHlv
dSB0dXJuIHNoYXJpbmcgYmFjayBvbiwgb3RoZXIgbWVtYmVycyB3aWxsIGJlIGFibGUgdG8gc2Vl
IHlvdXIgcmVjb21tZW5kYXRpb25zLCBjb21tZW50cywgcmF0aW5ncyBhbmQgb3RoZXIgYWN0aXZp
dHkg4oCUIGV2ZW4gYWN0aXZpdGllcyB0aGF0IG9jY3VycmVkIHdoaWxlIHNoYXJpbmcgd2FzIHR1
cm5lZCBvZmYuIFlvdSBjYW4gcmVtb3ZlIHNwZWNpZmljIGl0ZW1zIGZyb20geW91ciBwdWJsaWMg
YWN0aXZpdGllcyBmZWVkIGJ5IGNsaWNraW5nIHRoZSAiWCIgbmV4dCB0byBhbiBpdGVtIG9uIHRo
ZSBNeSBBY3Rpdml0aWVzIHBhZ2UuJywKICBmYXFBbmRQcml2YWN5TGlua3M6ICc8YSBocmVmPSJo
dHRwOi8vdGltZXNwZW9wbGUubnl0aW1lcy5jb20vcGFja2FnZXMvaHRtbC90aW1lc3Blb3BsZS9m
YXEvIiB0aXRsZT0iVGltZXNQZW9wbGUgRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnMiPkZBUTwv
YT4gfCA8YSBocmVmPSJodHRwOi8vdGltZXNwZW9wbGUubnl0aW1lcy5jb20vcGFja2FnZXMvaHRt
bC90aW1lc3Blb3BsZS9mYXEvIzMiIHRpdGxlPSJUaW1lc1Blb3BsZSBQcml2YWN5IFBvbGljeSI+
UHJpdmFjeSBQb2xpY3k8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9yZWYv
bWVtYmVyY2VudGVyL2hlbHAvYWdyZWUuaHRtbCNkaXNjdXNzaW9ucyI+TWVtYmVyIEFncmVlbWVu
dDwvYT4nCn07LyoKJElkOiB1c2VyLmpzIDYxMzMgMjAwOC0xMC0yNyAxNjowNzo0NFogc2FudGVw
ICQKKGMpIDIwMDggVGhlIE5ldyBZb3JrIFRpbWVzIENvbXBhbnkKKi8KLy8gdGhlIGN1cnJlbnQg
dXNlcgpUaW1lc1Blb3BsZS5Vc2VyID0gQ2xhc3MuY3JlYXRlKHsKCiAgaW5pdGlhbGl6ZTogZnVu
Y3Rpb24oKSB7CiAgICBpZiAoVGltZXNQZW9wbGUuVXNlci5jYWxsZXIgIT0gVGltZXNQZW9wbGUu
VXNlci5nZXRJbnN0YW5jZSkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGlzIG5vIHB1
YmxpYyBjb25zdHJ1Y3RvciBmb3IgVGltZXNQZW9wbGUuVXNlci4iKTsKICAgIH0KICAgIAogICAg
dGhpcy5uZXdSZWNvcmQgPSB0cnVlOwogICAgdGhpcy5wdWJsaXNoZXIgPSBuZXcgTllURC5FdmVu
dFB1Ymxpc2hlcigpOwogICAgdGhpcy5hdHRyaWJ1dGVzID0gewogICAgICB1c2VycGFnZTogVFBD
T05GSUcuaG9zdCArICcvdmlldy91c2VyLycsCiAgICAgIGZyaWVuZHM6IFtdCiAgICB9OwogICAg
dGhpcy51c2VyQWN0aW9ucyA9IHt9OwogICAgdGhpcy5mcmllbmRzQWN0aW9ucyA9IHt9OwogIH0s
CiAgCiAgcmVnaXN0ZXI6IGZ1bmN0aW9uKG9ic2VydmVyKSB7CiAgICB0aGlzLnB1Ymxpc2hlci5y
ZWdpc3RlcihvYnNlcnZlcik7CiAgfSwKICAKICB1bnJlZ2lzdGVyOiBmdW5jdGlvbihvYnNlcnZl
cikgewogICAgdGhpcy5wdWJsaXNoZXIudW5yZWdpc3RlcihvYnNlcnZlcik7CiAgfSwKCiAgbG9n
aW46IGZ1bmN0aW9uKGNyZWRlbnRpYWxzKSB7CiAgICB2YXIgdXJsID0gVFBDT05GSUcuc2Vydmlj
ZSArICc/bW9kZT1sb2dpblVzZXInOwogICAgdmFyIGluc3RhbmNlID0gdGhpczsKICAgIG5ldyBU
aW1lc1Blb3BsZS5BamF4LlJlcXVlc3QodXJsLCB7CiAgICAgIG1ldGhvZDogJ3Bvc3QnLAogICAg
ICBwYXJhbWV0ZXJzOiBPYmplY3QuZXh0ZW5kKGNyZWRlbnRpYWxzLCB7dG9rZW46IFRQQ09ORklH
LnRva2VuLCB2ZXJzaW9uOiBUaW1lc1Blb3BsZS52ZXJzaW9ufSksCiAgICAgIG9uU3VjY2Vzczog
ZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgICAgICBpbnN0YW5jZS5wcm9jZXNzUmVzcG9uc2UocmVz
cG9uc2UpOwogICAgICAgIGluc3RhbmNlLm5ld1JlY29yZCA9IGZhbHNlOwogICAgICAgIGluc3Rh
bmNlLnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMoJ3VzZXIgbG9nZ2VkIGluJywgaW5zdGFuY2Up
OwogICAgICAgIGluc3RhbmNlLnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMoJ2F0dHJpYnV0ZXMg
dXBkYXRlZCcsIGluc3RhbmNlKTsKICAgICAgfSwKICAgICAgb240MDE6IGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7CiAgICAgICAgLy8gYmFkIGxvZ2luL3Bhc3N3b3JkIHNob3VsZCBiZSBoZXJlCiAgICAg
IH0sCiAgICAgIG9uNDAzOiBmdW5jdGlvbihyZXNwb25zZSkgewogICAgICAgIHZhciBkYXRhID0g
cmVzcG9uc2UucmVzcG9uc2VUZXh0LmV2YWxKU09OKCk7CiAgICAgICAgaW5zdGFuY2UudXBkYXRl
KHt1aWQ6ZGF0YS51aWR9KTsKICAgICAgICBpbnN0YW5jZS5yZXF1ZXN0RGVmYXVsdEZlZWQoKTsK
ICAgICAgICBpbnN0YW5jZS5uZXdSZWNvcmQgPSB0cnVlOwogICAgICAgIGluc3RhbmNlLnB1Ymxp
c2hlci5ub3RpZnlPYnNlcnZlcnMoJ3VzZXIgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBpbiBidXQgbm90
IHJlZ2lzdGVyZWQnLCBpbnN0YW5jZSk7CiAgICAgIH0sCiAgICAgIG9uNTAwOiBmdW5jdGlvbihy
ZXNwb25zZSkgewogICAgICAgIHZhciBkYXRhID0gcmVzcG9uc2UucmVzcG9uc2VUZXh0LmV2YWxK
U09OKCk7CiAgICAgICAgY29uc29sZS5lcnJvcihkYXRhLmVycm9yTWVzc2FnZSk7CiAgICAgICAg
aW5zdGFuY2UucHVibGlzaGVyLm5vdGlmeU9ic2VydmVycygndXNlciBsb2dpbiBmYWlsZWQnLCB7
ZXJyb3JzOltkYXRhLmVycm9yc119KTsKICAgICAgfQogICAgfSk7CiAgfSwKCiAgcmVxdWVzdEF0
dHJpYnV0ZXM6IGZ1bmN0aW9uKCkgewogICAgdmFyIHVybCA9IFRQQ09ORklHLnNlcnZpY2UgKyAn
P21vZGU9Z2V0VXNlckluZm8nOwogICAgdmFyIGluc3RhbmNlID0gdGhpczsKICAgIG5ldyBUaW1l
c1Blb3BsZS5BamF4LlJlcXVlc3QodXJsLCB7CiAgICAgIG1ldGhvZDogJ2dldCcsCiAgICAgIG9u
U3VjY2VzczogZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgICAgICBpbnN0YW5jZS5wcm9jZXNzUmVz
cG9uc2UocmVzcG9uc2UpOwogICAgICAgIGluc3RhbmNlLm5ld1JlY29yZCA9IGZhbHNlOwogICAg
ICAgIGluc3RhbmNlLnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMoJ2F0dHJpYnV0ZXMgdXBkYXRl
ZCcsIGluc3RhbmNlKTsKICAgICAgfSwKICAgICAgb240MDE6IGZ1bmN0aW9uKHJlc3BvbnNlKSB7
CiAgICAgICAgaW5zdGFuY2UucmVxdWVzdERlZmF1bHRGZWVkKCk7CiAgICAgICAgaW5zdGFuY2Uu
bmV3UmVjb3JkID0gdHJ1ZTsKICAgICAgICBpbnN0YW5jZS5wdWJsaXNoZXIubm90aWZ5T2JzZXJ2
ZXJzKCdubyB1c2VyIGluZm8nLCBudWxsKTsKICAgICAgfSwKICAgICAgb240MDM6IGZ1bmN0aW9u
KHJlc3BvbnNlKSB7CiAgICAgICAgdmFyIGRhdGEgPSByZXNwb25zZS5yZXNwb25zZVRleHQuZXZh
bEpTT04oKTsKICAgICAgICBpbnN0YW5jZS51cGRhdGUoe3VpZDpkYXRhLnVpZH0pOwogICAgICAg
IGluc3RhbmNlLnJlcXVlc3REZWZhdWx0RmVlZCgpOwogICAgICAgIGluc3RhbmNlLm5ld1JlY29y
ZCA9IHRydWU7CiAgICAgICAgaW5zdGFuY2UucHVibGlzaGVyLm5vdGlmeU9ic2VydmVycygndXNl
ciBub3QgcmVnaXN0ZXJlZCcsIGluc3RhbmNlKTsKICAgICAgfSwKICAgICAgb241MDA6IGZ1bmN0
aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgdGhyb3coJ1NlcnZlciBlcnJvciByZXF1ZXN0aW5nIHVz
ZXIgYXR0cmlidXRlcycpOwogICAgICB9CiAgICB9KTsKICB9LAogIAogIHJlcXVlc3REZWZhdWx0
RmVlZDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmZyaWVuZHNBY3Rpb25zID0gIFRpbWVzUGVvcGxl
LkRlZmF1bHRGZWVkOwogICAgdGhpcy5wdWJsaXNoZXIubm90aWZ5T2JzZXJ2ZXJzKCd1c2VyIGZy
aWVuZHMgYWN0aW9ucyB1cGRhdGVkJyk7CiAgfSwKCiAgcHJvY2Vzc1Jlc3BvbnNlOiBmdW5jdGlv
bihyZXNwb25zZSkgewogICAgdmFyIGRhdGEgPSByZXNwb25zZS5yZXNwb25zZVRleHQuZXZhbEpT
T04oKTsKICAgIC8vVE9ETyBzaG91bGQgdGhpcyBtZXJnZSBvciBvdmVyd3JpdGU/CiAgICB0cnl7
CiAgICAgIGRhdGEudXNlckF0dHJpYnV0ZXMucGljVVJMID0gZGF0YS51c2VyQXR0cmlidXRlcy5w
aWNVUkwgPyBkYXRhLnVzZXJBdHRyaWJ1dGVzLnBpY1VSTCA6IFRQQ09ORklHLmltYWdlX2hvc3Qg
KyBUUENPTkZJRy5pbWFnZV9wYXRoICsgJ25vbmUucG5nJzsKICAgICAgdGhpcy51cGRhdGUoZGF0
YS51c2VyQXR0cmlidXRlcyk7CiAgICAgIHRoaXMudXNlckFjdGlvbnMgPSBkYXRhLnVzZXJBY3Rp
b25zOwogICAgICB0aGlzLmZyaWVuZHNBY3Rpb25zID0gZGF0YS5mcmllbmRzQWN0aW9uczsgICAg
ICAKICAgIH0gY2F0Y2goZSkgewogICAgICBjb25zb2xlLmVycm9yKGUpOwogICAgfQoKICB9LAog
IAogIHVwZGF0ZTogZnVuY3Rpb24oYXR0cmlidXRlcykgewogICAgT2JqZWN0LmV4dGVuZCh0aGlz
LmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXMpOwogIH0sCiAgCiAgc2F2ZTogZnVuY3Rpb24oY2FsbGJh
Y2spIHsKICAgIGlmICghIHRoaXMuaXNWYWxpZCgpKSB7CiAgICAgIHRoaXMucHVibGlzaGVyLm5v
dGlmeU9ic2VydmVycygndXNlciBjb3VsZCBub3QgYmUgc2F2ZWQnLCB7ZXJyb3JzOlt7ImNvZGUi
Om51bGwsIm1lc3NhZ2UiOiJEaXNwbGF5IE5hbWUgY2Fubm90IGJlIGJsYW5rLiIsImZpZWxkIjoi
ZGlzcGxheW5hbWUifV19KTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSBlbHNlIHsKICAgICAg
dmFyIGluc3RhbmNlID0gdGhpczsKICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayB8fCBQcm90b3R5
cGUuZW1wdHlGdW5jdGlvbjsKICAgICAgdmFyIHVybCA9IHRoaXMuYXR0cmlidXRlcy51aWQgPyBU
UENPTkZJRy5zZXJ2aWNlICsgJz9tb2RlPXVwZGF0ZVVzZXInIDogVFBDT05GSUcuc2VydmljZSAr
ICc/bW9kZT1jcmVhdGVVc2VyJzsKICAgICAgdmFyIHVzZXJJbmZvID0gJEgodGhpcy5hdHRyaWJ1
dGVzKTsKICAgICAgdXNlckluZm8udW5zZXQoJ2ZyaWVuZHMnKTsKICAgICAgbmV3IFRpbWVzUGVv
cGxlLkFqYXguUmVxdWVzdCh1cmwsIHsKICAgICAgICBtZXRob2Q6ICdwb3N0JywKICAgICAgICBw
YXJhbWV0ZXJzOiB7dXNlckluZm86IE9iamVjdC50b0pTT04odXNlckluZm8pLCB0b2tlbjogVFBD
T05GSUcudG9rZW4sIHZlcnNpb246IFRpbWVzUGVvcGxlLnZlcnNpb259LAogICAgICAgIG9uU3Vj
Y2VzczogZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdTYXZlZCB1
c2VyIScpOwogICAgICAgICAgaW5zdGFuY2UubmV3UmVjb3JkID0gZmFsc2U7CiAgICAgICAgICBp
ZiAoIWluc3RhbmNlLmF0dHJpYnV0ZXMudWlkKSBpbnN0YW5jZS5wcm9jZXNzUmVzcG9uc2UocmVz
cG9uc2UpOwogICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgIGluc3RhbmNlLnB1Ymxpc2hl
ci5ub3RpZnlPYnNlcnZlcnMoJ3VzZXIgc2F2ZWQnLCBpbnN0YW5jZSk7CiAgICAgICAgfSwKICAg
ICAgICBvbjQwMzogZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgICAgICAgIC8vIFRPRE8KICAgICAg
ICAgIHZhciBkYXRhID0gcmVzcG9uc2UucmVzcG9uc2VUZXh0LmV2YWxKU09OKCk7CiAgICAgICAg
ICBjb25zb2xlLmVycm9yKGRhdGEuZXJyb3JNZXNzYWdlKTsKICAgICAgICB9LAogICAgICAgIG9u
NDEyOiBmdW5jdGlvbihyZXNwb25zZSkgewogICAgICAgICAgLy8gVE9ETwogICAgICAgICAgdmFy
IGRhdGEgPSByZXNwb25zZS5yZXNwb25zZVRleHQuZXZhbEpTT04oKTsKICAgICAgICAgIGNvbnNv
bGUuZXJyb3IoZGF0YS5lcnJvck1lc3NhZ2UpOwogICAgICAgICAgaW5zdGFuY2UucHVibGlzaGVy
Lm5vdGlmeU9ic2VydmVycygndXNlciBjb3VsZCBub3QgYmUgc2F2ZWQnLCBkYXRhKTsKICAgICAg
ICB9LAogICAgICAgIG9uNTAwOiBmdW5jdGlvbihyZXNwb25zZSkgewogICAgICAgICAgLy8gVE9E
TwogICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3Igc2F2aW5nIHVzZXInLCByZXNwb25zZS5y
ZXNwb25zZVRleHQpOwogICAgICAgICAgdmFyIGRhdGEgPSByZXNwb25zZS5yZXNwb25zZVRleHQu
ZXZhbEpTT04oKTsKICAgICAgICAgIGluc3RhbmNlLnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMo
J3VzZXIgY291bGQgbm90IGJlIHNhdmVkJywgZGF0YSk7CiAgICAgICAgfQogICAgICB9KTsKICAg
ICAgCiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgCiAgICBkZWxldGUgdGhpcy5hdHRyaWJ1
dGVzLmVtYWlsOwogICAgZGVsZXRlIHRoaXMuYXR0cmlidXRlcy5wYXNzd29yZDE7CiAgICBkZWxl
dGUgdGhpcy5hdHRyaWJ1dGVzLnBhc3N3b3JkMjsKICB9LAoKICByZXF1ZXN0RnJpZW5kczogZnVu
Y3Rpb24oKSB7CiAgICB2YXIgdXJsID0gVFBDT05GSUcuc2VydmljZSArICc/bW9kZT1nZXRGcmll
bmRzJzsKICAgIHZhciBpbnN0YW5jZSA9IHRoaXM7CiAgICBuZXcgVGltZXNQZW9wbGUuQWpheC5S
ZXF1ZXN0KHVybCwgewogICAgICBtZXRob2Q6ICdnZXQnLAogICAgICBvblN1Y2Nlc3M6IGZ1bmN0
aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgdmFyIGRhdGEgPSByZXNwb25zZS5yZXNwb25zZVRleHQu
ZXZhbEpTT04oKTsKICAgICAgICBkYXRhID0gZGF0YS5jb21wYWN0KCk7CiAgICAgICAgZm9yICh2
YXIgb2JqZWN0cz1bXSwgaT0wLCBsPWRhdGEubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgICAg
ICBvYmplY3RzLnB1c2gobmV3IFRpbWVzUGVvcGxlLlBlcnNvbihkYXRhW2ldKSk7CiAgICAgICAg
fTsKICAgICAgICBpbnN0YW5jZS5wdWJsaXNoZXIubm90aWZ5T2JzZXJ2ZXJzKCdmcmllbmRzIHVw
ZGF0ZWQnLCBvYmplY3RzKTsKICAgICAgfQogICAgfSk7CiAgfSwKICAKICBhZGRGcmllbmQ6IGZ1
bmN0aW9uKHVpZCkgewogICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMuZnJpZW5kcy5pbmNsdWRlKHVp
ZCkpIHsKICAgICAgdGhpcy5hdHRyaWJ1dGVzLmZyaWVuZHMucHVzaCh1aWQpOwogICAgICB2YXIg
dXJsID0gVFBDT05GSUcuc2VydmljZSArICc/bW9kZT1hZGRGcmllbmRzJzsKICAgICAgdmFyIGlu
c3RhbmNlID0gdGhpczsKICAgIAogICAgICBuZXcgVGltZXNQZW9wbGUuQWpheC5SZXF1ZXN0KHVy
bCwgewogICAgICAgIG1ldGhvZDogJ3Bvc3QnLAogICAgICAgIHBhcmFtZXRlcnM6IHtmcmllbmRz
OiBPYmplY3QudG9KU09OKFt1aWRdKX0sCiAgICAgICAgb25TdWNjZXNzOiBmdW5jdGlvbihyZXNw
b25zZSkgewogICAgICAgICAgY29uc29sZS5sb2coJ1NhdmVkIHVzZXIhJyk7CiAgICAgICAgICBp
bnN0YW5jZS5wdWJsaXNoZXIubm90aWZ5T2JzZXJ2ZXJzKCd1c2VyIHNhdmVkJywgaW5zdGFuY2Up
OwogICAgICAgICAgaW5zdGFuY2UucHVibGlzaGVyLm5vdGlmeU9ic2VydmVycygnZnJpZW5kIGFk
ZGVkJywgdWlkKTsKICAgICAgICB9LAogICAgICAgIG9uNDAzOiBmdW5jdGlvbihyZXNwb25zZSkg
ewogICAgICAgICAgLy8gVE9ETwogICAgICAgIH0sCiAgICAgICAgb240MTI6IGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CiAgICAgICAgICAvLyBUT0RPCiAgICAgICAgfSwKICAgICAgICBvbjUwMDogZnVu
Y3Rpb24ocmVzcG9uc2UpIHsKICAgICAgICAgIC8vIFRPRE8KICAgICAgICB9CiAgICAgIH0pOwog
ICAgfQogIH0sCiAgCiAgcmVtb3ZlRnJpZW5kOiBmdW5jdGlvbih1aWQpIHsKICAgIHRoaXMuYXR0
cmlidXRlcy5mcmllbmRzID0gdGhpcy5hdHRyaWJ1dGVzLmZyaWVuZHMud2l0aG91dCh1aWQpOwog
ICAgdmFyIHVybCA9IFRQQ09ORklHLnNlcnZpY2UgKyAnP21vZGU9ZGVsZXRlRnJpZW5kcyc7CiAg
ICB2YXIgaW5zdGFuY2UgPSB0aGlzOwogIAogICAgbmV3IFRpbWVzUGVvcGxlLkFqYXguUmVxdWVz
dCh1cmwsIHsKICAgICAgbWV0aG9kOiAncG9zdCcsCiAgICAgIHBhcmFtZXRlcnM6IHtmcmllbmRz
OiBPYmplY3QudG9KU09OKFt1aWRdKX0sCiAgICAgIG9uU3VjY2VzczogZnVuY3Rpb24ocmVzcG9u
c2UpIHsKICAgICAgICBjb25zb2xlLmxvZygnU2F2ZWQgdXNlciEnKTsKICAgICAgICBpbnN0YW5j
ZS5wdWJsaXNoZXIubm90aWZ5T2JzZXJ2ZXJzKCd1c2VyIHNhdmVkJywgaW5zdGFuY2UpOwogICAg
ICAgIGluc3RhbmNlLnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMoJ2ZyaWVuZCByZW1vdmVkJywg
dWlkKTsKICAgICAgfSwKICAgICAgb240MDM6IGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAg
Ly8gVE9ETwogICAgICB9LAogICAgICBvbjQxMjogZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgICAg
ICAvLyBUT0RPCiAgICAgIH0sCiAgICAgIG9uNTAwOiBmdW5jdGlvbihyZXNwb25zZSkgewogICAg
ICAgIC8vIFRPRE8KICAgICAgfQogICAgfSk7CiAgfSwKICAKICB1cGRhdGVJbWFnZTogZnVuY3Rp
b24oKSB7CiAgICB0aGlzLmF0dHJpYnV0ZXMucGljVVJMID0gKHRoaXMuaW1hZ2VQYXRoKCkgKyAn
L2Nyb3BwZWQtI3t1aWR9LmpwZz8nICAgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkpLmludGVy
cG9sYXRlKHRoaXMuYXR0cmlidXRlcyk7CiAgICB0aGlzLnNhdmUoKTsKICAgIHRoaXMucHVibGlz
aGVyLm5vdGlmeU9ic2VydmVycy5iaW5kKHRoaXMucHVibGlzaGVyKS5kZWxheSgxLCAndXNlciBp
bWFnZSB1cGRhdGVkJywgdGhpcyk7CiAgfSwKICAKICB1cGRhdGVGdWxsU2l6ZUltYWdlOiBmdW5j
dGlvbigpIHsKICAgIHRoaXMuYXR0cmlidXRlcy5mdWxscGljVVJMID0gKHRoaXMuaW1hZ2VQYXRo
KCkgKyAnL3VuY3JvcHBlZC0je3VpZH0uanBnPycgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkp
LmludGVycG9sYXRlKHRoaXMuYXR0cmlidXRlcyk7CiAgICB0aGlzLnNhdmUoKTsKCiAgICB0aGlz
LnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMuYmluZCh0aGlzLnB1Ymxpc2hlcikuZGVsYXkoMSwg
J3VzZXIgZnVsbCBzaXplIGltYWdlIHVwZGF0ZWQnLCB0aGlzKTsKICB9LAogIAogIGlzVGltZXNQ
ZW9wbGVNZW1iZXI6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIE9iamVjdC5pc051bWJlcih0aGlz
LmF0dHJpYnV0ZXMudWlkKSAmJiAhIHRoaXMuYXR0cmlidXRlcy5kaXNwbGF5bmFtZS5ibGFuaygp
OwogIH0sCiAgCiAgaXNOWVRNZW1iZXI6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIE9iamVjdC5p
c051bWJlcih0aGlzLmF0dHJpYnV0ZXMudWlkKTsKICB9LAogIAogIGlzTmV3TWVtYmVyOiBmdW5j
dGlvbigpIHsKICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMuZnJpZW5kcy5sZW5ndGggPT0gMDsK
ICB9LAogIAogIGlzVmFsaWQ6IGZ1bmN0aW9uKCkgewogICBpZignZGlzcGxheW5hbWUnIGluIHRo
aXMuYXR0cmlidXRlcykgewogICAgIHJldHVybiBPYmplY3QuaXNTdHJpbmcodGhpcy5hdHRyaWJ1
dGVzLmRpc3BsYXluYW1lKSAmJgogICAgICAgICAgICAhdGhpcy5hdHRyaWJ1dGVzLmRpc3BsYXlu
YW1lLmJsYW5rKCk7CiAgIH0gZWxzZSB7CiAgICAgcmV0dXJuIHRydWU7CiAgIH0KICB9LAogIAog
IGdldEltcG9ydFBhZ2VVUkk6IGZ1bmN0aW9uKCkgewogICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMu
dWlkKSByZXR1cm47CiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLnVzZXJwYWdlICsgdGhpcy5h
dHRyaWJ1dGVzLnVpZCArICcvZmluZGltcG9ydC5odG1sJzsKICB9LAogIAogIGdldFN1Z2dlc3Rp
b25zUGFnZVVSSTogZnVuY3Rpb24oKSB7CiAgICBpZiAoIXRoaXMuYXR0cmlidXRlcy51aWQpIHJl
dHVybjsKICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMudXNlcnBhZ2UgKyB0aGlzLmF0dHJpYnV0
ZXMudWlkICsgJy9maW5kc3VnZ2VzdC5odG1sJzsKICB9LAogIAogIGltYWdlUGF0aDogZnVuY3Rp
b24oKSB7CiAgICByZXR1cm4gVGltZXNQZW9wbGUuVXNlci5pbWFnZUhvc3QgKyAnLycgKyBUaW1l
c1Blb3BsZS5Vc2VyLmlkVG9QYXJ0aXRpb25lZFBhdGgodGhpcy5hdHRyaWJ1dGVzLnVpZCk7CiAg
fQogIAp9KTsKCgoKLy8gY2xhc3MgbWVtYmVycwpPYmplY3QuZXh0ZW5kKFRpbWVzUGVvcGxlLlVz
ZXIsewogIGltYWdlSG9zdDogVFBDT05GSUcudXNlcl9pbWFnZV9ob3N0LAogIGdldEluc3RhbmNl
OiBmdW5jdGlvbigpIHsKICAgIGlmICh0aGlzLl9faW5zdGFuY2VfXyA9PSBudWxsKSB7CiAgICAg
IHRoaXMuX19pbnN0YW5jZV9fID0gbmV3IFRpbWVzUGVvcGxlLlVzZXIoKTsKICAgIH0KICAgIHJl
dHVybiB0aGlzLl9faW5zdGFuY2VfXzsKICB9LAogIAogIGNyZWF0ZTogZnVuY3Rpb24oYXR0cmli
dXRlcykgewogICAgdmFyIHVybCA9IFRQQ09ORklHLnNlcnZpY2UgKyAnP21vZGU9Y3JlYXRlVXNl
cic7CiAgICB2YXIgaW5zdGFuY2UgPSBUaW1lc1Blb3BsZS5Vc2VyLmdldEluc3RhbmNlKCk7CiAg
ICBuZXcgVGltZXNQZW9wbGUuQWpheC5SZXF1ZXN0KHVybCwgewogICAgICBtZXRob2Q6ICdwb3N0
JywKICAgICAgcGFyYW1ldGVyczoge3VzZXJJbmZvOiBPYmplY3QudG9KU09OKGF0dHJpYnV0ZXMp
LCB0b2tlbjogVFBDT05GSUcudG9rZW4sIHZlcnNpb246IFRpbWVzUGVvcGxlLnZlcnNpb259LAog
ICAgICBvblN1Y2Nlc3M6IGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgY29uc29sZS5sb2co
J0NyZWF0ZWQgdXNlciEnKTsKICAgICAgICBpbnN0YW5jZS5uZXdSZWNvcmQgPSBmYWxzZTsKICAg
ICAgICBpbnN0YW5jZS5wcm9jZXNzUmVzcG9uc2UocmVzcG9uc2UpOwogICAgICAgIGluc3RhbmNl
LnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMoJ3VzZXIgY3JlYXRlZCcsIGluc3RhbmNlKTsKICAg
ICAgICBpbnN0YW5jZS5wdWJsaXNoZXIubm90aWZ5T2JzZXJ2ZXJzKCd1c2VyIHNhdmVkJywgaW5z
dGFuY2UpOwogICAgICAgIGluc3RhbmNlLnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMoJ3VzZXIg
bG9nZ2VkIGluJywgaW5zdGFuY2UpOwogICAgICAgIGluc3RhbmNlLnB1Ymxpc2hlci5ub3RpZnlP
YnNlcnZlcnMoJ2F0dHJpYnV0ZXMgdXBkYXRlZCcsIGluc3RhbmNlKTsKICAgICAgfSwKICAgICAg
b240MDM6IGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgLy8gVE9ETwogICAgICAgIHZhciBk
YXRhID0gcmVzcG9uc2UucmVzcG9uc2VUZXh0LmV2YWxKU09OKCk7CiAgICAgICAgY29uc29sZS5l
cnJvcihkYXRhLmVycm9yTWVzc2FnZSk7CiAgICAgIH0sCiAgICAgIG9uNDEyOiBmdW5jdGlvbihy
ZXNwb25zZSkgewogICAgICAgIC8vIFRPRE8KICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlLnJl
c3BvbnNlVGV4dC5ldmFsSlNPTigpOwogICAgICAgIGNvbnNvbGUuZXJyb3IoZGF0YS5lcnJvck1l
c3NhZ2UpOwogICAgICAgIGluc3RhbmNlLnB1Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMoJ3VzZXIg
Y291bGQgbm90IGJlIGNyZWF0ZWQnLCBkYXRhKTsKICAgICAgfSwKICAgICAgb241MDA6IGZ1bmN0
aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgLy8gVE9ETwogICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vy
cm9yIHNhdmluZyB1c2VyJywgcmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKICAgICAgICB2YXIgZGF0
YSA9IHJlc3BvbnNlLnJlc3BvbnNlVGV4dC5ldmFsSlNPTigpOwogICAgICAgIGluc3RhbmNlLnB1
Ymxpc2hlci5ub3RpZnlPYnNlcnZlcnMoJ3VzZXIgY291bGQgbm90IGJlIGNyZWF0ZWQnLCBkYXRh
KTsKICAgICAgfQogICAgfSk7CiAgfSwKICAKICBpZFRvUGFydGl0aW9uZWRQYXRoOiBmdW5jdGlv
bihpZCkgewogICAgcmV0dXJuIGlkLnRvU3RyaW5nKCkucmVwbGFjZSgvKFxkezR9KD89XGQpKS9n
LCAnJDEvJyk7CiAgfQogIAp9KTsvKgokSWQ6IHBlcnNvbi5qcyA1NDQ4IDIwMDgtMDktMjEgMDE6
Mzc6NTBaIHNhbnRlcCAkCihjKSAyMDA4IFRoZSBOZXcgWW9yayBUaW1lcyBDb21wYW55CiovCgov
L1BlcnNvbiAoTk9UIHRoZSBjdXJyZW50IHVzZXIpCgpUaW1lc1Blb3BsZS5QZXJzb24gPSBmdW5j
dGlvbihhdHRyaWJ1dGVzKSB7CiAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlczsKICB0aGlz
LmF0dHJpYnV0ZXMucGljVVJMID0gYXR0cmlidXRlcy5waWNVUkwgPyBhdHRyaWJ1dGVzLnBpY1VS
TCA6IFRQQ09ORklHLmltYWdlX2hvc3QgKyBUUENPTkZJRy5pbWFnZV9wYXRoICsgJ25vbmUucG5n
JzsKICB0aGlzLmF0dHJpYnV0ZXMudXNlcnBhZ2UgPSBUUENPTkZJRy5ob3N0ICsgJy92aWV3L3Vz
ZXIvJyArIHRoaXMuYXR0cmlidXRlcy51aWQ7ICAgIAp9OwoKLy8gY2xhc3MgbWVtYmVycwpPYmpl
Y3QuZXh0ZW5kKFRpbWVzUGVvcGxlLlBlcnNvbiwgewogIAogIHNlYXJjaDogZnVuY3Rpb24odGVy
bSwgY2FsbGJhY2spIHsKICAgIHZhciBjYWxsYmFjayA9IGNhbGxiYWNrIHx8IFByb3RvdHlwZS5l
bXB0eUZ1bmN0aW9uOwogICAgdmFyIHVybCA9IFRQQ09ORklHLnNlcnZpY2UgKyAnP21vZGU9c2Vh
cmNoJnNlYXJjaFRlcm09JyArIGVuY29kZVVSSUNvbXBvbmVudCh0ZXJtKTsKICAgIG5ldyBUaW1l
c1Blb3BsZS5BamF4LlJlcXVlc3QodXJsLCB7CiAgICAgIG1ldGhvZDogJ2dldCcsCiAgICAgIG9u
U3VjY2VzczogZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNl
LnJlc3BvbnNlVGV4dC5ldmFsSlNPTigpOwogICAgICAgIGZvciAodmFyIG9iamVjdHM9W10sIGk9
MCwgbD1kYXRhLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICAgICAgb2JqZWN0cy5wdXNoKG5l
dyBUaW1lc1Blb3BsZS5QZXJzb24oZGF0YVtpXSkpOwogICAgICAgIH07CiAgICAgICAgY2FsbGJh
Y2sob2JqZWN0cyk7CiAgICAgIH0KICAgIH0pOwogIH0KICAKfSk7LyoKJElkOiBhY3Rpdml0eS5q
cyA1NzUzIDIwMDgtMTAtMDYgMjI6MTg6MDNaIHNhbnRlcCAkCihjKSAyMDA4IFRoZSBOZXcgWW9y
ayBUaW1lcyBDb21wYW55CiovCgpUaW1lc1Blb3BsZS5BY3Rpdml0eSA9IENsYXNzLmNyZWF0ZSh7
CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24odmVyYiwgb2JqZWN0LCBvYmplY3RfZGVzYywgb2JqZWN0
X3VybCwgb2JqZWN0X3RodW1ibmFpbF91cmwsIG9iamVjdF90eXBlKSB7CiAgICBpZiAoISBUaW1l
c1Blb3BsZS5BY3Rpdml0eS52ZXJicy5pbmNsdWRlKHZlcmIpKSB7dGhyb3coJyInK3ZlcmIrJyIg
aXMgbm90IGluIHRoZSBsaXN0IG9mIGFjY2VwdGVkIHZlcmJzJyk7fQoKICAgIHZhciBvYmplY3Rf
ZGVzYyA9IG9iamVjdF9kZXNjIHx8IFRpbWVzUGVvcGxlLlBhZ2UuZ2V0RGVzY3JpcHRpb24oKSB8
fCAnJzsKICAgIHZhciBvYmplY3RfdHlwZSA9IG9iamVjdF90eXBlIHx8IFRpbWVzUGVvcGxlLlBh
Z2UuZ2V0UGFnZVR5cGUoKTsKCiAgICB2YXIgc291cmNlID0gJ255dGltZXMuY29tJzsKCiAgICB0
aGlzLnVzZXJpZCAgICAgICAgICAgICAgID0gVGltZXNQZW9wbGUudXNlci5hdHRyaWJ1dGVzLnVp
ZDsKICAgIHRoaXMudmVyYiAgICAgICAgICAgICAgICAgPSB2ZXJiOwogICAgdGhpcy5vYmplY3Qg
ICAgICAgICAgICAgICA9IG9iamVjdDsKICAgIHRoaXMub2JqZWN0X2Rlc2MgICAgICAgICAgPSBv
YmplY3RfZGVzYzsKCiAgICB0aGlzLm9iamVjdF90eXBlICAgICAgICAgID0gb2JqZWN0X3R5cGU7
CiAgICB0aGlzLm9iamVjdF91cmwgICAgICAgICAgID0gb2JqZWN0X3VybCB8fCB0aGlzLnNhbml0
aXplVXJsKCk7CiAgICB0aGlzLm9iamVjdF90aHVtYm5haWxfdXJsID0gb2JqZWN0X3RodW1ibmFp
bF91cmwgfHwgdGhpcy5nZXRUaHVtYm5haWwoKTsKICAgIHRoaXMudmlzaWJsZSAgICAgICAgICAg
ICAgPSAxOwogICAgdGhpcy5zb3VyY2UgICAgICAgICAgICAgICA9IHNvdXJjZTsKCiAgICBUaW1l
c1Blb3BsZS51c2VyLmZyaWVuZHNBY3Rpb25zLnVuc2hpZnQodGhpcy5tYWtlRGlzcGxheVJlYWR5
KCkpOwoKICAgIGlmICh0aGlzLnNhdmUoKSl7CiAgICAgIHJldHVybiB0aGlzOwogICAgfSBlbHNl
IHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICB9Cn0pOwoKCi8vY2xhc3MgbWVtYmVycwpP
YmplY3QuZXh0ZW5kKFRpbWVzUGVvcGxlLkFjdGl2aXR5LCBOWVRELkV2ZW50UHVibGlzaGVyLnBy
b3RvdHlwZSk7Ck9iamVjdC5leHRlbmQoVGltZXNQZW9wbGUuQWN0aXZpdHksewogIAogIG9ic2Vy
dmVyczogW10sCiAgdmVyYnM6ICAgICBbInJlYWQiLCAiY29tbWVudGVkIiwgInJhdGVkIiwgInJl
dmlld2VkIiwgInJlY29tbWVuZGVkIiwgInN1Z2dlc3RlZCIsICJzYXZlZCIsICJzaGFyZWQiLCAi
YnJvd3NlZCIsICJsaXN0ZW5lZCB0byIsICJwb3N0ZWQiLCAidmlld2VkIl0KCn0pOwoKLy9pbnN0
YW5jZSBtZW1iZXJzCk9iamVjdC5leHRlbmQoVGltZXNQZW9wbGUuQWN0aXZpdHkucHJvdG90eXBl
LCB7CiAgbWFrZURpc3BsYXlSZWFkeTogZnVuY3Rpb24oKSB7CiAgICBjb25zb2xlLmxvZygnbWFr
ZURpc3BsYXlSZWFkeScpOwogICAgCiAgICB0aGlzLmFjdG9yRGlzcGxheW5hbWUgPSAnWW91JzsK
ICAgIHRoaXMuZGF0ZV91cGRhdGVkICAgPSBuZXcgRGF0ZSgpLnRvU3RyaW5nKCk7CiAgICB0aGlz
LnBpY1VSTCA9IFRpbWVzUGVvcGxlLnVzZXIuYXR0cmlidXRlcy5waWNVUkw7CiAgICBjb25zb2xl
LmxvZygnb3V0IG9mIG1ha2VEaXNwbGF5UmVhZHknKTsKICAgIHJldHVybiB0aGlzOwoKICB9LAoK
CWdldFRodW1ibmFpbDogZnVuY3Rpb24oKSB7CgkJdmFyIG1ldGEgPSBmYWxzZTsKCQl2YXIgaG9z
dCA9ICJodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tLyI7CgoJCXZhciBmaW5kVGh1bWIgICAg
PSAkJCgnbWV0YVtuYW1lPSJ0aHVtYm5haWwiXScpOwoJCXZhciBmaW5kVVJMVGh1bWIgPSAkJCgn
bWV0YVtuYW1lPSJ1cmxfdGh1bWIiXScpOwoKCQlpZiAoZmluZFRodW1iKSB7CgkJCW1ldGEgPSBm
aW5kVGh1bWI7CgkJfSBlbHNlIGlmIChmaW5kVVJMVGh1bWIpIHsKCQkJbWV0YSA9IGZpbmRVUkxU
aHVtYjsKCQl9CgoJCXZhciB0aHVtYm5haWwgPSAnJzsKCQlpZihtZXRhWzBdKSB7CgkJCXZhciBj
b250ZW50ID0gbWV0YVswXS5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKTsKCQkJaWYgKCFjb250ZW50
LnN0YXJ0c1dpdGgoJ2h0dHAnKSkgewoJCQkJdGh1bWJuYWlsID0gaG9zdCtjb250ZW50OwoJCQl9
IGVsc2UgewoJCQkJdGh1bWJuYWlsID0gY29udGVudDsKCQkJfQoJCX0KCQlyZXR1cm4gdGh1bWJu
YWlsOwoJfSwKCiAgc2FuaXRpemVVcmw6IGZ1bmN0aW9uKCkgewogIC8vCVN0YXJ0IHdpdGggYSBi
cm9hZCBzd2VlcCBieSBob3N0bmFtZQogIC8vCXRoZW4gaGFuZGxlIHNwZWNpZmljIGV4ZXB0aW9u
cyBhbmQgY2FzZXMKCiAgCQl2YXIgc3RhcnRXaXRoID0gKGxvY2F0aW9uLmhyZWYuaW5kZXhPZigi
PyIpPjApID8gIiYiIDogIj8iOwoKCQlzd2l0Y2gobG9jYXRpb24uaG9zdG5hbWUpIHsKCQljYXNl
ICd3d3cubnl0aW1lcy5jb20nOgoJCQlyZXR1cm4gbG9jYXRpb24uaHJlZi5zcGxpdCgnPycpWzBd
Kyc/c3JjPXRwJzsKCQkJYnJlYWs7CgkJY2FzZSAnY29tbXVuaXR5Lm55dGltZXMuY29tJzoKCQkJ
cmV0dXJuIGxvY2F0aW9uLmhyZWYrc3RhcnRXaXRoKydzcmM9dHAnOwoJCQlicmVhazsKCQljYXNl
ICdxdWVyeS5ueXRpbWVzLmNvbSc6CgkJCXJldHVybiBsb2NhdGlvbi5ocmVmK3N0YXJ0V2l0aCsn
c3JjPXRwJzsKCQkJYnJlYWs7CgkJY2FzZSAndHJhdmVsLm55dGltZXMuY29tJzoKCQkJcmV0dXJu
IGxvY2F0aW9uLmhyZWYrc3RhcnRXaXRoKycmc3JjPXRwJzsKCQkJYnJlYWs7CgkJY2FzZSAnbW92
aWVzLm55dGltZXMuY29tJzoKCQkJcmV0dXJuIGxvY2F0aW9uLmhyZWYrc3RhcnRXaXRoKycmc3Jj
PXRwJzsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJcmV0dXJuIGxvY2F0aW9uLmhyZWYuc3BsaXQo
Jz8nKVswXSsnP3NyYz10cCc7CgkJfQogIH0sCgogIHNhdmU6IGZ1bmN0aW9uKCkgewogICAgdmFy
IHVybCA9IFRQQ09ORklHLnNlcnZpY2UgKyAnP21vZGU9YWRkQWN0aW9uJzsKICAgIGNvbnNvbGUu
bG9nKCdkZWZpbmluZyBhY3Rpdml0aWVzJyk7CiAgICB2YXIgYWN0aXZpdGllcyA9IE9iamVjdC50
b0pTT04oe2FjdGl2aXRpZXM6W3RoaXNdfSk7CiAgICAgICAgICAgICAgCiAgICBjb25zb2xlLmxv
ZygiYWN0aXZpdGllcyIpOwoJY29uc29sZS5sb2coYWN0aXZpdGllcyk7CiAgICAKICAgIG5ldyBU
aW1lc1Blb3BsZS5BamF4LlJlcXVlc3QodXJsLCB7CiAgICAgIG1ldGhvZDogJ3Bvc3QnLAogICAg
ICBwYXJhbWV0ZXJzOiB7YWN0aW9uRGF0YTogYWN0aXZpdGllcywgdG9rZW46IFRQQ09ORklHLnRv
a2VuLCB2ZXJzaW9uOiBUaW1lc1Blb3BsZS52ZXJzaW9ufSwKICAgICAgb25TdWNjZXNzOiBmdW5j
dGlvbihyZXNwb25zZSkgewogICAgICAgIGNvbnNvbGUubG9nKCdTYXZlZCBhY3Rpb24hJywgcmVz
cG9uc2UucmVzcG9uc2VUZXh0KTsKICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlLnJlc3BvbnNl
VGV4dC5ldmFsSlNPTigpOwogICAgICAgIFRpbWVzUGVvcGxlLkFjdGl2aXR5Lm5vdGlmeU9ic2Vy
dmVycygnYWN0aW9uIHNhdmVkJywgZGF0YSk7CiAgICAgIH0KICAgIH0pOwogIH0KfSk7LyoKJElk
OiBwYWdlLmpzIDU0NzEgMjAwOC0wOS0yMiAwMDo1MjozN1ogZG9ub2hvZSAkCihjKSAyMDA4IFRo
ZSBOZXcgWW9yayBUaW1lcyBDb21wYW55CiovCgpUaW1lc1Blb3BsZS5QYWdlID0gewoKCWlzUmVh
ZHk6IGZ1bmN0aW9uKCkgewoJCWNvbnNvbGUubG9nKCdwb2xsaW5nIFdUJyk7CgkJaWYgKCdXVCcg
aW4gd2luZG93KSB7CgoJCQl0aGlzLmhlYWRsaW5lID0gdGhpcy5nZXRIZWFkbGluZSgpOwoJCQl0
aGlzLnR5cGUgICAgID0gdGhpcy5nZXRQYWdlVHlwZSgpOwoKCQkJY29uc29sZS5sb2coCgkJCQki
SGVhZGxpbmU6XHQiICsgdGhpcy5oZWFkbGluZSArICJcbiIgKyAKCQkJCSJPYmplY3Q6XHRcdCIg
KyB0aGlzLnR5cGUKCQkJKTsKCQkJY29uc29sZS5sb2coV1QpOwoJCX0KCQlyZXR1cm4gJ1dUJyBp
biB3aW5kb3c7Cgl9LAoKCWdldEhlYWRsaW5lOiAgZnVuY3Rpb24gKCkgewoKCQl2YXIgdGl0bGVU
YWcgID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ1RJVExFJylbMF07CgkJdmFyIGhl
YWRsaW5lICA9IHRpdGxlVGFnLmlubmVySFRNTDsKCQl2YXIgcGFnZVR5cGUgID0gdGhpcy5nZXRQ
YWdlVHlwZSgpOwoJCXZhciBhZGREZXRhaWwgPSBmYWxzZTsKCgkvLwlEZWZhdWx0LCBpZiBhdmFp
bGFibGUKCQlpZiAoV1QuY2dfbiAhPSB1bmRlZmluZWQpIHsKCQkJaGVhZGxpbmUgPSBXVC5jZ19u
OwoJCX0KCQlpZiAoV1Quel9oZGwgIT0gdW5kZWZpbmVkKSB7CgkJCWhlYWRsaW5lICA9IFdULnpf
aGRsOwoJCX0KCgkJc3dpdGNoKHBhZ2VUeXBlKSB7CgoJCWNhc2UgJ0FydGljbGUnOgoJCQlpZihX
VC56X3B1dCAhPSB1bmRlZmluZWQgJiYgV1Quel9wdXQgPT0gJ0FyY2hpdmUnKSB7CgkJCQloZWFk
bGluZSA9IFdULnRpOwkvLwlBcmNoaXZlIGFydGljbGUKCQkJfQoJCQlicmVhazsKCgkJY2FzZSAn
U2VjdGlvbiBGcm9udCc6CQkvLyAgU2VjdGlvbiBGcm9udAoJCQloZWFkbGluZSA9IFdULmNnX247
CgkJCWlmIChXVC5jZ19zICE9IHVuZGVmaW5lZCAmJiBXVC5jZ19zICE9ICIiKSAgewoJCQkJaGVh
ZGxpbmUgPSBXVC5jZ19zOwoJCQl9CgkJCWJyZWFrOwoKCQljYXNlICdUb3BpYyc6CQkJCS8vICBU
b3BpYwoJCQlpZiAoV1QudGkgIT0gdW5kZWZpbmVkICYmIFdULnRpICE9ICIiKSB7CgkJCQloZWFk
bGluZSA9IFdULnRpOwoJCQl9CgkJCWJyZWFrOwoKCQljYXNlICdNYXAnOgkJCQkJLy8gIFRvcGlj
CgkJY2FzZSAnVHJhdmVsIEd1aWRlJzoJCS8vICBUb3BpYwoJCQlpZiAoV1Quel90RGVzdCAhPSB1
bmRlZmluZWQpICB7CgkJCQloZWFkbGluZSA9IFdULnpfdERlc3QucmVwbGFjZSgvLS9nLCAiICIp
LnRpdGxlaXplKCk7CgkJCX0gZWxzZSB7CgkJCQloZWFkbGluZSA9IFdULnRpLnN1YnN0cigwLFdU
LnRpLmluZGV4T2YoIiBUcmF2ZWwgR3VpZGUgLSAiKSk7CgkJCX0KCQkJYWRkRGV0YWlsID0gdHJ1
ZTsKCQkJYnJlYWs7CgoJCWNhc2UgJ0hlYWx0aCBHdWlkZSc6CQkvLyAgVG9waWMKCQkJaGVhZGxp
bmUgPSBXVC56X2hnc24ucmVwbGFjZSgvLS9nLCAiICIpLnRpdGxlaXplKCk7CgkJCWFkZERldGFp
bCA9IHRydWU7CgkJCWJyZWFrOwoKCQljYXNlICdNb3ZpZSBHdWlkZSc6CQkJLy8gIFRvcGljCgkJ
Y2FzZSAnTW92aWUnOgkJCSAgICAvLyAgVG9waWMKCQkJaGVhZGxpbmUgPSBXVC56X210aS5yZXBs
YWNlKC8tL2csICIgIikudGl0bGVpemUoKTsKCQkJYWRkRGV0YWlsID0gdHJ1ZTsKCQkJYnJlYWs7
CgoJCWNhc2UgJ090aGVyJzoJCQkJLy8gIE1pbmlzaXRlLi4uIGFuZCB1bmtub3duIHBhZ2VzCgkJ
Y2FzZSAnQmxvZyc6CQkJCS8vICBCbG9ncyAmIFBvc3RzLi4uCgkJY2FzZSAnQmxvZyBUYWcnOgoJ
CWNhc2UgJ0Jsb2cgUG9zdCc6CgkJY2FzZSAnQmxvZyBDYXRlZ29yeSc6CgoJCQlpZiAoV1QudGkg
IT0gdW5kZWZpbmVkICYmIFdULnRpICE9ICIiKSB7CgkJCQloZWFkbGluZSA9IFdULnRpLnN1YnN0
cigwLFdULnRpLmluZGV4T2YoIiAtICIpKTsKCQkJfQoJCQlicmVhazsKCgkJY2FzZSAnUmV2aWV3
JzoJCQkJLy8gIEFydGljbGUKCQkJaGVhZGxpbmUgPSBXVC5jZ19uOwoJCQlpZiAoV1Quel9oZGwg
IT0gdW5kZWZpbmVkKSAgewoJCQkJaGVhZGxpbmUgPSBXVC56X2hkbDsKCQkJfQoJCQlpZiAoV1Qu
el9tdGkgIT0gdW5kZWZpbmVkKSAgewoJCQkJaGVhZGxpbmUgPSBXVC56X210aTsJLy8gIE1vdmll
CgkJCX0KCQkJYnJlYWs7CgoJCWNhc2UgJ1ZlbnVlIERldGFpbCc6CQkvLyAgVmVudWUKCQljYXNl
ICdSZXN0YXVyYW50JzoJCQkvLyAgVmVudWUKCQljYXNlICdBdHRyYWN0aW9uJzoJCQkvLyAgVmVu
dWUKCQljYXNlICdIb3RlbCc6CQkJCS8vICBWZW51ZQoJCQloZWFkbGluZSA9IFdULnpfdHZuOwoJ
CQlicmVhazsKCgkJY2FzZSAnSW50ZXJhY3RpdmUgR3JhcGhpYyc6CS8vICBNdWx0aW1lZGlhCgkJ
CWhlYWRsaW5lID0gV1Quel9oZGw7CgkJCWJyZWFrOwoJCWNhc2UgJ0dyYXBoaWMnOgkJCQkvLyAg
TXVsdGltZWRpYQoJCQloZWFkbGluZSA9ICQkKCdmb250W3NpemU9Ii0xIl0nKVswXS5pbm5lckhU
TUwudHJ1bmNhdGUoNTApOwoJCQlicmVhazsKCQljYXNlICdBdWRpbyBTbGlkZXNob3cnOgkJLy8g
IE11bHRpbWVkaWEKCQkJaGVhZGxpbmUgPSBXVC50aS5yZXBsYWNlKCIgfCBUaGUgTmV3IFlvcmsg
VGltZXMiLCAiIik7CgkJCWJyZWFrOwoJCWNhc2UgJ0VsZWN0aW9uIEd1aWRlJzogCQkvLwlFbGVj
dGlvbiBHdWlkZQoJCQloZWFkbGluZSA9IFdULnRpLnN1YnN0cigwLFdULnRpLmluZGV4T2YoIiAt
ICIpKTsKCQkJYnJlYWs7CgkJfQoKCS8vCUFwcGVuZCBGb2N1cyBwYWdlIGluZm9ybWF0aW9uIGZv
ciBzb21lIFRvcGljcwoJCWlmIChhZGREZXRhaWwgJiYgV1Quel9ncHNzdCAhPSB1bmRlZmluZWQp
IHsKCQkJaWYoV1Quel9ncHNzdCE9Ik92ZXJ2aWV3Iil7CgkJCQloZWFkbGluZSArPSAiICgiICsg
V1Quel9ncHNzdCArICIpIjsKCQkJfQoJCX0KCgkvLwlBY2NvdW50IGZvciBpbXByb3Blcmx5IGlt
cGxlbWVudGVkIHRpdGxlcyBhY3Jvc3Mgc2l0ZSAob3JkZXIgbWF0dGVycykKCQlpZiAoaGVhZGxp
bmUgPT0gdGl0bGVUYWcuaW5uZXJIVE1MKSB7CgkJCWhlYWRsaW5lID0gdGhpcy5zYW5pdGl6ZUhl
YWRsaW5lKGhlYWRsaW5lKTsKCQl9CgoJCXJldHVybiBoZWFkbGluZS5zdHJpcCgpOwoJfSwKCglz
YW5pdGl6ZUhlYWRsaW5lOiBmdW5jdGlvbiAoaGVhZGxpbmUpIHsKCS8vCVJlbW92ZXMga25vd24g
dmFyaWF0aW9ucyBvZiB0aGUgaGVhZGxpbmUgdGl0bGUgdGFnIHRvIG1ha2UgdGhlCgkvLwloZWFk
bGluZSByZWFkYWJlbCBhbmQgY29uc2lzdGVudAoJLy8JVGhlIG9yZGVyIG9mIHRoZSByZXBsYWNl
IGlzIHJlbGV2ZW50CgoJCXZhciBoZGwgPSBoZWFkbGluZTsKCgkJaGRsID0gaGRsLnJlcGxhY2Uo
IiAtIEhlYWx0aCBOZXdzIC0gTmV3IFlvcmsgVGltZXMiLCAiIik7CS8vICBIZWFsdGggc3ViLVNG
CgkJaGRsID0gaGRsLnJlcGxhY2UoIiBOZXdzIC0gTmV3IFlvcmsgVGltZXMiLCAiIik7CQkJLy8g
IEhlYWx0aCBTRgoJCWhkbCA9IGhkbC5yZXBsYWNlKCJUaGUgTmV3IFlvcmsgVGltZXMgJmd0OyAi
LCAiIik7CQkJLy8gIEVkaXRvcmlhbCBTRgoKCQloZGwgPSBoZGwucmVwbGFjZSgiIC0gTmV3IFlv
cmsgVGltZXMiLCAiIik7CgkJaGRsID0gaGRsLnJlcGxhY2UoIiAtIFRoZSBOZXcgWW9yayBUaW1l
cyIsICIiKTsKCQloZGwgPSBoZGwucmVwbGFjZSgiVGhlIE5ldyBZb3JrIFRpbWVzIC0gIiwgIiIp
OwoKCQloZGwgPSBoZGwucmVwbGFjZSgiIC0gVGhlIE5ldyBZb3JrIFRpbWVzIEJsb2ciLCAiIik7
CQkvLyAgQmxvZ3MKCQloZGwgPSBoZGwucmVwbGFjZSgiIC0gTlkgVGltZXMgSGVhbHRoIEluZm9y
bWF0aW9uIiwgIiIpOwkvLyAgSGVhbHRoIFRvcGljcwoJCWhkbCA9IGhkbC5yZXBsYWNlKCIgLSBO
ZXdzIC0gVGltZXMgVG9waWNzIiwgIiIpOwkJCS8vICBUaW1lc1RvcGljcyAoc3ViamVjdHMpCgkJ
aGRsID0gaGRsLnJlcGxhY2UoIiBOZXdzIiwgIiIpOwkJCQkJCQkJLy8gIFRpbWVzVG9waWNzIChw
ZW9wbGUpCgkJaGRsID0gaGRsLnJlcGxhY2UoIiB8IFRoZSBOZXcgWW9yayBUaW1lcyIsICIiKTsJ
CQkJLy8gIEF1ZGlvIFNsaWRlc2hvdwoJCWhkbCA9IGhkbC5yZXBsYWNlKCJOZXcgWW9yayBUaW1l
cyAiLCAiIik7CQkJCQkvLyAgTW9zdCBQb3B1bGFyIFNGCgkJaGRsID0gaGRsLnJlcGxhY2UoIiAt
IE5ZVGltZXMuY29tIiwgIiIpOwkJCQkJLy8gIE1vc3QgUG9wdWxhciBTRgoKCQlyZXR1cm4gaGRs
OwoJfSwKCglnZXRTZWN0aW9uOiBmdW5jdGlvbigpIHsKCQl2YXIgaGVhZGVyID0gJCQoJyNtYXN0
aGVhZCBoMScpWzBdOwoJCWlmIChoZWFkZXIpIHsKCQkJcmV0dXJuIGhlYWRlci5pbm5lckhUTUwu
c3RyaXBUYWdzKCkuc3RyaXAoKTsKCQl9Cgl9LAoKCWdldE9iamVjdDogZnVuY3Rpb24oKSB7CgoJ
fSwKCglnZXRQYWdlVHlwZTogZnVuY3Rpb24oKSB7CgoJCXZhciBwYWdlVHlwZSA9IGZhbHNlOwoK
CQlpZiAoV1Quel9ncHQgPT0gdW5kZWZpbmVkKSB7CgoJCS8vCUlFNiBhbmQgV1QgZG9uJ3QgKGFs
d2F5cykgcGxheSB3ZWxsIDooCgkJLy8JVGhlIG9yZGVyIG1hdHRlcnMKCgkJCXZhciBtZXRhQXJ0
aWNsZSA9ICQkKCdtZXRhW2NvbnRlbnQ9IkFydGljbGUiXScpWzBdOwoJCQlpZiAobWV0YUFydGlj
bGUpIHsKCQkJCXJldHVybiAiQXJ0aWNsZSI7CgkJCX0KCQkJdmFyIG1ldGFCbG9nID0gJCQoJ21l
dGFbY29udGVudD0iQmxvZyBQb3N0Il0nKVswXTsKCQkJaWYgKG1ldGFCbG9nKSB7CgkJCQlyZXR1
cm4gIkJsb2cgUG9zdCI7CgkJCX0KCQkJdmFyIG1ldGFUb3BpYyA9ICQkKCdtZXRhW2NvbnRlbnQ9
IlRvcGljIl0nKVswXTsKCQkJaWYgKG1ldGFUb3BpYykgewoJCQkJcmV0dXJuICJUb3BpYyI7CgkJ
CX0KCQkJdmFyIG1ldGFFbGVjdGlvbiA9ICQkKCdtZXRhW2NvbnRlbnQ9IkVsZWN0aW9uIEd1aWRl
Il0nKVswXTsKCQkJaWYgKG1ldGFFbGVjdGlvbikgewoJCQkJcmV0dXJuICJFbGVjdGlvbiBHdWlk
ZSI7CgkJCX0KCQkJdmFyIG1ldGFDb21tdW5pdHkgPSAkJCgnbWV0YVtjb250ZW50PSJDb21tdW5p
dHkiXScpWzBdOwoJCQlpZiAobWV0YUNvbW11bml0eSkgewoKCQkJCXZhciBtZXRhTW92aWVzID0g
JCQoJ21ldGFbY29udGVudD0iTW92aWVzIl0nKVswXTsKCQkJCWlmIChtZXRhTW92aWVzKSB7CgkJ
CQkJcmV0dXJuICJNb3ZpZSI7CgkJCQl9CgoJCQkJcmV0dXJuICJDb21tdW5pdHkiOwoJCQl9CgoJ
CQlyZXR1cm4gIkl0ZW0iOwoKCQl9IGVsc2UgewoJCQlwYWdlVHlwZSA9IFdULnpfZ3B0OwoJCX0K
CgkJc3dpdGNoKHBhZ2VUeXBlKSB7CgoJCWNhc2UgJ0FydGljbGUnOgoJCQl2YXIgdHlwZXNPZkFy
dGljbGUgPSBbICJCaW9ncmFwaHkiLCAiRWRpdG9yJ3MgTm90ZSIsICJFZGl0b3JpYWwiLCAiSW50
ZXJ2aWV3IiwgIlJlY2lwZSIsICJTcGVjaWFsIFJlcG9ydCIsICJSZXZpZXciIF07CgkJCWlmKFdU
LnpfZ3BzdCAhPSB1bmRlZmluZWQpIHsKCQkJCWlmICh0eXBlc09mQXJ0aWNsZS5pbmNsdWRlKFdU
LnpfZ3BzdCkpIHsKCQkJCQlyZXR1cm4gV1Quel9ncHN0OwkvLwlEZWZhdWx0CgkJCQl9CgkJCX0K
CQkJYnJlYWs7CgoJCWNhc2UgJ1RvcGljJzoKCQkJaWYoV1Quel9ncHN0ICE9IHVuZGVmaW5lZCkg
ewoJCQkJaWYgKFdULnpfZ3BzdCA9PSAnVmVudWUgRGV0YWlsJykgIHsgcmV0dXJuIFdULnpfdHZ0
OyAgfSAJCS8vICBWZW51ZSBEZXRhaWwKCQkJCWlmIChXVC56X2dwc3QgPT0gJ01vdmllIERldGFp
bHMnKSB7IHJldHVybiAiTW92aWUiOyB9IAkvLyAgTW92aWUgRGV0YWlsCgkJCQlpZiAoV1Quel9n
cHN0LmluZGV4T2YoJ0d1aWRlJyk+MCB8fCBXVC56X2dwc3Q9PSdNYXAnKSB7IAoJCQkJCXJldHVy
biBXVC56X2dwc3Q7CQkvLyAgQ2F0Y2g6IFRyYXZlbCBHdWlkZSwgSGVhbHRoIEd1aWRlLCBNYXAg
KFRyYXZlbCBHdWlkZSBGb2N1cyBwYWdlKQoJCQkJfQoJCQkJcmV0dXJuIFdULnpfZ3B0OwoJCQl9
CgkJCWJyZWFrOwoKCQljYXNlICdCbG9ncyc6CgkJCWlmIChXVC56X2dwc3QgPT0gJ0Jsb2cgTWFp
bicpCQl7IHJldHVybiAiQmxvZyI7ICAgIH0JLy8gIEJsb2cgSW5kZXgKCQkJcmV0dXJuIFdULnpf
Z3BzdDsgICAgICAgICAgICAgICAgICAgICAgICAgCQkJCQkvLyAgQmxvZyBQb3N0CgkJCWJyZWFr
OwoKCQljYXNlICdNdWx0aW1lZGlhJzoJCgkJCWlmIChXVC5jZ19zICAgPT0gJ0VsZWN0aW9uIEd1
aWRlJykJeyByZXR1cm4gIkVsZWN0aW9uIEd1aWRlIjsgfQoJCQlpZiAoV1Quel9ncHN0ID09ICdT
bGlkZXNob3cnKQkJeyByZXR1cm4gIlNsaWRlc2hvdyI7IH0KCQkJaWYgKFdULnpfZ3BzdCA9PSAn
QXVkaW8gU2xpZGVzaG93JykJeyByZXR1cm4gIkF1ZGlvIFNsaWRlc2hvdyI7IH0KCQkJaWYgKFdU
LnpfZ3BzdCA9PSAnSW50ZXJhY3RpdmUnKQkJeyByZXR1cm4gIkludGVyYWN0aXZlIEdyYXBoaWMi
OyB9CgkJCWlmIChXVC56X2dwc3QgPT0gJ0ZsYXNoJykJCQl7IHJldHVybiAiSW50ZXJhY3RpdmUg
R3JhcGhpYyI7IH0KCQkJaWYgKFdULnpfZ3BzdCA9PSAnSW1hZ2UnKQkJCXsgcmV0dXJuICJHcmFw
aGljIjsgfQoJCQlicmVhazsKCgkJY2FzZSAnQ29tbXVuaXR5JzoKCgkJCXZhciBjaGVja01vdmll
cyA9ICQkKCdtZXRhW2NvbnRlbnQ9Ik1vdmllcyJdJylbMF07CgkJCWlmIChjaGVja01vdmllcykg
ewoJCQkJcmV0dXJuICJNb3ZpZSI7CgkJCX0KCgkJCXJldHVybiAiQ29tbXVuaXR5IjsKCQkJYnJl
YWs7CgkJfQoJCXJldHVybiBXVC56X2dwdDsgIC8vICBEZWZhdWx0Cgl9LAoKCWdldERlc2NyaXB0
aW9uOiBmdW5jdGlvbigpIHsKCS8vCVRoZSBvcmRlciBtYXR0ZXJzLi4uCgkJdmFyIG1ldGFJbiA9
IGZhbHNlOwoKCS8vCVRvcGljIG9yIEVsZWN0aW9uIEd1aWRlCgkJaWYgKChXVC56X2dwdCA9PSAn
VG9waWMnKSB8fCAoV1QuY2dfcyA9PSAnRWxlY3Rpb24gR3VpZGUnKSkgewoJCQltZXRhSW4gPSAk
JCgnbWV0YVtuYW1lPSJkZXNjcmlwdGlvbiJdJylbMF07CgkJCWlmIChtZXRhSW4pIHsKCQkJCXJl
dHVybiBtZXRhSW4uY29udGVudDsKCQkJfQoJCX0KCgkvLwlCbG9nIHBvc3RzCgkJbWV0YUluID0g
JCQoJ2lucHV0W25hbWU9ImRlc2NyaXB0aW9uIl0nKVswXTsKCQlpZiAobWV0YUluKSB7CgkJCXJl
dHVybiAodW5lc2NhcGUobWV0YUluLnZhbHVlKSk7CgkJfQoKCS8vCU11bHRpbWVkaWEgLSBHcmFw
aGljCgkJbWV0YUluID0gJCQoJ21ldGFbY29udGVudD0icGhvdG8iXScpLmxlbmd0aD09MTsKCQlp
ZiAobWV0YUluKSB7CgkJCXJldHVybiAkJCgnZm9udFtzaXplPSItMSJdJylbMF0uaW5uZXJIVE1M
OwoJCX0KCgkvLwlDTVMKCQltZXRhSW4gPSAkJCgnbWV0YVtuYW1lPSJscCJdJylbMF07CgkJaWYg
KG1ldGFJbikgewoJCQlyZXR1cm4gbWV0YUluLmNvbnRlbnQ7CgkJfQoJfQp9OwovKgokSWQ6IHBh
bmVsLmpzIDYyNDAgMjAwOC0xMC0yOSAxNTo0MzoyMFogc2FudGVwICQKKGMpIDIwMDggVGhlIE5l
dyBZb3JrIFRpbWVzIENvbXBhbnkKKi8KClRpbWVzUGVvcGxlLlBhbmVsID0gQ2xhc3MuY3JlYXRl
KHsgCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKHBhcmVudCwgZWxlbWVudCwgdGFiY29udGVudCwg
b3B0aW9ucykgewogICAgdGhpcy5vcHRpb25zID0gewogICAgICB0aXRsZTogJycsCiAgICAgIHNo
YWRvdzogdHJ1ZSwKICAgICAgcmVzaXphYmxlOiBmYWxzZSwKICAgICAgcG9zaXRpb246ICdsZWZ0
JwogICAgfTsKICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5leHRlbmQodGhpcy5vcHRpb25zLCBv
cHRpb25zIHx8IHt9KTsKICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgdGhpcy5lbGVtZW50
ID0gJChlbGVtZW50KS5hZGRDbGFzc05hbWUoJ3RpbWVzcGVvcGxlX3BhbmVsJyk7CiAgICB0aGlz
LmNvbnRhaW5lciA9IG5ldyBFbGVtZW50KCdkaXYnLCB7J2NsYXNzJzogJ1RQX3BhbmVsX2NvbnRh
aW5lcid9KTsKICAgIHRoaXMudGFiID0gbmV3IEVsZW1lbnQoJ2RpdicsIHsnY2xhc3MnOid0b2dn
bGVUYWIgYWN0aXZlJ30pOwogICAgdGhpcy50YWIuYWRkQ2xhc3NOYW1lKHRoaXMub3B0aW9ucy5w
b3NpdGlvbiArICdfYXJyb3cnKTsKICAgIHRoaXMudGFiLnNldFN0eWxlKHRoaXMub3B0aW9ucy5w
b3NpdGlvbiArICc6LTE1OHB4O3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZScpLnVwZGF0
ZSgnPGg0PicgKyB0YWJjb250ZW50ICsgJzwvaDQ+Jyk7CiAgICB0aGlzLmVsZW1lbnQuaW5zZXJ0
KHt0b3A6dGhpcy50YWJ9KTsKICAgIHRoaXMuZWxlbWVudC5pbnNlcnQodGhpcy5jb250YWluZXIp
OwogICAgJCgnVFBfaW5uZXInKS5pbnNlcnQodGhpcy5lbGVtZW50KTsKICB9LAogIAogIGRyYXc6
IGZ1bmN0aW9uKCkgewogIH0sCiAgCgogIG9wZW46IGZ1bmN0aW9uKCkgewogICAgY29uc29sZS5s
b2coJ29wZW5pbmcgcGFuZWwnKTsKICAgIGlmICh0aGlzLnBhcmVudC5vcGVuX3BhbmVsKSB0aGlz
LnBhcmVudC5vcGVuX3BhbmVsLmNsb3NlKCk7CiAgICBpZiAodGhpcy50YWIpIHRoaXMudGFiLnNo
b3coKTsKICAgIHZhciBhZCA9IHRoaXMuZWxlbWVudC5kb3duKCcudHBfdGlsZV9hZF9jb250YWlu
ZXInKTsKICAgIGlmIChhZCkgYWQuaW5uZXJIVE1MID0gVGltZXNQZW9wbGUuVGV4dC5hZFRleHQ7
CiAgICB0aGlzLmVsZW1lbnQuc2hvdygpOwogICAgaWYgKHRoaXMub3B0aW9ucy5zaGFkb3cpIHsK
ICAgICAgdGhpcy5zaGFkb3cgPSBuZXcgU2hhZG93KHRoaXMuZWxlbWVudCk7CiAgICB9CiAgICB0
aGlzLnBhcmVudC5vcGVuX3BhbmVsID0gdGhpczsKICB9LAogIAogIGNsb3NlOiBmdW5jdGlvbigp
IHsKICAgIGNvbnNvbGUubG9nKCdjbG9zaW5nIHBhbmVsJyk7CiAgICB0aGlzLmVsZW1lbnQuaGlk
ZSgpOwogICAgdmFyIGFkID0gdGhpcy5lbGVtZW50LmRvd24oJy50cF90aWxlX2FkX2NvbnRhaW5l
cicpOwogICAgaWYgKGFkKSBhZC5pbm5lckhUTUwgPSAnJzsKICAgIGlmICh0aGlzLnRhYikgdGhp
cy50YWIuaGlkZSgpOwogICAgaWYgKHRoaXMuc2hhZG93KSB7CiAgICAgIHRoaXMuc2hhZG93LmRl
c3Ryb3koKTsKICAgICAgZGVsZXRlIHRoaXMuc2hhZG93OwogICAgfQogICAgdGhpcy5wYXJlbnQu
b3Blbl9wYW5lbCA9IG51bGw7CiAgfQogIAp9KTsvKgokSWQ6IGZpcnN0cnVuLmpzIDUzNjcgMjAw
OC0wOS0xOCAyMjoyODozOFogY2Nvcmxpc3MgJAooYykgMjAwOCBUaGUgTmV3IFlvcmsgVGltZXMg
Q29tcGFueQoqLwoKVGltZXNQZW9wbGUuZmlyc3RSdW5WaWV3ID0gewogIAogIGluaXRpYWxpemU6
IGZ1bmN0aW9uKHBhcmVudCkgewogICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICB0aGlzLmNv
bnRyb2xsZXIgPSBUaW1lc1Blb3BsZS5Db250cm9sbGVyOwogICAgdGhpcy51c2VyID0gVGltZXNQ
ZW9wbGUuVXNlci5nZXRJbnN0YW5jZSgpOwogICAgcmV0dXJuIHRoaXM7CiAgfSwKCiAgCiAgZHJh
d0ZpcnN0UnVuOiBmdW5jdGlvbigpIHsKICAgIHZhciBodG1sID0gJzxoND5XZWxjb21lIHRvIFRp
bWVzUGVvcGxlPC9oND48YSBpZD0iVFBfaW5mb2xpbmsiIGNsYXNzPSJ0b29sYmFyX2J1dHRvbiIg
IG9uY2xpY2s9InJldHVybiBmYWxzZSI+V2hhdCZyc3F1bztzIHRoaXM/PC9hPic7CiAgICAkKCdU
UF91c2VyJykudXBkYXRlKGh0bWwpOwogICAgJCgnVFBfcGVvcGxlJykudXBkYXRlKHRoaXMuYnVp
bGRGaXJzdFN0ZXAoKSkuYWRkQ2xhc3NOYW1lKCdmaXJzdHJ1bicpOwogICAgCiAgICB0aGlzLmNv
bnRyb2xsZXIubWluaW1pemVkVmlldy5idXR0b24udXBkYXRlKCc8YT5UaW1lc1Blb3BsZTwvYT4n
KTsKICAgIAogICAgdGhpcy51c2VyLmZyaWVuZHNBY3Rpb25zID0gdGhpcy51c2VyLmZyaWVuZHNB
Y3Rpb25zIHx8IFtdOwogICAgRXZlbnQub2JzZXJ2ZSgkKCdUUF9pbmZvbGluaycpLCAnY2xpY2sn
LCB0aGlzLm9wZW5JbmZvLmJpbmQodGhpcyksIHRydWUpOwogICAgaWYgKCQoJ1RQX2dldF9zdGFy
dGVkX2J1dHRvbicpKSBFdmVudC5vYnNlcnZlKCQoJ1RQX2dldF9zdGFydGVkX2J1dHRvbicpLCdj
bGljaycsIHRoaXMub25DbGlja0dldFN0YXJ0ZWQuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICBpZiAo
JCgnVFBfcmVnaXN0ZXJfbGluaycpKSBFdmVudC5vYnNlcnZlKCQoJ1RQX3JlZ2lzdGVyX2xpbmsn
KSwnY2xpY2snLCB0aGlzLm9uQ2xpY2tSZWdpc3Rlci5iaW5kKHRoaXMpLCB0cnVlKTsKICAgIGlm
ICgkKCdUUF9sb2dpbl9saW5rJykpIEV2ZW50Lm9ic2VydmUoJCgnVFBfbG9naW5fbGluaycpLCdj
bGljaycsIHRoaXMub25DbGlja0xvZ2luLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyksIHRydWUp
OwogICAgJCgnVFBfbWluaW1pemVfYnV0dG9uX2d1ZXN0Jykub2JzZXJ2ZSgnY2xpY2snLCB0aGlz
LnBhcmVudC5taW5pbWl6ZS5iaW5kKHRoaXMucGFyZW50KSk7CiAgfSwKICAKICBidWlsZEZpcnN0
U3RlcDogZnVuY3Rpb24oKSB7CiAgICAvLyBjb25zb2xlLndhcm4odGhpcy51c2VyKQogICAgdmFy
IGRpc21pc3NCdXR0b24gPSAnPGEgaWQ9IlRQX21pbmltaXplX2J1dHRvbl9ndWVzdCIgY2xhc3M9
InRvb2xiYXJfYnV0dG9uIiAgb25jbGljaz0icmV0dXJuIGZhbHNlIj5ObywgdGhhbmtzPC9hPic7
CiAgICBpZiAodGhpcy51c2VyLmF0dHJpYnV0ZXMudWlkKSB7CiAgICAgIHJldHVybiAnPGg0Pjxh
ICBpZD0iVFBfZ2V0X3N0YXJ0ZWRfYnV0dG9uIiBjbGFzcz0iYnV0dG9uIj5HZXQgU3RhcnRlZDwv
YT48L2g0PicgICsgZGlzbWlzc0J1dHRvbjsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiAnPGg0
PjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vbG9naW4/VVJJPScgKyBlbmNvZGVVUkko
bG9jYXRpb24uaHJlZikgKyAnIiBpZD0iVFBfbG9naW5fbGluayI+TG9nIEluPC9hPiBvciA8YSAg
aWQ9IlRQX3JlZ2lzdGVyX2xpbmsiPlJlZ2lzdGVyPC9hPiA8L2g0PicgKyBkaXNtaXNzQnV0dG9u
OwogICAgfQogIH0sCiAgCiAgb3BlbkluZm86IGZ1bmN0aW9uKCkgewogICAgdGhpcy5wYXJlbnQu
ZHJhd0luZm8oKTsKICB9LAogIAogIG9uQ2xpY2tHZXRTdGFydGVkOiBmdW5jdGlvbigpIHsKICAg
IHRoaXMucGFyZW50LmRyYXdTaWdudXAoKTsKICB9LAogIAogIG9uQ2xpY2tSZWdpc3RlcjogZnVu
Y3Rpb24oKSB7CiAgICB0aGlzLnBhcmVudC5kcmF3U2lnbnVwKCk7CiAgfSwKICAKICBvbkNsaWNr
TG9naW46IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBFdmVudC5zdG9wKGV2ZW50KTsKICAgIHRoaXMu
cGFyZW50LmRyYXdMb2dpbigpOwogIH0KICAKfTsvKgokSWQ6IGZlZWQuanMgNjI0MCAyMDA4LTEw
LTI5IDE1OjQzOjIwWiBzYW50ZXAgJAooYykgMjAwOCBUaGUgTmV3IFlvcmsgVGltZXMgQ29tcGFu
eQoqLwoKVGltZXNQZW9wbGUuRmVlZFZpZXcgPSBDbGFzcy5jcmVhdGUoewogIAogIGluaXRpYWxp
emU6IGZ1bmN0aW9uKGVsZW1lbnQsIHBhcmVudCkgewogICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7
CiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpLmFkZENsYXNzTmFtZSgndGltZXNwZW9wbGVf
cGFuZWwnKS5zaG93KCk7CiAgICB0aGlzLnVzZXIgPSBUaW1lc1Blb3BsZS5Vc2VyLmdldEluc3Rh
bmNlKCk7CiAgICB0aGlzLnVzZXIucmVnaXN0ZXIodGhpcyk7CiAgICBUaW1lc1Blb3BsZS5BY3Rp
dml0eS5yZWdpc3Rlcih0aGlzKTsKICAgIAogICAgLy8gY29uc29sZS53YXJuKCdpbnN0YW50aWF0
ZScsIFRpbWVzUGVvcGxlLkZlZWRDb250ZW50VmlldykKICAgIHRoaXMuZmVlZGNvbnRlbnQgPSBu
ZXcgVGltZXNQZW9wbGUuRmVlZENvbnRlbnRWaWV3KHRoaXMuZWxlbWVudC5kb3duKCcuVFBfZmVl
ZF9jb250ZW50JykpOwogICAgdGhpcy5mZWVkSGVpZ2h0ID0gJzIzMnB4JzsgLy9zbyB0aGUgZmVl
ZCBkb2Vzbid0IGNvdmVyIHRoZSBhcnRpY2xlIGhlYWRsaW5lIGFuZCB0b29scyAvL2RvY3VtZW50
LnZpZXdwb3J0LmdldEhlaWdodCgpLzIgKyAncHgnOwogICAgdmFyIGZlZWRMaW5rID0gJCgnVFBf
ZmVlZF90b2dnbGUnKTsKICAgIGlmIChmZWVkTGluaykgewogICAgICBFdmVudC5vYnNlcnZlKGZl
ZWRMaW5rLCAiY2xpY2siLCB0aGlzLnRvZ2dsZUZlZWQuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAg
IC8vIEV2ZW50Lm9ic2VydmUoZmVlZExpbmssICJtb3VzZW92ZXIiLCB0aGlzLnRlYXNlRmVlZC5i
aW5kKHRoaXMpLCB0cnVlKTsKICAgICAgLy8gRXZlbnQub2JzZXJ2ZShmZWVkTGluaywgIm1vdXNl
b3V0IiwgdGhpcy51bnRlYXNlRmVlZC5iaW5kKHRoaXMpLCB0cnVlKTsKICAgIH0KICB9LAogIAog
IG9uUmVzaXplOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuc2hhZG93LnVwZGF0ZVNoYWRvdygpOwog
IH0sCgogIGRyYXdGZWVkOiBmdW5jdGlvbihsZW5ndGgpIHsKICAgIGNvbnNvbGUubG9nKCdkcmF3
aW5nIG1haW4gZmVlZCcsIHRoaXMuZmVlZGNvbnRlbnQpOwogICAgdGhpcy5mZWVkY29udGVudC5k
cmF3KGxlbmd0aCk7CiAgfSwKICAKICB0ZWFzZUZlZWQ6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5l
bGVtZW50LmFkZENsYXNzTmFtZSgndGVhc2UnKTsKICB9LAogIAogIHVudGVhc2VGZWVkOiBmdW5j
dGlvbigpIHsKICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzc05hbWUoJ3RlYXNlJyk7CiAgfSwK
ICAKICB0b2dnbGVGZWVkOiBmdW5jdGlvbigpIHsKICAgIGNvbnNvbGUubG9nKCd0b2dnbGUgZmVl
ZCcpOwogICAgaWYgKCQoJ1RQX2Zhdm9yaXRlc19wYW5lJykpeyAKICAgICAgJCgnVFBfZmF2b3Jp
dGVzX3BhbmUnKS5oaWRlKCk7CiAgICB9OwoKICAgIGlmICgkKCdUUF9zZXR0aW5nc19wYW5lJykp
IHsKICAgICAgJCgnVFBfc2V0dGluZ3NfcGFuZScpLmhpZGUoKTsKICAgIH07CiAgICAKICAgICQo
J1RQX2ZlZWRfdG9nZ2xlJykudG9nZ2xlQ2xhc3NOYW1lKCdvcGVuJyk7CiAgICAKICAgIGlmICh0
aGlzLmVsZW1lbnQuaGFzQ2xhc3NOYW1lKCdvcGVuJykpIHsKICAgICAgdGhpcy5jbG9zZSgpOwog
ICAgfSBlbHNlIHsKICAgICAgdGhpcy5vcGVuKCk7CiAgICB9CiAgfSwKICAKICAvL1RPRE8gY2Fu
IHRoaXMgaW5oZXJpdCBQYW5lbCBpbnN0ZWFkPz8KICBvcGVuOiBmdW5jdGlvbihoZWlnaHQpIHsK
ICAgIHRoaXMuZHJhd0ZlZWQoKTsKICAgIHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAoaGVp
Z2h0IHx8IHRoaXMuZmVlZEhlaWdodCk7CiAgICB0aGlzLnNoYWRvdyA9IG5ldyBTaGFkb3codGhp
cy5lbGVtZW50KTsKICAgIHZhciBhZCA9ICQoJ1RQX2ZlZWRfdGFiJykuZG93bignLnRwX3RpbGVf
YWRfY29udGFpbmVyJyk7CiAgICBpZiAoYWQpIGFkLmlubmVySFRNTCA9IFRpbWVzUGVvcGxlLlRl
eHQuYWRUZXh0OwogICAgCiAgICAkKCdUUF9mZWVkX3RhYicpLmFkZENsYXNzTmFtZSgnYWN0aXZl
Jykuc2hvdygpLnNldFN0eWxlKHt2aXNpYmlsaXR5Oid2aXNpYmxlJ30pOwogICAgdGhpcy5lbGVt
ZW50LmFkZENsYXNzTmFtZSgnb3BlbicpLnNldFN0eWxlKHt0b3A6JzM1cHgnfSk7CiAgICB0aGlz
LnJlc2l6YWJsZSA9IHRoaXMucmVzaXphYmxlIHx8IG5ldyBSZXNpemFibGUoJ1RQX2ZlZWQnLHtj
b25zdHJhaW50Oid2ZXJ0aWNhbCcsIGhhbmRsZTogJ1RQX2ZlZWRfaGFuZGxlJywgc3RhcnRlZmZl
Y3Q6IG51bGwsIGVuZGVmZmVjdDogdGhpcy5zaGFkb3cudXBkYXRlU2hhZG93LmJpbmQodGhpcy5z
aGFkb3cpLCBtaW46IDQwfSk7CiAgICBSZXNpemFibGVzLmFkZE9ic2VydmVyKHRoaXMpOwogICAg
dGhpcy5vblJlc2l6ZSgpOwogICAgaWYgKHRoaXMucGFyZW50Lm9wZW5fcGFuZWwpIHRoaXMucGFy
ZW50Lm9wZW5fcGFuZWwuY2xvc2UoKTsKICAgIHRoaXMucGFyZW50Lm9wZW5fcGFuZWwgPSB0aGlz
OwogIH0sCiAgCiAgY2xvc2U6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5mZWVkSGVpZ2h0ID0gdGhp
cy5lbGVtZW50LnN0eWxlLmhlaWdodCB8fCB0aGlzLmZlZWRIZWlnaHQ7CiAgICB0aGlzLmVsZW1l
bnQuc3R5bGUuaGVpZ2h0ID0gbnVsbDsKICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzc05hbWUo
J29wZW4nKS5zZXRTdHlsZSh7dG9wOicwJ30pOwogICAgdmFyIGFkID0gJCgnVFBfZmVlZF90YWIn
KS5kb3duKCcudHBfdGlsZV9hZF9jb250YWluZXInKTsKICAgIGlmIChhZCkgYWQuaW5uZXJIVE1M
ID0gJyc7CiAgICAKICAgICQoJ1RQX2ZlZWRfdG9nZ2xlJykucmVtb3ZlQ2xhc3NOYW1lKCdvcGVu
Jyk7CiAgICAkKCdUUF9mZWVkX3RhYicpLnJlbW92ZUNsYXNzTmFtZSgnYWN0aXZlJykuaGlkZSgp
OwogICAgdGhpcy5zaGFkb3cuZGVzdHJveSgpOwogICAgY29uc29sZS5sb2coJ2Rlc3Ryb3kgc2hh
ZG93Jyk7CiAgICBkZWxldGUgdGhpcy5zaGFkb3c7CiAgICB0aGlzLnBhcmVudC5vcGVuX3BhbmVs
ID0gbnVsbDsKICB9LAogIAogIHVwZGF0ZTogZnVuY3Rpb24obXNnKSB7CiAgICBzd2l0Y2gobXNn
LmV2ZW50KSB7CiAgICBjYXNlICdhY3Rpb24gc2F2ZWQnOgogICAgY2FzZSAndXNlciBmcmllbmRz
IGFjdGlvbnMgdXBkYXRlZCc6CiAgICAgIGNvbnNvbGUubG9nKCd1c2VyIGZyaWVuZHMgYWN0aW9u
cyB1cGRhdGVkJyk7CiAgICAgIHRoaXMuZHJhd0ZlZWQoKTsKICAgICAgYnJlYWs7CiAgICB9CiAg
fQogIAp9KTsvKgokSWQ6IGZlZWRjb250ZW50LmpzIDU1MTAgMjAwOC0wOS0yMiAxNjoyMzo1MFog
c2FudGVwICQKKGMpIDIwMDggVGhlIE5ldyBZb3JrIFRpbWVzIENvbXBhbnkKKi8KClRpbWVzUGVv
cGxlLkZlZWRDb250ZW50VmlldyA9IENsYXNzLmNyZWF0ZSh7CiAgCiAgaW5pdGlhbGl6ZTogZnVu
Y3Rpb24oZWxlbWVudCwgZGF0YSkgewogICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDsKICAgIHRo
aXMuZGF0YSA9IGRhdGEgfHwgVGltZXNQZW9wbGUudXNlci5mcmllbmRzQWN0aW9uczsKICAgIC8v
IGNvbnNvbGUubG9nKHRoaXMuZGF0YSkKICB9LAogIAogIGRyYXc6IGZ1bmN0aW9uKGxlbmd0aCxk
YXRhKSB7CiAgICB0aGlzLmRhdGEgPSBkYXRhIHx8IFRpbWVzUGVvcGxlLnVzZXIuZnJpZW5kc0Fj
dGlvbnM7CiAgICB0aGlzLmVsZW1lbnQudXBkYXRlKHRoaXMuYnVpbGRGZWVkKGxlbmd0aCkpOwog
IH0sCiAgCiAgLy9UT0RPIG9wdGltaXplCiAgYnVpbGRGZWVkOiBmdW5jdGlvbihsZW5ndGgpIHsK
ICAgIHZhciBhY3Rpb25zID0gdGhpcy5kYXRhOwogICAgaWYgKCFhY3Rpb25zIHx8ICFhY3Rpb25z
Lmxlbmd0aCkgcmV0dXJuOwogICAgCiAgICBsZW5ndGggPSBsZW5ndGggfHwgYWN0aW9ucy5sZW5n
dGg7CiAgICB2YXIgaHRtbCA9IFtdOwogICAgaHRtbC5wdXNoKCc8dGFibGU+Jyk7CiAgICBmb3Ig
KHZhciBpPTA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICB2YXIgYWN0aW9uID0gYWN0aW9uc1tp
XTsKICAgICAgaWYgKGkgPT0gMjUpIGJyZWFrOwogICAgICAKICAgICAgdmFyIGQgPSBuZXcgRGF0
ZShhY3Rpb24uZGF0ZV91cGRhdGVkKTsKCiAgICAgIGlmIChkID09ICJJbnZhbGlkIERhdGUiIHx8
IGlzTmFOKGQpKSB7CiAgICAgICAgdmFyIGRhdGVTdHIgPSBhY3Rpb24uZGF0ZV91cGRhdGVkLnJl
cGxhY2UoLy0vZywgJy8nKTsKICAgICAgICBkID0gbmV3IERhdGUoZGF0ZVN0cik7CiAgICAgIH0K
ICAgICAgCiAgICAgIAogICAgICBpZiAoZC5nZXREYXRlKCkgPT0gbmV3IERhdGUoKS5nZXREYXRl
KCkpIHsKICAgICAgICB2YXIgbWhvdXJzID0gZC5nZXRIb3VycygpOwogICAgICAgIHZhciBob3Vy
cyA9IG1ob3VycyA+IDEyID8gbWhvdXJzIC0gMTIgOiBtaG91cnM7CiAgICAgICAgdmFyIG1pbnV0
ZXMgPSBkLmdldE1pbnV0ZXMoKS50b1BhZGRlZFN0cmluZygyKTsKICAgICAgICB2YXIgcGVyaW9k
ID0gbWhvdXJzIDwgMTIgPyAnYW0nIDogJ3BtJzsKICAgICAgICBhY3Rpb24uZGF0ZSA9IGhvdXJz
ICsgJzonICsgbWludXRlcyArICcgJyArIHBlcmlvZDsKICAgICAgfSBlbHNlIHsKICAgICAgICBh
Y3Rpb24uZGF0ZSA9IFsiSmFuIiwgIkZlYiIsICJNYXIiLCAiQXByIiwgIk1heSIsICJKdW4iLCAi
SnVsIiwgIkF1ZyIsICJTZXAiLCAiT2N0IiwgIk5vdiIsICJEZWMiXVtkLmdldE1vbnRoKCldICsg
JyAnICsgZC5nZXREYXRlKCk7CiAgICAgIH0KICAgICAgCiAgICAgIGlmIChhY3Rpb24udmVyYiA9
PSAnY29tbWVudGVkJykgewogICAgICAgIGFjdGlvbi52ZXJiID0gJ2NvbW1lbnRlZCBvbic7CiAg
ICAgIH0KICAgICAgCiAgICAgIGFjdGlvbi5vYmplY3RfdHlwZSA9IGFjdGlvbi5vYmplY3RfdHlw
ZS50b0xvd2VyQ2FzZSgpOwogICAgICAKICAgICAgaWYoYWN0aW9uLnZlcmIpIHsKICAgICAgICBh
Y3Rpb24uYXJ0aWNsZSA9IGFjdGlvbi5vYmplY3RfdHlwZS5jaGFyQXQoMCkubWF0Y2goL1thZWlv
dV0vaWcpID8gJ2FuJyA6ICdhJzsKICAgICAgICBhY3Rpb24ucHVuY3R1YXRpb24gPSAnOicKICAg
ICAgfQogICAgICBlbHNlIHsKICAgICAgICBhY3Rpb24uYXJ0aWNsZSA9IGFjdGlvbi5wdW5jdHVh
dGlvbiA9ICcnOwogICAgICB9CgogICAgICB2YXIgc3RyaW5nX2xlbmd0aCA9IChhY3Rpb24uYWN0
b3JEaXNwbGF5bmFtZSArIGFjdGlvbi52ZXJiICsgYWN0aW9uLmFydGljbGUgKyBhY3Rpb24ub2Jq
ZWN0X3R5cGUpLmxlbmd0aCArIDU7CiAgICAgIGFjdGlvbi50cnVuY2F0ZWRfb2JqZWN0ID0gYWN0
aW9uLm9iamVjdC50cnVuY2F0ZSg4MCAtIHN0cmluZ19sZW5ndGgpOwogICAgICBhY3Rpb24ueW91
ID0gYWN0aW9uLmFjdG9ySWQgPT0gVGltZXNQZW9wbGUudXNlci5hdHRyaWJ1dGVzLnVpZCA/ICd5
b3UnIDogJyc7CiAgICAgIGFjdGlvbi51c2VycGFnZSA9IFRQQ09ORklHLmhvc3QgKyAnL3ZpZXcv
dXNlci8nICsgYWN0aW9uLmFjdG9ySWQ7CiAgICAgIHZhciBhY3Rpb25faHRtbCA9ICgnPHRyPjx0
ZD48YSBocmVmPSIje3VzZXJwYWdlfSI+PGltZyBjbGFzcz0iVFBfYXZhdGFyICN7eW91fSIgc3Jj
PSIje3BpY1VSTH0iIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PC9hPjwvdGQ+IDx0ZD48c3BhbiBj
bGFzcz0iVFBfc3RvcnkiPjxhIGhyZWY9IiN7dXNlcnBhZ2V9Ij4je2FjdG9yRGlzcGxheW5hbWV9
PC9hPiAje3ZlcmJ9ICN7YXJ0aWNsZX0gI3tvYmplY3RfdHlwZX0je3B1bmN0dWF0aW9ufSA8L3Nw
YW4+JysKICAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iVFBfb2JqZWN0Ij48
YSBocmVmPSIje29iamVjdF91cmx9IiB0aXRsZT0iI3tvYmplY3R9Ij4je3RydW5jYXRlZF9vYmpl
Y3R9PC9hPjwvc3Bhbj48L3RkPiA8dGQgY2xhc3M9InRpbWVzdGFtcCI+I3tkYXRlfTwvdGQ+Jyku
aW50ZXJwb2xhdGUoYWN0aW9uKTsKICAgICAgaHRtbC5wdXNoKGFjdGlvbl9odG1sKTsgICAgICAg
ICAKICAgIH0KICAgIGh0bWwucHVzaCgnPC90YWJsZT4nKTsKICAgIC8vIGNvbnNvbGUud2FybihU
aW1lc1Blb3BsZS51c2VyLmF0dHJpYnV0ZXMpCiAgICByZXR1cm4gaHRtbC5qb2luKCcnKS5pbnRl
cnBvbGF0ZShUaW1lc1Blb3BsZS51c2VyLmF0dHJpYnV0ZXMpOwogIH0KICAKfSk7LyoKJElkOiBz
ZXR0aW5ncy5qcyA2MjQyIDIwMDgtMTAtMjkgMTU6NTk6NDBaIHNhbnRlcCAkCihjKSAyMDA4IFRo
ZSBOZXcgWW9yayBUaW1lcyBDb21wYW55CiovCgpUaW1lc1Blb3BsZS5JblBsYWNlRWRpdG9yUG9p
bnRlciA9IEFqYXguSW5QbGFjZUVkaXRvcjsKVGltZXNQZW9wbGUuSW5QbGFjZUVkaXRvciA9IENs
YXNzLmNyZWF0ZShUaW1lc1Blb3BsZS5JblBsYWNlRWRpdG9yUG9pbnRlciwgewogIAogIGluaXRp
YWxpemU6IGZ1bmN0aW9uKCRzdXBlciwgZWxlbWVudCwgb3B0aW9ucykgewogICAgLy8gRklYTUUg
aGFjayByZXN0b3JlIEFqYXguSW5QbGFjZUVkaXRvciBmcm9tIHN1cGVyY2xhc3MgaW4gY2FzZSBp
dCBoYXMgYmVlbiBkZWxldGVkIGJ5IGFub3RoZXIgcHJvdG90eXBlLmpzCiAgICAvLyBiZWNhdXNl
IGl0J3MgY2FsbGVkIHN0YXRpY2FsbHkgZnJvbSB0aGUgc3VwZXJjbGFzcyBjb25zdHJ1Y3Rvcgog
ICAgQWpheC5JblBsYWNlRWRpdG9yID0gQWpheC5JblBsYWNlRWRpdG9yIHx8IFRpbWVzUGVvcGxl
LkluUGxhY2VFZGl0b3Iuc3VwZXJjbGFzczsKICAgICRzdXBlcihlbGVtZW50LCAnaHR0cDovLycs
IG9wdGlvbnMpOyAvL2R1bW15IHVybCBwYXJhbSBmb3Igc3VwZXJjbGFzcwogIH0sCiAgCiAgaGFu
ZGxlRm9ybVN1Ym1pc3Npb246IGZ1bmN0aW9uKGUpIHsKICAgIHZhciBmb3JtID0gdGhpcy5fZm9y
bTsKICAgIHZhciB2YWx1ZSA9ICRGKHRoaXMuX2NvbnRyb2xzLmVkaXRvcik7CiAgICB0aGlzLnBy
ZXBhcmVTdWJtaXNzaW9uKCk7CiAgICB2YXIgcGFyYW1zID0gdGhpcy5vcHRpb25zLmNhbGxiYWNr
KGZvcm0sIHZhbHVlKSB8fCAnJzsKICAgIGlmIChPYmplY3QuaXNTdHJpbmcocGFyYW1zKSkgcGFy
YW1zID0gcGFyYW1zLnRvUXVlcnlQYXJhbXMoKTsKICAgIHBhcmFtcy5lZGl0b3JJZCA9IHRoaXMu
ZWxlbWVudC5pZDsKICAgIHRoaXMubGVhdmVFZGl0TW9kZSgpOwogICAgaWYgKGUpIEV2ZW50LnN0
b3AoZSk7CiAgfQp9KTsKClRpbWVzUGVvcGxlLnNldHRpbmdzVmlldyA9IENsYXNzLmNyZWF0ZShU
aW1lc1Blb3BsZS5QYW5lbCwgewogIAogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCRzdXBlciwgcGFy
ZW50KSB7CiAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwog
ICAgZWxlbWVudC5pZCA9ICdUUF9zZXR0aW5nc19wYW5lJzsKICAgICQoJ1RQX2lubmVyJykuYXBw
ZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAkc3VwZXIocGFyZW50LCBlbGVtZW50LCAnU2V0dGluZ3Mn
KTsKICAgIFRpbWVzUGVvcGxlLnVzZXIucmVnaXN0ZXIodGhpcyk7CiAgICB0aGlzLmRyYXcoKTsK
ICB9LAogIAogIGRyYXc6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5jb250YWluZXIudXBkYXRlKHRo
aXMuYnVpbGRDb250ZW50KCkpOwogICAgdGhpcy5sb2NhdGlvbkZpZWxkID0gbmV3IFRpbWVzUGVv
cGxlLkluUGxhY2VFZGl0b3IoCiAgICAgICdUUF9sb2NhdGlvbicsCiAgICAgIHtjYWxsYmFjazog
dGhpcy51cGRhdGVMb2NhdGlvbi5iaW5kKHRoaXMpLCBleHRlcm5hbENvbnRyb2w6ICdUUF9sb2Nh
dGlvbl9lZGl0X2xpbmsnLCBjYW5jZWxMaW5rOiBmYWxzZSwgb2tUZXh0OiAnU2F2ZScgfQogICAg
KTsKICAgIHZhciBUUF9waWNfZm9ybSA9ICQoJ1RQX3BpY19mb3JtJyk7CiAgICBFdmVudC5vYnNl
cnZlKFRQX3BpY19mb3JtLCdzdWJtaXQnLCBmdW5jdGlvbigpe30sIHRydWUpOwogICAgRXZlbnQu
b2JzZXJ2ZShUUF9waWNfZm9ybVsncHJvZmlsZUltZyddLCdjaGFuZ2UnLCB0aGlzLnN1Ym1pdElt
YWdlLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyksIHRydWUpOwogICAgRXZlbnQub2JzZXJ2ZSgk
KCdUUF9zaGFyaW5nX29uJyksImNsaWNrIiwgdGhpcy51cGRhdGVTaGFyaW5nLCB0cnVlKTsKICAg
IEV2ZW50Lm9ic2VydmUoJCgnVFBfc2hhcmluZ19vZmYnKSwiY2xpY2siLCB0aGlzLnVwZGF0ZVNo
YXJpbmcsIHRydWUpOwogICAgRXZlbnQub2JzZXJ2ZSgkKCdUUF9kb25lX3NldHRpbmdzJyksImNs
aWNrIiwgdGhpcy5jbG9zZS5iaW5kKHRoaXMpLCB0cnVlKTsKICB9LAogIAogIGJ1aWxkQ29udGVu
dDogZnVuY3Rpb24oKSB7CiAgICB2YXIgdXNlciA9IFRpbWVzUGVvcGxlLnVzZXI7CiAgICB1c2Vy
LmF0dHJpYnV0ZXMuc2hhcmluZ19vbiAgPSB1c2VyLmF0dHJpYnV0ZXMuc2hhcmluZyA/ICdjaGVj
a2VkPSJjaGVja2VkIicgOiAnJzsKICAgIHVzZXIuYXR0cmlidXRlcy5zaGFyaW5nX29mZiA9IHVz
ZXIuYXR0cmlidXRlcy5zaGFyaW5nID8gJycgOiAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgdmFy
IGh0bWwgPSAKICAgIFsKICAgICc8ZGl2IGNsYXNzPSJpbnNldCI+JywKICAgICAgJzxkaXYgY2xh
c3M9Im1vZHVsZSB3cmFwIGZpcnN0Ij4nLAogICAgICAgICc8ZGl2IGNsYXNzPSJ0cF90aWxlX2Fk
X2NvbnRhaW5lciI+PC9kaXY+JywKICAgICAgICAnPGRpdj48aDMgc3R5bGU9ImRpc3BsYXk6aW5s
aW5lIj4je2Rpc3BsYXluYW1lfTwvaDM+Jm5ic3A7Jm5ic3A7PHNwYW4gaWQ9IlRQX2xvY2F0aW9u
Ij4je2xvY2F0aW9ufTwvc3Bhbj4gPHNwYW4gaWQ9IlRQX2xvY2F0aW9uX2VkaXRfbGluayI+PGEg
Y2xhc3M9InRvb2xiYXJfYnV0dG9uIj5jaGFuZ2UgbG9jYXRpb248L2E+PC9zcGFuPjwvZGl2Pics
CiAgICAgICAgJzxicj4nLAogICAgICAgICc8ZGl2IGNsYXNzPSJjb2x1bW4iIGlkPSJUUF9wcm9m
aWxlIj4nLAogICAgICAgICAgJzxkaXYgY2xhc3M9IndyYXAiPicsCiAgICAgICAgICAgICc8ZGl2
IGlkPSJwcmV2aWV3QXJlYSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+JywKICAgICAgICAg
ICAgJzxkaXYgY2xhc3M9IlRQX2F2YXRhciI+PGEgaHJlZj0iI3t1c2VycGFnZX0iPjxpbWcgY2xh
c3M9InlvdSIgc3JjPSIje3BpY1VSTH0iIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCI+PC9hPjwvZGl2
PicsCiAgICAgICAgICAgICc8aDQ+Q2hhbmdlIEltYWdlPC9oND4nLAogICAgICAgICAgICAnPGZv
cm0gaWQ9IlRQX3BpY19mb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBhY3Rpb249
IicgKyBUUENPTkZJRy5pbWFnZV9zZXJ2aWNlICsgJyIgbWV0aG9kPSJwb3N0Ij4nLAogICAgICAg
ICAgICAnPGlucHV0IGNsYXNzPSJpbnB1dCIgc3R5bGU9IndpZHRoOjIwMHB4O2ZvbnQtc2l6ZTox
MXB4O2ZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyIgdHlwZT0iZmls
ZSIgbmFtZT0icHJvZmlsZUltZyIgLz4nLAogICAgICAgICAgICAnPGlucHV0IHR5cGU9ImhpZGRl
biIgbmFtZT0idXNlcklkIiB2YWx1ZT0iI3t1aWR9IiAvPicsCiAgICAgICAgICAgICc8aW5wdXQg
dHlwZT0iaGlkZGVuIiBuYW1lPSJNQVhfRklMRV9TSVpFIiB2YWx1ZT0iMjA5NzE1MiI+JywKICAg
ICAgICAgICAgJzwvZm9ybT4nLAogICAgICAgICAgICAnPGZvcm0gaWQ9ImNyb3BJbWFnZUZvcm0i
IHN0eWxlPSJkaXNwbGF5Om5vbmUiIGFjdGlvbj0iJyArIFRQQ09ORklHLmltYWdlX3NlcnZpY2Ug
KyAnIiBtZXRob2Q9IlBPU1QiPicsCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBu
YW1lPSJ4MSIgaWQ9IngxIiAvPicsCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBu
YW1lPSJ5MSIgaWQ9InkxIiAvPicsCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBu
YW1lPSJ4MiIgaWQ9IngyIiAvPicsCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBu
YW1lPSJ5MiIgaWQ9InkyIiAvPicsCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBu
YW1lPSJ3aWR0aCIgaWQ9IndpZHRoIiAvPicsCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iaGlk
ZGVuIiBuYW1lPSJoZWlnaHQiIGlkPSJoZWlnaHQiIC8+JywKICAgICAgICAgICAgJzxpbnB1dCB0
eXBlPSJoaWRkZW4iIG5hbWU9InVzZXJJZCIgdmFsdWU9IiN7dWlkfSIgLz4nLAogICAgICAgICAg
ICAnPGRpdiBjbGFzcz0icmlnaHQiPicsCiAgICAgICAgICAgICc8YnV0dG9uIGlkPSJUUF9jcm9w
X2J1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYXBwQnV0dG9uIj48c3Bhbj5TYXZlPC9zcGFu
PjwvYnV0dG9uPicsCiAgICAgICAgICAgICc8L2Rpdj4nLAogICAgICAgICAgICAnPC9mb3JtPics
CiAgICAgICAgICAnPC9kaXY+JywKICAgICAgICAgICc8ZGl2IGlkPSJpbWFnZVdlbGwiIGNsYXNz
PSJpbWFnZVdlbGwgd3JhcCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+JywKICAgICAgICAgICc8L2Rp
dj4nLAogICAgICAgICAgJzxwIGlkPSJpbWFnZUNvcHlyaWdodFRleHQiIHN0eWxlPSJkaXNwbGF5
Om5vbmUiPjxzbWFsbD4je2ltYWdlQ29weXJpZ2h0VGV4dH08L3NtYWxsPjwvcD4nLmludGVycG9s
YXRlKFRpbWVzUGVvcGxlLlRleHQpLAogICAgICAgICc8L2Rpdj4nLAogICAgICAgICc8ZGl2IGNs
YXNzPSJjb2x1bW4gbGFzdCIgaWQ9IlRQX3NoYXJpbmciPicsCiAgICAgICAgICAnPGRpdiBjbGFz
cz0id3JhcCI+JywKICAgICAgICAgICc8aDQgc3R5bGU9ImZsb2F0OmxlZnQiPlR1cm4gU2hhcmlu
Zy4uLjwvaDQ+JywKICAgICAgICAgICc8ZmllbGRzZXQgaWQ9IlRQX3NoYXJpbmdfYnV0dG9ucyI+
JywKICAgICAgICAgICc8aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJUUF9zaGFyaW5nX29uIiBuYW1l
PSJzaGFyaW5nIiB2YWx1ZT0iMSIgI3tzaGFyaW5nX29ufT4gb24gJm5ic3A7Jm5ic3A7IDxpbnB1
dCB0eXBlPSJyYWRpbyIgaWQ9IlRQX3NoYXJpbmdfb2ZmIiBuYW1lPSJzaGFyaW5nIiB2YWx1ZT0i
MCIgI3tzaGFyaW5nX29mZn0+IG9mZiAnLAogICAgICAgICAgJzwvZmllbGRzZXQ+JywKICAgICAg
ICAgICc8L2Rpdj4nLAogICAgICAgICAgJzxwPiN7c2hhcmluZ1RleHR9PC9wPicuaW50ZXJwb2xh
dGUoVGltZXNQZW9wbGUuVGV4dCksCiAgICAgICAgICB0aGlzLmJ1aWxkRmFjZWJvb2tDb250cm9s
KCksCiAgICAgICAgJzwvZGl2PicsCiAgICAgICc8L2Rpdj4nLAogICAgICAnPGRpdiBjbGFzcz0i
bW9kdWxlIHdyYXAiPicsCiAgICAgICc8YnV0dG9uIGlkPSJUUF9kb25lX3NldHRpbmdzIiBzdHls
ZT0idmVydGljYWwtYWxpZ246bWlkZGxlOyBmbG9hdDpyaWdodCIgY2xhc3M9ImFwcEJ1dHRvbiI+
PHNwYW4+Q2xvc2U8L3NwYW4+PC9idXR0b24+JywKICAgICAgJzxwPjxzbWFsbD4je2ZlZWRiYWNr
VGV4dH08L3NtYWxsPjwvcD4nLmludGVycG9sYXRlKFRpbWVzUGVvcGxlLlRleHQpLAogICAgICAn
PC9kaXY+JywKICAgICc8L2Rpdj4nCiAgICBdLmpvaW4oJycpLmludGVycG9sYXRlKHVzZXIuYXR0
cmlidXRlcyk7CiAgICAKICAgIGRlbGV0ZSB1c2VyLmF0dHJpYnV0ZXMuc2hhcmluZ19vbjsgCiAg
ICBkZWxldGUgdXNlci5hdHRyaWJ1dGVzLnNoYXJpbmdfb2ZmOwogICAgCiAgICByZXR1cm4gaHRt
bDsKICB9LAogIAogIGJ1aWxkRmFjZWJvb2tDb250cm9sOiBmdW5jdGlvbigpIHsKICAgIHJldHVy
biAnPHAgc3R5bGU9ImNsZWFyOmxlZnQiPjxhIGhyZWY9Imh0dHA6Ly9hcHBzLmZhY2Vib29rLmNv
bS90aW1lc3Blb3BsZS8iIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cDovL2dyYXBoaWNz
OC5ueXRpbWVzLmNvbS9pbWFnZXMvYXJ0aWNsZS9mdW5jdGlvbnMvZmFjZWJvb2suZ2lmIiBhbHQ9
IkZhY2Vib29rIGxvZ28iPiBUaW1lc1Blb3BsZSBvbiBGYWNlYm9vazwvYT48L3A+JzsKICB9LAog
IAogIHVwZGF0ZVNoYXJpbmc6IGZ1bmN0aW9uKCkgewogICAgdmFyIHZhbHVlID0gcGFyc2VJbnQo
dGhpcy52YWx1ZSwgMTApOwogICAgaWYgKHZhbHVlID09IDEpIHsKICAgICAgaWYgKGNvbmZpcm0o
VGltZXNQZW9wbGUuVGV4dC5zaGFyaW5nTm90aWNlVGV4dCkpIHsKICAgICAgICBUaW1lc1Blb3Bs
ZS51c2VyLmF0dHJpYnV0ZXMuc2hhcmluZyA9IHZhbHVlOwogICAgICAgIFRpbWVzUGVvcGxlLnVz
ZXIuc2F2ZSgpOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHRoaXMuY2hlY2tlZCA9ICcn
OwogICAgICAgICQoJ1RQX3NoYXJpbmdfb2ZmJykuY2hlY2tlZCA9ICdjaGVja2VkJzsKICAgICAg
fQogICAgfSAKICAgIGVsc2UgewogICAgICBUaW1lc1Blb3BsZS51c2VyLmF0dHJpYnV0ZXMuc2hh
cmluZyA9IHZhbHVlOwogICAgICBUaW1lc1Blb3BsZS51c2VyLnNhdmUoKTsKICAgIH0KICB9LAog
IAogIHVwZGF0ZUxvY2F0aW9uOiBmdW5jdGlvbihmb3JtLCB2YWx1ZSkgewogICAgVGltZXNQZW9w
bGUudXNlci51cGRhdGUoe2xvY2F0aW9uOiB2YWx1ZS50cnVuY2F0ZSgzMil9KTsKICAgIFRpbWVz
UGVvcGxlLnVzZXIuc2F2ZSgpOwogIH0sCiAgCiAgc3VibWl0SW1hZ2U6IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICB2YXIgZWxlbWVudCA9IGV2ZW50LmVsZW1lbnQoKTsKICAgIHZhciBmb3JtID0gZWxl
bWVudC51cCgnZm9ybScpOwogICAgZm9ybS5yZXF1ZXN0VGhyb3VnaElmcmFtZSh7CiAgICAgIG9u
Q29tcGxldGU6IHRoaXMub25JbWFnZVN1Ym1pdHRlZC5iaW5kKHRoaXMpCiAgICB9KTsKICAgIEV2
ZW50LnN0b3AoZXZlbnQpOwogIH0sCiAgCiAgb25JbWFnZVN1Ym1pdHRlZDogZnVuY3Rpb24oKSB7
CiAgICBUaW1lc1Blb3BsZS51c2VyLnVwZGF0ZUZ1bGxTaXplSW1hZ2UoKTsKICB9LAogIAogIGxv
YWRGdWxsU2l6ZUltYWdlOiBmdW5jdGlvbigpIHsKICAgIHZhciBpbWcgPSBuZXcgRWxlbWVudCgn
aW1nJyx7aWQ6J2Nyb3BwaW5nSW1nJywgc3JjOiBUaW1lc1Blb3BsZS51c2VyLmF0dHJpYnV0ZXMu
ZnVsbHBpY1VSTH0pOwogICAgJCgnaW1hZ2VXZWxsJykuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIAog
ICAgLy9idWcgaW4gY3JvcHBlci5qcyBsaWJyYXJ5LCBhIGJsYW5rIGNyb3BwZXIgbG9hZHMgYmVm
b3JlIHRoZSBpbWcgaGFzIGxvYWRlZAogICAgaWYgKFByb3RvdHlwZS5Ccm93c2VyLldlYktpdCkg
ewogICAgICBpbWcub2JzZXJ2ZSgnbG9hZCcsIHRoaXMuaW5pdGlhbGl6ZUNyb3BwZXIuYmluZCh0
aGlzKSwgdHJ1ZSk7CiAgICB9IGVsc2UgewogICAgICB0aGlzLmluaXRpYWxpemVDcm9wcGVyKCk7
CiAgICB9OwogIH0sCiAgCiAgaW5pdGlhbGl6ZUNyb3BwZXI6IGZ1bmN0aW9uKCkgewogICAgaWYg
KHRoaXMuY3JvcHBlcikgewogICAgICB0aGlzLmNyb3BwZXIucHJldmlld1dyYXAudXBkYXRlKCcn
KS5zaG93KCk7CiAgICAgIGRlbGV0ZSB0aGlzLmNyb3BwZXI7CiAgICB9CiAgICB0aGlzLmNyb3Bw
ZXIgPSBuZXcgQ3JvcHBlci5JbWdXaXRoUHJldmlldygKICAgICAgJ2Nyb3BwaW5nSW1nJywKICAg
ICAgewogICAgICAgIG1pbldpZHRoOiA2NCwgCiAgICAgICAgbWluSGVpZ2h0OiA2NCwKICAgICAg
ICByYXRpb0RpbTogeyB4OiA2NCwgeTogNjQgfSwKICAgICAgICBkaXNwbGF5T25Jbml0OiB0cnVl
LCAKICAgICAgICBvbkVuZENyb3A6IHRoaXMub25FbmRDcm9wLAogICAgICAgIHByZXZpZXdXcmFw
OiAncHJldmlld0FyZWEnLAogICAgICAgIG9ubG9hZENvb3JkczogeyB4MTogMTAsIHkxOiAxMCwg
eDI6IDc0LCB5MjogNzQgfQogICAgICB9CiAgICApOwogICAgCiAgICB0aGlzLmNyb3BwZXIucHJl
dmlld1dyYXAuc2hvdygpOwogICAgJCgnVFBfcGljX2Zvcm0nKS5oaWRlKCk7CiAgICAkKCdUUF9w
cm9maWxlJykuZG93bignLlRQX2F2YXRhcicpLmhpZGUoKTsKICAgICQoJ2Nyb3BJbWFnZUZvcm0n
KS5zaG93KCk7CiAgICAkKCdpbWFnZUNvcHlyaWdodFRleHQnKS5zaG93KCk7CiAgICAkKCdUUF9w
cm9maWxlJykuZG93bignLmltYWdlV2VsbCcpLnNob3coKTsKICAgIHRoaXMuc2hhZG93LnVwZGF0
ZVNoYWRvdygpOwogICAgJCgnVFBfY3JvcF9idXR0b24nKS5vYnNlcnZlKCdjbGljaycsIHRoaXMu
c3VibWl0Q29vcmRzLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyksIHRydWUpOwogICAgCiAgfSwK
ICAKICByZXNldENyb3BwZXI6IGZ1bmN0aW9uKCkgewogICAgJCgnY3JvcHBpbmdJbWcnKS5zaG93
KCk7CiAgICAkKCdjcm9wSW1hZ2VGb3JtJykuc2hvdygpOwogICAgdGhpcy5jcm9wcGVyLnByZXZp
ZXdXcmFwLnNob3coKTsKICAgIHRoaXMuY3JvcHBlci5yZXNldCgpOwogICAgJCgnVFBfcHJvZmls
ZScpLmRvd24oJy5UUF9hdmF0YXInKS5oaWRlKCk7CiAgICB0aGlzLnNoYWRvdy51cGRhdGVTaGFk
b3coKTsKICB9LAogIAogIHJlbW92ZUNyb3BwZXI6IGZ1bmN0aW9uKCkgewogICAgVGltZXNQZW9w
bGUudXNlci51cGRhdGVJbWFnZSgpOwogICAgJCgnY3JvcHBpbmdJbWcnKS5oaWRlKCk7CiAgICAk
KCdjcm9wSW1hZ2VGb3JtJykuaGlkZSgpOwogICAgJCgnaW1hZ2VDb3B5cmlnaHRUZXh0JykuaGlk
ZSgpOwogICAgJCgnVFBfcGljX2Zvcm0nKS5zaG93KCk7CiAgICAkKCdUUF9wcm9maWxlJykuZG93
bignLmltYWdlV2VsbCcpLmhpZGUoKTsKICAgIHRoaXMuY3JvcHBlci5yZW1vdmUoKTsKICAgIHRo
aXMuc2hhZG93LnVwZGF0ZVNoYWRvdygpOwogIH0sCiAgCiAgc3VibWl0Q29vcmRzOiBmdW5jdGlv
bihldmVudCkgewogICAgdmFyIGVsZW1lbnQgPSBldmVudC5lbGVtZW50KCk7CiAgICB2YXIgZm9y
bSA9IGVsZW1lbnQudXAoJ2Zvcm0nKTsKICAgIGZvcm0ucmVxdWVzdFRocm91Z2hJZnJhbWUoewog
ICAgICBvbkNvbXBsZXRlOiB0aGlzLnJlbW92ZUNyb3BwZXIuYmluZCh0aGlzKQogICAgfSk7CiAg
ICBFdmVudC5zdG9wKGV2ZW50KTsKICB9LAogIAogIG9uRW5kQ3JvcDogZnVuY3Rpb24oY29vcmRz
LCBkaW1lbnNpb25zKSB7CiAgICAkKCAneDEnICkudmFsdWUgPSBjb29yZHMueDE7CiAgICAkKCAn
eTEnICkudmFsdWUgPSBjb29yZHMueTE7CiAgICAkKCAneDInICkudmFsdWUgPSBjb29yZHMueDI7
CiAgICAkKCAneTInICkudmFsdWUgPSBjb29yZHMueTI7CiAgICAkKCAnd2lkdGgnICkudmFsdWUg
PSBkaW1lbnNpb25zLndpZHRoOwogICAgJCggJ2hlaWdodCcgKS52YWx1ZSA9IGRpbWVuc2lvbnMu
aGVpZ2h0OwogIH0sCiAgCiAgdXBkYXRlOiBmdW5jdGlvbihtc2cpIHsKICAgIHN3aXRjaChtc2cu
ZXZlbnQpIHsKICAgIGNhc2UgJ3VzZXIgc2F2ZWQnOgogICAgICAvLyBGSVhNRSBxdWljayBoYWNr
LCBkb24ndCBsZXQgdGhlIHVpIHJlZHJhdyBpZiB0aGUgY3JvcHBlciBpcyBvbiBzY3JlZW4uIE1l
YW5zIGxvY2F0aW9uIHVwZGF0ZXMgd29uJ3QgZGlzcGxheSBkdXJpbmcgaW1hZ2UgZWRpdGluZy4K
ICAgICAgaWYoIXRoaXMuY3JvcHBlcikgewogICAgICAgIHRoaXMuZHJhdygpOyAKICAgICAgfQog
ICAgICBicmVhazsKICAgIGNhc2UgJ3VzZXIgZnVsbCBzaXplIGltYWdlIHVwZGF0ZWQnOgogICAg
ICB0aGlzLmxvYWRGdWxsU2l6ZUltYWdlKCk7CiAgICAgIGJyZWFrOwogICAgY2FzZSAndXNlciBp
bWFnZSB1cGRhdGVkJzoKICAgICAgdGhpcy5jcm9wcGVyLnByZXZpZXdXcmFwLmhpZGUoKTsKICAg
ICAgJCgnVFBfcHJvZmlsZScpLmRvd24oJy5UUF9hdmF0YXInKS5zaG93KCk7CiAgICAgIGJyZWFr
OwogICAgfQogIH0KICAKfSk7CgoKRWxlbWVudC5hZGRNZXRob2RzKCdmb3JtJywgewogIHJlcXVl
c3RUaHJvdWdoSWZyYW1lOiBmdW5jdGlvbihmb3JtLCBvcHRpb25zKSB7CiAgICBmb3JtID0gJChm
b3JtKTsgb3B0aW9ucyA9IE9iamVjdC5jbG9uZShvcHRpb25zIHx8IHsgfSk7CiAgICB2YXIgZnJh
bWVJZCA9ICdGb3JtUmVxdWVzdElmcmFtZSc7CiAgICB2YXIgaWZyYW1lID0gbmV3IEVsZW1lbnQo
J2lmcmFtZScsIHtpZDogZnJhbWVJZCwgbmFtZTogZnJhbWVJZCwgc3R5bGU6ICdwb3NpdGlvbjph
YnNvbHV0ZTsgdG9wOi0xMDAwcHg7bGVmdDotMTAwMHB4J30pOwogICAgZm9ybS50YXJnZXQgPSBm
cmFtZUlkOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwogICAgCiAgICB2
YXIgdXBsb2FkSGFuZGxlciA9IGZ1bmN0aW9uKCkgewogICAgICAgaWZyYW1lLnN0b3BPYnNlcnZp
bmcoJ2xvYWQnLCB1cGxvYWRIYW5kbGVyKTsKICAgICAgIGlmIChPYmplY3QuaXNGdW5jdGlvbihv
cHRpb25zLm9uQ29tcGxldGUpKSBvcHRpb25zLm9uQ29tcGxldGUoKTsKICAgICAgIHNldFRpbWVv
dXQoaWZyYW1lLnJlbW92ZS5iaW5kKGlmcmFtZSksMTAwKTsKICAgIH07CiAgICAKICAgIGlmcmFt
ZS5vYnNlcnZlKCdsb2FkJywgdXBsb2FkSGFuZGxlcik7CiAgICBmb3JtLnN1Ym1pdCgpOwogIH0K
fSk7LyoKJElkOiBzaWdudXAuanMgNjI0MCAyMDA4LTEwLTI5IDE1OjQzOjIwWiBzYW50ZXAgJAoo
YykgMjAwOCBUaGUgTmV3IFlvcmsgVGltZXMgQ29tcGFueQoqLwoKVGltZXNQZW9wbGUuc2lnbnVw
VmlldyA9IENsYXNzLmNyZWF0ZShUaW1lc1Blb3BsZS5QYW5lbCwgewogIAogIGluaXRpYWxpemU6
IGZ1bmN0aW9uKCRzdXBlciwgcGFyZW50KSB7CiAgICB2YXIgZWxlbWVudCA9IG5ldyBFbGVtZW50
KCdkaXYnLCB7aWQ6J1RQX3NpZ251cF9wYW5lJ30pOwogICAgCiAgICAKICAgICQoJ1RQX2lubmVy
JykuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAKICAgICRzdXBlcihwYXJlbnQsIGVsZW1lbnQs
ICdHZXQgU3RhcnRlZCcsIHtwb3NpdGlvbjoncmlnaHQnfSk7CiAgICAKICAgIGlmIChUaW1lc1Bl
b3BsZS51c2VyLmF0dHJpYnV0ZXMudWlkKSB7CiAgICAgIHRoaXMuY29udGFpbmVyLmlubmVySFRN
TCA9IHRoaXMuZm9ybUZvck5ZVE1lbWJlcigpOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5jb250
YWluZXIuaW5uZXJIVE1MID0gdGhpcy5mb3JtRm9yR3Vlc3QoKTsKICAgIH0KICAgIAogICAgdGhp
cy5mb3JtID0gbmV3IFRpbWVzUGVvcGxlLkZvcm0oJ1RQX3NldHRpbmdzJyk7CiAgICAKICAgIGVs
ZW1lbnQuZG93bignLlRQX2NhbmNlbF9idXR0b24nKS5vYnNlcnZlKCdjbGljaycsIHRoaXMuY2xv
c2UuYmluZCh0aGlzKSk7CiAgICBlbGVtZW50LmRvd24oJy5UUF9zdWJtaXRfYnV0dG9uJykub2Jz
ZXJ2ZSgnY2xpY2snLCB0aGlzLnNpZ251cC5iaW5kKHRoaXMpKTsKICAgIGlmIChlbGVtZW50LmRv
d24oJy5UUF9sb2dpbl9saW5rJykpIGVsZW1lbnQuZG93bignLlRQX2xvZ2luX2xpbmsnKS5vYnNl
cnZlKCdjbGljaycsIHRoaXMucGFyZW50LmRyYXdMb2dpbi5iaW5kKHRoaXMucGFyZW50KSwgdHJ1
ZSk7CiAgICAKICAgIFRpbWVzUGVvcGxlLnVzZXIucmVnaXN0ZXIodGhpcyk7CiAgfSwKICAKICBm
b3JtRm9yTllUTWVtYmVyOiBmdW5jdGlvbigpIHsKICAgIHZhciBodG1sID0gCiAgICBbJzxkaXYg
Y2xhc3M9Imluc2V0IHdyYXAiPicsCiAgICAnPGRpdiBjbGFzcz0idHBfdGlsZV9hZF9jb250YWlu
ZXIiPjwvZGl2PicsCiAgICAnPGgzPiN7bWVtYmVyU2lnblVwVGl0bGV9PC9oMz4nLAogICAgJzxk
aXYgY2xhc3M9IndyYXAiPicsCiAgICAnPGZvcm0gaWQ9IlRQX3NldHRpbmdzIiBvbnN1Ym1pdD0i
cmV0dXJuIGZhbHNlIj4nLAogICAgJzxkaXYgY2xhc3M9ImNvbHVtbiI+JywKICAgICc8cCBpZD0i
VFBfc2lnbnVwX2luZm8iPiN7bWVtYmVyU2lnblVwVGV4dH08L3A+JywKICAgICc8cD48c21hbGw+
I3tmYXFBbmRQcml2YWN5TGlua3N9PC9zbWFsbD48L3A+JywKICAgICc8L2Rpdj4nLAogICAgJzxk
aXYgY2xhc3M9ImNvbHVtbiBsYXN0Ij4nLAogICAgVGltZXNQZW9wbGUuRm9ybS5jb250cm9sKCdE
aXNwbGF5IE5hbWUnLCc8aW5wdXQgY2xhc3M9InRleHQiIG5hbWU9ImRpc3BsYXluYW1lIiB2YWx1
ZT0iI3tkaXNwbGF5bmFtZX0iIHNpemU9IjMzIj4nKSwKICAgIFRpbWVzUGVvcGxlLkZvcm0uY29u
dHJvbCgnTG9jYXRpb24nLCc8aW5wdXQgY2xhc3M9InRleHQiIG5hbWU9ImxvY2F0aW9uIiB2YWx1
ZT0iI3tsb2NhdGlvbn0iIHNpemU9IjMzIj4nKSwKICAgICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBu
YW1lPSJzaGFyaW5nIiB2YWx1ZT0iMSI+JywKICAgICc8aHI+JywKICAgICc8ZGl2IGNsYXNzPSJy
aWdodCI+PGJ1dHRvbiB0eXBlPSJyZXNldCIgY2xhc3M9ImFwcEJ1dHRvbiBUUF9jYW5jZWxfYnV0
dG9uIj48c3Bhbj5DYW5jZWw8L3NwYW4+PC9idXR0b24+Jm5ic3A7Jm5ic3A7PGJ1dHRvbiB0eXBl
PSJzdWJtaXQiIGNsYXNzPSJhcHBCdXR0b24gVFBfc3VibWl0X2J1dHRvbiI+PHNwYW4+U2lnbiBV
cDwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nLAogICAgJzwvZGl2PicsCiAgICAnPC9mb3JtPicsCiAg
ICAnPC9kaXY+JywKICAgICc8L2Rpdj4nCiAgICBdLmpvaW4oJycpLmludGVycG9sYXRlKE9iamVj
dC5leHRlbmQoT2JqZWN0LmNsb25lKFRpbWVzUGVvcGxlLnVzZXIuYXR0cmlidXRlcyksIFRpbWVz
UGVvcGxlLlRleHQpKTsKICAgIAogICAgcmV0dXJuIGh0bWw7CiAgICAKICB9LAogIAogIGZvcm1G
b3JHdWVzdDogZnVuY3Rpb24oKSB7CiAgICB2YXIgaHRtbCA9IAogICAgWyc8ZGl2IGNsYXNzPSJp
bnNldCB3cmFwIj4nLAogICAgJzxkaXYgY2xhc3M9InRwX3RpbGVfYWRfY29udGFpbmVyIj48L2Rp
dj4nLAogICAgJzxoMz4je2d1ZXN0U2lnbnVwVGl0bGV9PC9oMz4nLAogICAgJzxkaXYgY2xhc3M9
IndyYXAiPicsCiAgICAnPGRpdiBjbGFzcz0iY29sdW1uIj4nLAogICAgJzxwIGlkPSJUUF9zaWdu
dXBfaW5mbyI+I3tndWVzdFNpZ251cFRleHR9PC9wPicsCiAgICAnPHA+PHNtYWxsPiN7ZmFxQW5k
UHJpdmFjeUxpbmtzfTwvc21hbGw+PC9wPicsCiAgICAnPC9kaXY+JywKICAgICc8ZGl2IGNsYXNz
PSJjb2x1bW4gbGFzdCI+JywKICAgICc8Zm9ybSBpZD0iVFBfc2V0dGluZ3MiIG9uc3VibWl0PSJy
ZXR1cm4gZmFsc2UiPicsCiAgICBUaW1lc1Blb3BsZS5Gb3JtLmNvbnRyb2woJ0Rpc3BsYXkgTmFt
ZScsJzxpbnB1dCBjbGFzcz0idGV4dCIgbmFtZT0iZGlzcGxheW5hbWUiIHZhbHVlPSIiPicpLAog
ICAgVGltZXNQZW9wbGUuRm9ybS5jb250cm9sKCdMb2NhdGlvbicsJzxpbnB1dCBjbGFzcz0idGV4
dCIgbmFtZT0ibG9jYXRpb24iIHZhbHVlPSIiPicpLAogICAgJzxocj4nLAogICAgVGltZXNQZW9w
bGUuRm9ybS5jb250cm9sKCdFLU1haWwnLCc8aW5wdXQgY2xhc3M9InRleHQiIG5hbWU9ImVtYWls
IiB2YWx1ZT0iIj4nKSwKICAgIFRpbWVzUGVvcGxlLkZvcm0uY29udHJvbCgnUGFzc3dvcmQnLCc8
aW5wdXQgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJ0ZXh0IiBuYW1lPSJwYXNzd29yZDEiIHZhbHVl
PSIiPicpLAogICAgVGltZXNQZW9wbGUuRm9ybS5jb250cm9sKCdDb25maXJtIFBhc3N3b3JkJywn
PGlucHV0IHR5cGU9InBhc3N3b3JkIiBjbGFzcz0idGV4dCIgbmFtZT0icGFzc3dvcmQyIiB2YWx1
ZT0iIj4nKSwKICAgICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaGFyaW5nIiB2YWx1ZT0i
MSI+JywKICAgICc8L2Zvcm0+JywKICAgICc8aHI+JywKICAgICc8ZGl2IGNsYXNzPSJyaWdodCI+
PGJ1dHRvbiB0eXBlPSJyZXNldCIgY2xhc3M9ImFwcEJ1dHRvbiBUUF9jYW5jZWxfYnV0dG9uIj48
c3Bhbj5DYW5jZWw8L3NwYW4+PC9idXR0b24+Jm5ic3A7Jm5ic3A7PGJ1dHRvbiB0eXBlPSJzdWJt
aXQiIGNsYXNzPSJhcHBCdXR0b24gVFBfc3VibWl0X2J1dHRvbiI+PHNwYW4+U2lnbiBVcDwvc3Bh
bj48L2J1dHRvbj48L2Rpdj4nLAogICAgJzwvZGl2PicsCiAgICAnPC9kaXY+JywKICAgICc8L2Rp
dj4nCiAgICBdLmpvaW4oJycpLmludGVycG9sYXRlKFRpbWVzUGVvcGxlLlRleHQpOwogICAgCiAg
ICByZXR1cm4gaHRtbDsKICAgIAogIH0sCiAgCiAgc2lnbnVwOiBmdW5jdGlvbigpIHsKICAgIGNv
bnNvbGUubG9nKCdzaWduaW5nIHVwIScpOwogICAgCiAgICBUaW1lc1Blb3BsZS5maXJzdHJ1biA9
IHRydWU7CiAgICB2YXIgYXR0cmlidXRlcyA9IHRoaXMuZm9ybS5lbGVtZW50LnNlcmlhbGl6ZSh0
cnVlKTsKICAgIGF0dHJpYnV0ZXMuc2hhcmluZyAgICA9IE9iamVjdC5pc1VuZGVmaW5lZChhdHRy
aWJ1dGVzLnNoYXJpbmcpICAgID8gMCA6IDE7CiAgICBUaW1lc1Blb3BsZS5Vc2VyLmNyZWF0ZShh
dHRyaWJ1dGVzKTsKICB9LAogIAogIHVwZGF0ZTogZnVuY3Rpb24obXNnKSB7CiAgICBzd2l0Y2go
bXNnLmV2ZW50KSB7CiAgICBjYXNlICd1c2VyIGNyZWF0ZWQnOgogICAgICB0aGlzLmNsb3NlKCk7
CiAgICAgIGJyZWFrOwogICAgY2FzZSAndXNlciBjb3VsZCBub3QgYmUgY3JlYXRlZCc6CiAgICAg
IHRoaXMuZm9ybS5zaG93RXJyb3JzKG1zZy5kYXRhLmVycm9ycyk7CiAgICAgIGJyZWFrOwogICAg
fQogIH0KICAKfSk7LyoKJElkOiBsb2dpbi5qcyA2MjQwIDIwMDgtMTAtMjkgMTU6NDM6MjBaIHNh
bnRlcCAkCihjKSAyMDA4IFRoZSBOZXcgWW9yayBUaW1lcyBDb21wYW55CiovCgpUaW1lc1Blb3Bs
ZS5sb2dpblZpZXcgPSBDbGFzcy5jcmVhdGUoVGltZXNQZW9wbGUuUGFuZWwsIHsKICAKICBpbml0
aWFsaXplOiBmdW5jdGlvbigkc3VwZXIsIHBhcmVudCkgewogICAgdmFyIGVsZW1lbnQgPSBuZXcg
RWxlbWVudCgnZGl2Jywge2lkOidUUF9sb2dpbl9wYW5lbCd9KTsKICAgICRzdXBlcihwYXJlbnQs
IGVsZW1lbnQsICdMb2cgSW4nLCB7cG9zaXRpb246J3JpZ2h0J30pOwogICAgdGhpcy5jb250YWlu
ZXIudXBkYXRlKHRoaXMuYnVpbGRGb3JtKCkpOwogICAgdGhpcy5mb3JtID0gbmV3IFRpbWVzUGVv
cGxlLkZvcm0oJ1RQX2xvZ2luX2Zvcm0nKTsKICAgIAogICAgZWxlbWVudC5kb3duKCcuVFBfc3Vi
bWl0X2J1dHRvbicpLm9ic2VydmUoJ2NsaWNrJywgdGhpcy5sb2dpbi5iaW5kKHRoaXMpLCB0cnVl
KTsKICAgIGVsZW1lbnQuZG93bignLlRQX2NhbmNlbF9idXR0b24nKS5vYnNlcnZlKCdjbGljaycs
IHRoaXMuY2xvc2UuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICBlbGVtZW50LmRvd24oJy5UUF9yZWdp
c3Rlcl9saW5rJykub2JzZXJ2ZSgnY2xpY2snLCB0aGlzLm9uQ2xpY2tSZWdpc3Rlci5iaW5kKHRo
aXMpLCB0cnVlKTsKICAgIAogICAgVGltZXNQZW9wbGUudXNlci5yZWdpc3Rlcih0aGlzKTsKICB9
LAogIAogIGJ1aWxkRm9ybTogZnVuY3Rpb24oKSB7CiAgICB2YXIgdXNlciA9IFRpbWVzUGVvcGxl
LnVzZXI7CiAgICB2YXIgaHRtbCA9IAogICAgWyc8ZGl2IGNsYXNzPSJpbnNldCB3cmFwIj4nLAog
ICAgJzxkaXYgY2xhc3M9InRwX3RpbGVfYWRfY29udGFpbmVyIj48L2Rpdj4nLAogICAgJzxoMz4j
e2xvZ2luVGl0bGV9PC9oMz4nLAogICAgJzxkaXYgY2xhc3M9IndyYXAiPicsCiAgICAnPGRpdiBj
bGFzcz0iY29sdW1uIj4nLAogICAgJzxwIGlkPSJUUF9sb2dpbl9pbmZvIj4je2xvZ2luVGV4dH08
L3A+JywKICAgICc8cD48c21hbGw+I3tmYXFBbmRQcml2YWN5TGlua3N9PC9zbWFsbD48L3A+JywK
ICAgICc8L2Rpdj4nLAogICAgJzxkaXYgY2xhc3M9ImNvbHVtbiBsYXN0Ij4nLAogICAgJzxmb3Jt
IGlkPSJUUF9sb2dpbl9mb3JtIiBvbnN1Ym1pdD0icmV0dXJuIGZhbHNlIj4nLAogICAgVGltZXNQ
ZW9wbGUuRm9ybS5jb250cm9sKCdFLU1haWwgQWRkcmVzcyA8c21hbGw+T3IgTWVtYmVyIElEPC9z
bWFsbD4nLCc8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9InRleHQiIG5hbWU9InVzZXJuYW1lIiBz
aXplPSIzMyI+JyksCiAgICBUaW1lc1Blb3BsZS5Gb3JtLmNvbnRyb2woJ1Bhc3N3b3JkJywnPGlu
cHV0IHR5cGU9InBhc3N3b3JkIiBjbGFzcz0idGV4dCIgbmFtZT0icGFzc3dvcmQiIHNpemU9IjMz
Ij4nKSwKICAgIFRpbWVzUGVvcGxlLkZvcm0uY29udHJvbCgnJywnPGxhYmVsIGNsYXNzPSJpbmxp
bmUiPjxhIGhyZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vZm9yZ290Ij5Gb3Jnb3QgWW91ciBQ
YXNzd29yZD88L2E+PC9sYWJlbD4nKSwKICAgIFRpbWVzUGVvcGxlLkZvcm0uY29udHJvbCgnJywn
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJzdmlkIiBpZD0ic3ZpZCIgdmFsdWU9IjEiIGNo
ZWNrZWQ9ImNoZWNrZWQiPjxsYWJlbCBmb3I9InN2aWQiIGNsYXNzPSJpbmxpbmUiPiBSZW1lbWJl
ciBtZSBvbiB0aGlzIGNvbXB1dGVyPC9sYWJlbD4nKSwKICAgICc8aHI+JywKICAgICc8ZGl2IGNs
YXNzPSJyaWdodCI+PGJ1dHRvbiB0eXBlPSJyZXNldCIgY2xhc3M9ImFwcEJ1dHRvbiBUUF9jYW5j
ZWxfYnV0dG9uIj48c3Bhbj5DYW5jZWw8L3NwYW4+PC9idXR0b24+Jm5ic3A7Jm5ic3A7PGJ1dHRv
biBjbGFzcz0iYXBwQnV0dG9uIFRQX3N1Ym1pdF9idXR0b24iIHR5cGU9InN1Ym1pdCI+PHNwYW4+
TG9nIEluPC9zcGFuPjwvYnV0dG9uPjwvZGl2PicsCiAgICAnPC9mb3JtPicsCiAgICAnPC9kaXY+
JywKICAgICc8L2Rpdj4nLAogICAgJzwvZGl2PicKICAgIF0uam9pbignJykuaW50ZXJwb2xhdGUo
VGltZXNQZW9wbGUuVGV4dCk7CiAgICAKICAgIHJldHVybiBodG1sOwogICAgCiAgfSwKICAKICBs
b2dpbjogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmZvcm0uY2xlYXJFcnJvcnMoKTsKICAgIHZhciBj
cmVkZW50aWFscyA9IHRoaXMuZm9ybS5lbGVtZW50LnNlcmlhbGl6ZSh0cnVlKTsKICAgIGNyZWRl
bnRpYWxzLnN2aWQgPSBwYXJzZUludChjcmVkZW50aWFscy5zdmlkLCAxMCkgfHwgMDsKICAgIFRp
bWVzUGVvcGxlLnVzZXIubG9naW4oY3JlZGVudGlhbHMpOwogIH0sCiAgCiAgb25DbGlja1JlZ2lz
dGVyOiBmdW5jdGlvbigpIHsKICAgIHRoaXMucGFyZW50LmRyYXdTaWdudXAoKTsKICB9LAogIAog
IHVwZGF0ZTogZnVuY3Rpb24obXNnKSB7CiAgICBzd2l0Y2gobXNnLmV2ZW50KSB7CiAgICBjYXNl
ICd1c2VyIGxvZ2dlZCBpbic6CiAgICAgIHRoaXMuY2xvc2UoKTsKICAgICAgYnJlYWs7CiAgICBj
YXNlICJ1c2VyIGxvZ2luIGZhaWxlZCI6CiAgICAgIHRoaXMuZm9ybS5zaG93RXJyb3JzKFt7Y29k
ZTogbXNnLmRhdGEuZXJyb3JzWzBdLmNvZGV9XSk7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICAK
fSk7LyoKJElkOiB1c2VyLmpzIDU0NDggMjAwOC0wOS0yMSAwMTozNzo1MFogc2FudGVwICQKKGMp
IDIwMDggVGhlIE5ldyBZb3JrIFRpbWVzIENvbXBhbnkKKi8KClRpbWVzUGVvcGxlLnVzZXJWaWV3
ID0gQ2xhc3MuY3JlYXRlKHsKICAKICBpbml0aWFsaXplOiBmdW5jdGlvbihwYXJlbnQpIHsKICAg
IHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgdGhpcy51c2VyID0gVGltZXNQZW9wbGUudXNlcjsK
ICB9LAoKICBidWlsZFVzZXI6IGZ1bmN0aW9uKCkgewogICAgdmFyIHRlbXBsYXRlX29iamVjdCA9
IHt9OwogICAgT2JqZWN0LmV4dGVuZCh0ZW1wbGF0ZV9vYmplY3QsIHRoaXMudXNlci5hdHRyaWJ1
dGVzKTsKICAgIHRlbXBsYXRlX29iamVjdC5kaXNwbGF5bmFtZSA9IG5ldyBTdHJpbmcodGVtcGxh
dGVfb2JqZWN0LmRpc3BsYXluYW1lKS50cnVuY2F0ZSgxNSk7CiAgICByZXR1cm4gWwogICAgICAn
PGEgaHJlZj0iI3t1c2VycGFnZX0iPjxpbWcgY2xhc3M9IlRQX2F2YXRhciB5b3UiIHNyYz0iI3tw
aWNVUkx9IiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiPjwvYT4nLAogICAgICAnPGg0IGNsYXNzPSJk
aXNwbGF5X25hbWUiPjxhIGhyZWY9IiN7dXNlcnBhZ2V9Ij4je2Rpc3BsYXluYW1lfTwvYT48L2g0
PicsCiAgICAgICc8c3BhbiBjbGFzcz0idG9vbGJhcl9idXR0b24iPjxhIGlkPSJUUF9zZXR0aW5n
c0xpbmsiICAgb25jbGljaz0icmV0dXJuIGZhbHNlIj5TZXR0aW5nczwvYT4gfCA8YSBocmVmPSIj
e3VzZXJwYWdlfSI+TXkgQWN0aXZpdHk8L2E+PC9zcGFuPicKICAgIF0uam9pbignJykuaW50ZXJw
b2xhdGUodGVtcGxhdGVfb2JqZWN0KTsKICB9LAogIAogIGRyYXdVc2VyOiBmdW5jdGlvbigpIHsK
ICAgICQoJ1RQX3VzZXInKS51cGRhdGUodGhpcy5idWlsZFVzZXIoKSk7CiAgICB2YXIgc2V0dGlu
Z3NMaW5rID0gJCgnVFBfc2V0dGluZ3NMaW5rJyk7CiAgICBpZiAoc2V0dGluZ3NMaW5rKSBFdmVu
dC5vYnNlcnZlKHNldHRpbmdzTGluaywgJ2NsaWNrJywgdGhpcy5vbkNsaWNrU2V0dGluZ3MuYmlu
ZCh0aGlzKSwgdHJ1ZSk7CiAgfSwKCiAgYnVpbGRQZW9wbGU6IGZ1bmN0aW9uKCkgewogICAgdmFy
IG51bWJlciA9IHRoaXMudXNlci5hdHRyaWJ1dGVzLmZyaWVuZHMubGVuZ3RoOwogICAgdmFyIHBl
b3BsZSA9IChudW1iZXIgPT0gMSkgPyAnUGVyc29uJyA6ICdQZW9wbGUnOwogICAgcmV0dXJuICc8
ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjg1cHgiPjxoND48c3BhbiBjbGFzcz0iVFBfcGVv
cGxlX2NvdW50Ij4nICsgbnVtYmVyICsgJzwvc3Bhbj4gJysgcGVvcGxlICsnIDwvaDQ+PGEgaWQ9
IlRQX3NlYXJjaExpbmsiIGNsYXNzPSJ0b29sYmFyX2J1dHRvbiIgIG9uY2xpY2s9InJldHVybiBm
YWxzZSI+QWRkIC8gUmVtb3ZlPC9hPjwvZGl2Pic7CiAgfSwKICAKICBidWlsZFNoYXJpbmc6IGZ1
bmN0aW9uKCkgewogICAgdmFyIHN0YXR1cyA9ICB0aGlzLnVzZXIuYXR0cmlidXRlcy5zaGFyaW5n
ID8gJ09OJyA6ICdPRkYnOwogICAgcmV0dXJuICc8ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDt3aWR0
aDo1NXB4Ij48aDQ+U2hhcmluZzwvaDQ+PHNwYW4gY2xhc3M9Iicrc3RhdHVzKycgdG9vbGJhcl9i
dXR0b24iPicrc3RhdHVzKyc8L3NwYW4+PC9kaXY+JzsKICB9LAogIAogIGJ1aWxkTWluaW1pemVC
dXR0b246IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICc8ZGl2IGlkPSJUUF9taW5pbWl6ZV9idXR0
b24iPsOXPC9kaXY+JzsKICB9LAogIAoKICBkcmF3UGVvcGxlOiBmdW5jdGlvbigpIHsKICAgICQo
J1RQX3Blb3BsZScpLnJlbW92ZUNsYXNzTmFtZSgnZmlyc3RydW4nKS51cGRhdGUodGhpcy5idWls
ZFBlb3BsZSgpIC8qKyB0aGlzLmJ1aWxkU2hhcmluZygpKi8gKyB0aGlzLmJ1aWxkTWluaW1pemVC
dXR0b24oKSk7CiAgICB2YXIgc2VhcmNoTGluayA9ICQoJ1RQX3NlYXJjaExpbmsnKTsKICAgIGlm
IChzZWFyY2hMaW5rKSBFdmVudC5vYnNlcnZlKHNlYXJjaExpbmssICdjbGljaycsIHRoaXMub25D
bGlja0FkZFJlbW92ZS5iaW5kKHRoaXMpICwgdHJ1ZSk7CiAgICAKICAgIHZhciBtaW5pbWl6ZUJ1
dHRvbiA9ICQoJ1RQX21pbmltaXplX2J1dHRvbicpOwogICAgaWYobWluaW1pemVCdXR0b24pIG1p
bmltaXplQnV0dG9uLm9ic2VydmUoJ2NsaWNrJywgdGhpcy5wYXJlbnQubWluaW1pemUuYmluZCh0
aGlzLnBhcmVudCkpOwogIH0sCiAgCiAgb25DbGlja1NldHRpbmdzOiBmdW5jdGlvbihldmVudCkg
ewogICAgdGhpcy5wYXJlbnQuZHJhd1NldHRpbmdzKCk7CiAgfSwKICAKICBvbkNsaWNrQWRkUmVt
b3ZlOiBmdW5jdGlvbihldmVudCkgewogICAgdGhpcy5wYXJlbnQuZHJhd1Blb3BsZSgpOwogIH0s
CiAgCiAgdXBkYXRlOiBmdW5jdGlvbihtc2cpIHsKICAgIHN3aXRjaChtc2cuZXZlbnQpIHsKICAg
IGNhc2UgJ2F0dHJpYnV0ZXMgdXBkYXRlZCc6CiAgICBjYXNlICd1c2VyIHNhdmVkJzoKICAgICAg
Y29uc29sZS5sb2coJ3VwZGF0ZSB1c2VyIGFuZCB1c2VyIGNvdW50IHZpZXchJyk7CiAgICAgIHRo
aXMuZHJhd1VzZXIoKTsKICAgICAgdGhpcy5kcmF3UGVvcGxlKCk7CiAgICAgIGJyZWFrOwogICAg
fQogIH0KCn0pOy8qCiRJZDogZmF2b3JpdGVzLmpzIDYyNDAgMjAwOC0xMC0yOSAxNTo0MzoyMFog
c2FudGVwICQKKGMpIDIwMDggVGhlIE5ldyBZb3JrIFRpbWVzIENvbXBhbnkKKi8KClRpbWVzUGVv
cGxlLmZhdm9yaXRlc1ZpZXcgPSBDbGFzcy5jcmVhdGUoVGltZXNQZW9wbGUuUGFuZWwsIHsKICAK
ICBpbml0aWFsaXplOiBmdW5jdGlvbigkc3VwZXIsIHBhcmVudCkgewogICAgdmFyIGVsZW1lbnQg
PSAkKCdUUF9mYXZvcml0ZXNfcGFuZScpIHx8IG5ldyBFbGVtZW50KCdkaXYnLCB7aWQ6ICdUUF9m
YXZvcml0ZXNfcGFuZSd9KTsKICAgICQoJ1RQX2lubmVyJykuYXBwZW5kQ2hpbGQoZWxlbWVudCk7
CiAgICAkc3VwZXIocGFyZW50LCBlbGVtZW50LCAnUGVvcGxlJywge3Bvc2l0aW9uOidyaWdodCd9
KTsKICAgIAogICAgdGhpcy50aXRsZSA9IFRpbWVzUGVvcGxlLnVzZXIuaXNOZXdNZW1iZXIoKSA/
IFRpbWVzUGVvcGxlLlRleHQud2VsY29tZVRpdGxlIDogVGltZXNQZW9wbGUuVGV4dC5zZWFyY2hU
aXRsZTsKICAgIAogICAgdGhpcy5jb250YWluZXIudXBkYXRlKHRoaXMuYnVpbGRDb250ZW50KCkp
OwogICAgCiAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgVGltZXNQZW9wbGUuU2VhcmNoVmlldygn
VFBfc2VhcmNoX3ZpZXcnLCBwYXJlbnQpOwogICAgdGhpcy5zZWFyY2hWaWV3LmRyYXcoKTsKICAg
IAogICAgdGhpcy5ldmVudHMgPSB7CiAgICAgIGNsaWNrUmVtb3ZlQnV0dG9uOiB0aGlzLnJlbW92
ZUZhdm9yaXRlLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcykKICAgIH07CiAgICAKICAgIEV2ZW50
Lm9ic2VydmUoJCgnVFBfY2xvc2Vfc2VhcmNoJyksICJjbGljayIsIHRoaXMuY2xvc2UuYmluZCh0
aGlzKSwgdHJ1ZSk7CiAgfSwKICAKICBidWlsZENvbnRlbnQ6IGZ1bmN0aW9uKCkgewoKICAgICAg
dmFyIGh0bWwgPSBbCiAgICAgICc8ZGl2IGNsYXNzPSJpbnNldCI+JywKICAgICAgICAnPGRpdiBj
bGFzcz0id3JhcCByb3ciPicsCiAgICAgICAgICAnPGRpdiBjbGFzcz0iY29sdW1uIj4nLAogICAg
ICAgICAgICAnPGg0PicrIHRoaXMudGl0bGUgKyAnPC9oND4nLAogICAgICAgICAgICAnPGRpdiBp
ZD0iVFBfc2VhcmNoX3ZpZXciPjwvZGl2PicsCiAgICAgICAgICAnPC9kaXY+JywKICAgICAgICAg
ICc8ZGl2IGNsYXNzPSJjb2x1bW4gbGFzdCI+JywKICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0i
dHBfdGlsZV9hZF9jb250YWluZXIiPjwvZGl2PicsCiAgICAgICAgICAgICAgJzxoND5Zb3VyIFBl
b3BsZTwvaDQ+JywKICAgICAgICAgICAgICAnPGRpdiBpZD0iVFBfZnJpZW5kc19wYW5lIj48cD5Z
b3UgaGF2ZS4uLjwvcD48ZGl2IGNsYXNzPSJzY3JvbGxib3giPicsCiAgICAgICAgICAgICAgJzx0
YWJsZSBoZWlnaHQ9IjEwMCUiPjx0cj48dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUi
PjxvYmplY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nr
d2F2ZS1mbGFzaCIgZGF0YT0iaHR0cDovL2R3d3cuZW0ubnl0aW1lcy5jb20vaW1hZ2VzL2FwcHMv
dGltZXNwZW9wbGUvc3Bpbm5lci5zd2YiPjxwYXJhbSBuYW1lPSJtb3ZpZSIgdmFsdWU9Imh0dHA6
Ly9kd3d3LmVtLm55dGltZXMuY29tL2ltYWdlcy9hcHBzL3RpbWVzcGVvcGxlL3NwaW5uZXIuc3dm
Ii8+PHBhcmFtIG5hbWU9IldNb2RlIiB2YWx1ZT0iVHJhbnNwYXJlbnQiLz48L29iamVjdD48L3Rk
PjwvdHI+PC90YWJsZT4nLAogICAgICAgICAgICAgICc8L2Rpdj48L2Rpdj4nLAogICAgICAgICAg
ICAgICc8ZGl2IGNsYXNzPSJyaWdodCI+PGJ1dHRvbiBjbGFzcz0iYXBwQnV0dG9uIiBvbmNsaWNr
PSJyZXR1cm4gZmFsc2U7IiBpZD0iVFBfY2xvc2Vfc2VhcmNoIj48c3Bhbj5DbG9zZTwvc3Bhbj48
L2J1dHRvbj48L2Rpdj4nLAogICAgICAgICAgJzwvZGl2PicsCiAgICAgICAgJzwvZGl2PicsCiAg
ICAgICc8L2Rpdj4nCiAgICAgIF0uam9pbignJyk7CgogICAgICByZXR1cm4gaHRtbDsKICB9LAog
IAogIGJ1aWxkRnJpZW5kczogZnVuY3Rpb24odXNlcnMpIHsKICAgIHZhciBodG1sID0gW107CiAg
ICBodG1sLnB1c2goJzxwPllvdSBoYXZlIDxzdHJvbmcgY2xhc3M9IlRQX3Blb3BsZV9jb3VudCI+
JysgVGltZXNQZW9wbGUudXNlci5hdHRyaWJ1dGVzLmZyaWVuZHMubGVuZ3RoICsnPC9zdHJvbmc+
IFBlb3BsZTwvcD4nKTsKICAgIGh0bWwucHVzaCgnPGRpdiBjbGFzcz0ic2Nyb2xsYm94Ij48dGFi
bGU+Jyk7CiAgICBmb3IgKHZhciBpPTAsbD11c2Vycy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAg
ICAgaWYgKHVzZXJzW2ldLmF0dHJpYnV0ZXMpIHsKICAgICAgICB2YXIgYXR0cmlidXRlcyA9IHVz
ZXJzW2ldLmF0dHJpYnV0ZXM7CiAgICAgICAgdmFyIHZhbHVlcyA9IE9iamVjdC5leHRlbmQoYXR0
cmlidXRlcyx7CiAgICAgICAgICBkaXNwbGF5bmFtZTogYXR0cmlidXRlcy5kaXNwbGF5bmFtZS50
cnVuY2F0ZSgxOCksCiAgICAgICAgICBsb2NhdGlvbjogYXR0cmlidXRlcy5sb2NhdGlvbi50cnVu
Y2F0ZSgxMikKICAgICAgICB9KTsKICAgICAgICB2YXIgdXNlcl9odG1sID0gdGhpcy5idWlsZEZy
aWVuZCgpLmludGVycG9sYXRlKHZhbHVlcyk7CiAgICAgICAgaHRtbC5wdXNoKHVzZXJfaHRtbCk7
ICAgICAgICAgICAgICAgICAKICAgICAgfQogICAgfQogICAgaHRtbC5wdXNoKCc8L3RhYmxlPjwv
ZGl2PicpOwogICAgcmV0dXJuIGh0bWwuam9pbignJyk7CiAgfSwKICAKICB1cGRhdGVGcmllbmRz
OiBmdW5jdGlvbih1c2VycykgewogICAgdmFyIGZyaWVuZHNQYW5lID0gJCgnVFBfZnJpZW5kc19w
YW5lJyk7CiAgICBmcmllbmRzUGFuZS5pbm5lckhUTUwgPSB0aGlzLmJ1aWxkRnJpZW5kcyh1c2Vy
cyk7CiAgICAkJCgnI1RQX2ZyaWVuZHNfcGFuZSB0cicpLmVhY2goZnVuY3Rpb24ocm93KSB7CiAg
ICAgIHJvdyA9ICQocm93KTsKICAgICAgcm93Lm9ic2VydmUoJ21vdXNlb3ZlcicsdGhpcy50b2dn
bGVFZGl0LmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyksIHRydWUpOwogICAgICByb3cub2JzZXJ2
ZSgnbW91c2VvdXQnLHRoaXMudG9nZ2xlRWRpdC5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpLCB0
cnVlKTsKICAgIH0uYmluZCh0aGlzKSk7CiAgICB2YXIgYnV0dG9ucyA9ICQkKCcjVFBfZnJpZW5k
c19wYW5lIGlucHV0W3R5cGU9ImltYWdlIl0nKTsKICAgIGZvciAodmFyIGk9MCwgbCA9IGJ1dHRv
bnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgIGJ1dHRvbnNbaV0ub2JzZXJ2ZSgnY2xpY2sn
LCB0aGlzLmV2ZW50cy5jbGlja1JlbW92ZUJ1dHRvbiwgdHJ1ZSk7CiAgICB9OwogICAgdGhpcy5z
aGFkb3cudXBkYXRlU2hhZG93KCk7CiAgfSwKICAKICBvcGVuOiBmdW5jdGlvbigkc3VwZXIpIHsK
ICAgIFRpbWVzUGVvcGxlLnVzZXIucmVnaXN0ZXIodGhpcyk7CiAgICBUaW1lc1Blb3BsZS51c2Vy
LnJlcXVlc3RGcmllbmRzKCk7CiAgICAkKCdUUF9mZWVkX3RhYicpLnNldFN0eWxlKHt2aXNpYmls
aXR5OidoaWRkZW4nfSk7CiAgICAkc3VwZXIoKTsKICAgIHZhciBzZWFyY2hfZmllbGQgPSAkKCdU
UF9zZWFyY2hfdGVybScpOwogICAgaWYoc2VhcmNoX2ZpZWxkKSB7c2VhcmNoX2ZpZWxkLmZvY3Vz
KCk7fQogIH0sCiAgCiAgY2xvc2U6IGZ1bmN0aW9uKCRzdXBlcikgewogICAgVGltZXNQZW9wbGUu
dXNlci51bnJlZ2lzdGVyKHRoaXMpOwogICAgVGltZXNQZW9wbGUudXNlci5yZXF1ZXN0QXR0cmli
dXRlcygpOwogICAgJHN1cGVyKCk7CiAgfSwKICAKICBidWlsZEZyaWVuZDogZnVuY3Rpb24oKSB7
CiAgICByZXR1cm4gJzx0ciBpZD0iVFBfZmF2b3JpdGVfI3t1aWR9Ij4nICsKICAgICAgICAgICAg
ICc8dGQgY2xhc3M9IlRQX2F2YXRhcl9jZWxsIj48YSBocmVmPSIje3VzZXJwYWdlfSI+PGltZyBj
bGFzcz0iVFBfYXZhdGFyIiBzcmM9IiN7cGljVVJMfSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48
L2E+PC90ZD4nICsKICAgICAgICAgICAgICc8dGQgY2xhc3M9IlRQX2Rpc3BsYXluYW1lX2NlbGwi
PjxzcGFuIGNsYXNzPSJUUF9zdG9yeSI+I3tkaXNwbGF5bmFtZX08L3NwYW4+PC90ZD4nICsKICAg
ICAgICAgICAgICc8dGQgY2xhc3M9IlRQX2xvY2F0aW9uX2NlbGwiPjxzcGFuIGNsYXNzPSJUUF9z
dGF0dXMiPiN7bG9jYXRpb259PC9zcGFuPjwvdGQ+JyArCiAgICAgICAgICAgICAnPHRkIGNsYXNz
PSJUUF9idXR0b25fY2VsbCI+PGlucHV0IHR5cGU9ImltYWdlIiBzdHlsZT0iZGlzcGxheTpub25l
IiBuYW1lPSJ1c2Vyc1tdIiB2YWx1ZT0iI3t1aWR9IiBzcmM9IicrIFRQQ09ORklHLmltYWdlX2hv
c3QgKyBUUENPTkZJRy5pbWFnZV9wYXRoICsnZGVsZXRlLmdpZiI+PC90ZD4nICsKICAgICAgICAg
ICAnPC90cj4nOwogIH0sCgogIHRvZ2dsZUVkaXQ6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICB2YXIg
cm93ID0gZXZlbnQuZWxlbWVudCgpLnVwKCd0cicpLnRvZ2dsZUNsYXNzTmFtZSgnaGlnaGxpZ2h0
Jyk7CiAgICByb3cuZG93bignaW5wdXRbdHlwZT1pbWFnZV0nKS50b2dnbGUoKTsKICB9LAogIAog
IHBlcnNvbkFkZGVkOiBmdW5jdGlvbigpIHsKICAgIFRpbWVzUGVvcGxlLnVzZXIucmVxdWVzdEZy
aWVuZHMoKTsKICB9LAogIAogIHJlbW92ZUZhdm9yaXRlOiBmdW5jdGlvbihldmVudCkgewogICAg
dmFyIGVsZW1lbnQgPSBldmVudC5lbGVtZW50KCk7CiAgICBlbGVtZW50LnN0b3BPYnNlcnZpbmco
J2NsaWNrJywgdGhpcy5ldmVudHMuY2xpY2tSZW1vdmVCdXR0b24sIHRydWUpOwogICAgdmFyIHVp
ZCA9IHBhcnNlSW50KGVsZW1lbnQudmFsdWUsIDEwKTsKICAgIFRpbWVzUGVvcGxlLnVzZXIucmVt
b3ZlRnJpZW5kKHVpZCk7CiAgfSwKICAKICBwZXJzb25SZW1vdmVkIDogZnVuY3Rpb24odWlkKSB7
CiAgICAkKCdUUF9mYXZvcml0ZV8nICsgdWlkKS5yZW1vdmUoKTsKICAgICQkKCcuVFBfcGVvcGxl
X2NvdW50JykuaW52b2tlKCd1cGRhdGUnLCBUaW1lc1Blb3BsZS51c2VyLmF0dHJpYnV0ZXMuZnJp
ZW5kcy5sZW5ndGgpOwogICAgVGltZXNQZW9wbGUudXNlci5yZXF1ZXN0QXR0cmlidXRlcygpOwog
IH0sCiAgCiAgdXBkYXRlOiBmdW5jdGlvbihtc2cpIHsKICAgIHN3aXRjaChtc2cuZXZlbnQpIHsK
ICAgIGNhc2UgJ2F0dHJpYnV0ZXMgdXBkYXRlZCc6CiAgICAgIGJyZWFrOwogICAgY2FzZSAnZnJp
ZW5kcyB1cGRhdGVkJzoKICAgICAgdGhpcy51cGRhdGVGcmllbmRzKG1zZy5kYXRhKTsKICAgICAg
YnJlYWs7CiAgICBjYXNlICdmcmllbmQgcmVtb3ZlZCc6CiAgICAgIHRoaXMucGVyc29uUmVtb3Zl
ZChtc2cuZGF0YSk7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICAKfSkvKgokSWQ6IHNlYXJjaC5q
cyA2MTMzIDIwMDgtMTAtMjcgMTY6MDc6NDRaIHNhbnRlcCAkCihjKSAyMDA4IFRoZSBOZXcgWW9y
ayBUaW1lcyBDb21wYW55CiovCgpUaW1lc1Blb3BsZS5TZWFyY2hWaWV3ID0gQ2xhc3MuY3JlYXRl
KHsKCiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oY29udGFpbmVyLCBjb250cm9sbGVyKXsKICAgIHRo
aXMuY29udGFpbmVyID0gJChjb250YWluZXIpOwogICAgdGhpcy5jb250cm9sbGVyID0gY29udHJv
bGxlcjsKICAgIFRpbWVzUGVvcGxlLnVzZXIucmVnaXN0ZXIodGhpcykKICB9LAogIAogIGRyYXc6
IGZ1bmN0aW9uKCkgewogICAgdGhpcy5jb250YWluZXIudXBkYXRlKHRoaXMuYnVpbGRTZWFyY2go
KSk7CiAgICB0aGlzLmJvb3RTZWFyY2goKTsKICB9LAogIAogIGJ1aWxkU2VhcmNoOiBmdW5jdGlv
bigpIHsKICAgIHJldHVybiBbCiAgICAnPGZvcm0gaWQ9IlRQX3NlYXJjaCIgb25zdWJtaXQ9InJl
dHVybiBmYWxzZSI+JywKICAgICc8aW5wdXQgY2xhc3M9InRleHQiIGlkPSJUUF9zZWFyY2hfdGVy
bSIgbmFtZT0idGVybSIgdmFsdWU9IiI+JywKICAgIC8vICc8aW5wdXQgdHlwZT0iaW1hZ2UiIHNy
Yz0iaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvZ2xvYmFsL2dsb2JhbF9zZWFy
Y2gvc2VhcmNoX2J1dHRvbjQweDE5LmdpZiIgYWx0PSJTZWFyY2giIGlkPSJUUF9zZWFyY2hfYnV0
dG9uIj4nLAogICAgJzxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSInKyBUUENPTkZJRy5pbWFnZV9o
b3N0ICsgJy9pbWFnZXMvYXBwcy9idXR0b25zL3NlYXJjaC5naWYiIGFsdD0iU2VhcmNoIiBpZD0i
VFBfc2VhcmNoX2J1dHRvbiI+JywKICAgICc8L2Zvcm0+JywKICAgIChmdW5jdGlvbigpeyByZXR1
cm4gVGltZXNQZW9wbGUudXNlci5pc05ld01lbWJlcigpID8gJzxwIGlkPSJUUF93ZWxjb21lX3Rl
eHQiIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7aGVpZ2h0OjEyM3B4Ij4je3dlbGNvbWVUZXh0fTwv
cD4nLmludGVycG9sYXRlKFRpbWVzUGVvcGxlLlRleHQpIDogJzxkaXYgaWQ9IlRQX3NlYXJjaF9y
ZXN1bHRzIiBjbGFzcz0ic2Nyb2xsYm94Ij48L2Rpdj4nfSkoKSwKICAgICc8ZGl2IGNsYXNzPSJ3
cmFwIHJvdyI+XAogICAgICA8cD48c3Ryb25nPjxhIGhyZWY9IicgKyBUaW1lc1Blb3BsZS51c2Vy
LmdldEltcG9ydFBhZ2VVUkkoKSArICciPkltcG9ydCBlLW1haWwgY29udGFjdHMgwrs8L2E+PC9z
dHJvbmc+PGJyPlwKICAgICAgPHN0cm9uZz48YSBocmVmPSInKyBUaW1lc1Blb3BsZS51c2VyLmdl
dFN1Z2dlc3Rpb25zUGFnZVVSSSgpICsnIj5DaGVjayBzdWdnZXN0ZWQgdXNlcnMgwrs8L2E+PC9z
dHJvbmc+PC9wPlwKICAgIDwvZGl2PicKICAgIF0uam9pbignJyk7CiAgfSwKICAKICBib290U2Vh
cmNoOiBmdW5jdGlvbigpIHsKICAgICQoJ1RQX3NlYXJjaCcpLm9ic2VydmUoJ3N1Ym1pdCcsIHRo
aXMuc2VhcmNoLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyksIHRydWUpOwogIH0sCiAgCiAgYnVp
bGRSZXN1bHQ6IGZ1bmN0aW9uKHVzZXIpIHsKICAgIHZhciBzdHIgPSAnPHRyIGlkPSJUUF9zZWFy
Y2hfcmVzdWx0XyN7dWlkfSI+PHRkPjxhIGhyZWY9IiN7dXNlcnBhZ2V9Ij48aW1nIGNsYXNzPSJU
UF9hdmF0YXIiIHNyYz0iI3twaWNVUkx9IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPiAnICsKICAg
ICAgICAgICAnPHNwYW4gY2xhc3M9IlRQX3N0b3J5Ij4je2Rpc3BsYXluYW1lfTwvc3Bhbj4gPHNw
YW4gY2xhc3M9IlRQX3N0YXR1cyI+I3tsb2NhdGlvbn08L3NwYW4+PC9hPjwvdGQ+JyArCiAgICAg
ICAgICAgdGhpcy5idWlsZEFkZEJ1dHRvbih1c2VyKSArCiAgICAgICAgICAgJzwvdHI+JzsKICAg
IHJldHVybiBzdHIuaW50ZXJwb2xhdGUodXNlci5hdHRyaWJ1dGVzKTsKICB9LAogIAogIGJ1aWxk
UmVzdWx0OiBmdW5jdGlvbih1c2VyKSB7CiAgICAvL1RPRE8gZHVwbGljYXRlIHRlbXBsYXRlCiAg
ICByZXR1cm4gKCc8dHIgaWQ9IlRQX3NlYXJjaF9yZXN1bHRfI3t1aWR9Ij4nICsKICAgICAgICAg
ICAgICc8dGQgY2xhc3M9IlRQX2F2YXRhcl9jZWxsIj48YSBocmVmPSIje3VzZXJwYWdlfSI+PGlt
ZyBjbGFzcz0iVFBfYXZhdGFyIiBzcmM9IiN7cGljVVJMfSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2
Ij48L2E+PC90ZD4nICsKICAgICAgICAgICAgICc8dGQgY2xhc3M9IlRQX2Rpc3BsYXluYW1lX2Nl
bGwiPjxzcGFuIGNsYXNzPSJUUF9zdG9yeSI+I3tkaXNwbGF5bmFtZX08L3NwYW4+PC90ZD4nICsK
ICAgICAgICAgICAgICc8dGQgY2xhc3M9IlRQX2xvY2F0aW9uX2NlbGwiPjxzcGFuIGNsYXNzPSJU
UF9zdGF0dXMiPiN7bG9jYXRpb259PC9zcGFuPjwvdGQ+JyArCiAgICAgICAgICAgICB0aGlzLmJ1
aWxkQWRkQnV0dG9uKHVzZXIpICsKICAgICAgICAgICAnPC90cj4nKS5pbnRlcnBvbGF0ZSh1c2Vy
LmF0dHJpYnV0ZXMpOwogIH0sCiAgCiAgYnVpbGRBZGRCdXR0b246IGZ1bmN0aW9uKHVzZXIpIHsK
ICAgIHZhciBmcmllbmRzID0gVGltZXNQZW9wbGUudXNlci5hdHRyaWJ1dGVzLmZyaWVuZHM7CiAg
ICBpZiAoISBmcmllbmRzLmluY2x1ZGUodXNlci5hdHRyaWJ1dGVzLnVpZCkpIHsKICAgICAgcmV0
dXJuICc8dGQgY2xhc3M9IlRQX2J1dHRvbl9jZWxsIj48aW5wdXQgdHlwZT0iaW1hZ2UiIG5hbWU9
InVzZXJzW10iIHZhbHVlPSIje3VpZH0iIHNyYz0iJysgVFBDT05GSUcuaW1hZ2VfaG9zdCArIFRQ
Q09ORklHLmltYWdlX3BhdGggKydhZGQuZ2lmIj48L3RkPic7CiAgICB9IGVsc2UgewogICAgICBy
ZXR1cm4gJzx0ZCBjbGFzcz0iVFBfYnV0dG9uX2NlbGwiPjwvdGQ+JzsKICAgIH0KICAgIAogIH0s
CiAgCiAgZHJhd1NlYXJjaFJlc3VsdHM6IGZ1bmN0aW9uKHVzZXJzKSB7CiAgICB2YXIgd2VsY29t
ZVRleHQgPSAkKCdUUF93ZWxjb21lX3RleHQnKTsKICAgIGlmICh3ZWxjb21lVGV4dCkgIHsKICAg
ICAgd2VsY29tZVRleHQucmVwbGFjZSgnPGRpdiBpZD0iVFBfc2VhcmNoX3Jlc3VsdHMiIGNsYXNz
PSJzY3JvbGxib3giPjwvZGl2PicpOwogICAgfQogICAgdmFyIGh0bWwgPSBbXTsKICAgIGh0bWwu
cHVzaCgnPHRhYmxlPicpOwoKICAgIGlmKHVzZXJzLmxlbmd0aCA9PSAwKSB7CiAgICAgIGh0bWwu
cHVzaCgnPHRyPjx0ZD48cD5ObyByZXN1bHRzPC9wPjwvdGQ+PC90cj4nKTsKICAgIH0gZWxzZSB7
CiAgICAgIGZvciAodmFyIGk9MDsgaSA8IHVzZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFy
IHVzZXIgPSB0aGlzLmJ1aWxkUmVzdWx0KHVzZXJzW2ldKTsKICAgICAgICBodG1sLnB1c2godXNl
cik7CiAgICAgIH0KICAgIH0KCiAgICBodG1sLnB1c2goJzwvdGFibGU+Jyk7CiAgICAKICAgICQo
J1RQX3NlYXJjaF9yZXN1bHRzJykuaW5uZXJIVE1MID0gaHRtbC5qb2luKCcnKTsKICAgIHZhciBi
dXR0b25zID0gJCQoJyNUUF9zZWFyY2hfcmVzdWx0cyBpbnB1dFt0eXBlPSJpbWFnZSJdJyk7CiAg
ICBmb3IgKHZhciBpPTA7IGkgPCBidXR0b25zLmxlbmd0aDsgaSsrKSB7CiAgICAgIEV2ZW50Lm9i
c2VydmUoYnV0dG9uc1tpXSwgImNsaWNrIiwgdGhpcy5hZGRGYXZvcml0ZS5iaW5kQXNFdmVudExp
c3RlbmVyKHRoaXMpLCB0cnVlKTsKICAgIH07CgogIH0sCiAgCiAgYWRkRmF2b3JpdGU6IGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICB2YXIgZWxlbWVudCA9IGV2ZW50LmVsZW1lbnQoKTsKICAgIHZhciB1
aWQgPSBwYXJzZUludChlbGVtZW50LnZhbHVlLCAxMCk7CiAgICBUaW1lc1Blb3BsZS51c2VyLmFk
ZEZyaWVuZCh1aWQpOwogIH0sCiAgCiAgYWRkZWRGYXZvcml0ZTogZnVuY3Rpb24odWlkKSB7CiAg
ICB0aGlzLnJlbW92ZSh1aWQpOwogICAgdGhpcy5jb250cm9sbGVyLnBlb3BsZV9wYW5lbC5wZXJz
b25BZGRlZCgpOwogIH0sCiAgCiAgcmVtb3ZlOiBmdW5jdGlvbih1aWQpIHsKICAgIGNvbnNvbGUu
bG9nKCdzZWFyY2hWaWV3OiByZW1vdmUnLCB1aWQpOwogICAgJCgnVFBfc2VhcmNoX3Jlc3VsdF8n
ICsgdWlkKS5yZW1vdmUoKTsKICB9LAoKICBzZWFyY2g6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICB2
YXIgZm9ybSA9IGV2ZW50LmVsZW1lbnQoKTsKICAgIHZhciB2YWx1ZXMgPSBmb3JtLnNlcmlhbGl6
ZSh0cnVlKTsKICAgIHZhciByZXN1bHRzID0gJCgnVFBfc2VhcmNoX3Jlc3VsdHMnKTsKICAgIGlm
KHJlc3VsdHMpIHJlc3VsdHMudXBkYXRlKCcnKTsKICAgIFRpbWVzUGVvcGxlLlBlcnNvbi5zZWFy
Y2godmFsdWVzLnRlcm0sIHRoaXMuZHJhd1NlYXJjaFJlc3VsdHMuYmluZCh0aGlzKSk7CiAgfSwK
ICAKICB1cGRhdGU6IGZ1bmN0aW9uKG1zZykgewogICAgc3dpdGNoKG1zZy5ldmVudCkgewogICAg
Y2FzZSAnZnJpZW5kIGFkZGVkJzoKICAgICAgdGhpcy5hZGRlZEZhdm9yaXRlKG1zZy5kYXRhKTsK
ICAgICAgYnJlYWs7CiAgICB9CiAgfQogIAogIAp9KTsvKgokSWQ6IGluZm8uanMgNjI0MCAyMDA4
LTEwLTI5IDE1OjQzOjIwWiBzYW50ZXAgJAooYykgMjAwOCBUaGUgTmV3IFlvcmsgVGltZXMgQ29t
cGFueQoqLwoKVGltZXNQZW9wbGUuaW5mb1ZpZXcgPSBDbGFzcy5jcmVhdGUoVGltZXNQZW9wbGUu
UGFuZWwsIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbigkc3VwZXIsIHBhcmVudCkgewogICAgdmFy
IGxvZ2luX2xpbmssIAogICAgICAgIGdldF9zdGFydGVkX2J1dHRvbiwKICAgICAgICBlbGVtZW50
ID0gbmV3IEVsZW1lbnQoJ2RpdicsIHtpZDonVFBfaW5mb19wYW5lJ30pOwogICAgICAgIAogICAg
JHN1cGVyKHBhcmVudCwgZWxlbWVudCwgJ1doYXQgaXMgVGltZXNQZW9wbGU/Jywge30pOwogICAg
CiAgICB0aGlzLmNvbnRhaW5lci51cGRhdGUodGhpcy5idWlsZENvbnRlbnQoKSk7CiAgICAKICAg
IGlmIChnZXRfc3RhcnRlZF9idXR0b24gPSBlbGVtZW50LmRvd24oJy5UUF9nZXRfc3RhcnRlZF9i
dXR0b24nKSkgewogICAgICBnZXRfc3RhcnRlZF9idXR0b24ub2JzZXJ2ZSgiY2xpY2siLCB0aGlz
Lm9uQ2xpY2tHZXRTdGFydGVkLmJpbmQodGhpcyksIHRydWUpOwogICAgfQogICAgCiAgICBpZiAo
bG9naW5fbGluayA9IGVsZW1lbnQuZG93bignLlRQX2xvZ2luX2xpbmsnKSkgewogICAgICBsb2dp
bl9saW5rLm9ic2VydmUoJ2NsaWNrJywgdGhpcy5wYXJlbnQuZHJhd0xvZ2luLmJpbmQodGhpcy5w
YXJlbnQpLCB0cnVlKTsKICAgIH0KICAgIAogICAgZWxlbWVudC5kb3duKCcuaW5mb19jbG9zZV9i
dXR0b24nKS5vYnNlcnZlKCdtb3VzZWRvd24nLCB0aGlzLmNsb3NlLmJpbmQodGhpcyksIHRydWUp
OwogIH0sCiAgCiAgYnVpbGRDb250ZW50OiBmdW5jdGlvbigpIHsKICAgIHZhciBodG1sID0gJzxk
aXYgY2xhc3M9Imluc2V0IHdyYXAiPicgKyAnPGRpdiBjbGFzcz0idHBfdGlsZV9hZF9jb250YWlu
ZXIiPjwvZGl2PicgKyAnPGgzPiN7aW5mb1RpdGxlfTwvaDM+PGRpdiBjbGFzcz0id3JhcCI+PHA+
I3tpbmZvVGV4dH08L3A+PC9kaXY+JysKICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0icmln
aHQiPiAnICsgdGhpcy5idWlsZEZpcnN0U3RlcCgpICsgJyA8L2Rpdj4nKyAKICAgICAgICAgICAg
ICAgICc8YnV0dG9uIGNsYXNzPSJhcHBCdXR0b24gaW5mb19jbG9zZV9idXR0b24iPjxzcGFuPkNs
b3NlPC9zcGFuPjwvYnV0dG9uPic7CiAgICByZXR1cm4gaHRtbC5pbnRlcnBvbGF0ZShUaW1lc1Bl
b3BsZS5UZXh0KTsKICB9LAogIAogIGJ1aWxkRmlyc3RTdGVwOiBmdW5jdGlvbigpIHsKICAgIGlm
IChUaW1lc1Blb3BsZS51c2VyLmF0dHJpYnV0ZXMudWlkKSB7CiAgICAgIHJldHVybiAnPGJ1dHRv
biBjbGFzcz0iYXBwQnV0dG9uIFRQX2dldF9zdGFydGVkX2J1dHRvbiI+PHNwYW4+R2V0IFN0YXJ0
ZWQ8L3NwYW4+PC9idXR0b24+JzsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiAnPGJ1dHRvbiBj
bGFzcz0iYXBwQnV0dG9uIFRQX2xvZ2luX2xpbmsiPjxzcGFuPkxvZyBJbjwvc3Bhbj48L2J1dHRv
bj4mbmJzcDsmbmJzcDs8YnV0dG9uIGNsYXNzPSJhcHBCdXR0b24gVFBfZ2V0X3N0YXJ0ZWRfYnV0
dG9uIj48c3Bhbj5SZWdpc3Rlcjwvc3Bhbj48L2J1dHRvbj4nOwogICAgfQogIH0sCiAgCiAgb25D
bGlja0dldFN0YXJ0ZWQ6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5jbG9zZSgpOwogICAgdGhpcy5w
YXJlbnQuZHJhd1NpZ251cCgpOwogIH0KCn0pOy8qCiRJZDogZm9ybS5qcyA1NDQ4IDIwMDgtMDkt
MjEgMDE6Mzc6NTBaIHNhbnRlcCAkCihjKSAyMDA4IFRoZSBOZXcgWW9yayBUaW1lcyBDb21wYW55
CiovCgpUaW1lc1Blb3BsZS5Gb3JtID0gQ2xhc3MuY3JlYXRlKHsKICAKICBtZXNzYWdlczogeyct
Nic6ICdFLW1haWwgYWRkcmVzcyBhbHJlYWR5IHJlZ2lzdGVyZWQuJywgJy00JzogJ0luY29ycmVj
dCBMb2dpbid9LAogIAogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGZvcm0pIHsKICAgIHRoaXMuZWxl
bWVudCA9ICQoZm9ybSk7CiAgICB0aGlzLmVsZW1lbnQuZm9jdXNGaXJzdEVsZW1lbnQoKTsKICB9
LAogIAogIHNob3dFcnJvcnM6IGZ1bmN0aW9uKGVycm9ycykgewogICAgdmFyIGZvcm0gPSB0aGlz
LmVsZW1lbnQ7CiAgICB0aGlzLmNsZWFyRXJyb3JzKCk7CiAgICAKICAgIGZvciAodmFyIGkgPSAw
LCBlcnJvcjsgZXJyb3IgPSBlcnJvcnNbaV07IGkrKykgewogICAgICB2YXIgdGV4dCA9IHRoaXMu
bWVzc2FnZXNbZXJyb3IuY29kZS50b1N0cmluZygpXSB8fCBlcnJvci5tZXNzYWdlOwogICAgICB2
YXIgbWVzc2FnZSA9IG5ldyBFbGVtZW50KCdwJywgeydjbGFzcyc6J2Vycm9yJ30pLnVwZGF0ZSh0
ZXh0KTsKICAgICAgaWYgKGVycm9yLmZpZWxkKSB7CiAgICAgICAgZm9ybVtlcnJvci5maWVsZF0u
YWRkQ2xhc3NOYW1lKCdlcnJvcicpOwogICAgICAgIGZvcm1bZXJyb3IuZmllbGRdLmluc2VydCh7
YWZ0ZXI6IG1lc3NhZ2V9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBmb3JtLmluc2VydCh7dG9w
OiBtZXNzYWdlfSk7CiAgICAgIH0KICAgIH07CgogIH0sCiAgCiAgY2xlYXJFcnJvcnM6IGZ1bmN0
aW9uKCkgewogICAgdmFyIGZvcm0gPSB0aGlzLmVsZW1lbnQ7CiAgICBmb3JtLmdldEVsZW1lbnRz
QnlTZWxlY3RvcignaW5wdXQuZXJyb3InKS5pbnZva2UoJ3JlbW92ZUNsYXNzTmFtZScsICdlcnJv
cicpOwogICAgZm9ybS5nZXRFbGVtZW50c0J5U2VsZWN0b3IoJ3AuZXJyb3InKS5pbnZva2UoJ3Jl
bW92ZScpOwogIH0KICAKfSk7CgovLyBDbGFzcyBtZXRob2RzCk9iamVjdC5leHRlbmQoVGltZXNQ
ZW9wbGUuRm9ybSwgewogIGNvbnRyb2w6IGZ1bmN0aW9uKGxhYmVsLGNvbnRyb2wpIHsKICAgIHJl
dHVybiAnPGRpdiBjbGFzcz0iVFBfY29udHJvbCI+PGRpdiBjbGFzcz0ibGFiZWxfY29udGFpbmVy
Ij48bGFiZWw+JytsYWJlbCsnPC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSJjb250cm9sX2NvbnRh
aW5lciI+Jytjb250cm9sKyc8L2Rpdj48L2Rpdj4nOwogIH0KfSk7LyoKJElkOiB0b29sYmFyLmpz
IDYyNDAgMjAwOC0xMC0yOSAxNTo0MzoyMFogc2FudGVwICQKKGMpIDIwMDggVGhlIE5ldyBZb3Jr
IFRpbWVzIENvbXBhbnkKKi8KClRpbWVzUGVvcGxlLlRvb2xiYXJWaWV3ID0gQ2xhc3MuY3JlYXRl
KHsKICAKICBpbml0aWFsaXplOiBmdW5jdGlvbigpIHsKICAgIHRoaXMub3Blbl9wYW5lbCA9IG51
bGw7CiAgfSwKICAKICBidWlsZEJhc2U6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICc8ZGl2IGlk
PSJUUF9wZW9wbGUiIGNsYXNzPSJ0b2dnbGVUYWIiPjwvZGl2PiBcCiAgICAgICAgICAgIDxkaXYg
aWQ9IlRQX3VzZXIiIGNsYXNzPSJ0b2dnbGVUYWIiPjwvZGl2PiBcCiAgICAgICAgICAgIDxkaXYg
aWQ9IlRQX2ZlZWRfdGFiIiBjbGFzcz0idG9nZ2xlVGFiIiBzdHlsZT0iZGlzcGxheTpub25lIj4g
JyArCiAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InRwX3RpbGVfYWRfY29udGFpbmVyIj48L2Rp
dj4nICsKICAgICAgICAgICAgICAnPGg0PkxhdGVzdCBBY3Rpdml0eTwvaDQ+IFwKICAgICAgICAg
ICAgPC9kaXY+IFwKICAgICAgICAgICAgPGRpdiBpZD0iVFBfZmVlZCIgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+IFwKICAgICAgICAgICAgICA8ZGl2IGlkPSJUUF9mZWVkX2NvbnRlbnQiIGNsYXNzPSJU
UF9mZWVkX2NvbnRlbnQiPjwvZGl2PiBcCiAgICAgICAgICAgICAgPGRpdiBpZD0iVFBfZmVlZF9o
YW5kbGUiPiBcCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJUUF9ncm9vdmUiPjwvZGl2PiBc
CiAgICAgICAgICAgICAgPC9kaXY+IFwKICAgICAgICAgICAgPC9kaXY+IFwKICAgICAgICAgICAg
PGRpdiBpZD0iVFBfZmVlZF90b2dnbGUiPjwvZGl2PiBcCiAgICAgICAgICAgIDxkaXYgc3R5bGU9
ImRpc3BsYXk6IG5vbmU7IiBpZD0iVFBfc3Bpbm5lciI+IFwKICAgICAgICAgICAgICA8b2JqZWN0
IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZGF0YT0iJytUUENPTkZJRy5pbWFnZV9ob3N0ICsgVFBD
T05GSUcuaW1hZ2VfcGF0aCsnc3Bpbm5lci5zd2YiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3
YXZlLWZsYXNoIj4gXAogICAgICAgICAgICAgICAgPHBhcmFtIHZhbHVlPSInK1RQQ09ORklHLmlt
YWdlX2hvc3QgKyBUUENPTkZJRy5pbWFnZV9wYXRoKydzcGlubmVyLnN3ZiIgbmFtZT0ibW92aWUi
Lz4gXAogICAgICAgICAgICAgICAgPHBhcmFtIHZhbHVlPSJUcmFuc3BhcmVudCIgbmFtZT0iV01v
ZGUiLz4gXAogICAgICAgICAgICAgIDwvb2JqZWN0PiBcCiAgICAgICAgICAgIDwvZGl2Pic7CiAg
fSwKICAKICBkcmF3OiBmdW5jdGlvbigpIHsKICAgIC8vRklYTUUgc3RyZWFtbGluZS91c2UgcHJv
dG90eXBlIAogICAgdmFyIGh0bWwgPSB0aGlzLmJ1aWxkQmFzZSgpOwogICAgdmFyIGNvbnRhaW5l
ciA9ICQoJ1RQX2NvbnRhaW5lcicpIHx8IG5ldyBFbGVtZW50KCdkaXYnLCB7aWQ6ICdUUF9jb250
YWluZXInfSk7CiAgICB2YXIgc2hhZG93ID0gJCgnVFBfY29udGFpbmVyX3NoYWRvdycpIHx8IG5l
dyBFbGVtZW50KCdkaXYnLCB7aWQ6ICdUUF9jb250YWluZXJfc2hhZG93JywgY2xhc3NOYW1lOiAn
c19zaGFkb3cnfSk7CiAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgaWQ9IlRQX2lubmVy
Ij4nICsgaHRtbCArICc8L2Rpdj4nOwogICAgaWYoISQoJ1RQX2NvbnRhaW5lcicpKSB7CiAgICAg
IGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGNvbnRhaW5lciwgZG9jdW1lbnQuYm9keS5maXJz
dENoaWxkKTsKICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoc2hhZG93LCBjb250YWlu
ZXIpOwogICAgfQoKICAgIAogICAgdGhpcy5kcmF3biA9IHRydWU7CiAgICAKICAgIC8vRklYTUUg
ZGVwZW5kcyBvbiB0b29sYmFyIHRlbXBsYXRlCiAgICB0aGlzLmZlZWRWaWV3ID0gbmV3IFRpbWVz
UGVvcGxlLkZlZWRWaWV3KCdUUF9mZWVkJywgdGhpcyk7CiAgICAKICAgIHRoaXMucmVnaXN0ZXJB
amF4UmVzcG9uZGVycygpOwogIH0sCiAgCiAgcmVnaXN0ZXJBamF4UmVzcG9uZGVyczogZnVuY3Rp
b24oKSB7CiAgICB2YXIgc3Bpbm5lciA9ICQoJ1RQX3NwaW5uZXInKTsKICAgIEFqYXguUmVzcG9u
ZGVycy5yZWdpc3Rlcih7CiAgICAgIG9uQ3JlYXRlOiBmdW5jdGlvbigpIHsKICAgICAgICBzcGlu
bmVyLnNob3coKTsKICAgICAgfSwKICAgICAgb25Db21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAg
ICAgc3Bpbm5lci5oaWRlKCk7CiAgICAgIH0KICAgIH0pOwogIH0sCgogIGRyYXdNZW1iZXJUb29s
YmFyOiBmdW5jdGlvbigpIHsKICAgIFRpbWVzUGVvcGxlLkFjdGl2aXR5LnJlZ2lzdGVyKHRoaXMu
ZmVlZFZpZXcpOwogICAgdGhpcy5mZWVkVmlldy5kcmF3RmVlZCgxKTsKICAgIGlmIChUaW1lc1Bl
b3BsZS5maXJzdHJ1bikgewogICAgICB0aGlzLmRyYXdQZW9wbGUoKTsKICAgICAgVGltZXNQZW9w
bGUuZmlyc3RydW4gPSBmYWxzZTsKICAgIH0KICB9LAoKICBkcmF3R3Vlc3RUb29sYmFyOiBmdW5j
dGlvbigpIHsKICAgIGlmICh0aGlzLm9wZW5fcGFuZWwpIHRoaXMub3Blbl9wYW5lbC5jbG9zZSgp
OwogICAgdGhpcy5maXJzdFJ1blZpZXcgPSBUaW1lc1Blb3BsZS5maXJzdFJ1blZpZXcuaW5pdGlh
bGl6ZSh0aGlzKTsKICAgIHRoaXMuZmlyc3RSdW5WaWV3LmRyYXdGaXJzdFJ1bigpOwogIH0sCgog
IGRyYXdJbmZvOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuaW5mb19wYW5lbCA9IHRoaXMuaW5mb19w
YW5lbCB8fCBuZXcgVGltZXNQZW9wbGUuaW5mb1ZpZXcodGhpcyk7CiAgICB0aGlzLmluZm9fcGFu
ZWwub3BlbigpOwogIH0sCgogIGRyYXdMb2dpbjogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmxvZ2lu
X3BhbmVsID0gdGhpcy5sb2dpbl9wYW5lbCB8fCBuZXcgVGltZXNQZW9wbGUubG9naW5WaWV3KHRo
aXMpOwogICAgdGhpcy5sb2dpbl9wYW5lbC5vcGVuKCk7CiAgfSwKCiAgZHJhd1NpZ251cDogZnVu
Y3Rpb24oKSB7CiAgICB0aGlzLnNpZ251cF9wYW5lbCA9IG5ldyBUaW1lc1Blb3BsZS5zaWdudXBW
aWV3KHRoaXMpOwogICAgdGhpcy5zaWdudXBfcGFuZWwub3BlbigpOwogIH0sCgogIGRyYXdTZXR0
aW5nczogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnNldHRpbmdzX3BhbmVsID0gdGhpcy5zZXR0aW5n
c19wYW5lbCB8fCBuZXcgVGltZXNQZW9wbGUuc2V0dGluZ3NWaWV3KHRoaXMpOwogICAgdGhpcy5z
ZXR0aW5nc19wYW5lbC5vcGVuKCk7CiAgfSwKCiAgZHJhd1Blb3BsZTogZnVuY3Rpb24oKSB7CiAg
ICB0aGlzLnBlb3BsZV9wYW5lbCA9IHRoaXMucGVvcGxlX3BhbmVsIHx8IG5ldyBUaW1lc1Blb3Bs
ZS5mYXZvcml0ZXNWaWV3KHRoaXMpOwogICAgdGhpcy5wZW9wbGVfcGFuZWwub3BlbigpOwogIH0s
CgogIG1pbmltaXplOiBmdW5jdGlvbigpIHsKICAgIGlmICghdGhpcy5taW5pbWl6ZWQpIHsKICAg
ICAgaWYgKHRoaXMub3Blbl9wYW5lbCkgdGhpcy5vcGVuX3BhbmVsLmNsb3NlKCk7CiAgICAgIHZh
ciBwYWdlID0gJChkb2N1bWVudC5ib2R5KTsgICAgICAKICAgICAgdGhpcy5taW5pbWl6ZWQgPSB0
cnVlOwogICAgICBUaW1lc1Blb3BsZS5Db250cm9sbGVyLnN0YXRlU3RvcmUuYWRkKHttaW5pbWl6
ZWQ6J1lFUyd9KTsKICAgICAgcGFnZS5tb3JwaCgncGFkZGluZy10b3A6MHB4Jywge2R1cmF0aW9u
OjAuNX0pOwogICAgICAkKCdUUF9jb250YWluZXInKS5tb3JwaCgndG9wOi0zN3B4Jyx7ZHVyYXRp
b246MC41fSk7CiAgICAgICQoJ1RQX2NvbnRhaW5lcl9zaGFkb3cnKS5tb3JwaCgndG9wOi0xNXB4
Jyx7ZHVyYXRpb246MC41fSk7CiAgICAgIHRoaXMubWluaW1pemVkVmlldy5idXR0b24udG9nZ2xl
KCk7CiAgICB9CiAgfSwKCiAgcmVzdG9yZTogZnVuY3Rpb24oKSB7CiAgICBjb25zb2xlLmxvZygn
cmVzdG9yZSEnKTsKCiAgICBpZiAodGhpcy5taW5pbWl6ZWQpIHsKICAgICAgdmFyIHBhZ2UgPSAk
KGRvY3VtZW50LmJvZHkpOwogICAgICB0aGlzLm1pbmltaXplZCA9IGZhbHNlOwogICAgICBUaW1l
c1Blb3BsZS5Db250cm9sbGVyLnN0YXRlU3RvcmUuYWRkKHttaW5pbWl6ZWQ6J05PJ30pOwogICAg
ICAKICAgICAgaWYgKCFUaW1lc1Blb3BsZS5Db250cm9sbGVyLmluaXRpYWxpemVkKSB7CiAgICAg
ICAgVGltZXNQZW9wbGUuQ29udHJvbGxlci5pbml0aWFsaXplKCk7CiAgICAgIH0KICAgICAgcGFn
ZS5tb3JwaCgncGFkZGluZy10b3A6NDBweCcsIHtkdXJhdGlvbjowLjV9KTsKICAgICAgLy9UT0RP
IGNhbiB3ZSBkbyB0aGlzIGluIG9uZSBlbGVtZW50ICsgb25GaW5pc2hlZD8KICAgICAgJCgnVFBf
Y29udGFpbmVyJykubW9ycGgoJ3RvcDowcHgnLCB7ZHVyYXRpb246MC41fSk7CiAgICAgICQoJ1RQ
X2NvbnRhaW5lcl9zaGFkb3cnKS5tb3JwaCgndG9wOjMwcHgnLCB7ZHVyYXRpb246MC41fSk7CiAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgICAgJCgnVFBfY29udGFpbmVy
Jykuc3R5bGUudG9wID0gJyc7CiAgICAgICAgJCgnVFBfY29udGFpbmVyX3NoYWRvdycpLnN0eWxl
LnRvcCA9ICcnOwogICAgICB9LCA2MDApCiAgICAgIHRoaXMubWluaW1pemVkVmlldy5idXR0b24u
dG9nZ2xlKCk7CiAgICB9CiAgfSwKCiAgdXBkYXRlOiBmdW5jdGlvbihtc2cpIHsKICAgIHN3aXRj
aChtc2cuZXZlbnQpIHsKICAgIGNhc2UgImF0dHJpYnV0ZXMgdXBkYXRlZCI6CiAgICAgIHRoaXMu
ZHJhd01lbWJlclRvb2xiYXIoKTsKICAgICAgYnJlYWs7CiAgICBjYXNlICJ1c2VyIHNhdmVkIjoK
ICAgICAgdGhpcy5kcmF3TWVtYmVyVG9vbGJhcigpOwogICAgICBicmVhazsKICAgIGNhc2UgImZy
aWVuZHMgdXBkYXRlZCI6CiAgICAgIGJyZWFrOwogICAgY2FzZSAidXNlciBub3QgcmVnaXN0ZXJl
ZCI6CiAgICAgIHRoaXMuZHJhd0d1ZXN0VG9vbGJhcigpOwogICAgICBicmVhazsKICAgIGNhc2Ug
InVzZXIgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBpbiBidXQgbm90IHJlZ2lzdGVyZWQiOgogICAgICB0
aGlzLmRyYXdTaWdudXAoKTsKICAgICAgYnJlYWs7CiAgICBjYXNlICJubyB1c2VyIGluZm8iOgog
ICAgICB0aGlzLmRyYXdHdWVzdFRvb2xiYXIoKTsKICAgIGNhc2UgIm9wZW5lZCBwYW5lbCI6CiAg
ICAgIGlmICh0aGlzLm9wZW5fcGFuZWwpIHRoaXMub3Blbl9wYW5lbC5jbG9zZSgpOwogICAgICB0
aGlzLm9wZW5fcGFuZWwgPSBtc2cuZGF0YTsKICAgICAgYnJlYWs7CiAgICBjYXNlICJjbG9zZWQg
cGFuZWwiOgogICAgICB0aGlzLm9wZW5fcGFuZWwgPSBudWxsOwogICAgICBpZiAoVGltZXNQZW9w
bGUuZmlyc3RydW4pIHRoaXMuZHJhd0d1ZXN0VG9vbGJhcigpOwogICAgICBicmVhazsKICAgIGNh
c2UgInVzZXIgaW1hZ2UgdXBkYXRlZCI6CiAgICAgIC8vIEZJWE1FIHNlZSBpZiB3ZSBjYW4gZGVs
ZWdhdGUgdGhpcyB1cGRhdGUgdG8gZWFjaCB2aWV3LgogICAgICB2YXIgdXNlciA9IG1zZy5kYXRh
OwogICAgICAkJCgnaW1nLnlvdScpLmludm9rZSgnd3JpdGVBdHRyaWJ1dGUnLCAnc3JjJywgdXNl
ci5hdHRyaWJ1dGVzLnBpY1VSTCk7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICAKfSk7LyoKJElk
OiBtZW1iZXJ0b29sc2l0ZW0uanMgNTQ3NCAyMDA4LTA5LTIyIDAyOjI3OjI1WiBzYW50ZXAgJAoo
YykgMjAwOCBUaGUgTmV3IFlvcmsgVGltZXMgQ29tcGFueQoqLwoKVGltZXNQZW9wbGUuTWVtYmVy
VG9vbHNJdGVtVmlldyA9IENsYXNzLmNyZWF0ZSh7CiAgCiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24o
dG9vbGJhcikgewogICAgdGhpcy50b29sYmFyID0gdG9vbGJhcjsKICAgIHRoaXMudG9vbGJhci5t
aW5pbWl6ZWRWaWV3ID0gdGhpczsKICAgIAogICAgLy8gVE9ETyBvcHRpbWl6ZSB0ZW1wbGF0ZQog
ICAgdmFyIG1lbWJlclRvb2xzID0gJCgnbWVtYmVyVG9vbHMnKTsKICAgIHZhciBtZW1iZXJMaW5r
cyA9ICQoJ21lbWJlckxpbmtzJyk7CiAgICBpZihtZW1iZXJUb29scykgewogICAgICBtZW1iZXJU
b29scy5pbnNlcnQoJzxsaSBpZD0iVFBfcmVzdG9yZV9idXR0b24iIHN0eWxlPSJkaXNwbGF5Om5v
bmUiPjxhPlRpbWVzUGVvcGxlPC9hPjwvbGk+Jyk7CiAgICAgIHZhciBsb2dpbl9pZnJhbWUgPSBt
ZW1iZXJUb29scy5kb3duKCdpZnJhbWUnKTsKICAgICAgaWYobG9naW5faWZyYW1lKSB7CiAgICAg
ICAgbWVtYmVyVG9vbHMuc2V0U3R5bGUoe3BhZGRpbmdUb3A6JzAnfSk7CiAgICAgICAgbG9naW5f
aWZyYW1lLnNldFN0eWxlKHsKICAgICAgICAgIHdpZHRoOiAnNDAwcHgnLAogICAgICAgICAgcG9z
aXRpb246ICdyZWxhdGl2ZScsCiAgICAgICAgICB0b3A6ICcycHgnLAogICAgICAgICAgcmlnaHQ6
ICctNHB4JwogICAgICAgIH0pOwogICAgICB9CiAgICB9IAogICAgZWxzZSBpZihtZW1iZXJMaW5r
cyl7CiAgICAgIG1lbWJlckxpbmtzLmluc2VydCgnLSA8YSBpZD0iVFBfcmVzdG9yZV9idXR0b24i
IHN0eWxlPSJkaXNwbGF5Om5vbmUiPlRpbWVzUGVvcGxlPC9hPicpOwogICAgfQogICAgZWxzZSB7
CiAgICAgICQoZG9jdW1lbnQuYm9keSkuaW5zZXJ0KHt0b3A6JzxkaXYgaWQ9IlRQX3Rvb2xzX3Jl
cGxhY2VtZW50Ij48YSBpZD0iVFBfcmVzdG9yZV9idXR0b24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7
ZmxvYXQ6cmlnaHQiPlRpbWVzUGVvcGxlPC9hPjwvZGl2Pid9KTsKICAgIH0KICAgIAogICAgdGhp
cy5idXR0b24gPSAkKCdUUF9yZXN0b3JlX2J1dHRvbicpOwogICAgdGhpcy5idXR0b24ub2JzZXJ2
ZSgnY2xpY2snLCB0aGlzLnRvb2xiYXIucmVzdG9yZS5iaW5kKHRoaXMudG9vbGJhcikpOwogIH0s
CiAgCiAgc2hvdzogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmJ1dHRvbi5zaG93KCk7CiAgfQogIAp9
KTsvKgokSWQ6IHRpbWVzcGVvcGxlLmpzIDU0NDggMjAwOC0wOS0yMSAwMTozNzo1MFogc2FudGVw
ICQKKGMpIDIwMDggVGhlIE5ldyBZb3JrIFRpbWVzIENvbXBhbnkKKi8KClRpbWVzUGVvcGxlLkNv
bnRyb2xsZXIgPSB7CgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgVGltZXNQZW9wbGUu
QWpheCA9IEFqYXg7CiAgICB0aGlzLnRvb2xiYXJWaWV3ID0gbmV3IFRpbWVzUGVvcGxlLlRvb2xi
YXJWaWV3KCk7CiAgICB0aGlzLm1pbmltaXplZFZpZXcgPSBuZXcgVGltZXNQZW9wbGUuTWVtYmVy
VG9vbHNJdGVtVmlldyh0aGlzLnRvb2xiYXJWaWV3KTsKICAgIHRoaXMuc3RhdGVTdG9yZSA9IE5Z
VEQuQ29va2llcy5nZXRPckNyZWF0ZSgndHBzdGF0ZScpOwogICAgaWYoVGltZXNQZW9wbGUuVVJJ
TGlzdC5hbGxvd3NDdXJyZW50SG9zdCgpICYmIFRpbWVzUGVvcGxlLlVSSUxpc3QuYWxsb3dzQ3Vy
cmVudFVSSSgpKXsKICAgICAgdGhpcy5ydW4oKTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnNvbGUu
bG9nKCdUaW1lc1Blb3BsZSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIHBhZ2UnKTsKICAgIH0g
IAogIH0sCiAgCiAgcnVuOiBmdW5jdGlvbigpIHsKICAgIGlmICh0aGlzLnN0YXRlU3RvcmUubG9v
a3VwKCdtaW5pbWl6ZWQnKSA9PSAnWUVTJykgewogICAgICB0aGlzLnJ1bk1pbmltaXplZCgpOwog
ICAgfSAKICAgIGVsc2UgewogICAgICB0aGlzLnJ1bk1heGltaXplZCgpOwogICAgfQogIH0sCiAg
CiAgcnVuTWluaW1pemVkOiBmdW5jdGlvbigpIHsKICAgIHRoaXMudG9vbGJhclZpZXcubWluaW1p
emVkID0gdHJ1ZTsKICAgIHRoaXMubWluaW1pemVkVmlldy5zaG93KCk7CiAgfSwKICAKICBydW5N
YXhpbWl6ZWQ6IGZ1bmN0aW9uKCkgewogICAgLy9UT0RPIHJlbW92ZSBnbG9iYWwgdXNlcgogICAg
VGltZXNQZW9wbGUudXNlciA9IFRpbWVzUGVvcGxlLlVzZXIuZ2V0SW5zdGFuY2UoKTsKICAgIFRp
bWVzUGVvcGxlLnVzZXIucmVnaXN0ZXIodGhpcy50b29sYmFyVmlldyk7CiAgICB0aGlzLnRvb2xi
YXJWaWV3LmRyYXcoKTsKICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgdGhpcy51c2Vy
VmlldyA9IG5ldyBUaW1lc1Blb3BsZS51c2VyVmlldyh0aGlzLnRvb2xiYXJWaWV3KTsKICAgIFRp
bWVzUGVvcGxlLnVzZXIucmVnaXN0ZXIodGhpcy51c2VyVmlldyk7CiAgICBUaW1lc1Blb3BsZS51
c2VyLnJlcXVlc3RBdHRyaWJ1dGVzKCk7CiAgfQoKfTsvKgokSWQ6IGFjdGl2aXR5X2NvbGxlY3Rp
b24uanMgNTkyNCAyMDA4LTEwLTE1IDE2OjMzOjM3WiBzYW50ZXAgJAooYykgMjAwOCBUaGUgTmV3
IFlvcmsgVGltZXMgQ29tcGFueQoqLwoKVGltZXNQZW9wbGUuQWN0aXZpdHlDb2xsZWN0aW9uQ29u
dHJvbGxlciA9IHsKCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbigpIHsKICAgICAgaWYgKCFUaW1l
c1Blb3BsZS5VUklMaXN0LmFsbG93c0N1cnJlbnRVUkkpIHsgCiAgICAgICAgICBjb25zb2xlLmxv
ZygnQmxhY2sgbGlzdGVkJyk7CiAgICAgICAgICByZXR1cm47IAogICAgICB9CgogICAgICBpZiAo
VGltZXNQZW9wbGUuUGFnZS5pc1JlYWR5KCkpIHsKICAgICAgICB0aGlzLnVzZXIgPSBUaW1lc1Bl
b3BsZS5Vc2VyLmdldEluc3RhbmNlKCk7CiAgICAgICAgaWYodGhpcy51c2VyLm5ld1JlY29yZCkg
ewogICAgICAgICAgdGhpcy51c2VyLnJlZ2lzdGVyKFRpbWVzUGVvcGxlLkFjdGl2aXR5Q29sbGVj
dGlvbkNvbnRyb2xsZXIpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB0aGlz
Lmxpc3RlbigpOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBhcmd1bWVu
dHMuY2FsbGVlLmF0dGVtcHRzID0gYXJndW1lbnRzLmNhbGxlZS5hdHRlbXB0cyB8fCAwOwogICAg
ICAgIGlmIChhcmd1bWVudHMuY2FsbGVlLmF0dGVtcHRzIDwgNTAwKSB7CiAgICAgICAgICBhcmd1
bWVudHMuY2FsbGVlLmJpbmQodGhpcykuZGVmZXIoKTsKICAgICAgICAgIGFyZ3VtZW50cy5jYWxs
ZWUuYXR0ZW1wdHMrKzsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAKICAgIHVwZGF0ZTog
ZnVuY3Rpb24obXNnKSB7CiAgICAgIHN3aXRjaChtc2cuZXZlbnQpIHsKICAgICAgY2FzZSAiYXR0
cmlidXRlcyB1cGRhdGVkIjoKICAgICAgICBjb25zb2xlLmxvZygnYXR0cmlidXRlcyB1cGRhdGVk
JywgdGhpcykKICAgICAgICB0aGlzLmxpc3RlbigpOwogICAgICAgIHRoaXMudXNlci51bnJlZ2lz
dGVyKFRpbWVzUGVvcGxlLkFjdGl2aXR5Q29sbGVjdGlvbkNvbnRyb2xsZXIpOwogICAgICAgIGJy
ZWFrOwogICAgICB9CiAgICB9LAoKbGlzdGVuOiBmdW5jdGlvbigpIHsKCglpZiAodGhpcy5saXN0
ZW5pbmcpIHJldHVybjsKCgl2YXIgaGVhZGxpbmUgICA9ICIiOwoJdmFyIHRleHQgICAgICAgPSAi
IjsKCXRoaXMubGlzdGVuaW5nID0gdHJ1ZTsKCgl2YXIgcGFnZVR5cGUgPSBUaW1lc1Blb3BsZS5Q
YWdlLnR5cGU7Cgl2YXIgaGVhZGxpbmUgPSBUaW1lc1Blb3BsZS5QYWdlLmdldEhlYWRsaW5lKCk7
CgovLwlDb21tZW50IE92ZXJmbG93IHBhZ2UKCglpZiAocGFnZVR5cGU9PSJDb21tdW5pdHkiKSB7
CgkvLwlUaGlzIGNvdWxkIGJlIEFydGljbGUgT3ZlcmZsb3cgb3IgTW92aWVzIFJOUgoKCS8vCUFy
dGljbGUgQ29tbWVudHMKCQlpZiAoJCgnY29tbWVudCcpKSB7CgkJCXZhciBzdWJtaXRCdXR0b24g
ID0gJCQoJ2lucHV0W2FsdD0ic3VibWl0Il0nKVswXTsKCgkJCUV2ZW50Lm9ic2VydmUoc3VibWl0
QnV0dG9uLCAnY2xpY2snLCBmdW5jdGlvbihldmVudCkgewoJCQkJdmFyIGNvbW1lbnQgPSAkJCgn
I2NvbW1lbnQgdGV4dGFyZWEnKVswXS52YWx1ZTsKCQkJCW5ldyBUaW1lc1Blb3BsZS5BY3Rpdml0
eSgnY29tbWVudGVkJywgaGVhZGxpbmUsIGNvbW1lbnQpOwoJCQl9KTsKCgkJfQoKCS8vCVJlY29t
bWVuZCBhbiBBcnRpY2xlIENvbW1lbnQKCQl2YXIgYWxsQ29tbWVudHMgPSAkJCgnZGl2LnNlcXVl
bmNlJyk7CgkJaWYgKGFsbENvbW1lbnRzLmxlbmd0aD4wKSB7CgoJCQkkJCgnYVtocmVmPSIjIl0n
KS5lYWNoKGZ1bmN0aW9uKGJ1dHRvbil7CgoJCQkJaWYgKGJ1dHRvbi5pbm5lckhUTUwudG9Mb3dl
ckNhc2UoKT09InJlY29tbWVuZCIpCgkJCQl7CgkJCQkvLwlTbyB0aGlzIGlzIGEgcmVhbCBidXR0
b24KCQkJCQl2YXIgZGl2Qm9keSAgID0gYnV0dG9uLnVwKCdkaXYuYm9keScpOwoJCQkJCXZhciBj
b21tZW50ICAgPSBkaXZCb2R5LmlubmVySFRNTC50cnVuY2F0ZSgxNDApLnN0cmlwVGFncygpOwoJ
CQkJCXZhciBjb21tZW50Tm8gPSBkaXZCb2R5LmRvd24oJ3NwYW4uZmVlZGJhY2snKS5pZDsKCQkJ
CQl2YXIgdXJsICAgICAgID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnPycpWzBdKyI/cGVybWlkPSIr
Y29tbWVudE5vKyImc3JjPXRwI2NvbW1lbnQiK2NvbW1lbnRObzsKCgkJCQkJRXZlbnQub2JzZXJ2
ZShidXR0b24sICdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7CgkJCQkJCW5ldyBUaW1lc1Blb3Bs
ZS5BY3Rpdml0eSgncmVjb21tZW5kZWQnLCBoZWFkbGluZSwgY29tbWVudCwgdXJsLCAnJywgJ2Nv
bW1lbnQnKTsKCQkJCQl9KTsKCQkJCX0KCgkJCX0pOwoJCX0KCX0KCgkvLwlSZWNvbW1lbmQgQnV0
dG9uIGluIFRvb2xzCgoJCXZhciBidG5UYXJnZXQgPSBmYWxzZTsKCQl2YXIgYnRuVHlwZSAgPSAi
TEkiOwoJCXZhciBidG5PcHRpb25zICAgPSB7fTsKCQl2YXIgYnRuUG9zaXRpb24gPSAiZmlyc3Qi
OwoKCQl2YXIgaWNvbl9ob3N0ID0gImh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2Vz
L2dsb2JhbC9pY29ucy8iOwoJCXZhciBpY29uID0gKFdULnpfZ3BzdCA9PSAnU2xpZGVzaG93Jykg
PyBpY29uX2hvc3QgKyAicmVjb21tZW5kX2RhcmsuZ2lmIiA6IGljb25faG9zdCArICJyZWNvbW1l
bmQuZ2lmIjsKCgkJaWYgKCQoJ3Rvb2xzTGlzdCcpKSAKCQl7CgkJLy8JQXJ0aWNsZXMgJiBCdXNp
bmVzcyBUb3BpY3MKCQkKCQkJYnRuVGFyZ2V0CT0gJCgndG9vbHNMaXN0Jyk7CgoJCQlpZiAoV1Qu
el9ncHQgPT0gJ1RvcGljJykgCgkJCXsJCgkJCS8vCUJ1c2luZXNzIFRvcGljcwoJCQkJaWYgKCQo
ImxlZGVNb2R1bGUiKSkKCQkJCXsKCQkJCQlidG5UYXJnZXQJPSAkKCJsZWRlTW9kdWxlIik7CgkJ
CQkJYnRuVHlwZT0gIlNQQU4iOwoJCQkJCWJ0bk9wdGlvbnMJPSB7c3R5bGU6ICdmbG9hdDogcmln
aHQ7IHBhZGRpbmctcmlnaHQ6MTBweDsgZm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMt
c2VyaWY7IGZvbnQtc2l6ZTo4OCU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsnfTsKCQkJCQli
dG5Qb3NpdGlvbiA9ICJsYXN0IjsKCQkJCX0KCQkJCWVsc2UgaWYgKCQoIndzb2RNb2R1bGVDb21w
YW55SW5mbyIpKQoJCQkJewoJCQkJCWJ0blRhcmdldAk9ICQoIndzb2RNb2R1bGVDb21wYW55SW5m
byIpOwoJCQkJCWJ0blR5cGU9ICJTUEFOIjsKCQkJCQlidG5PcHRpb25zCT0ge3N0eWxlOiAnZmxv
YXQ6IHJpZ2h0OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGlj
YSxzYW5zLXNlcmlmOyBmb250LXNpemU6ODglOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7J307
CgkJCQkJYnRuUG9zaXRpb24gPSAibGFzdCI7CgkJCQl9CgkJCX0KCQl9CgkJZWxzZSBpZiAoJCgn
YXJ0aWNsZVRvb2xzJykpIAoJCXsKCQkvLwlJbnRlcmFjdGl2ZQoJCQlidG5UYXJnZXQJPSAkKCdh
cnRpY2xlVG9vbHMnKTsKCQkJYnRuUG9zaXRpb24gPSAibGFzdCI7CgkJfQoJCWVsc2UgaWYgKCQk
KCdtZXRhW2NvbnRlbnQ9IkJsb2cgUG9zdCJdJykubGVuZ3RoPjApCgkJewkKCQkvLwlCbG9ncwoJ
CQlidG5UYXJnZXQJPSAkJCgndWwuZW50cnktdG9vbHMnKVswXTsKCQkJYnRuUG9zaXRpb24gPSAi
bGFzdCI7CgkJCWJ0bk9wdGlvbnMJPSB7c3R5bGU6ICdwYWRkaW5nOiAxMnB4IDBweCAxMnB4IDAg
IWltcG9ydGFudDsnfTsKCQl9CgkJZWxzZSBpZiAoJCgndG9vbHMnKSkgCgkJewoJCS8vCVRvcGlj
cwoJCQlidG5UYXJnZXQJPSAkKCd0b29scycpOwoJCQlidG5UeXBlPSAiU1BBTiI7CgkJCWJ0bk9w
dGlvbnMJPSB7c3R5bGU6ICdwYWRkaW5nLXJpZ2h0OjEwcHg7Ym9yZGVyLXJpZ2h0OjFweCBzb2xp
ZCAjQ0NDQ0NDO21hcmdpbi1yaWdodDoxMHB4J307CQoJCX0KCQllbHNlIGlmICgkKCdibG9nX2hl
YWRlcl9zZWNvbmRhcnknKSkgCgkJewoJCQlidG5UYXJnZXQJPSAkJCgnLnBvc3QtdG9vbHMgLnNo
YXJlIHVsJylbMF07CgkJfSAKCQllbHNlIGlmIChXVC56X2dwdCA9PSAnTXVsdGltZWRpYScgJiYg
V1Quel9ncHN0ID09ICdJbWFnZScpIAoJCXsKCQkJYnRuVGFyZ2V0CT0gJCQoJ2RpdlthbGlnbj0i
cmlnaHQiXScpWzFdOwoJCQlidG5PcHRpb25zCT0ge3N0eWxlOiAnbGlzdC1zdHlsZTogbm9uZTsg
Zm9udC1mYW1pbHk6YXJpYWwsaGVsdmV0aWNhOyBmb250LXNpemU6MTBweCAhaW1wb3J0YW50OyBs
aXN0LXN0eWxlLWltYWdlOm5vbmU7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyd9OwoJCQlidG5U
YXJnZXQuc2V0QXR0cmlidXRlKCdpZCcsICdjcmVkaXQnKTsKCQl9CgoJLy8JUmVjb21tZW5kIEJ1
dHRvbgoJCXZhciBidG5IVE1MID0gJzxzcGFuIGlkPSJMVFNfcmVjb21tZW5kX2J1dHRvbiI+PGEg
aHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgc3R5bGU9ImZvbnQtc2l6ZToxZW07IHRleHQtdHJh
bnNmb3JtOnVwcGVyY2FzZTsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJytpY29uKycpOyBiYWNrZ3Jv
dW5kLXJlcGVhdDpuby1yZXBlYXQ7IHBhZGRpbmc6MHB0IDBwdCAzcHggMjBweDsiIGNsYXNzPSJk
eW5fcmVjb21tZW5kX2J1dHRvbiI+UmVjb21tZW5kPC9hPjwvc3Bhbj4nOwoKCQlpZiAoYnRuVGFy
Z2V0KSB7CgkJCXZhciBidG4gPSBuZXcgRWxlbWVudChidG5UeXBlLCBidG5PcHRpb25zKTsKCQkJ
YnRuLmlubmVySFRNTCA9IGJ0bkhUTUw7CgkJCWlmIChidG5Qb3NpdGlvbiA9PSAiZmlyc3QiKSB7
CgkJCQlidG5UYXJnZXQuaW5zZXJ0KHt0b3A6YnRufSk7CgkJCX0gZWxzZSB7CgkJCQlidG5UYXJn
ZXQuaW5zZXJ0KHtib3R0b206YnRufSk7CgkJCX0KCQl9CgoJLy8JU2Vjb25kIFJlY29tbWVuZCBC
dXR0b24gZm9yIGJvdHRvbSBvZiBhbiBhcnRpY2xlCiAgICAgIAl2YXIgYm90dG9tT2ZBcnRpY2xl
ID0gJCQoJ2Rpdi5uZXh0QXJ0aWNsZUxpbmsnKTsKICAgICAgCWlmIChib3R0b21PZkFydGljbGUu
bGVuZ3RoPjApewogICAgICAJCWJ0blR5cGUgICAgPSAiU1BBTiI7CiAgICAgIAkJYnRuT3B0aW9u
cyA9IHtzdHlsZTogJ2Zsb2F0OnJpZ2h0O21hcmdpbi1yaWdodDoxMHB4O2xpbmUtaGVpZ2h0OjFl
bSAhaW1wb3J0YW50Oyd9OwogICAgICAJCXZhciBidG5Mb3dlciA9IG5ldyBFbGVtZW50KGJ0blR5
cGUsIGJ0bk9wdGlvbnMpOwogICAgICAJCWJ0bkxvd2VyLmlubmVySFRNTCA9IGJ0bkhUTUw7CiAg
ICAgIAkJYm90dG9tT2ZBcnRpY2xlWzBdLmluc2VydCh7dG9wOmJ0bkxvd2VyfSk7CiAgICAgIAl9
CgogICAgICAJaWYgKGJvdHRvbU9mQXJ0aWNsZS5sZW5ndGg+MCB8fCBidG5UYXJnZXQpewoKICAg
ICAgCQlmdW5jdGlvbiB0cmFjayhlKSB7CiAgICAgIAkJCXZhciBidG5UYXJnZXQgPSBlLnRhcmdl
dDsKICAgICAgCQkJRXZlbnQuc3RvcE9ic2VydmluZyhidG5UYXJnZXQsJ2NsaWNrJywgdHJhY2ss
IHRydWUpOwogICAgICAJCQlidG5UYXJnZXQuaW5uZXJIVE1MID0gJ1RoYW5rcyEnOwoKICAgICAg
CQkJaGVhZGxpbmUgPSBUaW1lc1Blb3BsZS5QYWdlLmdldEhlYWRsaW5lKCk7CgkJCQlUaW1lc1Bl
b3BsZS5QYWdlLnR5cGUgPSBUaW1lc1Blb3BsZS5QYWdlLmdldFBhZ2VUeXBlKCk7CgoJCQkJLy8g
ZnVuY3Rpb24odmVyYiwgb2JqZWN0LCBvYmplY3RfZGVzYywgb2JqZWN0X3VybCwgb2JqZWN0X3Ro
dW1ibmFpbF91cmwpCgogICAgICAJCQluZXcgVGltZXNQZW9wbGUuQWN0aXZpdHkoJ3JlY29tbWVu
ZGVkJywgaGVhZGxpbmUpOwogICAgICAJCQl3aW5kb3cuc2V0VGltZW91dChjbGVhclJlY29tbWVu
ZEJ1dHRvbiwgMzAwMCk7CiAgICAgIAkJCXJldHVybiBmYWxzZTsKICAgICAgCQl9CgogICAgICAJ
CWZ1bmN0aW9uIGNsZWFyUmVjb21tZW5kQnV0dG9uKCkgewogICAgICAJCQl2YXIgZHluX3JlY29t
bWVuZF9idXR0b24gPSAkJCgnYS5keW5fcmVjb21tZW5kX2J1dHRvbicpOwogICAgICAJCQlpZiAo
ZHluX3JlY29tbWVuZF9idXR0b24ubGVuZ3RoPjApewogICAgICAJCQkJZm9yIChlID0gMDsgZSA8
IGR5bl9yZWNvbW1lbmRfYnV0dG9uLmxlbmd0aDsgZSsrICkgewogICAgICAJCQkJCUVsZW1lbnQu
cmVtb3ZlKGR5bl9yZWNvbW1lbmRfYnV0dG9uW2VdLnVwKDEpKTsKICAgICAgCQkJCX0KICAgICAg
CQkJfQogICAgICAJCX0KCiAgICAgIAkvLwlBZGQgZXZlbnRzCiAgICAgIAkJdmFyIGR5bl9yZWNv
bW1lbmRfYnV0dG9uID0gJCQoJ2EuZHluX3JlY29tbWVuZF9idXR0b24nKTsKICAgICAgCQlpZiAo
ZHluX3JlY29tbWVuZF9idXR0b24ubGVuZ3RoPjApewogICAgICAJCQlmb3IgKGIgPSAwOyBiIDwg
ZHluX3JlY29tbWVuZF9idXR0b24ubGVuZ3RoOyBiKysgKSB7CiAgICAgIAkJCQlFdmVudC5vYnNl
cnZlKGR5bl9yZWNvbW1lbmRfYnV0dG9uW2JdLCAnY2xpY2snLCB0cmFjaywgdHJ1ZSk7CiAgICAg
IAkJCX0KICAgICAgCQl9CiAgICAgIAl9CgoKLy8JUmF0ZSBhIFZlbnVlIChyZXN0YXVyYW50LCBh
dHRyYWN0aW9uLCBob3RlbCksIG9yIE1vdmllCgoJaWYgKCQoJ3JlYWRlclJhdGluZycpKSB7CgoJ
CXZhciByZXZpZXcgICAgPSAiIjsKCgkJdmFyIG1ldGFNb3ZpZXMgPSAkJCgnbWV0YVtjb250ZW50
PSJNb3ZpZXMiXScpWzBdOwoJCWlmIChtZXRhTW92aWVzKSB7CgkJCXZhciBoYXNSZXZpZXcgPSAk
JCgncC5yZXZpZXcnKVswXTsKCQkJaWYgKGhhc1JldmlldykgewoJCQkJcmV2aWV3ID0gaGFzUmV2
aWV3LmlubmVySFRNTDsKCQkJfQoJCX0gZWxzZSB7CgkJLy8JVmVudWUgKFRyYXZlbCkKCQkJdmFy
IHRpdGxlICA9ICQkKCdkaXYuQ29sbERpc3BsYXlOYW1lJylbMF0uaW5uZXJIVE1MOwoJCQlyZXZp
ZXcgPSAkJCgnZGl2LkNvbGxEaXNwbGF5TmFtZScpWzBdLm5leHQoJ3AnKS5pbm5lckhUTUw7CgoJ
CQlpZiAodGl0bGUudG9Mb3dlckNhc2UoKSE9InBob3RvcyIpIHsKCQkJCXJldmlldyA9IHRpdGxl
ICsgIjogIiArIHJldmlldzsKCQkJfQoJCX0KCgkJcmV2aWV3ID0gcmV2aWV3LnN0cmlwVGFncygp
OwoJCXJldmlldyA9IHJldmlldy50cnVuY2F0ZSgyMDApOwoKCQl2YXIgaGFzUmF0ZURpdiA9ICQk
KCdkaXYuc3ViTGlzdEInKVswXTsKCQlpZiAoaGFzUmF0ZURpdikgewoJCQl2YXIgaW1hZ2VMaXN0
ID0gaGFzUmF0ZURpdi5zZWxlY3QoJ2ltZycpOwoKCQkJaW1hZ2VMaXN0LmVhY2goZnVuY3Rpb24o
aW1nKXsKCQkJCWNvbnNvbGUubG9nKCJhZGRpbmcgZXZlbnQgdG8gaW1hZ2UuLi4iKTsKCQkJCUV2
ZW50Lm9ic2VydmUoaW1nLCAnY2xpY2snLCBmdW5jdGlvbihldmVudCkgewoJCQkJCW5ldyBUaW1l
c1Blb3BsZS5BY3Rpdml0eSgncmF0ZWQnLCBoZWFkbGluZSwgcmV2aWV3KTsKCQkJCX0pOwoJCQl9
KTsJCgoJCX0KCgl9CgovLyAgQmxvZzogQ29tbWVudHMKCglpZiAoJCgnc3VibWl0LWNvbW1lbnQn
KSkgewoJCSQoJ3N1Ym1pdC1jb21tZW50Jykub2JzZXJ2ZSgnY2xpY2snLCBmdW5jdGlvbihlKSB7
CgkJCXZhciBoZWFkbGluZSA9IFRpbWVzUGVvcGxlLlBhZ2UuZ2V0SGVhZGxpbmUoKTsKCQkJdmFy
IGNvbW1lbnQgID0gJCgnY29tbWVudCcpLnZhbHVlOwoJCQluZXcgVGltZXNQZW9wbGUuQWN0aXZp
dHkoJ2NvbW1lbnRlZCcsIGhlYWRsaW5lLCBjb21tZW50KTsKCQl9LCB0cnVlKTsKCX0KCi8vICBD
b21tZW50OiBUcmF2ZWwgVG9waWMgKGFrYSBzdWdnZXN0aW9uKQoKCWlmICgkKCdzaGFyZVN1Z2dl
c3Rpb25zJykpIHsKCQl2YXIgZm9ybSA9ICQkKCcjc2hhcmVTdWdnZXN0aW9ucyBmb3JtJylbMF07
CgkJaWYgKGZvcm0pIHsKCQkJZm9ybS5vYnNlcnZlKCJzdWJtaXQiLCAgZnVuY3Rpb24oZSkgewoJ
CQkJaWYgKCRGKCdzdWdnZXN0aW9uJykpewoJCQkJCXZhciB0cmFUZXh0ID0gJCgnc3VnZ2VzdGlv
bicpLmlubmVySFRNTDsKCQkJCQl2YXIgaGVhZGxpbmUgPSBUaW1lc1Blb3BsZS5QYWdlLmdldEhl
YWRsaW5lKCk7CgkJCQkJVGltZXNQZW9wbGUuUGFnZS50eXBlID0gVGltZXNQZW9wbGUuUGFnZS5n
ZXRQYWdlVHlwZSgpOwoJCQkJCW5ldyBUaW1lc1Blb3BsZS5BY3Rpdml0eSgncmV2aWV3ZWQnLCBo
ZWFkbGluZSwgdHJhVGV4dCk7CgkJCQl9CgkJCX0sIHRydWUpOwoJCX0KCX0KCi8vCUNvbW1lbnQv
UmV2aWV3OiBNb3ZpZQoKCWlmICgkKCdzdWJtaXRSZXZpZXdzJykpIHsKCgkJdmFyIG1vdmllRm9y
bSA9ICQkKCcjc3VibWl0UmV2aWV3cyBmb3JtJylbMF07CgkJaWYgKG1vdmllRm9ybSkgewoJCQlt
b3ZpZUZvcm0ub2JzZXJ2ZSgic3VibWl0IiwgIGZ1bmN0aW9uKGUpIHsKCgkJCQl2YXIgbW92VGl0
bGUgID0gJCgncmV2aWV3dGl0bGUnKS52YWx1ZTsKCQkJCXZhciBtb3ZUZXh0ICAgPSAkKCdzdWdn
ZXN0aW9uJykudmFsdWU7CgkJCQl2YXIgbW92UmV2aWV3ID0gcm5yVGl0bGUgKyAiOiAiICsgbW92
VGV4dDsKCgkJCQloZWFkbGluZSA9IFRpbWVzUGVvcGxlLlBhZ2UuZ2V0SGVhZGxpbmUoKTsKCQkJ
CVRpbWVzUGVvcGxlLlBhZ2UudHlwZSA9IFRpbWVzUGVvcGxlLlBhZ2UuZ2V0UGFnZVR5cGUoKTsK
CQkJCW5ldyBUaW1lc1Blb3BsZS5BY3Rpdml0eSgncmV2aWV3ZWQnLCBoZWFkbGluZSwgbW92UmV2
aWV3KTsKCgkJCX0sIHRydWUpOwoJCX0gZWxzZSB7CgkJCWFsZXJ0KCJubyBmb3JtIGZvdW5kIik7
CgkJfQoJfQoKCgoKCgogICAgfQogIAp9Oy8qCiRJZDogaW5pdGlhbGl6ZS5qcyA1NDQ4IDIwMDgt
MDktMjEgMDE6Mzc6NTBaIHNhbnRlcCAkCihjKSAyMDA4IFRoZSBOZXcgWW9yayBUaW1lcyBDb21w
YW55CiovCgpUaW1lc1Blb3BsZS5ydW4gPSBmdW5jdGlvbigpewogIGlmKGRvY3VtZW50LmJvZHkg
JiYgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKXsKICAgIFRpbWVzUGVvcGxlLkNvbnRyb2xsZXIu
aW5pdGlhbGl6ZSgpOwogIH0KICBlbHNlIHsKICAgIHNldFRpbWVvdXQoVGltZXNQZW9wbGUucnVu
LCAxMCk7ICAKICB9Cn0KCkV2ZW50Lm9ic2VydmUod2luZG93LCAnbG9hZCcsIGZ1bmN0aW9uKCkg
ewoJVGltZXNQZW9wbGUuQWN0aXZpdHlDb2xsZWN0aW9uQ29udHJvbGxlci5pbml0aWFsaXplKCk7
Cn0pOwoKVGltZXNQZW9wbGUucnVuKCk7CgovLyBXZWQgT2N0IDI5IDEyOjAzOjA1IEVEVCAyMDA4
CtQABQARAAcACAErASwAeQEtXxEBTmh0dHA6Ly90ZS5ueXRpbWVzLmNvbS90dGUvYmxhbmsuZ2lm
PzAuOTczMzU2NjYwNDU1NDY1MyZzbmlwcGV0X3ZlcnNpb249MS4zYSZyZWZlcnJlcj0mcGFnZT1o
dHRwJTNBLy93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8xMC9oZWFsdGgvMTBoZWFydC5odG1sJTNG
X3IlM0QyJTI2cGFydG5lciUzRHJzc255dCUyNmVtYyUzRHJzcyUyNm9yZWYlM0RzbG9naW4lMjZv
cmVmJTNEc2xvZ2luJnRpbWV6b25lPTQ4MCZjbGlzdF9USUQ9M2ZnMjBvYTEzb3ZwbnAmY2xpc3Rf
Uk1JRD0wNWU4OWY2Nzc0NDk0NzhmZTZmNTllZWYmdmFyX3Rfc2VjdGlvbj1IZWFsdGgmdmFyX3Np
dGU9bnl0aW1lcy5jb21PEQYRYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2
ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNo
aXZlcq8QHAsMJiwtMx40NUtMTU5PUFFSU1RVVldYWUxaXl9VJG51bGzdDQ4PEBESExQVFhcYGRob
HB0eHyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGA
G4ACgBoQCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANf
EQFOaHR0cDovL3RlLm55dGltZXMuY29tL3R0ZS9ibGFuay5naWY/MC45NzMzNTY2NjA0NTU0NjUz
JnNuaXBwZXRfdmVyc2lvbj0xLjNhJnJlZmVycmVyPSZwYWdlPWh0dHAlM0EvL3d3dy5ueXRpbWVz
LmNvbS8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0Lmh0bWwlM0ZfciUzRDIlMjZwYXJ0bmVyJTNE
cnNzbnl0JTI2ZW1jJTNEcnNzJTI2b3JlZiUzRHNsb2dpbiUyNm9yZWYlM0RzbG9naW4mdGltZXpv
bmU9NDgwJmNsaXN0X1RJRD0zZmcyMG9hMTNvdnBucCZjbGlzdF9STUlEPTA1ZTg5ZjY3NzQ0OTQ3
OGZlNmY1OWVlZiZ2YXJfdF9zZWN0aW9uPUhlYWx0aCZ2YXJfc2l0ZT1ueXRpbWVzLmNvbdIuLzAx
WCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wmpTKkQyNMNNjc4OUJX
TlMua2V5c1pOUy5vYmplY3RzgBmoOjs8PT4/QEGACYAKgAuADIANgA6AD4AQqENERUZHSElKgBGA
EoATgBSAFYAWgBeAGFNQM3BaS2VlcC1BbGl2ZVZTZXJ2ZXJcQ29udGVudC1UeXBlVERhdGVeQ29u
dGVudC1MZW5ndGhaU2V0LUNvb2tpZVpDb25uZWN0aW9uXxDYQ1A9IkNBTyBDVVJhIEFETWEgREVW
YSBUQUlhIFBTQWEgUFNEYSBDT05pIE9VUiBERUxhIFNBTW8gUFVCbyBPVFJvIElORCBQSFkgT05M
IFVOSSBGSU4gQ09NIE5BViBJTlQgREVNIFBSRSIsIENQPSJDQU8gQ1VSYSBBRE1hIERFVmEgVEFJ
YSBQU0FhIFBTRGEgQ09OaSBPVVIgREVMYSBTQU1vIFBVQm8gT1RSbyBJTkQgUEhZIE9OTCBVTkkg
RklOIENPTSBOQVYgSU5UIERFTSBQUkUiXxATdGltZW91dD02MCwgbWF4PTkxM18QFEFwYWNoZS8x
LjMuMzMgKFVuaXgpWWltYWdlL2dpZl8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UUjQy
XxBtQU5YRD14OyBwYXRoPS87IGRvbWFpbj0ubnl0aW1lcy5jb20sIFREYXRhPTsgZXhwaXJlcz1T
dW4sIDE4LUF1Zy0yNCAyMzozODo0NCBHTVQ7IHBhdGg9LzsgZG9tYWluPS5ueXRpbWVzLmNvbdIu
L1tco1xdMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5ECrSLi9gYaNhYjJfEBFO
U0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACDAIkA
pACrAK4AsQC1ALkAvAC/AMIAxQDIAMsAzgDRANMA1QDXANkA2wDdAN8A4QDjAOUA5wDpAPAA+AEE
AQYBCAEKAlwCYQJqAnUCeAJ+AocCkAKSApkCoQKsAq4CtwK5ArsCvQK/AsECwwLFAscC0ALSAtQC
1gLYAtoC3ALeAuAC5ALvAvYDAwMIAxcDIgMtBAgEHgQ1BD8EXwRiBNIE1wTbBPEE/gUABQUFCQUd
AAAAAAAAAgEAAAAAAAAAYwAAAAAAAAAAAAAAAAAABStPECpHSUY4OWEBAAEAgP8AwMDAAAAAIfkE
AQAAAAAsAAAAAAEAAQAAAQEyADvUAAUAEQAHAAgBLwEwAAwBMV8Qd2h0dHA6Ly93d3cubnl0aW1l
cy5jb20vYWR4L2Jpbi9jbGllbnRzaWRlLzRhOWUwMTU3UTJGcTV2UTI3UTI3LXFIN1E1RS1uYjdT
YzVILVE2MFE1QmN5UTJGSlE1RVEyM1E2ME9KRk9AUTIzSlEyM1EyN3lRNUNATxEEoWJwbGlzdDAw
1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJS
ZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEB4LDCYsLTMeNDVNTk9QUVJTVFVW
V1dYWVpbXF1eYmNVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNsYXNzUiQzUiQ4
UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAHYACgBwQCBAAgAaAB4AFgAgQB4AAEAHT
DScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEHdodHRwOi8vd3d3Lm55dGltZXMuY29t
L2FkeC9iaW4vY2xpZW50c2lkZS80YTllMDE1N1EyRnE1dlEyN1EyNy1xSDdRNUUtbmI3U2M1SC1R
NjBRNUJjeVEyRkpRNUVRMjNRNjBPSkZPQFEyM0pRMjNRMjd5UTVDQNIuLzAxWCRjbGFzc2VzWiRj
bGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wm7OC4QyNMNNjc4OUNXTlMua2V5c1pOUy5v
YmplY3RzgBupOjs8PT4/QEFCgAmACoALgAyADYAOgA+AEIARqURFRkdISUpLTIASgBOAFIAVgBaA
F4AYgBmAGldFeHBpcmVzXUNhY2hlLUNvbnRyb2xWUHJhZ21hXxAQQ29udGVudC1FbmNvZGluZ1ZT
ZXJ2ZXJcQ29udGVudC1UeXBlVERhdGVaU2V0LUNvb2tpZV8QEVRyYW5zZmVyLUVuY29kaW5nXxAd
VGh1LCAwMSBEZWMgMTk5NCAxNjowMDowMCBHTVRYbm8tY2FjaGVUZ3ppcF8QFlN1bi1PTkUtV2Vi
LVNlcnZlci82LjFZdGV4dC9odG1sXxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NCBHTVRfEGVO
WVQtUz0wTWYxVm9XTk9PZmpqRFhybXZ4QURlSEV1eEVubkN3MXM2ZGVGejlKY2hpQUpZT1ZMSUtv
Y2pnc1YuWW54NHJrRkk7IHBhdGg9LzsgZG9tYWluPS5ueXRpbWVzLmNvbVhJZGVudGl0edIuL19g
o2BhMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EC3SLi9kZaNlZjJfEBFOU0hU
VFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACFAIsApgCt
ALAAswC3ALsAvgDBAMQAxwDKAM0A0ADTANUA1wDZANsA3QDfAOEA4wDlAOcA6QDrAPIA+gEGAQgB
CgEMAYYBiwGUAZ8BogGoAbEBugG8AcMBywHWAdgB4gHkAeYB6AHqAewB7gHwAfIB9AH+AgACAgIE
AgYCCAIKAgwCDgIQAhgCJgItAkACRwJUAlkCZAJ4ApgCoQKmAr8CyQLpA1EDWgNfA2MDeQOGA4gD
jQORA6UAAAAAAAACAQAAAAAAAABnAAAAAAAAAAAAAAAAAAADs08QLUdJRjg5YQUABQCAAADAwMAA
AAAh+QQBAAAAACwAAAAABQAFAAACBISPqVgAO9QABQARAAcACAEzATQAeQE1XxAqaHR0cDovL2dy
YXBoaWNzOC5ueXRpbWVzLmNvbS9hZHMvYmxhbmsuZ2lmTxED1WJwbGlzdDAw1AECAwQFBgkKWCR2
ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3Bv
bnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEBwLDCYsLTMeNDVLTE1OT1BRUlNUVVZXWFlaW19gVSRu
dWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2
UiQ0UiQ3UiQyUiQ5UiQwUiQxgBuAAoAaEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNl
W05TLnJlbGF0aXZlgASAAIADXxAqaHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9hZHMvYmxh
bmsuZ2lm0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7CaVQ
hxDI0w02Nzg5QldOUy5rZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAPgBCo
Q0RFRkdISUqAEYASgBOAFIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQtVHlw
ZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5dGVz
XxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMVlpbWFnZS9naWZSNjdfEB1Nb24sIDEwIE5vdiAyMDA4
IDIzOjM4OjQ0IEdNVF0iNDMtM2MwMmIyYmUiWmtlZXAtYWxpdmVfEB1Nb24sIDI2IE5vdiAyMDAx
IDIxOjIzOjEwIEdNVNIuL1xdo11eMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5
EEPSLi9hYqNiYzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAy
ADcAOgBQAFIAZACDAIkApACrAK4AsQC1ALkAvAC/AMIAxQDIAMsAzgDRANMA1QDXANkA2wDdAN8A
4QDjAOUA5wDpAPAA+AEEAQYBCAEKATcBPAFFAVABUwFZAWIBawFtAXQBfAGHAYkBkgGUAZYBmAGa
AZwBngGgAaIBqwGtAa8BsQGzAbUBtwG5AbsByQHQAd0B7AHxAfYCAQIPAhUCLgI4AjsCWwJpAnQC
lAKZAp0CswLAAsICxwLLAt8AAAAAAAACAQAAAAAAAABkAAAAAAAAAAAAAAAAAAAC7U8QQ0dJRjg5
YQEAAQCR/wD///8AAAD///8AAAAh/wtBRE9CRTpJUjEuMALe7QAh+QQBAAACACwAAAAAAQABAAAC
AlQBADvUAAUAEQAHAAgBNwE4ABQBOV8QLmh0dHA6Ly9jb250ZW50LmRsLXJtcy5jb20vcm1zLzE0
ODY3L25vZGV0YWcuanNPEQRRYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2
ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNo
aXZlcq8QHAsMJiwtMx40NUtMTU5PUFFSU1RVVldYWVpbX2BVJG51bGzdDQ4PEBESExQVFhcYGRob
HB0eHyAhIiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGA
G4ACgBoQCBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANf
EC5odHRwOi8vY29udGVudC5kbC1ybXMuY29tL3Jtcy8xNDg2Ny9ub2RldGFnLmpz0i4vMDFYJGNs
YXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7Ca/GERDI0w02Nzg5QldOUy5r
ZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJgAqAC4AMgA2ADoAPgBCoQ0RFRkdISUqAEYASgBOA
FIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2VydmVyXENvbnRlbnQtVHlwZV5Db250ZW50LUxlbmd0
aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkVWJ5dGVzXxBvQXBhY2hlLUFkdmFu
Y2VkRXh0cmFuZXRTZXJ2ZXIvMi4wLjUwIChNYW5kcmFrZWxpbnV4LzcuMi4xMDFtZGsuMTZrTGlt
aXQpIG1vZF9wZXJsLzEuOTlfMTYgUGVybC92NS44LjUgUEhQLzQuMy44XxAYYXBwbGljYXRpb24v
eC1qYXZhc2NyaXB0UzQxNV8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UXxAXImMwZDg5
NTU3LTE5Zi01ZjJmMTc4MCJaa2VlcC1hbGl2ZV8QHVRodSwgMTMgRGVjIDIwMDcgMTk6NTg6Mzgg
R01U0i4vXF2jXV4yXxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRAZ/SLi9hYqNi
YzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIA
ZACDAIkApACrAK4AsQC1ALkAvAC/AMIAxQDIAMsAzgDRANMA1QDXANkA2wDdAN8A4QDjAOUA5wDp
APAA+AEEAQYBCAEKATsBQAFJAVQBVwFdAWYBbwFxAXgBgAGLAY0BlgGYAZoBnAGeAaABogGkAaYB
rwGxAbMBtQG3AbkBuwG9Ab8BzQHUAeEB8AH1AfoCBQITAhkCiwKmAqoCygLkAu8DDwMUAxgDLgM7
Az4DQwNHA1sAAAAAAAACAQAAAAAAAABkAAAAAAAAAAAAAAAAAAADaU8RAZ8oZnVuY3Rpb24oKXsg
CiAgdmFyIGQ9ZG9jdW1lbnQsdz13aW5kb3c7CiAgZnVuY3Rpb24gcigpewoJdmFyIHo9ZC5jcmVh
dGVFbGVtZW50KCdTQ1JJUFQnKTsKCXouc3JjPSdodHRwOi8vY29udGVudC5kbC1ybXMuY29tL2R0
L3MvMTQ4Njcvcy5qcyc7CglkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5k
Q2hpbGQoeik7CiAgfQoKIGlmKE1hdGgucmFuZG9tKCk8MSkgewogIGlmICh3LkRMX01OfHxkLnJl
YWR5U3RhdGU9PSJjb21wbGV0ZSIpewoJcigpOwogIH0gZWxzZSBpZiAody5hZGRFdmVudExpc3Rl
bmVyKXsgCgl3LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByLCBmYWxzZSk7CiAgfSBlbHNlIGlm
ICh3LmF0dGFjaEV2ZW50KXsgCgl3LmF0dGFjaEV2ZW50KCJvbmxvYWQiLCByKTsKICB9CiB9Cn0p
KCk71AAFABEABwAIATsBPAAUAT1fECRodHRwOi8vYW4udGFjb2RhLm5ldC9hbi8xMjk4NS9zbGYu
anNPEQUJYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMS
AAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QJAsMJiwt
Mx40NVNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtvcFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4f
ICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAjgAKA
IhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QJGh0
dHA6Ly9hbi50YWNvZGEubmV0L2FuLzEyOTg1L3NsZi5qc9IuLzAxWCRjbGFzc2VzWiRjbGFzc25h
bWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wnR0ZEQyNMNNjc4OUZXTlMua2V5c1pOUy5vYmplY3Rz
gCGsOjs8PT4/QEFCQ0RFgAmACoALgAyADYAOgA+AEIARgBKAE4AUrEdISUpLTE1OT1BRUoAVgBaA
F4AYgBmAGoAbgByAHYAegB+AIFNQM3BdQ2FjaGUtQ29udHJvbFRWYXJ5XUFjY2VwdC1SYW5nZXNf
EBBDb250ZW50LUVuY29kaW5nVlNlcnZlclxDb250ZW50LVR5cGVURGF0ZV5Db250ZW50LUxlbmd0
aFRFdGFnWkNvbm5lY3Rpb25dTGFzdC1Nb2RpZmllZF8QhnBvbGljeXJlZj0iaHR0cDovL3d3dy50
YWNvZGEuY29tL3czYy9wM3AueG1sIiwgQ1A9Ik5PTiBEU1AgQ09SIE5JRCBDVVJhIEFETW8gREVW
byBUQUlvIFBTQW8gUFNEbyBPVVIgREVMYSBJTkQgUEhZIE9OTCBVTkkgQ09NIE5BViBERU0iW21h
eC1hZ2U9OTAwXxAPQWNjZXB0LUVuY29kaW5nVWJ5dGVzVGd6aXBWQXBhY2hlXxAYYXBwbGljYXRp
b24veC1qYXZhc2NyaXB0XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NCBHTVRUNTQzMV8QLSIx
Y2JlYTM2OTJkYjBlMzQ1ZGE5NmU1MzQ2NzNmNWMyYjoxMjIxNzczOTA3IlprZWVwLWFsaXZlXxAd
VGh1LCAxOCBTZXAgMjAwOCAyMTozODoyNyBHTVTSLi9sbaNtbjJfEBNOU011dGFibGVEaWN0aW9u
YXJ5XE5TRGljdGlvbmFyeRE4DdIuL3Fyo3JzMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVz
cG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIsAkQCsALMAtgC5AL0AwQDEAMcAygDNANAA0wDW
ANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPEA+AEAAQwBDgEQARIBOQE+AUcBUgFVAVsBZAFtAW8B
dgF+AYkBiwGYAZoBnAGeAaABogGkAaYBqAGqAawBrgGwAb0BvwHBAcMBxQHHAckBywHNAc8B0QHT
AdUB2QHnAewB+gINAhQCIQImAjUCOgJFAlMC3ALoAvoDAAMFAwwDJwNHA0wDfAOHA6cDrAOwA8YD
0wPWA9sD3wPzAAAAAAAAAgEAAAAAAAAAdAAAAAAAAAAAAAAAAAAABAFPETgNLy8gMjAwOC8wOS8x
OCAxNzozODoyNw0KdmFyIEFOVj0nMy4xNSc7DQp2YXIgQU5EQVM9J2h0dHA6Ly9hbi50YWNvZGEu
bmV0L2NyZWF0aXZlcyc7DQp2YXIgQU5BWENEPTI0Ow0KdmFyIEFORENDPSdhZGcnOw0KdmFyIEFO
RFNBPSd6eic7DQp2YXIgQU5ERVBDMTI5ODU7DQp2YXIgQU5FVT0naHR0cDovL2FucnR4LnRhY29k
YS5uZXQvZS9lLmpzPyc7DQp2YXIgQU5NRT0wOw0KdmFyIEFOTVU9J2h0dHA6Ly9hbnJ0eC50YWNv
ZGEubmV0L2Rhc3RhdC9waW5nLmpzPyc7DQp2YXIgQU5QPTI7DQp2YXIgQU5TSUQ9MTI5ODU7DQp2
YXIgQU5UQ0M7DQp2YXIgQU5WQUQ9MDsNCnZhciBBTVNDPW5ldyBBcnJheSAoQU5JRCk7DQp2YXIg
QU1TRFBGOw0KdmFyIEFNU0xHQz0wOw0KdmFyIEFNU1JJRD0nJzsNCnZhciBBTVNTSUQ9Jyc7DQp2
YXIgQU1TU1JJRD0nJzsNCnZhciBBTVNURVA9J3RzdGUnOw0KdmFyIEFNU1RFUz0idHRlL2JsYW5r
LmdpZiI7DQp2YXIgQU5ERD0nJzsNCnZhciBBTkROWD1uZXcgQXJyYXkoKTsNCnZhciBBTklEPSdU
SUQnOw0KdmFyIEFOQVM9J2h0dHA6Ly9hbmFkLnRhY29kYS5uZXQnOw0KdmFyIEFOQ0M9MDsNCnZh
ciBBTkRTQVM9MTsNCnZhciBBTkRQVT0naHR0cDovL2FucnR4LnRhY29kYS5uZXQvcnR4L3IuanM/
JzsNCnZhciBBTk9QPSdodHRwOi8vYW5ydHgudGFjb2RhLm5ldC9vcHQvci5qcyc7DQp2YXIgQU5S
REY9MDsNCnZhciBBTlZEVD0wOw0KdmFyIEFOU0NDPSJ1bmVzY2FwZShkb2N1bWVudC5sb2NhdGlv
bi5ocmVmKS50b0xvd2VyQ2FzZSgpIjsNCnZhciBBTlNBVk49J3VuZXNjYXBlKGRvY3VtZW50Lmxv
Y2F0aW9uLmhyZWYpLnRvTG93ZXJDYXNlKCknOw0KdmFyIEFOVFBVRDsNCnZhciBBTlRQVEc7DQp2
YXIgQU5VUkw9MDsNCnZhciBDQ0xPT0tVUDIyPSdBYWphL2hlYWx0aC9kaXNlYXNlc2NvbmRpdGlv
bnNhbmRoZWFsdGh0b3BpY3MvfEJhZWV0cmF2ZWwvZGVzdGluYXRpb25zL3VuaXRlZHN0YXRlc3xC
YWVmZ3VpZGVzL2NlbnRyYWwtYW5kLXNvdXRoLWFtZXJpY2F8QmFlY3RlY2hub2xvZ3kvcHJvZHVj
dHMvY2VsbHBob25lc3xXcGVsYW1jb3JkZXJzfEJha2Fqb2JzL2NhdGVnb3J5L2FjY291bnRpbmct
am9ic3xCYWViZGlnaXRhbC12aWRlby1yZWNvcmRlcnMtZHZycy98QmFlYnZpZGVvLXBsYXllcnMt
YW5kLXJlY29yZGVycy98QnBlbHRlY2hub2xvZ3kvcHJvZHVjdHMvY2FtZXJhc3xBYWRqdGllcm5l
eWxhYi5ibG9ncy5ueXRpbWVzLmNvbXxBcGVsL3RlY2hub2xvZ3kvcHJvZHVjdHMvbXVzaWN8QmFl
YnN1cnJvdW5kLXNwZWFrZXItc3lzdGVtcy98QWFhdWRlYWxib29rLmJsb2dzLm55dGltZXMuY29t
fEFhZWIvZGlnaXRhbC1tZWRpYS1yZWNlaXZlcnMvfEJhZ2xhdXRvbW9iaWxlcy9jb2xsZWN0aWJs
ZXN8QndpcndpcmVsZXNzLWFjY2Vzcy1wb2ludHMvfEJzYnpidXNpbmVzcy9zbWFsbGJ1c2luZXNz
L3xCYWRxbXVsdGlmdW5jdGlvbi1kZXZpY2VzL3xCYWRpaGlsbGFyeS1yb2RoYW0tY2xpbnRvbnxC
YWViZmxhdC1wYW5lbC1hbmQtcGxhc21hL3xCYWFyc3BvcnRzL25jYWFiYXNrZXRiYWxsfEJhYXVt
ZXJnZXJzLWFjcXVpc2l0aW9ucy98QmFkc2V4dGVybmFsLWhhcmQtZHJpdmVzL3xBYWJqcmVhbGVz
dGF0ZS5ueXRpbWVzLmNvbXxBYWtsL21hcmtldGluZy9qb2JtYXJrZXQvfEJhZG5oZWFkcGhvbmVz
LWhlYWRzZXRzL3xBam9iam9ibWFya2V0Lm55dGltZXMuY29tfEF0dmwvZnJ1Z2FsdHJhdmVsZXIu
YmxvZ3N8QmFhc3Nwb3J0cy9uY2FhZm9vdGJhbGx8Q2FoeG1hbGxpbm5zYW5kbG9kZ2VzL3xCd2Ru
bmV3cy9pbnRlcm5hdGlvbmFsL3xCYWp5aW52ZXN0bWVudC1iYW5raW5nL3xCcGZ6YnVzaW5lc3Mv
eW91cm1vbmV5L3xDYWVjbHVldG9vdGgtaGVhZHNldHMvfEFha3Jjb2xsZWdlLm55dGltZXMuY29t
L3xBbmxmL2RpbmVyc2pvdXJuYWwuYmxvZ3N8QmFkaWNhbXBhaWduc3RvcHMuYmxvZ3N8QndkbmJh
Z2hkYWRidXJlYXUuYmxvZ3N8QnNwdHNwb3J0cy9vdGhlcnNwb3J0c3xJYWFvYmFza2V0YmFsbC98
QWFid3RoZWF0ZXIubnl0aW1lcy5jb218QWFlZi9ndWlkZXMvbWlkZGxlLWVhc3R8QmFkaGZyZWFr
b25vbWljcy5ibG9nc3xCaGx0aGVhbHRoL3BzeWNob2xvZ3l8QWZvcmZvcnVtcy5ueXRpbWVzLmNv
bXxBc2J6cmVmPXNtYWxsYnVzaW5lc3N8QWFhdS92ZW50dXJlLWNhcGl0YWwvfEJhYXBzcG9ydHMv
YmFzZWJhbGwvfEJmb3JyZWFkZXJzb3BpbmlvbnMvfEJtb3Ztb3ZpZXMvaG9tZXZpZGVvfEJhZHFp
bmtqZXQtcHJpbnRlcnMvfEJkZnRoZWFsdGgvbnV0cml0aW9ufEJhanplbXBsb3llcmNlbnRyYWwv
fEJwZWxkaWdpdGFsLWNhbWVyYXMvfEJhZ2xjb2xsZWN0aWJsZWNhcnMvfEFhZ3VhdXRvcy5ueXRp
bWVzLmNvbXxBamNiL2d1aWRlcy9jYXJpYmJlYW58QXNwdHNwb3J0c25ldHdvcmsuY29tfEFhYW4v
c3BvcnRzL2Zvb3RiYWxsfEJhYXVyZXZvbHZpbmctZG9vci98QnRjbm5ld3MvdGVjaG5vbG9neXxC
YWRxbGFzZXItcHJpbnRlcnMvfEJ0ZXZhcnRzL3RlbGV2aXNpb258QWFkbnRlY2gubnl0aW1lcy5j
b218QXRjbmNuZXQubnl0aW1lcy5jb218QWFkaS90aGVjYXVjdXMuYmxvZ3N8QnNienNtYWxsYnVz
aW5lc3MvfEJhZWJkdmQtcmVjb3JkZXJzL3xCbHV2YWRzL3BlcnNvbmFscy98QmFkaHRoZWJvYXJk
LmJsb2dzfEJhaXZkb3RlYXJ0aC5ibG9nc3xCbGNuY2l0eXJvb20uYmxvZ3N8QXRjbnJlZj10ZWNo
bm9sb2d5fEFhZGgvd2Vla2lucmV2aWV3L3xCYWF3c3BvcnRzL3Rlbm5pc3xJYWJkc29jY2VyfElh
YXFob2NrZXl8Q2FlY21hcnQtcGhvbmVzL3xCYWRpcnVkeS1naXVsaWFuaXxDYWJqZWFsZXN0YXRl
YWRzfEJhZWJsY2QtbW9uaXRvcnMvfEJpbnZpcG9vZmZlcmluZ3MvfEN3ZG5udGVybmF0aW9uYWx8
QmdkbmhvbWVhbmRnYXJkZW58Q2hsdGVhbHRoL3BvbGljeXxCYWViYXYtcmVjZWl2ZXJzL3xCamFm
Z3VpZGVzL2FmcmljYXxJamV1ZXVyb3BlfEJhZGhrcnVnbWFuLmJsb2dzfERhZGhpc3RvZi5ibG9n
c3xBZWR1cmVmPWVkdWNhdGlvbnxBYWRzL3BlcmlwaGVyYWxzL3xDYWRzYy1zcGVha2Vycy98QmFk
am5ld3Mvc2NpZW5jZXxCYWR6bXAzLXBsYXllcnMvfEJhZGlqb2huLWVkd2FyZHN8RmFkaV9lZHdh
cmRzfEJhaWJob21lZGVsaXZlcnl8Q2FqeWVkZ2UtZnVuZHMvfEJhZWNjZWxsLXBob25lcy98QmFk
aWJhcmFja19vYmFtYXxCYWd1YXV0b21vYmlsZXMvfEJ0dmxkZXN0aW5hdGlvbnN8QmFkamp1ZHNv
bi5ibG9nc3xCZm9kYml0dGVuLmJsb2dzfEFhZGlyZWY9cG9saXRpY3N8RWFhdWJ1c2luZXNzfEFh
ZGkvdXMvcG9saXRpY3N8QnRldnRlbGV2aXNpb24vfENhZHBhYmxldC1wY3MvfEJnbGZzcG9ydHMv
Z29sZnxCc3B0bmV3cy9zcG9ydHN8QmFkaW1pdHRfcm9tbmV5fENpbnZhcmtldHdhdGNofEJhZGlq
b2huLW1jY2FpbnxGYWRpX21jY2FpbnxCcGZ6aG9tZWZpbmFuY2V8QmFiamdyZWF0aG9tZXMvfEJh
ZGlkZWJhdGUtd3JhcHxCZ2FtY3Jvc3N3b3Jkcy98Q2Fia29tbWVyY2lhbC98Q2Fka2xhc3NpZmll
ZHN8Qmphc2d1aWRlcy9hc2lhfEJ0Y25wb2d1ZS5ibG9nc3xBYWRqcmVmPXNjaWVuY2V8QWFkaS93
YXNoaW5ndG9ufEJyZXNyZWFsZXN0YXRlfEJhanNvbnRoaXNkYXkvfENhYm1iaXR1YXJpZXN8QnBl
bGJvb21ib3hlcy98QmFid2FydHMvZGFuY2V8QmhsdHdlbGwuYmxvZ3N8QmFkaGZpc2guYmxvZ3N8
QmFkaGVnYW4uYmxvZ3N8QmFkbmJpdHMuYmxvZ3N8Q2FhcGF0cy5ibG9nc3xBc3B0cmVmPXNwb3J0
c3xBYWRpL3RoZWNhdWN1c3xCYWRzc2Nhbm5lcnMvfEJlZHVyZWZlcmVuY2V8Qmx1dnBlcnNvbmFs
c3xCc2hwbnl0c3RvcmUvfENhYmpld2hvbWVzL3xDbnRuYXRpb25hbC98QmVkdWxlYXJuaW5nL3xC
YWtsam9ibWFya2V0fEJ0Y25maXJzdGxvb2t8QmVkdWVkdWNhdGlvbnxCYWRvZGVza3RvcHMvfEJh
ZGFjb25zb2xlcy98Q2FidWFydG9vbnMvfEJtdXNib25uYXJvby98QXdkbnJlZj13b3JsZHxBYWRl
L3dlZGRpbmdzfERhZHNiY2Ftcy98QndpcnJvdXRlcnMvfEJhZGlwb2xpdGljc3xCbGNubnlyZWdp
b258QmFka2xpc3RpbmdzfENhZHBhcHRvcHMvfEJBRlpmYXNoaW9uL3xCYWF1ZGVhbGJvb2t8QmFh
dWJ1c2luZXNzfEJhYnVhcnRzYmVhdHxCYWF5b2x5bXBpY3N8QWpvYnJlZj1qb2JzfEFhYXAveWFu
a2Vlc3xCYWdod2VhdGhlcnxCZm9ydGhlbGVkZXxFYWJ3YXRlcnxCYWRqc2NpZW5jZXxCYWRob3Bp
bmlvbnxCYWFjZ29zcGVsL3xCYWtyY29sbGVnZXxCZ2FteHdvcmQvfEJ3ZG53b3JsZC98QnR2bHRy
YXZlbHxCQUZac3R5bGUvfENzcHRwb3J0c3xDam9iYWxhcnl8Qm1vdm1vdmllc3xCaGx0aGVhbHRo
fEJnZG5nYXJkZW58QmFjd2RpbmluZ3xCdGVsdm9pcC98QmFlYXBkYXMvfEJtdXNtdXNpY3xCYWFp
amF6ei98QmFidmJvb2tzfEJ0Y250ZWNofEJtdXNwb3AvfEJhYXBtZXRzfEJha2xqb2JzfEJhYnVh
cnRzfEJudG51cy98QnRldnR2JzsNCnZhciBTQUxPT0tVUDIyPSd6ekR1bW15JzsNCnZhciBBTkFY
TFNMPScnOw0KdmFyIEFOQ0IxPTA7DQp2YXIgQU5DQjM9MDsNCnZhciBBTkNDVDsNCnZhciBBTlJE
PScnOw0KdmFyIEFOT089MDsNCnZhciBBTkNDUEQ9MTsNCnZhciBBTkNDU0Q9MDsNCnZhciBBTkNT
UEQ9MDsNCnZhciBBTkNTU0Q9MDsNCnZhciBBTlRQUFU9J2h0dHA6Ly9hbi50YWNvZGEubmV0L2Fu
L3RwcC5odG1sJzsNCnZhciBBTlhDQz0nWlpaJzsNCnZhciBBTVNLPW5ldyBBcnJheSgpOw0KdmFy
IEFNU049MDsNCnZhciBBTVNWTD1uZXcgQXJyYXkoKTsNCnZhciBBTlZEQT0wOw0KdmFyIEFOVlND
PScnOw0KdmFyIEFOVlNBPScnOw0KdmFyIEFORFNaPTI7DQp2YXIgQU5WU1o9QU5EU1o7DQp2YXIg
QU5WQUM9J3p6JzsNCnZhciBBTkFEUz1uZXcgQXJyYXkoKTsNCkFOQURTPVsiNDY4eDYwYSIsIjcy
OHg5MGEiLCIzMDB4MjUwYSIsIjEyMHg2MDBhIiwiMTYweDYwMGEiLCI0Njh4NjBhfDcyOHg5MGEi
LCIxMjB4NjAwYXwxNjB4NjAwYSJdOw0KdmFyIEFOQVhDUDsNCnZhciBBTk1TTDsNCnZhciBBTlNM
Ow0KdmFyIGF4T25TZXQ7DQpmdW5jdGlvbiBBTlJDKG4pIHsNCnZhciBjbj1uICsgIj0iOw0KdmFy
IGRjPWRvY3VtZW50LmNvb2tpZTsNCmlmIChkYy5sZW5ndGggPiAwKSB7DQpmb3IodmFyIGI9ZGMu
aW5kZXhPZihjbik7IGIhPS0xOyBiPWRjLmluZGV4T2YoY24sYikpIHsNCmlmKChiIT0wKSAmJiAo
ZGMuY2hhckF0KGItMSkgIT0nICcpKSB7DQpiKys7DQpjb250aW51ZTsNCn0NCmIrPWNuLmxlbmd0
aDsNCnZhciBlPWRjLmluZGV4T2YoIjsiLGIpOw0KaWYgKGU9PS0xKSBlPWRjLmxlbmd0aDsNCnJl
dHVybiB1bmVzY2FwZShkYy5zdWJzdHJpbmcoYixlKSk7DQp9DQp9DQpyZXR1cm4gbnVsbDsNCn0N
CmZ1bmN0aW9uIEFOU0Mobix2LGV4LHApIHsNCnZhciBlPWRvY3VtZW50LmRvbWFpbi5zcGxpdCAo
Ii4iKTsNCmUucmV2ZXJzZSgpOw0KdmFyIG09ZVsxXSArICcuJyArIGVbMF07DQp2YXIgY2M9bisi
PSI7DQppZiAodiAhPW51bGwpDQp7DQpjYyArPXY7DQp9DQppZiAoZXgpIHsNCnZhciBleHA9bmV3
IERhdGU7DQpleHAuc2V0VGltZShleHAuZ2V0VGltZSgpK2V4KTsNCmNjICs9IjtleHBpcmVzPSIr
ZXhwLnRvR01UU3RyaW5nKCk7DQp9DQppZiAocCkgew0KY2MgKz0iO3BhdGg9IitwOw0KfQ0KaWYg
KG0pIHsNCmNjICs9Ijtkb21haW49IittOw0KfQ0KZG9jdW1lbnQuY29va2llPWNjOw0KfQ0KZnVu
Y3Rpb24gQU5HUkQoKSB7DQppZiAodG9wICE9c2VsZiB8fCBBTlJEICE9JycpIHsNCnJldHVybiBB
TlJEOw0KfQ0KdmFyIHJmPXRvcC5sb2NhdGlvbi5ocmVmOw0KdmFyIGk9aj0wOw0KaT1yZi5pbmRl
eE9mKCcvJyk7DQppPXJmLmluZGV4T2YoJy8nLCsraSk7DQpqPXJmLmluZGV4T2YoJy8nLCsraSk7
DQppZiAoaj09LTEpIHsNCmo9cmYubGVuZ3RoOw0KfQ0Kcj1yZi5zdWJzdHJpbmcoaSxqKTsNCnJl
dHVybiByOw0KfQ0KZnVuY3Rpb24gQU5UUihzKSB7DQppZiAoIXMpIHsNCnJldHVybiAnJzsNCn0N
CnM9cy5yZXBsYWNlKC9eXHMqL2csJycpOw0Kcz1zLnJlcGxhY2UoL1xzKiQvZywnJyk7DQpyZXR1
cm4gczsNCn0NCmZ1bmN0aW9uIEFORUggKG0sdSxsKQ0Kew0KdmFyIHM9QU5FVSsnbT0nK2VzY2Fw
ZShtKSsnJnU9Jytlc2NhcGUodSkrJyZsPScrbDsNCmRvY3VtZW50LndyaXRlKCc8U0NSJysnSVBU
IFNSQz0iJytzKyciIExBTkdVQUdFPSJKYXZhU2NyaXB0Ij48L1NDUicrJ0lQVD4nKTsNCnJldHVy
biB0cnVlOw0KfQ0KZnVuY3Rpb24gQU5HQ0MgKCkNCnsNCnZhciBjY2M9QU5UQ0M7DQppZiAoKGNj
Yz09bnVsbCkgICAgICAgICB8fA0KIWNjYy5tYXRjaCAoL15cd3szfSQvKSApDQp7DQpjY2M9QU5E
Q0MudG9VcHBlckNhc2UoKTsNCn0NCnJldHVybiBjY2M7DQp9DQpmdW5jdGlvbiBUQ0RBICh0YykN
CnsNCnZhciBrdzsNCnZhciBwYjsNCmlmICgodGMgIT1udWxsKSAmJiAodGMgIT0nJykpDQp7DQp2
YXIgcGE9dGMuc3BsaXQgKCI7Iik7DQpmb3IgKHZhciBwPTA7IHAgPCBwYS5sZW5ndGg7IHArKykN
CnsNCmt2PXBhW3BdLnNwbGl0KCI9Iik7DQprPWt2WzBdOw0Kdj1rdlsxXTsNCmlmIChrIT1udWxs
KSB7DQprPUFOVFIoayk7DQp9DQppZiAodiE9bnVsbCkgew0Kdj1BTlRSKHYpOw0KfQ0KdmFyIG09
ay50b1VwcGVyQ2FzZSgpOw0Kc3dpdGNoIChtKSB7DQpjYXNlICgiU0EiKToNCnY9di50b0xvd2Vy
Q2FzZSgpOw0KaWYgKHYhPW51bGwmJnYhPScnJiZ2Lm1hdGNoKC9bYS16XXsxLDJ9LykpIHsNCkFO
VkFDPXY7DQp9DQpicmVhazsNCmNhc2UgKCJTWiIpOg0Kdj12LnRvVXBwZXJDYXNlKCk7DQppZiAo
diE9bnVsbCYmdiE9JycpIHsNCkFOVlNaPXY7DQp9DQpicmVhazsNCmNhc2UgKCJDQyIpOg0Kdj12
LnRvVXBwZXJDYXNlKCk7DQppZiAodiAhPW51bGwgJiYgdiAhPScnKQ0Kew0KQU5UQ0M9djsNCn0N
CmJyZWFrOw0KY2FzZSAoIlNDIik6DQppZiAodiE9bnVsbCYmdiE9JycpIHsNCmlmICh2Lmxlbmd0
aCA+IDI1Nikge3Y9di5zdWJzdHJpbmcoMCwyNTYpO30NCkFOVlNDPXY7DQp9DQpicmVhazsNCmNh
c2UgKCJSRCIpOg0KaWYgKHYhPW51bGwmJnYhPScnKSB7DQppZiAodi5sZW5ndGggPiAxMjgpIHt2
PXYuc3Vic3RyaW5nKDAsMTI4KTt9DQpBTlJEPXYudG9Mb3dlckNhc2UoKTsNCn0NCmJyZWFrOw0K
Y2FzZSAoIkRUIik6DQpBTlZEVD0xOw0KYnJlYWs7DQpjYXNlICgiTkQiKToNCkFOVkRUPTA7DQpi
cmVhazsNCmNhc2UgKCJVRCIpOg0KaWYgKHYgIT1udWxsICYmIHYgIT0nJykNCnsNCkFOVFBVRD12
Ow0KfQ0KYnJlYWs7DQpjYXNlICgiVEciKToNCmlmICh2ICE9bnVsbCAmJiB2ICE9JycpDQp7DQpB
TlRQVEc9djsNCn0NCmJyZWFrOw0KY2FzZSAoIkRBIik6DQpBTlZEQT0xOw0KYnJlYWs7DQpjYXNl
ICgiQUQiKToNCkFOVkFEPTE7DQpicmVhazsNCmNhc2UgKCJLVyIpOg0KaWYgKHYgIT1udWxsICYm
IHYgIT0nJykNCnsNCmt3PXY7DQp9DQpicmVhazsNCmNhc2UgKCJQQiIpOg0KaWYgKHYgIT1udWxs
ICYmIHYgIT0nJykNCnsNCnBiPXY7DQp9DQpicmVhazsNCmRlZmF1bHQ6DQppZiAodiE9bnVsbCYm
diE9JycpIHsNCkFOQ1Yoayx2KTsNCn0NCn0NCn0NCn0NCkFOUEEgKHBiLCBrdyk7DQp9DQpmdW5j
dGlvbiBBTlBBIChwYiwga3cpDQp7DQppZiAoKChBTlAgJiAyKSAhPTApICYmDQooQU5ERVBDMTI5
ODU9PW51bGwpICYmDQooQU5WRFQ9PTEpICAgICAmJg0KKEFOT089PTApICAgICAgKQ0Kew0KQU5E
RVBDMTI5ODU9MTsNCkFOVkRUPTA7DQpBTkdEQ0MoKTsNCkFOU0RSKCk7DQp9DQppZiAoQU5WQUQ9
PTEpDQp7DQpBTlZBRD0wOw0KQU5HRFNBKCk7DQpBTkFQIChBTlZBQywgQU5WU1osIHBiLCBrdyk7
DQp9DQppZiAoQU5WREE9PTEpDQp7DQpBTkRBKCk7DQpBTlZEQT0wOw0KfQ0KfQ0KZnVuY3Rpb24g
QU5SVFhSKCkNCnsNCmlmIChBTlNMICE9bnVsbCkNCnsNCnZhciB0c2E9QU5TTC5zcGxpdCAoInwi
KTsNCmlmIChBTkFYTFNMICE9bnVsbCkNCnsNCkFOQVhTQyAodHNhKTsNCn0NCn0NCmRvY3VtZW50
LndyaXRlKCc8aWZyYW1lIFNSQz0iJyArIEFOVFBQVSArICciIGhlaWdodD0iMCIgd2lkdGg9IjAi
IGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4nKTsNCkFOU09DUigpOw0KfQ0KZnVuY3Rpb24gQU5B
WFNDKCkNCnsNCnZhciB4ZD1udWxsOw0KdmFyIGxzYT1BTkFYTFNMLnNwbGl0ICgifCIpOw0KdmFy
IGFzYT1BTlNMLnNwbGl0ICgifCIpOw0KZm9yIChsc2k9MDsgbHNpIDwgbHNhLmxlbmd0aDsgbHNp
KyspDQp7DQpmb3IgKGFzaT0wOyBhc2kgPCBhc2EubGVuZ3RoOyBhc2krKykNCnsNCmlmIChsc2Fb
bHNpXT09YXNhW2FzaV0pDQp7DQppZiAoeGQ9PW51bGwpDQp7DQp4ZD0nMSMnICsgbHNhW2xzaV07
DQp9DQplbHNlDQp7DQp4ZCArPSd8JyArIGxzYVtsc2ldOw0KfQ0KYnJlYWs7DQp9DQp9DQp9DQp2
YXIgY3A9KEFOQVhDUD09bnVsbCkgPyAiLyIgOiBBTkFYQ1A7DQpBTlNDICgnQXhEYXRhJywgeGQs
IEFOQVhDRCAqIDM2MDAwMDAsIGNwKTsNCkFOU0MgKCdBeHhkJywgJzEnLCBudWxsLCBjcCk7DQpp
ZiAoYXhPblNldCAhPW51bGwpDQp7DQpheE9uU2V0KCk7DQp9DQp9DQpmdW5jdGlvbiBUYWNvZGFf
QU1TX0REQ19hZGRQYWlyKGssIHYpIHsNCkFOQ1Yoayx2KTsNCn0NCmZ1bmN0aW9uIEFOQ1Yoayx2
KXsNCkFNU0tbQU1TTl09azsNCkFNU1ZMW0FNU05dPXY7DQpBTVNOKys7DQp9DQpmdW5jdGlvbiBB
TlRDVigpIHsNCnZhciBUVlM9IiI7DQpmb3IodmFyIGk9MDsgaTxBTVNOOyBpKyspIHsNCmlmICgh
QU1TS1tpXSkgew0KY29udGludWU7DQp9DQppZiAoIUFNU1ZMW2ldKSB7DQpBTVNWTFtpXT0nJzsN
Cn0NClRWUyArPSImdl8iICsgZXNjYXBlKCBBTVNLW2ldLnRvTG93ZXJDYXNlKCkgKSArICI9IiAr
IGVzY2FwZSggQU1TVkxbaV0udG9Mb3dlckNhc2UoKSApIDsNCn0NCnJldHVybiBUVlM7DQp9DQpm
dW5jdGlvbiBUYWNvZGFfQU1TX0REQyAodGl1LCB0anYpDQp7DQpBTkREQyAodGl1LCB0anYpOw0K
fQ0KZnVuY3Rpb24gQU5EQSgpIHsNCnZhciB0PScnOw0KdmFyIGU9QU5HUkQoKS5zcGxpdCgiLiIp
Ow0KZS5yZXZlcnNlKCk7DQp0PWVbMV0gKyAnLicgKyBlWzBdOw0KaWYgKHR5cGVvZihBTkROWFt0
XSkhPSd1bmRlZmluZWQnKSB7DQp0PUFORE5YW3RdOw0KfQ0KZWxzZSB7DQp0PUFOREQ7DQp9DQp2
YXIgdGl1PSdodHRwOi8vJytBTVNURVArJy4nK3QrJy8nK0FNU1RFUzsNCkFORERDKHRpdSwiMC4w
Iik7DQp9DQpmdW5jdGlvbiBBTkREQyAodGl1LCB0anYpIHsNCmlmICgoKEFOUCAmIDEpICE9MCkg
JiYNCihBTVNEUEYgIT0xKSAgICApDQp7DQpBTVNEUEY9MTsNCnZhciBjY2M9QU5HQ0MoKTsNCnZh
ciB0YT0iPyIrTWF0aC5mbG9vciAoTWF0aC5yYW5kb20oKSAqIDEwMDAwMCkgKyImdj0iK0FOVisi
JnI9Iitlc2NhcGUoZG9jdW1lbnQucmVmZXJyZXIpKyImcD0iKyBjY2MgKyI6Iitlc2NhcGUoQU5W
U0MpOw0KaWYgKEFNU0xHQz09MSkgew0KdGEgKz0iJnBhZ2U9Iitlc2NhcGUod2luZG93LmxvY2F0
aW9uLmhyZWYpOw0KfQ0KdGEgKz0iJnR6PSIrKG5ldyBEYXRlKCkpLmdldFRpbWV6b25lT2Zmc2V0
KCkrIiZzPSIrQU5TSUQ7DQppZiAoQU5DQjM9PTEpDQp7DQp0YSs9IiZja2JsazMiOw0KfQ0KaWYg
KEFOQ0IxPT0xKQ0Kew0KdGEgKz0iJmNrYmxrMSI7DQp9DQplbHNlDQp7DQpmb3IodmFyIGk9MDsg
aTxBTVNDLmxlbmd0aDsgaSsrKSB7DQp2YXIgY2w9QU1TQ1tpXTsNCnZhciBjbHY9QU5SQyhjbCk7
DQppZihjbCAhPW51bGwpIHsNCnRhICs9IiZjXyIrZXNjYXBlKGNsKSsiPSIrZXNjYXBlKGNsdik7
DQp9DQp9DQp9DQpBTlJJRCgpDQp0YSArPUFOVENWKCk7DQpkb2N1bWVudC53cml0ZSgnPElNRycr
JyBTUkM9IicgKyB0aXUgKyB0YSArICciIFNUWUxFPSJkaXNwbGF5OiBub25lIiBoZWlnaHQ9IjEi
IHdpZHRoPSIxIiBib3JkZXI9IjAiPicpOw0KfQ0KfQ0KZnVuY3Rpb24gQU5SSUQoKSB7DQppZiAo
QU1TUklEICE9JycgJiYgQU1TU0lEICE9JycpIHsNCmlmIChBTlJDIChBTVNSSUQpICE9bnVsbCkg
ew0KQU1TU1JJRD1BTVNTSUQgKyBBTlJDIChBTVNSSUQpOw0KQU5DViAoInJlZ2lkIiwgQU1TU1JJ
RCk7DQp9DQp9DQp9DQpmdW5jdGlvbiBBTkRQICh0YykNCnsNCmlmICgoQU5QICYgMikgIT0wKQ0K
ew0KQU5UQ0M9dGMudG9VcHBlckNhc2UoKTsNCkFOVkFEPTA7DQpBTlZEQT0wOw0KQU5DQ0YoKTsN
Cn0NCn0NCmZ1bmN0aW9uIEFOVjJSICh2LCByZywgcHNsLCBzc2wsIHJzLCByZCkNCnsNCnZhciBt
Ow0KdmFyIG9jOw0KdmFyIHI7DQp2YXIgcmw7DQp2YXIgc3M7DQp2YXIgbG09IiI7DQp2YXIgcnQ9
bnVsbDsNCnZhciByYT1yZy5zcGxpdCgifCIpOw0KdmFyIHBpPTA7DQp2YXIgc2k9cHNsOw0KdmFy
IG9pPXNpICsgc3NsOw0KdmFyIG1pd29vPW9pICsgcnM7DQp2YXIgbWl3bz1taXdvbyArIDE7DQpm
b3IgKHJpPTA7IChyaSA8IHJhLmxlbmd0aCkgJiYgKHJ0PT1udWxsKTsgcmkrKykNCnsNCnI9cmFb
cmldOw0Kcmw9ci5sZW5ndGg7DQppZiAocmwgPj1taXdvbykNCnsNCm9jPXIuY2hhckNvZGVBdCAo
b2kpOw0KaWYgKChvYyA8IDQyKSAmJiAob2MgPiAzMikgJiYgKHJsID49bWl3bykpDQp7DQppZiAo
KHBzbD09MCkgfHwgKHJbcGldPT0nQScpKQ0Kew0KbT1yLnN1YnN0ciAobWl3bywgci5sZW5ndGgg
LSBtaXdvKTsNCn0NCmVsc2UNCnsNCm09bG0uc3Vic3RyICgwLCByLmNoYXJDb2RlQXQgKHBpKSAt
IDY1KTsNCm09bS5jb25jYXQgKHIuc3Vic3RyIChtaXdvLCByLmxlbmd0aCAtIG1pd28pKTsNCn0N
CmlmICgoc3NsICE9MCkgJiYgKHJbc2ldICE9J0EnKSkNCnsNCnNzPXIuY2hhckNvZGVBdCAoc2kp
IC0gNjU7DQptPW0uY29uY2F0IChsbS5zdWJzdHIgKGxtLmxlbmd0aCAtIHNzLCBzcykpOw0KfQ0K
c3dpdGNoIChyW29pXSkNCnsNCmNhc2UgIiEiOg0KaWYgKCh2Lmxlbmd0aD09bS5sZW5ndGgpICYm
ICh2LmluZGV4T2YgKG0pPT0wKSkNCnsNCnJ0PXIuc3Vic3RyIChvaSArIDEsIHJzKTsNCn0NCmJy
ZWFrOw0KY2FzZSAiKSI6DQppZiAodi5sYXN0SW5kZXhPZiAobSk9PSh2Lmxlbmd0aCAtIG0ubGVu
Z3RoKSkNCnsNCnJ0PXIuc3Vic3RyIChvaSArIDEsIHJzKTsNCn0NCmJyZWFrOw0KY2FzZSAiKCI6
DQppZiAodi5pbmRleE9mIChtKT09MCkNCnsNCnJ0PXIuc3Vic3RyIChvaSArIDEsIHJzKTsNCn0N
CmJyZWFrOw0KY2FzZSAiIyI6DQppZiAodi5zZWFyY2ggKG0pICE9LTEpDQp7DQpydD1yLnN1YnN0
ciAob2kgKyAxLCBycyk7DQp9DQpicmVhazsNCmNhc2UgIiYiOg0KaWYgKHYuaW5kZXhPZiAobSkg
IT0tMSkNCnsNCnJ0PXIuc3Vic3RyIChvaSArIDEsIHJzKTsNCn0NCmJyZWFrOw0KfQ0KfQ0KZWxz
ZQ0Kew0KaWYgKChwc2w9PTApIHx8IChyW3BpXT09J0EnKSkNCnsNCm09ci5zdWJzdHIgKG1pd29v
LCByLmxlbmd0aCAtIG1pd29vKTsNCn0NCmVsc2UNCnsNCm09bG0uc3Vic3RyICgwLCByLmNoYXJD
b2RlQXQgKHBpKSAtIDY1KTsNCm09bS5jb25jYXQgKHIuc3Vic3RyIChtaXdvbywgci5sZW5ndGgg
LSBtaXdvbykpOw0KfQ0KaWYgKChzc2wgIT0wKSAmJiAocltzaV0gIT0nQScpKQ0Kew0Kc3M9ci5j
aGFyQ29kZUF0IChzaSkgLSA2NTsNCm09bS5jb25jYXQgKGxtLnN1YnN0ciAobG0ubGVuZ3RoIC0g
c3MsIHNzKSk7DQp9DQppZiAodi5pbmRleE9mIChtKSAhPS0xKQ0Kew0KcnQ9ci5zdWJzdHIgKG9p
LCBycyk7DQp9DQp9DQp9DQpsbT1tOw0KfQ0KcmV0dXJuIChydD09bnVsbCkgPyByZCA6IHJ0LnJl
cGxhY2UgKC9eXHMrfFxzKyQvZywiIik7DQp9DQpmdW5jdGlvbiBBTkdEQ0MgKCkNCnsNCmlmIChB
TkNDICE9MSkNCnsNCkFOVENDPUFOVjJSIChldmFsIChBTlNDQyksIENDTE9PS1VQMjIsIEFOQ0NQ
RCwgQU5DQ1NELCAzLCBBTkRDQykudG9VcHBlckNhc2UoKTsNCn0NCn0NCmZ1bmN0aW9uIEFOR0RT
QSAoKQ0Kew0KaWYgKEFORFNBUyAhPTApDQp7DQpBTlZBQz1BTlYyUiAoZXZhbCAoQU5TQVZOKSwg
U0FMT09LVVAyMiwgQU5DU1BELCBBTkNTU0QsIDIsIEFORFNBKTsNCn0NCn0NCmZ1bmN0aW9uIEFO
U0RSICgpDQp7DQp2YXIgY2NjPUFOR0NDKCk7DQppZiAoKGNjYy5pbmRleE9mIChBTlhDQykgIT0w
KSB8fCAoY2NjLmxlbmd0aCAhPUFOWENDLmxlbmd0aCkpDQp7DQp2YXIgQU5VPSIiOw0KdmFyIHhz
PTA7DQppZiAoQU5VUkw9PTEpDQp7DQpBTlU9IiZwYWdlPSIgKyBlc2NhcGUgKHdpbmRvdy5sb2Nh
dGlvbi5ocmVmKTsNCn0NCmlmICgoQU5BWExTTCAhPW51bGwpICYmIChBTlJDICgnQXh4ZCcpPT1u
dWxsKSkNCnsNCnhzICs9MTsNCn0NCmlmICh4cyA+IDAgKQ0Kew0KQU5VICs9IiZ4cz0iICsgeHM7
DQp9DQppZiAoQU5SREY9PTEpDQp7DQpBTlUgKz0iJnI9IiArIEFOR1JEKCk7DQp9DQppZiAoQU5U
UFRHICE9bnVsbCkNCnsNCkFOVSArPSImdGc9IiArIGVzY2FwZSAoQU5UUFRHKTsNCn0NCmlmIChB
TlRQVUQgIT1udWxsKQ0Kew0KQU5VICs9IiZ1ZD0iICsgZXNjYXBlIChBTlRQVUQpOw0KfQ0KZG9j
dW1lbnQud3JpdGUgKCc8U0NSJysnSVBUIFNSQz0iJyArIEFORFBVICsgJ2NtZD0nICsgY2NjICsg
JyZzaT0nICsgQU5TSUQgKyBBTlUgKyAnJnY9JyArIEFOViArICcmY2I9JyArIE1hdGguZmxvb3Ig
KE1hdGgucmFuZG9tKCkgKiAxMDAwMDApICsgJyIgTEFOR1VBR0U9IkphdmFTY3JpcHQiPjwvU0NS
JyArICdJUFQ+Jyk7DQp9DQpBTlNNRSAoY2NjKTsNCn0NCmZ1bmN0aW9uIEFOU09DUigpDQp7DQpp
ZiAoKEFOQ0NUPT1udWxsKSB8fCAoQU5DQ1QgPCAobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAw
KSkpDQp7DQpkb2N1bWVudC53cml0ZSAoJzxTQ1InKydJUFQgU1JDPSInICsgQU5PUCArICc/Y2I9
JyArIE1hdGguZmxvb3IgKE1hdGgucmFuZG9tKCkgKiAxMDAwMDApICsgJyIgTEFOR1VBR0U9Ikph
dmFTY3JpcHQiPjwvU0NSJyArICdJUFQ+Jyk7DQp9DQp9DQpmdW5jdGlvbiBBTk9SKCkNCnsNCn0N
CmZ1bmN0aW9uIEFOU01FIChjY2MpDQp7DQppZiAoQU5NRT09MSkNCnsNCkFOTUU9MDsNCmRvY3Vt
ZW50LndyaXRlICgnPFNDUicrJ0lQVCBTUkM9IicgKyBBTk1VICsgY2NjICsgJyZzaT0nKyBBTlNJ
RCArICcmY2I9JyArIE1hdGguZmxvb3IgKE1hdGgucmFuZG9tKCkgKiAxMDAwMDApICsgJyIgTEFO
R1VBR0U9IkphdmFTY3JpcHQiPjwvU0NSJyArICdJUFQ+Jyk7DQp9DQp9DQpmdW5jdGlvbiBBTkFQ
IChhYywgc3osIHBiLCBrdykNCnsNCnZhciBhdTsNCmlmIChzeiA8PUFOQURTLmxlbmd0aCkNCnsN
CkFOVkFDPWFjLnRvTG93ZXJDYXNlKCk7DQppZiAoQU5WQUM9PSd6eicpDQp7DQphdT0nPElNRyBT
UkM9IicgKyBBTkRBUyArICcvUFNBXycgKyBBTkFEU1tzei0xXSArICcuZ2lmIj4nOw0KfQ0KZWxz
ZQ0Kew0KYXU9JzxTQ1InKydJUFQgU1JDPSInK0FOQVMrJy9jZ2ktYmluL2Fkcy8nOw0KaWYgKHN6
PT00fHxzej09NXx8c3o9PTcpDQp7DQphdSs9J3NrJzsNCn0NCmVsc2UNCnsNCmF1Kz0nYWQnOw0K
fQ0KaWYgKCh3aW5kb3cuc2VsZj09d2luZG93LnRvcCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfHwNCigodHlwZW9mIGluRGFwSUYgIT0idW5kZWZpbmVkIikgJiYgKGluRGFwSUY9PXRydWUp
KSApDQp7DQpuZj0nTkYvJzsNCn0NCmVsc2UNCnsNCm5mPScnOw0KfQ0KYXUrPUFOU0lEK0FOVkFD
KycuY2dpL3Y9Mi4xUy9zej0nK0FOQURTW3N6LTFdOw0KaWYgKHBiICE9bnVsbCkNCnsNCmF1Kz0n
L3hkPScrcGI7DQp9DQppZiAoa3cgIT1udWxsKQ0Kew0KYXUrPScvaz0nK2t3Ow0KfQ0KYXUrPScv
TlovJytNYXRoLmZsb29yIChNYXRoLnJhbmRvbSgpICogMTAwMDAwKSsnLycrbmYrJ1JFVFVSTi1D
T0RFL0pTLyIgTEFOR1VBR0U9IkphdmFTY3JpcHQiPjwvU0NSJysnSVBUPic7DQp9DQpkb2N1bWVu
dC53cml0ZSAoYXUpOw0KfQ0KQU5WU1o9QU5EU1o7DQp9DQpkb2N1bWVudC5kYXJ0VERhdGE9IiI7
DQpkb2N1bWVudC5kYXJ0VERhdGFWYWx1ZT1BTlJDICgiVERhdGEiKTsNCmlmIChkb2N1bWVudC5k
YXJ0VERhdGFWYWx1ZSAhPSIiICYmIGRvY3VtZW50LmRhcnRURGF0YVZhbHVlICE9bnVsbCkNCnsN
CnZhciBmPWRvY3VtZW50LmRhcnRURGF0YVZhbHVlLnNwbGl0ICgifCIpOw0KZm9yICh2YXIgaT0w
OyBpIDwgZi5sZW5ndGg7IGkrKykNCnsNCmRvY3VtZW50LmRhcnRURGF0YSArPSJrdz0iICsgZltp
XSArICI7IjsNCn0NCn0NCmRvY3VtZW50LmRhcnRUaWQ9QU5SQyAoIlRJRCIpOw0KaWYgKGRvY3Vt
ZW50LmRhcnRUaWQgIT0iIiAmJiBkb2N1bWVudC5kYXJ0VGlkICE9bnVsbCkNCnsNCmRvY3VtZW50
LmRhcnRUaWQ9InU9IiArIGRvY3VtZW50LmRhcnRUaWQgKyAiOyI7DQp9DQp0cnkNCnsNCnZhciB0
YzsNCnZhciB0Y2RhY21kDQppZiAodGNkYWNtZCAhPW51bGwpDQp7DQp0Yz10Y2RhY21kICsgJyc7
DQp9DQplbHNlDQp7DQp0Yz0nJzsNCn0NCnRjZGFjbWQ9Jyc7DQpUQ0RBICh0Yyk7DQp9DQpjYXRj
aCAoZSkNCnsNCkFORUggKGUsJycsJycpOw0KfQ0K1AAFABEABwAIAT8BQAAUAUFfEEZodHRwOi8v
YW5ydHgudGFjb2RhLm5ldC9ydHgvci5qcz9jbWQ9SExUJnNpPTEyOTg1JnhzPTEmdj0zLjE1JmNi
PTg3ODU3TxEHI2JwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmpl
Y3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEBwL
DCYsLTMeNDVLTE1OT1BRUlNUVVZXWFlMWl5fVSRudWxs3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIj
JB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQxgBuAAoAaEAgQ
AIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05TLnJlbGF0aXZlgASAAIADXxBGaHR0cDov
L2FucnR4LnRhY29kYS5uZXQvcnR4L3IuanM/Y21kPUhMVCZzaT0xMjk4NSZ4cz0xJnY9My4xNSZj
Yj04Nzg1N9IuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+woP
PzEQyNMNNjc4OUJXTlMua2V5c1pOUy5vYmplY3RzgBmoOjs8PT4/QEGACYAKgAuADIANgA6AD4AQ
qENERUZHSElKgBGAEoATgBSAFYAWgBeAGFNQM3BaS2VlcC1BbGl2ZVZTZXJ2ZXJcQ29udGVudC1U
eXBlVERhdGVeQ29udGVudC1MZW5ndGhaU2V0LUNvb2tpZVpDb25uZWN0aW9uXxEBDnBvbGljeXJl
Zj0iaHR0cDovL3d3dy50YWNvZGEuY29tL3czYy9wM3AueG1sIiwgQ1A9Ik5PTiBEU1AgQ09SIE5J
RCBDVVJhIEFETW8gREVWbyBUQUlvIFBTQW8gUFNEbyBPVVIgREVMYSBJTkQgUEhZIE9OTCBVTkkg
Q09NIE5BViBERU0iLCBwb2xpY3lyZWY9Imh0dHA6Ly93d3cudGFjb2RhLmNvbS93M2MvcDNwLnht
bCIsIENQPSJOT04gRFNQIENPUiBOSUQgQ1VSYSBBRE1vIERFVm8gVEFJbyBQU0FvIFBTRG8gT1VS
IERFTGEgSU5EIFBIWSBPTkwgVU5JIENPTSBOQVYgREVNIl8QE3RpbWVvdXQ9NjAsIG1heD01NTBf
ECJBcGFjaGUvMS4zLjM3IChVbml4KSBtb2RfcGVybC8xLjI5XxAYYXBwbGljYXRpb24veC1qYXZh
c2NyaXB0XxAdTW9uLCAxMCBOb3YgMjAwOCAyMzozODo0NSBHTVRSODBfEQIxVElEPTE0aGhoZzUx
bHR0dWloOyBwYXRoPS87IGV4cGlyZXM9VGh1LCAwNS1Ob3YtMDkgMjM6Mzg6NDUgR01UOyBkb21h
aW49LnRhY29kYS5uZXQsIEFOUlRUPTUwMjA5XjFeMTIyNjk2NTEyNTsgcGF0aD0vOyBleHBpcmVz
PU1vbiwgMTctTm92LTA4IDIzOjM4OjQ1IEdNVDsgZG9tYWluPS50YWNvZGEubmV0LCBUc2lkPTBe
MTIyNjM2MDMyNV4xMjI2MzYyMTI1fDEyOTg1XjEyMjYzNjAzMjVeMTIyNjM2MjEyNTsgcGF0aD0v
OyBleHBpcmVzPVR1ZSwgMTEtTm92LTA4IDAwOjA4OjQ1IEdNVDsgZG9tYWluPS50YWNvZGEubmV0
LCBURGF0YT05OTk5OXxefCN8NTAyMDk7IGV4cGlyZXM9VGh1LCAwNS1Ob3YtMDkgMjM6Mzg6NDUg
R01UOyBwYXRoPS87IGRvbWFpbj0udGFjb2RhLm5ldCwgQW54ZD14OyBleHBpcmVzPVR1ZSwgMTEt
Tm92LTA4IDIzOjM4OjQ1IEdNVDsgcGF0aD0vOyBkb21haW49LnRhY29kYS5uZXQsIE49Mjo4Y2Q3
YjhhODlkMjY4N2NhYmJhYjM3NGQ1YmE2YzRjMjsgZXhwaXJlcz1UaHUsIDA1LU5vdi0wOSAyMzoz
ODo0NSBHTVQ7IHBhdGg9LzsgZG9tYWluPS50YWNvZGEubmV00i4vW1yjXF0yXxATTlNNdXRhYmxl
RGljdGlvbmFyeVxOU0RpY3Rpb25hcnkQUNIuL2Bho2FiMl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5T
VVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBkAIMAiQCkAKsArgCxALUAuQC8AL8AwgDF
AMgAywDOANEA0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA8AD4AQQBBgEIAQoBUwFYAWEBbAFvAXUB
fgGHAYkBkAGYAaMBpQGuAbABsgG0AbYBuAG6AbwBvgHHAckBywHNAc8B0QHTAdUB1wHbAeYB7QH6
Af8CDgIZAiQDNgNMA3EDjAOsA68F5AXpBe0GAwYQBhIGFwYbBi8AAAAAAAACAQAAAAAAAABjAAAA
AAAAAAAAAAAAAAAGPU8QUHZhciBBTlVUPTE7DQp2YXIgQU5PTz0wOw0KdmFyIEFOQ0NUPTA7DQp2
YXIgQU5TTD0nOTk5OTl8XnwjfDUwMjA5JzsNCkFOUlRYUigpOw0KpAFDAVUBZAGU0gABAAIBRAFI
1QAFAAYABwAIAAkBRQALAAwBRgFHXxEBemh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2lmcmFt
ZTM/cGdJQUFEb0dCZ0FKZHhJQS5aUUZBQUlBQUFBQUFQOEFBQUFDRUFJQUJnS2ZTUWdBcmxjSUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU0zTXpNek16UEEuemN6TXpNek04RC5Oek16
TXpNendQODNNek16TXpQQS5BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBb2RsUGk0T3FZUVhKY0tuekRvcld2M1NqOFNuTG9OMU1S
Z0QtcndBQUFBQT0sLGh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8xMC9oZWFsdGgvMTBo
ZWFydC5odG1sP19yPTImcGFydG5lcj1yc3NueXQmZW1jPXJzcyZvcmVmPXNsb2dpbiZvcmVmPXNs
b2dpbk8RBbM8aHRtbD48Ym9keSBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAlOyBtYXJnaW4tcmlnaHQ6
IDAlOyBtYXJnaW4tdG9wOiAwJTsgbWFyZ2luLWJvdHRvbTogMCUiIG1hcmdpbndpZHRoPSIwIiBt
YXJnaW5oZWlnaHQ9IjAiPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5pZiAod2luZG93
LnJtX2NyZXhfZGF0YSkge3JtX2NyZXhfZGF0YS5wdXNoKDEyMTAxMjEpO30KPC9zY3JpcHQ+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgQ2FzYWxlQXJncyA9IG5ldyBPYmplY3Qo
KTsKQ2FzYWxlQXJncy52ZXJzaW9uID0gMjsKQ2FzYWxlQXJncy5hZFVuaXRzID0gIjIiOwpDYXNh
bGVBcmdzLmNhc2FsZUlEID0gOTk2OTE7Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJodHRwOi8vanMuY2FzYWxlbWVkaWEuY29tL2Nhc2FsZUpUYWcuanMiPjwv
c2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9hcy5jYXNh
bGVtZWRpYS5jb20vaj9zPTk5NjkxJmFtcDt1PWh0dHAlM0EvL2FkLnlpZWxkbWFuYWdlci5jb20v
aWZyYW1lMyUzRnBnSUFBRG9HQmdBSmR4SUEuWlFGQUFJQUFBQUFBUDhBQUFBQ0VBSUFCZ0tmU1Fn
QXJsY0lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNM016TXpNelBBLnpjek16TXpN
OEQuTnpNek16TXp3UDgzTXpNek16UEEuQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW9kbFBpNE9xWVFYSmNLbnpEb3JXdjNTajhT
bkxvTjFNUmdELXJ3QUFBQUElM0QlMkMlMkNodHRwJTNBLy93d3cubnl0aW1lcy5jb20vMjAwOC8x
MS8xMC9oZWFsdGgvMTBoZWFydC5odG1sJTNGX3IlM0QyJTI2cGFydG5lciUzRHJzc255dCUyNmVt
YyUzRHJzcyUyNm9yZWYlM0RzbG9naW4lMjZvcmVmJTNEc2xvZ2luJmFtcDthPTImYW1wO2lkPTU1
Nzk3MzQ5MCZhbXA7cD05JmFtcDt2PTImYW1wO2luaWY9MSI+PC9zY3JpcHQ+PGRpdiBzdHlsZT0i
d2lkdGg6IDcyODsgaGVpZ2h0OiA5MDsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDBweDsgb3ZlcmZs
b3c6IGhpZGRlbjsiPjxhIGhyZWY9Imh0dHA6Ly9jLmNhc2FsZW1lZGlhLmNvbS9jLzIvMS82ODE4
Ny9hSFIwY0hNNkx5OTNkM2N1Wm5KbFpYTmpiM0psTG1OdmJTOVBabVpsY25NdlUzUmhjblF2Um5K
bFpVTnlaV1JwZEZKbGNHOXlkRUZ1WkZOamIzSmxMbUZ6Y0hnL1NVUTlSVUV5TlVJMlJEazFNMFk0
TVRoR1JFWXhSRFUxUlRFeE1qVXlPVFEwUkVRbWMybDBaV2xrUFROaE1qQm1ORFprTW1ZPSIgdGFy
Z2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwOi8vYi5jYXNhbGVtZWRpYS5jb20vVjIvNjgxODcv
MTM5NTE4LzIzOTY4XzcyOHg5MF9GQ1JfMDIuZ2lmIiB3aWR0aD0iNzI4IiBoZWlnaHQ9IjkwIiBi
b3JkZXI9IjAiIGFsdD0iIj48L2E+PC9kaXY+CjwvYm9keT48L2h0bWw+XxAgPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTAtLT4tLT6jAUkBTQFR1AAFABEABwAIAUoBSwAUAUxfECdodHRwOi8vanMu
Y2FzYWxlbWVkaWEuY29tL2Nhc2FsZUpUYWcuanNPEQRIYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNp
b25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WA
AV8QD05TS2V5ZWRBcmNoaXZlcq8QHgsMJiwtMx40NU1OT1BRUlNUVVZXWFlaW1xdXl9jZFUkbnVs
bN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIk
NFIkN1IkMlIkOVIkMFIkMYAdgAKAHBAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtO
Uy5yZWxhdGl2ZYAEgACAA18QJ2h0dHA6Ly9qcy5jYXNhbGVtZWRpYS5jb20vY2FzYWxlSlRhZy5q
c9IuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxYTlNPYmplY3QjQa2R+wco/HIQyNMN
Njc4OUNXTlMua2V5c1pOUy5vYmplY3RzgBupOjs8PT4/QEFCgAmACoALgAyADYAOgA+AEIARqURF
RkdISUpLTIASgBOAFIAVgBaAF4AYgBmAGlNQM3BdQWNjZXB0LVJhbmdlc1ZTZXJ2ZXJcQ29udGVu
dC1UeXBlXkNvbnRlbnQtTGVuZ3RoVERhdGVURXRhZ1pDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRf
EEBwb2xpY3lyZWY9Ii93M2MvcDNwLnhtbCIsIENQPSJOT0kgRFNQIENPUiBERVZhIFRBSWEgT1VS
IEJVUyBVTkkiVWJ5dGVzXxAXQXBhY2hlLzIuMC40NiAoUmVkIEhhdClfEBhhcHBsaWNhdGlvbi94
LWphdmFzY3JpcHRUMjA0Ml8QHU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDMgR01UXxAVIjg4NDA0
ZS03ZmEtNzc1MDIzYzAiWmtlZXAtYWxpdmVfEB1UdWUsIDI5IEFwciAyMDA4IDIxOjEwOjQ3IEdN
VNIuL2Bho2FiMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQf60i4vZWajZmcy
XxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQA
hQCLAKYArQCwALMAtwC7AL4AwQDEAMcAygDNANAA0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA6wDy
APoBBgEIAQoBDAE2ATsBRAFPAVIBWAFhAWoBbAFzAXsBhgGIAZIBlAGWAZgBmgGcAZ4BoAGiAaQB
rgGwAbIBtAG2AbgBugG8Ab4BwAHEAdIB2QHmAfUB+gH/AgoCGAJbAmECewKWApsCuwLTAt4C/gMD
AwcDHQMqAy0DMgM2A0oAAAAAAAACAQAAAAAAAABoAAAAAAAAAAAAAAAAAAADWE8RB/ovKiBDb3B5
cmlnaHQgKEMpIDIwMDggQ2FzYWxlIE1lZGlhIEFsbCBSaWdodHMgUmVzZXJ2ZWQuClRoZSBpbmZv
cm1hdGlvbiBjb250YWluZWQgd2l0aGluIHRoaXMgZG9jdW1lbnQgaXMgY29uZmlkZW50aWFsLCBj
b3B5cmlnaHRlZCBhbmQgb3IgdHJhZGUgc2VjcmV0LiBObyBwYXJ0IG9mIHRoaXMgZG9jdW1lbnQg
bWF5IGJlIHJlcHJvZHVjZWQgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IGZvcm0gb3IgYnkgYW55IG1l
YW5zLCBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHRoZSBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24gb2YgQ2FzYWxlIE1lZGlhLgoqLwp2YXIgQ2FzYWxlUjtpZighQ2FzYWxlUil7Q2FzYWxl
Uj0obmV3IERhdGUoKS5nZXRUaW1lKCklMjU5MjAwMCkqMjU2K01hdGguZmxvb3IoTWF0aC5yYW5k
b20oKSoyNTYpKzI1Njt9CnZhciBDYXNhbGVQO2lmKCFDYXNhbGVQKXtDYXNhbGVQPWNhc2FsZUZs
YXNoVmVyKCk7fQpmdW5jdGlvbiBjYXNhbGVDYWxsKENhc2FsZUlELEFyZ3Mpe3ZhciBjYXNhbGVV
PWVzY2FwZSh3aW5kb3cubG9jYXRpb24uaHJlZik7dmFyIGFtcD0nJmFtcDsnO3ZhciBjYXNhbGVJ
Rj10b3A9PXNlbGY/MDoxO3ZhciByZXE9JzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Imh0dHA6Ly9hcy5jYXNhbGVtZWRpYS5jb20vaj9zPScrQ2FzYWxlSUQrYW1wKyd1PScrY2Fz
YWxlVSthbXArJ2E9JytBcmdzLmFkVW5pdHMrYW1wKydpZD0nK0Nhc2FsZVIrYW1wKydwPScrQ2Fz
YWxlUCthbXArJ3Y9JytBcmdzLnZlcnNpb24rYW1wKydpbmlmPScrY2FzYWxlSUY7aWYoQXJncy5h
bGlnbil7cmVxKz1hbXArJ2FsPScrQXJncy5hbGlnbjt9CnJlcSs9JyI+PFwvc2NyaXB0Pic7ZG9j
dW1lbnQud3JpdGUocmVxKTt9CmZ1bmN0aW9uIGNhc2FsZUZsYXNoVmVyKCl7dmFyIHZlcnNpb249
MDt2YXIgaXNJRT0obmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIpIT0tMSk/dHJ1
ZTpmYWxzZTt2YXIgaXNXaW49KG5hdmlnYXRvci5hcHBWZXJzaW9uLnRvTG93ZXJDYXNlKCkuaW5k
ZXhPZigid2luIikhPS0xKT90cnVlOmZhbHNlO3ZhciBpc09wZXJhPShuYXZpZ2F0b3IudXNlckFn
ZW50LmluZGV4T2YoIk9wZXJhIikhPS0xKT90cnVlOmZhbHNlO2lmKG5hdmlnYXRvci5wbHVnaW5z
JiZuYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGgpe2lmKG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dh
dmUgRmxhc2ggMi4wIl18fG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXSl7dmFy
IHN3VmVyPW5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2ggMi4wIl0/IiAyLjAiOiIi
O3ZhciBkZXNjPW5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giK3N3VmVyXS5kZXNj
cmlwdGlvbjt2YXIgYXJ5PWRlc2Muc3BsaXQoIiAiKTt2ZXJzaW9uPWFyeVsyXS5zcGxpdCgiLiIp
WzBdO319ZWxzZSBpZihpc0lFJiZpc1dpbiYmIWlzT3BlcmEpe3ZhciB0bXAsdmVyRGVzYzt0cnl7
dG1wPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaC43Iik7
dmVyc2lvbj10bXAuZ2V0VmFyaWFibGUoIiR2ZXJzaW9uIikuc3BsaXQoIiAiKVsxXS5zcGxpdCgi
LCIpWzBdO31jYXRjaChlKXt9CmlmKCF2ZXJzaW9uKXt0cnl7dG1wPW5ldyBBY3RpdmVYT2JqZWN0
KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaC42Iik7dmVyRGVzYz0iV0lOIDYsMCwyMSww
Ijt0bXAuQWxsb3dTY3JpcHRBY2Nlc3M9ImFsd2F5cyI7dmVyc2lvbj10bXAuZ2V0VmFyaWFibGUo
IiR2ZXJzaW9uIikuc3BsaXQoIiAiKVsxXS5zcGxpdCgiLCIpWzBdO31jYXRjaChlKXt9fQppZigh
dmVyc2lvbikKe3RyeXt0bXA9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nr
d2F2ZUZsYXNoLjMiKTt2ZXJzaW9uPXRtcC5nZXRWYXJpYWJsZSgiJHZlcnNpb24iKS5zcGxpdCgi
ICIpWzFdLnNwbGl0KCIsIilbMF07fWNhdGNoKGUpe319fQpyZXR1cm4gdmVyc2lvbjt9CmNhc2Fs
ZUNhbGwoQ2FzYWxlQXJncy5jYXNhbGVJRCwgQ2FzYWxlQXJncyk7CtQABQARAAcACAFOAU8ADAFQ
XxEB4Gh0dHA6Ly9hcy5jYXNhbGVtZWRpYS5jb20vaj9zPTk5NjkxJnU9aHR0cCUzQS8vYWQueWll
bGRtYW5hZ2VyLmNvbS9pZnJhbWUzJTNGcGdJQUFEb0dCZ0FKZHhJQS5aUUZBQUlBQUFBQUFQOEFB
QUFDRUFJQUJnS2ZTUWdBcmxjSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU0zTXpN
ek16UEEuemN6TXpNek04RC5Oek16TXpNendQODNNek16TXpQQS5BQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBb2RsUGk0T3FZUVhK
Y0tuekRvcld2M1NqOFNuTG9OMU1SZ0QtcndBQUFBQSUzRCUyQyUyQ2h0dHAlM0EvL3d3dy5ueXRp
bWVzLmNvbS8yMDA4LzExLzEwL2hlYWx0aC8xMGhlYXJ0Lmh0bWwlM0ZfciUzRDIlMjZwYXJ0bmVy
JTNEcnNzbnl0JTI2ZW1jJTNEcnNzJTI2b3JlZiUzRHNsb2dpbiUyNm9yZWYlM0RzbG9naW4mYT0y
JmlkPTU1Nzk3MzQ5MCZwPTkmdj0yJmluaWY9MU8RBVVicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lv
blQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYAB
XxAPTlNLZXllZEFyY2hpdmVyrxAbCwwiKCkvMDEySElKS0xNTk9QUVJTVFBVVldbVSRudWxs2w0O
DxAREhMUFRYXGBkaGxwdHh8gGiFWJGNsYXNzUiQzUiQ4UiQ1UiQ2UiQ0UiQ3UiQyUiQ5UiQwUiQx
gBqAAhAIgAaAB4AFgAgQBRAAEAHTDSMkJSYnV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEQHk
aHR0cDovL2FzLmNhc2FsZW1lZGlhLmNvbS9qP3M9OTk2OTEmdT1odHRwJTNBLy9hZC55aWVsZG1h
bmFnZXIuY29tL2lmcmFtZTMlM0ZwZ0lBQURvR0JnQUpkeElBLlpRRkFBSUFBQUFBQVA4QUFBQUNF
QUlBQmdLZlNRZ0FybGNJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTTNNek16TXpQ
QS56Y3pNek16TThELk56TXpNek16d1A4M016TXpNelBBLkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFvZGxQaTRPcVlRWEpjS256
RG9yV3YzU2o4U25Mb04xTVJnRC1yd0FBQUFBJTNEJTJDJTJDaHR0cCUzQS8vd3d3Lm55dGltZXMu
Y29tLzIwMDgvMTEvMTAvaGVhbHRoLzEwaGVhcnQuaHRtbCUzRl9yJTNEMiUyNnBhcnRuZXIlM0Ry
c3NueXQlMjZlbWMlM0Ryc3MlMjZvcmVmJTNEc2xvZ2luJTI2b3JlZiUzRHNsb2dpbiZhPTImaWQ9
NTU3OTczNDkwJnA9OSZ2PTImaW5pZj0xJkM9MdIqKywtWCRjbGFzc2VzWiRjbGFzc25hbWWiLS5V
TlNVUkxYTlNPYmplY3QjQa2R+weM5MkQAhDI0w0zNDU2P1dOUy5rZXlzWk5TLm9iamVjdHOAGag3
ODk6Ozw9PoAJgAqAC4AMgA2ADoAPgBCoQEFCQ0RFRkeAEYASgBOAFIAVgBaAF4AYV0V4cGlyZXNd
Q2FjaGUtQ29udHJvbFZQcmFnbWFWU2VydmVyXENvbnRlbnQtVHlwZVREYXRlXkNvbnRlbnQtTGVu
Z3RoWkNvbm5lY3Rpb25fEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQzIEdNVF8QHW1heC1hZ2U9
MCwgbm8tY2FjaGUsIG5vLXN0b3JlWG5vLWNhY2hlVkFwYWNoZVl0ZXh0L2h0bWxTNDU5WmtlZXAt
YWxpdmXSKitYWaNZWi5fEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyedIqK1xdo11e
Ll8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABoAHwApADIANwA6AFAAUgBk
AIIAiACfAKYAqQCsAK8AsgC1ALgAuwC+AMEAxADGAMgAygDMAM4A0ADSANQA1gDYAN8A5wDzAPUA
9wD5AuEC5gLvAvoC/QMDAwwDFQMXAxkDIAMoAzMDNQM+A0ADQgNEA0YDSANKA0wDTgNXA1kDWwNd
A18DYQNjA2UDZwNvA30DhAOLA5gDnQOsA7cD1wP3BAAEBwQRBBUEIAQlBCkEPwRMBFEEVQRpAAAA
AAAAAgEAAAAAAAAAXwAAAAAAAAAAAAAAAAAABHdPEQHLZG9jdW1lbnQud3JpdGUoJzxkaXYgc3R5
bGU9IndpZHRoOiA3Mjg7IGhlaWdodDogOTA7IG1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHg7IG92
ZXJmbG93OiBoaWRkZW47Ij48YSBocmVmPSJodHRwOi8vYy5jYXNhbGVtZWRpYS5jb20vYy8yLzEv
NjgxODcvYUhSMGNITTZMeTkzZDNjdVpuSmxaWE5qYjNKbExtTnZiUzlQWm1abGNuTXZVM1JoY25R
dlJuSmxaVU55WldScGRGSmxjRzl5ZEVGdVpGTmpiM0psTG1GemNIZy9TVVE5UlVFeU5VSTJSRGsx
TTBZNE1UaEdSRVl4UkRVMVJURXhNalV5T1RRMFJFUW1jMmwwWldsa1BUTmhNakJtTkRaa01tWT0i
IHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cDovL2IuY2FzYWxlbWVkaWEuY29tL1YyLzY4
MTg3LzEzOTUxOC8yMzk2OF83Mjh4OTBfRkNSXzAyLmdpZiIgd2lkdGg9IjcyOCIgaGVpZ2h0PSI5
MCIgYm9yZGVyPSIwIiBhbHQ9IiIgLz48L2E+PC9kaXY+Jyk71AAFABEABwAIAVIBUwB5AVRfEEBo
dHRwOi8vYi5jYXNhbGVtZWRpYS5jb20vVjIvNjgxODcvMTM5NTE4LzIzOTY4XzcyOHg5MF9GQ1Jf
MDIuZ2lmTxEEUmJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmpl
Y3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEB4L
DCYsLTMeNDVNTk9QUVJTVFVWV1hZWltcXV5fY2RVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAh
IiMkHSVWJGNsYXNzUiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAHYACgBwQ
CBAAgAaAB4AFgAgQB4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEEBodHRw
Oi8vYi5jYXNhbGVtZWRpYS5jb20vVjIvNjgxODcvMTM5NTE4LzIzOTY4XzcyOHg5MF9GQ1JfMDIu
Z2lm0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7B5D6nBDI
0w02Nzg5Q1dOUy5rZXlzWk5TLm9iamVjdHOAG6k6Ozw9Pj9AQUKACYAKgAuADIANgA6AD4AQgBGp
REVGR0hJSktMgBKAE4AUgBWAFoAXgBiAGYAaU1AzcF1BY2NlcHQtUmFuZ2VzVlNlcnZlclxDb250
ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25dTGFzdC1Nb2RpZmll
ZF8QQHBvbGljeXJlZj0iL3czYy9wM3AueG1sIiwgQ1A9Ik5PSSBEU1AgQ09SIERFVmEgVEFJYSBP
VVIgQlVTIFVOSSJVYnl0ZXNfEBdBcGFjaGUvMi4wLjQ2IChSZWQgSGF0KVlpbWFnZS9naWZVMTM0
NzVfEB1Nb24sIDEwIE5vdiAyMDA4IDIzOjM4OjQzIEdNVF8QFiIzYWMxNmQtMzRhMy03YjQ5OGY4
MCJaa2VlcC1hbGl2ZV8QHVdlZCwgMDQgSnVuIDIwMDggMjA6NTc6NTAgR01U0i4vYGGjYWIyXxAT
TlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRNKPSLi9lZqNmZzJfEBFOU0hUVFBVUkxS
ZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACFAIsApgCtALAAswC3
ALsAvgDBAMQAxwDKAM0A0ADTANUA1wDZANsA3QDfAOEA4wDlAOcA6QDrAPIA+gEGAQgBCgEMAU8B
VAFdAWgBawFxAXoBgwGFAYwBlAGfAaEBqwGtAa8BsQGzAbUBtwG5AbsBvQHHAckBywHNAc8B0QHT
AdUB1wHZAd0B6wHyAf8CDgITAhgCIwIxAnQCegKUAp4CpALEAt0C6AMIAw0DEQMnAzQDNwM8A0AD
VAAAAAAAAAIBAAAAAAAAAGgAAAAAAAAAAAAAAAAAAANiTxE0o0dJRjg5YdgCWgD3/QD///8z/wAA
AACZ/////wDM/5n/AAD/zAD/mQDMzMwzMzOamprs7OzX19cdHR3z8/OlpaXT09PKysqkpKTh4eHR
0dEVFRXS0tKhoaGzs7MRERG3t7fb29vLy8tWVla+vr6YmJh1dXVQ/yT/pyT/0yT/JCT/v2D/YGD/
32CA/2CW/3zF/7f/7e3/wMDx/+1y/0//3E//fHz/5Xz/4rf/5sD/8bf/+O3/8sDN/8D/y3z/t7f/
T0//uU//++3/2qL/7KL/oqK1/6K7u7v/QkL/MjL/+N7/rTL/6pb/zMyC/2Obm5v/1pnn/+Gt/5mr
/5b/mZn/RUX/tUVo/0L/2UKE/2X/65n/8t7/Y2P/1Zbl/97/2kX/1jL/3t7/lpZq/0XW/8z/4GP/
wWP/ZWX/s0L/4eH/8+H/wWVb/zL/4GX/9cz/68z/+eH//PD/0yP/+fBP/yPi/9v6//nz//D/sTz/
8PD/zQX/mwX/BQX/65z/29v//vn/PDz/8dv//fn/+fmw/5z/pyP/IyP/2Dw3/wVj/zz/15z/nJz/
+NtZWVnP/8P/TExw/0z/88P/yXn/eXn/8LT/t0z/4bT/w8OU/3nD/7T/58P/20z/5Hn//vwbGxv/
tLTu7u709PTa2tre3t4WFhb9//yDg4Opqan/KSnBwcHOzs7r6+v/Pz//Dw/d/9X/1dX/nw//1Cn/
/f3/mgI1/wL/qSk//w//AgJU/yn/wmb/sj/9//3/7tX///0QEBCF/2b/4GZl/z//zw///Pz/99X/
/v3/2T//Zmb/zALPz88fHx/Dw8Pm5ubk5OTQ0NDV1dXY2NgSEhLi4uJOTk729vbNzc3Jyck6Ojry
8vLt7e0HBwdLS0tqampwcHABAQH39/ff39+ysrKQkJAgICCWlpbAwMCvr6+8vLyZmZmjo6NTU1Om
pqZeXl65ubkXFxe9vb1PT0/FxcWoqKhoaGjv7+90dHQoKCi0tLS6urpJSUm1tbUcHBwICAhxcXGq
qqro6Oh3d3e/v7////8AAAAAAAAh/wtORVRTQ0FQRTIuMAMBAgAAIfkEBTIA/QAsAAAAANgCWgAA
CP8AFQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkxgAoU6pcybKly5cw
Y8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypd2lMg06dQo0qdSrWq1atYs2rdynWr065gw4od
S7as2bNo06ptqmCt27dw48qdS7eu3aJfqQoQ4HbvUL93dwIOMDiw4cOIEysOkHfl3seQ//JdW/hn
ZbGQL/scrPll5slpNXdWm3mx6dNe27YcHZQ1ZtBAXWN9rFL2zc6sC9veKhr2W86+UQsfrrRx7eBE
d3NVTpP51MrOZeJGjhI69derr6PVrZ249+87jaf/HO03MmHa1fmaT38c/XmWwN2/Pz+5tOf15eWn
108fMHf4wcX333Hs0QdgTP4JGCBtwO3Hn2v2OQhbgqBFuBly3Ll3mYIubVjhevONR1104JVookri
FZjdhx/uJ+KLKiZ4YIgNRtZgdjBqOGGLML53o2MLxshjjuo92F1+MqpI44/kNUlkj0jWN2RPvUEp
5Yw/EgikkD0qqeWJYIYZU4r94bejltYVmGaI862pn2zTbclmmxhe2eGZcyZJpHYQrvnkl1kC+Gad
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
6nlRl/+ZCaWgRkI55JaJgukomPMlaqiie9oJJ5xNNvrkpJoWiueLlJ4pJp6dYgniQ70Ryql7pBp5
paVAjv+qIZk8SvnorSpGSuGkMUZppq4fErppnbVaF6uoSS7aapjFNjsiZpxWap5HP/pqo2W/Aups
jrh2KxmwNZoKq47epShrs8NeGiuoec4p6rjmnljiufLaKu662qIrqbv68lrgqw6V++6x3hb8Hriv
EsinqVGGuvCCDs9a73YA72etq9HmiTGzE9vXMcThwspuyCQfW+2/1jFKsHYv0leqwTB3RWWdCT9Y
caaYVtdYkeA1SG6mwTXcb5ViZWzxeu0BTVjLRabZ7r8Vp3wzv52qh6CtTtPb89GVxux1zKzqu1rY
X4/Nbdlop71sRWQn1bbaeL0N99zdvi23UXfTXVXeevcZ7fffgAcu+OCEF2744YgnrvjijDfueEMB
AQA70gABAAIBVgFa1QAFAAYABwAIAAkBVwALAAwBWAFZXxBFaHR0cDovL3d3dy5ueXRpbWVzLmNv
bS9nc3QvbGl0ZXN1Yl9pbnNlcnQuaHRtbD9wcm9kdWN0PUVMJnNpemU9MzM2WDkwTxEHKjwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4i
ICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPjwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPjxodG1sPjxoZWFkPgoJCTx0aXRsZT4gQFRpbWVz
IC0gSW5zaWRlIE5ZVGltZXMuY29tIGJ5IEUtTWFpbCAtIFNpZ24gVXA8L3RpdGxlPgoJCTxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHA6Ly9ncmFwaGljczgu
bnl0aW1lcy5jb20vY3NzL2NvbW1vbi9nbG9iYWwuY3NzIj4KCQk8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgoJCUBpbXBvcnQgdXJsKCBodHRwOi8vZ3JhcGhpY3M4Lm55dGltZXMuY29tL2Nzcy9zdGFu
ZGFsb25lL3JlZ2lsaXRlL3NjcmVlbi9yZWdpTGl0ZS5jc3MgKTsKCTwvc3R5bGU+Cgk8L2hlYWQ+
PGJvZHkgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+CgkJPCEtLSBSRUdJIExJR0hU
IEhUTUwgU1RBUlRTIEhFUkUgLS0+CgkJCgk8ZGl2IGNsYXNzPSJoZWFkZXIiPkBUaW1lcyAtIElu
c2lkZSBOWVRpbWVzLmNvbSBieSBFLU1haWw8L2Rpdj4KCTxkaXYgY2xhc3M9InN0b3J5IiBpZD0i
cmVnaUxpdGUiPgoJCTxkaXYgY2xhc3M9Imljb24iPjxpbWcgc3JjPSIgaHR0cDovL2dyYXBoaWNz
OC5ueXRpbWVzLmNvbS9pbWFnZXMvbWVtYmVyY2VudGVyL2ljb25fYXQuZ2lmICIgd2lkdGg9IjQ2
IiBoZWlnaHQ9IjU0IiBhbHQ9IkUtbWFpbCBTaWduIFVwIiBib3JkZXI9IjAiPjwvZGl2PgoJCTxk
aXYgY2xhc3M9ImluZm9FbnRyeSI+CgkJCTxmb3JtIG5hbWU9InJlZ2lMaXRlIiBhY3Rpb249Imh0
dHA6Ly93d3cubnl0aW1lcy5jb20vZ3N0L2xpdGVzdWJfaW5zZXJ0Lmh0bWwiIG1ldGhvZD0icG9z
dCI+CgkJCTxwPiBTaWduIHVwIGZvciByZWd1bGFyIHVwZGF0ZXMgb24gd2hhdCdzIG5ldyBvbiBO
WVRpbWVzLmNvbS4gPC9wPgoJCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZW1haWwiIHZhbHVl
PSIiIGNsYXNzPSJyZWdpVGV4dElucHV0IiBtYXhsZW5ndGg9IjY0Ij7CoAoJCQk8aW5wdXQgYWxp
Z249InRvcCIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0ic3VibWl0IiBpZD0icmVnaVN1Ym1pdCIgdGl0
bGU9IlNpZ24gVXAiIGFsdD0iU2lnbiBVcCIgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cDovL2dyYXBo
aWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvbWVtYmVyY2VudGVyL2J1dHRvbl9zaWdudXAuZ2lmIj4K
CQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdCIgdmFsdWU9IkVMIj4KCQkJPGlu
cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0ic3VibWl0Ij4KCQkJPGlucHV0
IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWIiIHZhbHVlPSIiPgoJCQk8L2Zvcm0+CgkJCTxwPjxhIGhy
ZWY9Imh0dHA6Ly93d3cubnl0aW1lcy5jb20vbWFya2V0aW5nL2VtYWlsL3NhbXBsZXMvYXR0aW1l
cy5odG1sIiBvbmNsaWNrPSJ3aW5kb3cub3BlbignJywncG9wdXAnLCdoZWlnaHQ9NDMwLHdpZHRo
PTY0MCxzY3JvbGxiYXJzPXllcyxyZXNpemFibGU9eWVzJykiIHRhcmdldD0icG9wdXAiPlNlZSBT
YW1wbGU8L2E+wqDCoHzCoMKgPGEgaHJlZj0iaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9wcml2YWN5
IiB0YXJnZXQ9Il9ibGFuayI+UHJpdmFjeSBQb2xpY3k8L2E+PC9wPgoJCTwvZGl2PgoJPC9kaXY+
CgkKCgkJCgkJPCEtLSBSRUdJIExJR0hUIEhUTUwgRU5EUyBIRVJFIC0tPgoJCgkKPC9ib2R5Pjwv
aHRtbD5fECA8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0tPqMBWwFcAWDUAAUAEQAHAAgA
UABRACkAUtQABQARAAcACAFdAV4AeQFfXxA8aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9p
bWFnZXMvbWVtYmVyY2VudGVyL2ljb25fYXQuZ2lmTxED62JwbGlzdDAw1AECAwQFBgkKWCR2ZXJz
aW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgABhqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNl
gAFfEA9OU0tleWVkQXJjaGl2ZXKvEBwLDCYsLTMeNDVLTE1OT1BRUlNUVVZXWFlaW19gVSRudWxs
3Q0ODxAREhMUFRYXGBkaGxwdHh8gISIjJB0lViRjbGFzc1IkM1IkOFMkMTBTJDExUiQ1UiQ2UiQ0
UiQ3UiQyUiQ5UiQwUiQxgBuAAoAaEAgQAIAGgAeABYAIEAeAABAB0w0nKCkkK1dOUy5iYXNlW05T
LnJlbGF0aXZlgASAAIADXxA8aHR0cDovL2dyYXBoaWNzOC5ueXRpbWVzLmNvbS9pbWFnZXMvbWVt
YmVyY2VudGVyL2ljb25fYXQuZ2lm0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhO
U09iamVjdCNBrZH7B3RUmxDI0w02Nzg5QldOUy5rZXlzWk5TLm9iamVjdHOAGag6Ozw9Pj9AQYAJ
gAqAC4AMgA2ADoAPgBCoQ0RFRkdISUqAEYASgBOAFIAVgBaAF4AYXUFjY2VwdC1SYW5nZXNWU2Vy
dmVyXENvbnRlbnQtVHlwZV5Db250ZW50LUxlbmd0aFREYXRlVEV0YWdaQ29ubmVjdGlvbl1MYXN0
LU1vZGlmaWVkVWJ5dGVzXxAWU3VuLU9ORS1XZWItU2VydmVyLzYuMVlpbWFnZS9naWZUMTgwNV8Q
HU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDMgR01UXiI3MGQtNDU5M2QyODgiWmtlZXAtYWxpdmVf
EB1UaHUsIDI4IERlYyAyMDA2IDE0OjE5OjUyIEdNVNIuL1xdo11eMl8QE05TTXV0YWJsZURpY3Rp
b25hcnlcTlNEaWN0aW9uYXJ5EQcN0i4vYWKjYmMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxS
ZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAgwCJAKQAqwCuALEAtQC5ALwAvwDCAMUAyADL
AM4A0QDTANUA1wDZANsA3QDfAOEA4wDlAOcA6QDwAPgBBAEGAQgBCgFJAU4BVwFiAWUBawF0AX0B
fwGGAY4BmQGbAaQBpgGoAaoBrAGuAbABsgG0Ab0BvwHBAcMBxQHHAckBywHNAdsB4gHvAf4CAwII
AhMCIQInAkACSgJPAm8CfgKJAqkCrgKyAsgC1QLYAt0C4QL1AAAAAAAAAgEAAAAAAAAAZAAAAAAA
AAAAAAAAAAAAAwNPEQcNR0lGODlhLgA2AOY0AOzs7MDAwJ2dnebm5vYVFfc2Ns3Kytra2t/f39LO
zv3Ly+Lg4PQrK9TT0/ZWVq+vr/pmZtLS0r29vf3c3P7t7bm5udW4uOrq6vhDQ7W1tejo6Ox4eOhr
a9fX1+NNTfyJieTk5KWlpeHe3vbExNXR0bOzs9ynp9rX1/28vOro6Pp3d5WVld3Z2crFxejm5ubk
5OPi4vmGhu3t7fUPD/////gCAvv7+/Ly8vPz88K8vPT09P39/fb29vf39/Hx8f7+/vX19fr6+vDw
8Pz8/O/v7+7u7vj4+Pn5+dCKisawsNtlZfqamthycsbAwPPy8tR+fuo0NM2Xl/X09PHw8O7v7+vs
7MfHx/X29smjo+ZAQPj4+fn6+fT19O/u7/X19P2rq/T09d9ZWff29vb29fr5+u7v7uzr7OpEROvr
6/v7/Ozs6/r6+/r7+/v7+vEkJPv8/OG+vvPz9M24uPn6+vT19erIyPTz8/X29fDw8dXV1fWBgfGO
junq6urp6eqHh+/u7iH5BAEAADQALAAAAAAuADYAAAf/gDSCgz9DRxECiYqLjI2KIDc8QTs/g5aX
O0FAApednpYSMhIIRECTlZ+CO0ZCnKmvgqGiBwA6p69DPACusKmyMhW0tpSpNjp9vL2ev8DCt542
OAPJypfMs7VHxJ02N9PVn9fYw9De1OCxMurrMgIwRTw2qJbd370oSx/6KBSxEv8AJQjoMOCGNm7m
XqFwUKOhw4YFlvzYMcTGESM9eghIgEBGjx0I7XVSgMEhAQwoSzosoMBGkCM9ePAQYOXABSBDQp6j
scQhBBM5ggp9AqUhAQUXewDZFKCDBhw2dHbqWaMA0KBNEmhNEJTJjBpHYwLRIaDpAKhSLX1p6CBJ
0BNO/zqlSPAEolIdZAPkKRj1Ur1kEwjUYODWQNwJHyCgVPFBwQ4YHhruGYuj7N4bfeklHAShIZYc
J2xQ6PzQIYUhdRqeoWyZb1oaExp6yGFAdIHSDmdMqcigoQgdlfW69ruZxoeGUXKIoXG7oRK3RWtA
yWHEhp6GFnAEv5x50N9BJQmANu6QidDoYZpUjNEQifbWmF83zJIjruAas3MssOFQSYL17QGw3XCa
2RNbDUq0QIMCDiGRwwuwNchCRSo09OCA8RFnDwrOkcCTQ+PRsJZnIlR0m3gvYNidIN/RwCGCC5Bn
4R+CqFRDDgAMceBs7wmXYYGuMFhDGDEe154gVFkoxf8QDNUQRQs9cidfDW7EKGQNMyTW0FdOUsBe
DfQ1ECWB3hWnEhyC9FbaBpGVRlgOF4z5Y5nT/GAnVRwIMsJ9WG6QAxZcNsSBWwkAIeeKNNjgAwgl
2DDEDhR8NcMIgljAhBJPuKVfApdmGpRhht4A34o/BEFECTtk0EMQQ1DlRj9OtCBUEzGK0YRQObCg
Aw+hjmrJREaUMEQab5Sw6hFtEoBCoi8s0EdmQbwgggY9XMQDcKL6mNlENpQQRBts2LBGBpJo0GZV
jdn5AwUofODGBBRZFBO2vtLArQRbbDEHGWQcsYUEPdhwwhN84tbQBxW9dBcO2UrJbQZGHKHFxEZE
HGz/dSfkwEQWuBHggB9yQGVtqD6Myq2xGaWscg8lGBGEC7LmEAUSNGsalAhJUXZDydruYEMGOoxx
hUxE8yD0FXeUAETEMJCAK1YkwLD0vAz70Iq2Q0ggBRhgeCEFXl7owIUOQHBBhw4l4ABEDxHL0Mfb
QFyEEdU7C3E1dxlop50deseh9984ZODDriunLJPOVgtBxKgZIOD445BH7ngGABCBA9lLZT4WcFUr
TsTi2mZAQwN242H3FHafbncEPmQwAABC3AC43jfUrXgRRYCOtyARUEFEGV0QQcUfXVBRBhER4EBE
BiD0IYMPtUdfuw/U200E7rkzPkgD7HQfQQ83FJHB/wIaVE79+een/jnun5dFEFSiD9KBGVUAUEUV
apiRhw3gy5DBCitwhAAXEYGa9EEHP7tEBC7Ahwv04QIN+IENeHAD/4UgBA/IoAY3yMEMlqACAeAI
AHgwhPgNwgcRSGEKB1ARCvrvg/8IgAxnSMMaBsAKCTjAAIRghFQN4ggI6AAR1BWEIBKBBz7wnxUM
EIEG5OGJUIyiFDtwAAQMoAim8OEONNCAARzBBmAMYxE60BE0ZICKCwDBANbIxja6cQB9gF3chvAD
wZExEkUjGhB8gIAGLCADMNCADGInvUIW8nI8cNmjaHBGGQBhZ+hDHxEAAIIOZOACQuDBF8PIyU5y
8mpR2zhABkZJylKacpQHKMUk0OGJI+hACDJAwwVmSUta9mGNGriAD+IxD1YOwgg68MH1sEfMYhJh
cEagoy/9YgRe4eWZ0IQmEBJpg20sUxUJC4I2t8lNbjrKmte0l512QM5ymvOc6gqnJQIBADvUAAUA
EQAHAAgBYQFiAHkBY18QQmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzL21lbWJl
cmNlbnRlci9idXR0b25fc2lnbnVwLmdpZk8RA/BicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQk
dG9wWSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAP
TlNLZXllZEFyY2hpdmVyrxAcCwwmLC0zHjQ1S0xNTk9QUVJTVFVWV1hZWltfYFUkbnVsbN0NDg8Q
ERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1Ik
MlIkOVIkMFIkMYAbgAKAGhAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxh
dGl2ZYAEgACAA18QQmh0dHA6Ly9ncmFwaGljczgubnl0aW1lcy5jb20vaW1hZ2VzL21lbWJlcmNl
bnRlci9idXR0b25fc2lnbnVwLmdpZtIuLzAxWCRjbGFzc2VzWiRjbGFzc25hbWWiMTJVTlNVUkxY
TlNPYmplY3QjQa2R+wd8xdoQyNMNNjc4OUJXTlMua2V5c1pOUy5vYmplY3RzgBmoOjs8PT4/QEGA
CYAKgAuADIANgA6AD4AQqENERUZHSElKgBGAEoATgBSAFYAWgBeAGF1BY2NlcHQtUmFuZ2VzVlNl
cnZlclxDb250ZW50LVR5cGVeQ29udGVudC1MZW5ndGhURGF0ZVRFdGFnWkNvbm5lY3Rpb25dTGFz
dC1Nb2RpZmllZFVieXRlc18QFlN1bi1PTkUtV2ViLVNlcnZlci82LjFZaW1hZ2UvZ2lmUzM3NF8Q
HU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDMgR01UXiIxNzYtNDU5NjQ3YzMiWmtlZXAtYWxpdmVf
EB1TYXQsIDMwIERlYyAyMDA2IDExOjA0OjM1IEdNVNIuL1xdo11eMl8QE05TTXV0YWJsZURpY3Rp
b25hcnlcTlNEaWN0aW9uYXJ5EQF20i4vYWKjYmMyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxS
ZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAgwCJAKQAqwCuALEAtQC5ALwAvwDCAMUAyADL
AM4A0QDTANUA1wDZANsA3QDfAOEA4wDlAOcA6QDwAPgBBAEGAQgBCgFPAVQBXQFoAWsBcQF6AYMB
hQGMAZQBnwGhAaoBrAGuAbABsgG0AbYBuAG6AcMBxQHHAckBywHNAc8B0QHTAeEB6AH1AgQCCQIO
AhkCJwItAkYCUAJUAnQCgwKOAq4CswK3As0C2gLdAuIC5gL6AAAAAAAAAgEAAAAAAAAAZAAAAAAA
AAAAAAAAAAAAAwhPEQF2R0lGODlhLQATAMQUAPHx8aCgoOTk5P7+/lxcXJKSkrGxsdbW1nd3d0FB
QYWFha2trbu7u05OTrCwsGlpabOzs8nJybKysjMzM////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACH5BAEAABQALAAAAAAtABMAAAXzICUZEmRAUqqubOu+EgVRND3UeK7vPJ72wKBQ
FBsaj6WjUihx6CKRWvQ4pQAOvdKNJmgQHgnsQzmRjnkjXKBACyAoU0BEDpcDcmVaZDyf1wYpW3AE
CwI1ZQAEBQ9lEwgFCXeHZhQTCgUEkkQ5AgEPDQyVFAsKFAKNdw9VonpjE4YKATVpNYU0BwmiAbKi
eao4eXCubbybNZ6GDA2iDHyNNL81D7IACLITUQ+hNCiCAJATBFh5mAjPFNG3jJZ3joo+RUELsl1L
wT4GQwIPDwSrQ/dqQIAgaInBPz8OKpw1Y6FCQIBGsEChgmLFFRZLDNw4MUkIADvTAAEAAgADAWUB
aQFy1QAFAAYABwAIAAkBZgALAAwBZwFoXxEBemh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2lm
cmFtZTM/cGdJQUFEb0dCZ0FEb0JNQUphUUZBQUlBQUFBQUFQOEFBQUFDRUFJQUF3S2ZTUWdBeEc4
SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUGcuQUFBQUFBQUEtRDhB
QUFBQUFBRDRQd0FBQUFBQUFQZy5BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTFprc0VJU3FZUVZkVmtiS2MxUDZ3MTZZVzBRVGJy
V2VrOWZqZndBQUFBQT0sLGh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwOC8xMS8xMC9oZWFsdGgv
MTBoZWFydC5odG1sP19yPTImcGFydG5lcj1yc3NueXQmZW1jPXJzcyZvcmVmPXNsb2dpbiZvcmVm
PXNsb2dpbk8RBFA8aHRtbD48Ym9keSBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAlOyBtYXJnaW4tcmln
aHQ6IDAlOyBtYXJnaW4tdG9wOiAwJTsgbWFyZ2luLWJvdHRvbTogMCUiIG1hcmdpbndpZHRoPSIw
IiBtYXJnaW5oZWlnaHQ9IjAiPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5pZiAod2lu
ZG93LnJtX2NyZXhfZGF0YSkge3JtX2NyZXhfZGF0YS5wdXNoKDEyODYxNDcpO30KPC9zY3JpcHQ+
PCEtLSAtLS0tLS0tLS0tLS0tLSBBZHZlcnRpc2luZy5jb20gLS0tLS0tIE5ldyBZb3JrIFRpbWVz
IERpZ2l0YWwgLSBOWSBUaW1lcyAzMDB4MjUwIFRpZXIgMi03MzgxMTggLS0tLS0tLS0tLS0tIC0t
Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBBQ0VfQVIgPSB7U2l0ZTogJzcz
ODExOCcsIFNpemU6ICczMDAyNTAnfTsKPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Imh0dHA6Ly91YWMuYWR2ZXJ0aXNpbmcuY29tL3dyYXBwZXIvYWNlVUFDLmpz
Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vcjEu
YmV0YS5hY2UuYWR2ZXJ0aXNpbmcuY29tL3NpdGU9NzM4MTE4L3NpemU9MzAwMjUwL3U9MS9ibnVt
PTQ1MTkzNTE4L2hyPTE1L2hsPTEvYz0wL3NjcmVzPTUvc3doPTE2ODB4MTA1MC90aWxlPTEvZj0x
L2FzPTMvcj0xL29wdG49MS9mdj05L2RyZWY9dW5kZWZpbmVkIj48L3NjcmlwdD48IS0tIEJFR0lO
IFNUQU5EQVJEIFRBRyAtIDMwMCB4IDI1MCAtIEFkLmNvbSBEZWZhdWx0czogVGllciAyX0RlZmF1
bHQgLSBETyBOT1QgTU9ESUZZIC0tPgo8aWZyYW1lIGZyYW1lYm9yZGVyPSIwIiBtYXJnaW53aWR0
aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIiBzY3JvbGxpbmc9Ik5PIiB3aWR0aD0iMzAwIiBoZWlnaHQ9
IjI1MCIgc3JjPSJodHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9zdD9hZF90eXBlPWlmcmFtZSZh
bXA7YWRfc2l6ZT0zMDB4MjUwJmFtcDtzZWN0aW9uPTQxNTYyMyI+PC9pZnJhbWU+CjwhLS0gRU5E
IFRBRyAtLT4KCgoKPCEtLSAtLS0tLS0tLS0tIENvcHlyaWdodCAyMDA3LCBBZHZlcnRpc2luZy5j
b20gLS0tLS0tLS0tLSAtLT4KPC9ib2R5PjwvaHRtbD5fECA8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMi0tPi0tPqIBagFu1AAFABEABwAIAWsBbAAUAW1fECxodHRwOi8vdWFjLmFkdmVydGlzaW5n
LmNvbS93cmFwcGVyL2FjZVVBQy5qc08RBJdicGxpc3QwMNQBAgMEBQYJClgkdmVyc2lvblQkdG9w
WSRhcmNoaXZlclgkb2JqZWN0cxIAAYag0QcIXxATV2ViUmVzb3VyY2VSZXNwb25zZYABXxAPTlNL
ZXllZEFyY2hpdmVyrxAiCwwmLC0zHjQ1UVJTVFVWV1hZWltcXV5fYGFiY2RlZmdrbFUkbnVsbN0N
Dg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIk
N1IkMlIkOVIkMFIkMYAhgAKAIBAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5y
ZWxhdGl2ZYAEgACAA18QLGh0dHA6Ly91YWMuYWR2ZXJ0aXNpbmcuY29tL3dyYXBwZXIvYWNlVUFD
Lmpz0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VSTFhOU09iamVjdCNBrZH7CCyLRBDI
0w02Nzg5RVdOUy5rZXlzWk5TLm9iamVjdHOAH6s6Ozw9Pj9AQUJDRIAJgAqAC4AMgA2ADoAPgBCA
EYASgBOrRkdISUpLTE1OT1CAFIAVgBaAF4AYgBmAGoAbgByAHYAeU1AzcF1DYWNoZS1Db250cm9s
V0V4cGlyZXNdQWNjZXB0LVJhbmdlc18QEENvbnRlbnQtRW5jb2RpbmdWU2VydmVyXENvbnRlbnQt
VHlwZVREYXRlXkNvbnRlbnQtTGVuZ3RoWkNvbm5lY3Rpb25UVmFyeV8QQUNQPSJOT0kgRFNQIENP
UiBMQVcgQ1VSYSBERVZhIFRBSWEgUFNBYSBQU0RhIE9VUiBCVVMgVU5JIENPTSBOQVYiXG1heC1h
Z2U9MzYwMF8QHU1vbiwgMTAgTm92IDIwMDggMjM6NTY6NTUgR01UVWJ5dGVzVGd6aXBfEBlBcGFj
aGUvMi4yLjQgKFVuaXgpIERBVi8yXxAYYXBwbGljYXRpb24veC1qYXZhc2NyaXB0XxAdTW9uLCAx
MCBOb3YgMjAwOCAyMzozODo0NCBHTVRUNDU3NFprZWVwLWFsaXZlXxAPQWNjZXB0LUVuY29kaW5n
0i4vaGmjaWoyXxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnkRMZbSLi9tbqNubzJf
EBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACJ
AI8AqgCxALQAtwC7AL8AwgDFAMgAywDOANEA1ADXANkA2wDdAN8A4QDjAOUA5wDpAOsA7QDvAPYA
/gEKAQwBDgEQAT8BRAFNAVgBWwFhAWoBcwF1AXwBhAGPAZEBnQGfAaEBowGlAacBqQGrAa0BrwGx
AbMBvwHBAcMBxQHHAckBywHNAc8B0QHTAdUB2QHnAe8B/QIQAhcCJAIpAjgCQwJIAowCmQK5Ar8C
xALgAvsDGwMgAysDPQNCA0YDXANpA2wDcQN1A4kAAAAAAAACAQAAAAAAAABwAAAAAAAAAAAAAAAA
AAADl08RMZZ2YXIgQUNFM1BvcEhvc3Q9J2h0dHA6Ly9wLmFjZS5hZHZlcnRpc2luZy5jb20nDQp2
YXIgQUNFM0hvc3QxPSdodHRwOi8vY2FuZGkuYmV0YS5hZHZlcnRpc2luZy5jb20nDQp2YXIgQUNF
M0hvc3QyPSdodHRwOi8vbW9uZXltYWtlci5iZXRhLmFkdmVydGlzaW5nLmNvbScNCnZhciBBQ0Uz
SG9zdDFWYXI9J2FzPTAnDQp2YXIgQUNFM0hvc3QyVmFyPSdhcz0xJw0KdmFyIEFDRTNOZXdIb3N0
PW5ldyBBcnJheSgpDQpBQ0UzTmV3SG9zdFsnNzI3NzMyJ109NTANCkFDRTNOZXdIb3N0Wyc3NDE0
OTUnXT01MA0KQUNFM05ld0hvc3RbJzc0MzE5OCddPTUwDQpBQ0UzTmV3SG9zdFsnNzIxMTM0J109
NTANCkFDRTNOZXdIb3N0Wyc3MzgzMTEnXT01MA0KQUNFM05ld0hvc3RbJzczNjAzMCddPTUwDQpB
Q0UzTmV3SG9zdFsnNzM2NzI4J109NTANCkFDRTNOZXdIb3N0Wyc3NDQwNDknXT01MA0KQUNFM05l
d0hvc3RbJzc0NDE0MCddPTUwDQpBQ0UzTmV3SG9zdFsnNzQyNTMxJ109NTANCkFDRTNOZXdIb3N0
Wyc3MTAxODYnXT01MA0KLy9BQ0UzTmV3SG9zdFsnNzI4MzQwJ109NTANCkFDRTNOZXdIb3N0Wyc3
NDI3MjAnXT01MA0KQUNFM05ld0hvc3RbJzc0MTM3MyddPTUwDQpBQ0UzTmV3SG9zdFsnNzI2NzQ2
J109NTANCkFDRTNOZXdIb3N0Wyc3MTE1MzgnXT01MA0KQUNFM05ld0hvc3RbJzczMDc1OSddPTUw
DQpBQ0UzTmV3SG9zdFsnNzEwMDc2J109NTANCkFDRTNOZXdIb3N0Wyc3MDY3MjknXT01MA0KQUNF
M05ld0hvc3RbJzcyNzQ0NCddPTUwDQpBQ0UzTmV3SG9zdFsnNzQyNTI5J109NTANCkFDRTNOZXdI
b3N0Wyc3NDMxNjcnXT01MA0KQUNFM05ld0hvc3RbJzcwMzc5OCddPTUwDQovL0FDRTNOZXdIb3N0
Wyc3MjgyNzgnXT01MA0KQUNFM05ld0hvc3RbJzczODM0NCddPTUwDQpBQ0UzTmV3SG9zdFsnNzQz
MjUyJ109NTANCkFDRTNOZXdIb3N0Wyc3MjM4OTknXT01MA0KQUNFM05ld0hvc3RbJzczNDg0Nydd
PTUwDQpBQ0UzTmV3SG9zdFsnNzQzODQzJ109NTANCkFDRTNOZXdIb3N0Wyc3MzY4MDgnXT01MA0K
QUNFM05ld0hvc3RbJzczNDEwMCddPTUwDQpBQ0UzTmV3SG9zdFsnNzM1MTE1J109NTANCkFDRTNO
ZXdIb3N0Wyc3NDYxNjQnXT01MA0KQUNFM05ld0hvc3RbJzc0MTU4MyddPTUwDQpBQ0UzTmV3SG9z
dFsnNzM0ODY1J109NTANCkFDRTNOZXdIb3N0Wyc2OTU4NjQnXT01MA0KQUNFM05ld0hvc3RbJzcw
MTAxMiddPTUwDQpBQ0UzTmV3SG9zdFsnNzA5ODU2J109NTANCkFDRTNOZXdIb3N0Wyc3MjIxNzMn
XT01MA0KQUNFM05ld0hvc3RbJzcyMjE3NCddPTUwDQpBQ0UzTmV3SG9zdFsnNzQ3Mjk3J109NTAN
CkFDRTNOZXdIb3N0Wyc3MjE0OTAnXT01MA0KQUNFM05ld0hvc3RbJzc0MjQ2OCddPTUwDQpBQ0Uz
TmV3SG9zdFsnNzQzMDEzJ109NTANCkFDRTNOZXdIb3N0Wyc2OTk4NzUnXT01MA0KQUNFM05ld0hv
c3RbJzc0NDA5NyddPTUwDQpBQ0UzTmV3SG9zdFsnNzI1NjU4J109NTANCkFDRTNOZXdIb3N0Wyc3
NDAwMjQnXT01MA0KQUNFM05ld0hvc3RbJzc0NTMzNyddPTUwDQpBQ0UzTmV3SG9zdFsnNzM1OTE2
J109NTANCkFDRTNOZXdIb3N0Wyc3MzQ2ODknXT01MA0KQUNFM05ld0hvc3RbJzY5OTg3MiddPTUw
DQovL0FDRTNOZXdIb3N0Wyc3MjE1NjknXT01MA0KLy9BQ0UzTmV3SG9zdFsnNzM4MjIyJ109NTAN
Ci8vQUNFM05ld0hvc3RbJzcxNjQ1MCddPTUwDQp2YXIgQUNFM0dsb2JhbEhvc3RQZXJjZW50PTEw
MA0KdmFyIEFDRTNHbG9iYWxIb3N0PSdodHRwOi8vcjEuYmV0YS5hY2UuYWR2ZXJ0aXNpbmcuY29t
Jw0KdmFyIEFDRTNHbG9iYWxIb3N0MVZhcj0nYXM9MycNCnZhciBBQ0UzQVY9cGFyc2VJbnQobmF2
aWdhdG9yLmFwcFZlcnNpb24pLEFDRTNJRT0obmF2aWdhdG9yLmFwcE5hbWU9PSJNaWNyb3NvZnQg
SW50ZXJuZXQgRXhwbG9yZXIiKQ0KdmFyIEFDRTNOUz0obmF2aWdhdG9yLmFwcE5hbWU9PSJOZXRz
Y2FwZSIpLEFDRTNGVj0iIixBQ0UzZHQ9bmV3IERhdGUoKSxBQ0UzRlZlcj0nMCcNCmlmICghd2lu
ZG93LkFDRTNDayl7QUNFM2R0LnNldFRpbWUoQUNFM2R0LmdldFRpbWUoKSsoMzYwMDAwMCkpDQpk
b2N1bWVudC5jb29raWU9ImFjZTM9MTsgZXhwaXJlcz0iK0FDRTNkdC50b0dNVFN0cmluZygpKyI7
IHBhdGg9LzsiDQp2YXIgQUNFM0NrPTANCmlmIChkb2N1bWVudC5jb29raWUuaW5kZXhPZignYWNl
MycpPj0wKXtBQ0UzQ2s9Mg0KZG9jdW1lbnQuY29va2llID0gImFjZTM9MTsgZXhwaXJlcz1UaHUs
IDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVDsgcGF0aD0vOyINCn1lbHNle2RvY3VtZW50LmNvb2tp
ZT0iYWNlMz0xOyBwYXRoPS87Ig0KaWYgKGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCdhY2UzJyk+
PTApe0FDRTNDaz0xDQpkb2N1bWVudC5jb29raWUgPSAiYWNlMz0xOyBleHBpcmVzPVRodSwgMDEt
SmFuLTE5NzAgMDA6MDA6MDEgR01UOyBwYXRoPS87In19DQppZiAoQUNFM0NrPjAmJkFDRTNOUylB
Q0UzQ2s9M30NCmZ1bmN0aW9uIEFDRTNDa1BsZygpew0KdmFyIGU9JzwvJyxpZT0wLGRjPWRvY3Vt
ZW50LGRsPWRjLmxheWVycyxkYT1kYy5hbGwsZGc9ZGMuZ2V0RWxlbWVudEJ5SWQsbj1uYXZpZ2F0
b3IsZGI9ZGMuYm9keQ0KdmFyIGNpZD0nY29tcG9uZW50aWQnLGJlaD0ndXJsKCNkZWZhdWx0I2Ns
aWVudENhcHMpJyxpZTU9ZGEmJmRnLGdvPShkYXx8ZGx8fChkZyYmIWRhKSksdWE9bi51c2VyQWdl
bnQNCmlmICh1YS5pbmRleE9mKCdNU0lFJykhPS0xJiZ1YS5pbmRleE9mKCdXaW4nKSE9LTEpe2ll
PTENCnZhciBkPWRvY3VtZW50LndyaXRlbG4NCmQoJzxzY3JpcHQgbGFuZ3VhZ2U9IlZCc2NyaXB0
Ij4nKQ0KZCgnRGltIGFkc1ZCLHBvJykNCmQoJ2Fkc1ZCPTAnKQ0KZCgnSWYgU2NyaXB0RW5naW5l
TWFqb3JWZXJzaW9uID49MiB0aGVuIGFkc1ZCPTEnKQ0KZCgnRnVuY3Rpb24gYWRzQVgoYVgpJykN
CmQoJ29uIGVycm9yIHJlc3VtZSBuZXh0JykNCmQoJ0lmIGFkc1ZCPTEgdGhlbicpDQpkKCdhZHNB
WD1GYWxzZScpDQpkKCdzZXQgcG89Q3JlYXRlT2JqZWN0KGFYKScpDQpkKCdhZHNBWD1Jc09iamVj
dChwbyknKQ0KZCgnSWYgKGVycikgdGhlbiBhZHNBWD1GYWxzZScpDQpkKCdFbHNlJykNCmQoJ2Fk
c0FYPUZhbHNlJykNCmQoJ0VuZCBJZicpDQpkKCdFbmQgRnVuY3Rpb24nKQ0KZChlKydzY3JpcHQ+
Jyl9DQp2YXIgaSx1PTAsZEY9JycsZlMscD1uLnBsdWdpbnMNCmlmIChpZSYmd2luZG93LmFkc1ZC
KXt1PTB9ZWxzZXt1PTF9DQppZiAocCl7dmFyIGw9cC5sZW5ndGgNCmlmIChsPjEpe3ZhciBtPW4u
bWltZVR5cGVzLGZsPW1bJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJ10NCmlmIChtJiYo
KGZsJiZmbC5lbmFibGVkUGx1Z2luJiYoZmwuc3VmZml4ZXMuaW5kZXhPZignc3dmJykhPS0xKSkp
KXsNCnZhciBkcyxmPSJGbGFzaCAiLG5tDQppZiAoQUNFM05TKXsNCmZvciAodmFyIGk9MDtpPGw7
aSsrKXsNCmRzPXBbaV0uZGVzY3JpcHRpb24NCmZTPWRzLmluZGV4T2YoZikNCmlmIChmUyE9LTEp
ew0KaWYgKGRzLnN1YnN0cmluZyhmUys2LGZTKzcpPj02KXtkRj0nRicNCkFDRTNGVmVyPWRzLnN1
YnN0cmluZyhmUys2LGZTKzcpfX19fQ0KaWYgKGZsPT1udWxsKWRGPScnDQp9fWVsc2UgaWYoaWU9
PTEmJiF1KXtpZiAoIWllNXx8dWEuaW5kZXhPZignTlQnKSE9LTEpe2ZTPSJTaG9ja3dhdmVGbGFz
aC5TaG9ja3dhdmVGbGFzaC4iDQpkRj0oYWRzQVgoZlMrIjkiKT8nRic6JycpDQppZiAoZEYpQUNF
M0ZWZXI9JzknDQppZiAoIWRGKXtkRj0oYWRzQVgoZlMrIjgiKT8nRic6JycpDQppZiAoZEYpQUNF
M0ZWZXI9JzgnfQ0KaWYgKCFkRil7ZEY9KGFkc0FYKGZTKyI3Iik/J0YnOicnKQ0KaWYgKGRGKUFD
RTNGVmVyPSc3J30NCmlmICghZEYpe2RGPShhZHNBWChmUysiNiIpPydGJzonJykNCmlmIChkRilB
Q0UzRlZlcj0nNid9fX1lbHNle2RGPScnfQ0KfWVsc2V7ZEY9Jyd9DQppZiAoZ28pe2lmIChuLnBs
YXRmb3JtPT0nV2luMzInKXsNCmlmIChpZTUmJihkYiE9bnVsbCkpe2RiLnN0eWxlLmJlaGF2aW9y
PWJlaA0KdmFyIGZDPSd7RDI3Q0RCNkUtQUU2RC0xMUNGLTk2QjgtNDQ0NTUzNTQwMDAwfScsZlY9
ZGIuZ2V0Q29tcG9uZW50VmVyc2lvbihmQyxjaWQpDQppZiAoZlYuY2hhckF0KDApPj02KXtkRj0n
RicNCkFDRTNGVmVyPWZWLmNoYXJBdCgwKX19fX0NCmlmIChkRj09J0YnKUFDRTNGVj0xfQ0KdmFy
IGFkc0NvbVBvcFZhcj0nJyxhZENvbVBvcEZvPScxJyxhZENvbURlbGF5VmFsdWU9JycNCmZ1bmN0
aW9uIEFDRTNfQWRSZXF1ZXN0KG9iKXsNCiAgdmFyIG9iaj1uZXcgT2JqZWN0KCkNCiAgZm9yICh2
YXIgcCBpbiBvYil7DQogICAgdmFyIGxjbj1wLnRvTG93ZXJDYXNlKCkNCiAgICBpZiAobGNuIT0n
Y2xhc3MnKW9ialtsY25dPW9iW3BdDQogICAgZWxzZSBvYmpbJ0NsYXNzJ109b2JbcF0NCiAgfQ0K
ICB2YXIgbm1WYWw9ew0KICBtZWRpYTogJ21udW0nLA0KICBsZWFkYmFjazogJ2JldHInLA0KICBj
b250ZXh0OiAnY3R4dCcsDQogIGlwOiAnZG1pcCcsDQogIG1pZDogJ3hzbWVtaWQnLA0KICB6OiAn
enBjZCcsDQogIG1uOiAnbW4nLA0KICB6aWQ6ICd6aWQnDQogIH0NCiAgdmFyIHVyPScnLGlmVj0w
LGRyLGRyMSxodD0nJyxjdCxkdw0KICB0cnkgew0KICAgIHVyKz1lc2NhcGUodG9wLmxvY2F0aW9u
LmhyZWYpDQogICAgaWYgKHRvcC5sb2NhdGlvbi5ocmVmIT1sb2NhdGlvbi5ocmVmKWlmVj0xDQog
IH0NCiAgY2F0Y2ggKGUpe3VyKz1lc2NhcGUoZG9jdW1lbnQucmVmZXJyZXIpO2lmVj0yfQ0KDQog
IGlmICh3aW5kb3cuQUNFX0RSRUYpZHIxPXdpbmRvdy5BQ0VfRFJFRg0KICBlbHNlIGRyMT11cg0K
DQogIGRyPScvZHJlZj0nK2VzY2FwZShkcjEucmVwbGFjZSgvXC8vZywnJTJGJykpDQogIGlmIChv
Ymouc2l0ZSlzaXRlPW9iai5zaXRlDQogIGVsc2Ugc2l0ZT0nMTAwJw0KDQogIGlmICh3aW5kb3cu
QUNFX0tleVBhcm1zKXt3aW5kb3cuQUNFX0tleVBhcm09QUNFX0tleVBhcm1zW3NpdGVdfQ0KICBp
ZiAod2luZG93LkFDRV9LZXlQYXJtKXsNCiAgICBmb3IgKHZhciBpPTA7aTxBQ0VfS2V5UGFybS5s
ZW5ndGg7aT1pKzIpew0KICAgICAgaWYgKHVyLnRvVXBwZXJDYXNlKCkubWF0Y2goQUNFX0tleVBh
cm1baV0udG9VcHBlckNhc2UoKSkhPW51bGwpew0KICAgICAgICBzaXRlPUFDRV9LZXlQYXJtW2kr
MV0NCiAgICAgICAgYnJlYWsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBpZiAod2luZG93LkFD
RV9GcmVxU2l0ZU1hcHMpe3dpbmRvdy5BQ0VfRnJlcVNpdGVNYXA9QUNFX0ZyZXFTaXRlTWFwc1tz
aXRlXX0NCg0KICBpZiAod2luZG93LkFDRV9GcmVxU2l0ZU1hcCYmQUNFM0NrIT0wKXsNCiAgICB2
YXIgY249J0FkQ29tJytvYmouc2l0ZSxuPUFDRTNnZXRDayhjbiksZmQ9MA0KICAgIGlmICghbnx8
bj09Jycpew0KICAgICAgdmFyIG51PTANCiAgICAgIHZhciBFRD1uZXcgRGF0ZSgpDQogICAgICBF
RC5zZXRUaW1lKEVELmdldFRpbWUoKSsoMjQqMzYwMDAwMCkpDQogICAgICB2YXIgRURzPUVELnRv
R01UU3RyaW5nKCkNCiAgICB9DQogICAgZWxzZQ0KICAgICAgdmFyIG4xPW4uc3BsaXQoJ3wnKSxF
RHM9bjFbMV0sbnU9cGFyc2VJbnQobjFbMF0pDQoNCiAgICBmb3IgKHZhciBpPTA7aTxBQ0VfRnJl
cVNpdGVNYXAubGVuZ3RoO2k9aSsyKXsNCiAgICAgIGlmIChudSA8IHBhcnNlSW50KEFDRV9GcmVx
U2l0ZU1hcFtpXSkpew0KICAgICAgICBpZiAoQUNFX0ZyZXFTaXRlTWFwW2krMV0pc2l0ZT1BQ0Vf
RnJlcVNpdGVNYXBbaSsxXQ0KICAgICAgICBBQ0Uzc2V0Q2soY24sKHBhcnNlRmxvYXQobnUpKzEp
KyJ8IitFRHMsRURzKQ0KICAgICAgICBmZD0xDQogICAgICAgIGJyZWFrDQogICAgICB9DQogICAg
fQ0KDQogICAgaWYgKCFmZClzaXRlPW9iai5zaXRlDQogIH0NCg0KICB2YXIgb3Q9IiIsb3A9KG5h
dmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiT3BlcmEiKSE9LTEpLG9sZD0xLGFkdj0nLmFkdmVy
dGlzaW5nLmNvbScNCiAgdmFyIGFsdD0nQ2xpY2sgdG8gbGVhcm4gbW9yZS4uLicsZ2w9JycsYm51
bSxzenM9JycscGFybT0nJyxzZT0tMQ0KICB0cnkge3NlPWxvY2F0aW9uLmhyZWYuaW5kZXhPZign
aHR0cHM6Ly8nKX0NCiAgY2F0Y2ggKGUpe30NCg0KICBpZiAoKChBQ0UzTlN8fEFDRTNJRSkmJkFD
RTNBVj49NCkmJiFvcCYmIShBQ0UzTlMmJkFDRTNBVj09NCkpe29sZD0wfQ0KDQogIGZvciAodmFy
IG4gaW4gbm1WYWwpew0KICAgIGlmIChvYmpbbl0mJih0eXBlb2Yob2JqW25dKSE9J2Z1bmN0aW9u
Jykpew0KICAgICAgaWYgKG5tVmFsW25dPT0ibW4iKW90Kz0iL3hzeGRhdGE9MToiK29ialtuXQ0K
ICAgICAgZWxzZSBvdCs9Ii8iK25tVmFsW25dKyI9IitvYmpbbl0NCiAgICB9DQogIH0NCg0KICBp
ZiAob2JqLnVkKXsNCiAgICAgICAgdmFyIHppcD1vYmoudWQuc3BsaXQoJyYnKSx6aXBWDQogICAg
ICAgIGZvciAodmFyIGk9MDtpPHppcC5sZW5ndGg7aSsrKXsNCiAgICAgICAgICBpZiAoemlwW2ld
LnRvU3RyaW5nKCkuaW5kZXhPZignenA9JykhPS0xKXsNCiAgICAgICAgICAgIHppcFY9emlwW2ld
LnNwbGl0KCc9JykNCiAgICAgICAgICAgIHppcFY9emlwVlsxXQ0KICAgICAgICAgICAgb3QrPSIv
enBjZD0iK3ppcFYNCiAgICAgICAgICAgIGJyZWFrDQogICAgICAgICAgfQ0KICAgICAgICB9DQog
IH0NCg0KICBpZiAod2luZG93LkFDRV9MT0dHSU5HPT0wKW90Kz0iL2xvZ3M9MCINCiAgaWYgKG9i
ai5hbHR0ZXh0KWFsdD1vYmouYWx0dGV4dA0KDQogIGlmICh3aW5kb3cuQUNFX0hPU1QmJnNlPDAp
e2h0PXdpbmRvdy5BQ0VfSE9TVDtnbD0xfQ0KICBpZiAod2luZG93LkFDRV9TSE9TVCYmc2U+LTEp
e2h0PXdpbmRvdy5BQ0VfU0hPU1Q7Z2w9MX0NCiAgaWYgKHNpdGU9PSc3MTI0NDEnKXtodD0naHR0
cDovL2Fncy5iZXRhJythZHY7Z2w9MTtvYmouY2FsbHR5cGU9IklGUkFNRSJ9DQoNCiAgdmFyIHB0
PW9iai5wb3B0eXBlLHB1PW9iai5wb3BvbnVubG9hZA0KDQogIGlmIChnbCE9MSl7DQogICAgaWYg
KHB0fHxwdSl7aHQ9QUNFM1BvcEhvc3Q7Z2w9MX0NCiAgICBpZiAoc2U+LTEpew0KICAgICAgaWYg
KG9iai5DbGFzcz09MClodD0iaHR0cHM6Ly9zZWN1cmUuYWNlMCIrYWR2DQogICAgICBlbHNlIGh0
PSJodHRwczovL3NlcnZlZGJ5IithZHYNCiAgICAgIGdsPTENCiAgICB9DQogICAgaWYgKG9iai5o
b3N0KXt2YXIgdj1vYmouaG9zdDtodD0odi5pbmRleE9mKCdodHRwJyk9PS0xPyJodHRwOi8vIit2
OnYpO2dsPTF9DQogIH0NCg0KICBpZiAoZ2whPTEpew0KICAgIGlmIChvYmouQ2xhc3M9PTApew0K
ICAgICAgICAgICAgIGh0PSJodHRwOi8vY3MuYWNlIithZHYNCiAgICAgICAgICAgICBvdCs9Ii9h
Z3Y9MSINCiAgICAgICAgICAgICBnbD0xDQogICAgfQ0KICAgIGVsc2UgaWYgKG9iai5DbGFzcz09
Mil7DQogICAgICAgICAgICAgIGh0PSJodHRwOi8vY3RlLmFjZS5iZXRhIithZHYNCiAgICAgICAg
ICAgICAgb3QrPSIvY3RlPTEiDQogICAgICAgICAgICAgIGdsPTENCiAgICB9DQogICAgZWxzZSBp
ZiAob2JqLkNsYXNzPT0zKXsNCiAgICAgICAgICAgICAgaHQ9Imh0dHA6Ly9jdGUuYWNlIithZHYN
CiAgICAgICAgICAgICAgb3QrPSIvY3RlPTEiDQogICAgICAgICAgICAgIGdsPTENCiAgICB9DQog
IH0NCg0KICBpZiAoZ2whPTEpew0KICAgICAgdmFyIHJhbmQ9TWF0aC5mbG9vcihNYXRoLnJhbmRv
bSgpKjEwMCkrMQ0KDQogICAgICBpZiAod2luZG93LkFDRTNOZXdIb3N0JiZBQ0UzTmV3SG9zdFtz
aXRlXSE9bnVsbCl7DQogICAgICAgIGlmIChyYW5kIDw9IEFDRTNOZXdIb3N0W3NpdGVdKXsNCiAg
ICAgICAgICBpZiAod2luZG93LkFDRTNIb3N0MVZhcilwYXJtPScvJytBQ0UzSG9zdDFWYXINCiAg
ICAgICAgICBodD1BQ0UzSG9zdDENCiAgICAgICAgfQ0KICAgICAgICBlbHNlew0KICAgICAgICAg
ICBpZiAod2luZG93LkFDRTNIb3N0MlZhcilwYXJtPScvJytBQ0UzSG9zdDJWYXINCiAgICAgICAg
ICAgaHQ9QUNFM0hvc3QyDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKHdpbmRv
dy5BQ0UzR2xvYmFsSG9zdCl7DQogICAgICAgIGlmIChyYW5kIDw9IEFDRTNHbG9iYWxIb3N0UGVy
Y2VudCl7DQogICAgICAgICAgIGlmICh3aW5kb3cuQUNFM0dsb2JhbEhvc3QxVmFyKXBhcm09Jy8n
K0FDRTNHbG9iYWxIb3N0MVZhcg0KICAgICAgICAgICBodD1BQ0UzR2xvYmFsSG9zdA0KICAgICAg
ICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICBodD0iaHR0cDovL3NlcnZlZGJ5IithZHYN
CiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWxzZSB7DQogICAgICAgICBpZiAob2JqLnJlZ2lv
bj09MilodD0iaHR0cDovL3NlcnZlZGJ5MiIrYWR2DQogICAgICAgICBlbHNlIGlmIChvYmoucmVn
aW9uPT0zKWh0PSJodHRwOi8vc2VydmVkYnkzIithZHYNCiAgICAgICAgIGVsc2UgaHQ9Imh0dHA6
Ly9zZXJ2ZWRieSIrYWR2DQogICAgICB9DQogfQ0KaWYgKG9iai5ibnVtKWJudW09b2JqLmJudW0N
CmVsc2UgYm51bT1uZXcgTnVtYmVyKE1hdGguZmxvb3IoOTk5OTk5OTkqTWF0aC5yYW5kb20oKSkr
MSkNCmlmICghb2JqLmNhbGx0eXBlKWN0PSdKJw0KZWxzZSBjdD1vYmouY2FsbHR5cGUudG9TdHJp
bmcoKS50b1VwcGVyQ2FzZSgpDQppZiAob2JqLnJlZ2lvbj09JzMnJiZpZlY9PTAmJiFvYmouY2Fs
bHR5cGUmJkFDRTNJRSljdD0nSUYnDQppZiAoY3Q9PSdJRlJBTUUnfHxjdD09J0lGJylpZlY9Mg0K
aWYgKG9iai5zaXplKXZhciBzej1vYmouc2l6ZSxzdHI9c3oudG9TdHJpbmcoKSx3PXN0ci5zdWJz
dHIoMCwzKSxoPXN0ci5zdWJzdHIoMyw2KQ0KZWxzZSBpZiAob2JqLndpZHRoJiZvYmouaGVpZ2h0
KXt2YXIgdz1vYmoud2lkdGgudG9TdHJpbmcoKSxoPW9iai5oZWlnaHQudG9TdHJpbmcoKSxzeg0K
aWYgKHcubGVuZ3RoPT0yKXc9IjAiK3cNCmlmIChoLmxlbmd0aD09MiloPSIwIitoDQppZiAody5s
ZW5ndGg9PTEpdz0iMDAiK3cNCmlmIChoLmxlbmd0aD09MSloPSIwMCIraA0Kc3o9dytofQ0KZWxz
ZSB7dmFyIHN6PSI0NjgwNjAiLHc9NDY4LGg9NjANCm9iai5tZWRpYT0nMzE2NTc0J30NCmlmICgh
b2JqLm1lZGlhKXN6cz0nL3NpemU9Jytzeg0KaWYgKG9iai5hZHR5cGUpe3ZhciBhdD1vYmouYWR0
eXBlLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKQ0KaWYgKChhdD09IkkiKXx8KG9iai5hdD09IklN
QUdFIikpe290Kz0iL3JpY2g9MCJ9fQ0KdmFyIGhsPWhpc3RvcnkubGVuZ3RoDQppZiAoaGw+NTAp
aGw9NTANCnZhciBzcj0nJyxzcjE9JycNCmlmIChzY3JlZW4ud2lkdGgpe3NyPScvc2NyZXM9Jw0K
dmFyIHN3PXNjcmVlbi53aWR0aCxzaD1zY3JlZW4uaGVpZ2h0DQppZiAoKHN3PT02NDApJiYoc2g9
PTQ4MCkpc3IrPScyJw0KZWxzZSBpZiAoKHN3PT04MDApJiYoc2g9PTYwMCkpc3IrPSczJw0KZWxz
ZSBpZiAoKHN3PT0nMTAyNCcpJiYoc2g9PSc3NjgnKSlzcis9JzQnDQplbHNlIGlmICgoc3c+MTAy
NCkmJihzaD43NjgpKXNyKz0nNScNCmVsc2Ugc3IrPScxJw0Kc3IxPScvc3doPScrc2NyZWVuLndp
ZHRoKyJ4IitzY3JlZW4uaGVpZ2h0fQ0KZWxzZSBzcj0nL3NjcmVzPTEnDQp2YXIgcE5vPScxJyxw
Zj1vYmoucG9wZnJlcQ0KaWYgKHBmKXt2YXIgaT1wZi5pbmRleE9mKCcsJyksbj1wZi5zdWJzdHJp
bmcoMCxpKSxocj1wZi5zdWJzdHJpbmcoaSsxLHBmLmxlbmd0aCkNCm49cGFyc2VJbnQobikNCnZh
ciBjbj0iQWRDb21Qb3AiK29iai5zaXRlLGNrPUFDRTNnZXRDayhjbikNCmlmIChocj09MCl7aWYg
KCFja3x8Y2s9PScnKWNrPTANCmlmIChjazxuKUFDRTNzZXRDayhjbixwYXJzZUZsb2F0KGNrKSsx
KQ0KZWxzZSBwTm89Jyd9DQplbHNle2lmICghY2t8fGNrPT0nJyl7DQp2YXIgRUQ9bmV3IERhdGUo
KQ0KRUQuc2V0VGltZShFRC5nZXRUaW1lKCkrKGhyKjM2MDAwMDApKQ0KQUNFM3NldENrKGNuLCIx
fCIrRUQudG9HTVRTdHJpbmcoKSxFRC50b0dNVFN0cmluZygpKX0NCmVsc2V7dmFyIGNrMT1jay5z
cGxpdCgnfCcpDQppZiAoY2sxWzBdPG4pQUNFM3NldENrKGNuLChwYXJzZUZsb2F0KGNrMVswXSkr
MSkrInwiK2NrMVsxXSxjazFbMV0pDQplbHNlIHBObz0nJ319fQ0KaWYgKHdpbmRvdy5BQ0UzVGls
ZSlBQ0UzVGlsZSsrDQplbHNlIEFDRTNUaWxlPTENCnZhciBoZD1uZXcgRGF0ZSgpDQp2YXIgaHI9
aGQuZ2V0SG91cnMoKSxleD1vYmouZXh0cmEsb3BWPTEsYnU9JycNCm90Kz0iL2hyPSIraHIrIi9o
bD0iK2hsKyIvYz0iK0FDRTNDaytzcitzcjErJy90aWxlPScrQUNFM1RpbGUrJy9mPScraWZWK3Bh
cm0NCmlmIChvYmoucmVnaW9uPT0yKW90Kz0iL3I9MiINCmVsc2UgaWYgKG9iai5yZWdpb249PTMp
b3QrPSIvcj0zIg0KZWxzZSBvdCs9Ii9yPTEiDQppZiAoZXgpKGV4LmNoYXJBdCgwKT09Jy8nKT9v
dCs9ZXg6b3QrPSIvIitleA0KaWYgKG9iai5kb250b3BlbndpbmRvdz09J3RydWUnKW9wVj0wDQpp
ZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdBT0wnKSE9LTEpb3QrPScvYT0xJw0KaWYg
KG9iai5pc2FvbD09J3RydWUnKXtvdCs9Jy9vcHRuPScrKG9wVisxNil9DQplbHNlIG90Kz0nL29w
dG49JytvcFYNCmlmIChwdClwdD1wdC50b1VwcGVyQ2FzZSgpDQppZiAocHQ9PSJQT1BPVkVSIilh
ZENvbVBvcEZvPScwJw0KaWYgKG9iai5idXJsPT0ndHJ1ZScpYnU9Ii9idXJsIg0KaWYgKHB0fHxw
dSl7DQogdmFyIHM9aHQNCiBpZiAocHQhPSJQT1BIVE1MIilzKz0iL3BvcCINCiBzKz0iL3NpdGU9
IitzaXRlDQogaWYgKG9iai5zaXplfHwob2JqLndpZHRoJiZvYmouaGVpZ2h0KSlzKz1zenMNCiBz
Kz0iL3U9MS9ibnVtPSIrYm51bSsiL3RhZ3M9NDIiK290DQp9DQplbHNlIHZhciBzPWh0K2J1KyIv
c2l0ZT0iK3NpdGUrc3pzKyIvdT0xL2JudW09IitibnVtK290DQppZiAoIW9sZCYmY3QhPSdJTUFH
RScmJmN0IT0nSScpew0KIGlmICghQUNFM0ZWKUFDRTNDa1BsZygpDQogcys9Ii9mdj0iK0FDRTNG
VmVyDQogaWYgKCgoaHQuaW5kZXhPZignaHR0cHM6Ly8nKT4tMSkpJiYocy5pbmRleE9mKCdyaWNo
PTAnKT09LTEpKXMrPSIvcmljaD0wIg0KIGlmIChjdCE9J0lGUkFNRScmJmN0IT0nSUYnKWR3PSI8
U0NSSVBUIFRZUEU9J3RleHQvamF2YXNjcmlwdCcgU1JDPSciK3MrZHIrIic+PC9TQ1JJUFQ+Ig0K
ZWxzZSBkdz0iPElGUkFNRSBTUkM9JyIrcysiL3RhZ3M9MSIrZHIrIicgV0lEVEg9Iit3KyIgSEVJ
R0hUPSIraCsiIFNDUk9MTElORz1OTyBGUkFNRUJPUkRFUj0wIE1BUkdJTkhFSUdIVD0wIE1BUkdJ
TldJRFRIPTA+PC9JRlJBTUU+In0NCmVsc2Uge3ZhciBzMT1zKyIvYmlucz0xIg0KaWYgKHMuaW5k
ZXhPZigncmljaD0wJyk9PS0xKXMxKz0iL3JpY2g9MCINCmR3PSI8QSBIUkVGPSciK2h0KyIvY2xp
Y2svc2l0ZT0iK3NpdGUrIi9ibnVtPSIrYm51bSArIicgVEFSR0VUPSdfYmxhbmsnPjxJTUcgU1JD
PSciK3MxK2RyKyInIFdJRFRIPSIrdysiIEhFSUdIVD0iK2grIiBCT1JERVI9MCBBTFQ9JyIrYWx0
KyInPjwvQT4ifQ0KaWYgKChwdHx8cHUpJiYob2xkfHxzZT4tMSkpcE5vPTANCmlmIChwdCYmIShw
dD09J1BPUE9WRVInfHxwdD09J1BPUFVOREVSJ3x8cHQ9PSdQT1BIVE1MJykpcE5vPTANCmlmIChw
Tm8pew0KaWYgKHB1KXsNCmFkc0NvbVBvcFZhcj0xDQp9DQppZiAob2JqLnBvcGRlbGF5KWFkQ29t
RGVsYXlWYWx1ZT1vYmoucG9wZGVsYXkNCmRvY3VtZW50LndyaXRlKGR3KX0NCndpbmRvdy5BQ0Vf
S2V5UGFybT0nJw0Kd2luZG93LkFDRV9LZXlQYXJtcz0nJw0Kd2luZG93LkFDRV9GcmVxU2l0ZU1h
cD0nJw0KQUNFX0FSPScnfQ0KZnVuY3Rpb24gQUNFM3NldENrKG5tLHYsZHQpe2RvY3VtZW50LmNv
b2tpZT1ubSsiPSIrZXNjYXBlKHYpKygoZHQ9PW51bGwpPyIiOiI7IGV4cGlyZXM9IitkdCkrIjsg
cGF0aD0vOyJ9DQpmdW5jdGlvbiBBQ0UzZ2V0Q2sobm0pew0KdmFyIGI9ZG9jdW1lbnQuY29va2ll
LmluZGV4T2Yobm0rIj0iKQ0KaWYgKGIhPS0xKXt2YXIgbD1iK25tLmxlbmd0aCsxLGU9ZG9jdW1l
bnQuY29va2llLmluZGV4T2YoIjsiLGwpDQppZiAoZT09LTEpZT1kb2N1bWVudC5jb29raWUubGVu
Z3RoDQpyZXR1cm4gdW5lc2NhcGUoZG9jdW1lbnQuY29va2llLnN1YnN0cmluZyhsLGUpKX0NCmVs
c2UgcmV0dXJuICIifQ0KZnVuY3Rpb24gQWNlUG9wKG0sdyxoLGYpew0KdmFyIHdpbixwPTENCmlm
ICghZilmPWFkQ29tUG9wRm8NCmlmIChhZENvbURlbGF5VmFsdWUpew0KYWRzQ29tUG9wVmFyPW0r
J3wnK3crJ3wnK2grJ3wnK2YNCnZhciB0PXNldFRpbWVvdXQoIkFjZVBvcCgpIixhZENvbURlbGF5
VmFsdWUqMTAwMCkNCmFkQ29tRGVsYXlWYWx1ZT0iIg0KcD0wDQp9ZWxzZXsNCmlmICghbSYmd2lu
ZG93LmFkc0NvbVBvcFZhcil7DQp2YXIgbj1hZHNDb21Qb3BWYXIuc3BsaXQoJ3wnKQ0Kd2luPXdp
bmRvdy5vcGVuKG5bMF0sJ3dpbicsIndpZHRoPSIrblsxXSsiLGhlaWdodD0iK25bMl0rIixzdGF0
dXM9MCxsb2NhdGlvbj0wIikNCmY9blszXQ0KfQ0KZWxzZSBpZiAobSYmd2luZG93LmFkc0NvbVBv
cFZhcil7DQphZHNDb21Qb3BWYXI9bSsnfCcrdysnfCcraCsnfCcrZg0KcD0wDQp9DQplbHNlIGlm
IChtKXsNCndpbj13aW5kb3cub3BlbihtLCd3aW4nLCJ3aWR0aD0iK3crIixoZWlnaHQ9IitoKyIs
c3RhdHVzPTAsbG9jYXRpb249MCIpDQp9DQppZiAocCl7DQppZiAoZiE9JzAnKXsNCndpbmRvdy5m
b2N1cygpDQp3aW4uYmx1cigpDQp9DQplbHNlIHsNCndpbi5mb2N1cygpDQp3aW5kb3cuYmx1cigp
DQp9fX19DQppZiAod2luZG93LkFDRV9BUilBQ0UzX0FkUmVxdWVzdChBQ0VfQVIp1AAFABEABwAI
AW8BcAAUAXFfEKBodHRwOi8vcjEuYmV0YS5hY2UuYWR2ZXJ0aXNpbmcuY29tL3NpdGU9NzM4MTE4
L3NpemU9MzAwMjUwL3U9MS9ibnVtPTQ1MTkzNTE4L2hyPTE1L2hsPTEvYz0wL3NjcmVzPTUvc3do
PTE2ODB4MTA1MC90aWxlPTEvZj0xL2FzPTMvcj0xL29wdG49MS9mdj05L2RyZWY9dW5kZWZpbmVk
TxEFQGJwbGlzdDAw1AECAwQFBgkKWCR2ZXJzaW9uVCR0b3BZJGFyY2hpdmVyWCRvYmplY3RzEgAB
hqDRBwhfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAFfEA9OU0tleWVkQXJjaGl2ZXKvEBgLDCYsLTMe
NDVHSElKS0xNTk9QUVJTV1hVJG51bGzdDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkHSVWJGNsYXNz
UiQzUiQ4UyQxMFMkMTFSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAF4ACgBYQCBAAgAaAB4AFgAgQ
B4AAEAHTDScoKSQrV05TLmJhc2VbTlMucmVsYXRpdmWABIAAgANfEKBodHRwOi8vcjEuYmV0YS5h
Y2UuYWR2ZXJ0aXNpbmcuY29tL3NpdGU9NzM4MTE4L3NpemU9MzAwMjUwL3U9MS9ibnVtPTQ1MTkz
NTE4L2hyPTE1L2hsPTEvYz0wL3NjcmVzPTUvc3doPTE2ODB4MTA1MC90aWxlPTEvZj0xL2FzPTMv
cj0xL29wdG49MS9mdj05L2RyZWY9dW5kZWZpbmVk0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIx
MlVOU1VSTFhOU09iamVjdCNBrZH7CLWuxRDI0w02Nzg5QFdOUy5rZXlzWk5TLm9iamVjdHOAFaY6
Ozw9Pj+ACYAKgAuADIANgA6mQUJDREVGgA+AEIARgBKAE4AUU1AzcFxDb250ZW50LVR5cGVdQ2Fj
aGUtQ29udHJvbF5Db250ZW50LUxlbmd0aFZQcmFnbWFaU2V0LUNvb2tpZV8QQUNQPSJOT0kgRFNQ
IENPUiBMQVcgQ1VSYSBERVZhIFRBSWEgUFNBYSBQU0RhIE9VUiBCVVMgVU5JIENPTSBOQVYiXxAY
YXBwbGljYXRpb24veC1qYXZhc2NyaXB0XxAScHJpdmF0ZSwgbWF4LWFnZT0wUzM0M1huby1jYWNo
ZV8RASg0NTE5MzUxOD1fNDkxOGM2MDQsNzk0NjQ0MTc5Myw3MzgxMTheNjE2MTc1XjgxXjAsMV87
IGRvbWFpbj0uYWR2ZXJ0aXNpbmcuY29tOyBwYXRoPS9jbGljaywgQzI9RVlNR0pCOyBkb21haW49
LmFkdmVydGlzaW5nLmNvbTsgcGF0aD0vOyBleHBpcmVzPVNhdHVyZGF5LCA5LU5vdi0yMDEzIDIz
OjM4OjQ0IEdNVCwgRjE9QlFneFlra0FBQUFBR04wQ0FFQUFnRUFCQUFBQUJBQUFBRUFBZ0VBOyBk
b21haW49LmFkdmVydGlzaW5nLmNvbTsgcGF0aD0vOyBleHBpcmVzPVNhdHVyZGF5LCA5LU5vdi0y
MDEzIDIzOjM4OjQ0IEdNVNIuL1RVo1VWMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9u
YXJ5EQFX0i4vWVqjWlsyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAf
ACkAMgA3ADoAUABSAGQAfwCFAKAApwCqAK0AsQC1ALgAuwC+AMEAxADHAMoAzQDPANEA0wDVANcA
2QDbAN0A3wDhAOMA5QDsAPQBAAECAQQBBgGpAa4BtwHCAcUBywHUAd0B3wHmAe4B+QH7AgICBAIG
AggCCgIMAg4CFQIXAhkCGwIdAh8CIQIlAjICQAJPAlYCYQKlAsAC1QLZAuIEDgQTBBcELQQ6BD0E
QgRGBFoAAAAAAAACAQAAAAAAAABcAAAAAAAAAAAAAAAAAAAEaE8RAVd2YXIgQURTRVJWRVJfUE9Q
U19WQUw9MDsKZG9jdW1lbnQud3JpdGVsbignPCEtLSBCRUdJTiBTVEFOREFSRCBUQUcgLSAzMDAg
eCAyNTAgLSBBZC5jb20gRGVmYXVsdHM6IFRpZXIgMl9EZWZhdWx0IC0gRE8gTk9UIE1PRElGWSAt
LT5cclxuPElGUkFNRSBGUkFNRUJPUkRFUj0wIE1BUkdJTldJRFRIPTAgTUFSR0lOSEVJR0hUPTAg
U0NST0xMSU5HPU5PIFdJRFRIPTMwMCBIRUlHSFQ9MjUwIFNSQz0iaHR0cDpcL1wvYWQueWllbGRt
YW5hZ2VyLmNvbVwvc3Q/YWRfdHlwZT1pZnJhbWUmYWRfc2l6ZT0zMDB4MjUwJnNlY3Rpb249NDE1
NjIzIj48XC9JRlJBTUU+XHJcbjwhLS0gRU5EIFRBRyAtLT5cclxuJyk7oQFz0wABAAIAAwF0AXgB
fdUABQAGAAcACAAJAXUACwAMAXYBd18QS2h0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL3N0P2Fk
X3R5cGU9aWZyYW1lJmFkX3NpemU9MzAweDI1MCZzZWN0aW9uPTQxNTYyM08RFMU8aHRtbD48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+LyogQWxsIHBvcnRpb25zIG9mIHRoaXMgc29mdHdh
cmUgYXJlIGNvcHlyaWdodCAoYykgMjAwMy0yMDA2IFJpZ2h0IE1lZGlhKi92YXIgcm1fYmFuX2Zs
YXNoPTA7dmFyIHJtX3VybD0iIjt2YXIgcm1fcG9wX2ZyZXF1ZW5jeT0wO3ZhciBybV9wb3BfaWQ9
MDt2YXIgcm1fcG9wX3RpbWVzPTA7dmFyIHJtX3BvcF9ub2ZyZXFjYXA9MDt2YXIgcm1fcGFzc2Jh
Y2s9MDt2YXIgcm1fdGFnX3R5cGU9IiI7cm1fdGFnX3R5cGUgPSAiaWZyYW1lIjsgcm1fdXJsID0g
Imh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2ltcD9aPTMwMHgyNTAmcz00MTU2MjMmX3NhbHQ9
MTA0MjIxNjExNSI7dmFyIFJNX1BPUF9DT09LSUVfTkFNRT0neW1fcG9wX2ZyZXEnO3ZhciBSTV9J
TlRfQ09PS0lFX05BTUU9J3ltX2ludF9mcmVxJztpZighd2luZG93LnJtX2NyZXhfZGF0YSl7cm1f
Y3JleF9kYXRhPW5ldyBBcnJheSgpO31pZihybV9wYXNzYmFjaz09MCl7cm1fcGJfZGF0YT1uZXcg
QXJyYXkoKTtpZihybV9jcmV4X2RhdGEubGVuZ3RoPjApe3JtX3VybCs9IiZYPSI7Zm9yKHZhciBp
PTA7aTxybV9jcmV4X2RhdGEubGVuZ3RoO2krKyl7cm1fdXJsKz1ybV9jcmV4X2RhdGFbaV07aWYo
aSE9cm1fY3JleF9kYXRhLmxlbmd0aC0xKXtybV91cmwrPSIsIjt9fX19ZWxzZXtybV9wYl9kYXRh
LnB1c2gocm1fY3JleF9kYXRhLnBvcCgpKTtybV91cmwrPSImWD0iO2Zvcih2YXIgaT0wO2k8cm1f
cGJfZGF0YS5sZW5ndGg7aSsrKXtybV91cmwrPXJtX3BiX2RhdGFbaV07aWYoaSE9cm1fcGJfZGF0
YS5sZW5ndGgtMSl7cm1fdXJsKz0iLCI7fX1ybV91cmwrPSImWT1wYiI7fXZhciBmbGFzaD1uZXcg
T2JqZWN0KCk7Zmxhc2g9Zmxhc2hEZXRlY3Rpb24oKTtpZihjb29raWVzRW5hYmxlZCgpKXtybV91
cmwrPShmbGFzaC5pbnN0YWxsZWQ/IiZCPTEwIjoiJkI9MTIiKTt9ZWxzZXtybV91cmwrPShmbGFz
aC5pbnN0YWxsZWQ/IiZCPTExIjoiJkI9MTMiKTt9aWYoIWZsYXNoLmluc3RhbGxlZHx8cm1fYmFu
X2ZsYXNoPT0xKXtybV91cmwrPSImbT0yIjt9dmFyIHVybD0nJzt0cnl7aWYocm1fdGFnX3R5cGU9
PSJhZCIpe2lmKHRvcD09c2VsZil7dXJsPWVuY29kZVVSSUNvbXBvbmVudCh0b3AubG9jYXRpb24u
aHJlZik7dXJsPXVybC5zdWJzdHIoMCwyNTYpO3JtX3VybCs9IiZ1PSIrdXJsO319ZWxzZSBpZihy
bV90YWdfdHlwZT09ImlmcmFtZSIpe3VybD1lbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVm
ZXJyZXIpO3VybD11cmwuc3Vic3RyKDAsMjU2KTtybV91cmwrPSImdT0iK3VybDt9fWNhdGNoKGUp
e31pZih0b3A9PXNlbGYpe3JtX3VybCs9IiZyPTEiO31lbHNle3JtX3VybCs9IiZyPTAiO312YXIg
cm1fdGFnX3NyYz0nPFNDUklQVCBUWVBFPSJ0ZXh0L2phdmFzY3JpcHQiIFNSQz0iJytybV91cmwr
JyI+PFwvU0NSSVBUPic7aWYocm1fcG9wX2ZyZXF1ZW5jeSl7aWYocm1DYW5TaG93UG9wKHJtX3Bv
cF9pZCxybV9wb3BfdGltZXMscm1fcG9wX2ZyZXF1ZW5jeSl8fHJtX3BvcF9ub2ZyZXFjYXApe2Rv
Y3VtZW50LndyaXRlKHJtX3RhZ19zcmMpO319ZWxzZXtkb2N1bWVudC53cml0ZShybV90YWdfc3Jj
KTt9ZnVuY3Rpb24gY29va2llc0VuYWJsZWQoKXt2YXIgY29va2llRW5hYmxlZD0obmF2aWdhdG9y
LmNvb2tpZUVuYWJsZWQpP3RydWU6ZmFsc2U7aWYodHlwZW9mIG5hdmlnYXRvci5jb29raWVFbmFi
bGVkPT0idW5kZWZpbmVkIiYmIWNvb2tpZUVuYWJsZWQpe2RvY3VtZW50LmNvb2tpZT0idGVzdGNv
b2tpZSI7Y29va2llRW5hYmxlZD0oZG9jdW1lbnQuY29va2llLmluZGV4T2YoInRlc3Rjb29raWUi
KSE9LTEpP3RydWU6ZmFsc2U7fXJldHVybiBjb29raWVFbmFibGVkO31mdW5jdGlvbiBybUdldENv
b2tpZShOYW1lKXt2YXIgc2VhcmNoPU5hbWUrIj0iO3ZhciBDb29raWVTdHJpbmc9ZG9jdW1lbnQu
Y29va2llO3ZhciByZXN1bHQ9bnVsbDtpZihDb29raWVTdHJpbmcubGVuZ3RoPjApe29mZnNldD1D
b29raWVTdHJpbmcuaW5kZXhPZihzZWFyY2gpO2lmKG9mZnNldCE9LTEpe29mZnNldCs9c2VhcmNo
Lmxlbmd0aDtlbmQ9Q29va2llU3RyaW5nLmluZGV4T2YoIjsiLG9mZnNldCk7aWYoZW5kPT0tMSl7
ZW5kPUNvb2tpZVN0cmluZy5sZW5ndGg7fXJlc3VsdD11bmVzY2FwZShDb29raWVTdHJpbmcuc3Vi
c3RyaW5nKG9mZnNldCxlbmQpKTt9fXJldHVybiByZXN1bHQ7fWZ1bmN0aW9uIGZsYXNoRGV0ZWN0
aW9uKCl7dmFyIGZsYXNoPW5ldyBPYmplY3QoKTtmbGFzaC5pbnN0YWxsZWQ9ZmFsc2U7Zmxhc2gu
dmVyc2lvbj0nMC4wJztpZihuYXZpZ2F0b3IucGx1Z2lucyYmbmF2aWdhdG9yLnBsdWdpbnMubGVu
Z3RoKXtmb3IoeD0wO3g8bmF2aWdhdG9yLnBsdWdpbnMubGVuZ3RoO3grKyl7aWYobmF2aWdhdG9y
LnBsdWdpbnNbeF0ubmFtZS5pbmRleE9mKCdTaG9ja3dhdmUgRmxhc2gnKSE9LTEpe2ZsYXNoLnZl
cnNpb249bmF2aWdhdG9yLnBsdWdpbnNbeF0uZGVzY3JpcHRpb24uc3BsaXQoJ1Nob2Nrd2F2ZSBG
bGFzaCAnKVsxXTtmbGFzaC5pbnN0YWxsZWQ9dHJ1ZTticmVhazt9fX1lbHNlIGlmKHdpbmRvdy5B
Y3RpdmVYT2JqZWN0KXtmb3IoeD0yO3g8MTA7eCsrKXt0cnl7b0ZsYXNoPWV2YWwoIm5ldyBBY3Rp
dmVYT2JqZWN0KCdTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaC4iK3grIicpOyIpO2lmKG9G
bGFzaCl7Zmxhc2guaW5zdGFsbGVkPXRydWU7Zmxhc2gudmVyc2lvbj14KycuMCc7fX1jYXRjaChl
KXt9fX1yZXR1cm4gZmxhc2g7fWZ1bmN0aW9uIHJtUmVwbGFjZShteVN0cmluZyx0b1JlcGxhY2Us
cmVwbGFjZUJ5KXtyZXR1cm4obXlTdHJpbmcucmVwbGFjZShuZXcgUmVnRXhwKHRvUmVwbGFjZSwn
Z2knKSxyZXBsYWNlQnkpKTt9ZnVuY3Rpb24gd3JpdGVDb29raWUoY2tOYW1lLGNrVmFsKXt2YXIg
bnVtZGF5cz0xNDt2YXIgdG9kYXk9bmV3IERhdGUoKTt2YXIgZXhwaXJlcz1uZXcgRGF0ZSgpO2V4
cGlyZXMuc2V0VGltZSh0b2RheS5nZXRUaW1lKCkrKDEwMDAqNjAqNjAqMjQqbnVtZGF5cykpO3Zh
ciBjb29raWVUZXh0PWNrTmFtZSsiPSIrY2tWYWwrIjtleHBpcmVzPSIrZXhwaXJlcy50b0dNVFN0
cmluZygpKyI7cGF0aD0vOyI7ZG9jdW1lbnQuY29va2llPWNvb2tpZVRleHQ7cmV0dXJuIG51bGw7
fWZ1bmN0aW9uIHJtQ2FuU2hvd1BvcChybV9wb3BfaWQscG9wX3RpbWVzLHBvcF9mcmVxdWVuY3kp
e3ZhciBjb3VudENvb2tpZU5hbWU9Uk1fUE9QX0NPT0tJRV9OQU1FK3JtX3BvcF9pZDt2YXIgZXhw
aXJlQ29va2llTmFtZT1STV9QT1BfQ09PS0lFX05BTUUrIl9leHBpcmF0aW9uIitybV9wb3BfaWQ7
dmFyIHNob3duVGltZXM9cm1HZXRDb29raWUoY291bnRDb29raWVOYW1lKTtpZihzaG93blRpbWVz
PT1udWxsKXtybVdyaXRlRXhwaXJhdGlvbkNvb2tpZShleHBpcmVDb29raWVOYW1lLHBvcF9mcmVx
dWVuY3kpO3Nob3duVGltZXM9MDt9ZWxzZXtzaG93blRpbWVzPU51bWJlcihzaG93blRpbWVzKTt9
aWYoc2hvd25UaW1lczxwb3BfdGltZXMpe3Nob3duVGltZXM9MStzaG93blRpbWVzO3ZhciBleHBp
cmF0aW9uPXJtR2V0Q29va2llKGV4cGlyZUNvb2tpZU5hbWUpO3JtV3JpdGVQb3BGcmVxdWVuY3lD
b29raWUocm1fcG9wX2lkLHNob3duVGltZXMsZXhwaXJhdGlvbik7cmV0dXJuX3ZhbHVlPXRydWU7
fWVsc2V7cmV0dXJuX3ZhbHVlPWZhbHNlO31yZXR1cm4gcmV0dXJuX3ZhbHVlO31mdW5jdGlvbiBy
bVdyaXRlUG9wRnJlcXVlbmN5Q29va2llKHJtX3BvcF9pZCxzaG93blRpbWVzLGV4cGlyYXRpb24p
e3ZhciBjb29raWVOYW1lPVJNX1BPUF9DT09LSUVfTkFNRStybV9wb3BfaWQ7dmFyIGNvb2tpZVRl
eHQ9Y29va2llTmFtZSsiPSIrc2hvd25UaW1lcysiOyIrImV4cGlyZXM9IitleHBpcmF0aW9uKyI7
cGF0aD0vOyI7ZG9jdW1lbnQuY29va2llPWNvb2tpZVRleHQ7fWZ1bmN0aW9uIHJtV3JpdGVFeHBp
cmF0aW9uQ29va2llKGNvb2tpZU5hbWUsZnJlcXVlbmN5KXt2YXIgdG9kYXk9bmV3IERhdGUoKTt2
YXIgZXhwaXJlcz1uZXcgRGF0ZSgpO2V4cGlyZXMuc2V0VGltZSh0b2RheS5nZXRUaW1lKCkrKDEw
MDAqZnJlcXVlbmN5KSk7dmFyIGNvb2tpZVRleHQ9Y29va2llTmFtZSsiPSIrZXhwaXJlcy50b0dN
VFN0cmluZygpKyI7IisiZXhwaXJlcz0iK2V4cGlyZXMudG9HTVRTdHJpbmcoKSsiO3BhdGg9Lzsi
O2RvY3VtZW50LmNvb2tpZT1jb29raWVUZXh0O308L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJodHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9pbXA/Wj0zMDB4MjUw
JmFtcDtzPTQxNTYyMyZhbXA7X3NhbHQ9MTA0MjIxNjExNSZhbXA7Qj0xMCZhbXA7dT1odHRwJTNB
JTJGJTJGYWQueWllbGRtYW5hZ2VyLmNvbSUyRmlmcmFtZTMlM0ZwZ0lBQURvR0JnQURvQk1BSmFR
RkFBSUFBQUFBQVA4QUFBQUNFQUlBQXdLZlNRZ0F4RzhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFQZy5BQUFBQUFBQS1EOEFBQUFBQUFENFB3QUFBQUFBQVBnLkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFMWmtzRUlTcVlRVmRWa2JLYzFQJmFtcDtyPTAiPjwvc2NyaXB0Pjxib2R5IG1hcmdpbndpZHRo
PSIwIiBtYXJnaW5oZWlnaHQ9IjAiPjxpZnJhbWUgc2Nyb2xsaW5nPSJubyIgbWFyZ2lud2lkdGg9
IjAiIG1hcmdpbmhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIGhlaWdodD0iMjUwIiB3aWR0aD0i
MzAwIiBzcmM9Imh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2lmcmFtZTM/UndRQUFJZFhCZ0Qw
LnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSVc0QWdBc25JSkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQU0zTXpNek16T3cuemN6TXpNek03RC5Oek16TXpNenNQODNNek16TXpP
dy5BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBRDdMRy00U3FZUVhtNGwwM0ZTMVhUVElRSlliQy1TYkV2d2kyVVFBQUFBQT0sLGh0
dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2lmcmFtZTM/cGdpYWFkb2diZ2Fkb2JtYWphcWZhYWlh
YWFhYWFwOGFhYWFjZWFpYWF3a2ZzcWdheGc4aWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhcGcuYWFhYWFhYWEtZDhhYWFhYWFhZDRwd2FhYWFhYWFwZy5hYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhbHpr
c2Vpc3F5cXZkdmtia2MxcCI+PC9pZnJhbWU+PG5vc2NyaXB0Pjwvbm9zY3JpcHQ+CjwvYm9keT48
L2h0bWw+XxAuPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4vPCEtLWZyYW1lMC0tPi0tPqEB
edQABQARAAcACAF6AXsAFAF8XxEBTmh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2ltcD9aPTMw
MHgyNTAmcz00MTU2MjMmX3NhbHQ9MTA0MjIxNjExNSZCPTEwJnU9aHR0cCUzQSUyRiUyRmFkLnlp
ZWxkbWFuYWdlci5jb20lMkZpZnJhbWUzJTNGcGdJQUFEb0dCZ0FEb0JNQUphUUZBQUlBQUFBQUFQ
OEFBQUFDRUFJQUF3S2ZTUWdBeEc4SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBUGcuQUFBQUFBQUEtRDhBQUFBQUFBRDRQd0FBQUFBQUFQZy5BQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTFprc0VJU3FZ
UVZkVmtiS2MxUCZyPTBPEQZQYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2
ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNo
aXZlcq8QHwsMIigpLzAxMkxNTk9QUVJTVFVWV1hZWltYXF1eX2NVJG51bGzbDQ4PEBESExQVFhcY
GRobHB0eHyAaIVYkY2xhc3NSJDNSJDhSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAHoACEAiABoAH
gAWACBAFEAAQAdMNIyQlJidXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18RAU5odHRwOi8vYWQu
eWllbGRtYW5hZ2VyLmNvbS9pbXA/Wj0zMDB4MjUwJnM9NDE1NjIzJl9zYWx0PTEwNDIyMTYxMTUm
Qj0xMCZ1PWh0dHAlM0ElMkYlMkZhZC55aWVsZG1hbmFnZXIuY29tJTJGaWZyYW1lMyUzRnBnSUFB
RG9HQmdBRG9CTUFKYVFGQUFJQUFBQUFBUDhBQUFBQ0VBSUFBd0tmU1FnQXhHOElBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVBnLkFBQUFBQUFBLUQ4QUFBQUFBQUQ0UHdB
QUFBQUFBUGcuQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUxaa3NFSVNxWVFWZFZrYktjMVAmcj0w0iorLC1YJGNsYXNzZXNaJGNs
YXNzbmFtZaItLlVOU1VSTFhOU09iamVjdCNBrZH7CMTGHhACEMjTDTM0NTZBV05TLmtleXNaTlMu
b2JqZWN0c4Adqjc4OTo7PD0+P0CACYAKgAuADIANgA6AD4AQgBGAEqpCQ0RFRkdISUpLgBOAFIAV
gBaAF4AYgBmAGoAbgBxTUDNwXUNhY2hlLUNvbnRyb2xdTGFzdC1Nb2RpZmllZFZQcmFnbWFWU2Vy
dmVyXENvbnRlbnQtVHlwZVREYXRlXkNvbnRlbnQtTGVuZ3RoWkNvbm5lY3Rpb25aU2V0LUNvb2tp
ZV8QY3BvbGljeXJlZj0iL3czYy9wM3AueG1sIiwgQ1A9Ik5PSSBEU1AgQ09SIE5JRCBDVVJhIEFE
TWEgREVWYSBQU0FhIFBTRGEgT1VSIEJVUyBDT00gSU5UIE9UQyBQVVIgU1RBIlhuby1zdG9yZV8Q
HU1vbiwgMTAgTm92IDIwMDggMjM6Mzg6NDQgR01UWG5vLWNhY2hlXxAacm1hcy1zZXJ2ZXItY29y
ZS1sejEvMy42LjBfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRTODMxVWNsb3NlXxDoZmxfaW5z
dD0xOyBwYXRoPS87IGV4cGlyZXM9U2F0LCAwOS1NYXktMjAwOSAyMzozODo0NCBHTVQsIHVpZD11
aWQ9YjY4NTA1OTYtYWY4MC0xMWRkLWFlZTYtMDAxY2M0M2MyZDIwJl9obWFjdj0xJl9zYWx0PTIy
NTE0MzA3ODQmX2tleWlkPWsxJl9obWFjPWRiZjFkNDk4MGM0NzkwZmFlMGRkYTFhZDRiYjMwZWVm
MzZjNTA3MWI7IHBhdGg9LzsgZXhwaXJlcz1XZWQsIDEwLURlYy0yMDA4IDIzOjM4OjQ0IEdNVNIq
K2Bho2FiLl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ50iorZGWjZWYuXxARTlNI
VFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAhgCMAKMA
qgCtALAAswC2ALkAvAC/AMIAxQDIAMoAzADOANAA0gDUANYA2ADaANwA4wDrAPcA+QD7AP0CTwJU
Al0CaAJrAnECegKDAoUChwKOApYCoQKjAq4CsAKyArQCtgK4AroCvAK+AsACwgLNAs8C0QLTAtUC
1wLZAtsC3QLfAuEC5QLzAwEDCAMPAxwDIQMwAzsDRgOsA7UD1QPeA/sEFgQaBCAFCwUQBRQFKgU3
BTwFQAVUAAAAAAAAAgEAAAAAAAAAZwAAAAAAAAAAAAAAAAAABWJPEQM/ZG9jdW1lbnQud3JpdGUo
JzxpZnJhbWUgc2Nyb2xsaW5nPVwibm9cIiBtYXJnaW53aWR0aD1cIjBcIiBtYXJnaW5oZWlnaHQ9
XCIwXCIgZnJhbWVib3JkZXI9XCIwXCIgaGVpZ2h0PVwiMjUwXCIgd2lkdGg9XCIzMDBcIiBzcmM9
XCJodHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9pZnJhbWUzP1J3UUFBSWRYQmdEMC54RUFBMVFH
QUFJQUFBQUFBUDhBQUFBQ0VBSUFBZ0lXNEFnQXNuSUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFNM016TXpNek93Lnpjek16TXpNN0QuTnpNek16TXpzUDgzTXpNek16T3cuQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUQ3TEctNFNxWVFYbTRsMDNGUzFYVFRJUUpZYkMtU2JFdndpMlVRQUFBQUE9LCxodHRwOi8vYWQu
eWllbGRtYW5hZ2VyLmNvbS9pZnJhbWUzP3BnaWFhZG9nYmdhZG9ibWFqYXFmYWFpYWFhYWFhcDhh
YWFhY2VhaWFhd2tmc3FnYXhnOGlhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYXBnLmFhYWFhYWFhLWQ4YWFhYWFhYWQ0cHdhYWFhYWFhcGcuYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWx6a3NlaXNxeXF2
ZHZrYmtjMXBcIj48L2lmcmFtZT4nKTsKdmFyIHJtX2RhdGEgPSBuZXcgT2JqZWN0KCk7CnJtX2Rh
dGEuY3JlYXRpdmVfaWQgPSAxMTc5NjM2OwpybV9kYXRhLm9mZmVyX3R5cGUgPSAzNzsKcm1fZGF0
YS5lbnRpdHlfaWQgPSA5OTg3NzsKaWYgKHdpbmRvdy5ybV9jcmV4X2RhdGEpIHtybV9jcmV4X2Rh
dGEucHVzaCgxMTc5NjM2KTt9oQF+0gABAAMBfwGD1QAFAAYABwAIAAkBgAALAAwBgQGCXxECB2h0
dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2lmcmFtZTM/UndRQUFJZFhCZ0QwLnhFQUExUUdBQUlB
QUFBQUFQOEFBQUFDRUFJQUFnSVc0QWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQU0zTXpNek16T3cuemN6TXpNek03RC5Oek16TXpNenNQODNNek16TXpPdy5BQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDdM
Ry00U3FZUVhtNGwwM0ZTMVhUVElRSlliQy1TYkV2d2kyVVFBQUFBQT0sLGh0dHA6Ly9hZC55aWVs
ZG1hbmFnZXIuY29tL2lmcmFtZTM/cGdpYWFkb2diZ2Fkb2JtYWphcWZhYWlhYWFhYWFwOGFhYWFj
ZWFpYWF3a2ZzcWdheGc4aWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
cGcuYWFhYWFhYWEtZDhhYWFhYWFhZDRwd2FhYWFhYWFwZy5hYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhbHprc2Vpc3F5cXZkdmti
a2MxcE8RA3I8aHRtbD48Ym9keSBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAlOyBtYXJnaW4tcmlnaHQ6
IDAlOyBtYXJnaW4tdG9wOiAwJTsgbWFyZ2luLWJvdHRvbTogMCUiIG1hcmdpbndpZHRoPSIwIiBt
YXJnaW5oZWlnaHQ9IjAiPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5pZiAod2luZG93
LnJtX2NyZXhfZGF0YSkge3JtX2NyZXhfZGF0YS5wdXNoKDExNzk2MzYpO30KPC9zY3JpcHQ+PGlm
cmFtZSBzcmM9Imh0dHA6Ly92aWV3LmF0ZG10LmNvbS9BUE0vaXZpZXcvbnd5cmtkcnYwMDEwMDAx
NDM0YXBtL2RpcmVjdDt3aS4zMDA7aGkuMjUwLzAxLzEyMjYzNjAzMjQ/Y2xpY2s9aHR0cDovL2Fk
LnlpZWxkbWFuYWdlci5jb20vY2xpY2ssUndRQUFJZFhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFB
QUFDRUFJQUFnSVc0QWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUR0dF
a0FBQUFBLCxodHRwJTNBJTJGJTJGYWQueWllbGRtYW5hZ2VyLmNvbSUyRmlmcmFtZTMlM0ZwZ2lh
YWRvZ2JnYWRvYm1hamFxZmFhaWFhYWFhYXA4YWFhYWNlYWlhYXdrZnNxZ2F4ZzhpYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFwZy5hYWFhYWFhYS1kOGFhYWFhYWFkNHB3
YWFhYWFhYXBnLmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFsemtzZWlzcXlxdmR2a2JrYzFwLCIgZnJhbWVib3JkZXI9IjAiIHNj
cm9sbGluZz0ibm8iIG1hcmdpbmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiIHRvcG1hcmdpbj0i
MCIgbGVmdG1hcmdpbj0iMCIgYWxsb3d0cmFuc3BhcmVuY3k9InRydWUiIHdpZHRoPSIzMDAiIGhl
aWdodD0iMjUwIj48L2lmcmFtZT4KPC9ib2R5PjwvaHRtbD5fEDw8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMi0tPi88IS0tZnJhbWUwLS0+LzwhLS1mcmFtZTAtLT4tLT6hAYTSAAEAAwGFAYnVAAUA
BgAHAAgACQGGAAsADAGHAYhfEQHjaHR0cDovL3ZpZXcuYXRkbXQuY29tL0FQTS9pdmlldy9ud3ly
a2RydjAwMTAwMDE0MzRhcG0vZGlyZWN0O3dpLjMwMDtoaS4yNTAvMDEvMTIyNjM2MDMyND9jbGlj
az1odHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9jbGljayxSd1FBQUlkWEJnRDAueEVBQTFRR0FB
SUFBQUFBQVA4QUFBQUNFQUlBQWdJVzRBZ0FzbklKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQVRHR0VrQUFBQUEsLGh0dHAlM0ElMkYlMkZhZC55aWVsZG1hbmFnZXIuY29tJTJGaWZy
YW1lMyUzRnBnaWFhZG9nYmdhZG9ibWFqYXFmYWFpYWFhYWFhcDhhYWFhY2VhaWFhd2tmc3FnYXhn
OGlhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYXBnLmFhYWFhYWFhLWQ4
YWFhYWFhYWQ0cHdhYWFhYWFhcGcuYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWx6a3NlaXNxeXF2ZHZrYmtjMXAsTxEPgzxodG1s
PjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFzY3JpcHQiPgp2YXIgRENjb2RlID0gIk4yNTI0Lk4yNTI0
LkRyaXZlX1BlcmZvcm1hbmMvQjI2NDM4MDAuNiI7CnZhciBEQ3dpZHRoID0gIjMwMCI7CnZhciBE
Q2hlaWdodCA9ICIyNTAiOwp2YXIgcmFuZE51bSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAq
IDEwMDAwMDAwMCkgKyAxMDAwMDAwMDA7CnZhciBpZnJhbWVzcmMgPSAiaHR0cDovL2FkLmRvdWJs
ZWNsaWNrLm5ldC9hZGkvIiArIERDY29kZSArICI7c3o9IiArIERDd2lkdGggKyAieCIgKyBEQ2hl
aWdodCArICI7b3JkPSIgKyByYW5kTnVtICsgIj9jbGljaz1odHRwOi8vYWQueWllbGRtYW5hZ2Vy
LmNvbS9jbGljayxSd1FBQUlkWEJnRDAueEVBQTFRR0FBSUFBQUFBQVA4QUFBQUNFQUlBQWdJVzRB
Z0FzbklKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVRHR0VrQUFBQUEsLGh0dHAl
M0ElMkYlMkZhZC55aWVsZG1hbmFnZXIuY29tJTJGaWZyYW1lMyUzRnBnaWFhZG9nYmdhZG9ibWFq
YXFmYWFpYWFhYWFhcDhhYWFhY2VhaWFhd2tmc3FnYXhnOGlhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYXBnLmFhYWFhYWFhLWQ4YWFhYWFhYWQ0cHdhYWFhYWFhcGcuYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWx6a3NlaXNxeXF2ZHZrYmtjMXAsaHR0cDovL2Nsay5hdGRtdC5jb20vZ29pZnJhbWUvNDc0
MjYzNTYuNDc2NjQ0NTMvbnd5cmtkcnYwMDEwMDAxNDM0YXBtL2RpcmVjdC8wMSUzRmhyZWY9IjsK
dmFyIHNjcmlwdHNyYyA9ICJodHRwOi8vYWQuZG91YmxlY2xpY2submV0L2Fkai8iICsgRENjb2Rl
ICsgIjthYnI9IWllO3N6PSIgKyBEQ3dpZHRoICsgIngiICsgRENoZWlnaHQgKyAiO29yZD0iICsg
cmFuZE51bSArICI/Y2xpY2s9aHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vY2xpY2ssUndRQUFJ
ZFhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSVc0QWdBc25JSkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFBLCxodHRwJTNBJTJGJTJGYWQueWllbGRt
YW5hZ2VyLmNvbSUyRmlmcmFtZTMlM0ZwZ2lhYWRvZ2JnYWRvYm1hamFxZmFhaWFhYWFhYXA4YWFh
YWNlYWlhYXdrZnNxZ2F4ZzhpYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFwZy5hYWFhYWFhYS1kOGFhYWFhYWFkNHB3YWFhYWFhYXBnLmFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFsemtzZWlzcXlxdmR2
a2JrYzFwLGh0dHA6Ly9jbGsuYXRkbXQuY29tL2dvaWZyYW1lLzQ3NDI2MzU2LjQ3NjY0NDUzL253
eXJrZHJ2MDAxMDAwMTQzNGFwbS9kaXJlY3QvMDElM0ZocmVmPSI7CnZhciBjbGlja1JlZGlyZWN0
ID0gImh0dHA6Ly9hZC5kb3VibGVjbGljay5uZXQvanVtcC8iICsgRENjb2RlICsgIjthYnI9IWll
NDthYnI9IWllNTtzej0iICsgREN3aWR0aCArICJ4IiArIERDaGVpZ2h0ICsgIjtvcmQ9IiArIHJh
bmROdW0gKyAiP2NsaWNrPWh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2NsaWNrLFJ3UUFBSWRY
QmdEMC54RUFBMVFHQUFJQUFBQUFBUDhBQUFBQ0VBSUFBZ0lXNEFnQXNuSUpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBVEdHRWtBQUFBQSwsaHR0cCUzQSUyRiUyRmFkLnlpZWxkbWFu
YWdlci5jb20lMkZpZnJhbWUzJTNGcGdpYWFkb2diZ2Fkb2JtYWphcWZhYWlhYWFhYWFwOGFhYWFj
ZWFpYWF3a2ZzcWdheGc4aWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
cGcuYWFhYWFhYWEtZDhhYWFhYWFhZDRwd2FhYWFhYWFwZy5hYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhbHprc2Vpc3F5cXZkdmti
a2MxcCxodHRwOi8vY2xrLmF0ZG10LmNvbS9nb2lmcmFtZS80NzQyNjM1Ni40NzY2NDQ1My9ud3ly
a2RydjAwMTAwMDE0MzRhcG0vZGlyZWN0LzAxJiUzRmhyZWY9IjsKdmFyIHZpZXdSZWRpcmVjdCA9
ICJodHRwOi8vYWQuZG91YmxlY2xpY2submV0L2FkLyIgKyBEQ2NvZGUgKyAiO2Ficj0haWU0O2Fi
cj0haWU1O3N6PSIgKyBEQ3dpZHRoICsgIngiICsgRENoZWlnaHQgKyAiO29yZD0iICsgcmFuZE51
bSArICI/Y2xpY2s9aHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vY2xpY2ssUndRQUFJZFhCZ0Qw
LnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSVc0QWdBc25JSkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFBLCxodHRwJTNBJTJGJTJGYWQueWllbGRtYW5hZ2Vy
LmNvbSUyRmlmcmFtZTMlM0ZwZ2lhYWRvZ2JnYWRvYm1hamFxZmFhaWFhYWFhYXA4YWFhYWNlYWlh
YXdrZnNxZ2F4ZzhpYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFwZy5h
YWFhYWFhYS1kOGFhYWFhYWFkNHB3YWFhYWFhYXBnLmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFsemtzZWlzcXlxdmR2a2JrYzFw
LGh0dHA6Ly9jbGsuYXRkbXQuY29tL2dvaWZyYW1lLzQ3NDI2MzU2LjQ3NjY0NDUzL253eXJrZHJ2
MDAxMDAwMTQzNGFwbS9kaXJlY3QvMDEmJTNGaHJlZj0iOwpkb2N1bWVudC53cml0ZSgiPGlmcmEi
ICsgIm1lIHNyYz0iICsgaWZyYW1lc3JjICsgIiB3aWR0aD0iICsgREN3aWR0aCArICIgaGVpZ2h0
PSIgKyBEQ2hlaWdodCArICIgbWFyZ2lud2lkdGg9MCBtYXJnaW5oZWlnaHQ9MCBoc3BhY2U9MCB2
c3BhY2U9MCBmcmFtZWJvcmRlcj0wIHNjcm9sbGluZz1ubz4iKTsKZG9jdW1lbnQud3JpdGUoIjxz
Y3IiICsgImlwdCBsYW5ndWFnZT1KYXZhU2NyaXB0MS4xIHNyYz0iICsgc2NyaXB0c3JjICsgIiA+
Iik7CmRvY3VtZW50LndyaXRlKCI8L3NjciIgKyAiaXB0PiIpOwpkb2N1bWVudC53cml0ZSgiPG5v
cyIgKyAiY3JpcHQ+Iik7CmRvY3VtZW50LndyaXRlKCI8YSAiICsgImhyZWY9IiArIGNsaWNrUmVk
aXJlY3QgKyAiIHRhcmdldD1fYmxhbms+PGltZyBzcmM9IiArIHZpZXdSZWRpcmVjdCArICIgYWx0
PScnIGJvcmRlcj0wPiIpOwpkb2N1bWVudC53cml0ZSgiPC8iICsgImE+Iik7CmRvY3VtZW50Lndy
aXRlKCI8L25vcyIgKyAiY3JpcHQ+Iik7CmRvY3VtZW50LndyaXRlKCI8L2lmcmEiICsgIm1lPiIp
Cjwvc2NyaXB0Pjxib2R5IG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiPjxpZnJhbWUg
c3JjPSJodHRwOi8vYWQuZG91YmxlY2xpY2submV0L2FkaS9OMjUyNC5OMjUyNC5Ecml2ZV9QZXJm
b3JtYW5jL0IyNjQzODAwLjY7c3o9MzAweDI1MDtvcmQ9MTIwNTM5OTg5P2NsaWNrPWh0dHA6Ly9h
ZC55aWVsZG1hbmFnZXIuY29tL2NsaWNrLFJ3UUFBSWRYQmdEMC54RUFBMVFHQUFJQUFBQUFBUDhB
QUFBQ0VBSUFBZ0lXNEFnQXNuSUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVEdH
RWtBQUFBQSwsaHR0cCUzQSUyRiUyRmFkLnlpZWxkbWFuYWdlci5jb20lMkZpZnJhbWUzJTNGcGdp
YWFkb2diZ2Fkb2JtYWphcWZhYWlhYWFhYWFwOGFhYWFjZWFpYWF3a2ZzcWdheGc4aWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhcGcuYWFhYWFhYWEtZDhhYWFhYWFhZDRw
d2FhYWFhYWFwZy5hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhbHprc2Vpc3F5cXZkdmtia2MxcCxodHRwOi8vY2xrLmF0ZG10LmNv
bS9nb2lmcmFtZS80NzQyNjM1Ni40NzY2NDQ1My9ud3lya2RydjAwMTAwMDE0MzRhcG0vZGlyZWN0
LzAxJTNGaHJlZj0iIHdpZHRoPSIzMDAiIGhlaWdodD0iMjUwIiBtYXJnaW53aWR0aD0iMCIgbWFy
Z2luaGVpZ2h0PSIwIiBoc3BhY2U9IjAiIHZzcGFjZT0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9s
bGluZz0ibm8iPjwvaWZyYW1lPjwvYm9keT48L2h0bWw+XxBKPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTItLT4vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUwLS0+LzwhLS1mcmFtZTAtLT4tLT6hAYrS
AAEAAgGLAY/VAAUABgAHAAgACQGMAAsADAGNAY5fEQJAaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5l
dC9hZGkvTjI1MjQuTjI1MjQuRHJpdmVfUGVyZm9ybWFuYy9CMjY0MzgwMC42O3N6PTMwMHgyNTA7
b3JkPTEyMDUzOTk4OT9jbGljaz1odHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9jbGljayxSd1FB
QUlkWEJnRDAueEVBQTFRR0FBSUFBQUFBQVA4QUFBQUNFQUlBQWdJVzRBZ0FzbklKQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVRHR0VrQUFBQUEsLGh0dHAlM0ElMkYlMkZhZC55aWVs
ZG1hbmFnZXIuY29tJTJGaWZyYW1lMyUzRnBnaWFhZG9nYmdhZG9ibWFqYXFmYWFpYWFhYWFhcDhh
YWFhY2VhaWFhd2tmc3FnYXhnOGlhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYXBnLmFhYWFhYWFhLWQ4YWFhYWFhYWQ0cHdhYWFhYWFhcGcuYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWx6a3NlaXNxeXF2
ZHZrYmtjMXAsaHR0cDovL2Nsay5hdGRtdC5jb20vZ29pZnJhbWUvNDc0MjYzNTYuNDc2NjQ0NTMv
bnd5cmtkcnYwMDEwMDAxNDM0YXBtL2RpcmVjdC8wMSUzRmhyZWY9TxEZjzxodG1sPjxoZWFkPjx0
aXRsZT5DbGljayBoZXJlIHRvIGZpbmQgb3V0IG1vcmUhPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdj
b2xvcj0iI2ZmZmZmZiIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCIgbGVmdG1hcmdp
bj0iMCIgdG9wbWFyZ2luPSIwIj48IS0tIFRlbXBsYXRlIElkID0gMSBUZW1wbGF0ZSBOYW1lID0g
QmFubmVyIENyZWF0aXZlIChGbGFzaCkgLS0+CjwhLS0gQ29weXJpZ2h0IDIwMDIgRG91YmxlQ2xp
Y2sgSW5jLiwgQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+PHNjcmlwdCBzcmM9Imh0dHA6Ly9tMS4y
bWRuLm5ldC84NzkzNjYvZmxhc2h3cml0ZV8xXzIuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IGxhbmd1
YWdlPSJKYXZhU2NyaXB0Ij4gCjwhLS0KdmFyIGRjc3dmID0gImh0dHA6Ly9tMS4ybWRuLm5ldC81
NzgxNzYvbnMtYnJpZGUtYnJhbmQtMzAweDI1MF9DTF85LTExLnN3ZiI7IAp2YXIgZGNnaWYgPSAi
aHR0cDovL20xLjJtZG4ubmV0LzU3ODE3Ni9ucy1icmlkZS1icmFuZC0zMDB4MjUwX0NMXzktMTEu
Z2lmIjsgCnZhciBhZHZ1cmwgPSAiaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljayUzQmg9
djgvMzc3NC83L2E1LyUyYS9iJTNCMTY4MDc3MTQ4JTNCMTItMCUzQjAlM0IyNzY5MDE3NSUzQjQz
MDctMzAwLzI1MCUzQjIyNzA4NjAyLzIyNzI2NDg1LzElM0IlM0IlN0Vzc2NzJTNEJTNmaHR0cDov
L2FkLnlpZWxkbWFuYWdlci5jb20vY2xpY2ssUndRQUFJZFhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQ
OEFBQUFDRUFJQUFnSVc0QWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFU
R0dFa0FBQUFBLCxodHRwJTNBJTJGJTJGYWQueWllbGRtYW5hZ2VyLmNvbSUyRmlmcmFtZTMlM0Zw
Z2lhYWRvZ2JnYWRvYm1hamFxZmFhaWFhYWFhYXA4YWFhYWNlYWlhYXdrZnNxZ2F4ZzhpYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFwZy5hYWFhYWFhYS1kOGFhYWFhYWFk
NHB3YWFhYWFhYXBnLmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFsemtzZWlzcXlxdmR2a2JrYzFwLGh0dHA6Ly9jbGsuYXRkbXQu
Y29tL2dvaWZyYW1lLzQ3NDI2MzU2LjQ3NjY0NDUzL253eXJrZHJ2MDAxMDAwMTQzNGFwbS9kaXJl
Y3QvMDElM0ZocmVmPWh0dHA6Ly93d3cubmV0d29ya3NvbHV0aW9uc3JldGFpbC5jb20vamliamFi
L2JyYW5kLWJyaWRlcy5waHA/bGNvZGU9UDk5QzM5OVM1MTJOMEIyQTFEMjA5RTAwMDBWMTAyIjsK
dmFyIGRjYWR2dXJsID0gZXNjYXBlKGFkdnVybCk7CnZhciBkY21pbnZlcnNpb24gPSA2Owp2YXIg
ZGNtYXh2ZXJzaW9uID0gOTsKdmFyIHBsdWdpbiA9IGZhbHNlOwp2YXIgZGNjcmVhdGl2ZXdpZHRo
ID0gIjMwMCI7CnZhciBkY2NyZWF0aXZlaGVpZ2h0ID0gIjI1MCI7CnZhciBkY3dtb2RlID0gIm9w
YXF1ZSI7CnZhciBkY2JnY29sb3IgPSAiIjsKCmlmICgoKG5hdmlnYXRvci5hcHBOYW1lID09ICJO
ZXRzY2FwZSIpICYmIChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1vemlsbGEiKSAhPSAt
MSkgJiYgKHBhcnNlRmxvYXQobmF2aWdhdG9yLmFwcFZlcnNpb24pID49IDQpICYmIChuYXZpZ2F0
b3IuamF2YUVuYWJsZWQoKSkgJiYgbmF2aWdhdG9yLm1pbWVUeXBlcyAmJiBuYXZpZ2F0b3IubWlt
ZVR5cGVzWyJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCJdICYmIG5hdmlnYXRvci5taW1l
VHlwZXNbImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIl0uZW5hYmxlZFBsdWdpbikpIHsK
dmFyIHBsdWduYW1lPW5hdmlnYXRvci5wbHVnaW5zWydTaG9ja3dhdmUgRmxhc2gnXS5kZXNjcmlw
dGlvbjt2YXIgcGx1Z3N1Yj1wbHVnbmFtZS5zdWJzdHJpbmcocGx1Z25hbWUuaW5kZXhPZigiLiIp
LC0xKTsgdmFyIHBsdWdzdWJzdHI9cGx1Z3N1Yi5zdWJzdHIoLTEpCmlmKCBwbHVnc3Vic3RyID49
IGRjbWludmVyc2lvbikgeyBwbHVnaW4gPSB0cnVlO30KfQplbHNlIGlmIChuYXZpZ2F0b3IudXNl
ckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSIpPj0wICYmIChuYXZp
Z2F0b3IudXNlckFnZW50LmluZGV4T2YoIk9wZXJhIik8MCkgJiYgKG5hdmlnYXRvci51c2VyQWdl
bnQuaW5kZXhPZigiV2luZG93cyA5NSIpPj0wIHx8IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhP
ZigiV2luZG93cyA5OCIpPj0wIHx8IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiV2luZG93
cyBOVCIpPj0wKSAmJiBkb2N1bWVudC5hbGwpIAp7CmRvY3VtZW50LndyaXRlKCc8c2NyaXB0IGxh
bmd1YWdlPVZCU2NyaXB0PicgKyAnXG4nICsKICAgJ2RjbWF4dmVyc2lvbiA9ICcrZGNtYXh2ZXJz
aW9uICsgJ1xuJyArCiAgICdkY21pbnZlcnNpb24gPSAnK2RjbWludmVyc2lvbiArICdcbicgKwog
ICAnRG8nICsgJ1xuJyArCiAgICAnT24gRXJyb3IgUmVzdW1lIE5leHQnICsgJ1xuJyArCiAgICAn
cGx1Z2luID0gKElzT2JqZWN0KENyZWF0ZU9iamVjdChcIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2
ZUZsYXNoLlwiICYgZGNtYXh2ZXJzaW9uICYgXCJcIikpKScgKyAnXG4nICsKICAgICdJZiBwbHVn
aW4gPSB0cnVlIFRoZW4gRXhpdCBEbycgKyAnXG4nICsKICAgICdkY21heHZlcnNpb24gPSBkY21h
eHZlcnNpb24gLSAxJyArICdcbicgKwogICAgJ0xvb3AgV2hpbGUgZGNtYXh2ZXJzaW9uID49IGRj
bWludmVyc2lvbicgKyAnXG4nICsKICAnPFwvc2NyaXB0PicpOwp9CmlmICggcGx1Z2luICkgIHsK
IGFkY29kZSA9ICc8T0JKRUNUIGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4
LTQ0NDU1MzU0MDAwMCInKwogICcgSUQ9RkxBU0hfQUQgV0lEVEg9IicrIGRjY3JlYXRpdmV3aWR0
aCArJyIgSEVJR0hUPSInKyBkY2NyZWF0aXZlaGVpZ2h0ICsnIj4nKwogICc8UEFSQU0gTkFNRT1t
b3ZpZSBWQUxVRT0iJyArIGRjc3dmICsgJz9jbGlja1RhZz0nKyBkY2FkdnVybCArJyI+PFBBUkFN
IE5BTUU9cXVhbGl0eSBWQUxVRT1oaWdoPjxQQVJBTSBOQU1FPWJnY29sb3IgVkFMVUU9IycrIGRj
Ymdjb2xvciArJz48UEFSQU0gTkFNRT13bW9kZSBWQUxVRT0nKyBkY3dtb2RlICsnPjxQQVJBTSBO
QU1FPSJBbGxvd1NjcmlwdEFjY2VzcyIgVkFMVUU9ImFsd2F5cyI+JysKICAnPEVNQkVEIHNyYz0i
JyArIGRjc3dmICsgJz9jbGlja1RhZz0nKyBkY2FkdnVybCArJyIgcXVhbGl0eT1oaWdoIHdtb2Rl
PScrZGN3bW9kZSsKICAnIHN3TGl2ZUNvbm5lY3Q9VFJVRSBXSURUSD0iJysgZGNjcmVhdGl2ZXdp
ZHRoICsnIiBIRUlHSFQ9IicrIGRjY3JlYXRpdmVoZWlnaHQgKyciIGJnY29sb3I9IycrIGRjYmdj
b2xvcisKICAnIFRZUEU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBBbGxvd1Njcmlw
dEFjY2Vzcz0iYWx3YXlzIj48L0VNQkVEPjwvT0JKRUNUPic7CmlmKCgnaSchPSJqIikmJih0eXBl
b2YgZGNsa0ZsYXNoV3JpdGUhPSJ1bmRlZmluZWQiKSl7ZGNsa0ZsYXNoV3JpdGUoYWRjb2RlKTt9
ZWxzZXtkb2N1bWVudC53cml0ZShhZGNvZGUpO30KfSBlbHNlIHsKIGRvY3VtZW50LndyaXRlKCc8
YSB0YXJnZXQ9Il9ibGFuayIgSFJFRj0iaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljayUz
Qmg9djgvMzc3NC83L2E1LyUyYS9iJTNCMTY4MDc3MTQ4JTNCMTItMCUzQjAlM0IyNzY5MDE3NSUz
QjQzMDctMzAwLzI1MCUzQjIyNzA4NjAyLzIyNzI2NDg1LzElM0IlM0IlN0Vzc2NzJTNEJTNmaHR0
cDovL2FkLnlpZWxkbWFuYWdlci5jb20vY2xpY2ssUndRQUFJZFhCZ0QwLnhFQUExUUdBQUlBQUFB
QUFQOEFBQUFDRUFJQUFnSVc0QWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFUR0dFa0FBQUFBLCxodHRwJTNBJTJGJTJGYWQueWllbGRtYW5hZ2VyLmNvbSUyRmlmcmFtZTMl
M0ZwZ2lhYWRvZ2JnYWRvYm1hamFxZmFhaWFhYWFhYXA4YWFhYWNlYWlhYXdrZnNxZ2F4ZzhpYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFwZy5hYWFhYWFhYS1kOGFhYWFh
YWFkNHB3YWFhYWFhYXBnLmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFsemtzZWlzcXlxdmR2a2JrYzFwLGh0dHA6Ly9jbGsuYXRk
bXQuY29tL2dvaWZyYW1lLzQ3NDI2MzU2LjQ3NjY0NDUzL253eXJrZHJ2MDAxMDAwMTQzNGFwbS9k
aXJlY3QvMDElM0ZocmVmPWh0dHA6Ly93d3cubmV0d29ya3NvbHV0aW9uc3JldGFpbC5jb20vamli
amFiL2JyYW5kLWJyaWRlcy5waHA/bGNvZGU9UDk5QzM5OVM1MTJOMEIyQTFEMjA5RTAwMDBWMTAy
Ij48SU1HIFNSQz0iJyArIGRjZ2lmICsgJyIgYWx0PSIiIEJPUkRFUj0wPjwvQT4nKTsKfQovLy0t
Pgo8L3NjcmlwdD48b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4
LTQ0NDU1MzU0MDAwMCIgaWQ9IkZMQVNIX0FEIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjI1MCI+PHBh
cmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0iaHR0cDovL20xLjJtZG4ubmV0LzU3ODE3Ni9ucy1icmlk
ZS1icmFuZC0zMDB4MjUwX0NMXzktMTEuc3dmP2NsaWNrVGFnPWh0dHAlM0EvL2FkLmRvdWJsZWNs
aWNrLm5ldC9jbGljayUyNTNCaCUzRHY4LzM3NzQvNy9hNS8lMjUyYS9iJTI1M0IxNjgwNzcxNDgl
MjUzQjEyLTAlMjUzQjAlMjUzQjI3NjkwMTc1JTI1M0I0MzA3LTMwMC8yNTAlMjUzQjIyNzA4NjAy
LzIyNzI2NDg1LzElMjUzQiUyNTNCJTI1N0Vzc2NzJTI1M0QlMjUzZmh0dHAlM0EvL2FkLnlpZWxk
bWFuYWdlci5jb20vY2xpY2slMkNSd1FBQUlkWEJnRDAueEVBQTFRR0FBSUFBQUFBQVA4QUFBQUNF
QUlBQWdJVzRBZ0FzbklKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVRHR0VrQUFB
QUElMkMlMkNodHRwJTI1M0ElMjUyRiUyNTJGYWQueWllbGRtYW5hZ2VyLmNvbSUyNTJGaWZyYW1l
MyUyNTNGcGdpYWFkb2diZ2Fkb2JtYWphcWZhYWlhYWFhYWFwOGFhYWFjZWFpYWF3a2ZzcWdheGc4
aWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhcGcuYWFhYWFhYWEtZDhh
YWFhYWFhZDRwd2FhYWFhYWFwZy5hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhbHprc2Vpc3F5cXZkdmtia2MxcCUyQ2h0dHAlM0Ev
L2Nsay5hdGRtdC5jb20vZ29pZnJhbWUvNDc0MjYzNTYuNDc2NjQ0NTMvbnd5cmtkcnYwMDEwMDAx
NDM0YXBtL2RpcmVjdC8wMSUyNTNGaHJlZiUzRGh0dHAlM0EvL3d3dy5uZXR3b3Jrc29sdXRpb25z
cmV0YWlsLmNvbS9qaWJqYWIvYnJhbmQtYnJpZGVzLnBocCUzRmxjb2RlJTNEUDk5QzM5OVM1MTJO
MEIyQTFEMjA5RTAwMDBWMTAyIj48cGFyYW0gbmFtZT0icXVhbGl0eSIgdmFsdWU9ImhpZ2giPjxw
YXJhbSBuYW1lPSJiZ2NvbG9yIiB2YWx1ZT0iIyI+PHBhcmFtIG5hbWU9Indtb2RlIiB2YWx1ZT0i
b3BhcXVlIj48cGFyYW0gbmFtZT0iQWxsb3dTY3JpcHRBY2Nlc3MiIHZhbHVlPSJhbHdheXMiPjxl
bWJlZCBzcmM9Imh0dHA6Ly9tMS4ybWRuLm5ldC81NzgxNzYvbnMtYnJpZGUtYnJhbmQtMzAweDI1
MF9DTF85LTExLnN3Zj9jbGlja1RhZz1odHRwJTNBLy9hZC5kb3VibGVjbGljay5uZXQvY2xpY2sl
MjUzQmglM0R2OC8zNzc0LzcvYTUvJTI1MmEvYiUyNTNCMTY4MDc3MTQ4JTI1M0IxMi0wJTI1M0Iw
JTI1M0IyNzY5MDE3NSUyNTNCNDMwNy0zMDAvMjUwJTI1M0IyMjcwODYwMi8yMjcyNjQ4NS8xJTI1
M0IlMjUzQiUyNTdFc3NjcyUyNTNEJTI1M2ZodHRwJTNBLy9hZC55aWVsZG1hbmFnZXIuY29tL2Ns
aWNrJTJDUndRQUFJZFhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSVc0QWdBc25J
SkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFBJTJDJTJDaHR0cCUy
NTNBJTI1MkYlMjUyRmFkLnlpZWxkbWFuYWdlci5jb20lMjUyRmlmcmFtZTMlMjUzRnBnaWFhZG9n
YmdhZG9ibWFqYXFmYWFpYWFhYWFhcDhhYWFhY2VhaWFhd2tmc3FnYXhnOGlhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYXBnLmFhYWFhYWFhLWQ4YWFhYWFhYWQ0cHdhYWFh
YWFhcGcuYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWx6a3NlaXNxeXF2ZHZrYmtjMXAlMkNodHRwJTNBLy9jbGsuYXRkbXQuY29t
L2dvaWZyYW1lLzQ3NDI2MzU2LjQ3NjY0NDUzL253eXJrZHJ2MDAxMDAwMTQzNGFwbS9kaXJlY3Qv
MDElMjUzRmhyZWYlM0RodHRwJTNBLy93d3cubmV0d29ya3NvbHV0aW9uc3JldGFpbC5jb20vamli
amFiL2JyYW5kLWJyaWRlcy5waHAlM0ZsY29kZSUzRFA5OUMzOTlTNTEyTjBCMkExRDIwOUUwMDAw
VjEwMiIgcXVhbGl0eT0iaGlnaCIgd21vZGU9Im9wYXF1ZSIgc3dsaXZlY29ubmVjdD0iVFJVRSIg
d2lkdGg9IjMwMCIgaGVpZ2h0PSIyNTAiIGJnY29sb3I9IiMiIHR5cGU9ImFwcGxpY2F0aW9uL3gt
c2hvY2t3YXZlLWZsYXNoIiBhbGxvd3NjcmlwdGFjY2Vzcz0iYWx3YXlzIj48L29iamVjdD48bm9z
Y3JpcHQ+PC9ub3NjcmlwdD48L2JvZHk+PC9odG1sPl8QWDwhLS1mcmFtZVBhdGggLy88IS0tZnJh
bWUyLS0+LzwhLS1mcmFtZTAtLT4vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUwLS0+LzwhLS1mcmFt
ZTAtLT4tLT6hAZDUAAUAEQAHAAgBkQGSABQBk18QK2h0dHA6Ly9tMS4ybWRuLm5ldC84NzkzNjYv
Zmxhc2h3cml0ZV8xXzIuanNPEQQSYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJj
aGl2ZXJYJG9iamVjdHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRB
cmNoaXZlcq8QHgsMJiwtMx40NU1OT1BRUlNUVVZXWFlaW1xdXl9jZFUkbnVsbN0NDg8QERITFBUW
FxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIk
MFIkMYAdgAKAHBAIEACABoAHgAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAE
gACAA18QK2h0dHA6Ly9tMS4ybWRuLm5ldC84NzkzNjYvZmxhc2h3cml0ZV8xXzIuanPSLi8wMVgk
Y2xhc3Nlc1okY2xhc3NuYW1lojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsKqwIuEMjTDTY3ODlDV05T
LmtleXNaTlMub2JqZWN0c4AbqTo7PD0+P0BBQoAJgAqAC4AMgA2ADoAPgBCAEalERUZHSElKS0yA
EoATgBSAFYAWgBeAGIAZgBpdTGFzdC1Nb2RpZmllZF1DYWNoZS1Db250cm9sXxAQQ29udGVudC1F
bmNvZGluZ1xDb250ZW50LVR5cGVWU2VydmVyXkNvbnRlbnQtTGVuZ3RoVERhdGVaQ29ubmVjdGlv
blRWYXJ5XxAdTW9uLCAxMCBOb3YgMjAwOCAwMToyMTowMiBHTVRdbWF4LWFnZT04NjQwMFRnemlw
XxAYYXBwbGljYXRpb24veC1qYXZhc2NyaXB0XURDTEsgQ3JlYXRpdmVTMzIxXxAdTW9uLCAxMCBO
b3YgMjAwOCAyMzozODo0NSBHTVRaa2VlcC1hbGl2ZV8QD0FjY2VwdC1FbmNvZGluZ9IuL2Bho2Fi
Ml8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQMh0i4vZWajZmcyXxARTlNIVFRQ
VVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3ADoAUABSAGQAhQCLAKYArQCw
ALMAtwC7AL4AwQDEAMcAygDNANAA0wDVANcA2QDbAN0A3wDhAOMA5QDnAOkA6wDyAPoBBgEIAQoB
DAE6AT8BSAFTAVYBXAFlAW4BcAF3AX8BigGMAZYBmAGaAZwBngGgAaIBpAGmAagBsgG0AbYBuAG6
AbwBvgHAAcIBxAHSAeAB8wIAAgcCFgIbAiYCKwJLAlkCXgJ5AocCiwKrArYCyALNAtEC5wL0AvcC
/AMAAxQAAAAAAAACAQAAAAAAAABoAAAAAAAAAAAAAAAAAAADIk8RAyFmdW5jdGlvbiBkY2xrVG9P
YmplY3QoaWQpIHsNCgkJaWYoZG9jdW1lbnQubGF5ZXJzKXsNCgkJCXJldHVybiAoZG9jdW1lbnQu
bGF5ZXJzW2lkXSk/ZXZhbChkb2N1bWVudC5sYXllcnNbaWRdKTpudWxsOw0KCQl9DQoJCWVsc2Ug
aWYoZG9jdW1lbnQuYWxsICYmICFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCl7DQoJCQlyZXR1cm4g
KGV2YWwoIndpbmRvdy4iK2lkKSk/ZXZhbCgid2luZG93LiIraWQpOm51bGw7DQoJCX0NCgkJZWxz
ZSBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCAmJiBkb2N1bWVudC5ib2R5LnN0eWxlKSB7DQoJ
CQlyZXR1cm4gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSk/ZXZhbChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCkpOm51bGw7DQoJCX0NCgl9DQogIA0KZnVuY3Rpb24gZGNsa0ZsYXNoV3Jp
dGUoc3RyaW5nKXsNCiAgZG9jdW1lbnQud3JpdGUoc3RyaW5nKTsNCiAgfQ0KDQpmdW5jdGlvbiBk
Y2xrRmxhc2hJbm5lckhUTUwoaHRtbEVsZW1lbnRJZCxjb2RlKXsNCiAgdmFyIHg9ZGNsa1RvT2Jq
ZWN0KGh0bWxFbGVtZW50SWQpOw0KICBpZih4KXsNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50
QnlJZHx8ZG9jdW1lbnQuYWxsKXsNCiAgICAgIHguaW5uZXJIVE1MPScnOw0KICAgICAgeC5pbm5l
ckhUTUw9Y29kZTsNCiAgICAgIH0NCiAgICBlbHNlIGlmKGRvY3VtZW50LmxheWVycyl7DQogICAg
ICB4LmRvY3VtZW50Lm9wZW4oKTsNCiAgICAgIHguZG9jdW1lbnQud3JpdGUoY29kZSk7DQogICAg
ICB4LmRvY3VtZW50LmNsb3NlKCk7DQogICAgICB9DQogICAgfQ0KICB9DQrTAAEAAgADAZUBmQGf
1QAFAAYABwAIAAkBlgALAAwBlwGYXxBGaHR0cDovL3d3dy5ueXRpbWVzLmNvbS9hZHMvYWR2ZXJ0
aXNpbmdjb20vcmV2X0FkY29tXzMwMHgyNTBfdGllcjEuaHRtbE8RA5U8aHRtbD48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBBQ0VfQVIgPSB7U2l0ZTogJzczODExNycsIFNpemU6
ICczMDAyNTAnfTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
aHR0cDovL3VhYy5hZHZlcnRpc2luZy5jb20vd3JhcHBlci9hY2VVQUMuanMiPjwvc2NyaXB0Pjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9yMS5iZXRhLmFjZS5hZHZl
cnRpc2luZy5jb20vc2l0ZT03MzgxMTcvc2l6ZT0zMDAyNTAvdT0xL2JudW09NzcxNzk4NzUvaHI9
MTUvaGw9MS9jPTMvc2NyZXM9NS9zd2g9MTY4MHgxMDUwL3RpbGU9MS9mPTEvYXM9My9yPTEvb3B0
bj0xL2Z2PTkvZHJlZj1odHRwJTI1M0ElMjUyRiUyNTJGd3d3Lm55dGltZXMuY29tJTI1MkYyMDA4
JTI1MkYxMSUyNTJGMTAlMjUyRmhlYWx0aCUyNTJGMTBoZWFydC5odG1sJTI1M0ZfciUyNTNEMiUy
NTI2cGFydG5lciUyNTNEcnNzbnl0JTI1MjZlbWMlMjUzRHJzcyUyNTI2b3JlZiUyNTNEc2xvZ2lu
JTI1MjZvcmVmJTI1M0RzbG9naW4iPjwvc2NyaXB0PjwhLS0gQkVHSU4gU1RBTkRBUkQgVEFHIC0g
MzAwIHggMjUwIC0gQWQuY29tIERlZmF1bHRzOiBUaWVyIDFfRGVmYXVsdCAtIERPIE5PVCBNT0RJ
RlkgLS0+PGJvZHkgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+PGlmcmFtZSBmcmFt
ZWJvcmRlcj0iMCIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCIgc2Nyb2xsaW5nPSJO
TyIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIyNTAiIHNyYz0iaHR0cDovL2FkLnlpZWxkbWFuYWdlci5j
b20vc3Q/YWRfdHlwZT1pZnJhbWUmYW1wO2FkX3NpemU9MzAweDI1MCZhbXA7c2VjdGlvbj00MTU2
MjIiPjwvaWZyYW1lPgo8IS0tIEVORCBUQUcgLS0+Cgo8L2JvZHk+PC9odG1sPl8QIDwhLS1mcmFt
ZVBhdGggLy88IS0tZnJhbWUzLS0+LS0+ogGaAZvUAAUAEQAHAAgBawFsABQBbdQABQARAAcACAGc
AZ0AFAGeXxEBSGh0dHA6Ly9yMS5iZXRhLmFjZS5hZHZlcnRpc2luZy5jb20vc2l0ZT03MzgxMTcv
c2l6ZT0zMDAyNTAvdT0xL2JudW09NzcxNzk4NzUvaHI9MTUvaGw9MS9jPTMvc2NyZXM9NS9zd2g9
MTY4MHgxMDUwL3RpbGU9MS9mPTEvYXM9My9yPTEvb3B0bj0xL2Z2PTkvZHJlZj1odHRwJTI1M0El
MjUyRiUyNTJGd3d3Lm55dGltZXMuY29tJTI1MkYyMDA4JTI1MkYxMSUyNTJGMTAlMjUyRmhlYWx0
aCUyNTJGMTBoZWFydC5odG1sJTI1M0ZfciUyNTNEMiUyNTI2cGFydG5lciUyNTNEcnNzbnl0JTI1
MjZlbWMlMjUzRHJzcyUyNTI2b3JlZiUyNTNEc2xvZ2luJTI1MjZvcmVmJTI1M0RzbG9naW5PEQXp
YnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEH
CF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QGAsMJiwtMx40NUdI
SUpLTE1OT1BRUlNXWFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYkY2xhc3NSJDNS
JDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAXgAKAFhAIEACABoAHgAWACBAHgAAQ
AdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18RAUhodHRwOi8vcjEuYmV0YS5hY2Uu
YWR2ZXJ0aXNpbmcuY29tL3NpdGU9NzM4MTE3L3NpemU9MzAwMjUwL3U9MS9ibnVtPTc3MTc5ODc1
L2hyPTE1L2hsPTEvYz0zL3NjcmVzPTUvc3doPTE2ODB4MTA1MC90aWxlPTEvZj0xL2FzPTMvcj0x
L29wdG49MS9mdj05L2RyZWY9aHR0cCUyNTNBJTI1MkYlMjUyRnd3dy5ueXRpbWVzLmNvbSUyNTJG
MjAwOCUyNTJGMTElMjUyRjEwJTI1MkZoZWFsdGglMjUyRjEwaGVhcnQuaHRtbCUyNTNGX3IlMjUz
RDIlMjUyNnBhcnRuZXIlMjUzRHJzc255dCUyNTI2ZW1jJTI1M0Ryc3MlMjUyNm9yZWYlMjUzRHNs
b2dpbiUyNTI2b3JlZiUyNTNEc2xvZ2lu0i4vMDFYJGNsYXNzZXNaJGNsYXNzbmFtZaIxMlVOU1VS
TFhOU09iamVjdCNBrZH7CJ0jsxDI0w02Nzg5QFdOUy5rZXlzWk5TLm9iamVjdHOAFaY6Ozw9Pj+A
CYAKgAuADIANgA6mQUJDREVGgA+AEIARgBKAE4AUU1AzcFxDb250ZW50LVR5cGVdQ2FjaGUtQ29u
dHJvbF5Db250ZW50LUxlbmd0aFZQcmFnbWFaU2V0LUNvb2tpZV8QQUNQPSJOT0kgRFNQIENPUiBM
QVcgQ1VSYSBERVZhIFRBSWEgUFNBYSBQU0RhIE9VUiBCVVMgVU5JIENPTSBOQVYiXxAYYXBwbGlj
YXRpb24veC1qYXZhc2NyaXB0XxAScHJpdmF0ZSwgbWF4LWFnZT0wUzM0M1huby1jYWNoZV8RASg3
NzE3OTg3NT1fNDkxOGM2MDQsOTAyODM3ODEwMyw3MzgxMTdeNjE2MTY5XjgxXjAsMV87IGRvbWFp
bj0uYWR2ZXJ0aXNpbmcuY29tOyBwYXRoPS9jbGljaywgQzI9RVlNR0pCOyBkb21haW49LmFkdmVy
dGlzaW5nLmNvbTsgcGF0aD0vOyBleHBpcmVzPVNhdHVyZGF5LCA5LU5vdi0yMDEzIDIzOjM4OjQ0
IEdNVCwgRjE9QlFneFlra0FBQUFBRk4wQ0FFQUFnRUFCQUFBQUJBQUFBRUFBZ0VBOyBkb21haW49
LmFkdmVydGlzaW5nLmNvbTsgcGF0aD0vOyBleHBpcmVzPVNhdHVyZGF5LCA5LU5vdi0yMDEzIDIz
OjM4OjQ0IEdNVNIuL1RVo1VWMl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5EQFX
0i4vWVqjWlsyXxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGgAfACkAMgA3
ADoAUABSAGQAfwCFAKAApwCqAK0AsQC1ALgAuwC+AMEAxADHAMoAzQDPANEA0wDVANcA2QDbAN0A
3wDhAOMA5QDsAPQBAAECAQQBBgJSAlcCYAJrAm4CdAJ9AoYCiAKPApcCogKkAqsCrQKvArECswK1
ArcCvgLAAsICxALGAsgCygLOAtsC6QL4Av8DCgNOA2kDfgOCA4sEtwS8BMAE1gTjBOYE6wTvBQMA
AAAAAAACAQAAAAAAAABcAAAAAAAAAAAAAAAAAAAFEU8RAVd2YXIgQURTRVJWRVJfUE9QU19WQUw9
MDsKZG9jdW1lbnQud3JpdGVsbignPCEtLSBCRUdJTiBTVEFOREFSRCBUQUcgLSAzMDAgeCAyNTAg
LSBBZC5jb20gRGVmYXVsdHM6IFRpZXIgMV9EZWZhdWx0IC0gRE8gTk9UIE1PRElGWSAtLT5cclxu
PElGUkFNRSBGUkFNRUJPUkRFUj0wIE1BUkdJTldJRFRIPTAgTUFSR0lOSEVJR0hUPTAgU0NST0xM
SU5HPU5PIFdJRFRIPTMwMCBIRUlHSFQ9MjUwIFNSQz0iaHR0cDpcL1wvYWQueWllbGRtYW5hZ2Vy
LmNvbVwvc3Q/YWRfdHlwZT1pZnJhbWUmYWRfc2l6ZT0zMDB4MjUwJnNlY3Rpb249NDE1NjIyIj48
XC9JRlJBTUU+XHJcbjwhLS0gRU5EIFRBRyAtLT5cclxuJyk7oQGg0wABAAIAAwGhAaUBqtUABQAG
AAcACAAJAaIACwAMAaMBpF8QS2h0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL3N0P2FkX3R5cGU9
aWZyYW1lJmFkX3NpemU9MzAweDI1MCZzZWN0aW9uPTQxNTYyMk8RE2c8aHRtbD48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+LyogQWxsIHBvcnRpb25zIG9mIHRoaXMgc29mdHdhcmUgYXJl
IGNvcHlyaWdodCAoYykgMjAwMy0yMDA2IFJpZ2h0IE1lZGlhKi92YXIgcm1fYmFuX2ZsYXNoPTA7
dmFyIHJtX3VybD0iIjt2YXIgcm1fcG9wX2ZyZXF1ZW5jeT0wO3ZhciBybV9wb3BfaWQ9MDt2YXIg
cm1fcG9wX3RpbWVzPTA7dmFyIHJtX3BvcF9ub2ZyZXFjYXA9MDt2YXIgcm1fcGFzc2JhY2s9MDt2
YXIgcm1fdGFnX3R5cGU9IiI7cm1fdGFnX3R5cGUgPSAiaWZyYW1lIjsgcm1fdXJsID0gImh0dHA6
Ly9hZC55aWVsZG1hbmFnZXIuY29tL2ltcD9aPTMwMHgyNTAmcz00MTU2MjImX3NhbHQ9MzU0NjY0
OTYyNiI7dmFyIFJNX1BPUF9DT09LSUVfTkFNRT0neW1fcG9wX2ZyZXEnO3ZhciBSTV9JTlRfQ09P
S0lFX05BTUU9J3ltX2ludF9mcmVxJztpZighd2luZG93LnJtX2NyZXhfZGF0YSl7cm1fY3JleF9k
YXRhPW5ldyBBcnJheSgpO31pZihybV9wYXNzYmFjaz09MCl7cm1fcGJfZGF0YT1uZXcgQXJyYXko
KTtpZihybV9jcmV4X2RhdGEubGVuZ3RoPjApe3JtX3VybCs9IiZYPSI7Zm9yKHZhciBpPTA7aTxy
bV9jcmV4X2RhdGEubGVuZ3RoO2krKyl7cm1fdXJsKz1ybV9jcmV4X2RhdGFbaV07aWYoaSE9cm1f
Y3JleF9kYXRhLmxlbmd0aC0xKXtybV91cmwrPSIsIjt9fX19ZWxzZXtybV9wYl9kYXRhLnB1c2go
cm1fY3JleF9kYXRhLnBvcCgpKTtybV91cmwrPSImWD0iO2Zvcih2YXIgaT0wO2k8cm1fcGJfZGF0
YS5sZW5ndGg7aSsrKXtybV91cmwrPXJtX3BiX2RhdGFbaV07aWYoaSE9cm1fcGJfZGF0YS5sZW5n
dGgtMSl7cm1fdXJsKz0iLCI7fX1ybV91cmwrPSImWT1wYiI7fXZhciBmbGFzaD1uZXcgT2JqZWN0
KCk7Zmxhc2g9Zmxhc2hEZXRlY3Rpb24oKTtpZihjb29raWVzRW5hYmxlZCgpKXtybV91cmwrPShm
bGFzaC5pbnN0YWxsZWQ/IiZCPTEwIjoiJkI9MTIiKTt9ZWxzZXtybV91cmwrPShmbGFzaC5pbnN0
YWxsZWQ/IiZCPTExIjoiJkI9MTMiKTt9aWYoIWZsYXNoLmluc3RhbGxlZHx8cm1fYmFuX2ZsYXNo
PT0xKXtybV91cmwrPSImbT0yIjt9dmFyIHVybD0nJzt0cnl7aWYocm1fdGFnX3R5cGU9PSJhZCIp
e2lmKHRvcD09c2VsZil7dXJsPWVuY29kZVVSSUNvbXBvbmVudCh0b3AubG9jYXRpb24uaHJlZik7
dXJsPXVybC5zdWJzdHIoMCwyNTYpO3JtX3VybCs9IiZ1PSIrdXJsO319ZWxzZSBpZihybV90YWdf
dHlwZT09ImlmcmFtZSIpe3VybD1lbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIp
O3VybD11cmwuc3Vic3RyKDAsMjU2KTtybV91cmwrPSImdT0iK3VybDt9fWNhdGNoKGUpe31pZih0
b3A9PXNlbGYpe3JtX3VybCs9IiZyPTEiO31lbHNle3JtX3VybCs9IiZyPTAiO312YXIgcm1fdGFn
X3NyYz0nPFNDUklQVCBUWVBFPSJ0ZXh0L2phdmFzY3JpcHQiIFNSQz0iJytybV91cmwrJyI+PFwv
U0NSSVBUPic7aWYocm1fcG9wX2ZyZXF1ZW5jeSl7aWYocm1DYW5TaG93UG9wKHJtX3BvcF9pZCxy
bV9wb3BfdGltZXMscm1fcG9wX2ZyZXF1ZW5jeSl8fHJtX3BvcF9ub2ZyZXFjYXApe2RvY3VtZW50
LndyaXRlKHJtX3RhZ19zcmMpO319ZWxzZXtkb2N1bWVudC53cml0ZShybV90YWdfc3JjKTt9ZnVu
Y3Rpb24gY29va2llc0VuYWJsZWQoKXt2YXIgY29va2llRW5hYmxlZD0obmF2aWdhdG9yLmNvb2tp
ZUVuYWJsZWQpP3RydWU6ZmFsc2U7aWYodHlwZW9mIG5hdmlnYXRvci5jb29raWVFbmFibGVkPT0i
dW5kZWZpbmVkIiYmIWNvb2tpZUVuYWJsZWQpe2RvY3VtZW50LmNvb2tpZT0idGVzdGNvb2tpZSI7
Y29va2llRW5hYmxlZD0oZG9jdW1lbnQuY29va2llLmluZGV4T2YoInRlc3Rjb29raWUiKSE9LTEp
P3RydWU6ZmFsc2U7fXJldHVybiBjb29raWVFbmFibGVkO31mdW5jdGlvbiBybUdldENvb2tpZShO
YW1lKXt2YXIgc2VhcmNoPU5hbWUrIj0iO3ZhciBDb29raWVTdHJpbmc9ZG9jdW1lbnQuY29va2ll
O3ZhciByZXN1bHQ9bnVsbDtpZihDb29raWVTdHJpbmcubGVuZ3RoPjApe29mZnNldD1Db29raWVT
dHJpbmcuaW5kZXhPZihzZWFyY2gpO2lmKG9mZnNldCE9LTEpe29mZnNldCs9c2VhcmNoLmxlbmd0
aDtlbmQ9Q29va2llU3RyaW5nLmluZGV4T2YoIjsiLG9mZnNldCk7aWYoZW5kPT0tMSl7ZW5kPUNv
b2tpZVN0cmluZy5sZW5ndGg7fXJlc3VsdD11bmVzY2FwZShDb29raWVTdHJpbmcuc3Vic3RyaW5n
KG9mZnNldCxlbmQpKTt9fXJldHVybiByZXN1bHQ7fWZ1bmN0aW9uIGZsYXNoRGV0ZWN0aW9uKCl7
dmFyIGZsYXNoPW5ldyBPYmplY3QoKTtmbGFzaC5pbnN0YWxsZWQ9ZmFsc2U7Zmxhc2gudmVyc2lv
bj0nMC4wJztpZihuYXZpZ2F0b3IucGx1Z2lucyYmbmF2aWdhdG9yLnBsdWdpbnMubGVuZ3RoKXtm
b3IoeD0wO3g8bmF2aWdhdG9yLnBsdWdpbnMubGVuZ3RoO3grKyl7aWYobmF2aWdhdG9yLnBsdWdp
bnNbeF0ubmFtZS5pbmRleE9mKCdTaG9ja3dhdmUgRmxhc2gnKSE9LTEpe2ZsYXNoLnZlcnNpb249
bmF2aWdhdG9yLnBsdWdpbnNbeF0uZGVzY3JpcHRpb24uc3BsaXQoJ1Nob2Nrd2F2ZSBGbGFzaCAn
KVsxXTtmbGFzaC5pbnN0YWxsZWQ9dHJ1ZTticmVhazt9fX1lbHNlIGlmKHdpbmRvdy5BY3RpdmVY
T2JqZWN0KXtmb3IoeD0yO3g8MTA7eCsrKXt0cnl7b0ZsYXNoPWV2YWwoIm5ldyBBY3RpdmVYT2Jq
ZWN0KCdTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaC4iK3grIicpOyIpO2lmKG9GbGFzaCl7
Zmxhc2guaW5zdGFsbGVkPXRydWU7Zmxhc2gudmVyc2lvbj14KycuMCc7fX1jYXRjaChlKXt9fX1y
ZXR1cm4gZmxhc2g7fWZ1bmN0aW9uIHJtUmVwbGFjZShteVN0cmluZyx0b1JlcGxhY2UscmVwbGFj
ZUJ5KXtyZXR1cm4obXlTdHJpbmcucmVwbGFjZShuZXcgUmVnRXhwKHRvUmVwbGFjZSwnZ2knKSxy
ZXBsYWNlQnkpKTt9ZnVuY3Rpb24gd3JpdGVDb29raWUoY2tOYW1lLGNrVmFsKXt2YXIgbnVtZGF5
cz0xNDt2YXIgdG9kYXk9bmV3IERhdGUoKTt2YXIgZXhwaXJlcz1uZXcgRGF0ZSgpO2V4cGlyZXMu
c2V0VGltZSh0b2RheS5nZXRUaW1lKCkrKDEwMDAqNjAqNjAqMjQqbnVtZGF5cykpO3ZhciBjb29r
aWVUZXh0PWNrTmFtZSsiPSIrY2tWYWwrIjtleHBpcmVzPSIrZXhwaXJlcy50b0dNVFN0cmluZygp
KyI7cGF0aD0vOyI7ZG9jdW1lbnQuY29va2llPWNvb2tpZVRleHQ7cmV0dXJuIG51bGw7fWZ1bmN0
aW9uIHJtQ2FuU2hvd1BvcChybV9wb3BfaWQscG9wX3RpbWVzLHBvcF9mcmVxdWVuY3kpe3ZhciBj
b3VudENvb2tpZU5hbWU9Uk1fUE9QX0NPT0tJRV9OQU1FK3JtX3BvcF9pZDt2YXIgZXhwaXJlQ29v
a2llTmFtZT1STV9QT1BfQ09PS0lFX05BTUUrIl9leHBpcmF0aW9uIitybV9wb3BfaWQ7dmFyIHNo
b3duVGltZXM9cm1HZXRDb29raWUoY291bnRDb29raWVOYW1lKTtpZihzaG93blRpbWVzPT1udWxs
KXtybVdyaXRlRXhwaXJhdGlvbkNvb2tpZShleHBpcmVDb29raWVOYW1lLHBvcF9mcmVxdWVuY3kp
O3Nob3duVGltZXM9MDt9ZWxzZXtzaG93blRpbWVzPU51bWJlcihzaG93blRpbWVzKTt9aWYoc2hv
d25UaW1lczxwb3BfdGltZXMpe3Nob3duVGltZXM9MStzaG93blRpbWVzO3ZhciBleHBpcmF0aW9u
PXJtR2V0Q29va2llKGV4cGlyZUNvb2tpZU5hbWUpO3JtV3JpdGVQb3BGcmVxdWVuY3lDb29raWUo
cm1fcG9wX2lkLHNob3duVGltZXMsZXhwaXJhdGlvbik7cmV0dXJuX3ZhbHVlPXRydWU7fWVsc2V7
cmV0dXJuX3ZhbHVlPWZhbHNlO31yZXR1cm4gcmV0dXJuX3ZhbHVlO31mdW5jdGlvbiBybVdyaXRl
UG9wRnJlcXVlbmN5Q29va2llKHJtX3BvcF9pZCxzaG93blRpbWVzLGV4cGlyYXRpb24pe3ZhciBj
b29raWVOYW1lPVJNX1BPUF9DT09LSUVfTkFNRStybV9wb3BfaWQ7dmFyIGNvb2tpZVRleHQ9Y29v
a2llTmFtZSsiPSIrc2hvd25UaW1lcysiOyIrImV4cGlyZXM9IitleHBpcmF0aW9uKyI7cGF0aD0v
OyI7ZG9jdW1lbnQuY29va2llPWNvb2tpZVRleHQ7fWZ1bmN0aW9uIHJtV3JpdGVFeHBpcmF0aW9u
Q29va2llKGNvb2tpZU5hbWUsZnJlcXVlbmN5KXt2YXIgdG9kYXk9bmV3IERhdGUoKTt2YXIgZXhw
aXJlcz1uZXcgRGF0ZSgpO2V4cGlyZXMuc2V0VGltZSh0b2RheS5nZXRUaW1lKCkrKDEwMDAqZnJl
cXVlbmN5KSk7dmFyIGNvb2tpZVRleHQ9Y29va2llTmFtZSsiPSIrZXhwaXJlcy50b0dNVFN0cmlu
ZygpKyI7IisiZXhwaXJlcz0iK2V4cGlyZXMudG9HTVRTdHJpbmcoKSsiO3BhdGg9LzsiO2RvY3Vt
ZW50LmNvb2tpZT1jb29raWVUZXh0O308L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJodHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9pbXA/Wj0zMDB4MjUwJmFtcDtz
PTQxNTYyMiZhbXA7X3NhbHQ9MzU0NjY0OTYyNiZhbXA7Qj0xMCZhbXA7dT1odHRwJTNBJTJGJTJG
d3d3Lm55dGltZXMuY29tJTJGYWRzJTJGYWR2ZXJ0aXNpbmdjb20lMkZyZXZfQWRjb21fMzAweDI1
MF90aWVyMS5odG1sJmFtcDtyPTAiPjwvc2NyaXB0Pjxib2R5IG1hcmdpbndpZHRoPSIwIiBtYXJn
aW5oZWlnaHQ9IjAiPjxpZnJhbWUgc2Nyb2xsaW5nPSJubyIgbWFyZ2lud2lkdGg9IjAiIG1hcmdp
bmhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIGhlaWdodD0iMjUwIiB3aWR0aD0iMzAwIiBzcmM9
Imh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2lmcmFtZTM/cGdJQUFJWlhCZ0QwLnhFQUExUUdB
QUlBQUFBQUFQOEFBQUFDRUFJQUFnSi0zQWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQU0zTXpNek16T3cuemN6TXpNek03RC5Oek16TXpNenNQODNNek16TXpPdy5BQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
UjdoNmtJU3FZUVdENjZQOHhlM3Z3LkR2bG1ESHcxZTZjWWV0dEFBQUFBQT0sLGh0dHA6Ly93d3cu
bnl0aW1lcy5jb20vYWRzL2FkdmVydGlzaW5nY29tL3Jldl9hZGNvbV8zMDB4MjUwX3RpZXIxLmh0
bWwiPjwvaWZyYW1lPjxub3NjcmlwdD48L25vc2NyaXB0Pgo8L2JvZHk+PC9odG1sPl8QLjwhLS1m
cmFtZVBhdGggLy88IS0tZnJhbWUzLS0+LzwhLS1mcmFtZTAtLT4tLT6hAabUAAUAEQAHAAgBpwGo
ABQBqV8QoGh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2ltcD9aPTMwMHgyNTAmcz00MTU2MjIm
X3NhbHQ9MzU0NjY0OTYyNiZCPTEwJnU9aHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVzLmNvbSUyRmFk
cyUyRmFkdmVydGlzaW5nY29tJTJGcmV2X0FkY29tXzMwMHgyNTBfdGllcjEuaHRtbCZyPTBPEQWh
YnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEH
CF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QHwsMIigpLzAxMkxN
Tk9QUVJTVFVWV1hZWltYXF1eX2NVJG51bGzbDQ4PEBESExQVFhcYGRobHB0eHyAaIVYkY2xhc3NS
JDNSJDhSJDVSJDZSJDRSJDdSJDJSJDlSJDBSJDGAHoACEAiABoAHgAWACBAFEAAQAdMNIyQlJidX
TlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QoGh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2lt
cD9aPTMwMHgyNTAmcz00MTU2MjImX3NhbHQ9MzU0NjY0OTYyNiZCPTEwJnU9aHR0cCUzQSUyRiUy
Rnd3dy5ueXRpbWVzLmNvbSUyRmFkcyUyRmFkdmVydGlzaW5nY29tJTJGcmV2X0FkY29tXzMwMHgy
NTBfdGllcjEuaHRtbCZyPTDSKissLVgkY2xhc3Nlc1okY2xhc3NuYW1loi0uVU5TVVJMWE5TT2Jq
ZWN0I0GtkfsIv+qjEAIQyNMNMzQ1NkFXTlMua2V5c1pOUy5vYmplY3RzgB2qNzg5Ojs8PT4/QIAJ
gAqAC4AMgA2ADoAPgBCAEYASqkJDREVGR0hJSkuAE4AUgBWAFoAXgBiAGYAagBuAHFNQM3BdQ2Fj
aGUtQ29udHJvbF1MYXN0LU1vZGlmaWVkVlByYWdtYVZTZXJ2ZXJcQ29udGVudC1UeXBlVERhdGVe
Q29udGVudC1MZW5ndGhaQ29ubmVjdGlvblpTZXQtQ29va2llXxBjcG9saWN5cmVmPSIvdzNjL3Az
cC54bWwiLCBDUD0iTk9JIERTUCBDT1IgTklEIENVUmEgQURNYSBERVZhIFBTQWEgUFNEYSBPVVIg
QlVTIENPTSBJTlQgT1RDIFBVUiBTVEEiWG5vLXN0b3JlXxAdTW9uLCAxMCBOb3YgMjAwOCAyMzoz
ODo0NCBHTVRYbm8tY2FjaGVfEBpybWFzLXNlcnZlci1jb3JlLWx6MS8zLjYuMF8QGGFwcGxpY2F0
aW9uL3gtamF2YXNjcmlwdFM2NTVVY2xvc2VfEOhmbF9pbnN0PTE7IHBhdGg9LzsgZXhwaXJlcz1T
YXQsIDA5LU1heS0yMDA5IDIzOjM4OjQ0IEdNVCwgdWlkPXVpZD1iNjdlODg4OC1hZjgwLTExZGQt
ODIyOC0wMDFjYzRhNThjYzAmX2htYWN2PTEmX3NhbHQ9MjI0NDExODkyNSZfa2V5aWQ9azEmX2ht
YWM9ZjE3OWMzMzFiYmJjMDI5NTdkOWE2OTA0OWI4MmFlZDE1ZGE4ODRiMzsgcGF0aD0vOyBleHBp
cmVzPVdlZCwgMTAtRGVjLTIwMDggMjM6Mzg6NDQgR01U0iorYGGjYWIuXxATTlNNdXRhYmxlRGlj
dGlvbmFyeVxOU0RpY3Rpb25hcnnSKitkZaNlZi5fEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJl
c3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZACGAIwAowCqAK0AsACzALYAuQC8AL8AwgDFAMgA
ygDMAM4A0ADSANQA1gDYANoA3ADjAOsA9wD5APsA/QGgAaUBrgG5AbwBwgHLAdQB1gHYAd8B5wHy
AfQB/wIBAgMCBQIHAgkCCwINAg8CEQITAh4CIAIiAiQCJgIoAioCLAIuAjACMgI2AkQCUgJZAmAC
bQJyAoECjAKXAv0DBgMmAy8DTANnA2sDcQRcBGEEZQR7BIgEjQSRBKUAAAAAAAACAQAAAAAAAABn
AAAAAAAAAAAAAAAAAAAEs08RAo9kb2N1bWVudC53cml0ZSgnPGlmcmFtZSBzY3JvbGxpbmc9XCJu
b1wiIG1hcmdpbndpZHRoPVwiMFwiIG1hcmdpbmhlaWdodD1cIjBcIiBmcmFtZWJvcmRlcj1cIjBc
IiBoZWlnaHQ9XCIyNTBcIiB3aWR0aD1cIjMwMFwiIHNyYz1cImh0dHA6Ly9hZC55aWVsZG1hbmFn
ZXIuY29tL2lmcmFtZTM/cGdJQUFJWlhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFn
Si0zQWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU0zTXpNek16T3cuemN6
TXpNek03RC5Oek16TXpNenNQODNNek16TXpPdy5BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUjdoNmtJU3FZUVdENjZQOHhlM3Z3
LkR2bG1ESHcxZTZjWWV0dEFBQUFBQT0sLGh0dHA6Ly93d3cubnl0aW1lcy5jb20vYWRzL2FkdmVy
dGlzaW5nY29tL3Jldl9hZGNvbV8zMDB4MjUwX3RpZXIxLmh0bWxcIj48L2lmcmFtZT4nKTsKdmFy
IHJtX2RhdGEgPSBuZXcgT2JqZWN0KCk7CnJtX2RhdGEuY3JlYXRpdmVfaWQgPSAxMTc5NjM2Owpy
bV9kYXRhLm9mZmVyX3R5cGUgPSAzNzsKcm1fZGF0YS5lbnRpdHlfaWQgPSA5OTg3NzsKaWYgKHdp
bmRvdy5ybV9jcmV4X2RhdGEpIHtybV9jcmV4X2RhdGEucHVzaCgxMTc5NjM2KTt9oQGr0gABAAMB
rAGw1QAFAAYABwAIAAkBrQALAAwBrgGvXxEBV2h0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2lm
cmFtZTM/cGdJQUFJWlhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSi0zQWdBc25J
SkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU0zTXpNek16T3cuemN6TXpNek03RC5O
ek16TXpNenNQODNNek16TXpPdy5BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUjdoNmtJU3FZUVdENjZQOHhlM3Z3LkR2bG1ESHcx
ZTZjWWV0dEFBQUFBQT0sLGh0dHA6Ly93d3cubnl0aW1lcy5jb20vYWRzL2FkdmVydGlzaW5nY29t
L3Jldl9hZGNvbV8zMDB4MjUwX3RpZXIxLmh0bWxPEQLEPGh0bWw+PGJvZHkgc3R5bGU9Im1hcmdp
bi1sZWZ0OiAwJTsgbWFyZ2luLXJpZ2h0OiAwJTsgbWFyZ2luLXRvcDogMCU7IG1hcmdpbi1ib3R0
b206IDAlIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+aWYgKHdpbmRvdy5ybV9jcmV4X2RhdGEpIHtybV9jcmV4X2RhdGEucHVz
aCgxMTc5NjM2KTt9Cjwvc2NyaXB0PjxpZnJhbWUgc3JjPSJodHRwOi8vdmlldy5hdGRtdC5jb20v
QVBNL2l2aWV3L253eXJrZHJ2MDAxMDAwMTQzNGFwbS9kaXJlY3Q7d2kuMzAwO2hpLjI1MC8wMS8x
MjI2MzYwMzI0P2NsaWNrPWh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2NsaWNrLHBnSUFBSVpY
QmdEMC54RUFBMVFHQUFJQUFBQUFBUDhBQUFBQ0VBSUFBZ0otM0FnQXNuSUpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBVEdHRWtBQUFBQSwsaHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVz
LmNvbSUyRmFkcyUyRmFkdmVydGlzaW5nY29tJTJGcmV2X2FkY29tXzMwMHgyNTBfdGllcjEuaHRt
bCwiIGZyYW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIiBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdp
bndpZHRoPSIwIiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIGFsbG93dHJhbnNwYXJlbmN5
PSJ0cnVlIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjI1MCI+PC9pZnJhbWU+CjwvYm9keT48L2h0bWw+
XxA8PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTMtLT4vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUw
LS0+LS0+oQGx0gABAAIBsgG21QAFAAYABwAIAAkBswALAAwBtAG1XxEBNWh0dHA6Ly92aWV3LmF0
ZG10LmNvbS9BUE0vaXZpZXcvbnd5cmtkcnYwMDEwMDAxNDM0YXBtL2RpcmVjdDt3aS4zMDA7aGku
MjUwLzAxLzEyMjYzNjAzMjQ/Y2xpY2s9aHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vY2xpY2ss
cGdJQUFJWlhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSi0zQWdBc25JSkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFBLCxodHRwJTNBJTJGJTJGd3d3
Lm55dGltZXMuY29tJTJGYWRzJTJGYWR2ZXJ0aXNpbmdjb20lMkZyZXZfYWRjb21fMzAweDI1MF90
aWVyMS5odG1sLE8RH3g8aHRtbD48aGVhZD4KPHRpdGxlPjIwMDhfSG9saWRheV9Xb21lbnNfR2Vu
ZXJhbF8zMDB4MjUwX0lGUi50cGw8L3RpdGxlPgo8bWV0YSBodHRwLWVxdWl2PSJleHBpcmVzIiBj
b250ZW50PSIwIj4KPG1ldGEgaHR0cC1lcXVpdj0iUHJhZ21hIiBjb250ZW50PSJuby1jYWNoZSI+
CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+IAp2
YXIgblJlcXVpcmVkVmVyc2lvbiA9IDg7IAp2YXIgYklzUmlnaHRWZXJzaW9uID0gZmFsc2U7CQp2
YXIgaXNJRSA9IChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNU0lFIikgIT0gLTEpID8g
dHJ1ZSA6IGZhbHNlOwp2YXIgaXNXaW4gPSAobmF2aWdhdG9yLmFwcFZlcnNpb24udG9Mb3dlckNh
c2UoKS5pbmRleE9mKCJ3aW4iKSAhPSAtMSkgPyB0cnVlIDogZmFsc2U7CnZhciBpc09wZXJhID0g
KG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiT3BlcmEiKSAhPSAtMSkgPyB0cnVlIDogZmFs
c2U7CmlmKGlzSUUgJiYgaXNXaW4pewpkb2N1bWVudC53cml0ZWxuKCc8U0NSJyArICdJUFQgTEFO
R1VBR0U9VkJTY3JpcHRcPicpOwpkb2N1bWVudC53cml0ZWxuKCdvbiBlcnJvciByZXN1bWUgbmV4
dCcpOwpkb2N1bWVudC53cml0ZWxuKCdTZXQgb0ZsYXNoUGxheWVyID0gQ3JlYXRlT2JqZWN0KCJT
aG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaC4iICYgblJlcXVpcmVkVmVyc2lvbiknKTsKZG9j
dW1lbnQud3JpdGVsbignSWYgSXNPYmplY3Qob0ZsYXNoUGxheWVyKSBUaGVuJyk7CmRvY3VtZW50
LndyaXRlbG4oJ2JJc1JpZ2h0VmVyc2lvbiA9IFRydWUnKTsKZG9jdW1lbnQud3JpdGVsbignRW5k
IElmJyk7CmRvY3VtZW50LndyaXRlbG4oJ0lmIChOb3QgYklzUmlnaHRWZXJzaW9uKSBBbmQgKG5S
ZXF1aXJlZFZlcnNpb24gPCAzKSBUaGVuJyk7CmRvY3VtZW50LndyaXRlbG4oJ1NldCBvRmxhc2hQ
bGF5ZXIgPSBDcmVhdGVPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIiknKTsK
ZG9jdW1lbnQud3JpdGVsbignSWYgSXNPYmplY3Qob0ZsYXNoUGxheWVyKSBUaGVuJyk7CmRvY3Vt
ZW50LndyaXRlbG4oJ2JJc1JpZ2h0VmVyc2lvbiA9IFRydWUnKTsKZG9jdW1lbnQud3JpdGVsbign
RW5kIElmJyk7CmRvY3VtZW50LndyaXRlbG4oJ0VuZCBJZicpOwpkb2N1bWVudC53cml0ZWxuKCc8
L1NDUicgKyAnSVBUXD4nKTsgCn0KZnVuY3Rpb24gQ2hlY2tTd2ZWZXIoKXsKaWYgKG5hdmlnYXRv
ci5wbHVnaW5zICE9IG51bGwgJiYgbmF2aWdhdG9yLnBsdWdpbnMubGVuZ3RoID4gMCkgewppZiAo
bmF2aWdhdG9yLnBsdWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCAyLjAiXSB8fCBuYXZpZ2F0b3IucGx1
Z2luc1siU2hvY2t3YXZlIEZsYXNoIl0pIHsKdmFyIHN3VmVyMiA9IG5hdmlnYXRvci5wbHVnaW5z
WyJTaG9ja3dhdmUgRmxhc2ggMi4wIl0gPyAiIDIuMCIgOiAiIjsKdmFyIGZsYXNoRGVzY3JpcHRp
b24gPSBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIiArIHN3VmVyMl0uZGVzY3Jp
cHRpb247CnZhciBkZXNjQXJyYXkgPSBmbGFzaERlc2NyaXB0aW9uLnNwbGl0KCIgIik7CnZhciB0
ZW1wQXJyYXlNYWpvciA9IGRlc2NBcnJheVsyXS5zcGxpdCgiLiIpOwkKdmFyIHZlcnNpb25NYWpv
ciA9IHRlbXBBcnJheU1ham9yWzBdOwpiSXNSaWdodFZlcnNpb24gPSAodmVyc2lvbk1ham9yID49
IG5SZXF1aXJlZFZlcnNpb24pOwp9Cn0KZWxzZSBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xv
d2VyQ2FzZSgpLmluZGV4T2YoIndlYnR2LzIuNiIpICE9IC0xKQp7CmJJc1JpZ2h0VmVyc2lvbiA9
ICg0ID49IG5SZXF1aXJlZFZlcnNpb24pOwp9CmVsc2UgaWYgKG5hdmlnYXRvci51c2VyQWdlbnQu
dG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJ0di8yLjUiKSAhPSAtMSkKewpiSXNSaWdodFZlcnNp
b24gPSAoMyA+PSBuUmVxdWlyZWRWZXJzaW9uKTsKfQplbHNlIGlmIChuYXZpZ2F0b3IudXNlckFn
ZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2VidHYiKSAhPSAtMSkgCnsKYklzUmlnaHRWZXJz
aW9uID0gKDIgPj0gblJlcXVpcmVkVmVyc2lvbik7Cn0KfQpmdW5jdGlvbiBkZXRlY3RGbGFzaExF
VjEyMjUxNTI0NjM2MjEoKSAKeyAKaWYgKCFiSXNSaWdodFZlcnNpb24pIHsKQ2hlY2tTd2ZWZXIo
KTsKfQp9CmRldGVjdEZsYXNoTEVWMTIyNTE1MjQ2MzYyMSgpOyAKIDwvc2NyaXB0Pgo8L2hlYWQ+
PGJvZHkgc3R5bGU9ImJvcmRlci13aWR0aDowcHg7bWFyZ2luOjBweDsiIGJnY29sb3I9IldoaXRl
IiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj4KPHNjcmlwdCBsYW5ndWFnZT0iSmF2
YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gCnZhciBfc3RyQ29udGVudExFVjEyMjUx
NTI0NjM2MjEgPSAnJzsKaWYoYklzUmlnaHRWZXJzaW9uKSAKeyAKdmFyIHN0ckZRRE4gPSAiSFRU
UDovL3NwZS5hdGRtdC5jb20vZHMvQUFBVkVMRVZJTEVWLyI7IAp2YXIgaW5kZXggPSBzdHJGUURO
LmluZGV4T2YoIi9kcy8iKTsKc3RyRlFETiA9IHN0ckZRRE4uc3Vic3RyaW5nKDAsIGluZGV4KTsK
X3N0ckNvbnRlbnRMRVYxMjI1MTUyNDYzNjIxID0gJycgKyAnPG9iamVjdCBjbGFzc2lkPSJjbHNp
ZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiIGNvZGViYXNlPSJIVFRQOi8v
ZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2gu
Y2FiIiBpZD0iaWRTV0ZMRVYxMjI1MTUyNDYzNjIxIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjI1MCI+
JworICc8cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSJIVFRQOi8vc3BlLmF0ZG10LmNvbS9kcy9B
QUFWRUxFVklMRVYvMjAwOEhvbGlkYXlGb2xkZXIyLzMwMF9Xb21lbnNfSG9saWRheV9nZW5lcmFs
LnN3Zj92ZXI9MSZjbGlja1RhZzE9aHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vY2xpY2sscGdJ
QUFJWlhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSi0zQWdBc25JSkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFBLCxodHRwJTNBJTJGJTJGd3d3Lm55
dGltZXMuY29tJTJGYWRzJTJGYWR2ZXJ0aXNpbmdjb20lMkZyZXZfYWRjb21fMzAweDI1MF90aWVy
MS5odG1sLGh0dHA6Ly9jbGsuYXRkbXQuY29tL2dvL253eXJrZHJ2MDAxMDAwMTQzNGFwbS9kaXJl
Y3Q7d2kuMzAwO2hpLjI1MDthaS40MTYwMjIxOC40MjIyMzgxMS41ODA4MjUyODtjdC4xLzAxJmNs
aWNrVGFnPWh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2NsaWNrLHBnSUFBSVpYQmdEMC54RUFB
MVFHQUFJQUFBQUFBUDhBQUFBQ0VBSUFBZ0otM0FnQXNuSUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBVEdHRWtBQUFBQSwsaHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVzLmNvbSUyRmFk
cyUyRmFkdmVydGlzaW5nY29tJTJGcmV2X2FkY29tXzMwMHgyNTBfdGllcjEuaHRtbCxodHRwOi8v
Y2xrLmF0ZG10LmNvbS9nby9ud3lya2RydjAwMTAwMDE0MzRhcG0vZGlyZWN0O3dpLjMwMDtoaS4y
NTA7YWkuNDE2MDIyMTguNDIyMjM4MTEuNTgwODI1Mjg7Y3QuMS8wMSIgLz4nCisgJzxwYXJhbSBu
YW1lPSJiYXNlIiB2YWx1ZT0iSFRUUDovL3NwZS5hdGRtdC5jb20vZHMvQUFBVkVMRVZJTEVWLzIw
MDhIb2xpZGF5Rm9sZGVyMi8iIC8+JworICc8cGFyYW0gbmFtZT0icXVhbGl0eSIgdmFsdWU9Imhp
Z2giIC8+JworICc8cGFyYW0gbmFtZT0ic2FsaWduIiB2YWx1ZT0ibHQiIC8+JworICc8cGFyYW0g
bmFtZT0ibG9vcCIgdmFsdWU9InRydWUiIC8+JworICc8cGFyYW0gbmFtZT0id21vZGUiIHZhbHVl
PSJvcGFxdWUiIC8+JworICc8cGFyYW0gbmFtZT0iYWxsb3dTY3JpcHRBY2Nlc3MiIHZhbHVlPSJh
bHdheXMiIC8+JworICc8ZW1iZWQgcXVhbGl0eT0iaGlnaCIgc2FsaWduPSJMVCIgbG9vcD0idHJ1
ZSIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHBsdWdpbnNwYWNlPSJIVFRQ
Oi8vd3d3Lm1hY3JvbWVkaWEuY29tL3Nob2Nrd2F2ZS9kb3dubG9hZC9pbmRleC5jZ2k/UDFfUHJv
ZF9WZXJzaW9uPVNob2Nrd2F2ZUZsYXNoIiBiYXNlPSJIVFRQOi8vc3BlLmF0ZG10LmNvbS9kcy9B
QUFWRUxFVklMRVYvMjAwOEhvbGlkYXlGb2xkZXIyLyIgd21vZGU9Im9wYXF1ZSIgc3JjPSJIVFRQ
Oi8vc3BlLmF0ZG10LmNvbS9kcy9BQUFWRUxFVklMRVYvMjAwOEhvbGlkYXlGb2xkZXIyLzMwMF9X
b21lbnNfSG9saWRheV9nZW5lcmFsLnN3Zj92ZXI9MSZjbGlja1RhZzE9aHR0cDovL2FkLnlpZWxk
bWFuYWdlci5jb20vY2xpY2sscGdJQUFJWlhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJ
QUFnSi0zQWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFB
LCxodHRwJTNBJTJGJTJGd3d3Lm55dGltZXMuY29tJTJGYWRzJTJGYWR2ZXJ0aXNpbmdjb20lMkZy
ZXZfYWRjb21fMzAweDI1MF90aWVyMS5odG1sLGh0dHA6Ly9jbGsuYXRkbXQuY29tL2dvL253eXJr
ZHJ2MDAxMDAwMTQzNGFwbS9kaXJlY3Q7d2kuMzAwO2hpLjI1MDthaS40MTYwMjIxOC40MjIyMzgx
MS41ODA4MjUyODtjdC4xLzAxJmNsaWNrVGFnPWh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL2Ns
aWNrLHBnSUFBSVpYQmdEMC54RUFBMVFHQUFJQUFBQUFBUDhBQUFBQ0VBSUFBZ0otM0FnQXNuSUpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVEdHRWtBQUFBQSwsaHR0cCUzQSUyRiUy
Rnd3dy5ueXRpbWVzLmNvbSUyRmFkcyUyRmFkdmVydGlzaW5nY29tJTJGcmV2X2FkY29tXzMwMHgy
NTBfdGllcjEuaHRtbCxodHRwOi8vY2xrLmF0ZG10LmNvbS9nby9ud3lya2RydjAwMTAwMDE0MzRh
cG0vZGlyZWN0O3dpLjMwMDtoaS4yNTA7YWkuNDE2MDIyMTguNDIyMjM4MTEuNTgwODI1Mjg7Y3Qu
MS8wMSIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIyNTAiIC8+JworICc8L29iamVjdD4nCisgJyc7Cn0g
CmVsc2UgCnsgCl9zdHJDb250ZW50TEVWMTIyNTE1MjQ2MzYyMSA9ICc8YSB0YXJnZXQ9Il9ibGFu
ayIgaHJlZj0iaHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vY2xpY2sscGdJQUFJWlhCZ0QwLnhF
QUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSi0zQWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFBLCxodHRwJTNBJTJGJTJGd3d3Lm55dGltZXMuY29tJTJG
YWRzJTJGYWR2ZXJ0aXNpbmdjb20lMkZyZXZfYWRjb21fMzAweDI1MF90aWVyMS5odG1sLGh0dHA6
Ly9jbGsuYXRkbXQuY29tL2dvL253eXJrZHJ2MDAxMDAwMTQzNGFwbS9kaXJlY3Q7d2kuMzAwO2hp
LjI1MDthaS40MTYwMjIxOC40MjIyMzgxMS41ODA4MjUyODtjdC4xLzAxIj48aW1nIGJvcmRlcj0i
MCIgc3JjPSJIVFRQOi8vc3BlLmF0ZG10LmNvbS9kcy9BQUFWRUxFVklMRVYvMjAwOEhvbGlkYXlG
b2xkZXIyLzMwMF9Xb21lbnNfSG9saWRheV9nZW5lcmFsLmpwZz92ZXI9MSIgd2lkdGg9IjMwMCIg
aGVpZ2h0PSIyNTAiIC8+PC9hPic7Cn0KPC9zY3JpcHQ+CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFT
Y3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJIVFRQOi8vcm1kLmF0ZG10LmNvbS90
bC9Eb2N1bWVudERvdFdyaXRlLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNj
cmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5Eb2N1bWVudERvdFdyaXRlKF9zdHJDb250ZW50
TEVWMTIyNTE1MjQ2MzYyMSk7Cjwvc2NyaXB0PjxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6RDI3Q0RC
NkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiBjb2RlYmFzZT0iSFRUUDovL2Rvd25sb2Fk
Lm1hY3JvbWVkaWEuY29tL3B1Yi9zaG9ja3dhdmUvY2Ficy9mbGFzaC9zd2ZsYXNoLmNhYiIgaWQ9
ImlkU1dGTEVWMTIyNTE1MjQ2MzYyMSIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIyNTAiPjxwYXJhbSBu
YW1lPSJtb3ZpZSIgdmFsdWU9IkhUVFA6Ly9zcGUuYXRkbXQuY29tL2RzL0FBQVZFTEVWSUxFVi8y
MDA4SG9saWRheUZvbGRlcjIvMzAwX1dvbWVuc19Ib2xpZGF5X2dlbmVyYWwuc3dmP3Zlcj0xJmFt
cDtjbGlja1RhZzE9aHR0cDovL2FkLnlpZWxkbWFuYWdlci5jb20vY2xpY2sscGdJQUFJWlhCZ0Qw
LnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFnSi0zQWdBc25JSkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFBLCxodHRwJTNBJTJGJTJGd3d3Lm55dGltZXMuY29t
JTJGYWRzJTJGYWR2ZXJ0aXNpbmdjb20lMkZyZXZfYWRjb21fMzAweDI1MF90aWVyMS5odG1sLGh0
dHA6Ly9jbGsuYXRkbXQuY29tL2dvL253eXJrZHJ2MDAxMDAwMTQzNGFwbS9kaXJlY3Q7d2kuMzAw
O2hpLjI1MDthaS40MTYwMjIxOC40MjIyMzgxMS41ODA4MjUyODtjdC4xLzAxJmFtcDtjbGlja1Rh
Zz1odHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9jbGljayxwZ0lBQUlaWEJnRDAueEVBQTFRR0FB
SUFBQUFBQVA4QUFBQUNFQUlBQWdKLTNBZ0FzbklKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQVRHR0VrQUFBQUEsLGh0dHAlM0ElMkYlMkZ3d3cubnl0aW1lcy5jb20lMkZhZHMlMkZh
ZHZlcnRpc2luZ2NvbSUyRnJldl9hZGNvbV8zMDB4MjUwX3RpZXIxLmh0bWwsaHR0cDovL2Nsay5h
dGRtdC5jb20vZ28vbnd5cmtkcnYwMDEwMDAxNDM0YXBtL2RpcmVjdDt3aS4zMDA7aGkuMjUwO2Fp
LjQxNjAyMjE4LjQyMjIzODExLjU4MDgyNTI4O2N0LjEvMDEiPjxwYXJhbSBuYW1lPSJiYXNlIiB2
YWx1ZT0iSFRUUDovL3NwZS5hdGRtdC5jb20vZHMvQUFBVkVMRVZJTEVWLzIwMDhIb2xpZGF5Rm9s
ZGVyMi8iPjxwYXJhbSBuYW1lPSJxdWFsaXR5IiB2YWx1ZT0iaGlnaCI+PHBhcmFtIG5hbWU9InNh
bGlnbiIgdmFsdWU9Imx0Ij48cGFyYW0gbmFtZT0ibG9vcCIgdmFsdWU9InRydWUiPjxwYXJhbSBu
YW1lPSJ3bW9kZSIgdmFsdWU9Im9wYXF1ZSI+PHBhcmFtIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNz
IiB2YWx1ZT0iYWx3YXlzIj48ZW1iZWQgcXVhbGl0eT0iaGlnaCIgc2FsaWduPSJMVCIgbG9vcD0i
dHJ1ZSIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHBsdWdpbnNwYWNlPSJI
VFRQOi8vd3d3Lm1hY3JvbWVkaWEuY29tL3Nob2Nrd2F2ZS9kb3dubG9hZC9pbmRleC5jZ2k/UDFf
UHJvZF9WZXJzaW9uPVNob2Nrd2F2ZUZsYXNoIiBiYXNlPSJIVFRQOi8vc3BlLmF0ZG10LmNvbS9k
cy9BQUFWRUxFVklMRVYvMjAwOEhvbGlkYXlGb2xkZXIyLyIgd21vZGU9Im9wYXF1ZSIgc3JjPSJI
VFRQOi8vc3BlLmF0ZG10LmNvbS9kcy9BQUFWRUxFVklMRVYvMjAwOEhvbGlkYXlGb2xkZXIyLzMw
MF9Xb21lbnNfSG9saWRheV9nZW5lcmFsLnN3Zj92ZXI9MSZhbXA7Y2xpY2tUYWcxPWh0dHA6Ly9h
ZC55aWVsZG1hbmFnZXIuY29tL2NsaWNrLHBnSUFBSVpYQmdEMC54RUFBMVFHQUFJQUFBQUFBUDhB
QUFBQ0VBSUFBZ0otM0FnQXNuSUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVEdH
RWtBQUFBQSwsaHR0cCUzQSUyRiUyRnd3dy5ueXRpbWVzLmNvbSUyRmFkcyUyRmFkdmVydGlzaW5n
Y29tJTJGcmV2X2FkY29tXzMwMHgyNTBfdGllcjEuaHRtbCxodHRwOi8vY2xrLmF0ZG10LmNvbS9n
by9ud3lya2RydjAwMTAwMDE0MzRhcG0vZGlyZWN0O3dpLjMwMDtoaS4yNTA7YWkuNDE2MDIyMTgu
NDIyMjM4MTEuNTgwODI1Mjg7Y3QuMS8wMSZhbXA7Y2xpY2tUYWc9aHR0cDovL2FkLnlpZWxkbWFu
YWdlci5jb20vY2xpY2sscGdJQUFJWlhCZ0QwLnhFQUExUUdBQUlBQUFBQUFQOEFBQUFDRUFJQUFn
Si0zQWdBc25JSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUR0dFa0FBQUFBLCxo
dHRwJTNBJTJGJTJGd3d3Lm55dGltZXMuY29tJTJGYWRzJTJGYWR2ZXJ0aXNpbmdjb20lMkZyZXZf
YWRjb21fMzAweDI1MF90aWVyMS5odG1sLGh0dHA6Ly9jbGsuYXRkbXQuY29tL2dvL253eXJrZHJ2
MDAxMDAwMTQzNGFwbS9kaXJlY3Q7d2kuMzAwO2hpLjI1MDthaS40MTYwMjIxOC40MjIyMzgxMS41
ODA4MjUyODtjdC4xLzAxIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjI1MCI+PC9vYmplY3Q+Cjxub3Nj
cmlwdD48L25vc2NyaXB0PgoKCjwvYm9keT48L2h0bWw+XxBKPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTMtLT4vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUwLS0+LzwhLS1mcmFtZTAtLT4tLT6hAbfU
AAUAEQAHAAgBuAG5ABQBul8QK0hUVFA6Ly9ybWQuYXRkbXQuY29tL3RsL0RvY3VtZW50RG90V3Jp
dGUuanNPEQOEYnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVj
dHMSAAGGoNEHCF8QE1dlYlJlc291cmNlUmVzcG9uc2WAAV8QD05TS2V5ZWRBcmNoaXZlcq8QGAsM
JiwtMx40NUdISUpLTE1OT1BRUlNXWFUkbnVsbN0NDg8QERITFBUWFxgZGhscHR4fICEiIyQdJVYk
Y2xhc3NSJDNSJDhTJDEwUyQxMVIkNVIkNlIkNFIkN1IkMlIkOVIkMFIkMYAXgAKAFhAIEACABoAH
gAWACBAHgAAQAdMNJygpJCtXTlMuYmFzZVtOUy5yZWxhdGl2ZYAEgACAA18QK2h0dHA6Ly9ybWQu
YXRkbXQuY29tL3RsL0RvY3VtZW50RG90V3JpdGUuanPSLi8wMVgkY2xhc3Nlc1okY2xhc3NuYW1l
ojEyVU5TVVJMWE5TT2JqZWN0I0GtkfsJ1DqoEMjTDTY3ODlAV05TLmtleXNaTlMub2JqZWN0c4AV
pjo7PD0+P4AJgAqAC4AMgA2ADqZBQkNERUaAD4AQgBGAEoATgBRcQ29udGVudC1UeXBlV0V4cGly
ZXNeQ29udGVudC1MZW5ndGhVQWxsb3dURGF0ZVpDb25uZWN0aW9uXxAYYXBwbGljYXRpb24veC1q
YXZhc2NyaXB0XxAdV2VkLCAxMiBOb3YgMjAwOCAwNTo1OTo0OCBHTVRSNTBTR0VUXxAdTW9uLCAx
MCBOb3YgMjAwOCAyMzozODo0NCBHTVRaa2VlcC1hbGl2ZdIuL1RVo1VWMl8QE05TTXV0YWJsZURp
Y3Rpb25hcnlcTlNEaWN0aW9uYXJ5EDLSLi9ZWqNaWzJfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VS
TFJlc3BvbnNlAAgAEQAaAB8AKQAyADcAOgBQAFIAZAB/AIUAoACnAKoArQCxALUAuAC7AL4AwQDE
AMcAygDNAM8A0QDTANUA1wDZANsA3QDfAOEA4wDlAOwA9AEAAQIBBAEGATQBOQFCAU0BUAFWAV8B
aAFqAXEBeQGEAYYBjQGPAZEBkwGVAZcBmQGgAaIBpAGmAagBqgGsAbkBwQHQAdYB2wHmAgECIQIk
AigCSAJTAlgCXAJyAn8CgQKGAooCngAAAAAAAAIBAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAKsTxAy
ZnVuY3Rpb24gRG9jdW1lbnREb3RXcml0ZShzKXtkb2N1bWVudC53cml0ZShzKTt9DQoAAAgAABUA
ACcAADkAAE8AAGQAAHMAAJEAAKcAALkAANAAATwAAUIAAUwBmToBmTsBmdIBmeMBmfkBmiUBnsEB
ntwBx5wBx60Bx+wBzJYB0iMB0jQB0nMB1x4B4bIB4cMB4gAB5qkB9o4B9p8B9t4B+4gCAxACAyEC
A2QCCAUCCA4CN/UCOAYCOEgCPOMCSFMCSGQCSJ4CTOsCdhkCdioCdmUCeq8Cgr4Cgs8CgvsChzcC
lu4Clv8ClzsCm4YCoUcCoVgCoaMCpf0CqwMCqxQCq1gCsAcCuyUCuzYCu38CwBcErMwErN0ErQ8E
sYgEulUEumYEupsEvwQEwlEEwmIEwqUEx0kFbj0Fbk4FbpAFc0EFh9AFh+EFiCMFjNAFkN0FkO4F
kSgFlagFmjEFmkIFmnwFnyYF6AEF6BYF6GAF6GsF7JwF7K4F7ssF7twF7wgF89IF9AQF9BUF9FUF
+EUF+E8F/YQF/ZUF/dEGAboGAcQGAoEGApIGAs8GBrwGDhUGDiYGDm8GEn0GEogGIskGItoGI7YG
KZQGLEgGLFkGLKIGMV8HZ/oHaAsHaE4HbKUIJpwIJq0IJvQIK0sIM6sIM7wIM/0IOFEItTYItUcI
tYkIud4JAzoJA0sJA5UJCCoJTicJTjgJTlgJUtMJawoJaxsJa20Jb3IJjNIJjOMJjTUJkTsJkUYJ
q5gJq6kJq/sJsBIJwF0JwG4JwV4Jx1AJygYJyhcJyl8JzloJ36oJ37sJ4AcJ5AcKFcIKFdMKFhQK
GgQKHUcKHVgKHZcKIYYKK1sKK2wKK7IKL6cKMYQKMZUKMdkKNdIKXSwKXT0KXZYKYaAKaZIKaaMK
ae0KbfwKfj8KflAKf0AKhcUKh0QKh1kKh5MKh5kKjEYLVKALVLULVwMLXTkLaHoLaI8LavsLcU8L
fUgLfVkLfaELgfwLnf0Lng4LnlgLok8LotULouYLoywLpx8Lp6QLp7ULqAgLrA8L0SUL0TYL0YAL
1XoL4wEL4xIL418L52AMCo0MCp4MCuIMDtoMNccMNdgMNhwMOhMMS5IMS6MMS/AMT/IMdxcMdygM
d20Me+oMhNIMhOMMhR8MicYMjboMjcsMjhQMknAMpRYMpScMpXAMqgQNQlINQmMNQq0NRwoNwoMN
wpQNwt4Nx3MOT6sOT7wOT/0OVKgOVxwOVy0OV2gOXBgQUwoQUxsQVG0QWoIQWq8QWsAQWzoQX98Q
YA8QYCAQYE0QZCYQZGwQZH0QZK4QaQMQaqYQarcQat4Qb+sQp/wQqA0QqFYQr30Qr9AQr9kQr+IQ
r/cQsXUQtywQt08Qt1YQt2cQt5EQu90Qw9sQw+wQxdAQyykQzPgQzQkQzUwQ0aIRBkkRBlIRBmcR
Bq8RDd0RDgARDgcRDhgRDikRDmgRElcRGWgRGXkRGb4RHbIRHywRHzkRH04RIMwRJSARJUMRJUgR
JVkRJYgRKiMRW70RW84RXHERYbURYxARYxMRYyARYzURY4MReEwReH0ReIAReJEReeMRgDcRg3oR
g30Rg4YRg5sRhaYRiRwRiVsRiV4RiWcRiXwRi2MRmuoRmzcRmzoRm0MRm1gRnZwRty8Rt4oRt40R
t54Rt8wRu+IRvwcRvxQRvykRv3IRwwsRwy4RwzMRw0QRw1URxKERyo4Ry+kRy+wRy/kRzA4RzFwR
38cR3/gR3/sR4AwR4K8R5lQR6OcR6OoR6PMR6QgR6mMR7SsR7WoR7W0R7XYR7YsR7sQSDkASDo0S
DpASDqESDs8SElcAAAAAAAADAgAAAAAAAAG7AAAAAAAAAAAAAAAAABISjA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25318</attachid>
            <date>2008-11-20 10:47:41 -0800</date>
            <delta_ts>2008-11-20 10:48:59 -0800</delta_ts>
            <desc>Patch to add tests</desc>
            <filename>recursion.diff</filename>
            <type>text/plain</type>
            <size>2308</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4NjIz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMTEt
MjAgIENhbWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisJCUFkZCB0ZXN0cyBmb3IgYnVnIDIyMTQ4OiBueXRp
bWUuY29tIHBhZ2UgY3Jhc2hlcyBicm93c2VyIGR1cmluZyBsb2FkCisJCTxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNDg+CisKKwkJVGhpcyBidWcgd2FzIHVua25v
d2luZ2x5IGZpeGVkIGluIHIzODMyMiBieSBhIHJld3JpdGUgb2YgdGhlIHJlY3Vyc2lvbgorCQls
aW1pdCBjb2RlLgorCisgICAgICAgICogZmFzdC9qcy9kZWVwLXJlY3Vyc2lvbi10ZXN0LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2RlZXAtcmVjdXJzaW9uLXRlc3QuaHRtbDoKKwog
MjAwOC0xMS0xOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGVsZSBQZXRlcnNvbi4KSW5kZXg6IGZhc3QvanMvZGVlcC1yZWN1
cnNpb24tdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZmFzdC9qcy9kZWVwLXJlY3Vy
c2lvbi10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzg2MjEpCisrKyBmYXN0L2pzL2RlZXAt
cmVjdXJzaW9uLXRlc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDYgKzUsOCBA
QAogCiBQQVNTIG1zZyBpcyAnUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhj
ZWVkZWQuJwogUEFTUyBtc2cgaXMgJ1JhbmdlRXJyb3I6IE1heGltdW0gY2FsbCBzdGFjayBzaXpl
IGV4Y2VlZGVkLicKK1BBU1MgbXNnIGlzICdSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sg
c2l6ZSBleGNlZWRlZC4nCitQQVNTIG1zZyBpcyAnUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0
YWNrIHNpemUgZXhjZWVkZWQuJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCkluZGV4OiBmYXN0L2pzL2RlZXAtcmVjdXJzaW9uLXRlc3QuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBmYXN0L2pzL2RlZXAtcmVjdXJzaW9uLXRlc3QuaHRtbAkocmV2aXNpb24gMzg2
MjEpCisrKyBmYXN0L2pzL2RlZXAtcmVjdXJzaW9uLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNiArMzUsMzUgQEAKICAgICAgICAgc2hvdWxkQmUoIm1zZyIsICInUmFuZ2VFcnJvcjog
TWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuJyIpOwogICAgIH0KIAorICAgIHZhciB0
b29GZXdBcmdzRGVwdGggPSAwOworCisgICAgZnVuY3Rpb24gdG9vRmV3QXJnc1JlY3Vyc2lvbihh
KSB7CisgICAgICAgIGlmICh0b29GZXdBcmdzRGVwdGgpIHsKKyAgICAgICAgICAgIHRvb0Zld0Fy
Z3NEZXB0aC0tOworICAgICAgICAgICAgdG9vRmV3QXJnc1JlY3Vyc2lvbigpOworICAgICAgICB9
CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgdG9vRmV3QXJnc0RlcHRoID0gMTAwMDAwMDA7
CisgICAgICAgIHRvb0Zld0FyZ3NSZWN1cnNpb24oKTsKKyAgICB9IGNhdGNoIChleCkgeworICAg
ICAgICB2YXIgbXNnID0gU3RyaW5nKGV2YWwoZXgpKTsKKyAgICAgICAgc2hvdWxkQmUoIm1zZyIs
ICInUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuJyIpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHRvb01hbnlBcmdzUmVjdXJzaW9uKGRlcHRoKSB7CisgICAgICAg
IGlmIChkZXB0aCkKKyAgICAgICAgICAgIHRvb01hbnlBcmdzUmVjdXJzaW9uKGRlcHRoIC0gMSwg
MSk7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgdG9vTWFueUFyZ3NSZWN1cnNpb24oMTAw
MDAwMDAsIDEpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIHZhciBtc2cgPSBTdHJpbmco
ZXZhbChleCkpOworICAgICAgICBzaG91bGRCZSgibXNnIiwgIidSYW5nZUVycm9yOiBNYXhpbXVt
IGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4nIik7CisgICAgfQorCiAgICAgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKIAogPC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="11717"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>