<?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>189883</bug_id>
          
          <creation_ts>2018-09-22 03:28:24 -0700</creation_ts>
          <short_desc>Native functions which accept pointers need to do null checks</short_desc>
          <delta_ts>2018-10-13 14:52:50 -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>WebGPU</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>176199</blocked>
    
    <blocked>189202</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jonlee</cc>
    
    <cc>rmorisset</cc>
    
    <cc>tdenney</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1462355</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-22 03:28:24 -0700</bug_when>
    <thetext>WHLSL functions automatically do null checks, but the native functions don&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462431</commentid>
    <comment_count>1</comment_count>
      <attachid>350536</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-22 15:56:35 -0700</bug_when>
    <thetext>Created attachment 350536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462440</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-22 16:34:57 -0700</bug_when>
    <thetext>Committed r236388: &lt;https://trac.webkit.org/changeset/236388&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462441</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-22 16:35:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/44708648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468806</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 14:23:16 -0700</bug_when>
    <thetext>Migrated to https://api.github.com/repos/gpuweb/WHLSL/issues/29</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468851</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 14:52:50 -0700</bug_when>
    <thetext>https://github.com/gpuweb/WHLSL/issues/29</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350536</attachid>
            <date>2018-09-22 15:56:35 -0700</date>
            <delta_ts>2018-09-22 16:04:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189883-20180923075633.patch</filename>
            <type>text/plain</type>
            <size>27504</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mzg2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWIzZjhlOGY1OWNkZGQ2MGI1ZTBiNTNjNGI5NWE1NWQz
