<?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>89269</bug_id>
          
          <creation_ts>2012-06-15 20:19:13 -0700</creation_ts>
          <short_desc>Use testRunner instead of layoutTestController in transforms, transitions, traversal, userscripts, webarchive, webaudio, and webintents tests</short_desc>
          <delta_ts>2012-06-20 11:06:55 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>koivisto</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>650698</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 20:19:13 -0700</bug_when>
    <thetext>Use testRunner instead of layoutTestController in transforms, transitions, traversal, userscripts, webarchive, webaudio, and webintents tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650702</commentid>
    <comment_count>1</comment_count>
      <attachid>147944</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 20:22:16 -0700</bug_when>
    <thetext>Created attachment 147944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650704</commentid>
    <comment_count>2</comment_count>
      <attachid>147944</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-15 20:25:07 -0700</bug_when>
    <thetext>Comment on attachment 147944
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650712</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 20:43:05 -0700</bug_when>
    <thetext>Committed r120521: &lt;http://trac.webkit.org/changeset/120521&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653026</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-06-19 17:22:03 -0700</bug_when>
    <thetext>I think that this changed caused webarchive/test-script-src.html and webarchive/test-duplicate-resources.html to start failing on the Mac bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653149</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-19 20:43:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I think that this changed caused webarchive/test-script-src.html and webarchive/test-duplicate-resources.html to start failing on the Mac bots.

Oops, thanks for letting me know. It should be fixed in http://trac.webkit.org/changeset/120793.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653665</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-06-20 11:06:55 -0700</bug_when>
    <thetext>Awesome, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147944</attachid>
            <date>2012-06-15 20:22:16 -0700</date>
            <delta_ts>2012-06-15 20:25:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89269-20120615202216.patch</filename>
            <type>text/plain</type>
            <size>154760</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMDUxOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTE1ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSB0ZXN0UnVubmVyIGluc3RlYWQgb2YgbGF5
