<?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>174672</bug_id>
          
          <creation_ts>2017-07-20 04:48:53 -0700</creation_ts>
          <short_desc>WebDriver: implement page load timeout</short_desc>
          <delta_ts>2017-07-23 22:58:57 -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>WebKit Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>174670</dependson>
          <blocked>166679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1330592</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-20 04:48:53 -0700</bug_when>
    <thetext>https://www.w3.org/TR/webdriver/#dfn-session-page-load-timeout


selenium/webdriver/common/page_load_timeout_tests.py FF
================================================================================== short test summary info ===================================================================================
FAIL selenium/webdriver/common/page_load_timeout_tests.py::testShouldTimeoutOnPageLoadTakingTooLong[WebKitGTK]
FAIL selenium/webdriver/common/page_load_timeout_tests.py::testClickShouldTimeout[WebKitGTK]

========================================================================================== FAILURES ==========================================================================================
____________________________________________________________________ testShouldTimeoutOnPageLoadTakingTooLong[WebKitGTK] _____________________________________________________________________

driver = &lt;selenium.webdriver.webkitgtk.webdriver.WebDriver (session=&quot;6f75f398-cd74-4b81-9f3b-0a72079c3323&quot;)&gt;, pages = &lt;conftest.Pages object at 0x7f65ac738190&gt;

    @pytest.mark.xfail_marionette(
        reason=&apos;https://bugzilla.mozilla.org/show_bug.cgi?id=1309231&apos;)
    @pytest.mark.xfail_phantomjs(
        reason=&apos;PhantomJS does not implement page load timeouts&apos;)
    def testShouldTimeoutOnPageLoadTakingTooLong(driver, pages):
        driver.set_page_load_timeout(0.01)
        with pytest.raises(TimeoutException):
&gt;           pages.load(&quot;simpleTest.html&quot;)
E           Failed: DID NOT RAISE &lt;class &apos;selenium.common.exceptions.TimeoutException&apos;&gt;

selenium/webdriver/common/page_load_timeout_tests.py:30: Failed

_____________________________________________________________________________ testClickShouldTimeout[WebKitGTK] ______________________________________________________________________________

driver = &lt;selenium.webdriver.webkitgtk.webdriver.WebDriver (session=&quot;c0147747-bb31-4599-925f-87f1079cdaf6&quot;)&gt;, pages = &lt;conftest.Pages object at 0x7f65ac952450&gt;

    @pytest.mark.xfail_marionette(
        reason=&apos;https://bugzilla.mozilla.org/show_bug.cgi?id=1309231&apos;)
    @pytest.mark.xfail_phantomjs(
        reason=&apos;PhantomJS does not implement page load timeouts&apos;)
    def testClickShouldTimeout(driver, pages):
        pages.load(&quot;simpleTest.html&quot;)
        driver.set_page_load_timeout(0.01)
        with pytest.raises(TimeoutException):
&gt;           driver.find_element_by_id(&quot;multilinelink&quot;).click()
E           Failed: DID NOT RAISE &lt;class &apos;selenium.common.exceptions.TimeoutException&apos;&gt;

selenium/webdriver/common/page_load_timeout_tests.py:41: Failed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330595</commentid>
    <comment_count>1</comment_count>
      <attachid>315982</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-20 05:02:16 -0700</bug_when>
    <thetext>Created attachment 315982
Patch

Note that this fixes testShouldTimeoutOnPageLoadTakingTooLong but not testClickShouldTimeout. The wait after a click is racy. Right after the click happens in the UI process, the page load hasn&apos;t started yet, so we can&apos;t start the wait there like we do with navigation commands, and when the command returns and thr web driver asks the browser to wait, the load has already happened.  I don&apos;t think it&apos;s possible to solve that, and I don&apos;t think it&apos;s worth it either, since the test case is actually testing a very weird case (very small timeout and very fast load).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330777</commentid>
    <comment_count>2</comment_count>
      <attachid>315982</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-07-20 14:26:04 -0700</bug_when>
    <thetext>Comment on attachment 315982
Patch

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

Nice! I&apos;ll let Brian review. If I remember correctly this could address a number of the failures in the Selenium test suite that expected some timeout.

&gt; Source/WebDriver/ChangeLog:9
&gt; +        commands. Also fix the setTimeouts command that was still using the legacy name of rthe page load timeout,

Typo: &quot;of rthe&quot; =&gt; &quot;for the&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330926</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-20 23:10:06 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #2)
&gt; Comment on attachment 315982 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=315982&amp;action=review
&gt; 
&gt; Nice! I&apos;ll let Brian review. If I remember correctly this could address a
&gt; number of the failures in the Selenium test suite that expected some timeout.

Not really, only the two tests I mentioned before set a page load timeout:

$ git grep set_page_load_timeout
page_load_timeout_tests.py:    driver.set_page_load_timeout(0.01)
page_load_timeout_tests.py:    driver.set_page_load_timeout(0.01)

And the default timeout is so long (300 seconds) that it doesn&apos;t affect any other test.

&gt; &gt; Source/WebDriver/ChangeLog:9
&gt; &gt; +        commands. Also fix the setTimeouts command that was still using the legacy name of rthe page load timeout,
&gt; 
&gt; Typo: &quot;of rthe&quot; =&gt; &quot;for the&quot;

Oops, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330953</commentid>
    <comment_count>4</comment_count>
      <attachid>316083</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-21 05:54:16 -0700</bug_when>
    <thetext>Created attachment 316083
Rebased patch

This should apply now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331008</commentid>
    <comment_count>5</comment_count>
      <attachid>315982</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-21 10:32:31 -0700</bug_when>
    <thetext>Comment on attachment 315982
Patch

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

r=me with a few questions

&gt; Source/WebDriver/ChangeLog:8
&gt; +        Handle timeout errors and pass the pageLoadtimeout to waitForNavigationToComplete and all other navigation

Nit: pageLoadTimeout (or just in English)

&gt; Source/WebKit/ChangeLog:8
&gt; +        Always start a timer when waiting for a navigation to complete. When the timer fired callbacks pending to be

&quot;when the timer fires, pending callbacks for navigations are removed and invoked with a timeout error.&quot;

&gt; Source/WebKit/ChangeLog:11
&gt; +        not provided the default timeout (300 seconds) is used.

Nice. I really like the stateless/explicit arguments to each command approach, as you may have figured out.

&gt; Source/WebKit/UIProcess/Automation/Automation.json:282
&gt; +                { &quot;name&quot;: &quot;pageLoadTimeout&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;The timeout in milliseconds that the navigation is expected to be completed in, otherwise a &lt;code&gt;Timeout&lt;/code&gt; error is returned.&quot; }

It would be okay to use a &quot;type&quot;: &quot;number&quot; here and pass as a double. If we are using int milliseconds elsewhere, then it&apos;s probably better to be consistent though.

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:52
&gt; +static const Seconds defaultPageLoadTimeout = 300_s;

I love these new duration classes, so much easier to use than std::chrono!

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:407
&gt; +    ASSERT(!m_loadTimer.isActive());

I had to think about this change for a minute, but I think it&apos;s okay.

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:431
&gt; +    for (auto frameID : m_pendingNavigationInBrowsingContextCallbacksPerFrame.keys()) {

Now I&apos;m wondering how we could have multiple callbacks at all. Is there a way that one command can enqueue multiple pending navigation callbacks, aside from a programming error like calling this protocol method twice? It seems that the duration of two calls to this method shouldn&apos;t really overlap inside a command&apos;s implementation, and the timer should either be cleared or fire only once at a time. Am I missing something?

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:450
&gt; +    waitForNavigationToCompleteOnPage(*page, optionalPageLoadTimeout ? Seconds::fromMilliseconds(*optionalPageLoadTimeout) : defaultPageLoadTimeout, WTFMove(callback));

Yuck, hopefully I&apos;ll find time to make optional parameters use std::optional in generated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331009</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-21 10:33:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/33456873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331424</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-23 02:25:42 -0700</bug_when>
    <thetext>(In reply to Brian Burg from comment #5)
&gt; Comment on attachment 315982 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=315982&amp;action=review
&gt; 
&gt; r=me with a few questions
&gt; 
&gt; &gt; Source/WebDriver/ChangeLog:8
&gt; &gt; +        Handle timeout errors and pass the pageLoadtimeout to waitForNavigationToComplete and all other navigation
&gt; 
&gt; Nit: pageLoadTimeout (or just in English)

Sure.

&gt; &gt; Source/WebKit/ChangeLog:8
&gt; &gt; +        Always start a timer when waiting for a navigation to complete. When the timer fired callbacks pending to be
&gt; 
&gt; &quot;when the timer fires, pending callbacks for navigations are removed and
&gt; invoked with a timeout error.&quot;

Ok.

&gt; &gt; Source/WebKit/ChangeLog:11
&gt; &gt; +        not provided the default timeout (300 seconds) is used.
&gt; 
&gt; Nice. I really like the stateless/explicit arguments to each command
&gt; approach, as you may have figured out.

:-)

&gt; &gt; Source/WebKit/UIProcess/Automation/Automation.json:282
&gt; &gt; +                { &quot;name&quot;: &quot;pageLoadTimeout&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;The timeout in milliseconds that the navigation is expected to be completed in, otherwise a &lt;code&gt;Timeout&lt;/code&gt; error is returned.&quot; }
&gt; 
&gt; It would be okay to use a &quot;type&quot;: &quot;number&quot; here and pass as a double. If we
&gt; are using int milliseconds elsewhere, then it&apos;s probably better to be
&gt; consistent though.

The spec explicitly says the tiemout must be an integer in the range 0 to 2^64 - 1. We are doing the same for the script timeouts. See https://w3c.github.io/webdriver/webdriver-spec.html#set-timeouts

&gt; &gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:52
&gt; &gt; +static const Seconds defaultPageLoadTimeout = 300_s;
&gt; 
&gt; I love these new duration classes, so much easier to use than std::chrono!
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:407
&gt; &gt; +    ASSERT(!m_loadTimer.isActive());
&gt; 
&gt; I had to think about this change for a minute, but I think it&apos;s okay.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:431
&gt; &gt; +    for (auto frameID : m_pendingNavigationInBrowsingContextCallbacksPerFrame.keys()) {
&gt; 
&gt; Now I&apos;m wondering how we could have multiple callbacks at all. Is there a
&gt; way that one command can enqueue multiple pending navigation callbacks,
&gt; aside from a programming error like calling this protocol method twice? It
&gt; seems that the duration of two calls to this method shouldn&apos;t really overlap
&gt; inside a command&apos;s implementation, and the timer should either be cleared or
&gt; fire only once at a time. Am I missing something?

No, I wondered the same while working on this. That&apos;s also why added the ASSERT to ensure the timer is not active (which would mean another command is still waiting for navigations).

&gt; &gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:450
&gt; &gt; +    waitForNavigationToCompleteOnPage(*page, optionalPageLoadTimeout ? Seconds::fromMilliseconds(*optionalPageLoadTimeout) : defaultPageLoadTimeout, WTFMove(callback));
&gt; 
&gt; Yuck, hopefully I&apos;ll find time to make optional parameters use std::optional
&gt; in generated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331425</commentid>
    <comment_count>8</comment_count>
      <attachid>316225</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-23 02:32:29 -0700</bug_when>
    <thetext>Created attachment 316225
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331544</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-23 22:58:57 -0700</bug_when>
    <thetext>Committed r219794: &lt;http://trac.webkit.org/changeset/219794&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315982</attachid>
            <date>2017-07-20 05:02:16 -0700</date>
            <delta_ts>2017-07-21 10:32:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-page-load-timeout.diff</filename>
            <type>text/plain</type>
            <size>26967</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggOWExY2U3MTkzNWMuLmEwNmIwM2I5MGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDMzIEBACiAyMDE3LTA3LTIwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAorICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBwYWdlIGxv
YWQgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc0NjcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSGFuZGxlIHRpbWVvdXQgZXJyb3JzIGFuZCBwYXNzIHRoZSBwYWdlTG9hZHRpbWVvdXQgdG8g
d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlIGFuZCBhbGwgb3RoZXIgbmF2aWdhdGlvbgorICAg
ICAgICBjb21tYW5kcy4gQWxzbyBmaXggdGhlIHNldFRpbWVvdXRzIGNvbW1hbmQgdGhhdCB3YXMg
c3RpbGwgdXNpbmcgdGhlIGxlZ2FjeSBuYW1lIG9mIHJ0aGUgcGFnZSBsb2FkIHRpbWVvdXQsCisg
ICAgICAgIGluc3RlYWQgb2YgdGhlIG9uZSBpbiB0aGUgc3BlYy4KKworICAgICAgICA4LiBTZXNz
aW9ucworICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNkZm4tc2Vzc2lv
bi1wYWdlLWxvYWQtdGltZW91dAorCisgICAgICAgICogQ29tbWFuZFJlc3VsdC5jcHA6CisgICAg
ICAgIChXZWJEcml2ZXI6OkNvbW1hbmRSZXN1bHQ6OkNvbW1hbmRSZXN1bHQpOgorICAgICAgICAo
V2ViRHJpdmVyOjpDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVzQ29kZSk6CisgICAgICAgIChXZWJE
cml2ZXI6OkNvbW1hbmRSZXN1bHQ6OmVycm9yU3RyaW5nKToKKyAgICAgICAgKiBDb21tYW5kUmVz
dWx0Lmg6CisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OmdvKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6YmFjayk6CisgICAgICAgIChX
ZWJEcml2ZXI6OlNlc3Npb246OmZvcndhcmQpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9u
OjpyZWZyZXNoKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRp
b25Ub0NvbXBsZXRlKToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6c2V0VGltZW91dHMpOgorCisyMDE3LTA3LTIw
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBX
ZWJEcml2ZXI6IHdhaXQgdW50aWwgbmF2aWdhdGlvbiBpcyBjb21wbGV0ZSBiZWZvcmUgcnVubmlu
ZyBuZXcgY29tbWFuZHMgYW5kIGFmdGVyIGEgY2xpY2sKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDY3MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL0NvbW1hbmRSZXN1bHQuY3BwIGIvU291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0
LmNwcAppbmRleCBkZWQxY2M5ODRhNy4uMzc5OGExODEyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9Db21tYW5k
UmVzdWx0LmNwcApAQCAtMTAwLDYgKzEwMCw4IEBAIENvbW1hbmRSZXN1bHQ6OkNvbW1hbmRSZXN1
bHQoUmVmUHRyPEluc3BlY3RvclZhbHVlPiYmIHJlc3VsdCwgc3RkOjpvcHRpb25hbDxFcnJvCiAg
ICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZEVsZW1lbnRTdGF0ZTsK
ICAgICAgICAgZWxzZSBpZiAoZXJyb3JOYW1lID09ICJJbnZhbGlkU2VsZWN0b3IiKQogICAgICAg
ICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRTZWxlY3RvcjsKKyAgICAgICAg
ZWxzZSBpZiAoZXJyb3JOYW1lID09ICJUaW1lb3V0IikKKyAgICAgICAgICAgIG1fZXJyb3JDb2Rl
ID0gRXJyb3JDb2RlOjpUaW1lb3V0OwogCiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTEzMiw2
ICsxMzQsNyBAQCB1bnNpZ25lZCBDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVzQ29kZSgpIGNvbnN0
CiAgICAgY2FzZSBFcnJvckNvZGU6OlVua25vd25Db21tYW5kOgogICAgICAgICByZXR1cm4gNDA0
OwogICAgIGNhc2UgRXJyb3JDb2RlOjpTY3JpcHRUaW1lb3V0OgorICAgIGNhc2UgRXJyb3JDb2Rl
OjpUaW1lb3V0OgogICAgICAgICByZXR1cm4gNDA4OwogICAgIGNhc2UgRXJyb3JDb2RlOjpKYXZh
c2NyaXB0RXJyb3I6CiAgICAgY2FzZSBFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkOgpAQCAt
MTcxLDYgKzE3NCw4IEBAIFN0cmluZyBDb21tYW5kUmVzdWx0OjplcnJvclN0cmluZygpIGNvbnN0
CiAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNlc3Npb24gbm90IGNyZWF0ZWQiKTsKICAg
ICBjYXNlIEVycm9yQ29kZTo6U3RhbGVFbGVtZW50UmVmZXJlbmNlOgogICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpOworICAgIGNhc2UgRXJyb3JD
b2RlOjpUaW1lb3V0OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ0aW1lb3V0Iik7CiAg
ICAgY2FzZSBFcnJvckNvZGU6OlVua25vd25Db21tYW5kOgogICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJ1bmtub3duIGNvbW1hbmQiKTsKICAgICBjYXNlIEVycm9yQ29kZTo6VW5rbm93bkVy
cm9yOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmggYi9Tb3Vy
Y2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaAppbmRleCBmNGEyZjRiMjcxYi4uMjk2ZTRiNzEx
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5oCisrKyBiL1Nv
dXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgU2NyaXB0VGltZW91dCwKICAgICAgICAgU2Vzc2lvbk5vdENyZWF0ZWQsCiAgICAg
ICAgIFN0YWxlRWxlbWVudFJlZmVyZW5jZSwKKyAgICAgICAgVGltZW91dCwKICAgICAgICAgVW5r
bm93bkNvbW1hbmQsCiAgICAgICAgIFVua25vd25FcnJvciwKICAgICAgICAgVW5zdXBwb3J0ZWRP
cGVyYXRpb24sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBjZmJiYmVmZmNlYS4uNjhlMmZkN2U2ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkRyaXZlci9TZXNzaW9uLmNwcApAQCAtMTMyLDYgKzEzMiw4IEBAIHZvaWQgU2Vzc2lvbjo6Z28o
Y29uc3QgU3RyaW5nJiB1cmwsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29t
cGxldGlvCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1ldGVycyA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJh
bCgiaGFuZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CiAgICAgcGFy
YW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidXJsIiksIHVybCk7CisgICAgaWYgKG1f
dGltZW91dHMucGFnZUxvYWQpCisgICAgICAgIHBhcmFtZXRlcnMtPnNldEludGVnZXIoQVNDSUlM
aXRlcmFsKCJwYWdlTG9hZFRpbWVvdXQiKSwgbV90aW1lb3V0cy5wYWdlTG9hZC52YWx1ZSgpLm1p
bGxpc2Vjb25kc0FzPGludD4oKSk7CiAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZChB
U0NJSUxpdGVyYWwoIm5hdmlnYXRlQnJvd3NpbmdDb250ZXh0IiksIFdURk1vdmUocGFyYW1ldGVy
cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVz
cG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvcikgewogICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJl
c3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwpAQCAtMTc5LDYgKzE4MSw4IEBAIHZvaWQgU2Vzc2lv
bjo6YmFjayhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1ldGVycyA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJh
bCgiaGFuZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CisgICAgaWYg
KG1fdGltZW91dHMucGFnZUxvYWQpCisgICAgICAgIHBhcmFtZXRlcnMtPnNldEludGVnZXIoQVND
SUlMaXRlcmFsKCJwYWdlTG9hZFRpbWVvdXQiKSwgbV90aW1lb3V0cy5wYWdlTG9hZC52YWx1ZSgp
Lm1pbGxpc2Vjb25kc0FzPGludD4oKSk7CiAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2Vu
ZChBU0NJSUxpdGVyYWwoImdvQmFja0luQnJvd3NpbmdDb250ZXh0IiksIFdURk1vdmUocGFyYW1l
dGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5k
UmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvcikgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3Zl
KHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwpAQCAtMTk4LDYgKzIwMiw4IEBAIHZvaWQgU2Vz
c2lvbjo6Zm9yd2FyZChGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1ldGVycyA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgiaGFuZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7Cisg
ICAgaWYgKG1fdGltZW91dHMucGFnZUxvYWQpCisgICAgICAgIHBhcmFtZXRlcnMtPnNldEludGVn
ZXIoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFRpbWVvdXQiKSwgbV90aW1lb3V0cy5wYWdlTG9hZC52
YWx1ZSgpLm1pbGxpc2Vjb25kc0FzPGludD4oKSk7CiAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRv
QmFja2VuZChBU0NJSUxpdGVyYWwoImdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0IiksIFdURk1v
dmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0
OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNF
cnJvcikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwpAQCAtMjE3LDYgKzIyMyw4IEBA
IHZvaWQgU2Vzc2lvbjo6cmVmcmVzaChGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1l
dGVycyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3Ry
aW5nKEFTQ0lJTGl0ZXJhbCgiaGFuZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFs
dWUoKSk7CisgICAgaWYgKG1fdGltZW91dHMucGFnZUxvYWQpCisgICAgICAgIHBhcmFtZXRlcnMt
PnNldEludGVnZXIoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFRpbWVvdXQiKSwgbV90aW1lb3V0cy5w
YWdlTG9hZC52YWx1ZSgpLm1pbGxpc2Vjb25kc0FzPGludD4oKSk7CiAgICAgbV9ob3N0LT5zZW5k
Q29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoInJlbG9hZEJyb3dzaW5nQ29udGV4dCIpLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9u
SG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNl
LmlzRXJyb3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKQEAgLTk1Myw2ICs5NjEs
OCBAQCB2b2lkIFNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShGdW5jdGlvbjx2
b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbQogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhB
U0NJSUxpdGVyYWwoImJyb3dzaW5nQ29udGV4dEhhbmRsZSIpLCBtX3RvcGxldmVsQnJvd3NpbmdD
b250ZXh0LnZhbHVlKCkpOwogICAgIGlmIChtX2Jyb3dzaW5nQ29udGV4dCkKICAgICAgICAgcGFy
YW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZnJhbWVIYW5kbGUiKSwgbV9icm93c2lu
Z0NvbnRleHQudmFsdWUoKSk7CisgICAgaWYgKG1fdGltZW91dHMucGFnZUxvYWQpCisgICAgICAg
IHBhcmFtZXRlcnMtPnNldEludGVnZXIoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFRpbWVvdXQiKSwg
bV90aW1lb3V0cy5wYWdlTG9hZC52YWx1ZSgpLm1pbGxpc2Vjb25kc0FzPGludD4oKSk7CiAgICAg
bV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoIndhaXRGb3JOYXZpZ2F0
aW9uVG9Db21wbGV0ZSIpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAg
ICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0g
Q29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNl
L1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCBmODIwNDRkMDMyOS4uZWMxMDEz
Y2I5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAK
KysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtMzgzLDcgKzM4
Myw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6c2V0VGltZW91dHMoUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICAgICAgaWYgKGl0LT5rZXkgPT0g
InNjcmlwdCIpCiAgICAgICAgICAgICB0aW1lb3V0cy5zY3JpcHQgPSBTZWNvbmRzOjpmcm9tTWls
bGlzZWNvbmRzKHRpbWVvdXRNUyk7Ci0gICAgICAgIGVsc2UgaWYgKGl0LT5rZXkgPT0gInBhZ2Ug
bG9hZCIpCisgICAgICAgIGVsc2UgaWYgKGl0LT5rZXkgPT0gInBhZ2VMb2FkIikKICAgICAgICAg
ICAgIHRpbWVvdXRzLnBhZ2VMb2FkID0gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0
TVMpOwogICAgICAgICBlbHNlIGlmIChpdC0+a2V5ID09ICJpbXBsaWNpdCIpCiAgICAgICAgICAg
ICB0aW1lb3V0cy5pbXBsaWNpdCA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dE1T
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNjg5YWQ2MTQ2MDEuLjBkZDljODk5MmUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDMxIEBACiAyMDE3LTA3LTIwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAorICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBwYWdlIGxvYWQgdGltZW91
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0Njcy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWx3YXlz
IHN0YXJ0IGEgdGltZXIgd2hlbiB3YWl0aW5nIGZvciBhIG5hdmlnYXRpb24gdG8gY29tcGxldGUu
IFdoZW4gdGhlIHRpbWVyIGZpcmVkIGNhbGxiYWNrcyBwZW5kaW5nIHRvIGJlCisgICAgICAgIGRp
c3BhdGNoZWQgYXJlIGVtaXR0ZWQgd2l0aCBhIHRpbWVvdXQgZmFpbHVyZS4gSWYgbmF2aWdhdGlv
biBjb21wbGV0ZXMgYmVmb3JlIHRoZSB0aW1lciBpcyBmaXJlZCwgdGhlbiB0aGUgdGltZXIKKyAg
ICAgICAgaXMgc3RvcHBlZC4gQWxsIG5hdmlnYXRpb24gY29tbWFuZHMgbm93IHJlY2VpdmUgdGhl
IHBhZ2UgbG9hZCBzdHJhdGVneSBhbmQgdGltZW91dCBhcyBvcHRpb25hbCBwYXJhbWV0ZXJzLCB3
aGVuCisgICAgICAgIG5vdCBwcm92aWRlZCB0aGUgZGVmYXVsdCB0aW1lb3V0ICgzMDAgc2Vjb25k
cykgaXMgdXNlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24u
anNvbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpXZWJBdXRvbWF0
aW9uU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0
Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9u
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bG9hZFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGVC
cm93c2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
Z29CYWNrSW5Ccm93c2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6Z29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVsb2FkQnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om5hdmlnYXRpb25PY2N1cnJlZEZvckZyYW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgor
CisyMDE3LTA3LTIwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KwogICAgICAgICBXZWIgQXV0b21hdGlvbjogaW1wbGljaXQgbmF2aWdhdGlvbnMgZG9uJ3QgY2F1
c2UgYnJvd3NpbmcgY29udGV4dCBzd2l0Y2gKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NDYzMwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzMzODc3
OTc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlv
bi5qc29uCmluZGV4IDM3ZWE4Nzg3Y2I4Li4wODEzMzY4OTIzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KQEAgLTI3Nyw3ICsy
NzcsOSBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hdmlnYXRlcyBhIGJyb3dzaW5n
IGNvbnRleHQgdG8gYSBzcGVjaWZpZWQgVVJMLiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5n
Q29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3Np
bmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBuYXZpZ2F0ZWQuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBV
UkwgdG8gbG9hZCBpbiB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgVVJM
IHRvIGxvYWQgaW4gdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicGFnZUxvYWRTdHJhdGVneSIsICIkcmVmIjogIlBhZ2VMb2FkU3RyYXRlZ3kiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBhZ2UgbG9hZCBzdHJhdGVneSB0
byB1c2Ugd2hlbiBkZXRlcm1pbmluZyB3aGVuIG5hdmlnYXRpb24gaXMgY29tcGxldGUuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFnZUxvYWRUaW1lb3V0IiwgInR5cGUiOiAiaW50
ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgdGltZW91dCBpbiBt
aWxsaXNlY29uZHMgdGhhdCB0aGUgbmF2aWdhdGlvbiBpcyBleHBlY3RlZCB0byBiZSBjb21wbGV0
ZWQgaW4sIG90aGVyd2lzZSBhIDxjb2RlPlRpbWVvdXQ8L2NvZGU+IGVycm9yIGlzIHJldHVybmVk
LiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJhc3luYyI6IHRydWUKICAgICAgICAg
fSwKQEAgLTI4NSw3ICsyODcsOSBAQAogICAgICAgICAgICAgIm5hbWUiOiAiZ29CYWNrSW5Ccm93
c2luZ0NvbnRleHQiLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hdmlnYXRlcyBhIGJy
b3dzaW5nIGNvbnRleHQgdG8gZ28gYmFjayBvbmUgcGFnZSBpbiBoaXN0b3J5LiIsCiAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIs
ICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFu
ZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBuYXZpZ2F0ZWQuIiB9
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5n
IGNvbnRleHQgdGhhdCBzaG91bGQgYmUgbmF2aWdhdGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInBhZ2VMb2FkU3RyYXRlZ3kiLCAiJHJlZiI6ICJQYWdlTG9hZFN0cmF0ZWd5Iiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBwYWdlIGxvYWQgc3RyYXRlZ3kg
dG8gdXNlIHdoZW4gZGV0ZXJtaW5pbmcgd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbXBsZXRlLiIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhZ2VMb2FkVGltZW91dCIsICJ0eXBlIjogImlu
dGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHRpbWVvdXQgaW4g
bWlsbGlzZWNvbmRzIHRoYXQgdGhlIG5hdmlnYXRpb24gaXMgZXhwZWN0ZWQgdG8gYmUgY29tcGxl
dGVkIGluLCBvdGhlcndpc2UgYSA8Y29kZT5UaW1lb3V0PC9jb2RlPiBlcnJvciBpcyByZXR1cm5l
ZC4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCiAgICAgICAg
IH0sCkBAIC0yOTMsNyArMjk3LDkgQEAKICAgICAgICAgICAgICJuYW1lIjogImdvRm9yd2FyZElu
QnJvd3NpbmdDb250ZXh0IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYXZpZ2F0ZXMg
YSBicm93c2luZyBjb250ZXh0IHRvIGdvdCBmb3J3YXJkIG9uZSBwYWdlIGluIGhpc3RvcnkuIiwK
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjog
IlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmln
YXRlZC4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJy
b3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUg
YnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBuYXZpZ2F0ZWQuIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicGFnZUxvYWRTdHJhdGVneSIsICIkcmVmIjogIlBhZ2VMb2FkU3Ry
YXRlZ3kiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBhZ2UgbG9hZCBz
dHJhdGVneSB0byB1c2Ugd2hlbiBkZXRlcm1pbmluZyB3aGVuIG5hdmlnYXRpb24gaXMgY29tcGxl
dGUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFnZUxvYWRUaW1lb3V0IiwgInR5
cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgdGlt
ZW91dCBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgbmF2aWdhdGlvbiBpcyBleHBlY3RlZCB0byBi
ZSBjb21wbGV0ZWQgaW4sIG90aGVyd2lzZSBhIDxjb2RlPlRpbWVvdXQ8L2NvZGU+IGVycm9yIGlz
IHJldHVybmVkLiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJhc3luYyI6IHRydWUK
ICAgICAgICAgfSwKQEAgLTMwMSw3ICszMDcsOSBAQAogICAgICAgICAgICAgIm5hbWUiOiAicmVs
b2FkQnJvd3NpbmdDb250ZXh0IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZWxvYWRz
IHRoZSBjdXJyZW50IHBhZ2UgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCiAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVm
IjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZv
ciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSByZWxvYWRlZC4iIH0KKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4
dCB0aGF0IHNob3VsZCBiZSByZWxvYWRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJwYWdlTG9hZFN0cmF0ZWd5IiwgIiRyZWYiOiAiUGFnZUxvYWRTdHJhdGVneSIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgcGFnZSBsb2FkIHN0cmF0ZWd5IHRvIHVzZSB3
aGVuIGRldGVybWluaW5nIHdoZW4gbmF2aWdhdGlvbiBpcyBjb21wbGV0ZS4iIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJwYWdlTG9hZFRpbWVvdXQiLCAidHlwZSI6ICJpbnRlZ2VyIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSB0aW1lb3V0IGluIG1pbGxpc2Vj
b25kcyB0aGF0IHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGVjdGVkIHRvIGJlIGNvbXBsZXRlZCBpbiwg
b3RoZXJ3aXNlIGEgPGNvZGU+VGltZW91dDwvY29kZT4gZXJyb3IgaXMgcmV0dXJuZWQuIiB9CiAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQogICAgICAgICB9LApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmNwcAppbmRleCBhOTBlMDQ5OTU4Yy4uYTY0YWMyOTcyNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwCkBAIC00NywxMSArNDcsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3Bl
Y3RvcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKy8vIMKnOC4gU2Vzc2lvbnMKKy8vIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI2Rmbi1zZXNzaW9uLXBhZ2UtbG9hZC10aW1lb3V0
CitzdGF0aWMgY29uc3QgU2Vjb25kcyBkZWZhdWx0UGFnZUxvYWRUaW1lb3V0ID0gMzAwX3M7CisK
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbigpCiAgICAgOiBtX2Ns
aWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6QXV0b21hdGlvblNlc3Npb25DbGllbnQ+KCkpCiAg
ICAgLCBtX2Zyb250ZW5kUm91dGVyKEZyb250ZW5kUm91dGVyOjpjcmVhdGUoKSkKICAgICAsIG1f
YmFja2VuZERpc3BhdGNoZXIoQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShtX2Zyb250ZW5kUm91
dGVyLmNvcHlSZWYoKSkpCiAgICAgLCBtX2RvbWFpbkRpc3BhdGNoZXIoQXV0b21hdGlvbkJhY2tl
bmREaXNwYXRjaGVyOjpjcmVhdGUobV9iYWNrZW5kRGlzcGF0Y2hlciwgdGhpcykpCisgICAgLCBt
X2xvYWRUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
bG9hZFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTM4MSw3ICszODYsOSBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoSW5zcGVjdG9yOjpFcnJv
clN0cmluZyYgZQogICAgIGlmICghcGFnZSkKICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgLy8gRklYTUU6IEltcGxlbWVudCBwYWdlIGxv
YWQgc3RyYXRlZ3kgYW5kIHRpbWVvdXQuCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBwYWdlIGxv
YWQgc3RyYXRlZ3kuCisKKyAgICBTZWNvbmRzIHBhZ2VMb2FkVGltZW91dCA9IG9wdGlvbmFsUGFn
ZUxvYWRUaW1lb3V0ID8gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqb3B0aW9uYWxQYWdlTG9h
ZFRpbWVvdXQpIDogZGVmYXVsdFBhZ2VMb2FkVGltZW91dDsKIAogICAgIGlmIChvcHRpb25hbEZy
YW1lSGFuZGxlICYmICFvcHRpb25hbEZyYW1lSGFuZGxlLT5pc0VtcHR5KCkpIHsKICAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoKm9w
dGlvbmFsRnJhbWVIYW5kbGUpOwpAQCAtMzkwLDc1ICszOTcsOTMgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmIGUKICAgICAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwYWdlLT5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVJRC52YWx1ZSgpKTsKICAgICAgICAgaWYgKCFmcmFtZSkKICAgICAgICAg
ICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwotICAgICAgICB3
YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKCpmcmFtZSwgV1RGTW92ZShjYWxsYmFj
aykpOworICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKCpmcmFtZSwg
cGFnZUxvYWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgfSBlbHNlCi0gICAgICAg
IHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwgV1RGTW92ZShjYWxsYmFj
aykpOworICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIHBh
Z2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi12b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoV2ViUGFnZVByb3h5
JiBwYWdlLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYm
IGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYgcGFnZSwgU2Vjb25kcyB0aW1lb3V0LCBSZWY8
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQog
ewotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdD
b250ZXh0Q2FsbGJhY2tzUGVyUGFnZS50YWtlKHBhZ2UucGFnZUlEKCkpKQotICAgICAgICBjYWxs
YmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoVGltZW91
dCkpOwotCisgICAgQVNTRVJUKCFtX2xvYWRUaW1lci5pc0FjdGl2ZSgpKTsKICAgICBpZiAoIXBh
Z2UucGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygpKSB7CiAgICAgICAgIGNhbGxiYWNrLT5zZW5k
U3VjY2VzcyhJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAorICAgIG1fbG9hZFRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKICAgICBtX3BlbmRp
bmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlLnNldChwYWdlLnBh
Z2VJRCgpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJhbWUoV2ViRnJhbWVQcm94eSYgZnJh
bWUsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYgY2Fs
bGJhY2spCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29t
cGxldGVPbkZyYW1lKFdlYkZyYW1lUHJveHkmIGZyYW1lLCBTZWNvbmRzIHRpbWVvdXQsIFJlZjxJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYgY2FsbGJhY2spCiB7
Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFja3NQZXJGcmFtZS50YWtlKGZyYW1lLmZyYW1lSUQoKSkpCi0gICAgICAgIGNh
bGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShUaW1l
b3V0KSk7Ci0KKyAgICBBU1NFUlQoIW1fbG9hZFRpbWVyLmlzQWN0aXZlKCkpOwogICAgIGlmIChm
cmFtZS5mcmFtZUxvYWRTdGF0ZSgpLnN0YXRlKCkgPT0gRnJhbWVMb2FkU3RhdGU6OlN0YXRlOjpG
aW5pc2hlZCkgewogICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoSW5zcGVjdG9yT2JqZWN0
OjpjcmVhdGUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBtX2xvYWRUaW1lci5z
dGFydE9uZVNob3QodGltZW91dCk7CiAgICAgbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdD
b250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUuc2V0KGZyYW1lLmZyYW1lSUQoKSwgV1RGTW92ZShjYWxs
YmFjaykpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0ZUJyb3dzaW5n
Q29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8TmF2aWdhdGVCcm93c2luZ0NvbnRleHRD
YWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmxvYWRUaW1l
ckZpcmVkKCkKK3sKKyAgICBmb3IgKGF1dG8gZnJhbWVJRCA6IG1fcGVuZGluZ05hdmlnYXRpb25J
bkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLmtleXMoKSkgeworICAgICAgICBhdXRv
IGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tz
UGVyRnJhbWUudGFrZShmcmFtZUlEKTsKKyAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNU
UklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FKFRpbWVvdXQpKTsKKyAgICB9CisgICAgZm9y
IChhdXRvIHBhZ2VJRCA6IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxi
YWNrc1BlclBhZ2Uua2V5cygpKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdO
YXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlLnRha2UocGFnZUlEKTsK
KyAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJP
Ul9OQU1FKFRpbWVvdXQpKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
Om5hdmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
Zyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFn
ZUxvYWRUaW1lb3V0LCBSZWY8TmF2aWdhdGVCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxs
YmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUo
aGFuZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcGFnZSBsb2Fk
IHN0cmF0ZWd5LgorCiAgICAgcGFnZS0+bG9hZFJlcXVlc3QoV2ViQ29yZTo6VVJMKFdlYkNvcmU6
OlVSTCgpLCB1cmwpKTsKLSAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBh
Z2UsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
blBhZ2UoKnBhZ2UsIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0ID8gU2Vjb25kczo6ZnJvbU1pbGxp
c2Vjb25kcygqb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQpIDogZGVmYXVsdFBhZ2VMb2FkVGltZW91
dCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpn
b0JhY2tJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmlu
ZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIFJlZjxHb0JhY2tJbkJyb3dzaW5nQ29udGV4dENhbGxi
YWNrPiYmIGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z29CYWNrSW5Ccm93
c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0
cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmlu
ZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCwgUmVmPEdvQmFja0luQnJvd3Np
bmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdl
ID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAg
ICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHBhZ2UgbG9hZCBzdHJhdGVneS4KKwogICAgIHBhZ2UtPmdvQmFjaygp
OwotICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwgV1RGTW92ZShj
YWxsYmFjaykpOworICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwg
b3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKCpvcHRp
b25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZhdWx0UGFnZUxvYWRUaW1lb3V0LCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmdvRm9yd2FyZEluQnJv
d3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGhhbmRsZSwgUmVmPEdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYg
Y2FsbGJhY2spCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpnb0ZvcndhcmRJbkJyb3dzaW5n
Q29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBoYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5nLCBj
b25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBSZWY8R29Gb3J3YXJkSW5Ccm93c2lu
Z0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2Ug
PSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAorICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0ZWd5LgorCiAgICAgcGFnZS0+Z29Gb3J3YXJk
KCk7Ci0gICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CisgICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdl
LCBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9w
dGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUo
Y2FsbGJhY2spKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVsb2FkQnJvd3Np
bmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGhhbmRsZSwgUmVmPFJlbG9hZEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNr
KQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3Bl
Y3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29u
c3QgU3RyaW5nKiBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCogb3B0
aW9uYWxQYWdlTG9hZFRpbWVvdXQsIFJlZjxSZWxvYWRCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4m
JiBjYWxsYmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JI
YW5kbGUoaGFuZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcGFn
ZSBsb2FkIHN0cmF0ZWd5LgorCiAgICAgcGFnZS0+cmVsb2FkKHsgfSk7Ci0gICAgd2FpdEZvck5h
dmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAg
d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBvcHRpb25hbFBhZ2VMb2Fk
VGltZW91dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1l
b3V0KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAog
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUoY29u
c3QgV2ViRnJhbWVQcm94eSYgZnJhbWUpCkBAIC00NjYsMTEgKzQ5MSwxNSBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JGcmFtZShjb25zdCBXZWJGcmFt
ZVByb3h5JiBmcmFtZQogICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7CiAgICAgICAgIC8v
IE5ldyBwYWdlIGxvYWRlZCwgY2xlYXIgZnJhbWUgaGFuZGxlcyBwcmV2aW91c2x5IGNhY2hlZC4K
ICAgICAgICAgbV9oYW5kbGVXZWJGcmFtZU1hcC5jbGVhcigpOwotICAgICAgICBpZiAoYXV0byBj
YWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1Bl
clBhZ2UudGFrZShmcmFtZS5wYWdlKCktPnBhZ2VJRCgpKSkKKyAgICAgICAgaWYgKGF1dG8gY2Fs
bGJhY2sgPSBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQ
YWdlLnRha2UoZnJhbWUucGFnZSgpLT5wYWdlSUQoKSkpIHsKKyAgICAgICAgICAgIG1fbG9hZFRp
bWVyLnN0b3AoKTsKICAgICAgICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2VzcyhJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpKTsKKyAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChh
dXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJh
Y2tzUGVyRnJhbWUudGFrZShmcmFtZS5mcmFtZUlEKCkpKQorICAgICAgICBpZiAoYXV0byBjYWxs
YmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZy
YW1lLnRha2UoZnJhbWUuZnJhbWVJRCgpKSkgeworICAgICAgICAgICAgbV9sb2FkVGltZXIuc3Rv
cCgpOwogICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKEluc3BlY3Rvck9iamVjdDo6
Y3JlYXRlKCkpOworICAgICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXgg
Y2FjNmNjZDFhNDguLjYyMmM4YTA2ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0xMTEsMTAg
KzExMSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUs
IGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhhbmRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBy
ZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBzaXpl
KSBvdmVycmlkZTsKICAgICB2b2lkIG1vdmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0
b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6
SW5zcGVjdG9yT2JqZWN0JiBwb3NpdGlvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBuYXZpZ2F0ZUJy
b3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5k
bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8TmF2aWdhdGVCcm93c2luZ0NvbnRleHRDYWxsYmFj
az4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnb0JhY2tJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0
b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgUmVmPEdvQmFja0luQnJvd3NpbmdDb250
ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ29Gb3J3YXJkSW5Ccm93c2luZ0Nv
bnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFJlZjxHb0Zvcndh
cmRJbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbG9h
ZEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
UmVmPFJlbG9hZEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKKyAgICB2b2lk
IG5hdmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQ
YWdlTG9hZFN0cmF0ZWd5U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0
LCBSZWY8TmF2aWdhdGVCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBnb0JhY2tJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nKiBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcs
IGNvbnN0IGludCogb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQsIFJlZjxHb0JhY2tJbkJyb3dzaW5n
Q29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdvRm9yd2FyZEluQnJvd3Np
bmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcqIG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZywgY29uc3QgaW50KiBvcHRpb25h
bFBhZ2VMb2FkVGltZW91dCwgUmVmPEdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+
JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUGFnZUxv
YWRTdHJhdGVneVN0cmluZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCwgUmVm
PFJlbG9hZEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHdh
aXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFt
ZUhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNv
bnN0IGludCogb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQsIFJlZjxXYWl0Rm9yTmF2aWdhdGlvblRv
Q29tcGxldGVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBldmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbihJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2lu
Z0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhhbmRsZSwgY29uc3Qg
U3RyaW5nJiBmdW5jdGlvbiwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JBcnJheSYgYXJndW1l
bnRzLCBjb25zdCBib29sKiBvcHRpb25hbEV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQs
IGNvbnN0IGludCogb3B0aW9uYWxDYWxsYmFja1RpbWVvdXQsIFJlZjxJbnNwZWN0b3I6OkF1dG9t
YXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXI6OkV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9u
Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGVyZm9ybU1vdXNlSW50ZXJhY3Rpb24o
SW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNw
ZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcmVxdWVzdGVkUG9zaXRpb24sIGNvbnN0IFN0cmluZyYg
bW91c2VCdXR0b24sIGNvbnN0IFN0cmluZyYgbW91c2VJbnRlcmFjdGlvbiwgY29uc3QgSW5zcGVj
dG9yOjpJbnNwZWN0b3JBcnJheSYga2V5TW9kaWZpZXJzLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6UG9pbnQ+JiB1cGRhdGVkUG9zaXRpb24pIG92ZXJyaWRlOwpAQCAt
MTUzLDggKzE1Myw5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQo
dWludDY0X3QgZnJhbWVJRCk7CiAgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lUHJveHkoY29u
c3QgV2ViRnJhbWVQcm94eSYpOwogCi0gICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxl
dGVPblBhZ2UoV2ViUGFnZVByb3h5JiwgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6
OkNhbGxiYWNrQmFzZT4mJik7Ci0gICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
bkZyYW1lKFdlYkZyYW1lUHJveHkmLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6
Q2FsbGJhY2tCYXNlPiYmKTsKKyAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9u
UGFnZShXZWJQYWdlUHJveHkmLCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmKTsKKyAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21w
bGV0ZU9uRnJhbWUoV2ViRnJhbWVQcm94eSYsIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tl
bmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYpOworICAgIHZvaWQgbG9hZFRpbWVyRmlyZWQo
KTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bk1lc3NhZ2VSZWNlaXZlci5jcHAuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKQEAgLTIyNiw2ICsyMjcsOCBAQCBw
cml2YXRlOgogICAgIHVpbnQ2NF90IG1fbmV4dERlbGV0ZUNvb2tpZUNhbGxiYWNrSUQgeyAxIH07
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tl
bmREaXNwYXRjaGVySGFuZGxlcjo6RGVsZXRlU2luZ2xlQ29va2llQ2FsbGJhY2s+PiBtX2RlbGV0
ZUNvb2tpZUNhbGxiYWNrczsKIAorICAgIFJ1bkxvb3A6OlRpbWVyPFdlYkF1dG9tYXRpb25TZXNz
aW9uPiBtX2xvYWRUaW1lcjsKKwogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIElu
c3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBtX3JlbW90ZUNoYW5uZWwgeyBudWxscHRyIH07CiAj
ZW5kaWYK
</data>
<flag name="review"
          id="336825"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316083</attachid>
            <date>2017-07-21 05:54:16 -0700</date>
            <delta_ts>2017-07-23 02:32:29 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wd-page-load-timeout.diff</filename>
            <type>text/plain</type>
            <size>26823</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggYTJmNjg4NDFhMzcuLjUyZjEzMDQxYzZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA3LTIwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBwYWdlIGxv
YWQgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc0NjcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSGFuZGxlIHRpbWVvdXQgZXJyb3JzIGFuZCBwYXNzIHRoZSBwYWdlTG9hZHRpbWVvdXQgdG8g
d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlIGFuZCBhbGwgb3RoZXIgbmF2aWdhdGlvbgorICAg
ICAgICBjb21tYW5kcy4gQWxzbyBmaXggdGhlIHNldFRpbWVvdXRzIGNvbW1hbmQgdGhhdCB3YXMg
c3RpbGwgdXNpbmcgdGhlIGxlZ2FjeSBuYW1lIG9mIHRoZSBwYWdlIGxvYWQgdGltZW91dCwKKyAg
ICAgICAgaW5zdGVhZCBvZiB0aGUgb25lIGluIHRoZSBzcGVjLgorCisgICAgICAgIDguIFNlc3Np
b25zCisgICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI2Rmbi1zZXNzaW9u
LXBhZ2UtbG9hZC10aW1lb3V0CisKKyAgICAgICAgKiBDb21tYW5kUmVzdWx0LmNwcDoKKyAgICAg
ICAgKFdlYkRyaXZlcjo6Q29tbWFuZFJlc3VsdDo6Q29tbWFuZFJlc3VsdCk6CisgICAgICAgIChX
ZWJEcml2ZXI6OkNvbW1hbmRSZXN1bHQ6Omh0dHBTdGF0dXNDb2RlKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6Q29tbWFuZFJlc3VsdDo6ZXJyb3JTdHJpbmcpOgorICAgICAgICAqIENvbW1hbmRSZXN1
bHQuaDoKKyAgICAgICAgKiBTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lv
bjo6Z28pOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpiYWNrKToKKyAgICAgICAgKFdl
YkRyaXZlcjo6U2Vzc2lvbjo6Zm9yd2FyZCk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246
OnJlZnJlc2gpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlv
blRvQ29tcGxldGUpOgorICAgICAgICAqIFdlYkRyaXZlclNlcnZpY2UuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpzZXRUaW1lb3V0cyk6CisKIDIwMTctMDctMjEg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdl
YkRyaXZlcjogd2FpdCB1bnRpbCBuYXZpZ2F0aW9uIGlzIGNvbXBsZXRlIGJlZm9yZSBydW5uaW5n
IG5ldyBjb21tYW5kcyBhbmQgYWZ0ZXIgYSBjbGljawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRy
aXZlci9Db21tYW5kUmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5j
cHAKaW5kZXggZGVkMWNjOTg0YTcuLjM3OThhMTgxMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
RHJpdmVyL0NvbW1hbmRSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJl
c3VsdC5jcHAKQEAgLTEwMCw2ICsxMDAsOCBAQCBDb21tYW5kUmVzdWx0OjpDb21tYW5kUmVzdWx0
KFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4mJiByZXN1bHQsIHN0ZDo6b3B0aW9uYWw8RXJybwogICAg
ICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRFbGVtZW50U3RhdGU7CiAg
ICAgICAgIGVsc2UgaWYgKGVycm9yTmFtZSA9PSAiSW52YWxpZFNlbGVjdG9yIikKICAgICAgICAg
ICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkU2VsZWN0b3I7CisgICAgICAgIGVs
c2UgaWYgKGVycm9yTmFtZSA9PSAiVGltZW91dCIpCisgICAgICAgICAgICBtX2Vycm9yQ29kZSA9
IEVycm9yQ29kZTo6VGltZW91dDsKIAogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMzIsNiAr
MTM0LDcgQEAgdW5zaWduZWQgQ29tbWFuZFJlc3VsdDo6aHR0cFN0YXR1c0NvZGUoKSBjb25zdAog
ICAgIGNhc2UgRXJyb3JDb2RlOjpVbmtub3duQ29tbWFuZDoKICAgICAgICAgcmV0dXJuIDQwNDsK
ICAgICBjYXNlIEVycm9yQ29kZTo6U2NyaXB0VGltZW91dDoKKyAgICBjYXNlIEVycm9yQ29kZTo6
VGltZW91dDoKICAgICAgICAgcmV0dXJuIDQwODsKICAgICBjYXNlIEVycm9yQ29kZTo6SmF2YXNj
cmlwdEVycm9yOgogICAgIGNhc2UgRXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZDoKQEAgLTE3
MSw2ICsxNzQsOCBAQCBTdHJpbmcgQ29tbWFuZFJlc3VsdDo6ZXJyb3JTdHJpbmcoKSBjb25zdAog
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzZXNzaW9uIG5vdCBjcmVhdGVkIik7CiAgICAg
Y2FzZSBFcnJvckNvZGU6OlN0YWxlRWxlbWVudFJlZmVyZW5jZToKICAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKTsKKyAgICBjYXNlIEVycm9yQ29k
ZTo6VGltZW91dDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidGltZW91dCIpOwogICAg
IGNhc2UgRXJyb3JDb2RlOjpVbmtub3duQ29tbWFuZDoKICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgidW5rbm93biBjb21tYW5kIik7CiAgICAgY2FzZSBFcnJvckNvZGU6OlVua25vd25FcnJv
cjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5oIGIvU291cmNl
L1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmgKaW5kZXggZjRhMmY0YjI3MWIuLjI5NmU0YjcxMTE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaAorKysgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIFNjcmlwdFRpbWVvdXQsCiAgICAgICAgIFNlc3Npb25Ob3RDcmVhdGVkLAogICAgICAg
ICBTdGFsZUVsZW1lbnRSZWZlcmVuY2UsCisgICAgICAgIFRpbWVvdXQsCiAgICAgICAgIFVua25v
d25Db21tYW5kLAogICAgICAgICBVbmtub3duRXJyb3IsCiAgICAgICAgIFVuc3VwcG9ydGVkT3Bl
cmF0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggY2ZiYmJlZmZjZWEuLjY4ZTJmZDdlNmY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJE
cml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTEzMiw2ICsxMzIsOCBAQCB2b2lkIFNlc3Npb246OmdvKGNv
bnN0IFN0cmluZyYgdXJsLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBs
ZXRpbwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRlcnMgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwo
ImhhbmRsZSIpLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgIHBhcmFt
ZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoInVybCIpLCB1cmwpOworICAgIGlmIChtX3Rp
bWVvdXRzLnBhZ2VMb2FkKQorICAgICAgICBwYXJhbWV0ZXJzLT5zZXRJbnRlZ2VyKEFTQ0lJTGl0
ZXJhbCgicGFnZUxvYWRUaW1lb3V0IiksIG1fdGltZW91dHMucGFnZUxvYWQudmFsdWUoKS5taWxs
aXNlY29uZHNBczxpbnQ+KCkpOwogICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoQVND
SUlMaXRlcmFsKCJuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dCIpLCBXVEZNb3ZlKHBhcmFtZXRlcnMp
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3Bv
bnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNw
b25zZS5yZXNwb25zZU9iamVjdCkpKTsKQEAgLTE3OSw2ICsxODEsOCBAQCB2b2lkIFNlc3Npb246
OmJhY2soRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIAogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRlcnMgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwo
ImhhbmRsZSIpLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOworICAgIGlmICht
X3RpbWVvdXRzLnBhZ2VMb2FkKQorICAgICAgICBwYXJhbWV0ZXJzLT5zZXRJbnRlZ2VyKEFTQ0lJ
TGl0ZXJhbCgicGFnZUxvYWRUaW1lb3V0IiksIG1fdGltZW91dHMucGFnZUxvYWQudmFsdWUoKS5t
aWxsaXNlY29uZHNBczxpbnQ+KCkpOwogICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQo
QVNDSUlMaXRlcmFsKCJnb0JhY2tJbkJyb3dzaW5nQ29udGV4dCIpLCBXVEZNb3ZlKHBhcmFtZXRl
cnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJl
c3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShy
ZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKQEAgLTE5OCw2ICsyMDIsOCBAQCB2b2lkIFNlc3Np
b246OmZvcndhcmQoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIAogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRlcnMgPSBJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxp
dGVyYWwoImhhbmRsZSIpLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOworICAg
IGlmIChtX3RpbWVvdXRzLnBhZ2VMb2FkKQorICAgICAgICBwYXJhbWV0ZXJzLT5zZXRJbnRlZ2Vy
KEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRUaW1lb3V0IiksIG1fdGltZW91dHMucGFnZUxvYWQudmFs
dWUoKS5taWxsaXNlY29uZHNBczxpbnQ+KCkpOwogICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0Jh
Y2tlbmQoQVNDSUlMaXRlcmFsKCJnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dCIpLCBXVEZNb3Zl
KHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6
Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJy
b3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
V1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKQEAgLTIxNyw2ICsyMjMsOCBAQCB2
b2lkIFNlc3Npb246OnJlZnJlc2goRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIAogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRl
cnMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmlu
ZyhBU0NJSUxpdGVyYWwoImhhbmRsZSIpLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVl
KCkpOworICAgIGlmIChtX3RpbWVvdXRzLnBhZ2VMb2FkKQorICAgICAgICBwYXJhbWV0ZXJzLT5z
ZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRUaW1lb3V0IiksIG1fdGltZW91dHMucGFn
ZUxvYWQudmFsdWUoKS5taWxsaXNlY29uZHNBczxpbnQ+KCkpOwogICAgIG1faG9zdC0+c2VuZENv
bW1hbmRUb0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJyZWxvYWRCcm93c2luZ0NvbnRleHQiKSwgV1RG
TW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhv
c3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5p
c0Vycm9yKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CkBAIC05NTMsNiArOTYxLDgg
QEAgdm9pZCBTZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoRnVuY3Rpb248dm9p
ZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb20KICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVND
SUlMaXRlcmFsKCJicm93c2luZ0NvbnRleHRIYW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29u
dGV4dC52YWx1ZSgpKTsKICAgICBpZiAobV9icm93c2luZ0NvbnRleHQpCiAgICAgICAgIHBhcmFt
ZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImZyYW1lSGFuZGxlIiksIG1fYnJvd3NpbmdD
b250ZXh0LnZhbHVlKCkpOworICAgIGlmIChtX3RpbWVvdXRzLnBhZ2VMb2FkKQorICAgICAgICBw
YXJhbWV0ZXJzLT5zZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRUaW1lb3V0IiksIG1f
dGltZW91dHMucGFnZUxvYWQudmFsdWUoKS5taWxsaXNlY29uZHNBczxpbnQ+KCkpOwogICAgIG1f
aG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJ3YWl0Rm9yTmF2aWdhdGlv
blRvQ29tcGxldGUiKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAg
ICAgIGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IENv
bW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9X
ZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggZjgyMDQ0ZDAzMjkuLmVjMTAxM2Ni
OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTM4Myw3ICszODMs
NyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnNldFRpbWVvdXRzKFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgICAgIGlmIChpdC0+a2V5ID09ICJz
Y3JpcHQiKQogICAgICAgICAgICAgdGltZW91dHMuc2NyaXB0ID0gU2Vjb25kczo6ZnJvbU1pbGxp
c2Vjb25kcyh0aW1lb3V0TVMpOwotICAgICAgICBlbHNlIGlmIChpdC0+a2V5ID09ICJwYWdlIGxv
YWQiKQorICAgICAgICBlbHNlIGlmIChpdC0+a2V5ID09ICJwYWdlTG9hZCIpCiAgICAgICAgICAg
ICB0aW1lb3V0cy5wYWdlTG9hZCA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dE1T
KTsKICAgICAgICAgZWxzZSBpZiAoaXQtPmtleSA9PSAiaW1wbGljaXQiKQogICAgICAgICAgICAg
dGltZW91dHMuaW1wbGljaXQgPSBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVvdXRNUyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZhOGVlZGMzYTAwLi43MGQ0ODYyMDY1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOSBAQAorMjAxNy0wNy0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1lbnQgcGFnZSBsb2FkIHRpbWVvdXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDY3Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsd2F5cyBz
dGFydCBhIHRpbWVyIHdoZW4gd2FpdGluZyBmb3IgYSBuYXZpZ2F0aW9uIHRvIGNvbXBsZXRlLiBX
aGVuIHRoZSB0aW1lciBmaXJlZCBjYWxsYmFja3MgcGVuZGluZyB0byBiZQorICAgICAgICBkaXNw
YXRjaGVkIGFyZSBlbWl0dGVkIHdpdGggYSB0aW1lb3V0IGZhaWx1cmUuIElmIG5hdmlnYXRpb24g
Y29tcGxldGVzIGJlZm9yZSB0aGUgdGltZXIgaXMgZmlyZWQsIHRoZW4gdGhlIHRpbWVyCisgICAg
ICAgIGlzIHN0b3BwZWQuIEFsbCBuYXZpZ2F0aW9uIGNvbW1hbmRzIG5vdyByZWNlaXZlIHRoZSBw
YWdlIGxvYWQgc3RyYXRlZ3kgYW5kIHRpbWVvdXQgYXMgb3B0aW9uYWwgcGFyYW1ldGVycywgd2hl
bgorICAgICAgICBub3QgcHJvdmlkZWQgdGhlIGRlZmF1bHQgdGltZW91dCAoMzAwIHNlY29uZHMp
IGlzIHVzZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpz
b246CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6V2ViQXV0b21hdGlv
blNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZv
ck5hdmlnYXRpb25Ub0NvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNl
c3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmxvYWRUaW1lckZp
cmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om5hdmlnYXRlQnJv
d3NpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Omdv
QmFja0luQnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNl
c3Npb246OmdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnJlbG9hZEJyb3dzaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JGcmFtZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKwog
MjAxNy0wNy0yMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgV2ViIEF1dG9tYXRpb246IGltcGxpY2l0IG5hdmlnYXRpb25zIGRvbid0IGNhdXNl
IGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IDM3ZWE4Nzg3Y2I4Li4wODEzMzY4OTIz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0
aW9uLmpzb24KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0
aW9uLmpzb24KQEAgLTI3Nyw3ICsyNzcsOSBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
Ik5hdmlnYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgdG8gYSBzcGVjaWZpZWQgVVJMLiIsCiAgICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRs
ZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBuYXZpZ2F0ZWQu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBVUkwgdG8gbG9hZCBpbiB0aGUgYnJvd3NpbmcgY29udGV4dC4i
IH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgVVJMIHRvIGxvYWQgaW4gdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFnZUxvYWRTdHJhdGVneSIsICIkcmVmIjog
IlBhZ2VMb2FkU3RyYXRlZ3kiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhl
IHBhZ2UgbG9hZCBzdHJhdGVneSB0byB1c2Ugd2hlbiBkZXRlcm1pbmluZyB3aGVuIG5hdmlnYXRp
b24gaXMgY29tcGxldGUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFnZUxvYWRU
aW1lb3V0IiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgbmF2aWdhdGlvbiBpcyBl
eHBlY3RlZCB0byBiZSBjb21wbGV0ZWQgaW4sIG90aGVyd2lzZSBhIDxjb2RlPlRpbWVvdXQ8L2Nv
ZGU+IGVycm9yIGlzIHJldHVybmVkLiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJh
c3luYyI6IHRydWUKICAgICAgICAgfSwKQEAgLTI4NSw3ICsyODcsOSBAQAogICAgICAgICAgICAg
Im5hbWUiOiAiZ29CYWNrSW5Ccm93c2luZ0NvbnRleHQiLAogICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIk5hdmlnYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgdG8gZ28gYmFjayBvbmUgcGFnZSBp
biBoaXN0b3J5LiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNo
b3VsZCBiZSBuYXZpZ2F0ZWQuIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUi
LCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhh
bmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgbmF2aWdhdGVkLiIg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhZ2VMb2FkU3RyYXRlZ3kiLCAiJHJlZiI6
ICJQYWdlTG9hZFN0cmF0ZWd5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRo
ZSBwYWdlIGxvYWQgc3RyYXRlZ3kgdG8gdXNlIHdoZW4gZGV0ZXJtaW5pbmcgd2hlbiBuYXZpZ2F0
aW9uIGlzIGNvbXBsZXRlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhZ2VMb2Fk
VGltZW91dCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIG5hdmlnYXRpb24gaXMg
ZXhwZWN0ZWQgdG8gYmUgY29tcGxldGVkIGluLCBvdGhlcndpc2UgYSA8Y29kZT5UaW1lb3V0PC9j
b2RlPiBlcnJvciBpcyByZXR1cm5lZC4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAi
YXN5bmMiOiB0cnVlCiAgICAgICAgIH0sCkBAIC0yOTMsNyArMjk3LDkgQEAKICAgICAgICAgICAg
ICJuYW1lIjogImdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0IiwKICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJOYXZpZ2F0ZXMgYSBicm93c2luZyBjb250ZXh0IHRvIGdvdCBmb3J3YXJkIG9u
ZSBwYWdlIGluIGhpc3RvcnkuIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFu
ZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0
IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRlZC4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6
ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBuYXZp
Z2F0ZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFnZUxvYWRTdHJhdGVneSIs
ICIkcmVmIjogIlBhZ2VMb2FkU3RyYXRlZ3kiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiVGhlIHBhZ2UgbG9hZCBzdHJhdGVneSB0byB1c2Ugd2hlbiBkZXRlcm1pbmluZyB3aGVu
IG5hdmlnYXRpb24gaXMgY29tcGxldGUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
cGFnZUxvYWRUaW1lb3V0IiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgbmF2aWdh
dGlvbiBpcyBleHBlY3RlZCB0byBiZSBjb21wbGV0ZWQgaW4sIG90aGVyd2lzZSBhIDxjb2RlPlRp
bWVvdXQ8L2NvZGU+IGVycm9yIGlzIHJldHVybmVkLiIgfQogICAgICAgICAgICAgXSwKICAgICAg
ICAgICAgICJhc3luYyI6IHRydWUKICAgICAgICAgfSwKQEAgLTMwMSw3ICszMDcsOSBAQAogICAg
ICAgICAgICAgIm5hbWUiOiAicmVsb2FkQnJvd3NpbmdDb250ZXh0IiwKICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJSZWxvYWRzIHRoZSBjdXJyZW50IHBhZ2UgaW4gYSBicm93c2luZyBjb250
ZXh0LiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBi
ZSByZWxvYWRlZC4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVm
IjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZv
ciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSByZWxvYWRlZC4iIH0sCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJwYWdlTG9hZFN0cmF0ZWd5IiwgIiRyZWYiOiAiUGFnZUxv
YWRTdHJhdGVneSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgcGFnZSBs
b2FkIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIGRldGVybWluaW5nIHdoZW4gbmF2aWdhdGlvbiBpcyBj
b21wbGV0ZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYWdlTG9hZFRpbWVvdXQi
LCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRo
ZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGVjdGVk
IHRvIGJlIGNvbXBsZXRlZCBpbiwgb3RoZXJ3aXNlIGEgPGNvZGU+VGltZW91dDwvY29kZT4gZXJy
b3IgaXMgcmV0dXJuZWQuIiB9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImFzeW5jIjog
dHJ1ZQogICAgICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBkOGJiMWFmNWJmZS4u
NThkZTIyYWMxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC00NywxMSArNDcsMTYgQEAg
dXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKy8vIMKn
OC4gU2Vzc2lvbnMKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI2Rmbi1zZXNz
aW9uLXBhZ2UtbG9hZC10aW1lb3V0CitzdGF0aWMgY29uc3QgU2Vjb25kcyBkZWZhdWx0UGFnZUxv
YWRUaW1lb3V0ID0gMzAwX3M7CisKIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbigpCiAgICAgOiBtX2NsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6QXV0b21hdGlv
blNlc3Npb25DbGllbnQ+KCkpCiAgICAgLCBtX2Zyb250ZW5kUm91dGVyKEZyb250ZW5kUm91dGVy
OjpjcmVhdGUoKSkKICAgICAsIG1fYmFja2VuZERpc3BhdGNoZXIoQmFja2VuZERpc3BhdGNoZXI6
OmNyZWF0ZShtX2Zyb250ZW5kUm91dGVyLmNvcHlSZWYoKSkpCiAgICAgLCBtX2RvbWFpbkRpc3Bh
dGNoZXIoQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUobV9iYWNrZW5kRGlzcGF0
Y2hlciwgdGhpcykpCisgICAgLCBtX2xvYWRUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bG9hZFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTM4MSw3ICsz
ODYsOSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29t
cGxldGUoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZQogICAgIGlmICghcGFnZSkKICAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgLy8gRklY
TUU6IEltcGxlbWVudCBwYWdlIGxvYWQgc3RyYXRlZ3kgYW5kIHRpbWVvdXQuCisgICAgLy8gRklY
TUU6IEltcGxlbWVudCBwYWdlIGxvYWQgc3RyYXRlZ3kuCisKKyAgICBTZWNvbmRzIHBhZ2VMb2Fk
VGltZW91dCA9IG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0ID8gU2Vjb25kczo6ZnJvbU1pbGxpc2Vj
b25kcygqb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQpIDogZGVmYXVsdFBhZ2VMb2FkVGltZW91dDsK
IAogICAgIGlmIChvcHRpb25hbEZyYW1lSGFuZGxlICYmICFvcHRpb25hbEZyYW1lSGFuZGxlLT5p
c0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOwpAQCAtMzkwLDc1ICszOTcs
OTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBs
ZXRlKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGUKICAgICAgICAgV2ViRnJhbWVQcm94eSogZnJh
bWUgPSBwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRC52YWx1ZSgpKTsKICAgICAgICAg
aWYgKCFmcmFtZSkKICAgICAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1l
Tm90Rm91bmQpOwotICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKCpm
cmFtZSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29t
cGxldGVPbkZyYW1lKCpmcmFtZSwgcGFnZUxvYWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CiAgICAgfSBlbHNlCi0gICAgICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgq
cGFnZSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29t
cGxldGVPblBhZ2UoKnBhZ2UsIHBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOwog
fQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxl
dGVPblBhZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYgcGFnZSwg
U2Vjb25kcyB0aW1lb3V0LCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJh
Y2tCYXNlPiYmIGNhbGxiYWNrKQogewotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5n
TmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZS50YWtlKHBhZ2UucGFn
ZUlEKCkpKQotICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJ
TkVEX0VSUk9SX05BTUUoVGltZW91dCkpOwotCisgICAgQVNTRVJUKCFtX2xvYWRUaW1lci5pc0Fj
dGl2ZSgpKTsKICAgICBpZiAoIXBhZ2UucGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygpKSB7CiAg
ICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2VzcyhJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fbG9hZFRpbWVyLnN0YXJ0T25lU2hvdCh0
aW1lb3V0KTsKICAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFj
a3NQZXJQYWdlLnNldChwYWdlLnBhZ2VJRCgpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLXZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJh
bWUoV2ViRnJhbWVQcm94eSYgZnJhbWUsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
OjpDYWxsYmFja0Jhc2U+JiYgY2FsbGJhY2spCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3
YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKFdlYkZyYW1lUHJveHkmIGZyYW1lLCBT
ZWNvbmRzIHRpbWVvdXQsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFj
a0Jhc2U+JiYgY2FsbGJhY2spCiB7Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdO
YXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZS50YWtlKGZyYW1lLmZy
YW1lSUQoKSkpCi0gICAgICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURF
RklORURfRVJST1JfTkFNRShUaW1lb3V0KSk7Ci0KKyAgICBBU1NFUlQoIW1fbG9hZFRpbWVyLmlz
QWN0aXZlKCkpOwogICAgIGlmIChmcmFtZS5mcmFtZUxvYWRTdGF0ZSgpLnN0YXRlKCkgPT0gRnJh
bWVMb2FkU3RhdGU6OlN0YXRlOjpGaW5pc2hlZCkgewogICAgICAgICBjYWxsYmFjay0+c2VuZFN1
Y2Nlc3MoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBtX2xvYWRUaW1lci5zdGFydE9uZVNob3QodGltZW91dCk7CiAgICAgbV9wZW5kaW5n
TmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUuc2V0KGZyYW1lLmZy
YW1lSUQoKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uOjpuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJv
clN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8TmF2
aWdhdGVCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OmxvYWRUaW1lckZpcmVkKCkKK3sKKyAgICBmb3IgKGF1dG8gZnJhbWVJRCA6
IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLmtl
eXMoKSkgeworICAgICAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJv
d3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUudGFrZShmcmFtZUlEKTsKKyAgICAgICAgY2Fs
bGJhY2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FKFRpbWVv
dXQpKTsKKyAgICB9CisgICAgZm9yIChhdXRvIHBhZ2VJRCA6IG1fcGVuZGluZ05hdmlnYXRpb25J
bkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2Uua2V5cygpKSB7CisgICAgICAgIGF1dG8g
Y2FsbGJhY2sgPSBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQ
ZXJQYWdlLnRha2UocGFnZUlEKTsKKyAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNUUklO
R19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FKFRpbWVvdXQpKTsKKyAgICB9Cit9CisKK3ZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246Om5hdmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5nLCBj
b25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBSZWY8TmF2aWdhdGVCcm93c2luZ0Nv
bnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3
ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAorICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0ZWd5LgorCiAgICAgcGFnZS0+bG9hZFJlcXVlc3Qo
V2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCB1cmwpKTsKLSAgICB3YWl0Rm9yTmF2aWdhdGlv
blRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB3YWl0Rm9y
TmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0
ID8gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQpIDog
ZGVmYXVsdFBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi12b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpnb0JhY2tJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIFJlZjxHb0JhY2tJ
bkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6Z29CYWNrSW5Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFs
UGFnZUxvYWRTdHJhdGVneVN0cmluZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91
dCwgUmVmPEdvQmFja0luQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAg
ICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7CiAg
ICAgaWYgKCFwYWdlKQogICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dO
b3RGb3VuZCk7CiAKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHBhZ2UgbG9hZCBzdHJhdGVneS4K
KwogICAgIHBhZ2UtPmdvQmFjaygpOwotICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9u
UGFnZSgqcGFnZSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9D
b21wbGV0ZU9uUGFnZSgqcGFnZSwgb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBTZWNvbmRzOjpm
cm9tTWlsbGlzZWNvbmRzKCpvcHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZhdWx0UGFnZUxv
YWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OmdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgUmVmPEdvRm9yd2FyZEluQnJvd3Np
bmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
Ojpnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJv
clN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdl
TG9hZFN0cmF0ZWd5U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBS
ZWY8R29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAg
ICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05v
dEZvdW5kKTsKIAorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0ZWd5Lgor
CiAgICAgcGFnZS0+Z29Gb3J3YXJkKCk7Ci0gICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRl
T25QYWdlKCpwYWdlLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgd2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlT25QYWdlKCpwYWdlLCBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCA/IFNlY29uZHM6
OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6IGRlZmF1bHRQYWdl
TG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6cmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgUmVmPFJlbG9hZEJyb3dzaW5nQ29udGV4
dENhbGxiYWNrPiYmIGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVsb2Fk
QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lT
dHJpbmcsIGNvbnN0IGludCogb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQsIFJlZjxSZWxvYWRCcm93
c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBh
Z2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAg
ICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAorICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0ZWd5LgorCiAgICAgcGFnZS0+cmVsb2Fk
KHsgfSk7Ci0gICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CisgICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpw
YWdlLCBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMo
Km9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQsIFdURk1v
dmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGlv
bk9jY3VycmVkRm9yRnJhbWUoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUpCkBAIC00NjcsMTEg
KzQ5MiwxNSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRG
b3JGcmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZQogICAgICAgICAvLyBOZXcgcGFnZSBs
b2FkZWQsIGNsZWFyIGZyYW1lIGhhbmRsZXMgcHJldmlvdXNseSBjYWNoZWQuCiAgICAgICAgIG1f
aGFuZGxlV2ViRnJhbWVNYXAuY2xlYXIoKTsKICAgICAgICAgbV93ZWJGcmFtZUhhbmRsZU1hcC5j
bGVhcigpOwotICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25J
bkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2UudGFrZShmcmFtZS5wYWdlKCktPnBhZ2VJ
RCgpKSkKKyAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5C
cm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlLnRha2UoZnJhbWUucGFnZSgpLT5wYWdlSUQo
KSkpIHsKKyAgICAgICAgICAgIG1fbG9hZFRpbWVyLnN0b3AoKTsKICAgICAgICAgICAgIGNhbGxi
YWNrLT5zZW5kU3VjY2VzcyhJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKKyAgICAgICAgfQog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdh
dGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUudGFrZShmcmFtZS5mcmFtZUlE
KCkpKQorICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25JbkJy
b3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRha2UoZnJhbWUuZnJhbWVJRCgpKSkgewor
ICAgICAgICAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwogICAgICAgICAgICAgY2FsbGJhY2stPnNl
bmRTdWNjZXNzKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpOworICAgICAgICB9CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggY2FjNmNjZDFhNDguLjYyMmM4YTA2ZWU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5oCkBAIC0xMTEsMTAgKzExMSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
d2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhh
bmRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJ
bnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBzaXplKSBvdmVycmlkZTsKICAgICB2b2lkIG1vdmVXaW5k
b3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBwb3NpdGlvbikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8TmF2
aWdhdGVCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnb0Jh
Y2tJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgUmVmPEdvQmFja0luQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZ29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIFJlZjxHb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYm
KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbG9hZEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgUmVmPFJlbG9hZEJyb3dzaW5nQ29udGV4dENhbGxi
YWNrPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIG5hdmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3Bl
Y3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5nLCBjb25zdCBp
bnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBSZWY8TmF2aWdhdGVCcm93c2luZ0NvbnRleHRD
YWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnb0JhY2tJbkJyb3dzaW5nQ29udGV4dChJ
bnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nKiBvcHRp
b25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCogb3B0aW9uYWxQYWdlTG9hZFRp
bWVvdXQsIFJlZjxHb0JhY2tJbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVn
eVN0cmluZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCwgUmVmPEdvRm9yd2Fy
ZEluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVsb2Fk
QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcqIG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZywgY29uc3QgaW50KiBv
cHRpb25hbFBhZ2VMb2FkVGltZW91dCwgUmVmPFJlbG9hZEJyb3dzaW5nQ29udGV4dENhbGxiYWNr
PiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUs
IGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25h
bFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCogb3B0aW9uYWxQYWdlTG9hZFRpbWVv
dXQsIFJlZjxXYWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihJbnNwZWN0b3I6OkVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyog
b3B0aW9uYWxGcmFtZUhhbmRsZSwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgY29uc3QgSW5zcGVj
dG9yOjpJbnNwZWN0b3JBcnJheSYgYXJndW1lbnRzLCBjb25zdCBib29sKiBvcHRpb25hbEV4cGVj
dHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGNvbnN0IGludCogb3B0aW9uYWxDYWxsYmFja1Rp
bWVvdXQsIFJlZjxJbnNwZWN0b3I6OkF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXI6
OkV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZv
aWQgcGVyZm9ybU1vdXNlSW50ZXJhY3Rpb24oSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcmVxdWVz
dGVkUG9zaXRpb24sIGNvbnN0IFN0cmluZyYgbW91c2VCdXR0b24sIGNvbnN0IFN0cmluZyYgbW91
c2VJbnRlcmFjdGlvbiwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JBcnJheSYga2V5TW9kaWZp
ZXJzLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UG9pbnQ+JiB1cGRh
dGVkUG9zaXRpb24pIG92ZXJyaWRlOwpAQCAtMTUzLDggKzE1Myw5IEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQodWludDY0X3QgZnJhbWVJRCk7CiAgICAgU3RyaW5n
IGhhbmRsZUZvcldlYkZyYW1lUHJveHkoY29uc3QgV2ViRnJhbWVQcm94eSYpOwogCi0gICAgdm9p
ZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoV2ViUGFnZVByb3h5JiwgUmVmPElu
c3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7Ci0gICAgdm9pZCB3
YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKFdlYkZyYW1lUHJveHkmLCBSZWY8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmKTsKKyAgICB2b2lkIHdh
aXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZShXZWJQYWdlUHJveHkmLCBTZWNvbmRzLCBS
ZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmKTsKKyAgICB2
b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJhbWUoV2ViRnJhbWVQcm94eSYsIFNl
Y29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYp
OworICAgIHZvaWQgbG9hZFRpbWVyRmlyZWQoKTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdl
bmVyYXRlZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAuCiAgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVy
cmlkZTsKQEAgLTIyNiw2ICsyMjcsOCBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fbmV4dERl
bGV0ZUNvb2tpZUNhbGxiYWNrSUQgeyAxIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcjo6RGVsZXRlU2lu
Z2xlQ29va2llQ2FsbGJhY2s+PiBtX2RlbGV0ZUNvb2tpZUNhbGxiYWNrczsKIAorICAgIFJ1bkxv
b3A6OlRpbWVyPFdlYkF1dG9tYXRpb25TZXNzaW9uPiBtX2xvYWRUaW1lcjsKKwogI2lmIEVOQUJM
RShSRU1PVEVfSU5TUEVDVE9SKQogICAgIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBtX3Jl
bW90ZUNoYW5uZWwgeyBudWxscHRyIH07CiAjZW5kaWYK
</data>
<flag name="review"
          id="336809"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316225</attachid>
            <date>2017-07-23 02:32:29 -0700</date>
            <delta_ts>2017-07-23 02:32:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wd-page-load-timeout.diff</filename>
            <type>text/plain</type>
            <size>27034</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggYTJmNjg4NDFhMzcuLjEzOGE0YzNkM2VlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA3LTIwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBwYWdlIGxv
YWQgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc0NjcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICBI
YW5kbGUgdGltZW91dCBlcnJvcnMgYW5kIHBhc3MgdGhlIHBhZ2UgbG9hZCB0aW1lb3V0IHRvIHdh
aXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZSBhbmQgYWxsIG90aGVyIG5hdmlnYXRpb24KKyAgICAg
ICAgY29tbWFuZHMuIEFsc28gZml4IHRoZSBzZXRUaW1lb3V0cyBjb21tYW5kIHRoYXQgd2FzIHN0
aWxsIHVzaW5nIHRoZSBsZWdhY3kgbmFtZSBvZiB0aGUgcGFnZSBsb2FkIHRpbWVvdXQsCisgICAg
ICAgIGluc3RlYWQgb2YgdGhlIG9uZSBpbiB0aGUgc3BlYy4KKworICAgICAgICA4LiBTZXNzaW9u
cworICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNkZm4tc2Vzc2lvbi1w
YWdlLWxvYWQtdGltZW91dAorCisgICAgICAgICogQ29tbWFuZFJlc3VsdC5jcHA6CisgICAgICAg
IChXZWJEcml2ZXI6OkNvbW1hbmRSZXN1bHQ6OkNvbW1hbmRSZXN1bHQpOgorICAgICAgICAoV2Vi
RHJpdmVyOjpDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVzQ29kZSk6CisgICAgICAgIChXZWJEcml2
ZXI6OkNvbW1hbmRSZXN1bHQ6OmVycm9yU3RyaW5nKToKKyAgICAgICAgKiBDb21tYW5kUmVzdWx0
Lmg6CisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246
OmdvKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6YmFjayk6CisgICAgICAgIChXZWJE
cml2ZXI6OlNlc3Npb246OmZvcndhcmQpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpy
ZWZyZXNoKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlKToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdl
YkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6c2V0VGltZW91dHMpOgorCiAyMDE3LTA3LTIxICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJE
cml2ZXI6IHdhaXQgdW50aWwgbmF2aWdhdGlvbiBpcyBjb21wbGV0ZSBiZWZvcmUgcnVubmluZyBu
ZXcgY29tbWFuZHMgYW5kIGFmdGVyIGEgY2xpY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2
ZXIvQ29tbWFuZFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuY3Bw
CmluZGV4IGRlZDFjYzk4NGE3Li4zNzk4YTE4MTJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRy
aXZlci9Db21tYW5kUmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1
bHQuY3BwCkBAIC0xMDAsNiArMTAwLDggQEAgQ29tbWFuZFJlc3VsdDo6Q29tbWFuZFJlc3VsdChS
ZWZQdHI8SW5zcGVjdG9yVmFsdWU+JiYgcmVzdWx0LCBzdGQ6Om9wdGlvbmFsPEVycm8KICAgICAg
ICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkRWxlbWVudFN0YXRlOwogICAg
ICAgICBlbHNlIGlmIChlcnJvck5hbWUgPT0gIkludmFsaWRTZWxlY3RvciIpCiAgICAgICAgICAg
ICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZFNlbGVjdG9yOworICAgICAgICBlbHNl
IGlmIChlcnJvck5hbWUgPT0gIlRpbWVvdXQiKQorICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBF
cnJvckNvZGU6OlRpbWVvdXQ7CiAKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTMyLDYgKzEz
NCw3IEBAIHVuc2lnbmVkIENvbW1hbmRSZXN1bHQ6Omh0dHBTdGF0dXNDb2RlKCkgY29uc3QKICAg
ICBjYXNlIEVycm9yQ29kZTo6VW5rbm93bkNvbW1hbmQ6CiAgICAgICAgIHJldHVybiA0MDQ7CiAg
ICAgY2FzZSBFcnJvckNvZGU6OlNjcmlwdFRpbWVvdXQ6CisgICAgY2FzZSBFcnJvckNvZGU6OlRp
bWVvdXQ6CiAgICAgICAgIHJldHVybiA0MDg7CiAgICAgY2FzZSBFcnJvckNvZGU6OkphdmFzY3Jp
cHRFcnJvcjoKICAgICBjYXNlIEVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQ6CkBAIC0xNzEs
NiArMTc0LDggQEAgU3RyaW5nIENvbW1hbmRSZXN1bHQ6OmVycm9yU3RyaW5nKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic2Vzc2lvbiBub3QgY3JlYXRlZCIpOwogICAgIGNh
c2UgRXJyb3JDb2RlOjpTdGFsZUVsZW1lbnRSZWZlcmVuY2U6CiAgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIik7CisgICAgY2FzZSBFcnJvckNvZGU6
OlRpbWVvdXQ6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInRpbWVvdXQiKTsKICAgICBj
YXNlIEVycm9yQ29kZTo6VW5rbm93bkNvbW1hbmQ6CiAgICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoInVua25vd24gY29tbWFuZCIpOwogICAgIGNhc2UgRXJyb3JDb2RlOjpVbmtub3duRXJyb3I6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaCBiL1NvdXJjZS9X
ZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5oCmluZGV4IGY0YTJmNGIyNzFiLi4yOTZlNGI3MTExOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmgKKysrIGIvU291cmNl
L1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAg
ICAgICBTY3JpcHRUaW1lb3V0LAogICAgICAgICBTZXNzaW9uTm90Q3JlYXRlZCwKICAgICAgICAg
U3RhbGVFbGVtZW50UmVmZXJlbmNlLAorICAgICAgICBUaW1lb3V0LAogICAgICAgICBVbmtub3du
Q29tbWFuZCwKICAgICAgICAgVW5rbm93bkVycm9yLAogICAgICAgICBVbnN1cHBvcnRlZE9wZXJh
dGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IGNmYmJiZWZmY2VhLi42OGUyZmQ3ZTZmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb24uY3BwCkBAIC0xMzIsNiArMTMyLDggQEAgdm9pZCBTZXNzaW9uOjpnbyhjb25z
dCBTdHJpbmcmIHVybCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0
aW8KICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwYXJhbWV0ZXJzID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJo
YW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICBwYXJhbWV0
ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ1cmwiKSwgdXJsKTsKKyAgICBpZiAobV90aW1l
b3V0cy5wYWdlTG9hZCkKKyAgICAgICAgcGFyYW1ldGVycy0+c2V0SW50ZWdlcihBU0NJSUxpdGVy
YWwoInBhZ2VMb2FkVGltZW91dCIpLCBtX3RpbWVvdXRzLnBhZ2VMb2FkLnZhbHVlKCkubWlsbGlz
ZWNvbmRzQXM8aW50PigpKTsKICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKEFTQ0lJ
TGl0ZXJhbCgibmF2aWdhdGVCcm93c2luZ0NvbnRleHQiKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25z
ZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9u
c2UucmVzcG9uc2VPYmplY3QpKSk7CkBAIC0xNzksNiArMTgxLDggQEAgdm9pZCBTZXNzaW9uOjpi
YWNrKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwYXJhbWV0ZXJzID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJo
YW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKKyAgICBpZiAobV90
aW1lb3V0cy5wYWdlTG9hZCkKKyAgICAgICAgcGFyYW1ldGVycy0+c2V0SW50ZWdlcihBU0NJSUxp
dGVyYWwoInBhZ2VMb2FkVGltZW91dCIpLCBtX3RpbWVvdXRzLnBhZ2VMb2FkLnZhbHVlKCkubWls
bGlzZWNvbmRzQXM8aW50PigpKTsKICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKEFT
Q0lJTGl0ZXJhbCgiZ29CYWNrSW5Ccm93c2luZ0NvbnRleHQiKSwgV1RGTW92ZShwYXJhbWV0ZXJz
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNw
b25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVz
cG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CkBAIC0xOTgsNiArMjAyLDggQEAgdm9pZCBTZXNzaW9u
Ojpmb3J3YXJkKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiAKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwYXJhbWV0ZXJzID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRl
cmFsKCJoYW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKKyAgICBp
ZiAobV90aW1lb3V0cy5wYWdlTG9hZCkKKyAgICAgICAgcGFyYW1ldGVycy0+c2V0SW50ZWdlcihB
U0NJSUxpdGVyYWwoInBhZ2VMb2FkVGltZW91dCIpLCBtX3RpbWVvdXRzLnBhZ2VMb2FkLnZhbHVl
KCkubWlsbGlzZWNvbmRzQXM8aW50PigpKTsKICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNr
ZW5kKEFTQ0lJTGl0ZXJhbCgiZ29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHQiKSwgV1RGTW92ZShw
YXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNv
bW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9y
KSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdU
Rk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CkBAIC0yMTcsNiArMjIzLDggQEAgdm9p
ZCBTZXNzaW9uOjpyZWZyZXNoKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiAKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwYXJhbWV0ZXJz
ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmco
QVNDSUlMaXRlcmFsKCJoYW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgp
KTsKKyAgICBpZiAobV90aW1lb3V0cy5wYWdlTG9hZCkKKyAgICAgICAgcGFyYW1ldGVycy0+c2V0
SW50ZWdlcihBU0NJSUxpdGVyYWwoInBhZ2VMb2FkVGltZW91dCIpLCBtX3RpbWVvdXRzLnBhZ2VM
b2FkLnZhbHVlKCkubWlsbGlzZWNvbmRzQXM8aW50PigpKTsKICAgICBtX2hvc3QtPnNlbmRDb21t
YW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgicmVsb2FkQnJvd3NpbmdDb250ZXh0IiksIFdURk1v
dmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0
OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNF
cnJvcikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwpAQCAtOTUzLDYgKzk2MSw4IEBA
IHZvaWQgU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKEZ1bmN0aW9uPHZvaWQg
KENvbW1hbmRSZXN1bHQmJik+JiYgY29tCiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRl
eHQudmFsdWUoKSk7CiAgICAgaWYgKG1fYnJvd3NpbmdDb250ZXh0KQogICAgICAgICBwYXJhbWV0
ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJmcmFtZUhhbmRsZSIpLCBtX2Jyb3dzaW5nQ29u
dGV4dC52YWx1ZSgpKTsKKyAgICBpZiAobV90aW1lb3V0cy5wYWdlTG9hZCkKKyAgICAgICAgcGFy
YW1ldGVycy0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInBhZ2VMb2FkVGltZW91dCIpLCBtX3Rp
bWVvdXRzLnBhZ2VMb2FkLnZhbHVlKCkubWlsbGlzZWNvbmRzQXM8aW50PigpKTsKICAgICBtX2hv
c3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgid2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlIiksIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAg
ICBpZiAocmVzcG9uc2UuaXNFcnJvcikgewogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBDb21t
YW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IGY4MjA0NGQwMzI5Li5lYzEwMTNjYjlk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC0zODMsNyArMzgzLDcg
QEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpzZXRUaW1lb3V0cyhSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgICAgICBpZiAoaXQtPmtleSA9PSAic2Ny
aXB0IikKICAgICAgICAgICAgIHRpbWVvdXRzLnNjcmlwdCA9IFNlY29uZHM6OmZyb21NaWxsaXNl
Y29uZHModGltZW91dE1TKTsKLSAgICAgICAgZWxzZSBpZiAoaXQtPmtleSA9PSAicGFnZSBsb2Fk
IikKKyAgICAgICAgZWxzZSBpZiAoaXQtPmtleSA9PSAicGFnZUxvYWQiKQogICAgICAgICAgICAg
dGltZW91dHMucGFnZUxvYWQgPSBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVvdXRNUyk7
CiAgICAgICAgIGVsc2UgaWYgKGl0LT5rZXkgPT0gImltcGxpY2l0IikKICAgICAgICAgICAgIHRp
bWVvdXRzLmltcGxpY2l0ID0gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0TVMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBmYThlZWRjM2EwMC4uYTJiOGQ4YTVhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjkgQEAKKzIwMTctMDctMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFdlYkRyaXZlcjogaW1wbGVtZW50IHBhZ2UgbG9hZCB0aW1lb3V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ2NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgIEFsd2F5cyBzdGFydCBh
IHRpbWVyIHdoZW4gd2FpdGluZyBmb3IgYSBuYXZpZ2F0aW9uIHRvIGNvbXBsZXRlLiBXaGVuIHRo
ZSB0aW1lciBmaXJlcywgcGVuZGluZyBjYWxsYmFja3MgZm9yCisgICAgICAgIG5hdmlnYXRpb25z
IGFyZSByZW1vdmVkIGFuZCBpbnZva2VkIHdpdGggYSB0aW1lb3V0IGVycm9yLiBJZiBuYXZpZ2F0
aW9uIGNvbXBsZXRlcyBiZWZvcmUgdGhlIHRpbWVyIGlzIGZpcmVkLAorICAgICAgICB0aGVuIHRo
ZSB0aW1lciBpcyBzdG9wcGVkLiBBbGwgbmF2aWdhdGlvbiBjb21tYW5kcyBub3cgcmVjZWl2ZSB0
aGUgcGFnZSBsb2FkIHN0cmF0ZWd5IGFuZCB0aW1lb3V0IGFzIG9wdGlvbmFsCisgICAgICAgIHBh
cmFtZXRlcnMsIHdoZW4gbm90IHByb3ZpZGVkIHRoZSBkZWZhdWx0IHRpbWVvdXQgKDMwMCBzZWNv
bmRzKSBpcyB1c2VkLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlv
bi5qc29uOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OldlYkF1dG9t
YXRpb25TZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Ondh
aXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRl
T25GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpsb2FkVGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0
ZUJyb3dzaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9u
Ojpnb0JhY2tJbkJyb3dzaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZWxvYWRCcm93c2luZ0NvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6
CisKIDIwMTctMDctMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFdlYiBBdXRvbWF0aW9uOiBpbXBsaWNpdCBuYXZpZ2F0aW9ucyBkb24ndCBj
YXVzZSBicm93c2luZyBjb250ZXh0IHN3aXRjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbgppbmRleCAzN2VhODc4N2NiOC4uMDgxMzM2
ODkyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0
b21hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0
b21hdGlvbi5qc29uCkBAIC0yNzcsNyArMjc3LDkgQEAKICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJOYXZpZ2F0ZXMgYSBicm93c2luZyBjb250ZXh0IHRvIGEgc3BlY2lmaWVkIFVSTC4iLAog
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJo
YW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAi
VGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgbmF2aWdh
dGVkLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgVVJMIHRvIGxvYWQgaW4gdGhlIGJyb3dzaW5nIGNvbnRl
eHQuIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiVGhlIFVSTCB0byBsb2FkIGluIHRoZSBicm93c2luZyBjb250ZXh0
LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhZ2VMb2FkU3RyYXRlZ3kiLCAiJHJl
ZiI6ICJQYWdlTG9hZFN0cmF0ZWd5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IlRoZSBwYWdlIGxvYWQgc3RyYXRlZ3kgdG8gdXNlIHdoZW4gZGV0ZXJtaW5pbmcgd2hlbiBuYXZp
Z2F0aW9uIGlzIGNvbXBsZXRlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhZ2VM
b2FkVGltZW91dCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIG5hdmlnYXRpb24g
aXMgZXhwZWN0ZWQgdG8gYmUgY29tcGxldGVkIGluLCBvdGhlcndpc2UgYSA8Y29kZT5UaW1lb3V0
PC9jb2RlPiBlcnJvciBpcyByZXR1cm5lZC4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAg
ICAiYXN5bmMiOiB0cnVlCiAgICAgICAgIH0sCkBAIC0yODUsNyArMjg3LDkgQEAKICAgICAgICAg
ICAgICJuYW1lIjogImdvQmFja0luQnJvd3NpbmdDb250ZXh0IiwKICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJOYXZpZ2F0ZXMgYSBicm93c2luZyBjb250ZXh0IHRvIGdvIGJhY2sgb25lIHBh
Z2UgaW4gaGlzdG9yeS4iLAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUi
LCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhh
dCBzaG91bGQgYmUgbmF2aWdhdGVkLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFu
ZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRo
ZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRl
ZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYWdlTG9hZFN0cmF0ZWd5IiwgIiRy
ZWYiOiAiUGFnZUxvYWRTdHJhdGVneSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJUaGUgcGFnZSBsb2FkIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIGRldGVybWluaW5nIHdoZW4gbmF2
aWdhdGlvbiBpcyBjb21wbGV0ZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYWdl
TG9hZFRpbWVvdXQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBuYXZpZ2F0aW9u
IGlzIGV4cGVjdGVkIHRvIGJlIGNvbXBsZXRlZCBpbiwgb3RoZXJ3aXNlIGEgPGNvZGU+VGltZW91
dDwvY29kZT4gZXJyb3IgaXMgcmV0dXJuZWQuIiB9CiAgICAgICAgICAgICBdLAogICAgICAgICAg
ICAgImFzeW5jIjogdHJ1ZQogICAgICAgICB9LApAQCAtMjkzLDcgKzI5Nyw5IEBACiAgICAgICAg
ICAgICAibmFtZSI6ICJnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dCIsCiAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiTmF2aWdhdGVzIGEgYnJvd3NpbmcgY29udGV4dCB0byBnb3QgZm9yd2Fy
ZCBvbmUgcGFnZSBpbiBoaXN0b3J5LiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4
dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29u
dGV4dCB0aGF0IHNob3VsZCBiZSBuYXZpZ2F0ZWQuIiB9CisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUg
bmF2aWdhdGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhZ2VMb2FkU3RyYXRl
Z3kiLCAiJHJlZiI6ICJQYWdlTG9hZFN0cmF0ZWd5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlRoZSBwYWdlIGxvYWQgc3RyYXRlZ3kgdG8gdXNlIHdoZW4gZGV0ZXJtaW5pbmcg
d2hlbiBuYXZpZ2F0aW9uIGlzIGNvbXBsZXRlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInBhZ2VMb2FkVGltZW91dCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIG5h
dmlnYXRpb24gaXMgZXhwZWN0ZWQgdG8gYmUgY29tcGxldGVkIGluLCBvdGhlcndpc2UgYSA8Y29k
ZT5UaW1lb3V0PC9jb2RlPiBlcnJvciBpcyByZXR1cm5lZC4iIH0KICAgICAgICAgICAgIF0sCiAg
ICAgICAgICAgICAiYXN5bmMiOiB0cnVlCiAgICAgICAgIH0sCkBAIC0zMDEsNyArMzA3LDkgQEAK
ICAgICAgICAgICAgICJuYW1lIjogInJlbG9hZEJyb3dzaW5nQ29udGV4dCIsCiAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiUmVsb2FkcyB0aGUgY3VycmVudCBwYWdlIGluIGEgYnJvd3Npbmcg
Y29udGV4dC4iLAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVz
Y3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91
bGQgYmUgcmVsb2FkZWQuIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAi
JHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRs
ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgcmVsb2FkZWQuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFnZUxvYWRTdHJhdGVneSIsICIkcmVmIjogIlBh
Z2VMb2FkU3RyYXRlZ3kiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBh
Z2UgbG9hZCBzdHJhdGVneSB0byB1c2Ugd2hlbiBkZXRlcm1pbmluZyB3aGVuIG5hdmlnYXRpb24g
aXMgY29tcGxldGUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFnZUxvYWRUaW1l
b3V0IiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgbmF2aWdhdGlvbiBpcyBleHBl
Y3RlZCB0byBiZSBjb21wbGV0ZWQgaW4sIG90aGVyd2lzZSBhIDxjb2RlPlRpbWVvdXQ8L2NvZGU+
IGVycm9yIGlzIHJldHVybmVkLiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJhc3lu
YyI6IHRydWUKICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggZDhiYjFhZjVi
ZmUuLjU4ZGUyMmFjMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtNDcsMTEgKzQ3LDE2
IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisv
LyDCpzguIFNlc3Npb25zCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNkZm4t
c2Vzc2lvbi1wYWdlLWxvYWQtdGltZW91dAorc3RhdGljIGNvbnN0IFNlY29uZHMgZGVmYXVsdFBh
Z2VMb2FkVGltZW91dCA9IDMwMF9zOworCiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6V2ViQXV0b21h
dGlvblNlc3Npb24oKQogICAgIDogbV9jbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkF1dG9t
YXRpb25TZXNzaW9uQ2xpZW50PigpKQogICAgICwgbV9mcm9udGVuZFJvdXRlcihGcm9udGVuZFJv
dXRlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2JhY2tlbmREaXNwYXRjaGVyKEJhY2tlbmREaXNwYXRj
aGVyOjpjcmVhdGUobV9mcm9udGVuZFJvdXRlci5jb3B5UmVmKCkpKQogICAgICwgbV9kb21haW5E
aXNwYXRjaGVyKEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKG1fYmFja2VuZERp
c3BhdGNoZXIsIHRoaXMpKQorICAgICwgbV9sb2FkVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlz
LCAmV2ViQXV0b21hdGlvblNlc3Npb246OmxvYWRUaW1lckZpcmVkKQogewogfQogCkBAIC0zODEs
NyArMzg2LDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGUKICAgICBpZiAoIXBhZ2UpCiAgICAg
ICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0ZWd5IGFuZCB0aW1lb3V0LgorICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0ZWd5LgorCisgICAgU2Vjb25kcyBwYWdl
TG9hZFRpbWVvdXQgPSBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCA/IFNlY29uZHM6OmZyb21NaWxs
aXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVv
dXQ7CiAKICAgICBpZiAob3B0aW9uYWxGcmFtZUhhbmRsZSAmJiAhb3B0aW9uYWxGcmFtZUhhbmRs
ZS0+aXNFbXB0eSgpKSB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQg
PSB3ZWJGcmFtZUlERm9ySGFuZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKQEAgLTM5MCw3NSAr
Mzk3LDkzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9D
b21wbGV0ZShJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlCiAgICAgICAgIFdlYkZyYW1lUHJveHkq
IGZyYW1lID0gcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQudmFsdWUoKSk7CiAgICAg
ICAgIGlmICghZnJhbWUpCiAgICAgICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihG
cmFtZU5vdEZvdW5kKTsKLSAgICAgICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25GcmFt
ZSgqZnJhbWUsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgd2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlT25GcmFtZSgqZnJhbWUsIHBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFj
aykpOwogICAgIH0gZWxzZQotICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBh
Z2UoKnBhZ2UsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgd2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlT25QYWdlKCpwYWdlLCBwYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2sp
KTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZShXZWJQYWdlUHJveHkmIHBh
Z2UsIFNlY29uZHMgdGltZW91dCwgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4mJiBjYWxsYmFjaykKIHsKLSAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVu
ZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2UudGFrZShwYWdl
LnBhZ2VJRCgpKSkKLSAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJF
REVGSU5FRF9FUlJPUl9OQU1FKFRpbWVvdXQpKTsKLQorICAgIEFTU0VSVCghbV9sb2FkVGltZXIu
aXNBY3RpdmUoKSk7CiAgICAgaWYgKCFwYWdlLnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmcoKSkg
ewogICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBtX2xvYWRUaW1lci5zdGFydE9uZVNo
b3QodGltZW91dCk7CiAgICAgbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2Fs
bGJhY2tzUGVyUGFnZS5zZXQocGFnZS5wYWdlSUQoKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQog
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
bkZyYW1lKFdlYkZyYW1lUHJveHkmIGZyYW1lLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiBmcmFt
ZSwgU2Vjb25kcyB0aW1lb3V0LCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPiYmIGNhbGxiYWNrKQogewotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5k
aW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUudGFrZShmcmFt
ZS5mcmFtZUlEKCkpKQotICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9Q
UkVERUZJTkVEX0VSUk9SX05BTUUoVGltZW91dCkpOwotCisgICAgQVNTRVJUKCFtX2xvYWRUaW1l
ci5pc0FjdGl2ZSgpKTsKICAgICBpZiAoZnJhbWUuZnJhbWVMb2FkU3RhdGUoKS5zdGF0ZSgpID09
IEZyYW1lTG9hZFN0YXRlOjpTdGF0ZTo6RmluaXNoZWQpIHsKICAgICAgICAgY2FsbGJhY2stPnNl
bmRTdWNjZXNzKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgbV9sb2FkVGltZXIuc3RhcnRPbmVTaG90KHRpbWVvdXQpOwogICAgIG1fcGVu
ZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnNldChmcmFt
ZS5mcmFtZUlEKCksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6bmF2aWdhdGVCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcmIHVybCwgUmVm
PE5hdmlnYXRlQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCit2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpsb2FkVGltZXJGaXJlZCgpCit7CisgICAgZm9yIChhdXRvIGZyYW1l
SUQgOiBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFt
ZS5rZXlzKCkpIHsKKyAgICAgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25J
bkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRha2UoZnJhbWVJRCk7CisgICAgICAg
IGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShU
aW1lb3V0KSk7CisgICAgfQorICAgIGZvciAoYXV0byBwYWdlSUQgOiBtX3BlbmRpbmdOYXZpZ2F0
aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlLmtleXMoKSkgeworICAgICAgICBh
dXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJh
Y2tzUGVyUGFnZS50YWtlKHBhZ2VJRCk7CisgICAgICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShT
VFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShUaW1lb3V0KSk7CisgICAgfQorfQorCit2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0
b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmlu
ZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCwgUmVmPE5hdmlnYXRlQnJvd3Np
bmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdl
ID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAg
ICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHBhZ2UgbG9hZCBzdHJhdGVneS4KKwogICAgIHBhZ2UtPmxvYWRSZXF1
ZXN0KFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgdXJsKSk7Ci0gICAgd2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgd2Fp
dEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBvcHRpb25hbFBhZ2VMb2FkVGlt
ZW91dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0
KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z29CYWNrSW5Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBSZWY8R29C
YWNrSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OmdvQmFja0luQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRp
b25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCogb3B0aW9uYWxQYWdlTG9hZFRp
bWVvdXQsIFJlZjxHb0JhY2tJbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQog
ewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUp
OwogICAgIGlmICghcGFnZSkKICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2lu
ZG93Tm90Rm91bmQpOwogCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBwYWdlIGxvYWQgc3RyYXRl
Z3kuCisKICAgICBwYWdlLT5nb0JhY2soKTsKLSAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxl
dGVPblBhZ2UoKnBhZ2UsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB3YWl0Rm9yTmF2aWdhdGlv
blRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0ID8gU2Vjb25k
czo6ZnJvbU1pbGxpc2Vjb25kcygqb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQpIDogZGVmYXVsdFBh
Z2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi12b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIFJlZjxHb0ZvcndhcmRJbkJy
b3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6Z29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFs
UGFnZUxvYWRTdHJhdGVneVN0cmluZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91
dCwgUmVmPEdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7
CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5k
b3dOb3RGb3VuZCk7CiAKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHBhZ2UgbG9hZCBzdHJhdGVn
eS4KKwogICAgIHBhZ2UtPmdvRm9yd2FyZCgpOwotICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21w
bGV0ZU9uUGFnZSgqcGFnZSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHdhaXRGb3JOYXZpZ2F0
aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwgb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBTZWNv
bmRzOjpmcm9tTWlsbGlzZWNvbmRzKCpvcHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZhdWx0
UGFnZUxvYWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OnJlbG9hZEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIFJlZjxSZWxvYWRCcm93c2luZ0Nv
bnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJl
bG9hZEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0
ZWd5U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBSZWY8UmVsb2Fk
QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAgICAgV2ViUGFnZVByb3h5
KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7CiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHBhZ2UgbG9hZCBzdHJhdGVneS4KKwogICAgIHBhZ2UtPnJl
bG9hZCh7IH0pOwotICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwg
V1RGTW92ZShjYWxsYmFjaykpOworICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFn
ZSgqcGFnZSwgb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBTZWNvbmRzOjpmcm9tTWlsbGlzZWNv
bmRzKCpvcHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZhdWx0UGFnZUxvYWRUaW1lb3V0LCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om5hdmln
YXRpb25PY2N1cnJlZEZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lKQpAQCAtNDY3
LDExICs0OTIsMTUgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGlvbk9jY3Vy
cmVkRm9yRnJhbWUoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUKICAgICAgICAgLy8gTmV3IHBh
Z2UgbG9hZGVkLCBjbGVhciBmcmFtZSBoYW5kbGVzIHByZXZpb3VzbHkgY2FjaGVkLgogICAgICAg
ICBtX2hhbmRsZVdlYkZyYW1lTWFwLmNsZWFyKCk7CiAgICAgICAgIG1fd2ViRnJhbWVIYW5kbGVN
YXAuY2xlYXIoKTsKLSAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdOYXZpZ2F0
aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlLnRha2UoZnJhbWUucGFnZSgpLT5w
YWdlSUQoKSkpCisgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlv
bkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZS50YWtlKGZyYW1lLnBhZ2UoKS0+cGFn
ZUlEKCkpKSB7CisgICAgICAgICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CiAgICAgICAgICAgICBj
YWxsYmFjay0+c2VuZFN1Y2Nlc3MoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7CisgICAgICAg
IH0KICAgICB9IGVsc2UgewotICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05h
dmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRha2UoZnJhbWUuZnJh
bWVJRCgpKSkKKyAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdOYXZpZ2F0aW9u
SW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZS50YWtlKGZyYW1lLmZyYW1lSUQoKSkp
IHsKKyAgICAgICAgICAgIG1fbG9hZFRpbWVyLnN0b3AoKTsKICAgICAgICAgICAgIGNhbGxiYWNr
LT5zZW5kU3VjY2VzcyhJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKKyAgICAgICAgfQogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGNhYzZjY2QxYTQ4Li4wZjI0YzczNjJmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb24uaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJs
ZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlQXV0b21hdGlvblRhcmdldC5oPgpA
QCAtMTExLDEwICsxMTIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc3dpdGNoVG9Ccm93c2luZ0Nv
bnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsRnJhbWVIYW5kbGUpIG92ZXJyaWRlOwog
ICAgIHZvaWQgcmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9i
amVjdCYgc2l6ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRl
eHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJ
bnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcG9zaXRpb24pIG92ZXJyaWRlOwotICAgIHZvaWQg
bmF2aWdhdGVCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcmIHVybCwgUmVmPE5hdmlnYXRlQnJvd3NpbmdDb250
ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ29CYWNrSW5Ccm93c2luZ0NvbnRl
eHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFJlZjxHb0JhY2tJbkJy
b3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdvRm9yd2FyZElu
QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBS
ZWY8R29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCByZWxvYWRCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIFJlZjxSZWxvYWRCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcq
IG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VM
b2FkVGltZW91dCwgUmVmPE5hdmlnYXRlQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJy
aWRlOworICAgIHZvaWQgZ29CYWNrSW5Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0
ZWd5U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBSZWY8R29CYWNr
SW5Ccm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnb0Zvcndh
cmRJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nKiBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGlu
dCogb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQsIFJlZjxHb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4
dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbG9hZEJyb3dzaW5nQ29udGV4dChJ
bnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nKiBvcHRp
b25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCogb3B0aW9uYWxQYWdlTG9hZFRp
bWVvdXQsIFJlZjxSZWxvYWRCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcqIG9w
dGlvbmFsRnJhbWVIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5
U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBSZWY8V2FpdEZvck5h
dmlnYXRpb25Ub0NvbXBsZXRlQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsRnJhbWVIYW5k
bGUsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yQXJy
YXkmIGFyZ3VtZW50cywgY29uc3QgYm9vbCogb3B0aW9uYWxFeHBlY3RzSW1wbGljaXRDYWxsYmFj
a0FyZ3VtZW50LCBjb25zdCBpbnQqIG9wdGlvbmFsQ2FsbGJhY2tUaW1lb3V0LCBSZWY8SW5zcGVj
dG9yOjpBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyOjpFdmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbkNhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHBlcmZvcm1Nb3VzZUlu
dGVyYWN0aW9uKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwg
Y29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHJlcXVlc3RlZFBvc2l0aW9uLCBjb25z
dCBTdHJpbmcmIG1vdXNlQnV0dG9uLCBjb25zdCBTdHJpbmcmIG1vdXNlSW50ZXJhY3Rpb24sIGNv
bnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yQXJyYXkmIGtleU1vZGlmaWVycywgUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBvaW50PiYgdXBkYXRlZFBvc2l0aW9uKSBvdmVy
cmlkZTsKQEAgLTE1Myw4ICsxNTQsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBoYW5kbGVGb3JX
ZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFt
ZVByb3h5KGNvbnN0IFdlYkZyYW1lUHJveHkmKTsKIAotICAgIHZvaWQgd2FpdEZvck5hdmlnYXRp
b25Ub0NvbXBsZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmRE
aXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYpOwotICAgIHZvaWQgd2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiwgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7CisgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRv
Q29tcGxldGVPblBhZ2UoV2ViUGFnZVByb3h5JiwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6QmFj
a2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7CisgICAgdm9pZCB3YWl0Rm9yTmF2aWdh
dGlvblRvQ29tcGxldGVPbkZyYW1lKFdlYkZyYW1lUHJveHkmLCBTZWNvbmRzLCBSZWY8SW5zcGVj
dG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmKTsKKyAgICB2b2lkIGxvYWRU
aW1lckZpcmVkKCk7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQXV0b21h
dGlvblNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC0yMjYsNiAr
MjI4LDggQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX25leHREZWxldGVDb29raWVDYWxsYmFj
a0lEIHsgMSB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkF1dG9t
YXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXI6OkRlbGV0ZVNpbmdsZUNvb2tpZUNhbGxiYWNr
Pj4gbV9kZWxldGVDb29raWVDYWxsYmFja3M7CiAKKyAgICBSdW5Mb29wOjpUaW1lcjxXZWJBdXRv
bWF0aW9uU2Vzc2lvbj4gbV9sb2FkVGltZXI7CisKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RP
UikKICAgICBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogbV9yZW1vdGVDaGFubmVsIHsgbnVs
bHB0ciB9OwogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>