<?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>226902</bug_id>
          
          <creation_ts>2021-06-10 15:58:46 -0700</creation_ts>
          <short_desc>allow callers of `shouldBecome*` to specify a maximum time to wait in LayoutTests</short_desc>
          <delta_ts>2021-06-17 16:00:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226828</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1768783</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-06-10 15:58:46 -0700</bug_when>
    <thetext>also add a way to guard general `await promise` with a timeout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768789</commentid>
    <comment_count>1</comment_count>
      <attachid>431154</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-06-10 16:05:51 -0700</bug_when>
    <thetext>Created attachment 431154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769026</commentid>
    <comment_count>2</comment_count>
      <attachid>431154</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-06-11 12:26:21 -0700</bug_when>
    <thetext>Comment on attachment 431154
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=431154&amp;action=review

&gt; LayoutTests/ChangeLog:51
&gt; +2021-06-10  Devin Rousso  &lt;drousso@apple.com&gt;

oh oops i will remove before landing

i want to give EWS a chance to fully run on this patch before uploading a new one since this patch modifies some very commonly used stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770863</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-17 16:00:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/79475176&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431154</attachid>
            <date>2021-06-10 16:05:51 -0700</date>
            <delta_ts>2021-06-11 21:40:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226902-20210610170550.patch</filename>
            <type>text/plain</type>
            <size>21146</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMGVmZjkwNzdkZDQyMGE5NDNkYmE1ZGExMTMyYjcwNzkyZGFjMzc2Li44MzU4Mjcx
