<?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>213900</bug_id>
          
          <creation_ts>2020-07-02 14:38:44 -0700</creation_ts>
          <short_desc>[WebAuthn] Cache the PIN to improve NFC user experience</short_desc>
          <delta_ts>2020-07-28 00:18:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari Technology Preview</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Other</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>jiewen_tan</cc>
    
    <cc>loginllama</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1668366</commentid>
    <comment_count>0</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2020-07-02 14:38:44 -0700</bug_when>
    <thetext>In iOS 14 developer beta
The authenticator has a pin set:

The Authenticator is attached over USB/Lightning or NFC.

Tf the external key is removed from the NFC field or USB/Lightning port after the initial CTAP2 getKeyAgrement command getPinToken will fail.

The problem is that the getKeyAgrement happens before the user is prompted to enter pin.  With NFC the natural thing is to remove the key form the NFC field to use your hand to type the pin then tap again.   Unfortunately, since keys are powered via USB or NFC the key will generate a new EC key pair and that will not agree with the one the phone got prior to the power interuption.

The way that Windows 10 implemented it is with two taps.
The first tap the platform gets authenticatorGetInfo.
If the authenticator receives the option uv = True then it proceeds directly to getAssertion with the option uv=1 to trigger internal UV if that fails the authenticator will return pin-required.

If the authenticatorGetInfo has pinToken = true and (uv is not True or received a pin-required error from the previous step):
    Prompt user for pin 
    Prompt user to tap again or re-insert.
    Perform authenticatorClientPIN (0x06) with subcommand getKeyAgreement (0x03)
    Perform authenticatorClientPIN (0x06) with subcommand getPINToken (0x05)
    Perform authenticatorGetAssertion (0x02) with pinAuth form the previous step (might require more than one call depending on allow list size.)

Windows supports CCID NFC readers on the desktop. 
Android only supports CTAP1 over NFC so is not a good example. 

Brave uses the Yubico SDK to implement NFC support.  You can see the two tap pattern there.  Unfortunately, Brave seems to be having a NFC issue on iOS 14 but may work on iOS 13 or did not long ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671691</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-15 01:54:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/60073622&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671692</commentid>
    <comment_count>2</comment_count>
      <attachid>404328</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-15 02:01:34 -0700</bug_when>
    <thetext>Created attachment 404328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671693</commentid>
    <comment_count>3</comment_count>
      <attachid>404328</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-15 02:03:24 -0700</bug_when>
    <thetext>Comment on attachment 404328
Patch

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

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:292
&gt; +        m_pendingRequestData.cachedPin = pin;

Oops, forgot to use the weak pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671836</commentid>
    <comment_count>4</comment_count>
      <attachid>404364</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-15 11:31:37 -0700</bug_when>
    <thetext>Created attachment 404364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672636</commentid>
    <comment_count>5</comment_count>
      <attachid>404364</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-07-17 14:50:40 -0700</bug_when>
    <thetext>Comment on attachment 404364
Patch

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

r=me

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:284
&gt; +    // issue. The probability of the issue, however, should be rare.

I think this is pretty well documented in the Bugzilla.

I would suggest a shorter note:

// Cache the PIN to improve NFC user experience so that a momentary movement of the NFC key away from the scanner doesn&apos;t force the PIN entry to be re-entered.

Question: Should this have some kind of timeout to clear it if some period of time passes?

That might be a reasonable followup patch if you think it&apos;s needed. I don&apos;t think it&apos;s required here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672656</commentid>
    <comment_count>6</comment_count>
      <attachid>404364</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-17 15:13:14 -0700</bug_when>
    <thetext>Comment on attachment 404364
Patch

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

Thanks Brent for r+ this patch.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:284
&gt;&gt; +    // issue. The probability of the issue, however, should be rare.
&gt; 
&gt; I think this is pretty well documented in the Bugzilla.
&gt; 
&gt; I would suggest a shorter note:
&gt; 
&gt; // Cache the PIN to improve NFC user experience so that a momentary movement of the NFC key away from the scanner doesn&apos;t force the PIN entry to be re-entered.
&gt; 
&gt; Question: Should this have some kind of timeout to clear it if some period of time passes?
&gt; 
&gt; That might be a reasonable followup patch if you think it&apos;s needed. I don&apos;t think it&apos;s required here.

Fixed. For the timer, I&apos;m not sure. The API has a global timeout timer which has a maximum value of 120s. After, the whole request will be cancelled. I guess it&apos;s enough?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672661</commentid>
    <comment_count>7</comment_count>
      <attachid>404603</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-17 15:16:10 -0700</bug_when>
    <thetext>Created attachment 404603
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672696</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-17 15:58:55 -0700</bug_when>
    <thetext>Committed r264543: &lt;https://trac.webkit.org/changeset/264543&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404603.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675528</commentid>
    <comment_count>9</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-28 00:18:39 -0700</bug_when>
    <thetext>*** Bug 214849 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404328</attachid>
            <date>2020-07-15 02:01:34 -0700</date>
            <delta_ts>2020-07-15 11:31:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213900-20200715020133.patch</filename>
            <type>text/plain</type>
            <size>18672</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUzZjA0MmI0YTk5NDZlOTkw
