<?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>215836</bug_id>
          
          <creation_ts>2020-08-25 20:31:34 -0700</creation_ts>
          <short_desc>[WebAuthn] Don&apos;t set the UV option if the authenticator doesn&apos;t support it</short_desc>
          <delta_ts>2020-09-21 14:32:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>Safari Technology Preview</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="login Llama">loginllama</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>duwoka</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>navindra</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1682902</commentid>
    <comment_count>0</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2020-08-25 20:31:34 -0700</bug_when>
    <thetext>This is related to Bug 213934

For CTAP2.0 and CTAP2.1_Pre authenticators that don&apos;t support internal user verification sending the UV option will cause a CTAP2_ERR_UNSUPPORTED_OPTION.

See authenticatorMakeCredential step 3 ( https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorMakeCredential ) and authenticatorGetAssertion Step 5.

During Authenticator selection if clientPin is set in getInfo options, the platform is sending a dummy request to the authenticator to make the led blink to determine what authenticator to use. 

This works when the webAuthn request contains User Verification absent/Discouraged/preferred.  However if User Verification required is sent by the RP the platform includes the uv=true option and that causes a CTAP2_ERR_UNSUPPORTED_OPTION error for CTAP2.0 authenticators that don&apos;t support internal UV. 

For Authenticators that do support internal UV it seems that some are performing internal UV (fingerprint etc) and not returning the expected error.

I expect that the CTAP 2.0 authenticators with no internal UV are also going to have a further problem after authenticator selection if both a pinToken and uv option are sent to them.

Bio Authenticators receiving both the uv option and pintoken may or may not work.  My test CTAP2.1 authenticators that ignore the UV option work but as client pin authenticators ignoring the fingerprint, and other authenticators like the biopass I tested are not working.

The first step would be to remove the uv option being sent with pintoken.  That should never happen in CTAP 2.0.  I hope that platforms MUST NOT do that is more clear in the CTAP2.1 spec.

This should explain why the MS test page that sets user verification required won&apos;t work with a YK 5Ci  but the same key will work just fine with a resident credential on a site with User Verification optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683052</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-26 11:20:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/67817359&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683129</commentid>
    <comment_count>2</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2020-08-26 14:06:40 -0700</bug_when>
    <thetext>I retested with with iOS developer beta 6, and as expected the behavior is the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688185</commentid>
    <comment_count>3</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-13 22:35:41 -0700</bug_when>
    <thetext>The spec suggests:
&quot;user verification: Instructs the authenticator to require a gesture that verifies the user to complete the request. Examples of such gestures are fingerprint scan or a PIN.&quot;

The &quot;PIN&quot; mentioned there is confusing with ClientPIN.

Should we fix this confusing text in CTAP 2.1 as well? @John, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688188</commentid>
    <comment_count>4</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-13 23:35:01 -0700</bug_when>
    <thetext>*** Bug 216180 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688190</commentid>
    <comment_count>5</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-13 23:36:06 -0700</bug_when>
    <thetext>*** Bug 214266 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688191</commentid>
    <comment_count>6</comment_count>
      <attachid>408682</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-13 23:48:53 -0700</bug_when>
    <thetext>Created attachment 408682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689731</commentid>
    <comment_count>7</comment_count>
      <attachid>409111</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-18 00:47:09 -0700</bug_when>
    <thetext>Created attachment 409111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689844</commentid>
    <comment_count>8</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2020-09-18 10:17:11 -0700</bug_when>
    <thetext>Each authentication requires a test of user presence.

In some cases the user verification method also provides the test of user presence such as a fingerprint.  

The clientPIN is never considered a test of user presence. 

Now in CTAP2.1 with the pinUvAuthToken the explanation has been almost totally re-written. 

There is still some up caching text that Jeff is still working on so it is not totally merged.

