<?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>96480</bug_id>
          
          <creation_ts>2012-09-12 01:45:34 -0700</creation_ts>
          <short_desc>REGRESSION(r128270): It made fast/events/popup-blocking-timers.html flakey</short_desc>
          <delta_ts>2012-10-02 13:11:04 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79666</blocked>
    
    <blocked>96475</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jochen</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>718057</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-12 01:45:34 -0700</bug_when>
    <thetext>r128270
--------

--- /home/webkitbuildbot/slaves/release64bitWebKit2_EC2/buildslave/qt-linux-64-release-webkit2/build/layout-test-results/fast/events/popup-blocking-timers-expected.txt
+++ /home/webkitbuildbot/slaves/release64bitWebKit2_EC2/buildslave/qt-linux-64-release-webkit2/build/layout-test-results/fast/events/popup-blocking-timers-actual.txt
@@ -1,16 +1,2 @@
-Click Here (6 times)
-Test calling window.open() directly. A popup should be allowed.
-PASS newWindow is non-null.
-Test calling window.open() with a 0 ms delay. A popup should be allowed.
-PASS newWindow is non-null.
-Test calling window.open() in a 100 ms interval. A popup should only be allowed on the first execution of the interval.
-PASS newWindow is non-null.
-Test calling window.open() in a 100 ms interval. A popup should only be allowed on the first execution of the interval.
-PASS newWindow is undefined.
-Test calling window.open() in a nested call to setTimeout(). A popup should not be allowed.
-PASS newWindow is undefined.
-Test calling window.open() with a 1000 ms delay. A popup should be allowed.
-PASS newWindow is non-null.
-Test calling window.open() with a 1001 ms delay. A popup should not be allowed.
-PASS newWindow is undefined.
+FAIL: Timed out waiting for notifyDone to be called
 

r128275
--------

--- /home/webkitbuildbot/slaves/release64bitWebKit2_EC2/buildslave/qt-linux-64-release-webkit2/build/layout-test-results/fast/events/popup-blocking-timers-expected.txt
+++ /home/webkitbuildbot/slaves/release64bitWebKit2_EC2/buildslave/qt-linux-64-release-webkit2/build/layout-test-results/fast/events/popup-blocking-timers-actual.txt
@@ -5,12 +5,12 @@
 PASS newWindow is non-null.
 Test calling window.open() in a 100 ms interval. A popup should only be allowed on the first execution of the interval.
 PASS newWindow is non-null.
+Test calling window.open() with a 1000 ms delay. A popup should be allowed.
+PASS newWindow is non-null.
+Test calling window.open() in a nested call to setTimeout(). A popup should not be allowed.
+PASS newWindow is undefined.
 Test calling window.open() in a 100 ms interval. A popup should only be allowed on the first execution of the interval.
 PASS newWindow is undefined.
-Test calling window.open() in a nested call to setTimeout(). A popup should not be allowed.
-PASS newWindow is undefined.
-Test calling window.open() with a 1000 ms delay. A popup should be allowed.
-PASS newWindow is non-null.
 Test calling window.open() with a 1001 ms delay. A popup should not be allowed.
 PASS newWindow is undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718150</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-12 03:41:18 -0700</bug_when>
    <thetext>I skipped it - https://trac.webkit.org/changeset/128288
Please unskip it with the proper fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721801</commentid>
    <comment_count>2</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-09-17 04:42:21 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I skipped it - https://trac.webkit.org/changeset/128288
&gt; Please unskip it with the proper fix.

I checked the chromium test logs, and the test used to be flaky before (esp. this case when the ordering of events changes).

I could imagine that it is less flaky, if we split it up in six individual tests, wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722094</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-17 11:23:44 -0700</bug_when>
    <thetext>Sure, we can give that a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732632</commentid>
    <comment_count>4</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-10-02 07:09:46 -0700</bug_when>
    <thetext>*** Bug 96517 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732635</commentid>
    <comment_count>5</comment_count>
      <attachid>166686</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-02 07:12:05 -0700</bug_when>
    <thetext>Created attachment 166686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732700</commentid>
    <comment_count>6</comment_count>
      <attachid>166686</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-10-02 09:16:13 -0700</bug_when>
    <thetext>Comment on attachment 166686
Patch

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

Looks sane to me.

&gt; LayoutTests/fast/events/popup-blocking-timers1.html:31
&gt; +        function clickButton() {
&gt; +            var button = document.getElementById(&quot;test&quot;);
&gt; +            var buttonX = button.offsetLeft + button.offsetWidth / 2;
&gt; +            var buttonY = button.offsetTop + button.offsetHeight / 2;
&gt; +            if (window.eventSender) {
&gt; +                eventSender.mouseMoveTo(buttonX, buttonY);
&gt; +                eventSender.mouseDown();
&gt; +                eventSender.mouseUp();
&gt; +            }
&gt; +        }        

I know that you derived this function from the function of the same name in the original test. I take it that it&apos;s necessary to use EventSender to actually simulate a mouse click of a person as opposed to calling click() on the HTML button element?

&gt; LayoutTests/fast/events/popup-blocking-timers2.html:1
&gt; +&lt;head&gt;

Unless you intend to test quirks mode, I suggest that we include a DOCTYPE, say &lt;!DOCTYPE html&gt;.

&gt; LayoutTests/fast/events/popup-blocking-timers2.html:33
&gt; +        function clickButton() {
&gt; +            var button = document.getElementById(&quot;test&quot;);
&gt; +            var buttonX = button.offsetLeft + button.offsetWidth / 2;
&gt; +            var buttonY = button.offsetTop + button.offsetHeight / 2;
&gt; +            if (window.eventSender) {
&gt; +                eventSender.mouseMoveTo(buttonX, buttonY);
&gt; +                eventSender.mouseDown();
&gt; +                eventSender.mouseUp();
&gt; +            }
&gt; +        }        

Ditto.

&gt; LayoutTests/fast/events/popup-blocking-timers3.html:41
&gt; +        function clickButton() {
&gt; +            var button = document.getElementById(&quot;test&quot;);
&gt; +            var buttonX = button.offsetLeft + button.offsetWidth / 2;
&gt; +            var buttonY = button.offsetTop + button.offsetHeight / 2;
&gt; +            if (window.eventSender) {
&gt; +                eventSender.mouseMoveTo(buttonX, buttonY);
&gt; +                eventSender.mouseDown();
&gt; +                eventSender.mouseUp();
&gt; +            }
&gt; +        }        

Ditto.

&gt; LayoutTests/fast/events/popup-blocking-timers4.html:35
&gt; +        function clickButton() {
&gt; +            var button = document.getElementById(&quot;test&quot;);
&gt; +            var buttonX = button.offsetLeft + button.offsetWidth / 2;
&gt; +            var buttonY = button.offsetTop + button.offsetHeight / 2;
&gt; +            if (window.eventSender) {
&gt; +                eventSender.mouseMoveTo(buttonX, buttonY);
&gt; +                eventSender.mouseDown();
&gt; +                eventSender.mouseUp();
&gt; +            }
&gt; +        }        

Ditto.

&gt; LayoutTests/fast/events/popup-blocking-timers5.html:36
&gt; +        function clickButton() {
&gt; +            var button = document.getElementById(&quot;test&quot;);
&gt; +            var buttonX = button.offsetLeft + button.offsetWidth / 2;
&gt; +            var buttonY = button.offsetTop + button.offsetHeight / 2;
&gt; +            if (window.eventSender) {
&gt; +                eventSender.mouseMoveTo(buttonX, buttonY);
&gt; +                eventSender.mouseDown();
&gt; +                eventSender.mouseUp();
&gt; +            }
&gt; +        }        

Ditto.

&gt; LayoutTests/fast/events/popup-blocking-timers6.html:36
&gt; +        function clickButton() {
&gt; +            var button = document.getElementById(&quot;test&quot;);
&gt; +            var buttonX = button.offsetLeft + button.offsetWidth / 2;
&gt; +            var buttonY = button.offsetTop + button.offsetHeight / 2;
&gt; +            if (window.eventSender) {
&gt; +                eventSender.mouseMoveTo(buttonX, buttonY);
&gt; +                eventSender.mouseDown();
&gt; +                eventSender.mouseUp();
&gt; +            }
&gt; +        }        

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732705</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-10-02 09:18:51 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; LayoutTests/fast/events/popup-blocking-timers2.html:1
&gt; &gt; +&lt;head&gt;
&gt; 
&gt; Unless you intend to test quirks mode, I suggest that we include a DOCTYPE, say &lt;!DOCTYPE html&gt;.

Feel free to disregard this comment as the original test omitted a &lt;!DOCTYPE&gt; declaration and I don&apos;t anticipate that the result of this test will change in quirks mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732903</commentid>
    <comment_count>8</comment_count>
      <attachid>166724</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-02 11:50:43 -0700</bug_when>
    <thetext>Created attachment 166724
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732907</commentid>
    <comment_count>9</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-10-02 11:51:39 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 166686 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166686&amp;action=review
&gt; 
&gt; Looks sane to me.
&gt; 
&gt; &gt; LayoutTests/fast/events/popup-blocking-timers1.html:31
&gt; &gt; +        function clickButton() {
&gt; &gt; +            var button = document.getElementById(&quot;test&quot;);
&gt; &gt; +            var buttonX = button.offsetLeft + button.offsetWidth / 2;
&gt; &gt; +            var buttonY = button.offsetTop + button.offsetHeight / 2;
&gt; &gt; +            if (window.eventSender) {
&gt; &gt; +                eventSender.mouseMoveTo(buttonX, buttonY);
&gt; &gt; +                eventSender.mouseDown();
&gt; &gt; +                eventSender.mouseUp();
&gt; &gt; +            }
&gt; &gt; +        }        
&gt; 
&gt; I know that you derived this function from the function of the same name in the original test. I take it that it&apos;s necessary to use EventSender to actually simulate a mouse click of a person as opposed to calling click() on the HTML button element?

