<?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>137626</bug_id>
          
          <creation_ts>2014-10-10 15:17:41 -0700</creation_ts>
          <short_desc>Dashboard metrics page should have EWS statistics</short_desc>
          <delta_ts>2014-10-10 16:30:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>bshafiei</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041042</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-10 15:17:41 -0700</bug_when>
    <thetext>Otherwise, how do we know it when we improve things.

The UI is much more challenging than one for regular bots though, for multiple reasons:
- EWS logic is a mystery to most, so we need to explain what any number means.
- EWS is interactive, so patch processing result depends not just on EWS and the patch, but also on what happened with the bug and with trunk in the meanwhile. The patch could be obsoleted, or it could cease to apply because something else was landed while it was being processed.
- There is a lot less publicly visible history, so we need to present more troubleshooting information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041046</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-10 15:25:38 -0700</bug_when>
    <thetext>Also because we can&apos;t hide any platforms - everyone looks at all platforms for EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041050</commentid>
    <comment_count>2</comment_count>
      <attachid>239655</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-10 15:32:21 -0700</bug_when>
    <thetext>Created attachment 239655
proposed patch

So the result is a sizable chunk of text for each queue, e.g.:

mac-wk2

96% of patches had final results at first try. Time to result:
- median: 47 minutes;
- average: 43 minutes.
This includes 8% that did not apply to trunk.

2% of patches ceased to be eligible for processing before the first try finished.

2% of patches had to be retried, including 2% that kept being retried until the patch became ineligible for processing.

Median wait time before processing started: less than a minute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041051</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-10 15:33:56 -0700</bug_when>
    <thetext>Attachment 239655 did not pass style-queue:


ERROR: Tools/QueueStatusServer/handlers/processingtimesjson.py:61:  whitespace before &apos;}&apos;  [pep8/E202] [5]
ERROR: Tools/QueueStatusServer/handlers/processingtimesjson.py:66:  [ProcessingTimesJSON.get] Instance of &apos;ProcessingTimesJSON&apos; has no &apos;response&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/handlers/processingtimesjson.py:67:  [ProcessingTimesJSON.get] Instance of &apos;ProcessingTimesJSON&apos; has no &apos;response&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/handlers/processingtimesjson.py:72:  [ProcessingTimesJSON.get] Instance of &apos;ProcessingTimesJSON&apos; has no &apos;response&apos; member  [pylint/E1101] [5]
Total errors found: 4 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041063</commentid>
    <comment_count>4</comment_count>
      <attachid>239655</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-10-10 16:16:26 -0700</bug_when>
    <thetext>Comment on attachment 239655
proposed patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:-34
&gt; +        &quot;gtk-wk2-ews&quot;: {platform: Dashboard.Platform.LinuxGTK, shortName: &quot;gtk-wk2&quot;, title: &quot;WebKit2\xa0Release\xa0Build\xa0EWS&quot;},
&gt;          &quot;mac-ews&quot;: {platform: Dashboard.Platform.MacOSXMountainLion, shortName: &quot;mac&quot;, title: &quot;WebKit1\xa0Release\xa0Tests\xa0EWS&quot;},
&gt;          &quot;mac-wk2-ews&quot;: {platform: Dashboard.Platform.MacOSXMountainLion, shortName: &quot;mac-wk2&quot;, title: &quot;WebKit2\xa0Release\xa0Tests\xa0EWS&quot;},
&gt;          &quot;win-ews&quot;: {platform: Dashboard.Platform.Windows7, shortName: &quot;win&quot;, title: &quot;WebKit1\xa0Release\xa0Build\xa0EWS&quot;},
&gt; -        &quot;gtk-wk2-ews&quot;: {platform: Dashboard.Platform.LinuxGTK, shortName: &quot;gtk-wk2&quot;, title: &quot;WebKit2\xa0Release\xa0Build\xa0EWS&quot;},

Why are you moving GTK+ here?

&gt; Tools/QueueStatusServer/handlers/processingtimesjson.py:55
&gt; +            if not entry.attachment_id in result:
&gt; +                result[entry.attachment_id] = {}

result.setdefault(entry.attachment_id, {})

&gt; Tools/QueueStatusServer/handlers/processingtimesjson.py:66
&gt; +        self.response.headers[&quot;Access-Control-Allow-Origin&quot;] = &quot;*&quot;

Should we use *.webkit.org &amp; *.apple.com instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041065</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-10 16:28:52 -0700</bug_when>
    <thetext>&gt; Why are you moving GTK+ here?

Mentioned that in ChangeLog, it&apos;s to match the order of bubbles in Bugzilla.

&gt; &gt; Tools/QueueStatusServer/handlers/processingtimesjson.py:66
&gt; &gt; +        self.response.headers[&quot;Access-Control-Allow-Origin&quot;] = &quot;*&quot;
&gt; 
&gt; Should we use *.webkit.org &amp; *.apple.com instead?

We could, although not as easily. I don&apos;t think that it matters though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041066</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-10 16:30:02 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r174622&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239655</attachid>
            <date>2014-10-10 15:32:21 -0700</date>
            <delta_ts>2014-10-10 16:16:25 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>ProcessingTimes.txt</filename>
            <type>text/plain</type>
            <size>31683</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3NDYxMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE0LTEwLTEwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIERhc2hib2FyZCBtZXRyaWNzIHBhZ2Ugc2hvdWxkIGhhdmUgRVdTIHN0YXRp