NDVjMTZkZTc3NjQ1OGFlN2JkZjA3OGMuLjcyNTAzMzU5NmQ5ZTlhYzYxZjg3ZWIyYzNiNjU2MzAz
YzcyNjFkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDctMTUgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIENhY2hlIHRo
ZSBQSU4gdG8gaW1wcm92ZSBORkMgdXNlciBleHBlcmllbmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzYwMDczNjIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENhY2hlIHRoZSBQSU4gdG8gaW1wcm92ZSBORkMgdXNlciBleHBlcmllbmNlLiBVc2Vy
cyBtaWdodCBub3QgaG9sZCB0aGUgTkZDIGtleSBhZ2FpbnN0IHRoZSBORkMgc2Nhbm5lciBhbGwg
dGhlIHRpbWUKKyAgICAgICAgd2hpbGUgZW50ZXJpbmcgdGhlIFBJTi4gVGhlcmVmb3JlLCB3ZSBj
YWNoZSB0aGUgUElOIGZyb20gdGhlIHByZXZpb3VzIGNvbm5lY3Rpb24gYW5kIGltbWVkaWF0ZWx5
IHJldHVybiB0aGUgY2FjaGVkIFBJTiB0bworICAgICAgICB0aGUgY3VycmVudCBjb25uZWN0aW9u
IHN1Y2ggdGhhdCB1c2VycyBkb24ndCBuZWVkIHRvIGVudGVyIHRoZSBQSU4gYWdhaW4uCisKKyAg
ICAgICAgVGhlIG9ubHkgZG93bnNpZGUgZm9yIHRoaXMgb3B0aW1pemF0aW9uIGlzIHRoYXQgYSB3
cm9uZyBQSU4gY291bGQgYmUgdXNlZCBpZiB0aGUgdXNlciBzd2l0Y2ggdG8gYW5vdGhlciBhdXRo
ZW50aWNhdG9yIGZvcgorICAgICAgICB0aGUgbmV3IGNvbm5lY3Rpb24uIEdpdmVuIHRoZXJlIGlz
IG5vIFVVSUQgdG8gaWRlbnRpZnkgYSBwYXJ0aWN1bGFyIGF1dGhlbnRpY2F0b3IsIHRoZXJlIGlz
IG5vdGhpbmcgd2UgY2FuIGRvIHRvIHJlc29sdmUgdGhlCisgICAgICAgIGlzc3VlLiBUaGUgcHJv
YmFiaWxpdHkgb2YgdGhlIGlzc3VlLCBob3dldmVyLCBzaG91bGQgYmUgcmFyZS4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6cmVxdWVzdFBpbik6CisgICAgICAgIFdo
ZXJlIHRoZSBhYm92ZSBsb2dpYyBpcyBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOZmNDb25uZWN0aW9uOjp0cmFuc2FjdCBjb25zdCk6CisgICAgICAgIEFkZHMgYSBjb21t
ZW50LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0aW9uUmVxdWVzdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRpYWwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6Z2V0QXNzZXJ0
aW9uKToKKyAgICAgICAgQWRkcyBhIGZpZWxkIGZvciB0aGUgY2FjaGVkIFBJTi4KKwogMjAyMC0w
Ny0xMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU106IEEgSEVJRiBpbWFnZSwgc2VsZWN0ZWQgZnJvbSB0aGUgT3BlblBhbmVsLCBz
aG91bGQgYmUgY29udmVydGVkIHRvIGFuIGFjY2VwdGVkIE1JTUUgdHlwZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDY4MDQzN2IxZGEzMDlkZDdjYjY2MWQ0N2ExMzVj
MjgwZTA5YjA5NzIuLjFiZjExMzgyNjhkMjFkNGZiMjAzMGQ1MjczYzFkZGFmMjgzMzEzOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTI2NCw2ICsyNjQsMTAgQEAg
dm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZG93bmdyYWRlKEF1dGhlbnRpY2F0b3IqIGlkLCBS
ZWY8QXV0aGVudGljYXRvcj4mJiBkb3cKIAogdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0
aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMgc3RhdHVzKQog
eworICAgIC8vIEltbWVkaWF0ZWx5IGludmFsaWRhdGUgdGhlIGNhY2hlIGlmIHRoZSBQSU4gaXMg
aW5jb3JyZWN0LiBBIHN0YXR1cyB1cGRhdGUgb2Z0ZW4gbWVhbnMKKyAgICAvLyBhbiBlcnJvci4g
V2UgZG9uJ3QgcmVhbGx5IGNhcmUgd2hhdCBraW5kIG9mIGVycm9yIGl0IHJlYWxseSBpcy4KKyAg
ICBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5jYWNoZWRQaW4gPSBTdHJpbmcoKTsKKwogICAgIGRpc3Bh
dGNoUGFuZWxDbGllbnRDYWxsKFtzdGF0dXNdIChjb25zdCBBUEk6OldlYkF1dGhlbnRpY2F0aW9u
UGFuZWwmIHBhbmVsKSB7CiAgICAgICAgIHBhbmVsLmNsaWVudCgpLnVwZGF0ZVBhbmVsKHN0YXR1
cyk7CiAgICAgfSk7CkBAIC0yNzEsOCArMjc1LDI2IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFn
ZXI6OmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIHN0
CiAKIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnJlcXVlc3RQaW4odWludDY0X3QgcmV0cmll
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIGRpc3BhdGNoUGFuZWxDbGllbnRDYWxsKFtyZXRyaWVzLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgQVBJOjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsJiBwYW5lbCkgbXV0YWJsZSB7Ci0gICAgICAgIHBhbmVsLmNs
aWVudCgpLnJlcXVlc3RQaW4ocmV0cmllcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIC8vIENhY2hlIHRoZSBQSU4gdG8gaW1wcm92ZSBORkMgdXNlciBleHBlcmllbmNlLiBVc2Vy
cyBtaWdodCBub3QgaG9sZCB0aGUgTkZDIGtleSBhZ2FpbnN0IHRoZSBORkMgc2Nhbm5lciBhbGwg
dGhlIHRpbWUKKyAgICAvLyB3aGlsZSBlbnRlcmluZyB0aGUgUElOLiBUaGVyZWZvcmUsIHdlIGNh
Y2hlIHRoZSBQSU4gZnJvbSB0aGUgcHJldmlvdXMgY29ubmVjdGlvbiBhbmQgaW1tZWRpYXRlbHkg
cmV0dXJuIHRoZSBjYWNoZWQgUElOIHRvCisgICAgLy8gdGhlIGN1cnJlbnQgY29ubmVjdGlvbiBz
dWNoIHRoYXQgdXNlcnMgZG9uJ3QgbmVlZCB0byBlbnRlciB0aGUgUElOIGFnYWluLgorICAgIC8v
IFdlIGRvbid0IGRpc3Rpbmd1aXNoIFVTQiBhbmQgTkZDIGhlcmUgYmVjdWFzZSB0aGVyZSBpcyBu
byBoYXJtcyB0byBoYXZlIHRoaXMgb3B0aW1pemF0aW9uIGZvciBVU0IgZXZlbiB0aG91Z2ggaXQg
aXMgdXNlbGVzcy4KKyAgICAvLyBUaGUgb25seSBkb3duc2lkZSBmb3IgdGhpcyBvcHRpbWl6YXRp
b24gaXMgdGhhdCBhIHdyb25nIFBJTiBjb3VsZCBiZSB1c2VkIGlmIHRoZSB1c2VyIHN3aXRjaCB0
byBhbm90aGVyIGF1dGhlbnRpY2F0b3IgZm9yCisgICAgLy8gdGhlIG5ldyBjb25uZWN0aW9uLiBH
aXZlbiB0aGVyZSBpcyBubyBVVUlEIHRvIGlkZW50aWZ5IGEgcGFydGljdWxhciBhdXRoZW50aWNh
dG9yLCB0aGVyZSBpcyBub3RoaW5nIHdlIGNhbiBkbyB0byByZXNvbHZlIHRoZQorICAgIC8vIGlz
c3VlLiBUaGUgcHJvYmFiaWxpdHkgb2YgdGhlIGlzc3VlLCBob3dldmVyLCBzaG91bGQgYmUgcmFy
ZS4KKyAgICBpZiAoIW1fcGVuZGluZ1JlcXVlc3REYXRhLmNhY2hlZFBpbi5pc051bGwoKSkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtX3BlbmRpbmdSZXF1ZXN0RGF0YS5jYWNoZWRQaW4p
OworICAgICAgICBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5jYWNoZWRQaW4gPSBTdHJpbmcoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIChjb25zdCBXVEY6OlN0cmluZyYgcGluKSBtdXRhYmxlIHsKKyAgICAg
ICAgbV9wZW5kaW5nUmVxdWVzdERhdGEuY2FjaGVkUGluID0gcGluOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihwaW4pOworICAgIH07CisKKyAgICBkaXNwYXRjaFBhbmVsQ2xpZW50Q2FsbChb
cmV0cmllcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGNvbnN0IEFQSTo6V2ViQXV0
aGVudGljYXRpb25QYW5lbCYgcGFuZWwpIG11dGFibGUgeworICAgICAgICBwYW5lbC5jbGllbnQo
KS5yZXF1ZXN0UGluKHJldHJpZXMsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICB9KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTmZjQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0KaW5kZXggYmNhZWE0NjBmYmE0YTM0MjUwODA1
N2YyNDY5ZDBmMjY4OTE2ODdjYy4uOTEwNDg1MDc5NzQxMTdiZjllZjNlMzZkMTg0MmZlZTE5ODQ5
NTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvTmZjQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1tCkBAIC05MSw2ICs5MSw3IEBA
IE5mY0Nvbm5lY3Rpb246On5OZmNDb25uZWN0aW9uKCkKIFZlY3Rvcjx1aW50OF90PiBOZmNDb25u
ZWN0aW9uOjp0cmFuc2FjdChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSBjb25zdAogewogICAgIFZl
Y3Rvcjx1aW50OF90PiByZXNwb25zZTsKKyAgICAvLyBUaGUgbWV0aG9kIHdpbGwgcmV0dXJuIGFu
IGVtcHR5IE5TRGF0YSBpZiB0aGUgdGFnIGlzIGRpc2Nvbm5lY3RlZC4KICAgICBhdXRvICpyZXNw
b25zZURhdGEgPSBbbV9zZXNzaW9uIHRyYW5zY2VpdmU6YWRvcHROUyhbW05TRGF0YSBhbGxvY10g
aW5pdFdpdGhCeXRlczpkYXRhLmRhdGEoKSBsZW5ndGg6ZGF0YS5zaXplKCldKS5nZXQoKV07CiAg
ICAgcmVzcG9uc2UuYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHJlc3Bv
bnNlRGF0YS5ieXRlcyksIHJlc3BvbnNlRGF0YS5sZW5ndGgpOwogICAgIHJldHVybiByZXNwb25z
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAppbmRleCAw
NGVkYzY3NTQyMzZiN2JmNWUyMjI1NTg4NDFjNDkxMzY4NWQyYjAyLi42ZTQwMmZjZGYxMjVjNmUy
MzYxYmQyN2RmYjU4MDIyYmRjMTcyNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRpb25SZXF1ZXN0RGF0YS5oCkBAIC01MSw2ICs1MSw3IEBAIHN0cnVjdCBXZWJBdXRoZW50aWNh
dGlvblJlcXVlc3REYXRhIHsKICAgICBXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6Okdsb2JhbEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZv
OwogICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlOworICAgIFN0cmluZyBjYWNoZWRQaW47
IC8vIE9ubHkgdXNlZCB0byBpbXByb3ZlIE5GQyBDbGllbnQgUElOIGV4cGVyaWVuY2UuCiB9Owog
CiBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShjb25zdCBWYXJpYW50
PFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFdlYkNvcmU6OlB1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA3YWVjZDE4OTY2OTgz
ZDUxYmVmZDg4YmYzOWM2MDdjZTM2NTkxZGMxLi5jMmJmYzQ3ZjZhNzc5MGFhZThmMzA3ZDNjNTgw
ZGY1OTBhYjJmOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkuY3BwCkBAIC01NywxMiArNTcsMTIgQEAgV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHk6On5XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eSgpCiAKIHZv
aWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Om1ha2VDcmVkZW50aWFsKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlkLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBWZWN0b3I8dWlu
dDhfdD4mJiBoYXNoLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYgb3B0aW9u
cywgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUo
b3B0aW9ucyksIG1ha2VXZWFrUHRyKG1fd2ViUGFnZVByb3h5KSwgV2ViQXV0aGVudGljYXRpb25Q
YW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIEdsb2JhbEZyYW1lSWRlbnRpZmllciB7
IG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCBmcmFtZUlkIH0sIFdURk1vdmUoZnJhbWVJbmZv
KSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlIH0sIFdURk1vdmUoaGFuZGxlcikpOworICAgIGhhbmRs
ZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBtYWtlV2Vha1B0ciht
X3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxl
LCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBhZ2VQcm94eS53ZWJQYWdl
SUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSwgU3RyaW5nKCkgfSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHk6OmdldEFzc2VydGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
ZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgUHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5n
VXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAg
aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1ha2VXZWFr
UHRyKG1fd2ViUGFnZVByb3h5KSwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFp
bGFibGUsIG51bGxwdHIsIEdsb2JhbEZyYW1lSWRlbnRpZmllciB7IG1fd2ViUGFnZVByb3h5Lndl
YlBhZ2VJRCgpLCBmcmFtZUlkIH0sIFdURk1vdmUoZnJhbWVJbmZvKSwgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlIH0sIFdURk1vdmUoaGFuZGxlcikpOworICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3Zl
KGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxG
cmFtZUlkZW50aWZpZXIgeyBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBX
VEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCkgfSwgV1RG
TW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJv
eHk6OmhhbmRsZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEsIFJl
cXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTQ3Mjg1MDI4Yzk2YWNkM2QzNjEyNjhkOGIx
YzFjMmNiODdjZWNmYS4uMzAwZDQxODUzNWZkZTRkYWU3YzVkMjZhNmUxN2IzODI2YzgzYWQyYyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTA3LTE1ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dlYkF1dGhuXSBDYWNoZSB0aGUgUElOIHRvIGltcHJvdmUgTkZDIHVzZXIg
ZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzOTAwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDA3MzYyMj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1k
aXNjb25uZWN0Lmh0bWw6IEFkZGVkLgorCiAyMDIwLTA3LTEyICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXTogQSBIRUlGIGltYWdl
LCBzZWxlY3RlZCBmcm9tIHRoZSBPcGVuUGFuZWwsIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gYW4g
YWNjZXB0ZWQgTUlNRSB0eXBlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE2NzFkMzM2ZDM2
ZmVhMTJlMjhjN2I2ZTc0ZDc1NzMzODVjYjI3ODMuLmZlMTY5MTNmZGFhZWE3ZDY1YTc2YWJlODI1
ZjNiMzE1YzYwM2UzNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzIsNiArMzcyLDcg
QEAKIAkJNTc0MjE3OEUyNDAwRDJERjAwMkIzMDNEIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtbGEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzQyMTc4RDI0MDBEMjZDMDAyQjMwM0QgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS5odG1sICovOyB9OwogCQk1NzRGNTVEMjIwNEQ0N0Yw
MDAyOTQ4QzYgLyogU2VjdXJpdHkuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc0RjU1RDAyMDRENDcxQzAwMjk0OEM2IC8qIFNlY3Vy
aXR5LmZyYW1ld29yayAqLzsgfTsKIAkJNTc1MUIyOEEyNDlENUJDNTAwNjY0QzJBIC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2Ut
cGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzUxQjI4OTI0OUQ1Qjk5MDA2NjRDMkEgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFr
ZS1waW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1sICovOyB9OworCQk1NzUzN0VFODI0QkVBMDVG
MDA0OERCQTUgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNj
b25uZWN0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTc1MzdFRTcyNEJFQTAxOTAwNDhEQkE1IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLW5mYy1waW4tZGlzY29ubmVjdC5odG1sICovOyB9OwogCQk1NzU4NTk3RjIz
QTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1ODU5N0UyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQ
aW5UZXN0LmNwcCAqLzsgfTsKIAkJNTc1ODU5ODQyM0MzQzNBNDAwQzc0NTcyIC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NTg1OTgzMjNDM0MzNjIwMEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCAqLzsgfTsKIAkJNTc1OTlFMjExRjA3
MTkxOTAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkubW0gKi87IH07CkBAIC0xNjAxLDYgKzE2MDIsNyBAQAogCQkJCTU3RURG
QzYwMjQ1QTI5OUMwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1s
YS1uby1tb2NrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTcyQ0VGNzEyNDBGODc0
NzAwQzQxMkEyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc5ODMzOTIyMzY4RkEzNzAwOEU1NTQ3IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCisJCQkJNTc1MzdFRTgyNEJFQTA1RjAwNDhEQkE1IC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1waW4tZGlzY29ubmVjdC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTU3NjYzREVBMjM0RUE2NkQwMEU4NUUwOSAvKiB3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQk1Nzc0NTREMjIzNTlCQjAxMDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yMDc0LDYgKzIwNzYsNyBAQAogCQk1
NzQyMTc4RDI0MDBEMjZDMDAyQjMwM0QgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1sYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtbGEuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NEY1NUQwMjA0RDQ3
MUMwMDI5NDhDNiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFNlY3Vy
aXR5LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHku
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKIAkJNTc1MUIyODkyNDlENUI5OTAw
NjY0QzJBIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQt
cGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1m
YWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1NzUzN0VFNzI0QkVBMDE5MDA0OERCQTUgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25uZWN0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25uZWN0Lmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU4NTk3RDIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBp
blRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3RhcFBpblRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTc1ODU5N0UyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5UZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEN0YXBQaW5UZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTc1ODU5ODMyM0MzQzM2MjAwQzc0NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
IndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1l
cnJvci5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3NzQsNiArMzc3Nyw3
IEBACiAJCQkJNTdFREZDNUYyNDVBMjc5OTAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2suaHRtbCAqLywKIAkJCQk1NzJDRUY3MDI0MEY4NkFFMDBD
NDEyQTIgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEuaHRtbCAqLywKIAkJ
CQk1Nzk4MzM3QjIzNUVCNjVDMDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCAqLywKKwkJCQk1NzUzN0VFNzI0QkVBMDE5MDA0
OERCQTUgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25u
ZWN0Lmh0bWwgKi8sCiAJCQkJNTc2NjNERTkyMzRFQTYwQjAwRTg1RTA5IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sICovLAogCQkJCTU3NzQ1NEQxMjM1OUJBRDUw
MDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVu
dGlhbHMuaHRtbCAqLywKIAkJCQk1N0M2MjQ0RjIzNDZDMUVDMDAzODNGRTcgLyogd2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbQppbmRleCBkNzJjODg5ZjUwZTdmMGIwMGNlNzQ2ZmY1NzcxYjU4MDliZDNkY2Jj
Li5iODlkZWQ5ZDFhNjI1MDNlNTE0YjQ4NmZlNDVjMjAwYmE5NjVkNTVhIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0xMTU4LDYgKzExNTgsMjUgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkK
ICAgICBFWFBFQ1RfVFJVRSh3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlUElOSW52YWxpZCk7
CiB9CiAKKyNpZiBIQVZFKE5FQVJfRklFTEQpCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IE5mY1BpbkNhY2hlZERpc2Nvbm5lY3QpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25uZWN0IiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwor
CisgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFBpbiA9ICIxMjM0IjsKKyAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsK
KyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEiXTsKK30KKyNlbmRpZiAv
LyBIQVZFKE5FQVJfRklFTEQpCisKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTXVsdGlw
bGVBY2NvdW50c051bGxEZWxlZ2F0ZSkKIHsKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBp
bi1kaXNjb25uZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY1ZDA3YzkzZTFlNzIyZThjM2Q5ZjBjNWYy
NTUxOWM3MTc5ZDM5MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1k
aXNjb25uZWN0Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJp
bnB1dCI+Cis8c2NyaXB0PgorICAgIGNvbnN0IHRlc3ROZmNDdGFwVmVyc2lvbkJhc2U2NCA9ICJS
a2xFVDE4eVh6Q1FBQT09IjsKKyAgICBjb25zdCB0ZXN0R2V0SW5mb1Jlc3BvbnNlQXBkdUJhc2U2
NCA9CisgICAgICAgICJBS1lCZ21aVk1rWmZWakpvUmtsRVQxOHlYekFDZ1d0b2JXRmpMWE5sWTNK
bGRBTlFiVVM2bS9ic0xrbTVNQXlQIiArCisgICAgICAgICI2U0RMY3dTa1luSnI5V0oxY1BWa2NH
eGhkUFJwWTJ4cFpXNTBVR2x1OVFVWkJMQUdnUUdRQUE9PSI7CisgICAgY29uc3QgdGVzdEN0YXBQ
aW5BdXRoSW52YWxpZEVycm9yQmFzZTY0ID0gIk01QUEiOworICAgIGNvbnN0IHRlc3RQaW5HZXRS
ZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENKQUEiOworICAgIGNvbnN0IHRlc3RQaW5HZXRL
ZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJBS0VCcFFFQ0F6Z1lJQUVoV0NEb2RpV0pidVRr
YmNBeWRtNkFoNVl2TnQrZC9vdFdmemRqQVZzWmtLWU9GQ0pZSUNmZVlTMW1RWXZhR1ZCWUhyeGNq
QjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVJrQUE9IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UGluVG9r
ZW5SZXNwb25zZUJhc2U2NCA9ICJBS0VDVUJPazdyY095UnJxQUI2VEZ2WWVRZmVRQUE9PSI7Cisg
ICAgY29uc3QgdGVzdEFzc2VydGlvbk1lc3NhZ2VCYXNlNjQgPQorICAgICAgICAiQUtRQm9tSnBa
RkRtQWtNdDhnc2x0bnp5MTVacDlNYnBaSFI1Y0dWcWNIVmliR2xqTFd0bGVRSllKZVJUS2RBNiIg
KworICAgICAgICAiSUdqUnl2ZjN1d3JwVk9hdzVpV1hSZk12U0NuM1VQQlFFZm5DQlFBQUFHY0RX
RWN3UlFJZ0dHQm1MWlJmbVVmcyIgKworICAgICAgICAidUIzSDJ5QlpUblJoQmFjeDY4RStYV0Zn
RVEwb2F5VUNJUUNyRUJFZzd0OS8vbFZrSzY4bVNGTkdhQlVwUmhMSSIgKworICAgICAgICAiOFlm
RmIrODJQemY2U0FTaFltbGtUMkp2WWtCbGVHRnRjR3hsTG1OdmJaQUEiCisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlv
bkNvbmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBuZmM6IHsgcGF5bG9hZEJhc2U2
NDogW3Rlc3ROZmNDdGFwVmVyc2lvbkJhc2U2NCwgdGVzdEdldEluZm9SZXNwb25zZUFwZHVCYXNl
NjQsIHRlc3RDdGFwUGluQXV0aEludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBpbkdldFJldHJpZXNS
ZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldEtleUFncmVlbWVudFJlc3BvbnNlQmFzZTY0LCAiIiwg
dGVzdE5mY0N0YXBWZXJzaW9uQmFzZTY0LCB0ZXN0R2V0SW5mb1Jlc3BvbnNlQXBkdUJhc2U2NCwg
dGVzdEN0YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0LCB0ZXN0UGluR2V0UmV0cmllc1Jlc3Bv
bnNlQmFzZTY0LCB0ZXN0UGluR2V0S2V5QWdyZWVtZW50UmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5H
ZXRQaW5Ub2tlblJlc3BvbnNlQmFzZTY0LCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NF0gfSB9
KTsKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3Vz
KCk7IH0pOworICAgIH0KKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAg
ICAgICB0aW1lb3V0OiAxMDAKKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNv
bnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJy
b3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJy
b3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404364</attachid>
            <date>2020-07-15 11:31:37 -0700</date>
            <delta_ts>2020-07-17 14:50:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213900-20200715113136.patch</filename>
            <type>text/plain</type>
            <size>18693</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUzZjA0MmI0YTk5NDZlOTkw