The call to click() would not be counted as a user action, and therefore no popups would be allowed at all

&gt; 
&gt; &gt; LayoutTests/fast/events/popup-blocking-timers2.html:1
&gt; &gt; +&lt;head&gt;
&gt; 
&gt; Unless you intend to test quirks mode, I suggest that we include a DOCTYPE, say &lt;!DOCTYPE html&gt;.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732997</commentid>
    <comment_count>10</comment_count>
      <attachid>166724</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 13:10:59 -0700</bug_when>
    <thetext>Comment on attachment 166724
Patch for landing

Clearing flags on attachment: 166724

Committed r130200: &lt;http://trac.webkit.org/changeset/130200&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732998</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 13:11:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166686</attachid>
            <date>2012-10-02 07:12:05 -0700</date>
            <delta_ts>2012-10-02 11:50:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96480-20121002161118.patch</filename>
            <type>text/plain</type>
            <size>24755</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjE1MjZlNzM4MjAyZTAzYmY5NGJh
NmZiYjNiNGZmOGIyOWY4MDQxYy4uZDYxZDI1MjhhYTkwOGZjYjk1OTRjZDZhMDk2NTVjYmJlMzZl
NmEwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEwLTAyICBKb2NoZW4gRWlzaW5nZXIg
IDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwbGl0IHBvcHVwLWJsb2NraW5nLXRp
bWVycy5odG1sIGludG8gaW5kaXZpZHVhbCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGF0IHNob3VsZCBhdm9pZCBmYWlsdXJlcyBmcm9tIHRo
ZSBsb2cgbWVzc2FnZXMgY29taW5nIGluIGluIHRoZSB3cm9uZyBvcmRlci4KKworICAgICAgICAq
IGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVy
czEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGlt
ZXJzMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJs
b2NraW5nLXRpbWVyczIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcG9wdXAt
YmxvY2tpbmctdGltZXJzMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczUuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRp
bWVyczYuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC01LjAtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMDIgIE1pa2UgV2VzdCAgPG1r
d3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgY2FsbCBzdGFja3MgdG8gQ29udGVudCBT
ZWN1cml0eSBQb2xpY3kgY2hlY2tzIHdoZW4gcmVsZXZhbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjg4ZjZhN2M5Y2ZhNzE3NjAzZDMyM2E2MDc2
NzhiMzIyZjE0MmIzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotQ2xpY2sgSGVyZSAoNiB0aW1l
cykKLVRlc3QgY2FsbGluZyB3aW5kb3cub3BlbigpIGRpcmVjdGx5LiBBIHBvcHVwIHNob3VsZCBi
ZSBhbGxvd2VkLgotUEFTUyBuZXdXaW5kb3cgaXMgbm9uLW51bGwuCi1UZXN0IGNhbGxpbmcgd2lu
ZG93Lm9wZW4oKSB3aXRoIGEgMCBtcyBkZWxheS4gQSBwb3B1cCBzaG91bGQgYmUgYWxsb3dlZC4K
LVBBU1MgbmV3V2luZG93IGlzIG5vbi1udWxsLgotVGVzdCBjYWxsaW5nIHdpbmRvdy5vcGVuKCkg
aW4gYSAxMDAgbXMgaW50ZXJ2YWwuIEEgcG9wdXAgc2hvdWxkIG9ubHkgYmUgYWxsb3dlZCBvbiB0
aGUgZmlyc3QgZXhlY3V0aW9uIG9mIHRoZSBpbnRlcnZhbC4KLVBBU1MgbmV3V2luZG93IGlzIG5v
bi1udWxsLgotVGVzdCBjYWxsaW5nIHdpbmRvdy5vcGVuKCkgaW4gYSAxMDAgbXMgaW50ZXJ2YWwu
IEEgcG9wdXAgc2hvdWxkIG9ubHkgYmUgYWxsb3dlZCBvbiB0aGUgZmlyc3QgZXhlY3V0aW9uIG9m
IHRoZSBpbnRlcnZhbC4KLVBBU1MgbmV3V2luZG93IGlzIHVuZGVmaW5lZC4KLVRlc3QgY2FsbGlu
ZyB3aW5kb3cub3BlbigpIGluIGEgbmVzdGVkIGNhbGwgdG8gc2V0VGltZW91dCgpLiBBIHBvcHVw
IHNob3VsZCBub3QgYmUgYWxsb3dlZC4KLVBBU1MgbmV3V2luZG93IGlzIHVuZGVmaW5lZC4KLVRl
c3QgY2FsbGluZyB3aW5kb3cub3BlbigpIHdpdGggYSAxMDAwIG1zIGRlbGF5LiBBIHBvcHVwIHNo
b3VsZCBiZSBhbGxvd2VkLgotUEFTUyBuZXdXaW5kb3cgaXMgbm9uLW51bGwuCi1UZXN0IGNhbGxp
bmcgd2luZG93Lm9wZW4oKSB3aXRoIGEgMTAwMSBtcyBkZWxheS4gQSBwb3B1cCBzaG91bGQgbm90
IGJlIGFsbG93ZWQuCi1QQVNTIG5ld1dpbmRvdyBpcyB1bmRlZmluZWQuCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwZmIxNzY4NDNkMWVkNmQ3MzEzOTg3NTZkNTU0MjIwMjVk
YzU0ZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw5MSArMCwwIEBACi08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0PgotICAgICAgICB2
YXIgbmV3V2luZG93OwotICAgICAgICB2YXIgaW50ZXJ2YWxJZDsKLSAgICAgICAgdmFyIGZpcnN0
SW50ZXJ2YWxFeGVjdXRpb24gPSB0cnVlOwotICAgICAgICB2YXIgY2xpY2tOdW1iZXIgPSAwOwot
ICAgICAgICAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3Bl
bldpbmRvd3MoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJsb2NraW5nRW5hYmxlZCh0cnVlKTsKLSAgICAg
ICAgfQotICAgIAotICAgICAgICBmdW5jdGlvbiBjbGlja0hhbmRsZXIoKSB7Ci0gICAgICAgICAg
ICBjbGlja051bWJlcisrOwotICAgICAgICAgICAgaWYgKGNsaWNrTnVtYmVyID09IDEpIHsKLSAg
ICAgICAgICAgICAgICBuZXdXaW5kb3cgPSB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKLSAg
ICAgICAgICAgICAgICBzZWxmLmZvY3VzKCk7Ci0gICAgICAgICAgICAgICAgZGVidWcoIlRlc3Qg
Y2FsbGluZyB3aW5kb3cub3BlbigpIGRpcmVjdGx5LiBBIHBvcHVwIHNob3VsZCBiZSBhbGxvd2Vk
LiIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgibmV3V2luZG93Iik7Ci0gICAg
ICAgICAgICB9IGVsc2UgaWYgKGNsaWNrTnVtYmVyID09IDIpIHsKLSAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBuZXdXaW5kb3cgPSB3
aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5mb2N1
cygpOwotICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiVGVzdCBjYWxsaW5nIHdpbmRvdy5vcGVu
KCkgd2l0aCBhIDAgbXMgZGVsYXkuIEEgcG9wdXAgc2hvdWxkIGJlIGFsbG93ZWQuIikKLSAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJuZXdXaW5kb3ciKTsKLSAgICAgICAgICAg
ICAgICB9LCAwKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xpY2tOdW1iZXIgPT0gMykgewot
ICAgICAgICAgICAgICAgIGludGVydmFsSWQgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICAgICAgZGVidWcoIlRlc3QgY2FsbGluZyB3aW5kb3cub3BlbigpIGluIGEg
MTAwIG1zIGludGVydmFsLiBBIHBvcHVwIHNob3VsZCBvbmx5IGJlIGFsbG93ZWQgb24gdGhlIGZp
cnN0IGV4ZWN1dGlvbiBvZiB0aGUgaW50ZXJ2YWwuIik7Ci0gICAgICAgICAgICAgICAgICAgIG5l
d1dpbmRvdyA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIpOwotICAgICAgICAgICAgICAgICAg
ICBzZWxmLmZvY3VzKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEludGVydmFsRXhl
Y3V0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoIm5ld1dp
bmRvdyIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RJbnRlcnZhbEV4ZWN1dGlvbiA9
IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIm5ld1dpbmRvdyIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKTsKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIH0sIDEwMCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGNsaWNrTnVt
YmVyID09IDQpIHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3V2luZG93ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmZvY3VzKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBk
ZWJ1ZygiVGVzdCBjYWxsaW5nIHdpbmRvdy5vcGVuKCkgaW4gYSBuZXN0ZWQgY2FsbCB0byBzZXRU
aW1lb3V0KCkuIEEgcG9wdXAgc2hvdWxkIG5vdCBiZSBhbGxvd2VkLiIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgibmV3V2luZG93Iik7Ci0gICAgICAgICAgICAg
ICAgICAgIH0sIDApOwotICAgICAgICAgICAgICAgIH0sIDMwMCk7Ci0gICAgICAgICAgICB9IGVs
c2UgaWYgKGNsaWNrTnVtYmVyID09IDUpIHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBuZXdXaW5kb3cgPSB3aW5kb3cub3Blbigi
YWJvdXQ6YmxhbmsiKTsKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5mb2N1cygpOwotICAgICAg
ICAgICAgICAgICAgICBkZWJ1ZygiVGVzdCBjYWxsaW5nIHdpbmRvdy5vcGVuKCkgd2l0aCBhIDEw
MDAgbXMgZGVsYXkuIEEgcG9wdXAgc2hvdWxkIGJlIGFsbG93ZWQuIikKLSAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmVOb25OdWxsKCJuZXdXaW5kb3ciKTsKLSAgICAgICAgICAgICAgICB9LCAx
MDAwKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xpY2tOdW1iZXIgPT0gNikgewotICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5l
d1dpbmRvdyA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIpOwotICAgICAgICAgICAgICAgICAg
ICBzZWxmLmZvY3VzKCk7Ci0gICAgICAgICAgICAgICAgICAgIGRlYnVnKCJUZXN0IGNhbGxpbmcg
d2luZG93Lm9wZW4oKSB3aXRoIGEgMTAwMSBtcyBkZWxheS4gQSBwb3B1cCBzaG91bGQgbm90IGJl
IGFsbG93ZWQuIikKLSAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIm5ld1dp
bmRvdyIpOwotCi0gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICAg
ICAgICAgIH0sIDEwMDEpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAx
KTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgZnVuY3Rpb24gY2xpY2tCdXR0b24oKSB7
Ci0gICAgICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qi
KTsKLSAgICAgICAgICAgIHZhciBidXR0b25YID0gYnV0dG9uLm9mZnNldExlZnQgKyBidXR0b24u
b2Zmc2V0V2lkdGggLyAyOwotICAgICAgICAgICAgdmFyIGJ1dHRvblkgPSBidXR0b24ub2Zmc2V0
VG9wICsgYnV0dG9uLm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgICAgICBpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA2OyBpKysp
IHsgCi0gICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1dHRvblgs
IGJ1dHRvblkpOwotICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
LSAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSAgICAgICAgCi0gICAgPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImNsaWNrQnV0dG9uKCkiPgotICAgIDxidXR0b24gaWQ9InRl
c3QiIG9uY2xpY2s9ImNsaWNrSGFuZGxlcigpIj5DbGljayBIZXJlICg2IHRpbWVzKTwvYnV0dG9u
PgotICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMxLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YWVmMDZmMWIwYmQ2ZGVhMWQ5NjdlMGUyNjAwODRlNTU1ZWM1OGFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tp
bmctdGltZXJzMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDbGljayBIZXJlCitUZXN0
IGNhbGxpbmcgd2luZG93Lm9wZW4oKSBkaXJlY3RseS4gQSBwb3B1cCBzaG91bGQgYmUgYWxsb3dl
ZC4KK1BBU1MgbmV3V2luZG93IGlzIG5vbi1udWxsLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMxLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBhZWQ2
Nzk4NzQ0OTM2MzMyOGRhOTEzODM3YTEwY2JkMGZjYzA2YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczEuaHRtbApAQCAtMCww
ICsxLDM3IEBACis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgbmV3V2luZG93
OworICAgICAgICAKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2Fu
T3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgfQorICAgIAorICAgICAgICBmdW5jdGlvbiBjbGlja0hhbmRsZXIoKSB7CisgICAgICAg
ICAgICBuZXdXaW5kb3cgPSB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKKyAgICAgICAgICAg
IHNlbGYuZm9jdXMoKTsKKyAgICAgICAgICAgIGRlYnVnKCJUZXN0IGNhbGxpbmcgd2luZG93Lm9w
ZW4oKSBkaXJlY3RseS4gQSBwb3B1cCBzaG91bGQgYmUgYWxsb3dlZC4iKTsKKyAgICAgICAgICAg
IHNob3VsZEJlTm9uTnVsbCgibmV3V2luZG93Iik7CisgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNsaWNrQnV0dG9uKCkgeworICAgICAg
ICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAg
ICAgICAgICB2YXIgYnV0dG9uWCA9IGJ1dHRvbi5vZmZzZXRMZWZ0ICsgYnV0dG9uLm9mZnNldFdp
ZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBidXR0b25ZID0gYnV0dG9uLm9mZnNldFRvcCArIGJ1
dHRvbi5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgeworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1dHRvblgsIGJ1
dHRvblkpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSAgICAgICAgCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImNsaWNrQnV0
dG9uKCkiPgorICAgIDxidXR0b24gaWQ9InRlc3QiIG9uY2xpY2s9ImNsaWNrSGFuZGxlcigpIj5D
bGljayBIZXJlPC9idXR0b24+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1l
cnMyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5n
LXRpbWVyczItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0NTU5OWY3Y2UzNjE0ZTQ1ZjIzM2U5
OTgyZTM4M2M1MmU5OTc4OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
K0NsaWNrIEhlcmUKK1Rlc3QgY2FsbGluZyB3aW5kb3cub3BlbigpIHdpdGggYSAwIG1zIGRlbGF5
LiBBIHBvcHVwIHNob3VsZCBiZSBhbGxvd2VkLgorUEFTUyBuZXdXaW5kb3cgaXMgbm9uLW51bGwu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRp
bWVyczIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVy
czIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYTlkNzRhOTgzNTM1Mzk2ZjZlNmNiYzlhYTY1MmQxMWVlODBj
ODlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxv
Y2tpbmctdGltZXJzMi5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIHZhciBuZXdXaW5kb3c7CisgICAgICAgIAorICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKHRydWUpOworICAgICAgICB9CisgICAgCisgICAgICAgIGZ1bmN0aW9u
IGNsaWNrSGFuZGxlcigpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgbmV3V2luZG93ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIik7Cisg
ICAgICAgICAgICAgICAgc2VsZi5mb2N1cygpOworICAgICAgICAgICAgICAgIGRlYnVnKCJUZXN0
IGNhbGxpbmcgd2luZG93Lm9wZW4oKSB3aXRoIGEgMCBtcyBkZWxheS4gQSBwb3B1cCBzaG91bGQg
YmUgYWxsb3dlZC4iKQorICAgICAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgibmV3V2luZG93
Iik7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0sIDApOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBjbGlja0J1dHRvbigpIHsKKyAgICAg
ICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAg
ICAgICAgICAgdmFyIGJ1dHRvblggPSBidXR0b24ub2Zmc2V0TGVmdCArIGJ1dHRvbi5vZmZzZXRX
aWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgYnV0dG9uWSA9IGJ1dHRvbi5vZmZzZXRUb3AgKyBi
dXR0b24ub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b25YLCBi
dXR0b25ZKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gICAgICAgIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJjbGlja0J1
dHRvbigpIj4KKyAgICA8YnV0dG9uIGlkPSJ0ZXN0IiBvbmNsaWNrPSJjbGlja0hhbmRsZXIoKSI+
Q2xpY2sgSGVyZTwvYnV0dG9uPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGlt
ZXJzMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2lu
Zy10aW1lcnMzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjNiMDBhOTQ2MDgwZThjNDlkMDJj
YWZlMzg5ZDQ1YmE4NzAyNzc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CitDbGljayBIZXJlCitUZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSBpbiBhIDEwMCBtcyBpbnRl
cnZhbC4gQSBwb3B1cCBzaG91bGQgb25seSBiZSBhbGxvd2VkIG9uIHRoZSBmaXJzdCBleGVjdXRp
b24gb2YgdGhlIGludGVydmFsLgorUEFTUyBuZXdXaW5kb3cgaXMgbm9uLW51bGwuCitUZXN0IGNh
bGxpbmcgd2luZG93Lm9wZW4oKSBpbiBhIDEwMCBtcyBpbnRlcnZhbC4gQSBwb3B1cCBzaG91bGQg
b25seSBiZSBhbGxvd2VkIG9uIHRoZSBmaXJzdCBleGVjdXRpb24gb2YgdGhlIGludGVydmFsLgor
UEFTUyBuZXdXaW5kb3cgaXMgdW5kZWZpbmVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFjYTVkYjk4
ZmFhYzljZjM3Y2ZhNGQ2NzdmNjMzMGI5OGE2OTZhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczMuaHRtbApAQCAtMCwwICsx
LDQ3IEBACis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgbmV3V2luZG93Owor
ICAgICAgICB2YXIgaW50ZXJ2YWxJZDsKKyAgICAgICAgdmFyIGZpcnN0SW50ZXJ2YWxFeGVjdXRp
b24gPSB0cnVlOworICAgICAgICAKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJsb2NraW5nRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBmdW5jdGlvbiBjbGlja0hhbmRsZXIoKSB7
CisgICAgICAgICAgICBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgZGVidWcoIlRlc3QgY2FsbGluZyB3aW5kb3cub3BlbigpIGluIGEgMTAwIG1z
IGludGVydmFsLiBBIHBvcHVwIHNob3VsZCBvbmx5IGJlIGFsbG93ZWQgb24gdGhlIGZpcnN0IGV4
ZWN1dGlvbiBvZiB0aGUgaW50ZXJ2YWwuIik7CisgICAgICAgICAgICAgICAgbmV3V2luZG93ID0g
d2luZG93Lm9wZW4oImFib3V0OmJsYW5rIik7CisgICAgICAgICAgICAgICAgc2VsZi5mb2N1cygp
OworICAgICAgICAgICAgICAgIGlmIChmaXJzdEludGVydmFsRXhlY3V0aW9uKSB7CisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgibmV3V2luZG93Iik7CisgICAgICAgICAgICAg
ICAgICAgIGZpcnN0SW50ZXJ2YWxFeGVjdXRpb24gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgibmV3V2luZG93
Iik7CisgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0sIDEwMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNs
aWNrQnV0dG9uKCkgeworICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgICAgICB2YXIgYnV0dG9uWCA9IGJ1dHRvbi5vZmZzZXRM
ZWZ0ICsgYnV0dG9uLm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBidXR0b25ZID0g
YnV0dG9uLm9mZnNldFRvcCArIGJ1dHRvbi5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKGJ1dHRvblgsIGJ1dHRvblkpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9ImNsaWNrQnV0dG9uKCkiPgorICAgIDxidXR0b24gaWQ9InRlc3QiIG9uY2xp
Y2s9ImNsaWNrSGFuZGxlcigpIj5DbGljayBIZXJlPC9idXR0b24+CisgICAgPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9wb3B1cC1ibG9ja2luZy10aW1lcnM0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4
MzE4ZDMyY2QwY2RjZDc0NTdlNTllMGU2NzRiNjU5NTkxZGExNjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKK0NsaWNrIEhlcmUKK1Rlc3QgY2FsbGluZyB3aW5kb3cub3Bl
bigpIGluIGEgbmVzdGVkIGNhbGwgdG8gc2V0VGltZW91dCgpLiBBIHBvcHVwIHNob3VsZCBub3Qg
YmUgYWxsb3dlZC4KK1BBU1MgbmV3V2luZG93IGlzIHVuZGVmaW5lZC4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ1MDE2OTE3M2NiM2IyNDk1NjE3OTUxZTQ1MDczZmU5YjUzMGY0NzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM0Lmh0
bWwKQEAgLTAsMCArMSw0MSBAQAorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFy
IG5ld1dpbmRvdzsKKyAgICAgICAgCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZnVuY3Rpb24gY2xpY2tIYW5kbGVyKCkg
eworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBuZXdXaW5kb3cgPSB3
aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mb2N1
cygpOworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiVGVzdCBjYWxsaW5nIHdpbmRvdy5vcGVu
KCkgaW4gYSBuZXN0ZWQgY2FsbCB0byBzZXRUaW1lb3V0KCkuIEEgcG9wdXAgc2hvdWxkIG5vdCBi
ZSBhbGxvd2VkLiIpCisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJuZXdX
aW5kb3ciKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICAgICAgfSwgMCk7CisgICAgICAgICAgICB9LCAzMDApOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBmdW5jdGlvbiBjbGlja0J1dHRvbigpIHsKKyAgICAgICAgICAgIHZhciBidXR0b24g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAgICAgICAgICAgdmFyIGJ1dHRv
blggPSBidXR0b24ub2Zmc2V0TGVmdCArIGJ1dHRvbi5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
ICAgICB2YXIgYnV0dG9uWSA9IGJ1dHRvbi5vZmZzZXRUb3AgKyBidXR0b24ub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b25YLCBidXR0b25ZKTsKKyAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgIAorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJjbGlja0J1dHRvbigpIj4KKyAgICA8YnV0
dG9uIGlkPSJ0ZXN0IiBvbmNsaWNrPSJjbGlja0hhbmRsZXIoKSI+Q2xpY2sgSGVyZTwvYnV0dG9u
PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM1LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMzlmN2M3Njg3YzgwOWJiOGYzNTIwNzhiM2QyNDM3MDEyMjhjNjA1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tp
bmctdGltZXJzNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDbGljayBIZXJlCitUZXN0
IGNhbGxpbmcgd2luZG93Lm9wZW4oKSB3aXRoIGEgMTAwMCBtcyBkZWxheS4gQSBwb3B1cCBzaG91
bGQgYmUgYWxsb3dlZC4KK1BBU1MgbmV3V2luZG93IGlzIG5vbi1udWxsLgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM1Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM1Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWQ4OTM0YjEzOTBhNzI2Nzc4NjBkMTcwNzQ4ODc5NDg0OWMzY2M3ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczUu
aHRtbApAQCAtMCwwICsxLDQyIEBACis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2
YXIgbmV3V2luZG93OworICAgICAgICAKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJsb2NraW5nRW5hYmxl
ZCh0cnVlKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBmdW5jdGlvbiBjbGlja0hhbmRsZXIo
KSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIpOworICAgICAgICAgICAgICAg
IHNlbGYuZm9jdXMoKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVGVzdCBjYWxsaW5nIHdpbmRv
dy5vcGVuKCkgd2l0aCBhIDEwMDAgbXMgZGVsYXkuIEEgcG9wdXAgc2hvdWxkIGJlIGFsbG93ZWQu
IikKKyAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoIm5ld1dpbmRvdyIpOworICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9LCAxMDAwKTsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5s
ZWFwRm9yd2FyZCgxMDAwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24g
Y2xpY2tCdXR0b24oKSB7CisgICAgICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3QiKTsKKyAgICAgICAgICAgIHZhciBidXR0b25YID0gYnV0dG9uLm9mZnNl
dExlZnQgKyBidXR0b24ub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGJ1dHRvblkg
PSBidXR0b24ub2Zmc2V0VG9wICsgYnV0dG9uLm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oYnV0dG9uWCwgYnV0dG9uWSk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0iY2xpY2tCdXR0b24oKSI+CisgICAgPGJ1dHRvbiBpZD0idGVzdCIgb25j
bGljaz0iY2xpY2tIYW5kbGVyKCkiPkNsaWNrIEhlcmU8L2J1dHRvbj4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWI0ZGVjNGJmYjE0N2EyZjY5NmEyMTViZjNiM2RjM2QyZDc5ZjdlMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczYtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQ2xpY2sgSGVyZQorVGVzdCBjYWxsaW5nIHdpbmRvdy5v
cGVuKCkgd2l0aCBhIDEwMDEgbXMgZGVsYXkuIEEgcG9wdXAgc2hvdWxkIG5vdCBiZSBhbGxvd2Vk
LgorUEFTUyBuZXdXaW5kb3cgaXMgdW5kZWZpbmVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM2Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg1MTgz
NzY4MDQ5ZjI3MTk4YzYxMDcyMjljMDcwNzJiYzE5YzdkYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczYuaHRtbApAQCAtMCww
ICsxLDQyIEBACis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgbmV3V2luZG93
OworICAgICAgICAKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2Fu
T3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgfQorICAgIAorICAgICAgICBmdW5jdGlvbiBjbGlja0hhbmRsZXIoKSB7CisgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG5ld1dpbmRvdyA9
IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIpOworICAgICAgICAgICAgICAgIHNlbGYuZm9jdXMo
KTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVGVzdCBjYWxsaW5nIHdpbmRvdy5vcGVuKCkgd2l0
aCBhIDEwMDEgbXMgZGVsYXkuIEEgcG9wdXAgc2hvdWxkIG5vdCBiZSBhbGxvd2VkLiIpCisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIm5ld1dpbmRvdyIpOworCisgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0sIDEwMDEpOworICAgICAgICAgICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5sZWFwRm9y
d2FyZCgxMDAxKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gY2xpY2tC
dXR0b24oKSB7CisgICAgICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRlc3QiKTsKKyAgICAgICAgICAgIHZhciBidXR0b25YID0gYnV0dG9uLm9mZnNldExlZnQg
KyBidXR0b24ub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGJ1dHRvblkgPSBidXR0
b24ub2Zmc2V0VG9wICsgYnV0dG9uLm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oYnV0dG9uWCwgYnV0dG9uWSk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9ICAgICAgICAKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0iY2xpY2tCdXR0b24oKSI+CisgICAgPGJ1dHRvbiBpZD0idGVzdCIgb25jbGljaz0i
Y2xpY2tIYW5kbGVyKCkiPkNsaWNrIEhlcmU8L2J1dHRvbj4KKyAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDk2ZTRjZGZjZTE5ZWExZjY3YjkxNTg0ZmY1NThkNmY2NjI0MWY4
OTEuLmYzOWQ2MWQ0ZjNlNDQxYWM2MWQ5ZWMxM2JkMDFmNzA2ZDA2OTc3ZGQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjM1Niw3ICsy
MzU2LDEyIEBAIGNyYnVnLmNvbS83OTExMCBbIEFuZHJvaWQgTGludXggV2luIF0gZmFzdC9vdmVy
Zmxvdy9pbmZpbml0ZVJlY3Vyc2lvbkd1YXJkLmh0bWwKICMgUmVncmVzc2lvbiBjYXVzZWQgYnkg
cjgzNjI4LgogY3JidWcuY29tLzc5MjQxIGh0dHAvdGVzdHMvbWlzYy9mYXZpY29uLWxvYWRzLXdp
dGgtaWNvbi1sb2FkaW5nLW92ZXJyaWRlLmh0bWwgWyBGYWlsdXJlIF0KIAotY3JidWcuY29tLzc5
ODU3IFsgRGVidWcgXSBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMuaHRtbCBbIEZh
aWx1cmUgUGFzcyBdCitjcmJ1Zy5jb20vNzk4NTcgWyBEZWJ1ZyBdIGZhc3QvZXZlbnRzL3BvcHVw
LWJsb2NraW5nLXRpbWVyczEuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcmJ1Zy5jb20vNzk4NTcg
WyBEZWJ1ZyBdIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczIuaHRtbCBbIEZhaWx1
cmUgUGFzcyBdCitjcmJ1Zy5jb20vNzk4NTcgWyBEZWJ1ZyBdIGZhc3QvZXZlbnRzL3BvcHVwLWJs
b2NraW5nLXRpbWVyczMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcmJ1Zy5jb20vNzk4NTcgWyBE
ZWJ1ZyBdIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczQuaHRtbCBbIEZhaWx1cmUg
UGFzcyBdCitjcmJ1Zy5jb20vNzk4NTcgWyBEZWJ1ZyBdIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2Nr
aW5nLXRpbWVyczUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcmJ1Zy5jb20vNzk4NTcgWyBEZWJ1
ZyBdIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczYuaHRtbCBbIEZhaWx1cmUgUGFz
cyBdCiAKIGNyYnVnLmNvbS83OTg1OSBbIEFuZHJvaWQgTGludXggRGVidWcgXSBmYXN0L2Nzcy9j
cmVhdGVfZWxlbWVudF9hbGlnbi54aHRtbCBbIFBhc3MgVGltZW91dCBdCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWQ3Y2U0ZjNlNmZhYmIxY2FmYzc2
YzQ1YmUyMDRhZWM2MjEwMDYzZi4uNzBmMTdiMmI1ZDExN2E0MTYyZWRkZGMzMzA3YTc4MWI5MjEz
MzFiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0
ODksOSArMTQ4OSw2IEBAIHdlYmtpdC5vcmcvYi84ODIzOCBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFz
dGUtZ2xvYmFsLXNlbGVjdGlvbi5odG1sIFsgU2tpcCBdCiAjIEdyYWRpZW50IGluc3RlYWQgb2Yg
c29saWQgY29sb3IgaW4gdGhlIHJlY3RhbmdsZQogd2Via2l0Lm9yZy9iLzU0MjUxIGZhc3QvY2Fu
dmFzL0RyYXdJbWFnZVNpbmdsZVBpeGVsU3RyZXRjaC5odG1sIFsgRmFpbHVyZSBdCiAKLSMgRmFp
bHMgYWZ0ZXIgcjEyODI3MC4KLXdlYmtpdC5vcmcvYi85NjUxNyBmYXN0L2V2ZW50cy9wb3B1cC1i
bG9ja2luZy10aW1lcnMuaHRtbCBbIEZhaWx1cmUgXQotCiAjIEZhaWxzIGFmdGVyIHIxMjkxNzUu
CiB3ZWJraXQub3JnL2IvOTcyOTYgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGVicmV3LXNlbGVj
dGlvbi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzAwNmU1YWIyODkzYzE4MmMyNWZjMzcxYmRjZjFmYmQy
OTJjNTU0Yi4uZTU1ZThjMDk4MGMzZDdhYTljMzI1NTk5OTkxNDA2MjkzNWY3OWJmMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU4OCw3ICs1ODgsOCBA
QCBCdWcoR1RLKSBlZGl0aW5nL3NlbGVjdGlvbi9oaXQtdGVzdC1vbi10ZXh0LXdpdGgtbGluZS1o
ZWlnaHQuaHRtbCBbIFBhc3MgU2xvdyBdCiBCdWcoR1RLKSBlZGl0aW5nL3NlbGVjdGlvbi9ydGwt
bW92ZS1zZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sIFsgUGFzcyBTbG93IF0KIEJ1ZyhHVEspIGZh
c3QvZXZlbnRzL2RyYWctYW5kLWRyb3AuaHRtbCBbIFBhc3MgU2xvdyBdCiBCdWcoR1RLKSBmYXN0
L2V2ZW50cy9kcm9wem9uZS0wMDEuaHRtbCBbIFBhc3MgU2xvdyBdCi13ZWJraXQub3JnL2IvOTY1
MTcgZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzLmh0bWwgWyBGYWlsdXJlIFNsb3cg
XQorQnVnKEdUSykgZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNS5odG1sIFsgUGFz
cyBTbG93IF0KK0J1ZyhHVEspIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczYuaHRt
bCBbIFBhc3MgU2xvdyBdCiBCdWcoR1RLKSBmYXN0L2Zvcm1zL3NlYXJjaC1kaXNhYmxlZC1yZWFk
b25seS5odG1sIFsgUGFzcyBTbG93IF0KIAogIyBUaGVzZSB0ZXN0cyBleHBvc2UgcG9zc2libGUg
cGVmb3JtYW5jZSBpc3N1ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01
LjAtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGJlZWVlNzJiNjkxODk5MGU2MmM3ZGFlYWVkODM5YTNm
ZDYyNjIyNi4uMDc0OGFlMmE0MWQzOTM4ODQwNzBjYmY2MzYzZDdiMzg4ZTI4NDVhOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wLXdrMi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDkyLDEwICs0OTIsNiBAQCBmYXN0L2V2ZW50cy9kaXNwYXRjaC1tZXNzYWdlLXN0cmluZy1kYXRh
Lmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2Mzk3CiBm
YXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW1lZGlhLWVsZW1lbnRzLmh0bWwKIAotIyBbUXRd
W1dLMl0gUkVHUkVTU0lPTihyMTI4MjcwKTogSXQgbWFkZSBmYXN0L2V2ZW50cy9wb3B1cC1ibG9j
a2luZy10aW1lcnMuaHRtbCBmbGFrZXkKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2NDgwCi1mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMuaHRtbAot
CiAjIFtRdF1bV0syXSBOZXcgZmFzdC9mb3Jtcy9udW1iZXIvbnVtYmVyLXNwaW5idXR0b24tY2xp
Y2staW4taWZyYW1lLmh0bWwgZmFpbHMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2NjM0CiBmYXN0L2Zvcm1zL251bWJlci9udW1iZXItc3BpbmJ1dHRvbi1jbGlj
ay1pbi1pZnJhbWUuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166724</attachid>
            <date>2012-10-02 11:50:43 -0700</date>
            <delta_ts>2012-10-02 13:10:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96480-20121002204955.patch</filename>
            <type>text/plain</type>
            <size>24864</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTg5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTdkMGNhOWNmM2Q1ZjNmMDBjNGRl