RD02 should be available shortly.   Let me know if you think it is still confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689998</commentid>
    <comment_count>9</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-18 17:12:56 -0700</bug_when>
    <thetext>(In reply to login Llama from comment #8)
&gt; Each authentication requires a test of user presence.
&gt; 
&gt; In some cases the user verification method also provides the test of user
&gt; presence such as a fingerprint.  
&gt; 
&gt; The clientPIN is never considered a test of user presence. 
&gt; 
&gt; Now in CTAP2.1 with the pinUvAuthToken the explanation has been almost
&gt; totally re-written. 
&gt; 
&gt; There is still some up caching text that Jeff is still working on so it is
&gt; not totally merged.
&gt; 
&gt; RD02 should be available shortly.   Let me know if you think it is still
&gt; confusing.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690179</commentid>
    <comment_count>10</comment_count>
      <attachid>409111</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-20 11:07:41 -0700</bug_when>
    <thetext>Comment on attachment 409111
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        If an authetnicator supports ClientPin, it can set the uv bit in the responses to true but it

typo: authenticator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690495</commentid>
    <comment_count>11</comment_count>
      <attachid>409111</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-21 13:44:21 -0700</bug_when>
    <thetext>Comment on attachment 409111
Patch

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

Thanks Darin for r+ this patch.

&gt;&gt; Source/WebCore/ChangeLog:14
&gt;&gt; +        If an authetnicator supports ClientPin, it can set the uv bit in the responses to true but it
&gt; 
&gt; typo: authenticator

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690497</commentid>
    <comment_count>12</comment_count>
      <attachid>409315</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-21 13:46:07 -0700</bug_when>
    <thetext>Created attachment 409315
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690522</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-21 14:32:26 -0700</bug_when>
    <thetext>Committed r267369: &lt;https://trac.webkit.org/changeset/267369&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409315.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408682</attachid>
            <date>2020-09-13 23:48:53 -0700</date>
            <delta_ts>2020-09-18 00:47:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215836-20200913234852.patch</filename>
            <type>text/plain</type>
            <size>12867</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQxOWM1NTdmM2ZkYjJk
ZmQzNGZjODU1NzlhNjNmZTI1Zjk1YTIxYS4uYWVhYzQ1YmNjNTdiZjYwNTJjMDZkNGU3NjMzN2Rm
ZTYwM2ZiMTI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA5LTEzICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBEb24n
dCBzZXQgdGhlIFVWIG9wdGlvbiBpZiB0aGUgYXV0aGVudGljYXRvciBkb2Vzbid0IHN1cHBvcnQg
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTgz
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjc4MTczNTk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgor
CisgICAgICAgIFVWIGluIHRoZSB0aGUgQ1RBUCAyLjAgc3BlYyBvbmx5IG1lYW5zIGludGVybmFs
IFVWOgorICAgICAgICBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBz
LTIwMTkwMTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0y
MDE5MDEzMC5odG1sI2F1dGhlbnRpY2F0b3JHZXRJbmZvCisKKyAgICAgICAgSWYgYW4gYXV0aGV0
bmljYXRvciBzdXBwb3J0cyBDbGllbnRQaW4sIGl0IGNhbiBzZXQgdGhlIHV2IGJpdCBpbiB0aGUg
cmVzcG9uc2VzIHRvIHRydWUgYnV0IGl0CisgICAgICAgIHdpbGwgbm90IGFkdmVydGlzZSBpdHNl
bGYgc3VwcG9ydGluZyBpbnRlcm5hbCBVViwgd2hpY2ggaXMgdGhlIHV2IGluIHRoZSBvcHRpb25z
LgorICAgICAgICBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIw
MTkwMTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE5
MDEzMC5odG1sI2F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbAorCisgICAgICAgIEhlbmNlLCBz
ZXR0aW5nIGl0IHRvIHRydWUgY291bGQgcmVzdWx0IGluIGVycm9yIGlmIHRoZSBhdXRoZW50aWNh
dG9yIGRvZXNuJ3Qgc3VwcG9ydCBpbnRlcm5hbCBVViBldmVuIGlmIGl0IHN1cHBvcnRzIENsaWVu
dFBpbi4KKyAgICAgICAgSXQncyBub3QgYSB3YXkgdG8gYXNrIHRoZSBhdXRoZW50aWNhdG9yIHRv
IHNldCB0aGUgdXYgYml0IGluIHRoZSByZXNwb25zZS4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OmVu
Y29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVH
ZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKToKKwogMjAyMC0wOS0xMiAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIGZvcm1hdEZvckRlYnVn
Z2VyKCkgd2hpY2ggdXNlcyByYXcgY2hhciogd2l0aCBkZWJ1Z0Rlc2NyaXB0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZp
Y2VSZXF1ZXN0Q29udmVydGVyLmNwcAppbmRleCBlYWY0MWQ1YzUwZTMzNDUwYWJhNGFhMzlkODQz
YmY3NTg3YTQ4MmZhLi5mOGRmNzVjYTBmN2NiZDBlZmI5Yjk0NTlmYjQ2MTE2ODAwODc3ZDgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVx
dWVzdENvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCkBAIC0xMTEsMTAgKzExMSw4IEBAIFZlY3Rv
cjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBoYXNoLCBjCiAgICAgICAgIGJvb2wgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24g
PSBmYWxzZTsKICAgICAgICAgc3dpdGNoIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24t
PnVzZXJWZXJpZmljYXRpb24pIHsKICAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ6OlJlcXVpcmVkOgotICAgICAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0
cnVlOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50OjpQcmVmZXJyZWQ6Ci0gICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlv
biA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNl
IDogdHJ1ZTsKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gdXZDYXBhYmls
aXR5ID09IFVWQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZDsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlz
Y291cmFnZWQ6CiAgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOwpA
QCAtMTU3LDEwICsxNTUsOCBAQCBWZWN0b3I8dWludDhfdD4gZW5jb2RlR2V0QXNzZXJ0aW9uUmVx
dWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbgogICAgIGJvb2wgcmVx
dWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKICAgICBzd2l0Y2ggKG9wdGlvbnMudXNlclZl
cmlmaWNhdGlvbikgewogICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1
aXJlZDoKLSAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkOgot
ICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWls
YWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1ZTsKKyAgICAgICAgcmVxdWlyZVVz
ZXJWZXJpZmljYXRpb24gPSB1dkNhcGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRBbmRDb25maWd1cmVkOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQ6CiAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0
aW9uID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZGMyOTNlNzI4NmY0OWYyYjQwZjFjZWYxMTExMzQyMGE0ODkwNDM3NC4uZTU2OTQx
OGJjMTNmNTU0ZjExMzc3YjE1YmYzOWU5Yjg4YjNmZWJmZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA5LTEz
ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhu
XSBEb24ndCBzZXQgdGhlIFVWIG9wdGlvbiBpZiB0aGUgYXV0aGVudGljYXRvciBkb2Vzbid0IHN1
cHBvcnQgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTgzNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjc4MTczNTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorCiAyMDIwLTA5LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjY2ODE3KTogQVNTRVJUSU9OIEZBSUxFRDogaW5qZWN0ZWRCdW5k
bGUuaXNUZXN0UnVubmluZygpIG9uIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N2Zy10YXJnZXQtcmVmdGVzdC5odHRwcy5odG1s
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVl
c3RUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVz
dFRlc3QuY3BwCmluZGV4IDMzMjczOWYwNDc0YzA1NWVlMWNmOTU0YmFjNmRkMmM3ZTMwNjg3OTgu
LmYxMzlkMjUyN2U2YmQ4Yzg1YTg1NzcwMzFmZDgwZWNmNWI4NzFiMmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCkBA
IC02NCw3ICs2NCw3IEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNy
ZWRlbnRpYWxSZXF1ZXN0UGFyYW0pCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51bGxvcHQsIHsgfSwg
c2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBXVEY6Om51
bGxvcHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0
RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkp
OwotICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RB
c0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJW
ZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAg
ICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9S
KGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7CiAgICAgRVhQRUNU
X0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVk
ZW50aWFsUmVxdWVzdCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0
YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QsIHNlcmlhbGl6ZWREYXRh
LnNpemUoKSksIDApOwogfQpAQCAtODcsNyArODcsMzAgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3Qs
IFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbU5vVVZOb1JLKQogICAgIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0s
IHBhcmFtcywgV1RGOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlh
bmNlUHJlZmVyZW5jZTo6Tm9uZSwgV1RGOjpudWxsb3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2g7CiAgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9m
KFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKLSAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0g
ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29k
ZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRl
ZEFuZENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNp
emVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCkpOworICAgIEVY
UEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtl
Q3JlZGVudGlhbFJlcXVlc3RTaG9ydCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisK
K1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0
UGFyYW1VVlJlcXVpcmVkQnV0Tm90U3VwcG9ydGVkKQoreworICAgIFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUgPSAiQWNtZSI7Cisg
ICAgcnAuaWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJqb2hucHNtaXRoQGV4
YW1wbGUuY29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFjbWUuY29tLzAwL3Av
YUJqampwcVBiLnBuZyI7CisgICAgdXNlci5pZFZlY3Rvci5hcHBlbmQoVGVzdERhdGE6OmtVc2Vy
SWQsIHNpemVvZihUZXN0RGF0YTo6a1VzZXJJZCkpOworICAgIHVzZXIuZGlzcGxheU5hbWUgPSAi
Sm9obiBQLiBTbWl0aCI7CisKKyAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6
UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3
IH0gfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNh
dG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBmYWxzZSwgVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZCB9OworCisgICAgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBX
VEY6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJl
bmNlOjpOb25lLCBXVEY6Om51bGxvcHQgfTsKKyAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAg
ICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6
OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtl
Q3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQp
OwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6
a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAo
c2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVl
c3RTaG9ydCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7CiB9CkBAIC0xMTQsNyArMTM3LDcg
QEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVl
c3RQYXJhbVdpdGhQaW4pCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBv
cHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51bGxvcHQsIHsgfSwgc2VsZWN0
aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBXVEY6Om51bGxvcHQg
fTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6
a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwotICAg
IGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1Io
aGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkLCBwaW4pOworICAg
IGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1Io
aGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBwaW4pOwogICAgIEVY
UEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtl
Q3JlZGVudGlhbFJlcXVlc3RXaXRoUGluKSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxp
emVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFdpdGhQ
aW4sIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOwogfQpAQCAtMTUxLDcgKzE3NCw3IEBAIFRF
U1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0R2V0QXNzZXJ0aW9uUmVxdWVzdCkKIAog
ICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xp
ZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0
byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwg
b3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBhdXRvIHNlcmlh
bGl6ZWREYXRhID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25z
LCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQpOwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVk
RGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlv
blJlcXVlc3QpKTsKICAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwg
VGVzdERhdGE6OmtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0LCBzZXJpYWxpemVk
RGF0YS5zaXplKCkpLCAwKTsKIH0KQEAgLTE4OCw3ICsyMTEsNDQgQEAgVEVTVChDVEFQUmVxdWVz
dFRlc3QsIFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0Tm9VVikKIAogICAgIFZlY3Rv
cjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJpYWxp
emVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRh
ID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1
cHBvcnRlZEFuZENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXpl
KCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RT
aG9ydCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0
RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RTaG9ydCwgc2VyaWFsaXpl
ZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3Ry
dWN0R2V0QXNzZXJ0aW9uUmVxdWVzdFVWUmVxdWlyZWRCdXROb3RTdXBwb3J0ZWQpCit7CisgICAg
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5y
cElkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIGRl
c2NyaXB0b3IxOworICAgIGRlc2NyaXB0b3IxLnR5cGUgPSBQdWJsaWNLZXlDcmVkZW50aWFsVHlw
ZTo6UHVibGljS2V5OworICAgIGNvbnN0IHVpbnQ4X3QgaWQxW10gPSB7CisgICAgICAgIDB4ZjIs
IDB4MjAsIDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4OGEsIDB4NDMsIDB4
OTQsCisgICAgICAgIDB4MmYsIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4
M2QsIDB4OWMsIDB4NmQsIDB4NGIsCisgICAgICAgIDB4M2QsIDB4ZjgsIDB4YmUsIDB4MDgsIDB4
ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsCisgICAgICAgIDB4MzQsIDB4
ODUsIDB4OGEsIDB4YzcsIDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYsIDB4OTgs
CisgICAgICAgIDB4MDgsIDB4ZDksIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIs
IDB4ZWYsIDB4NjYsIDB4NzcsCisgICAgICAgIDB4YWYsIDB4MGEsIDB4ZGMsIDB4YzMsIDB4NTgs
IDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUgfTsKKyAgICBkZXNjcmlwdG9yMS5pZFZlY3Rvci5hcHBl
bmQoaWQxLCBzaXplb2YoaWQxKSk7CisgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLmFwcGVu
ZChkZXNjcmlwdG9yMSk7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciBkZXNj
cmlwdG9yMjsKKyAgICBkZXNjcmlwdG9yMi50eXBlID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6
OlB1YmxpY0tleTsKKyAgICBjb25zdCB1aW50OF90IGlkMltdID0geworICAgICAgICAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAg
ICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzIH07CisgICAgZGVzY3Jp
cHRvcjIuaWRWZWN0b3IuYXBwZW5kKGlkMiwgc2l6ZW9mKGlkMikpOworICAgIG9wdGlvbnMuYWxs
b3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjIpOworCisgICAgb3B0aW9ucy51c2VyVmVy
aWZpY2F0aW9uID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDsKKworICAg
IFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50
RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBz
ZXJpYWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0
aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFp
bGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQpOwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5z
aXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVl
c3RTaG9ydCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBU
ZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RTaG9ydCwgc2VyaWFs
aXplZERhdGEuc2l6ZSgpKSwgMCk7CiB9CkBAIC0yMjksNyArMjg5LDcgQEAgVEVTVChDVEFQUmVx
dWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0V2l0aFBpbikKIAogICAg
IFZlY3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50
RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBz
ZXJpYWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0
aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFp
bGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkLCBwaW4pOworICAgIGF1dG8gc2Vy
aWFsaXplZERhdGEgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlv
bnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxh
YmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgcGluKTsKICAgICBFWFBFQ1RfRVEoc2Vy
aWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0Q29tcGxleEN0YXBHZXRB
c3NlcnRpb25SZXF1ZXN0V2l0aFBpbikpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXpl
ZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVl
c3RXaXRoUGluLCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409111</attachid>
            <date>2020-09-18 00:47:09 -0700</date>
            <delta_ts>2020-09-20 11:07:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215836-20200918004708.patch</filename>
            <type>text/plain</type>
            <size>27219</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQxOWM1NTdmM2ZkYjJk
ZmQzNGZjODU1NzlhNjNmZTI1Zjk1YTIxYS4uYWVhYzQ1YmNjNTdiZjYwNTJjMDZkNGU3NjMzN2Rm
ZTYwM2ZiMTI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA5LTEzICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBEb24n
dCBzZXQgdGhlIFVWIG9wdGlvbiBpZiB0aGUgYXV0aGVudGljYXRvciBkb2Vzbid0IHN1cHBvcnQg
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTgz
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjc4MTczNTk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgor
CisgICAgICAgIFVWIGluIHRoZSB0aGUgQ1RBUCAyLjAgc3BlYyBvbmx5IG1lYW5zIGludGVybmFs
IFVWOgorICAgICAgICBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBz
LTIwMTkwMTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0y
MDE5MDEzMC5odG1sI2F1dGhlbnRpY2F0b3JHZXRJbmZvCisKKyAgICAgICAgSWYgYW4gYXV0aGV0
bmljYXRvciBzdXBwb3J0cyBDbGllbnRQaW4sIGl0IGNhbiBzZXQgdGhlIHV2IGJpdCBpbiB0aGUg
cmVzcG9uc2VzIHRvIHRydWUgYnV0IGl0CisgICAgICAgIHdpbGwgbm90IGFkdmVydGlzZSBpdHNl
bGYgc3VwcG9ydGluZyBpbnRlcm5hbCBVViwgd2hpY2ggaXMgdGhlIHV2IGluIHRoZSBvcHRpb25z
LgorICAgICAgICBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIw
MTkwMTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE5
MDEzMC5odG1sI2F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbAorCisgICAgICAgIEhlbmNlLCBz
ZXR0aW5nIGl0IHRvIHRydWUgY291bGQgcmVzdWx0IGluIGVycm9yIGlmIHRoZSBhdXRoZW50aWNh
dG9yIGRvZXNuJ3Qgc3VwcG9ydCBpbnRlcm5hbCBVViBldmVuIGlmIGl0IHN1cHBvcnRzIENsaWVu
dFBpbi4KKyAgICAgICAgSXQncyBub3QgYSB3YXkgdG8gYXNrIHRoZSBhdXRoZW50aWNhdG9yIHRv
IHNldCB0aGUgdXYgYml0IGluIHRoZSByZXNwb25zZS4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OmVu
Y29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVH
ZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKToKKwogMjAyMC0wOS0xMiAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIGZvcm1hdEZvckRlYnVn
Z2VyKCkgd2hpY2ggdXNlcyByYXcgY2hhciogd2l0aCBkZWJ1Z0Rlc2NyaXB0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZp
Y2VSZXF1ZXN0Q29udmVydGVyLmNwcAppbmRleCBlYWY0MWQ1YzUwZTMzNDUwYWJhNGFhMzlkODQz
YmY3NTg3YTQ4MmZhLi5mOGRmNzVjYTBmN2NiZDBlZmI5Yjk0NTlmYjQ2MTE2ODAwODc3ZDgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVx
dWVzdENvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCkBAIC0xMTEsMTAgKzExMSw4IEBAIFZlY3Rv
cjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBoYXNoLCBjCiAgICAgICAgIGJvb2wgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24g
PSBmYWxzZTsKICAgICAgICAgc3dpdGNoIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24t
PnVzZXJWZXJpZmljYXRpb24pIHsKICAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ6OlJlcXVpcmVkOgotICAgICAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0
cnVlOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50OjpQcmVmZXJyZWQ6Ci0gICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlv
biA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNl
IDogdHJ1ZTsKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gdXZDYXBhYmls
aXR5ID09IFVWQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZDsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlz
Y291cmFnZWQ6CiAgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOwpA
QCAtMTU3LDEwICsxNTUsOCBAQCBWZWN0b3I8dWludDhfdD4gZW5jb2RlR2V0QXNzZXJ0aW9uUmVx
dWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbgogICAgIGJvb2wgcmVx
dWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKICAgICBzd2l0Y2ggKG9wdGlvbnMudXNlclZl
cmlmaWNhdGlvbikgewogICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1
aXJlZDoKLSAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkOgot
ICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWls
YWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1ZTsKKyAgICAgICAgcmVxdWlyZVVz
ZXJWZXJpZmljYXRpb24gPSB1dkNhcGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRBbmRDb25maWd1cmVkOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQ6CiAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0
aW9uID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZGMyOTNlNzI4NmY0OWYyYjQwZjFjZWYxMTExMzQyMGE0ODkwNDM3NC4uZTU2OTQx
OGJjMTNmNTU0ZjExMzc3YjE1YmYzOWU5Yjg4YjNmZWJmZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA5LTEz
ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhu
XSBEb24ndCBzZXQgdGhlIFVWIG9wdGlvbiBpZiB0aGUgYXV0aGVudGljYXRvciBkb2Vzbid0IHN1
cHBvcnQgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTgzNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjc4MTczNTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorCiAyMDIwLTA5LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjY2ODE3KTogQVNTRVJUSU9OIEZBSUxFRDogaW5qZWN0ZWRCdW5k
bGUuaXNUZXN0UnVubmluZygpIG9uIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N2Zy10YXJnZXQtcmVmdGVzdC5odHRwcy5odG1s
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVl
c3RUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVz
dFRlc3QuY3BwCmluZGV4IDMzMjczOWYwNDc0YzA1NWVlMWNmOTU0YmFjNmRkMmM3ZTMwNjg3OTgu
LmYxMzlkMjUyN2U2YmQ4Yzg1YTg1NzcwMzFmZDgwZWNmNWI4NzFiMmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCkBA
IC02NCw3ICs2NCw3IEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNy
ZWRlbnRpYWxSZXF1ZXN0UGFyYW0pCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51bGxvcHQsIHsgfSwg
c2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBXVEY6Om51
bGxvcHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0
RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkp
OwotICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RB
c0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJW
ZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAg
ICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9S
KGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7CiAgICAgRVhQRUNU
X0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVk
ZW50aWFsUmVxdWVzdCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0
YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QsIHNlcmlhbGl6ZWREYXRh
LnNpemUoKSksIDApOwogfQpAQCAtODcsNyArODcsMzAgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3Qs
IFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbU5vVVZOb1JLKQogICAgIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0s
IHBhcmFtcywgV1RGOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlh
bmNlUHJlZmVyZW5jZTo6Tm9uZSwgV1RGOjpudWxsb3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2g7CiAgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9m
KFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKLSAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0g
ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29k
ZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRl
ZEFuZENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNp
emVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCkpOworICAgIEVY
UEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtl
Q3JlZGVudGlhbFJlcXVlc3RTaG9ydCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisK
K1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0
UGFyYW1VVlJlcXVpcmVkQnV0Tm90U3VwcG9ydGVkKQoreworICAgIFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUgPSAiQWNtZSI7Cisg
ICAgcnAuaWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJqb2hucHNtaXRoQGV4
YW1wbGUuY29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFjbWUuY29tLzAwL3Av
YUJqampwcVBiLnBuZyI7CisgICAgdXNlci5pZFZlY3Rvci5hcHBlbmQoVGVzdERhdGE6OmtVc2Vy
SWQsIHNpemVvZihUZXN0RGF0YTo6a1VzZXJJZCkpOworICAgIHVzZXIuZGlzcGxheU5hbWUgPSAi
Sm9obiBQLiBTbWl0aCI7CisKKyAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6
UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3
IH0gfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNh
dG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBmYWxzZSwgVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZCB9OworCisgICAgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBX
VEY6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJl
bmNlOjpOb25lLCBXVEY6Om51bGxvcHQgfTsKKyAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAg
ICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6
OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtl
Q3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQp
OwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6
a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAo
c2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVl
c3RTaG9ydCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7CiB9CkBAIC0xMTQsNyArMTM3LDcg
QEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVl
c3RQYXJhbVdpdGhQaW4pCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBv
cHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51bGxvcHQsIHsgfSwgc2VsZWN0
aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBXVEY6Om51bGxvcHQg
fTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6
a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwotICAg
IGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1Io
aGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkLCBwaW4pOworICAg
IGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1Io
aGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBwaW4pOwogICAgIEVY
UEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtl
Q3JlZGVudGlhbFJlcXVlc3RXaXRoUGluKSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxp
emVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFdpdGhQ
aW4sIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOwogfQpAQCAtMTUxLDcgKzE3NCw3IEBAIFRF
U1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0R2V0QXNzZXJ0aW9uUmVxdWVzdCkKIAog
ICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xp
ZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0
byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwg
b3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBhdXRvIHNlcmlh
bGl6ZWREYXRhID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25z
LCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQpOwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVk
RGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlv
blJlcXVlc3QpKTsKICAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwg
VGVzdERhdGE6OmtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0LCBzZXJpYWxpemVk
RGF0YS5zaXplKCkpLCAwKTsKIH0KQEAgLTE4OCw3ICsyMTEsNDQgQEAgVEVTVChDVEFQUmVxdWVz
dFRlc3QsIFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0Tm9VVikKIAogICAgIFZlY3Rv
cjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJpYWxp
emVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRh
ID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1
cHBvcnRlZEFuZENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXpl
KCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RT
aG9ydCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0
RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RTaG9ydCwgc2VyaWFsaXpl
ZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3Ry
dWN0R2V0QXNzZXJ0aW9uUmVxdWVzdFVWUmVxdWlyZWRCdXROb3RTdXBwb3J0ZWQpCit7CisgICAg
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5y
cElkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIGRl
c2NyaXB0b3IxOworICAgIGRlc2NyaXB0b3IxLnR5cGUgPSBQdWJsaWNLZXlDcmVkZW50aWFsVHlw
ZTo6UHVibGljS2V5OworICAgIGNvbnN0IHVpbnQ4X3QgaWQxW10gPSB7CisgICAgICAgIDB4ZjIs
IDB4MjAsIDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4OGEsIDB4NDMsIDB4
OTQsCisgICAgICAgIDB4MmYsIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4
M2QsIDB4OWMsIDB4NmQsIDB4NGIsCisgICAgICAgIDB4M2QsIDB4ZjgsIDB4YmUsIDB4MDgsIDB4
ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsCisgICAgICAgIDB4MzQsIDB4
ODUsIDB4OGEsIDB4YzcsIDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYsIDB4OTgs
CisgICAgICAgIDB4MDgsIDB4ZDksIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIs
IDB4ZWYsIDB4NjYsIDB4NzcsCisgICAgICAgIDB4YWYsIDB4MGEsIDB4ZGMsIDB4YzMsIDB4NTgs
IDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUgfTsKKyAgICBkZXNjcmlwdG9yMS5pZFZlY3Rvci5hcHBl
bmQoaWQxLCBzaXplb2YoaWQxKSk7CisgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLmFwcGVu
ZChkZXNjcmlwdG9yMSk7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciBkZXNj
cmlwdG9yMjsKKyAgICBkZXNjcmlwdG9yMi50eXBlID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6
OlB1YmxpY0tleTsKKyAgICBjb25zdCB1aW50OF90IGlkMltdID0geworICAgICAgICAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAg
ICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzIH07CisgICAgZGVzY3Jp
cHRvcjIuaWRWZWN0b3IuYXBwZW5kKGlkMiwgc2l6ZW9mKGlkMikpOworICAgIG9wdGlvbnMuYWxs
b3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjIpOworCisgICAgb3B0aW9ucy51c2VyVmVy
aWZpY2F0aW9uID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDsKKworICAg
IFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50
RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBz
ZXJpYWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0
aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFp
bGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQpOwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5z
aXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVl
c3RTaG9ydCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBU
ZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RTaG9ydCwgc2VyaWFs
aXplZERhdGEuc2l6ZSgpKSwgMCk7CiB9CkBAIC0yMjksNyArMjg5LDcgQEAgVEVTVChDVEFQUmVx
dWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0V2l0aFBpbikKIAogICAg
IFZlY3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50
RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBz
ZXJpYWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0
aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFp
bGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkLCBwaW4pOworICAgIGF1dG8gc2Vy
aWFsaXplZERhdGEgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlv
bnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxh
YmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgcGluKTsKICAgICBFWFBFQ1RfRVEoc2Vy
aWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0Q29tcGxleEN0YXBHZXRB
c3NlcnRpb25SZXF1ZXN0V2l0aFBpbikpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXpl
ZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVl
c3RXaXRoUGluLCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMDAwZDRj
Y2EzMzY4MWJlNDE5M2UyMWY4ZmE4NjU3ODQ1NjlmNTcyLi5hZTQ0NWYxMjY3ZDQwZDI0MGQzZDQw
YmIzYjZkZDQ5MDE5NGYyYTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMTggIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIERv
bid0IHNldCB0aGUgVVYgb3B0aW9uIGlmIHRoZSBhdXRoZW50aWNhdG9yIGRvZXNuJ3Qgc3VwcG9y
dCBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1
ODM2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NzgxNzM1OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLmh0bWw6Cisg
ICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1m
YWlsdXJlLWhpZC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
LWhpZC5odHRwcy5odG1sOgorCiAyMDIwLTA5LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY2ODE3KTogQVNTRVJUSU9OIEZBSUxFRDog
aW5qZWN0ZWRCdW5kbGUuaXNUZXN0UnVubmluZygpIG9uIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N2Zy10YXJnZXQtcmVmdGVz
dC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLXNpbGVudC5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLXNpbGVudC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
NTBhZjFkYzhiZWRlZmY5N2JmODE2OTg0YjdlMWNlMjU4YWNjYWY4Ni4uZmViMTdjYzBlYjYwN2M1
MzkxMzRhMWY0NjIwMGIwYWI0ZjRiOTM1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC1zaWxl
bnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMiwxMSArMiw5IEBAIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0dXJl
IGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yCiBDT05T
T0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxh
dGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScg
d2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0
dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLCBj
YWxsICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlJyB3aXRoaW4gdXNlciBhY3RpdmF0ZWQg
ZXZlbnRzLgogQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBU
byB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IsIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMuCi1DT05TT0xFIE1FU1NB
R0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0
aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScgd2l0aGluIHVz
ZXIgYWN0aXZhdGVkIGV2ZW50cy4KIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVh
dGVdXSB3aXRoIG1hbGljaW91cyBwYXlsb2FkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4g
CiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdW5zdXBwb3J0ZWQg
b3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAotUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVuc3VwcG9ydGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhp
ZCBhdXRoZW50aWNhdG9yLiAyIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVd
XSB3aXRoIG1peGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKIFBBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBJbnZhbGlkU3RhdGVFcnJvciBp
biBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlk
LXNpbGVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC1zaWxlbnQuaHR0cHMuaHRtbAppbmRl
eCBmMzU4NjZhNmUzNjE2NjVhMzI1MGVlZDU5NGJjNDBkYTJkMGI2ZDJkLi40MzZjYjg5OTc1MmE5
MjBmZTlhZDRkNmU0ZjNhN2MxMjA0ZTA4ODhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLXNp
bGVudC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLmh0bWwKQEAg
LTQ5LDI5ICs0OSw2IEBACiAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxs
b3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJh
dGlvbiB0aW1lZCBvdXQuIik7CiAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIHdpdGggdW5zdXBwb3J0ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3Iu
Iik7CiAKLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgICAgICBjb25zdCBvcHRp
b25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsK
LSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAi
Sm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJy
YXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sg
dHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIGF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb246IHsgdXNlclZlcmlmaWNhdGlvbjogInJlcXVpcmVkIiB9LAotICAgICAg
ICAgICAgICAgIHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dl
YkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGhpZDog
eyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAidW5zdXBwb3J0ZWQt
b3B0aW9ucyIgfSB9KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxv
d2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0
aW9uIHRpbWVkIG91dC4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4g
MiIpOwotCiAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKICAgICAgICAgICAgIHB1YmxpY0tleTogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJl
LWhpZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCAyZDc0NTA3NjIwM2I2Y2Y0MWVjMmVjODcyMDFlYWFhZDU2NWQ5YmVmLi43M2ZmZDc3
ZjI1YTZkNWIwYTFmNmUyMjAyZGU3YjA4N2Y5NzhiZWY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUt
aGlkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtNCwxMiArNCwxMCBAQCBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBu
b3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvcgogQ09OU09MRSBN
RVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIHBsYXRmb3Jt
IGF1dGhlbnRpY2F0b3IsIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUnIHdpdGhp
biB1c2VyIGFjdGl2YXRlZCBldmVudHMuCiBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBp
cyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAn
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50
cy4KIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNl
IHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLCBjYWxsICduYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlJyB3aXRoaW4gdXNlciBhY3RpdmF0ZWQgZXZlbnRzLgotQ09OU09MRSBNRVNTQUdFOiBV
c2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRp
Y2F0b3IsIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUnIHdpdGhpbiB1c2VyIGFj
dGl2YXRlZCBldmVudHMuCiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
d2l0aCB0aW1lb3V0IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWFsaWNpb3VzIHBheWxvYWQgaW4gYSBtb2Nr
IGhpZCBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4g
Ci1QQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdW5zdXBwb3J0ZWQg
b3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIDIgCiBQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWl4ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1
dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IG1peGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIAogUEFTUyBQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIEludmFsaWRTdGF0ZUVycm9yIGluIGEg
bW9jayBoaWQgYXV0aGVudGljYXRvci4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKaW5kZXggMTBjZmVhZGZlNTYyNmJjODRm
OWYwZWMyOTA0MGFhOTJkN2JiODkyNi4uNmNmNzZhOWZmZjI1ZTVjZDdhNjhiNGMwOGFmYmVhNDE4
MjYyOTMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFp
bHVyZS1oaWQuaHR0cHMuaHRtbApAQCAtNzIsMjggKzcyLDYgQEAKICAgICAgICAgcmV0dXJuIHBy
b21pc2VSZWplY3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKG9wdGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogNDMiKTsK
ICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB1bnN1cHBvcnRl
ZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0g
ICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAg
ICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwK
LSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIs
IGFsZzogLTcgfV0sCi0gICAgICAgICAgICAgICAgYXV0aGVudGljYXRvclNlbGVjdGlvbjogeyB1
c2VyVmVyaWZpY2F0aW9uOiAicmVxdWlyZWQiIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsK
LQotICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgIGludGVybmFscy5z
ZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVx
dWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJ1bnN1cHBvcnRlZC1vcHRpb25zIiB9IH0p
OwotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlVua25vd25FcnJvciIsIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJVbmtub3duIGludGVybmFsIGVycm9y
LiBFcnJvciBjb2RlOiA0MyIpOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVh
dGVdXSB3aXRoIHVuc3VwcG9ydGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9y
LiAyIik7Ci0KICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICBjb25zdCBv
cHRpb25zID0gewogICAgICAgICAgICAgcHVibGljS2V5OiB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUt
aGlkLXNpbGVudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLXNpbGVudC5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggZDExZjcyYjlmNTgyODY5Y2FmZTQxOGE1MzM0MDM0NGY2NGRmNDc5
OS4uY2RiZmU4ZjA1ZDg1MmQxYWYyZjlkZDlhYTk1NmZmN2Y2OTE1ZjUxYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1m
YWlsdXJlLWhpZC1zaWxlbnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQtc2ls
ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiwxMCArMiw4IEBAIENPTlNPTEUgTUVTU0FHRTog
VXNlciBnZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50
aWNhdG9yCiBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRv
IHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmdldCcgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KIENPTlNPTEUgTUVTU0FHRTog
VXNlciBnZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50
aWNhdG9yLCBjYWxsICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyB3aXRoaW4gdXNlciBhY3Rp
dmF0ZWQgZXZlbnRzLgogQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVj
dGVkLiBUbyB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IsIGNhbGwgJ25hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMuCi1DT05TT0xFIE1F
U1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0g
YXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgd2l0aGluIHVz
ZXIgYWN0aXZhdGVkIGV2ZW50cy4KIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRd
XSB3aXRoIG1hbGljaW91cyBwYXlsb2FkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCi1Q
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdW5zdXBwb3J0ZWQgb3B0aW9u
cyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tnZXRdXSB3aXRoIGludmFsaWQgY3JlZGVudGlhbCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRp
Y2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGF1dGhlbnRp
Y2F0b3IgZG93bmdyYWRlIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgaW4g
YSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC1zaWxl
bnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLmh0bWwKaW5kZXggMzhmNDA3
NDllOTVhZTA1YmM5MjdmMWRjYmIzY2I5ZTFkOTIxZTc3Mi4uNmViMzcxMDU5ZmZlNmI1NzU1NWYw
OWY5NWJmMTdiNjQxZGYxNmZiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC1zaWxlbnQuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtZ2V0LWZhaWx1cmUtaGlkLXNpbGVudC5odHRwcy5odG1sCkBAIC0xNywyMCArMTcsNiBA
QAogICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5h
dmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIp
OwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1hbGljaW91cyBw
YXlsb2FkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBw
dWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5
KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uOiAicmVxdWlyZWQi
LAotICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07
Ci0KLSAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICBpbnRlcm5hbHMu
c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRy
dWUsIGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAidW5z
dXBwb3J0ZWQtb3B0aW9ucyIgfSB9KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQs
ICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAi
T3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Z2V0XV0gd2l0aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRv
ci4iKTsKLQogICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIGNvbnN0IG9w
dGlvbnMgPSB7CiAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1o
aWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggZDY1MzdlODZhZTQyM2Q1ZDI1MDRmNWJmZTUyY2UyNjUxZDgxMDFkOS4uZGUwZWU1YzQyNDBh
NGQzMTZmZjhkNjlmYzI3ZTMzM2EyYjA0ZTQ3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQs
MTEgKzQsOSBAQCBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQu
IFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvcgogQ09OU09MRSBNRVNTQUdFOiBVc2Vy
IGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0
b3IsIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRl
ZCBldmVudHMuCiBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQu
IFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmdldCcgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KIENPTlNPTEUgTUVTU0FH
RTogVXNlciBnZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRo
ZW50aWNhdG9yLCBjYWxsICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyB3aXRoaW4gdXNlciBh
Y3RpdmF0ZWQgZXZlbnRzLgotQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRl
dGVjdGVkLiBUbyB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IsIGNhbGwgJ25hdmlnYXRv
ci5jcmVkZW50aWFscy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMuCiAKIFBBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0aW1lb3V0IGluIGEgbW9jayBoaWQg
YXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGgg
bWFsaWNpb3VzIHBheWxvYWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKLVBBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEg
bW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dl
dF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0
aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0
aGVudGljYXRvciBkb3duZ3JhZGUgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4g
MiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhdXRoZW50aWNhdG9y
IGRvd25ncmFkZSBzdWNjZWVkZWQgYW5kIHRoZW4gVTJGIGZhaWxlZCBpbiBhIG1vY2sgaGlkIGF1
dGhlbnRpY2F0b3IuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
LWhpZC5odHRwcy5odG1sCmluZGV4IGIxN2Y3MjZmNmMwNjhhZTFhYmZmNWNjNGZhMWQwOGFmNTQx
NzU1NWIuLjhiZTg2N2RmNWU4NmI3MThlNjkxMWEyNWY1ZmU2NGYzZTQ1OTljMTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1n
ZXQtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKQEAg
LTM2LDE5ICszNiw2IEBACiAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiVW5rbm93
bkVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlVua25vd24gaW50
ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6IDI1NSIpOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50
aWFsJ3MgW1tnZXRdXSB3aXRoIG1hbGljaW91cyBwYXlsb2FkIGluIGEgbW9jayBoaWQgYXV0aGVu
dGljYXRvci4iKTsKIAotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAg
ICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAg
ICB1c2VyVmVyaWZpY2F0aW9uOiAicmVxdWlyZWQiCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07
Ci0KLSAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICBpbnRlcm5hbHMu
c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJl
cXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAidW5zdXBwb3J0ZWQtb3B0aW9ucyIgfSB9
KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4g
RXJyb3IgY29kZTogNDMiKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0g
d2l0aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsK
LQogICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CiAgICAgICAgICAgICBwdWJsaWNLZXk6IHsK
</data>
<flag name="review"
          id="424706"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409315</attachid>
            <date>2020-09-21 13:46:07 -0700</date>
            <delta_ts>2020-09-21 14:32:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215836-20200921134606.patch</filename>
            <type>text/plain</type>
            <size>27210</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQxOWM1NTdmM2ZkYjJk
ZmQzNGZjODU1NzlhNjNmZTI1Zjk1YTIxYS4uNDAyMDk5MzRmOGE5ZDc4MDllNmY2NTExYmFkYWRk
Yzg1ODc3OWE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA5LTEzICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBEb24n
dCBzZXQgdGhlIFVWIG9wdGlvbiBpZiB0aGUgYXV0aGVudGljYXRvciBkb2Vzbid0IHN1cHBvcnQg
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTgz
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjc4MTczNTk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisg
ICAgICAgIFVWIGluIHRoZSB0aGUgQ1RBUCAyLjAgc3BlYyBvbmx5IG1lYW5zIGludGVybmFsIFVW
OgorICAgICAgICBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIw
MTkwMTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE5
MDEzMC5odG1sI2F1dGhlbnRpY2F0b3JHZXRJbmZvCisKKyAgICAgICAgSWYgYW4gYXV0aGVudGlj
YXRvciBzdXBwb3J0cyBDbGllbnRQaW4sIGl0IGNhbiBzZXQgdGhlIHV2IGJpdCBpbiB0aGUgcmVz
cG9uc2VzIHRvIHRydWUgYnV0IGl0CisgICAgICAgIHdpbGwgbm90IGFkdmVydGlzZSBpdHNlbGYg
c3VwcG9ydGluZyBpbnRlcm5hbCBVViwgd2hpY2ggaXMgdGhlIHV2IGluIHRoZSBvcHRpb25zLgor
ICAgICAgICBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTkw
MTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE5MDEz
MC5odG1sI2F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbAorCisgICAgICAgIEhlbmNlLCBzZXR0
aW5nIGl0IHRvIHRydWUgY291bGQgcmVzdWx0IGluIGVycm9yIGlmIHRoZSBhdXRoZW50aWNhdG9y
IGRvZXNuJ3Qgc3VwcG9ydCBpbnRlcm5hbCBVViBldmVuIGlmIGl0IHN1cHBvcnRzIENsaWVudFBp
bi4KKyAgICAgICAgSXQncyBub3QgYSB3YXkgdG8gYXNrIHRoZSBhdXRoZW50aWNhdG9yIHRvIHNl
dCB0aGUgdXYgYml0IGluIHRoZSByZXNwb25zZS4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OmVuY29k
ZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVHZXRB
c3NlcnRpb25SZXF1ZXN0QXNDQk9SKToKKwogMjAyMC0wOS0xMiAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIGZvcm1hdEZvckRlYnVnZ2Vy
KCkgd2hpY2ggdXNlcyByYXcgY2hhciogd2l0aCBkZWJ1Z0Rlc2NyaXB0aW9uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29u
dmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VS
ZXF1ZXN0Q29udmVydGVyLmNwcAppbmRleCBlYWY0MWQ1YzUwZTMzNDUwYWJhNGFhMzlkODQzYmY3
NTg3YTQ4MmZhLi5mOGRmNzVjYTBmN2NiZDBlZmI5Yjk0NTlmYjQ2MTE2ODAwODc3ZDgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVz
dENvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCkBAIC0xMTEsMTAgKzExMSw4IEBAIFZlY3Rvcjx1
aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBoYXNoLCBjCiAgICAgICAgIGJvb2wgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSBm
YWxzZTsKICAgICAgICAgc3dpdGNoIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnVz
ZXJWZXJpZmljYXRpb24pIHsKICAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQ6OlJlcXVpcmVkOgotICAgICAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVl
OwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVp
cmVtZW50OjpQcmVmZXJyZWQ6Ci0gICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9
IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDog
dHJ1ZTsKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gdXZDYXBhYmlsaXR5
ID09IFVWQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZDsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291
cmFnZWQ6CiAgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOwpAQCAt
MTU3LDEwICsxNTUsOCBAQCBWZWN0b3I8dWludDhfdD4gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVz
dEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbgogICAgIGJvb2wgcmVxdWly
ZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKICAgICBzd2l0Y2ggKG9wdGlvbnMudXNlclZlcmlm
aWNhdGlvbikgewogICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJl
ZDoKLSAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOwotICAgICAgICBicmVh
azsKICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkOgotICAg
ICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJp
bGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1ZTsKKyAgICAgICAgcmVxdWlyZVVzZXJW
ZXJpZmljYXRpb24gPSB1dkNhcGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRB
bmRDb25maWd1cmVkOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25S
ZXF1aXJlbWVudDo6RGlzY291cmFnZWQ6CiAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9u
ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZGMyOTNlNzI4NmY0OWYyYjQwZjFjZWYxMTExMzQyMGE0ODkwNDM3NC4uMjMyZWM3NzVh
MjRiYjVmZDY4NTYyOWY2OTQwNGM5ZGM1YmFmODBhNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA5LTEzICBK
aWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBE
b24ndCBzZXQgdGhlIFVWIG9wdGlvbiBpZiB0aGUgYXV0aGVudGljYXRvciBkb2Vzbid0IHN1cHBv
cnQgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NTgzNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjc4MTczNTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
CiAyMDIwLTA5LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMjY2ODE3KTogQVNTRVJUSU9OIEZBSUxFRDogaW5qZWN0ZWRCdW5kbGUuaXNU
ZXN0UnVubmluZygpIG9uIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N2Zy10YXJnZXQtcmVmdGVzdC5odHRwcy5odG1sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3Qu
Y3BwCmluZGV4IDMzMjczOWYwNDc0YzA1NWVlMWNmOTU0YmFjNmRkMmM3ZTMwNjg3OTguLmYxMzlk
MjUyN2U2YmQ4Yzg1YTg1NzcwMzFmZDgwZWNmNWI4NzFiMmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCkBAIC02NCw3
ICs2NCw3IEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRp
YWxSZXF1ZXN0UGFyYW0pCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBv
cHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51bGxvcHQsIHsgfSwgc2VsZWN0
aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBXVEY6Om51bGxvcHQg
fTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6
a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwotICAg
IGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1Io
aGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBhdXRv
IHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gs
IG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7CiAgICAgRVhQRUNUX0VRKHNl
cmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFs
UmVxdWVzdCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBU
ZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QsIHNlcmlhbGl6ZWREYXRhLnNpemUo
KSksIDApOwogfQpAQCAtODcsNyArODcsMzAgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RD
b25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbU5vVVZOb1JLKQogICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFt
cywgV1RGOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJl
ZmVyZW5jZTo6Tm9uZSwgV1RGOjpudWxsb3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7
CiAgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3RE
YXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKLSAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2Rl
TWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVk
QnV0Tm90Q29uZmlndXJlZCk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VD
cmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENv
bmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihU
ZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCkpOworICAgIEVYUEVDVF9F
UShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVu
dGlhbFJlcXVlc3RTaG9ydCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1Qo
Q1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UGFyYW1V
VlJlcXVpcmVkQnV0Tm90U3VwcG9ydGVkKQoreworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUgPSAiQWNtZSI7CisgICAgcnAu
aWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJqb2hucHNtaXRoQGV4YW1wbGUu
Y29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFjbWUuY29tLzAwL3AvYUJqampw
cVBiLnBuZyI7CisgICAgdXNlci5pZFZlY3Rvci5hcHBlbmQoVGVzdERhdGE6OmtVc2VySWQsIHNp
emVvZihUZXN0RGF0YTo6a1VzZXJJZCkpOworICAgIHVzZXIuZGlzcGxheU5hbWUgPSAiSm9obiBQ
LiBTbWl0aCI7CisKKyAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGlj
S2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3IH0gfTsK
KyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBmYWxzZSwgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZCB9OworCisgICAgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51
bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpO
b25lLCBXVEY6Om51bGxvcHQgfTsKKyAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAgICBoYXNo
LmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGll
bnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVu
aXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQpOwogICAg
IEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBN
YWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFs
aXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9y
dCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7CiB9CkBAIC0xMTQsNyArMTM3LDcgQEAgVEVT
VChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJh
bVdpdGhQaW4pCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25z
IHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBB
dHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBXVEY6Om51bGxvcHQgfTsKICAg
ICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVu
dERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwotICAgIGF1dG8g
c2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwg
b3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkLCBwaW4pOworICAgIGF1dG8g
c2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwg
b3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBwaW4pOwogICAgIEVYUEVDVF9F
UShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVu
dGlhbFJlcXVlc3RXaXRoUGluKSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0
YS5kYXRhKCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFdpdGhQaW4sIHNl
cmlhbGl6ZWREYXRhLnNpemUoKSksIDApOwogfQpAQCAtMTUxLDcgKzE3NCw3IEBAIFRFU1QoQ1RB
UFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0R2V0QXNzZXJ0aW9uUmVxdWVzdCkKIAogICAgIFZl
Y3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0
YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJp
YWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9u
cywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWRE
YXRhID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6
a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQpOwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5z
aXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVl
c3QpKTsKICAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERh
dGE6OmtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0LCBzZXJpYWxpemVkRGF0YS5z
aXplKCkpLCAwKTsKIH0KQEAgLTE4OCw3ICsyMTEsNDQgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3Qs
IFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0Tm9VVikKIAogICAgIFZlY3Rvcjx1aW50
OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNp
emVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJpYWxpemVkRGF0
YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtT
dXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5j
b2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRl
ZEFuZENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNp
emVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RTaG9ydCkp
OworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6
a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RTaG9ydCwgc2VyaWFsaXplZERhdGEu
c2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0R2V0
QXNzZXJ0aW9uUmVxdWVzdFVWUmVxdWlyZWRCdXROb3RTdXBwb3J0ZWQpCit7CisgICAgUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5ycElkID0g
ImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIGRlc2NyaXB0
b3IxOworICAgIGRlc2NyaXB0b3IxLnR5cGUgPSBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVi
bGljS2V5OworICAgIGNvbnN0IHVpbnQ4X3QgaWQxW10gPSB7CisgICAgICAgIDB4ZjIsIDB4MjAs
IDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4OGEsIDB4NDMsIDB4OTQsCisg
ICAgICAgIDB4MmYsIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4M2QsIDB4
OWMsIDB4NmQsIDB4NGIsCisgICAgICAgIDB4M2QsIDB4ZjgsIDB4YmUsIDB4MDgsIDB4ZWQsIDB4
MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsCisgICAgICAgIDB4MzQsIDB4ODUsIDB4
OGEsIDB4YzcsIDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYsIDB4OTgsCisgICAg
ICAgIDB4MDgsIDB4ZDksIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYs
IDB4NjYsIDB4NzcsCisgICAgICAgIDB4YWYsIDB4MGEsIDB4ZGMsIDB4YzMsIDB4NTgsIDB4NTIs
IDB4ZWEsIDB4NmIsIDB4OWUgfTsKKyAgICBkZXNjcmlwdG9yMS5pZFZlY3Rvci5hcHBlbmQoaWQx
LCBzaXplb2YoaWQxKSk7CisgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLmFwcGVuZChkZXNj
cmlwdG9yMSk7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciBkZXNjcmlwdG9y
MjsKKyAgICBkZXNjcmlwdG9yMi50eXBlID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1Ymxp
Y0tleTsKKyAgICBjb25zdCB1aW50OF90IGlkMltdID0geworICAgICAgICAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzIH07CisgICAgZGVzY3JpcHRvcjIu
aWRWZWN0b3IuYXBwZW5kKGlkMiwgc2l6ZW9mKGlkMikpOworICAgIG9wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjIpOworCisgICAgb3B0aW9ucy51c2VyVmVyaWZpY2F0
aW9uID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDsKKworICAgIFZlY3Rv
cjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBzZXJpYWxp
emVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtOb3RTdXBwb3J0ZWQpOwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCks
IHNpemVvZihUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RTaG9y
dCkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0
YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RTaG9ydCwgc2VyaWFsaXplZERh
dGEuc2l6ZSgpKSwgMCk7CiB9CkBAIC0yMjksNyArMjg5LDcgQEAgVEVTVChDVEFQUmVxdWVzdFRl
c3QsIFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0V2l0aFBpbikKIAogICAgIFZlY3Rv
cjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJpYWxp
emVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkLCBwaW4pOworICAgIGF1dG8gc2VyaWFsaXpl
ZERhdGEgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgcGluKTsKICAgICBFWFBFQ1RfRVEoc2VyaWFsaXpl
ZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRp
b25SZXF1ZXN0V2l0aFBpbikpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEu
ZGF0YSgpLCBUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RXaXRo
UGluLCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMDAwZDRjY2EzMzY4
MWJlNDE5M2UyMWY4ZmE4NjU3ODQ1NjlmNTcyLi45ZDYxNWFjYWM3MjIwZGFmOTMyOGM5YzJkOTk3
NThiMTg3NzY0NjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMTggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIERvbid0IHNl
dCB0aGUgVVYgb3B0aW9uIGlmIHRoZSBhdXRoZW50aWNhdG9yIGRvZXNuJ3Qgc3VwcG9ydCBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1ODM2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NzgxNzM1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICog
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhp
ZC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRw
cy5odG1sOgorCiAyMDIwLTA5LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjY2ODE3KTogQVNTRVJUSU9OIEZBSUxFRDogaW5qZWN0ZWRC
dW5kbGUuaXNUZXN0UnVubmluZygpIG9uIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N2Zy10YXJnZXQtcmVmdGVzdC5odHRwcy5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLXNpbGVudC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jl
YXRlLWZhaWx1cmUtaGlkLXNpbGVudC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNTBhZjFkYzhi
ZWRlZmY5N2JmODE2OTg0YjdlMWNlMjU4YWNjYWY4Ni4uZmViMTdjYzBlYjYwN2M1MzkxMzRhMWY0
NjIwMGIwYWI0ZjRiOTM1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC1zaWxlbnQuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMiwxMSArMiw5IEBAIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0dXJlIGlzIG5vdCBk
ZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yCiBDT05TT0xFIE1FU1NB
R0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0
aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScgd2l0aGluIHVz
ZXIgYWN0aXZhdGVkIGV2ZW50cy4KIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0dXJlIGlzIG5v
dCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLCBjYWxsICduYXZp
Z2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlJyB3aXRoaW4gdXNlciBhY3RpdmF0ZWQgZXZlbnRzLgog
Q09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhl
IHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IsIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMuCi1DT05TT0xFIE1FU1NBR0U6IFVzZXIg
Z2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRv
ciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScgd2l0aGluIHVzZXIgYWN0aXZh
dGVkIGV2ZW50cy4KIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IG1hbGljaW91cyBwYXlsb2FkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdW5zdXBwb3J0ZWQgb3B0aW9ucyBp
biBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAotUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tjcmVhdGVdXSB3aXRoIHVuc3VwcG9ydGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50
aWNhdG9yLiAyIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1p
eGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBJbnZhbGlkU3RhdGVFcnJvciBpbiBhIG1vY2sg
aGlkIGF1dGhlbnRpY2F0b3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLXNpbGVudC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC1zaWxlbnQuaHR0cHMuaHRtbAppbmRleCBmMzU4NjZh
NmUzNjE2NjVhMzI1MGVlZDU5NGJjNDBkYTJkMGI2ZDJkLi40MzZjYjg5OTc1MmE5MjBmZTlhZDRk
NmU0ZjNhN2MxMjA0ZTA4ODhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLXNpbGVudC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLmh0bWwKQEAgLTQ5LDI5ICs0
OSw2IEBACiAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9y
IiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1l
ZCBvdXQuIik7CiAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGgg
dW5zdXBwb3J0ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CiAKLSAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgICAgICBjb25zdCBvcHRpb25zID0gewot
ICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAg
ICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBs
ZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1
NiIpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAotICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgi
MTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1
YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxl
Y3Rpb246IHsgdXNlclZlcmlmaWNhdGlvbjogInJlcXVpcmVkIiB9LAotICAgICAgICAgICAgICAg
IHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGhpZDogeyBzdGFnZTog
InJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAidW5zdXBwb3J0ZWQtb3B0aW9ucyIg
fSB9KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3Ii
LCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVk
IG91dC4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB1
bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiIpOwotCiAg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsK
ICAgICAgICAgICAgIHB1YmxpY0tleTogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAy
ZDc0NTA3NjIwM2I2Y2Y0MWVjMmVjODcyMDFlYWFhZDU2NWQ5YmVmLi43M2ZmZDc3ZjI1YTZkNWIw
YTFmNmUyMjAyZGU3YjA4N2Y5NzhiZWY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
NCwxMiArNCwxMCBAQCBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0
ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvcgogQ09OU09MRSBNRVNTQUdFOiBV
c2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRp
Y2F0b3IsIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUnIHdpdGhpbiB1c2VyIGFj
dGl2YXRlZCBldmVudHMuCiBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0
ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZScgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KIENPTlNP
TEUgTUVTU0FHRTogVXNlciBnZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0
Zm9ybSBhdXRoZW50aWNhdG9yLCBjYWxsICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlJyB3
aXRoaW4gdXNlciBhY3RpdmF0ZWQgZXZlbnRzLgotQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1
cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IsIGNh
bGwgJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBl
dmVudHMuCiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1l
b3V0IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2NyZWF0ZV1dIHdpdGggbWFsaWNpb3VzIHBheWxvYWQgaW4gYSBtb2NrIGhpZCBhdXRo
ZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB1
bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCi1QQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdW5zdXBwb3J0ZWQgb3B0aW9ucyBp
biBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIDIgCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2NyZWF0ZV1dIHdpdGggbWl4ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0
b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1peGVkIG9w
dGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIAogUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIEludmFsaWRTdGF0ZUVycm9yIGluIGEgbW9jayBoaWQg
YXV0aGVudGljYXRvci4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKaW5kZXggMTBjZmVhZGZlNTYyNmJjODRmOWYwZWMyOTA0
MGFhOTJkN2JiODkyNi4uNmNmNzZhOWZmZjI1ZTVjZDdhNjhiNGMwOGFmYmVhNDE4MjYyOTMxNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQu
aHR0cHMuaHRtbApAQCAtNzIsMjggKzcyLDYgQEAKICAgICAgICAgcmV0dXJuIHByb21pc2VSZWpl
Y3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlv
bnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogNDMiKTsKICAgICB9LCAi
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB1bnN1cHBvcnRlZCBvcHRpb25z
IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNL
ZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAi
ZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7
Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAg
ICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAg
ICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAg
ICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcg
fV0sCi0gICAgICAgICAgICAgICAgYXV0aGVudGljYXRvclNlbGVjdGlvbjogeyB1c2VyVmVyaWZp
Y2F0aW9uOiAicmVxdWlyZWQiIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgIGludGVybmFscy5zZXRNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1
YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJ1bnN1cHBvcnRlZC1vcHRpb25zIiB9IH0pOwotICAgICAg
ICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlVua25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBj
b2RlOiA0MyIpOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IHVuc3VwcG9ydGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIik7Ci0K
ICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICBjb25zdCBvcHRpb25zID0g
ewogICAgICAgICAgICAgcHVibGljS2V5OiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLXNpbGVu
dC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLXNpbGVudC5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggZDExZjcyYjlmNTgyODY5Y2FmZTQxOGE1MzM0MDM0NGY2NGRmNDc5OS4uY2RiZmU4
ZjA1ZDg1MmQxYWYyZjlkZDlhYTk1NmZmN2Y2OTE1ZjUxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhp
ZC1zaWxlbnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMiwxMCArMiw4IEBAIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0
dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yCiBD
T05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUg
cGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcg
d2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0
dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLCBj
YWxsICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyB3aXRoaW4gdXNlciBhY3RpdmF0ZWQgZXZl
bnRzLgogQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1
c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IsIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50aWFs
cy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMuCi1DT05TT0xFIE1FU1NBR0U6IFVz
ZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGlj
YXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgd2l0aGluIHVzZXIgYWN0aXZh
dGVkIGV2ZW50cy4KIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1h
bGljaW91cyBwYXlsb2FkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCi1QQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdW5zdXBwb3J0ZWQgb3B0aW9ucyBpbiBhIG1v
Y2sgaGlkIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRd
XSB3aXRoIGludmFsaWQgY3JlZGVudGlhbCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAog
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGF1dGhlbnRpY2F0b3IgZG93
bmdyYWRlIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgaW4gYSBtb2NrIGhp
ZCBhdXRoZW50aWNhdG9yLiAyIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC1zaWxlbnQuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1nZXQtZmFpbHVyZS1oaWQtc2lsZW50Lmh0dHBzLmh0bWwKaW5kZXggMzhmNDA3NDllOTVhZTA1
YmM5MjdmMWRjYmIzY2I5ZTFkOTIxZTc3Mi4uNmViMzcxMDU5ZmZlNmI1NzU1NWYwOWY5NWJmMTdi
NjQxZGYxNmZiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC1zaWxlbnQuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0
LWZhaWx1cmUtaGlkLXNpbGVudC5odHRwcy5odG1sCkBAIC0xNywyMCArMTcsNiBAQAogICAgICAg
ICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOwogICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1hbGljaW91cyBwYXlsb2FkIGlu
IGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6
IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYi
KSwKLSAgICAgICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uOiAicmVxdWlyZWQiLAotICAgICAg
ICAgICAgICAgIHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dl
YkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGhpZDog
eyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAidW5zdXBwb3J0ZWQt
b3B0aW9ucyIgfSB9KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxv
d2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiT3BlcmF0aW9u
IHRpbWVkIG91dC4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0
aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKLQog
ICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7
CiAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZDY1Mzdl
ODZhZTQyM2Q1ZDI1MDRmNWJmZTUyY2UyNjUxZDgxMDFkOS4uZGUwZWU1YzQyNDBhNGQzMTZmZjhk
NjlmYzI3ZTMzM2EyYjA0ZTQ3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQsMTEgKzQsOSBA
QCBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0
aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvcgogQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUg
aXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IsIGNhbGwg
J25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMu
CiBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0
aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdl
dCcgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KIENPTlNPTEUgTUVTU0FHRTogVXNlciBn
ZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9y
LCBjYWxsICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyB3aXRoaW4gdXNlciBhY3RpdmF0ZWQg
ZXZlbnRzLgotQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBU
byB1c2UgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IsIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50
aWFscy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMuCiAKIFBBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0aW1lb3V0IGluIGEgbW9jayBoaWQgYXV0aGVudGlj
YXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbWFsaWNpb3Vz
IHBheWxvYWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKLVBBU1MgUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQg
YXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGgg
YXV0aGVudGljYXRvciBkb3duZ3JhZGUgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRv
ci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRv
ciBkb3duZ3JhZGUgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiAKIFBBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhdXRoZW50aWNhdG9yIGRvd25ncmFk
ZSBzdWNjZWVkZWQgYW5kIHRoZW4gVTJGIGZhaWxlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0
b3IuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRw
cy5odG1sCmluZGV4IGIxN2Y3MjZmNmMwNjhhZTFhYmZmNWNjNGZhMWQwOGFmNTQxNzU1NWIuLjhi
ZTg2N2RmNWU4NmI3MThlNjkxMWEyNWY1ZmU2NGYzZTQ1OTljMTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVy
ZS1oaWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKQEAgLTM2LDE5ICsz
Niw2IEBACiAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiVW5rbm93bkVycm9yIiwg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlVua25vd24gaW50ZXJuYWwgZXJy
b3IuIEVycm9yIGNvZGU6IDI1NSIpOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tn
ZXRdXSB3aXRoIG1hbGljaW91cyBwYXlsb2FkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4i
KTsKIAotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgICAgIGNvbnN0IG9wdGlv
bnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVu
Z2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICB1c2VyVmVy
aWZpY2F0aW9uOiAicmVxdWlyZWQiCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dl
YkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBz
dWJTdGFnZTogIm1zZyIsIGVycm9yOiAidW5zdXBwb3J0ZWQtb3B0aW9ucyIgfSB9KTsKLSAgICAg
ICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29k
ZTogNDMiKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB1bnN1
cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKLQogICAgIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CiAgICAg
ICAgICAgICBwdWJsaWNLZXk6IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>