<?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>88757</bug_id>
          
          <creation_ts>2012-06-10 23:39:23 -0700</creation_ts>
          <short_desc>Use testRunner instead of layoutTestController in animations tests</short_desc>
          <delta_ts>2012-06-11 10:22:30 -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>
          <dependson>88210</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>dino</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>645759</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-10 23:39:23 -0700</bug_when>
    <thetext>Use testRunner instead of layoutTestController in animations tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645760</commentid>
    <comment_count>1</comment_count>
      <attachid>146792</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-10 23:40:51 -0700</bug_when>
    <thetext>Created attachment 146792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645776</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-11 00:11:41 -0700</bug_when>
    <thetext>Did
find LayoutTests/animations/ LayoutTests/platform/*/animations/ -type f -not -iwholename &quot;*.svn*&quot; -not -name &quot;*.png&quot; | xargs sed -i -e &quot;s/layoutTestController/testRunner/g&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646071</commentid>
    <comment_count>3</comment_count>
      <attachid>146792</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-11 10:22:25 -0700</bug_when>
    <thetext>Comment on attachment 146792
Patch

Clearing flags on attachment: 146792

Committed r119985: &lt;http://trac.webkit.org/changeset/119985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646072</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-11 10:22:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146792</attachid>
            <date>2012-06-10 23:40:51 -0700</date>
            <delta_ts>2012-06-11 10:22:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88757-20120610234050.patch</filename>
            <type>text/plain</type>
            <size>52664</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDExOTk1NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTEwICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSB0ZXN0UnVubmVyIGluc3RlYWQgb2YgbGF5
b3V0VGVzdENvbnRyb2xsZXIgaW4gYW5pbWF0aW9ucyB0ZXN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg3NTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFuaW1hdGlvbnMvM2QvY2hhbmdlLXRyYW5z
Zm9ybS1pbi1lbmQtZXZlbnQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zLzNkL3JlcGxhY2Ut
ZmlsbGluZy10cmFuc2Zvcm0uaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zLzNkL3N0YXRlLWF0
LWVuZC1ldmVudC10cmFuc2Zvcm0uaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zLzNkL3RyYW5z
Zm9ybS1vcmlnaW4tdnMtZnVuY3Rpb25zLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmlt
YXRpb24tYWRkLWV2ZW50cy1pbi1oYW5kbGVyLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9h
bmltYXRpb24tYm9yZGVyLW92ZXJmbG93Lmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmlt
YXRpb24tY29udHJvbGxlci1kcnQtYXBpLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJlLmh0bWw6CisgICAgICAg
ICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLmh0bWw6
CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZHJ0LWFwaS1tdWx0aXBsZS1rZXlmcmFt
ZXMuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kcnQtYXBpLmh0bWw6Cisg
ICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZW5kLWV2ZW50LWRlc3Ryb3ktcmVuZGVyZXIu
aHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1lbmQtZXZlbnQtc2hvcnQtaXRl
cmF0aW9ucy5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWhpdC10ZXN0LXRy
YW5zZm9ybS5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWhpdC10ZXN0Lmh0
bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24taXRlcmF0aW9uLWV2ZW50LWRlc3Ry
b3ktcmVuZGVyZXIuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1tYXRyaXgt
bmVnYXRpdmUtc2NhbGUtdW5tYXRyaXguaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1h
dGlvbi1vbi1pbmxpbmUtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlv
bi1zaG9ydGhhbmQtb3ZlcnJpZGluZy5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0
aW9uLXNob3J0aGFuZC1yZW1vdmVkLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRp
b24tc2hvcnRoYW5kLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tc3RhcnQt
ZXZlbnQtZGVzdHJveS1yZW5kZXJlci5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0
aW9uLXdlbGNvbWUtc2FmYXJpLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9ib2R5LXJlbW92
YWwtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2NoYW5nZS1rZXlmcmFtZXMtbmFt
ZS5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvY2hhbmdlLXRyYW5zZm9ybS1zdHlsZS1kdXJp
bmctYW5pbWF0aW9uLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0t
dHJhbnNsYXRlK3NjYWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9lbXB0eS1rZXlmcmFt
ZXMuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS1mb3J3YXJkcy5odG1sOgor
ICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC1tb2RlLWl0ZXJhdGlvbi1jb3VudC1ub24taW50ZWdl
ci5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC1tb2RlLW1pc3NpbmctZnJvbS10by1r
ZXlmcmFtZXMuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS1tdWx0aXBsZS1r
ZXlmcmFtZXMuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS1yZW1vdmVkLmh0
bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1vZGUtcmV2ZXJzZS5odG1sOgorICAgICAg
ICAqIGFuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sOgorICAgICAgICAqIGFuaW1h
dGlvbnMvZmlsbC1tb2RlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLXVuc2V0LXBy
b3BlcnRpZXMuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMu
aHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBhbmltYXRpb25zL2ltcG9ydC1jcmFzaC5odG1sOgor
ICAgICAgICAqIGFuaW1hdGlvbnMva2V5ZnJhbWUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0u
aHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2tleWZyYW1lLXRpbWluZy1mdW5jdGlvbnMyLmh0
bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9rZXlmcmFtZXMtaXRlcmF0aW9uLWNvdW50LW5vbi1p
bnRlZ2VyLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9sb25naGFuZC10aW1pbmctZnVuY3Rp
b24uaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL21pc3NpbmctZnJvbS10by10cmFuc2Zvcm1z
Lmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9taXNzaW5nLWZyb20tdG8uaHRtbDoKKyAgICAg
ICAgKiBhbmltYXRpb25zL3BhdXNlLWNyYXNoLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9y
ZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qczoKKyAgICAgICAgKGNoZWNrRXhwZWN0
ZWRWYWx1ZSk6CisgICAgICAgIChlbmRUZXN0KToKKyAgICAgICAgKiBhbmltYXRpb25zL3N0YXRl
LWF0LWVuZC1ldmVudC5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUt
YW5pbWF0aW9uLWV2ZW50cy5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvc3VzcGVuZC10cmFu
c2Zvcm0tYW5pbWF0aW9uLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy90cmFuc2l0aW9uLWFu
ZC1hbmltYXRpb24tMy5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvdW5hbmltYXRlZC1zdHls
ZS5odG1sOgorCiAyMDEyLTA2LTA4ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVc2luZyBCbG9iQnVpbGRlciBzaG91bGQgc2hvdyBhIGRlcHJlY2F0aW9u
IHdhcm5pbmcgbWVzc2FnZSAoaWYgaXQgaXMgZW5hYmxlZCkKSW5kZXg6IExheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWFkZC1ldmVudHMtaW4taGFuZGxlci5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFkZC1ldmVudHMtaW4taGFuZGxl
ci5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1hZGQtZXZlbnRzLWluLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsx
LDcgQEAKIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQog
CiBmdW5jdGlvbiB0b3VjaEVsZW1lbnQoZXZ0KSB7CkBAIC0xMCw4ICsxMCw4IEBAIGZ1bmN0aW9u
IHRvdWNoRWxlbWVudChldnQpIHsKICAgICB0b3RhbCsrOwogICAgIGlmICh0b3RhbCA9PSA1MDAp
IHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdHMiKS5pbm5lckhUTUwg
PSAiUEFTUzogQWRkaW5nIGFuaW1hdGlvbiBldmVudHMgaW4gdGhlIGhhbmRsZXIgZGlkIG5vdCBj
cmFzaC4iOwotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0K
IH0KIApJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYm9yZGVyLW92ZXJm
bG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
Ym9yZGVyLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDExOTk0NikKKysrIExheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWJvcmRlci1vdmVyZmxvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xOSw4ICsxOSw4IEBACiA8L3N0eWxlPgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5p
bWF0aW9uLXRlc3QtaGVscGVycy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1
dGYtOCI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJz
ZXQ9InV0Zi04Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIGNvbnN0IGV4
cGVjdGVkVmFsdWVzID0gWwogICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50
LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KSW5kZXg6IExheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNvbnRyb2xsZXItZHJ0LWFwaS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNvbnRyb2xsZXItZHJ0LWFw
aS5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1jb250cm9sbGVyLWRydC1hcGkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAs
NyBAQAogICAgCiAgICAgZnVuY3Rpb24gc2FtcGxlMCgpIHsKICAgICAgIHZhciBleHBlY3RlZCA9
IDQ7Ci0gICAgICB2YXIgY3VycmVudCA9IGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9mQWN0
aXZlQW5pbWF0aW9ucygpOworICAgICAgdmFyIGN1cnJlbnQgPSB0ZXN0UnVubmVyLm51bWJlck9m
QWN0aXZlQW5pbWF0aW9ucygpOwogICAgICAgaWYgKGN1cnJlbnQgPT0gZXhwZWN0ZWQpCiAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQwJykuaW5uZXJIVE1MID0gIk51bWJl
ciBvZiBhY3RpdmUgYW5pbWF0aW9ucyBhdCAwcyBpcyAoIiArIGN1cnJlbnQgKyAiKSBhcyBleHBl
Y3RlZCI7CiAgICAgICBlbHNlCkBAIC01OSwxOSArNTksMTkgQEAKICAgICAKICAgICBmdW5jdGlv
biBzYW1wbGUxKCkgewogICAgICAgdmFyIGV4cGVjdGVkID0gNDsKLSAgICAgIHZhciBjdXJyZW50
ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CisgICAg
ICB2YXIgY3VycmVudCA9IHRlc3RSdW5uZXIubnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiAg
ICAgICBpZiAoY3VycmVudCA9PSBleHBlY3RlZCkKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdDEnKS5pbm5lckhUTUwgPSAiTnVtYmVyIG9mIGFjdGl2ZSBhbmltYXRpb25z
IGF0IDFzIGlzICgiICsgY3VycmVudCArICIpIGFzIGV4cGVjdGVkIjsKICAgICAgIGVsc2UKICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdDEnKS5pbm5lckhUTUwgPSAiTnVt
YmVyIG9mIGFjdGl2ZSBhbmltYXRpb25zIGF0IDFzIGlzICgiICsgY3VycmVudCArICIpIGJ1dCB3
YXMgZXhwZWN0aW5nICgiICsgZXhwZWN0ZWQgKyAiKSI7CiAgICAgICAKLSAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7Ci0gICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAg
ICAgCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0
Jyk7CiAgICAgICAgIHRhcmdldC5zdHlsZS50b3AgPSAnMjAwcHgnOwpJbmRleDogTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3
YXJlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
ZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJlLmh0bWwJKHJldmlzaW9uIDExOTk0
NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNl
LWZpbGwtbW9kZS1oYXJkd2FyZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Myw5IEBA
CiAgICAgXTsKICAgICB2YXIgcmVzdWx0ID0gIiI7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgZnVuY3Rp
b24gYW5pbWF0aW9uRW5kZWQoZXZlbnQpIHsKQEAgLTY4LDggKzY4LDggQEAKICAgICAgICAgfQog
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVz
dWx0OwogCi0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
IH0KICAgICAKICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgewpJbmRleDogTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0
aW9uLXJldmVyc2UtZmlsbC1tb2RlLmh0bWwJKHJldmlzaW9uIDExOTk0NikKKysrIExheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC01Niw5ICs1Niw5IEBACiAgICAgXTsKICAgICB2YXIgcmVzdWx0
ID0gIiI7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYW5pbWF0aW9uRW5kZWQoZXZlbnQp
IHsKQEAgLTgxLDggKzgxLDggQEAKICAgICAgICAgfQogICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OwogCi0gICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIAogICAgIHdpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbiAoKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1k
cnQtYXBpLW11bHRpcGxlLWtleWZyYW1lcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRydC1hcGktbXVsdGlwbGUta2V5ZnJhbWVzLmh0bWwJKHJl
dmlzaW9uIDExOTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRydC1h
cGktbXVsdGlwbGUta2V5ZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDE1ICsyMywx
NSBAQAogCiAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMu
anMiPjwvc2NyaXB0PgogICAgPHNjcmlwdD4KLSAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICB9CiAgICAKICAgICBmdW5jdGlvbiBh
bmltYXRpb25TdGFydGVkKCkKICAgICB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgICAgIHZhciBwYXVzZWQgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5wYXVz
ZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgiYW5pbSIsIDEsICJ0YXJnZXQiKTsKKyAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB2YXIgcGF1c2VkID0gdGVzdFJ1
bm5lci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgiYW5pbSIsIDEsICJ0YXJn
ZXQiKTsKICAgICAgICAgdmFyIHJlc3VsdDsKICAgICAgICAgaWYgKHBhdXNlZCkKICAgICAgICAg
ICByZXN1bHQgPSAiUEFTUzogY29ycmVjdGx5IHBhdXNlZCBhbmltYXRpb24iOwpAQCAtMzksNyAr
MzksNyBAQAogICAgICAgICAgIHJlc3VsdCA9ICJGQUlMOiBmYWlsZWQgdG8gcGF1c2UgYW5pbWF0
aW9uIjsKIAogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVy
VGV4dCA9IHJlc3VsdDsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0gZWxzZQogICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVyVGV4dCA9ICJUaGlzIHRl
c3QgcmVxdWlyZXMgRFJUIjsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2Fu
aW1hdGlvbi1kcnQtYXBpLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tZHJ0LWFwaS5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kcnQtYXBpLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDE1ICsyNSwxNSBAQAogCiAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3Qt
aGVscGVycy5qcyI+PC9zY3JpcHQ+CiAgIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBhbmlt
YXRpb25TdGFydGVkKCkKICAgICB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICAgIHZhciBwYXVzZWQgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5wYXVzZUFu
aW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgiYm91bmNlIiwgMS4wLCAidGFyZ2V0Iik7Cisg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdmFyIHBhdXNlZCA9IHRlc3RS
dW5uZXIucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImJvdW5jZSIsIDEuMCwg
InRhcmdldCIpOwogICAgICAgICB2YXIgcmVzdWx0ID0gIiI7CiAgICAgICAgIGlmIChwYXVzZWQp
CiAgICAgICAgICAgcmVzdWx0ID0gIlBBU1M6IGNvcnJlY3RseSBwYXVzZWQgYW5pbWF0aW9uIjsK
QEAgLTQxLDcgKzQxLDcgQEAKICAgICAgICAgICByZXN1bHQgPSAiRkFJTDogZmFpbGVkIHRvIHBh
dXNlIGFuaW1hdGlvbiI7CiAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3Vs
dHMnKS5pbm5lclRleHQgPSByZXN1bHQ7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICB9IGVs
c2UKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lclRleHQg
PSAiVGhpcyB0ZXN0IHJlcXVpcmVzIERSVCI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9hbmltYXRpb24tZW5kLWV2ZW50LWRlc3Ryb3ktcmVuZGVyZXIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1lbmQtZXZlbnQtZGVzdHJv
eS1yZW5kZXJlci5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1lbmQtZXZlbnQtZGVzdHJveS1yZW5kZXJlci5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xNiw5ICsxNiw5IEBACiAgICAgfQogICA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIg
bnVtRG9uZSA9IDA7CkBAIC0zMSw4ICszMSw4IEBACiAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhUTUwgPSAnRGlkIG5vdCBjcmFzaCwgc28gUEFTU0VE
JzsKIAotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgfQog
ICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZW5kLWV2ZW50
LXNob3J0LWl0ZXJhdGlvbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1lbmQtZXZlbnQtc2hvcnQtaXRlcmF0aW9ucy5odG1sCShyZXZpc2lvbiAx
MTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1lbmQtZXZlbnQtc2hv
cnQtaXRlcmF0aW9ucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxNyArMjAsMTcgQEAKICAg
ICB9CiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgCiAgICAgb25sb2FkID0g
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Vi
a2l0QW5pbWF0aW9uRW5kJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gJ1BBU1M6IGdvdCB3ZWJraXRBbmltYXRp
b25FbmQgZXZlbnQnOyAgICAgIAotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0sIGZhbHNlKTsKICAgICAgICAgCiAg
ICAgICAgIC8vIEFuaW1hdGlvbiBiZWdpbnMgb25jZSB3ZSBhcHBlbmQgdGhlIERPTSBub2RlIHRv
IHRoZSBkb2N1bWVudC4KSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWhp
dC10ZXN0LXRyYW5zZm9ybS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLWhpdC10ZXN0LXRyYW5zZm9ybS5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisr
KyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1oaXQtdGVzdC10cmFuc2Zvcm0uaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTIgKzUzLDEyIEBACiAgICAgIAogICAgICAgICBmdW5j
dGlvbiBkb1Rlc3QoKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgiYW5pbSIsIDIuMCwgInRhcmdl
dCIpKQorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJh
bmltIiwgMi4wLCAidGFyZ2V0IikpCiAgICAgICAgICAgICAgICAgICAgIHRocm93KCJUcmFuc2l0
aW9uIGlzIG5vdCBydW5uaW5nIik7CiAgICAgICAgIAogICAgICAgICAgICAgICAgIGNoZWNrUmVz
dWx0cygpOwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0
KCJjaGVja1Jlc3VsdHMoKSIsIDIwMDApOwpAQCAtNjcsOSArNjcsOSBAQAogICAgIAogICAgICAg
ICBmdW5jdGlvbiBzdGFydFRlc3QoKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgfQogICAgICAgCiAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikuc3R5bGUud2Via2l0QW5p
bWF0aW9uTmFtZSA9ICJhbmltIjsKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0
aW9uLWhpdC10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24taGl0LXRlc3QuaHRtbAkocmV2aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24taGl0LXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTMs
MTIgKzUzLDEyIEBACiAgICAgIAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFsYXlvdXRUZXN0Q29udHJvbGxlci5wYXVzZUFuaW1hdGlvbkF0VGltZU9u
RWxlbWVudFdpdGhJZCgiYW5pbSIsIDIuMCwgInRhcmdldCIpKQorICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnBhdXNl
QW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJhbmltIiwgMi4wLCAidGFyZ2V0IikpCiAg
ICAgICAgICAgICAgICAgICAgIHRocm93KCJUcmFuc2l0aW9uIGlzIG5vdCBydW5uaW5nIik7CiAg
ICAgICAgIAogICAgICAgICAgICAgICAgIGNoZWNrUmVzdWx0cygpOwotICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCJjaGVja1Jlc3VsdHMoKSIsIDIwMDAp
OwpAQCAtNjcsOSArNjcsOSBAQAogICAgIAogICAgICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgICAgICAgICAgfQogICAgICAgCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0Iikuc3R5bGUud2Via2l0QW5pbWF0aW9uTmFtZSA9ICJhbmltIjsKSW5k
ZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWl0ZXJhdGlvbi1ldmVudC1kZXN0
cm95LXJlbmRlcmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24taXRlcmF0aW9uLWV2ZW50LWRlc3Ryb3ktcmVuZGVyZXIuaHRtbAkocmV2aXNpb24g
MTE5OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24taXRlcmF0aW9uLWV2
ZW50LWRlc3Ryb3ktcmVuZGVyZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsOSArMTcsOSBA
QAogICAgIH0KICAgPC9zdHlsZT4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNo
YXJzZXQ9InV0Zi04Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgdmFyIG51bURvbmUgPSAwOwpAQCAtMzIs
OCArMzIsOCBAQAogCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJyku
aW5uZXJIVE1MID0gJ0RpZCBub3QgY3Jhc2gsIHNvIFBBU1NFRCc7CiAKLSAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0KICAgICB9CiAKSW5kZXg6IExheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLW1hdHJpeC1uZWdhdGl2ZS1zY2FsZS11bm1hdHJp
eC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLW1h
dHJpeC1uZWdhdGl2ZS1zY2FsZS11bm1hdHJpeC5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1tYXRyaXgtbmVnYXRpdmUtc2NhbGUtdW5t
YXRyaXguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsOSArMjIsOSBAQAogICAgICAgICAgICAg
fQogICAgICAgICA8L3N0eWxlPgogICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgY2hhcnNldD0idXRmLTgiPgotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmVzdWx0ID0gIlBB
U1MiOwpAQCAtMzksOCArMzksOCBAQAogICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAiRkFJ
TChzY2FsZVkgd2FzIHBvc2l0aXZlLCBleHBlY3RlZCB0byBiZSBuZWdhdGl2ZSkiOwogCiAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
IHJlc3VsdDsKLSAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgZnVuY3Rpb24gc3RhcnRBbmltYXRpb24oKQpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tb24taW5saW5lLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tb24taW5saW5lLWNyYXNoLmh0bWwJKHJldmlzaW9uIDEx
OTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLW9uLWlubGluZS1jcmFz
aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDE2ICs5LDE2IEBACiAgICAgfQogPC9zdHlsZT4K
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
IH0KICAgICAKICAgICBmdW5jdGlvbiB3YWl0Rm9yQW5pbWF0aW9uKCkKICAgICB7CiAgICAgICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAg
ICB9CiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB3YWl0Rm9yQW5pbWF0aW9u
LCBmYWxzZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhh
bmQtb3ZlcnJpZGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLXNob3J0aGFuZC1vdmVycmlkaW5nLmh0bWwJKHJldmlzaW9uIDExOTk0NikKKysr
IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXNob3J0aGFuZC1vdmVycmlkaW5nLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDggQEAgZGl2ID4gZGl2IHsKIH0KIDwvc3R5
bGU+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgIAogICAgIGNvbnN0IGtQcm9wZXJ0aWVzID0g
WwogICAgICAgIndlYmtpdEFuaW1hdGlvbk5hbWUiLApJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLXJlbW92ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhhbmQtcmVtb3ZlZC5odG1sCShyZXZp
c2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhh
bmQtcmVtb3ZlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw5ICsxMSw5IEBACiBALXdlYmtp
dC1rZXlmcmFtZXMgYW5pbTEgeyB9CiA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBjb25zdCBrUHJvcGVy
dGllcyA9IFsKQEAgLTkwLDggKzkwLDggQEAKIAogICAgICAgdmFyIHJlc3VsdHMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jyk7CiAgICAgICByZXN1bHRzLmlubmVySFRNTCA9IHJl
c3VsdHNTdHJpbmc7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9
CiAKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHN0YXJ0LCBmYWxzZSk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhhbmQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhhbmQuaHRt
bAkocmV2aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
c2hvcnRoYW5kLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQxLDggKzQxLDggQEAKIEAtd2Via2l0
LWtleWZyYW1lcyBhbmltMiB7IH0KIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
IAogICAgIGNvbnN0IGtQcm9wZXJ0aWVzID0gWwogICAgICAgIndlYmtpdEFuaW1hdGlvbk5hbWUi
LApJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tc3RhcnQtZXZlbnQtZGVz
dHJveS1yZW5kZXJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLXN0YXJ0LWV2ZW50LWRlc3Ryb3ktcmVuZGVyZXIuaHRtbAkocmV2aXNpb24gMTE5
OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tc3RhcnQtZXZlbnQtZGVz
dHJveS1yZW5kZXJlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw5ICsxNiw5IEBACiAgICAg
fQogICA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgbnVtRG9uZSA9IDA7CkBAIC0zMSw4ICszMSw4
IEBACiAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lckhU
TUwgPSAnRGlkIG5vdCBjcmFzaCwgc28gUEFTU0VEJzsKIAotICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgfQogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24td2VsY29tZS1zYWZhcmkuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi13ZWxjb21lLXNhZmFyaS5odG1sCShyZXZp
c2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi13ZWxjb21l
LXNhZmFyaS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05NCw5ICs5NCw5IEBAIGJvZHkuZ28gI2Js
dWUgewogPC9zdHlsZT4KIAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9
InV0Zi04Ij4KLSAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgIH0KIAogICAgIHZhciBhbmltYXRpb25TdGFydGVkID0gZmFsc2U7CkBA
IC0xMTYsOCArMTE2LDggQEAgYm9keS5nbyAjYmx1ZSB7CiAgICAgfSwgZmFsc2UpOwogCiAgICAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0QW5pbWF0aW9uRW5kIiwgZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAg
ICAgfSwgZmFsc2UpOwogCiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5j
dGlvbiAoKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2JvZHktcmVtb3ZhbC1jcmFz
aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYm9keS1yZW1vdmFs
LWNyYXNoLmh0bWwJKHJldmlzaW9uIDExOTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMv
Ym9keS1yZW1vdmFsLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEzICszOSwxMyBA
QCBmdW5jdGlvbiBjcmFzaCgpIHsKIGZ1bmN0aW9uIGNsZWFudXAoKSB7CiAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJiIikucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImIiKS5uZXh0U2libGluZyk7CiAgIAotICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKIH0KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogY3Jh
c2goKTsKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvY2hhbmdlLWtleWZyYW1lcy1uYW1l
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2Uta2V5ZnJh
bWVzLW5hbWUuaHRtbAkocmV2aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9jaGFuZ2Uta2V5ZnJhbWVzLW5hbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTAgKzU3
LDEwIEBACiAgICAgCiAgICAgZnVuY3Rpb24gc2V0dXAoKQogICAgIHsKLSAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7Ci0gICAgICAgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLnBhdXNlQW5pbWF0
aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJiYXIiLCAwLjUsICJib3giKSkKKyAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImJhciIsIDAuNSwg
ImJveCIpKQogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlLXJlc3Vs
dCIpLmlubmVySFRNTCA9ICJGQUlMOiBhbmltYXRpb24gaXMgcnVubmluZyI7CiAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlLXJlc3VsdCIp
LmlubmVySFRNTCA9ICJQQVNTOiBhbmltYXRpb24gaXMgbm90IHJ1bm5pbmciOwpJbmRleDogTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2UtdHJhbnNmb3JtLXN0eWxlLWR1cmluZy1hbmltYXRp
b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS10cmFu
c2Zvcm0tc3R5bGUtZHVyaW5nLWFuaW1hdGlvbi5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS10cmFuc2Zvcm0tc3R5bGUtZHVyaW5nLWFuaW1h
dGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw5IEBACiAKICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiAgICA8
c2NyaXB0PgotICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CiAgICAgIH0KIAogICAgICBmdW5jdGlvbiBhbmltYXRpb25Eb25lKCkKQEAgLTU0
LDcgKzU0LDcgQEAKICAgICAgICAgIHJlc3VsdCA9ICJGQUlMIC0gQ29tcHV0ZWQgZmluYWwgcG9z
aXRpb24gaXMgaW5jb3JyZWN0LiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiLCBnb3QgIiArIGNv
bXB1dGVkOwogICAgICAgIH0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0
JykuaW5uZXJIVE1MID0gcmVzdWx0OwotICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgfQogCiAgICAg
IGZ1bmN0aW9uIGFuaW1hdGlvblN0YXJ0ZWQoKQpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3NjYWxlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3NjYWxlLmh0bWwJ
KHJldmlzaW9uIDExOTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tYm8tdHJhbnNm
b3JtLXRyYW5zbGF0ZStzY2FsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5ICsyMCw5IEBA
CiAgICAgfQogICA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hh
cnNldD0idXRmLTgiPgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CiAgICAgfQogICAgIAogICAgIHJlc3VsdCA9ICIiOwpAQCAtNTEsOCArNTEsOCBA
QAogICAgICAgICBudW1TbmFwc2hvdHMrKzsKICAgICAgICAgaWYgKG51bVNuYXBzaG90cyA9PSAy
KSB7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJI
VE1MID0gcmVzdWx0IHx8ICJQQVNTIjsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2VtcHR5LWtleWZyYW1lcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2FuaW1hdGlvbnMvZW1wdHkta2V5ZnJhbWVzLmh0bWwJKHJldmlzaW9uIDEx
OTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvZW1wdHkta2V5ZnJhbWVzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE4LDggKzE4LDggQEAKICAgICB9CiAgIDwvc3R5bGU+CiAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBMYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1mb3J3YXJkcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWZvcndhcmRzLmh0bWwJKHJldmlzaW9u
IDExOTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWZvcndhcmRzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgfQogCiAgICAgdmFyIHB1bHNpbmdTcXVhcmVBbmltYXRpb25FbmRlZCA9IGZh
bHNlOwpAQCAtMjYsOCArMjYsOCBAQAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IHJlc3VsdC5pbm5lckhUTUwgPSAiUEFTUyAtIFRlc3Qgd29ya2luZyI7CiAKLSAgICAgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAg
ICB9CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1pdGVy
YXRpb24tY291bnQtbm9uLWludGVnZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9h
bmltYXRpb25zL2ZpbGwtbW9kZS1pdGVyYXRpb24tY291bnQtbm9uLWludGVnZXIuaHRtbAkocmV2
aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtaXRlcmF0
aW9uLWNvdW50LW5vbi1pbnRlZ2VyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYxLDkgKzYxLDkg
QEAKICAgICBdOwogICAgIHZhciByZXN1bHQgPSAiIjsKIAotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBmdW5j
dGlvbiBhbmltYXRpb25FbmRlZChldmVudCkgewpAQCAtODgsOCArODgsOCBAQAogICAgICAgICB9
CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSBy
ZXN1bHQ7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAg
ICAgfQogCiAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKSW5kZXg6IExheW91dFRl
c3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLW1pc3NpbmctZnJvbS10by1rZXlmcmFtZXMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1taXNzaW5nLWZy
b20tdG8ta2V5ZnJhbWVzLmh0bWwJKHJldmlzaW9uIDExOTk0NikKKysrIExheW91dFRlc3RzL2Fu
aW1hdGlvbnMvZmlsbC1tb2RlLW1pc3NpbmctZnJvbS10by1rZXlmcmFtZXMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAzLDkgKzEwMyw5IEBACiAgICAgXTsKICAgICB2YXIgcmVzdWx0ID0gIiI7
CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYW5pbWF0aW9uRW5kZWQoZXZlbnQpIHsKQEAg
LTEzMCw4ICsxMzAsOCBAQAogICAgICAgICB9CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogCiAgICAgd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uICgpIHsKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLW11bHRp
cGxlLWtleWZyYW1lcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMv
ZmlsbC1tb2RlLW11bHRpcGxlLWtleWZyYW1lcy5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1tdWx0aXBsZS1rZXlmcmFtZXMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNzYsOSArNzYsOSBAQAogICAgIF07CiAgICAgdmFyIHJlc3VsdCA9
ICIiOwogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7
CkBAIC0xMDMsOCArMTAzLDggQEAKICAgICAgICAgfQogICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OwogCi0gICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIAogICAgIHdpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbiAoKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1y
ZW1vdmVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1v
ZGUtcmVtb3ZlZC5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRp
b25zL2ZpbGwtbW9kZS1yZW1vdmVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkg
QEAKICAgICAgIHtpZDogImQiLCB2YWx1ZTogMTAwfQogICAgIF07CiAgIAotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAg
IAogICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7CkBAIC03Nyw4ICs3Nyw4IEBA
CiAgICAgICAgIH0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlu
bmVySFRNTCA9IHJlc3VsdDsKIAotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICB9CiAgIAogICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1yZXZlcnNlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtcmV2ZXJzZS5odG1sCShy
ZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1yZXZl
cnNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDkgQEAKICAgICBdOwogICAgIHZh
ciByZXN1bHQgPSAiIjsKIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBhbmltYXRpb25FbmRl
ZChldmVudCkgewpAQCAtODUsOCArODUsOCBAQAogICAgICAgICB9CiAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CiAKLSAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogCiAgICAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvZmls
bC1tb2RlLXRyYW5zZm9ybS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlv
bnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNTgsOSArNTgsOSBAQAogICAgIF07CiAgICAgdmFyIHJlc3VsdCA9ICIiOwogCi0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7CkBAIC04Niw4ICs4Niw4
IEBACiAgICAgICAgIH0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcp
LmlubmVySFRNTCA9IHJlc3VsdDsKIAotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKICAgICB9CiAgICAgCiAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgp
IHsKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRtbAkocmV2aXNpb24gMTE5
OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNTcsOSArNTcsOSBAQAogICAgIF07CiAgICAgdmFyIHJlc3VsdCA9ICIiOwogCi0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7CkBAIC04NCw4
ICs4NCw4IEBACiAgICAgICAgIH0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
c3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdDsKIAotICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAKICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24g
KCkgewpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJv
cGVydGllcy5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25z
L2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw4ICsyMiw4
IEBACiBALXdlYmtpdC1rZXlmcmFtZXMgZSB7IH0KIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAgIAogICAgIGNvbnN0IGtFeHBlY3RlZFJlc3VsdHMgPSBbCiAgICAgICB7ICdwcm9w
ZXJ0eSc6ICd3ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24nLCAndmFsdWUnOiAnMnMsIDJzLCAxcywg
MXMsIDJzJyB9LApJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXNpemUtdXNpbmct
ZW1zLmh0bWwtZGlzYWJsZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
b250LXNpemUtdXNpbmctZW1zLmh0bWwtZGlzYWJsZWQJKHJldmlzaW9uIDExOTk0NikKKysrIExh
eW91dFRlc3RzL2FuaW1hdGlvbnMvZm9udC1zaXplLXVzaW5nLWVtcy5odG1sLWRpc2FibGVkCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCw5IEBACiAgICAgfQogICAgIDwvc3R5bGU+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAg
fQogICAgIAogICAgIHJlc3VsdCA9ICJQQVNTIjsKQEAgLTYxLDggKzYxLDggQEAKICAgICAgICAg
CiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdDsKLSAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgICAgICB9LCA0MDApOwogICAgIH0KICAgICAKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlv
bnMvaW1wb3J0LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9pbXBvcnQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9pbXBvcnQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjAsOCArMjAsOCBA
QAogICAgIH0KICAgICA8L3N0eWxlPgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgIDwvc2Ny
aXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZy
YW1lLXRpbWluZy1mdW5jdGlvbnMyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9rZXlmcmFtZS10aW1pbmctZnVuY3Rpb25zMi5odG1sCShyZXZpc2lvbiAxMTk5NDYp
CisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLXRpbWluZy1mdW5jdGlvbnMyLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTU4LDQgKzU4LDQgQEAKIDxkaXYgaWQ9InJlc3VsdCI+CiA8
L2Rpdj4KIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLXRpbWluZy1mdW5jdGlv
bnMtdHJhbnNmb3JtLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9r
ZXlmcmFtZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCShyZXZpc2lvbiAxMTk5NDYp
CisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLXRpbWluZy1mdW5jdGlvbnMtdHJh
bnNmb3JtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU5LDQgKzU5LDQgQEAKIDxkaXYgaWQ9InJl
c3VsdCI+CiA8L2Rpdj4KIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lcy1pdGVy
YXRpb24tY291bnQtbm9uLWludGVnZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9h
bmltYXRpb25zL2tleWZyYW1lcy1pdGVyYXRpb24tY291bnQtbm9uLWludGVnZXIuaHRtbAkocmV2
aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZXMtaXRlcmF0
aW9uLWNvdW50LW5vbi1pbnRlZ2VyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDkg
QEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CiAKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAg
fQogICAgIAogICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdEFuaW1hdGlvbkVu
ZCIsIGZ1bmN0aW9uKGV2ZW50KXsKQEAgLTQzLDggKzQzLDggQEAKICAgICAgICAgICAgIHJlc3Vs
dCA9ICJGQUlMIGVuZCBvZiBhbmltYXRpb24iOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OwogCi0gICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0sIGZhbHNlKTsKICAgICAKICAgPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2xvbmdoYW5kLXRpbWluZy1mdW5jdGlv
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvbG9uZ2hhbmQtdGlt
aW5nLWZ1bmN0aW9uLmh0bWwJKHJldmlzaW9uIDExOTk0NikKKysrIExheW91dFRlc3RzL2FuaW1h
dGlvbnMvbG9uZ2hhbmQtdGltaW5nLWZ1bmN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDggKzI2LDggQEAKICAgICA8L3N0eWxlPgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5p
bWF0aW9uLXRlc3QtaGVscGVycy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1
dGYtOCI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJz
ZXQ9InV0Zi04Ij4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAKICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKICAgICAgICAgICAg
IC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVk
LXZhbHVlLCB0b2xlcmFuY2VdCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL21pc3Npbmct
ZnJvbS10by10cmFuc2Zvcm1zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9taXNzaW5nLWZyb20tdG8tdHJhbnNmb3Jtcy5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisr
KyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL21pc3NpbmctZnJvbS10by10cmFuc2Zvcm1zLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTg5LDggKzg5LDggQEAKICAgICBdOwogCiAgICAgcnVuQW5pbWF0
aW9uVGVzdChleHBlY3RlZFZhbHVlcywgZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVy
LnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJhbmltNSIsIDAuMSwgImJveDUi
KSkKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJhbmltNSIsIDAuMSwgImJv
eDUiKSkKICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMIC0gYm94NSBhbmltYXRpb24gd2Fz
IHJ1bm5pbmc8YnI+IjsKICAgICAgICAgICBlbHNlIAogICAgICAgICAgICAgICByZXN1bHQgKz0g
IlBBU1MgLSBib3g1IGFuaW1hdGlvbiB3YXMgbm90IHJ1bm5pbmc8YnI+IjsKSW5kZXg6IExheW91
dFRlc3RzL2FuaW1hdGlvbnMvbWlzc2luZy1mcm9tLXRvLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9taXNzaW5nLWZyb20tdG8uaHRtbAkocmV2aXNpb24gMTE5OTQ2
KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9taXNzaW5nLWZyb20tdG8uaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtODgsOCArODgsOCBAQAogICAgIF07CiAKICAgICBydW5BbmltYXRpb25UZXN0
KGV4cGVjdGVkVmFsdWVzLCBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICAgICAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIucGF1c2VB
bmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImFuaW01IiwgMC4xLCAiYm94NSIpKQorICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgaWYgKHRlc3RSdW5uZXIucGF1
c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImFuaW01IiwgMC4xLCAiYm94NSIpKQog
ICAgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwgLSBib3g1IGFuaW1hdGlvbiB3YXMgcnVubmlu
Zzxicj4iOwogICAgICAgICAgIGVsc2UgCiAgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyAt
IGJveDUgYW5pbWF0aW9uIHdhcyBub3QgcnVubmluZzxicj4iOwpJbmRleDogTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9wYXVzZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Fu
aW1hdGlvbnMvcGF1c2UtY3Jhc2guaHRtbAkocmV2aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9wYXVzZS1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOCw5ICsx
OCw5IEBACiAgICAgfQogICA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgY2hhcnNldD0idXRmLTgiPgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBhbmltYXRpb25T
dGFydGVkKCkKQEAgLTMxLDggKzMxLDggQEAKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYm94MScpLnN0eWxlLndlYmtpdEFuaW1hdGlvblBsYXlTdGF0ZSA9ICJydW5u
aW5nIjsKICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVySFRNTCA9
ICdEaWQgbm90IGNyYXNoLCBzbyBQQVNTRUQnOwotICAgICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICAgICAgICAgICAgICB9LCA1MCk7CiAgICAgICAgICAgICB9LCA1MCk7CiAg
ICAgICAgIH0sIDUwKTsKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvc3RhdGUtYXQtZW5k
LWV2ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdGF0ZS1h
dC1lbmQtZXZlbnQuaHRtbAkocmV2aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9zdGF0ZS1hdC1lbmQtZXZlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTQgKzM2
LDE0IEBACiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgZnVuY3Rpb24g
dGVzdEVuZGVkKCkKICAgICB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
IH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQogICAgIHsKLSAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0ZXInKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRBbmltYXRpb25FbmQnLCB0ZXN0RW5k
ZWQsIGZhbHNlKTsKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5j
bGFzc05hbWUgPSAnbW92ZWQnOwpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5k
LXJlc3VtZS1hbmltYXRpb24tZXZlbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24tZXZlbnRzLmh0bWwJKHJldmlzaW9u
IDExOTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0
aW9uLWV2ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxNyArNDIsMTcgQEAKICAgICAK
ICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHNldFRpbWVvdXQoc3VzcGVuZCwgNDAp
OwogICAgICAgICBzZXRUaW1lb3V0KHJlc3VtZSwgMTAwKTsKICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9LCAzNTApOwogICAgIH0KICAgICAK
SW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC10cmFuc2Zvcm0tYW5pbWF0aW9u
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXRyYW5z
Zm9ybS1hbmltYXRpb24uaHRtbAkocmV2aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9zdXNwZW5kLXRyYW5zZm9ybS1hbmltYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMzMsOCArMzMsOCBAQAogICAgIH0KICAgPC9zdHlsZT4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKICAgICAKICAgICBmdW5jdGlvbiBzdXNwZW5kQW5kV2FpdEZvckNvbXBsZXRpb24o
KQogICAgIHsKQEAgLTQyLDggKzQyLDggQEAKICAgICAgICAgICAgIGludGVybmFscy5zdXNwZW5k
QW5pbWF0aW9ucyhkb2N1bWVudCk7CiAKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKICAgICAgICAgfSwgMjUwKTsKICAgICB9CiAgICAgCkluZGV4OiBMYXlvdXRU
ZXN0cy9hbmltYXRpb25zL3RyYW5zaXRpb24tYW5kLWFuaW1hdGlvbi0zLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy90cmFuc2l0aW9uLWFuZC1hbmltYXRpb24tMy5o
dG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL3RyYW5zaXRp
b24tYW5kLWFuaW1hdGlvbi0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4LDggQEAK
ICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CiAKLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBb
CiAgICAgICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHks
IGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25z
L3VuYW5pbWF0ZWQtc3R5bGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRp
b25zL3VuYW5pbWF0ZWQtc3R5bGUuaHRtbAkocmV2aXNpb24gMTE5OTQ2KQorKysgTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy91bmFuaW1hdGVkLXN0eWxlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDggKzMxLDggQEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhl
bHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CiAK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgY29uc3QgZXhwZWN0
ZWRWYWx1ZXMgPSBbCiAgICAgICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1p
ZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCkluZGV4OiBMYXlvdXRUZXN0
cy9hbmltYXRpb25zLzNkL2NoYW5nZS10cmFuc2Zvcm0taW4tZW5kLWV2ZW50Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy8zZC9jaGFuZ2UtdHJhbnNmb3JtLWluLWVu
ZC1ldmVudC5odG1sCShyZXZpc2lvbiAxMTk5NDYpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25z
LzNkL2NoYW5nZS10cmFuc2Zvcm0taW4tZW5kLWV2ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDE0ICs0NiwxNCBAQAogICAgIGZ1bmN0aW9uIHRlc3RFbmRlZCgpCiAgICAgewogICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RlcicpLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9
ICd0cmFuc2xhdGVYKDE1MHB4KSc7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQogICAgIHsKLSAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0ZXInKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRBbmltYXRpb25FbmQnLCB0ZXN0
RW5kZWQsIGZhbHNlKTsKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXIn
KS5jbGFzc05hbWUgPSAnbW92ZWQnOwpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy8zZC9y
ZXBsYWNlLWZpbGxpbmctdHJhbnNmb3JtLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy8zZC9yZXBsYWNlLWZpbGxpbmctdHJhbnNmb3JtLmh0bWwJKHJldmlzaW9uIDEx
OTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvM2QvcmVwbGFjZS1maWxsaW5nLXRyYW5z
Zm9ybS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4IEBACiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgcmVzdWx0LmlubmVySFRNTCA9ICJGQUlMIC0gZmluYWwgc3Rh
dGUgd2FzICIgKyBjb21wdXRlZFZhbHVlICsgIiBleHBlY3RlZCAiICsgZXhwZWN0ZWRWYWx1ZTsK
IAotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBzd2FwQW5pbSgpCkBAIC03Niw5
ICs3Niw5IEBACiAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRB
bmltYXRpb25FbmQiLCBzd2FwQW5pbSwgZmFsc2UpOwogICAgICAgICB9CiAgICAgICAgIAotICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwotICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzZXR1cCwgZmFsc2UpOwpJbmRleDogTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy8zZC9zdGF0ZS1hdC1lbmQtZXZlbnQtdHJhbnNmb3JtLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy8zZC9zdGF0ZS1hdC1lbmQtZXZlbnQt
dHJhbnNmb3JtLmh0bWwJKHJldmlzaW9uIDExOTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlv
bnMvM2Qvc3RhdGUtYXQtZW5kLWV2ZW50LXRyYW5zZm9ybS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00MiwxNCArNDIsMTQgQEAKIAogICAgIGZ1bmN0aW9uIHRlc3RFbmRlZCgpCiAgICAgewotICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24g
c3RhcnRUZXN0KCkKICAgICB7Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGVyJykuYWRkRXZlbnRMaXN0
ZW5lcignd2Via2l0QW5pbWF0aW9uRW5kJywgdGVzdEVuZGVkLCBmYWxzZSk7CiAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuY2xhc3NOYW1lID0gJ21vdmVkJzsKSW5k
ZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvM2QvdHJhbnNmb3JtLW9yaWdpbi12cy1mdW5jdGlv
bnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zLzNkL3RyYW5zZm9y
bS1vcmlnaW4tdnMtZnVuY3Rpb25zLmh0bWwJKHJldmlzaW9uIDExOTk0NikKKysrIExheW91dFRl
c3RzL2FuaW1hdGlvbnMvM2QvdHJhbnNmb3JtLW9yaWdpbi12cy1mdW5jdGlvbnMuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNTUsOSArNTUsOSBAQAogICAgIDwvc3R5bGU+CiAgICAgCiAgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
ICAgfQogCiAgICAgICByZXN1bHRFbnRyaWVzID0gW107CkBAIC05OSw4ICs5OSw4IEBACiAgICAg
ICAgICAgaWYgKG51bVNuYXBzaG90cyA9PSAyKSB7CiAgICAgICAgICAgICAgIHJlc3VsdEVudHJp
ZXMuc29ydCgpOwogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0
JykuaW5uZXJIVE1MID0gcmVzdWx0RW50cmllcy5qb2luKCIiKTsKLSAgICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAg
ICAgICAgfQogICAgICAgfQogICAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jl
c291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMJKHJldmlz
aW9uIDExOTk0NikKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlv
bi10ZXN0LWhlbHBlcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1NSwxMiArMTU1LDEyIEBAIGZ1
bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZShleHBlY3RlZCwgaW4KICAgICAgICAgfQogICAgIH0K
IAotICAgIGlmIChhbmltYXRpb25OYW1lICYmIGhhc1BhdXNlQW5pbWF0aW9uQVBJICYmICFsYXlv
dXRUZXN0Q29udHJvbGxlci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChhbmlt
YXRpb25OYW1lLCB0aW1lLCBlbGVtZW50SWQpKSB7CisgICAgaWYgKGFuaW1hdGlvbk5hbWUgJiYg
aGFzUGF1c2VBbmltYXRpb25BUEkgJiYgIXRlc3RSdW5uZXIucGF1c2VBbmltYXRpb25BdFRpbWVP
bkVsZW1lbnRXaXRoSWQoYW5pbWF0aW9uTmFtZSwgdGltZSwgZWxlbWVudElkKSkgewogICAgICAg
ICByZXN1bHQgKz0gIkZBSUwgLSBhbmltYXRpb24gXCIiICsgYW5pbWF0aW9uTmFtZSArICJcIiBp
cyBub3QgcnVubmluZyIgKyAiPGJyPiI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgaWYgKGNvbXBhcmVFbGVtZW50cyAmJiAhZWxlbWVudDJTdGF0aWMgJiYgYW5pbWF0aW9uTmFt
ZSAmJiBoYXNQYXVzZUFuaW1hdGlvbkFQSSAmJiAhbGF5b3V0VGVzdENvbnRyb2xsZXIucGF1c2VB
bmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoYW5pbWF0aW9uTmFtZSwgdGltZSwgZWxlbWVu
dElkMikpIHsKKyAgICBpZiAoY29tcGFyZUVsZW1lbnRzICYmICFlbGVtZW50MlN0YXRpYyAmJiBh
bmltYXRpb25OYW1lICYmIGhhc1BhdXNlQW5pbWF0aW9uQVBJICYmICF0ZXN0UnVubmVyLnBhdXNl
QW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGFuaW1hdGlvbk5hbWUsIHRpbWUsIGVsZW1l
bnRJZDIpKSB7CiAgICAgICAgIHJlc3VsdCArPSAiRkFJTCAtIGFuaW1hdGlvbiBcIiIgKyBhbmlt
YXRpb25OYW1lICsgIlwiIGlzIG5vdCBydW5uaW5nIiArICI8YnI+IjsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTI3Miw4ICsyNzIsOCBAQCBmdW5jdGlvbiBlbmRUZXN0KCkKIHsKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OwogCi0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRW
YWx1ZUNhbGxiYWNrKGV4cGVjdGVkLCBpbmRleCkKQEAgLTMxOSwxNCArMzE5LDE0IEBAIHZhciBo
YXNQYXVzZUFuaW1hdGlvbkFQSTsKIAogZnVuY3Rpb24gcnVuQW5pbWF0aW9uVGVzdChleHBlY3Rl
ZCwgY2FsbGJhY2ssIGV2ZW50LCBkaXNhYmxlUGF1c2VBbmltYXRpb25BUEksIGRvUGl4ZWxUZXN0
KQogewotICAgIGhhc1BhdXNlQW5pbWF0aW9uQVBJID0gKCdsYXlvdXRUZXN0Q29udHJvbGxlcicg
aW4gd2luZG93KSAmJiAoJ3BhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkJyBpbiBs
YXlvdXRUZXN0Q29udHJvbGxlcik7CisgICAgaGFzUGF1c2VBbmltYXRpb25BUEkgPSAoJ3Rlc3RS
dW5uZXInIGluIHdpbmRvdykgJiYgKCdwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJ
ZCcgaW4gdGVzdFJ1bm5lcik7CiAgICAgaWYgKGRpc2FibGVQYXVzZUFuaW1hdGlvbkFQSSkKICAg
ICAgICAgaGFzUGF1c2VBbmltYXRpb25BUEkgPSBmYWxzZTsKIAotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAg
ICAgaWYgKCFkb1BpeGVsVGVzdCkKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICAKICAgICBpZiAoIWV4cGVjdGVkKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>