NDVjMTZkZTc3NjQ1OGFlN2JkZjA3OGMuLjcyNTAzMzU5NmQ5ZTlhYzYxZjg3ZWIyYzNiNjU2MzAz
YzcyNjFkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDctMTUgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIENhY2hlIHRo
ZSBQSU4gdG8gaW1wcm92ZSBORkMgdXNlciBleHBlcmllbmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzYwMDczNjIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENhY2hlIHRoZSBQSU4gdG8gaW1wcm92ZSBORkMgdXNlciBleHBlcmllbmNlLiBVc2Vy
cyBtaWdodCBub3QgaG9sZCB0aGUgTkZDIGtleSBhZ2FpbnN0IHRoZSBORkMgc2Nhbm5lciBhbGwg
dGhlIHRpbWUKKyAgICAgICAgd2hpbGUgZW50ZXJpbmcgdGhlIFBJTi4gVGhlcmVmb3JlLCB3ZSBj
YWNoZSB0aGUgUElOIGZyb20gdGhlIHByZXZpb3VzIGNvbm5lY3Rpb24gYW5kIGltbWVkaWF0ZWx5
IHJldHVybiB0aGUgY2FjaGVkIFBJTiB0bworICAgICAgICB0aGUgY3VycmVudCBjb25uZWN0aW9u
IHN1Y2ggdGhhdCB1c2VycyBkb24ndCBuZWVkIHRvIGVudGVyIHRoZSBQSU4gYWdhaW4uCisKKyAg
ICAgICAgVGhlIG9ubHkgZG93bnNpZGUgZm9yIHRoaXMgb3B0aW1pemF0aW9uIGlzIHRoYXQgYSB3
cm9uZyBQSU4gY291bGQgYmUgdXNlZCBpZiB0aGUgdXNlciBzd2l0Y2ggdG8gYW5vdGhlciBhdXRo
ZW50aWNhdG9yIGZvcgorICAgICAgICB0aGUgbmV3IGNvbm5lY3Rpb24uIEdpdmVuIHRoZXJlIGlz
IG5vIFVVSUQgdG8gaWRlbnRpZnkgYSBwYXJ0aWN1bGFyIGF1dGhlbnRpY2F0b3IsIHRoZXJlIGlz
IG5vdGhpbmcgd2UgY2FuIGRvIHRvIHJlc29sdmUgdGhlCisgICAgICAgIGlzc3VlLiBUaGUgcHJv
YmFiaWxpdHkgb2YgdGhlIGlzc3VlLCBob3dldmVyLCBzaG91bGQgYmUgcmFyZS4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6cmVxdWVzdFBpbik6CisgICAgICAgIFdo
ZXJlIHRoZSBhYm92ZSBsb2dpYyBpcyBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOZmNDb25uZWN0aW9uOjp0cmFuc2FjdCBjb25zdCk6CisgICAgICAgIEFkZHMgYSBjb21t
ZW50LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0aW9uUmVxdWVzdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRpYWwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6Z2V0QXNzZXJ0
aW9uKToKKyAgICAgICAgQWRkcyBhIGZpZWxkIGZvciB0aGUgY2FjaGVkIFBJTi4KKwogMjAyMC0w
Ny0xMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU106IEEgSEVJRiBpbWFnZSwgc2VsZWN0ZWQgZnJvbSB0aGUgT3BlblBhbmVsLCBz
aG91bGQgYmUgY29udmVydGVkIHRvIGFuIGFjY2VwdGVkIE1JTUUgdHlwZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDY4MDQzN2IxZGEzMDlkZDdjYjY2MWQ0N2ExMzVj
MjgwZTA5YjA5NzIuLjc0NmE4MzFhN2ZjZWNiMzQwNDliNDZiY2RlZDFkNmZlYjM4MzFjZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTI2NCw2ICsyNjQsMTAgQEAg
dm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZG93bmdyYWRlKEF1dGhlbnRpY2F0b3IqIGlkLCBS
ZWY8QXV0aGVudGljYXRvcj4mJiBkb3cKIAogdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0
aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMgc3RhdHVzKQog
eworICAgIC8vIEltbWVkaWF0ZWx5IGludmFsaWRhdGUgdGhlIGNhY2hlIGlmIHRoZSBQSU4gaXMg
aW5jb3JyZWN0LiBBIHN0YXR1cyB1cGRhdGUgb2Z0ZW4gbWVhbnMKKyAgICAvLyBhbiBlcnJvci4g
V2UgZG9uJ3QgcmVhbGx5IGNhcmUgd2hhdCBraW5kIG9mIGVycm9yIGl0IHJlYWxseSBpcy4KKyAg
ICBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5jYWNoZWRQaW4gPSBTdHJpbmcoKTsKKwogICAgIGRpc3Bh
dGNoUGFuZWxDbGllbnRDYWxsKFtzdGF0dXNdIChjb25zdCBBUEk6OldlYkF1dGhlbnRpY2F0aW9u
UGFuZWwmIHBhbmVsKSB7CiAgICAgICAgIHBhbmVsLmNsaWVudCgpLnVwZGF0ZVBhbmVsKHN0YXR1
cyk7CiAgICAgfSk7CkBAIC0yNzEsOCArMjc1LDI5IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFn
ZXI6OmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIHN0
CiAKIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnJlcXVlc3RQaW4odWludDY0X3QgcmV0cmll
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIGRpc3BhdGNoUGFuZWxDbGllbnRDYWxsKFtyZXRyaWVzLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgQVBJOjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsJiBwYW5lbCkgbXV0YWJsZSB7Ci0gICAgICAgIHBhbmVsLmNs
aWVudCgpLnJlcXVlc3RQaW4ocmV0cmllcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIC8vIENhY2hlIHRoZSBQSU4gdG8gaW1wcm92ZSBORkMgdXNlciBleHBlcmllbmNlLiBVc2Vy
cyBtaWdodCBub3QgaG9sZCB0aGUgTkZDIGtleSBhZ2FpbnN0IHRoZSBORkMgc2Nhbm5lciBhbGwg
dGhlIHRpbWUKKyAgICAvLyB3aGlsZSBlbnRlcmluZyB0aGUgUElOLiBUaGVyZWZvcmUsIHdlIGNh
Y2hlIHRoZSBQSU4gZnJvbSB0aGUgcHJldmlvdXMgY29ubmVjdGlvbiBhbmQgaW1tZWRpYXRlbHkg
cmV0dXJuIHRoZSBjYWNoZWQgUElOIHRvCisgICAgLy8gdGhlIGN1cnJlbnQgY29ubmVjdGlvbiBz
dWNoIHRoYXQgdXNlcnMgZG9uJ3QgbmVlZCB0byBlbnRlciB0aGUgUElOIGFnYWluLgorICAgIC8v
IFdlIGRvbid0IGRpc3Rpbmd1aXNoIFVTQiBhbmQgTkZDIGhlcmUgYmVjdWFzZSB0aGVyZSBpcyBu
byBoYXJtcyB0byBoYXZlIHRoaXMgb3B0aW1pemF0aW9uIGZvciBVU0IgZXZlbiB0aG91Z2ggaXQg
aXMgdXNlbGVzcy4KKyAgICAvLyBUaGUgb25seSBkb3duc2lkZSBmb3IgdGhpcyBvcHRpbWl6YXRp
b24gaXMgdGhhdCBhIHdyb25nIFBJTiBjb3VsZCBiZSB1c2VkIGlmIHRoZSB1c2VyIHN3aXRjaCB0
byBhbm90aGVyIGF1dGhlbnRpY2F0b3IgZm9yCisgICAgLy8gdGhlIG5ldyBjb25uZWN0aW9uLiBH
aXZlbiB0aGVyZSBpcyBubyBVVUlEIHRvIGlkZW50aWZ5IGEgcGFydGljdWxhciBhdXRoZW50aWNh
dG9yLCB0aGVyZSBpcyBub3RoaW5nIHdlIGNhbiBkbyB0byByZXNvbHZlIHRoZQorICAgIC8vIGlz
c3VlLiBUaGUgcHJvYmFiaWxpdHkgb2YgdGhlIGlzc3VlLCBob3dldmVyLCBzaG91bGQgYmUgcmFy
ZS4KKyAgICBpZiAoIW1fcGVuZGluZ1JlcXVlc3REYXRhLmNhY2hlZFBpbi5pc051bGwoKSkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtX3BlbmRpbmdSZXF1ZXN0RGF0YS5jYWNoZWRQaW4p
OworICAgICAgICBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5jYWNoZWRQaW4gPSBTdHJpbmcoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIChjb25zdCBXVEY6OlN0cmluZyYgcGluKSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX3BlbmRp
bmdSZXF1ZXN0RGF0YS5jYWNoZWRQaW4gPSBwaW47CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHBpbik7CisgICAgfTsKKworICAgIGRpc3BhdGNoUGFuZWxDbGllbnRDYWxsKFtyZXRyaWVzLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoY29uc3QgQVBJOjpXZWJBdXRoZW50aWNhdGlv
blBhbmVsJiBwYW5lbCkgbXV0YWJsZSB7CisgICAgICAgIHBhbmVsLmNsaWVudCgpLnJlcXVlc3RQ
aW4ocmV0cmllcywgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25u
ZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTmZjQ29ubmVjdGlvbi5tbQppbmRleCBiY2FlYTQ2MGZiYTRhMzQyNTA4MDU3ZjI0NjlkMGYy
Njg5MTY4N2NjLi45MTA0ODUwNzk3NDExN2JmOWVmM2UzNmQxODQyZmVlMTk4NDk1Njc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9O
ZmNDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0KQEAgLTkxLDYgKzkxLDcgQEAgTmZjQ29ubmVj
dGlvbjo6fk5mY0Nvbm5lY3Rpb24oKQogVmVjdG9yPHVpbnQ4X3Q+IE5mY0Nvbm5lY3Rpb246OnRy
YW5zYWN0KFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpIGNvbnN0CiB7CiAgICAgVmVjdG9yPHVpbnQ4
X3Q+IHJlc3BvbnNlOworICAgIC8vIFRoZSBtZXRob2Qgd2lsbCByZXR1cm4gYW4gZW1wdHkgTlNE
YXRhIGlmIHRoZSB0YWcgaXMgZGlzY29ubmVjdGVkLgogICAgIGF1dG8gKnJlc3BvbnNlRGF0YSA9
IFttX3Nlc3Npb24gdHJhbnNjZWl2ZTphZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5
dGVzOmRhdGEuZGF0YSgpIGxlbmd0aDpkYXRhLnNpemUoKV0pLmdldCgpXTsKICAgICByZXNwb25z
ZS5hcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocmVzcG9uc2VEYXRhLmJ5
dGVzKSwgcmVzcG9uc2VEYXRhLmxlbmd0aCk7CiAgICAgcmV0dXJuIHJlc3BvbnNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCmluZGV4IDA0ZWRjNjc1NDIz
NmI3YmY1ZTIyMjU1ODg0MWM0OTEzNjg1ZDJiMDIuLjZlNDAyZmNkZjEyNWM2ZTIzNjFiZDI3ZGZi
NTgwMjJiZGMxNzI0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVl
c3REYXRhLmgKQEAgLTUxLDYgKzUxLDcgQEAgc3RydWN0IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVz
dERhdGEgewogICAgIFdURjo6T3B0aW9uYWw8V2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlEOwogICAgIFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm87CiAgICAgYm9v
bCBwcm9jZXNzaW5nVXNlckdlc3R1cmU7CisgICAgU3RyaW5nIGNhY2hlZFBpbjsgLy8gT25seSB1
c2VkIHRvIGltcHJvdmUgTkZDIENsaWVudCBQSU4gZXhwZXJpZW5jZS4KIH07CiAKIFdlYkNvcmU6
OkNsaWVudERhdGFUeXBlIGdldENsaWVudERhdGFUeXBlKGNvbnN0IFZhcmlhbnQ8V2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDdhZWNkMTg5NjY5ODNkNTFiZWZkODhi
ZjM5YzYwN2NlMzY1OTFkYzEuLmMyYmZjNDdmNmE3NzkwYWFlOGYzMDdkM2M1ODBkZjU5MGFiMmY5
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eS5jcHAKQEAgLTU3LDEyICs1NywxMiBAQCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eTo6fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5KCkKIAogdm9pZCBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRpYWwoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhh
c2gsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiBvcHRpb25zLCBib29sIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikK
IHsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwg
bWFrZVdlYWtQdHIobV93ZWJQYWdlUHJveHkpLCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0
OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdl
UHJveHkud2ViUGFnZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNz
aW5nVXNlckdlc3R1cmUgfSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgaGFuZGxlUmVxdWVzdCh7
IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1ha2VXZWFrUHRyKG1fd2ViUGFnZVBy
b3h5KSwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIs
IEdsb2JhbEZyYW1lSWRlbnRpZmllciB7IG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCBmcmFt
ZUlkIH0sIFdURk1vdmUoZnJhbWVJbmZvKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmco
KSB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlkLCBGcmFtZUlu
Zm9EYXRhJiYgZnJhbWVJbmZvLCBWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBQdWJsaWNLZXlDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBoYW5kbGVSZXF1
ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbWFrZVdlYWtQdHIobV93ZWJQ
YWdlUHJveHkpLCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVs
bHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlEKCks
IGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUgfSwg
V1RGTW92ZShoYW5kbGVyKSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdU
Rk1vdmUob3B0aW9ucyksIG1ha2VXZWFrUHRyKG1fd2ViUGFnZVByb3h5KSwgV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIEdsb2JhbEZyYW1lSWRlbnRp
ZmllciB7IG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCBmcmFtZUlkIH0sIFdURk1vdmUoZnJh
bWVJbmZvKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSB9LCBXVEZNb3ZlKGhhbmRs
ZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxl
UmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYgZGF0YSwgUmVxdWVzdENvbXBs
ZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA1NDcyODUwMjhjOTZhY2QzZDM2MTI2OGQ4YjFjMWMyY2I4N2Nl
Y2ZhLi4zMDBkNDE4NTM1ZmRlNGRhZTdjNWQyNmE2ZTE3YjM4MjZjODNhZDJjIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDctMTUgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAg
ICBbV2ViQXV0aG5dIENhY2hlIHRoZSBQSU4gdG8gaW1wcm92ZSBORkMgdXNlciBleHBlcmllbmNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMDczNjIyPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3Qu
aHRtbDogQWRkZWQuCisKIDIwMjAtMDctMTIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdOiBBIEhFSUYgaW1hZ2UsIHNlbGVjdGVk
IGZyb20gdGhlIE9wZW5QYW5lbCwgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byBhbiBhY2NlcHRlZCBN
SU1FIHR5cGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTY3MWQzMzZkMzZmZWExMmUyOGM3
YjZlNzRkNzU3MzM4NWNiMjc4My4uZmUxNjkxM2ZkYWFlYTdkNjVhNzZhYmU4MjVmM2IzMTVjNjAz
ZTM0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3Miw2ICszNzIsNyBAQAogCQk1NzQy
MTc4RTI0MDBEMkRGMDAyQjMwM0QgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1sYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3NDIxNzhEMjQwMEQyNkMwMDJCMzAzRCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWxhLmh0bWwgKi87IH07CiAJCTU3NEY1NUQyMjA0RDQ3RjAwMDI5NDhDNiAv
KiBTZWN1cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzRGNTVEMDIwNEQ0NzFDMDAyOTQ4QzYgLyogU2VjdXJpdHkuZnJhbWV3
b3JrICovOyB9OwogCQk1NzUxQjI4QTI0OUQ1QkM1MDA2NjRDMkEgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFrZS1waW4taW52YWxp
ZC1lcnJvci1yZXRyeS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3NTFCMjg5MjQ5RDVCOTkwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZh
bGlkLWVycm9yLXJldHJ5Lmh0bWwgKi87IH07CisJCTU3NTM3RUU4MjRCRUEwNUYwMDQ4REJBNSAv
KiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NzUzN0VFNzI0QkVBMDE5MDA0OERCQTUgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjLXBpbi1kaXNjb25uZWN0Lmh0bWwgKi87IH07CiAJCTU3NTg1OTdGMjNBMjUyN0EwMEM3
NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzU4NTk3RTIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3Bw
ICovOyB9OwogCQk1NzU4NTk4NDIzQzNDM0E0MDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1ODU5ODMyM0Mz
QzM2MjAwQzc0NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBp
bi1nZXQtcmV0cmllcy1lcnJvci5odG1sICovOyB9OwogCQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZC
OEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjAxRjA3
MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5tbSAqLzsgfTsKQEAgLTE2MDEsNiArMTYwMiw3IEBACiAJCQkJNTdFREZDNjAyNDVBMjk5
QzAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2su
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzJDRUY3MTI0MEY4NzQ3MDBDNDEyQTIg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk1Nzk4MzM5MjIzNjhGQTM3MDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQk1NzUzN0VFODI0QkVBMDVGMDA0OERCQTUgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25uZWN0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJNTc2NjNERUEyMzRFQTY2RDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLW5mYy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NzQ1NEQy
MjM1OUJCMDEwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYt
bm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1N0M2MjQ1MDIz
NDZDMjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKQEAgLTIwNzQsNiArMjA3Niw3IEBACiAJCTU3NDIxNzhEMjQw
MEQyNkMwMDJCMzAzRCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0RjU1RDAyMDRENDcxQzAwMjk0OEM2
IC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gU2VjdXJpdHkuZnJhbWV3
b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TZWN1cml0eS5mcmFtZXdvcms7
IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk1NzUxQjI4OTI0OUQ1Qjk5MDA2NjRDMkEgLyog
d2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4t
ZmFrZS1waW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWlu
dmFsaWQtZXJyb3ItcmV0cnkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
NTM3RUU3MjRCRUEwMTkwMDQ4REJBNSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1uZmMtcGluLWRpc2Nvbm5lY3QuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3NTg1OTdEMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDdGFwUGluVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzU4NTk3RTIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3RhcFBpblRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzU4NTk4MzIzQzNDMzYyMDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhl
bnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzc3NCw2ICszNzc3LDcgQEAKIAkJCQk1
N0VERkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbGEtbm8tbW9jay5odG1sICovLAogCQkJCTU3MkNFRjcwMjQwRjg2QUUwMEM0MTJBMiAvKiB3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS5odG1sICovLAogCQkJCTU3OTgzMzdC
MjM1RUI2NUMwMDhFNTU0NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMt
bXVsdGlwbGUtdGFncy5odG1sICovLAorCQkJCTU3NTM3RUU3MjRCRUEwMTkwMDQ4REJBNSAvKiB3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QuaHRtbCAq
LywKIAkJCQk1NzY2M0RFOTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbmZjLmh0bWwgKi8sCiAJCQkJNTc3NDU0RDEyMzU5QkFENTAwOEUxRUQ3IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1s
ICovLAogCQkJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
CmluZGV4IGQ3MmM4ODlmNTBlN2YwYjAwY2U3NDZmZjU3NzFiNTgwOWJkM2RjYmMuLmI4OWRlZDlk
MWE2MjUwM2U1MTRiNDg2ZmU0NWMyMDBiYTk2NWQ1NWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0KQEAgLTExNTgsNiArMTE1OCwyNSBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbkludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIEVYUEVD
VF9UUlVFKHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVQSU5JbnZhbGlkKTsKIH0KIAorI2lm
IEhBVkUoTkVBUl9GSUVMRCkKK1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTmZjUGluQ2Fj
aGVkRGlzY29ubmVjdCkKK3sKKyAgICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICB3ZWJB
dXRoZW50aWNhdGlvblBhbmVsUGluID0gIjEyMzQiOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJW
aWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2VlZGVkISJdOworfQorI2VuZGlmIC8vIEhBVkUoTkVB
Ul9GSUVMRCkKKwogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNdWx0aXBsZUFjY291bnRz
TnVsbERlbGVnYXRlKQogewogICAgIHJlc2V0KCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LW5mYy1waW4tZGlzY29ubmVjdC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5l
Y3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jY2EwZTZjZTFiYWM1OTFjZTg0ZWM2OGY2YTIwZGQ3MDg3MWI4
YWQxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3Qu
aHRtbApAQCAtMCwwICsxLDM0IEBACis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxz
Y3JpcHQ+CisgICAgY29uc3QgdGVzdE5mY0N0YXBWZXJzaW9uQmFzZTY0ID0gIlJrbEVUMTh5WHpD
UUFBPT0iOworICAgIGNvbnN0IHRlc3RHZXRJbmZvUmVzcG9uc2VBcGR1QmFzZTY0ID0KKyAgICAg
ICAgIkFLWUJnbVpWTWtaZlZqSm9Sa2xFVDE4eVh6QUNnV3RvYldGakxYTmxZM0psZEFOUWJVUzZt
L2JzTGttNU1BeVAiICsKKyAgICAgICAgIjZTRExjd1NrWW5KcjlXSjFjUFZrY0d4aGRQUnBZMnhw
Wlc1MFVHbHU5UVVaQkxBR2dRR1FBQT09IjsKKyAgICBjb25zdCB0ZXN0Q3RhcFBpbkF1dGhJbnZh
bGlkRXJyb3JCYXNlNjQgPSAiTTVBQSI7CisgICAgY29uc3QgdGVzdFBpbkdldFJldHJpZXNSZXNw
b25zZUJhc2U2NCA9ICJBS0VEQ0pBQSI7CisgICAgY29uc3QgdGVzdFBpbkdldEtleUFncmVlbWVu
dFJlc3BvbnNlQmFzZTY0ID0gIkFLRUJwUUVDQXpnWUlBRWhXQ0RvZGlXSmJ1VGtiY0F5ZG02QWg1
WXZOdCtkL290V2Z6ZGpBVnNaa0tZT0ZDSllJQ2ZlWVMxbVFZdmFHVkJZSHJ4Y2pCMnRjUXl4VENM
NHlYQkY5R0V2c2d5UmtBQT0iOworICAgIGNvbnN0IHRlc3RQaW5HZXRQaW5Ub2tlblJlc3BvbnNl
QmFzZTY0ID0gIkFLRUNVQk9rN3JjT3lScnFBQjZURnZZZVFmZVFBQT09IjsKKyAgICBjb25zdCB0
ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NCA9CisgICAgICAgICJBS1FCb21KcFpGRG1Ba010OGdz
bHRuenkxNVpwOU1icFpIUjVjR1ZxY0hWaWJHbGpMV3RsZVFKWUplUlRLZEE2IiArCisgICAgICAg
ICJJR2pSeXZmM3V3cnBWT2F3NWlXWFJmTXZTQ24zVVBCUUVmbkNCUUFBQUdjRFdFY3dSUUlnR0dC
bUxaUmZtVWZzIiArCisgICAgICAgICJ1QjNIMnlCWlRuUmhCYWN4NjhFK1hXRmdFUTBvYXlVQ0lR
Q3JFQkVnN3Q5Ly9sVmtLNjhtU0ZOR2FCVXBSaExJIiArCisgICAgICAgICI4WWZGYis4MlB6ZjZT
QVNoWW1sa1QySnZZa0JsZUdGdGNHeGxMbU52YlpBQSIKKyAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIG5mYzogeyBwYXlsb2FkQmFzZTY0OiBbdGVzdE5m
Y0N0YXBWZXJzaW9uQmFzZTY0LCB0ZXN0R2V0SW5mb1Jlc3BvbnNlQXBkdUJhc2U2NCwgdGVzdEN0
YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0LCB0ZXN0UGluR2V0UmV0cmllc1Jlc3BvbnNlQmFz
ZTY0LCB0ZXN0UGluR2V0S2V5QWdyZWVtZW50UmVzcG9uc2VCYXNlNjQsICIiLCB0ZXN0TmZjQ3Rh
cFZlcnNpb25CYXNlNjQsIHRlc3RHZXRJbmZvUmVzcG9uc2VBcGR1QmFzZTY0LCB0ZXN0Q3RhcFBp
bkF1dGhJbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQs
IHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldFBpblRva2Vu
UmVzcG9uc2VCYXNlNjQsIHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0XSB9IH0pOworICAgICAg
ICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQuZm9jdXMoKTsgfSk7Cisg
ICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAg
ICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgfQorICAgIH07
CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlh
bCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNj
ZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJv
ci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4K
</data>
<flag name="review"
          id="419751"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404603</attachid>
            <date>2020-07-17 15:16:10 -0700</date>
            <delta_ts>2020-07-17 15:58:55 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213900-20200717151609.patch</filename>
            <type>text/plain</type>
            <size>18195</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUzZjA0MmI0YTk5NDZlOTkw