OGQ4YTc5MS4uMjE0YWI3NTI1NDA0MmE5YjBhYTIyMzA1N2MyOGM0ZjBjZWNlYTM2ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE4LTA5LTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgTmF0aXZlIGZ1bmN0aW9ucyB3aGljaCBhY2NlcHQgcG9pbnRlcnMgbmVlZCB0
byBkbyBudWxsIGNoZWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg5ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2ltcGx5IGd1YXJkIGFsbCB0aGUgcGxhY2VzIHdoZXJlIHdlIHdyaXRlIHRocm91
Z2ggYW4gYXV0aG9yLXByb3ZpZGVkIHBvaW50ZXIuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcy4pOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAgICh0ZXN0cy50ZXh0
dXJlRGltZW5zaW9uc051bGwpOgorCiAyMDE4LTA5LTIyICBUaGliYXVsdCBTYXVuaWVyICA8dHNh
dW5pZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBCZSB2ZXJ5IHBlcm1pc3NpdmUgaW4g
dGhlIE1pbmlCcm93c2VyLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanMKaW5kZXggNjhiMGRkNTczZmMwMmVhMzg1MTc5NTVkODM4OGE2NDZhYTkwYTU5Ni4uNzMw
ZWUzY2RlYTIxNDYzYzVjYzIxZGE1ZWM3MmM3YTZlY2ViYWRkYyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC05MzEsOCArOTMxLDEwIEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1p
cGxldmVsLmxvYWRWYWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJ
RCA+PSB0ZXgubGV2ZWxDb3VudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhp
c3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1p
cElEKSksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxldmVsQ291bnQpLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgfSk7CiAKQEAgLTk3NSw5ICs5NzcsMTIgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVl
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENv
dW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwg
b2YgdGV4dHVyZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3Vu
dCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUo
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51
bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxD
b3VudCksIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICB9KTsKIApAQCAtMTE2Niw5ICsxMTcxLDEyIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltH
ZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRl
eHR1cmUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxD
b3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFs
dWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0LmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgubGV2ZWxDb3VudCksIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICB9KTsKIApAQCAtMTM1NywxMCArMTM2NSwxNCBAQCBjbGFzcyBJbnRyaW5zaWNz
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2Fk
VmFsdWUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4Lmxl
dmVsQ291bnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBs
ZXZlbCBvZiB0ZXh0dXJlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVs
cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoaGVpZ2h0LmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2
ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRz
LmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfSk7CiAKQEAgLTE0MDMsMTAgKzE0MTUsMTQg
QEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1p
cElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJv
bSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0aEF0
TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lk
dGgubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChkZXB0aC5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRlcHRo
QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVt
YmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENv
dW50KSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
IH0pOwogCkBAIC0xNTAwLDkgKzE1MTYsMTIgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRv
ZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQubG9h
ZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0pOwogCkBAIC0xNTEwLDE0ICsxNTI5
LDE2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJl
YWQgV2lkdGgpYCwKICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRo
XSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAod2lkdGgubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1
cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8
JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAogICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFs
dWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5s
b2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtMTU0MCw4ICsxNTYxLDEwIEBAIGNsYXNzIElu
dHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgs
IGVsZW1lbnRzXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0
dXJlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxv
YWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoZWxlbWVudHMubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5s
YXllckNvdW50KSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC0xNTQ5LDggKzE1
NzIsMTAgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291
bnQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAod2lkdGgubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50cy5sb2FkVmFsdWUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKQEAgLTE1NzMsOCArMTU5OCwxMCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAod2lkdGgubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQubG9hZFZhbHVl
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCkBAIC0xNTgyLDggKzE2MDksMTAgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXguaGVpZ2h0KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0LmxvYWRWYWx1
ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KApAQCAtMTYwNiw5ICsxNjM1LDEyIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVl
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCks
IDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxl
bWVudHMubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC0xNjE2LDkgKzE2NDgsMTIgQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwg
aGVpZ2h0LCBlbGVtZW50c10pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0Lmxv
YWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChlbGVtZW50cy5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTE2NDEsOSAr
MTY3NiwxMiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0
aCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
aGVpZ2h0LmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXB0aC5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmRlcHRoKSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC0xNjUxLDkgKzE2
ODksMTIgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgp
LCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhl
aWdodC5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoZGVwdGgubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5kZXB0aCksIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtMTg3MCw5ICsxOTEx
LDEyIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1p
cElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhp
c3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGhl
aWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJ
RCkpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxv
YWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0LmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVp
Z2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1i
ZXJPZkxldmVscy5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1i
ZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCks
IDEpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KApAQCAtMjA3MSwxMCArMjExNSwxNCBAQCBjbGFzcyBJbnRyaW5z
aWNzIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRW
YWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENv
dW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJb
R2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0
ZXh0dXJlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGhBdExldmVsKG1pcElEKSksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
d2lkdGgubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQubG9hZFZhbHVlKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGVsZW1lbnRzLmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
ZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAg
LTIxNjksOSArMjIxNywxMiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhhdmUgNiBm
YWNlcyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENv
dW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJb
R2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0
ZXh0dXJlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGhBdExldmVsKG1pcElEKSksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZM
ZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5sb2FkVmFsdWUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGhlaWdodC5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVl
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
QEAgLTIxNzksOCArMjIzMCwxMCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoLmxv
YWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KApAQCAtMjE4OCw4ICsyMjQxLDEwIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmhl
aWdodCksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAod2lkdGgubG9hZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaGVpZ2h0LmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0
KSwgMSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC0yMjExLDkgKzIyNjYsMTIgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVs
ZW1lbnRzXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAx
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRo
LmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmxvYWRWYWx1ZSgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5sYXllckNvdW50KSwgMSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC0yMjIxLDkgKzIyNzks
MTIgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5oZWlnaHQpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHdpZHRoLmxvYWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodC5sb2FkVmFsdWUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmxv
YWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCBiZjlmNTVlMzE1Mzc4NGI2
ZDAwNzRiZTFiOWE5MTQ4YmEyZTQyNDllLi4wZGIyMjAyNGM4ZmM1NDI3MDBiOWMyMjhhYjZiNDk2
OTk5NzM2YjI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTY2Mjgs
NiArNjYyOCw5OSBAQCB0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgewogICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW3J3VGV4
dHVyZURlcHRoMkRBcnJheV0pLCAyKTsKIH0KIAordGVzdHMudGV4dHVyZURpbWVuc2lvbnNOdWxs
ID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB0ZXN0
IGJvb2wgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgMCwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMihUZXh0dXJlMURBcnJheTxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCBudWxs
LCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
ICAgIHRlc3QgYm9vbCBmb28zKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCBudWxsLCBudWxsLCBudWxsKTsKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb280KFRleHR1
cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsIG51bGwsIG51bGwsIG51bGwsIG51bGwpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzUoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsIG51bGwsIG51
bGwsIG51bGwsIG51bGwpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg
ICAgICAgdGVzdCBib29sIGZvbzYoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vNyhS
V1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdGhyZWFkIGZsb2F0KiBw
dHIgPSBudWxsOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCBwdHIpOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzgo
UldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdGhyZWFkIHVp
bnQqIHB0ciA9IG51bGw7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIHB0ciwg
cHRyKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHRlc3Qg
Ym9vbCBmb285KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB0aHJl
YWQgdWludCogcHRyID0gbnVsbDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
cHRyLCBwdHIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
dGVzdCBib29sIGZvbzEwKFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHRocmVhZCB1aW50KiBwdHIgPSBudWxsOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCBwdHIsIHB0ciwgcHRyKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28xMShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdGhyZWFkIHVpbnQqIHB0ciA9IG51bGw7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIHB0ciwgcHRyLCBwdHIpOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzEyKFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
IG51bGwsIG51bGwsIG51bGwpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KyAgICAgICAgdGVzdCBib29sIGZvbzEzKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgbnVsbCwgbnVsbCwg
bnVsbCwgbnVsbCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICB0ZXN0IGJvb2wgZm9vMTQoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCBudWxsLCBudWxsLCBudWxsKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28x
NShSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB0aHJlYWQg
dWludCogcHRyID0gbnVsbDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgcHRy
LCBwdHIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgdGVz
dCBib29sIGZvbzE2KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdGhyZWFkIHVpbnQqIHB0ciA9IG51bGw7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIHB0ciwgcHRyLCBwdHIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRl
eHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVy
ZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndU
ZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVw
dGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRl
VGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFEXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFEQXJy
YXldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFt0ZXh0dXJlMkRdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMkRBcnJheV0pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1
cmUzRF0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmVDdWJlXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlMURdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFtyd1Rl
eHR1cmUxREFycmF5XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbcndUZXh0dXJlMkRdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbcndUZXh0dXJlMkRBcnJh
eV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMSIsIFtyd1RleHR1cmUzRF0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlRGVwdGgyRF0pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndU
ZXh0dXJlRGVwdGgyRF0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNiIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgdHJ1ZSk7Cit9
CisKIHRlc3RzLnRleHR1cmVMb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAogICAgICAgICB0ZXN0IGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJl
LCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXApIHsK
</data>
<flag name="review"
          id="367969"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>