<?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>167398</bug_id>
          
          <creation_ts>2017-01-24 16:48:06 -0800</creation_ts>
          <short_desc>Modernize editable-text component and add tests</short_desc>
          <delta_ts>2017-01-25 20:01:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Perf Dashboard</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1269623</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-24 16:48:06 -0800</bug_when>
    <thetext>This component is used throughout the pref dashboard.
Modernize it with some tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269634</commentid>
    <comment_count>1</comment_count>
      <attachid>299656</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-24 17:21:35 -0800</bug_when>
    <thetext>Created attachment 299656
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270102</commentid>
    <comment_count>2</comment_count>
      <attachid>299656</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-25 19:12:31 -0800</bug_when>
    <thetext>Comment on attachment 299656
Cleanup

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270119</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-25 20:01:58 -0800</bug_when>
    <thetext>Committed r211196: &lt;http://trac.webkit.org/changeset/211196&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299656</attachid>
            <date>2017-01-24 17:21:35 -0800</date>
            <delta_ts>2017-01-25 19:12:31 -0800</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-167398-20170124171935.patch</filename>
            <type>text/plain</type>
            <size>22307</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjExMTIyKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM3IEBACisyMDE3LTAxLTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE1vZGVybml6ZSBlZGl0YWJsZS10ZXh0IGNvbXBvbmVudCBhbmQgYWRkIHRlc3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjczOTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2Rlcm5p