NjM4YWZlYzc0NWI5OWQ1MTBkNi4uODI2OTcxNDhkOWE1ZjA4OGZkYWJlNTIxMDMwMzQ2MTVlNTYw
ODc2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEwLTAyICBKb2NoZW4gRWlzaW5nZXIg
IDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwbGl0IHBvcHVwLWJsb2NraW5nLXRp
bWVycy5odG1sIGludG8gaW5kaXZpZHVhbCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBEYW5p
ZWwgQmF0ZXMuCisKKyAgICAgICAgVGhhdCBzaG91bGQgYXZvaWQgZmFpbHVyZXMgZnJvbSB0aGUg
bG9nIG1lc3NhZ2VzIGNvbWluZyBpbiBpbiB0aGUgd3Jvbmcgb3JkZXIuCisKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczEtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMx
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVy
czItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wb3B1cC1ibG9j
a2luZy10aW1lcnMyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJs
b2NraW5nLXRpbWVyczMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9wb3B1cC1ibG9ja2luZy10aW1lcnMzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM1Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczYtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1l
cnM2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQt
NS4wLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEwLTAyICBNYXJjZWxvIExpcmEgIDxt
YXJjZWxvLmxpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIE1pc3NpbmcgZXhwZWN0
ZWQgcmVzdWx0cyBmb3Igcm91bmRlZCBkb3R0ZWQgYm9yZGVycyB0ZXN0cwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4OGY2YTdjOWNmYTcxNzYwM2Qz
MjNhNjA3Njc4YjMyMmYxNDJiM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLUNsaWNrIEhlcmUg
KDYgdGltZXMpCi1UZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSBkaXJlY3RseS4gQSBwb3B1cCBz
aG91bGQgYmUgYWxsb3dlZC4KLVBBU1MgbmV3V2luZG93IGlzIG5vbi1udWxsLgotVGVzdCBjYWxs
aW5nIHdpbmRvdy5vcGVuKCkgd2l0aCBhIDAgbXMgZGVsYXkuIEEgcG9wdXAgc2hvdWxkIGJlIGFs
bG93ZWQuCi1QQVNTIG5ld1dpbmRvdyBpcyBub24tbnVsbC4KLVRlc3QgY2FsbGluZyB3aW5kb3cu
b3BlbigpIGluIGEgMTAwIG1zIGludGVydmFsLiBBIHBvcHVwIHNob3VsZCBvbmx5IGJlIGFsbG93
ZWQgb24gdGhlIGZpcnN0IGV4ZWN1dGlvbiBvZiB0aGUgaW50ZXJ2YWwuCi1QQVNTIG5ld1dpbmRv
dyBpcyBub24tbnVsbC4KLVRlc3QgY2FsbGluZyB3aW5kb3cub3BlbigpIGluIGEgMTAwIG1zIGlu
dGVydmFsLiBBIHBvcHVwIHNob3VsZCBvbmx5IGJlIGFsbG93ZWQgb24gdGhlIGZpcnN0IGV4ZWN1
dGlvbiBvZiB0aGUgaW50ZXJ2YWwuCi1QQVNTIG5ld1dpbmRvdyBpcyB1bmRlZmluZWQuCi1UZXN0
IGNhbGxpbmcgd2luZG93Lm9wZW4oKSBpbiBhIG5lc3RlZCBjYWxsIHRvIHNldFRpbWVvdXQoKS4g
QSBwb3B1cCBzaG91bGQgbm90IGJlIGFsbG93ZWQuCi1QQVNTIG5ld1dpbmRvdyBpcyB1bmRlZmlu
ZWQuCi1UZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSB3aXRoIGEgMTAwMCBtcyBkZWxheS4gQSBw
b3B1cCBzaG91bGQgYmUgYWxsb3dlZC4KLVBBU1MgbmV3V2luZG93IGlzIG5vbi1udWxsLgotVGVz
dCBjYWxsaW5nIHdpbmRvdy5vcGVuKCkgd2l0aCBhIDEwMDEgbXMgZGVsYXkuIEEgcG9wdXAgc2hv
dWxkIG5vdCBiZSBhbGxvd2VkLgotUEFTUyBuZXdXaW5kb3cgaXMgdW5kZWZpbmVkLgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGZiMTc2ODQzZDFlZDZkNzMxMzk4NzU2ZDU1
NDIyMDI1ZGM1NGU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdD4KLSAg
ICAgICAgdmFyIG5ld1dpbmRvdzsKLSAgICAgICAgdmFyIGludGVydmFsSWQ7Ci0gICAgICAgIHZh
ciBmaXJzdEludGVydmFsRXhlY3V0aW9uID0gdHJ1ZTsKLSAgICAgICAgdmFyIGNsaWNrTnVtYmVy
ID0gMDsKLSAgICAgICAgCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7
Ci0gICAgICAgIH0KLSAgICAKLSAgICAgICAgZnVuY3Rpb24gY2xpY2tIYW5kbGVyKCkgewotICAg
ICAgICAgICAgY2xpY2tOdW1iZXIrKzsKLSAgICAgICAgICAgIGlmIChjbGlja051bWJlciA9PSAx
KSB7Ci0gICAgICAgICAgICAgICAgbmV3V2luZG93ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5r
Iik7Ci0gICAgICAgICAgICAgICAgc2VsZi5mb2N1cygpOwotICAgICAgICAgICAgICAgIGRlYnVn
KCJUZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSBkaXJlY3RseS4gQSBwb3B1cCBzaG91bGQgYmUg
YWxsb3dlZC4iKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoIm5ld1dpbmRvdyIp
OwotICAgICAgICAgICAgfSBlbHNlIGlmIChjbGlja051bWJlciA9PSAyKSB7Ci0gICAgICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV3V2lu
ZG93ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIik7Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuZm9jdXMoKTsKLSAgICAgICAgICAgICAgICAgICAgZGVidWcoIlRlc3QgY2FsbGluZyB3aW5k
b3cub3BlbigpIHdpdGggYSAwIG1zIGRlbGF5LiBBIHBvcHVwIHNob3VsZCBiZSBhbGxvd2VkLiIp
Ci0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgibmV3V2luZG93Iik7Ci0gICAg
ICAgICAgICAgICAgfSwgMCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGNsaWNrTnVtYmVyID09
IDMpIHsKLSAgICAgICAgICAgICAgICBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGRlYnVnKCJUZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4o
KSBpbiBhIDEwMCBtcyBpbnRlcnZhbC4gQSBwb3B1cCBzaG91bGQgb25seSBiZSBhbGxvd2VkIG9u
IHRoZSBmaXJzdCBleGVjdXRpb24gb2YgdGhlIGludGVydmFsLiIpOwotICAgICAgICAgICAgICAg
ICAgICBuZXdXaW5kb3cgPSB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5mb2N1cygpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RJbnRl
cnZhbEV4ZWN1dGlvbikgewotICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxs
KCJuZXdXaW5kb3ciKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0SW50ZXJ2YWxFeGVj
dXRpb24gPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJuZXdXaW5kb3ciKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB9LCAxMDApOwotICAgICAgICAgICAgfSBlbHNlIGlmIChj
bGlja051bWJlciA9PSA0KSB7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mb2N1cygpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgZGVidWcoIlRlc3QgY2FsbGluZyB3aW5kb3cub3BlbigpIGluIGEgbmVzdGVkIGNhbGwg
dG8gc2V0VGltZW91dCgpLiBBIHBvcHVwIHNob3VsZCBub3QgYmUgYWxsb3dlZC4iKQotICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIm5ld1dpbmRvdyIpOwotICAgICAg
ICAgICAgICAgICAgICB9LCAwKTsKLSAgICAgICAgICAgICAgICB9LCAzMDApOwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChjbGlja051bWJlciA9PSA1KSB7Ci0gICAgICAgICAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV3V2luZG93ID0gd2luZG93
Lm9wZW4oImFib3V0OmJsYW5rIik7Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuZm9jdXMoKTsK
LSAgICAgICAgICAgICAgICAgICAgZGVidWcoIlRlc3QgY2FsbGluZyB3aW5kb3cub3BlbigpIHdp
dGggYSAxMDAwIG1zIGRlbGF5LiBBIHBvcHVwIHNob3VsZCBiZSBhbGxvd2VkLiIpCi0gICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgibmV3V2luZG93Iik7Ci0gICAgICAgICAgICAg
ICAgfSwgMTAwMCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGNsaWNrTnVtYmVyID09IDYpIHsK
LSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
ICAgICBuZXdXaW5kb3cgPSB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5mb2N1cygpOwotICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiVGVzdCBj
YWxsaW5nIHdpbmRvdy5vcGVuKCkgd2l0aCBhIDEwMDEgbXMgZGVsYXkuIEEgcG9wdXAgc2hvdWxk
IG5vdCBiZSBhbGxvd2VkLiIpCi0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJlVW5kZWZpbmVk
KCJuZXdXaW5kb3ciKTsKLQotICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAg
ICAgICAgICAgICAgICB9LCAxMDAxKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndh
cmQoMTAwMSk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uIGNsaWNrQnV0
dG9uKCkgewotICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0Iik7Ci0gICAgICAgICAgICB2YXIgYnV0dG9uWCA9IGJ1dHRvbi5vZmZzZXRMZWZ0ICsg
YnV0dG9uLm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgICAgIHZhciBidXR0b25ZID0gYnV0dG9u
Lm9mZnNldFRvcCArIGJ1dHRvbi5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
NjsgaSsrKSB7IAotICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhi
dXR0b25YLCBidXR0b25ZKTsKLSAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7Ci0gICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gICAgICAgIAotICAgIDwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJjbGlja0J1dHRvbigpIj4KLSAgICA8YnV0dG9u
IGlkPSJ0ZXN0IiBvbmNsaWNrPSJjbGlja0hhbmRsZXIoKSI+Q2xpY2sgSGVyZSAoNiB0aW1lcyk8
L2J1dHRvbj4KLSAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FlZjA2ZjFiMGJkNmRlYTFkOTY3ZTBlMjYwMDg0ZTU1
NWVjNThhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVw
LWJsb2NraW5nLXRpbWVyczEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQ2xpY2sgSGVy
ZQorVGVzdCBjYWxsaW5nIHdpbmRvdy5vcGVuKCkgZGlyZWN0bHkuIEEgcG9wdXAgc2hvdWxkIGJl
IGFsbG93ZWQuCitQQVNTIG5ld1dpbmRvdyBpcyBub24tbnVsbC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgwODk5NWIyNzQ5Y2QyODdmMzE1YzVhMWNkOGE2ZjdjYzhmMmM3ZWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMxLmh0bWwK
QEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICB2YXIgbmV3V2luZG93OworICAgICAgICAKKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJs
b2NraW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBmdW5jdGlvbiBj
bGlja0hhbmRsZXIoKSB7CisgICAgICAgICAgICBuZXdXaW5kb3cgPSB3aW5kb3cub3BlbigiYWJv
dXQ6YmxhbmsiKTsKKyAgICAgICAgICAgIHNlbGYuZm9jdXMoKTsKKyAgICAgICAgICAgIGRlYnVn
KCJUZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSBkaXJlY3RseS4gQSBwb3B1cCBzaG91bGQgYmUg
YWxsb3dlZC4iKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgibmV3V2luZG93Iik7Cisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9u
IGNsaWNrQnV0dG9uKCkgeworICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgICAgICB2YXIgYnV0dG9uWCA9IGJ1dHRvbi5vZmZz
ZXRMZWZ0ICsgYnV0dG9uLm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBidXR0b25Z
ID0gYnV0dG9uLm9mZnNldFRvcCArIGJ1dHRvbi5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKGJ1dHRvblgsIGJ1dHRvblkpOworICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9ImNsaWNrQnV0dG9uKCkiPgorICAgIDxidXR0b24gaWQ9InRlc3QiIG9u
Y2xpY2s9ImNsaWNrSGFuZGxlcigpIj5DbGljayBIZXJlPC9idXR0b24+CisgICAgPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg0NTU5OWY3Y2UzNjE0ZTQ1ZjIzM2U5OTgyZTM4M2M1MmU5OTc4OGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NsaWNrIEhlcmUKK1Rlc3QgY2FsbGluZyB3aW5kb3cu
b3BlbigpIHdpdGggYSAwIG1zIGRlbGF5LiBBIHBvcHVwIHNob3VsZCBiZSBhbGxvd2VkLgorUEFT
UyBuZXdXaW5kb3cgaXMgbm9uLW51bGwuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzg4MTJjYjI3MzY2
NzhkNzk1YjgwMWU1OTRiOGNmMGQzZGFmODYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMi5odG1sCkBAIC0wLDAgKzEsNDAg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFy
IG5ld1dpbmRvdzsKKyAgICAgICAgCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZnVuY3Rpb24gY2xpY2tIYW5kbGVyKCkg
eworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBu
ZXdXaW5kb3cgPSB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKKyAgICAgICAgICAgICAgICBz
ZWxmLmZvY3VzKCk7CisgICAgICAgICAgICAgICAgZGVidWcoIlRlc3QgY2FsbGluZyB3aW5kb3cu
b3BlbigpIHdpdGggYSAwIG1zIGRlbGF5LiBBIHBvcHVwIHNob3VsZCBiZSBhbGxvd2VkLiIpCisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJuZXdXaW5kb3ciKTsKKyAgICAgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfSwgMCk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIGZ1bmN0aW9uIGNsaWNrQnV0dG9uKCkgeworICAgICAgICAgICAgdmFyIGJ1dHRv
biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgICAgICB2YXIgYnV0
dG9uWCA9IGJ1dHRvbi5vZmZzZXRMZWZ0ICsgYnV0dG9uLm9mZnNldFdpZHRoIC8gMjsKKyAgICAg
ICAgICAgIHZhciBidXR0b25ZID0gYnV0dG9uLm9mZnNldFRvcCArIGJ1dHRvbi5vZmZzZXRIZWln
aHQgLyAyOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1dHRvblgsIGJ1dHRvblkpOworICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgCisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImNsaWNrQnV0dG9uKCkiPgorICAgIDxi
dXR0b24gaWQ9InRlc3QiIG9uY2xpY2s9ImNsaWNrSGFuZGxlcigpIj5DbGljayBIZXJlPC9idXR0
b24+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZiM2IwMGE5NDYwODBlOGM0OWQwMmNhZmUzODlkNDViYTg3MDI3
NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9j
a2luZy10aW1lcnMzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NsaWNrIEhlcmUKK1Rl
c3QgY2FsbGluZyB3aW5kb3cub3BlbigpIGluIGEgMTAwIG1zIGludGVydmFsLiBBIHBvcHVwIHNo
b3VsZCBvbmx5IGJlIGFsbG93ZWQgb24gdGhlIGZpcnN0IGV4ZWN1dGlvbiBvZiB0aGUgaW50ZXJ2
YWwuCitQQVNTIG5ld1dpbmRvdyBpcyBub24tbnVsbC4KK1Rlc3QgY2FsbGluZyB3aW5kb3cub3Bl
bigpIGluIGEgMTAwIG1zIGludGVydmFsLiBBIHBvcHVwIHNob3VsZCBvbmx5IGJlIGFsbG93ZWQg
b24gdGhlIGZpcnN0IGV4ZWN1dGlvbiBvZiB0aGUgaW50ZXJ2YWwuCitQQVNTIG5ld1dpbmRvdyBp
cyB1bmRlZmluZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVw
LWJsb2NraW5nLXRpbWVyczMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJs
b2NraW5nLXRpbWVyczMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWZkNzRjNDNlMjBhYjcwZTEwMDc5ZjY5
NjI2YTkwMzgwN2Y5NzYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMy5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIG5ld1dpbmRvdzsK
KyAgICAgICAgdmFyIGludGVydmFsSWQ7CisgICAgICAgIHZhciBmaXJzdEludGVydmFsRXhlY3V0
aW9uID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZnVuY3Rpb24gY2xpY2tIYW5kbGVyKCkg
eworICAgICAgICAgICAgaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGRlYnVnKCJUZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSBpbiBhIDEwMCBt
cyBpbnRlcnZhbC4gQSBwb3B1cCBzaG91bGQgb25seSBiZSBhbGxvd2VkIG9uIHRoZSBmaXJzdCBl
eGVjdXRpb24gb2YgdGhlIGludGVydmFsLiIpOworICAgICAgICAgICAgICAgIG5ld1dpbmRvdyA9
IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIpOworICAgICAgICAgICAgICAgIHNlbGYuZm9jdXMo
KTsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RJbnRlcnZhbEV4ZWN1dGlvbikgeworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoIm5ld1dpbmRvdyIpOworICAgICAgICAgICAg
ICAgICAgICBmaXJzdEludGVydmFsRXhlY3V0aW9uID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIm5ld1dpbmRv
dyIpOworICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpOworICAg
ICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9LCAxMDApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBj
bGlja0J1dHRvbigpIHsKKyAgICAgICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOworICAgICAgICAgICAgdmFyIGJ1dHRvblggPSBidXR0b24ub2Zmc2V0
TGVmdCArIGJ1dHRvbi5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgYnV0dG9uWSA9
IGJ1dHRvbi5vZmZzZXRUb3AgKyBidXR0b24ub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyhidXR0b25YLCBidXR0b25ZKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJjbGlja0J1dHRvbigpIj4KKyAgICA8YnV0dG9uIGlkPSJ0ZXN0IiBvbmNs
aWNrPSJjbGlja0hhbmRsZXIoKSI+Q2xpY2sgSGVyZTwvYnV0dG9uPgorICAgIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ODMxOGQzMmNkMGNkY2Q3NDU3ZTU5ZTBlNjc0YjY1OTU5MWRhMTYwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitDbGljayBIZXJlCitUZXN0IGNhbGxpbmcgd2luZG93Lm9w
ZW4oKSBpbiBhIG5lc3RlZCBjYWxsIHRvIHNldFRpbWVvdXQoKS4gQSBwb3B1cCBzaG91bGQgbm90
IGJlIGFsbG93ZWQuCitQQVNTIG5ld1dpbmRvdyBpcyB1bmRlZmluZWQuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMmYzMmVlZTU5ZGIyZGNiYzcwZmJlNGJhZmEwMTY1OTRiNTVmOTc1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNC5o
dG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgdmFyIG5ld1dpbmRvdzsKKyAgICAgICAgCisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9w
dXBCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZnVuY3Rp
b24gY2xpY2tIYW5kbGVyKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBuZXdXaW5kb3cgPSB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5mb2N1cygpOworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiVGVzdCBj
YWxsaW5nIHdpbmRvdy5vcGVuKCkgaW4gYSBuZXN0ZWQgY2FsbCB0byBzZXRUaW1lb3V0KCkuIEEg
cG9wdXAgc2hvdWxkIG5vdCBiZSBhbGxvd2VkLiIpCisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVW5kZWZpbmVkKCJuZXdXaW5kb3ciKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9LCAzMDApOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBjbGlja0J1dHRvbigpIHsKKyAgICAg
ICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAg
ICAgICAgICAgdmFyIGJ1dHRvblggPSBidXR0b24ub2Zmc2V0TGVmdCArIGJ1dHRvbi5vZmZzZXRX
aWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgYnV0dG9uWSA9IGJ1dHRvbi5vZmZzZXRUb3AgKyBi
dXR0b24ub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b25YLCBi
dXR0b25ZKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gICAgICAgIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJjbGlja0J1
dHRvbigpIj4KKyAgICA8YnV0dG9uIGlkPSJ0ZXN0IiBvbmNsaWNrPSJjbGlja0hhbmRsZXIoKSI+
Q2xpY2sgSGVyZTwvYnV0dG9uPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGlt
ZXJzNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2lu
Zy10aW1lcnM1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzlmN2M3Njg3YzgwOWJiOGYzNTIw
NzhiM2QyNDM3MDEyMjhjNjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitDbGljayBIZXJlCitUZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSB3aXRoIGEgMTAwMCBtcyBk
ZWxheS4gQSBwb3B1cCBzaG91bGQgYmUgYWxsb3dlZC4KK1BBU1MgbmV3V2luZG93IGlzIG5vbi1u
dWxsLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2lu
Zy10aW1lcnM1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10
aW1lcnM1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDlmMWRjODYxZjk3ODE2YmVkZjRiYmM5YTY0NjhmZThj
NjlmYjExMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVw
LWJsb2NraW5nLXRpbWVyczUuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBuZXdXaW5kb3c7CisgICAgICAg
IAorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93
cygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKHRydWUpOworICAgICAgICB9Cisg
ICAgCisgICAgICAgIGZ1bmN0aW9uIGNsaWNrSGFuZGxlcigpIHsKKyAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgbmV3V2luZG93ID0gd2luZG93Lm9w
ZW4oImFib3V0OmJsYW5rIik7CisgICAgICAgICAgICAgICAgc2VsZi5mb2N1cygpOworICAgICAg
ICAgICAgICAgIGRlYnVnKCJUZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSB3aXRoIGEgMTAwMCBt
cyBkZWxheS4gQSBwb3B1cCBzaG91bGQgYmUgYWxsb3dlZC4iKQorICAgICAgICAgICAgICAgIHNo
b3VsZEJlTm9uTnVsbCgibmV3V2luZG93Iik7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgICAgIH0sIDEwMDApOworCisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMDApOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBjbGlja0J1dHRvbigpIHsKKyAgICAg
ICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAg
ICAgICAgICAgdmFyIGJ1dHRvblggPSBidXR0b24ub2Zmc2V0TGVmdCArIGJ1dHRvbi5vZmZzZXRX
aWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgYnV0dG9uWSA9IGJ1dHRvbi5vZmZzZXRUb3AgKyBi
dXR0b24ub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b25YLCBi
dXR0b25ZKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gICAgICAgIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJjbGlja0J1
dHRvbigpIj4KKyAgICA8YnV0dG9uIGlkPSJ0ZXN0IiBvbmNsaWNrPSJjbGlja0hhbmRsZXIoKSI+
Q2xpY2sgSGVyZTwvYnV0dG9uPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGlt
ZXJzNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2lu
Zy10aW1lcnM2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjRkZWM0YmZiMTQ3YTJmNjk2YTIx
NWJmM2IzZGMzZDJkNzlmN2UzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitDbGljayBIZXJlCitUZXN0IGNhbGxpbmcgd2luZG93Lm9wZW4oKSB3aXRoIGEgMTAwMSBtcyBk
ZWxheS4gQSBwb3B1cCBzaG91bGQgbm90IGJlIGFsbG93ZWQuCitQQVNTIG5ld1dpbmRvdyBpcyB1
bmRlZmluZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJs
b2NraW5nLXRpbWVyczYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2Nr
aW5nLXRpbWVyczYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzJlZTdhOWFjNzBkYzhhNGU0YTNlMTUzZjcx
OGY3ZWY0ZGFlZTUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cG9wdXAtYmxvY2tpbmctdGltZXJzNi5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIG5ld1dpbmRvdzsKKyAg
ICAgICAgCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5X
aW5kb3dzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
IH0KKyAgICAKKyAgICAgICAgZnVuY3Rpb24gY2xpY2tIYW5kbGVyKCkgeworICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBuZXdXaW5kb3cgPSB3aW5k
b3cub3BlbigiYWJvdXQ6YmxhbmsiKTsKKyAgICAgICAgICAgICAgICBzZWxmLmZvY3VzKCk7Cisg
ICAgICAgICAgICAgICAgZGVidWcoIlRlc3QgY2FsbGluZyB3aW5kb3cub3BlbigpIHdpdGggYSAx
MDAxIG1zIGRlbGF5LiBBIHBvcHVwIHNob3VsZCBub3QgYmUgYWxsb3dlZC4iKQorICAgICAgICAg
ICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJuZXdXaW5kb3ciKTsKKworICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICB9LCAxMDAxKTsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQo
MTAwMSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNsaWNrQnV0dG9u
KCkgeworICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0Iik7CisgICAgICAgICAgICB2YXIgYnV0dG9uWCA9IGJ1dHRvbi5vZmZzZXRMZWZ0ICsgYnV0
dG9uLm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBidXR0b25ZID0gYnV0dG9uLm9m
ZnNldFRvcCArIGJ1dHRvbi5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KGJ1dHRvblgsIGJ1dHRvblkpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSAgICAgICAgCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9ImNsaWNrQnV0dG9uKCkiPgorICAgIDxidXR0b24gaWQ9InRlc3QiIG9uY2xpY2s9ImNsaWNr
SGFuZGxlcigpIj5DbGljayBIZXJlPC9idXR0b24+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA0MTZjMWNlOGIxM2IwYWJlZTE3NjY1ZDdiNWUzZWNlM2M1MWNlZjM1Li41
ODA1ZGFiMmE3MmFjYjU5YjM3MTJkMGIyMWY2ZTEwZDczYmY3YmQ4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzNTMsNyArMjM1Mywx
MiBAQCBjcmJ1Zy5jb20vNzkxMTAgWyBBbmRyb2lkIExpbnV4IFdpbiBdIGZhc3Qvb3ZlcmZsb3cv
aW5maW5pdGVSZWN1cnNpb25HdWFyZC5odG1sCiAjIFJlZ3Jlc3Npb24gY2F1c2VkIGJ5IHI4MzYy
OC4KIGNyYnVnLmNvbS83OTI0MSBodHRwL3Rlc3RzL21pc2MvZmF2aWNvbi1sb2Fkcy13aXRoLWlj
b24tbG9hZGluZy1vdmVycmlkZS5odG1sIFsgRmFpbHVyZSBdCiAKLWNyYnVnLmNvbS83OTg1NyBb
IERlYnVnIF0gZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzLmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQorY3JidWcuY29tLzc5ODU3IFsgRGVidWcgXSBmYXN0L2V2ZW50cy9wb3B1cC1ibG9j
a2luZy10aW1lcnMxLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3JidWcuY29tLzc5ODU3IFsgRGVi
dWcgXSBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMyLmh0bWwgWyBGYWlsdXJlIFBh
c3MgXQorY3JidWcuY29tLzc5ODU3IFsgRGVidWcgXSBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2lu
Zy10aW1lcnMzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3JidWcuY29tLzc5ODU3IFsgRGVidWcg
XSBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM0Lmh0bWwgWyBGYWlsdXJlIFBhc3Mg
XQorY3JidWcuY29tLzc5ODU3IFsgRGVidWcgXSBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10
aW1lcnM1Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3JidWcuY29tLzc5ODU3IFsgRGVidWcgXSBm
YXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM2Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQog
CiBjcmJ1Zy5jb20vNzk4NTkgWyBBbmRyb2lkIExpbnV4IERlYnVnIF0gZmFzdC9jc3MvY3JlYXRl
X2VsZW1lbnRfYWxpZ24ueGh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFkN2NlNGYzZTZmYWJiMWNhZmM3NmM0NWJl
MjA0YWVjNjIxMDA2M2YuLjcwZjE3YjJiNWQxMTdhNDE2MmVkZGRjMzMwN2E3ODFiOTIxMzMxYjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDg5LDkg
KzE0ODksNiBAQCB3ZWJraXQub3JnL2IvODgyMzggZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWds
b2JhbC1zZWxlY3Rpb24uaHRtbCBbIFNraXAgXQogIyBHcmFkaWVudCBpbnN0ZWFkIG9mIHNvbGlk
IGNvbG9yIGluIHRoZSByZWN0YW5nbGUKIHdlYmtpdC5vcmcvYi81NDI1MSBmYXN0L2NhbnZhcy9E
cmF3SW1hZ2VTaW5nbGVQaXhlbFN0cmV0Y2guaHRtbCBbIEZhaWx1cmUgXQogCi0jIEZhaWxzIGFm
dGVyIHIxMjgyNzAuCi13ZWJraXQub3JnL2IvOTY1MTcgZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tp
bmctdGltZXJzLmh0bWwgWyBGYWlsdXJlIF0KLQogIyBGYWlscyBhZnRlciByMTI5MTc1Lgogd2Vi
a2l0Lm9yZy9iLzk3Mjk2IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hlYnJldy1zZWxlY3Rpb24u
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGUzYjNkNDdlYmIyM2IzOGQxYTM4NmU4ODViMjhjZGY3YTg1Yjli
ODIuLmM1OTc0YmY3ZWI3NmRlMTczOWRmYmI2Nzc5NzlhZjMxZDc1YzZmNjEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC01NzksNyArNTc5LDggQEAgQnVn
KEdUSykgZWRpdGluZy9zZWxlY3Rpb24vaGl0LXRlc3Qtb24tdGV4dC13aXRoLWxpbmUtaGVpZ2h0
Lmh0bWwgWyBQYXNzIFNsb3cgXQogQnVnKEdUSykgZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1vdmUt
c2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbCBbIFBhc3MgU2xvdyBdCiBCdWcoR1RLKSBmYXN0L2V2
ZW50cy9kcmFnLWFuZC1kcm9wLmh0bWwgWyBQYXNzIFNsb3cgXQogQnVnKEdUSykgZmFzdC9ldmVu
dHMvZHJvcHpvbmUtMDAxLmh0bWwgWyBQYXNzIFNsb3cgXQotd2Via2l0Lm9yZy9iLzk2NTE3IGZh
c3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy5odG1sIFsgRmFpbHVyZSBTbG93IF0KK0J1
ZyhHVEspIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczUuaHRtbCBbIFBhc3MgU2xv
dyBdCitCdWcoR1RLKSBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnM2Lmh0bWwgWyBQ
YXNzIFNsb3cgXQogQnVnKEdUSykgZmFzdC9mb3Jtcy9zZWFyY2gtZGlzYWJsZWQtcmVhZG9ubHku
aHRtbCBbIFBhc3MgU2xvdyBdCiAKICMgVGhlc2UgdGVzdHMgZXhwb3NlIHBvc3NpYmxlIHBlZm9y
bWFuY2UgaXNzdWVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wLXdr
Mi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wLXdrMi9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGI1NTNhYmM4MTljYmYzNDQ3ZWI0NzM3OGUzZGE3YTBmMjlkYjc3
MzYuLmYzZWNiOGM5NmRiMmFiZTQyZDZmMTQ5OTU3NmE5MzkxYmEyYjZhYWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ5Miwx
MCArNDkyLDYgQEAgZmFzdC9ldmVudHMvZGlzcGF0Y2gtbWVzc2FnZS1zdHJpbmctZGF0YS5odG1s
CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjM5NwogZmFzdC9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1tZWRpYS1lbGVtZW50cy5odG1sCiAKLSMgW1F0XVtXSzJd
IFJFR1JFU1NJT04ocjEyODI3MCk6IEl0IG1hZGUgZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmct
dGltZXJzLmh0bWwgZmxha2V5Ci0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NjQ4MAotZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzLmh0bWwKLQogIyBb
UXRdW1dLMl0gTmV3IGZhc3QvZm9ybXMvbnVtYmVyL251bWJlci1zcGluYnV0dG9uLWNsaWNrLWlu
LWlmcmFtZS5odG1sIGZhaWxzCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NjYzNAogZmFzdC9mb3Jtcy9udW1iZXIvbnVtYmVyLXNwaW5idXR0b24tY2xpY2staW4t
aWZyYW1lLmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>