<?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>85544</bug_id>
          
          <creation_ts>2012-05-03 14:28:27 -0700</creation_ts>
          <short_desc>Port the flakiness dashboard unittests to qunit</short_desc>
          <delta_ts>2012-05-03 15:28:45 -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="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>dtu</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>615628</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-03 14:28:27 -0700</bug_when>
    <thetext>Port the flakiness dashboard unittests to qunit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615630</commentid>
    <comment_count>1</comment_count>
      <attachid>140092</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-03 14:28:52 -0700</bug_when>
    <thetext>Created attachment 140092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615633</commentid>
    <comment_count>2</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-03 14:29:47 -0700</bug_when>
    <thetext>A longer overdue change...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615696</commentid>
    <comment_count>3</comment_count>
      <attachid>140092</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-03 15:28:36 -0700</bug_when>
    <thetext>Comment on attachment 140092
Patch

Clearing flags on attachment: 140092

Committed r116024: &lt;http://trac.webkit.org/changeset/116024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615697</commentid>
    <comment_count>4</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-03 15:28:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140092</attachid>
            <date>2012-05-03 14:28:52 -0700</date>
            <delta_ts>2012-05-03 15:28:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85544-20120503142850.patch</filename>
            <type>text/plain</type>
            <size>42731</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1OTk2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTdlYmY3ODU0OWI1MDc0MzM4ZDRhM2M2ZGM2MjA4Y2I0
