<?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>189642</bug_id>
          
          <creation_ts>2018-09-14 18:33:43 -0700</creation_ts>
          <short_desc>[WebAuthN] Move time out control from WebProcess to UIProcess</short_desc>
          <delta_ts>2018-10-04 12:32:24 -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>WebCore 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=181947</see_also>
          <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>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alex.gaynor</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1460004</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-09-14 18:33:43 -0700</bug_when>
    <thetext>Move time out control from WebProcess to UIProcess. Otherwise, we will have a duplicate time out controller in AuthenticatorManager.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460006</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-14 18:35:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/44476765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462285</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-09-21 21:58:59 -0700</bug_when>
    <thetext>When we finished this task, we could add tests that:
1) In makeCredential, we could have a test that have exclude credentials that have the same credential id as existing one but not transport.
2) No authenticators can be discovered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462481</commentid>
    <comment_count>3</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-09-22 22:36:33 -0700</bug_when>
    <thetext>3) Also, we could then add a test configuration to the discovery process to hide local authenticators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464192</commentid>
    <comment_count>4</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-09-27 15:35:04 -0700</bug_when>
    <thetext>4) Re-enable time out tests in:
public-key-credential-create-failure.https.html,
public-key-credential-get-failure.https.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465215</commentid>
    <comment_count>5</comment_count>
      <attachid>351295</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-01 13:51:55 -0700</bug_when>
    <thetext>Created attachment 351295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466085</commentid>
    <comment_count>6</comment_count>
      <attachid>351295</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-03 09:08:14 -0700</bug_when>
    <thetext>Comment on attachment 351295
Patch

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

&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h:38
&gt; +    std::optional&lt;uint64_t&gt; timeout;

Web IDL is using &quot;unsigned long&quot; so the correct C++ type is &quot;unsigned&quot;.

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:193
&gt; +    uint64_t timeOutInMsValue = 0;

