<?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>141438</bug_id>
          
          <creation_ts>2015-02-10 11:03:48 -0800</creation_ts>
          <short_desc>New perf dashboard should have the ability to overlay moving average with an envelope</short_desc>
          <delta_ts>2016-02-16 13:53:44 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>141237</blocked>
    
    <blocked>141443</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1068100</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-10 11:03:48 -0800</bug_when>
    <thetext>In order to hide outliers and detect new regressions automatically, we need a way to try out different kinds of moving averages and enveloping strategies.
Add the ability to show that visually on our graphs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068124</commentid>
    <comment_count>1</comment_count>
      <attachid>246340</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-10 13:22:13 -0800</bug_when>
    <thetext>Created attachment 246340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068125</commentid>
    <comment_count>2</comment_count>
      <attachid>246340</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-02-10 13:25:02 -0800</bug_when>
    <thetext>Comment on attachment 246340
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068127</commentid>
    <comment_count>3</comment_count>
      <attachid>246340</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-10 13:26:43 -0800</bug_when>
    <thetext>Comment on attachment 246340
Patch

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

&gt; Websites/perf.webkit.org/public/v2/app.js:441
&gt; +        var strategies = Statistics.EnvelopingStrategies.map(this._cloneStrategy.bind(this));

Isn&apos;t it confusing to reuse the same variable name as before?

&gt; Websites/perf.webkit.org/public/v2/app.js:447
&gt; +        var parametreList = (strategy.parameterList || []).map(function (param) { return Ember.Object.create(param); });

parametreList -&gt; parameterList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068129</commentid>
    <comment_count>4</comment_count>
      <attachid>246340</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-10 13:29:34 -0800</bug_when>
    <thetext>Comment on attachment 246340
Patch

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

&gt; Websites/perf.webkit.org/public/v2/app.js:466
&gt; +        for (var i = 0; i &lt; chosenStrategy.parameters; i++)

chosenStrategy.parameters.length ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068130</commentid>
    <comment_count>5</comment_count>
      <attachid>246340</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-10 13:34:52 -0800</bug_when>
    <thetext>Comment on attachment 246340
Patch

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

&gt; Websites/perf.webkit.org/public/v2/js/statistics.js:112
&gt; +                var sum = 0;

redundant? already inside the loop.

&gt; Websites/perf.webkit.org/public/v2/js/statistics.js:113
&gt; +                var i = 0;

redundant? already inside the loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068131</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-10 13:38:28 -0800</bug_when>
    <thetext>Thanks for the reviews. Will land addresssing those comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068132</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-10 13:39:41 -0800</bug_when>
    <thetext>Committed r179878: &lt;http://trac.webkit.org/changeset/179878&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246340</attachid>
            <date>2015-02-10 13:22:13 -0800</date>
            <delta_ts>2015-02-10 13:25:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141438-20150210132215.patch</filename>
            <type>text/plain</type>
            <size>35741</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5ODczKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDgyIEBACisyMDE1LTAyLTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE5ldyBwZXJmIGRhc2hib2FyZCBzaG91bGQgaGF2ZSB0aGUgYWJpbGl0eSB0byBv