NGFjYmQxZi4uZjEzOTEyMDcxNzVhZDE5MjIyM2ZjYjA3NzIxNzY2YTYyODRjMjA1OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDEyLTA1LTAzICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUG9ydCB0aGUgZmxha2luZXNzIGRhc2hib2FyZCB1bml0dGVzdHMgdG8gcXVuaXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NTQ0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0UmVzdWx0U2Vy
dmVyL3N0YXRpYy1kYXNoYm9hcmRzL2Rhc2hib2FyZF9iYXNlLmpzOgorICAgICAgICAoYXBwZW5k
SlNPTlNjcmlwdEVsZW1lbnRzKToKKyAgICAgICAgKiBUZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1k
YXNoYm9hcmRzL2ZsYWtpbmVzc19kYXNoYm9hcmRfdW5pdHRlc3RzLmpzOgorICAgICAgICAocmVz
ZXRHbG9iYWxzKToKKyAgICAgICAgKHJ1bkV4cGVjdGF0aW9uc1Rlc3QpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9ydW4tdW5p
dHRlc3RzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTAzICBUaGlhZ28gTWFyY29zIFAuIFNhbnRv
cyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBTdHlsZSBj
aGVja2VyIGJyb2tlbiB3aGVuIGNvbW1pdHRpbmcgYSBQTkcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvZGFzaGJvYXJkX2Jhc2UuanMgYi9Ub29s
cy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL2Rhc2hib2FyZF9iYXNlLmpzCmlu
ZGV4IDg2ODYxZGYxMTY1ODZlYmU0OWUyNmM0Yzk4OWVhZGY2ZmQxYTdhZWMuLmZhNmM5YTNhZjRi
Mzc0MmM1YTJhYTA4NDc5Y2ZkMzljMGE1NDYzZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1
bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvZGFzaGJvYXJkX2Jhc2UuanMKKysrIGIvVG9vbHMv
VGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9kYXNoYm9hcmRfYmFzZS5qcwpAQCAt
NTg1LDEwICs1ODUsOCBAQCBmdW5jdGlvbiBhcHBlbmRKU09OU2NyaXB0RWxlbWVudHMoKQogCiAg
ICAgcGFyc2VQYXJhbWV0ZXJzKCk7CiAKLSAgICBpZiAoZ19jcm9zc0Rhc2hib2FyZFN0YXRlLnVz
ZVRlc3REYXRhKSB7Ci0gICAgICAgIGFwcGVuZFNjcmlwdCgnZmxha2luZXNzX2Rhc2hib2FyZF91
bml0dGVzdHMuanMnKTsKKyAgICBpZiAoZ19jcm9zc0Rhc2hib2FyZFN0YXRlLnVzZVRlc3REYXRh
KQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgZm9yICh2YXIgYnVpbGRlck5hbWUgaW4g
Z19idWlsZGVycykKICAgICAgICAgYXBwZW5kSlNPTlNjcmlwdEVsZW1lbnRGb3IoYnVpbGRlck5h
bWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJk
cy9mbGFraW5lc3NfZGFzaGJvYXJkX3VuaXR0ZXN0cy5qcyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2
ZXIvc3RhdGljLWRhc2hib2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZF91bml0dGVzdHMuanMKaW5k
ZXggOGRiNGRiY2UyNGNhZjY4NTI0OGFhZTY3NWM0ZWQ1NzNlYTZjNDcwOC4uNzg1YTljZTU3Zjc5
YjJiNDgzMDg4MTkwNTYxYzhjZGUxZGY1MzRiYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJlc3Vs
dFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9mbGFraW5lc3NfZGFzaGJvYXJkX3VuaXR0ZXN0cy5q
cworKysgYi9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL2ZsYWtpbmVz
c19kYXNoYm9hcmRfdW5pdHRlc3RzLmpzCkBAIC0yNiwyMSArMjYsNyBAQAogLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCiAvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCi0vLyBAZmlsZW92ZXJ2aWV3IFBvb3ItbWFuJ3MgdW5pdHRl
c3RzIGZvciBzb21lIG9mIHRoZSB0cmlja2llciBsb2dpYyBiaXRzIG9mCi0vLyB0aGUgZmxha2lu
ZXNzIGRhc2hib2FyZC4KLS8vCi0vLyBDdXJyZW50bHkgb25seSB0ZXN0cyBwcm9jZXNzRXhwZWN0
YXRpb25zIGFuZCBwb3B1bGF0ZUV4cGVjdGF0aW9uc0RhdGEuCi0vLyBBIHRlc3QganVzdCBjb25z
aXN0cyBvZiBjYWxsaW5nIHJ1bkV4cGVjdGF0aW9uc1Rlc3Qgd2l0aCB0aGUgYXBwcm9wcmlhdGUK
LS8vIGFyZ3VtZW50cy4KLQotLy8gRklYTUU6IG1vdmUgdGhpcyBvdmVyIHRvIHVzaW5nIHF1bml0
Ci0vLyBJbiB0aGUgbWVhbndoaWxlLCB5b3UgY2FuIHJ1biB0aGVzZSB0ZXN0cyBieSBsb2FkaW5n
Ci0vLyBmbGFraW5lc3NfZGFzaGJvYXJkLmh0bWwjdXNlVGVzdERhdGE9dHJ1ZSBpbiBhIGJyb3dz
ZXIuCi0KLS8vIENsZWFycyBvdXQgdGhlIGdsb2JhbCBvYmplY3RzIG1vZGlmaWVkIG9yIHVzZWQg
YnkgcHJvY2Vzc0V4cGVjdGF0aW9ucyBhbmQKLS8vIHBvcHVsYXRlRXhwZWN0YXRpb25zRGF0YS4g
QSBiaXQgZ3Jvc3Mgc2luY2UgaXQncyBkaWdnaW5nIGludG8gaW1wbGVtZW50YXRpb24KLS8vIGRl
dGFpbHMsIGJ1dCBpdCdzIGdvb2QgZW5vdWdoIGZvciBub3cuCi1mdW5jdGlvbiBzZXR1cEV4cGVj
dGF0aW9uc1Rlc3QoKQorZnVuY3Rpb24gcmVzZXRHbG9iYWxzKCkKIHsKICAgICBhbGxFeHBlY3Rh
dGlvbnMgPSBudWxsOwogICAgIGFsbFRlc3RzID0gbnVsbDsKQEAgLTU1LDE1ICs0MSw2IEBAIGZ1
bmN0aW9uIHNldHVwRXhwZWN0YXRpb25zVGVzdCgpCiAgICAgfQogfQogCi0vLyBQcm9jZXNzZXMg
dGhlIGV4cGVjdGF0aW9ucyBmb3IgYSB0ZXN0IGFuZCBhc3NlcnRzIHRoYXQgdGhlIGZpbmFsIGV4
cGVjdGF0aW9ucwotLy8gYW5kIG1vZGlmaWVycyB3ZSBhcHBseSB0byBhIHRlc3QgbWF0Y2ggd2hh
dCB3ZSBleHBlY3QuCi0vLwotLy8gQHBhcmFtIHtzdHJpbmd9IGJ1aWxkZXIgQnVpbGRlciB0aGUg
dGVzdCBpcyBydW4gb24uCi0vLyBAcGFyYW0ge3N0cmluZ30gdGVzdCBUaGUgdGVzdCBuYW1lLgot
Ly8gQHBhcmFtIHtzdHJpbmd9IGV4cGVjdGF0aW9ucyBTb3J0ZWQgc3RyaW5nIG9mIHdoYXQgdGhl
IGV4cGVjdGF0aW9ucyBmb3IgdGhpcwotLy8gICAgICAgIHRlc3Qgb3VnaHQgdG8gYmUgZm9yIHRo
aXMgYnVpbGRlci4KLS8vIEBwYXJhbSB7c3RyaW5nfSBtb2RpZmllcnMgU29ydGVkIHN0cmluZyBv
ZiB3aGF0IHRoZSBtb2RpZmllcnMgZm9yIHRoaXMKLS8vICAgICAgICB0ZXN0IG91Z2h0IHRvIGJl
IGZvciB0aGlzIGJ1aWxkZXIuCiBmdW5jdGlvbiBydW5FeHBlY3RhdGlvbnNUZXN0KGJ1aWxkZXIs
IHRlc3QsIGV4cGVjdGF0aW9ucywgbW9kaWZpZXJzKQogewogICAgIGdfYnVpbGRlcnNbYnVpbGRl
cl0gPSB0cnVlOwpAQCAtNzksMjQgKzU2LDEyIEBAIGZ1bmN0aW9uIHJ1bkV4cGVjdGF0aW9uc1Rl
c3QoYnVpbGRlciwgdGVzdCwgZXhwZWN0YXRpb25zLCBtb2RpZmllcnMpCiAgICAgcG9wdWxhdGVF
eHBlY3RhdGlvbnNEYXRhKHJlc3VsdHNGb3JUZXN0KTsKIAogICAgIHZhciBtZXNzYWdlID0gJ0J1
aWxkZXI6ICcgKyByZXN1bHRzRm9yVGVzdC5idWlsZGVyICsgJyB0ZXN0OiAnICsgcmVzdWx0c0Zv
clRlc3QudGVzdDsKLSAgICBhc3NlcnRFcXVhbHMocmVzdWx0c0ZvclRlc3QuZXhwZWN0YXRpb25z
LCBleHBlY3RhdGlvbnMsIG1lc3NhZ2UpOwotICAgIGFzc2VydEVxdWFscyhyZXN1bHRzRm9yVGVz
dC5tb2RpZmllcnMsIG1vZGlmaWVycywgbWVzc2FnZSk7Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEVx
dWFscyhhY3R1YWwsIGV4cGVjdGVkLCBtZXNzYWdlKQotewotICAgIGlmIChleHBlY3RlZCAhPT0g
YWN0dWFsKSB7Ci0gICAgICAgIGlmIChtZXNzYWdlKQotICAgICAgICAgICAgbWVzc2FnZSArPSAn
ICc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1lc3NhZ2UgPSAnJzsKLQotICAgICAgICB0
aHJvdyBFcnJvcihtZXNzYWdlICsgJ2dvdDogJyArIGFjdHVhbCArICcgZXhwZWN0ZWQ6ICcgKyBl
eHBlY3RlZCk7Ci0gICAgfQorICAgIGVxdWFsKHJlc3VsdHNGb3JUZXN0LmV4cGVjdGF0aW9ucywg
ZXhwZWN0YXRpb25zLCBtZXNzYWdlKTsKKyAgICBlcXVhbChyZXN1bHRzRm9yVGVzdC5tb2RpZmll
cnMsIG1vZGlmaWVycywgbWVzc2FnZSk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RGbGF0dGVuVHJpZSgp
Ci17Cit0ZXN0KCdGbGF0dGVuVHJpZScsIDEsIGZ1bmN0aW9uKCkgeworICAgIHJlc2V0R2xvYmFs
cygpOwogICAgIHZhciB0ZXN0cyA9IHsKICAgICAgICAgJ2Jhci5odG1sJzogeydyZXN1bHRzJzog
W1sxMDAsICdGJ11dLCAndGltZXMnOiBbWzEwMCwgMF1dfSwKICAgICAgICAgJ2Zvbyc6IHsKQEAg
LTEwOSwxMSArNzQsMTEgQEAgZnVuY3Rpb24gdGVzdEZsYXR0ZW5UcmllKCkKICAgICAgICAgJ2Jh
ci5odG1sJzogeydyZXN1bHRzJzogW1sxMDAsICdGJ11dLCAndGltZXMnOiBbWzEwMCwgMF1dfSwK
ICAgICAgICAgJ2Zvby9iYXIvYmF6Lmh0bWwnOiB7J3Jlc3VsdHMnOiBbWzEwMCwgJ0YnXV0sICd0
aW1lcyc6IFtbMTAwLCAwXV19LAogICAgIH07Ci0gICAgYXNzZXJ0RXF1YWxzKEpTT04uc3RyaW5n
aWZ5KGZsYXR0ZW5UcmllKHRlc3RzKSksIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkRmxhdHRlbmVk
VGVzdHMpKQotfQorICAgIGVxdWFsKEpTT04uc3RyaW5naWZ5KGZsYXR0ZW5UcmllKHRlc3RzKSks
IEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkRmxhdHRlbmVkVGVzdHMpKQorfSk7CiAKLWZ1bmN0aW9u
IHRlc3RSZWxlYXNlRmFpbCgpCi17Cit0ZXN0KCdSZWxlYXNlRmFpbCcsIDIsIGZ1bmN0aW9uKCkg
eworICAgIHJlc2V0R2xvYmFscygpOwogICAgIHZhciBidWlsZGVyID0gJ1dlYmtpdCBXaW4nOwog
ICAgIHZhciB0ZXN0ID0gJ2Zvby8xLmh0bWwnOwogICAgIHZhciBleHBlY3RhdGlvbnNBcnJheSA9
IFsKQEAgLTEyMSwxMCArODYsMTAgQEAgZnVuY3Rpb24gdGVzdFJlbGVhc2VGYWlsKCkKICAgICBd
OwogICAgIGdfZXhwZWN0YXRpb25zID0gJ1JFTEVBU0UgOiAnICsgdGVzdCArICcgPSBGQUlMJzsK
ICAgICBydW5FeHBlY3RhdGlvbnNUZXN0KGJ1aWxkZXIsIHRlc3QsICdGQUlMJywgJ1JFTEVBU0Un
KTsKLX0KK30pOwogCi1mdW5jdGlvbiB0ZXN0UmVsZWFzZUZhaWxEZWJ1Z0NyYXNoUmVsZWFzZUJ1
aWxkZXIoKQotewordGVzdCgnUmVsZWFzZUZhaWxEZWJ1Z0NyYXNoUmVsZWFzZUJ1aWxkZXInLCAy
LCBmdW5jdGlvbigpIHsKKyAgICByZXNldEdsb2JhbHMoKTsKICAgICB2YXIgYnVpbGRlciA9ICdX
ZWJraXQgV2luJzsKICAgICB2YXIgdGVzdCA9ICdmb28vMS5odG1sJzsKICAgICB2YXIgZXhwZWN0
YXRpb25zQXJyYXkgPSBbCkBAIC0xMzQsMTAgKzk5LDEwIEBAIGZ1bmN0aW9uIHRlc3RSZWxlYXNl
RmFpbERlYnVnQ3Jhc2hSZWxlYXNlQnVpbGRlcigpCiAgICAgZ19leHBlY3RhdGlvbnMgPSAnUkVM
RUFTRSA6ICcgKyB0ZXN0ICsgJyA9IEZBSUxcbicgKwogICAgICAgICAnREVCVUcgOiAnICsgdGVz
dCArICcgPSBDUkFTSCc7CiAgICAgcnVuRXhwZWN0YXRpb25zVGVzdChidWlsZGVyLCB0ZXN0LCAn
RkFJTCcsICdSRUxFQVNFJyk7Ci19Cit9KTsKIAotZnVuY3Rpb24gdGVzdFJlbGVhc2VGYWlsRGVi
dWdDcmFzaERlYnVnQnVpbGRlcigpCi17Cit0ZXN0KCdSZWxlYXNlRmFpbERlYnVnQ3Jhc2hEZWJ1
Z0J1aWxkZXInLCAyLCBmdW5jdGlvbigpIHsKKyAgICByZXNldEdsb2JhbHMoKTsKICAgICB2YXIg
YnVpbGRlciA9ICdXZWJraXQgV2luIChkYmcpJzsKICAgICB2YXIgdGVzdCA9ICdmb28vMS5odG1s
JzsKICAgICB2YXIgZXhwZWN0YXRpb25zQXJyYXkgPSBbCkBAIC0xNDcsMTAgKzExMiwxMCBAQCBm
dW5jdGlvbiB0ZXN0UmVsZWFzZUZhaWxEZWJ1Z0NyYXNoRGVidWdCdWlsZGVyKCkKICAgICBnX2V4
cGVjdGF0aW9ucyA9ICdSRUxFQVNFIDogJyArIHRlc3QgKyAnID0gRkFJTFxuJyArCiAgICAgICAg
ICdERUJVRyA6ICcgKyB0ZXN0ICsgJyA9IENSQVNIJzsKICAgICBydW5FeHBlY3RhdGlvbnNUZXN0
KGJ1aWxkZXIsIHRlc3QsICdDUkFTSCcsICdERUJVRycpOwotfQorfSk7CiAKLWZ1bmN0aW9uIHRl
c3RPdmVycmlkZUp1c3RCdWlsZFR5cGUoKQotewordGVzdCgnT3ZlcnJpZGVKdXN0QnVpbGRUeXBl
JywgMTIsIGZ1bmN0aW9uKCkgeworICAgIHJlc2V0R2xvYmFscygpOwogICAgIHZhciB0ZXN0ID0g
J2Jhci8xLmh0bWwnOwogICAgIGdfZXhwZWN0YXRpb25zID0gJ1dPTlRGSVggOiBiYXIgPSBGQUlM
IFBBU1MgVElNRU9VVFxuJyArCiAgICAgICAgICdXT05URklYIE1BQyA6ICcgKyB0ZXN0ICsgJyA9
IEZBSUxcbicgKwpAQCAtMTYyLDE2ICsxMjcsMTUgQEAgZnVuY3Rpb24gdGVzdE92ZXJyaWRlSnVz
dEJ1aWxkVHlwZSgpCiAgICAgcnVuRXhwZWN0YXRpb25zVGVzdCgnV2Via2l0IExpbnV4IChkYmcp
KDMpJywgdGVzdCwgJ0NSQVNIJywgJ0xJTlVYIERFQlVHJyk7CiAgICAgcnVuRXhwZWN0YXRpb25z
VGVzdCgnV2Via2l0IE1hYzEwLjUnLCB0ZXN0LCAnRkFJTCcsICdXT05URklYIE1BQycpOwogICAg
IHJ1bkV4cGVjdGF0aW9uc1Rlc3QoJ1dlYmtpdCBNYWMxMC41IChkYmcpKDMpJywgdGVzdCwgJ0ZB
SUwnLCAnV09OVEZJWCBNQUMnKTsKLX0KK30pOwogCi1mdW5jdGlvbiB0ZXN0UGxhdGZvcm1BbmRC
dWlsZFR5cGUoKQotewordGVzdCgnUGxhdGZvcm1BbmRCdWlsZFR5cGUnLCA4OCwgZnVuY3Rpb24o
KSB7CiAgICAgdmFyIHJ1blBsYXRmb3JtQW5kQnVpbGRUeXBlVGVzdCA9IGZ1bmN0aW9uKGJ1aWxk
ZXIsIGV4cGVjdGVkUGxhdGZvcm0sIGV4cGVjdGVkQnVpbGRUeXBlKSB7CiAgICAgICAgIGdfcGVy
QnVpbGRlclBsYXRmb3JtQW5kQnVpbGRUeXBlID0ge307CiAgICAgICAgIGJ1aWxkSW5mbyA9IHBs
YXRmb3JtQW5kQnVpbGRUeXBlKGJ1aWxkZXIpOwogICAgICAgICB2YXIgbWVzc2FnZSA9ICdCdWls
ZGVyOiAnICsgYnVpbGRlcjsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKGJ1aWxkSW5mby5wbGF0Zm9y
bSwgZXhwZWN0ZWRQbGF0Zm9ybSwgbWVzc2FnZSk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhidWls
ZEluZm8uYnVpbGRUeXBlLCBleHBlY3RlZEJ1aWxkVHlwZSwgbWVzc2FnZSk7CisgICAgICAgIGVx
dWFsKGJ1aWxkSW5mby5wbGF0Zm9ybSwgZXhwZWN0ZWRQbGF0Zm9ybSwgbWVzc2FnZSk7CisgICAg
ICAgIGVxdWFsKGJ1aWxkSW5mby5idWlsZFR5cGUsIGV4cGVjdGVkQnVpbGRUeXBlLCBtZXNzYWdl
KTsKICAgICB9CiAgICAgcnVuUGxhdGZvcm1BbmRCdWlsZFR5cGVUZXN0KCdXZWJraXQgV2luIChk
ZXBzKScsICdYUCcsICdSRUxFQVNFJyk7CiAgICAgcnVuUGxhdGZvcm1BbmRCdWlsZFR5cGVUZXN0
KCdXZWJraXQgV2luIChkZXBzKShkYmcpKDEpJywgJ1hQJywgJ0RFQlVHJyk7CkBAIC0yMjQsMzcg
KzE4OCwzMiBAQCBmdW5jdGlvbiB0ZXN0UGxhdGZvcm1BbmRCdWlsZFR5cGUoKQogICAgIHJ1blBs
YXRmb3JtQW5kQnVpbGRUeXBlVGVzdCgnU25vd0xlb3BhcmQgSW50ZWwgUmVsZWFzZSAoV2ViS2l0
MiBUZXN0cyknLCAnQVBQTEVfU05PV0xFT1BBUkQnLCAnUkVMRUFTRScpOwogICAgIHJ1blBsYXRm
b3JtQW5kQnVpbGRUeXBlVGVzdCgnU25vd0xlb3BhcmQgSW50ZWwgRGVidWcgKFdlYktpdDIgVGVz
dHMpJywgJ0FQUExFX1NOT1dMRU9QQVJEJywgJ0RFQlVHJyk7CiAgICAgcnVuUGxhdGZvcm1BbmRC
dWlsZFR5cGVUZXN0KCdXaW5kb3dzIDcgUmVsZWFzZSAoV2ViS2l0MiBUZXN0cyknLCAnQVBQTEVf
V0lONycsICdSRUxFQVNFJyk7ICAgIAotfQorfSk7CiAKLWZ1bmN0aW9uIHRlc3RSZWFsTW9kaWZp
ZXJzKCkKLXsKLSAgICBhc3NlcnRFcXVhbHMocmVhbE1vZGlmaWVycygnQlVHRk9PIExJTlVYIExF
T1BBUkQgV0lOIERFQlVHIFNMT1cnKSwgJ1NMT1cnKTsKLSAgICBhc3NlcnRFcXVhbHMocmVhbE1v
ZGlmaWVycygnQlVHRk9PIExVQ0lEIE1BQyBYUCBSRUxFQVNFIFNLSVAnKSwgJ1NLSVAnKTsKLSAg
ICBhc3NlcnRFcXVhbHMocmVhbE1vZGlmaWVycygnQlVHRk9PJyksICcnKTsKLX0KK3Rlc3QoJ1Jl
YWxNb2RpZmllcnMnLCAzLCBmdW5jdGlvbigpIHsKKyAgICBlcXVhbChyZWFsTW9kaWZpZXJzKCdC
VUdGT08gTElOVVggTEVPUEFSRCBXSU4gREVCVUcgU0xPVycpLCAnU0xPVycpOworICAgIGVxdWFs
KHJlYWxNb2RpZmllcnMoJ0JVR0ZPTyBMVUNJRCBNQUMgWFAgUkVMRUFTRSBTS0lQJyksICdTS0lQ
Jyk7CisgICAgZXF1YWwocmVhbE1vZGlmaWVycygnQlVHRk9PJyksICcnKTsKK30pOwogCi1mdW5j
dGlvbiB0ZXN0QWxsVGVzdHNXaXRoU2FtZVBsYXRmb3JtQW5kQnVpbGRUeXBlKCkKLXsKK3Rlc3Qo
J0FsbFRlc3RzV2l0aFNhbWVQbGF0Zm9ybUFuZEJ1aWxkVHlwZScsIDE0LCBmdW5jdGlvbigpIHsK
ICAgICAvLyBGSVhNRTogdGVzdCB0aGF0IGFsbFRlc3RzV2l0aFNhbWVQbGF0Zm9ybUFuZEJ1aWxk
VHlwZSBhY3R1YWxseSByZXR1cm5zIHRoZSByaWdodCBzZXQgb2YgdGVzdHMuCi0gICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBQTEFURk9STVMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKCFnX2Fs
bFRlc3RzQnlQbGF0Zm9ybUFuZEJ1aWxkVHlwZVtQTEFURk9STVNbaV1dKQotICAgICAgICAgICAg
dGhyb3cgRXJyb3IoUExBVEZPUk1TW2ldICsgJyBpcyBub3QgaW4gZ19hbGxUZXN0c0J5UGxhdGZv
cm1BbmRCdWlsZFR5cGUnKTsKLSAgICB9Ci19CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBQTEFU
Rk9STVMubGVuZ3RoOyBpKyspCisgICAgICAgIG9rKGdfYWxsVGVzdHNCeVBsYXRmb3JtQW5kQnVp
bGRUeXBlW1BMQVRGT1JNU1tpXV0pOworfSk7CiAKLWZ1bmN0aW9uIHRlc3RGaWx0ZXJCdWdzKCkK
LXsKK3Rlc3QoJ0ZpbHRlckJ1Z3MnLDQsIGZ1bmN0aW9uKCkgewogICAgIHZhciBmaWx0ZXJlZCA9
IGZpbHRlckJ1Z3MoJ1NLSVAgQlVHMTIzIEJVR0NSMTIzIEJVR1dLMTIzIFNMT1cgQlVHX1RPTlkg
REVCVUcnKQotICAgIGFzc2VydEVxdWFscyhmaWx0ZXJlZC5tb2RpZmllcnMsICdTS0lQIFNMT1cg
REVCVUcnKTsKLSAgICBhc3NlcnRFcXVhbHMoZmlsdGVyZWQuYnVncywgJ0JVRzEyMyBCVUdDUjEy
MyBCVUdXSzEyMyBCVUdfVE9OWScpOworICAgIGVxdWFsKGZpbHRlcmVkLm1vZGlmaWVycywgJ1NL
SVAgU0xPVyBERUJVRycpOworICAgIGVxdWFsKGZpbHRlcmVkLmJ1Z3MsICdCVUcxMjMgQlVHQ1Ix
MjMgQlVHV0sxMjMgQlVHX1RPTlknKTsKIAogICAgIGZpbHRlcmVkID0gZmlsdGVyQnVncygnU0tJ
UCBTTE9XIERFQlVHJykKLSAgICBhc3NlcnRFcXVhbHMoZmlsdGVyZWQubW9kaWZpZXJzLCAnU0tJ
UCBTTE9XIERFQlVHJyk7Ci0gICAgYXNzZXJ0RXF1YWxzKGZpbHRlcmVkLmJ1Z3MsICcnKTsKLX0K
KyAgICBlcXVhbChmaWx0ZXJlZC5tb2RpZmllcnMsICdTS0lQIFNMT1cgREVCVUcnKTsKKyAgICBl
cXVhbChmaWx0ZXJlZC5idWdzLCAnJyk7Cit9KTsKIAotZnVuY3Rpb24gdGVzdEdldEV4cGVjdGF0
aW9ucygpCi17Cit0ZXN0KCdHZXRFeHBlY3RhdGlvbnMnLCAxMiwgZnVuY3Rpb24oKSB7CisgICAg
cmVzZXRHbG9iYWxzKCk7CiAgICAgZ19idWlsZGVyc1snV2ViS2l0IFdpbiddID0gdHJ1ZTsKICAg
ICBnX3Jlc3VsdHNCeUJ1aWxkZXIgPSB7CiAgICAgICAgICdXZWJLaXQgV2luJzogewpAQCAtMjc5
LDU1ICsyMzgsNTMgQEAgZnVuY3Rpb24gdGVzdEdldEV4cGVjdGF0aW9ucygpCiAgICAgcHJvY2Vz
c0V4cGVjdGF0aW9ucygpOwogICAgIAogICAgIHZhciBleHBlY3RhdGlvbnMgPSBnZXRFeHBlY3Rh
dGlvbnMoJ2Zvby90ZXN0MS5odG1sJywgJ1hQJywgJ0RFQlVHJyk7Ci0gICAgYXNzZXJ0RXF1YWxz
KEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7Im1vZGlmaWVycyI6IkRFQlVHIiwiZXhw
ZWN0YXRpb25zIjoiQ1JBU0gifScpOworICAgIGVxdWFsKEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0
aW9ucyksICd7Im1vZGlmaWVycyI6IkRFQlVHIiwiZXhwZWN0YXRpb25zIjoiQ1JBU0gifScpOwog
CiAgICAgdmFyIGV4cGVjdGF0aW9ucyA9IGdldEV4cGVjdGF0aW9ucygnZm9vL3Rlc3QxLmh0bWwn
LCAnTFVDSUQnLCAnUkVMRUFTRScpOwotICAgIGFzc2VydEVxdWFscyhKU09OLnN0cmluZ2lmeShl
eHBlY3RhdGlvbnMpLCAneyJtb2RpZmllcnMiOiJSRUxFQVNFIEJVR0ZPTyIsImV4cGVjdGF0aW9u
cyI6IkZBSUwifScpOworICAgIGVxdWFsKEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7
Im1vZGlmaWVycyI6IlJFTEVBU0UgQlVHRk9PIiwiZXhwZWN0YXRpb25zIjoiRkFJTCJ9Jyk7CiAK
ICAgICB2YXIgZXhwZWN0YXRpb25zID0gZ2V0RXhwZWN0YXRpb25zKCdmb28vdGVzdDIuaHRtbCcs
ICdMVUNJRCcsICdSRUxFQVNFJyk7Ci0gICAgYXNzZXJ0RXF1YWxzKEpTT04uc3RyaW5naWZ5KGV4
cGVjdGF0aW9ucyksICd7Im1vZGlmaWVycyI6IkJVRzQ1NiIsImV4cGVjdGF0aW9ucyI6IkZBSUwi
fScpOworICAgIGVxdWFsKEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7Im1vZGlmaWVy
cyI6IkJVRzQ1NiIsImV4cGVjdGF0aW9ucyI6IkZBSUwifScpOwogCiAgICAgdmFyIGV4cGVjdGF0
aW9ucyA9IGdldEV4cGVjdGF0aW9ucygnZm9vL3Rlc3QyLmh0bWwnLCAnTEVPUEFSRCcsICdERUJV
RycpOwotICAgIGFzc2VydEVxdWFscyhKU09OLnN0cmluZ2lmeShleHBlY3RhdGlvbnMpLCAneyJt
b2RpZmllcnMiOiJCVUc0NTYiLCJleHBlY3RhdGlvbnMiOiJGQUlMIn0nKTsKKyAgICBlcXVhbChK
U09OLnN0cmluZ2lmeShleHBlY3RhdGlvbnMpLCAneyJtb2RpZmllcnMiOiJCVUc0NTYiLCJleHBl
Y3RhdGlvbnMiOiJGQUlMIn0nKTsKIAogICAgIHZhciBleHBlY3RhdGlvbnMgPSBnZXRFeHBlY3Rh
dGlvbnMoJ2Zvby90ZXN0Mi5odG1sJywgJ0xVQ0lEJywgJ0RFQlVHJyk7Ci0gICAgYXNzZXJ0RXF1
YWxzKEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7Im1vZGlmaWVycyI6IkxJTlVYIERF
QlVHIiwiZXhwZWN0YXRpb25zIjoiQ1JBU0gifScpOworICAgIGVxdWFsKEpTT04uc3RyaW5naWZ5
KGV4cGVjdGF0aW9ucyksICd7Im1vZGlmaWVycyI6IkxJTlVYIERFQlVHIiwiZXhwZWN0YXRpb25z
IjoiQ1JBU0gifScpOwogCiAgICAgdmFyIGV4cGVjdGF0aW9ucyA9IGdldEV4cGVjdGF0aW9ucygn
Zm9vL3Rlc3QzLmh0bWwnLCAnTFVDSUQnLCAnREVCVUcnKTsKLSAgICBhc3NlcnRFcXVhbHMoSlNP
Ti5zdHJpbmdpZnkoZXhwZWN0YXRpb25zKSwgJ3sibW9kaWZpZXJzIjoiQlVHMTIzIiwiZXhwZWN0
YXRpb25zIjoiRkFJTCBQQVNTIENSQVNIIn0nKTsKKyAgICBlcXVhbChKU09OLnN0cmluZ2lmeShl
eHBlY3RhdGlvbnMpLCAneyJtb2RpZmllcnMiOiJCVUcxMjMiLCJleHBlY3RhdGlvbnMiOiJGQUlM
IFBBU1MgQ1JBU0gifScpOwogCiAgICAgdmFyIGV4cGVjdGF0aW9ucyA9IGdldEV4cGVjdGF0aW9u
cygndGVzdDEuaHRtbCcsICdYUCcsICdERUJVRycpOwotICAgIGFzc2VydEVxdWFscyhKU09OLnN0
cmluZ2lmeShleHBlY3RhdGlvbnMpLCAneyJtb2RpZmllcnMiOiJERUJVRyIsImV4cGVjdGF0aW9u
cyI6IkNSQVNIIn0nKTsKKyAgICBlcXVhbChKU09OLnN0cmluZ2lmeShleHBlY3RhdGlvbnMpLCAn
eyJtb2RpZmllcnMiOiJERUJVRyIsImV4cGVjdGF0aW9ucyI6IkNSQVNIIn0nKTsKIAogICAgIHZh
ciBleHBlY3RhdGlvbnMgPSBnZXRFeHBlY3RhdGlvbnMoJ3Rlc3QxLmh0bWwnLCAnTFVDSUQnLCAn
UkVMRUFTRScpOwotICAgIGFzc2VydEVxdWFscyhKU09OLnN0cmluZ2lmeShleHBlY3RhdGlvbnMp
LCAneyJtb2RpZmllcnMiOiJSRUxFQVNFIiwiZXhwZWN0YXRpb25zIjoiRkFJTCJ9Jyk7CisgICAg
ZXF1YWwoSlNPTi5zdHJpbmdpZnkoZXhwZWN0YXRpb25zKSwgJ3sibW9kaWZpZXJzIjoiUkVMRUFT
RSIsImV4cGVjdGF0aW9ucyI6IkZBSUwifScpOwogCiAgICAgdmFyIGV4cGVjdGF0aW9ucyA9IGdl
dEV4cGVjdGF0aW9ucygnaHR0cC90ZXN0cy9hcHBjYWNoZS9pbnRlcnJ1cHRlZC11cGRhdGUuaHRt
bCcsICdXSU43JywgJ1JFTEVBU0UnKTsKLSAgICBhc3NlcnRFcXVhbHMoSlNPTi5zdHJpbmdpZnko
ZXhwZWN0YXRpb25zKSwgJ3sibW9kaWZpZXJzIjoiV0lONyIsImV4cGVjdGF0aW9ucyI6IlRJTUVP
VVQifScpOworICAgIGVxdWFsKEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7Im1vZGlm
aWVycyI6IldJTjciLCJleHBlY3RhdGlvbnMiOiJUSU1FT1VUIn0nKTsKIAogICAgIHZhciBleHBl
Y3RhdGlvbnMgPSBnZXRFeHBlY3RhdGlvbnMoJ2h0dHAvdGVzdHMvYXBwY2FjaGUvaW50ZXJydXB0
ZWQtdXBkYXRlLmh0bWwnLCAnTEVPUEFSRCcsICdSRUxFQVNFJyk7Ci0gICAgYXNzZXJ0RXF1YWxz
KEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7Im1vZGlmaWVycyI6Ik1BQyBMSU5VWCBY
UCBWSVNUQSIsImV4cGVjdGF0aW9ucyI6IkZBSUwifScpOworICAgIGVxdWFsKEpTT04uc3RyaW5n
aWZ5KGV4cGVjdGF0aW9ucyksICd7Im1vZGlmaWVycyI6Ik1BQyBMSU5VWCBYUCBWSVNUQSIsImV4
cGVjdGF0aW9ucyI6IkZBSUwifScpOwogCiAgICAgdmFyIGV4cGVjdGF0aW9ucyA9IGdldEV4cGVj
dGF0aW9ucygnaHR0cC90ZXN0cy9hcHBjYWNoZS9pbnRlcnJ1cHRlZC11cGRhdGUuaHRtbCcsICdM
VUNJRCcsICdSRUxFQVNFJyk7Ci0gICAgYXNzZXJ0RXF1YWxzKEpTT04uc3RyaW5naWZ5KGV4cGVj
dGF0aW9ucyksICd7Im1vZGlmaWVycyI6Ik1BQyBMSU5VWCBYUCBWSVNUQSIsImV4cGVjdGF0aW9u
cyI6IkZBSUwifScpOworICAgIGVxdWFsKEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7
Im1vZGlmaWVycyI6Ik1BQyBMSU5VWCBYUCBWSVNUQSIsImV4cGVjdGF0aW9ucyI6IkZBSUwifScp
OwogCiAgICAgdmFyIGV4cGVjdGF0aW9ucyA9IGdldEV4cGVjdGF0aW9ucygnaHR0cC90ZXN0cy9h
cHBjYWNoZS9pbnRlcnJ1cHRlZC11cGRhdGUuaHRtbCcsICdWSVNUQScsICdSRUxFQVNFJyk7Ci0g
ICAgYXNzZXJ0RXF1YWxzKEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7Im1vZGlmaWVy
cyI6Ik1BQyBMSU5VWCBYUCBWSVNUQSIsImV4cGVjdGF0aW9ucyI6IkZBSUwifScpOwotfQorICAg
IGVxdWFsKEpTT04uc3RyaW5naWZ5KGV4cGVjdGF0aW9ucyksICd7Im1vZGlmaWVycyI6Ik1BQyBM
SU5VWCBYUCBWSVNUQSIsImV4cGVjdGF0aW9ucyI6IkZBSUwifScpOworfSk7CiAKLWZ1bmN0aW9u
IHRlc3RTdWJzdHJpbmdMaXN0KCkKLXsKK3Rlc3QoJ1N1YnN0cmluZ0xpc3QnLCAyLCBmdW5jdGlv
bigpIHsKICAgICBnX2Nyb3NzRGFzaGJvYXJkU3RhdGUudGVzdFR5cGUgPSAnZ3Rlc3QnOwogICAg
IGdfY3VycmVudFN0YXRlLnRlc3RzID0gJ3Rlc3QuRkxBS1lfZm9vIHRlc3QuRkFJTFNfZm9vMSB0
ZXN0LkRJU0FCTEVEX2ZvbzIgdGVzdC5NQVlCRV9mb28zIHRlc3QuZm9vNCc7Ci0gICAgYXNzZXJ0
RXF1YWxzKHN1YnN0cmluZ0xpc3QoKS50b1N0cmluZygpLCAndGVzdC5mb28sdGVzdC5mb28xLHRl
c3QuZm9vMix0ZXN0LmZvbzMsdGVzdC5mb280Jyk7CisgICAgZXF1YWwoc3Vic3RyaW5nTGlzdCgp
LnRvU3RyaW5nKCksICd0ZXN0LmZvbyx0ZXN0LmZvbzEsdGVzdC5mb28yLHRlc3QuZm9vMyx0ZXN0
LmZvbzQnKTsKIAogICAgIGdfY3Jvc3NEYXNoYm9hcmRTdGF0ZS50ZXN0VHlwZSA9ICdsYXlvdXQt
dGVzdHMnOwogICAgIGdfY3VycmVudFN0YXRlLnRlc3RzID0gJ2Zvby9iYXIuRkxBS1lfZm9vLmh0
bWwnOwotICAgIGFzc2VydEVxdWFscyhzdWJzdHJpbmdMaXN0KCkudG9TdHJpbmcoKSwgJ2Zvby9i
YXIuRkxBS1lfZm9vLmh0bWwnKTsKLX0KKyAgICBlcXVhbChzdWJzdHJpbmdMaXN0KCkudG9TdHJp
bmcoKSwgJ2Zvby9iYXIuRkxBS1lfZm9vLmh0bWwnKTsKK30pOwogCi1mdW5jdGlvbiB0ZXN0SHRt
bEZvclRlc3RzV2l0aEV4cGVjdGF0aW9uc0J1dE5vRmFpbHVyZXMoKQotewordGVzdCgnSHRtbEZv
clRlc3RzV2l0aEV4cGVjdGF0aW9uc0J1dE5vRmFpbHVyZXMnLCA0LCBmdW5jdGlvbigpIHsKICAg
ICB2YXIgYnVpbGRlciA9ICdXZWJLaXQgV2luJzsKICAgICBnX3BlckJ1aWxkZXJXaXRoRXhwZWN0
YXRpb25zQnV0Tm9GYWlsdXJlc1tidWlsZGVyXSA9IFsncGFzc2luZy10ZXN0MS5odG1sJywgJ3Bh
c3NpbmctdGVzdDIuaHRtbCddOwogICAgIGdfcGVyQnVpbGRlclNraXBwZWRQYXRoc1tidWlsZGVy
XSA9IFsnc2tpcHBlZC10ZXN0MS5odG1sJ107CkBAIC0zNDEsNTMgKzI5OCw1MSBAQCBmdW5jdGlv
biB0ZXN0SHRtbEZvclRlc3RzV2l0aEV4cGVjdGF0aW9uc0J1dE5vRmFpbHVyZXMoKQogICAgIAog
ICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICBj
b250YWluZXIuaW5uZXJIVE1MID0gaHRtbEZvclRlc3RzV2l0aEV4cGVjdGF0aW9uc0J1dE5vRmFp
bHVyZXMoYnVpbGRlcik7Ci0gICAgYXNzZXJ0RXF1YWxzKGNvbnRhaW5lci5xdWVyeVNlbGVjdG9y
QWxsKCcjcGFzc2luZy10ZXN0cyA+IGRpdicpLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0RXF1YWxz
KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcjc2tpcHBlZC10ZXN0cyA+IGRpdicpLmxlbmd0
aCwgMSk7CisgICAgZXF1YWwoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJyNwYXNzaW5nLXRl
c3RzID4gZGl2JykubGVuZ3RoLCAyKTsKKyAgICBlcXVhbChjb250YWluZXIucXVlcnlTZWxlY3Rv
ckFsbCgnI3NraXBwZWQtdGVzdHMgPiBkaXYnKS5sZW5ndGgsIDEpOwogICAgIAogICAgIGdfY3Vy
cmVudFN0YXRlLnNob3dVbmV4cGVjdGVkUGFzc2VzID0gZmFsc2U7CiAgICAgZ19jdXJyZW50U3Rh
dGUuc2hvd1NraXBwZWQgPSBmYWxzZTsKICAgICAKICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWxG
b3JUZXN0c1dpdGhFeHBlY3RhdGlvbnNCdXROb0ZhaWx1cmVzKGJ1aWxkZXIpOwotICAgIGFzc2Vy
dEVxdWFscyhjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnI3Bhc3NpbmctdGVzdHMgPiBkaXYn
KS5sZW5ndGgsIDApOwotICAgIGFzc2VydEVxdWFscyhjb250YWluZXIucXVlcnlTZWxlY3RvckFs
bCgnI3NraXBwZWQtdGVzdHMgPiBkaXYnKS5sZW5ndGgsIDApOwotfQorICAgIGVxdWFsKGNvbnRh
aW5lci5xdWVyeVNlbGVjdG9yQWxsKCcjcGFzc2luZy10ZXN0cyA+IGRpdicpLmxlbmd0aCwgMCk7
CisgICAgZXF1YWwoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJyNza2lwcGVkLXRlc3RzID4g
ZGl2JykubGVuZ3RoLCAwKTsKK30pOwogCi1mdW5jdGlvbiB0ZXN0SGVhZGVyRm9yVGVzdFRhYmxl
SHRtbCgpCi17Cit0ZXN0KCdIZWFkZXJGb3JUZXN0VGFibGVIdG1sJywgMSwgZnVuY3Rpb24oKSB7
CiAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAg
IGNvbnRhaW5lci5pbm5lckhUTUwgPSBoZWFkZXJGb3JUZXN0VGFibGVIdG1sKCk7Ci0gICAgYXNz
ZXJ0RXF1YWxzKGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpLmxlbmd0aCwgNSk7
Ci19CisgICAgZXF1YWwoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0JykubGVuZ3Ro
LCA1KTsKK30pOwogCi1mdW5jdGlvbiB0ZXN0SHRtbEZvclRlc3RUeXBlU3dpdGNoZXJHcm91cCgp
Ci17Cit0ZXN0KCdIdG1sRm9yVGVzdFR5cGVTd2l0Y2hlckdyb3VwJywgNiwgZnVuY3Rpb24oKSB7
CiAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAg
IGdfY3Jvc3NEYXNoYm9hcmRTdGF0ZS50ZXN0VHlwZSA9ICd1aV90ZXN0cyc7CiAgICAgY29udGFp
bmVyLmlubmVySFRNTCA9IGh0bWxGb3JUZXN0VHlwZVN3aXRjaGVyKCk7CiAgICAgdmFyIHNlbGVj
dHMgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnc2VsZWN0Jyk7Ci0gICAgYXNzZXJ0RXF1
YWxzKHNlbGVjdHMubGVuZ3RoLCAzKTsKKyAgICBlcXVhbChzZWxlY3RzLmxlbmd0aCwgMyk7CiAg
ICAgdmFyIGdyb3VwID0gc2VsZWN0c1syXTsKLSAgICBhc3NlcnRFcXVhbHMoZ3JvdXAucGFyZW50
Tm9kZS50ZXh0Q29udGVudC5pbmRleE9mKCdHcm91cDonKSwgMCk7Ci0gICAgYXNzZXJ0RXF1YWxz
KGdyb3VwLmNoaWxkcmVuLmxlbmd0aCwgMyk7CisgICAgZXF1YWwoZ3JvdXAucGFyZW50Tm9kZS50
ZXh0Q29udGVudC5pbmRleE9mKCdHcm91cDonKSwgMCk7CisgICAgZXF1YWwoZ3JvdXAuY2hpbGRy
ZW4ubGVuZ3RoLCAzKTsKIAogICAgIGdfY3Jvc3NEYXNoYm9hcmRTdGF0ZS50ZXN0VHlwZSA9ICds
YXlvdXQtdGVzdHMnOwogICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBodG1sRm9yVGVzdFR5cGVT
d2l0Y2hlcigpOwogICAgIHZhciBzZWxlY3RzID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwo
J3NlbGVjdCcpOwotICAgIGFzc2VydEVxdWFscyhzZWxlY3RzLmxlbmd0aCwgMyk7CisgICAgZXF1
YWwoc2VsZWN0cy5sZW5ndGgsIDMpOwogICAgIHZhciBncm91cCA9IHNlbGVjdHNbMl07Ci0gICAg
YXNzZXJ0RXF1YWxzKGdyb3VwLnBhcmVudE5vZGUudGV4dENvbnRlbnQuaW5kZXhPZignR3JvdXA6
JyksIDApOwotICAgIGFzc2VydEVxdWFscyhncm91cC5jaGlsZHJlbi5sZW5ndGgsIDMpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0SHRtbEZvckluZGl2aWR1YWxUZXN0T25BbGxCdWlsZGVycygpCi17Ci0g
ICAgYXNzZXJ0RXF1YWxzKGh0bWxGb3JJbmRpdmlkdWFsVGVzdE9uQWxsQnVpbGRlcnMoJ2Zvby9u
b25leGlzdGFudC5odG1sJyksICc8ZGl2IGNsYXNzPSJub3QtZm91bmQiPlRlc3Qgbm90IGZvdW5k
LiBFaXRoZXIgaXQgZG9lcyBub3QgZXhpc3QsIGlzIHNraXBwZWQgb3IgcGFzc2VzIG9uIGFsbCBw
bGF0Zm9ybXMuPC9kaXY+Jyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RIdG1sRm9ySW5kaXZpZHVhbFRl
c3RPbkFsbEJ1aWxkZXJzV2l0aENocm9tZU5vbmV4aXN0YW50KCkKLXsKLSAgICBhc3NlcnRFcXVh
bHMoaHRtbEZvckluZGl2aWR1YWxUZXN0T25BbGxCdWlsZGVyc1dpdGhDaHJvbWUoJ2Zvby9ub25l
eGlzdGFudC5odG1sJyksCisgICAgZXF1YWwoZ3JvdXAucGFyZW50Tm9kZS50ZXh0Q29udGVudC5p
bmRleE9mKCdHcm91cDonKSwgMCk7CisgICAgZXF1YWwoZ3JvdXAuY2hpbGRyZW4ubGVuZ3RoLCAz
KTsKK30pOworCit0ZXN0KCdIdG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxkZXJzJywgMSwg
ZnVuY3Rpb24oKSB7CisgICAgcmVzZXRHbG9iYWxzKCk7CisgICAgZXF1YWwoaHRtbEZvckluZGl2
aWR1YWxUZXN0T25BbGxCdWlsZGVycygnZm9vL25vbmV4aXN0YW50Lmh0bWwnKSwgJzxkaXYgY2xh
c3M9Im5vdC1mb3VuZCI+VGVzdCBub3QgZm91bmQuIEVpdGhlciBpdCBkb2VzIG5vdCBleGlzdCwg
aXMgc2tpcHBlZCBvciBwYXNzZXMgb24gYWxsIHBsYXRmb3Jtcy48L2Rpdj4nKTsKK30pOworCit0
ZXN0KCdIdG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxkZXJzV2l0aENocm9tZU5vbmV4aXN0
YW50JywgMSwgZnVuY3Rpb24oKSB7CisgICAgcmVzZXRHbG9iYWxzKCk7CisgICAgZXF1YWwoaHRt
bEZvckluZGl2aWR1YWxUZXN0T25BbGxCdWlsZGVyc1dpdGhDaHJvbWUoJ2Zvby9ub25leGlzdGFu
dC5odG1sJyksCiAgICAgICAgICc8aDI+PGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy9i
cm93c2VyL3RydW5rL0xheW91dFRlc3RzL2Zvby9ub25leGlzdGFudC5odG1sIiB0YXJnZXQ9Il9i
bGFuayI+Zm9vL25vbmV4aXN0YW50Lmh0bWw8L2E+PC9oMj4nICsKICAgICAgICAgJzxkaXYgY2xh
c3M9Im5vdC1mb3VuZCI+VGVzdCBub3QgZm91bmQuIEVpdGhlciBpdCBkb2VzIG5vdCBleGlzdCwg
aXMgc2tpcHBlZCBvciBwYXNzZXMgb24gYWxsIHBsYXRmb3Jtcy48L2Rpdj4nICsKICAgICAgICAg
JzxkaXYgY2xhc3M9ZXhwZWN0YXRpb25zIHRlc3Q9Zm9vL25vbmV4aXN0YW50Lmh0bWw+JyArCkBA
IC0zOTcsMTYgKzM1MiwxNSBAQCBmdW5jdGlvbiB0ZXN0SHRtbEZvckluZGl2aWR1YWxUZXN0T25B
bGxCdWlsZGVyc1dpdGhDaHJvbWVOb25leGlzdGFudCgpCiAgICAgICAgICAgICAgICAgJzxiPk9u
bHkgc2hvd3MgYWN0dWFsIHJlc3VsdHMvZGlmZnMgZnJvbSB0aGUgbW9zdCByZWNlbnQgKmZhaWx1
cmUqIG9uIGVhY2ggYm90LjwvYj4nICsKICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAg
JzwvZGl2PicpOwotfQorfSk7CiAKLWZ1bmN0aW9uIHRlc3RIdG1sRm9ySW5kaXZpZHVhbFRlc3RP
bkFsbEJ1aWxkZXJzV2l0aENocm9tZSgpCi17Cit0ZXN0KCdIdG1sRm9ySW5kaXZpZHVhbFRlc3RP
bkFsbEJ1aWxkZXJzV2l0aENocm9tZScsIDEsIGZ1bmN0aW9uKCkgeworICAgIHJlc2V0R2xvYmFs
cygpOwogICAgIHZhciB0ZXN0ID0gJ2R1bW15dGVzdC5odG1sJzsKICAgICB2YXIgYnVpbGRlck5h
bWUgPSAnZHVtbXlCdWlsZGVyJzsKICAgICBnX3Rlc3RUb1Jlc3VsdHNNYXBbdGVzdF0gPSBbY3Jl
YXRlUmVzdWx0c09iamVjdEZvclRlc3QodGVzdCwgYnVpbGRlck5hbWUpXTsKLSAgICBjdXJyZW50
QnVpbGRlckdyb3VwKCkuYnVpbGRlcnMgPSB7J1dlYmtpdCBMaW51eCc6ICcnLCAnV2Via2l0IExp
bnV4IChkYmcpJzogJycsICdXZWJraXQgTWFjMTAuNSc6ICcnLCAnV2Via2l0IFdpbic6ICcnfTsK
IAotICAgIGFzc2VydEVxdWFscyhodG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxkZXJzV2l0
aENocm9tZSh0ZXN0KSwKKyAgICBlcXVhbChodG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxk
ZXJzV2l0aENocm9tZSh0ZXN0KSwKICAgICAgICAgJzxoMj48YSBocmVmPSJodHRwOi8vdHJhYy53
ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvTGF5b3V0VGVzdHMvZHVtbXl0ZXN0Lmh0bWwiIHRhcmdl
dD0iX2JsYW5rIj5kdW1teXRlc3QuaHRtbDwvYT48L2gyPicgKwogICAgICAgICAnPHRhYmxlIGNs
YXNzPXRlc3QtdGFibGU+PHRoZWFkPjx0cj4nICsKICAgICAgICAgICAgICAgICAnPHRoIHNvcnRW
YWx1ZT10ZXN0PjxkaXYgY2xhc3M9dGFibGUtaGVhZGVyLWNvbnRlbnQ+PHNwYW4+PC9zcGFuPjxz
cGFuIGNsYXNzPWhlYWRlci10ZXh0PnRlc3Q8L3NwYW4+PC9kaXY+PC90aD4nICsKQEAgLTQzMSwx
NyArMzg1LDE2IEBAIGZ1bmN0aW9uIHRlc3RIdG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxk
ZXJzV2l0aENocm9tZSgpCiAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9bGluayBvbmNsaWNrPSJz
ZXRRdWVyeVBhcmFtZXRlcihcJ3Nob3dMYXJnZUV4cGVjdGF0aW9uc1wnLCB0cnVlKSI+U2hvdyBs
YXJnZSB0aHVtYm5haWxzPC9zcGFuPiB8ICcgKwogICAgICAgICAgICAgJzxiPk9ubHkgc2hvd3Mg
YWN0dWFsIHJlc3VsdHMvZGlmZnMgZnJvbSB0aGUgbW9zdCByZWNlbnQgKmZhaWx1cmUqIG9uIGVh
Y2ggYm90LjwvYj48L2Rpdj4nICsKICAgICAgICAgJzwvZGl2PicpOwotfQorfSk7CiAKLWZ1bmN0
aW9uIHRlc3RIdG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxkZXJzV2l0aENocm9tZVdlYmtp
dE1hc3RlcigpCi17Cit0ZXN0KCdIdG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxkZXJzV2l0
aENocm9tZVdlYmtpdE1hc3RlcicsIDEsIGZ1bmN0aW9uKCkgeworICAgIHJlc2V0R2xvYmFscygp
OwogICAgIHZhciB0ZXN0ID0gJ2R1bW15dGVzdC5odG1sJzsKICAgICB2YXIgYnVpbGRlck5hbWUg
PSAnZHVtbXlCdWlsZGVyJzsKICAgICBCVUlMREVSX1RPX01BU1RFUltidWlsZGVyTmFtZV0gPSBX
RUJLSVRfQlVJTERFUl9NQVNURVI7CiAgICAgZ190ZXN0VG9SZXN1bHRzTWFwW3Rlc3RdID0gW2Ny
ZWF0ZVJlc3VsdHNPYmplY3RGb3JUZXN0KHRlc3QsIGJ1aWxkZXJOYW1lKV07Ci0gICAgICAgIGN1
cnJlbnRCdWlsZGVyR3JvdXAoKS5idWlsZGVycyA9IHsnV2Via2l0IExpbnV4JzogJycsICdXZWJr
aXQgTGludXggKGRiZyknOiAnJywgJ1dlYmtpdCBNYWMxMC41JzogJycsICdXZWJraXQgV2luJzog
Jyd9OwogCi0gICAgYXNzZXJ0RXF1YWxzKGh0bWxGb3JJbmRpdmlkdWFsVGVzdE9uQWxsQnVpbGRl
cnNXaXRoQ2hyb21lKHRlc3QpLAorICAgIGVxdWFsKGh0bWxGb3JJbmRpdmlkdWFsVGVzdE9uQWxs
QnVpbGRlcnNXaXRoQ2hyb21lKHRlc3QpLAogICAgICAgICAnPGgyPjxhIGhyZWY9Imh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9MYXlvdXRUZXN0cy9kdW1teXRlc3QuaHRtbCIg
dGFyZ2V0PSJfYmxhbmsiPmR1bW15dGVzdC5odG1sPC9hPjwvaDI+JyArCiAgICAgICAgICAgICAn
PHRhYmxlIGNsYXNzPXRlc3QtdGFibGU+PHRoZWFkPjx0cj4nICsKICAgICAgICAgICAgICAgICAg
ICAgJzx0aCBzb3J0VmFsdWU9dGVzdD48ZGl2IGNsYXNzPXRhYmxlLWhlYWRlci1jb250ZW50Pjxz
cGFuPjwvc3Bhbj48c3BhbiBjbGFzcz1oZWFkZXItdGV4dD50ZXN0PC9zcGFuPjwvZGl2PjwvdGg+
JyArCkBAIC00NjgsMjIgKzQyMSwyMiBAQCBmdW5jdGlvbiB0ZXN0SHRtbEZvckluZGl2aWR1YWxU
ZXN0T25BbGxCdWlsZGVyc1dpdGhDaHJvbWVXZWJraXRNYXN0ZXIoKQogICAgICAgICAgICAgICAg
ICAgICAnU2hvdyByZXN1bHRzIGZvciBXZWJLaXQgcmV2aXNpb246IDxpbnB1dCBuYW1lPXJldmlz
aW9uIHBsYWNlaG9sZGVyPSJlLmcuIDY1NTQwIiB2YWx1ZT0iIiBpZD1yZXZpc2lvbi1pbnB1dD4n
ICsKICAgICAgICAgICAgICAgICAnPC9mb3JtPjwvZGl2PicgKwogICAgICAgICAgICAgJzwvZGl2
PicpOwotfQorfSk7CiAKLWZ1bmN0aW9uIHRlc3RIdG1sRm9ySW5kaXZpZHVhbFRlc3RzKCkKLXsK
K3Rlc3QoJ0h0bWxGb3JJbmRpdmlkdWFsVGVzdHMnLCAyLCBmdW5jdGlvbigpIHsKKyAgICByZXNl
dEdsb2JhbHMoKTsKICAgICBnX2N1cnJlbnRTdGF0ZS5zaG93Q2hyb21lID0gZmFsc2U7CiAgICAg
dmFyIHRlc3QxID0gJ2Zvby9ub25leGlzdGFudC5odG1sJzsKICAgICB2YXIgdGVzdDIgPSAnYmFy
L25vbmV4aXN0YW50Lmh0bWwnOwogICAgIHZhciB0ZXN0cyA9IFt0ZXN0MSwgdGVzdDJdOwotICAg
IGFzc2VydEVxdWFscyhodG1sRm9ySW5kaXZpZHVhbFRlc3RzKHRlc3RzKSwgaHRtbEZvckluZGl2
aWR1YWxUZXN0T25BbGxCdWlsZGVycyh0ZXN0MSkgKyAnPGhyPicgKyBodG1sRm9ySW5kaXZpZHVh
bFRlc3RPbkFsbEJ1aWxkZXJzKHRlc3QyKSk7CisgICAgZXF1YWwoaHRtbEZvckluZGl2aWR1YWxU
ZXN0cyh0ZXN0cyksIGh0bWxGb3JJbmRpdmlkdWFsVGVzdE9uQWxsQnVpbGRlcnModGVzdDEpICsg
Jzxocj4nICsgaHRtbEZvckluZGl2aWR1YWxUZXN0T25BbGxCdWlsZGVycyh0ZXN0MikpOwogCiAg
ICAgZ19jdXJyZW50U3RhdGUuc2hvd0Nocm9tZSA9IHRydWU7Ci0gICAgYXNzZXJ0RXF1YWxzKGh0
bWxGb3JJbmRpdmlkdWFsVGVzdHModGVzdHMpLCBodG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1
aWxkZXJzV2l0aENocm9tZSh0ZXN0MSkgKyAnPGhyPicgKyBodG1sRm9ySW5kaXZpZHVhbFRlc3RP
bkFsbEJ1aWxkZXJzV2l0aENocm9tZSh0ZXN0MikpOwotfQorICAgIGVxdWFsKGh0bWxGb3JJbmRp
dmlkdWFsVGVzdHModGVzdHMpLCBodG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxkZXJzV2l0
aENocm9tZSh0ZXN0MSkgKyAnPGhyPicgKyBodG1sRm9ySW5kaXZpZHVhbFRlc3RPbkFsbEJ1aWxk
ZXJzV2l0aENocm9tZSh0ZXN0MikpOworfSk7CiAKLWZ1bmN0aW9uIHRlc3RIdG1sRm9yU2luZ2xl
VGVzdFJvdygpCi17Cit0ZXN0KCdIdG1sRm9yU2luZ2xlVGVzdFJvdycsIDEsIGZ1bmN0aW9uKCkg
eworICAgIHJlc2V0R2xvYmFscygpOwogICAgIHZhciBidWlsZGVyID0gJ2R1bW15QnVpbGRlcic7
CiAgICAgdmFyIHRlc3QgPSBjcmVhdGVSZXN1bHRzT2JqZWN0Rm9yVGVzdCgnZm9vL2V4aXN0cy5o
dG1sJywgYnVpbGRlcik7CiAgICAgZ19jdXJyZW50U3RhdGUuc2hvd0NvcnJlY3RFeHBlY3RhdGlv
bnMgPSB0cnVlOwpAQCAtNDk4LDU1ICs0NTEsMzcgQEAgZnVuY3Rpb24gdGVzdEh0bWxGb3JTaW5n
bGVUZXN0Um93KCkKICAgICAgICAgICAgICAgICAnPHRkPjx0ZD4wPHRkIHRpdGxlPSJURVhULiBD
bGljayBmb3IgbW9yZSBpbmZvLiIgY2xhc3M9InJlc3VsdHMgRiIgb25jbGljaz1cJ3Nob3dQb3B1
cEZvckJ1aWxkKGV2ZW50LCAiZHVtbXlCdWlsZGVyIiwwLCJmb28vZXhpc3RzLmh0bWwiKVwnPiZu
YnNwOycgKwogICAgICAgICAgICAgICAgICc8dGQgdGl0bGU9IklNQUdFLiBDbGljayBmb3IgbW9y
ZSBpbmZvLiIgY2xhc3M9InJlc3VsdHMgSSIgb25jbGljaz1cJ3Nob3dQb3B1cEZvckJ1aWxkKGV2
ZW50LCAiZHVtbXlCdWlsZGVyIiwxLCJmb28vZXhpc3RzLmh0bWwiKVwnPjUnOwogCi0gICAgYXNz
ZXJ0RXF1YWxzKGh0bWxGb3JTaW5nbGVUZXN0Um93KHRlc3QpLCBleHBlY3RlZCk7Ci19CisgICAg
ZXF1YWwoaHRtbEZvclNpbmdsZVRlc3RSb3codGVzdCksIGV4cGVjdGVkKTsKK30pOwogCi1mdW5j
dGlvbiB0ZXN0TG9va3VwVmlydHVhbFRlc3RTdWl0ZSgpCi17Ci0gICAgYXNzZXJ0RXF1YWxzKGxv
b2t1cFZpcnR1YWxUZXN0U3VpdGUoJ2Zhc3QvY2FudmFzL2Zvby5odG1sJyksICcnKTsKLSAgICBh
c3NlcnRFcXVhbHMobG9va3VwVmlydHVhbFRlc3RTdWl0ZSgncGxhdGZvcm0vY2hyb21pdW0vdmly
dHVhbC9ncHUvZmFzdC9jYW52YXMvZm9vLmh0bWwnKSwKLSAgICAgICAgICAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMnKTsKLX0KK3Rlc3QoJ0xv
b2t1cFZpcnR1YWxUZXN0U3VpdGUnLCAyLCBmdW5jdGlvbigpIHsKKyAgICBlcXVhbChsb29rdXBW
aXJ0dWFsVGVzdFN1aXRlKCdmYXN0L2NhbnZhcy9mb28uaHRtbCcpLCAnJyk7CisgICAgZXF1YWwo
bG9va3VwVmlydHVhbFRlc3RTdWl0ZSgncGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFz
dC9jYW52YXMvZm9vLmh0bWwnKSwgJ3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2Zhc3Qv
Y2FudmFzJyk7Cit9KTsKIAotZnVuY3Rpb24gdGVzdEJhc2VUZXN0KCkKLXsKLSAgICBhc3NlcnRF
cXVhbHMoYmFzZVRlc3QoJ2Zhc3QvY2FudmFzL2Zvby5odG1sJywgJycpLCAnZmFzdC9jYW52YXMv
Zm9vLmh0bWwnKTsKLSAgICBhc3NlcnRFcXVhbHMoYmFzZVRlc3QoJ3BsYXRmb3JtL2Nocm9taXVt
L3ZpcnR1YWwvZ3B1L2Zhc3QvY2FudmFzL2Zvby5odG1sJywgJ3BsYXRmb3JtL2Nocm9taXVtL3Zp
cnR1YWwvZ3B1L2Zhc3QvY2FudmFzJyksICdmYXN0L2NhbnZhcy9mb28uaHRtbCcpOwotfQordGVz
dCgnQmFzZVRlc3QnLCAyLCBmdW5jdGlvbigpIHsKKyAgICBlcXVhbChiYXNlVGVzdCgnZmFzdC9j
YW52YXMvZm9vLmh0bWwnLCAnJyksICdmYXN0L2NhbnZhcy9mb28uaHRtbCcpOworICAgIGVxdWFs
KGJhc2VUZXN0KCdwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy9mb28u
aHRtbCcsICdwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcycpLCAnZmFz
dC9jYW52YXMvZm9vLmh0bWwnKTsKK30pOwogCiAvLyBGSVhNRTogQ3JlYXRlIGJ1aWxkZXJzX3Rl
c3RzLmpzIGFuZCBtb3ZlIHRoaXMgdGhlcmUuCi1mdW5jdGlvbiBnZW5lcmF0ZUJ1aWxkZXJzRnJv
bUJ1aWxkZXJMaXN0SGVscGVyKGJ1aWxkZXJMaXN0LCBleHBlY3RlZEJ1aWxkZXJzLCBidWlsZGVy
RmlsdGVyKQotewotICAgIHZhciBidWlsZGVycyA9IGdlbmVyYXRlQnVpbGRlcnNGcm9tQnVpbGRl
ckxpc3QoYnVpbGRlckxpc3QsIGJ1aWxkZXJGaWx0ZXIpOwotICAgIGFzc2VydEVxdWFscyhidWls
ZGVycy5sZW5ndGgsIGV4cGVjdGVkQnVpbGRlcnMubGVuZ3RoKTsKLSAgICBidWlsZGVycy5mb3JF
YWNoKGZ1bmN0aW9uKGJ1aWxkZXIsIGluZGV4KSB7Ci0gICAgICAgIHZhciBleHBlY3RlZCA9IGV4
cGVjdGVkQnVpbGRlcnNbaW5kZXhdOwotICAgICAgICBhc3NlcnRFcXVhbHMoYnVpbGRlci5sZW5n
dGgsIGV4cGVjdGVkLmxlbmd0aCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGRl
ci5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIGFzc2VydEVxdWFscyhidWlsZGVyW2ldLCBleHBl
Y3RlZFtpXSk7Ci0gICAgfSkKLX0KLQotZnVuY3Rpb24gdGVzdEdlbmVyYXRlQ2hyb21pdW1EZXBz
RnlpR3B1QnVpbGRlcnNGcm9tQnVpbGRlckxpc3QoKQotewordGVzdCgnR2VuZXJhdGVDaHJvbWl1
bURlcHNGeWlHcHVCdWlsZGVyc0Zyb21CdWlsZGVyTGlzdCcsIDEsIGZ1bmN0aW9uKCkgewogICAg
IHZhciBidWlsZGVyTGlzdCA9IFsiTGludXggQXVkaW8iLCAiTGludXggUmVsZWFzZSAoQVRJKSIs
ICJMaW51eCBSZWxlYXNlIChJbnRlbCkiLCAiTWFjIFJlbGVhc2UgKEFUSSkiLCAiV2luNyBBdWRp
byIsICJXaW43IFJlbGVhc2UgKEFUSSkiLCAiV2luNyBSZWxlYXNlIChJbnRlbCkiLCAiV2luWFAg
RGVidWcgKE5WSURJQSkiLCAiV2luWFAgUmVsZWFzZSAoTlZJRElBKSJdOwogICAgIHZhciBleHBl
Y3RlZEJ1aWxkZXJzID0gW1siTGludXggUmVsZWFzZSAoQVRJKSIsIDJdLCBbIkxpbnV4IFJlbGVh
c2UgKEludGVsKSJdLCBbIk1hYyBSZWxlYXNlIChBVEkpIl0sIFsiV2luNyBSZWxlYXNlIChBVEkp
Il0sIFsiV2luNyBSZWxlYXNlIChJbnRlbCkiXSwgWyJXaW5YUCBEZWJ1ZyAoTlZJRElBKSJdLCBb
IldpblhQIFJlbGVhc2UgKE5WSURJQSkiXSBdOwotICAgIGdlbmVyYXRlQnVpbGRlcnNGcm9tQnVp
bGRlckxpc3RIZWxwZXIoYnVpbGRlckxpc3QsIGV4cGVjdGVkQnVpbGRlcnMsIGlzQ2hyb21pdW1E
ZXBzRnlpR3B1VGVzdFJ1bm5lcik7Ci19CisgICAgZGVlcEVxdWFsKGdlbmVyYXRlQnVpbGRlcnNG
cm9tQnVpbGRlckxpc3QoYnVpbGRlckxpc3QsIGlzQ2hyb21pdW1EZXBzRnlpR3B1VGVzdFJ1bm5l
ciksIGV4cGVjdGVkQnVpbGRlcnMpOworfSk7CiAKLWZ1bmN0aW9uIHRlc3RHZW5lcmF0ZUNocm9t
aXVtVGlwT2ZUcmVlR3B1QnVpbGRlcnNGcm9tQnVpbGRlckxpc3QoKQotewordGVzdCgnR2VuZXJh
dGVDaHJvbWl1bVRpcE9mVHJlZUdwdUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0JywgMSwgZnVuY3Rp
b24oKSB7CiAgICAgdmFyIGJ1aWxkZXJMaXN0ID0gWyJDaHJvbWUgRnJhbWUgVGVzdHMiLCAiR1BV
IExpbnV4IChOVklESUEpIiwgIkdQVSBMaW51eCAoZGJnKSAoTlZJRElBKSIsICJHUFUgTWFjIiwg
IkdQVSBNYWMgKGRiZykiLCAiR1BVIFdpbjcgKE5WSURJQSkiLCAiR1BVIFdpbjcgKGRiZykgKE5W
SURJQSkiLCAiTGludXggUGVyZiIsCiAgICAgICAgICJMaW51eCBUZXN0cyIsICJMaW51eCBWYWxn
cmluZCIsICJNYWMgQnVpbGRlciAoZGJnKSIsICJNYWMxMC42IFBlcmYiLCAiTWFjMTAuNiBUZXN0
cyIsICJWaXN0YSBQZXJmIiwgIlZpc3RhIFRlc3RzIiwgIldlYmtpdCBMaW51eCIsICJXZWJraXQg
TGludXggKGRiZykiLCAiV2Via2l0IExpbnV4IChkZXBzKSIsCiAgICAgICAgICJXZWJraXQgTGlu
dXggMzIiLCAiV2Via2l0IE1hYyBCdWlsZGVyIiwgIldlYmtpdCBNYWMgQnVpbGRlciAoZGJnKSIs
ICJXZWJraXQgTWFjIEJ1aWxkZXIgKGRlcHMpIiwgIldlYmtpdCBNYWMxMC41IiwgIldlYmtpdCBN
YWMxMC41IChkYmcpKDEpIiwgIldlYmtpdCBNYWMxMC41IChkYmcpKDIpIiwKICAgICAgICAgIldl
YmtpdCBNYWMxMC42IiwgIldlYmtpdCBNYWMxMC42IChkYmcpIiwgIldlYmtpdCBNYWMxMC42IChk
ZXBzKSIsICJXZWJraXQgTWFjMTAuNyIsICJXZWJraXQgVmlzdGEiLCAiV2Via2l0IFdpbiIsICJX
ZWJraXQgV2luIChkYmcpKDEpIiwgIldlYmtpdCBXaW4gKGRiZykoMikiLAogICAgICAgICAiV2Vi
a2l0IFdpbiAoZGVwcykiLCAiV2Via2l0IFdpbiBCdWlsZGVyIiwgIldlYmtpdCBXaW4gQnVpbGRl
ciAoZGJnKSIsICJXZWJraXQgV2luIEJ1aWxkZXIgKGRlcHMpIiwgIldlYmtpdCBXaW43IiwgIldp
biAoZGJnKSIsICJXaW4gQnVpbGRlciJdOwogICAgIHZhciBleHBlY3RlZEJ1aWxkZXJzID0gW1si
R1BVIExpbnV4IChOVklESUEpIiwgMl0sIFsiR1BVIExpbnV4IChkYmcpIChOVklESUEpIl0sIFsi
R1BVIE1hYyJdLCBbIkdQVSBNYWMgKGRiZykiXSwgWyJHUFUgV2luNyAoTlZJRElBKSJdLCBbIkdQ
VSBXaW43IChkYmcpIChOVklESUEpIl1dOwotICAgIGdlbmVyYXRlQnVpbGRlcnNGcm9tQnVpbGRl
ckxpc3RIZWxwZXIoYnVpbGRlckxpc3QsIGV4cGVjdGVkQnVpbGRlcnMsIGlzQ2hyb21pdW1UaXBP
ZlRyZWVHcHVUZXN0UnVubmVyKTsKLX0KKyAgICBkZWVwRXF1YWwoZ2VuZXJhdGVCdWlsZGVyc0Zy
b21CdWlsZGVyTGlzdChidWlsZGVyTGlzdCwgaXNDaHJvbWl1bVRpcE9mVHJlZUdwdVRlc3RSdW5u
ZXIpLCBleHBlY3RlZEJ1aWxkZXJzKTsKK30pOwogCi1mdW5jdGlvbiB0ZXN0R2VuZXJhdGVXZWJr
aXRCdWlsZGVyc0Zyb21CdWlsZGVyTGlzdCgpCi17Cit0ZXN0KCdHZW5lcmF0ZVdlYmtpdEJ1aWxk
ZXJzRnJvbUJ1aWxkZXJMaXN0JywgMSwgZnVuY3Rpb24oKSB7CiAgICAgdmFyIGJ1aWxkZXJMaXN0
ID0gWyJDaHJvbWl1bSBBbmRyb2lkIFJlbGVhc2UiLCAiQ2hyb21pdW0gTGludXggUmVsZWFzZSIs
ICJDaHJvbWl1bSBMaW51eCBSZWxlYXNlIChHcmlkIExheW91dCkiLCAiQ2hyb21pdW0gTGludXgg
UmVsZWFzZSAoUGVyZikiLCAiQ2hyb21pdW0gTGludXggUmVsZWFzZSAoVGVzdHMpIiwKICAgICAg
ICAgIkNocm9taXVtIE1hYyBSZWxlYXNlIiwgIkNocm9taXVtIE1hYyBSZWxlYXNlIChQZXJmKSIs
ICJDaHJvbWl1bSBNYWMgUmVsZWFzZSAoVGVzdHMpIiwgIkNocm9taXVtIFdpbiBSZWxlYXNlIiwg
IkNocm9taXVtIFdpbiBSZWxlYXNlIChQZXJmKSIsICJDaHJvbWl1bSBXaW4gUmVsZWFzZSAoVGVz
dHMpIiwKICAgICAgICAgIkVGTCBMaW51eCBSZWxlYXNlIiwgIkdUSyBMaW51eCAzMi1iaXQgUmVs
ZWFzZSIsICJHVEsgTGludXggNjQtYml0IERlYnVnIiwgIkdUSyBMaW51eCA2NC1iaXQgUmVsZWFz
ZSIsICJMaW9uIERlYnVnIChCdWlsZCkiLCAiTGlvbiBEZWJ1ZyAoVGVzdHMpIiwgIkxpb24gRGVi
dWcgKFdlYktpdDIgVGVzdHMpIiwKQEAgLTU1OCwxMSArNDkzLDEwIEBAIGZ1bmN0aW9uIHRlc3RH
ZW5lcmF0ZVdlYmtpdEJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0KCkKICAgICB2YXIgZXhwZWN0ZWRC
dWlsZGVycyA9IFtbIkNocm9taXVtIExpbnV4IFJlbGVhc2UgKFRlc3RzKSIsIDJdLCBbIkNocm9t
aXVtIE1hYyBSZWxlYXNlIChUZXN0cykiXSwgWyJDaHJvbWl1bSBXaW4gUmVsZWFzZSAoVGVzdHMp
Il0sIFsiR1RLIExpbnV4IDMyLWJpdCBSZWxlYXNlIl0sIFsiR1RLIExpbnV4IDY0LWJpdCBEZWJ1
ZyJdLAogICAgICAgICBbIkdUSyBMaW51eCA2NC1iaXQgUmVsZWFzZSJdLCBbIkxpb24gRGVidWcg
KFRlc3RzKSJdLCBbIkxpb24gRGVidWcgKFdlYktpdDIgVGVzdHMpIl0sIFsiTGlvbiBSZWxlYXNl
IChUZXN0cykiXSwgWyJMaW9uIFJlbGVhc2UgKFdlYktpdDIgVGVzdHMpIl0sIFsiUXQgTGludXgg
UmVsZWFzZSJdLAogICAgICAgICBbIlNub3dMZW9wYXJkIEludGVsIERlYnVnIChUZXN0cykiXSwg
WyJTbm93TGVvcGFyZCBJbnRlbCBEZWJ1ZyAoV2ViS2l0MiBUZXN0cykiXSwgWyJTbm93TGVvcGFy
ZCBJbnRlbCBSZWxlYXNlIChUZXN0cykiXSwgWyJTbm93TGVvcGFyZCBJbnRlbCBSZWxlYXNlIChX
ZWJLaXQyIFRlc3RzKSJdXTsKLSAgICBnZW5lcmF0ZUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0SGVs
cGVyKGJ1aWxkZXJMaXN0LCBleHBlY3RlZEJ1aWxkZXJzLCBpc1dlYmtpdFRlc3RSdW5uZXIpOwot
fQorICAgIGRlZXBFcXVhbChnZW5lcmF0ZUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0KGJ1aWxkZXJM
aXN0LCBpc1dlYmtpdFRlc3RSdW5uZXIpLCBleHBlY3RlZEJ1aWxkZXJzKTsKK30pOwogCi1mdW5j
dGlvbiB0ZXN0R2VuZXJhdGVDaHJvbWl1bVdlYmtpdFRpcE9mVHJlZUJ1aWxkZXJzRnJvbUJ1aWxk
ZXJMaXN0KCkKLXsKK3Rlc3QoJ0dlbmVyYXRlQ2hyb21pdW1XZWJraXRUaXBPZlRyZWVCdWlsZGVy
c0Zyb21CdWlsZGVyTGlzdCcsIDEsIGZ1bmN0aW9uKCkgewogICAgIHZhciBidWlsZGVyTGlzdCA9
IFsiQ2hyb21lIEZyYW1lIFRlc3RzIiwgIkdQVSBMaW51eCAoTlZJRElBKSIsICJHUFUgTGludXgg
KGRiZykgKE5WSURJQSkiLCAiR1BVIE1hYyIsICJHUFUgTWFjIChkYmcpIiwgIkdQVSBXaW43IChO
VklESUEpIiwgIkdQVSBXaW43IChkYmcpIChOVklESUEpIiwgIkxpbnV4IFBlcmYiLCAiTGludXgg
VGVzdHMiLAogICAgICAgICAiTGludXggVmFsZ3JpbmQiLCAiTWFjIEJ1aWxkZXIgKGRiZykiLCAi
TWFjMTAuNiBQZXJmIiwgIk1hYzEwLjYgVGVzdHMiLCAiVmlzdGEgUGVyZiIsICJWaXN0YSBUZXN0
cyIsICJXZWJraXQgTGludXgiLCAiV2Via2l0IExpbnV4IChkYmcpIiwgIldlYmtpdCBMaW51eCAo
ZGVwcykiLCAiV2Via2l0IExpbnV4IDMyIiwKICAgICAgICAgIldlYmtpdCBNYWMgQnVpbGRlciIs
ICJXZWJraXQgTWFjIEJ1aWxkZXIgKGRiZykiLCAiV2Via2l0IE1hYyBCdWlsZGVyIChkZXBzKSIs
ICJXZWJraXQgTWFjMTAuNSIsICJXZWJraXQgTWFjMTAuNSAoZGJnKSgxKSIsICJXZWJraXQgTWFj
MTAuNSAoZGJnKSgyKSIsICJXZWJraXQgTWFjMTAuNiIsICJXZWJraXQgTWFjMTAuNiAoZGJnKSIs
CkBAIC01NzAsMjIgKzUwNCwyMCBAQCBmdW5jdGlvbiB0ZXN0R2VuZXJhdGVDaHJvbWl1bVdlYmtp
dFRpcE9mVHJlZUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0KCkKICAgICAgICAgIldlYmtpdCBXaW4g
QnVpbGRlciAoZGVwcykiLCAiV2Via2l0IFdpbjciLCAiV2luIChkYmcpIiwgIldpbiBCdWlsZGVy
Il07CiAgICAgdmFyIGV4cGVjdGVkQnVpbGRlcnMgPSBbWyJXZWJraXQgTGludXgiLCAyXSwgWyJX
ZWJraXQgTGludXggKGRiZykiXSwgWyJXZWJraXQgTGludXggMzIiXSwgWyJXZWJraXQgTWFjMTAu
NSJdLCBbIldlYmtpdCBNYWMxMC41IChkYmcpKDEpIl0sIFsiV2Via2l0IE1hYzEwLjUgKGRiZyko
MikiXSwgWyJXZWJraXQgTWFjMTAuNiJdLAogICAgICAgICBbIldlYmtpdCBNYWMxMC42IChkYmcp
Il0sIFsiV2Via2l0IE1hYzEwLjciXSwgWyJXZWJraXQgVmlzdGEiXSwgWyJXZWJraXQgV2luIl0s
IFsiV2Via2l0IFdpbiAoZGJnKSgxKSJdLCBbIldlYmtpdCBXaW4gKGRiZykoMikiXSwgWyJXZWJr
aXQgV2luNyJdXTsKLSAgICBnZW5lcmF0ZUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0SGVscGVyKGJ1
aWxkZXJMaXN0LCBleHBlY3RlZEJ1aWxkZXJzLCBpc0Nocm9taXVtV2Via2l0VGlwT2ZUcmVlVGVz
dFJ1bm5lcik7Ci19CisgICAgZGVlcEVxdWFsKGdlbmVyYXRlQnVpbGRlcnNGcm9tQnVpbGRlckxp
c3QoYnVpbGRlckxpc3QsIGlzQ2hyb21pdW1XZWJraXRUaXBPZlRyZWVUZXN0UnVubmVyKSwgZXhw
ZWN0ZWRCdWlsZGVycyk7Cit9KTsKIAotZnVuY3Rpb24gdGVzdEdlbmVyYXRlQ2hyb21pdW1XZWJr
aXREZXBzQnVpbGRlcnNGcm9tQnVpbGRlckxpc3QoKQotewordGVzdCgnR2VuZXJhdGVDaHJvbWl1
bVdlYmtpdERlcHNCdWlsZGVyc0Zyb21CdWlsZGVyTGlzdCcsIDEsIGZ1bmN0aW9uKCkgewogICAg
IHZhciBidWlsZGVyTGlzdCA9IFsiQ2hyb21lIEZyYW1lIFRlc3RzIiwgIkdQVSBMaW51eCAoTlZJ
RElBKSIsICJHUFUgTGludXggKGRiZykgKE5WSURJQSkiLCAiR1BVIE1hYyIsICJHUFUgTWFjIChk
YmcpIiwgIkdQVSBXaW43IChOVklESUEpIiwgIkdQVSBXaW43IChkYmcpIChOVklESUEpIiwgIkxp
bnV4IFBlcmYiLCAiTGludXggVGVzdHMiLAogICAgICAgICAiTGludXggVmFsZ3JpbmQiLCAiTWFj
IEJ1aWxkZXIgKGRiZykiLCAiTWFjMTAuNiBQZXJmIiwgIk1hYzEwLjYgVGVzdHMiLCAiVmlzdGEg
UGVyZiIsICJWaXN0YSBUZXN0cyIsICJXZWJraXQgTGludXgiLCAiV2Via2l0IExpbnV4IChkYmcp
IiwgIldlYmtpdCBMaW51eCAoZGVwcykiLCAiV2Via2l0IExpbnV4IDMyIiwKICAgICAgICAgIldl
YmtpdCBNYWMgQnVpbGRlciIsICJXZWJraXQgTWFjIEJ1aWxkZXIgKGRiZykiLCAiV2Via2l0IE1h
YyBCdWlsZGVyIChkZXBzKSIsICJXZWJraXQgTWFjMTAuNSIsICJXZWJraXQgTWFjMTAuNSAoZGJn
KSgxKSIsICJXZWJraXQgTWFjMTAuNSAoZGJnKSgyKSIsICJXZWJraXQgTWFjMTAuNiIsICJXZWJr
aXQgTWFjMTAuNiAoZGJnKSIsCiAgICAgICAgICJXZWJraXQgTWFjMTAuNiAoZGVwcykiLCAiV2Vi
a2l0IE1hYzEwLjciLCAiV2Via2l0IFZpc3RhIiwgIldlYmtpdCBXaW4iLCAiV2Via2l0IFdpbiAo
ZGJnKSgxKSIsICJXZWJraXQgV2luIChkYmcpKDIpIiwgIldlYmtpdCBXaW4gKGRlcHMpIiwgIldl
YmtpdCBXaW4gQnVpbGRlciIsICJXZWJraXQgV2luIEJ1aWxkZXIgKGRiZykiLAogICAgICAgICAi
V2Via2l0IFdpbiBCdWlsZGVyIChkZXBzKSIsICJXZWJraXQgV2luNyIsICJXaW4gKGRiZykiLCAi
V2luIEJ1aWxkZXIiXTsKICAgICB2YXIgZXhwZWN0ZWRCdWlsZGVycyA9IFtbIldlYmtpdCBMaW51
eCAoZGVwcykiLCAyXSwgWyJXZWJraXQgTWFjMTAuNiAoZGVwcykiXSwgWyJXZWJraXQgV2luIChk
ZXBzKSJdXTsKLSAgICBnZW5lcmF0ZUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0SGVscGVyKGJ1aWxk
ZXJMaXN0LCBleHBlY3RlZEJ1aWxkZXJzLCBpc0Nocm9taXVtV2Via2l0RGVwc1Rlc3RSdW5uZXIp
OwotfQorICAgIGRlZXBFcXVhbChnZW5lcmF0ZUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0KGJ1aWxk
ZXJMaXN0LCBpc0Nocm9taXVtV2Via2l0RGVwc1Rlc3RSdW5uZXIpLCBleHBlY3RlZEJ1aWxkZXJz
KTsKK30pOwogCi1mdW5jdGlvbiB0ZXN0R2VuZXJhdGVDaHJvbWl1bURlcHNHVGVzdEJ1aWxkZXJz
RnJvbUJ1aWxkZXJMaXN0KCkKLXsKK3Rlc3QoJ0dlbmVyYXRlQ2hyb21pdW1EZXBzR1Rlc3RCdWls
ZGVyc0Zyb21CdWlsZGVyTGlzdCcsIDEsIGZ1bmN0aW9uKCkgewogICAgIHZhciBidWlsZGVyTGlz
dCA9IFsiQW5kcm9pZCBCdWlsZGVyIiwgIkNocm9tZSBGcmFtZSBUZXN0cyAoaWU2KSIsICJDaHJv
bWUgRnJhbWUgVGVzdHMgKGllNykiLCAiQ2hyb21lIEZyYW1lIFRlc3RzIChpZTgpIiwgIkludGVy
YWN0aXZlIFRlc3RzIChkYmcpIiwgIkxpbnV4IiwgIkxpbnV4IEJ1aWxkZXIgKGRiZykiLAogICAg
ICAgICAiTGludXggQnVpbGRlciAoZGJnKShzaGFyZWQpIiwgIkxpbnV4IEJ1aWxkZXIgeDY0Iiwg
IkxpbnV4IENsYW5nIChkYmcpIiwgIkxpbnV4IFN5bmMiLCAiTGludXggVGVzdHMgKGRiZykoMSki
LCAiTGludXggVGVzdHMgKGRiZykoMikiLCAiTGludXggVGVzdHMgKGRiZykoc2hhcmVkKSIsICJM
aW51eCBUZXN0cyB4NjQiLAogICAgICAgICAiTGludXggeDY0IiwgIk1hYyIsICJNYWMgMTAuNSBU
ZXN0cyAoZGJnKSgxKSIsICJNYWMgMTAuNSBUZXN0cyAoZGJnKSgyKSIsICJNYWMgMTAuNSBUZXN0
cyAoZGJnKSgzKSIsICJNYWMgMTAuNSBUZXN0cyAoZGJnKSg0KSIsICJNYWMgMTAuNiBUZXN0cyAo
ZGJnKSgxKSIsICJNYWMgMTAuNiBUZXN0cyAoZGJnKSgyKSIsCkBAIC02MDAsNDQgKzUzMiwzMyBA
QCBmdW5jdGlvbiB0ZXN0R2VuZXJhdGVDaHJvbWl1bURlcHNHVGVzdEJ1aWxkZXJzRnJvbUJ1aWxk
ZXJMaXN0KCkKICAgICAgICAgWyJOQUNMIFRlc3RzICh4NjQpIl0sIFsiVmlzdGEgVGVzdHMgKDEp
Il0sIFsiVmlzdGEgVGVzdHMgKDIpIl0sIFsiVmlzdGEgVGVzdHMgKDMpIl0sIFsiV2luNyBUZXN0
cyAoMSkiXSwgWyJXaW43IFRlc3RzICgyKSJdLCBbIldpbjcgVGVzdHMgKDMpIl0sIFsiV2luNyBU
ZXN0cyAoZGJnKSgxKSJdLAogICAgICAgICBbIldpbjcgVGVzdHMgKGRiZykoMikiXSwgWyJXaW43
IFRlc3RzIChkYmcpKDMpIl0sIFsiV2luNyBUZXN0cyAoZGJnKSg0KSJdLCBbIldpbjcgVGVzdHMg
KGRiZykoNSkiXSwgWyJXaW43IFRlc3RzIChkYmcpKDYpIl0sIFsiWFAgVGVzdHMgKDEpIl0sIFsi
WFAgVGVzdHMgKDIpIl0sIFsiWFAgVGVzdHMgKDMpIl0sCiAgICAgICAgIFsiWFAgVGVzdHMgKGRi
ZykoMSkiXSwgWyJYUCBUZXN0cyAoZGJnKSgyKSJdLCBbIlhQIFRlc3RzIChkYmcpKDMpIl0sIFsi
WFAgVGVzdHMgKGRiZykoNCkiXSwgWyJYUCBUZXN0cyAoZGJnKSg1KSJdLCBbIlhQIFRlc3RzIChk
YmcpKDYpIl1dOwotICAgIGdlbmVyYXRlQnVpbGRlcnNGcm9tQnVpbGRlckxpc3RIZWxwZXIoYnVp
bGRlckxpc3QsIGV4cGVjdGVkQnVpbGRlcnMsIGlzQ2hyb21pdW1EZXBzR1Rlc3RSdW5uZXIpOwot
fQorICAgIGRlZXBFcXVhbChnZW5lcmF0ZUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0KGJ1aWxkZXJM
aXN0LCBpc0Nocm9taXVtRGVwc0dUZXN0UnVubmVyKSwgZXhwZWN0ZWRCdWlsZGVycyk7Cit9KTsK
IAotZnVuY3Rpb24gdGVzdEdlbmVyYXRlQ2hyb21pdW1EZXBzQ3Jvc0dUZXN0QnVpbGRlcnNGcm9t
QnVpbGRlckxpc3QoKQotewordGVzdCgnR2VuZXJhdGVDaHJvbWl1bURlcHNDcm9zR1Rlc3RCdWls
ZGVyc0Zyb21CdWlsZGVyTGlzdCcsIDEsIGZ1bmN0aW9uKCkgewogICAgIHZhciBidWlsZGVyTGlz
dCA9IFsiQ2hyb21pdW1PUyAoYW1kNjQpIiwgIkNocm9taXVtT1MgKGFybSkiLCAiQ2hyb21pdW1P
UyAodGVncmEyKSIsICJDaHJvbWl1bU9TICh4ODYpIiwgIkxpbnV4IENocm9taXVtT1MgKENsYW5n
IGRiZykiLCAiTGludXggQ2hyb21pdW1PUyBCdWlsZGVyIiwgIkxpbnV4IENocm9taXVtT1MgQnVp
bGRlciAoZGJnKSIsCiAgICAgICAgICJMaW51eCBDaHJvbWl1bU9TIFRlc3RzICgxKSIsICJMaW51
eCBDaHJvbWl1bU9TIFRlc3RzICgyKSIsICJMaW51eCBDaHJvbWl1bU9TIFRlc3RzIChkYmcpKDEp
IiwgIkxpbnV4IENocm9taXVtT1MgVGVzdHMgKGRiZykoMikiLCAiTGludXggQ2hyb21pdW1PUyBU
ZXN0cyAoZGJnKSgzKSJdOwogICAgIHZhciBleHBlY3RlZEJ1aWxkZXJzID0gW1siTGludXggQ2hy
b21pdW1PUyBUZXN0cyAoMSkiLCAyXSwgWyJMaW51eCBDaHJvbWl1bU9TIFRlc3RzICgyKSJdLCBb
IkxpbnV4IENocm9taXVtT1MgVGVzdHMgKGRiZykoMSkiXSwgWyJMaW51eCBDaHJvbWl1bU9TIFRl
c3RzIChkYmcpKDIpIl0sIFsiTGludXggQ2hyb21pdW1PUyBUZXN0cyAoZGJnKSgzKSJdXTsKLSAg
ICBnZW5lcmF0ZUJ1aWxkZXJzRnJvbUJ1aWxkZXJMaXN0SGVscGVyKGJ1aWxkZXJMaXN0LCBleHBl
Y3RlZEJ1aWxkZXJzLCBpc0Nocm9taXVtRGVwc0Nyb3NHVGVzdFJ1bm5lcik7Ci19CisgICAgZGVl
cEVxdWFsKGdlbmVyYXRlQnVpbGRlcnNGcm9tQnVpbGRlckxpc3QoYnVpbGRlckxpc3QsIGlzQ2hy
b21pdW1EZXBzQ3Jvc0dUZXN0UnVubmVyKSwgZXhwZWN0ZWRCdWlsZGVycyk7Cit9KTsKIAotZnVu
Y3Rpb24gdGVzdEdlbmVyYXRlQ2hyb21pdW1UaXBPZlRyZWVHVGVzdEJ1aWxkZXJzRnJvbUJ1aWxk
ZXJMaXN0KCkKLXsKK3Rlc3QoJ0dlbmVyYXRlQ2hyb21pdW1UaXBPZlRyZWVHVGVzdEJ1aWxkZXJz
RnJvbUJ1aWxkZXJMaXN0JywgMSwgZnVuY3Rpb24oKSB7CiAgICAgdmFyIGJ1aWxkZXJMaXN0ID0g
WyJDaHJvbWUgRnJhbWUgVGVzdHMiLCAiR1BVIExpbnV4IChOVklESUEpIiwgIkdQVSBMaW51eCAo
ZGJnKSAoTlZJRElBKSIsICJHUFUgTWFjIiwgIkdQVSBNYWMgKGRiZykiLCAiR1BVIFdpbjcgKE5W
SURJQSkiLCAiR1BVIFdpbjcgKGRiZykgKE5WSURJQSkiLCAiTGludXggUGVyZiIsCiAgICAgICAg
ICJMaW51eCBUZXN0cyIsICJMaW51eCBWYWxncmluZCIsICJNYWMgQnVpbGRlciAoZGJnKSIsICJN
YWMxMC42IFBlcmYiLCAiTWFjMTAuNiBUZXN0cyIsICJWaXN0YSBQZXJmIiwgIlZpc3RhIFRlc3Rz
IiwgIldlYmtpdCBMaW51eCIsICJXZWJraXQgTGludXggKGRiZykiLCAiV2Via2l0IExpbnV4IChk
ZXBzKSIsCiAgICAgICAgICJXZWJraXQgTGludXggMzIiLCAiV2Via2l0IE1hYyBCdWlsZGVyIiwg
IldlYmtpdCBNYWMgQnVpbGRlciAoZGJnKSIsICJXZWJraXQgTWFjIEJ1aWxkZXIgKGRlcHMpIiwg
IldlYmtpdCBNYWMxMC41IiwgIldlYmtpdCBNYWMxMC41IChkYmcpKDEpIiwgIldlYmtpdCBNYWMx
MC41IChkYmcpKDIpIiwKICAgICAgICAgIldlYmtpdCBNYWMxMC42IiwgIldlYmtpdCBNYWMxMC42
IChkYmcpIiwgIldlYmtpdCBNYWMxMC42IChkZXBzKSIsICJXZWJraXQgTWFjMTAuNyIsICJXZWJr
aXQgVmlzdGEiLCAiV2Via2l0IFdpbiIsICJXZWJraXQgV2luIChkYmcpKDEpIiwgIldlYmtpdCBX
aW4gKGRiZykoMikiLAogICAgICAgICAiV2Via2l0IFdpbiAoZGVwcykiLCAiV2Via2l0IFdpbiBC
dWlsZGVyIiwgIldlYmtpdCBXaW4gQnVpbGRlciAoZGJnKSIsICJXZWJraXQgV2luIEJ1aWxkZXIg
KGRlcHMpIiwgIldlYmtpdCBXaW43IiwgIldpbiAoZGJnKSIsICJXaW4gQnVpbGRlciJdOwogICAg
IHZhciBleHBlY3RlZEJ1aWxkZXJzID0gW1snTGludXggVGVzdHMnLCBCdWlsZGVyR3JvdXAuREVG
QVVMVF9CVUlMREVSXSwgWydNYWMxMC42IFRlc3RzJ10sIFsnVmlzdGEgVGVzdHMnXSwgWydXaW4g
KGRiZyknXV07Ci0gICAgZ2VuZXJhdGVCdWlsZGVyc0Zyb21CdWlsZGVyTGlzdEhlbHBlcihidWls
ZGVyTGlzdCwgZXhwZWN0ZWRCdWlsZGVycywgaXNDaHJvbWl1bVRpcE9mVHJlZUdUZXN0UnVubmVy
KTsKLX0KKyAgICBkZWVwRXF1YWwoZ2VuZXJhdGVCdWlsZGVyc0Zyb21CdWlsZGVyTGlzdChidWls
ZGVyTGlzdCwgaXNDaHJvbWl1bVRpcE9mVHJlZUdUZXN0UnVubmVyKSwgZXhwZWN0ZWRCdWlsZGVy
cyk7Cit9KTsKIAotZnVuY3Rpb24gYXNzZXJ0T2JqZWN0c0RlZXBFcXVhbChhLCBiKQotewotICAg
IGFzc2VydEVxdWFscyhPYmplY3Qua2V5cyhhKS5sZW5ndGgsIE9iamVjdC5rZXlzKGIpLmxlbmd0
aCk7Ci0gICAgZm9yICh2YXIga2V5IGluIGEpCi0gICAgICAgIGFzc2VydEVxdWFscyhhW2tleV0s
IGJba2V5XSk7Ci19Cit0ZXN0KCdRdWVyeUhhc2hBc01hcCcsIDIsIGZ1bmN0aW9uKCkgeworICAg
IGVxdWFsKHdpbmRvdy5sb2NhdGlvbi5oYXNoLCAnI3VzZVRlc3REYXRhPXRydWUnKTsKKyAgICBk
ZWVwRXF1YWwocXVlcnlIYXNoQXNNYXAoKSwge3VzZVRlc3REYXRhOiAndHJ1ZSd9KTsKK30pOwog
Ci1mdW5jdGlvbiB0ZXN0UXVlcnlIYXNoQXNNYXAoKQotewotICAgIGFzc2VydEVxdWFscyh3aW5k
b3cubG9jYXRpb24uaGFzaCwgJyN1c2VUZXN0RGF0YT10cnVlJyk7Ci0gICAgYXNzZXJ0T2JqZWN0
c0RlZXBFcXVhbChxdWVyeUhhc2hBc01hcCgpLCB7dXNlVGVzdERhdGE6ICd0cnVlJ30pOwotfQot
Ci1mdW5jdGlvbiB0ZXN0UGFyc2VDcm9zc0Rhc2hib2FyZFBhcmFtZXRlcnMoKQotewotICAgIGFz
c2VydEVxdWFscyh3aW5kb3cubG9jYXRpb24uaGFzaCwgJyN1c2VUZXN0RGF0YT10cnVlJyk7Cit0
ZXN0KCdQYXJzZUNyb3NzRGFzaGJvYXJkUGFyYW1ldGVycycsIDIsIGZ1bmN0aW9uKCkgeworICAg
IGVxdWFsKHdpbmRvdy5sb2NhdGlvbi5oYXNoLCAnI3VzZVRlc3REYXRhPXRydWUnKTsKICAgICBw
YXJzZUNyb3NzRGFzaGJvYXJkUGFyYW1ldGVycygpOwogCiAgICAgdmFyIGV4cGVjdGVkUGFyYW1l
dGVycyA9IHt9OwpAQCAtNjQ1LDQwICs1NjYsMzcgQEAgZnVuY3Rpb24gdGVzdFBhcnNlQ3Jvc3NE
YXNoYm9hcmRQYXJhbWV0ZXJzKCkKICAgICAgICAgZXhwZWN0ZWRQYXJhbWV0ZXJzW2tleV0gPSBn
X2RlZmF1bHRDcm9zc0Rhc2hib2FyZFN0YXRlVmFsdWVzW2tleV07CiAgICAgZXhwZWN0ZWRQYXJh
bWV0ZXJzLnVzZVRlc3REYXRhID0gdHJ1ZTsKIAotICAgIGFzc2VydE9iamVjdHNEZWVwRXF1YWwo
Z19jcm9zc0Rhc2hib2FyZFN0YXRlLCBleHBlY3RlZFBhcmFtZXRlcnMpOwotfQorICAgIGRlZXBF
cXVhbChnX2Nyb3NzRGFzaGJvYXJkU3RhdGUsIGV4cGVjdGVkUGFyYW1ldGVycyk7Cit9KTsKIAot
ZnVuY3Rpb24gdGVzdERpZmZTdGF0ZXMoKQotewordGVzdCgnRGlmZlN0YXRlcycsIDUsIGZ1bmN0
aW9uKCkgewogICAgIHZhciBuZXdTdGF0ZSA9IHthOiAxLCBiOiAyfTsKLSAgICBhc3NlcnRPYmpl
Y3RzRGVlcEVxdWFsKGRpZmZTdGF0ZXMobnVsbCwgbmV3U3RhdGUpLCBuZXdTdGF0ZSk7CisgICAg
ZGVlcEVxdWFsKGRpZmZTdGF0ZXMobnVsbCwgbmV3U3RhdGUpLCBuZXdTdGF0ZSk7CiAKICAgICB2
YXIgb2xkU3RhdGUgPSB7YTogMX07Ci0gICAgYXNzZXJ0T2JqZWN0c0RlZXBFcXVhbChkaWZmU3Rh
dGVzKG9sZFN0YXRlLCBuZXdTdGF0ZSksIHtiOiAyfSk7CisgICAgZGVlcEVxdWFsKGRpZmZTdGF0
ZXMob2xkU3RhdGUsIG5ld1N0YXRlKSwge2I6IDJ9KTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlz
IGtpbmQgb2Ygd2VpcmQuIEkgdGhpbmsgdGhlIGV4aXN0aW5nIHVzZXJzIG9mIHRoaXMgY29kZSB3
b3JrIGNvcnJlY3RseSwgYnV0IGl0J3MgYSBjb25mdXNpbmcgcmVzdWx0LgogICAgIHZhciBvbGRT
dGF0ZSA9IHtjOiAxfTsKLSAgICBhc3NlcnRPYmplY3RzRGVlcEVxdWFsKGRpZmZTdGF0ZXMob2xk
U3RhdGUsIG5ld1N0YXRlKSwge2E6MSwgYjogMn0pOworICAgIGRlZXBFcXVhbChkaWZmU3RhdGVz
KG9sZFN0YXRlLCBuZXdTdGF0ZSksIHthOjEsIGI6IDJ9KTsKIAogICAgIHZhciBvbGRTdGF0ZSA9
IHthOiAxLCBiOiAyfTsKLSAgICBhc3NlcnRPYmplY3RzRGVlcEVxdWFsKGRpZmZTdGF0ZXMob2xk
U3RhdGUsIG5ld1N0YXRlKSwge30pOworICAgIGRlZXBFcXVhbChkaWZmU3RhdGVzKG9sZFN0YXRl
LCBuZXdTdGF0ZSksIHt9KTsKIAogICAgIHZhciBvbGRTdGF0ZSA9IHthOiAyLCBiOiAzfTsKLSAg
ICBhc3NlcnRPYmplY3RzRGVlcEVxdWFsKGRpZmZTdGF0ZXMob2xkU3RhdGUsIG5ld1N0YXRlKSwg
e2E6IDEsIGI6IDJ9KTsKLX0KKyAgICBkZWVwRXF1YWwoZGlmZlN0YXRlcyhvbGRTdGF0ZSwgbmV3
U3RhdGUpLCB7YTogMSwgYjogMn0pOworfSk7CiAKLWZ1bmN0aW9uIHRlc3RBZGRCdWlsZGVyTG9h
ZEVycm9ycygpCi17Cit0ZXN0KCdBZGRCdWlsZGVyTG9hZEVycm9ycycsIDEsIGZ1bmN0aW9uKCkg
ewogICAgIGNsZWFyRXJyb3JzKCk7CiAgICAgZ19oYXNEb25lSW5pdGlhbFBhZ2VHZW5lcmF0aW9u
ID0gZmFsc2U7CiAgICAgZ19idWlsZGVyc1RoYXRGYWlsZWRUb0xvYWQgPSBbJ2J1aWxkZXIxJywg
J2J1aWxkZXIyJ107CiAgICAgZ19zdGFsZUJ1aWxkZXJzID0gWydzdGFsZUJ1aWxkZXIxJ107CiAg
ICAgYWRkQnVpbGRlckxvYWRFcnJvcnMoKTsKLSAgICBhc3NlcnRFcXVhbHMoZ19lcnJvck1lc3Nh
Z2VzLCAnRVJST1I6IEZhaWxlZCB0byBnZXQgZGF0YSBmcm9tIGJ1aWxkZXIxLGJ1aWxkZXIyLjxi
cj5FUlJPUjogRGF0YSBmcm9tIHN0YWxlQnVpbGRlcjEgaXMgbW9yZSB0aGFuIDEgZGF5IHN0YWxl
Ljxicj4nKTsKLX0KKyAgICBlcXVhbChnX2Vycm9yTWVzc2FnZXMsICdFUlJPUjogRmFpbGVkIHRv
IGdldCBkYXRhIGZyb20gYnVpbGRlcjEsYnVpbGRlcjIuPGJyPkVSUk9SOiBEYXRhIGZyb20gc3Rh
bGVCdWlsZGVyMSBpcyBtb3JlIHRoYW4gMSBkYXkgc3RhbGUuPGJyPicpOworfSk7CiAKLWZ1bmN0
aW9uIHRlc3RCdWlsZGVyR3JvdXBJc1RvVFdlYktpdEF0dHJpYnV0ZSgpCi17Cit0ZXN0KCdCdWls
ZGVyR3JvdXBJc1RvVFdlYktpdEF0dHJpYnV0ZScsIDIsIGZ1bmN0aW9uKCkgewogICAgIHZhciBk
dW1teU1hc3RlciA9IG5ldyBCdWlsZGVyTWFzdGVyKCdkdW1teS5vcmcnLCAnaHR0cDovL2J1aWxk
LmR1bW15Lm9yZycpOwogICAgIHZhciB0ZXN0QnVpbGRlckdyb3VwcyA9IHsKICAgICAgICAgJ0BU
b1QgLSBkdW1teS5vcmcnOiBudWxsLApAQCAtNjg2LDQ4ICs2MDQsOSBAQCBmdW5jdGlvbiB0ZXN0
QnVpbGRlckdyb3VwSXNUb1RXZWJLaXRBdHRyaWJ1dGUoKQogICAgIH0KICAgICB2YXIgdGVzdEpT
T05EYXRhID0gInsgXCJEdW1teSBCdWlsZGVyIDFcIjogbnVsbCwgXCJEdW1teSBCdWlsZGVyIDJc
IjogbnVsbCB9IjsKIAotICAgIC8vIE92ZXJyaWRlIGdfaGFuZGxlQnVpbGRlcnNMaXN0TG9hZGVk
IHRvIGF2b2lkIGVudGVyaW5nIGFuIGluZmluaXRlIHJlY3Vyc2lvbgotICAgIC8vIGFzIHRoZSBi
dWlsZGVyIGxpc3RzIGFyZSBiZWluZyBsb2FkZWQgd2l0aCBkdW1teSBkYXRhLgotICAgIGdfaGFu
ZGxlQnVpbGRlcnNMaXN0TG9hZGVkID0gZnVuY3Rpb24oKSB7IH0KLQogICAgIG9uQnVpbGRlckxp
c3RMb2FkKHRlc3RCdWlsZGVyR3JvdXBzLCAgZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9LCBk
dW1teU1hc3RlciwgJ0BUb1QgLSBkdW1teS5vcmcnLCBCdWlsZGVyR3JvdXAuVE9UX1dFQktJVCwg
SlNPTi5wYXJzZSh0ZXN0SlNPTkRhdGEpKTsKLSAgICBhc3NlcnRFcXVhbHModGVzdEJ1aWxkZXJH
cm91cHNbJ0BUb1QgLSBkdW1teS5vcmcnXS5pc1RvVFdlYktpdCwgdHJ1ZSk7CisgICAgZXF1YWwo
dGVzdEJ1aWxkZXJHcm91cHNbJ0BUb1QgLSBkdW1teS5vcmcnXS5pc1RvVFdlYktpdCwgdHJ1ZSk7
CiAKICAgICBvbkJ1aWxkZXJMaXN0TG9hZCh0ZXN0QnVpbGRlckdyb3VwcywgIGZ1bmN0aW9uKCkg
eyByZXR1cm4gdHJ1ZTsgfSwgZHVtbXlNYXN0ZXIsICdAREVQUyAtIGR1bW15Lm9yZycsIEJ1aWxk
ZXJHcm91cC5ERVBTX1dFQktJVCwgSlNPTi5wYXJzZSh0ZXN0SlNPTkRhdGEpKTsKLSAgICBhc3Nl
cnRFcXVhbHModGVzdEJ1aWxkZXJHcm91cHNbJ0BERVBTIC0gZHVtbXkub3JnJ10uaXNUb1RXZWJL
aXQsIGZhbHNlKTsKLX0KLQotZnVuY3Rpb24gaHRtbEVzY2FwZShzdHJpbmcpCi17Ci0gICAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi50ZXh0Q29udGVu
dCA9IHN0cmluZzsKLSAgICByZXR1cm4gZGl2LmlubmVySFRNTDsKLX0KLQotZnVuY3Rpb24gcnVu
VGVzdHMoKQotewotICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gJzxwcmUgaWQ9dW5pdHRl
c3QtcmVzdWx0cz48L3ByZT4nOwotICAgIGZvciAodmFyIG5hbWUgaW4gd2luZG93KSB7Ci0gICAg
ICAgIGlmICh0eXBlb2Ygd2luZG93W25hbWVdID09ICdmdW5jdGlvbicgJiYgL150ZXN0Ly50ZXN0
KG5hbWUpKSB7Ci0gICAgICAgICAgICBzZXR1cEV4cGVjdGF0aW9uc1Rlc3QoKTsKLQotICAgICAg
ICAgICAgdmFyIHRlc3QgPSB3aW5kb3dbbmFtZV07Ci0gICAgICAgICAgICB2YXIgZXJyb3IgPSBu
dWxsOwotCi0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHRlc3QoKTsKLSAgICAg
ICAgICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgICAgICAgICAgIGVycm9yID0gZXJyOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gZXJyb3IgPyBodG1sRXNjYXBl
KGVycm9yLnRvU3RyaW5nKCkpIDogJ1BBU1NFRCc7Ci0KLSAgICAgICAgICAgICQoJ3VuaXR0ZXN0
LXJlc3VsdHMnKS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZUVuZCIsIG5hbWUgKyAnOiAnICsg
cmVzdWx0ICsgJ1xuJyk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLWlmIChkb2N1bWVudC5yZWFk
eVN0YXRlID09ICdjb21wbGV0ZScpCi0gICAgcnVuVGVzdHMoKTsKLWVsc2UKLSAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3RzLCBmYWxzZSk7CisgICAgZXF1YWwodGVz
dEJ1aWxkZXJHcm91cHNbJ0BERVBTIC0gZHVtbXkub3JnJ10uaXNUb1RXZWJLaXQsIGZhbHNlKTsK
K30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJk
cy9ydW4tdW5pdHRlc3RzLmh0bWwgYi9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNo
Ym9hcmRzL3J1bi11bml0dGVzdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzQ1MWI1ZjA4OWNkMWE2NTJh
NTBiZGIyNmQzYWEwZWE1ZjJiYzBjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJlc3Vs
dFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9ydW4tdW5pdHRlc3RzLmh0bWwKQEAgLTAsMCArMSw2
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKK2FyZSBtZXQ6
CisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKK0FORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCitCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCitDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CitJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKK0FSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKK1RIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vU291cmNlL1RoaXJkUGFydHkvcXVuaXQvcXVuaXQv
cXVuaXQuY3NzIj4KKzxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWph
eC9saWJzL2pxdWVyeS8xLjYuMi9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4gCis8c2NyaXB0IHNy
Yz0iaHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnl1aS8xLjguMTUv
anF1ZXJ5LXVpLm1pbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vU291cmNl
L1RoaXJkUGFydHkvcXVuaXQvcXVuaXQvcXVuaXQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aDEgaWQ9InF1bml0LWhlYWRlciI+VGVzdCBSZXN1bHRzIFNlcnZlciBKYXZhU2NyaXB0
IFVuaXQgVGVzdHM8L2gxPgorPGgyIGlkPSJxdW5pdC1iYW5uZXIiPjwvaDI+Cis8ZGl2IGlkPSJx
dW5pdC10ZXN0cnVubmVyLXRvb2xiYXIiPjwvZGl2PgorPGgyIGlkPSJxdW5pdC11c2VyQWdlbnQi
PjwvaDI+Cis8b2wgaWQ9InF1bml0LXRlc3RzIj48L29sPgorCis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9ImZsYWtpbmVzc19kYXNoYm9hcmQuY3NzIj48L2xpbms+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9ImZsYWtpbmVzc19kYXNoYm9hcmRfdGVzdHMuY3NzIj48L2xpbms+Cis8
c2NyaXB0IHNyYz0iYnVpbGRlcnMuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorLy8gRG9uJ3Qg
cmVxdWVzdCB0aGUgYWN0dWFsIGJ1aWxkZXJzIG9mZiB0aGUgYm90cyB3aGVuIHJ1bm5pbmcgdW5p
dHRlc3RzLgorZnVuY3Rpb24gbG9hZEJ1aWxkZXJzTGlzdCgpIHt9OworZnVuY3Rpb24gZ19oYW5k
bGVCdWlsZGVyc0xpc3RMb2FkZWQoKSB7fTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iZGFz
aGJvYXJkX2Jhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImZsYWtpbmVzc19kYXNoYm9h
cmQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgord2luZG93LmxvY2F0aW9uLmhyZWYgPSAnI3Vz
ZVRlc3REYXRhPXRydWUnOwordmFyIGJ1aWxkZXJHcm91cCA9ICdAVG9UIC0gY2hyb21pdW0ub3Jn
JzsKK3ZhciBidWlsZGVycyA9IHsnV2Via2l0IExpbnV4JzogJycsICdXZWJraXQgTGludXggKGRi
ZyknOiAnJywgJ1dlYmtpdCBNYWMxMC41JzogJycsICdXZWJraXQgV2luJzogJyd9Oworb25CdWls
ZGVyTGlzdExvYWQoTEFZT1VUX1RFU1RTX0JVSUxERVJfR1JPVVBTLCBpc0Nocm9taXVtV2Via2l0
VGlwT2ZUcmVlVGVzdFJ1bm5lciwgQ0hST01JVU1fV0VCS0lUX0JVSUxERVJfTUFTVEVSLCBidWls
ZGVyR3JvdXAsIEJ1aWxkZXJHcm91cC5UT1RfV0VCS0lULCBidWlsZGVycyk7Citpbml0QnVpbGRl
cnMoKTsKKzwvc2NyaXB0PgorCis8IS0tIEZJWE1FOiBTcGxpdCB0aGlzIHVwIGludG8gbXVsdGlw
bGUgdW5pdHRlc3QuanMsIGUuZy4gb25lIGZvciBidWlsZGVycy5qcyBhbmQgb25lIGZvciBkYXNo
Ym9hcmRfYmFzZS5qcy4gLS0+Cis8c2NyaXB0IHNyYz0iZmxha2luZXNzX2Rhc2hib2FyZF91bml0
dGVzdHMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>