b3V0VGVzdENvbnRyb2xsZXIgaW4gdHJhbnNmb3JtcywgdHJhbnNpdGlvbnMsIHRyYXZlcnNhbCwg
dXNlcnNjcmlwdHMsIHdlYmFyY2hpdmUsIHdlYmF1ZGlvLCBhbmQgd2ViaW50ZW50cyB0ZXN0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyNjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRyYW5zaXRp
b25zLzoKKyAgICAgICAgKiB0cmF2ZXJzYWwvOgorICAgICAgICAqIHVzZXJzY3JpcHRzLzoKKyAg
ICAgICAgKiB3ZWJhcmNoaXZlLzoKKyAgICAgICAgKiB3ZWJhdWRpby86CisgICAgICAgICogd2Vi
aW50ZW50cy93ZWItaW50ZW50cy1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIHdlYmludGVudHMv
d2ViLWludGVudHMtZmFpbHVyZS5odG1sOgorICAgICAgICAqIHdlYmludGVudHMvd2ViLWludGVu
dHMtcmVsb2FkLmh0bWw6CisgICAgICAgICogd2ViaW50ZW50cy93ZWItaW50ZW50cy1yZXBseS5o
dG1sOgorCiAyMDEyLTA2LTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFRlc3QgZml4IGF0dGVtcHQgYWZ0ZXIgcjEyMDUxNi4KSW5kZXg6IExheW91dFRlc3Rz
L3RyYW5zaXRpb25zL2JhZC10cmFuc2l0aW9uLXNob3J0aGFuZC1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL2JhZC10cmFuc2l0aW9uLXNob3J0aGFuZC1j
cmFzaC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9i
YWQtdHJhbnNpdGlvbi1zaG9ydGhhbmQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMs
MTUgKzEzLDE1IEBACiAgICAgfQogICA8L3N0eWxlPgogICA8c2NyaXB0PgotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogICAgIAogICAg
IGZ1bmN0aW9uIGZpbmlzaCgpCiAgICAgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcmV0dXJuVG9TdGFydCgp
CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9jYW5jZWwtdHJhbnNpdGlvbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL2NhbmNlbC10cmFuc2l0aW9uLmh0
bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL2NhbmNlbC10
cmFuc2l0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDkgQEAKICAgICAgICAg
fQogICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAgICAgICAgIH0KIAogICAgICAgICByZXN1bHQgPSAiPHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+
Q0hFQ0sgTk9UIENPTVBMRVRFRDwvc3Bhbj4iOwpAQCAtODMsOCArODMsOCBAQAogICAgICAgICAg
ICAgICAgIHJlc3VsdCArPSAiPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz5QQVNTPC9zcGFuPiI7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0
aW9uIHN0YXJ0KCkKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL2NoYW5nZS12YWx1ZXMt
ZHVyaW5nLXRyYW5zaXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0aW9uLmh0bWwJKHJldmlzaW9uIDEyMDUx
NikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL2NoYW5nZS12YWx1ZXMtZHVyaW5nLXRyYW5z
aXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsOSArMTMsOSBAQAogICAgIH0KICAgPC9z
dHlsZT4KICAgPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAgICB2YXIgcmVzdWx0ID0gIlBBU1MiOwpAQCAt
NjYsOCArNjYsOCBAQAogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJUZXh0ID0gcmVzdWx0OwotICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24g
Z29CYWNrKCkKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL2VxdWl2YWxlbnQtYmFja2dy
b3VuZC1pbWFnZS1uby10cmFuc2l0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvZXF1aXZhbGVudC1iYWNrZ3JvdW5kLWltYWdlLW5vLXRyYW5zaXRpb24uaHRt
bAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvZXF1aXZhbGVu
dC1iYWNrZ3JvdW5kLWltYWdlLW5vLXRyYW5zaXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTUsOSArMTUsOSBAQAogICAgIH0KICAgICA8L3N0eWxlPgogICAgIDxzY3JpcHQ+Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
IH0KICAgICA8L3NjcmlwdD4KIDwvaGVhZD4KQEAgLTMxLDEzICszMSwxMyBAQAogICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmb28nKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRUcmFuc2l0
aW9uRW5kJywgZnVuY3Rpb24oZXZ0KSB7CiAgICAgICAgIGlmKGV2dC5wcm9wZXJ0eU5hbWUgPT0g
ImJhY2tncm91bmQtaW1hZ2UiICYmICFmaW5pc2hlZCkgewogICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICgiRkFJTDogc2F3IGEgYmFja2dy
b3VuZC1pbWFnZSB0cmFuc2l0aW9uIik7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1
ZTsKICAgICAgICAgfSBlbHNlIGlmKGV2dC5wcm9wZXJ0eU5hbWUgPT0gInRvcCIgJiYgIWZpbmlz
aGVkKSB7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5u
ZXJIVE1MID0gKCJQQVNTOiBubyBiYWNrZ3JvdW5kLWltYWdlIHRyYW5zaXRpb24iKTsKLSAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgICAgICB9CiAgICAgfSk7CiAKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL2V4dHJh
LXRyYW5zaXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9l
eHRyYS10cmFuc2l0aW9uLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3Ry
YW5zaXRpb25zL2V4dHJhLXRyYW5zaXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTgsOSAr
NTgsOSBAQAogICB9CiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+Ci0gIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKICAgfQogCiAgIGZ1bmN0aW9uIGluaXQoKQpAQCAtODMsOCAr
ODMsOCBAQAogICAgICAgICBlbHNlCiAgICAgICAgIGxvZygndHJhbnNmb3JtPSInK3RyYW5zZm9y
bSsnIiwgZXhwZWN0ZWQgIm1hdHJpeCgxLCAwLCAwLCAxLCAxMDAsIDApIjogRkFJTCcpOwogCi0g
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICB9CiAgIDwvc2NyaXB0PgogPC9oZWFk
PgpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvZmlyc3QtbGV0dGVyLWNvbG9yLXRyYW5z
aXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9maXJzdC1s
ZXR0ZXItY29sb3ItdHJhbnNpdGlvbi5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy9maXJzdC1sZXR0ZXItY29sb3ItdHJhbnNpdGlvbi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMSw5ICsyMSw5IEBACiAKIDwvc3R5bGU+CiA8c2NyaXB0ICB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHZhciByZXN1
bHQgPSAiIjsKQEAgLTM1LDggKzM1LDggQEAKICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMIjsK
IAogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0g
cmVzdWx0OwotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICB9CiAKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0VHJhbnNpdGlvbkVuZCcs
IHRyYW5zaXRpb25FbmRlZCwgZmFsc2UpOwpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMv
Zmlyc3QtbGV0dGVyLXRyYW5zaXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9maXJzdC1sZXR0ZXItdHJhbnNpdGlvbi5odG1sCShyZXZpc2lvbiAxMjA1MTYp
CisrKyBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9maXJzdC1sZXR0ZXItdHJhbnNpdGlvbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCw5IEBACiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy90cmFuc2l0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
ICB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAg
IHZhciByZXN1bHQgPSAiVHJhbnN0aW9ucyB0ZXN0IHJlc3VsdDogPGJyPjxicj4iOwpAQCAtNTgs
OCArNTgsOCBAQAogCiAgICAgICAgIGlmICh0cmFuc2l0aW9ucyA9PSA1KSB7CiAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0Owot
ICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAgICAgICAgIH0KICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL2hh
bmctd2l0aC1iYWQtdHJhbnNpdGlvbi1saXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvaGFuZy13aXRoLWJhZC10cmFuc2l0aW9uLWxpc3QuaHRtbAkocmV2aXNp
b24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaGFuZy13aXRoLWJhZC10cmFu
c2l0aW9uLWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsMTcgKzExLDE3IEBACiAgIDxz
Y3JpcHQ+CiAgICAgZnVuY3Rpb24gY2hlY2tSdW5uaW5nKCkKICAgICB7Ci0gICAgICB2YXIgY3Vy
cmVudCA9IGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpOwor
ICAgICAgdmFyIGN1cnJlbnQgPSB0ZXN0UnVubmVyLm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygp
OwogICAgICAgaWYgKGN1cnJlbnQgPT0gMCkKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJOdW1iZXIgb2YgYWN0aXZlIGFuaW1hdGlvbnMgYmVm
b3JlIHRyYW5zaXRpb24gaXMgKDApIGFzIGV4cGVjdGVkIjsKICAgICAgIGVsc2UKICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJOdW1iZXIgb2Yg
YWN0aXZlIHRyYW5zaXRpb25zIGlzICgiICsgY3VycmVudCArICIpIGJ1dCB3YXMgZXhwZWN0aW5n
ICgwKSI7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAgICAgCi0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB3aW5kb3cu
c2V0VGltZW91dChjaGVja1J1bm5pbmcsIDMwMCk7ICAgICAgICAgICAgCiAgICAgfQogICA8L3Nj
cmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL2luaGVyaXQtb3RoZXItcHJvcHMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0LW90aGVy
LXByb3BzLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25z
L2luaGVyaXQtb3RoZXItcHJvcHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsOSArMjEsOSBA
QAogICAgIH0KICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgdmFyIGtF
eHBlY3RlZFByb3AgPSBbCkBAIC03NSw4ICs3NSw4IEBACiAKICAgICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpKTsKICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7Ci0g
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAKICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRlc3RQcm9wZXJ0aWVzLCBmYWxzZSk7CkluZGV4OiBM
YXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvaW5oZXJpdC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDkg
KzE4LDkgQEAKICAgICB9CiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAg
IHZhciBrRXhwZWN0ZWRzID0gWwpAQCAtNDksOCArNDksOCBAQAogCiAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSk7CiAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0
OwotICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAKICAgICB9CiAKSW5kZXg6
IExheW91dFRlc3RzL3RyYW5zaXRpb25zL2ludGVycnVwdC10cmFuc2Zvcm0tdHJhbnNpdGlvbi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL2ludGVycnVwdC10cmFu
c2Zvcm0tdHJhbnNpdGlvbi5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9pbnRlcnJ1cHQtdHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTQsOSArMTQsOSBAQAogICAgIH0KICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0K
IAogICAgIGZ1bmN0aW9uIHRlc3QoKQpAQCAtMjgsOCArMjgsOCBAQAogICAgICAgdmFyIHJlc3Vs
dCA9ICh4VHJhbnNsYXRlID4gMCkgPyAnUEFTUycgOiAnRkFJTDogdHJhbnNpdGlvbiBzaG91bGQg
YmUgcmUtdGFyZ2V0ZWQgZnJvbSAyMDBweCBpbiB4LCBzbyB4ID4gMCc7CiAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OwogCi0gICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGFy
dFRlc3QoKQpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0LXplcm8tZHVy
YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1
cHQtemVyby1kdXJhdGlvbi5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9pbnRlcnJ1cHQtemVyby1kdXJhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNCw5ICsxNCw5IEBACiAgICAgfQogICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgfQogCiAgICAgcmVzdWx0ID0gIlBBU1MiOwpAQCAtNTcsOCArNTcsOCBAQAogICAgICAgICAK
ICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OwotICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAg
ICAgICAgIH0sIDgwMCk7CiAgICAgfQogICAgIApJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvaW50ZXJydXB0ZWQtYWNjZWxlcmF0ZWQtdHJhbnNpdGlvbi5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3RyYW5zaXRpb25zL2ludGVycnVwdGVkLWFjY2VsZXJhdGVkLXRyYW5zaXRp
b24uaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50
ZXJydXB0ZWQtYWNjZWxlcmF0ZWQtdHJhbnNpdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
Nyw5ICsxNyw5IEBACiAgICAgICAgIH0KICAgICA8L3N0eWxlPgogICAgIDxzY3JpcHQ+Ci0gICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAgICAgICAgIGZ1bmN0aW9uIGxvYWRl
ZCgpCiAgICAgICAgIHsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL2ludGVycnVwdGVk
LWFsbC10cmFuc2l0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvaW50ZXJydXB0ZWQtYWxsLXRyYW5zaXRpb24uaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysg
TGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0ZWQtYWxsLXRyYW5zaXRpb24uaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTksOSArMTksOSBAQAogICAgIH0KICAgPC9zdHlsZT4KICAgPHNj
cmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbigpCkBAIC0zNSw4ICszNSw4
IEBACiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgIHZh
ciBib3hQb3MgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gpLmxlZnQpOwog
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSAo
Ym94UG9zIDwgMjAwKSA/ICJQQVNTIiA6ICJGQUlMIjsKLSAgICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSwgMjUwKTsKICAgICAgIH0s
IDUwMCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbWF0Y2hlZC10cmFu
c2Zvcm0tZnVuY3Rpb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysr
IExheW91dFRlc3RzL3RyYW5zaXRpb25zL21hdGNoZWQtdHJhbnNmb3JtLWZ1bmN0aW9ucy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xNCw5ICsxNCw5IEBACiAgICAgCiAgIDwvc3R5bGU+CiAgIDxz
Y3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKQEAgLTI1LDggKzI1LDggQEAKICAgICAg
IHZhciByZXN1bHQgPSAoYy5mIDwgMjAwKSA/ICdQQVNTJyA6ICdGQUlMOiB0cmFuc2l0aW9uIHNo
b3VsZCBzdGlsbCBiZSBydW5uaW5nLCBzbyB5IDwgMjAwJzsKICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CiAKLSAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRl
c3QoKQpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbW92ZS1hZnRlci10cmFuc2l0aW9u
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbW92ZS1hZnRlci10
cmFuc2l0aW9uLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYW5zaXRp
b25zL21vdmUtYWZ0ZXItdHJhbnNpdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NywxNCAr
NDcsMTQgQEAKICAgICAgIHRlc3REaXYuc3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uID0g
JzAnOwogCiAgICAgICB0ZXN0RGl2LnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICd0cmFuc2xhdGVY
KDE1MHB4KSc7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KICAgICAK
ICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQogICAgIHsKLSAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0ZXIn
KS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRUcmFuc2l0aW9uRW5kJywgdGVzdEVuZGVkLCBmYWxz
ZSk7CiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuY2xhc3NOYW1l
ID0gJ21vdmVkJzsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL211bHRpcGxlLXRleHQt
c2hhZG93LXRyYW5zaXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy9tdWx0aXBsZS10ZXh0LXNoYWRvdy10cmFuc2l0aW9uLmh0bWwJKHJldmlzaW9uIDEyMDUx
NikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL211bHRpcGxlLXRleHQtc2hhZG93LXRyYW5z
aXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsOSArMzAsOSBAQAogICA8L3N0eWxlPgog
ICA8c2NyaXB0PgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKQpA
QCAtNTIsOCArNTIsOCBAQAogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHQuaW5uZXJI
VE1MID0gJ0ZBSUw6IHNhdyAnICsgc2hhZG93Lmxlbmd0aCArICcgc2hhZG93cyBkdXJpbmcgdGhl
IHRyYW5zaXRpb24nOwogICAgICAgICAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiAgICAgfQogICAgIAogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgc2V0dXBUZXN0LCBmYWxzZSk7CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9v
cGFjaXR5LXRyYW5zaXRpb24temluZGV4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvb3BhY2l0eS10cmFuc2l0aW9uLXppbmRleC5odG1sCShyZXZpc2lvbiAxMjA1
MTYpCisrKyBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9vcGFjaXR5LXRyYW5zaXRpb24temluZGV4
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4LDggQEAKICAgICB9CiAgIDwvc3R5bGU+
CiAgIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKQogICAgIHsKQEAgLTQ3LDExICs0NywxMSBAQAogICAgICAgY29udGFpbmVy
LnN0eWxlLm9wYWNpdHkgPSAxOwogICAgICAgCiAgICAgICAvLyBkdW1wIHRoZSB0cmVlIGluIHRo
ZSBtaWRkbGUgb2YgdGhlIHRyYW5zaXRpb24KLSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLnBhdXNlVHJhbnNp
dGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCkKLSAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChm
dW5jdGlvbigpIHsgbGF5b3V0VGVzdENvbnRyb2xsZXIucGF1c2VUcmFuc2l0aW9uQXRUaW1lT25F
bGVtZW50V2l0aElkKCJvcGFjaXR5IiwgMi41LCAiZmlyc3QiKTsgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOyB9LCAwKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICBpZiAodGVzdFJ1bm5lci5wYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRo
SWQpCisgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRlc3RSdW5uZXIu
cGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJvcGFjaXR5IiwgMi41LCAiZmly
c3QiKTsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IH0sIDApOwogICAgICAgICBlbHNlCi0gICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsgfSwgMjUwMCk7CisgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyB9LCAyNTAwKTsKICAgICAgIH0KICAg
ICB9CiAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHVzZSBydW5UcmFuc2l0aW9uVGVzdCgpLgpJ
bmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvb3ZlcnJpZGUtdHJhbnNpdGlvbi1jcmFzaC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL292ZXJyaWRlLXRyYW5z
aXRpb24tY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvb3ZlcnJpZGUtdHJhbnNpdGlvbi1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
OCw4ICsxOCw4IEBACiAgICAgfQogICA8L3N0eWxlPgogICA8c2NyaXB0PgotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydCgpCkluZGV4
OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZW1vdmUtdHJhbnNpdGlvbi1zdHlsZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3JlbW92ZS10cmFuc2l0aW9uLXN0
eWxlLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jl
bW92ZS10cmFuc2l0aW9uLXN0eWxlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDkgKzE1LDkg
QEAKICAgICB9CiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBsb2co
cykKQEAgLTI4LDE0ICsyOCwxNCBAQAogCiAgICAgZnVuY3Rpb24gdGVzdFRyYW5zaXRpb25zKCkK
ICAgICB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAg
IHZhciBudW1BbmltcyA9IGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9mQWN0aXZlQW5pbWF0
aW9ucygpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHZhciBudW1B
bmltcyA9IHRlc3RSdW5uZXIubnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiAgICAgICAgIGlm
IChudW1BbmltcyA9PSAwKQogICAgICAgICAgIGxvZygnTm8gcnVubmluZyB0cmFuc2l0aW9uczog
UEFTUycpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgbG9nKCdTdGlsbCAnICsgbnVtQW5pbXMg
KyAnIHRyYW5zaXRpb25zIHJ1bm5pbmc6IEZBSUwnKQogCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAg
ICAgICB9CiAgICAgfQogICAgIApJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmVwZWF0
ZWQtZmlyaW5nLWJhY2tncm91bmQtY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy9yZXBlYXRlZC1maXJpbmctYmFja2dyb3VuZC1jb2xvci5odG1sCShyZXZp
c2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXBlYXRlZC1maXJpbmct
YmFja2dyb3VuZC1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSwyMiArMTEsMjIgQEAK
ICAgPHNjcmlwdD4KICAgICBmdW5jdGlvbiBjaGVja1J1bm5pbmcoKQogICAgIHsKLSAgICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBpZiAoIXdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5l
ckhUTUwgPSAiVGhpcyB0ZXN0IG11c3QgYmUgcnVuIGluIERSVC4iCiAgICAgICAgIHJldHVybjsK
ICAgICAgIH0KICAgICAgICAgCi0gICAgICB2YXIgY3VycmVudCA9IGxheW91dFRlc3RDb250cm9s
bGVyLm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpOworICAgICAgdmFyIGN1cnJlbnQgPSB0ZXN0
UnVubmVyLm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpOwogICAgICAgaWYgKGN1cnJlbnQgPT0g
MCkKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
ICJOdW1iZXIgb2YgYWN0aXZlIHRyYW5zaXRpb25zIGlzICgwKSBhcyBleHBlY3RlZCI7CiAgICAg
ICBlbHNlCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhU
TUwgPSAiTnVtYmVyIG9mIGFjdGl2ZSB0cmFuc2l0aW9ucyBpcyAoIiArIGN1cnJlbnQgKyAiKSBi
dXQgd2FzIGV4cGVjdGluZyAoMCkiOwotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogCi0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
IH0KICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9y
ZXRhcmdldHRlZC10cmFuc2l0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJh
bnNpdGlvbnMvcmV0YXJnZXR0ZWQtdHJhbnNpdGlvbi5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisr
KyBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXRhcmdldHRlZC10cmFuc2l0aW9uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEzLDkgKzEzLDkgQEAKICAgICAKICAgPC9zdHlsZT4KICAgPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwog
ICAgIH0KIAogICAgIGZ1bmN0aW9uIHRlc3QoKQpAQCAtMjQsOCArMjQsOCBAQAogICAgICAgdmFy
IHJlc3VsdCA9IChjLmYgPCAyMDApID8gJ1BBU1MnIDogJ0ZBSUw6IHRyYW5zaXRpb24gc2hvdWxk
IHN0aWxsIGJlIHJ1bm5pbmcsIHNvIHkgPCAyMDAnOwogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdDsKIAotICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgp
CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9zaGFkb3cuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9zaGFkb3cuaHRtbAkocmV2aXNpb24gMTIwNTE2KQor
KysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDkgKzIyLDkgQEAKICAgICB9CiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0K
ICAgICAKICAgICBmdW5jdGlvbiBzdGFydCgpCkBAIC0zNSw4ICszNSw4IEBACiAgICAgICAgIGJv
eDIuc3R5bGUud2Via2l0Qm94U2hhZG93ID0gJzVweCA1cHggNXB4IHJnYmEoMCwgMCwgMCwgMC41
KSc7CiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gIlBBU1MiOwot
ICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKICAgICAgICAgICB9LCAzMDApOwogICAgIH0KICAgICAKSW5kZXg6IExheW91
dFRlc3RzL3RyYW5zaXRpb25zL3N0YXJ0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvc3RhcnQtdHJhbnNmb3JtLXRyYW5zaXRp
b24uaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvc3Rh
cnQtdHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTYsOSArMTYs
OSBAQAogICAgIH0KICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHRl
c3QoKQpAQCAtMzAsOCArMzAsOCBAQAogICAgICAgdmFyIHJlc3VsdCA9ICh4VHJhbnNsYXRlID4g
MCkgPyAnUEFTUycgOiAnRkFJTDogdHJhbnNpdGlvbiBzaG91bGQgYmUgcnVubmluZywgc28geCA+
IDAnOwogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
IHJlc3VsdDsKIAotICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQog
CiAgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25z
L3N1c3BlbmQtdHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy9zdXNwZW5kLXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwJKHJldmlz
aW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3N1c3BlbmQtdHJhbnNmb3Jt
LXRyYW5zaXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOCBAQAogICAgIH0K
ICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKICAgICAKICAgICBmdW5jdGlvbiBzdXNwZW5kQW5kV2FpdEZvckNvbXBsZXRpb24oKQogICAg
IHsKQEAgLTM3LDggKzM3LDggQEAKICAgICAgICAgICAgIGludGVybmFscy5zdXNwZW5kQW5pbWF0
aW9ucyhkb2N1bWVudCk7CiAKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKICAgICAgICAgfSwgMjUwKTsKICAgICB9CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXktZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHJ0LWFwaS1kZWxheS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25z
L3RyYW5zaXRpb24tZHJ0LWFwaS1kZWxheS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsNCArMSw0IEBACi1UZXN0IGZvciB0cmFuc2l0aW9uIGRlbGF5IG9uIGxheW91dFRlc3RDb250
cm9sbGVyIEFQSQorVGVzdCBmb3IgdHJhbnNpdGlvbiBkZWxheSBvbiB0ZXN0UnVubmVyIEFQSQog
CiBUaGlzIHRlc3Qgd29ya3Mgb25seSBpbiBEdW1wUmVuZGVyVHJlZS4gSXQgdXNlcyBhbiBBUEkg
ZXhwb3NlZCBvbmx5IHRoZXJlIHRvIGp1bXAgdG8gYSBwYXJ0aWN1bGFyIHRpbWUgaW4gYSBydW5u
aW5nIHRyYW5zaXRpb24uIFRlc3RzIGJ1ZyAyMjM2OAogCkluZGV4OiBMYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbAkocmV2aXNp
b24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kcnQtYXBp
LWRlbGF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDIyICsyMiwyMiBAQAogICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy90cmFuc2l0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiAg
ICA8c2NyaXB0PgogICAgIGZ1bmN0aW9uIGVuZFRlc3QoKSB7Ci0gICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnBhdXNl
VHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgibGVmdCIsIDIuMCwgInRhcmdldCIpOwor
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIucGF1c2VU
cmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJsZWZ0IiwgMi4wLCAidGFyZ2V0Iik7CiAg
ICAgICAgIHZhciBsZWZ0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RhcmdldCcpKS5sZWZ0OwogICAgICAgICB2YXIgcmVzdWx0ID0gIlBBU1MiOwog
ICAgICAgICBpZiAobGVmdCAhPSAiMTI1cHgiKSB7CiAgICAgICAgICAgcmVzdWx0ID0gIkZBSUwg
LSBleHBlY3RlZCAxMjVweCBnb3QgIiArIGxlZnQ7CiAgICAgICAgIH0KICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICI8cD4iICsgcmVzdWx0ICsg
IjwvcD4iOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgfQogICAgIH0KICAgICAKICAgICBm
dW5jdGlvbiBzdGFydFRlc3QoKSB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgIH0KICAgICAgIAogICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTmFtZSA9ICJtb3ZlZCI7CkBAIC00
Niw3ICs0Niw3IEBACiAgICA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0ic3RhcnRU
ZXN0KCkiPgotICA8aDE+VGVzdCBmb3IgdHJhbnNpdGlvbiBkZWxheSBvbiBsYXlvdXRUZXN0Q29u
dHJvbGxlciBBUEk8L2gxPgorICA8aDE+VGVzdCBmb3IgdHJhbnNpdGlvbiBkZWxheSBvbiB0ZXN0
UnVubmVyIEFQSTwvaDE+CiAgIAogICA8cD5UaGlzIHRlc3Qgd29ya3Mgb25seSBpbiBEdW1wUmVu
ZGVyVHJlZS4gSXQgdXNlcyBhbiBBUEkgZXhwb3NlZAogICAgIG9ubHkgdGhlcmUgdG8ganVtcCB0
byBhIHBhcnRpY3VsYXIgdGltZSBpbiBhIHJ1bm5pbmcgdHJhbnNpdGlvbi4KSW5kZXg6IExheW91
dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHJ0LWFwaS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHJ0LWFwaS5odG1sCShyZXZpc2lv
biAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGku
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksMTIgKzE5LDEyIEBACiAgICAgfQogICAgPC9zdHls
ZT4KICAgIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIGZ1bmN0aW9u
IGVuZFRlc3QoKSB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICAgIHZhciBwYXVzZWQgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5wYXVzZVRyYW5zaXRpb25B
dFRpbWVPbkVsZW1lbnRXaXRoSWQoImxlZnQiLCAxLjAsICJ0YXJnZXQiKTsKKyAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB2YXIgcGF1c2VkID0gdGVzdFJ1bm5lci5wYXVz
ZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImxlZnQiLCAxLjAsICJ0YXJnZXQiKTsK
ICAgICAgICAgdmFyIHJlc3VsdCA9ICIiOwogICAgICAgICBpZiAocGF1c2VkKQogICAgICAgICAg
IHJlc3VsdCA9ICJQQVNTOiBjb3JyZWN0bHkgcGF1c2VkIHRyYW5zaXRpb24iOwpAQCAtMzIsMTQg
KzMyLDE0IEBACiAgICAgICAgICAgcmVzdWx0ID0gIkZBSUw6IGZhaWxlZCB0byBwYXVzZSB0cmFu
c2l0aW9uIjsKIAogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlu
bmVyVGV4dCA9IHJlc3VsdDsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0gZWxzZQogICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVyVGV4dCA9ICJUaGlz
IHRlc3QgcmVxdWlyZXMgRFJUIjsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gc3RhcnRUZXN0
KCkgewotICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgIAogICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTmFtZSA9ICJtb3ZlZCI7
CiAgICAgICB3aW5kb3cuc2V0VGltZW91dChlbmRUZXN0LCAwKTsKSW5kZXg6IExheW91dFRlc3Rz
L3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRpb24tY2xlYXJlZC1pbi10cmFuc2l0aW9uZW5k
LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi1kdXJhdGlvbi1jbGVhcmVkLWluLXRyYW5zaXRpb25lbmQtY3Jhc2guaHRtbAkocmV2aXNp
b24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kdXJhdGlv
bi1jbGVhcmVkLWluLXRyYW5zaXRpb25lbmQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MywxNSArMywxNSBAQAogICAgICAgICBUaGlzIHRlc3RzIHRoYXQgd2UgZG9uJ3QgY3Jhc2ggaWYg
d2UgY2xlYXIgYSB0cmFuc2l0aW9ucyBkdXJhdGlvbiBkdXJpbmcgdGhlIHRyYW5zaXRpb24gZW5k
IGNhbGxiYWNrLgogICAgICAgICA8ZGl2IGlkPSJ0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjoj
MDAwIj50ZXN0PC9kaXY+IAogICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0Jyk7CiAgICAgICAgICAgICBlbC5h
ZGRFdmVudExpc3RlbmVyKCd3ZWJraXRUcmFuc2l0aW9uRW5kJywgZnVuY3Rpb24oKXsKICAgICAg
ICAgICAgICAgICBlbC5zdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24gPSAnJzsKLSAgICAg
ICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgZWwuc3R5bGUuY3Nz
VGV4dCArPSAnOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7YmFja2dy
b3VuZC1jb2xvcjojZmZmJwogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWRlc3Ryb3ktaWZyYW1lLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtZGVz
dHJveS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtZGVzdHJveS1pZnJhbWUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNiw5ICs2LDkgQEAKICAgICB9CiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwog
ICAgIH0KICAgICAKICAgICBmdW5jdGlvbiB0ZXN0RmluaXNoZWQoKSB7CkBAIC0xOSw4ICsxOSw4
IEBACiAgICAgICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwogICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCA9ICdEaWQgbm90IGNyYXNoLCBz
byBQQVNTRUQnOwogICAgICAgICAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgfTsKICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1kZXN0cm95LXJlbmRlcmVyLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtZGVzdHJveS1yZW5kZXJlci5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1kZXN0cm95LXJlbmRlcmVyLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTExLDkgKzExLDkgQEAKICAgICB9CiAgIDwvc3R5bGU+CiAgIDxz
Y3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgIH0KIAogICAgIHZhciBudW1Eb25lID0gMDsKQEAgLTI2LDggKzI2LDgg
QEAKIAogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRN
TCA9ICdEaWQgbm90IGNyYXNoLCBzbyBQQVNTRUQnOwogCi0gICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICB9CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1yZW5kZXJpbmcuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1yZW5kZXJp
bmcuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi1lbmQtZXZlbnQtcmVuZGVyaW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDE0
ICs0NSwxNCBAQAogCiAgICAgZnVuY3Rpb24gdGVzdEVuZGVkKCkKICAgICB7Ci0gICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRl
c3QoKQogICAgIHsKLSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGVyJykuYWRkRXZlbnRMaXN0ZW5lcignd2Vi
a2l0VHJhbnNpdGlvbkVuZCcsIHRlc3RFbmRlZCwgZmFsc2UpOwogICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmNsYXNzTmFtZSA9ICdtb3ZlZCc7CiAgICAgfQpJbmRl
eDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1oaXQtdGVzdC10cmFuc2Zvcm0u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWhp
dC10ZXN0LXRyYW5zZm9ybS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9uLWhpdC10ZXN0LXRyYW5zZm9ybS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00NywxMiArNDcsMTIgQEAKICAgICAgCiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICAgICAgICAgICAgICBpZiAoIWxheW91dFRlc3RDb250cm9sbGVyLnBhdXNlVHJhbnNp
dGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgiLXdlYmtpdC10cmFuc2Zvcm0iLCAyLjAsICJ0YXJn
ZXQiKSkKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5wYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQo
Ii13ZWJraXQtdHJhbnNmb3JtIiwgMi4wLCAidGFyZ2V0IikpCiAgICAgICAgICAgICAgICAgICAg
IHRocm93KCJUcmFuc2l0aW9uIGlzIG5vdCBydW5uaW5nIik7CiAgICAgICAgIAogICAgICAgICAg
ICAgICAgIGNoZWNrUmVzdWx0cygpOwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KCJjaGVja1Jlc3VsdHMoKSIsIDIwMDApOwpAQCAtNjEsOSArNjEsOSBA
QAogICAgIAogICAgICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAg
fQogICAgICAgCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iiku
c3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0ZVgoMzAwcHgpIjsKSW5kZXg6IExheW91
dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24taGl0LXRlc3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWhpdC10ZXN0Lmh0bWwJKHJldmlz
aW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24taGl0LXRl
c3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTIgKzQ1LDEyIEBACiAgICAgIAogICAgICAg
ICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImxlZnQiLCAyLjAs
ICJ0YXJnZXQiKSkKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5wYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRX
aXRoSWQoImxlZnQiLCAyLjAsICJ0YXJnZXQiKSkKICAgICAgICAgICAgICAgICAgICAgdGhyb3co
IlRyYW5zaXRpb24gaXMgbm90IHJ1bm5pbmciKTsKICAgICAgICAgCiAgICAgICAgICAgICAgICAg
Y2hlY2tSZXN1bHRzKCk7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgd2luZG93LnNl
dFRpbWVvdXQoImNoZWNrUmVzdWx0cygpIiwgMjAwMCk7CkBAIC01OSw5ICs1OSw5IEBACiAgICAg
CiAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5zdHlsZS5s
ZWZ0ID0gIjMwMHB4IjsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3plcm8tZHVyYXRp
b24td2l0aC1ub24temVyby1kZWxheS1lbmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9uLXplcm8tZGVsYXktZW5kLmh0bWwJ
KHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3plcm8tZHVyYXRp
b24td2l0aC1ub24temVyby1kZWxheS1lbmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyAr
MjIsNyBAQAogICAgPHNjcmlwdD4KICAgICBmdW5jdGlvbiBzYW1wbGUwKCkgewogICAgICAgdmFy
IGV4cGVjdGVkID0gMTsKLSAgICAgIHZhciBjdXJyZW50ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIu
bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CisgICAgICB2YXIgY3VycmVudCA9IHRlc3RSdW5u
ZXIubnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiAgICAgICBpZiAoY3VycmVudCA9PSBleHBl
Y3RlZCkKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdDAnKS5pbm5lckhU
TUwgPSAiTnVtYmVyIG9mIGFjdGl2ZSBhbmltYXRpb25zIGJlZm9yZSB0cmFuc2l0aW9uIGlzICgi
ICsgY3VycmVudCArICIpIGFzIGV4cGVjdGVkIjsKICAgICAgIGVsc2UKQEAgLTMxLDEzICszMSwx
MyBAQAogICAgIAogICAgIGZ1bmN0aW9uIHNhbXBsZTEoKSB7CiAgICAgICB2YXIgZXhwZWN0ZWQg
PSAwOwotICAgICAgdmFyIGN1cnJlbnQgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5udW1iZXJPZkFj
dGl2ZUFuaW1hdGlvbnMoKTsKKyAgICAgIHZhciBjdXJyZW50ID0gdGVzdFJ1bm5lci5udW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMoKTsKICAgICAgIGlmIChjdXJyZW50ID09IGV4cGVjdGVkKQogICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0MScpLmlubmVySFRNTCA9ICJOdW1i
ZXIgb2YgYWN0aXZlIGFuaW1hdGlvbnMgYWZ0ZXIgdHJhbnNpdGlvbiBpcyAoIiArIGN1cnJlbnQg
KyAiKSBhcyBleHBlY3RlZCI7CiAgICAgICBlbHNlCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZXN1bHQxJykuaW5uZXJIVE1MID0gIk51bWJlciBvZiBhY3RpdmUgYW5pbWF0aW9u
cyBhZnRlciB0cmFuc2l0aW9uIGlzICgiICsgY3VycmVudCArICIpIGJ1dCB3YXMgZXhwZWN0aW5n
ICgiICsgZXhwZWN0ZWQgKyAiKSI7CiAgICAgICAKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KICAg
ICAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewpAQCAtNDgsOSArNDgsOSBAQAogICAgIH0KICAg
ICAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgCiAgICAgICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CiAgICAgICAg
IHRhcmdldC5zdHlsZS5sZWZ0ID0gJzIwMHB4JzsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRp
b25zL3plcm8tZHVyYXRpb24td2l0aG91dC11bml0cy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3RyYW5zaXRpb25zL3plcm8tZHVyYXRpb24td2l0aG91dC11bml0cy5odG1sCShyZXZp
c2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdp
dGhvdXQtdW5pdHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsOCArMTMsOCBAQAogICAgIH0K
ICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgewpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvM2Qv
aW50ZXJydXB0ZWQtdHJhbnNpdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Ry
YW5zaXRpb25zLzNkL2ludGVycnVwdGVkLXRyYW5zaXRpb24uaHRtbAkocmV2aXNpb24gMTIwNTE2
KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvM2QvaW50ZXJydXB0ZWQtdHJhbnNpdGlvbi5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw5ICsxMiw5IEBACiA8L3N0eWxlPgogPHNjcmlwdD4K
IAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHdpbmRv
dy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CiB9CiAKIHZhciBOVU1CRVJfT0ZfSU5URVJSVVBUSU9OUyA9IDMwOwpAQCAtMzQs
OCArMzQsOCBAQCBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAgIHZhciByZXN1bHRzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdHMiKTsKICAgICByZXN1bHRzLmlubmVyVGV4dCA9
ICJUaGUgdHJhbnNpdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiI7CiAgICAgCi0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbiAoKSB7CkBAIC01Miw0ICs1Miw0IEBAIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24KICA8cD5UaGlzIHRlc3Qgc2hvdWxkIG5v
dCBjcmFzaDwvcD4KICA8cCBpZD0icmVzdWx0cyI+PC9wPgogPC9ib2R5PgotPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3RyYXZl
cnNhbC9tb3otYnVnNTU5NTI2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhdmVy
c2FsL21vei1idWc1NTk1MjYuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMv
dHJhdmVyc2FsL21vei1idWc1NTk1MjYuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgs
OCBAQCBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnCiA8L2Rpdj4KIDxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CiAKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIC8qKiBU
ZXN0IGZvciBCdWcgNTU5NTI2ICoqLwogCkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbW96
LWJ1ZzU5MDc3MS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9tb3ot
YnVnNTkwNzcxLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNh
bC9tb3otYnVnNTkwNzcxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDggKzE0LDggQEAgaHR0
cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZwogPHByZSBpZD0idGVzdCI+CiA8
c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgogCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAvKiog
VGVzdCBmb3IgQnVnIDU5MDc3MSAqKi8KIApJbmRleDogTGF5b3V0VGVzdHMvdHJhdmVyc2FsL21v
ei1tdXRhdGlvbnMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9t
b3otbXV0YXRpb25zLTMuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJh
dmVyc2FsL21vei1tdXRhdGlvbnMtMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw4ICsxMSw4
IEBACiBSZXN1bHRzIGF2YWlsYWJsZSBpbiB0aGUgSmF2YVNjcmlwdCBjb25zb2xlCiBUZXN0IGFk
YXB0ZWQgZnJvbSBodHRwOi8vbXhyLm1vemlsbGEub3JnL21vemlsbGEtY2VudHJhbC9zb3VyY2Uv
Y29udGVudC9iYXNlL3Rlc3QvdGVzdF9Ob2RlSXRlcmF0b3JfbXV0YXRpb25zXzMuaHRtbAogPHNj
cmlwdCBjbGFzcz0idGVzdGJvZHkiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAKICAgZnVuY3Rpb24gJChpZCkgewogICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCk7CkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci0w
MDEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRv
ci0wMDEuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhdmVyc2FsL25v
ZGUtaXRlcmF0b3ItMDAxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksOCArOSw4IEBACiA8L2Rp
dj4KIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBDb3VyaWVyOyBmb250LXNpemU6IDE0OyI+CiA8
c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QnKTsKIApJbmRleDogTGF5b3V0VGVzdHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0b3It
MDAyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0
b3ItMDAyLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNhbC9u
b2RlLWl0ZXJhdG9yLTAwMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDggKzksOCBAQAogPC9k
aXY+CiA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjsgZm9udC1zaXplOiAxNDsiPgog
PHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0Jyk7CiAKSW5kZXg6IExheW91dFRlc3RzL3RyYXZlcnNhbC9ub2RlLWl0ZXJhdG9y
LTAwMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9ub2RlLWl0ZXJh
dG9yLTAwMy5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90cmF2ZXJzYWwv
bm9kZS1pdGVyYXRvci0wMDMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw4ICs5LDggQEAKIDwv
ZGl2PgogPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7IGZvbnQtc2l6ZTogMTQ7Ij4K
IDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdCcpOwogCkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRv
ci0wMDQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVy
YXRvci0wMDQuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhdmVyc2Fs
L25vZGUtaXRlcmF0b3ItMDA0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksOCArOSw4IEBACiA8
L2Rpdj4KIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBDb3VyaWVyOyBmb250LXNpemU6IDE0OyI+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QnKTsKIApJbmRleDogTGF5b3V0VGVzdHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0
b3ItMDA1Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhdmVyc2FsL25vZGUtaXRl
cmF0b3ItMDA1Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNh
bC9ub2RlLWl0ZXJhdG9yLTAwNS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDggKzksOCBAQAog
PC9kaXY+CiA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjsgZm9udC1zaXplOiAxNDsi
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0Jyk7CiAKSW5kZXg6IExheW91dFRlc3RzL3RyYXZlcnNhbC9ub2RlLWl0ZXJh
dG9yLTAwNi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9ub2RlLWl0
ZXJhdG9yLTAwNi5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90cmF2ZXJz
YWwvbm9kZS1pdGVyYXRvci0wMDYuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDggQEAK
IDxkaXYgaWQ9InRlc3QiPjxzcGFuIGlkPSJBIj48L3NwYW4+PHNwYW4gaWQ9IkIiPjwvc3Bhbj48
c3BhbiBpZD0iQyI+PC9zcGFuPjwvZGl2PgogPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJp
ZXI7IGZvbnQtc2l6ZTogMTQ7Ij4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogdmFyIHJvb3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwogCkluZGV4OiBMYXlvdXRUZXN0cy90
cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci0wMDZhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItMDA2YS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisr
KyBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci0wMDZhLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTksOCArOSw4IEBACiA8L2Rpdj4KIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBD
b3VyaWVyOyBmb250LXNpemU6IDE0OyI+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIHZhciBy
b290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKIApJbmRleDogTGF5b3V0VGVz
dHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItMDA3Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItMDA3Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikK
KysrIExheW91dFRlc3RzL3RyYXZlcnNhbC9ub2RlLWl0ZXJhdG9yLTAwNy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC05LDggKzksOCBAQAogPC9kaXY+CiA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTog
Q291cmllcjsgZm9udC1zaXplOiAxNDsiPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiB2YXIg
cm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CiAKSW5kZXg6IExheW91dFRl
c3RzL3RyYXZlcnNhbC9ub2RlLWl0ZXJhdG9yLTAwOC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3RyYXZlcnNhbC9ub2RlLWl0ZXJhdG9yLTAwOC5odG1sCShyZXZpc2lvbiAxMjA1MTYp
CisrKyBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci0wMDguaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtOSw4ICs5LDggQEAKIDwvZGl2PgogPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6
IENvdXJpZXI7IGZvbnQtc2l6ZTogMTQ7Ij4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogdmFy
IHBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CiAvL3ZhciByb290ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0EnKTsKSW5kZXg6IExheW91dFRlc3RzL3RyYXZlcnNh
bC9ub2RlLWl0ZXJhdG9yLTAwOS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZl
cnNhbC9ub2RlLWl0ZXJhdG9yLTAwOS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRU
ZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci0wMDkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
OCw4ICs4LDggQEAKICAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7IGZvbnQtc2l6
ZTogMTQ7Ij4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAgIHZhciBkYXRhVVJM
ID0gJ3Jlc291cmNlcy9ub2RlLWl0ZXJhdG9yLTAwOS1kYXRhLnhtbCc7CiAgICAgICBmdW5jdGlv
biBmZXRjaFhNTCgpCkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci1w
cm90b3R5cGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1p
dGVyYXRvci1wcm90b3R5cGUuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMv
dHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItcHJvdG90eXBlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTksOCArOSw4IEBAIHBhcmVudCBmcmFtZSBoZXJlLiAgVGhpcyB0ZXN0IGRvY3VtZW50cyAKIGl0
LjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
CiBOb2RlLnByb3RvdHlwZS5mb28gPSAicGFyZW50IjsKIApJbmRleDogTGF5b3V0VGVzdHMvdHJh
dmVyc2FsL3NpemUtemVyby1ydW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2
ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0
cy90cmF2ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMs
OCBAQAogPGhlYWQ+CiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBpZih3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBpZih3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIAogICAgIHZhciB0ZXh0bm9kZTEgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibm9kZSIpLmZpcnN0Q2hpbGQ7CiAgICAgdmFyIHRleHRub2RlMiA9IHRleHRu
b2RlMS5zcGxpdFRleHQoMyk7CkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvc3RheS13aXRo
aW4tcm9vdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9zdGF5LXdp
dGhpbi1yb290Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNh
bC9zdGF5LXdpdGhpbi1yb290Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8
aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+Ci1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwv
dHJlZS13YWxrZXItMDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhdmVyc2Fs
L3RyZWUtd2Fsa2VyLTAwMS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90
cmF2ZXJzYWwvdHJlZS13YWxrZXItMDAxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQw
LDggQEAKIDwvZGl2PgogPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7IGZvbnQtc2l6
ZTogMTQ7IHdoaXRlLXNwYWNlOiBwcmUiPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiB2YXIg
cm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CiB2YXIgc3RhcnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnQScpOwpJbmRleDogTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3Ry
ZWUtd2Fsa2VyLTAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC90
cmVlLXdhbGtlci0wMDIuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJh
dmVyc2FsL3RyZWUtd2Fsa2VyLTAwMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00MCw4ICs0MCw4
IEBACiA8L2Rpdj4KIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBDb3VyaWVyOyBmb250LXNpemU6
IDE0OyB3aGl0ZS1zcGFjZTogcHJlIj4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogdmFyIHJv
b3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwogdmFyIHN0YXJ0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ0InKTsKSW5kZXg6IExheW91dFRlc3RzL3RyYXZlcnNhbC90cmVl
LXdhbGtlci0wMDMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvdHJl
ZS13YWxrZXItMDAzLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZl
cnNhbC90cmVlLXdhbGtlci0wMDMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDYsOCArNDYsOCBA
QAogPC9kaXY+CiA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjsgZm9udC1zaXplOiAx
NDsgd2hpdGUtc3BhY2U6IHByZSI+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIHZhciByb290
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKIHZhciBzdGFydCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdBJyk7CkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvdHJlZS13
YWxrZXItMDA0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3RyZWUt
d2Fsa2VyLTAwNC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90cmF2ZXJz
YWwvdHJlZS13YWxrZXItMDA0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDggQEAK
IDwvZGl2PgogPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7IGZvbnQtc2l6ZTogMTQ7
IHdoaXRlLXNwYWNlOiBwcmUiPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiB2YXIgcm9vdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CiB2YXIgc3RhcnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnQScpOwpJbmRleDogTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3RyZWUtd2Fs
a2VyLTAwNS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC90cmVlLXdh
bGtlci0wMDUuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhdmVyc2Fs
L3RyZWUtd2Fsa2VyLTAwNS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Niw4ICs0Niw4IEBACiA8
L2Rpdj4KIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBDb3VyaWVyOyBmb250LXNpemU6IDE0OyB3
aGl0ZS1zcGFjZTogcHJlIj4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogdmFyIHJvb3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwogdmFyIHN0YXJ0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ0InKTsKSW5kZXg6IExheW91dFRlc3RzL3RyYXZlcnNhbC90cmVlLXdhbGtl
ci0wMDYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvdHJlZS13YWxr
ZXItMDA2Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNhbC90
cmVlLXdhbGtlci0wMDYuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw4ICs4LDggQEAKICAgPGRp
diBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7IGZvbnQtc2l6ZTogMTQ7Ij4KICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgogCi0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAgIHZhciBkYXRhVVJMID0gJ3Jlc291cmNlcy9ub2Rl
LWl0ZXJhdG9yLTAwOS1kYXRhLnhtbCc7CiAgICAgICBmdW5jdGlvbiBmZXRjaFhNTCgpCkluZGV4
OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvdHJlZS13YWxrZXItZmlsdGVyLTEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvdHJlZS13YWxrZXItZmlsdGVyLTEuaHRtbAko
cmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3RyZWUtd2Fsa2VyLWZp
bHRlci0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDggKzM2LDggQEAgZnVuY3Rpb24ga2lk
KHBhcmVudCkgewogfQogCiBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogCiAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsgLy8ganVzdCB0byBoYXZlIG9uZSBtb3JlIGxldmVsIHVwLgogCkluZGV4OiBMYXlvdXRUZXN0
cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRvci8wMDEueG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yLzAwMS54bWwJKHJldmlzaW9u
IDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yLzAw
MS54bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiAgIDx0aXRsZT5ET00gVHJhdmVy
c2FsOiBOb2RlSXRlcmF0b3I6IEJhc2ljczwvdGl0bGU+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4gPCFbQ0RBVEFbCiAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewotICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKICAgICAgIHZhciBpdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FMTCwgbnVsbCwgZmFsc2UpOwogICAgICAgdmFyIGV4
cGVjdGVkID0gbmV3IEFycmF5KDksIC8vIGRvY3VtZW50CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMSwgLy8gaHRtbApJbmRleDogTGF5b3V0VGVzdHMvdHJhdmVyc2FsL2hpeGllLW5v
ZGUtaXRlcmF0b3IvMDAyLnhtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2ZXJzYWwv
aGl4aWUtbm9kZS1pdGVyYXRvci8wMDIueG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRU
ZXN0cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRvci8wMDIueG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0zLDcgKzMsNyBAQAogICA8dGl0bGU+RE9NIFRyYXZlcnNhbDogTm9kZUl0ZXJhdG9yOiBC
YXNpY3MgQmFja3dhcmRzPC90aXRsZT4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PiA8IVtDREFUQVsKICAgICBmdW5jdGlvbiBkb1Rlc3QoKSB7Ci0gICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
ICAgdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQUxMLCBudWxsLCBmYWxzZSk7CiAgICAgICB2YXIgZXhwZWN0ZWQgPSBu
ZXcgQXJyYXkoOSwgLy8gZG9jdW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
LCAvLyBodG1sCkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRv
ci8wMDMueG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1ub2Rl
LWl0ZXJhdG9yLzAwMy54bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZl
cnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yLzAwMy54bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcg
KzEyLDcgQEAKICAgICB2YXIgZXJyb3JzID0gMDsKICAgICB2YXIgbG9nID0gJyc7CiAgICAgZnVu
Y3Rpb24gZG9UZXN0KCkgewotICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgIHZhciBpdGVyYXRvciA9IGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcp
LCBOb2RlRmlsdGVyLlNIT1dfQUxMLCBudWxsLCBmYWxzZSk7CiAgICAgICB2YXIgcm9vdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290Jyk7CiAgICAgICB2YXIgQSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdBJyk7CkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvaGl4aWUtbm9k
ZS1pdGVyYXRvci8wMDQueG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9o
aXhpZS1ub2RlLWl0ZXJhdG9yLzAwNC54bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRl
c3RzL3RyYXZlcnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yLzAwNC54bWwJKHdvcmtpbmcgY29weSkK
QEAgLTUsNyArNSw3IEBACiAgICAgdmFyIGVycm9ycyA9IDA7CiAgICAgdmFyIGxvZyA9ICcnOwog
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICB2YXIgaXRlcmF0
b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jvb3QnKSwgTm9kZUZpbHRlci5TSE9XX0FMTCwgbnVsbCwgZmFsc2UpOwogICAgICAgdmFyIHJv
b3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcpOwogICAgICAgdmFyIEEgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnQScpOwpJbmRleDogTGF5b3V0VGVzdHMvdHJhdmVyc2FsL2hp
eGllLW5vZGUtaXRlcmF0b3IvMDA1LnhtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmF2
ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRvci8wMDUueG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBM
YXlvdXRUZXN0cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRvci8wMDUueG1sCSh3b3JraW5n
IGNvcHkpCkBAIC01LDcgKzUsNyBAQAogICAgIHZhciBlcnJvcnMgPSAwOwogICAgIHZhciBsb2cg
PSAnJzsKICAgICBmdW5jdGlvbiBkb1Rlc3QoKSB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgdmFy
IGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyb290JyksIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51bGwsIGZhbHNlKTsKICAgICAg
IHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTsKICAgICAgIHZhciBB
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0EnKTsKSW5kZXg6IExheW91dFRlc3RzL3RyYXZl
cnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yLzAwNi54bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvdHJhdmVyc2FsL2hpeGllLW5vZGUtaXRlcmF0b3IvMDA2LnhtbAkocmV2aXNpb24gMTIwNTE2
KQorKysgTGF5b3V0VGVzdHMvdHJhdmVyc2FsL2hpeGllLW5vZGUtaXRlcmF0b3IvMDA2LnhtbAko
d29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKICAgICB2YXIgZXJyb3JzID0gMDsKICAgICB2
YXIgbG9nID0gJyc7CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewotICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAgIHZhciBpdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgncm9vdCcpLCBOb2RlRmlsdGVyLlNIT1dfQUxMLCBudWxsLCBmYWxzZSk7
CiAgICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290Jyk7CiAgICAg
ICB2YXIgQSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdBJyk7CkluZGV4OiBMYXlvdXRUZXN0
cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRvci8wMDcueG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yLzAwNy54bWwJKHJldmlzaW9u
IDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yLzAw
Ny54bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBACiAgICAgdmFyIGVycm9ycyA9IDA7
CiAgICAgdmFyIGxvZyA9ICcnOwogICAgIGZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgICB2YXIgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKSwgTm9kZUZpbHRlci5TSE9XX0FMTCwgbnVsbCwg
ZmFsc2UpOwogICAgICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcp
OwogICAgICAgdmFyIEEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQScpOwpJbmRleDogTGF5
b3V0VGVzdHMvdHJhdmVyc2FsL2hpeGllLW5vZGUtaXRlcmF0b3IvMDA4LnhtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRvci8wMDgueG1sCShy
ZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVy
YXRvci8wMDgueG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUsNyBAQAogICAgIHZhciBlcnJv
cnMgPSAwOwogICAgIHZhciBsb2cgPSAnJzsKICAgICBmdW5jdGlvbiBkb1Rlc3QoKSB7Ci0gICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290JyksIE5vZGVGaWx0ZXIuU0hPV19BTEws
IG51bGwsIGZhbHNlKTsKICAgICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jvb3QnKTsKICAgICAgIHZhciBBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0EnKTsKSW5k
ZXg6IExheW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yLzAwOS54bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhdmVyc2FsL2hpeGllLW5vZGUtaXRlcmF0b3IvMDA5
LnhtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdHJhdmVyc2FsL2hpeGllLW5v
ZGUtaXRlcmF0b3IvMDA5LnhtbAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKICAgICB2
YXIgZXJyb3JzID0gMDsKICAgICB2YXIgbG9nID0gJyc7CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkg
ewotICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICAgIHZhciBpdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcpLCBOb2RlRmlsdGVyLlNI
T1dfQUxMLCBudWxsLCBmYWxzZSk7CiAgICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyb290Jyk7CiAgICAgICB2YXIgQSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdB
Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRvci8wMTAu
eG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1ub2RlLWl0ZXJh
dG9yLzAxMC54bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNhbC9o
aXhpZS1ub2RlLWl0ZXJhdG9yLzAxMC54bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBA
CiAgIDx0aXRsZT5ET00gVHJhdmVyc2FsOiBOb2RlSXRlcmF0b3I6IEZpbHRlcnM8L3RpdGxlPgog
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IDwhW0NEQVRBWwogICAgIGZ1bmN0aW9u
IGRvVGVzdCgpIHsKLSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICB2YXIgaXRlcmF0b3IgPSBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BTEwsIHRlc3RG
aWx0ZXIsIGZhbHNlKTsKICAgICAgIC8vIHNraXBzIHRleHQgbm9kZXMgYW5kIGJvZHkgZWxlbWVu
dAogICAgICAgdmFyIGV4cGVjdGVkID0gbmV3IEFycmF5KDksIC8vIGRvY3VtZW50CkluZGV4OiBM
YXlvdXRUZXN0cy90cmF2ZXJzYWwvaGl4aWUtbm9kZS1pdGVyYXRvci9vcmlnaW4udHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1ub2RlLWl0ZXJhdG9yL29yaWdp
bi50eHQJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3RyYXZlcnNhbC9oaXhpZS1u
b2RlLWl0ZXJhdG9yL29yaWdpbi50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiBJ
IGdvdCB0aGVzZSB0ZXN0cyBmcm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvZG9t
L3RyYXZlcnNhbC9ub2RlLWl0ZXJhdG9yLyBvbiBGZWJydWFyeSAzLCAyMDA4LgogVGhlIG9ubHkg
Y2hhbmdlcyBJIG1hZGUgd2VyZToKIAotICAgIDEpIEFkZCBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCkgY2FsbHMgdG8gZWFjaCB0ZXN0LgorICAgIDEpIEFkZCB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKSBjYWxscyB0byBlYWNoIHRlc3QuCiAKICAgICAyKSBDaGFuZ2VkIHRoZSA8IVtD
REFUQVtdXT4gbmVhciB0aGUgYm90dG9tIG9mIHRlc3RzIDAwMSwgMDAyLCBhbmQgMDEwIHRvCiAg
ICAgICAgPCFbQ0RBVEFbIF1dPiB0byB3b3JrIGFyb3VuZCA8aHR0cDovL2J1Z3ppbGxhLmdub21l
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE0MTgxPi4KSW5kZXg6IExheW91dFRlc3RzL3VzZXJzY3Jp
cHRzL2RvY3VtZW50LWVsZW1lbnQtYXZhaWxhYmxlLWF0LXN0YXJ0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvZG9jdW1lbnQtZWxlbWVudC1hdmFpbGFibGUtYXQt
c3RhcnQuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMv
ZG9jdW1lbnQtZWxlbWVudC1hdmFpbGFibGUtYXQtc3RhcnQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMiw5ICsyLDkgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJpZiAoZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50KSBjb25zb2xlLmxvZygnU1VDQ0VTUycpOyIsIHRydWUsIHRydWUpOwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci5hZGRVc2VyU2NyaXB0KCJpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
KSBjb25zb2xlLmxvZygnU1VDQ0VTUycpOyIsIHRydWUsIHRydWUpOwogfQogPC9zY3JpcHQ+CiA8
L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0eWxlc2hl
ZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9taXhlZC1jYXNl
LXN0eWxlc2hlZXQuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvbWl4ZWQtY2FzZS1zdHlsZXNoZWV0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSAr
MSw5IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU3R5bGVTaGVldCgiI21p
eGVkQ2FzZSB7IGRpc3BsYXk6IG5vbmUgfSIsIHRydWUpOworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHdpbmRvdy50ZXN0
UnVubmVyLmFkZFVzZXJTdHlsZVNoZWV0KCIjbWl4ZWRDYXNlIHsgZGlzcGxheTogbm9uZSB9Iiwg
dHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL3VzZXJzY3Jp
cHRzL3NjcmlwdC1ub3QtcnVuLWZvci1mcmFnbWVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtbm90LXJ1bi1mb3ItZnJhZ21lbnRzLmh0bWwJKHJl
dmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ub3QtcnVu
LWZvci1mcmFnbWVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiwxMCBAQAogPGh0
bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRV
c2VyU2NyaXB0KCJjb25zb2xlLmxvZygnaW5qZWN0ZWQ6ICcgKyBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmKTsgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkaXYuaW5uZXJI
VE1MID0gJzxwPmhpPC9wPic7IiwgdHJ1ZSwgdHJ1ZSk7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmFkZFVzZXJTY3JpcHQoImNvbnNvbGUubG9nKCdpbmpl
Y3RlZDogJyArIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpOyB2YXIgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7IGRpdi5pbm5lckhUTUwgPSAnPHA+aGk8L3A+JzsiLCB0cnVlLCB0
cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvdXNlcnNjcmlw
dHMvc2NyaXB0LXJ1bi1hdC1lbmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy91c2Vy
c2NyaXB0cy9zY3JpcHQtcnVuLWF0LWVuZC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlv
dXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtcnVuLWF0LWVuZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDkgKzIsOSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSAnUEFTUyciLCBmYWxzZSwgdHJ1ZSk7
CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICB0ZXN0UnVubmVyLmFkZFVzZXJTY3JpcHQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQnKS5pbm5lckhUTUwgPSAnUEFTUyciLCBmYWxzZSwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtc3Rh
cnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtcnVu
LWF0LXN0YXJ0Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3VzZXJzY3Jp
cHRzL3NjcmlwdC1ydW4tYXQtc3RhcnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw5ICsyLDkg
QEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJpZiAod2luZG93LmxvY2F0aW9uID09ICdh
Ym91dDpibGFuaycpIGNvbnNvbGUubG9nKCdTVUNDRVNTJyk7IiwgdHJ1ZSwgdHJ1ZSk7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0
ZXN0UnVubmVyLmFkZFVzZXJTY3JpcHQoImlmICh3aW5kb3cubG9jYXRpb24gPT0gJ2Fib3V0OmJs
YW5rJykgY29uc29sZS5sb2coJ1NVQ0NFU1MnKTsiLCB0cnVlLCB0cnVlKTsKIH0KIDwvc2NyaXB0
PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2ltcGxlLXN0eWxlc2hl
ZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zaW1wbGUtc3R5
bGVzaGVldC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy9zaW1wbGUtc3R5bGVzaGVldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmFkZFVzZXJTdHlsZVNoZWV0KCJkaXYgeyB3aWR0aDowOyB9IiwgdHJ1ZSk7
CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICB0ZXN0UnVubmVyLmFkZFVzZXJTdHlsZVNoZWV0KCJkaXYgeyB3aWR0aDowOyB9IiwgdHJ1
ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3VzZXItc2NyaXB0LWFsbC1mcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy91
c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLmh0bWwJKHJldmlzaW9uIDEyMDUxNikK
KysrIExheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWFsbC1mcmFtZXMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwxMSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2Ny
aXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhpbmdlcicpLnN0eWxlLmRpc3BsYXkgPSAn
bm9uZSc7IiwKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHdpbmRvdy50ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5kb3cudGVzdFJ1
bm5lci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhpbmdlcicpLnN0
eWxlLmRpc3BsYXkgPSAnbm9uZSc7IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRl
c3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWF1ZGlvLWRvY3VtZW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYXVkaW8tZG9jdW1lbnQu
aHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtYXVkaW8tZG9jdW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBA
QAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiY29uc29sZS5sb2co
J1N0YXJ0IFNjcmlwdDogJyArIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpIiwgdHJ1ZSwgdHJ1ZSk7
Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImNvbnNvbGUu
bG9nKCdFbmQgU2NyaXB0OiAnICsgZG9jdW1lbnQubG9jYXRpb24uaHJlZikiLCBmYWxzZSwgdHJ1
ZSk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIuYWRkVXNlclNjcmlwdCgiY29uc29sZS5s
b2coJ1N0YXJ0IFNjcmlwdDogJyArIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpIiwgdHJ1ZSwgdHJ1
ZSk7CisgICAgd2luZG93LnRlc3RSdW5uZXIuYWRkVXNlclNjcmlwdCgiY29uc29sZS5sb2coJ0Vu
ZCBTY3JpcHQ6ICcgKyBkb2N1bWVudC5sb2NhdGlvbi5ocmVmKSIsIGZhbHNlLCB0cnVlKTsKIH0K
IDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtaW1hZ2UtZG9jdW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy91c2Vy
c2NyaXB0cy91c2VyLXNjcmlwdC1pbWFnZS1kb2N1bWVudC5odG1sCShyZXZpc2lvbiAxMjA1MTYp
CisrKyBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1pbWFnZS1kb2N1bWVudC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDEwIEBACiA8aHRtbD4KIDxoZWFkPgogPHNj
cmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICB3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci5hZGRVc2VyU2NyaXB0KCJjb25zb2xlLmxvZygnU3RhcnQgU2NyaXB0OiAnICsgZG9j
dW1lbnQubG9jYXRpb24uaHJlZikiLCB0cnVlLCB0cnVlKTsKLSAgICB3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiY29uc29sZS5sb2coJ0VuZCBTY3JpcHQ6ICcgKyBk
b2N1bWVudC5sb2NhdGlvbi5ocmVmKSIsIGZhbHNlLCB0cnVlKTsKK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cu
dGVzdFJ1bm5lci5hZGRVc2VyU2NyaXB0KCJjb25zb2xlLmxvZygnU3RhcnQgU2NyaXB0OiAnICsg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZikiLCB0cnVlLCB0cnVlKTsKKyAgICB3aW5kb3cudGVzdFJ1
bm5lci5hZGRVc2VyU2NyaXB0KCJjb25zb2xlLmxvZygnRW5kIFNjcmlwdDogJyArIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYpIiwgZmFsc2UsIHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1wbHVnaW4tZG9jdW1lbnQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1w
bHVnaW4tZG9jdW1lbnQuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdXNl
cnNjcmlwdHMvdXNlci1zY3JpcHQtcGx1Z2luLWRvY3VtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTAgKzEsMTAgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3Jp
cHQoImNvbnNvbGUubG9nKCdTdGFydCBTY3JpcHQ6ICcgKyBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
KSIsIHRydWUsIHRydWUpOwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2Vy
U2NyaXB0KCJjb25zb2xlLmxvZygnRW5kIFNjcmlwdDogJyArIGRvY3VtZW50LmxvY2F0aW9uLmhy
ZWYpIiwgZmFsc2UsIHRydWUpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgd2luZG93
LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHdpbmRvdy50ZXN0UnVubmVyLmFkZFVzZXJT
Y3JpcHQoImNvbnNvbGUubG9nKCdTdGFydCBTY3JpcHQ6ICcgKyBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmKSIsIHRydWUsIHRydWUpOworICAgIHdpbmRvdy50ZXN0UnVubmVyLmFkZFVzZXJTY3JpcHQo
ImNvbnNvbGUubG9nKCdFbmQgU2NyaXB0OiAnICsgZG9jdW1lbnQubG9jYXRpb24uaHJlZikiLCBm
YWxzZSwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL3Vz
ZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHkuaHRtbAko
cmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQt
dG9wLWZyYW1lLW9ubHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwxMSBAQAogPGh0
bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhpbmdl
cicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IiwKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5l
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGhpbmdlcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgZmFsc2UpOwogfQogPC9z
Y3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC12aWRlby1k
b2N1bWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXIt
c2NyaXB0LXZpZGVvLWRvY3VtZW50Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRl
c3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXZpZGVvLWRvY3VtZW50Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTAgKzEsMTAgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmFkZFVz
ZXJTY3JpcHQoImNvbnNvbGUubG9nKCdTdGFydCBTY3JpcHQ6ICcgKyBkb2N1bWVudC5sb2NhdGlv
bi5ocmVmKSIsIHRydWUsIHRydWUpOwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5h
ZGRVc2VyU2NyaXB0KCJjb25zb2xlLmxvZygnRW5kIFNjcmlwdDogJyArIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYpIiwgZmFsc2UsIHRydWUpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
d2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHdpbmRvdy50ZXN0UnVubmVyLmFk
ZFVzZXJTY3JpcHQoImNvbnNvbGUubG9nKCdTdGFydCBTY3JpcHQ6ICcgKyBkb2N1bWVudC5sb2Nh
dGlvbi5ocmVmKSIsIHRydWUsIHRydWUpOworICAgIHdpbmRvdy50ZXN0UnVubmVyLmFkZFVzZXJT
Y3JpcHQoImNvbnNvbGUubG9nKCdFbmQgU2NyaXB0OiAnICsgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZikiLCBmYWxzZSwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRl
c3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sCShyZXZp
c2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1m
cmFtZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwxMSBAQAogPGh0bWw+CiA8aGVh
ZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICB3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5hZGRVc2VyU3R5bGVTaGVldCgiI3RoaW5nZXIgeyBkaXNwbGF5Om5vbmU7IH0iLCB0cnVlKTsK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5hZGRV
c2VyU3R5bGVTaGVldCgiI3RoaW5nZXIgeyBkaXNwbGF5Om5vbmU7IH0iLCB0cnVlKTsKIH0KIDwv
c2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zdHls
ZS10b3AtZnJhbWUtb25seS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3VzZXJzY3Jp
cHRzL3VzZXItc3R5bGUtdG9wLWZyYW1lLW9ubHkuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysg
TGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDExIEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICB3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTdHls
ZVNoZWV0KCIjdGhpbmdlciB7IGRpc3BsYXk6bm9uZTsgfSIsIGZhbHNlKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB3
aW5kb3cudGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5hZGRVc2VyU3R5bGVTaGVl
dCgiI3RoaW5nZXIgeyBkaXNwbGF5Om5vbmU7IH0iLCBmYWxzZSk7CiB9CiA8L3NjcmlwdD4KIDwv
aGVhZD4KSW5kZXg6IExheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1p
c29sYXRlZC13b3JsZC0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdXNlcnNjcmlw
dHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbAkocmV2aXNpb24gMTIw
NTE2KQorKysgTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xh
dGVkLXdvcmxkLTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsOCArMTQsOCBAQCB2YXIgZXhw
ZWN0ZWRSZWNvcmRDb3VudCA9IDEyOwogdmFyIHJlY29yZENvdW50ID0gMDsKIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVk
IiwgZnVuY3Rpb24oZSkgewogICAgIHJlY29yZENvdW50Kys7Ci0gICAgaWYgKHJlY29yZENvdW50
ID09PSBleHBlY3RlZFJlY29yZENvdW50ICYmIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmIChyZWNv
cmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3VudCAmJiB3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9LCBmYWxzZSk7CiAKIGZ1bmN0aW9uIGxv
Zyhtc2cpIHsKQEAgLTU1LDEwICs1NSwxMCBAQCB2YXIgZXhjZXB0aW9ucyA9IGZ1bmN0aW9uKGlz
b2xhdGVkV29ybGQpCiAgICAgdGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29sYXRlZFdv
cmxkICsgIiBpbmxpbmUgc2NyaXB0LiIpOwogfQogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5hZGRVc2VyU2NyaXB0KCIoIiArIGV4Y2VwdGlvbnMgKyAiKSgndXNlciBzY3JpcHQnKSIs
IGZhbHNlLCB0cnVlKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RS
dW5uZXIuYWRkVXNlclNjcmlwdCgiKCIgKyBleGNlcHRpb25zICsgIikoJ3VzZXIgc2NyaXB0Jyki
LCBmYWxzZSwgdHJ1ZSk7CiB9CiAKIGV4Y2VwdGlvbnMoIm1haW4gd29ybGQiKTsKSW5kZXg6IExh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0y
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTMsOCArMTMsOCBAQCB3ZWxsIGFzIGZvciBleGNlcHRpb25z
IGluIHRoZSBtYWluIHdvcmxkCiB2YXIgZXhwZWN0ZWRSZWNvcmRDb3VudCA9IDEwOwogdmFyIHJl
Y29yZENvdW50ID0gMDsKIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYWRkRXZl
bnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkIiwgZnVuY3Rpb24oZSkgewotICAgIGlmICgrK3Jl
Y29yZENvdW50ID09PSBleHBlY3RlZFJlY29yZENvdW50ICYmIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAg
IGlmICgrK3JlY29yZENvdW50ID09PSBleHBlY3RlZFJlY29yZENvdW50ICYmIHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0sIGZhbHNlKTsKIAog
dmFyIHRocm93RXhjZXB0aW9ucyA9IGZ1bmN0aW9uKGlzb2xhdGVkV29ybGQpCkBAIC01NCwxMCAr
NTQsMTAgQEAgdmFyIGVycm9ySGFuZGxlcnMgPSBmdW5jdGlvbihpc29sYXRlZFdvcgogICAgIH0s
IGZhbHNlKTsKIH07CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3Jp
cHQoIigiICsgZXJyb3JIYW5kbGVycyArICIpKCd1c2VyIHNjcmlwdCcpOyAoIiArIHRocm93RXhj
ZXB0aW9ucyArICIpKCd1c2VyIHNjcmlwdCcpIiwgZmFsc2UsIHRydWUpOworaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5hZGRVc2VyU2NyaXB0KCIoIiArIGVy
cm9ySGFuZGxlcnMgKyAiKSgndXNlciBzY3JpcHQnKTsgKCIgKyB0aHJvd0V4Y2VwdGlvbnMgKyAi
KSgndXNlciBzY3JpcHQnKSIsIGZhbHNlLCB0cnVlKTsKIH0KIAogdGhyb3dFeGNlcHRpb25zKCJt
YWluIHdvcmxkIik7CkluZGV4OiBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9yZXNvdXJjZXMvYmxh
bmsueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvcmVzb3VyY2Vz
L2JsYW5rLnhodG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy9yZXNvdXJjZXMvYmxhbmsueGh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsOCArMyw4IEBACiA8
Ym9keT4KIDxzY3JpcHQ+CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRl
c3RzL3VzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy91c2Vyc2NyaXB0cy9yZXNvdXJjZXMvZnJhbWUyLmh0bWwJKHJldmlzaW9uIDEyMDUx
NikKKysrIExheW91dFRlc3RzL3VzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTIuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxib2R5PgogPHNjcmlwdD4KIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIDwvc2Ny
aXB0PgogPGRpdiBpZD0idGhpbmdlciI+dGhpbmdlcjwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMv
d2ViYXJjaGl2ZS9hZG9wdC1hdHRyaWJ1dGUtc3R5bGVkLWJvZHktd2ViYXJjaGl2ZS1leHBlY3Rl
ZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmFyY2hpdmUvYWRvcHQt
YXR0cmlidXRlLXN0eWxlZC1ib2R5LXdlYmFyY2hpdmUtZXhwZWN0ZWQud2ViYXJjaGl2ZQkocmV2
aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9hZG9wdC1hdHRyaWJ1dGUt
c3R5bGVkLWJvZHktd2ViYXJjaGl2ZS1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3JraW5nIGNvcHkp
CkBAIC05LDEwICs5LDEwIEBACiAKICZsdDtzY3JpcHQmZ3Q7CiAKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJB
cmNoaXZlKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICB0
ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiB9CiAKIHZhciBzZWNvbmRXaW5kb3cgPSBudWxsOwpAQCAtNTMsMTAgKzUzLDEwIEBA
IGZ1bmN0aW9uIHByb2NlZGVBZnRlckNsb3NlZFdpbmRvdygpCiAgICAgCiAgICAgaWYgKHdpbmRv
dy5HQ0NvbnRyb2xsZXIpIHsKICAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLSAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGFsZXJ0KCJIb3cgc3RyYW5nZSAtIFlvdSBoYXZlIHdpbmRvdy5HQ0NvbnRyb2xs
ZXIsIGJ1dCBubyB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuICBIb3cgZGlkIHRoaXMgaGFw
cGVuPyIpOworICAgICAgICAgICAgYWxlcnQoIkhvdyBzdHJhbmdlIC0gWW91IGhhdmUgd2luZG93
LkdDQ29udHJvbGxlciwgYnV0IG5vIHdpbmRvdy50ZXN0UnVubmVyLiAgSG93IGRpZCB0aGlzIGhh
cHBlbj8iKTsKICAgICB9CiAgICAgZWxzZQogICAgICAgICBhbGVydCgiTm93IHdhaXQgZm9yIGdh
cmJhZ2UgY29sbGVjdGlvbiB0byBoYXZlIG9jY3VyZWQsIHRoZW4gc2F2ZSB0aGUgY3VycmVudCBw
YWdlIGFzIGEgV2ViQXJjaGl2ZS4iKTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvYWRv
cHQtYXR0cmlidXRlLXN0eWxlZC1ib2R5LXdlYmFyY2hpdmUuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Fkb3B0LWF0dHJpYnV0ZS1zdHlsZWQtYm9keS13ZWJhcmNo
aXZlLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvYWRv
cHQtYXR0cmlidXRlLXN0eWxlZC1ib2R5LXdlYmFyY2hpdmUuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMywxMCArMywxMCBAQAogCiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgdGVzdFJ1bm5l
ci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwog
fQogCiB2YXIgc2Vjb25kV2luZG93ID0gbnVsbDsKQEAgLTQ3LDEwICs0NywxMCBAQCBmdW5jdGlv
biBwcm9jZWRlQWZ0ZXJDbG9zZWRXaW5kb3coKQogICAgIAogICAgIGlmICh3aW5kb3cuR0NDb250
cm9sbGVyKSB7CiAgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBhbGVydCgiSG93IHN0cmFuZ2UgLSBZb3UgaGF2ZSB3aW5kb3cuR0NDb250cm9sbGVyLCBidXQg
bm8gd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLiAgSG93IGRpZCB0aGlzIGhhcHBlbj8iKTsK
KyAgICAgICAgICAgIGFsZXJ0KCJIb3cgc3RyYW5nZSAtIFlvdSBoYXZlIHdpbmRvdy5HQ0NvbnRy
b2xsZXIsIGJ1dCBubyB3aW5kb3cudGVzdFJ1bm5lci4gIEhvdyBkaWQgdGhpcyBoYXBwZW4/Iik7
CiAgICAgfQogICAgIGVsc2UKICAgICAgICAgYWxlcnQoIk5vdyB3YWl0IGZvciBnYXJiYWdlIGNv
bGxlY3Rpb24gdG8gaGF2ZSBvY2N1cmVkLCB0aGVuIHNhdmUgdGhlIGN1cnJlbnQgcGFnZSBhcyBh
IFdlYkFyY2hpdmUuIik7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Fkb3B0LWF0dHJp
YnV0ZS1zdHlsZWQtbm9kZS13ZWJhcmNoaXZlLWV4cGVjdGVkLndlYmFyY2hpdmUKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9hZG9wdC1hdHRyaWJ1dGUtc3R5bGVkLW5vZGUt
d2ViYXJjaGl2ZS1leHBlY3RlZC53ZWJhcmNoaXZlCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlv
dXRUZXN0cy93ZWJhcmNoaXZlL2Fkb3B0LWF0dHJpYnV0ZS1zdHlsZWQtbm9kZS13ZWJhcmNoaXZl
LWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKQEAgLTksMTAgKzksMTAgQEAKIAog
Jmx0O3NjcmlwdCZndDsKIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3Blbldp
bmRvd3MoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogdmFyIG90aGVy
V2luZG93ID0gbnVsbDsKQEAgLTUzLDEwICs1MywxMCBAQCBmdW5jdGlvbiBwcm9jZWRlQWZ0ZXJD
bG9zZWRXaW5kb3coKQogICAgIAogICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKSB7CiAgICAg
ICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhbGVydCgiSG93IHN0
cmFuZ2UgLSBZb3UgaGF2ZSB3aW5kb3cuR0NDb250cm9sbGVyLCBidXQgbm8gd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyLiAgSG93IGRpZCB0aGlzIGhhcHBlbj8iKTsKKyAgICAgICAgICAgIGFs
ZXJ0KCJIb3cgc3RyYW5nZSAtIFlvdSBoYXZlIHdpbmRvdy5HQ0NvbnRyb2xsZXIsIGJ1dCBubyB3
aW5kb3cudGVzdFJ1bm5lci4gIEhvdyBkaWQgdGhpcyBoYXBwZW4/Iik7CiAgICAgfQogICAgIGVs
c2UKICAgICAgICAgYWxlcnQoIk5vdyB3YWl0IGZvciBnYXJiYWdlIGNvbGxlY3Rpb24gdG8gaGF2
ZSBvY2N1cmVkLCB0aGVuIHNhdmUgdGhlIGN1cnJlbnQgcGFnZSBhcyBhIFdlYkFyY2hpdmUuIik7
CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Fkb3B0LWF0dHJpYnV0ZS1zdHlsZWQtbm9k
ZS13ZWJhcmNoaXZlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9h
ZG9wdC1hdHRyaWJ1dGUtc3R5bGVkLW5vZGUtd2ViYXJjaGl2ZS5odG1sCShyZXZpc2lvbiAxMjA1
MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Fkb3B0LWF0dHJpYnV0ZS1zdHlsZWQtbm9k
ZS13ZWJhcmNoaXZlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTAgKzMsMTAgQEAKIAogPHNj
cmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cERPTUFzV2ViQXJjaGl2ZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogdmFyIG90aGVyV2luZG93ID0g
bnVsbDsKQEAgLTQ3LDEwICs0NywxMCBAQCBmdW5jdGlvbiBwcm9jZWRlQWZ0ZXJDbG9zZWRXaW5k
b3coKQogICAgIAogICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKSB7CiAgICAgICAgIEdDQ29u
dHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhbGVydCgiSG93IHN0cmFuZ2UgLSBZ
b3UgaGF2ZSB3aW5kb3cuR0NDb250cm9sbGVyLCBidXQgbm8gd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyLiAgSG93IGRpZCB0aGlzIGhhcHBlbj8iKTsKKyAgICAgICAgICAgIGFsZXJ0KCJIb3cg
c3RyYW5nZSAtIFlvdSBoYXZlIHdpbmRvdy5HQ0NvbnRyb2xsZXIsIGJ1dCBubyB3aW5kb3cudGVz
dFJ1bm5lci4gIEhvdyBkaWQgdGhpcyBoYXBwZW4/Iik7CiAgICAgfQogICAgIGVsc2UKICAgICAg
ICAgYWxlcnQoIk5vdyB3YWl0IGZvciBnYXJiYWdlIGNvbGxlY3Rpb24gdG8gaGF2ZSBvY2N1cmVk
LCB0aGVuIHNhdmUgdGhlIGN1cnJlbnQgcGFnZSBhcyBhIFdlYkFyY2hpdmUuIik7CkluZGV4OiBM
YXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Fkb3B0LWlubGluZS1zdHlsZWQtbm9kZS13ZWJhcmNoaXZl
LWV4cGVjdGVkLndlYmFyY2hpdmUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2
ZS9hZG9wdC1pbmxpbmUtc3R5bGVkLW5vZGUtd2ViYXJjaGl2ZS1leHBlY3RlZC53ZWJhcmNoaXZl
CShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Fkb3B0LWlubGlu
ZS1zdHlsZWQtbm9kZS13ZWJhcmNoaXZlLWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29w
eSkKQEAgLTksMTAgKzksMTAgQEAKIAogJmx0O3NjcmlwdCZndDsKIAotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dl
YkFyY2hpdmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAg
IHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKIH0KIAogdmFyIG90aGVyV2luZG93ID0gbnVsbDsKQEAgLTUzLDEwICs1MywxMCBA
QCBmdW5jdGlvbiBwcm9jZWRlQWZ0ZXJDbG9zZWRXaW5kb3coKQogICAgIAogICAgIGlmICh3aW5k
b3cuR0NDb250cm9sbGVyKSB7CiAgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBhbGVydCgiSG93IHN0cmFuZ2UgLSBZb3UgaGF2ZSB3aW5kb3cuR0NDb250cm9s
bGVyLCBidXQgbm8gd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLiAgSG93IGRpZCB0aGlzIGhh
cHBlbj8iKTsKKyAgICAgICAgICAgIGFsZXJ0KCJIb3cgc3RyYW5nZSAtIFlvdSBoYXZlIHdpbmRv
dy5HQ0NvbnRyb2xsZXIsIGJ1dCBubyB3aW5kb3cudGVzdFJ1bm5lci4gIEhvdyBkaWQgdGhpcyBo
YXBwZW4/Iik7CiAgICAgfQogICAgIGVsc2UKICAgICAgICAgYWxlcnQoIk5vdyB3YWl0IGZvciBn
YXJiYWdlIGNvbGxlY3Rpb24gdG8gaGF2ZSBvY2N1cmVkLCB0aGVuIHNhdmUgdGhlIGN1cnJlbnQg
cGFnZSBhcyBhIFdlYkFyY2hpdmUuIik7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Fk
b3B0LWlubGluZS1zdHlsZWQtbm9kZS13ZWJhcmNoaXZlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvd2ViYXJjaGl2ZS9hZG9wdC1pbmxpbmUtc3R5bGVkLW5vZGUtd2ViYXJjaGl2ZS5o
dG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Fkb3B0LWlu
bGluZS1zdHlsZWQtbm9kZS13ZWJhcmNoaXZlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTAg
KzMsMTAgQEAKIAogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2Fu
T3BlbldpbmRvd3MoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogdmFy
IG90aGVyV2luZG93ID0gbnVsbDsKQEAgLTQ3LDEwICs0NywxMCBAQCBmdW5jdGlvbiBwcm9jZWRl
QWZ0ZXJDbG9zZWRXaW5kb3coKQogICAgIAogICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKSB7
CiAgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhbGVydCgi
SG93IHN0cmFuZ2UgLSBZb3UgaGF2ZSB3aW5kb3cuR0NDb250cm9sbGVyLCBidXQgbm8gd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLiAgSG93IGRpZCB0aGlzIGhhcHBlbj8iKTsKKyAgICAgICAg
ICAgIGFsZXJ0KCJIb3cgc3RyYW5nZSAtIFlvdSBoYXZlIHdpbmRvdy5HQ0NvbnRyb2xsZXIsIGJ1
dCBubyB3aW5kb3cudGVzdFJ1bm5lci4gIEhvdyBkaWQgdGhpcyBoYXBwZW4/Iik7CiAgICAgfQog
ICAgIGVsc2UKICAgICAgICAgYWxlcnQoIk5vdyB3YWl0IGZvciBnYXJiYWdlIGNvbGxlY3Rpb24g
dG8gaGF2ZSBvY2N1cmVkLCB0aGVuIHNhdmUgdGhlIGN1cnJlbnQgcGFnZSBhcyBhIFdlYkFyY2hp
dmUuIik7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2FyY2hpdmUtZW1wdHktZnJhbWUt
ZG9tLWV4cGVjdGVkLndlYmFyY2hpdmUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJj
aGl2ZS9hcmNoaXZlLWVtcHR5LWZyYW1lLWRvbS1leHBlY3RlZC53ZWJhcmNoaXZlCShyZXZpc2lv
biAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2FyY2hpdmUtZW1wdHktZnJhbWUt
ZG9tLWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKQEAgLTgsOCArOCw4IEBACiAJ
CTxzdHJpbmc+Jmx0OyFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEg
VHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCIm
Z3Q7Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7CiAmbHQ7dGl0bGUmZ3Q7RW1wdHkgaUZyYW1lIGNh
dXNlcyBhcmNoaXZlIGV4Y2VwdGlvbiZsdDsvdGl0bGUmZ3Q7CiAmbHQ7c2NyaXB0Jmd0OwotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogJmx0Oy9zY3JpcHQm
Z3Q7CiAmbHQ7L2hlYWQmZ3Q7CiAmbHQ7Ym9keSZndDsKSW5kZXg6IExheW91dFRlc3RzL3dlYmFy
Y2hpdmUvYXJjaGl2ZS1lbXB0eS1mcmFtZS1kb20uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy93ZWJhcmNoaXZlL2FyY2hpdmUtZW1wdHktZnJhbWUtZG9tLmh0bWwJKHJldmlzaW9uIDEy
MDUxNikKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvYXJjaGl2ZS1lbXB0eS1mcmFtZS1kb20u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAKIDxoZWFkPgogPHRpdGxlPkVtcHR5
IGlGcmFtZSBjYXVzZXMgYXJjaGl2ZSBleGNlcHRpb248L3RpdGxlPgogPHNjcmlwdD4KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKIDwvc2NyaXB0PgogPC9o
ZWFkPgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2FyY2hpdmUtZW1wdHkt
ZnJhbWUtc291cmNlLWV4cGVjdGVkLndlYmFyY2hpdmUKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvd2ViYXJjaGl2ZS9hcmNoaXZlLWVtcHR5LWZyYW1lLXNvdXJjZS1leHBlY3RlZC53ZWJhcmNo
aXZlCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2FyY2hpdmUt
ZW1wdHktZnJhbWUtc291cmNlLWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKQEAg
LTExLDggKzExLDggQEAKICZsdDtoZWFkJmd0OwogJmx0O3RpdGxlJmd0O0VtcHR5IGlGcmFtZSBj
YXVzZXMgYXJjaGl2ZSBleGNlcHRpb24mbHQ7L3RpdGxlJmd0OwogJmx0O3NjcmlwdCZndDsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBTb3VyY2VBc1dlYkFyY2hpdmUoKTsKICZsdDsv
c2NyaXB0Jmd0OwogJmx0Oy9oZWFkJmd0OwogJmx0O2JvZHkmZ3Q7CkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL2FyY2hpdmUtZW1wdHktZnJhbWUtc291cmNlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9hcmNoaXZlLWVtcHR5LWZyYW1lLXNvdXJjZS5odG1s
CShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2FyY2hpdmUtZW1w
dHktZnJhbWUtc291cmNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBACiA8aGVh
ZD4KIDx0aXRsZT5FbXB0eSBpRnJhbWUgY2F1c2VzIGFyY2hpdmUgZXhjZXB0aW9uPC90aXRsZT4K
IDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wU291cmNlQXNXZWJBcmNo
aXZlKCk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvd2Vi
YXJjaGl2ZS9hcmNoaXZlLXdpdGgtdW5lbmNvZGVkLXVybC1leHBlY3RlZC53ZWJhcmNoaXZlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmFyY2hpdmUvYXJjaGl2ZS13aXRoLXVuZW5jb2Rl
ZC11cmwtZXhwZWN0ZWQud2ViYXJjaGl2ZQkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVz
dHMvd2ViYXJjaGl2ZS9hcmNoaXZlLXdpdGgtdW5lbmNvZGVkLXVybC1leHBlY3RlZC53ZWJhcmNo
aXZlCSh3b3JraW5nIGNvcHkpCkBAIC03LDggKzcsOCBAQAogCQk8a2V5PldlYlJlc291cmNlRGF0
YTwva2V5PgogCQk8c3RyaW5nPiZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OwogJmx0O3NjcmlwdCZn
dDsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKICZsdDsv
c2NyaXB0Jmd0OwogJmx0Oy9oZWFkJmd0OwogJmx0O2JvZHkmZ3Q7CkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL2FyY2hpdmUtd2l0aC11bmVuY29kZWQtdXJsLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9hcmNoaXZlLXdpdGgtdW5lbmNvZGVkLXVybC5odG1s
CShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2FyY2hpdmUtd2l0
aC11bmVuY29kZWQtdXJsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8aHRt
bD4KIDxoZWFkPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dl
YkFyY2hpdmUoKTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL2Nzcy1wYWdlLXJ1bGUtY3Jhc2gtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2Nzcy1wYWdlLXJ1bGUtY3Jhc2gtZXhw
ZWN0ZWQud2ViYXJjaGl2ZQkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJj
aGl2ZS9jc3MtcGFnZS1ydWxlLWNyYXNoLWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29w
eSkKQEAgLTgsOCArOCw4IEBACiAJCTxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7CiAm
bHQ7c2NyaXB0Jmd0OwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKIAogJmx0Oy9z
Y3JpcHQmZ3Q7CiAKSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvY3NzLXBhZ2UtcnVsZS1j
cmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmFyY2hpdmUvY3NzLXBhZ2Ut
cnVsZS1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNo
aXZlL2Nzcy1wYWdlLXJ1bGUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDgg
QEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiAK
IDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2RvY3R5cGUtZXhwZWN0
ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2RvY3R5
cGUtZXhwZWN0ZWQud2ViYXJjaGl2ZQkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMv
d2ViYXJjaGl2ZS9kb2N0eXBlLWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKQEAg
LTExLDggKzExLDggQEAKICZsdDt0aXRsZSZndDtUZXN0IGZvciBCdWcgMTUyOTA6IFJFR1JFU1NJ
T04gKHIxNDE4NC1yMTQyMTYpOiBEdXBsaWNhdGUgRE9DVFlQRSBkZWZpbml0aW9ucyB3aGVuIHNh
dmluZyBmaWxlcyBhcyB3ZWJhcmNoaXZlcyZsdDsvdGl0bGUmZ3Q7CiAmbHQ7L2hlYWQmZ3Q7CiAm
bHQ7c2NyaXB0Jmd0OwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBTb3VyY2VBc1dlYkFyY2hpdmUoKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFNvdXJjZUFzV2Vi
QXJjaGl2ZSgpOwogJmx0Oy9zY3JpcHQmZ3Q7CiAmbHQ7Ym9keSZndDsKICZsdDtkaXYmZ3Q7Cklu
ZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2RvY3R5cGUuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhcmNoaXZlL2RvY3R5cGUuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysg
TGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9kb2N0eXBlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
OCArNCw4IEBACiA8dGl0bGU+VGVzdCBmb3IgQnVnIDE1MjkwOiBSRUdSRVNTSU9OIChyMTQxODQt
cjE0MjE2KTogRHVwbGljYXRlIERPQ1RZUEUgZGVmaW5pdGlvbnMgd2hlbiBzYXZpbmcgZmlsZXMg
YXMgd2ViYXJjaGl2ZXM8L3RpdGxlPgogPC9oZWFkPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
U291cmNlQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBTb3VyY2VBc1dlYkFyY2hpdmUoKTsKIDwvc2NyaXB0PgogPGJvZHk+
CiA8ZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9pZ25vcmUtbm9zY3JpcHQtaWYt
c2NyaXB0aW5nLWVuYWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmFyY2hpdmUvaWdub3JlLW5vc2NyaXB0LWlmLXNjcmlwdGluZy1lbmFibGVkLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9pZ25vcmUt
bm9zY3JpcHQtaWYtc2NyaXB0aW5nLWVuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC03LDggKzcsOCBAQAogCQk8a2V5PldlYlJlc291cmNlRGF0YTwva2V5PgogCQk8c3RyaW5n
PiZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OwogJmx0O3NjcmlwdCZndDsKLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
RE9NQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKICZsdDsvc2NyaXB0Jmd0OwogJmx0Oy9o
ZWFkJmd0OwogJmx0O2JvZHkmZ3Q7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2lnbm9y
ZS1ub3NjcmlwdC1pZi1zY3JpcHRpbmctZW5hYmxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3dlYmFyY2hpdmUvaWdub3JlLW5vc2NyaXB0LWlmLXNjcmlwdGluZy1lbmFibGVkLmh0
bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvaWdub3JlLW5v
c2NyaXB0LWlmLXNjcmlwdGluZy1lbmFibGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCAr
MSw4IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJB
cmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVy
LmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtYm9keS1iYWNrZ3JvdW5kLWV4cGVjdGVkLndl
YmFyY2hpdmUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWJvZHkt
YmFja2dyb3VuZC1leHBlY3RlZC53ZWJhcmNoaXZlCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlv
dXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtYm9keS1iYWNrZ3JvdW5kLWV4cGVjdGVkLndlYmFyY2hp
dmUJKHdvcmtpbmcgY29weSkKQEAgLTcsOCArNyw4IEBACiAJCTxrZXk+V2ViUmVzb3VyY2VEYXRh
PC9rZXk+CiAJCTxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7CiAmbHQ7c2NyaXB0Jmd0
OwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogJmx0Oy9z
Y3JpcHQmZ3Q7CiAmbHQ7L2hlYWQmZ3Q7CiAmbHQ7Ym9keSBiYWNrZ3JvdW5kPSJyZXNvdXJjZXMv
YXBwbGUuZ2lmIiZndDsKSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1ib2R5LWJh
Y2tncm91bmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3Qt
Ym9keS1iYWNrZ3JvdW5kLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dl
YmFyY2hpdmUvdGVzdC1ib2R5LWJhY2tncm91bmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4
ICsxLDggQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dl
YkFyY2hpdmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBiYWNr
Z3JvdW5kPSJyZXNvdXJjZXMvYXBwbGUuZ2lmIj4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hp
dmUvdGVzdC1jc3MtaW1wb3J0LWV4cGVjdGVkLndlYmFyY2hpdmUKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy1pbXBvcnQtZXhwZWN0ZWQud2ViYXJjaGl2ZQko
cmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy1pbXBv
cnQtZXhwZWN0ZWQud2ViYXJjaGl2ZQkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDggQEAKIAkJ
PGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KIAkJPHN0cmluZz4mbHQ7aHRtbCZndDsmbHQ7aGVh
ZCZndDsKICZsdDtzY3JpcHQmZ3Q7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNX
ZWJBcmNoaXZlKCk7CiAmbHQ7L3NjcmlwdCZndDsKICZsdDtsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0icmVzb3VyY2VzL3Rlc3QtY3NzLWxpbmsuY3NzIiB0eXBlPSJ0ZXh0L2NzcyImZ3Q7CiAm
bHQ7c3R5bGUgdHlwZT0idGV4dC9jc3MiJmd0OwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2
ZS90ZXN0LWNzcy1pbXBvcnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNo
aXZlL3Rlc3QtY3NzLWltcG9ydC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL3Rlc3QtY3NzLWltcG9ydC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDgg
KzEsOCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2Vi
QXJjaGl2ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiA8L3NjcmlwdD4KIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0icmVzb3VyY2VzL3Rlc3QtY3NzLWxpbmsuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiA8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0
LWNzcy11cmwtcmVzb3VyY2VzLWluLXN0eWxlc2hlZXRzLWV4cGVjdGVkLndlYmFyY2hpdmUKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtcmVzb3VyY2Vz
LWluLXN0eWxlc2hlZXRzLWV4cGVjdGVkLndlYmFyY2hpdmUJKHJldmlzaW9uIDEyMDUxNikKKysr
IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLXJlc291cmNlcy1pbi1zdHlsZXNo
ZWV0cy1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3JraW5nIGNvcHkpCkBAIC03LDE3ICs3LDE3IEBA
CiAJCTxrZXk+V2ViUmVzb3VyY2VEYXRhPC9rZXk+CiAJCTxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0
O2hlYWQmZ3Q7CiAmbHQ7c2NyaXB0Jmd0OwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gbm90aWZ5RG9uZSgpCiB7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICAvLyBGSVhNRTogV2ViIGZvbnRzIGFyZSBsb2FkZWQgYXN5bmNo
cm9ub3VzbHksIGFuZCB0aGVyZSBpcwogICAgICAgICAvLyBubyB3YXkgdG8ga25vdyB3aGVuIHRo
ZXkncmUgZG9uZSwgc28ganVzdCB3YWl0IGEgYml0LgotICAgICAgICBzZXRUaW1lb3V0KCJsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkiLCAxMDAwKTsKKyAgICAgICAgc2V0VGltZW91
dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCkiLCAxMDAwKTsKICAgICB9CiB9CiAmbHQ7L3Njcmlw
dCZndDsKSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLXJlc291cmNl
cy1pbi1zdHlsZXNoZWV0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmFyY2hp
dmUvdGVzdC1jc3MtdXJsLXJlc291cmNlcy1pbi1zdHlsZXNoZWV0cy5odG1sCShyZXZpc2lvbiAx
MjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtY3NzLXVybC1yZXNvdXJjZXMt
aW4tc3R5bGVzaGVldHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMSwxNyBAQAogPGh0
bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiBmdW5jdGlvbiBub3RpZnlEb25lKCkKIHsKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZWIgZm9udHMgYXJlIGxvYWRlZCBhc3luY2hyb25v
dXNseSwgYW5kIHRoZXJlIGlzCiAgICAgICAgIC8vIG5vIHdheSB0byBrbm93IHdoZW4gdGhleSdy
ZSBkb25lLCBzbyBqdXN0IHdhaXQgYSBiaXQuCi0gICAgICAgIHNldFRpbWVvdXQoImxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKSIsIDEwMDApOworICAgICAgICBzZXRUaW1lb3V0KCJ0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDEwMDApOwogICAgIH0KIH0KIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtcmVzb3VyY2VzLWlubGluZS1z
dHlsZXMtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJh
cmNoaXZlL3Rlc3QtY3NzLXVybC1yZXNvdXJjZXMtaW5saW5lLXN0eWxlcy1leHBlY3RlZC53ZWJh
cmNoaXZlCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3Qt
Y3NzLXVybC1yZXNvdXJjZXMtaW5saW5lLXN0eWxlcy1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3Jr
aW5nIGNvcHkpCkBAIC03LDE3ICs3LDE3IEBACiAJCTxrZXk+V2ViUmVzb3VyY2VEYXRhPC9rZXk+
CiAJCTxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7CiAmbHQ7c2NyaXB0Jmd0OwotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBE
T01Bc1dlYkFyY2hpdmUoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAog
ZnVuY3Rpb24gbm90aWZ5RG9uZSgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAvLyBGSVhNRTog
V2ViIGZvbnRzIGFyZSBsb2FkZWQgYXN5bmNocm9ub3VzbHksIGFuZCB0aGVyZSBpcwogICAgICAg
ICAvLyBubyB3YXkgdG8ga25vdyB3aGVuIHRoZXkncmUgZG9uZSwgc28ganVzdCB3YWl0IGEgYml0
LgotICAgICAgICBzZXRUaW1lb3V0KCJsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCki
LCAxMDAwKTsKKyAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCkiLCAx
MDAwKTsKICAgICB9CiB9CiAmbHQ7L3NjcmlwdCZndDsKSW5kZXg6IExheW91dFRlc3RzL3dlYmFy
Y2hpdmUvdGVzdC1jc3MtdXJsLXJlc291cmNlcy1pbmxpbmUtc3R5bGVzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtcmVzb3VyY2VzLWlubGlu
ZS1zdHlsZXMuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2
ZS90ZXN0LWNzcy11cmwtcmVzb3VyY2VzLWlubGluZS1zdHlsZXMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNyArMSwxNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERP
TUFzV2ViQXJjaGl2ZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2Vi
QXJjaGl2ZSgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiBmdW5jdGlv
biBub3RpZnlEb25lKCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZWIgZm9u
dHMgYXJlIGxvYWRlZCBhc3luY2hyb25vdXNseSwgYW5kIHRoZXJlIGlzCiAgICAgICAgIC8vIG5v
IHdheSB0byBrbm93IHdoZW4gdGhleSdyZSBkb25lLCBzbyBqdXN0IHdhaXQgYSBiaXQuCi0gICAg
ICAgIHNldFRpbWVvdXQoImxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKSIsIDEwMDAp
OworICAgICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDEwMDApOwog
ICAgIH0KIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWR1
cGxpY2F0ZS1yZXNvdXJjZXMtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtZHVwbGljYXRlLXJlc291cmNlcy1leHBlY3RlZC53ZWJh
cmNoaXZlCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3Qt
ZHVwbGljYXRlLXJlc291cmNlcy1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjEsOCArMjIxLDggQEAKIAkJPC9kaWN0PgogCQk8ZGljdD4KIAkJCTxrZXk+V2ViUmVzb3Vy
Y2VEYXRhPC9rZXk+Ci0JCQk8c3RyaW5nPmlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworCQkJPHN0
cmluZz5pZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJB
cmNoaXZlKCk7CiA8L3N0cmluZz4KIAkJCTxrZXk+V2ViUmVzb3VyY2VNSU1FVHlwZTwva2V5Pgog
CQkJPHN0cmluZz50ZXh0L2phdmFzY3JpcHQ8L3N0cmluZz4KSW5kZXg6IExheW91dFRlc3RzL3dl
YmFyY2hpdmUvdGVzdC1mcmFtZXNldC1leHBlY3RlZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1mcmFtZXNldC1leHBlY3RlZC53ZWJhcmNoaXZl
CShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtZnJhbWVz
ZXQtZXhwZWN0ZWQud2ViYXJjaGl2ZQkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDggQEAKIAkJ
PGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KIAkJPHN0cmluZz4mbHQ7aHRtbCZndDsmbHQ7aGVh
ZCZndDsKICZsdDtzY3JpcHQmZ3Q7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNX
ZWJBcmNoaXZlKCk7CiAmbHQ7L3NjcmlwdCZndDsKICZsdDsvaGVhZCZndDsKICZsdDtmcmFtZXNl
dCByb3dzPSIqIiZndDsKSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1mcmFtZXNl
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1mcmFtZXNl
dC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3Qt
ZnJhbWVzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIDxodG1sPgogPGhl
YWQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2
ZSgpOwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8ZnJhbWVzZXQgcm93cz0iKiI+CkluZGV4OiBMYXlv
dXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtaW1nLXNyYy1leHBlY3RlZC53ZWJhcmNoaXZlCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1pbWctc3JjLWV4cGVjdGVkLndl
YmFyY2hpdmUJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVz
dC1pbWctc3JjLWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKQEAgLTcsOCArNyw4
IEBACiAJCTxrZXk+V2ViUmVzb3VyY2VEYXRhPC9rZXk+CiAJCTxzdHJpbmc+Jmx0O2h0bWwmZ3Q7
Jmx0O2hlYWQmZ3Q7CiAmbHQ7c2NyaXB0Jmd0OwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hp
dmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cERPTUFzV2ViQXJjaGl2ZSgpOwogJmx0Oy9zY3JpcHQmZ3Q7CiAmbHQ7L2hlYWQmZ3Q7CiAmbHQ7
Ym9keSZndDsKSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1pbWctc3JjLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWltZy1zcmMuaHRtbAko
cmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWltZy1zcmMu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIDxodG1sPgogPGhlYWQ+CiA8c2Ny
aXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVz
dC1pbnB1dC1zcmMtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL3Rlc3QtaW5wdXQtc3JjLWV4cGVjdGVkLndlYmFyY2hpdmUJKHJldmlzaW9u
IDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1pbnB1dC1zcmMtZXhwZWN0
ZWQud2ViYXJjaGl2ZQkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDggQEAKIAkJPGtleT5XZWJS
ZXNvdXJjZURhdGE8L2tleT4KIAkJPHN0cmluZz4mbHQ7aHRtbCZndDsmbHQ7aGVhZCZndDsKICZs
dDtzY3JpcHQmZ3Q7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZl
KCk7CiAmbHQ7L3NjcmlwdCZndDsKICZsdDsvaGVhZCZndDsKICZsdDtib2R5Jmd0OwpJbmRleDog
TGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWlucHV0LXNyYy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1pbnB1dC1zcmMuaHRtbAkocmV2aXNpb24gMTIw
NTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWlucHV0LXNyYy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiA8L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstaHJl
Zi1leHBlY3RlZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmFyY2hp
dmUvdGVzdC1saW5rLWhyZWYtZXhwZWN0ZWQud2ViYXJjaGl2ZQkocmV2aXNpb24gMTIwNTE2KQor
KysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstaHJlZi1leHBlY3RlZC53ZWJhcmNo
aXZlCSh3b3JraW5nIGNvcHkpCkBAIC03LDggKzcsOCBAQAogCQk8a2V5PldlYlJlc291cmNlRGF0
YTwva2V5PgogCQk8c3RyaW5nPiZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OwogJmx0O3NjcmlwdCZn
dDsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKICZsdDsv
c2NyaXB0Jmd0OwogJmx0O2xpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvdGVz
dC1zdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIiZndDsKICZsdDsvaGVhZCZndDsKSW5kZXg6IExh
eW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLWhyZWYuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1ocmVmLmh0bWwJKHJldmlzaW9uIDEyMDUx
NikKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLWhyZWYuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogPC9zY3JpcHQ+CiA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy90ZXN0LXN0eWxlLmNzcyIgdHlwZT0i
dGV4dC9jc3MiPgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxp
bmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhw
ZWN0ZWQud2ViYXJjaGl2ZQkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJj
aGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlCSh3
b3JraW5nIGNvcHkpCkBAIC05LDEwICs5LDEwIEBACiAmbHQ7c2NyaXB0Jmd0OwogZnVuY3Rpb24g
cnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRJY29uRGF0YWJhc2VFbmFibGVkKHRydWUpOwot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgICAg
IHRlc3RSdW5uZXIucXVldWVSZWxvYWQoKTsKICAgICB9CiB9CiAmbHQ7L3NjcmlwdCZndDsKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwt
aWNvbi1iZWZvcmVsb2FkLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dl
YmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMywxMCArMywxMCBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCh0cnVlKTsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5xdWV1ZVJlbG9hZCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgICAgICB0ZXN0UnVubmVyLnF1ZXVl
UmVsb2FkKCk7CiAgICAgfQogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNo
aXZlL3Rlc3QtbGluay1yZWwtaWNvbi1leHBlY3RlZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWV4cGVjdGVkLndlYmFy
Y2hpdmUJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1s
aW5rLXJlbC1pY29uLWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKQEAgLTksMTAg
KzksMTAgQEAKICZsdDtzY3JpcHQmZ3Q7CiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIucXVldWVSZWxvYWQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRJY29uRGF0YWJhc2VFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZVJlbG9h
ZCgpOwogICAgIH0KIH0KICZsdDsvc2NyaXB0Jmd0OwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJj
aGl2ZS90ZXN0LWxpbmstcmVsLWljb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93
ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBM
YXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0zLDEwICszLDEwIEBACiA8c2NyaXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRJY29uRGF0YWJhc2VFbmFibGVkKHRydWUpOwotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgICAgIHRlc3RSdW5uZXIucXVl
dWVSZWxvYWQoKTsKICAgICB9CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFy
Y2hpdmUvdGVzdC1vYmplY3QtZGF0YS1leHBlY3RlZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1vYmplY3QtZGF0YS1leHBlY3RlZC53ZWJhcmNo
aXZlCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3Qtb2Jq
ZWN0LWRhdGEtZXhwZWN0ZWQud2ViYXJjaGl2ZQkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDgg
QEAKIAkJPGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KIAkJPHN0cmluZz4mbHQ7aHRtbCZndDsm
bHQ7aGVhZCZndDsKICZsdDtzY3JpcHQmZ3Q7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2
ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
RE9NQXNXZWJBcmNoaXZlKCk7CiAmbHQ7L3NjcmlwdCZndDsKICZsdDsvaGVhZCZndDsKICZsdDti
b2R5Jmd0OwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LW9iamVjdC1kYXRhLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LW9iamVjdC1kYXRh
Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1v
YmplY3QtZGF0YS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAogPGh0bWw+CiA8
aGVhZD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNo
aXZlKCk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvd2Vi
YXJjaGl2ZS90ZXN0LXNjcmlwdC1zcmMtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3Qtc2NyaXB0LXNyYy1leHBlY3RlZC53ZWJhcmNo
aXZlCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3Qtc2Ny
aXB0LXNyYy1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw4
IEBACiAJPGFycmF5PgogCQk8ZGljdD4KIAkJCTxrZXk+V2ViUmVzb3VyY2VEYXRhPC9rZXk+Ci0J
CQk8c3RyaW5nPmlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworCQkJPHN0cmluZz5pZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiA8L3N0
cmluZz4KIAkJCTxrZXk+V2ViUmVzb3VyY2VNSU1FVHlwZTwva2V5PgogCQkJPHN0cmluZz50ZXh0
L2phdmFzY3JpcHQ8L3N0cmluZz4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC10
YWJsZS1iYWNrZ3JvdW5kLWV4cGVjdGVkLndlYmFyY2hpdmUKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LXRhYmxlLWJhY2tncm91bmQtZXhwZWN0ZWQud2ViYXJjaGl2
ZQkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LXRhYmxl
LWJhY2tncm91bmQtZXhwZWN0ZWQud2ViYXJjaGl2ZQkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3
LDggQEAKIAkJPGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KIAkJPHN0cmluZz4mbHQ7aHRtbCZn
dDsmbHQ7aGVhZCZndDsKICZsdDtzY3JpcHQmZ3Q7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJj
aGl2ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wRE9NQXNXZWJBcmNoaXZlKCk7CiAmbHQ7L3NjcmlwdCZndDsKICZsdDsvaGVhZCZndDsKICZs
dDtib2R5Jmd0OwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LXRhYmxlLWJhY2tn
cm91bmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtdGFi
bGUtYmFja2dyb3VuZC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJh
cmNoaXZlL3Rlc3QtdGFibGUtYmFja2dyb3VuZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDgg
KzEsOCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2Vi
QXJjaGl2ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LXRkLWJhY2tncm91bmQtZXhwZWN0ZWQud2Vi
YXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtdGQtYmFj
a2dyb3VuZC1leHBlY3RlZC53ZWJhcmNoaXZlCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRU
ZXN0cy93ZWJhcmNoaXZlL3Rlc3QtdGQtYmFja2dyb3VuZC1leHBlY3RlZC53ZWJhcmNoaXZlCSh3
b3JraW5nIGNvcHkpCkBAIC03LDggKzcsOCBAQAogCQk8a2V5PldlYlJlc291cmNlRGF0YTwva2V5
PgogCQk8c3RyaW5nPiZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OwogJmx0O3NjcmlwdCZndDsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKICZsdDsvc2NyaXB0
Jmd0OwogJmx0Oy9oZWFkJmd0OwogJmx0O2JvZHkmZ3Q7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJh
cmNoaXZlL3Rlc3QtdGQtYmFja2dyb3VuZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmFyY2hpdmUvdGVzdC10ZC1iYWNrZ3JvdW5kLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysr
IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC10ZC1iYWNrZ3JvdW5kLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOCArMSw4IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKIDwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QteG1sLXN0eWxlc2hl
ZXQtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNo
aXZlL3Rlc3QteG1sLXN0eWxlc2hlZXQtZXhwZWN0ZWQud2ViYXJjaGl2ZQkocmV2aXNpb24gMTIw
NTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LXhtbC1zdHlsZXNoZWV0LWV4cGVj
dGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKQEAgLTcsOCArNyw4IEBACiAJCTxrZXk+V2Vi
UmVzb3VyY2VEYXRhPC9rZXk+CiAJCTxzdHJpbmc+Jmx0Oz94bWwtc3R5bGVzaGVldCBocmVmPSJy
ZXNvdXJjZXMvdGVzdC14bWwtc3R5bGVzaGVldC5jc3MiIHR5cGU9InRleHQvY3NzIj8mZ3Q7Jmx0
O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiJmd0OwogICAmbHQ7c2Ny
aXB0Jmd0OwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwog
ICAmbHQ7L3NjcmlwdCZndDsKICAgJmx0O3N0eWxlJmd0OwogICAgIGRpdiB7IGJhY2tncm91bmQ6
IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB9CkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJhcmNoaXZlL3Rlc3QteG1sLXN0eWxlc2hlZXQueG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmFyY2hpdmUvdGVzdC14bWwtc3R5bGVzaGVldC54bWwJKHJldmlzaW9uIDEyMDUxNikK
KysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC14bWwtc3R5bGVzaGVldC54bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8P3htbC1zdHlsZXNoZWV0IGhyZWY9InJlc291cmNl
cy90ZXN0LXhtbC1zdHlsZXNoZWV0LmNzcyIgdHlwZT0idGV4dC9jc3MiPz4KIDxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KICAgPHNjcmlwdD4KLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKICAgPC9zY3JpcHQ+CiAgIDxzdHls
ZT4KICAgICBkaXYgeyBiYWNrZ3JvdW5kOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBw
eDsgfQpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9sb2FkaW5nL2NhY2hlLWV4cGlyZWQt
c3VicmVzb3VyY2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2xv
YWRpbmcvY2FjaGUtZXhwaXJlZC1zdWJyZXNvdXJjZS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisr
KyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2xvYWRpbmcvY2FjaGUtZXhwaXJlZC1zdWJyZXNvdXJj
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiA8aHRtbD4KIDxzY3JpcHQ+
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAgICBmdW5j
dGlvbiBmcmFtZUxvYWRlZCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgfQogPC9zY3JpcHQ+CiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL3dl
YmFyY2hpdmUvbG9hZGluZy9qYXZhc2NyaXB0LXVybC1pZnJhbWUtY3Jhc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2xvYWRpbmcvamF2YXNjcmlwdC11cmwtaWZy
YW1lLWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmFyY2hp
dmUvbG9hZGluZy9qYXZhc2NyaXB0LXVybC1pZnJhbWUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSw4ICsxLDggQEAKIDxodG1sPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogICAgIAogICAg
IHdpbmRvdy5sb2NhdGlvbj0icmVzb3VyY2VzL2phdmFzY3JpcHQtdXJsLWlmcmFtZS1jcmFzaC53
ZWJhcmNoaXZlIjsKSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvbG9hZGluZy9tYWlucmVz
b3VyY2UtbnVsbC1taW1ldHlwZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmFyY2hpdmUvbG9hZGluZy9tYWlucmVzb3VyY2UtbnVsbC1taW1ldHlwZS1jcmFzaC5odG1s
CShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2xvYWRpbmcvbWFp
bnJlc291cmNlLW51bGwtbWltZXR5cGUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3
ICsxLDcgQEAKIDxodG1sPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgfQogICAgIAogICAgIHdpbmRvdy5sb2NhdGlvbj0icmVzb3VyY2VzL21haW5yZXNv
dXJjZS1udWxsLW1pbWV0eXBlLndlYmFyY2hpdmUiOwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJj
aGl2ZS9sb2FkaW5nL21pc3NpbmctZGF0YS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmFyY2hpdmUvbG9hZGluZy9taXNzaW5nLWRhdGEuaHRtbAkocmV2aXNpb24gMTIwNTE2KQor
KysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9sb2FkaW5nL21pc3NpbmctZGF0YS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKICAgICB3aW5kb3cubG9jYXRpb249InJlc291cmNlcy9taXNzaW5nLWRhdGEud2Vi
YXJjaGl2ZSI7CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvbG9hZGlu
Zy90ZXN0LWxvYWRpbmctYXJjaGl2ZS1zdWJyZXNvdXJjZS1udWxsLW1pbWV0eXBlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9sb2FkaW5nL3Rlc3QtbG9hZGluZy1h
cmNoaXZlLXN1YnJlc291cmNlLW51bGwtbWltZXR5cGUuaHRtbAkocmV2aXNpb24gMTIwNTE2KQor
KysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9sb2FkaW5nL3Rlc3QtbG9hZGluZy1hcmNoaXZlLXN1
YnJlc291cmNlLW51bGwtbWltZXR5cGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMSwx
NCBAQAogPGh0bWw+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlTG9hZENhbGxi
YWNrcygpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gZnJhbWVMb2Fk
ZWQoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
IH0KIDwvc2NyaXB0PgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2xvYWRp
bmcvdGVzdC1sb2FkaW5nLWFyY2hpdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93
ZWJhcmNoaXZlL2xvYWRpbmcvdGVzdC1sb2FkaW5nLWFyY2hpdmUuaHRtbAkocmV2aXNpb24gMTIw
NTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9sb2FkaW5nL3Rlc3QtbG9hZGluZy1hcmNo
aXZlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzEsMTQgQEAKIDxodG1sPgogPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGZyYW1lTG9hZGVkKCkgewotICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiA8L3NjcmlwdD4KIDxib2R5
PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJj
ZS1jaGFubmVscy5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw5
ICsxNyw5IEBAIHZhciBjb250ZXh0OwogdmFyIHNvdXJjZTsKIAogZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgfQogICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtbXVsdGktY2hhbm5lbHMuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbXVsdGktY2hhbm5lbHMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTQsMTAgKzE0LDEwIEBAIFRlc3QgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIHN1cHBv
cnRzIDUuMSAKIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKCF3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCiAgICAgd2luZG93LmpzVGVzdEFz
eW5jID0gdHJ1ZTsKIApJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtcGxheWJhY2tTdGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUuaHRtbAkocmV2aXNpb24gMTIwNTE2KQor
KysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0ZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw5ICs5Nyw5IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3Qo
c291cmNlTGVuZ3RoLCBub3RlRnUKIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0K
IAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrcmF0ZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrcmF0ZS5odG1s
CShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNv
dXJjZS1wbGF5YmFja3JhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBm
dW5jdGlvbiBwbGF5Tm90ZSh0aW1lLCBkdXJhdGlvbiwgcGxheWJhCiB9CiAKIGZ1bmN0aW9uIGlu
aXQoKSB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3
aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxp
bmUgYXVkaW8gY29udGV4dC4KQEAgLTkyLDcgKzkyLDcgQEAgZnVuY3Rpb24gaW5pdCgpIHsKICAg
ICBjb250ZXh0Lm9uY29tcGxldGUgPSBmaW5pc2hBdWRpb1Rlc3Q7CiAgICAgY29udGV4dC5zdGFy
dFJlbmRlcmluZygpOwogCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UuaHRtbAkocmV2aXNpb24g
MTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNyBAQCB2YXIgY29udGV4dCA9IDA7CiB2YXIgYnVm
ZmVyTG9hZGVyID0gMDsKIAogZnVuY3Rpb24gaW5pdCgpIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICBy
ZXR1cm47CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBA
IC0zNSw3ICszNSw3IEBAIGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgKTsKICAgICAKICAgICBidWZm
ZXJMb2FkZXIubG9hZCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gZmluaXNo
ZWRMb2FkaW5nKGJ1ZmZlckxpc3QpIHsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
Y2hhbm5lbG1lcmdlci1iYXNpYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvY2hhbm5lbG1lcmdlci1iYXNpYy5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItYmFzaWMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTUsOSArMTUsOSBAQAogZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RzIGZvciBB
dWRpb0NoYW5uZWxNZXJnZXIuIik7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0K
IAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvY2hhbm5lbG1lcmdlci1zdGVyZW8uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItc3RlcmVvLmh0bWwJKHJldmlzaW9u
IDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbG1lcmdlci1zdGVy
ZW8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzAsOSArNzAsOSBAQCBmdW5jdGlvbiBjaGVja1Jl
c3VsdChldmVudCkgewogfQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAg
CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9jaGFubmVsc3BsaXR0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisr
KyBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC03Myw5ICs3Myw5IEBAIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGV2ZW50KSB7CiB9
CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS1jb25u
ZWN0LW9yZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9u
b2RlLWNvbm5lY3Qtb3JkZXIuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MzIsOSArMzIsOSBAQCBmdW5jdGlvbiBjcmVhdGVTaW5XYXZlQnVmZmVyKGNvbnRleHQsIGxlCiB9
CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUuaHRtbAko
cmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE3LDkgKzE3LDkgQEAgdmFyIGNvbnRleHQgPSAwOwogdmFyIGNv
bnRleHQyID0gMDsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogICAgIAogICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvcGFyYW0tY29ubmVjdC1hdWRpb3JhdGVzaWduYWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRlc2lnbmFsLmh0
bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0t
Y29ubmVjdC1hdWRpb3JhdGVzaWduYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTksOSArNTks
OSBAQCBmdW5jdGlvbiBjaGVja1Jlc3VsdChldmVudCkgewogfQogCiBmdW5jdGlvbiBydW5UZXN0
KCkgewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKICAgICB9CiAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXN1bW1pbmdqdW5jdGlvbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0
aW9uLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
cGFyYW0tc3VtbWluZ2p1bmN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcyLDkgKzcyLDkg
QEAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoZXZlbnQpIHsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgfQogCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRleDog
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1dG9tYXRpYy1wdWxsLW5vZGUuaHRtbAkocmV2aXNp
b24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsOSArMTE4LDkgQEAgZnVuY3Rpb24gdGVzdDMoKSB7
CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1hbGxw
YXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWFsbHBh
c3MuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFk
LWFsbHBhc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsOSArMTcsOSBAQAogZGVzY3JpcHRp
b24oIlRlc3RzIEJpcXVhZCBhbGxwYXNzIGZpbHRlci4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgfQogICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1iYW5kcGFzcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1iYW5kcGFzcy5odG1sCShyZXZpc2lvbiAx
MjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYmFuZHBhc3MuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTcsOSArMTcsOSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIEJpcXVhZCBi
YW5kcGFzcyBmaWx0ZXIuIik7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAg
ICAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJhdWRpby9iaXF1YWQtZ2V0RnJlcXVlbmN5UmVzcG9uc2UuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtZ2V0RnJlcXVlbmN5UmVzcG9uc2UuaHRtbAkocmV2
aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWdldEZyZXF1ZW5j
eVJlc3BvbnNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI3MSw5ICsyNzEsOSBAQCBmdW5jdGlv
biBjb21wYXJlUmVzcG9uc2VzKGZpbHRlciwgZnJlcXVlCiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQog
ewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICB9CiAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CkluZGV4OiBM
YXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGlnaHBhc3MuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGlnaHBhc3MuaHRtbAkocmV2aXNpb24gMTIwNTE2
KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTE3LDkgKzE3LDkgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyBCaXF1YWQgaGlnaHBh
c3MgZmlsdGVyLiIpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgCiAg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1
ZGlvL2JpcXVhZC1oaWdoc2hlbGYuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw5
ICsxNyw5IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgQmlxdWFkIGhpZ2hzaGVsZiBmaWx0ZXIuIik7
CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93
cGFzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dw
YXNzLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVh
ZC1sb3dwYXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDkgKzE3LDkgQEAKIGRlc2NyaXB0
aW9uKCJUZXN0cyBCaXF1YWQgbG93cGFzcyBmaWx0ZXIuIik7CiAKIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwogICAgIH0KICAgICAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cklu
ZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93c2hlbGYuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93c2hlbGYuaHRtbAkocmV2aXNpb24g
MTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3NoZWxmLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE3LDkgKzE3LDkgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyBCaXF1YWQg
bG93c2hlbGYgZmlsdGVyLiIpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAg
ICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYmlxdWFkLW5vdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYmlxdWFkLW5vdGNoLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3Rz
L3dlYmF1ZGlvL2JpcXVhZC1ub3RjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw5ICsxNyw5
IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgQmlxdWFkIG5vdGNoIGZpbHRlci4iKTsKIAogZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1wZWFraW5nLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLXBlYWtpbmcuaHRtbAko
cmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLXBlYWtpbmcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsOSArMTcsOSBAQAogZGVzY3JpcHRpb24oIlRlc3Rz
IEJpcXVhZCBwZWFraW5nIGZpbHRlci4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgfQogICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91
dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZGZpbHRlcm5vZGUtYmFzaWMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWRmaWx0ZXJub2RlLWJhc2ljLmh0bWwJKHJldmlz
aW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZGZpbHRlcm5vZGUtYmFz
aWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTYsOSArMTYsOSBAQCBkZXNjcmlwdGlvbigiQmFz
aWMgdGVzdHMgZm9yIEJpcXVhZEZpbHRlCiB2YXIgY29udGV4dCA9IDA7CiAKIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1v
bm8uaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vY29udm9s
dXRpb24tbW9uby1tb25vLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDkgKzI3LDkgQEAgZGVz
Y3JpcHRpb24oIlRlc3RzIENvbnZvbHZlck5vZGUgcHJvY2VzcwogLy8gdGhlIHJlc3VsdCBzaG91
bGQgYmUgZXhhY3RseSB6ZXJvIGJlY2F1c2UgdGhlIGlucHV0cyBhcmUgZXhhY3RseQogLy8gemVy
by4KIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x2ZXIt
c2V0QnVmZmVyLW51bGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9j
b252b2x2ZXItc2V0QnVmZmVyLW51bGwuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0
VGVzdHMvd2ViYXVkaW8vY29udm9sdmVyLXNldEJ1ZmZlci1udWxsLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTE1LDkgKzE1LDkgQEAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgQ29udm9sdmVyTm9k
ZSBpbQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2Rl
LW1heGRlbGF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlu
b2RlLW1heGRlbGF5Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1
ZGlvL2RlbGF5bm9kZS1tYXhkZWxheS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw5ICsxNiw5
IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiBEZWxheU5vZGUg
d2l0aCBhIG5vbi1kZWZhdWx0IG1heCBkZWxheSB0aW1lLiIpOwogCiBmdW5jdGlvbiBydW5UZXN0
KCkgewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKICAgICB9CiAgICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJ
bmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLXNjaGVkdWxpbmcuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1s
CShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtc2No
ZWR1bGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw5ICsxNiw5IEBACiBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBEZWxheU5vZGUgZGVsYXlUaW1lIHBhcmFtZXRlciBjYW4gYmUgc2NoZWR1
bGVkIGF0IGEgZ2l2ZW4gdGltZS4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAg
fQogICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRl
c3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dl
YmF1ZGlvL2RlbGF5bm9kZS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93
ZWJhdWRpby9kZWxheW5vZGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTYsOSArMTYsOSBAQAog
ZGVzY3JpcHRpb24oIlRlc3RzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgRGVsYXlOb2RlLiIpOwog
CiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgCiAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtZXhw
b25lbnRpYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5j
ZS1leHBvbmVudGlhbC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJh
dWRpby9kaXN0YW5jZS1leHBvbmVudGlhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw5ICsx
NSw5IEBACiAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBleHBvbmVudGlhbCBkaXN0YW5jZSBtb2Rl
bCBvZiBBdWRpb1Bhbm5lck5vZGUuIik7CiAKICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgIH0KIAogICAg
ICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dl
YmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93
ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91
dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTUsOSArMTUsOSBAQAogICAgICAgZGVzY3JpcHRpb24oIlRlc3QgaW52ZXJzZSBkaXN0YW5jZSBt
b2RlbCBvZiBBdWRpb1Bhbm5lck5vZGUuIik7CiAKICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgIH0KIAog
ICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L3dlYmF1ZGlvL2Rpc3RhbmNlLWxpbmVhci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmF1ZGlvL2Rpc3RhbmNlLWxpbmVhci5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlv
dXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTUsOSArMTUsOSBAQAogICAgICAgZGVzY3JpcHRpb24oIlRlc3QgbGluZWFyIGRpc3RhbmNlIG1v
ZGVsIG9mIEF1ZGlvUGFubmVyTm9kZS4iKTsKIAogICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgICAgfQogCiAg
ICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMv
d2ViYXVkaW8vZHluYW1pY3Njb21wcmVzc29yLWJhc2ljLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZHluYW1pY3Njb21wcmVzc29yLWJhc2ljLmh0bWwJKHJldmlzaW9u
IDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2R5bmFtaWNzY29tcHJlc3Nvci1iYXNp
Yy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw5ICsxNyw5IEBAIHZhciBjb250ZXh0OwogdmFy
IGNvbXByZXNzb3I7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRp
by9nYWluLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi5odG1s
CShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9nYWluLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgZnVuY3Rpb24gcGxheU5vdGUodGltZSwgZ2Fp
bikgewogfQogCiBmdW5jdGlvbiBpbml0KCkgewotICAgIGlmICghd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBAIC03NSw3ICs3NSw3IEBA
IGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgY29udGV4dC5vbmNvbXBsZXRlID0gZmluaXNoQXVkaW9U
ZXN0OwogICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKIAotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
IH0KIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVk
aW9ub2RlLWRvd25taXg4LTJjaGFubmVsLWlucHV0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS1kb3dubWl4OC0yY2hhbm5lbC1pbnB1
dC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2Ny
aXB0YXVkaW9ub2RlLWRvd25taXg4LTJjaGFubmVsLWlucHV0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDkgKzIxLDkgQEAgdmFyIGlucHV0Q2hhbm5lbHMgPSAyOwogdmFyIG91dHB1dENoYW5u
ZWxzID0gNjsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNj
cmlwdGF1ZGlvbm9kZS11cG1peDItOGNoYW5uZWwtaW5wdXQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLXVwbWl4Mi04Y2hhbm5lbC1p
bnB1dC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZh
c2NyaXB0YXVkaW9ub2RlLXVwbWl4Mi04Y2hhbm5lbC1pbnB1dC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yMSw5ICsyMSw5IEBAIHZhciBpbnB1dENoYW5uZWxzID0gODsKIHZhciBvdXRwdXRDaGFu
bmVscyA9IDY7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFz
Y3JpcHRhdWRpb25vZGUtemVyby1pbnB1dC1jaGFubmVscy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtemVyby1pbnB1dC1jaGFubmVs
cy5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2Ny
aXB0YXVkaW9ub2RlLXplcm8taW5wdXQtY2hhbm5lbHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MjYsOSArMjYsOSBAQCBmdW5jdGlvbiBjaGVja1Jlc3VsdChlKQogCiBmdW5jdGlvbiBydW5UZXN0
KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CiAgICAgfQogCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUuaHRtbAkocmV2
aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9k
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw5ICs3Nyw5IEBAIGZ1bmN0aW9uIGRvQnVmZmVy
U2l6ZVRlc3Qoc2l6ZSkgewogfQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAK
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJh
dWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbAko
cmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVk
aW9zb3VyY2Vub2RlLWdjLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDggKzE0LDggQEAKIGRl
c2NyaXB0aW9uKCJUZXN0cyBnYXJiYWdlIGNvbGxlY3Rpb24gb2YgTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlLiIpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICB9CiAKICAgICBhdWRpb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJhdWRpbyIpOwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVt
ZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVk
aW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysr
IExheW91dFRlc3RzL3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xNiw5ICsxNiw5IEBAIGRlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0cyBm
b3IgTWVkaWFFbGVtZW4KIHZhciBjb250ZXh0ID0gMDsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAgICAgfQogICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6
IExheW91dFRlc3RzL3dlYmF1ZGlvL21peGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmF1ZGlvL21peGluZy5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0
cy93ZWJhdWRpby9taXhpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQCB2
YXIgY29udGV4dCA9IDA7CiB2YXIgYnVmZmVyTG9hZGVyID0gMDsKIAogZnVuY3Rpb24gaW5pdCgp
IHsKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBAIC00MCw3ICs0MCw3IEBAIGZ1bmN0aW9uIGluaXQoKSB7
CiAgICAgKTsKIAogICAgIGJ1ZmZlckxvYWRlci5sb2FkKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwog
fQogCiBmdW5jdGlvbiBmaW5pc2hlZExvYWRpbmcoYnVmZmVyTGlzdCkgewpJbmRleDogTGF5b3V0
VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWwJKHJldmlzaW9uIDEyMDUx
NikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tcGxheS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OSw5ICs5OSw5IEBACiAgICAgICB9CiAKICAgICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewot
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAg
ICAgIH0KIAogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExh
eW91dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tdGltaW5nLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi10aW1pbmcuaHRtbAkocmV2aXNp
b24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi10aW1pbmcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsOSArMzYsOSBAQAogICAgICAgfQogCiAgICAgICBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKICAgICAgICAgICB9CiAKICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLWN1c3RvbS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3ItY3VzdG9tLmh0bWwJKHJl
dmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3ItY3VzdG9t
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgU2VlIG9zY2lsbGF0b3ItdGVz
dGluZy5qcyBmb3IgZGV0YWlscy4KIHdpbmRvdy5vbmxvYWQgPSBpbml0OwogCiBmdW5jdGlvbiBp
bml0KCkgewotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICgh
d2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGdlbmVyYXRlRXhwb25l
bnRpYWxPc2NpbGxhdG9yU3dlZXAoT1NDLkNVU1RPTSk7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJh
dWRpby9vc2NpbGxhdG9yLXNhd3Rvb3RoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
d2ViYXVkaW8vb3NjaWxsYXRvci1zYXd0b290aC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLXNhd3Rvb3RoLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTE4LDcgKzE4LDcgQEAgU2VlIG9zY2lsbGF0b3ItdGVzdGluZy5qcyBmb3IgZGV0YWls
cy4KIHdpbmRvdy5vbmxvYWQgPSBpbml0OwogCiBmdW5jdGlvbiBpbml0KCkgewotICAgIGlmICgh
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGdlbmVyYXRlRXhwb25lbnRpYWxPc2NpbGxhdG9yU3dl
ZXAoT1NDLlNBV1RPT1RIKTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3It
c2luZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3It
c2luZS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9vc2Np
bGxhdG9yLXNpbmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBTZWUgb3Nj
aWxsYXRvci10ZXN0aW5nLmpzIGZvciBkZXRhaWxzLgogd2luZG93Lm9ubG9hZCA9IGluaXQ7CiAK
IGZ1bmN0aW9uIGluaXQoKSB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgZ2Vu
ZXJhdGVFeHBvbmVudGlhbE9zY2lsbGF0b3JTd2VlcChPU0MuU0lORSk7CkluZGV4OiBMYXlvdXRU
ZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLXNxdWFyZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3Itc3F1YXJlLmh0bWwJKHJldmlzaW9uIDEyMDUxNikK
KysrIExheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3Itc3F1YXJlLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTE4LDcgKzE4LDcgQEAgU2VlIG9zY2lsbGF0b3ItdGVzdGluZy5qcyBmb3IgZGV0
YWlscy4KIHdpbmRvdy5vbmxvYWQgPSBpbml0OwogCiBmdW5jdGlvbiBpbml0KCkgewotICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGdlbmVyYXRlRXhwb25lbnRpYWxPc2NpbGxhdG9y
U3dlZXAoT1NDLlNRVUFSRSk7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9y
LXRyaWFuZ2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vb3NjaWxs
YXRvci10cmlhbmdsZS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJh
dWRpby9vc2NpbGxhdG9yLXRyaWFuZ2xlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4
LDcgQEAgU2VlIG9zY2lsbGF0b3ItdGVzdGluZy5qcyBmb3IgZGV0YWlscy4KIHdpbmRvdy5vbmxv
YWQgPSBpbml0OwogCiBmdW5jdGlvbiBpbml0KCkgewotICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGdlbmVyYXRlRXhwb25lbnRpYWxPc2NpbGxhdG9yU3dlZXAoT1NDLlRSSUFOR0xF
KTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLXN0ZXJlby5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2Vy
LXN0ZXJlby5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9w
YW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsOSArMjEs
OSBAQAogICAgICAgLy8gdHVybmluZyBhdCBhIGRpZmZlcmVudCB0aW1lIGFuZCB3ZSBjaGVjayB0
aGF0IHRoZSByZW5kZXJlZAogICAgICAgLy8gaW1wdWxzZSBoYXMgdGhlIGV4cGVjdGVkIGdhaW4u
CiAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKICAgICAgICAgICB9CiAKICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2Vy
Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1l
cXVhbHBvd2VyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIxLDkgKzIxLDkgQEAKICAgICAgIC8v
IHR1cm5pbmcgYXQgYSBkaWZmZXJlbnQgdGltZSBhbmQgd2UgY2hlY2sgdGhhdCB0aGUgcmVuZGVy
ZWQKICAgICAgIC8vIGltcHVsc2UgaGFzIHRoZSBleHBlY3RlZCBnYWluLgogICAgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgICAgICAgfQogCiAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRtbAkocmV2aXNpb24g
MTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xNiw5ICsxNiw5IEBACiAKICAgICAgIC8vIFRlc3QgdG8gc2VlIGlm
IHdlIHBhbm5pbmdNb2RlbCBpcyB1cGRhdGVkIHdoZW4gd2Ugc2V0IGl0LgogICAgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgICAgICAgfQogCiAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQt
c2l6aW5nLmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL3Jl
YWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw5ICsx
Myw5IEBACiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCByZS1zaXppbmcgdGhlIEZG
VCBhcnJheXMgZG9lcyBub3QgZmFpbC4iKTsKIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKIH0KIAogdmFyIGRvVGVzdCA9IGZ1bmN0aW9uKGZmdFNpemUsIGlsbGVnYWwpIHsK
QEAgLTQ2LDggKzQ2LDggQEAgZm9yICh2YXIgaSA9IDI7IGkgPD0gMHgyMDAwMDsgaSAqPSAyKSB7
CiAgICAgZG9UZXN0KGkgKyAxLCB0cnVlKTsKIH0KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB0ZXN0UGFzc2Vk
KCJ3ZWJraXRBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJyYXkg
cmVzaXppbmdzLiIpOwogPC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3Nh
bXBsZS1hY2N1cmF0ZS1zY2hlZHVsaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
d2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbAkocmV2aXNpb24gMTIwNTE2
KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDkgKzEwNSw5IEBAIGZ1bmN0aW9uIGNoZWNrU2FtcGxl
QWNjdXJhY3koZXZlbnQpIHsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQog
ICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbAkocmV2aXNpb24g
MTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDIsOSArNDIsOSBAQCBmdW5jdGlvbiB0ZXN0RmluaXNo
ZWQoKSB7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3Rlc3Qt
YmFzaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby90ZXN0LWJhc2lj
Lmh0bWwJKHJldmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL3Rlc3QtYmFz
aWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgog
CiA8IS0tCi1UaGlzIGlzIGEgdmVyeSBiYXNpYyB0ZXN0IHRvIG1ha2Ugc3VyZSBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRBdWRpb0RhdGEoKSB3b3JrcyBjb3JyZWN0bHkuCitUaGlzIGlzIGEgdmVy
eSBiYXNpYyB0ZXN0IHRvIG1ha2Ugc3VyZSB0ZXN0UnVubmVyLnNldEF1ZGlvRGF0YSgpIHdvcmtz
IGNvcnJlY3RseS4KIEl0IGdlbmVyYXRlcyBhIDIgc2Vjb25kcyBsb25nIHN0ZXJlbyByZXN1bHQg
QDQ0LjFLSHoKIFRoZSBsZWZ0IGNoYW5uZWwgd2lsbCBiZSBhIDg4MEh6IHRvbmUsIHdoaWxlIHRo
ZSByaWdodCB3aWxsIGJlIDQ0MEh6LgogLS0+CkBAIC0xOCw3ICsxOCw3IEBAIFRoZSBsZWZ0IGNo
YW5uZWwgd2lsbCBiZSBhIDg4MEh6IHRvbmUsIHcKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgog
CiA8c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIGJhc2ljIGF1ZGlvIHRlc3QgaW5mcmFzdHJ1
Y3R1cmU6IHNwZWNpZmljYWxseSBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBdWRpb0RhdGEoKSIp
OworZGVzY3JpcHRpb24oIlRlc3RzIGJhc2ljIGF1ZGlvIHRlc3QgaW5mcmFzdHJ1Y3R1cmU6IHNw
ZWNpZmljYWxseSB0ZXN0UnVubmVyLnNldEF1ZGlvRGF0YSgpIik7CiAKIHZhciBzYW1wbGVSYXRl
ID0gNDQxMDAuMDsKIHZhciBsZW5ndGhJblNlY29uZHMgPSAyOwpAQCAtMzYsNyArMzYsNyBAQCBm
dW5jdGlvbiBnZW5lcmF0ZVNpbldhdmUoYXVkaW9CdWZmZXIpIHsKIH0KIAogZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgdmFyIGNvbnRl
eHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CkBAIC00NSw5ICs0NSw5IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgZ2VuZXJhdGVTaW5XYXZlKGF1ZGlvQnVmZmVyKTsKIAogICAgIHZh
ciBhdWRpb0RhdGEgPSBjcmVhdGVBdWRpb0RhdGEoYXVkaW9CdWZmZXIpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEF1ZGlvRGF0YShhdWRpb0RhdGEpOworICAgIHRlc3RSdW5uZXIuc2V0
QXVkaW9EYXRhKGF1ZGlvRGF0YSk7CiAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIHJ1blRlc3QoKTsKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tNTEuaHRtbAkocmV2aXNp
b24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tNTEuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTQsMTAgKzE0LDEwIEBAIFRlc3QgdXAgbWl4aW5nIGZyb20g
bW9ubyB0byA1LjEuCiA8c2NyaXB0PgogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICgh
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgIHdpbmRvdy5qc1Rl
c3RBc3luYyA9IHRydWU7CiAKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1t
b25vLXN0ZXJlby5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1p
eGluZy1tb25vLXN0ZXJlby5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0cy93
ZWJhdWRpby91cC1taXhpbmctbW9uby1zdGVyZW8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQs
MTAgKzE0LDEwIEBAIFRlc3QgdXAgbWl4aW5nIGZyb20gbW9ubyB0byBzdGVyZW8uCiA8c2NyaXB0
PgogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKIAogICAgIHdpbmRvdy5qc1Rlc3RBc3luYyA9IHRydWU7CiAKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1zdGVyZW8tNTEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwJKHJl
dmlzaW9uIDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1zdGVyZW8t
NTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsMTAgKzE0LDEwIEBAIFRlc3QgdXAgbWl4aW5n
IGZyb20gc3RlcmVvIHRvIDUuMS4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCiAgICAgd2lu
ZG93LmpzVGVzdEFzeW5jID0gdHJ1ZTsKIApJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2F2
ZXNoYXBlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3dhdmVzaGFw
ZXIuaHRtbAkocmV2aXNpb24gMTIwNTE2KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2F2ZXNo
YXBlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05OSw5ICs5OSw5IEBAIGZ1bmN0aW9uIGNoZWNr
U2hhcGVkQ3VydmUoZXZlbnQpIHsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAg
fQogICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRl
c3RzL3dlYmludGVudHMvd2ViLWludGVudHMtZGVsaXZlcnkuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJpbnRlbnRzL3dlYi1pbnRlbnRzLWRlbGl2ZXJ5Lmh0bWwJKHJldmlzaW9u
IDEyMDUxNikKKysrIExheW91dFRlc3RzL3dlYmludGVudHMvd2ViLWludGVudHMtZGVsaXZlcnku
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDggQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KICAgc2hvdWxkQmVOdWxsKCJ3aW5kb3cud2Via2l0SW50ZW50Iik7CiAKLSAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlci5kZWxpdmVyV2ViSW50ZW50KCJhYWEiLCAidHR0IiwgImRhdGEiKTsKKyAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZGVsaXZlcldlYklu
dGVudCgiYWFhIiwgInR0dCIsICJkYXRhIik7CiAgIH0KIAogICBzaG91bGRCZURlZmluZWQoIndp
bmRvdy53ZWJraXRJbnRlbnQiKTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmludGVudHMvd2ViLWlu
dGVudHMtZmFpbHVyZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmludGVudHMv
d2ViLWludGVudHMtZmFpbHVyZS5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRUZXN0
cy93ZWJpbnRlbnRzL3dlYi1pbnRlbnRzLWZhaWx1cmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Niw5ICs2LDkgQEAKICAgICAgIGZ1bmN0aW9uIGJ1dHRvbkNsaWNrZWQoKSB7CiAgICAgICAgIHN0
YXJ0SW50ZW50V2l0aENhbGxiYWNrcygpOwogCi0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAg
ICAgLy8gRW1wdHkgYXJncyB3aWxsIHNlbmQgZmFpbHVyZSBtZXNzYWdlLgotICAgICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5zZW5kV2ViSW50ZW50UmVzcG9uc2UoKTsKKyAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZW5kV2ViSW50ZW50UmVzcG9uc2UoKTsKICAgICAgICAg
fQogICAgICAgfQogICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViaW50ZW50cy93
ZWItaW50ZW50cy1yZWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJpbnRl
bnRzL3dlYi1pbnRlbnRzLXJlbG9hZC5odG1sCShyZXZpc2lvbiAxMjA1MTYpCisrKyBMYXlvdXRU
ZXN0cy93ZWJpbnRlbnRzL3dlYi1pbnRlbnRzLXJlbG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xOCwxNSArMTgsMTUgQEAKIAogICAgICAgICBkZWJ1ZygiKiBsb2FkZWQgcmVwbGFjZW1lbnQg
cGFnZSIpOwogCi0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAg
ICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiAgICAgICAgIH0KICAgICAgIH0KIAogICAgICAgZnVuY3Rpb24gc3RhcnRU
ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
ICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAg
ICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICBhbGVydCgn
VGhpcyB0ZXN0IG5lZWRzIHRvIHJ1biBpbiBEUlQnKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0
VGVzdHMvd2ViaW50ZW50cy93ZWItaW50ZW50cy1yZXBseS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3dlYmludGVudHMvd2ViLWludGVudHMtcmVwbHkuaHRtbAkocmV2aXNpb24gMTIw
NTE2KQorKysgTGF5b3V0VGVzdHMvd2ViaW50ZW50cy93ZWItaW50ZW50cy1yZXBseS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC02LDggKzYsOCBAQAogICAgICAgZnVuY3Rpb24gYnV0dG9uQ2xpY2tl
ZCgpIHsKICAgICAgICAgc3RhcnRJbnRlbnRXaXRoQ2FsbGJhY2tzKCk7CiAKLSAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlci5zZW5kV2ViSW50ZW50UmVzcG9uc2UoInJlcGx5Iik7CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNlbmRX
ZWJJbnRlbnRSZXNwb25zZSgicmVwbHkiKTsKICAgICAgICAgfQogICAgICAgfQogICAgIDwvc2Ny
aXB0Pgo=
</data>
<flag name="review"
          id="155542"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>