dmVybGF5IG1vdmluZyBhdmVyYWdlIHdpdGggYW4gZW52ZWxvcGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTQzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyB0aHJlZSBraW5k
cyBvZiBtb3ZpbmcgYXZlcmFnZSBzdHJhdGVnaWVzIGFuZCB0d28ga2luZHMgb2YgZW52ZWxvcGlu
ZyBzdHJhdGVnaWVzOgorCisgICAgICAgIFNpbXBsZSBNb3ZpbmcgQXZlcmFnZSAtIFRoZSBtb3Zp
bmcgYXZlcmFnZSB4zIRfaSBvZiB4X2kgaXMgY29tcHV0ZWQgYXMgdGhlIGFyaXRobWV0aWMgbWVh
biBvZiB2YWx1ZXMKKyAgICAgICAgZnJvbSB4XyhpIC0gbikgdGhvdWdoIHhfKGkgKyBtKSB3aGVy
ZSBuIGlzIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgYW5kIG0gaXMgYSBwb3NpdGl2ZSBpbnRlZ2Vy
LiBJdCB0YWtlcworICAgICAgICBuLCBiYWNrd2FyZCB3aW5kb3cgc2l6ZSwgYW5kIG0sIGZvcndh
cmQgd2luZG93IHNpemUsIGFzIGFuIGFyZ3VtZW50LgorCisgICAgICAgIEN1bXVsYXRpdmUgTW92
aW5nIEF2ZXJhZ2UgLSB4zIRfaSBpcyBjb21wdXRlZCBhcyB0aGUgYXJpdGhtZXRpYyBtZWFuIG9m
IGFsbCB2YWx1ZXMgeF8wIHRob3VnaCB4X2kuCisgICAgICAgIFRoYXQgaXMsIHjMhF8xID0geF8x
IGFuZCB4zIRfaSA9ICgoaSAtIDEpICogTV8oaSAtIDEpICsgeF9pKSAvIGkgZm9yIGFsbCBpID4g
MS4KKworICAgICAgICBFeHBvbmVudGlhbCBNb3ZpbmcgQXZlcmFnZSAtIHjMhF9pIGlzIGNvbXB1
dGVkIGFzIHRoZSB3ZWlnaHRlZCBhdmVyYWdlIG9mIHhfaSBhbmQgeMyEXyhpIC0gMSkgd2l0aCDO
sSBhcworICAgICAgICBhbiBhcmd1bWVudCBzcGVjaWZ5aW5nIHhfaSdzIHdlaWdodC4gVG8gYmUg
cHJlY2lzZSwgeMyEXzEgPSB4XzEgYW5kIHjMhF9pID0gzrEgKiB4X2kgKyAozrEgLSAxKSB4zIRf
KGktMSkuCisKKworICAgICAgICBBdmVyYWdlIERpZmZlcmVuY2UgLSBUaGUgZW52ZWxvcGluZyBk
ZWx0YSBkIGlzIGNvbXB1dGVkIGFzIHRoZSBhcml0aG1ldGljIG1lYW4gb2YgdGhlIGRpZmZlcmVu
Y2UKKyAgICAgICAgYmV0d2VlbiBlYWNoIHhfaSBhbmQgeMyEX2kuCisKKyAgICAgICAgTW92aW5n
IEF2ZXJhZ2UgU3RhbmRhcmQgRGV2aWF0aW9uIC0gZCBpcyBjb21wdXRlZCBsaWtlIHRoZSBzdGFu
ZGFyZCBkZXZpYXRpb24gZXhjZXB0IHRoZSBkZXZpYXRpb24KKyAgICAgICAgZm9yIGVhY2ggdGVy
bSBpcyBtZWFzdXJlZCBmcm9tIHRoZSBtb3ZpbmcgYXZlcmFnZSBpbnN0ZWFkIG9mIHRoZSBzYW1w
bGUgYXJpdGhtZXRpYyBtZWFuLiBpLmUuIGl0IHVzZXMKKyAgICAgICAgdGhlIGF2ZXJhZ2Ugb2Yg
KHhfaSAtIHjMhF9pKV4yIGFzIHRoZSAic2FtcGxlIHZhcmlhbmNlIiBpbnN0ZWFkIG9mIHRoZSBj
b252ZW50aW9uYWwgKHhfaSAtIHjMhCleMiB3aGVyZQorICAgICAgICB4zIQgaXMgdGhlIHNhbXBs
ZSBtZWFuIG9mIGFsbCB4X2kncy4gVGhpcyBjaGFuZ2Ugd2FzIG5lY2Vzc2FyeSBzaW5jZSBvdXIg
dGltZSBzZXJpZXMgaXMgbm9uLXN0YXRpb25hcnkuCisKKworICAgICAgICBFYWNoIHN0cmF0ZWd5
IGlzIGNsb25lZCBmb3IgYW4gQXBwLlBhbmUgaW5zdGFuY2Ugc28gdGhhdCBpdHMgcGFyYW1ldGVy
TGlzdCBjYW4gYmUgY29uZmlndXJlZCBwZXIgcGFuZS4KKyAgICAgICAgVGhlIGNvbmZpZ3VyYXRp
b24gb2YgdGhlIGN1cnJlbnRseSBjaG9zZW4gc3RyYXRlZ2llcyBpcyBzYXZlZCBpbiB0aGUgcXVl
cnkgc3RyaW5nIGZvciBjb252ZW5pZW5jZS4KKworICAgICAgICBBbHNvIGFkZGVkIHRoZSAic3Rh
dCBwYW5lIiB0byBjaG9vc2UgYSBtb3ZpbmcgYXZlcmFnZSBzdHJhdGVneSBhbmQgYSBlbnZlbG9w
aW5nIHN0cmF0ZWd5IGluIGVhY2ggcGFuZS4KKworICAgICAgICAqIHB1YmxpYy92Mi9hcHAuY3Nz
OiBTcGVjaWZ5IHRoZSBmaWxsIGNvbG9yIGZvciBhbGwgU1ZHIGdyb3VwcyBpbiB0aGUgcGFuZSB0
b29sYmFyIGljb25zLgorCisgICAgICAgICogcHVibGljL3YyL2FwcC5qczoKKyAgICAgICAgKEFw
cC5QYW5lLl9mZXRjaCk6IERlbGVnYXRlIHRoZSBjcmVhdGlvbiBvZiAnY2hhcnREYXRhJyB0byBf
Y29tcHV0ZUNoYXJ0RGF0YS4KKyAgICAgICAgKEFwcC5QYW5lLnVwZGF0ZVN0YXRpc3RpY3NUb29s
cyk6IEFkZGVkLiBDbG9uZXMgbW92aW5nIGF2ZXJhZ2UgYW5kIGVudmVsb3Bpbmcgc3RyYXRlZ2ll
cyBmb3IgdGhpcyBwYW5lLgorICAgICAgICAoQXBwLlBhbmUuX2Nsb25lU3RyYXRlZ3kpOiBBZGRl
ZC4gQ2xvbmVzIGEgc3RyYXRlZ3kgZm9yIGEgbmV3IHBhbmUuCisgICAgICAgIChBcHAuUGFuZS5f
Y29uZmlndXJlU3RyYXRlZ3kpOiBBZGRlZC4gRmluZHMgYW5kIGNvbmZpZ3VyZXMgYSBzdHJhdGVn
eSBmcm9tIHRoZSBjb25maWd1cmF0aW9uIHJldHJpZXZlZAorICAgICAgICBmcm9tIHRoZSBxdWVy
eSBzdHJpbmcgdmlhIENoYXJ0c0NvbnRyb2xsZXIuCisgICAgICAgIChBcHAuUGFuZS5fY29tcHV0
ZUNoYXJ0RGF0YSk6IEFkZGVkLiBDcmVhdGVzIGNoYXJ0RGF0YSBmcm9tIGZldGNoZWREYXRhLgor
ICAgICAgICAoQXBwLlBhbmUuX2NvbXB1dGVNb3ZpbmdBdmVyYWdlKTogQWRkZWQuIENvbXB1dGVz
IHRoZSBtb3ZpbmcgYXZlcmFnZSBhbmQgdGhlIGVudmVsb3BlLgorICAgICAgICAoQXBwLlBhbmUu
X2V4ZWN1dGVTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAoQXBwLlBhbmUuX3VwZGF0ZVN0cmF0
ZWd5Q29uZmlnSWZOZWVkZWQpOiBQdXNoZXMgdGhlIHN0cmF0ZWd5IGNvbmZpZ3VyYXRpb25zIHRv
IHRoZSBxdWVyeSBzdHJpbmcgdmlhCisgICAgICAgIENoYXJ0c0NvbnRyb2xsZXIuCisgICAgICAg
IChBcHAuQ2hhcnRzQ29udHJvbGxlci5fcGFyc2VQYW5lTGlzdCk6IE1lcmdlZCB0aGUgcXVlcnkg
c3RyaW5nIGFyZ3VtZW50cyBmb3IgdGhlIHJhbmdlIGFuZCBwb2ludAorICAgICAgICBzZWxlY3Rp
b25zLCBhbmQgYWRkZWQgdHdvIG5ldyBhcmd1bWVudHMgZm9yIHRoZSBtb3ZpbmcgYXZlcmFnZSBh
bmQgdGhlIGVudmVsb3BpbmcgY29uZmlndXJhdGlvbnMuCisgICAgICAgIChBcHAuQ2hhcnRzQ29u
dHJvbGxlci5fc2VyaWFsaXplUGFuZUxpc3QpOiBEaXR0by4KKyAgICAgICAgKEFwcC5DaGFydHND
b250cm9sbGVyLl9zY2hlZHVsZVF1ZXJ5U3RyaW5nVXBkYXRlKTogT2JzZXJ2ZXMgc3RyYXRlZ3kg
Y29uZmlndXJhdGlvbnMuCisgICAgICAgIChBcHAuUGFuZUNvbnRyb2xsZXIuYWN0aW9ucy50b2dn
bGVCdWdzUGFuZSk6IEhpZGVzIHRoZSBzdGF0IHBhbmUuCisgICAgICAgIChBcHAuUGFuZUNvbnRy
b2xsZXIuYWN0aW9ucy50b2dnbGVTZWFyY2hQYW5lKTogSGlkZXMgdGhlIHN0YXQgcGFuZS4KKyAg
ICAgICAgKEFwcC5QYW5lQ29udHJvbGxlci5hY3Rpb25zLnRvZ2dsZVN0YXRQYW5lKTogQWRkZWQu
CisKKyAgICAgICAgKiBwdWJsaWMvdjIvY2hhcnQtcGFuZS5jc3M6IEFkZGVkIENTUyBydWxlcyBm
b3IgdGhlIG5ldyBzdGF0IHBhbmUuIEFsc28gYWRkZWQgLmZvcmVncm91bmQgY2xhc3MgZm9yIHRo
ZQorICAgICAgICBjdXJyZW50IChhcyBvcHBvc2VkIHRvIGJhc2VsaW5lIGFuZCB0YXJnZXQpIHRp
bWUgc2VyaWVzIGZvciB3aGVuIGl0J3MgdGhlIG1vc3QgZm9yZWdyb3VuZCBncmFwaCB3aXRob3V0
CisgICAgICAgIG1vdmluZyBhdmVyYWdlIGFuZCBpdHMgZW52ZWxvcGUgb3ZlcmxhcHBpbmcgb24g
dG9wIG9mIGl0LgorCisgICAgICAgICogcHVibGljL3YyL2luZGV4Lmh0bWw6IEFkZGVkIHRoZSB0
ZW1wbGF0ZXMgZm9yIHRoZSBzdGF0IHBhbmUgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGljb24gKM6j
KS4KKworICAgICAgICAqIHB1YmxpYy92Mi9pbnRlcmFjdGl2ZS1jaGFydC5qczoKKyAgICAgICAg
KEFwcC5JbnRlcmFjdGl2ZUNoYXJ0Q29tcG9uZW50LmNoYXJ0RGF0YURpZENoYW5nZSk6IFVuc2V0
IF90b3RhbFdpZHRoIGFuZCBfdG90YWxIZWlnaHQgdG8gYXZvaWQgZXhpdGluZworICAgICAgICBl
YXJseSBpbnNpZGUgX3VwZGF0ZURpbWVuc2lvbnNJZk5lZWRlZCB3aGVuIGNoYXJ0RGF0YSBjaGFu
Z2VzIGFmdGVyIHRoZSBpbml0aWFsIGxheW91dC4KKyAgICAgICAgKEFwcC5JbnRlcmFjdGl2ZUNo
YXJ0Q29tcG9uZW50LmRpZEluc2VydEVsZW1lbnQpOiBBdHRhY2ggZXZlbnQgbGlzdGVuZXJzIGhl
cmUgaW5zdGVhZCBvZiBpbnNpZGUKKyAgICAgICAgX2NvbnN0cnVjdEdyYXBoSWZQb3NzaWJsZSBz
aW5jZSB0aGF0IGNvdWxkIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBTVkcg
ZWxlbWVudC4KKyAgICAgICAgKEFwcC5JbnRlcmFjdGl2ZUNoYXJ0Q29tcG9uZW50Ll9jb25zdHJ1
Y3RHcmFwaElmUG9zc2libGUpOiBDbGVhciBkb3duIHRoZSBvbGQgU1ZHIGVsZW1lbnQgd2UgY3Jl
YXRlZAorICAgICAgICBidXQgZG9uJ3QgYm90aGVyIHJlbW92aW5nIGluZGl2aWR1YWwgcGF0aHMg
YW5kIGNpcmNsZXMuIEFkZGVkIHRoZSBjb2RlIHRvIHNob3cgdGhlIG1vdmluZyBhdmVyYWdlIHRp
bWUKKyAgICAgICAgc2VyaWVzIHdoZW4gdGhlcmUgaXMgb25lLiBBbHNvIGFkZCAiZm9yZWdyb3Vu
ZCIgY2xhc3Mgb24gU1ZHIGVsZW1lbnRzIGZvciB0aGUgY3VycmVudCB0aW1lIHNlcmllcyB3aGVu
CisgICAgICAgIHdlJ3JlIG5vdCBzaG93aW5nIHRoZSBtb3ZpbmcgYXZlcmFnZS4gY2hhcnQtcGFu
ZS5jc3MgaGFzIGJlZW4gdXBkYXRlZCB0byAiZGltIGRvd24iIHRoZSBjdXJyZW50IHRpbWUKKyAg
ICAgICAgc2VyaWVzIHdoZW4gImZvcmVncm91bmQiIGlzIG5vdCBzZXQuCisgICAgICAgIChBcHAu
SW50ZXJhY3RpdmVDaGFydENvbXBvbmVudC5fbWluTWF4Rm9yQWxsVGltZVNlcmllcyk6IFRha2Ug
dGhlIG1vdmluZyBhdmVyYWdlIHRpbWUgc2VyaWVzIGludG8KKyAgICAgICAgYWNjb3VudCB3aGVu
IGNvbXB1dGluZyB0aGUgeS1heGlzIHJhbmdlLgorICAgICAgICAoQXBwLkludGVyYWN0aXZlQ2hh
cnRDb21wb25lbnQuX2JydXNoQ2hhbmdlZCk6IFJlbW92ZWQgJ3NlbGVjdGlvbklzTG9ja2VkJyBh
cmd1bWVudCBhcyBpdCdzIHVzZWxlc3MuCisKKyAgICAgICAgKiBwdWJsaWMvdjIvanMvc3RhdGlz
dGljcy5qczoKKyAgICAgICAgKFN0YXRpc3RpY3MuTW92aW5nQXZlcmFnZVN0cmF0ZWdpZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFN0YXRpc3RpY3MuRW52ZWxvcGluZ1N0cmF0ZWdpZXMpOiBBZGRlZC4K
KwogMjAxNS0wMi0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBUaGUgZGVsdGEgdmFsdWUgaW4gdGhlIGNoYXJ0IHBhbmUgc29tZXRpbWVzIGRvZW5zJ3Qgc2hv
dyAnKycgZm9yIGEgcG9zaXRpdmUgZGVsdGEKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjIvYXBwLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YyL2FwcC5jc3MJKHJldmlzaW9uIDE3OTc2NSkKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjIvYXBwLmNzcwkod29ya2luZyBjb3B5KQpAQCAtMTIxLDEyICsx
MjEsMTUgQEAgYm9keSB7CiB9CiAuaWNvbi1idXR0b24gZyB7CiAgICAgc3Ryb2tlOiAjY2NjOwor
ICAgIGZpbGw6ICNjY2M7CiB9CiAuaWNvbi1idXR0b246aG92ZXIgZyB7CiAgICAgc3Ryb2tlOiAj
NjY2OworICAgIGZpbGw6ICM2NjY7CiB9CiAuZGlzYWJsZWQgLmljb24tYnV0dG9uOmhvdmVyIGcg
ewogICAgIHN0cm9rZTogI2NjYzsKKyAgICBmaWxsOiAjY2NjOwogfQogCiAKSW5kZXg6IFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjIvYXBwLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjIvYXBwLmpzCShyZXZpc2lvbiAxNzk3NjYpCisr
KyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2FwcC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMzUxLDcgKzM1MSw4IEBAIEFwcC5QYW5lID0gRW1iZXIuT2JqZWN0LmV4dGVuZCh7CiAg
ICAgICAgICAgICBBcHAuTWFuaWZlc3QuZmV0Y2hSdW5zV2l0aFBsYXRmb3JtQW5kTWV0cmljKHRo
aXMuZ2V0KCdzdG9yZScpLCBwbGF0Zm9ybUlkLCBtZXRyaWNJZCkudGhlbihmdW5jdGlvbiAocmVz
dWx0KSB7CiAgICAgICAgICAgICAgICAgc2VsZi5zZXQoJ3BsYXRmb3JtJywgcmVzdWx0LnBsYXRm
b3JtKTsKICAgICAgICAgICAgICAgICBzZWxmLnNldCgnbWV0cmljJywgcmVzdWx0Lm1ldHJpYyk7
Ci0gICAgICAgICAgICAgICAgc2VsZi5zZXQoJ2NoYXJ0RGF0YScsIEFwcC5jcmVhdGVDaGFydERh
dGEocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgc2VsZi5zZXQoJ2ZldGNoZWREYXRhJywgcmVz
dWx0KTsKKyAgICAgICAgICAgICAgICBzZWxmLl9jb21wdXRlQ2hhcnREYXRhKCk7CiAgICAgICAg
ICAgICB9LCBmdW5jdGlvbiAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQg
fHwgdHlwZW9mKHJlc3VsdCkgPT09ICJzdHJpbmciKQogICAgICAgICAgICAgICAgICAgICBzZWxm
LnNldCgnZmFpbHVyZScsICdGYWlsZWQgdG8gZmV0Y2ggdGhlIEpTT04gd2l0aCBhbiBlcnJvcjog
JyArIHJlc3VsdCk7CkBAIC00MzEsNiArNDMyLDEwMCBAQCBBcHAuUGFuZSA9IEVtYmVyLk9iamVj
dC5leHRlbmQoewogCiAgICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVTdGF0dXMobGFzdFBvaW50
LCBjaGFydERhdGEuY3VycmVudC5wcmV2aW91c1BvaW50KGxhc3RQb2ludCkpOwogICAgIH0ucHJv
cGVydHkoJ2NoYXJ0RGF0YScpLAorICAgIHVwZGF0ZVN0YXRpc3RpY3NUb29sczogZnVuY3Rpb24g
KCkKKyAgICB7CisgICAgICAgIHZhciBzdHJhdGVnaWVzID0gU3RhdGlzdGljcy5Nb3ZpbmdBdmVy
YWdlU3RyYXRlZ2llcy5tYXAodGhpcy5fY2xvbmVTdHJhdGVneS5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgdGhpcy5zZXQoJ21vdmluZ0F2ZXJhZ2VTdHJhdGVnaWVzJywgW3tsYWJlbDogJ05vbmUnfV0u
Y29uY2F0KHN0cmF0ZWdpZXMpKTsKKyAgICAgICAgdGhpcy5zZXQoJ2Nob3Nlbk1vdmluZ0F2ZXJh
Z2VTdHJhdGVneScsIHRoaXMuX2NvbmZpZ3VyZVN0cmF0ZWd5KHN0cmF0ZWdpZXMsIHRoaXMuZ2V0
KCdtb3ZpbmdBdmVyYWdlQ29uZmlnJykpKTsKKworICAgICAgICB2YXIgc3RyYXRlZ2llcyA9IFN0
YXRpc3RpY3MuRW52ZWxvcGluZ1N0cmF0ZWdpZXMubWFwKHRoaXMuX2Nsb25lU3RyYXRlZ3kuYmlu
ZCh0aGlzKSk7CisgICAgICAgIHRoaXMuc2V0KCdlbnZlbG9waW5nU3RyYXRlZ2llcycsIFt7bGFi
ZWw6ICdOb25lJ31dLmNvbmNhdChzdHJhdGVnaWVzKSk7CisgICAgICAgIHRoaXMuc2V0KCdjaG9z
ZW5FbnZlbG9waW5nU3RyYXRlZ3knLCB0aGlzLl9jb25maWd1cmVTdHJhdGVneShzdHJhdGVnaWVz
LCB0aGlzLmdldCgnZW52ZWxvcGluZ0NvbmZpZycpKSk7CisgICAgfS5vbignaW5pdCcpLAorICAg
IF9jbG9uZVN0cmF0ZWd5OiBmdW5jdGlvbiAoc3RyYXRlZ3kpCisgICAgeworICAgICAgICB2YXIg
cGFyYW1ldHJlTGlzdCA9IChzdHJhdGVneS5wYXJhbWV0ZXJMaXN0IHx8IFtdKS5tYXAoZnVuY3Rp
b24gKHBhcmFtKSB7IHJldHVybiBFbWJlci5PYmplY3QuY3JlYXRlKHBhcmFtKTsgfSk7CisgICAg
ICAgIHJldHVybiBFbWJlci5PYmplY3QuY3JlYXRlKHsKKyAgICAgICAgICAgIGlkOiBzdHJhdGVn
eS5pZCwKKyAgICAgICAgICAgIGxhYmVsOiBzdHJhdGVneS5sYWJlbCwKKyAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiBzdHJhdGVneS5kZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHBhcmFtZXRlckxp
c3Q6IHBhcmFtZXRyZUxpc3QsCisgICAgICAgICAgICBleGVjdXRlOiBzdHJhdGVneS5leGVjdXRl
LAorICAgICAgICB9KTsKKyAgICB9LAorICAgIF9jb25maWd1cmVTdHJhdGVneTogZnVuY3Rpb24g
KHN0cmF0ZWdpZXMsIGNvbmZpZykKKyAgICB7CisgICAgICAgIGlmICghY29uZmlnIHx8ICFjb25m
aWdbMF0pCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICB2YXIgaWQgPSBjb25m
aWdbMF07CisgICAgICAgIHZhciBjaG9zZW5TdHJhdGVneSA9IHN0cmF0ZWdpZXMuZmluZChmdW5j
dGlvbiAoc3RyYXRlZ3kpIHsgcmV0dXJuIHN0cmF0ZWd5LmlkID09IGlkIH0pOworICAgICAgICBp
ZiAoIWNob3NlblN0cmF0ZWd5KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBjaG9zZW5TdHJhdGVneS5wYXJhbWV0ZXJzOyBpKyspCisgICAg
ICAgICAgICBjaG9zZW5TdHJhdGVneS5wYXJhbWV0ZXJzW2ldID0gcGFyc2VGbG9hdChjb25maWdb
aSArIDFdKTsKKworICAgICAgICByZXR1cm4gY2hvc2VuU3RyYXRlZ3k7CisgICAgfSwKKyAgICBf
Y29tcHV0ZUNoYXJ0RGF0YTogZnVuY3Rpb24gKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5n
ZXQoJ2ZldGNoZWREYXRhJykpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGNo
YXJ0RGF0YSA9IEFwcC5jcmVhdGVDaGFydERhdGEodGhpcy5nZXQoJ2ZldGNoZWREYXRhJykpOwor
ICAgICAgICBjaGFydERhdGEubW92aW5nQXZlcmFnZSA9IHRoaXMuX2NvbXB1dGVNb3ZpbmdBdmVy
YWdlKGNoYXJ0RGF0YSk7CisKKyAgICAgICAgdGhpcy5fdXBkYXRlU3RyYXRlZ3lDb25maWdJZk5l
ZWRlZCh0aGlzLmdldCgnY2hvc2VuTW92aW5nQXZlcmFnZVN0cmF0ZWd5JyksICdtb3ZpbmdBdmVy
YWdlQ29uZmlnJyk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVN0cmF0ZWd5Q29uZmlnSWZOZWVkZWQo
dGhpcy5nZXQoJ2Nob3NlbkVudmVsb3BpbmdTdHJhdGVneScpLCAnZW52ZWxvcGluZ0NvbmZpZycp
OworCisgICAgICAgIHRoaXMuc2V0KCdjaGFydERhdGEnLCBjaGFydERhdGEpOworICAgIH0ub2Jz
ZXJ2ZXMoJ2Nob3Nlbk1vdmluZ0F2ZXJhZ2VTdHJhdGVneScsICdjaG9zZW5Nb3ZpbmdBdmVyYWdl
U3RyYXRlZ3kucGFyYW1ldGVyTGlzdC5AZWFjaC52YWx1ZScsCisgICAgICAgICdjaG9zZW5FbnZl
bG9waW5nU3RyYXRlZ3knLCAnY2hvc2VuRW52ZWxvcGluZ1N0cmF0ZWd5LnBhcmFtZXRlckxpc3Qu
QGVhY2gudmFsdWUnKSwKKyAgICBfY29tcHV0ZU1vdmluZ0F2ZXJhZ2U6IGZ1bmN0aW9uIChjaGFy
dERhdGEpCisgICAgeworICAgICAgICB2YXIgY3VycmVudFRpbWVTZXJpZXNEYXRhID0gY2hhcnRE
YXRhLmN1cnJlbnQuc2VyaWVzKCk7CisgICAgICAgIHZhciBtb3ZpbmdBdmVyYWdlU3RyYXRlZ3kg
PSB0aGlzLmdldCgnY2hvc2VuTW92aW5nQXZlcmFnZVN0cmF0ZWd5Jyk7CisgICAgICAgIGlmICgh
bW92aW5nQXZlcmFnZVN0cmF0ZWd5IHx8ICFtb3ZpbmdBdmVyYWdlU3RyYXRlZ3kuZXhlY3V0ZSkK
KyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHZhciBtb3ZpbmdBdmVyYWdlVmFs
dWVzID0gdGhpcy5fZXhlY3V0ZVN0cmF0ZWd5KG1vdmluZ0F2ZXJhZ2VTdHJhdGVneSwgY3VycmVu
dFRpbWVTZXJpZXNEYXRhKTsKKyAgICAgICAgaWYgKCFtb3ZpbmdBdmVyYWdlVmFsdWVzKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgdmFyIGVudmVsb3BlRGVsdGEgPSBudWxs
OworICAgICAgICB2YXIgZW52ZWxvcGluZ1N0cmF0ZWd5ID0gdGhpcy5nZXQoJ2Nob3NlbkVudmVs
b3BpbmdTdHJhdGVneScpOworICAgICAgICBpZiAoZW52ZWxvcGluZ1N0cmF0ZWd5ICYmIGVudmVs
b3BpbmdTdHJhdGVneS5leGVjdXRlKQorICAgICAgICAgICAgZW52ZWxvcGVEZWx0YSA9IHRoaXMu
X2V4ZWN1dGVTdHJhdGVneShlbnZlbG9waW5nU3RyYXRlZ3ksIGN1cnJlbnRUaW1lU2VyaWVzRGF0
YSwgW21vdmluZ0F2ZXJhZ2VWYWx1ZXNdKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcg
VGltZVNlcmllcyhjdXJyZW50VGltZVNlcmllc0RhdGEubWFwKGZ1bmN0aW9uIChwb2ludCwgaW5k
ZXgpIHsKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IG1vdmluZ0F2ZXJhZ2VWYWx1ZXNbaW5kZXhd
OworICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBtZWFzdXJlbWVudDogcG9p
bnQubWVhc3VyZW1lbnQsCisgICAgICAgICAgICAgICAgdGltZTogcG9pbnQudGltZSwKKyAgICAg
ICAgICAgICAgICB2YWx1ZTogdmFsdWUsCisgICAgICAgICAgICAgICAgaW50ZXJ2YWw6IGVudmVs
b3BlRGVsdGEgIT09IG51bGwgPyBbdmFsdWUgLSBlbnZlbG9wZURlbHRhLCB2YWx1ZSArIGVudmVs
b3BlRGVsdGFdIDogbnVsbCwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSkpOworICAgIH0sCisg
ICAgX2V4ZWN1dGVTdHJhdGVneTogZnVuY3Rpb24gKHN0cmF0ZWd5LCBjdXJyZW50VGltZVNlcmll
c0RhdGEsIGFkZGl0aW9uYWxBcmd1bWVudHMpCisgICAgeworICAgICAgICB2YXIgcGFyYW1ldGVy
cyA9IChzdHJhdGVneS5wYXJhbWV0ZXJMaXN0IHx8IFtdKS5tYXAoZnVuY3Rpb24gKHBhcmFtKSB7
CisgICAgICAgICAgICB2YXIgcGFyc2VkID0gcGFyc2VGbG9hdChwYXJhbS52YWx1ZSk7CisgICAg
ICAgICAgICByZXR1cm4gTWF0aC5taW4ocGFyYW0ubWF4IHx8IEluZmluaXR5LCBNYXRoLm1heChw
YXJhbS5taW4gfHwgLUluZmluaXR5LCBpc05hTihwYXJzZWQpID8gMCA6IHBhcnNlZCkpOworICAg
ICAgICB9KTsKKyAgICAgICAgcGFyYW1ldGVycy5wdXNoKGN1cnJlbnRUaW1lU2VyaWVzRGF0YS5t
YXAoZnVuY3Rpb24gKHBvaW50KSB7IHJldHVybiBwb2ludC52YWx1ZSB9KSk7CisgICAgICAgIHJl
dHVybiBzdHJhdGVneS5leGVjdXRlLmFwcGx5KHdpbmRvdywgcGFyYW1ldGVycy5jb25jYXQoYWRk
aXRpb25hbEFyZ3VtZW50cykpOworICAgIH0sCisgICAgX3VwZGF0ZVN0cmF0ZWd5Q29uZmlnSWZO
ZWVkZWQ6IGZ1bmN0aW9uIChzdHJhdGVneSwgY29uZmlnTmFtZSkKKyAgICB7CisgICAgICAgIHZh
ciBjb25maWcgPSBudWxsOworICAgICAgICBpZiAoc3RyYXRlZ3kgJiYgc3RyYXRlZ3kuZXhlY3V0
ZSkKKyAgICAgICAgICAgIGNvbmZpZyA9IFtzdHJhdGVneS5pZF0uY29uY2F0KChzdHJhdGVneS5w
YXJhbWV0ZXJMaXN0IHx8IFtdKS5tYXAoZnVuY3Rpb24gKHBhcmFtKSB7IHJldHVybiBwYXJhbS52
YWx1ZTsgfSkpOworCisgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeShjb25maWcpICE9IEpTT04u
c3RyaW5naWZ5KHRoaXMuZ2V0KGNvbmZpZ05hbWUpKSkKKyAgICAgICAgICAgIHRoaXMuc2V0KGNv
bmZpZ05hbWUsIGNvbmZpZyk7CisgICAgfSwKIH0pOwogCiBBcHAuY3JlYXRlQ2hhcnREYXRhID0g
ZnVuY3Rpb24gKGRhdGEpCkBAIC01NTIsMjYgKzY0NywzMCBAQCBBcHAuQ2hhcnRzQ29udHJvbGxl
ciA9IEVtYmVyLkNvbnRyb2xsZXIuCiAgICAgICAgIGlmICghcGFyc2VkUGFuZUxpc3QpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKIAotICAgICAgICAvLyBEb24ndCByZS1jcmVhdGUgYWxsIHBh
bmVzLgorICAgICAgICAvLyBGSVhNRTogRG9uJ3QgcmUtY3JlYXRlIGFsbCBwYW5lcy4KICAgICAg
ICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgICByZXR1cm4gcGFyc2VkUGFuZUxpc3QubWFwKGZ1
bmN0aW9uIChwYW5lSW5mbykgewogICAgICAgICAgICAgdmFyIHRpbWVSYW5nZSA9IG51bGw7Ci0g
ICAgICAgICAgICBpZiAocGFuZUluZm9bM10gJiYgcGFuZUluZm9bM10gaW5zdGFuY2VvZiBBcnJh
eSkgewotICAgICAgICAgICAgICAgIHZhciB0aW1lUmFuZ2UgPSBwYW5lSW5mb1szXTsKKyAgICAg
ICAgICAgIHZhciBzZWxlY3RlZEl0ZW0gPSBudWxsOworICAgICAgICAgICAgaWYgKHBhbmVJbmZv
WzJdIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICB2YXIgdGltZVJhbmdlID0g
cGFuZUluZm9bMl07CiAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAg
dGltZVJhbmdlID0gW25ldyBEYXRlKHRpbWVSYW5nZVswXSksIG5ldyBEYXRlKHRpbWVSYW5nZVsx
XSldOwogICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGNvbnNvbGUubG9nKCJGYWlsZWQgdG8gcGFyc2UgdGhlIHRpbWUgcmFuZ2U6IiwgdGltZVJh
bmdlLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gcGFuZUluZm9bMl07CisK
ICAgICAgICAgICAgIHJldHVybiBBcHAuUGFuZS5jcmVhdGUoewogICAgICAgICAgICAgICAgIHN0
b3JlOiBzZWxmLnN0b3JlLAogICAgICAgICAgICAgICAgIGluZm86IHBhbmVJbmZvLAogICAgICAg
ICAgICAgICAgIHBsYXRmb3JtSWQ6IHBhbmVJbmZvWzBdLAogICAgICAgICAgICAgICAgIG1ldHJp
Y0lkOiBwYW5lSW5mb1sxXSwKLSAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW06IHBhbmVJbmZv
WzJdLAorICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbTogc2VsZWN0ZWRJdGVtLAogICAgICAg
ICAgICAgICAgIHRpbWVSYW5nZTogdGltZVJhbmdlLAotICAgICAgICAgICAgICAgIHRpbWVSYW5n
ZUlzTG9ja2VkOiAhIXBhbmVJbmZvWzRdLAorICAgICAgICAgICAgICAgIG1vdmluZ0F2ZXJhZ2VD
b25maWc6IHBhbmVJbmZvWzNdLAorICAgICAgICAgICAgICAgIGVudmVsb3BpbmdDb25maWc6IHBh
bmVJbmZvWzRdLAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0sCkBAIC01ODAs
MTMgKzY3OSwxNCBAQCBBcHAuQ2hhcnRzQ29udHJvbGxlciA9IEVtYmVyLkNvbnRyb2xsZXIuCiAg
ICAgewogICAgICAgICBpZiAoIXBhbmVzLmxlbmd0aCkKICAgICAgICAgICAgIHJldHVybiB1bmRl
ZmluZWQ7CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICAgcmV0dXJuIEFwcC5lbmNv
ZGVQcmV0dGlmaWVkSlNPTihwYW5lcy5tYXAoZnVuY3Rpb24gKHBhbmUpIHsKICAgICAgICAgICAg
IHJldHVybiBbCiAgICAgICAgICAgICAgICAgcGFuZS5nZXQoJ3BsYXRmb3JtSWQnKSwKICAgICAg
ICAgICAgICAgICBwYW5lLmdldCgnbWV0cmljSWQnKSwKLSAgICAgICAgICAgICAgICBwYW5lLmdl
dCgnc2VsZWN0ZWRJdGVtJyksCi0gICAgICAgICAgICAgICAgcGFuZS5nZXQoJ3RpbWVSYW5nZScp
ID8gcGFuZS5nZXQoJ3RpbWVSYW5nZScpLm1hcChmdW5jdGlvbiAoZGF0ZSkgeyByZXR1cm4gZGF0
ZS5nZXRUaW1lKCkgfSkgOiBudWxsLAotICAgICAgICAgICAgICAgICEhcGFuZS5nZXQoJ3RpbWVS
YW5nZUlzTG9ja2VkJyksCisgICAgICAgICAgICAgICAgcGFuZS5nZXQoJ3RpbWVSYW5nZScpID8g
cGFuZS5nZXQoJ3RpbWVSYW5nZScpLm1hcChmdW5jdGlvbiAoZGF0ZSkgeyByZXR1cm4gZGF0ZS5n
ZXRUaW1lKCkgfSkgOiBwYW5lLmdldCgnc2VsZWN0ZWRJdGVtJyksCisgICAgICAgICAgICAgICAg
cGFuZS5nZXQoJ21vdmluZ0F2ZXJhZ2VDb25maWcnKSwKKyAgICAgICAgICAgICAgICBwYW5lLmdl
dCgnZW52ZWxvcGluZ0NvbmZpZycpLAogICAgICAgICAgICAgXTsKICAgICAgICAgfSkpOwogICAg
IH0sCkBAIC01OTQsOCArNjk0LDggQEAgQXBwLkNoYXJ0c0NvbnRyb2xsZXIgPSBFbWJlci5Db250
cm9sbGVyLgogICAgIF9zY2hlZHVsZVF1ZXJ5U3RyaW5nVXBkYXRlOiBmdW5jdGlvbiAoKQogICAg
IHsKICAgICAgICAgRW1iZXIucnVuLmRlYm91bmNlKHRoaXMsICdfdXBkYXRlUXVlcnlTdHJpbmcn
LCAxMDAwKTsKLSAgICB9Lm9ic2VydmVzKCdzaGFyZWRab29tJywgJ3BhbmVzLkBlYWNoLnBsYXRm
b3JtJywgJ3BhbmVzLkBlYWNoLm1ldHJpYycsICdwYW5lcy5AZWFjaC5zZWxlY3RlZEl0ZW0nLAot
ICAgICAgICAncGFuZXMuQGVhY2gudGltZVJhbmdlJywgJ3BhbmVzLkBlYWNoLnRpbWVSYW5nZUlz
TG9ja2VkJyksCisgICAgfS5vYnNlcnZlcygnc2hhcmVkWm9vbScsICdwYW5lcy5AZWFjaC5wbGF0
Zm9ybScsICdwYW5lcy5AZWFjaC5tZXRyaWMnLCAncGFuZXMuQGVhY2guc2VsZWN0ZWRJdGVtJywg
J3BhbmVzLkBlYWNoLnRpbWVSYW5nZScsCisgICAgICAgICdwYW5lcy5AZWFjaC5tb3ZpbmdBdmVy
YWdlQ29uZmlnJywgJ3BhbmVzLkBlYWNoLmVudmVsb3BpbmdDb25maWcnKSwKIAogICAgIF91cGRh
dGVRdWVyeVN0cmluZzogZnVuY3Rpb24gKCkKICAgICB7CkBAIC03MTEsOCArODExLDEwIEBAIEFw
cC5QYW5lQ29udHJvbGxlciA9IEVtYmVyLk9iamVjdENvbnRyb2wKICAgICAgICAgfSwKICAgICAg
ICAgdG9nZ2xlQnVnc1BhbmU6IGZ1bmN0aW9uICgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlm
ICh0aGlzLnRvZ2dsZVByb3BlcnR5KCdzaG93aW5nQW5hbHlzaXNQYW5lJykpCisgICAgICAgICAg
ICBpZiAodGhpcy50b2dnbGVQcm9wZXJ0eSgnc2hvd2luZ0FuYWx5c2lzUGFuZScpKSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5zZXQoJ3Nob3dpbmdTZWFyY2hQYW5lJywgZmFsc2UpOworICAgICAg
ICAgICAgICAgIHRoaXMuc2V0KCdzaG93aW5nU3RhdFBhbmUnLCBmYWxzZSk7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0sCiAgICAgICAgIGNyZWF0ZUFuYWx5c2lzVGFzazogZnVuY3Rpb24gKCkK
ICAgICAgICAgewpAQCAtNzQzLDEzICs4NDUsMjIgQEAgQXBwLlBhbmVDb250cm9sbGVyID0gRW1i
ZXIuT2JqZWN0Q29udHJvbAogICAgICAgICAgICAgdmFyIG1vZGVsID0gdGhpcy5nZXQoJ21vZGVs
Jyk7CiAgICAgICAgICAgICBpZiAoIW1vZGVsLmdldCgnY29tbWl0U2VhcmNoUmVwb3NpdG9yeScp
KQogICAgICAgICAgICAgICAgIG1vZGVsLnNldCgnY29tbWl0U2VhcmNoUmVwb3NpdG9yeScsIEFw
cC5NYW5pZmVzdC5yZXBvc2l0b3JpZXNXaXRoUmVwb3J0ZWRDb21taXRzWzBdKTsKLSAgICAgICAg
ICAgIGlmICh0aGlzLnRvZ2dsZVByb3BlcnR5KCdzaG93aW5nU2VhcmNoUGFuZScpKQorICAgICAg
ICAgICAgaWYgKHRoaXMudG9nZ2xlUHJvcGVydHkoJ3Nob3dpbmdTZWFyY2hQYW5lJykpIHsKICAg
ICAgICAgICAgICAgICB0aGlzLnNldCgnc2hvd2luZ0FuYWx5c2lzUGFuZScsIGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICB0aGlzLnNldCgnc2hvd2luZ1N0YXRQYW5lJywgZmFsc2UpOworICAgICAg
ICAgICAgfQogICAgICAgICB9LAogICAgICAgICBzZWFyY2hDb21taXQ6IGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHZhciBtb2RlbCA9IHRoaXMuZ2V0KCdtb2RlbCcpOwogICAgICAgICAgICAg
bW9kZWwuc2VhcmNoQ29tbWl0KG1vZGVsLmdldCgnY29tbWl0U2VhcmNoUmVwb3NpdG9yeScpLCBt
b2RlbC5nZXQoJ2NvbW1pdFNlYXJjaEtleXdvcmQnKSk7ICAgICAgICAgICAgICAgIAogICAgICAg
ICB9LAorICAgICAgICB0b2dnbGVTdGF0UGFuZTogZnVuY3Rpb24gKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKHRoaXMudG9nZ2xlUHJvcGVydHkoJ3Nob3dpbmdTdGF0UGFuZScpKSB7Cisg
ICAgICAgICAgICAgICAgdGhpcy5zZXQoJ3Nob3dpbmdTZWFyY2hQYW5lJywgZmFsc2UpOworICAg
ICAgICAgICAgICAgIHRoaXMuc2V0KCdzaG93aW5nQW5hbHlzaXNQYW5lJywgZmFsc2UpOworICAg
ICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICB6b29tZWQ6IGZ1bmN0aW9uIChzZWxlY3Rp
b24pCiAgICAgICAgIHsKICAgICAgICAgICAgIHRoaXMuc2V0KCdtYWluUGxvdERvbWFpbicsIHNl
bGVjdGlvbiA/IHNlbGVjdGlvbiA6IHRoaXMuZ2V0KCdvdmVydmlld0RvbWFpbicpKTsKQEAgLTc4
Niw3ICs4OTcsNyBAQCBBcHAuUGFuZUNvbnRyb2xsZXIgPSBFbWJlci5PYmplY3RDb250cm9sCiAg
ICAgICAgIHZhciBuZXdTZWxlY3Rpb24gPSB0aGlzLmdldCgncGFyZW50Q29udHJvbGxlcicpLmdl
dCgnc2hhcmVkWm9vbScpOwogICAgICAgICBpZiAoQXBwLmRvbWFpbnNBcmVFcXVhbChuZXdTZWxl
Y3Rpb24sIHRoaXMuZ2V0KCdtYWluUGxvdERvbWFpbicpKSkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgdGhpcy5zZXQoJ21haW5QbG90RG9tYWluJywgbmV3U2VsZWN0aW9uKTsKKyAgICAg
ICAgdGhpcy5zZXQoJ21haW5QbG90RG9tYWluJywgbmV3U2VsZWN0aW9uIHx8IHRoaXMuZ2V0KCdv
dmVydmlld0RvbWFpbicpKTsKICAgICAgICAgdGhpcy5zZXQoJ292ZXJ2aWV3U2VsZWN0aW9uJywg
bmV3U2VsZWN0aW9uKTsKICAgICB9Lm9ic2VydmVzKCdwYXJlbnRDb250cm9sbGVyLnNoYXJlZFpv
b20nKS5vbignaW5pdCcpLAogICAgIF91cGRhdGVEZXRhaWxzOiBmdW5jdGlvbiAoKQpJbmRleDog
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9jaGFydC1wYW5lLmNzcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2NoYXJ0LXBhbmUuY3Nz
CShyZXZpc2lvbiAxNzk3NjUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yy
L2NoYXJ0LXBhbmUuY3NzCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCwxMyBAQAogICAgIHRv
cDogMC41NXJlbTsKIH0KIAorLmNoYXJ0LXBhbmUgYS5zdGF0LWJ1dHRvbiB7CisgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICByaWdodDogMy4x
NXJlbTsKKyAgICB0b3A6IDAuNTVyZW07Cit9CisKIC5jaGFydC1wYW5lIGEuYnVncy1idXR0b24g
ewogICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CkBA
IC02NCwzNiArNzEsNzUgQEAKICAgICB0b3A6IDAuNTVyZW07CiB9CiAKLS5zZWFyY2gtcGFuZSwg
LmFuYWx5c2lzLXBhbmUgeworLnBvcHVwLXBhbmUgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
ICAgICB0b3A6IDEuN3JlbTsKICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiOwotICAgIHBhZGRp
bmc6IDA7CisgICAgZm9udC1zaXplOiAwLjhyZW07CisgICAgcGFkZGluZzogMC4ycmVtOwogICAg
IGJvcmRlci1yYWRpdXM6IDAuNXJlbTsKICAgICBkaXNwbGF5OiB0YWJsZTsKICAgICBiYWNrZ3Jv
dW5kOiB3aGl0ZTsKIH0KIAotLmFuYWx5c2lzLXBhbmUgewotICAgIHJpZ2h0OiAxLjNyZW07Cisu
cG9wdXAtcGFuZS5oaWRkZW4geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKKy5zdGF0LXBhbmUg
eworICAgIHJpZ2h0OiAyLjZyZW07CisgICAgcGFkZGluZzogMDsKIH0KIAotLmFuYWx5c2lzLXBh
bmUgdGFibGUgeworLnN0YXQtcGFuZSBmaWVsZHNldCB7CisgICAgYm9yZGVyOiBzb2xpZCAxcHgg
I2NjYzsKKyAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07CiAgICAgbWFyZ2luOiAwLjJyZW07Cisg
ICAgcGFkZGluZzogMDsKK30KKworLnN0YXQtb3B0aW9uIHsKKyAgICBtYXJnaW46IDA7CisgICAg
cGFkZGluZzogMDsKICAgICBmb250LXNpemU6IDAuOHJlbTsKIH0KIAotLmFuYWx5c2lzLXBhbmUg
dGggewotICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cisuc3RhdC1vcHRpb24gaDEgeworICAgIGZv
bnQtc2l6ZTogaW5oZXJpdDsKKyAgICBsaW5lLWhlaWdodDogMC44cmVtOworICAgIHBhZGRpbmc6
IDAuM3JlbSAwLjVyZW07CisgICAgbWFyZ2luOiAwOworICAgIGJvcmRlci10b3A6IHNvbGlkIDFw
eCAjY2NjOworICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjY2NjOwogfQogCi0uc2VhcmNo
LXBhbmUgewotICAgIHJpZ2h0OiAwcmVtOworLnN0YXQtb3B0aW9uOmZpcnN0LWNoaWxkIGgxIHsK
KyAgICBib3JkZXItdG9wOiBub25lOwogfQogCi0uYW5hbHlzaXMtcGFuZS5oaWRkZW4sCi0uc2Vh
cmNoLXBhbmUuaGlkZGVuIHsKLSAgICBkaXNwbGF5OiBub25lOworLnN0YXQtb3B0aW9uID4gKiB7
CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgbWFyZ2luOiAwLjFyZW0gMC41cmVtIDAuMXJlbSAx
cmVtOworfQorCisuc3RhdC1vcHRpb24gaW5wdXQgeworICAgIHdpZHRoOiA0cmVtOworfQorCisu
c3RhdC1vcHRpb24gcCB7CisgICAgbWF4LXdpZHRoOiAxNXJlbTsKK30KKworLmFuYWx5c2lzLXBh
bmUgeworICAgIHJpZ2h0OiAxLjNyZW07Cit9CisKKy5hbmFseXNpcy1wYW5lID4gKiB7CisgICAg
bWFyZ2luOiAwLjJyZW07Cit9CisKKy5zZWFyY2gtcGFuZSB7CisgICAgcmlnaHQ6IDByZW07CiB9
CiAKIC5zZWFyY2gtcGFuZSBpbnB1dCB7CkBAIC0xMDMsMTUgKzE0OSwxNSBAQAogICAgIGJvcmRl
cjogbm9uZTsKICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC41cmVtOwogICAgIGJvcmRl
ci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjVyZW07Ci0gICAgcGFkZGluZzogMC41cmVtOwotICAg
IGZvbnQtc2l6ZTogMXJlbTsKKyAgICBwYWRkaW5nOiAwLjJyZW07CisgICAgZm9udC1zaXplOiAw
LjhyZW07CiAgICAgbWFyZ2luOiAwOwogfQogCiAuc2VhcmNoLXBhbmUgLnJlcG9zaXRvcmllcyB7
CiAgICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwot
ICAgIHBhZGRpbmc6IDAgMC41cmVtOworICAgIHBhZGRpbmc6IDA7CiB9CiAKIC5zZWFyY2gtcGFu
ZSBpbnB1dDpmb2N1cyB7CkBAIC0zMDMsMjAgKzM0OSw0MSBAQAogfQogCiAuY2hhcnQgLmRvdCB7
Ci0gICAgZmlsbDogIzY2NjsKKyAgICBmaWxsOiAjY2NjOwogICAgIHN0cm9rZTogbm9uZTsKIH0K
Ky5jaGFydCAuZG90LmZvcmVncm91bmQgeworICAgIGZpbGw6ICM2NjY7Cit9CiAKIC5jaGFydCBw
YXRoLmFyZWEgewogICAgIHN0cm9rZTogbm9uZTsKICAgICBmaWxsOiAjY2NjOwogICAgIG9wYWNp
dHk6IDAuODsKIH0KKy5jaGFydCBwYXRoLmFyZWEuZm9yZWdyb3VuZCB7Cit9CiAKIC5jaGFydCBw
YXRoLmN1cnJlbnQgeworICAgIHN0cm9rZTogI2NjYzsKK30KKworLmNoYXJ0IHBhdGguY3VycmVu
dC5mb3JlZ3JvdW5kIHsKICAgICBzdHJva2U6ICM5OTk7CiB9CiAKKy5jaGFydCBwYXRoLm1vdmlu
Z0F2ZXJhZ2UgeworICAgIHN0cm9rZTogIzM2MzsKKyAgICBmaWxsOiBub25lOworICAgIG9wYWNp
dHk6IDAuODsKK30KKworLmNoYXJ0IHBhdGguZW52ZWxvcGUgeworICAgIHN0cm9rZTogbm9uZTsK
KyAgICBmaWxsOiAjNmM2OworICAgIG9wYWNpdHk6IDAuNDsKK30KKwogLmNoYXJ0IHBhdGguYmFz
ZWxpbmUgewogICAgIHN0cm9rZTogI2Y2NjsKIH0KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjIvaW5kZXguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YyL2luZGV4Lmh0bWwJKHJldmlzaW9uIDE3OTc2NSkKKysrIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjIvaW5kZXguaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTQ3LDYgKzE0Nyw5IEBACiAgICAgICAgICAgICAgICAgPGhlYWRlcj4KICAgICAgICAgICAg
ICAgICAgICAgPGgxIHt7YWN0aW9uICJ0b2dnbGVEZXRhaWxzIn19Pnt7bWV0cmljLmZ1bGxOYW1l
fX0gLSB7eyBwbGF0Zm9ybS5uYW1lfX08L2gxPgogICAgICAgICAgICAgICAgICAgICA8YSBocmVm
PSIjIiB0aXRsZT0iQ2xvc2UiIGNsYXNzPSJjbG9zZS1idXR0b24iIHt7YWN0aW9uICJjbG9zZSJ9
fT57e3BhcnRpYWwgImNsb3NlLWJ1dHRvbiJ9fTwvYT4KKyAgICAgICAgICAgICAgICAgICAge3sj
aWYgbW92aW5nQXZlcmFnZVN0cmF0ZWdpZXN9fQorICAgICAgICAgICAgICAgICAgICAgICAgPGEg
aHJlZj0iIyIgdGl0bGU9IlN0YXRpc3RpY2FsIFRvb2xzIiBjbGFzcz0ic3RhdC1idXR0b24iIHt7
YWN0aW9uICJ0b2dnbGVTdGF0UGFuZSJ9fT57e3BhcnRpYWwgInN0YXQtYnV0dG9uIn19PC9hPgor
ICAgICAgICAgICAgICAgICAgICB7ey9pZn19CiAgICAgICAgICAgICAgICAgICAgIHt7I2lmIEFw
cC5NYW5pZmVzdC5idWdUcmFja2Vyc319CiAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVm
PSIjIiB0aXRsZT0iQW5hbHlzaXMiIGNsYXNzPSJidWdzLWJ1dHRvbiIge3thY3Rpb24gInRvZ2ds
ZUJ1Z3NQYW5lIn19PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cGFydGlhbCAiYW5h
bHlzaXMtYnV0dG9uIn19CkBAIC0xNzMsNyArMTc2LDYgQEAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByYW5nZVJvdXRlPSJhbmFseXNpc1Rhc2siCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZWN0aW9uPXRpbWVSYW5nZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGVjdGVkUG9pbnRzPXNlbGVjdGVkUG9pbnRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZWN0aW9uSXNMb2NrZWQ9dGltZVJhbmdlSXNMb2NrZWQKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXJrZWRQb2ludHM9bWFya2VkUG9pbnRzCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgem9vbT0iem9vbWVkIn19CiAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19CkBAIC0y
MDAsNyArMjAyLDEyIEBACiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAg
ICAgIDwvZGl2PgogCi0gICAgICAgICAgICAgICAgPGZvcm0ge3tiaW5kLWF0dHIgY2xhc3M9Ijpz
ZWFyY2gtcGFuZSBzaG93aW5nU2VhcmNoUGFuZTo6aGlkZGVuIn19PgorICAgICAgICAgICAgICAg
IDxkaXYge3tiaW5kLWF0dHIgY2xhc3M9Ijpwb3B1cC1wYW5lIDphbmFseXNpcy1wYW5lIHNob3dp
bmdBbmFseXNpc1BhbmU6OmhpZGRlbiJ9fT4KKyAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk5h
bWU6IHt7aW5wdXQgdHlwZT10ZXh0IHZhbHVlPW5ld0FuYWx5c2lzVGFza05hbWV9fTwvbGFiZWw+
CisgICAgICAgICAgICAgICAgICAgIDxidXR0b24ge3thY3Rpb24gImNyZWF0ZUFuYWx5c2lzVGFz
ayJ9fSB7e2JpbmQtYXR0ciBkaXNhYmxlZD1jYW5ub3RBbmFseXplfX0+QW5hbHl6ZTwvYnV0dG9u
PgorICAgICAgICAgICAgICAgIDwvZGl2PgorCisgICAgICAgICAgICAgICAgPGZvcm0ge3tiaW5k
LWF0dHIgY2xhc3M9Ijpwb3B1cC1wYW5lIDpzZWFyY2gtcGFuZSBzaG93aW5nU2VhcmNoUGFuZTo6
aGlkZGVuIn19PgogICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVwb3NpdG9yaWVz
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgIHt7dmlldyBFbWJlci5TZWxlY3QKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250ZW50PUFwcC5NYW5pZmVzdC5yZXBvc2l0b3JpZXNXaXRo
UmVwb3J0ZWRDb21taXRzCkBAIC0yMTEsMTkgKzIxOCw3IEBACiAgICAgICAgICAgICAgICAgICAg
IHt7aW5wdXQgYWN0aW9uPSJzZWFyY2hDb21taXQiIHBsYWNlaG9sZGVyPSJOYW1lIG9yIGVtYWls
IiB2YWx1ZT1jb21taXRTZWFyY2hLZXl3b3JkfX0KICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAK
LSAgICAgICAgICAgICAgICA8ZGl2IHt7YmluZC1hdHRyIGNsYXNzPSI6YW5hbHlzaXMtcGFuZSBz
aG93aW5nQW5hbHlzaXNQYW5lOjpoaWRkZW4ifX0+Ci0gICAgICAgICAgICAgICAgICAgIDx0YWJs
ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5OYW1lOiB7e2lucHV0IHR5cGU9
dGV4dCB2YWx1ZT1uZXdBbmFseXNpc1Rhc2tOYW1lfX08L2xhYmVsPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB7e2FjdGlvbiAiY3JlYXRlQW5hbHlzaXNUYXNr
In19IHt7YmluZC1hdHRyIGRpc2FibGVkPWNhbm5vdEFuYWx5emV9fT5BbmFseXplPC9idXR0b24+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+Ci0gICAg
ICAgICAgICAgICAgICAgIDwvdGFibGU+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0KKyAgICAg
ICAgICAgICAgICB7e3BhcnRpYWwgInN0YXQtcGFuZSJ9fQogICAgICAgICAgICAgPC9zZWN0aW9u
PgogICAgICAgICB7ey9lYWNofX0KICAgICA8L3NjcmlwdD4KQEAgLTM1NiwxMiArMzUxLDUzIEBA
CiAgICAgICAgIDwvc3ZnPgogICAgIDwvc2NyaXB0PgogCisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L3gtaGFuZGxlYmFycyIgZGF0YS10ZW1wbGF0ZS1uYW1lPSJzdGF0LWJ1dHRvbiI+CisgICAgICAg
IDxzdmcgY2xhc3M9InN0YXQtYnV0dG9uIGljb24tYnV0dG9uIiB2aWV3Qm94PSIxMCAwIDExMCAx
MDAiPgorICAgICAgICAgICAgPGcgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjAiIGZpbGw9
ImJsYWNrIj4KKyAgICAgICAgICAgICAgICA8cGF0aCBpZD0idXBwZXItc2lnbWEiIGQ9Ik0gNSA1
IEggOTUgViA0MCBoIC0xMCBjIC01IC0yMCAtNSAtMjAgLTI1IC0yMCBIIDM1IEwgNjAgNTAgbCAt
MjAgMCIgLz4KKyAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiN1cHBlci1zaWdtYSIg
dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMTAwKSBzY2FsZSgxLCAtMSkiIC8+CisgICAgICAgICAg
ICA8L2c+CisgICAgICAgIDwvc3ZnPgorICAgIDwvc2NyaXB0PgorCisgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L3gtaGFuZGxlYmFycyIgZGF0YS10ZW1wbGF0ZS1uYW1lPSJzdGF0LXBhbmUiPgorICAg
ICAgICA8c2VjdGlvbiB7e2JpbmQtYXR0ciBjbGFzcz0iOnBvcHVwLXBhbmUgOnN0YXQtcGFuZSBz
aG93aW5nU3RhdFBhbmU6OmhpZGRlbiJ9fT4KKyAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJz
dGF0LW9wdGlvbiI+CisgICAgICAgICAgICAgICAgPGgxPk1vdmluZyBhdmVyYWdlPC9oMT4KKyAg
ICAgICAgICAgICAgICA8bGFiZWw+VHlwZToge3t2aWV3IEVtYmVyLlNlbGVjdAorICAgICAgICAg
ICAgICAgICAgICBjb250ZW50PW1vdmluZ0F2ZXJhZ2VTdHJhdGVnaWVzCisgICAgICAgICAgICAg
ICAgICAgIG9wdGlvblZhbHVlUGF0aD0nY29udGVudCcKKyAgICAgICAgICAgICAgICAgICAgb3B0
aW9uTGFiZWxQYXRoPSdjb250ZW50LmxhYmVsJworICAgICAgICAgICAgICAgICAgICBzZWxlY3Rp
b249Y2hvc2VuTW92aW5nQXZlcmFnZVN0cmF0ZWd5fX08L2xhYmVsPgorICAgICAgICAgICAgICAg
IHt7I2VhY2ggY2hvc2VuTW92aW5nQXZlcmFnZVN0cmF0ZWd5LnBhcmFtZXRlckxpc3R9fQorICAg
ICAgICAgICAgICAgICAgICA8bGFiZWw+e3tsYWJlbH19OiB7e2lucHV0IHR5cGU9Im51bWJlciIg
dmFsdWU9dmFsdWUgbWluPW1pbiBtYXg9bWF4IHN0ZXA9c3RlcH19PC9sYWJlbD4KKyAgICAgICAg
ICAgICAgICB7ey9lYWNofX0KKyAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIHt7
I2lmIGNob3Nlbk1vdmluZ0F2ZXJhZ2VTdHJhdGVneS5leGVjdXRlfX0KKyAgICAgICAgICAgICAg
ICA8c2VjdGlvbiBjbGFzcz0ic3RhdC1vcHRpb24iPgorICAgICAgICAgICAgICAgICAgICA8aDE+
RW52ZWxvcGU8L2gxPgorICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VHlwZToge3t2aWV3IEVt
YmVyLlNlbGVjdAorICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD1lbnZlbG9waW5nU3Ry
YXRlZ2llcworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWVQYXRoPSdjb250ZW50
JworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWxQYXRoPSdjb250ZW50LmxhYmVs
JworICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uPWNob3NlbkVudmVsb3BpbmdTdHJh
dGVneX19PC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAge3sjaWYgY2hvc2VuRW52ZWxvcGlu
Z1N0cmF0ZWd5LmRlc2NyaXB0aW9ufX0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNz
PSJkZXNjcmlwdGlvbiI+e3tjaG9zZW5FbnZlbG9waW5nU3RyYXRlZ3kuZGVzY3JpcHRpb259fTwv
cD4KKyAgICAgICAgICAgICAgICAgICAge3svaWZ9fQorICAgICAgICAgICAgICAgICAgICB7eyNl
YWNoIGNob3NlbkVudmVsb3BpbmdTdHJhdGVneS5wYXJhbWV0ZXJMaXN0fX0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIDxsYWJlbD57e2xhYmVsfX06IDxpbnB1dCB0eXBlPSJudW1iZXIiIHt7Ymlu
ZC1hdHRyIHZhbHVlPXZhbHVlIG1pbj1taW4gbWF4PW1heCBzdGVwPXN0ZXB9fT48L2xhYmVsPgor
ICAgICAgICAgICAgICAgICAgICB7ey9lYWNofX0KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+
CisgICAgICAgICAgICB7ey9pZn19CisgICAgICAgIDwvc2VjdGlvbj4KKyAgICA8L3NjcmlwdD4K
KwogICAgIDxzY3JpcHQgdHlwZT0idGV4dC94LWhhbmRsZWJhcnMiIGRhdGEtdGVtcGxhdGUtbmFt
ZT0iYW5hbHlzaXMtYnV0dG9uIj4KICAgICAgICAgPHN2ZyBjbGFzcz0iYW5hbHlzaXMtYnV0dG9u
IGljb24tYnV0dG9uIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+Ci0gICAgICAgICAgICA8ZyBzdHJv
a2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjE1Ij4KKyAgICAgICAgICAgIDxnIHN0cm9rZT0iYmxh
Y2siIGZpbGw9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjE1Ij4KICAgICAgICAgICAgICAgICA8Y2ly
Y2xlIGN4PSI1MCIgY3k9IjUwIiByPSI0MCIgZmlsbD0idHJhbnNwYXJlbnQiLz4KICAgICAgICAg
ICAgICAgICA8bGluZSB4MT0iNTAiIHkxPSIyNSIgeDI9IjUwIiB5Mj0iNTUiLz4KLSAgICAgICAg
ICAgICAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjY3LjUiIHI9IjIuNSIgZmlsbD0idHJhbnNwYXJl
bnQiLz4KKyAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjY3LjUiIHI9IjEwIiBz
dHJva2U9Im5vbmUiLz4KICAgICAgICAgICAgIDwvZz4KICAgICAgICAgPC9zdmc+CiAgICAgPC9z
Y3JpcHQ+CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2ludGVyYWN0
aXZlLWNoYXJ0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjIvaW50ZXJhY3RpdmUtY2hhcnQuanMJKHJldmlzaW9uIDE3OTc2NSkKKysrIFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjIvaW50ZXJhY3RpdmUtY2hhcnQuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTE4LDYgKzE4LDggQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRDb21wb25lbnQgPSBF
bWJlci5DbwogICAgICAgICBpZiAoIWNoYXJ0RGF0YSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgdGhpcy5fbmVlZHNDb25zdHJ1Y3Rpb24gPSB0cnVlOworICAgICAgICB0aGlzLl90b3Rh
bFdpZHRoID0gdW5kZWZpbmVkOworICAgICAgICB0aGlzLl90b3RhbEhlaWdodCA9IHVuZGVmaW5l
ZDsKICAgICAgICAgdGhpcy5fY29uc3RydWN0R3JhcGhJZlBvc3NpYmxlKGNoYXJ0RGF0YSk7CiAg
ICAgfS5vYnNlcnZlcygnY2hhcnREYXRhJykub24oJ2luaXQnKSwKICAgICBkaWRJbnNlcnRFbGVt
ZW50OiBmdW5jdGlvbiAoKQpAQCAtMjUsNiArMjcsMTQgQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRD
b21wb25lbnQgPSBFbWJlci5DbwogICAgICAgICB2YXIgY2hhcnREYXRhID0gdGhpcy5nZXQoJ2No
YXJ0RGF0YScpOwogICAgICAgICBpZiAoY2hhcnREYXRhKQogICAgICAgICAgICAgdGhpcy5fY29u
c3RydWN0R3JhcGhJZlBvc3NpYmxlKGNoYXJ0RGF0YSk7CisKKyAgICAgICAgaWYgKHRoaXMuZ2V0
KCdpbnRlcmFjdGl2ZScpKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMuZ2V0KCdl
bGVtZW50Jyk7CisgICAgICAgICAgICB0aGlzLl9hdHRhY2hFdmVudExpc3RlbmVyKGVsZW1lbnQs
ICJtb3VzZW1vdmUiLCB0aGlzLl9tb3VzZU1vdmVkLmJpbmQodGhpcykpOworICAgICAgICAgICAg
dGhpcy5fYXR0YWNoRXZlbnRMaXN0ZW5lcihlbGVtZW50LCAibW91c2VsZWF2ZSIsIHRoaXMuX21v
dXNlTGVmdC5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIHRoaXMuX2F0dGFjaEV2ZW50TGlzdGVu
ZXIoZWxlbWVudCwgIm1vdXNlZG93biIsIHRoaXMuX21vdXNlRG93bi5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgICAgIHRoaXMuX2F0dGFjaEV2ZW50TGlzdGVuZXIoJChlbGVtZW50KS5wYXJlbnRzKCJb
dGFiaW5kZXhdIiksICJrZXlkb3duIiwgdGhpcy5fa2V5UHJlc3NlZC5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgfQogICAgIH0sCiAgICAgd2lsbENsZWFyUmVuZGVyOiBmdW5jdGlvbiAoKQogICAgIHsK
QEAgLTQ3LDcgKzU3LDggQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRDb21wb25lbnQgPSBFbWJlci5D
bwogICAgICAgICB0aGlzLl94ID0gZDMudGltZS5zY2FsZSgpOwogICAgICAgICB0aGlzLl95ID0g
ZDMuc2NhbGUubGluZWFyKCk7CiAKLSAgICAgICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgb2xk
IFNWRyBlbGVtZW50LgorICAgICAgICBpZiAodGhpcy5fc3ZnRWxlbWVudCkKKyAgICAgICAgICAg
IHRoaXMuX3N2Z0VsZW1lbnQucmVtb3ZlKCk7CiAgICAgICAgIHRoaXMuX3N2Z0VsZW1lbnQgPSBk
My5zZWxlY3QoZWxlbWVudCkuYXBwZW5kKCJzdmciKQogICAgICAgICAgICAgICAgIC5hdHRyKCJ3
aWR0aCIsICIxMDAlIikKICAgICAgICAgICAgICAgICAuYXR0cigiaGVpZ2h0IiwgIjEwMCUiKTsK
QEAgLTg2LDIzICs5NywxNiBAQCBBcHAuSW50ZXJhY3RpdmVDaGFydENvbXBvbmVudCA9IEVtYmVy
LkNvCiAgICAgICAgICAgICAueTAoZnVuY3Rpb24ocG9pbnQpIHsgcmV0dXJuIHBvaW50LmludGVy
dmFsID8geVNjYWxlKHBvaW50LmludGVydmFsWzBdKSA6IG51bGw7IH0pCiAgICAgICAgICAgICAu
eTEoZnVuY3Rpb24ocG9pbnQpIHsgcmV0dXJuIHBvaW50LmludGVydmFsID8geVNjYWxlKHBvaW50
LmludGVydmFsWzFdKSA6IG51bGw7IH0pOwogCi0gICAgICAgIGlmICh0aGlzLl9wYXRocykKLSAg
ICAgICAgICAgIHRoaXMuX3BhdGhzLmZvckVhY2goZnVuY3Rpb24gKHBhdGgpIHsgcGF0aC5yZW1v
dmUoKTsgfSk7CiAgICAgICAgIHRoaXMuX3BhdGhzID0gW107Ci0gICAgICAgIGlmICh0aGlzLl9h
cmVhcykKLSAgICAgICAgICAgIHRoaXMuX2FyZWFzLmZvckVhY2goZnVuY3Rpb24gKGFyZWEpIHsg
YXJlYS5yZW1vdmUoKTsgfSk7CiAgICAgICAgIHRoaXMuX2FyZWFzID0gW107Ci0gICAgICAgIGlm
ICh0aGlzLl9kb3RzKQotICAgICAgICAgICAgdGhpcy5fZG90cy5mb3JFYWNoKGZ1bmN0aW9uIChk
b3QpIHsgZG90cy5yZW1vdmUoKTsgfSk7CiAgICAgICAgIHRoaXMuX2RvdHMgPSBbXTsKLSAgICAg
ICAgaWYgKHRoaXMuX2hpZ2hsaWdodHMpCi0gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRzLnJl
bW92ZSgpOwogICAgICAgICB0aGlzLl9oaWdobGlnaHRzID0gbnVsbDsKIAogICAgICAgICB0aGlz
Ll9jdXJyZW50VGltZVNlcmllcyA9IGNoYXJ0RGF0YS5jdXJyZW50OwogICAgICAgICB0aGlzLl9j
dXJyZW50VGltZVNlcmllc0RhdGEgPSB0aGlzLl9jdXJyZW50VGltZVNlcmllcy5zZXJpZXMoKTsK
ICAgICAgICAgdGhpcy5fYmFzZWxpbmVUaW1lU2VyaWVzID0gY2hhcnREYXRhLmJhc2VsaW5lOwog
ICAgICAgICB0aGlzLl90YXJnZXRUaW1lU2VyaWVzID0gY2hhcnREYXRhLnRhcmdldDsKKyAgICAg
ICAgdGhpcy5fbW92aW5nQXZlcmFnZVRpbWVTZXJpZXMgPSBjaGFydERhdGEubW92aW5nQXZlcmFn
ZTsKIAogICAgICAgICB0aGlzLl95QXhpc1VuaXQgPSBjaGFydERhdGEudW5pdDsKIApAQCAtMTE5
LDI5ICsxMjMsMzYgQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRDb21wb25lbnQgPSBFbWJlci5Dbwog
ICAgICAgICAgICAgICAgIC5hdHRyKCJjbGFzcyIsICJ0YXJnZXQiKSk7CiAgICAgICAgIH0KIAor
ICAgICAgICB2YXIgZm9yZWdyb3VuZENsYXNzID0gdGhpcy5fbW92aW5nQXZlcmFnZVRpbWVTZXJp
ZXMgPyAnJyA6ICcgZm9yZWdyb3VuZCc7CiAgICAgICAgIHRoaXMuX2FyZWFzLnB1c2godGhpcy5f
Y2xpcHBlZENvbnRhaW5lcgogICAgICAgICAgICAgLmFwcGVuZCgicGF0aCIpCiAgICAgICAgICAg
ICAuZGF0dW0odGhpcy5fY3VycmVudFRpbWVTZXJpZXNEYXRhKQotICAgICAgICAgICAgLmF0dHIo
ImNsYXNzIiwgImFyZWEiKSk7CisgICAgICAgICAgICAuYXR0cigiY2xhc3MiLCAiYXJlYSIgKyBm
b3JlZ3JvdW5kQ2xhc3MpKTsKIAogICAgICAgICB0aGlzLl9wYXRocy5wdXNoKHRoaXMuX2NsaXBw
ZWRDb250YWluZXIKICAgICAgICAgICAgIC5hcHBlbmQoInBhdGgiKQogICAgICAgICAgICAgLmRh
dHVtKHRoaXMuX2N1cnJlbnRUaW1lU2VyaWVzRGF0YSkKLSAgICAgICAgICAgIC5hdHRyKCJjbGFz
cyIsICJjdXJyZW50IikpOworICAgICAgICAgICAgLmF0dHIoImNsYXNzIiwgImN1cnJlbnQiICsg
Zm9yZWdyb3VuZENsYXNzKSk7CiAKICAgICAgICAgdGhpcy5fZG90cy5wdXNoKHRoaXMuX2NsaXBw
ZWRDb250YWluZXIKICAgICAgICAgICAgIC5zZWxlY3RBbGwoIi5kb3QiKQogICAgICAgICAgICAg
ICAgIC5kYXRhKHRoaXMuX2N1cnJlbnRUaW1lU2VyaWVzRGF0YSkKICAgICAgICAgICAgIC5lbnRl
cigpLmFwcGVuZCgiY2lyY2xlIikKLSAgICAgICAgICAgICAgICAuYXR0cigiY2xhc3MiLCAiZG90
IikKKyAgICAgICAgICAgICAgICAuYXR0cigiY2xhc3MiLCAiZG90IiArIGZvcmVncm91bmRDbGFz
cykKICAgICAgICAgICAgICAgICAuYXR0cigiciIsIHRoaXMuZ2V0KCdjaGFydFBvaW50UmFkaXVz
JykgfHwgMSkpOwogCi0gICAgICAgIGlmICh0aGlzLmdldCgnaW50ZXJhY3RpdmUnKSkgewotICAg
ICAgICAgICAgdGhpcy5fYXR0YWNoRXZlbnRMaXN0ZW5lcihlbGVtZW50LCAibW91c2Vtb3ZlIiwg
dGhpcy5fbW91c2VNb3ZlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgICAgIHRoaXMuX2F0dGFjaEV2
ZW50TGlzdGVuZXIoZWxlbWVudCwgIm1vdXNlbGVhdmUiLCB0aGlzLl9tb3VzZUxlZnQuYmluZCh0
aGlzKSk7Ci0gICAgICAgICAgICB0aGlzLl9hdHRhY2hFdmVudExpc3RlbmVyKGVsZW1lbnQsICJt
b3VzZWRvd24iLCB0aGlzLl9tb3VzZURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICB0aGlz
Ll9hdHRhY2hFdmVudExpc3RlbmVyKCQoZWxlbWVudCkucGFyZW50cygiW3RhYmluZGV4XSIpLCAi
a2V5ZG93biIsIHRoaXMuX2tleVByZXNzZWQuYmluZCh0aGlzKSk7CisgICAgICAgIGlmICh0aGlz
Ll9tb3ZpbmdBdmVyYWdlVGltZVNlcmllcykgeworICAgICAgICAgICAgdGhpcy5fcGF0aHMucHVz
aCh0aGlzLl9jbGlwcGVkQ29udGFpbmVyCisgICAgICAgICAgICAgICAgLmFwcGVuZCgicGF0aCIp
CisgICAgICAgICAgICAgICAgLmRhdHVtKHRoaXMuX21vdmluZ0F2ZXJhZ2VUaW1lU2VyaWVzLnNl
cmllcygpKQorICAgICAgICAgICAgICAgIC5hdHRyKCJjbGFzcyIsICJtb3ZpbmdBdmVyYWdlIikp
OworICAgICAgICAgICAgdGhpcy5fYXJlYXMucHVzaCh0aGlzLl9jbGlwcGVkQ29udGFpbmVyCisg
ICAgICAgICAgICAgICAgLmFwcGVuZCgicGF0aCIpCisgICAgICAgICAgICAgICAgLmRhdHVtKHRo
aXMuX21vdmluZ0F2ZXJhZ2VUaW1lU2VyaWVzLnNlcmllcygpKQorICAgICAgICAgICAgICAgIC5h
dHRyKCJjbGFzcyIsICJlbnZlbG9wZSIpKTsKKyAgICAgICAgfQogCisgICAgICAgIGlmICh0aGlz
LmdldCgnaW50ZXJhY3RpdmUnKSkgewogICAgICAgICAgICAgdGhpcy5fY3VycmVudEl0ZW1MaW5l
ID0gdGhpcy5fY2xpcHBlZENvbnRhaW5lcgogICAgICAgICAgICAgICAgIC5hcHBlbmQoImxpbmUi
KQogICAgICAgICAgICAgICAgIC5hdHRyKCJjbGFzcyIsICJjdXJyZW50LWl0ZW0iKTsKQEAgLTMz
MSw5ICszNDIsMTAgQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRDb21wb25lbnQgPSBFbWJlci5Dbwog
ICAgICAgICB2YXIgY3VycmVudFJhbmdlID0gdGhpcy5fY3VycmVudFRpbWVTZXJpZXMubWluTWF4
Rm9yVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSk7CiAgICAgICAgIHZhciBiYXNlbGluZVJh
bmdlID0gdGhpcy5fYmFzZWxpbmVUaW1lU2VyaWVzID8gdGhpcy5fYmFzZWxpbmVUaW1lU2VyaWVz
Lm1pbk1heEZvclRpbWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpIDogW051bWJlci5NQVhfVkFM
VUUsIE51bWJlci5NSU5fVkFMVUVdOwogICAgICAgICB2YXIgdGFyZ2V0UmFuZ2UgPSB0aGlzLl90
YXJnZXRUaW1lU2VyaWVzID8gdGhpcy5fdGFyZ2V0VGltZVNlcmllcy5taW5NYXhGb3JUaW1lUmFu
Z2Uoc3RhcnRUaW1lLCBlbmRUaW1lKSA6IFtOdW1iZXIuTUFYX1ZBTFVFLCBOdW1iZXIuTUlOX1ZB
TFVFXTsKKyAgICAgICAgdmFyIG1vdmluZ0F2ZXJhZ2VSYW5nZSA9IHRoaXMuX21vdmluZ0F2ZXJh
Z2VUaW1lU2VyaWVzID8gdGhpcy5fbW92aW5nQXZlcmFnZVRpbWVTZXJpZXMubWluTWF4Rm9yVGlt
ZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkgOiBbTnVtYmVyLk1BWF9WQUxVRSwgTnVtYmVyLk1J
Tl9WQUxVRV07CiAgICAgICAgIHJldHVybiBbCi0gICAgICAgICAgICBNYXRoLm1pbihjdXJyZW50
UmFuZ2VbMF0sIGJhc2VsaW5lUmFuZ2VbMF0sIHRhcmdldFJhbmdlWzBdKSwKLSAgICAgICAgICAg
IE1hdGgubWF4KGN1cnJlbnRSYW5nZVsxXSwgYmFzZWxpbmVSYW5nZVsxXSwgdGFyZ2V0UmFuZ2Vb
MV0pLAorICAgICAgICAgICAgTWF0aC5taW4oY3VycmVudFJhbmdlWzBdLCBiYXNlbGluZVJhbmdl
WzBdLCB0YXJnZXRSYW5nZVswXSwgbW92aW5nQXZlcmFnZVJhbmdlWzBdKSwKKyAgICAgICAgICAg
IE1hdGgubWF4KGN1cnJlbnRSYW5nZVsxXSwgYmFzZWxpbmVSYW5nZVsxXSwgdGFyZ2V0UmFuZ2Vb
MV0sIG1vdmluZ0F2ZXJhZ2VSYW5nZVsxXSksCiAgICAgICAgIF07CiAgICAgfSwKICAgICBfY3Vy
cmVudFNlbGVjdGlvbjogZnVuY3Rpb24gKCkKQEAgLTM3OCw3ICszOTAsNiBAQCBBcHAuSW50ZXJh
Y3RpdmVDaGFydENvbXBvbmVudCA9IEVtYmVyLkNvCiAgICAgICAgICAgICBpZiAoIXRoaXMuX2Jy
dXNoRXh0ZW50KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgdGhpcy5z
ZXQoJ3NlbGVjdGlvbklzTG9ja2VkJywgZmFsc2UpOwogICAgICAgICAgICAgdGhpcy5fc2V0Q3Vy
cmVudFNlbGVjdGlvbih1bmRlZmluZWQpOwogCiAgICAgICAgICAgICAvLyBBdm9pZCBsb2NraW5n
IHRoZSBpbmRpY2F0b3IgaW4gX21vdXNlRG93biB3aGVuIHRoZSBicnVzaCB3YXMgY2xlYXJlZCBp
biB0aGUgc2FtZSBtb3VzZWRvd24gZXZlbnQuCkBAIC0zOTEsNyArNDAyLDYgQEAgQXBwLkludGVy
YWN0aXZlQ2hhcnRDb21wb25lbnQgPSBFbWJlci5DbwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLSAgICAgICAgdGhpcy5zZXQoJ3NlbGVjdGlvbklzTG9ja2VkJywgdHJ1ZSk7CiAg
ICAgICAgIHRoaXMuX3NldEN1cnJlbnRTZWxlY3Rpb24odGhpcy5fYnJ1c2guZXh0ZW50KCkpOwog
ICAgIH0sCiAgICAgX2tleVByZXNzZWQ6IGZ1bmN0aW9uIChldmVudCkKSW5kZXg6IFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjIvanMvc3RhdGlzdGljcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2pzL3N0YXRpc3RpY3MuanMJKHJl
dmlzaW9uIDE3OTc2NSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjIvanMv
c3RhdGlzdGljcy5qcwkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksOTkgQEAgdmFyIFN0YXRp
c3RpY3MgPSBuZXcgKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIDIuMzY4MDI2LCAyLjM2NzU2
NiwgMi4zNjcxMTUsIDIuMzY2Njc0LCAyLjM2NjI0MywgMi4zNjU4MjEsIDIuMzY1NDA3LCAyLjM2
NTAwMiwgMi4zNjQ2MDYsIDIuMzY0MjE3XQogICAgIH07CiAKKyAgICB0aGlzLk1vdmluZ0F2ZXJh
Z2VTdHJhdGVnaWVzID0gWworICAgICAgICB7CisgICAgICAgICAgICBpZDogMSwKKyAgICAgICAg
ICAgIGxhYmVsOiAnU2ltcGxlIE1vdmluZyBBdmVyYWdlJywKKyAgICAgICAgICAgIHBhcmFtZXRl
ckxpc3Q6IFsKKyAgICAgICAgICAgICAgICB7bGFiZWw6ICJCYWNrd2FyZCB3aW5kb3cgc2l6ZSIs
IHZhbHVlOiA1LCBtaW46IDIsIHN0ZXA6IDF9LAorICAgICAgICAgICAgICAgIHtsYWJlbDogIkZv
cndhcmQgd2luZG93IHNpemUiLCB2YWx1ZTogMywgbWluOiAwLCBzdGVwOiAxfQorICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgIGV4ZWN1dGU6IGZ1bmN0aW9uIChiYWNrd2FyZFdpbmRvd1NpemUs
IGZvcndhcmRXaW5kb3dTaXplLCB2YWx1ZXMpIHsKKyAgICAgICAgICAgICAgICB2YXIgYXZlcmFn
ZXMgPSBuZXcgQXJyYXkodmFsdWVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmFyIHN1bSA9
IDA7CisgICAgICAgICAgICAgICAgdmFyIGkgPSAwOworICAgICAgICAgICAgICAgIC8vIFdlIHVz
ZSBuYWl2ZSBPKG5eMikgYWxnb3JpdGhtIGZvciBzaW1wbGljeSBhcyB3ZWxsIGFzIHRvIGF2b2lk
IGFjY3VtdWxhdGluZyByb3VuZC1vZmYgZXJyb3JzLgorICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHZh
ciBzdW0gPSAwOworICAgICAgICAgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAg
ICAgICAgICAgICBmb3IgKHZhciBqID0gaSAtIGJhY2t3YXJkV2luZG93U2l6ZTsgaiA8IGkgKyBi
YWNrd2FyZFdpbmRvd1NpemU7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGog
Pj0gMCAmJiBqIDwgdmFsdWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1bSArPSB2YWx1ZXNbal07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQrKzsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBhdmVyYWdlc1tpXSA9IHN1bSAvIGNvdW50OworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICByZXR1cm4gYXZlcmFnZXM7CisgICAgICAgICAgICB9LAorCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIGlkOiAyLAorICAgICAgICAgICAgbGFi
ZWw6ICdDdW11bGF0aXZlIE1vdmluZyBBdmVyYWdlJywKKyAgICAgICAgICAgIGV4ZWN1dGU6IGZ1
bmN0aW9uICh2YWx1ZXMpIHsKKyAgICAgICAgICAgICAgICB2YXIgYXZlcmFnZXMgPSBuZXcgQXJy
YXkodmFsdWVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmFyIHN1bSA9IDA7CisgICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgICAgICAgICAgICAgc3VtICs9IHZhbHVlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgYXZl
cmFnZXNbaV0gPSBzdW0gLyAoaSArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICByZXR1cm4gYXZlcmFnZXM7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlkOiAzLAorICAgICAgICAgICAgbGFiZWw6ICdFeHBvbmVudGlhbCBN
b3ZpbmcgQXZlcmFnZScsCisgICAgICAgICAgICBwYXJhbWV0ZXJMaXN0OiBbe2xhYmVsOiAiU21v
b3RoaW5nIGZhY3RvciIsIHZhbHVlOiAwLjEsIG1pbjogMC4wMDEsIG1heDogMC45fV0sCisgICAg
ICAgICAgICBleGVjdXRlOiBmdW5jdGlvbiAoc21vb3RoaW5nRmFjdG9yLCB2YWx1ZXMpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIXZhbHVlcy5sZW5ndGggfHwgdHlwZW9mKHNtb290aGluZ0ZhY3Rv
cikgIT09ICJudW1iZXIiKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAg
ICAgICAgICAgICAgIHZhciBhdmVyYWdlcyA9IG5ldyBBcnJheSh2YWx1ZXMubGVuZ3RoKTsKKyAg
ICAgICAgICAgICAgICB2YXIgbW92aW5nQXZlcmFnZSA9IDA7CisgICAgICAgICAgICAgICAgYXZl
cmFnZXNbMF0gPSB2YWx1ZXNbMF07CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkg
PCB2YWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgICAgIGF2ZXJhZ2VzW2ldID0g
c21vb3RoaW5nRmFjdG9yICogdmFsdWVzW2ldICsgKDEgLSBzbW9vdGhpbmdGYWN0b3IpICogYXZl
cmFnZXNbaSAtIDFdOworICAgICAgICAgICAgICAgIHJldHVybiBhdmVyYWdlczsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICBdOworCisgICAgdGhpcy5FbnZlbG9waW5nU3RyYXRlZ2ll
cyA9IFsKKyAgICAgICAgeworICAgICAgICAgICAgaWQ6IDEwMCwKKyAgICAgICAgICAgIGxhYmVs
OiAnQXZlcmFnZSBEaWZmZXJlbmNlJywKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGF2
ZXJhZ2UgZGlmZmVyZW5jZSBiZXR3ZWVuIGNvbnNlY3V0aXZlIHZhbHVlcy4nLAorICAgICAgICAg
ICAgZXhlY3V0ZTogZnVuY3Rpb24gKHZhbHVlcywgbW92aW5nQXZlcmFnZXMpIHsKKyAgICAgICAg
ICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA8IDEpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBOYU47CisKKyAgICAgICAgICAgICAgICB2YXIgZGlmZiA9IDA7CisgICAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDE7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAg
ICAgIGRpZmYgKz0gTWF0aC5hYnModmFsdWVzW2ldIC0gdmFsdWVzW2kgLSAxXSk7CisKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZGlmZiAvIHZhbHVlcy5sZW5ndGg7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIGlkOiAxMDEsCisgICAgICAgICAgICBs
YWJlbDogJ01vdmluZyBBdmVyYWdlIFN0YW5kYXJkIERldmlhdGlvbicsCisgICAgICAgICAgICBk
ZXNjcmlwdGlvbjogJ1RoZSBzcXVhcmUgcm9vdCBvZiB0aGUgYXZlcmFnZSBkZXZpYXRpb24gZnJv
bSB0aGUgbW92aW5nIGF2ZXJhZ2Ugd2l0aCBCZXNzZWxcJ3MgY29ycmVjdGlvbi4nLAorICAgICAg
ICAgICAgZXhlY3V0ZTogZnVuY3Rpb24gKHZhbHVlcywgbW92aW5nQXZlcmFnZXMpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA8IDEpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBOYU47CisKKyAgICAgICAgICAgICAgICB2YXIgZGlmZlNxdWFyZVN1bSA9IDA7CisgICAg
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgICAgICAgICAgICAgdmFyIGRpZmYgPSAodmFsdWVzW2ldIC0gbW92aW5nQXZlcmFnZXNb
aV0pOworICAgICAgICAgICAgICAgICAgICBkaWZmU3F1YXJlU3VtICs9IGRpZmYgKiBkaWZmOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoZGlm
ZlNxdWFyZVN1bSAvICh2YWx1ZXMubGVuZ3RoIC0gMSkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9LAorICAgIF07CiB9KSgpOwogCiBpZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykg
ewo=
</data>
<flag name="review"
          id="271275"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>