NDVjMTZkZTc3NjQ1OGFlN2JkZjA3OGMuLmE5NWZjMDlkYmJiYjM5MWQzZmMyYmIzNmJhNWJhOTM4
NGVlNzU3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDctMTUgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIENhY2hlIHRo
ZSBQSU4gdG8gaW1wcm92ZSBORkMgdXNlciBleHBlcmllbmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzYwMDczNjIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAg
ICAgICAgQ2FjaGUgdGhlIFBJTiB0byBpbXByb3ZlIE5GQyB1c2VyIGV4cGVyaWVuY2UuIFVzZXJz
IG1pZ2h0IG5vdCBob2xkIHRoZSBORkMga2V5IGFnYWluc3QgdGhlIE5GQyBzY2FubmVyIGFsbCB0
aGUgdGltZQorICAgICAgICB3aGlsZSBlbnRlcmluZyB0aGUgUElOLiBUaGVyZWZvcmUsIHdlIGNh
Y2hlIHRoZSBQSU4gZnJvbSB0aGUgcHJldmlvdXMgY29ubmVjdGlvbiBhbmQgaW1tZWRpYXRlbHkg
cmV0dXJuIHRoZSBjYWNoZWQgUElOIHRvCisgICAgICAgIHRoZSBjdXJyZW50IGNvbm5lY3Rpb24g
c3VjaCB0aGF0IHVzZXJzIGRvbid0IG5lZWQgdG8gZW50ZXIgdGhlIFBJTiBhZ2Fpbi4KKworICAg
ICAgICBUaGUgb25seSBkb3duc2lkZSBmb3IgdGhpcyBvcHRpbWl6YXRpb24gaXMgdGhhdCBhIHdy
b25nIFBJTiBjb3VsZCBiZSB1c2VkIGlmIHRoZSB1c2VyIHN3aXRjaCB0byBhbm90aGVyIGF1dGhl
bnRpY2F0b3IgZm9yCisgICAgICAgIHRoZSBuZXcgY29ubmVjdGlvbi4gR2l2ZW4gdGhlcmUgaXMg
bm8gVVVJRCB0byBpZGVudGlmeSBhIHBhcnRpY3VsYXIgYXV0aGVudGljYXRvciwgdGhlcmUgaXMg
bm90aGluZyB3ZSBjYW4gZG8gdG8gcmVzb2x2ZSB0aGUKKyAgICAgICAgaXNzdWUuIFRoZSBwcm9i
YWJpbGl0eSBvZiB0aGUgaXNzdWUsIGhvd2V2ZXIsIHNob3VsZCBiZSByYXJlLgorCisgICAgICAg
IENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1
dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9yU3RhdHVzVXBkYXRlZCk6CisgICAgICAg
IChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXF1ZXN0UGluKToKKyAgICAgICAgV2hl
cmUgdGhlIGFib3ZlIGxvZ2ljIGlzIGltcGxlbWVudGVkLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJL
aXQ6Ok5mY0Nvbm5lY3Rpb246OnRyYW5zYWN0IGNvbnN0KToKKyAgICAgICAgQWRkcyBhIGNvbW1l
bnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRpb25SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjptYWtlQ3JlZGVudGlhbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRp
b24pOgorICAgICAgICBBZGRzIGEgZmllbGQgZm9yIHRoZSBjYWNoZWQgUElOLgorCiAyMDIwLTA3
LTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXTogQSBIRUlGIGltYWdlLCBzZWxlY3RlZCBmcm9tIHRoZSBPcGVuUGFuZWwsIHNo
b3VsZCBiZSBjb252ZXJ0ZWQgdG8gYW4gYWNjZXB0ZWQgTUlNRSB0eXBlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdG9yTWFuYWdlci5jcHAKaW5kZXggNjgwNDM3YjFkYTMwOWRkN2NiNjYxZDQ3YTEzNWMy
ODBlMDliMDk3Mi4uMmE5MzI0M2RhODE5MDRlOWVmMGYxNzlhNGVkNTQwZGZmODEzOTNlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApAQCAtMjY0LDYgKzI2NCwxMCBAQCB2
b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkb3duZ3JhZGUoQXV0aGVudGljYXRvciogaWQsIFJl
ZjxBdXRoZW50aWNhdG9yPiYmIGRvdwogCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRo
ZW50aWNhdG9yU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50aWNhdGlvblN0YXR1cyBzdGF0dXMpCiB7
CisgICAgLy8gSW1tZWRpYXRlbHkgaW52YWxpZGF0ZSB0aGUgY2FjaGUgaWYgdGhlIFBJTiBpcyBp
bmNvcnJlY3QuIEEgc3RhdHVzIHVwZGF0ZSBvZnRlbiBtZWFucworICAgIC8vIGFuIGVycm9yLiBX
ZSBkb24ndCByZWFsbHkgY2FyZSB3aGF0IGtpbmQgb2YgZXJyb3IgaXQgcmVhbGx5IGlzLgorICAg
IG1fcGVuZGluZ1JlcXVlc3REYXRhLmNhY2hlZFBpbiA9IFN0cmluZygpOworCiAgICAgZGlzcGF0
Y2hQYW5lbENsaWVudENhbGwoW3N0YXR1c10gKGNvbnN0IEFQSTo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbCYgcGFuZWwpIHsKICAgICAgICAgcGFuZWwuY2xpZW50KCkudXBkYXRlUGFuZWwoc3RhdHVz
KTsKICAgICB9KTsKQEAgLTI3MSw4ICsyNzUsMjUgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdl
cjo6YXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMgc3QK
IAogdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6cmVxdWVzdFBpbih1aW50NjRfdCByZXRyaWVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgZGlzcGF0Y2hQYW5lbENsaWVudENhbGwoW3JldHJpZXMsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBBUEk6Oldl
YkF1dGhlbnRpY2F0aW9uUGFuZWwmIHBhbmVsKSBtdXRhYmxlIHsKLSAgICAgICAgcGFuZWwuY2xp
ZW50KCkucmVxdWVzdFBpbihyZXRyaWVzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgLy8gQ2FjaGUgdGhlIFBJTiB0byBpbXByb3ZlIE5GQyB1c2VyIGV4cGVyaWVuY2Ugc28gdGhh
dCBhIG1vbWVudGFyeSBtb3ZlbWVudCBvZiB0aGUgTkZDIGtleSBhd2F5IGZyb20gdGhlIHNjYW5u
ZXIgZG9lc24ndAorICAgIC8vIGZvcmNlIHRoZSBQSU4gZW50cnkgdG8gYmUgcmUtZW50ZXJlZC4K
KyAgICAvLyBXZSBkb24ndCBkaXN0aW5ndWlzaCBVU0IgYW5kIE5GQyBoZXJlIGJlY3Vhc2UgdGhl
cmUgaXMgbm8gaGFybXMgdG8gaGF2ZSB0aGlzIG9wdGltaXphdGlvbiBmb3IgVVNCIGV2ZW4gdGhv
dWdoIGl0IGlzIHVzZWxlc3MuCisgICAgaWYgKCFtX3BlbmRpbmdSZXF1ZXN0RGF0YS5jYWNoZWRQ
aW4uaXNOdWxsKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobV9wZW5kaW5nUmVxdWVz
dERhdGEuY2FjaGVkUGluKTsKKyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdERhdGEuY2FjaGVkUGlu
ID0gU3RyaW5nKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNhbGxiYWNr
ID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgV1RGOjpTdHJpbmcmIHBpbikg
bXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdERhdGEuY2FjaGVkUGluID0gcGluOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihwaW4pOworICAgIH07CisKKyAgICBkaXNwYXRjaFBhbmVsQ2xpZW50
Q2FsbChbcmV0cmllcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGNvbnN0IEFQSTo6
V2ViQXV0aGVudGljYXRpb25QYW5lbCYgcGFuZWwpIG11dGFibGUgeworICAgICAgICBwYW5lbC5j
bGllbnQoKS5yZXF1ZXN0UGluKHJldHJpZXMsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICB9KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvTmZjQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0KaW5kZXggYmNhZWE0NjBmYmE0YTM0
MjUwODA1N2YyNDY5ZDBmMjY4OTE2ODdjYy4uOTEwNDg1MDc5NzQxMTdiZjllZjNlMzZkMTg0MmZl
ZTE5ODQ5NTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvTmZjQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1tCkBAIC05MSw2ICs5
MSw3IEBAIE5mY0Nvbm5lY3Rpb246On5OZmNDb25uZWN0aW9uKCkKIFZlY3Rvcjx1aW50OF90PiBO
ZmNDb25uZWN0aW9uOjp0cmFuc2FjdChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSBjb25zdAogewog
ICAgIFZlY3Rvcjx1aW50OF90PiByZXNwb25zZTsKKyAgICAvLyBUaGUgbWV0aG9kIHdpbGwgcmV0
dXJuIGFuIGVtcHR5IE5TRGF0YSBpZiB0aGUgdGFnIGlzIGRpc2Nvbm5lY3RlZC4KICAgICBhdXRv
ICpyZXNwb25zZURhdGEgPSBbbV9zZXNzaW9uIHRyYW5zY2VpdmU6YWRvcHROUyhbW05TRGF0YSBh
bGxvY10gaW5pdFdpdGhCeXRlczpkYXRhLmRhdGEoKSBsZW5ndGg6ZGF0YS5zaXplKCldKS5nZXQo
KV07CiAgICAgcmVzcG9uc2UuYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KHJlc3BvbnNlRGF0YS5ieXRlcyksIHJlc3BvbnNlRGF0YS5sZW5ndGgpOwogICAgIHJldHVybiBy
ZXNwb25zZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaApp
bmRleCAwNGVkYzY3NTQyMzZiN2JmNWUyMjI1NTg4NDFjNDkxMzY4NWQyYjAyLi42ZTQwMmZjZGYx
MjVjNmUyMzYxYmQyN2RmYjU4MDIyYmRjMTcyNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCkBAIC01MSw2ICs1MSw3IEBAIHN0cnVjdCBXZWJBdXRo
ZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6Okdsb2Jh
bEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJh
bWVJbmZvOwogICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlOworICAgIFN0cmluZyBjYWNo
ZWRQaW47IC8vIE9ubHkgdXNlZCB0byBpbXByb3ZlIE5GQyBDbGllbnQgUElOIGV4cGVyaWVuY2Uu
CiB9OwogCiBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShjb25zdCBW
YXJpYW50PFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFdlYkNv
cmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4mKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA3YWVjZDE4
OTY2OTgzZDUxYmVmZDg4YmYzOWM2MDdjZTM2NTkxZGMxLi5jMmJmYzQ3ZjZhNzc5MGFhZThmMzA3
ZDNjNTgwZGY1OTBhYjJmOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC01NywxMiArNTcsMTIgQEAgV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHk6On5XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eSgp
CiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Om1ha2VDcmVkZW50aWFs
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlkLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBWZWN0
b3I8dWludDhfdD4mJiBoYXNoLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYg
b3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFu
ZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdU
Rk1vdmUob3B0aW9ucyksIG1ha2VXZWFrUHRyKG1fd2ViUGFnZVByb3h5KSwgV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIEdsb2JhbEZyYW1lSWRlbnRp
ZmllciB7IG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCBmcmFtZUlkIH0sIFdURk1vdmUoZnJh
bWVJbmZvKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlIH0sIFdURk1vdmUoaGFuZGxlcikpOworICAg
IGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBtYWtlV2Vh
a1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZh
aWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBhZ2VQcm94eS53
ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSwgU3RyaW5nKCkgfSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmdldEFzc2VydGlvbihGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFz
aCwgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgYm9vbCBwcm9j
ZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7
Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1h
a2VXZWFrUHRyKG1fd2ViUGFnZVByb3h5KSwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6
VW5hdmFpbGFibGUsIG51bGxwdHIsIEdsb2JhbEZyYW1lSWRlbnRpZmllciB7IG1fd2ViUGFnZVBy
b3h5LndlYlBhZ2VJRCgpLCBmcmFtZUlkIH0sIFdURk1vdmUoZnJhbWVJbmZvKSwgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlIH0sIFdURk1vdmUoaGFuZGxlcikpOworICAgIGhhbmRsZVJlcXVlc3QoeyBX
VEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94
eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBH
bG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJ
ZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCkg
fSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmhhbmRsZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRh
dGEsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTQ3Mjg1MDI4Yzk2YWNkM2QzNjEy
NjhkOGIxYzFjMmNiODdjZWNmYS4uNTJlN2U0YWUzYzliOTE4ZGUxMWY5NWQyYWY3MWQyOTk4MWMw
OTU2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIwLTA3LTE1ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDYWNoZSB0aGUgUElOIHRvIGltcHJvdmUgTkZD
IHVzZXIgZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEzOTAwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDA3MzYyMj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMt
cGluLWRpc2Nvbm5lY3QuaHRtbDogQWRkZWQuCisKIDIwMjAtMDctMTIgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdOiBBIEhFSUYg
aW1hZ2UsIHNlbGVjdGVkIGZyb20gdGhlIE9wZW5QYW5lbCwgc2hvdWxkIGJlIGNvbnZlcnRlZCB0
byBhbiBhY2NlcHRlZCBNSU1FIHR5cGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTY3MWQz
MzZkMzZmZWExMmUyOGM3YjZlNzRkNzU3MzM4NWNiMjc4My4uZmUxNjkxM2ZkYWFlYTdkNjVhNzZh
YmU4MjVmM2IzMTVjNjAzZTM0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3Miw2ICsz
NzIsNyBAQAogCQk1NzQyMTc4RTI0MDBEMkRGMDAyQjMwM0QgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1sYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDIxNzhEMjQwMEQyNkMwMDJCMzAzRCAvKiB3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLmh0bWwgKi87IH07CiAJCTU3NEY1NUQyMjA0
RDQ3RjAwMDI5NDhDNiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzRGNTVEMDIwNEQ0NzFDMDAyOTQ4QzYgLyog
U2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OwogCQk1NzUxQjI4QTI0OUQ1QkM1MDA2NjRDMkEgLyog
d2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4t
ZmFrZS1waW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTFCMjg5MjQ5RDVCOTkwMDY2NEMyQSAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tl
bi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgKi87IH07CisJCTU3NTM3RUU4MjRC
RUEwNUYwMDQ4REJBNSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGlu
LWRpc2Nvbm5lY3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzUzN0VFNzI0QkVBMDE5MDA0OERCQTUgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25uZWN0Lmh0bWwgKi87IH07CiAJCTU3NTg1
OTdGMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU4NTk3RTIzQTI1MjdBMDBDNzQ1NzIgLyog
Q3RhcFBpblRlc3QuY3BwICovOyB9OwogCQk1NzU4NTk4NDIzQzNDM0E0MDBDNzQ1NzIgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9y
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc1ODU5ODMyM0MzQzM2MjAwQzc0NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sICovOyB9OwogCQk1NzU5OUUy
MTFGMDcxOTE5MDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLzsgfTsKQEAgLTE2MDEsNiArMTYwMiw3IEBACiAJCQkJ
NTdFREZDNjAyNDVBMjk5QzAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWxhLW5vLW1vY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzJDRUY3MTI0
MEY4NzQ3MDBDNDEyQTIgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzk4MzM5MjIzNjhGQTM3MDA4RTU1NDcgLyog
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzUzN0VFODI0QkVBMDVGMDA0OERCQTUgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25uZWN0Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc2NjNERUEyMzRFQTY2RDAwRTg1RTA5IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTU3NzQ1NEQyMjM1OUJCMDEwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1N0M2MjQ1MDIzNDZDMjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTIwNzQsNiArMjA3Niw3IEBA
CiAJCTU3NDIxNzhEMjQwMEQyNkMwMDJCMzAzRCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWxhLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3Jl
ZGVudGlhbC1sYS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0RjU1RDAy
MDRENDcxQzAwMjk0OEM2IC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
U2VjdXJpdHkuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TZWN1
cml0eS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk1NzUxQjI4OTI0OUQ1
Qjk5MDA2NjRDMkEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWdldC1waW4tdG9rZW4tZmFrZS1waW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRv
a2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3NTM3RUU3MjRCRUEwMTkwMDQ4REJBNSAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NTg1OTdEMjNBMjUyN0EwMEM3NDU3MiAvKiBD
dGFwUGluVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdGFwUGluVGVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzU4NTk3RTIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3RhcFBpblRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzU4NTk4MzIzQzNDMzYyMDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRy
aWVzLWVycm9yLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzc3NCw2ICsz
Nzc3LDcgQEAKIAkJCQk1N0VERkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sICovLAogCQkJCTU3MkNFRjcwMjQwRjg2
QUUwMEM0MTJBMiAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS5odG1sICov
LAogCQkJCTU3OTgzMzdCMjM1RUI2NUMwMDhFNTU0NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1uZmMtbXVsdGlwbGUtdGFncy5odG1sICovLAorCQkJCTU3NTM3RUU3MjRCRUEw
MTkwMDQ4REJBNSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRp
c2Nvbm5lY3QuaHRtbCAqLywKIAkJCQk1NzY2M0RFOTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgKi8sCiAJCQkJNTc3NDU0RDEyMzU5
QkFENTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1j
cmVkZW50aWFscy5odG1sICovLAogCQkJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tCmluZGV4IGQ3MmM4ODlmNTBlN2YwYjAwY2U3NDZmZjU3NzFiNTgwOWJk
M2RjYmMuLmI4OWRlZDlkMWE2MjUwM2U1MTRiNDg2ZmU0NWMyMDBiYTk2NWQ1NWEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTExNTgsNiArMTE1OCwyNSBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbkludmFsaWRFcnJvckFuZFJl
dHJ5KQogICAgIEVYUEVDVF9UUlVFKHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVQSU5JbnZh
bGlkKTsKIH0KIAorI2lmIEhBVkUoTkVBUl9GSUVMRCkKK1RFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgTmZjUGluQ2FjaGVkRGlzY29ubmVjdCkKK3sKKyAgICByZXNldCgpOworICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3Qi
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07CisKKyAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluID0gIjEyMzQiOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQo
KV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2VlZGVkISJdOworfQorI2Vu
ZGlmIC8vIEhBVkUoTkVBUl9GSUVMRCkKKwogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBN
dWx0aXBsZUFjY291bnRzTnVsbERlbGVnYXRlKQogewogICAgIHJlc2V0KCk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLW5mYy1waW4tZGlzY29ubmVjdC5odG1sIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1u
ZmMtcGluLWRpc2Nvbm5lY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2EwZTZjZTFiYWM1OTFjZTg0ZWM2
OGY2YTIwZGQ3MDg3MWI4YWQxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMt
cGluLWRpc2Nvbm5lY3QuaHRtbApAQCAtMCwwICsxLDM0IEBACis8aW5wdXQgdHlwZT0idGV4dCIg
aWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgY29uc3QgdGVzdE5mY0N0YXBWZXJzaW9uQmFzZTY0
ID0gIlJrbEVUMTh5WHpDUUFBPT0iOworICAgIGNvbnN0IHRlc3RHZXRJbmZvUmVzcG9uc2VBcGR1
QmFzZTY0ID0KKyAgICAgICAgIkFLWUJnbVpWTWtaZlZqSm9Sa2xFVDE4eVh6QUNnV3RvYldGakxY
TmxZM0psZEFOUWJVUzZtL2JzTGttNU1BeVAiICsKKyAgICAgICAgIjZTRExjd1NrWW5KcjlXSjFj
UFZrY0d4aGRQUnBZMnhwWlc1MFVHbHU5UVVaQkxBR2dRR1FBQT09IjsKKyAgICBjb25zdCB0ZXN0
Q3RhcFBpbkF1dGhJbnZhbGlkRXJyb3JCYXNlNjQgPSAiTTVBQSI7CisgICAgY29uc3QgdGVzdFBp
bkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCA9ICJBS0VEQ0pBQSI7CisgICAgY29uc3QgdGVzdFBp
bkdldEtleUFncmVlbWVudFJlc3BvbnNlQmFzZTY0ID0gIkFLRUJwUUVDQXpnWUlBRWhXQ0RvZGlX
SmJ1VGtiY0F5ZG02QWg1WXZOdCtkL290V2Z6ZGpBVnNaa0tZT0ZDSllJQ2ZlWVMxbVFZdmFHVkJZ
SHJ4Y2pCMnRjUXl4VENMNHlYQkY5R0V2c2d5UmtBQT0iOworICAgIGNvbnN0IHRlc3RQaW5HZXRQ
aW5Ub2tlblJlc3BvbnNlQmFzZTY0ID0gIkFLRUNVQk9rN3JjT3lScnFBQjZURnZZZVFmZVFBQT09
IjsKKyAgICBjb25zdCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NCA9CisgICAgICAgICJBS1FC
b21KcFpGRG1Ba010OGdzbHRuenkxNVpwOU1icFpIUjVjR1ZxY0hWaWJHbGpMV3RsZVFKWUplUlRL
ZEE2IiArCisgICAgICAgICJJR2pSeXZmM3V3cnBWT2F3NWlXWFJmTXZTQ24zVVBCUUVmbkNCUUFB
QUdjRFdFY3dSUUlnR0dCbUxaUmZtVWZzIiArCisgICAgICAgICJ1QjNIMnlCWlRuUmhCYWN4NjhF
K1hXRmdFUTBvYXlVQ0lRQ3JFQkVnN3Q5Ly9sVmtLNjhtU0ZOR2FCVXBSaExJIiArCisgICAgICAg
ICI4WWZGYis4MlB6ZjZTQVNoWW1sa1QySnZZa0JsZUdGdGNHeGxMbU52YlpBQSIKKyAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIG5mYzogeyBwYXlsb2Fk
QmFzZTY0OiBbdGVzdE5mY0N0YXBWZXJzaW9uQmFzZTY0LCB0ZXN0R2V0SW5mb1Jlc3BvbnNlQXBk
dUJhc2U2NCwgdGVzdEN0YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0LCB0ZXN0UGluR2V0UmV0
cmllc1Jlc3BvbnNlQmFzZTY0LCB0ZXN0UGluR2V0S2V5QWdyZWVtZW50UmVzcG9uc2VCYXNlNjQs
ICIiLCB0ZXN0TmZjQ3RhcFZlcnNpb25CYXNlNjQsIHRlc3RHZXRJbmZvUmVzcG9uc2VBcGR1QmFz
ZTY0LCB0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVz
UmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVz
dFBpbkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQsIHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0
XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQu
Zm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgcHVi
bGljS2V5OiB7CisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMp
LnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQh
Iik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBv
c3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBj
b25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7
Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>