<?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>127606</bug_id>
          
          <creation_ts>2014-01-24 20:30:55 -0800</creation_ts>
          <short_desc>Create some latched scrolling tests</short_desc>
          <delta_ts>2014-05-19 11:10:49 -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>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>128781</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jonlee</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971878</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-24 20:30:55 -0800</bug_when>
    <thetext>Our current test infrastructure doesn&apos;t guard against changes in latching behavior. Extend the test system to cover this region of the system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972246</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-26 13:47:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/15911348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980446</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-13 14:15:11 -0800</bug_when>
    <thetext>Extend the test system EventSender with a new method to send wheel events (including momentum phase). Also create a new set of tests that use this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980453</commentid>
    <comment_count>3</comment_count>
      <attachid>224110</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-13 14:29:11 -0800</bug_when>
    <thetext>Created attachment 224110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980513</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-13 16:13:07 -0800</bug_when>
    <thetext>The #defines for wheel event symbol were not included in CGEventTypes.h as API until 10.9. I&apos;ll just provide equivalent definitions for OS 10.8 and prior, which we can remove once we stop supporting that build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980514</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-13 16:16:29 -0800</bug_when>
    <thetext>On second thought, since I already use the ordinals in the WK2 handler (to avoid pulling in a bunch of Cocoa headers), I&apos;ll just use the same implementation in the WK1 handler and avoid the issue altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980519</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-13 16:17:48 -0800</bug_when>
    <thetext>Committed r164073: &lt;http://trac.webkit.org/changeset/164073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980553</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-13 17:36:16 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 128781</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980575</commentid>
    <comment_count>8</comment_count>
      <attachid>224139</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-13 18:02:45 -0800</bug_when>
    <thetext>Created attachment 224139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980611</commentid>
    <comment_count>9</comment_count>
      <attachid>224151</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-13 20:02:24 -0800</bug_when>
    <thetext>Created attachment 224151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980612</commentid>
    <comment_count>10</comment_count>
      <attachid>224152</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-13 20:09:05 -0800</bug_when>
    <thetext>Created attachment 224152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980849</commentid>
    <comment_count>11</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-14 10:02:07 -0800</bug_when>
    <thetext>Committed r164105: &lt;http://trac.webkit.org/changeset/164105&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981119</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-15 00:14:36 -0800</bug_when>
    <thetext>This patch caused a fatal CQ failure because CQ bots had 10.9 SDK installed, which meant that kCGScrollWheelEventMomentumPhase was defined in headers.

Used MAC_OS_X_VERSION_MAX_ALLOWED instead of work around this in http://trac.webkit.org/changeset/164159</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981186</commentid>
    <comment_count>13</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-15 10:58:02 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; This patch caused a fatal CQ failure because CQ bots had 10.9 SDK installed, which meant that kCGScrollWheelEventMomentumPhase was defined in headers.
&gt; 
&gt; Used MAC_OS_X_VERSION_MAX_ALLOWED instead of work around this in http://trac.webkit.org/changeset/164159

Thank you for tracking this down. Sorry for the inconvenience. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010228</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-19 10:54:17 -0700</bug_when>
    <thetext>These tests fail on WebKit2 bots: http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK2%20(Tests)/r169047%20(4750)/results.html

This is not reported correctly, because the tests fail on first try, and then can&apos;t find pixel results on retry. The reason why it tries pixel tests is that there is a call to testRunner.dumpAsText(true) instead of testRunner.dumpAsText(). &quot;true&quot; is a crazy option that means that we&apos;ll dump as text, but then make pixel results too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010234</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-19 11:10:49 -0700</bug_when>
    <thetext>Some of these fail because of zalan&apos;s offsetWidth changes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224110</attachid>
            <date>2014-02-13 14:29:11 -0800</date>
            <delta_ts>2014-02-13 18:02:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127606-20140213142909.patch</filename>
            <type>text/plain</type>
            <size>163783</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2NDA1NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDE0LTAyLTEzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgorCisgICAgICAgIENyZWF0ZSBzb21lIGxhdGNoZWQgc2Nyb2xsaW5nIHRlc3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjA2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xNTkxMTM0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250
cm9sbGVyLm1tOgorICAgICAgICAoK1tFdmVudFNlbmRpbmdDb250cm9sbGVyIGlzU2VsZWN0b3JF
eGNsdWRlZEZyb21XZWJTY3JpcHQ6XSk6IFVwZGF0ZSB0byByZWNvZ25pemUKKyAgICAgICAgdGhl
IG5ldyAibW91c2VTY3JvbGxCeVg6YW5kWTp3aXRoV2hlZWw6YW5kTW9tZW50dW1QaGFzZXM6IiBz
ZWxlY3Rvci4KKyAgICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciB3ZWJTY3JpcHROYW1l
Rm9yU2VsZWN0b3I6XSk6IERpdHRvLgorICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250cm9sbGVy
IG1vdXNlU2Nyb2xsQnlYOmFuZFk6d2l0aFdoZWVsOmFuZE1vbWVudHVtUGhhc2VzOl0pOiBJbXBs
ZW1lbnQKKyAgICAgICAgdGhlIG5ldyB3aGVlbCBldmVudCBzZW5kZXIuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbDog
QWRkIGRlY2xhcmF0aW9uCisgICAgICAgIG9mIG5ldyBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMgbWV0aG9kLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkV2ZW50
U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cyk6IEFkZGVkCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVu
dFNlbmRpbmdDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbToKKyAgICAgICAgKFdUUjo6RXZlbnRT
ZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKTogQWRk
IHN0dWIgZm9yIGlPUy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJv
bUluamVjdGVkQnVuZGxlKTogSGFuZGxlIHRoZSBuZXcKKyAgICAgICAgbW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIG1lc3NhZ2UuCisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKTog
SGFuZGxlIHRoZQorICAgICAgICBuZXcgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlF
ZmwuY3BwOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMpOiBQcm92aWRlIHN0dWIgdGhhdAorICAgICAgICByZWxh
eXMgdG8gdGhlIHN0YW5kYXJkIG1vdXNlIHdoZWVsIGhhbmRsZXIuCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHA6CisgICAgICAgIChXVFI6OkV2
ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyk6
IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHku
bW06CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyk6IFByb3ZpZGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2Yg
bW91c2Ugd2hlZWwgZ2VzdHVyZSBtZXRob2QuCisKIDIwMTQtMDItMTMgIEFsZXhleSBQcm9za3Vy
eWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gQWRkIGEgV2ViS2l0MSBTUEkg
dG8gZ2V0IFdlYkNyeXB0byBtYXN0ZXIga2V5IGZyb20gYSBjbGllbnQKSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCShyZXZp
c2lvbiAxNjM5OTkpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29u
dHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBKb25hcyBX
aXR0IDxqb25hcy53aXR0QGdtYWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwg
V2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwNiBBbGV4
ZXkgUHJvc2t1cnlha292IDxhcEBueXBvcC5jb20+CkBAIC0yMDIsNiArMjAyLDcgQEAgKyAoQk9P
TClpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2NyaXB0OgogICAgICAgICAgICAgfHwgYVNlbGVj
dG9yID09IEBzZWxlY3Rvcih6b29tUGFnZU91dCkKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9
PSBAc2VsZWN0b3Ioc2NhbGVQYWdlQnk6YXRYOmFuZFk6KQogICAgICAgICAgICAgfHwgYVNlbGVj
dG9yID09IEBzZWxlY3Rvcihtb3VzZVNjcm9sbEJ5WDphbmRZOikKKyAgICAgICAgICAgIHx8IGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IobW91c2VTY3JvbGxCeVg6YW5kWTp3aXRoV2hlZWw6YW5kTW9t
ZW50dW1QaGFzZXM6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihjb250
aW51b3VzTW91c2VTY3JvbGxCeVg6YW5kWTopCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAg
ICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihhZGRUb3VjaEF0WDp5OikKQEAgLTI1NCw2ICsy
NTUsOCBAQCArIChOU1N0cmluZyAqKXdlYlNjcmlwdE5hbWVGb3JTZWxlY3RvcjooCiAgICAgICAg
IHJldHVybiBAInNldERyYWdNb2RlIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvciht
b3VzZVNjcm9sbEJ5WDphbmRZOikpCiAgICAgICAgIHJldHVybiBAIm1vdXNlU2Nyb2xsQnkiOwor
ICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlU2Nyb2xsQnlYOmFuZFk6d2l0aFdo
ZWVsOmFuZE1vbWVudHVtUGhhc2VzOikpCisgICAgICAgIHJldHVybiBAIm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyI7CiAgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0
b3IoY29udGludW91c01vdXNlU2Nyb2xsQnlYOmFuZFk6KSkKICAgICAgICAgcmV0dXJuIEAiY29u
dGludW91c01vdXNlU2Nyb2xsQnkiOwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNj
YWxlUGFnZUJ5OmF0WDphbmRZOikpCkBAIC02OTksNiArNzAyLDUyIEBAIC0gKHZvaWQpbW91c2VT
Y3JvbGxCeVg6KGludCl4IGFuZFk6KGludCkKICAgICBbc2VsZiBtb3VzZVNjcm9sbEJ5WDp4IGFu
ZFk6eSBjb250aW51b3VzbHk6Tk9dOwogfQogCistICh2b2lkKW1vdXNlU2Nyb2xsQnlYOihpbnQp
eCBhbmRZOihpbnQpeSB3aXRoV2hlZWw6KE5TU3RyaW5nKilwaGFzZU5hbWUgYW5kTW9tZW50dW1Q
aGFzZXM6KE5TU3RyaW5nKiltb21lbnR1bU5hbWUKK3sKKyNpZiAhUExBVEZPUk0oSU9TKQorICAg
IENHU2Nyb2xsUGhhc2UgcGhhc2UgPSAwOworICAgIGlmIChbcGhhc2VOYW1lIGlzRXF1YWxUb1N0
cmluZzogQCJub25lIl0pCisgICAgICAgIHBoYXNlID0gMDsKKyAgICBlbHNlIGlmIChbcGhhc2VO
YW1lIGlzRXF1YWxUb1N0cmluZzogQCJiZWdhbiJdKQorICAgICAgICBwaGFzZSA9IGtDR1Njcm9s
bFBoYXNlQmVnYW47CisgICAgZWxzZSBpZiAoW3BoYXNlTmFtZSBpc0VxdWFsVG9TdHJpbmc6IEAi
Y2hhbmdlZCJdKQorICAgICAgICBwaGFzZSA9IGtDR1Njcm9sbFBoYXNlQ2hhbmdlZDsKKyAgICBl
bHNlIGlmIChbcGhhc2VOYW1lIGlzRXF1YWxUb1N0cmluZzogQCJlbmRlZCJdKQorICAgICAgICBw
aGFzZSA9IGtDR1Njcm9sbFBoYXNlRW5kZWQ7CisgICAgZWxzZSBpZiAoW3BoYXNlTmFtZSBpc0Vx
dWFsVG9TdHJpbmc6IEAiY2FuY2VsbGVkIl0pCisgICAgICAgIHBoYXNlID0ga0NHU2Nyb2xsUGhh
c2VDYW5jZWxsZWQ7CisgICAgZWxzZSBpZiAoW3BoYXNlTmFtZSBpc0VxdWFsVG9TdHJpbmc6IEAi
bWF5YmVnaW4iXSkKKyAgICAgICAgcGhhc2UgPSBrQ0dTY3JvbGxQaGFzZU1heUJlZ2luOworCisg
ICAgQ0dNb21lbnR1bVNjcm9sbFBoYXNlIG1vbWVudHVtID0gMDsKKyAgICBpZiAoW21vbWVudHVt
TmFtZSBpc0VxdWFsVG9TdHJpbmc6IEAibm9uZSJdKQorICAgICAgICBtb21lbnR1bSA9IGtDR01v
bWVudHVtU2Nyb2xsUGhhc2VOb25lOworICAgIGVsc2UgaWYgKFttb21lbnR1bU5hbWUgaXNFcXVh
bFRvU3RyaW5nOkAiYmVnaW4iXSkKKyAgICAgICAgbW9tZW50dW0gPSBrQ0dNb21lbnR1bVNjcm9s
bFBoYXNlQmVnaW47CisgICAgZWxzZSBpZiAoW21vbWVudHVtTmFtZSBpc0VxdWFsVG9TdHJpbmc6
QCJjb250aW51ZSJdKQorICAgICAgICBtb21lbnR1bSA9IGtDR01vbWVudHVtU2Nyb2xsUGhhc2VD
b250aW51ZTsKKyAgICBlbHNlIGlmIChbbW9tZW50dW1OYW1lIGlzRXF1YWxUb1N0cmluZzpAImVu
ZCJdKQorICAgICAgICBtb21lbnR1bSA9IGtDR01vbWVudHVtU2Nyb2xsUGhhc2VFbmQ7CisKKyAg
ICBDR0V2ZW50UmVmIGNnU2Nyb2xsRXZlbnQgPSBDR0V2ZW50Q3JlYXRlU2Nyb2xsV2hlZWxFdmVu
dChOVUxMLCBrQ0dTY3JvbGxFdmVudFVuaXRMaW5lLCAyLCB5LCB4KTsKKworICAgIC8vIENHRXZl
bnQgbG9jYXRpb25zIGFyZSBpbiBnbG9iYWwgZGlzcGxheSBjb29yZGluYXRlcy4KKyAgICBDR1Bv
aW50IGxhc3RHbG9iYWxNb3VzZVBvc2l0aW9uID0gQ0dQb2ludE1ha2UobGFzdE1vdXNlUG9zaXRp
b24ueCwgW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBsYXN0TW91
c2VQb3NpdGlvbi55KTsKKyAgICBDR0V2ZW50U2V0TG9jYXRpb24oY2dTY3JvbGxFdmVudCwgbGFz
dEdsb2JhbE1vdXNlUG9zaXRpb24pOworICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChj
Z1Njcm9sbEV2ZW50LCBrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UsIHBoYXNlKTsKKyAg
ICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dTY3JvbGxFdmVudCwga0NHU2Nyb2xsV2hl
ZWxFdmVudE1vbWVudHVtUGhhc2UsIG1vbWVudHVtKTsKKyAgICAKKyAgICBOU0V2ZW50KiBzY3Jv
bGxFdmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0aENHRXZlbnQ6Y2dTY3JvbGxFdmVudF07CisgICAg
Q0ZSZWxlYXNlKGNnU2Nyb2xsRXZlbnQpOworCisgICAgaWYgKE5TVmlldyogdGFyZ2V0VmlldyA9
IFtbbWFpbkZyYW1lIHdlYlZpZXddIGhpdFRlc3Q6W3Njcm9sbEV2ZW50IGxvY2F0aW9uSW5XaW5k
b3ddXSkgeworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpzY3JvbGxFdmVudF07Cisg
ICAgICAgIFt0YXJnZXRWaWV3IHNjcm9sbFdoZWVsOnNjcm9sbEV2ZW50XTsKKyAgICAgICAgW05T
QXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKyAgICB9CisjZW5kaWYKK30KKwogLSAoTlNBcnJh
eSAqKWNvbnRleHRDbGljawogewogI2lmICFQTEFURk9STShJT1MpCkluZGV4OiBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAkocmV2aXNpb24gMTYzOTk5KQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjAs
NiArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3VzZVVwKHVuc2lnbmVkIGJ1dHRvbiwgV0tF
dmVudE1vZGlmaWVycyk7CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkp
OwogICAgIHZvaWQgbW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHkpOworICAgIHZvaWQgbW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNl
LCBpbnQgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50IHgs
IGludCB5LCBib29sIHBhZ2VkKTsKIAogICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vj
b25kcyk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gMTYzOTk5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTg1Niw2ICs4NTYsMjUgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUs
ICJNb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMiKSkgeworICAgICAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHhLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJYIikpOworICAgICAgICAgICAgZG91YmxlIHggPSBXS0RvdWJsZUdl
dFZhbHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5
KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgeEtleS5nZXQoKSkpKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOworICAgICAgICAgICAgZG91YmxlIHkgPSBXS0Rv
dWJsZUdldFZhbHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVt
Rm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgeUtleS5nZXQoKSkpKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHBoYXNlS2V5ID0gYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGhhc2UiKSk7CisgICAgICAgICAgICBp
bnQgcGhhc2UgPSBzdGF0aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8
V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCBwaGFzZUtleS5nZXQoKSkpKSk7CisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gbW9tZW50dW1LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJNb21lbnR1bSIpKTsKKyAgICAgICAgICAgIGludCBtb21lbnR1bSA9IHN0YXRpY19jYXN0PGlu
dD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5
R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIG1vbWVudHVtS2V5LmdldCgpKSkp
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gRm9yd2FyZCB0byBXZWJQcm9jZXNzCisg
ICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtYWluV2Vi
VmlldygpLT5wYWdlKCksIGZhbHNlKTsKKyAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCBtb21l
bnR1bSk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIApAQCAtOTI1LDYgKzk0NCwyNSBAQCBXS1JldGFpblB0
cjxXS1R5cGVSZWY+IFRlc3RDb250cm9sbGVyOjpkCiAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICAgICAgfQogCisgICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1l
c3NhZ2VOYW1lLCAiTW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIikpIHsK
KyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKKyAgICAgICAgICAgIGRvdWJsZSB4ID0g
V0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0
SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkpKSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5ID0gYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWSIpKTsKKyAgICAgICAgICAgIGRvdWJs
ZSB5ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9u
YXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHlLZXkuZ2V0KCkpKSk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwaGFzZUtl
eSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBoYXNlIikpOworICAg
ICAgICAgICAgaW50IHBoYXNlID0gc3RhdGljX2Nhc3Q8aW50PihXS1VJbnQ2NEdldFZhbHVlKHN0
YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VC
b2R5RGljdGlvbmFyeSwgcGhhc2VLZXkuZ2V0KCkpKSkpOworICAgICAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiTW9tZW50dW0iKSk7CisgICAgICAgICAgICBpbnQgbW9tZW50dW0gPSBzdGF0
aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdL
RGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBtb21lbnR1bUtl
eS5nZXQoKSkpKSk7CisKKyAgICAgICAgICAgIC8vIEZvcndhcmQgdG8gV2ViUHJvY2VzcworICAg
ICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkobWFpbldlYlZp
ZXcoKS0+cGFnZSgpLCB0cnVlKTsKKyAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+bW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCBtb21lbnR1
bSk7CisgICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseSht
YWluV2ViVmlldygpLT5wYWdlKCksIGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICB9CisgICAgICAgIAogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhzdWJNZXNzYWdlTmFtZSwgIkNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5IikpIHsKICAgICAgICAg
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKICAgICAgICAgICAgIGRvdWJsZSB4ID0gV0tEb3VibGVH
ZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktl
eShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkpKSk7CkluZGV4OiBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE2Mzk5OSkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwg
MjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0Nyw2ICszNDcsNjEgQEAgdm9pZCBFdmVudFNlbmRpbmdD
b250cm9sbGVyOjptb3VzZVNjcm9sbAogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5h
bWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOwogfQogCit2b2lkIEV2
ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBoYXNlU3RyLCBKU1N0cmluZ1JlZiBtb21l
bnR1bVN0ciwgYm9vbCBhc3luY1Njcm9sbGluZykKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gRXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiRXZlbnRTZW5kZXIiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlRGlj
dGlvbmFyeVJlZj4gRXZlbnRTZW5kZXJNZXNzYWdlQm9keShBZG9wdFdLLCBXS011dGFibGVEaWN0
aW9uYXJ5Q3JlYXRlKCkpOworICAgIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJN
ZXNzYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTdWJNZXNz
YWdlIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFtZShBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzIikpOworICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5k
ZXJNZXNzYWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZUtleS5nZXQoKSwgc3ViTWVzc2FnZU5hbWUu
Z2V0KCkpOworICAgIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5KEFkb3B0V0ss
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJYIikpOworICAgIFdLUmV0YWluUHRyPFdL
RG91YmxlUmVmPiB4UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHgpKTsKKyAgICBXS0RpY3Rp
b25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHhLZXkuZ2V0KCksIHhS
ZWYuZ2V0KCkpOworICAgIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5KEFkb3B0
V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOworICAgIFdLUmV0YWluUHRy
PFdLRG91YmxlUmVmPiB5UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHkpKTsKKyAgICBXS0Rp
Y3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHlLZXkuZ2V0KCks
IHlSZWYuZ2V0KCkpOworCisgICAgdWludDY0X3QgcGhhc2UgPSAwOworICAgIGlmIChKU1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKHBoYXNlU3RyLCAibm9uZSIpKQorICAgICAgICBwaGFzZSA9
IDA7CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhwaGFzZVN0ciwg
ImJlZ2FuIikpCisgICAgICAgIHBoYXNlID0gMTsgLy8ga0NHU2Nyb2xsUGhhc2VCZWdhbgorICAg
IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcocGhhc2VTdHIsICJjaGFuZ2Vk
IikpCisgICAgICAgIHBoYXNlID0gMjsgLy8ga0NHU2Nyb2xsUGhhc2VDaGFuZ2VkCisgICAgZWxz
ZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhwaGFzZVN0ciwgImVuZGVkIikpCisg
ICAgICAgIHBoYXNlID0gNDsgLy8ga0NHU2Nyb2xsUGhhc2VFbmRlZAorICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcocGhhc2VTdHIsICJjYW5jZWxsZWQiKSkKKyAgICAg
ICAgcGhhc2UgPSA4OyAvLyBrQ0dTY3JvbGxQaGFzZUNhbmNlbGxlZAorICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcocGhhc2VTdHIsICJtYXliZWdpbiIpKQorICAgICAg
ICBwaGFzZSA9IDEyODsgLy8ga0NHU2Nyb2xsUGhhc2VNYXlCZWdpbgorCisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IHBoYXNlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJQaGFzZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gcGhhc2VSZWYo
QWRvcHRXSywgV0tVSW50NjRDcmVhdGUocGhhc2UpKTsKKyAgICBXS0RpY3Rpb25hcnlTZXRJdGVt
KEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHBoYXNlS2V5LmdldCgpLCBwaGFzZVJlZi5n
ZXQoKSk7CisKKyAgICB1aW50NjRfdCBtb21lbnR1bSA9IDA7CisgICAgaWYgKEpTU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcobW9tZW50dW1TdHIsICJub25lIikpCisgICAgICAgIG1vbWVudHVt
ID0gMDsgLy8ga0NHTW9tZW50dW1TY3JvbGxQaGFzZU5vbmUKKyAgICBlbHNlIGlmIChKU1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3RyLCAiYmVnaW4iKSkKKyAgICAgICAgbW9t
ZW50dW0gPSAxOyAvLyBrQ0dNb21lbnR1bVNjcm9sbFBoYXNlQmVnaW4KKyAgICBlbHNlIGlmIChK
U1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3RyLCAiY29udGludWUiKSkKKyAg
ICAgICAgbW9tZW50dW0gPSAyOyAvLyBrQ0dNb21lbnR1bVNjcm9sbFBoYXNlQ29udGludWUKKyAg
ICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3RyLCAiZW5k
IikpCisgICAgICAgIG1vbWVudHVtID0gMzsgLy8ga0NHTW9tZW50dW1TY3JvbGxQaGFzZUVuZAor
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5KEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsKKyAgICBXS1JldGFpblB0cjxX
S1VJbnQ2NFJlZj4gbW9tZW50dW1SZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUobW9tZW50dW0p
KTsKKyAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCks
IG1vbWVudHVtS2V5LmdldCgpLCBtb21lbnR1bVJlZi5nZXQoKSk7CisKKyAgICBpZiAoYXN5bmNT
Y3JvbGxpbmcpCisgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNo
YXJlZCgpLmJ1bmRsZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRl
ck1lc3NhZ2VCb2R5LmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIFdLQnVuZGxlUG9zdFN5bmNo
cm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2Vu
ZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOwor
fQorCiB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5
KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gRXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiRXZlbnRTZW5kZXIiKSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
aAkocmV2aXNpb24gMTYzOTk5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VVcChpbnQgYnV0dG9uLCBKU1Zh
bHVlUmVmIG1vZGlmaWVyQXJyYXkpOwogICAgIHZvaWQgbW91c2VNb3ZlVG8oaW50IHgsIGludCB5
KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKKyAgICB2b2lkIG1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5n
UmVmIHBoYXNlLCBKU1N0cmluZ1JlZiBtb21lbnR1bSwgYm9vbCBhc3luY1Njcm9sbGluZyk7CiAg
ICAgdm9pZCBjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQp
OwogICAgIEpTVmFsdWVSZWYgY29udGV4dENsaWNrKCk7CiAgICAgdm9pZCBsZWFwRm9yd2FyZChp
bnQgbWlsbGlzZWNvbmRzKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRp
bmdDb250cm9sbGVyLmlkbAkocmV2aXNpb24gMTYzOTk5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwLCAyMDExLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQCBpbnRlcmZhY2UgRXZlbnRT
ZW5kaW5nQ29udHJvbGxlciB7CiAgICAgdm9pZCBtb3VzZVVwKGxvbmcgYnV0dG9uTnVtYmVyLCBv
YmplY3QgbW9kaWZpZXJBcnJheSk7CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhsb25nIHgsIGxvbmcg
eSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGxvbmcgeCwgbG9uZyB5KTsKKyAgICB2b2lkIG1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhsb25nIHgsIGxvbmcgeSwgRE9N
U3RyaW5nIHBoYXNlLCBET01TdHJpbmcgbW9tZW50dW0sIG9wdGlvbmFsIGJvb2xlYW4gYXN5bmNT
Y3JvbGxpbmcpOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25n
IHksIG9wdGlvbmFsIGJvb2xlYW4gcGFnZWQpOwogICAgIG9iamVjdCBjb250ZXh0Q2xpY2soKTsK
ICAgICB2b2lkIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2soKTsKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZl
bnRTZW5kZXJQcm94eUlPUy5tbQkocmV2aXNpb24gMTYzOTk5KQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtOTgsNiArOTgsMTEgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNj
cm9sbEJ5KGludAogICAgIC8vIFdyaXRlIG1lLgogfQogCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6
Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGlu
dCBwaGFzZSwgaW50IG1vbWVudHVtKQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCiB2b2lkIEV2
ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9v
bCBwYWdlZCkKIHsKICAgICAvLyBXcml0ZSBtZS4KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCShyZXZpc2lvbiAxNjM5OTkp
CisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzkyLDYgKzM5MiwxMyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6
OmNvbnRpbnVvdXNNb3VzZVNjCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBFdmVu
dFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50
IHgsIGludCB5LCBpbnQgLypwaGFzZSovLCBpbnQgLyptb21lbnR1bSovKQoreworICAgIC8vIEVG
TCBkb2VzIG5vdCBoYXZlIHRoZSBjb25jZXB0IG9mIHdoZWVsIGdlc3R1cmUgcGhhc2VzIG9yIG1v
bWVudHVtLiBKdXN0IHJlbGF5IHRvCisgICAgLy8gdGhlIG1vdXNlIHdoZWVsIGhhbmRsZXIuCisg
ICAgbW91c2VTY3JvbGxCeSh4LCB5KTsKK30KKwogdm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFw
Rm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGlmIChtX2V2ZW50UXVldWUuaXNFbXB0
eSgpKQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5k
ZXJQcm94eUd0ay5jcHAJKHJldmlzaW9uIDE2Mzk5OSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzMsNiAr
NDMzLDEzIEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y29udGludW91c01vdXNlU2MKICAgICBz
ZW5kT3JRdWV1ZUV2ZW50KGV2ZW50KTsKIH0KIAordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQgLypw
aGFzZSovLCBpbnQgLyptb21lbnR1bSovKQoreworICAgIC8vIEd0aysgZG9lcyBub3QgaGF2ZSB0
aGUgY29uY2VwdCBvZiB3aGVlbCBnZXN0dXJlIHBoYXNlcyBvciBtb21lbnR1bS4gSnVzdCByZWxh
eSB0bworICAgIC8vIHRoZSBtb3VzZSB3aGVlbCBoYW5kbGVyLgorICAgIG1vdXNlU2Nyb2xsQnko
eCwgeSk7Cit9CisKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQoaW50IG1pbGxp
c2Vjb25kcykKIHsKICAgICBpZiAobV9ldmVudFF1ZXVlLmlzRW1wdHkoKSkKSW5kZXg6IFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQkocmV2aXNpb24g
MTYzOTk5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC00NjEsNCArNDYxLDI1IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
Y29udGludW91c01vdXNlU2MKICAgICByZXR1cm47CiB9CiAKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwg
aW50IHBoYXNlLCBpbnQgbW9tZW50dW0pCit7CisgICAgUmV0YWluUHRyPENHRXZlbnRSZWY+IGNn
U2Nyb2xsRXZlbnQgPSBhZG9wdENGKENHRXZlbnRDcmVhdGVTY3JvbGxXaGVlbEV2ZW50KDAsIGtD
R1Njcm9sbEV2ZW50VW5pdExpbmUsIDIsIHksIHgpKTsKKworICAgIC8vIENHRXZlbnQgbG9jYXRp
b25zIGFyZSBpbiBnbG9iYWwgZGlzcGxheSBjb29yZGluYXRlcy4KKyAgICBDR1BvaW50IGxhc3RH
bG9iYWxNb3VzZVBvc2l0aW9uID0gQ0dQb2ludE1ha2UobV9wb3NpdGlvbi54LCBbW05TU2NyZWVu
IG1haW5TY3JlZW5dIGZyYW1lXS5zaXplLmhlaWdodCAtIG1fcG9zaXRpb24ueSk7CisgICAgQ0dF
dmVudFNldExvY2F0aW9uKGNnU2Nyb2xsRXZlbnQuZ2V0KCksIGxhc3RHbG9iYWxNb3VzZVBvc2l0
aW9uKTsKKworICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ1Njcm9sbEV2ZW50Lmdl
dCgpLCBrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UsIHBoYXNlKTsKKyAgICBDR0V2ZW50
U2V0SW50ZWdlclZhbHVlRmllbGQoY2dTY3JvbGxFdmVudC5nZXQoKSwga0NHU2Nyb2xsV2hlZWxF
dmVudE1vbWVudHVtUGhhc2UsIG1vbWVudHVtKTsKKworICAgIE5TRXZlbnQqIGV2ZW50ID0gW05T
RXZlbnQgZXZlbnRXaXRoQ0dFdmVudDogY2dTY3JvbGxFdmVudC5nZXQoKV07CisKKyAgICAvLyBP
dXIgZXZlbnQgc2hvdWxkIGhhdmUgdGhlIGNvcnJlY3Qgc2V0dGluZ3M6CisgICAgaWYgKE5TVmll
dyAqdGFyZ2V0VmlldyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9y
bVZpZXcoKSBoaXRUZXN0OiBbZXZlbnQgbG9jYXRpb25JbldpbmRvd11dKSB7CisgICAgICAgIFtO
U0FwcCBfc2V0Q3VycmVudEV2ZW50OiBldmVudF07CisgICAgICAgIFt0YXJnZXRWaWV3IHNjcm9s
bFdoZWVsOiBldmVudF07CisgICAgICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50OiBuaWxdOwor
ICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjQwNTUp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBA
QAorMjAxNC0wMi0xMyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBDcmVhdGUgc29tZSBsYXRjaGVkIHNjcm9sbGluZyB0ZXN0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYwNgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTU5MTEzNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgc2VyaWVzIG9mIHRlc3RzIHRvIGNvdmVyIGRlc2lyZWQgYmVoYXZp
b3Igd2l0aCB3aGVlbCBldmVudHMgKGluY2x1ZGluZyBtb21lbnR1bSkuCisgICAgICAgIFRoaXMg
YmVoYXZpb3IgaXMgc3BlY2lmaWMgdG8gdGhlIE1hYyBwbGF0Zm9ybSwgc28gaXMgbGltaXRlZCB0
byB0aGUgcGxhdGZvcm0vbWFjIGFuZAorICAgICAgICBwbGF0Zm9ybS9tYWMtd2syIGRpcmVjdG9y
aWVzLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0
aC1oYW5kbGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zh
c3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1l
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3Jv
bGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRy
YXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFt
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zh
c3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNo
ZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13
aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLXdp
dGgtaGFuZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2Vs
ZWN0LXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qt
d2l0aC1oYW5kbGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9z
Y3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1k
aXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlm
cmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwt
aWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Nj
cm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcv
c2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1sOiBBZGRlZC4KKwogMjAxNC0wMi0xMyAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIER1cmlu
ZyBhIGNvcHksIHBvc2l0aW9uOmZpeGVkIGdldHMgY29udmVydGVkIHRvIHBvc2l0aW9uOmFic29s
dXRlIGV2ZW4gaWYgb25seSBwYXJ0IG9mIHRoZSBkb2N1bWVudCBpcyBzZWxlY3RlZApJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRp
di1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc2IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sg
ZG93bndhcmRzCitTY3JvbGxhYmxlIFJlZ2lvbgorCitDb3VudAlEQVRBCVJldiBDb3VudAorVE9Q
IFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AK
KzEJMC4xMTAwCTQwCisyCTAuMTE1NQkzOQorMwkwLjIyMDAJMzgKKzQJMC4yMjU1CTM3Cis1CTAu
MzMwMAkzNgorNgkwLjMzNTUJMzUKKzcJMC40NDAwCTM0Cis4CTAuNDQ1NQkzMworOQkwLjU1MDAJ
MzIKKzEwCTAuNTU1NQkzMQorMTEJMC42NjAwCTMwCisxMgkwLjY2NTUJMjkKKzEzCTAuNzcwMAky
OAorMTQJMC43NzU1CTI3CisxNQkwLjg4MDAJMjYKKzE2CTAuODg1NQkyNQorMTcJMC45OTAwCTI0
CisxOAkwLjk5NTUJMjMKKzE5CTAuOTk5OQkyMgorMjAJMS4wMDAwCTIxCisyMQkxLjAwMDAJMjAK
KzIyCTAuOTk5OQkxOQorMjMJMC45OTU1CTE4CisyNAkwLjk5MDAJMTcKKzI1CTAuODg1NQkxNgor
MjYJMC44ODAwCTE1CisyNwkwLjc3NTUJMTQKKzI4CTAuNzcwMAkxMworMjkJMC42NjU1CTEyCisz
MAkwLjY2MDAJMTEKKzMxCTAuNTU1NQkxMAorMzIJMC41NTAwCTkKKzMzCTAuNDQ1NQk4CiszNAkw
LjQ0MDAJNworMzUJMC4zMzU1CTYKKzM2CTAuMzMwMAk1CiszNwkwLjIyNTUJNAorMzgJMC4yMjAw
CTMKKzM5CTAuMTE1NQkyCis0MAkwLjExMDAJMQorRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5E
IEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQKK1Rlc3RzIHRoYXQgYSBzY3JvbGxhYmxl
IGRpdiBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxp
bmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2RpdiBkaXNwbGF5IGhlaWdo
dCA9IDQ4NQorTW91c2UgbW92ZWQgdG8gKDI4LCA2MTApCitQYWdlIGJlZm9yZTogMCwgZGl2IGJl
Zm9yZTogNDUxCitQYWdlIGFmdGVyOiAgMCwgZGl2IGFmdGVyOiA0NTEKK1BBU1MgUGFnZSBkaWQg
bm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyAyMDA4
LjAwIDIzMjYuMDApCisgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDAp
CisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVl
IDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAg
ICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAg
MjAwOCB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVm
dCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1s
YXRjaGVkLWRpdi13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0
Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0
Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDc3IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxl
IFJlZ2lvbgorCitDb3VudAlEQVRBCVJldiBDb3VudAorVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1Ag
VE9QIFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AKKzEJMC4xMTAwCTQwCisyCTAuMTE1
NQkzOQorMwkwLjIyMDAJMzgKKzQJMC4yMjU1CTM3Cis1CTAuMzMwMAkzNgorNgkwLjMzNTUJMzUK
KzcJMC40NDAwCTM0Cis4CTAuNDQ1NQkzMworOQkwLjU1MDAJMzIKKzEwCTAuNTU1NQkzMQorMTEJ
MC42NjAwCTMwCisxMgkwLjY2NTUJMjkKKzEzCTAuNzcwMAkyOAorMTQJMC43NzU1CTI3CisxNQkw
Ljg4MDAJMjYKKzE2CTAuODg1NQkyNQorMTcJMC45OTAwCTI0CisxOAkwLjk5NTUJMjMKKzE5CTAu
OTk5OQkyMgorMjAJMS4wMDAwCTIxCisyMQkxLjAwMDAJMjAKKzIyCTAuOTk5OQkxOQorMjMJMC45
OTU1CTE4CisyNAkwLjk5MDAJMTcKKzI1CTAuODg1NQkxNgorMjYJMC44ODAwCTE1CisyNwkwLjc3
NTUJMTQKKzI4CTAuNzcwMAkxMworMjkJMC42NjU1CTEyCiszMAkwLjY2MDAJMTEKKzMxCTAuNTU1
NQkxMAorMzIJMC41NTAwCTkKKzMzCTAuNDQ1NQk4CiszNAkwLjQ0MDAJNworMzUJMC4zMzU1CTYK
KzM2CTAuMzMwMAk1CiszNwkwLjIyNTUJNAorMzgJMC4yMjAwCTMKKzM5CTAuMTE1NQkyCis0MAkw
LjExMDAJMQorRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQg
RU5EIEVORCBFTkQKK1Rlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IHBhc3Mgd2hl
ZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK2RpdiBkaXNwbGF5IGhlaWdodCA9IDQ4NQorTW91c2UgbW92ZWQg
dG8gKDI4LCA2MTApCitQYWdlIGJlZm9yZTogMCwgZGl2IGJlZm9yZTogNDUxCitQYWdlIGFmdGVy
OiAgMCwgZGl2IGFmdGVyOiA0NTEKK1BBU1MgUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZl
bnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciAwIG9mIHRoZSB3aGVlbCBldmVu
dHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDguMDAgMjM0MS4wMCkKKyAgKHZpc2li
bGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgKGNvbnRlbnRzU2NhbGUgMS4w
MCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyAyMDA4
LjAwIDIzNDEuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAw
KQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAyMDA4IHggMjA0OCkKKyAgICAgICh0
aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlk
IDQgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdpdGgtaGFuZGxl
ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
ZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdpdGgtaGFuZGxlci5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAgIHdpZHRoOiA2ODBweDsKK30KKworLnRh
YmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRpbmc6IDJweDsKK30KKworLnRhYmxlIHRoIHsK
KyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBmb250LXdlaWdo
dDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91
bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9k
ZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Cit2YXIgd2hlZWxDb3VudCA9IDA7CitmdW5jdGlvbiBvblNjcm9sbFdoZWVsKGV2dCkgeworICAg
IHdoZWVsQ291bnQgPSB3aGVlbENvdW50ICsgMTsKK30KKworZnVuY3Rpb24gb25Mb2FkKCkgewor
ICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCBvblNjcm9sbFdoZWVs
KTsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBkaXZUYXJnZXQ7Cit2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNv
bnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8v
IFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgZGl2
U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAgICBkZWJ1Zygi
UGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBkaXYgYmVmb3Jl
OiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAg
IiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsgZGl2U2Nyb2xs
UG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBh
Z2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVk
IHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlk
IG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGRlYnVnKCJEb2N1bWVudCB3YXMg
aW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENvdW50ICsgIiBvZiB0aGUgd2hlZWwgZXZlbnRz
LiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1Rl
eHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19W
SVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMp
OworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBz
Y3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBh
Z2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAg
ZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgIGRpdlRh
cmdldC5zY3JvbGxUb3AgPSBkaXZUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gZGl2VGFyZ2V0LmNsaWVu
dEhlaWdodCAtIDEwMDsKKworICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0
LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0
aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAy
MDsKKyAgICBkZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0gIiArIGRpdlRhcmdldC5jbGllbnRI
ZWlnaHQpOworICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9wICsgZGl2VGFy
Z2V0LmNsaWVudEhlaWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBz
dXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3Zl
ZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2Jl
Z2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xs
LCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQo
c2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2Nh
dGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1l
c3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5p
bm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRy
ZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisg
ICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1v
dXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAg
ICAgICAgICArICJkb3duIHBhc3QgdGhlIGRpdi48YnIvPjxici8+IgorICAgICAgICAgICAgKyAi
WW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMg
c3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1l
c3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJo
ZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5
bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVy
ZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xs
YWJsZV9yZWdpb24iPgorICAgICAgICA8aDM+U2Nyb2xsYWJsZSBSZWdpb248L2gzPgorICAgICAg
ICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBo
aWRkZW47IG1heC1oZWlnaHQ6IDQ4NXB4Oyc+CisgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRh
YmxlIiBzdHlsZT0nd2lkdGg6IDk5JSc+CisgICAgICAgICAgICAgICAgPHRyPjx0aD5Db3VudDwv
dGg+PHRoPkRBVEE8L3RoPjx0aD5SZXYgQ291bnQ8L3RoPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwv
dGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD4xPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+NDA8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4yPC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+Mzk8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4zPC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD40PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD41PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+MzY8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48
dGQ+MzU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAw
PC90ZD48dGQ+MzQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD44PC90ZD48dGQ+
MC40NDU1PC90ZD48dGQ+MzM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90
ZD48dGQ+MC41NTAwPC90ZD48dGQ+MzI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4xMDwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjMxPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MTE8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4zMDwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjEyPC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+Mjk8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4xMzwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjI4PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTQ8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4y
NzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE1PC90ZD48dGQ+MC44ODAwPC90
ZD48dGQ+MjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNjwvdGQ+PHRkPjAu
ODg1NTwvdGQ+PHRkPjI1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTc8L3Rk
Pjx0ZD4wLjk5MDA8L3RkPjx0ZD4yNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjE4PC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4xOTwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjIyPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MjA8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMTwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjIxPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjM8L3RkPjx0ZD4wLjk5NTU8L3Rk
Pjx0ZD4xODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45
OTAwPC90ZD48dGQ+MTc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+
PHRkPjAuODg1NTwvdGQ+PHRkPjE2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MjY8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4xNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjI3PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+MTQ8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4yODwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjEzPC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+Mjk8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4xMjwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMwPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+
PHRkPjEwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzI8L3RkPjx0ZD4wLjU1
MDA8L3RkPjx0ZD45PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0
ZD4wLjQ0NTU8L3RkPjx0ZD44PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8
L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD43PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MzU8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD42PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MzY8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD41PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+Mzc8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD40PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+Mzg8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zPC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzk8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4yPC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3RkPjx0
ZD4xPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+RU5EIEVORCBFTkQgRU5EIEVO
RDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5E
PC90ZD48L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9k
aXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50
cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8
cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zh
c3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1k
aXYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJs
ZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7Cisg
ICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6
IHN0cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5k
OiAjZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQp
IHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIGRpdlRh
cmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgZGl2U2Nyb2xsUG9zaXRp
b25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Ny
b2xsKCkgeworCisgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxs
LgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xs
VG9wOworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRv
cDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9y
ZSArICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVi
dWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0
ZXI6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWls
ZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xh
eWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCisg
ICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwg
aW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKworICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgewor
ICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlv
bkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGl2VGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgIGRpdlRhcmdldC5zY3JvbGxUb3Ag
PSBkaXZUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gZGl2VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsK
KworICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKwor
ICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAg
ICB2YXIgc3RhcnRQb3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICBkZWJ1Zygi
ZGl2IGRpc3BsYXkgaGVpZ2h0ID0gIiArIGRpdlRhcmdldC5jbGllbnRIZWlnaHQpOworICAgIHZh
ciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9wICsgZGl2VGFyZ2V0LmNsaWVudEhlaWdo
dCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0
IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0
UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywg
J25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdl
bmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitm
dW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAw
MCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+
VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5
IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJh
dCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEg
dHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3du
IHBhc3QgdGhlIGRpdi48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qg
c2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+
IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0K
K30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsg
d2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAw
cHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93
bndhcmRzCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgor
ICAgICAgICA8aDM+U2Nyb2xsYWJsZSBSZWdpb248L2gzPgorICAgICAgICA8ZGl2IGlkPSJ0YXJn
ZXQiIHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWln
aHQ6IDQ4NXB4Oyc+CisgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIiBzdHlsZT0nd2lk
dGg6IDk5JSc+CisgICAgICAgICAgICAgICAgPHRyPjx0aD5Db3VudDwvdGg+PHRoPkRBVEE8L3Ro
Pjx0aD5SZXYgQ291bnQ8L3RoPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9Q
IFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1Ag
VE9QIFRPUCBUT1A8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+
MC4xMTAwPC90ZD48dGQ+NDA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yPC90
ZD48dGQ+MC4xMTU1PC90ZD48dGQ+Mzk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4zPC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD40PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD41PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+
MzM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+MC41NTAwPC90
ZD48dGQ+MzI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAu
NTU1NTwvdGQ+PHRkPjMxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTE8L3Rk
Pjx0ZD4wLjY2MDA8L3RkPjx0ZD4zMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjEyPC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+Mjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4xMzwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjI4PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MTQ8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3Rk
Pjx0ZD4yNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45
OTU1PC90ZD48dGQ+MjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+
PHRkPjAuOTk5OTwvdGQ+PHRkPjIyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MjA8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjIxPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4yMjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MjM8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+
PHRkPjE2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4
MDA8L3RkPjx0ZD4xNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48
dGQ+MC43NzU1PC90ZD48dGQ+MTQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4y
ODwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjEzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+Mjk8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjMwPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0
ZD44PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8
L3RkPjx0ZD43PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4w
LjMzNTU8L3RkPjx0ZD42PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzY8L3Rk
Pjx0ZD4wLjMzMDA8L3RkPjx0ZD41PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
Mzc8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD40PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+Mzg8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zPC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+Mzk8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4yPC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBF
TkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48L3RyPgorICAg
ICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1l
IHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMi
PkxheWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1s
YXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1h
aW5mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1l
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc1IEBACitQdXQgbW91c2Ug
aGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFJlZ2lvbgorCitDb3VudAlEQVRB
CVJldiBDb3VudAorVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCVRPUCBU
T1AgVE9QIFRPUCBUT1AKKzEJMC4xMTAwCTQwCisyCTAuMTE1NQkzOQorMwkwLjIyMDAJMzgKKzQJ
MC4yMjU1CTM3Cis1CTAuMzMwMAkzNgorNgkwLjMzNTUJMzUKKzcJMC40NDAwCTM0Cis4CTAuNDQ1
NQkzMworOQkwLjU1MDAJMzIKKzEwCTAuNTU1NQkzMQorMTEJMC42NjAwCTMwCisxMgkwLjY2NTUJ
MjkKKzEzCTAuNzcwMAkyOAorMTQJMC43NzU1CTI3CisxNQkwLjg4MDAJMjYKKzE2CTAuODg1NQky
NQorMTcJMC45OTAwCTI0CisxOAkwLjk5NTUJMjMKKzE5CTAuOTk5OQkyMgorMjAJMS4wMDAwCTIx
CisyMQkxLjAwMDAJMjAKKzIyCTAuOTk5OQkxOQorMjMJMC45OTU1CTE4CisyNAkwLjk5MDAJMTcK
KzI1CTAuODg1NQkxNgorMjYJMC44ODAwCTE1CisyNwkwLjc3NTUJMTQKKzI4CTAuNzcwMAkxMwor
MjkJMC42NjU1CTEyCiszMAkwLjY2MDAJMTEKKzMxCTAuNTU1NQkxMAorMzIJMC41NTAwCTkKKzMz
CTAuNDQ1NQk4CiszNAkwLjQ0MDAJNworMzUJMC4zMzU1CTYKKzM2CTAuMzMwMAk1CiszNwkwLjIy
NTUJNAorMzgJMC4yMjAwCTMKKzM5CTAuMTE1NQkyCis0MAkwLjExMDAJMQorRU5EIEVORCBFTkQg
RU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQKK1Rlc3RzIHRo
YXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Ny
b2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
TW91c2UgbW92ZWQgdG8gKDI4LCAxMjUpCitQYWdlIGJlZm9yZTogMCwgZGl2IGJlZm9yZTogMAor
UGFnZSBhZnRlcjogIDI4MCwgZGl2IGFmdGVyOiAwCitQQVNTIFNjcm9sbGFibGUgZGl2IGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDgu
MDAgMjMxMS4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAw
KQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAoYm91bmRzIDIwMDguMDAgMjMxMS4wMCkKKyAgICAgIChjb250ZW50c09wYXF1
ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQor
ICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAs
IDAgMjAwOCB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3Ag
bGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRp
di1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc2IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sg
ZG93bndhcmRzCitTY3JvbGxhYmxlIFJlZ2lvbgorCitDb3VudAlEQVRBCVJldiBDb3VudAorVE9Q
IFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AK
KzEJMC4xMTAwCTQwCisyCTAuMTE1NQkzOQorMwkwLjIyMDAJMzgKKzQJMC4yMjU1CTM3Cis1CTAu
MzMwMAkzNgorNgkwLjMzNTUJMzUKKzcJMC40NDAwCTM0Cis4CTAuNDQ1NQkzMworOQkwLjU1MDAJ
MzIKKzEwCTAuNTU1NQkzMQorMTEJMC42NjAwCTMwCisxMgkwLjY2NTUJMjkKKzEzCTAuNzcwMAky
OAorMTQJMC43NzU1CTI3CisxNQkwLjg4MDAJMjYKKzE2CTAuODg1NQkyNQorMTcJMC45OTAwCTI0
CisxOAkwLjk5NTUJMjMKKzE5CTAuOTk5OQkyMgorMjAJMS4wMDAwCTIxCisyMQkxLjAwMDAJMjAK
KzIyCTAuOTk5OQkxOQorMjMJMC45OTU1CTE4CisyNAkwLjk5MDAJMTcKKzI1CTAuODg1NQkxNgor
MjYJMC44ODAwCTE1CisyNwkwLjc3NTUJMTQKKzI4CTAuNzcwMAkxMworMjkJMC42NjU1CTEyCisz
MAkwLjY2MDAJMTEKKzMxCTAuNTU1NQkxMAorMzIJMC41NTAwCTkKKzMzCTAuNDQ1NQk4CiszNAkw
LjQ0MDAJNworMzUJMC4zMzU1CTYKKzM2CTAuMzMwMAk1CiszNwkwLjIyNTUJNAorMzgJMC4yMjAw
CTMKKzM5CTAuMTE1NQkyCis0MAkwLjExMDAJMQorRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5E
IEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQKK1Rlc3RzIHRoYXQgYSBzY3JvbGxhYmxl
IGRpdiBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQg
dG8gbWFpbiBmcmFtZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTW91c2UgbW92ZWQgdG8g
KDI4LCAxMjUpCitQYWdlIGJlZm9yZTogMCwgZGl2IGJlZm9yZTogMAorUGFnZSBhZnRlcjogIDI4
MCwgZGl2IGFmdGVyOiAwCitQQVNTIFNjcm9sbGFibGUgZGl2IGRpZCBub3QgcmVjZWl2ZSB3aGVl
bCBldmVudHMuCitEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yIDQgb2YgdGhlIHdoZWVs
IGV2ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAo
dmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUuMDApCisgIChjb250ZW50c1Nj
YWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgMjAwOC4wMCAyMzI2LjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAodmlz
aWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUuMDApCisgICAgICAoY29udGVudHNT
Y2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAyMDA4IHggMjA0OCkK
KyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0
aWxlcyBncmlkIDQgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZy
YW1lLXdpdGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUt
d2l0aC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdp
dGgtaGFuZGxlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTgwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24gewor
ICAgIHdpZHRoOiA2ODBweDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRp
bmc6IDJweDsKK30KKworLnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1h
bGlnbjogbGVmdDsKKyAgICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRo
LWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxl
X3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7
Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgd2hlZWxDb3VudCA9IDA7CitmdW5jdGlv
biBvblNjcm9sbFdoZWVsKGV2dCkgeworICAgIHdoZWVsQ291bnQgPSB3aGVlbENvdW50ICsgMTsK
K30KKworZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNld2hlZWwiLCBvblNjcm9sbFdoZWVsKTsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisK
K3ZhciBkaXZUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGRpdlNj
cm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBj
aGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9s
bGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5i
b2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdl
dC5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgKyAiLCBkaXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUp
OworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsg
IiwgZGl2IGFmdGVyOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAoZGl2
U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gZGl2U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAg
dGVzdEZhaWxlZCgiU2Nyb2xsYWJsZSBkaXYgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAg
IGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiU2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZl
IHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGRlYnVnKCJEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJn
ZXQgZm9yICIgKyB3aGVlbENvdW50ICsgIiBvZiB0aGUgd2hlZWwgZXZlbnRzLiIpOworCisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQs
CisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RT
IHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKwor
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkg
eworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3Np
dGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGl2VGFyZ2V0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgZGl2U2Nyb2xsUG9zaXRp
b25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291
cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBkaXZU
YXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zm
c2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkg
ZnJvbSB0aGUgSUZyYW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBz
dGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisg
ICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9z
WSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQn
LCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAn
ZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRp
bWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwo
KSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisK
KyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVu
dCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1
biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1v
dXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2Us
IGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNj
cm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgZGl2Ljxici8+PGJy
Lz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBvZiBFTkQgbGFi
ZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9j
YXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYg
aWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+CisgICAg
PGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+Cisg
ICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAgICAgIDxoMz5TY3JvbGxhYmxl
IFJlZ2lvbjwvaDM+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9J292ZXJmbG93LXk6
IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgbWF4LWhlaWdodDogNDg1cHg7Jz4KKyAgICAgICAg
ICAgIDx0YWJsZSBjbGFzcz0idGFibGUiIHN0eWxlPSd3aWR0aDogOTklJz4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRoPkNvdW50PC90aD48dGg+REFUQTwvdGg+PHRoPlJldiBDb3VudDwvdGg+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5U
T1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjE8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD40MDwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4z
OTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM8L3RkPjx0ZD4wLjIyMDA8L3Rk
Pjx0ZD4zODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQ8L3RkPjx0ZD4wLjIy
NTU8L3RkPjx0ZD4zNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjU8L3RkPjx0
ZD4wLjMzMDA8L3RkPjx0ZD4zNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjY8
L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD4zNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjc8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD4zNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjg8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD4zMzwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjk8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD4zMjwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjEwPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MzE8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMTwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjMw
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTI8L3RkPjx0ZD4wLjY2NTU8L3Rk
Pjx0ZD4yOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEzPC90ZD48dGQ+MC43
NzAwPC90ZD48dGQ+Mjg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNDwvdGQ+
PHRkPjAuNzc1NTwvdGQ+PHRkPjI3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MTU8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4yNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjE2PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MjU8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4xNzwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjI0PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MTg8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4yMzwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE5PC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MjI8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMDwvdGQ+PHRkPjEuMDAwMDwvdGQ+
PHRkPjIxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjE8L3RkPjx0ZD4xLjAw
MDA8L3RkPjx0ZD4yMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIyPC90ZD48
dGQ+MC45OTk5PC90ZD48dGQ+MTk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4y
MzwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjE4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4xNzwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjI1PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MTY8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4yNjwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjE1PC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjc8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4xNDwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI4PC90ZD48dGQ+MC43NzAwPC90ZD48
dGQ+MTM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yOTwvdGQ+PHRkPjAuNjY1
NTwvdGQ+PHRkPjEyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzA8L3RkPjx0
ZD4wLjY2MDA8L3RkPjx0ZD4xMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMx
PC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MTA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD4zMjwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjk8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4zMzwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjg8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4zNDwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjc8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4zNTwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjY8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNjwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjU8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNzwvdGQ+PHRkPjAuMjI1NTwvdGQ+
PHRkPjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zODwvdGQ+PHRkPjAuMjIw
MDwvdGQ+PHRkPjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zOTwvdGQ+PHRk
PjAuMTE1NTwvdGQ+PHRkPjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40MDwv
dGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRk
PkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjwvdHI+CisgICAgICAgICAgICA8L3RhYmxlPgorICAg
ICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vz
bid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBm
cmFtZS4iKTsKKzwvc2NyaXB0PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVy
ZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
ZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNzIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxl
X3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7
CisgICAgcGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsK
KyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50
YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKwor
LnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3Vu
ZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgp
IHsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBkaXZUYXJnZXQ7Cit2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNv
bnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8v
IFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgZGl2
U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAgICBkZWJ1Zygi
UGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBkaXYgYmVmb3Jl
OiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAg
IiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsgZGl2U2Nyb2xs
UG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gZGl2
U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiU2Nyb2xsYWJsZSBkaXYg
Y29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgi
U2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCds
YXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LAor
ICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyB8
IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKKyAgICB9CisKKyAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsK
KyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRpdlRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIGRpdlNjcm9sbFBvc2l0aW9u
QmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJj
ZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFy
Z2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gZGl2VGFyZ2V0Lm9mZnNl
dFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9sbCBhd2F5IGZy
b20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3Rh
cnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAg
IGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kg
KyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywg
J25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2Vu
ZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1l
b3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkg
eworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisg
ICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQn
KTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4g
dW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3Vz
ZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBh
bmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3Jv
bGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIGRpdi48YnIvPjxici8+
IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVs
cyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0
aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlk
PSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxk
aXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAg
ICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICA8aDM+U2Nyb2xsYWJsZSBS
ZWdpb248L2gzPgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdvdmVyZmxvdy15OiBh
dXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWlnaHQ6IDQ4NXB4Oyc+CisgICAgICAgICAg
ICA8dGFibGUgY2xhc3M9InRhYmxlIiBzdHlsZT0nd2lkdGg6IDk5JSc+CisgICAgICAgICAgICAg
ICAgPHRyPjx0aD5Db3VudDwvdGg+PHRoPkRBVEE8L3RoPjx0aD5SZXYgQ291bnQ8L3RoPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9Q
IFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+NDA8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yPC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+Mzk8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zPC90ZD48dGQ+MC4yMjAwPC90ZD48
dGQ+Mzg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40PC90ZD48dGQ+MC4yMjU1
PC90ZD48dGQ+Mzc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD41PC90ZD48dGQ+
MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD42PC90
ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+MzM8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+MzI8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjMxPC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTE8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4zMDwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEyPC90ZD48dGQ+MC42NjU1PC90ZD48
dGQ+Mjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMzwvdGQ+PHRkPjAuNzcw
MDwvdGQ+PHRkPjI4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTQ8L3RkPjx0
ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE1
PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1PC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4yNDwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MjM8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjIyPC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjA8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0
ZD4yMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIxPC90ZD48dGQ+MS4wMDAw
PC90ZD48dGQ+MjA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMjwvdGQ+PHRk
PjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjM8
L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjE2PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4xNTwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+MTQ8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yODwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRk
PjEzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjk8L3RkPjx0ZD4wLjY2NTU8
L3RkPjx0ZD4xMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMwPC90ZD48dGQ+
MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMTwv
dGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD44PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD43PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD42PC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzY8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD41PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzc8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0
ZD40PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzg8L3RkPjx0ZD4wLjIyMDA8
L3RkPjx0ZD4zPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzk8L3RkPjx0ZD4w
LjExNTU8L3RkPjx0ZD4yPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NDA8L3Rk
Pjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5F
TkQgRU5EIEVORCBFTkQgRU5EPC90ZD48L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAg
ICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24n
dCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRvIG1haW4gZnJh
bWUuIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8
L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2Fy
ZHMKKworVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWlu
IGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSA1MDAKK01vdXNlIG1vdmVkIHRvICgyOCwgNTY2KQor
UGFnZSBiZWZvcmU6IDAsIElGcmFtZSBiZWZvcmU6IDQxNgorUGFnZSBhZnRlcjogIDAsIElGcmFt
ZSBhZnRlcjogNTMxCitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KKyhH
cmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDIzMjYuMDApCisgICh2aXNpYmxlIHJlY3Qg
MC4wMCwgMC4wMCA3ODUuMDAgeCA2MDAuMDApCisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChj
aGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDIzMjYu
MDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwg
MC4wMCA3ODUuMDAgeCA2MDAuMDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQorICAgICAg
KHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA3ODUgeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1
MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMiB4IDQpCisg
ICAgKQorICApCispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVyLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxl
ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgt
aGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorUHV0
IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworCitUZXN0cyB0aGF0IGlmcmFtZSBkb2Vz
bid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90
dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0lGcmFtZSBkaXNwbGF5IGhlaWdodCA9IDUw
MAorTW91c2UgbW92ZWQgdG8gKDI4LCA1NjYpCitQYWdlIGJlZm9yZTogMCwgSUZyYW1lIGJlZm9y
ZTogNDE2CitQYWdlIGFmdGVyOiAgMCwgSUZyYW1lIGFmdGVyOiA1MzEKK1BBU1MgUGFnZSBkaWQg
bm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZv
ciAwIG9mIHRoZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4w
MCAyMzQxLjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNjAwLjAwKQor
ICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDc4NS4wMCAyMzQxLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEp
CisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNjAwLjAwKQorICAgICAg
KGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNzg1
IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRp
bGUgMCwgMCB0aWxlcyBncmlkIDIgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxh
dGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hl
ZC1pZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQt
aWZyYW1lLXdpdGgtaGFuZGxlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTI2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLVdoZWVsRXZl
bnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgordmFyIHdoZWVsQ291bnQgPSAwOworZnVuY3Rpb24gb25TY3JvbGxX
aGVlbChldnQpIHsKKyAgICB3aGVlbENvdW50ID0gd2hlZWxDb3VudCArIDE7Cit9CisKK2Z1bmN0
aW9uIG9uTG9hZCgpIHsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVs
Iiwgb25TY3JvbGxXaGVlbCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
b25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBpZnJhbWVUYXJnZXQ7Cit2YXIgcGFnZVNjcm9s
bFBvc2l0aW9uQmVmb3JlOwordmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNv
bnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8v
IFRoZSBJRnJhbWUgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFn
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIg
aUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3Vt
ZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNj
cm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBv
c2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9z
aXRpb25BZnRlciArICIsIElGcmFtZSBhZnRlcjogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9z
aXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVu
dHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2
ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBkZWJ1ZygiRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFy
Z2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhlIHdoZWVsIGV2ZW50cy4iKTsKKworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNU
UyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKKyAgICB9CisK
KyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgp
IHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGlmcmFtZVRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIHZhciBpRnJhbWVC
b2R5ID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keTsKKyAgICBpRnJhbWVC
b2R5LnNjcm9sbFRvcCA9IGlGcmFtZUJvZHkuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1lVGFyZ2V0LmNs
aWVudEhlaWdodCAtIDEwMDsKKworICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaUZy
YW1lQm9keS5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2Ug
cmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdldC5vZmZz
ZXRMZWZ0ICsgMjA7CisgICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhlaWdodCA9ICIgKyBpZnJh
bWVUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFyZ2V0
Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVs
IHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gs
IHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUK
KyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQ
b3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0
VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZl
bCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFy
ZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIg
cnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUg
bW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBJRnJhbWUsIHRo
ZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRo
ZSBJRnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPGJyLz4iCisgICAgICAgICAgICAr
ICI8YnIvPjxici8+IgorICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzY3Jv
bGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0aGUgbWFpbiBw
YWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVu
ZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQi
IHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVp
Z2h0OiAxMDBweCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMK
KyAgICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdldCIgc3R5bGU9
ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAwcHg7IHdpZHRoOiA1MDBweDsiIAor
ICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRpdiBpZD0nbm90VG9CZVNjcm9sbGVk
JyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7Jz4KKyAgICAgVE9QIFRPUCBU
T1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUDxici8+PGJyLz4K
KyAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVy
IHlvdSBzY3JvbGwgZG93bgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAg
IDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPgorICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1l
IGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgIDxici8+CisgICAgIEVORCBFTkQgRU5E
IEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAorICAgICA8L2Rpdj4KKyAg
ICAgIgorICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiCisgICAgID4KKyAgICA8L2lmcmFt
ZT4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBm
cmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0PgorPHByZSBpZD0ibGF5
ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZy
YW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVs
LTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKwordmFyIGlmcmFtZVRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2
YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisK
K2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIElGcmFtZSBzaG91bGQg
bm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRl
ciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBpRnJhbWVTY3JvbGxQb3NpdGlv
bkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7
CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUg
KyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAg
IGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgSUZy
YW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAocGFn
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAg
ICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsK
KworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRv
Y3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJM
RV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKKyAg
ICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xs
VGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGlmcmFt
ZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIHZhciBp
RnJhbWVCb2R5ID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keTsKKyAgICBp
RnJhbWVCb2R5LnNjcm9sbFRvcCA9IGlGcmFtZUJvZHkuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1lVGFy
Z2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKworICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ID0gaUZyYW1lQm9keS5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50
aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdl
dC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhlaWdodCA9ICIg
KyBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1l
VGFyZ2V0Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25l
IHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFy
dFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBp
RnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsg
c3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Cisg
ICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBU
b3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBi
ZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFj
ZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBJRnJh
bWUsIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Ny
b2xsIHRoZSBJRnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPGJyLz4iCisgICAgICAg
ICAgICArICI8YnIvPjxici8+IgorICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlmIHlv
dSBzY3JvbGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0aGUg
bWFpbiBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9u
LmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJw
YXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHls
ZT0iaGVpZ2h0OiAxMDBweCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3du
d2FyZHMKKyAgICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdldCIg
c3R5bGU9ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAwcHg7IHdpZHRoOiA1MDBw
eDsiIAorICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRpdiBpZD0nbm90VG9CZVNj
cm9sbGVkJyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7Jz4KKyAgICAgVE9Q
IFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUDxici8+
PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1l
IGFmdGVyIHlvdSBzY3JvbGwgZG93bgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
CisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlzaWJsZSBpbnNpZGUgdGhl
IGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgIDxici8+CisgICAgIEVORCBF
TkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAorICAgICA8L2Rp
dj4KKyAgICAgIgorICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiCisgICAgID4KKyAgICA8
L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8g
bWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0PgorPHByZSBp
ZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNj
cm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFt
ZS1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMSBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworCitUZXN0cyB0aGF0
IGlmcmFtZSBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK01vdXNlIG1vdmVkIHRvICgyOCwgNjYpCitQYWdlIGJlZm9yZTog
MCwgSUZyYW1lIGJlZm9yZTogMAorUGFnZSBhZnRlcjogIDI4MCwgSUZyYW1lIGFmdGVyOiAwCitQ
QVNTIElGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIK
KyAgKGJvdW5kcyA3ODUuMDAgMjMxMS4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAg
Nzg1LjAwIHggNjAwLjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAyMzExLjAwKQorICAgICAg
KGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUu
MDAgeCA2MDAuMDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2Fj
aGUgY292ZXJhZ2UgMCwgMCA3ODUgeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIp
CisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMiB4IDQpCisgICAgKQorICAp
CispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRy
YXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgt
aGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorUHV0
IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworCitUZXN0cyB0aGF0IGlmcmFtZSBkb2Vz
bid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK01vdXNlIG1vdmVkIHRvICgyOCwgNjYpCitQYWdlIGJlZm9yZTogMCwgSUZyYW1lIGJl
Zm9yZTogMAorUGFnZSBhZnRlcjogIDI4MCwgSUZyYW1lIGFmdGVyOiAwCitQQVNTIElGcmFtZSBk
aWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0
IGZvciA0IG9mIHRoZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4
NS4wMCAyMzI2LjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA2MDAu
MDApCisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDIzMjYuMDApCisgICAgICAoY29udGVudHNPcGFx
dWUgMSkKKyAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDYwMC4wMCkK
KyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAw
LCAwIDc4NSB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3Ag
bGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAyIHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlm
cmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZy
YW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlm
cmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMv
I2V2ZW50cy1XaGVlbEV2ZW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB3aGVlbENvdW50ID0gMDsKK2Z1
bmN0aW9uIG9uU2Nyb2xsV2hlZWwoZXZ0KSB7CisgICAgd2hlZWxDb3VudCA9IHdoZWVsQ291bnQg
KyAxOworfQorCitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigibW91c2V3aGVlbCIsIG9uU2Nyb2xsV2hlZWwpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgaWZyYW1lVGFyZ2V0
OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBpRnJhbWVTY3JvbGxQb3NpdGlv
bkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3Jv
bGwoKSB7CisKKyAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBh
bGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3A7CisgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVz
Wyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJl
Zm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIElGcmFtZSBiZWZvcmU6ICIg
KyBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAi
ICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6ICIgKyBpRnJhbWVT
Y3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9y
ZSAhPSBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJJRnJh
bWUgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3Nl
ZCgiSUZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBkZWJ1Zygi
RG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhl
IHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMu
bGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVT
X1RJTEVfQ0FDSEVTKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
KworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBs
aXZlczoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9s
bFRvcDsKKyAgICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHdpbmRvdy5mcmFtZXNbJ3Rh
cmdldCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgaWZyYW1lVGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291
cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBpZnJh
bWVUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJn
ZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xs
IGF3YXkgZnJvbSB0aGUgSUZyYW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQ
b3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZy
YW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0
YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAg
IHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9w
TGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0
dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2Ug
dGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhl
IHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBl
IHRvIHNjcm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgSUZyYW1l
Ljxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBv
ZiBFTkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBt
ZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3Njcmlw
dD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4Ij4KKyAgICA8ZGl2IGlk
PSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUg
YW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgIDxpZnJhbWUgaWQ9InRhcmdldCIg
bmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBncmVlbjsgaGVpZ2h0OiA1MDBw
eDsgd2lkdGg6IDUwMHB4OyIgCisgICAgIHNyYz0gImRhdGE6dGV4dC9odG1sLAorICAgICA8ZGl2
IGlkPSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxlPSdoZWlnaHQ6IDEwMDBweDsgd2lkdGg6IDEwMDBw
eDsnPgorICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRP
UCBUT1AgVE9QPGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2aXNpYmxlIGlu
c2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duCisgICAgIDxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICA8
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIFRoaXMgc2hvdWxkIE5PVCBiZSB2aXNp
YmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duPGJyLz4KKyAgICAgPGJy
Lz4KKyAgICAgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQg
RU5ECisgICAgIDwvZGl2PgorICAgICAiCisgICAgIG9ubG9hZD0ic2V0dXBUb3BMZXZlbCgpOyIK
KyAgICAgPgorICAgIDwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBjb25zdW1l
IHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCAiKTsKKzwvc2NyaXB0PgorPHByZSBpZD0ibGF5ZXJz
Ij5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJh
bWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFp
bmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvRE9N
LUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKwordmFyIGlmcmFtZVRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmU7Cit2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9
IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIElGcmFtZSBz
aG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRp
b25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBpRnJhbWVTY3JvbGxQ
b3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25C
ZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUp
OworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsg
IiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBp
ZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRl
cikKKyAgICAgICAgdGVzdEZhaWxlZCgiSUZyYW1lIGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsK
KyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIklGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hl
ZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXll
clRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9J
TkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElM
RV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitm
dW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVz
OgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w
OworICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gd2luZG93LmZyYW1lc1sndGFyZ2V0
J10uZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBpZnJhbWVUYXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2Ug
dW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRh
cmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5v
ZmZzZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdh
eSBmcm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gs
IHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUK
KyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQ
b3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0
VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZl
bCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFy
ZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIg
cnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUg
bW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFn
ZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8g
c2Nyb2xsIHRoZTxici8+IgorICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBJRnJhbWUuPGJy
Lz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93IG9mIEVO
RCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3Nh
Z2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0Pgor
PGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHgiPgorICAgIDxkaXYgaWQ9InNv
dXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHgiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQg
ZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1l
PSJ0YXJnZXQiIHN0eWxlPSJib3JkZXI6c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDUwMHB4OyB3
aWR0aDogNTAwcHg7IiAKKyAgICAgc3JjPSAiZGF0YTp0ZXh0L2h0bWwsCisgICAgIDxkaXYgaWQ9
J25vdFRvQmVTY3JvbGxlZCcgc3R5bGU9J2hlaWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+
CisgICAgIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRP
UCBUT1A8YnIvPjxici8+CisgICAgIFRoaXMgc2hvdWxkIHN0aWxsIGJlIHZpc2libGUgaW5zaWRl
IHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd24KKyAgICAgPGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIDxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgTk9UIGJlIHZpc2libGUg
aW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd248YnIvPgorICAgICA8YnIvPgor
ICAgICBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQK
KyAgICAgPC9kaXY+CisgICAgICIKKyAgICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7IgorICAg
ICA+CisgICAgPC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IGNvbnN1bWUgd2hl
ZWwgZXZlbnRzIHdoZW4gc2Nyb2xsICIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxh
eWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1s
YXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVk
LW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFp
bmZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBACitQdXQg
bW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFNlbGVjdAorCisKK1Rl
c3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9s
bCBpcyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK01v
dXNlIG1vdmVkIHRvICgzMCwgMTI3KQorUGFnZSBiZWZvcmU6IDAsIHNlbGVjdCBiZWZvcmU6IDAK
K1BhZ2UgYWZ0ZXI6ICAyODAsIHNlbGVjdCBhZnRlcjogMAorUEFTUyBTZWxlY3QgZGlkIG5vdCBy
ZWNlaXZlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgMjAwOC4wMCAy
MzExLjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUuMDApCisg
IChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgIChib3VuZHMgMjAwOC4wMCAyMzExLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEp
CisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUuMDApCisgICAg
ICAoY29udGVudHNTY2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAy
MDA4IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0
IHRpbGUgMCwgMCB0aWxlcyBncmlkIDQgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0
LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zh
c3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBm
bGljayBkb3dud2FyZHMKK1Njcm9sbGFibGUgU2VsZWN0CisKKworVGVzdHMgdGhhdCBhIHNlbGVj
dCBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8g
bWFpbiBmcmFtZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTW91c2UgbW92ZWQgdG8gKDMw
LCAxMjcpCitQYWdlIGJlZm9yZTogMCwgc2VsZWN0IGJlZm9yZTogMAorUGFnZSBhZnRlcjogIDI4
MCwgc2VsZWN0IGFmdGVyOiAwCitQQVNTIFNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZl
bnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciA0IG9mIHRoZSB3aGVlbCBldmVu
dHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgKHZpc2li
bGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAoY29udGVudHNTY2FsZSAx
LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDIw
MDguMDAgMjMyNi4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKHZpc2libGUg
cmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAgICAgKGNvbnRlbnRzU2NhbGUg
MS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgMjAwOCB4IDIwNDgpCisgICAg
ICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMg
Z3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFt
ZS13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1l
LXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFt
ZS13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnNjcm9sbGFibGVfcmVnaW9u
IHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBw
YWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRl
eHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0cm9uZzsKK30KKworLnRhYmxlIHRy
Om50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCisuc2Nyb2xs
YWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNm
M2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHdoZWVsQ291bnQgPSAwOworZnVu
Y3Rpb24gb25TY3JvbGxXaGVlbChldnQpIHsKKyAgICB3aGVlbENvdW50ID0gd2hlZWxDb3VudCAr
IDE7Cit9CisKK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCJtb3VzZXdoZWVsIiwgb25TY3JvbGxXaGVlbCk7CisgICAgc2V0dXBUb3BMZXZlbCgpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0
PgorCit2YXIgc2VsZWN0VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3Zh
ciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKwor
ZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgc2VsZWN0IHNob3VsZCBu
b3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVy
ID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9u
QWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3Jl
OiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9yZTogIiArIHNl
bGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBw
YWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNlbGVjdFNjcm9s
bFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlICE9
IHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIlNlbGVjdCBj
b25zdW1lZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJT
ZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGRlYnVnKCJEb2N1
bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENvdW50ICsgIiBvZiB0aGUgd2hl
ZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXll
clRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9J
TkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElM
RV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitm
dW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVz
OgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w
OworCisgICAgc2VsZWN0VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcp
OworCisgICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xs
VG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFy
Z2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOwor
ICAgIHZhciBzdGFydFBvc1kgPSBzZWxlY3RUYXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdo
dGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1
cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVk
IHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVn
YW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGws
IDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChz
Y3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0
aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVz
c2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlu
bmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJl
ZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAg
ICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91
c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCBkb3duPGJyLz4iCisgICAg
ICAgICAgICArICJwYXN0IHRoZSBzZWxlY3RUYXJnZXQuPGJyLz48YnIvPiIKKyAgICAgICAgICAg
ICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgJ2NvbnRlbnQyMScgbGFiZWwgaWYgdGhpcyB0ZXN0
IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGls
ZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHls
ZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2Ui
IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNl
IGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNz
PSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAgICAgICAgICA8aDM+U2Nyb2xsYWJsZSBTZWxlY3Q8
L2gzPgorICAgICAgICAgICAgPHNlbGVjdCBpZD0idGFyZ2V0IiBjbGFzcz0ic2Nyb2xsYWJsZV9z
ZWxlY3QiIHNpemU9IjgiPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyPC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50Mzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDQ8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ1PC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Njwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQ4PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50OTwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEwPC9vcHRpb24+CisgICAgICAg
ICAgICAgICAgPG9wdGlvbj5jb250ZW50MTE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0
aW9uPmNvbnRlbnQxMjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEz
PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTQ8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNTwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDE2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50MTc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxODwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE5PC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50MjA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQyMTwvb3B0aW9uPgorICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IGNvbnN1bWUgd2hlZWwg
ZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4iKTsKKzwvc2NyaXB0
PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
c2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNo
ZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7
CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFk
ZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0
LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpu
dGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFi
bGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNm
MzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBz
ZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25M
b2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlOwordmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRp
bnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRo
ZSBzZWxlY3Qgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgc2Vs
ZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICBk
ZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBzZWxl
Y3QgYmVmb3JlOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQ
YWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgc2VsZWN0IGFmdGVy
OiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAoc2VsZWN0U2Nyb2xs
UG9zaXRpb25CZWZvcmUgIT0gc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVz
dEZhaWxlZCgiU2VsZWN0IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RQYXNzZWQoIlNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwor
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxF
X1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAg
IH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxU
ZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3Jv
bGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgc2VsZWN0
VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgc2VsZWN0
U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgLy8g
U2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBz
dGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIHZhciBzdGFydFBv
c1kgPSBzZWxlY3RUYXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBv
bmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCisgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qg
b3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQ
b3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAn
bm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2Vu
ZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1
bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAw
KTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5U
aGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkg
dGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0
IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0
d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCBkb3duPGJyLz4iCisgICAgICAgICAgICArICJwYXN0
IHRoZSBzZWxlY3RUYXJnZXQuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQg
bm90IHNlZSB0aGUgJ2NvbnRlbnQyMScgbGFiZWwgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwu
PC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAg
ICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAw
cHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6
IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNr
IGRvd253YXJkcworICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3Jl
Z2lvbiI+CisgICAgICAgICAgICA8aDM+U2Nyb2xsYWJsZSBTZWxlY3Q8L2gzPgorICAgICAgICAg
ICAgPHNlbGVjdCBpZD0idGFyZ2V0IiBjbGFzcz0ic2Nyb2xsYWJsZV9zZWxlY3QiIHNpemU9Ijgi
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQyPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5j
b250ZW50Mzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDQ8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ1PC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50Njwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ4PC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50OTwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDEwPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50MTE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMjwv
b3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEzPC9vcHRpb24+CisgICAg
ICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTQ8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8
b3B0aW9uPmNvbnRlbnQxNTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDE2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTc8L29wdGlvbj4K
KyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxODwvb3B0aW9uPgorICAgICAgICAgICAg
ICAgIDxvcHRpb24+Y29udGVudDE5PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5j
b250ZW50MjA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyMTwvb3B0
aW9uPgorICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2Pgor
PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Ny
b2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4iKTsKKzwvc2NyaXB0PgorPHByZSBpZD0ibGF5
ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0
Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNl
bGVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorUHV0IG1v
dXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBTZWxlY3QKKworCitUZXN0
cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3
aGVuIHNjcm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorZGl2IGRp
c3BsYXkgaGVpZ2h0ID0gMTExCitNb3VzZSBtb3ZlZCB0byAoMzAsIDIzOCkKK1BhZ2UgYmVmb3Jl
OiAwLCBzZWxlY3QgYmVmb3JlOiA3MAorUGFnZSBhZnRlcjogIDAsIHNlbGVjdCBhZnRlcjogMTgy
CitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVy
CisgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAg
Nzg1LjAwIHggNTg1LjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgICAg
IChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4w
MCB4IDU4NS4wMCkKKyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNo
ZSBjb3ZlcmFnZSAwLCAwIDIwMDggeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIp
CisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgNCB4IDQpCisgICAgKQorICAp
CispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorUHV0IG1vdXNlIGhl
cmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBTZWxlY3QKKworCitUZXN0cyB0aGF0
IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNj
cm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorZGl2IGRpc3BsYXkg
aGVpZ2h0ID0gMTExCitNb3VzZSBtb3ZlZCB0byAoMzAsIDIzOCkKK1BhZ2UgYmVmb3JlOiAwLCBz
ZWxlY3QgYmVmb3JlOiA3MAorUGFnZSBhZnRlcjogIDAsIHNlbGVjdCBhZnRlcjogMTgyCitQQVNT
IFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KK0RvY3VtZW50IHdhcyBpbml0aWFs
IHRhcmdldCBmb3IgNCBvZiB0aGUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJv
dW5kcyAyMDA4LjAwIDIzNDEuMDApCisgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAg
eCA1ODUuMDApCisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgMjAwOC4wMCAyMzQxLjAwKQorICAgICAgKGNvbnRl
bnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1
LjAwKQorICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVy
YWdlIDAsIDAgMjAwOCB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAg
ICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
c2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNl
bGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE1OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
LnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0ZCwg
LnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAgaGVp
Z2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0cm9u
ZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNm
M2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKKyAg
ICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHdo
ZWVsQ291bnQgPSAwOworZnVuY3Rpb24gb25TY3JvbGxXaGVlbChldnQpIHsKKyAgICB3aGVlbENv
dW50ID0gd2hlZWxDb3VudCArIDE7Cit9CisKK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgb25TY3JvbGxXaGVlbCk7CisgICAg
c2V0dXBUb3BMZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9u
TG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgc2VsZWN0VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQ
b3NpdGlvbkJlZm9yZTsKK3ZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250
aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBU
aGUgcGFnZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Ny
b2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBzZWxl
Y3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIGRl
YnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIHNlbGVj
dCBiZWZvcmU6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBh
Z2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBzZWxlY3QgYWZ0ZXI6
ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWls
ZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgZGVi
dWcoIkRvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgIiArIHdoZWVsQ291bnQgKyAiIG9m
IHRoZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gaW50ZXJu
YWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAgICAgICAgIGludGVybmFscy5MQVlF
Ul9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNM
VURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJh
bWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5z
Y3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGFyZ2V0Jyk7CisgICAgc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcCA9IHNlbGVjdFRhcmdldC5zY3Jv
bGxIZWlnaHQgLSBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisgICAgc2VsZWN0
U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgLy8g
U2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBz
dGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRlYnVnKCJkaXYg
ZGlzcGxheSBoZWlnaHQgPSAiICsgc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCk7CisgICAgdmFy
IHN0YXJ0UG9zWSA9IHNlbGVjdFRhcmdldC5vZmZzZXRUb3AgKyBzZWxlY3RUYXJnZXQuY2xpZW50
SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJl
IGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsg
c3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9u
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25l
JywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9
CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0
LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9
ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFu
dWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAg
ICsgImluc2lkZSB0aGUgc2VsZWN0IGJveCwgYW5kIHNjcm9sbCBuZWFyIChidXQgbm90IEFUKSB0
aGUgYm90dG9tIG9mIHRoZSByYW5nZS4gVXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5n
ZXI8YnIvPiIKKyAgICAgICAgICAgICsgInN3aXBlIHRvIHNjcm9sbCB0aHJvdWdoIHRoZSByZXN0
IG9mIHRoZSBzZWxlY3Qgb3B0aW9ucy48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNo
b3VsZCBub3Qgc2VlIHRoZSBwYWdlIHBvc2l0aW9uIGNoYW5nZSBpZiB0aGlzIHRlc3QgaXMgc3Vj
Y2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3Nh
Z2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWln
aHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9
ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBh
bmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9s
bGFibGVfcmVnaW9uIj4KKyAgICAgICAgICAgIDxoMz5TY3JvbGxhYmxlIFNlbGVjdDwvaDM+Cisg
ICAgICAgICAgICA8c2VsZWN0IGlkPSJ0YXJnZXQiIGNsYXNzPSJzY3JvbGxhYmxlX3NlbGVjdCIg
c2l6ZT0iOCI+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8
b3B0aW9uPmNvbnRlbnQzPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50
NDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDU8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ2PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50Nzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ5PC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTA8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQxMTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29u
dGVudDEyPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTM8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNDwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDE1PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50MTY8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNzwv
b3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE4PC9vcHRpb24+CisgICAg
ICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTk8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8
b3B0aW9uPmNvbnRlbnQyMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDIxPC9vcHRpb24+CisgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgPC9kaXY+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8g
bWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0PgorPHByZSBp
ZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNj
cm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNo
ZWQtc2VsZWN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4
OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4OworfQorCisu
dGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAg
IGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7Cisg
ICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpu
dGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+
CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFy
IHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitm
dW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBwYWdlIHNob3VsZCBub3Qg
aGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0g
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAi
ICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9yZTogIiArIHNlbGVj
dFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNlbGVjdFNjcm9sbFBv
c2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3
aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykg
eworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0g
aW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAgICAgICAgIGludGVybmFs
cy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91
ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGFyZ2V0Jyk7CisgICAgc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcCA9IHNlbGVjdFRhcmdl
dC5zY3JvbGxIZWlnaHQgLSBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisgICAg
c2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisg
ICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAg
IHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRlYnVn
KCJkaXYgZGlzcGxheSBoZWlnaHQgPSAiICsgc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCk7Cisg
ICAgdmFyIHN0YXJ0UG9zWSA9IHNlbGVjdFRhcmdldC5vZmZzZXRUb3AgKyBzZWxlY3RUYXJnZXQu
Y2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUg
d2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRv
ICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4n
LCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEw
MCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3Jv
bGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9u
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2Fn
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVy
SFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4g
VG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAg
ICAgICAgICsgImluc2lkZSB0aGUgc2VsZWN0IGJveCwgYW5kIHNjcm9sbCBuZWFyIChidXQgbm90
IEFUKSB0aGUgYm90dG9tIG9mIHRoZSByYW5nZS4gVXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3
by1maW5nZXI8YnIvPiIKKyAgICAgICAgICAgICsgInN3aXBlIHRvIHNjcm9sbCB0aHJvdWdoIHRo
ZSByZXN0IG9mIHRoZSBzZWxlY3Qgb3B0aW9ucy48YnIvPjxici8+IgorICAgICAgICAgICAgKyAi
WW91IHNob3VsZCBub3Qgc2VlIHRoZSBwYWdlIHBvc2l0aW9uIGNoYW5nZSBpZiB0aGlzIHRlc3Qg
aXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxk
KG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxl
PSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIg
c3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2Ug
aGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9
InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAgICAgICAgIDxoMz5TY3JvbGxhYmxlIFNlbGVjdDwv
aDM+CisgICAgICAgICAgICA8c2VsZWN0IGlkPSJ0YXJnZXQiIGNsYXNzPSJzY3JvbGxhYmxlX3Nl
bGVjdCIgc2l6ZT0iOCI+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDI8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQzPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5j
b250ZW50NDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDU8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ2PC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50Nzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ5PC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTA8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDEyPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTM8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNDwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE1PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MTY8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQxNzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE4PC9vcHRpb24+
CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTk8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQyMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDIxPC9vcHRpb24+CisgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgPC9kaXY+
CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVu
dHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0Pgor
PHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3Jv
bGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9z
Y3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw2MCBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcwor
U2Nyb2xsYWJsZSBSZWdpb24KKworQ291bnQJREFUQQlSZXYgQ291bnQKK1RPUCBUT1AgVE9QIFRP
UCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCisxCTAuMTEwMAk0
MAorMgkwLjExNTUJMzkKKzMJMC4yMjAwCTM4Cis0CTAuMjI1NQkzNworNQkwLjMzMDAJMzYKKzYJ
MC4zMzU1CTM1Cis3CTAuNDQwMAkzNAorOAkwLjQ0NTUJMzMKKzkJMC41NTAwCTMyCisxMAkwLjU1
NTUJMzEKKzExCTAuNjYwMAkzMAorMTIJMC42NjU1CTI5CisxMwkwLjc3MDAJMjgKKzE0CTAuNzc1
NQkyNworMTUJMC44ODAwCTI2CisxNgkwLjg4NTUJMjUKKzE3CTAuOTkwMAkyNAorMTgJMC45OTU1
CTIzCisxOQkwLjk5OTkJMjIKKzIwCTEuMDAwMAkyMQorMjEJMS4wMDAwCTIwCisyMgkwLjk5OTkJ
MTkKKzIzCTAuOTk1NQkxOAorMjQJMC45OTAwCTE3CisyNQkwLjg4NTUJMTYKKzI2CTAuODgwMAkx
NQorMjcJMC43NzU1CTE0CisyOAkwLjc3MDAJMTMKKzI5CTAuNjY1NQkxMgorMzAJMC42NjAwCTEx
CiszMQkwLjU1NTUJMTAKKzMyCTAuNTUwMAk5CiszMwkwLjQ0NTUJOAorMzQJMC40NDAwCTcKKzM1
CTAuMzM1NQk2CiszNgkwLjMzMDAJNQorMzcJMC4yMjU1CTQKKzM4CTAuMjIwMAkzCiszOQkwLjEx
NTUJMgorNDAJMC4xMTAwCTEKK0VORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVO
RAlFTkQgRU5EIEVORCBFTkQgRU5ECitUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24n
dCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRv
bQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitkaXYgZGlzcGxheSBoZWlnaHQgPSA0ODUKK01v
dXNlIG1vdmVkIHRvICgyOCwgNjEwKQorUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZvcmU6IDQ1MQor
UGFnZSBhZnRlcjogIDAsIGRpdiBhZnRlcjogNDUxCitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZl
IHdoZWVsIGV2ZW50cy4KKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Ny
b2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xs
aW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnNjcm9s
bGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0ZCwgLnRhYmxl
IHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAgaGVpZ2h0OiAy
MHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0cm9uZzsKK30K
KworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOwor
fQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNr
Z3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24g
b25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIGRpdlRhcmdldDsKK3Zh
ciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7
Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgewor
CisgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZh
ciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAg
IHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAg
IGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIGRp
diBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2Ug
YWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0ZXI6ICIgKyBk
aXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2Ug
cmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgi
UGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdo
ZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9j
dW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgZGl2VGFyZ2V0LnNjcm9sbFRvcCA9IGRpdlRhcmdldC5z
Y3JvbGxIZWlnaHQgLSBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisgICAgZGl2U2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xs
IHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBv
c1ggPSBkaXZUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRlYnVnKCJkaXYgZGlzcGxheSBo
ZWlnaHQgPSAiICsgZGl2VGFyZ2V0LmNsaWVudEhlaWdodCk7CisgICAgdmFyIHN0YXJ0UG9zWSA9
IGRpdlRhcmdldC5vZmZzZXRUb3AgKyBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9u
ZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUg
aUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiAr
IHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOwor
ICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVs
c2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMg
YmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxh
Y2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2Yg
dGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3
aXBlIHRvIHNjcm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgZGl2
Ljxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBv
ZiBFTkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBt
ZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3Njcmlw
dD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4
OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUw
MHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAgICAgIDxoMz5T
Y3JvbGxhYmxlIFJlZ2lvbjwvaDM+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9J292
ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgbWF4LWhlaWdodDogNDg1cHg7Jz4K
KyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUiIHN0eWxlPSd3aWR0aDogOTklJz4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRoPkNvdW50PC90aD48dGg+REFUQTwvdGg+PHRoPlJldiBDb3Vu
dDwvdGg+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8
L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE8L3RkPjx0ZD4wLjExMDA8L3RkPjx0
ZD40MDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI8L3RkPjx0ZD4wLjExNTU8
L3RkPjx0ZD4zOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM8L3RkPjx0ZD4w
LjIyMDA8L3RkPjx0ZD4zODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQ8L3Rk
Pjx0ZD4wLjIyNTU8L3RkPjx0ZD4zNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjU8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD4zNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjY8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD4zNTwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjc8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD4zNDwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjg8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD4zMzwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjk8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD4zMjwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEwPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+
MzE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMTwvdGQ+PHRkPjAuNjYwMDwv
dGQ+PHRkPjMwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTI8L3RkPjx0ZD4w
LjY2NTU8L3RkPjx0ZD4yOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEzPC90
ZD48dGQ+MC43NzAwPC90ZD48dGQ+Mjg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4xNDwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjI3PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MTU8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4yNjwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjE2PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MjU8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4xNzwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjI0PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTg8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4y
MzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE5PC90ZD48dGQ+MC45OTk5PC90
ZD48dGQ+MjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMDwvdGQ+PHRkPjEu
MDAwMDwvdGQ+PHRkPjIxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjE8L3Rk
Pjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjIyPC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MTk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4yMzwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjE4PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4xNzwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjI1PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MTY8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNjwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjE1
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjc8L3RkPjx0ZD4wLjc3NTU8L3Rk
Pjx0ZD4xNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI4PC90ZD48dGQ+MC43
NzAwPC90ZD48dGQ+MTM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yOTwvdGQ+
PHRkPjAuNjY1NTwvdGQ+PHRkPjEyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MzA8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4xMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjMxPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MTA8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4zMjwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjk8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zMzwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjg8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNDwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjc8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNTwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRk
PjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNjwvdGQ+PHRkPjAuMzMwMDwv
dGQ+PHRkPjU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNzwvdGQ+PHRkPjAu
MjI1NTwvdGQ+PHRkPjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zODwvdGQ+
PHRkPjAuMjIwMDwvdGQ+PHRkPjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4z
OTwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD40MDwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjE8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVO
RDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjwvdHI+CisgICAgICAgICAgICA8L3Rh
YmxlPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzY3JvbGxhYmxl
IGRpdiBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxp
bmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNo
ZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9z
Y3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253
YXJkcworU2Nyb2xsYWJsZSBSZWdpb24KKworQ291bnQJREFUQQlSZXYgQ291bnQKK1RPUCBUT1Ag
VE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCisxCTAu
MTEwMAk0MAorMgkwLjExNTUJMzkKKzMJMC4yMjAwCTM4Cis0CTAuMjI1NQkzNworNQkwLjMzMDAJ
MzYKKzYJMC4zMzU1CTM1Cis3CTAuNDQwMAkzNAorOAkwLjQ0NTUJMzMKKzkJMC41NTAwCTMyCisx
MAkwLjU1NTUJMzEKKzExCTAuNjYwMAkzMAorMTIJMC42NjU1CTI5CisxMwkwLjc3MDAJMjgKKzE0
CTAuNzc1NQkyNworMTUJMC44ODAwCTI2CisxNgkwLjg4NTUJMjUKKzE3CTAuOTkwMAkyNAorMTgJ
MC45OTU1CTIzCisxOQkwLjk5OTkJMjIKKzIwCTEuMDAwMAkyMQorMjEJMS4wMDAwCTIwCisyMgkw
Ljk5OTkJMTkKKzIzCTAuOTk1NQkxOAorMjQJMC45OTAwCTE3CisyNQkwLjg4NTUJMTYKKzI2CTAu
ODgwMAkxNQorMjcJMC43NzU1CTE0CisyOAkwLjc3MDAJMTMKKzI5CTAuNjY1NQkxMgorMzAJMC42
NjAwCTExCiszMQkwLjU1NTUJMTAKKzMyCTAuNTUwMAk5CiszMwkwLjQ0NTUJOAorMzQJMC40NDAw
CTcKKzM1CTAuMzM1NQk2CiszNgkwLjMzMDAJNQorMzcJMC4yMjU1CTQKKzM4CTAuMjIwMAkzCisz
OQkwLjExNTUJMgorNDAJMC4xMTAwCTEKK0VORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVORCBFTkQg
RU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECitUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYg
ZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRvIG1h
aW4gZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK01vdXNlIG1vdmVkIHRvICgyOCwg
MTI1KQorUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6ICAzMjAsIGRp
diBhZnRlcjogMAorUEFTUyBTY3JvbGxhYmxlIGRpdiBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZl
bnRzLgorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Ny
b2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1l
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3Jv
bGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAgIHdpZHRoOiA2ODBweDsKK30KKworLnRhYmxlIHRk
LCAudGFibGUgdGggeworICAgIHBhZGRpbmc6IDJweDsKK30KKworLnRhYmxlIHRoIHsKKyAgICBo
ZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBmb250LXdlaWdodDogc3Ry
b25nOworfQorCisudGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNm
M2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgewor
ICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBvbkxvYWQoKSB7CisgICAgc2V0dXBUb3BMZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgZGl2VGFy
Z2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBkaXZTY3JvbGxQb3NpdGlv
bkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3Jv
bGwoKSB7CisKKyAgICAvLyBUaGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwu
CisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxU
b3A7CisgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9w
OworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ICsgIiwgZGl2IGJlZm9yZTogIiArIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1
ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIGRpdiBhZnRl
cjogIiArIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKGRpdlNjcm9sbFBvc2l0
aW9uQmVmb3JlICE9IGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQo
IlNjcm9sbGFibGUgZGl2IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RQYXNzZWQoIlNjcm9sbGFibGUgZGl2IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVu
dHMuIik7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Ny
b2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRp
dlRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIGRpdlNj
cm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9s
bCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQ
b3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gZGl2
VGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNj
cm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0
YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhl
IGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIg
KyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsK
KyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1
cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlz
IGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBs
YWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9m
IHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBz
d2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIGRp
di48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cg
b2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAg
bWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBw
eDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1
MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICA8aDM+
U2Nyb2xsYWJsZSBSZWdpb248L2gzPgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdv
dmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWlnaHQ6IDQ4NXB4Oyc+
CisgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIiBzdHlsZT0nd2lkdGg6IDk5JSc+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0aD5Db3VudDwvdGg+PHRoPkRBVEE8L3RoPjx0aD5SZXYgQ291
bnQ8L3RoPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9Q
PC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+MC4xMTAwPC90ZD48
dGQ+NDA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yPC90ZD48dGQ+MC4xMTU1
PC90ZD48dGQ+Mzk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zPC90ZD48dGQ+
MC4yMjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40PC90
ZD48dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD41PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+MzM8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+MzI8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRk
PjMxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTE8L3RkPjx0ZD4wLjY2MDA8
L3RkPjx0ZD4zMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEyPC90ZD48dGQ+
MC42NjU1PC90ZD48dGQ+Mjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMzwv
dGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjI4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MTQ8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4yNDwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+
MjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+PHRkPjAuOTk5OTwv
dGQ+PHRkPjIyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjA8L3RkPjx0ZD4x
LjAwMDA8L3RkPjx0ZD4yMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIxPC90
ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4yMjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MjM8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjE2PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4x
NTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48dGQ+MC43NzU1PC90
ZD48dGQ+MTQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yODwvdGQ+PHRkPjAu
NzcwMDwvdGQ+PHRkPjEzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjk8L3Rk
Pjx0ZD4wLjY2NTU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjMwPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD44PC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD43PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0
ZD42PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzY8L3RkPjx0ZD4wLjMzMDA8
L3RkPjx0ZD41PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzc8L3RkPjx0ZD4w
LjIyNTU8L3RkPjx0ZD40PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzg8L3Rk
Pjx0ZD4wLjIyMDA8L3RkPjx0ZD4zPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
Mzk8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4yPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBF
TkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48L3RyPgorICAgICAgICAgICAgPC90
YWJsZT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJs
ZSBkaXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVk
IHRvIG1haW4gZnJhbWUuIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRv
d253YXJkcworCitUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRv
IG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK0lGcmFtZSBkaXNwbGF5IGhlaWdodCA9IDUwMAorTW91c2UgbW92ZWQgdG8gKDI4LCA1
NjYpCitQYWdlIGJlZm9yZTogMCwgSUZyYW1lIGJlZm9yZTogNDE2CitQYWdlIGFmdGVyOiAgMCwg
SUZyYW1lIGFmdGVyOiA0MTYKK1BBU1MgUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRz
LgorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xs
LWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxp
bmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZl
bnRzLVdoZWVsRXZlbnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK3ZhciBp
ZnJhbWVUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGlGcmFtZVNj
cm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBj
aGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBJRnJhbWUgc2hvdWxkIG5vdCBoYXZlIHNj
cm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVu
dC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdp
bmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGVi
dWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgSUZyYW1l
IGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFn
ZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIElGcmFtZSBhZnRlcjog
IiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3Np
dGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxl
ZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0
UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAv
LyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGlmcmFtZVRhcmdldCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIHZhciBpRnJhbWVCb2R5ID0gd2lu
ZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keTsKKyAgICBpRnJhbWVCb2R5LnNjcm9s
bFRvcCA9IGlGcmFtZUJvZHkuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdo
dCAtIDEwMDsKKworICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaUZyYW1lQm9keS5z
Y3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhl
ICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0ICsg
MjA7CisgICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhlaWdodCA9ICIgKyBpZnJhbWVUYXJnZXQu
Y2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFyZ2V0Lm9mZnNldFRv
cCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVm
b3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9z
WSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1
ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIiki
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcs
ICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0VGltZW91dChj
aGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKwor
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAg
ICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7CisgICAgICAgIHZh
ciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7Cisg
ICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAg
ICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVy
IER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9p
bnRlcjxici8+IgorICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBJRnJhbWUsIHRoZW4gdXNlIHRo
ZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZSBJRnJhbWUg
dG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPGJyLz4iCisgICAgICAgICAgICArICI8YnIvPjxi
ci8+IgorICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzY3JvbGwgZmFyIGVu
b3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0aGUgbWFpbiBwYWdlIGRvZXMg
bm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1l
c3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJo
ZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBw
eCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rp
dj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdldCIgc3R5bGU9ImJvcmRlcjpz
b2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAwcHg7IHdpZHRoOiA1MDBweDsiIAorICAgICBzcmM9
ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRpdiBpZD0nbm90VG9CZVNjcm9sbGVkJyBzdHlsZT0n
aGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7Jz4KKyAgICAgVE9QIFRPUCBUT1AgVE9QIFRP
UCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUDxici8+PGJyLz4KKyAgICAgVGhp
cyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3Jv
bGwgZG93bgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIDxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgor
ICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlv
dSBzY3JvbGwgZG93bjxici8+CisgICAgIDxici8+CisgICAgIEVORCBFTkQgRU5EIEVORCBFTkQg
RU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAorICAgICA8L2Rpdj4KKyAgICAgIgorICAg
ICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiCisgICAgID4KKyAgICA8L2lmcmFtZT4KKzwvZGl2
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVu
IHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQt
bWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitQdXQgbW91c2UgaGVy
ZSBhbmQgZmxpY2sgZG93bndhcmRzCisKK1Rlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgY29uc3Vt
ZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTW91
c2UgbW92ZWQgdG8gKDI4LCA2NikKK1BhZ2UgYmVmb3JlOiAwLCBJRnJhbWUgYmVmb3JlOiAwCitQ
YWdlIGFmdGVyOiAgMzIwLCBJRnJhbWUgYWZ0ZXI6IDAKK1BBU1MgSUZyYW1lIGRpZCBub3QgcmVj
ZWl2ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJh
bWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1l
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKwordmFyIGlmcmFtZVRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmU7Cit2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGlu
dWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhl
IElGcmFtZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Ny
b2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBpRnJh
bWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xs
UG9zaXRpb25CZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRp
b25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlv
bkFmdGVyICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcik7
CisKKyAgICBpZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaUZyYW1lU2Nyb2xsUG9z
aXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiSUZyYW1lIGNvbnN1bWVkIHdoZWVsIGV2
ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIklGcmFtZSBkaWQgbm90IHJl
Y2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9
CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUg
bGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3A7CisgICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3aW5kb3cuZnJhbWVzWyd0
YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGlmcmFtZVRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIC8vIFNjcm9sbCB0aGUgI3Nv
dXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gaWZy
YW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFy
Z2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9s
bCBhd2F5IGZyb20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0
UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlG
cmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBz
dGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAg
ICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRv
cExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJl
dHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNl
IHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRo
ZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lw
ZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIElGcmFt
ZS48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cg
b2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAg
bWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBp
ZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJl
IGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQi
IG5hbWU9InRhcmdldCIgc3R5bGU9ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAw
cHg7IHdpZHRoOiA1MDBweDsiIAorICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRp
diBpZD0nbm90VG9CZVNjcm9sbGVkJyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAw
cHg7Jz4KKyAgICAgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QIFRPUDxici8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBp
bnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bgorICAgICA8YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+CisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAg
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlz
aWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgIDxi
ci8+CisgICAgIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5E
IEVORAorICAgICA8L2Rpdj4KKyAgICAgIgorICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsi
CisgICAgID4KKyAgICA8L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgY29uc3Vt
ZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9z
Y3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1s
YXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5m
cmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorUHV0IG1v
dXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBTZWxlY3QKKworCitUZXN0
cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwg
aXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitNb3Vz
ZSBtb3ZlZCB0byAoMzAsIDEyNykKK1BhZ2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVmb3JlOiAwCitQ
YWdlIGFmdGVyOiAgMzIwLCBzZWxlY3QgYWZ0ZXI6IDAKK1BBU1MgU2VsZWN0IGRpZCBub3QgcmVj
ZWl2ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1l
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lkdGg6
IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4Owor
fQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0
OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQob2Rk
KSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0IG9w
dGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworPC9z
dHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBzZXR1cFRvcExl
dmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4K
KzxzY3JpcHQ+CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlOwordmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQg
PSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBzZWxlY3Qg
c2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0
aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgc2VsZWN0U2Nyb2xs
UG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFn
ZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBzZWxlY3QgYmVmb3Jl
OiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVy
OiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgc2VsZWN0IGFmdGVyOiAiICsgc2Vs
ZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAoc2VsZWN0U2Nyb2xsUG9zaXRpb25C
ZWZvcmUgIT0gc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgi
U2VsZWN0IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQ
YXNzZWQoIlNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAg
Ly8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICBzZWxlY3RTY3JvbGxQb3NpdGlv
bkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNz
b3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IHNl
bGVjdFRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IHNlbGVjdFRh
cmdldC5vZmZzZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3Jv
bGwgYXdheSBmcm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFy
dFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBp
RnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsg
c3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Cisg
ICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBU
b3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBi
ZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFj
ZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0
aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dp
cGUgdG8gc2Nyb2xsIGRvd248YnIvPiIKKyAgICAgICAgICAgICsgInBhc3QgdGhlIHNlbGVjdFRh
cmdldC48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSAn
Y29udGVudDIxJyBsYWJlbCBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAg
ICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9z
Y3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIw
MDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRo
OiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisg
ICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAg
ICAgICAgIDxoMz5TY3JvbGxhYmxlIFNlbGVjdDwvaDM+CisgICAgICAgICAgICA8c2VsZWN0IGlk
PSJ0YXJnZXQiIGNsYXNzPSJzY3JvbGxhYmxlX3NlbGVjdCIgc2l6ZT0iOCI+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50MTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQzPC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50NDwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQ2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Nzwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDg8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQ5PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50MTA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMTwv
b3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEyPC9vcHRpb24+CisgICAg
ICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8
b3B0aW9uPmNvbnRlbnQxNDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDE1PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTY8L29wdGlvbj4K
KyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNzwvb3B0aW9uPgorICAgICAgICAgICAg
ICAgIDxvcHRpb24+Y29udGVudDE4PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5j
b250ZW50MTk8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyMDwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDIxPC9vcHRpb24+CisgICAgICAg
ICAgICA8L3NlbGVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEg
c2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hl
ZCB0byBtYWluIGZyYW1lLiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBk
b3dud2FyZHMKK1Njcm9sbGFibGUgU2VsZWN0CisKKworVGVzdHMgdGhhdCBhIHNlbGVjdCBkb2Vz
bid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90
dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2RpdiBkaXNwbGF5IGhlaWdodCA9IDExMQor
TW91c2UgbW92ZWQgdG8gKDMwLCAyMzgpCitQYWdlIGJlZm9yZTogMCwgc2VsZWN0IGJlZm9yZTog
NzAKK1BhZ2UgYWZ0ZXI6ICAwLCBzZWxlY3QgYWZ0ZXI6IDE4MgorUEFTUyBQYWdlIGRpZCBub3Qg
cmVjZWl2ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4
OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4OworfQorCisu
dGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAg
IGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7Cisg
ICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpu
dGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBzZXR1cFRvcExldmVsKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3Jp
cHQ+CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwor
dmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1Owor
CitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBwYWdlIHNob3VsZCBu
b3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVy
ID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9u
QWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3Jl
OiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9yZTogIiArIHNl
bGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBw
YWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNlbGVjdFNjcm9s
bFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBw
YWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZl
ZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRp
ZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3Vy
IElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5i
b2R5LnNjcm9sbFRvcDsKKworICAgIHNlbGVjdFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0YXJnZXQnKTsKKyAgICBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wID0gc2VsZWN0VGFyZ2V0
LnNjcm9sbEhlaWdodCAtIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisKKyAgICBz
ZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAg
ICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAg
dmFyIHN0YXJ0UG9zWCA9IHNlbGVjdFRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgZGVidWco
ImRpdiBkaXNwbGF5IGhlaWdodCA9ICIgKyBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAg
ICB2YXIgc3RhcnRQb3NZID0gc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCArIHNlbGVjdFRhcmdldC5j
bGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3
ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8g
KCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbics
ICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAw
KTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9s
bFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJI
VE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBU
byBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAg
ICAgICAgKyAiaW5zaWRlIHRoZSBzZWxlY3QgYm94LCBhbmQgc2Nyb2xsIG5lYXIgKGJ1dCBub3Qg
QVQpIHRoZSBib3R0b20gb2YgdGhlIHJhbmdlLiBVc2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdv
LWZpbmdlcjxici8+IgorICAgICAgICAgICAgKyAic3dpcGUgdG8gc2Nyb2xsIHRocm91Z2ggdGhl
IHJlc3Qgb2YgdGhlIHNlbGVjdCBvcHRpb25zLjxici8+PGJyLz4iCisgICAgICAgICAgICArICJZ
b3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHBhZ2UgcG9zaXRpb24gY2hhbmdlIGlmIHRoaXMgdGVzdCBp
cyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQo
bWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9
ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBz
dHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBo
ZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
c2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICAgICAgPGgzPlNjcm9sbGFibGUgU2VsZWN0PC9o
Mz4KKyAgICAgICAgICAgIDxzZWxlY3QgaWQ9InRhcmdldCIgY2xhc3M9InNjcm9sbGFibGVfc2Vs
ZWN0IiBzaXplPSI4Ij4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxPC9vcHRpb24+
CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Mjwvb3B0aW9uPgorICAgICAgICAgICAg
ICAgIDxvcHRpb24+Y29udGVudDM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNv
bnRlbnQ0PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50NTwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDY8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQ3PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5j
b250ZW50ODwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDk8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMDwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDExPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50MTI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMzwv
b3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE0PC9vcHRpb24+CisgICAg
ICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8
b3B0aW9uPmNvbnRlbnQxNjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDE3PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTg8L29wdGlvbj4K
KyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxOTwvb3B0aW9uPgorICAgICAgICAgICAg
ICAgIDxvcHRpb24+Y29udGVudDIwPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5j
b250ZW50MjE8L29wdGlvbj4KKyAgICAgICAgICAgIDwvc2VsZWN0PgorICAgICAgICA8L2Rpdj4K
KyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50
cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224139</attachid>
            <date>2014-02-13 18:02:45 -0800</date>
            <delta_ts>2014-02-13 20:02:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127606-20140213180245.patch</filename>
            <type>text/plain</type>
            <size>163906</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDE0LTAyLTEzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgorCisgICAgICAgIENyZWF0ZSBzb21lIGxhdGNoZWQgc2Nyb2xsaW5nIHRlc3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjA2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xNTkxMTM0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5tbToKKyAgICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciBpc1NlbGVjdG9yRXhj
bHVkZWRGcm9tV2ViU2NyaXB0Ol0pOiBVcGRhdGUgdG8gcmVjb2duaXplCisgICAgICAgIHRoZSBu
ZXcgIm1vdXNlU2Nyb2xsQnlYOmFuZFk6d2l0aFdoZWVsOmFuZE1vbWVudHVtUGhhc2VzOiIgc2Vs
ZWN0b3IuCisgICAgICAgICgrW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgd2ViU2NyaXB0TmFtZUZv
clNlbGVjdG9yOl0pOiBEaXR0by4KKyAgICAgICAgKC1bRXZlbnRTZW5kaW5nQ29udHJvbGxlciBt
b3VzZVNjcm9sbEJ5WDphbmRZOndpdGhXaGVlbDphbmRNb21lbnR1bVBoYXNlczpdKTogSW1wbGVt
ZW50CisgICAgICAgIHRoZSBuZXcgd2hlZWwgZXZlbnQgc2VuZGVyLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGw6IEFk
ZCBkZWNsYXJhdGlvbgorICAgICAgICBvZiBuZXcgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzIG1ldGhvZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpFdmVudFNl
bmRpbmdDb250cm9sbGVyOjptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMp
OiBBZGRlZAorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW06CisgICAgICAgIChXVFI6OkV2ZW50U2Vu
ZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyk6IEFkZCBz
dHViIGZvciBpT1MuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6IEhhbmRsZSB0aGUgbmV3CisgICAgICAgIG1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcyBtZXNzYWdlLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6IEhh
bmRsZSB0aGUKKyAgICAgICAgbmV3IG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZs
LmNwcDoKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKTogUHJvdmlkZSBzdHViIHRoYXQKKyAgICAgICAgcmVsYXlz
IHRvIHRoZSBzdGFuZGFyZCBtb3VzZSB3aGVlbCBoYW5kbGVyLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwOgorICAgICAgICAoV1RSOjpFdmVu
dFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMpOiBQcm92aWRlIGltcGxlbWVudGF0aW9uCisgICAgICAgIG9mIG1v
dXNlIHdoZWVsIGdlc3R1cmUgbWV0aG9kLgorCiAyMDE0LTAyLTEzICBEYXZpZCBGYXJsZXIgIDxk
ZmFybGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBEdW1wUmVuZGVyVHJlZSBmYWlscyB0byBidWls
ZDogUGVybCBzdXBwb3J0IG1vZHVsZSBidWlsZGluZyBmb3IgT1MgWCBidXQgbGlua2luZyBmb3Ig
dGhlIHNpbXVsYXRvcgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IEpvbmFzIFdpdHQgPGpvbmFzLndpdHRAZ21haWwuY29tPgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQG55cG9wLmNv
bT4KQEAgLTIwMiw2ICsyMDIsNyBAQCArIChCT09MKWlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJT
Y3JpcHQ6CiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHpvb21QYWdlT3V0
KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzY2FsZVBhZ2VCeTphdFg6
YW5kWTopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlU2Nyb2xs
QnlYOmFuZFk6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZVNj
cm9sbEJ5WDphbmRZOndpdGhXaGVlbDphbmRNb21lbnR1bVBoYXNlczopCiAgICAgICAgICAgICB8
fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5WDphbmRZOikK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGFkZFRvdWNoQXRYOnk6KQpAQCAtMjU0LDYgKzI1NSw4IEBAICsgKE5TU3RyaW5nICopd2ViU2Ny
aXB0TmFtZUZvclNlbGVjdG9yOigKICAgICAgICAgcmV0dXJuIEAic2V0RHJhZ01vZGUiOwogICAg
IGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlU2Nyb2xsQnlYOmFuZFk6KSkKICAgICAg
ICAgcmV0dXJuIEAibW91c2VTY3JvbGxCeSI7CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0
b3IobW91c2VTY3JvbGxCeVg6YW5kWTp3aXRoV2hlZWw6YW5kTW9tZW50dW1QaGFzZXM6KSkKKyAg
ICAgICAgcmV0dXJuIEAibW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIjsK
ICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihjb250aW51b3VzTW91c2VTY3JvbGxCeVg6
YW5kWTopKQogICAgICAgICByZXR1cm4gQCJjb250aW51b3VzTW91c2VTY3JvbGxCeSI7CiAgICAg
aWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2NhbGVQYWdlQnk6YXRYOmFuZFk6KSkKQEAgLTY5
OSw2ICs3MDIsNTYgQEAgLSAodm9pZCltb3VzZVNjcm9sbEJ5WDooaW50KXggYW5kWTooaW50KQog
ICAgIFtzZWxmIG1vdXNlU2Nyb2xsQnlYOnggYW5kWTp5IGNvbnRpbnVvdXNseTpOT107CiB9CiAK
Ky0gKHZvaWQpbW91c2VTY3JvbGxCeVg6KGludCl4IGFuZFk6KGludCl5IHdpdGhXaGVlbDooTlNT
dHJpbmcqKXBoYXNlTmFtZSBhbmRNb21lbnR1bVBoYXNlczooTlNTdHJpbmcqKW1vbWVudHVtTmFt
ZQoreworI2lmICFQTEFURk9STShJT1MpCisgICAgdWludDMyX3QgcGhhc2UgPSAwOworICAgIGlm
IChbcGhhc2VOYW1lIGlzRXF1YWxUb1N0cmluZzogQCJub25lIl0pCisgICAgICAgIHBoYXNlID0g
MDsKKyAgICBlbHNlIGlmIChbcGhhc2VOYW1lIGlzRXF1YWxUb1N0cmluZzogQCJiZWdhbiJdKQor
ICAgICAgICBwaGFzZSA9IDE7IC8vIGtDR1Njcm9sbFBoYXNlQmVnYW4KKyAgICBlbHNlIGlmIChb
cGhhc2VOYW1lIGlzRXF1YWxUb1N0cmluZzogQCJjaGFuZ2QiXSkKKyAgICAgICAgcGhhc2UgPSAy
OyAvLyBrQ0dTY3JvbGxQaGFzZUNoYW5nZWQ7CisgICAgZWxzZSBpZiAoW3BoYXNlTmFtZSBpc0Vx
dWFsVG9TdHJpbmc6IEAiZW5kZWQiXSkKKyAgICAgICAgcGhhc2UgPSA0OyAvLyBrQ0dTY3JvbGxQ
aGFzZUVuZGVkCisgICAgZWxzZSBpZiAoW3BoYXNlTmFtZSBpc0VxdWFsVG9TdHJpbmc6IEAiY2Fu
Y2VsbGVkIl0pCisgICAgICAgIHBoYXNlID0gODsgLy8ga0NHU2Nyb2xsUGhhc2VDYW5jZWxsZWQK
KyAgICBlbHNlIGlmIChbcGhhc2VOYW1lIGlzRXF1YWxUb1N0cmluZzogQCJtYXliZWdpbiJdKQor
ICAgICAgICBwaGFzZSA9IDEyODsgLy8ga0NHU2Nyb2xsUGhhc2VNYXlCZWdpbgorCisgICAgdWlu
dDMyX3QgbW9tZW50dW0gPSAwOworICAgIGlmIChbbW9tZW50dW1OYW1lIGlzRXF1YWxUb1N0cmlu
ZzogQCJub25lIl0pCisgICAgICAgIG1vbWVudHVtID0gMDsgLy9rQ0dNb21lbnR1bVNjcm9sbFBo
YXNlTm9uZTsKKyAgICBlbHNlIGlmIChbbW9tZW50dW1OYW1lIGlzRXF1YWxUb1N0cmluZzpAImJl
Z2luIl0pCisgICAgICAgIG1vbWVudHVtID0gMTsgLy8ga0NHTW9tZW50dW1TY3JvbGxQaGFzZUJl
Z2luOworICAgIGVsc2UgaWYgKFttb21lbnR1bU5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiY29udGlu
dWUiXSkKKyAgICAgICAgbW9tZW50dW0gPSAyOyAvLyBrQ0dNb21lbnR1bVNjcm9sbFBoYXNlQ29u
dGludWU7CisgICAgZWxzZSBpZiAoW21vbWVudHVtTmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJlbmQi
XSkKKyAgICAgICAgbW9tZW50dW0gPSAzOyAvLyBrQ0dNb21lbnR1bVNjcm9sbFBoYXNlRW5kOwor
CisgICAgQ0dFdmVudFJlZiBjZ1Njcm9sbEV2ZW50ID0gQ0dFdmVudENyZWF0ZVNjcm9sbFdoZWVs
RXZlbnQoTlVMTCwga0NHU2Nyb2xsRXZlbnRVbml0TGluZSwgMiwgeSwgeCk7CisKKyAgICAvLyBD
R0V2ZW50IGxvY2F0aW9ucyBhcmUgaW4gZ2xvYmFsIGRpc3BsYXkgY29vcmRpbmF0ZXMuCisgICAg
Q0dQb2ludCBsYXN0R2xvYmFsTW91c2VQb3NpdGlvbiA9IENHUG9pbnRNYWtlKGxhc3RNb3VzZVBv
c2l0aW9uLngsIFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gbGFz
dE1vdXNlUG9zaXRpb24ueSk7CisgICAgQ0dFdmVudFNldExvY2F0aW9uKGNnU2Nyb2xsRXZlbnQs
IGxhc3RHbG9iYWxNb3VzZVBvc2l0aW9uKTsKKyAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmll
bGQoY2dTY3JvbGxFdmVudCwga0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlLCBwaGFzZSk7
CisKKyNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTA5MAorICAgIGNvbnN0IHVpbnQzMl90IGtDR1Njcm9sbFdoZWVsRXZlbnRNb21lbnR1bVBo
YXNlID0gMTIzOworI2VuZGlmCisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGNnU2Ny
b2xsRXZlbnQsIGtDR1Njcm9sbFdoZWVsRXZlbnRNb21lbnR1bVBoYXNlLCBtb21lbnR1bSk7Cisg
ICAgCisgICAgTlNFdmVudCogc2Nyb2xsRXZlbnQgPSBbTlNFdmVudCBldmVudFdpdGhDR0V2ZW50
OmNnU2Nyb2xsRXZlbnRdOworICAgIENGUmVsZWFzZShjZ1Njcm9sbEV2ZW50KTsKKworICAgIGlm
IChOU1ZpZXcqIHRhcmdldFZpZXcgPSBbW21haW5GcmFtZSB3ZWJWaWV3XSBoaXRUZXN0OltzY3Jv
bGxFdmVudCBsb2NhdGlvbkluV2luZG93XV0pIHsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50
RXZlbnQ6c2Nyb2xsRXZlbnRdOworICAgICAgICBbdGFyZ2V0VmlldyBzY3JvbGxXaGVlbDpzY3Jv
bGxFdmVudF07CisgICAgICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50Om5pbF07CisgICAgfQor
I2VuZGlmCit9CisKIC0gKE5TQXJyYXkgKiljb250ZXh0Q2xpY2sKIHsKICNpZiAhUExBVEZPUk0o
SU9TKQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgJKHJl
dmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VV
cCh1bnNpZ25lZCBidXR0b24sIFdLRXZlbnRNb2RpZmllcnMpOwogICAgIHZvaWQgbW91c2VNb3Zl
VG8oZG91YmxlIHgsIGRvdWJsZSB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGlu
dCB5KTsKKyAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhp
bnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKTsKICAgICB2b2lkIGNvbnRpbnVv
dXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCk7CiAKICAgICB2b2lkIGxl
YXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NTYsNiArODU2LDI1
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnIKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKHN1Yk1lc3NhZ2VOYW1lLCAiTW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzIikpIHsKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0g
YWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKKyAgICAgICAgICAg
IGRvdWJsZSB4ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tE
aWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkp
KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5
S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWSIpKTsKKyAgICAg
ICAgICAgIGRvdWJsZSB5ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJl
Zj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHlLZXku
Z2V0KCkpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBwaGFzZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBo
YXNlIikpOworICAgICAgICAgICAgaW50IHBoYXNlID0gc3RhdGljX2Nhc3Q8aW50PihXS1VJbnQ2
NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9y
S2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgcGhhc2VLZXkuZ2V0KCkpKSkpOworICAgICAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5ID0gYWRvcHRXSyhXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9tZW50dW0iKSk7CisgICAgICAgICAgICBpbnQgbW9t
ZW50dW0gPSBzdGF0aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tV
SW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCBtb21lbnR1bUtleS5nZXQoKSkpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEZv
cndhcmQgdG8gV2ViUHJvY2VzcworICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50
c1N5bmNocm9ub3VzbHkobWFpbldlYlZpZXcoKS0+cGFnZSgpLCBmYWxzZSk7CisgICAgICAgICAg
ICBtX2V2ZW50U2VuZGVyUHJveHktPm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyh4LCB5LCBwaGFzZSwgbW9tZW50dW0pOworCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKQEAgLTkyNSw2
ICs5NDQsMjUgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0Q29udHJvbGxlcjo6ZAogICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIk1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcyIpKSB7CisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4geEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7Cisg
ICAgICAgICAgICBkb3VibGUgeCA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3Vi
bGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB4
S2V5LmdldCgpKSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4geUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlki
KSk7CisgICAgICAgICAgICBkb3VibGUgeSA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8
V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCB5S2V5LmdldCgpKSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gcGhhc2VLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJQaGFzZSIpKTsKKyAgICAgICAgICAgIGludCBwaGFzZSA9IHN0YXRpY19jYXN0PGlu
dD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5
R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHBoYXNlS2V5LmdldCgpKSkpKTsK
KyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb21lbnR1bUtleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk1vbWVudHVtIikpOworICAgICAgICAg
ICAgaW50IG1vbWVudHVtID0gc3RhdGljX2Nhc3Q8aW50PihXS1VJbnQ2NEdldFZhbHVlKHN0YXRp
Y19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5
RGljdGlvbmFyeSwgbW9tZW50dW1LZXkuZ2V0KCkpKSkpOworCisgICAgICAgICAgICAvLyBGb3J3
YXJkIHRvIFdlYlByb2Nlc3MKKyAgICAgICAgICAgIFdLUGFnZVNldFNob3VsZFNlbmRFdmVudHNT
eW5jaHJvbm91c2x5KG1haW5XZWJWaWV3KCktPnBhZ2UoKSwgdHJ1ZSk7CisgICAgICAgICAgICBt
X2V2ZW50U2VuZGVyUHJveHktPm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cyh4LCB5LCBwaGFzZSwgbW9tZW50dW0pOworICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2Vu
ZEV2ZW50c1N5bmNocm9ub3VzbHkobWFpbldlYlZpZXcoKS0+cGFnZSgpLCBmYWxzZSk7CisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgaWYgKFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJDb250aW51b3VzTW91c2VT
Y3JvbGxCeSIpKSB7CiAgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geEtleSA9
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7CiAgICAgICAgICAg
ICBkb3VibGUgeCA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdL
RGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB4S2V5LmdldCgp
KSkpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNl
bmRpbmdDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNjQw
ODMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNDcsNiArMzQ3LDYx
IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VTY3JvbGwKICAgICBXS0J1bmRs
ZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgp
LCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5Lmdl
dCgpLCAwKTsKIH0KIAordm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjptb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBKU1N0cmluZ1JlZiBwaGFz
ZVN0ciwgSlNTdHJpbmdSZWYgbW9tZW50dW1TdHIsIGJvb2wgYXN5bmNTY3JvbGxpbmcpCit7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOworICAgIFdL
UmV0YWluUHRyPFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHko
QWRvcHRXSywgV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKKyAgICAKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gc3ViTWVzc2FnZUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiU3ViTWVzc2FnZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gc3ViTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
Ik1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyIpKTsKKyAgICBXS0RpY3Rp
b25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHN1Yk1lc3NhZ2VLZXku
Z2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsKKyAgICAKKyAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4geEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIp
KTsKKyAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4geFJlZihBZG9wdFdLLCBXS0RvdWJsZUNy
ZWF0ZSh4KSk7CisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5
LmdldCgpLCB4S2V5LmdldCgpLCB4UmVmLmdldCgpKTsKKyAgICAKKyAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4geUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
WSIpKTsKKyAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4geVJlZihBZG9wdFdLLCBXS0RvdWJs
ZUNyZWF0ZSh5KSk7CisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VC
b2R5LmdldCgpLCB5S2V5LmdldCgpLCB5UmVmLmdldCgpKTsKKworICAgIHVpbnQ2NF90IHBoYXNl
ID0gMDsKKyAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhwaGFzZVN0ciwgIm5v
bmUiKSkKKyAgICAgICAgcGhhc2UgPSAwOworICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcocGhhc2VTdHIsICJiZWdhbiIpKQorICAgICAgICBwaGFzZSA9IDE7IC8vIGtD
R1Njcm9sbFBoYXNlQmVnYW4KKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKHBoYXNlU3RyLCAiY2hhbmdlZCIpKQorICAgICAgICBwaGFzZSA9IDI7IC8vIGtDR1Njcm9s
bFBoYXNlQ2hhbmdlZAorICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
cGhhc2VTdHIsICJlbmRlZCIpKQorICAgICAgICBwaGFzZSA9IDQ7IC8vIGtDR1Njcm9sbFBoYXNl
RW5kZWQKKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHBoYXNlU3Ry
LCAiY2FuY2VsbGVkIikpCisgICAgICAgIHBoYXNlID0gODsgLy8ga0NHU2Nyb2xsUGhhc2VDYW5j
ZWxsZWQKKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHBoYXNlU3Ry
LCAibWF5YmVnaW4iKSkKKyAgICAgICAgcGhhc2UgPSAxMjg7IC8vIGtDR1Njcm9sbFBoYXNlTWF5
QmVnaW4KKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwaGFzZUtleShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGhhc2UiKSk7CisgICAgV0tSZXRhaW5QdHI8
V0tVSW50NjRSZWY+IHBoYXNlUmVmKEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKHBoYXNlKSk7Cisg
ICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBwaGFz
ZUtleS5nZXQoKSwgcGhhc2VSZWYuZ2V0KCkpOworCisgICAgdWludDY0X3QgbW9tZW50dW0gPSAw
OworICAgIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3RyLCAibm9u
ZSIpKQorICAgICAgICBtb21lbnR1bSA9IDA7IC8vIGtDR01vbWVudHVtU2Nyb2xsUGhhc2VOb25l
CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtb21lbnR1bVN0ciwg
ImJlZ2luIikpCisgICAgICAgIG1vbWVudHVtID0gMTsgLy8ga0NHTW9tZW50dW1TY3JvbGxQaGFz
ZUJlZ2luCisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtb21lbnR1
bVN0ciwgImNvbnRpbnVlIikpCisgICAgICAgIG1vbWVudHVtID0gMjsgLy8ga0NHTW9tZW50dW1T
Y3JvbGxQaGFzZUNvbnRpbnVlCisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtb21lbnR1bVN0ciwgImVuZCIpKQorICAgICAgICBtb21lbnR1bSA9IDM7IC8vIGtDR01v
bWVudHVtU2Nyb2xsUGhhc2VFbmQKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb21l
bnR1bUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9tZW50dW0i
KSk7CisgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IG1vbWVudHVtUmVmKEFkb3B0V0ssIFdL
VUludDY0Q3JlYXRlKG1vbWVudHVtKSk7CisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNl
bmRlck1lc3NhZ2VCb2R5LmdldCgpLCBtb21lbnR1bUtleS5nZXQoKSwgbW9tZW50dW1SZWYuZ2V0
KCkpOworCisgICAgaWYgKGFzeW5jU2Nyb2xsaW5nKQorICAgICAgICBXS0J1bmRsZVBvc3RNZXNz
YWdlKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgRXZlbnRTZW5kZXJNZXNzYWdl
TmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSk7CisgICAgZWxzZQorICAg
ICAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLmJ1bmRsZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1l
c3NhZ2VCb2R5LmdldCgpLCAwKTsKK30KKwogdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpj
b250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpCiB7CiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwpJbmRleDogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9F
dmVudFNlbmRpbmdDb250cm9sbGVyLmgJKHJldmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IDIwMTEsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1v
dXNlVXAoaW50IGJ1dHRvbiwgSlNWYWx1ZVJlZiBtb2RpZmllckFycmF5KTsKICAgICB2b2lkIG1v
dXNlTW92ZVRvKGludCB4LCBpbnQgeSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGludCB4LCBp
bnQgeSk7CisgICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
aW50IHgsIGludCB5LCBKU1N0cmluZ1JlZiBwaGFzZSwgSlNTdHJpbmdSZWYgbW9tZW50dW0sIGJv
b2wgYXN5bmNTY3JvbGxpbmcpOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50
IHgsIGludCB5LCBib29sIHBhZ2VkKTsKICAgICBKU1ZhbHVlUmVmIGNvbnRleHRDbGljaygpOwog
ICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CkluZGV4OiBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwJKHJldmlzaW9uIDE2NDA4MykK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4
LDcgQEAgaW50ZXJmYWNlIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgewogICAgIHZvaWQgbW91c2VV
cChsb25nIGJ1dHRvbk51bWJlciwgb2JqZWN0IG1vZGlmaWVyQXJyYXkpOwogICAgIHZvaWQgbW91
c2VNb3ZlVG8obG9uZyB4LCBsb25nIHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeShsb25nIHgs
IGxvbmcgeSk7CisgICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMobG9uZyB4LCBsb25nIHksIERPTVN0cmluZyBwaGFzZSwgRE9NU3RyaW5nIG1vbWVudHVtLCBv
cHRpb25hbCBib29sZWFuIGFzeW5jU2Nyb2xsaW5nKTsKICAgICB2b2lkIGNvbnRpbnVvdXNNb3Vz
ZVNjcm9sbEJ5KGxvbmcgeCwgbG9uZyB5LCBvcHRpb25hbCBib29sZWFuIHBhZ2VkKTsKICAgICBv
YmplY3QgY29udGV4dENsaWNrKCk7CiAgICAgdm9pZCBzY2hlZHVsZUFzeW5jaHJvbm91c0NsaWNr
KCk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVu
dFNlbmRlclByb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0JKHJldmlzaW9uIDE2NDA4
MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2Vu
ZGVyUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDExIEBAIHZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeShpbnQKICAgICAvLyBXcml0ZSBtZS4KIH0KIAor
dm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoaW50IHgsIGludCB5LCBpbnQgcGhhc2UsIGludCBtb21lbnR1bSkKK3sKKyAgICAvLyBX
cml0ZSBtZS4KK30KKwogdm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3Jv
bGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpCiB7CiAgICAgLy8gV3JpdGUgbWUuCkluZGV4
OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZs
LmNwcAkocmV2aXNpb24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZl
bnRTZW5kZXJQcm94eUVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsMTMgQEAg
dm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTYwogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IC8qcGhhc2UqLywgaW50IC8qbW9t
ZW50dW0qLykKK3sKKyAgICAvLyBFRkwgZG9lcyBub3QgaGF2ZSB0aGUgY29uY2VwdCBvZiB3aGVl
bCBnZXN0dXJlIHBoYXNlcyBvciBtb21lbnR1bS4gSnVzdCByZWxheSB0bworICAgIC8vIHRoZSBt
b3VzZSB3aGVlbCBoYW5kbGVyLgorICAgIG1vdXNlU2Nyb2xsQnkoeCwgeSk7Cit9CisKIHZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcykKIHsKICAgICBp
ZiAobV9ldmVudFF1ZXVlLmlzRW1wdHkoKSkKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Z3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCShyZXZpc2lvbiAxNjQwODMpCisr
KyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDMzLDYgKzQzMywxMyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNv
bnRpbnVvdXNNb3VzZVNjCiAgICAgc2VuZE9yUXVldWVFdmVudChldmVudCk7CiB9CiAKK3ZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KGludCB4LCBpbnQgeSwgaW50IC8qcGhhc2UqLywgaW50IC8qbW9tZW50dW0qLykKK3sKKyAgICAv
LyBHdGsrIGRvZXMgbm90IGhhdmUgdGhlIGNvbmNlcHQgb2Ygd2hlZWwgZ2VzdHVyZSBwaGFzZXMg
b3IgbW9tZW50dW0uIEp1c3QgcmVsYXkgdG8KKyAgICAvLyB0aGUgbW91c2Ugd2hlZWwgaGFuZGxl
ci4KKyAgICBtb3VzZVNjcm9sbEJ5KHgsIHkpOworfQorCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6
OmxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpCiB7CiAgICAgaWYgKG1fZXZlbnRRdWV1ZS5p
c0VtcHR5KCkpCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclBy
b3h5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2Vu
ZGVyUHJveHkubW0JKHJldmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL0V2ZW50U2VuZGVyUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDYxLDQgKzQ2MSwyNSBAQCB2
b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjCiAgICAgcmV0dXJuOwogfQog
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKQoreworICAgIFJl
dGFpblB0cjxDR0V2ZW50UmVmPiBjZ1Njcm9sbEV2ZW50ID0gYWRvcHRDRihDR0V2ZW50Q3JlYXRl
U2Nyb2xsV2hlZWxFdmVudCgwLCBrQ0dTY3JvbGxFdmVudFVuaXRMaW5lLCAyLCB5LCB4KSk7CisK
KyAgICAvLyBDR0V2ZW50IGxvY2F0aW9ucyBhcmUgaW4gZ2xvYmFsIGRpc3BsYXkgY29vcmRpbmF0
ZXMuCisgICAgQ0dQb2ludCBsYXN0R2xvYmFsTW91c2VQb3NpdGlvbiA9IENHUG9pbnRNYWtlKG1f
cG9zaXRpb24ueCwgW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBt
X3Bvc2l0aW9uLnkpOworICAgIENHRXZlbnRTZXRMb2NhdGlvbihjZ1Njcm9sbEV2ZW50LmdldCgp
LCBsYXN0R2xvYmFsTW91c2VQb3NpdGlvbik7CisKKyAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVl
RmllbGQoY2dTY3JvbGxFdmVudC5nZXQoKSwga0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNl
LCBwaGFzZSk7CisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGNnU2Nyb2xsRXZlbnQu
Z2V0KCksIGtDR1Njcm9sbFdoZWVsRXZlbnRNb21lbnR1bVBoYXNlLCBtb21lbnR1bSk7CisKKyAg
ICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0aENHRXZlbnQ6IGNnU2Nyb2xsRXZl
bnQuZ2V0KCldOworCisgICAgLy8gT3VyIGV2ZW50IHNob3VsZCBoYXZlIHRoZSBjb3JyZWN0IHNl
dHRpbmdzOgorICAgIGlmIChOU1ZpZXcgKnRhcmdldFZpZXcgPSBbbV90ZXN0Q29udHJvbGxlci0+
bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkgaGl0VGVzdDogW2V2ZW50IGxvY2F0aW9uSW5X
aW5kb3ddXSkgeworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDogZXZlbnRdOworICAg
ICAgICBbdGFyZ2V0VmlldyBzY3JvbGxXaGVlbDogZXZlbnRdOworICAgICAgICBbTlNBcHAgX3Nl
dEN1cnJlbnRFdmVudDogbmlsXTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTY0MDgzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTQtMDItMTMgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIHNvbWUgbGF0Y2hlZCBzY3JvbGxpbmcg
dGVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjc2MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1OTExMzQ4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgYSBzZXJpZXMgb2YgdGVzdHMgdG8g
Y292ZXIgZGVzaXJlZCBiZWhhdmlvciB3aXRoIHdoZWVsIGV2ZW50cyAoaW5jbHVkaW5nIG1vbWVu
dHVtKS4KKyAgICAgICAgVGhpcyBiZWhhdmlvciBpcyBzcGVjaWZpYyB0byB0aGUgTWFjIHBsYXRm
b3JtLCBzbyBpcyBsaW1pdGVkIHRvIHRoZSBwbGF0Zm9ybS9tYWMgYW5kCisgICAgICAgIHBsYXRm
b3JtL21hYy13azIgZGlyZWN0b3JpZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNo
ZWQtZGl2LXdpdGgtaGFuZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1k
aXYtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZy
YW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUt
d2l0aC1oYW5kbGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlm
cmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJh
bWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13
aXRoLWhhbmRsZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZy
YW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1h
aW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFp
bmZyYW1lLXdpdGgtaGFuZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0
LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3Qt
bGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1t
YWluZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNl
bGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVk
LXNlbGVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxp
bmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwt
ZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1t
YWluZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVk
LWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQt
bWFpbmZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zh
c3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0
Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWw6IEFk
ZGVkLgorCiAyMDE0LTAyLTEzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY0MDczIGFuZCByMTY0MDgw
LgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qt
c2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRj
aGVkLWRpdi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc2IEBACitQdXQgbW91c2UgaGVyZSBh
bmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFJlZ2lvbgorCitDb3VudAlEQVRBCVJldiBD
b3VudAorVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9Q
IFRPUCBUT1AKKzEJMC4xMTAwCTQwCisyCTAuMTE1NQkzOQorMwkwLjIyMDAJMzgKKzQJMC4yMjU1
CTM3Cis1CTAuMzMwMAkzNgorNgkwLjMzNTUJMzUKKzcJMC40NDAwCTM0Cis4CTAuNDQ1NQkzMwor
OQkwLjU1MDAJMzIKKzEwCTAuNTU1NQkzMQorMTEJMC42NjAwCTMwCisxMgkwLjY2NTUJMjkKKzEz
CTAuNzcwMAkyOAorMTQJMC43NzU1CTI3CisxNQkwLjg4MDAJMjYKKzE2CTAuODg1NQkyNQorMTcJ
MC45OTAwCTI0CisxOAkwLjk5NTUJMjMKKzE5CTAuOTk5OQkyMgorMjAJMS4wMDAwCTIxCisyMQkx
LjAwMDAJMjAKKzIyCTAuOTk5OQkxOQorMjMJMC45OTU1CTE4CisyNAkwLjk5MDAJMTcKKzI1CTAu
ODg1NQkxNgorMjYJMC44ODAwCTE1CisyNwkwLjc3NTUJMTQKKzI4CTAuNzcwMAkxMworMjkJMC42
NjU1CTEyCiszMAkwLjY2MDAJMTEKKzMxCTAuNTU1NQkxMAorMzIJMC41NTAwCTkKKzMzCTAuNDQ1
NQk4CiszNAkwLjQ0MDAJNworMzUJMC4zMzU1CTYKKzM2CTAuMzMwMAk1CiszNwkwLjIyNTUJNAor
MzgJMC4yMjAwCTMKKzM5CTAuMTE1NQkyCis0MAkwLjExMDAJMQorRU5EIEVORCBFTkQgRU5EIEVO
RAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQKK1Rlc3RzIHRoYXQgYSBz
Y3JvbGxhYmxlIGRpdiBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hl
biBzY3JvbGxpbmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2RpdiBkaXNw
bGF5IGhlaWdodCA9IDQ4NQorTW91c2UgbW92ZWQgdG8gKDI4LCA2MTApCitQYWdlIGJlZm9yZTog
MCwgZGl2IGJlZm9yZTogNDUxCitQYWdlIGFmdGVyOiAgMCwgZGl2IGFmdGVyOiA0NTEKK1BBU1Mg
UGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJv
dW5kcyAyMDA4LjAwIDIzMjYuMDApCisgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAg
eCA1ODUuMDApCisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAgICAgKGNvbnRl
bnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1
LjAwKQorICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVy
YWdlIDAsIDAgMjAwOCB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAg
ICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDc3IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCitT
Y3JvbGxhYmxlIFJlZ2lvbgorCitDb3VudAlEQVRBCVJldiBDb3VudAorVE9QIFRPUCBUT1AgVE9Q
IFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AKKzEJMC4xMTAwCTQw
CisyCTAuMTE1NQkzOQorMwkwLjIyMDAJMzgKKzQJMC4yMjU1CTM3Cis1CTAuMzMwMAkzNgorNgkw
LjMzNTUJMzUKKzcJMC40NDAwCTM0Cis4CTAuNDQ1NQkzMworOQkwLjU1MDAJMzIKKzEwCTAuNTU1
NQkzMQorMTEJMC42NjAwCTMwCisxMgkwLjY2NTUJMjkKKzEzCTAuNzcwMAkyOAorMTQJMC43NzU1
CTI3CisxNQkwLjg4MDAJMjYKKzE2CTAuODg1NQkyNQorMTcJMC45OTAwCTI0CisxOAkwLjk5NTUJ
MjMKKzE5CTAuOTk5OQkyMgorMjAJMS4wMDAwCTIxCisyMQkxLjAwMDAJMjAKKzIyCTAuOTk5OQkx
OQorMjMJMC45OTU1CTE4CisyNAkwLjk5MDAJMTcKKzI1CTAuODg1NQkxNgorMjYJMC44ODAwCTE1
CisyNwkwLjc3NTUJMTQKKzI4CTAuNzcwMAkxMworMjkJMC42NjU1CTEyCiszMAkwLjY2MDAJMTEK
KzMxCTAuNTU1NQkxMAorMzIJMC41NTAwCTkKKzMzCTAuNDQ1NQk4CiszNAkwLjQ0MDAJNworMzUJ
MC4zMzU1CTYKKzM2CTAuMzMwMAk1CiszNwkwLjIyNTUJNAorMzgJMC4yMjAwCTMKKzM5CTAuMTE1
NQkyCis0MAkwLjExMDAJMQorRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5E
CUVORCBFTkQgRU5EIEVORCBFTkQKK1Rlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0
IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9t
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2RpdiBkaXNwbGF5IGhlaWdodCA9IDQ4NQorTW91
c2UgbW92ZWQgdG8gKDI4LCA2MTApCitQYWdlIGJlZm9yZTogMCwgZGl2IGJlZm9yZTogNDUxCitQ
YWdlIGFmdGVyOiAgMCwgZGl2IGFmdGVyOiA0NTEKK1BBU1MgUGFnZSBkaWQgbm90IHJlY2VpdmUg
d2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciAwIG9mIHRoZSB3
aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDguMDAgMjM0MS4wMCkK
KyAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgKGNvbnRlbnRz
U2NhbGUgMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJv
dW5kcyAyMDA4LjAwIDIzNDEuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2
aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCisgICAgICAoY29udGVudHNT
Y2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAyMDA4IHggMjA0OCkK
KyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0
aWxlcyBncmlkIDQgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdp
dGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVy
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdpdGgtaGFuZGxlci5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAgIHdpZHRoOiA2ODBweDsK
K30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRpbmc6IDJweDsKK30KKworLnRh
YmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBm
b250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgeworICAg
IGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246bnRo
LWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+Cit2YXIgd2hlZWxDb3VudCA9IDA7CitmdW5jdGlvbiBvblNjcm9sbFdoZWVsKGV2
dCkgeworICAgIHdoZWVsQ291bnQgPSB3aGVlbENvdW50ICsgMTsKK30KKworZnVuY3Rpb24gb25M
b2FkKCkgeworICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCBvblNj
cm9sbFdoZWVsKTsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBkaXZUYXJnZXQ7Cit2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3Jl
OwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsK
KworICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAg
ICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAg
ICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBk
aXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdl
IGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsg
ZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJQYWdl
IHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQo
IlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGRlYnVnKCJEb2N1
bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENvdW50ICsgIiBvZiB0aGUgd2hl
ZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXll
clRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9J
TkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElM
RV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitm
dW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVz
OgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w
OworCisgICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwor
ICAgIGRpdlRhcmdldC5zY3JvbGxUb3AgPSBkaXZUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gZGl2VGFy
Z2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKworICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0g
ZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3
ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFyZ2V0Lm9mZnNl
dExlZnQgKyAyMDsKKyAgICBkZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0gIiArIGRpdlRhcmdl
dC5jbGllbnRIZWlnaHQpOworICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9w
ICsgZGl2VGFyZ2V0LmNsaWVudEhlaWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUg
ZW5kLgorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsg
Ly8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJN
b3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25v
bmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNr
Rm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
dHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNl
dFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1l
c3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAg
ICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAg
bWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVt
cFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVy
PGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1
c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJy
Lz4iCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIGRpdi48YnIvPjxici8+IgorICAgICAg
ICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlz
IHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVu
ZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQi
IHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNv
dXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQg
bW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICA8aDM+U2Nyb2xsYWJsZSBSZWdpb248L2gz
PgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVy
Zmxvdy14OiBoaWRkZW47IG1heC1oZWlnaHQ6IDQ4NXB4Oyc+CisgICAgICAgICAgICA8dGFibGUg
Y2xhc3M9InRhYmxlIiBzdHlsZT0nd2lkdGg6IDk5JSc+CisgICAgICAgICAgICAgICAgPHRyPjx0
aD5Db3VudDwvdGg+PHRoPkRBVEE8L3RoPjx0aD5SZXYgQ291bnQ8L3RoPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1Ag
VE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+NDA8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4yPC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+Mzk8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zPC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+Mzg8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+
Mzc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD41PC90ZD48dGQ+MC4zMzAwPC90
ZD48dGQ+MzY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD42PC90ZD48dGQ+MC4z
MzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD43PC90ZD48
dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD44
PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+MzM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD45PC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+MzI8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjMxPC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MTE8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4zMDwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjEyPC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+Mjk8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMzwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRk
PjI4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTQ8L3RkPjx0ZD4wLjc3NTU8
L3RkPjx0ZD4yNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE1PC90ZD48dGQ+
MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNjwv
dGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4yNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MjM8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjIyPC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MjA8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMTwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIxPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+
MjA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMjwvdGQ+PHRkPjAuOTk5OTwv
dGQ+PHRkPjE5PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjM8L3RkPjx0ZD4w
Ljk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI0PC90
ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjE2PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4xNTwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjI3PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+MTQ8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4yODwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjEzPC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjk8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4x
MjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMwPC90ZD48dGQ+MC42NjAwPC90
ZD48dGQ+MTE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMTwvdGQ+PHRkPjAu
NTU1NTwvdGQ+PHRkPjEwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzI8L3Rk
Pjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD44PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD43PC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD42PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MzY8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD41PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzc8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD40PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzg8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4z
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzk8L3RkPjx0ZD4wLjExNTU8L3Rk
Pjx0ZD4yPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NDA8L3RkPjx0ZD4wLjEx
MDA8L3RkPjx0ZD4xPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+RU5EIEVORCBF
TkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVO
RCBFTkQgRU5EPC90ZD48L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9kaXY+
CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBwYXNzIHdo
ZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOworPC9z
Y3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1kaXYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDE3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9
CisKKy50YWJsZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJs
ZSB0aCB7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9u
dC13ZWlnaHQ6IHN0cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBi
YWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1j
aGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwor
dmFyIGRpdlRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgZGl2U2Ny
b2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNo
ZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xs
ZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJv
ZHkuc2Nyb2xsVG9wOworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0
LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3Np
dGlvbkJlZm9yZSArICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSk7
CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAi
LCBkaXYgYWZ0ZXI6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAg
IHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwor
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxF
X1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAg
IH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxU
ZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3Jv
bGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGl2VGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgIGRpdlRhcmdldC5z
Y3JvbGxUb3AgPSBkaXZUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gZGl2VGFyZ2V0LmNsaWVudEhlaWdo
dCAtIDEwMDsKKworICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9s
bFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3Rh
cmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAg
ICBkZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0gIiArIGRpdlRhcmdldC5jbGllbnRIZWlnaHQp
OworICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9wICsgZGl2VGFyZ2V0LmNs
aWVudEhlaWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdl
IGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAo
IiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywg
J25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAn
bm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDAp
OworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xs
VGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhU
TUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRv
IG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAg
ICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdo
ZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAg
ICArICJkb3duIHBhc3QgdGhlIGRpdi48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNo
b3VsZCBub3Qgc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vz
c2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2Up
OworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6
IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9Imhl
aWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQg
ZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9y
ZWdpb24iPgorICAgICAgICA8aDM+U2Nyb2xsYWJsZSBSZWdpb248L2gzPgorICAgICAgICA8ZGl2
IGlkPSJ0YXJnZXQiIHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47
IG1heC1oZWlnaHQ6IDQ4NXB4Oyc+CisgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIiBz
dHlsZT0nd2lkdGg6IDk5JSc+CisgICAgICAgICAgICAgICAgPHRyPjx0aD5Db3VudDwvdGg+PHRo
PkRBVEE8L3RoPjx0aD5SZXYgQ291bnQ8L3RoPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRk
PlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4x
PC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+NDA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD4yPC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+Mzk8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4zPC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD40PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD41PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48
dGQ+MzQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1
PC90ZD48dGQ+MzM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+
MC41NTAwPC90ZD48dGQ+MzI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMDwv
dGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjMxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MTE8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4zMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjEyPC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+Mjk8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4xMzwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjI4PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MTQ8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+
MjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwv
dGQ+PHRkPjI1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4w
Ljk5MDA8L3RkPjx0ZD4yNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90
ZD48dGQ+MC45OTU1PC90ZD48dGQ+MjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4xOTwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjIyPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MjA8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMTwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjIxPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4yMjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjM8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4x
ODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90
ZD48dGQ+MTc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAu
ODg1NTwvdGQ+PHRkPjE2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjY8L3Rk
Pjx0ZD4wLjg4MDA8L3RkPjx0ZD4xNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjI3PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+MTQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4yODwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjEzPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+Mjk8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjMwPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEw
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3Rk
Pjx0ZD45PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0
NTU8L3RkPjx0ZD44PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0
ZD4wLjQ0MDA8L3RkPjx0ZD43PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzU8
L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD42PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MzY8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD41PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+Mzc8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD40PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+Mzg8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zPC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+Mzk8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4yPC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+
PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48
L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBt
YWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8cHJlIGlk
PSJsYXllcnMiPkxheWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1s
YXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQt
bWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc1IEBACitQ
dXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFJlZ2lvbgorCitD
b3VudAlEQVRBCVJldiBDb3VudAorVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1Ag
VE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AKKzEJMC4xMTAwCTQwCisyCTAuMTE1NQkzOQorMwkwLjIy
MDAJMzgKKzQJMC4yMjU1CTM3Cis1CTAuMzMwMAkzNgorNgkwLjMzNTUJMzUKKzcJMC40NDAwCTM0
Cis4CTAuNDQ1NQkzMworOQkwLjU1MDAJMzIKKzEwCTAuNTU1NQkzMQorMTEJMC42NjAwCTMwCisx
MgkwLjY2NTUJMjkKKzEzCTAuNzcwMAkyOAorMTQJMC43NzU1CTI3CisxNQkwLjg4MDAJMjYKKzE2
CTAuODg1NQkyNQorMTcJMC45OTAwCTI0CisxOAkwLjk5NTUJMjMKKzE5CTAuOTk5OQkyMgorMjAJ
MS4wMDAwCTIxCisyMQkxLjAwMDAJMjAKKzIyCTAuOTk5OQkxOQorMjMJMC45OTU1CTE4CisyNAkw
Ljk5MDAJMTcKKzI1CTAuODg1NQkxNgorMjYJMC44ODAwCTE1CisyNwkwLjc3NTUJMTQKKzI4CTAu
NzcwMAkxMworMjkJMC42NjU1CTEyCiszMAkwLjY2MDAJMTEKKzMxCTAuNTU1NQkxMAorMzIJMC41
NTAwCTkKKzMzCTAuNDQ1NQk4CiszNAkwLjQ0MDAJNworMzUJMC4zMzU1CTYKKzM2CTAuMzMwMAk1
CiszNwkwLjIyNTUJNAorMzgJMC4yMjAwCTMKKzM5CTAuMTE1NQkyCis0MAkwLjExMDAJMQorRU5E
IEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQK
K1Rlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRz
IHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorTW91c2UgbW92ZWQgdG8gKDI4LCAxMjUpCitQYWdlIGJlZm9yZTogMCwgZGl2IGJl
Zm9yZTogMAorUGFnZSBhZnRlcjogIDI4MCwgZGl2IGFmdGVyOiAwCitQQVNTIFNjcm9sbGFibGUg
ZGl2IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91
bmRzIDIwMDguMDAgMjMxMS4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAw
IHggNTg1LjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChH
cmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDIwMDguMDAgMjMxMS4wMCkKKyAgICAgIChjb250
ZW50c09wYXF1ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHgg
NTg1LjAwKQorICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNv
dmVyYWdlIDAsIDAgMjAwOCB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAg
ICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykK
KwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qt
c2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJh
d2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc2IEBACitQdXQgbW91c2UgaGVyZSBh
bmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFJlZ2lvbgorCitDb3VudAlEQVRBCVJldiBD
b3VudAorVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9Q
IFRPUCBUT1AKKzEJMC4xMTAwCTQwCisyCTAuMTE1NQkzOQorMwkwLjIyMDAJMzgKKzQJMC4yMjU1
CTM3Cis1CTAuMzMwMAkzNgorNgkwLjMzNTUJMzUKKzcJMC40NDAwCTM0Cis4CTAuNDQ1NQkzMwor
OQkwLjU1MDAJMzIKKzEwCTAuNTU1NQkzMQorMTEJMC42NjAwCTMwCisxMgkwLjY2NTUJMjkKKzEz
CTAuNzcwMAkyOAorMTQJMC43NzU1CTI3CisxNQkwLjg4MDAJMjYKKzE2CTAuODg1NQkyNQorMTcJ
MC45OTAwCTI0CisxOAkwLjk5NTUJMjMKKzE5CTAuOTk5OQkyMgorMjAJMS4wMDAwCTIxCisyMQkx
LjAwMDAJMjAKKzIyCTAuOTk5OQkxOQorMjMJMC45OTU1CTE4CisyNAkwLjk5MDAJMTcKKzI1CTAu
ODg1NQkxNgorMjYJMC44ODAwCTE1CisyNwkwLjc3NTUJMTQKKzI4CTAuNzcwMAkxMworMjkJMC42
NjU1CTEyCiszMAkwLjY2MDAJMTEKKzMxCTAuNTU1NQkxMAorMzIJMC41NTAwCTkKKzMzCTAuNDQ1
NQk4CiszNAkwLjQ0MDAJNworMzUJMC4zMzU1CTYKKzM2CTAuMzMwMAk1CiszNwkwLjIyNTUJNAor
MzgJMC4yMjAwCTMKKzM5CTAuMTE1NQkyCis0MAkwLjExMDAJMQorRU5EIEVORCBFTkQgRU5EIEVO
RAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQKK1Rlc3RzIHRoYXQgYSBz
Y3JvbGxhYmxlIGRpdiBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlz
IGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTW91c2Ug
bW92ZWQgdG8gKDI4LCAxMjUpCitQYWdlIGJlZm9yZTogMCwgZGl2IGJlZm9yZTogMAorUGFnZSBh
ZnRlcjogIDI4MCwgZGl2IGFmdGVyOiAwCitQQVNTIFNjcm9sbGFibGUgZGl2IGRpZCBub3QgcmVj
ZWl2ZSB3aGVlbCBldmVudHMuCitEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yIDQgb2Yg
dGhlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgMjAwOC4wMCAyMzI2
LjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUuMDApCisgIChj
b250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisg
ICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUuMDApCisgICAgICAo
Y29udGVudHNTY2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAyMDA4
IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRp
bGUgMCwgMCB0aWxlcyBncmlkIDQgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNo
ZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1t
YWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFp
bmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTgwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9y
ZWdpb24geworICAgIHdpZHRoOiA2ODBweDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggewor
ICAgIHBhZGRpbmc6IDJweDsKK30KKworLnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7Cisg
ICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFi
bGUgdHI6bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5z
Y3JvbGxhYmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6
ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgd2hlZWxDb3VudCA9IDA7
CitmdW5jdGlvbiBvblNjcm9sbFdoZWVsKGV2dCkgeworICAgIHdoZWVsQ291bnQgPSB3aGVlbENv
dW50ICsgMTsKK30KKworZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNld2hlZWwiLCBvblNjcm9sbFdoZWVsKTsKKyAgICBzZXR1cFRvcExldmVs
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxz
Y3JpcHQ+CisKK3ZhciBkaXZUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwor
dmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitm
dW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBo
YXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBk
b2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBkaXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRp
b25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlv
bkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAg
ICBpZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gZGl2U2Nyb2xsUG9zaXRpb25BZnRlcikK
KyAgICAgICAgdGVzdEZhaWxlZCgiU2Nyb2xsYWJsZSBkaXYgY29uc3VtZWQgd2hlZWwgZXZlbnRz
LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiU2Nyb2xsYWJsZSBkaXYgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGRlYnVnKCJEb2N1bWVudCB3YXMgaW5p
dGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENvdW50ICsgIiBvZiB0aGUgd2hlZWwgZXZlbnRzLiIp
OworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQo
ZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJ
QkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOwor
ICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3Jv
bGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGl2
VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgZGl2U2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xs
IHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBv
c1ggPSBkaXZUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBkaXZU
YXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Ny
b2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUg
aUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiAr
IHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOwor
ICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVs
c2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMg
YmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxh
Y2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2Yg
dGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3
aXBlIHRvIHNjcm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgZGl2
Ljxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBv
ZiBFTkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBt
ZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3Njcmlw
dD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4
OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUw
MHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAgICAgIDxoMz5T
Y3JvbGxhYmxlIFJlZ2lvbjwvaDM+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9J292
ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgbWF4LWhlaWdodDogNDg1cHg7Jz4K
KyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUiIHN0eWxlPSd3aWR0aDogOTklJz4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRoPkNvdW50PC90aD48dGg+REFUQTwvdGg+PHRoPlJldiBDb3Vu
dDwvdGg+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8
L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE8L3RkPjx0ZD4wLjExMDA8L3RkPjx0
ZD40MDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI8L3RkPjx0ZD4wLjExNTU8
L3RkPjx0ZD4zOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM8L3RkPjx0ZD4w
LjIyMDA8L3RkPjx0ZD4zODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQ8L3Rk
Pjx0ZD4wLjIyNTU8L3RkPjx0ZD4zNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjU8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD4zNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjY8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD4zNTwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjc8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD4zNDwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjg8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD4zMzwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjk8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD4zMjwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEwPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+
MzE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMTwvdGQ+PHRkPjAuNjYwMDwv
dGQ+PHRkPjMwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTI8L3RkPjx0ZD4w
LjY2NTU8L3RkPjx0ZD4yOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEzPC90
ZD48dGQ+MC43NzAwPC90ZD48dGQ+Mjg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4xNDwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjI3PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MTU8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4yNjwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjE2PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MjU8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4xNzwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjI0PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTg8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4y
MzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE5PC90ZD48dGQ+MC45OTk5PC90
ZD48dGQ+MjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMDwvdGQ+PHRkPjEu
MDAwMDwvdGQ+PHRkPjIxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjE8L3Rk
Pjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjIyPC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MTk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4yMzwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjE4PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4xNzwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjI1PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MTY8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNjwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjE1
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjc8L3RkPjx0ZD4wLjc3NTU8L3Rk
Pjx0ZD4xNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI4PC90ZD48dGQ+MC43
NzAwPC90ZD48dGQ+MTM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yOTwvdGQ+
PHRkPjAuNjY1NTwvdGQ+PHRkPjEyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MzA8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4xMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjMxPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MTA8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4zMjwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjk8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zMzwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjg8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNDwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjc8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNTwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRk
PjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNjwvdGQ+PHRkPjAuMzMwMDwv
dGQ+PHRkPjU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNzwvdGQ+PHRkPjAu
MjI1NTwvdGQ+PHRkPjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zODwvdGQ+
PHRkPjAuMjIwMDwvdGQ+PHRkPjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4z
OTwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD40MDwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjE8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVO
RDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjwvdHI+CisgICAgICAgICAgICA8L3Rh
YmxlPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzY3JvbGxhYmxl
IGRpdiBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQg
dG8gbWFpbiBmcmFtZS4iKTsKKzwvc2NyaXB0PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVl
IGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWlu
ZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFz
dC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5z
Y3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50
YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdo
dDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7
Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNm
MzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAg
YmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9u
IG9uTG9hZCgpIHsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBkaXZUYXJnZXQ7Cit2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3Jl
OwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsK
KworICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAg
ICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAg
ICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBk
aXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdl
IGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsg
ZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZv
cmUgIT0gZGl2U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiU2Nyb2xs
YWJsZSBkaXYgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dFBhc3NlZCgiU2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsK
KworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRv
Y3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJM
RV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKKyAg
ICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xs
VGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRpdlRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIGRpdlNjcm9s
bFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9sbCB0
aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NY
ID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gZGl2VGFy
Z2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9s
bCBhd2F5IGZyb20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0
UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlG
cmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBz
dGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAg
ICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRv
cExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJl
dHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNl
IHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRo
ZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lw
ZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIGRpdi48
YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2Yg
RU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVz
c2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+
Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsi
PgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBw
eDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICA8aDM+U2Ny
b2xsYWJsZSBSZWdpb248L2gzPgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdvdmVy
Zmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWlnaHQ6IDQ4NXB4Oyc+Cisg
ICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIiBzdHlsZT0nd2lkdGg6IDk5JSc+CisgICAg
ICAgICAgICAgICAgPHRyPjx0aD5Db3VudDwvdGg+PHRoPkRBVEE8L3RoPjx0aD5SZXYgQ291bnQ8
L3RoPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90
ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+
NDA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yPC90ZD48dGQ+MC4xMTU1PC90
ZD48dGQ+Mzk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zPC90ZD48dGQ+MC4y
MjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40PC90ZD48
dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD41
PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+MzM8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+MzI8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjMx
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTE8L3RkPjx0ZD4wLjY2MDA8L3Rk
Pjx0ZD4zMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEyPC90ZD48dGQ+MC42
NjU1PC90ZD48dGQ+Mjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMzwvdGQ+
PHRkPjAuNzcwMDwvdGQ+PHRkPjI4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MTQ8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4yNDwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MjM8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+PHRkPjAuOTk5OTwvdGQ+
PHRkPjIyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjA8L3RkPjx0ZD4xLjAw
MDA8L3RkPjx0ZD4yMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIxPC90ZD48
dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4y
MjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+MjM8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjE2PC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4xNTwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48dGQ+MC43NzU1PC90ZD48
dGQ+MTQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yODwvdGQ+PHRkPjAuNzcw
MDwvdGQ+PHRkPjEzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjk8L3RkPjx0
ZD4wLjY2NTU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMw
PC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD44PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD43PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD42
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzY8L3RkPjx0ZD4wLjMzMDA8L3Rk
Pjx0ZD41PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzc8L3RkPjx0ZD4wLjIy
NTU8L3RkPjx0ZD40PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzg8L3RkPjx0
ZD4wLjIyMDA8L3RkPjx0ZD4zPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzk8
L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4yPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8
L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48L3RyPgorICAgICAgICAgICAgPC90YWJs
ZT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBk
aXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRv
IG1haW4gZnJhbWUuIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBn
b2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZy
YW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGlj
ayBkb3dud2FyZHMKKworVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50
cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbQorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSA1MDAKK01vdXNlIG1vdmVkIHRvICgy
OCwgNTY2KQorUGFnZSBiZWZvcmU6IDAsIElGcmFtZSBiZWZvcmU6IDQxNgorUGFnZSBhZnRlcjog
IDAsIElGcmFtZSBhZnRlcjogNTMxCitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDIzMjYuMDApCisgICh2aXNp
YmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA2MDAuMDApCisgIChjb250ZW50c1NjYWxlIDEu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDIzMjYuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA2MDAuMDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAw
KQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA3ODUgeCAyMDQ4KQorICAgICAgKHRp
bGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQg
MiB4IDQpCisgICAgKQorICApCispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1o
YW5kbGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdp
dGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZy
YW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MyBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworCitUZXN0cyB0aGF0IGlm
cmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxp
bmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0lGcmFtZSBkaXNwbGF5IGhl
aWdodCA9IDUwMAorTW91c2UgbW92ZWQgdG8gKDI4LCA1NjYpCitQYWdlIGJlZm9yZTogMCwgSUZy
YW1lIGJlZm9yZTogNDE2CitQYWdlIGFmdGVyOiAgMCwgSUZyYW1lIGFmdGVyOiA1MzEKK1BBU1Mg
UGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwg
dGFyZ2V0IGZvciAwIG9mIHRoZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91
bmRzIDc4NS4wMCAyMzQxLjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHgg
NjAwLjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFw
aGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAyMzQxLjAwKQorICAgICAgKGNvbnRlbnRz
T3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNjAwLjAw
KQorICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdl
IDAsIDAgNzg1IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRv
cCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDIgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
aWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJh
bWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRz
LVdoZWVsRXZlbnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHdoZWVsQ291bnQgPSAwOworZnVuY3Rpb24g
b25TY3JvbGxXaGVlbChldnQpIHsKKyAgICB3aGVlbENvdW50ID0gd2hlZWxDb3VudCArIDE7Cit9
CisKK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZXdoZWVsIiwgb25TY3JvbGxXaGVlbCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBpZnJhbWVUYXJnZXQ7Cit2YXIg
cGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
OwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsK
KworICAgIC8vIFRoZSBJRnJhbWUgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAg
ICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsK
KyAgICB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3Rhcmdl
dCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAi
ICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFt
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlciArICIsIElGcmFtZSBhZnRlcjogIiArIGlGcmFtZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3
aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBkZWJ1ZygiRG9jdW1lbnQgd2FzIGlu
aXRpYWwgdGFyZ2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhlIHdoZWVsIGV2ZW50cy4i
KTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0
KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklT
SUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsK
KyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Ny
b2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGlm
cmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIHZh
ciBpRnJhbWVCb2R5ID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keTsKKyAg
ICBpRnJhbWVCb2R5LnNjcm9sbFRvcCA9IGlGcmFtZUJvZHkuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1l
VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKworICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVm
b3JlID0gaUZyYW1lQm9keS5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2Ug
dW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRh
cmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhlaWdodCA9
ICIgKyBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gaWZy
YW1lVGFyZ2V0Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8g
T25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhz
dGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRo
ZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAi
ICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbics
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7
CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0
dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBp
cyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBw
bGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBJ
RnJhbWUsIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8g
c2Nyb2xsIHRoZSBJRnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPGJyLz4iCisgICAg
ICAgICAgICArICI8YnIvPjxici8+IgorICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlm
IHlvdSBzY3JvbGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0
aGUgbWFpbiBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0
aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlk
PSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBpZD0ic291cmNlIiBz
dHlsZT0iaGVpZ2h0OiAxMDBweCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBk
b3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdl
dCIgc3R5bGU9ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAwcHg7IHdpZHRoOiA1
MDBweDsiIAorICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRpdiBpZD0nbm90VG9C
ZVNjcm9sbGVkJyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7Jz4KKyAgICAg
VE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUDxi
ci8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZy
YW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+CisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlzaWJsZSBpbnNpZGUg
dGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgIDxici8+CisgICAgIEVO
RCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAorICAgICA8
L2Rpdj4KKyAgICAgIgorICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiCisgICAgID4KKyAg
ICA8L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMg
dG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0PgorPHBy
ZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxh
dGNoZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIv
RE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKwordmFyIGlmcmFtZVRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25C
ZWZvcmU7Cit2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3Vu
dCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIElGcmFt
ZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9z
aXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBpRnJhbWVTY3Jv
bGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keS5z
Y3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZv
cmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVy
ICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAg
ICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVy
KQorICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4iKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVl
QXNUZXh0KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVE
RVNfVklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FD
SEVTKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rp
b24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAg
ICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKwor
ICAgIGlmcmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKwor
ICAgIHZhciBpRnJhbWVCb2R5ID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9k
eTsKKyAgICBpRnJhbWVCb2R5LnNjcm9sbFRvcCA9IGlGcmFtZUJvZHkuc2Nyb2xsSGVpZ2h0IC0g
aWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKworICAgIGlGcmFtZVNjcm9sbFBvc2l0
aW9uQmVmb3JlID0gaUZyYW1lQm9keS5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNz
b3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlm
cmFtZVRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhl
aWdodCA9ICIgKyBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZ
ID0gaWZyYW1lVGFyZ2V0Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0
MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRz
aWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1gg
KyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdi
ZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywg
dHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rp
b24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMg
dGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0
IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiaW5zaWRl
IHRoZSBJRnJhbWUsIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dp
cGUgdG8gc2Nyb2xsIHRoZSBJRnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPGJyLz4i
CisgICAgICAgICAgICArICI8YnIvPjxici8+IgorICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFz
c2VzIGlmIHlvdSBzY3JvbGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxz
IGJ1dCB0aGUgbWFpbiBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAgbWVzc2Fn
ZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8
ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBpZD0ic291
cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBm
bGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9
InRhcmdldCIgc3R5bGU9ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAwcHg7IHdp
ZHRoOiA1MDBweDsiIAorICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRpdiBpZD0n
bm90VG9CZVNjcm9sbGVkJyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7Jz4K
KyAgICAgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9Q
IFRPUDxici8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUg
dGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bgorICAgICA8YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+CisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlzaWJsZSBp
bnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgIDxici8+Cisg
ICAgIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAor
ICAgICA8L2Rpdj4KKyAgICAgIgorICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiCisgICAg
ID4KKyAgICA8L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBl
dmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0
PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzMSBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworCitU
ZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xs
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK01vdXNlIG1vdmVkIHRvICgyOCwgNjYpCitQYWdl
IGJlZm9yZTogMCwgSUZyYW1lIGJlZm9yZTogMAorUGFnZSBhZnRlcjogIDI4MCwgSUZyYW1lIGFm
dGVyOiAwCitQQVNTIElGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorKEdyYXBo
aWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMjMxMS4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAw
LCAyODAuMDAgNzg1LjAwIHggNjAwLjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAyMzExLjAw
KQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDI4
MC4wMCA3ODUuMDAgeCA2MDAuMDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQorICAgICAg
KHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA3ODUgeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1
MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMiB4IDQpCisg
ICAgKQorICApCispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVy
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgt
aGFuZGxlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZy
YW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MiBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworCitUZXN0cyB0aGF0IGlm
cmFtZSBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK01vdXNlIG1vdmVkIHRvICgyOCwgNjYpCitQYWdlIGJlZm9yZTogMCwg
SUZyYW1lIGJlZm9yZTogMAorUGFnZSBhZnRlcjogIDI4MCwgSUZyYW1lIGFmdGVyOiAwCitQQVNT
IElGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRp
YWwgdGFyZ2V0IGZvciA0IG9mIHRoZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAo
Ym91bmRzIDc4NS4wMCAyMzI2LjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUu
MDAgeCA2MDAuMDApCisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDIzMjYuMDApCisgICAgICAoY29u
dGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4
IDYwMC4wMCkKKyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNoZSBj
b3ZlcmFnZSAwLCAwIDc4NSB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAg
ICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAyIHggNCkKKyAgICApCisgICkKKykK
KwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qt
c2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1z
Y3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qt
c2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwt
My1FdmVudHMvI2V2ZW50cy1XaGVlbEV2ZW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB3aGVlbENvdW50
ID0gMDsKK2Z1bmN0aW9uIG9uU2Nyb2xsV2hlZWwoZXZ0KSB7CisgICAgd2hlZWxDb3VudCA9IHdo
ZWVsQ291bnQgKyAxOworfQorCitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIG9uU2Nyb2xsV2hlZWwpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgaWZy
YW1lVGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBpRnJhbWVTY3Jv
bGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hl
Y2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3Jv
bGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5k
b3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRlYnVn
KCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIElGcmFtZSBi
ZWZvcmU6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2Ug
YWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6ICIg
KyBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChpRnJhbWVTY3JvbGxQb3Np
dGlvbkJlZm9yZSAhPSBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFp
bGVkKCJJRnJhbWUgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAg
dGVzdFBhc3NlZCgiSUZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAg
ICBkZWJ1ZygiRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciAiICsgd2hlZWxDb3VudCAr
ICIgb2YgdGhlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBp
bnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVF
X0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3Vy
IElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5i
b2R5LnNjcm9sbFRvcDsKKyAgICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHdpbmRvdy5m
cmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgaWZyYW1lVGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgLy8gU2Nyb2xs
IHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBv
c1ggPSBpZnJhbWVUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBp
ZnJhbWVUYXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hl
ZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lk
ZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsg
IiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVn
aW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRy
dWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9u
IHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRl
c3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBp
dCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0
b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmlu
Z2VyIHN3aXBlIHRvIHNjcm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0
aGUgSUZyYW1lLjxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUg
dGhlIHJvdyBvZiBFTkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOwor
ICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4Ij4KKyAg
ICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4Ij4KKyAgICAgICAgUHV0IG1v
dXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgIDxpZnJhbWUgaWQ9
InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBncmVlbjsgaGVp
Z2h0OiA1MDBweDsgd2lkdGg6IDUwMHB4OyIgCisgICAgIHNyYz0gImRhdGE6dGV4dC9odG1sLAor
ICAgICA8ZGl2IGlkPSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxlPSdoZWlnaHQ6IDEwMDBweDsgd2lk
dGg6IDEwMDBweDsnPgorICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QIFRPUCBUT1AgVE9QPGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2
aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duCisgICAgIDxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
PgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIFRoaXMgc2hvdWxkIE5P
VCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duPGJyLz4K
KyAgICAgPGJyLz4KKyAgICAgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5E
IEVORCBFTkQgRU5ECisgICAgIDwvZGl2PgorICAgICAiCisgICAgIG9ubG9hZD0ic2V0dXBUb3BM
ZXZlbCgpOyIKKyAgICAgPgorICAgIDwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24n
dCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCAiKTsKKzwvc2NyaXB0PgorPHByZSBp
ZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNj
cm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxh
dGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5v
cmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKwordmFyIGlmcmFtZVRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmU7Cit2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGlu
dWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhl
IElGcmFtZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Ny
b2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBpRnJh
bWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xs
UG9zaXRpb25CZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRp
b25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlv
bkFmdGVyICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcik7
CisKKyAgICBpZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaUZyYW1lU2Nyb2xsUG9z
aXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiSUZyYW1lIGNvbnN1bWVkIHdoZWVsIGV2
ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIklGcmFtZSBkaWQgbm90IHJl
Y2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVy
bmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZ
RVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5D
TFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZy
YW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHku
c2Nyb2xsVG9wOworICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gd2luZG93LmZyYW1l
c1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBpZnJhbWVUYXJnZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAvLyBTY3JvbGwgdGhl
ICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9
IGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFt
ZVRhcmdldC5vZmZzZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBz
Y3JvbGwgYXdheSBmcm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhz
dGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRo
ZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAi
ICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbics
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7
CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0
dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBp
cyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBw
bGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBv
ZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIg
c3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+IgorICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBJ
RnJhbWUuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUg
cm93IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAg
ICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwv
c2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHgiPgorICAgIDxk
aXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHgiPgorICAgICAgICBQdXQgbW91c2Ug
aGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgPGlmcmFtZSBpZD0idGFy
Z2V0IiBuYW1lPSJ0YXJnZXQiIHN0eWxlPSJib3JkZXI6c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6
IDUwMHB4OyB3aWR0aDogNTAwcHg7IiAKKyAgICAgc3JjPSAiZGF0YTp0ZXh0L2h0bWwsCisgICAg
IDxkaXYgaWQ9J25vdFRvQmVTY3JvbGxlZCcgc3R5bGU9J2hlaWdodDogMTAwMHB4OyB3aWR0aDog
MTAwMHB4Oyc+CisgICAgIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QIFRPUCBUT1A8YnIvPjxici8+CisgICAgIFRoaXMgc2hvdWxkIHN0aWxsIGJlIHZpc2li
bGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd24KKyAgICAgPGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+Cisg
ICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgTk9UIGJl
IHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd248YnIvPgorICAg
ICA8YnIvPgorICAgICBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5E
IEVORCBFTkQKKyAgICAgPC9kaXY+CisgICAgICIKKyAgICAgb25sb2FkPSJzZXR1cFRvcExldmVs
KCk7IgorICAgICA+CisgICAgPC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IGNv
bnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsICIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJs
YXllcnMiPkxheWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxh
dGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMz
IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFNlbGVj
dAorCisKK1Rlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3
aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK01vdXNlIG1vdmVkIHRvICgzMCwgMTI3KQorUGFnZSBiZWZvcmU6IDAsIHNlbGVjdCBi
ZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6ICAyODAsIHNlbGVjdCBhZnRlcjogMAorUEFTUyBTZWxlY3Qg
ZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMg
MjAwOC4wMCAyMzExLjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1
ODUuMDApCisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgIChib3VuZHMgMjAwOC4wMCAyMzExLjAwKQorICAgICAgKGNvbnRlbnRz
T3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUu
MDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJh
Z2UgMCwgMCAyMDA4IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAg
KHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDQgeCA0KQorICAgICkKKyAgKQorKQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3Jv
bGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zh
c3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKK1B1dCBtb3VzZSBo
ZXJlIGFuZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFibGUgU2VsZWN0CisKKworVGVzdHMgdGhh
dCBhIHNlbGVjdCBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxh
dGNoZWQgdG8gbWFpbiBmcmFtZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTW91c2UgbW92
ZWQgdG8gKDMwLCAxMjcpCitQYWdlIGJlZm9yZTogMCwgc2VsZWN0IGJlZm9yZTogMAorUGFnZSBh
ZnRlcjogIDI4MCwgc2VsZWN0IGFmdGVyOiAwCitQQVNTIFNlbGVjdCBkaWQgbm90IHJlY2VpdmUg
d2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciA0IG9mIHRoZSB3
aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDguMDAgMjMyNi4wMCkK
KyAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAoY29udGVu
dHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAo
Ym91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAg
KHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAgICAgKGNvbnRl
bnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgMjAwOCB4IDIw
NDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVmdCB0aWxlIDAs
IDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVk
LW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQt
bWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVk
LW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnNjcm9sbGFi
bGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0ZCwgLnRhYmxlIHRo
IHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAgaGVpZ2h0OiAyMHB4
OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0cm9uZzsKK30KKwor
LnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQor
Cisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3Jv
dW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHdoZWVsQ291bnQg
PSAwOworZnVuY3Rpb24gb25TY3JvbGxXaGVlbChldnQpIHsKKyAgICB3aGVlbENvdW50ID0gd2hl
ZWxDb3VudCArIDE7Cit9CisKK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgb25TY3JvbGxXaGVlbCk7CisgICAgc2V0dXBUb3BM
ZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+
Cis8c2NyaXB0PgorCit2YXIgc2VsZWN0VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZTsKK3ZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50
ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgc2VsZWN0
IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3Np
dGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFNjcm9s
bFBvc2l0aW9uQWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBh
Z2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9y
ZTogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRl
cjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNl
bGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHNlbGVjdFNjcm9sbFBvc2l0aW9u
QmVmb3JlICE9IHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQo
IlNlbGVjdCBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0
UGFzc2VkKCJTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGRl
YnVnKCJEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENvdW50ICsgIiBv
ZiB0aGUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVy
bmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZ
RVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5D
TFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZy
YW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHku
c2Nyb2xsVG9wOworCisgICAgc2VsZWN0VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RhcmdldCcpOworCisgICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJn
ZXQuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNo
IHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVm
dCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBzZWxlY3RUYXJnZXQub2Zmc2V0VG9wIC0gNDI7
IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZy
YW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAv
LyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1v
dXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9u
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tG
b3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0
VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVz
c2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAg
ICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBt
ZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1w
UmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8
YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVz
ZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCBkb3duPGJy
Lz4iCisgICAgICAgICAgICArICJwYXN0IHRoZSBzZWxlY3RUYXJnZXQuPGJyLz48YnIvPiIKKyAg
ICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgJ2NvbnRlbnQyMScgbGFiZWwgaWYg
dGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5h
cHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFy
ZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlk
PSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAg
UHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgICAgICA8
ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAgICAgICAgICA8aDM+U2Nyb2xsYWJs
ZSBTZWxlY3Q8L2gzPgorICAgICAgICAgICAgPHNlbGVjdCBpZD0idGFyZ2V0IiBjbGFzcz0ic2Ny
b2xsYWJsZV9zZWxlY3QiIHNpemU9IjgiPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyPC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Mzwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDQ8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQ1PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Njwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDc8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQ4PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50OTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEwPC9vcHRpb24+
CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTE8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQxMjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDEzPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTQ8L29w
dGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNTwvb3B0aW9uPgorICAgICAg
ICAgICAgICAgIDxvcHRpb24+Y29udGVudDE2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9w
dGlvbj5jb250ZW50MTc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQx
ODwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE5PC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MjA8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQyMTwvb3B0aW9uPgorICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IGNvbnN1
bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4iKTsK
Kzwvc2NyaXB0PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFz
dC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2Vs
ZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxl
X3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7
CisgICAgcGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsK
KyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50
YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKwor
LnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3Vu
ZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgp
IHsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFn
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwor
dmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKwor
ICAgIC8vIFRoZSBzZWxlY3Qgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAg
ICB2YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7
CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUg
KyAiLCBzZWxlY3QgYmVmb3JlOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAg
IGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgc2Vs
ZWN0IGFmdGVyOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAoc2Vs
ZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAg
ICAgICAgdGVzdEZhaWxlZCgiU2VsZWN0IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBl
bHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZl
bnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVB
c1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURF
U19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNI
RVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlv
biBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAg
IHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisg
ICAgc2VsZWN0VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisg
ICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOwor
CisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0Lgor
ICAgIHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIHZh
ciBzdGFydFBvc1kgPSBzZWxlY3RUYXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1v
cmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCisgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2Ug
YXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgi
ICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAn
bm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7
Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxU
ZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRN
TCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8g
bWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAg
ICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hl
ZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCBkb3duPGJyLz4iCisgICAgICAgICAg
ICArICJwYXN0IHRoZSBzZWxlY3RUYXJnZXQuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllv
dSBzaG91bGQgbm90IHNlZSB0aGUgJ2NvbnRlbnQyMScgbGFiZWwgaWYgdGhpcyB0ZXN0IGlzIHN1
Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNz
YWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVp
Z2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxl
PSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUg
YW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3Jv
bGxhYmxlX3JlZ2lvbiI+CisgICAgICAgICAgICA8aDM+U2Nyb2xsYWJsZSBTZWxlY3Q8L2gzPgor
ICAgICAgICAgICAgPHNlbGVjdCBpZD0idGFyZ2V0IiBjbGFzcz0ic2Nyb2xsYWJsZV9zZWxlY3Qi
IHNpemU9IjgiPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyPC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50Mzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDQ8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ1PC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Njwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQ4PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50OTwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEwPC9vcHRpb24+CisgICAgICAgICAgICAg
ICAgPG9wdGlvbj5jb250ZW50MTE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNv
bnRlbnQxMjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEzPC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTQ8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDE2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTc8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxODwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE5PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MjA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQyMTwvb3B0aW9uPgorICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvZGl2PgorICAg
IDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRz
IHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4iKTsKKzwvc2NyaXB0PgorPHBy
ZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1s
YXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBA
QAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBTZWxlY3QK
KworCitUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFp
biBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorZGl2IGRpc3BsYXkgaGVpZ2h0ID0gMTExCitNb3VzZSBtb3ZlZCB0byAoMzAsIDIzOCkKK1Bh
Z2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVmb3JlOiA3MAorUGFnZSBhZnRlcjogIDAsIHNlbGVjdCBh
ZnRlcjogMTgyCitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KKyhHcmFw
aGljc0xheWVyCisgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAodmlzaWJsZSByZWN0IDAu
MDAsIDAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDIwMDguMDAgMjMyNi4w
MCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAw
LjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAo
dGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDIwMDggeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1
MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgNCB4IDQpCisg
ICAgKQorICApCispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxl
ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgt
aGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorUHV0
IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBTZWxlY3QKKworCitU
ZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFt
ZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorZGl2
IGRpc3BsYXkgaGVpZ2h0ID0gMTExCitNb3VzZSBtb3ZlZCB0byAoMzAsIDIzOCkKK1BhZ2UgYmVm
b3JlOiAwLCBzZWxlY3QgYmVmb3JlOiA3MAorUGFnZSBhZnRlcjogIDAsIHNlbGVjdCBhZnRlcjog
MTgyCitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KK0RvY3VtZW50IHdh
cyBpbml0aWFsIHRhcmdldCBmb3IgNCBvZiB0aGUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5
ZXIKKyAgKGJvdW5kcyAyMDA4LjAwIDIzNDEuMDApCisgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4w
MCA3ODUuMDAgeCA1ODUuMDApCisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAx
CisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgMjAwOC4wMCAyMzQxLjAwKQorICAg
ICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1
LjAwIHggNTg1LjAwKQorICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNh
Y2hlIGNvdmVyYWdlIDAsIDAgMjAwOCB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUx
MikKKyAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisg
ICkKKykKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5n
L2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFz
dC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qt
c2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE1OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50
YWJsZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7
CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWln
aHQ6IHN0cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3Jv
dW5kOiAjZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChv
ZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgordmFyIHdoZWVsQ291bnQgPSAwOworZnVuY3Rpb24gb25TY3JvbGxXaGVlbChldnQpIHsKKyAg
ICB3aGVlbENvdW50ID0gd2hlZWxDb3VudCArIDE7Cit9CisKK2Z1bmN0aW9uIG9uTG9hZCgpIHsK
KyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgb25TY3JvbGxXaGVl
bCk7CisgICAgc2V0dXBUb3BMZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgc2VsZWN0VGFyZ2V0OwordmFyIHBh
Z2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsK
K3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisK
KyAgICAvLyBUaGUgcGFnZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZh
ciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAg
IHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsK
KworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAr
ICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAg
ZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBzZWxl
Y3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAg
IHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwor
CisgICAgZGVidWcoIkRvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgIiArIHdoZWVsQ291
bnQgKyAiIG9mIHRoZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0
ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAgICAgICAgIGludGVy
bmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJf
VFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJl
IG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1l
bnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcCA9IHNlbGVjdFRh
cmdldC5zY3JvbGxIZWlnaHQgLSBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisg
ICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOwor
CisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0Lgor
ICAgIHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRl
YnVnKCJkaXYgZGlzcGxheSBoZWlnaHQgPSAiICsgc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCk7
CisgICAgdmFyIHN0YXJ0UG9zWSA9IHNlbGVjdFRhcmdldC5vZmZzZXRUb3AgKyBzZWxlY3RUYXJn
ZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1
cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVk
IHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVn
YW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGws
IDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChz
Y3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0
aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVz
c2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlu
bmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJl
ZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAg
ICAgICAgICAgICsgImluc2lkZSB0aGUgc2VsZWN0IGJveCwgYW5kIHNjcm9sbCBuZWFyIChidXQg
bm90IEFUKSB0aGUgYm90dG9tIG9mIHRoZSByYW5nZS4gVXNlIHRoZSBtb3VzZSB3aGVlbCBvciBh
IHR3by1maW5nZXI8YnIvPiIKKyAgICAgICAgICAgICsgInN3aXBlIHRvIHNjcm9sbCB0aHJvdWdo
IHRoZSByZXN0IG9mIHRoZSBzZWxlY3Qgb3B0aW9ucy48YnIvPjxici8+IgorICAgICAgICAgICAg
KyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSBwYWdlIHBvc2l0aW9uIGNoYW5nZSBpZiB0aGlzIHRl
c3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENo
aWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0
eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJj
ZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91
c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAgICAgICAgIDxoMz5TY3JvbGxhYmxlIFNlbGVj
dDwvaDM+CisgICAgICAgICAgICA8c2VsZWN0IGlkPSJ0YXJnZXQiIGNsYXNzPSJzY3JvbGxhYmxl
X3NlbGVjdCIgc2l6ZT0iOCI+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDI8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQzPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50NDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDU8L29w
dGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ2PC9vcHRpb24+CisgICAgICAg
ICAgICAgICAgPG9wdGlvbj5jb250ZW50Nzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ5PC9v
cHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTA8L29wdGlvbj4KKyAgICAg
ICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxv
cHRpb24+Y29udGVudDEyPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50
MTM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNDwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE1PC9vcHRpb24+CisgICAgICAgICAgICAg
ICAgPG9wdGlvbj5jb250ZW50MTY8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNv
bnRlbnQxNzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE4PC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTk8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQyMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDIxPC9vcHRpb24+CisgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgPC9k
aXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBl
dmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0
PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2Vs
ZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2Vs
ZWN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lk
dGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4
OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBs
ZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQo
b2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0
IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKwor
PC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBzZXR1cFRvcExl
dmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4K
KzxzY3JpcHQ+CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlOwordmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQg
PSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBwYWdlIHNo
b3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlv
bkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFNjcm9sbFBv
c2l0aW9uQWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2Ug
YmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9yZTog
IiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjog
ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNlbGVj
dFNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9y
ZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBy
ZWNlaXZlZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQ
YWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5u
ZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAgICAgICAg
IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMu
TEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2Vl
IHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0g
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcCA9IHNl
bGVjdFRhcmdldC5zY3JvbGxIZWlnaHQgLSBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAw
OworCisgICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xs
VG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFy
Z2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOwor
ICAgIGRlYnVnKCJkaXYgZGlzcGxheSBoZWlnaHQgPSAiICsgc2VsZWN0VGFyZ2V0LmNsaWVudEhl
aWdodCk7CisgICAgdmFyIHN0YXJ0UG9zWSA9IHNlbGVjdFRhcmdldC5vZmZzZXRUb3AgKyBzZWxl
Y3RUYXJnZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQu
CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBN
YWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNl
IG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JT
Y3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGlt
ZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2Fn
ZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2
YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNz
YWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVu
ZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIv
PiIKKyAgICAgICAgICAgICsgImluc2lkZSB0aGUgc2VsZWN0IGJveCwgYW5kIHNjcm9sbCBuZWFy
IChidXQgbm90IEFUKSB0aGUgYm90dG9tIG9mIHRoZSByYW5nZS4gVXNlIHRoZSBtb3VzZSB3aGVl
bCBvciBhIHR3by1maW5nZXI8YnIvPiIKKyAgICAgICAgICAgICsgInN3aXBlIHRvIHNjcm9sbCB0
aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBzZWxlY3Qgb3B0aW9ucy48YnIvPjxici8+IgorICAgICAg
ICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSBwYWdlIHBvc2l0aW9uIGNoYW5nZSBpZiB0
aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFw
cGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJl
bnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9
InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQ
dXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgICAgIDxk
aXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAgICAgICAgIDxoMz5TY3JvbGxhYmxl
IFNlbGVjdDwvaDM+CisgICAgICAgICAgICA8c2VsZWN0IGlkPSJ0YXJnZXQiIGNsYXNzPSJzY3Jv
bGxhYmxlX3NlbGVjdCIgc2l6ZT0iOCI+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50
MTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDI8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQzPC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50NDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ2PC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Nzwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQ5PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTA8L29wdGlvbj4K
KyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMTwvb3B0aW9uPgorICAgICAgICAgICAg
ICAgIDxvcHRpb24+Y29udGVudDEyPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5j
b250ZW50MTM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNDwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE1PC9vcHRpb24+CisgICAgICAg
ICAgICAgICAgPG9wdGlvbj5jb250ZW50MTY8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0
aW9uPmNvbnRlbnQxNzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE4
PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTk8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyMDwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDIxPC9vcHRpb24+CisgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAg
ICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3
aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwv
c2NyaXB0PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9s
bGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVk
LWRpdi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw2MCBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRv
d253YXJkcworU2Nyb2xsYWJsZSBSZWdpb24KKworQ291bnQJREFUQQlSZXYgQ291bnQKK1RPUCBU
T1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCisx
CTAuMTEwMAk0MAorMgkwLjExNTUJMzkKKzMJMC4yMjAwCTM4Cis0CTAuMjI1NQkzNworNQkwLjMz
MDAJMzYKKzYJMC4zMzU1CTM1Cis3CTAuNDQwMAkzNAorOAkwLjQ0NTUJMzMKKzkJMC41NTAwCTMy
CisxMAkwLjU1NTUJMzEKKzExCTAuNjYwMAkzMAorMTIJMC42NjU1CTI5CisxMwkwLjc3MDAJMjgK
KzE0CTAuNzc1NQkyNworMTUJMC44ODAwCTI2CisxNgkwLjg4NTUJMjUKKzE3CTAuOTkwMAkyNAor
MTgJMC45OTU1CTIzCisxOQkwLjk5OTkJMjIKKzIwCTEuMDAwMAkyMQorMjEJMS4wMDAwCTIwCisy
MgkwLjk5OTkJMTkKKzIzCTAuOTk1NQkxOAorMjQJMC45OTAwCTE3CisyNQkwLjg4NTUJMTYKKzI2
CTAuODgwMAkxNQorMjcJMC43NzU1CTE0CisyOAkwLjc3MDAJMTMKKzI5CTAuNjY1NQkxMgorMzAJ
MC42NjAwCTExCiszMQkwLjU1NTUJMTAKKzMyCTAuNTUwMAk5CiszMwkwLjQ0NTUJOAorMzQJMC40
NDAwCTcKKzM1CTAuMzM1NQk2CiszNgkwLjMzMDAJNQorMzcJMC4yMjU1CTQKKzM4CTAuMjIwMAkz
CiszOQkwLjExNTUJMgorNDAJMC4xMTAwCTEKK0VORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVORCBF
TkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECitUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBk
aXYgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5n
IGF0IGJvdHRvbQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitkaXYgZGlzcGxheSBoZWlnaHQg
PSA0ODUKK01vdXNlIG1vdmVkIHRvICgyOCwgNjEwKQorUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZv
cmU6IDQ1MQorUGFnZSBhZnRlcjogIDAsIGRpdiBhZnRlcjogNDUxCitQQVNTIFBhZ2UgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRj
aGVkLWRpdi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0
ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAg
aGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0
cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAj
ZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsK
KyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIGRpdlRh
cmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgZGl2U2Nyb2xsUG9zaXRp
b25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Ny
b2xsKCkgeworCisgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxs
LgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xs
VG9wOworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRv
cDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9y
ZSArICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVi
dWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0
ZXI6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWls
ZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAg
Ly8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBkaXZUYXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgZGl2VGFyZ2V0LnNjcm9sbFRvcCA9IGRp
dlRhcmdldC5zY3JvbGxIZWlnaHQgLSBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisg
ICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAg
Ly8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZh
ciBzdGFydFBvc1ggPSBkaXZUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRlYnVnKCJkaXYg
ZGlzcGxheSBoZWlnaHQgPSAiICsgZGl2VGFyZ2V0LmNsaWVudEhlaWdodCk7CisgICAgdmFyIHN0
YXJ0UG9zWSA9IGRpdlRhcmdldC5vZmZzZXRUb3AgKyBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0g
NDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0
c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NY
ICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9u
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
YmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcs
IHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0
aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsK
KyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlz
IHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVz
dCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRo
ZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28t
ZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFz
dCB0aGUgZGl2Ljxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUg
dGhlIHJvdyBvZiBFTkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOwor
ICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0
aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsg
d2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2Fy
ZHMKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAg
ICAgIDxoMz5TY3JvbGxhYmxlIFJlZ2lvbjwvaDM+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIg
c3R5bGU9J292ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgbWF4LWhlaWdodDog
NDg1cHg7Jz4KKyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUiIHN0eWxlPSd3aWR0aDog
OTklJz4KKyAgICAgICAgICAgICAgICA8dHI+PHRoPkNvdW50PC90aD48dGg+REFUQTwvdGg+PHRo
PlJldiBDb3VudDwvdGg+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPlRPUCBUT1AgVE9Q
IFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1Ag
VE9QIFRPUDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE8L3RkPjx0ZD4wLjEx
MDA8L3RkPjx0ZD40MDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI8L3RkPjx0
ZD4wLjExNTU8L3RkPjx0ZD4zOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM8
L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjQ8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD4zNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjU8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD4zNjwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjY8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD4zNTwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjc8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD4zNDwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjg8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD4zMzwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjk8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0
ZD4zMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEwPC90ZD48dGQ+MC41NTU1
PC90ZD48dGQ+MzE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMTwvdGQ+PHRk
PjAuNjYwMDwvdGQ+PHRkPjMwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTI8
L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4yOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjEzPC90ZD48dGQ+MC43NzAwPC90ZD48dGQ+Mjg8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4xNDwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjI3PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MTU8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4yNjwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjE2PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MjU8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNzwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRk
PjI0PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTg8L3RkPjx0ZD4wLjk5NTU8
L3RkPjx0ZD4yMzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE5PC90ZD48dGQ+
MC45OTk5PC90ZD48dGQ+MjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMDwv
dGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MjE8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjIyPC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MTk8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4yMzwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjE4PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4xNzwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI1PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+
MTY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNjwvdGQ+PHRkPjAuODgwMDwv
dGQ+PHRkPjE1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjc8L3RkPjx0ZD4w
Ljc3NTU8L3RkPjx0ZD4xNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI4PC90
ZD48dGQ+MC43NzAwPC90ZD48dGQ+MTM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4yOTwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjEyPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MzA8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4xMTwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjMxPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MTA8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4zMjwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjk8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMzwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjg8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNDwvdGQ+PHRkPjAuNDQwMDwvdGQ+
PHRkPjc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNTwvdGQ+PHRkPjAuMzM1
NTwvdGQ+PHRkPjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNjwvdGQ+PHRk
PjAuMzMwMDwvdGQ+PHRkPjU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNzwv
dGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4zODwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4zOTwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjI8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD40MDwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjE8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBF
TkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjwvdHI+CisgICAgICAg
ICAgICA8L3RhYmxlPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBz
Y3JvbGxhYmxlIGRpdiBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hl
biBzY3JvbGxpbmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwt
ZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5m
cmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZs
aWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBSZWdpb24KKworQ291bnQJREFUQQlSZXYgQ291bnQK
K1RPUCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1Ag
VE9QCisxCTAuMTEwMAk0MAorMgkwLjExNTUJMzkKKzMJMC4yMjAwCTM4Cis0CTAuMjI1NQkzNwor
NQkwLjMzMDAJMzYKKzYJMC4zMzU1CTM1Cis3CTAuNDQwMAkzNAorOAkwLjQ0NTUJMzMKKzkJMC41
NTAwCTMyCisxMAkwLjU1NTUJMzEKKzExCTAuNjYwMAkzMAorMTIJMC42NjU1CTI5CisxMwkwLjc3
MDAJMjgKKzE0CTAuNzc1NQkyNworMTUJMC44ODAwCTI2CisxNgkwLjg4NTUJMjUKKzE3CTAuOTkw
MAkyNAorMTgJMC45OTU1CTIzCisxOQkwLjk5OTkJMjIKKzIwCTEuMDAwMAkyMQorMjEJMS4wMDAw
CTIwCisyMgkwLjk5OTkJMTkKKzIzCTAuOTk1NQkxOAorMjQJMC45OTAwCTE3CisyNQkwLjg4NTUJ
MTYKKzI2CTAuODgwMAkxNQorMjcJMC43NzU1CTE0CisyOAkwLjc3MDAJMTMKKzI5CTAuNjY1NQkx
MgorMzAJMC42NjAwCTExCiszMQkwLjU1NTUJMTAKKzMyCTAuNTUwMAk5CiszMwkwLjQ0NTUJOAor
MzQJMC40NDAwCTcKKzM1CTAuMzM1NQk2CiszNgkwLjMzMDAJNQorMzcJMC4yMjU1CTQKKzM4CTAu
MjIwMAkzCiszOQkwLjExNTUJMgorNDAJMC4xMTAwCTEKK0VORCBFTkQgRU5EIEVORCBFTkQJRU5E
IEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECitUZXN0cyB0aGF0IGEgc2Nyb2xs
YWJsZSBkaXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRj
aGVkIHRvIG1haW4gZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK01vdXNlIG1vdmVk
IHRvICgyOCwgMTI1KQorUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6
ICAzMjAsIGRpdiBhZnRlcjogMAorUEFTUyBTY3JvbGxhYmxlIGRpdiBkaWQgbm90IHJlY2VpdmUg
d2hlZWwgZXZlbnRzLgorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3Jv
bGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQt
bWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAgIHdpZHRoOiA2ODBweDsKK30KKwor
LnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRpbmc6IDJweDsKK30KKworLnRhYmxlIHRo
IHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBmb250LXdl
aWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tn
cm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxk
KG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgc2V0dXBUb3BMZXZlbCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2
YXIgZGl2VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBkaXZTY3Jv
bGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hl
Y2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxl
ZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9k
eS5zY3JvbGxUb3A7CisgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQu
c2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0
aW9uQmVmb3JlICsgIiwgZGl2IGJlZm9yZTogIiArIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlKTsK
KyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIs
IGRpdiBhZnRlcjogIiArIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKGRpdlNj
cm9sbFBvc2l0aW9uQmVmb3JlICE9IGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRl
c3RGYWlsZWQoIlNjcm9sbGFibGUgZGl2IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBl
bHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlNjcm9sbGFibGUgZGl2IGRpZCBub3QgcmVjZWl2ZSB3
aGVlbCBldmVudHMuIik7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVu
Y3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoK
KyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsK
KworICAgIGRpdlRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKwor
ICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAg
IC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2
YXIgc3RhcnRQb3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQ
b3NZID0gZGl2VGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25l
IHdoZWVsIHNjcm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91
dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9z
WCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25v
bmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQn
LCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5j
dGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhp
cyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRl
c3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0
aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdv
LWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBh
c3QgdGhlIGRpdi48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2Vl
IHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsK
KyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30K
KworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lk
dGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7
IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndh
cmRzCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAg
ICAgICA8aDM+U2Nyb2xsYWJsZSBSZWdpb248L2gzPgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQi
IHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWlnaHQ6
IDQ4NXB4Oyc+CisgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIiBzdHlsZT0nd2lkdGg6
IDk5JSc+CisgICAgICAgICAgICAgICAgPHRyPjx0aD5Db3VudDwvdGg+PHRoPkRBVEE8L3RoPjx0
aD5SZXYgQ291bnQ8L3RoPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9QIFRP
UCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9Q
IFRPUCBUT1A8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+MC4x
MTAwPC90ZD48dGQ+NDA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yPC90ZD48
dGQ+MC4xMTU1PC90ZD48dGQ+Mzk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4z
PC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD40PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD41PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+MzM8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+MC41NTAwPC90ZD48
dGQ+MzI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAuNTU1
NTwvdGQ+PHRkPjMxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTE8L3RkPjx0
ZD4wLjY2MDA8L3RkPjx0ZD4zMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEy
PC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+Mjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD4xMzwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjI4PC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MTQ8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0
ZD4yNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45OTU1
PC90ZD48dGQ+MjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+PHRk
PjAuOTk5OTwvdGQ+PHRkPjIyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjA8
L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjIxPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4yMjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MjM8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRk
PjE2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4MDA8
L3RkPjx0ZD4xNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48dGQ+
MC43NzU1PC90ZD48dGQ+MTQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yODwv
dGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjEzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+Mjk8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjMwPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD44
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8L3Rk
Pjx0ZD43PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4wLjMz
NTU8L3RkPjx0ZD42PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzY8L3RkPjx0
ZD4wLjMzMDA8L3RkPjx0ZD41PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzc8
L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD40PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+Mzg8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+Mzk8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4yPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQg
RU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48L3RyPgorICAgICAg
ICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEg
c2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBp
cyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3Jv
bGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVk
LWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorUHV0IG1vdXNlIGhlcmUgYW5k
IGZsaWNrIGRvd253YXJkcworCitUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwg
ZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK0lGcmFtZSBkaXNwbGF5IGhlaWdodCA9IDUwMAorTW91c2UgbW92ZWQg
dG8gKDI4LCA1NjYpCitQYWdlIGJlZm9yZTogMCwgSUZyYW1lIGJlZm9yZTogNDE2CitQYWdlIGFm
dGVyOiAgMCwgSUZyYW1lIGFmdGVyOiA0MTYKK1BBU1MgUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hl
ZWwgZXZlbnRzLgorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxp
bmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQt
aWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2
ZW50cy8jZXZlbnRzLVdoZWVsRXZlbnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisKK3ZhciBpZnJhbWVUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFy
IGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitm
dW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBJRnJhbWUgc2hvdWxkIG5v
dCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIg
PSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25B
ZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwor
CisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsg
IiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBk
ZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIElGcmFt
ZSBhZnRlcjogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAg
dGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAg
ICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisK
KyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgp
IHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGlmcmFtZVRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIHZhciBpRnJhbWVC
b2R5ID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keTsKKyAgICBpRnJhbWVC
b2R5LnNjcm9sbFRvcCA9IGlGcmFtZUJvZHkuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1lVGFyZ2V0LmNs
aWVudEhlaWdodCAtIDEwMDsKKworICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaUZy
YW1lQm9keS5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2Ug
cmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdldC5vZmZz
ZXRMZWZ0ICsgMjA7CisgICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhlaWdodCA9ICIgKyBpZnJh
bWVUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFyZ2V0
Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVs
IHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gs
IHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUK
KyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQ
b3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0
VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZl
bCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFy
ZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIg
cnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUg
bW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBJRnJhbWUsIHRo
ZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRo
ZSBJRnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPGJyLz4iCisgICAgICAgICAgICAr
ICI8YnIvPjxici8+IgorICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzY3Jv
bGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0aGUgbWFpbiBw
YWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVu
ZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQi
IHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVp
Z2h0OiAxMDBweCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMK
KyAgICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdldCIgc3R5bGU9
ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAwcHg7IHdpZHRoOiA1MDBweDsiIAor
ICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRpdiBpZD0nbm90VG9CZVNjcm9sbGVk
JyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7Jz4KKyAgICAgVE9QIFRPUCBU
T1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUDxici8+PGJyLz4K
KyAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVy
IHlvdSBzY3JvbGwgZG93bgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAg
IDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPgorICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1l
IGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgIDxici8+CisgICAgIEVORCBFTkQgRU5E
IEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAorICAgICA8L2Rpdj4KKyAg
ICAgIgorICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiCisgICAgID4KKyAgICA8L2lmcmFt
ZT4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBm
cmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFp
bmZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitQdXQg
bW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisKK1Rlc3RzIHRoYXQgaWZyYW1lIGRvZXNu
J3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorTW91c2UgbW92ZWQgdG8gKDI4LCA2NikKK1BhZ2UgYmVmb3JlOiAwLCBJRnJhbWUgYmVm
b3JlOiAwCitQYWdlIGFmdGVyOiAgMzIwLCBJRnJhbWUgYWZ0ZXI6IDAKK1BBU1MgSUZyYW1lIGRp
ZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Nj
cm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQt
bWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3
dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKwordmFyIGlmcmFtZVRhcmdldDsKK3ZhciBwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2
YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisg
ICAgLy8gVGhlIElGcmFtZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZh
ciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAg
IHZhciBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10u
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBw
YWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Ny
b2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3Jv
bGxQb3NpdGlvbkFmdGVyICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRp
b25BZnRlcik7CisKKyAgICBpZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaUZyYW1l
U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiSUZyYW1lIGNvbnN1bWVk
IHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIklGcmFtZSBk
aWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91
ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisgICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3aW5kb3cu
ZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGlmcmFtZVRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIC8vIFNjcm9s
bCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQ
b3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0g
aWZyYW1lVGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdo
ZWVsIHNjcm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNp
ZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCAr
ICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUn
LCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Jl
Z2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0
cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlv
biBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0
ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3Qg
aXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUg
dG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZp
bmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBhc3Qg
dGhlIElGcmFtZS48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2Vl
IHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsK
KyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30K
KworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+Cisg
ICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweCI+CisgICAgICAgIFB1dCBt
b3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlk
PSJ0YXJnZXQiIG5hbWU9InRhcmdldCIgc3R5bGU9ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhl
aWdodDogNTAwcHg7IHdpZHRoOiA1MDBweDsiIAorICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwK
KyAgICAgPGRpdiBpZD0nbm90VG9CZVNjcm9sbGVkJyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdp
ZHRoOiAxMDAwcHg7Jz4KKyAgICAgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QIFRPUCBUT1AgVE9QIFRPUDxici8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUg
dmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bgorICAgICA8YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBO
T1QgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+
CisgICAgIDxici8+CisgICAgIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVO
RCBFTkQgRU5EIEVORAorICAgICA8L2Rpdj4KKyAgICAgIgorICAgICBvbmxvYWQ9InNldHVwVG9w
TGV2ZWwoKTsiCisgICAgID4KKyAgICA8L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNu
J3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgIik7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Nj
cm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRj
aGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBA
QAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBTZWxlY3QK
KworCitUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hl
biBzY3JvbGwgaXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitNb3VzZSBtb3ZlZCB0byAoMzAsIDEyNykKK1BhZ2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVm
b3JlOiAwCitQYWdlIGFmdGVyOiAgMzIwLCBzZWxlY3QgYWZ0ZXI6IDAKK1BBU1MgU2VsZWN0IGRp
ZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Nj
cm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQt
bWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7Cisg
ICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFkZGlu
ZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFs
aWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpudGgt
Y2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFibGVf
c2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsK
K30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBz
ZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25M
b2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlOwordmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRp
bnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRo
ZSBzZWxlY3Qgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgc2Vs
ZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICBk
ZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBzZWxl
Y3QgYmVmb3JlOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQ
YWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgc2VsZWN0IGFmdGVy
OiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAoc2VsZWN0U2Nyb2xs
UG9zaXRpb25CZWZvcmUgIT0gc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVz
dEZhaWxlZCgiU2VsZWN0IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RQYXNzZWQoIlNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwor
CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3Qo
KSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICBzZWxlY3RTY3Jv
bGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3Jv
bGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0
UG9zWCA9IHNlbGVjdFRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9
IHNlbGVjdFRhcmdldC5vZmZzZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3
aGVlbCBzY3JvbGwgYXdheSBmcm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRz
aWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1gg
KyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdi
ZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywg
dHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rp
b24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMg
dGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0
IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhl
IHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1m
aW5nZXIgc3dpcGUgdG8gc2Nyb2xsIGRvd248YnIvPiIKKyAgICAgICAgICAgICsgInBhc3QgdGhl
IHNlbGVjdFRhcmdldC48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qg
c2VlIHRoZSAnY29udGVudDIxJyBsYWJlbCBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+
IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0K
K30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsg
d2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAw
cHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93
bndhcmRzCisgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9u
Ij4KKyAgICAgICAgICAgIDxoMz5TY3JvbGxhYmxlIFNlbGVjdDwvaDM+CisgICAgICAgICAgICA8
c2VsZWN0IGlkPSJ0YXJnZXQiIGNsYXNzPSJzY3JvbGxhYmxlX3NlbGVjdCIgc2l6ZT0iOCI+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQzPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50NDwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDU8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQ2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50Nzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDg8L29wdGlvbj4K
KyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ5PC9vcHRpb24+CisgICAgICAgICAgICAg
ICAgPG9wdGlvbj5jb250ZW50MTA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNv
bnRlbnQxMTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEyPC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTM8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDE1PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTY8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNzwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE4PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MTk8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQyMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDIxPC9vcHRpb24+
CisgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwg
aXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Ny
b2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1zZWxlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK1B1dCBtb3VzZSBoZXJlIGFu
ZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFibGUgU2VsZWN0CisKKworVGVzdHMgdGhhdCBhIHNl
bGVjdCBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxp
bmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2RpdiBkaXNwbGF5IGhlaWdo
dCA9IDExMQorTW91c2UgbW92ZWQgdG8gKDMwLCAyMzgpCitQYWdlIGJlZm9yZTogMCwgc2VsZWN0
IGJlZm9yZTogNzAKK1BhZ2UgYWZ0ZXI6ICAwLCBzZWxlY3QgYWZ0ZXI6IDE4MgorUEFTUyBQYWdl
IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Nj
cm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2Vs
ZWN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lk
dGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4
OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBs
ZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQo
b2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0
IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKwor
PC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBzZXR1cFRv
cExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7
Ij4KKzxzY3JpcHQ+CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9u
QmVmb3JlOwordmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291
bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBwYWdl
IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3Np
dGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFNjcm9s
bFBvc2l0aW9uQWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBh
Z2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9y
ZTogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRl
cjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNl
bGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFn
ZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2Vk
KCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUg
d2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBk
b2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIHNlbGVjdFRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wID0gc2Vs
ZWN0VGFyZ2V0LnNjcm9sbEhlaWdodCAtIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7
CisKKyAgICBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxU
b3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJn
ZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IHNlbGVjdFRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7Cisg
ICAgZGVidWcoImRpdiBkaXNwbGF5IGhlaWdodCA9ICIgKyBzZWxlY3RUYXJnZXQuY2xpZW50SGVp
Z2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCArIHNlbGVj
dFRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4K
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1h
a2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2Ug
bW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNj
cm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUp
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1l
b3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdl
TG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZh
ciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3Nh
Z2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5k
ZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+
IgorICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBzZWxlY3QgYm94LCBhbmQgc2Nyb2xsIG5lYXIg
KGJ1dCBub3QgQVQpIHRoZSBib3R0b20gb2YgdGhlIHJhbmdlLiBVc2UgdGhlIG1vdXNlIHdoZWVs
IG9yIGEgdHdvLWZpbmdlcjxici8+IgorICAgICAgICAgICAgKyAic3dpcGUgdG8gc2Nyb2xsIHRo
cm91Z2ggdGhlIHJlc3Qgb2YgdGhlIHNlbGVjdCBvcHRpb25zLjxici8+PGJyLz4iCisgICAgICAg
ICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHBhZ2UgcG9zaXRpb24gY2hhbmdlIGlmIHRo
aXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBw
ZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVu
dCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0i
c291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1
dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICAgICAgPGRp
diBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICAgICAgPGgzPlNjcm9sbGFibGUg
U2VsZWN0PC9oMz4KKyAgICAgICAgICAgIDxzZWxlY3QgaWQ9InRhcmdldCIgY2xhc3M9InNjcm9s
bGFibGVfc2VsZWN0IiBzaXplPSI4Ij4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQx
PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Mjwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8
b3B0aW9uPmNvbnRlbnQ0PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50
NTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDY8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ3PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50ODwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDk8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMDwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDExPC9vcHRpb24+CisgICAgICAgICAgICAg
ICAgPG9wdGlvbj5jb250ZW50MTI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNv
bnRlbnQxMzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE0PC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTU8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDE3PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTg8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxOTwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDIwPC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MjE8L29wdGlvbj4KKyAgICAgICAgICAgIDwvc2VsZWN0PgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBwYXNzIHdo
ZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224151</attachid>
            <date>2014-02-13 20:02:24 -0800</date>
            <delta_ts>2014-02-13 20:09:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127606-20140213200224.patch</filename>
            <type>text/plain</type>
            <size>163821</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDE0LTAyLTEzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgorCisgICAgICAgIENyZWF0ZSBzb21lIGxhdGNoZWQgc2Nyb2xsaW5nIHRlc3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjA2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xNTkxMTM0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5tbToKKyAgICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciBpc1NlbGVjdG9yRXhj
bHVkZWRGcm9tV2ViU2NyaXB0Ol0pOiBVcGRhdGUgdG8gcmVjb2duaXplCisgICAgICAgIHRoZSBu
ZXcgIm1vdXNlU2Nyb2xsQnlYOmFuZFk6d2l0aFdoZWVsOmFuZE1vbWVudHVtUGhhc2VzOiIgc2Vs
ZWN0b3IuCisgICAgICAgICgrW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgd2ViU2NyaXB0TmFtZUZv
clNlbGVjdG9yOl0pOiBEaXR0by4KKyAgICAgICAgKC1bRXZlbnRTZW5kaW5nQ29udHJvbGxlciBt
b3VzZVNjcm9sbEJ5WDphbmRZOndpdGhXaGVlbDphbmRNb21lbnR1bVBoYXNlczpdKTogSW1wbGVt
ZW50CisgICAgICAgIHRoZSBuZXcgd2hlZWwgZXZlbnQgc2VuZGVyLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGw6IEFk
ZCBkZWNsYXJhdGlvbgorICAgICAgICBvZiBuZXcgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzIG1ldGhvZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpFdmVudFNl
bmRpbmdDb250cm9sbGVyOjptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMp
OiBBZGRlZAorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW06CisgICAgICAgIChXVFI6OkV2ZW50U2Vu
ZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyk6IEFkZCBz
dHViIGZvciBpT1MuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6IEhhbmRsZSB0aGUgbmV3CisgICAgICAgIG1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcyBtZXNzYWdlLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6IEhh
bmRsZSB0aGUKKyAgICAgICAgbmV3IG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZs
LmNwcDoKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKTogUHJvdmlkZSBzdHViIHRoYXQKKyAgICAgICAgcmVsYXlz
IHRvIHRoZSBzdGFuZGFyZCBtb3VzZSB3aGVlbCBoYW5kbGVyLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwOgorICAgICAgICAoV1RSOjpFdmVu
dFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMpOiBQcm92aWRlIGltcGxlbWVudGF0aW9uCisgICAgICAgIG9mIG1v
dXNlIHdoZWVsIGdlc3R1cmUgbWV0aG9kLgorCiAyMDE0LTAyLTEzICBEYXZpZCBGYXJsZXIgIDxk
ZmFybGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBEdW1wUmVuZGVyVHJlZSBmYWlscyB0byBidWls
ZDogUGVybCBzdXBwb3J0IG1vZHVsZSBidWlsZGluZyBmb3IgT1MgWCBidXQgbGlua2luZyBmb3Ig
dGhlIHNpbXVsYXRvcgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IEpvbmFzIFdpdHQgPGpvbmFzLndpdHRAZ21haWwuY29tPgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQG55cG9wLmNv
bT4KQEAgLTIwMiw2ICsyMDIsNyBAQCArIChCT09MKWlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJT
Y3JpcHQ6CiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHpvb21QYWdlT3V0
KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzY2FsZVBhZ2VCeTphdFg6
YW5kWTopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlU2Nyb2xs
QnlYOmFuZFk6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZVNj
cm9sbEJ5WDphbmRZOndpdGhXaGVlbDphbmRNb21lbnR1bVBoYXNlczopCiAgICAgICAgICAgICB8
fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5WDphbmRZOikK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGFkZFRvdWNoQXRYOnk6KQpAQCAtMjU0LDYgKzI1NSw4IEBAICsgKE5TU3RyaW5nICopd2ViU2Ny
aXB0TmFtZUZvclNlbGVjdG9yOigKICAgICAgICAgcmV0dXJuIEAic2V0RHJhZ01vZGUiOwogICAg
IGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlU2Nyb2xsQnlYOmFuZFk6KSkKICAgICAg
ICAgcmV0dXJuIEAibW91c2VTY3JvbGxCeSI7CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0
b3IobW91c2VTY3JvbGxCeVg6YW5kWTp3aXRoV2hlZWw6YW5kTW9tZW50dW1QaGFzZXM6KSkKKyAg
ICAgICAgcmV0dXJuIEAibW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIjsK
ICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihjb250aW51b3VzTW91c2VTY3JvbGxCeVg6
YW5kWTopKQogICAgICAgICByZXR1cm4gQCJjb250aW51b3VzTW91c2VTY3JvbGxCeSI7CiAgICAg
aWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2NhbGVQYWdlQnk6YXRYOmFuZFk6KSkKQEAgLTY5
OSw2ICs3MDIsNTQgQEAgLSAodm9pZCltb3VzZVNjcm9sbEJ5WDooaW50KXggYW5kWTooaW50KQog
ICAgIFtzZWxmIG1vdXNlU2Nyb2xsQnlYOnggYW5kWTp5IGNvbnRpbnVvdXNseTpOT107CiB9CiAK
K3N0YXRpYyBjb25zdCB1aW50MzJfdCB3aGVlbEV2ZW50TW9tZW50dW1QaGFzZSA9IDEyMzsKKwor
LSAodm9pZCltb3VzZVNjcm9sbEJ5WDooaW50KXggYW5kWTooaW50KXkgd2l0aFdoZWVsOihOU1N0
cmluZyopcGhhc2VOYW1lIGFuZE1vbWVudHVtUGhhc2VzOihOU1N0cmluZyopbW9tZW50dW1OYW1l
Cit7CisjaWYgIVBMQVRGT1JNKElPUykKKyAgICB1aW50MzJfdCBwaGFzZSA9IDA7CisgICAgaWYg
KFtwaGFzZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBAIm5vbmUiXSkKKyAgICAgICAgcGhhc2UgPSAw
OworICAgIGVsc2UgaWYgKFtwaGFzZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBAImJlZ2FuIl0pCisg
ICAgICAgIHBoYXNlID0gMTsgLy8ga0NHU2Nyb2xsUGhhc2VCZWdhbgorICAgIGVsc2UgaWYgKFtw
aGFzZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBAImNoYW5nZCJdKQorICAgICAgICBwaGFzZSA9IDI7
IC8vIGtDR1Njcm9sbFBoYXNlQ2hhbmdlZDsKKyAgICBlbHNlIGlmIChbcGhhc2VOYW1lIGlzRXF1
YWxUb1N0cmluZzogQCJlbmRlZCJdKQorICAgICAgICBwaGFzZSA9IDQ7IC8vIGtDR1Njcm9sbFBo
YXNlRW5kZWQKKyAgICBlbHNlIGlmIChbcGhhc2VOYW1lIGlzRXF1YWxUb1N0cmluZzogQCJjYW5j
ZWxsZWQiXSkKKyAgICAgICAgcGhhc2UgPSA4OyAvLyBrQ0dTY3JvbGxQaGFzZUNhbmNlbGxlZAor
ICAgIGVsc2UgaWYgKFtwaGFzZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBAIm1heWJlZ2luIl0pCisg
ICAgICAgIHBoYXNlID0gMTI4OyAvLyBrQ0dTY3JvbGxQaGFzZU1heUJlZ2luCisKKyAgICB1aW50
MzJfdCBtb21lbnR1bSA9IDA7CisgICAgaWYgKFttb21lbnR1bU5hbWUgaXNFcXVhbFRvU3RyaW5n
OiBAIm5vbmUiXSkKKyAgICAgICAgbW9tZW50dW0gPSAwOyAvL2tDR01vbWVudHVtU2Nyb2xsUGhh
c2VOb25lOworICAgIGVsc2UgaWYgKFttb21lbnR1bU5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiYmVn
aW4iXSkKKyAgICAgICAgbW9tZW50dW0gPSAxOyAvLyBrQ0dNb21lbnR1bVNjcm9sbFBoYXNlQmVn
aW47CisgICAgZWxzZSBpZiAoW21vbWVudHVtTmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJjb250aW51
ZSJdKQorICAgICAgICBtb21lbnR1bSA9IDI7IC8vIGtDR01vbWVudHVtU2Nyb2xsUGhhc2VDb250
aW51ZTsKKyAgICBlbHNlIGlmIChbbW9tZW50dW1OYW1lIGlzRXF1YWxUb1N0cmluZzpAImVuZCJd
KQorICAgICAgICBtb21lbnR1bSA9IDM7IC8vIGtDR01vbWVudHVtU2Nyb2xsUGhhc2VFbmQ7CisK
KyAgICBDR0V2ZW50UmVmIGNnU2Nyb2xsRXZlbnQgPSBDR0V2ZW50Q3JlYXRlU2Nyb2xsV2hlZWxF
dmVudChOVUxMLCBrQ0dTY3JvbGxFdmVudFVuaXRMaW5lLCAyLCB5LCB4KTsKKworICAgIC8vIENH
RXZlbnQgbG9jYXRpb25zIGFyZSBpbiBnbG9iYWwgZGlzcGxheSBjb29yZGluYXRlcy4KKyAgICBD
R1BvaW50IGxhc3RHbG9iYWxNb3VzZVBvc2l0aW9uID0gQ0dQb2ludE1ha2UobGFzdE1vdXNlUG9z
aXRpb24ueCwgW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBsYXN0
TW91c2VQb3NpdGlvbi55KTsKKyAgICBDR0V2ZW50U2V0TG9jYXRpb24oY2dTY3JvbGxFdmVudCwg
bGFzdEdsb2JhbE1vdXNlUG9zaXRpb24pOworICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVs
ZChjZ1Njcm9sbEV2ZW50LCBrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UsIHBoYXNlKTsK
KyAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dTY3JvbGxFdmVudCwgd2hlZWxFdmVu
dE1vbWVudHVtUGhhc2UsIG1vbWVudHVtKTsKKyAgICAKKyAgICBOU0V2ZW50KiBzY3JvbGxFdmVu
dCA9IFtOU0V2ZW50IGV2ZW50V2l0aENHRXZlbnQ6Y2dTY3JvbGxFdmVudF07CisgICAgQ0ZSZWxl
YXNlKGNnU2Nyb2xsRXZlbnQpOworCisgICAgaWYgKE5TVmlldyogdGFyZ2V0VmlldyA9IFtbbWFp
bkZyYW1lIHdlYlZpZXddIGhpdFRlc3Q6W3Njcm9sbEV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXSkg
eworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpzY3JvbGxFdmVudF07CisgICAgICAg
IFt0YXJnZXRWaWV3IHNjcm9sbFdoZWVsOnNjcm9sbEV2ZW50XTsKKyAgICAgICAgW05TQXBwIF9z
ZXRDdXJyZW50RXZlbnQ6bmlsXTsKKyAgICB9CisjZW5kaWYKK30KKwogLSAoTlNBcnJheSAqKWNv
bnRleHRDbGljawogewogI2lmICFQTEFURk9STShJT1MpCkluZGV4OiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAkocmV2aXNpb24gMTY0MDgzKQorKysgVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjAsNiArNjAs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3VzZVVwKHVuc2lnbmVkIGJ1dHRvbiwgV0tFdmVudE1v
ZGlmaWVycyk7CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpOwogICAg
IHZvaWQgbW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHkpOworICAgIHZvaWQgbW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQg
bW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5
LCBib29sIHBhZ2VkKTsKIAogICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2aXNp
b24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTg1Niw2ICs4NTYsMjUgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlk
UmVjZWl2ZU1lc3NhZ2VGcgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJNb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMiKSkgeworICAgICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHhLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJYIikpOworICAgICAgICAgICAgZG91YmxlIHggPSBXS0RvdWJsZUdldFZhbHVl
KHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3Nh
Z2VCb2R5RGljdGlvbmFyeSwgeEtleS5nZXQoKSkpKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJZIikpOworICAgICAgICAgICAgZG91YmxlIHkgPSBXS0RvdWJsZUdl
dFZhbHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5
KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgeUtleS5nZXQoKSkpKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHBoYXNlS2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGhhc2UiKSk7CisgICAgICAgICAgICBpbnQgcGhh
c2UgPSBzdGF0aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50
NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBw
aGFzZUtleS5nZXQoKSkpKSk7CisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
bW9tZW50dW1LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb21l
bnR1bSIpKTsKKyAgICAgICAgICAgIGludCBtb21lbnR1bSA9IHN0YXRpY19jYXN0PGludD4oV0tV
SW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRl
bUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIG1vbWVudHVtS2V5LmdldCgpKSkpKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgLy8gRm9yd2FyZCB0byBXZWJQcm9jZXNzCisgICAgICAg
ICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtYWluV2ViVmlldygp
LT5wYWdlKCksIGZhbHNlKTsKKyAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+bW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCBtb21lbnR1bSk7
CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIH0KIApAQCAtOTI1LDYgKzk0NCwyNSBAQCBXS1JldGFpblB0cjxXS1R5
cGVSZWY+IFRlc3RDb250cm9sbGVyOjpkCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fQogCisgICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VO
YW1lLCAiTW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIikpIHsKKyAgICAg
ICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKKyAgICAgICAgICAgIGRvdWJsZSB4ID0gV0tEb3Vi
bGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZv
cktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkpKSk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWSIpKTsKKyAgICAgICAgICAgIGRvdWJsZSB5ID0g
V0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0
SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHlLZXkuZ2V0KCkpKSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwaGFzZUtleSA9IGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBoYXNlIikpOworICAgICAgICAg
ICAgaW50IHBoYXNlID0gc3RhdGljX2Nhc3Q8aW50PihXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19j
YXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSwgcGhhc2VLZXkuZ2V0KCkpKSkpOworICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1vbWVudHVtS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiTW9tZW50dW0iKSk7CisgICAgICAgICAgICBpbnQgbW9tZW50dW0gPSBzdGF0aWNfY2Fz
dDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlv
bmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBtb21lbnR1bUtleS5nZXQo
KSkpKSk7CisKKyAgICAgICAgICAgIC8vIEZvcndhcmQgdG8gV2ViUHJvY2VzcworICAgICAgICAg
ICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkobWFpbldlYlZpZXcoKS0+
cGFnZSgpLCB0cnVlKTsKKyAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+bW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCBtb21lbnR1bSk7Cisg
ICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtYWluV2Vi
VmlldygpLT5wYWdlKCksIGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9
CisgICAgICAgIAogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJN
ZXNzYWdlTmFtZSwgIkNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5IikpIHsKICAgICAgICAgICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiWCIpKTsKICAgICAgICAgICAgIGRvdWJsZSB4ID0gV0tEb3VibGVHZXRWYWx1
ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkpKSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5n
Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM0Nyw2ICszNDcsNjEgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9s
bGVyOjptb3VzZVNjcm9sbAogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmpl
Y3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0
KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOwogfQogCit2b2lkIEV2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXI6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhp
bnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBoYXNlU3RyLCBKU1N0cmluZ1JlZiBtb21lbnR1bVN0
ciwgYm9vbCBhc3luY1Njcm9sbGluZykKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
RXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRXZlbnRTZW5kZXIiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlRGljdGlvbmFy
eVJlZj4gRXZlbnRTZW5kZXJNZXNzYWdlQm9keShBZG9wdFdLLCBXS011dGFibGVEaWN0aW9uYXJ5
Q3JlYXRlKCkpOworICAgIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdl
S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTdWJNZXNzYWdlIikp
OworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzIikpOworICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNz
YWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZUtleS5nZXQoKSwgc3ViTWVzc2FnZU5hbWUuZ2V0KCkp
OworICAgIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5KEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJYIikpOworICAgIFdLUmV0YWluUHRyPFdLRG91Ymxl
UmVmPiB4UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHgpKTsKKyAgICBXS0RpY3Rpb25hcnlT
ZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHhLZXkuZ2V0KCksIHhSZWYuZ2V0
KCkpOworICAgIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5KEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOworICAgIFdLUmV0YWluUHRyPFdLRG91
YmxlUmVmPiB5UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHkpKTsKKyAgICBXS0RpY3Rpb25h
cnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHlLZXkuZ2V0KCksIHlSZWYu
Z2V0KCkpOworCisgICAgdWludDY0X3QgcGhhc2UgPSAwOworICAgIGlmIChKU1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKHBoYXNlU3RyLCAibm9uZSIpKQorICAgICAgICBwaGFzZSA9IDA7Cisg
ICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhwaGFzZVN0ciwgImJlZ2Fu
IikpCisgICAgICAgIHBoYXNlID0gMTsgLy8ga0NHU2Nyb2xsUGhhc2VCZWdhbgorICAgIGVsc2Ug
aWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcocGhhc2VTdHIsICJjaGFuZ2VkIikpCisg
ICAgICAgIHBoYXNlID0gMjsgLy8ga0NHU2Nyb2xsUGhhc2VDaGFuZ2VkCisgICAgZWxzZSBpZiAo
SlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhwaGFzZVN0ciwgImVuZGVkIikpCisgICAgICAg
IHBoYXNlID0gNDsgLy8ga0NHU2Nyb2xsUGhhc2VFbmRlZAorICAgIGVsc2UgaWYgKEpTU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcocGhhc2VTdHIsICJjYW5jZWxsZWQiKSkKKyAgICAgICAgcGhh
c2UgPSA4OyAvLyBrQ0dTY3JvbGxQaGFzZUNhbmNlbGxlZAorICAgIGVsc2UgaWYgKEpTU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcocGhhc2VTdHIsICJtYXliZWdpbiIpKQorICAgICAgICBwaGFz
ZSA9IDEyODsgLy8ga0NHU2Nyb2xsUGhhc2VNYXlCZWdpbgorCisgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHBoYXNlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJQaGFzZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gcGhhc2VSZWYoQWRvcHRX
SywgV0tVSW50NjRDcmVhdGUocGhhc2UpKTsKKyAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50
U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHBoYXNlS2V5LmdldCgpLCBwaGFzZVJlZi5nZXQoKSk7
CisKKyAgICB1aW50NjRfdCBtb21lbnR1bSA9IDA7CisgICAgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobW9tZW50dW1TdHIsICJub25lIikpCisgICAgICAgIG1vbWVudHVtID0gMDsg
Ly8ga0NHTW9tZW50dW1TY3JvbGxQaGFzZU5vbmUKKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3RyLCAiYmVnaW4iKSkKKyAgICAgICAgbW9tZW50dW0g
PSAxOyAvLyBrQ0dNb21lbnR1bVNjcm9sbFBoYXNlQmVnaW4KKyAgICBlbHNlIGlmIChKU1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3RyLCAiY29udGludWUiKSkKKyAgICAgICAg
bW9tZW50dW0gPSAyOyAvLyBrQ0dNb21lbnR1bVNjcm9sbFBoYXNlQ29udGludWUKKyAgICBlbHNl
IGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3RyLCAiZW5kIikpCisg
ICAgICAgIG1vbWVudHVtID0gMzsgLy8ga0NHTW9tZW50dW1TY3JvbGxQaGFzZUVuZAorCisgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VJbnQ2
NFJlZj4gbW9tZW50dW1SZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUobW9tZW50dW0pKTsKKyAg
ICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIG1vbWVu
dHVtS2V5LmdldCgpLCBtb21lbnR1bVJlZi5nZXQoKSk7CisKKyAgICBpZiAoYXN5bmNTY3JvbGxp
bmcpCisgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LmJ1bmRsZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3Nh
Z2VCb2R5LmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3Vz
TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVz
c2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworfQorCiB2
b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4
LCBpbnQgeSwgYm9vbCBwYWdlZCkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gRXZl
bnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiRXZlbnRTZW5kZXIiKSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAkocmV2
aXNpb24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9F
dmVudFNlbmRpbmdDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ3LDYg
KzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VVcChpbnQgYnV0dG9uLCBKU1ZhbHVlUmVm
IG1vZGlmaWVyQXJyYXkpOwogICAgIHZvaWQgbW91c2VNb3ZlVG8oaW50IHgsIGludCB5KTsKICAg
ICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKKyAgICB2b2lkIG1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBo
YXNlLCBKU1N0cmluZ1JlZiBtb21lbnR1bSwgYm9vbCBhc3luY1Njcm9sbGluZyk7CiAgICAgdm9p
ZCBjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpOwogICAg
IEpTVmFsdWVSZWYgY29udGV4dENsaWNrKCk7CiAgICAgdm9pZCBsZWFwRm9yd2FyZChpbnQgbWls
bGlzZWNvbmRzKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250
cm9sbGVyLmlkbAkocmV2aXNpb24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDExLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQCBpbnRlcmZhY2UgRXZlbnRTZW5kaW5n
Q29udHJvbGxlciB7CiAgICAgdm9pZCBtb3VzZVVwKGxvbmcgYnV0dG9uTnVtYmVyLCBvYmplY3Qg
bW9kaWZpZXJBcnJheSk7CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhsb25nIHgsIGxvbmcgeSk7CiAg
ICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGxvbmcgeCwgbG9uZyB5KTsKKyAgICB2b2lkIG1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhsb25nIHgsIGxvbmcgeSwgRE9NU3RyaW5n
IHBoYXNlLCBET01TdHJpbmcgbW9tZW50dW0sIG9wdGlvbmFsIGJvb2xlYW4gYXN5bmNTY3JvbGxp
bmcpOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25nIHksIG9w
dGlvbmFsIGJvb2xlYW4gcGFnZWQpOwogICAgIG9iamVjdCBjb250ZXh0Q2xpY2soKTsKICAgICB2
b2lkIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2soKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5k
ZXJQcm94eUlPUy5tbQkocmV2aXNpb24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQkod29ya2luZyBjb3B5
KQpAQCAtOTgsNiArOTgsMTEgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5
KGludAogICAgIC8vIFdyaXRlIG1lLgogfQogCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFz
ZSwgaW50IG1vbWVudHVtKQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCiB2b2lkIEV2ZW50U2Vu
ZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdl
ZCkKIHsKICAgICAvLyBXcml0ZSBtZS4KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZs
L0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCShyZXZpc2lvbiAxNjQwODMpCisrKyBU
b29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzkyLDYgKzM5MiwxMyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRp
bnVvdXNNb3VzZVNjCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBFdmVudFNlbmRl
clByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGlu
dCB5LCBpbnQgLypwaGFzZSovLCBpbnQgLyptb21lbnR1bSovKQoreworICAgIC8vIEVGTCBkb2Vz
IG5vdCBoYXZlIHRoZSBjb25jZXB0IG9mIHdoZWVsIGdlc3R1cmUgcGhhc2VzIG9yIG1vbWVudHVt
LiBKdXN0IHJlbGF5IHRvCisgICAgLy8gdGhlIG1vdXNlIHdoZWVsIGhhbmRsZXIuCisgICAgbW91
c2VTY3JvbGxCeSh4LCB5KTsKK30KKwogdm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2Fy
ZChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGlmIChtX2V2ZW50UXVldWUuaXNFbXB0eSgpKQpJ
bmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94
eUd0ay5jcHAJKHJldmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzMsNiArNDMzLDEz
IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y29udGludW91c01vdXNlU2MKICAgICBzZW5kT3JR
dWV1ZUV2ZW50KGV2ZW50KTsKIH0KIAordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQgLypwaGFzZSov
LCBpbnQgLyptb21lbnR1bSovKQoreworICAgIC8vIEd0aysgZG9lcyBub3QgaGF2ZSB0aGUgY29u
Y2VwdCBvZiB3aGVlbCBnZXN0dXJlIHBoYXNlcyBvciBtb21lbnR1bS4gSnVzdCByZWxheSB0bwor
ICAgIC8vIHRoZSBtb3VzZSB3aGVlbCBoYW5kbGVyLgorICAgIG1vdXNlU2Nyb2xsQnkoeCwgeSk7
Cit9CisKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25k
cykKIHsKICAgICBpZiAobV9ldmVudFF1ZXVlLmlzRW1wdHkoKSkKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQkocmV2aXNpb24gMTY0MDgz
KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CkBAIC00NjEsNCArNDYxLDI1IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y29udGlu
dW91c01vdXNlU2MKICAgICByZXR1cm47CiB9CiAKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBo
YXNlLCBpbnQgbW9tZW50dW0pCit7CisgICAgUmV0YWluUHRyPENHRXZlbnRSZWY+IGNnU2Nyb2xs
RXZlbnQgPSBhZG9wdENGKENHRXZlbnRDcmVhdGVTY3JvbGxXaGVlbEV2ZW50KDAsIGtDR1Njcm9s
bEV2ZW50VW5pdExpbmUsIDIsIHksIHgpKTsKKworICAgIC8vIENHRXZlbnQgbG9jYXRpb25zIGFy
ZSBpbiBnbG9iYWwgZGlzcGxheSBjb29yZGluYXRlcy4KKyAgICBDR1BvaW50IGxhc3RHbG9iYWxN
b3VzZVBvc2l0aW9uID0gQ0dQb2ludE1ha2UobV9wb3NpdGlvbi54LCBbW05TU2NyZWVuIG1haW5T
Y3JlZW5dIGZyYW1lXS5zaXplLmhlaWdodCAtIG1fcG9zaXRpb24ueSk7CisgICAgQ0dFdmVudFNl
dExvY2F0aW9uKGNnU2Nyb2xsRXZlbnQuZ2V0KCksIGxhc3RHbG9iYWxNb3VzZVBvc2l0aW9uKTsK
KworICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ1Njcm9sbEV2ZW50LmdldCgpLCBr
Q0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UsIHBoYXNlKTsKKyAgICBDR0V2ZW50U2V0SW50
ZWdlclZhbHVlRmllbGQoY2dTY3JvbGxFdmVudC5nZXQoKSwga0NHU2Nyb2xsV2hlZWxFdmVudE1v
bWVudHVtUGhhc2UsIG1vbWVudHVtKTsKKworICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQg
ZXZlbnRXaXRoQ0dFdmVudDogY2dTY3JvbGxFdmVudC5nZXQoKV07CisKKyAgICAvLyBPdXIgZXZl
bnQgc2hvdWxkIGhhdmUgdGhlIGNvcnJlY3Qgc2V0dGluZ3M6CisgICAgaWYgKE5TVmlldyAqdGFy
Z2V0VmlldyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXco
KSBoaXRUZXN0OiBbZXZlbnQgbG9jYXRpb25JbldpbmRvd11dKSB7CisgICAgICAgIFtOU0FwcCBf
c2V0Q3VycmVudEV2ZW50OiBldmVudF07CisgICAgICAgIFt0YXJnZXRWaWV3IHNjcm9sbFdoZWVs
OiBldmVudF07CisgICAgICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50OiBuaWxdOworICAgIH0K
K30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjQwODMpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBAQAorMjAx
NC0wMi0xMyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
cmVhdGUgc29tZSBsYXRjaGVkIHNjcm9sbGluZyB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYwNgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTU5MTEzNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIEFkZCBhIHNlcmllcyBvZiB0ZXN0cyB0byBjb3ZlciBkZXNpcmVkIGJlaGF2aW9yIHdpdGgg
d2hlZWwgZXZlbnRzIChpbmNsdWRpbmcgbW9tZW50dW0pLgorICAgICAgICBUaGlzIGJlaGF2aW9y
IGlzIHNwZWNpZmljIHRvIHRoZSBNYWMgcGxhdGZvcm0sIHNvIGlzIGxpbWl0ZWQgdG8gdGhlIHBs
YXRmb3JtL21hYyBhbmQKKyAgICAgICAgcGxhdGZvcm0vbWFjLXdrMiBkaXJlY3Rvcmllcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdpdGgtaGFuZGxl
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1kaXYtbGF0Y2hlZC1kaXYuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qt
c2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1s
YXRjaGVkLW1haW5mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zh
c3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1z
Y3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
dGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
ZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5m
cmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5k
bGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRs
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5n
L2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxh
dGNoZWQtc2VsZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRo
LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFu
ZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZzogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRp
di1sYXRjaGVkLWRpdi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9z
Y3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNo
ZWQtbWFpbmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3Nj
cm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0
Y2hlZC1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Ny
b2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1s
YXRjaGVkLW1haW5mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2Vs
ZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbDogQWRkZWQuCisKIDIwMTQtMDItMTMgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIxNjQwNzMgYW5kIHIxNjQwODAuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNzYgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFi
bGUgUmVnaW9uCisKK0NvdW50CURBVEEJUmV2IENvdW50CitUT1AgVE9QIFRPUCBUT1AgVE9QCVRP
UCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAorMQkwLjExMDAJNDAKKzIJMC4x
MTU1CTM5CiszCTAuMjIwMAkzOAorNAkwLjIyNTUJMzcKKzUJMC4zMzAwCTM2Cis2CTAuMzM1NQkz
NQorNwkwLjQ0MDAJMzQKKzgJMC40NDU1CTMzCis5CTAuNTUwMAkzMgorMTAJMC41NTU1CTMxCisx
MQkwLjY2MDAJMzAKKzEyCTAuNjY1NQkyOQorMTMJMC43NzAwCTI4CisxNAkwLjc3NTUJMjcKKzE1
CTAuODgwMAkyNgorMTYJMC44ODU1CTI1CisxNwkwLjk5MDAJMjQKKzE4CTAuOTk1NQkyMworMTkJ
MC45OTk5CTIyCisyMAkxLjAwMDAJMjEKKzIxCTEuMDAwMAkyMAorMjIJMC45OTk5CTE5CisyMwkw
Ljk5NTUJMTgKKzI0CTAuOTkwMAkxNworMjUJMC44ODU1CTE2CisyNgkwLjg4MDAJMTUKKzI3CTAu
Nzc1NQkxNAorMjgJMC43NzAwCTEzCisyOQkwLjY2NTUJMTIKKzMwCTAuNjYwMAkxMQorMzEJMC41
NTU1CTEwCiszMgkwLjU1MDAJOQorMzMJMC40NDU1CTgKKzM0CTAuNDQwMAk3CiszNQkwLjMzNTUJ
NgorMzYJMC4zMzAwCTUKKzM3CTAuMjI1NQk0CiszOAkwLjIyMDAJMworMzkJMC4xMTU1CTIKKzQw
CTAuMTEwMAkxCitFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVO
RCBFTkQgRU5EIEVORAorVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNuJ3QgcGFzcyB3
aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorZGl2IGRpc3BsYXkgaGVpZ2h0ID0gNDg1CitNb3VzZSBtb3Zl
ZCB0byAoMjgsIDYxMCkKK1BhZ2UgYmVmb3JlOiAwLCBkaXYgYmVmb3JlOiA0NTEKK1BhZ2UgYWZ0
ZXI6ICAwLCBkaXYgYWZ0ZXI6IDQ1MQorUEFTUyBQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBl
dmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgKHZp
c2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgKGNvbnRlbnRzU2NhbGUg
MS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyAy
MDA4LjAwIDIzMjYuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxl
IHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCisgICAgICAoY29udGVudHNTY2FsZSAx
LjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAyMDA4IHggMjA0OCkKKyAgICAg
ICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBn
cmlkIDQgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdpdGgtaGFu
ZGxlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRs
ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRs
ZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzcgQEAKK1B1dCBtb3Vz
ZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFibGUgUmVnaW9uCisKK0NvdW50CURB
VEEJUmV2IENvdW50CitUT1AgVE9QIFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AJVE9Q
IFRPUCBUT1AgVE9QIFRPUAorMQkwLjExMDAJNDAKKzIJMC4xMTU1CTM5CiszCTAuMjIwMAkzOAor
NAkwLjIyNTUJMzcKKzUJMC4zMzAwCTM2Cis2CTAuMzM1NQkzNQorNwkwLjQ0MDAJMzQKKzgJMC40
NDU1CTMzCis5CTAuNTUwMAkzMgorMTAJMC41NTU1CTMxCisxMQkwLjY2MDAJMzAKKzEyCTAuNjY1
NQkyOQorMTMJMC43NzAwCTI4CisxNAkwLjc3NTUJMjcKKzE1CTAuODgwMAkyNgorMTYJMC44ODU1
CTI1CisxNwkwLjk5MDAJMjQKKzE4CTAuOTk1NQkyMworMTkJMC45OTk5CTIyCisyMAkxLjAwMDAJ
MjEKKzIxCTEuMDAwMAkyMAorMjIJMC45OTk5CTE5CisyMwkwLjk5NTUJMTgKKzI0CTAuOTkwMAkx
NworMjUJMC44ODU1CTE2CisyNgkwLjg4MDAJMTUKKzI3CTAuNzc1NQkxNAorMjgJMC43NzAwCTEz
CisyOQkwLjY2NTUJMTIKKzMwCTAuNjYwMAkxMQorMzEJMC41NTU1CTEwCiszMgkwLjU1MDAJOQor
MzMJMC40NDU1CTgKKzM0CTAuNDQwMAk3CiszNQkwLjMzNTUJNgorMzYJMC4zMzAwCTUKKzM3CTAu
MjI1NQk0CiszOAkwLjIyMDAJMworMzkJMC4xMTU1CTIKKzQwCTAuMTEwMAkxCitFTkQgRU5EIEVO
RCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVORAorVGVzdHMg
dGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBm
cmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
ZGl2IGRpc3BsYXkgaGVpZ2h0ID0gNDg1CitNb3VzZSBtb3ZlZCB0byAoMjgsIDYxMCkKK1BhZ2Ug
YmVmb3JlOiAwLCBkaXYgYmVmb3JlOiA0NTEKK1BhZ2UgYWZ0ZXI6ICAwLCBkaXYgYWZ0ZXI6IDQ1
MQorUEFTUyBQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCitEb2N1bWVudCB3YXMg
aW5pdGlhbCB0YXJnZXQgZm9yIDAgb2YgdGhlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVy
CisgIChib3VuZHMgMjAwOC4wMCAyMzQxLjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAg
Nzg1LjAwIHggNTg1LjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDIwMDguMDAgMjM0MS4wMCkKKyAgICAg
IChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4w
MCB4IDU4NS4wMCkKKyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNo
ZSBjb3ZlcmFnZSAwLCAwIDIwMDggeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIp
CisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgNCB4IDQpCisgICAgKQorICAp
CispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0
Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxODIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxl
X3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7
CisgICAgcGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsK
KyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50
YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKwor
LnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3Vu
ZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB3aGVlbENvdW50ID0g
MDsKK2Z1bmN0aW9uIG9uU2Nyb2xsV2hlZWwoZXZ0KSB7CisgICAgd2hlZWxDb3VudCA9IHdoZWVs
Q291bnQgKyAxOworfQorCitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIG9uU2Nyb2xsV2hlZWwpOworICAgIHNldHVwVG9wTGV2
ZWwoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgor
PHNjcmlwdD4KKwordmFyIGRpdlRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7
Cit2YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisK
K2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90
IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVy
ID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBh
Z2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3Np
dGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0
aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0ZXI6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKwor
ICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOwor
ICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwg
ZXZlbnRzLiIpOworCisgICAgZGVidWcoIkRvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3Ig
IiArIHdoZWVsQ291bnQgKyAiIG9mIHRoZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJz
JykuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAg
ICAgICAgIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRl
cm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAg
Ly8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBkaXZUYXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgZGl2VGFyZ2V0LnNjcm9sbFRvcCA9IGRp
dlRhcmdldC5zY3JvbGxIZWlnaHQgLSBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisg
ICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAg
Ly8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZh
ciBzdGFydFBvc1ggPSBkaXZUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRlYnVnKCJkaXYg
ZGlzcGxheSBoZWlnaHQgPSAiICsgZGl2VGFyZ2V0LmNsaWVudEhlaWdodCk7CisgICAgdmFyIHN0
YXJ0UG9zWSA9IGRpdlRhcmdldC5vZmZzZXRUb3AgKyBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0g
NDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0
c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NY
ICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9u
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
YmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcs
IHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0
aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsK
KyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlz
IHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVz
dCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRo
ZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28t
ZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFz
dCB0aGUgZGl2Ljxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUg
dGhlIHJvdyBvZiBFTkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOwor
ICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0
aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsg
d2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2Fy
ZHMKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAg
ICAgIDxoMz5TY3JvbGxhYmxlIFJlZ2lvbjwvaDM+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIg
c3R5bGU9J292ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgbWF4LWhlaWdodDog
NDg1cHg7Jz4KKyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUiIHN0eWxlPSd3aWR0aDog
OTklJz4KKyAgICAgICAgICAgICAgICA8dHI+PHRoPkNvdW50PC90aD48dGg+REFUQTwvdGg+PHRo
PlJldiBDb3VudDwvdGg+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPlRPUCBUT1AgVE9Q
IFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1Ag
VE9QIFRPUDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE8L3RkPjx0ZD4wLjEx
MDA8L3RkPjx0ZD40MDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI8L3RkPjx0
ZD4wLjExNTU8L3RkPjx0ZD4zOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM8
L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjQ8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD4zNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjU8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD4zNjwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjY8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD4zNTwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjc8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD4zNDwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjg8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD4zMzwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjk8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0
ZD4zMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEwPC90ZD48dGQ+MC41NTU1
PC90ZD48dGQ+MzE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMTwvdGQ+PHRk
PjAuNjYwMDwvdGQ+PHRkPjMwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTI8
L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4yOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjEzPC90ZD48dGQ+MC43NzAwPC90ZD48dGQ+Mjg8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4xNDwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjI3PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MTU8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4yNjwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjE2PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MjU8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNzwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRk
PjI0PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTg8L3RkPjx0ZD4wLjk5NTU8
L3RkPjx0ZD4yMzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE5PC90ZD48dGQ+
MC45OTk5PC90ZD48dGQ+MjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMDwv
dGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MjE8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjIyPC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MTk8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4yMzwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjE4PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4xNzwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI1PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+
MTY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNjwvdGQ+PHRkPjAuODgwMDwv
dGQ+PHRkPjE1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjc8L3RkPjx0ZD4w
Ljc3NTU8L3RkPjx0ZD4xNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI4PC90
ZD48dGQ+MC43NzAwPC90ZD48dGQ+MTM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4yOTwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjEyPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MzA8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4xMTwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjMxPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MTA8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4zMjwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjk8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMzwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjg8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNDwvdGQ+PHRkPjAuNDQwMDwvdGQ+
PHRkPjc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNTwvdGQ+PHRkPjAuMzM1
NTwvdGQ+PHRkPjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNjwvdGQ+PHRk
PjAuMzMwMDwvdGQ+PHRkPjU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNzwv
dGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4zODwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4zOTwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjI8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD40MDwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjE8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBF
TkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjwvdHI+CisgICAgICAg
ICAgICA8L3RhYmxlPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBz
Y3JvbGxhYmxlIGRpdiBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hl
biBzY3JvbGxpbmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9ImxheWVycyI+TGF5
ZXIgdHJlZSBnb2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNo
ZWQtZGl2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90
aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTc0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9y
ZWdpb24geworICAgIHdpZHRoOiA2ODBweDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggewor
ICAgIHBhZGRpbmc6IDJweDsKK30KKworLnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7Cisg
ICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFi
bGUgdHI6bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5z
Y3JvbGxhYmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6
ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkxvYWQoKSB7
CisgICAgc2V0dXBUb3BMZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgZGl2VGFyZ2V0OwordmFyIHBhZ2VTY3Jv
bGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250
aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBU
aGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3Jv
bGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIGRpdlNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBh
Z2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgZGl2IGJlZm9yZTog
IiArIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIg
KyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIGRpdiBhZnRlcjogIiArIGRpdlNjcm9sbFBv
c2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3
aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykg
eworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0g
aW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAgICAgICAgIGludGVybmFs
cy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91
ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisKKyAgICBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGFyZ2V0Jyk7CisgICAgZGl2VGFyZ2V0LnNjcm9sbFRvcCA9IGRpdlRhcmdldC5zY3JvbGxI
ZWlnaHQgLSBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisgICAgZGl2U2Nyb2xsUG9z
aXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAj
c291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBk
aXZUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRlYnVnKCJkaXYgZGlzcGxheSBoZWlnaHQg
PSAiICsgZGl2VGFyZ2V0LmNsaWVudEhlaWdodCk7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGRpdlRh
cmdldC5vZmZzZXRUb3AgKyBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVl
bCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NY
LCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1l
CisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0
UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNl
dFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2
ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bh
cmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVy
IHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhl
IG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBh
Z2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRv
IHNjcm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgZGl2Ljxici8+
PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBvZiBFTkQg
bGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdl
TG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxk
aXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+Cisg
ICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+
CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAgICAgIDxoMz5TY3JvbGxh
YmxlIFJlZ2lvbjwvaDM+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9J292ZXJmbG93
LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgbWF4LWhlaWdodDogNDg1cHg7Jz4KKyAgICAg
ICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUiIHN0eWxlPSd3aWR0aDogOTklJz4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRoPkNvdW50PC90aD48dGg+REFUQTwvdGg+PHRoPlJldiBDb3VudDwvdGg+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0
ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD40MDwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI8L3RkPjx0ZD4wLjExNTU8L3RkPjx0
ZD4zOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM8L3RkPjx0ZD4wLjIyMDA8
L3RkPjx0ZD4zODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQ8L3RkPjx0ZD4w
LjIyNTU8L3RkPjx0ZD4zNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjU8L3Rk
Pjx0ZD4wLjMzMDA8L3RkPjx0ZD4zNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjY8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD4zNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjc8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD4zNDwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjg8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD4zMzwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjk8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD4zMjwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjEwPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MzE8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMTwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRk
PjMwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTI8L3RkPjx0ZD4wLjY2NTU8
L3RkPjx0ZD4yOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEzPC90ZD48dGQ+
MC43NzAwPC90ZD48dGQ+Mjg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNDwv
dGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjI3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MTU8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4yNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjE2PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MjU8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4xNzwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjI0PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MTg8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4yMzwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE5PC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+
MjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMDwvdGQ+PHRkPjEuMDAwMDwv
dGQ+PHRkPjIxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjE8L3RkPjx0ZD4x
LjAwMDA8L3RkPjx0ZD4yMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIyPC90
ZD48dGQ+MC45OTk5PC90ZD48dGQ+MTk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4yMzwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjE4PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4xNzwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjI1PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MTY8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4yNjwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjE1PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjc8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4x
NDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI4PC90ZD48dGQ+MC43NzAwPC90
ZD48dGQ+MTM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yOTwvdGQ+PHRkPjAu
NjY1NTwvdGQ+PHRkPjEyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzA8L3Rk
Pjx0ZD4wLjY2MDA8L3RkPjx0ZD4xMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjMxPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MTA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4zMjwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjk8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4zMzwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjg8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zNDwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjc8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNTwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjY8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNjwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRk
PjU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNzwvdGQ+PHRkPjAuMjI1NTwv
dGQ+PHRkPjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zODwvdGQ+PHRkPjAu
MjIwMDwvdGQ+PHRkPjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zOTwvdGQ+
PHRkPjAuMTE1NTwvdGQ+PHRkPjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40
MDwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+
PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjwvdHI+CisgICAgICAgICAgICA8L3RhYmxlPgor
ICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBk
b2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQg
Ym90dG9tIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhl
cmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJh
d2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNzUgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3du
d2FyZHMKK1Njcm9sbGFibGUgUmVnaW9uCisKK0NvdW50CURBVEEJUmV2IENvdW50CitUT1AgVE9Q
IFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAorMQkw
LjExMDAJNDAKKzIJMC4xMTU1CTM5CiszCTAuMjIwMAkzOAorNAkwLjIyNTUJMzcKKzUJMC4zMzAw
CTM2Cis2CTAuMzM1NQkzNQorNwkwLjQ0MDAJMzQKKzgJMC40NDU1CTMzCis5CTAuNTUwMAkzMgor
MTAJMC41NTU1CTMxCisxMQkwLjY2MDAJMzAKKzEyCTAuNjY1NQkyOQorMTMJMC43NzAwCTI4Cisx
NAkwLjc3NTUJMjcKKzE1CTAuODgwMAkyNgorMTYJMC44ODU1CTI1CisxNwkwLjk5MDAJMjQKKzE4
CTAuOTk1NQkyMworMTkJMC45OTk5CTIyCisyMAkxLjAwMDAJMjEKKzIxCTEuMDAwMAkyMAorMjIJ
MC45OTk5CTE5CisyMwkwLjk5NTUJMTgKKzI0CTAuOTkwMAkxNworMjUJMC44ODU1CTE2CisyNgkw
Ljg4MDAJMTUKKzI3CTAuNzc1NQkxNAorMjgJMC43NzAwCTEzCisyOQkwLjY2NTUJMTIKKzMwCTAu
NjYwMAkxMQorMzEJMC41NTU1CTEwCiszMgkwLjU1MDAJOQorMzMJMC40NDU1CTgKKzM0CTAuNDQw
MAk3CiszNQkwLjMzNTUJNgorMzYJMC4zMzAwCTUKKzM3CTAuMjI1NQk0CiszOAkwLjIyMDAJMwor
MzkJMC4xMTU1CTIKKzQwCTAuMTEwMAkxCitFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5E
IEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVORAorVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2
IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hlZCB0byBt
YWluIGZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitNb3VzZSBtb3ZlZCB0byAoMjgs
IDEyNSkKK1BhZ2UgYmVmb3JlOiAwLCBkaXYgYmVmb3JlOiAwCitQYWdlIGFmdGVyOiAgMjgwLCBk
aXYgYWZ0ZXI6IDAKK1BBU1MgU2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgMjAwOC4wMCAyMzExLjAwKQorICAodmlz
aWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUuMDApCisgIChjb250ZW50c1NjYWxl
IDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMg
MjAwOC4wMCAyMzExLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJs
ZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA1ODUuMDApCisgICAgICAoY29udGVudHNTY2Fs
ZSAxLjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAyMDA4IHggMjA0OCkKKyAg
ICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxl
cyBncmlkIDQgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1l
LXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5m
cmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVk
LW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNzYgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFi
bGUgUmVnaW9uCisKK0NvdW50CURBVEEJUmV2IENvdW50CitUT1AgVE9QIFRPUCBUT1AgVE9QCVRP
UCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAorMQkwLjExMDAJNDAKKzIJMC4x
MTU1CTM5CiszCTAuMjIwMAkzOAorNAkwLjIyNTUJMzcKKzUJMC4zMzAwCTM2Cis2CTAuMzM1NQkz
NQorNwkwLjQ0MDAJMzQKKzgJMC40NDU1CTMzCis5CTAuNTUwMAkzMgorMTAJMC41NTU1CTMxCisx
MQkwLjY2MDAJMzAKKzEyCTAuNjY1NQkyOQorMTMJMC43NzAwCTI4CisxNAkwLjc3NTUJMjcKKzE1
CTAuODgwMAkyNgorMTYJMC44ODU1CTI1CisxNwkwLjk5MDAJMjQKKzE4CTAuOTk1NQkyMworMTkJ
MC45OTk5CTIyCisyMAkxLjAwMDAJMjEKKzIxCTEuMDAwMAkyMAorMjIJMC45OTk5CTE5CisyMwkw
Ljk5NTUJMTgKKzI0CTAuOTkwMAkxNworMjUJMC44ODU1CTE2CisyNgkwLjg4MDAJMTUKKzI3CTAu
Nzc1NQkxNAorMjgJMC43NzAwCTEzCisyOQkwLjY2NTUJMTIKKzMwCTAuNjYwMAkxMQorMzEJMC41
NTU1CTEwCiszMgkwLjU1MDAJOQorMzMJMC40NDU1CTgKKzM0CTAuNDQwMAk3CiszNQkwLjMzNTUJ
NgorMzYJMC4zMzAwCTUKKzM3CTAuMjI1NQk0CiszOAkwLjIyMDAJMworMzkJMC4xMTU1CTIKKzQw
CTAuMTEwMAkxCitFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVO
RCBFTkQgRU5EIEVORAorVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNuJ3QgY29uc3Vt
ZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCitNb3VzZSBtb3ZlZCB0byAoMjgsIDEyNSkKK1BhZ2UgYmVm
b3JlOiAwLCBkaXYgYmVmb3JlOiAwCitQYWdlIGFmdGVyOiAgMjgwLCBkaXYgYWZ0ZXI6IDAKK1BB
U1MgU2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KK0RvY3VtZW50
IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgNCBvZiB0aGUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNz
TGF5ZXIKKyAgKGJvdW5kcyAyMDA4LjAwIDIzMjYuMDApCisgICh2aXNpYmxlIHJlY3QgMC4wMCwg
MjgwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgKGNoaWxk
cmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyAyMDA4LjAwIDIzMjYuMDAp
CisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMjgw
LjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAo
dGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDIwMDggeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1
MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgNCB4IDQpCisg
ICAgKQorICApCispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3
aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4Owor
fQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4OworfQorCisudGFi
bGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZv
bnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7CisgICAg
YmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgt
Y2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK3ZhciB3aGVlbENvdW50ID0gMDsKK2Z1bmN0aW9uIG9uU2Nyb2xsV2hlZWwoZXZ0
KSB7CisgICAgd2hlZWxDb3VudCA9IHdoZWVsQ291bnQgKyAxOworfQorCitmdW5jdGlvbiBvbkxv
YWQoKSB7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIG9uU2Ny
b2xsV2hlZWwpOworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIGRpdlRhcmdldDsKK3Zh
ciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7
Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgewor
CisgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZh
ciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAg
IHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAg
IGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIGRp
diBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2Ug
YWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0ZXI6ICIgKyBk
aXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChkaXZTY3JvbGxQb3NpdGlvbkJlZm9y
ZSAhPSBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJTY3JvbGxh
YmxlIGRpdiBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0
UGFzc2VkKCJTY3JvbGxhYmxlIGRpdiBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwor
CisgICAgZGVidWcoIkRvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgIiArIHdoZWVsQ291
bnQgKyAiIG9mIHRoZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0
ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAgICAgICAgIGludGVy
bmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJf
VFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJl
IG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1l
bnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGFyZ2V0Jyk7CisKKyAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRpdlRhcmdl
dC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2gg
dGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGRpdlRhcmdldC5vZmZzZXRMZWZ0ICsg
MjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGRpdlRhcmdldC5vZmZzZXRUb3AgLSA0MjsgLy8gU2xp
Z2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdheSBmcm9tIHRoZSBJRnJhbWUKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ug
c3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92
ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdi
ZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9s
bCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0
KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9j
YXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBt
ZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2Uu
aW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJU
cmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+Igor
ICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBt
b3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+IgorICAg
ICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBkaXYuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsg
IllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlz
IHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZCht
ZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0i
aGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0
eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhl
cmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9s
bGFibGVfcmVnaW9uIj4KKyAgICAgICAgPGgzPlNjcm9sbGFibGUgUmVnaW9uPC9oMz4KKyAgICAg
ICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDog
aGlkZGVuOyBtYXgtaGVpZ2h0OiA0ODVweDsnPgorICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0
YWJsZSIgc3R5bGU9J3dpZHRoOiA5OSUnPgorICAgICAgICAgICAgICAgIDx0cj48dGg+Q291bnQ8
L3RoPjx0aD5EQVRBPC90aD48dGg+UmV2IENvdW50PC90aD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8
L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+MTwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjQwPC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MjwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjM5PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MzwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM4PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+NDwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjM3PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NTwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjM2
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NjwvdGQ+PHRkPjAuMzM1NTwvdGQ+
PHRkPjM1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NzwvdGQ+PHRkPjAuNDQw
MDwvdGQ+PHRkPjM0PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+ODwvdGQ+PHRk
PjAuNDQ1NTwvdGQ+PHRkPjMzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+OTwv
dGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjMyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MTA8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4zMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjExPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MzA8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4xMjwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjI5PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MTM8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4yODwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE0PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+
Mjc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNTwvdGQ+PHRkPjAuODgwMDwv
dGQ+PHRkPjI2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTY8L3RkPjx0ZD4w
Ljg4NTU8L3RkPjx0ZD4yNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE3PC90
ZD48dGQ+MC45OTAwPC90ZD48dGQ+MjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4xODwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjIzPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MTk8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4yMjwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjIwPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjE8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4yMTwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIwPC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjI8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4x
OTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIzPC90ZD48dGQ+MC45OTU1PC90
ZD48dGQ+MTg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNDwvdGQ+PHRkPjAu
OTkwMDwvdGQ+PHRkPjE3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjU8L3Rk
Pjx0ZD4wLjg4NTU8L3RkPjx0ZD4xNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjI2PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MTU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4yNzwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjE0PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+Mjg8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4xMzwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjI5PC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+MTI8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMDwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjEx
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzE8L3RkPjx0ZD4wLjU1NTU8L3Rk
Pjx0ZD4xMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMyPC90ZD48dGQ+MC41
NTAwPC90ZD48dGQ+OTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMzPC90ZD48
dGQ+MC40NDU1PC90ZD48dGQ+ODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM0
PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+NzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjM1PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+NjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjM2PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+NTwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjM3PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+NDwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjM4PC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+MzwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM5PC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+Mjwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQwPC90ZD48dGQ+MC4xMTAwPC90ZD48
dGQ+MTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPkVORCBFTkQgRU5EIEVORCBF
TkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVO
RDwvdGQ+PC90cj4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBl
dmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLiIpOworPC9zY3JpcHQ+
Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5n
L2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJh
bWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3MiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0
aDogNjgwcHg7Cit9CisKKy50YWJsZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7
Cit9CisKKy50YWJsZSB0aCB7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxl
ZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChv
ZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qg
b3B0aW9uOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8
L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2
ZWwoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgor
PHNjcmlwdD4KKwordmFyIGRpdlRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7
Cit2YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisK
K2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90
IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVy
ID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBh
Z2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3Np
dGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0
aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0ZXI6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKwor
ICAgIGlmIChkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBkaXZTY3JvbGxQb3NpdGlvbkFmdGVy
KQorICAgICAgICB0ZXN0RmFpbGVkKCJTY3JvbGxhYmxlIGRpdiBjb25zdW1lZCB3aGVlbCBldmVu
dHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJTY3JvbGxhYmxlIGRpdiBkaWQg
bm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9
IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5h
bHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBv
dXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpOworCisgICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQu
c2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRo
ZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBkaXZUYXJnZXQub2Zmc2V0TGVmdCArIDIw
OworICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdo
dGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1
cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVk
IHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVn
YW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGws
IDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChz
Y3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0
aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVz
c2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlu
bmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJl
ZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAg
ICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91
c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGU8YnIvPiIKKyAgICAg
ICAgICAgICsgImRvd24gcGFzdCB0aGUgZGl2Ljxici8+PGJyLz4iCisgICAgICAgICAgICArICJZ
b3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBz
dWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVz
c2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9Imhl
aWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHls
ZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJl
IGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlX3JlZ2lvbiI+CisgICAgICAgIDxoMz5TY3JvbGxhYmxlIFJlZ2lvbjwvaDM+CisgICAgICAg
IDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9J292ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhp
ZGRlbjsgbWF4LWhlaWdodDogNDg1cHg7Jz4KKyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFi
bGUiIHN0eWxlPSd3aWR0aDogOTklJz4KKyAgICAgICAgICAgICAgICA8dHI+PHRoPkNvdW50PC90
aD48dGg+REFUQTwvdGg+PHRoPlJldiBDb3VudDwvdGg+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90
ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjE8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD40MDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjI8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4zOTwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjM8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zODwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjQ8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD4zNzwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjU8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD4zNjwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjY8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0
ZD4zNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjc8L3RkPjx0ZD4wLjQ0MDA8
L3RkPjx0ZD4zNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjg8L3RkPjx0ZD4w
LjQ0NTU8L3RkPjx0ZD4zMzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjk8L3Rk
Pjx0ZD4wLjU1MDA8L3RkPjx0ZD4zMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjEwPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MzE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4xMTwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjMwPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MTI8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4yOTwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjEzPC90ZD48dGQ+MC43NzAwPC90ZD48dGQ+Mjg8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNDwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjI3
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTU8L3RkPjx0ZD4wLjg4MDA8L3Rk
Pjx0ZD4yNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE2PC90ZD48dGQ+MC44
ODU1PC90ZD48dGQ+MjU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNzwvdGQ+
PHRkPjAuOTkwMDwvdGQ+PHRkPjI0PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MTg8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4yMzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjE5PC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MjI8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4yMDwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIxPC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MjE8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMDwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIyPC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MTk8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMzwvdGQ+PHRkPjAuOTk1NTwvdGQ+
PHRkPjE4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5
MDA8L3RkPjx0ZD4xNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI1PC90ZD48
dGQ+MC44ODU1PC90ZD48dGQ+MTY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4y
NjwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjE1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+Mjc8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4xNDwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjI4PC90ZD48dGQ+MC43NzAwPC90ZD48dGQ+MTM8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4yOTwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjEyPC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzA8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4xMTwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMxPC90ZD48dGQ+MC41NTU1PC90ZD48
dGQ+MTA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMjwvdGQ+PHRkPjAuNTUw
MDwvdGQ+PHRkPjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMzwvdGQ+PHRk
PjAuNDQ1NTwvdGQ+PHRkPjg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNDwv
dGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4zNTwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4zNjwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjU8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4zNzwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjQ8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zODwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zOTwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjI8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40MDwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRk
PjE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5E
PC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8
L3RkPjwvdHI+CisgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rp
dj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZl
bnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4iKTsKKzwvc2NyaXB0Pgor
PHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFt
ZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MiBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworCitUZXN0cyB0aGF0IGlm
cmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxp
bmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0lGcmFtZSBkaXNwbGF5IGhl
aWdodCA9IDUwMAorTW91c2UgbW92ZWQgdG8gKDI4LCA1NjYpCitQYWdlIGJlZm9yZTogMCwgSUZy
YW1lIGJlZm9yZTogNDE2CitQYWdlIGFmdGVyOiAgMCwgSUZyYW1lIGFmdGVyOiA1MzEKK1BBU1Mg
UGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJv
dW5kcyA3ODUuMDAgMjMyNi4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4
IDYwMC4wMCkKKyAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMjMyNi4wMCkKKyAgICAgIChjb250ZW50
c09wYXF1ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDYwMC4w
MCkKKyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFn
ZSAwLCAwIDc4NSB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0
b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAyIHggNCkKKyAgICApCisgICkKKykKKwpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNj
cm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxp
Y2sgZG93bndhcmRzCisKK1Rlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVu
dHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gNTAwCitNb3VzZSBtb3ZlZCB0byAo
MjgsIDU2NikKK1BhZ2UgYmVmb3JlOiAwLCBJRnJhbWUgYmVmb3JlOiA0MTYKK1BhZ2UgYWZ0ZXI6
ICAwLCBJRnJhbWUgYWZ0ZXI6IDUzMQorUEFTUyBQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBl
dmVudHMuCitEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yIDAgb2YgdGhlIHdoZWVsIGV2
ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDIzNDEuMDApCisgICh2aXNp
YmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA2MDAuMDApCisgIChjb250ZW50c1NjYWxlIDEu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDIzNDEuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA2MDAuMDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAw
KQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA3ODUgeCAyMDQ4KQorICAgICAgKHRp
bGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQg
MiB4IDQpCisgICAgKQorICApCispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1o
YW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90
aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRs
ZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVy
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2
YXIgd2hlZWxDb3VudCA9IDA7CitmdW5jdGlvbiBvblNjcm9sbFdoZWVsKGV2dCkgeworICAgIHdo
ZWVsQ291bnQgPSB3aGVlbENvdW50ICsgMTsKK30KKworZnVuY3Rpb24gb25Mb2FkKCkgeworICAg
IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCBvblNjcm9sbFdoZWVsKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlw
dD4KKwordmFyIGlmcmFtZVRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2
YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisK
K2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIElGcmFtZSBzaG91bGQg
bm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRl
ciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBpRnJhbWVTY3JvbGxQb3NpdGlv
bkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7
CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUg
KyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAg
IGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgSUZy
YW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAocGFn
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAg
ICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsK
KworICAgIGRlYnVnKCJEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENv
dW50ICsgIiBvZiB0aGUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4
dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRl
cm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVS
X1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVy
ZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3Vt
ZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgdmFyIGlGcmFtZUJvZHkgPSB3aW5kb3cuZnJhbWVz
Wyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5OworICAgIGlGcmFtZUJvZHkuc2Nyb2xsVG9wID0gaUZy
YW1lQm9keS5zY3JvbGxIZWlnaHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOwor
CisgICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBpRnJhbWVCb2R5LnNjcm9sbFRvcDsK
KworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4K
KyAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICBk
ZWJ1ZygiSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFtZVRhcmdldC5jbGllbnRIZWln
aHQpOworICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wICsgaWZyYW1l
VGFyZ2V0LmNsaWVudEhlaWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFr
ZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBt
b3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Ny
b2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVv
dXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VM
b2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFy
IG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2Fn
ZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRl
clRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4i
CisgICAgICAgICAgICArICJpbnNpZGUgdGhlIElGcmFtZSwgdGhlbiB1c2UgdGhlIG1vdXNlIHdo
ZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIElGcmFtZSB0byB0aGUgYm90
dG9tIChhbmQgYmV5b25kKS48YnIvPiIKKyAgICAgICAgICAgICsgIjxici8+PGJyLz4iCisgICAg
ICAgICAgICArICJUaGUgdGVzdCBwYXNzZXMgaWYgeW91IHNjcm9sbCBmYXIgZW5vdWdoIHRvIHNl
ZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgYnV0IHRoZSBtYWluIHBhZ2UgZG9lcyBub3Qgc2Nyb2xs
LjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7Cisg
ICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAw
MHB4Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4Ij4KKyAgICAg
ICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgIDxp
ZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBn
cmVlbjsgaGVpZ2h0OiA1MDBweDsgd2lkdGg6IDUwMHB4OyIgCisgICAgIHNyYz0gImRhdGE6dGV4
dC9odG1sLAorICAgICA8ZGl2IGlkPSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxlPSdoZWlnaHQ6IDEw
MDBweDsgd2lkdGg6IDEwMDBweDsnPgorICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QPGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBz
dGlsbCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duCisg
ICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIFRoaXMg
c2hvdWxkIE5PVCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBk
b3duPGJyLz4KKyAgICAgPGJyLz4KKyAgICAgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVO
RCBFTkQgRU5EIEVORCBFTkQgRU5ECisgICAgIDwvZGl2PgorICAgICAiCisgICAgIG9ubG9hZD0i
c2V0dXBUb3BMZXZlbCgpOyIKKyAgICAgPgorICAgIDwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJh
bWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5n
IGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29l
cyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNj
cm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDExNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1X
aGVlbEV2ZW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCit2YXIgaWZyYW1lVGFy
Z2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBpRnJhbWVTY3JvbGxQb3Np
dGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JT
Y3JvbGwoKSB7CisKKyAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBh
dCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5z
Y3JvbGxUb3A7CisgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJh
bWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdl
IGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIElGcmFtZSBiZWZvcmU6
ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6
ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6ICIgKyBpRnJh
bWVTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2Ug
cmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgi
UGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlu
bmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAg
ICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNl
ZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9
IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgdmFyIGlGcmFtZUJvZHkgPSB3aW5kb3cu
ZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5OworICAgIGlGcmFtZUJvZHkuc2Nyb2xsVG9w
ID0gaUZyYW1lQm9keS5zY3JvbGxIZWlnaHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0g
MTAwOworCisgICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBpRnJhbWVCb2R5LnNjcm9s
bFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3Rh
cmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsK
KyAgICBkZWJ1ZygiSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFtZVRhcmdldC5jbGll
bnRIZWlnaHQpOworICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wICsg
aWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUg
ZW5kLgorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsg
Ly8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJN
b3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25v
bmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNr
Rm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
dHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNl
dFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1l
c3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAg
ICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAg
bWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVt
cFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVy
PGJyLz4iCisgICAgICAgICAgICArICJpbnNpZGUgdGhlIElGcmFtZSwgdGhlbiB1c2UgdGhlIG1v
dXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIElGcmFtZSB0byB0
aGUgYm90dG9tIChhbmQgYmV5b25kKS48YnIvPiIKKyAgICAgICAgICAgICsgIjxici8+PGJyLz4i
CisgICAgICAgICAgICArICJUaGUgdGVzdCBwYXNzZXMgaWYgeW91IHNjcm9sbCBmYXIgZW5vdWdo
IHRvIHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgYnV0IHRoZSBtYWluIHBhZ2UgZG9lcyBub3Qg
c2Nyb2xsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2Fn
ZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdo
dDogMjAwMHB4Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4Ij4K
KyAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2Pgor
ICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlk
IDFweCBncmVlbjsgaGVpZ2h0OiA1MDBweDsgd2lkdGg6IDUwMHB4OyIgCisgICAgIHNyYz0gImRh
dGE6dGV4dC9odG1sLAorICAgICA8ZGl2IGlkPSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxlPSdoZWln
aHQ6IDEwMDBweDsgd2lkdGg6IDEwMDBweDsnPgorICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRP
UCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QPGJyLz48YnIvPgorICAgICBUaGlzIHNo
b3VsZCBzdGlsbCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBk
b3duCisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAg
IFRoaXMgc2hvdWxkIE5PVCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNj
cm9sbCBkb3duPGJyLz4KKyAgICAgPGJyLz4KKyAgICAgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQg
RU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5ECisgICAgIDwvZGl2PgorICAgICAiCisgICAgIG9u
bG9hZD0ic2V0dXBUb3BMZXZlbCgpOyIKKyAgICAgPgorICAgIDwvaWZyYW1lPgorPC9kaXY+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBpZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Ny
b2xsaW5nIGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRy
ZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVk
LW1haW5mcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5m
cmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1l
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMxIEBACitQdXQgbW91c2Ug
aGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisKK1Rlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgY29u
c3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
TW91c2UgbW92ZWQgdG8gKDI4LCA2NikKK1BhZ2UgYmVmb3JlOiAwLCBJRnJhbWUgYmVmb3JlOiAw
CitQYWdlIGFmdGVyOiAgMjgwLCBJRnJhbWUgYWZ0ZXI6IDAKK1BBU1MgSUZyYW1lIGRpZCBub3Qg
cmVjZWl2ZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAy
MzExLjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA2MDAuMDApCisg
IChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgIChib3VuZHMgNzg1LjAwIDIzMTEuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkK
KyAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDYwMC4wMCkKKyAgICAg
IChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDc4
NSB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVmdCB0
aWxlIDAsIDAgdGlsZXMgZ3JpZCAyIHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1s
YXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxp
Y2sgZG93bndhcmRzCisKK1Rlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBl
dmVudHMgd2hlbiBzY3JvbGwKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTW91c2UgbW92ZWQg
dG8gKDI4LCA2NikKK1BhZ2UgYmVmb3JlOiAwLCBJRnJhbWUgYmVmb3JlOiAwCitQYWdlIGFmdGVy
OiAgMjgwLCBJRnJhbWUgYWZ0ZXI6IDAKK1BBU1MgSUZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVl
bCBldmVudHMuCitEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yIDQgb2YgdGhlIHdoZWVs
IGV2ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDIzMjYuMDApCisgICh2
aXNpYmxlIHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDYwMC4wMCkKKyAgKGNvbnRlbnRzU2Nh
bGUgMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5k
cyA3ODUuMDAgMjMyNi4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKHZpc2li
bGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNjAwLjAwKQorICAgICAgKGNvbnRlbnRzU2Nh
bGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNzg1IHggMjA0OCkKKyAg
ICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxl
cyBncmlkIDIgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZy
YW1lLXdpdGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJh
bWUtd2l0aC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZy
YW1lLXdpdGgtaGFuZGxlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLVdoZWVsRXZlbnQi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgordmFyIHdoZWVsQ291bnQgPSAwOworZnVuY3Rpb24gb25TY3JvbGxXaGVl
bChldnQpIHsKKyAgICB3aGVlbENvdW50ID0gd2hlZWxDb3VudCArIDE7Cit9CisKK2Z1bmN0aW9u
IG9uTG9hZCgpIHsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwg
b25TY3JvbGxXaGVlbCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25M
b2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBpZnJhbWVUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlOwordmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRp
bnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRo
ZSBJRnJhbWUgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgaUZy
YW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9s
bFBvc2l0aW9uQmVmb3JlICsgIiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBvc2l0
aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRp
b25BZnRlciArICIsIElGcmFtZSBhZnRlcjogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIp
OworCisgICAgaWYgKGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlGcmFtZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIklGcmFtZSBjb25zdW1lZCB3aGVlbCBl
dmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJJRnJhbWUgZGlkIG5vdCBy
ZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGRlYnVnKCJEb2N1bWVudCB3YXMgaW5pdGlh
bCB0YXJnZXQgZm9yICIgKyB3aGVlbENvdW50ICsgIiBvZiB0aGUgd2hlZWwgZXZlbnRzLiIpOwor
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxF
X1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAg
IH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxU
ZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3Jv
bGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIGlGcmFtZVNj
cm9sbFBvc2l0aW9uQmVmb3JlID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9k
eS5zY3JvbGxUb3A7CisKKyAgICBpZnJhbWVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGFyZ2V0Jyk7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2gg
dGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0
ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRUb3AgLSA0Mjsg
Ly8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdheSBmcm9tIHRoZSBJRnJh
bWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8v
IE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91
c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25l
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0Zv
clNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRy
dWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRU
aW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNz
YWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAg
IHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1l
c3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBS
ZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxi
ci8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNl
IHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+
IgorICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBJRnJhbWUuPGJyLz48YnIvPiIKKyAgICAg
ICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhp
cyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBl
bmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50
IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHgiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9Imhl
aWdodDogMTAwcHgiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRz
CisgICAgPC9kaXY+CisgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQiIHN0eWxl
PSJib3JkZXI6c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDUwMHB4OyB3aWR0aDogNTAwcHg7IiAK
KyAgICAgc3JjPSAiZGF0YTp0ZXh0L2h0bWwsCisgICAgIDxkaXYgaWQ9J25vdFRvQmVTY3JvbGxl
ZCcgc3R5bGU9J2hlaWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+CisgICAgIFRPUCBUT1Ag
VE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIvPjxici8+
CisgICAgIFRoaXMgc2hvdWxkIHN0aWxsIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRl
ciB5b3Ugc2Nyb2xsIGRvd24KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAg
ICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIDxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgTk9UIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFt
ZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd248YnIvPgorICAgICA8YnIvPgorICAgICBFTkQgRU5EIEVO
RCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQKKyAgICAgPC9kaXY+Cisg
ICAgICIKKyAgICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7IgorICAgICA+CisgICAgPC9pZnJh
bWU+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4g
c2Nyb2xsICIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29lcyBo
ZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2
ZW50cy1XaGVlbEV2ZW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCit2YXIgaWZy
YW1lVGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBpRnJhbWVTY3Jv
bGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hl
Y2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3Jv
bGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5k
b3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRlYnVn
KCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIElGcmFtZSBi
ZWZvcmU6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2Ug
YWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6ICIg
KyBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChpRnJhbWVTY3JvbGxQb3Np
dGlvbkJlZm9yZSAhPSBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFp
bGVkKCJJRnJhbWUgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAg
dGVzdFBhc3NlZCgiSUZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAg
ICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVu
dCwKKyAgICAgICAgICAgIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVD
VFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQor
CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3Qo
KSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgaUZyYW1lU2Nyb2xs
UG9zaXRpb25CZWZvcmUgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNj
cm9sbFRvcDsKKworICAgIGlmcmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQnKTsKKworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUg
I3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAy
MDsKKyAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBT
bGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFr
ZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBt
b3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Ny
b2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVv
dXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VM
b2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFy
IG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2Fn
ZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRl
clRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4i
CisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhl
IG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCisg
ICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIElGcmFtZS48YnIvPjxici8+IgorICAgICAgICAg
ICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRl
c3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENo
aWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0
eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0
OiAxMDBweCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAg
ICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdldCIgc3R5bGU9ImJv
cmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAwcHg7IHdpZHRoOiA1MDBweDsiIAorICAg
ICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRpdiBpZD0nbm90VG9CZVNjcm9sbGVkJyBz
dHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7Jz4KKyAgICAgVE9QIFRPUCBUT1Ag
VE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUDxici8+PGJyLz4KKyAg
ICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlv
dSBzY3JvbGwgZG93bgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIDxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPgorICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFm
dGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgIDxici8+CisgICAgIEVORCBFTkQgRU5EIEVO
RCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAorICAgICA8L2Rpdj4KKyAgICAg
IgorICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiCisgICAgID4KKyAgICA8L2lmcmFtZT4K
KzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3Jv
bGwgIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8
L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGlj
ayBkb3dud2FyZHMKK1Njcm9sbGFibGUgU2VsZWN0CisKKworVGVzdHMgdGhhdCBhIHNlbGVjdCBk
b2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFp
biBmcmFtZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTW91c2UgbW92ZWQgdG8gKDMwLCAx
MjcpCitQYWdlIGJlZm9yZTogMCwgc2VsZWN0IGJlZm9yZTogMAorUGFnZSBhZnRlcjogIDI4MCwg
c2VsZWN0IGFmdGVyOiAwCitQQVNTIFNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRz
LgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyAyMDA4LjAwIDIzMTEuMDApCisgICh2aXNpYmxl
IHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgKGNvbnRlbnRzU2NhbGUgMS4w
MCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyAyMDA4
LjAwIDIzMTEuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgICAgIChjb250ZW50c1NjYWxlIDEu
MDApCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDIwMDggeCAyMDQ4KQorICAgICAg
KHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdy
aWQgNCB4IDQpCisgICAgKQorICApCispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUt
d2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFp
bmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxh
dGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzNCBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Ny
b2xsYWJsZSBTZWxlY3QKKworCitUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3
aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitNb3VzZSBtb3ZlZCB0byAoMzAsIDEyNykKK1BhZ2UgYmVmb3Jl
OiAwLCBzZWxlY3QgYmVmb3JlOiAwCitQYWdlIGFmdGVyOiAgMjgwLCBzZWxlY3QgYWZ0ZXI6IDAK
K1BBU1MgU2VsZWN0IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCitEb2N1bWVudCB3YXMg
aW5pdGlhbCB0YXJnZXQgZm9yIDQgb2YgdGhlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVy
CisgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4w
MCA3ODUuMDAgeCA1ODUuMDApCisgIChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAx
CisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAg
ICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3
ODUuMDAgeCA1ODUuMDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQorICAgICAgKHRpbGUg
Y2FjaGUgY292ZXJhZ2UgMCwgMCAyMDA4IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHgg
NTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDQgeCA0KQorICAgICkK
KyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAgIHdpZHRoOiA2ODBw
eDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRpbmc6IDJweDsKK30KKwor
LnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAg
ICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgewor
ICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246
bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+Cit2YXIgd2hlZWxDb3VudCA9IDA7CitmdW5jdGlvbiBvblNjcm9sbFdoZWVs
KGV2dCkgeworICAgIHdoZWVsQ291bnQgPSB3aGVlbENvdW50ICsgMTsKK30KKworZnVuY3Rpb24g
b25Mb2FkKCkgeworICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCBv
blNjcm9sbFdoZWVsKTsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBzZWxlY3RUYXJn
ZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIHNlbGVjdFNjcm9sbFBvc2l0
aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNj
cm9sbCgpIHsKKworICAgIC8vIFRoZSBzZWxlY3Qgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0
IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNj
cm9sbFRvcDsKKyAgICB2YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdl
dC5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgKyAiLCBzZWxlY3QgYmVmb3JlOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25C
ZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFm
dGVyICsgIiwgc2VsZWN0IGFmdGVyOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisK
KyAgICBpZiAoc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gc2VsZWN0U2Nyb2xsUG9zaXRp
b25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiU2VsZWN0IGNvbnN1bWVkIHdoZWVsIGV2ZW50
cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlNlbGVjdCBkaWQgbm90IHJlY2Vp
dmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgZGVidWcoIkRvY3VtZW50IHdhcyBpbml0aWFsIHRh
cmdldCBmb3IgIiArIHdoZWVsQ291bnQgKyAiIG9mIHRoZSB3aGVlbCBldmVudHMuIik7CisKKyAg
ICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVu
dCwKKyAgICAgICAgICAgIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVD
VFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQor
CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3Qo
KSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICBzZWxlY3RTY3Jv
bGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3Jv
bGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0
UG9zWCA9IHNlbGVjdFRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9
IHNlbGVjdFRhcmdldC5vZmZzZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3
aGVlbCBzY3JvbGwgYXdheSBmcm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRz
aWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1gg
KyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdi
ZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywg
dHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rp
b24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMg
dGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0
IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhl
IHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1m
aW5nZXIgc3dpcGUgdG8gc2Nyb2xsIGRvd248YnIvPiIKKyAgICAgICAgICAgICsgInBhc3QgdGhl
IHNlbGVjdFRhcmdldC48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qg
c2VlIHRoZSAnY29udGVudDIxJyBsYWJlbCBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+
IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0K
K30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsg
d2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAw
cHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93
bndhcmRzCisgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9u
Ij4KKyAgICAgICAgICAgIDxoMz5TY3JvbGxhYmxlIFNlbGVjdDwvaDM+CisgICAgICAgICAgICA8
c2VsZWN0IGlkPSJ0YXJnZXQiIGNsYXNzPSJzY3JvbGxhYmxlX3NlbGVjdCIgc2l6ZT0iOCI+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQzPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50NDwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDU8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQ2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50Nzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDg8L29wdGlvbj4K
KyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ5PC9vcHRpb24+CisgICAgICAgICAgICAg
ICAgPG9wdGlvbj5jb250ZW50MTA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNv
bnRlbnQxMTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEyPC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTM8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDE1PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTY8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNzwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE4PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MTk8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQyMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDIxPC9vcHRpb24+
CisgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwg
aXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLiIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMi
PkxheWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLW1haW5mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWlu
ZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
dGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7
Cit9CisKKy50YWJsZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50
YWJsZSB0aCB7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAg
Zm9udC13ZWlnaHQ6IHN0cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAg
ICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50
aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4K
KwordmFyIHNlbGVjdFRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIg
c2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1
bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIHNlbGVjdCBzaG91bGQgbm90
IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFm
dGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTog
IiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBzZWxl
Y3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFn
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBzZWxlY3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3JvbGxQ
b3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBz
ZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJTZWxlY3QgY29u
c3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiU2Vs
ZWN0IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5u
ZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAgICAgICAg
IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMu
TEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2Vl
IHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0g
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9y
ZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2Ug
dW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IHNlbGVjdFRh
cmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IHNlbGVjdFRhcmdldC5v
ZmZzZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdh
eSBmcm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gs
IHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUK
KyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQ
b3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0
VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZl
bCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFy
ZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIg
cnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUg
bW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFn
ZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8g
c2Nyb2xsIGRvd248YnIvPiIKKyAgICAgICAgICAgICsgInBhc3QgdGhlIHNlbGVjdFRhcmdldC48
YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSAnY29udGVu
dDIxJyBsYWJlbCBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVz
c2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+
Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsi
PgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBw
eDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAgICAgICAg
IDxoMz5TY3JvbGxhYmxlIFNlbGVjdDwvaDM+CisgICAgICAgICAgICA8c2VsZWN0IGlkPSJ0YXJn
ZXQiIGNsYXNzPSJzY3JvbGxhYmxlX3NlbGVjdCIgc2l6ZT0iOCI+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQzPC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50NDwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQ2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Nzwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDg8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQ5PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50MTA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMTwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEyPC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50MTM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQxNDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE1PC9v
cHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTY8L29wdGlvbj4KKyAgICAg
ICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxv
cHRpb24+Y29udGVudDE4PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50
MTk8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyMDwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDIxPC9vcHRpb24+CisgICAgICAgICAgICA8
L3NlbGVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2VsZWN0
IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hlZCB0byBt
YWluIGZyYW1lLiIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29l
cyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVj
dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sg
ZG93bndhcmRzCitTY3JvbGxhYmxlIFNlbGVjdAorCisKK1Rlc3RzIHRoYXQgYSBzZWxlY3QgZG9l
c24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJv
dHRvbQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitkaXYgZGlzcGxheSBoZWlnaHQgPSAxMTEK
K01vdXNlIG1vdmVkIHRvICgzMCwgMjM4KQorUGFnZSBiZWZvcmU6IDAsIHNlbGVjdCBiZWZvcmU6
IDcwCitQYWdlIGFmdGVyOiAgMCwgc2VsZWN0IGFmdGVyOiAxODIKK1BBU1MgUGFnZSBkaWQgbm90
IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyAyMDA4LjAw
IDIzMjYuMDApCisgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCisg
IChjb250ZW50c1NjYWxlIDEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEp
CisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAgICAg
KGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgMjAw
OCB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVmdCB0
aWxlIDAsIDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1s
YXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndh
cmRzCitTY3JvbGxhYmxlIFNlbGVjdAorCisKK1Rlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBw
YXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitkaXYgZGlzcGxheSBoZWlnaHQgPSAxMTEKK01vdXNl
IG1vdmVkIHRvICgzMCwgMjM4KQorUGFnZSBiZWZvcmU6IDAsIHNlbGVjdCBiZWZvcmU6IDcwCitQ
YWdlIGFmdGVyOiAgMCwgc2VsZWN0IGFmdGVyOiAxODIKK1BBU1MgUGFnZSBkaWQgbm90IHJlY2Vp
dmUgd2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciA0IG9mIHRo
ZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDguMDAgMjM0MS4w
MCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgKGNvbnRl
bnRzU2NhbGUgMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
KGJvdW5kcyAyMDA4LjAwIDIzNDEuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAg
ICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCisgICAgICAoY29udGVu
dHNTY2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAyMDA4IHggMjA0
OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwg
MCB0aWxlcyBncmlkIDQgeCA0KQorICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQt
c2VsZWN0LXdpdGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxl
Y3Qtd2l0aC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0
LXdpdGgtaGFuZGxlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTU5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24g
eworICAgIHdpZHRoOiA2ODBweDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBh
ZGRpbmc6IDJweDsKK30KKworLnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4
dC1hbGlnbjogbGVmdDsKKyAgICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6
bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxh
YmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2Yz
ZjM7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgd2hlZWxDb3VudCA9IDA7CitmdW5j
dGlvbiBvblNjcm9sbFdoZWVsKGV2dCkgeworICAgIHdoZWVsQ291bnQgPSB3aGVlbENvdW50ICsg
MTsKK30KKworZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNld2hlZWwiLCBvblNjcm9sbFdoZWVsKTsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+
CisKK3ZhciBzZWxlY3RUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFy
IHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitm
dW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBwYWdlIHNob3VsZCBub3Qg
aGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0g
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAi
ICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9yZTogIiArIHNlbGVj
dFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNlbGVjdFNjcm9sbFBv
c2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3
aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBkZWJ1ZygiRG9jdW1lbnQgd2FzIGlu
aXRpYWwgdGFyZ2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhlIHdoZWVsIGV2ZW50cy4i
KTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0
KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklT
SUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsK
KyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Ny
b2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIHNl
bGVjdFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICBzZWxl
Y3RUYXJnZXQuc2Nyb2xsVG9wID0gc2VsZWN0VGFyZ2V0LnNjcm9sbEhlaWdodCAtIHNlbGVjdFRh
cmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisKKyAgICBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9y
ZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2Ug
dW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IHNlbGVjdFRh
cmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgZGVidWcoImRpdiBkaXNwbGF5IGhlaWdodCA9ICIg
KyBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gc2VsZWN0
VGFyZ2V0Lm9mZnNldFRvcCArIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25l
IHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFy
dFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBp
RnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsg
c3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Cisg
ICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBU
b3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBi
ZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFj
ZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBzZWxl
Y3QgYm94LCBhbmQgc2Nyb2xsIG5lYXIgKGJ1dCBub3QgQVQpIHRoZSBib3R0b20gb2YgdGhlIHJh
bmdlLiBVc2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlcjxici8+IgorICAgICAgICAg
ICAgKyAic3dpcGUgdG8gc2Nyb2xsIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIHNlbGVjdCBvcHRp
b25zLjxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHBh
Z2UgcG9zaXRpb24gY2hhbmdlIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAg
ICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8
L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDog
MjAwMHB4OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lk
dGg6IDUwMHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMK
KyAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAg
ICAgICAgICAgPGgzPlNjcm9sbGFibGUgU2VsZWN0PC9oMz4KKyAgICAgICAgICAgIDxzZWxlY3Qg
aWQ9InRhcmdldCIgY2xhc3M9InNjcm9sbGFibGVfc2VsZWN0IiBzaXplPSI4Ij4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50Mjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDM8L29w
dGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ0PC9vcHRpb24+CisgICAgICAg
ICAgICAgICAgPG9wdGlvbj5jb250ZW50NTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDY8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ3PC9v
cHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50ODwvb3B0aW9uPgorICAgICAg
ICAgICAgICAgIDxvcHRpb24+Y29udGVudDk8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0
aW9uPmNvbnRlbnQxMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEx
PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTI8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMzwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDE0PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50MTU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNjwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE3PC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50MTg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQxOTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDIwPC9v
cHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MjE8L29wdGlvbj4KKyAgICAg
ICAgICAgIDwvc2VsZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
YSBzZWxlY3QgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Ny
b2xsaW5nIGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRy
ZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVk
LXNlbGVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
dGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
LnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0ZCwg
LnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAgaGVp
Z2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0cm9u
ZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNm
M2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKKyAg
ICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rp
b24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIHNlbGVjdFRhcmdl
dDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgc2VsZWN0U2Nyb2xsUG9zaXRp
b25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Ny
b2xsKCkgeworCisgICAgLy8gVGhlIHBhZ2Ugc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFs
bC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9s
bFRvcDsKKyAgICB2YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5z
Y3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmUgKyAiLCBzZWxlY3QgYmVmb3JlOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZv
cmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVy
ICsgIiwgc2VsZWN0IGFmdGVyOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAg
ICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVy
KQorICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4iKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVl
QXNUZXh0KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVE
RVNfVklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FD
SEVTKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rp
b24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAg
ICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKwor
ICAgIHNlbGVjdFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAg
ICBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wID0gc2VsZWN0VGFyZ2V0LnNjcm9sbEhlaWdodCAtIHNl
bGVjdFRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisKKyAgICBzZWxlY3RTY3JvbGxQb3NpdGlv
bkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNz
b3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IHNl
bGVjdFRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgZGVidWcoImRpdiBkaXNwbGF5IGhlaWdo
dCA9ICIgKyBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0g
c2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCArIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQgLSA0Mjsg
Ly8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRl
IHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAi
LCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdp
bicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1
ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24g
c2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAg
IH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVz
dCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0
LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiaW5zaWRlIHRo
ZSBzZWxlY3QgYm94LCBhbmQgc2Nyb2xsIG5lYXIgKGJ1dCBub3QgQVQpIHRoZSBib3R0b20gb2Yg
dGhlIHJhbmdlLiBVc2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlcjxici8+IgorICAg
ICAgICAgICAgKyAic3dpcGUgdG8gc2Nyb2xsIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIHNlbGVj
dCBvcHRpb25zLjxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUg
dGhlIHBhZ2UgcG9zaXRpb24gY2hhbmdlIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4i
OworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQor
fQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3
aWR0aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBw
eDsgd2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3du
d2FyZHMKKyAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24i
PgorICAgICAgICAgICAgPGgzPlNjcm9sbGFibGUgU2VsZWN0PC9oMz4KKyAgICAgICAgICAgIDxz
ZWxlY3QgaWQ9InRhcmdldCIgY2xhc3M9InNjcm9sbGFibGVfc2VsZWN0IiBzaXplPSI4Ij4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxPC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50Mjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ0PC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50NTwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDY8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQ3PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50ODwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDk8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQxMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29u
dGVudDExPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTI8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMzwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDE0PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50MTU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNjwv
b3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE3PC9vcHRpb24+CisgICAg
ICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8
b3B0aW9uPmNvbnRlbnQxOTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDIwPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MjE8L29wdGlvbj4K
KyAgICAgICAgICAgIDwvc2VsZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgYSBzZWxlY3QgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdo
ZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxh
eWVyIHRyZWUgZ29lcyBoZXJlPC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2
LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBA
CitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFJlZ2lvbgor
CitDb3VudAlEQVRBCVJldiBDb3VudAorVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBU
T1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AKKzEJMC4xMTAwCTQwCisyCTAuMTE1NQkzOQorMwkw
LjIyMDAJMzgKKzQJMC4yMjU1CTM3Cis1CTAuMzMwMAkzNgorNgkwLjMzNTUJMzUKKzcJMC40NDAw
CTM0Cis4CTAuNDQ1NQkzMworOQkwLjU1MDAJMzIKKzEwCTAuNTU1NQkzMQorMTEJMC42NjAwCTMw
CisxMgkwLjY2NTUJMjkKKzEzCTAuNzcwMAkyOAorMTQJMC43NzU1CTI3CisxNQkwLjg4MDAJMjYK
KzE2CTAuODg1NQkyNQorMTcJMC45OTAwCTI0CisxOAkwLjk5NTUJMjMKKzE5CTAuOTk5OQkyMgor
MjAJMS4wMDAwCTIxCisyMQkxLjAwMDAJMjAKKzIyCTAuOTk5OQkxOQorMjMJMC45OTU1CTE4Cisy
NAkwLjk5MDAJMTcKKzI1CTAuODg1NQkxNgorMjYJMC44ODAwCTE1CisyNwkwLjc3NTUJMTQKKzI4
CTAuNzcwMAkxMworMjkJMC42NjU1CTEyCiszMAkwLjY2MDAJMTEKKzMxCTAuNTU1NQkxMAorMzIJ
MC41NTAwCTkKKzMzCTAuNDQ1NQk4CiszNAkwLjQ0MDAJNworMzUJMC4zMzU1CTYKKzM2CTAuMzMw
MAk1CiszNwkwLjIyNTUJNAorMzgJMC4yMjAwCTMKKzM5CTAuMTE1NQkyCis0MAkwLjExMDAJMQor
RU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBF
TkQKK1Rlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRz
IHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK2RpdiBkaXNwbGF5IGhlaWdodCA9IDQ4NQorTW91c2UgbW92ZWQgdG8gKDI4LCA2
MTApCitQYWdlIGJlZm9yZTogMCwgZGl2IGJlZm9yZTogNDUxCitQYWdlIGFmdGVyOiAgMCwgZGl2
IGFmdGVyOiA0NTEKK1BBU1MgUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1s
YXRjaGVkLWRpdi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRj
aGVkLWRpdi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTY4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAg
IHdpZHRoOiA2ODBweDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRpbmc6
IDJweDsKK30KKworLnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGln
bjogbGVmdDsKKyAgICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRoLWNo
aWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3Nl
bGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9
CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgc2V0
dXBUb3BMZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9h
ZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgZGl2VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlv
bkJlZm9yZTsKK3ZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50
ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgZGl2IHNo
b3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlv
bkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIGRpdlNjcm9sbFBvc2l0
aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3Jl
OiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgZGl2IGJlZm9yZTogIiArIGRpdlNj
cm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Ny
b2xsUG9zaXRpb25BZnRlciArICIsIGRpdiBhZnRlcjogIiArIGRpdlNjcm9sbFBvc2l0aW9uQWZ0
ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9z
aXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVu
dHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2
ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwor
ZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZl
czoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRv
cDsKKworICAgIGRpdlRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsK
KyAgICBkaXZUYXJnZXQuc2Nyb2xsVG9wID0gZGl2VGFyZ2V0LnNjcm9sbEhlaWdodCAtIGRpdlRh
cmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisKKyAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSA9
IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwg
d2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGRpdlRhcmdldC5vZmZz
ZXRMZWZ0ICsgMjA7CisgICAgZGVidWcoImRpdiBkaXNwbGF5IGhlaWdodCA9ICIgKyBkaXZUYXJn
ZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gZGl2VGFyZ2V0Lm9mZnNldFRv
cCArIGRpdlRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3Jl
IGVuZC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7
IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1Zygi
TW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdu
b25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
LCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVj
a0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBz
ZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBt
ZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAg
ICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAg
IG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1
bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRl
cjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4g
dXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxi
ci8+IgorICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBkaXYuPGJyLz48YnIvPiIKKyAgICAg
ICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhp
cyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBl
bmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50
IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJz
b3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0
IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAgICAgPGgzPlNjcm9sbGFibGUgUmVnaW9uPC9o
Mz4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3Zl
cmZsb3cteDogaGlkZGVuOyBtYXgtaGVpZ2h0OiA0ODVweDsnPgorICAgICAgICAgICAgPHRhYmxl
IGNsYXNzPSJ0YWJsZSIgc3R5bGU9J3dpZHRoOiA5OSUnPgorICAgICAgICAgICAgICAgIDx0cj48
dGg+Q291bnQ8L3RoPjx0aD5EQVRBPC90aD48dGg+UmV2IENvdW50PC90aD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9Q
IFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MTwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjQwPC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MjwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjM5PC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM4PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NDwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRk
PjM3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NTwvdGQ+PHRkPjAuMzMwMDwv
dGQ+PHRkPjM2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NjwvdGQ+PHRkPjAu
MzM1NTwvdGQ+PHRkPjM1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NzwvdGQ+
PHRkPjAuNDQwMDwvdGQ+PHRkPjM0PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
ODwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjMzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+OTwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjMyPC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MTA8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4zMTwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjExPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MzA8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMjwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjI5PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTM8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0
ZD4yODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE0PC90ZD48dGQ+MC43NzU1
PC90ZD48dGQ+Mjc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNTwvdGQ+PHRk
PjAuODgwMDwvdGQ+PHRkPjI2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTY8
L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4yNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjE3PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4xODwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjIzPC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MTk8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4yMjwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjIwPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjE8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMTwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRk
PjIwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjI8L3RkPjx0ZD4wLjk5OTk8
L3RkPjx0ZD4xOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIzPC90ZD48dGQ+
MC45OTU1PC90ZD48dGQ+MTg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNDwv
dGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjE3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MjU8L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4xNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjI2PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MTU8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4yNzwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjE0PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjg8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4xMzwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI5PC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+
MTI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMDwvdGQ+PHRkPjAuNjYwMDwv
dGQ+PHRkPjExPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzE8L3RkPjx0ZD4w
LjU1NTU8L3RkPjx0ZD4xMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMyPC90
ZD48dGQ+MC41NTAwPC90ZD48dGQ+OTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjMzPC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+ODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjM0PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+NzwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjM1PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+NjwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjM2PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+NTwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjM3PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+NDwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM4PC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+
MzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM5PC90ZD48dGQ+MC4xMTU1PC90
ZD48dGQ+MjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQwPC90ZD48dGQ+MC4x
MTAwPC90ZD48dGQ+MTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPkVORCBFTkQg
RU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBF
TkQgRU5EIEVORDwvdGQ+PC90cj4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNuJ3QgcGFzcyB3
aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9s
bGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2
LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDU5IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFJl
Z2lvbgorCitDb3VudAlEQVRBCVJldiBDb3VudAorVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9Q
IFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AKKzEJMC4xMTAwCTQwCisyCTAuMTE1NQkz
OQorMwkwLjIyMDAJMzgKKzQJMC4yMjU1CTM3Cis1CTAuMzMwMAkzNgorNgkwLjMzNTUJMzUKKzcJ
MC40NDAwCTM0Cis4CTAuNDQ1NQkzMworOQkwLjU1MDAJMzIKKzEwCTAuNTU1NQkzMQorMTEJMC42
NjAwCTMwCisxMgkwLjY2NTUJMjkKKzEzCTAuNzcwMAkyOAorMTQJMC43NzU1CTI3CisxNQkwLjg4
MDAJMjYKKzE2CTAuODg1NQkyNQorMTcJMC45OTAwCTI0CisxOAkwLjk5NTUJMjMKKzE5CTAuOTk5
OQkyMgorMjAJMS4wMDAwCTIxCisyMQkxLjAwMDAJMjAKKzIyCTAuOTk5OQkxOQorMjMJMC45OTU1
CTE4CisyNAkwLjk5MDAJMTcKKzI1CTAuODg1NQkxNgorMjYJMC44ODAwCTE1CisyNwkwLjc3NTUJ
MTQKKzI4CTAuNzcwMAkxMworMjkJMC42NjU1CTEyCiszMAkwLjY2MDAJMTEKKzMxCTAuNTU1NQkx
MAorMzIJMC41NTAwCTkKKzMzCTAuNDQ1NQk4CiszNAkwLjQ0MDAJNworMzUJMC4zMzU1CTYKKzM2
CTAuMzMwMAk1CiszNwkwLjIyNTUJNAorMzgJMC4yMjAwCTMKKzM5CTAuMTE1NQkyCis0MAkwLjEx
MDAJMQorRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5E
IEVORCBFTkQKK1Rlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IGNvbnN1bWUgd2hl
ZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorTW91c2UgbW92ZWQgdG8gKDI4LCAxMjUpCitQYWdlIGJlZm9yZTog
MCwgZGl2IGJlZm9yZTogMAorUGFnZSBhZnRlcjogIDMyMCwgZGl2IGFmdGVyOiAwCitQQVNTIFNj
cm9sbGFibGUgZGl2IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFp
bmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
c2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxh
dGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNjYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lv
biB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAg
cGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0
ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0
cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9s
bGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2Yz
ZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG9uTG9hZCgpIHsK
KyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBkaXZUYXJnZXQ7Cit2YXIgcGFnZVNjcm9s
bFBvc2l0aW9uQmVmb3JlOwordmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRp
bnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRo
ZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9s
bFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgZGl2U2Ny
b2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFn
ZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBkaXYgYmVmb3JlOiAi
ICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiAr
IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsgZGl2U2Nyb2xsUG9z
aXRpb25BZnRlcik7CisKKyAgICBpZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gZGl2U2Ny
b2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiU2Nyb2xsYWJsZSBkaXYgY29u
c3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiU2Ny
b2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8v
IFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9y
ZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUg
PSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGls
IHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBkaXZUYXJnZXQub2Zm
c2V0TGVmdCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9wIC0g
NDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUg
SUZyYW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kp
OyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWco
Ik1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAn
bm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hl
Y2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAg
c2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIg
bWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAg
ICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAg
ICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBE
dW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50
ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVu
IHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGU8
YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgZGl2Ljxici8+PGJyLz4iCisgICAg
ICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGlmIHRo
aXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBw
ZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVu
dCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0i
c291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1
dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAgICAgIDxoMz5TY3JvbGxhYmxlIFJlZ2lvbjwv
aDM+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9J292ZXJmbG93LXk6IGF1dG87IG92
ZXJmbG93LXg6IGhpZGRlbjsgbWF4LWhlaWdodDogNDg1cHg7Jz4KKyAgICAgICAgICAgIDx0YWJs
ZSBjbGFzcz0idGFibGUiIHN0eWxlPSd3aWR0aDogOTklJz4KKyAgICAgICAgICAgICAgICA8dHI+
PHRoPkNvdW50PC90aD48dGg+REFUQTwvdGg+PHRoPlJldiBDb3VudDwvdGg+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRP
UCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjE8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD40MDwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjI8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4zOTwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zODwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQ8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0
ZD4zNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjU8L3RkPjx0ZD4wLjMzMDA8
L3RkPjx0ZD4zNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjY8L3RkPjx0ZD4w
LjMzNTU8L3RkPjx0ZD4zNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjc8L3Rk
Pjx0ZD4wLjQ0MDA8L3RkPjx0ZD4zNDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
Pjg8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD4zMzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjk8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD4zMjwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjEwPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MzE8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4xMTwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjMwPC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTI8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4yOTwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEzPC90ZD48dGQ+MC43NzAwPC90ZD48
dGQ+Mjg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNDwvdGQ+PHRkPjAuNzc1
NTwvdGQ+PHRkPjI3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTU8L3RkPjx0
ZD4wLjg4MDA8L3RkPjx0ZD4yNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE2
PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MjU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD4xNzwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjI0PC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MTg8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4yMzwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjE5PC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MjI8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMDwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIxPC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjE8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0
ZD4yMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIyPC90ZD48dGQ+MC45OTk5
PC90ZD48dGQ+MTk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMzwvdGQ+PHRk
PjAuOTk1NTwvdGQ+PHRkPjE4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjQ8
L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4xNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjI1PC90ZD48dGQ+MC44ODU1PC90ZD48dGQ+MTY8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4yNjwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjE1PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+Mjc8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4xNDwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjI4PC90ZD48dGQ+MC43NzAwPC90ZD48dGQ+MTM8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yOTwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRk
PjEyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzA8L3RkPjx0ZD4wLjY2MDA8
L3RkPjx0ZD4xMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMxPC90ZD48dGQ+
MC41NTU1PC90ZD48dGQ+MTA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMjwv
dGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4zMzwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4zNDwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjc8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4zNTwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjY8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zNjwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjU8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNzwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjQ8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zODwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRk
PjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zOTwvdGQ+PHRkPjAuMTE1NTwv
dGQ+PHRkPjI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40MDwvdGQ+PHRkPjAu
MTEwMDwvdGQ+PHRkPjE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5FTkQgRU5E
IEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQg
RU5EIEVORCBFTkQ8L3RkPjwvdHI+CisgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IGNvbnN1
bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4iKTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Nj
cm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwt
aWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE2IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisKK1Rlc3RzIHRo
YXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNj
cm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorSUZyYW1lIGRpc3Bs
YXkgaGVpZ2h0ID0gNTAwCitNb3VzZSBtb3ZlZCB0byAoMjgsIDU2NikKK1BhZ2UgYmVmb3JlOiAw
LCBJRnJhbWUgYmVmb3JlOiA0MTYKK1BhZ2UgYWZ0ZXI6ICAwLCBJRnJhbWUgYWZ0ZXI6IDQxNgor
UEFTUyBQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZy
YW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Ny
b2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZyYW1lLWxh
dGNoZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDov
L3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKwordmFyIGlmcmFtZVRhcmdldDsKK3ZhciBw
YWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7
Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgewor
CisgICAgLy8gVGhlIElGcmFtZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAg
IHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwor
ICAgIHZhciBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0
J10uZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIg
KyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1l
U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VT
Y3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9z
aXRpb25BZnRlcik7CisKKyAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VT
Y3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdo
ZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZy
YW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHku
c2Nyb2xsVG9wOworCisgICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RhcmdldCcpOworCisgICAgdmFyIGlGcmFtZUJvZHkgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQn
XS5kb2N1bWVudC5ib2R5OworICAgIGlGcmFtZUJvZHkuc2Nyb2xsVG9wID0gaUZyYW1lQm9keS5z
Y3JvbGxIZWlnaHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisgICAgaUZy
YW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBpRnJhbWVCb2R5LnNjcm9sbFRvcDsKKworICAgIC8v
IFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIg
c3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICBkZWJ1ZygiSUZy
YW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQpOworICAg
IHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wICsgaWZyYW1lVGFyZ2V0LmNs
aWVudEhlaWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdl
IGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAo
IiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywg
J25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAn
bm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDAp
OworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xs
VGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhU
TUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRv
IG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAg
ICAgICArICJpbnNpZGUgdGhlIElGcmFtZSwgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEg
dHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIElGcmFtZSB0byB0aGUgYm90dG9tIChhbmQg
YmV5b25kKS48YnIvPiIKKyAgICAgICAgICAgICsgIjxici8+PGJyLz4iCisgICAgICAgICAgICAr
ICJUaGUgdGVzdCBwYXNzZXMgaWYgeW91IHNjcm9sbCBmYXIgZW5vdWdoIHRvIHNlZSB0aGUgcm93
IG9mIEVORCBsYWJlbHMgYnV0IHRoZSBtYWluIHBhZ2UgZG9lcyBub3Qgc2Nyb2xsLjwvcD4iOwor
ICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4Ij4KKyAg
ICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4Ij4KKyAgICAgICAgUHV0IG1v
dXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgIDxpZnJhbWUgaWQ9
InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBncmVlbjsgaGVp
Z2h0OiA1MDBweDsgd2lkdGg6IDUwMHB4OyIgCisgICAgIHNyYz0gImRhdGE6dGV4dC9odG1sLAor
ICAgICA8ZGl2IGlkPSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxlPSdoZWlnaHQ6IDEwMDBweDsgd2lk
dGg6IDEwMDBweDsnPgorICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QIFRPUCBUT1AgVE9QPGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2
aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duCisgICAgIDxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
PgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIFRoaXMgc2hvdWxkIE5P
VCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duPGJyLz4K
KyAgICAgPGJyLz4KKyAgICAgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5E
IEVORCBFTkQgRU5ECisgICAgIDwvZGl2PgorICAgICAiCisgICAgIG9ubG9hZD0ic2V0dXBUb3BM
ZXZlbCgpOyIKKyAgICAgPgorICAgIDwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24n
dCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRv
bSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5m
cmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xs
aW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2Fy
ZHMKKworVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVu
IHNjcm9sbAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitNb3VzZSBtb3ZlZCB0byAoMjgsIDY2
KQorUGFnZSBiZWZvcmU6IDAsIElGcmFtZSBiZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6ICAzMjAsIElG
cmFtZSBhZnRlcjogMAorUEFTUyBJRnJhbWUgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4K
KwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Ny
b2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVu
dHMvI2V2ZW50cy1XaGVlbEV2ZW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
Cit2YXIgaWZyYW1lVGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBp
RnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVu
Y3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBub3Qg
aGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0g
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKwor
ICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIs
IElGcmFtZSBiZWZvcmU6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVi
dWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUg
YWZ0ZXI6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChpRnJhbWVT
Y3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAg
ICB0ZXN0RmFpbGVkKCJJRnJhbWUgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdFBhc3NlZCgiSUZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMu
Iik7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xs
VGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICBpRnJhbWVT
Y3JvbGxQb3NpdGlvbkJlZm9yZSA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJv
ZHkuc2Nyb2xsVG9wOworCisgICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNo
IHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVUYXJnZXQub2Zmc2V0TGVm
dCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wIC0gNDI7
IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZy
YW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAv
LyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1v
dXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9u
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tG
b3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0
VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVz
c2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAg
ICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBt
ZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1w
UmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8
YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVz
ZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGU8YnIv
PiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgSUZyYW1lLjxici8+PGJyLz4iCisgICAg
ICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGlmIHRo
aXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBw
ZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVu
dCIgc3R5bGU9ImhlaWdodDogMjAwMHB4Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJo
ZWlnaHQ6IDEwMHB4Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJk
cworICAgIDwvZGl2PgorICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHls
ZT0iYm9yZGVyOnNvbGlkIDFweCBncmVlbjsgaGVpZ2h0OiA1MDBweDsgd2lkdGg6IDUwMHB4OyIg
CisgICAgIHNyYz0gImRhdGE6dGV4dC9odG1sLAorICAgICA8ZGl2IGlkPSdub3RUb0JlU2Nyb2xs
ZWQnIHN0eWxlPSdoZWlnaHQ6IDEwMDBweDsgd2lkdGg6IDEwMDBweDsnPgorICAgICBUT1AgVE9Q
IFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QPGJyLz48YnIv
PgorICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0
ZXIgeW91IHNjcm9sbCBkb3duCisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAg
ICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICA8YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+CisgICAgIFRoaXMgc2hvdWxkIE5PVCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJh
bWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duPGJyLz4KKyAgICAgPGJyLz4KKyAgICAgRU5EIEVORCBF
TkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5ECisgICAgIDwvZGl2Pgor
ICAgICAiCisgICAgIG9ubG9hZD0ic2V0dXBUb3BMZXZlbCgpOyIKKyAgICAgPgorICAgIDwvaWZy
YW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVu
IHNjcm9sbCAiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sg
ZG93bndhcmRzCitTY3JvbGxhYmxlIFNlbGVjdAorCisKK1Rlc3RzIHRoYXQgYSBzZWxlY3QgZG9l
c24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRvIG1haW4g
ZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK01vdXNlIG1vdmVkIHRvICgzMCwgMTI3
KQorUGFnZSBiZWZvcmU6IDAsIHNlbGVjdCBiZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6ICAzMjAsIHNl
bGVjdCBhZnRlcjogMAorUEFTUyBTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4K
KwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Ny
b2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJs
ZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7Cisg
ICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6
IHN0cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5k
OiAjZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQp
IHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIHNl
bGVjdFRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgc2VsZWN0U2Ny
b2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNo
ZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIHNlbGVjdCBzaG91bGQgbm90IGhhdmUgc2Ny
b2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2Vs
ZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBzZWxlY3RTY3JvbGxQ
b3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIgKyAiLCBzZWxlY3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkFm
dGVyKTsKKworICAgIGlmIChzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBzZWxlY3RTY3Jv
bGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJTZWxlY3QgY29uc3VtZWQgd2hl
ZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiU2VsZWN0IGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElG
cmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5
LnNjcm9sbFRvcDsKKworICAgIHNlbGVjdFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0YXJnZXQnKTsKKworICAgIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlID0gc2VsZWN0VGFy
Z2V0LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFj
aCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gc2VsZWN0VGFyZ2V0Lm9mZnNldExl
ZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCAtIDQy
OyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9sbCBhd2F5IGZyb20gdGhlIElG
cmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsg
Ly8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJN
b3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25v
bmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNr
Rm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
dHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNl
dFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1l
c3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAg
ICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAg
bWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVt
cFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVy
PGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1
c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgZG93bjxi
ci8+IgorICAgICAgICAgICAgKyAicGFzdCB0aGUgc2VsZWN0VGFyZ2V0Ljxici8+PGJyLz4iCisg
ICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlICdjb250ZW50MjEnIGxhYmVsIGlm
IHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24u
YXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBh
cmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+CisgICAgPGRpdiBp
ZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+CisgICAgICAg
IFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICAgICAgPGgzPlNjcm9sbGFi
bGUgU2VsZWN0PC9oMz4KKyAgICAgICAgICAgIDxzZWxlY3QgaWQ9InRhcmdldCIgY2xhc3M9InNj
cm9sbGFibGVfc2VsZWN0IiBzaXplPSI4Ij4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQxPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Mjwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDM8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQ0PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50NTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDY8L29wdGlvbj4K
KyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ3PC9vcHRpb24+CisgICAgICAgICAgICAg
ICAgPG9wdGlvbj5jb250ZW50ODwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29u
dGVudDk8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMDwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDExPC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50MTI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQxMzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE0PC9v
cHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTU8L29wdGlvbj4KKyAgICAg
ICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxv
cHRpb24+Y29udGVudDE3PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50
MTg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxOTwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDIwPC9vcHRpb24+CisgICAgICAgICAgICAg
ICAgPG9wdGlvbj5jb250ZW50MjE8L29wdGlvbj4KKyAgICAgICAgICAgIDwvc2VsZWN0PgorICAg
ICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBjb25z
dW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuIik7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9z
Y3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxOCBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJs
ZSBTZWxlY3QKKworCitUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVu
dHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorZGl2IGRpc3BsYXkgaGVpZ2h0ID0gMTExCitNb3VzZSBtb3ZlZCB0byAoMzAs
IDIzOCkKK1BhZ2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVmb3JlOiA3MAorUGFnZSBhZnRlcjogIDAs
IHNlbGVjdCBhZnRlcjogMTgyCitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50
cy4KKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9s
bC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xs
aW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
LnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0ZCwg
LnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAgaGVp
Z2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0cm9u
ZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNm
M2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKKyAg
ICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIHNlbGVjdFRh
cmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgc2VsZWN0U2Nyb2xsUG9z
aXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9y
U2Nyb2xsKCkgeworCisgICAgLy8gVGhlIHBhZ2Ugc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0
IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNj
cm9sbFRvcDsKKyAgICB2YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdl
dC5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgKyAiLCBzZWxlY3QgYmVmb3JlOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25C
ZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFm
dGVyICsgIiwgc2VsZWN0IGFmdGVyOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisK
KyAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFm
dGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsK
KyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVs
IGV2ZW50cy4iKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlv
biBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAg
IHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisg
ICAgc2VsZWN0VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAg
IHNlbGVjdFRhcmdldC5zY3JvbGxUb3AgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gc2Vs
ZWN0VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKworICAgIHNlbGVjdFNjcm9sbFBvc2l0aW9u
QmVmb3JlID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3Nv
dXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gc2Vs
ZWN0VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICBkZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0
ID0gIiArIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQpOworICAgIHZhciBzdGFydFBvc1kgPSBz
ZWxlY3RUYXJnZXQub2Zmc2V0VG9wICsgc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCAtIDQyOyAv
LyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUg
dGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIs
ICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2lu
JywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVl
KTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBz
ZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0
IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQs
IHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJpbnNpZGUgdGhl
IHNlbGVjdCBib3gsIGFuZCBzY3JvbGwgbmVhciAoYnV0IG5vdCBBVCkgdGhlIGJvdHRvbSBvZiB0
aGUgcmFuZ2UuIFVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyPGJyLz4iCisgICAg
ICAgICAgICArICJzd2lwZSB0byBzY3JvbGwgdGhyb3VnaCB0aGUgcmVzdCBvZiB0aGUgc2VsZWN0
IG9wdGlvbnMuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0
aGUgcGFnZSBwb3NpdGlvbiBjaGFuZ2UgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7
CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9
CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7IHdp
ZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4
OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253
YXJkcworICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+
CisgICAgICAgICAgICA8aDM+U2Nyb2xsYWJsZSBTZWxlY3Q8L2gzPgorICAgICAgICAgICAgPHNl
bGVjdCBpZD0idGFyZ2V0IiBjbGFzcz0ic2Nyb2xsYWJsZV9zZWxlY3QiIHNpemU9IjgiPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8
b3B0aW9uPmNvbnRlbnQyPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50
Mzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDQ8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ1PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50Njwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ4PC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50OTwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDEwPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50MTE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMjwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEzPC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50MTQ8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQxNTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE2PC9v
cHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTc8L29wdGlvbj4KKyAgICAg
ICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxODwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxv
cHRpb24+Y29udGVudDE5PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50
MjA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyMTwvb3B0aW9uPgor
ICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBhIHNlbGVjdCBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hl
biBzY3JvbGxpbmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224152</attachid>
            <date>2014-02-13 20:09:05 -0800</date>
            <delta_ts>2014-02-14 09:31:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127606-20140213200904.patch</filename>
            <type>text/plain</type>
            <size>164012</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDE0LTAyLTEzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgorCisgICAgICAgIENyZWF0ZSBzb21lIGxhdGNoZWQgc2Nyb2xsaW5nIHRlc3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjA2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xNTkxMTM0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5tbToKKyAgICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciBpc1NlbGVjdG9yRXhj
bHVkZWRGcm9tV2ViU2NyaXB0Ol0pOiBVcGRhdGUgdG8gcmVjb2duaXplCisgICAgICAgIHRoZSBu
ZXcgIm1vdXNlU2Nyb2xsQnlYOmFuZFk6d2l0aFdoZWVsOmFuZE1vbWVudHVtUGhhc2VzOiIgc2Vs
ZWN0b3IuCisgICAgICAgICgrW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgd2ViU2NyaXB0TmFtZUZv
clNlbGVjdG9yOl0pOiBEaXR0by4KKyAgICAgICAgKC1bRXZlbnRTZW5kaW5nQ29udHJvbGxlciBt
b3VzZVNjcm9sbEJ5WDphbmRZOndpdGhXaGVlbDphbmRNb21lbnR1bVBoYXNlczpdKTogSW1wbGVt
ZW50CisgICAgICAgIHRoZSBuZXcgd2hlZWwgZXZlbnQgc2VuZGVyLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGw6IEFk
ZCBkZWNsYXJhdGlvbgorICAgICAgICBvZiBuZXcgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzIG1ldGhvZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpFdmVudFNl
bmRpbmdDb250cm9sbGVyOjptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMp
OiBBZGRlZAorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW06CisgICAgICAgIChXVFI6OkV2ZW50U2Vu
ZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyk6IEFkZCBz
dHViIGZvciBpT1MuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6IEhhbmRsZSB0aGUgbmV3CisgICAgICAgIG1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcyBtZXNzYWdlLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6IEhh
bmRsZSB0aGUKKyAgICAgICAgbmV3IG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZs
LmNwcDoKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKTogUHJvdmlkZSBzdHViIHRoYXQKKyAgICAgICAgcmVsYXlz
IHRvIHRoZSBzdGFuZGFyZCBtb3VzZSB3aGVlbCBoYW5kbGVyLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwOgorICAgICAgICAoV1RSOjpFdmVu
dFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMpOiBQcm92aWRlIGltcGxlbWVudGF0aW9uCisgICAgICAgIG9mIG1v
dXNlIHdoZWVsIGdlc3R1cmUgbWV0aG9kLgorCiAyMDE0LTAyLTEzICBEYXZpZCBGYXJsZXIgIDxk
ZmFybGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBEdW1wUmVuZGVyVHJlZSBmYWlscyB0byBidWls
ZDogUGVybCBzdXBwb3J0IG1vZHVsZSBidWlsZGluZyBmb3IgT1MgWCBidXQgbGlua2luZyBmb3Ig
dGhlIHNpbXVsYXRvcgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE2NDA4MykKKysrIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IEpvbmFzIFdpdHQgPGpvbmFzLndpdHRAZ21haWwuY29tPgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQG55cG9wLmNv
bT4KQEAgLTIwMiw2ICsyMDIsNyBAQCArIChCT09MKWlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJT
Y3JpcHQ6CiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHpvb21QYWdlT3V0
KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzY2FsZVBhZ2VCeTphdFg6
YW5kWTopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlU2Nyb2xs
QnlYOmFuZFk6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZVNj
cm9sbEJ5WDphbmRZOndpdGhXaGVlbDphbmRNb21lbnR1bVBoYXNlczopCiAgICAgICAgICAgICB8
fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5WDphbmRZOikK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGFkZFRvdWNoQXRYOnk6KQpAQCAtMjU0LDYgKzI1NSw4IEBAICsgKE5TU3RyaW5nICopd2ViU2Ny
aXB0TmFtZUZvclNlbGVjdG9yOigKICAgICAgICAgcmV0dXJuIEAic2V0RHJhZ01vZGUiOwogICAg
IGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlU2Nyb2xsQnlYOmFuZFk6KSkKICAgICAg
ICAgcmV0dXJuIEAibW91c2VTY3JvbGxCeSI7CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0
b3IobW91c2VTY3JvbGxCeVg6YW5kWTp3aXRoV2hlZWw6YW5kTW9tZW50dW1QaGFzZXM6KSkKKyAg
ICAgICAgcmV0dXJuIEAibW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIjsK
ICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihjb250aW51b3VzTW91c2VTY3JvbGxCeVg6
YW5kWTopKQogICAgICAgICByZXR1cm4gQCJjb250aW51b3VzTW91c2VTY3JvbGxCeSI7CiAgICAg
aWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2NhbGVQYWdlQnk6YXRYOmFuZFk6KSkKQEAgLTY5
OSw2ICs3MDIsNTYgQEAgLSAodm9pZCltb3VzZVNjcm9sbEJ5WDooaW50KXggYW5kWTooaW50KQog
ICAgIFtzZWxmIG1vdXNlU2Nyb2xsQnlYOnggYW5kWTp5IGNvbnRpbnVvdXNseTpOT107CiB9CiAK
KyNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwg
MTA5MAorY29uc3QgdWludDMyX3Qga0NHU2Nyb2xsV2hlZWxFdmVudE1vbWVudHVtUGhhc2UgPSAx
MjM7CisjZW5kaWYKKworLSAodm9pZCltb3VzZVNjcm9sbEJ5WDooaW50KXggYW5kWTooaW50KXkg
d2l0aFdoZWVsOihOU1N0cmluZyopcGhhc2VOYW1lIGFuZE1vbWVudHVtUGhhc2VzOihOU1N0cmlu
ZyopbW9tZW50dW1OYW1lCit7CisjaWYgIVBMQVRGT1JNKElPUykKKyAgICB1aW50MzJfdCBwaGFz
ZSA9IDA7CisgICAgaWYgKFtwaGFzZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBAIm5vbmUiXSkKKyAg
ICAgICAgcGhhc2UgPSAwOworICAgIGVsc2UgaWYgKFtwaGFzZU5hbWUgaXNFcXVhbFRvU3RyaW5n
OiBAImJlZ2FuIl0pCisgICAgICAgIHBoYXNlID0gMTsgLy8ga0NHU2Nyb2xsUGhhc2VCZWdhbgor
ICAgIGVsc2UgaWYgKFtwaGFzZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBAImNoYW5nZCJdKQorICAg
ICAgICBwaGFzZSA9IDI7IC8vIGtDR1Njcm9sbFBoYXNlQ2hhbmdlZDsKKyAgICBlbHNlIGlmIChb
cGhhc2VOYW1lIGlzRXF1YWxUb1N0cmluZzogQCJlbmRlZCJdKQorICAgICAgICBwaGFzZSA9IDQ7
IC8vIGtDR1Njcm9sbFBoYXNlRW5kZWQKKyAgICBlbHNlIGlmIChbcGhhc2VOYW1lIGlzRXF1YWxU
b1N0cmluZzogQCJjYW5jZWxsZWQiXSkKKyAgICAgICAgcGhhc2UgPSA4OyAvLyBrQ0dTY3JvbGxQ
aGFzZUNhbmNlbGxlZAorICAgIGVsc2UgaWYgKFtwaGFzZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBA
Im1heWJlZ2luIl0pCisgICAgICAgIHBoYXNlID0gMTI4OyAvLyBrQ0dTY3JvbGxQaGFzZU1heUJl
Z2luCisKKyAgICB1aW50MzJfdCBtb21lbnR1bSA9IDA7CisgICAgaWYgKFttb21lbnR1bU5hbWUg
aXNFcXVhbFRvU3RyaW5nOiBAIm5vbmUiXSkKKyAgICAgICAgbW9tZW50dW0gPSAwOyAvL2tDR01v
bWVudHVtU2Nyb2xsUGhhc2VOb25lOworICAgIGVsc2UgaWYgKFttb21lbnR1bU5hbWUgaXNFcXVh
bFRvU3RyaW5nOkAiYmVnaW4iXSkKKyAgICAgICAgbW9tZW50dW0gPSAxOyAvLyBrQ0dNb21lbnR1
bVNjcm9sbFBoYXNlQmVnaW47CisgICAgZWxzZSBpZiAoW21vbWVudHVtTmFtZSBpc0VxdWFsVG9T
dHJpbmc6QCJjb250aW51ZSJdKQorICAgICAgICBtb21lbnR1bSA9IDI7IC8vIGtDR01vbWVudHVt
U2Nyb2xsUGhhc2VDb250aW51ZTsKKyAgICBlbHNlIGlmIChbbW9tZW50dW1OYW1lIGlzRXF1YWxU
b1N0cmluZzpAImVuZCJdKQorICAgICAgICBtb21lbnR1bSA9IDM7IC8vIGtDR01vbWVudHVtU2Ny
b2xsUGhhc2VFbmQ7CisKKyAgICBDR0V2ZW50UmVmIGNnU2Nyb2xsRXZlbnQgPSBDR0V2ZW50Q3Jl
YXRlU2Nyb2xsV2hlZWxFdmVudChOVUxMLCBrQ0dTY3JvbGxFdmVudFVuaXRMaW5lLCAyLCB5LCB4
KTsKKworICAgIC8vIENHRXZlbnQgbG9jYXRpb25zIGFyZSBpbiBnbG9iYWwgZGlzcGxheSBjb29y
ZGluYXRlcy4KKyAgICBDR1BvaW50IGxhc3RHbG9iYWxNb3VzZVBvc2l0aW9uID0gQ0dQb2ludE1h
a2UobGFzdE1vdXNlUG9zaXRpb24ueCwgW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0uc2l6
ZS5oZWlnaHQgLSBsYXN0TW91c2VQb3NpdGlvbi55KTsKKyAgICBDR0V2ZW50U2V0TG9jYXRpb24o
Y2dTY3JvbGxFdmVudCwgbGFzdEdsb2JhbE1vdXNlUG9zaXRpb24pOworICAgIENHRXZlbnRTZXRJ
bnRlZ2VyVmFsdWVGaWVsZChjZ1Njcm9sbEV2ZW50LCBrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xs
UGhhc2UsIHBoYXNlKTsKKyAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dTY3JvbGxF
dmVudCwga0NHU2Nyb2xsV2hlZWxFdmVudE1vbWVudHVtUGhhc2UsIG1vbWVudHVtKTsKKyAgICAK
KyAgICBOU0V2ZW50KiBzY3JvbGxFdmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0aENHRXZlbnQ6Y2dT
Y3JvbGxFdmVudF07CisgICAgQ0ZSZWxlYXNlKGNnU2Nyb2xsRXZlbnQpOworCisgICAgaWYgKE5T
VmlldyogdGFyZ2V0VmlldyA9IFtbbWFpbkZyYW1lIHdlYlZpZXddIGhpdFRlc3Q6W3Njcm9sbEV2
ZW50IGxvY2F0aW9uSW5XaW5kb3ddXSkgeworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVu
dDpzY3JvbGxFdmVudF07CisgICAgICAgIFt0YXJnZXRWaWV3IHNjcm9sbFdoZWVsOnNjcm9sbEV2
ZW50XTsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKyAgICB9CisjZW5k
aWYKK30KKwogLSAoTlNBcnJheSAqKWNvbnRleHRDbGljawogewogI2lmICFQTEFURk9STShJT1Mp
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAkocmV2aXNp
b24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dApAQCAtNjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3VzZVVwKHVu
c2lnbmVkIGJ1dHRvbiwgV0tFdmVudE1vZGlmaWVycyk7CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhk
b3VibGUgeCwgZG91YmxlIHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHkp
OworICAgIHZvaWQgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4
LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01v
dXNlU2Nyb2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2VkKTsKIAogICAgIHZvaWQgbGVhcEZv
cndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg1Niw2ICs4NTYsMjUgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcoc3ViTWVzc2FnZU5hbWUsICJNb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMiKSkgeworICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHhLZXkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJYIikpOworICAgICAgICAgICAgZG91
YmxlIHggPSBXS0RvdWJsZUdldFZhbHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rp
b25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgeEtleS5nZXQoKSkpKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOworICAgICAgICAg
ICAgZG91YmxlIHkgPSBXS0RvdWJsZUdldFZhbHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihX
S0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgeUtleS5nZXQo
KSkpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IHBoYXNlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGhhc2Ui
KSk7CisgICAgICAgICAgICBpbnQgcGhhc2UgPSBzdGF0aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0
VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXko
bWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBwaGFzZUtleS5nZXQoKSkpKSk7CisgICAgICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbW9tZW50dW1LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsKKyAgICAgICAgICAgIGludCBtb21lbnR1
bSA9IHN0YXRpY19jYXN0PGludD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2
NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIG1v
bWVudHVtS2V5LmdldCgpKSkpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gRm9yd2Fy
ZCB0byBXZWJQcm9jZXNzCisgICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3lu
Y2hyb25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIGZhbHNlKTsKKyAgICAgICAgICAgIG1f
ZXZlbnRTZW5kZXJQcm94eS0+bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KHgsIHksIHBoYXNlLCBtb21lbnR1bSk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIApAQCAtOTI1LDYgKzk0
NCwyNSBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RDb250cm9sbGVyOjpkCiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCisgICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VOYW1lLCAiTW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzIikpIHsKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4
S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKKyAgICAg
ICAgICAgIGRvdWJsZSB4ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJl
Zj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhLZXku
Z2V0KCkpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiB5S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWSIpKTsK
KyAgICAgICAgICAgIGRvdWJsZSB5ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Rv
dWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnks
IHlLZXkuZ2V0KCkpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBwaGFzZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIlBoYXNlIikpOworICAgICAgICAgICAgaW50IHBoYXNlID0gc3RhdGljX2Nhc3Q8aW50PihX
S1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJ
dGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgcGhhc2VLZXkuZ2V0KCkpKSkpOworICAg
ICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5ID0gYWRvcHRXSyhX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9tZW50dW0iKSk7CisgICAgICAgICAgICBp
bnQgbW9tZW50dW0gPSBzdGF0aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nh
c3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0
aW9uYXJ5LCBtb21lbnR1bUtleS5nZXQoKSkpKSk7CisKKyAgICAgICAgICAgIC8vIEZvcndhcmQg
dG8gV2ViUHJvY2VzcworICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNo
cm9ub3VzbHkobWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0cnVlKTsKKyAgICAgICAgICAgIG1fZXZl
bnRTZW5kZXJQcm94eS0+bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgs
IHksIHBoYXNlLCBtb21lbnR1bSk7CisgICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZl
bnRzU3luY2hyb25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBpZiAoV0tTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIkNvbnRpbnVvdXNNb3VzZVNjcm9s
bEJ5IikpIHsKICAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKICAgICAgICAgICAgIGRv
dWJsZSB4ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0
aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkpKSk7
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE2NDA4MykK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29u
dHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0Nyw2ICszNDcsNjEgQEAg
dm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjptb3VzZVNjcm9sbAogICAgIFdLQnVuZGxlUG9z
dFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2
ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCks
IDApOwogfQogCit2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBoYXNlU3Ry
LCBKU1N0cmluZ1JlZiBtb21lbnR1bVN0ciwgYm9vbCBhc3luY1Njcm9sbGluZykKK3sKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gRXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRXZlbnRTZW5kZXIiKSk7CisgICAgV0tSZXRh
aW5QdHI8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4gRXZlbnRTZW5kZXJNZXNzYWdlQm9keShBZG9w
dFdLLCBXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCkpOworICAgIAorICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJTdWJNZXNzYWdlIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBz
dWJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIikpOworICAgIFdLRGljdGlvbmFy
eVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZUtleS5nZXQo
KSwgc3ViTWVzc2FnZU5hbWUuZ2V0KCkpOworICAgIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiB4S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJYIikpOwor
ICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiB4UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRl
KHgpKTsKKyAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0
KCksIHhLZXkuZ2V0KCksIHhSZWYuZ2V0KCkpOworICAgIAorICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiB5S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikp
OworICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiB5UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3Jl
YXRlKHkpKTsKKyAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHku
Z2V0KCksIHlLZXkuZ2V0KCksIHlSZWYuZ2V0KCkpOworCisgICAgdWludDY0X3QgcGhhc2UgPSAw
OworICAgIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHBoYXNlU3RyLCAibm9uZSIp
KQorICAgICAgICBwaGFzZSA9IDA7CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhwaGFzZVN0ciwgImJlZ2FuIikpCisgICAgICAgIHBoYXNlID0gMTsgLy8ga0NHU2Ny
b2xsUGhhc2VCZWdhbgorICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
cGhhc2VTdHIsICJjaGFuZ2VkIikpCisgICAgICAgIHBoYXNlID0gMjsgLy8ga0NHU2Nyb2xsUGhh
c2VDaGFuZ2VkCisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhwaGFz
ZVN0ciwgImVuZGVkIikpCisgICAgICAgIHBoYXNlID0gNDsgLy8ga0NHU2Nyb2xsUGhhc2VFbmRl
ZAorICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcocGhhc2VTdHIsICJj
YW5jZWxsZWQiKSkKKyAgICAgICAgcGhhc2UgPSA4OyAvLyBrQ0dTY3JvbGxQaGFzZUNhbmNlbGxl
ZAorICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcocGhhc2VTdHIsICJt
YXliZWdpbiIpKQorICAgICAgICBwaGFzZSA9IDEyODsgLy8ga0NHU2Nyb2xsUGhhc2VNYXlCZWdp
bgorCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHBoYXNlS2V5KEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQaGFzZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VJ
bnQ2NFJlZj4gcGhhc2VSZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUocGhhc2UpKTsKKyAgICBX
S0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHBoYXNlS2V5
LmdldCgpLCBwaGFzZVJlZi5nZXQoKSk7CisKKyAgICB1aW50NjRfdCBtb21lbnR1bSA9IDA7Cisg
ICAgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobW9tZW50dW1TdHIsICJub25lIikp
CisgICAgICAgIG1vbWVudHVtID0gMDsgLy8ga0NHTW9tZW50dW1TY3JvbGxQaGFzZU5vbmUKKyAg
ICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3RyLCAiYmVn
aW4iKSkKKyAgICAgICAgbW9tZW50dW0gPSAxOyAvLyBrQ0dNb21lbnR1bVNjcm9sbFBoYXNlQmVn
aW4KKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1vbWVudHVtU3Ry
LCAiY29udGludWUiKSkKKyAgICAgICAgbW9tZW50dW0gPSAyOyAvLyBrQ0dNb21lbnR1bVNjcm9s
bFBoYXNlQ29udGludWUKKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1vbWVudHVtU3RyLCAiZW5kIikpCisgICAgICAgIG1vbWVudHVtID0gMzsgLy8ga0NHTW9tZW50
dW1TY3JvbGxQaGFzZUVuZAorCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVt
S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsK
KyAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gbW9tZW50dW1SZWYoQWRvcHRXSywgV0tVSW50
NjRDcmVhdGUobW9tZW50dW0pKTsKKyAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVy
TWVzc2FnZUJvZHkuZ2V0KCksIG1vbWVudHVtS2V5LmdldCgpLCBtb21lbnR1bVJlZi5nZXQoKSk7
CisKKyAgICBpZiAoYXN5bmNTY3JvbGxpbmcpCisgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2Uo
SW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1l
LmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpKTsKKyAgICBlbHNlCisgICAgICAg
IFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
YnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2Fn
ZUJvZHkuZ2V0KCksIDApOworfQorCiB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNvbnRp
bnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCkKIHsKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gRXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRXZlbnRTZW5kZXIiKSk7CkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIuaAkocmV2aXNpb24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAx
MSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VV
cChpbnQgYnV0dG9uLCBKU1ZhbHVlUmVmIG1vZGlmaWVyQXJyYXkpOwogICAgIHZvaWQgbW91c2VN
b3ZlVG8oaW50IHgsIGludCB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5
KTsKKyAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQg
eCwgaW50IHksIEpTU3RyaW5nUmVmIHBoYXNlLCBKU1N0cmluZ1JlZiBtb21lbnR1bSwgYm9vbCBh
c3luY1Njcm9sbGluZyk7CiAgICAgdm9pZCBjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwg
aW50IHksIGJvb2wgcGFnZWQpOwogICAgIEpTVmFsdWVSZWYgY29udGV4dENsaWNrKCk7CiAgICAg
dm9pZCBsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAkocmV2aXNpb24gMTY0MDgzKQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRp
bmdDb250cm9sbGVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBA
QCBpbnRlcmZhY2UgRXZlbnRTZW5kaW5nQ29udHJvbGxlciB7CiAgICAgdm9pZCBtb3VzZVVwKGxv
bmcgYnV0dG9uTnVtYmVyLCBvYmplY3QgbW9kaWZpZXJBcnJheSk7CiAgICAgdm9pZCBtb3VzZU1v
dmVUbyhsb25nIHgsIGxvbmcgeSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGxvbmcgeCwgbG9u
ZyB5KTsKKyAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhs
b25nIHgsIGxvbmcgeSwgRE9NU3RyaW5nIHBoYXNlLCBET01TdHJpbmcgbW9tZW50dW0sIG9wdGlv
bmFsIGJvb2xlYW4gYXN5bmNTY3JvbGxpbmcpOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Ny
b2xsQnkobG9uZyB4LCBsb25nIHksIG9wdGlvbmFsIGJvb2xlYW4gcGFnZWQpOwogICAgIG9iamVj
dCBjb250ZXh0Q2xpY2soKTsKICAgICB2b2lkIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2soKTsK
SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2Vu
ZGVyUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQkocmV2aXNpb24gMTY0MDgzKQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQ
cm94eUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsMTEgQEAgdm9pZCBFdmVudFNl
bmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5KGludAogICAgIC8vIFdyaXRlIG1lLgogfQogCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKQoreworICAgIC8vIFdyaXRl
IG1lLgorfQorCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5
KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCkKIHsKICAgICAvLyBXcml0ZSBtZS4KSW5kZXg6IFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3Bw
CShyZXZpc2lvbiAxNjQwODMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNl
bmRlclByb3h5RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzkyLDYgKzM5MiwxMyBAQCB2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQgLypwaGFzZSovLCBpbnQgLyptb21lbnR1
bSovKQoreworICAgIC8vIEVGTCBkb2VzIG5vdCBoYXZlIHRoZSBjb25jZXB0IG9mIHdoZWVsIGdl
c3R1cmUgcGhhc2VzIG9yIG1vbWVudHVtLiBKdXN0IHJlbGF5IHRvCisgICAgLy8gdGhlIG1vdXNl
IHdoZWVsIGhhbmRsZXIuCisgICAgbW91c2VTY3JvbGxCeSh4LCB5KTsKK30KKwogdm9pZCBFdmVu
dFNlbmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGlmICht
X2V2ZW50UXVldWUuaXNFbXB0eSgpKQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsv
RXZlbnRTZW5kZXJQcm94eUd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAJKHJldmlzaW9uIDE2NDA4MykKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MzMsNiArNDMzLDEzIEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y29udGlu
dW91c01vdXNlU2MKICAgICBzZW5kT3JRdWV1ZUV2ZW50KGV2ZW50KTsKIH0KIAordm9pZCBFdmVu
dFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50
IHgsIGludCB5LCBpbnQgLypwaGFzZSovLCBpbnQgLyptb21lbnR1bSovKQoreworICAgIC8vIEd0
aysgZG9lcyBub3QgaGF2ZSB0aGUgY29uY2VwdCBvZiB3aGVlbCBnZXN0dXJlIHBoYXNlcyBvciBt
b21lbnR1bS4gSnVzdCByZWxheSB0bworICAgIC8vIHRoZSBtb3VzZSB3aGVlbCBoYW5kbGVyLgor
ICAgIG1vdXNlU2Nyb2xsQnkoeCwgeSk7Cit9CisKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bGVh
cEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcykKIHsKICAgICBpZiAobV9ldmVudFF1ZXVlLmlzRW1w
dHkoKSkKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHku
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQ
cm94eS5tbQkocmV2aXNpb24gMTY0MDgzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
RXZlbnRTZW5kZXJQcm94eS5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC00NjEsNCArNDYxLDI5IEBAIHZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6Y29udGludW91c01vdXNlU2MKICAgICByZXR1cm47CiB9CiAKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTA5MAorY29uc3QgdWludDMyX3Qg
a0NHU2Nyb2xsV2hlZWxFdmVudE1vbWVudHVtUGhhc2UgPSAxMjM7CisjZW5kaWYKKwordm9pZCBF
dmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
aW50IHgsIGludCB5LCBpbnQgcGhhc2UsIGludCBtb21lbnR1bSkKK3sKKyAgICBSZXRhaW5QdHI8
Q0dFdmVudFJlZj4gY2dTY3JvbGxFdmVudCA9IGFkb3B0Q0YoQ0dFdmVudENyZWF0ZVNjcm9sbFdo
ZWVsRXZlbnQoMCwga0NHU2Nyb2xsRXZlbnRVbml0TGluZSwgMiwgeSwgeCkpOworCisgICAgLy8g
Q0dFdmVudCBsb2NhdGlvbnMgYXJlIGluIGdsb2JhbCBkaXNwbGF5IGNvb3JkaW5hdGVzLgorICAg
IENHUG9pbnQgbGFzdEdsb2JhbE1vdXNlUG9zaXRpb24gPSBDR1BvaW50TWFrZShtX3Bvc2l0aW9u
LngsIFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gbV9wb3NpdGlv
bi55KTsKKyAgICBDR0V2ZW50U2V0TG9jYXRpb24oY2dTY3JvbGxFdmVudC5nZXQoKSwgbGFzdEds
b2JhbE1vdXNlUG9zaXRpb24pOworCisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGNn
U2Nyb2xsRXZlbnQuZ2V0KCksIGtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSwgcGhhc2Up
OworICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ1Njcm9sbEV2ZW50LmdldCgpLCBr
Q0dTY3JvbGxXaGVlbEV2ZW50TW9tZW50dW1QaGFzZSwgbW9tZW50dW0pOworCisgICAgTlNFdmVu
dCogZXZlbnQgPSBbTlNFdmVudCBldmVudFdpdGhDR0V2ZW50OiBjZ1Njcm9sbEV2ZW50LmdldCgp
XTsKKworICAgIC8vIE91ciBldmVudCBzaG91bGQgaGF2ZSB0aGUgY29ycmVjdCBzZXR0aW5nczoK
KyAgICBpZiAoTlNWaWV3ICp0YXJnZXRWaWV3ID0gW21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJW
aWV3KCktPnBsYXRmb3JtVmlldygpIGhpdFRlc3Q6IFtldmVudCBsb2NhdGlvbkluV2luZG93XV0p
IHsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6IGV2ZW50XTsKKyAgICAgICAgW3Rh
cmdldFZpZXcgc2Nyb2xsV2hlZWw6IGV2ZW50XTsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50
RXZlbnQ6IG5pbF07CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2NDA4MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDUzIEBACisyMDE0LTAyLTEzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgorCisgICAgICAgIENyZWF0ZSBzb21lIGxhdGNoZWQgc2Nyb2xsaW5nIHRlc3RzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjA2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNTkxMTM0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIGEgc2VyaWVzIG9mIHRlc3RzIHRvIGNvdmVyIGRl
c2lyZWQgYmVoYXZpb3Igd2l0aCB3aGVlbCBldmVudHMgKGluY2x1ZGluZyBtb21lbnR1bSkuCisg
ICAgICAgIFRoaXMgYmVoYXZpb3IgaXMgc3BlY2lmaWMgdG8gdGhlIE1hYyBwbGF0Zm9ybSwgc28g
aXMgbGltaXRlZCB0byB0aGUgcGxhdGZvcm0vbWFjIGFuZAorICAgICAgICBwbGF0Zm9ybS9tYWMt
d2syIGRpcmVjdG9yaWVzLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3
aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0
Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13
aXRoLWhhbmRsZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNo
ZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRo
LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFu
ZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0
Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgt
aGFuZGxlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
dGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5k
bGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRj
aGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUt
d2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13
aXRoLWhhbmRsZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
c2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVk
LW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQt
bWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0
LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0
Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRj
aGVkLWRpdi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1l
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xs
aW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxp
bmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFt
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9s
bGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFp
bmZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
c2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1zZWxlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1sOiBBZGRlZC4KKwog
MjAxNC0wMi0xMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NDA3MyBhbmQgcjE2NDA4MC4KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1k
aXYtbGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NiBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNr
IGRvd253YXJkcworU2Nyb2xsYWJsZSBSZWdpb24KKworQ291bnQJREFUQQlSZXYgQ291bnQKK1RP
UCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9Q
CisxCTAuMTEwMAk0MAorMgkwLjExNTUJMzkKKzMJMC4yMjAwCTM4Cis0CTAuMjI1NQkzNworNQkw
LjMzMDAJMzYKKzYJMC4zMzU1CTM1Cis3CTAuNDQwMAkzNAorOAkwLjQ0NTUJMzMKKzkJMC41NTAw
CTMyCisxMAkwLjU1NTUJMzEKKzExCTAuNjYwMAkzMAorMTIJMC42NjU1CTI5CisxMwkwLjc3MDAJ
MjgKKzE0CTAuNzc1NQkyNworMTUJMC44ODAwCTI2CisxNgkwLjg4NTUJMjUKKzE3CTAuOTkwMAky
NAorMTgJMC45OTU1CTIzCisxOQkwLjk5OTkJMjIKKzIwCTEuMDAwMAkyMQorMjEJMS4wMDAwCTIw
CisyMgkwLjk5OTkJMTkKKzIzCTAuOTk1NQkxOAorMjQJMC45OTAwCTE3CisyNQkwLjg4NTUJMTYK
KzI2CTAuODgwMAkxNQorMjcJMC43NzU1CTE0CisyOAkwLjc3MDAJMTMKKzI5CTAuNjY1NQkxMgor
MzAJMC42NjAwCTExCiszMQkwLjU1NTUJMTAKKzMyCTAuNTUwMAk5CiszMwkwLjQ0NTUJOAorMzQJ
MC40NDAwCTcKKzM1CTAuMzM1NQk2CiszNgkwLjMzMDAJNQorMzcJMC4yMjU1CTQKKzM4CTAuMjIw
MAkzCiszOQkwLjExNTUJMgorNDAJMC4xMTAwCTEKK0VORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVO
RCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECitUZXN0cyB0aGF0IGEgc2Nyb2xsYWJs
ZSBkaXYgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xs
aW5nIGF0IGJvdHRvbQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitkaXYgZGlzcGxheSBoZWln
aHQgPSA0ODUKK01vdXNlIG1vdmVkIHRvICgyOCwgNjEwKQorUGFnZSBiZWZvcmU6IDAsIGRpdiBi
ZWZvcmU6IDQ1MQorUGFnZSBhZnRlcjogIDAsIGRpdiBhZnRlcjogNDUxCitQQVNTIFBhZ2UgZGlk
IG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgMjAw
OC4wMCAyMzI2LjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1LjAw
KQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAoYm91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgICAgIChjb250ZW50c09wYXF1
ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAg
ICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAw
IDIwMDggeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9wIGxl
ZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgNCB4IDQpCisgICAgKQorICApCispCisKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxh
dGNoZWQtZGl2LXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxh
dGNoZWQtZGl2LXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3NyBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJs
ZSBSZWdpb24KKworQ291bnQJREFUQQlSZXYgQ291bnQKK1RPUCBUT1AgVE9QIFRPUCBUT1AJVE9Q
IFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCisxCTAuMTEwMAk0MAorMgkwLjEx
NTUJMzkKKzMJMC4yMjAwCTM4Cis0CTAuMjI1NQkzNworNQkwLjMzMDAJMzYKKzYJMC4zMzU1CTM1
Cis3CTAuNDQwMAkzNAorOAkwLjQ0NTUJMzMKKzkJMC41NTAwCTMyCisxMAkwLjU1NTUJMzEKKzEx
CTAuNjYwMAkzMAorMTIJMC42NjU1CTI5CisxMwkwLjc3MDAJMjgKKzE0CTAuNzc1NQkyNworMTUJ
MC44ODAwCTI2CisxNgkwLjg4NTUJMjUKKzE3CTAuOTkwMAkyNAorMTgJMC45OTU1CTIzCisxOQkw
Ljk5OTkJMjIKKzIwCTEuMDAwMAkyMQorMjEJMS4wMDAwCTIwCisyMgkwLjk5OTkJMTkKKzIzCTAu
OTk1NQkxOAorMjQJMC45OTAwCTE3CisyNQkwLjg4NTUJMTYKKzI2CTAuODgwMAkxNQorMjcJMC43
NzU1CTE0CisyOAkwLjc3MDAJMTMKKzI5CTAuNjY1NQkxMgorMzAJMC42NjAwCTExCiszMQkwLjU1
NTUJMTAKKzMyCTAuNTUwMAk5CiszMwkwLjQ0NTUJOAorMzQJMC40NDAwCTcKKzM1CTAuMzM1NQk2
CiszNgkwLjMzMDAJNQorMzcJMC4yMjU1CTQKKzM4CTAuMjIwMAkzCiszOQkwLjExNTUJMgorNDAJ
MC4xMTAwCTEKK0VORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5E
IEVORCBFTkQgRU5ECitUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBwYXNzIHdo
ZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbQorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitkaXYgZGlzcGxheSBoZWlnaHQgPSA0ODUKK01vdXNlIG1vdmVk
IHRvICgyOCwgNjEwKQorUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZvcmU6IDQ1MQorUGFnZSBhZnRl
cjogIDAsIGRpdiBhZnRlcjogNDUxCitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4KK0RvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgMCBvZiB0aGUgd2hlZWwgZXZl
bnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyAyMDA4LjAwIDIzNDEuMDApCisgICh2aXNp
YmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCisgIChjb250ZW50c1NjYWxlIDEu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgMjAw
OC4wMCAyMzQxLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJsZSBy
ZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAgICAgKGNvbnRlbnRzU2NhbGUgMS4w
MCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgMjAwOCB4IDIwNDgpCisgICAgICAo
dGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3Jp
ZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRs
ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdpdGgtaGFuZGxlci5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5n
L2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50
YWJsZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7
CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWln
aHQ6IHN0cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3Jv
dW5kOiAjZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChv
ZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgordmFyIHdoZWVsQ291bnQgPSAwOworZnVuY3Rpb24gb25TY3JvbGxXaGVlbChldnQpIHsKKyAg
ICB3aGVlbENvdW50ID0gd2hlZWxDb3VudCArIDE7Cit9CisKK2Z1bmN0aW9uIG9uTG9hZCgpIHsK
KyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgb25TY3JvbGxXaGVl
bCk7CisgICAgc2V0dXBUb3BMZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgZGl2VGFyZ2V0OwordmFyIHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBj
b250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAv
LyBUaGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VT
Y3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIGRp
dlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWco
IlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgZGl2IGJlZm9y
ZTogIiArIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjog
ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIGRpdiBhZnRlcjogIiArIGRpdlNjcm9s
bFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBw
YWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZl
ZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRp
ZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBkZWJ1ZygiRG9jdW1lbnQgd2Fz
IGluaXRpYWwgdGFyZ2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhlIHdoZWVsIGV2ZW50
cy4iKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNU
ZXh0KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNf
VklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVT
KTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24g
c2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBw
YWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAg
IGRpdlRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICBkaXZU
YXJnZXQuc2Nyb2xsVG9wID0gZGl2VGFyZ2V0LnNjcm9sbEhlaWdodCAtIGRpdlRhcmdldC5jbGll
bnRIZWlnaHQgLSAxMDA7CisKKyAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRpdlRhcmdl
dC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2gg
dGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGRpdlRhcmdldC5vZmZzZXRMZWZ0ICsg
MjA7CisgICAgZGVidWcoImRpdiBkaXNwbGF5IGhlaWdodCA9ICIgKyBkaXZUYXJnZXQuY2xpZW50
SGVpZ2h0KTsKKyAgICB2YXIgc3RhcnRQb3NZID0gZGl2VGFyZ2V0Lm9mZnNldFRvcCArIGRpdlRh
cmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ug
c3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92
ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdi
ZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9s
bCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0
KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9j
YXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBt
ZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2Uu
aW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJU
cmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+Igor
ICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBt
b3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+IgorICAg
ICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBkaXYuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsg
IllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlz
IHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZCht
ZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0i
aGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0
eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhl
cmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9s
bGFibGVfcmVnaW9uIj4KKyAgICAgICAgPGgzPlNjcm9sbGFibGUgUmVnaW9uPC9oMz4KKyAgICAg
ICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDog
aGlkZGVuOyBtYXgtaGVpZ2h0OiA0ODVweDsnPgorICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0
YWJsZSIgc3R5bGU9J3dpZHRoOiA5OSUnPgorICAgICAgICAgICAgICAgIDx0cj48dGg+Q291bnQ8
L3RoPjx0aD5EQVRBPC90aD48dGg+UmV2IENvdW50PC90aD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8
L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+MTwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjQwPC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MjwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjM5PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MzwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM4PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+NDwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjM3PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NTwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjM2
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NjwvdGQ+PHRkPjAuMzM1NTwvdGQ+
PHRkPjM1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NzwvdGQ+PHRkPjAuNDQw
MDwvdGQ+PHRkPjM0PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+ODwvdGQ+PHRk
PjAuNDQ1NTwvdGQ+PHRkPjMzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+OTwv
dGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjMyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MTA8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4zMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjExPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MzA8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4xMjwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjI5PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MTM8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4yODwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE0PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+
Mjc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNTwvdGQ+PHRkPjAuODgwMDwv
dGQ+PHRkPjI2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTY8L3RkPjx0ZD4w
Ljg4NTU8L3RkPjx0ZD4yNTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE3PC90
ZD48dGQ+MC45OTAwPC90ZD48dGQ+MjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4xODwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjIzPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MTk8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4yMjwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjIwPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjE8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4yMTwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIwPC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjI8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4x
OTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIzPC90ZD48dGQ+MC45OTU1PC90
ZD48dGQ+MTg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNDwvdGQ+PHRkPjAu
OTkwMDwvdGQ+PHRkPjE3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjU8L3Rk
Pjx0ZD4wLjg4NTU8L3RkPjx0ZD4xNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjI2PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MTU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4yNzwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjE0PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+Mjg8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4xMzwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjI5PC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+MTI8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMDwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjEx
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzE8L3RkPjx0ZD4wLjU1NTU8L3Rk
Pjx0ZD4xMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMyPC90ZD48dGQ+MC41
NTAwPC90ZD48dGQ+OTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMzPC90ZD48
dGQ+MC40NDU1PC90ZD48dGQ+ODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM0
PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+NzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjM1PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+NjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjM2PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+NTwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjM3PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+NDwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjM4PC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+MzwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM5PC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+Mjwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQwPC90ZD48dGQ+MC4xMTAwPC90ZD48
dGQ+MTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPkVORCBFTkQgRU5EIEVORCBF
TkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVO
RDwvdGQ+PC90cj4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVu
dHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0Pgor
PHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQt
ZGl2Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFi
bGUgdGQsIC50YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggewor
ICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0
OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3Vu
ZDogI2YzZjNmMzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2Rk
KSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBkaXZU
YXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGRpdlNjcm9sbFBvc2l0
aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNj
cm9sbCgpIHsKKworICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFs
bC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9s
bFRvcDsKKyAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxU
b3A7CisKKyAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgKyAiLCBkaXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRl
YnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFm
dGVyOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAocGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFp
bGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRl
c3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCds
YXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LAor
ICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyB8
IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKKyAgICB9CisKKyAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsK
KyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRpdlRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICBkaXZUYXJnZXQuc2Nyb2xsVG9w
ID0gZGl2VGFyZ2V0LnNjcm9sbEhlaWdodCAtIGRpdlRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7
CisKKyAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisK
KyAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisg
ICAgdmFyIHN0YXJ0UG9zWCA9IGRpdlRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgZGVidWco
ImRpdiBkaXNwbGF5IGhlaWdodCA9ICIgKyBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICB2
YXIgc3RhcnRQb3NZID0gZGl2VGFyZ2V0Lm9mZnNldFRvcCArIGRpdlRhcmdldC5jbGllbnRIZWln
aHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVz
dCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFy
dFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcs
ICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdiZWdpbicsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAn
ZW5kJywgdHJ1ZSk7CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKwor
ZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEw
MDApOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxw
PlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxs
eSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAi
YXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBh
IHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+IgorICAgICAgICAgICAgKyAiZG93
biBwYXN0IHRoZSBkaXYuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90
IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9w
PiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9
Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7
IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEw
MHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRv
d253YXJkcworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9uIj4K
KyAgICAgICAgPGgzPlNjcm9sbGFibGUgUmVnaW9uPC9oMz4KKyAgICAgICAgPGRpdiBpZD0idGFy
Z2V0IiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuOyBtYXgtaGVp
Z2h0OiA0ODVweDsnPgorICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSIgc3R5bGU9J3dp
ZHRoOiA5OSUnPgorICAgICAgICAgICAgICAgIDx0cj48dGg+Q291bnQ8L3RoPjx0aD5EQVRBPC90
aD48dGg+UmV2IENvdW50PC90aD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+VE9QIFRP
UCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9Q
IFRPUCBUT1AgVE9QPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTwvdGQ+PHRk
PjAuMTEwMDwvdGQ+PHRkPjQwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjwv
dGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjM5PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MzwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM4PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+NDwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjM3PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+NTwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjM2PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+NjwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjM1PC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NzwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjM0PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+ODwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRk
PjMzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+OTwvdGQ+PHRkPjAuNTUwMDwv
dGQ+PHRkPjMyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTA8L3RkPjx0ZD4w
LjU1NTU8L3RkPjx0ZD4zMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjExPC90
ZD48dGQ+MC42NjAwPC90ZD48dGQ+MzA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4xMjwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjI5PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MTM8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4yODwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjE0PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+Mjc8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4xNTwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjI2PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTY8L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4y
NTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE3PC90ZD48dGQ+MC45OTAwPC90
ZD48dGQ+MjQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xODwvdGQ+PHRkPjAu
OTk1NTwvdGQ+PHRkPjIzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTk8L3Rk
Pjx0ZD4wLjk5OTk8L3RkPjx0ZD4yMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjIwPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4yMTwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIwPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MjI8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4xOTwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjIzPC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MTg8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNDwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjE3
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjU8L3RkPjx0ZD4wLjg4NTU8L3Rk
Pjx0ZD4xNjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI2PC90ZD48dGQ+MC44
ODAwPC90ZD48dGQ+MTU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNzwvdGQ+
PHRkPjAuNzc1NTwvdGQ+PHRkPjE0PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
Mjg8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4xMzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjI5PC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+MTI8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4zMDwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjExPC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MzE8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4xMDwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMyPC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+OTwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMzPC90ZD48dGQ+MC40NDU1PC90ZD48
dGQ+ODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM0PC90ZD48dGQ+MC40NDAw
PC90ZD48dGQ+NzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM1PC90ZD48dGQ+
MC4zMzU1PC90ZD48dGQ+NjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM2PC90
ZD48dGQ+MC4zMzAwPC90ZD48dGQ+NTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjM3PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+NDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjM4PC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+MzwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjM5PC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+MjwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjQwPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+MTwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQg
RU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PC90cj4KKyAg
ICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBhIHNjcm9sbGFibGUgZGl2IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFt
ZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0PgorPHByZSBpZD0ibGF5ZXJz
Ij5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1t
YWluZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFt
ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NSBAQAorUHV0IG1vdXNl
IGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBSZWdpb24KKworQ291bnQJREFU
QQlSZXYgQ291bnQKK1RPUCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1Ag
VE9QIFRPUCBUT1AgVE9QCisxCTAuMTEwMAk0MAorMgkwLjExNTUJMzkKKzMJMC4yMjAwCTM4Cis0
CTAuMjI1NQkzNworNQkwLjMzMDAJMzYKKzYJMC4zMzU1CTM1Cis3CTAuNDQwMAkzNAorOAkwLjQ0
NTUJMzMKKzkJMC41NTAwCTMyCisxMAkwLjU1NTUJMzEKKzExCTAuNjYwMAkzMAorMTIJMC42NjU1
CTI5CisxMwkwLjc3MDAJMjgKKzE0CTAuNzc1NQkyNworMTUJMC44ODAwCTI2CisxNgkwLjg4NTUJ
MjUKKzE3CTAuOTkwMAkyNAorMTgJMC45OTU1CTIzCisxOQkwLjk5OTkJMjIKKzIwCTEuMDAwMAky
MQorMjEJMS4wMDAwCTIwCisyMgkwLjk5OTkJMTkKKzIzCTAuOTk1NQkxOAorMjQJMC45OTAwCTE3
CisyNQkwLjg4NTUJMTYKKzI2CTAuODgwMAkxNQorMjcJMC43NzU1CTE0CisyOAkwLjc3MDAJMTMK
KzI5CTAuNjY1NQkxMgorMzAJMC42NjAwCTExCiszMQkwLjU1NTUJMTAKKzMyCTAuNTUwMAk5Cisz
MwkwLjQ0NTUJOAorMzQJMC40NDAwCTcKKzM1CTAuMzM1NQk2CiszNgkwLjMzMDAJNQorMzcJMC4y
MjU1CTQKKzM4CTAuMjIwMAkzCiszOQkwLjExNTUJMgorNDAJMC4xMTAwCTEKK0VORCBFTkQgRU5E
IEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECitUZXN0cyB0
aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNj
cm9sbCBpcyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K01vdXNlIG1vdmVkIHRvICgyOCwgMTI1KQorUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZvcmU6IDAK
K1BhZ2UgYWZ0ZXI6ICAyODAsIGRpdiBhZnRlcjogMAorUEFTUyBTY3JvbGxhYmxlIGRpdiBkaWQg
bm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyAyMDA4
LjAwIDIzMTEuMDApCisgICh2aXNpYmxlIHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDU4NS4w
MCkKKyAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgKGJvdW5kcyAyMDA4LjAwIDIzMTEuMDApCisgICAgICAoY29udGVudHNPcGFx
dWUgMSkKKyAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDU4NS4wMCkK
KyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAw
LCAwIDIwMDggeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9w
IGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgNCB4IDQpCisgICAgKQorICApCispCisKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1k
aXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3Jv
bGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFz
dC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NiBAQAorUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNr
IGRvd253YXJkcworU2Nyb2xsYWJsZSBSZWdpb24KKworQ291bnQJREFUQQlSZXYgQ291bnQKK1RP
UCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9Q
CisxCTAuMTEwMAk0MAorMgkwLjExNTUJMzkKKzMJMC4yMjAwCTM4Cis0CTAuMjI1NQkzNworNQkw
LjMzMDAJMzYKKzYJMC4zMzU1CTM1Cis3CTAuNDQwMAkzNAorOAkwLjQ0NTUJMzMKKzkJMC41NTAw
CTMyCisxMAkwLjU1NTUJMzEKKzExCTAuNjYwMAkzMAorMTIJMC42NjU1CTI5CisxMwkwLjc3MDAJ
MjgKKzE0CTAuNzc1NQkyNworMTUJMC44ODAwCTI2CisxNgkwLjg4NTUJMjUKKzE3CTAuOTkwMAky
NAorMTgJMC45OTU1CTIzCisxOQkwLjk5OTkJMjIKKzIwCTEuMDAwMAkyMQorMjEJMS4wMDAwCTIw
CisyMgkwLjk5OTkJMTkKKzIzCTAuOTk1NQkxOAorMjQJMC45OTAwCTE3CisyNQkwLjg4NTUJMTYK
KzI2CTAuODgwMAkxNQorMjcJMC43NzU1CTE0CisyOAkwLjc3MDAJMTMKKzI5CTAuNjY1NQkxMgor
MzAJMC42NjAwCTExCiszMQkwLjU1NTUJMTAKKzMyCTAuNTUwMAk5CiszMwkwLjQ0NTUJOAorMzQJ
MC40NDAwCTcKKzM1CTAuMzM1NQk2CiszNgkwLjMzMDAJNQorMzcJMC4yMjU1CTQKKzM4CTAuMjIw
MAkzCiszOQkwLjExNTUJMgorNDAJMC4xMTAwCTEKK0VORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVO
RCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECitUZXN0cyB0aGF0IGEgc2Nyb2xsYWJs
ZSBkaXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVk
IHRvIG1haW4gZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK01vdXNlIG1vdmVkIHRv
ICgyOCwgMTI1KQorUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6ICAy
ODAsIGRpdiBhZnRlcjogMAorUEFTUyBTY3JvbGxhYmxlIGRpdiBkaWQgbm90IHJlY2VpdmUgd2hl
ZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciA0IG9mIHRoZSB3aGVl
bCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAg
KHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAoY29udGVudHNT
Y2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91
bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKHZp
c2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAgICAgKGNvbnRlbnRz
U2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgMjAwOCB4IDIwNDgp
CisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAg
dGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5m
cmFtZS13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1l
LXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13
aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4MCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnNjcm9sbGFibGVfcmVnaW9uIHsK
KyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRk
aW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQt
YWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0cm9uZzsKK30KKworLnRhYmxlIHRyOm50
aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCisuc2Nyb2xsYWJs
ZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjNmM2Yz
OworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHdoZWVsQ291bnQgPSAwOworZnVuY3Rp
b24gb25TY3JvbGxXaGVlbChldnQpIHsKKyAgICB3aGVlbENvdW50ID0gd2hlZWxDb3VudCArIDE7
Cit9CisKK2Z1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZXdoZWVsIiwgb25TY3JvbGxXaGVlbCk7CisgICAgc2V0dXBUb3BMZXZlbCgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0Pgor
Cit2YXIgZGl2VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBkaXZT
Y3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24g
Y2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3Jv
bGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJn
ZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlICsgIiwgZGl2IGJlZm9yZTogIiArIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3Jl
KTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciAr
ICIsIGRpdiBhZnRlcjogIiArIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKGRp
dlNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAg
IHRlc3RGYWlsZWQoIlNjcm9sbGFibGUgZGl2IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIlNjcm9sbGFibGUgZGl2IGRpZCBub3QgcmVjZWl2
ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBkZWJ1ZygiRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFy
Z2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhlIHdoZWVsIGV2ZW50cy4iKTsKKworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNU
UyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKKyAgICB9CisK
KyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVzdCgp
IHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRpdlRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIGRpdlNjcm9sbFBvc2l0
aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3Nv
dXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gZGl2
VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gZGl2VGFyZ2V0Lm9m
ZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9sbCBhd2F5
IGZyb20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwg
c3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQor
ICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBv
c1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2Vk
JywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
LCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRU
aW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVs
KCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
CisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJl
bnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBy
dW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBt
b3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdl
LCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBz
Y3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIGRpdi48YnIvPjxi
ci8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2YgRU5EIGxh
YmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxv
Y2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2
IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAg
IDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgor
ICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICA8aDM+U2Nyb2xsYWJs
ZSBSZWdpb248L2gzPgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdvdmVyZmxvdy15
OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWlnaHQ6IDQ4NXB4Oyc+CisgICAgICAg
ICAgICA8dGFibGUgY2xhc3M9InRhYmxlIiBzdHlsZT0nd2lkdGg6IDk5JSc+CisgICAgICAgICAg
ICAgICAgPHRyPjx0aD5Db3VudDwvdGg+PHRoPkRBVEE8L3RoPjx0aD5SZXYgQ291bnQ8L3RoPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+
VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+NDA8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yPC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+
Mzk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zPC90ZD48dGQ+MC4yMjAwPC90
ZD48dGQ+Mzg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40PC90ZD48dGQ+MC4y
MjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD41PC90ZD48
dGQ+MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD42
PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+MzM8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+MzI8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjMxPC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTE8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4z
MDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEyPC90ZD48dGQ+MC42NjU1PC90
ZD48dGQ+Mjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMzwvdGQ+PHRkPjAu
NzcwMDwvdGQ+PHRkPjI4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTQ8L3Rk
Pjx0ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4yNDwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MjM8L3RkPjwv
dHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjIy
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjA8L3RkPjx0ZD4xLjAwMDA8L3Rk
Pjx0ZD4yMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIxPC90ZD48dGQ+MS4w
MDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMjwvdGQ+
PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
MjM8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjE2PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4xNTwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+MTQ8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yODwvdGQ+PHRkPjAuNzcwMDwvdGQ+
PHRkPjEzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjk8L3RkPjx0ZD4wLjY2
NTU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjMwPC90ZD48
dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4z
MTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD44PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD43PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD42PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzY8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD41
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzc8L3RkPjx0ZD4wLjIyNTU8L3Rk
Pjx0ZD40PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzg8L3RkPjx0ZD4wLjIy
MDA8L3RkPjx0ZD4zPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzk8L3RkPjx0
ZD4wLjExNTU8L3RkPjx0ZD4yPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NDA8
L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0
ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKyAg
ICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9l
c24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRvIG1haW4g
ZnJhbWUuIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhl
cmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3
aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJs
ZV9yZWdpb24geworICAgIHdpZHRoOiA2ODBweDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGgg
eworICAgIHBhZGRpbmc6IDJweDsKK30KKworLnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7
CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisu
dGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisK
Ky5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91
bmQ6ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkxvYWQo
KSB7CisgICAgc2V0dXBUb3BMZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgZGl2VGFyZ2V0OwordmFyIHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBj
b250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAv
LyBUaGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VT
Y3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIGRp
dlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWco
IlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgZGl2IGJlZm9y
ZTogIiArIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjog
ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIGRpdiBhZnRlcjogIiArIGRpdlNjcm9s
bFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGRp
dlNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIlNjcm9sbGFibGUgZGl2
IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQo
IlNjcm9sbGFibGUgZGl2IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBp
ZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bGF5ZXJzJykuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwK
KyAgICAgICAgICAgIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMg
fCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQorCisg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7
CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0
aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBkaXZUYXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICBkaXZTY3JvbGxQb3NpdGlv
bkJlZm9yZSA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3JvbGwgdGhlICNzb3Vy
Y2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGRpdlRh
cmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGRpdlRhcmdldC5vZmZz
ZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdheSBm
cm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0
YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAg
ICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZ
ICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcs
ICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdl
bmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgc2V0VGlt
ZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgp
IHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50
Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVu
IHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91
c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwg
YW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Ny
b2xsIHRoZTxici8+IgorICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBkaXYuPGJyLz48YnIv
PiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93IG9mIEVORCBsYWJl
bHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2Nh
dGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBp
ZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8
ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAg
ICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAgICAgPGgzPlNjcm9sbGFibGUg
UmVnaW9uPC9oMz4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0nb3ZlcmZsb3cteTog
YXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuOyBtYXgtaGVpZ2h0OiA0ODVweDsnPgorICAgICAgICAg
ICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSIgc3R5bGU9J3dpZHRoOiA5OSUnPgorICAgICAgICAgICAg
ICAgIDx0cj48dGg+Q291bnQ8L3RoPjx0aD5EQVRBPC90aD48dGg+UmV2IENvdW50PC90aD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRP
UCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MTwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjQwPC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjM5
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzwvdGQ+PHRkPjAuMjIwMDwvdGQ+
PHRkPjM4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NDwvdGQ+PHRkPjAuMjI1
NTwvdGQ+PHRkPjM3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NTwvdGQ+PHRk
PjAuMzMwMDwvdGQ+PHRkPjM2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Njwv
dGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjM1PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+NzwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjM0PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+ODwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjMzPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+OTwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjMyPC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MTA8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4zMTwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjExPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MzA8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMjwvdGQ+PHRkPjAuNjY1NTwvdGQ+
PHRkPjI5PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTM8L3RkPjx0ZD4wLjc3
MDA8L3RkPjx0ZD4yODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE0PC90ZD48
dGQ+MC43NzU1PC90ZD48dGQ+Mjc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4x
NTwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjI2PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+MTY8L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4yNTwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPjE3PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MjQ8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4xODwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRkPjIzPC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTk8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4yMjwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIwPC90ZD48dGQ+MS4wMDAwPC90ZD48
dGQ+MjE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMTwvdGQ+PHRkPjEuMDAw
MDwvdGQ+PHRkPjIwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjI8L3RkPjx0
ZD4wLjk5OTk8L3RkPjx0ZD4xOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIz
PC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MTg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRy
Pjx0ZD4yNDwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjE3PC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MjU8L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4xNjwvdGQ+PC90cj4KKyAgICAg
ICAgICAgICAgICA8dHI+PHRkPjI2PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MTU8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNzwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjE0PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjg8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0
ZD4xMzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI5PC90ZD48dGQ+MC42NjU1
PC90ZD48dGQ+MTI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zMDwvdGQ+PHRk
PjAuNjYwMDwvdGQ+PHRkPjExPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzE8
L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4xMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjMyPC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+OTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjMzPC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+ODwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjM0PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+NzwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjM1PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+NjwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM2PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+NTwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM3PC90ZD48dGQ+MC4yMjU1PC90ZD48
dGQ+NDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM4PC90ZD48dGQ+MC4yMjAw
PC90ZD48dGQ+MzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM5PC90ZD48dGQ+
MC4xMTU1PC90ZD48dGQ+MjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjQwPC90
ZD48dGQ+MC4xMTAwPC90ZD48dGQ+MTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+
RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PC90cj4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNu
J3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hlZCB0byBtYWluIGZy
YW1lLiIpOworPC9zY3JpcHQ+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29lcyBoZXJl
PC9wPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndh
cmRzCisKK1Rlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFp
biBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gNTAwCitNb3VzZSBtb3ZlZCB0byAoMjgsIDU2NikK
K1BhZ2UgYmVmb3JlOiAwLCBJRnJhbWUgYmVmb3JlOiA0MTYKK1BhZ2UgYWZ0ZXI6ICAwLCBJRnJh
bWUgYWZ0ZXI6IDUzMQorUEFTUyBQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCiso
R3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAyMzI2LjAwKQorICAodmlzaWJsZSByZWN0
IDAuMDAsIDAuMDAgNzg1LjAwIHggNjAwLjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAo
Y2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAyMzI2
LjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAs
IDAuMDAgNzg1LjAwIHggNjAwLjAwKQorICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAg
ICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNzg1IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUg
NTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDIgeCA0KQor
ICAgICkKKyAgKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90
aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRs
ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRo
LWhhbmRsZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKK1B1
dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKworVGVzdHMgdGhhdCBpZnJhbWUgZG9l
c24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJv
dHRvbQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSA1
MDAKK01vdXNlIG1vdmVkIHRvICgyOCwgNTY2KQorUGFnZSBiZWZvcmU6IDAsIElGcmFtZSBiZWZv
cmU6IDQxNgorUGFnZSBhZnRlcjogIDAsIElGcmFtZSBhZnRlcjogNTMxCitQQVNTIFBhZ2UgZGlk
IG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KK0RvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBm
b3IgMCBvZiB0aGUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUu
MDAgMjM0MS4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDYwMC4wMCkK
KyAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgKGJvdW5kcyA3ODUuMDAgMjM0MS4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAx
KQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDYwMC4wMCkKKyAgICAg
IChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDc4
NSB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVmdCB0
aWxlIDAsIDAgdGlsZXMgZ3JpZCAyIHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1s
YXRjaGVkLWlmcmFtZS13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNo
ZWQtaWZyYW1lLXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVk
LWlmcmFtZS13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1XaGVlbEV2
ZW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK3ZhciB3aGVlbENvdW50ID0gMDsKK2Z1bmN0aW9uIG9uU2Nyb2xs
V2hlZWwoZXZ0KSB7CisgICAgd2hlZWxDb3VudCA9IHdoZWVsQ291bnQgKyAxOworfQorCitmdW5j
dGlvbiBvbkxvYWQoKSB7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVl
bCIsIG9uU2Nyb2xsV2hlZWwpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
Im9uTG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgaWZyYW1lVGFyZ2V0OwordmFyIHBhZ2VTY3Jv
bGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBj
b250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAv
LyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBh
Z2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFy
IGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1
bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIElGcmFtZSBiZWZvcmU6ICIgKyBpRnJhbWVTY3JvbGxQ
b3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkFm
dGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZl
bnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2Vp
dmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgZGVidWcoIkRvY3VtZW50IHdhcyBpbml0aWFsIHRh
cmdldCBmb3IgIiArIHdoZWVsQ291bnQgKyAiIG9mIHRoZSB3aGVlbCBldmVudHMuIik7CisKKyAg
ICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVu
dCwKKyAgICAgICAgICAgIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVD
VFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgfQor
CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3Qo
KSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBpZnJhbWVUYXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICB2YXIgaUZyYW1l
Qm9keSA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHk7CisgICAgaUZyYW1l
Qm9keS5zY3JvbGxUb3AgPSBpRnJhbWVCb2R5LnNjcm9sbEhlaWdodCAtIGlmcmFtZVRhcmdldC5j
bGllbnRIZWlnaHQgLSAxMDA7CisKKyAgICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGlG
cmFtZUJvZHkuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdl
IHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVUYXJnZXQub2Zm
c2V0TGVmdCArIDIwOworICAgIGRlYnVnKCJJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSAiICsgaWZy
YW1lVGFyZ2V0LmNsaWVudEhlaWdodCk7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdl
dC5vZmZzZXRUb3AgKyBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVl
bCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NY
LCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1l
CisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0
UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNl
dFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2
ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bh
cmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVy
IHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhl
IG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImluc2lkZSB0aGUgSUZyYW1lLCB0
aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0
aGUgSUZyYW1lIHRvIHRoZSBib3R0b20gKGFuZCBiZXlvbmQpLjxici8+IgorICAgICAgICAgICAg
KyAiPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIlRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Ny
b2xsIGZhciBlbm91Z2ggdG8gc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBidXQgdGhlIG1haW4g
cGFnZSBkb2VzIG5vdCBzY3JvbGwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBl
bmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50
IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHgiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9Imhl
aWdodDogMTAwcHgiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRz
CisgICAgPC9kaXY+CisgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQiIHN0eWxl
PSJib3JkZXI6c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDUwMHB4OyB3aWR0aDogNTAwcHg7IiAK
KyAgICAgc3JjPSAiZGF0YTp0ZXh0L2h0bWwsCisgICAgIDxkaXYgaWQ9J25vdFRvQmVTY3JvbGxl
ZCcgc3R5bGU9J2hlaWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+CisgICAgIFRPUCBUT1Ag
VE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIvPjxici8+
CisgICAgIFRoaXMgc2hvdWxkIHN0aWxsIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRl
ciB5b3Ugc2Nyb2xsIGRvd24KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAg
ICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIDxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgTk9UIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFt
ZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd248YnIvPgorICAgICA8YnIvPgorICAgICBFTkQgRU5EIEVO
RCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQKKyAgICAgPC9kaXY+Cisg
ICAgICIKKyAgICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7IgorICAgICA+CisgICAgPC9pZnJh
bWU+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4g
ZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9Imxh
eWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
aWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlm
cmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90
aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZl
bC0zLUV2ZW50cy8jZXZlbnRzLVdoZWVsRXZlbnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisKK3ZhciBpZnJhbWVUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwor
dmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQgPSA1Owor
CitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBJRnJhbWUgc2hvdWxk
IG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRp
b25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w
OworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ICsgIiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAg
ICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIElG
cmFtZSBhZnRlcjogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHBh
Z2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAg
ICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQor
ICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7
CisKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChk
b2N1bWVudCwKKyAgICAgICAgICAgIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lC
TEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7Cisg
ICAgfQorCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9s
bFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNj
cm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBpZnJh
bWVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICB2YXIg
aUZyYW1lQm9keSA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHk7CisgICAg
aUZyYW1lQm9keS5zY3JvbGxUb3AgPSBpRnJhbWVCb2R5LnNjcm9sbEhlaWdodCAtIGlmcmFtZVRh
cmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisKKyAgICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9y
ZSA9IGlGcmFtZUJvZHkuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVu
dGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVUYXJn
ZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRlYnVnKCJJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSAi
ICsgaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCk7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFt
ZVRhcmdldC5vZmZzZXRUb3AgKyBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9u
ZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUg
aUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiAr
IHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOwor
ICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVs
c2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMg
YmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxh
Y2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImluc2lkZSB0aGUgSUZy
YW1lLCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNj
cm9sbCB0aGUgSUZyYW1lIHRvIHRoZSBib3R0b20gKGFuZCBiZXlvbmQpLjxici8+IgorICAgICAg
ICAgICAgKyAiPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIlRoZSB0ZXN0IHBhc3NlcyBpZiB5
b3Ugc2Nyb2xsIGZhciBlbm91Z2ggdG8gc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBidXQgdGhl
IG1haW4gcGFnZSBkb2VzIG5vdCBzY3JvbGwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlv
bi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0i
cGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHgiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5
bGU9ImhlaWdodDogMTAwcHgiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93
bndhcmRzCisgICAgPC9kaXY+CisgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQi
IHN0eWxlPSJib3JkZXI6c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDUwMHB4OyB3aWR0aDogNTAw
cHg7IiAKKyAgICAgc3JjPSAiZGF0YTp0ZXh0L2h0bWwsCisgICAgIDxkaXYgaWQ9J25vdFRvQmVT
Y3JvbGxlZCcgc3R5bGU9J2hlaWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+CisgICAgIFRP
UCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIv
Pjxici8+CisgICAgIFRoaXMgc2hvdWxkIHN0aWxsIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFt
ZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd24KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
PgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIDxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgTk9UIGJlIHZpc2libGUgaW5zaWRlIHRo
ZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd248YnIvPgorICAgICA8YnIvPgorICAgICBFTkQg
RU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQKKyAgICAgPC9k
aXY+CisgICAgICIKKyAgICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7IgorICAgICA+CisgICAg
PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRv
IG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4KKzxwcmUg
aWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1z
Y3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
aWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJh
bWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzEgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKworVGVzdHMgdGhh
dCBpZnJhbWUgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitNb3VzZSBtb3ZlZCB0byAoMjgsIDY2KQorUGFnZSBiZWZvcmU6
IDAsIElGcmFtZSBiZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6ICAyODAsIElGcmFtZSBhZnRlcjogMAor
UEFTUyBJRnJhbWUgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVy
CisgIChib3VuZHMgNzg1LjAwIDIzMTEuMDApCisgICh2aXNpYmxlIHJlY3QgMC4wMCwgMjgwLjAw
IDc4NS4wMCB4IDYwMC4wMCkKKyAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgKGNoaWxkcmVuIDEK
KyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMjMxMS4wMCkKKyAgICAg
IChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1
LjAwIHggNjAwLjAwKQorICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNh
Y2hlIGNvdmVyYWdlIDAsIDAgNzg1IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEy
KQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDIgeCA0KQorICAgICkKKyAg
KQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
ZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRo
LWhhbmRsZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKK1B1
dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKworVGVzdHMgdGhhdCBpZnJhbWUgZG9l
c24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbAorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitNb3VzZSBtb3ZlZCB0byAoMjgsIDY2KQorUGFnZSBiZWZvcmU6IDAsIElGcmFtZSBi
ZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6ICAyODAsIElGcmFtZSBhZnRlcjogMAorUEFTUyBJRnJhbWUg
ZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KK0RvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdl
dCBmb3IgNCBvZiB0aGUgd2hlZWwgZXZlbnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3
ODUuMDAgMjMyNi4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNjAw
LjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAyMzI2LjAwKQorICAgICAgKGNvbnRlbnRzT3Bh
cXVlIDEpCisgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDI4MC4wMCA3ODUuMDAgeCA2MDAuMDAp
CisgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2Ug
MCwgMCA3ODUgeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9w
IGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMiB4IDQpCisgICAgKQorICApCispCisKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlm
cmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRz
LyNldmVudHMtV2hlZWxFdmVudCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgd2hlZWxDb3VudCA9IDA7Citm
dW5jdGlvbiBvblNjcm9sbFdoZWVsKGV2dCkgeworICAgIHdoZWVsQ291bnQgPSB3aGVlbENvdW50
ICsgMTsKK30KKworZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIm1vdXNld2hlZWwiLCBvblNjcm9sbFdoZWVsKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIGlmcmFtZVRhcmdl
dDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgaUZyYW1lU2Nyb2xsUG9zaXRp
b25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Ny
b2xsKCkgeworCisgICAgLy8gVGhlIElGcmFtZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQg
YWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Ny
b2xsVG9wOworICAgIHZhciBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1l
c1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBkZWJ1ZygiUGFnZSBi
ZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAi
ICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAg
IiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1l
U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZv
cmUgIT0gaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgdGVzdEZhaWxlZCgiSUZy
YW1lIGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNz
ZWQoIklGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgZGVidWco
IkRvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgIiArIHdoZWVsQ291bnQgKyAiIG9mIHRo
ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gaW50ZXJuYWxz
LmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwKKyAgICAgICAgICAgIGludGVybmFscy5MQVlFUl9U
UkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURF
U19USUxFX0NBQ0hFUyk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9
CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUg
bGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3A7CisgICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3aW5kb3cuZnJhbWVzWyd0
YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGlmcmFtZVRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIC8vIFNjcm9sbCB0aGUgI3Nv
dXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gaWZy
YW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFy
Z2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9s
bCBhd2F5IGZyb20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0
UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlG
cmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBz
dGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAg
ICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRv
cExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJl
dHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNl
IHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRo
ZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lw
ZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIElGcmFt
ZS48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cg
b2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAg
bWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisgICAgPGRpdiBp
ZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweCI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJl
IGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXQi
IG5hbWU9InRhcmdldCIgc3R5bGU9ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogNTAw
cHg7IHdpZHRoOiA1MDBweDsiIAorICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKKyAgICAgPGRp
diBpZD0nbm90VG9CZVNjcm9sbGVkJyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAw
cHg7Jz4KKyAgICAgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QIFRPUDxici8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBp
bnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bgorICAgICA8YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+CisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAg
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlz
aWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgIDxi
ci8+CisgICAgIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5E
IEVORAorICAgICA8L2Rpdj4KKyAgICAgIgorICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsi
CisgICAgID4KKyAgICA8L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgY29uc3Vt
ZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9ImxheWVy
cyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZy
YW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1h
aW5mcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL0RP
TS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLVdoZWVsRXZlbnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisKK3ZhciBpZnJhbWVUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlOwordmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRpbnVlQ291bnQg
PSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRoZSBJRnJhbWUg
c2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0
aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgaUZyYW1lU2Nyb2xs
UG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHkuc2Ny
b2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9u
QmVmb3JlICsgIiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
KTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciAr
ICIsIElGcmFtZSBhZnRlcjogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAg
aWYgKGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIklGcmFtZSBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7
CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJJRnJhbWUgZGlkIG5vdCByZWNlaXZlIHdo
ZWVsIGV2ZW50cy4iKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVf
SU5DTFVERVNfVklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJ
TEVfQ0FDSEVTKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwor
ZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZl
czoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRv
cDsKKyAgICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHdpbmRvdy5mcmFtZXNbJ3Rhcmdl
dCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNl
IHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVU
YXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQu
b2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3
YXkgZnJvbSB0aGUgSUZyYW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NY
LCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1l
CisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0
UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNl
dFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2
ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bh
cmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVy
IHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhl
IG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBh
Z2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRv
IHNjcm9sbCB0aGU8YnIvPiIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgSUZyYW1lLjxi
ci8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBvZiBF
TkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNz
YWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4K
KzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4Ij4KKyAgICA8ZGl2IGlkPSJz
b3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5k
IGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgbmFt
ZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBncmVlbjsgaGVpZ2h0OiA1MDBweDsg
d2lkdGg6IDUwMHB4OyIgCisgICAgIHNyYz0gImRhdGE6dGV4dC9odG1sLAorICAgICA8ZGl2IGlk
PSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxlPSdoZWlnaHQ6IDEwMDBweDsgd2lkdGg6IDEwMDBweDsn
PgorICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QPGJyLz48YnIvPgorICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2aXNpYmxlIGluc2lk
ZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duCisgICAgIDxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz4KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICA8YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgIFRoaXMgc2hvdWxkIE5PVCBiZSB2aXNpYmxl
IGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duPGJyLz4KKyAgICAgPGJyLz4K
KyAgICAgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5E
CisgICAgIDwvZGl2PgorICAgICAiCisgICAgIG9ubG9hZD0ic2V0dXBUb3BMZXZlbCgpOyIKKyAg
ICAgPgorICAgIDwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBjb25zdW1lIHdo
ZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCAiKTsKKzwvc2NyaXB0PgorPHByZSBpZD0ibGF5ZXJzIj5M
YXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3Qt
bGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1h
aW5mcmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorUHV0
IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBTZWxlY3QKKworCitU
ZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3Jv
bGwgaXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitN
b3VzZSBtb3ZlZCB0byAoMzAsIDEyNykKK1BhZ2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVmb3JlOiAw
CitQYWdlIGFmdGVyOiAgMjgwLCBzZWxlY3QgYWZ0ZXI6IDAKK1BBU1MgU2VsZWN0IGRpZCBub3Qg
cmVjZWl2ZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDIwMDguMDAg
MjMxMS4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQor
ICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDIwMDguMDAgMjMxMS4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAx
KQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAyODAuMDAgNzg1LjAwIHggNTg1LjAwKQorICAg
ICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAg
MjAwOCB4IDIwNDgpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICh0b3AgbGVm
dCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCA0IHggNCkKKyAgICApCisgICkKKykKKwpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACitQdXQgbW91c2UgaGVyZSBhbmQg
ZmxpY2sgZG93bndhcmRzCitTY3JvbGxhYmxlIFNlbGVjdAorCisKK1Rlc3RzIHRoYXQgYSBzZWxl
Y3QgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRv
IG1haW4gZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK01vdXNlIG1vdmVkIHRvICgz
MCwgMTI3KQorUGFnZSBiZWZvcmU6IDAsIHNlbGVjdCBiZWZvcmU6IDAKK1BhZ2UgYWZ0ZXI6ICAy
ODAsIHNlbGVjdCBhZnRlcjogMAorUEFTUyBTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4KK0RvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgNCBvZiB0aGUgd2hlZWwgZXZl
bnRzLgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyAyMDA4LjAwIDIzMjYuMDApCisgICh2aXNp
YmxlIHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgKGNvbnRlbnRzU2NhbGUg
MS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyAy
MDA4LjAwIDIzMjYuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxl
IHJlY3QgMC4wMCwgMjgwLjAwIDc4NS4wMCB4IDU4NS4wMCkKKyAgICAgIChjb250ZW50c1NjYWxl
IDEuMDApCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDIwMDggeCAyMDQ4KQorICAg
ICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVz
IGdyaWQgNCB4IDQpCisgICAgKQorICApCispCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJh
bWUtd2l0aC1oYW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFt
ZS13aXRoLWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJh
bWUtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3JvbGxhYmxlX3JlZ2lv
biB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJsZSB0aCB7CisgICAg
cGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDogMjBweDsKKyAgICB0
ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9CisKKy50YWJsZSB0
cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworLnNjcm9s
bGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2Yz
ZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB3aGVlbENvdW50ID0gMDsKK2Z1
bmN0aW9uIG9uU2Nyb2xsV2hlZWwoZXZ0KSB7CisgICAgd2hlZWxDb3VudCA9IHdoZWVsQ291bnQg
KyAxOworfQorCitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigibW91c2V3aGVlbCIsIG9uU2Nyb2xsV2hlZWwpOworICAgIHNldHVwVG9wTGV2ZWwoKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlw
dD4KKwordmFyIHNlbGVjdFRhcmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2
YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisK
K2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8gVGhlIHNlbGVjdCBzaG91bGQg
bm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRl
ciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlv
bkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9y
ZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBz
ZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsg
cGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBzZWxlY3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3Jv
bGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSAh
PSBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJTZWxlY3Qg
Y29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgi
U2VsZWN0IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICBkZWJ1ZygiRG9j
dW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhlIHdo
ZWVsIGV2ZW50cy4iKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVf
SU5DTFVERVNfVklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJ
TEVfQ0FDSEVTKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwor
ZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZl
czoKKyAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRv
cDsKKworICAgIHNlbGVjdFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQn
KTsKKworICAgIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlID0gc2VsZWN0VGFyZ2V0LnNjcm9s
bFRvcDsKKworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3Rh
cmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gc2VsZWN0VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsK
KyAgICB2YXIgc3RhcnRQb3NZID0gc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGln
aHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQorICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBz
dXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3Zl
ZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2Jl
Z2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xs
LCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQo
c2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2Nh
dGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1l
c3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5p
bm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRy
ZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisg
ICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1v
dXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgZG93bjxici8+IgorICAg
ICAgICAgICAgKyAicGFzdCB0aGUgc2VsZWN0VGFyZ2V0Ljxici8+PGJyLz4iCisgICAgICAgICAg
ICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlICdjb250ZW50MjEnIGxhYmVsIGlmIHRoaXMgdGVz
dCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hp
bGQobWVzc2FnZSk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5
bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0ic291cmNl
IiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1dCBtb3Vz
ZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICAgICAgPGgzPlNjcm9sbGFibGUgU2VsZWN0
PC9oMz4KKyAgICAgICAgICAgIDxzZWxlY3QgaWQ9InRhcmdldCIgY2xhc3M9InNjcm9sbGFibGVf
c2VsZWN0IiBzaXplPSI4Ij4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxPC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Mjwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQ0PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50NTwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDY8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQ3PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50ODwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDk8L29w
dGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMDwvb3B0aW9uPgorICAgICAg
ICAgICAgICAgIDxvcHRpb24+Y29udGVudDExPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9w
dGlvbj5jb250ZW50MTI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQx
Mzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE0PC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTU8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPmNvbnRlbnQxNjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29u
dGVudDE3PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTg8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxOTwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDIwPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50MjE8L29wdGlvbj4KKyAgICAgICAgICAgIDwvc2VsZWN0PgorICAgICAgICA8L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBjb25zdW1lIHdoZWVs
IGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuIik7Cis8L3Njcmlw
dD4KKzxwcmUgaWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRj
aGVkLW1haW5mcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQ5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24g
eworICAgIHdpZHRoOiA2ODBweDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBh
ZGRpbmc6IDJweDsKK30KKworLnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4
dC1hbGlnbjogbGVmdDsKKyAgICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6
bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxh
YmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2Yz
ZjM7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAg
c2V0dXBUb3BMZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9u
TG9hZCgpOyI+Cis8c2NyaXB0PgorCit2YXIgc2VsZWN0VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQ
b3NpdGlvbkJlZm9yZTsKK3ZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250
aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBU
aGUgc2VsZWN0IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VT
Y3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNl
bGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAg
ZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2Vs
ZWN0IGJlZm9yZTogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1Zygi
UGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRl
cjogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHNlbGVjdFNjcm9s
bFBvc2l0aW9uQmVmb3JlICE9IHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRl
c3RGYWlsZWQoIlNlbGVjdCBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAg
ICAgICB0ZXN0UGFzc2VkKCJTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsK
KworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRv
Y3VtZW50LAorICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJM
RV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKKyAg
ICB9CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xs
VGVzdCgpIHsKKyAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICBwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIHNlbGVj
dFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgIHNlbGVj
dFNjcm9sbFBvc2l0aW9uQmVmb3JlID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8v
IFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIg
c3RhcnRQb3NYID0gc2VsZWN0VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICB2YXIgc3RhcnRQ
b3NZID0gc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4g
b25lIHdoZWVsIHNjcm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQorICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0
IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0
UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywg
J25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdl
bmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitm
dW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAw
MCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+
VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5
IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJh
dCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEg
dHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgZG93bjxici8+IgorICAgICAgICAgICAgKyAicGFz
dCB0aGUgc2VsZWN0VGFyZ2V0Ljxici8+PGJyLz4iCisgICAgICAgICAgICArICJZb3Ugc2hvdWxk
IG5vdCBzZWUgdGhlICdjb250ZW50MjEnIGxhYmVsIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVs
LjwvcD4iOworICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7Cisg
ICAgfQorfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAw
MHB4OyB3aWR0aDogMjAwMHB4OyI+CisgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0
OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+CisgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGlj
ayBkb3dud2FyZHMKKyAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9y
ZWdpb24iPgorICAgICAgICAgICAgPGgzPlNjcm9sbGFibGUgU2VsZWN0PC9oMz4KKyAgICAgICAg
ICAgIDxzZWxlY3QgaWQ9InRhcmdldCIgY2xhc3M9InNjcm9sbGFibGVfc2VsZWN0IiBzaXplPSI4
Ij4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxPC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50Mjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ0PC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50NTwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDY8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQ3PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50ODwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDk8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDExPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTI8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMzwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE0PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MTU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQxNjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE3PC9vcHRpb24+
CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTg8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQxOTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDIwPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MjE8L29w
dGlvbj4KKyAgICAgICAgICAgIDwvc2VsZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4K
KzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNj
cm9sbCBpcyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuIik7Cis8L3NjcmlwdD4KKzxwcmUgaWQ9Imxh
eWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
c2VsZWN0LWxhdGNoZWQtc2VsZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxh
dGNoZWQtc2VsZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1z
ZWxlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKK1B1dCBt
b3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFibGUgU2VsZWN0CisKKworVGVz
dHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUg
d2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2RpdiBk
aXNwbGF5IGhlaWdodCA9IDExMQorTW91c2UgbW92ZWQgdG8gKDMwLCAyMzgpCitQYWdlIGJlZm9y
ZTogMCwgc2VsZWN0IGJlZm9yZTogNzAKK1BhZ2UgYWZ0ZXI6ICAwLCBzZWxlY3QgYWZ0ZXI6IDE4
MgorUEFTUyBQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCisoR3JhcGhpY3NMYXll
cgorICAoYm91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAw
IDc4NS4wMCB4IDU4NS4wMCkKKyAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKKyAgKGNoaWxkcmVuIDEK
KyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyAyMDA4LjAwIDIzMjYuMDApCisgICAg
ICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUu
MDAgeCA1ODUuMDApCisgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQorICAgICAgKHRpbGUgY2Fj
aGUgY292ZXJhZ2UgMCwgMCAyMDA4IHggMjA0OCkKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEy
KQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDQgeCA0KQorICAgICkKKyAg
KQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
ZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3
aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKK1B1dCBtb3VzZSBo
ZXJlIGFuZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFibGUgU2VsZWN0CisKKworVGVzdHMgdGhh
dCBhIHNlbGVjdCBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBz
Y3JvbGxpbmcgYXQgYm90dG9tCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2RpdiBkaXNwbGF5
IGhlaWdodCA9IDExMQorTW91c2UgbW92ZWQgdG8gKDMwLCAyMzgpCitQYWdlIGJlZm9yZTogMCwg
c2VsZWN0IGJlZm9yZTogNzAKK1BhZ2UgYWZ0ZXI6ICAwLCBzZWxlY3QgYWZ0ZXI6IDE4MgorUEFT
UyBQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCitEb2N1bWVudCB3YXMgaW5pdGlh
bCB0YXJnZXQgZm9yIDQgb2YgdGhlIHdoZWVsIGV2ZW50cy4KKyhHcmFwaGljc0xheWVyCisgIChi
b3VuZHMgMjAwOC4wMCAyMzQxLjAwKQorICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAw
IHggNTg1LjAwKQorICAoY29udGVudHNTY2FsZSAxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChH
cmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDIwMDguMDAgMjM0MS4wMCkKKyAgICAgIChjb250
ZW50c09wYXF1ZSAxKQorICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4
NS4wMCkKKyAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCisgICAgICAodGlsZSBjYWNoZSBjb3Zl
cmFnZSAwLCAwIDIwMDggeCAyMDQ4KQorICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAg
ICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgNCB4IDQpCisgICAgKQorICApCispCisK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNj
cm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
Ky5zY3JvbGxhYmxlX3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQs
IC50YWJsZSB0aCB7CisgICAgcGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhl
aWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJv
bmc7Cit9CisKKy50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2Yz
ZjNmMzsKK30KKworLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7Cisg
ICAgYmFja2dyb3VuZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB3
aGVlbENvdW50ID0gMDsKK2Z1bmN0aW9uIG9uU2Nyb2xsV2hlZWwoZXZ0KSB7CisgICAgd2hlZWxD
b3VudCA9IHdoZWVsQ291bnQgKyAxOworfQorCitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIG9uU2Nyb2xsV2hlZWwpOworICAg
IHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJv
bkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIHNlbGVjdFRhcmdldDsKK3ZhciBwYWdlU2Nyb2xs
UG9zaXRpb25CZWZvcmU7Cit2YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgY29u
dGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworCisgICAgLy8g
VGhlIHBhZ2Ugc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgc2Vs
ZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICBk
ZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBzZWxl
Y3QgYmVmb3JlOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQ
YWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgc2VsZWN0IGFmdGVy
OiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAocGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFp
bGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRl
c3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIGRl
YnVnKCJEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENvdW50ICsgIiBv
ZiB0aGUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVy
bmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5hbHMuTEFZ
RVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5D
TFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZy
YW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHku
c2Nyb2xsVG9wOworCisgICAgc2VsZWN0VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RhcmdldCcpOworICAgIHNlbGVjdFRhcmdldC5zY3JvbGxUb3AgPSBzZWxlY3RUYXJnZXQuc2Ny
b2xsSGVpZ2h0IC0gc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKworICAgIHNlbGVj
dFNjcm9sbFBvc2l0aW9uQmVmb3JlID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8v
IFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIg
c3RhcnRQb3NYID0gc2VsZWN0VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICBkZWJ1ZygiZGl2
IGRpc3BsYXkgaGVpZ2h0ID0gIiArIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQpOworICAgIHZh
ciBzdGFydFBvc1kgPSBzZWxlY3RUYXJnZXQub2Zmc2V0VG9wICsgc2VsZWN0VGFyZ2V0LmNsaWVu
dEhlaWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFy
ZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiAr
IHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25v
bmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFu
Z2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRp
bnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9u
ZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOwor
fQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVz
dCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwg
PSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1h
bnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAg
ICArICJpbnNpZGUgdGhlIHNlbGVjdCBib3gsIGFuZCBzY3JvbGwgbmVhciAoYnV0IG5vdCBBVCkg
dGhlIGJvdHRvbSBvZiB0aGUgcmFuZ2UuIFVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmlu
Z2VyPGJyLz4iCisgICAgICAgICAgICArICJzd2lwZSB0byBzY3JvbGwgdGhyb3VnaCB0aGUgcmVz
dCBvZiB0aGUgc2VsZWN0IG9wdGlvbnMuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBz
aG91bGQgbm90IHNlZSB0aGUgcGFnZSBwb3NpdGlvbiBjaGFuZ2UgaWYgdGhpcyB0ZXN0IGlzIHN1
Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNz
YWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVp
Z2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxl
PSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUg
YW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3Jv
bGxhYmxlX3JlZ2lvbiI+CisgICAgICAgICAgICA8aDM+U2Nyb2xsYWJsZSBTZWxlY3Q8L2gzPgor
ICAgICAgICAgICAgPHNlbGVjdCBpZD0idGFyZ2V0IiBjbGFzcz0ic2Nyb2xsYWJsZV9zZWxlY3Qi
IHNpemU9IjgiPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyPC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50Mzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVu
dDQ8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ1PC9vcHRpb24+Cisg
ICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Njwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQ4PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50OTwvb3B0aW9uPgor
ICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEwPC9vcHRpb24+CisgICAgICAgICAgICAg
ICAgPG9wdGlvbj5jb250ZW50MTE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNv
bnRlbnQxMjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEzPC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTQ8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDE2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTc8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxODwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE5PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MjA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQyMTwvb3B0aW9uPgorICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvZGl2PgorICAg
IDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRv
IG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4KKzxwcmUg
aWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1z
Y3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRj
aGVkLXNlbGVjdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAgIHdpZHRoOiA2ODBw
eDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRpbmc6IDJweDsKK30KKwor
LnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAg
ICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgewor
ICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246
bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgc2V0dXBUb3BMZXZlbCgpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2NyaXB0
PgorCit2YXIgc2VsZWN0VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3Zh
ciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKwor
ZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgcGFnZSBzaG91bGQgbm90
IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFm
dGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTog
IiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBzZWxl
Y3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFn
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBzZWxlY3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3JvbGxQ
b3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFn
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQg
d2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQg
bm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9
IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCisgICAgICAgICAgICBpbnRlcm5h
bHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBv
dXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wOworCisgICAgc2VsZWN0VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RhcmdldCcpOworICAgIHNlbGVjdFRhcmdldC5zY3JvbGxUb3AgPSBzZWxlY3RUYXJn
ZXQuc2Nyb2xsSGVpZ2h0IC0gc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKworICAg
IHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKwor
ICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAg
ICB2YXIgc3RhcnRQb3NYID0gc2VsZWN0VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICBkZWJ1
ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0gIiArIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQpOwor
ICAgIHZhciBzdGFydFBvc1kgPSBzZWxlY3RUYXJnZXQub2Zmc2V0VG9wICsgc2VsZWN0VGFyZ2V0
LmNsaWVudEhlaWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJl
IHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0
byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2Fu
JywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScs
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAx
MDApOworfQorCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Ny
b2xsVGVzdCwgMTAwMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlv
biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3Nh
Z2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5l
ckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUu
IFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAg
ICAgICAgICArICJpbnNpZGUgdGhlIHNlbGVjdCBib3gsIGFuZCBzY3JvbGwgbmVhciAoYnV0IG5v
dCBBVCkgdGhlIGJvdHRvbSBvZiB0aGUgcmFuZ2UuIFVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0
d28tZmluZ2VyPGJyLz4iCisgICAgICAgICAgICArICJzd2lwZSB0byBzY3JvbGwgdGhyb3VnaCB0
aGUgcmVzdCBvZiB0aGUgc2VsZWN0IG9wdGlvbnMuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsg
IllvdSBzaG91bGQgbm90IHNlZSB0aGUgcGFnZSBwb3NpdGlvbiBjaGFuZ2UgaWYgdGhpcyB0ZXN0
IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGls
ZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHls
ZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2Ui
IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNl
IGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNz
PSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAgICAgICAgICA8aDM+U2Nyb2xsYWJsZSBTZWxlY3Q8
L2gzPgorICAgICAgICAgICAgPHNlbGVjdCBpZD0idGFyZ2V0IiBjbGFzcz0ic2Nyb2xsYWJsZV9z
ZWxlY3QiIHNpemU9IjgiPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyPC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50Mzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDQ8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ1PC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Njwvb3B0aW9uPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQ4PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50OTwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEwPC9vcHRpb24+CisgICAgICAg
ICAgICAgICAgPG9wdGlvbj5jb250ZW50MTE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0
aW9uPmNvbnRlbnQxMjwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEz
PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTQ8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNTwvb3B0aW9uPgorICAgICAgICAgICAgICAg
IDxvcHRpb24+Y29udGVudDE2PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250
ZW50MTc8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxODwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE5PC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50MjA8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQyMTwvb3B0aW9uPgorICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZl
bnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4K
KzxwcmUgaWQ9ImxheWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8L3A+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Ny
b2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
c2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNjAgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMK
K1Njcm9sbGFibGUgUmVnaW9uCisKK0NvdW50CURBVEEJUmV2IENvdW50CitUT1AgVE9QIFRPUCBU
T1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAorMQkwLjExMDAJ
NDAKKzIJMC4xMTU1CTM5CiszCTAuMjIwMAkzOAorNAkwLjIyNTUJMzcKKzUJMC4zMzAwCTM2Cis2
CTAuMzM1NQkzNQorNwkwLjQ0MDAJMzQKKzgJMC40NDU1CTMzCis5CTAuNTUwMAkzMgorMTAJMC41
NTU1CTMxCisxMQkwLjY2MDAJMzAKKzEyCTAuNjY1NQkyOQorMTMJMC43NzAwCTI4CisxNAkwLjc3
NTUJMjcKKzE1CTAuODgwMAkyNgorMTYJMC44ODU1CTI1CisxNwkwLjk5MDAJMjQKKzE4CTAuOTk1
NQkyMworMTkJMC45OTk5CTIyCisyMAkxLjAwMDAJMjEKKzIxCTEuMDAwMAkyMAorMjIJMC45OTk5
CTE5CisyMwkwLjk5NTUJMTgKKzI0CTAuOTkwMAkxNworMjUJMC44ODU1CTE2CisyNgkwLjg4MDAJ
MTUKKzI3CTAuNzc1NQkxNAorMjgJMC43NzAwCTEzCisyOQkwLjY2NTUJMTIKKzMwCTAuNjYwMAkx
MQorMzEJMC41NTU1CTEwCiszMgkwLjU1MDAJOQorMzMJMC40NDU1CTgKKzM0CTAuNDQwMAk3Cisz
NQkwLjMzNTUJNgorMzYJMC4zMzAwCTUKKzM3CTAuMjI1NQk0CiszOAkwLjIyMDAJMworMzkJMC4x
MTU1CTIKKzQwCTAuMTEwMAkxCitFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVORCBF
TkQJRU5EIEVORCBFTkQgRU5EIEVORAorVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNu
J3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0
b20KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorZGl2IGRpc3BsYXkgaGVpZ2h0ID0gNDg1CitN
b3VzZSBtb3ZlZCB0byAoMjgsIDYxMCkKK1BhZ2UgYmVmb3JlOiAwLCBkaXYgYmVmb3JlOiA0NTEK
K1BhZ2UgYWZ0ZXI6ICAwLCBkaXYgYWZ0ZXI6IDQ1MQorUEFTUyBQYWdlIGRpZCBub3QgcmVjZWl2
ZSB3aGVlbCBldmVudHMuCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Nj
cm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9s
bGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5zY3Jv
bGxhYmxlX3JlZ2lvbiB7CisgICAgd2lkdGg6IDY4MHB4OworfQorCisudGFibGUgdGQsIC50YWJs
ZSB0aCB7CisgICAgcGFkZGluZzogMnB4OworfQorCisudGFibGUgdGggeworICAgIGhlaWdodDog
MjBweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Cit9
CisKKy50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZDogI2YzZjNmMzsK
K30KKworLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CisgICAgYmFj
a2dyb3VuZDogI2YzZjNmMzsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9u
IG9uTG9hZCgpIHsKKyAgICBzZXR1cFRvcExldmVsKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKzxzY3JpcHQ+CisKK3ZhciBkaXZUYXJnZXQ7Cit2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3Jl
OwordmFyIGNvbnRpbnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsK
KworICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAg
ICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAg
ICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBk
aXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOworICAgIGRlYnVnKCJQYWdl
IGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsg
ZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7CisKKyAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVkKCJQYWdl
IHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQo
IlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3
aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRv
Y3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RhcmdldCcpOworICAgIGRpdlRhcmdldC5zY3JvbGxUb3AgPSBkaXZUYXJnZXQu
c2Nyb2xsSGVpZ2h0IC0gZGl2VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKworICAgIGRpdlNj
cm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIC8vIFNjcm9s
bCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQ
b3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICBkZWJ1ZygiZGl2IGRpc3BsYXkg
aGVpZ2h0ID0gIiArIGRpdlRhcmdldC5jbGllbnRIZWlnaHQpOworICAgIHZhciBzdGFydFBvc1kg
PSBkaXZUYXJnZXQub2Zmc2V0VG9wICsgZGl2VGFyZ2V0LmNsaWVudEhlaWdodCAtIDQyOyAvLyBP
bmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0
YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhl
IGlGcmFtZQorICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIg
KyBzdGFydFBvc1kgKyAiKSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVl
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsK
KyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworfQorCitmdW5jdGlvbiBzZXR1
cFRvcExldmVsKCkgeworCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdwYXJlbnQnKTsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlz
IGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBs
YWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICArICJhdCB0aGUgdG9wIG9m
IHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBz
d2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIGRp
di48YnIvPjxici8+IgorICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cg
b2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAg
bWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBw
eDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1
MDBweDsiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgorICAgICAgICA8aDM+
U2Nyb2xsYWJsZSBSZWdpb248L2gzPgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdv
dmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWlnaHQ6IDQ4NXB4Oyc+
CisgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIiBzdHlsZT0nd2lkdGg6IDk5JSc+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0aD5Db3VudDwvdGg+PHRoPkRBVEE8L3RoPjx0aD5SZXYgQ291
bnQ8L3RoPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9Q
PC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8
L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+MC4xMTAwPC90ZD48
dGQ+NDA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yPC90ZD48dGQ+MC4xMTU1
PC90ZD48dGQ+Mzk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4zPC90ZD48dGQ+
MC4yMjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD40PC90
ZD48dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD41PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+CisgICAgICAgICAg
ICAgICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3RkPjwvdHI+CisgICAg
ICAgICAgICAgICAgPHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+MzM8L3RkPjwvdHI+
CisgICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+MzI8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRk
PjMxPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTE8L3RkPjx0ZD4wLjY2MDA8
L3RkPjx0ZD4zMDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjEyPC90ZD48dGQ+
MC42NjU1PC90ZD48dGQ+Mjk8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMzwv
dGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjI4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MTQ8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3RkPjx0ZD4yNDwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+
MjM8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+PHRkPjAuOTk5OTwv
dGQ+PHRkPjIyPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjA8L3RkPjx0ZD4x
LjAwMDA8L3RkPjx0ZD4yMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIxPC90
ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4yMjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MjM8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8L3RkPjwvdHI+Cisg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjE2PC90ZD48
L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4x
NTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48dGQ+MC43NzU1PC90
ZD48dGQ+MTQ8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yODwvdGQ+PHRkPjAu
NzcwMDwvdGQ+PHRkPjEzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjk8L3Rk
Pjx0ZD4wLjY2NTU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjMwPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAg
PHRyPjx0ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD44PC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0ZD43PC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0
ZD42PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzY8L3RkPjx0ZD4wLjMzMDA8
L3RkPjx0ZD41PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzc8L3RkPjx0ZD4w
LjIyNTU8L3RkPjx0ZD40PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzg8L3Rk
Pjx0ZD4wLjIyMDA8L3RkPjx0ZD4zPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+
Mzk8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4yPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0
cj48dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90ZD48L3RyPgorICAgICAgICAgICAg
ICAgIDx0cj48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBF
TkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48L3RyPgorICAgICAgICAgICAgPC90
YWJsZT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJs
ZSBkaXYgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xs
aW5nIGF0IGJvdHRvbSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRj
aGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
c2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3du
d2FyZHMKK1Njcm9sbGFibGUgUmVnaW9uCisKK0NvdW50CURBVEEJUmV2IENvdW50CitUT1AgVE9Q
IFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAorMQkw
LjExMDAJNDAKKzIJMC4xMTU1CTM5CiszCTAuMjIwMAkzOAorNAkwLjIyNTUJMzcKKzUJMC4zMzAw
CTM2Cis2CTAuMzM1NQkzNQorNwkwLjQ0MDAJMzQKKzgJMC40NDU1CTMzCis5CTAuNTUwMAkzMgor
MTAJMC41NTU1CTMxCisxMQkwLjY2MDAJMzAKKzEyCTAuNjY1NQkyOQorMTMJMC43NzAwCTI4Cisx
NAkwLjc3NTUJMjcKKzE1CTAuODgwMAkyNgorMTYJMC44ODU1CTI1CisxNwkwLjk5MDAJMjQKKzE4
CTAuOTk1NQkyMworMTkJMC45OTk5CTIyCisyMAkxLjAwMDAJMjEKKzIxCTEuMDAwMAkyMAorMjIJ
MC45OTk5CTE5CisyMwkwLjk5NTUJMTgKKzI0CTAuOTkwMAkxNworMjUJMC44ODU1CTE2CisyNgkw
Ljg4MDAJMTUKKzI3CTAuNzc1NQkxNAorMjgJMC43NzAwCTEzCisyOQkwLjY2NTUJMTIKKzMwCTAu
NjYwMAkxMQorMzEJMC41NTU1CTEwCiszMgkwLjU1MDAJOQorMzMJMC40NDU1CTgKKzM0CTAuNDQw
MAk3CiszNQkwLjMzNTUJNgorMzYJMC4zMzAwCTUKKzM3CTAuMjI1NQk0CiszOAkwLjIyMDAJMwor
MzkJMC4xMTU1CTIKKzQwCTAuMTEwMAkxCitFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5E
IEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVORAorVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2
IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hlZCB0byBt
YWluIGZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitNb3VzZSBtb3ZlZCB0byAoMjgs
IDEyNSkKK1BhZ2UgYmVmb3JlOiAwLCBkaXYgYmVmb3JlOiAwCitQYWdlIGFmdGVyOiAgMzIwLCBk
aXYgYWZ0ZXI6IDAKK1BBU1MgU2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4KKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Nj
cm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Ny
b2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorLnNjcm9sbGFibGVfcmVnaW9uIHsKKyAgICB3aWR0aDogNjgwcHg7Cit9CisKKy50YWJsZSB0
ZCwgLnRhYmxlIHRoIHsKKyAgICBwYWRkaW5nOiAycHg7Cit9CisKKy50YWJsZSB0aCB7CisgICAg
aGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgZm9udC13ZWlnaHQ6IHN0
cm9uZzsKK30KKworLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3JvdW5kOiAj
ZjNmM2YzOworfQorCisuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsK
KyAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIHNldHVwVG9wTGV2ZWwoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorPHNjcmlwdD4KKwordmFyIGRpdlRh
cmdldDsKK3ZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cit2YXIgZGl2U2Nyb2xsUG9zaXRp
b25CZWZvcmU7Cit2YXIgY29udGludWVDb3VudCA9IDU7CisKK2Z1bmN0aW9uIGNoZWNrRm9yU2Ny
b2xsKCkgeworCisgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxs
LgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xs
VG9wOworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRv
cDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9y
ZSArICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVi
dWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0
ZXI6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChkaXZTY3JvbGxQb3Np
dGlvbkJlZm9yZSAhPSBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICB0ZXN0RmFpbGVk
KCJTY3JvbGxhYmxlIGRpdiBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAg
ICAgICB0ZXN0UGFzc2VkKCJTY3JvbGxhYmxlIGRpdiBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZl
bnRzLiIpOworCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNj
cm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFn
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBk
aXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICBkaXZT
Y3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAvLyBTY3Jv
bGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0
UG9zWCA9IGRpdlRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGRp
dlRhcmdldC5vZmZzZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBz
Y3JvbGwgYXdheSBmcm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhz
dGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRo
ZSBpRnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAi
ICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbics
IHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7
CisgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0
dXBUb3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBp
cyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBw
bGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBv
ZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIg
c3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+IgorICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBk
aXYuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93
IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAg
IG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2Ny
aXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAw
cHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDog
NTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAgICAgPGgz
PlNjcm9sbGFibGUgUmVnaW9uPC9oMz4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0n
b3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuOyBtYXgtaGVpZ2h0OiA0ODVweDsn
PgorICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSIgc3R5bGU9J3dpZHRoOiA5OSUnPgor
ICAgICAgICAgICAgICAgIDx0cj48dGg+Q291bnQ8L3RoPjx0aD5EQVRBPC90aD48dGg+UmV2IENv
dW50PC90aD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+VE9QIFRPUCBUT1AgVE9QIFRP
UDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9Q
PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTwvdGQ+PHRkPjAuMTEwMDwvdGQ+
PHRkPjQwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MjwvdGQ+PHRkPjAuMTE1
NTwvdGQ+PHRkPjM5PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MzwvdGQ+PHRk
PjAuMjIwMDwvdGQ+PHRkPjM4PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+NDwv
dGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjM3PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+NTwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjM2PC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+NjwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjM1PC90ZD48L3RyPgorICAgICAgICAg
ICAgICAgIDx0cj48dGQ+NzwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjM0PC90ZD48L3RyPgorICAg
ICAgICAgICAgICAgIDx0cj48dGQ+ODwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjMzPC90ZD48L3Ry
PgorICAgICAgICAgICAgICAgIDx0cj48dGQ+OTwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjMyPC90
ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTA8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0
ZD4zMTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjExPC90ZD48dGQ+MC42NjAw
PC90ZD48dGQ+MzA8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMjwvdGQ+PHRk
PjAuNjY1NTwvdGQ+PHRkPjI5PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTM8
L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4yODwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+
PHRkPjE0PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+Mjc8L3RkPjwvdHI+CisgICAgICAgICAgICAg
ICAgPHRyPjx0ZD4xNTwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjI2PC90ZD48L3RyPgorICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MTY8L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4yNTwvdGQ+PC90cj4K
KyAgICAgICAgICAgICAgICA8dHI+PHRkPjE3PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MjQ8L3Rk
PjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4xODwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRk
PjIzPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+MTk8L3RkPjx0ZD4wLjk5OTk8
L3RkPjx0ZD4yMjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjIwPC90ZD48dGQ+
MS4wMDAwPC90ZD48dGQ+MjE8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMTwv
dGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIwPC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48
dGQ+MjI8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4xOTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAg
ICA8dHI+PHRkPjIzPC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MTg8L3RkPjwvdHI+CisgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4yNDwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjE3PC90ZD48L3RyPgor
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MjU8L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4xNjwvdGQ+
PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI2PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+
MTU8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNzwvdGQ+PHRkPjAuNzc1NTwv
dGQ+PHRkPjE0PC90ZD48L3RyPgorICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjg8L3RkPjx0ZD4w
Ljc3MDA8L3RkPjx0ZD4xMzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjI5PC90
ZD48dGQ+MC42NjU1PC90ZD48dGQ+MTI8L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgPHRyPjx0
ZD4zMDwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjExPC90ZD48L3RyPgorICAgICAgICAgICAgICAg
IDx0cj48dGQ+MzE8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4xMDwvdGQ+PC90cj4KKyAgICAgICAg
ICAgICAgICA8dHI+PHRkPjMyPC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+OTwvdGQ+PC90cj4KKyAg
ICAgICAgICAgICAgICA8dHI+PHRkPjMzPC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+ODwvdGQ+PC90
cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM0PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+Nzwv
dGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM1PC90ZD48dGQ+MC4zMzU1PC90ZD48
dGQ+NjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM2PC90ZD48dGQ+MC4zMzAw
PC90ZD48dGQ+NTwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM3PC90ZD48dGQ+
MC4yMjU1PC90ZD48dGQ+NDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRkPjM4PC90
ZD48dGQ+MC4yMjAwPC90ZD48dGQ+MzwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8dHI+PHRk
PjM5PC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+MjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICA8
dHI+PHRkPjQwPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+MTwvdGQ+PC90cj4KKyAgICAgICAgICAg
ICAgICA8dHI+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQg
RU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PC90cj4KKyAgICAgICAgICAgIDwv
dGFibGU+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHNjcm9sbGFi
bGUgZGl2IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hl
ZCB0byBtYWluIGZyYW1lLiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFt
ZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3Qvc2Nyb2xsaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBk
b3dud2FyZHMKKworVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0
byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSA1MDAKK01vdXNlIG1vdmVkIHRvICgyOCwg
NTY2KQorUGFnZSBiZWZvcmU6IDAsIElGcmFtZSBiZWZvcmU6IDQxNgorUGFnZSBhZnRlcjogIDAs
IElGcmFtZSBhZnRlcjogNDE2CitQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50
cy4KKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9s
bC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xs
aW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2
ZW50cy1XaGVlbEV2ZW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCit2YXIg
aWZyYW1lVGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBpRnJhbWVT
Y3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsKKworZnVuY3Rpb24g
Y2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBz
Y3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1l
bnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3
aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKworICAgIGRl
YnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIElGcmFt
ZSBiZWZvcmU6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBh
Z2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6
ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9z
aXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWls
ZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAg
Ly8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBpZnJhbWVUYXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICB2YXIgaUZyYW1lQm9keSA9IHdp
bmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHk7CisgICAgaUZyYW1lQm9keS5zY3Jv
bGxUb3AgPSBpRnJhbWVCb2R5LnNjcm9sbEhlaWdodCAtIGlmcmFtZVRhcmdldC5jbGllbnRIZWln
aHQgLSAxMDA7CisKKyAgICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGlGcmFtZUJvZHku
c2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRo
ZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVUYXJnZXQub2Zmc2V0TGVmdCAr
IDIwOworICAgIGRlYnVnKCJJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSAiICsgaWZyYW1lVGFyZ2V0
LmNsaWVudEhlaWdodCk7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRU
b3AgKyBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJl
Zm9yZSBlbmQuCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBv
c1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVi
dWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIp
Iik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9u
ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQn
LCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRp
bnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQo
Y2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisK
KyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAg
ICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2
YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwor
ICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
ICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRl
ciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBv
aW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImluc2lkZSB0aGUgSUZyYW1lLCB0aGVuIHVzZSB0
aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGUgSUZyYW1l
IHRvIHRoZSBib3R0b20gKGFuZCBiZXlvbmQpLjxici8+IgorICAgICAgICAgICAgKyAiPGJyLz48
YnIvPiIKKyAgICAgICAgICAgICsgIlRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Nyb2xsIGZhciBl
bm91Z2ggdG8gc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBidXQgdGhlIG1haW4gcGFnZSBkb2Vz
IG5vdCBzY3JvbGwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZCht
ZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0i
aGVpZ2h0OiAyMDAwcHgiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAw
cHgiPgorICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9k
aXY+CisgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQiIHN0eWxlPSJib3JkZXI6
c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDUwMHB4OyB3aWR0aDogNTAwcHg7IiAKKyAgICAgc3Jj
PSAiZGF0YTp0ZXh0L2h0bWwsCisgICAgIDxkaXYgaWQ9J25vdFRvQmVTY3JvbGxlZCcgc3R5bGU9
J2hlaWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+CisgICAgIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIvPjxici8+CisgICAgIFRo
aXMgc2hvdWxkIHN0aWxsIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Ny
b2xsIGRvd24KKyAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICA8YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+CisgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4K
KyAgICAgVGhpcyBzaG91bGQgTk9UIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5
b3Ugc2Nyb2xsIGRvd248YnIvPgorICAgICA8YnIvPgorICAgICBFTkQgRU5EIEVORCBFTkQgRU5E
IEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQKKyAgICAgPC9kaXY+CisgICAgICIKKyAg
ICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7IgorICAgICA+CisgICAgPC9pZnJhbWU+Cis8L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hl
biBzY3JvbGxpbmcgYXQgYm90dG9tIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwt
aWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVk
LW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorUHV0IG1vdXNlIGhl
cmUgYW5kIGZsaWNrIGRvd253YXJkcworCitUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IGNvbnN1
bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK01v
dXNlIG1vdmVkIHRvICgyOCwgNjYpCitQYWdlIGJlZm9yZTogMCwgSUZyYW1lIGJlZm9yZTogMAor
UGFnZSBhZnRlcjogIDMyMCwgSUZyYW1lIGFmdGVyOiAwCitQQVNTIElGcmFtZSBkaWQgbm90IHJl
Y2VpdmUgd2hlZWwgZXZlbnRzLgorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtaWZy
YW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLVdoZWVsRXZlbnQiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisKK3ZhciBpZnJhbWVUYXJnZXQ7Cit2YXIgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlOwordmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwordmFyIGNvbnRp
bnVlQ291bnQgPSA1OworCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKworICAgIC8vIFRo
ZSBJRnJhbWUgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKKyAgICB2YXIgaUZy
YW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9s
bFBvc2l0aW9uQmVmb3JlICsgIiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBvc2l0
aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRp
b25BZnRlciArICIsIElGcmFtZSBhZnRlcjogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIp
OworCisgICAgaWYgKGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlGcmFtZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIklGcmFtZSBjb25zdW1lZCB3aGVlbCBl
dmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJJRnJhbWUgZGlkIG5vdCBy
ZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
fQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1l
IGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Ny
b2xsVG9wOworICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gd2luZG93LmZyYW1lc1sn
dGFyZ2V0J10uZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisKKyAgICBpZnJhbWVUYXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAvLyBTY3JvbGwgdGhlICNz
b3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgdmFyIHN0YXJ0UG9zWCA9IGlm
cmFtZVRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRh
cmdldC5vZmZzZXRUb3AgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3Jv
bGwgYXdheSBmcm9tIHRoZSBJRnJhbWUKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFy
dFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBp
RnJhbWUKKyAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsg
c3RhcnRQb3NZICsgIikiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRy
dWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Cisg
ICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKK30KKworZnVuY3Rpb24gc2V0dXBU
b3BMZXZlbCgpIHsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGFyZW50Jyk7CisgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBi
ZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFj
ZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0
aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dp
cGUgdG8gc2Nyb2xsIHRoZTxici8+IgorICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBJRnJh
bWUuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93
IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAg
IG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwvc2Ny
aXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHgiPgorICAgIDxkaXYg
aWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHgiPgorICAgICAgICBQdXQgbW91c2UgaGVy
ZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgPGlmcmFtZSBpZD0idGFyZ2V0
IiBuYW1lPSJ0YXJnZXQiIHN0eWxlPSJib3JkZXI6c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDUw
MHB4OyB3aWR0aDogNTAwcHg7IiAKKyAgICAgc3JjPSAiZGF0YTp0ZXh0L2h0bWwsCisgICAgIDxk
aXYgaWQ9J25vdFRvQmVTY3JvbGxlZCcgc3R5bGU9J2hlaWdodDogMTAwMHB4OyB3aWR0aDogMTAw
MHB4Oyc+CisgICAgIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QIFRPUCBUT1A8YnIvPjxici8+CisgICAgIFRoaXMgc2hvdWxkIHN0aWxsIGJlIHZpc2libGUg
aW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd24KKyAgICAgPGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPgorICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAg
IDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KKyAgICAgVGhpcyBzaG91bGQgTk9UIGJlIHZp
c2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd248YnIvPgorICAgICA8
YnIvPgorICAgICBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVO
RCBFTkQKKyAgICAgPC9kaXY+CisgICAgICIKKyAgICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7
IgorICAgICA+CisgICAgPC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IGNvbnN1
bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsICIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcv
c2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3Qt
bGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWlu
ZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK1B1dCBt
b3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFibGUgU2VsZWN0CisKKworVGVz
dHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xs
IGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTW91
c2UgbW92ZWQgdG8gKDMwLCAxMjcpCitQYWdlIGJlZm9yZTogMCwgc2VsZWN0IGJlZm9yZTogMAor
UGFnZSBhZnRlcjogIDMyMCwgc2VsZWN0IGFmdGVyOiAwCitQQVNTIFNlbGVjdCBkaWQgbm90IHJl
Y2VpdmUgd2hlZWwgZXZlbnRzLgorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2Vs
ZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAgIHdpZHRo
OiA2ODBweDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRpbmc6IDJweDsK
K30KKworLnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogbGVm
dDsKKyAgICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRoLWNoaWxkKG9k
ZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3NlbGVjdCBv
cHRpb246bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKzwv
c3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgc2V0dXBUb3BM
ZXZlbCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+
Cis8c2NyaXB0PgorCit2YXIgc2VsZWN0VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZTsKK3ZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50
ID0gNTsKKworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgc2VsZWN0
IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgdmFyIHBhZ2VTY3JvbGxQb3Np
dGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFNjcm9s
bFBvc2l0aW9uQWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgZGVidWcoIlBh
Z2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9y
ZTogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKKyAgICBkZWJ1ZygiUGFnZSBhZnRl
cjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNl
bGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworCisgICAgaWYgKHNlbGVjdFNjcm9sbFBvc2l0aW9u
QmVmb3JlICE9IHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQo
IlNlbGVjdCBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0
UGFzc2VkKCJTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworICAg
IC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworCisgICAgc2VsZWN0VGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgc2VsZWN0U2Nyb2xsUG9zaXRp
b25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgLy8gU2Nyb2xsIHRoZSAj
c291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBz
ZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBzZWxlY3RU
YXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Ny
b2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUg
aUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiAr
IHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0
cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOwor
ICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICB9IGVs
c2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMg
YmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxh
Y2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2Yg
dGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3
aXBlIHRvIHNjcm9sbCBkb3duPGJyLz4iCisgICAgICAgICAgICArICJwYXN0IHRoZSBzZWxlY3RU
YXJnZXQuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUg
J2NvbnRlbnQyMScgbGFiZWwgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAg
ICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICB9Cit9CisKKzwv
c2NyaXB0PgorPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAy
MDAwcHg7Ij4KKyAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0
aDogNTAwcHg7Ij4KKyAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcwor
ICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlX3JlZ2lvbiI+CisgICAg
ICAgICAgICA8aDM+U2Nyb2xsYWJsZSBTZWxlY3Q8L2gzPgorICAgICAgICAgICAgPHNlbGVjdCBp
ZD0idGFyZ2V0IiBjbGFzcz0ic2Nyb2xsYWJsZV9zZWxlY3QiIHNpemU9IjgiPgorICAgICAgICAg
ICAgICAgIDxvcHRpb24+Y29udGVudDE8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PmNvbnRlbnQyPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50Mzwvb3B0
aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDQ8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQ1PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlv
bj5jb250ZW50Njwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDc8L29w
dGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ4PC9vcHRpb24+CisgICAgICAg
ICAgICAgICAgPG9wdGlvbj5jb250ZW50OTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDEwPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTE8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMjwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDEzPC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MTQ8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQxNTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE2PC9vcHRpb24+
CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTc8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQxODwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDE5PC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MjA8L29w
dGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQyMTwvb3B0aW9uPgorICAgICAg
ICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBh
IHNlbGVjdCBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNo
ZWQgdG8gbWFpbiBmcmFtZS4iKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sg
ZG93bndhcmRzCitTY3JvbGxhYmxlIFNlbGVjdAorCisKK1Rlc3RzIHRoYXQgYSBzZWxlY3QgZG9l
c24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJv
dHRvbQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitkaXYgZGlzcGxheSBoZWlnaHQgPSAxMTEK
K01vdXNlIG1vdmVkIHRvICgzMCwgMjM4KQorUGFnZSBiZWZvcmU6IDAsIHNlbGVjdCBiZWZvcmU6
IDcwCitQYWdlIGFmdGVyOiAgMCwgc2VsZWN0IGFmdGVyOiAxODIKK1BBU1MgUGFnZSBkaWQgbm90
IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtc2Vs
ZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Cisuc2Nyb2xsYWJsZV9yZWdpb24geworICAgIHdpZHRoOiA2ODBw
eDsKK30KKworLnRhYmxlIHRkLCAudGFibGUgdGggeworICAgIHBhZGRpbmc6IDJweDsKK30KKwor
LnRhYmxlIHRoIHsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAg
ICBmb250LXdlaWdodDogc3Ryb25nOworfQorCisudGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgewor
ICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKy5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246
bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Cit9CisKKzwvc3R5bGU+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgc2V0dXBUb3BMZXZlbCgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cis8c2Ny
aXB0PgorCit2YXIgc2VsZWN0VGFyZ2V0OwordmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsK
K3ZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKK3ZhciBjb250aW51ZUNvdW50ID0gNTsK
KworZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisKKyAgICAvLyBUaGUgcGFnZSBzaG91bGQg
bm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRl
ciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOworICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlv
bkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgIGRlYnVnKCJQYWdlIGJlZm9y
ZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBz
ZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7CisgICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsg
cGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBzZWxlY3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3Jv
bGxQb3NpdGlvbkFmdGVyKTsKKworICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0g
cGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2
ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBk
aWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgLy8gU2VlIHdoZXJlIG91
ciBJRnJhbWUgbGl2ZXM6CisgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CisKKyAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGFyZ2V0Jyk7CisgICAgc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcCA9IHNlbGVjdFRhcmdl
dC5zY3JvbGxIZWlnaHQgLSBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworCisgICAg
c2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworCisg
ICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAg
IHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCArIDIwOworICAgIGRlYnVn
KCJkaXYgZGlzcGxheSBoZWlnaHQgPSAiICsgc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCk7Cisg
ICAgdmFyIHN0YXJ0UG9zWSA9IHNlbGVjdFRhcmdldC5vZmZzZXRUb3AgKyBzZWxlY3RUYXJnZXQu
Y2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUg
d2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRv
ICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4n
LCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywg
dHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEw
MCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisKKyAgICBpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChzY3Jv
bGxUZXN0LCAxMDAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9u
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICB2YXIgbWVzc2Fn
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlLmlubmVy
SFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4g
VG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKKyAgICAg
ICAgICAgICsgImluc2lkZSB0aGUgc2VsZWN0IGJveCwgYW5kIHNjcm9sbCBuZWFyIChidXQgbm90
IEFUKSB0aGUgYm90dG9tIG9mIHRoZSByYW5nZS4gVXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3
by1maW5nZXI8YnIvPiIKKyAgICAgICAgICAgICsgInN3aXBlIHRvIHNjcm9sbCB0aHJvdWdoIHRo
ZSByZXN0IG9mIHRoZSBzZWxlY3Qgb3B0aW9ucy48YnIvPjxici8+IgorICAgICAgICAgICAgKyAi
WW91IHNob3VsZCBub3Qgc2VlIHRoZSBwYWdlIHBvc2l0aW9uIGNoYW5nZSBpZiB0aGlzIHRlc3Qg
aXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxk
KG1lc3NhZ2UpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxl
PSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgorICAgIDxkaXYgaWQ9InNvdXJjZSIg
c3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgorICAgICAgICBQdXQgbW91c2Ug
aGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCisgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9
InNjcm9sbGFibGVfcmVnaW9uIj4KKyAgICAgICAgICAgIDxoMz5TY3JvbGxhYmxlIFNlbGVjdDwv
aDM+CisgICAgICAgICAgICA8c2VsZWN0IGlkPSJ0YXJnZXQiIGNsYXNzPSJzY3JvbGxhYmxlX3Nl
bGVjdCIgc2l6ZT0iOCI+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTwvb3B0aW9u
PgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDI8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQzPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5j
b250ZW50NDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDU8L29wdGlv
bj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ2PC9vcHRpb24+CisgICAgICAgICAg
ICAgICAgPG9wdGlvbj5jb250ZW50Nzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQ5PC9vcHRp
b24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTA8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPmNvbnRlbnQxMTwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRp
b24+Y29udGVudDEyPC9vcHRpb24+CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTM8
L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRlbnQxNDwvb3B0aW9uPgorICAg
ICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE1PC9vcHRpb24+CisgICAgICAgICAgICAgICAg
PG9wdGlvbj5jb250ZW50MTY8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPmNvbnRl
bnQxNzwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+Y29udGVudDE4PC9vcHRpb24+
CisgICAgICAgICAgICAgICAgPG9wdGlvbj5jb250ZW50MTk8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICA8b3B0aW9uPmNvbnRlbnQyMDwvb3B0aW9uPgorICAgICAgICAgICAgICAgIDxvcHRpb24+
Y29udGVudDIxPC9vcHRpb24+CisgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgPC9kaXY+
CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVu
dHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="248243"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>