<?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>92575</bug_id>
          
          <creation_ts>2012-07-28 00:59:13 -0700</creation_ts>
          <short_desc>run-perf-tests should generate a results page</short_desc>
          <delta_ts>2012-07-29 15:03:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77037</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>haraken</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>681371</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 00:59:13 -0700</bug_when>
    <thetext>Right now, run-perf-tests doesn&apos;t provide a results page to view results.
Given that one of common workflow is to performance tests before and after applying a patch and comparing results,
run-perf-tests should generate a results page, and ideally provide a way to compare results from different runs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681376</commentid>
    <comment_count>1</comment_count>
      <attachid>155120</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 01:38:02 -0700</bug_when>
    <thetext>Created attachment 155120
Screenshot of current results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681377</commentid>
    <comment_count>2</comment_count>
      <attachid>155121</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 01:56:53 -0700</bug_when>
    <thetext>Created attachment 155121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681380</commentid>
    <comment_count>3</comment_count>
      <attachid>155123</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 02:02:06 -0700</bug_when>
    <thetext>Created attachment 155123
Sample results page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681382</commentid>
    <comment_count>4</comment_count>
      <attachid>155124</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 02:23:11 -0700</bug_when>
    <thetext>Created attachment 155124
Use the same filename as the output JSON</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681383</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 02:24:16 -0700</bug_when>
    <thetext>Dear reviewers: the patch is actually quite small. It&apos;s bloated by the flot and flot.fillbetween.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681384</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-28 02:25:43 -0700</bug_when>
    <thetext>Attachment 155124 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;PerformanceTests/ChangeLog&apos;, u&apos;Performance...&quot; exit_code: 1
Tools/ChangeLog:15:  Line contains tab character.  [whitespace/tab] [5]
Tools/ChangeLog:18:  Line contains tab character.  [whitespace/tab] [5]
Tools/ChangeLog:19:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 3 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681385</commentid>
    <comment_count>7</comment_count>
      <attachid>155125</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 02:31:44 -0700</bug_when>
    <thetext>Created attachment 155125
Removed tabs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681386</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 03:13:00 -0700</bug_when>
    <thetext>Note that a natural follow up patch to this will be giving a default JSON output path, and then have run-perf-tests open the results page at the end like run-webkit-tests does when there are failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681597</commentid>
    <comment_count>9</comment_count>
      <attachid>155125</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-29 14:57:04 -0700</bug_when>
    <thetext>Comment on attachment 155125
Removed tabs

I mean, we could easily have a resources/ directory for the results template, instead of inlining the minimize script.  But this is also OK for now.  run-perf-tests could even inline the scripts into the HTML if that were necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681598</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-29 14:59:09 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to comment #9)
&gt; (From update of attachment 155125 [details])
&gt; I mean, we could easily have a resources/ directory for the results template, instead of inlining the minimize script.

My intention is to use this infrastructure for perf. EWS so being able to upload to Bugzilla without having to zip is quite important.

&gt; But this is also OK for now.  run-perf-tests could even inline the scripts into the HTML if that were necessary.

Yes, that&apos;s what we&apos;re doing here. We inline all scripts and JSON into the results page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681602</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-29 15:03:42 -0700</bug_when>
    <thetext>Committed r123985: &lt;http://trac.webkit.org/changeset/123985&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>155120</attachid>
            <date>2012-07-28 01:38:02 -0700</date>
            <delta_ts>2012-07-28 01:38:02 -0700</delta_ts>
            <desc>Screenshot of current results.html</desc>
            <filename>Screen Shot 2012-07-28 at 12.59.29 AM.png</filename>
            <type>image/png</type>
            <size>0</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155121</attachid>
            <date>2012-07-28 01:56:53 -0700</date>
            <delta_ts>2012-07-28 02:23:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92575-20120728015640.patch</filename>
            <type>text/plain</type>
            <size>60332</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjM5NTcpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTI4ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHJ1bi1wZXJmLXRlc3Rz
IHNob3VsZCBnZW5lcmF0ZSBhIHJlc3VsdHMgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSByZXN1bHRzIHBhZ2UgdGVtcGxhdGUuIFRoaXMg
cGFnZSBpbmNsdWRlcyBmbG90IGFuZCBmbG90LmZpbGxiZXR3ZWVuLgorICAgICAgICBqUXVlcnkg
YW5kIHRoZSBqc29uIHRoYXQgY29udGFpbnMgdGVzdCByZXN1bHRzIGFyZSBpbmplY3RlZCBieSBy
dW4tcGVyZi10ZXN0cy4KKworICAgICAgICAqIHJlc291cmNlcy9yZXN1bHRzLXRlbXBsYXRlLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA3LTI3ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNp
c2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgdXNlIGNyZWF0ZVVuaW5pdGlhbGl6ZWQgd2hlbiBj
cmVhdGluZyBUeXBlZEFycmF5IGZyb20gYW5vdGhlciBhcnJheQpJbmRleDogUGVyZm9ybWFuY2VU
ZXN0cy9yZXNvdXJjZXMvcmVzdWx0cy10ZW1wbGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvcmVzb3VyY2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRtbAkocmV2aXNpb24gMCkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzx0aXRsZT5XZWJLaXQgUGVyZm9ybWFuY2UgVGVzdCBSZXN1bHRzPC90aXRsZT4KKzw/V2Vi
S2l0UGVyZlRlc3RSdW5uZXJJbnNlcnRpb25Qb2ludD8+Cis8c2NyaXB0IHRpdGxlPSJqcXVlcnku
ZmxvdC5taW4uanMiPgorLyogSmF2YXNjcmlwdCBwbG90dGluZyBsaWJyYXJ5IGZvciBqUXVlcnks
IHYuIDAuNy4KKyAqCisgKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgYnkgSU9MQSwg
RGVjZW1iZXIgMjAwNy4KKyAqCisgKi8KKyhmdW5jdGlvbihiKXtiLmNvbG9yPXt9O2IuY29sb3Iu
bWFrZT1mdW5jdGlvbihkLGUsZyxmKXt2YXIgYz17fTtjLnI9ZHx8MDtjLmc9ZXx8MDtjLmI9Z3x8
MDtjLmE9ZiE9bnVsbD9mOjE7Yy5hZGQ9ZnVuY3Rpb24oaCxqKXtmb3IodmFyIGs9MDtrPGgubGVu
Z3RoOysrayl7Y1toLmNoYXJBdChrKV0rPWp9cmV0dXJuIGMubm9ybWFsaXplKCl9O2Muc2NhbGU9
ZnVuY3Rpb24oaCxqKXtmb3IodmFyIGs9MDtrPGgubGVuZ3RoOysrayl7Y1toLmNoYXJBdChrKV0q
PWp9cmV0dXJuIGMubm9ybWFsaXplKCl9O2MudG9TdHJpbmc9ZnVuY3Rpb24oKXtpZihjLmE+PTEp
e3JldHVybiJyZ2IoIitbYy5yLGMuZyxjLmJdLmpvaW4oIiwiKSsiKSJ9ZWxzZXtyZXR1cm4icmdi
YSgiK1tjLnIsYy5nLGMuYixjLmFdLmpvaW4oIiwiKSsiKSJ9fTtjLm5vcm1hbGl6ZT1mdW5jdGlv
bigpe2Z1bmN0aW9uIGgoayxqLGwpe3JldHVybiBqPGs/azooaj5sP2w6ail9Yy5yPWgoMCxwYXJz
ZUludChjLnIpLDI1NSk7Yy5nPWgoMCxwYXJzZUludChjLmcpLDI1NSk7Yy5iPWgoMCxwYXJzZUlu
dChjLmIpLDI1NSk7Yy5hPWgoMCxjLmEsMSk7cmV0dXJuIGN9O2MuY2xvbmU9ZnVuY3Rpb24oKXty
ZXR1cm4gYi5jb2xvci5tYWtlKGMucixjLmIsYy5nLGMuYSl9O3JldHVybiBjLm5vcm1hbGl6ZSgp
fTtiLmNvbG9yLmV4dHJhY3Q9ZnVuY3Rpb24oZCxlKXt2YXIgYztkb3tjPWQuY3NzKGUpLnRvTG93
ZXJDYXNlKCk7aWYoYyE9IiImJmMhPSJ0cmFuc3BhcmVudCIpe2JyZWFrfWQ9ZC5wYXJlbnQoKX13
aGlsZSghYi5ub2RlTmFtZShkLmdldCgwKSwiYm9keSIpKTtpZihjPT0icmdiYSgwLCAwLCAwLCAw
KSIpe2M9InRyYW5zcGFyZW50In1yZXR1cm4gYi5jb2xvci5wYXJzZShjKX07Yi5jb2xvci5wYXJz
ZT1mdW5jdGlvbihjKXt2YXIgZCxmPWIuY29sb3IubWFrZTtpZihkPS9yZ2JcKFxzKihbMC05XXsx
LDN9KVxzKixccyooWzAtOV17MSwzfSlccyosXHMqKFswLTldezEsM30pXHMqXCkvLmV4ZWMoYykp
e3JldHVybiBmKHBhcnNlSW50KGRbMV0sMTApLHBhcnNlSW50KGRbMl0sMTApLHBhcnNlSW50KGRb
M10sMTApKX1pZihkPS9yZ2JhXChccyooWzAtOV17MSwzfSlccyosXHMqKFswLTldezEsM30pXHMq
LFxzKihbMC05XXsxLDN9KVxzKixccyooWzAtOV0rKD86XC5bMC05XSspPylccypcKS8uZXhlYyhj
KSl7cmV0dXJuIGYocGFyc2VJbnQoZFsxXSwxMCkscGFyc2VJbnQoZFsyXSwxMCkscGFyc2VJbnQo
ZFszXSwxMCkscGFyc2VGbG9hdChkWzRdKSl9aWYoZD0vcmdiXChccyooWzAtOV0rKD86XC5bMC05
XSspPylcJVxzKixccyooWzAtOV0rKD86XC5bMC05XSspPylcJVxzKixccyooWzAtOV0rKD86XC5b
MC05XSspPylcJVxzKlwpLy5leGVjKGMpKXtyZXR1cm4gZihwYXJzZUZsb2F0KGRbMV0pKjIuNTUs
cGFyc2VGbG9hdChkWzJdKSoyLjU1LHBhcnNlRmxvYXQoZFszXSkqMi41NSl9aWYoZD0vcmdiYVwo
XHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVccyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVc
cyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVccyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8p
XHMqXCkvLmV4ZWMoYykpe3JldHVybiBmKHBhcnNlRmxvYXQoZFsxXSkqMi41NSxwYXJzZUZsb2F0
KGRbMl0pKjIuNTUscGFyc2VGbG9hdChkWzNdKSoyLjU1LHBhcnNlRmxvYXQoZFs0XSkpfWlmKGQ9
LyMoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkvLmV4ZWMo
Yykpe3JldHVybiBmKHBhcnNlSW50KGRbMV0sMTYpLHBhcnNlSW50KGRbMl0sMTYpLHBhcnNlSW50
KGRbM10sMTYpKX1pZihkPS8jKFthLWZBLUYwLTldKShbYS1mQS1GMC05XSkoW2EtZkEtRjAtOV0p
Ly5leGVjKGMpKXtyZXR1cm4gZihwYXJzZUludChkWzFdK2RbMV0sMTYpLHBhcnNlSW50KGRbMl0r
ZFsyXSwxNikscGFyc2VJbnQoZFszXStkWzNdLDE2KSl9dmFyIGU9Yi50cmltKGMpLnRvTG93ZXJD
YXNlKCk7aWYoZT09InRyYW5zcGFyZW50Iil7cmV0dXJuIGYoMjU1LDI1NSwyNTUsMCl9ZWxzZXtk
PWFbZV18fFswLDAsMF07cmV0dXJuIGYoZFswXSxkWzFdLGRbMl0pfX07dmFyIGE9e2FxdWE6WzAs
MjU1LDI1NV0sYXp1cmU6WzI0MCwyNTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJsYWNrOlsw
LDAsMF0sYmx1ZTpbMCwwLDI1NV0sYnJvd246WzE2NSw0Miw0Ml0sY3lhbjpbMCwyNTUsMjU1XSxk
YXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0sZGFya2dyZXk6WzE2OSwxNjks
MTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtraGFraTpbMTg5LDE4MywxMDddLGRhcmttYWdl
bnRhOlsxMzksMCwxMzldLGRhcmtvbGl2ZWdyZWVuOls4NSwxMDcsNDddLGRhcmtvcmFuZ2U6WzI1
NSwxNDAsMF0sZGFya29yY2hpZDpbMTUzLDUwLDIwNF0sZGFya3JlZDpbMTM5LDAsMF0sZGFya3Nh
bG1vbjpbMjMzLDE1MCwxMjJdLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMV0sZnVjaHNpYTpbMjU1LDAs
MjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdyZWVuOlswLDEyOCwwXSxpbmRpZ286Wzc1LDAsMTMwXSxr
aGFraTpbMjQwLDIzMCwxNDBdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzBdLGxpZ2h0Y3lhbjpbMjI0
LDI1NSwyNTVdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdodGdyZXk6WzIxMSwyMTEsMjEx
XSxsaWdodHBpbms6WzI1NSwxODIsMTkzXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjRdLGxpbWU6
WzAsMjU1LDBdLG1hZ2VudGE6WzI1NSwwLDI1NV0sbWFyb29uOlsxMjgsMCwwXSxuYXZ5OlswLDAs
MTI4XSxvbGl2ZTpbMTI4LDEyOCwwXSxvcmFuZ2U6WzI1NSwxNjUsMF0scGluazpbMjU1LDE5Miwy
MDNdLHB1cnBsZTpbMTI4LDAsMTI4XSx2aW9sZXQ6WzEyOCwwLDEyOF0scmVkOlsyNTUsMCwwXSxz
aWx2ZXI6WzE5MiwxOTIsMTkyXSx3aGl0ZTpbMjU1LDI1NSwyNTVdLHllbGxvdzpbMjU1LDI1NSww
XX19KShqUXVlcnkpOyhmdW5jdGlvbihjKXtmdW5jdGlvbiBiKGF2LGFpLEosYWYpe3ZhciBRPVtd
LE89e2NvbG9yczpbIiNlZGMyNDAiLCIjYWZkOGY4IiwiI2NiNGI0YiIsIiM0ZGE3NGQiLCIjOTQ0
MGVkIl0sbGVnZW5kOntzaG93OnRydWUsbm9Db2x1bW5zOjEsbGFiZWxGb3JtYXR0ZXI6bnVsbCxs
YWJlbEJveEJvcmRlckNvbG9yOiIjY2NjIixjb250YWluZXI6bnVsbCxwb3NpdGlvbjoibmUiLG1h
cmdpbjo1LGJhY2tncm91bmRDb2xvcjpudWxsLGJhY2tncm91bmRPcGFjaXR5OjAuODV9LHhheGlz
OntzaG93Om51bGwscG9zaXRpb246ImJvdHRvbSIsbW9kZTpudWxsLGNvbG9yOm51bGwsdGlja0Nv
bG9yOm51bGwsdHJhbnNmb3JtOm51bGwsaW52ZXJzZVRyYW5zZm9ybTpudWxsLG1pbjpudWxsLG1h
eDpudWxsLGF1dG9zY2FsZU1hcmdpbjpudWxsLHRpY2tzOm51bGwsdGlja0Zvcm1hdHRlcjpudWxs
LGxhYmVsV2lkdGg6bnVsbCxsYWJlbEhlaWdodDpudWxsLHJlc2VydmVTcGFjZTpudWxsLHRpY2tM
ZW5ndGg6bnVsbCxhbGlnblRpY2tzV2l0aEF4aXM6bnVsbCx0aWNrRGVjaW1hbHM6bnVsbCx0aWNr
U2l6ZTpudWxsLG1pblRpY2tTaXplOm51bGwsbW9udGhOYW1lczpudWxsLHRpbWVmb3JtYXQ6bnVs
bCx0d2VsdmVIb3VyQ2xvY2s6ZmFsc2V9LHlheGlzOnthdXRvc2NhbGVNYXJnaW46MC4wMixwb3Np
dGlvbjoibGVmdCJ9LHhheGVzOltdLHlheGVzOltdLHNlcmllczp7cG9pbnRzOntzaG93OmZhbHNl
LHJhZGl1czozLGxpbmVXaWR0aDoyLGZpbGw6dHJ1ZSxmaWxsQ29sb3I6IiNmZmZmZmYiLHN5bWJv
bDoiY2lyY2xlIn0sbGluZXM6e2xpbmVXaWR0aDoyLGZpbGw6ZmFsc2UsZmlsbENvbG9yOm51bGws
c3RlcHM6ZmFsc2V9LGJhcnM6e3Nob3c6ZmFsc2UsbGluZVdpZHRoOjIsYmFyV2lkdGg6MSxmaWxs
OnRydWUsZmlsbENvbG9yOm51bGwsYWxpZ246ImxlZnQiLGhvcml6b250YWw6ZmFsc2V9LHNoYWRv
d1NpemU6M30sZ3JpZDp7c2hvdzp0cnVlLGFib3ZlRGF0YTpmYWxzZSxjb2xvcjoiIzU0NTQ1NCIs
YmFja2dyb3VuZENvbG9yOm51bGwsYm9yZGVyQ29sb3I6bnVsbCx0aWNrQ29sb3I6bnVsbCxsYWJl
bE1hcmdpbjo1LGF4aXNNYXJnaW46OCxib3JkZXJXaWR0aDoyLG1pbkJvcmRlck1hcmdpbjpudWxs
LG1hcmtpbmdzOm51bGwsbWFya2luZ3NDb2xvcjoiI2Y0ZjRmNCIsbWFya2luZ3NMaW5lV2lkdGg6
MixjbGlja2FibGU6ZmFsc2UsaG92ZXJhYmxlOmZhbHNlLGF1dG9IaWdobGlnaHQ6dHJ1ZSxtb3Vz
ZUFjdGl2ZVJhZGl1czoxMH0saG9va3M6e319LGF6PW51bGwsYWQ9bnVsbCx5PW51bGwsSD1udWxs
LEE9bnVsbCxwPVtdLGF3PVtdLHE9e2xlZnQ6MCxyaWdodDowLHRvcDowLGJvdHRvbTowfSxHPTAs
ST0wLGg9MCx3PTAsYWs9e3Byb2Nlc3NPcHRpb25zOltdLHByb2Nlc3NSYXdEYXRhOltdLHByb2Nl
c3NEYXRhcG9pbnRzOltdLGRyYXdTZXJpZXM6W10sZHJhdzpbXSxiaW5kRXZlbnRzOltdLGRyYXdP
dmVybGF5OltdLHNodXRkb3duOltdfSxhcT10aGlzO2FxLnNldERhdGE9YWo7YXEuc2V0dXBHcmlk
PXQ7YXEuZHJhdz1XO2FxLmdldFBsYWNlaG9sZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGF2fTthcS5n
ZXRDYW52YXM9ZnVuY3Rpb24oKXtyZXR1cm4gYXp9O2FxLmdldFBsb3RPZmZzZXQ9ZnVuY3Rpb24o
KXtyZXR1cm4gcX07YXEud2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gaH07YXEuaGVpZ2h0PWZ1bmN0
aW9uKCl7cmV0dXJuIHd9O2FxLm9mZnNldD1mdW5jdGlvbigpe3ZhciBhQj15Lm9mZnNldCgpO2FC
LmxlZnQrPXEubGVmdDthQi50b3ArPXEudG9wO3JldHVybiBhQn07YXEuZ2V0RGF0YT1mdW5jdGlv
bigpe3JldHVybiBRfTthcS5nZXRBeGVzPWZ1bmN0aW9uKCl7dmFyIGFDPXt9LGFCO2MuZWFjaChw
LmNvbmNhdChhdyksZnVuY3Rpb24oYUQsYUUpe2lmKGFFKXthQ1thRS5kaXJlY3Rpb24rKGFFLm4h
PTE/YUUubjoiIikrImF4aXMiXT1hRX19KTtyZXR1cm4gYUN9O2FxLmdldFhBeGVzPWZ1bmN0aW9u
KCl7cmV0dXJuIHB9O2FxLmdldFlBeGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGF3fTthcS5jMnA9Qzth
cS5wMmM9YXI7YXEuZ2V0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBPfTthcS5oaWdobGlnaHQ9
eDthcS51bmhpZ2hsaWdodD1UO2FxLnRyaWdnZXJSZWRyYXdPdmVybGF5PWY7YXEucG9pbnRPZmZz
ZXQ9ZnVuY3Rpb24oYUIpe3JldHVybntsZWZ0OnBhcnNlSW50KHBbYUEoYUIsIngiKS0xXS5wMmMo
K2FCLngpK3EubGVmdCksdG9wOnBhcnNlSW50KGF3W2FBKGFCLCJ5IiktMV0ucDJjKCthQi55KStx
LnRvcCl9fTthcS5zaHV0ZG93bj1hZzthcS5yZXNpemU9ZnVuY3Rpb24oKXtCKCk7Zyhheik7Zyhh
ZCl9O2FxLmhvb2tzPWFrO0YoYXEpO1ooSik7WCgpO2FqKGFpKTt0KCk7VygpO2FoKCk7ZnVuY3Rp
b24gYW4oYUQsYUIpe2FCPVthcV0uY29uY2F0KGFCKTtmb3IodmFyIGFDPTA7YUM8YUQubGVuZ3Ro
OysrYUMpe2FEW2FDXS5hcHBseSh0aGlzLGFCKX19ZnVuY3Rpb24gRigpe2Zvcih2YXIgYUI9MDth
QjxhZi5sZW5ndGg7KythQil7dmFyIGFDPWFmW2FCXTthQy5pbml0KGFxKTtpZihhQy5vcHRpb25z
KXtjLmV4dGVuZCh0cnVlLE8sYUMub3B0aW9ucyl9fX1mdW5jdGlvbiBaKGFDKXt2YXIgYUI7Yy5l
eHRlbmQodHJ1ZSxPLGFDKTtpZihPLnhheGlzLmNvbG9yPT1udWxsKXtPLnhheGlzLmNvbG9yPU8u
Z3JpZC5jb2xvcn1pZihPLnlheGlzLmNvbG9yPT1udWxsKXtPLnlheGlzLmNvbG9yPU8uZ3JpZC5j
b2xvcn1pZihPLnhheGlzLnRpY2tDb2xvcj09bnVsbCl7Ty54YXhpcy50aWNrQ29sb3I9Ty5ncmlk
LnRpY2tDb2xvcn1pZihPLnlheGlzLnRpY2tDb2xvcj09bnVsbCl7Ty55YXhpcy50aWNrQ29sb3I9
Ty5ncmlkLnRpY2tDb2xvcn1pZihPLmdyaWQuYm9yZGVyQ29sb3I9PW51bGwpe08uZ3JpZC5ib3Jk
ZXJDb2xvcj1PLmdyaWQuY29sb3J9aWYoTy5ncmlkLnRpY2tDb2xvcj09bnVsbCl7Ty5ncmlkLnRp
Y2tDb2xvcj1jLmNvbG9yLnBhcnNlKE8uZ3JpZC5jb2xvcikuc2NhbGUoImEiLDAuMjIpLnRvU3Ry
aW5nKCl9Zm9yKGFCPTA7YUI8TWF0aC5tYXgoMSxPLnhheGVzLmxlbmd0aCk7KythQil7Ty54YXhl
c1thQl09Yy5leHRlbmQodHJ1ZSx7fSxPLnhheGlzLE8ueGF4ZXNbYUJdKX1mb3IoYUI9MDthQjxN
YXRoLm1heCgxLE8ueWF4ZXMubGVuZ3RoKTsrK2FCKXtPLnlheGVzW2FCXT1jLmV4dGVuZCh0cnVl
LHt9LE8ueWF4aXMsTy55YXhlc1thQl0pfWlmKE8ueGF4aXMubm9UaWNrcyYmTy54YXhpcy50aWNr
cz09bnVsbCl7Ty54YXhpcy50aWNrcz1PLnhheGlzLm5vVGlja3N9aWYoTy55YXhpcy5ub1RpY2tz
JiZPLnlheGlzLnRpY2tzPT1udWxsKXtPLnlheGlzLnRpY2tzPU8ueWF4aXMubm9UaWNrc31pZihP
LngyYXhpcyl7Ty54YXhlc1sxXT1jLmV4dGVuZCh0cnVlLHt9LE8ueGF4aXMsTy54MmF4aXMpO08u
eGF4ZXNbMV0ucG9zaXRpb249InRvcCJ9aWYoTy55MmF4aXMpe08ueWF4ZXNbMV09Yy5leHRlbmQo
dHJ1ZSx7fSxPLnlheGlzLE8ueTJheGlzKTtPLnlheGVzWzFdLnBvc2l0aW9uPSJyaWdodCJ9aWYo
Ty5ncmlkLmNvbG9yZWRBcmVhcyl7Ty5ncmlkLm1hcmtpbmdzPU8uZ3JpZC5jb2xvcmVkQXJlYXN9
aWYoTy5ncmlkLmNvbG9yZWRBcmVhc0NvbG9yKXtPLmdyaWQubWFya2luZ3NDb2xvcj1PLmdyaWQu
Y29sb3JlZEFyZWFzQ29sb3J9aWYoTy5saW5lcyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5saW5l
cyxPLmxpbmVzKX1pZihPLnBvaW50cyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5wb2ludHMsTy5w
b2ludHMpfWlmKE8uYmFycyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5iYXJzLE8uYmFycyl9aWYo
Ty5zaGFkb3dTaXplIT1udWxsKXtPLnNlcmllcy5zaGFkb3dTaXplPU8uc2hhZG93U2l6ZX1mb3Io
YUI9MDthQjxPLnhheGVzLmxlbmd0aDsrK2FCKXtWKHAsYUIrMSkub3B0aW9ucz1PLnhheGVzW2FC
XX1mb3IoYUI9MDthQjxPLnlheGVzLmxlbmd0aDsrK2FCKXtWKGF3LGFCKzEpLm9wdGlvbnM9Ty55
YXhlc1thQl19Zm9yKHZhciBhRCBpbiBhayl7aWYoTy5ob29rc1thRF0mJk8uaG9va3NbYURdLmxl
bmd0aCl7YWtbYURdPWFrW2FEXS5jb25jYXQoTy5ob29rc1thRF0pfX1hbihhay5wcm9jZXNzT3B0
aW9ucyxbT10pfWZ1bmN0aW9uIGFqKGFCKXtRPVkoYUIpO2F4KCk7eigpfWZ1bmN0aW9uIFkoYUUp
e3ZhciBhQz1bXTtmb3IodmFyIGFCPTA7YUI8YUUubGVuZ3RoOysrYUIpe3ZhciBhRD1jLmV4dGVu
ZCh0cnVlLHt9LE8uc2VyaWVzKTtpZihhRVthQl0uZGF0YSE9bnVsbCl7YUQuZGF0YT1hRVthQl0u
ZGF0YTtkZWxldGUgYUVbYUJdLmRhdGE7Yy5leHRlbmQodHJ1ZSxhRCxhRVthQl0pO2FFW2FCXS5k
YXRhPWFELmRhdGF9ZWxzZXthRC5kYXRhPWFFW2FCXX1hQy5wdXNoKGFEKX1yZXR1cm4gYUN9ZnVu
Y3Rpb24gYUEoYUMsYUQpe3ZhciBhQj1hQ1thRCsiYXhpcyJdO2lmKHR5cGVvZiBhQj09Im9iamVj
dCIpe2FCPWFCLm59aWYodHlwZW9mIGFCIT0ibnVtYmVyIil7YUI9MX1yZXR1cm4gYUJ9ZnVuY3Rp
b24gbSgpe3JldHVybiBjLmdyZXAocC5jb25jYXQoYXcpLGZ1bmN0aW9uKGFCKXtyZXR1cm4gYUJ9
KX1mdW5jdGlvbiBDKGFFKXt2YXIgYUM9e30sYUIsYUQ7Zm9yKGFCPTA7YUI8cC5sZW5ndGg7Kyth
Qil7YUQ9cFthQl07aWYoYUQmJmFELnVzZWQpe2FDWyJ4IithRC5uXT1hRC5jMnAoYUUubGVmdCl9
fWZvcihhQj0wO2FCPGF3Lmxlbmd0aDsrK2FCKXthRD1hd1thQl07aWYoYUQmJmFELnVzZWQpe2FD
WyJ5IithRC5uXT1hRC5jMnAoYUUudG9wKX19aWYoYUMueDEhPT11bmRlZmluZWQpe2FDLng9YUMu
eDF9aWYoYUMueTEhPT11bmRlZmluZWQpe2FDLnk9YUMueTF9cmV0dXJuIGFDfWZ1bmN0aW9uIGFy
KGFGKXt2YXIgYUQ9e30sYUMsYUUsYUI7Zm9yKGFDPTA7YUM8cC5sZW5ndGg7KythQyl7YUU9cFth
Q107aWYoYUUmJmFFLnVzZWQpe2FCPSJ4IithRS5uO2lmKGFGW2FCXT09bnVsbCYmYUUubj09MSl7
YUI9IngifWlmKGFGW2FCXSE9bnVsbCl7YUQubGVmdD1hRS5wMmMoYUZbYUJdKTticmVha319fWZv
cihhQz0wO2FDPGF3Lmxlbmd0aDsrK2FDKXthRT1hd1thQ107aWYoYUUmJmFFLnVzZWQpe2FCPSJ5
IithRS5uO2lmKGFGW2FCXT09bnVsbCYmYUUubj09MSl7YUI9InkifWlmKGFGW2FCXSE9bnVsbCl7
YUQudG9wPWFFLnAyYyhhRlthQl0pO2JyZWFrfX19cmV0dXJuIGFEfWZ1bmN0aW9uIFYoYUMsYUIp
e2lmKCFhQ1thQi0xXSl7YUNbYUItMV09e246YUIsZGlyZWN0aW9uOmFDPT1wPyJ4IjoieSIsb3B0
aW9uczpjLmV4dGVuZCh0cnVlLHt9LGFDPT1wP08ueGF4aXM6Ty55YXhpcyl9fXJldHVybiBhQ1th
Qi0xXX1mdW5jdGlvbiBheCgpe3ZhciBhRzt2YXIgYU09US5sZW5ndGgsYUI9W10sYUU9W107Zm9y
KGFHPTA7YUc8US5sZW5ndGg7KythRyl7dmFyIGFKPVFbYUddLmNvbG9yO2lmKGFKIT1udWxsKXst
LWFNO2lmKHR5cGVvZiBhSj09Im51bWJlciIpe2FFLnB1c2goYUopfWVsc2V7YUIucHVzaChjLmNv
bG9yLnBhcnNlKFFbYUddLmNvbG9yKSl9fX1mb3IoYUc9MDthRzxhRS5sZW5ndGg7KythRyl7YU09
TWF0aC5tYXgoYU0sYUVbYUddKzEpfXZhciBhQz1bXSxhRj0wO2FHPTA7d2hpbGUoYUMubGVuZ3Ro
PGFNKXt2YXIgYUk7aWYoTy5jb2xvcnMubGVuZ3RoPT1hRyl7YUk9Yy5jb2xvci5tYWtlKDEwMCwx
MDAsMTAwKX1lbHNle2FJPWMuY29sb3IucGFyc2UoTy5jb2xvcnNbYUddKX12YXIgYUQ9YUYlMj09
MT8tMToxO2FJLnNjYWxlKCJyZ2IiLDErYUQqTWF0aC5jZWlsKGFGLzIpKjAuMik7YUMucHVzaChh
SSk7KythRztpZihhRz49Ty5jb2xvcnMubGVuZ3RoKXthRz0wOysrYUZ9fXZhciBhSD0wLGFOO2Zv
cihhRz0wO2FHPFEubGVuZ3RoOysrYUcpe2FOPVFbYUddO2lmKGFOLmNvbG9yPT1udWxsKXthTi5j
b2xvcj1hQ1thSF0udG9TdHJpbmcoKTsrK2FIfWVsc2V7aWYodHlwZW9mIGFOLmNvbG9yPT0ibnVt
YmVyIil7YU4uY29sb3I9YUNbYU4uY29sb3JdLnRvU3RyaW5nKCl9fWlmKGFOLmxpbmVzLnNob3c9
PW51bGwpe3ZhciBhTCxhSz10cnVlO2ZvcihhTCBpbiBhTil7aWYoYU5bYUxdJiZhTlthTF0uc2hv
dyl7YUs9ZmFsc2U7YnJlYWt9fWlmKGFLKXthTi5saW5lcy5zaG93PXRydWV9fWFOLnhheGlzPVYo
cCxhQShhTiwieCIpKTthTi55YXhpcz1WKGF3LGFBKGFOLCJ5IikpfX1mdW5jdGlvbiB6KCl7dmFy
IGFPPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxhST1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFks
YUI9TnVtYmVyLk1BWF9WQUxVRSxhVSxhUyxhUixhTixhRCxhSixhVCxhUCxhSCxhRyxhQyxhMCxh
WCxhTDtmdW5jdGlvbiBhRihhMyxhMixhMSl7aWYoYTI8YTMuZGF0YW1pbiYmYTIhPS1hQil7YTMu
ZGF0YW1pbj1hMn1pZihhMT5hMy5kYXRhbWF4JiZhMSE9YUIpe2EzLmRhdGFtYXg9YTF9fWMuZWFj
aChtKCksZnVuY3Rpb24oYTEsYTIpe2EyLmRhdGFtaW49YU87YTIuZGF0YW1heD1hSTthMi51c2Vk
PWZhbHNlfSk7Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVthVV07YUouZGF0YXBvaW50
cz17cG9pbnRzOltdfTthbihhay5wcm9jZXNzUmF3RGF0YSxbYUosYUouZGF0YSxhSi5kYXRhcG9p
bnRzXSl9Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVthVV07dmFyIGFaPWFKLmRhdGEs
YVc9YUouZGF0YXBvaW50cy5mb3JtYXQ7aWYoIWFXKXthVz1bXTthVy5wdXNoKHt4OnRydWUsbnVt
YmVyOnRydWUscmVxdWlyZWQ6dHJ1ZX0pO2FXLnB1c2goe3k6dHJ1ZSxudW1iZXI6dHJ1ZSxyZXF1
aXJlZDp0cnVlfSk7aWYoYUouYmFycy5zaG93fHwoYUoubGluZXMuc2hvdyYmYUoubGluZXMuZmls
bCkpe2FXLnB1c2goe3k6dHJ1ZSxudW1iZXI6dHJ1ZSxyZXF1aXJlZDpmYWxzZSxkZWZhdWx0VmFs
dWU6MH0pO2lmKGFKLmJhcnMuaG9yaXpvbnRhbCl7ZGVsZXRlIGFXW2FXLmxlbmd0aC0xXS55O2FX
W2FXLmxlbmd0aC0xXS54PXRydWV9fWFKLmRhdGFwb2ludHMuZm9ybWF0PWFXfWlmKGFKLmRhdGFw
b2ludHMucG9pbnRzaXplIT1udWxsKXtjb250aW51ZX1hSi5kYXRhcG9pbnRzLnBvaW50c2l6ZT1h
Vy5sZW5ndGg7YVA9YUouZGF0YXBvaW50cy5wb2ludHNpemU7YVQ9YUouZGF0YXBvaW50cy5wb2lu
dHM7aW5zZXJ0U3RlcHM9YUoubGluZXMuc2hvdyYmYUoubGluZXMuc3RlcHM7YUoueGF4aXMudXNl
ZD1hSi55YXhpcy51c2VkPXRydWU7Zm9yKGFTPWFSPTA7YVM8YVoubGVuZ3RoOysrYVMsYVIrPWFQ
KXthTD1hWlthU107dmFyIGFFPWFMPT1udWxsO2lmKCFhRSl7Zm9yKGFOPTA7YU48YVA7KythTil7
YTA9YUxbYU5dO2FYPWFXW2FOXTtpZihhWCl7aWYoYVgubnVtYmVyJiZhMCE9bnVsbCl7YTA9K2Ew
O2lmKGlzTmFOKGEwKSl7YTA9bnVsbH1lbHNle2lmKGEwPT1JbmZpbml0eSl7YTA9YUJ9ZWxzZXtp
ZihhMD09LUluZmluaXR5KXthMD0tYUJ9fX19aWYoYTA9PW51bGwpe2lmKGFYLnJlcXVpcmVkKXth
RT10cnVlfWlmKGFYLmRlZmF1bHRWYWx1ZSE9bnVsbCl7YTA9YVguZGVmYXVsdFZhbHVlfX19YVRb
YVIrYU5dPWEwfX1pZihhRSl7Zm9yKGFOPTA7YU48YVA7KythTil7YTA9YVRbYVIrYU5dO2lmKGEw
IT1udWxsKXthWD1hV1thTl07aWYoYVgueCl7YUYoYUoueGF4aXMsYTAsYTApfWlmKGFYLnkpe2FG
KGFKLnlheGlzLGEwLGEwKX19YVRbYVIrYU5dPW51bGx9fWVsc2V7aWYoaW5zZXJ0U3RlcHMmJmFS
PjAmJmFUW2FSLWFQXSE9bnVsbCYmYVRbYVItYVBdIT1hVFthUl0mJmFUW2FSLWFQKzFdIT1hVFth
UisxXSl7Zm9yKGFOPTA7YU48YVA7KythTil7YVRbYVIrYVArYU5dPWFUW2FSK2FOXX1hVFthUisx
XT1hVFthUi1hUCsxXTthUis9YVB9fX19Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVth
VV07YW4oYWsucHJvY2Vzc0RhdGFwb2ludHMsW2FKLGFKLmRhdGFwb2ludHNdKX1mb3IoYVU9MDth
VTxRLmxlbmd0aDsrK2FVKXthSj1RW2FVXTthVD1hSi5kYXRhcG9pbnRzLnBvaW50cyxhUD1hSi5k
YXRhcG9pbnRzLnBvaW50c2l6ZTt2YXIgYUs9YU8sYVE9YU8sYU09YUksYVY9YUk7Zm9yKGFTPTA7
YVM8YVQubGVuZ3RoO2FTKz1hUCl7aWYoYVRbYVNdPT1udWxsKXtjb250aW51ZX1mb3IoYU49MDth
TjxhUDsrK2FOKXthMD1hVFthUythTl07YVg9YVdbYU5dO2lmKCFhWHx8YTA9PWFCfHxhMD09LWFC
KXtjb250aW51ZX1pZihhWC54KXtpZihhMDxhSyl7YUs9YTB9aWYoYTA+YU0pe2FNPWEwfX1pZihh
WC55KXtpZihhMDxhUSl7YVE9YTB9aWYoYTA+YVYpe2FWPWEwfX19fWlmKGFKLmJhcnMuc2hvdyl7
dmFyIGFZPWFKLmJhcnMuYWxpZ249PSJsZWZ0Ij8wOi1hSi5iYXJzLmJhcldpZHRoLzI7aWYoYUou
YmFycy5ob3Jpem9udGFsKXthUSs9YVk7YVYrPWFZK2FKLmJhcnMuYmFyV2lkdGh9ZWxzZXthSys9
YVk7YU0rPWFZK2FKLmJhcnMuYmFyV2lkdGh9fWFGKGFKLnhheGlzLGFLLGFNKTthRihhSi55YXhp
cyxhUSxhVil9Yy5lYWNoKG0oKSxmdW5jdGlvbihhMSxhMil7aWYoYTIuZGF0YW1pbj09YU8pe2Ey
LmRhdGFtaW49bnVsbH1pZihhMi5kYXRhbWF4PT1hSSl7YTIuZGF0YW1heD1udWxsfX0pfWZ1bmN0
aW9uIGooYUIsYUMpe3ZhciBhRD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthRC5j
bGFzc05hbWU9YUM7YUQud2lkdGg9RzthRC5oZWlnaHQ9STtpZighYUIpe2MoYUQpLmNzcyh7cG9z
aXRpb246ImFic29sdXRlIixsZWZ0OjAsdG9wOjB9KX1jKGFEKS5hcHBlbmRUbyhhdik7aWYoIWFE
LmdldENvbnRleHQpe2FEPXdpbmRvdy5HX3ZtbENhbnZhc01hbmFnZXIuaW5pdEVsZW1lbnQoYUQp
fWFELmdldENvbnRleHQoIjJkIikuc2F2ZSgpO3JldHVybiBhRH1mdW5jdGlvbiBCKCl7Rz1hdi53
aWR0aCgpO0k9YXYuaGVpZ2h0KCk7aWYoRzw9MHx8STw9MCl7dGhyb3ciSW52YWxpZCBkaW1lbnNp
b25zIGZvciBwbG90LCB3aWR0aCA9ICIrRysiLCBoZWlnaHQgPSAiK0l9fWZ1bmN0aW9uIGcoYUMp
e2lmKGFDLndpZHRoIT1HKXthQy53aWR0aD1HfWlmKGFDLmhlaWdodCE9SSl7YUMuaGVpZ2h0PUl9
dmFyIGFCPWFDLmdldENvbnRleHQoIjJkIik7YUIucmVzdG9yZSgpO2FCLnNhdmUoKX1mdW5jdGlv
biBYKCl7dmFyIGFDLGFCPWF2LmNoaWxkcmVuKCJjYW52YXMuYmFzZSIpLGFEPWF2LmNoaWxkcmVu
KCJjYW52YXMub3ZlcmxheSIpO2lmKGFCLmxlbmd0aD09MHx8YUQ9PTApe2F2Lmh0bWwoIiIpO2F2
LmNzcyh7cGFkZGluZzowfSk7aWYoYXYuY3NzKCJwb3NpdGlvbiIpPT0ic3RhdGljIil7YXYuY3Nz
KCJwb3NpdGlvbiIsInJlbGF0aXZlIil9QigpO2F6PWoodHJ1ZSwiYmFzZSIpO2FkPWooZmFsc2Us
Im92ZXJsYXkiKTthQz1mYWxzZX1lbHNle2F6PWFCLmdldCgwKTthZD1hRC5nZXQoMCk7YUM9dHJ1
ZX1IPWF6LmdldENvbnRleHQoIjJkIik7QT1hZC5nZXRDb250ZXh0KCIyZCIpO3k9YyhbYWQsYXpd
KTtpZihhQyl7YXYuZGF0YSgicGxvdCIpLnNodXRkb3duKCk7YXEucmVzaXplKCk7QS5jbGVhclJl
Y3QoMCwwLEcsSSk7eS51bmJpbmQoKTthdi5jaGlsZHJlbigpLm5vdChbYXosYWRdKS5yZW1vdmUo
KX1hdi5kYXRhKCJwbG90IixhcSl9ZnVuY3Rpb24gYWgoKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt5
Lm1vdXNlbW92ZShhYSk7eS5tb3VzZWxlYXZlKGwpfWlmKE8uZ3JpZC5jbGlja2FibGUpe3kuY2xp
Y2soUil9YW4oYWsuYmluZEV2ZW50cyxbeV0pfWZ1bmN0aW9uIGFnKCl7aWYoTSl7Y2xlYXJUaW1l
b3V0KE0pfXkudW5iaW5kKCJtb3VzZW1vdmUiLGFhKTt5LnVuYmluZCgibW91c2VsZWF2ZSIsbCk7
eS51bmJpbmQoImNsaWNrIixSKTthbihhay5zaHV0ZG93bixbeV0pfWZ1bmN0aW9uIHIoYUcpe2Z1
bmN0aW9uIGFDKGFIKXtyZXR1cm4gYUh9dmFyIGFGLGFCLGFEPWFHLm9wdGlvbnMudHJhbnNmb3Jt
fHxhQyxhRT1hRy5vcHRpb25zLmludmVyc2VUcmFuc2Zvcm07aWYoYUcuZGlyZWN0aW9uPT0ieCIp
e2FGPWFHLnNjYWxlPWgvTWF0aC5hYnMoYUQoYUcubWF4KS1hRChhRy5taW4pKTthQj1NYXRoLm1p
bihhRChhRy5tYXgpLGFEKGFHLm1pbikpfWVsc2V7YUY9YUcuc2NhbGU9dy9NYXRoLmFicyhhRChh
Ry5tYXgpLWFEKGFHLm1pbikpO2FGPS1hRjthQj1NYXRoLm1heChhRChhRy5tYXgpLGFEKGFHLm1p
bikpfWlmKGFEPT1hQyl7YUcucDJjPWZ1bmN0aW9uKGFIKXtyZXR1cm4oYUgtYUIpKmFGfX1lbHNl
e2FHLnAyYz1mdW5jdGlvbihhSCl7cmV0dXJuKGFEKGFIKS1hQikqYUZ9fWlmKCFhRSl7YUcuYzJw
PWZ1bmN0aW9uKGFIKXtyZXR1cm4gYUIrYUgvYUZ9fWVsc2V7YUcuYzJwPWZ1bmN0aW9uKGFIKXty
ZXR1cm4gYUUoYUIrYUgvYUYpfX19ZnVuY3Rpb24gTChhRCl7dmFyIGFCPWFELm9wdGlvbnMsYUYs
YUo9YUQudGlja3N8fFtdLGFJPVtdLGFFLGFLPWFCLmxhYmVsV2lkdGgsYUc9YUIubGFiZWxIZWln
aHQsYUM7ZnVuY3Rpb24gYUgoYU0sYUwpe3JldHVybiBjKCc8ZGl2IHN0eWxlPSJwb3NpdGlvbjph
YnNvbHV0ZTt0b3A6LTEwMDAwcHg7JythTCsnZm9udC1zaXplOnNtYWxsZXIiPjxkaXYgY2xhc3M9
IicrYUQuZGlyZWN0aW9uKyJBeGlzICIrYUQuZGlyZWN0aW9uK2FELm4rJ0F4aXMiPicrYU0uam9p
bigiIikrIjwvZGl2PjwvZGl2PiIpLmFwcGVuZFRvKGF2KX1pZihhRC5kaXJlY3Rpb249PSJ4Iil7
aWYoYUs9PW51bGwpe2FLPU1hdGguZmxvb3IoRy8oYUoubGVuZ3RoPjA/YUoubGVuZ3RoOjEpKX1p
ZihhRz09bnVsbCl7YUk9W107Zm9yKGFGPTA7YUY8YUoubGVuZ3RoOysrYUYpe2FFPWFKW2FGXS5s
YWJlbDtpZihhRSl7YUkucHVzaCgnPGRpdiBjbGFzcz0idGlja0xhYmVsIiBzdHlsZT0iZmxvYXQ6
bGVmdDt3aWR0aDonK2FLKydweCI+JythRSsiPC9kaXY+Iil9fWlmKGFJLmxlbmd0aD4wKXthSS5w
dXNoKCc8ZGl2IHN0eWxlPSJjbGVhcjpsZWZ0Ij48L2Rpdj4nKTthQz1hSChhSSwid2lkdGg6MTAw
MDBweDsiKTthRz1hQy5oZWlnaHQoKTthQy5yZW1vdmUoKX19fWVsc2V7aWYoYUs9PW51bGx8fGFH
PT1udWxsKXtmb3IoYUY9MDthRjxhSi5sZW5ndGg7KythRil7YUU9YUpbYUZdLmxhYmVsO2lmKGFF
KXthSS5wdXNoKCc8ZGl2IGNsYXNzPSJ0aWNrTGFiZWwiPicrYUUrIjwvZGl2PiIpfX1pZihhSS5s
ZW5ndGg+MCl7YUM9YUgoYUksIiIpO2lmKGFLPT1udWxsKXthSz1hQy5jaGlsZHJlbigpLndpZHRo
KCl9aWYoYUc9PW51bGwpe2FHPWFDLmZpbmQoImRpdi50aWNrTGFiZWwiKS5oZWlnaHQoKX1hQy5y
ZW1vdmUoKX19fWlmKGFLPT1udWxsKXthSz0wfWlmKGFHPT1udWxsKXthRz0wfWFELmxhYmVsV2lk
dGg9YUs7YUQubGFiZWxIZWlnaHQ9YUd9ZnVuY3Rpb24gYXUoYUQpe3ZhciBhQz1hRC5sYWJlbFdp
ZHRoLGFMPWFELmxhYmVsSGVpZ2h0LGFIPWFELm9wdGlvbnMucG9zaXRpb24sYUY9YUQub3B0aW9u
cy50aWNrTGVuZ3RoLGFHPU8uZ3JpZC5heGlzTWFyZ2luLGFKPU8uZ3JpZC5sYWJlbE1hcmdpbixh
Sz1hRC5kaXJlY3Rpb249PSJ4Ij9wOmF3LGFFO3ZhciBhQj1jLmdyZXAoYUssZnVuY3Rpb24oYU4p
e3JldHVybiBhTiYmYU4ub3B0aW9ucy5wb3NpdGlvbj09YUgmJmFOLnJlc2VydmVTcGFjZX0pO2lm
KGMuaW5BcnJheShhRCxhQik9PWFCLmxlbmd0aC0xKXthRz0wfWlmKGFGPT1udWxsKXthRj0iZnVs
bCJ9dmFyIGFJPWMuZ3JlcChhSyxmdW5jdGlvbihhTil7cmV0dXJuIGFOJiZhTi5yZXNlcnZlU3Bh
Y2V9KTt2YXIgYU09Yy5pbkFycmF5KGFELGFJKT09MDtpZighYU0mJmFGPT0iZnVsbCIpe2FGPTV9
aWYoIWlzTmFOKCthRikpe2FKKz0rYUZ9aWYoYUQuZGlyZWN0aW9uPT0ieCIpe2FMKz1hSjtpZihh
SD09ImJvdHRvbSIpe3EuYm90dG9tKz1hTCthRzthRC5ib3g9e3RvcDpJLXEuYm90dG9tLGhlaWdo
dDphTH19ZWxzZXthRC5ib3g9e3RvcDpxLnRvcCthRyxoZWlnaHQ6YUx9O3EudG9wKz1hTCthR319
ZWxzZXthQys9YUo7aWYoYUg9PSJsZWZ0Iil7YUQuYm94PXtsZWZ0OnEubGVmdCthRyx3aWR0aDph
Q307cS5sZWZ0Kz1hQythR31lbHNle3EucmlnaHQrPWFDK2FHO2FELmJveD17bGVmdDpHLXEucmln
aHQsd2lkdGg6YUN9fX1hRC5wb3NpdGlvbj1hSDthRC50aWNrTGVuZ3RoPWFGO2FELmJveC5wYWRk
aW5nPWFKO2FELmlubmVybW9zdD1hTX1mdW5jdGlvbiBVKGFCKXtpZihhQi5kaXJlY3Rpb249PSJ4
Iil7YUIuYm94LmxlZnQ9cS5sZWZ0O2FCLmJveC53aWR0aD1ofWVsc2V7YUIuYm94LnRvcD1xLnRv
cDthQi5ib3guaGVpZ2h0PXd9fWZ1bmN0aW9uIHQoKXt2YXIgYUMsYUU9bSgpO2MuZWFjaChhRSxm
dW5jdGlvbihhRixhRyl7YUcuc2hvdz1hRy5vcHRpb25zLnNob3c7aWYoYUcuc2hvdz09bnVsbCl7
YUcuc2hvdz1hRy51c2VkfWFHLnJlc2VydmVTcGFjZT1hRy5zaG93fHxhRy5vcHRpb25zLnJlc2Vy
dmVTcGFjZTtuKGFHKX0pO2FsbG9jYXRlZEF4ZXM9Yy5ncmVwKGFFLGZ1bmN0aW9uKGFGKXtyZXR1
cm4gYUYucmVzZXJ2ZVNwYWNlfSk7cS5sZWZ0PXEucmlnaHQ9cS50b3A9cS5ib3R0b209MDtpZihP
LmdyaWQuc2hvdyl7Yy5lYWNoKGFsbG9jYXRlZEF4ZXMsZnVuY3Rpb24oYUYsYUcpe1MoYUcpO1Ao
YUcpO2FwKGFHLGFHLnRpY2tzKTtMKGFHKX0pO2ZvcihhQz1hbGxvY2F0ZWRBeGVzLmxlbmd0aC0x
O2FDPj0wOy0tYUMpe2F1KGFsbG9jYXRlZEF4ZXNbYUNdKX12YXIgYUQ9Ty5ncmlkLm1pbkJvcmRl
ck1hcmdpbjtpZihhRD09bnVsbCl7YUQ9MDtmb3IoYUM9MDthQzxRLmxlbmd0aDsrK2FDKXthRD1N
YXRoLm1heChhRCxRW2FDXS5wb2ludHMucmFkaXVzK1FbYUNdLnBvaW50cy5saW5lV2lkdGgvMil9
fWZvcih2YXIgYUIgaW4gcSl7cVthQl0rPU8uZ3JpZC5ib3JkZXJXaWR0aDtxW2FCXT1NYXRoLm1h
eChhRCxxW2FCXSl9fWg9Ry1xLmxlZnQtcS5yaWdodDt3PUktcS5ib3R0b20tcS50b3A7Yy5lYWNo
KGFFLGZ1bmN0aW9uKGFGLGFHKXtyKGFHKX0pO2lmKE8uZ3JpZC5zaG93KXtjLmVhY2goYWxsb2Nh
dGVkQXhlcyxmdW5jdGlvbihhRixhRyl7VShhRyl9KTtrKCl9bygpfWZ1bmN0aW9uIG4oYUUpe3Zh
ciBhRj1hRS5vcHRpb25zLGFEPSsoYUYubWluIT1udWxsP2FGLm1pbjphRS5kYXRhbWluKSxhQj0r
KGFGLm1heCE9bnVsbD9hRi5tYXg6YUUuZGF0YW1heCksYUg9YUItYUQ7aWYoYUg9PTApe3ZhciBh
Qz1hQj09MD8xOjAuMDE7aWYoYUYubWluPT1udWxsKXthRC09YUN9aWYoYUYubWF4PT1udWxsfHxh
Ri5taW4hPW51bGwpe2FCKz1hQ319ZWxzZXt2YXIgYUc9YUYuYXV0b3NjYWxlTWFyZ2luO2lmKGFH
IT1udWxsKXtpZihhRi5taW49PW51bGwpe2FELT1hSCphRztpZihhRDwwJiZhRS5kYXRhbWluIT1u
dWxsJiZhRS5kYXRhbWluPj0wKXthRD0wfX1pZihhRi5tYXg9PW51bGwpe2FCKz1hSCphRztpZihh
Qj4wJiZhRS5kYXRhbWF4IT1udWxsJiZhRS5kYXRhbWF4PD0wKXthQj0wfX19fWFFLm1pbj1hRDth
RS5tYXg9YUJ9ZnVuY3Rpb24gUyhhRyl7dmFyIGFNPWFHLm9wdGlvbnM7dmFyIGFIO2lmKHR5cGVv
ZiBhTS50aWNrcz09Im51bWJlciImJmFNLnRpY2tzPjApe2FIPWFNLnRpY2tzfWVsc2V7YUg9MC4z
Kk1hdGguc3FydChhRy5kaXJlY3Rpb249PSJ4Ij9HOkkpfXZhciBhVD0oYUcubWF4LWFHLm1pbikv
YUgsYU8sYUIsYU4sYVIsYVMsYVEsYUk7aWYoYU0ubW9kZT09InRpbWUiKXt2YXIgYUo9e3NlY29u
ZDoxMDAwLG1pbnV0ZTo2MCoxMDAwLGhvdXI6NjAqNjAqMTAwMCxkYXk6MjQqNjAqNjAqMTAwMCxt
b250aDozMCoyNCo2MCo2MCoxMDAwLHllYXI6MzY1LjI0MjUqMjQqNjAqNjAqMTAwMH07dmFyIGFL
PVtbMSwic2Vjb25kIl0sWzIsInNlY29uZCJdLFs1LCJzZWNvbmQiXSxbMTAsInNlY29uZCJdLFsz
MCwic2Vjb25kIl0sWzEsIm1pbnV0ZSJdLFsyLCJtaW51dGUiXSxbNSwibWludXRlIl0sWzEwLCJt
aW51dGUiXSxbMzAsIm1pbnV0ZSJdLFsxLCJob3VyIl0sWzIsImhvdXIiXSxbNCwiaG91ciJdLFs4
LCJob3VyIl0sWzEyLCJob3VyIl0sWzEsImRheSJdLFsyLCJkYXkiXSxbMywiZGF5Il0sWzAuMjUs
Im1vbnRoIl0sWzAuNSwibW9udGgiXSxbMSwibW9udGgiXSxbMiwibW9udGgiXSxbMywibW9udGgi
XSxbNiwibW9udGgiXSxbMSwieWVhciJdXTt2YXIgYUM9MDtpZihhTS5taW5UaWNrU2l6ZSE9bnVs
bCl7aWYodHlwZW9mIGFNLnRpY2tTaXplPT0ibnVtYmVyIil7YUM9YU0udGlja1NpemV9ZWxzZXth
Qz1hTS5taW5UaWNrU2l6ZVswXSphSlthTS5taW5UaWNrU2l6ZVsxXV19fWZvcih2YXIgYVM9MDth
UzxhSy5sZW5ndGgtMTsrK2FTKXtpZihhVDwoYUtbYVNdWzBdKmFKW2FLW2FTXVsxXV0rYUtbYVMr
MV1bMF0qYUpbYUtbYVMrMV1bMV1dKS8yJiZhS1thU11bMF0qYUpbYUtbYVNdWzFdXT49YUMpe2Jy
ZWFrfX1hTz1hS1thU11bMF07YU49YUtbYVNdWzFdO2lmKGFOPT0ieWVhciIpe2FRPU1hdGgucG93
KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coYVQvYUoueWVhcikvTWF0aC5MTjEwKSk7YUk9KGFUL2FK
LnllYXIpL2FRO2lmKGFJPDEuNSl7YU89MX1lbHNle2lmKGFJPDMpe2FPPTJ9ZWxzZXtpZihhSTw3
LjUpe2FPPTV9ZWxzZXthTz0xMH19fWFPKj1hUX1hRy50aWNrU2l6ZT1hTS50aWNrU2l6ZXx8W2FP
LGFOXTthQj1mdW5jdGlvbihhWCl7dmFyIGEyPVtdLGEwPWFYLnRpY2tTaXplWzBdLGEzPWFYLnRp
Y2tTaXplWzFdLGExPW5ldyBEYXRlKGFYLm1pbik7dmFyIGFXPWEwKmFKW2EzXTtpZihhMz09InNl
Y29uZCIpe2ExLnNldFVUQ1NlY29uZHMoYShhMS5nZXRVVENTZWNvbmRzKCksYTApKX1pZihhMz09
Im1pbnV0ZSIpe2ExLnNldFVUQ01pbnV0ZXMoYShhMS5nZXRVVENNaW51dGVzKCksYTApKX1pZihh
Mz09ImhvdXIiKXthMS5zZXRVVENIb3VycyhhKGExLmdldFVUQ0hvdXJzKCksYTApKX1pZihhMz09
Im1vbnRoIil7YTEuc2V0VVRDTW9udGgoYShhMS5nZXRVVENNb250aCgpLGEwKSl9aWYoYTM9PSJ5
ZWFyIil7YTEuc2V0VVRDRnVsbFllYXIoYShhMS5nZXRVVENGdWxsWWVhcigpLGEwKSl9YTEuc2V0
VVRDTWlsbGlzZWNvbmRzKDApO2lmKGFXPj1hSi5taW51dGUpe2ExLnNldFVUQ1NlY29uZHMoMCl9
aWYoYVc+PWFKLmhvdXIpe2ExLnNldFVUQ01pbnV0ZXMoMCl9aWYoYVc+PWFKLmRheSl7YTEuc2V0
VVRDSG91cnMoMCl9aWYoYVc+PWFKLmRheSo0KXthMS5zZXRVVENEYXRlKDEpfWlmKGFXPj1hSi55
ZWFyKXthMS5zZXRVVENNb250aCgwKX12YXIgYTU9MCxhND1OdW1iZXIuTmFOLGFZO2Rve2FZPWE0
O2E0PWExLmdldFRpbWUoKTthMi5wdXNoKGE0KTtpZihhMz09Im1vbnRoIil7aWYoYTA8MSl7YTEu
c2V0VVRDRGF0ZSgxKTt2YXIgYVY9YTEuZ2V0VGltZSgpO2ExLnNldFVUQ01vbnRoKGExLmdldFVU
Q01vbnRoKCkrMSk7dmFyIGFaPWExLmdldFRpbWUoKTthMS5zZXRUaW1lKGE0K2E1KmFKLmhvdXIr
KGFaLWFWKSphMCk7YTU9YTEuZ2V0VVRDSG91cnMoKTthMS5zZXRVVENIb3VycygwKX1lbHNle2Ex
LnNldFVUQ01vbnRoKGExLmdldFVUQ01vbnRoKCkrYTApfX1lbHNle2lmKGEzPT0ieWVhciIpe2Ex
LnNldFVUQ0Z1bGxZZWFyKGExLmdldFVUQ0Z1bGxZZWFyKCkrYTApfWVsc2V7YTEuc2V0VGltZShh
NCthVyl9fX13aGlsZShhNDxhWC5tYXgmJmE0IT1hWSk7cmV0dXJuIGEyfTthUj1mdW5jdGlvbihh
VixhWSl7dmFyIGEwPW5ldyBEYXRlKGFWKTtpZihhTS50aW1lZm9ybWF0IT1udWxsKXtyZXR1cm4g
Yy5wbG90LmZvcm1hdERhdGUoYTAsYU0udGltZWZvcm1hdCxhTS5tb250aE5hbWVzKX12YXIgYVc9
YVkudGlja1NpemVbMF0qYUpbYVkudGlja1NpemVbMV1dO3ZhciBhWD1hWS5tYXgtYVkubWluO3Zh
ciBhWj0oYU0udHdlbHZlSG91ckNsb2NrKT8iICVwIjoiIjtpZihhVzxhSi5taW51dGUpe2ZtdD0i
JWg6JU06JVMiK2FafWVsc2V7aWYoYVc8YUouZGF5KXtpZihhWDwyKmFKLmRheSl7Zm10PSIlaDol
TSIrYVp9ZWxzZXtmbXQ9IiViICVkICVoOiVNIithWn19ZWxzZXtpZihhVzxhSi5tb250aCl7Zm10
PSIlYiAlZCJ9ZWxzZXtpZihhVzxhSi55ZWFyKXtpZihhWDxhSi55ZWFyKXtmbXQ9IiViIn1lbHNl
e2ZtdD0iJWIgJXkifX1lbHNle2ZtdD0iJXkifX19fXJldHVybiBjLnBsb3QuZm9ybWF0RGF0ZShh
MCxmbXQsYU0ubW9udGhOYW1lcyl9fWVsc2V7dmFyIGFVPWFNLnRpY2tEZWNpbWFsczt2YXIgYVA9
LU1hdGguZmxvb3IoTWF0aC5sb2coYVQpL01hdGguTE4xMCk7aWYoYVUhPW51bGwmJmFQPmFVKXth
UD1hVX1hUT1NYXRoLnBvdygxMCwtYVApO2FJPWFUL2FRO2lmKGFJPDEuNSl7YU89MX1lbHNle2lm
KGFJPDMpe2FPPTI7aWYoYUk+Mi4yNSYmKGFVPT1udWxsfHxhUCsxPD1hVSkpe2FPPTIuNTsrK2FQ
fX1lbHNle2lmKGFJPDcuNSl7YU89NX1lbHNle2FPPTEwfX19YU8qPWFRO2lmKGFNLm1pblRpY2tT
aXplIT1udWxsJiZhTzxhTS5taW5UaWNrU2l6ZSl7YU89YU0ubWluVGlja1NpemV9YUcudGlja0Rl
Y2ltYWxzPU1hdGgubWF4KDAsYVUhPW51bGw/YVU6YVApO2FHLnRpY2tTaXplPWFNLnRpY2tTaXpl
fHxhTzthQj1mdW5jdGlvbihhWCl7dmFyIGFaPVtdO3ZhciBhMD1hKGFYLm1pbixhWC50aWNrU2l6
ZSksYVc9MCxhVj1OdW1iZXIuTmFOLGFZO2Rve2FZPWFWO2FWPWEwK2FXKmFYLnRpY2tTaXplO2Fa
LnB1c2goYVYpOysrYVd9d2hpbGUoYVY8YVgubWF4JiZhViE9YVkpO3JldHVybiBhWn07YVI9ZnVu
Y3Rpb24oYVYsYVcpe3JldHVybiBhVi50b0ZpeGVkKGFXLnRpY2tEZWNpbWFscyl9fWlmKGFNLmFs
aWduVGlja3NXaXRoQXhpcyE9bnVsbCl7dmFyIGFGPShhRy5kaXJlY3Rpb249PSJ4Ij9wOmF3KVth
TS5hbGlnblRpY2tzV2l0aEF4aXMtMV07aWYoYUYmJmFGLnVzZWQmJmFGIT1hRyl7dmFyIGFMPWFC
KGFHKTtpZihhTC5sZW5ndGg+MCl7aWYoYU0ubWluPT1udWxsKXthRy5taW49TWF0aC5taW4oYUcu
bWluLGFMWzBdKX1pZihhTS5tYXg9PW51bGwmJmFMLmxlbmd0aD4xKXthRy5tYXg9TWF0aC5tYXgo
YUcubWF4LGFMW2FMLmxlbmd0aC0xXSl9fWFCPWZ1bmN0aW9uKGFYKXt2YXIgYVk9W10sYVYsYVc7
Zm9yKGFXPTA7YVc8YUYudGlja3MubGVuZ3RoOysrYVcpe2FWPShhRi50aWNrc1thV10udi1hRi5t
aW4pLyhhRi5tYXgtYUYubWluKTthVj1hWC5taW4rYVYqKGFYLm1heC1hWC5taW4pO2FZLnB1c2go
YVYpfXJldHVybiBhWX07aWYoYUcubW9kZSE9InRpbWUiJiZhTS50aWNrRGVjaW1hbHM9PW51bGwp
e3ZhciBhRT1NYXRoLm1heCgwLC1NYXRoLmZsb29yKE1hdGgubG9nKGFUKS9NYXRoLkxOMTApKzEp
LGFEPWFCKGFHKTtpZighKGFELmxlbmd0aD4xJiYvXC4uKjAkLy50ZXN0KChhRFsxXS1hRFswXSku
dG9GaXhlZChhRSkpKSl7YUcudGlja0RlY2ltYWxzPWFFfX19fWFHLnRpY2tHZW5lcmF0b3I9YUI7
aWYoYy5pc0Z1bmN0aW9uKGFNLnRpY2tGb3JtYXR0ZXIpKXthRy50aWNrRm9ybWF0dGVyPWZ1bmN0
aW9uKGFWLGFXKXtyZXR1cm4iIithTS50aWNrRm9ybWF0dGVyKGFWLGFXKX19ZWxzZXthRy50aWNr
Rm9ybWF0dGVyPWFSfX1mdW5jdGlvbiBQKGFGKXt2YXIgYUg9YUYub3B0aW9ucy50aWNrcyxhRz1b
XTtpZihhSD09bnVsbHx8KHR5cGVvZiBhSD09Im51bWJlciImJmFIPjApKXthRz1hRi50aWNrR2Vu
ZXJhdG9yKGFGKX1lbHNle2lmKGFIKXtpZihjLmlzRnVuY3Rpb24oYUgpKXthRz1hSCh7bWluOmFG
Lm1pbixtYXg6YUYubWF4fSl9ZWxzZXthRz1hSH19fXZhciBhRSxhQjthRi50aWNrcz1bXTtmb3Io
YUU9MDthRTxhRy5sZW5ndGg7KythRSl7dmFyIGFDPW51bGw7dmFyIGFEPWFHW2FFXTtpZih0eXBl
b2YgYUQ9PSJvYmplY3QiKXthQj0rYURbMF07aWYoYUQubGVuZ3RoPjEpe2FDPWFEWzFdfX1lbHNl
e2FCPSthRH1pZihhQz09bnVsbCl7YUM9YUYudGlja0Zvcm1hdHRlcihhQixhRil9aWYoIWlzTmFO
KGFCKSl7YUYudGlja3MucHVzaCh7djphQixsYWJlbDphQ30pfX19ZnVuY3Rpb24gYXAoYUIsYUMp
e2lmKGFCLm9wdGlvbnMuYXV0b3NjYWxlTWFyZ2luJiZhQy5sZW5ndGg+MCl7aWYoYUIub3B0aW9u
cy5taW49PW51bGwpe2FCLm1pbj1NYXRoLm1pbihhQi5taW4sYUNbMF0udil9aWYoYUIub3B0aW9u
cy5tYXg9PW51bGwmJmFDLmxlbmd0aD4xKXthQi5tYXg9TWF0aC5tYXgoYUIubWF4LGFDW2FDLmxl
bmd0aC0xXS52KX19fWZ1bmN0aW9uIFcoKXtILmNsZWFyUmVjdCgwLDAsRyxJKTt2YXIgYUM9Ty5n
cmlkO2lmKGFDLnNob3cmJmFDLmJhY2tncm91bmRDb2xvcil7TigpfWlmKGFDLnNob3cmJiFhQy5h
Ym92ZURhdGEpe2FjKCl9Zm9yKHZhciBhQj0wO2FCPFEubGVuZ3RoOysrYUIpe2FuKGFrLmRyYXdT
ZXJpZXMsW0gsUVthQl1dKTtkKFFbYUJdKX1hbihhay5kcmF3LFtIXSk7aWYoYUMuc2hvdyYmYUMu
YWJvdmVEYXRhKXthYygpfX1mdW5jdGlvbiBEKGFCLGFJKXt2YXIgYUUsYUgsYUcsYUQsYUY9bSgp
O2ZvcihpPTA7aTxhRi5sZW5ndGg7KytpKXthRT1hRltpXTtpZihhRS5kaXJlY3Rpb249PWFJKXth
RD1hSSthRS5uKyJheGlzIjtpZighYUJbYURdJiZhRS5uPT0xKXthRD1hSSsiYXhpcyJ9aWYoYUJb
YURdKXthSD1hQlthRF0uZnJvbTthRz1hQlthRF0udG87YnJlYWt9fX1pZighYUJbYURdKXthRT1h
ST09IngiP3BbMF06YXdbMF07YUg9YUJbYUkrIjEiXTthRz1hQlthSSsiMiJdfWlmKGFIIT1udWxs
JiZhRyE9bnVsbCYmYUg+YUcpe3ZhciBhQz1hSDthSD1hRzthRz1hQ31yZXR1cm57ZnJvbTphSCx0
bzphRyxheGlzOmFFfX1mdW5jdGlvbiBOKCl7SC5zYXZlKCk7SC50cmFuc2xhdGUocS5sZWZ0LHEu
dG9wKTtILmZpbGxTdHlsZT1hbShPLmdyaWQuYmFja2dyb3VuZENvbG9yLHcsMCwicmdiYSgyNTUs
IDI1NSwgMjU1LCAwKSIpO0guZmlsbFJlY3QoMCwwLGgsdyk7SC5yZXN0b3JlKCl9ZnVuY3Rpb24g
YWMoKXt2YXIgYUY7SC5zYXZlKCk7SC50cmFuc2xhdGUocS5sZWZ0LHEudG9wKTt2YXIgYUg9Ty5n
cmlkLm1hcmtpbmdzO2lmKGFIKXtpZihjLmlzRnVuY3Rpb24oYUgpKXt2YXIgYUs9YXEuZ2V0QXhl
cygpO2FLLnhtaW49YUsueGF4aXMubWluO2FLLnhtYXg9YUsueGF4aXMubWF4O2FLLnltaW49YUsu
eWF4aXMubWluO2FLLnltYXg9YUsueWF4aXMubWF4O2FIPWFIKGFLKX1mb3IoYUY9MDthRjxhSC5s
ZW5ndGg7KythRil7dmFyIGFEPWFIW2FGXSxhQz1EKGFELCJ4IiksYUk9RChhRCwieSIpO2lmKGFD
LmZyb209PW51bGwpe2FDLmZyb209YUMuYXhpcy5taW59aWYoYUMudG89PW51bGwpe2FDLnRvPWFD
LmF4aXMubWF4fWlmKGFJLmZyb209PW51bGwpe2FJLmZyb209YUkuYXhpcy5taW59aWYoYUkudG89
PW51bGwpe2FJLnRvPWFJLmF4aXMubWF4fWlmKGFDLnRvPGFDLmF4aXMubWlufHxhQy5mcm9tPmFD
LmF4aXMubWF4fHxhSS50bzxhSS5heGlzLm1pbnx8YUkuZnJvbT5hSS5heGlzLm1heCl7Y29udGlu
dWV9YUMuZnJvbT1NYXRoLm1heChhQy5mcm9tLGFDLmF4aXMubWluKTthQy50bz1NYXRoLm1pbihh
Qy50byxhQy5heGlzLm1heCk7YUkuZnJvbT1NYXRoLm1heChhSS5mcm9tLGFJLmF4aXMubWluKTth
SS50bz1NYXRoLm1pbihhSS50byxhSS5heGlzLm1heCk7aWYoYUMuZnJvbT09YUMudG8mJmFJLmZy
b209PWFJLnRvKXtjb250aW51ZX1hQy5mcm9tPWFDLmF4aXMucDJjKGFDLmZyb20pO2FDLnRvPWFD
LmF4aXMucDJjKGFDLnRvKTthSS5mcm9tPWFJLmF4aXMucDJjKGFJLmZyb20pO2FJLnRvPWFJLmF4
aXMucDJjKGFJLnRvKTtpZihhQy5mcm9tPT1hQy50b3x8YUkuZnJvbT09YUkudG8pe0guYmVnaW5Q
YXRoKCk7SC5zdHJva2VTdHlsZT1hRC5jb2xvcnx8Ty5ncmlkLm1hcmtpbmdzQ29sb3I7SC5saW5l
V2lkdGg9YUQubGluZVdpZHRofHxPLmdyaWQubWFya2luZ3NMaW5lV2lkdGg7SC5tb3ZlVG8oYUMu
ZnJvbSxhSS5mcm9tKTtILmxpbmVUbyhhQy50byxhSS50byk7SC5zdHJva2UoKX1lbHNle0guZmls
bFN0eWxlPWFELmNvbG9yfHxPLmdyaWQubWFya2luZ3NDb2xvcjtILmZpbGxSZWN0KGFDLmZyb20s
YUkudG8sYUMudG8tYUMuZnJvbSxhSS5mcm9tLWFJLnRvKX19fXZhciBhSz1tKCksYU09Ty5ncmlk
LmJvcmRlcldpZHRoO2Zvcih2YXIgYUU9MDthRTxhSy5sZW5ndGg7KythRSl7dmFyIGFCPWFLW2FF
XSxhRz1hQi5ib3gsYVE9YUIudGlja0xlbmd0aCxhTixhTCxhUCxhSjtpZighYUIuc2hvd3x8YUIu
dGlja3MubGVuZ3RoPT0wKXtjb250aW51ZX1ILnN0cm9rZVN0eWxlPWFCLm9wdGlvbnMudGlja0Nv
bG9yfHxjLmNvbG9yLnBhcnNlKGFCLm9wdGlvbnMuY29sb3IpLnNjYWxlKCJhIiwwLjIyKS50b1N0
cmluZygpO0gubGluZVdpZHRoPTE7aWYoYUIuZGlyZWN0aW9uPT0ieCIpe2FOPTA7aWYoYVE9PSJm
dWxsIil7YUw9KGFCLnBvc2l0aW9uPT0idG9wIj8wOncpfWVsc2V7YUw9YUcudG9wLXEudG9wKyhh
Qi5wb3NpdGlvbj09InRvcCI/YUcuaGVpZ2h0OjApfX1lbHNle2FMPTA7aWYoYVE9PSJmdWxsIil7
YU49KGFCLnBvc2l0aW9uPT0ibGVmdCI/MDpoKX1lbHNle2FOPWFHLmxlZnQtcS5sZWZ0KyhhQi5w
b3NpdGlvbj09ImxlZnQiP2FHLndpZHRoOjApfX1pZighYUIuaW5uZXJtb3N0KXtILmJlZ2luUGF0
aCgpO2FQPWFKPTA7aWYoYUIuZGlyZWN0aW9uPT0ieCIpe2FQPWh9ZWxzZXthSj13fWlmKEgubGlu
ZVdpZHRoPT0xKXthTj1NYXRoLmZsb29yKGFOKSswLjU7YUw9TWF0aC5mbG9vcihhTCkrMC41fUgu
bW92ZVRvKGFOLGFMKTtILmxpbmVUbyhhTithUCxhTCthSik7SC5zdHJva2UoKX1ILmJlZ2luUGF0
aCgpO2ZvcihhRj0wO2FGPGFCLnRpY2tzLmxlbmd0aDsrK2FGKXt2YXIgYU89YUIudGlja3NbYUZd
LnY7YVA9YUo9MDtpZihhTzxhQi5taW58fGFPPmFCLm1heHx8KGFRPT0iZnVsbCImJmFNPjAmJihh
Tz09YUIubWlufHxhTz09YUIubWF4KSkpe2NvbnRpbnVlfWlmKGFCLmRpcmVjdGlvbj09IngiKXth
Tj1hQi5wMmMoYU8pO2FKPWFRPT0iZnVsbCI/LXc6YVE7aWYoYUIucG9zaXRpb249PSJ0b3AiKXth
Sj0tYUp9fWVsc2V7YUw9YUIucDJjKGFPKTthUD1hUT09ImZ1bGwiPy1oOmFRO2lmKGFCLnBvc2l0
aW9uPT0ibGVmdCIpe2FQPS1hUH19aWYoSC5saW5lV2lkdGg9PTEpe2lmKGFCLmRpcmVjdGlvbj09
IngiKXthTj1NYXRoLmZsb29yKGFOKSswLjV9ZWxzZXthTD1NYXRoLmZsb29yKGFMKSswLjV9fUgu
bW92ZVRvKGFOLGFMKTtILmxpbmVUbyhhTithUCxhTCthSil9SC5zdHJva2UoKX1pZihhTSl7SC5s
aW5lV2lkdGg9YU07SC5zdHJva2VTdHlsZT1PLmdyaWQuYm9yZGVyQ29sb3I7SC5zdHJva2VSZWN0
KC1hTS8yLC1hTS8yLGgrYU0sdythTSl9SC5yZXN0b3JlKCl9ZnVuY3Rpb24gaygpe2F2LmZpbmQo
Ii50aWNrTGFiZWxzIikucmVtb3ZlKCk7dmFyIGFHPVsnPGRpdiBjbGFzcz0idGlja0xhYmVscyIg
c3R5bGU9ImZvbnQtc2l6ZTpzbWFsbGVyIj4nXTt2YXIgYUo9bSgpO2Zvcih2YXIgYUQ9MDthRDxh
Si5sZW5ndGg7KythRCl7dmFyIGFDPWFKW2FEXSxhRj1hQy5ib3g7aWYoIWFDLnNob3cpe2NvbnRp
bnVlfWFHLnB1c2goJzxkaXYgY2xhc3M9IicrYUMuZGlyZWN0aW9uKyJBeGlzICIrYUMuZGlyZWN0
aW9uK2FDLm4rJ0F4aXMiIHN0eWxlPSJjb2xvcjonK2FDLm9wdGlvbnMuY29sb3IrJyI+Jyk7Zm9y
KHZhciBhRT0wO2FFPGFDLnRpY2tzLmxlbmd0aDsrK2FFKXt2YXIgYUg9YUMudGlja3NbYUVdO2lm
KCFhSC5sYWJlbHx8YUgudjxhQy5taW58fGFILnY+YUMubWF4KXtjb250aW51ZX12YXIgYUs9e30s
YUk7aWYoYUMuZGlyZWN0aW9uPT0ieCIpe2FJPSJjZW50ZXIiO2FLLmxlZnQ9TWF0aC5yb3VuZChx
LmxlZnQrYUMucDJjKGFILnYpLWFDLmxhYmVsV2lkdGgvMik7aWYoYUMucG9zaXRpb249PSJib3R0
b20iKXthSy50b3A9YUYudG9wK2FGLnBhZGRpbmd9ZWxzZXthSy5ib3R0b209SS0oYUYudG9wK2FG
LmhlaWdodC1hRi5wYWRkaW5nKX19ZWxzZXthSy50b3A9TWF0aC5yb3VuZChxLnRvcCthQy5wMmMo
YUgudiktYUMubGFiZWxIZWlnaHQvMik7aWYoYUMucG9zaXRpb249PSJsZWZ0Iil7YUsucmlnaHQ9
Ry0oYUYubGVmdCthRi53aWR0aC1hRi5wYWRkaW5nKTthST0icmlnaHQifWVsc2V7YUsubGVmdD1h
Ri5sZWZ0K2FGLnBhZGRpbmc7YUk9ImxlZnQifX1hSy53aWR0aD1hQy5sYWJlbFdpZHRoO3ZhciBh
Qj1bInBvc2l0aW9uOmFic29sdXRlIiwidGV4dC1hbGlnbjoiK2FJXTtmb3IodmFyIGFMIGluIGFL
KXthQi5wdXNoKGFMKyI6IithS1thTF0rInB4Iil9YUcucHVzaCgnPGRpdiBjbGFzcz0idGlja0xh
YmVsIiBzdHlsZT0iJythQi5qb2luKCI7IikrJyI+JythSC5sYWJlbCsiPC9kaXY+Iil9YUcucHVz
aCgiPC9kaXY+Iil9YUcucHVzaCgiPC9kaXY+Iik7YXYuYXBwZW5kKGFHLmpvaW4oIiIpKX1mdW5j
dGlvbiBkKGFCKXtpZihhQi5saW5lcy5zaG93KXthdChhQil9aWYoYUIuYmFycy5zaG93KXtlKGFC
KX1pZihhQi5wb2ludHMuc2hvdyl7YW8oYUIpfX1mdW5jdGlvbiBhdChhRSl7ZnVuY3Rpb24gYUQo
YVAsYVEsYUksYVUsYVQpe3ZhciBhVj1hUC5wb2ludHMsYUo9YVAucG9pbnRzaXplLGFOPW51bGws
YU09bnVsbDtILmJlZ2luUGF0aCgpO2Zvcih2YXIgYU89YUo7YU88YVYubGVuZ3RoO2FPKz1hSil7
dmFyIGFMPWFWW2FPLWFKXSxhUz1hVlthTy1hSisxXSxhSz1hVlthT10sYVI9YVZbYU8rMV07aWYo
YUw9PW51bGx8fGFLPT1udWxsKXtjb250aW51ZX1pZihhUzw9YVImJmFTPGFULm1pbil7aWYoYVI8
YVQubWluKXtjb250aW51ZX1hTD0oYVQubWluLWFTKS8oYVItYVMpKihhSy1hTCkrYUw7YVM9YVQu
bWlufWVsc2V7aWYoYVI8PWFTJiZhUjxhVC5taW4pe2lmKGFTPGFULm1pbil7Y29udGludWV9YUs9
KGFULm1pbi1hUykvKGFSLWFTKSooYUstYUwpK2FMO2FSPWFULm1pbn19aWYoYVM+PWFSJiZhUz5h
VC5tYXgpe2lmKGFSPmFULm1heCl7Y29udGludWV9YUw9KGFULm1heC1hUykvKGFSLWFTKSooYUst
YUwpK2FMO2FTPWFULm1heH1lbHNle2lmKGFSPj1hUyYmYVI+YVQubWF4KXtpZihhUz5hVC5tYXgp
e2NvbnRpbnVlfWFLPShhVC5tYXgtYVMpLyhhUi1hUykqKGFLLWFMKSthTDthUj1hVC5tYXh9fWlm
KGFMPD1hSyYmYUw8YVUubWluKXtpZihhSzxhVS5taW4pe2NvbnRpbnVlfWFTPShhVS5taW4tYUwp
LyhhSy1hTCkqKGFSLWFTKSthUzthTD1hVS5taW59ZWxzZXtpZihhSzw9YUwmJmFLPGFVLm1pbil7
aWYoYUw8YVUubWluKXtjb250aW51ZX1hUj0oYVUubWluLWFMKS8oYUstYUwpKihhUi1hUykrYVM7
YUs9YVUubWlufX1pZihhTD49YUsmJmFMPmFVLm1heCl7aWYoYUs+YVUubWF4KXtjb250aW51ZX1h
Uz0oYVUubWF4LWFMKS8oYUstYUwpKihhUi1hUykrYVM7YUw9YVUubWF4fWVsc2V7aWYoYUs+PWFM
JiZhSz5hVS5tYXgpe2lmKGFMPmFVLm1heCl7Y29udGludWV9YVI9KGFVLm1heC1hTCkvKGFLLWFM
KSooYVItYVMpK2FTO2FLPWFVLm1heH19aWYoYUwhPWFOfHxhUyE9YU0pe0gubW92ZVRvKGFVLnAy
YyhhTCkrYVEsYVQucDJjKGFTKSthSSl9YU49YUs7YU09YVI7SC5saW5lVG8oYVUucDJjKGFLKSth
USxhVC5wMmMoYVIpK2FJKX1ILnN0cm9rZSgpfWZ1bmN0aW9uIGFGKGFJLGFRLGFQKXt2YXIgYVc9
YUkucG9pbnRzLGFWPWFJLnBvaW50c2l6ZSxhTj1NYXRoLm1pbihNYXRoLm1heCgwLGFQLm1pbiks
YVAubWF4KSxhWD0wLGFVLGFUPWZhbHNlLGFNPTEsYUw9MCxhUj0wO3doaWxlKHRydWUpe2lmKGFW
PjAmJmFYPmFXLmxlbmd0aCthVil7YnJlYWt9YVgrPWFWO3ZhciBhWj1hV1thWC1hVl0sYUs9YVdb
YVgtYVYrYU1dLGFZPWFXW2FYXSxhSj1hV1thWCthTV07aWYoYVQpe2lmKGFWPjAmJmFaIT1udWxs
JiZhWT09bnVsbCl7YVI9YVg7YVY9LWFWO2FNPTI7Y29udGludWV9aWYoYVY8MCYmYVg9PWFMK2FW
KXtILmZpbGwoKTthVD1mYWxzZTthVj0tYVY7YU09MTthWD1hTD1hUithVjtjb250aW51ZX19aWYo
YVo9PW51bGx8fGFZPT1udWxsKXtjb250aW51ZX1pZihhWjw9YVkmJmFaPGFRLm1pbil7aWYoYVk8
YVEubWluKXtjb250aW51ZX1hSz0oYVEubWluLWFaKS8oYVktYVopKihhSi1hSykrYUs7YVo9YVEu
bWlufWVsc2V7aWYoYVk8PWFaJiZhWTxhUS5taW4pe2lmKGFaPGFRLm1pbil7Y29udGludWV9YUo9
KGFRLm1pbi1hWikvKGFZLWFaKSooYUotYUspK2FLO2FZPWFRLm1pbn19aWYoYVo+PWFZJiZhWj5h
US5tYXgpe2lmKGFZPmFRLm1heCl7Y29udGludWV9YUs9KGFRLm1heC1hWikvKGFZLWFaKSooYUot
YUspK2FLO2FaPWFRLm1heH1lbHNle2lmKGFZPj1hWiYmYVk+YVEubWF4KXtpZihhWj5hUS5tYXgp
e2NvbnRpbnVlfWFKPShhUS5tYXgtYVopLyhhWS1hWikqKGFKLWFLKSthSzthWT1hUS5tYXh9fWlm
KCFhVCl7SC5iZWdpblBhdGgoKTtILm1vdmVUbyhhUS5wMmMoYVopLGFQLnAyYyhhTikpO2FUPXRy
dWV9aWYoYUs+PWFQLm1heCYmYUo+PWFQLm1heCl7SC5saW5lVG8oYVEucDJjKGFaKSxhUC5wMmMo
YVAubWF4KSk7SC5saW5lVG8oYVEucDJjKGFZKSxhUC5wMmMoYVAubWF4KSk7Y29udGludWV9ZWxz
ZXtpZihhSzw9YVAubWluJiZhSjw9YVAubWluKXtILmxpbmVUbyhhUS5wMmMoYVopLGFQLnAyYyhh
UC5taW4pKTtILmxpbmVUbyhhUS5wMmMoYVkpLGFQLnAyYyhhUC5taW4pKTtjb250aW51ZX19dmFy
IGFPPWFaLGFTPWFZO2lmKGFLPD1hSiYmYUs8YVAubWluJiZhSj49YVAubWluKXthWj0oYVAubWlu
LWFLKS8oYUotYUspKihhWS1hWikrYVo7YUs9YVAubWlufWVsc2V7aWYoYUo8PWFLJiZhSjxhUC5t
aW4mJmFLPj1hUC5taW4pe2FZPShhUC5taW4tYUspLyhhSi1hSykqKGFZLWFaKSthWjthSj1hUC5t
aW59fWlmKGFLPj1hSiYmYUs+YVAubWF4JiZhSjw9YVAubWF4KXthWj0oYVAubWF4LWFLKS8oYUot
YUspKihhWS1hWikrYVo7YUs9YVAubWF4fWVsc2V7aWYoYUo+PWFLJiZhSj5hUC5tYXgmJmFLPD1h
UC5tYXgpe2FZPShhUC5tYXgtYUspLyhhSi1hSykqKGFZLWFaKSthWjthSj1hUC5tYXh9fWlmKGFa
IT1hTyl7SC5saW5lVG8oYVEucDJjKGFPKSxhUC5wMmMoYUspKX1ILmxpbmVUbyhhUS5wMmMoYVop
LGFQLnAyYyhhSykpO0gubGluZVRvKGFRLnAyYyhhWSksYVAucDJjKGFKKSk7aWYoYVkhPWFTKXtI
LmxpbmVUbyhhUS5wMmMoYVkpLGFQLnAyYyhhSikpO0gubGluZVRvKGFRLnAyYyhhUyksYVAucDJj
KGFKKSl9fX1ILnNhdmUoKTtILnRyYW5zbGF0ZShxLmxlZnQscS50b3ApO0gubGluZUpvaW49InJv
dW5kIjt2YXIgYUc9YUUubGluZXMubGluZVdpZHRoLGFCPWFFLnNoYWRvd1NpemU7aWYoYUc+MCYm
YUI+MCl7SC5saW5lV2lkdGg9YUI7SC5zdHJva2VTdHlsZT0icmdiYSgwLDAsMCwwLjEpIjt2YXIg
YUg9TWF0aC5QSS8xODthRChhRS5kYXRhcG9pbnRzLE1hdGguc2luKGFIKSooYUcvMithQi8yKSxN
YXRoLmNvcyhhSCkqKGFHLzIrYUIvMiksYUUueGF4aXMsYUUueWF4aXMpO0gubGluZVdpZHRoPWFC
LzI7YUQoYUUuZGF0YXBvaW50cyxNYXRoLnNpbihhSCkqKGFHLzIrYUIvNCksTWF0aC5jb3MoYUgp
KihhRy8yK2FCLzQpLGFFLnhheGlzLGFFLnlheGlzKX1ILmxpbmVXaWR0aD1hRztILnN0cm9rZVN0
eWxlPWFFLmNvbG9yO3ZhciBhQz1hZShhRS5saW5lcyxhRS5jb2xvciwwLHcpO2lmKGFDKXtILmZp
bGxTdHlsZT1hQzthRihhRS5kYXRhcG9pbnRzLGFFLnhheGlzLGFFLnlheGlzKX1pZihhRz4wKXth
RChhRS5kYXRhcG9pbnRzLDAsMCxhRS54YXhpcyxhRS55YXhpcyl9SC5yZXN0b3JlKCl9ZnVuY3Rp
b24gYW8oYUUpe2Z1bmN0aW9uIGFIKGFOLGFNLGFVLGFLLGFTLGFULGFRLGFKKXt2YXIgYVI9YU4u
cG9pbnRzLGFJPWFOLnBvaW50c2l6ZTtmb3IodmFyIGFMPTA7YUw8YVIubGVuZ3RoO2FMKz1hSSl7
dmFyIGFQPWFSW2FMXSxhTz1hUlthTCsxXTtpZihhUD09bnVsbHx8YVA8YVQubWlufHxhUD5hVC5t
YXh8fGFPPGFRLm1pbnx8YU8+YVEubWF4KXtjb250aW51ZX1ILmJlZ2luUGF0aCgpO2FQPWFULnAy
YyhhUCk7YU89YVEucDJjKGFPKSthSztpZihhSj09ImNpcmNsZSIpe0guYXJjKGFQLGFPLGFNLDAs
YVM/TWF0aC5QSTpNYXRoLlBJKjIsZmFsc2UpfWVsc2V7YUooSCxhUCxhTyxhTSxhUyl9SC5jbG9z
ZVBhdGgoKTtpZihhVSl7SC5maWxsU3R5bGU9YVU7SC5maWxsKCl9SC5zdHJva2UoKX19SC5zYXZl
KCk7SC50cmFuc2xhdGUocS5sZWZ0LHEudG9wKTt2YXIgYUc9YUUucG9pbnRzLmxpbmVXaWR0aCxh
Qz1hRS5zaGFkb3dTaXplLGFCPWFFLnBvaW50cy5yYWRpdXMsYUY9YUUucG9pbnRzLnN5bWJvbDtp
ZihhRz4wJiZhQz4wKXt2YXIgYUQ9YUMvMjtILmxpbmVXaWR0aD1hRDtILnN0cm9rZVN0eWxlPSJy
Z2JhKDAsMCwwLDAuMSkiO2FIKGFFLmRhdGFwb2ludHMsYUIsbnVsbCxhRCthRC8yLHRydWUsYUUu
eGF4aXMsYUUueWF4aXMsYUYpO0guc3Ryb2tlU3R5bGU9InJnYmEoMCwwLDAsMC4yKSI7YUgoYUUu
ZGF0YXBvaW50cyxhQixudWxsLGFELzIsdHJ1ZSxhRS54YXhpcyxhRS55YXhpcyxhRil9SC5saW5l
V2lkdGg9YUc7SC5zdHJva2VTdHlsZT1hRS5jb2xvcjthSChhRS5kYXRhcG9pbnRzLGFCLGFlKGFF
LnBvaW50cyxhRS5jb2xvciksMCxmYWxzZSxhRS54YXhpcyxhRS55YXhpcyxhRik7SC5yZXN0b3Jl
KCl9ZnVuY3Rpb24gRShhTixhTSxhVixhSSxhUSxhRixhRCxhTCxhSyxhVSxhUixhQyl7dmFyIGFF
LGFULGFKLGFQLGFHLGFCLGFPLGFILGFTO2lmKGFSKXthSD1hQj1hTz10cnVlO2FHPWZhbHNlO2FF
PWFWO2FUPWFOO2FQPWFNK2FJO2FKPWFNK2FRO2lmKGFUPGFFKXthUz1hVDthVD1hRTthRT1hUzth
Rz10cnVlO2FCPWZhbHNlfX1lbHNle2FHPWFCPWFPPXRydWU7YUg9ZmFsc2U7YUU9YU4rYUk7YVQ9
YU4rYVE7YUo9YVY7YVA9YU07aWYoYVA8YUope2FTPWFQO2FQPWFKO2FKPWFTO2FIPXRydWU7YU89
ZmFsc2V9fWlmKGFUPGFMLm1pbnx8YUU+YUwubWF4fHxhUDxhSy5taW58fGFKPmFLLm1heCl7cmV0
dXJufWlmKGFFPGFMLm1pbil7YUU9YUwubWluO2FHPWZhbHNlfWlmKGFUPmFMLm1heCl7YVQ9YUwu
bWF4O2FCPWZhbHNlfWlmKGFKPGFLLm1pbil7YUo9YUsubWluO2FIPWZhbHNlfWlmKGFQPmFLLm1h
eCl7YVA9YUsubWF4O2FPPWZhbHNlfWFFPWFMLnAyYyhhRSk7YUo9YUsucDJjKGFKKTthVD1hTC5w
MmMoYVQpO2FQPWFLLnAyYyhhUCk7aWYoYUQpe2FVLmJlZ2luUGF0aCgpO2FVLm1vdmVUbyhhRSxh
Sik7YVUubGluZVRvKGFFLGFQKTthVS5saW5lVG8oYVQsYVApO2FVLmxpbmVUbyhhVCxhSik7YVUu
ZmlsbFN0eWxlPWFEKGFKLGFQKTthVS5maWxsKCl9aWYoYUM+MCYmKGFHfHxhQnx8YU98fGFIKSl7
YVUuYmVnaW5QYXRoKCk7YVUubW92ZVRvKGFFLGFKK2FGKTtpZihhRyl7YVUubGluZVRvKGFFLGFQ
K2FGKX1lbHNle2FVLm1vdmVUbyhhRSxhUCthRil9aWYoYU8pe2FVLmxpbmVUbyhhVCxhUCthRil9
ZWxzZXthVS5tb3ZlVG8oYVQsYVArYUYpfWlmKGFCKXthVS5saW5lVG8oYVQsYUorYUYpfWVsc2V7
YVUubW92ZVRvKGFULGFKK2FGKX1pZihhSCl7YVUubGluZVRvKGFFLGFKK2FGKX1lbHNle2FVLm1v
dmVUbyhhRSxhSithRil9YVUuc3Ryb2tlKCl9fWZ1bmN0aW9uIGUoYUQpe2Z1bmN0aW9uIGFDKGFK
LGFJLGFMLGFHLGFLLGFOLGFNKXt2YXIgYU89YUoucG9pbnRzLGFGPWFKLnBvaW50c2l6ZTtmb3Io
dmFyIGFIPTA7YUg8YU8ubGVuZ3RoO2FIKz1hRil7aWYoYU9bYUhdPT1udWxsKXtjb250aW51ZX1F
KGFPW2FIXSxhT1thSCsxXSxhT1thSCsyXSxhSSxhTCxhRyxhSyxhTixhTSxILGFELmJhcnMuaG9y
aXpvbnRhbCxhRC5iYXJzLmxpbmVXaWR0aCl9fUguc2F2ZSgpO0gudHJhbnNsYXRlKHEubGVmdCxx
LnRvcCk7SC5saW5lV2lkdGg9YUQuYmFycy5saW5lV2lkdGg7SC5zdHJva2VTdHlsZT1hRC5jb2xv
cjt2YXIgYUI9YUQuYmFycy5hbGlnbj09ImxlZnQiPzA6LWFELmJhcnMuYmFyV2lkdGgvMjt2YXIg
YUU9YUQuYmFycy5maWxsP2Z1bmN0aW9uKGFGLGFHKXtyZXR1cm4gYWUoYUQuYmFycyxhRC5jb2xv
cixhRixhRyl9Om51bGw7YUMoYUQuZGF0YXBvaW50cyxhQixhQithRC5iYXJzLmJhcldpZHRoLDAs
YUUsYUQueGF4aXMsYUQueWF4aXMpO0gucmVzdG9yZSgpfWZ1bmN0aW9uIGFlKGFELGFCLGFDLGFG
KXt2YXIgYUU9YUQuZmlsbDtpZighYUUpe3JldHVybiBudWxsfWlmKGFELmZpbGxDb2xvcil7cmV0
dXJuIGFtKGFELmZpbGxDb2xvcixhQyxhRixhQil9dmFyIGFHPWMuY29sb3IucGFyc2UoYUIpO2FH
LmE9dHlwZW9mIGFFPT0ibnVtYmVyIj9hRTowLjQ7YUcubm9ybWFsaXplKCk7cmV0dXJuIGFHLnRv
U3RyaW5nKCl9ZnVuY3Rpb24gbygpe2F2LmZpbmQoIi5sZWdlbmQiKS5yZW1vdmUoKTtpZighTy5s
ZWdlbmQuc2hvdyl7cmV0dXJufXZhciBhSD1bXSxhRj1mYWxzZSxhTj1PLmxlZ2VuZC5sYWJlbEZv
cm1hdHRlcixhTSxhSjtmb3IodmFyIGFFPTA7YUU8US5sZW5ndGg7KythRSl7YU09UVthRV07YUo9
YU0ubGFiZWw7aWYoIWFKKXtjb250aW51ZX1pZihhRSVPLmxlZ2VuZC5ub0NvbHVtbnM9PTApe2lm
KGFGKXthSC5wdXNoKCI8L3RyPiIpfWFILnB1c2goIjx0cj4iKTthRj10cnVlfWlmKGFOKXthSj1h
TihhSixhTSl9YUgucHVzaCgnPHRkIGNsYXNzPSJsZWdlbmRDb2xvckJveCI+PGRpdiBzdHlsZT0i
Ym9yZGVyOjFweCBzb2xpZCAnK08ubGVnZW5kLmxhYmVsQm94Qm9yZGVyQ29sb3IrJztwYWRkaW5n
OjFweCI+PGRpdiBzdHlsZT0id2lkdGg6NHB4O2hlaWdodDowO2JvcmRlcjo1cHggc29saWQgJyth
TS5jb2xvcisnO292ZXJmbG93OmhpZGRlbiI+PC9kaXY+PC9kaXY+PC90ZD48dGQgY2xhc3M9Imxl
Z2VuZExhYmVsIj4nK2FKKyI8L3RkPiIpfWlmKGFGKXthSC5wdXNoKCI8L3RyPiIpfWlmKGFILmxl
bmd0aD09MCl7cmV0dXJufXZhciBhTD0nPHRhYmxlIHN0eWxlPSJmb250LXNpemU6c21hbGxlcjtj
b2xvcjonK08uZ3JpZC5jb2xvcisnIj4nK2FILmpvaW4oIiIpKyI8L3RhYmxlPiI7aWYoTy5sZWdl
bmQuY29udGFpbmVyIT1udWxsKXtjKE8ubGVnZW5kLmNvbnRhaW5lcikuaHRtbChhTCl9ZWxzZXt2
YXIgYUk9IiIsYUM9Ty5sZWdlbmQucG9zaXRpb24sYUQ9Ty5sZWdlbmQubWFyZ2luO2lmKGFEWzBd
PT1udWxsKXthRD1bYUQsYURdfWlmKGFDLmNoYXJBdCgwKT09Im4iKXthSSs9InRvcDoiKyhhRFsx
XStxLnRvcCkrInB4OyJ9ZWxzZXtpZihhQy5jaGFyQXQoMCk9PSJzIil7YUkrPSJib3R0b206Iiso
YURbMV0rcS5ib3R0b20pKyJweDsifX1pZihhQy5jaGFyQXQoMSk9PSJlIil7YUkrPSJyaWdodDoi
KyhhRFswXStxLnJpZ2h0KSsicHg7In1lbHNle2lmKGFDLmNoYXJBdCgxKT09InciKXthSSs9Imxl
ZnQ6IisoYURbMF0rcS5sZWZ0KSsicHg7In19dmFyIGFLPWMoJzxkaXYgY2xhc3M9ImxlZ2VuZCI+
JythTC5yZXBsYWNlKCdzdHlsZT0iJywnc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOycrYUkrIjsi
KSsiPC9kaXY+IikuYXBwZW5kVG8oYXYpO2lmKE8ubGVnZW5kLmJhY2tncm91bmRPcGFjaXR5IT0w
KXt2YXIgYUc9Ty5sZWdlbmQuYmFja2dyb3VuZENvbG9yO2lmKGFHPT1udWxsKXthRz1PLmdyaWQu
YmFja2dyb3VuZENvbG9yO2lmKGFHJiZ0eXBlb2YgYUc9PSJzdHJpbmciKXthRz1jLmNvbG9yLnBh
cnNlKGFHKX1lbHNle2FHPWMuY29sb3IuZXh0cmFjdChhSywiYmFja2dyb3VuZC1jb2xvciIpfWFH
LmE9MTthRz1hRy50b1N0cmluZygpfXZhciBhQj1hSy5jaGlsZHJlbigpO2MoJzxkaXYgc3R5bGU9
InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOicrYUIud2lkdGgoKSsicHg7aGVpZ2h0OiIrYUIuaGVp
Z2h0KCkrInB4OyIrYUkrImJhY2tncm91bmQtY29sb3I6IithRysnOyI+IDwvZGl2PicpLnByZXBl
bmRUbyhhSykuY3NzKCJvcGFjaXR5IixPLmxlZ2VuZC5iYWNrZ3JvdW5kT3BhY2l0eSl9fX12YXIg
YWI9W10sTT1udWxsO2Z1bmN0aW9uIEsoYUksYUcsYUQpe3ZhciBhTz1PLmdyaWQubW91c2VBY3Rp
dmVSYWRpdXMsYTA9YU8qYU8rMSxhWT1udWxsLGFSPWZhbHNlLGFXLGFVO2ZvcihhVz1RLmxlbmd0
aC0xO2FXPj0wOy0tYVcpe2lmKCFhRChRW2FXXSkpe2NvbnRpbnVlfXZhciBhUD1RW2FXXSxhSD1h
UC54YXhpcyxhRj1hUC55YXhpcyxhVj1hUC5kYXRhcG9pbnRzLnBvaW50cyxhVD1hUC5kYXRhcG9p
bnRzLnBvaW50c2l6ZSxhUT1hSC5jMnAoYUkpLGFOPWFGLmMycChhRyksYUM9YU8vYUguc2NhbGUs
YUI9YU8vYUYuc2NhbGU7aWYoYUgub3B0aW9ucy5pbnZlcnNlVHJhbnNmb3JtKXthQz1OdW1iZXIu
TUFYX1ZBTFVFfWlmKGFGLm9wdGlvbnMuaW52ZXJzZVRyYW5zZm9ybSl7YUI9TnVtYmVyLk1BWF9W
QUxVRX1pZihhUC5saW5lcy5zaG93fHxhUC5wb2ludHMuc2hvdyl7Zm9yKGFVPTA7YVU8YVYubGVu
Z3RoO2FVKz1hVCl7dmFyIGFLPWFWW2FVXSxhSj1hVlthVSsxXTtpZihhSz09bnVsbCl7Y29udGlu
dWV9aWYoYUstYVE+YUN8fGFLLWFRPC1hQ3x8YUotYU4+YUJ8fGFKLWFOPC1hQil7Y29udGludWV9
dmFyIGFNPU1hdGguYWJzKGFILnAyYyhhSyktYUkpLGFMPU1hdGguYWJzKGFGLnAyYyhhSiktYUcp
LGFTPWFNKmFNK2FMKmFMO2lmKGFTPGEwKXthMD1hUzthWT1bYVcsYVUvYVRdfX19aWYoYVAuYmFy
cy5zaG93JiYhYVkpe3ZhciBhRT1hUC5iYXJzLmFsaWduPT0ibGVmdCI/MDotYVAuYmFycy5iYXJX
aWR0aC8yLGFYPWFFK2FQLmJhcnMuYmFyV2lkdGg7Zm9yKGFVPTA7YVU8YVYubGVuZ3RoO2FVKz1h
VCl7dmFyIGFLPWFWW2FVXSxhSj1hVlthVSsxXSxhWj1hVlthVSsyXTtpZihhSz09bnVsbCl7Y29u
dGludWV9aWYoUVthV10uYmFycy5ob3Jpem9udGFsPyhhUTw9TWF0aC5tYXgoYVosYUspJiZhUT49
TWF0aC5taW4oYVosYUspJiZhTj49YUorYUUmJmFOPD1hSithWCk6KGFRPj1hSythRSYmYVE8PWFL
K2FYJiZhTj49TWF0aC5taW4oYVosYUopJiZhTjw9TWF0aC5tYXgoYVosYUopKSl7YVk9W2FXLGFV
L2FUXX19fX1pZihhWSl7YVc9YVlbMF07YVU9YVlbMV07YVQ9UVthV10uZGF0YXBvaW50cy5wb2lu
dHNpemU7cmV0dXJue2RhdGFwb2ludDpRW2FXXS5kYXRhcG9pbnRzLnBvaW50cy5zbGljZShhVSph
VCwoYVUrMSkqYVQpLGRhdGFJbmRleDphVSxzZXJpZXM6UVthV10sc2VyaWVzSW5kZXg6YVd9fXJl
dHVybiBudWxsfWZ1bmN0aW9uIGFhKGFCKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt1KCJwbG90aG92
ZXIiLGFCLGZ1bmN0aW9uKGFDKXtyZXR1cm4gYUMuaG92ZXJhYmxlIT1mYWxzZX0pfX1mdW5jdGlv
biBsKGFCKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt1KCJwbG90aG92ZXIiLGFCLGZ1bmN0aW9uKGFD
KXtyZXR1cm4gZmFsc2V9KX19ZnVuY3Rpb24gUihhQil7dSgicGxvdGNsaWNrIixhQixmdW5jdGlv
bihhQyl7cmV0dXJuIGFDLmNsaWNrYWJsZSE9ZmFsc2V9KX1mdW5jdGlvbiB1KGFDLGFCLGFEKXt2
YXIgYUU9eS5vZmZzZXQoKSxhSD1hQi5wYWdlWC1hRS5sZWZ0LXEubGVmdCxhRj1hQi5wYWdlWS1h
RS50b3AtcS50b3AsYUo9Qyh7bGVmdDphSCx0b3A6YUZ9KTthSi5wYWdlWD1hQi5wYWdlWDthSi5w
YWdlWT1hQi5wYWdlWTt2YXIgYUs9SyhhSCxhRixhRCk7aWYoYUspe2FLLnBhZ2VYPXBhcnNlSW50
KGFLLnNlcmllcy54YXhpcy5wMmMoYUsuZGF0YXBvaW50WzBdKSthRS5sZWZ0K3EubGVmdCk7YUsu
cGFnZVk9cGFyc2VJbnQoYUsuc2VyaWVzLnlheGlzLnAyYyhhSy5kYXRhcG9pbnRbMV0pK2FFLnRv
cCtxLnRvcCl9aWYoTy5ncmlkLmF1dG9IaWdobGlnaHQpe2Zvcih2YXIgYUc9MDthRzxhYi5sZW5n
dGg7KythRyl7dmFyIGFJPWFiW2FHXTtpZihhSS5hdXRvPT1hQyYmIShhSyYmYUkuc2VyaWVzPT1h
Sy5zZXJpZXMmJmFJLnBvaW50WzBdPT1hSy5kYXRhcG9pbnRbMF0mJmFJLnBvaW50WzFdPT1hSy5k
YXRhcG9pbnRbMV0pKXtUKGFJLnNlcmllcyxhSS5wb2ludCl9fWlmKGFLKXt4KGFLLnNlcmllcyxh
Sy5kYXRhcG9pbnQsYUMpfX1hdi50cmlnZ2VyKGFDLFthSixhS10pfWZ1bmN0aW9uIGYoKXtpZigh
TSl7TT1zZXRUaW1lb3V0KHMsMzApfX1mdW5jdGlvbiBzKCl7TT1udWxsO0Euc2F2ZSgpO0EuY2xl
YXJSZWN0KDAsMCxHLEkpO0EudHJhbnNsYXRlKHEubGVmdCxxLnRvcCk7dmFyIGFDLGFCO2Zvcihh
Qz0wO2FDPGFiLmxlbmd0aDsrK2FDKXthQj1hYlthQ107aWYoYUIuc2VyaWVzLmJhcnMuc2hvdyl7
dihhQi5zZXJpZXMsYUIucG9pbnQpfWVsc2V7YXkoYUIuc2VyaWVzLGFCLnBvaW50KX19QS5yZXN0
b3JlKCk7YW4oYWsuZHJhd092ZXJsYXksW0FdKX1mdW5jdGlvbiB4KGFELGFCLGFGKXtpZih0eXBl
b2YgYUQ9PSJudW1iZXIiKXthRD1RW2FEXX1pZih0eXBlb2YgYUI9PSJudW1iZXIiKXt2YXIgYUU9
YUQuZGF0YXBvaW50cy5wb2ludHNpemU7YUI9YUQuZGF0YXBvaW50cy5wb2ludHMuc2xpY2UoYUUq
YUIsYUUqKGFCKzEpKX12YXIgYUM9YWwoYUQsYUIpO2lmKGFDPT0tMSl7YWIucHVzaCh7c2VyaWVz
OmFELHBvaW50OmFCLGF1dG86YUZ9KTtmKCl9ZWxzZXtpZighYUYpe2FiW2FDXS5hdXRvPWZhbHNl
fX19ZnVuY3Rpb24gVChhRCxhQil7aWYoYUQ9PW51bGwmJmFCPT1udWxsKXthYj1bXTtmKCl9aWYo
dHlwZW9mIGFEPT0ibnVtYmVyIil7YUQ9UVthRF19aWYodHlwZW9mIGFCPT0ibnVtYmVyIil7YUI9
YUQuZGF0YVthQl19dmFyIGFDPWFsKGFELGFCKTtpZihhQyE9LTEpe2FiLnNwbGljZShhQywxKTtm
KCl9fWZ1bmN0aW9uIGFsKGFELGFFKXtmb3IodmFyIGFCPTA7YUI8YWIubGVuZ3RoOysrYUIpe3Zh
ciBhQz1hYlthQl07aWYoYUMuc2VyaWVzPT1hRCYmYUMucG9pbnRbMF09PWFFWzBdJiZhQy5wb2lu
dFsxXT09YUVbMV0pe3JldHVybiBhQn19cmV0dXJuIC0xfWZ1bmN0aW9uIGF5KGFFLGFEKXt2YXIg
YUM9YURbMF0sYUk9YURbMV0sYUg9YUUueGF4aXMsYUc9YUUueWF4aXM7aWYoYUM8YUgubWlufHxh
Qz5hSC5tYXh8fGFJPGFHLm1pbnx8YUk+YUcubWF4KXtyZXR1cm59dmFyIGFGPWFFLnBvaW50cy5y
YWRpdXMrYUUucG9pbnRzLmxpbmVXaWR0aC8yO0EubGluZVdpZHRoPWFGO0Euc3Ryb2tlU3R5bGU9
Yy5jb2xvci5wYXJzZShhRS5jb2xvcikuc2NhbGUoImEiLDAuNSkudG9TdHJpbmcoKTt2YXIgYUI9
MS41KmFGLGFDPWFILnAyYyhhQyksYUk9YUcucDJjKGFJKTtBLmJlZ2luUGF0aCgpO2lmKGFFLnBv
aW50cy5zeW1ib2w9PSJjaXJjbGUiKXtBLmFyYyhhQyxhSSxhQiwwLDIqTWF0aC5QSSxmYWxzZSl9
ZWxzZXthRS5wb2ludHMuc3ltYm9sKEEsYUMsYUksYUIsZmFsc2UpfUEuY2xvc2VQYXRoKCk7QS5z
dHJva2UoKX1mdW5jdGlvbiB2KGFFLGFCKXtBLmxpbmVXaWR0aD1hRS5iYXJzLmxpbmVXaWR0aDtB
LnN0cm9rZVN0eWxlPWMuY29sb3IucGFyc2UoYUUuY29sb3IpLnNjYWxlKCJhIiwwLjUpLnRvU3Ry
aW5nKCk7dmFyIGFEPWMuY29sb3IucGFyc2UoYUUuY29sb3IpLnNjYWxlKCJhIiwwLjUpLnRvU3Ry
aW5nKCk7dmFyIGFDPWFFLmJhcnMuYWxpZ249PSJsZWZ0Ij8wOi1hRS5iYXJzLmJhcldpZHRoLzI7
RShhQlswXSxhQlsxXSxhQlsyXXx8MCxhQyxhQythRS5iYXJzLmJhcldpZHRoLDAsZnVuY3Rpb24o
KXtyZXR1cm4gYUR9LGFFLnhheGlzLGFFLnlheGlzLEEsYUUuYmFycy5ob3Jpem9udGFsLGFFLmJh
cnMubGluZVdpZHRoKX1mdW5jdGlvbiBhbShhSixhQixhSCxhQyl7aWYodHlwZW9mIGFKPT0ic3Ry
aW5nIil7cmV0dXJuIGFKfWVsc2V7dmFyIGFJPUguY3JlYXRlTGluZWFyR3JhZGllbnQoMCxhSCww
LGFCKTtmb3IodmFyIGFFPTAsYUQ9YUouY29sb3JzLmxlbmd0aDthRTxhRDsrK2FFKXt2YXIgYUY9
YUouY29sb3JzW2FFXTtpZih0eXBlb2YgYUYhPSJzdHJpbmciKXt2YXIgYUc9Yy5jb2xvci5wYXJz
ZShhQyk7aWYoYUYuYnJpZ2h0bmVzcyE9bnVsbCl7YUc9YUcuc2NhbGUoInJnYiIsYUYuYnJpZ2h0
bmVzcyl9aWYoYUYub3BhY2l0eSE9bnVsbCl7YUcuYSo9YUYub3BhY2l0eX1hRj1hRy50b1N0cmlu
ZygpfWFJLmFkZENvbG9yU3RvcChhRS8oYUQtMSksYUYpfXJldHVybiBhSX19fWMucGxvdD1mdW5j
dGlvbihnLGUsZCl7dmFyIGY9bmV3IGIoYyhnKSxlLGQsYy5wbG90LnBsdWdpbnMpO3JldHVybiBm
fTtjLnBsb3QudmVyc2lvbj0iMC43IjtjLnBsb3QucGx1Z2lucz1bXTtjLnBsb3QuZm9ybWF0RGF0
ZT1mdW5jdGlvbihsLGYsaCl7dmFyIG89ZnVuY3Rpb24oZCl7ZD0iIitkO3JldHVybiBkLmxlbmd0
aD09MT8iMCIrZDpkfTt2YXIgZT1bXTt2YXIgcD1mYWxzZSxqPWZhbHNlO3ZhciBuPWwuZ2V0VVRD
SG91cnMoKTt2YXIgaz1uPDEyO2lmKGg9PW51bGwpe2g9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIi
LCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX1pZihmLnNl
YXJjaCgvJXB8JVAvKSE9LTEpe2lmKG4+MTIpe249bi0xMn1lbHNle2lmKG49PTApe249MTJ9fX1m
b3IodmFyIGc9MDtnPGYubGVuZ3RoOysrZyl7dmFyIG09Zi5jaGFyQXQoZyk7aWYocCl7c3dpdGNo
KG0pe2Nhc2UiaCI6bT0iIituO2JyZWFrO2Nhc2UiSCI6bT1vKG4pO2JyZWFrO2Nhc2UiTSI6bT1v
KGwuZ2V0VVRDTWludXRlcygpKTticmVhaztjYXNlIlMiOm09byhsLmdldFVUQ1NlY29uZHMoKSk7
YnJlYWs7Y2FzZSJkIjptPSIiK2wuZ2V0VVRDRGF0ZSgpO2JyZWFrO2Nhc2UibSI6bT0iIisobC5n
ZXRVVENNb250aCgpKzEpO2JyZWFrO2Nhc2UieSI6bT0iIitsLmdldFVUQ0Z1bGxZZWFyKCk7YnJl
YWs7Y2FzZSJiIjptPSIiK2hbbC5nZXRVVENNb250aCgpXTticmVhaztjYXNlInAiOm09KGspPygi
YW0iKTooInBtIik7YnJlYWs7Y2FzZSJQIjptPShrKT8oIkFNIik6KCJQTSIpO2JyZWFrO2Nhc2Ui
MCI6bT0iIjtqPXRydWU7YnJlYWt9aWYobSYmail7bT1vKG0pO2o9ZmFsc2V9ZS5wdXNoKG0pO2lm
KCFqKXtwPWZhbHNlfX1lbHNle2lmKG09PSIlIil7cD10cnVlfWVsc2V7ZS5wdXNoKG0pfX19cmV0
dXJuIGUuam9pbigiIil9O2Z1bmN0aW9uIGEoZSxkKXtyZXR1cm4gZCpNYXRoLmZsb29yKGUvZCl9
fSkoalF1ZXJ5KTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0aXRsZT0ianF1ZXJ5LmZsb3QuZmlsbGJl
dHdlZW4ubWluLmpzIj4KKyhmdW5jdGlvbihiKXt2YXIgYT17c2VyaWVzOntmaWxsQmV0d2Vlbjpu
dWxsfX07ZnVuY3Rpb24gYyhmKXtmdW5jdGlvbiBkKGosaCl7dmFyIGc7Zm9yKGc9MDtnPGgubGVu
Z3RoOysrZyl7aWYoaFtnXS5pZD09ai5maWxsQmV0d2Vlbil7cmV0dXJuIGhbZ119fWlmKHR5cGVv
ZiBqLmZpbGxCZXR3ZWVuPT0ibnVtYmVyIil7Zz1qLmZpbGxCZXR3ZWVuO2lmKGc8MHx8Zz49aC5s
ZW5ndGgpe3JldHVybiBudWxsfXJldHVybiBoW2ddfXJldHVybiBudWxsfWZ1bmN0aW9uIGUoQix1
LGcpe2lmKHUuZmlsbEJldHdlZW49PW51bGwpe3JldHVybn12YXIgcD1kKHUsQi5nZXREYXRhKCkp
O2lmKCFwKXtyZXR1cm59dmFyIHk9Zy5wb2ludHNpemUsRT1nLnBvaW50cyxoPXAuZGF0YXBvaW50
cy5wb2ludHNpemUseD1wLmRhdGFwb2ludHMucG9pbnRzLHI9W10sdyx2LGssRyxGLHEsdD11Lmxp
bmVzLnNob3csbz15PjImJmcuZm9ybWF0WzJdLnksbj10JiZ1LmxpbmVzLnN0ZXBzLEQ9dHJ1ZSxD
PTAsQT0wLHo7d2hpbGUodHJ1ZSl7aWYoQz49RS5sZW5ndGgpe2JyZWFrfXo9ci5sZW5ndGg7aWYo
RVtDXT09bnVsbCl7Zm9yKG09MDttPHk7KyttKXtyLnB1c2goRVtDK21dKX1DKz15fWVsc2V7aWYo
QT49eC5sZW5ndGgpe2lmKCF0KXtmb3IobT0wO208eTsrK20pe3IucHVzaChFW0MrbV0pfX1DKz15
fWVsc2V7aWYoeFtBXT09bnVsbCl7Zm9yKG09MDttPHk7KyttKXtyLnB1c2gobnVsbCl9RD10cnVl
O0ErPWh9ZWxzZXt3PUVbQ107dj1FW0MrMV07Rz14W0FdO0Y9eFtBKzFdO3E9MDtpZih3PT1HKXtm
b3IobT0wO208eTsrK20pe3IucHVzaChFW0MrbV0pfXE9RjtDKz15O0ErPWh9ZWxzZXtpZih3Pkcp
e2lmKHQmJkM+MCYmRVtDLXldIT1udWxsKXtrPXYrKEVbQy15KzFdLXYpKihHLXcpLyhFW0MteV0t
dyk7ci5wdXNoKEcpO3IucHVzaChrKTtmb3IobT0yO208eTsrK20pe3IucHVzaChFW0MrbV0pfXE9
Rn1BKz1ofWVsc2V7aWYoRCYmdCl7Qys9eTtjb250aW51ZX1mb3IobT0wO208eTsrK20pe3IucHVz
aChFW0MrbV0pfWlmKHQmJkE+MCYmeFtBLWhdIT1udWxsKXtxPUYrKHhbQS1oKzFdLUYpKih3LUcp
Lyh4W0EtaF0tRyl9Qys9eX19RD1mYWxzZTtpZih6IT1yLmxlbmd0aCYmbyl7clt6KzJdPXF9fX19
aWYobiYmeiE9ci5sZW5ndGgmJno+MCYmclt6XSE9bnVsbCYmclt6XSE9clt6LXldJiZyW3orMV0h
PXJbei15KzFdKXtmb3IobT0wO208eTsrK20pe3Jbeit5K21dPXJbeittXX1yW3orMV09clt6LXkr
MV19fWcucG9pbnRzPXJ9Zi5ob29rcy5wcm9jZXNzRGF0YXBvaW50cy5wdXNoKGUpfWIucGxvdC5w
bHVnaW5zLnB1c2goe2luaXQ6YyxvcHRpb25zOmEsbmFtZToiZmlsbGJldHdlZW4iLHZlcnNpb246
IjEuMCJ9KX0pKGpRdWVyeSk7Cis8L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisK
K3NlY3Rpb24geworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBwYWRkaW5nOiAwIDEw
cHg7Cit9CisKK3NlY3Rpb24gaDEgeworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250
LXNpemU6IDFlbTsKK30KKworc2VjdGlvbiAudG9vbHRpcCB7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kOiAjZmZjYzY2Owor
ICAgIGJvcmRlci1yYWRpdXM6IDVweDsKKyAgICBwYWRkaW5nOiAwcHggNXB4OworfQorCis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPHNjcmlw
dD4KKworZnVuY3Rpb24gYXR0YWNoUGxvdCh0ZXN0TmFtZSkgeworICAgIHZhciBzZWN0aW9uID0g
JCgnPHNlY3Rpb24+PGgxPjwvaDE+PGRpdiBjbGFzcz0icGxvdCIgc3R5bGU9IndpZHRoOiAyMDBw
eDsgaGVpZ2h0OiAzMDBweDsiPjwvZGl2PicKKyAgICAgICAgKyAnPHNwYW4gY2xhc3M9InRvb2x0
aXAiPjwvc3Bhbj48c2VjdGlvbj4nKTsKKyAgICB2YXIgdW5pdCA9IHRlc3RVbml0c1t0ZXN0TmFt
ZV07CisgICAgc2VjdGlvbi5jaGlsZHJlbignaDEnKS5odG1sKHRlc3ROYW1lICsgKHVuaXQgPyAn
ICgnICsgdW5pdCArICcpJyA6ICcnKSk7CisgICAgJCgnI2NvbnRhaW5lcicpLmFwcGVuZChzZWN0
aW9uKTsKKworICAgIHZhciBhdmVyYWdlcyA9IHRlc3RSZXN1bHRzW3Rlc3ROYW1lXTsKKyAgICB2
YXIgY29sb3IgPSAncmdiKDIzMCw1MCw1MCknOworCisgICAgdmFyIG1pbk1heE9wdGlvbnMgPSB7
bGluZXM6IHtzaG93OnRydWUsIGxpbmVXaWR0aDogMH0sCisgICAgICAgIGNvbG9yOiBjb2xvciwK
KyAgICAgICAgcG9pbnRzOiB7c2hvdzogdHJ1ZSwgcmFkaXVzOiAxfX07CisgICAgZnVuY3Rpb24g
bWFrZUxvd1Bsb3QoaWQsIGRhdGEpIHsgcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBtaW5NYXhP
cHRpb25zLCB7aWQ6IGlkLCBkYXRhOiBkYXRhfSk7IH0gICAgCisgICAgZnVuY3Rpb24gbWFrZUhp
Z2hQbG90KGZyb20sIHRvLCBmaWxsLCBkYXRhKSB7IHJldHVybiAkLmV4dGVuZCh0cnVlLCB7fSwg
bWluTWF4T3B0aW9ucywKKyAgICAgICAge2lkOiB0bywgZGF0YTogZGF0YSwgbGluZXM6IHtmaWxs
OiBmaWxsfSwgZmlsbEJldHdlZW46IGZyb219KTsgfQorCisgICAgdmFyIHBsb3REYXRhID0gWwor
ICAgICAgICBtYWtlTG93UGxvdCgnbWluJywgdGVzdFJlc3VsdHNNaW5bdGVzdE5hbWVdKSwKKyAg
ICAgICAgbWFrZUhpZ2hQbG90KCdtaW4nLCAnbWF4JywgMC4yLCB0ZXN0UmVzdWx0c01heFt0ZXN0
TmFtZV0pLAorICAgICAgICBtYWtlTG93UGxvdCgnLSYjOTYzOycsIHRlc3RSZXN1bHRzU3RkZXZM
b3dbdGVzdE5hbWVdKSwgLy8gc21hbGwgbGV0dGVyIHNnaW1hLgorICAgICAgICBtYWtlSGlnaFBs
b3QoJy0mIzk2MzsnLCAnKyYjOTYzOycsIDAuNCwgdGVzdFJlc3VsdHNTdGRldkhpZ2hbdGVzdE5h
bWVdKSwKKyAgICAgICAge2RhdGE6IGF2ZXJhZ2VzLCBjb2xvcjogY29sb3J9XTsKKworICAgIHZh
ciBwbG90Q29udGFpbmVyID0gc2VjdGlvbi5jaGlsZHJlbignLnBsb3QnKTsKKyAgICAkLnBsb3Qo
cGxvdENvbnRhaW5lciwgcGxvdERhdGEsIHsKKyAgICAgICAgeGF4aXM6IHsKKyAgICAgICAgICAg
IG1pbjogYXZlcmFnZXNbMF1bMF0gLSAwLjI1LAorICAgICAgICAgICAgbWF4OiBhdmVyYWdlc1th
dmVyYWdlcy5sZW5ndGggLSAxXVswXSArIDAuMjUsCisgICAgICAgICAgICB0aWNrU2l6ZTogMSwK
KyAgICAgICAgICAgIHRpY2tEZWNpbWFsczogMCwKKyAgICAgICAgICAgIHRpY2tGb3JtYXR0ZXI6
IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ID49IDAgPyB4IDogJyc7IH19LAorICAgICAgICB5YXhp
czoge30sCisgICAgICAgIGNyb3NzaGFpcjogeyBtb2RlOiAneScgfSwKKyAgICAgICAgc2VyaWVz
OiB7IHNoYWRvd1NpemU6IDAgfSwKKyAgICAgICAgbGluZXM6IHsgc2hvdzogZmFsc2UgfSwKKyAg
ICAgICAgcG9pbnRzOiB7IHNob3c6IHRydWUgfSwKKyAgICAgICAgZ3JpZDogeworICAgICAgICAg
ICAgYm9yZGVyV2lkdGg6IDIsCisgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJywK
KyAgICAgICAgICAgIGhvdmVyYWJsZTogdHJ1ZSwKKyAgICAgICAgICAgIGF1dG9IaWdobGlnaHQ6
IHRydWUsCisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHZhciB0b29sdGlwID0gc2VjdGlvbi5j
aGlsZHJlbignLnRvb2x0aXAnKTsKKyAgICBwbG90Q29udGFpbmVyLmJpbmQoJ3Bsb3Rob3Zlcics
IGZ1bmN0aW9uIChldmVudCwgcG9zaXRpb24sIGl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0pIHsK
KyAgICAgICAgICAgIHZhciBwb3N0Zml4ID0gaXRlbS5zZXJpZXMuaWQgPyAnICgnICsgaXRlbS5z
ZXJpZXMuaWQgKyAnKScgOiAnJzsKKyAgICAgICAgICAgIHRvb2x0aXAuaHRtbChpdGVtLmRhdGFw
b2ludFsxXS50b1ByZWNpc2lvbig0KSArIHBvc3RmaXgpOworICAgICAgICAgICAgdG9vbHRpcC5j
c3Moe2xlZnQ6IGl0ZW0ucGFnZVggLSB0b29sdGlwLm91dGVyV2lkdGgoKSAvIDIsIHRvcDogaXRl
bS5wYWdlWSArIDEwfSk7CisgICAgICAgICAgICB0b29sdGlwLmZhZGVJbigyMDApOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRvb2x0aXAuaGlkZSgpOworICAgIH0pOworfQorCit2YXIg
cmVzdWx0cyA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2pzb24nKS50ZXh0
Q29udGVudCk7Cit2YXIgdGVzdHMgPSBbXTsKK3ZhciB0ZXN0UmVzdWx0cyA9IHt9LCB0ZXN0UmVz
dWx0c01pbiA9IHt9LCB0ZXN0UmVzdWx0c01heCA9IHt9LCB0ZXN0UmVzdWx0c1N0ZGV2TG93ID0g
e30sIHRlc3RSZXN1bHRzU3RkZXZIaWdoID0ge307Cit2YXIgdGVzdFVuaXRzID0ge307CiskLmVh
Y2gocmVzdWx0cywgZnVuY3Rpb24gKGluZGV4LCBlbnRyeSkgeworICAgICQuZWFjaChlbnRyeS5y
ZXN1bHRzLCBmdW5jdGlvbiAodGVzdCwgcmVzdWx0KSB7CisgICAgICAgIGlmICh0ZXN0cy5pbmRl
eE9mKHRlc3QpIDwgMCkKKyAgICAgICAgICAgIHRlc3RzLnB1c2godGVzdCk7CisgICAgICAgIGlm
ICghdGVzdFJlc3VsdHNbdGVzdF0pIHsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzW3Rlc3RdID0g
W107CisgICAgICAgICAgICB0ZXN0UmVzdWx0c01pblt0ZXN0XSA9IFtdOworICAgICAgICAgICAg
dGVzdFJlc3VsdHNNYXhbdGVzdF0gPSBbXTsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzU3RkZXZM
b3dbdGVzdF0gPSBbXTsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzU3RkZXZIaWdoW3Rlc3RdID0g
W107CisgICAgICAgIH0KKyAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT0gJ251bWJlcicpCisg
ICAgICAgICAgICB0ZXN0UmVzdWx0c1t0ZXN0XS5wdXNoKFtpbmRleCwgcmVzdWx0XSk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgdGVzdFJlc3VsdHNbdGVzdF0ucHVzaChbaW5kZXgsIHJl
c3VsdFsnYXZnJ11dKTsKKyAgICAgICAgICAgIGlmICgnbWluJyBpbiByZXN1bHQpCisgICAgICAg
ICAgICAgICAgdGVzdFJlc3VsdHNNaW5bdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnbWluJ11d
KTsKKyAgICAgICAgICAgIGlmICgnbWF4JyBpbiByZXN1bHQpCisgICAgICAgICAgICAgICAgdGVz
dFJlc3VsdHNNYXhbdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnbWF4J11dKTsKKyAgICAgICAg
ICAgIGlmICgnc3RkZXYnIGluIHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHRlc3RSZXN1bHRz
U3RkZXZMb3dbdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnYXZnJ10gLSByZXN1bHRbJ3N0ZGV2
J11dKTsKKyAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0c1N0ZGV2SGlnaFt0ZXN0XS5wdXNoKFtp
bmRleCwgcmVzdWx0WydhdmcnXSArIHJlc3VsdFsnc3RkZXYnXV0pOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIHRlc3RVbml0c1t0ZXN0XSA9IHJlc3VsdC51bml0OworICAgIH0p
OworfSk7CiskLmVhY2godGVzdHMuc29ydCgpLCBmdW5jdGlvbiAoaW5kZXgsIHRlc3QpIHsgYXR0
YWNoUGxvdCh0ZXN0KTsgfSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzk1NykKKysrIFRvb2xzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA3LTI4ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHJ1bi1wZXJmLXRlc3RzIHNob3VsZCBnZW5l
cmF0ZSBhIHJlc3VsdHMgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB0aGUgYWJpbGl0eSB0byBnZW5lcmF0ZSByZXN1bHRzLmh0bWwgdGhh
dCBzdW1tYXJpemVzIHBlcmZvcm1hbmNlIHRlc3QgcmVzdWx0cyBmcm9tCisgICAgICAgIG11bHRp
cGxlIHJ1bnMgb2YgcnVuLXBlcmYtdGVzdHMgd2hlbiAtLW91dHB1dC1qc29uLXBhdGggaXMgc3Bl
Y2lmaWVkIGFuZCAtLXRlc3QtcmVzdWx0cy1zZXJ2ZXIKKyAgICAgICAgaXMgbm90IHNwZWNpZmll
ZC4gV2UgY2Fubm90IGdlbmVyYXRlIGEgcmVzdWx0cyBwYWdlIHdoZW4gLS10ZXN0LXJlc3VsdHMt
c2VydmVyIGlzIHNwZWNpZmllZAorICAgICAgICBiZWNhdXNlIHBlcmYtby1tYXRpYyBjYW5ub3Qg
cGFyc2UgdGhlIG5ldyBKU09OIGZvcm1hdC4KKworICAgICAgICBUaGUgbmV3IEpTT04gZm9ybWF0
IGlzIHNpbXBseSBhbiBhcnJheSBvZiB0aGUgb2xkIEpTT04gb3V0cHV0LiBUaGlzIEpTT04gaXMg
dGhlbiBtZXJnZWQgaW50bworICAgICAgICByZXN1bHRzLXRlbXBsYXRlLmh0bWwgYWxvbmcgd2l0
aCBqUXVlcnkgYW5kIGNvcGllZCBpbnRvIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgb3V0cHV0
IEpTT04KKyAgICAgICAgYXMgcmVzdWx0cy5odG1sLgorCisgICAgICAgIFdlIG1lcmdlIGFsbCBz
Y3JpcHRzIGFuZCB0aGUgSlNPTiBvdXRwdXQgaW50byByZXN1bHRzLmh0bWwgYXMgb3Bwb3NlZCB0
byBpbmNsdWRpbmcgdGhlbSB3aXRoCisgICAgICAgIHRoZSBzcmMgY29udGVudCBhdHRyaWJ1dGUg
dG8gbWFrZSBpdCBzdGFuZGFsb25lIHNvIHRoYXQgd2UgbWF5IHBvc3QgaXQgb24gQnVnemlsbGEg
b3IgZS1tYWlsIGl0CisgICAgICAgIHRvIHNvbWVvbmUgZWxzZSB3aXRob3V0IGJyZWFraW5nIGl0
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVz
dHNydW5uZXIucHk6CisgICAgICAgIChQZXJmVGVzdHNSdW5uZXIucnVuKToKKyAgICAgICAgKFBl
cmZUZXN0c1J1bm5lci5fZ2VuZXJhdGVfanNvbik6IE1lcmdlICJjb250ZW50cyIgd2l0aCB0aGUg
ZXhpc3RpbmcgSlNPTiBmaWxlIHdoZW4gZ2VuZXJhdGluZworICAgICAgICBhIHJlc3VsdHMgcGFn
ZSwgYW5kIGdlbmVyYXRlIHJlc3VsdHMuaHRtbCBmcm9tIHJlc3VsdHMtdGVtcGxhdGUuaHRtbCBt
ZXJnZWQgd2l0aCBqUXVlcnkgYW5kCisgICAgICAgIHRoZSBnZW5lcmF0ZWQgSlNPTiBvdXRwdXQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNy
dW5uZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChfdGVzdF9ydW5fd2l0aF9qc29uX291dHB1dCk6
IEV4dHJhY3RlZCBmcm9tIHRlc3RfcnVuX3dpdGhfdXBsb2FkX2pzb24gdG8gYmUgc2hhcmVkIHdp
dGgKKyAgICAgICAgc2V2ZXJhbCB0ZXN0IGNhc2VzLgorICAgICAgICAoX3Rlc3RfcnVuX3dpdGhf
anNvbl9vdXRwdXQubW9ja191cGxvYWRfanNvbik6IERpdHRvLgorICAgICAgICAodGVzdF9ydW5f
d2l0aF9qc29uX291dHB1dCk6IFJlZmFjdG9yZWQgdG8gdXNlIF90ZXN0X3J1bl93aXRoX2pzb25f
b3V0cHV0LgorICAgICAgICAodGVzdF9ydW5fZ2VuZXJhdGVzX3Jlc3VsdHNfcGFnZSk6IEFkZGVk
LiBUZXN0cyB0aGUgbmV3IGZlYXR1cmUuCisgICAgICAgICh0ZXN0X3J1bl93aXRoX2pzb25fc291
cmNlKTogUmVmYWN0b3JlZCB0byB1c2UgX3Rlc3RfcnVuX3dpdGhfanNvbl9vdXRwdXQuCisgICAg
ICAgICh0ZXN0X3J1bl93aXRoX211bHRpcGxlX3JlcG9zaXRvcmllcyk6IERpdHRvLgorICAgICAg
ICAodGVzdF9ydW5fd2l0aF91cGxvYWRfanNvbik6IERpdHRvLgorCiAyMDEyLTA3LTI3ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFN1cHBv
cnQgZm9yIEhUTUwgbWVkaWEgY2FwdHVyZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
ZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXIucHkJKHJl
dmlzaW9uIDEyMzg0MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVz
dHMvcGVyZnRlc3RzcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xNTksMTUgKzE1OSwyMCBA
QCBjbGFzcyBQZXJmVGVzdHNSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgIHRlc3RfcmVzdWx0
c19zZXJ2ZXIgPSBvcHRpb25zLnRlc3RfcmVzdWx0c19zZXJ2ZXIKICAgICAgICAgICAgIGJyYW5j
aCA9IHNlbGYuX2RlZmF1bHRfYnJhbmNoIGlmIHRlc3RfcmVzdWx0c19zZXJ2ZXIgZWxzZSBOb25l
CiAgICAgICAgICAgICBidWlsZF9udW1iZXIgPSBpbnQob3B0aW9ucy5idWlsZF9udW1iZXIpIGlm
IG9wdGlvbnMuYnVpbGRfbnVtYmVyIGVsc2UgTm9uZQorCiAgICAgICAgICAgICBpZiBub3Qgc2Vs
Zi5fZ2VuZXJhdGVfanNvbihzZWxmLl90aW1lc3RhbXAsIG9wdGlvbnMub3V0cHV0X2pzb25fcGF0
aCwgb3B0aW9ucy5zb3VyY2VfanNvbl9wYXRoLAorICAgICAgICAgICAgICAgIG5vdCB0ZXN0X3Jl
c3VsdHNfc2VydmVyLAogICAgICAgICAgICAgICAgIGJyYW5jaCwgb3B0aW9ucy5wbGF0Zm9ybSwg
b3B0aW9ucy5idWlsZGVyX25hbWUsIGJ1aWxkX251bWJlcikgYW5kIG5vdCB1bmV4cGVjdGVkOgog
ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9FWElUX0NPREVfQkFEX0pTT04KKwogICAgICAg
ICAgICAgaWYgdGVzdF9yZXN1bHRzX3NlcnZlciBhbmQgbm90IHNlbGYuX3VwbG9hZF9qc29uKHRl
c3RfcmVzdWx0c19zZXJ2ZXIsIG9wdGlvbnMub3V0cHV0X2pzb25fcGF0aCk6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX0VYSVRfQ09ERV9GQUlMRURfVVBMT0FESU5HCiAKICAgICAgICAg
cmV0dXJuIHVuZXhwZWN0ZWQKIAotICAgIGRlZiBfZ2VuZXJhdGVfanNvbihzZWxmLCB0aW1lc3Rh
bXAsIG91dHB1dF9qc29uX3BhdGgsIHNvdXJjZV9qc29uX3BhdGgsIGJyYW5jaCwgcGxhdGZvcm0s
IGJ1aWxkZXJfbmFtZSwgYnVpbGRfbnVtYmVyKToKKyAgICBkZWYgX2dlbmVyYXRlX2pzb24oc2Vs
ZiwgdGltZXN0YW1wLCBvdXRwdXRfanNvbl9wYXRoLCBzb3VyY2VfanNvbl9wYXRoLCBzaG91bGRf
Z2VuZXJhdGVfcmVzdWx0c19wYWdlLAorICAgICAgICBicmFuY2gsIHBsYXRmb3JtLCBidWlsZGVy
X25hbWUsIGJ1aWxkX251bWJlcik6CisKICAgICAgICAgY29udGVudHMgPSB7J3RpbWVzdGFtcCc6
IGludCh0aW1lc3RhbXApLCAncmVzdWx0cyc6IHNlbGYuX3Jlc3VsdHN9CiAgICAgICAgIGZvciAo
bmFtZSwgcGF0aCkgaW4gc2VsZi5fcG9ydC5yZXBvc2l0b3J5X3BhdGhzKCk6CiAgICAgICAgICAg
ICBjb250ZW50c1tuYW1lICsgJy1yZXZpc2lvbiddID0gc2VsZi5faG9zdC5zY20oKS5zdm5fcmV2
aXNpb24ocGF0aCkKQEAgLTE5Myw3ICsxOTgsMzAgQEAgY2xhc3MgUGVyZlRlc3RzUnVubmVyKG9i
amVjdCk6CiAgICAgICAgICAgICBpZiBub3Qgc3VjY2VlZGVkOgogICAgICAgICAgICAgICAgIHJl
dHVybiBGYWxzZQogCi0gICAgICAgIGZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKG91dHB1dF9q
c29uX3BhdGgsIGpzb24uZHVtcHMoY29udGVudHMpKQorICAgICAgICBpZiBzaG91bGRfZ2VuZXJh
dGVfcmVzdWx0c19wYWdlOgorICAgICAgICAgICAgaWYgZmlsZXN5c3RlbS5pc2ZpbGUob3V0cHV0
X2pzb25fcGF0aCk6CisgICAgICAgICAgICAgICAgZXhpc3RpbmdfY29udGVudHMgPSBqc29uLmxv
YWRzKGZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUob3V0cHV0X2pzb25fcGF0aCkpCisgICAgICAg
ICAgICAgICAgZXhpc3RpbmdfY29udGVudHMuYXBwZW5kKGNvbnRlbnRzKQorICAgICAgICAgICAg
ICAgIGNvbnRlbnRzID0gZXhpc3RpbmdfY29udGVudHMKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgY29udGVudHMgPSBbY29udGVudHNdCisKKyAgICAgICAgc2VyaWFsaXplZF9j
b250ZW50cyA9IGpzb24uZHVtcHMoY29udGVudHMpCisgICAgICAgIGZpbGVzeXN0ZW0ud3JpdGVf
dGV4dF9maWxlKG91dHB1dF9qc29uX3BhdGgsIHNlcmlhbGl6ZWRfY29udGVudHMpCisKKyAgICAg
ICAgaWYgc2hvdWxkX2dlbmVyYXRlX3Jlc3VsdHNfcGFnZToKKyAgICAgICAgICAgIGpxdWVyeV9w
YXRoID0gZmlsZXN5c3RlbS5qb2luKHNlbGYuX3BvcnQucGVyZl90ZXN0c19kaXIoKSwgJ0Ryb21h
ZW8vcmVzb3VyY2VzL2Ryb21hZW8vd2ViL2xpYi9qcXVlcnktMS42LjQuanMnKQorICAgICAgICAg
ICAganF1ZXJ5ID0gZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShqcXVlcnlfcGF0aCkKKworICAg
ICAgICAgICAgdGVtcGxhdGVfcGF0aCA9IGZpbGVzeXN0ZW0uam9pbihzZWxmLl9wb3J0LnBlcmZf
dGVzdHNfZGlyKCksICdyZXNvdXJjZXMvcmVzdWx0cy10ZW1wbGF0ZS5odG1sJykKKyAgICAgICAg
ICAgIHRlbXBsYXRlID0gZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSh0ZW1wbGF0ZV9wYXRoKQor
CisgICAgICAgICAgICByZXN1bHRzX3BhZ2UgPSB0ZW1wbGF0ZS5yZXBsYWNlKCc8P1dlYktpdFBl
cmZUZXN0UnVubmVySW5zZXJ0aW9uUG9pbnQ/PicsCisgICAgICAgICAgICAgICAgJzxzY3JpcHQ+
JXM8L3NjcmlwdD48c2NyaXB0IGlkPSJqc29uIj4lczwvc2NyaXB0PicgJSAoanF1ZXJ5LCBzZXJp
YWxpemVkX2NvbnRlbnRzKSkKKworICAgICAgICAgICAgZmlsZXN5c3RlbS53cml0ZV90ZXh0X2Zp
bGUoZmlsZXN5c3RlbS5qb2luKGZpbGVzeXN0ZW0uZGlybmFtZShvdXRwdXRfanNvbl9wYXRoKSwg
J3Jlc3VsdHMuaHRtbCcpLAorICAgICAgICAgICAgICAgIHJlc3VsdHNfcGFnZSkKKwogICAgICAg
ICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIF91cGxvYWRfanNvbihzZWxmLCB0ZXN0X3Jlc3VsdHNf
c2VydmVyLCBqc29uX3BhdGgsIGZpbGVfdXBsb2FkZXI9RmlsZVVwbG9hZGVyKToKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3Vu
aXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFu
Y2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAxMjM4NDApCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5l
cl91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjI1LDEwMSArMjI1LDExMSBAQCBtYXgg
MTEyMAogICAgICAgICAnbWVkaWFuPSAxMTAxLjAgbXMsIHN0ZGV2PSAxMS4wIG1zLCBtaW49IDEw
ODAuMCBtcywgbWF4PSAxMTIwLjAgbXMnLAogICAgICAgICAnJywgJyddKSkKIAotICAgIGRlZiB0
ZXN0X3J1bl90ZXN0X3NldF93aXRoX2pzb25fb3V0cHV0KHNlbGYpOgotICAgICAgICBydW5uZXIs
IHBvcnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoYXJncz1bJy0tb3V0cHV0LWpzb24tcGF0aD0vbW9j
ay1jaGVja291dC9vdXRwdXQuanNvbiddKQotICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5m
aWxlc1tydW5uZXIuX2Jhc2VfcGF0aCArICcvaW5zcGVjdG9yL3Bhc3MuaHRtbCddID0gVHJ1ZQot
ICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1tydW5uZXIuX2Jhc2VfcGF0aCArICcv
QmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIuaHRtbCddID0gVHJ1ZQotICAgICAgICBydW5u
ZXIuX3RpbWVzdGFtcCA9IDEyMzQ1Njc4OQotICAgICAgICBvdXRwdXRfY2FwdHVyZSA9IE91dHB1
dENhcHR1cmUoKQotICAgICAgICBvdXRwdXRfY2FwdHVyZS5jYXB0dXJlX291dHB1dCgpCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnVubmVyLnJ1bigpLCAwKQot
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc3Rkb3V0LCBzdGRlcnIsIGxvZ3MgPSBvdXRw
dXRfY2FwdHVyZS5yZXN0b3JlX291dHB1dCgpCisgICAgZGVmIF90ZXN0X3J1bl93aXRoX2pzb25f
b3V0cHV0KHNlbGYsIHJ1bm5lciwgZmlsZXN5c3RlbSwgdXBsb2FkX3N1Y2VlZHM9VHJ1ZSwgZXhw
ZWN0ZWRfZXhpdF9jb2RlPTApOgorICAgICAgICBmaWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShy
dW5uZXIuX2Jhc2VfcGF0aCArICcvaW5zcGVjdG9yL3Bhc3MuaHRtbCcsICdzb21lIGNvbnRlbnQn
KQorICAgICAgICBmaWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShydW5uZXIuX2Jhc2VfcGF0aCAr
ICcvQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIuaHRtbCcsICdzb21lIGNvbnRlbnQnKQog
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9ncywKLSAgICAgICAgICAgICdcbicuam9pbihb
J1J1bm5pbmcgMiB0ZXN0cycsCi0gICAgICAgICAgICAgICAgICAgICAgICdSdW5uaW5nIEJpbmRp
bmdzL2V2ZW50LXRhcmdldC13cmFwcGVyLmh0bWwgKDEgb2YgMiknLAotICAgICAgICAgICAgICAg
ICAgICAgICAnUkVTVUxUIEJpbmRpbmdzOiBldmVudC10YXJnZXQtd3JhcHBlcj0gMTQ4OS4wNSBt
cycsCi0gICAgICAgICAgICAgICAgICAgICAgICdtZWRpYW49IDE0ODcuMCBtcywgc3RkZXY9IDE0
LjQ2IG1zLCBtaW49IDE0NzEuMCBtcywgbWF4PSAxNTEwLjAgbXMnLAotICAgICAgICAgICAgICAg
ICAgICAgICAnJywKLSAgICAgICAgICAgICAgICAgICAgICAgJ1J1bm5pbmcgaW5zcGVjdG9yL3Bh
c3MuaHRtbCAoMiBvZiAyKScsCi0gICAgICAgICAgICAgICAgICAgICAgICdSRVNVTFQgZ3JvdXBf
bmFtZTogdGVzdF9uYW1lPSA0MiBtcycsCi0gICAgICAgICAgICAgICAgICAgICAgICcnLCAnJ10p
KQorICAgICAgICB1cGxvYWRlZCA9IFtGYWxzZV0KIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGpzb24ubG9hZHMocG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbJy9tb2NrLWNoZWNrb3V0L291
dHB1dC5qc29uJ10pLCB7Ci0gICAgICAgICAgICAidGltZXN0YW1wIjogMTIzNDU2Nzg5LCAicmVz
dWx0cyI6Ci0gICAgICAgICAgICB7IkJpbmRpbmdzL2V2ZW50LXRhcmdldC13cmFwcGVyIjogeyJt
YXgiOiAxNTEwLCAiYXZnIjogMTQ4OS4wNSwgIm1lZGlhbiI6IDE0ODcsICJtaW4iOiAxNDcxLCAi
c3RkZXYiOiAxNC40NiwgInVuaXQiOiAibXMifSwKLSAgICAgICAgICAgICJpbnNwZWN0b3IvcGFz
cy5odG1sOmdyb3VwX25hbWU6dGVzdF9uYW1lIjogNDJ9LAotICAgICAgICAgICAgIndlYmtpdC1y
ZXZpc2lvbiI6IDU2Nzh9KQorICAgICAgICBkZWYgbW9ja191cGxvYWRfanNvbihob3N0bmFtZSwg
anNvbl9wYXRoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaG9zdG5hbWUsICdzb21l
Lmhvc3QnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChqc29uX3BhdGgsICcvbW9jay1j
aGVja291dC9vdXRwdXQuanNvbicpCisgICAgICAgICAgICB1cGxvYWRlZFswXSA9IFRydWUKKyAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRfc3VjZWVkcwogCi0gICAgZGVmIHRlc3RfcnVuX3Rlc3Rf
c2V0X3dpdGhfanNvbl9zb3VyY2Uoc2VsZik6Ci0gICAgICAgIHJ1bm5lciwgcG9ydCA9IHNlbGYu
Y3JlYXRlX3J1bm5lcihhcmdzPVsnLS1vdXRwdXQtanNvbi1wYXRoPS9tb2NrLWNoZWNrb3V0L291
dHB1dC5qc29uJywgJy0tc291cmNlLWpzb24tcGF0aD0vbW9jay1jaGVja291dC9zb3VyY2UuanNv
biddKQotICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1snL21vY2stY2hlY2tvdXQv
c291cmNlLmpzb24nXSA9ICd7ImtleSI6ICJ2YWx1ZSJ9JwotICAgICAgICBwb3J0Lmhvc3QuZmls
ZXN5c3RlbS5maWxlc1tydW5uZXIuX2Jhc2VfcGF0aCArICcvaW5zcGVjdG9yL3Bhc3MuaHRtbCdd
ID0gVHJ1ZQotICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1tydW5uZXIuX2Jhc2Vf
cGF0aCArICcvQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIuaHRtbCddID0gVHJ1ZQorICAg
ICAgICBydW5uZXIuX3VwbG9hZF9qc29uID0gbW9ja191cGxvYWRfanNvbgogICAgICAgICBydW5u
ZXIuX3RpbWVzdGFtcCA9IDEyMzQ1Njc4OQogICAgICAgICBvdXRwdXRfY2FwdHVyZSA9IE91dHB1
dENhcHR1cmUoKQogICAgICAgICBvdXRwdXRfY2FwdHVyZS5jYXB0dXJlX291dHB1dCgpCiAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnVubmVyLnJ1bigpLCAwKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydW5uZXIucnVuKCksIGV4cGVjdGVkX2V4aXRf
Y29kZSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyLCBsb2dz
ID0gb3V0cHV0X2NhcHR1cmUucmVzdG9yZV9vdXRwdXQoKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobG9ncywgJ1xuJy5qb2luKFsnUnVubmluZyAyIHRlc3RzJywKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsb2dzLCAnXG4nLmpvaW4oWworICAgICAgICAgICAgJ1J1bm5pbmcgMiB0ZXN0
cycsCiAgICAgICAgICAgICAnUnVubmluZyBCaW5kaW5ncy9ldmVudC10YXJnZXQtd3JhcHBlci5o
dG1sICgxIG9mIDIpJywKICAgICAgICAgICAgICdSRVNVTFQgQmluZGluZ3M6IGV2ZW50LXRhcmdl
dC13cmFwcGVyPSAxNDg5LjA1IG1zJywKICAgICAgICAgICAgICdtZWRpYW49IDE0ODcuMCBtcywg
c3RkZXY9IDE0LjQ2IG1zLCBtaW49IDE0NzEuMCBtcywgbWF4PSAxNTEwLjAgbXMnLAogICAgICAg
ICAgICAgJycsCiAgICAgICAgICAgICAnUnVubmluZyBpbnNwZWN0b3IvcGFzcy5odG1sICgyIG9m
IDIpJywKICAgICAgICAgICAgICdSRVNVTFQgZ3JvdXBfbmFtZTogdGVzdF9uYW1lPSA0MiBtcycs
Ci0gICAgICAgICAgICAnJywgJyddKSkKKyAgICAgICAgICAgICcnLAorICAgICAgICAgICAgJydd
KSkKKworICAgICAgICByZXR1cm4gdXBsb2FkZWRbMF0KIAorICAgIGRlZiB0ZXN0X3J1bl93aXRo
X2pzb25fb3V0cHV0KHNlbGYpOgorICAgICAgICBydW5uZXIsIHBvcnQgPSBzZWxmLmNyZWF0ZV9y
dW5uZXIoYXJncz1bJy0tb3V0cHV0LWpzb24tcGF0aD0vbW9jay1jaGVja291dC9vdXRwdXQuanNv
bicsCisgICAgICAgICAgICAnLS10ZXN0LXJlc3VsdHMtc2VydmVyPXNvbWUuaG9zdCddKQorICAg
ICAgICBzZWxmLl90ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0KHJ1bm5lciwgcG9ydC5ob3N0LmZp
bGVzeXN0ZW0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoanNvbi5sb2Fkcyhwb3J0Lmhvc3Qu
ZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nKSks
IHsKKyAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAxMjM0NTY3ODksICJyZXN1bHRzIjoKKyAgICAg
ICAgICAgIHsiQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIiOiB7Im1heCI6IDE1MTAsICJh
dmciOiAxNDg5LjA1LCAibWVkaWFuIjogMTQ4NywgIm1pbiI6IDE0NzEsICJzdGRldiI6IDE0LjQ2
LCAidW5pdCI6ICJtcyJ9LAorICAgICAgICAgICAgImluc3BlY3Rvci9wYXNzLmh0bWw6Z3JvdXBf
bmFtZTp0ZXN0X25hbWUiOiA0Mn0sCisgICAgICAgICAgICAid2Via2l0LXJldmlzaW9uIjogNTY3
OCwgImJyYW5jaCI6ICJ3ZWJraXQtdHJ1bmsifSkKKworICAgIGRlZiB0ZXN0X3J1bl9nZW5lcmF0
ZXNfcmVzdWx0c19wYWdlKHNlbGYpOgorICAgICAgICBydW5uZXIsIHBvcnQgPSBzZWxmLmNyZWF0
ZV9ydW5uZXIoYXJncz1bJy0tb3V0cHV0LWpzb24tcGF0aD0vbW9jay1jaGVja291dC9vdXRwdXQu
anNvbiddKQorICAgICAgICBmaWxlc3lzdGVtID0gcG9ydC5ob3N0LmZpbGVzeXN0ZW0KKyAgICAg
ICAgcHJpbnQgcnVubmVyLl9iYXNlX3BhdGggKyAnL3Jlc291cmNlcy9yZXN1bHRzLXRlbXBsYXRl
Lmh0bWwnCisgICAgICAgIGZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHJ1bm5lci5fYmFzZV9w
YXRoICsgJy9yZXNvdXJjZXMvcmVzdWx0cy10ZW1wbGF0ZS5odG1sJywKKyAgICAgICAgICAgICdC
RUdJTjw/V2ViS2l0UGVyZlRlc3RSdW5uZXJJbnNlcnRpb25Qb2ludD8+RU5EJykKKyAgICAgICAg
ZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUocnVubmVyLl9iYXNlX3BhdGggKyAnL0Ryb21hZW8v
cmVzb3VyY2VzL2Ryb21hZW8vd2ViL2xpYi9qcXVlcnktMS42LjQuanMnLAorICAgICAgICAgICAg
J2pxdWVyeSBjb250ZW50JykKKworICAgICAgICBzZWxmLl90ZXN0X3J1bl93aXRoX2pzb25fb3V0
cHV0KHJ1bm5lciwgZmlsZXN5c3RlbSkKKworICAgICAgICBleHBlY3RlZF9lbnRyeSA9IHsidGlt
ZXN0YW1wIjogMTIzNDU2Nzg5LCAicmVzdWx0cyI6IHsiQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdy
YXBwZXIiOgorICAgICAgICAgICAgeyJtYXgiOiAxNTEwLCAiYXZnIjogMTQ4OS4wNSwgIm1lZGlh
biI6IDE0ODcsICJtaW4iOiAxNDcxLCAic3RkZXYiOiAxNC40NiwgInVuaXQiOiAibXMifSwKKyAg
ICAgICAgICAgICJpbnNwZWN0b3IvcGFzcy5odG1sOmdyb3VwX25hbWU6dGVzdF9uYW1lIjogNDJ9
LCAid2Via2l0LXJldmlzaW9uIjogNTY3OH0KKworICAgICAgICBzZWxmLm1heERpZmYgPSBOb25l
CisgICAgICAgIGpzb25fb3V0cHV0ID0gcG9ydC5ob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2Zp
bGUoJy9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChqc29uLmxvYWRzKGpzb25fb3V0cHV0KSwgW2V4cGVjdGVkX2VudHJ5XSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvbW9jay1jaGVja291dC9y
ZXN1bHRzLmh0bWwnKSwKKyAgICAgICAgICAgICdCRUdJTjxzY3JpcHQ+anF1ZXJ5IGNvbnRlbnQ8
L3NjcmlwdD48c2NyaXB0IGlkPSJqc29uIj4nICsganNvbl9vdXRwdXQgKyAnPC9zY3JpcHQ+RU5E
JykKKworICAgICAgICBzZWxmLl90ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0KHJ1bm5lciwgZmls
ZXN5c3RlbSkKKyAgICAgICAganNvbl9vdXRwdXQgPSBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5yZWFk
X3RleHRfZmlsZSgnL21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGpzb24ubG9hZHMoanNvbl9vdXRwdXQpLCBbZXhwZWN0ZWRfZW50cnksIGV4cGVj
dGVkX2VudHJ5XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLnJlYWRfdGV4
dF9maWxlKCcvbW9jay1jaGVja291dC9yZXN1bHRzLmh0bWwnKSwKKyAgICAgICAgICAgICdCRUdJ
TjxzY3JpcHQ+anF1ZXJ5IGNvbnRlbnQ8L3NjcmlwdD48c2NyaXB0IGlkPSJqc29uIj4nICsganNv
bl9vdXRwdXQgKyAnPC9zY3JpcHQ+RU5EJykKKworICAgIGRlZiB0ZXN0X3J1bl93aXRoX2pzb25f
c291cmNlKHNlbGYpOgorICAgICAgICBydW5uZXIsIHBvcnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIo
YXJncz1bJy0tb3V0cHV0LWpzb24tcGF0aD0vbW9jay1jaGVja291dC9vdXRwdXQuanNvbicsCisg
ICAgICAgICAgICAnLS1zb3VyY2UtanNvbi1wYXRoPS9tb2NrLWNoZWNrb3V0L3NvdXJjZS5qc29u
JywgJy0tdGVzdC1yZXN1bHRzLXNlcnZlcj1zb21lLmhvc3QnXSkKKyAgICAgICAgcG9ydC5ob3N0
LmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKCcvbW9jay1jaGVja291dC9zb3VyY2UuanNvbics
ICd7ImtleSI6ICJ2YWx1ZSJ9JykKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fd2l0aF9qc29uX291
dHB1dChydW5uZXIsIHBvcnQuaG9zdC5maWxlc3lzdGVtKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGpzb24ubG9hZHMocG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbJy9tb2NrLWNoZWNrb3V0
L291dHB1dC5qc29uJ10pLCB7CiAgICAgICAgICAgICAidGltZXN0YW1wIjogMTIzNDU2Nzg5LCAi
cmVzdWx0cyI6CiAgICAgICAgICAgICB7IkJpbmRpbmdzL2V2ZW50LXRhcmdldC13cmFwcGVyIjog
eyJtYXgiOiAxNTEwLCAiYXZnIjogMTQ4OS4wNSwgIm1lZGlhbiI6IDE0ODcsICJtaW4iOiAxNDcx
LCAic3RkZXYiOiAxNC40NiwgInVuaXQiOiAibXMifSwKICAgICAgICAgICAgICJpbnNwZWN0b3Iv
cGFzcy5odG1sOmdyb3VwX25hbWU6dGVzdF9uYW1lIjogNDJ9LAotICAgICAgICAgICAgIndlYmtp
dC1yZXZpc2lvbiI6IDU2NzgsCisgICAgICAgICAgICAid2Via2l0LXJldmlzaW9uIjogNTY3OCwg
ImJyYW5jaCI6ICJ3ZWJraXQtdHJ1bmsiLAogICAgICAgICAgICAgImtleSI6ICJ2YWx1ZSJ9KQog
Ci0gICAgZGVmIHRlc3RfcnVuX3Rlc3Rfc2V0X3dpdGhfbXVsdGlwbGVfcmVwb3NpdG9yaWVzKHNl
bGYpOgotICAgICAgICBydW5uZXIsIHBvcnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoYXJncz1bJy0t
b3V0cHV0LWpzb24tcGF0aD0vbW9jay1jaGVja291dC9vdXRwdXQuanNvbiddKQotICAgICAgICBw
b3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1tydW5uZXIuX2Jhc2VfcGF0aCArICcvaW5zcGVjdG9y
L3Bhc3MuaHRtbCddID0gVHJ1ZQotICAgICAgICBydW5uZXIuX3RpbWVzdGFtcCA9IDEyMzQ1Njc4
OQorICAgIGRlZiB0ZXN0X3J1bl93aXRoX211bHRpcGxlX3JlcG9zaXRvcmllcyhzZWxmKToKKyAg
ICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKGFyZ3M9WyctLW91dHB1dC1q
c29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nLAorICAgICAgICAgICAgJy0tdGVz
dC1yZXN1bHRzLXNlcnZlcj1zb21lLmhvc3QnXSkKICAgICAgICAgcG9ydC5yZXBvc2l0b3J5X3Bh
dGhzID0gbGFtYmRhOiBbKCd3ZWJraXQnLCAnL21vY2stY2hlY2tvdXQnKSwgKCdzb21lJywgJy9t
b2NrLWNoZWNrb3V0L3NvbWUnKV0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydW5uZXIucnVu
KCksIDApCisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX3dpdGhfanNvbl9vdXRwdXQocnVubmVyLCBw
b3J0Lmhvc3QuZmlsZXN5c3RlbSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChqc29uLmxvYWRz
KHBvcnQuaG9zdC5maWxlc3lzdGVtLmZpbGVzWycvbW9jay1jaGVja291dC9vdXRwdXQuanNvbidd
KSwgewotICAgICAgICAgICAgInRpbWVzdGFtcCI6IDEyMzQ1Njc4OSwgInJlc3VsdHMiOiB7Imlu
c3BlY3Rvci9wYXNzLmh0bWw6Z3JvdXBfbmFtZTp0ZXN0X25hbWUiOiA0Mi4wfSwgIndlYmtpdC1y
ZXZpc2lvbiI6IDU2NzgsICJzb21lLXJldmlzaW9uIjogNTY3OH0pCisgICAgICAgICAgICAidGlt
ZXN0YW1wIjogMTIzNDU2Nzg5LCAicmVzdWx0cyI6CisgICAgICAgICAgICB7IkJpbmRpbmdzL2V2
ZW50LXRhcmdldC13cmFwcGVyIjogeyJtYXgiOiAxNTEwLCAiYXZnIjogMTQ4OS4wNSwgIm1lZGlh
biI6IDE0ODcsICJtaW4iOiAxNDcxLCAic3RkZXYiOiAxNC40NiwgInVuaXQiOiAibXMifSwKKyAg
ICAgICAgICAgICJpbnNwZWN0b3IvcGFzcy5odG1sOmdyb3VwX25hbWU6dGVzdF9uYW1lIjogNDIu
MH0sCisgICAgICAgICAgICAid2Via2l0LXJldmlzaW9uIjogNTY3OCwgInNvbWUtcmV2aXNpb24i
OiA1Njc4LCAiYnJhbmNoIjogIndlYmtpdC10cnVuayJ9KQogCiAgICAgZGVmIHRlc3RfcnVuX3dp
dGhfdXBsb2FkX2pzb24oc2VsZik6CiAgICAgICAgIHJ1bm5lciwgcG9ydCA9IHNlbGYuY3JlYXRl
X3J1bm5lcihhcmdzPVsnLS1vdXRwdXQtanNvbi1wYXRoPS9tb2NrLWNoZWNrb3V0L291dHB1dC5q
c29uJywKICAgICAgICAgICAgICctLXRlc3QtcmVzdWx0cy1zZXJ2ZXInLCAnc29tZS5ob3N0Jywg
Jy0tcGxhdGZvcm0nLCAncGxhdGZvcm0xJywgJy0tYnVpbGRlci1uYW1lJywgJ2J1aWxkZXIxJywg
Jy0tYnVpbGQtbnVtYmVyJywgJzEyMyddKQotICAgICAgICB1cGxvYWRfanNvbl9pc19jYWxsZWQg
PSBbRmFsc2VdCi0gICAgICAgIHVwbG9hZF9qc29uX3JldHVybnNfdHJ1ZSA9IFRydWUKIAotICAg
ICAgICBkZWYgbW9ja191cGxvYWRfanNvbihob3N0bmFtZSwganNvbl9wYXRoKToKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoaG9zdG5hbWUsICdzb21lLmhvc3QnKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChqc29uX3BhdGgsICcvbW9jay1jaGVja291dC9vdXRwdXQuanNvbicp
Ci0gICAgICAgICAgICB1cGxvYWRfanNvbl9pc19jYWxsZWRbMF0gPSBUcnVlCi0gICAgICAgICAg
ICByZXR1cm4gdXBsb2FkX2pzb25fcmV0dXJuc190cnVlCi0KLSAgICAgICAgcnVubmVyLl91cGxv
YWRfanNvbiA9IG1vY2tfdXBsb2FkX2pzb24KLSAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0u
ZmlsZXNbJy9tb2NrLWNoZWNrb3V0L3NvdXJjZS5qc29uJ10gPSAneyJrZXkiOiAidmFsdWUifScK
LSAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbcnVubmVyLl9iYXNlX3BhdGggKyAn
L2luc3BlY3Rvci9wYXNzLmh0bWwnXSA9IFRydWUKLSAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0
ZW0uZmlsZXNbcnVubmVyLl9iYXNlX3BhdGggKyAnL0JpbmRpbmdzL2V2ZW50LXRhcmdldC13cmFw
cGVyLmh0bWwnXSA9IFRydWUKLSAgICAgICAgcnVubmVyLl90aW1lc3RhbXAgPSAxMjM0NTY3ODkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydW5uZXIucnVuKCksIDApCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodXBsb2FkX2pzb25faXNfY2FsbGVkWzBdLCBUcnVlKQorICAgICAgICBzZWxm
Ll90ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0KHJ1bm5lciwgcG9ydC5ob3N0LmZpbGVzeXN0ZW0s
IHVwbG9hZF9zdWNlZWRzPVRydWUpCiAgICAgICAgIGdlbmVyYXRlZF9qc29uID0ganNvbi5sb2Fk
cyhwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1snL21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24n
XSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZW5lcmF0ZWRfanNvblsncGxhdGZvcm0nXSwg
J3BsYXRmb3JtMScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2VuZXJhdGVkX2pzb25bJ2J1
aWxkZXItbmFtZSddLCAnYnVpbGRlcjEnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdlbmVy
YXRlZF9qc29uWydidWlsZC1udW1iZXInXSwgMTIzKQotICAgICAgICB1cGxvYWRfanNvbl9yZXR1
cm5zX3RydWUgPSBGYWxzZQogCi0gICAgICAgIHJ1bm5lciwgcG9ydCA9IHNlbGYuY3JlYXRlX3J1
bm5lcihhcmdzPVsnLS1vdXRwdXQtanNvbi1wYXRoPS9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29u
JywKLSAgICAgICAgICAgICctLXRlc3QtcmVzdWx0cy1zZXJ2ZXInLCAnc29tZS5ob3N0JywgJy0t
cGxhdGZvcm0nLCAncGxhdGZvcm0xJywgJy0tYnVpbGRlci1uYW1lJywgJ2J1aWxkZXIxJywgJy0t
YnVpbGQtbnVtYmVyJywgJzEyMyddKQotICAgICAgICBydW5uZXIuX3VwbG9hZF9qc29uID0gbW9j
a191cGxvYWRfanNvbgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwgLTMp
CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX3dpdGhfanNvbl9vdXRwdXQocnVubmVyLCBwb3J0Lmhv
c3QuZmlsZXN5c3RlbSwgdXBsb2FkX3N1Y2VlZHM9RmFsc2UsIGV4cGVjdGVkX2V4aXRfY29kZT0t
MykKIAogICAgIGRlZiB0ZXN0X3VwbG9hZF9qc29uKHNlbGYpOgogICAgICAgICBydW5uZXIsIHBv
cnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>155123</attachid>
            <date>2012-07-28 02:02:06 -0700</date>
            <delta_ts>2012-07-28 02:02:06 -0700</delta_ts>
            <desc>Sample results page</desc>
            <filename>results.html</filename>
            <type>text/html</type>
            <size>0</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155124</attachid>
            <date>2012-07-28 02:23:11 -0700</date>
            <delta_ts>2012-07-28 02:31:39 -0700</delta_ts>
            <desc>Use the same filename as the output JSON</desc>
            <filename>bug-92575-20120728022258.patch</filename>
            <type>text/plain</type>
            <size>60307</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjM5NTcpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTI4ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHJ1bi1wZXJmLXRlc3Rz
IHNob3VsZCBnZW5lcmF0ZSBhIHJlc3VsdHMgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSByZXN1bHRzIHBhZ2UgdGVtcGxhdGUuIFRoaXMg
cGFnZSBpbmNsdWRlcyBmbG90IGFuZCBmbG90LmZpbGxiZXR3ZWVuLgorICAgICAgICBqUXVlcnkg
YW5kIHRoZSBqc29uIHRoYXQgY29udGFpbnMgdGVzdCByZXN1bHRzIGFyZSBpbmplY3RlZCBieSBy
dW4tcGVyZi10ZXN0cy4KKworICAgICAgICAqIHJlc291cmNlcy9yZXN1bHRzLXRlbXBsYXRlLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA3LTI3ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNp
c2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgdXNlIGNyZWF0ZVVuaW5pdGlhbGl6ZWQgd2hlbiBj
cmVhdGluZyBUeXBlZEFycmF5IGZyb20gYW5vdGhlciBhcnJheQpJbmRleDogUGVyZm9ybWFuY2VU
ZXN0cy9yZXNvdXJjZXMvcmVzdWx0cy10ZW1wbGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvcmVzb3VyY2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRtbAkocmV2aXNpb24gMCkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzx0aXRsZT5XZWJLaXQgUGVyZm9ybWFuY2UgVGVzdCBSZXN1bHRzPC90aXRsZT4KKzw/V2Vi
S2l0UGVyZlRlc3RSdW5uZXJJbnNlcnRpb25Qb2ludD8+Cis8c2NyaXB0IHRpdGxlPSJqcXVlcnku
ZmxvdC5taW4uanMiPgorLyogSmF2YXNjcmlwdCBwbG90dGluZyBsaWJyYXJ5IGZvciBqUXVlcnks
IHYuIDAuNy4KKyAqCisgKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgYnkgSU9MQSwg
RGVjZW1iZXIgMjAwNy4KKyAqCisgKi8KKyhmdW5jdGlvbihiKXtiLmNvbG9yPXt9O2IuY29sb3Iu
bWFrZT1mdW5jdGlvbihkLGUsZyxmKXt2YXIgYz17fTtjLnI9ZHx8MDtjLmc9ZXx8MDtjLmI9Z3x8
MDtjLmE9ZiE9bnVsbD9mOjE7Yy5hZGQ9ZnVuY3Rpb24oaCxqKXtmb3IodmFyIGs9MDtrPGgubGVu
Z3RoOysrayl7Y1toLmNoYXJBdChrKV0rPWp9cmV0dXJuIGMubm9ybWFsaXplKCl9O2Muc2NhbGU9
ZnVuY3Rpb24oaCxqKXtmb3IodmFyIGs9MDtrPGgubGVuZ3RoOysrayl7Y1toLmNoYXJBdChrKV0q
PWp9cmV0dXJuIGMubm9ybWFsaXplKCl9O2MudG9TdHJpbmc9ZnVuY3Rpb24oKXtpZihjLmE+PTEp
e3JldHVybiJyZ2IoIitbYy5yLGMuZyxjLmJdLmpvaW4oIiwiKSsiKSJ9ZWxzZXtyZXR1cm4icmdi
YSgiK1tjLnIsYy5nLGMuYixjLmFdLmpvaW4oIiwiKSsiKSJ9fTtjLm5vcm1hbGl6ZT1mdW5jdGlv
bigpe2Z1bmN0aW9uIGgoayxqLGwpe3JldHVybiBqPGs/azooaj5sP2w6ail9Yy5yPWgoMCxwYXJz
ZUludChjLnIpLDI1NSk7Yy5nPWgoMCxwYXJzZUludChjLmcpLDI1NSk7Yy5iPWgoMCxwYXJzZUlu
dChjLmIpLDI1NSk7Yy5hPWgoMCxjLmEsMSk7cmV0dXJuIGN9O2MuY2xvbmU9ZnVuY3Rpb24oKXty
ZXR1cm4gYi5jb2xvci5tYWtlKGMucixjLmIsYy5nLGMuYSl9O3JldHVybiBjLm5vcm1hbGl6ZSgp
fTtiLmNvbG9yLmV4dHJhY3Q9ZnVuY3Rpb24oZCxlKXt2YXIgYztkb3tjPWQuY3NzKGUpLnRvTG93
ZXJDYXNlKCk7aWYoYyE9IiImJmMhPSJ0cmFuc3BhcmVudCIpe2JyZWFrfWQ9ZC5wYXJlbnQoKX13
aGlsZSghYi5ub2RlTmFtZShkLmdldCgwKSwiYm9keSIpKTtpZihjPT0icmdiYSgwLCAwLCAwLCAw
KSIpe2M9InRyYW5zcGFyZW50In1yZXR1cm4gYi5jb2xvci5wYXJzZShjKX07Yi5jb2xvci5wYXJz
ZT1mdW5jdGlvbihjKXt2YXIgZCxmPWIuY29sb3IubWFrZTtpZihkPS9yZ2JcKFxzKihbMC05XXsx
LDN9KVxzKixccyooWzAtOV17MSwzfSlccyosXHMqKFswLTldezEsM30pXHMqXCkvLmV4ZWMoYykp
e3JldHVybiBmKHBhcnNlSW50KGRbMV0sMTApLHBhcnNlSW50KGRbMl0sMTApLHBhcnNlSW50KGRb
M10sMTApKX1pZihkPS9yZ2JhXChccyooWzAtOV17MSwzfSlccyosXHMqKFswLTldezEsM30pXHMq
LFxzKihbMC05XXsxLDN9KVxzKixccyooWzAtOV0rKD86XC5bMC05XSspPylccypcKS8uZXhlYyhj
KSl7cmV0dXJuIGYocGFyc2VJbnQoZFsxXSwxMCkscGFyc2VJbnQoZFsyXSwxMCkscGFyc2VJbnQo
ZFszXSwxMCkscGFyc2VGbG9hdChkWzRdKSl9aWYoZD0vcmdiXChccyooWzAtOV0rKD86XC5bMC05
XSspPylcJVxzKixccyooWzAtOV0rKD86XC5bMC05XSspPylcJVxzKixccyooWzAtOV0rKD86XC5b
MC05XSspPylcJVxzKlwpLy5leGVjKGMpKXtyZXR1cm4gZihwYXJzZUZsb2F0KGRbMV0pKjIuNTUs
cGFyc2VGbG9hdChkWzJdKSoyLjU1LHBhcnNlRmxvYXQoZFszXSkqMi41NSl9aWYoZD0vcmdiYVwo
XHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVccyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVc
cyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVccyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8p
XHMqXCkvLmV4ZWMoYykpe3JldHVybiBmKHBhcnNlRmxvYXQoZFsxXSkqMi41NSxwYXJzZUZsb2F0
KGRbMl0pKjIuNTUscGFyc2VGbG9hdChkWzNdKSoyLjU1LHBhcnNlRmxvYXQoZFs0XSkpfWlmKGQ9
LyMoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkvLmV4ZWMo
Yykpe3JldHVybiBmKHBhcnNlSW50KGRbMV0sMTYpLHBhcnNlSW50KGRbMl0sMTYpLHBhcnNlSW50
KGRbM10sMTYpKX1pZihkPS8jKFthLWZBLUYwLTldKShbYS1mQS1GMC05XSkoW2EtZkEtRjAtOV0p
Ly5leGVjKGMpKXtyZXR1cm4gZihwYXJzZUludChkWzFdK2RbMV0sMTYpLHBhcnNlSW50KGRbMl0r
ZFsyXSwxNikscGFyc2VJbnQoZFszXStkWzNdLDE2KSl9dmFyIGU9Yi50cmltKGMpLnRvTG93ZXJD
YXNlKCk7aWYoZT09InRyYW5zcGFyZW50Iil7cmV0dXJuIGYoMjU1LDI1NSwyNTUsMCl9ZWxzZXtk
PWFbZV18fFswLDAsMF07cmV0dXJuIGYoZFswXSxkWzFdLGRbMl0pfX07dmFyIGE9e2FxdWE6WzAs
MjU1LDI1NV0sYXp1cmU6WzI0MCwyNTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJsYWNrOlsw
LDAsMF0sYmx1ZTpbMCwwLDI1NV0sYnJvd246WzE2NSw0Miw0Ml0sY3lhbjpbMCwyNTUsMjU1XSxk
YXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0sZGFya2dyZXk6WzE2OSwxNjks
MTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtraGFraTpbMTg5LDE4MywxMDddLGRhcmttYWdl
bnRhOlsxMzksMCwxMzldLGRhcmtvbGl2ZWdyZWVuOls4NSwxMDcsNDddLGRhcmtvcmFuZ2U6WzI1
NSwxNDAsMF0sZGFya29yY2hpZDpbMTUzLDUwLDIwNF0sZGFya3JlZDpbMTM5LDAsMF0sZGFya3Nh
bG1vbjpbMjMzLDE1MCwxMjJdLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMV0sZnVjaHNpYTpbMjU1LDAs
MjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdyZWVuOlswLDEyOCwwXSxpbmRpZ286Wzc1LDAsMTMwXSxr
aGFraTpbMjQwLDIzMCwxNDBdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzBdLGxpZ2h0Y3lhbjpbMjI0
LDI1NSwyNTVdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdodGdyZXk6WzIxMSwyMTEsMjEx
XSxsaWdodHBpbms6WzI1NSwxODIsMTkzXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjRdLGxpbWU6
WzAsMjU1LDBdLG1hZ2VudGE6WzI1NSwwLDI1NV0sbWFyb29uOlsxMjgsMCwwXSxuYXZ5OlswLDAs
MTI4XSxvbGl2ZTpbMTI4LDEyOCwwXSxvcmFuZ2U6WzI1NSwxNjUsMF0scGluazpbMjU1LDE5Miwy
MDNdLHB1cnBsZTpbMTI4LDAsMTI4XSx2aW9sZXQ6WzEyOCwwLDEyOF0scmVkOlsyNTUsMCwwXSxz
aWx2ZXI6WzE5MiwxOTIsMTkyXSx3aGl0ZTpbMjU1LDI1NSwyNTVdLHllbGxvdzpbMjU1LDI1NSww
XX19KShqUXVlcnkpOyhmdW5jdGlvbihjKXtmdW5jdGlvbiBiKGF2LGFpLEosYWYpe3ZhciBRPVtd
LE89e2NvbG9yczpbIiNlZGMyNDAiLCIjYWZkOGY4IiwiI2NiNGI0YiIsIiM0ZGE3NGQiLCIjOTQ0
MGVkIl0sbGVnZW5kOntzaG93OnRydWUsbm9Db2x1bW5zOjEsbGFiZWxGb3JtYXR0ZXI6bnVsbCxs
YWJlbEJveEJvcmRlckNvbG9yOiIjY2NjIixjb250YWluZXI6bnVsbCxwb3NpdGlvbjoibmUiLG1h
cmdpbjo1LGJhY2tncm91bmRDb2xvcjpudWxsLGJhY2tncm91bmRPcGFjaXR5OjAuODV9LHhheGlz
OntzaG93Om51bGwscG9zaXRpb246ImJvdHRvbSIsbW9kZTpudWxsLGNvbG9yOm51bGwsdGlja0Nv
bG9yOm51bGwsdHJhbnNmb3JtOm51bGwsaW52ZXJzZVRyYW5zZm9ybTpudWxsLG1pbjpudWxsLG1h
eDpudWxsLGF1dG9zY2FsZU1hcmdpbjpudWxsLHRpY2tzOm51bGwsdGlja0Zvcm1hdHRlcjpudWxs
LGxhYmVsV2lkdGg6bnVsbCxsYWJlbEhlaWdodDpudWxsLHJlc2VydmVTcGFjZTpudWxsLHRpY2tM
ZW5ndGg6bnVsbCxhbGlnblRpY2tzV2l0aEF4aXM6bnVsbCx0aWNrRGVjaW1hbHM6bnVsbCx0aWNr
U2l6ZTpudWxsLG1pblRpY2tTaXplOm51bGwsbW9udGhOYW1lczpudWxsLHRpbWVmb3JtYXQ6bnVs
bCx0d2VsdmVIb3VyQ2xvY2s6ZmFsc2V9LHlheGlzOnthdXRvc2NhbGVNYXJnaW46MC4wMixwb3Np
dGlvbjoibGVmdCJ9LHhheGVzOltdLHlheGVzOltdLHNlcmllczp7cG9pbnRzOntzaG93OmZhbHNl
LHJhZGl1czozLGxpbmVXaWR0aDoyLGZpbGw6dHJ1ZSxmaWxsQ29sb3I6IiNmZmZmZmYiLHN5bWJv
bDoiY2lyY2xlIn0sbGluZXM6e2xpbmVXaWR0aDoyLGZpbGw6ZmFsc2UsZmlsbENvbG9yOm51bGws
c3RlcHM6ZmFsc2V9LGJhcnM6e3Nob3c6ZmFsc2UsbGluZVdpZHRoOjIsYmFyV2lkdGg6MSxmaWxs
OnRydWUsZmlsbENvbG9yOm51bGwsYWxpZ246ImxlZnQiLGhvcml6b250YWw6ZmFsc2V9LHNoYWRv
d1NpemU6M30sZ3JpZDp7c2hvdzp0cnVlLGFib3ZlRGF0YTpmYWxzZSxjb2xvcjoiIzU0NTQ1NCIs
YmFja2dyb3VuZENvbG9yOm51bGwsYm9yZGVyQ29sb3I6bnVsbCx0aWNrQ29sb3I6bnVsbCxsYWJl
bE1hcmdpbjo1LGF4aXNNYXJnaW46OCxib3JkZXJXaWR0aDoyLG1pbkJvcmRlck1hcmdpbjpudWxs
LG1hcmtpbmdzOm51bGwsbWFya2luZ3NDb2xvcjoiI2Y0ZjRmNCIsbWFya2luZ3NMaW5lV2lkdGg6
MixjbGlja2FibGU6ZmFsc2UsaG92ZXJhYmxlOmZhbHNlLGF1dG9IaWdobGlnaHQ6dHJ1ZSxtb3Vz
ZUFjdGl2ZVJhZGl1czoxMH0saG9va3M6e319LGF6PW51bGwsYWQ9bnVsbCx5PW51bGwsSD1udWxs
LEE9bnVsbCxwPVtdLGF3PVtdLHE9e2xlZnQ6MCxyaWdodDowLHRvcDowLGJvdHRvbTowfSxHPTAs
ST0wLGg9MCx3PTAsYWs9e3Byb2Nlc3NPcHRpb25zOltdLHByb2Nlc3NSYXdEYXRhOltdLHByb2Nl
c3NEYXRhcG9pbnRzOltdLGRyYXdTZXJpZXM6W10sZHJhdzpbXSxiaW5kRXZlbnRzOltdLGRyYXdP
dmVybGF5OltdLHNodXRkb3duOltdfSxhcT10aGlzO2FxLnNldERhdGE9YWo7YXEuc2V0dXBHcmlk
PXQ7YXEuZHJhdz1XO2FxLmdldFBsYWNlaG9sZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGF2fTthcS5n
ZXRDYW52YXM9ZnVuY3Rpb24oKXtyZXR1cm4gYXp9O2FxLmdldFBsb3RPZmZzZXQ9ZnVuY3Rpb24o
KXtyZXR1cm4gcX07YXEud2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gaH07YXEuaGVpZ2h0PWZ1bmN0
aW9uKCl7cmV0dXJuIHd9O2FxLm9mZnNldD1mdW5jdGlvbigpe3ZhciBhQj15Lm9mZnNldCgpO2FC
LmxlZnQrPXEubGVmdDthQi50b3ArPXEudG9wO3JldHVybiBhQn07YXEuZ2V0RGF0YT1mdW5jdGlv
bigpe3JldHVybiBRfTthcS5nZXRBeGVzPWZ1bmN0aW9uKCl7dmFyIGFDPXt9LGFCO2MuZWFjaChw
LmNvbmNhdChhdyksZnVuY3Rpb24oYUQsYUUpe2lmKGFFKXthQ1thRS5kaXJlY3Rpb24rKGFFLm4h
PTE/YUUubjoiIikrImF4aXMiXT1hRX19KTtyZXR1cm4gYUN9O2FxLmdldFhBeGVzPWZ1bmN0aW9u
KCl7cmV0dXJuIHB9O2FxLmdldFlBeGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGF3fTthcS5jMnA9Qzth
cS5wMmM9YXI7YXEuZ2V0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBPfTthcS5oaWdobGlnaHQ9
eDthcS51bmhpZ2hsaWdodD1UO2FxLnRyaWdnZXJSZWRyYXdPdmVybGF5PWY7YXEucG9pbnRPZmZz
ZXQ9ZnVuY3Rpb24oYUIpe3JldHVybntsZWZ0OnBhcnNlSW50KHBbYUEoYUIsIngiKS0xXS5wMmMo
K2FCLngpK3EubGVmdCksdG9wOnBhcnNlSW50KGF3W2FBKGFCLCJ5IiktMV0ucDJjKCthQi55KStx
LnRvcCl9fTthcS5zaHV0ZG93bj1hZzthcS5yZXNpemU9ZnVuY3Rpb24oKXtCKCk7Zyhheik7Zyhh
ZCl9O2FxLmhvb2tzPWFrO0YoYXEpO1ooSik7WCgpO2FqKGFpKTt0KCk7VygpO2FoKCk7ZnVuY3Rp
b24gYW4oYUQsYUIpe2FCPVthcV0uY29uY2F0KGFCKTtmb3IodmFyIGFDPTA7YUM8YUQubGVuZ3Ro
OysrYUMpe2FEW2FDXS5hcHBseSh0aGlzLGFCKX19ZnVuY3Rpb24gRigpe2Zvcih2YXIgYUI9MDth
QjxhZi5sZW5ndGg7KythQil7dmFyIGFDPWFmW2FCXTthQy5pbml0KGFxKTtpZihhQy5vcHRpb25z
KXtjLmV4dGVuZCh0cnVlLE8sYUMub3B0aW9ucyl9fX1mdW5jdGlvbiBaKGFDKXt2YXIgYUI7Yy5l
eHRlbmQodHJ1ZSxPLGFDKTtpZihPLnhheGlzLmNvbG9yPT1udWxsKXtPLnhheGlzLmNvbG9yPU8u
Z3JpZC5jb2xvcn1pZihPLnlheGlzLmNvbG9yPT1udWxsKXtPLnlheGlzLmNvbG9yPU8uZ3JpZC5j
b2xvcn1pZihPLnhheGlzLnRpY2tDb2xvcj09bnVsbCl7Ty54YXhpcy50aWNrQ29sb3I9Ty5ncmlk
LnRpY2tDb2xvcn1pZihPLnlheGlzLnRpY2tDb2xvcj09bnVsbCl7Ty55YXhpcy50aWNrQ29sb3I9
Ty5ncmlkLnRpY2tDb2xvcn1pZihPLmdyaWQuYm9yZGVyQ29sb3I9PW51bGwpe08uZ3JpZC5ib3Jk
ZXJDb2xvcj1PLmdyaWQuY29sb3J9aWYoTy5ncmlkLnRpY2tDb2xvcj09bnVsbCl7Ty5ncmlkLnRp
Y2tDb2xvcj1jLmNvbG9yLnBhcnNlKE8uZ3JpZC5jb2xvcikuc2NhbGUoImEiLDAuMjIpLnRvU3Ry
aW5nKCl9Zm9yKGFCPTA7YUI8TWF0aC5tYXgoMSxPLnhheGVzLmxlbmd0aCk7KythQil7Ty54YXhl
c1thQl09Yy5leHRlbmQodHJ1ZSx7fSxPLnhheGlzLE8ueGF4ZXNbYUJdKX1mb3IoYUI9MDthQjxN
YXRoLm1heCgxLE8ueWF4ZXMubGVuZ3RoKTsrK2FCKXtPLnlheGVzW2FCXT1jLmV4dGVuZCh0cnVl
LHt9LE8ueWF4aXMsTy55YXhlc1thQl0pfWlmKE8ueGF4aXMubm9UaWNrcyYmTy54YXhpcy50aWNr
cz09bnVsbCl7Ty54YXhpcy50aWNrcz1PLnhheGlzLm5vVGlja3N9aWYoTy55YXhpcy5ub1RpY2tz
JiZPLnlheGlzLnRpY2tzPT1udWxsKXtPLnlheGlzLnRpY2tzPU8ueWF4aXMubm9UaWNrc31pZihP
LngyYXhpcyl7Ty54YXhlc1sxXT1jLmV4dGVuZCh0cnVlLHt9LE8ueGF4aXMsTy54MmF4aXMpO08u
eGF4ZXNbMV0ucG9zaXRpb249InRvcCJ9aWYoTy55MmF4aXMpe08ueWF4ZXNbMV09Yy5leHRlbmQo
dHJ1ZSx7fSxPLnlheGlzLE8ueTJheGlzKTtPLnlheGVzWzFdLnBvc2l0aW9uPSJyaWdodCJ9aWYo
Ty5ncmlkLmNvbG9yZWRBcmVhcyl7Ty5ncmlkLm1hcmtpbmdzPU8uZ3JpZC5jb2xvcmVkQXJlYXN9
aWYoTy5ncmlkLmNvbG9yZWRBcmVhc0NvbG9yKXtPLmdyaWQubWFya2luZ3NDb2xvcj1PLmdyaWQu
Y29sb3JlZEFyZWFzQ29sb3J9aWYoTy5saW5lcyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5saW5l
cyxPLmxpbmVzKX1pZihPLnBvaW50cyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5wb2ludHMsTy5w
b2ludHMpfWlmKE8uYmFycyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5iYXJzLE8uYmFycyl9aWYo
Ty5zaGFkb3dTaXplIT1udWxsKXtPLnNlcmllcy5zaGFkb3dTaXplPU8uc2hhZG93U2l6ZX1mb3Io
YUI9MDthQjxPLnhheGVzLmxlbmd0aDsrK2FCKXtWKHAsYUIrMSkub3B0aW9ucz1PLnhheGVzW2FC
XX1mb3IoYUI9MDthQjxPLnlheGVzLmxlbmd0aDsrK2FCKXtWKGF3LGFCKzEpLm9wdGlvbnM9Ty55
YXhlc1thQl19Zm9yKHZhciBhRCBpbiBhayl7aWYoTy5ob29rc1thRF0mJk8uaG9va3NbYURdLmxl
bmd0aCl7YWtbYURdPWFrW2FEXS5jb25jYXQoTy5ob29rc1thRF0pfX1hbihhay5wcm9jZXNzT3B0
aW9ucyxbT10pfWZ1bmN0aW9uIGFqKGFCKXtRPVkoYUIpO2F4KCk7eigpfWZ1bmN0aW9uIFkoYUUp
e3ZhciBhQz1bXTtmb3IodmFyIGFCPTA7YUI8YUUubGVuZ3RoOysrYUIpe3ZhciBhRD1jLmV4dGVu
ZCh0cnVlLHt9LE8uc2VyaWVzKTtpZihhRVthQl0uZGF0YSE9bnVsbCl7YUQuZGF0YT1hRVthQl0u
ZGF0YTtkZWxldGUgYUVbYUJdLmRhdGE7Yy5leHRlbmQodHJ1ZSxhRCxhRVthQl0pO2FFW2FCXS5k
YXRhPWFELmRhdGF9ZWxzZXthRC5kYXRhPWFFW2FCXX1hQy5wdXNoKGFEKX1yZXR1cm4gYUN9ZnVu
Y3Rpb24gYUEoYUMsYUQpe3ZhciBhQj1hQ1thRCsiYXhpcyJdO2lmKHR5cGVvZiBhQj09Im9iamVj
dCIpe2FCPWFCLm59aWYodHlwZW9mIGFCIT0ibnVtYmVyIil7YUI9MX1yZXR1cm4gYUJ9ZnVuY3Rp
b24gbSgpe3JldHVybiBjLmdyZXAocC5jb25jYXQoYXcpLGZ1bmN0aW9uKGFCKXtyZXR1cm4gYUJ9
KX1mdW5jdGlvbiBDKGFFKXt2YXIgYUM9e30sYUIsYUQ7Zm9yKGFCPTA7YUI8cC5sZW5ndGg7Kyth
Qil7YUQ9cFthQl07aWYoYUQmJmFELnVzZWQpe2FDWyJ4IithRC5uXT1hRC5jMnAoYUUubGVmdCl9
fWZvcihhQj0wO2FCPGF3Lmxlbmd0aDsrK2FCKXthRD1hd1thQl07aWYoYUQmJmFELnVzZWQpe2FD
WyJ5IithRC5uXT1hRC5jMnAoYUUudG9wKX19aWYoYUMueDEhPT11bmRlZmluZWQpe2FDLng9YUMu
eDF9aWYoYUMueTEhPT11bmRlZmluZWQpe2FDLnk9YUMueTF9cmV0dXJuIGFDfWZ1bmN0aW9uIGFy
KGFGKXt2YXIgYUQ9e30sYUMsYUUsYUI7Zm9yKGFDPTA7YUM8cC5sZW5ndGg7KythQyl7YUU9cFth
Q107aWYoYUUmJmFFLnVzZWQpe2FCPSJ4IithRS5uO2lmKGFGW2FCXT09bnVsbCYmYUUubj09MSl7
YUI9IngifWlmKGFGW2FCXSE9bnVsbCl7YUQubGVmdD1hRS5wMmMoYUZbYUJdKTticmVha319fWZv
cihhQz0wO2FDPGF3Lmxlbmd0aDsrK2FDKXthRT1hd1thQ107aWYoYUUmJmFFLnVzZWQpe2FCPSJ5
IithRS5uO2lmKGFGW2FCXT09bnVsbCYmYUUubj09MSl7YUI9InkifWlmKGFGW2FCXSE9bnVsbCl7
YUQudG9wPWFFLnAyYyhhRlthQl0pO2JyZWFrfX19cmV0dXJuIGFEfWZ1bmN0aW9uIFYoYUMsYUIp
e2lmKCFhQ1thQi0xXSl7YUNbYUItMV09e246YUIsZGlyZWN0aW9uOmFDPT1wPyJ4IjoieSIsb3B0
aW9uczpjLmV4dGVuZCh0cnVlLHt9LGFDPT1wP08ueGF4aXM6Ty55YXhpcyl9fXJldHVybiBhQ1th
Qi0xXX1mdW5jdGlvbiBheCgpe3ZhciBhRzt2YXIgYU09US5sZW5ndGgsYUI9W10sYUU9W107Zm9y
KGFHPTA7YUc8US5sZW5ndGg7KythRyl7dmFyIGFKPVFbYUddLmNvbG9yO2lmKGFKIT1udWxsKXst
LWFNO2lmKHR5cGVvZiBhSj09Im51bWJlciIpe2FFLnB1c2goYUopfWVsc2V7YUIucHVzaChjLmNv
bG9yLnBhcnNlKFFbYUddLmNvbG9yKSl9fX1mb3IoYUc9MDthRzxhRS5sZW5ndGg7KythRyl7YU09
TWF0aC5tYXgoYU0sYUVbYUddKzEpfXZhciBhQz1bXSxhRj0wO2FHPTA7d2hpbGUoYUMubGVuZ3Ro
PGFNKXt2YXIgYUk7aWYoTy5jb2xvcnMubGVuZ3RoPT1hRyl7YUk9Yy5jb2xvci5tYWtlKDEwMCwx
MDAsMTAwKX1lbHNle2FJPWMuY29sb3IucGFyc2UoTy5jb2xvcnNbYUddKX12YXIgYUQ9YUYlMj09
MT8tMToxO2FJLnNjYWxlKCJyZ2IiLDErYUQqTWF0aC5jZWlsKGFGLzIpKjAuMik7YUMucHVzaChh
SSk7KythRztpZihhRz49Ty5jb2xvcnMubGVuZ3RoKXthRz0wOysrYUZ9fXZhciBhSD0wLGFOO2Zv
cihhRz0wO2FHPFEubGVuZ3RoOysrYUcpe2FOPVFbYUddO2lmKGFOLmNvbG9yPT1udWxsKXthTi5j
b2xvcj1hQ1thSF0udG9TdHJpbmcoKTsrK2FIfWVsc2V7aWYodHlwZW9mIGFOLmNvbG9yPT0ibnVt
YmVyIil7YU4uY29sb3I9YUNbYU4uY29sb3JdLnRvU3RyaW5nKCl9fWlmKGFOLmxpbmVzLnNob3c9
PW51bGwpe3ZhciBhTCxhSz10cnVlO2ZvcihhTCBpbiBhTil7aWYoYU5bYUxdJiZhTlthTF0uc2hv
dyl7YUs9ZmFsc2U7YnJlYWt9fWlmKGFLKXthTi5saW5lcy5zaG93PXRydWV9fWFOLnhheGlzPVYo
cCxhQShhTiwieCIpKTthTi55YXhpcz1WKGF3LGFBKGFOLCJ5IikpfX1mdW5jdGlvbiB6KCl7dmFy
IGFPPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxhST1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFks
YUI9TnVtYmVyLk1BWF9WQUxVRSxhVSxhUyxhUixhTixhRCxhSixhVCxhUCxhSCxhRyxhQyxhMCxh
WCxhTDtmdW5jdGlvbiBhRihhMyxhMixhMSl7aWYoYTI8YTMuZGF0YW1pbiYmYTIhPS1hQil7YTMu
ZGF0YW1pbj1hMn1pZihhMT5hMy5kYXRhbWF4JiZhMSE9YUIpe2EzLmRhdGFtYXg9YTF9fWMuZWFj
aChtKCksZnVuY3Rpb24oYTEsYTIpe2EyLmRhdGFtaW49YU87YTIuZGF0YW1heD1hSTthMi51c2Vk
PWZhbHNlfSk7Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVthVV07YUouZGF0YXBvaW50
cz17cG9pbnRzOltdfTthbihhay5wcm9jZXNzUmF3RGF0YSxbYUosYUouZGF0YSxhSi5kYXRhcG9p
bnRzXSl9Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVthVV07dmFyIGFaPWFKLmRhdGEs
YVc9YUouZGF0YXBvaW50cy5mb3JtYXQ7aWYoIWFXKXthVz1bXTthVy5wdXNoKHt4OnRydWUsbnVt
YmVyOnRydWUscmVxdWlyZWQ6dHJ1ZX0pO2FXLnB1c2goe3k6dHJ1ZSxudW1iZXI6dHJ1ZSxyZXF1
aXJlZDp0cnVlfSk7aWYoYUouYmFycy5zaG93fHwoYUoubGluZXMuc2hvdyYmYUoubGluZXMuZmls
bCkpe2FXLnB1c2goe3k6dHJ1ZSxudW1iZXI6dHJ1ZSxyZXF1aXJlZDpmYWxzZSxkZWZhdWx0VmFs
dWU6MH0pO2lmKGFKLmJhcnMuaG9yaXpvbnRhbCl7ZGVsZXRlIGFXW2FXLmxlbmd0aC0xXS55O2FX
W2FXLmxlbmd0aC0xXS54PXRydWV9fWFKLmRhdGFwb2ludHMuZm9ybWF0PWFXfWlmKGFKLmRhdGFw
b2ludHMucG9pbnRzaXplIT1udWxsKXtjb250aW51ZX1hSi5kYXRhcG9pbnRzLnBvaW50c2l6ZT1h
Vy5sZW5ndGg7YVA9YUouZGF0YXBvaW50cy5wb2ludHNpemU7YVQ9YUouZGF0YXBvaW50cy5wb2lu
dHM7aW5zZXJ0U3RlcHM9YUoubGluZXMuc2hvdyYmYUoubGluZXMuc3RlcHM7YUoueGF4aXMudXNl
ZD1hSi55YXhpcy51c2VkPXRydWU7Zm9yKGFTPWFSPTA7YVM8YVoubGVuZ3RoOysrYVMsYVIrPWFQ
KXthTD1hWlthU107dmFyIGFFPWFMPT1udWxsO2lmKCFhRSl7Zm9yKGFOPTA7YU48YVA7KythTil7
YTA9YUxbYU5dO2FYPWFXW2FOXTtpZihhWCl7aWYoYVgubnVtYmVyJiZhMCE9bnVsbCl7YTA9K2Ew
O2lmKGlzTmFOKGEwKSl7YTA9bnVsbH1lbHNle2lmKGEwPT1JbmZpbml0eSl7YTA9YUJ9ZWxzZXtp
ZihhMD09LUluZmluaXR5KXthMD0tYUJ9fX19aWYoYTA9PW51bGwpe2lmKGFYLnJlcXVpcmVkKXth
RT10cnVlfWlmKGFYLmRlZmF1bHRWYWx1ZSE9bnVsbCl7YTA9YVguZGVmYXVsdFZhbHVlfX19YVRb
YVIrYU5dPWEwfX1pZihhRSl7Zm9yKGFOPTA7YU48YVA7KythTil7YTA9YVRbYVIrYU5dO2lmKGEw
IT1udWxsKXthWD1hV1thTl07aWYoYVgueCl7YUYoYUoueGF4aXMsYTAsYTApfWlmKGFYLnkpe2FG
KGFKLnlheGlzLGEwLGEwKX19YVRbYVIrYU5dPW51bGx9fWVsc2V7aWYoaW5zZXJ0U3RlcHMmJmFS
PjAmJmFUW2FSLWFQXSE9bnVsbCYmYVRbYVItYVBdIT1hVFthUl0mJmFUW2FSLWFQKzFdIT1hVFth
UisxXSl7Zm9yKGFOPTA7YU48YVA7KythTil7YVRbYVIrYVArYU5dPWFUW2FSK2FOXX1hVFthUisx
XT1hVFthUi1hUCsxXTthUis9YVB9fX19Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVth
VV07YW4oYWsucHJvY2Vzc0RhdGFwb2ludHMsW2FKLGFKLmRhdGFwb2ludHNdKX1mb3IoYVU9MDth
VTxRLmxlbmd0aDsrK2FVKXthSj1RW2FVXTthVD1hSi5kYXRhcG9pbnRzLnBvaW50cyxhUD1hSi5k
YXRhcG9pbnRzLnBvaW50c2l6ZTt2YXIgYUs9YU8sYVE9YU8sYU09YUksYVY9YUk7Zm9yKGFTPTA7
YVM8YVQubGVuZ3RoO2FTKz1hUCl7aWYoYVRbYVNdPT1udWxsKXtjb250aW51ZX1mb3IoYU49MDth
TjxhUDsrK2FOKXthMD1hVFthUythTl07YVg9YVdbYU5dO2lmKCFhWHx8YTA9PWFCfHxhMD09LWFC
KXtjb250aW51ZX1pZihhWC54KXtpZihhMDxhSyl7YUs9YTB9aWYoYTA+YU0pe2FNPWEwfX1pZihh
WC55KXtpZihhMDxhUSl7YVE9YTB9aWYoYTA+YVYpe2FWPWEwfX19fWlmKGFKLmJhcnMuc2hvdyl7
dmFyIGFZPWFKLmJhcnMuYWxpZ249PSJsZWZ0Ij8wOi1hSi5iYXJzLmJhcldpZHRoLzI7aWYoYUou
YmFycy5ob3Jpem9udGFsKXthUSs9YVk7YVYrPWFZK2FKLmJhcnMuYmFyV2lkdGh9ZWxzZXthSys9
YVk7YU0rPWFZK2FKLmJhcnMuYmFyV2lkdGh9fWFGKGFKLnhheGlzLGFLLGFNKTthRihhSi55YXhp
cyxhUSxhVil9Yy5lYWNoKG0oKSxmdW5jdGlvbihhMSxhMil7aWYoYTIuZGF0YW1pbj09YU8pe2Ey
LmRhdGFtaW49bnVsbH1pZihhMi5kYXRhbWF4PT1hSSl7YTIuZGF0YW1heD1udWxsfX0pfWZ1bmN0
aW9uIGooYUIsYUMpe3ZhciBhRD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthRC5j
bGFzc05hbWU9YUM7YUQud2lkdGg9RzthRC5oZWlnaHQ9STtpZighYUIpe2MoYUQpLmNzcyh7cG9z
aXRpb246ImFic29sdXRlIixsZWZ0OjAsdG9wOjB9KX1jKGFEKS5hcHBlbmRUbyhhdik7aWYoIWFE
LmdldENvbnRleHQpe2FEPXdpbmRvdy5HX3ZtbENhbnZhc01hbmFnZXIuaW5pdEVsZW1lbnQoYUQp
fWFELmdldENvbnRleHQoIjJkIikuc2F2ZSgpO3JldHVybiBhRH1mdW5jdGlvbiBCKCl7Rz1hdi53
aWR0aCgpO0k9YXYuaGVpZ2h0KCk7aWYoRzw9MHx8STw9MCl7dGhyb3ciSW52YWxpZCBkaW1lbnNp
b25zIGZvciBwbG90LCB3aWR0aCA9ICIrRysiLCBoZWlnaHQgPSAiK0l9fWZ1bmN0aW9uIGcoYUMp
e2lmKGFDLndpZHRoIT1HKXthQy53aWR0aD1HfWlmKGFDLmhlaWdodCE9SSl7YUMuaGVpZ2h0PUl9
dmFyIGFCPWFDLmdldENvbnRleHQoIjJkIik7YUIucmVzdG9yZSgpO2FCLnNhdmUoKX1mdW5jdGlv
biBYKCl7dmFyIGFDLGFCPWF2LmNoaWxkcmVuKCJjYW52YXMuYmFzZSIpLGFEPWF2LmNoaWxkcmVu
KCJjYW52YXMub3ZlcmxheSIpO2lmKGFCLmxlbmd0aD09MHx8YUQ9PTApe2F2Lmh0bWwoIiIpO2F2
LmNzcyh7cGFkZGluZzowfSk7aWYoYXYuY3NzKCJwb3NpdGlvbiIpPT0ic3RhdGljIil7YXYuY3Nz
KCJwb3NpdGlvbiIsInJlbGF0aXZlIil9QigpO2F6PWoodHJ1ZSwiYmFzZSIpO2FkPWooZmFsc2Us
Im92ZXJsYXkiKTthQz1mYWxzZX1lbHNle2F6PWFCLmdldCgwKTthZD1hRC5nZXQoMCk7YUM9dHJ1
ZX1IPWF6LmdldENvbnRleHQoIjJkIik7QT1hZC5nZXRDb250ZXh0KCIyZCIpO3k9YyhbYWQsYXpd
KTtpZihhQyl7YXYuZGF0YSgicGxvdCIpLnNodXRkb3duKCk7YXEucmVzaXplKCk7QS5jbGVhclJl
Y3QoMCwwLEcsSSk7eS51bmJpbmQoKTthdi5jaGlsZHJlbigpLm5vdChbYXosYWRdKS5yZW1vdmUo
KX1hdi5kYXRhKCJwbG90IixhcSl9ZnVuY3Rpb24gYWgoKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt5
Lm1vdXNlbW92ZShhYSk7eS5tb3VzZWxlYXZlKGwpfWlmKE8uZ3JpZC5jbGlja2FibGUpe3kuY2xp
Y2soUil9YW4oYWsuYmluZEV2ZW50cyxbeV0pfWZ1bmN0aW9uIGFnKCl7aWYoTSl7Y2xlYXJUaW1l
b3V0KE0pfXkudW5iaW5kKCJtb3VzZW1vdmUiLGFhKTt5LnVuYmluZCgibW91c2VsZWF2ZSIsbCk7
eS51bmJpbmQoImNsaWNrIixSKTthbihhay5zaHV0ZG93bixbeV0pfWZ1bmN0aW9uIHIoYUcpe2Z1
bmN0aW9uIGFDKGFIKXtyZXR1cm4gYUh9dmFyIGFGLGFCLGFEPWFHLm9wdGlvbnMudHJhbnNmb3Jt
fHxhQyxhRT1hRy5vcHRpb25zLmludmVyc2VUcmFuc2Zvcm07aWYoYUcuZGlyZWN0aW9uPT0ieCIp
e2FGPWFHLnNjYWxlPWgvTWF0aC5hYnMoYUQoYUcubWF4KS1hRChhRy5taW4pKTthQj1NYXRoLm1p
bihhRChhRy5tYXgpLGFEKGFHLm1pbikpfWVsc2V7YUY9YUcuc2NhbGU9dy9NYXRoLmFicyhhRChh
Ry5tYXgpLWFEKGFHLm1pbikpO2FGPS1hRjthQj1NYXRoLm1heChhRChhRy5tYXgpLGFEKGFHLm1p
bikpfWlmKGFEPT1hQyl7YUcucDJjPWZ1bmN0aW9uKGFIKXtyZXR1cm4oYUgtYUIpKmFGfX1lbHNl
e2FHLnAyYz1mdW5jdGlvbihhSCl7cmV0dXJuKGFEKGFIKS1hQikqYUZ9fWlmKCFhRSl7YUcuYzJw
PWZ1bmN0aW9uKGFIKXtyZXR1cm4gYUIrYUgvYUZ9fWVsc2V7YUcuYzJwPWZ1bmN0aW9uKGFIKXty
ZXR1cm4gYUUoYUIrYUgvYUYpfX19ZnVuY3Rpb24gTChhRCl7dmFyIGFCPWFELm9wdGlvbnMsYUYs
YUo9YUQudGlja3N8fFtdLGFJPVtdLGFFLGFLPWFCLmxhYmVsV2lkdGgsYUc9YUIubGFiZWxIZWln
aHQsYUM7ZnVuY3Rpb24gYUgoYU0sYUwpe3JldHVybiBjKCc8ZGl2IHN0eWxlPSJwb3NpdGlvbjph
YnNvbHV0ZTt0b3A6LTEwMDAwcHg7JythTCsnZm9udC1zaXplOnNtYWxsZXIiPjxkaXYgY2xhc3M9
IicrYUQuZGlyZWN0aW9uKyJBeGlzICIrYUQuZGlyZWN0aW9uK2FELm4rJ0F4aXMiPicrYU0uam9p
bigiIikrIjwvZGl2PjwvZGl2PiIpLmFwcGVuZFRvKGF2KX1pZihhRC5kaXJlY3Rpb249PSJ4Iil7
aWYoYUs9PW51bGwpe2FLPU1hdGguZmxvb3IoRy8oYUoubGVuZ3RoPjA/YUoubGVuZ3RoOjEpKX1p
ZihhRz09bnVsbCl7YUk9W107Zm9yKGFGPTA7YUY8YUoubGVuZ3RoOysrYUYpe2FFPWFKW2FGXS5s
YWJlbDtpZihhRSl7YUkucHVzaCgnPGRpdiBjbGFzcz0idGlja0xhYmVsIiBzdHlsZT0iZmxvYXQ6
bGVmdDt3aWR0aDonK2FLKydweCI+JythRSsiPC9kaXY+Iil9fWlmKGFJLmxlbmd0aD4wKXthSS5w
dXNoKCc8ZGl2IHN0eWxlPSJjbGVhcjpsZWZ0Ij48L2Rpdj4nKTthQz1hSChhSSwid2lkdGg6MTAw
MDBweDsiKTthRz1hQy5oZWlnaHQoKTthQy5yZW1vdmUoKX19fWVsc2V7aWYoYUs9PW51bGx8fGFH
PT1udWxsKXtmb3IoYUY9MDthRjxhSi5sZW5ndGg7KythRil7YUU9YUpbYUZdLmxhYmVsO2lmKGFF
KXthSS5wdXNoKCc8ZGl2IGNsYXNzPSJ0aWNrTGFiZWwiPicrYUUrIjwvZGl2PiIpfX1pZihhSS5s
ZW5ndGg+MCl7YUM9YUgoYUksIiIpO2lmKGFLPT1udWxsKXthSz1hQy5jaGlsZHJlbigpLndpZHRo
KCl9aWYoYUc9PW51bGwpe2FHPWFDLmZpbmQoImRpdi50aWNrTGFiZWwiKS5oZWlnaHQoKX1hQy5y
ZW1vdmUoKX19fWlmKGFLPT1udWxsKXthSz0wfWlmKGFHPT1udWxsKXthRz0wfWFELmxhYmVsV2lk
dGg9YUs7YUQubGFiZWxIZWlnaHQ9YUd9ZnVuY3Rpb24gYXUoYUQpe3ZhciBhQz1hRC5sYWJlbFdp
ZHRoLGFMPWFELmxhYmVsSGVpZ2h0LGFIPWFELm9wdGlvbnMucG9zaXRpb24sYUY9YUQub3B0aW9u
cy50aWNrTGVuZ3RoLGFHPU8uZ3JpZC5heGlzTWFyZ2luLGFKPU8uZ3JpZC5sYWJlbE1hcmdpbixh
Sz1hRC5kaXJlY3Rpb249PSJ4Ij9wOmF3LGFFO3ZhciBhQj1jLmdyZXAoYUssZnVuY3Rpb24oYU4p
e3JldHVybiBhTiYmYU4ub3B0aW9ucy5wb3NpdGlvbj09YUgmJmFOLnJlc2VydmVTcGFjZX0pO2lm
KGMuaW5BcnJheShhRCxhQik9PWFCLmxlbmd0aC0xKXthRz0wfWlmKGFGPT1udWxsKXthRj0iZnVs
bCJ9dmFyIGFJPWMuZ3JlcChhSyxmdW5jdGlvbihhTil7cmV0dXJuIGFOJiZhTi5yZXNlcnZlU3Bh
Y2V9KTt2YXIgYU09Yy5pbkFycmF5KGFELGFJKT09MDtpZighYU0mJmFGPT0iZnVsbCIpe2FGPTV9
aWYoIWlzTmFOKCthRikpe2FKKz0rYUZ9aWYoYUQuZGlyZWN0aW9uPT0ieCIpe2FMKz1hSjtpZihh
SD09ImJvdHRvbSIpe3EuYm90dG9tKz1hTCthRzthRC5ib3g9e3RvcDpJLXEuYm90dG9tLGhlaWdo
dDphTH19ZWxzZXthRC5ib3g9e3RvcDpxLnRvcCthRyxoZWlnaHQ6YUx9O3EudG9wKz1hTCthR319
ZWxzZXthQys9YUo7aWYoYUg9PSJsZWZ0Iil7YUQuYm94PXtsZWZ0OnEubGVmdCthRyx3aWR0aDph
Q307cS5sZWZ0Kz1hQythR31lbHNle3EucmlnaHQrPWFDK2FHO2FELmJveD17bGVmdDpHLXEucmln
aHQsd2lkdGg6YUN9fX1hRC5wb3NpdGlvbj1hSDthRC50aWNrTGVuZ3RoPWFGO2FELmJveC5wYWRk
aW5nPWFKO2FELmlubmVybW9zdD1hTX1mdW5jdGlvbiBVKGFCKXtpZihhQi5kaXJlY3Rpb249PSJ4
Iil7YUIuYm94LmxlZnQ9cS5sZWZ0O2FCLmJveC53aWR0aD1ofWVsc2V7YUIuYm94LnRvcD1xLnRv
cDthQi5ib3guaGVpZ2h0PXd9fWZ1bmN0aW9uIHQoKXt2YXIgYUMsYUU9bSgpO2MuZWFjaChhRSxm
dW5jdGlvbihhRixhRyl7YUcuc2hvdz1hRy5vcHRpb25zLnNob3c7aWYoYUcuc2hvdz09bnVsbCl7
YUcuc2hvdz1hRy51c2VkfWFHLnJlc2VydmVTcGFjZT1hRy5zaG93fHxhRy5vcHRpb25zLnJlc2Vy
dmVTcGFjZTtuKGFHKX0pO2FsbG9jYXRlZEF4ZXM9Yy5ncmVwKGFFLGZ1bmN0aW9uKGFGKXtyZXR1
cm4gYUYucmVzZXJ2ZVNwYWNlfSk7cS5sZWZ0PXEucmlnaHQ9cS50b3A9cS5ib3R0b209MDtpZihP
LmdyaWQuc2hvdyl7Yy5lYWNoKGFsbG9jYXRlZEF4ZXMsZnVuY3Rpb24oYUYsYUcpe1MoYUcpO1Ao
YUcpO2FwKGFHLGFHLnRpY2tzKTtMKGFHKX0pO2ZvcihhQz1hbGxvY2F0ZWRBeGVzLmxlbmd0aC0x
O2FDPj0wOy0tYUMpe2F1KGFsbG9jYXRlZEF4ZXNbYUNdKX12YXIgYUQ9Ty5ncmlkLm1pbkJvcmRl
ck1hcmdpbjtpZihhRD09bnVsbCl7YUQ9MDtmb3IoYUM9MDthQzxRLmxlbmd0aDsrK2FDKXthRD1N
YXRoLm1heChhRCxRW2FDXS5wb2ludHMucmFkaXVzK1FbYUNdLnBvaW50cy5saW5lV2lkdGgvMil9
fWZvcih2YXIgYUIgaW4gcSl7cVthQl0rPU8uZ3JpZC5ib3JkZXJXaWR0aDtxW2FCXT1NYXRoLm1h
eChhRCxxW2FCXSl9fWg9Ry1xLmxlZnQtcS5yaWdodDt3PUktcS5ib3R0b20tcS50b3A7Yy5lYWNo
KGFFLGZ1bmN0aW9uKGFGLGFHKXtyKGFHKX0pO2lmKE8uZ3JpZC5zaG93KXtjLmVhY2goYWxsb2Nh
dGVkQXhlcyxmdW5jdGlvbihhRixhRyl7VShhRyl9KTtrKCl9bygpfWZ1bmN0aW9uIG4oYUUpe3Zh
ciBhRj1hRS5vcHRpb25zLGFEPSsoYUYubWluIT1udWxsP2FGLm1pbjphRS5kYXRhbWluKSxhQj0r
KGFGLm1heCE9bnVsbD9hRi5tYXg6YUUuZGF0YW1heCksYUg9YUItYUQ7aWYoYUg9PTApe3ZhciBh
Qz1hQj09MD8xOjAuMDE7aWYoYUYubWluPT1udWxsKXthRC09YUN9aWYoYUYubWF4PT1udWxsfHxh
Ri5taW4hPW51bGwpe2FCKz1hQ319ZWxzZXt2YXIgYUc9YUYuYXV0b3NjYWxlTWFyZ2luO2lmKGFH
IT1udWxsKXtpZihhRi5taW49PW51bGwpe2FELT1hSCphRztpZihhRDwwJiZhRS5kYXRhbWluIT1u
dWxsJiZhRS5kYXRhbWluPj0wKXthRD0wfX1pZihhRi5tYXg9PW51bGwpe2FCKz1hSCphRztpZihh
Qj4wJiZhRS5kYXRhbWF4IT1udWxsJiZhRS5kYXRhbWF4PD0wKXthQj0wfX19fWFFLm1pbj1hRDth
RS5tYXg9YUJ9ZnVuY3Rpb24gUyhhRyl7dmFyIGFNPWFHLm9wdGlvbnM7dmFyIGFIO2lmKHR5cGVv
ZiBhTS50aWNrcz09Im51bWJlciImJmFNLnRpY2tzPjApe2FIPWFNLnRpY2tzfWVsc2V7YUg9MC4z
Kk1hdGguc3FydChhRy5kaXJlY3Rpb249PSJ4Ij9HOkkpfXZhciBhVD0oYUcubWF4LWFHLm1pbikv
YUgsYU8sYUIsYU4sYVIsYVMsYVEsYUk7aWYoYU0ubW9kZT09InRpbWUiKXt2YXIgYUo9e3NlY29u
ZDoxMDAwLG1pbnV0ZTo2MCoxMDAwLGhvdXI6NjAqNjAqMTAwMCxkYXk6MjQqNjAqNjAqMTAwMCxt
b250aDozMCoyNCo2MCo2MCoxMDAwLHllYXI6MzY1LjI0MjUqMjQqNjAqNjAqMTAwMH07dmFyIGFL
PVtbMSwic2Vjb25kIl0sWzIsInNlY29uZCJdLFs1LCJzZWNvbmQiXSxbMTAsInNlY29uZCJdLFsz
MCwic2Vjb25kIl0sWzEsIm1pbnV0ZSJdLFsyLCJtaW51dGUiXSxbNSwibWludXRlIl0sWzEwLCJt
aW51dGUiXSxbMzAsIm1pbnV0ZSJdLFsxLCJob3VyIl0sWzIsImhvdXIiXSxbNCwiaG91ciJdLFs4
LCJob3VyIl0sWzEyLCJob3VyIl0sWzEsImRheSJdLFsyLCJkYXkiXSxbMywiZGF5Il0sWzAuMjUs
Im1vbnRoIl0sWzAuNSwibW9udGgiXSxbMSwibW9udGgiXSxbMiwibW9udGgiXSxbMywibW9udGgi
XSxbNiwibW9udGgiXSxbMSwieWVhciJdXTt2YXIgYUM9MDtpZihhTS5taW5UaWNrU2l6ZSE9bnVs
bCl7aWYodHlwZW9mIGFNLnRpY2tTaXplPT0ibnVtYmVyIil7YUM9YU0udGlja1NpemV9ZWxzZXth
Qz1hTS5taW5UaWNrU2l6ZVswXSphSlthTS5taW5UaWNrU2l6ZVsxXV19fWZvcih2YXIgYVM9MDth
UzxhSy5sZW5ndGgtMTsrK2FTKXtpZihhVDwoYUtbYVNdWzBdKmFKW2FLW2FTXVsxXV0rYUtbYVMr
MV1bMF0qYUpbYUtbYVMrMV1bMV1dKS8yJiZhS1thU11bMF0qYUpbYUtbYVNdWzFdXT49YUMpe2Jy
ZWFrfX1hTz1hS1thU11bMF07YU49YUtbYVNdWzFdO2lmKGFOPT0ieWVhciIpe2FRPU1hdGgucG93
KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coYVQvYUoueWVhcikvTWF0aC5MTjEwKSk7YUk9KGFUL2FK
LnllYXIpL2FRO2lmKGFJPDEuNSl7YU89MX1lbHNle2lmKGFJPDMpe2FPPTJ9ZWxzZXtpZihhSTw3
LjUpe2FPPTV9ZWxzZXthTz0xMH19fWFPKj1hUX1hRy50aWNrU2l6ZT1hTS50aWNrU2l6ZXx8W2FP
LGFOXTthQj1mdW5jdGlvbihhWCl7dmFyIGEyPVtdLGEwPWFYLnRpY2tTaXplWzBdLGEzPWFYLnRp
Y2tTaXplWzFdLGExPW5ldyBEYXRlKGFYLm1pbik7dmFyIGFXPWEwKmFKW2EzXTtpZihhMz09InNl
Y29uZCIpe2ExLnNldFVUQ1NlY29uZHMoYShhMS5nZXRVVENTZWNvbmRzKCksYTApKX1pZihhMz09
Im1pbnV0ZSIpe2ExLnNldFVUQ01pbnV0ZXMoYShhMS5nZXRVVENNaW51dGVzKCksYTApKX1pZihh
Mz09ImhvdXIiKXthMS5zZXRVVENIb3VycyhhKGExLmdldFVUQ0hvdXJzKCksYTApKX1pZihhMz09
Im1vbnRoIil7YTEuc2V0VVRDTW9udGgoYShhMS5nZXRVVENNb250aCgpLGEwKSl9aWYoYTM9PSJ5
ZWFyIil7YTEuc2V0VVRDRnVsbFllYXIoYShhMS5nZXRVVENGdWxsWWVhcigpLGEwKSl9YTEuc2V0
VVRDTWlsbGlzZWNvbmRzKDApO2lmKGFXPj1hSi5taW51dGUpe2ExLnNldFVUQ1NlY29uZHMoMCl9
aWYoYVc+PWFKLmhvdXIpe2ExLnNldFVUQ01pbnV0ZXMoMCl9aWYoYVc+PWFKLmRheSl7YTEuc2V0
VVRDSG91cnMoMCl9aWYoYVc+PWFKLmRheSo0KXthMS5zZXRVVENEYXRlKDEpfWlmKGFXPj1hSi55
ZWFyKXthMS5zZXRVVENNb250aCgwKX12YXIgYTU9MCxhND1OdW1iZXIuTmFOLGFZO2Rve2FZPWE0
O2E0PWExLmdldFRpbWUoKTthMi5wdXNoKGE0KTtpZihhMz09Im1vbnRoIil7aWYoYTA8MSl7YTEu
c2V0VVRDRGF0ZSgxKTt2YXIgYVY9YTEuZ2V0VGltZSgpO2ExLnNldFVUQ01vbnRoKGExLmdldFVU
Q01vbnRoKCkrMSk7dmFyIGFaPWExLmdldFRpbWUoKTthMS5zZXRUaW1lKGE0K2E1KmFKLmhvdXIr
KGFaLWFWKSphMCk7YTU9YTEuZ2V0VVRDSG91cnMoKTthMS5zZXRVVENIb3VycygwKX1lbHNle2Ex
LnNldFVUQ01vbnRoKGExLmdldFVUQ01vbnRoKCkrYTApfX1lbHNle2lmKGEzPT0ieWVhciIpe2Ex
LnNldFVUQ0Z1bGxZZWFyKGExLmdldFVUQ0Z1bGxZZWFyKCkrYTApfWVsc2V7YTEuc2V0VGltZShh
NCthVyl9fX13aGlsZShhNDxhWC5tYXgmJmE0IT1hWSk7cmV0dXJuIGEyfTthUj1mdW5jdGlvbihh
VixhWSl7dmFyIGEwPW5ldyBEYXRlKGFWKTtpZihhTS50aW1lZm9ybWF0IT1udWxsKXtyZXR1cm4g
Yy5wbG90LmZvcm1hdERhdGUoYTAsYU0udGltZWZvcm1hdCxhTS5tb250aE5hbWVzKX12YXIgYVc9
YVkudGlja1NpemVbMF0qYUpbYVkudGlja1NpemVbMV1dO3ZhciBhWD1hWS5tYXgtYVkubWluO3Zh
ciBhWj0oYU0udHdlbHZlSG91ckNsb2NrKT8iICVwIjoiIjtpZihhVzxhSi5taW51dGUpe2ZtdD0i
JWg6JU06JVMiK2FafWVsc2V7aWYoYVc8YUouZGF5KXtpZihhWDwyKmFKLmRheSl7Zm10PSIlaDol
TSIrYVp9ZWxzZXtmbXQ9IiViICVkICVoOiVNIithWn19ZWxzZXtpZihhVzxhSi5tb250aCl7Zm10
PSIlYiAlZCJ9ZWxzZXtpZihhVzxhSi55ZWFyKXtpZihhWDxhSi55ZWFyKXtmbXQ9IiViIn1lbHNl
e2ZtdD0iJWIgJXkifX1lbHNle2ZtdD0iJXkifX19fXJldHVybiBjLnBsb3QuZm9ybWF0RGF0ZShh
MCxmbXQsYU0ubW9udGhOYW1lcyl9fWVsc2V7dmFyIGFVPWFNLnRpY2tEZWNpbWFsczt2YXIgYVA9
LU1hdGguZmxvb3IoTWF0aC5sb2coYVQpL01hdGguTE4xMCk7aWYoYVUhPW51bGwmJmFQPmFVKXth
UD1hVX1hUT1NYXRoLnBvdygxMCwtYVApO2FJPWFUL2FRO2lmKGFJPDEuNSl7YU89MX1lbHNle2lm
KGFJPDMpe2FPPTI7aWYoYUk+Mi4yNSYmKGFVPT1udWxsfHxhUCsxPD1hVSkpe2FPPTIuNTsrK2FQ
fX1lbHNle2lmKGFJPDcuNSl7YU89NX1lbHNle2FPPTEwfX19YU8qPWFRO2lmKGFNLm1pblRpY2tT
aXplIT1udWxsJiZhTzxhTS5taW5UaWNrU2l6ZSl7YU89YU0ubWluVGlja1NpemV9YUcudGlja0Rl
Y2ltYWxzPU1hdGgubWF4KDAsYVUhPW51bGw/YVU6YVApO2FHLnRpY2tTaXplPWFNLnRpY2tTaXpl
fHxhTzthQj1mdW5jdGlvbihhWCl7dmFyIGFaPVtdO3ZhciBhMD1hKGFYLm1pbixhWC50aWNrU2l6
ZSksYVc9MCxhVj1OdW1iZXIuTmFOLGFZO2Rve2FZPWFWO2FWPWEwK2FXKmFYLnRpY2tTaXplO2Fa
LnB1c2goYVYpOysrYVd9d2hpbGUoYVY8YVgubWF4JiZhViE9YVkpO3JldHVybiBhWn07YVI9ZnVu
Y3Rpb24oYVYsYVcpe3JldHVybiBhVi50b0ZpeGVkKGFXLnRpY2tEZWNpbWFscyl9fWlmKGFNLmFs
aWduVGlja3NXaXRoQXhpcyE9bnVsbCl7dmFyIGFGPShhRy5kaXJlY3Rpb249PSJ4Ij9wOmF3KVth
TS5hbGlnblRpY2tzV2l0aEF4aXMtMV07aWYoYUYmJmFGLnVzZWQmJmFGIT1hRyl7dmFyIGFMPWFC
KGFHKTtpZihhTC5sZW5ndGg+MCl7aWYoYU0ubWluPT1udWxsKXthRy5taW49TWF0aC5taW4oYUcu
bWluLGFMWzBdKX1pZihhTS5tYXg9PW51bGwmJmFMLmxlbmd0aD4xKXthRy5tYXg9TWF0aC5tYXgo
YUcubWF4LGFMW2FMLmxlbmd0aC0xXSl9fWFCPWZ1bmN0aW9uKGFYKXt2YXIgYVk9W10sYVYsYVc7
Zm9yKGFXPTA7YVc8YUYudGlja3MubGVuZ3RoOysrYVcpe2FWPShhRi50aWNrc1thV10udi1hRi5t
aW4pLyhhRi5tYXgtYUYubWluKTthVj1hWC5taW4rYVYqKGFYLm1heC1hWC5taW4pO2FZLnB1c2go
YVYpfXJldHVybiBhWX07aWYoYUcubW9kZSE9InRpbWUiJiZhTS50aWNrRGVjaW1hbHM9PW51bGwp
e3ZhciBhRT1NYXRoLm1heCgwLC1NYXRoLmZsb29yKE1hdGgubG9nKGFUKS9NYXRoLkxOMTApKzEp
LGFEPWFCKGFHKTtpZighKGFELmxlbmd0aD4xJiYvXC4uKjAkLy50ZXN0KChhRFsxXS1hRFswXSku
dG9GaXhlZChhRSkpKSl7YUcudGlja0RlY2ltYWxzPWFFfX19fWFHLnRpY2tHZW5lcmF0b3I9YUI7
aWYoYy5pc0Z1bmN0aW9uKGFNLnRpY2tGb3JtYXR0ZXIpKXthRy50aWNrRm9ybWF0dGVyPWZ1bmN0
aW9uKGFWLGFXKXtyZXR1cm4iIithTS50aWNrRm9ybWF0dGVyKGFWLGFXKX19ZWxzZXthRy50aWNr
Rm9ybWF0dGVyPWFSfX1mdW5jdGlvbiBQKGFGKXt2YXIgYUg9YUYub3B0aW9ucy50aWNrcyxhRz1b
XTtpZihhSD09bnVsbHx8KHR5cGVvZiBhSD09Im51bWJlciImJmFIPjApKXthRz1hRi50aWNrR2Vu
ZXJhdG9yKGFGKX1lbHNle2lmKGFIKXtpZihjLmlzRnVuY3Rpb24oYUgpKXthRz1hSCh7bWluOmFG
Lm1pbixtYXg6YUYubWF4fSl9ZWxzZXthRz1hSH19fXZhciBhRSxhQjthRi50aWNrcz1bXTtmb3Io
YUU9MDthRTxhRy5sZW5ndGg7KythRSl7dmFyIGFDPW51bGw7dmFyIGFEPWFHW2FFXTtpZih0eXBl
b2YgYUQ9PSJvYmplY3QiKXthQj0rYURbMF07aWYoYUQubGVuZ3RoPjEpe2FDPWFEWzFdfX1lbHNl
e2FCPSthRH1pZihhQz09bnVsbCl7YUM9YUYudGlja0Zvcm1hdHRlcihhQixhRil9aWYoIWlzTmFO
KGFCKSl7YUYudGlja3MucHVzaCh7djphQixsYWJlbDphQ30pfX19ZnVuY3Rpb24gYXAoYUIsYUMp
e2lmKGFCLm9wdGlvbnMuYXV0b3NjYWxlTWFyZ2luJiZhQy5sZW5ndGg+MCl7aWYoYUIub3B0aW9u
cy5taW49PW51bGwpe2FCLm1pbj1NYXRoLm1pbihhQi5taW4sYUNbMF0udil9aWYoYUIub3B0aW9u
cy5tYXg9PW51bGwmJmFDLmxlbmd0aD4xKXthQi5tYXg9TWF0aC5tYXgoYUIubWF4LGFDW2FDLmxl
bmd0aC0xXS52KX19fWZ1bmN0aW9uIFcoKXtILmNsZWFyUmVjdCgwLDAsRyxJKTt2YXIgYUM9Ty5n
cmlkO2lmKGFDLnNob3cmJmFDLmJhY2tncm91bmRDb2xvcil7TigpfWlmKGFDLnNob3cmJiFhQy5h
Ym92ZURhdGEpe2FjKCl9Zm9yKHZhciBhQj0wO2FCPFEubGVuZ3RoOysrYUIpe2FuKGFrLmRyYXdT
ZXJpZXMsW0gsUVthQl1dKTtkKFFbYUJdKX1hbihhay5kcmF3LFtIXSk7aWYoYUMuc2hvdyYmYUMu
YWJvdmVEYXRhKXthYygpfX1mdW5jdGlvbiBEKGFCLGFJKXt2YXIgYUUsYUgsYUcsYUQsYUY9bSgp
O2ZvcihpPTA7aTxhRi5sZW5ndGg7KytpKXthRT1hRltpXTtpZihhRS5kaXJlY3Rpb249PWFJKXth
RD1hSSthRS5uKyJheGlzIjtpZighYUJbYURdJiZhRS5uPT0xKXthRD1hSSsiYXhpcyJ9aWYoYUJb
YURdKXthSD1hQlthRF0uZnJvbTthRz1hQlthRF0udG87YnJlYWt9fX1pZighYUJbYURdKXthRT1h
ST09IngiP3BbMF06YXdbMF07YUg9YUJbYUkrIjEiXTthRz1hQlthSSsiMiJdfWlmKGFIIT1udWxs
JiZhRyE9bnVsbCYmYUg+YUcpe3ZhciBhQz1hSDthSD1hRzthRz1hQ31yZXR1cm57ZnJvbTphSCx0
bzphRyxheGlzOmFFfX1mdW5jdGlvbiBOKCl7SC5zYXZlKCk7SC50cmFuc2xhdGUocS5sZWZ0LHEu
dG9wKTtILmZpbGxTdHlsZT1hbShPLmdyaWQuYmFja2dyb3VuZENvbG9yLHcsMCwicmdiYSgyNTUs
IDI1NSwgMjU1LCAwKSIpO0guZmlsbFJlY3QoMCwwLGgsdyk7SC5yZXN0b3JlKCl9ZnVuY3Rpb24g
YWMoKXt2YXIgYUY7SC5zYXZlKCk7SC50cmFuc2xhdGUocS5sZWZ0LHEudG9wKTt2YXIgYUg9Ty5n
cmlkLm1hcmtpbmdzO2lmKGFIKXtpZihjLmlzRnVuY3Rpb24oYUgpKXt2YXIgYUs9YXEuZ2V0QXhl
cygpO2FLLnhtaW49YUsueGF4aXMubWluO2FLLnhtYXg9YUsueGF4aXMubWF4O2FLLnltaW49YUsu
eWF4aXMubWluO2FLLnltYXg9YUsueWF4aXMubWF4O2FIPWFIKGFLKX1mb3IoYUY9MDthRjxhSC5s
ZW5ndGg7KythRil7dmFyIGFEPWFIW2FGXSxhQz1EKGFELCJ4IiksYUk9RChhRCwieSIpO2lmKGFD
LmZyb209PW51bGwpe2FDLmZyb209YUMuYXhpcy5taW59aWYoYUMudG89PW51bGwpe2FDLnRvPWFD
LmF4aXMubWF4fWlmKGFJLmZyb209PW51bGwpe2FJLmZyb209YUkuYXhpcy5taW59aWYoYUkudG89
PW51bGwpe2FJLnRvPWFJLmF4aXMubWF4fWlmKGFDLnRvPGFDLmF4aXMubWlufHxhQy5mcm9tPmFD
LmF4aXMubWF4fHxhSS50bzxhSS5heGlzLm1pbnx8YUkuZnJvbT5hSS5heGlzLm1heCl7Y29udGlu
dWV9YUMuZnJvbT1NYXRoLm1heChhQy5mcm9tLGFDLmF4aXMubWluKTthQy50bz1NYXRoLm1pbihh
Qy50byxhQy5heGlzLm1heCk7YUkuZnJvbT1NYXRoLm1heChhSS5mcm9tLGFJLmF4aXMubWluKTth
SS50bz1NYXRoLm1pbihhSS50byxhSS5heGlzLm1heCk7aWYoYUMuZnJvbT09YUMudG8mJmFJLmZy
b209PWFJLnRvKXtjb250aW51ZX1hQy5mcm9tPWFDLmF4aXMucDJjKGFDLmZyb20pO2FDLnRvPWFD
LmF4aXMucDJjKGFDLnRvKTthSS5mcm9tPWFJLmF4aXMucDJjKGFJLmZyb20pO2FJLnRvPWFJLmF4
aXMucDJjKGFJLnRvKTtpZihhQy5mcm9tPT1hQy50b3x8YUkuZnJvbT09YUkudG8pe0guYmVnaW5Q
YXRoKCk7SC5zdHJva2VTdHlsZT1hRC5jb2xvcnx8Ty5ncmlkLm1hcmtpbmdzQ29sb3I7SC5saW5l
V2lkdGg9YUQubGluZVdpZHRofHxPLmdyaWQubWFya2luZ3NMaW5lV2lkdGg7SC5tb3ZlVG8oYUMu
ZnJvbSxhSS5mcm9tKTtILmxpbmVUbyhhQy50byxhSS50byk7SC5zdHJva2UoKX1lbHNle0guZmls
bFN0eWxlPWFELmNvbG9yfHxPLmdyaWQubWFya2luZ3NDb2xvcjtILmZpbGxSZWN0KGFDLmZyb20s
YUkudG8sYUMudG8tYUMuZnJvbSxhSS5mcm9tLWFJLnRvKX19fXZhciBhSz1tKCksYU09Ty5ncmlk
LmJvcmRlcldpZHRoO2Zvcih2YXIgYUU9MDthRTxhSy5sZW5ndGg7KythRSl7dmFyIGFCPWFLW2FF
XSxhRz1hQi5ib3gsYVE9YUIudGlja0xlbmd0aCxhTixhTCxhUCxhSjtpZighYUIuc2hvd3x8YUIu
dGlja3MubGVuZ3RoPT0wKXtjb250aW51ZX1ILnN0cm9rZVN0eWxlPWFCLm9wdGlvbnMudGlja0Nv
bG9yfHxjLmNvbG9yLnBhcnNlKGFCLm9wdGlvbnMuY29sb3IpLnNjYWxlKCJhIiwwLjIyKS50b1N0
cmluZygpO0gubGluZVdpZHRoPTE7aWYoYUIuZGlyZWN0aW9uPT0ieCIpe2FOPTA7aWYoYVE9PSJm
dWxsIil7YUw9KGFCLnBvc2l0aW9uPT0idG9wIj8wOncpfWVsc2V7YUw9YUcudG9wLXEudG9wKyhh
Qi5wb3NpdGlvbj09InRvcCI/YUcuaGVpZ2h0OjApfX1lbHNle2FMPTA7aWYoYVE9PSJmdWxsIil7
YU49KGFCLnBvc2l0aW9uPT0ibGVmdCI/MDpoKX1lbHNle2FOPWFHLmxlZnQtcS5sZWZ0KyhhQi5w
b3NpdGlvbj09ImxlZnQiP2FHLndpZHRoOjApfX1pZighYUIuaW5uZXJtb3N0KXtILmJlZ2luUGF0
aCgpO2FQPWFKPTA7aWYoYUIuZGlyZWN0aW9uPT0ieCIpe2FQPWh9ZWxzZXthSj13fWlmKEgubGlu
ZVdpZHRoPT0xKXthTj1NYXRoLmZsb29yKGFOKSswLjU7YUw9TWF0aC5mbG9vcihhTCkrMC41fUgu
bW92ZVRvKGFOLGFMKTtILmxpbmVUbyhhTithUCxhTCthSik7SC5zdHJva2UoKX1ILmJlZ2luUGF0
aCgpO2ZvcihhRj0wO2FGPGFCLnRpY2tzLmxlbmd0aDsrK2FGKXt2YXIgYU89YUIudGlja3NbYUZd
LnY7YVA9YUo9MDtpZihhTzxhQi5taW58fGFPPmFCLm1heHx8KGFRPT0iZnVsbCImJmFNPjAmJihh
Tz09YUIubWlufHxhTz09YUIubWF4KSkpe2NvbnRpbnVlfWlmKGFCLmRpcmVjdGlvbj09IngiKXth
Tj1hQi5wMmMoYU8pO2FKPWFRPT0iZnVsbCI/LXc6YVE7aWYoYUIucG9zaXRpb249PSJ0b3AiKXth
Sj0tYUp9fWVsc2V7YUw9YUIucDJjKGFPKTthUD1hUT09ImZ1bGwiPy1oOmFRO2lmKGFCLnBvc2l0
aW9uPT0ibGVmdCIpe2FQPS1hUH19aWYoSC5saW5lV2lkdGg9PTEpe2lmKGFCLmRpcmVjdGlvbj09
IngiKXthTj1NYXRoLmZsb29yKGFOKSswLjV9ZWxzZXthTD1NYXRoLmZsb29yKGFMKSswLjV9fUgu
bW92ZVRvKGFOLGFMKTtILmxpbmVUbyhhTithUCxhTCthSil9SC5zdHJva2UoKX1pZihhTSl7SC5s
aW5lV2lkdGg9YU07SC5zdHJva2VTdHlsZT1PLmdyaWQuYm9yZGVyQ29sb3I7SC5zdHJva2VSZWN0
KC1hTS8yLC1hTS8yLGgrYU0sdythTSl9SC5yZXN0b3JlKCl9ZnVuY3Rpb24gaygpe2F2LmZpbmQo
Ii50aWNrTGFiZWxzIikucmVtb3ZlKCk7dmFyIGFHPVsnPGRpdiBjbGFzcz0idGlja0xhYmVscyIg
c3R5bGU9ImZvbnQtc2l6ZTpzbWFsbGVyIj4nXTt2YXIgYUo9bSgpO2Zvcih2YXIgYUQ9MDthRDxh
Si5sZW5ndGg7KythRCl7dmFyIGFDPWFKW2FEXSxhRj1hQy5ib3g7aWYoIWFDLnNob3cpe2NvbnRp
bnVlfWFHLnB1c2goJzxkaXYgY2xhc3M9IicrYUMuZGlyZWN0aW9uKyJBeGlzICIrYUMuZGlyZWN0
aW9uK2FDLm4rJ0F4aXMiIHN0eWxlPSJjb2xvcjonK2FDLm9wdGlvbnMuY29sb3IrJyI+Jyk7Zm9y
KHZhciBhRT0wO2FFPGFDLnRpY2tzLmxlbmd0aDsrK2FFKXt2YXIgYUg9YUMudGlja3NbYUVdO2lm
KCFhSC5sYWJlbHx8YUgudjxhQy5taW58fGFILnY+YUMubWF4KXtjb250aW51ZX12YXIgYUs9e30s
YUk7aWYoYUMuZGlyZWN0aW9uPT0ieCIpe2FJPSJjZW50ZXIiO2FLLmxlZnQ9TWF0aC5yb3VuZChx
LmxlZnQrYUMucDJjKGFILnYpLWFDLmxhYmVsV2lkdGgvMik7aWYoYUMucG9zaXRpb249PSJib3R0
b20iKXthSy50b3A9YUYudG9wK2FGLnBhZGRpbmd9ZWxzZXthSy5ib3R0b209SS0oYUYudG9wK2FG
LmhlaWdodC1hRi5wYWRkaW5nKX19ZWxzZXthSy50b3A9TWF0aC5yb3VuZChxLnRvcCthQy5wMmMo
YUgudiktYUMubGFiZWxIZWlnaHQvMik7aWYoYUMucG9zaXRpb249PSJsZWZ0Iil7YUsucmlnaHQ9
Ry0oYUYubGVmdCthRi53aWR0aC1hRi5wYWRkaW5nKTthST0icmlnaHQifWVsc2V7YUsubGVmdD1h
Ri5sZWZ0K2FGLnBhZGRpbmc7YUk9ImxlZnQifX1hSy53aWR0aD1hQy5sYWJlbFdpZHRoO3ZhciBh
Qj1bInBvc2l0aW9uOmFic29sdXRlIiwidGV4dC1hbGlnbjoiK2FJXTtmb3IodmFyIGFMIGluIGFL
KXthQi5wdXNoKGFMKyI6IithS1thTF0rInB4Iil9YUcucHVzaCgnPGRpdiBjbGFzcz0idGlja0xh
YmVsIiBzdHlsZT0iJythQi5qb2luKCI7IikrJyI+JythSC5sYWJlbCsiPC9kaXY+Iil9YUcucHVz
aCgiPC9kaXY+Iil9YUcucHVzaCgiPC9kaXY+Iik7YXYuYXBwZW5kKGFHLmpvaW4oIiIpKX1mdW5j
dGlvbiBkKGFCKXtpZihhQi5saW5lcy5zaG93KXthdChhQil9aWYoYUIuYmFycy5zaG93KXtlKGFC
KX1pZihhQi5wb2ludHMuc2hvdyl7YW8oYUIpfX1mdW5jdGlvbiBhdChhRSl7ZnVuY3Rpb24gYUQo
YVAsYVEsYUksYVUsYVQpe3ZhciBhVj1hUC5wb2ludHMsYUo9YVAucG9pbnRzaXplLGFOPW51bGws
YU09bnVsbDtILmJlZ2luUGF0aCgpO2Zvcih2YXIgYU89YUo7YU88YVYubGVuZ3RoO2FPKz1hSil7
dmFyIGFMPWFWW2FPLWFKXSxhUz1hVlthTy1hSisxXSxhSz1hVlthT10sYVI9YVZbYU8rMV07aWYo
YUw9PW51bGx8fGFLPT1udWxsKXtjb250aW51ZX1pZihhUzw9YVImJmFTPGFULm1pbil7aWYoYVI8
YVQubWluKXtjb250aW51ZX1hTD0oYVQubWluLWFTKS8oYVItYVMpKihhSy1hTCkrYUw7YVM9YVQu
bWlufWVsc2V7aWYoYVI8PWFTJiZhUjxhVC5taW4pe2lmKGFTPGFULm1pbil7Y29udGludWV9YUs9
KGFULm1pbi1hUykvKGFSLWFTKSooYUstYUwpK2FMO2FSPWFULm1pbn19aWYoYVM+PWFSJiZhUz5h
VC5tYXgpe2lmKGFSPmFULm1heCl7Y29udGludWV9YUw9KGFULm1heC1hUykvKGFSLWFTKSooYUst
YUwpK2FMO2FTPWFULm1heH1lbHNle2lmKGFSPj1hUyYmYVI+YVQubWF4KXtpZihhUz5hVC5tYXgp
e2NvbnRpbnVlfWFLPShhVC5tYXgtYVMpLyhhUi1hUykqKGFLLWFMKSthTDthUj1hVC5tYXh9fWlm
KGFMPD1hSyYmYUw8YVUubWluKXtpZihhSzxhVS5taW4pe2NvbnRpbnVlfWFTPShhVS5taW4tYUwp
LyhhSy1hTCkqKGFSLWFTKSthUzthTD1hVS5taW59ZWxzZXtpZihhSzw9YUwmJmFLPGFVLm1pbil7
aWYoYUw8YVUubWluKXtjb250aW51ZX1hUj0oYVUubWluLWFMKS8oYUstYUwpKihhUi1hUykrYVM7
YUs9YVUubWlufX1pZihhTD49YUsmJmFMPmFVLm1heCl7aWYoYUs+YVUubWF4KXtjb250aW51ZX1h
Uz0oYVUubWF4LWFMKS8oYUstYUwpKihhUi1hUykrYVM7YUw9YVUubWF4fWVsc2V7aWYoYUs+PWFM
JiZhSz5hVS5tYXgpe2lmKGFMPmFVLm1heCl7Y29udGludWV9YVI9KGFVLm1heC1hTCkvKGFLLWFM
KSooYVItYVMpK2FTO2FLPWFVLm1heH19aWYoYUwhPWFOfHxhUyE9YU0pe0gubW92ZVRvKGFVLnAy
YyhhTCkrYVEsYVQucDJjKGFTKSthSSl9YU49YUs7YU09YVI7SC5saW5lVG8oYVUucDJjKGFLKSth
USxhVC5wMmMoYVIpK2FJKX1ILnN0cm9rZSgpfWZ1bmN0aW9uIGFGKGFJLGFRLGFQKXt2YXIgYVc9
YUkucG9pbnRzLGFWPWFJLnBvaW50c2l6ZSxhTj1NYXRoLm1pbihNYXRoLm1heCgwLGFQLm1pbiks
YVAubWF4KSxhWD0wLGFVLGFUPWZhbHNlLGFNPTEsYUw9MCxhUj0wO3doaWxlKHRydWUpe2lmKGFW
PjAmJmFYPmFXLmxlbmd0aCthVil7YnJlYWt9YVgrPWFWO3ZhciBhWj1hV1thWC1hVl0sYUs9YVdb
YVgtYVYrYU1dLGFZPWFXW2FYXSxhSj1hV1thWCthTV07aWYoYVQpe2lmKGFWPjAmJmFaIT1udWxs
JiZhWT09bnVsbCl7YVI9YVg7YVY9LWFWO2FNPTI7Y29udGludWV9aWYoYVY8MCYmYVg9PWFMK2FW
KXtILmZpbGwoKTthVD1mYWxzZTthVj0tYVY7YU09MTthWD1hTD1hUithVjtjb250aW51ZX19aWYo
YVo9PW51bGx8fGFZPT1udWxsKXtjb250aW51ZX1pZihhWjw9YVkmJmFaPGFRLm1pbil7aWYoYVk8
YVEubWluKXtjb250aW51ZX1hSz0oYVEubWluLWFaKS8oYVktYVopKihhSi1hSykrYUs7YVo9YVEu
bWlufWVsc2V7aWYoYVk8PWFaJiZhWTxhUS5taW4pe2lmKGFaPGFRLm1pbil7Y29udGludWV9YUo9
KGFRLm1pbi1hWikvKGFZLWFaKSooYUotYUspK2FLO2FZPWFRLm1pbn19aWYoYVo+PWFZJiZhWj5h
US5tYXgpe2lmKGFZPmFRLm1heCl7Y29udGludWV9YUs9KGFRLm1heC1hWikvKGFZLWFaKSooYUot
YUspK2FLO2FaPWFRLm1heH1lbHNle2lmKGFZPj1hWiYmYVk+YVEubWF4KXtpZihhWj5hUS5tYXgp
e2NvbnRpbnVlfWFKPShhUS5tYXgtYVopLyhhWS1hWikqKGFKLWFLKSthSzthWT1hUS5tYXh9fWlm
KCFhVCl7SC5iZWdpblBhdGgoKTtILm1vdmVUbyhhUS5wMmMoYVopLGFQLnAyYyhhTikpO2FUPXRy
dWV9aWYoYUs+PWFQLm1heCYmYUo+PWFQLm1heCl7SC5saW5lVG8oYVEucDJjKGFaKSxhUC5wMmMo
YVAubWF4KSk7SC5saW5lVG8oYVEucDJjKGFZKSxhUC5wMmMoYVAubWF4KSk7Y29udGludWV9ZWxz
ZXtpZihhSzw9YVAubWluJiZhSjw9YVAubWluKXtILmxpbmVUbyhhUS5wMmMoYVopLGFQLnAyYyhh
UC5taW4pKTtILmxpbmVUbyhhUS5wMmMoYVkpLGFQLnAyYyhhUC5taW4pKTtjb250aW51ZX19dmFy
IGFPPWFaLGFTPWFZO2lmKGFLPD1hSiYmYUs8YVAubWluJiZhSj49YVAubWluKXthWj0oYVAubWlu
LWFLKS8oYUotYUspKihhWS1hWikrYVo7YUs9YVAubWlufWVsc2V7aWYoYUo8PWFLJiZhSjxhUC5t
aW4mJmFLPj1hUC5taW4pe2FZPShhUC5taW4tYUspLyhhSi1hSykqKGFZLWFaKSthWjthSj1hUC5t
aW59fWlmKGFLPj1hSiYmYUs+YVAubWF4JiZhSjw9YVAubWF4KXthWj0oYVAubWF4LWFLKS8oYUot
YUspKihhWS1hWikrYVo7YUs9YVAubWF4fWVsc2V7aWYoYUo+PWFLJiZhSj5hUC5tYXgmJmFLPD1h
UC5tYXgpe2FZPShhUC5tYXgtYUspLyhhSi1hSykqKGFZLWFaKSthWjthSj1hUC5tYXh9fWlmKGFa
IT1hTyl7SC5saW5lVG8oYVEucDJjKGFPKSxhUC5wMmMoYUspKX1ILmxpbmVUbyhhUS5wMmMoYVop
LGFQLnAyYyhhSykpO0gubGluZVRvKGFRLnAyYyhhWSksYVAucDJjKGFKKSk7aWYoYVkhPWFTKXtI
LmxpbmVUbyhhUS5wMmMoYVkpLGFQLnAyYyhhSikpO0gubGluZVRvKGFRLnAyYyhhUyksYVAucDJj
KGFKKSl9fX1ILnNhdmUoKTtILnRyYW5zbGF0ZShxLmxlZnQscS50b3ApO0gubGluZUpvaW49InJv
dW5kIjt2YXIgYUc9YUUubGluZXMubGluZVdpZHRoLGFCPWFFLnNoYWRvd1NpemU7aWYoYUc+MCYm
YUI+MCl7SC5saW5lV2lkdGg9YUI7SC5zdHJva2VTdHlsZT0icmdiYSgwLDAsMCwwLjEpIjt2YXIg
YUg9TWF0aC5QSS8xODthRChhRS5kYXRhcG9pbnRzLE1hdGguc2luKGFIKSooYUcvMithQi8yKSxN
YXRoLmNvcyhhSCkqKGFHLzIrYUIvMiksYUUueGF4aXMsYUUueWF4aXMpO0gubGluZVdpZHRoPWFC
LzI7YUQoYUUuZGF0YXBvaW50cyxNYXRoLnNpbihhSCkqKGFHLzIrYUIvNCksTWF0aC5jb3MoYUgp
KihhRy8yK2FCLzQpLGFFLnhheGlzLGFFLnlheGlzKX1ILmxpbmVXaWR0aD1hRztILnN0cm9rZVN0
eWxlPWFFLmNvbG9yO3ZhciBhQz1hZShhRS5saW5lcyxhRS5jb2xvciwwLHcpO2lmKGFDKXtILmZp
bGxTdHlsZT1hQzthRihhRS5kYXRhcG9pbnRzLGFFLnhheGlzLGFFLnlheGlzKX1pZihhRz4wKXth
RChhRS5kYXRhcG9pbnRzLDAsMCxhRS54YXhpcyxhRS55YXhpcyl9SC5yZXN0b3JlKCl9ZnVuY3Rp
b24gYW8oYUUpe2Z1bmN0aW9uIGFIKGFOLGFNLGFVLGFLLGFTLGFULGFRLGFKKXt2YXIgYVI9YU4u
cG9pbnRzLGFJPWFOLnBvaW50c2l6ZTtmb3IodmFyIGFMPTA7YUw8YVIubGVuZ3RoO2FMKz1hSSl7
dmFyIGFQPWFSW2FMXSxhTz1hUlthTCsxXTtpZihhUD09bnVsbHx8YVA8YVQubWlufHxhUD5hVC5t
YXh8fGFPPGFRLm1pbnx8YU8+YVEubWF4KXtjb250aW51ZX1ILmJlZ2luUGF0aCgpO2FQPWFULnAy
YyhhUCk7YU89YVEucDJjKGFPKSthSztpZihhSj09ImNpcmNsZSIpe0guYXJjKGFQLGFPLGFNLDAs
YVM/TWF0aC5QSTpNYXRoLlBJKjIsZmFsc2UpfWVsc2V7YUooSCxhUCxhTyxhTSxhUyl9SC5jbG9z
ZVBhdGgoKTtpZihhVSl7SC5maWxsU3R5bGU9YVU7SC5maWxsKCl9SC5zdHJva2UoKX19SC5zYXZl
KCk7SC50cmFuc2xhdGUocS5sZWZ0LHEudG9wKTt2YXIgYUc9YUUucG9pbnRzLmxpbmVXaWR0aCxh
Qz1hRS5zaGFkb3dTaXplLGFCPWFFLnBvaW50cy5yYWRpdXMsYUY9YUUucG9pbnRzLnN5bWJvbDtp
ZihhRz4wJiZhQz4wKXt2YXIgYUQ9YUMvMjtILmxpbmVXaWR0aD1hRDtILnN0cm9rZVN0eWxlPSJy
Z2JhKDAsMCwwLDAuMSkiO2FIKGFFLmRhdGFwb2ludHMsYUIsbnVsbCxhRCthRC8yLHRydWUsYUUu
eGF4aXMsYUUueWF4aXMsYUYpO0guc3Ryb2tlU3R5bGU9InJnYmEoMCwwLDAsMC4yKSI7YUgoYUUu
ZGF0YXBvaW50cyxhQixudWxsLGFELzIsdHJ1ZSxhRS54YXhpcyxhRS55YXhpcyxhRil9SC5saW5l
V2lkdGg9YUc7SC5zdHJva2VTdHlsZT1hRS5jb2xvcjthSChhRS5kYXRhcG9pbnRzLGFCLGFlKGFF
LnBvaW50cyxhRS5jb2xvciksMCxmYWxzZSxhRS54YXhpcyxhRS55YXhpcyxhRik7SC5yZXN0b3Jl
KCl9ZnVuY3Rpb24gRShhTixhTSxhVixhSSxhUSxhRixhRCxhTCxhSyxhVSxhUixhQyl7dmFyIGFF
LGFULGFKLGFQLGFHLGFCLGFPLGFILGFTO2lmKGFSKXthSD1hQj1hTz10cnVlO2FHPWZhbHNlO2FF
PWFWO2FUPWFOO2FQPWFNK2FJO2FKPWFNK2FRO2lmKGFUPGFFKXthUz1hVDthVD1hRTthRT1hUzth
Rz10cnVlO2FCPWZhbHNlfX1lbHNle2FHPWFCPWFPPXRydWU7YUg9ZmFsc2U7YUU9YU4rYUk7YVQ9
YU4rYVE7YUo9YVY7YVA9YU07aWYoYVA8YUope2FTPWFQO2FQPWFKO2FKPWFTO2FIPXRydWU7YU89
ZmFsc2V9fWlmKGFUPGFMLm1pbnx8YUU+YUwubWF4fHxhUDxhSy5taW58fGFKPmFLLm1heCl7cmV0
dXJufWlmKGFFPGFMLm1pbil7YUU9YUwubWluO2FHPWZhbHNlfWlmKGFUPmFMLm1heCl7YVQ9YUwu
bWF4O2FCPWZhbHNlfWlmKGFKPGFLLm1pbil7YUo9YUsubWluO2FIPWZhbHNlfWlmKGFQPmFLLm1h
eCl7YVA9YUsubWF4O2FPPWZhbHNlfWFFPWFMLnAyYyhhRSk7YUo9YUsucDJjKGFKKTthVD1hTC5w
MmMoYVQpO2FQPWFLLnAyYyhhUCk7aWYoYUQpe2FVLmJlZ2luUGF0aCgpO2FVLm1vdmVUbyhhRSxh
Sik7YVUubGluZVRvKGFFLGFQKTthVS5saW5lVG8oYVQsYVApO2FVLmxpbmVUbyhhVCxhSik7YVUu
ZmlsbFN0eWxlPWFEKGFKLGFQKTthVS5maWxsKCl9aWYoYUM+MCYmKGFHfHxhQnx8YU98fGFIKSl7
YVUuYmVnaW5QYXRoKCk7YVUubW92ZVRvKGFFLGFKK2FGKTtpZihhRyl7YVUubGluZVRvKGFFLGFQ
K2FGKX1lbHNle2FVLm1vdmVUbyhhRSxhUCthRil9aWYoYU8pe2FVLmxpbmVUbyhhVCxhUCthRil9
ZWxzZXthVS5tb3ZlVG8oYVQsYVArYUYpfWlmKGFCKXthVS5saW5lVG8oYVQsYUorYUYpfWVsc2V7
YVUubW92ZVRvKGFULGFKK2FGKX1pZihhSCl7YVUubGluZVRvKGFFLGFKK2FGKX1lbHNle2FVLm1v
dmVUbyhhRSxhSithRil9YVUuc3Ryb2tlKCl9fWZ1bmN0aW9uIGUoYUQpe2Z1bmN0aW9uIGFDKGFK
LGFJLGFMLGFHLGFLLGFOLGFNKXt2YXIgYU89YUoucG9pbnRzLGFGPWFKLnBvaW50c2l6ZTtmb3Io
dmFyIGFIPTA7YUg8YU8ubGVuZ3RoO2FIKz1hRil7aWYoYU9bYUhdPT1udWxsKXtjb250aW51ZX1F
KGFPW2FIXSxhT1thSCsxXSxhT1thSCsyXSxhSSxhTCxhRyxhSyxhTixhTSxILGFELmJhcnMuaG9y
aXpvbnRhbCxhRC5iYXJzLmxpbmVXaWR0aCl9fUguc2F2ZSgpO0gudHJhbnNsYXRlKHEubGVmdCxx
LnRvcCk7SC5saW5lV2lkdGg9YUQuYmFycy5saW5lV2lkdGg7SC5zdHJva2VTdHlsZT1hRC5jb2xv
cjt2YXIgYUI9YUQuYmFycy5hbGlnbj09ImxlZnQiPzA6LWFELmJhcnMuYmFyV2lkdGgvMjt2YXIg
YUU9YUQuYmFycy5maWxsP2Z1bmN0aW9uKGFGLGFHKXtyZXR1cm4gYWUoYUQuYmFycyxhRC5jb2xv
cixhRixhRyl9Om51bGw7YUMoYUQuZGF0YXBvaW50cyxhQixhQithRC5iYXJzLmJhcldpZHRoLDAs
YUUsYUQueGF4aXMsYUQueWF4aXMpO0gucmVzdG9yZSgpfWZ1bmN0aW9uIGFlKGFELGFCLGFDLGFG
KXt2YXIgYUU9YUQuZmlsbDtpZighYUUpe3JldHVybiBudWxsfWlmKGFELmZpbGxDb2xvcil7cmV0
dXJuIGFtKGFELmZpbGxDb2xvcixhQyxhRixhQil9dmFyIGFHPWMuY29sb3IucGFyc2UoYUIpO2FH
LmE9dHlwZW9mIGFFPT0ibnVtYmVyIj9hRTowLjQ7YUcubm9ybWFsaXplKCk7cmV0dXJuIGFHLnRv
U3RyaW5nKCl9ZnVuY3Rpb24gbygpe2F2LmZpbmQoIi5sZWdlbmQiKS5yZW1vdmUoKTtpZighTy5s
ZWdlbmQuc2hvdyl7cmV0dXJufXZhciBhSD1bXSxhRj1mYWxzZSxhTj1PLmxlZ2VuZC5sYWJlbEZv
cm1hdHRlcixhTSxhSjtmb3IodmFyIGFFPTA7YUU8US5sZW5ndGg7KythRSl7YU09UVthRV07YUo9
YU0ubGFiZWw7aWYoIWFKKXtjb250aW51ZX1pZihhRSVPLmxlZ2VuZC5ub0NvbHVtbnM9PTApe2lm
KGFGKXthSC5wdXNoKCI8L3RyPiIpfWFILnB1c2goIjx0cj4iKTthRj10cnVlfWlmKGFOKXthSj1h
TihhSixhTSl9YUgucHVzaCgnPHRkIGNsYXNzPSJsZWdlbmRDb2xvckJveCI+PGRpdiBzdHlsZT0i
Ym9yZGVyOjFweCBzb2xpZCAnK08ubGVnZW5kLmxhYmVsQm94Qm9yZGVyQ29sb3IrJztwYWRkaW5n
OjFweCI+PGRpdiBzdHlsZT0id2lkdGg6NHB4O2hlaWdodDowO2JvcmRlcjo1cHggc29saWQgJyth
TS5jb2xvcisnO292ZXJmbG93OmhpZGRlbiI+PC9kaXY+PC9kaXY+PC90ZD48dGQgY2xhc3M9Imxl
Z2VuZExhYmVsIj4nK2FKKyI8L3RkPiIpfWlmKGFGKXthSC5wdXNoKCI8L3RyPiIpfWlmKGFILmxl
bmd0aD09MCl7cmV0dXJufXZhciBhTD0nPHRhYmxlIHN0eWxlPSJmb250LXNpemU6c21hbGxlcjtj
b2xvcjonK08uZ3JpZC5jb2xvcisnIj4nK2FILmpvaW4oIiIpKyI8L3RhYmxlPiI7aWYoTy5sZWdl
bmQuY29udGFpbmVyIT1udWxsKXtjKE8ubGVnZW5kLmNvbnRhaW5lcikuaHRtbChhTCl9ZWxzZXt2
YXIgYUk9IiIsYUM9Ty5sZWdlbmQucG9zaXRpb24sYUQ9Ty5sZWdlbmQubWFyZ2luO2lmKGFEWzBd
PT1udWxsKXthRD1bYUQsYURdfWlmKGFDLmNoYXJBdCgwKT09Im4iKXthSSs9InRvcDoiKyhhRFsx
XStxLnRvcCkrInB4OyJ9ZWxzZXtpZihhQy5jaGFyQXQoMCk9PSJzIil7YUkrPSJib3R0b206Iiso
YURbMV0rcS5ib3R0b20pKyJweDsifX1pZihhQy5jaGFyQXQoMSk9PSJlIil7YUkrPSJyaWdodDoi
KyhhRFswXStxLnJpZ2h0KSsicHg7In1lbHNle2lmKGFDLmNoYXJBdCgxKT09InciKXthSSs9Imxl
ZnQ6IisoYURbMF0rcS5sZWZ0KSsicHg7In19dmFyIGFLPWMoJzxkaXYgY2xhc3M9ImxlZ2VuZCI+
JythTC5yZXBsYWNlKCdzdHlsZT0iJywnc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOycrYUkrIjsi
KSsiPC9kaXY+IikuYXBwZW5kVG8oYXYpO2lmKE8ubGVnZW5kLmJhY2tncm91bmRPcGFjaXR5IT0w
KXt2YXIgYUc9Ty5sZWdlbmQuYmFja2dyb3VuZENvbG9yO2lmKGFHPT1udWxsKXthRz1PLmdyaWQu
YmFja2dyb3VuZENvbG9yO2lmKGFHJiZ0eXBlb2YgYUc9PSJzdHJpbmciKXthRz1jLmNvbG9yLnBh
cnNlKGFHKX1lbHNle2FHPWMuY29sb3IuZXh0cmFjdChhSywiYmFja2dyb3VuZC1jb2xvciIpfWFH
LmE9MTthRz1hRy50b1N0cmluZygpfXZhciBhQj1hSy5jaGlsZHJlbigpO2MoJzxkaXYgc3R5bGU9
InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOicrYUIud2lkdGgoKSsicHg7aGVpZ2h0OiIrYUIuaGVp
Z2h0KCkrInB4OyIrYUkrImJhY2tncm91bmQtY29sb3I6IithRysnOyI+IDwvZGl2PicpLnByZXBl
bmRUbyhhSykuY3NzKCJvcGFjaXR5IixPLmxlZ2VuZC5iYWNrZ3JvdW5kT3BhY2l0eSl9fX12YXIg
YWI9W10sTT1udWxsO2Z1bmN0aW9uIEsoYUksYUcsYUQpe3ZhciBhTz1PLmdyaWQubW91c2VBY3Rp
dmVSYWRpdXMsYTA9YU8qYU8rMSxhWT1udWxsLGFSPWZhbHNlLGFXLGFVO2ZvcihhVz1RLmxlbmd0
aC0xO2FXPj0wOy0tYVcpe2lmKCFhRChRW2FXXSkpe2NvbnRpbnVlfXZhciBhUD1RW2FXXSxhSD1h
UC54YXhpcyxhRj1hUC55YXhpcyxhVj1hUC5kYXRhcG9pbnRzLnBvaW50cyxhVD1hUC5kYXRhcG9p
bnRzLnBvaW50c2l6ZSxhUT1hSC5jMnAoYUkpLGFOPWFGLmMycChhRyksYUM9YU8vYUguc2NhbGUs
YUI9YU8vYUYuc2NhbGU7aWYoYUgub3B0aW9ucy5pbnZlcnNlVHJhbnNmb3JtKXthQz1OdW1iZXIu
TUFYX1ZBTFVFfWlmKGFGLm9wdGlvbnMuaW52ZXJzZVRyYW5zZm9ybSl7YUI9TnVtYmVyLk1BWF9W
QUxVRX1pZihhUC5saW5lcy5zaG93fHxhUC5wb2ludHMuc2hvdyl7Zm9yKGFVPTA7YVU8YVYubGVu
Z3RoO2FVKz1hVCl7dmFyIGFLPWFWW2FVXSxhSj1hVlthVSsxXTtpZihhSz09bnVsbCl7Y29udGlu
dWV9aWYoYUstYVE+YUN8fGFLLWFRPC1hQ3x8YUotYU4+YUJ8fGFKLWFOPC1hQil7Y29udGludWV9
dmFyIGFNPU1hdGguYWJzKGFILnAyYyhhSyktYUkpLGFMPU1hdGguYWJzKGFGLnAyYyhhSiktYUcp
LGFTPWFNKmFNK2FMKmFMO2lmKGFTPGEwKXthMD1hUzthWT1bYVcsYVUvYVRdfX19aWYoYVAuYmFy
cy5zaG93JiYhYVkpe3ZhciBhRT1hUC5iYXJzLmFsaWduPT0ibGVmdCI/MDotYVAuYmFycy5iYXJX
aWR0aC8yLGFYPWFFK2FQLmJhcnMuYmFyV2lkdGg7Zm9yKGFVPTA7YVU8YVYubGVuZ3RoO2FVKz1h
VCl7dmFyIGFLPWFWW2FVXSxhSj1hVlthVSsxXSxhWj1hVlthVSsyXTtpZihhSz09bnVsbCl7Y29u
dGludWV9aWYoUVthV10uYmFycy5ob3Jpem9udGFsPyhhUTw9TWF0aC5tYXgoYVosYUspJiZhUT49
TWF0aC5taW4oYVosYUspJiZhTj49YUorYUUmJmFOPD1hSithWCk6KGFRPj1hSythRSYmYVE8PWFL
K2FYJiZhTj49TWF0aC5taW4oYVosYUopJiZhTjw9TWF0aC5tYXgoYVosYUopKSl7YVk9W2FXLGFV
L2FUXX19fX1pZihhWSl7YVc9YVlbMF07YVU9YVlbMV07YVQ9UVthV10uZGF0YXBvaW50cy5wb2lu
dHNpemU7cmV0dXJue2RhdGFwb2ludDpRW2FXXS5kYXRhcG9pbnRzLnBvaW50cy5zbGljZShhVSph
VCwoYVUrMSkqYVQpLGRhdGFJbmRleDphVSxzZXJpZXM6UVthV10sc2VyaWVzSW5kZXg6YVd9fXJl
dHVybiBudWxsfWZ1bmN0aW9uIGFhKGFCKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt1KCJwbG90aG92
ZXIiLGFCLGZ1bmN0aW9uKGFDKXtyZXR1cm4gYUMuaG92ZXJhYmxlIT1mYWxzZX0pfX1mdW5jdGlv
biBsKGFCKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt1KCJwbG90aG92ZXIiLGFCLGZ1bmN0aW9uKGFD
KXtyZXR1cm4gZmFsc2V9KX19ZnVuY3Rpb24gUihhQil7dSgicGxvdGNsaWNrIixhQixmdW5jdGlv
bihhQyl7cmV0dXJuIGFDLmNsaWNrYWJsZSE9ZmFsc2V9KX1mdW5jdGlvbiB1KGFDLGFCLGFEKXt2
YXIgYUU9eS5vZmZzZXQoKSxhSD1hQi5wYWdlWC1hRS5sZWZ0LXEubGVmdCxhRj1hQi5wYWdlWS1h
RS50b3AtcS50b3AsYUo9Qyh7bGVmdDphSCx0b3A6YUZ9KTthSi5wYWdlWD1hQi5wYWdlWDthSi5w
YWdlWT1hQi5wYWdlWTt2YXIgYUs9SyhhSCxhRixhRCk7aWYoYUspe2FLLnBhZ2VYPXBhcnNlSW50
KGFLLnNlcmllcy54YXhpcy5wMmMoYUsuZGF0YXBvaW50WzBdKSthRS5sZWZ0K3EubGVmdCk7YUsu
cGFnZVk9cGFyc2VJbnQoYUsuc2VyaWVzLnlheGlzLnAyYyhhSy5kYXRhcG9pbnRbMV0pK2FFLnRv
cCtxLnRvcCl9aWYoTy5ncmlkLmF1dG9IaWdobGlnaHQpe2Zvcih2YXIgYUc9MDthRzxhYi5sZW5n
dGg7KythRyl7dmFyIGFJPWFiW2FHXTtpZihhSS5hdXRvPT1hQyYmIShhSyYmYUkuc2VyaWVzPT1h
Sy5zZXJpZXMmJmFJLnBvaW50WzBdPT1hSy5kYXRhcG9pbnRbMF0mJmFJLnBvaW50WzFdPT1hSy5k
YXRhcG9pbnRbMV0pKXtUKGFJLnNlcmllcyxhSS5wb2ludCl9fWlmKGFLKXt4KGFLLnNlcmllcyxh
Sy5kYXRhcG9pbnQsYUMpfX1hdi50cmlnZ2VyKGFDLFthSixhS10pfWZ1bmN0aW9uIGYoKXtpZigh
TSl7TT1zZXRUaW1lb3V0KHMsMzApfX1mdW5jdGlvbiBzKCl7TT1udWxsO0Euc2F2ZSgpO0EuY2xl
YXJSZWN0KDAsMCxHLEkpO0EudHJhbnNsYXRlKHEubGVmdCxxLnRvcCk7dmFyIGFDLGFCO2Zvcihh
Qz0wO2FDPGFiLmxlbmd0aDsrK2FDKXthQj1hYlthQ107aWYoYUIuc2VyaWVzLmJhcnMuc2hvdyl7
dihhQi5zZXJpZXMsYUIucG9pbnQpfWVsc2V7YXkoYUIuc2VyaWVzLGFCLnBvaW50KX19QS5yZXN0
b3JlKCk7YW4oYWsuZHJhd092ZXJsYXksW0FdKX1mdW5jdGlvbiB4KGFELGFCLGFGKXtpZih0eXBl
b2YgYUQ9PSJudW1iZXIiKXthRD1RW2FEXX1pZih0eXBlb2YgYUI9PSJudW1iZXIiKXt2YXIgYUU9
YUQuZGF0YXBvaW50cy5wb2ludHNpemU7YUI9YUQuZGF0YXBvaW50cy5wb2ludHMuc2xpY2UoYUUq
YUIsYUUqKGFCKzEpKX12YXIgYUM9YWwoYUQsYUIpO2lmKGFDPT0tMSl7YWIucHVzaCh7c2VyaWVz
OmFELHBvaW50OmFCLGF1dG86YUZ9KTtmKCl9ZWxzZXtpZighYUYpe2FiW2FDXS5hdXRvPWZhbHNl
fX19ZnVuY3Rpb24gVChhRCxhQil7aWYoYUQ9PW51bGwmJmFCPT1udWxsKXthYj1bXTtmKCl9aWYo
dHlwZW9mIGFEPT0ibnVtYmVyIil7YUQ9UVthRF19aWYodHlwZW9mIGFCPT0ibnVtYmVyIil7YUI9
YUQuZGF0YVthQl19dmFyIGFDPWFsKGFELGFCKTtpZihhQyE9LTEpe2FiLnNwbGljZShhQywxKTtm
KCl9fWZ1bmN0aW9uIGFsKGFELGFFKXtmb3IodmFyIGFCPTA7YUI8YWIubGVuZ3RoOysrYUIpe3Zh
ciBhQz1hYlthQl07aWYoYUMuc2VyaWVzPT1hRCYmYUMucG9pbnRbMF09PWFFWzBdJiZhQy5wb2lu
dFsxXT09YUVbMV0pe3JldHVybiBhQn19cmV0dXJuIC0xfWZ1bmN0aW9uIGF5KGFFLGFEKXt2YXIg
YUM9YURbMF0sYUk9YURbMV0sYUg9YUUueGF4aXMsYUc9YUUueWF4aXM7aWYoYUM8YUgubWlufHxh
Qz5hSC5tYXh8fGFJPGFHLm1pbnx8YUk+YUcubWF4KXtyZXR1cm59dmFyIGFGPWFFLnBvaW50cy5y
YWRpdXMrYUUucG9pbnRzLmxpbmVXaWR0aC8yO0EubGluZVdpZHRoPWFGO0Euc3Ryb2tlU3R5bGU9
Yy5jb2xvci5wYXJzZShhRS5jb2xvcikuc2NhbGUoImEiLDAuNSkudG9TdHJpbmcoKTt2YXIgYUI9
MS41KmFGLGFDPWFILnAyYyhhQyksYUk9YUcucDJjKGFJKTtBLmJlZ2luUGF0aCgpO2lmKGFFLnBv
aW50cy5zeW1ib2w9PSJjaXJjbGUiKXtBLmFyYyhhQyxhSSxhQiwwLDIqTWF0aC5QSSxmYWxzZSl9
ZWxzZXthRS5wb2ludHMuc3ltYm9sKEEsYUMsYUksYUIsZmFsc2UpfUEuY2xvc2VQYXRoKCk7QS5z
dHJva2UoKX1mdW5jdGlvbiB2KGFFLGFCKXtBLmxpbmVXaWR0aD1hRS5iYXJzLmxpbmVXaWR0aDtB
LnN0cm9rZVN0eWxlPWMuY29sb3IucGFyc2UoYUUuY29sb3IpLnNjYWxlKCJhIiwwLjUpLnRvU3Ry
aW5nKCk7dmFyIGFEPWMuY29sb3IucGFyc2UoYUUuY29sb3IpLnNjYWxlKCJhIiwwLjUpLnRvU3Ry
aW5nKCk7dmFyIGFDPWFFLmJhcnMuYWxpZ249PSJsZWZ0Ij8wOi1hRS5iYXJzLmJhcldpZHRoLzI7
RShhQlswXSxhQlsxXSxhQlsyXXx8MCxhQyxhQythRS5iYXJzLmJhcldpZHRoLDAsZnVuY3Rpb24o
KXtyZXR1cm4gYUR9LGFFLnhheGlzLGFFLnlheGlzLEEsYUUuYmFycy5ob3Jpem9udGFsLGFFLmJh
cnMubGluZVdpZHRoKX1mdW5jdGlvbiBhbShhSixhQixhSCxhQyl7aWYodHlwZW9mIGFKPT0ic3Ry
aW5nIil7cmV0dXJuIGFKfWVsc2V7dmFyIGFJPUguY3JlYXRlTGluZWFyR3JhZGllbnQoMCxhSCww
LGFCKTtmb3IodmFyIGFFPTAsYUQ9YUouY29sb3JzLmxlbmd0aDthRTxhRDsrK2FFKXt2YXIgYUY9
YUouY29sb3JzW2FFXTtpZih0eXBlb2YgYUYhPSJzdHJpbmciKXt2YXIgYUc9Yy5jb2xvci5wYXJz
ZShhQyk7aWYoYUYuYnJpZ2h0bmVzcyE9bnVsbCl7YUc9YUcuc2NhbGUoInJnYiIsYUYuYnJpZ2h0
bmVzcyl9aWYoYUYub3BhY2l0eSE9bnVsbCl7YUcuYSo9YUYub3BhY2l0eX1hRj1hRy50b1N0cmlu
ZygpfWFJLmFkZENvbG9yU3RvcChhRS8oYUQtMSksYUYpfXJldHVybiBhSX19fWMucGxvdD1mdW5j
dGlvbihnLGUsZCl7dmFyIGY9bmV3IGIoYyhnKSxlLGQsYy5wbG90LnBsdWdpbnMpO3JldHVybiBm
fTtjLnBsb3QudmVyc2lvbj0iMC43IjtjLnBsb3QucGx1Z2lucz1bXTtjLnBsb3QuZm9ybWF0RGF0
ZT1mdW5jdGlvbihsLGYsaCl7dmFyIG89ZnVuY3Rpb24oZCl7ZD0iIitkO3JldHVybiBkLmxlbmd0
aD09MT8iMCIrZDpkfTt2YXIgZT1bXTt2YXIgcD1mYWxzZSxqPWZhbHNlO3ZhciBuPWwuZ2V0VVRD
SG91cnMoKTt2YXIgaz1uPDEyO2lmKGg9PW51bGwpe2g9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIi
LCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX1pZihmLnNl
YXJjaCgvJXB8JVAvKSE9LTEpe2lmKG4+MTIpe249bi0xMn1lbHNle2lmKG49PTApe249MTJ9fX1m
b3IodmFyIGc9MDtnPGYubGVuZ3RoOysrZyl7dmFyIG09Zi5jaGFyQXQoZyk7aWYocCl7c3dpdGNo
KG0pe2Nhc2UiaCI6bT0iIituO2JyZWFrO2Nhc2UiSCI6bT1vKG4pO2JyZWFrO2Nhc2UiTSI6bT1v
KGwuZ2V0VVRDTWludXRlcygpKTticmVhaztjYXNlIlMiOm09byhsLmdldFVUQ1NlY29uZHMoKSk7
YnJlYWs7Y2FzZSJkIjptPSIiK2wuZ2V0VVRDRGF0ZSgpO2JyZWFrO2Nhc2UibSI6bT0iIisobC5n
ZXRVVENNb250aCgpKzEpO2JyZWFrO2Nhc2UieSI6bT0iIitsLmdldFVUQ0Z1bGxZZWFyKCk7YnJl
YWs7Y2FzZSJiIjptPSIiK2hbbC5nZXRVVENNb250aCgpXTticmVhaztjYXNlInAiOm09KGspPygi
YW0iKTooInBtIik7YnJlYWs7Y2FzZSJQIjptPShrKT8oIkFNIik6KCJQTSIpO2JyZWFrO2Nhc2Ui
MCI6bT0iIjtqPXRydWU7YnJlYWt9aWYobSYmail7bT1vKG0pO2o9ZmFsc2V9ZS5wdXNoKG0pO2lm
KCFqKXtwPWZhbHNlfX1lbHNle2lmKG09PSIlIil7cD10cnVlfWVsc2V7ZS5wdXNoKG0pfX19cmV0
dXJuIGUuam9pbigiIil9O2Z1bmN0aW9uIGEoZSxkKXtyZXR1cm4gZCpNYXRoLmZsb29yKGUvZCl9
fSkoalF1ZXJ5KTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0aXRsZT0ianF1ZXJ5LmZsb3QuZmlsbGJl
dHdlZW4ubWluLmpzIj4KKyhmdW5jdGlvbihiKXt2YXIgYT17c2VyaWVzOntmaWxsQmV0d2Vlbjpu
dWxsfX07ZnVuY3Rpb24gYyhmKXtmdW5jdGlvbiBkKGosaCl7dmFyIGc7Zm9yKGc9MDtnPGgubGVu
Z3RoOysrZyl7aWYoaFtnXS5pZD09ai5maWxsQmV0d2Vlbil7cmV0dXJuIGhbZ119fWlmKHR5cGVv
ZiBqLmZpbGxCZXR3ZWVuPT0ibnVtYmVyIil7Zz1qLmZpbGxCZXR3ZWVuO2lmKGc8MHx8Zz49aC5s
ZW5ndGgpe3JldHVybiBudWxsfXJldHVybiBoW2ddfXJldHVybiBudWxsfWZ1bmN0aW9uIGUoQix1
LGcpe2lmKHUuZmlsbEJldHdlZW49PW51bGwpe3JldHVybn12YXIgcD1kKHUsQi5nZXREYXRhKCkp
O2lmKCFwKXtyZXR1cm59dmFyIHk9Zy5wb2ludHNpemUsRT1nLnBvaW50cyxoPXAuZGF0YXBvaW50
cy5wb2ludHNpemUseD1wLmRhdGFwb2ludHMucG9pbnRzLHI9W10sdyx2LGssRyxGLHEsdD11Lmxp
bmVzLnNob3csbz15PjImJmcuZm9ybWF0WzJdLnksbj10JiZ1LmxpbmVzLnN0ZXBzLEQ9dHJ1ZSxD
PTAsQT0wLHo7d2hpbGUodHJ1ZSl7aWYoQz49RS5sZW5ndGgpe2JyZWFrfXo9ci5sZW5ndGg7aWYo
RVtDXT09bnVsbCl7Zm9yKG09MDttPHk7KyttKXtyLnB1c2goRVtDK21dKX1DKz15fWVsc2V7aWYo
QT49eC5sZW5ndGgpe2lmKCF0KXtmb3IobT0wO208eTsrK20pe3IucHVzaChFW0MrbV0pfX1DKz15
fWVsc2V7aWYoeFtBXT09bnVsbCl7Zm9yKG09MDttPHk7KyttKXtyLnB1c2gobnVsbCl9RD10cnVl
O0ErPWh9ZWxzZXt3PUVbQ107dj1FW0MrMV07Rz14W0FdO0Y9eFtBKzFdO3E9MDtpZih3PT1HKXtm
b3IobT0wO208eTsrK20pe3IucHVzaChFW0MrbV0pfXE9RjtDKz15O0ErPWh9ZWxzZXtpZih3Pkcp
e2lmKHQmJkM+MCYmRVtDLXldIT1udWxsKXtrPXYrKEVbQy15KzFdLXYpKihHLXcpLyhFW0MteV0t
dyk7ci5wdXNoKEcpO3IucHVzaChrKTtmb3IobT0yO208eTsrK20pe3IucHVzaChFW0MrbV0pfXE9
Rn1BKz1ofWVsc2V7aWYoRCYmdCl7Qys9eTtjb250aW51ZX1mb3IobT0wO208eTsrK20pe3IucHVz
aChFW0MrbV0pfWlmKHQmJkE+MCYmeFtBLWhdIT1udWxsKXtxPUYrKHhbQS1oKzFdLUYpKih3LUcp
Lyh4W0EtaF0tRyl9Qys9eX19RD1mYWxzZTtpZih6IT1yLmxlbmd0aCYmbyl7clt6KzJdPXF9fX19
aWYobiYmeiE9ci5sZW5ndGgmJno+MCYmclt6XSE9bnVsbCYmclt6XSE9clt6LXldJiZyW3orMV0h
PXJbei15KzFdKXtmb3IobT0wO208eTsrK20pe3Jbeit5K21dPXJbeittXX1yW3orMV09clt6LXkr
MV19fWcucG9pbnRzPXJ9Zi5ob29rcy5wcm9jZXNzRGF0YXBvaW50cy5wdXNoKGUpfWIucGxvdC5w
bHVnaW5zLnB1c2goe2luaXQ6YyxvcHRpb25zOmEsbmFtZToiZmlsbGJldHdlZW4iLHZlcnNpb246
IjEuMCJ9KX0pKGpRdWVyeSk7Cis8L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisK
K3NlY3Rpb24geworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBwYWRkaW5nOiAwIDEw
cHg7Cit9CisKK3NlY3Rpb24gaDEgeworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250
LXNpemU6IDFlbTsKK30KKworc2VjdGlvbiAudG9vbHRpcCB7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kOiAjZmZjYzY2Owor
ICAgIGJvcmRlci1yYWRpdXM6IDVweDsKKyAgICBwYWRkaW5nOiAwcHggNXB4OworfQorCis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPHNjcmlw
dD4KKworZnVuY3Rpb24gYXR0YWNoUGxvdCh0ZXN0TmFtZSkgeworICAgIHZhciBzZWN0aW9uID0g
JCgnPHNlY3Rpb24+PGgxPjwvaDE+PGRpdiBjbGFzcz0icGxvdCIgc3R5bGU9IndpZHRoOiAyMDBw
eDsgaGVpZ2h0OiAzMDBweDsiPjwvZGl2PicKKyAgICAgICAgKyAnPHNwYW4gY2xhc3M9InRvb2x0
aXAiPjwvc3Bhbj48c2VjdGlvbj4nKTsKKyAgICB2YXIgdW5pdCA9IHRlc3RVbml0c1t0ZXN0TmFt
ZV07CisgICAgc2VjdGlvbi5jaGlsZHJlbignaDEnKS5odG1sKHRlc3ROYW1lICsgKHVuaXQgPyAn
ICgnICsgdW5pdCArICcpJyA6ICcnKSk7CisgICAgJCgnI2NvbnRhaW5lcicpLmFwcGVuZChzZWN0
aW9uKTsKKworICAgIHZhciBhdmVyYWdlcyA9IHRlc3RSZXN1bHRzW3Rlc3ROYW1lXTsKKyAgICB2
YXIgY29sb3IgPSAncmdiKDIzMCw1MCw1MCknOworCisgICAgdmFyIG1pbk1heE9wdGlvbnMgPSB7
bGluZXM6IHtzaG93OnRydWUsIGxpbmVXaWR0aDogMH0sCisgICAgICAgIGNvbG9yOiBjb2xvciwK
KyAgICAgICAgcG9pbnRzOiB7c2hvdzogdHJ1ZSwgcmFkaXVzOiAxfX07CisgICAgZnVuY3Rpb24g
bWFrZUxvd1Bsb3QoaWQsIGRhdGEpIHsgcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBtaW5NYXhP
cHRpb25zLCB7aWQ6IGlkLCBkYXRhOiBkYXRhfSk7IH0gICAgCisgICAgZnVuY3Rpb24gbWFrZUhp
Z2hQbG90KGZyb20sIHRvLCBmaWxsLCBkYXRhKSB7IHJldHVybiAkLmV4dGVuZCh0cnVlLCB7fSwg
bWluTWF4T3B0aW9ucywKKyAgICAgICAge2lkOiB0bywgZGF0YTogZGF0YSwgbGluZXM6IHtmaWxs
OiBmaWxsfSwgZmlsbEJldHdlZW46IGZyb219KTsgfQorCisgICAgdmFyIHBsb3REYXRhID0gWwor
ICAgICAgICBtYWtlTG93UGxvdCgnbWluJywgdGVzdFJlc3VsdHNNaW5bdGVzdE5hbWVdKSwKKyAg
ICAgICAgbWFrZUhpZ2hQbG90KCdtaW4nLCAnbWF4JywgMC4yLCB0ZXN0UmVzdWx0c01heFt0ZXN0
TmFtZV0pLAorICAgICAgICBtYWtlTG93UGxvdCgnLSYjOTYzOycsIHRlc3RSZXN1bHRzU3RkZXZM
b3dbdGVzdE5hbWVdKSwgLy8gc21hbGwgbGV0dGVyIHNnaW1hLgorICAgICAgICBtYWtlSGlnaFBs
b3QoJy0mIzk2MzsnLCAnKyYjOTYzOycsIDAuNCwgdGVzdFJlc3VsdHNTdGRldkhpZ2hbdGVzdE5h
bWVdKSwKKyAgICAgICAge2RhdGE6IGF2ZXJhZ2VzLCBjb2xvcjogY29sb3J9XTsKKworICAgIHZh
ciBwbG90Q29udGFpbmVyID0gc2VjdGlvbi5jaGlsZHJlbignLnBsb3QnKTsKKyAgICAkLnBsb3Qo
cGxvdENvbnRhaW5lciwgcGxvdERhdGEsIHsKKyAgICAgICAgeGF4aXM6IHsKKyAgICAgICAgICAg
IG1pbjogYXZlcmFnZXNbMF1bMF0gLSAwLjI1LAorICAgICAgICAgICAgbWF4OiBhdmVyYWdlc1th
dmVyYWdlcy5sZW5ndGggLSAxXVswXSArIDAuMjUsCisgICAgICAgICAgICB0aWNrU2l6ZTogMSwK
KyAgICAgICAgICAgIHRpY2tEZWNpbWFsczogMCwKKyAgICAgICAgICAgIHRpY2tGb3JtYXR0ZXI6
IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ID49IDAgPyB4IDogJyc7IH19LAorICAgICAgICB5YXhp
czoge30sCisgICAgICAgIGNyb3NzaGFpcjogeyBtb2RlOiAneScgfSwKKyAgICAgICAgc2VyaWVz
OiB7IHNoYWRvd1NpemU6IDAgfSwKKyAgICAgICAgbGluZXM6IHsgc2hvdzogZmFsc2UgfSwKKyAg
ICAgICAgcG9pbnRzOiB7IHNob3c6IHRydWUgfSwKKyAgICAgICAgZ3JpZDogeworICAgICAgICAg
ICAgYm9yZGVyV2lkdGg6IDIsCisgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJywK
KyAgICAgICAgICAgIGhvdmVyYWJsZTogdHJ1ZSwKKyAgICAgICAgICAgIGF1dG9IaWdobGlnaHQ6
IHRydWUsCisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHZhciB0b29sdGlwID0gc2VjdGlvbi5j
aGlsZHJlbignLnRvb2x0aXAnKTsKKyAgICBwbG90Q29udGFpbmVyLmJpbmQoJ3Bsb3Rob3Zlcics
IGZ1bmN0aW9uIChldmVudCwgcG9zaXRpb24sIGl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0pIHsK
KyAgICAgICAgICAgIHZhciBwb3N0Zml4ID0gaXRlbS5zZXJpZXMuaWQgPyAnICgnICsgaXRlbS5z
ZXJpZXMuaWQgKyAnKScgOiAnJzsKKyAgICAgICAgICAgIHRvb2x0aXAuaHRtbChpdGVtLmRhdGFw
b2ludFsxXS50b1ByZWNpc2lvbig0KSArIHBvc3RmaXgpOworICAgICAgICAgICAgdG9vbHRpcC5j
c3Moe2xlZnQ6IGl0ZW0ucGFnZVggLSB0b29sdGlwLm91dGVyV2lkdGgoKSAvIDIsIHRvcDogaXRl
bS5wYWdlWSArIDEwfSk7CisgICAgICAgICAgICB0b29sdGlwLmZhZGVJbigyMDApOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRvb2x0aXAuaGlkZSgpOworICAgIH0pOworfQorCit2YXIg
cmVzdWx0cyA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2pzb24nKS50ZXh0
Q29udGVudCk7Cit2YXIgdGVzdHMgPSBbXTsKK3ZhciB0ZXN0UmVzdWx0cyA9IHt9LCB0ZXN0UmVz
dWx0c01pbiA9IHt9LCB0ZXN0UmVzdWx0c01heCA9IHt9LCB0ZXN0UmVzdWx0c1N0ZGV2TG93ID0g
e30sIHRlc3RSZXN1bHRzU3RkZXZIaWdoID0ge307Cit2YXIgdGVzdFVuaXRzID0ge307CiskLmVh
Y2gocmVzdWx0cywgZnVuY3Rpb24gKGluZGV4LCBlbnRyeSkgeworICAgICQuZWFjaChlbnRyeS5y
ZXN1bHRzLCBmdW5jdGlvbiAodGVzdCwgcmVzdWx0KSB7CisgICAgICAgIGlmICh0ZXN0cy5pbmRl
eE9mKHRlc3QpIDwgMCkKKyAgICAgICAgICAgIHRlc3RzLnB1c2godGVzdCk7CisgICAgICAgIGlm
ICghdGVzdFJlc3VsdHNbdGVzdF0pIHsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzW3Rlc3RdID0g
W107CisgICAgICAgICAgICB0ZXN0UmVzdWx0c01pblt0ZXN0XSA9IFtdOworICAgICAgICAgICAg
dGVzdFJlc3VsdHNNYXhbdGVzdF0gPSBbXTsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzU3RkZXZM
b3dbdGVzdF0gPSBbXTsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzU3RkZXZIaWdoW3Rlc3RdID0g
W107CisgICAgICAgIH0KKyAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT0gJ251bWJlcicpCisg
ICAgICAgICAgICB0ZXN0UmVzdWx0c1t0ZXN0XS5wdXNoKFtpbmRleCwgcmVzdWx0XSk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgdGVzdFJlc3VsdHNbdGVzdF0ucHVzaChbaW5kZXgsIHJl
c3VsdFsnYXZnJ11dKTsKKyAgICAgICAgICAgIGlmICgnbWluJyBpbiByZXN1bHQpCisgICAgICAg
ICAgICAgICAgdGVzdFJlc3VsdHNNaW5bdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnbWluJ11d
KTsKKyAgICAgICAgICAgIGlmICgnbWF4JyBpbiByZXN1bHQpCisgICAgICAgICAgICAgICAgdGVz
dFJlc3VsdHNNYXhbdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnbWF4J11dKTsKKyAgICAgICAg
ICAgIGlmICgnc3RkZXYnIGluIHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHRlc3RSZXN1bHRz
U3RkZXZMb3dbdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnYXZnJ10gLSByZXN1bHRbJ3N0ZGV2
J11dKTsKKyAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0c1N0ZGV2SGlnaFt0ZXN0XS5wdXNoKFtp
bmRleCwgcmVzdWx0WydhdmcnXSArIHJlc3VsdFsnc3RkZXYnXV0pOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIHRlc3RVbml0c1t0ZXN0XSA9IHJlc3VsdC51bml0OworICAgIH0p
OworfSk7CiskLmVhY2godGVzdHMuc29ydCgpLCBmdW5jdGlvbiAoaW5kZXgsIHRlc3QpIHsgYXR0
YWNoUGxvdCh0ZXN0KTsgfSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzk1NykKKysrIFRvb2xzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA3LTI4ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHJ1bi1wZXJmLXRlc3RzIHNob3VsZCBnZW5l
cmF0ZSBhIHJlc3VsdHMgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB0aGUgYWJpbGl0eSB0byBnZW5lcmF0ZSBhIHJlc3VsdHMgcGFnZSB0
aGF0IHN1bW1hcml6ZXMgcGVyZm9ybWFuY2UgdGVzdCByZXN1bHRzIGZyb20KKyAgICAgICAgbXVs
dGlwbGUgcnVucyBvZiBydW4tcGVyZi10ZXN0cyB3aGVuIC0tb3V0cHV0LWpzb24tcGF0aCBpcyBz
cGVjaWZpZWQgYW5kIC0tdGVzdC1yZXN1bHRzLXNlcnZlcgorICAgICAgICBpcyBub3Qgc3BlY2lm
aWVkLiBXZSBjYW5ub3QgZ2VuZXJhdGUgYSByZXN1bHRzIHBhZ2Ugd2hlbiAtLXRlc3QtcmVzdWx0
cy1zZXJ2ZXIgaXMgc3BlY2lmaWVkCisgICAgICAgIGJlY2F1c2UgcGVyZi1vLW1hdGljIGNhbm5v
dCBwYXJzZSB0aGUgbmV3IEpTT04gZm9ybWF0LgorCisgICAgICAgIFRoZSBuZXcgSlNPTiBmb3Jt
YXQgaXMgc2ltcGx5IGFuIGFycmF5IG9mIHRoZSBvbGQgSlNPTiBvdXRwdXQuIFRoaXMgSlNPTiBp
cyB0aGVuIG1lcmdlZCBpbnRvCisgICAgICAgIHJlc3VsdHMtdGVtcGxhdGUuaHRtbCBhbG9uZyB3
aXRoIGpRdWVyeSBhbmQgY29waWVkIGFzIGEgSFRNTCBmaWxlIG9mIHRoZSBzYW1lIGZpbGVuYW1l
IGFzCisJdGhlIG91dHB1dCBKU09OIGZpbGUgd2l0aCBhIC5odG1sIGV4dGVuc2lvbi4KKworICAg
ICAgICBXZSBtZXJnZSBhbGwgc2NyaXB0cyBhbmQgdGhlIEpTT04gb3V0cHV0IGludG8gdGhlIHJl
c3VsdHMgcGFnZSBhcyBvcHBvc2VkIHRvIGluY2x1ZGluZyB0aGVtCisJd2l0aCB0aGUgc3JjIGNv
bnRlbnQgYXR0cmlidXRlIHRvIG1ha2UgaXQgc3RhbmRhbG9uZSBzbyB0aGF0IHdlIG1heSBwb3N0
IGl0IG9uIEJ1Z3ppbGxhIG9yCisJZS1tYWlsIGl0IHRvIHNvbWVvbmUgZWxzZSB3aXRob3V0IGJy
ZWFraW5nIGl0LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0
cy9wZXJmdGVzdHNydW5uZXIucHk6CisgICAgICAgIChQZXJmVGVzdHNSdW5uZXIucnVuKToKKyAg
ICAgICAgKFBlcmZUZXN0c1J1bm5lci5fZ2VuZXJhdGVfanNvbik6IE1lcmdlICJjb250ZW50cyIg
d2l0aCB0aGUgZXhpc3RpbmcgSlNPTiBmaWxlIHdoZW4gZ2VuZXJhdGluZworICAgICAgICBhIHJl
c3VsdHMgcGFnZSwgYW5kIGdlbmVyYXRlIHRoZSByZXN1bHRzIHBhZ2UgZnJvbSByZXN1bHRzLXRl
bXBsYXRlLmh0bWwgbWVyZ2VkIHdpdGggalF1ZXJ5IGFuZAorICAgICAgICB0aGUgZ2VuZXJhdGVk
IEpTT04gb3V0cHV0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVz
dHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoX3Rlc3RfcnVuX3dpdGhf
anNvbl9vdXRwdXQpOiBFeHRyYWN0ZWQgZnJvbSB0ZXN0X3J1bl93aXRoX3VwbG9hZF9qc29uIHRv
IGJlIHNoYXJlZCB3aXRoCisgICAgICAgIHNldmVyYWwgdGVzdCBjYXNlcy4KKyAgICAgICAgKF90
ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0Lm1vY2tfdXBsb2FkX2pzb24pOiBEaXR0by4KKyAgICAg
ICAgKHRlc3RfcnVuX3dpdGhfanNvbl9vdXRwdXQpOiBSZWZhY3RvcmVkIHRvIHVzZSBfdGVzdF9y
dW5fd2l0aF9qc29uX291dHB1dC4KKyAgICAgICAgKHRlc3RfcnVuX2dlbmVyYXRlc19yZXN1bHRz
X3BhZ2UpOiBBZGRlZC4gVGVzdHMgdGhlIG5ldyBmZWF0dXJlLgorICAgICAgICAodGVzdF9ydW5f
d2l0aF9qc29uX3NvdXJjZSk6IFJlZmFjdG9yZWQgdG8gdXNlIF90ZXN0X3J1bl93aXRoX2pzb25f
b3V0cHV0LgorICAgICAgICAodGVzdF9ydW5fd2l0aF9tdWx0aXBsZV9yZXBvc2l0b3JpZXMpOiBE
aXR0by4KKyAgICAgICAgKHRlc3RfcnVuX3dpdGhfdXBsb2FkX2pzb24pOiBEaXR0by4KKwogMjAx
Mi0wNy0yNyAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXSBTdXBwb3J0IGZvciBIVE1MIG1lZGlhIGNhcHR1cmUKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3Rz
cnVubmVyLnB5CShyZXZpc2lvbiAxMjM4NDApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bl
cmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lci5weQkod29ya2luZyBjb3B5KQpAQCAtMTU5
LDE1ICsxNTksMjAgQEAgY2xhc3MgUGVyZlRlc3RzUnVubmVyKG9iamVjdCk6CiAgICAgICAgICAg
ICB0ZXN0X3Jlc3VsdHNfc2VydmVyID0gb3B0aW9ucy50ZXN0X3Jlc3VsdHNfc2VydmVyCiAgICAg
ICAgICAgICBicmFuY2ggPSBzZWxmLl9kZWZhdWx0X2JyYW5jaCBpZiB0ZXN0X3Jlc3VsdHNfc2Vy
dmVyIGVsc2UgTm9uZQogICAgICAgICAgICAgYnVpbGRfbnVtYmVyID0gaW50KG9wdGlvbnMuYnVp
bGRfbnVtYmVyKSBpZiBvcHRpb25zLmJ1aWxkX251bWJlciBlbHNlIE5vbmUKKwogICAgICAgICAg
ICAgaWYgbm90IHNlbGYuX2dlbmVyYXRlX2pzb24oc2VsZi5fdGltZXN0YW1wLCBvcHRpb25zLm91
dHB1dF9qc29uX3BhdGgsIG9wdGlvbnMuc291cmNlX2pzb25fcGF0aCwKKyAgICAgICAgICAgICAg
ICBub3QgdGVzdF9yZXN1bHRzX3NlcnZlciwKICAgICAgICAgICAgICAgICBicmFuY2gsIG9wdGlv
bnMucGxhdGZvcm0sIG9wdGlvbnMuYnVpbGRlcl9uYW1lLCBidWlsZF9udW1iZXIpIGFuZCBub3Qg
dW5leHBlY3RlZDoKICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fRVhJVF9DT0RFX0JBRF9K
U09OCisKICAgICAgICAgICAgIGlmIHRlc3RfcmVzdWx0c19zZXJ2ZXIgYW5kIG5vdCBzZWxmLl91
cGxvYWRfanNvbih0ZXN0X3Jlc3VsdHNfc2VydmVyLCBvcHRpb25zLm91dHB1dF9qc29uX3BhdGgp
OgogICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9FWElUX0NPREVfRkFJTEVEX1VQTE9BRElO
RwogCiAgICAgICAgIHJldHVybiB1bmV4cGVjdGVkCiAKLSAgICBkZWYgX2dlbmVyYXRlX2pzb24o
c2VsZiwgdGltZXN0YW1wLCBvdXRwdXRfanNvbl9wYXRoLCBzb3VyY2VfanNvbl9wYXRoLCBicmFu
Y2gsIHBsYXRmb3JtLCBidWlsZGVyX25hbWUsIGJ1aWxkX251bWJlcik6CisgICAgZGVmIF9nZW5l
cmF0ZV9qc29uKHNlbGYsIHRpbWVzdGFtcCwgb3V0cHV0X2pzb25fcGF0aCwgc291cmNlX2pzb25f
cGF0aCwgc2hvdWxkX2dlbmVyYXRlX3Jlc3VsdHNfcGFnZSwKKyAgICAgICAgYnJhbmNoLCBwbGF0
Zm9ybSwgYnVpbGRlcl9uYW1lLCBidWlsZF9udW1iZXIpOgorCiAgICAgICAgIGNvbnRlbnRzID0g
eyd0aW1lc3RhbXAnOiBpbnQodGltZXN0YW1wKSwgJ3Jlc3VsdHMnOiBzZWxmLl9yZXN1bHRzfQog
ICAgICAgICBmb3IgKG5hbWUsIHBhdGgpIGluIHNlbGYuX3BvcnQucmVwb3NpdG9yeV9wYXRocygp
OgogICAgICAgICAgICAgY29udGVudHNbbmFtZSArICctcmV2aXNpb24nXSA9IHNlbGYuX2hvc3Qu
c2NtKCkuc3ZuX3JldmlzaW9uKHBhdGgpCkBAIC0xOTMsNyArMTk4LDI5IEBAIGNsYXNzIFBlcmZU
ZXN0c1J1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgaWYgbm90IHN1Y2NlZWRlZDoKICAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgICAgICBmaWxlc3lzdGVtLndyaXRlX3RleHRf
ZmlsZShvdXRwdXRfanNvbl9wYXRoLCBqc29uLmR1bXBzKGNvbnRlbnRzKSkKKyAgICAgICAgaWYg
c2hvdWxkX2dlbmVyYXRlX3Jlc3VsdHNfcGFnZToKKyAgICAgICAgICAgIGlmIGZpbGVzeXN0ZW0u
aXNmaWxlKG91dHB1dF9qc29uX3BhdGgpOgorICAgICAgICAgICAgICAgIGV4aXN0aW5nX2NvbnRl
bnRzID0ganNvbi5sb2FkcyhmaWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKG91dHB1dF9qc29uX3Bh
dGgpKQorICAgICAgICAgICAgICAgIGV4aXN0aW5nX2NvbnRlbnRzLmFwcGVuZChjb250ZW50cykK
KyAgICAgICAgICAgICAgICBjb250ZW50cyA9IGV4aXN0aW5nX2NvbnRlbnRzCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbnRlbnRzID0gW2NvbnRlbnRzXQorCisgICAgICAg
IHNlcmlhbGl6ZWRfY29udGVudHMgPSBqc29uLmR1bXBzKGNvbnRlbnRzKQorICAgICAgICBmaWxl
c3lzdGVtLndyaXRlX3RleHRfZmlsZShvdXRwdXRfanNvbl9wYXRoLCBzZXJpYWxpemVkX2NvbnRl
bnRzKQorCisgICAgICAgIGlmIHNob3VsZF9nZW5lcmF0ZV9yZXN1bHRzX3BhZ2U6CisgICAgICAg
ICAgICBqcXVlcnlfcGF0aCA9IGZpbGVzeXN0ZW0uam9pbihzZWxmLl9wb3J0LnBlcmZfdGVzdHNf
ZGlyKCksICdEcm9tYWVvL3Jlc291cmNlcy9kcm9tYWVvL3dlYi9saWIvanF1ZXJ5LTEuNi40Lmpz
JykKKyAgICAgICAgICAgIGpxdWVyeSA9IGZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoanF1ZXJ5
X3BhdGgpCisKKyAgICAgICAgICAgIHRlbXBsYXRlX3BhdGggPSBmaWxlc3lzdGVtLmpvaW4oc2Vs
Zi5fcG9ydC5wZXJmX3Rlc3RzX2RpcigpLCAncmVzb3VyY2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRt
bCcpCisgICAgICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUodGVt
cGxhdGVfcGF0aCkKKworICAgICAgICAgICAgcmVzdWx0c19wYWdlID0gdGVtcGxhdGUucmVwbGFj
ZSgnPD9XZWJLaXRQZXJmVGVzdFJ1bm5lckluc2VydGlvblBvaW50Pz4nLAorICAgICAgICAgICAg
ICAgICc8c2NyaXB0PiVzPC9zY3JpcHQ+PHNjcmlwdCBpZD0ianNvbiI+JXM8L3NjcmlwdD4nICUg
KGpxdWVyeSwgc2VyaWFsaXplZF9jb250ZW50cykpCisKKyAgICAgICAgICAgIGZpbGVzeXN0ZW0u
d3JpdGVfdGV4dF9maWxlKGZpbGVzeXN0ZW0uc3BsaXRleHQob3V0cHV0X2pzb25fcGF0aClbMF0g
KyAnLmh0bWwnLCByZXN1bHRzX3BhZ2UpCisKICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRl
ZiBfdXBsb2FkX2pzb24oc2VsZiwgdGVzdF9yZXN1bHRzX3NlcnZlciwganNvbl9wYXRoLCBmaWxl
X3VwbG9hZGVyPUZpbGVVcGxvYWRlcik6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bl
cmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl91bml0dGVzdC5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5l
cl91bml0dGVzdC5weQkocmV2aXNpb24gMTIzODQwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfdW5pdHRlc3QucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTIyNSwxMDEgKzIyNSwxMTEgQEAgbWF4IDExMjAKICAgICAgICAgJ21lZGlhbj0g
MTEwMS4wIG1zLCBzdGRldj0gMTEuMCBtcywgbWluPSAxMDgwLjAgbXMsIG1heD0gMTEyMC4wIG1z
JywKICAgICAgICAgJycsICcnXSkpCiAKLSAgICBkZWYgdGVzdF9ydW5fdGVzdF9zZXRfd2l0aF9q
c29uX291dHB1dChzZWxmKToKLSAgICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVu
bmVyKGFyZ3M9WyctLW91dHB1dC1qc29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24n
XSkKLSAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbcnVubmVyLl9iYXNlX3BhdGgg
KyAnL2luc3BlY3Rvci9wYXNzLmh0bWwnXSA9IFRydWUKLSAgICAgICAgcG9ydC5ob3N0LmZpbGVz
eXN0ZW0uZmlsZXNbcnVubmVyLl9iYXNlX3BhdGggKyAnL0JpbmRpbmdzL2V2ZW50LXRhcmdldC13
cmFwcGVyLmh0bWwnXSA9IFRydWUKLSAgICAgICAgcnVubmVyLl90aW1lc3RhbXAgPSAxMjM0NTY3
ODkKLSAgICAgICAgb3V0cHV0X2NhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKLSAgICAgICAgb3V0
cHV0X2NhcHR1cmUuY2FwdHVyZV9vdXRwdXQoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwgMCkKLSAgICAgICAgZmluYWxseToKLSAgICAg
ICAgICAgIHN0ZG91dCwgc3RkZXJyLCBsb2dzID0gb3V0cHV0X2NhcHR1cmUucmVzdG9yZV9vdXRw
dXQoKQorICAgIGRlZiBfdGVzdF9ydW5fd2l0aF9qc29uX291dHB1dChzZWxmLCBydW5uZXIsIGZp
bGVzeXN0ZW0sIHVwbG9hZF9zdWNlZWRzPVRydWUsIGV4cGVjdGVkX2V4aXRfY29kZT0wKToKKyAg
ICAgICAgZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUocnVubmVyLl9iYXNlX3BhdGggKyAnL2lu
c3BlY3Rvci9wYXNzLmh0bWwnLCAnc29tZSBjb250ZW50JykKKyAgICAgICAgZmlsZXN5c3RlbS53
cml0ZV90ZXh0X2ZpbGUocnVubmVyLl9iYXNlX3BhdGggKyAnL0JpbmRpbmdzL2V2ZW50LXRhcmdl
dC13cmFwcGVyLmh0bWwnLCAnc29tZSBjb250ZW50JykKIAotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxvZ3MsCi0gICAgICAgICAgICAnXG4nLmpvaW4oWydSdW5uaW5nIDIgdGVzdHMnLAotICAg
ICAgICAgICAgICAgICAgICAgICAnUnVubmluZyBCaW5kaW5ncy9ldmVudC10YXJnZXQtd3JhcHBl
ci5odG1sICgxIG9mIDIpJywKLSAgICAgICAgICAgICAgICAgICAgICAgJ1JFU1VMVCBCaW5kaW5n
czogZXZlbnQtdGFyZ2V0LXdyYXBwZXI9IDE0ODkuMDUgbXMnLAotICAgICAgICAgICAgICAgICAg
ICAgICAnbWVkaWFuPSAxNDg3LjAgbXMsIHN0ZGV2PSAxNC40NiBtcywgbWluPSAxNDcxLjAgbXMs
IG1heD0gMTUxMC4wIG1zJywKLSAgICAgICAgICAgICAgICAgICAgICAgJycsCi0gICAgICAgICAg
ICAgICAgICAgICAgICdSdW5uaW5nIGluc3BlY3Rvci9wYXNzLmh0bWwgKDIgb2YgMiknLAotICAg
ICAgICAgICAgICAgICAgICAgICAnUkVTVUxUIGdyb3VwX25hbWU6IHRlc3RfbmFtZT0gNDIgbXMn
LAotICAgICAgICAgICAgICAgICAgICAgICAnJywgJyddKSkKKyAgICAgICAgdXBsb2FkZWQgPSBb
RmFsc2VdCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChqc29uLmxvYWRzKHBvcnQuaG9zdC5m
aWxlc3lzdGVtLmZpbGVzWycvbW9jay1jaGVja291dC9vdXRwdXQuanNvbiddKSwgewotICAgICAg
ICAgICAgInRpbWVzdGFtcCI6IDEyMzQ1Njc4OSwgInJlc3VsdHMiOgotICAgICAgICAgICAgeyJC
aW5kaW5ncy9ldmVudC10YXJnZXQtd3JhcHBlciI6IHsibWF4IjogMTUxMCwgImF2ZyI6IDE0ODku
MDUsICJtZWRpYW4iOiAxNDg3LCAibWluIjogMTQ3MSwgInN0ZGV2IjogMTQuNDYsICJ1bml0Ijog
Im1zIn0sCi0gICAgICAgICAgICAiaW5zcGVjdG9yL3Bhc3MuaHRtbDpncm91cF9uYW1lOnRlc3Rf
bmFtZSI6IDQyfSwKLSAgICAgICAgICAgICJ3ZWJraXQtcmV2aXNpb24iOiA1Njc4fSkKKyAgICAg
ICAgZGVmIG1vY2tfdXBsb2FkX2pzb24oaG9zdG5hbWUsIGpzb25fcGF0aCk6CisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGhvc3RuYW1lLCAnc29tZS5ob3N0JykKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoanNvbl9wYXRoLCAnL21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nKQor
ICAgICAgICAgICAgdXBsb2FkZWRbMF0gPSBUcnVlCisgICAgICAgICAgICByZXR1cm4gdXBsb2Fk
X3N1Y2VlZHMKIAotICAgIGRlZiB0ZXN0X3J1bl90ZXN0X3NldF93aXRoX2pzb25fc291cmNlKHNl
bGYpOgotICAgICAgICBydW5uZXIsIHBvcnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoYXJncz1bJy0t
b3V0cHV0LWpzb24tcGF0aD0vbW9jay1jaGVja291dC9vdXRwdXQuanNvbicsICctLXNvdXJjZS1q
c29uLXBhdGg9L21vY2stY2hlY2tvdXQvc291cmNlLmpzb24nXSkKLSAgICAgICAgcG9ydC5ob3N0
LmZpbGVzeXN0ZW0uZmlsZXNbJy9tb2NrLWNoZWNrb3V0L3NvdXJjZS5qc29uJ10gPSAneyJrZXki
OiAidmFsdWUifScKLSAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbcnVubmVyLl9i
YXNlX3BhdGggKyAnL2luc3BlY3Rvci9wYXNzLmh0bWwnXSA9IFRydWUKLSAgICAgICAgcG9ydC5o
b3N0LmZpbGVzeXN0ZW0uZmlsZXNbcnVubmVyLl9iYXNlX3BhdGggKyAnL0JpbmRpbmdzL2V2ZW50
LXRhcmdldC13cmFwcGVyLmh0bWwnXSA9IFRydWUKKyAgICAgICAgcnVubmVyLl91cGxvYWRfanNv
biA9IG1vY2tfdXBsb2FkX2pzb24KICAgICAgICAgcnVubmVyLl90aW1lc3RhbXAgPSAxMjM0NTY3
ODkKICAgICAgICAgb3V0cHV0X2NhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKICAgICAgICAgb3V0
cHV0X2NhcHR1cmUuY2FwdHVyZV9vdXRwdXQoKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwgMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocnVubmVyLnJ1bigpLCBleHBlY3RlZF9leGl0X2NvZGUpCiAgICAgICAgIGZpbmFsbHk6
CiAgICAgICAgICAgICBzdGRvdXQsIHN0ZGVyciwgbG9ncyA9IG91dHB1dF9jYXB0dXJlLnJlc3Rv
cmVfb3V0cHV0KCkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZ3MsICdcbicuam9pbihb
J1J1bm5pbmcgMiB0ZXN0cycsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9ncywgJ1xuJy5q
b2luKFsKKyAgICAgICAgICAgICdSdW5uaW5nIDIgdGVzdHMnLAogICAgICAgICAgICAgJ1J1bm5p
bmcgQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIuaHRtbCAoMSBvZiAyKScsCiAgICAgICAg
ICAgICAnUkVTVUxUIEJpbmRpbmdzOiBldmVudC10YXJnZXQtd3JhcHBlcj0gMTQ4OS4wNSBtcycs
CiAgICAgICAgICAgICAnbWVkaWFuPSAxNDg3LjAgbXMsIHN0ZGV2PSAxNC40NiBtcywgbWluPSAx
NDcxLjAgbXMsIG1heD0gMTUxMC4wIG1zJywKICAgICAgICAgICAgICcnLAogICAgICAgICAgICAg
J1J1bm5pbmcgaW5zcGVjdG9yL3Bhc3MuaHRtbCAoMiBvZiAyKScsCiAgICAgICAgICAgICAnUkVT
VUxUIGdyb3VwX25hbWU6IHRlc3RfbmFtZT0gNDIgbXMnLAotICAgICAgICAgICAgJycsICcnXSkp
CisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICcnXSkpCisKKyAgICAgICAgcmV0dXJuIHVw
bG9hZGVkWzBdCiAKKyAgICBkZWYgdGVzdF9ydW5fd2l0aF9qc29uX291dHB1dChzZWxmKToKKyAg
ICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKGFyZ3M9WyctLW91dHB1dC1q
c29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nLAorICAgICAgICAgICAgJy0tdGVz
dC1yZXN1bHRzLXNlcnZlcj1zb21lLmhvc3QnXSkKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fd2l0
aF9qc29uX291dHB1dChydW5uZXIsIHBvcnQuaG9zdC5maWxlc3lzdGVtKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGpzb24ubG9hZHMocG9ydC5ob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2Zp
bGUoJy9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJykpLCB7CisgICAgICAgICAgICAidGltZXN0
YW1wIjogMTIzNDU2Nzg5LCAicmVzdWx0cyI6CisgICAgICAgICAgICB7IkJpbmRpbmdzL2V2ZW50
LXRhcmdldC13cmFwcGVyIjogeyJtYXgiOiAxNTEwLCAiYXZnIjogMTQ4OS4wNSwgIm1lZGlhbiI6
IDE0ODcsICJtaW4iOiAxNDcxLCAic3RkZXYiOiAxNC40NiwgInVuaXQiOiAibXMifSwKKyAgICAg
ICAgICAgICJpbnNwZWN0b3IvcGFzcy5odG1sOmdyb3VwX25hbWU6dGVzdF9uYW1lIjogNDJ9LAor
ICAgICAgICAgICAgIndlYmtpdC1yZXZpc2lvbiI6IDU2NzgsICJicmFuY2giOiAid2Via2l0LXRy
dW5rIn0pCisKKyAgICBkZWYgdGVzdF9ydW5fZ2VuZXJhdGVzX3Jlc3VsdHNfcGFnZShzZWxmKToK
KyAgICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKGFyZ3M9WyctLW91dHB1
dC1qc29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nXSkKKyAgICAgICAgZmlsZXN5
c3RlbSA9IHBvcnQuaG9zdC5maWxlc3lzdGVtCisgICAgICAgIHByaW50IHJ1bm5lci5fYmFzZV9w
YXRoICsgJy9yZXNvdXJjZXMvcmVzdWx0cy10ZW1wbGF0ZS5odG1sJworICAgICAgICBmaWxlc3lz
dGVtLndyaXRlX3RleHRfZmlsZShydW5uZXIuX2Jhc2VfcGF0aCArICcvcmVzb3VyY2VzL3Jlc3Vs
dHMtdGVtcGxhdGUuaHRtbCcsCisgICAgICAgICAgICAnQkVHSU48P1dlYktpdFBlcmZUZXN0UnVu
bmVySW5zZXJ0aW9uUG9pbnQ/PkVORCcpCisgICAgICAgIGZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9m
aWxlKHJ1bm5lci5fYmFzZV9wYXRoICsgJy9Ecm9tYWVvL3Jlc291cmNlcy9kcm9tYWVvL3dlYi9s
aWIvanF1ZXJ5LTEuNi40LmpzJywKKyAgICAgICAgICAgICdqcXVlcnkgY29udGVudCcpCisKKyAg
ICAgICAgc2VsZi5fdGVzdF9ydW5fd2l0aF9qc29uX291dHB1dChydW5uZXIsIGZpbGVzeXN0ZW0p
CisKKyAgICAgICAgZXhwZWN0ZWRfZW50cnkgPSB7InRpbWVzdGFtcCI6IDEyMzQ1Njc4OSwgInJl
c3VsdHMiOiB7IkJpbmRpbmdzL2V2ZW50LXRhcmdldC13cmFwcGVyIjoKKyAgICAgICAgICAgIHsi
bWF4IjogMTUxMCwgImF2ZyI6IDE0ODkuMDUsICJtZWRpYW4iOiAxNDg3LCAibWluIjogMTQ3MSwg
InN0ZGV2IjogMTQuNDYsICJ1bml0IjogIm1zIn0sCisgICAgICAgICAgICAiaW5zcGVjdG9yL3Bh
c3MuaHRtbDpncm91cF9uYW1lOnRlc3RfbmFtZSI6IDQyfSwgIndlYmtpdC1yZXZpc2lvbiI6IDU2
Nzh9CisKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBqc29uX291dHB1dCA9
IHBvcnQuaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvbW9jay1jaGVja291dC9vdXRw
dXQuanNvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoanNvbi5sb2Fkcyhqc29uX291dHB1
dCksIFtleHBlY3RlZF9lbnRyeV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3Rl
bS5yZWFkX3RleHRfZmlsZSgnL21vY2stY2hlY2tvdXQvb3V0cHV0Lmh0bWwnKSwKKyAgICAgICAg
ICAgICdCRUdJTjxzY3JpcHQ+anF1ZXJ5IGNvbnRlbnQ8L3NjcmlwdD48c2NyaXB0IGlkPSJqc29u
Ij4nICsganNvbl9vdXRwdXQgKyAnPC9zY3JpcHQ+RU5EJykKKworICAgICAgICBzZWxmLl90ZXN0
X3J1bl93aXRoX2pzb25fb3V0cHV0KHJ1bm5lciwgZmlsZXN5c3RlbSkKKyAgICAgICAganNvbl9v
dXRwdXQgPSBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL21vY2stY2hlY2tv
dXQvb3V0cHV0Lmpzb24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24ubG9hZHMoanNv
bl9vdXRwdXQpLCBbZXhwZWN0ZWRfZW50cnksIGV4cGVjdGVkX2VudHJ5XSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvbW9jay1jaGVja291dC9v
dXRwdXQuaHRtbCcpLAorICAgICAgICAgICAgJ0JFR0lOPHNjcmlwdD5qcXVlcnkgY29udGVudDwv
c2NyaXB0PjxzY3JpcHQgaWQ9Impzb24iPicgKyBqc29uX291dHB1dCArICc8L3NjcmlwdD5FTkQn
KQorCisgICAgZGVmIHRlc3RfcnVuX3dpdGhfanNvbl9zb3VyY2Uoc2VsZik6CisgICAgICAgIHJ1
bm5lciwgcG9ydCA9IHNlbGYuY3JlYXRlX3J1bm5lcihhcmdzPVsnLS1vdXRwdXQtanNvbi1wYXRo
PS9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJywKKyAgICAgICAgICAgICctLXNvdXJjZS1qc29u
LXBhdGg9L21vY2stY2hlY2tvdXQvc291cmNlLmpzb24nLCAnLS10ZXN0LXJlc3VsdHMtc2VydmVy
PXNvbWUuaG9zdCddKQorICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2Zp
bGUoJy9tb2NrLWNoZWNrb3V0L3NvdXJjZS5qc29uJywgJ3sia2V5IjogInZhbHVlIn0nKQorICAg
ICAgICBzZWxmLl90ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0KHJ1bm5lciwgcG9ydC5ob3N0LmZp
bGVzeXN0ZW0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoanNvbi5sb2Fkcyhwb3J0Lmhvc3Qu
ZmlsZXN5c3RlbS5maWxlc1snL21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nXSksIHsKICAgICAg
ICAgICAgICJ0aW1lc3RhbXAiOiAxMjM0NTY3ODksICJyZXN1bHRzIjoKICAgICAgICAgICAgIHsi
QmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIiOiB7Im1heCI6IDE1MTAsICJhdmciOiAxNDg5
LjA1LCAibWVkaWFuIjogMTQ4NywgIm1pbiI6IDE0NzEsICJzdGRldiI6IDE0LjQ2LCAidW5pdCI6
ICJtcyJ9LAogICAgICAgICAgICAgImluc3BlY3Rvci9wYXNzLmh0bWw6Z3JvdXBfbmFtZTp0ZXN0
X25hbWUiOiA0Mn0sCi0gICAgICAgICAgICAid2Via2l0LXJldmlzaW9uIjogNTY3OCwKKyAgICAg
ICAgICAgICJ3ZWJraXQtcmV2aXNpb24iOiA1Njc4LCAiYnJhbmNoIjogIndlYmtpdC10cnVuayIs
CiAgICAgICAgICAgICAia2V5IjogInZhbHVlIn0pCiAKLSAgICBkZWYgdGVzdF9ydW5fdGVzdF9z
ZXRfd2l0aF9tdWx0aXBsZV9yZXBvc2l0b3JpZXMoc2VsZik6Ci0gICAgICAgIHJ1bm5lciwgcG9y
dCA9IHNlbGYuY3JlYXRlX3J1bm5lcihhcmdzPVsnLS1vdXRwdXQtanNvbi1wYXRoPS9tb2NrLWNo
ZWNrb3V0L291dHB1dC5qc29uJ10pCi0gICAgICAgIHBvcnQuaG9zdC5maWxlc3lzdGVtLmZpbGVz
W3J1bm5lci5fYmFzZV9wYXRoICsgJy9pbnNwZWN0b3IvcGFzcy5odG1sJ10gPSBUcnVlCi0gICAg
ICAgIHJ1bm5lci5fdGltZXN0YW1wID0gMTIzNDU2Nzg5CisgICAgZGVmIHRlc3RfcnVuX3dpdGhf
bXVsdGlwbGVfcmVwb3NpdG9yaWVzKHNlbGYpOgorICAgICAgICBydW5uZXIsIHBvcnQgPSBzZWxm
LmNyZWF0ZV9ydW5uZXIoYXJncz1bJy0tb3V0cHV0LWpzb24tcGF0aD0vbW9jay1jaGVja291dC9v
dXRwdXQuanNvbicsCisgICAgICAgICAgICAnLS10ZXN0LXJlc3VsdHMtc2VydmVyPXNvbWUuaG9z
dCddKQogICAgICAgICBwb3J0LnJlcG9zaXRvcnlfcGF0aHMgPSBsYW1iZGE6IFsoJ3dlYmtpdCcs
ICcvbW9jay1jaGVja291dCcpLCAoJ3NvbWUnLCAnL21vY2stY2hlY2tvdXQvc29tZScpXQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwgMCkKKyAgICAgICAgc2VsZi5fdGVz
dF9ydW5fd2l0aF9qc29uX291dHB1dChydW5uZXIsIHBvcnQuaG9zdC5maWxlc3lzdGVtKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24ubG9hZHMocG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmls
ZXNbJy9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJ10pLCB7Ci0gICAgICAgICAgICAidGltZXN0
YW1wIjogMTIzNDU2Nzg5LCAicmVzdWx0cyI6IHsiaW5zcGVjdG9yL3Bhc3MuaHRtbDpncm91cF9u
YW1lOnRlc3RfbmFtZSI6IDQyLjB9LCAid2Via2l0LXJldmlzaW9uIjogNTY3OCwgInNvbWUtcmV2
aXNpb24iOiA1Njc4fSkKKyAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAxMjM0NTY3ODksICJyZXN1
bHRzIjoKKyAgICAgICAgICAgIHsiQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIiOiB7Im1h
eCI6IDE1MTAsICJhdmciOiAxNDg5LjA1LCAibWVkaWFuIjogMTQ4NywgIm1pbiI6IDE0NzEsICJz
dGRldiI6IDE0LjQ2LCAidW5pdCI6ICJtcyJ9LAorICAgICAgICAgICAgImluc3BlY3Rvci9wYXNz
Lmh0bWw6Z3JvdXBfbmFtZTp0ZXN0X25hbWUiOiA0Mi4wfSwKKyAgICAgICAgICAgICJ3ZWJraXQt
cmV2aXNpb24iOiA1Njc4LCAic29tZS1yZXZpc2lvbiI6IDU2NzgsICJicmFuY2giOiAid2Via2l0
LXRydW5rIn0pCiAKICAgICBkZWYgdGVzdF9ydW5fd2l0aF91cGxvYWRfanNvbihzZWxmKToKICAg
ICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKGFyZ3M9WyctLW91dHB1dC1q
c29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nLAogICAgICAgICAgICAgJy0tdGVz
dC1yZXN1bHRzLXNlcnZlcicsICdzb21lLmhvc3QnLCAnLS1wbGF0Zm9ybScsICdwbGF0Zm9ybTEn
LCAnLS1idWlsZGVyLW5hbWUnLCAnYnVpbGRlcjEnLCAnLS1idWlsZC1udW1iZXInLCAnMTIzJ10p
Ci0gICAgICAgIHVwbG9hZF9qc29uX2lzX2NhbGxlZCA9IFtGYWxzZV0KLSAgICAgICAgdXBsb2Fk
X2pzb25fcmV0dXJuc190cnVlID0gVHJ1ZQogCi0gICAgICAgIGRlZiBtb2NrX3VwbG9hZF9qc29u
KGhvc3RuYW1lLCBqc29uX3BhdGgpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChob3N0
bmFtZSwgJ3NvbWUuaG9zdCcpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb25fcGF0
aCwgJy9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJykKLSAgICAgICAgICAgIHVwbG9hZF9qc29u
X2lzX2NhbGxlZFswXSA9IFRydWUKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRfanNvbl9yZXR1
cm5zX3RydWUKLQotICAgICAgICBydW5uZXIuX3VwbG9hZF9qc29uID0gbW9ja191cGxvYWRfanNv
bgotICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1snL21vY2stY2hlY2tvdXQvc291
cmNlLmpzb24nXSA9ICd7ImtleSI6ICJ2YWx1ZSJ9JwotICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5
c3RlbS5maWxlc1tydW5uZXIuX2Jhc2VfcGF0aCArICcvaW5zcGVjdG9yL3Bhc3MuaHRtbCddID0g
VHJ1ZQotICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1tydW5uZXIuX2Jhc2VfcGF0
aCArICcvQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIuaHRtbCddID0gVHJ1ZQotICAgICAg
ICBydW5uZXIuX3RpbWVzdGFtcCA9IDEyMzQ1Njc4OQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJ1bm5lci5ydW4oKSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cGxvYWRfanNvbl9p
c19jYWxsZWRbMF0sIFRydWUpCisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX3dpdGhfanNvbl9vdXRw
dXQocnVubmVyLCBwb3J0Lmhvc3QuZmlsZXN5c3RlbSwgdXBsb2FkX3N1Y2VlZHM9VHJ1ZSkKICAg
ICAgICAgZ2VuZXJhdGVkX2pzb24gPSBqc29uLmxvYWRzKHBvcnQuaG9zdC5maWxlc3lzdGVtLmZp
bGVzWycvbW9jay1jaGVja291dC9vdXRwdXQuanNvbiddKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGdlbmVyYXRlZF9qc29uWydwbGF0Zm9ybSddLCAncGxhdGZvcm0xJykKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChnZW5lcmF0ZWRfanNvblsnYnVpbGRlci1uYW1lJ10sICdidWlsZGVyMScp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2VuZXJhdGVkX2pzb25bJ2J1aWxkLW51bWJlcidd
LCAxMjMpCi0gICAgICAgIHVwbG9hZF9qc29uX3JldHVybnNfdHJ1ZSA9IEZhbHNlCiAKLSAgICAg
ICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKGFyZ3M9WyctLW91dHB1dC1qc29u
LXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nLAotICAgICAgICAgICAgJy0tdGVzdC1y
ZXN1bHRzLXNlcnZlcicsICdzb21lLmhvc3QnLCAnLS1wbGF0Zm9ybScsICdwbGF0Zm9ybTEnLCAn
LS1idWlsZGVyLW5hbWUnLCAnYnVpbGRlcjEnLCAnLS1idWlsZC1udW1iZXInLCAnMTIzJ10pCi0g
ICAgICAgIHJ1bm5lci5fdXBsb2FkX2pzb24gPSBtb2NrX3VwbG9hZF9qc29uCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocnVubmVyLnJ1bigpLCAtMykKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5f
d2l0aF9qc29uX291dHB1dChydW5uZXIsIHBvcnQuaG9zdC5maWxlc3lzdGVtLCB1cGxvYWRfc3Vj
ZWVkcz1GYWxzZSwgZXhwZWN0ZWRfZXhpdF9jb2RlPS0zKQogCiAgICAgZGVmIHRlc3RfdXBsb2Fk
X2pzb24oc2VsZik6CiAgICAgICAgIHJ1bm5lciwgcG9ydCA9IHNlbGYuY3JlYXRlX3J1bm5lcigp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155125</attachid>
            <date>2012-07-28 02:31:44 -0700</date>
            <delta_ts>2012-07-29 14:57:04 -0700</delta_ts>
            <desc>Removed tabs</desc>
            <filename>bug-92575-20120728023131.patch</filename>
            <type>text/plain</type>
            <size>60328</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjM5NTcpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTI4ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHJ1bi1wZXJmLXRlc3Rz
IHNob3VsZCBnZW5lcmF0ZSBhIHJlc3VsdHMgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSByZXN1bHRzIHBhZ2UgdGVtcGxhdGUuIFRoaXMg
cGFnZSBpbmNsdWRlcyBmbG90IGFuZCBmbG90LmZpbGxiZXR3ZWVuLgorICAgICAgICBqUXVlcnkg
YW5kIHRoZSBqc29uIHRoYXQgY29udGFpbnMgdGVzdCByZXN1bHRzIGFyZSBpbmplY3RlZCBieSBy
dW4tcGVyZi10ZXN0cy4KKworICAgICAgICAqIHJlc291cmNlcy9yZXN1bHRzLXRlbXBsYXRlLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA3LTI3ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNp
c2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgdXNlIGNyZWF0ZVVuaW5pdGlhbGl6ZWQgd2hlbiBj
cmVhdGluZyBUeXBlZEFycmF5IGZyb20gYW5vdGhlciBhcnJheQpJbmRleDogUGVyZm9ybWFuY2VU
ZXN0cy9yZXNvdXJjZXMvcmVzdWx0cy10ZW1wbGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvcmVzb3VyY2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRtbAkocmV2aXNpb24gMCkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzx0aXRsZT5XZWJLaXQgUGVyZm9ybWFuY2UgVGVzdCBSZXN1bHRzPC90aXRsZT4KKzw/V2Vi
S2l0UGVyZlRlc3RSdW5uZXJJbnNlcnRpb25Qb2ludD8+Cis8c2NyaXB0IHRpdGxlPSJqcXVlcnku
ZmxvdC5taW4uanMiPgorLyogSmF2YXNjcmlwdCBwbG90dGluZyBsaWJyYXJ5IGZvciBqUXVlcnks
IHYuIDAuNy4KKyAqCisgKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgYnkgSU9MQSwg
RGVjZW1iZXIgMjAwNy4KKyAqCisgKi8KKyhmdW5jdGlvbihiKXtiLmNvbG9yPXt9O2IuY29sb3Iu
bWFrZT1mdW5jdGlvbihkLGUsZyxmKXt2YXIgYz17fTtjLnI9ZHx8MDtjLmc9ZXx8MDtjLmI9Z3x8
MDtjLmE9ZiE9bnVsbD9mOjE7Yy5hZGQ9ZnVuY3Rpb24oaCxqKXtmb3IodmFyIGs9MDtrPGgubGVu
Z3RoOysrayl7Y1toLmNoYXJBdChrKV0rPWp9cmV0dXJuIGMubm9ybWFsaXplKCl9O2Muc2NhbGU9
ZnVuY3Rpb24oaCxqKXtmb3IodmFyIGs9MDtrPGgubGVuZ3RoOysrayl7Y1toLmNoYXJBdChrKV0q
PWp9cmV0dXJuIGMubm9ybWFsaXplKCl9O2MudG9TdHJpbmc9ZnVuY3Rpb24oKXtpZihjLmE+PTEp
e3JldHVybiJyZ2IoIitbYy5yLGMuZyxjLmJdLmpvaW4oIiwiKSsiKSJ9ZWxzZXtyZXR1cm4icmdi
YSgiK1tjLnIsYy5nLGMuYixjLmFdLmpvaW4oIiwiKSsiKSJ9fTtjLm5vcm1hbGl6ZT1mdW5jdGlv
bigpe2Z1bmN0aW9uIGgoayxqLGwpe3JldHVybiBqPGs/azooaj5sP2w6ail9Yy5yPWgoMCxwYXJz
ZUludChjLnIpLDI1NSk7Yy5nPWgoMCxwYXJzZUludChjLmcpLDI1NSk7Yy5iPWgoMCxwYXJzZUlu
dChjLmIpLDI1NSk7Yy5hPWgoMCxjLmEsMSk7cmV0dXJuIGN9O2MuY2xvbmU9ZnVuY3Rpb24oKXty
ZXR1cm4gYi5jb2xvci5tYWtlKGMucixjLmIsYy5nLGMuYSl9O3JldHVybiBjLm5vcm1hbGl6ZSgp
fTtiLmNvbG9yLmV4dHJhY3Q9ZnVuY3Rpb24oZCxlKXt2YXIgYztkb3tjPWQuY3NzKGUpLnRvTG93
ZXJDYXNlKCk7aWYoYyE9IiImJmMhPSJ0cmFuc3BhcmVudCIpe2JyZWFrfWQ9ZC5wYXJlbnQoKX13
aGlsZSghYi5ub2RlTmFtZShkLmdldCgwKSwiYm9keSIpKTtpZihjPT0icmdiYSgwLCAwLCAwLCAw
KSIpe2M9InRyYW5zcGFyZW50In1yZXR1cm4gYi5jb2xvci5wYXJzZShjKX07Yi5jb2xvci5wYXJz
ZT1mdW5jdGlvbihjKXt2YXIgZCxmPWIuY29sb3IubWFrZTtpZihkPS9yZ2JcKFxzKihbMC05XXsx
LDN9KVxzKixccyooWzAtOV17MSwzfSlccyosXHMqKFswLTldezEsM30pXHMqXCkvLmV4ZWMoYykp
e3JldHVybiBmKHBhcnNlSW50KGRbMV0sMTApLHBhcnNlSW50KGRbMl0sMTApLHBhcnNlSW50KGRb
M10sMTApKX1pZihkPS9yZ2JhXChccyooWzAtOV17MSwzfSlccyosXHMqKFswLTldezEsM30pXHMq
LFxzKihbMC05XXsxLDN9KVxzKixccyooWzAtOV0rKD86XC5bMC05XSspPylccypcKS8uZXhlYyhj
KSl7cmV0dXJuIGYocGFyc2VJbnQoZFsxXSwxMCkscGFyc2VJbnQoZFsyXSwxMCkscGFyc2VJbnQo
ZFszXSwxMCkscGFyc2VGbG9hdChkWzRdKSl9aWYoZD0vcmdiXChccyooWzAtOV0rKD86XC5bMC05
XSspPylcJVxzKixccyooWzAtOV0rKD86XC5bMC05XSspPylcJVxzKixccyooWzAtOV0rKD86XC5b
MC05XSspPylcJVxzKlwpLy5leGVjKGMpKXtyZXR1cm4gZihwYXJzZUZsb2F0KGRbMV0pKjIuNTUs
cGFyc2VGbG9hdChkWzJdKSoyLjU1LHBhcnNlRmxvYXQoZFszXSkqMi41NSl9aWYoZD0vcmdiYVwo
XHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVccyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVc
cyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVccyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8p
XHMqXCkvLmV4ZWMoYykpe3JldHVybiBmKHBhcnNlRmxvYXQoZFsxXSkqMi41NSxwYXJzZUZsb2F0
KGRbMl0pKjIuNTUscGFyc2VGbG9hdChkWzNdKSoyLjU1LHBhcnNlRmxvYXQoZFs0XSkpfWlmKGQ9
LyMoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkvLmV4ZWMo
Yykpe3JldHVybiBmKHBhcnNlSW50KGRbMV0sMTYpLHBhcnNlSW50KGRbMl0sMTYpLHBhcnNlSW50
KGRbM10sMTYpKX1pZihkPS8jKFthLWZBLUYwLTldKShbYS1mQS1GMC05XSkoW2EtZkEtRjAtOV0p
Ly5leGVjKGMpKXtyZXR1cm4gZihwYXJzZUludChkWzFdK2RbMV0sMTYpLHBhcnNlSW50KGRbMl0r
ZFsyXSwxNikscGFyc2VJbnQoZFszXStkWzNdLDE2KSl9dmFyIGU9Yi50cmltKGMpLnRvTG93ZXJD
YXNlKCk7aWYoZT09InRyYW5zcGFyZW50Iil7cmV0dXJuIGYoMjU1LDI1NSwyNTUsMCl9ZWxzZXtk
PWFbZV18fFswLDAsMF07cmV0dXJuIGYoZFswXSxkWzFdLGRbMl0pfX07dmFyIGE9e2FxdWE6WzAs
MjU1LDI1NV0sYXp1cmU6WzI0MCwyNTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJsYWNrOlsw
LDAsMF0sYmx1ZTpbMCwwLDI1NV0sYnJvd246WzE2NSw0Miw0Ml0sY3lhbjpbMCwyNTUsMjU1XSxk
YXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0sZGFya2dyZXk6WzE2OSwxNjks
MTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtraGFraTpbMTg5LDE4MywxMDddLGRhcmttYWdl
bnRhOlsxMzksMCwxMzldLGRhcmtvbGl2ZWdyZWVuOls4NSwxMDcsNDddLGRhcmtvcmFuZ2U6WzI1
NSwxNDAsMF0sZGFya29yY2hpZDpbMTUzLDUwLDIwNF0sZGFya3JlZDpbMTM5LDAsMF0sZGFya3Nh
bG1vbjpbMjMzLDE1MCwxMjJdLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMV0sZnVjaHNpYTpbMjU1LDAs
MjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdyZWVuOlswLDEyOCwwXSxpbmRpZ286Wzc1LDAsMTMwXSxr
aGFraTpbMjQwLDIzMCwxNDBdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzBdLGxpZ2h0Y3lhbjpbMjI0
LDI1NSwyNTVdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdodGdyZXk6WzIxMSwyMTEsMjEx
XSxsaWdodHBpbms6WzI1NSwxODIsMTkzXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjRdLGxpbWU6
WzAsMjU1LDBdLG1hZ2VudGE6WzI1NSwwLDI1NV0sbWFyb29uOlsxMjgsMCwwXSxuYXZ5OlswLDAs
MTI4XSxvbGl2ZTpbMTI4LDEyOCwwXSxvcmFuZ2U6WzI1NSwxNjUsMF0scGluazpbMjU1LDE5Miwy
MDNdLHB1cnBsZTpbMTI4LDAsMTI4XSx2aW9sZXQ6WzEyOCwwLDEyOF0scmVkOlsyNTUsMCwwXSxz
aWx2ZXI6WzE5MiwxOTIsMTkyXSx3aGl0ZTpbMjU1LDI1NSwyNTVdLHllbGxvdzpbMjU1LDI1NSww
XX19KShqUXVlcnkpOyhmdW5jdGlvbihjKXtmdW5jdGlvbiBiKGF2LGFpLEosYWYpe3ZhciBRPVtd
LE89e2NvbG9yczpbIiNlZGMyNDAiLCIjYWZkOGY4IiwiI2NiNGI0YiIsIiM0ZGE3NGQiLCIjOTQ0
MGVkIl0sbGVnZW5kOntzaG93OnRydWUsbm9Db2x1bW5zOjEsbGFiZWxGb3JtYXR0ZXI6bnVsbCxs
YWJlbEJveEJvcmRlckNvbG9yOiIjY2NjIixjb250YWluZXI6bnVsbCxwb3NpdGlvbjoibmUiLG1h
cmdpbjo1LGJhY2tncm91bmRDb2xvcjpudWxsLGJhY2tncm91bmRPcGFjaXR5OjAuODV9LHhheGlz
OntzaG93Om51bGwscG9zaXRpb246ImJvdHRvbSIsbW9kZTpudWxsLGNvbG9yOm51bGwsdGlja0Nv
bG9yOm51bGwsdHJhbnNmb3JtOm51bGwsaW52ZXJzZVRyYW5zZm9ybTpudWxsLG1pbjpudWxsLG1h
eDpudWxsLGF1dG9zY2FsZU1hcmdpbjpudWxsLHRpY2tzOm51bGwsdGlja0Zvcm1hdHRlcjpudWxs
LGxhYmVsV2lkdGg6bnVsbCxsYWJlbEhlaWdodDpudWxsLHJlc2VydmVTcGFjZTpudWxsLHRpY2tM
ZW5ndGg6bnVsbCxhbGlnblRpY2tzV2l0aEF4aXM6bnVsbCx0aWNrRGVjaW1hbHM6bnVsbCx0aWNr
U2l6ZTpudWxsLG1pblRpY2tTaXplOm51bGwsbW9udGhOYW1lczpudWxsLHRpbWVmb3JtYXQ6bnVs
bCx0d2VsdmVIb3VyQ2xvY2s6ZmFsc2V9LHlheGlzOnthdXRvc2NhbGVNYXJnaW46MC4wMixwb3Np
dGlvbjoibGVmdCJ9LHhheGVzOltdLHlheGVzOltdLHNlcmllczp7cG9pbnRzOntzaG93OmZhbHNl
LHJhZGl1czozLGxpbmVXaWR0aDoyLGZpbGw6dHJ1ZSxmaWxsQ29sb3I6IiNmZmZmZmYiLHN5bWJv
bDoiY2lyY2xlIn0sbGluZXM6e2xpbmVXaWR0aDoyLGZpbGw6ZmFsc2UsZmlsbENvbG9yOm51bGws
c3RlcHM6ZmFsc2V9LGJhcnM6e3Nob3c6ZmFsc2UsbGluZVdpZHRoOjIsYmFyV2lkdGg6MSxmaWxs
OnRydWUsZmlsbENvbG9yOm51bGwsYWxpZ246ImxlZnQiLGhvcml6b250YWw6ZmFsc2V9LHNoYWRv
d1NpemU6M30sZ3JpZDp7c2hvdzp0cnVlLGFib3ZlRGF0YTpmYWxzZSxjb2xvcjoiIzU0NTQ1NCIs
YmFja2dyb3VuZENvbG9yOm51bGwsYm9yZGVyQ29sb3I6bnVsbCx0aWNrQ29sb3I6bnVsbCxsYWJl
bE1hcmdpbjo1LGF4aXNNYXJnaW46OCxib3JkZXJXaWR0aDoyLG1pbkJvcmRlck1hcmdpbjpudWxs
LG1hcmtpbmdzOm51bGwsbWFya2luZ3NDb2xvcjoiI2Y0ZjRmNCIsbWFya2luZ3NMaW5lV2lkdGg6
MixjbGlja2FibGU6ZmFsc2UsaG92ZXJhYmxlOmZhbHNlLGF1dG9IaWdobGlnaHQ6dHJ1ZSxtb3Vz
ZUFjdGl2ZVJhZGl1czoxMH0saG9va3M6e319LGF6PW51bGwsYWQ9bnVsbCx5PW51bGwsSD1udWxs
LEE9bnVsbCxwPVtdLGF3PVtdLHE9e2xlZnQ6MCxyaWdodDowLHRvcDowLGJvdHRvbTowfSxHPTAs
ST0wLGg9MCx3PTAsYWs9e3Byb2Nlc3NPcHRpb25zOltdLHByb2Nlc3NSYXdEYXRhOltdLHByb2Nl
c3NEYXRhcG9pbnRzOltdLGRyYXdTZXJpZXM6W10sZHJhdzpbXSxiaW5kRXZlbnRzOltdLGRyYXdP
dmVybGF5OltdLHNodXRkb3duOltdfSxhcT10aGlzO2FxLnNldERhdGE9YWo7YXEuc2V0dXBHcmlk
PXQ7YXEuZHJhdz1XO2FxLmdldFBsYWNlaG9sZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGF2fTthcS5n
ZXRDYW52YXM9ZnVuY3Rpb24oKXtyZXR1cm4gYXp9O2FxLmdldFBsb3RPZmZzZXQ9ZnVuY3Rpb24o
KXtyZXR1cm4gcX07YXEud2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gaH07YXEuaGVpZ2h0PWZ1bmN0
aW9uKCl7cmV0dXJuIHd9O2FxLm9mZnNldD1mdW5jdGlvbigpe3ZhciBhQj15Lm9mZnNldCgpO2FC
LmxlZnQrPXEubGVmdDthQi50b3ArPXEudG9wO3JldHVybiBhQn07YXEuZ2V0RGF0YT1mdW5jdGlv
bigpe3JldHVybiBRfTthcS5nZXRBeGVzPWZ1bmN0aW9uKCl7dmFyIGFDPXt9LGFCO2MuZWFjaChw
LmNvbmNhdChhdyksZnVuY3Rpb24oYUQsYUUpe2lmKGFFKXthQ1thRS5kaXJlY3Rpb24rKGFFLm4h
PTE/YUUubjoiIikrImF4aXMiXT1hRX19KTtyZXR1cm4gYUN9O2FxLmdldFhBeGVzPWZ1bmN0aW9u
KCl7cmV0dXJuIHB9O2FxLmdldFlBeGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGF3fTthcS5jMnA9Qzth
cS5wMmM9YXI7YXEuZ2V0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBPfTthcS5oaWdobGlnaHQ9
eDthcS51bmhpZ2hsaWdodD1UO2FxLnRyaWdnZXJSZWRyYXdPdmVybGF5PWY7YXEucG9pbnRPZmZz
ZXQ9ZnVuY3Rpb24oYUIpe3JldHVybntsZWZ0OnBhcnNlSW50KHBbYUEoYUIsIngiKS0xXS5wMmMo
K2FCLngpK3EubGVmdCksdG9wOnBhcnNlSW50KGF3W2FBKGFCLCJ5IiktMV0ucDJjKCthQi55KStx
LnRvcCl9fTthcS5zaHV0ZG93bj1hZzthcS5yZXNpemU9ZnVuY3Rpb24oKXtCKCk7Zyhheik7Zyhh
ZCl9O2FxLmhvb2tzPWFrO0YoYXEpO1ooSik7WCgpO2FqKGFpKTt0KCk7VygpO2FoKCk7ZnVuY3Rp
b24gYW4oYUQsYUIpe2FCPVthcV0uY29uY2F0KGFCKTtmb3IodmFyIGFDPTA7YUM8YUQubGVuZ3Ro
OysrYUMpe2FEW2FDXS5hcHBseSh0aGlzLGFCKX19ZnVuY3Rpb24gRigpe2Zvcih2YXIgYUI9MDth
QjxhZi5sZW5ndGg7KythQil7dmFyIGFDPWFmW2FCXTthQy5pbml0KGFxKTtpZihhQy5vcHRpb25z
KXtjLmV4dGVuZCh0cnVlLE8sYUMub3B0aW9ucyl9fX1mdW5jdGlvbiBaKGFDKXt2YXIgYUI7Yy5l
eHRlbmQodHJ1ZSxPLGFDKTtpZihPLnhheGlzLmNvbG9yPT1udWxsKXtPLnhheGlzLmNvbG9yPU8u
Z3JpZC5jb2xvcn1pZihPLnlheGlzLmNvbG9yPT1udWxsKXtPLnlheGlzLmNvbG9yPU8uZ3JpZC5j
b2xvcn1pZihPLnhheGlzLnRpY2tDb2xvcj09bnVsbCl7Ty54YXhpcy50aWNrQ29sb3I9Ty5ncmlk
LnRpY2tDb2xvcn1pZihPLnlheGlzLnRpY2tDb2xvcj09bnVsbCl7Ty55YXhpcy50aWNrQ29sb3I9
Ty5ncmlkLnRpY2tDb2xvcn1pZihPLmdyaWQuYm9yZGVyQ29sb3I9PW51bGwpe08uZ3JpZC5ib3Jk
ZXJDb2xvcj1PLmdyaWQuY29sb3J9aWYoTy5ncmlkLnRpY2tDb2xvcj09bnVsbCl7Ty5ncmlkLnRp
Y2tDb2xvcj1jLmNvbG9yLnBhcnNlKE8uZ3JpZC5jb2xvcikuc2NhbGUoImEiLDAuMjIpLnRvU3Ry
aW5nKCl9Zm9yKGFCPTA7YUI8TWF0aC5tYXgoMSxPLnhheGVzLmxlbmd0aCk7KythQil7Ty54YXhl
c1thQl09Yy5leHRlbmQodHJ1ZSx7fSxPLnhheGlzLE8ueGF4ZXNbYUJdKX1mb3IoYUI9MDthQjxN
YXRoLm1heCgxLE8ueWF4ZXMubGVuZ3RoKTsrK2FCKXtPLnlheGVzW2FCXT1jLmV4dGVuZCh0cnVl
LHt9LE8ueWF4aXMsTy55YXhlc1thQl0pfWlmKE8ueGF4aXMubm9UaWNrcyYmTy54YXhpcy50aWNr
cz09bnVsbCl7Ty54YXhpcy50aWNrcz1PLnhheGlzLm5vVGlja3N9aWYoTy55YXhpcy5ub1RpY2tz
JiZPLnlheGlzLnRpY2tzPT1udWxsKXtPLnlheGlzLnRpY2tzPU8ueWF4aXMubm9UaWNrc31pZihP
LngyYXhpcyl7Ty54YXhlc1sxXT1jLmV4dGVuZCh0cnVlLHt9LE8ueGF4aXMsTy54MmF4aXMpO08u
eGF4ZXNbMV0ucG9zaXRpb249InRvcCJ9aWYoTy55MmF4aXMpe08ueWF4ZXNbMV09Yy5leHRlbmQo
dHJ1ZSx7fSxPLnlheGlzLE8ueTJheGlzKTtPLnlheGVzWzFdLnBvc2l0aW9uPSJyaWdodCJ9aWYo
Ty5ncmlkLmNvbG9yZWRBcmVhcyl7Ty5ncmlkLm1hcmtpbmdzPU8uZ3JpZC5jb2xvcmVkQXJlYXN9
aWYoTy5ncmlkLmNvbG9yZWRBcmVhc0NvbG9yKXtPLmdyaWQubWFya2luZ3NDb2xvcj1PLmdyaWQu
Y29sb3JlZEFyZWFzQ29sb3J9aWYoTy5saW5lcyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5saW5l
cyxPLmxpbmVzKX1pZihPLnBvaW50cyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5wb2ludHMsTy5w
b2ludHMpfWlmKE8uYmFycyl7Yy5leHRlbmQodHJ1ZSxPLnNlcmllcy5iYXJzLE8uYmFycyl9aWYo
Ty5zaGFkb3dTaXplIT1udWxsKXtPLnNlcmllcy5zaGFkb3dTaXplPU8uc2hhZG93U2l6ZX1mb3Io
YUI9MDthQjxPLnhheGVzLmxlbmd0aDsrK2FCKXtWKHAsYUIrMSkub3B0aW9ucz1PLnhheGVzW2FC
XX1mb3IoYUI9MDthQjxPLnlheGVzLmxlbmd0aDsrK2FCKXtWKGF3LGFCKzEpLm9wdGlvbnM9Ty55
YXhlc1thQl19Zm9yKHZhciBhRCBpbiBhayl7aWYoTy5ob29rc1thRF0mJk8uaG9va3NbYURdLmxl
bmd0aCl7YWtbYURdPWFrW2FEXS5jb25jYXQoTy5ob29rc1thRF0pfX1hbihhay5wcm9jZXNzT3B0
aW9ucyxbT10pfWZ1bmN0aW9uIGFqKGFCKXtRPVkoYUIpO2F4KCk7eigpfWZ1bmN0aW9uIFkoYUUp
e3ZhciBhQz1bXTtmb3IodmFyIGFCPTA7YUI8YUUubGVuZ3RoOysrYUIpe3ZhciBhRD1jLmV4dGVu
ZCh0cnVlLHt9LE8uc2VyaWVzKTtpZihhRVthQl0uZGF0YSE9bnVsbCl7YUQuZGF0YT1hRVthQl0u
ZGF0YTtkZWxldGUgYUVbYUJdLmRhdGE7Yy5leHRlbmQodHJ1ZSxhRCxhRVthQl0pO2FFW2FCXS5k
YXRhPWFELmRhdGF9ZWxzZXthRC5kYXRhPWFFW2FCXX1hQy5wdXNoKGFEKX1yZXR1cm4gYUN9ZnVu
Y3Rpb24gYUEoYUMsYUQpe3ZhciBhQj1hQ1thRCsiYXhpcyJdO2lmKHR5cGVvZiBhQj09Im9iamVj
dCIpe2FCPWFCLm59aWYodHlwZW9mIGFCIT0ibnVtYmVyIil7YUI9MX1yZXR1cm4gYUJ9ZnVuY3Rp
b24gbSgpe3JldHVybiBjLmdyZXAocC5jb25jYXQoYXcpLGZ1bmN0aW9uKGFCKXtyZXR1cm4gYUJ9
KX1mdW5jdGlvbiBDKGFFKXt2YXIgYUM9e30sYUIsYUQ7Zm9yKGFCPTA7YUI8cC5sZW5ndGg7Kyth
Qil7YUQ9cFthQl07aWYoYUQmJmFELnVzZWQpe2FDWyJ4IithRC5uXT1hRC5jMnAoYUUubGVmdCl9
fWZvcihhQj0wO2FCPGF3Lmxlbmd0aDsrK2FCKXthRD1hd1thQl07aWYoYUQmJmFELnVzZWQpe2FD
WyJ5IithRC5uXT1hRC5jMnAoYUUudG9wKX19aWYoYUMueDEhPT11bmRlZmluZWQpe2FDLng9YUMu
eDF9aWYoYUMueTEhPT11bmRlZmluZWQpe2FDLnk9YUMueTF9cmV0dXJuIGFDfWZ1bmN0aW9uIGFy
KGFGKXt2YXIgYUQ9e30sYUMsYUUsYUI7Zm9yKGFDPTA7YUM8cC5sZW5ndGg7KythQyl7YUU9cFth
Q107aWYoYUUmJmFFLnVzZWQpe2FCPSJ4IithRS5uO2lmKGFGW2FCXT09bnVsbCYmYUUubj09MSl7
YUI9IngifWlmKGFGW2FCXSE9bnVsbCl7YUQubGVmdD1hRS5wMmMoYUZbYUJdKTticmVha319fWZv
cihhQz0wO2FDPGF3Lmxlbmd0aDsrK2FDKXthRT1hd1thQ107aWYoYUUmJmFFLnVzZWQpe2FCPSJ5
IithRS5uO2lmKGFGW2FCXT09bnVsbCYmYUUubj09MSl7YUI9InkifWlmKGFGW2FCXSE9bnVsbCl7
YUQudG9wPWFFLnAyYyhhRlthQl0pO2JyZWFrfX19cmV0dXJuIGFEfWZ1bmN0aW9uIFYoYUMsYUIp
e2lmKCFhQ1thQi0xXSl7YUNbYUItMV09e246YUIsZGlyZWN0aW9uOmFDPT1wPyJ4IjoieSIsb3B0
aW9uczpjLmV4dGVuZCh0cnVlLHt9LGFDPT1wP08ueGF4aXM6Ty55YXhpcyl9fXJldHVybiBhQ1th
Qi0xXX1mdW5jdGlvbiBheCgpe3ZhciBhRzt2YXIgYU09US5sZW5ndGgsYUI9W10sYUU9W107Zm9y
KGFHPTA7YUc8US5sZW5ndGg7KythRyl7dmFyIGFKPVFbYUddLmNvbG9yO2lmKGFKIT1udWxsKXst
LWFNO2lmKHR5cGVvZiBhSj09Im51bWJlciIpe2FFLnB1c2goYUopfWVsc2V7YUIucHVzaChjLmNv
bG9yLnBhcnNlKFFbYUddLmNvbG9yKSl9fX1mb3IoYUc9MDthRzxhRS5sZW5ndGg7KythRyl7YU09
TWF0aC5tYXgoYU0sYUVbYUddKzEpfXZhciBhQz1bXSxhRj0wO2FHPTA7d2hpbGUoYUMubGVuZ3Ro
PGFNKXt2YXIgYUk7aWYoTy5jb2xvcnMubGVuZ3RoPT1hRyl7YUk9Yy5jb2xvci5tYWtlKDEwMCwx
MDAsMTAwKX1lbHNle2FJPWMuY29sb3IucGFyc2UoTy5jb2xvcnNbYUddKX12YXIgYUQ9YUYlMj09
MT8tMToxO2FJLnNjYWxlKCJyZ2IiLDErYUQqTWF0aC5jZWlsKGFGLzIpKjAuMik7YUMucHVzaChh
SSk7KythRztpZihhRz49Ty5jb2xvcnMubGVuZ3RoKXthRz0wOysrYUZ9fXZhciBhSD0wLGFOO2Zv
cihhRz0wO2FHPFEubGVuZ3RoOysrYUcpe2FOPVFbYUddO2lmKGFOLmNvbG9yPT1udWxsKXthTi5j
b2xvcj1hQ1thSF0udG9TdHJpbmcoKTsrK2FIfWVsc2V7aWYodHlwZW9mIGFOLmNvbG9yPT0ibnVt
YmVyIil7YU4uY29sb3I9YUNbYU4uY29sb3JdLnRvU3RyaW5nKCl9fWlmKGFOLmxpbmVzLnNob3c9
PW51bGwpe3ZhciBhTCxhSz10cnVlO2ZvcihhTCBpbiBhTil7aWYoYU5bYUxdJiZhTlthTF0uc2hv
dyl7YUs9ZmFsc2U7YnJlYWt9fWlmKGFLKXthTi5saW5lcy5zaG93PXRydWV9fWFOLnhheGlzPVYo
cCxhQShhTiwieCIpKTthTi55YXhpcz1WKGF3LGFBKGFOLCJ5IikpfX1mdW5jdGlvbiB6KCl7dmFy
IGFPPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxhST1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFks
YUI9TnVtYmVyLk1BWF9WQUxVRSxhVSxhUyxhUixhTixhRCxhSixhVCxhUCxhSCxhRyxhQyxhMCxh
WCxhTDtmdW5jdGlvbiBhRihhMyxhMixhMSl7aWYoYTI8YTMuZGF0YW1pbiYmYTIhPS1hQil7YTMu
ZGF0YW1pbj1hMn1pZihhMT5hMy5kYXRhbWF4JiZhMSE9YUIpe2EzLmRhdGFtYXg9YTF9fWMuZWFj
aChtKCksZnVuY3Rpb24oYTEsYTIpe2EyLmRhdGFtaW49YU87YTIuZGF0YW1heD1hSTthMi51c2Vk
PWZhbHNlfSk7Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVthVV07YUouZGF0YXBvaW50
cz17cG9pbnRzOltdfTthbihhay5wcm9jZXNzUmF3RGF0YSxbYUosYUouZGF0YSxhSi5kYXRhcG9p
bnRzXSl9Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVthVV07dmFyIGFaPWFKLmRhdGEs
YVc9YUouZGF0YXBvaW50cy5mb3JtYXQ7aWYoIWFXKXthVz1bXTthVy5wdXNoKHt4OnRydWUsbnVt
YmVyOnRydWUscmVxdWlyZWQ6dHJ1ZX0pO2FXLnB1c2goe3k6dHJ1ZSxudW1iZXI6dHJ1ZSxyZXF1
aXJlZDp0cnVlfSk7aWYoYUouYmFycy5zaG93fHwoYUoubGluZXMuc2hvdyYmYUoubGluZXMuZmls
bCkpe2FXLnB1c2goe3k6dHJ1ZSxudW1iZXI6dHJ1ZSxyZXF1aXJlZDpmYWxzZSxkZWZhdWx0VmFs
dWU6MH0pO2lmKGFKLmJhcnMuaG9yaXpvbnRhbCl7ZGVsZXRlIGFXW2FXLmxlbmd0aC0xXS55O2FX
W2FXLmxlbmd0aC0xXS54PXRydWV9fWFKLmRhdGFwb2ludHMuZm9ybWF0PWFXfWlmKGFKLmRhdGFw
b2ludHMucG9pbnRzaXplIT1udWxsKXtjb250aW51ZX1hSi5kYXRhcG9pbnRzLnBvaW50c2l6ZT1h
Vy5sZW5ndGg7YVA9YUouZGF0YXBvaW50cy5wb2ludHNpemU7YVQ9YUouZGF0YXBvaW50cy5wb2lu
dHM7aW5zZXJ0U3RlcHM9YUoubGluZXMuc2hvdyYmYUoubGluZXMuc3RlcHM7YUoueGF4aXMudXNl
ZD1hSi55YXhpcy51c2VkPXRydWU7Zm9yKGFTPWFSPTA7YVM8YVoubGVuZ3RoOysrYVMsYVIrPWFQ
KXthTD1hWlthU107dmFyIGFFPWFMPT1udWxsO2lmKCFhRSl7Zm9yKGFOPTA7YU48YVA7KythTil7
YTA9YUxbYU5dO2FYPWFXW2FOXTtpZihhWCl7aWYoYVgubnVtYmVyJiZhMCE9bnVsbCl7YTA9K2Ew
O2lmKGlzTmFOKGEwKSl7YTA9bnVsbH1lbHNle2lmKGEwPT1JbmZpbml0eSl7YTA9YUJ9ZWxzZXtp
ZihhMD09LUluZmluaXR5KXthMD0tYUJ9fX19aWYoYTA9PW51bGwpe2lmKGFYLnJlcXVpcmVkKXth
RT10cnVlfWlmKGFYLmRlZmF1bHRWYWx1ZSE9bnVsbCl7YTA9YVguZGVmYXVsdFZhbHVlfX19YVRb
YVIrYU5dPWEwfX1pZihhRSl7Zm9yKGFOPTA7YU48YVA7KythTil7YTA9YVRbYVIrYU5dO2lmKGEw
IT1udWxsKXthWD1hV1thTl07aWYoYVgueCl7YUYoYUoueGF4aXMsYTAsYTApfWlmKGFYLnkpe2FG
KGFKLnlheGlzLGEwLGEwKX19YVRbYVIrYU5dPW51bGx9fWVsc2V7aWYoaW5zZXJ0U3RlcHMmJmFS
PjAmJmFUW2FSLWFQXSE9bnVsbCYmYVRbYVItYVBdIT1hVFthUl0mJmFUW2FSLWFQKzFdIT1hVFth
UisxXSl7Zm9yKGFOPTA7YU48YVA7KythTil7YVRbYVIrYVArYU5dPWFUW2FSK2FOXX1hVFthUisx
XT1hVFthUi1hUCsxXTthUis9YVB9fX19Zm9yKGFVPTA7YVU8US5sZW5ndGg7KythVSl7YUo9UVth
VV07YW4oYWsucHJvY2Vzc0RhdGFwb2ludHMsW2FKLGFKLmRhdGFwb2ludHNdKX1mb3IoYVU9MDth
VTxRLmxlbmd0aDsrK2FVKXthSj1RW2FVXTthVD1hSi5kYXRhcG9pbnRzLnBvaW50cyxhUD1hSi5k
YXRhcG9pbnRzLnBvaW50c2l6ZTt2YXIgYUs9YU8sYVE9YU8sYU09YUksYVY9YUk7Zm9yKGFTPTA7
YVM8YVQubGVuZ3RoO2FTKz1hUCl7aWYoYVRbYVNdPT1udWxsKXtjb250aW51ZX1mb3IoYU49MDth
TjxhUDsrK2FOKXthMD1hVFthUythTl07YVg9YVdbYU5dO2lmKCFhWHx8YTA9PWFCfHxhMD09LWFC
KXtjb250aW51ZX1pZihhWC54KXtpZihhMDxhSyl7YUs9YTB9aWYoYTA+YU0pe2FNPWEwfX1pZihh
WC55KXtpZihhMDxhUSl7YVE9YTB9aWYoYTA+YVYpe2FWPWEwfX19fWlmKGFKLmJhcnMuc2hvdyl7
dmFyIGFZPWFKLmJhcnMuYWxpZ249PSJsZWZ0Ij8wOi1hSi5iYXJzLmJhcldpZHRoLzI7aWYoYUou
YmFycy5ob3Jpem9udGFsKXthUSs9YVk7YVYrPWFZK2FKLmJhcnMuYmFyV2lkdGh9ZWxzZXthSys9
YVk7YU0rPWFZK2FKLmJhcnMuYmFyV2lkdGh9fWFGKGFKLnhheGlzLGFLLGFNKTthRihhSi55YXhp
cyxhUSxhVil9Yy5lYWNoKG0oKSxmdW5jdGlvbihhMSxhMil7aWYoYTIuZGF0YW1pbj09YU8pe2Ey
LmRhdGFtaW49bnVsbH1pZihhMi5kYXRhbWF4PT1hSSl7YTIuZGF0YW1heD1udWxsfX0pfWZ1bmN0
aW9uIGooYUIsYUMpe3ZhciBhRD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthRC5j
bGFzc05hbWU9YUM7YUQud2lkdGg9RzthRC5oZWlnaHQ9STtpZighYUIpe2MoYUQpLmNzcyh7cG9z
aXRpb246ImFic29sdXRlIixsZWZ0OjAsdG9wOjB9KX1jKGFEKS5hcHBlbmRUbyhhdik7aWYoIWFE
LmdldENvbnRleHQpe2FEPXdpbmRvdy5HX3ZtbENhbnZhc01hbmFnZXIuaW5pdEVsZW1lbnQoYUQp
fWFELmdldENvbnRleHQoIjJkIikuc2F2ZSgpO3JldHVybiBhRH1mdW5jdGlvbiBCKCl7Rz1hdi53
aWR0aCgpO0k9YXYuaGVpZ2h0KCk7aWYoRzw9MHx8STw9MCl7dGhyb3ciSW52YWxpZCBkaW1lbnNp
b25zIGZvciBwbG90LCB3aWR0aCA9ICIrRysiLCBoZWlnaHQgPSAiK0l9fWZ1bmN0aW9uIGcoYUMp
e2lmKGFDLndpZHRoIT1HKXthQy53aWR0aD1HfWlmKGFDLmhlaWdodCE9SSl7YUMuaGVpZ2h0PUl9
dmFyIGFCPWFDLmdldENvbnRleHQoIjJkIik7YUIucmVzdG9yZSgpO2FCLnNhdmUoKX1mdW5jdGlv
biBYKCl7dmFyIGFDLGFCPWF2LmNoaWxkcmVuKCJjYW52YXMuYmFzZSIpLGFEPWF2LmNoaWxkcmVu
KCJjYW52YXMub3ZlcmxheSIpO2lmKGFCLmxlbmd0aD09MHx8YUQ9PTApe2F2Lmh0bWwoIiIpO2F2
LmNzcyh7cGFkZGluZzowfSk7aWYoYXYuY3NzKCJwb3NpdGlvbiIpPT0ic3RhdGljIil7YXYuY3Nz
KCJwb3NpdGlvbiIsInJlbGF0aXZlIil9QigpO2F6PWoodHJ1ZSwiYmFzZSIpO2FkPWooZmFsc2Us
Im92ZXJsYXkiKTthQz1mYWxzZX1lbHNle2F6PWFCLmdldCgwKTthZD1hRC5nZXQoMCk7YUM9dHJ1
ZX1IPWF6LmdldENvbnRleHQoIjJkIik7QT1hZC5nZXRDb250ZXh0KCIyZCIpO3k9YyhbYWQsYXpd
KTtpZihhQyl7YXYuZGF0YSgicGxvdCIpLnNodXRkb3duKCk7YXEucmVzaXplKCk7QS5jbGVhclJl
Y3QoMCwwLEcsSSk7eS51bmJpbmQoKTthdi5jaGlsZHJlbigpLm5vdChbYXosYWRdKS5yZW1vdmUo
KX1hdi5kYXRhKCJwbG90IixhcSl9ZnVuY3Rpb24gYWgoKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt5
Lm1vdXNlbW92ZShhYSk7eS5tb3VzZWxlYXZlKGwpfWlmKE8uZ3JpZC5jbGlja2FibGUpe3kuY2xp
Y2soUil9YW4oYWsuYmluZEV2ZW50cyxbeV0pfWZ1bmN0aW9uIGFnKCl7aWYoTSl7Y2xlYXJUaW1l
b3V0KE0pfXkudW5iaW5kKCJtb3VzZW1vdmUiLGFhKTt5LnVuYmluZCgibW91c2VsZWF2ZSIsbCk7
eS51bmJpbmQoImNsaWNrIixSKTthbihhay5zaHV0ZG93bixbeV0pfWZ1bmN0aW9uIHIoYUcpe2Z1
bmN0aW9uIGFDKGFIKXtyZXR1cm4gYUh9dmFyIGFGLGFCLGFEPWFHLm9wdGlvbnMudHJhbnNmb3Jt
fHxhQyxhRT1hRy5vcHRpb25zLmludmVyc2VUcmFuc2Zvcm07aWYoYUcuZGlyZWN0aW9uPT0ieCIp
e2FGPWFHLnNjYWxlPWgvTWF0aC5hYnMoYUQoYUcubWF4KS1hRChhRy5taW4pKTthQj1NYXRoLm1p
bihhRChhRy5tYXgpLGFEKGFHLm1pbikpfWVsc2V7YUY9YUcuc2NhbGU9dy9NYXRoLmFicyhhRChh
Ry5tYXgpLWFEKGFHLm1pbikpO2FGPS1hRjthQj1NYXRoLm1heChhRChhRy5tYXgpLGFEKGFHLm1p
bikpfWlmKGFEPT1hQyl7YUcucDJjPWZ1bmN0aW9uKGFIKXtyZXR1cm4oYUgtYUIpKmFGfX1lbHNl
e2FHLnAyYz1mdW5jdGlvbihhSCl7cmV0dXJuKGFEKGFIKS1hQikqYUZ9fWlmKCFhRSl7YUcuYzJw
PWZ1bmN0aW9uKGFIKXtyZXR1cm4gYUIrYUgvYUZ9fWVsc2V7YUcuYzJwPWZ1bmN0aW9uKGFIKXty
ZXR1cm4gYUUoYUIrYUgvYUYpfX19ZnVuY3Rpb24gTChhRCl7dmFyIGFCPWFELm9wdGlvbnMsYUYs
YUo9YUQudGlja3N8fFtdLGFJPVtdLGFFLGFLPWFCLmxhYmVsV2lkdGgsYUc9YUIubGFiZWxIZWln
aHQsYUM7ZnVuY3Rpb24gYUgoYU0sYUwpe3JldHVybiBjKCc8ZGl2IHN0eWxlPSJwb3NpdGlvbjph
YnNvbHV0ZTt0b3A6LTEwMDAwcHg7JythTCsnZm9udC1zaXplOnNtYWxsZXIiPjxkaXYgY2xhc3M9
IicrYUQuZGlyZWN0aW9uKyJBeGlzICIrYUQuZGlyZWN0aW9uK2FELm4rJ0F4aXMiPicrYU0uam9p
bigiIikrIjwvZGl2PjwvZGl2PiIpLmFwcGVuZFRvKGF2KX1pZihhRC5kaXJlY3Rpb249PSJ4Iil7
aWYoYUs9PW51bGwpe2FLPU1hdGguZmxvb3IoRy8oYUoubGVuZ3RoPjA/YUoubGVuZ3RoOjEpKX1p
ZihhRz09bnVsbCl7YUk9W107Zm9yKGFGPTA7YUY8YUoubGVuZ3RoOysrYUYpe2FFPWFKW2FGXS5s
YWJlbDtpZihhRSl7YUkucHVzaCgnPGRpdiBjbGFzcz0idGlja0xhYmVsIiBzdHlsZT0iZmxvYXQ6
bGVmdDt3aWR0aDonK2FLKydweCI+JythRSsiPC9kaXY+Iil9fWlmKGFJLmxlbmd0aD4wKXthSS5w
dXNoKCc8ZGl2IHN0eWxlPSJjbGVhcjpsZWZ0Ij48L2Rpdj4nKTthQz1hSChhSSwid2lkdGg6MTAw
MDBweDsiKTthRz1hQy5oZWlnaHQoKTthQy5yZW1vdmUoKX19fWVsc2V7aWYoYUs9PW51bGx8fGFH
PT1udWxsKXtmb3IoYUY9MDthRjxhSi5sZW5ndGg7KythRil7YUU9YUpbYUZdLmxhYmVsO2lmKGFF
KXthSS5wdXNoKCc8ZGl2IGNsYXNzPSJ0aWNrTGFiZWwiPicrYUUrIjwvZGl2PiIpfX1pZihhSS5s
ZW5ndGg+MCl7YUM9YUgoYUksIiIpO2lmKGFLPT1udWxsKXthSz1hQy5jaGlsZHJlbigpLndpZHRo
KCl9aWYoYUc9PW51bGwpe2FHPWFDLmZpbmQoImRpdi50aWNrTGFiZWwiKS5oZWlnaHQoKX1hQy5y
ZW1vdmUoKX19fWlmKGFLPT1udWxsKXthSz0wfWlmKGFHPT1udWxsKXthRz0wfWFELmxhYmVsV2lk
dGg9YUs7YUQubGFiZWxIZWlnaHQ9YUd9ZnVuY3Rpb24gYXUoYUQpe3ZhciBhQz1hRC5sYWJlbFdp
ZHRoLGFMPWFELmxhYmVsSGVpZ2h0LGFIPWFELm9wdGlvbnMucG9zaXRpb24sYUY9YUQub3B0aW9u
cy50aWNrTGVuZ3RoLGFHPU8uZ3JpZC5heGlzTWFyZ2luLGFKPU8uZ3JpZC5sYWJlbE1hcmdpbixh
Sz1hRC5kaXJlY3Rpb249PSJ4Ij9wOmF3LGFFO3ZhciBhQj1jLmdyZXAoYUssZnVuY3Rpb24oYU4p
e3JldHVybiBhTiYmYU4ub3B0aW9ucy5wb3NpdGlvbj09YUgmJmFOLnJlc2VydmVTcGFjZX0pO2lm
KGMuaW5BcnJheShhRCxhQik9PWFCLmxlbmd0aC0xKXthRz0wfWlmKGFGPT1udWxsKXthRj0iZnVs
bCJ9dmFyIGFJPWMuZ3JlcChhSyxmdW5jdGlvbihhTil7cmV0dXJuIGFOJiZhTi5yZXNlcnZlU3Bh
Y2V9KTt2YXIgYU09Yy5pbkFycmF5KGFELGFJKT09MDtpZighYU0mJmFGPT0iZnVsbCIpe2FGPTV9
aWYoIWlzTmFOKCthRikpe2FKKz0rYUZ9aWYoYUQuZGlyZWN0aW9uPT0ieCIpe2FMKz1hSjtpZihh
SD09ImJvdHRvbSIpe3EuYm90dG9tKz1hTCthRzthRC5ib3g9e3RvcDpJLXEuYm90dG9tLGhlaWdo
dDphTH19ZWxzZXthRC5ib3g9e3RvcDpxLnRvcCthRyxoZWlnaHQ6YUx9O3EudG9wKz1hTCthR319
ZWxzZXthQys9YUo7aWYoYUg9PSJsZWZ0Iil7YUQuYm94PXtsZWZ0OnEubGVmdCthRyx3aWR0aDph
Q307cS5sZWZ0Kz1hQythR31lbHNle3EucmlnaHQrPWFDK2FHO2FELmJveD17bGVmdDpHLXEucmln
aHQsd2lkdGg6YUN9fX1hRC5wb3NpdGlvbj1hSDthRC50aWNrTGVuZ3RoPWFGO2FELmJveC5wYWRk
aW5nPWFKO2FELmlubmVybW9zdD1hTX1mdW5jdGlvbiBVKGFCKXtpZihhQi5kaXJlY3Rpb249PSJ4
Iil7YUIuYm94LmxlZnQ9cS5sZWZ0O2FCLmJveC53aWR0aD1ofWVsc2V7YUIuYm94LnRvcD1xLnRv
cDthQi5ib3guaGVpZ2h0PXd9fWZ1bmN0aW9uIHQoKXt2YXIgYUMsYUU9bSgpO2MuZWFjaChhRSxm
dW5jdGlvbihhRixhRyl7YUcuc2hvdz1hRy5vcHRpb25zLnNob3c7aWYoYUcuc2hvdz09bnVsbCl7
YUcuc2hvdz1hRy51c2VkfWFHLnJlc2VydmVTcGFjZT1hRy5zaG93fHxhRy5vcHRpb25zLnJlc2Vy
dmVTcGFjZTtuKGFHKX0pO2FsbG9jYXRlZEF4ZXM9Yy5ncmVwKGFFLGZ1bmN0aW9uKGFGKXtyZXR1
cm4gYUYucmVzZXJ2ZVNwYWNlfSk7cS5sZWZ0PXEucmlnaHQ9cS50b3A9cS5ib3R0b209MDtpZihP
LmdyaWQuc2hvdyl7Yy5lYWNoKGFsbG9jYXRlZEF4ZXMsZnVuY3Rpb24oYUYsYUcpe1MoYUcpO1Ao
YUcpO2FwKGFHLGFHLnRpY2tzKTtMKGFHKX0pO2ZvcihhQz1hbGxvY2F0ZWRBeGVzLmxlbmd0aC0x
O2FDPj0wOy0tYUMpe2F1KGFsbG9jYXRlZEF4ZXNbYUNdKX12YXIgYUQ9Ty5ncmlkLm1pbkJvcmRl
ck1hcmdpbjtpZihhRD09bnVsbCl7YUQ9MDtmb3IoYUM9MDthQzxRLmxlbmd0aDsrK2FDKXthRD1N
YXRoLm1heChhRCxRW2FDXS5wb2ludHMucmFkaXVzK1FbYUNdLnBvaW50cy5saW5lV2lkdGgvMil9
fWZvcih2YXIgYUIgaW4gcSl7cVthQl0rPU8uZ3JpZC5ib3JkZXJXaWR0aDtxW2FCXT1NYXRoLm1h
eChhRCxxW2FCXSl9fWg9Ry1xLmxlZnQtcS5yaWdodDt3PUktcS5ib3R0b20tcS50b3A7Yy5lYWNo
KGFFLGZ1bmN0aW9uKGFGLGFHKXtyKGFHKX0pO2lmKE8uZ3JpZC5zaG93KXtjLmVhY2goYWxsb2Nh
dGVkQXhlcyxmdW5jdGlvbihhRixhRyl7VShhRyl9KTtrKCl9bygpfWZ1bmN0aW9uIG4oYUUpe3Zh
ciBhRj1hRS5vcHRpb25zLGFEPSsoYUYubWluIT1udWxsP2FGLm1pbjphRS5kYXRhbWluKSxhQj0r
KGFGLm1heCE9bnVsbD9hRi5tYXg6YUUuZGF0YW1heCksYUg9YUItYUQ7aWYoYUg9PTApe3ZhciBh
Qz1hQj09MD8xOjAuMDE7aWYoYUYubWluPT1udWxsKXthRC09YUN9aWYoYUYubWF4PT1udWxsfHxh
Ri5taW4hPW51bGwpe2FCKz1hQ319ZWxzZXt2YXIgYUc9YUYuYXV0b3NjYWxlTWFyZ2luO2lmKGFH
IT1udWxsKXtpZihhRi5taW49PW51bGwpe2FELT1hSCphRztpZihhRDwwJiZhRS5kYXRhbWluIT1u
dWxsJiZhRS5kYXRhbWluPj0wKXthRD0wfX1pZihhRi5tYXg9PW51bGwpe2FCKz1hSCphRztpZihh
Qj4wJiZhRS5kYXRhbWF4IT1udWxsJiZhRS5kYXRhbWF4PD0wKXthQj0wfX19fWFFLm1pbj1hRDth
RS5tYXg9YUJ9ZnVuY3Rpb24gUyhhRyl7dmFyIGFNPWFHLm9wdGlvbnM7dmFyIGFIO2lmKHR5cGVv
ZiBhTS50aWNrcz09Im51bWJlciImJmFNLnRpY2tzPjApe2FIPWFNLnRpY2tzfWVsc2V7YUg9MC4z
Kk1hdGguc3FydChhRy5kaXJlY3Rpb249PSJ4Ij9HOkkpfXZhciBhVD0oYUcubWF4LWFHLm1pbikv
YUgsYU8sYUIsYU4sYVIsYVMsYVEsYUk7aWYoYU0ubW9kZT09InRpbWUiKXt2YXIgYUo9e3NlY29u
ZDoxMDAwLG1pbnV0ZTo2MCoxMDAwLGhvdXI6NjAqNjAqMTAwMCxkYXk6MjQqNjAqNjAqMTAwMCxt
b250aDozMCoyNCo2MCo2MCoxMDAwLHllYXI6MzY1LjI0MjUqMjQqNjAqNjAqMTAwMH07dmFyIGFL
PVtbMSwic2Vjb25kIl0sWzIsInNlY29uZCJdLFs1LCJzZWNvbmQiXSxbMTAsInNlY29uZCJdLFsz
MCwic2Vjb25kIl0sWzEsIm1pbnV0ZSJdLFsyLCJtaW51dGUiXSxbNSwibWludXRlIl0sWzEwLCJt
aW51dGUiXSxbMzAsIm1pbnV0ZSJdLFsxLCJob3VyIl0sWzIsImhvdXIiXSxbNCwiaG91ciJdLFs4
LCJob3VyIl0sWzEyLCJob3VyIl0sWzEsImRheSJdLFsyLCJkYXkiXSxbMywiZGF5Il0sWzAuMjUs
Im1vbnRoIl0sWzAuNSwibW9udGgiXSxbMSwibW9udGgiXSxbMiwibW9udGgiXSxbMywibW9udGgi
XSxbNiwibW9udGgiXSxbMSwieWVhciJdXTt2YXIgYUM9MDtpZihhTS5taW5UaWNrU2l6ZSE9bnVs
bCl7aWYodHlwZW9mIGFNLnRpY2tTaXplPT0ibnVtYmVyIil7YUM9YU0udGlja1NpemV9ZWxzZXth
Qz1hTS5taW5UaWNrU2l6ZVswXSphSlthTS5taW5UaWNrU2l6ZVsxXV19fWZvcih2YXIgYVM9MDth
UzxhSy5sZW5ndGgtMTsrK2FTKXtpZihhVDwoYUtbYVNdWzBdKmFKW2FLW2FTXVsxXV0rYUtbYVMr
MV1bMF0qYUpbYUtbYVMrMV1bMV1dKS8yJiZhS1thU11bMF0qYUpbYUtbYVNdWzFdXT49YUMpe2Jy
ZWFrfX1hTz1hS1thU11bMF07YU49YUtbYVNdWzFdO2lmKGFOPT0ieWVhciIpe2FRPU1hdGgucG93
KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coYVQvYUoueWVhcikvTWF0aC5MTjEwKSk7YUk9KGFUL2FK
LnllYXIpL2FRO2lmKGFJPDEuNSl7YU89MX1lbHNle2lmKGFJPDMpe2FPPTJ9ZWxzZXtpZihhSTw3
LjUpe2FPPTV9ZWxzZXthTz0xMH19fWFPKj1hUX1hRy50aWNrU2l6ZT1hTS50aWNrU2l6ZXx8W2FP
LGFOXTthQj1mdW5jdGlvbihhWCl7dmFyIGEyPVtdLGEwPWFYLnRpY2tTaXplWzBdLGEzPWFYLnRp
Y2tTaXplWzFdLGExPW5ldyBEYXRlKGFYLm1pbik7dmFyIGFXPWEwKmFKW2EzXTtpZihhMz09InNl
Y29uZCIpe2ExLnNldFVUQ1NlY29uZHMoYShhMS5nZXRVVENTZWNvbmRzKCksYTApKX1pZihhMz09
Im1pbnV0ZSIpe2ExLnNldFVUQ01pbnV0ZXMoYShhMS5nZXRVVENNaW51dGVzKCksYTApKX1pZihh
Mz09ImhvdXIiKXthMS5zZXRVVENIb3VycyhhKGExLmdldFVUQ0hvdXJzKCksYTApKX1pZihhMz09
Im1vbnRoIil7YTEuc2V0VVRDTW9udGgoYShhMS5nZXRVVENNb250aCgpLGEwKSl9aWYoYTM9PSJ5
ZWFyIil7YTEuc2V0VVRDRnVsbFllYXIoYShhMS5nZXRVVENGdWxsWWVhcigpLGEwKSl9YTEuc2V0
VVRDTWlsbGlzZWNvbmRzKDApO2lmKGFXPj1hSi5taW51dGUpe2ExLnNldFVUQ1NlY29uZHMoMCl9
aWYoYVc+PWFKLmhvdXIpe2ExLnNldFVUQ01pbnV0ZXMoMCl9aWYoYVc+PWFKLmRheSl7YTEuc2V0
VVRDSG91cnMoMCl9aWYoYVc+PWFKLmRheSo0KXthMS5zZXRVVENEYXRlKDEpfWlmKGFXPj1hSi55
ZWFyKXthMS5zZXRVVENNb250aCgwKX12YXIgYTU9MCxhND1OdW1iZXIuTmFOLGFZO2Rve2FZPWE0
O2E0PWExLmdldFRpbWUoKTthMi5wdXNoKGE0KTtpZihhMz09Im1vbnRoIil7aWYoYTA8MSl7YTEu
c2V0VVRDRGF0ZSgxKTt2YXIgYVY9YTEuZ2V0VGltZSgpO2ExLnNldFVUQ01vbnRoKGExLmdldFVU
Q01vbnRoKCkrMSk7dmFyIGFaPWExLmdldFRpbWUoKTthMS5zZXRUaW1lKGE0K2E1KmFKLmhvdXIr
KGFaLWFWKSphMCk7YTU9YTEuZ2V0VVRDSG91cnMoKTthMS5zZXRVVENIb3VycygwKX1lbHNle2Ex
LnNldFVUQ01vbnRoKGExLmdldFVUQ01vbnRoKCkrYTApfX1lbHNle2lmKGEzPT0ieWVhciIpe2Ex
LnNldFVUQ0Z1bGxZZWFyKGExLmdldFVUQ0Z1bGxZZWFyKCkrYTApfWVsc2V7YTEuc2V0VGltZShh
NCthVyl9fX13aGlsZShhNDxhWC5tYXgmJmE0IT1hWSk7cmV0dXJuIGEyfTthUj1mdW5jdGlvbihh
VixhWSl7dmFyIGEwPW5ldyBEYXRlKGFWKTtpZihhTS50aW1lZm9ybWF0IT1udWxsKXtyZXR1cm4g
Yy5wbG90LmZvcm1hdERhdGUoYTAsYU0udGltZWZvcm1hdCxhTS5tb250aE5hbWVzKX12YXIgYVc9
YVkudGlja1NpemVbMF0qYUpbYVkudGlja1NpemVbMV1dO3ZhciBhWD1hWS5tYXgtYVkubWluO3Zh
ciBhWj0oYU0udHdlbHZlSG91ckNsb2NrKT8iICVwIjoiIjtpZihhVzxhSi5taW51dGUpe2ZtdD0i
JWg6JU06JVMiK2FafWVsc2V7aWYoYVc8YUouZGF5KXtpZihhWDwyKmFKLmRheSl7Zm10PSIlaDol
TSIrYVp9ZWxzZXtmbXQ9IiViICVkICVoOiVNIithWn19ZWxzZXtpZihhVzxhSi5tb250aCl7Zm10
PSIlYiAlZCJ9ZWxzZXtpZihhVzxhSi55ZWFyKXtpZihhWDxhSi55ZWFyKXtmbXQ9IiViIn1lbHNl
e2ZtdD0iJWIgJXkifX1lbHNle2ZtdD0iJXkifX19fXJldHVybiBjLnBsb3QuZm9ybWF0RGF0ZShh
MCxmbXQsYU0ubW9udGhOYW1lcyl9fWVsc2V7dmFyIGFVPWFNLnRpY2tEZWNpbWFsczt2YXIgYVA9
LU1hdGguZmxvb3IoTWF0aC5sb2coYVQpL01hdGguTE4xMCk7aWYoYVUhPW51bGwmJmFQPmFVKXth
UD1hVX1hUT1NYXRoLnBvdygxMCwtYVApO2FJPWFUL2FRO2lmKGFJPDEuNSl7YU89MX1lbHNle2lm
KGFJPDMpe2FPPTI7aWYoYUk+Mi4yNSYmKGFVPT1udWxsfHxhUCsxPD1hVSkpe2FPPTIuNTsrK2FQ
fX1lbHNle2lmKGFJPDcuNSl7YU89NX1lbHNle2FPPTEwfX19YU8qPWFRO2lmKGFNLm1pblRpY2tT
aXplIT1udWxsJiZhTzxhTS5taW5UaWNrU2l6ZSl7YU89YU0ubWluVGlja1NpemV9YUcudGlja0Rl
Y2ltYWxzPU1hdGgubWF4KDAsYVUhPW51bGw/YVU6YVApO2FHLnRpY2tTaXplPWFNLnRpY2tTaXpl
fHxhTzthQj1mdW5jdGlvbihhWCl7dmFyIGFaPVtdO3ZhciBhMD1hKGFYLm1pbixhWC50aWNrU2l6
ZSksYVc9MCxhVj1OdW1iZXIuTmFOLGFZO2Rve2FZPWFWO2FWPWEwK2FXKmFYLnRpY2tTaXplO2Fa
LnB1c2goYVYpOysrYVd9d2hpbGUoYVY8YVgubWF4JiZhViE9YVkpO3JldHVybiBhWn07YVI9ZnVu
Y3Rpb24oYVYsYVcpe3JldHVybiBhVi50b0ZpeGVkKGFXLnRpY2tEZWNpbWFscyl9fWlmKGFNLmFs
aWduVGlja3NXaXRoQXhpcyE9bnVsbCl7dmFyIGFGPShhRy5kaXJlY3Rpb249PSJ4Ij9wOmF3KVth
TS5hbGlnblRpY2tzV2l0aEF4aXMtMV07aWYoYUYmJmFGLnVzZWQmJmFGIT1hRyl7dmFyIGFMPWFC
KGFHKTtpZihhTC5sZW5ndGg+MCl7aWYoYU0ubWluPT1udWxsKXthRy5taW49TWF0aC5taW4oYUcu
bWluLGFMWzBdKX1pZihhTS5tYXg9PW51bGwmJmFMLmxlbmd0aD4xKXthRy5tYXg9TWF0aC5tYXgo
YUcubWF4LGFMW2FMLmxlbmd0aC0xXSl9fWFCPWZ1bmN0aW9uKGFYKXt2YXIgYVk9W10sYVYsYVc7
Zm9yKGFXPTA7YVc8YUYudGlja3MubGVuZ3RoOysrYVcpe2FWPShhRi50aWNrc1thV10udi1hRi5t
aW4pLyhhRi5tYXgtYUYubWluKTthVj1hWC5taW4rYVYqKGFYLm1heC1hWC5taW4pO2FZLnB1c2go
YVYpfXJldHVybiBhWX07aWYoYUcubW9kZSE9InRpbWUiJiZhTS50aWNrRGVjaW1hbHM9PW51bGwp
e3ZhciBhRT1NYXRoLm1heCgwLC1NYXRoLmZsb29yKE1hdGgubG9nKGFUKS9NYXRoLkxOMTApKzEp
LGFEPWFCKGFHKTtpZighKGFELmxlbmd0aD4xJiYvXC4uKjAkLy50ZXN0KChhRFsxXS1hRFswXSku
dG9GaXhlZChhRSkpKSl7YUcudGlja0RlY2ltYWxzPWFFfX19fWFHLnRpY2tHZW5lcmF0b3I9YUI7
aWYoYy5pc0Z1bmN0aW9uKGFNLnRpY2tGb3JtYXR0ZXIpKXthRy50aWNrRm9ybWF0dGVyPWZ1bmN0
aW9uKGFWLGFXKXtyZXR1cm4iIithTS50aWNrRm9ybWF0dGVyKGFWLGFXKX19ZWxzZXthRy50aWNr
Rm9ybWF0dGVyPWFSfX1mdW5jdGlvbiBQKGFGKXt2YXIgYUg9YUYub3B0aW9ucy50aWNrcyxhRz1b
XTtpZihhSD09bnVsbHx8KHR5cGVvZiBhSD09Im51bWJlciImJmFIPjApKXthRz1hRi50aWNrR2Vu
ZXJhdG9yKGFGKX1lbHNle2lmKGFIKXtpZihjLmlzRnVuY3Rpb24oYUgpKXthRz1hSCh7bWluOmFG
Lm1pbixtYXg6YUYubWF4fSl9ZWxzZXthRz1hSH19fXZhciBhRSxhQjthRi50aWNrcz1bXTtmb3Io
YUU9MDthRTxhRy5sZW5ndGg7KythRSl7dmFyIGFDPW51bGw7dmFyIGFEPWFHW2FFXTtpZih0eXBl
b2YgYUQ9PSJvYmplY3QiKXthQj0rYURbMF07aWYoYUQubGVuZ3RoPjEpe2FDPWFEWzFdfX1lbHNl
e2FCPSthRH1pZihhQz09bnVsbCl7YUM9YUYudGlja0Zvcm1hdHRlcihhQixhRil9aWYoIWlzTmFO
KGFCKSl7YUYudGlja3MucHVzaCh7djphQixsYWJlbDphQ30pfX19ZnVuY3Rpb24gYXAoYUIsYUMp
e2lmKGFCLm9wdGlvbnMuYXV0b3NjYWxlTWFyZ2luJiZhQy5sZW5ndGg+MCl7aWYoYUIub3B0aW9u
cy5taW49PW51bGwpe2FCLm1pbj1NYXRoLm1pbihhQi5taW4sYUNbMF0udil9aWYoYUIub3B0aW9u
cy5tYXg9PW51bGwmJmFDLmxlbmd0aD4xKXthQi5tYXg9TWF0aC5tYXgoYUIubWF4LGFDW2FDLmxl
bmd0aC0xXS52KX19fWZ1bmN0aW9uIFcoKXtILmNsZWFyUmVjdCgwLDAsRyxJKTt2YXIgYUM9Ty5n
cmlkO2lmKGFDLnNob3cmJmFDLmJhY2tncm91bmRDb2xvcil7TigpfWlmKGFDLnNob3cmJiFhQy5h
Ym92ZURhdGEpe2FjKCl9Zm9yKHZhciBhQj0wO2FCPFEubGVuZ3RoOysrYUIpe2FuKGFrLmRyYXdT
ZXJpZXMsW0gsUVthQl1dKTtkKFFbYUJdKX1hbihhay5kcmF3LFtIXSk7aWYoYUMuc2hvdyYmYUMu
YWJvdmVEYXRhKXthYygpfX1mdW5jdGlvbiBEKGFCLGFJKXt2YXIgYUUsYUgsYUcsYUQsYUY9bSgp
O2ZvcihpPTA7aTxhRi5sZW5ndGg7KytpKXthRT1hRltpXTtpZihhRS5kaXJlY3Rpb249PWFJKXth
RD1hSSthRS5uKyJheGlzIjtpZighYUJbYURdJiZhRS5uPT0xKXthRD1hSSsiYXhpcyJ9aWYoYUJb
YURdKXthSD1hQlthRF0uZnJvbTthRz1hQlthRF0udG87YnJlYWt9fX1pZighYUJbYURdKXthRT1h
ST09IngiP3BbMF06YXdbMF07YUg9YUJbYUkrIjEiXTthRz1hQlthSSsiMiJdfWlmKGFIIT1udWxs
JiZhRyE9bnVsbCYmYUg+YUcpe3ZhciBhQz1hSDthSD1hRzthRz1hQ31yZXR1cm57ZnJvbTphSCx0
bzphRyxheGlzOmFFfX1mdW5jdGlvbiBOKCl7SC5zYXZlKCk7SC50cmFuc2xhdGUocS5sZWZ0LHEu
dG9wKTtILmZpbGxTdHlsZT1hbShPLmdyaWQuYmFja2dyb3VuZENvbG9yLHcsMCwicmdiYSgyNTUs
IDI1NSwgMjU1LCAwKSIpO0guZmlsbFJlY3QoMCwwLGgsdyk7SC5yZXN0b3JlKCl9ZnVuY3Rpb24g
YWMoKXt2YXIgYUY7SC5zYXZlKCk7SC50cmFuc2xhdGUocS5sZWZ0LHEudG9wKTt2YXIgYUg9Ty5n
cmlkLm1hcmtpbmdzO2lmKGFIKXtpZihjLmlzRnVuY3Rpb24oYUgpKXt2YXIgYUs9YXEuZ2V0QXhl
cygpO2FLLnhtaW49YUsueGF4aXMubWluO2FLLnhtYXg9YUsueGF4aXMubWF4O2FLLnltaW49YUsu
eWF4aXMubWluO2FLLnltYXg9YUsueWF4aXMubWF4O2FIPWFIKGFLKX1mb3IoYUY9MDthRjxhSC5s
ZW5ndGg7KythRil7dmFyIGFEPWFIW2FGXSxhQz1EKGFELCJ4IiksYUk9RChhRCwieSIpO2lmKGFD
LmZyb209PW51bGwpe2FDLmZyb209YUMuYXhpcy5taW59aWYoYUMudG89PW51bGwpe2FDLnRvPWFD
LmF4aXMubWF4fWlmKGFJLmZyb209PW51bGwpe2FJLmZyb209YUkuYXhpcy5taW59aWYoYUkudG89
PW51bGwpe2FJLnRvPWFJLmF4aXMubWF4fWlmKGFDLnRvPGFDLmF4aXMubWlufHxhQy5mcm9tPmFD
LmF4aXMubWF4fHxhSS50bzxhSS5heGlzLm1pbnx8YUkuZnJvbT5hSS5heGlzLm1heCl7Y29udGlu
dWV9YUMuZnJvbT1NYXRoLm1heChhQy5mcm9tLGFDLmF4aXMubWluKTthQy50bz1NYXRoLm1pbihh
Qy50byxhQy5heGlzLm1heCk7YUkuZnJvbT1NYXRoLm1heChhSS5mcm9tLGFJLmF4aXMubWluKTth
SS50bz1NYXRoLm1pbihhSS50byxhSS5heGlzLm1heCk7aWYoYUMuZnJvbT09YUMudG8mJmFJLmZy
b209PWFJLnRvKXtjb250aW51ZX1hQy5mcm9tPWFDLmF4aXMucDJjKGFDLmZyb20pO2FDLnRvPWFD
LmF4aXMucDJjKGFDLnRvKTthSS5mcm9tPWFJLmF4aXMucDJjKGFJLmZyb20pO2FJLnRvPWFJLmF4
aXMucDJjKGFJLnRvKTtpZihhQy5mcm9tPT1hQy50b3x8YUkuZnJvbT09YUkudG8pe0guYmVnaW5Q
YXRoKCk7SC5zdHJva2VTdHlsZT1hRC5jb2xvcnx8Ty5ncmlkLm1hcmtpbmdzQ29sb3I7SC5saW5l
V2lkdGg9YUQubGluZVdpZHRofHxPLmdyaWQubWFya2luZ3NMaW5lV2lkdGg7SC5tb3ZlVG8oYUMu
ZnJvbSxhSS5mcm9tKTtILmxpbmVUbyhhQy50byxhSS50byk7SC5zdHJva2UoKX1lbHNle0guZmls
bFN0eWxlPWFELmNvbG9yfHxPLmdyaWQubWFya2luZ3NDb2xvcjtILmZpbGxSZWN0KGFDLmZyb20s
YUkudG8sYUMudG8tYUMuZnJvbSxhSS5mcm9tLWFJLnRvKX19fXZhciBhSz1tKCksYU09Ty5ncmlk
LmJvcmRlcldpZHRoO2Zvcih2YXIgYUU9MDthRTxhSy5sZW5ndGg7KythRSl7dmFyIGFCPWFLW2FF
XSxhRz1hQi5ib3gsYVE9YUIudGlja0xlbmd0aCxhTixhTCxhUCxhSjtpZighYUIuc2hvd3x8YUIu
dGlja3MubGVuZ3RoPT0wKXtjb250aW51ZX1ILnN0cm9rZVN0eWxlPWFCLm9wdGlvbnMudGlja0Nv
bG9yfHxjLmNvbG9yLnBhcnNlKGFCLm9wdGlvbnMuY29sb3IpLnNjYWxlKCJhIiwwLjIyKS50b1N0
cmluZygpO0gubGluZVdpZHRoPTE7aWYoYUIuZGlyZWN0aW9uPT0ieCIpe2FOPTA7aWYoYVE9PSJm
dWxsIil7YUw9KGFCLnBvc2l0aW9uPT0idG9wIj8wOncpfWVsc2V7YUw9YUcudG9wLXEudG9wKyhh
Qi5wb3NpdGlvbj09InRvcCI/YUcuaGVpZ2h0OjApfX1lbHNle2FMPTA7aWYoYVE9PSJmdWxsIil7
YU49KGFCLnBvc2l0aW9uPT0ibGVmdCI/MDpoKX1lbHNle2FOPWFHLmxlZnQtcS5sZWZ0KyhhQi5w
b3NpdGlvbj09ImxlZnQiP2FHLndpZHRoOjApfX1pZighYUIuaW5uZXJtb3N0KXtILmJlZ2luUGF0
aCgpO2FQPWFKPTA7aWYoYUIuZGlyZWN0aW9uPT0ieCIpe2FQPWh9ZWxzZXthSj13fWlmKEgubGlu
ZVdpZHRoPT0xKXthTj1NYXRoLmZsb29yKGFOKSswLjU7YUw9TWF0aC5mbG9vcihhTCkrMC41fUgu
bW92ZVRvKGFOLGFMKTtILmxpbmVUbyhhTithUCxhTCthSik7SC5zdHJva2UoKX1ILmJlZ2luUGF0
aCgpO2ZvcihhRj0wO2FGPGFCLnRpY2tzLmxlbmd0aDsrK2FGKXt2YXIgYU89YUIudGlja3NbYUZd
LnY7YVA9YUo9MDtpZihhTzxhQi5taW58fGFPPmFCLm1heHx8KGFRPT0iZnVsbCImJmFNPjAmJihh
Tz09YUIubWlufHxhTz09YUIubWF4KSkpe2NvbnRpbnVlfWlmKGFCLmRpcmVjdGlvbj09IngiKXth
Tj1hQi5wMmMoYU8pO2FKPWFRPT0iZnVsbCI/LXc6YVE7aWYoYUIucG9zaXRpb249PSJ0b3AiKXth
Sj0tYUp9fWVsc2V7YUw9YUIucDJjKGFPKTthUD1hUT09ImZ1bGwiPy1oOmFRO2lmKGFCLnBvc2l0
aW9uPT0ibGVmdCIpe2FQPS1hUH19aWYoSC5saW5lV2lkdGg9PTEpe2lmKGFCLmRpcmVjdGlvbj09
IngiKXthTj1NYXRoLmZsb29yKGFOKSswLjV9ZWxzZXthTD1NYXRoLmZsb29yKGFMKSswLjV9fUgu
bW92ZVRvKGFOLGFMKTtILmxpbmVUbyhhTithUCxhTCthSil9SC5zdHJva2UoKX1pZihhTSl7SC5s
aW5lV2lkdGg9YU07SC5zdHJva2VTdHlsZT1PLmdyaWQuYm9yZGVyQ29sb3I7SC5zdHJva2VSZWN0
KC1hTS8yLC1hTS8yLGgrYU0sdythTSl9SC5yZXN0b3JlKCl9ZnVuY3Rpb24gaygpe2F2LmZpbmQo
Ii50aWNrTGFiZWxzIikucmVtb3ZlKCk7dmFyIGFHPVsnPGRpdiBjbGFzcz0idGlja0xhYmVscyIg
c3R5bGU9ImZvbnQtc2l6ZTpzbWFsbGVyIj4nXTt2YXIgYUo9bSgpO2Zvcih2YXIgYUQ9MDthRDxh
Si5sZW5ndGg7KythRCl7dmFyIGFDPWFKW2FEXSxhRj1hQy5ib3g7aWYoIWFDLnNob3cpe2NvbnRp
bnVlfWFHLnB1c2goJzxkaXYgY2xhc3M9IicrYUMuZGlyZWN0aW9uKyJBeGlzICIrYUMuZGlyZWN0
aW9uK2FDLm4rJ0F4aXMiIHN0eWxlPSJjb2xvcjonK2FDLm9wdGlvbnMuY29sb3IrJyI+Jyk7Zm9y
KHZhciBhRT0wO2FFPGFDLnRpY2tzLmxlbmd0aDsrK2FFKXt2YXIgYUg9YUMudGlja3NbYUVdO2lm
KCFhSC5sYWJlbHx8YUgudjxhQy5taW58fGFILnY+YUMubWF4KXtjb250aW51ZX12YXIgYUs9e30s
YUk7aWYoYUMuZGlyZWN0aW9uPT0ieCIpe2FJPSJjZW50ZXIiO2FLLmxlZnQ9TWF0aC5yb3VuZChx
LmxlZnQrYUMucDJjKGFILnYpLWFDLmxhYmVsV2lkdGgvMik7aWYoYUMucG9zaXRpb249PSJib3R0
b20iKXthSy50b3A9YUYudG9wK2FGLnBhZGRpbmd9ZWxzZXthSy5ib3R0b209SS0oYUYudG9wK2FG
LmhlaWdodC1hRi5wYWRkaW5nKX19ZWxzZXthSy50b3A9TWF0aC5yb3VuZChxLnRvcCthQy5wMmMo
YUgudiktYUMubGFiZWxIZWlnaHQvMik7aWYoYUMucG9zaXRpb249PSJsZWZ0Iil7YUsucmlnaHQ9
Ry0oYUYubGVmdCthRi53aWR0aC1hRi5wYWRkaW5nKTthST0icmlnaHQifWVsc2V7YUsubGVmdD1h
Ri5sZWZ0K2FGLnBhZGRpbmc7YUk9ImxlZnQifX1hSy53aWR0aD1hQy5sYWJlbFdpZHRoO3ZhciBh
Qj1bInBvc2l0aW9uOmFic29sdXRlIiwidGV4dC1hbGlnbjoiK2FJXTtmb3IodmFyIGFMIGluIGFL
KXthQi5wdXNoKGFMKyI6IithS1thTF0rInB4Iil9YUcucHVzaCgnPGRpdiBjbGFzcz0idGlja0xh
YmVsIiBzdHlsZT0iJythQi5qb2luKCI7IikrJyI+JythSC5sYWJlbCsiPC9kaXY+Iil9YUcucHVz
aCgiPC9kaXY+Iil9YUcucHVzaCgiPC9kaXY+Iik7YXYuYXBwZW5kKGFHLmpvaW4oIiIpKX1mdW5j
dGlvbiBkKGFCKXtpZihhQi5saW5lcy5zaG93KXthdChhQil9aWYoYUIuYmFycy5zaG93KXtlKGFC
KX1pZihhQi5wb2ludHMuc2hvdyl7YW8oYUIpfX1mdW5jdGlvbiBhdChhRSl7ZnVuY3Rpb24gYUQo
YVAsYVEsYUksYVUsYVQpe3ZhciBhVj1hUC5wb2ludHMsYUo9YVAucG9pbnRzaXplLGFOPW51bGws
YU09bnVsbDtILmJlZ2luUGF0aCgpO2Zvcih2YXIgYU89YUo7YU88YVYubGVuZ3RoO2FPKz1hSil7
dmFyIGFMPWFWW2FPLWFKXSxhUz1hVlthTy1hSisxXSxhSz1hVlthT10sYVI9YVZbYU8rMV07aWYo
YUw9PW51bGx8fGFLPT1udWxsKXtjb250aW51ZX1pZihhUzw9YVImJmFTPGFULm1pbil7aWYoYVI8
YVQubWluKXtjb250aW51ZX1hTD0oYVQubWluLWFTKS8oYVItYVMpKihhSy1hTCkrYUw7YVM9YVQu
bWlufWVsc2V7aWYoYVI8PWFTJiZhUjxhVC5taW4pe2lmKGFTPGFULm1pbil7Y29udGludWV9YUs9
KGFULm1pbi1hUykvKGFSLWFTKSooYUstYUwpK2FMO2FSPWFULm1pbn19aWYoYVM+PWFSJiZhUz5h
VC5tYXgpe2lmKGFSPmFULm1heCl7Y29udGludWV9YUw9KGFULm1heC1hUykvKGFSLWFTKSooYUst
YUwpK2FMO2FTPWFULm1heH1lbHNle2lmKGFSPj1hUyYmYVI+YVQubWF4KXtpZihhUz5hVC5tYXgp
e2NvbnRpbnVlfWFLPShhVC5tYXgtYVMpLyhhUi1hUykqKGFLLWFMKSthTDthUj1hVC5tYXh9fWlm
KGFMPD1hSyYmYUw8YVUubWluKXtpZihhSzxhVS5taW4pe2NvbnRpbnVlfWFTPShhVS5taW4tYUwp
LyhhSy1hTCkqKGFSLWFTKSthUzthTD1hVS5taW59ZWxzZXtpZihhSzw9YUwmJmFLPGFVLm1pbil7
aWYoYUw8YVUubWluKXtjb250aW51ZX1hUj0oYVUubWluLWFMKS8oYUstYUwpKihhUi1hUykrYVM7
YUs9YVUubWlufX1pZihhTD49YUsmJmFMPmFVLm1heCl7aWYoYUs+YVUubWF4KXtjb250aW51ZX1h
Uz0oYVUubWF4LWFMKS8oYUstYUwpKihhUi1hUykrYVM7YUw9YVUubWF4fWVsc2V7aWYoYUs+PWFM
JiZhSz5hVS5tYXgpe2lmKGFMPmFVLm1heCl7Y29udGludWV9YVI9KGFVLm1heC1hTCkvKGFLLWFM
KSooYVItYVMpK2FTO2FLPWFVLm1heH19aWYoYUwhPWFOfHxhUyE9YU0pe0gubW92ZVRvKGFVLnAy
YyhhTCkrYVEsYVQucDJjKGFTKSthSSl9YU49YUs7YU09YVI7SC5saW5lVG8oYVUucDJjKGFLKSth
USxhVC5wMmMoYVIpK2FJKX1ILnN0cm9rZSgpfWZ1bmN0aW9uIGFGKGFJLGFRLGFQKXt2YXIgYVc9
YUkucG9pbnRzLGFWPWFJLnBvaW50c2l6ZSxhTj1NYXRoLm1pbihNYXRoLm1heCgwLGFQLm1pbiks
YVAubWF4KSxhWD0wLGFVLGFUPWZhbHNlLGFNPTEsYUw9MCxhUj0wO3doaWxlKHRydWUpe2lmKGFW
PjAmJmFYPmFXLmxlbmd0aCthVil7YnJlYWt9YVgrPWFWO3ZhciBhWj1hV1thWC1hVl0sYUs9YVdb
YVgtYVYrYU1dLGFZPWFXW2FYXSxhSj1hV1thWCthTV07aWYoYVQpe2lmKGFWPjAmJmFaIT1udWxs
JiZhWT09bnVsbCl7YVI9YVg7YVY9LWFWO2FNPTI7Y29udGludWV9aWYoYVY8MCYmYVg9PWFMK2FW
KXtILmZpbGwoKTthVD1mYWxzZTthVj0tYVY7YU09MTthWD1hTD1hUithVjtjb250aW51ZX19aWYo
YVo9PW51bGx8fGFZPT1udWxsKXtjb250aW51ZX1pZihhWjw9YVkmJmFaPGFRLm1pbil7aWYoYVk8
YVEubWluKXtjb250aW51ZX1hSz0oYVEubWluLWFaKS8oYVktYVopKihhSi1hSykrYUs7YVo9YVEu
bWlufWVsc2V7aWYoYVk8PWFaJiZhWTxhUS5taW4pe2lmKGFaPGFRLm1pbil7Y29udGludWV9YUo9
KGFRLm1pbi1hWikvKGFZLWFaKSooYUotYUspK2FLO2FZPWFRLm1pbn19aWYoYVo+PWFZJiZhWj5h
US5tYXgpe2lmKGFZPmFRLm1heCl7Y29udGludWV9YUs9KGFRLm1heC1hWikvKGFZLWFaKSooYUot
YUspK2FLO2FaPWFRLm1heH1lbHNle2lmKGFZPj1hWiYmYVk+YVEubWF4KXtpZihhWj5hUS5tYXgp
e2NvbnRpbnVlfWFKPShhUS5tYXgtYVopLyhhWS1hWikqKGFKLWFLKSthSzthWT1hUS5tYXh9fWlm
KCFhVCl7SC5iZWdpblBhdGgoKTtILm1vdmVUbyhhUS5wMmMoYVopLGFQLnAyYyhhTikpO2FUPXRy
dWV9aWYoYUs+PWFQLm1heCYmYUo+PWFQLm1heCl7SC5saW5lVG8oYVEucDJjKGFaKSxhUC5wMmMo
YVAubWF4KSk7SC5saW5lVG8oYVEucDJjKGFZKSxhUC5wMmMoYVAubWF4KSk7Y29udGludWV9ZWxz
ZXtpZihhSzw9YVAubWluJiZhSjw9YVAubWluKXtILmxpbmVUbyhhUS5wMmMoYVopLGFQLnAyYyhh
UC5taW4pKTtILmxpbmVUbyhhUS5wMmMoYVkpLGFQLnAyYyhhUC5taW4pKTtjb250aW51ZX19dmFy
IGFPPWFaLGFTPWFZO2lmKGFLPD1hSiYmYUs8YVAubWluJiZhSj49YVAubWluKXthWj0oYVAubWlu
LWFLKS8oYUotYUspKihhWS1hWikrYVo7YUs9YVAubWlufWVsc2V7aWYoYUo8PWFLJiZhSjxhUC5t
aW4mJmFLPj1hUC5taW4pe2FZPShhUC5taW4tYUspLyhhSi1hSykqKGFZLWFaKSthWjthSj1hUC5t
aW59fWlmKGFLPj1hSiYmYUs+YVAubWF4JiZhSjw9YVAubWF4KXthWj0oYVAubWF4LWFLKS8oYUot
YUspKihhWS1hWikrYVo7YUs9YVAubWF4fWVsc2V7aWYoYUo+PWFLJiZhSj5hUC5tYXgmJmFLPD1h
UC5tYXgpe2FZPShhUC5tYXgtYUspLyhhSi1hSykqKGFZLWFaKSthWjthSj1hUC5tYXh9fWlmKGFa
IT1hTyl7SC5saW5lVG8oYVEucDJjKGFPKSxhUC5wMmMoYUspKX1ILmxpbmVUbyhhUS5wMmMoYVop
LGFQLnAyYyhhSykpO0gubGluZVRvKGFRLnAyYyhhWSksYVAucDJjKGFKKSk7aWYoYVkhPWFTKXtI
LmxpbmVUbyhhUS5wMmMoYVkpLGFQLnAyYyhhSikpO0gubGluZVRvKGFRLnAyYyhhUyksYVAucDJj
KGFKKSl9fX1ILnNhdmUoKTtILnRyYW5zbGF0ZShxLmxlZnQscS50b3ApO0gubGluZUpvaW49InJv
dW5kIjt2YXIgYUc9YUUubGluZXMubGluZVdpZHRoLGFCPWFFLnNoYWRvd1NpemU7aWYoYUc+MCYm
YUI+MCl7SC5saW5lV2lkdGg9YUI7SC5zdHJva2VTdHlsZT0icmdiYSgwLDAsMCwwLjEpIjt2YXIg
YUg9TWF0aC5QSS8xODthRChhRS5kYXRhcG9pbnRzLE1hdGguc2luKGFIKSooYUcvMithQi8yKSxN
YXRoLmNvcyhhSCkqKGFHLzIrYUIvMiksYUUueGF4aXMsYUUueWF4aXMpO0gubGluZVdpZHRoPWFC
LzI7YUQoYUUuZGF0YXBvaW50cyxNYXRoLnNpbihhSCkqKGFHLzIrYUIvNCksTWF0aC5jb3MoYUgp
KihhRy8yK2FCLzQpLGFFLnhheGlzLGFFLnlheGlzKX1ILmxpbmVXaWR0aD1hRztILnN0cm9rZVN0
eWxlPWFFLmNvbG9yO3ZhciBhQz1hZShhRS5saW5lcyxhRS5jb2xvciwwLHcpO2lmKGFDKXtILmZp
bGxTdHlsZT1hQzthRihhRS5kYXRhcG9pbnRzLGFFLnhheGlzLGFFLnlheGlzKX1pZihhRz4wKXth
RChhRS5kYXRhcG9pbnRzLDAsMCxhRS54YXhpcyxhRS55YXhpcyl9SC5yZXN0b3JlKCl9ZnVuY3Rp
b24gYW8oYUUpe2Z1bmN0aW9uIGFIKGFOLGFNLGFVLGFLLGFTLGFULGFRLGFKKXt2YXIgYVI9YU4u
cG9pbnRzLGFJPWFOLnBvaW50c2l6ZTtmb3IodmFyIGFMPTA7YUw8YVIubGVuZ3RoO2FMKz1hSSl7
dmFyIGFQPWFSW2FMXSxhTz1hUlthTCsxXTtpZihhUD09bnVsbHx8YVA8YVQubWlufHxhUD5hVC5t
YXh8fGFPPGFRLm1pbnx8YU8+YVEubWF4KXtjb250aW51ZX1ILmJlZ2luUGF0aCgpO2FQPWFULnAy
YyhhUCk7YU89YVEucDJjKGFPKSthSztpZihhSj09ImNpcmNsZSIpe0guYXJjKGFQLGFPLGFNLDAs
YVM/TWF0aC5QSTpNYXRoLlBJKjIsZmFsc2UpfWVsc2V7YUooSCxhUCxhTyxhTSxhUyl9SC5jbG9z
ZVBhdGgoKTtpZihhVSl7SC5maWxsU3R5bGU9YVU7SC5maWxsKCl9SC5zdHJva2UoKX19SC5zYXZl
KCk7SC50cmFuc2xhdGUocS5sZWZ0LHEudG9wKTt2YXIgYUc9YUUucG9pbnRzLmxpbmVXaWR0aCxh
Qz1hRS5zaGFkb3dTaXplLGFCPWFFLnBvaW50cy5yYWRpdXMsYUY9YUUucG9pbnRzLnN5bWJvbDtp
ZihhRz4wJiZhQz4wKXt2YXIgYUQ9YUMvMjtILmxpbmVXaWR0aD1hRDtILnN0cm9rZVN0eWxlPSJy
Z2JhKDAsMCwwLDAuMSkiO2FIKGFFLmRhdGFwb2ludHMsYUIsbnVsbCxhRCthRC8yLHRydWUsYUUu
eGF4aXMsYUUueWF4aXMsYUYpO0guc3Ryb2tlU3R5bGU9InJnYmEoMCwwLDAsMC4yKSI7YUgoYUUu
ZGF0YXBvaW50cyxhQixudWxsLGFELzIsdHJ1ZSxhRS54YXhpcyxhRS55YXhpcyxhRil9SC5saW5l
V2lkdGg9YUc7SC5zdHJva2VTdHlsZT1hRS5jb2xvcjthSChhRS5kYXRhcG9pbnRzLGFCLGFlKGFF
LnBvaW50cyxhRS5jb2xvciksMCxmYWxzZSxhRS54YXhpcyxhRS55YXhpcyxhRik7SC5yZXN0b3Jl
KCl9ZnVuY3Rpb24gRShhTixhTSxhVixhSSxhUSxhRixhRCxhTCxhSyxhVSxhUixhQyl7dmFyIGFF
LGFULGFKLGFQLGFHLGFCLGFPLGFILGFTO2lmKGFSKXthSD1hQj1hTz10cnVlO2FHPWZhbHNlO2FF
PWFWO2FUPWFOO2FQPWFNK2FJO2FKPWFNK2FRO2lmKGFUPGFFKXthUz1hVDthVD1hRTthRT1hUzth
Rz10cnVlO2FCPWZhbHNlfX1lbHNle2FHPWFCPWFPPXRydWU7YUg9ZmFsc2U7YUU9YU4rYUk7YVQ9
YU4rYVE7YUo9YVY7YVA9YU07aWYoYVA8YUope2FTPWFQO2FQPWFKO2FKPWFTO2FIPXRydWU7YU89
ZmFsc2V9fWlmKGFUPGFMLm1pbnx8YUU+YUwubWF4fHxhUDxhSy5taW58fGFKPmFLLm1heCl7cmV0
dXJufWlmKGFFPGFMLm1pbil7YUU9YUwubWluO2FHPWZhbHNlfWlmKGFUPmFMLm1heCl7YVQ9YUwu
bWF4O2FCPWZhbHNlfWlmKGFKPGFLLm1pbil7YUo9YUsubWluO2FIPWZhbHNlfWlmKGFQPmFLLm1h
eCl7YVA9YUsubWF4O2FPPWZhbHNlfWFFPWFMLnAyYyhhRSk7YUo9YUsucDJjKGFKKTthVD1hTC5w
MmMoYVQpO2FQPWFLLnAyYyhhUCk7aWYoYUQpe2FVLmJlZ2luUGF0aCgpO2FVLm1vdmVUbyhhRSxh
Sik7YVUubGluZVRvKGFFLGFQKTthVS5saW5lVG8oYVQsYVApO2FVLmxpbmVUbyhhVCxhSik7YVUu
ZmlsbFN0eWxlPWFEKGFKLGFQKTthVS5maWxsKCl9aWYoYUM+MCYmKGFHfHxhQnx8YU98fGFIKSl7
YVUuYmVnaW5QYXRoKCk7YVUubW92ZVRvKGFFLGFKK2FGKTtpZihhRyl7YVUubGluZVRvKGFFLGFQ
K2FGKX1lbHNle2FVLm1vdmVUbyhhRSxhUCthRil9aWYoYU8pe2FVLmxpbmVUbyhhVCxhUCthRil9
ZWxzZXthVS5tb3ZlVG8oYVQsYVArYUYpfWlmKGFCKXthVS5saW5lVG8oYVQsYUorYUYpfWVsc2V7
YVUubW92ZVRvKGFULGFKK2FGKX1pZihhSCl7YVUubGluZVRvKGFFLGFKK2FGKX1lbHNle2FVLm1v
dmVUbyhhRSxhSithRil9YVUuc3Ryb2tlKCl9fWZ1bmN0aW9uIGUoYUQpe2Z1bmN0aW9uIGFDKGFK
LGFJLGFMLGFHLGFLLGFOLGFNKXt2YXIgYU89YUoucG9pbnRzLGFGPWFKLnBvaW50c2l6ZTtmb3Io
dmFyIGFIPTA7YUg8YU8ubGVuZ3RoO2FIKz1hRil7aWYoYU9bYUhdPT1udWxsKXtjb250aW51ZX1F
KGFPW2FIXSxhT1thSCsxXSxhT1thSCsyXSxhSSxhTCxhRyxhSyxhTixhTSxILGFELmJhcnMuaG9y
aXpvbnRhbCxhRC5iYXJzLmxpbmVXaWR0aCl9fUguc2F2ZSgpO0gudHJhbnNsYXRlKHEubGVmdCxx
LnRvcCk7SC5saW5lV2lkdGg9YUQuYmFycy5saW5lV2lkdGg7SC5zdHJva2VTdHlsZT1hRC5jb2xv
cjt2YXIgYUI9YUQuYmFycy5hbGlnbj09ImxlZnQiPzA6LWFELmJhcnMuYmFyV2lkdGgvMjt2YXIg
YUU9YUQuYmFycy5maWxsP2Z1bmN0aW9uKGFGLGFHKXtyZXR1cm4gYWUoYUQuYmFycyxhRC5jb2xv
cixhRixhRyl9Om51bGw7YUMoYUQuZGF0YXBvaW50cyxhQixhQithRC5iYXJzLmJhcldpZHRoLDAs
YUUsYUQueGF4aXMsYUQueWF4aXMpO0gucmVzdG9yZSgpfWZ1bmN0aW9uIGFlKGFELGFCLGFDLGFG
KXt2YXIgYUU9YUQuZmlsbDtpZighYUUpe3JldHVybiBudWxsfWlmKGFELmZpbGxDb2xvcil7cmV0
dXJuIGFtKGFELmZpbGxDb2xvcixhQyxhRixhQil9dmFyIGFHPWMuY29sb3IucGFyc2UoYUIpO2FH
LmE9dHlwZW9mIGFFPT0ibnVtYmVyIj9hRTowLjQ7YUcubm9ybWFsaXplKCk7cmV0dXJuIGFHLnRv
U3RyaW5nKCl9ZnVuY3Rpb24gbygpe2F2LmZpbmQoIi5sZWdlbmQiKS5yZW1vdmUoKTtpZighTy5s
ZWdlbmQuc2hvdyl7cmV0dXJufXZhciBhSD1bXSxhRj1mYWxzZSxhTj1PLmxlZ2VuZC5sYWJlbEZv
cm1hdHRlcixhTSxhSjtmb3IodmFyIGFFPTA7YUU8US5sZW5ndGg7KythRSl7YU09UVthRV07YUo9
YU0ubGFiZWw7aWYoIWFKKXtjb250aW51ZX1pZihhRSVPLmxlZ2VuZC5ub0NvbHVtbnM9PTApe2lm
KGFGKXthSC5wdXNoKCI8L3RyPiIpfWFILnB1c2goIjx0cj4iKTthRj10cnVlfWlmKGFOKXthSj1h
TihhSixhTSl9YUgucHVzaCgnPHRkIGNsYXNzPSJsZWdlbmRDb2xvckJveCI+PGRpdiBzdHlsZT0i
Ym9yZGVyOjFweCBzb2xpZCAnK08ubGVnZW5kLmxhYmVsQm94Qm9yZGVyQ29sb3IrJztwYWRkaW5n
OjFweCI+PGRpdiBzdHlsZT0id2lkdGg6NHB4O2hlaWdodDowO2JvcmRlcjo1cHggc29saWQgJyth
TS5jb2xvcisnO292ZXJmbG93OmhpZGRlbiI+PC9kaXY+PC9kaXY+PC90ZD48dGQgY2xhc3M9Imxl
Z2VuZExhYmVsIj4nK2FKKyI8L3RkPiIpfWlmKGFGKXthSC5wdXNoKCI8L3RyPiIpfWlmKGFILmxl
bmd0aD09MCl7cmV0dXJufXZhciBhTD0nPHRhYmxlIHN0eWxlPSJmb250LXNpemU6c21hbGxlcjtj
b2xvcjonK08uZ3JpZC5jb2xvcisnIj4nK2FILmpvaW4oIiIpKyI8L3RhYmxlPiI7aWYoTy5sZWdl
bmQuY29udGFpbmVyIT1udWxsKXtjKE8ubGVnZW5kLmNvbnRhaW5lcikuaHRtbChhTCl9ZWxzZXt2
YXIgYUk9IiIsYUM9Ty5sZWdlbmQucG9zaXRpb24sYUQ9Ty5sZWdlbmQubWFyZ2luO2lmKGFEWzBd
PT1udWxsKXthRD1bYUQsYURdfWlmKGFDLmNoYXJBdCgwKT09Im4iKXthSSs9InRvcDoiKyhhRFsx
XStxLnRvcCkrInB4OyJ9ZWxzZXtpZihhQy5jaGFyQXQoMCk9PSJzIil7YUkrPSJib3R0b206Iiso
YURbMV0rcS5ib3R0b20pKyJweDsifX1pZihhQy5jaGFyQXQoMSk9PSJlIil7YUkrPSJyaWdodDoi
KyhhRFswXStxLnJpZ2h0KSsicHg7In1lbHNle2lmKGFDLmNoYXJBdCgxKT09InciKXthSSs9Imxl
ZnQ6IisoYURbMF0rcS5sZWZ0KSsicHg7In19dmFyIGFLPWMoJzxkaXYgY2xhc3M9ImxlZ2VuZCI+
JythTC5yZXBsYWNlKCdzdHlsZT0iJywnc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOycrYUkrIjsi
KSsiPC9kaXY+IikuYXBwZW5kVG8oYXYpO2lmKE8ubGVnZW5kLmJhY2tncm91bmRPcGFjaXR5IT0w
KXt2YXIgYUc9Ty5sZWdlbmQuYmFja2dyb3VuZENvbG9yO2lmKGFHPT1udWxsKXthRz1PLmdyaWQu
YmFja2dyb3VuZENvbG9yO2lmKGFHJiZ0eXBlb2YgYUc9PSJzdHJpbmciKXthRz1jLmNvbG9yLnBh
cnNlKGFHKX1lbHNle2FHPWMuY29sb3IuZXh0cmFjdChhSywiYmFja2dyb3VuZC1jb2xvciIpfWFH
LmE9MTthRz1hRy50b1N0cmluZygpfXZhciBhQj1hSy5jaGlsZHJlbigpO2MoJzxkaXYgc3R5bGU9
InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOicrYUIud2lkdGgoKSsicHg7aGVpZ2h0OiIrYUIuaGVp
Z2h0KCkrInB4OyIrYUkrImJhY2tncm91bmQtY29sb3I6IithRysnOyI+IDwvZGl2PicpLnByZXBl
bmRUbyhhSykuY3NzKCJvcGFjaXR5IixPLmxlZ2VuZC5iYWNrZ3JvdW5kT3BhY2l0eSl9fX12YXIg
YWI9W10sTT1udWxsO2Z1bmN0aW9uIEsoYUksYUcsYUQpe3ZhciBhTz1PLmdyaWQubW91c2VBY3Rp
dmVSYWRpdXMsYTA9YU8qYU8rMSxhWT1udWxsLGFSPWZhbHNlLGFXLGFVO2ZvcihhVz1RLmxlbmd0
aC0xO2FXPj0wOy0tYVcpe2lmKCFhRChRW2FXXSkpe2NvbnRpbnVlfXZhciBhUD1RW2FXXSxhSD1h
UC54YXhpcyxhRj1hUC55YXhpcyxhVj1hUC5kYXRhcG9pbnRzLnBvaW50cyxhVD1hUC5kYXRhcG9p
bnRzLnBvaW50c2l6ZSxhUT1hSC5jMnAoYUkpLGFOPWFGLmMycChhRyksYUM9YU8vYUguc2NhbGUs
YUI9YU8vYUYuc2NhbGU7aWYoYUgub3B0aW9ucy5pbnZlcnNlVHJhbnNmb3JtKXthQz1OdW1iZXIu
TUFYX1ZBTFVFfWlmKGFGLm9wdGlvbnMuaW52ZXJzZVRyYW5zZm9ybSl7YUI9TnVtYmVyLk1BWF9W
QUxVRX1pZihhUC5saW5lcy5zaG93fHxhUC5wb2ludHMuc2hvdyl7Zm9yKGFVPTA7YVU8YVYubGVu
Z3RoO2FVKz1hVCl7dmFyIGFLPWFWW2FVXSxhSj1hVlthVSsxXTtpZihhSz09bnVsbCl7Y29udGlu
dWV9aWYoYUstYVE+YUN8fGFLLWFRPC1hQ3x8YUotYU4+YUJ8fGFKLWFOPC1hQil7Y29udGludWV9
dmFyIGFNPU1hdGguYWJzKGFILnAyYyhhSyktYUkpLGFMPU1hdGguYWJzKGFGLnAyYyhhSiktYUcp
LGFTPWFNKmFNK2FMKmFMO2lmKGFTPGEwKXthMD1hUzthWT1bYVcsYVUvYVRdfX19aWYoYVAuYmFy
cy5zaG93JiYhYVkpe3ZhciBhRT1hUC5iYXJzLmFsaWduPT0ibGVmdCI/MDotYVAuYmFycy5iYXJX
aWR0aC8yLGFYPWFFK2FQLmJhcnMuYmFyV2lkdGg7Zm9yKGFVPTA7YVU8YVYubGVuZ3RoO2FVKz1h
VCl7dmFyIGFLPWFWW2FVXSxhSj1hVlthVSsxXSxhWj1hVlthVSsyXTtpZihhSz09bnVsbCl7Y29u
dGludWV9aWYoUVthV10uYmFycy5ob3Jpem9udGFsPyhhUTw9TWF0aC5tYXgoYVosYUspJiZhUT49
TWF0aC5taW4oYVosYUspJiZhTj49YUorYUUmJmFOPD1hSithWCk6KGFRPj1hSythRSYmYVE8PWFL
K2FYJiZhTj49TWF0aC5taW4oYVosYUopJiZhTjw9TWF0aC5tYXgoYVosYUopKSl7YVk9W2FXLGFV
L2FUXX19fX1pZihhWSl7YVc9YVlbMF07YVU9YVlbMV07YVQ9UVthV10uZGF0YXBvaW50cy5wb2lu
dHNpemU7cmV0dXJue2RhdGFwb2ludDpRW2FXXS5kYXRhcG9pbnRzLnBvaW50cy5zbGljZShhVSph
VCwoYVUrMSkqYVQpLGRhdGFJbmRleDphVSxzZXJpZXM6UVthV10sc2VyaWVzSW5kZXg6YVd9fXJl
dHVybiBudWxsfWZ1bmN0aW9uIGFhKGFCKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt1KCJwbG90aG92
ZXIiLGFCLGZ1bmN0aW9uKGFDKXtyZXR1cm4gYUMuaG92ZXJhYmxlIT1mYWxzZX0pfX1mdW5jdGlv
biBsKGFCKXtpZihPLmdyaWQuaG92ZXJhYmxlKXt1KCJwbG90aG92ZXIiLGFCLGZ1bmN0aW9uKGFD
KXtyZXR1cm4gZmFsc2V9KX19ZnVuY3Rpb24gUihhQil7dSgicGxvdGNsaWNrIixhQixmdW5jdGlv
bihhQyl7cmV0dXJuIGFDLmNsaWNrYWJsZSE9ZmFsc2V9KX1mdW5jdGlvbiB1KGFDLGFCLGFEKXt2
YXIgYUU9eS5vZmZzZXQoKSxhSD1hQi5wYWdlWC1hRS5sZWZ0LXEubGVmdCxhRj1hQi5wYWdlWS1h
RS50b3AtcS50b3AsYUo9Qyh7bGVmdDphSCx0b3A6YUZ9KTthSi5wYWdlWD1hQi5wYWdlWDthSi5w
YWdlWT1hQi5wYWdlWTt2YXIgYUs9SyhhSCxhRixhRCk7aWYoYUspe2FLLnBhZ2VYPXBhcnNlSW50
KGFLLnNlcmllcy54YXhpcy5wMmMoYUsuZGF0YXBvaW50WzBdKSthRS5sZWZ0K3EubGVmdCk7YUsu
cGFnZVk9cGFyc2VJbnQoYUsuc2VyaWVzLnlheGlzLnAyYyhhSy5kYXRhcG9pbnRbMV0pK2FFLnRv
cCtxLnRvcCl9aWYoTy5ncmlkLmF1dG9IaWdobGlnaHQpe2Zvcih2YXIgYUc9MDthRzxhYi5sZW5n
dGg7KythRyl7dmFyIGFJPWFiW2FHXTtpZihhSS5hdXRvPT1hQyYmIShhSyYmYUkuc2VyaWVzPT1h
Sy5zZXJpZXMmJmFJLnBvaW50WzBdPT1hSy5kYXRhcG9pbnRbMF0mJmFJLnBvaW50WzFdPT1hSy5k
YXRhcG9pbnRbMV0pKXtUKGFJLnNlcmllcyxhSS5wb2ludCl9fWlmKGFLKXt4KGFLLnNlcmllcyxh
Sy5kYXRhcG9pbnQsYUMpfX1hdi50cmlnZ2VyKGFDLFthSixhS10pfWZ1bmN0aW9uIGYoKXtpZigh
TSl7TT1zZXRUaW1lb3V0KHMsMzApfX1mdW5jdGlvbiBzKCl7TT1udWxsO0Euc2F2ZSgpO0EuY2xl
YXJSZWN0KDAsMCxHLEkpO0EudHJhbnNsYXRlKHEubGVmdCxxLnRvcCk7dmFyIGFDLGFCO2Zvcihh
Qz0wO2FDPGFiLmxlbmd0aDsrK2FDKXthQj1hYlthQ107aWYoYUIuc2VyaWVzLmJhcnMuc2hvdyl7
dihhQi5zZXJpZXMsYUIucG9pbnQpfWVsc2V7YXkoYUIuc2VyaWVzLGFCLnBvaW50KX19QS5yZXN0
b3JlKCk7YW4oYWsuZHJhd092ZXJsYXksW0FdKX1mdW5jdGlvbiB4KGFELGFCLGFGKXtpZih0eXBl
b2YgYUQ9PSJudW1iZXIiKXthRD1RW2FEXX1pZih0eXBlb2YgYUI9PSJudW1iZXIiKXt2YXIgYUU9
YUQuZGF0YXBvaW50cy5wb2ludHNpemU7YUI9YUQuZGF0YXBvaW50cy5wb2ludHMuc2xpY2UoYUUq
YUIsYUUqKGFCKzEpKX12YXIgYUM9YWwoYUQsYUIpO2lmKGFDPT0tMSl7YWIucHVzaCh7c2VyaWVz
OmFELHBvaW50OmFCLGF1dG86YUZ9KTtmKCl9ZWxzZXtpZighYUYpe2FiW2FDXS5hdXRvPWZhbHNl
fX19ZnVuY3Rpb24gVChhRCxhQil7aWYoYUQ9PW51bGwmJmFCPT1udWxsKXthYj1bXTtmKCl9aWYo
dHlwZW9mIGFEPT0ibnVtYmVyIil7YUQ9UVthRF19aWYodHlwZW9mIGFCPT0ibnVtYmVyIil7YUI9
YUQuZGF0YVthQl19dmFyIGFDPWFsKGFELGFCKTtpZihhQyE9LTEpe2FiLnNwbGljZShhQywxKTtm
KCl9fWZ1bmN0aW9uIGFsKGFELGFFKXtmb3IodmFyIGFCPTA7YUI8YWIubGVuZ3RoOysrYUIpe3Zh
ciBhQz1hYlthQl07aWYoYUMuc2VyaWVzPT1hRCYmYUMucG9pbnRbMF09PWFFWzBdJiZhQy5wb2lu
dFsxXT09YUVbMV0pe3JldHVybiBhQn19cmV0dXJuIC0xfWZ1bmN0aW9uIGF5KGFFLGFEKXt2YXIg
YUM9YURbMF0sYUk9YURbMV0sYUg9YUUueGF4aXMsYUc9YUUueWF4aXM7aWYoYUM8YUgubWlufHxh
Qz5hSC5tYXh8fGFJPGFHLm1pbnx8YUk+YUcubWF4KXtyZXR1cm59dmFyIGFGPWFFLnBvaW50cy5y
YWRpdXMrYUUucG9pbnRzLmxpbmVXaWR0aC8yO0EubGluZVdpZHRoPWFGO0Euc3Ryb2tlU3R5bGU9
Yy5jb2xvci5wYXJzZShhRS5jb2xvcikuc2NhbGUoImEiLDAuNSkudG9TdHJpbmcoKTt2YXIgYUI9
MS41KmFGLGFDPWFILnAyYyhhQyksYUk9YUcucDJjKGFJKTtBLmJlZ2luUGF0aCgpO2lmKGFFLnBv
aW50cy5zeW1ib2w9PSJjaXJjbGUiKXtBLmFyYyhhQyxhSSxhQiwwLDIqTWF0aC5QSSxmYWxzZSl9
ZWxzZXthRS5wb2ludHMuc3ltYm9sKEEsYUMsYUksYUIsZmFsc2UpfUEuY2xvc2VQYXRoKCk7QS5z
dHJva2UoKX1mdW5jdGlvbiB2KGFFLGFCKXtBLmxpbmVXaWR0aD1hRS5iYXJzLmxpbmVXaWR0aDtB
LnN0cm9rZVN0eWxlPWMuY29sb3IucGFyc2UoYUUuY29sb3IpLnNjYWxlKCJhIiwwLjUpLnRvU3Ry
aW5nKCk7dmFyIGFEPWMuY29sb3IucGFyc2UoYUUuY29sb3IpLnNjYWxlKCJhIiwwLjUpLnRvU3Ry
aW5nKCk7dmFyIGFDPWFFLmJhcnMuYWxpZ249PSJsZWZ0Ij8wOi1hRS5iYXJzLmJhcldpZHRoLzI7
RShhQlswXSxhQlsxXSxhQlsyXXx8MCxhQyxhQythRS5iYXJzLmJhcldpZHRoLDAsZnVuY3Rpb24o
KXtyZXR1cm4gYUR9LGFFLnhheGlzLGFFLnlheGlzLEEsYUUuYmFycy5ob3Jpem9udGFsLGFFLmJh
cnMubGluZVdpZHRoKX1mdW5jdGlvbiBhbShhSixhQixhSCxhQyl7aWYodHlwZW9mIGFKPT0ic3Ry
aW5nIil7cmV0dXJuIGFKfWVsc2V7dmFyIGFJPUguY3JlYXRlTGluZWFyR3JhZGllbnQoMCxhSCww
LGFCKTtmb3IodmFyIGFFPTAsYUQ9YUouY29sb3JzLmxlbmd0aDthRTxhRDsrK2FFKXt2YXIgYUY9
YUouY29sb3JzW2FFXTtpZih0eXBlb2YgYUYhPSJzdHJpbmciKXt2YXIgYUc9Yy5jb2xvci5wYXJz
ZShhQyk7aWYoYUYuYnJpZ2h0bmVzcyE9bnVsbCl7YUc9YUcuc2NhbGUoInJnYiIsYUYuYnJpZ2h0
bmVzcyl9aWYoYUYub3BhY2l0eSE9bnVsbCl7YUcuYSo9YUYub3BhY2l0eX1hRj1hRy50b1N0cmlu
ZygpfWFJLmFkZENvbG9yU3RvcChhRS8oYUQtMSksYUYpfXJldHVybiBhSX19fWMucGxvdD1mdW5j
dGlvbihnLGUsZCl7dmFyIGY9bmV3IGIoYyhnKSxlLGQsYy5wbG90LnBsdWdpbnMpO3JldHVybiBm
fTtjLnBsb3QudmVyc2lvbj0iMC43IjtjLnBsb3QucGx1Z2lucz1bXTtjLnBsb3QuZm9ybWF0RGF0
ZT1mdW5jdGlvbihsLGYsaCl7dmFyIG89ZnVuY3Rpb24oZCl7ZD0iIitkO3JldHVybiBkLmxlbmd0
aD09MT8iMCIrZDpkfTt2YXIgZT1bXTt2YXIgcD1mYWxzZSxqPWZhbHNlO3ZhciBuPWwuZ2V0VVRD
SG91cnMoKTt2YXIgaz1uPDEyO2lmKGg9PW51bGwpe2g9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIi
LCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX1pZihmLnNl
YXJjaCgvJXB8JVAvKSE9LTEpe2lmKG4+MTIpe249bi0xMn1lbHNle2lmKG49PTApe249MTJ9fX1m
b3IodmFyIGc9MDtnPGYubGVuZ3RoOysrZyl7dmFyIG09Zi5jaGFyQXQoZyk7aWYocCl7c3dpdGNo
KG0pe2Nhc2UiaCI6bT0iIituO2JyZWFrO2Nhc2UiSCI6bT1vKG4pO2JyZWFrO2Nhc2UiTSI6bT1v
KGwuZ2V0VVRDTWludXRlcygpKTticmVhaztjYXNlIlMiOm09byhsLmdldFVUQ1NlY29uZHMoKSk7
YnJlYWs7Y2FzZSJkIjptPSIiK2wuZ2V0VVRDRGF0ZSgpO2JyZWFrO2Nhc2UibSI6bT0iIisobC5n
ZXRVVENNb250aCgpKzEpO2JyZWFrO2Nhc2UieSI6bT0iIitsLmdldFVUQ0Z1bGxZZWFyKCk7YnJl
YWs7Y2FzZSJiIjptPSIiK2hbbC5nZXRVVENNb250aCgpXTticmVhaztjYXNlInAiOm09KGspPygi
YW0iKTooInBtIik7YnJlYWs7Y2FzZSJQIjptPShrKT8oIkFNIik6KCJQTSIpO2JyZWFrO2Nhc2Ui
MCI6bT0iIjtqPXRydWU7YnJlYWt9aWYobSYmail7bT1vKG0pO2o9ZmFsc2V9ZS5wdXNoKG0pO2lm
KCFqKXtwPWZhbHNlfX1lbHNle2lmKG09PSIlIil7cD10cnVlfWVsc2V7ZS5wdXNoKG0pfX19cmV0
dXJuIGUuam9pbigiIil9O2Z1bmN0aW9uIGEoZSxkKXtyZXR1cm4gZCpNYXRoLmZsb29yKGUvZCl9
fSkoalF1ZXJ5KTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0aXRsZT0ianF1ZXJ5LmZsb3QuZmlsbGJl
dHdlZW4ubWluLmpzIj4KKyhmdW5jdGlvbihiKXt2YXIgYT17c2VyaWVzOntmaWxsQmV0d2Vlbjpu
dWxsfX07ZnVuY3Rpb24gYyhmKXtmdW5jdGlvbiBkKGosaCl7dmFyIGc7Zm9yKGc9MDtnPGgubGVu
Z3RoOysrZyl7aWYoaFtnXS5pZD09ai5maWxsQmV0d2Vlbil7cmV0dXJuIGhbZ119fWlmKHR5cGVv
ZiBqLmZpbGxCZXR3ZWVuPT0ibnVtYmVyIil7Zz1qLmZpbGxCZXR3ZWVuO2lmKGc8MHx8Zz49aC5s
ZW5ndGgpe3JldHVybiBudWxsfXJldHVybiBoW2ddfXJldHVybiBudWxsfWZ1bmN0aW9uIGUoQix1
LGcpe2lmKHUuZmlsbEJldHdlZW49PW51bGwpe3JldHVybn12YXIgcD1kKHUsQi5nZXREYXRhKCkp
O2lmKCFwKXtyZXR1cm59dmFyIHk9Zy5wb2ludHNpemUsRT1nLnBvaW50cyxoPXAuZGF0YXBvaW50
cy5wb2ludHNpemUseD1wLmRhdGFwb2ludHMucG9pbnRzLHI9W10sdyx2LGssRyxGLHEsdD11Lmxp
bmVzLnNob3csbz15PjImJmcuZm9ybWF0WzJdLnksbj10JiZ1LmxpbmVzLnN0ZXBzLEQ9dHJ1ZSxD
PTAsQT0wLHo7d2hpbGUodHJ1ZSl7aWYoQz49RS5sZW5ndGgpe2JyZWFrfXo9ci5sZW5ndGg7aWYo
RVtDXT09bnVsbCl7Zm9yKG09MDttPHk7KyttKXtyLnB1c2goRVtDK21dKX1DKz15fWVsc2V7aWYo
QT49eC5sZW5ndGgpe2lmKCF0KXtmb3IobT0wO208eTsrK20pe3IucHVzaChFW0MrbV0pfX1DKz15
fWVsc2V7aWYoeFtBXT09bnVsbCl7Zm9yKG09MDttPHk7KyttKXtyLnB1c2gobnVsbCl9RD10cnVl
O0ErPWh9ZWxzZXt3PUVbQ107dj1FW0MrMV07Rz14W0FdO0Y9eFtBKzFdO3E9MDtpZih3PT1HKXtm
b3IobT0wO208eTsrK20pe3IucHVzaChFW0MrbV0pfXE9RjtDKz15O0ErPWh9ZWxzZXtpZih3Pkcp
e2lmKHQmJkM+MCYmRVtDLXldIT1udWxsKXtrPXYrKEVbQy15KzFdLXYpKihHLXcpLyhFW0MteV0t
dyk7ci5wdXNoKEcpO3IucHVzaChrKTtmb3IobT0yO208eTsrK20pe3IucHVzaChFW0MrbV0pfXE9
Rn1BKz1ofWVsc2V7aWYoRCYmdCl7Qys9eTtjb250aW51ZX1mb3IobT0wO208eTsrK20pe3IucHVz
aChFW0MrbV0pfWlmKHQmJkE+MCYmeFtBLWhdIT1udWxsKXtxPUYrKHhbQS1oKzFdLUYpKih3LUcp
Lyh4W0EtaF0tRyl9Qys9eX19RD1mYWxzZTtpZih6IT1yLmxlbmd0aCYmbyl7clt6KzJdPXF9fX19
aWYobiYmeiE9ci5sZW5ndGgmJno+MCYmclt6XSE9bnVsbCYmclt6XSE9clt6LXldJiZyW3orMV0h
PXJbei15KzFdKXtmb3IobT0wO208eTsrK20pe3Jbeit5K21dPXJbeittXX1yW3orMV09clt6LXkr
MV19fWcucG9pbnRzPXJ9Zi5ob29rcy5wcm9jZXNzRGF0YXBvaW50cy5wdXNoKGUpfWIucGxvdC5w
bHVnaW5zLnB1c2goe2luaXQ6YyxvcHRpb25zOmEsbmFtZToiZmlsbGJldHdlZW4iLHZlcnNpb246
IjEuMCJ9KX0pKGpRdWVyeSk7Cis8L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisK
K3NlY3Rpb24geworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBwYWRkaW5nOiAwIDEw
cHg7Cit9CisKK3NlY3Rpb24gaDEgeworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250
LXNpemU6IDFlbTsKK30KKworc2VjdGlvbiAudG9vbHRpcCB7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kOiAjZmZjYzY2Owor
ICAgIGJvcmRlci1yYWRpdXM6IDVweDsKKyAgICBwYWRkaW5nOiAwcHggNXB4OworfQorCis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPHNjcmlw
dD4KKworZnVuY3Rpb24gYXR0YWNoUGxvdCh0ZXN0TmFtZSkgeworICAgIHZhciBzZWN0aW9uID0g
JCgnPHNlY3Rpb24+PGgxPjwvaDE+PGRpdiBjbGFzcz0icGxvdCIgc3R5bGU9IndpZHRoOiAyMDBw
eDsgaGVpZ2h0OiAzMDBweDsiPjwvZGl2PicKKyAgICAgICAgKyAnPHNwYW4gY2xhc3M9InRvb2x0
aXAiPjwvc3Bhbj48c2VjdGlvbj4nKTsKKyAgICB2YXIgdW5pdCA9IHRlc3RVbml0c1t0ZXN0TmFt
ZV07CisgICAgc2VjdGlvbi5jaGlsZHJlbignaDEnKS5odG1sKHRlc3ROYW1lICsgKHVuaXQgPyAn
ICgnICsgdW5pdCArICcpJyA6ICcnKSk7CisgICAgJCgnI2NvbnRhaW5lcicpLmFwcGVuZChzZWN0
aW9uKTsKKworICAgIHZhciBhdmVyYWdlcyA9IHRlc3RSZXN1bHRzW3Rlc3ROYW1lXTsKKyAgICB2
YXIgY29sb3IgPSAncmdiKDIzMCw1MCw1MCknOworCisgICAgdmFyIG1pbk1heE9wdGlvbnMgPSB7
bGluZXM6IHtzaG93OnRydWUsIGxpbmVXaWR0aDogMH0sCisgICAgICAgIGNvbG9yOiBjb2xvciwK
KyAgICAgICAgcG9pbnRzOiB7c2hvdzogdHJ1ZSwgcmFkaXVzOiAxfX07CisgICAgZnVuY3Rpb24g
bWFrZUxvd1Bsb3QoaWQsIGRhdGEpIHsgcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBtaW5NYXhP
cHRpb25zLCB7aWQ6IGlkLCBkYXRhOiBkYXRhfSk7IH0gICAgCisgICAgZnVuY3Rpb24gbWFrZUhp
Z2hQbG90KGZyb20sIHRvLCBmaWxsLCBkYXRhKSB7IHJldHVybiAkLmV4dGVuZCh0cnVlLCB7fSwg
bWluTWF4T3B0aW9ucywKKyAgICAgICAge2lkOiB0bywgZGF0YTogZGF0YSwgbGluZXM6IHtmaWxs
OiBmaWxsfSwgZmlsbEJldHdlZW46IGZyb219KTsgfQorCisgICAgdmFyIHBsb3REYXRhID0gWwor
ICAgICAgICBtYWtlTG93UGxvdCgnbWluJywgdGVzdFJlc3VsdHNNaW5bdGVzdE5hbWVdKSwKKyAg
ICAgICAgbWFrZUhpZ2hQbG90KCdtaW4nLCAnbWF4JywgMC4yLCB0ZXN0UmVzdWx0c01heFt0ZXN0
TmFtZV0pLAorICAgICAgICBtYWtlTG93UGxvdCgnLSYjOTYzOycsIHRlc3RSZXN1bHRzU3RkZXZM
b3dbdGVzdE5hbWVdKSwgLy8gc21hbGwgbGV0dGVyIHNnaW1hLgorICAgICAgICBtYWtlSGlnaFBs
b3QoJy0mIzk2MzsnLCAnKyYjOTYzOycsIDAuNCwgdGVzdFJlc3VsdHNTdGRldkhpZ2hbdGVzdE5h
bWVdKSwKKyAgICAgICAge2RhdGE6IGF2ZXJhZ2VzLCBjb2xvcjogY29sb3J9XTsKKworICAgIHZh
ciBwbG90Q29udGFpbmVyID0gc2VjdGlvbi5jaGlsZHJlbignLnBsb3QnKTsKKyAgICAkLnBsb3Qo
cGxvdENvbnRhaW5lciwgcGxvdERhdGEsIHsKKyAgICAgICAgeGF4aXM6IHsKKyAgICAgICAgICAg
IG1pbjogYXZlcmFnZXNbMF1bMF0gLSAwLjI1LAorICAgICAgICAgICAgbWF4OiBhdmVyYWdlc1th
dmVyYWdlcy5sZW5ndGggLSAxXVswXSArIDAuMjUsCisgICAgICAgICAgICB0aWNrU2l6ZTogMSwK
KyAgICAgICAgICAgIHRpY2tEZWNpbWFsczogMCwKKyAgICAgICAgICAgIHRpY2tGb3JtYXR0ZXI6
IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ID49IDAgPyB4IDogJyc7IH19LAorICAgICAgICB5YXhp
czoge30sCisgICAgICAgIGNyb3NzaGFpcjogeyBtb2RlOiAneScgfSwKKyAgICAgICAgc2VyaWVz
OiB7IHNoYWRvd1NpemU6IDAgfSwKKyAgICAgICAgbGluZXM6IHsgc2hvdzogZmFsc2UgfSwKKyAg
ICAgICAgcG9pbnRzOiB7IHNob3c6IHRydWUgfSwKKyAgICAgICAgZ3JpZDogeworICAgICAgICAg
ICAgYm9yZGVyV2lkdGg6IDIsCisgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJywK
KyAgICAgICAgICAgIGhvdmVyYWJsZTogdHJ1ZSwKKyAgICAgICAgICAgIGF1dG9IaWdobGlnaHQ6
IHRydWUsCisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHZhciB0b29sdGlwID0gc2VjdGlvbi5j
aGlsZHJlbignLnRvb2x0aXAnKTsKKyAgICBwbG90Q29udGFpbmVyLmJpbmQoJ3Bsb3Rob3Zlcics
IGZ1bmN0aW9uIChldmVudCwgcG9zaXRpb24sIGl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0pIHsK
KyAgICAgICAgICAgIHZhciBwb3N0Zml4ID0gaXRlbS5zZXJpZXMuaWQgPyAnICgnICsgaXRlbS5z
ZXJpZXMuaWQgKyAnKScgOiAnJzsKKyAgICAgICAgICAgIHRvb2x0aXAuaHRtbChpdGVtLmRhdGFw
b2ludFsxXS50b1ByZWNpc2lvbig0KSArIHBvc3RmaXgpOworICAgICAgICAgICAgdG9vbHRpcC5j
c3Moe2xlZnQ6IGl0ZW0ucGFnZVggLSB0b29sdGlwLm91dGVyV2lkdGgoKSAvIDIsIHRvcDogaXRl
bS5wYWdlWSArIDEwfSk7CisgICAgICAgICAgICB0b29sdGlwLmZhZGVJbigyMDApOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRvb2x0aXAuaGlkZSgpOworICAgIH0pOworfQorCit2YXIg
cmVzdWx0cyA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2pzb24nKS50ZXh0
Q29udGVudCk7Cit2YXIgdGVzdHMgPSBbXTsKK3ZhciB0ZXN0UmVzdWx0cyA9IHt9LCB0ZXN0UmVz
dWx0c01pbiA9IHt9LCB0ZXN0UmVzdWx0c01heCA9IHt9LCB0ZXN0UmVzdWx0c1N0ZGV2TG93ID0g
e30sIHRlc3RSZXN1bHRzU3RkZXZIaWdoID0ge307Cit2YXIgdGVzdFVuaXRzID0ge307CiskLmVh
Y2gocmVzdWx0cywgZnVuY3Rpb24gKGluZGV4LCBlbnRyeSkgeworICAgICQuZWFjaChlbnRyeS5y
ZXN1bHRzLCBmdW5jdGlvbiAodGVzdCwgcmVzdWx0KSB7CisgICAgICAgIGlmICh0ZXN0cy5pbmRl
eE9mKHRlc3QpIDwgMCkKKyAgICAgICAgICAgIHRlc3RzLnB1c2godGVzdCk7CisgICAgICAgIGlm
ICghdGVzdFJlc3VsdHNbdGVzdF0pIHsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzW3Rlc3RdID0g
W107CisgICAgICAgICAgICB0ZXN0UmVzdWx0c01pblt0ZXN0XSA9IFtdOworICAgICAgICAgICAg
dGVzdFJlc3VsdHNNYXhbdGVzdF0gPSBbXTsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzU3RkZXZM
b3dbdGVzdF0gPSBbXTsKKyAgICAgICAgICAgIHRlc3RSZXN1bHRzU3RkZXZIaWdoW3Rlc3RdID0g
W107CisgICAgICAgIH0KKyAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT0gJ251bWJlcicpCisg
ICAgICAgICAgICB0ZXN0UmVzdWx0c1t0ZXN0XS5wdXNoKFtpbmRleCwgcmVzdWx0XSk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgdGVzdFJlc3VsdHNbdGVzdF0ucHVzaChbaW5kZXgsIHJl
c3VsdFsnYXZnJ11dKTsKKyAgICAgICAgICAgIGlmICgnbWluJyBpbiByZXN1bHQpCisgICAgICAg
ICAgICAgICAgdGVzdFJlc3VsdHNNaW5bdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnbWluJ11d
KTsKKyAgICAgICAgICAgIGlmICgnbWF4JyBpbiByZXN1bHQpCisgICAgICAgICAgICAgICAgdGVz
dFJlc3VsdHNNYXhbdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnbWF4J11dKTsKKyAgICAgICAg
ICAgIGlmICgnc3RkZXYnIGluIHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHRlc3RSZXN1bHRz
U3RkZXZMb3dbdGVzdF0ucHVzaChbaW5kZXgsIHJlc3VsdFsnYXZnJ10gLSByZXN1bHRbJ3N0ZGV2
J11dKTsKKyAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0c1N0ZGV2SGlnaFt0ZXN0XS5wdXNoKFtp
bmRleCwgcmVzdWx0WydhdmcnXSArIHJlc3VsdFsnc3RkZXYnXV0pOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIHRlc3RVbml0c1t0ZXN0XSA9IHJlc3VsdC51bml0OworICAgIH0p
OworfSk7CiskLmVhY2godGVzdHMuc29ydCgpLCBmdW5jdGlvbiAoaW5kZXgsIHRlc3QpIHsgYXR0
YWNoUGxvdCh0ZXN0KTsgfSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzk1NykKKysrIFRvb2xzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA3LTI4ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHJ1bi1wZXJmLXRlc3RzIHNob3VsZCBnZW5l
cmF0ZSBhIHJlc3VsdHMgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB0aGUgYWJpbGl0eSB0byBnZW5lcmF0ZSBhIHJlc3VsdHMgcGFnZSB0
aGF0IHN1bW1hcml6ZXMgcGVyZm9ybWFuY2UgdGVzdCByZXN1bHRzIGZyb20KKyAgICAgICAgbXVs
dGlwbGUgcnVucyBvZiBydW4tcGVyZi10ZXN0cyB3aGVuIC0tb3V0cHV0LWpzb24tcGF0aCBpcyBz
cGVjaWZpZWQgYW5kIC0tdGVzdC1yZXN1bHRzLXNlcnZlcgorICAgICAgICBpcyBub3Qgc3BlY2lm
aWVkLiBXZSBjYW5ub3QgZ2VuZXJhdGUgYSByZXN1bHRzIHBhZ2Ugd2hlbiAtLXRlc3QtcmVzdWx0
cy1zZXJ2ZXIgaXMgc3BlY2lmaWVkCisgICAgICAgIGJlY2F1c2UgcGVyZi1vLW1hdGljIGNhbm5v
dCBwYXJzZSB0aGUgbmV3IEpTT04gZm9ybWF0LgorCisgICAgICAgIFRoZSBuZXcgSlNPTiBmb3Jt
YXQgaXMgc2ltcGx5IGFuIGFycmF5IG9mIHRoZSBvbGQgSlNPTiBvdXRwdXQuIFRoaXMgSlNPTiBp
cyB0aGVuIG1lcmdlZCBpbnRvCisgICAgICAgIHJlc3VsdHMtdGVtcGxhdGUuaHRtbCBhbG9uZyB3
aXRoIGpRdWVyeSBhbmQgY29waWVkIGFzIGEgSFRNTCBmaWxlIG9mIHRoZSBzYW1lIGZpbGVuYW1l
IGFzCisgICAgICAgIHRoZSBvdXRwdXQgSlNPTiBmaWxlIHdpdGggYSAuaHRtbCBleHRlbnNpb24u
CisKKyAgICAgICAgV2UgbWVyZ2UgYWxsIHNjcmlwdHMgYW5kIHRoZSBKU09OIG91dHB1dCBpbnRv
IHRoZSByZXN1bHRzIHBhZ2UgYXMgb3Bwb3NlZCB0byBpbmNsdWRpbmcgdGhlbQorICAgICAgICB3
aXRoIHRoZSBzcmMgY29udGVudCBhdHRyaWJ1dGUgdG8gbWFrZSBpdCBzdGFuZGFsb25lIHNvIHRo
YXQgd2UgbWF5IHBvc3QgaXQgb24gQnVnemlsbGEgb3IKKyAgICAgICAgZS1tYWlsIGl0IHRvIHNv
bWVvbmUgZWxzZSB3aXRob3V0IGJyZWFraW5nIGl0LgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXIucHk6CisgICAgICAgIChQZXJm
VGVzdHNSdW5uZXIucnVuKToKKyAgICAgICAgKFBlcmZUZXN0c1J1bm5lci5fZ2VuZXJhdGVfanNv
bik6IE1lcmdlICJjb250ZW50cyIgd2l0aCB0aGUgZXhpc3RpbmcgSlNPTiBmaWxlIHdoZW4gZ2Vu
ZXJhdGluZworICAgICAgICBhIHJlc3VsdHMgcGFnZSwgYW5kIGdlbmVyYXRlIHRoZSByZXN1bHRz
IHBhZ2UgZnJvbSByZXN1bHRzLXRlbXBsYXRlLmh0bWwgbWVyZ2VkIHdpdGggalF1ZXJ5IGFuZAor
ICAgICAgICB0aGUgZ2VuZXJhdGVkIEpTT04gb3V0cHV0LgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoX3Rlc3RfcnVuX3dpdGhfanNvbl9vdXRwdXQpOiBFeHRyYWN0ZWQgZnJvbSB0ZXN0X3J1
bl93aXRoX3VwbG9hZF9qc29uIHRvIGJlIHNoYXJlZCB3aXRoCisgICAgICAgIHNldmVyYWwgdGVz
dCBjYXNlcy4KKyAgICAgICAgKF90ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0Lm1vY2tfdXBsb2Fk
X2pzb24pOiBEaXR0by4KKyAgICAgICAgKHRlc3RfcnVuX3dpdGhfanNvbl9vdXRwdXQpOiBSZWZh
Y3RvcmVkIHRvIHVzZSBfdGVzdF9ydW5fd2l0aF9qc29uX291dHB1dC4KKyAgICAgICAgKHRlc3Rf
cnVuX2dlbmVyYXRlc19yZXN1bHRzX3BhZ2UpOiBBZGRlZC4gVGVzdHMgdGhlIG5ldyBmZWF0dXJl
LgorICAgICAgICAodGVzdF9ydW5fd2l0aF9qc29uX3NvdXJjZSk6IFJlZmFjdG9yZWQgdG8gdXNl
IF90ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0LgorICAgICAgICAodGVzdF9ydW5fd2l0aF9tdWx0
aXBsZV9yZXBvc2l0b3JpZXMpOiBEaXR0by4KKyAgICAgICAgKHRlc3RfcnVuX3dpdGhfdXBsb2Fk
X2pzb24pOiBEaXR0by4KKwogMjAxMi0wNy0yNyAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBTdXBwb3J0IGZvciBIVE1MIG1lZGlhIGNhcHR1
cmUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRl
c3RzcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9y
bWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyLnB5CShyZXZpc2lvbiAxMjM4NDApCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lci5weQko
d29ya2luZyBjb3B5KQpAQCAtMTU5LDE1ICsxNTksMjAgQEAgY2xhc3MgUGVyZlRlc3RzUnVubmVy
KG9iamVjdCk6CiAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHNfc2VydmVyID0gb3B0aW9ucy50ZXN0
X3Jlc3VsdHNfc2VydmVyCiAgICAgICAgICAgICBicmFuY2ggPSBzZWxmLl9kZWZhdWx0X2JyYW5j
aCBpZiB0ZXN0X3Jlc3VsdHNfc2VydmVyIGVsc2UgTm9uZQogICAgICAgICAgICAgYnVpbGRfbnVt
YmVyID0gaW50KG9wdGlvbnMuYnVpbGRfbnVtYmVyKSBpZiBvcHRpb25zLmJ1aWxkX251bWJlciBl
bHNlIE5vbmUKKwogICAgICAgICAgICAgaWYgbm90IHNlbGYuX2dlbmVyYXRlX2pzb24oc2VsZi5f
dGltZXN0YW1wLCBvcHRpb25zLm91dHB1dF9qc29uX3BhdGgsIG9wdGlvbnMuc291cmNlX2pzb25f
cGF0aCwKKyAgICAgICAgICAgICAgICBub3QgdGVzdF9yZXN1bHRzX3NlcnZlciwKICAgICAgICAg
ICAgICAgICBicmFuY2gsIG9wdGlvbnMucGxhdGZvcm0sIG9wdGlvbnMuYnVpbGRlcl9uYW1lLCBi
dWlsZF9udW1iZXIpIGFuZCBub3QgdW5leHBlY3RlZDoKICAgICAgICAgICAgICAgICByZXR1cm4g
c2VsZi5fRVhJVF9DT0RFX0JBRF9KU09OCisKICAgICAgICAgICAgIGlmIHRlc3RfcmVzdWx0c19z
ZXJ2ZXIgYW5kIG5vdCBzZWxmLl91cGxvYWRfanNvbih0ZXN0X3Jlc3VsdHNfc2VydmVyLCBvcHRp
b25zLm91dHB1dF9qc29uX3BhdGgpOgogICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9FWElU
X0NPREVfRkFJTEVEX1VQTE9BRElORwogCiAgICAgICAgIHJldHVybiB1bmV4cGVjdGVkCiAKLSAg
ICBkZWYgX2dlbmVyYXRlX2pzb24oc2VsZiwgdGltZXN0YW1wLCBvdXRwdXRfanNvbl9wYXRoLCBz
b3VyY2VfanNvbl9wYXRoLCBicmFuY2gsIHBsYXRmb3JtLCBidWlsZGVyX25hbWUsIGJ1aWxkX251
bWJlcik6CisgICAgZGVmIF9nZW5lcmF0ZV9qc29uKHNlbGYsIHRpbWVzdGFtcCwgb3V0cHV0X2pz
b25fcGF0aCwgc291cmNlX2pzb25fcGF0aCwgc2hvdWxkX2dlbmVyYXRlX3Jlc3VsdHNfcGFnZSwK
KyAgICAgICAgYnJhbmNoLCBwbGF0Zm9ybSwgYnVpbGRlcl9uYW1lLCBidWlsZF9udW1iZXIpOgor
CiAgICAgICAgIGNvbnRlbnRzID0geyd0aW1lc3RhbXAnOiBpbnQodGltZXN0YW1wKSwgJ3Jlc3Vs
dHMnOiBzZWxmLl9yZXN1bHRzfQogICAgICAgICBmb3IgKG5hbWUsIHBhdGgpIGluIHNlbGYuX3Bv
cnQucmVwb3NpdG9yeV9wYXRocygpOgogICAgICAgICAgICAgY29udGVudHNbbmFtZSArICctcmV2
aXNpb24nXSA9IHNlbGYuX2hvc3Quc2NtKCkuc3ZuX3JldmlzaW9uKHBhdGgpCkBAIC0xOTMsNyAr
MTk4LDI5IEBAIGNsYXNzIFBlcmZUZXN0c1J1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgaWYg
bm90IHN1Y2NlZWRlZDoKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgICAgICBm
aWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShvdXRwdXRfanNvbl9wYXRoLCBqc29uLmR1bXBzKGNv
bnRlbnRzKSkKKyAgICAgICAgaWYgc2hvdWxkX2dlbmVyYXRlX3Jlc3VsdHNfcGFnZToKKyAgICAg
ICAgICAgIGlmIGZpbGVzeXN0ZW0uaXNmaWxlKG91dHB1dF9qc29uX3BhdGgpOgorICAgICAgICAg
ICAgICAgIGV4aXN0aW5nX2NvbnRlbnRzID0ganNvbi5sb2FkcyhmaWxlc3lzdGVtLnJlYWRfdGV4
dF9maWxlKG91dHB1dF9qc29uX3BhdGgpKQorICAgICAgICAgICAgICAgIGV4aXN0aW5nX2NvbnRl
bnRzLmFwcGVuZChjb250ZW50cykKKyAgICAgICAgICAgICAgICBjb250ZW50cyA9IGV4aXN0aW5n
X2NvbnRlbnRzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbnRlbnRzID0g
W2NvbnRlbnRzXQorCisgICAgICAgIHNlcmlhbGl6ZWRfY29udGVudHMgPSBqc29uLmR1bXBzKGNv
bnRlbnRzKQorICAgICAgICBmaWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShvdXRwdXRfanNvbl9w
YXRoLCBzZXJpYWxpemVkX2NvbnRlbnRzKQorCisgICAgICAgIGlmIHNob3VsZF9nZW5lcmF0ZV9y
ZXN1bHRzX3BhZ2U6CisgICAgICAgICAgICBqcXVlcnlfcGF0aCA9IGZpbGVzeXN0ZW0uam9pbihz
ZWxmLl9wb3J0LnBlcmZfdGVzdHNfZGlyKCksICdEcm9tYWVvL3Jlc291cmNlcy9kcm9tYWVvL3dl
Yi9saWIvanF1ZXJ5LTEuNi40LmpzJykKKyAgICAgICAgICAgIGpxdWVyeSA9IGZpbGVzeXN0ZW0u
cmVhZF90ZXh0X2ZpbGUoanF1ZXJ5X3BhdGgpCisKKyAgICAgICAgICAgIHRlbXBsYXRlX3BhdGgg
PSBmaWxlc3lzdGVtLmpvaW4oc2VsZi5fcG9ydC5wZXJmX3Rlc3RzX2RpcigpLCAncmVzb3VyY2Vz
L3Jlc3VsdHMtdGVtcGxhdGUuaHRtbCcpCisgICAgICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVzeXN0
ZW0ucmVhZF90ZXh0X2ZpbGUodGVtcGxhdGVfcGF0aCkKKworICAgICAgICAgICAgcmVzdWx0c19w
YWdlID0gdGVtcGxhdGUucmVwbGFjZSgnPD9XZWJLaXRQZXJmVGVzdFJ1bm5lckluc2VydGlvblBv
aW50Pz4nLAorICAgICAgICAgICAgICAgICc8c2NyaXB0PiVzPC9zY3JpcHQ+PHNjcmlwdCBpZD0i
anNvbiI+JXM8L3NjcmlwdD4nICUgKGpxdWVyeSwgc2VyaWFsaXplZF9jb250ZW50cykpCisKKyAg
ICAgICAgICAgIGZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKGZpbGVzeXN0ZW0uc3BsaXRleHQo
b3V0cHV0X2pzb25fcGF0aClbMF0gKyAnLmh0bWwnLCByZXN1bHRzX3BhZ2UpCisKICAgICAgICAg
cmV0dXJuIFRydWUKIAogICAgIGRlZiBfdXBsb2FkX2pzb24oc2VsZiwgdGVzdF9yZXN1bHRzX3Nl
cnZlciwganNvbl9wYXRoLCBmaWxlX3VwbG9hZGVyPUZpbGVVcGxvYWRlcik6CkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl91bml0
dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNl
X3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl91bml0dGVzdC5weQkocmV2aXNpb24gMTIzODQwKQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJf
dW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIyNSwxMDEgKzIyNSwxMTEgQEAgbWF4IDEx
MjAKICAgICAgICAgJ21lZGlhbj0gMTEwMS4wIG1zLCBzdGRldj0gMTEuMCBtcywgbWluPSAxMDgw
LjAgbXMsIG1heD0gMTEyMC4wIG1zJywKICAgICAgICAgJycsICcnXSkpCiAKLSAgICBkZWYgdGVz
dF9ydW5fdGVzdF9zZXRfd2l0aF9qc29uX291dHB1dChzZWxmKToKLSAgICAgICAgcnVubmVyLCBw
b3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKGFyZ3M9WyctLW91dHB1dC1qc29uLXBhdGg9L21vY2st
Y2hlY2tvdXQvb3V0cHV0Lmpzb24nXSkKLSAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmls
ZXNbcnVubmVyLl9iYXNlX3BhdGggKyAnL2luc3BlY3Rvci9wYXNzLmh0bWwnXSA9IFRydWUKLSAg
ICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbcnVubmVyLl9iYXNlX3BhdGggKyAnL0Jp
bmRpbmdzL2V2ZW50LXRhcmdldC13cmFwcGVyLmh0bWwnXSA9IFRydWUKLSAgICAgICAgcnVubmVy
Ll90aW1lc3RhbXAgPSAxMjM0NTY3ODkKLSAgICAgICAgb3V0cHV0X2NhcHR1cmUgPSBPdXRwdXRD
YXB0dXJlKCkKLSAgICAgICAgb3V0cHV0X2NhcHR1cmUuY2FwdHVyZV9vdXRwdXQoKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwgMCkKLSAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyLCBsb2dzID0gb3V0cHV0
X2NhcHR1cmUucmVzdG9yZV9vdXRwdXQoKQorICAgIGRlZiBfdGVzdF9ydW5fd2l0aF9qc29uX291
dHB1dChzZWxmLCBydW5uZXIsIGZpbGVzeXN0ZW0sIHVwbG9hZF9zdWNlZWRzPVRydWUsIGV4cGVj
dGVkX2V4aXRfY29kZT0wKToKKyAgICAgICAgZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUocnVu
bmVyLl9iYXNlX3BhdGggKyAnL2luc3BlY3Rvci9wYXNzLmh0bWwnLCAnc29tZSBjb250ZW50JykK
KyAgICAgICAgZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUocnVubmVyLl9iYXNlX3BhdGggKyAn
L0JpbmRpbmdzL2V2ZW50LXRhcmdldC13cmFwcGVyLmh0bWwnLCAnc29tZSBjb250ZW50JykKIAot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZ3MsCi0gICAgICAgICAgICAnXG4nLmpvaW4oWydS
dW5uaW5nIDIgdGVzdHMnLAotICAgICAgICAgICAgICAgICAgICAgICAnUnVubmluZyBCaW5kaW5n
cy9ldmVudC10YXJnZXQtd3JhcHBlci5odG1sICgxIG9mIDIpJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgJ1JFU1VMVCBCaW5kaW5nczogZXZlbnQtdGFyZ2V0LXdyYXBwZXI9IDE0ODkuMDUgbXMn
LAotICAgICAgICAgICAgICAgICAgICAgICAnbWVkaWFuPSAxNDg3LjAgbXMsIHN0ZGV2PSAxNC40
NiBtcywgbWluPSAxNDcxLjAgbXMsIG1heD0gMTUxMC4wIG1zJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgJycsCi0gICAgICAgICAgICAgICAgICAgICAgICdSdW5uaW5nIGluc3BlY3Rvci9wYXNz
Lmh0bWwgKDIgb2YgMiknLAotICAgICAgICAgICAgICAgICAgICAgICAnUkVTVUxUIGdyb3VwX25h
bWU6IHRlc3RfbmFtZT0gNDIgbXMnLAotICAgICAgICAgICAgICAgICAgICAgICAnJywgJyddKSkK
KyAgICAgICAgdXBsb2FkZWQgPSBbRmFsc2VdCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChq
c29uLmxvYWRzKHBvcnQuaG9zdC5maWxlc3lzdGVtLmZpbGVzWycvbW9jay1jaGVja291dC9vdXRw
dXQuanNvbiddKSwgewotICAgICAgICAgICAgInRpbWVzdGFtcCI6IDEyMzQ1Njc4OSwgInJlc3Vs
dHMiOgotICAgICAgICAgICAgeyJCaW5kaW5ncy9ldmVudC10YXJnZXQtd3JhcHBlciI6IHsibWF4
IjogMTUxMCwgImF2ZyI6IDE0ODkuMDUsICJtZWRpYW4iOiAxNDg3LCAibWluIjogMTQ3MSwgInN0
ZGV2IjogMTQuNDYsICJ1bml0IjogIm1zIn0sCi0gICAgICAgICAgICAiaW5zcGVjdG9yL3Bhc3Mu
aHRtbDpncm91cF9uYW1lOnRlc3RfbmFtZSI6IDQyfSwKLSAgICAgICAgICAgICJ3ZWJraXQtcmV2
aXNpb24iOiA1Njc4fSkKKyAgICAgICAgZGVmIG1vY2tfdXBsb2FkX2pzb24oaG9zdG5hbWUsIGpz
b25fcGF0aCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhvc3RuYW1lLCAnc29tZS5o
b3N0JykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoanNvbl9wYXRoLCAnL21vY2stY2hl
Y2tvdXQvb3V0cHV0Lmpzb24nKQorICAgICAgICAgICAgdXBsb2FkZWRbMF0gPSBUcnVlCisgICAg
ICAgICAgICByZXR1cm4gdXBsb2FkX3N1Y2VlZHMKIAotICAgIGRlZiB0ZXN0X3J1bl90ZXN0X3Nl
dF93aXRoX2pzb25fc291cmNlKHNlbGYpOgotICAgICAgICBydW5uZXIsIHBvcnQgPSBzZWxmLmNy
ZWF0ZV9ydW5uZXIoYXJncz1bJy0tb3V0cHV0LWpzb24tcGF0aD0vbW9jay1jaGVja291dC9vdXRw
dXQuanNvbicsICctLXNvdXJjZS1qc29uLXBhdGg9L21vY2stY2hlY2tvdXQvc291cmNlLmpzb24n
XSkKLSAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbJy9tb2NrLWNoZWNrb3V0L3Nv
dXJjZS5qc29uJ10gPSAneyJrZXkiOiAidmFsdWUifScKLSAgICAgICAgcG9ydC5ob3N0LmZpbGVz
eXN0ZW0uZmlsZXNbcnVubmVyLl9iYXNlX3BhdGggKyAnL2luc3BlY3Rvci9wYXNzLmh0bWwnXSA9
IFRydWUKLSAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbcnVubmVyLl9iYXNlX3Bh
dGggKyAnL0JpbmRpbmdzL2V2ZW50LXRhcmdldC13cmFwcGVyLmh0bWwnXSA9IFRydWUKKyAgICAg
ICAgcnVubmVyLl91cGxvYWRfanNvbiA9IG1vY2tfdXBsb2FkX2pzb24KICAgICAgICAgcnVubmVy
Ll90aW1lc3RhbXAgPSAxMjM0NTY3ODkKICAgICAgICAgb3V0cHV0X2NhcHR1cmUgPSBPdXRwdXRD
YXB0dXJlKCkKICAgICAgICAgb3V0cHV0X2NhcHR1cmUuY2FwdHVyZV9vdXRwdXQoKQogICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwgMCkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnVubmVyLnJ1bigpLCBleHBlY3RlZF9leGl0X2Nv
ZGUpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzdGRvdXQsIHN0ZGVyciwgbG9ncyA9
IG91dHB1dF9jYXB0dXJlLnJlc3RvcmVfb3V0cHV0KCkKIAotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxvZ3MsICdcbicuam9pbihbJ1J1bm5pbmcgMiB0ZXN0cycsCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobG9ncywgJ1xuJy5qb2luKFsKKyAgICAgICAgICAgICdSdW5uaW5nIDIgdGVzdHMn
LAogICAgICAgICAgICAgJ1J1bm5pbmcgQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIuaHRt
bCAoMSBvZiAyKScsCiAgICAgICAgICAgICAnUkVTVUxUIEJpbmRpbmdzOiBldmVudC10YXJnZXQt
d3JhcHBlcj0gMTQ4OS4wNSBtcycsCiAgICAgICAgICAgICAnbWVkaWFuPSAxNDg3LjAgbXMsIHN0
ZGV2PSAxNC40NiBtcywgbWluPSAxNDcxLjAgbXMsIG1heD0gMTUxMC4wIG1zJywKICAgICAgICAg
ICAgICcnLAogICAgICAgICAgICAgJ1J1bm5pbmcgaW5zcGVjdG9yL3Bhc3MuaHRtbCAoMiBvZiAy
KScsCiAgICAgICAgICAgICAnUkVTVUxUIGdyb3VwX25hbWU6IHRlc3RfbmFtZT0gNDIgbXMnLAot
ICAgICAgICAgICAgJycsICcnXSkpCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICcnXSkp
CisKKyAgICAgICAgcmV0dXJuIHVwbG9hZGVkWzBdCiAKKyAgICBkZWYgdGVzdF9ydW5fd2l0aF9q
c29uX291dHB1dChzZWxmKToKKyAgICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVu
bmVyKGFyZ3M9WyctLW91dHB1dC1qc29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24n
LAorICAgICAgICAgICAgJy0tdGVzdC1yZXN1bHRzLXNlcnZlcj1zb21lLmhvc3QnXSkKKyAgICAg
ICAgc2VsZi5fdGVzdF9ydW5fd2l0aF9qc29uX291dHB1dChydW5uZXIsIHBvcnQuaG9zdC5maWxl
c3lzdGVtKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24ubG9hZHMocG9ydC5ob3N0LmZp
bGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoJy9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJykpLCB7
CisgICAgICAgICAgICAidGltZXN0YW1wIjogMTIzNDU2Nzg5LCAicmVzdWx0cyI6CisgICAgICAg
ICAgICB7IkJpbmRpbmdzL2V2ZW50LXRhcmdldC13cmFwcGVyIjogeyJtYXgiOiAxNTEwLCAiYXZn
IjogMTQ4OS4wNSwgIm1lZGlhbiI6IDE0ODcsICJtaW4iOiAxNDcxLCAic3RkZXYiOiAxNC40Niwg
InVuaXQiOiAibXMifSwKKyAgICAgICAgICAgICJpbnNwZWN0b3IvcGFzcy5odG1sOmdyb3VwX25h
bWU6dGVzdF9uYW1lIjogNDJ9LAorICAgICAgICAgICAgIndlYmtpdC1yZXZpc2lvbiI6IDU2Nzgs
ICJicmFuY2giOiAid2Via2l0LXRydW5rIn0pCisKKyAgICBkZWYgdGVzdF9ydW5fZ2VuZXJhdGVz
X3Jlc3VsdHNfcGFnZShzZWxmKToKKyAgICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVf
cnVubmVyKGFyZ3M9WyctLW91dHB1dC1qc29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpz
b24nXSkKKyAgICAgICAgZmlsZXN5c3RlbSA9IHBvcnQuaG9zdC5maWxlc3lzdGVtCisgICAgICAg
IHByaW50IHJ1bm5lci5fYmFzZV9wYXRoICsgJy9yZXNvdXJjZXMvcmVzdWx0cy10ZW1wbGF0ZS5o
dG1sJworICAgICAgICBmaWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShydW5uZXIuX2Jhc2VfcGF0
aCArICcvcmVzb3VyY2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRtbCcsCisgICAgICAgICAgICAnQkVH
SU48P1dlYktpdFBlcmZUZXN0UnVubmVySW5zZXJ0aW9uUG9pbnQ/PkVORCcpCisgICAgICAgIGZp
bGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHJ1bm5lci5fYmFzZV9wYXRoICsgJy9Ecm9tYWVvL3Jl
c291cmNlcy9kcm9tYWVvL3dlYi9saWIvanF1ZXJ5LTEuNi40LmpzJywKKyAgICAgICAgICAgICdq
cXVlcnkgY29udGVudCcpCisKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fd2l0aF9qc29uX291dHB1
dChydW5uZXIsIGZpbGVzeXN0ZW0pCisKKyAgICAgICAgZXhwZWN0ZWRfZW50cnkgPSB7InRpbWVz
dGFtcCI6IDEyMzQ1Njc4OSwgInJlc3VsdHMiOiB7IkJpbmRpbmdzL2V2ZW50LXRhcmdldC13cmFw
cGVyIjoKKyAgICAgICAgICAgIHsibWF4IjogMTUxMCwgImF2ZyI6IDE0ODkuMDUsICJtZWRpYW4i
OiAxNDg3LCAibWluIjogMTQ3MSwgInN0ZGV2IjogMTQuNDYsICJ1bml0IjogIm1zIn0sCisgICAg
ICAgICAgICAiaW5zcGVjdG9yL3Bhc3MuaHRtbDpncm91cF9uYW1lOnRlc3RfbmFtZSI6IDQyfSwg
IndlYmtpdC1yZXZpc2lvbiI6IDU2Nzh9CisKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQor
ICAgICAgICBqc29uX291dHB1dCA9IHBvcnQuaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxl
KCcvbW9jay1jaGVja291dC9vdXRwdXQuanNvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
anNvbi5sb2Fkcyhqc29uX291dHB1dCksIFtleHBlY3RlZF9lbnRyeV0pCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL21vY2stY2hlY2tvdXQvb3V0
cHV0Lmh0bWwnKSwKKyAgICAgICAgICAgICdCRUdJTjxzY3JpcHQ+anF1ZXJ5IGNvbnRlbnQ8L3Nj
cmlwdD48c2NyaXB0IGlkPSJqc29uIj4nICsganNvbl9vdXRwdXQgKyAnPC9zY3JpcHQ+RU5EJykK
KworICAgICAgICBzZWxmLl90ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0KHJ1bm5lciwgZmlsZXN5
c3RlbSkKKyAgICAgICAganNvbl9vdXRwdXQgPSBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5yZWFkX3Rl
eHRfZmlsZSgnL21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGpzb24ubG9hZHMoanNvbl9vdXRwdXQpLCBbZXhwZWN0ZWRfZW50cnksIGV4cGVjdGVk
X2VudHJ5XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLnJlYWRfdGV4dF9m
aWxlKCcvbW9jay1jaGVja291dC9vdXRwdXQuaHRtbCcpLAorICAgICAgICAgICAgJ0JFR0lOPHNj
cmlwdD5qcXVlcnkgY29udGVudDwvc2NyaXB0PjxzY3JpcHQgaWQ9Impzb24iPicgKyBqc29uX291
dHB1dCArICc8L3NjcmlwdD5FTkQnKQorCisgICAgZGVmIHRlc3RfcnVuX3dpdGhfanNvbl9zb3Vy
Y2Uoc2VsZik6CisgICAgICAgIHJ1bm5lciwgcG9ydCA9IHNlbGYuY3JlYXRlX3J1bm5lcihhcmdz
PVsnLS1vdXRwdXQtanNvbi1wYXRoPS9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJywKKyAgICAg
ICAgICAgICctLXNvdXJjZS1qc29uLXBhdGg9L21vY2stY2hlY2tvdXQvc291cmNlLmpzb24nLCAn
LS10ZXN0LXJlc3VsdHMtc2VydmVyPXNvbWUuaG9zdCddKQorICAgICAgICBwb3J0Lmhvc3QuZmls
ZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoJy9tb2NrLWNoZWNrb3V0L3NvdXJjZS5qc29uJywgJ3si
a2V5IjogInZhbHVlIn0nKQorICAgICAgICBzZWxmLl90ZXN0X3J1bl93aXRoX2pzb25fb3V0cHV0
KHJ1bm5lciwgcG9ydC5ob3N0LmZpbGVzeXN0ZW0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
anNvbi5sb2Fkcyhwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1snL21vY2stY2hlY2tvdXQvb3V0
cHV0Lmpzb24nXSksIHsKICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAxMjM0NTY3ODksICJyZXN1
bHRzIjoKICAgICAgICAgICAgIHsiQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIiOiB7Im1h
eCI6IDE1MTAsICJhdmciOiAxNDg5LjA1LCAibWVkaWFuIjogMTQ4NywgIm1pbiI6IDE0NzEsICJz
dGRldiI6IDE0LjQ2LCAidW5pdCI6ICJtcyJ9LAogICAgICAgICAgICAgImluc3BlY3Rvci9wYXNz
Lmh0bWw6Z3JvdXBfbmFtZTp0ZXN0X25hbWUiOiA0Mn0sCi0gICAgICAgICAgICAid2Via2l0LXJl
dmlzaW9uIjogNTY3OCwKKyAgICAgICAgICAgICJ3ZWJraXQtcmV2aXNpb24iOiA1Njc4LCAiYnJh
bmNoIjogIndlYmtpdC10cnVuayIsCiAgICAgICAgICAgICAia2V5IjogInZhbHVlIn0pCiAKLSAg
ICBkZWYgdGVzdF9ydW5fdGVzdF9zZXRfd2l0aF9tdWx0aXBsZV9yZXBvc2l0b3JpZXMoc2VsZik6
Ci0gICAgICAgIHJ1bm5lciwgcG9ydCA9IHNlbGYuY3JlYXRlX3J1bm5lcihhcmdzPVsnLS1vdXRw
dXQtanNvbi1wYXRoPS9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJ10pCi0gICAgICAgIHBvcnQu
aG9zdC5maWxlc3lzdGVtLmZpbGVzW3J1bm5lci5fYmFzZV9wYXRoICsgJy9pbnNwZWN0b3IvcGFz
cy5odG1sJ10gPSBUcnVlCi0gICAgICAgIHJ1bm5lci5fdGltZXN0YW1wID0gMTIzNDU2Nzg5Cisg
ICAgZGVmIHRlc3RfcnVuX3dpdGhfbXVsdGlwbGVfcmVwb3NpdG9yaWVzKHNlbGYpOgorICAgICAg
ICBydW5uZXIsIHBvcnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoYXJncz1bJy0tb3V0cHV0LWpzb24t
cGF0aD0vbW9jay1jaGVja291dC9vdXRwdXQuanNvbicsCisgICAgICAgICAgICAnLS10ZXN0LXJl
c3VsdHMtc2VydmVyPXNvbWUuaG9zdCddKQogICAgICAgICBwb3J0LnJlcG9zaXRvcnlfcGF0aHMg
PSBsYW1iZGE6IFsoJ3dlYmtpdCcsICcvbW9jay1jaGVja291dCcpLCAoJ3NvbWUnLCAnL21vY2st
Y2hlY2tvdXQvc29tZScpXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwg
MCkKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fd2l0aF9qc29uX291dHB1dChydW5uZXIsIHBvcnQu
aG9zdC5maWxlc3lzdGVtKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24ubG9hZHMocG9y
dC5ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbJy9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJ10pLCB7
Ci0gICAgICAgICAgICAidGltZXN0YW1wIjogMTIzNDU2Nzg5LCAicmVzdWx0cyI6IHsiaW5zcGVj
dG9yL3Bhc3MuaHRtbDpncm91cF9uYW1lOnRlc3RfbmFtZSI6IDQyLjB9LCAid2Via2l0LXJldmlz
aW9uIjogNTY3OCwgInNvbWUtcmV2aXNpb24iOiA1Njc4fSkKKyAgICAgICAgICAgICJ0aW1lc3Rh
bXAiOiAxMjM0NTY3ODksICJyZXN1bHRzIjoKKyAgICAgICAgICAgIHsiQmluZGluZ3MvZXZlbnQt
dGFyZ2V0LXdyYXBwZXIiOiB7Im1heCI6IDE1MTAsICJhdmciOiAxNDg5LjA1LCAibWVkaWFuIjog
MTQ4NywgIm1pbiI6IDE0NzEsICJzdGRldiI6IDE0LjQ2LCAidW5pdCI6ICJtcyJ9LAorICAgICAg
ICAgICAgImluc3BlY3Rvci9wYXNzLmh0bWw6Z3JvdXBfbmFtZTp0ZXN0X25hbWUiOiA0Mi4wfSwK
KyAgICAgICAgICAgICJ3ZWJraXQtcmV2aXNpb24iOiA1Njc4LCAic29tZS1yZXZpc2lvbiI6IDU2
NzgsICJicmFuY2giOiAid2Via2l0LXRydW5rIn0pCiAKICAgICBkZWYgdGVzdF9ydW5fd2l0aF91
cGxvYWRfanNvbihzZWxmKToKICAgICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVu
bmVyKGFyZ3M9WyctLW91dHB1dC1qc29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24n
LAogICAgICAgICAgICAgJy0tdGVzdC1yZXN1bHRzLXNlcnZlcicsICdzb21lLmhvc3QnLCAnLS1w
bGF0Zm9ybScsICdwbGF0Zm9ybTEnLCAnLS1idWlsZGVyLW5hbWUnLCAnYnVpbGRlcjEnLCAnLS1i
dWlsZC1udW1iZXInLCAnMTIzJ10pCi0gICAgICAgIHVwbG9hZF9qc29uX2lzX2NhbGxlZCA9IFtG
YWxzZV0KLSAgICAgICAgdXBsb2FkX2pzb25fcmV0dXJuc190cnVlID0gVHJ1ZQogCi0gICAgICAg
IGRlZiBtb2NrX3VwbG9hZF9qc29uKGhvc3RuYW1lLCBqc29uX3BhdGgpOgotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChob3N0bmFtZSwgJ3NvbWUuaG9zdCcpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGpzb25fcGF0aCwgJy9tb2NrLWNoZWNrb3V0L291dHB1dC5qc29uJykKLSAg
ICAgICAgICAgIHVwbG9hZF9qc29uX2lzX2NhbGxlZFswXSA9IFRydWUKLSAgICAgICAgICAgIHJl
dHVybiB1cGxvYWRfanNvbl9yZXR1cm5zX3RydWUKLQotICAgICAgICBydW5uZXIuX3VwbG9hZF9q
c29uID0gbW9ja191cGxvYWRfanNvbgotICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxl
c1snL21vY2stY2hlY2tvdXQvc291cmNlLmpzb24nXSA9ICd7ImtleSI6ICJ2YWx1ZSJ9JwotICAg
ICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1tydW5uZXIuX2Jhc2VfcGF0aCArICcvaW5z
cGVjdG9yL3Bhc3MuaHRtbCddID0gVHJ1ZQotICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5m
aWxlc1tydW5uZXIuX2Jhc2VfcGF0aCArICcvQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIu
aHRtbCddID0gVHJ1ZQotICAgICAgICBydW5uZXIuX3RpbWVzdGFtcCA9IDEyMzQ1Njc4OQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwgMCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh1cGxvYWRfanNvbl9pc19jYWxsZWRbMF0sIFRydWUpCisgICAgICAgIHNlbGYuX3Rl
c3RfcnVuX3dpdGhfanNvbl9vdXRwdXQocnVubmVyLCBwb3J0Lmhvc3QuZmlsZXN5c3RlbSwgdXBs
b2FkX3N1Y2VlZHM9VHJ1ZSkKICAgICAgICAgZ2VuZXJhdGVkX2pzb24gPSBqc29uLmxvYWRzKHBv
cnQuaG9zdC5maWxlc3lzdGVtLmZpbGVzWycvbW9jay1jaGVja291dC9vdXRwdXQuanNvbiddKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdlbmVyYXRlZF9qc29uWydwbGF0Zm9ybSddLCAncGxh
dGZvcm0xJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZW5lcmF0ZWRfanNvblsnYnVpbGRl
ci1uYW1lJ10sICdidWlsZGVyMScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2VuZXJhdGVk
X2pzb25bJ2J1aWxkLW51bWJlciddLCAxMjMpCi0gICAgICAgIHVwbG9hZF9qc29uX3JldHVybnNf
dHJ1ZSA9IEZhbHNlCiAKLSAgICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVy
KGFyZ3M9WyctLW91dHB1dC1qc29uLXBhdGg9L21vY2stY2hlY2tvdXQvb3V0cHV0Lmpzb24nLAot
ICAgICAgICAgICAgJy0tdGVzdC1yZXN1bHRzLXNlcnZlcicsICdzb21lLmhvc3QnLCAnLS1wbGF0
Zm9ybScsICdwbGF0Zm9ybTEnLCAnLS1idWlsZGVyLW5hbWUnLCAnYnVpbGRlcjEnLCAnLS1idWls
ZC1udW1iZXInLCAnMTIzJ10pCi0gICAgICAgIHJ1bm5lci5fdXBsb2FkX2pzb24gPSBtb2NrX3Vw
bG9hZF9qc29uCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnVubmVyLnJ1bigpLCAtMykKKyAg
ICAgICAgc2VsZi5fdGVzdF9ydW5fd2l0aF9qc29uX291dHB1dChydW5uZXIsIHBvcnQuaG9zdC5m
aWxlc3lzdGVtLCB1cGxvYWRfc3VjZWVkcz1GYWxzZSwgZXhwZWN0ZWRfZXhpdF9jb2RlPS0zKQog
CiAgICAgZGVmIHRlc3RfdXBsb2FkX2pzb24oc2VsZik6CiAgICAgICAgIHJ1bm5lciwgcG9ydCA9
IHNlbGYuY3JlYXRlX3J1bm5lcigpCg==
</data>
<flag name="review"
          id="164524"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>