ZDJkZTVhOTI4YTIyNzUwYmFiMzI0Y2E5ZDMwOTJlNGE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAK
KzIwMjEtMDYtMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAg
IGFsbG93IGNhbGxlcnMgb2YgYHNob3VsZEJlY29tZSpgIHRvIHNwZWNpZnkgYSBtYXhpbXVtIHRp
bWUgdG8gd2FpdCBpbiBMYXlvdXRUZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5pZnkgYHNob3VsZEJlY29tZUVxdWFsYCBhbmQgYHNob3VsZEJl
Y29tZUVxdWFsVG9TdHJpbmdgIGFuZCBgc2hvdWxkQmVjb21lRGlmZmVyZW50YCB0byBhbGwKKyAg
ICAgICAgY2FsbCBhIHNoYXJlZCBgX3Nob3VsZEJlY29tZWAuIEFkanVzdCB0aGUgcGFyYW1ldGVy
cyBvZiBlYWNoIHRvIGFsbG93IGZvciB0aGUgZm9sbG93aW5nOgorICAgICAgICAgLSBgKF9hLCBf
YilgLCB3aGljaCB3aWxsIHJldHVybiBhIGBQcm9taXNlYCB0aGF0IHJlc29sdmVzIHdoZW4gdGhl
IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgICAgIC0gYChfYSwgX2JbLCB0aW1lb3V0SW5NU10pYCwg
d2hpY2ggd2lsbCByZXR1cm4gYSBgUHJvbWlzZWAgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb25k
aXRpb24gaXMgbWV0IG9yIGlmIGB0aW1lb3V0SW5NU2AgdGltZSBoYXMgcGFzc2VkICh0aG91Z2gg
dGhpcyB3aWxsIGFsc28gYWRkIGEgZmFpbHVyZSBtZXNzYWdlKQorICAgICAgICAgLSBgKF9hLCBf
YlssIHRpbWVvdXRJbk1TWywgY29tcGxldGlvbkhhbmRsZXJdXSlgLCB3aGljaCB3aWxsIGludm9r
ZSBgY29tcGxldGlvbkhhbmRsZXJgIHdoZW4gdGhlIGNvbmRpdGlvbiBpcyBtZXQgb3IgaWYgYHRp
bWVvdXRJbk1TYCB0aW1lIGhhcyBwYXNzZWQgKHRob3VnaCB0aGlzIHdpbGwgYWxzbyBhZGQgYSBm
YWlsdXJlIG1lc3NhZ2UpCisgICAgICAgICAtIGAoX2EsIF9iWywgY29tcGxldGlvbkhhbmRsZXJd
KWAsIHdoaWNoIHdpbGwgaW52b2tlIGBjb21wbGV0aW9uSGFuZGxlcmAgd2hlbiB0aGUgY29uZGl0
aW9uIGlzIG1ldAorCisgICAgICAgIEFsc28gYWRkIGEgYHdyYXBQcm9taXNlRm9yVGltZW91dGAg
ZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBndWFyZCBob3cgbG9uZyB0byBgYXdhaXRgIGEK
KyAgICAgICAgYFByb21pc2VgIGJlZm9yZSBmb3JjaWJseSByZXNvbHZpbmcgaXQgKHRob3VnaCB0
aGlzIHdpbGwgYWxzbyBhZGQgYSBmYWlsdXJlIG1lc3NhZ2UpLgorCisgICAgICAgIFRoaXMgc2hv
dWxkIG1ha2UgaXQgZWFzaWVyIHRvIHdyaXRlIHRlc3RzIHRoYXQgZmFpbCB3aXRoIGEgdGV4dCBk
aWZmZXJlbmNlIGluc3RlYWQgb2YgY29tcGxldGVseSB0aW1pbmcgb3V0LgorCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanM6CisgICAgICAgIChhc3luYyB3cmFw
UHJvbWlzZUZvclRpbWVvdXQpOiBBZGRlZC4KKyAgICAgICAgKF9zaG91bGRCZWNvbWUpOiBBZGRl
ZC4KKyAgICAgICAgKF9zaG91bGRCZWNvbWUuY29uZGl0aW9uKTogQWRkZWQuCisgICAgICAgIChz
aG91bGRCZWNvbWVFcXVhbCk6CisgICAgICAgIChzaG91bGRCZWNvbWVFcXVhbFRvU3RyaW5nKToK
KyAgICAgICAgKHNob3VsZEJlY29tZURpZmZlcmVudCk6CisgICAgICAgIChzaG91bGRCZWNvbWVF
cXVhbC5jb25kaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoc2hvdWxkQmVjb21lRXF1YWxUb1N0
cmluZy5jb25kaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoc2hvdWxkQmVjb21lRGlmZmVyZW50
LmNvbmRpdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
OgorICAgICAgICAoYXN5bmMgd3JhcFByb21pc2VGb3JUaW1lb3V0KTogQWRkZWQuCisgICAgICAg
IChfc2hvdWxkQmVjb21lKTogQWRkZWQuCisgICAgICAgIChfc2hvdWxkQmVjb21lLmNvbmRpdGlv
bik6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmVjb21lRXF1YWwpOgorICAgICAgICAoc2hvdWxk
QmVjb21lRXF1YWxUb1N0cmluZyk6CisgICAgICAgIChzaG91bGRCZWNvbWVEaWZmZXJlbnQpOgor
ICAgICAgICAoc2hvdWxkQmVjb21lRXF1YWwuY29uZGl0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KHNob3VsZEJlY29tZUVxdWFsVG9TdHJpbmcuY29uZGl0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KHNob3VsZEJlY29tZURpZmZlcmVudC5jb25kaXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJl
c291cmNlcy9qcy10ZXN0LmpzOgorICAgICAgICAoYXN5bmMgd3JhcFByb21pc2VGb3JUaW1lb3V0
KTogQWRkZWQuCisgICAgICAgIChfc2hvdWxkQmVjb21lKTogQWRkZWQuCisgICAgICAgIChfc2hv
dWxkQmVjb21lLmNvbmRpdGlvbik6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmVjb21lRXF1YWwp
OgorICAgICAgICAoc2hvdWxkQmVjb21lRXF1YWxUb1N0cmluZyk6CisgICAgICAgIChzaG91bGRC
ZWNvbWVEaWZmZXJlbnQpOgorICAgICAgICAoc2hvdWxkQmVjb21lRXF1YWwuY29uZGl0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKHNob3VsZEJlY29tZUVxdWFsVG9TdHJpbmcuY29uZGl0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKHNob3VsZEJlY29tZURpZmZlcmVudC5jb25kaXRpb24pOiBEZWxl
dGVkLgorCisyMDIxLTA2LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICAocjI3ODYxOCkgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL292ZXJmbG93LXN1
cHBvcnQvY2hhcHRlcnMuaHRtbCBpcyB0aW1pbmcgb3V0IHNpbmNlIGludHJvZHVjdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2ODI4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTA4NDc1Nj4KKworICAgICAgICBVbnJldmlld2VkIGZvbGxv
d3VwIGZvciBmbGFreSB0ZXN0LgorCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL292ZXJmbG93LXN1cHBvcnQvY2hhcHRlcnMuaHRtbDoKKyAgICAgICAgQWRkIG1hbnVhbCB0
aW1lb3V0cyBmb3IgZWFjaCBgYXdhaXRgIHRvIHNlZSB3aGVyZSBleGFjdGx5IHRoZSB0ZXN0IGZh
aWxzLgorCiAyMDIxLTA2LTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDb3VudFF1ZXVpbmdTdHJhdGVneS5jb25zdHJ1Y3RvciBtaXNzZXMgY2hlY2tpbmcg
dGhlIHR5cGUgb2YgaW5pdCBwYXJhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcwppbmRleCBjNmNiYmExYTRlMmY1MTQ5ZmViOGVmMTE1NjFiZTQ2
MWU0NjY1MGU3Li4yNmIwMThkNWE4ZTNhNjM4YjYyZWM1MTM4NDA4YjMzNGQ1NmMzNWE4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwpAQCAt
Mjk1LDYgKzI5NSwyMyBAQCBmdW5jdGlvbiBkZmdTaG91bGRCZSh0aGVGdW5jdGlvbiwgX2EsIF9i
KQogICAgIHJldHVybiB2YWx1ZXMubGVuZ3RoOwogfQogCithc3luYyBmdW5jdGlvbiB3cmFwUHJv
bWlzZUZvclRpbWVvdXQocHJvbWlzZSwgbXMgPSAxMDAwKQoreworICAgIHZhciBwcm9taXNlUmVz
dWx0ID0gdW5kZWZpbmVkOworICAgIHZhciBkaWRUaW1lb3V0ID0gYXdhaXQgUHJvbWlzZS5yYWNl
KFsKKyAgICAgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgICAgICAgICBw
cm9taXNlUmVzdWx0ID0gdmFsdWU7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0pLAorICAgICAgICBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgbXMsIHRydWUpOworICAgICAgICB9KSwKKyAg
ICBdKTsKKyAgICBpZiAoZGlkVGltZW91dCkKKyAgICAgICAgdGVzdEZhaWxlZCgidGltZW91dCIp
OworICAgIHJldHVybiBwcm9taXNlUmVzdWx0OworfQorCiAvLyBFeGVjdXRlIGNvbmRpdGlvbiBl
dmVyeSA1IG1pbGxpc2Vjb25kcyB1bnRpbCBpdCBzdWNjZWVkcy4KIGZ1bmN0aW9uIF93YWl0Rm9y
Q29uZGl0aW9uKGNvbmRpdGlvbiwgY29tcGxldGlvbkhhbmRsZXIpCiB7CkBAIC0zMDQsMTEgKzMy
MSwxMiBAQCBmdW5jdGlvbiBfd2FpdEZvckNvbmRpdGlvbihjb25kaXRpb24sIGNvbXBsZXRpb25I
YW5kbGVyKQogICAgICAgICBzZXRUaW1lb3V0KF93YWl0Rm9yQ29uZGl0aW9uLCA1LCBjb25kaXRp
b24sIGNvbXBsZXRpb25IYW5kbGVyKTsKIH0KIAotZnVuY3Rpb24gc2hvdWxkQmVjb21lRXF1YWwo
X2EsIF9iLCBjb21wbGV0aW9uSGFuZGxlcikKKy8vIEluIG9yZGVyIHRvIHByb3ZpZGUgdGhlIG1v
c3QgZmxleGliaWxpdHksIGBleHRyYUFyZ3NgIGFsbG93cyBmb3IgYSBmZXcgZGlmZmVyZW50IGNv
bmZpZ3VyYXRpb25zOgorLy8gIC0gZW1wdHkKKy8vICAtIHRoZSBmaXJzdCB2YWx1ZSBiZWluZyBh
IHRpbWVvdXQgKGkuZS4gYSBudW1iZXIgdGhhdCdzIHVzZWQgdG8gbGltaXQgaG93IGxvbmcgdG8g
d2FpdCkKKy8vICAtIHRoZSBsYXN0IHZhbHVlIGJlaW5nIGEgY29tcGxldGlvbiBoYW5kbGVyIChp
LmUuIGEgZnVuY3Rpb24gdGhhdCdzIHVzZWQgaW5zdGVhZCByZXR1cm5pbmcgYSBgUHJvbWlzZWAp
CitmdW5jdGlvbiBfc2hvdWxkQmVjb21lKF9hLCBfYiwgZXhwZWN0c0VxdWFsLCBleHRyYUFyZ3Mp
CiB7Ci0gICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmlu
ZyIpCi0gICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZWNvbWVFcXVhbCgpIGV4cGVjdHMgc3Ry
aW5nIGFyZ3VtZW50cyIpOwotCiAgICAgZnVuY3Rpb24gY29uZGl0aW9uKCkgewogICAgICAgICB2
YXIgZXhjZXB0aW9uOwogICAgICAgICB2YXIgX2F2OwpAQCAtMzE4LDI3ICszMzYsNzQgQEAgZnVu
Y3Rpb24gc2hvdWxkQmVjb21lRXF1YWwoX2EsIF9iLCBjb21wbGV0aW9uSGFuZGxlcikKICAgICAg
ICAgICAgIGV4Y2VwdGlvbiA9IGU7CiAgICAgICAgIH0KICAgICAgICAgdmFyIF9idiA9IGV2YWwo
X2IpOwotICAgICAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICAgICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIGJlY29tZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRp
b24pOwotICAgICAgICBpZiAoaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgewotICAgICAgICAg
ICAgdGVzdFBhc3NlZChfYSArICIgYmVjYW1lICIgKyBfYik7CisgICAgICAgIGlmIChleGNlcHRp
b24pIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RzRXF1YWwpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZChgJHtfYX0gc2hvdWxkIGJlY29tZSAke19ifS4gVGhyZXcgZXhjZXB0aW9uICR7ZXhj
ZXB0aW9ufWApOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
YCR7X2F9IHNob3VsZCBiZWNvbWUgZGlmZmVyZW50IGZyb20gJHtfYn0uIFRocmV3IGV4Y2VwdGlv
biAke2V4Y2VwdGlvbn1gKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNSZXN1bHRDb3JyZWN0
KF9hdiwgX2J2KSA9PT0gZXhwZWN0c0VxdWFsKSB7CisgICAgICAgICAgICBpZiAoZXhwZWN0c0Vx
dWFsKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoYCR7X2F9IGJlY2FtZSAke19ifWApOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoYCR7X2F9IGJlY2Ft
ZSBkaWZmZXJlbnQgZnJvbSAke19ifWApOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmICghY29tcGxldGlv
bkhhbmRsZXIpCi0gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVv
dXQoX3dhaXRGb3JDb25kaXRpb24sIDAsIGNvbmRpdGlvbiwgcmVzb2x2ZSkpOworICAgIHZhciBj
b21wbGV0aW9uSGFuZGxlciA9IGV4dHJhQXJnc1tleHRyYUFyZ3MubGVuZ3RoIC0gMV07CiAKLSAg
ICBzZXRUaW1lb3V0KF93YWl0Rm9yQ29uZGl0aW9uLCAwLCBjb25kaXRpb24sIGNvbXBsZXRpb25I
YW5kbGVyKTsKKyAgICB2YXIgcHJvbWlzZSA9IHVuZGVmaW5lZDsKKyAgICBpZiAodHlwZW9mIGNv
bXBsZXRpb25IYW5kbGVyICE9PSAiZnVuY3Rpb24iKSB7CisgICAgICAgIHByb21pc2UgPSBuZXcg
UHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyID0gcmVzb2x2ZTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
Y29tcGxldGlvbkhhbmRsZXJXcmFwcGVyKCkgeworICAgICAgICBpZiAoY29tcGxldGlvbkhhbmRs
ZXIpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlciA9IG51bGw7CisgICAgfQorCisgICAgdmFyIHRpbWVvdXQgPSBleHRyYUFyZ3NbMF07
CisgICAgaWYgKHR5cGVvZiB0aW1lb3V0ID09PSAibnVtYmVyIikgeworICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKGNvbXBsZXRpb25IYW5kbGVyKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGV4cGVjdHNFcXVhbCkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZChgdGltZW91dCB3YWl0aW5nIGZvciAke19hfSB0byBiZWNvbWUgJHtfYn1gKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYHRpbWVv
dXQgd2FpdGluZyBmb3IgJHtfYX0gdG8gYmVjb21lIGRpZmZlcmVudCBmcm9tICR7X2J9YCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcldyYXBwZXIoKTsKKyAg
ICAgICAgfSwgdGltZW91dCk7CisgICAgfQorCisgICAgc2V0VGltZW91dChfd2FpdEZvckNvbmRp
dGlvbiwgMCwgY29uZGl0aW9uLCBjb21wbGV0aW9uSGFuZGxlcldyYXBwZXIpOworCisgICAgcmV0
dXJuIHByb21pc2U7CiB9CiAKLWZ1bmN0aW9uIHNob3VsZEJlY29tZUVxdWFsVG9TdHJpbmcodmFs
dWUsIHJlZmVyZW5jZSwgY29tcGxldGlvbkhhbmRsZXIpCitmdW5jdGlvbiBzaG91bGRCZWNvbWVF
cXVhbChfYSwgX2IsIC4uLmV4dHJhQXJncykKK3sKKyAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJp
bmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldBUk46IHNob3Vs
ZEJlY29tZUVxdWFsKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgICAgcmV0dXJuIF9z
aG91bGRCZWNvbWUoX2EsIF9iLCB0cnVlLCBleHRyYUFyZ3MpOworfQorCitmdW5jdGlvbiBzaG91
bGRCZWNvbWVFcXVhbFRvU3RyaW5nKHZhbHVlLCByZWZlcmVuY2UsIC4uLmV4dHJhQXJncykKIHsK
ICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAic3RyaW5nIiB8fCB0eXBlb2YgcmVmZXJlbmNlICE9
PSAic3RyaW5nIikKICAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlY29tZUVxdWFsVG9TdHJp
bmcoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKLSAgICB2YXIgdW5ldmFsZWRTdHJpbmcg
PSBKU09OLnN0cmluZ2lmeShyZWZlcmVuY2UpOwotICAgIHNob3VsZEJlY29tZUVxdWFsKHZhbHVl
LCB1bmV2YWxlZFN0cmluZywgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHJldHVybiBfc2hvdWxk
QmVjb21lKHZhbHVlLCBKU09OLnN0cmluZ2lmeShyZWZlcmVuY2UpLCB0cnVlLCBleHRyYUFyZ3Mp
OworfQorCitmdW5jdGlvbiBzaG91bGRCZWNvbWVEaWZmZXJlbnQoX2EsIF9iLCAuLi5leHRyYUFy
Z3MpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0
cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZWNvbWVEaWZmZXJlbnQoKSBleHBl
Y3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgICByZXR1cm4gX3Nob3VsZEJlY29tZShfYSwgX2Is
IGZhbHNlLCBleHRyYUFyZ3MpOwogfQogCiBmdW5jdGlvbiBzaG91bGRCZVR5cGUoX2EsIF90eXBl
KSB7CkBAIC00MjAsMzUgKzQ4NSw2IEBAIGZ1bmN0aW9uIHNob3VsZE5vdEJlKF9hLCBfYiwgX3F1
aWV0KQogICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAi
LiIpOwogfQogCi1mdW5jdGlvbiBzaG91bGRCZWNvbWVEaWZmZXJlbnQoX2EsIF9iLCBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBf
YiAhPSAic3RyaW5nIikKLSAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlY29tZURpZmZlcmVu
dCgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOwotCi0gICAgZnVuY3Rpb24gY29uZGl0aW9u
KCkgewotICAgICAgICB2YXIgZXhjZXB0aW9uOwotICAgICAgICB2YXIgX2F2OwotICAgICAgICB0
cnkgewotICAgICAgICAgICAgX2F2ID0gZXZhbChfYSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGU7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIF9idiA9
IGV2YWwoX2IpOwotICAgICAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICAgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIGJlY2FtZSBub3QgZXF1YWwgdG8gIiArIF9idiArICIuIFRocmV3IGV4
Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgICAgICAgaWYgKCFpc1Jlc3VsdENvcnJlY3QoX2F2
LCBfYnYpKSB7Ci0gICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBiZWNhbWUgZGlmZmVyZW50
IGZyb20gIiArIF9iKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoIWNvbXBsZXRpb25IYW5kbGVyKQot
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KF93YWl0Rm9y
Q29uZGl0aW9uLCAwLCBjb25kaXRpb24sIHJlc29sdmUpKTsKLQotICAgIHNldFRpbWVvdXQoX3dh
aXRGb3JDb25kaXRpb24sIDAsIGNvbmRpdGlvbiwgY29tcGxldGlvbkhhbmRsZXIpOwotfQotCiBm
dW5jdGlvbiBzaG91bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7IH0KIGZ1bmN0
aW9uIHNob3VsZEJlVHJ1ZVF1aWV0KF9hKSB7IHNob3VsZEJlKF9hLCAidHJ1ZSIsIHRydWUpOyB9
CiBmdW5jdGlvbiBzaG91bGRCZUZhbHNlKF9hKSB7IHNob3VsZEJlKF9hLCAiZmFsc2UiKTsgfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIGIvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCmluZGV4IGM2Y2JiYTFhNGUyZjUxNDlmZWI4
ZWYxMTU2MWJlNDYxZTQ2NjUwZTcuLjI2YjAxOGQ1YThlM2E2MzhiNjJlYzUxMzg0MDhiMzM0ZDU2
YzM1YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwor
KysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKQEAgLTI5NSw2ICsyOTUs
MjMgQEAgZnVuY3Rpb24gZGZnU2hvdWxkQmUodGhlRnVuY3Rpb24sIF9hLCBfYikKICAgICByZXR1
cm4gdmFsdWVzLmxlbmd0aDsKIH0KIAorYXN5bmMgZnVuY3Rpb24gd3JhcFByb21pc2VGb3JUaW1l
b3V0KHByb21pc2UsIG1zID0gMTAwMCkKK3sKKyAgICB2YXIgcHJvbWlzZVJlc3VsdCA9IHVuZGVm
aW5lZDsKKyAgICB2YXIgZGlkVGltZW91dCA9IGF3YWl0IFByb21pc2UucmFjZShbCisgICAgICAg
IHByb21pc2UudGhlbihmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICAgICAgcHJvbWlzZVJlc3Vs
dCA9IHZhbHVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9KSwKKyAgICAg
ICAgbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBz
ZXRUaW1lb3V0KHJlc29sdmUsIG1zLCB0cnVlKTsKKyAgICAgICAgfSksCisgICAgXSk7CisgICAg
aWYgKGRpZFRpbWVvdXQpCisgICAgICAgIHRlc3RGYWlsZWQoInRpbWVvdXQiKTsKKyAgICByZXR1
cm4gcHJvbWlzZVJlc3VsdDsKK30KKwogLy8gRXhlY3V0ZSBjb25kaXRpb24gZXZlcnkgNSBtaWxs
aXNlY29uZHMgdW50aWwgaXQgc3VjY2VlZHMuCiBmdW5jdGlvbiBfd2FpdEZvckNvbmRpdGlvbihj
b25kaXRpb24sIGNvbXBsZXRpb25IYW5kbGVyKQogewpAQCAtMzA0LDExICszMjEsMTIgQEAgZnVu
Y3Rpb24gX3dhaXRGb3JDb25kaXRpb24oY29uZGl0aW9uLCBjb21wbGV0aW9uSGFuZGxlcikKICAg
ICAgICAgc2V0VGltZW91dChfd2FpdEZvckNvbmRpdGlvbiwgNSwgY29uZGl0aW9uLCBjb21wbGV0
aW9uSGFuZGxlcik7CiB9CiAKLWZ1bmN0aW9uIHNob3VsZEJlY29tZUVxdWFsKF9hLCBfYiwgY29t
cGxldGlvbkhhbmRsZXIpCisvLyBJbiBvcmRlciB0byBwcm92aWRlIHRoZSBtb3N0IGZsZXhpYmls
aXR5LCBgZXh0cmFBcmdzYCBhbGxvd3MgZm9yIGEgZmV3IGRpZmZlcmVudCBjb25maWd1cmF0aW9u
czoKKy8vICAtIGVtcHR5CisvLyAgLSB0aGUgZmlyc3QgdmFsdWUgYmVpbmcgYSB0aW1lb3V0IChp
LmUuIGEgbnVtYmVyIHRoYXQncyB1c2VkIHRvIGxpbWl0IGhvdyBsb25nIHRvIHdhaXQpCisvLyAg
LSB0aGUgbGFzdCB2YWx1ZSBiZWluZyBhIGNvbXBsZXRpb24gaGFuZGxlciAoaS5lLiBhIGZ1bmN0
aW9uIHRoYXQncyB1c2VkIGluc3RlYWQgcmV0dXJuaW5nIGEgYFByb21pc2VgKQorZnVuY3Rpb24g
X3Nob3VsZEJlY29tZShfYSwgX2IsIGV4cGVjdHNFcXVhbCwgZXh0cmFBcmdzKQogewotICAgIGlm
ICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQotICAgICAg
ICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVjb21lRXF1YWwoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVu
dHMiKTsKLQogICAgIGZ1bmN0aW9uIGNvbmRpdGlvbigpIHsKICAgICAgICAgdmFyIGV4Y2VwdGlv
bjsKICAgICAgICAgdmFyIF9hdjsKQEAgLTMxOCwyNyArMzM2LDc0IEBAIGZ1bmN0aW9uIHNob3Vs
ZEJlY29tZUVxdWFsKF9hLCBfYiwgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgICAgICBleGNl
cHRpb24gPSBlOwogICAgICAgICB9CiAgICAgICAgIHZhciBfYnYgPSBldmFsKF9iKTsKLSAgICAg
ICAgaWYgKGV4Y2VwdGlvbikKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZWNvbWUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgICAg
ICAgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsKLSAgICAgICAgICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGJlY2FtZSAiICsgX2IpOworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAg
ICAgICAgICBpZiAoZXhwZWN0c0VxdWFsKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYCR7
X2F9IHNob3VsZCBiZWNvbWUgJHtfYn0uIFRocmV3IGV4Y2VwdGlvbiAke2V4Y2VwdGlvbn1gKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGAke19hfSBzaG91
bGQgYmVjb21lIGRpZmZlcmVudCBmcm9tICR7X2J9LiBUaHJldyBleGNlcHRpb24gJHtleGNlcHRp
b259YCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikg
PT09IGV4cGVjdHNFcXVhbCkgeworICAgICAgICAgICAgaWYgKGV4cGVjdHNFcXVhbCkKKyAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKGAke19hfSBiZWNhbWUgJHtfYn1gKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGAke19hfSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gJHtfYn1gKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIWNvbXBsZXRpb25IYW5kbGVyKQot
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KF93YWl0Rm9y
Q29uZGl0aW9uLCAwLCBjb25kaXRpb24sIHJlc29sdmUpKTsKKyAgICB2YXIgY29tcGxldGlvbkhh
bmRsZXIgPSBleHRyYUFyZ3NbZXh0cmFBcmdzLmxlbmd0aCAtIDFdOwogCi0gICAgc2V0VGltZW91
dChfd2FpdEZvckNvbmRpdGlvbiwgMCwgY29uZGl0aW9uLCBjb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgdmFyIHByb21pc2UgPSB1bmRlZmluZWQ7CisgICAgaWYgKHR5cGVvZiBjb21wbGV0aW9uSGFu
ZGxlciAhPT0gImZ1bmN0aW9uIikgeworICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciA9
IHJlc29sdmU7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbXBsZXRpb25I
YW5kbGVyV3JhcHBlcigpIHsKKyAgICAgICAgaWYgKGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBu
dWxsOworICAgIH0KKworICAgIHZhciB0aW1lb3V0ID0gZXh0cmFBcmdzWzBdOworICAgIGlmICh0
eXBlb2YgdGltZW91dCA9PT0gIm51bWJlciIpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICAgICAg
ICAgIGlmIChleHBlY3RzRXF1YWwpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYHRp
bWVvdXQgd2FpdGluZyBmb3IgJHtfYX0gdG8gYmVjb21lICR7X2J9YCk7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGB0aW1lb3V0IHdhaXRpbmcg
Zm9yICR7X2F9IHRvIGJlY29tZSBkaWZmZXJlbnQgZnJvbSAke19ifWApOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJXcmFwcGVyKCk7CisgICAgICAgIH0sIHRp
bWVvdXQpOworICAgIH0KKworICAgIHNldFRpbWVvdXQoX3dhaXRGb3JDb25kaXRpb24sIDAsIGNv
bmRpdGlvbiwgY29tcGxldGlvbkhhbmRsZXJXcmFwcGVyKTsKKworICAgIHJldHVybiBwcm9taXNl
OwogfQogCi1mdW5jdGlvbiBzaG91bGRCZWNvbWVFcXVhbFRvU3RyaW5nKHZhbHVlLCByZWZlcmVu
Y2UsIGNvbXBsZXRpb25IYW5kbGVyKQorZnVuY3Rpb24gc2hvdWxkQmVjb21lRXF1YWwoX2EsIF9i
LCAuLi5leHRyYUFyZ3MpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBl
b2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZWNvbWVFcXVh
bCgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgIHJldHVybiBfc2hvdWxkQmVjb21l
KF9hLCBfYiwgdHJ1ZSwgZXh0cmFBcmdzKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVjb21lRXF1
YWxUb1N0cmluZyh2YWx1ZSwgcmVmZXJlbmNlLCAuLi5leHRyYUFyZ3MpCiB7CiAgICAgaWYgKHR5
cGVvZiB2YWx1ZSAhPT0gInN0cmluZyIgfHwgdHlwZW9mIHJlZmVyZW5jZSAhPT0gInN0cmluZyIp
CiAgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZWNvbWVFcXVhbFRvU3RyaW5nKCkgZXhwZWN0
cyBzdHJpbmcgYXJndW1lbnRzIik7Ci0gICAgdmFyIHVuZXZhbGVkU3RyaW5nID0gSlNPTi5zdHJp
bmdpZnkocmVmZXJlbmNlKTsKLSAgICBzaG91bGRCZWNvbWVFcXVhbCh2YWx1ZSwgdW5ldmFsZWRT
dHJpbmcsIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICByZXR1cm4gX3Nob3VsZEJlY29tZSh2YWx1
ZSwgSlNPTi5zdHJpbmdpZnkocmVmZXJlbmNlKSwgdHJ1ZSwgZXh0cmFBcmdzKTsKK30KKworZnVu
Y3Rpb24gc2hvdWxkQmVjb21lRGlmZmVyZW50KF9hLCBfYiwgLi4uZXh0cmFBcmdzKQoreworICAg
IGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAg
ICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVjb21lRGlmZmVyZW50KCkgZXhwZWN0cyBzdHJpbmcg
YXJndW1lbnRzIik7CisgICAgcmV0dXJuIF9zaG91bGRCZWNvbWUoX2EsIF9iLCBmYWxzZSwgZXh0
cmFBcmdzKTsKIH0KIAogZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkgewpAQCAtNDIw
LDM1ICs0ODUsNiBAQCBmdW5jdGlvbiBzaG91bGROb3RCZShfYSwgX2IsIF9xdWlldCkKICAgICAg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4iKTsKIH0KIAot
ZnVuY3Rpb24gc2hvdWxkQmVjb21lRGlmZmVyZW50KF9hLCBfYiwgY29tcGxldGlvbkhhbmRsZXIp
Ci17Ci0gICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmlu
ZyIpCi0gICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZWNvbWVEaWZmZXJlbnQoKSBleHBlY3Rz
IHN0cmluZyBhcmd1bWVudHMiKTsKLQotICAgIGZ1bmN0aW9uIGNvbmRpdGlvbigpIHsKLSAgICAg
ICAgdmFyIGV4Y2VwdGlvbjsKLSAgICAgICAgdmFyIF9hdjsKLSAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgIF9hdiA9IGV2YWwoX2EpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAg
ICBleGNlcHRpb24gPSBlOwotICAgICAgICB9Ci0gICAgICAgIHZhciBfYnYgPSBldmFsKF9iKTsK
LSAgICAgICAgaWYgKGV4Y2VwdGlvbikKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNo
b3VsZCBiZWNhbWUgbm90IGVxdWFsIHRvICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiAr
IGV4Y2VwdGlvbik7Ci0gICAgICAgIGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgewot
ICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgYmVjYW1lIGRpZmZlcmVudCBmcm9tICIgKyBf
Yik7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKCFjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChfd2FpdEZvckNvbmRpdGlvbiwg
MCwgY29uZGl0aW9uLCByZXNvbHZlKSk7Ci0KLSAgICBzZXRUaW1lb3V0KF93YWl0Rm9yQ29uZGl0
aW9uLCAwLCBjb25kaXRpb24sIGNvbXBsZXRpb25IYW5kbGVyKTsKLX0KLQogZnVuY3Rpb24gc2hv
dWxkQmVUcnVlKF9hKSB7IHNob3VsZEJlKF9hLCAidHJ1ZSIpOyB9CiBmdW5jdGlvbiBzaG91bGRC
ZVRydWVRdWlldChfYSkgeyBzaG91bGRCZShfYSwgInRydWUiLCB0cnVlKTsgfQogZnVuY3Rpb24g
c2hvdWxkQmVGYWxzZShfYSkgeyBzaG91bGRCZShfYSwgImZhbHNlIik7IH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L2pzLXRlc3QuanMKaW5kZXggYWIwZGNmMjZhOWJhYzAyYTNmMGI0NzBhYzE1ZTg5YzE5ZTBmYTdj
NC4uMjBjZTdhOTIzZDA0NWM3YWQ2MmMzNzBiNGFhOGQ0NjNhNjQyNDRjMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL2pzLXRlc3QuanMKQEAgLTMxOSw2ICszMTksMjMgQEAgZnVuY3Rpb24gc2hvdWxkQmVPbmVP
ZlZhbHVlcyhfYSwgX3ZhbHVlcykKICAgICB9CiB9CiAKK2FzeW5jIGZ1bmN0aW9uIHdyYXBQcm9t
aXNlRm9yVGltZW91dChwcm9taXNlLCBtcyA9IDEwMDApCit7CisgIHZhciBwcm9taXNlUmVzdWx0
ID0gdW5kZWZpbmVkOworICB2YXIgZGlkVGltZW91dCA9IGF3YWl0IFByb21pc2UucmFjZShbCisg
ICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgICBwcm9taXNlUmVzdWx0ID0g
dmFsdWU7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSksCisgICAgbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICBzZXRUaW1lb3V0KHJlc29sdmUsIG1zLCB0
cnVlKTsKKyAgICB9KSwKKyAgXSk7CisgIGlmIChkaWRUaW1lb3V0KQorICAgIHRlc3RGYWlsZWQo
InRpbWVvdXQiKTsKKyAgcmV0dXJuIHByb21pc2VSZXN1bHQ7Cit9CisKIC8vIEV4ZWN1dGUgY29u
ZGl0aW9uIGV2ZXJ5IDUgbWlsbGlzZWNvbmRzIHVudGlsIGl0IHN1Y2NlZWRzLgogZnVuY3Rpb24g
X3dhaXRGb3JDb25kaXRpb24oY29uZGl0aW9uLCBjb21wbGV0aW9uSGFuZGxlcikKIHsKQEAgLTMy
OCwxMSArMzQ1LDEyIEBAIGZ1bmN0aW9uIF93YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbiwgY29t
cGxldGlvbkhhbmRsZXIpCiAgICAgc2V0VGltZW91dChfd2FpdEZvckNvbmRpdGlvbiwgNSwgY29u
ZGl0aW9uLCBjb21wbGV0aW9uSGFuZGxlcik7CiB9CiAKLWZ1bmN0aW9uIHNob3VsZEJlY29tZUVx
dWFsKF9hLCBfYiwgY29tcGxldGlvbkhhbmRsZXIpCisvLyBJbiBvcmRlciB0byBwcm92aWRlIHRo
ZSBtb3N0IGZsZXhpYmlsaXR5LCBgZXh0cmFBcmdzYCBhbGxvd3MgZm9yIGEgZmV3IGRpZmZlcmVu
dCBjb25maWd1cmF0aW9uczoKKy8vICAtIGVtcHR5CisvLyAgLSB0aGUgZmlyc3QgdmFsdWUgYmVp
bmcgYSB0aW1lb3V0IChpLmUuIGEgbnVtYmVyIHRoYXQncyB1c2VkIHRvIGxpbWl0IGhvdyBsb25n
IHRvIHdhaXQpCisvLyAgLSB0aGUgbGFzdCB2YWx1ZSBiZWluZyBhIGNvbXBsZXRpb24gaGFuZGxl
ciAoaS5lLiBhIGZ1bmN0aW9uIHRoYXQncyB1c2VkIGluc3RlYWQgcmV0dXJuaW5nIGEgYFByb21p
c2VgKQorZnVuY3Rpb24gX3Nob3VsZEJlY29tZShfYSwgX2IsIGV4cGVjdHNFcXVhbCwgZXh0cmFB
cmdzKQogewotICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3Ry
aW5nIikKLSAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVjb21lRXF1YWwoKSBleHBlY3RzIHN0cmlu
ZyBhcmd1bWVudHMiKTsKLQogICBmdW5jdGlvbiBjb25kaXRpb24oKSB7CiAgICAgdmFyIGV4Y2Vw
dGlvbjsKICAgICB2YXIgX2F2OwpAQCAtMzQyLDI3ICszNjAsNzQgQEAgZnVuY3Rpb24gc2hvdWxk
QmVjb21lRXF1YWwoX2EsIF9iLCBjb21wbGV0aW9uSGFuZGxlcikKICAgICAgIGV4Y2VwdGlvbiA9
IGU7CiAgICAgfQogICAgIHZhciBfYnYgPSBldmFsKF9iKTsKLSAgICBpZiAoZXhjZXB0aW9uKQot
ICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlY29tZSAiICsgX2J2ICsgIi4gVGhyZXcg
ZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwotICAgIGlmIChpc1Jlc3VsdENvcnJlY3QoX2F2LCBf
YnYpKSB7Ci0gICAgICB0ZXN0UGFzc2VkKF9hICsgIiBiZWNhbWUgIiArIF9iKTsKKyAgICBpZiAo
ZXhjZXB0aW9uKSB7CisgICAgICBpZiAoZXhwZWN0c0VxdWFsKQorICAgICAgICB0ZXN0RmFpbGVk
KGAke19hfSBzaG91bGQgYmVjb21lICR7X2J9LiBUaHJldyBleGNlcHRpb24gJHtleGNlcHRpb259
YCk7CisgICAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoYCR7X2F9IHNob3VsZCBiZWNvbWUg
ZGlmZmVyZW50IGZyb20gJHtfYn0uIFRocmV3IGV4Y2VwdGlvbiAke2V4Y2VwdGlvbn1gKTsKKyAg
ICB9CisgICAgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikgPT09IGV4cGVjdHNFcXVhbCkg
eworICAgICAgaWYgKGV4cGVjdHNFcXVhbCkKKyAgICAgICAgdGVzdFBhc3NlZChgJHtfYX0gYmVj
YW1lICR7X2J9YCk7CisgICAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoYCR7X2F9IGJlY2Ft
ZSBkaWZmZXJlbnQgZnJvbSAke19ifWApOwogICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IHJldHVybiBmYWxzZTsKICAgfQogCi0gIGlmICghY29tcGxldGlvbkhhbmRsZXIpCi0gICAgcmV0
dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChfd2FpdEZvckNvbmRpdGlvbiwg
MCwgY29uZGl0aW9uLCByZXNvbHZlKSk7CisgIGxldCBjb21wbGV0aW9uSGFuZGxlciA9IGV4dHJh
QXJnc1tleHRyYUFyZ3MubGVuZ3RoIC0gMV07CiAKLSAgc2V0VGltZW91dChfd2FpdEZvckNvbmRp
dGlvbiwgMCwgY29uZGl0aW9uLCBjb21wbGV0aW9uSGFuZGxlcik7CisgIGxldCBwcm9taXNlID0g
dW5kZWZpbmVkOworICBpZiAodHlwZW9mIGNvbXBsZXRpb25IYW5kbGVyICE9PSAiZnVuY3Rpb24i
KSB7CisgICAgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSByZXNvbHZlOworICAgIH0pOworICB9CisKKyAg
ZnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXJXcmFwcGVyKCkgeworICAgIGlmIChjb21wbGV0aW9u
SGFuZGxlcikKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlciA9IG51bGw7CisgIH0KKworICBsZXQgdGltZW91dCA9IGV4dHJhQXJnc1swXTsKKyAgaWYg
KHR5cGVvZiB0aW1lb3V0ID09PSAibnVtYmVyIikgeworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpIHsKKyAgICAgICAgaWYgKGV4cGVjdHNF
cXVhbCkKKyAgICAgICAgICB0ZXN0RmFpbGVkKGB0aW1lb3V0IHdhaXRpbmcgZm9yICR7X2F9IHRv
IGJlY29tZSAke19ifWApOworICAgICAgICBlbHNlCisgICAgICAgICAgdGVzdEZhaWxlZChgdGlt
ZW91dCB3YWl0aW5nIGZvciAke19hfSB0byBiZWNvbWUgZGlmZmVyZW50IGZyb20gJHtfYn1gKTsK
KyAgICAgIH0KKyAgICAgIGNvbXBsZXRpb25IYW5kbGVyV3JhcHBlcigpOworICAgIH0sIHRpbWVv
dXQpOworICB9CisKKyAgc2V0VGltZW91dChfd2FpdEZvckNvbmRpdGlvbiwgMCwgY29uZGl0aW9u
LCBjb21wbGV0aW9uSGFuZGxlcldyYXBwZXIpOworCisgIHJldHVybiBwcm9taXNlOwogfQogCi1m
dW5jdGlvbiBzaG91bGRCZWNvbWVFcXVhbFRvU3RyaW5nKHZhbHVlLCByZWZlcmVuY2UsIGNvbXBs
ZXRpb25IYW5kbGVyKQorZnVuY3Rpb24gc2hvdWxkQmVjb21lRXF1YWwoX2EsIF9iLCAuLi5leHRy
YUFyZ3MpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJz
dHJpbmciKQorICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZWNvbWVFcXVhbCgpIGV4cGVjdHMgc3Ry
aW5nIGFyZ3VtZW50cyIpOworICByZXR1cm4gX3Nob3VsZEJlY29tZShfYSwgX2IsIHRydWUsIGV4
dHJhQXJncyk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlY29tZUVxdWFsVG9TdHJpbmcodmFsdWUs
IHJlZmVyZW5jZSwgLi4uZXh0cmFBcmdzKQogewogICBpZiAodHlwZW9mIHZhbHVlICE9PSAic3Ry
aW5nIiB8fCB0eXBlb2YgcmVmZXJlbmNlICE9PSAic3RyaW5nIikKICAgICBkZWJ1ZygiV0FSTjog
c2hvdWxkQmVjb21lRXF1YWxUb1N0cmluZygpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOwot
ICB2YXIgdW5ldmFsZWRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShyZWZlcmVuY2UpOwotICBzaG91
bGRCZWNvbWVFcXVhbCh2YWx1ZSwgdW5ldmFsZWRTdHJpbmcsIGNvbXBsZXRpb25IYW5kbGVyKTsK
KyAgcmV0dXJuIF9zaG91bGRCZWNvbWUodmFsdWUsIEpTT04uc3RyaW5naWZ5KHJlZmVyZW5jZSks
IHRydWUsIGV4dHJhQXJncyk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlY29tZURpZmZlcmVudChf
YSwgX2IsIC4uLmV4dHJhQXJncykKK3sKKyAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0
eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgZGVidWcoIldBUk46IHNob3VsZEJlY29tZURpZmZl
cmVudCgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICByZXR1cm4gX3Nob3VsZEJlY29t
ZShfYSwgX2IsIGZhbHNlLCBleHRyYUFyZ3MpOwogfQogCiBmdW5jdGlvbiBzaG91bGRCZVR5cGUo
X2EsIF90eXBlKSB7CkBAIC00NDQsMzUgKzUwOSw2IEBAIGZ1bmN0aW9uIHNob3VsZE5vdEJlKF9h
LCBfYiwgX3F1aWV0KQogICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIg
KyBfYnYgKyAiLiIpOwogfQogCi1mdW5jdGlvbiBzaG91bGRCZWNvbWVEaWZmZXJlbnQoX2EsIF9i
LCBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0
eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3VsZEJlY29tZURpZmZl
cmVudCgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOwotCi0gIGZ1bmN0aW9uIGNvbmRpdGlv
bigpIHsKLSAgICB2YXIgZXhjZXB0aW9uOwotICAgIHZhciBfYXY7Ci0gICAgdHJ5IHsKLSAgICAg
IF9hdiA9IGV2YWwoX2EpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgIGV4Y2VwdGlvbiA9IGU7
Ci0gICAgfQotICAgIHZhciBfYnYgPSBldmFsKF9iKTsKLSAgICBpZiAoZXhjZXB0aW9uKQotICAg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlY2FtZSBub3QgZXF1YWwgdG8gIiArIF9idiAr
ICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgICBpZiAoIWlzUmVzdWx0Q29y
cmVjdChfYXYsIF9idikpIHsKLSAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGJlY2FtZSBkaWZmZXJl
bnQgZnJvbSAiICsgX2IpOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBm
YWxzZTsKLSAgfQotCi0gIGlmICghY29tcGxldGlvbkhhbmRsZXIpCi0gICAgcmV0dXJuIG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChfd2FpdEZvckNvbmRpdGlvbiwgMCwgY29uZGl0
aW9uLCByZXNvbHZlKSk7Ci0KLSAgc2V0VGltZW91dChfd2FpdEZvckNvbmRpdGlvbiwgMCwgY29u
ZGl0aW9uLCBjb21wbGV0aW9uSGFuZGxlcik7Ci19Ci0KIGZ1bmN0aW9uIHNob3VsZEJlVHJ1ZShh
LCBxdWlldCkgeyBzaG91bGRCZShhLCAidHJ1ZSIsIHF1aWV0KTsgfQogZnVuY3Rpb24gc2hvdWxk
QmVUcnVlUXVpZXQoYSkgeyBzaG91bGRCZShhLCAidHJ1ZSIsIHRydWUpOyB9CiBmdW5jdGlvbiBz
aG91bGRCZUZhbHNlKGEsIHF1aWV0KSB7IHNob3VsZEJlKGEsICJmYWxzZSIsIHF1aWV0KTsgfQo=
</data>
<flag name="review"
          id="452829"
          type_id="1"
          status="?"
          setter="hi"
    />
    <flag name="commit-queue"
          id="452977"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>