unsigned timeOutInMsValue = std::min(maxTimeOutValue, timeOutInMs.value_or(maxTimeOutValue));

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:199
&gt; +    m_requestTimeOutTimer = std::make_unique&lt;Timer&gt;([context = this]() mutable {

What guarantees there is always one timer needed at a time in the UIProcess? What prevents the AuthenticaticatorManager to process several requests in parallel?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466260</commentid>
    <comment_count>7</comment_count>
      <attachid>351295</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-03 18:20:33 -0700</bug_when>
    <thetext>Comment on attachment 351295
Patch

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

Thanks for reviewing the patch, Chris.

&gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h:38
&gt;&gt; +    std::optional&lt;uint64_t&gt; timeout;
&gt; 
&gt; Web IDL is using &quot;unsigned long&quot; so the correct C++ type is &quot;unsigned&quot;.

Fixed.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:193
&gt;&gt; +    uint64_t timeOutInMsValue = 0;
&gt; 
&gt; unsigned timeOutInMsValue = std::min(maxTimeOutValue, timeOutInMs.value_or(maxTimeOutValue));

Sure.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:199
&gt;&gt; +    m_requestTimeOutTimer = std::make_unique&lt;Timer&gt;([context = this]() mutable {
&gt; 
&gt; What guarantees there is always one timer needed at a time in the UIProcess? What prevents the AuthenticaticatorManager to process several requests in parallel?

In both AuthenticatorManager::makeCredential and AuthenticatorManager::getAssertion which are the only entrances that take requests will immediately invoke the request callback if there is an existing one as we enforce one request at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466267</commentid>
    <comment_count>8</comment_count>
      <attachid>351572</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-03 18:28:44 -0700</bug_when>
    <thetext>Created attachment 351572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466371</commentid>
    <comment_count>9</comment_count>
      <attachid>351572</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 09:03:40 -0700</bug_when>
    <thetext>Comment on attachment 351572
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466434</commentid>
    <comment_count>10</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-04 12:05:38 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; Comment on attachment 351572 [details]
&gt; Patch
&gt; 
&gt; r=me

Thanks, Chris.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466467</commentid>
    <comment_count>11</comment_count>
      <attachid>351572</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-04 12:32:22 -0700</bug_when>
    <thetext>Comment on attachment 351572
Patch

Clearing flags on attachment: 351572

Committed r236842: &lt;https://trac.webkit.org/changeset/236842&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466468</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-04 12:32:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351295</attachid>
            <date>2018-10-01 13:51:55 -0700</date>
            <delta_ts>2018-10-03 18:28:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189642-20181001135154.patch</filename>
            <type>text/plain</type>
            <size>48855</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY1ZDZhNjc3M2IzZjVl
MWUxY2VkY2VkYTFiNGFiMmY2MDBiMzM2OS4uM2U1ZDdiMzRjNThjZmU1NjMzZTkzOTYzZTRkYTll
Mzk0ZTU1ZTk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTEwLTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBNb3Zl
IHRpbWUgb3V0IGNvbnRyb2wgZnJvbSBXZWJQcm9jZXNzIHRvIFVJUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjQyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NDQ3Njc2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW5jZSBub3cgdGhlIGNvbnRyb2wgdW5pdCBvZiBXZWJBdXRoTiBo
YXMgYmVlbiBtb3ZlZCB0byBVSSBQcm9jZXNzLCBpLmUuIEF1dGhlbnRpY2F0b3JNYW5hZ2VyLAor
ICAgICAgICB0aGUgdGltZSBvdXQgdGltZXIgc2hvdWxkIG1vdmUgdG8gVUkgUHJvY2VzcyBhcyB3
ZWxsLgorCisgICAgICAgIFRlc3RzOiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1s
b2NhbC1zaWxlbnQuaHR0cHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yOjpjcmVhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDo6aW5pdFRpbWVv
dXRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JJbnRlcm5hbDo6ZGlkVGltZW91dFRpbWVyRmlyZSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOjpkZWNvZGUpOgorCiAyMDE4LTEwLTAx
ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTVNF
XVtHU3RyZWFtZXJdIFNldCBhIG1pbmltdW0gc2FtcGxlIGR1cmF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEw
NzJhMDkzZTMzMDNmZTIwMjFhMDA2MTAzYTFmYmNkODhiNGI0YWYuLmIxOTQ2OGE0YzQ0NmFlMzBh
MjQ0MmM5ODQxZmQ2YTBjMjViNjY4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTgt
MTAtMDEgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2Vi
QXV0aE5dIE1vdmUgdGltZSBvdXQgY29udHJvbCBmcm9tIFdlYlByb2Nlc3MgdG8gVUlQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk2NDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0NDc2NzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlc2lkZXMgYWRkaW5nIGEgdGltZSBvdXQgdGlt
ZXIgaW4gdGhlIEF1dGhlbnRpY2F0b3JNYW5hZ2VyLCB0aGlzIHBhdGNoIGFsc28gYWRkcyBhIG5l
dworICAgICAgICBvcHRpb24gaW4gTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiB0
byB0dXJuIG9uIHNpbGVudCBmYWlsdXJlIHdoaWNoIGlzIHRoZQorICAgICAgICBkZWZhdWx0IHBv
bGljeSBvZiB0cmVhdGluZyBhdXRoZW50aWNhdG9ycycgZXJyb3IgYXMgc3VnZ2VzdGVkIGJ5IHNw
ZWMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0Nv
bmZpZ3VyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5h
Z2VySW50ZXJuYWw6OmNvbGxlY3RUcmFuc3BvcnRzKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVu
dGljYXRvck1hbmFnZXI6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVu
dGljYXRvck1hbmFnZXI6OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yTWFuYWdlcjo6aW5pdFRpbWVPdXRUaW1lcik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6
OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXF1ZXN0VGltZU91dFRpbWVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpNb2NrQXV0aGVudGljYXRvck1hbmFnZXI6OnJlc3BvbmRS
ZWNlaXZlZEludGVybmFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
TW9jay9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmg6CisKIDIwMTgtMTAtMDEg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBG
aXggaW50ZXJuYWwgYnVpbGQgYWZ0ZXIgcjIzNjY2NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmlu
ZGV4IGNkNGE1MWZkMmFlOWRmZmU3ZDIwMTM3ODU4MDJkMGZlNmVmZmU1ZjMuLmEwNTU0YjczNGE1
MWQzZmNmNjM3NzIyY2QyMWNkYzhkODM4ZTkzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAK
QEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIgog
I2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxwYWwvY3J5
cHRvL0NyeXB0b0RpZ2VzdC5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC04MiwyOSArODEsNiBAQCBzdGF0aWMgVmVjdG9y
PHVpbnQ4X3Q+IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY29uc3QgQXJyYXlCdWZmZXImIGNs
aWVudERhdGFKcwogICAgIHJldHVybiBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7CiB9CiAKLS8vIEZJ
WE1FKDE4MTk0Nyk6IFdlIHNob3VsZCBwcm9iYWJseSB0cmltIHRpbWVPdXRJbk1zIHRvIHNvbWUg
bWF4IGFsbG93YWJsZSBudW1iZXIuCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBpbml0
VGltZW91dFRpbWVyKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZU91dEluTXMsIGNv
bnN0IENyZWRlbnRpYWxQcm9taXNlJiBwcm9taXNlKQotewotICAgIGlmICghdGltZU91dEluTXMp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byB0aW1lciA9IHN0ZDo6bWFrZV91
bmlxdWU8VGltZXI+KFtwcm9taXNlID0gcHJvbWlzZV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIk9wZXJhdGlvbiB0aW1l
ZCBvdXQuIl9zIH0pOwotICAgIH0pOwotICAgIHRpbWVyLT5zdGFydE9uZVNob3QoU2Vjb25kczo6
ZnJvbU1pbGxpc2Vjb25kcygqdGltZU91dEluTXMpKTsKLSAgICByZXR1cm4gdGltZXI7Ci19Ci0K
LXN0YXRpYyBib29sIGRpZFRpbWVvdXRUaW1lckZpcmUoVGltZXIqIHRpbWVyKQotewotICAgIGlm
ICghdGltZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIXRpbWVyLT5pc0FjdGl2
ZSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB0aW1lci0+c3RvcCgpOwotICAgIHJldHVy
biBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgQXV0aGVudGljYXRvckNvb3JkaW5hdG9ySW50
ZXJuYWwKIAogQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3Ioc3RkOjp1bmlxdWVfcHRyPEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudD4mJiBjbGll
bnQpCkBAIC0xMzAsOSArMTA2LDYgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmNy
ZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgLy8gU3RlcCA0ICYgMTcuCi0gICAgc3RkOjp1bmlxdWVfcHRy
PFRpbWVyPiB0aW1lb3V0VGltZXIgPSBpbml0VGltZW91dFRpbWVyKG9wdGlvbnMudGltZW91dCwg
cHJvbWlzZSk7Ci0KICAgICAvLyBTdGVwIDUtNy4KICAgICAvLyBGSVhNRSgxODE5NTApOiBXZSBs
YWNrIGZ1bmRhbWVudGFsIHN1cHBvcnQgZnJvbSBTZWN1cml0eU9yaWdpbiB0byBkZXRlcm1pbmUg
aWYgYSBob3N0IGlzIGEgdmFsaWQgZG9tYWluIG9yIG5vdC4KICAgICAvLyBTdGVwIDYgaXMgdGhl
cmVmb3JlIHNraXBwZWQuIEFsc28sIHdlIGxhY2sgdGhlIHN1cHBvcnQgdG8gZGV0ZXJtaW5lIHdo
ZXRoZXIgYSBkb21haW4gaXMgYSByZWdpc3RyYWJsZQpAQCAtMTU2LDcgKzEyOSw3IEBAIHZvaWQg
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpjcmVhdGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNh
bGxlck9yaWdpbiwgY29uc3QKICAgICBhdXRvIGNsaWVudERhdGFKc29uID0gcHJvZHVjZUNsaWVu
dERhdGFKc29uKENsaWVudERhdGFUeXBlOjpDcmVhdGUsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxs
ZXJPcmlnaW4pOwogICAgIGF1dG8gY2xpZW50RGF0YUpzb25IYXNoID0gcHJvZHVjZUNsaWVudERh
dGFKc29uSGFzaChjbGllbnREYXRhSnNvbik7CiAKLSAgICAvLyBTdGVwIDE4LTIxLgorICAgIC8v
IFN0ZXAgNCwgMTctMjEuCiAgICAgLy8gT25seSBwbGF0Zm9ybSBhdHRhY2htZW50cyB3aWxsIGJl
IHN1cHBvcnRlZCBhdCB0aGlzIHN0YWdlLiBBc3N1bWluZyBvbmUgYXV0aGVudGljYXRvciBwZXIg
ZGV2aWNlLgogICAgIC8vIEFsc28sIHJlc2lkZW50IGtleXMsIHVzZXIgdmVyaWZpY2F0aW9ucyBh
bmQgZGlyZWN0IGF0dGVzdGF0aW9uIGFyZSBlbmZvcmNlZCBhdCB0aGlzIHRhZ2UuCiAgICAgLy8g
Rm9yIGJldHRlciBwZXJmb3JtYW5jZSwgdHJhbnNwb3J0cyBvZiBvcHRpb25zLmV4Y2x1ZGVDcmVk
ZW50aWFscyBhcmUgY2hlY2tlZCBpbiBMb2NhbEF1dGhlbnRpY2F0b3IuCkBAIC0xNjUsOSArMTM4
LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmNyZWF0ZShjb25zdCBTZWN1cml0
eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFtjbGllbnREYXRhSnNvbiA9IFdURk1vdmUoY2xp
ZW50RGF0YUpzb24pLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgdGltZW91dFRpbWVyID0g
V1RGTW92ZSh0aW1lb3V0VGltZXIpLCBhYm9ydFNpZ25hbCA9IFdURk1vdmUoYWJvcnRTaWduYWwp
XSAoY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEmIGRhdGEsIGNvbnN0IFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChk
aWRUaW1lb3V0VGltZXJGaXJlKHRpbWVvdXRUaW1lci5nZXQoKSkpCi0gICAgICAgICAgICByZXR1
cm47CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFtjbGllbnREYXRhSnNvbiA9IFdURk1v
dmUoY2xpZW50RGF0YUpzb24pLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgYWJvcnRTaWdu
YWwgPSBXVEZNb3ZlKGFib3J0U2lnbmFsKV0gKGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWxEYXRhJiBkYXRhLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJiBleGNlcHRpb24p
IG11dGFibGUgewogICAgICAgICBpZiAoYWJvcnRTaWduYWwgJiYgYWJvcnRTaWduYWwtPmFib3J0
ZWQoKSkgewogICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJv
ciwgIkFib3J0ZWQgYnkgQWJvcnRTaWduYWwuIl9zIH0pOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTk4LDkgKzE2OSw2IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3Zl
ckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIFN0ZXAgNCAmIDE2LgotICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1l
cj4gdGltZW91dFRpbWVyID0gaW5pdFRpbWVvdXRUaW1lcihvcHRpb25zLnRpbWVvdXQsIHByb21p
c2UpOwotCiAgICAgLy8gU3RlcCA1LTcuCiAgICAgLy8gRklYTUUoMTgxOTUwKTogV2UgbGFjayBm
dW5kYW1lbnRhbCBzdXBwb3J0IGZyb20gU2VjdXJpdHlPcmlnaW4gdG8gZGV0ZXJtaW5lIGlmIGEg
aG9zdCBpcyBhIHZhbGlkIGRvbWFpbiBvciBub3QuCiAgICAgLy8gU3RlcCA2IGlzIHRoZXJlZm9y
ZSBza2lwcGVkLiBBbHNvLCB3ZSBsYWNrIHRoZSBzdXBwb3J0IHRvIGRldGVybWluZSB3aGV0aGVy
IGEgZG9tYWluIGlzIGEgcmVnaXN0cmFibGUKQEAgLTIxNiw3ICsxODQsNyBAQCB2b2lkIEF1dGhl
bnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgU2Vj
dXJpdHlPcmlnaW4mCiAgICAgYXV0byBjbGllbnREYXRhSnNvbiA9IHByb2R1Y2VDbGllbnREYXRh
SnNvbihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2lu
KTsKICAgICBhdXRvIGNsaWVudERhdGFKc29uSGFzaCA9IHByb2R1Y2VDbGllbnREYXRhSnNvbkhh
c2goY2xpZW50RGF0YUpzb24pOwogCi0gICAgLy8gU3RlcCAxNC0xNSwgMTctMTkuCisgICAgLy8g
U3RlcCA0LCAxNC0xOS4KICAgICAvLyBPbmx5IHBsYXRmb3JtIGF0dGFjaG1lbnRzIHdpbGwgYmUg
c3VwcG9ydGVkIGF0IHRoaXMgc3RhZ2UuIEFzc3VtaW5nIG9uZSBhdXRoZW50aWNhdG9yIHBlciBk
ZXZpY2UuCiAgICAgLy8gQWxzbywgcmVzaWRlbnQga2V5cywgdXNlciB2ZXJpZmljYXRpb25zIGFu
ZCBkaXJlY3QgYXR0ZXN0YXRpb24gYXJlIGVuZm9yY2VkIGF0IHRoaXMgdGFnZS4KICAgICAvLyBG
b3IgYmV0dGVyIHBlcmZvcm1hbmNlLCBmaWx0ZXJpbmcgb2Ygb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzIGlzIGRvbmUgaW4gTG9jYWxBdXRoZW50aWNhdG9yLgpAQCAtMjI1LDkgKzE5Myw3IEBAIHZv
aWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShj
b25zdCBTZWN1cml0eU9yaWdpbiYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBbY2xpZW50RGF0YUpzb24gPSBXVEZNb3ZlKGNsaWVudERhdGFK
c29uKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHRpbWVvdXRUaW1lciA9IFdURk1vdmUo
dGltZW91dFRpbWVyKSwgYWJvcnRTaWduYWwgPSBXVEZNb3ZlKGFib3J0U2lnbmFsKV0gKGNvbnN0
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJiBkYXRhLCBjb25zdCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICBpZiAoZGlkVGltZW91
dFRpbWVyRmlyZSh0aW1lb3V0VGltZXIuZ2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuOworICAg
IGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbY2xpZW50RGF0YUpzb24gPSBXVEZNb3ZlKGNsaWVu
dERhdGFKc29uKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGFib3J0U2lnbmFsID0gV1RG
TW92ZShhYm9ydFNpZ25hbCldIChjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0
YSYgZGF0YSwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKGFib3J0U2lnbmFsICYmIGFib3J0U2lnbmFsLT5hYm9ydGVkKCkpIHsK
ICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJBYm9y
dGVkIGJ5IEFib3J0U2lnbmFsLiJfcyB9KTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKaW5kZXggYmMxN2I1OGYwM2JhNWRhODE4ZTRj
Y2JmMGEzMzMzYWZjYjc1MzAzYy4uODYzNjRkNjg0N2I5MmQxYmZiNjhjNjJlZWY0OTAxZTRlNmE1
ZDNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKQEAgLTc4LDcg
Kzc4LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgewogICAg
IEJ1ZmZlclNvdXJjZSBjaGFsbGVuZ2U7CiAgICAgVmVjdG9yPFBhcmFtZXRlcnM+IHB1YktleUNy
ZWRQYXJhbXM7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkIGxvbmc+IHRpbWVvdXQ7Cisg
ICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdGltZW91dDsKICAgICBWZWN0b3I8UHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3I+IGV4Y2x1ZGVDcmVkZW50aWFsczsKICAgICBzdGQ6Om9wdGlv
bmFsPEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4gYXV0aGVudGljYXRvclNlbGVjdGlv
bjsKIApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBy
cC5pZCA8PCBycC5uYW1lIDw8IHJwLmljb247CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4odXNlci5pZC5sZW5ndGgoKSk7CiAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0
aERhdGEodXNlci5pZC5kYXRhKCksIHVzZXIuaWQubGVuZ3RoKCksIDEpOwotICAgIGVuY29kZXIg
PDwgdXNlci5kaXNwbGF5TmFtZSA8PCB1c2VyLm5hbWUgPDwgdXNlci5pY29uIDw8IHB1YktleUNy
ZWRQYXJhbXMgPDwgZXhjbHVkZUNyZWRlbnRpYWxzIDw8IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb247
CisgICAgZW5jb2RlciA8PCB1c2VyLmRpc3BsYXlOYW1lIDw8IHVzZXIubmFtZSA8PCB1c2VyLmlj
b24gPDwgcHViS2V5Q3JlZFBhcmFtcyA8PCB0aW1lb3V0IDw8IGV4Y2x1ZGVDcmVkZW50aWFscyA8
PCBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpA
QCAtMTQ4LDYgKzE0OCwxMyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM+IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdAogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnB1YktleUNy
ZWRQYXJhbXMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRp
b25hbDxzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90Pj4gdGltZW91dDsKKyAgICBkZWNvZGVyID4+IHRp
bWVvdXQ7CisgICAgaWYgKCF0aW1lb3V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIHJlc3VsdC50aW1lb3V0ID0gV1RGTW92ZSgqdGltZW91dCk7CisKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5leGNsdWRlQ3JlZGVudGlhbHMpKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogCkBAIC0xNTUsNyArMTYyLDcgQEAgc3RkOjpvcHRpb25hbDxQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPiBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHQK
ICAgICBkZWNvZGVyID4+IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb247CiAgICAgaWYgKCFhdXRoZW50
aWNhdG9yU2VsZWN0aW9uKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJlc3Vs
dC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uID0gV1RGTW92ZShhdXRoZW50aWNhdG9yU2VsZWN0aW9u
LnZhbHVlKCkpOworICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uID0gV1RGTW92ZSgq
YXV0aGVudGljYXRvclNlbGVjdGlvbik7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKaW5kZXggZjAxM2IyYmFhOTNmMGRkMWFkZDAz
MDA4MDAwMjNhYTA1YTMwNjBjMy4uMjE0Nzk1MTMyY2MzOTg5OWFhZDEyOGEzZTk5Nzk4NGU1M2Qx
NWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCkBAIC0zNSw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyB7CiAgICAgQnVmZmVyU291cmNlIGNoYWxsZW5nZTsKLSAgICBzdGQ6Om9w
dGlvbmFsPHVuc2lnbmVkIGxvbmc+IHRpbWVvdXQ7CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gdGltZW91dDsKICAgICBtdXRhYmxlIFN0cmluZyBycElkOwogICAgIFZlY3RvcjxQdWJsaWNL
ZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVkZW50aWFsczsKIApAQCAtNDcsMTMgKzQ3
LDIwIEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewogdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IHJwSWQg
PDwgYWxsb3dDcmVkZW50aWFsczsKKyAgICBlbmNvZGVyIDw8IHRpbWVvdXQgPDwgcnBJZCA8PCBh
bGxvd0NyZWRlbnRpYWxzOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRp
b25hbDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IFB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIHJlc3VsdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4+IHRpbWVvdXQ7CisgICAgZGVjb2RlciA+PiB0aW1lb3V0
OworICAgIGlmICghdGltZW91dCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBy
ZXN1bHQudGltZW91dCA9IFdURk1vdmUoKnRpbWVvdXQpOworCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQucnBJZCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYWxsb3dDcmVkZW50aWFscykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApp
bmRleCA2N2E1NDIzZWE1ZWQ1N2ExZThiZjlkYWQ4MzIwZTA0ZGJhZjczMWI0Li43YjAwNDE2ZTll
MzExNjkyMzg1N2EzMzU1ZTMxYmEyMjRkZmRiNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTU3Nyw2
ICs1NzcsMTAgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRXZWJBdXRoZW50aWNhdGlvbk1v
Y2tDb25maWd1cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVIKICNpZiBFTkFCTEUoV0VCX0FVVEhO
KQogICAgIE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsK
IAorICAgIGF1dG8gc2lsZW50RmFpbHVyZVJlZiA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4o
V0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShjb25maWd1cmF0aW9uUmVmLCBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTaWxlbnRGYWlsdXJlIikpLmdldCgpKSk7CisgICAg
aWYgKHNpbGVudEZhaWx1cmVSZWYpCisgICAgICAgIGNvbmZpZ3VyYXRpb24uc2lsZW50RmFpbHVy
ZSA9IFdLQm9vbGVhbkdldFZhbHVlKHNpbGVudEZhaWx1cmVSZWYpOworCiAgICAgYXV0byBsb2Nh
bFJlZiA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZv
cktleShjb25maWd1cmF0aW9uUmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJMb2NhbCIpKS5nZXQoKSkpOwogICAgIGlmIChsb2NhbFJlZikgewogICAgICAgICBNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpMb2NhbCBsb2NhbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA3MzU1YTMyOGRmOTljNzE5ZTRkODI3M2E4MDZi
OTlhYTQ4OGQ5Nzg3Li5kMWIzY2RlZWEyN2NhNGI0NDVkMDE3YmVjN2VlMWVhNzgxNThiNWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBAIC0zOCw2ICszOCw4IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIEF1dGhlbnRpY2F0b3JNYW5hZ2VySW50
ZXJuYWwgewogCiBjb25zdCBzaXplX3QgbWF4VHJhbnNwb3J0TnVtYmVyID0gMTsKKy8vIFN1Z2dl
c3RlZCBieSBXZWJBdXRoTiBzcGVjIGFzIG9mIDcgQXVndXN0IDIwMTguCitjb25zdCB1aW50NjRf
dCBtYXhUaW1lT3V0VmFsdWUgPSAxMjAwMDA7CiAKIC8vIEZJWE1FKDE4ODYyMywgMTg4NjI0LCAx
ODg2MjUpOiBTdXBwb3J0IFVTQiwgTkZDIGFuZCBCTEUgYXV0aGVudGljYXRvcnMuCiBzdGF0aWMg
QXV0aGVudGljYXRvck1hbmFnZXI6OlRyYW5zcG9ydFNldCBjb2xsZWN0VHJhbnNwb3J0cyhjb25z
dCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhl
bnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4mIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24pCkBAIC00
OSwxMiArNTEsMTIgQEAgc3RhdGljIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpUcmFuc3BvcnRTZXQg
Y29sbGVjdFRyYW5zcG9ydHMoY29uc3Qgc3RkOjpvcHRpb25hbDwKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9CiAKLSAgICBpZiAoYXV0aGVudGljYXRvclNlbGVjdGlvbi52YWx1ZSgpLmF1
dGhlbnRpY2F0b3JBdHRhY2htZW50ID09IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkgeworICAgIGlmIChhdXRoZW50
aWNhdG9yU2VsZWN0aW9uLT5hdXRoZW50aWNhdG9yQXR0YWNobWVudCA9PSBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0p
IHsKICAgICAgICAgYXV0byBhZGRSZXN1bHQgPSByZXN1bHQuYWRkKEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ6OkludGVybmFsKTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJl
c3VsdC5pc05ld0VudHJ5KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgaWYg
KGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24udmFsdWUoKS5hdXRoZW50aWNhdG9yQXR0YWNobWVudCA9
PSBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yQXR0YWNo
bWVudDo6Q3Jvc3NQbGF0Zm9ybSkKKyAgICBpZiAoYXV0aGVudGljYXRvclNlbGVjdGlvbi0+YXV0
aGVudGljYXRvckF0dGFjaG1lbnQgPT0gUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OkNyb3NzUGxhdGZvcm0pCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEwNCw2ICsxMDYsNyBA
QCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjptYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8
dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YgogICAgIC8vIDEuIFNhdmUgcmVxdWVzdCBmb3IgYXN5
bmMgb3BlcmF0aW9ucy4KICAgICBtX3BlbmRpbmdSZXF1ZXN0RGF0YSA9IHsgaGFzaCwgdHJ1ZSwg
b3B0aW9ucywgeyB9IH07CiAgICAgbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNhbGxiYWNrKTsKKyAgICBpbml0VGltZU91dFRpbWVyKG9wdGlvbnMudGltZW91dCk7CiAKICAg
ICAvLyAyLiBHZXQgYXZhaWxhYmxlIHRyYW5zcG9ydHMgYW5kIHN0YXJ0IGRpc2NvdmVyaW5nIGF1
dGhlbnRpY2F0b3JzIG9uIHRoZW0uCiAgICAgc3RhcnREaXNjb3ZlcnkoY29sbGVjdFRyYW5zcG9y
dHMob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKSk7CkBAIC0xMjEsNiArMTI0LDcgQEAg
dm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgaGFzaCwgY29uc3QgUHVibGkKICAgICAvLyAxLiBTYXZlIHJlcXVlc3QgZm9yIGFzeW5j
IG9wZXJhdGlvbnMuCiAgICAgbV9wZW5kaW5nUmVxdWVzdERhdGEgPSB7IGhhc2gsIGZhbHNlLCB7
IH0sIG9wdGlvbnMgfTsKICAgICBtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y2FsbGJhY2spOworICAgIGluaXRUaW1lT3V0VGltZXIob3B0aW9ucy50aW1lb3V0KTsKIAogICAg
IC8vIDIuIEdldCBhdmFpbGFibGUgdHJhbnNwb3J0cyBhbmQgc3RhcnQgZGlzY292ZXJpbmcgYXV0
aGVudGljYXRvcnMgb24gdGhlbS4KICAgICBBU1NFUlQobV9zZXJ2aWNlcy5pc0VtcHR5KCkpOwpA
QCAtMTQ3LDExICsxNTEsMTUgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0aGVudGlj
YXRvckFkZGVkKFJlZjxBdXRoZW50aWNhdG9yPiYmIGF1dGhlbnRpY2F0b3IKIHZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OnJlc3BvbmRSZWNlaXZlZChSZXNwb25kJiYgcmVzcG9uZCkKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVChtX3JlcXVlc3RUaW1lT3V0
VGltZXIpOworICAgIGlmICghbV9yZXF1ZXN0VGltZU91dFRpbWVyLT5pc0FjdGl2ZSgpKQorICAg
ICAgICByZXR1cm47CisKICAgICBBU1NFUlQobV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIpOwot
ICAgIC8vIEZJWE1FKDE4OTY0MikKICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxQdWJs
aWNLZXlDcmVkZW50aWFsRGF0YT4ocmVzcG9uZCkpIHsKICAgICAgICAgbV9wZW5kaW5nQ29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShyZXNwb25kKSk7CiAgICAgICAgIGNsZWFyU3RhdGUoKTsKKyAg
ICAgICAgbV9yZXF1ZXN0VGltZU91dFRpbWVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgcmVzcG9uZFJlY2VpdmVkSW50ZXJuYWwoV1RGTW92ZShyZXNwb25kKSk7CkBAIC0x
NzgsNiArMTg2LDIzIEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnN0YXJ0RGlzY292ZXJ5
KGNvbnN0IFRyYW5zcG9ydFNldCYgdHJhbnNwb3J0cykKICAgICB9CiB9CiAKK3ZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OmluaXRUaW1lT3V0VGltZXIoY29uc3Qgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4mIHRpbWVPdXRJbk1zKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9y
TWFuYWdlckludGVybmFsOworCisgICAgdWludDY0X3QgdGltZU91dEluTXNWYWx1ZSA9IDA7Cisg
ICAgaWYgKCF0aW1lT3V0SW5NcyB8fCAqdGltZU91dEluTXMgPiBtYXhUaW1lT3V0VmFsdWUpCisg
ICAgICAgIHRpbWVPdXRJbk1zVmFsdWUgPSBtYXhUaW1lT3V0VmFsdWU7CisgICAgZWxzZQorICAg
ICAgICB0aW1lT3V0SW5Nc1ZhbHVlID0gKnRpbWVPdXRJbk1zOworCisgICAgbV9yZXF1ZXN0VGlt
ZU91dFRpbWVyID0gc3RkOjptYWtlX3VuaXF1ZTxUaW1lcj4oW2NvbnRleHQgPSB0aGlzXSgpIG11
dGFibGUgeworICAgICAgICBjb250ZXh0LT5tX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcigoRXhj
ZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIl9zIH0p
KTsKKyAgICAgICAgY29udGV4dC0+Y2xlYXJTdGF0ZSgpOworICAgIH0pOworICAgIG1fcmVxdWVz
dFRpbWVPdXRUaW1lci0+c3RhcnRPbmVTaG90KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGlt
ZU91dEluTXNWYWx1ZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAppbmRleCA1
MDNiYzZiYzczMTFiNjdmMTBmNGI1NWNjNTc0OTc3MjRlOTllYjA4Li44OWJmZjJhMjliZDNmODQ5
ZjE1YjRiNjEzMDM5MWQ5NjRhN2NlMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvblJlcXVlc3RE
YXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIu
aD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNTcsNiArNTgsNyBAQCBw
dWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBDYWxsYmFjayYgcGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyKCkgeyByZXR1cm4gbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXI7IH0KKyAgICBXZWJDb3Jl
OjpUaW1lciogcmVxdWVzdFRpbWVPdXRUaW1lcigpIHsgcmV0dXJuIG1fcmVxdWVzdFRpbWVPdXRU
aW1lci5nZXQoKTsgfQogICAgIHZvaWQgY2xlYXJTdGF0ZSgpOwogCiBwcml2YXRlOgpAQCAtNzIs
MTAgKzc0LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRSZWNlaXZlZElu
dGVybmFsKFJlc3BvbmQmJik7CiAKICAgICB2b2lkIHN0YXJ0RGlzY292ZXJ5KGNvbnN0IFRyYW5z
cG9ydFNldCYpOworICAgIHZvaWQgaW5pdFRpbWVPdXRUaW1lcihjb25zdCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiYgdGltZU91dEluTXMpOwogCiAgICAgLy8gUmVxdWVzdDogV2Ugb25seSBhbGxv
dyBvbmUgcmVxdWVzdCBwZXIgdGltZS4KICAgICBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRh
IG1fcGVuZGluZ1JlcXVlc3REYXRhOwogICAgIENhbGxiYWNrIG1fcGVuZGluZ0NvbXBsZXRpb25I
YW5kbGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUaW1lcj4gbV9yZXF1ZXN0VGlt
ZU91dFRpbWVyOwogCiAgICAgVmVjdG9yPFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0
U2VydmljZT4+IG1fc2VydmljZXM7CiAgICAgSGFzaFNldDxSZWY8QXV0aGVudGljYXRvcj4+IG1f
YXV0aGVudGljYXRvcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNhdG9y
TWFuYWdlci5jcHAKaW5kZXggN2UyNjliODc3NTIyZmIyMzFmY2I3MDIwMzE5N2E5MmNlMjczZTY5
OS4uODM3YWEyNmRiOWJjY2NmZWE2NmM0Nzg5NzZjZDI1NzI4NWFkNWNhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0aGVu
dGljYXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL01vY2svTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApAQCAtNDIsOCArNDIs
MTIgQEAgVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBNb2NrQXV0aGVu
dGljYXRvck1hbmFnZXI6OmNyZWF0ZVNlcnZpY2UKIAogdm9pZCBNb2NrQXV0aGVudGljYXRvck1h
bmFnZXI6OnJlc3BvbmRSZWNlaXZlZEludGVybmFsKFJlc3BvbmQmJiByZXNwb25kKQogeworICAg
IGlmIChtX3Rlc3RDb25maWd1cmF0aW9uLnNpbGVudEZhaWx1cmUpCisgICAgICAgIHJldHVybjsK
KwogICAgIHBlbmRpbmdDb21wbGV0aW9uSGFuZGxlcigpKFdURk1vdmUocmVzcG9uZCkpOwogICAg
IGNsZWFyU3RhdGUoKTsKKyAgICByZXF1ZXN0VGltZU91dFRpbWVyKCktPnN0b3AoKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCmluZGV4IDhhZmQ4ZmUxODFlYTQ3ZjVj
MWJhNzg5YjNiNWM1NDA0MDE0OWJiNTIuLjYzOWExMmIxNGRjNWFmNDg4NjhhMGRiMjgxOWQ2Njli
NTE3MzQ4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL01vY2svTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCkBAIC0zOCw2ICszOCw3IEBAIHN0cnVjdCBNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIHsKICAgICAgICAgU3RyaW5nIGludGVybWVkaWF0
ZUNBQ2VydGlmaWNhdGVCYXNlNjQ7CiAgICAgfTsKIAorICAgIGJvb2wgc2lsZW50RmFpbHVyZSB7
IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxMb2NhbD4gbG9jYWw7CiB9OwogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjkwOWU4NTk3OTNh
ODEzYzU4YzFkOTE1MDI4YmY0OWZjMzAyYjcxYy4uM2QyNzA0N2E4MWMzMDQzYzRiZDY5Y2M3ZWNl
MzViMDJhMzIyNzZjNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTEwLTAxICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBNb3ZlIHRpbWUgb3V0IGNvbnRy
b2wgZnJvbSBXZWJQcm9jZXNzIHRvIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
NDQ3Njc2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRp
b24pOgorCiAyMDE4LTEwLTAxICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dlYkF1dGhOXSBJbXBvcnQgYSBKUyBDQk9SIGNvZGVyCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBj
MThkZmM2MjNjZDBiODdkYjIzZGI2YzZkODRiNTY4Y2RmZDQwN2RlLi5kMGQzZWY5MWJhZTliZjBm
MGIyZmQwNGY0MDVhYmJlMGUzYmZmZjMzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIzNjEsOSArMjM2MSwxOSBA
QCB2b2lkIFRlc3RSdW5uZXI6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24o
SlNWYWx1ZVJlZiBjb25maWd1cmF0aW9uVgogICAgIFZlY3RvcjxXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4+IGNvbmZpZ3VyYXRpb25LZXlzOwogICAgIFZlY3RvcjxXS1JldGFpblB0cjxXS1R5cGVS
ZWY+PiBjb25maWd1cmF0aW9uVmFsdWVzOwogCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IHNpbGVudEZhaWx1cmVQcm9wZXJ0eU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJzaWxlbnRGYWlsdXJlIikpOworICAgIEpTVmFsdWVSZWYgc2lsZW50RmFpbHVyZVZh
bHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBjb25maWd1cmF0aW9uLCBzaWxlbnRG
YWlsdXJlUHJvcGVydHlOYW1lLmdldCgpLCAwKTsKKyAgICBpZiAoIUpTVmFsdWVJc1VuZGVmaW5l
ZChjb250ZXh0LCBzaWxlbnRGYWlsdXJlVmFsdWUpKSB7CisgICAgICAgIGlmICghSlNWYWx1ZUlz
Qm9vbGVhbihjb250ZXh0LCBzaWxlbnRGYWlsdXJlVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBib29sIHNpbGVudEZhaWx1cmUgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQs
IHNpbGVudEZhaWx1cmVWYWx1ZSk7CisgICAgICAgIGNvbmZpZ3VyYXRpb25LZXlzLmFwcGVuZCh7
IEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTaWxlbnRGYWlsdXJlIikg
fSk7CisgICAgICAgIGNvbmZpZ3VyYXRpb25WYWx1ZXMuYXBwZW5kKGFkb3B0V0soV0tCb29sZWFu
Q3JlYXRlKHNpbGVudEZhaWx1cmUpKS5nZXQoKSk7CisgICAgfQorCiAgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IGxvY2FsUHJvcGVydHlOYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygibG9jYWwiKSk7CiAgICAgSlNWYWx1ZVJlZiBsb2NhbFZhbHVlID0gSlNPYmpl
Y3RHZXRQcm9wZXJ0eShjb250ZXh0LCBjb25maWd1cmF0aW9uLCBsb2NhbFByb3BlcnR5TmFtZS5n
ZXQoKSwgMCk7Ci0gICAgaWYgKCFKU1ZhbHVlSXNOdWxsKGNvbnRleHQsIGxvY2FsVmFsdWUpKSB7
CisgICAgaWYgKCFKU1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwgbG9jYWxWYWx1ZSkgJiYgIUpT
VmFsdWVJc051bGwoY29udGV4dCwgbG9jYWxWYWx1ZSkpIHsKICAgICAgICAgaWYgKCFKU1ZhbHVl
SXNPYmplY3QoY29udGV4dCwgbG9jYWxWYWx1ZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIEpTT2JqZWN0UmVmIGxvY2FsID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIGxvY2FsVmFs
dWUsIDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDMxZTBjY2RiMTE3Njg1NzI4ZjVjYTY3M2I3ZGEwYmZmYmM5ZjUwYTgu
LjJjYjJlNjA0NjliY2NkYmY1MzFhNmZkYmJjYmE4NmZhMDBkZDU1Y2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNyBAQAorMjAxOC0xMC0wMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWJBdXRoTl0gTW92ZSB0aW1lIG91dCBjb250cm9sIGZyb20gV2ViUHJvY2Vz
cyB0byBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4OTY0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ0NzY3NjU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNv
IGZpeGVzIHNvbWUgZmxha3kgYmVoYXZpb3VycyByZWdhcmRpbmcgdG8gdGhlIGRpcnR5IEFTTi4x
IGRlY29kZXIuCisKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
ZWF0ZS1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1
cmUtbG9jYWwuaHR0cHMuaHRtbC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUt
ZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1m
YWlsdXJlLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
LWxvY2FsLmh0dHBzLmh0bWwuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUt
bG9jYWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5o
dG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzOgorCiAy
MDE4LTEwLTAxICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYkF1dGhOXSBJbXBvcnQgYSBKUyBDQk9SIGNvZGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUt
bG9jYWwtc2lsZW50Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbC1zaWxlbnQu
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2Nzk0MWZkYzgxNzRmZTA4OTYzNWVlMTcz
N2JkZWUwOTQ0Zjk2MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBh
dXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0
aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMiAKK1BBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBh
IG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMyAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGlj
YXRvci4gNCAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxl
bnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gNSAKK1BBU1MgUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sg
bG9jYWwgYXV0aGVudGljYXRvci4gNiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLXNp
bGVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk2NmM4MjYzMmFlOWI5NjdmOWM0NjEzMGYzNjVmZDNmZGM5MDFmNmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwx
NTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHNpbGVudCBmYWlsdXJlIGNhc2VzIHdpdGgg
YSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3Vy
YXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25m
aWd1cmF0aW9uLgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTog
dHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2NlcHRBdHRlc3Rh
dGlvbjogZmFsc2UgfSB9KTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29u
c3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAg
IHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAg
bmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVS
TC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3Bs
YXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBwdWJL
ZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTM1IH0sIHsgdHlwZTog
InB1YmxpYy1rZXkiLCBhbGc6IC0yNTcgfV0sIC8vIEVTMzg0LCBSUzI1NgorICAgICAgICAgICAg
ICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHJldHVy
biBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgfSwgIlB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBt
b2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7Cisg
ICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAg
ICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20i
CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAg
ICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlk
OiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAg
ICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAg
ICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1d
LAorICAgICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1r
ZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAg
ICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVz
dEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RV
c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RB
bGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3Bl
cmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0
ZXN0UnBJZCk7CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tj
cmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9y
LiAyIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAg
ICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2hu
IEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVz
dFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpv
aG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2Np
aVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgIGV4
Y2x1ZGVDcmVkZW50aWFsczogWworICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMt
a2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNw
b3J0czogWyJ1c2IiXSB9LAorICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5
IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0
czogWyJuZmMiXSB9LAorICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5Iiwg
aWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czog
WyJibGUiXSB9LAorICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJp
bnRlcm5hbCJdIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6
IDEwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVT
MjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKKyAg
ICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50
aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7CisgICAgICAgIH0p
OworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBm
YWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAzIik7CisKKyAgICBwcm9taXNl
X3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1l
OiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2Vy
OiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAg
ICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAor
ICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2
IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1r
ZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAg
ICB9CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxs
b3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJh
dGlvbiB0aW1lZCBvdXQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDQi
KTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsK
KyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNl
cmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIs
CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBb
eyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgdGltZW91
dDogMTAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tD
b25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVu
dGljYXRpb246IHRydWUsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgICAgICBy
ZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOworICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGlu
IGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiA1Iik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9
PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsK
KyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBs
ZS5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAg
ICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAg
ICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAg
ICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAg
ICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6
IC03IH1dLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICB9CisgICAg
ICAgIH07CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50RmFp
bHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsIGFjY2VwdEF0
dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5
VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJo
YW5kbGVCYXNlNjQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0
LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25z
KSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRlc3RSdW5u
ZXIua2V5RXhpc3RzSW5LZXljaGFpbih0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpKTsK
KyAgICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdp
dGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDYiKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtZmFpbHVyZS1sb2NhbC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYTA4MGY1ZmQ0ZDIxYjNl
YTFkOWJhNWY0YjBhZDJkMWUwMTg4YzJhZC4uZmJlMWE4MjUzMTgwNmZkYzBhMDdmZTFkYTU4OTMx
MjQyNTIzYzlmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC01LDQgKzUsNSBA
QCBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWF0Y2hlZCBleGNs
dWRlIGNyZWRlbnRpYWxzIGluIGEgbW9jawogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tj
cmVhdGVdXSB3aXRob3V0IHVzZXIgY29uc2VudCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRv
ci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGhvdXQgYXR0ZXN0
YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tjcmVhdGVdXSBkZWxldGluZyBvbGQgY3JlZGVudGlhbCBpbiBhIG1vY2sgbG9j
YWwgYXV0aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggdGltZW91dCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cmVhdGUtZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0
bWwKaW5kZXggM2E2ZTQ5YTQ3MDI2OGNhMDFiNzljYjFhYzk3OWE5MGJhYzJlODEwMS4uNTZmYmMz
ZWNhNDkxYjRmNGFkOWVjYzI0OTFlM2QxYWM2NjdkMGZjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJl
LWxvY2FsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwKQEAgLTE0
MSw0ICsxNDEsMjcgQEAKICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UodGVzdFJ1bm5lci5r
ZXlFeGlzdHNJbktleWNoYWluKHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCkpOwogICAg
ICAgICB9KTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gZGVsZXRp
bmcgb2xkIGNyZWRlbnRpYWwgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0gewor
ICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAg
ICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBs
ZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1
NiIpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgi
MTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1
YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwLAorICAg
ICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHsgYXV0aGVudGljYXRvckF0dGFj
aG1lbnQ6ICJjcm9zcy1wbGF0Zm9ybSIgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhl
bnRpY2F0aW9uOiBmYWxzZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgICAg
IHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAg
fSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGltZW91dCBpbiBhIG1v
Y2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWls
dXJlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggMDgwZDNjZWM4MmEzY2I1YjA1MDRmZWM3NTc4NDFiOTUwNGViZTY3ZS4uZTI2MDRhZTBkOWFj
ZWYyYjIzNGZhNTI1ODQ5YTI5MDJiYjViYmVmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsNSBAQAogCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGlt
ZW91dCAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBhIG1pc21h
dGNoZWQgUlAgSUQgCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGgg
YW4gZW1wdHkgcHViS2V5Q3JlZFBhcmFtcyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbAppbmRleCBjNTI0OTZjODUzNmFmZGUzOWE1YTZh
MzExNzdiYWU1NGMxZmNiYzQyLi45ZWEzNDI4YmI0NDdlNTYwMWIyMjhhOGJhZjAxNjVkZjE3Y2Iy
NGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0
cHMuaHRtbApAQCAtOCwyNyArOCwyNiBAQAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsg
fSk7CiAKLSAgICAvLyBGSVhNRSgxODk2NDIpOiBSZS1lbmFibGUgdGhlIGZvbGxvd2luZyB0ZXN0
LgotICAgIC8vIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgLy8gICAgIGNvbnN0IG9w
dGlvbnMgPSB7Ci0gICAgLy8gICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAvLyAgICAgICAgICAg
ICBycDogewotICAgIC8vICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAg
Ly8gICAgICAgICAgICAgfSwKLSAgICAvLyAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgLy8gICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgLy8gICAgICAgICAgICAg
ICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgLy8gICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgLy8gICAgICAgICAgICAgfSwKLSAgICAvLyAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAv
LyAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTcgfV0sCi0gICAgLy8gICAgICAgICAgICAgdGltZW91dDogMCwKLSAgICAvLyAgICAgICAg
IH0KLSAgICAvLyAgICAgfTsKLSAgICAvLwotICAgIC8vICAgICByZXR1cm4gcHJvbWlzZVJlamVj
dHModCwgIk5vdEFsbG93ZWRFcnJvciIsCi0gICAgLy8gICAgICAgICBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKLSAgICAvLyB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0Iik7CisgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAg
ICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVz
ZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYi
KSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEy
MzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJs
aWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMCwKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwg
Ik5vdEFsbG93ZWRFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKKyAgICB9LCAiUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0Iik7CiAKICAgICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgICAgICBjb25zdCBvcHRpb25zID0gewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1m
YWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2ls
ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzk4NmM4YTliYzc5YzdkMTdlYTA5
MzE0YzE0ODFhM2UxMmUzMTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVu
dC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0
aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2ls
ZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDIgCitQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxv
Y2FsIGF1dGhlbnRpY2F0b3IuIDMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NTA3ZDQ1NjMxZGU2OWFjMWNkNjhlYzI5NjM0ZTc3ZTkyNDI5ZDhkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdl
dC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIGZhaWx1cmUgY2FzZXMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZp
Z3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBj
b25maWd1cmF0aW9uLgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVy
ZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2NlcHRBdHRl
c3RhdGlvbjogZmFsc2UgfSB9KTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAg
Y29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAg
ICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAg
ICAgIGFsbG93Q3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVi
bGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRy
YW5zcG9ydHM6IFsidXNiIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGlj
LWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5z
cG9ydHM6IFsibmZjIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtl
eSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9y
dHM6IFsiYmxlIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIs
IGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6
IFsiaW50ZXJuYWwiXSB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICB0aW1l
b3V0OiAxMAorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJldHVybiBwcm9t
aXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdl
dChvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgfSwgIlB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1
dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0
IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBj
aGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBh
bGxvd0NyZWRlbnRpYWxzOiBbCisgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1r
ZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSB9CisgICAgICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgfQor
ICAgICAgICB9OworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2
NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgcmV0dXJuIHByb21p
c2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0
KG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkKTsKKyAgICAgICAgICAgIH0pOworICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEg
bW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAyIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAg
ICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgfQorICAgICAgICB9OworCisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRk
VGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRl
c3RVc2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJO
b3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiT3Bl
cmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0
ZXN0UnBJZCk7CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tn
ZXRdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAz
Iik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGQzZjRmNWQ3YWU5ZmFk
ZWM5NDRkZTg4NzU4MTlhMjY1YjU0MzU0MDAuLjg3OGRjYjczMjczZGIwMTAwMmIwMzQyM2VmNWQw
NzU2ZTY3OWMyN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDUgQEAKIFBB
U1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGNyZWRlbnRp
YWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGNyZWRlbnRpYWxzIGluIGEgbW9jayBsb2Nh
bCBhdXRoZW50aWNhdG9yLiAybmQgCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1d
IHdpdGhvdXQgdXNlciBjb25zZW50IGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAKK1BB
U1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0aW1lb3V0IGluIGEgbW9jayBs
b2NhbCBhdXRoZW50aWNhdG9yLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbAppbmRleCBmMzA1YTQzNDNjN2FhY2I2MTc5ZWY2
MDJjN2ZkYWQ3MjQzZWQ2YjhmLi4yOWJiN2Y0YjRjZTg4NGYyNjg5YTA2ZDY4ODZjZGUwMTk1M2Q4
ZmE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9j
YWwuaHR0cHMuaHRtbApAQCAtNTYsNCArNTYsMjAgQEAKICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7CiAgICAgICAgIH0pOwogICAgIH0sICJQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRob3V0IHVzZXIgY29uc2VudCBpbiBhIG1vY2sg
bG9jYWwgYXV0aGVudGljYXRvci4iKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAg
ICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAg
ICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAg
ICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAi
cHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCks
IHRyYW5zcG9ydHM6IFsidXNiIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVi
bGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRy
YW5zcG9ydHM6IFsibmZjIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGlj
LWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5z
cG9ydHM6IFsiYmxlIl0gfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgdGlt
ZW91dDogMTAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gcHJv
bWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5n
ZXQob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOworICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHRpbWVvdXQgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRp
Y2F0b3IuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGRjMGI5MTdlMzBjMWY2YjRkYjRi
NzZhYTkyZjIwNjhjY2IxN2Y2MjkuLjFmNzE0ODFlZTYzYjk1YTljN2UzZjkwOGRlODliODIzZDE0
MmNmNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDQgQEAKIAorUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHRpbWVvdXQgCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIFJQIElEIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCmluZGV4IGNlNWUyOGJjNzFjYzFjMDhiMTdi
ZGU5ZTY3MzhhNTBlMDEwNWI0ZDMuLmIwNWVjY2IyOGVlZmQzZTk1NzdhOTA4ZTdlYzM2ZDQ2N2Ez
NmEyNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5o
dG1sCkBAIC04LDI2ICs4LDI2IEBACiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAg
ICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyB9KTsK
IAotICAgIC8vIEZJWE1FKDE4OTY0Mik6IFJlLWVuYWJsZSB0aGUgZm9sbG93aW5nIHRlc3QuCi0g
ICAgLy8gcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICAvLyAgICAgY29uc3Qgb3B0aW9u
cyA9IHsKLSAgICAvLyAgICAgICAgIHB1YmxpY0tleTogewotICAgIC8vICAgICAgICAgICAgIGNo
YWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgIC8vICAgICAgICAgICAg
IHRpbWVvdXQ6IDAsCi0gICAgLy8gICAgICAgICB9Ci0gICAgLy8gICAgIH07Ci0gICAgLy8KLSAg
ICAvLyAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLAotICAg
IC8vICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk9wZXJhdGlv
biB0aW1lZCBvdXQuIik7Ci0gICAgLy8gfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1d
IHdpdGggdGltZW91dCIpOworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qg
b3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNo
YWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHRp
bWVvdXQ6IDEwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgcmV0dXJuIHBy
b21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLAorICAgICAgICAgICAgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAg
fSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGltZW91dCIpOwogCi0gICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7CiAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKICAgICAgICAg
ICAgICAgICBycElkOiAiZXhhbXBsZS5jb20iLAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpCiAgICAgICAgICAgICB9CiAgICAgICAgIH07CisK
ICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJTZWN1cml0eUVycm9yIiwKICAgICAg
ICAgICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJUaGUgb3JpZ2luIG9m
IHRoZSBkb2N1bWVudCBpcyBub3QgYSByZWdpc3RyYWJsZSBkb21haW4gc3VmZml4IG9mIHRoZSBw
cm92aWRlZCBSUCBJRC4iKTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0g
d2l0aCBhIG1pc21hdGNoZWQgUlAgSUQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKaW5kZXggNTMxZjFhZGZhN2Y3ZmYxNDI2ODgxMjlhOGI5
MzNkNjI1MDc5ZmNmNi4uMWJkY2Y4MzRjMGMzYmI3MmIwYWQ4NmYzZTc1MjZjMGI5MDYwNjY5NyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwu
anMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMK
QEAgLTE3MiwxMCArMTcyLDE5IEBAIGZ1bmN0aW9uIGV4dHJhY3RSYXdTaWduYXR1cmUoYXNuMXNp
Z25hdHVyZSkKIHsKICAgICBjb25zdCBzaWduYXR1cmUgPSBuZXcgVWludDhBcnJheShhc24xc2ln
bmF0dXJlKTsKICAgICBsZXQgdG1wID0gbmV3IFVpbnQ4QXJyYXkoNjQpOworCiAgICAgY29uc3Qg
clN0YXJ0ID0gIHNpZ25hdHVyZVszXSAtIDMyOwotICAgIHRtcC5zZXQobmV3IFVpbnQ4QXJyYXko
c2lnbmF0dXJlLnNsaWNlKDQgKyByU3RhcnQsIDM2ICsgclN0YXJ0KSksIDApOworICAgIGlmIChy
U3RhcnQgPj0gMCkKKyAgICAgICAgdG1wLnNldChuZXcgVWludDhBcnJheShzaWduYXR1cmUuc2xp
Y2UoNCArIHJTdGFydCwgMzYgKyByU3RhcnQpKSwgMCk7CisgICAgZWxzZQorICAgICAgICB0bXAu
c2V0KG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZS5zbGljZSg0LCAzNiArIHJTdGFydCkpLCAtclN0
YXJ0KTsKKwogICAgIGNvbnN0IHNTdGFydCA9ICBzaWduYXR1cmVbMzcgKyByU3RhcnRdIC0gMzI7
Ci0gICAgdG1wLnNldChuZXcgVWludDhBcnJheShzaWduYXR1cmUuc2xpY2UoMzggKyByU3RhcnQg
KyBzU3RhcnQpKSwgMzIpOworICAgIGlmIChzU3RhcnQgPj0gMCkKKyAgICAgICAgdG1wLnNldChu
ZXcgVWludDhBcnJheShzaWduYXR1cmUuc2xpY2UoMzggKyByU3RhcnQgKyBzU3RhcnQpKSwgMzIp
OworICAgIGVsc2UKKyAgICAgICAgdG1wLnNldChuZXcgVWludDhBcnJheShzaWduYXR1cmUuc2xp
Y2UoMzggKyByU3RhcnQpKSwgMzIgLSBzU3RhcnQpOworCiAgICAgcmV0dXJuIHRtcC5idWZmZXI7
CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351572</attachid>
            <date>2018-10-03 18:28:44 -0700</date>
            <delta_ts>2018-10-04 12:32:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189642-20181003182843.patch</filename>
            <type>text/plain</type>
            <size>49755</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY1ZDZhNjc3M2IzZjVl
MWUxY2VkY2VkYTFiNGFiMmY2MDBiMzM2OS4uM2U1ZDdiMzRjNThjZmU1NjMzZTkzOTYzZTRkYTll
Mzk0ZTU1ZTk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTEwLTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBNb3Zl
IHRpbWUgb3V0IGNvbnRyb2wgZnJvbSBXZWJQcm9jZXNzIHRvIFVJUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjQyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NDQ3Njc2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW5jZSBub3cgdGhlIGNvbnRyb2wgdW5pdCBvZiBXZWJBdXRoTiBo
YXMgYmVlbiBtb3ZlZCB0byBVSSBQcm9jZXNzLCBpLmUuIEF1dGhlbnRpY2F0b3JNYW5hZ2VyLAor
ICAgICAgICB0aGUgdGltZSBvdXQgdGltZXIgc2hvdWxkIG1vdmUgdG8gVUkgUHJvY2VzcyBhcyB3
ZWxsLgorCisgICAgICAgIFRlc3RzOiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1s
b2NhbC1zaWxlbnQuaHR0cHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yOjpjcmVhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDo6aW5pdFRpbWVv
dXRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JJbnRlcm5hbDo6ZGlkVGltZW91dFRpbWVyRmlyZSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOjpkZWNvZGUpOgorCiAyMDE4LTEwLTAx
ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTVNF
XVtHU3RyZWFtZXJdIFNldCBhIG1pbmltdW0gc2FtcGxlIGR1cmF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEw
NzJhMDkzZTMzMDNmZTIwMjFhMDA2MTAzYTFmYmNkODhiNGI0YWYuLmIxOTQ2OGE0YzQ0NmFlMzBh
MjQ0MmM5ODQxZmQ2YTBjMjViNjY4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTgt
MTAtMDEgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2Vi
QXV0aE5dIE1vdmUgdGltZSBvdXQgY29udHJvbCBmcm9tIFdlYlByb2Nlc3MgdG8gVUlQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk2NDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0NDc2NzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlc2lkZXMgYWRkaW5nIGEgdGltZSBvdXQgdGlt
ZXIgaW4gdGhlIEF1dGhlbnRpY2F0b3JNYW5hZ2VyLCB0aGlzIHBhdGNoIGFsc28gYWRkcyBhIG5l
dworICAgICAgICBvcHRpb24gaW4gTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiB0
byB0dXJuIG9uIHNpbGVudCBmYWlsdXJlIHdoaWNoIGlzIHRoZQorICAgICAgICBkZWZhdWx0IHBv
bGljeSBvZiB0cmVhdGluZyBhdXRoZW50aWNhdG9ycycgZXJyb3IgYXMgc3VnZ2VzdGVkIGJ5IHNw
ZWMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0Nv
bmZpZ3VyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5h
Z2VySW50ZXJuYWw6OmNvbGxlY3RUcmFuc3BvcnRzKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVu
dGljYXRvck1hbmFnZXI6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVu
dGljYXRvck1hbmFnZXI6OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yTWFuYWdlcjo6aW5pdFRpbWVPdXRUaW1lcik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6
OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXF1ZXN0VGltZU91dFRpbWVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpNb2NrQXV0aGVudGljYXRvck1hbmFnZXI6OnJlc3BvbmRS
ZWNlaXZlZEludGVybmFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
TW9jay9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmg6CisKIDIwMTgtMTAtMDEg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBG
aXggaW50ZXJuYWwgYnVpbGQgYWZ0ZXIgcjIzNjY2NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmlu
ZGV4IGNkNGE1MWZkMmFlOWRmZmU3ZDIwMTM3ODU4MDJkMGZlNmVmZmU1ZjMuLmEwNTU0YjczNGE1
MWQzZmNmNjM3NzIyY2QyMWNkYzhkODM4ZTkzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAK
QEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIgog
I2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxwYWwvY3J5
cHRvL0NyeXB0b0RpZ2VzdC5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC04MiwyOSArODEsNiBAQCBzdGF0aWMgVmVjdG9y
PHVpbnQ4X3Q+IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY29uc3QgQXJyYXlCdWZmZXImIGNs
aWVudERhdGFKcwogICAgIHJldHVybiBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7CiB9CiAKLS8vIEZJ
WE1FKDE4MTk0Nyk6IFdlIHNob3VsZCBwcm9iYWJseSB0cmltIHRpbWVPdXRJbk1zIHRvIHNvbWUg
bWF4IGFsbG93YWJsZSBudW1iZXIuCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBpbml0
VGltZW91dFRpbWVyKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZU91dEluTXMsIGNv
bnN0IENyZWRlbnRpYWxQcm9taXNlJiBwcm9taXNlKQotewotICAgIGlmICghdGltZU91dEluTXMp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byB0aW1lciA9IHN0ZDo6bWFrZV91
bmlxdWU8VGltZXI+KFtwcm9taXNlID0gcHJvbWlzZV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIk9wZXJhdGlvbiB0aW1l
ZCBvdXQuIl9zIH0pOwotICAgIH0pOwotICAgIHRpbWVyLT5zdGFydE9uZVNob3QoU2Vjb25kczo6
ZnJvbU1pbGxpc2Vjb25kcygqdGltZU91dEluTXMpKTsKLSAgICByZXR1cm4gdGltZXI7Ci19Ci0K
LXN0YXRpYyBib29sIGRpZFRpbWVvdXRUaW1lckZpcmUoVGltZXIqIHRpbWVyKQotewotICAgIGlm
ICghdGltZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIXRpbWVyLT5pc0FjdGl2
ZSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB0aW1lci0+c3RvcCgpOwotICAgIHJldHVy
biBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgQXV0aGVudGljYXRvckNvb3JkaW5hdG9ySW50
ZXJuYWwKIAogQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3Ioc3RkOjp1bmlxdWVfcHRyPEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudD4mJiBjbGll
bnQpCkBAIC0xMzAsOSArMTA2LDYgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmNy
ZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgLy8gU3RlcCA0ICYgMTcuCi0gICAgc3RkOjp1bmlxdWVfcHRy
PFRpbWVyPiB0aW1lb3V0VGltZXIgPSBpbml0VGltZW91dFRpbWVyKG9wdGlvbnMudGltZW91dCwg
cHJvbWlzZSk7Ci0KICAgICAvLyBTdGVwIDUtNy4KICAgICAvLyBGSVhNRSgxODE5NTApOiBXZSBs
YWNrIGZ1bmRhbWVudGFsIHN1cHBvcnQgZnJvbSBTZWN1cml0eU9yaWdpbiB0byBkZXRlcm1pbmUg
aWYgYSBob3N0IGlzIGEgdmFsaWQgZG9tYWluIG9yIG5vdC4KICAgICAvLyBTdGVwIDYgaXMgdGhl
cmVmb3JlIHNraXBwZWQuIEFsc28sIHdlIGxhY2sgdGhlIHN1cHBvcnQgdG8gZGV0ZXJtaW5lIHdo
ZXRoZXIgYSBkb21haW4gaXMgYSByZWdpc3RyYWJsZQpAQCAtMTU2LDcgKzEyOSw3IEBAIHZvaWQg
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpjcmVhdGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNh
bGxlck9yaWdpbiwgY29uc3QKICAgICBhdXRvIGNsaWVudERhdGFKc29uID0gcHJvZHVjZUNsaWVu
dERhdGFKc29uKENsaWVudERhdGFUeXBlOjpDcmVhdGUsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxs
ZXJPcmlnaW4pOwogICAgIGF1dG8gY2xpZW50RGF0YUpzb25IYXNoID0gcHJvZHVjZUNsaWVudERh
dGFKc29uSGFzaChjbGllbnREYXRhSnNvbik7CiAKLSAgICAvLyBTdGVwIDE4LTIxLgorICAgIC8v
IFN0ZXAgNCwgMTctMjEuCiAgICAgLy8gT25seSBwbGF0Zm9ybSBhdHRhY2htZW50cyB3aWxsIGJl
IHN1cHBvcnRlZCBhdCB0aGlzIHN0YWdlLiBBc3N1bWluZyBvbmUgYXV0aGVudGljYXRvciBwZXIg
ZGV2aWNlLgogICAgIC8vIEFsc28sIHJlc2lkZW50IGtleXMsIHVzZXIgdmVyaWZpY2F0aW9ucyBh
bmQgZGlyZWN0IGF0dGVzdGF0aW9uIGFyZSBlbmZvcmNlZCBhdCB0aGlzIHRhZ2UuCiAgICAgLy8g
Rm9yIGJldHRlciBwZXJmb3JtYW5jZSwgdHJhbnNwb3J0cyBvZiBvcHRpb25zLmV4Y2x1ZGVDcmVk
ZW50aWFscyBhcmUgY2hlY2tlZCBpbiBMb2NhbEF1dGhlbnRpY2F0b3IuCkBAIC0xNjUsOSArMTM4
LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmNyZWF0ZShjb25zdCBTZWN1cml0
eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFtjbGllbnREYXRhSnNvbiA9IFdURk1vdmUoY2xp
ZW50RGF0YUpzb24pLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgdGltZW91dFRpbWVyID0g
V1RGTW92ZSh0aW1lb3V0VGltZXIpLCBhYm9ydFNpZ25hbCA9IFdURk1vdmUoYWJvcnRTaWduYWwp
XSAoY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEmIGRhdGEsIGNvbnN0IFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChk
aWRUaW1lb3V0VGltZXJGaXJlKHRpbWVvdXRUaW1lci5nZXQoKSkpCi0gICAgICAgICAgICByZXR1
cm47CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFtjbGllbnREYXRhSnNvbiA9IFdURk1v
dmUoY2xpZW50RGF0YUpzb24pLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgYWJvcnRTaWdu
YWwgPSBXVEZNb3ZlKGFib3J0U2lnbmFsKV0gKGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWxEYXRhJiBkYXRhLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJiBleGNlcHRpb24p
IG11dGFibGUgewogICAgICAgICBpZiAoYWJvcnRTaWduYWwgJiYgYWJvcnRTaWduYWwtPmFib3J0
ZWQoKSkgewogICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJv
ciwgIkFib3J0ZWQgYnkgQWJvcnRTaWduYWwuIl9zIH0pOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTk4LDkgKzE2OSw2IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3Zl
ckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIFN0ZXAgNCAmIDE2LgotICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1l
cj4gdGltZW91dFRpbWVyID0gaW5pdFRpbWVvdXRUaW1lcihvcHRpb25zLnRpbWVvdXQsIHByb21p
c2UpOwotCiAgICAgLy8gU3RlcCA1LTcuCiAgICAgLy8gRklYTUUoMTgxOTUwKTogV2UgbGFjayBm
dW5kYW1lbnRhbCBzdXBwb3J0IGZyb20gU2VjdXJpdHlPcmlnaW4gdG8gZGV0ZXJtaW5lIGlmIGEg
aG9zdCBpcyBhIHZhbGlkIGRvbWFpbiBvciBub3QuCiAgICAgLy8gU3RlcCA2IGlzIHRoZXJlZm9y
ZSBza2lwcGVkLiBBbHNvLCB3ZSBsYWNrIHRoZSBzdXBwb3J0IHRvIGRldGVybWluZSB3aGV0aGVy
IGEgZG9tYWluIGlzIGEgcmVnaXN0cmFibGUKQEAgLTIxNiw3ICsxODQsNyBAQCB2b2lkIEF1dGhl
bnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgU2Vj
dXJpdHlPcmlnaW4mCiAgICAgYXV0byBjbGllbnREYXRhSnNvbiA9IHByb2R1Y2VDbGllbnREYXRh
SnNvbihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2lu
KTsKICAgICBhdXRvIGNsaWVudERhdGFKc29uSGFzaCA9IHByb2R1Y2VDbGllbnREYXRhSnNvbkhh
c2goY2xpZW50RGF0YUpzb24pOwogCi0gICAgLy8gU3RlcCAxNC0xNSwgMTctMTkuCisgICAgLy8g
U3RlcCA0LCAxNC0xOS4KICAgICAvLyBPbmx5IHBsYXRmb3JtIGF0dGFjaG1lbnRzIHdpbGwgYmUg
c3VwcG9ydGVkIGF0IHRoaXMgc3RhZ2UuIEFzc3VtaW5nIG9uZSBhdXRoZW50aWNhdG9yIHBlciBk
ZXZpY2UuCiAgICAgLy8gQWxzbywgcmVzaWRlbnQga2V5cywgdXNlciB2ZXJpZmljYXRpb25zIGFu
ZCBkaXJlY3QgYXR0ZXN0YXRpb24gYXJlIGVuZm9yY2VkIGF0IHRoaXMgdGFnZS4KICAgICAvLyBG
b3IgYmV0dGVyIHBlcmZvcm1hbmNlLCBmaWx0ZXJpbmcgb2Ygb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzIGlzIGRvbmUgaW4gTG9jYWxBdXRoZW50aWNhdG9yLgpAQCAtMjI1LDkgKzE5Myw3IEBAIHZv
aWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShj
b25zdCBTZWN1cml0eU9yaWdpbiYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBbY2xpZW50RGF0YUpzb24gPSBXVEZNb3ZlKGNsaWVudERhdGFK
c29uKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHRpbWVvdXRUaW1lciA9IFdURk1vdmUo
dGltZW91dFRpbWVyKSwgYWJvcnRTaWduYWwgPSBXVEZNb3ZlKGFib3J0U2lnbmFsKV0gKGNvbnN0
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJiBkYXRhLCBjb25zdCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICBpZiAoZGlkVGltZW91
dFRpbWVyRmlyZSh0aW1lb3V0VGltZXIuZ2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuOworICAg
IGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbY2xpZW50RGF0YUpzb24gPSBXVEZNb3ZlKGNsaWVu
dERhdGFKc29uKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGFib3J0U2lnbmFsID0gV1RG
TW92ZShhYm9ydFNpZ25hbCldIChjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0
YSYgZGF0YSwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKGFib3J0U2lnbmFsICYmIGFib3J0U2lnbmFsLT5hYm9ydGVkKCkpIHsK
ICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJBYm9y
dGVkIGJ5IEFib3J0U2lnbmFsLiJfcyB9KTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKaW5kZXggYmMxN2I1OGYwM2JhNWRhODE4ZTRj
Y2JmMGEzMzMzYWZjYjc1MzAzYy4uNmE0M2NjYWU3ZDhmMGE2Zjg3OWVjNDZjOTk4ZWRlZGQ0ZGE1
OTRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKQEAgLTc4LDcg
Kzc4LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgewogICAg
IEJ1ZmZlclNvdXJjZSBjaGFsbGVuZ2U7CiAgICAgVmVjdG9yPFBhcmFtZXRlcnM+IHB1YktleUNy
ZWRQYXJhbXM7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkIGxvbmc+IHRpbWVvdXQ7Cisg
ICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gdGltZW91dDsKICAgICBWZWN0b3I8UHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3I+IGV4Y2x1ZGVDcmVkZW50aWFsczsKICAgICBzdGQ6Om9wdGlv
bmFsPEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4gYXV0aGVudGljYXRvclNlbGVjdGlv
bjsKIApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBy
cC5pZCA8PCBycC5uYW1lIDw8IHJwLmljb247CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4odXNlci5pZC5sZW5ndGgoKSk7CiAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0
aERhdGEodXNlci5pZC5kYXRhKCksIHVzZXIuaWQubGVuZ3RoKCksIDEpOwotICAgIGVuY29kZXIg
PDwgdXNlci5kaXNwbGF5TmFtZSA8PCB1c2VyLm5hbWUgPDwgdXNlci5pY29uIDw8IHB1YktleUNy
ZWRQYXJhbXMgPDwgZXhjbHVkZUNyZWRlbnRpYWxzIDw8IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb247
CisgICAgZW5jb2RlciA8PCB1c2VyLmRpc3BsYXlOYW1lIDw8IHVzZXIubmFtZSA8PCB1c2VyLmlj
b24gPDwgcHViS2V5Q3JlZFBhcmFtcyA8PCB0aW1lb3V0IDw8IGV4Y2x1ZGVDcmVkZW50aWFscyA8
PCBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpA
QCAtMTQ4LDYgKzE0OCwxMyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM+IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdAogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnB1YktleUNy
ZWRQYXJhbXMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRp
b25hbDxzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPj4gdGltZW91dDsKKyAgICBkZWNvZGVyID4+IHRp
bWVvdXQ7CisgICAgaWYgKCF0aW1lb3V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIHJlc3VsdC50aW1lb3V0ID0gV1RGTW92ZSgqdGltZW91dCk7CisKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5leGNsdWRlQ3JlZGVudGlhbHMpKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogCkBAIC0xNTUsNyArMTYyLDcgQEAgc3RkOjpvcHRpb25hbDxQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPiBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHQK
ICAgICBkZWNvZGVyID4+IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb247CiAgICAgaWYgKCFhdXRoZW50
aWNhdG9yU2VsZWN0aW9uKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJlc3Vs
dC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uID0gV1RGTW92ZShhdXRoZW50aWNhdG9yU2VsZWN0aW9u
LnZhbHVlKCkpOworICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uID0gV1RGTW92ZSgq
YXV0aGVudGljYXRvclNlbGVjdGlvbik7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKaW5kZXggZjAxM2IyYmFhOTNmMGRkMWFkZDAz
MDA4MDAwMjNhYTA1YTMwNjBjMy4uMjc0NDc2ZWY3MjdiODVkNzVkZDFhOWUyMGM1ODdhZDFiOTJm
MGYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCkBAIC0zNSw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyB7CiAgICAgQnVmZmVyU291cmNlIGNoYWxsZW5nZTsKLSAgICBzdGQ6Om9w
dGlvbmFsPHVuc2lnbmVkIGxvbmc+IHRpbWVvdXQ7CisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25l
ZD4gdGltZW91dDsKICAgICBtdXRhYmxlIFN0cmluZyBycElkOwogICAgIFZlY3RvcjxQdWJsaWNL
ZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVkZW50aWFsczsKIApAQCAtNDcsMTMgKzQ3
LDIwIEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewogdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IHJwSWQg
PDwgYWxsb3dDcmVkZW50aWFsczsKKyAgICBlbmNvZGVyIDw8IHRpbWVvdXQgPDwgcnBJZCA8PCBh
bGxvd0NyZWRlbnRpYWxzOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRp
b25hbDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IFB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIHJlc3VsdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4+IHRpbWVvdXQ7CisgICAgZGVjb2RlciA+PiB0aW1lb3V0
OworICAgIGlmICghdGltZW91dCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBy
ZXN1bHQudGltZW91dCA9IFdURk1vdmUoKnRpbWVvdXQpOworCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQucnBJZCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYWxsb3dDcmVkZW50aWFscykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWFhMzliZmM5
MGNkOWRhMDIwODEyY2MzYjE5MWVhYWZhZTM0ZDU5ZC4uZTA3MTdhMjk3YjYzMTYwNmViYzJlNTY3
NDBkZGI2NTdlMjE0MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTg4MDMsMTMgKzE4ODAzLDYgQEAKIAkJCXBhdGggPSBj
Ym9yOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJNTc0RjU1REQyMDRGMzc0
NDAwMjk0OEM2IC8qIGNvY29hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwotCQl9OwogCQk1N0M3QTY4ODFFNTY5NDZEMDBDNjdENzEgLyogY3JlZGVudGlhbG1hbmFnZW1l
bnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTg4NTEs
NyArMTg4NDQsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1
NzMwM0JCMzIwMDZDNkVEMDAzNTU5NjUgLyogY2JvciAqLywKLQkJCQk1NzRGNTVERDIwNEYzNzQ0
MDAyOTQ4QzYgLyogY29jb2EgKi8sCiAJCQkJNTczMDNDMjcyMDA5QjJGQzAwMzU1OTY1IC8qIEF1
dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oICovLAogCQkJCTU3MzAzQzI5MjAwOUIyRkMw
MDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaWRsICovLAogCQkJCTU3
MzAzQzFCMjAwOUE5ODYwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25z
ZS5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggNjdhNTQyM2VhNWVkNTdhMWU4YmY5ZGFkODMyMGUw
NGRiYWY3MzFiNC4uN2IwMDQxNmU5ZTMxMTY5MjM4NTdhMzM1NWUzMWJhMjI0ZGZkYjRjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCkBAIC01NzcsNiArNTc3LDEwIEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVS
CiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1
cmF0aW9uIGNvbmZpZ3VyYXRpb247CiAKKyAgICBhdXRvIHNpbGVudEZhaWx1cmVSZWYgPSBzdGF0
aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkoY29uZmlndXJh
dGlvblJlZiwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2lsZW50RmFp
bHVyZSIpKS5nZXQoKSkpOworICAgIGlmIChzaWxlbnRGYWlsdXJlUmVmKQorICAgICAgICBjb25m
aWd1cmF0aW9uLnNpbGVudEZhaWx1cmUgPSBXS0Jvb2xlYW5HZXRWYWx1ZShzaWxlbnRGYWlsdXJl
UmVmKTsKKwogICAgIGF1dG8gbG9jYWxSZWYgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkoY29uZmlndXJhdGlvblJlZiwgYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTG9jYWwiKSkuZ2V0KCkpKTsKICAgICBpZiAobG9j
YWxSZWYpIHsKICAgICAgICAgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6TG9j
YWwgbG9jYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKaW5kZXggNzM1NWEz
MjhkZjk5YzcxOWU0ZDgyNzNhODA2Yjk5YWE0ODhkOTc4Ny4uYWM5YmE5NzYyMDM3YjhlM2Q4NjBk
OGE2OTM5NWYzYjg4ZDdiNDZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNw
cApAQCAtMzgsNiArMzgsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIG5hbWVzcGFjZSBB
dXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsIHsKIAogY29uc3Qgc2l6ZV90IG1heFRyYW5zcG9y
dE51bWJlciA9IDE7CisvLyBTdWdnZXN0ZWQgYnkgV2ViQXV0aE4gc3BlYyBhcyBvZiA3IEF1Z3Vz
dCAyMDE4LgorY29uc3QgdW5zaWduZWQgbWF4VGltZU91dFZhbHVlID0gMTIwMDAwOwogCiAvLyBG
SVhNRSgxODg2MjMsIDE4ODYyNCwgMTg4NjI1KTogU3VwcG9ydCBVU0IsIE5GQyBhbmQgQkxFIGF1
dGhlbnRpY2F0b3JzLgogc3RhdGljIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpUcmFuc3BvcnRTZXQg
Y29sbGVjdFRyYW5zcG9ydHMoY29uc3Qgc3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+JiBhdXRoZW50
aWNhdG9yU2VsZWN0aW9uKQpAQCAtNDksMTIgKzUxLDEyIEBAIHN0YXRpYyBBdXRoZW50aWNhdG9y
TWFuYWdlcjo6VHJhbnNwb3J0U2V0IGNvbGxlY3RUcmFuc3BvcnRzKGNvbnN0IHN0ZDo6b3B0aW9u
YWw8CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgaWYgKGF1dGhlbnRpY2F0
b3JTZWxlY3Rpb24udmFsdWUoKS5hdXRoZW50aWNhdG9yQXR0YWNobWVudCA9PSBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZv
cm0pIHsKKyAgICBpZiAoYXV0aGVudGljYXRvclNlbGVjdGlvbi0+YXV0aGVudGljYXRvckF0dGFj
aG1lbnQgPT0gUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRv
ckF0dGFjaG1lbnQ6OlBsYXRmb3JtKSB7CiAgICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gcmVzdWx0
LmFkZChBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCk7CiAgICAgICAgIEFTU0VSVF9V
TlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQotICAgIGlmIChhdXRoZW50aWNhdG9yU2VsZWN0aW9uLnZhbHVlKCkuYXV0
aGVudGljYXRvckF0dGFjaG1lbnQgPT0gUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OkNyb3NzUGxhdGZvcm0pCisgICAgaWYgKGF1dGhl
bnRpY2F0b3JTZWxlY3Rpb24tPmF1dGhlbnRpY2F0b3JBdHRhY2htZW50ID09IFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpDcm9zc1Bs
YXRmb3JtKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC0xMDQsNiArMTA2LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6bWFrZUNy
ZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWIKICAgICAvLyAx
LiBTYXZlIHJlcXVlc3QgZm9yIGFzeW5jIG9wZXJhdGlvbnMuCiAgICAgbV9wZW5kaW5nUmVxdWVz
dERhdGEgPSB7IGhhc2gsIHRydWUsIG9wdGlvbnMsIHsgfSB9OwogICAgIG1fcGVuZGluZ0NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjYWxsYmFjayk7CisgICAgaW5pdFRpbWVPdXRUaW1lcihv
cHRpb25zLnRpbWVvdXQpOwogCiAgICAgLy8gMi4gR2V0IGF2YWlsYWJsZSB0cmFuc3BvcnRzIGFu
ZCBzdGFydCBkaXNjb3ZlcmluZyBhdXRoZW50aWNhdG9ycyBvbiB0aGVtLgogICAgIHN0YXJ0RGlz
Y292ZXJ5KGNvbGxlY3RUcmFuc3BvcnRzKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbikp
OwpAQCAtMTIxLDYgKzEyNCw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmdldEFzc2Vy
dGlvbihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpCiAgICAgLy8gMS4g
U2F2ZSByZXF1ZXN0IGZvciBhc3luYyBvcGVyYXRpb25zLgogICAgIG1fcGVuZGluZ1JlcXVlc3RE
YXRhID0geyBoYXNoLCBmYWxzZSwgeyB9LCBvcHRpb25zIH07CiAgICAgbV9wZW5kaW5nQ29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKKyAgICBpbml0VGltZU91dFRpbWVyKG9w
dGlvbnMudGltZW91dCk7CiAKICAgICAvLyAyLiBHZXQgYXZhaWxhYmxlIHRyYW5zcG9ydHMgYW5k
IHN0YXJ0IGRpc2NvdmVyaW5nIGF1dGhlbnRpY2F0b3JzIG9uIHRoZW0uCiAgICAgQVNTRVJUKG1f
c2VydmljZXMuaXNFbXB0eSgpKTsKQEAgLTE0NywxMSArMTUxLDE1IEBAIHZvaWQgQXV0aGVudGlj
YXRvck1hbmFnZXI6OmF1dGhlbnRpY2F0b3JBZGRlZChSZWY8QXV0aGVudGljYXRvcj4mJiBhdXRo
ZW50aWNhdG9yCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2ZWQoUmVz
cG9uZCYmIHJlc3BvbmQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBB
U1NFUlQobV9yZXF1ZXN0VGltZU91dFRpbWVyKTsKKyAgICBpZiAoIW1fcmVxdWVzdFRpbWVPdXRU
aW1lci0+aXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQVNTRVJUKG1fcGVuZGlu
Z0NvbXBsZXRpb25IYW5kbGVyKTsKLSAgICAvLyBGSVhNRSgxODk2NDIpCiAgICAgaWYgKFdURjo6
aG9sZHNfYWx0ZXJuYXRpdmU8UHVibGljS2V5Q3JlZGVudGlhbERhdGE+KHJlc3BvbmQpKSB7CiAg
ICAgICAgIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzcG9uZCkpOwogICAg
ICAgICBjbGVhclN0YXRlKCk7CisgICAgICAgIG1fcmVxdWVzdFRpbWVPdXRUaW1lci0+c3RvcCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHJlc3BvbmRSZWNlaXZlZEludGVybmFsKFdU
Rk1vdmUocmVzcG9uZCkpOwpAQCAtMTc4LDYgKzE4NiwxOSBAQCB2b2lkIEF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpzdGFydERpc2NvdmVyeShjb25zdCBUcmFuc3BvcnRTZXQmIHRyYW5zcG9ydHMpCiAg
ICAgfQogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjppbml0VGltZU91dFRpbWVyKGNv
bnN0IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+JiB0aW1lT3V0SW5NcykKK3sKKyAgICB1c2luZyBu
YW1lc3BhY2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbDsKKworICAgIHVuc2lnbmVkIHRp
bWVPdXRJbk1zVmFsdWUgPSBzdGQ6Om1pbihtYXhUaW1lT3V0VmFsdWUsIHRpbWVPdXRJbk1zLnZh
bHVlX29yKG1heFRpbWVPdXRWYWx1ZSkpOworCisgICAgbV9yZXF1ZXN0VGltZU91dFRpbWVyID0g
c3RkOjptYWtlX3VuaXF1ZTxUaW1lcj4oW2NvbnRleHQgPSB0aGlzXSgpIG11dGFibGUgeworICAg
ICAgICBjb250ZXh0LT5tX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcigoRXhjZXB0aW9uRGF0YSB7
IE5vdEFsbG93ZWRFcnJvciwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIl9zIH0pKTsKKyAgICAgICAg
Y29udGV4dC0+Y2xlYXJTdGF0ZSgpOworICAgIH0pOworICAgIG1fcmVxdWVzdFRpbWVPdXRUaW1l
ci0+c3RhcnRPbmVTaG90KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZU91dEluTXNWYWx1
ZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAppbmRleCA1MDNiYzZiYzczMTFi
NjdmMTBmNGI1NWNjNTc0OTc3MjRlOTllYjA4Li5iYTIyZmQwMzQ0NDRlOWY2NGNjY2M2NWQ0ODM0
MTZjZmJiNjA2MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdWJsaWNL
ZXlDcmVkZW50aWFsRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNTcsNiArNTgsNyBAQCBwdWJsaWM6CiAKIHBy
b3RlY3RlZDoKICAgICBDYWxsYmFjayYgcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKCkgeyByZXR1
cm4gbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXI7IH0KKyAgICBXZWJDb3JlOjpUaW1lciogcmVx
dWVzdFRpbWVPdXRUaW1lcigpIHsgcmV0dXJuIG1fcmVxdWVzdFRpbWVPdXRUaW1lci5nZXQoKTsg
fQogICAgIHZvaWQgY2xlYXJTdGF0ZSgpOwogCiBwcml2YXRlOgpAQCAtNzIsMTAgKzc0LDEyIEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRSZWNlaXZlZEludGVybmFsKFJlc3Bv
bmQmJik7CiAKICAgICB2b2lkIHN0YXJ0RGlzY292ZXJ5KGNvbnN0IFRyYW5zcG9ydFNldCYpOwor
ICAgIHZvaWQgaW5pdFRpbWVPdXRUaW1lcihjb25zdCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiYg
dGltZU91dEluTXMpOwogCiAgICAgLy8gUmVxdWVzdDogV2Ugb25seSBhbGxvdyBvbmUgcmVxdWVz
dCBwZXIgdGltZS4KICAgICBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIG1fcGVuZGluZ1Jl
cXVlc3REYXRhOwogICAgIENhbGxiYWNrIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUaW1lcj4gbV9yZXF1ZXN0VGltZU91dFRpbWVyOwog
CiAgICAgVmVjdG9yPFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4+IG1f
c2VydmljZXM7CiAgICAgSGFzaFNldDxSZWY8QXV0aGVudGljYXRvcj4+IG1fYXV0aGVudGljYXRv
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Nb2NrL01vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAK
aW5kZXggN2UyNjliODc3NTIyZmIyMzFmY2I3MDIwMzE5N2E5MmNlMjczZTY5OS4uODM3YWEyNmRi
OWJjY2NmZWE2NmM0Nzg5NzZjZDI1NzI4NWFkNWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01v
Y2svTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApAQCAtNDIsOCArNDIsMTIgQEAgVW5pcXVl
UmVmPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBNb2NrQXV0aGVudGljYXRvck1hbmFn
ZXI6OmNyZWF0ZVNlcnZpY2UKIAogdm9pZCBNb2NrQXV0aGVudGljYXRvck1hbmFnZXI6OnJlc3Bv
bmRSZWNlaXZlZEludGVybmFsKFJlc3BvbmQmJiByZXNwb25kKQogeworICAgIGlmIChtX3Rlc3RD
b25maWd1cmF0aW9uLnNpbGVudEZhaWx1cmUpCisgICAgICAgIHJldHVybjsKKwogICAgIHBlbmRp
bmdDb21wbGV0aW9uSGFuZGxlcigpKFdURk1vdmUocmVzcG9uZCkpOwogICAgIGNsZWFyU3RhdGUo
KTsKKyAgICByZXF1ZXN0VGltZU91dFRpbWVyKCktPnN0b3AoKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Nb2NrL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbi5oCmluZGV4IDhhZmQ4ZmUxODFlYTQ3ZjVjMWJhNzg5YjNiNWM1
NDA0MDE0OWJiNTIuLjYzOWExMmIxNGRjNWFmNDg4NjhhMGRiMjgxOWQ2NjliNTE3MzQ4N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2sv
TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbi5oCkBAIC0zOCw2ICszOCw3IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uIHsKICAgICAgICAgU3RyaW5nIGludGVybWVkaWF0ZUNBQ2VydGlmaWNh
dGVCYXNlNjQ7CiAgICAgfTsKIAorICAgIGJvb2wgc2lsZW50RmFpbHVyZSB7IGZhbHNlIH07CiAg
ICAgc3RkOjpvcHRpb25hbDxMb2NhbD4gbG9jYWw7CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjkwOWU4NTk3OTNhODEzYzU4YzFkOTE1
MDI4YmY0OWZjMzAyYjcxYy4uM2QyNzA0N2E4MWMzMDQzYzRiZDY5Y2M3ZWNlMzViMDJhMzIyNzZj
NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE4LTEwLTAxICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBNb3ZlIHRpbWUgb3V0IGNvbnRyb2wgZnJvbSBXZWJQ
cm9jZXNzIHRvIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg5NjQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDQ3Njc2NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RSdW5uZXI6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24pOgorCiAyMDE4
LTEwLTAxICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkF1dGhOXSBJbXBvcnQgYSBKUyBDQk9SIGNvZGVyCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBjMThkZmM2MjNjZDBi
ODdkYjIzZGI2YzZkODRiNTY4Y2RmZDQwN2RlLi5kMGQzZWY5MWJhZTliZjBmMGIyZmQwNGY0MDVh
YmJlMGUzYmZmZjMzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIzNjEsOSArMjM2MSwxOSBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oSlNWYWx1ZVJlZiBj
b25maWd1cmF0aW9uVgogICAgIFZlY3RvcjxXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4+IGNvbmZp
Z3VyYXRpb25LZXlzOwogICAgIFZlY3RvcjxXS1JldGFpblB0cjxXS1R5cGVSZWY+PiBjb25maWd1
cmF0aW9uVmFsdWVzOwogCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNpbGVudEZhaWx1
cmVQcm9wZXJ0eU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJzaWxl
bnRGYWlsdXJlIikpOworICAgIEpTVmFsdWVSZWYgc2lsZW50RmFpbHVyZVZhbHVlID0gSlNPYmpl
Y3RHZXRQcm9wZXJ0eShjb250ZXh0LCBjb25maWd1cmF0aW9uLCBzaWxlbnRGYWlsdXJlUHJvcGVy
dHlOYW1lLmdldCgpLCAwKTsKKyAgICBpZiAoIUpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCBz
aWxlbnRGYWlsdXJlVmFsdWUpKSB7CisgICAgICAgIGlmICghSlNWYWx1ZUlzQm9vbGVhbihjb250
ZXh0LCBzaWxlbnRGYWlsdXJlVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBi
b29sIHNpbGVudEZhaWx1cmUgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIHNpbGVudEZhaWx1
cmVWYWx1ZSk7CisgICAgICAgIGNvbmZpZ3VyYXRpb25LZXlzLmFwcGVuZCh7IEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTaWxlbnRGYWlsdXJlIikgfSk7CisgICAgICAg
IGNvbmZpZ3VyYXRpb25WYWx1ZXMuYXBwZW5kKGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHNpbGVu
dEZhaWx1cmUpKS5nZXQoKSk7CisgICAgfQorCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGxvY2FsUHJvcGVydHlOYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
bG9jYWwiKSk7CiAgICAgSlNWYWx1ZVJlZiBsb2NhbFZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0
eShjb250ZXh0LCBjb25maWd1cmF0aW9uLCBsb2NhbFByb3BlcnR5TmFtZS5nZXQoKSwgMCk7Ci0g
ICAgaWYgKCFKU1ZhbHVlSXNOdWxsKGNvbnRleHQsIGxvY2FsVmFsdWUpKSB7CisgICAgaWYgKCFK
U1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwgbG9jYWxWYWx1ZSkgJiYgIUpTVmFsdWVJc051bGwo
Y29udGV4dCwgbG9jYWxWYWx1ZSkpIHsKICAgICAgICAgaWYgKCFKU1ZhbHVlSXNPYmplY3QoY29u
dGV4dCwgbG9jYWxWYWx1ZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIEpTT2JqZWN0
UmVmIGxvY2FsID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIGxvY2FsVmFsdWUsIDApOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDMxZTBjY2RiMTE3Njg1NzI4ZjVjYTY3M2I3ZGEwYmZmYmM5ZjUwYTguLjJjYjJlNjA0Njli
Y2NkYmY1MzFhNmZkYmJjYmE4NmZhMDBkZDU1Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAx
OC0xMC0wMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJBdXRoTl0gTW92ZSB0aW1lIG91dCBjb250cm9sIGZyb20gV2ViUHJvY2VzcyB0byBVSVByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY0
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ0NzY3NjU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGZpeGVzIHNvbWUg
Zmxha3kgYmVoYXZpb3VycyByZWdhcmRpbmcgdG8gdGhlIGRpcnR5IEFTTi4xIGRlY29kZXIuCisK
KyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJl
LWxvY2FsLXNpbGVudC5odHRwcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwuaHR0
cHMuaHRtbC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2Nh
bC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBz
Lmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVy
ZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLmh0dHBz
Lmh0bWwuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sOgorICAgICAg
ICAqIGh0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzOgorCiAyMDE4LTEwLTAxICBK
aWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhOXSBJ
bXBvcnQgYSBKUyBDQk9SIGNvZGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY2Nzk0MWZkYzgxNzRmZTA4OTYzNWVlMTczN2JkZWUwOTQ0Zjk2
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tj
cmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9y
LiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFp
bHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMiAKK1BBU1MgUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwg
YXV0aGVudGljYXRvci4gMyAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
d2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gNCAKK1BB
U1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBp
biBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gNSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVu
dGljYXRvci4gNiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NmM4
MjYzMmFlOWI5NjdmOWM0NjEzMGYzNjVmZDNmZGM5MDFmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxNTAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2NyZWF0ZV1dIHNpbGVudCBmYWlsdXJlIGNhc2VzIHdpdGggYSBtb2NrIGxvY2Fs
IGF1dGhlbnRpY2F0b3IuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisgICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3Rz
IG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRo
ZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6
IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2Ug
fSB9KTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAg
ICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4g
QXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0
VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9o
biIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lp
VG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1z
OiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTM1IH0sIHsgdHlwZTogInB1YmxpYy1rZXki
LCBhbGc6IC0yNTcgfV0sIC8vIEVTMzg0LCBSUzI1NgorICAgICAgICAgICAgICAgIHRpbWVvdXQ6
IDEwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBwcm9taXNlUmVq
ZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShv
cHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1
dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0
IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBy
cDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5h
bWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwu
cGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5
TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5
Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAg
ICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFz
ZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAgICAgICAgICAgICAg
IHRpbWVvdXQ6IDEwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hh
aW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFz
ZTY0KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3Ii
LCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVk
IG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7Cisg
ICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAyIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAg
ICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIs
CisgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVC
YXNlNjQpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJh
eSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTog
InB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50
aWFsczogWworICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJh
c2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJ1c2Ii
XSB9LAorICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2
NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJuZmMiXSB9
LAorICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVS
TC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJibGUiXSB9LAor
ICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5w
YXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0K
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtl
eUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgcmV0dXJu
IHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7CisgICAgICAgIH0pOworICAgIH0sICJQ
dWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEg
bW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAzIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAg
ICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5j
b20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAg
IGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAg
ICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAg
ICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03
IH1dLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICB9CisgICAgICAg
IH07CisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBv
dXQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2ls
ZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDQiKTsKKworICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAg
IHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
IHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAg
ICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2
NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIx
MjM0NTYiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVi
bGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9u
KHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IHRy
dWUsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgICAgICByZXR1cm4gcHJvbWlz
ZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOworICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2Nh
bCBhdXRoZW50aWNhdG9yLiA1Iik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAg
IGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAg
ICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAg
ICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNl
NjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICBk
aXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
Y2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAg
cHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAg
ICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRX
ZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwg
bG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsIGFjY2VwdEF0dGVzdGF0aW9uOiBm
YWxzZSB9IH0pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0
ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dl
ZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlv
biB0aW1lZCBvdXQuIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRlc3RSdW5uZXIua2V5RXhpc3Rz
SW5LZXljaGFpbih0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpKTsKKyAgICAgICAgfSk7
CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZh
aWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDYiKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1s
b2NhbC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYTA4MGY1ZmQ0ZDIxYjNlYTFkOWJhNWY0YjBh
ZDJkMWUwMTg4YzJhZC4uZmJlMWE4MjUzMTgwNmZkYzBhMDdmZTFkYTU4OTMxMjQyNTIzYzlmOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZh
aWx1cmUtbG9jYWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC01LDQgKzUsNSBAQCBQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWF0Y2hlZCBleGNsdWRlIGNyZWRlbnRp
YWxzIGluIGEgbW9jawogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
b3V0IHVzZXIgY29uc2VudCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGhvdXQgYXR0ZXN0YXRpb24gaW4gYSBt
b2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tj
cmVhdGVdXSBkZWxldGluZyBvbGQgY3JlZGVudGlhbCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGlj
YXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGltZW91
dCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVy
ZS1sb2NhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwKaW5kZXggM2E2
ZTQ5YTQ3MDI2OGNhMDFiNzljYjFhYzk3OWE5MGJhYzJlODEwMS4uNTZmYmMzZWNhNDkxYjRmNGFk
OWVjYzI0OTFlM2QxYWM2NjdkMGZjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwKQEAgLTE0MSw0ICsxNDEsMjcg
QEAKICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UodGVzdFJ1bm5lci5rZXlFeGlzdHNJbktl
eWNoYWluKHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCkpOwogICAgICAgICB9KTsKICAg
ICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gZGVsZXRpbmcgb2xkIGNyZWRl
bnRpYWwgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAg
cHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAg
bmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
dXNlcjogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAg
ICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAg
ICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisg
ICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBh
bGc6IC03IH1dLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwLAorICAgICAgICAgICAgICAg
IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHsgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ6ICJjcm9z
cy1wbGF0Zm9ybSIgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGlj
YXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiBm
YWxzZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgICAgIHJldHVybiBwcm9t
aXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNy
ZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgfSwgIlB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGltZW91dCBpbiBhIG1vY2sgbG9jYWwgYXV0
aGVudGljYXRvci4iKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMDgwZDNjZWM4
MmEzY2I1YjA1MDRmZWM3NTc4NDFiOTUwNGViZTY3ZS4uZTI2MDRhZTBkOWFjZWYyYjIzNGZhNTI1
ODQ5YTI5MDJiYjViYmVmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogCitQ
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGltZW91dCAKIFBBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBhIG1pc21hdGNoZWQgUlAgSUQg
CiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggYW4gZW1wdHkgcHVi
S2V5Q3JlZFBhcmFtcyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZh
aWx1cmUuaHR0cHMuaHRtbAppbmRleCBjNTI0OTZjODUzNmFmZGUzOWE1YTZhMzExNzdiYWU1NGMx
ZmNiYzQyLi45ZWEzNDI4YmI0NDdlNTYwMWIyMjhhOGJhZjAxNjVkZjE3Y2IyNGQ0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbApAQCAt
OCwyNyArOCwyNiBAQAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgdGVzdFJ1
bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgfSk7CiAKLSAgICAv
LyBGSVhNRSgxODk2NDIpOiBSZS1lbmFibGUgdGhlIGZvbGxvd2luZyB0ZXN0LgotICAgIC8vIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgLy8gICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0g
ICAgLy8gICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAvLyAgICAgICAgICAgICBycDogewotICAg
IC8vICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAgLy8gICAgICAgICAg
ICAgfSwKLSAgICAvLyAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgLy8gICAgICAgICAgICAgICAg
IG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgLy8gICAgICAgICAgICAgICAgIGlkOiBhc2Np
aVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgLy8gICAgICAgICAgICAgICAgIGRpc3BsYXlO
YW1lOiAiSm9obiIsCi0gICAgLy8gICAgICAgICAgICAgfSwKLSAgICAvLyAgICAgICAgICAgICBj
aGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAvLyAgICAgICAgICAg
ICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0g
ICAgLy8gICAgICAgICAgICAgdGltZW91dDogMCwKLSAgICAvLyAgICAgICAgIH0KLSAgICAvLyAg
ICAgfTsKLSAgICAvLwotICAgIC8vICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFs
bG93ZWRFcnJvciIsCi0gICAgLy8gICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKLSAgICAvLyB9LCAiUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0Iik7CisgICAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1
YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5h
bWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVz
ZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAg
ICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAg
ICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxn
OiAtNyB9XSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMCwKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfTsKKworICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRF
cnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMp
LCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0Iik7CiAKICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgICAgICBjb25zdCBvcHRpb25zID0gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2Fs
LXNpbGVudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzk4NmM4YTliYzc5YzdkMTdlYTA5MzE0YzE0ODFhM2Ux
MmUzMTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Z2V0XV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4g
CitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZhaWx1cmUg
aW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDIgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRp
Y2F0b3IuIDMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQt
ZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTA3ZDQ1NjMxZGU2
OWFjMWNkNjhlYzI5NjM0ZTc3ZTkyNDI5ZDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxv
Y2FsLXNpbGVudC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dl
dF1dIGZhaWx1cmUgY2FzZXMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRl
c3RzIG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9u
LgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJB
dXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9j
YWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFs
c2UgfSB9KTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9u
cyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5n
ZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIGFsbG93Q3Jl
ZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlk
OiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsi
dXNiIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsibmZj
Il0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNl
NjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiYmxlIl0g
fSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRV
UkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwi
XSB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAg
ICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0
LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwg
Ik9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2dldF1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3Iu
Iik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7
CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFz
Y2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRp
YWxzOiBbCisgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFz
ZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSB9CisgICAgICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgfQorICAgICAgICB9Owor
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
YWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQs
IHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQs
ICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAi
T3BlcmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5V
cEtleWNoYWluKHRlc3RScElkKTsKKyAgICAgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBh
dXRoZW50aWNhdG9yLiAyIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAg
ICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5
Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxl
QmFzZTY0KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJy
b3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVk
IG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7Cisg
ICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNp
bGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAzIik7Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUt
bG9jYWwuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGQzZjRmNWQ3YWU5ZmFkZWM5NDRkZTg4NzU4
MTlhMjY1YjU0MzU0MDAuLjg3OGRjYjczMjczZGIwMTAwMmIwMzQyM2VmNWQwNzU2ZTY3OWMyN2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
LWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDUgQEAKIFBBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGNyZWRlbnRpYWxzIGluIGEgbW9j
ayBsb2NhbCBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0
XV0gd2l0aCBubyBtYXRjaGVkIGNyZWRlbnRpYWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNh
dG9yLiAybmQgCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGhvdXQgdXNl
ciBjb25zZW50IGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0aW1lb3V0IGluIGEgbW9jayBsb2NhbCBhdXRoZW50
aWNhdG9yLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUt
bG9jYWwuaHR0cHMuaHRtbAppbmRleCBmMzA1YTQzNDNjN2FhY2I2MTc5ZWY2MDJjN2ZkYWQ3MjQz
ZWQ2YjhmLi4yOWJiN2Y0YjRjZTg4NGYyNjg5YTA2ZDY4ODZjZGUwMTk1M2Q4ZmE5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRt
bApAQCAtNTYsNCArNTYsMjAgQEAKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBL
ZXljaGFpbih0ZXN0UnBJZCk7CiAgICAgICAgIH0pOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50
aWFsJ3MgW1tnZXRdXSB3aXRob3V0IHVzZXIgY29uc2VudCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVu
dGljYXRvci4iKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIGFsbG93
Q3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIs
IGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6
IFsidXNiIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlk
OiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsi
bmZjIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiYmxl
Il0gfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHMo
dCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyks
ICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tnZXRdXSB3aXRoIHRpbWVvdXQgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGRjMGI5MTdlMzBjMWY2YjRkYjRiNzZhYTkyZjIwNjhj
Y2IxN2Y2MjkuLjFmNzE0ODFlZTYzYjk1YTljN2UzZjkwOGRlODliODIzZDE0MmNmNGYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDQgQEAKIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tn
ZXRdXSB3aXRoIHRpbWVvdXQgCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdp
dGggYSBtaXNtYXRjaGVkIFJQIElEIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQt
ZmFpbHVyZS5odHRwcy5odG1sCmluZGV4IGNlNWUyOGJjNzFjYzFjMDhiMTdiZGU5ZTY3MzhhNTBl
MDEwNWI0ZDMuLmIwNWVjY2IyOGVlZmQzZTk1NzdhOTA4ZTdlYzM2ZDQ2N2EzNmEyNzMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCkBAIC04LDI2
ICs4LDI2IEBACiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICB0ZXN0UnVubmVy
LnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyB9KTsKIAotICAgIC8vIEZJ
WE1FKDE4OTY0Mik6IFJlLWVuYWJsZSB0aGUgZm9sbG93aW5nIHRlc3QuCi0gICAgLy8gcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICAvLyAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAv
LyAgICAgICAgIHB1YmxpY0tleTogewotICAgIC8vICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNj
aWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgIC8vICAgICAgICAgICAgIHRpbWVvdXQ6IDAs
Ci0gICAgLy8gICAgICAgICB9Ci0gICAgLy8gICAgIH07Ci0gICAgLy8KLSAgICAvLyAgICAgcmV0
dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLAotICAgIC8vICAgICAgICAg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQu
Iik7Ci0gICAgLy8gfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGltZW91
dCIpOworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsK
KyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNj
aWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisg
ICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3Rz
KHQsICJOb3RBbGxvd2VkRXJyb3IiLAorICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmdldChvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgfSwgIlB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGltZW91dCIpOwogCi0gICAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgICAgIGNvbnN0IG9w
dGlvbnMgPSB7CiAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKICAgICAgICAgICAgICAgICBycElk
OiAiZXhhbXBsZS5jb20iLAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4
QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4
QXJyYXkoIjEyMzQ1NiIpCiAgICAgICAgICAgICB9CiAgICAgICAgIH07CisKICAgICAgICAgcmV0
dXJuIHByb21pc2VSZWplY3RzKHQsICJTZWN1cml0eUVycm9yIiwKICAgICAgICAgICAgIG5hdmln
YXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVu
dCBpcyBub3QgYSByZWdpc3RyYWJsZSBkb21haW4gc3VmZml4IG9mIHRoZSBwcm92aWRlZCBSUCBJ
RC4iKTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhIG1pc21h
dGNoZWQgUlAgSUQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3Vy
Y2VzL3V0aWwuanMKaW5kZXggNTMxZjFhZGZhN2Y3ZmYxNDI2ODgxMjlhOGI5MzNkNjI1MDc5ZmNm
Ni4uMWJkY2Y4MzRjMGMzYmI3MmIwYWQ4NmYzZTc1MjZjMGI5MDYwNjY5NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKQEAgLTE3MiwxMCAr
MTcyLDE5IEBAIGZ1bmN0aW9uIGV4dHJhY3RSYXdTaWduYXR1cmUoYXNuMXNpZ25hdHVyZSkKIHsK
ICAgICBjb25zdCBzaWduYXR1cmUgPSBuZXcgVWludDhBcnJheShhc24xc2lnbmF0dXJlKTsKICAg
ICBsZXQgdG1wID0gbmV3IFVpbnQ4QXJyYXkoNjQpOworCiAgICAgY29uc3QgclN0YXJ0ID0gIHNp
Z25hdHVyZVszXSAtIDMyOwotICAgIHRtcC5zZXQobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlLnNs
aWNlKDQgKyByU3RhcnQsIDM2ICsgclN0YXJ0KSksIDApOworICAgIGlmIChyU3RhcnQgPj0gMCkK
KyAgICAgICAgdG1wLnNldChuZXcgVWludDhBcnJheShzaWduYXR1cmUuc2xpY2UoNCArIHJTdGFy
dCwgMzYgKyByU3RhcnQpKSwgMCk7CisgICAgZWxzZQorICAgICAgICB0bXAuc2V0KG5ldyBVaW50
OEFycmF5KHNpZ25hdHVyZS5zbGljZSg0LCAzNiArIHJTdGFydCkpLCAtclN0YXJ0KTsKKwogICAg
IGNvbnN0IHNTdGFydCA9ICBzaWduYXR1cmVbMzcgKyByU3RhcnRdIC0gMzI7Ci0gICAgdG1wLnNl
dChuZXcgVWludDhBcnJheShzaWduYXR1cmUuc2xpY2UoMzggKyByU3RhcnQgKyBzU3RhcnQpKSwg
MzIpOworICAgIGlmIChzU3RhcnQgPj0gMCkKKyAgICAgICAgdG1wLnNldChuZXcgVWludDhBcnJh
eShzaWduYXR1cmUuc2xpY2UoMzggKyByU3RhcnQgKyBzU3RhcnQpKSwgMzIpOworICAgIGVsc2UK
KyAgICAgICAgdG1wLnNldChuZXcgVWludDhBcnJheShzaWduYXR1cmUuc2xpY2UoMzggKyByU3Rh
cnQpKSwgMzIgLSBzU3RhcnQpOworCiAgICAgcmV0dXJuIHRtcC5idWZmZXI7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>