<?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>158248</bug_id>
          
          <creation_ts>2016-05-31 21:12:20 -0700</creation_ts>
          <short_desc>v3 UI should support marking and unmarking outliers as well as hiding them</short_desc>
          <delta_ts>2016-06-01 12:54:19 -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>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>joepeck</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1198056</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-31 21:12:20 -0700</bug_when>
    <thetext>v3 UI&apos;s support for outliers turns out be completely broken :(  Fix that and also add UI to mark/unmark them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198077</commentid>
    <comment_count>1</comment_count>
      <attachid>280214</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-31 22:23:11 -0700</bug_when>
    <thetext>Created attachment 280214
Adds the support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198235</commentid>
    <comment_count>2</comment_count>
      <attachid>280214</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-01 12:31:18 -0700</bug_when>
    <thetext>Comment on attachment 280214
Adds the support

Rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198241</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-01 12:54:19 -0700</bug_when>
    <thetext>Committed r201564: &lt;http://trac.webkit.org/changeset/201564&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280214</attachid>
            <date>2016-05-31 22:23:11 -0700</date>
            <delta_ts>2016-06-01 12:31:18 -0700</delta_ts>
            <desc>Adds the support</desc>
            <filename>bug-158248-20160531222427.patch</filename>
            <type>text/plain</type>
            <size>51489</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNTQxKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDExOSBAQAorMjAxNi0wNS0zMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICB2MyBVSSBzaG91bGQgc3VwcG9ydCBtYXJraW5nIGFuZCB1bm1hcmtpbmcgb3V0
bGllcnMgYXMgd2VsbCBhcyBoaWRpbmcgdGhlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGhlIHN1cHBvcnQgZm9yIG1hcmtpbmcgYW5kIHVu
bWFya2luZyBhIHNlcXVlbmNlIG9mIHBvaW50cyBhcyBvdXRsaWVycy4gVW5saWtlIHYyLCB3ZSBu
b3cgc3VwcG9ydCBtYXJraW5nCisgICAgICAgIG11bHRpcGxlIHBvaW50cyBhcyBvdXRsaWVycyBp
biBhIHNpbmdsZSBjbGljay4gQWxzbyBmaXhlZCBhIGJ1ZyB0aGF0IG91dGxpZXJzIGFyZSBuZXZl
ciBleHBsaWNpdGx5IGhpZGRlbiBpbiB2MyBVSS4KKworICAgICAgICBUaGlzIHBhdGNoIHNwbGl0
cyBDaGFydFN0eWxlcy5jcmVhdGVDaGFydFNvdXJjZUxpc3QgaW50byB0d28gZnVuY3Rpb25zOiBy
ZXNvbHZlQ29uZmlndXJhdGlvbiBhbmQgY3JlYXRlU291cmNlTGlzdAorICAgICAgICB0byBzZXBh
cmF0ZSB0aGUgd29yayBvZiByZXNvbHZpbmcgcGxhdGZvcm0gYW5kIG1ldHJpYyBJRHMgdG8gdGhl
aXIgcmVzcGVjdGl2ZSBtb2RlbCBvYmplY3RzLCBhbmQgY3JlYXRpbmcgYSBzb3VyY2UKKyAgICAg
ICAgbGlzdCB1c2VkIGJ5IFRpbWVTZXJpZXNDaGFydCB0byBmZXRjaCBtZWFzdXJlbWVudCBzZXRz
LiBjcmVhdGVTb3VyY2VMaXN0IGlzIGNhbGxlZCBhZ2FpbiB3aGVuIGZpbHRlcmluZyBvcHRpb25z
IGFyZQorICAgICAgICBjaGFuZ2VkLgorCisgICAgICAgIEl0IGFsc28gYWRkcyBub0NhY2hlIG9w
dGlvbiB0byBUaW1lU2VyaWVzQ2hhcnQncyBmZXRjaE1lYXN1cmVtZW50U2V0cywgTWVhc3VyZW1l
bnRTZXQncyBmZXRjaEJldHdlZW4gYW5kCisgICAgICAgIF9mZXRjaFByaW1hcnlDbHVzdGVyIHRv
IHVwZGF0ZSB0aGUgbWVhc3VyZW1lbnQgc2V0cyBhZnRlciBtYXJraW5nIG9yIHVubWFya2luZyBw
b2ludHMgYXMgb3V0bGllcnMuIEluIGFkZGl0aW9uLCBpdAorICAgICAgICBmaXhlcyBhIGJ1ZyB0
aGF0IHRoZSBhbm5vdGF0aW9uIGJhcnMgZm9yIGFuYWx5c2lzIHRhc2tzIGFyZSBub3QgdXBkYXRl
ZCBpbiBjaGFydHMgcGFnZSBhZnRlciBjcmVhdGluZyBhbiBhbmFseXNpcworICAgICAgICB0YXNr
IGJ5IGFkZGluZyBub0NhY2hlIG9wdGlvbiB0byBDaGFydFBhbmVCYXNlJ3MgZmV0Y2hBbmFseXNp
c1Rhc2tzLCBBbmFseXNpc1Rhc2sncyBmZXRjaEJ5UGxhdGZvcm1BbmRNZXRyaWMgYW5kCisgICAg
ICAgIF9mZXRjaFN1YnNldC4KKworICAgICAgICBGaW5hbGx5LCB0aGlzIHBhdGNoIHNwbGl0cyBD
aGFydFBhbmUuX21ha2VBbmNob3JUb09wZW5QYW5lIGludG8gX21ha2VQb3BvdmVyQWN0aW9uSXRl
bSwgX21ha2VQb3BvdmVyT3Blbk9uSG92ZXIgYW5kCisgICAgICAgIF9zZXRQb3BvdmVyVmlzaWJp
bGl0eSBmb3IgY2xhcml0eS4KKworICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0
LXBhbmUtYmFzZS5qczoKKyAgICAgICAgKENoYXJ0UGFuZUJhc2UpOiBBZGRlZCBfZGlzYWJsZVNh
bXBsaW5nIGFuZCBfc2hvd091dGxpZXJzIGFzIGluc3RhbmNlIHZhcmlhYmxlcy4KKyAgICAgICAg
KENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLmNvbmZpZ3VyZSk6CisgICAgICAgIChDaGFydFBhbmVC
YXNlLnByb3RvdHlwZS5pc1NhbXBsaW5nRW5hYmxlZCk6IEFkZGVkLgorICAgICAgICAoQ2hhcnRQ
YW5lQmFzZS5wcm90b3R5cGUuc2V0U2FtcGxpbmdFbmFibGVkKTogQWRkZWQuIFdoZW4gYSBmaWx0
ZXJpbmcgb3B0aW9uIGlzIHVwZGF0ZWQsIHJlY3JlYXRlIHRoZSBzb3VyY2UgbGlzdAorICAgICAg
ICBzbyB0aGF0IFRpbWVTZXJpZXNDaGFydC5zZXRTb3VyY2VMaXN0IGNhbiByZS1mZXRjaCB0aGUg
bWVhc3VyZW1lbnQgc2V0IEpTT05zLgorICAgICAgICAoQ2hhcnRQYW5lQmFzZS5wcm90b3R5cGUu
aXNTaG93aW5nT3V0bGllcnMpOiBBZGRlZC4KKyAgICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90
eXBlLnNldFNob3dPdXRsaWVycyk6IEFkZGVkLiBEaXR0byBmb3IgY2FsbGluZyBfdXBkYXRlU291
cmNlTGlzdC4KKyAgICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLl91cGRhdGVTb3VyY2VM
aXN0KTogQWRkZWQuCisgICAgICAgIChDaGFydFBhbmVCYXNlLnByb3RvdHlwZS5mZXRjaEFuYWx5
c2lzVGFza3MpOiBSZW5hbWVkIGZyb20gX2ZldGNoQW5hbHlzaXNUYXNrcy4gTm93IHRha2VzIG5v
Q2FjaGUgYXMgYW4gYXJndW1lbnQKKyAgICAgICAgaW5zdGVhZCBvZiBwbGF0Zm9ybSBhbmQgbWV0
cmljIElEcyBzaW5jZSB0aGV5J3JlIG9uIGluc3RhbmNlIHZhcmlhYmxlcy4KKworICAgICAgICAq
IHB1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0LXN0eWxlcy5qczoKKyAgICAgICAgKENoYXJ0U3R5
bGVzLnJlc29sdmVDb25maWd1cmF0aW9uKTogUmVuYW1lZCBmcm9tIGNyZWF0ZUNoYXJ0U291cmNl
TGlzdC4gSnVzdCByZXNvbHZlcyBwbGF0Zm9ybSBhbmQgbWV0cmljIElEcy4KKyAgICAgICAgKENo
YXJ0U3R5bGVzLmNyZWF0ZVNvdXJjZUxpc3QpOiBFeHRyYWN0ZWQgZnJvbSBjcmVhdGVDaGFydFNv
dXJjZUxpc3Qgc2luY2UgaXQgbmVlZHMgdG8gYmUgY2FsbGVkIHdoZW4gYSBmaWx0ZXJpbmcKKyAg
ICAgICAgb3B0aW9uIGlzIGNoYW5nZWQgYXMgd2VsbCBhcyB3aGVuIENoYXJ0UGFuZUJhc2UucHJv
dG90eXBlLmNvbmZpZ3VyZSBpcyBjYWxsZWQuCisgICAgICAgIChDaGFydFN0eWxlcy5iYXNlbGlu
ZVN0eWxlKTogTm93IHRha2VzIGZpbHRlcmluZyBvcHRpb25zLgorICAgICAgICAoQ2hhcnRTdHls
ZXMudGFyZ2V0U3R5bGUpOiBEaXR0by4KKyAgICAgICAgKENoYXJ0U3R5bGVzLmN1cnJlbnRTdHls
ZSk6IERpdHRvLgorCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUt
dGltZS1zZXJpZXMtY2hhcnQuanM6CisgICAgICAgIChJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFy
dC5wcm90b3R5cGUuY3VycmVudFBvaW50KTogRmluZCB0aGUgcG9pbnQgaW4gX2ZldGNoZWRUaW1l
U2VyaWVzIHdoZW4KKyAgICAgICAgX3NhbXBsZWRUaW1lU2VyaWVzRGF0YSBoYXNuJ3QgYmVlbiBj
b21wdXRlZCB5ZXQgYXMgYSBmYWxsYmFjayAoZS5nLiB3aGVuIHRoZSBjaGFydCBoYXNuJ3QgYmVl
biByZW5kZXJlZCB5ZXQpLgorICAgICAgICAoSW50ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQucHJv
dG90eXBlLnNlbGVjdGVkUG9pbnRzKTogQWRkZWQuCisgICAgICAgIChJbnRlcmFjdGl2ZVRpbWVT
ZXJpZXNDaGFydC5wcm90b3R5cGUuZmlyc3RTZWxlY3RlZFBvaW50KTogQWRkZWQuCisgICAgICAg
IChJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFydC5wcm90b3R5cGUubG9ja2VkSW5kaWNhdG9yKTog
QWRkZWQuIFJldHVybnMgdGhlIGN1cnJlbnQgcG9pbnQgaWYgaXQncyBsb2NrZWQuCisKKyAgICAg
ICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy90aW1lLXNlcmllcy1jaGFydC5qczoKKyAgICAgICAg
KFRpbWVTZXJpZXNDaGFydC5wcm90b3R5cGUuc2V0RG9tYWluKToKKyAgICAgICAgKFRpbWVTZXJp
ZXNDaGFydC5wcm90b3R5cGUuc2V0U291cmNlTGlzdCk6IEFkZGVkLiBSZS1jcmVhdGUgX2ZldGNo
ZWRUaW1lU2VyaWVzIHdoZW4gZmlsdGVyaW5nIG9wdGlvbnMgaGF2ZSBjaGFuZ2VkLgorICAgICAg
ICBEb24ndCByZS1mZXRjaCBtZWFzdXJlbWVudCBzZXQgSlNPTnMgaGVyZSBzaW5jZSBzaG93aW5n
IG91dGxpZXJzIGNhbiBiZSBkb25lIGVudGlyZWx5IGluIHRoZSBmcm9udCBlbmQuCisgICAgICAg
IChUaW1lU2VyaWVzQ2hhcnQucHJvdG90eXBlLmZldGNoTWVhc3VyZW1lbnRTZXRzKTogRXh0cmFj
dGVkIG91dCBvZiBzZXREb21haW4uIE5vdyB0YWtlcyBub0NhY2hlIGFzIGFuIGFyZ3VtZW50Lgor
ICAgICAgICBDaGFydFBhbmUuX21hcmtBc091dGxpZXIKKyAgICAgICAgKFRpbWVTZXJpZXNDaGFy
dC5wcm90b3R5cGUuZmlyc3RTYW1wbGVkUG9pbnRCZXR3ZWVuVGltZSk6IEFkZGVkLgorCisgICAg
ICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzOgorICAgICAgICAoQW5hbHlz
aXNUYXNrLmZldGNoQnlQbGF0Zm9ybUFuZE1ldHJpYyk6IEFkZGVkIG5vQ2FjaGUgYXMgYW4gYXJn
dW1lbnQuCisgICAgICAgIChBbmFseXNpc1Rhc2suX2ZldGNoU3Vic2V0KTogRGl0dG8uCisKKyAg
ICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL21lYXN1cmVtZW50LWFkYXB0b3IuanM6CisgICAgICAg
IChNZWFzdXJlbWVudEFkYXB0b3IucHJvdG90eXBlLmlzT3V0bGllcik6IEFkZGVkLgorICAgICAg
ICAoTWVhc3VyZW1lbnRBZGFwdG9yLnByb3RvdHlwZS5hcHBseVRvQW5hbHlzaXNSZXN1bHRzKTog
QWRkIG1hcmtlZE91dGxpZXIgYXMgYSBwcm9wZXJ0eSBvbiBlYWNoIHBvaW50LgorCisgICAgICAg
ICogcHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVudC1jbHVzdGVyLmpzOgorICAgICAgICAoTWVh
c3VyZW1lbnRDbHVzdGVyLnByb3RvdHlwZS5hZGRUb1Nlcmllcyk6IEZpeGVkIHRoZSBidWcgdGhh
dCBmaWx0ZXJpbmcgb3V0bGllcnMgd2FzIGJyb2tlbiBhcyBfbWFya2VkT3V0bGllckluZGV4Cisg
ICAgICAgIGlzIHVuZGVmaW5lZCBoZXJlLiBVc2UgTWVhc3VyZW1lbnRBZGFwdG9yJ3MgaXNPdXRs
aWVyIGluc3RlYWQuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL21lYXN1cmVtZW50LXNl
dC5qczoKKyAgICAgICAgKE1lYXN1cmVtZW50U2V0LnByb3RvdHlwZS5mZXRjaEJldHdlZW4pOiBB
ZGRlZCBub0NhY2hlIGFzIGFuIGFyZ3VtZW50LiBSZXNldCBfcHJpbWFyeUNsdXN0ZXJQcm9taXNl
IGFuZCBfYWxsRmV0Y2hlcworICAgICAgICB3aGVuIG5vQ2FjaGUgaXMgdHJ1ZSBzaW5jZSB3ZSBu
ZWVkIHRvIHJlLWZldGNoIHRoZSBwcmltYXJ5IGNsdXN0ZXIgYXMgd2VsbCBhcyBhbGwgc2Vjb25k
YXJ5IGNsdXN0ZXJzIG5vdy4KKyAgICAgICAgKE1lYXN1cmVtZW50U2V0LnByb3RvdHlwZS5fZmV0
Y2hQcmltYXJ5Q2x1c3Rlcik6IEFkZGVkIG5vQ2FjaGUgYXMgYW4gYXJndW1lbnQuIERpcmVjdGx5
IGludm9rZSB0aGUgSlNPTiBBUEkgYXQKKyAgICAgICAgL2FwaS9tZWFzdXJlbWVudC1zZXQgdG8g
cmUtZ2VuZXJhdGUgYWxsIGNsdXN0ZXJzJyBKU09OIGZpbGVzIGluc3RlYWQgb2YgZmlyc3QgZmV0
Y2hpbmcgdGhlIGNhY2hlZCB2ZXJzaW9uLgorICAgICAgICAoTWVhc3VyZW1lbnRTZXQucHJvdG90
eXBlLl9mZXRjaFNlY29uZGFyeUNsdXN0ZXIpOgorICAgICAgICAoTWVhc3VyZW1lbnRTZXQucHJv
dG90eXBlLl9kaWRGZXRjaEpTT04pOiBSZW1vdmVkIGEgYm9ndXMgYXNzZXJ0aW9uIHNpbmNlIHRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIHNlY29uZGFyeQorICAgICAgICBjbHVzdGVycyBhcyB3
ZWxsIGFzIHByaW1hcnkgY2x1c3RlcnMuCisgICAgICAgIChNZWFzdXJlbWVudFNldC5wcm90b3R5
cGUuX2FkZEZldGNoZWRDbHVzdGVyKTogUmVpbXBsZW1lbnRlZCB0aGlzIGZ1bmN0aW9uIHVzaW5n
IGFuIGluc2VydGlvbiBzb3J0LiBBbHNvIHJlbW92ZSB0aGUKKyAgICAgICAgZXhpc3RpbmcgZW50
cnkgaWYgdGhlIGZldGNoIGNsdXN0ZXIgc2hvdWxkIHJlcGxhY2UgaXQuCisKKyAgICAgICAgKiBw
dWJsaWMvdjMvbW9kZWxzL3RpbWUtc2VyaWVzLmpzOgorICAgICAgICAoVGltZVNlcmllcy5wcm90
b3R5cGUuZGF0YUJldHdlZW5Qb2ludHMpOiBSZW1vdmVkIHRoZSBkZWFkIGNvZGUgdG8gZmlsdGVy
IG91dCBvdXRsaWVycy4gVGhpcyBpcyBkb25lIGluIGFkZFRvU2VyaWVzCisgICAgICAgIG9mIE1l
YXN1cmVtZW50Q2x1c3RlciBpbnN0ZWFkLgorCisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2No
YXJ0LXBhbmUuanM6CisgICAgICAgIChDaGFydFBhbmUpOiBSZW5hbWVkIHBhbmUgdG8gcG9wb3Zl
ciBzaW5jZSBpdCB3YXMgY29uZnVzaW5nIHRvIGhhdmUgYSBwYW5lIGluc2lkZSBhIHBhbmUgY2xh
c3MuIEFzIHN1Y2gsIHJlbmFtZWQKKyAgICAgICAgX3BhbmVPcGVuZWRCeUNsaWNrIHRvIF9sb2Nr
ZWRQb3BvdmVyLgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5zZXJpYWxpemVTdGF0ZSk6
IEFkZGVkIHRoZSBjb2RlIHRvIHNlcmlhbGl6ZSBmaWx0ZXJpbmcgb3B0aW9ucyBpbiB0aGUgc2Vy
aWFsaXplZCBzdGF0ZSBVUkwuCisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLnVwZGF0ZUZy
b21TZXJpYWxpemVkU3RhdGUpOiBEaXR0byBmb3IgcGFyc2luZy4KKyAgICAgICAgKENoYXJ0UGFu
ZS5wcm90b3R5cGUuX2FuYWx5emVSYW5nZSk6IEV4dHJhY3RlZCBvdXQgb2YgcmVuZGVyKCkuIEFs
c28gZml4ZWQgYSBidWcgdGhhdCB0aGUgY2hhcnRzIHBhZ2UgZG9uJ3Qgc2hvdworICAgICAgICB0
aGUgbmV3bHkgY3JlYXRlZCBhbmFseXNpcyB0YXNrIGJ5IGludm9raW5nIGZldGNoQW5hbHlzaXNU
YXNrcyB3aXRoIG5vQ2FjaGUgc2V0IHRvIHRydWUuCisgICAgICAgIChDaGFydFBhbmUucHJvdG90
eXBlLl9tYXJrQXNPdXRsaWVyKTogQWRkZWQuCisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBl
Ll9yZW5kZXJBY3Rpb25Ub29sYmFyKTogQSBidW5jaCBvZiBjaGFuZ2VzIGR1ZSB0byBwYW5lIC0+
IHBvcG92ZXIgcmVuYW1lLiBBbHNvIGFkZGVkIGEgcG9wb3ZlcgorICAgICAgICBmb3IgZmlsdGVy
aW5nIG9wdGlvbnMuCisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLl9tYWtlUG9wb3ZlckFj
dGlvbkl0ZW0pOiBFeHRyYWN0ZWQgZnJvbSBfbWFrZUFuY2hvclRvT3BlblBhbmUuCisgICAgICAg
IChDaGFydFBhbmUucHJvdG90eXBlLl9tYWtlUG9wb3Zlck9wZW5PbkhvdmVyKTogRGl0dG8uCisg
ICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLl9zZXRQb3BvdmVyVmlzaWJpbGl0eSk6IERpdHRv
LgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5fcmVuZGVyRmlsdGVyaW5nUG9wb3Zlcik6
IEFkZGVkLgorICAgICAgICAoQ2hhcnRQYW5lLmh0bWxUZW1wbGF0ZSk6IEFkZGVkIGEgcG9wb3Zl
ciBmb3Igc3BlY2lmeWluZyBmaWx0ZXJpbmcgb3B0aW9ucy4gQWxzbyBhZGRlZCAucG9wb3ZlciBv
biBlYWNoIHBvcG92ZXIuCisgICAgICAgIChDaGFydFBhbmUuY3NzVGVtcGxhdGUpOiBVcGRhdGVk
IHRoZSBzdHlsZSB0byBtYWtlIHVzZSBvZiAucG9wb3Zlci4KKworICAgICAgICAqIHB1YmxpYy92
My9wYWdlcy9jaGFydHMtcGFnZS5qczoKKyAgICAgICAgKENoYXJ0c1BhZ2UucHJvdG90eXBlLmdy
YXBoT3B0aW9uc0RpZENoYW5nZSk6IEFkZGVkLiBVcGRhdGVzIHRoZSBVUkwgc3RhdGUgd2hlbiBh
IGZpbHRlcmluZyBvcHRpb24gaXMgbW9kaWZpZWQuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFn
ZXMvZGFzaGJvYXJkLXBhZ2UuanM6CisgICAgICAgIChEYXNoYm9hcmRQYWdlLnByb3RvdHlwZS5f
Y3JlYXRlQ2hhcnRGb3JDZWxsKToKKworICAgICAgICAqIHB1YmxpYy92My9wYWdlcy9wYWdlLXJv
dXRlci5qczoKKyAgICAgICAgKFBhZ2VSb3V0ZXIucHJvdG90eXBlLl9zZXJpYWxpemVIYXNoUXVl
cnlWYWx1ZSk6IFNlcmlhbGl6ZSBhIHNldCBvZiBzdHJpbmdzIGFzIHwgc2VwYXJhdGVkIHRva2Vu
cy4KKyAgICAgICAgKFBhZ2VSb3V0ZXIucHJvdG90eXBlLl9kZXNlcmlhbGl6ZUhhc2hRdWVyeVZh
bHVlKTogUmV3cm90ZSB0aGUgZnVuY3Rpb24gYXMgdGhlIHNlcmlhbGl6ZWQgVVJMIGNhbiBubyBs
b25nZXIgYmUKKyAgICAgICAgcGFyc2VkIGFzIGEgSlNPTiBhcyB8IHNlcGFyYXRlZCB0b2tlbnMg
Y2FuJ3QgYmUgY29udmVydGVkIGludG8gYSB2YWxpZCBKU09OIGNvbnN0cnVjdCB3aXRoIGEgc2lt
cGxlIHJlZ2V4LgorCisgICAgICAgICogdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtdGVzdHMu
anM6IEFkZGVkIGEgdGVzdCBjYXNlIGZvciBmZXRjaEJldHdlZW4gd2l0aCBub0NhY2hlPXRydWUu
CisKIDIwMTYtMDUtMjQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQW5vdGhlciBidWlsZCBmaXggYWZ0ZXIgcjIwMTMwNy4KSW5kZXg6IFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jaGFydC1wYW5lLWJhc2UuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2No
YXJ0LXBhbmUtYmFzZS5qcwkocmV2aXNpb24gMjAxNTAyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0LXBhbmUtYmFzZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMTAsNiArMTAsOCBAQCBjbGFzcyBDaGFydFBhbmVCYXNlIGV4dGVuZHMgQ29tcG9u
ZW50QmFzCiAgICAgICAgIHRoaXMuX21ldHJpY0lkID0gbnVsbDsKICAgICAgICAgdGhpcy5fcGxh
dGZvcm0gPSBudWxsOwogICAgICAgICB0aGlzLl9tZXRyaWMgPSBudWxsOworICAgICAgICB0aGlz
Ll9kaXNhYmxlU2FtcGxpbmcgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fc2hvd091dGxpZXJzID0g
ZmFsc2U7CiAKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdDaGFydCA9IG51bGw7CiAgICAgICAgIHRo
aXMuX21haW5DaGFydCA9IG51bGw7CkBAIC0yMCw3ICsyMiw3IEBAIGNsYXNzIENoYXJ0UGFuZUJh
c2UgZXh0ZW5kcyBDb21wb25lbnRCYXMKIAogICAgIGNvbmZpZ3VyZShwbGF0Zm9ybUlkLCBtZXRy
aWNJZCkKICAgICB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBDaGFydFN0eWxlcy5jcmVhdGVDaGFy
dFNvdXJjZUxpc3QocGxhdGZvcm1JZCwgbWV0cmljSWQpOworICAgICAgICB2YXIgcmVzdWx0ID0g
Q2hhcnRTdHlsZXMucmVzb2x2ZUNvbmZpZ3VyYXRpb24ocGxhdGZvcm1JZCwgbWV0cmljSWQpOwog
ICAgICAgICB0aGlzLl9lcnJvck1lc3NhZ2UgPSByZXN1bHQuZXJyb3I7CiAgICAgICAgIHRoaXMu
X3BsYXRmb3JtSWQgPSBwbGF0Zm9ybUlkOwogICAgICAgICB0aGlzLl9tZXRyaWNJZCA9IG1ldHJp
Y0lkOwpAQCAtMzksMTAgKzQxLDExIEBAIGNsYXNzIENoYXJ0UGFuZUJhc2UgZXh0ZW5kcyBDb21w
b25lbnRCYXMKICAgICAgICAgdmFyIGZvcm1hdHRlciA9IHJlc3VsdC5tZXRyaWMubWFrZUZvcm1h
dHRlcig0KTsKICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogCisgICAgICAgIHZhciBzb3VyY2VM
aXN0ID0gQ2hhcnRTdHlsZXMuY3JlYXRlU291cmNlTGlzdCh0aGlzLl9wbGF0Zm9ybSwgdGhpcy5f
bWV0cmljLCB0aGlzLl9kaXNhYmxlU2FtcGxpbmcsIHRoaXMuX3Nob3dPdXRsaWVycyk7CisKICAg
ICAgICAgdmFyIG92ZXJ2aWV3T3B0aW9ucyA9IENoYXJ0U3R5bGVzLm92ZXJ2aWV3Q2hhcnRPcHRp
b25zKGZvcm1hdHRlcik7CiAgICAgICAgIG92ZXJ2aWV3T3B0aW9ucy5zZWxlY3Rpb24ub25jaGFu
Z2UgPSB0aGlzLl9vdmVydmlld1NlbGVjdGlvbkRpZENoYW5nZS5iaW5kKHRoaXMpOwotCi0gICAg
ICAgIHRoaXMuX292ZXJ2aWV3Q2hhcnQgPSBuZXcgSW50ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQo
cmVzdWx0LnNvdXJjZUxpc3QsIG92ZXJ2aWV3T3B0aW9ucyk7CisgICAgICAgIHRoaXMuX292ZXJ2
aWV3Q2hhcnQgPSBuZXcgSW50ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQoc291cmNlTGlzdCwgb3Zl
cnZpZXdPcHRpb25zKTsKICAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29udGVudCgp
LnF1ZXJ5U2VsZWN0b3IoJy5jaGFydC1wYW5lLW92ZXJ2aWV3JyksIHRoaXMuX292ZXJ2aWV3Q2hh
cnQpOwogCiAgICAgICAgIHZhciBtYWluT3B0aW9ucyA9IENoYXJ0U3R5bGVzLm1haW5DaGFydE9w
dGlvbnMoZm9ybWF0dGVyKTsKQEAgLTUxLDcgKzU0LDcgQEAgY2xhc3MgQ2hhcnRQYW5lQmFzZSBl
eHRlbmRzIENvbXBvbmVudEJhcwogICAgICAgICBtYWluT3B0aW9ucy5zZWxlY3Rpb24ub256b29t
ID0gdGhpcy5fbWFpblNlbGVjdGlvbkRpZFpvb20uYmluZCh0aGlzKTsKICAgICAgICAgbWFpbk9w
dGlvbnMuYW5ub3RhdGlvbnMub25jbGljayA9IHRoaXMuX29wZW5BbmFseXNpc1Rhc2suYmluZCh0
aGlzKTsKICAgICAgICAgbWFpbk9wdGlvbnMub25kYXRhID0gdGhpcy5fZGlkRmV0Y2hEYXRhLmJp
bmQodGhpcyk7Ci0gICAgICAgIHRoaXMuX21haW5DaGFydCA9IG5ldyBJbnRlcmFjdGl2ZVRpbWVT
ZXJpZXNDaGFydChyZXN1bHQuc291cmNlTGlzdCwgbWFpbk9wdGlvbnMpOworICAgICAgICB0aGlz
Ll9tYWluQ2hhcnQgPSBuZXcgSW50ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQoc291cmNlTGlzdCwg
bWFpbk9wdGlvbnMpOwogICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCku
cXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUtbWFpbicpLCB0aGlzLl9tYWluQ2hhcnQpOwogCiAg
ICAgICAgIHRoaXMuX21haW5DaGFydFN0YXR1cyA9IG5ldyBDaGFydFBhbmVTdGF0dXNWaWV3KHJl
c3VsdC5tZXRyaWMsIHRoaXMuX21haW5DaGFydCwgdGhpcy5fcmVxdWVzdE9wZW5pbmdDb21taXRW
aWV3ZXIuYmluZCh0aGlzKSk7CkBAIC01OSwxNCArNjIsMzUgQEAgY2xhc3MgQ2hhcnRQYW5lQmFz
ZSBleHRlbmRzIENvbXBvbmVudEJhcwogCiAgICAgICAgIHRoaXMuY29udGVudCgpLnF1ZXJ5U2Vs
ZWN0b3IoJy5jaGFydC1wYW5lJykuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9rZXl1
cC5iaW5kKHRoaXMpKTsKIAotICAgICAgICB0aGlzLl9mZXRjaEFuYWx5c2lzVGFza3MocGxhdGZv
cm1JZCwgbWV0cmljSWQpOworICAgICAgICB0aGlzLmZldGNoQW5hbHlzaXNUYXNrcyhmYWxzZSk7
CisgICAgfQorCisgICAgaXNTYW1wbGluZ0VuYWJsZWQoKSB7IHJldHVybiAhdGhpcy5fZGlzYWJs
ZVNhbXBsaW5nOyB9CisgICAgc2V0U2FtcGxpbmdFbmFibGVkKGVuYWJsZWQpCisgICAgeworICAg
ICAgICB0aGlzLl9kaXNhYmxlU2FtcGxpbmcgPSAhZW5hYmxlZDsKKyAgICAgICAgdGhpcy5fdXBk
YXRlU291cmNlTGlzdCgpOworICAgIH0KKworICAgIGlzU2hvd2luZ091dGxpZXJzKCkgeyByZXR1
cm4gdGhpcy5fc2hvd091dGxpZXJzOyB9CisgICAgc2V0U2hvd091dGxpZXJzKHNob3cpCisgICAg
eworICAgICAgICB0aGlzLl9zaG93T3V0bGllcnMgPSAhIXNob3c7CisgICAgICAgIHRoaXMuX3Vw
ZGF0ZVNvdXJjZUxpc3QoKTsKKyAgICB9CisKKyAgICBfdXBkYXRlU291cmNlTGlzdCgpCisgICAg
eworICAgICAgICB2YXIgc291cmNlTGlzdCA9IENoYXJ0U3R5bGVzLmNyZWF0ZVNvdXJjZUxpc3Qo
dGhpcy5fcGxhdGZvcm0sIHRoaXMuX21ldHJpYywgdGhpcy5fZGlzYWJsZVNhbXBsaW5nLCB0aGlz
Ll9zaG93T3V0bGllcnMpOworICAgICAgICB0aGlzLl9tYWluQ2hhcnQuc2V0U291cmNlTGlzdChz
b3VyY2VMaXN0KTsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDaGFydC5zZXRTb3VyY2VMaXN0KHNv
dXJjZUxpc3QpOwogICAgIH0KIAotICAgIF9mZXRjaEFuYWx5c2lzVGFza3MocGxhdGZvcm1JZCwg
bWV0cmljSWQpCisgICAgZmV0Y2hBbmFseXNpc1Rhc2tzKG5vQ2FjaGUpCiAgICAgewogICAgICAg
ICAvLyBGSVhNRTogd2UgbmVlZCB0byB1cGRhdGUgdGhlIGFubm90YXRpb24gYmFycyB3aGVuIHRo
ZSBjaGFuZ2UgdHlwZSBvZiB0YXNrcyBjaGFuZ2UuCiAgICAgICAgIHZhciBzZWxmID0gdGhpczsK
LSAgICAgICAgQW5hbHlzaXNUYXNrLmZldGNoQnlQbGF0Zm9ybUFuZE1ldHJpYyhwbGF0Zm9ybUlk
LCBtZXRyaWNJZCkudGhlbihmdW5jdGlvbiAodGFza3MpIHsKKyAgICAgICAgQW5hbHlzaXNUYXNr
LmZldGNoQnlQbGF0Zm9ybUFuZE1ldHJpYyh0aGlzLl9wbGF0Zm9ybUlkLCB0aGlzLl9tZXRyaWNJ
ZCwgbm9DYWNoZSkudGhlbihmdW5jdGlvbiAodGFza3MpIHsKICAgICAgICAgICAgIHNlbGYuX3Rh
c2tzRm9yQW5ub3RhdGlvbnMgPSB0YXNrczsKICAgICAgICAgICAgIHNlbGYucmVuZGVyKCk7CiAg
ICAgICAgIH0pOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL2NoYXJ0LXN0eWxlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtc3R5bGVzLmpzCShyZXZpc2lvbiAyMDE1
MDIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hh
cnQtc3R5bGVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogCiBjbGFzcyBDaGFy
dFN0eWxlcyB7Ci0gICAgc3RhdGljIGNyZWF0ZUNoYXJ0U291cmNlTGlzdChwbGF0Zm9ybUlkLCBt
ZXRyaWNJZCkKKyAgICBzdGF0aWMgcmVzb2x2ZUNvbmZpZ3VyYXRpb24ocGxhdGZvcm1JZCwgbWV0
cmljSWQpCiAgICAgewogICAgICAgICB2YXIgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChw
bGF0Zm9ybUlkKTsKICAgICAgICAgdmFyIG1ldHJpYyA9IE1ldHJpYy5maW5kQnlJZChtZXRyaWNJ
ZCk7CkBAIC0xMSwyNiArMTEsMzUgQEAgY2xhc3MgQ2hhcnRTdHlsZXMgewogICAgICAgICBpZiAo
IWxhc3RNb2RpZmllZCkKICAgICAgICAgICAgIHJldHVybiB7cGxhdGZvcm06IHBsYXRmb3JtLCBt
ZXRyaWM6IG1ldHJpYywgZXJyb3I6IGBObyByZXN1bHRzIG9uICR7cGxhdGZvcm0ubmFtZSgpfWB9
OwogCi0gICAgICAgIHZhciBtZWFzdXJlbWVudFNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQo
cGxhdGZvcm0uaWQoKSwgbWV0cmljLmlkKCksIGxhc3RNb2RpZmllZCk7Ci0gICAgICAgIHZhciBz
b3VyY2VMaXN0ID0gWwotICAgICAgICAgICAgdGhpcy5iYXNlbGluZVN0eWxlKG1lYXN1cmVtZW50
U2V0LCAnYmFzZWxpbmUnKSwKLSAgICAgICAgICAgIHRoaXMudGFyZ2V0U3R5bGUobWVhc3VyZW1l
bnRTZXQsICd0YXJnZXQnKSwKLSAgICAgICAgICAgIHRoaXMuY3VycmVudFN0eWxlKG1lYXN1cmVt
ZW50U2V0LCAnY3VycmVudCcpLAotICAgICAgICBdOwotCiAgICAgICAgIHJldHVybiB7CiAgICAg
ICAgICAgICBwbGF0Zm9ybTogcGxhdGZvcm0sCiAgICAgICAgICAgICBtZXRyaWM6IG1ldHJpYywK
LSAgICAgICAgICAgIHNvdXJjZUxpc3Q6IHNvdXJjZUxpc3QsCiAgICAgICAgIH07CiAgICAgfQog
Ci0gICAgc3RhdGljIGJhc2VsaW5lU3R5bGUobWVhc3VyZW1lbnRTZXQpCisgICAgc3RhdGljIGNy
ZWF0ZVNvdXJjZUxpc3QocGxhdGZvcm0sIG1ldHJpYywgZGlzYWJsZVNhbXBsaW5nLCBpbmNsdWRl
T3V0bGllcikKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNl
b2YgUGxhdGZvcm0pOworICAgICAgICBjb25zb2xlLmFzc2VydChtZXRyaWMgaW5zdGFuY2VvZiBN
ZXRyaWMpOworCisgICAgICAgIHZhciBsYXN0TW9kaWZpZWQgPSBwbGF0Zm9ybS5sYXN0TW9kaWZp
ZWQobWV0cmljKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobGFzdE1vZGlmaWVkKTsKKworICAg
ICAgICB2YXIgbWVhc3VyZW1lbnRTZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KHBsYXRmb3Jt
LmlkKCksIG1ldHJpYy5pZCgpLCBsYXN0TW9kaWZpZWQpOworICAgICAgICByZXR1cm4gWworICAg
ICAgICAgICAgdGhpcy5iYXNlbGluZVN0eWxlKG1lYXN1cmVtZW50U2V0LCBkaXNhYmxlU2FtcGxp
bmcsIGluY2x1ZGVPdXRsaWVyKSwKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0U3R5bGUobWVhc3Vy
ZW1lbnRTZXQsIGRpc2FibGVTYW1wbGluZywgaW5jbHVkZU91dGxpZXIpLAorICAgICAgICAgICAg
dGhpcy5jdXJyZW50U3R5bGUobWVhc3VyZW1lbnRTZXQsIGRpc2FibGVTYW1wbGluZywgaW5jbHVk
ZU91dGxpZXIpLAorICAgICAgICBdOworICAgIH0KKworICAgIHN0YXRpYyBiYXNlbGluZVN0eWxl
KG1lYXN1cmVtZW50U2V0LCBkaXNhYmxlU2FtcGxpbmcsIGluY2x1ZGVPdXRsaWVyKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIG1lYXN1cmVtZW50U2V0OiBtZWFzdXJlbWVu
dFNldCwKICAgICAgICAgICAgIGV4dGVuZFRvRnV0dXJlOiB0cnVlLAotICAgICAgICAgICAgc2Ft
cGxlRGF0YTogdHJ1ZSwKKyAgICAgICAgICAgIHNhbXBsZURhdGE6ICFkaXNhYmxlU2FtcGxpbmcs
CisgICAgICAgICAgICBpbmNsdWRlT3V0bGllcnM6IGluY2x1ZGVPdXRsaWVyLAogICAgICAgICAg
ICAgdHlwZTogJ2Jhc2VsaW5lJywKICAgICAgICAgICAgIHBvaW50U3R5bGU6ICcjZjMzJywKICAg
ICAgICAgICAgIHBvaW50UmFkaXVzOiAyLApAQCAtNDEsMTIgKzUwLDEzIEBAIGNsYXNzIENoYXJ0
U3R5bGVzIHsKICAgICAgICAgfTsKICAgICB9CiAKLSAgICBzdGF0aWMgdGFyZ2V0U3R5bGUobWVh
c3VyZW1lbnRTZXQpCisgICAgc3RhdGljIHRhcmdldFN0eWxlKG1lYXN1cmVtZW50U2V0LCBkaXNh
YmxlU2FtcGxpbmcsIGluY2x1ZGVPdXRsaWVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIHsKICAg
ICAgICAgICAgIG1lYXN1cmVtZW50U2V0OiBtZWFzdXJlbWVudFNldCwKICAgICAgICAgICAgIGV4
dGVuZFRvRnV0dXJlOiB0cnVlLAotICAgICAgICAgICAgc2FtcGxlRGF0YTogdHJ1ZSwKKyAgICAg
ICAgICAgIHNhbXBsZURhdGE6ICFkaXNhYmxlU2FtcGxpbmcsCisgICAgICAgICAgICBpbmNsdWRl
T3V0bGllcnM6IGluY2x1ZGVPdXRsaWVyLAogICAgICAgICAgICAgdHlwZTogJ3RhcmdldCcsCiAg
ICAgICAgICAgICBwb2ludFN0eWxlOiAnIzMzZicsCiAgICAgICAgICAgICBwb2ludFJhZGl1czog
MiwKQEAgLTU3LDExICs2NywxMiBAQCBjbGFzcyBDaGFydFN0eWxlcyB7CiAgICAgICAgIH07CiAg
ICAgfQogCi0gICAgc3RhdGljIGN1cnJlbnRTdHlsZShtZWFzdXJlbWVudFNldCkKKyAgICBzdGF0
aWMgY3VycmVudFN0eWxlKG1lYXN1cmVtZW50U2V0LCBkaXNhYmxlU2FtcGxpbmcsIGluY2x1ZGVP
dXRsaWVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIG1lYXN1cmVtZW50
U2V0OiBtZWFzdXJlbWVudFNldCwKLSAgICAgICAgICAgIHNhbXBsZURhdGE6IHRydWUsCisgICAg
ICAgICAgICBzYW1wbGVEYXRhOiAhZGlzYWJsZVNhbXBsaW5nLAorICAgICAgICAgICAgaW5jbHVk
ZU91dGxpZXJzOiBpbmNsdWRlT3V0bGllciwKICAgICAgICAgICAgIHR5cGU6ICdjdXJyZW50JywK
ICAgICAgICAgICAgIHBvaW50U3R5bGU6ICcjMzMzJywKICAgICAgICAgICAgIHBvaW50UmFkaXVz
OiAyLApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L2ludGVyYWN0aXZlLXRpbWUtc2VyaWVzLWNoYXJ0LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9pbnRlcmFjdGl2ZS10aW1lLXNl
cmllcy1jaGFydC5qcwkocmV2aXNpb24gMjAxNTAyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9jb21wb25lbnRzL2ludGVyYWN0aXZlLXRpbWUtc2VyaWVzLWNoYXJ0Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xOCwxMyArMTgsMjAgQEAgY2xhc3MgSW50ZXJhY3RpdmVUaW1l
U2VyaWVzQ2hhcnQgZXh0ZW5kcwogCiAgICAgY3VycmVudFBvaW50KGRpZmYpCiAgICAgewotICAg
ICAgICBpZiAoIXRoaXMuX3NhbXBsZWRUaW1lU2VyaWVzRGF0YSkKLSAgICAgICAgICAgIHJldHVy
biBudWxsOwotCiAgICAgICAgIHZhciBpZCA9IHRoaXMuX2luZGljYXRvcklEOwogICAgICAgICBp
ZiAoIWlkKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAKKyAgICAgICAgaWYgKCF0aGlzLl9z
YW1wbGVkVGltZVNlcmllc0RhdGEpIHsKKyAgICAgICAgICAgIHRoaXMuX2Vuc3VyZUZldGNoZWRU
aW1lU2VyaWVzKCk7CisgICAgICAgICAgICBmb3IgKHZhciBzZXJpZXMgb2YgdGhpcy5fZmV0Y2hl
ZFRpbWVTZXJpZXMpIHsKKyAgICAgICAgICAgICAgICB2YXIgcG9pbnQgPSBzZXJpZXMuZmluZEJ5
SWQoaWQpOworICAgICAgICAgICAgICAgIGlmIChwb2ludCkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHBvaW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7Cisg
ICAgICAgIH0KKwogICAgICAgICBmb3IgKHZhciBkYXRhIG9mIHRoaXMuX3NhbXBsZWRUaW1lU2Vy
aWVzRGF0YSkgewogICAgICAgICAgICAgaWYgKCFkYXRhKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwpAQCAtNDAsNiArNDcsMjEgQEAgY2xhc3MgSW50ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQg
ZXh0ZW5kcwogCiAgICAgY3VycmVudFNlbGVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX3NlbGVjdGlv
blRpbWVSYW5nZTsgfQogCisgICAgc2VsZWN0ZWRQb2ludHModHlwZSkKKyAgICB7CisgICAgICAg
IHZhciBzZWxlY3Rpb24gPSB0aGlzLl9zZWxlY3Rpb25UaW1lUmFuZ2U7CisgICAgICAgIHJldHVy
biBzZWxlY3Rpb24gPyB0aGlzLnNhbXBsZWREYXRhQmV0d2Vlbih0eXBlLCBzZWxlY3Rpb25bMF0s
IHNlbGVjdGlvblsxXSkgOiBudWxsOworICAgIH0KKworICAgIGZpcnN0U2VsZWN0ZWRQb2ludCh0
eXBlKQorICAgIHsKKyAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuX3NlbGVjdGlvblRpbWVS
YW5nZTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbiA/IHRoaXMuZmlyc3RTYW1wbGVkUG9pbnRC
ZXR3ZWVuVGltZSh0eXBlLCBzZWxlY3Rpb25bMF0sIHNlbGVjdGlvblsxXSkgOiBudWxsOworICAg
IH0KKworICAgIGxvY2tlZEluZGljYXRvcigpIHsgcmV0dXJuIHRoaXMuX2luZGljYXRvcklzTG9j
a2VkID8gdGhpcy5jdXJyZW50UG9pbnQoKSA6IG51bGw7IH0KKworCiAgICAgc2V0SW5kaWNhdG9y
KGlkLCBzaG91bGRMb2NrKQogICAgIHsKICAgICAgICAgdmFyIHNlbGVjdGlvbkRpZENoYW5nZSA9
ICEhdGhpcy5fc2FtcGxlZFRpbWVTZXJpZXNEYXRhOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3RpbWUtc2VyaWVzLWNoYXJ0LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90aW1l
LXNlcmllcy1jaGFydC5qcwkocmV2aXNpb24gMjAxNTAyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3RpbWUtc2VyaWVzLWNoYXJ0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC02Niw5ICs2NiwyMCBAQCBjbGFzcyBUaW1lU2VyaWVzQ2hhcnQgZXh0ZW5kcyBD
b21wb25lbnRCCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0VGltZSA8IGVuZFRpbWUsICdz
dGFydFRpbWUgbXVzdCBiZSBiZWZvcmUgZW5kVGltZScpOwogICAgICAgICB0aGlzLl9zdGFydFRp
bWUgPSBzdGFydFRpbWU7CiAgICAgICAgIHRoaXMuX2VuZFRpbWUgPSBlbmRUaW1lOworICAgICAg
ICB0aGlzLmZldGNoTWVhc3VyZW1lbnRTZXRzKGZhbHNlKTsKKyAgICB9CisKKyAgICBzZXRTb3Vy
Y2VMaXN0KHNvdXJjZUxpc3QpCisgICAgeworICAgICAgICB0aGlzLl9zb3VyY2VMaXN0ID0gc291
cmNlTGlzdDsKKyAgICAgICAgdGhpcy5mZXRjaE1lYXN1cmVtZW50U2V0cyhmYWxzZSk7CisgICAg
fQorCisgICAgZmV0Y2hNZWFzdXJlbWVudFNldHMobm9DYWNoZSkKKyAgICB7CiAgICAgICAgIGZv
ciAodmFyIHNvdXJjZSBvZiB0aGlzLl9zb3VyY2VMaXN0KSB7CiAgICAgICAgICAgICBpZiAoc291
cmNlLm1lYXN1cmVtZW50U2V0KQotICAgICAgICAgICAgICAgIHNvdXJjZS5tZWFzdXJlbWVudFNl
dC5mZXRjaEJldHdlZW4oc3RhcnRUaW1lLCBlbmRUaW1lLCB0aGlzLl9kaWRGZXRjaE1lYXN1cmVt
ZW50U2V0LmJpbmQodGhpcywgc291cmNlLm1lYXN1cmVtZW50U2V0KSk7CisgICAgICAgICAgICAg
ICAgc291cmNlLm1lYXN1cmVtZW50U2V0LmZldGNoQmV0d2Vlbih0aGlzLl9zdGFydFRpbWUsIHRo
aXMuX2VuZFRpbWUsIHRoaXMuX2RpZEZldGNoTWVhc3VyZW1lbnRTZXQuYmluZCh0aGlzLCBzb3Vy
Y2UubWVhc3VyZW1lbnRTZXQpLCBub0NhY2hlKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9z
YW1wbGVkVGltZVNlcmllc0RhdGEgPSBudWxsOwogICAgICAgICB0aGlzLl92YWx1ZVJhbmdlQ2Fj
aGUgPSBudWxsOwpAQCAtMTAzLDYgKzExNCwxNCBAQCBjbGFzcyBUaW1lU2VyaWVzQ2hhcnQgZXh0
ZW5kcyBDb21wb25lbnRCCiAgICAgICAgIHJldHVybiBkYXRhLmZpbHRlcihmdW5jdGlvbiAocG9p
bnQpIHsgcmV0dXJuIHN0YXJ0VGltZSA8PSBwb2ludC50aW1lICYmIHBvaW50LnRpbWUgPD0gZW5k
VGltZTsgfSk7CiAgICAgfQogCisgICAgZmlyc3RTYW1wbGVkUG9pbnRCZXR3ZWVuVGltZSh0eXBl
LCBzdGFydFRpbWUsIGVuZFRpbWUpCisgICAgeworICAgICAgICB2YXIgZGF0YSA9IHRoaXMuc2Ft
cGxlZFRpbWVTZXJpZXNEYXRhKHR5cGUpOworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAg
ICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIGRhdGEuZmluZChmdW5jdGlvbiAocG9pbnQp
IHsgcmV0dXJuIHN0YXJ0VGltZSA8PSBwb2ludC50aW1lICYmIHBvaW50LnRpbWUgPD0gZW5kVGlt
ZTsgfSk7CisgICAgfQorCiAgICAgc2V0QW5ub3RhdGlvbnMoYW5ub3RhdGlvbnMpCiAgICAgewog
ICAgICAgICB0aGlzLl9hbm5vdGF0aW9ucyA9IGFubm90YXRpb25zOwpJbmRleDogV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNp
cy10YXNrLmpzCShyZXZpc2lvbiAyMDE1MDIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNjYs
OSArMTY2LDkgQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdAogICAg
ICAgICByZXR1cm4gdGhpcy5fZmV0Y2hTdWJzZXQoe2J1aWxkUmVxdWVzdDogaWR9KS50aGVuKGZ1
bmN0aW9uICh0YXNrcykgeyByZXR1cm4gdGFza3NbMF07IH0pOwogICAgIH0KIAotICAgIHN0YXRp
YyBmZXRjaEJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1JZCwgbWV0cmljSWQpCisgICAgc3Rh
dGljIGZldGNoQnlQbGF0Zm9ybUFuZE1ldHJpYyhwbGF0Zm9ybUlkLCBtZXRyaWNJZCwgbm9DYWNo
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9mZXRjaFN1YnNldCh7cGxhdGZvcm06IHBs
YXRmb3JtSWQsIG1ldHJpYzogbWV0cmljSWR9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9mZXRjaFN1YnNldCh7cGxhdGZvcm06IHBsYXRmb3JtSWQsIG1ldHJp
YzogbWV0cmljSWR9LCBub0NhY2hlKS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICAg
ICByZXR1cm4gQW5hbHlzaXNUYXNrLmZpbmRCeVBsYXRmb3JtQW5kTWV0cmljKHBsYXRmb3JtSWQs
IG1ldHJpY0lkKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtMTk4LDExICsxOTgsMTEgQEAgY2xh
c3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdAogICAgICAgICB9KTsKICAgICB9
CiAKLSAgICBzdGF0aWMgX2ZldGNoU3Vic2V0KHBhcmFtcykKKyAgICBzdGF0aWMgX2ZldGNoU3Vi
c2V0KHBhcmFtcywgbm9DYWNoZSkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9mZXRjaEFsbFBy
b21pc2UpCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZmV0Y2hBbGxQcm9taXNlOwotICAgICAg
ICByZXR1cm4gdGhpcy5jYWNoZWRGZXRjaCgnLi4vYXBpL2FuYWx5c2lzLXRhc2tzJywgcGFyYW1z
KS50aGVuKHRoaXMuX2NvbnN0cnVjdEFuYWx5c2lzVGFza3NGcm9tUmF3RGF0YS5iaW5kKHRoaXMp
KTsKKyAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkRmV0Y2goJy4uL2FwaS9hbmFseXNpcy10YXNr
cycsIHBhcmFtcywgbm9DYWNoZSkudGhlbih0aGlzLl9jb25zdHJ1Y3RBbmFseXNpc1Rhc2tzRnJv
bVJhd0RhdGEuYmluZCh0aGlzKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGZldGNoQWxsKCkKSW5k
ZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21lYXN1cmVtZW50
LWFkYXB0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvbWVhc3VyZW1lbnQtYWRhcHRvci5qcwkocmV2aXNpb24gMjAxNTAyKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtYWRh
cHRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsMTEgQEAgY2xhc3MgTWVhc3VyZW1l
bnRBZGFwdG9yIHsKICAgICAgICAgcmV0dXJuIHJvd1t0aGlzLl9pZEluZGV4XTsKICAgICB9CiAK
KyAgICBpc091dGxpZXIocm93KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJvd1t0aGlzLl9tYXJr
ZWRPdXRsaWVySW5kZXhdOworICAgIH0KKwogICAgIGFwcGx5VG9BbmFseXNpc1Jlc3VsdHMocm93
KQogICAgIHsKICAgICAgICAgdmFyIGFkYXB0ZWRSb3cgPSB0aGlzLmFwcGx5VG8ocm93KTsKQEAg
LTUwLDYgKzU1LDcgQEAgY2xhc3MgTWVhc3VyZW1lbnRBZGFwdG9yIHsKICAgICAgICAgdmFyIHNl
bGYgPSB0aGlzOwogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgaWQ6IGlkLAorICAgICAg
ICAgICAgbWFya2VkT3V0bGllcjogcm93W3RoaXMuX21hcmtlZE91dGxpZXJJbmRleF0sCiAgICAg
ICAgICAgICBidWlsZElkOiBidWlsZElkLAogICAgICAgICAgICAgbWV0cmljSWQ6IG51bGwsCiAg
ICAgICAgICAgICBjb25maWdUeXBlOiBudWxsLApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtY2x1c3Rlci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVudC1j
bHVzdGVyLmpzCShyZXZpc2lvbiAyMDE1MDIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVudC1jbHVzdGVyLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw3ICsyMSw3IEBAIGNsYXNzIE1lYXN1cmVtZW50Q2x1c3RlciB7CiAgICAgICAgICAgICB2
YXIgaWQgPSBzZWxmLl9hZGFwdG9yLmV4dHJhY3RJZChyb3cpOwogICAgICAgICAgICAgaWYgKGlk
IGluIGlkTWFwKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChyb3db
c2VsZi5fbWFya2VkT3V0bGllckluZGV4XSAmJiAhaW5jbHVkZU91dGxpZXJzKQorICAgICAgICAg
ICAgaWYgKHNlbGYuX2FkYXB0b3IuaXNPdXRsaWVyKHJvdykgJiYgIWluY2x1ZGVPdXRsaWVycykK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGlkTWFwW2lkXSA9IHRydWU7
CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZWFzdXJl
bWVudC1zZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0LmpzCShyZXZpc2lvbiAyMDE1MDIpCisrKyBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVudC1zZXQuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTU1LDEwICs1NSwxNCBAQCBjbGFzcyBNZWFzdXJlbWVudFNldCB7
CiAgICAgICAgIHJldHVybiBjbHVzdGVyczsKICAgICB9CiAKLSAgICBmZXRjaEJldHdlZW4oc3Rh
cnRUaW1lLCBlbmRUaW1lLCBjYWxsYmFjaykKKyAgICBmZXRjaEJldHdlZW4oc3RhcnRUaW1lLCBl
bmRUaW1lLCBjYWxsYmFjaywgbm9DYWNoZSkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fcHJp
bWFyeUNsdXN0ZXJQcm9taXNlKQotICAgICAgICAgICAgdGhpcy5fcHJpbWFyeUNsdXN0ZXJQcm9t
aXNlID0gdGhpcy5fZmV0Y2hQcmltYXJ5Q2x1c3RlcigpOworICAgICAgICBpZiAobm9DYWNoZSkg
eworICAgICAgICAgICAgdGhpcy5fcHJpbWFyeUNsdXN0ZXJQcm9taXNlID0gbnVsbDsKKyAgICAg
ICAgICAgIHRoaXMuX2FsbEZldGNoZXMgPSB7fTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRo
aXMuX3ByaW1hcnlDbHVzdGVyUHJvbWlzZSB8fCBub0NhY2hlKQorICAgICAgICAgICAgdGhpcy5f
cHJpbWFyeUNsdXN0ZXJQcm9taXNlID0gdGhpcy5fZmV0Y2hQcmltYXJ5Q2x1c3Rlcihub0NhY2hl
KTsKICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgICB0aGlzLl9wcmltYXJ5Q2x1c3Rl
clByb21pc2UuY2F0Y2goY2FsbGJhY2spOwogICAgICAgICByZXR1cm4gdGhpcy5fcHJpbWFyeUNs
dXN0ZXJQcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkgewpAQCAtODYsOCArOTAsMTYgQEAgY2xhc3Mg
TWVhc3VyZW1lbnRTZXQgewogICAgICAgICByZXR1cm4gdXJsOwogICAgIH0KIAotICAgIF9mZXRj
aFByaW1hcnlDbHVzdGVyKCkgeworICAgIF9mZXRjaFByaW1hcnlDbHVzdGVyKG5vQ2FjaGUpCisg
ICAgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIGlmIChub0NhY2hlKSB7Cisg
ICAgICAgICAgICByZXR1cm4gUmVtb3RlQVBJLmdldEpTT05XaXRoU3RhdHVzKHNlbGYuX2NvbnN0
cnVjdFVybChmYWxzZSwgbnVsbCkpLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHsKKyAgICAgICAgICAg
ICAgICBzZWxmLl9kaWRGZXRjaEpTT04odHJ1ZSwgZGF0YSk7CisgICAgICAgICAgICAgICAgc2Vs
Zi5fYWxsRmV0Y2hlc1tzZWxmLl9wcmltYXJ5Q2x1c3RlckVuZFRpbWVdID0gc2VsZi5fcHJpbWFy
eUNsdXN0ZXJQcm9taXNlOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwogICAgICAgICBy
ZXR1cm4gUmVtb3RlQVBJLmdldEpTT05XaXRoU3RhdHVzKHNlbGYuX2NvbnN0cnVjdFVybCh0cnVl
LCBudWxsKSkudGhlbihmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICAgaWYgKCtkYXRhWyds
YXN0TW9kaWZpZWQnXSA8IHNlbGYuX2xhc3RNb2RpZmllZCkKICAgICAgICAgICAgICAgICByZXR1
cm4gUmVtb3RlQVBJLmdldEpTT05XaXRoU3RhdHVzKHNlbGYuX2NvbnN0cnVjdFVybChmYWxzZSwg
bnVsbCkpOwpAQCAtMTAyLDcgKzExNCw4IEBAIGNsYXNzIE1lYXN1cmVtZW50U2V0IHsKICAgICAg
ICAgfSk7CiAgICAgfQogCi0gICAgX2ZldGNoU2Vjb25kYXJ5Q2x1c3RlcihlbmRUaW1lKSB7Cisg
ICAgX2ZldGNoU2Vjb25kYXJ5Q2x1c3RlcihlbmRUaW1lKQorICAgIHsKICAgICAgICAgdmFyIHNl
bGYgPSB0aGlzOwogICAgICAgICByZXR1cm4gUmVtb3RlQVBJLmdldEpTT05XaXRoU3RhdHVzKHNl
bGYuX2NvbnN0cnVjdFVybCh0cnVlLCBlbmRUaW1lKSkudGhlbihmdW5jdGlvbiAoZGF0YSkgewog
ICAgICAgICAgICAgc2VsZi5fZGlkRmV0Y2hKU09OKGZhbHNlLCBkYXRhKTsKQEAgLTExMSw4ICsx
MjQsNiBAQCBjbGFzcyBNZWFzdXJlbWVudFNldCB7CiAKICAgICBfZGlkRmV0Y2hKU09OKGlzUHJp
bWFyeUNsdXN0ZXIsIHJlc3BvbnNlLCBjbHVzdGVyRW5kVGltZSkKICAgICB7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGlzUHJpbWFyeUNsdXN0ZXIpOwotCiAgICAgICAgIGlmIChpc1ByaW1hcnlD
bHVzdGVyKSB7CiAgICAgICAgICAgICB0aGlzLl9wcmltYXJ5Q2x1c3RlckVuZFRpbWUgPSByZXNw
b25zZVsnZW5kVGltZSddOwogICAgICAgICAgICAgdGhpcy5fY2x1c3RlckNvdW50ID0gcmVzcG9u
c2VbJ2NsdXN0ZXJDb3VudCddOwpAQCAtMTI2LDEwICsxMzcsMTQgQEAgY2xhc3MgTWVhc3VyZW1l
bnRTZXQgewogCiAgICAgX2FkZEZldGNoZWRDbHVzdGVyKGNsdXN0ZXIpCiAgICAgeworICAgICAg
ICBmb3IgKHZhciBjbHVzdGVySW5kZXggPSAwOyBjbHVzdGVySW5kZXggPCB0aGlzLl9zb3J0ZWRD
bHVzdGVycy5sZW5ndGg7IGNsdXN0ZXJJbmRleCsrKSB7CisgICAgICAgICAgICB2YXIgc3RhcnRU
aW1lID0gdGhpcy5fc29ydGVkQ2x1c3RlcnNbY2x1c3RlckluZGV4XS5zdGFydFRpbWUoKTsKKyAg
ICAgICAgICAgIGlmIChjbHVzdGVyLnN0YXJ0VGltZSgpIDw9IHN0YXJ0VGltZSkgeworICAgICAg
ICAgICAgICAgIHRoaXMuX3NvcnRlZENsdXN0ZXJzLnNwbGljZShjbHVzdGVySW5kZXgsIHN0YXJ0
VGltZSA9PSBjbHVzdGVyLnN0YXJ0VGltZSgpID8gMSA6IDAsIGNsdXN0ZXIpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICB0aGlzLl9z
b3J0ZWRDbHVzdGVycy5wdXNoKGNsdXN0ZXIpOwotICAgICAgICB0aGlzLl9zb3J0ZWRDbHVzdGVy
cyA9IHRoaXMuX3NvcnRlZENsdXN0ZXJzLnNvcnQoZnVuY3Rpb24gKGMxLCBjMikgewotICAgICAg
ICAgICAgcmV0dXJuIGMxLnN0YXJ0VGltZSgpIC0gYzIuc3RhcnRUaW1lKCk7Ci0gICAgICAgIH0p
OwogICAgIH0KIAogICAgIGhhc0ZldGNoZWRSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpCkluZGV4
OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy90aW1lLXNlcmllcy5qcwkocmV2aXNpb24gMjAxNTAyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTYxLDEzICs2MSw5IEBAIFRpbWVTZXJpZXMgPSBjbGFzcyB7CiAKICAgICBkYXRhQmV0d2VlblBv
aW50cyhmaXJzdFBvaW50LCBsYXN0UG9pbnQpCiAgICAgewotICAgICAgICB2YXIgZGF0YSA9IHRo
aXMuX2RhdGE7Ci0gICAgICAgIHZhciBmaWx0ZXJlZERhdGEgPSBbXTsKLSAgICAgICAgZm9yICh2
YXIgaSA9IGZpcnN0UG9pbnQuc2VyaWVzSW5kZXg7IGkgPD0gbGFzdFBvaW50LnNlcmllc0luZGV4
OyBpKyspIHsKLSAgICAgICAgICAgIGlmICghZGF0YVtpXS5tYXJrZWRPdXRsaWVyKQotICAgICAg
ICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKGRhdGFbaV0pOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBmaWx0ZXJlZERhdGE7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZpcnN0UG9pbnQu
c2VyaWVzID09IHRoaXMpOworICAgICAgICBjb25zb2xlLmFzc2VydChsYXN0UG9pbnQuc2VyaWVz
ID09IHRoaXMpOworICAgICAgICByZXR1cm4gdGhpcy5fZGF0YS5zbGljZShmaXJzdFBvaW50LnNl
cmllc0luZGV4LCBsYXN0UG9pbnQuc2VyaWVzSW5kZXggKyAxKTsKICAgICB9CiAKIH07CkluZGV4
OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9j
aGFydC1wYW5lLmpzCShyZXZpc2lvbiAyMDE1MDIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyAr
Niw3IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogCiAgICAgICAg
IHRoaXMuX21haW5DaGFydEluZGljYXRvcldhc0xvY2tlZCA9IGZhbHNlOwogICAgICAgICB0aGlz
Ll9jaGFydHNQYWdlID0gY2hhcnRzUGFnZTsKLSAgICAgICAgdGhpcy5fcGFuZU9wZW5lZEJ5Q2xp
Y2sgPSBudWxsOworICAgICAgICB0aGlzLl9sb2NrZWRQb3BvdmVyID0gbnVsbDsKIAogICAgICAg
ICB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdjbG9zZS1idXR0b24nKS5jb21wb25lbnQo
KS5zZXRDYWxsYmFjayhjaGFydHNQYWdlLmNsb3NlUGFuZS5iaW5kKGNoYXJ0c1BhZ2UsIHRoaXMp
KTsKIApAQCAtMjQsNiArMjQsMTYgQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5l
QmFzZSB7CiAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9tYWluQ2hhcnRJbmRpY2F0b3JXYXNM
b2NrZWQgJiYgY3VycmVudFBvaW50KQogICAgICAgICAgICAgICAgIHN0YXRlWzJdID0gY3VycmVu
dFBvaW50LmlkOwogICAgICAgICB9CisKKyAgICAgICAgdmFyIGdyYXBoT3B0aW9ucyA9IG5ldyBT
ZXQ7CisgICAgICAgIGlmICghdGhpcy5pc1NhbXBsaW5nRW5hYmxlZCgpKQorICAgICAgICAgICAg
Z3JhcGhPcHRpb25zLmFkZCgnbm9TYW1wbGluZycpOworICAgICAgICBpZiAodGhpcy5pc1Nob3dp
bmdPdXRsaWVycygpKQorICAgICAgICAgICAgZ3JhcGhPcHRpb25zLmFkZCgnc2hvd091dGxpZXJz
Jyk7CisKKyAgICAgICAgaWYgKGdyYXBoT3B0aW9ucy5zaXplKQorICAgICAgICAgICAgc3RhdGVb
M10gPSBncmFwaE9wdGlvbnM7CisKICAgICAgICAgcmV0dXJuIHN0YXRlOwogICAgIH0KIApAQCAt
NDAsNiArNTAsMTggQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAg
ICAgICAgICAgICB0aGlzLl9tYWluQ2hhcnRJbmRpY2F0b3JXYXNMb2NrZWQgPSB0cnVlOwogICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgIHRoaXMuX21haW5DaGFydC5zZXRJbmRpY2F0b3IobnVs
bCwgZmFsc2UpOworCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGZvcmNlcyBzb3VyY2VMaXN0IHRv
IGJlIHNldCB0d2ljZS4gRmlyc3QgaW4gY29uZmlndXJlIGluc2lkZSB0aGUgY29uc3RydWN0b3Ig
dGhlbiBoZXJlLgorICAgICAgICB2YXIgZ3JhcGhPcHRpb25zID0gc3RhdGVbM107CisgICAgICAg
IGlmIChncmFwaE9wdGlvbnMgaW5zdGFuY2VvZiBTZXQpIHsKKyAgICAgICAgICAgIHRoaXMuc2V0
U2FtcGxpbmdFbmFibGVkKCFncmFwaE9wdGlvbnMuaGFzKCdub3NhbXBsaW5nJykpOworICAgICAg
ICAgICAgdGhpcy5zZXRTaG93T3V0bGllcnMoZ3JhcGhPcHRpb25zLmhhcygnc2hvd291dGxpZXJz
JykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IFNob3cgZnVsbCB5LWF4aXMgd2hl
biBncmFwaE9wdGlvbnMgaXMgdHJ1ZSB0byBiZSBjb21wYXRpYmxlIHdpdGggdjIgVUkuCisgICAg
ICAgIC8vIEZJWE1FOiBzdGF0ZVs0XSBzcGVjaWZpZXMgbW92aW5nIGF2ZXJhZ2UgaW4gdjIgVUkK
KyAgICAgICAgLy8gRklYTUU6IHN0YXRlWzVdIHNwZWNpZmllcyBlbnZlbG9wZSBpbiB2MiBVSQor
ICAgICAgICAvLyBGSVhNRTogc3RhdGVbNl0gc3BlY2lmaWVzIGNoYW5nZSBkZXRlY3Rpb24gYWxn
b3JpdGhtIGluIHYyIFVJCiAgICAgfQogCiAgICAgc2V0T3ZlcnZpZXdTZWxlY3Rpb24oc2VsZWN0
aW9uKQpAQCAtOTAsNiArMTEyLDM1IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFu
ZUJhc2UgewogICAgICAgICBzdXBlci5faW5kaWNhdG9yRGlkQ2hhbmdlKGluZGljYXRvcklELCBp
c0xvY2tlZCk7CiAgICAgfQogCisgICAgX2FuYWx5emVSYW5nZShwb2ludHNSYW5nZUZvckFuYWx5
c2lzKQorICAgIHsKKyAgICAgICAgdmFyIHJvdXRlciA9IHRoaXMuX2NoYXJ0c1BhZ2Uucm91dGVy
KCk7CisgICAgICAgIHZhciBuZXdXaW5kb3cgPSB3aW5kb3cub3Blbihyb3V0ZXIudXJsKCdhbmFs
eXNpcy90YXNrL2NyZWF0ZScpLCAnX2JsYW5rJyk7CisKKyAgICAgICAgdmFyIGFuYWx5emVQb3Bv
dmVyID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUtYW5hbHl6ZS1w
b3BvdmVyJyk7CisgICAgICAgIHZhciBuYW1lID0gYW5hbHl6ZVBvcG92ZXIucXVlcnlTZWxlY3Rv
cignaW5wdXQnKS52YWx1ZTsKKyAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICBBbmFs
eXNpc1Rhc2suY3JlYXRlKG5hbWUsIHBvaW50c1JhbmdlRm9yQW5hbHlzaXMuc3RhcnRQb2ludElk
LCBwb2ludHNSYW5nZUZvckFuYWx5c2lzLmVuZFBvaW50SWQpLnRoZW4oZnVuY3Rpb24gKGRhdGEp
IHsKKyAgICAgICAgICAgIG5ld1dpbmRvdy5sb2NhdGlvbi5ocmVmID0gcm91dGVyLnVybCgnYW5h
bHlzaXMvdGFzay8nICsgZGF0YVsndGFza0lkJ10pOworICAgICAgICAgICAgc2VsZi5mZXRjaEFu
YWx5c2lzVGFza3ModHJ1ZSk7CisgICAgICAgICAgICAvLyBGSVhNRTogUmVmZXRjaCB0aGUgbGlz
dCBvZiBhbmFseXNpcyB0YXNrcy4KKyAgICAgICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7CisgICAg
ICAgICAgICBuZXdXaW5kb3cubG9jYXRpb24uaHJlZiA9IHJvdXRlci51cmwoJ2FuYWx5c2lzL3Rh
c2svY3JlYXRlJywge2Vycm9yOiBlcnJvcn0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBf
bWFya0FzT3V0bGllcihtYXJrQXNPdXRsaWVyLCBwb2ludHMpCisgICAgeworICAgICAgICB2YXIg
c2VsZiA9IHRoaXM7CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwb2ludHMubWFwKGZ1bmN0
aW9uIChwb2ludCkgeworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydydW4nOiBwb2ludC5pZCwgJ21hcmtlZE91dGxpZXIn
OiBtYXJrQXNPdXRsaWVyfSk7CisgICAgICAgIH0pKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIHNlbGYuX21haW5DaGFydC5mZXRjaE1lYXN1cmVtZW50U2V0cyh0cnVlIC8qIG5vQ2Fj
aGUgKi8pOworICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHsKKyAgICAgICAgICAgIGFsZXJ0
KCdGYWlsZWQgdG8gdXBkYXRlIHRoZSBvdXRsaWVyIHN0YXR1czogJyArIGVycm9yKTsKKyAgICAg
ICAgfSkuY2F0Y2goKTsKKyAgICB9CisKICAgICByZW5kZXIoKQogICAgIHsKICAgICAgICAgaWYg
KHRoaXMuX3BsYXRmb3JtICYmIHRoaXMuX21ldHJpYykgewpAQCAtMTIyLDExMyArMTczLDEzOCBA
QCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgICAgIH0p
KSk7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgcGxhdGZvcm1QYW5lID0gdGhpcy5jb250ZW50
KCkucXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUtYWx0ZXJuYXRpdmUtcGxhdGZvcm1zJyk7Cisg
ICAgICAgIHZhciBwbGF0Zm9ybVBvcG92ZXIgPSB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9y
KCcuY2hhcnQtcGFuZS1hbHRlcm5hdGl2ZS1wbGF0Zm9ybXMnKTsKICAgICAgICAgdmFyIGFsdGVy
bmF0aXZlUGxhdGZvcm1zID0gdGhpcy5fY2hhcnRzUGFnZS5hbHRlcm5hdGVQbGF0Zm9ybXMocGxh
dGZvcm0sIG1ldHJpYyk7CiAgICAgICAgIGlmIChhbHRlcm5hdGl2ZVBsYXRmb3Jtcy5sZW5ndGgp
IHsKLSAgICAgICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZShwbGF0Zm9ybVBhbmUsIFBsYXRmb3Jt
LnNvcnRCeU5hbWUoYWx0ZXJuYXRpdmVQbGF0Zm9ybXMpLm1hcChmdW5jdGlvbiAocGxhdGZvcm0p
IHsKKyAgICAgICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZShwbGF0Zm9ybVBvcG92ZXIsIFBsYXRm
b3JtLnNvcnRCeU5hbWUoYWx0ZXJuYXRpdmVQbGF0Zm9ybXMpLm1hcChmdW5jdGlvbiAocGxhdGZv
cm0pIHsKICAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudCgnbGknLCBsaW5rKHBsYXRmb3Jt
LmxhYmVsKCksIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2hhcnRz
UGFnZS5pbnNlcnRQYW5lQWZ0ZXIocGxhdGZvcm0sIG1ldHJpYywgc2VsZik7CiAgICAgICAgICAg
ICAgICAgfSkpOwogICAgICAgICAgICAgfSkpOwogCi0gICAgICAgICAgICBhY3Rpb25zLnB1c2go
ZWxlbWVudCgnbGknLCB7Y2xhc3M6IHRoaXMuX3BhbmVPcGVuZWRCeUNsaWNrID09IHBsYXRmb3Jt
UGFuZSA/ICdzZWxlY3RlZCcgOiAnJ30sCi0gICAgICAgICAgICAgICAgdGhpcy5fbWFrZUFuY2hv
clRvT3BlblBhbmUocGxhdGZvcm1QYW5lLCAnT3RoZXIgUGxhdGZvcm1zJywgdHJ1ZSkpKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHBsYXRmb3JtUGFuZS5zdHlsZS5kaXNwbGF5ID0g
J25vbmUnOwotICAgICAgICB9CisgICAgICAgICAgICBhY3Rpb25zLnB1c2godGhpcy5fbWFrZVBv
cG92ZXJBY3Rpb25JdGVtKHBsYXRmb3JtUG9wb3ZlciwgJ090aGVyIFBsYXRmb3JtcycsIHRydWUp
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBwbGF0Zm9ybVBvcG92ZXIuc3R5bGUuZGlz
cGxheSA9ICdub25lJzsKIAotICAgICAgICB2YXIgYW5hbHl6ZVBhbmUgPSB0aGlzLmNvbnRlbnQo
KS5xdWVyeVNlbGVjdG9yKCcuY2hhcnQtcGFuZS1hbmFseXplLXBhbmUnKTsKKyAgICAgICAgdmFy
IGFuYWx5emVQb3BvdmVyID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLmNoYXJ0LXBh
bmUtYW5hbHl6ZS1wb3BvdmVyJyk7CiAgICAgICAgIHZhciBwb2ludHNSYW5nZUZvckFuYWx5c2lz
ID0gdGhpcy5fbWFpbkNoYXJ0U3RhdHVzLnBvaW50c1JhbmdlRm9yQW5hbHlzaXMoKTsKICAgICAg
ICAgaWYgKHBvaW50c1JhbmdlRm9yQW5hbHlzaXMpIHsKLSAgICAgICAgICAgIGFjdGlvbnMucHVz
aChlbGVtZW50KCdsaScsIHtjbGFzczogdGhpcy5fcGFuZU9wZW5lZEJ5Q2xpY2sgPT0gYW5hbHl6
ZVBhbmUgPyAnc2VsZWN0ZWQnIDogJyd9LAotICAgICAgICAgICAgICAgIHRoaXMuX21ha2VBbmNo
b3JUb09wZW5QYW5lKGFuYWx5emVQYW5lLCAnQW5hbHl6ZScsIGZhbHNlKSkpOwotCi0gICAgICAg
ICAgICB2YXIgcm91dGVyID0gdGhpcy5fY2hhcnRzUGFnZS5yb3V0ZXIoKTsKLSAgICAgICAgICAg
IGFuYWx5emVQYW5lLm9uc3VibWl0ID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAgICBh
Y3Rpb25zLnB1c2godGhpcy5fbWFrZVBvcG92ZXJBY3Rpb25JdGVtKGFuYWx5emVQb3BvdmVyLCAn
QW5hbHl6ZScsIGZhbHNlKSk7CisgICAgICAgICAgICBhbmFseXplUG9wb3Zlci5vbnN1Ym1pdCA9
IGZ1bmN0aW9uIChldmVudCkgewogICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7Ci0gICAgICAgICAgICAgICAgdmFyIG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKHJvdXRlci51
cmwoJ2FuYWx5c2lzL3Rhc2svY3JlYXRlJyksICdfYmxhbmsnKTsKLQotICAgICAgICAgICAgICAg
IHZhciBuYW1lID0gYW5hbHl6ZVBhbmUucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1ZTsKLSAg
ICAgICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKG5hbWUsIHBvaW50c1JhbmdlRm9yQW5h
bHlzaXMuc3RhcnRQb2ludElkLCBwb2ludHNSYW5nZUZvckFuYWx5c2lzLmVuZFBvaW50SWQpLnRo
ZW4oZnVuY3Rpb24gKGRhdGEpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV3V2luZG93LmxvY2F0
aW9uLmhyZWYgPSByb3V0ZXIudXJsKCdhbmFseXNpcy90YXNrLycgKyBkYXRhWyd0YXNrSWQnXSk7
Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBSZWZldGNoIHRoZSBsaXN0IG9mIGFuYWx5
c2lzIHRhc2tzLgotICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uIChlcnJvcikgewotICAgICAg
ICAgICAgICAgICAgICBuZXdXaW5kb3cubG9jYXRpb24uaHJlZiA9IHJvdXRlci51cmwoJ2FuYWx5
c2lzL3Rhc2svY3JlYXRlJywge2Vycm9yOiBlcnJvcn0pOwotICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHNlbGYuX2FuYWx5emVSYW5nZShwb2ludHNSYW5nZUZvckFuYWx5c2lz
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFuYWx5emVQ
YW5lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICAgICAgICBhbmFseXplUGFuZS5vbnN1
Ym1pdCA9IGZ1bmN0aW9uIChldmVudCkgeyBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyB9CisgICAg
ICAgICAgICBhbmFseXplUG9wb3Zlci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICAg
ICAgYW5hbHl6ZVBvcG92ZXIub25zdWJtaXQgPSBmdW5jdGlvbiAoZXZlbnQpIHsgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsgfQogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5fcGFuZU9wZW5lZEJ5
Q2xpY2sgPSBudWxsOworICAgICAgICB2YXIgZmlsdGVyaW5nT3B0aW9ucyA9IHRoaXMuY29udGVu
dCgpLnF1ZXJ5U2VsZWN0b3IoJy5jaGFydC1wYW5lLWZpbHRlcmluZy1vcHRpb25zJyk7CisgICAg
ICAgIGFjdGlvbnMucHVzaCh0aGlzLl9tYWtlUG9wb3ZlckFjdGlvbkl0ZW0oZmlsdGVyaW5nT3B0
aW9ucywgJ0ZpbHRlcmluZycsIHRydWUpKTsKKworICAgICAgICB0aGlzLl9yZW5kZXJGaWx0ZXJp
bmdQb3BvdmVyKCk7CisKKyAgICAgICAgdGhpcy5fbG9ja2VkUG9wb3ZlciA9IG51bGw7CiAgICAg
ICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcuY2hh
cnQtcGFuZS1hY3Rpb24tYnV0dG9ucycpLCBhY3Rpb25zKTsKICAgICB9CiAKLSAgICBfbWFrZUFu
Y2hvclRvT3BlblBhbmUocGFuZSwgbGFiZWwsIHNob3VsZFJlc3BvbmRUb0hvdmVyKQorICAgIF9t
YWtlUG9wb3ZlckFjdGlvbkl0ZW0ocG9wb3ZlciwgbGFiZWwsIHNob3VsZFJlc3BvbmRUb0hvdmVy
KQogICAgIHsKLSAgICAgICAgdmFyIGFuY2hvciA9IG51bGw7Ci0gICAgICAgIHZhciBpZ25vcmVN
b3VzZUxlYXZlID0gZmFsc2U7CiAgICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgdmFy
IHNldFBhbmVWaXNpYmlsaXR5ID0gZnVuY3Rpb24gKHBhbmUsIHNob3VsZFNob3cpIHsKLSAgICAg
ICAgICAgIHZhciBhbmNob3IgPSBwYW5lLmFuY2hvcjsKLSAgICAgICAgICAgIGlmIChzaG91bGRT
aG93KSB7Ci0gICAgICAgICAgICAgICAgdmFyIHdpZHRoID0gYW5jaG9yLm9mZnNldFBhcmVudC5v
ZmZzZXRXaWR0aDsKLSAgICAgICAgICAgICAgICBwYW5lLnN0eWxlLnRvcCA9IGFuY2hvci5vZmZz
ZXRUb3AgKyBhbmNob3Iub2Zmc2V0SGVpZ2h0ICsgJ3B4JzsKLSAgICAgICAgICAgICAgICBwYW5l
LnN0eWxlLnJpZ2h0ID0gKHdpZHRoIC0gYW5jaG9yLm9mZnNldExlZnQgLSBhbmNob3Iub2Zmc2V0
V2lkdGgpICsgJ3B4JzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBhbmUuc3R5bGUuZGlz
cGxheSA9IHNob3VsZFNob3cgPyBudWxsIDogJ25vbmUnOwotICAgICAgICAgICAgYW5jaG9yLnBh
cmVudE5vZGUuY2xhc3NOYW1lID0gc2hvdWxkU2hvdyA/ICdzZWxlY3RlZCcgOiAnJzsKLSAgICAg
ICAgICAgIGlmIChzZWxmLl9wYW5lT3BlbmVkQnlDbGljayA9PSBwYW5lICYmICFzaG91bGRTaG93
KQotICAgICAgICAgICAgICAgIHNlbGYuX3BhbmVPcGVuZWRCeUNsaWNrID0gbnVsbDsKLSAgICAg
ICAgfQotCi0gICAgICAgIHZhciBhdHRyaWJ1dGVzID0gewotICAgICAgICAgICAgaHJlZjogJyMn
LAotICAgICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgICAgICAg
ICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgICAgICB2YXIgc2hvdWxkU2hv
d1BhbmUgPSBwYW5lLnN0eWxlLmRpc3BsYXkgPT0gJ25vbmUnOwotICAgICAgICAgICAgICAgIGlm
IChzaG91bGRTaG93UGFuZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5fcGFuZU9w
ZW5lZEJ5Q2xpY2spCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXRQYW5lVmlzaWJpbGl0eShz
ZWxmLl9wYW5lT3BlbmVkQnlDbGljaywgZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9wYW5lT3BlbmVkQnlDbGljayA9IHBhbmU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHNldFBhbmVWaXNpYmlsaXR5KHBhbmUsIHNob3VsZFNob3dQYW5lKTsKLSAgICAgICAg
ICAgIH0sCi0gICAgICAgIH07Ci0gICAgICAgIGlmIChzaG91bGRSZXNwb25kVG9Ib3Zlcikgewot
ICAgICAgICAgICAgdmFyIG1vdXNlSXNJbkFuY2hvciA9IGZhbHNlOwotICAgICAgICAgICAgdmFy
IG1vdXNlSXNJblBhbmUgPSBmYWxzZTsKLQotICAgICAgICAgICAgYXR0cmlidXRlcy5vbm1vdXNl
ZW50ZXIgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNlbGYuX3BhbmVPcGVu
ZWRCeUNsaWNrKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
bW91c2VJc0luQW5jaG9yID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBzZXRQYW5lVmlzaWJpbGl0
eShwYW5lLCB0cnVlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF0dHJpYnV0ZXMub25t
b3VzZWxlYXZlID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoIW1vdXNlSXNJblBhbmUpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBzZXRQYW5lVmlzaWJpbGl0eShwYW5lLCBmYWxzZSk7Ci0gICAg
ICAgICAgICAgICAgfSwgMCk7Ci0gICAgICAgICAgICAgICAgbW91c2VJc0luQW5jaG9yID0gZmFs
c2U7ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBwYW5lLm9u
bW91c2VsZWF2ZSA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFtb3VzZUlzSW5BbmNob3IpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzZXRQYW5lVmlzaWJpbGl0eShwYW5lLCBmYWxzZSk7Ci0g
ICAgICAgICAgICAgICAgfSwgMCk7Ci0gICAgICAgICAgICAgICAgbW91c2VJc0luUGFuZSA9IGZh
bHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcGFuZS5vbm1vdXNlZW50ZXIgPSBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgbW91c2VJc0luUGFuZSA9IHRydWU7Ci0gICAgICAg
ICAgICB9CisgICAgICAgIHBvcG92ZXIuYW5jaG9yID0gQ29tcG9uZW50QmFzZS5jcmVhdGVMaW5r
KGxhYmVsLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgbWFrZVZpc2libGUgPSBzZWxm
Ll9sb2NrZWRQb3BvdmVyICE9IHBvcG92ZXI7CisgICAgICAgICAgICBzZWxmLl9zZXRQb3BvdmVy
VmlzaWJpbGl0eShwb3BvdmVyLCBtYWtlVmlzaWJsZSk7CisgICAgICAgICAgICBpZiAobWFrZVZp
c2libGUpCisgICAgICAgICAgICAgICAgc2VsZi5fbG9ja2VkUG9wb3ZlciA9IHBvcG92ZXI7Cisg
ICAgICAgIH0pOworICAgICAgICBpZiAoc2hvdWxkUmVzcG9uZFRvSG92ZXIpCisgICAgICAgICAg
ICB0aGlzLl9tYWtlUG9wb3Zlck9wZW5PbkhvdmVyKHBvcG92ZXIpOworCisgICAgICAgIHJldHVy
biBDb21wb25lbnRCYXNlLmNyZWF0ZUVsZW1lbnQoJ2xpJywge2NsYXNzOiB0aGlzLl9sb2NrZWRQ
b3BvdmVyID09IHBvcG92ZXIgPyAnc2VsZWN0ZWQnIDogJyd9LCBwb3BvdmVyLmFuY2hvcik7Cisg
ICAgfQorCisgICAgX21ha2VQb3BvdmVyT3Blbk9uSG92ZXIocG9wb3ZlcikKKyAgICB7CisgICAg
ICAgIHZhciBtb3VzZUlzSW5BbmNob3IgPSBmYWxzZTsKKyAgICAgICAgdmFyIG1vdXNlSXNJblBv
cG92ZXIgPSBmYWxzZTsKKworICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIHZhciBj
bG9zZUlmTmVlZGVkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgaWYgKHNlbGYuX2xvY2tlZFBvcG92ZXIgIT0gcG9w
b3ZlciAmJiAhbW91c2VJc0luQW5jaG9yICYmICFtb3VzZUlzSW5Qb3BvdmVyKQorICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9zZXRQb3BvdmVyVmlzaWJpbGl0eShwb3BvdmVyLCBmYWxzZSk7Cisg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHBvcG92ZXIuYW5jaG9yLm9u
bW91c2VlbnRlciA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmIChzZWxmLl9sb2NrZWRQ
b3BvdmVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1vdXNlSXNJbkFu
Y2hvciA9IHRydWU7CisgICAgICAgICAgICBzZWxmLl9zZXRQb3BvdmVyVmlzaWJpbGl0eShwb3Bv
dmVyLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBwb3BvdmVyLmFuY2hvci5vbm1vdXNlbGVh
dmUgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBtb3VzZUlzSW5BbmNob3IgPSBmYWxzZTsK
KyAgICAgICAgICAgIGNsb3NlSWZOZWVkZWQoKTsgICAgICAgICAKKyAgICAgICAgfQorCisgICAg
ICAgIHBvcG92ZXIub25tb3VzZWVudGVyID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgbW91
c2VJc0luUG9wb3ZlciA9IHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgcG9wb3Zlci5vbm1vdXNl
bGVhdmUgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBtb3VzZUlzSW5Qb3BvdmVyID0gZmFs
c2U7CisgICAgICAgICAgICBjbG9zZUlmTmVlZGVkKCk7CisgICAgICAgIH0KKyAgICB9CiAKLSAg
ICAgICAgdmFyIGFuY2hvciA9IENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudCgnYScsIGF0dHJp
YnV0ZXMsIGxhYmVsKTsKLSAgICAgICAgcGFuZS5hbmNob3IgPSBhbmNob3I7Ci0gICAgICAgIHJl
dHVybiBhbmNob3I7CisgICAgX3NldFBvcG92ZXJWaXNpYmlsaXR5KHBvcG92ZXIsIHZpc2libGUp
CisgICAgeworICAgICAgICB2YXIgYW5jaG9yID0gcG9wb3Zlci5hbmNob3I7CisgICAgICAgIGlm
ICh2aXNpYmxlKSB7CisgICAgICAgICAgICB2YXIgd2lkdGggPSBhbmNob3Iub2Zmc2V0UGFyZW50
Lm9mZnNldFdpZHRoOworICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS50b3AgPSBhbmNob3Iub2Zm
c2V0VG9wICsgYW5jaG9yLm9mZnNldEhlaWdodCArICdweCc7CisgICAgICAgICAgICBwb3BvdmVy
LnN0eWxlLnJpZ2h0ID0gKHdpZHRoIC0gYW5jaG9yLm9mZnNldExlZnQgLSBhbmNob3Iub2Zmc2V0
V2lkdGgpICsgJ3B4JzsKKyAgICAgICAgfQorICAgICAgICBwb3BvdmVyLnN0eWxlLmRpc3BsYXkg
PSB2aXNpYmxlID8gbnVsbCA6ICdub25lJzsKKyAgICAgICAgYW5jaG9yLnBhcmVudE5vZGUuY2xh
c3NOYW1lID0gdmlzaWJsZSA/ICdzZWxlY3RlZCcgOiAnJzsKKworICAgICAgICBpZiAodGhpcy5f
bG9ja2VkUG9wb3ZlciAmJiB0aGlzLl9sb2NrZWRQb3BvdmVyICE9IHBvcG92ZXIgJiYgdmlzaWJs
ZSkKKyAgICAgICAgICAgIHRoaXMuX3NldFBvcG92ZXJWaXNpYmlsaXR5KHRoaXMuX2xvY2tlZFBv
cG92ZXIsIGZhbHNlKTsKKworICAgICAgICBpZiAodGhpcy5fbG9ja2VkUG9wb3ZlciA9PSBwb3Bv
dmVyICYmICF2aXNpYmxlKQorICAgICAgICAgICAgdGhpcy5fbG9ja2VkUG9wb3ZlciA9IG51bGw7
CisgICAgfQorCisgICAgX3JlbmRlckZpbHRlcmluZ1BvcG92ZXIoKQorICAgIHsKKyAgICAgICAg
dmFyIGVuYWJsZVNhbXBsaW5nID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLmVuYWJs
ZS1zYW1wbGluZycpOworICAgICAgICBlbmFibGVTYW1wbGluZy5jaGVja2VkID0gdGhpcy5pc1Nh
bXBsaW5nRW5hYmxlZCgpOworICAgICAgICBlbmFibGVTYW1wbGluZy5vbmNoYW5nZSA9IGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHNlbGYuc2V0U2FtcGxpbmdFbmFibGVkKGVuYWJsZVNhbXBs
aW5nLmNoZWNrZWQpOworICAgICAgICAgICAgc2VsZi5fY2hhcnRzUGFnZS5ncmFwaE9wdGlvbnNE
aWRDaGFuZ2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBzaG93T3V0bGllcnMgPSB0aGlz
LmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcuc2hvdy1vdXRsaWVycycpOworICAgICAgICBzaG93
T3V0bGllcnMuY2hlY2tlZCA9IHRoaXMuaXNTaG93aW5nT3V0bGllcnMoKTsKKyAgICAgICAgc2hv
d091dGxpZXJzLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgc2VsZi5zZXRT
aG93T3V0bGllcnMoc2hvd091dGxpZXJzLmNoZWNrZWQpOworICAgICAgICAgICAgc2VsZi5fY2hh
cnRzUGFnZS5ncmFwaE9wdGlvbnNEaWRDaGFuZ2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBtYXJrQXNPdXRsaWVyQnV0dG9uID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLm1h
cmstYXMtb3V0bGllcicpOworICAgICAgICB2YXIgZmlyc3RTZWxlY3RlZFBvaW50ID0gdGhpcy5f
bWFpbkNoYXJ0LmxvY2tlZEluZGljYXRvcigpOworICAgICAgICBpZiAoIWZpcnN0U2VsZWN0ZWRQ
b2ludCkKKyAgICAgICAgICAgIGZpcnN0U2VsZWN0ZWRQb2ludCA9IHRoaXMuX21haW5DaGFydC5m
aXJzdFNlbGVjdGVkUG9pbnQoJ2N1cnJlbnQnKTsKKyAgICAgICAgdmFyIGFscmVheU1hcmtlZEFz
T3V0bGllciA9IGZpcnN0U2VsZWN0ZWRQb2ludCAmJiBmaXJzdFNlbGVjdGVkUG9pbnQubWFya2Vk
T3V0bGllcjsKKworICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIG1hcmtBc091dGxp
ZXJCdXR0b24udGV4dENvbnRlbnQgPSAoYWxyZWF5TWFya2VkQXNPdXRsaWVyID8gJ1VubWFyaycg
OiAnTWFyaycpICsgJyBzZWxlY3RlZCBwb2ludHMgYXMgb3V0bGllcic7CisgICAgICAgIG1hcmtB
c091dGxpZXJCdXR0b24ub25jbGljayA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBz
ZWxlY3RlZFBvaW50cyA9IFtmaXJzdFNlbGVjdGVkUG9pbnRdOworICAgICAgICAgICAgaWYgKHNl
bGYuX21haW5DaGFydC5jdXJyZW50U2VsZWN0aW9uKCdjdXJyZW50JykpCisgICAgICAgICAgICAg
ICAgc2VsZWN0ZWRQb2ludHMgPSBzZWxmLl9tYWluQ2hhcnQuc2VsZWN0ZWRQb2ludHMoJ2N1cnJl
bnQnKTsKKyAgICAgICAgICAgIHNlbGYuX21hcmtBc091dGxpZXIoIWFscmVheU1hcmtlZEFzT3V0
bGllciwgc2VsZWN0ZWRQb2ludHMpOworICAgICAgICB9CisgICAgICAgIG1hcmtBc091dGxpZXJC
dXR0b24uZGlzYWJsZWQgPSAhZmlyc3RTZWxlY3RlZFBvaW50OwogICAgIH0KIAogICAgIHN0YXRp
YyBwYW5lSGVhZGVyVGVtcGxhdGUoKQpAQCAtMjQxLDExICszMTcsMTYgQEAgY2xhc3MgQ2hhcnRQ
YW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICA8bGkg
Y2xhc3M9ImNsb3NlIj48Y2xvc2UtYnV0dG9uPjwvY2xvc2UtYnV0dG9uPjwvbGk+CiAgICAgICAg
ICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY2hhcnQt
cGFuZS1hY3Rpb24tYnV0dG9ucyBidXR0b25lZC10b29sYmFyIj48L3VsPgotICAgICAgICAgICAg
ICAgICAgICA8dWwgY2xhc3M9ImNoYXJ0LXBhbmUtYWx0ZXJuYXRpdmUtcGxhdGZvcm1zIiBzdHls
ZT0iZGlzcGxheTpub25lIj48L3VsPgotICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0i
Y2hhcnQtcGFuZS1hbmFseXplLXBhbmUiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorICAgICAgICAg
ICAgICAgICAgICA8dWwgY2xhc3M9ImNoYXJ0LXBhbmUtYWx0ZXJuYXRpdmUtcGxhdGZvcm1zIHBv
cG92ZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvdWw+CisgICAgICAgICAgICAgICAgICAgIDxm
b3JtIGNsYXNzPSJjaGFydC1wYW5lLWFuYWx5emUtcG9wb3ZlciBwb3BvdmVyIiBzdHlsZT0iZGlz
cGxheTpub25lIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBy
ZXF1aXJlZD4KICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+Q3JlYXRlPC9idXR0b24+
CiAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICAgICAgPHVsIGNs
YXNzPSJjaGFydC1wYW5lLWZpbHRlcmluZy1vcHRpb25zIHBvcG92ZXIiIHN0eWxlPSJkaXNwbGF5
Om5vbmUiPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0i
Y2hlY2tib3giIGNsYXNzPSJlbmFibGUtc2FtcGxpbmciPlNhbXBsaW5nPC9sYWJlbD48L2xpPgor
ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3gi
IGNsYXNzPSJzaG93LW91dGxpZXJzIj5TaG93IG91dGxpZXJzPC9sYWJlbD48L2xpPgorICAgICAg
ICAgICAgICAgICAgICAgICAgPGxpPjxidXR0b24gY2xhc3M9Im1hcmstYXMtb3V0bGllciI+TWFy
ayBzZWxlY3RlZCBwb2ludHMgYXMgb3V0bGllcjwvYnV0dG9uPjwvbGk+CisgICAgICAgICAgICAg
ICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgICAgICA8L2hlYWRl
cj4KICAgICAgICAgYDsKQEAgLTMwOSw4ICszOTAsNyBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5k
cyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMC45cmVtOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAuY2hhcnQtcGFuZS1hY3Rpb25zIC5jaGFydC1w
YW5lLWFsdGVybmF0aXZlLXBsYXRmb3JtcywKLSAgICAgICAgICAgIC5jaGFydC1wYW5lLWFuYWx5
emUtcGFuZSB7CisgICAgICAgICAgICAuY2hhcnQtcGFuZS1hY3Rpb25zIC5wb3BvdmVyIHsKICAg
ICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgICAgICAgdG9wOiAw
OwogICAgICAgICAgICAgICAgIHJpZ2h0OiAwOwpAQCAtMzI1LDEwICs0MDUsMTAgQEAgY2xhc3Mg
Q2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgICAgICAgICAgbWFyZ2lu
LXJpZ2h0OiAtMC4ycmVtOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAuY2hhcnQtcGFu
ZS1hbHRlcm5hdGl2ZS1wbGF0Zm9ybXMgbGkgeworICAgICAgICAgICAgLmNoYXJ0LXBhbmUtYWN0
aW9ucyAucG9wb3ZlciBsaSB7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIC5jaGFydC1w
YW5lLWFsdGVybmF0aXZlLXBsYXRmb3JtcyBsaSBhIHsKKyAgICAgICAgICAgIC5jaGFydC1wYW5l
LWFjdGlvbnMgLnBvcG92ZXIgbGkgYSB7CiAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7
CiAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICAgICAg
IGNvbG9yOiBpbmhlcml0OwpAQCAtMzM2LDE2ICs0MTYsMjAgQEAgY2xhc3MgQ2hhcnRQYW5lIGV4
dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgICAgICAgICAgcGFkZGluZzogMC4ycmVtIDAu
NXJlbTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgLmNoYXJ0LXBhbmUtYWx0ZXJuYXRp
dmUtcGxhdGZvcm1zIGE6aG92ZXIsCi0gICAgICAgICAgICAuY2hhcnQtcGFuZS1hbmFseXplLXBh
bmUgaW5wdXQ6Zm9jdXMgeworICAgICAgICAgICAgLmNoYXJ0LXBhbmUtYWN0aW9ucyAucG9wb3Zl
ciBhOmhvdmVyLAorICAgICAgICAgICAgLmNoYXJ0LXBhbmUtYWN0aW9ucyAucG9wb3ZlciBpbnB1
dDpmb2N1cyB7CiAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMDQsIDE1MywgNTEs
IDAuMSk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIC5jaGFydC1wYW5lLWFuYWx5emUt
cGFuZSB7CisgICAgICAgICAgICAuY2hhcnQtcGFuZS1hY3Rpb25zIC5jaGFydC1wYW5lLWFuYWx5
emUtcG9wb3ZlciB7CiAgICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICAuY2hhcnQtcGFuZS1hbmFseXplLXBhbmUgaW5wdXQgeworICAg
ICAgICAgICAgLmNoYXJ0LXBhbmUtYWN0aW9ucyAucG9wb3ZlciBsYWJlbCB7CisgICAgICAgICAg
ICAgICAgZm9udC1zaXplOiAwLjlyZW07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5j
aGFydC1wYW5lLWFjdGlvbnMgLnBvcG92ZXIgaW5wdXRbdHlwZT10ZXh0XSB7CiAgICAgICAgICAg
ICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTsKICAg
ICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9wYWdlcy9jaGFydHMtcGFnZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0cy1wYWdlLmpzCShyZXZpc2lv
biAyMDE1MDIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2No
YXJ0cy1wYWdlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDExIEBAIGNsYXNzIENo
YXJ0c1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcKICAgICAgICAgICAgIHRoaXMuc2NoZWR1
bGVVcmxTdGF0ZVVwZGF0ZSgpOwogICAgIH0KIAorICAgIGdyYXBoT3B0aW9uc0RpZENoYW5nZShw
YW5lKQorICAgIHsKKyAgICAgICAgdGhpcy5zY2hlZHVsZVVybFN0YXRlVXBkYXRlKCk7CisgICAg
fQorCiAgICAgc2V0T3BlblJlcG9zaXRvcnkocmVwb3NpdG9yeSkKICAgICB7CiAgICAgICAgIHRo
aXMuX2N1cnJlbnRSZXBvc2l0b3J5SWQgPSByZXBvc2l0b3J5ID8gcmVwb3NpdG9yeS5pZCgpIDog
bnVsbDsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvZGFz
aGJvYXJkLXBhZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9wYWdlcy9kYXNoYm9hcmQtcGFnZS5qcwkocmV2aXNpb24gMjAxNTAyKQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9kYXNoYm9hcmQtcGFnZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMTI1LDEzICsxMjUsMTMgQEAgY2xhc3MgRGFzaGJvYXJkUGFnZSBl
eHRlbmRzIFBhZ2VXaXRoSGVhZAogICAgICAgICBpZiAoIXBsYXRmb3JtSWQgfHwgIW1ldHJpY0lk
KQogICAgICAgICAgICAgcmV0dXJuICcnOwogCi0gICAgICAgIHZhciByZXN1bHQgPSBDaGFydFN0
eWxlcy5jcmVhdGVDaGFydFNvdXJjZUxpc3QocGxhdGZvcm1JZCwgbWV0cmljSWQpOworICAgICAg
ICB2YXIgcmVzdWx0ID0gQ2hhcnRTdHlsZXMucmVzb2x2ZUNvbmZpZ3VyYXRpb24ocGxhdGZvcm1J
ZCwgbWV0cmljSWQpOwogICAgICAgICBpZiAocmVzdWx0LmVycm9yKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC5lcnJvcjsKIAogICAgICAgICB2YXIgb3B0aW9ucyA9IENoYXJ0U3R5bGVzLmRh
c2hib2FyZE9wdGlvbnMocmVzdWx0Lm1ldHJpYy5tYWtlRm9ybWF0dGVyKDMpKTsKICAgICAgICAg
b3B0aW9ucy5vbmRhdGEgPSB0aGlzLl9mZXRjaGVkRGF0YS5iaW5kKHRoaXMpOwotICAgICAgICB2
YXIgY2hhcnQgPSBuZXcgVGltZVNlcmllc0NoYXJ0KHJlc3VsdC5zb3VyY2VMaXN0LCBvcHRpb25z
KTsKKyAgICAgICAgdmFyIGNoYXJ0ID0gbmV3IFRpbWVTZXJpZXNDaGFydChDaGFydFN0eWxlcy5j
cmVhdGVTb3VyY2VMaXN0KHJlc3VsdC5wbGF0Zm9ybSwgcmVzdWx0Lm1ldHJpYywgZmFsc2UsIGZh
bHNlKSwgb3B0aW9ucyk7CiAgICAgICAgIHRoaXMuX2NoYXJ0cy5wdXNoKGNoYXJ0KTsKIAogICAg
ICAgICB2YXIgc3RhdHVzVmlldyA9IG5ldyBDaGFydFN0YXR1c1ZpZXcocmVzdWx0Lm1ldHJpYywg
Y2hhcnQpOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9w
YWdlLXJvdXRlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL3BhZ2VzL3BhZ2Utcm91dGVyLmpzCShyZXZpc2lvbiAyMDE1MDIpCisrKyBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3BhZ2Utcm91dGVyLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjcsMzQgKzEyNyw1MCBAQCBjbGFzcyBQYWdlUm91dGVyIHsKIAogICAgIF9z
ZXJpYWxpemVIYXNoUXVlcnlWYWx1ZSh2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmICghKHZhbHVl
IGluc3RhbmNlb2YgQXJyYXkpKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCh2YWx1ZSA9
PT0gbnVsbCB8fCB0eXBlb2YodmFsdWUpID09PSAnbnVtYmVyJyB8fCAvW0EtWmEtejAtOV0qLy50
ZXN0KHZhbHVlKSk7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnbnVsbCcg
OiB2YWx1ZTsKKyAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAg
ICAgIHZhciBzZXJpYWxpemVkSXRlbXMgPSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGl0ZW0g
b2YgdmFsdWUpCisgICAgICAgICAgICAgICAgc2VyaWFsaXplZEl0ZW1zLnB1c2godGhpcy5fc2Vy
aWFsaXplSGFzaFF1ZXJ5VmFsdWUoaXRlbSkpOworICAgICAgICAgICAgcmV0dXJuICcoJyArIHNl
cmlhbGl6ZWRJdGVtcy5qb2luKCctJykgKyAnKSc7CiAgICAgICAgIH0KLQotICAgICAgICB2YXIg
c2VyaWFsaXplZEl0ZW1zID0gW107Ci0gICAgICAgIGZvciAodmFyIGl0ZW0gb2YgdmFsdWUpCi0g
ICAgICAgICAgICBzZXJpYWxpemVkSXRlbXMucHVzaCh0aGlzLl9zZXJpYWxpemVIYXNoUXVlcnlW
YWx1ZShpdGVtKSk7Ci0gICAgICAgIHJldHVybiAnKCcgKyBzZXJpYWxpemVkSXRlbXMuam9pbign
LScpICsgJyknOworICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpCisgICAgICAgICAg
ICByZXR1cm4gQXJyYXkuZnJvbSh2YWx1ZSkuc29ydCgpLmpvaW4oJ3wnKTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBl
b2YodmFsdWUpID09PSAnbnVtYmVyJyB8fCAvWzAtOV0qLy50ZXN0KHZhbHVlKSk7CisgICAgICAg
IHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJ251bGwnIDog
dmFsdWU7CiAgICAgfQogCiAgICAgX2Rlc2VyaWFsaXplSGFzaFF1ZXJ5VmFsdWUodmFsdWUpCiAg
ICAgewotICAgICAgICB2YXIganNvbiA9IHZhbHVlLnJlcGxhY2UoL1woL2csICdbJykucmVwbGFj
ZSgvXCkvZywgJ10nKS5yZXBsYWNlKC8tL2csICcsJyk7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKTsKLSAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsK
LQotICAgICAgICAgICAgLy8gU29tZSBhcHBsaWNhdGlvbnMgZG9uJ3QgbGlua2lmeSB0d28gY29u
c2VjdXRpdmUgY2xvc2luZyBwYXJlbnRoZXNlczogKSkuCi0gICAgICAgICAgICAvLyBUcnkgZml4
aW5nIGFkZGluZyBvbmUgZXh0cmEgcGFyZW50aGVzaXMgdG8gc2VlIGlmIHRoYXQgd29ya3MuCi0g
ICAgICAgICAgICB2YXIgbWlzc2luZ0Nsb3NpbmdCcmFja2V0cyA9IHRoaXMuX2NvdW50T2NjdXJy
ZW5jZXMoanNvbiwgL1xbL2cpIC0gdGhpcy5fY291bnRPY2N1cnJlbmNlcyhqc29uLCAvXF0vZyk7
Ci0gICAgICAgICAgICB2YXIgZml4ID0gbmV3IEFycmF5KG1pc3NpbmdDbG9zaW5nQnJhY2tldHMp
LmZpbGwoJ10nKS5qb2luKCcnKTsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIEpTT04ucGFyc2UoanNvbiArIGZpeCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChuZXdF
cnJvcikgeyB9Ci0KLSAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgaWYgKHZhbHVl
LmNoYXJBdCgwKSA9PSAnKCcpIHsKKyAgICAgICAgICAgIHZhciBuZXN0aW5nTGV2ZWwgPSAwOwor
ICAgICAgICAgICAgdmFyIGVuZCA9IDA7CisgICAgICAgICAgICB2YXIgc3RhcnQgPSAxOworICAg
ICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAgICAgICAgZm9yICh2YXIgY2hhcmFjdGVy
IG9mIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3RlciA9PSAnKCcpCisgICAg
ICAgICAgICAgICAgICAgIG5lc3RpbmdMZXZlbCsrOworICAgICAgICAgICAgICAgIGVsc2UgaWYg
KGNoYXJhY3RlciA9PSAnKScpIHsKKyAgICAgICAgICAgICAgICAgICAgbmVzdGluZ0xldmVsLS07
CisgICAgICAgICAgICAgICAgICAgIGlmICghbmVzdGluZ0xldmVsKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXN0aW5nTGV2ZWwg
PT0gMSAmJiBjaGFyYWN0ZXIgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5w
dXNoKHRoaXMuX2Rlc2VyaWFsaXplSGFzaFF1ZXJ5VmFsdWUodmFsdWUuc3Vic3RyaW5nKHN0YXJ0
LCBlbmQpKSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZW5kICsgMTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgZW5kKys7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXN1bHQucHVzaCh0aGlzLl9kZXNlcmlhbGl6ZUhhc2hRdWVyeVZhbHVlKHZhbHVlLnN1
YnN0cmluZyhzdGFydCwgZW5kKSkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQorICAgICAgICBpZiAodmFsdWUgPT0gJ3RydWUnKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIGlmICh2YWx1ZSA9PSAnZmFsc2UnKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIGlmICh2YWx1ZS5tYXRjaCgvXlswLTlcLl0rJC8pKQorICAgICAgICAgICAg
cmV0dXJuIHBhcnNlRmxvYXQodmFsdWUpOworICAgICAgICBpZiAodmFsdWUubWF0Y2goL15bQS1a
YS16XVtBLVphLXowLTl8XSokLykpCisgICAgICAgICAgICByZXR1cm4gbmV3IFNldCh2YWx1ZS50
b0xvd2VyQ2FzZSgpLnNwbGl0KCd8JykpOworICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAK
ICAgICBfY291bnRPY2N1cnJlbmNlcyhzdHJpbmcsIHJlZ2V4KQpJbmRleDogV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50LXNl
dC10ZXN0cy5qcwkocmV2aXNpb24gMjAxNTAyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0y
OTAsNiArMjkwLDEwMCBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3VsZCByZXF1
ZXN0IHRoZSB1bmNhY2hlZCBwcmltYXJ5IGNsdXN0ZXIgd2hlbiBub0NhY2hlIGlzIHRydWUnLCBm
dW5jdGlvbiAoZG9uZSkgeworICAgICAgICAgICAgdmFyIHNldCA9IE1lYXN1cmVtZW50U2V0LmZp
bmRTZXQoMSwgMSwgMzAwMCk7CisgICAgICAgICAgICB2YXIgY2FsbENvdW50ID0gMDsKKyAgICAg
ICAgICAgIHNldC5mZXRjaEJldHdlZW4oMTAwMCwgMzAwMCwgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGNhbGxDb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEuanNvbicpOworCisg
ICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICAgICAnY2x1c3Rl
clN0YXJ0JzogMTAwMCwKKyAgICAgICAgICAgICAgICAnY2x1c3RlclNpemUnOiAxMDAwLAorICAg
ICAgICAgICAgICAgICdmb3JtYXRNYXAnOiBbXSwKKyAgICAgICAgICAgICAgICAnY29uZmlndXJh
dGlvbnMnOiB7Y3VycmVudDogW119LAorICAgICAgICAgICAgICAgICdzdGFydFRpbWUnOiAyMDAw
LAorICAgICAgICAgICAgICAgICdlbmRUaW1lJzogMzAwMCwKKyAgICAgICAgICAgICAgICAnbGFz
dE1vZGlmaWVkJzogMzAwMCwKKyAgICAgICAgICAgICAgICAnY2x1c3RlckNvdW50JzogMiwKKyAg
ICAgICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOworCisgICAgICAgICAgICB2YXIgbm9DYWNo
ZUZldGNoQ291bnQgPSAwOworICAgICAgICAgICAgd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhl
bihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3VudCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5vQ2FjaGVGZXRjaENvdW50LCAwKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0Ll9zb3J0ZWRDbHVzdGVycy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcuLi9kYXRhL21l
YXN1cmVtZW50LXNldC0xLTEtMjAwMC5qc29uJyk7CisKKyAgICAgICAgICAgICAgICByZXF1ZXN0
c1sxXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJTdGFydCc6IDEwMDAs
CisgICAgICAgICAgICAgICAgICAgICdjbHVzdGVyU2l6ZSc6IDEwMDAsCisgICAgICAgICAgICAg
ICAgICAgICdmb3JtYXRNYXAnOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRp
b25zJzoge2N1cnJlbnQ6IFtdfSwKKyAgICAgICAgICAgICAgICAgICAgJ3N0YXJ0VGltZSc6IDEw
MDAsCisgICAgICAgICAgICAgICAgICAgICdlbmRUaW1lJzogMjAwMCwKKyAgICAgICAgICAgICAg
ICAgICAgJ2xhc3RNb2RpZmllZCc6IDMwMDAsCisgICAgICAgICAgICAgICAgICAgICdjbHVzdGVy
Q291bnQnOiAyLAorICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOworCisgICAg
ICAgICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigxMDAwLCAzMDAwLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgIG5vQ2FjaGVGZXRjaENvdW50Kys7CisgICAgICAgICAgICAgICAg
fSwgdHJ1ZSAvKiBub0NhY2hlICovKTsKKworICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9y
TWVhc3VyZW1lbnRTZXQoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnQsIDIpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChub0NhY2hlRmV0Y2hDb3VudCwgMCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldC5fc29ydGVkQ2x1c3RlcnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnLi4vYXBpL21lYXN1cmVtZW50LXNldD9wbGF0Zm9y
bT0xJm1ldHJpYz0xJyk7CisKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1syXS5yZXNvbHZlKHsK
KyAgICAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJTdGFydCc6IDEwMDAsCisgICAgICAgICAgICAg
ICAgICAgICdjbHVzdGVyU2l6ZSc6IDEwMDAsCisgICAgICAgICAgICAgICAgICAgICdmb3JtYXRN
YXAnOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzoge2N1cnJlbnQ6
IFtdfSwKKyAgICAgICAgICAgICAgICAgICAgJ3N0YXJ0VGltZSc6IDIwMDAsCisgICAgICAgICAg
ICAgICAgICAgICdlbmRUaW1lJzogMzAwMCwKKyAgICAgICAgICAgICAgICAgICAgJ2xhc3RNb2Rp
ZmllZCc6IDMwMDAsCisgICAgICAgICAgICAgICAgICAgICdjbHVzdGVyQ291bnQnOiAyLAorICAg
ICAgICAgICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOworCisgICAgICAgICAgICAgICAgcmV0
dXJuIHdhaXRGb3JNZWFzdXJlbWVudFNldCgpOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3VudCwgMik7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5vQ2FjaGVGZXRjaENvdW50LCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0Ll9zb3J0ZWRDbHVzdGVycy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50
LXNldC0xLTEtMjAwMC5qc29uJyk7CisKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1szXS5yZXNv
bHZlKHsKKyAgICAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJTdGFydCc6IDEwMDAsCisgICAgICAg
ICAgICAgICAgICAgICdjbHVzdGVyU2l6ZSc6IDEwMDAsCisgICAgICAgICAgICAgICAgICAgICdm
b3JtYXRNYXAnOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzoge2N1
cnJlbnQ6IFtdfSwKKyAgICAgICAgICAgICAgICAgICAgJ3N0YXJ0VGltZSc6IDEwMDAsCisgICAg
ICAgICAgICAgICAgICAgICdlbmRUaW1lJzogMjAwMCwKKyAgICAgICAgICAgICAgICAgICAgJ2xh
c3RNb2RpZmllZCc6IDMwMDAsCisgICAgICAgICAgICAgICAgICAgICdjbHVzdGVyQ291bnQnOiAy
LAorICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOworCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHdhaXRGb3JNZWFzdXJlbWVudFNldCgpOworICAgICAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3VudCwgMik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5vQ2FjaGVGZXRjaENvdW50LCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0Ll9zb3J0ZWRDbHVzdGVycy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworCisg
ICAgICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVy
cm9yKSB7CisgICAgICAgICAgICAgICAgZG9uZShlcnJvcik7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgcmVxdWVzdCB0aGUgcHJpbWFyeSBj
bHVzdGVyIHR3aWNlIHdoZW4gbXVsdGlwbGUgY2xpZW50cyByZXF1ZXN0IGl0IGJ1dCBzaG91bGQg
aW52b2tlIGFsbCBjYWxsYmFja3MnLCBmdW5jdGlvbiAoZG9uZSkgewogICAgICAgICAgICAgdmFy
IHNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCk7CiAgICAgICAgICAgICB2
YXIgY2FsbENvdW50ID0gMDsK
</data>
<flag name="review"
          id="304178"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>