c3RpY3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NzYyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvQnViYmxlUXVldWUuanM6CisgICAgICAgIChCdWJibGVRdWV1ZSk6IFB1
dCBzaG9ydE5hbWUgaW4gdGhlIG9iamVjdCwgc28gdGhhdCBpdCdzIGFjdHVhbGx5IHVzZWZ1bC4K
KworICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlU2VydmVyLmpzOgorICAgICAg
ICAoQnViYmxlUXVldWVTZXJ2ZXIpOiBSZS1vcmRlcmVkIHF1ZXVlcyB0byBtYXRjaCBidWJibGUg
b3JkZXIuCisgICAgICAgIChCdWJibGVRdWV1ZVNlcnZlci5wcm90b3R5cGUuanNvblByb2Nlc3Np
bmdUaW1lc1VSTCk6IEFkZGVkIFVSTCBmb3IgdGhlIG5ldyBoYW5kbGVyLgorICAgICAgICAoQnVi
YmxlUXVldWVTZXJ2ZXIucHJvdG90eXBlLmxvYWRQcm9jZXNzaW5nVGltZXMpOiBMb2FkIHRoZSBk
YXRhIGZyb20gd2Via2l0LXF1ZXVlcy4KKworICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01ldHJp
Y3NBbmFseXplci5qczoKKyAgICAgICAgQWRkZWQgYW5hbHlzaXMgZm9yIGJ1YmJsZSBxdWV1ZXMu
CisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQnViYmxlVmlldy5qczogQWRkZWQu
CisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzTWFpbi5qczoKKyAgICAgICAgKGJ1
aWxkQnViYmxlUXVldWVzVGFibGUpOiBCdWlsZCB0aGUgVUkuCisKKyAgICAgICAgKiBCdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
bWV0cmljcy5odG1sOgorICAgICAgICBBZGRlZCBKUyBzb3VyY2VzIHRvIGxvYWQuCisKKyAgICAg
ICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9hcHAueWFtbDogVG8gdXBkYXRlIGFwcCB2ZXJzaW9uLgor
CisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvcHJvY2Vzc2luZ3RpbWVzanNv
bi5weTogQWRkZWQuCisKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9tYWluLnB5OiBBZGRl
ZCBhIGhhbmRsZXIgZm9yIHByb2Nlc3NpbmctdGltZXMtanNvbi4KKwogMjAxNC0xMC0xMCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBD
b21taXQgcXVldWUgZG9lc24ndCBwcm9jZXNzIHJvbGxvdXRzCkluZGV4OiBUb29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
bWV0cmljcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9tZXRyaWNzLmh0bWwJKHJl
dmlzaW9uIDE3NDM4OSkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9tZXRyaWNzLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDggKzM2LDEwIEBAIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAg
ICA8c2NyaXB0IHNyYz0iU2NyaXB0cy9CYXNlT2JqZWN0LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iU2NyaXB0cy9EYXNoYm9hcmQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJTY3JpcHRzL0J1aWxkYm90LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iU2NyaXB0
cy9CdWJibGVRdWV1ZVNlcnZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNjcmlw
dHMvV2ViS2l0QnVpbGRib3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTY3JpcHRz
L0J1aWxkYm90UXVldWUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJTY3JpcHRzL0J1
YmJsZVF1ZXVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU2NyaXB0cy9CdWlsZGJv
dEl0ZXJhdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNjcmlwdHMvQnVpbGRi
b3RUZXN0UmVzdWx0cy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNjcmlwdHMvU2V0
dGluZ3MuanMiPjwvc2NyaXB0PgpAQCAtNDUsNiArNDcsNyBAQCBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCBzcmM9IlNjcmlwdHMvSW5pdGlhbGl6YXRpb24uanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTY3JpcHRzL01ldHJpY3NBbmFseXplci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNjcmlwdHMvTWV0cmljc1ZpZXcuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJTY3JpcHRzL01ldHJpY3NCdWJibGVWaWV3LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRXh0ZXJuYWwvanF1ZXJ5LTEuMTEuMS5taW4uanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJFeHRlcm5hbC9tb21lbnQubWluLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iRXh0ZXJuYWwvanF1ZXJ5LmRhdGVyYW5nZXBpY2tlci5qcyI+
PC9zY3JpcHQ+CkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWJibGVRdWV1ZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWJibGVRdWV1ZS5qcwkocmV2aXNpb24g
MTc0Mzg5KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnViYmxlUXVldWUuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAgQnViYmxlUXVldWUgPSBmdW5jdGlvbihxdWV1ZVNlcnZl
ciwgaWQsIAogCiAgICAgdGhpcy5xdWV1ZVNlcnZlciA9IHF1ZXVlU2VydmVyOwogICAgIHRoaXMu
aWQgPSBpZDsKKyAgICB0aGlzLnNob3J0TmFtZSA9IGluZm8uc2hvcnROYW1lIHx8IGlkOwogICAg
IHRoaXMudGl0bGUgPSBpbmZvLnRpdGxlIHx8ICJceGEwIjsKIAogICAgIHRoaXMucGxhdGZvcm0g
PSBpbmZvLnBsYXRmb3JtID8gaW5mby5wbGF0Zm9ybS5uYW1lIDogInVua25vd24iOwpJbmRleDog
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnViYmxlUXVldWVTZXJ2ZXIuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnViYmxlUXVldWVTZXJ2ZXIuanMJKHJldmlzaW9uIDE3NDM4
OSkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlU2VydmVyLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCwxMCArMjgsMTAgQEAgQnViYmxlUXVldWVTZXJ2ZXIgPSBmdW5jdGlvbigp
CiAgICAgY29uc3QgcXVldWVJbmZvID0gewogICAgICAgICAiY29tbWl0LXF1ZXVlIjoge3BsYXRm
b3JtOiBEYXNoYm9hcmQuUGxhdGZvcm0uTWFjT1NYTW91bnRhaW5MaW9uLCBzaG9ydE5hbWU6ICJj
b21taXQiLCB0aXRsZTogIkNvbW1pdCBRdWV1ZSJ9LAogICAgICAgICAic3R5bGUtcXVldWUiOiB7
c2hvcnROYW1lOiAic3R5bGUiLCB0aXRsZTogIlN0eWxlIENoZWNrZXIgUXVldWUifSwKKyAgICAg
ICAgImd0ay13azItZXdzIjoge3BsYXRmb3JtOiBEYXNoYm9hcmQuUGxhdGZvcm0uTGludXhHVEss
IHNob3J0TmFtZTogImd0ay13azIiLCB0aXRsZTogIldlYktpdDJceGEwUmVsZWFzZVx4YTBCdWls
ZFx4YTBFV1MifSwKICAgICAgICAgIm1hYy1ld3MiOiB7cGxhdGZvcm06IERhc2hib2FyZC5QbGF0
Zm9ybS5NYWNPU1hNb3VudGFpbkxpb24sIHNob3J0TmFtZTogIm1hYyIsIHRpdGxlOiAiV2ViS2l0
MVx4YTBSZWxlYXNlXHhhMFRlc3RzXHhhMEVXUyJ9LAogICAgICAgICAibWFjLXdrMi1ld3MiOiB7
cGxhdGZvcm06IERhc2hib2FyZC5QbGF0Zm9ybS5NYWNPU1hNb3VudGFpbkxpb24sIHNob3J0TmFt
ZTogIm1hYy13azIiLCB0aXRsZTogIldlYktpdDJceGEwUmVsZWFzZVx4YTBUZXN0c1x4YTBFV1Mi
fSwKICAgICAgICAgIndpbi1ld3MiOiB7cGxhdGZvcm06IERhc2hib2FyZC5QbGF0Zm9ybS5XaW5k
b3dzNywgc2hvcnROYW1lOiAid2luIiwgdGl0bGU6ICJXZWJLaXQxXHhhMFJlbGVhc2VceGEwQnVp
bGRceGEwRVdTIn0sCi0gICAgICAgICJndGstd2syLWV3cyI6IHtwbGF0Zm9ybTogRGFzaGJvYXJk
LlBsYXRmb3JtLkxpbnV4R1RLLCBzaG9ydE5hbWU6ICJndGstd2syIiwgdGl0bGU6ICJXZWJLaXQy
XHhhMFJlbGVhc2VceGEwQnVpbGRceGEwRVdTIn0sCiAgICAgICAgICJlZmwtd2syLWV3cyI6IHtw
bGF0Zm9ybTogRGFzaGJvYXJkLlBsYXRmb3JtLkxpbnV4RUZMLCBzaG9ydE5hbWU6ICJlZmwtd2sy
IiwgdGl0bGU6ICJXZWJLaXQyXHhhMFJlbGVhc2VceGEwQnVpbGRceGEwRVdTIn0KICAgICB9Owog
CkBAIC02MCw4ICs2MCwzOSBAQCBCdWJibGVRdWV1ZVNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHJldHVybiB0aGlzLmJhc2VVUkwgKyAicXVldWUtc3RhdHVzLWpzb24vIiArIGVuY29kZVVS
SUNvbXBvbmVudChxdWV1ZUlEKTsKICAgICB9LAogCisgICAganNvblByb2Nlc3NpbmdUaW1lc1VS
TDogZnVuY3Rpb24oZnJvbVRpbWUsIHRvVGltZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmJhc2VVUkwgKyAicHJvY2Vzc2luZy10aW1lcy1qc29uLyIgKyBbZnJvbVRpbWUuZ2V0VVRDRnVs
bFllYXIoKSwgZnJvbVRpbWUuZ2V0VVRDTW9udGgoKSArIDEsIGZyb21UaW1lLmdldFVUQ0RhdGUo
KSwgZnJvbVRpbWUuZ2V0VVRDSG91cnMoKSwgZnJvbVRpbWUuZ2V0VVRDTWludXRlcygpLCBmcm9t
VGltZS5nZXRVVENTZWNvbmRzKCldLmpvaW4oIi0iKQorICAgICAgICAgICAgKyAiLSIgKyBbdG9U
aW1lLmdldFVUQ0Z1bGxZZWFyKCksIHRvVGltZS5nZXRVVENNb250aCgpICsgMSwgdG9UaW1lLmdl
dFVUQ0RhdGUoKSwgdG9UaW1lLmdldFVUQ0hvdXJzKCksIHRvVGltZS5nZXRVVENNaW51dGVzKCks
IHRvVGltZS5nZXRVVENTZWNvbmRzKCldLmpvaW4oIi0iKTsKKyAgICB9LAorCiAgICAgcXVldWVT
dGF0dXNVUkw6IGZ1bmN0aW9uKHF1ZXVlSUQpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5i
YXNlVVJMICsgInF1ZXVlLXN0YXR1cy8iICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXVlSUQpOwog
ICAgIH0sCisKKyAgICAvLyBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYWxsIHBhdGNoZXMg
dGhhdCB3ZXJlIHN1Ym1pdHRlZCBpbiB0aGUgdGltZSByYW5nZToKKyAgICAvLyB7CisgICAgLy8g
ICAgIHBhdGNoX2lkXzE6IHsKKyAgICAvLyAgICAgICAgIHF1ZXVlX25hbWVfMTogeworICAgIC8v
ICAgICAgICAgICAgIGRhdGU6IDxkYXRlL3RpbWUgd2hlbiB0aGUgcGF0Y2ggd2FzIHN1Ym1pdHRl
ZCB0byB0aGUgcXVldWU+LAorICAgIC8vICAgICAgICAgICAgIHJldHJ5X2NvdW50OiA8bnVtYmVy
IG9mIHRpbWVzIGEgYm90IGhhZCB0byBiYWlsIG91dCBhbmQgZHJvcCB0aGUgbG9jaywgZm9yIGFu
b3RoZXIgYm90IHRvIHN0YXJ0IGZyb20gc2NyYXRjaD4sCisgICAgLy8gICAgICAgICAgICAgd2Fp
dF9kdXJhdGlvbjogPGhvdyBsb25nIGl0IHRvb2sgYmVmb3JlIGEgYm90IGZpcnN0IGxvY2tlZCB0
aGUgcGF0Y2ggZm9yIHByb2Nlc3Npbmc+LAorICAgIC8vICAgICAgICAgICAgIHByb2Nlc3NfZHVy
YXRpb246IDxob3cgbG9uZyBpdCB0b29rIGZyb20gZW5kIG9mIHdhaXQgdG8gZmluaXNoLCBvbmx5
IHZhbGlkIGZvciBmaW5pc2hlZCBwYXRjaGVzLiBJbmNsdWRlcyB3YWl0IHRpbWUgYmV0d2VlbiBy
ZXRyaWVzPgorICAgIC8vICAgICAgICAgICAgIGZpbmFsX21lc3NhZ2U6IDwocGFzc3xmYWlsfG5v
dCBwcm9jZXNzZWR8Y291bGQgbm90IGFwcGx5fGludGVybmFsIGVycm9yfGluIHByb2dyZXNzKT4K
KyAgICAvLyAgICAgICAgIH0sCisgICAgLy8gICAgICAgICAuLi4KKyAgICAvLyAgICAgfSwKKyAg
ICAvLyAgICAgLi4uCisgICAgLy8gfQorICAgIGxvYWRQcm9jZXNzaW5nVGltZXM6IGZ1bmN0aW9u
KGZyb21UaW1lLCB0b1RpbWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgSlNPTi5sb2FkKHRo
aXMuanNvblByb2Nlc3NpbmdUaW1lc1VSTChmcm9tVGltZSwgdG9UaW1lKSwgZnVuY3Rpb24oZGF0
YSkgeworICAgICAgICAgICAgZm9yIChwYXRjaCBpbiBkYXRhKSB7CisgICAgICAgICAgICAgICAg
Zm9yIChxdWV1ZSBpbiBwYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgcXVldWUuZGF0ZSA9IG5l
dyBEYXRlKHF1ZXVlLmRhdGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJhY2so
ZGF0YSwgZnJvbVRpbWUsIHRvVGltZSk7CisgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwK
IH07CkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQW5hbHl6ZXIuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc0FuYWx5emVyLmpzCShyZXZpc2lv
biAxNzQzODkpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQW5hbHl6ZXIuanMJKHdv
cmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDggQEAgQW5hbHl6ZXIucHJvdG90eXBlID0gewogICAg
ICAgICB9LCB0aGlzKTsKIAogICAgICAgICB3ZWJraXRUcmFjLmxvYWQodGhpcy5fcmFuZ2VTdGFy
dFRpbWUsIHRoaXMuX3JhbmdlRW5kVGltZSk7CisKKyAgICAgICAgYnViYmxlUXVldWVTZXJ2ZXIu
bG9hZFByb2Nlc3NpbmdUaW1lcyh0aGlzLl9yYW5nZVN0YXJ0VGltZSwgdGhpcy5fcmFuZ2VFbmRU
aW1lLCB0aGlzLl9sb2FkZWRCdWJibGVzVGltaW5nLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAg
ICBfdHJpZ2dlcmluZ1F1ZXVlOiBmdW5jdGlvbihxdWV1ZSkKQEAgLTM4MCw1ICszODIsMTE3IEBA
IEFuYWx5emVyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAodGhpcy5faGFzVHJhY0RhdGEp
CiAgICAgICAgICAgICB0aGlzLl9hbmFseXplKCk7Ci0gICAgfQorICAgIH0sCisKKyAgICBfYW5h
bHl6ZUJ1YmJsZVBlcmZvcm1hbmNlOiBmdW5jdGlvbihxdWV1ZUlELCBwYXRjaGVzKQorICAgIHsK
KyAgICAgICAgdmFyIHBhdGNoZXNUaGF0Q2F1c2VkSW50ZXJuYWxFcnJvciA9IFtdOworICAgICAg
ICBmb3IgKHBhdGNoSUQgaW4gcGF0Y2hlcykgeworICAgICAgICAgICAgaWYgKHBhdGNoZXNbcGF0
Y2hJRF0ucmVzb2x1dGlvbiA9PT0gImludGVybmFsIGVycm9yIikKKyAgICAgICAgICAgICAgICBw
YXRjaGVzVGhhdENhdXNlZEludGVybmFsRXJyb3IucHVzaChwYXRjaElEKTsKKyAgICAgICAgfQor
CisgICAgICAgIHZhciB3YWl0VGltZXMgPSBbXTsKKyAgICAgICAgdmFyIHRvdGFsVGltZXMgPSBb
XTsKKyAgICAgICAgdmFyIHRvdGFsVGltZXNGb3JQYXRjaGVzVGhhdFdlcmVOb3RSZXRyaWVkID0g
W107CisgICAgICAgIHZhciB0b3RhbFRpbWVzRm9yUGF0Y2hlc1RoYXRTcGlubmVkQW5kUGFzc2Vk
T3JGYWlsZWQgPSBbXTsKKyAgICAgICAgdmFyIHBhdGNoZXNUaGF0RGlkTm90Q29tcGxldGUgPSBb
XTsKKyAgICAgICAgdmFyIHJldHJ5Q291bnRzID0gW107CisgICAgICAgIHZhciBwYXRjaGVzVGhh
dFNwaW5uZWRBbmREaWROb3RDb21wbGV0ZSA9IFtdOworICAgICAgICB2YXIgcGF0Y2hlc1RoYXRT
cGlubmVkQW5kQ2Vhc2VkVG9BcHBseSA9IFtdOworICAgICAgICB2YXIgcGF0Y2hlc1RoYXRTcGlu
bmVkQW5kUGFzc2VkT3JGYWlsZWQgPSBbXTsKKyAgICAgICAgdmFyIHBhdGNoZXNEaWROb3RBcHBs
eSA9IFtdOworICAgICAgICBmb3IgKHBhdGNoSUQgaW4gcGF0Y2hlcykgeworICAgICAgICAgICAg
dmFyIHBhdGNoID0gcGF0Y2hlc1twYXRjaElEXTsKKworICAgICAgICAgICAgLy8gV2FpdCB0aW1l
IGlzIGVxdWFsbHkgaW50ZXJlc3RpbmcgZm9yIGFsbCBwYXRjaGVzLgorICAgICAgICAgICAgd2Fp
dFRpbWVzLnB1c2gocGF0Y2gud2FpdF9kdXJhdGlvbik7CisKKyAgICAgICAgICAgIGlmIChwYXRj
aC5yZXNvbHV0aW9uID09PSAibm90IHByb2Nlc3NlZCIpCisgICAgICAgICAgICAgICAgcGF0Y2hl
c1RoYXREaWROb3RDb21wbGV0ZS5wdXNoKHBhdGNoSUQpOworCisgICAgICAgICAgICBpZiAocGF0
Y2gucmV0cnlfY291bnQgPT09IDApCisgICAgICAgICAgICAgICAgdG90YWxUaW1lc0ZvclBhdGNo
ZXNUaGF0V2VyZU5vdFJldHJpZWQucHVzaChwYXRjaC53YWl0X2R1cmF0aW9uICsgcGF0Y2gucHJv
Y2Vzc19kdXJhdGlvbik7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXRy
eUNvdW50cy5wdXNoKHBhdGNoLnJldHJ5X2NvdW50KTsKKyAgICAgICAgICAgICAgICBpZiAocGF0
Y2gucmVzb2x1dGlvbiA9PT0gIm5vdCBwcm9jZXNzZWQiKQorICAgICAgICAgICAgICAgICAgICBw
YXRjaGVzVGhhdFNwaW5uZWRBbmREaWROb3RDb21wbGV0ZS5wdXNoKHBhdGNoSUQpOworICAgICAg
ICAgICAgICAgIGVsc2UgaWYgKHBhdGNoLnJlc29sdXRpb24gPT09ICJjb3VsZCBub3QgYXBwbHki
KQorICAgICAgICAgICAgICAgICAgICBwYXRjaGVzVGhhdFNwaW5uZWRBbmRDZWFzZWRUb0FwcGx5
LnB1c2gocGF0Y2hJRCk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAocGF0Y2gucmVzb2x1dGlv
biA9PT0gInBhc3MiIHx8IHBhdGNoLnJlc29sdXRpb24gPT09ICJmYWlsIikgeworICAgICAgICAg
ICAgICAgICAgICBwYXRjaGVzVGhhdFNwaW5uZWRBbmRQYXNzZWRPckZhaWxlZC5wdXNoKHBhdGNo
SUQpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFRpbWVzRm9yUGF0Y2hlc1RoYXRTcGlubmVk
QW5kUGFzc2VkT3JGYWlsZWQucHVzaChwYXRjaC53YWl0X2R1cmF0aW9uICsgcGF0Y2gucHJvY2Vz
c19kdXJhdGlvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAvLyBBbmFseXplIHByb2Nlc3NpbmcgcGVyZm9ybWFuY2UgZm9yIHBhdGNoZXMgdGhhdCB3
ZXJlIGRlZmluaXRlbHkgcHJvY2Vzc2VkLgorICAgICAgICAgICAgLy8gV2UgY2FuJ3QgdGFyZ2V0
IGltcHJvdmluZyBwZXJmb3JtYW5jZSBvZiBvdGhlcnMgKHN1Y2ggYXMgcGF0Y2hlcyB0aGF0IHdl
cmUgb2Jzb2xldGVkIHdoaWxlIGluIHRoZSBxdWV1ZSkuCisgICAgICAgICAgICAvLyBQYXRjaGVz
IHRoYXQgZG9uJ3QgYXBwbHkgdG8gdHJ1bmsgaGF2ZSB0byBiZSBleGNsdWRlZCwgYmVjYXVzZSBv
dGhlcndpc2Ugd2UKKyAgICAgICAgICAgIC8vIGdldCB0aW1lcyBmb3IgcGF0Y2hlcyB0aGF0IHNw
aW5uZWQgdW50aWwgdGhleSBjZWFzZWQgdG8gYXBwbHkuCisgICAgICAgICAgICBpZiAocGF0Y2gu
cmVzb2x1dGlvbiA9PT0gInBhc3MiIHx8IHBhdGNoLnJlc29sdXRpb24gPT09ICJmYWlsIikKKyAg
ICAgICAgICAgICAgICB0b3RhbFRpbWVzLnB1c2gocGF0Y2gud2FpdF9kdXJhdGlvbiArIHBhdGNo
LnByb2Nlc3NfZHVyYXRpb24pOworCisgICAgICAgICAgICBpZiAocGF0Y2gucmVzb2x1dGlvbiA9
PT0gImNvdWxkIG5vdCBhcHBseSIpCisgICAgICAgICAgICAgICAgcGF0Y2hlc0RpZE5vdEFwcGx5
LnB1c2gocGF0Y2hJRCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgcmVzdWx0ID0geworICAg
ICAgICAgICAgcXVldWVJRDogcXVldWVJRCwKKyAgICAgICAgICAgIHRvdGFsUGF0Y2hlczogT2Jq
ZWN0LmtleXMocGF0Y2hlcykubGVuZ3RoLAorICAgICAgICAgICAgcGF0Y2hlc1RoYXREaWROb3RD
b21wbGV0ZUNvdW50OiBwYXRjaGVzVGhhdERpZE5vdENvbXBsZXRlLmxlbmd0aCwKKyAgICAgICAg
ICAgIHBhdGNoZXNXaXRoUmV0cmllc0NvdW50OiByZXRyeUNvdW50cy5sZW5ndGgsCisgICAgICAg
ICAgICBwYXRjaGVzVGhhdERpZE5vdEFwcGx5Q291bnQ6IHBhdGNoZXNEaWROb3RBcHBseS5sZW5n
dGgsCisgICAgICAgICAgICBwYXRjaGVzVGhhdFNwaW5uZWRBbmREaWROb3RDb21wbGV0ZUNvdW50
OiBwYXRjaGVzVGhhdFNwaW5uZWRBbmREaWROb3RDb21wbGV0ZS5sZW5ndGgsCisgICAgICAgICAg
ICBwYXRjaGVzVGhhdFNwaW5uZWRBbmRDZWFzZWRUb0FwcGx5Q291bnQ6IHBhdGNoZXNUaGF0U3Bp
bm5lZEFuZENlYXNlZFRvQXBwbHkubGVuZ3RoLAorICAgICAgICAgICAgcGF0Y2hlc1RoYXRTcGlu
bmVkQW5kUGFzc2VkT3JGYWlsZWRDb3VudDogcGF0Y2hlc1RoYXRTcGlubmVkQW5kUGFzc2VkT3JG
YWlsZWQubGVuZ3RoLAorICAgICAgICAgICAgbWVkaWFuVG90YWxUaW1lRm9yUGF0Y2hlc1RoYXRT
cGlubmVkQW5kUGFzc2VkT3JGYWlsZWRJblNlY29uZHM6IHRvdGFsVGltZXNGb3JQYXRjaGVzVGhh
dFNwaW5uZWRBbmRQYXNzZWRPckZhaWxlZC5tZWRpYW4oKSwKKyAgICAgICAgICAgIGF2ZXJhZ2VU
b3RhbFRpbWVGb3JQYXRjaGVzVGhhdFNwaW5uZWRBbmRQYXNzZWRPckZhaWxlZEluU2Vjb25kczog
dG90YWxUaW1lc0ZvclBhdGNoZXNUaGF0U3Bpbm5lZEFuZFBhc3NlZE9yRmFpbGVkLmF2ZXJhZ2Uo
KSwKKyAgICAgICAgICAgIG1lZGlhbldhaXRUaW1lSW5TZWNvbmRzOiB3YWl0VGltZXMubWVkaWFu
KCksCisgICAgICAgICAgICBhdmVyYWdlV2FpdFRpbWVJblNlY29uZHM6IHdhaXRUaW1lcy5hdmVy
YWdlKCksCisgICAgICAgICAgICBwYXRjaGVzVGhhdENhdXNlZEludGVybmFsRXJyb3I6IHBhdGNo
ZXNUaGF0Q2F1c2VkSW50ZXJuYWxFcnJvciwKKyAgICAgICAgfTsKKworICAgICAgICBpZiAodG90
YWxUaW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJlc3VsdC5tZWRpYW5Ub3RhbFRpbWVJblNl
Y29uZHMgPSB0b3RhbFRpbWVzLm1lZGlhbigpOworICAgICAgICAgICAgcmVzdWx0LmF2ZXJhZ2VU
b3RhbFRpbWVJblNlY29uZHMgPSB0b3RhbFRpbWVzLmF2ZXJhZ2UoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh0b3RhbFRpbWVzRm9yUGF0Y2hlc1RoYXRXZXJlTm90UmV0cmllZC5sZW5ndGgp
IHsKKyAgICAgICAgICAgIHJlc3VsdC5tZWRpYW5Ub3RhbFRpbWVGb3JQYXRjaGVzVGhhdFdlcmVO
b3RSZXRyaWVkSW5TZWNvbmRzID0gdG90YWxUaW1lc0ZvclBhdGNoZXNUaGF0V2VyZU5vdFJldHJp
ZWQubWVkaWFuKCk7CisgICAgICAgICAgICByZXN1bHQuYXZlcmFnZVRvdGFsVGltZUZvclBhdGNo
ZXNUaGF0V2VyZU5vdFJldHJpZWRJblNlY29uZHMgPSB0b3RhbFRpbWVzRm9yUGF0Y2hlc1RoYXRX
ZXJlTm90UmV0cmllZC5hdmVyYWdlKCk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhBbmFseXplci5FdmVudC5RdWV1ZVJlc3VsdHMsIHJlc3VsdCk7
CisgICAgfSwKKworICAgIF9hbmFseXplQWxsQnViYmxlc1BlcmZvcm1hbmNlOiBmdW5jdGlvbihk
YXRhQnlQYXRjaCkKKyAgICB7CisgICAgICAgIHZhciBkYXRhID0ge307CisgICAgICAgIGZvciAo
cXVldWVJRCBpbiBidWJibGVRdWV1ZVNlcnZlci5xdWV1ZXMpCisgICAgICAgICAgICBkYXRhW3F1
ZXVlSURdID0ge307CisKKyAgICAgICAgZm9yIChwYXRjaElEIGluIGRhdGFCeVBhdGNoKSB7Cisg
ICAgICAgICAgICBmb3IgKHF1ZXVlSUQgaW4gZGF0YUJ5UGF0Y2hbcGF0Y2hJRF0pIHsKKyAgICAg
ICAgICAgICAgICBpZiAoIXF1ZXVlSUQgaW4gZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgdmFyIHBhdGNoRGF0YSA9IGRhdGFCeVBhdGNoW3BhdGNo
SURdW3F1ZXVlSURdOworICAgICAgICAgICAgICAgIGlmIChwYXRjaERhdGEuZGF0ZSA8IHRoaXMu
ZnJvbURhdGUgfHwgcGF0Y2hEYXRhLmRhdGUgPiB0aGlzLnRvRGF0ZSkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKHBhdGNoRGF0YS5yZXNvbHV0aW9u
ID09PSAiaW4gcHJvZ3Jlc3MiKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICBkYXRhW3F1ZXVlSURdW3BhdGNoSURdID0gcGF0Y2hEYXRhOworICAgICAgICAg
ICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChxdWV1ZUlEIGluIGRhdGEpCisgICAgICAg
ICAgICB0aGlzLl9hbmFseXplQnViYmxlUGVyZm9ybWFuY2UocXVldWVJRCwgZGF0YVtxdWV1ZUlE
XSk7CisgICAgfSwKKworICAgIF9sb2FkZWRCdWJibGVzVGltaW5nOiBmdW5jdGlvbihkYXRhLCBm
cm9tVGltZSwgdG9UaW1lKQorICAgIHsKKyAgICAgICAgLy8gT25seSBhbmFseXplIGlmIHRoZSBk
YXRhIGNvdmVycyB0aGUgbGF0ZXN0IHJhbmdlIHJlcXVlc3RlZCBieSB0aGUgdXNlci4KKyAgICAg
ICAgLy8gSXQgbWF5IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBsb2FkZWQgb25lIGlmIHRoZSB1c2Vy
IHF1aWNrbHkgcmVxdWVzdGVkIG11bHRpcGxlIHJhbmdlcy4KKyAgICAgICAgaWYgKGZyb21UaW1l
ID4gdGhpcy5fcmFuZ2VTdGFydFRpbWUgfHwgdG9UaW1lIDwgdGhpcy5fcmFuZ2VFbmRUaW1lKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9hbmFseXplQWxsQnViYmxlc1BlcmZv
cm1hbmNlKGRhdGEpOworICAgIH0sCiB9OwpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0
cmljc0J1YmJsZVZpZXcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0
cmljc0J1YmJsZVZpZXcuanMJKHJldmlzaW9uIDApCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9N
ZXRyaWNzQnViYmxlVmlldy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK01ldHJpY3NCdWJibGVWaWV3ID0gZnVuY3Rpb24oYW5hbHl6ZXIsIHF1ZXVlKQor
eworICAgIEJhc2VPYmplY3QuY2FsbCh0aGlzKTsKKworICAgIHRoaXMuZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJxdWV1ZS12aWV3Iik7CisKKyAgICB0aGlzLl9yZXN1bHRzID0gbnVsbDsKKworICAgIHRoaXMu
X3F1ZXVlID0gcXVldWU7CisKKyAgICBhbmFseXplci5hZGRFdmVudExpc3RlbmVyKEFuYWx5emVy
LkV2ZW50LlN0YXJ0aW5nLCB0aGlzLl9jbGVhclJlc3VsdHMsIHRoaXMpOworICAgIGFuYWx5emVy
LmFkZEV2ZW50TGlzdGVuZXIoQW5hbHl6ZXIuRXZlbnQuUXVldWVSZXN1bHRzLCB0aGlzLl9xdWV1
ZVJlc3VsdHNBZGRlZCwgdGhpcyk7CisgICAgCisgICAgdGhpcy5fdXBkYXRlU29vbigpOworfTsK
KworTWV0cmljc0J1YmJsZVZpZXcuVXBkYXRlU29vblRpbWVvdXQgPSAxMDA7IC8vIDEwMCBtcwor
CitCYXNlT2JqZWN0LmFkZENvbnN0cnVjdG9yRnVuY3Rpb25zKE1ldHJpY3NCdWJibGVWaWV3KTsK
KworTWV0cmljc0J1YmJsZVZpZXcucHJvdG90eXBlID0geworICAgIGNvbnN0cnVjdG9yOiBNZXRy
aWNzQnViYmxlVmlldywKKyAgICBfX3Byb3RvX186IEJhc2VPYmplY3QucHJvdG90eXBlLAorCisg
ICAgX2NsZWFyUmVzdWx0czogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVzdWx0
cyA9IG51bGw7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNvb24oKTsKKyAgICB9LAorCisgICAgX3F1
ZXVlUmVzdWx0c0FkZGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9xdWV1ZS5pZCAhPT0gZXZlbnQuZGF0YS5xdWV1ZUlEKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIHRoaXMuX3Jlc3VsdHMgPSBldmVudC5kYXRhOworICAgICAgICB0aGlzLl91cGRh
dGVTb29uKCk7CisgICAgfSwKKworICAgIF91cGRhdGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworCisgICAgICAgIGZ1bmN0aW9uIGFk
ZExpbmUoZWxlbWVudCwgdGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGxpbmUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIGxpbmUudGV4dENvbnRl
bnQgPSB0ZXh0OworICAgICAgICAgICAgbGluZS5jbGFzc0xpc3QuYWRkKCJyZXN1bHQtbGluZSIp
OworICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChsaW5lKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGFkZEVycm9yKGVsZW1lbnQsIHRleHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGFkZExpbmUoZWxlbWVudCwgdGV4dCk7CisgICAgICAgICAgICBlbGVtZW50Lmxhc3RD
aGlsZC5jbGFzc0xpc3QuYWRkKCJlcnJvci1saW5lIik7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBhZGREaXZpZGVyKGVsZW1lbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBk
aXZpZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICBkaXZp
ZGVyLmNsYXNzTGlzdC5hZGQoImRpdmlkZXIiKTsKKyAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5k
Q2hpbGQoZGl2aWRlcik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBwbHVyYWxpemVN
aW51dGVzKGludGVydmFsSW5TZWNvbmRzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaW50
ZXJ2YWxJblNlY29uZHMgPCA2MCkKKyAgICAgICAgICAgICAgICByZXR1cm4gImxlc3MgdGhhbiBh
IG1pbnV0ZSI7CisgICAgICAgICAgICBlbHNlIGlmIChpbnRlcnZhbEluU2Vjb25kcyA8IDEyMCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gIjFceGEwbWludXRlIjsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChpbnRlcnZhbEluU2Vjb25kcyAvIDYw
KSArICJceGEwbWludXRlcyI7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBmb3JtYXRQ
ZXJjZW50YWdlKGZyYWN0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZnJhY3Rpb24g
PiAwICYmIGZyYWN0aW9uIDwgMC4wMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gIjwgMSUiOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKGZyYWN0
aW9uICogMTAwKSArICIlIjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdGhpcy5fcmVzdWx0
cykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fcXVldWUuaWQgPT09
ICJzdHlsZS1xdWV1ZSIpIHsKKyAgICAgICAgICAgIGFkZERpdmlkZXIodGhpcy5lbGVtZW50KTsK
KyAgICAgICAgICAgIGFkZExpbmUodGhpcy5lbGVtZW50LCAiVGltZSB0byByZXN1bHQ6Iik7Cisg
ICAgICAgICAgICBhZGRMaW5lKHRoaXMuZWxlbWVudCwgIi0gbWVkaWFuOiAiICsgcGx1cmFsaXpl
TWludXRlcyh0aGlzLl9yZXN1bHRzLm1lZGlhblRvdGFsVGltZUluU2Vjb25kcykgKyAiOyIpOwor
ICAgICAgICAgICAgYWRkTGluZSh0aGlzLmVsZW1lbnQsICItIGF2ZXJhZ2U6ICIgKyBwbHVyYWxp
emVNaW51dGVzKHRoaXMuX3Jlc3VsdHMuYXZlcmFnZVRvdGFsVGltZUluU2Vjb25kcykgKyAiLiIp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHRoaXMuX3Jlc3VsdHMudG90YWxQ
YXRjaGVzICE9PSB0aGlzLl9yZXN1bHRzLnBhdGNoZXNXaXRoUmV0cmllc0NvdW50KSB7CisgICAg
ICAgICAgICAgICAgYWRkRGl2aWRlcih0aGlzLmVsZW1lbnQpOworICAgICAgICAgICAgICAgIHZh
ciBudW1iZXJPZlBhdGNoZXNUaGF0SGFkRmluYWxSZXN1bHRzQXRGaXJzdFRyeSA9IHRoaXMuX3Jl
c3VsdHMudG90YWxQYXRjaGVzIC0gdGhpcy5fcmVzdWx0cy5wYXRjaGVzV2l0aFJldHJpZXNDb3Vu
dCAtIHRoaXMuX3Jlc3VsdHMucGF0Y2hlc1RoYXREaWROb3RDb21wbGV0ZUNvdW50ICsgdGhpcy5f
cmVzdWx0cy5wYXRjaGVzVGhhdFNwaW5uZWRBbmREaWROb3RDb21wbGV0ZUNvdW50OworICAgICAg
ICAgICAgICAgIHZhciB0ZXh0ID0gZm9ybWF0UGVyY2VudGFnZShudW1iZXJPZlBhdGNoZXNUaGF0
SGFkRmluYWxSZXN1bHRzQXRGaXJzdFRyeSAvIHRoaXMuX3Jlc3VsdHMudG90YWxQYXRjaGVzKSAr
ICIgb2YgcGF0Y2hlcyAiOworICAgICAgICAgICAgICAgIHRleHQgKz0gKHRoaXMuX3F1ZXVlLmlk
ID09PSAiY29tbWl0LXF1ZXVlIikgPyAid2VyZSBsYW5kZWQgb3IgcmVqZWN0ZWQiIDogImhhZCBm
aW5hbCByZXN1bHRzIjsKKyAgICAgICAgICAgICAgICB0ZXh0ICs9ICIgYXQgZmlyc3QgdHJ5LiBU
aW1lIHRvIHJlc3VsdDoiCisgICAgICAgICAgICAgICAgYWRkTGluZSh0aGlzLmVsZW1lbnQsIHRl
eHQpOworICAgICAgICAgICAgICAgIGFkZExpbmUodGhpcy5lbGVtZW50LCAiLSBtZWRpYW46ICIg
KyBwbHVyYWxpemVNaW51dGVzKHRoaXMuX3Jlc3VsdHMubWVkaWFuVG90YWxUaW1lRm9yUGF0Y2hl
c1RoYXRXZXJlTm90UmV0cmllZEluU2Vjb25kcykgKyAiOyIpOworICAgICAgICAgICAgICAgIGFk
ZExpbmUodGhpcy5lbGVtZW50LCAiLSBhdmVyYWdlOiAiICsgcGx1cmFsaXplTWludXRlcyh0aGlz
Ll9yZXN1bHRzLmF2ZXJhZ2VUb3RhbFRpbWVGb3JQYXRjaGVzVGhhdFdlcmVOb3RSZXRyaWVkSW5T
ZWNvbmRzKSArICIuIik7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3Jlc3VsdHMucGF0Y2hl
c1RoYXREaWROb3RBcHBseUNvdW50ICE9PSB0aGlzLl9yZXN1bHRzLnBhdGNoZXNUaGF0U3Bpbm5l
ZEFuZENlYXNlZFRvQXBwbHlDb3VudCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5f
cmVzdWx0cy5wYXRjaGVzVGhhdERpZE5vdEFwcGx5Q291bnQgLSB0aGlzLl9yZXN1bHRzLnBhdGNo
ZXNUaGF0U3Bpbm5lZEFuZENlYXNlZFRvQXBwbHlDb3VudCA9PT0gbnVtYmVyT2ZQYXRjaGVzVGhh
dEhhZEZpbmFsUmVzdWx0c0F0Rmlyc3RUcnkpCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRM
aW5lKHRoaXMuZWxlbWVudCwgIk5vbmUgb2YgdGhlc2UgYXBwbGllZCB0byB0cnVuay4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgYWRkTGluZSh0
aGlzLmVsZW1lbnQsICJUaGlzIGluY2x1ZGVzICIgKyBmb3JtYXRQZXJjZW50YWdlKCh0aGlzLl9y
ZXN1bHRzLnBhdGNoZXNUaGF0RGlkTm90QXBwbHlDb3VudCAtIHRoaXMuX3Jlc3VsdHMucGF0Y2hl
c1RoYXRTcGlubmVkQW5kQ2Vhc2VkVG9BcHBseUNvdW50KSAvIHRoaXMuX3Jlc3VsdHMudG90YWxQ
YXRjaGVzKSArICIgdGhhdCBkaWQgbm90IGFwcGx5IHRvIHRydW5rLiIpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRoaXMuX3Jlc3VsdHMucGF0
Y2hlc1RoYXREaWROb3RDb21wbGV0ZUNvdW50ICE9PSB0aGlzLl9yZXN1bHRzLnBhdGNoZXNUaGF0
U3Bpbm5lZEFuZERpZE5vdENvbXBsZXRlQ291bnQpIHsKKyAgICAgICAgICAgICAgICBhZGREaXZp
ZGVyKHRoaXMuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgYWRkTGluZSh0aGlzLmVsZW1lbnQs
IGZvcm1hdFBlcmNlbnRhZ2UoKHRoaXMuX3Jlc3VsdHMucGF0Y2hlc1RoYXREaWROb3RDb21wbGV0
ZUNvdW50IC0gdGhpcy5fcmVzdWx0cy5wYXRjaGVzVGhhdFNwaW5uZWRBbmREaWROb3RDb21wbGV0
ZUNvdW50KSAvIHRoaXMuX3Jlc3VsdHMudG90YWxQYXRjaGVzKSArICIgb2YgcGF0Y2hlcyBjZWFz
ZWQgdG8gYmUgZWxpZ2libGUgZm9yIHByb2Nlc3NpbmcgYmVmb3JlIHRoZSBmaXJzdCB0cnkgZmlu
aXNoZWQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0aGlzLl9yZXN1bHRz
LnBhdGNoZXNXaXRoUmV0cmllc0NvdW50KSB7CisgICAgICAgICAgICAgICAgYWRkRGl2aWRlcih0
aGlzLmVsZW1lbnQpOworICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZm9ybWF0UGVyY2VudGFn
ZSh0aGlzLl9yZXN1bHRzLnBhdGNoZXNXaXRoUmV0cmllc0NvdW50IC8gdGhpcy5fcmVzdWx0cy50
b3RhbFBhdGNoZXMpICsgIiBvZiBwYXRjaGVzIGhhZCB0byBiZSByZXRyaWVkIjsKKyAgICAgICAg
ICAgICAgICBpZiAodGhpcy5fcmVzdWx0cy5wYXRjaGVzVGhhdFNwaW5uZWRBbmREaWROb3RDb21w
bGV0ZUNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gIiwgaW5jbHVkaW5nICIg
KyBmb3JtYXRQZXJjZW50YWdlKHRoaXMuX3Jlc3VsdHMucGF0Y2hlc1RoYXRTcGlubmVkQW5kRGlk
Tm90Q29tcGxldGVDb3VudCAvIHRoaXMuX3Jlc3VsdHMudG90YWxQYXRjaGVzKSArICIgdGhhdCBr
ZXB0IGJlaW5nIHJldHJpZWQgdW50aWwgdGhlIHBhdGNoIGJlY2FtZSBpbmVsaWdpYmxlIGZvciBw
cm9jZXNzaW5nIjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3Jlc3VsdHMucGF0Y2hl
c1RoYXRTcGlubmVkQW5kQ2Vhc2VkVG9BcHBseUNvdW50KQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGV4dCArPSAiLCBhbmQgIiArIGZvcm1hdFBlcmNlbnRhZ2UodGhpcy5fcmVzdWx0cy5wYXRj
aGVzVGhhdFNwaW5uZWRBbmRDZWFzZWRUb0FwcGx5Q291bnQgLyB0aGlzLl9yZXN1bHRzLnRvdGFs
UGF0Y2hlcykgKyAiIHRoYXQga2VwdCBiZWluZyByZXRyaWVkIHVudGlsIHRoZSBwYXRjaCBjZWFz
ZWQgdG8gYXBwbHkgdG8gdHJ1bmsuIjsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dCArPSAiLiI7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlm
ICh0aGlzLl9yZXN1bHRzLnBhdGNoZXNUaGF0U3Bpbm5lZEFuZENlYXNlZFRvQXBwbHlDb3VudCkK
KyAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAiLCBpbmNsdWRpbmcgIiArIGZvcm1hdFBlcmNl
bnRhZ2UodGhpcy5fcmVzdWx0cy5wYXRjaGVzVGhhdFNwaW5uZWRBbmRDZWFzZWRUb0FwcGx5Q291
bnQgLyB0aGlzLl9yZXN1bHRzLnRvdGFsUGF0Y2hlcykgKyAiIHRoYXQgd2VyZSBzcGlubmluZyB1
bnRpbCB0aGUgcGF0Y2ggY2Vhc2VkIHRvIGFwcGx5IHRvIHRydW5rLiI7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICIuIjsKKyAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fcmVzdWx0cy5wYXRjaGVzVGhhdFNwaW5uZWRBbmRQYXNzZWRPckZhaWxlZENv
dW50KSB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gKHRoaXMuX3Jlc3VsdHMucGF0Y2hl
c1dpdGhSZXRyaWVzQ291bnQgPT09IHRoaXMuX3Jlc3VsdHMucGF0Y2hlc1RoYXRTcGlubmVkQW5k
UGFzc2VkT3JGYWlsZWRDb3VudCkgPyAiIEFsbCBvZiB0aGVtIiA6ICIgIiArIGZvcm1hdFBlcmNl
bnRhZ2UodGhpcy5fcmVzdWx0cy5wYXRjaGVzVGhhdFNwaW5uZWRBbmRQYXNzZWRPckZhaWxlZENv
dW50IC8gdGhpcy5fcmVzdWx0cy50b3RhbFBhdGNoZXMpOworICAgICAgICAgICAgICAgICAgICB0
ZXh0ICs9ICIgZmluYWxseSBwcm9kdWNlZCBhIHJlc3VsdCwgd2hpY2ggdG9vazoiOworICAgICAg
ICAgICAgICAgICAgICBhZGRMaW5lKHRoaXMuZWxlbWVudCwgdGV4dCk7CisgICAgICAgICAgICAg
ICAgICAgIGFkZExpbmUodGhpcy5lbGVtZW50LCAiLSBtZWRpYW46ICIgKyBwbHVyYWxpemVNaW51
dGVzKHRoaXMuX3Jlc3VsdHMubWVkaWFuVG90YWxUaW1lRm9yUGF0Y2hlc1RoYXRTcGlubmVkQW5k
UGFzc2VkT3JGYWlsZWRJblNlY29uZHMpICsgIjsiKTsKKyAgICAgICAgICAgICAgICAgICAgYWRk
TGluZSh0aGlzLmVsZW1lbnQsICItIGF2ZXJhZ2U6ICIgKyBwbHVyYWxpemVNaW51dGVzKHRoaXMu
X3Jlc3VsdHMuYXZlcmFnZVRvdGFsVGltZUZvclBhdGNoZXNUaGF0U3Bpbm5lZEFuZFBhc3NlZE9y
RmFpbGVkSW5TZWNvbmRzKSArICIuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIGFkZExpbmUodGhpcy5lbGVtZW50LCB0ZXh0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorCisgICAgICAgIGFkZERpdmlkZXIodGhpcy5lbGVtZW50KTsKKyAgICAgICAg
YWRkTGluZSh0aGlzLmVsZW1lbnQsICJNZWRpYW4gd2FpdCB0aW1lIGJlZm9yZSBwcm9jZXNzaW5n
IHN0YXJ0ZWQ6ICIgKyBwbHVyYWxpemVNaW51dGVzKHRoaXMuX3Jlc3VsdHMubWVkaWFuV2FpdFRp
bWVJblNlY29uZHMpICsgIi4iKTsKKworICAgICAgICBpZiAodGhpcy5fcmVzdWx0cy5wYXRjaGVz
VGhhdENhdXNlZEludGVybmFsRXJyb3IubGVuZ3RoKSB7CisgICAgICAgICAgICBhZGREaXZpZGVy
KHRoaXMuZWxlbWVudCk7CisgICAgICAgICAgICBpZiAodGhpcy5fcmVzdWx0cy5wYXRjaGVzVGhh
dENhdXNlZEludGVybmFsRXJyb3IubGVuZ3RoID09PSAxKQorICAgICAgICAgICAgICAgIGFkZEVy
cm9yKHRoaXMuZWxlbWVudCwgIk9uZSBwYXRjaCBjYXVzZWQgaW50ZXJuYWwgZXJyb3IiKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBhZGRFcnJvcih0aGlzLmVsZW1lbnQsIHRo
aXMuX3Jlc3VsdHMucGF0Y2hlc1RoYXRDYXVzZWRJbnRlcm5hbEVycm9yLmxlbmd0aCArICJceGEw
cGF0Y2hlcyBjYXVzZWQgaW50ZXJuYWwgZXJyb3IsIHBsZWFzZSBzZWUgcGF0Y2ggbnVtYmVycyBp
biBjb25zb2xlIGxvZy4iKTsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJQYXRjaGVzIHRoYXQg
Y2F1c2VkIGludGVybmFsIGVycm9yIGZvciAiICsgdGhpcy5fcmVzdWx0cy5xdWV1ZUlEICsgIjog
IiArIHRoaXMuX3Jlc3VsdHMucGF0Y2hlc1RoYXRDYXVzZWRJbnRlcm5hbEVycm9yKTsKKyAgICAg
ICAgfQorICAgIH0sCisKKyAgICBfdXBkYXRlU29vbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgc2V0VGltZW91dCh0aGlzLl91cGRhdGUuYmluZCh0aGlzKSwgTWV0cmljc0J1YmJsZVZpZXcu
VXBkYXRlU29vblRpbWVvdXQpOworICAgIH0sCit9OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
ZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc0J1YmJsZVZpZXcuanMKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDog
c3ZuOm1pbWUtdHlwZQojIyAtMCwwICsxICMjCit0ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgcHJvcGVydHkKQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIworbmF0aXZl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL01ldHJpY3NNYWluLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01l
dHJpY3NNYWluLmpzCShyZXZpc2lvbiAxNzQzODkpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9N
ZXRyaWNzTWFpbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK3ZhciBoYXNCdWJibGVzID0gdHlwZW9m
IGJ1YmJsZVF1ZXVlU2VydmVyICE9ICJ1bmRlZmluZWQiOworCiB2YXIgYW5hbHl6ZXIgPSBuZXcg
QW5hbHl6ZXI7CiAKIHZhciBhbGxCdWlsZGVyUmVzdWx0c1BzZXVkb1F1ZXVlID0geyBpZDogImFs
bEJ1aWxkZXJSZXN1bHRzUHNldWRvUXVldWUiIH07CkBAIC0yNjAsNiArMjYyLDM5IEBAIGZ1bmN0
aW9uIGJ1aWxkUXVldWVzVGFibGUoKQogICAgIHJldHVybiB0YWJsZTsKIH0KIAorZnVuY3Rpb24g
YnVpbGRCdWJibGVRdWV1ZXNUYWJsZSgpCit7CisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidGFibGUiKTsKKyAgICB0YWJsZS5jbGFzc0xpc3QuYWRkKCJxdWV1ZS1ncmlk
Iik7CisKKyAgICB2YXIgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKKyAgICBy
b3cuY2xhc3NMaXN0LmFkZCgiaGVhZGVycyIpOworCisgICAgZm9yIChpZCBpbiBidWJibGVRdWV1
ZVNlcnZlci5xdWV1ZXMpIHsKKyAgICAgICAgdmFyIGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInRoIik7CisgICAgICAgIGhlYWRlci50ZXh0Q29udGVudCA9IGJ1YmJsZVF1ZXVlU2Vy
dmVyLnF1ZXVlc1tpZF0uc2hvcnROYW1lOworICAgICAgICByb3cuYXBwZW5kQ2hpbGQoaGVhZGVy
KTsKKyAgICB9CisKKyAgICB0YWJsZS5hcHBlbmRDaGlsZChyb3cpOworCisgICAgcm93ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKKyAgICByb3cuY2xhc3NMaXN0LmFkZCgicGxhdGZv
cm0iKTsKKworICAgIGZvciAoaWQgaW4gYnViYmxlUXVldWVTZXJ2ZXIucXVldWVzKSB7CisgICAg
ICAgIHZhciBjZWxsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKKyAgICAgICAgdmFy
IHZpZXcgPSBuZXcgTWV0cmljc0J1YmJsZVZpZXcoYW5hbHl6ZXIsIGJ1YmJsZVF1ZXVlU2VydmVy
LnF1ZXVlc1tpZF0pOworICAgICAgICBjZWxsLmFwcGVuZENoaWxkKHZpZXcuZWxlbWVudCk7Cisg
ICAgICAgIHJvdy5hcHBlbmRDaGlsZChjZWxsKTsKKyAgICB9CisKKyAgICB0YWJsZS5hcHBlbmRD
aGlsZChyb3cpOworCisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YWJsZSk7CisKKyAg
ICByZXR1cm4gdGFibGU7Cit9CisKIGZ1bmN0aW9uIGRvY3VtZW50UmVhZHkoKQogewogICAgIHZh
ciByYW5nZVBpY2tlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAgLTMwMiw2
ICszMzcsMTIgQEAgZnVuY3Rpb24gZG9jdW1lbnRSZWFkeSgpCiAgICAgfSwgdGhpcyk7CiAKICAg
ICBidWlsZEFnZ3JlZ2F0ZVRhYmxlKCk7CisgICAgaWYgKGhhc0J1YmJsZXMpIHsKKyAgICAgICAg
dmFyIHRhYmxlc0RpdmlkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAg
ICAgdGFibGVzRGl2aWRlci5jbGFzc0xpc3QuYWRkKCJ0YWJsZXMtZGl2aWRlciIpOworICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhYmxlc0RpdmlkZXIpOworICAgICAgICBidWls
ZEJ1YmJsZVF1ZXVlc1RhYmxlKCk7CisgICAgfQogCiAgICAgdmFyIHRhYmxlc0RpdmlkZXIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0YWJsZXNEaXZpZGVyLmNsYXNzTGlz
dC5hZGQoInRhYmxlcy1kaXZpZGVyIik7CkluZGV4OiBUb29scy9RdWV1ZVN0YXR1c1NlcnZlci9h
cHAueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9RdWV1ZVN0YXR1c1NlcnZlci9hcHAueWFtbAko
cmV2aXNpb24gMTc0NjExKQorKysgVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvYXBwLnlhbWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiBhcHBsaWNhdGlvbjogd2Via2l0LXF1ZXVlcwot
dmVyc2lvbjogMTc0NjExICMgU1ZOIHJldmlzaW9uIG9mIGxhc3QgbWFqb3IgY2hhbmdlCit2ZXJz
aW9uOiBhcCAjIFNWTiByZXZpc2lvbiBvZiBsYXN0IG1ham9yIGNoYW5nZQogcnVudGltZTogcHl0
aG9uCiBhcGlfdmVyc2lvbjogMQogCkluZGV4OiBUb29scy9RdWV1ZVN0YXR1c1NlcnZlci9tYWlu
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21haW4ucHkJKHJldmlz
aW9uIDE3NDM4OSkKKysrIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21haW4ucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzgs
NiArMzksNyBAQCBmcm9tIGhhbmRsZXJzLmdjIGltcG9ydCBHQwogZnJvbSBoYW5kbGVycy5uZXh0
cGF0Y2ggaW1wb3J0IE5leHRQYXRjaAogZnJvbSBoYW5kbGVycy5wYXRjaCBpbXBvcnQgUGF0Y2gK
IGZyb20gaGFuZGxlcnMucGF0Y2hzdGF0dXMgaW1wb3J0IFBhdGNoU3RhdHVzCitmcm9tIGhhbmRs
ZXJzLnByb2Nlc3Npbmd0aW1lc2pzb24gaW1wb3J0IFByb2Nlc3NpbmdUaW1lc0pTT04KIGZyb20g
aGFuZGxlcnMucXVldWVjaGFydHMgaW1wb3J0IFF1ZXVlQ2hhcnRzCiBmcm9tIGhhbmRsZXJzLnF1
ZXVlbGVuZ3RoanNvbiBpbXBvcnQgUXVldWVMZW5ndGhKU09OCiBmcm9tIGhhbmRsZXJzLnF1ZXVl
c3RhdHVzIGltcG9ydCBRdWV1ZVN0YXR1cwpAQCAtNzksNiArODEsNyBAQCByb3V0ZXMgPSBbCiAg
ICAgKCcvdXBkYXRlLXdvcmstaXRlbXMnLCBVcGRhdGVXb3JrSXRlbXMpLAogICAgICgnL3VwZGF0
ZS1zdm4tcmV2aXNpb24nLCBVcGRhdGVTVk5SZXZpc2lvbiksCiAgICAgKCcvYWN0aXZlLWJvdHMn
LCBBY3RpdmVCb3RzKSwKKyAgICAocicvcHJvY2Vzc2luZy10aW1lcy1qc29uLyhcZCspXC0oXGQr
KVwtKFxkKylcLShcZCspXC0oXGQrKVwtKFxkKylcLShcZCspXC0oXGQrKVwtKFxkKylcLShcZCsp
XC0oXGQrKVwtKFxkKyknLCBQcm9jZXNzaW5nVGltZXNKU09OKSwKIF0KIAogYXBwbGljYXRpb24g
PSB3ZWJhcHAuV1NHSUFwcGxpY2F0aW9uKHJvdXRlcywgZGVidWc9VHJ1ZSkKSW5kZXg6IFRvb2xz
L1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3Byb2Nlc3Npbmd0aW1lc2pzb24ucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvcHJvY2Vzc2luZ3RpbWVz
anNvbi5weQkocmV2aXNpb24gMCkKKysrIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJz
L3Byb2Nlc3Npbmd0aW1lc2pzb24ucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MiBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisj
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgZGF0ZXRpbWUK
KworZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dCBpbXBvcnQgd2ViYXBwCitmcm9tIGdvb2dsZS5h
cHBlbmdpbmUuZXh0LndlYmFwcCBpbXBvcnQgdGVtcGxhdGUKKworZnJvbSBtb2RlbC5wYXRjaGxv
ZyBpbXBvcnQgUGF0Y2hMb2cKKworIyBGYWxsIGJhY2sgdG8gc2ltcGxlanNvbiwgYmVjYXVzZSB3
ZSBhcmUgc3RpbGwgb24gUHl0aG9uIDIuNS4KK3RyeToKKyAgICBpbXBvcnQganNvbgorZXhjZXB0
IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KKworCitjbGFzcyBQ
cm9jZXNzaW5nVGltZXNKU09OKHdlYmFwcC5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIF9yZXN1
bHRGcm9tRmluYWxTdGF0dXMoc2VsZiwgc3RhdHVzX21lc3NhZ2UsIHF1ZXVlX25hbWUpOgorICAg
ICAgICBpZiBzdGF0dXNfbWVzc2FnZSA9PSAiUGFzcyI6CisgICAgICAgICAgICByZXR1cm4gInBh
c3MiCisgICAgICAgIGVsaWYgc3RhdHVzX21lc3NhZ2UgPT0gIkZhaWwiOgorICAgICAgICAgICAg
cmV0dXJuICJmYWlsIgorICAgICAgICBlbGlmIHN0YXR1c19tZXNzYWdlID09ICJFcnJvcjogIiAr
IHF1ZXVlX25hbWUgKyAiIGRpZCBub3QgcHJvY2VzcyBwYXRjaC4iOgorICAgICAgICAgICAgcmV0
dXJuICJub3QgcHJvY2Vzc2VkIgorICAgICAgICBlbGlmIHN0YXR1c19tZXNzYWdlID09ICJFcnJv
cjogIiArIHF1ZXVlX25hbWUgKyAiIHVuYWJsZSB0byBhcHBseSBwYXRjaC4iOgorICAgICAgICAg
ICAgcmV0dXJuICJjb3VsZCBub3QgYXBwbHkiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy
ZXR1cm4gImludGVybmFsIGVycm9yIgorCisgICAgZGVmIF9mZXRjaF9wYXRjaF9sb2coc2VsZiwg
c3RhcnRfZGF0ZSwgZW5kX2RhdGUpOgorICAgICAgICBhbGxfZW50cmllcyA9IFBhdGNoTG9nLmFs
bCgpLmZpbHRlcignZGF0ZSA+Jywgc3RhcnRfZGF0ZSkuZmlsdGVyKCdkYXRlIDwnLCBlbmRfZGF0
ZSkuZmV0Y2gobGltaXQ9Tm9uZSkKKyAgICAgICAgcmVzdWx0ID0ge30KKyAgICAgICAgZm9yIGVu
dHJ5IGluIGFsbF9lbnRyaWVzOgorICAgICAgICAgICAgaWYgbm90IGVudHJ5LmF0dGFjaG1lbnRf
aWQgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgIHJlc3VsdFtlbnRyeS5hdHRhY2htZW50X2lk
XSA9IHt9CisgICAgICAgICAgICByZXN1bHRbZW50cnkuYXR0YWNobWVudF9pZF1bZW50cnkucXVl
dWVfbmFtZV0gPSB7CisgICAgICAgICAgICAgICAgImRhdGUiOiBlbnRyeS5kYXRlLAorICAgICAg
ICAgICAgICAgICJ3YWl0X2R1cmF0aW9uIjogZW50cnkud2FpdF9kdXJhdGlvbiwKKyAgICAgICAg
ICAgICAgICAicHJvY2Vzc19kdXJhdGlvbiI6IGVudHJ5LnByb2Nlc3NfZHVyYXRpb24sCisgICAg
ICAgICAgICAgICAgInJldHJ5X2NvdW50IjogZW50cnkucmV0cnlfY291bnQsCisgICAgICAgICAg
ICAgICAgInJlc29sdXRpb24iOiBzZWxmLl9yZXN1bHRGcm9tRmluYWxTdGF0dXMoZW50cnkubGF0
ZXN0X21lc3NhZ2UsIGVudHJ5LnF1ZXVlX25hbWUpIGlmIGVudHJ5LmZpbmlzaGVkIGVsc2UgImlu
IHByb2dyZXNzIgorICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBk
ZWYgZ2V0KHNlbGYsIHN0YXJ0X3llYXIsIHN0YXJ0X21vbnRoLCBzdGFydF9kYXksIHN0YXJ0X2hv
dXIsIHN0YXJ0X21pbnV0ZSwgc3RhcnRfc2Vjb25kLCBlbmRfeWVhciwgZW5kX21vbnRoLCBlbmRf
ZGF5LCBlbmRfaG91ciwgZW5kX21pbnV0ZSwgZW5kX3NlY29uZCk6CisgICAgICAgIHNlbGYucmVz
cG9uc2UuaGVhZGVyc1siQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIl0gPSAiKiIKKyAgICAg
ICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9q
c29uJworCisgICAgICAgIHBhdGNoX2xvZyA9IHNlbGYuX2ZldGNoX3BhdGNoX2xvZyhkYXRldGlt
ZS5kYXRldGltZShpbnQoc3RhcnRfeWVhciksIGludChzdGFydF9tb250aCksIGludChzdGFydF9k
YXkpLCBpbnQoc3RhcnRfaG91ciksIGludChzdGFydF9taW51dGUpLCBpbnQoc3RhcnRfc2Vjb25k
KSksCisgICAgICAgICAgICBkYXRldGltZS5kYXRldGltZShpbnQoZW5kX3llYXIpLCBpbnQoZW5k
X21vbnRoKSwgaW50KGVuZF9kYXkpLCBpbnQoZW5kX2hvdXIpLCBpbnQoZW5kX21pbnV0ZSksIGlu
dChlbmRfc2Vjb25kKSkpCisgICAgICAgIGR0aGFuZGxlciA9IGxhbWJkYSBvYmo6IChvYmouaXNv
Zm9ybWF0KCkgKyAiWiIpIGlmIGlzaW5zdGFuY2Uob2JqLCBkYXRldGltZS5kYXRldGltZSkgb3Ig
aXNpbnN0YW5jZShvYmosIGRhdGV0aW1lLmRhdGUpIGVsc2UgTm9uZQorICAgICAgICBzZWxmLnJl
c3BvbnNlLm91dC53cml0ZShqc29uLmR1bXBzKHBhdGNoX2xvZywgZGVmYXVsdD1kdGhhbmRsZXIp
KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMv
cHJvY2Vzc2luZ3RpbWVzanNvbi5weQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiMj
IC0wLDAgKzEgIyMKK0xGClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
</data>
<flag name="review"
          id="264384"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>