emVkIEVkaXRhYmxlVGV4dCBjb21wb25lbnQgdG8gdXNlIHRoZSBhY3Rpb24gZmVhdHVyZSBhZGRl
ZCBpbiByMjEwOTM4LgorCisgICAgICAgICogYnJvd3Nlci10ZXN0cy9lZGl0YWJsZS10ZXh0LXRl
c3RzLmpzOiBBZGRlZC4gQWRkZWQgdGVzdHMgZm9yIEVkaXRhYmxlVGV4dCBjb21wb25lbnQuCisg
ICAgICAgICgud2FpdFRvUmVuZGVyKToKKyAgICAgICAgKiBicm93c2VyLXRlc3RzL2luZGV4Lmh0
bWw6CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qczoKKyAgICAgICAgKENv
bXBvbmVudEJhc2UucHJvdG90eXBlLmRpc3BhdGNoQWN0aW9uKTogUmV0dXJuIHRoZSByZXN1bHQg
ZnJvbSB0aGUgY2FsbGJhY2suCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvZWRpdGFi
bGUtdGV4dC5qczoKKyAgICAgICAgKEVkaXRhYmxlVGV4dCk6IFJlbW92ZWQgYSBidW5jaCBvZiBp
bnN0YW5jZSB2YXJpYWJsZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKEVk
aXRhYmxlVGV4dC5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6IEFkZGVkLiBBZGQg
ZXZlbnQgbGlzdGVuZXJzIG9uIHRoZSBFZGl0L1NhdmUgYnV0dG9uIGFuZCB0aGUgaG9zdC4KKyAg
ICAgICAgKEVkaXRhYmxlVGV4dC5wcm90b3R5cGUuZWRpdGVkVGV4dCk6IFJldHVybiB0aGUgdGV4
dCBmaWVsZCdzIHZhbHVlIGRpcmVjdGx5LgorICAgICAgICAoRWRpdGFibGVUZXh0LnByb3RvdHlw
ZS50ZXh0KTogQWRkZWQuCisgICAgICAgIChFZGl0YWJsZVRleHQucHJvdG90eXBlLnNldFRleHQp
OiBDYWxsIGVucXVldWVUb1JlbmRlciBhdXRvbWF0aWNhbGx5IGluc3RlYWQgb2YgcmVseWluZyBv
biB0aGUgcGFyZW50IGNvbXBvbmVudAorICAgICAgICB0byBkbyBzbyBpbiBfc3RhcnRlZEVkaXRp
bmdDYWxsYmFjaywgd2hpY2ggaGFzIGJlZW4gcmVtb3ZlZC4KKyAgICAgICAgKEVkaXRhYmxlVGV4
dC5wcm90b3R5cGUucmVuZGVyKTogTW9kZXJuaXplZCB0aGUgY29kZS4KKyAgICAgICAgKEVkaXRh
YmxlVGV4dC5wcm90b3R5cGUuX2RpZENsaWNrKTogTm8gbG9uZ2VyIHByZXZlbnRzIHRoZSBkZWZh
dWx0IGFjdGlvbiBtYW51YWxseSBzaW5jZSB0aGF0J3MgYXV0b21hdGljYWxseSBkb25lCisgICAg
ICAgIGluIGNyZWF0ZUV2ZW50SGFuZGxlci4gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSB1cGRh
dGUgYWN0aW9uIGlzIG5vdCBoYW5kbGVkLgorICAgICAgICAoRWRpdGFibGVUZXh0LnByb3RvdHlw
ZS5fZW5kRWRpdGluZ01vZGUpOiBSZW5hbWVkIGZyb20gX2RpZFVwZGF0ZS4KKyAgICAgICAgKEVk
aXRhYmxlVGV4dC5odG1sVGVtcGxhdGUpOiBBZGRlZCBpZHMgb24gdmFyaW91cyBlbGVtZW50cyBp
biB0aGUgc2hhZG93IHRyZWUuCisgICAgICAgIChFZGl0YWJsZVRleHQuY3NzVGVtcGxhdGUpOiBV
cGRhdGVkIHRoZSBDU1Mgc2VsZWN0b3JzIHBlciBhYm92ZSBjaGFuZ2UuCisgICAgICAgICogcHVi
bGljL3YzL21haW4uanM6CisgICAgICAgIChtYWluKTogRml4ZWQgYSB0eXBvLgorICAgICAgICAq
IHB1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanM6CisgICAgICAgIChBbmFseXNp
c1Rhc2tQYWdlKTogVXNlIHRoZSBhY3Rpb24gbGlzdGVuZXIgaW5zdGVhZCBvZiBtYW51YWxseSBz
ZXR0aW5nIGNhbGxiYWNrcy4KKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9j
cmVhdGVUZXN0R3JvdXBMaXN0SXRlbSk6IERpdHRvLgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFn
ZS5wcm90b3R5cGUuX2RpZFN0YXJ0RWRpdGluZ1Rhc2tOYW1lKTogRGVsZXRlZC4KKwogMjAxNy0w
MS0yMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBm
aXggYWZ0ZXIgcjIxMDc4My4gRGlkbid0IG1lYW4gdG8gcmVxdWlyZSBjdXN0b20gZWxlbWVudHMg
QVBJLgpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvZWRpdGFi
bGUtdGV4dC10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
YnJvd3Nlci10ZXN0cy9lZGl0YWJsZS10ZXh0LXRlc3RzLmpzCShub25leGlzdGVudCkKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2VkaXRhYmxlLXRleHQtdGVzdHMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMDAgQEAKKworZGVzY3JpYmUoJ0VkaXRhYmxl
VGV4dCcsICgpID0+IHsKKyAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0cnVtZW50YXRpb24uanMn
LCAnY29tcG9uZW50cy9iYXNlLmpzJywgJ2NvbXBvbmVudHMvZWRpdGFibGUtdGV4dC5qcyddOwor
CisgICAgZnVuY3Rpb24gd2FpdFRvUmVuZGVyKGNvbnRleHQpCisgICAgeworICAgICAgICBpZiAo
IWNvbnRleHQuX2R1bW15Q29tcG9uZW50KSB7CisgICAgICAgICAgICBjb25zdCBDb21wb25lbnRC
YXNlID0gY29udGV4dC5zeW1ib2xzLkNvbXBvbmVudEJhc2U7CisgICAgICAgICAgICBjb250ZXh0
Ll9kdW1teUNvbXBvbmVudCA9IGNsYXNzIFNvbWVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRC
YXNlIHsKKyAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcihyZXNvbHZlKQorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5fcmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHJlbmRlcigpIHsgc2V0VGltZW91dCh0aGlzLl9yZXNvbHZlLCAwKTsgfQorICAgICAgICAg
ICAgfQorICAgICAgICAgICAgQ29tcG9uZW50QmFzZS5kZWZpbmVFbGVtZW50KCdkdW1teS1jb21w
b25lbnQnLCBjb250ZXh0Ll9kdW1teUNvbXBvbmVudCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgICAgICBjb25zdCBpbnN0YW5j
ZSA9IG5ldyBjb250ZXh0Ll9kdW1teUNvbXBvbmVudChyZXNvbHZlKTsKKyAgICAgICAgICAgIGNv
bnRleHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnN0YW5jZS5lbGVtZW50KCkpOworICAg
ICAgICAgICAgaW5zdGFuY2UuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGl0KCdzaG93IHRoZSBzZXQgdGV4dCcsICgpID0+IHsKKyAgICAgICAgY29uc3QgY29u
dGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgbGV0IGVkaXRhYmxlVGV4dDsK
KyAgICAgICAgcmV0dXJuIGNvbnRleHQuaW1wb3J0U2NyaXB0cyhzY3JpcHRzLCAnRWRpdGFibGVU
ZXh0JywgJ0NvbXBvbmVudEJhc2UnKS50aGVuKChzeW1ib2xzKSA9PiB7CisgICAgICAgICAgICBj
b25zdCBbRWRpdGFibGVUZXh0XSA9IHN5bWJvbHM7CisgICAgICAgICAgICBlZGl0YWJsZVRleHQg
PSBuZXcgRWRpdGFibGVUZXh0OworICAgICAgICAgICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGVkaXRhYmxlVGV4dC5lbGVtZW50KCkpOworICAgICAgICAgICAgZWRpdGFibGVU
ZXh0LmVucXVldWVUb1JlbmRlcigpOworICAgICAgICAgICAgcmV0dXJuIHdhaXRUb1JlbmRlcihj
b250ZXh0KTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBleHBlY3QoZWRp
dGFibGVUZXh0LmNvbnRlbnQoKS50ZXh0Q29udGVudCkudG9Ob3RJbmNsdWRlKCdoZWxsbycpOwor
ICAgICAgICAgICAgZWRpdGFibGVUZXh0LnNldFRleHQoJ2hlbGxvJyk7CisgICAgICAgICAgICBl
ZGl0YWJsZVRleHQuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdFRv
UmVuZGVyKGNvbnRleHQpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGV4
cGVjdChlZGl0YWJsZVRleHQuY29udGVudCgpLnRleHRDb250ZW50KS50b0luY2x1ZGUoJ2hlbGxv
Jyk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoJ2dvIHRvIHRoZSBlZGl0aW5nIG1v
ZGUnLCAoKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0
KCk7CisgICAgICAgIGxldCBlZGl0YWJsZVRleHQ7CisgICAgICAgIHJldHVybiBjb250ZXh0Lmlt
cG9ydFNjcmlwdHMoc2NyaXB0cywgJ0VkaXRhYmxlVGV4dCcsICdDb21wb25lbnRCYXNlJykudGhl
bigoc3ltYm9scykgPT4geworICAgICAgICAgICAgY29uc3QgW0VkaXRhYmxlVGV4dF0gPSBzeW1i
b2xzOworICAgICAgICAgICAgZWRpdGFibGVUZXh0ID0gbmV3IEVkaXRhYmxlVGV4dDsKKyAgICAg
ICAgICAgIGNvbnRleHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlZGl0YWJsZVRleHQuZWxl
bWVudCgpKTsKKyAgICAgICAgICAgIGVkaXRhYmxlVGV4dC5zZXRUZXh0KCdoZWxsbycpOworICAg
ICAgICAgICAgZWRpdGFibGVUZXh0LmVucXVldWVUb1JlbmRlcigpOworICAgICAgICAgICAgcmV0
dXJuIHdhaXRUb1JlbmRlcihjb250ZXh0KTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICBleHBlY3QoZWRpdGFibGVUZXh0LmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdpbnB1
dCcpLm9mZnNldEhlaWdodCkudG9CZSgwKTsKKyAgICAgICAgICAgIGV4cGVjdChlZGl0YWJsZVRl
eHQuY29udGVudCgpLnRleHRDb250ZW50KS50b0luY2x1ZGUoJ2hlbGxvJyk7CisgICAgICAgICAg
ICBleHBlY3QoZWRpdGFibGVUZXh0LmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdhJykudGV4dENv
bnRlbnQpLnRvSW5jbHVkZSgnRWRpdCcpOworICAgICAgICAgICAgZXhwZWN0KGVkaXRhYmxlVGV4
dC5jb250ZW50KCkucXVlcnlTZWxlY3RvcignYScpLnRleHRDb250ZW50KS50b05vdEluY2x1ZGUo
J1NhdmUnKTsKKyAgICAgICAgICAgIGVkaXRhYmxlVGV4dC5jb250ZW50KCkucXVlcnlTZWxlY3Rv
cignYScpLmNsaWNrKCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdFRvUmVuZGVyKGNvbnRleHQp
OworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGV4cGVjdChlZGl0YWJsZVRl
eHQuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jykub2Zmc2V0SGVpZ2h0KS50b05vdEJl
KDApOworICAgICAgICAgICAgZXhwZWN0KGVkaXRhYmxlVGV4dC5jb250ZW50KCkucXVlcnlTZWxl
Y3RvcignYScpLnRleHRDb250ZW50KS50b05vdEluY2x1ZGUoJ0VkaXQnKTsKKyAgICAgICAgICAg
IGV4cGVjdChlZGl0YWJsZVRleHQuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2EnKS50ZXh0Q29u
dGVudCkudG9JbmNsdWRlKCdTYXZlJyk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQo
J3Nob3VsZCBkaXNwYXRjaCAidXBkYXRlIiBhY3Rpb24nLCAoKSA9PiB7CisgICAgICAgIGNvbnN0
IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CisgICAgICAgIGxldCBlZGl0YWJsZVRl
eHQ7CisgICAgICAgIGxldCB1cGRhdGVDb3VudCA9IDA7CisgICAgICAgIHJldHVybiBjb250ZXh0
LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0VkaXRhYmxlVGV4dCcsICdDb21wb25lbnRCYXNlJyku
dGhlbigoc3ltYm9scykgPT4geworICAgICAgICAgICAgY29uc3QgW0VkaXRhYmxlVGV4dF0gPSBz
eW1ib2xzOworICAgICAgICAgICAgZWRpdGFibGVUZXh0ID0gbmV3IEVkaXRhYmxlVGV4dDsKKyAg
ICAgICAgICAgIGNvbnRleHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlZGl0YWJsZVRleHQu
ZWxlbWVudCgpKTsKKyAgICAgICAgICAgIGVkaXRhYmxlVGV4dC5zZXRUZXh0KCdoZWxsbycpOwor
ICAgICAgICAgICAgZWRpdGFibGVUZXh0LmVucXVldWVUb1JlbmRlcigpOworICAgICAgICAgICAg
ZWRpdGFibGVUZXh0Lmxpc3RlblRvQWN0aW9uKCd1cGRhdGUnLCAoKSA9PiB1cGRhdGVDb3VudCsr
KTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIH0p
LnRoZW4oKCkgPT4geworICAgICAgICAgICAgZWRpdGFibGVUZXh0LmNvbnRlbnQoKS5xdWVyeVNl
bGVjdG9yKCdhJykuY2xpY2soKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0VG9SZW5kZXIoY29u
dGV4dCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgY29uc3QgaW5wdXQg
PSBlZGl0YWJsZVRleHQuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7CisgICAgICAg
ICAgICBleHBlY3QoaW5wdXQub2Zmc2V0SGVpZ2h0KS50b05vdEJlKDApOworICAgICAgICAgICAg
ZXhwZWN0KGVkaXRhYmxlVGV4dC5lZGl0ZWRUZXh0KCkpLnRvQmUoJ2hlbGxvJyk7CisgICAgICAg
ICAgICBpbnB1dC52YWx1ZSA9ICd3b3JsZCc7CisgICAgICAgICAgICBleHBlY3QoZWRpdGFibGVU
ZXh0LmVkaXRlZFRleHQoKSkudG9CZSgnd29ybGQnKTsKKyAgICAgICAgICAgIGV4cGVjdCh1cGRh
dGVDb3VudCkudG9CZSgwKTsKKyAgICAgICAgICAgIGVkaXRhYmxlVGV4dC5jb250ZW50KCkucXVl
cnlTZWxlY3RvcignYScpLmNsaWNrKCk7CisgICAgICAgICAgICBleHBlY3QodXBkYXRlQ291bnQp
LnRvQmUoMSk7CisgICAgICAgICAgICBleHBlY3QoZWRpdGFibGVUZXh0LmVkaXRlZFRleHQoKSku
dG9CZSgnd29ybGQnKTsKKyAgICAgICAgICAgIGV4cGVjdChlZGl0YWJsZVRleHQudGV4dCgpKS50
b0JlKCdoZWxsbycpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgZW5k
IHRoZSBlZGl0aW5nIG1vZGUgd2hlbiBpdCBsb3NlcyB0aGUgZm9jdXMnLCAoKSA9PiB7CisgICAg
ICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CisgICAgICAgIGxldCBl
ZGl0YWJsZVRleHQ7CisgICAgICAgIGxldCB1cGRhdGVDb3VudCA9IDA7CisgICAgICAgIHJldHVy
biBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0VkaXRhYmxlVGV4dCcsICdDb21wb25l
bnRCYXNlJykudGhlbigoc3ltYm9scykgPT4geworICAgICAgICAgICAgY29uc3QgW0VkaXRhYmxl
VGV4dF0gPSBzeW1ib2xzOworICAgICAgICAgICAgZWRpdGFibGVUZXh0ID0gbmV3IEVkaXRhYmxl
VGV4dDsKKyAgICAgICAgICAgIGNvbnRleHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlZGl0
YWJsZVRleHQuZWxlbWVudCgpKTsKKyAgICAgICAgICAgIGVkaXRhYmxlVGV4dC5zZXRUZXh0KCdo
ZWxsbycpOworICAgICAgICAgICAgZWRpdGFibGVUZXh0LmVucXVldWVUb1JlbmRlcigpOworICAg
ICAgICAgICAgZWRpdGFibGVUZXh0Lmxpc3RlblRvQWN0aW9uKCd1cGRhdGUnLCAoKSA9PiB1cGRh
dGVDb3VudCsrKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0VG9SZW5kZXIoY29udGV4dCk7Cisg
ICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgZWRpdGFibGVUZXh0LmNvbnRlbnQo
KS5xdWVyeVNlbGVjdG9yKCdhJykuY2xpY2soKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0VG9S
ZW5kZXIoY29udGV4dCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgY29u
c3QgaW5wdXQgPSBlZGl0YWJsZVRleHQuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7
CisgICAgICAgICAgICBleHBlY3QoaW5wdXQub2Zmc2V0SGVpZ2h0KS50b05vdEJlKDApOworICAg
ICAgICAgICAgZXhwZWN0KGVkaXRhYmxlVGV4dC5lZGl0ZWRUZXh0KCkpLnRvQmUoJ2hlbGxvJyk7
CisgICAgICAgICAgICBpbnB1dC52YWx1ZSA9ICd3b3JsZCc7CisgICAgICAgICAgICBleHBlY3Qo
dXBkYXRlQ291bnQpLnRvQmUoMCk7CisKKyAgICAgICAgICAgIGNvbnN0IGZvY3VzYWJsZUVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIGZvY3VzYWJs
ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsIDApOworICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChmb2N1c2FibGVFbGVtZW50KTsKKyAgICAgICAgICAgIGZvY3Vz
YWJsZUVsZW1lbnQuZm9jdXMoKTsKKworICAgICAgICAgICAgcmV0dXJuIHdhaXRUb1JlbmRlcihj
b250ZXh0KTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBleHBlY3QoZWRp
dGFibGVUZXh0LmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLm9mZnNldEhlaWdodCku
dG9CZSgwKTsKKyAgICAgICAgICAgIGV4cGVjdChlZGl0YWJsZVRleHQudGV4dCgpKS50b0JlKCdo
ZWxsbycpOworICAgICAgICAgICAgZXhwZWN0KHVwZGF0ZUNvdW50KS50b0JlKDApOworICAgICAg
ICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgbm90IGVuZCB0aGUgZWRpdGluZyBtb2Rl
IHdoZW4gdGhlICJTYXZlIiBidXR0b24gaXMgZm9jdXNlZCcsICgpID0+IHsKKyAgICAgICAgY29u
c3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgbGV0IGVkaXRhYmxl
VGV4dDsKKyAgICAgICAgbGV0IHVwZGF0ZUNvdW50ID0gMDsKKyAgICAgICAgcmV0dXJuIGNvbnRl
eHQuaW1wb3J0U2NyaXB0cyhzY3JpcHRzLCAnRWRpdGFibGVUZXh0JywgJ0NvbXBvbmVudEJhc2Un
KS50aGVuKChzeW1ib2xzKSA9PiB7CisgICAgICAgICAgICBjb25zdCBbRWRpdGFibGVUZXh0XSA9
IHN5bWJvbHM7CisgICAgICAgICAgICBlZGl0YWJsZVRleHQgPSBuZXcgRWRpdGFibGVUZXh0Owor
ICAgICAgICAgICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVkaXRhYmxlVGV4
dC5lbGVtZW50KCkpOworICAgICAgICAgICAgZWRpdGFibGVUZXh0LnNldFRleHQoJ2hlbGxvJyk7
CisgICAgICAgICAgICBlZGl0YWJsZVRleHQuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgICAgICAg
ICBlZGl0YWJsZVRleHQubGlzdGVuVG9BY3Rpb24oJ3VwZGF0ZScsICgpID0+IHVwZGF0ZUNvdW50
KyspOworICAgICAgICAgICAgcmV0dXJuIHdhaXRUb1JlbmRlcihjb250ZXh0KTsKKyAgICAgICAg
fSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBlZGl0YWJsZVRleHQuY29udGVudCgpLnF1ZXJ5
U2VsZWN0b3IoJ2EnKS5jbGljaygpOworICAgICAgICAgICAgcmV0dXJuIHdhaXRUb1JlbmRlcihj
b250ZXh0KTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBpbnB1
dCA9IGVkaXRhYmxlVGV4dC5jb250ZW50KCkucXVlcnlTZWxlY3RvcignaW5wdXQnKTsKKyAgICAg
ICAgICAgIGV4cGVjdChpbnB1dC5vZmZzZXRIZWlnaHQpLnRvTm90QmUoMCk7CisgICAgICAgICAg
ICBleHBlY3QoZWRpdGFibGVUZXh0LmVkaXRlZFRleHQoKSkudG9CZSgnaGVsbG8nKTsKKyAgICAg
ICAgICAgIGlucHV0LnZhbHVlID0gJ3dvcmxkJzsKKyAgICAgICAgICAgIGV4cGVjdCh1cGRhdGVD
b3VudCkudG9CZSgwKTsKKyAgICAgICAgICAgIGVkaXRhYmxlVGV4dC5jb250ZW50KCkucXVlcnlT
ZWxlY3RvcignYScpLmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdFRvUmVuZGVyKGNv
bnRleHQpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGV4cGVjdChlZGl0
YWJsZVRleHQuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jykub2Zmc2V0SGVpZ2h0KS50
b05vdEJlKDApOworICAgICAgICAgICAgZWRpdGFibGVUZXh0LmNvbnRlbnQoKS5xdWVyeVNlbGVj
dG9yKCdhJykuY2xpY2soKTsKKyAgICAgICAgICAgIGV4cGVjdChlZGl0YWJsZVRleHQuZWRpdGVk
VGV4dCgpKS50b0JlKCd3b3JsZCcpOworICAgICAgICAgICAgZXhwZWN0KHVwZGF0ZUNvdW50KS50
b0JlKDEpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgZGlwc2F0Y2gg
InVwZGF0ZSIgYWN0aW9uIHdoZW4gdGhlICJTYXZlIiBidXR0b24gaXMgY2xpY2tlZCBpbiBTYWZh
cmknLCAoKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0
KCk7CisgICAgICAgIGxldCBlZGl0YWJsZVRleHQ7CisgICAgICAgIGxldCB1cGRhdGVDb3VudCA9
IDA7CisgICAgICAgIHJldHVybiBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0VkaXRh
YmxlVGV4dCcsICdDb21wb25lbnRCYXNlJykudGhlbigoc3ltYm9scykgPT4geworICAgICAgICAg
ICAgY29uc3QgW0VkaXRhYmxlVGV4dF0gPSBzeW1ib2xzOworICAgICAgICAgICAgZWRpdGFibGVU
ZXh0ID0gbmV3IEVkaXRhYmxlVGV4dDsKKyAgICAgICAgICAgIGNvbnRleHQuZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChlZGl0YWJsZVRleHQuZWxlbWVudCgpKTsKKyAgICAgICAgICAgIGVkaXRh
YmxlVGV4dC5zZXRUZXh0KCdoZWxsbycpOworICAgICAgICAgICAgZWRpdGFibGVUZXh0LmVucXVl
dWVUb1JlbmRlcigpOworICAgICAgICAgICAgZWRpdGFibGVUZXh0Lmxpc3RlblRvQWN0aW9uKCd1
cGRhdGUnLCAoKSA9PiB1cGRhdGVDb3VudCsrKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0VG9S
ZW5kZXIoY29udGV4dCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgZWRp
dGFibGVUZXh0LmNvbnRlbnQoJ2FjdGlvbi1idXR0b24nKS5jbGljaygpOworICAgICAgICAgICAg
cmV0dXJuIHdhaXRUb1JlbmRlcihjb250ZXh0KTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCBpbnB1dCA9IGVkaXRhYmxlVGV4dC5jb250ZW50KCd0ZXh0LWZpZWxk
Jyk7CisgICAgICAgICAgICBleHBlY3QoaW5wdXQub2Zmc2V0SGVpZ2h0KS50b05vdEJlKDApOwor
ICAgICAgICAgICAgZXhwZWN0KGVkaXRhYmxlVGV4dC5lZGl0ZWRUZXh0KCkpLnRvQmUoJ2hlbGxv
Jyk7CisgICAgICAgICAgICBpbnB1dC52YWx1ZSA9ICd3b3JsZCc7CisgICAgICAgICAgICBleHBl
Y3QodXBkYXRlQ291bnQpLnRvQmUoMCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdFRvUmVuZGVy
KGNvbnRleHQpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGVkaXRhYmxl
VGV4dC5jb250ZW50KCdhY3Rpb24tYnV0dG9uJykuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVu
dCgnbW91c2Vkb3duJykpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDApKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgICBlZGl0YWJsZVRleHQuY29udGVudCgndGV4dC1maWVsZCcpLmJsdXIoKTsKKyAg
ICAgICAgICAgIGVkaXRhYmxlVGV4dC5jb250ZW50KCdhY3Rpb24tYnV0dG9uJykuZGlzcGF0Y2hF
dmVudChuZXcgTW91c2VFdmVudCgnbW91c2V1cCcpKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0
VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAg
ZXhwZWN0KGVkaXRhYmxlVGV4dC5jb250ZW50KCd0ZXh0LWZpZWxkJykub2Zmc2V0SGVpZ2h0KS50
b0JlKDApOworICAgICAgICAgICAgZXhwZWN0KHVwZGF0ZUNvdW50KS50b0JlKDEpOworICAgICAg
ICAgICAgZXhwZWN0KGVkaXRhYmxlVGV4dC5lZGl0ZWRUZXh0KCkpLnRvQmUoJ3dvcmxkJyk7Cisg
ICAgICAgIH0pOworICAgIH0pOworCit9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9icm93c2VyLXRlc3RzL2luZGV4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvaW5kZXguaHRtbAkocmV2aXNpb24gMjExMTIxKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvaW5kZXguaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTUsNiArMTUsNyBAQCBtb2NoYS5zZXR1cCgnYmRkJyk7CiA8ZGl2IGlkPSJt
b2NoYSI+PC9kaXY+CiA8c2NyaXB0IHNyYz0iY29tcG9uZW50LWJhc2UtdGVzdHMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9ImNsb3NlLWJ1dHRvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iZWRpdGFibGUtdGV4dC10ZXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCiBh
ZnRlckVhY2goKCkgPT4gewpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tYWluLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbWFpbi5qcwkocmV2aXNpb24gMjExMTIxKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tYWluLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDEyICs3LDEyIEBAIGNsYXNz
IFNwaW5uaW5nUGFnZSBleHRlbmRzIFBhZ2UgewogfQogCiBmdW5jdGlvbiBtYWluKCkgewotICAg
IGNvbnN0IHJlcXVyaWVkRmVhdHVyZXMgPSB7CisgICAgY29uc3QgcmVxdWlyZWRGZWF0dXJlcyA9
IHsKICAgICAgICAgJ1NoYWRvdyBET00gQVBJJzogKCkgPT4geyByZXR1cm4gISFFbGVtZW50LnBy
b3RvdHlwZS5hdHRhY2hTaGFkb3c7IH0sCiAgICAgfTsKIAotICAgIGZvciAobGV0IG5hbWUgaW4g
cmVxdXJpZWRGZWF0dXJlcykgewotICAgICAgICBpZiAoIXJlcXVyaWVkRmVhdHVyZXNbbmFtZV0o
KSkKKyAgICBmb3IgKGxldCBuYW1lIGluIHJlcXVpcmVkRmVhdHVyZXMpIHsKKyAgICAgICAgaWYg
KCFyZXF1aXJlZEZlYXR1cmVzW25hbWVdKCkpCiAgICAgICAgICAgICByZXR1cm4gYWxlcnQoYFlv
dXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0ICR7bmFtZX0uIFRyeSB1c2luZyB0aGUgbGF0ZXN0
IFNhZmFyaSBvciBDaHJvbWUuYCk7CiAgICAgfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qcwkocmV2aXNpb24g
MjExMTIxKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L2Jhc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQ29tcG9uZW50
QmFzZSB7CiAgICAgewogICAgICAgICBjb25zdCBjYWxsYmFjayA9IHRoaXMuX2FjdGlvbkNhbGxi
YWNrcy5nZXQoYWN0aW9uTmFtZSk7CiAgICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAg
IGNhbGxiYWNrLmFwcGx5KHRoaXMsIGFyZ3MpOworICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
LmFwcGx5KHRoaXMsIGFyZ3MpOwogICAgIH0KIAogICAgIGxpc3RlblRvQWN0aW9uKGFjdGlvbk5h
bWUsIGNhbGxiYWNrKQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL2VkaXRhYmxlLXRleHQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2VkaXRhYmxlLXRleHQuanMJKHJldmlzaW9u
IDIxMTEyMSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy9lZGl0YWJsZS10ZXh0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC02LDcwICs2LDcwIEBAIGNsYXNz
IEVkaXRhYmxlVGV4dCBleHRlbmRzIENvbXBvbmVudEJhc2UKICAgICAgICAgc3VwZXIoJ2VkaXRh
YmxlLXRleHQnKTsKICAgICAgICAgdGhpcy5fdGV4dCA9IHRleHQ7CiAgICAgICAgIHRoaXMuX2lu
RWRpdGluZ01vZGUgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fc3RhcnRlZEVkaXRpbmdDYWxsYmFj
ayA9IG51bGw7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUNhbGxiYWNrID0gbnVsbDsKICAgICAgICAg
dGhpcy5fdXBkYXRpbmdQcm9taXNlID0gbnVsbDsKICAgICAgICAgdGhpcy5fYWN0aW9uTGluayA9
IHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5lZGl0YWJsZS10ZXh0LWFjdGlvbiBhJyk7
Ci0gICAgICAgIHRoaXMuX2FjdGlvbkxpbmsub25jbGljayA9IHRoaXMuX2RpZENsaWNrLmJpbmQo
dGhpcyk7Ci0gICAgICAgIHRoaXMuX2FjdGlvbkxpbmsub25tb3VzZWRvd24gPSB0aGlzLl9kaWRD
bGljay5iaW5kKHRoaXMpOwotICAgICAgICB0aGlzLl90ZXh0RmllbGQgPSB0aGlzLmNvbnRlbnQo
KS5xdWVyeVNlbGVjdG9yKCcuZWRpdGFibGUtdGV4dC1maWVsZCcpOwotICAgICAgICB0aGlzLl90
ZXh0RmllbGQub25ibHVyID0gdGhpcy5fZGlkQmx1ci5iaW5kKHRoaXMpOwogICAgICAgICB0aGlz
Ll9sYWJlbCA9IHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5lZGl0YWJsZS10ZXh0LWxh
YmVsJyk7CiAgICAgfQogCi0gICAgZWRpdGVkVGV4dCgpIHsgcmV0dXJuIHRoaXMuX3RleHRGaWVs
ZC52YWx1ZTsgfQotICAgIHNldFRleHQodGV4dCkgeyB0aGlzLl90ZXh0ID0gdGV4dDsgfQorICAg
IGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQorICAgIHsKKyAgICAgICAgY29uc3QgYnV0dG9uID0g
dGhpcy5jb250ZW50KCdhY3Rpb24tYnV0dG9uJyk7CisgICAgICAgIGJ1dHRvbi5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmNyZWF0ZUV2ZW50SGFuZGxlcigoKSA9PiB0aGlzLl9k
aWRDbGljaygpKSk7CisgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRo
aXMuY3JlYXRlRXZlbnRIYW5kbGVyKCgpID0+IHRoaXMuX2RpZENsaWNrKCkpKTsKKyAgICAgICAg
dGhpcy5lbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsKCkgPT4geworICAgICAgICAg
ICAgaWYgKCF0aGlzLmNvbnRlbnQoKS5hY3RpdmVFbGVtZW50KQorICAgICAgICAgICAgICAgIHRo
aXMuX2VuZEVkaXRpbmdNb2RlKCk7CisgICAgICAgIH0pOworICAgIH0KIAotICAgIHNldFN0YXJ0
ZWRFZGl0aW5nQ2FsbGJhY2soY2FsbGJhY2spIHsgdGhpcy5fc3RhcnRlZEVkaXRpbmdDYWxsYmFj
ayA9IGNhbGxiYWNrOyB9Ci0gICAgc2V0VXBkYXRlQ2FsbGJhY2soY2FsbGJhY2spIHsgdGhpcy5f
dXBkYXRlQ2FsbGJhY2sgPSBjYWxsYmFjazsgfQorICAgIGVkaXRlZFRleHQoKSB7IHJldHVybiB0
aGlzLmNvbnRlbnQoJ3RleHQtZmllbGQnKS52YWx1ZTsgfQorICAgIHRleHQoKSB7IHJldHVybiB0
aGlzLl90ZXh0OyB9CisgICAgc2V0VGV4dCh0ZXh0KQorICAgIHsKKyAgICAgICAgdGhpcy5fdGV4
dCA9IHRleHQ7CisgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgfQogCiAgICAg
cmVuZGVyKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2xhYmVsLnRleHRDb250ZW50ID0gdGhpcy5f
dGV4dDsKLSAgICAgICAgdGhpcy5fYWN0aW9uTGluay50ZXh0Q29udGVudCA9IHRoaXMuX2luRWRp
dGluZ01vZGUgPyAodGhpcy5fdXBkYXRpbmdQcm9taXNlID8gJy4uLicgOiAnU2F2ZScpIDogJ0Vk
aXQnOwotICAgICAgICB0aGlzLl9hY3Rpb25MaW5rLnBhcmVudE5vZGUuc3R5bGUuZGlzcGxheSA9
IHRoaXMuX3RleHQgPyBudWxsIDogJ25vbmUnOworICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMu
Y29udGVudCgnbGFiZWwnKTsKKyAgICAgICAgbGFiZWwudGV4dENvbnRlbnQgPSB0aGlzLl90ZXh0
OworICAgICAgICBsYWJlbC5zdHlsZS5kaXNwbGF5ID0gdGhpcy5faW5FZGl0aW5nTW9kZSA/ICdu
b25lJyA6IG51bGw7CisKKyAgICAgICAgY29uc3QgdGV4dEZpZWxkID0gdGhpcy5jb250ZW50KCd0
ZXh0LWZpZWxkJyk7CisgICAgICAgIHRleHRGaWVsZC5zdHlsZS5kaXNwbGF5ID0gdGhpcy5faW5F
ZGl0aW5nTW9kZSA/IG51bGwgOiAnbm9uZSc7CisgICAgICAgIHRleHRGaWVsZC5yZWFkT25seSA9
ICEhdGhpcy5fdXBkYXRpbmdQcm9taXNlOworCisgICAgICAgIHRoaXMuY29udGVudCgnYWN0aW9u
LWJ1dHRvbicpLnRleHRDb250ZW50ID0gdGhpcy5faW5FZGl0aW5nTW9kZSA/ICh0aGlzLl91cGRh
dGluZ1Byb21pc2UgPyAnLi4uJyA6ICdTYXZlJykgOiAnRWRpdCc7CisgICAgICAgIHRoaXMuY29u
dGVudCgnYWN0aW9uLWJ1dHRvbi1jb250YWluZXInKS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5fdGV4
dCA/IG51bGwgOiAnbm9uZSc7CiAKICAgICAgICAgaWYgKHRoaXMuX2luRWRpdGluZ01vZGUpIHsK
LSAgICAgICAgICAgIHRoaXMuX3RleHRGaWVsZC5yZWFkT25seSA9ICEhdGhpcy5fdXBkYXRpbmdQ
cm9taXNlOwotICAgICAgICAgICAgdGhpcy5fdGV4dEZpZWxkLnN0eWxlLmRpc3BsYXkgPSBudWxs
OwotICAgICAgICAgICAgdGhpcy5fbGFiZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAg
ICAgICAgIGlmICghdGhpcy5fdXBkYXRpbmdQcm9taXNlKQotICAgICAgICAgICAgICAgIHRoaXMu
X3RleHRGaWVsZC5mb2N1cygpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5f
dGV4dEZpZWxkLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICAgICAgICB0aGlzLl9sYWJl
bC5zdHlsZS5kaXNwbGF5ID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0ZXh0RmllbGQuZm9jdXMo
KTsKICAgICAgICAgfQotCi0gICAgICAgIHN1cGVyLnJlbmRlcigpOwogICAgIH0KIAotICAgIF9k
aWRDbGljayhldmVudCkKKyAgICBfZGlkQ2xpY2soKQogICAgIHsKLSAgICAgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0KLSAgICAg
ICAgaWYgKCF0aGlzLl91cGRhdGVDYWxsYmFjayB8fCB0aGlzLl91cGRhdGluZ1Byb21pc2UpCisg
ICAgICAgIGlmICh0aGlzLl91cGRhdGluZ1Byb21pc2UpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgaWYgKHRoaXMuX2luRWRpdGluZ01vZGUpCi0gICAgICAgICAgICB0aGlzLl91cGRh
dGluZ1Byb21pc2UgPSB0aGlzLl91cGRhdGVDYWxsYmFjaygpLnRoZW4odGhpcy5fZGlkVXBkYXRl
LmJpbmQodGhpcykpOwotICAgICAgICBlbHNlIHsKKyAgICAgICAgaWYgKHRoaXMuX2luRWRpdGlu
Z01vZGUpIHsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZGlzcGF0Y2hBY3Rpb24o
J3VwZGF0ZScpOworICAgICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpCisg
ICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRpbmdQcm9taXNlID0gcmVzdWx0LnRoZW4oKCkgPT4g
dGhpcy5fZW5kRWRpdGluZ01vZGUoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgdGhpcy5fZW5kRWRpdGluZ01vZGUoKTsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IHRoaXMuX2luRWRpdGluZ01vZGUgPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5fdGV4dEZpZWxk
LnZhbHVlID0gdGhpcy5fdGV4dDsKLSAgICAgICAgICAgIHRoaXMuX3RleHRGaWVsZC5zdHlsZS53
aWR0aCA9ICh0aGlzLl90ZXh0Lmxlbmd0aCAvIDEuNSkgKyAncmVtJzsKLSAgICAgICAgICAgIGlm
ICh0aGlzLl9zdGFydGVkRWRpdGluZ0NhbGxiYWNrKQotICAgICAgICAgICAgICAgIHRoaXMuX3N0
YXJ0ZWRFZGl0aW5nQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIGNvbnN0IHRleHRGaWVsZCA9IHRo
aXMuY29udGVudCgndGV4dC1maWVsZCcpOworICAgICAgICAgICAgdGV4dEZpZWxkLnZhbHVlID0g
dGhpcy5fdGV4dDsKKyAgICAgICAgICAgIHRleHRGaWVsZC5zdHlsZS53aWR0aCA9ICh0aGlzLl90
ZXh0Lmxlbmd0aCAvIDEuNSkgKyAncmVtJzsKKyAgICAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVu
ZGVyKCk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBfZGlkQmx1cihldmVudCkKLSAgICB7Ci0g
ICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgaWYgKHNlbGYuX2luRWRpdGluZ01vZGUg
JiYgIXNlbGYuX3VwZGF0aW5nUHJvbWlzZSAmJiAhc2VsZi5oYXNGb2N1cygpKQotICAgICAgICAg
ICAgc2VsZi5fZGlkVXBkYXRlKCk7Ci0gICAgfQotCi0gICAgX2RpZFVwZGF0ZSgpCisgICAgX2Vu
ZEVkaXRpbmdNb2RlKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2luRWRpdGluZ01vZGUgPSBmYWxz
ZTsKICAgICAgICAgdGhpcy5fdXBkYXRpbmdQcm9taXNlID0gbnVsbDsKQEAgLTc5LDMyICs3OSwz
MiBAQCBjbGFzcyBFZGl0YWJsZVRleHQgZXh0ZW5kcyBDb21wb25lbnRCYXNlCiAgICAgc3RhdGlj
IGh0bWxUZW1wbGF0ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gYAotICAgICAgICAgICAgPHNw
YW4gY2xhc3M9ImVkaXRhYmxlLXRleHQtY29udGFpbmVyIj4KLSAgICAgICAgICAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCIgY2xhc3M9ImVkaXRhYmxlLXRleHQtZmllbGQiPgotICAgICAgICAgICAg
ICAgIDxzcGFuIGNsYXNzPSJlZGl0YWJsZS10ZXh0LWxhYmVsIj48L3NwYW4+Ci0gICAgICAgICAg
ICAgICAgPHNwYW4gY2xhc3M9ImVkaXRhYmxlLXRleHQtYWN0aW9uIj4oPGEgaHJlZj0iIyI+RWRp
dDwvYT4pPC9zcGFuPgorICAgICAgICAgICAgPHNwYW4gaWQ9ImNvbnRhaW5lciI+CisgICAgICAg
ICAgICAgICAgPGlucHV0IGlkPSJ0ZXh0LWZpZWxkIiB0eXBlPSJ0ZXh0Ij4KKyAgICAgICAgICAg
ICAgICA8c3BhbiBpZD0ibGFiZWwiPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBpZD0i
YWN0aW9uLWJ1dHRvbi1jb250YWluZXIiPig8YSBpZD0iYWN0aW9uLWJ1dHRvbiIgaHJlZj0iIyI+
RWRpdDwvYT4pPC9zcGFuPgogICAgICAgICAgICAgPC9zcGFuPmA7CiAgICAgfQogCiAgICAgc3Rh
dGljIGNzc1RlbXBsYXRlKCkKICAgICB7CiAgICAgICAgIHJldHVybiBgCi0gICAgICAgICAgICAu
ZWRpdGFibGUtdGV4dC1jb250YWluZXIgeworICAgICAgICAgICAgI2NvbnRhaW5lciB7CiAgICAg
ICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgIHBhZGRpbmct
cmlnaHQ6IDIuNXJlbTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5lZGl0YWJsZS10ZXh0
LWZpZWxkIHsKKyAgICAgICAgICAgICN0ZXh0LWZpZWxkIHsKICAgICAgICAgICAgICAgICBiYWNr
Z3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAg
ICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAg
ICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDsKICAgICAgICAgICAgICAgICBmb250
LXNpemU6IGluaGVyaXQ7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDhyZW07CiAgICAgICAgICAg
ICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLmVkaXRhYmxl
LXRleHQtYWN0aW9uIHsKKyAgICAgICAgICAgICNhY3Rpb24tYnV0dG9uLWNvbnRhaW5lciB7CiAg
ICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgICAgIHJpZ2h0
OiAwOwogICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4ycmVtOwogICAgICAgICAgICAg
ICAgIGNvbG9yOiAjOTk5OwogICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwpAQCAt
MTEyLDcgKzExMiw3IEBAIGNsYXNzIEVkaXRhYmxlVGV4dCBleHRlbmRzIENvbXBvbmVudEJhc2UK
ICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC40cmVtOwogICAgICAgICAgICAgICAgIHZl
cnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAuZWRpdGFi
bGUtdGV4dC1hY3Rpb24gYSB7CisgICAgICAgICAgICAjYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAg
ICAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9u
OiBub25lOwogICAgICAgICAgICAgfQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMJ
KHJldmlzaW9uIDIxMTEyMSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
cGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC02Miw5ICs2Miw5
IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEgKICAgICAgICAgdGhp
cy5fYW5hbHlzaXNSZXN1bHRzVmlld2VyLnNldFJhbmdlU2VsZWN0b3JMYWJlbHMoWydBJywgJ0In
XSk7CiAgICAgICAgIHRoaXMuX2FuYWx5c2lzUmVzdWx0c1ZpZXdlci5zZXRSYW5nZVNlbGVjdG9y
Q2FsbGJhY2sodGhpcy5fc2VsZWN0ZWRSb3dJbkFuYWx5c2lzUmVzdWx0c1ZpZXdlci5iaW5kKHRo
aXMpKTsKICAgICAgICAgdGhpcy5fdGVzdEdyb3VwUmVzdWx0c1RhYmxlID0gdGhpcy5jb250ZW50
KCkucXVlcnlTZWxlY3RvcigndGVzdC1ncm91cC1yZXN1bHRzLXRhYmxlJykuY29tcG9uZW50KCk7
CisKICAgICAgICAgdGhpcy5fdGFza05hbWVMYWJlbCA9IHRoaXMuY29udGVudCgpLnF1ZXJ5U2Vs
ZWN0b3IoJy5hbmFseXNpcy10YXNrLW5hbWUgZWRpdGFibGUtdGV4dCcpLmNvbXBvbmVudCgpOwot
ICAgICAgICB0aGlzLl90YXNrTmFtZUxhYmVsLnNldFN0YXJ0ZWRFZGl0aW5nQ2FsbGJhY2sodGhp
cy5fZGlkU3RhcnRFZGl0aW5nVGFza05hbWUuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3Rh
c2tOYW1lTGFiZWwuc2V0VXBkYXRlQ2FsbGJhY2sodGhpcy5fdXBkYXRlVGFza05hbWUuYmluZCh0
aGlzKSk7CisgICAgICAgIHRoaXMuX3Rhc2tOYW1lTGFiZWwubGlzdGVuVG9BY3Rpb24oJ3VwZGF0
ZScsICgpID0+IHRoaXMuX3VwZGF0ZVRhc2tOYW1lKCkpOwogCiAgICAgICAgIHRoaXMuY29udGVu
dCgpLnF1ZXJ5U2VsZWN0b3IoJy5jaGFuZ2UtdHlwZS1mb3JtJykub25zdWJtaXQgPSB0aGlzLl91
cGRhdGVDaGFuZ2VUeXBlLmJpbmQodGhpcyk7CiAgICAgICAgIHRoaXMuX3Rhc2tTdGF0dXNDb250
cm9sID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLmNoYW5nZS10eXBlLWZvcm0gc2Vs
ZWN0Jyk7CkBAIC0zNjQsOCArMzY0LDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRz
IFBhZ2VXaXRoSAogICAgIF9jcmVhdGVUZXN0R3JvdXBMaXN0SXRlbShncm91cCkKICAgICB7CiAg
ICAgICAgIHZhciB0ZXh0ID0gbmV3IEVkaXRhYmxlVGV4dChncm91cC5sYWJlbCgpKTsKLSAgICAg
ICAgdGV4dC5zZXRTdGFydGVkRWRpdGluZ0NhbGxiYWNrKCgpID0+IHsgcmV0dXJuIHRleHQuZW5x
dWV1ZVRvUmVuZGVyKCk7IH0pOwotICAgICAgICB0ZXh0LnNldFVwZGF0ZUNhbGxiYWNrKHRoaXMu
X3VwZGF0ZVRlc3RHcm91cE5hbWUuYmluZCh0aGlzLCBncm91cCkpOworICAgICAgICB0ZXh0Lmxp
c3RlblRvQWN0aW9uKCd1cGRhdGUnLCAoKSA9PiB0aGlzLl91cGRhdGVUZXN0R3JvdXBOYW1lKGdy
b3VwKSk7CiAKICAgICAgICAgdGhpcy5fdGVzdEdyb3VwTGFiZWxNYXAuc2V0KGdyb3VwLCB0ZXh0
KTsKICAgICAgICAgcmV0dXJuIENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudCgnbGknLCB7Y2xh
c3M6ICd0ZXN0LWdyb3VwLWxpc3QtJyArIGdyb3VwLmlkKCl9LApAQCAtNDE4LDExICs0MTcsNiBA
QCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAgICAgICAgIHRoaXMu
ZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAgfQogCi0gICAgX2RpZFN0YXJ0RWRpdGluZ1Rhc2tOYW1l
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Rhc2tOYW1lTGFiZWwuZW5xdWV1ZVRvUmVuZGVyKCk7
Ci0gICAgfQotCiAgICAgX3VwZGF0ZVRhc2tOYW1lKCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRoaXMuX3Rhc2spOwo=
</data>
<flag name="review"
          id="321603"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>