<?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>228589</bug_id>
          
          <creation_ts>2021-07-29 09:38:52 -0700</creation_ts>
          <short_desc>[Catalina][GPUP] Some API tests fail after GPU Process features are enabled</short_desc>
          <delta_ts>2021-08-04 14:36:51 -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>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=228720</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=228759</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=228760</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1780404</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-07-29 09:38:52 -0700</bug_when>
    <thetext>https://ews-build.webkit.org/#/builders/3/builds/52604


    TestWebKitAPI.PreferredAudioBufferSize.AudioElement
        
        /Volumes/Data/worker/macOS-Catalina-Release-Build-EWS/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:67
        Expected equality of these values:
          expectedAudioBufferSize
            Which is: 4096
          preferredAudioBufferSize()
            Which is: 512
        

    TestWebKitAPI.PreferredAudioBufferSize.AudioWithWebAudio
        
        /Volumes/Data/worker/macOS-Catalina-Release-Build-EWS/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:67
        Expected equality of these values:
          expectedAudioBufferSize
            Which is: 128
          preferredAudioBufferSize()
            Which is: 512
        

    TestWebKitAPI.PreferredAudioBufferSize.VideoOnly
        
        /Volumes/Data/worker/macOS-Catalina-Release-Build-EWS/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:67
        Expected equality of these values:
          expectedAudioBufferSize
            Which is: 4096
          preferredAudioBufferSize()
            Which is: 512
        

    TestWebKitAPI.PreferredAudioBufferSize.VideoWithAudio
        
        /Volumes/Data/worker/macOS-Catalina-Release-Build-EWS/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:67
        Expected equality of these values:
          expectedAudioBufferSize
            Which is: 4096
          preferredAudioBufferSize()
            Which is: 512
        

    TestWebKitAPI.PreferredAudioBufferSize.VideoWithAudioAndWebAudio
        
        /Volumes/Data/worker/macOS-Catalina-Release-Build-EWS/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:67
        Expected equality of these values:
          expectedAudioBufferSize
            Which is: 128
          preferredAudioBufferSize()
            Which is: 512
        

    TestWebKitAPI.PreferredAudioBufferSize.WebAudio
        
        /Volumes/Data/worker/macOS-Catalina-Release-Build-EWS/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:67
        Expected equality of these values:
          expectedAudioBufferSize
            Which is: 128
          preferredAudioBufferSize()
            Which is: 512
        

    TestWebKitAPI.WebKit.AudioBufferSize
        
        /Volumes/Data/worker/macOS-Catalina-Release-Build-EWS/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/AudioBufferSize.mm:95
        Expected: (bufferSizeWithWebAudio) &lt; (bufferSizeCapturingAudio), actual: 512 vs 0
        

    TestWebKitAPI.WebKit2.CrashGPUProcessAfterApplyingConstraints
        
        /Volumes/Data/worker/macOS-Catalina-Release-Build-EWS/build/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:82
        Expected equality of these values:
          @&quot;PASS&quot;
            Which is: &quot;PASS&quot;
          [message body]
            Which is: &quot;FAIL checkConstraints, width is not 320 but 640&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780406</commentid>
    <comment_count>1</comment_count>
      <attachid>434529</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-07-29 09:45:12 -0700</bug_when>
    <thetext>Created attachment 434529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780444</commentid>
    <comment_count>2</comment_count>
      <attachid>434535</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-07-29 10:56:19 -0700</bug_when>
    <thetext>Created attachment 434535
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780500</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-29 12:05:00 -0700</bug_when>
    <thetext>Committed r280439 (240077@main): &lt;https://commits.webkit.org/240077@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434535.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780501</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-29 12:06:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/81283879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780504</commentid>
    <comment_count>5</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-07-29 12:12:34 -0700</bug_when>
    <thetext>The bug is not resolved yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781778</commentid>
    <comment_count>6</comment_count>
      <attachid>434869</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-03 15:59:25 -0700</bug_when>
    <thetext>Created attachment 434869
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781780</commentid>
    <comment_count>7</comment_count>
      <attachid>434870</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-03 16:16:41 -0700</bug_when>
    <thetext>Created attachment 434870
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781781</commentid>
    <comment_count>8</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-03 16:18:59 -0700</bug_when>
    <thetext>Bug 228759 and 228760 will track the fixes for the remaining test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781832</commentid>
    <comment_count>9</comment_count>
      <attachid>434887</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-03 23:23:47 -0700</bug_when>
    <thetext>Created attachment 434887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781918</commentid>
    <comment_count>10</comment_count>
      <attachid>434887</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-08-04 10:12:31 -0700</bug_when>
    <thetext>Comment on attachment 434887
Patch

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

r=me, with nits:

&gt; Source/WebCore/html/HTMLMediaElement.cpp:3813
&gt; -void HTMLMediaElement::hardwareMutedStateDidChange(AudioSession* session)
&gt; +void HTMLMediaElement::hardwareMutedStateDidChange(const AudioSession* session)

If we&apos;re changing the signature here, can we change this to be a `const AudioSession&amp;` rather than a pointer?

&gt; Source/WebCore/html/HTMLMediaElement.h:885
&gt; -    void hardwareMutedStateDidChange(AudioSession*) final;
&gt; +    void hardwareMutedStateDidChange(const AudioSession*) final;

Ditto.

&gt; Source/WebCore/platform/audio/mac/AudioSessionMac.mm:140
&gt; +void AudioSessionMac::handleSampleRateChange() const
&gt; +{
&gt; +    for (auto&amp; observer : m_configurationChangeObservers)
&gt; +        observer.sampleRateDidChange(this);
&gt; +}

I _think_ you want to use m_configurationChangeObservers.forEach() or for(... : copyToVector(m_configurationChangeObservers)). The default iterator will skip empty observers, but won&apos;t remove them.

&gt; Source/WebCore/platform/audio/mac/AudioSessionMac.mm:188
&gt; +    for (auto&amp; observer : m_configurationChangeObservers)
&gt; +        observer.bufferSizeDidChange(this);

Ditto.

&gt; Source/WebCore/platform/audio/mac/AudioSessionMac.mm:490
&gt; +    for (auto&amp; observer : m_configurationChangeObservers)
&gt; +        observer.hardwareMutedStateDidChange(this);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781987</commentid>
    <comment_count>11</comment_count>
      <attachid>434923</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 12:11:50 -0700</bug_when>
    <thetext>Created attachment 434923
Revise the patch based on Jer&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781989</commentid>
    <comment_count>12</comment_count>
      <attachid>434887</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 12:14:54 -0700</bug_when>
    <thetext>Comment on attachment 434887
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:3813
&gt;&gt; +void HTMLMediaElement::hardwareMutedStateDidChange(const AudioSession* session)
&gt; 
&gt; If we&apos;re changing the signature here, can we change this to be a `const AudioSession&amp;` rather than a pointer?

Yes! Done.

&gt;&gt; Source/WebCore/html/HTMLMediaElement.h:885
&gt;&gt; +    void hardwareMutedStateDidChange(const AudioSession*) final;
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebCore/platform/audio/mac/AudioSessionMac.mm:140
&gt;&gt; +}
&gt; 
&gt; I _think_ you want to use m_configurationChangeObservers.forEach() or for(... : copyToVector(m_configurationChangeObservers)). The default iterator will skip empty observers, but won&apos;t remove them.

Good point! Fixed.

&gt;&gt; Source/WebCore/platform/audio/mac/AudioSessionMac.mm:188
&gt;&gt; +        observer.bufferSizeDidChange(this);
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebCore/platform/audio/mac/AudioSessionMac.mm:490
&gt;&gt; +        observer.hardwareMutedStateDidChange(this);
&gt; 
&gt; Ditto.

Fixed.

&gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:194
&gt; +    for (auto&amp; proxy : m_proxies)

Need to use m_proxies.forEach() as well.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp:152
&gt; +    for (auto&amp; observer : m_configurationChangeObservers) {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782052</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-04 14:36:47 -0700</bug_when>
    <thetext>Committed r280664 (240270@main): &lt;https://commits.webkit.org/240270@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434923.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434529</attachid>
            <date>2021-07-29 09:45:12 -0700</date>
            <delta_ts>2021-07-29 10:56:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228589-20210729094512.patch</filename>
            <type>text/plain</type>
            <size>3850</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDI0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzkyZWZkNDAzNDExYjFlNzQzNTYxMDk5MTQxOTM0MDk2
YzJlOWE3OS4uNDQ5MjQyYzU4ZGY3ZDc2ODY3NTM0NzY5YzhmYzQxNzUwY2EyNDgxNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTA3LTI5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NhdGFsaW5hXVtHUFVQXSBTb21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNz
IGZlYXR1cmVzIGFyZSBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5t
bToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVy
U2l6ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLm1tOgor
ICAgICAgICAoVEVTVF9GKToKKwogMjAyMS0wNy0yOSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0
YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBbV1BFXVtHVEtdIC5hc2MgZmlsZSBleHRlbnNp
b24gaXMgYXBwZW5kZWQgdG8gZmlsZW5hbWUgb2YgdGV4dC9wbGFpbiBkb3dubG9hZHMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQppbmRleCA1
ZTUyNjAzMmFmYTE2YmI1NjZiOGZkMjMyZGFmOGQ0YmJjMzE3MmZkLi5mYTE1NmY3ZGJkZGYwY2Rj
ZGZmOTExOTVhZjVhMWIwMDA1ZTUzMzU3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCkBAIC02NDgsNyArNjQ4LDcgQEAgVEVTVChXZWJL
aXQyLCBDcmFzaEdQVVByb2Nlc3NXaGlsZUNhcHR1cmluZykKICAgICBFWFBFQ1RfRVEod2ViVmll
d1BJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiB9CiAKLVRFU1QoV2ViS2l0
MiwgQ3Jhc2hHUFVQcm9jZXNzQWZ0ZXJBcHBseWluZ0NvbnN0cmFpbnRzKQorVEVTVChXZWJLaXQy
LCBESVNBQkxFRF9DcmFzaEdQVVByb2Nlc3NBZnRlckFwcGx5aW5nQ29uc3RyYWludHMpCiB7CiAg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9BdWRpb0J1ZmZlclNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbQppbmRleCA1MzNkZTFlYzRkNmRhNDAwNWQ5OGE3OThj
ZTk3NmE1ZDllMDIzNDM5Li4wYWMxZDVlMGU3YTcxNGUwMmUyMDhjZmI0MGJkNWM2OWRmNWZhNjNi
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlv
QnVmZmVyU2l6ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0F1ZGlvQnVmZmVyU2l6ZS5tbQpAQCAtNTYsNyArNTYsNyBAQCBkb3VibGUgd2FpdEZvckJ1ZmZl
clNpemVDaGFuZ2UoV0tXZWJWaWV3KiB3ZWJWaWV3LCBkb3VibGUgb2xkU2l6ZSkKICAgICByZXR1
cm4gMDsKIH0KIAotVEVTVChXZWJLaXQsIEF1ZGlvQnVmZmVyU2l6ZSkKK1RFU1QoV2ViS2l0LCBE
SVNBQkxFRF9BdWRpb0J1ZmZlclNpemUpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIGNv
bnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVycmVkQXVkaW9C
dWZmZXJTaXplLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVm
ZXJyZWRBdWRpb0J1ZmZlclNpemUubW0KaW5kZXggZTVmYjBmYjcyMjAzNzBiN2RhMzE0MDJiNjQ1
ZDE2ZTlkMzcyYmM1ZS4uNWVmOGRhOGY1ZGVmMzJmZmI3YzE3NTJkMWVlMjhkZjBkMjYyNTNiYyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVmZXJy
ZWRBdWRpb0J1ZmZlclNpemUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9QcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUubW0KQEAgLTc5LDMyICs3OSwzMiBAQCBU
RVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLCBFbXB0eSkKICAgICBFWFBFQ1RfRVEoNTEy
LCBwcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUoKSk7CiB9CiAKLVRFU1RfRihQcmVmZXJyZWRBdWRp
b0J1ZmZlclNpemUsIEF1ZGlvRWxlbWVudCkKK1RFU1RfRihQcmVmZXJyZWRBdWRpb0J1ZmZlclNp
emUsIERJU0FCTEVEX0F1ZGlvRWxlbWVudCkKIHsKICAgICBydW5QbGF5aW5nVGVzdFdpdGhQYWdl
TmFtZWQoQCJhdWRpby1vbmx5IiwgNDA5Nik7CiB9CiAKLVRFU1RfRihQcmVmZXJyZWRBdWRpb0J1
ZmZlclNpemUsIFdlYkF1ZGlvKQorVEVTVF9GKFByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZSwgRElT
QUJMRURfV2ViQXVkaW8pCiB7CiAgICAgcnVuUGxheWluZ1Rlc3RXaXRoUGFnZU5hbWVkKEAid2Vi
LWF1ZGlvLW9ubHkiLCAxMjgpOwogfQogCi1URVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXpl
LCBWaWRlb09ubHkpCitURVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLCBESVNBQkxFRF9W
aWRlb09ubHkpCiB7CiAgICAgcnVuUGxheWluZ1Rlc3RXaXRoUGFnZU5hbWVkKEAidmlkZW8td2l0
aG91dC1hdWRpbyIsIDQwOTYpOwogfQogCi1URVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXpl
LCBWaWRlb1dpdGhBdWRpbykKK1RFU1RfRihQcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUsIERJU0FC
TEVEX1ZpZGVvV2l0aEF1ZGlvKQogewogICAgIHJ1blBsYXlpbmdUZXN0V2l0aFBhZ2VOYW1lZChA
InZpZGVvLXdpdGgtYXVkaW8iLCA0MDk2KTsKIH0KIAotVEVTVF9GKFByZWZlcnJlZEF1ZGlvQnVm
ZmVyU2l6ZSwgQXVkaW9XaXRoV2ViQXVkaW8pCitURVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJT
aXplLCBESVNBQkxFRF9BdWRpb1dpdGhXZWJBdWRpbykKIHsKICAgICBydW5QbGF5aW5nVGVzdFdp
dGhQYWdlTmFtZWQoQCJhdWRpby13aXRoLXdlYi1hdWRpbyIsIDEyOCk7CiB9CiAKLVRFU1RfRihQ
cmVmZXJyZWRBdWRpb0J1ZmZlclNpemUsIFZpZGVvV2l0aEF1ZGlvQW5kV2ViQXVkaW8pCitURVNU
X0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLCBESVNBQkxFRF9WaWRlb1dpdGhBdWRpb0FuZFdl
YkF1ZGlvKQogewogICAgIHJ1blBsYXlpbmdUZXN0V2l0aFBhZ2VOYW1lZChAInZpZGVvLXdpdGgt
YXVkaW8tYW5kLXdlYi1hdWRpbyIsIDEyOCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434535</attachid>
            <date>2021-07-29 10:56:19 -0700</date>
            <delta_ts>2021-08-03 23:23:42 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-228589-20210729105618.patch</filename>
            <type>text/plain</type>
            <size>5246</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDI0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzkyZWZkNDAzNDExYjFlNzQzNTYxMDk5MTQxOTM0MDk2
YzJlOWE3OS4uNzE0YTI0YjJkOTI4YzNmOTQ4NzhlMzM5YmI5YzcyNDVjMzZlMGE0ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDIxLTA3LTI5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NhdGFsaW5hXVtHUFVQXSBTb21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNz
IGZlYXR1cmVzIGFyZSBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBEaXNhYmxlIGEgZmV3IEFQSSB0ZXN0cyB3aGlsZSB0aGUgaW52ZXN0aWdh
dGlvbiBpcyBvbmdvaW5nLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQXVkaW9CdWZmZXJTaXplLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Ob3dQbGF5aW5nLm1tOgor
ICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1ByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZS5tbToKKyAgICAgICAgKFRFU1RfRik6CisKIDIw
MjEtMDctMjkgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAg
ICAgICAgW1dQRV1bR1RLXSAuYXNjIGZpbGUgZXh0ZW5zaW9uIGlzIGFwcGVuZGVkIHRvIGZpbGVu
YW1lIG9mIHRleHQvcGxhaW4gZG93bmxvYWRzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KaW5kZXggNWU1MjYwMzJhZmExNmJiNTY2YjhmZDIz
MmRhZjhkNGJiYzMxNzJmZC4uZmExNTZmN2RiZGRmMGNkY2RmZjkxMTk1YWY1YTFiMDAwNWU1MzM1
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1l
ZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YS5tbQpAQCAtNjQ4LDcgKzY0OCw3IEBAIFRFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzV2hp
bGVDYXB0dXJpbmcpCiAgICAgRVhQRUNUX0VRKHdlYlZpZXdQSUQsIFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl0pOwogfQogCi1URVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc0FmdGVy
QXBwbHlpbmdDb25zdHJhaW50cykKK1RFU1QoV2ViS2l0MiwgRElTQUJMRURfQ3Jhc2hHUFVQcm9j
ZXNzQWZ0ZXJBcHBseWluZ0NvbnN0cmFpbnRzKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0
byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUu
bW0KaW5kZXggNTMzZGUxZWM0ZDZkYTQwMDVkOThhNzk4Y2U5NzZhNWQ5ZTAyMzQzOS4uMGFjMWQ1
ZTBlN2E3MTRlMDJlMjA4Y2ZiNDBiZDVjNjlkZjVmYTYzYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW0KQEAg
LTU2LDcgKzU2LDcgQEAgZG91YmxlIHdhaXRGb3JCdWZmZXJTaXplQ2hhbmdlKFdLV2ViVmlldyog
d2ViVmlldywgZG91YmxlIG9sZFNpemUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLVRFU1QoV2ViS2l0
LCBBdWRpb0J1ZmZlclNpemUpCitURVNUKFdlYktpdCwgRElTQUJMRURfQXVkaW9CdWZmZXJTaXpl
KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5h
bHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL05vd1BsYXlpbmcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL05vd1BsYXlpbmcubW0KaW5kZXggZWE5MDQ5MmZjOWVmYjllYTk5MGEz
ODdkZjcwYjIxYTQ5NmJmNjMxZS4uOTExYTcyMmZhZGYzODU3YTE1OTM2ZTQyM2IzNDU3NWViMjY2
ZmZhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9O
b3dQbGF5aW5nLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Tm93UGxheWluZy5tbQpAQCAtMjAzLDcgKzIwMyw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxD
Rk5vdGlmaWNhdGlvbk5hbWUsIE5vdGlmaWNhdGlvbkNhbGxiYWNrPiBfY2FsbGJhY2tzOwogfTsK
IAotVEVTVF9GKE5vd1BsYXlpbmdUZXN0LCBBdWRpb0VsZW1lbnQpCitURVNUX0YoTm93UGxheWlu
Z1Rlc3QsIERJU0FCTEVEX0F1ZGlvRWxlbWVudCkKIHsKICAgICBleGVjdXRlQW5kV2FpdEZvcldl
YlZpZXdUb0JlY29tZU5vd1BsYXlpbmcoWyZdIHsKICAgICAgICAgZXhlY3V0ZUFuZFdhaXRGb3JQ
bGF5aW5nKFsmXSB7CkBAIC0yMTQsNyArMjE0LDcgQEAgVEVTVF9GKE5vd1BsYXlpbmdUZXN0LCBB
dWRpb0VsZW1lbnQpCiAgICAgfSk7CiB9CiAKLVRFU1RfRihOb3dQbGF5aW5nVGVzdCwgVmlkZW9F
bGVtZW50V2l0aEF1ZGlvKQorVEVTVF9GKE5vd1BsYXlpbmdUZXN0LCBESVNBQkxFRF9WaWRlb0Vs
ZW1lbnRXaXRoQXVkaW8pCiB7CiAgICAgZXhlY3V0ZUFuZFdhaXRGb3JXZWJWaWV3VG9CZWNvbWVO
b3dQbGF5aW5nKFsmXSB7CiAgICAgICAgIGV4ZWN1dGVBbmRXYWl0Rm9yUGxheWluZyhbJl0gewpA
QCAtMjQ2LDcgKzI0Niw3IEBAIFRFU1RfRihOb3dQbGF5aW5nVGVzdCwgVmlkZW9FbGVtZW50V2l0
aE11dGVkQXVkaW8pCiAgICAgQVNTRVJUX05FKHdlYlZpZXdQaWQoKSwgZ2V0Tm93UGxheWluZ0Ns
aWVudFBpZCgpKTsKIH0KIAotVEVTVF9GKE5vd1BsYXlpbmdUZXN0LCBWaWRlb0VsZW1lbnRXaXRo
TXV0ZWRBdWRpb1VubXV0ZWRXaXRoVXNlckdlc3R1cmUpCitURVNUX0YoTm93UGxheWluZ1Rlc3Qs
IERJU0FCTEVEX1ZpZGVvRWxlbWVudFdpdGhNdXRlZEF1ZGlvVW5tdXRlZFdpdGhVc2VyR2VzdHVy
ZSkKIHsKICAgICBleGVjdXRlQW5kV2FpdEZvclBsYXlpbmcoWyZdIHsKICAgICAgICAgbG9hZFBh
Z2UoIm5vdy1wbGF5aW5nIik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1ByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLm1tCmluZGV4
IGU1ZmIwZmI3MjIwMzcwYjdkYTMxNDAyYjY0NWQxNmU5ZDM3MmJjNWUuLjVlZjhkYThmNWRlZjMy
ZmZiN2MxNzUyZDFlZTI4ZGYwZDI2MjUzYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVycmVkQXVkaW9CdWZmZXJT
aXplLm1tCkBAIC03OSwzMiArNzksMzIgQEAgVEVTVF9GKFByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6
ZSwgRW1wdHkpCiAgICAgRVhQRUNUX0VRKDUxMiwgcHJlZmVycmVkQXVkaW9CdWZmZXJTaXplKCkp
OwogfQogCi1URVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLCBBdWRpb0VsZW1lbnQpCitU
RVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLCBESVNBQkxFRF9BdWRpb0VsZW1lbnQpCiB7
CiAgICAgcnVuUGxheWluZ1Rlc3RXaXRoUGFnZU5hbWVkKEAiYXVkaW8tb25seSIsIDQwOTYpOwog
fQogCi1URVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLCBXZWJBdWRpbykKK1RFU1RfRihQ
cmVmZXJyZWRBdWRpb0J1ZmZlclNpemUsIERJU0FCTEVEX1dlYkF1ZGlvKQogewogICAgIHJ1blBs
YXlpbmdUZXN0V2l0aFBhZ2VOYW1lZChAIndlYi1hdWRpby1vbmx5IiwgMTI4KTsKIH0KIAotVEVT
VF9GKFByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZSwgVmlkZW9Pbmx5KQorVEVTVF9GKFByZWZlcnJl
ZEF1ZGlvQnVmZmVyU2l6ZSwgRElTQUJMRURfVmlkZW9Pbmx5KQogewogICAgIHJ1blBsYXlpbmdU
ZXN0V2l0aFBhZ2VOYW1lZChAInZpZGVvLXdpdGhvdXQtYXVkaW8iLCA0MDk2KTsKIH0KIAotVEVT
VF9GKFByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZSwgVmlkZW9XaXRoQXVkaW8pCitURVNUX0YoUHJl
ZmVycmVkQXVkaW9CdWZmZXJTaXplLCBESVNBQkxFRF9WaWRlb1dpdGhBdWRpbykKIHsKICAgICBy
dW5QbGF5aW5nVGVzdFdpdGhQYWdlTmFtZWQoQCJ2aWRlby13aXRoLWF1ZGlvIiwgNDA5Nik7CiB9
CiAKLVRFU1RfRihQcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUsIEF1ZGlvV2l0aFdlYkF1ZGlvKQor
VEVTVF9GKFByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZSwgRElTQUJMRURfQXVkaW9XaXRoV2ViQXVk
aW8pCiB7CiAgICAgcnVuUGxheWluZ1Rlc3RXaXRoUGFnZU5hbWVkKEAiYXVkaW8td2l0aC13ZWIt
YXVkaW8iLCAxMjgpOwogfQogCi1URVNUX0YoUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLCBWaWRl
b1dpdGhBdWRpb0FuZFdlYkF1ZGlvKQorVEVTVF9GKFByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZSwg
RElTQUJMRURfVmlkZW9XaXRoQXVkaW9BbmRXZWJBdWRpbykKIHsKICAgICBydW5QbGF5aW5nVGVz
dFdpdGhQYWdlTmFtZWQoQCJ2aWRlby13aXRoLWF1ZGlvLWFuZC13ZWItYXVkaW8iLCAxMjgpOwog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434869</attachid>
            <date>2021-08-03 15:59:25 -0700</date>
            <delta_ts>2021-08-03 16:17:50 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-228589-20210803155924.patch</filename>
            <type>text/plain</type>
            <size>22727</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZkYzcxMzMxNTI5NjQ2
MWJjYjE4ZWRjOTQyNTBmZTU0ZTRkOTY1MC4uOTMzOTkwMjBiODFmZTE4OGUwM2I5MzQ1ZDdiNDNm
OTQyMDA1MDQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA4LTAzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQXSBT
b21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFibGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1ODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIEZpeCBhbiBBUEkgdGVzdCBmYWlsdXJlLgorCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmluaXRp
YWxpemVNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
fkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
aGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b25NYWM6OmhhbmRsZVNhbXBsZVJhdGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uTWFjOjpoYW5kbGVTYW1wbGVSYXRlQ2hhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlQnVmZmVyU2l6ZUNoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZUJ1ZmZlclNpemVDaGFuZ2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpzYW1wbGVSYXRlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbk1hYzo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZU11dGVkU3RhdGVDaGFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjphZGRDb25maWd1cmF0aW9u
Q2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpyZW1v
dmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uTWFjOjphZGRNdXRlZFN0YXRlT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVNdXRlZFN0YXRlT2JzZXJ2ZXIpOiBEZWxldGVk
LgorCiAyMDIxLTA4LTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFzc2VydGlvbiBpcyBub3QgYWNxdWlyZWQgaW4gbmV0d29yayBwcm9jZXNzIHdoZW4gb3Bl
bmluZyBhIFNRTGl0ZSBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMjUyZTQ1OWRjZjJhYTk2ZjA3NWQz
MDIyZTIyMTRmMzI2NzYzMmY2Li40YzQzNGQyN2Q2YzZkNDYwYzQxM2IzM2ZhMjg3NDEyZTNlZGIw
NDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA4LTAzICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQXSBTb21lIEFQSSB0
ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFibGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyOjp+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpoYXJkd2FyZU11dGVkU3RhdGVEaWRD
aGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6
OmJ1ZmZlclNpemVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXI6OnNhbXBsZVJhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uOjphZGRDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnJlbW92ZUNvbmZpZ3VyYXRpb25D
aGFuZ2VPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29u
ZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5nLmxp
dTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFBy
ZWZlcnJlZEJ1ZmZlclNpemUoKSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZlclNp
emUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDExOWRiNDA2
YjcxZjdlMzFkM2ViMjNlZDNlNGUyZTYxMmYzYzUzZDQuLjYxMWQwZjA3N2I5NTlhMzY2ZjZiNGZi
OWUzN2YyYmE1ODc1MzgxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aW5pdGlhbGl6
ZU1lZGlhU2Vzc2lvbigpCiAgICAgcmVnaXN0ZXJXaXRoRG9jdW1lbnQoZG9jdW1lbnQpOwogCiAj
aWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICBBdWRpb1Nlc3Npb246
OnNoYXJlZFNlc3Npb24oKS5hZGRNdXRlZFN0YXRlT2JzZXJ2ZXIodGhpcyk7CisgICAgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuYWRkQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKCp0
aGlzKTsKICNlbmRpZgogCiAgICAgbV9tZWRpYVNlc3Npb24tPmNsaWVudFdpbGxCZWdpbkF1dG9w
bGF5aW5nKCk7CkBAIC01MzAsNyArNTMwLDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRp
YUVsZW1lbnQoKQogICAgIHVucmVnaXN0ZXJXaXRoRG9jdW1lbnQoZG9jdW1lbnQoKSk7CiAKICNp
ZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKQotICAgIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnJlbW92ZU11dGVkU3RhdGVPYnNlcnZlcih0aGlzKTsKKyAgICBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5yZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXIoKnRoaXMpOwogI2VuZGlmCiAKICAgICBpZiAobV9hdWRpb1RyYWNrcykKQEAgLTM4MTAsNyAr
MzgxMCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIH0K
IAogI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShNQUMpCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShBdWRpb1Nlc3Npb24qIHNlc3Np
b24pCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShj
b25zdCBBdWRpb1Nlc3Npb24qIHNlc3Npb24pCiB7CiAgICAgaWYgKCFzZXNzaW9uLT5pc011dGVk
KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
aW5kZXggNzE5YzdhOGUwODIyYzcwMGU1Y2ExYmM5OThlYzMyMmNiYTkxNzVmNC4uYjlhM2U3ZDU4
NDE5YjMyMmFhYjcyMThmNzBmYWMwYzkxNmM1NTM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50
CiAgICAgLCBwcml2YXRlIFRleHRUcmFja0NsaWVudAogICAgICwgcHJpdmF0ZSBWaWRlb1RyYWNr
Q2xpZW50CiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICAsIHBy
aXZhdGUgQXVkaW9TZXNzaW9uOjpNdXRlZFN0YXRlT2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgQXVk
aW9TZXNzaW9uOjpDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIKICNlbmRpZgogI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCiAgICAgLCBwcml2YXRlIENETUNsaWVudApAQCAtODgyLDcgKzg4
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIG92ZXJy
aWRlOwogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lk
IGhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShBdWRpb1Nlc3Npb24qKSBmaW5hbDsKKyAgICB2
b2lkIGhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShjb25zdCBBdWRpb1Nlc3Npb24qKSBmaW5h
bDsKICNlbmRpZgogCiAgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAppbmRl
eCBlYWY3MGUyMDkzYTQ0YmM1MWQ5MmUwOGVmNDAwODU5Yjg4OWUxMGE5Li5lYzFiYWIwYTlmN2I2
ZmZlY2ZkZTk4NTRmMjRlOGQ4NGIyNTRkMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb1Nlc3Npb24uaApAQCAtOTEsMTUgKzkxLDE3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KTsKIAotICAgIGNsYXNzIE11dGVkU3Rh
dGVPYnNlcnZlciB7CisgICAgY2xhc3MgQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcj4gewogICAgIHB1
YmxpYzoKLSAgICAgICAgdmlydHVhbCB+TXV0ZWRTdGF0ZU9ic2VydmVyKCkgPSBkZWZhdWx0Owor
ICAgICAgICB2aXJ0dWFsIH5Db25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7
CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShBdWRp
b1Nlc3Npb24qKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBoYXJkd2FyZU11dGVkU3RhdGVE
aWRDaGFuZ2UoY29uc3QgQXVkaW9TZXNzaW9uKikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQg
YnVmZmVyU2l6ZURpZENoYW5nZShjb25zdCBBdWRpb1Nlc3Npb24qKSB7IH0KKyAgICAgICAgdmly
dHVhbCB2b2lkIHNhbXBsZVJhdGVEaWRDaGFuZ2UoY29uc3QgQXVkaW9TZXNzaW9uKikgeyB9CiAg
ICAgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0
ZU9ic2VydmVyKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZU11dGVkU3RhdGVPYnNlcnZl
cihNdXRlZFN0YXRlT2JzZXJ2ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uZmlndXJh
dGlvbkNoYW5nZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJh
dGlvbkNoYW5nZU9ic2VydmVyJikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9PdXRwdXRE
ZXZpY2VDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElzUGxheWluZ1RvQmx1ZXRvb3Ro
T3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxib29sPik7CkBAIC0xMzQsMTEgKzEzNiw2IEBAIHByb3Rl
Y3RlZDoKIAogICAgIHZpcnR1YWwgYm9vbCB0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wpOwog
Ci0gICAgSGFzaFNldDxNdXRlZFN0YXRlT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIFdlYWtIYXNoU2V0PEludGVycnVwdGlvbk9ic2VydmVyPiBt
X2ludGVycnVwdGlvbk9ic2VydmVyczsKLSNlbmRpZgotCiAgICAgV2Vha1B0cjxBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ+IG1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50Owog
ICAgIGJvb2wgbV9hY3RpdmUgeyBmYWxzZSB9OyAvLyBVc2VkIG9ubHkgZm9yIHRlc3RpbmcuCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Np
b25JT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25J
T1MuaAppbmRleCBkMzUxM2MyZjI1NDg1OGVhNzk5OWJmN2E4OThkNjEyY2JiYjA2NGI4Li5kNWEw
OWJkZTA3MDg0YTU2OTVkNGIxYTU1ZDVlNGEwZDk5YmI5M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5oCkBAIC02Niw2ICs2
Niw3IEBAIHByaXZhdGU6CiAKICAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVn
b3J5T3ZlcnJpZGUgeyBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OwogICAgIFJl
ZjxXVEY6OldvcmtRdWV1ZT4gbV93b3JrUXVldWU7CisgICAgV2Vha0hhc2hTZXQ8SW50ZXJydXB0
aW9uT2JzZXJ2ZXI+IG1faW50ZXJydXB0aW9uT2JzZXJ2ZXJzOwogICAgIFJldGFpblB0cjxXZWJJ
bnRlcnJ1cHRpb25PYnNlcnZlckhlbHBlcj4gbV9pbnRlcnJ1cHRpb25PYnNlcnZlckhlbHBlcjsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b1Nlc3Npb25NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nl
c3Npb25NYWMuaAppbmRleCAxYWQ4ZjYxN2FjMjIyYzQ0Mjk5ZmJiNWQ3MjA1NDYzMjM1YjIwZWY5
Li4wMmVjZDVhNDcyN2Q0NGE1MGY3MjdkMmY0YTE4ZjZhOTdkYzkxMWU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5oCkBAIC00
NCw3ICs0NCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRCdWZmZXJTaXplT2JzZXJ2ZXJJZk5l
ZWRlZCgpIGNvbnN0OwogCiAgICAgc3RhdGljIE9TU3RhdHVzIGhhbmRsZVNhbXBsZVJhdGVDaGFu
Z2UoQXVkaW9PYmplY3RJRCwgVUludDMyLCBjb25zdCBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVz
cyosIHZvaWQqIGluQ2xpZW50RGF0YSk7CisgICAgdm9pZCBoYW5kbGVTYW1wbGVSYXRlQ2hhbmdl
KCkgY29uc3Q7CiAgICAgc3RhdGljIE9TU3RhdHVzIGhhbmRsZUJ1ZmZlclNpemVDaGFuZ2UoQXVk
aW9PYmplY3RJRCwgVUludDMyLCBjb25zdCBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyosIHZv
aWQqIGluQ2xpZW50RGF0YSk7CisgICAgdm9pZCBoYW5kbGVCdWZmZXJTaXplQ2hhbmdlKCkgY29u
c3Q7CiAKICAgICAvLyBBdWRpb1Nlc3Npb24KICAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2NhdGVnb3J5OyB9CkBAIC02NCwxMCArNjYsMTEgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKICAg
ICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGhhbmRsZU11dGVkU3RhdGVD
aGFuZ2UoKSBmaW5hbDsKLSAgICB2b2lkIGFkZE11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRl
T2JzZXJ2ZXIqKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZU11dGVkU3RhdGVPYnNlcnZlcihNdXRl
ZFN0YXRlT2JzZXJ2ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGFkZENvbmZpZ3VyYXRpb25DaGFuZ2VP
YnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImKSBmaW5hbDsKKyAgICB2b2lkIHJl
bW92ZUNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXImKSBmaW5hbDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9sYXN0TXV0ZWRTdGF0ZTsK
KyAgICBXZWFrSGFzaFNldDxDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXI+IG1fY29uZmlndXJh
dGlvbkNoYW5nZU9ic2VydmVyczsKICAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2Nh
dGVnb3J5IHsgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsKICNpZiBFTkFCTEUo
Uk9VVElOR19BUkJJVFJBVElPTikKICAgICBib29sIG1fc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvU2Vzc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb1Nlc3Npb25NYWMubW0KaW5kZXggZTVlZWU5ODU0ZjFlNDUxMGJmODZiY2VjZTVhMjg1MzEx
OGFhN2M0Yi4uNWM3MDc2ODk5MTc5ZDkzOTU0MGEwMGI1ODI1MWY5ZjA3NjIwMDc3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFj
Lm1tCkBAIC0xMjUsOSArMTI1LDIwIEBAIE9TU3RhdHVzIEF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxl
U2FtcGxlUmF0ZUNoYW5nZShBdWRpb09iamVjdElEIGRldmljZSwgVUludDMyLCBjCiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAKICAgICBzZXNzaW9uLT5tX3NhbXBsZVJhdGUgPSBuYXJyb3dQcmVj
aXNpb25Ub0Zsb2F0KG5vbWluYWxTYW1wbGVSYXRlKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3Nlc3Npb25dIHsKKyAgICAgICAgc2Vzc2lvbi0+aGFuZGxlU2FtcGxlUmF0ZUNoYW5nZSgpOwor
ICAgIH0pOworCiAgICAgcmV0dXJuIG5vRXJyOwogfQogCit2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6
aGFuZGxlU2FtcGxlUmF0ZUNoYW5nZSgpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZl
ciA6IG1fY29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXIuc2Ft
cGxlUmF0ZURpZENoYW5nZSh0aGlzKTsKK30KKwogdm9pZCBBdWRpb1Nlc3Npb25NYWM6OmFkZEJ1
ZmZlclNpemVPYnNlcnZlcklmTmVlZGVkKCkgY29uc3QKIHsKICAgICBpZiAobV9oYXNCdWZmZXJT
aXplT2JzZXJ2ZXIpCkBAIC0xNjMsOSArMTc0LDIwIEBAIE9TU3RhdHVzIEF1ZGlvU2Vzc2lvbk1h
Yzo6aGFuZGxlQnVmZmVyU2l6ZUNoYW5nZShBdWRpb09iamVjdElEIGRldmljZSwgVUludDMyLCBj
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBzZXNzaW9uLT5tX2J1ZmZlclNpemUgPSBi
dWZmZXJTaXplOworCisgICAgY2FsbE9uTWFpblRocmVhZChbc2Vzc2lvbl0geworICAgICAgICBz
ZXNzaW9uLT5oYW5kbGVCdWZmZXJTaXplQ2hhbmdlKCk7CisgICAgfSk7CisKICAgICByZXR1cm4g
bm9FcnI7CiB9CiAKK3ZvaWQgQXVkaW9TZXNzaW9uTWFjOjpoYW5kbGVCdWZmZXJTaXplQ2hhbmdl
KCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9jb25maWd1cmF0aW9uQ2hh
bmdlT2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci5idWZmZXJTaXplRGlkQ2hhbmdlKHRoaXMp
OworfQorCiB2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkK
IHsKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKQEAgLTI3Miw2ICsyOTQsOCBAQCBm
bG9hdCBBdWRpb1Nlc3Npb25NYWM6OnNhbXBsZVJhdGUoKSBjb25zdAogICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWEsICJBdWRpb1Nlc3Npb25NYWM6OnNhbXBsZVJhdGUoKSAtIEF1
ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKCkgcmV0dXJuIGFuIGludmFsaWQgc2FtcGxlIHJhdGUi
KTsKICAgICAgICAgICAgIG1fc2FtcGxlUmF0ZSA9IDQ0MTAwOwogICAgICAgICB9CisKKyAgICAg
ICAgaGFuZGxlU2FtcGxlUmF0ZUNoYW5nZSgpOwogICAgIH0KICAgICByZXR1cm4gKm1fc2FtcGxl
UmF0ZTsKIH0KQEAgLTQwNiw4ICs0MzAsMTAgQEAgdm9pZCBBdWRpb1Nlc3Npb25NYWM6OnNldFBy
ZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90IGJ1ZmZlclNpemUpCiAKICAgICByZXN1bHQgPSBBdWRp
b09iamVjdFNldFByb3BlcnR5RGF0YShkZWZhdWx0RGV2aWNlKCksICZwcmVmZXJyZWRCdWZmZXJT
aXplQWRkcmVzcywgMCwgMCwgc2l6ZW9mKGJ1ZmZlclNpemVPdXQpLCAodm9pZCopJmJ1ZmZlclNp
emVPdXQpOwogCi0gICAgaWYgKCFyZXN1bHQpCisgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAg
bV9idWZmZXJTaXplID0gYnVmZmVyU2l6ZU91dDsKKyAgICAgICAgaGFuZGxlQnVmZmVyU2l6ZUNo
YW5nZSgpOworICAgIH0KIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBpZiAocmVzdWx0KQpAQCAt
NDU5LDE3ICs0ODUsMTYgQEAgdm9pZCBBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZU11dGVkU3RhdGVD
aGFuZ2UoKQogICAgIGlmIChtX2xhc3RNdXRlZFN0YXRlICYmICptX2xhc3RNdXRlZFN0YXRlID09
IGlzQ3VycmVudGx5TXV0ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0byogb2Jz
ZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXItPmhhcmR3YXJlTXV0ZWRTdGF0
ZURpZENoYW5nZSh0aGlzKTsKLQogICAgIG1fbGFzdE11dGVkU3RhdGUgPSBpc0N1cnJlbnRseU11
dGVkOworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNl
cnZlcnMpCisgICAgICAgIG9ic2VydmVyLmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZSh0aGlz
KTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb25NYWM6OmFkZE11dGVkU3RhdGVPYnNlcnZlcihNdXRl
ZFN0YXRlT2JzZXJ2ZXIqIG9ic2VydmVyKQordm9pZCBBdWRpb1Nlc3Npb25NYWM6OmFkZENvbmZp
Z3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImIG9ic2Vy
dmVyKQogewotICAgIG1fb2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7CisgICAgbV9jb25maWd1cmF0
aW9uQ2hhbmdlT2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7CiAKLSAgICBpZiAobV9vYnNlcnZlcnMu
c2l6ZSgpID4gMSkKKyAgICBpZiAobV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLmNvbXB1
dGVTaXplKCkgPiAxKQogICAgICAgICByZXR1cm47CiAKICAgICBBdWRpb09iamVjdFByb3BlcnR5
QWRkcmVzcyBtdXRlQWRkcmVzcyA9IHsKQEAgLTQ4Niw5ICs1MTEsOSBAQCB2b2lkIEF1ZGlvU2Vz
c2lvbk1hYzo6YWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciogb2JzZXJ2
ZXIpCiAgICAgQXVkaW9PYmplY3RBZGRQcm9wZXJ0eUxpc3RlbmVyKGRlZmF1bHREZXZpY2UoKSwg
Jm11dGVBZGRyZXNzLCBoYW5kbGVNdXRlUHJvcGVydHlDaGFuZ2UsIHRoaXMpOwogfQogCi12b2lk
IEF1ZGlvU2Vzc2lvbk1hYzo6cmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNl
cnZlciogb2JzZXJ2ZXIpCit2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6cmVtb3ZlQ29uZmlndXJhdGlv
bkNoYW5nZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7
Ci0gICAgaWYgKG1fb2JzZXJ2ZXJzLnNpemUoKSA9PSAxKSB7CisgICAgaWYgKG1fY29uZmlndXJh
dGlvbkNoYW5nZU9ic2VydmVycy5jb21wdXRlU2l6ZSgpID09IDEpIHsKICAgICAgICAgQXVkaW9P
YmplY3RQcm9wZXJ0eUFkZHJlc3MgbXV0ZUFkZHJlc3MgPSB7CiAgICAgICAgICAgICBrQXVkaW9E
ZXZpY2VQcm9wZXJ0eU11dGUsCiAgICAgICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3Bl
T3V0cHV0LApAQCAtNTAzLDcgKzUyOCw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVN
dXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICAgICAg
QXVkaW9PYmplY3RSZW1vdmVQcm9wZXJ0eUxpc3RlbmVyKGRlZmF1bHREZXZpY2UoKSwgJm11dGVB
ZGRyZXNzLCBoYW5kbGVNdXRlUHJvcGVydHlDaGFuZ2UsIHRoaXMpOwogICAgIH0KIAotICAgIG1f
b2JzZXJ2ZXJzLnJlbW92ZShvYnNlcnZlcik7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlT2Jz
ZXJ2ZXJzLnJlbW92ZShvYnNlcnZlcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCmluZGV4
IDJjMDk5MDQ1YTdmNGRmZDhjNGQ5YTEzMWM5OTA2ZDExYjg4YTdkNDguLjg3M2I5YTFkZGZmZDlj
OTFlN2U4NmZkYzk0NWI0MDFjYWU5N2UxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApAQCAtOTMs
NiArOTMsMTEgQEAgdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUo
Ym9vbCBhY3RpdmUsIFNldEFjdGl2ZUNvbXBsZXRpb24mJgogICAgIGNvbXBsZXRpb24obV9hY3Rp
dmUpOwogfQogCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1cmF0aW9uQ2hh
bmdlZCgpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vz
c2lvbjo6Q29uZmlndXJhdGlvbkNoYW5nZWQoY29uZmlndXJhdGlvbigpKSwgeyB9KTsKK30KKwog
dm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24oKQogewogICAg
IGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkJlZ2luSW50
ZXJydXB0aW9uKCksIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oCmluZGV4IDMwZWIxMTk1NDZhMTE2YTAy
YTdhM2FmZjg2Y2VjY2MxODdhZDEyM2UuLjhjMWRjZTIxMDYwNGY0MDgxZjU3NGZmZmFjMDVhYjhl
MjU0Y2I5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAg
ICBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVk
QnVmZmVyU2l6ZTsgfQogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2
ZTsgfQogCisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogICAgIHZvaWQgYmVnaW5J
bnRlcnJ1cHRpb24oKTsKICAgICB2b2lkIGVuZEludGVycnVwdGlvbihXZWJDb3JlOjpBdWRpb1Nl
c3Npb246Ok1heVJlc3VtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKaW5k
ZXggYTI4YjYwYmYyMTRlM2JhN2I0NmQ2MjUyZGIxNzA2MWQzNzQxMmQ4MS4uMDNiNmZmZTdiOGE1
OTUyMDMxMDQ5OTBjZDhkZTc2YmVmYTg2ZWJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5jcHAKQEAgLTQ3LDExICs0NywxMyBAQCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXI6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpCiAgICAgOiBtX3Nlc3Npb24oQXVk
aW9TZXNzaW9uOjpjcmVhdGUoKSkKIHsKICAgICBtX3Nlc3Npb24tPmFkZEludGVycnVwdGlvbk9i
c2VydmVyKCp0aGlzKTsKKyAgICBtX3Nlc3Npb24tPmFkZENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNl
cnZlcigqdGhpcyk7CiB9CiAKIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6flJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpCiB7CiAgICAgbV9zZXNzaW9uLT5yZW1vdmVJbnRl
cnJ1cHRpb25PYnNlcnZlcigqdGhpcyk7CisgICAgbV9zZXNzaW9uLT5yZW1vdmVDb25maWd1cmF0
aW9uQ2hhbmdlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjo6YWRkUHJveHkoUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkmIHByb3h5KQpAQCAt
MTg3LDYgKzE4OSwyNCBAQCB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6ZW5k
QXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKEF1ZGlvU2Vzc2lvbjo6TQogICAgIH0KIH0KIAordm9p
ZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENo
YW5nZShjb25zdCBBdWRpb1Nlc3Npb24qKQoreworICAgIGZvciAoYXV0byYgcHJveHkgOiBtX3By
b3hpZXMpCisgICAgICAgIHByb3h5LmNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpidWZmZXJTaXplRGlkQ2hhbmdlKGNvbnN0
IEF1ZGlvU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBmb3IgKGF1dG8mIHByb3h5IDogbV9wcm94
aWVzKQorICAgICAgICBwcm94eS5jb25maWd1cmF0aW9uQ2hhbmdlZCgpOworfQorCit2b2lkIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2FtcGxlUmF0ZURpZENoYW5nZShjb25zdCBB
dWRpb1Nlc3Npb24qIHNlc3Npb24pCit7CisgICAgZm9yIChhdXRvJiBwcm94eSA6IG1fcHJveGll
cykKKyAgICAgICAgcHJveHkuY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKK30KKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaAppbmRleCAyN2YxZDE3YjYzYWNlN2RmZTQ4
ZmYxODIyOTRmMThkZTYyMmVhNGFmLi4xZjU5YjhhMWEzNTNiZjU2MTdiNzQ0YmE5NTRhMzg4MWQz
YTVmMDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0zNyw3ICszNyw4IEBA
IGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsKIAogY2xh
c3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyCi0gICAgOiBwdWJsaWMgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpJbnRlcnJ1cHRpb25PYnNlcnZlciB7CisgICAgOiBwcml2YXRlIFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbjo6SW50ZXJydXB0aW9uT2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcigpOwpAQCAtNTgsNiArNTksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGJlZ2lu
QXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBlbmRBdWRpb1Nlc3Np
b25JbnRlcnJ1cHRpb24oV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpNYXlSZXN1bWUpIGZpbmFsOwog
CisgICAgdm9pZCBoYXJkd2FyZU11dGVkU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uKikgZmluYWw7CisgICAgdm9pZCBidWZmZXJTaXplRGlkQ2hhbmdlKGNvbnN0IFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbiopIGZpbmFsOworICAgIHZvaWQgc2FtcGxlUmF0ZURpZENoYW5n
ZShjb25zdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb24qKSBmaW5hbDsKKwogICAgIFVuaXF1ZVJlZjxX
ZWJDb3JlOjpBdWRpb1Nlc3Npb24+IG1fc2Vzc2lvbjsKICAgICBXZWFrSGFzaFNldDxSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eT4gbV9wcm94aWVzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAppbmRleCA1
YjNjN2MxNWJmY2ExNDZlZTk2YjM4NTcxMjM3OTVjMzI1OTk0YjY1Li4xMzM5NmNiYzVlNmU4MWFm
Nzg5NzI0NzE3YTU3ZjNkNTQzZGFjY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0xMjIsNiAr
MTIyLDE2IEBAIGJvb2wgUmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFs
KGJvb2wgYWN0aXZlKQogICAgIHJldHVybiBzdWNjZWVkZWQ7CiB9CiAKK3ZvaWQgUmVtb3RlQXVk
aW9TZXNzaW9uOjphZGRDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNo
YW5nZU9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNl
cnZlcnMuYWRkKG9ic2VydmVyKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnJlbW92
ZUNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIm
IG9ic2VydmVyKQoreworICAgIG1fY29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVycy5yZW1vdmUo
b2JzZXJ2ZXIpOworfQorCiBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBSZW1vdGVBdWRpb1Nl
c3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTEzMSw2
ICsxNDEsMjYgQEAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgUmVtb3RlQXVkaW9TZXNzaW9u
OjpjYXRlZ29yeSgpIGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246
OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQoreworICAgIGJvb2wgbXV0ZWRTdGF0ZUNoYW5nZWQgPSAhbV9jb25maWd1
cmF0aW9uIHx8IGNvbmZpZ3VyYXRpb24uaXNNdXRlZCAhPSAoKm1fY29uZmlndXJhdGlvbikuaXNN
dXRlZDsKKyAgICBib29sIGJ1ZmZlclNpemVDaGFuZ2VkID0gIW1fY29uZmlndXJhdGlvbiB8fCBj
b25maWd1cmF0aW9uLmJ1ZmZlclNpemUgIT0gKCptX2NvbmZpZ3VyYXRpb24pLmJ1ZmZlclNpemU7
CisgICAgYm9vbCBzYW1wbGVSYXRlQ2FobmdlZCA9ICFtX2NvbmZpZ3VyYXRpb24gfHwgY29uZmln
dXJhdGlvbi5zYW1wbGVSYXRlICE9ICgqbV9jb25maWd1cmF0aW9uKS5zYW1wbGVSYXRlOworCisg
ICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKworICAgIGZvciAo
YXV0byYgb2JzZXJ2ZXIgOiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnMpIHsKKyAgICAg
ICAgaWYgKG11dGVkU3RhdGVDaGFuZ2VkKQorICAgICAgICAgICAgb2JzZXJ2ZXIuaGFyZHdhcmVN
dXRlZFN0YXRlRGlkQ2hhbmdlKHRoaXMpOworCisgICAgICAgIGlmIChidWZmZXJTaXplQ2hhbmdl
ZCkKKyAgICAgICAgICAgIG9ic2VydmVyLmJ1ZmZlclNpemVEaWRDaGFuZ2UodGhpcyk7CisKKyAg
ICAgICAgaWYgKHNhbXBsZVJhdGVDYWhuZ2VkKQorICAgICAgICAgICAgb2JzZXJ2ZXIuc2FtcGxl
UmF0ZURpZENoYW5nZSh0aGlzKTsKKyAgICB9Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
aAppbmRleCA5ZTZiY2ViMDZiZTkwNDNiZTZlNmM2OGFmMDYyYzBhMzExNTU3OTAwLi4yMDM2MThm
Y2Y0YThkZWVjM2ViYjU3NWFlYTI0OTBkNDZlMTc5NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKQEAgLTY4
LDYgKzY4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwg
V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIHNldFByZWZlcnJl
ZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKICAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJu
YWwoYm9vbCkgZmluYWw7CisgICAgdm9pZCBhZGRDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIo
Q29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVDb25maWd1cmF0
aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJik7CiAKICAgICBj
b25zdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCkgY29u
c3Q7CiAgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigp
OwpAQCAtODYsNiArODgsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNz
OwogCisgICAgV2Vha0hhc2hTZXQ8Q29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyPiBtX2NvbmZp
Z3VyYXRpb25DaGFuZ2VPYnNlcnZlcnM7CiAgICAgQ2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnkgeyBD
YXRlZ29yeVR5cGU6Ok5vbmUgfTsKICAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9y
b3V0ZVNoYXJpbmdQb2xpY3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQg
fTsKICAgICBzdGQ6Om9wdGlvbmFsPFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24+IG1f
Y29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KaW5kZXggYjRi
ZWQxNjM5NTViMTFmNDljZTM4OWViMTZkODI1MzIwM2ZhMmE4Yy4uOWYwOGNlM2YzMGY5ZDIwMzFl
MDYyNGU1M2JjZjgxYzI0ZjM2NzlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMu
aW4KQEAgLTI2LDYgKzI2LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJ
T19TRVNTSU9OKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb24gTm90UmVmQ291bnRl
ZCB7CisgICAgQ29uZmlndXJhdGlvbkNoYW5nZWQoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIEJlZ2luSW50ZXJydXB0aW9u
KCkKICAgICBFbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpNYXlSZXN1bWUg
ZmxhZ3MpCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMDM2NzBjYmFiZWJhY2Y4MzI2NjUxZjg3MjhkNTdjZjlhMWEyNzk3ZS4uYjE2MDQ2ZDBj
ZjkyOGVlZDA3N2M4NWYzZWJlZDVlYzQ1YWM5MjQ2NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA4LTAzICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQ
XSBTb21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFi
bGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1
ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDgtMDIgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKCkgZG9lcyBub3QgY2hhbmdlIGl0cyBwcmVmZXJyZWRCdWZmZXJT
aXplCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1
ZGlvQnVmZmVyU2l6ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
QXVkaW9CdWZmZXJTaXplLm1tCmluZGV4IDBhYzFkNWUwZTdhNzE0ZTAyZTIwOGNmYjQwYmQ1YzY5
ZGY1ZmE2M2IuLjUzM2RlMWVjNGQ2ZGE0MDA1ZDk4YTc5OGNlOTc2YTVkOWUwMjM0MzkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJT
aXplLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9C
dWZmZXJTaXplLm1tCkBAIC01Niw3ICs1Niw3IEBAIGRvdWJsZSB3YWl0Rm9yQnVmZmVyU2l6ZUNo
YW5nZShXS1dlYlZpZXcqIHdlYlZpZXcsIGRvdWJsZSBvbGRTaXplKQogICAgIHJldHVybiAwOwog
fQogCi1URVNUKFdlYktpdCwgRElTQUJMRURfQXVkaW9CdWZmZXJTaXplKQorVEVTVChXZWJLaXQs
IEF1ZGlvQnVmZmVyU2l6ZSkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVu
ZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434870</attachid>
            <date>2021-08-03 16:16:41 -0700</date>
            <delta_ts>2021-08-03 23:23:45 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-228589-20210803161640.patch</filename>
            <type>text/plain</type>
            <size>23453</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZkYzcxMzMxNTI5NjQ2
MWJjYjE4ZWRjOTQyNTBmZTU0ZTRkOTY1MC4uOTMzOTkwMjBiODFmZTE4OGUwM2I5MzQ1ZDdiNDNm
OTQyMDA1MDQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA4LTAzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQXSBT
b21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFibGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1ODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIEZpeCBhbiBBUEkgdGVzdCBmYWlsdXJlLgorCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmluaXRp
YWxpemVNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
fkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
aGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b25NYWM6OmhhbmRsZVNhbXBsZVJhdGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uTWFjOjpoYW5kbGVTYW1wbGVSYXRlQ2hhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlQnVmZmVyU2l6ZUNoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZUJ1ZmZlclNpemVDaGFuZ2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpzYW1wbGVSYXRlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbk1hYzo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZU11dGVkU3RhdGVDaGFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjphZGRDb25maWd1cmF0aW9u
Q2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpyZW1v
dmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uTWFjOjphZGRNdXRlZFN0YXRlT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVNdXRlZFN0YXRlT2JzZXJ2ZXIpOiBEZWxldGVk
LgorCiAyMDIxLTA4LTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFzc2VydGlvbiBpcyBub3QgYWNxdWlyZWQgaW4gbmV0d29yayBwcm9jZXNzIHdoZW4gb3Bl
bmluZyBhIFNRTGl0ZSBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMjUyZTQ1OWRjZjJhYTk2ZjA3NWQz
MDIyZTIyMTRmMzI2NzYzMmY2Li40YzQzNGQyN2Q2YzZkNDYwYzQxM2IzM2ZhMjg3NDEyZTNlZGIw
NDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA4LTAzICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQXSBTb21lIEFQSSB0
ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFibGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyOjp+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpoYXJkd2FyZU11dGVkU3RhdGVEaWRD
aGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6
OmJ1ZmZlclNpemVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXI6OnNhbXBsZVJhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uOjphZGRDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnJlbW92ZUNvbmZpZ3VyYXRpb25D
aGFuZ2VPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29u
ZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5nLmxp
dTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFBy
ZWZlcnJlZEJ1ZmZlclNpemUoKSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZlclNp
emUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDExOWRiNDA2
YjcxZjdlMzFkM2ViMjNlZDNlNGUyZTYxMmYzYzUzZDQuLjYxMWQwZjA3N2I5NTlhMzY2ZjZiNGZi
OWUzN2YyYmE1ODc1MzgxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aW5pdGlhbGl6
ZU1lZGlhU2Vzc2lvbigpCiAgICAgcmVnaXN0ZXJXaXRoRG9jdW1lbnQoZG9jdW1lbnQpOwogCiAj
aWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICBBdWRpb1Nlc3Npb246
OnNoYXJlZFNlc3Npb24oKS5hZGRNdXRlZFN0YXRlT2JzZXJ2ZXIodGhpcyk7CisgICAgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuYWRkQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKCp0
aGlzKTsKICNlbmRpZgogCiAgICAgbV9tZWRpYVNlc3Npb24tPmNsaWVudFdpbGxCZWdpbkF1dG9w
bGF5aW5nKCk7CkBAIC01MzAsNyArNTMwLDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRp
YUVsZW1lbnQoKQogICAgIHVucmVnaXN0ZXJXaXRoRG9jdW1lbnQoZG9jdW1lbnQoKSk7CiAKICNp
ZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKQotICAgIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnJlbW92ZU11dGVkU3RhdGVPYnNlcnZlcih0aGlzKTsKKyAgICBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5yZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXIoKnRoaXMpOwogI2VuZGlmCiAKICAgICBpZiAobV9hdWRpb1RyYWNrcykKQEAgLTM4MTAsNyAr
MzgxMCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIH0K
IAogI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShNQUMpCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShBdWRpb1Nlc3Npb24qIHNlc3Np
b24pCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShj
b25zdCBBdWRpb1Nlc3Npb24qIHNlc3Npb24pCiB7CiAgICAgaWYgKCFzZXNzaW9uLT5pc011dGVk
KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
aW5kZXggNzE5YzdhOGUwODIyYzcwMGU1Y2ExYmM5OThlYzMyMmNiYTkxNzVmNC4uYjlhM2U3ZDU4
NDE5YjMyMmFhYjcyMThmNzBmYWMwYzkxNmM1NTM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50
CiAgICAgLCBwcml2YXRlIFRleHRUcmFja0NsaWVudAogICAgICwgcHJpdmF0ZSBWaWRlb1RyYWNr
Q2xpZW50CiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICAsIHBy
aXZhdGUgQXVkaW9TZXNzaW9uOjpNdXRlZFN0YXRlT2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgQXVk
aW9TZXNzaW9uOjpDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIKICNlbmRpZgogI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCiAgICAgLCBwcml2YXRlIENETUNsaWVudApAQCAtODgyLDcgKzg4
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIG92ZXJy
aWRlOwogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lk
IGhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShBdWRpb1Nlc3Npb24qKSBmaW5hbDsKKyAgICB2
b2lkIGhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShjb25zdCBBdWRpb1Nlc3Npb24qKSBmaW5h
bDsKICNlbmRpZgogCiAgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAK
aW5kZXggNjBhMmFlYTM4OTA3OTQzZjJlMWJmM2JlZDllMmNiNGNlMWNhMzY1YS4uY2YzOWE2ZmU5
NTQxMTQwMTI1MTBmYWMyMGM3MTIyOGIwMTlhZjIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCkBAIC0yMDEsNiArMjAxLDE2IEBAIHZvaWQg
QXVkaW9TZXNzaW9uOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKK3ZvaWQgQXVkaW9TZXNzaW9uOjphZGRDb25maWd1cmF0aW9uQ2hhbmdlT2Jz
ZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6cmVtb3ZlQ29uZmlndXJhdGlvbkNoYW5nZU9i
c2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwogdm9pZCBBdWRpb1Nlc3Npb246OnNldElzUGxheWluZ1RvQmx1ZXRvb3RoT3Zl
cnJpZGUoc3RkOjpvcHRpb25hbDxib29sPikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAppbmRleCBlYWY3MGUy
MDkzYTQ0YmM1MWQ5MmUwOGVmNDAwODU5Yjg4OWUxMGE5Li5lZDY5YWE0YWRhNTNmODZjZDM3NWMw
MzZhNWFkYmNiODgyYjA0N2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uaApAQCAtOTEsMTUgKzkxLDE3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNp
emVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFBy
ZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KTsKIAotICAgIGNsYXNzIE11dGVkU3RhdGVPYnNlcnZl
ciB7CisgICAgY2xhc3MgQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyIDogcHVibGljIENhbk1h
a2VXZWFrUHRyPENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcj4gewogICAgIHB1YmxpYzoKLSAg
ICAgICAgdmlydHVhbCB+TXV0ZWRTdGF0ZU9ic2VydmVyKCkgPSBkZWZhdWx0OworICAgICAgICB2
aXJ0dWFsIH5Db25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShBdWRpb1Nlc3Npb24q
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBoYXJkd2FyZU11dGVkU3RhdGVEaWRDaGFuZ2Uo
Y29uc3QgQXVkaW9TZXNzaW9uKikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyU2l6
ZURpZENoYW5nZShjb25zdCBBdWRpb1Nlc3Npb24qKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lk
IHNhbXBsZVJhdGVEaWRDaGFuZ2UoY29uc3QgQXVkaW9TZXNzaW9uKikgeyB9CiAgICAgfTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBhZGRNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVy
KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZU11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0
YXRlT2JzZXJ2ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uZmlndXJhdGlvbkNoYW5n
ZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYpOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9i
c2VydmVyJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElzUGxheWluZ1RvQmx1ZXRvb3RoT3ZlcnJpZGUoc3RkOjpv
cHRpb25hbDxib29sPik7CkBAIC0xMzQsMTEgKzEzNiw2IEBAIHByb3RlY3RlZDoKIAogICAgIHZp
cnR1YWwgYm9vbCB0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wpOwogCi0gICAgSGFzaFNldDxN
dXRlZFN0YXRlT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIFdlYWtIYXNoU2V0PEludGVycnVwdGlvbk9ic2VydmVyPiBtX2ludGVycnVwdGlvbk9i
c2VydmVyczsKLSNlbmRpZgotCiAgICAgV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRpb25DbGllbnQ+IG1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OwogICAgIGJvb2wgbV9hY3Rp
dmUgeyBmYWxzZSB9OyAvLyBVc2VkIG9ubHkgZm9yIHRlc3RpbmcuCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaAppbmRleCBkMzUx
M2MyZjI1NDg1OGVhNzk5OWJmN2E4OThkNjEyY2JiYjA2NGI4Li5kNWEwOWJkZTA3MDg0YTU2OTVk
NGIxYTU1ZDVlNGEwZDk5YmI5M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5oCkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6
CiAKICAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5T3ZlcnJpZGUgeyBB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OwogICAgIFJlZjxXVEY6OldvcmtRdWV1
ZT4gbV93b3JrUXVldWU7CisgICAgV2Vha0hhc2hTZXQ8SW50ZXJydXB0aW9uT2JzZXJ2ZXI+IG1f
aW50ZXJydXB0aW9uT2JzZXJ2ZXJzOwogICAgIFJldGFpblB0cjxXZWJJbnRlcnJ1cHRpb25PYnNl
cnZlckhlbHBlcj4gbV9pbnRlcnJ1cHRpb25PYnNlcnZlckhlbHBlcjsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuaAppbmRl
eCAxYWQ4ZjYxN2FjMjIyYzQ0Mjk5ZmJiNWQ3MjA1NDYzMjM1YjIwZWY5Li4wMmVjZDVhNDcyN2Q0
NGE1MGY3MjdkMmY0YTE4ZjZhOTdkYzkxMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5oCkBAIC00NCw3ICs0NCw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBhZGRCdWZmZXJTaXplT2JzZXJ2ZXJJZk5lZWRlZCgpIGNvbnN0Owog
CiAgICAgc3RhdGljIE9TU3RhdHVzIGhhbmRsZVNhbXBsZVJhdGVDaGFuZ2UoQXVkaW9PYmplY3RJ
RCwgVUludDMyLCBjb25zdCBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyosIHZvaWQqIGluQ2xp
ZW50RGF0YSk7CisgICAgdm9pZCBoYW5kbGVTYW1wbGVSYXRlQ2hhbmdlKCkgY29uc3Q7CiAgICAg
c3RhdGljIE9TU3RhdHVzIGhhbmRsZUJ1ZmZlclNpemVDaGFuZ2UoQXVkaW9PYmplY3RJRCwgVUlu
dDMyLCBjb25zdCBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyosIHZvaWQqIGluQ2xpZW50RGF0
YSk7CisgICAgdm9pZCBoYW5kbGVCdWZmZXJTaXplQ2hhbmdlKCkgY29uc3Q7CiAKICAgICAvLyBB
dWRpb1Nlc3Npb24KICAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2NhdGVnb3J5OyB9CkBAIC02NCwxMCArNjYsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKICAgICBib29sIGlzTXV0ZWQo
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKSBmaW5hbDsK
LSAgICB2b2lkIGFkZE11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRlT2JzZXJ2ZXIqKSBmaW5h
bDsKLSAgICB2b2lkIHJlbW92ZU11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRlT2JzZXJ2ZXIq
KSBmaW5hbDsKKyAgICB2b2lkIGFkZENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1
cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZUNvbmZpZ3VyYXRp
b25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImKSBmaW5hbDsKIAog
ICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9sYXN0TXV0ZWRTdGF0ZTsKKyAgICBXZWFrSGFzaFNl
dDxDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXI+IG1fY29uZmlndXJhdGlvbkNoYW5nZU9ic2Vy
dmVyczsKICAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJB
VElPTikKICAgICBib29sIG1fc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMu
bW0KaW5kZXggZTVlZWU5ODU0ZjFlNDUxMGJmODZiY2VjZTVhMjg1MzExOGFhN2M0Yi4uNWM3MDc2
ODk5MTc5ZDkzOTU0MGEwMGI1ODI1MWY5ZjA3NjIwMDc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tCkBAIC0xMjUsOSAr
MTI1LDIwIEBAIE9TU3RhdHVzIEF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlU2FtcGxlUmF0ZUNoYW5n
ZShBdWRpb09iamVjdElEIGRldmljZSwgVUludDMyLCBjCiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAKICAgICBzZXNzaW9uLT5tX3NhbXBsZVJhdGUgPSBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KG5v
bWluYWxTYW1wbGVSYXRlKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb25dIHsKKyAg
ICAgICAgc2Vzc2lvbi0+aGFuZGxlU2FtcGxlUmF0ZUNoYW5nZSgpOworICAgIH0pOworCiAgICAg
cmV0dXJuIG5vRXJyOwogfQogCit2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlU2FtcGxlUmF0
ZUNoYW5nZSgpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fY29uZmlndXJh
dGlvbkNoYW5nZU9ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXIuc2FtcGxlUmF0ZURpZENoYW5n
ZSh0aGlzKTsKK30KKwogdm9pZCBBdWRpb1Nlc3Npb25NYWM6OmFkZEJ1ZmZlclNpemVPYnNlcnZl
cklmTmVlZGVkKCkgY29uc3QKIHsKICAgICBpZiAobV9oYXNCdWZmZXJTaXplT2JzZXJ2ZXIpCkBA
IC0xNjMsOSArMTc0LDIwIEBAIE9TU3RhdHVzIEF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlQnVmZmVy
U2l6ZUNoYW5nZShBdWRpb09iamVjdElEIGRldmljZSwgVUludDMyLCBjCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAKICAgICBzZXNzaW9uLT5tX2J1ZmZlclNpemUgPSBidWZmZXJTaXplOworCisg
ICAgY2FsbE9uTWFpblRocmVhZChbc2Vzc2lvbl0geworICAgICAgICBzZXNzaW9uLT5oYW5kbGVC
dWZmZXJTaXplQ2hhbmdlKCk7CisgICAgfSk7CisKICAgICByZXR1cm4gbm9FcnI7CiB9CiAKK3Zv
aWQgQXVkaW9TZXNzaW9uTWFjOjpoYW5kbGVCdWZmZXJTaXplQ2hhbmdlKCkgY29uc3QKK3sKKyAg
ICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzKQor
ICAgICAgICBvYnNlcnZlci5idWZmZXJTaXplRGlkQ2hhbmdlKHRoaXMpOworfQorCiB2b2lkIEF1
ZGlvU2Vzc2lvbk1hYzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKIHsKICNpZiBFTkFCTEUo
Uk9VVElOR19BUkJJVFJBVElPTikKQEAgLTI3Miw2ICsyOTQsOCBAQCBmbG9hdCBBdWRpb1Nlc3Np
b25NYWM6OnNhbXBsZVJhdGUoKSBjb25zdAogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWEsICJBdWRpb1Nlc3Npb25NYWM6OnNhbXBsZVJhdGUoKSAtIEF1ZGlvT2JqZWN0R2V0UHJv
cGVydHlEYXRhKCkgcmV0dXJuIGFuIGludmFsaWQgc2FtcGxlIHJhdGUiKTsKICAgICAgICAgICAg
IG1fc2FtcGxlUmF0ZSA9IDQ0MTAwOwogICAgICAgICB9CisKKyAgICAgICAgaGFuZGxlU2FtcGxl
UmF0ZUNoYW5nZSgpOwogICAgIH0KICAgICByZXR1cm4gKm1fc2FtcGxlUmF0ZTsKIH0KQEAgLTQw
Niw4ICs0MzAsMTAgQEAgdm9pZCBBdWRpb1Nlc3Npb25NYWM6OnNldFByZWZlcnJlZEJ1ZmZlclNp
emUoc2l6ZV90IGJ1ZmZlclNpemUpCiAKICAgICByZXN1bHQgPSBBdWRpb09iamVjdFNldFByb3Bl
cnR5RGF0YShkZWZhdWx0RGV2aWNlKCksICZwcmVmZXJyZWRCdWZmZXJTaXplQWRkcmVzcywgMCwg
MCwgc2l6ZW9mKGJ1ZmZlclNpemVPdXQpLCAodm9pZCopJmJ1ZmZlclNpemVPdXQpOwogCi0gICAg
aWYgKCFyZXN1bHQpCisgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgbV9idWZmZXJTaXplID0g
YnVmZmVyU2l6ZU91dDsKKyAgICAgICAgaGFuZGxlQnVmZmVyU2l6ZUNoYW5nZSgpOworICAgIH0K
IAogI2lmICFMT0dfRElTQUJMRUQKICAgICBpZiAocmVzdWx0KQpAQCAtNDU5LDE3ICs0ODUsMTYg
QEAgdm9pZCBBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKQogICAgIGlm
IChtX2xhc3RNdXRlZFN0YXRlICYmICptX2xhc3RNdXRlZFN0YXRlID09IGlzQ3VycmVudGx5TXV0
ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBtX29ic2Vy
dmVycykKLSAgICAgICAgb2JzZXJ2ZXItPmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZSh0aGlz
KTsKLQogICAgIG1fbGFzdE11dGVkU3RhdGUgPSBpc0N1cnJlbnRseU11dGVkOworICAgIGZvciAo
YXV0byYgb2JzZXJ2ZXIgOiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnMpCisgICAgICAg
IG9ic2VydmVyLmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZSh0aGlzKTsKIH0KIAotdm9pZCBB
dWRpb1Nlc3Npb25NYWM6OmFkZE11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRlT2JzZXJ2ZXIq
IG9ic2VydmVyKQordm9pZCBBdWRpb1Nlc3Npb25NYWM6OmFkZENvbmZpZ3VyYXRpb25DaGFuZ2VP
YnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIG1f
b2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXJzLmFkZChvYnNlcnZlcik7CiAKLSAgICBpZiAobV9vYnNlcnZlcnMuc2l6ZSgpID4gMSkKKyAg
ICBpZiAobV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLmNvbXB1dGVTaXplKCkgPiAxKQog
ICAgICAgICByZXR1cm47CiAKICAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBtdXRlQWRk
cmVzcyA9IHsKQEAgLTQ4Niw5ICs1MTEsOSBAQCB2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6YWRkTXV0
ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgQXVkaW9P
YmplY3RBZGRQcm9wZXJ0eUxpc3RlbmVyKGRlZmF1bHREZXZpY2UoKSwgJm11dGVBZGRyZXNzLCBo
YW5kbGVNdXRlUHJvcGVydHlDaGFuZ2UsIHRoaXMpOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbk1h
Yzo6cmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciogb2JzZXJ2ZXIp
Cit2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6cmVtb3ZlQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVy
KENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgaWYgKG1fb2Jz
ZXJ2ZXJzLnNpemUoKSA9PSAxKSB7CisgICAgaWYgKG1fY29uZmlndXJhdGlvbkNoYW5nZU9ic2Vy
dmVycy5jb21wdXRlU2l6ZSgpID09IDEpIHsKICAgICAgICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFk
ZHJlc3MgbXV0ZUFkZHJlc3MgPSB7CiAgICAgICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eU11
dGUsCiAgICAgICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3BlT3V0cHV0LApAQCAtNTAz
LDcgKzUyOCw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVNdXRlZFN0YXRlT2JzZXJ2
ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICAgICAgQXVkaW9PYmplY3RSZW1v
dmVQcm9wZXJ0eUxpc3RlbmVyKGRlZmF1bHREZXZpY2UoKSwgJm11dGVBZGRyZXNzLCBoYW5kbGVN
dXRlUHJvcGVydHlDaGFuZ2UsIHRoaXMpOwogICAgIH0KIAotICAgIG1fb2JzZXJ2ZXJzLnJlbW92
ZShvYnNlcnZlcik7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLnJlbW92ZShv
YnNlcnZlcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCmluZGV4IDJjMDk5MDQ1YTdmNGRm
ZDhjNGQ5YTEzMWM5OTA2ZDExYjg4YTdkNDguLjg3M2I5YTFkZGZmZDljOTFlN2U4NmZkYzk0NWI0
MDFjYWU5N2UxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApAQCAtOTMsNiArOTMsMTEgQEAgdm9p
ZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUsIFNl
dEFjdGl2ZUNvbXBsZXRpb24mJgogICAgIGNvbXBsZXRpb24obV9hY3RpdmUpOwogfQogCit2b2lk
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZCgpCit7CisgICAg
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Q29uZmlndXJh
dGlvbkNoYW5nZWQoY29uZmlndXJhdGlvbigpKSwgeyB9KTsKK30KKwogdm9pZCBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24oKQogewogICAgIGNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkJlZ2luSW50ZXJydXB0aW9uKCksIHsg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eS5oCmluZGV4IDMwZWIxMTk1NDZhMTE2YTAyYTdhM2FmZjg2Y2VjY2Mx
ODdhZDEyM2UuLjhjMWRjZTIxMDYwNGY0MDgxZjU3NGZmZmFjMDVhYjhlMjU0Y2I5MGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzaXplX3QgcHJlZmVy
cmVkQnVmZmVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVkQnVmZmVyU2l6ZTsgfQog
ICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQogCisgICAgdm9p
ZCBjb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oKTsK
ICAgICB2b2lkIGVuZEludGVycnVwdGlvbihXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok1heVJlc3Vt
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKaW5kZXggYTI4YjYwYmYyMTRl
M2JhN2I0NmQ2MjUyZGIxNzA2MWQzNzQxMmQ4MS4uMDNiNmZmZTdiOGE1OTUyMDMxMDQ5OTBjZDhk
ZTc2YmVmYTg2ZWJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKQEAgLTQ3
LDExICs0NywxMyBAQCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcigpCiAgICAgOiBtX3Nlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVh
dGUoKSkKIHsKICAgICBtX3Nlc3Npb24tPmFkZEludGVycnVwdGlvbk9ic2VydmVyKCp0aGlzKTsK
KyAgICBtX3Nlc3Npb24tPmFkZENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcigqdGhpcyk7CiB9
CiAKIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6flJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcigpCiB7CiAgICAgbV9zZXNzaW9uLT5yZW1vdmVJbnRlcnJ1cHRpb25PYnNlcnZl
cigqdGhpcyk7CisgICAgbV9zZXNzaW9uLT5yZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXIoKnRoaXMpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6YWRk
UHJveHkoUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkmIHByb3h5KQpAQCAtMTg3LDYgKzE4OSwyNCBA
QCB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6ZW5kQXVkaW9TZXNzaW9uSW50
ZXJydXB0aW9uKEF1ZGlvU2Vzc2lvbjo6TQogICAgIH0KIH0KIAordm9pZCBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI6OmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShjb25zdCBBdWRp
b1Nlc3Npb24qKQoreworICAgIGZvciAoYXV0byYgcHJveHkgOiBtX3Byb3hpZXMpCisgICAgICAg
IHByb3h5LmNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyOjpidWZmZXJTaXplRGlkQ2hhbmdlKGNvbnN0IEF1ZGlvU2Vzc2lvbiog
c2Vzc2lvbikKK3sKKyAgICBmb3IgKGF1dG8mIHByb3h5IDogbV9wcm94aWVzKQorICAgICAgICBw
cm94eS5jb25maWd1cmF0aW9uQ2hhbmdlZCgpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlcjo6c2FtcGxlUmF0ZURpZENoYW5nZShjb25zdCBBdWRpb1Nlc3Npb24qIHNl
c3Npb24pCit7CisgICAgZm9yIChhdXRvJiBwcm94eSA6IG1fcHJveGllcykKKyAgICAgICAgcHJv
eHkuY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuaAppbmRleCAyN2YxZDE3YjYzYWNlN2RmZTQ4ZmYxODIyOTRmMThkZTYy
MmVhNGFmLi4xZjU5YjhhMWEzNTNiZjU2MTdiNzQ0YmE5NTRhMzg4MWQzYTVmMDkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0zNyw3ICszNyw4IEBAIGNsYXNzIEdQVVByb2Nl
c3M7CiBjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsKIAogY2xhc3MgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyCi0gICAgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpJ
bnRlcnJ1cHRpb25PYnNlcnZlciB7CisgICAgOiBwcml2YXRlIFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bjo6SW50ZXJydXB0aW9uT2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpOwpA
QCAtNTgsNiArNTksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGJlZ2luQXVkaW9TZXNzaW9uSW50
ZXJydXB0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBlbmRBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24o
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpNYXlSZXN1bWUpIGZpbmFsOwogCisgICAgdm9pZCBoYXJk
d2FyZU11dGVkU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uKikgZmlu
YWw7CisgICAgdm9pZCBidWZmZXJTaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbiopIGZpbmFsOworICAgIHZvaWQgc2FtcGxlUmF0ZURpZENoYW5nZShjb25zdCBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb24qKSBmaW5hbDsKKwogICAgIFVuaXF1ZVJlZjxXZWJDb3JlOjpBdWRpb1Nl
c3Npb24+IG1fc2Vzc2lvbjsKICAgICBXZWFrSGFzaFNldDxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eT4gbV9wcm94aWVzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAppbmRleCA1YjNjN2MxNWJmY2ExNDZl
ZTk2YjM4NTcxMjM3OTVjMzI1OTk0YjY1Li4xMzM5NmNiYzVlNmU4MWFmNzg5NzI0NzE3YTU3ZjNk
NTQzZGFjY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0xMjIsNiArMTIyLDE2IEBAIGJvb2wg
UmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wgYWN0aXZlKQog
ICAgIHJldHVybiBzdWNjZWVkZWQ7CiB9CiAKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjphZGRD
b25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJiBv
YnNlcnZlcikKK3sKKyAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnMuYWRkKG9ic2Vy
dmVyKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnJlbW92ZUNvbmZpZ3VyYXRpb25D
aGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImIG9ic2VydmVyKQorewor
ICAgIG1fY29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOworfQor
CiBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBSZW1vdGVBdWRpb1Nlc3Npb246OmNhdGVnb3J5
KCkgY29uc3QKIHsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTEzMSw2ICsxNDEsMjYgQEAgQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgUmVtb3RlQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNv
bnN0CiAjZW5kaWYKIH0KIAordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25D
aGFuZ2VkKFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQor
eworICAgIGJvb2wgbXV0ZWRTdGF0ZUNoYW5nZWQgPSAhbV9jb25maWd1cmF0aW9uIHx8IGNvbmZp
Z3VyYXRpb24uaXNNdXRlZCAhPSAoKm1fY29uZmlndXJhdGlvbikuaXNNdXRlZDsKKyAgICBib29s
IGJ1ZmZlclNpemVDaGFuZ2VkID0gIW1fY29uZmlndXJhdGlvbiB8fCBjb25maWd1cmF0aW9uLmJ1
ZmZlclNpemUgIT0gKCptX2NvbmZpZ3VyYXRpb24pLmJ1ZmZlclNpemU7CisgICAgYm9vbCBzYW1w
bGVSYXRlQ2FobmdlZCA9ICFtX2NvbmZpZ3VyYXRpb24gfHwgY29uZmlndXJhdGlvbi5zYW1wbGVS
YXRlICE9ICgqbV9jb25maWd1cmF0aW9uKS5zYW1wbGVSYXRlOworCisgICAgbV9jb25maWd1cmF0
aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIg
OiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnMpIHsKKyAgICAgICAgaWYgKG11dGVkU3Rh
dGVDaGFuZ2VkKQorICAgICAgICAgICAgb2JzZXJ2ZXIuaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hh
bmdlKHRoaXMpOworCisgICAgICAgIGlmIChidWZmZXJTaXplQ2hhbmdlZCkKKyAgICAgICAgICAg
IG9ic2VydmVyLmJ1ZmZlclNpemVEaWRDaGFuZ2UodGhpcyk7CisKKyAgICAgICAgaWYgKHNhbXBs
ZVJhdGVDYWhuZ2VkKQorICAgICAgICAgICAgb2JzZXJ2ZXIuc2FtcGxlUmF0ZURpZENoYW5nZSh0
aGlzKTsKKyAgICB9Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaAppbmRleCA5ZTZiY2Vi
MDZiZTkwNDNiZTZlNmM2OGFmMDYyYzBhMzExNTU3OTAwLi4yMDM2MThmY2Y0YThkZWVjM2ViYjU3
NWFlYTI0OTBkNDZlMTc5NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKQEAgLTY4LDYgKzY4LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6
ZV90KSBmaW5hbDsKICAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCkgZmluYWw7
CisgICAgdm9pZCBhZGRDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNo
YW5nZU9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJik7CiAKICAgICBjb25zdCBSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCkgY29uc3Q7CiAgICAgUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpOwpAQCAtODYsNiArODgs
NyBAQCBwcml2YXRlOgogCiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogCisgICAgV2Vha0hh
c2hTZXQ8Q29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyPiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VP
YnNlcnZlcnM7CiAgICAgQ2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnkgeyBDYXRlZ29yeVR5cGU6Ok5v
bmUgfTsKICAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xp
Y3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBzdGQ6Om9w
dGlvbmFsPFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KaW5kZXggYjRiZWQxNjM5NTViMTFmNDlj
ZTM4OWViMTZkODI1MzIwM2ZhMmE4Yy4uOWYwOGNlM2YzMGY5ZDIwMzFlMDYyNGU1M2JjZjgxYzI0
ZjM2NzlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2
LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQogCiBt
ZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb24gTm90UmVmQ291bnRlZCB7CisgICAgQ29uZmln
dXJhdGlvbkNoYW5nZWQoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKQogICAgIEJlZ2luSW50ZXJydXB0aW9uKCkKICAgICBFbmRJbnRl
cnJ1cHRpb24oV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpNYXlSZXN1bWUgZmxhZ3MpCiB9CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDM2NzBjYmFi
ZWJhY2Y4MzI2NjUxZjg3MjhkNTdjZjlhMWEyNzk3ZS4uYjE2MDQ2ZDBjZjkyOGVlZDA3N2M4NWYz
ZWJlZDVlYzQ1YWM5MjQ2NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA4LTAzICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQXSBTb21lIEFQSSB0ZXN0
cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFibGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1ODkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMjEtMDgtMDIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJT
aXplKCkgZG9lcyBub3QgY2hhbmdlIGl0cyBwcmVmZXJyZWRCdWZmZXJTaXplCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXpl
Lm1tCmluZGV4IDBhYzFkNWUwZTdhNzE0ZTAyZTIwOGNmYjQwYmQ1YzY5ZGY1ZmE2M2IuLjUzM2Rl
MWVjNGQ2ZGE0MDA1ZDk4YTc5OGNlOTc2YTVkOWUwMjM0MzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tCkBA
IC01Niw3ICs1Niw3IEBAIGRvdWJsZSB3YWl0Rm9yQnVmZmVyU2l6ZUNoYW5nZShXS1dlYlZpZXcq
IHdlYlZpZXcsIGRvdWJsZSBvbGRTaXplKQogICAgIHJldHVybiAwOwogfQogCi1URVNUKFdlYktp
dCwgRElTQUJMRURfQXVkaW9CdWZmZXJTaXplKQorVEVTVChXZWJLaXQsIEF1ZGlvQnVmZmVyU2l6
ZSkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soVGVzdFdl
YktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJu
YWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434887</attachid>
            <date>2021-08-03 23:23:47 -0700</date>
            <delta_ts>2021-08-04 10:12:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228589-20210803232347.patch</filename>
            <type>text/plain</type>
            <size>24610</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZkYzcxMzMxNTI5NjQ2
MWJjYjE4ZWRjOTQyNTBmZTU0ZTRkOTY1MC4uZTkyODcyZWQ5ODhjZjlmYzViNGU2ZWE0OWIyZjE3
ZTk1YTQ0YTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTA4LTAzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQXSBT
b21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFibGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1ODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuICJN
ZWRpYSBpbiBHUFUgUHJvY2VzcyIgaXMgZW5hYmxlZCwgYEF1ZGlvU2Vzc2lvbltJT1N8TWFjXWAg
cnVucyBpbgorICAgICAgICB0aGUgR1BVIHByb2Nlc3MuIGBIVE1MTWVkaWFFbGVtZW50YCwgd2hp
Y2ggaXMgYW4gb2JzZXJ2ZXIgb2YgYXVkaW8gc2Vzc2lvbiwKKyAgICAgICAgcnVucyBpbiBhIFdl
YkNvbnRlbnQgcHJvY2Vzcy4gSXQgY2Fubm90IGdldCBpdHMgQXVkaW9TZXNzaW9uJ3MgY29uZmln
dXJhdGlvbgorICAgICAgICBkaXJlY3RseS4gV2UgbmVlZCBhIG1lY2hhbmlzbSB0byAicHVzaCIg
dGhlIGxhdGVzdCBhdWRpbyBzZXNzaW9uIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgZnJvbSB0aGUg
R1BVIHByb2Nlc3MgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICBUaGlzIHBh
dGNoIHJlcGxhY2VzIHRoZSBgTXV0ZWRTdGF0ZU9ic2VydmVyYCB3aXRoIGFuIGF1ZGlvIHNlc3Np
b24gY29uZmlndXJhdGlvbgorICAgICAgICBjaGFuZ2Ugb2JzZXJ2ZXIgaW50ZXJmYWNlLCBzbyB0
aGF0IGFuIGF1ZGlvIHNlc3Npb24gd2lsbCBub3RpZnkgaXRzIG9ic2VydmVycworICAgICAgICBh
ZnRlciBjaGFuZ2luZyBpdHMgY29uZmlndXJhdGlvbnMsIGluY2x1ZGluZyBidWZmZXIgc2l6ZSwg
bXV0ZWQgc3RhdGUsIHNhbXBsZSByYXRlLgorICAgICAgICBDdXJyZW50bHksIHRoaXMgb2JzZXJ2
ZXIgaW50ZXJmYWNlIGlzIHVzZWQgb24gbWFjT1Mgb25seS4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIEZpeCBhbiBBUEkgdGVzdCBmYWlsdXJlLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmluaXRpYWxp
emVNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6fkhU
TUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFy
ZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuaDoKKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaDoKKyAgICAgICAgTW92ZSBg
bV9pbnRlcnJ1cHRpb25PYnNlcnZlcnNgIHRvIHRoaXMgY2xhc3MgYmVjYXVzZSBvbmx5IGBBdWRp
b1Nlc3Npb25JT1NgCisgICAgICAgIHN1cHBvcnRzIGludGVycnVwdGlvbiBvYnNlcnZlcnMuCisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZVNhbXBsZVJhdGVDaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uTWFjOjpoYW5kbGVTYW1wbGVSYXRlQ2hhbmdlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlQnVmZmVyU2l6ZUNoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZUJ1ZmZlclNpemVDaGFu
Z2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpzYW1wbGVSYXRl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbk1hYzo6c2V0UHJlZmVycmVk
QnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZU11
dGVkU3RhdGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjphZGRD
b25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNz
aW9uTWFjOjpyZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uTWFjOjphZGRNdXRlZFN0YXRlT2JzZXJ2ZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVNdXRlZFN0YXRlT2JzZXJ2
ZXIpOiBEZWxldGVkLgorCiAyMDIxLTA4LTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFzc2VydGlvbiBpcyBub3QgYWNxdWlyZWQgaW4gbmV0d29yayBwcm9j
ZXNzIHdoZW4gb3BlbmluZyBhIFNRTGl0ZSBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMjUyZTQ1OWRj
ZjJhYTk2ZjA3NWQzMDIyZTIyMTRmMzI2NzYzMmY2Li5iODdkZGQwYWI4MWU4MDkwZjg2OTUyZWQ2
NzU4NWY0OGRiYmFlYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4LTAzICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQ
XSBTb21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFi
bGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1
ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IGFuIGF1ZGlvIHNlc3Npb24ncyBjb25maWd1cmF0aW9uIGNoYW5nZXMsIGxldCBgUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlgCisgICAgICAgIGluIHRoZSBHUFUgcHJvY2VzcyBzZW5kIHRoZSBsYXRl
c3QgYXVkaW8gc2Vzc2lvbiBjb25maWd1cmF0aW9uIHRvIGBSZW1vdGVBdWRpb1Nlc3Npb25gCisg
ICAgICAgIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgdGhyb3VnaCBhbiBJUEMgbWVzc2FnZSAo
YFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Q29uZmlndXJhdGlvbkNoYW5nZWRgKS4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaDoKKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6On5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmhhcmR3
YXJlTXV0ZWRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcjo6YnVmZmVyU2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2FtcGxlUmF0ZURpZENoYW5nZSk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmFkZENvbmZpZ3VyYXRpb25D
aGFuZ2VPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6cmVt
b3ZlQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA4LTAyICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFJlbW90ZUF1
ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSgpIGRvZXMgbm90IGNoYW5nZSBpdHMg
cHJlZmVycmVkQnVmZmVyU2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKaW5kZXggMTE5ZGI0MDZiNzFmN2UzMWQzZWIyM2VkM2U0ZTJlNjEyZjNjNTNkNC4uNjExZDBm
MDc3Yjk1OWEzNjZmNmI0ZmI5ZTM3ZjJiYTU4NzUzODExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojppbml0aWFsaXplTWVkaWFTZXNzaW9uKCkKICAgICByZWdpc3RlcldpdGhEb2N1bWVu
dChkb2N1bWVudCk7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKQot
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmFkZE11dGVkU3RhdGVPYnNlcnZlcih0
aGlzKTsKKyAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5hZGRDb25maWd1cmF0aW9u
Q2hhbmdlT2JzZXJ2ZXIoKnRoaXMpOwogI2VuZGlmCiAKICAgICBtX21lZGlhU2Vzc2lvbi0+Y2xp
ZW50V2lsbEJlZ2luQXV0b3BsYXlpbmcoKTsKQEAgLTUzMCw3ICs1MzAsNyBAQCBIVE1MTWVkaWFF
bGVtZW50Ojp+SFRNTE1lZGlhRWxlbWVudCgpCiAgICAgdW5yZWdpc3RlcldpdGhEb2N1bWVudChk
b2N1bWVudCgpKTsKIAogI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShNQUMpCi0g
ICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVy
KHRoaXMpOworICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnJlbW92ZUNvbmZpZ3Vy
YXRpb25DaGFuZ2VPYnNlcnZlcigqdGhpcyk7CiAjZW5kaWYKIAogICAgIGlmIChtX2F1ZGlvVHJh
Y2tzKQpAQCAtMzgxMCw3ICszODEwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRl
ZChib29sIG11dGVkKQogfQogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1B
QykKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKEF1
ZGlvU2Vzc2lvbiogc2Vzc2lvbikKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aGFyZHdhcmVNdXRl
ZFN0YXRlRGlkQ2hhbmdlKGNvbnN0IEF1ZGlvU2Vzc2lvbiogc2Vzc2lvbikKIHsKICAgICBpZiAo
IXNlc3Npb24tPmlzTXV0ZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAppbmRleCA3MTljN2E4ZTA4MjJjNzAwZTVjYTFiYzk5OGVjMzIyY2Jh
OTE3NWY0Li5iOWEzZTdkNTg0MTliMzIyYWFiNzIxOGY3MGZhYzBjOTE2YzU1MzdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIGNsYXNz
IEhUTUxNZWRpYUVsZW1lbnQKICAgICAsIHByaXZhdGUgVGV4dFRyYWNrQ2xpZW50CiAgICAgLCBw
cml2YXRlIFZpZGVvVHJhY2tDbGllbnQKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZP
Uk0oTUFDKQotICAgICwgcHJpdmF0ZSBBdWRpb1Nlc3Npb246Ok11dGVkU3RhdGVPYnNlcnZlcgor
ICAgICwgcHJpdmF0ZSBBdWRpb1Nlc3Npb246OkNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcgog
I2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICAsIHByaXZhdGUgQ0RNQ2xp
ZW50CkBAIC04ODIsNyArODgyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRl
RGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZP
Uk0oTUFDKQotICAgIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKEF1ZGlvU2Vzc2lv
biopIGZpbmFsOworICAgIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKGNvbnN0IEF1
ZGlvU2Vzc2lvbiopIGZpbmFsOwogI2VuZGlmCiAKICAgICBib29sIHByb2Nlc3NpbmdVc2VyR2Vz
dHVyZUZvck1lZGlhKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmNwcAppbmRleCA2MGEyYWVhMzg5MDc5NDNmMmUxYmYzYmVkOWUyY2I0Y2Ux
Y2EzNjVhLi5jZjM5YTZmZTk1NDExNDAxMjUxMGZhYzIwYzcxMjI4YjAxOWFmMjA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAgLTIwMSw2
ICsyMDEsMTYgQEAgdm9pZCBBdWRpb1Nlc3Npb246OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgp
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBBdWRpb1Nlc3Npb246OmFkZENvbmZp
Z3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uOjpyZW1vdmVDb25m
aWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0SXNQbGF5
aW5nVG9CbHVldG9vdGhPdmVycmlkZShzdGQ6Om9wdGlvbmFsPGJvb2w+KQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lv
bi5oCmluZGV4IGVhZjcwZTIwOTNhNDRiYzUxZDkyZTA4ZWY0MDA4NTliODg5ZTEwYTkuLmVkNjlh
YTRhZGE1M2Y4NmNkMzc1YzAzNmE1YWRiY2I4ODJiMDQ3YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC05MSwxNSArOTEsMTcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCi0gICAgY2xhc3Mg
TXV0ZWRTdGF0ZU9ic2VydmVyIHsKKyAgICBjbGFzcyBDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyPiB7
CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5NdXRlZFN0YXRlT2JzZXJ2ZXIoKSA9IGRl
ZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgfkNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcigpID0g
ZGVmYXVsdDsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hh
bmdlKEF1ZGlvU2Vzc2lvbiopID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGhhcmR3YXJlTXV0
ZWRTdGF0ZURpZENoYW5nZShjb25zdCBBdWRpb1Nlc3Npb24qKSA9IDA7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBidWZmZXJTaXplRGlkQ2hhbmdlKGNvbnN0IEF1ZGlvU2Vzc2lvbiopIHsgfQorICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlUmF0ZURpZENoYW5nZShjb25zdCBBdWRpb1Nlc3Npb24q
KSB7IH0KICAgICB9OwogCi0gICAgdmlydHVhbCB2b2lkIGFkZE11dGVkU3RhdGVPYnNlcnZlcihN
dXRlZFN0YXRlT2JzZXJ2ZXIqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0
ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhZGRD
b25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJik7
CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25m
aWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhdWRpb091dHB1
dERldmljZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNQbGF5aW5nVG9CbHVldG9v
dGhPdmVycmlkZShzdGQ6Om9wdGlvbmFsPGJvb2w+KTsKQEAgLTEzNCwxMSArMTM2LDYgQEAgcHJv
dGVjdGVkOgogCiAgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7
CiAKLSAgICBIYXNoU2V0PE11dGVkU3RhdGVPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgV2Vha0hhc2hTZXQ8SW50ZXJydXB0aW9uT2JzZXJ2ZXI+
IG1faW50ZXJydXB0aW9uT2JzZXJ2ZXJzOwotI2VuZGlmCi0KICAgICBXZWFrUHRyPEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudD4gbV9yb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ7
CiAgICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07IC8vIFVzZWQgb25seSBmb3IgdGVzdGluZy4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vz
c2lvbklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lv
bklPUy5oCmluZGV4IGQzNTEzYzJmMjU0ODU4ZWE3OTk5YmY3YTg5OGQ2MTJjYmJiMDY0YjguLmQ1
YTA5YmRlMDcwODRhNTY5NWQ0YjFhNTVkNWU0YTBkOTliYjkzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLmgKQEAgLTY2LDYg
KzY2LDcgQEAgcHJpdmF0ZToKIAogICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0
ZWdvcnlPdmVycmlkZSB7IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIH07CiAgICAg
UmVmPFdURjo6V29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKKyAgICBXZWFrSGFzaFNldDxJbnRlcnJ1
cHRpb25PYnNlcnZlcj4gbV9pbnRlcnJ1cHRpb25PYnNlcnZlcnM7CiAgICAgUmV0YWluUHRyPFdl
YkludGVycnVwdGlvbk9ic2VydmVySGVscGVyPiBtX2ludGVycnVwdGlvbk9ic2VydmVySGVscGVy
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvU2Vzc2lvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlv
U2Vzc2lvbk1hYy5oCmluZGV4IDFhZDhmNjE3YWMyMjJjNDQyOTlmYmI1ZDcyMDU0NjMyMzViMjBl
ZjkuLjAyZWNkNWE0NzI3ZDQ0YTUwZjcyN2QyZjRhMThmNmE5N2RjOTExZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmgKQEAg
LTQ0LDcgKzQ0LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZEJ1ZmZlclNpemVPYnNlcnZlcklm
TmVlZGVkKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgT1NTdGF0dXMgaGFuZGxlU2FtcGxlUmF0ZUNo
YW5nZShBdWRpb09iamVjdElELCBVSW50MzIsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRy
ZXNzKiwgdm9pZCogaW5DbGllbnREYXRhKTsKKyAgICB2b2lkIGhhbmRsZVNhbXBsZVJhdGVDaGFu
Z2UoKSBjb25zdDsKICAgICBzdGF0aWMgT1NTdGF0dXMgaGFuZGxlQnVmZmVyU2l6ZUNoYW5nZShB
dWRpb09iamVjdElELCBVSW50MzIsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzKiwg
dm9pZCogaW5DbGllbnREYXRhKTsKKyAgICB2b2lkIGhhbmRsZUJ1ZmZlclNpemVDaGFuZ2UoKSBj
b25zdDsKIAogICAgIC8vIEF1ZGlvU2Vzc2lvbgogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2F0ZWdvcnk7IH0KQEAgLTY0LDEwICs2NiwxMSBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpIGZpbmFsOwog
ICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgaGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpIGZpbmFsOwotICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3Rh
dGVPYnNlcnZlciopIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11
dGVkU3RhdGVPYnNlcnZlciopIGZpbmFsOworICAgIHZvaWQgYWRkQ29uZmlndXJhdGlvbkNoYW5n
ZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYpIGZpbmFsOworICAgIHZvaWQg
cmVtb3ZlQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNl
cnZlciYpIGZpbmFsOwogCiAgICAgc3RkOjpvcHRpb25hbDxib29sPiBtX2xhc3RNdXRlZFN0YXRl
OworICAgIFdlYWtIYXNoU2V0PENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcj4gbV9jb25maWd1
cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzOwogICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1f
Y2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OwogI2lmIEVOQUJM
RShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIGJvb2wgbV9zZXR1cEFyYml0cmF0aW9uT25nb2lu
ZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9TZXNzaW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvU2Vzc2lvbk1hYy5tbQppbmRleCBlNWVlZTk4NTRmMWU0NTEwYmY4NmJjZWNlNWEyODUz
MTE4YWE3YzRiLi41YzcwNzY4OTkxNzlkOTM5NTQwYTAwYjU4MjUxZjlmMDc2MjAwNzc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25N
YWMubW0KQEAgLTEyNSw5ICsxMjUsMjAgQEAgT1NTdGF0dXMgQXVkaW9TZXNzaW9uTWFjOjpoYW5k
bGVTYW1wbGVSYXRlQ2hhbmdlKEF1ZGlvT2JqZWN0SUQgZGV2aWNlLCBVSW50MzIsIGMKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKIAogICAgIHNlc3Npb24tPm1fc2FtcGxlUmF0ZSA9IG5hcnJvd1By
ZWNpc2lvblRvRmxvYXQobm9taW5hbFNhbXBsZVJhdGUpOworCisgICAgY2FsbE9uTWFpblRocmVh
ZChbc2Vzc2lvbl0geworICAgICAgICBzZXNzaW9uLT5oYW5kbGVTYW1wbGVSYXRlQ2hhbmdlKCk7
CisgICAgfSk7CisKICAgICByZXR1cm4gbm9FcnI7CiB9CiAKK3ZvaWQgQXVkaW9TZXNzaW9uTWFj
OjpoYW5kbGVTYW1wbGVSYXRlQ2hhbmdlKCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2Vy
dmVyIDogbV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci5z
YW1wbGVSYXRlRGlkQ2hhbmdlKHRoaXMpOworfQorCiB2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6YWRk
QnVmZmVyU2l6ZU9ic2VydmVySWZOZWVkZWQoKSBjb25zdAogewogICAgIGlmIChtX2hhc0J1ZmZl
clNpemVPYnNlcnZlcikKQEAgLTE2Myw5ICsxNzQsMjAgQEAgT1NTdGF0dXMgQXVkaW9TZXNzaW9u
TWFjOjpoYW5kbGVCdWZmZXJTaXplQ2hhbmdlKEF1ZGlvT2JqZWN0SUQgZGV2aWNlLCBVSW50MzIs
IGMKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgIHNlc3Npb24tPm1fYnVmZmVyU2l6ZSA9
IGJ1ZmZlclNpemU7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtzZXNzaW9uXSB7CisgICAgICAg
IHNlc3Npb24tPmhhbmRsZUJ1ZmZlclNpemVDaGFuZ2UoKTsKKyAgICB9KTsKKwogICAgIHJldHVy
biBub0VycjsKIH0KIAordm9pZCBBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZUJ1ZmZlclNpemVDaGFu
Z2UoKSBjb25zdAoreworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX2NvbmZpZ3VyYXRpb25D
aGFuZ2VPYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLmJ1ZmZlclNpemVEaWRDaGFuZ2UodGhp
cyk7Cit9CisKIHZvaWQgQXVkaW9TZXNzaW9uTWFjOjphdWRpb091dHB1dERldmljZUNoYW5nZWQo
KQogewogI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQpAQCAtMjcyLDYgKzI5NCw4IEBA
IGZsb2F0IEF1ZGlvU2Vzc2lvbk1hYzo6c2FtcGxlUmF0ZSgpIGNvbnN0CiAgICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIkF1ZGlvU2Vzc2lvbk1hYzo6c2FtcGxlUmF0ZSgpIC0g
QXVkaW9PYmplY3RHZXRQcm9wZXJ0eURhdGEoKSByZXR1cm4gYW4gaW52YWxpZCBzYW1wbGUgcmF0
ZSIpOwogICAgICAgICAgICAgbV9zYW1wbGVSYXRlID0gNDQxMDA7CiAgICAgICAgIH0KKworICAg
ICAgICBoYW5kbGVTYW1wbGVSYXRlQ2hhbmdlKCk7CiAgICAgfQogICAgIHJldHVybiAqbV9zYW1w
bGVSYXRlOwogfQpAQCAtNDA2LDggKzQzMCwxMCBAQCB2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6c2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QgYnVmZmVyU2l6ZSkKIAogICAgIHJlc3VsdCA9IEF1
ZGlvT2JqZWN0U2V0UHJvcGVydHlEYXRhKGRlZmF1bHREZXZpY2UoKSwgJnByZWZlcnJlZEJ1ZmZl
clNpemVBZGRyZXNzLCAwLCAwLCBzaXplb2YoYnVmZmVyU2l6ZU91dCksICh2b2lkKikmYnVmZmVy
U2l6ZU91dCk7CiAKLSAgICBpZiAoIXJlc3VsdCkKKyAgICBpZiAoIXJlc3VsdCkgewogICAgICAg
ICBtX2J1ZmZlclNpemUgPSBidWZmZXJTaXplT3V0OworICAgICAgICBoYW5kbGVCdWZmZXJTaXpl
Q2hhbmdlKCk7CisgICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIGlmIChyZXN1bHQpCkBA
IC00NTksMTcgKzQ4NSwxNiBAQCB2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpCiAgICAgaWYgKG1fbGFzdE11dGVkU3RhdGUgJiYgKm1fbGFzdE11dGVkU3RhdGUg
PT0gaXNDdXJyZW50bHlNdXRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChhdXRvKiBv
YnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAgICBvYnNlcnZlci0+aGFyZHdhcmVNdXRlZFN0
YXRlRGlkQ2hhbmdlKHRoaXMpOwotCiAgICAgbV9sYXN0TXV0ZWRTdGF0ZSA9IGlzQ3VycmVudGx5
TXV0ZWQ7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fY29uZmlndXJhdGlvbkNoYW5nZU9i
c2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXIuaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKHRo
aXMpOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6YWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11
dGVkU3RhdGVPYnNlcnZlciogb2JzZXJ2ZXIpCit2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6YWRkQ29u
ZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYgb2Jz
ZXJ2ZXIpCiB7Ci0gICAgbV9vYnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKKyAgICBtX2NvbmZpZ3Vy
YXRpb25DaGFuZ2VPYnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKIAotICAgIGlmIChtX29ic2VydmVy
cy5zaXplKCkgPiAxKQorICAgIGlmIChtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnMuY29t
cHV0ZVNpemUoKSA+IDEpCiAgICAgICAgIHJldHVybjsKIAogICAgIEF1ZGlvT2JqZWN0UHJvcGVy
dHlBZGRyZXNzIG11dGVBZGRyZXNzID0gewpAQCAtNDg2LDkgKzUxMSw5IEBAIHZvaWQgQXVkaW9T
ZXNzaW9uTWFjOjphZGRNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKiBvYnNl
cnZlcikKICAgICBBdWRpb09iamVjdEFkZFByb3BlcnR5TGlzdGVuZXIoZGVmYXVsdERldmljZSgp
LCAmbXV0ZUFkZHJlc3MsIGhhbmRsZU11dGVQcm9wZXJ0eUNoYW5nZSwgdGhpcyk7CiB9CiAKLXZv
aWQgQXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9i
c2VydmVyKiBvYnNlcnZlcikKK3ZvaWQgQXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVDb25maWd1cmF0
aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJiBvYnNlcnZlcikK
IHsKLSAgICBpZiAobV9vYnNlcnZlcnMuc2l6ZSgpID09IDEpIHsKKyAgICBpZiAobV9jb25maWd1
cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLmNvbXB1dGVTaXplKCkgPT0gMSkgewogICAgICAgICBBdWRp
b09iamVjdFByb3BlcnR5QWRkcmVzcyBtdXRlQWRkcmVzcyA9IHsKICAgICAgICAgICAgIGtBdWRp
b0RldmljZVByb3BlcnR5TXV0ZSwKICAgICAgICAgICAgIGtBdWRpb0RldmljZVByb3BlcnR5U2Nv
cGVPdXRwdXQsCkBAIC01MDMsNyArNTI4LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb25NYWM6OnJlbW92
ZU11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgICAg
ICBBdWRpb09iamVjdFJlbW92ZVByb3BlcnR5TGlzdGVuZXIoZGVmYXVsdERldmljZSgpLCAmbXV0
ZUFkZHJlc3MsIGhhbmRsZU11dGVQcm9wZXJ0eUNoYW5nZSwgdGhpcyk7CiAgICAgfQogCi0gICAg
bV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKKyAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VP
YnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKaW5k
ZXggMmMwOTkwNDVhN2Y0ZGZkOGM0ZDlhMTMxYzk5MDZkMTFiODhhN2Q0OC4uODczYjlhMWRkZmZk
OWM5MWU3ZTg2ZmRjOTQ1YjQwMWNhZTk3ZTFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCkBAIC05
Myw2ICs5MywxMSBAQCB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2
ZShib29sIGFjdGl2ZSwgU2V0QWN0aXZlQ29tcGxldGlvbiYmCiAgICAgY29tcGxldGlvbihtX2Fj
dGl2ZSk7CiB9CiAKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRpb25D
aGFuZ2VkKCkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjpDb25maWd1cmF0aW9uQ2hhbmdlZChjb25maWd1cmF0aW9uKCkpLCB7IH0pOworfQor
CiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVwdGlvbigpCiB7CiAg
ICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6QmVnaW5J
bnRlcnJ1cHRpb24oKSwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKaW5kZXggMzBlYjExOTU0NmExMTZh
MDJhN2EzYWZmODZjZWNjYzE4N2FkMTIzZS4uOGMxZGNlMjEwNjA0ZjQwODFmNTc0ZmZmYWMwNWFi
OGUyNTRjYjkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgog
ICAgIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJy
ZWRCdWZmZXJTaXplOyB9CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0
aXZlOyB9CiAKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAgdm9pZCBiZWdp
bkludGVycnVwdGlvbigpOwogICAgIHZvaWQgZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6TWF5UmVzdW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApp
bmRleCBhMjhiNjBiZjIxNGUzYmE3YjQ2ZDYyNTJkYjE3MDYxZDM3NDEyZDgxLi4wM2I2ZmZlN2I4
YTU5NTIwMzEwNDk5MGNkOGRlNzZiZWZhODZlYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyLmNwcApAQCAtNDcsMTEgKzQ3LDEzIEBAIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkKICAgICA6IG1fc2Vzc2lvbihB
dWRpb1Nlc3Npb246OmNyZWF0ZSgpKQogewogICAgIG1fc2Vzc2lvbi0+YWRkSW50ZXJydXB0aW9u
T2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc2Vzc2lvbi0+YWRkQ29uZmlndXJhdGlvbkNoYW5nZU9i
c2VydmVyKCp0aGlzKTsKIH0KIAogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkKIHsKICAgICBtX3Nlc3Npb24tPnJlbW92ZUlu
dGVycnVwdGlvbk9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3Nlc3Npb24tPnJlbW92ZUNvbmZpZ3Vy
YXRpb25DaGFuZ2VPYnNlcnZlcigqdGhpcyk7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyOjphZGRQcm94eShSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgcHJveHkpCkBA
IC0xODcsNiArMTg5LDI0IEBAIHZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpl
bmRBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24oQXVkaW9TZXNzaW9uOjpNCiAgICAgfQogfQogCit2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6aGFyZHdhcmVNdXRlZFN0YXRlRGlk
Q2hhbmdlKGNvbnN0IEF1ZGlvU2Vzc2lvbiopCit7CisgICAgZm9yIChhdXRvJiBwcm94eSA6IG1f
cHJveGllcykKKyAgICAgICAgcHJveHkuY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmJ1ZmZlclNpemVEaWRDaGFuZ2UoY29u
c3QgQXVkaW9TZXNzaW9uKiBzZXNzaW9uKQoreworICAgIGZvciAoYXV0byYgcHJveHkgOiBtX3By
b3hpZXMpCisgICAgICAgIHByb3h5LmNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzYW1wbGVSYXRlRGlkQ2hhbmdlKGNvbnN0
IEF1ZGlvU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBmb3IgKGF1dG8mIHByb3h5IDogbV9wcm94
aWVzKQorICAgICAgICBwcm94eS5jb25maWd1cmF0aW9uQ2hhbmdlZCgpOworfQorCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCmluZGV4IDI3ZjFkMTdiNjNhY2U3ZGZl
NDhmZjE4MjI5NGYxOGRlNjIyZWE0YWYuLjFmNTliOGExYTM1M2JmNTYxN2I3NDRiYTk1NGEzODgx
ZDNhNWYwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKQEAgLTM3LDcgKzM3LDgg
QEAgY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OwogCiBj
bGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIKLSAgICA6IHB1YmxpYyBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OkludGVycnVwdGlvbk9ic2VydmVyIHsKKyAgICA6IHByaXZhdGUgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpJbnRlcnJ1cHRpb25PYnNlcnZlcgorICAgICwgcHJpdmF0ZSBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyKCk7CkBAIC01OCw2ICs1OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgYmVn
aW5BdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24oKSBmaW5hbDsKICAgICB2b2lkIGVuZEF1ZGlvU2Vz
c2lvbkludGVycnVwdGlvbihXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok1heVJlc3VtZSkgZmluYWw7
CiAKKyAgICB2b2lkIGhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpB
dWRpb1Nlc3Npb24qKSBmaW5hbDsKKyAgICB2b2lkIGJ1ZmZlclNpemVEaWRDaGFuZ2UoY29uc3Qg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uKikgZmluYWw7CisgICAgdm9pZCBzYW1wbGVSYXRlRGlkQ2hh
bmdlKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbiopIGZpbmFsOworCiAgICAgVW5pcXVlUmVm
PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIFdlYWtIYXNoU2V0PFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5PiBtX3Byb3hpZXM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCmluZGV4
IDViM2M3YzE1YmZjYTE0NmVlOTZiMzg1NzEyMzc5NWMzMjU5OTRiNjUuLjEzMzk2Y2JjNWU2ZTgx
YWY3ODk3MjQ3MTdhNTdmM2Q1NDNkYWNjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTEyMiw2
ICsxMjIsMTYgQEAgYm9vbCBSZW1vdGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJu
YWwoYm9vbCBhY3RpdmUpCiAgICAgcmV0dXJuIHN1Y2NlZWRlZDsKIH0KIAordm9pZCBSZW1vdGVB
dWRpb1Nlc3Npb246OmFkZENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9u
Q2hhbmdlT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fY29uZmlndXJhdGlvbkNoYW5nZU9i
c2VydmVycy5hZGQob2JzZXJ2ZXIpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6cmVt
b3ZlQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZl
ciYgb2JzZXJ2ZXIpCit7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLnJlbW92
ZShvYnNlcnZlcik7Cit9CisKIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIFJlbW90ZUF1ZGlv
U2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAogewogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMTMx
LDYgKzE0MSwyNiBAQCBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBSZW1vdGVBdWRpb1Nlc3Np
b246OmNhdGVnb3J5KCkgY29uc3QKICNlbmRpZgogfQogCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
bjo6Y29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCit7CisgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdlZCA9ICFtX2NvbmZp
Z3VyYXRpb24gfHwgY29uZmlndXJhdGlvbi5pc011dGVkICE9ICgqbV9jb25maWd1cmF0aW9uKS5p
c011dGVkOworICAgIGJvb2wgYnVmZmVyU2l6ZUNoYW5nZWQgPSAhbV9jb25maWd1cmF0aW9uIHx8
IGNvbmZpZ3VyYXRpb24uYnVmZmVyU2l6ZSAhPSAoKm1fY29uZmlndXJhdGlvbikuYnVmZmVyU2l6
ZTsKKyAgICBib29sIHNhbXBsZVJhdGVDYWhuZ2VkID0gIW1fY29uZmlndXJhdGlvbiB8fCBjb25m
aWd1cmF0aW9uLnNhbXBsZVJhdGUgIT0gKCptX2NvbmZpZ3VyYXRpb24pLnNhbXBsZVJhdGU7CisK
KyAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworCisgICAgZm9y
IChhdXRvJiBvYnNlcnZlciA6IG1fY29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVycykgeworICAg
ICAgICBpZiAobXV0ZWRTdGF0ZUNoYW5nZWQpCisgICAgICAgICAgICBvYnNlcnZlci5oYXJkd2Fy
ZU11dGVkU3RhdGVEaWRDaGFuZ2UodGhpcyk7CisKKyAgICAgICAgaWYgKGJ1ZmZlclNpemVDaGFu
Z2VkKQorICAgICAgICAgICAgb2JzZXJ2ZXIuYnVmZmVyU2l6ZURpZENoYW5nZSh0aGlzKTsKKwor
ICAgICAgICBpZiAoc2FtcGxlUmF0ZUNhaG5nZWQpCisgICAgICAgICAgICBvYnNlcnZlci5zYW1w
bGVSYXRlRGlkQ2hhbmdlKHRoaXMpOworICAgIH0KK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
bi5oCmluZGV4IDllNmJjZWIwNmJlOTA0M2JlNmU2YzY4YWYwNjJjMGEzMTE1NTc5MDAuLjIwMzYx
OGZjZjRhOGRlZWMzZWJiNTc1YWVhMjQ5MGQ0NmUxNzk2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaApAQCAt
NjgsNiArNjgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBl
LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgc2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZShzaXplX3QpIGZpbmFsOwogICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRl
cm5hbChib29sKSBmaW5hbDsKKyAgICB2b2lkIGFkZENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZl
cihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlbW92ZUNvbmZpZ3Vy
YXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXImKTsKIAogICAg
IGNvbnN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24oKSBj
b25zdDsKICAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9u
KCk7CkBAIC04Niw2ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nl
c3M7CiAKKyAgICBXZWFrSGFzaFNldDxDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXI+IG1fY29u
ZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyczsKICAgICBDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeSB7
IENhdGVnb3J5VHlwZTo6Tm9uZSB9OwogICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBt
X3JvdXRlU2hhcmluZ1BvbGljeSB7IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVs
dCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbj4g
bV9jb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgppbmRleCBi
NGJlZDE2Mzk1NWIxMWY0OWNlMzg5ZWIxNmQ4MjUzMjAzZmEyYThjLi45ZjA4Y2UzZjMwZjlkMjAz
MWUwNjI0ZTUzYmNmODFjMjRmMzY3OWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdl
cy5pbgpAQCAtMjYsNiArMjYsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFV
RElPX1NFU1NJT04pCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZDb3Vu
dGVkIHsKKyAgICBDb25maWd1cmF0aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAgICAgQmVnaW5JbnRlcnJ1cHRp
b24oKQogICAgIEVuZEludGVycnVwdGlvbihXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok1heVJlc3Vt
ZSBmbGFncykKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAwMzY3MGNiYWJlYmFjZjgzMjY2NTFmODcyOGQ1N2NmOWExYTI3OTdlLi5iMTYwNDZk
MGNmOTI4ZWVkMDc3Yzg1ZjNlYmVkNWVjNDVhYzkyNDY1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDgtMDMg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbQ2F0YWxpbmFdW0dQ
VVBdIFNvbWUgQVBJIHRlc3RzIGZhaWwgYWZ0ZXIgR1BVIFByb2Nlc3MgZmVhdHVyZXMgYXJlIGVu
YWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
ODU4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5n
LmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemUoKSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZl
clNpemUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
QXVkaW9CdWZmZXJTaXplLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9BdWRpb0J1ZmZlclNpemUubW0KaW5kZXggMGFjMWQ1ZTBlN2E3MTRlMDJlMjA4Y2ZiNDBiZDVj
NjlkZjVmYTYzYi4uNTMzZGUxZWM0ZDZkYTQwMDVkOThhNzk4Y2U5NzZhNWQ5ZTAyMzQzOSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZl
clNpemUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRp
b0J1ZmZlclNpemUubW0KQEAgLTU2LDcgKzU2LDcgQEAgZG91YmxlIHdhaXRGb3JCdWZmZXJTaXpl
Q2hhbmdlKFdLV2ViVmlldyogd2ViVmlldywgZG91YmxlIG9sZFNpemUpCiAgICAgcmV0dXJuIDA7
CiB9CiAKLVRFU1QoV2ViS2l0LCBESVNBQkxFRF9BdWRpb0J1ZmZlclNpemUpCitURVNUKFdlYktp
dCwgQXVkaW9CdWZmZXJTaXplKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBjb250ZXh0
ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRC
dW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7Cg==
</data>
<flag name="review"
          id="457532"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434923</attachid>
            <date>2021-08-04 12:11:50 -0700</date>
            <delta_ts>2021-08-04 14:36:49 -0700</delta_ts>
            <desc>Revise the patch based on Jer&apos;s comments</desc>
            <filename>bug-228589-20210804121149.patch</filename>
            <type>text/plain</type>
            <size>25812</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZkYzcxMzMxNTI5NjQ2
MWJjYjE4ZWRjOTQyNTBmZTU0ZTRkOTY1MC4uODg4YzcyMGQ3YzljMTU4ZDM5ZDM2OTI5NTI3MTEz
ZTQ0MTM1YzgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTA4LTA0ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtHUFVQXSBT
b21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBlbmFibGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1ODkK
KworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgV2hlbiAiTWVkaWEg
aW4gR1BVIFByb2Nlc3MiIGlzIGVuYWJsZWQsIGBBdWRpb1Nlc3Npb25bSU9TfE1hY11gIHJ1bnMg
aW4KKyAgICAgICAgdGhlIEdQVSBwcm9jZXNzLiBgSFRNTE1lZGlhRWxlbWVudGAsIHdoaWNoIGlz
IGFuIG9ic2VydmVyIG9mIGF1ZGlvIHNlc3Npb24sCisgICAgICAgIHJ1bnMgaW4gYSBXZWJDb250
ZW50IHByb2Nlc3MuIEl0IGNhbm5vdCBnZXQgaXRzIEF1ZGlvU2Vzc2lvbidzIGNvbmZpZ3VyYXRp
b24KKyAgICAgICAgZGlyZWN0bHkuIFdlIG5lZWQgYSBtZWNoYW5pc20gdG8gInB1c2giIHRoZSBs
YXRlc3QgYXVkaW8gc2Vzc2lvbiBjb25maWd1cmF0aW9uCisgICAgICAgIGZyb20gdGhlIEdQVSBw
cm9jZXNzIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgVGhpcyBwYXRjaCBy
ZXBsYWNlcyB0aGUgYE11dGVkU3RhdGVPYnNlcnZlcmAgd2l0aCBhbiBhdWRpbyBzZXNzaW9uIGNv
bmZpZ3VyYXRpb24KKyAgICAgICAgY2hhbmdlIG9ic2VydmVyIGludGVyZmFjZSwgc28gdGhhdCBh
biBhdWRpbyBzZXNzaW9uIHdpbGwgbm90aWZ5IGl0cyBvYnNlcnZlcnMKKyAgICAgICAgYWZ0ZXIg
Y2hhbmdpbmcgaXRzIGNvbmZpZ3VyYXRpb25zLCBpbmNsdWRpbmcgYnVmZmVyIHNpemUsIG11dGVk
IHN0YXRlLCBzYW1wbGUgcmF0ZS4KKyAgICAgICAgQ3VycmVudGx5LCB0aGlzIG9ic2VydmVyIGlu
dGVyZmFjZSBpcyB1c2VkIG9uIG1hY09TIG9ubHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBG
aXggYW4gQVBJIHRlc3QgZmFpbHVyZS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppbml0aWFsaXplTWVk
aWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVk
aWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmhhcmR3YXJl
TXV0ZWRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjphZGRDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpyZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdl
T2JzZXJ2ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaDoKKyAgICAgICAgTW92
ZSBgbV9pbnRlcnJ1cHRpb25PYnNlcnZlcnNgIHRvIHRoaXMgY2xhc3MgYmVjYXVzZSBvbmx5IGBB
dWRpb1Nlc3Npb25JT1NgCisgICAgICAgIHN1cHBvcnRzIGludGVycnVwdGlvbiBvYnNlcnZlcnMu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZVNhbXBsZVJhdGVDaGFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpoYW5kbGVTYW1wbGVSYXRlQ2hhbmdlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlQnVmZmVyU2l6ZUNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRsZUJ1ZmZlclNpemVD
aGFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpzYW1wbGVS
YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbk1hYzo6c2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25NYWM6OmhhbmRs
ZU11dGVkU3RhdGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjph
ZGRDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uTWFjOjpyZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjphZGRNdXRlZFN0YXRlT2JzZXJ2ZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVNdXRlZFN0YXRlT2Jz
ZXJ2ZXIpOiBEZWxldGVkLgorCiAyMDIxLTA4LTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiBpcyBub3QgYWNxdWlyZWQgaW4gbmV0d29yayBw
cm9jZXNzIHdoZW4gb3BlbmluZyBhIFNRTGl0ZSBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMjUyZTQ1
OWRjZjJhYTk2ZjA3NWQzMDIyZTIyMTRmMzI2NzYzMmY2Li42MTM0ODZjM2I0NWYxYjM3YTJkZmU0
N2IxYjg2YWNjMjAwNGQzZjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTA4LTA0
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NhdGFsaW5hXVtH
UFVQXSBTb21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1cmVzIGFyZSBl
bmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjg1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgV2hlbiBh
biBhdWRpbyBzZXNzaW9uJ3MgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBsZXQgYFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5YAorICAgICAgICBpbiB0aGUgR1BVIHByb2Nlc3Mgc2VuZCB0aGUgbGF0ZXN0
IGF1ZGlvIHNlc3Npb24gY29uZmlndXJhdGlvbiB0byBgUmVtb3RlQXVkaW9TZXNzaW9uYAorICAg
ICAgICBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHRocm91Z2ggYW4gSVBDIG1lc3NhZ2UgKGBS
ZW1vdGVBdWRpb1Nlc3Npb246OkNvbmZpZ3VyYXRpb25DaGFuZ2VkYCkuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6CisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpiZWdpbkF1
ZGlvU2Vzc2lvbkludGVycnVwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcjo6ZW5kQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpoYXJkd2FyZU11dGVkU3Rh
dGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXI6OmJ1ZmZlclNpemVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNhbXBsZVJhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmNvbmZpZ3VyYXRpb25EaWRDaGFu
Z2UpOgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmFkZENvbmZp
Z3VyYXRpb25DaGFuZ2VPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvbjo6cmVtb3ZlQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluOgorCiAyMDIx
LTA4LTAyICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBd
IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSgpIGRvZXMgbm90IGNo
YW5nZSBpdHMgcHJlZmVycmVkQnVmZmVyU2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggMTE5ZGI0MDZiNzFmN2UzMWQzZWIyM2VkM2U0ZTJlNjEyZjNjNTNk
NC4uODk2MWUxYWNhNWJiZmU1ZTNiY2VhYjQzZDMxNjFiNGJlNDc3ZTdlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojppbml0aWFsaXplTWVkaWFTZXNzaW9uKCkKICAgICByZWdpc3Rlcldp
dGhEb2N1bWVudChkb2N1bWVudCk7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZP
Uk0oTUFDKQotICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmFkZE11dGVkU3RhdGVP
YnNlcnZlcih0aGlzKTsKKyAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5hZGRDb25m
aWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoKnRoaXMpOwogI2VuZGlmCiAKICAgICBtX21lZGlhU2Vz
c2lvbi0+Y2xpZW50V2lsbEJlZ2luQXV0b3BsYXlpbmcoKTsKQEAgLTUzMCw3ICs1MzAsNyBAQCBI
VE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxlbWVudCgpCiAgICAgdW5yZWdpc3RlcldpdGhE
b2N1bWVudChkb2N1bWVudCgpKTsKIAogI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9S
TShNQUMpCi0gICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucmVtb3ZlTXV0ZWRTdGF0
ZU9ic2VydmVyKHRoaXMpOworICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnJlbW92
ZUNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcigqdGhpcyk7CiAjZW5kaWYKIAogICAgIGlmICht
X2F1ZGlvVHJhY2tzKQpAQCAtMzgxMCw5ICszODEwLDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpzZXRNdXRlZChib29sIG11dGVkKQogfQogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBM
QVRGT1JNKE1BQykKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aGFyZHdhcmVNdXRlZFN0YXRlRGlk
Q2hhbmdlKEF1ZGlvU2Vzc2lvbiogc2Vzc2lvbikKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aGFy
ZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKGNvbnN0IEF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikKIHsK
LSAgICBpZiAoIXNlc3Npb24tPmlzTXV0ZWQoKSkKKyAgICBpZiAoIXNlc3Npb24uaXNNdXRlZCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIWhhc0F1ZGlvKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDcxOWM3YThlMDgyMmM3MDBlNWNhMWJjOTk4ZWMz
MjJjYmE5MTc1ZjQuLjExNzZlNjc0ZjZmMjU5YjFhMjllNTgxZWRjZTVhOGU4NmQ3MjBmY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMjgsNyArMTI4LDcgQEAg
Y2xhc3MgSFRNTE1lZGlhRWxlbWVudAogICAgICwgcHJpdmF0ZSBUZXh0VHJhY2tDbGllbnQKICAg
ICAsIHByaXZhdGUgVmlkZW9UcmFja0NsaWVudAogI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShNQUMpCi0gICAgLCBwcml2YXRlIEF1ZGlvU2Vzc2lvbjo6TXV0ZWRTdGF0ZU9ic2Vy
dmVyCisgICAgLCBwcml2YXRlIEF1ZGlvU2Vzc2lvbjo6Q29uZmlndXJhdGlvbkNoYW5nZU9ic2Vy
dmVyCiAjZW5kaWYKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgICwgcHJpdmF0ZSBD
RE1DbGllbnQKQEAgLTg4Miw3ICs4ODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFnZU11dGVk
U3RhdGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIAogI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShNQUMpCi0gICAgdm9pZCBoYXJkd2FyZU11dGVkU3RhdGVEaWRDaGFuZ2UoQXVkaW9T
ZXNzaW9uKikgZmluYWw7CisgICAgdm9pZCBoYXJkd2FyZU11dGVkU3RhdGVEaWRDaGFuZ2UoY29u
c3QgQXVkaW9TZXNzaW9uJikgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IDYwYTJhZWEzODkwNzk0M2YyZTFiZjNiZWQ5ZTJj
YjRjZTFjYTM2NWEuLmNmMzlhNmZlOTU0MTE0MDEyNTEwZmFjMjBjNzEyMjhiMDE5YWYyMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAt
MjAxLDYgKzIwMSwxNiBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6YXVkaW9PdXRwdXREZXZpY2VDaGFu
Z2VkKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIEF1ZGlvU2Vzc2lvbjo6YWRk
Q29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBdWRpb1Nlc3Npb246OnJlbW92
ZUNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRJ
c1BsYXlpbmdUb0JsdWV0b290aE92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8Ym9vbD4pCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9T
ZXNzaW9uLmgKaW5kZXggZWFmNzBlMjA5M2E0NGJjNTFkOTJlMDhlZjQwMDg1OWI4ODllMTBhOS4u
OTllOTZjODA0NjAyZTY1YWMwM2UyMGNkZGQyYjYyM2IyNjczNDc1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTkxLDE1ICs5MSwxNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCk7CiAKLSAgICBj
bGFzcyBNdXRlZFN0YXRlT2JzZXJ2ZXIgeworICAgIGNsYXNzIENvbmZpZ3VyYXRpb25DaGFuZ2VP
YnNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXI+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfk11dGVkU3RhdGVPYnNlcnZlcigp
ID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCB+Q29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVy
KCkgPSBkZWZhdWx0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBoYXJkd2FyZU11dGVkU3RhdGVE
aWRDaGFuZ2UoQXVkaW9TZXNzaW9uKikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgaGFyZHdh
cmVNdXRlZFN0YXRlRGlkQ2hhbmdlKGNvbnN0IEF1ZGlvU2Vzc2lvbiYpID0gMDsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGJ1ZmZlclNpemVEaWRDaGFuZ2UoY29uc3QgQXVkaW9TZXNzaW9uJikgeyB9
CisgICAgICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVSYXRlRGlkQ2hhbmdlKGNvbnN0IEF1ZGlvU2Vz
c2lvbiYpIHsgfQogICAgIH07CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2Vy
dmVyKE11dGVkU3RhdGVPYnNlcnZlciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVNdXRl
ZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKikgeyB9CisgICAgdmlydHVhbCB2b2lk
IGFkZENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXImKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVy
KENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlciYpOwogCiAgICAgdmlydHVhbCB2b2lkIGF1ZGlv
T3V0cHV0RGV2aWNlQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc1BsYXlpbmdUb0Js
dWV0b290aE92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8Ym9vbD4pOwpAQCAtMTM0LDExICsxMzYsNiBA
QCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChi
b29sKTsKIAotICAgIEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7Ci0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBXZWFrSGFzaFNldDxJbnRlcnJ1cHRpb25PYnNl
cnZlcj4gbV9pbnRlcnJ1cHRpb25PYnNlcnZlcnM7Ci0jZW5kaWYKLQogICAgIFdlYWtQdHI8QXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50PiBtX3JvdXRpbmdBcmJpdHJhdGlvbkNs
aWVudDsKICAgICBib29sIG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNlZCBvbmx5IGZvciB0ZXN0
aW5nLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVk
aW9TZXNzaW9uSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9T
ZXNzaW9uSU9TLmgKaW5kZXggZDM1MTNjMmYyNTQ4NThlYTc5OTliZjdhODk4ZDYxMmNiYmIwNjRi
OC4uZDVhMDliZGUwNzA4NGE1Njk1ZDRiMWE1NWQ1ZTRhMGQ5OWJiOTNjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaApAQCAt
NjYsNiArNjYsNyBAQCBwcml2YXRlOgogCiAgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUg
bV9jYXRlZ29yeU92ZXJyaWRlIHsgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsK
ICAgICBSZWY8V1RGOjpXb3JrUXVldWU+IG1fd29ya1F1ZXVlOworICAgIFdlYWtIYXNoU2V0PElu
dGVycnVwdGlvbk9ic2VydmVyPiBtX2ludGVycnVwdGlvbk9ic2VydmVyczsKICAgICBSZXRhaW5Q
dHI8V2ViSW50ZXJydXB0aW9uT2JzZXJ2ZXJIZWxwZXI+IG1faW50ZXJydXB0aW9uT2JzZXJ2ZXJI
ZWxwZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9TZXNzaW9uTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9TZXNzaW9uTWFjLmgKaW5kZXggMWFkOGY2MTdhYzIyMmM0NDI5OWZiYjVkNzIwNTQ2MzIz
NWIyMGVmOS4uZTExZWVmNDQyMDNjOTY2OWI0NzRhNmY2MDE2Mjk1ZTQxNjVjNDRhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMu
aApAQCAtNDQsNyArNDQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkQnVmZmVyU2l6ZU9ic2Vy
dmVySWZOZWVkZWQoKSBjb25zdDsKIAogICAgIHN0YXRpYyBPU1N0YXR1cyBoYW5kbGVTYW1wbGVS
YXRlQ2hhbmdlKEF1ZGlvT2JqZWN0SUQsIFVJbnQzMiwgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0
eUFkZHJlc3MqLCB2b2lkKiBpbkNsaWVudERhdGEpOworICAgIHZvaWQgaGFuZGxlU2FtcGxlUmF0
ZUNoYW5nZSgpIGNvbnN0OwogICAgIHN0YXRpYyBPU1N0YXR1cyBoYW5kbGVCdWZmZXJTaXplQ2hh
bmdlKEF1ZGlvT2JqZWN0SUQsIFVJbnQzMiwgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJl
c3MqLCB2b2lkKiBpbkNsaWVudERhdGEpOworICAgIHZvaWQgaGFuZGxlQnVmZmVyU2l6ZUNoYW5n
ZSgpIGNvbnN0OwogCiAgICAgLy8gQXVkaW9TZXNzaW9uCiAgICAgQ2F0ZWdvcnlUeXBlIGNhdGVn
b3J5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYXRlZ29yeTsgfQpAQCAtNjQsMTAgKzY2LDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCkgZmlu
YWw7CiAgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBoYW5kbGVNdXRl
ZFN0YXRlQ2hhbmdlKCkgZmluYWw7Ci0gICAgdm9pZCBhZGRNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0
ZWRTdGF0ZU9ic2VydmVyKikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVNdXRlZFN0YXRlT2JzZXJ2
ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKikgZmluYWw7CisgICAgdm9pZCBhZGRDb25maWd1cmF0aW9u
Q2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJikgZmluYWw7CisgICAg
dm9pZCByZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5n
ZU9ic2VydmVyJikgZmluYWw7CiAKICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbGFzdE11dGVk
U3RhdGU7CisgICAgbXV0YWJsZSBXZWFrSGFzaFNldDxDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2
ZXI+IG1fY29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyczsKICAgICBBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUg
fTsKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBib29sIG1fc2V0dXBBcmJp
dHJhdGlvbk9uZ29pbmcgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KaW5kZXggZTVlZWU5ODU0ZjFlNDUxMGJm
ODZiY2VjZTVhMjg1MzExOGFhN2M0Yi4uNzJiY2UxZTY0NWMzZDIzYWNjOWVlZmZkZGFlOGQ2YTM5
OThiOTQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvU2Vzc2lvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9TZXNzaW9uTWFjLm1tCkBAIC0xMjUsOSArMTI1LDIxIEBAIE9TU3RhdHVzIEF1ZGlvU2Vz
c2lvbk1hYzo6aGFuZGxlU2FtcGxlUmF0ZUNoYW5nZShBdWRpb09iamVjdElEIGRldmljZSwgVUlu
dDMyLCBjCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBzZXNzaW9uLT5tX3NhbXBsZVJh
dGUgPSBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KG5vbWluYWxTYW1wbGVSYXRlKTsKKworICAgIGNh
bGxPbk1haW5UaHJlYWQoW3Nlc3Npb25dIHsKKyAgICAgICAgc2Vzc2lvbi0+aGFuZGxlU2FtcGxl
UmF0ZUNoYW5nZSgpOworICAgIH0pOworCiAgICAgcmV0dXJuIG5vRXJyOwogfQogCit2b2lkIEF1
ZGlvU2Vzc2lvbk1hYzo6aGFuZGxlU2FtcGxlUmF0ZUNoYW5nZSgpIGNvbnN0Cit7CisgICAgbV9j
b25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLmZvckVhY2goW3RoaXNdKGF1dG8mIG9ic2VydmVy
KSB7CisgICAgICAgIG9ic2VydmVyLnNhbXBsZVJhdGVEaWRDaGFuZ2UoKnRoaXMpOworICAgIH0p
OworfQorCiB2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6YWRkQnVmZmVyU2l6ZU9ic2VydmVySWZOZWVk
ZWQoKSBjb25zdAogewogICAgIGlmIChtX2hhc0J1ZmZlclNpemVPYnNlcnZlcikKQEAgLTE2Myw5
ICsxNzUsMjEgQEAgT1NTdGF0dXMgQXVkaW9TZXNzaW9uTWFjOjpoYW5kbGVCdWZmZXJTaXplQ2hh
bmdlKEF1ZGlvT2JqZWN0SUQgZGV2aWNlLCBVSW50MzIsIGMKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKIAogICAgIHNlc3Npb24tPm1fYnVmZmVyU2l6ZSA9IGJ1ZmZlclNpemU7CisKKyAgICBjYWxs
T25NYWluVGhyZWFkKFtzZXNzaW9uXSB7CisgICAgICAgIHNlc3Npb24tPmhhbmRsZUJ1ZmZlclNp
emVDaGFuZ2UoKTsKKyAgICB9KTsKKwogICAgIHJldHVybiBub0VycjsKIH0KIAordm9pZCBBdWRp
b1Nlc3Npb25NYWM6OmhhbmRsZUJ1ZmZlclNpemVDaGFuZ2UoKSBjb25zdAoreworICAgIG1fY29u
ZmlndXJhdGlvbkNoYW5nZU9ic2VydmVycy5mb3JFYWNoKFt0aGlzXShhdXRvJiBvYnNlcnZlcikg
eworICAgICAgICBvYnNlcnZlci5idWZmZXJTaXplRGlkQ2hhbmdlKCp0aGlzKTsKKyAgICB9KTsK
K30KKwogdm9pZCBBdWRpb1Nlc3Npb25NYWM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCiB7
CiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCkBAIC0yNzIsNiArMjk2LDggQEAgZmxv
YXQgQXVkaW9TZXNzaW9uTWFjOjpzYW1wbGVSYXRlKCkgY29uc3QKICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhLCAiQXVkaW9TZXNzaW9uTWFjOjpzYW1wbGVSYXRlKCkgLSBBdWRp
b09iamVjdEdldFByb3BlcnR5RGF0YSgpIHJldHVybiBhbiBpbnZhbGlkIHNhbXBsZSByYXRlIik7
CiAgICAgICAgICAgICBtX3NhbXBsZVJhdGUgPSA0NDEwMDsKICAgICAgICAgfQorCisgICAgICAg
IGhhbmRsZVNhbXBsZVJhdGVDaGFuZ2UoKTsKICAgICB9CiAgICAgcmV0dXJuICptX3NhbXBsZVJh
dGU7CiB9CkBAIC00MDYsOCArNDMyLDEwIEBAIHZvaWQgQXVkaW9TZXNzaW9uTWFjOjpzZXRQcmVm
ZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogCiAgICAgcmVzdWx0ID0gQXVkaW9P
YmplY3RTZXRQcm9wZXJ0eURhdGEoZGVmYXVsdERldmljZSgpLCAmcHJlZmVycmVkQnVmZmVyU2l6
ZUFkZHJlc3MsIDAsIDAsIHNpemVvZihidWZmZXJTaXplT3V0KSwgKHZvaWQqKSZidWZmZXJTaXpl
T3V0KTsKIAotICAgIGlmICghcmVzdWx0KQorICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIG1f
YnVmZmVyU2l6ZSA9IGJ1ZmZlclNpemVPdXQ7CisgICAgICAgIGhhbmRsZUJ1ZmZlclNpemVDaGFu
Z2UoKTsKKyAgICB9CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgaWYgKHJlc3VsdCkKQEAgLTQ1
OSwxNyArNDg3LDE4IEBAIHZvaWQgQXVkaW9TZXNzaW9uTWFjOjpoYW5kbGVNdXRlZFN0YXRlQ2hh
bmdlKCkKICAgICBpZiAobV9sYXN0TXV0ZWRTdGF0ZSAmJiAqbV9sYXN0TXV0ZWRTdGF0ZSA9PSBp
c0N1cnJlbnRseU11dGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8qIG9ic2Vy
dmVyIDogbV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT5oYXJkd2FyZU11dGVkU3RhdGVE
aWRDaGFuZ2UodGhpcyk7Ci0KICAgICBtX2xhc3RNdXRlZFN0YXRlID0gaXNDdXJyZW50bHlNdXRl
ZDsKKworICAgIG1fY29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVycy5mb3JFYWNoKFt0aGlzXShh
dXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5oYXJkd2FyZU11dGVkU3RhdGVEaWRD
aGFuZ2UoKnRoaXMpOworICAgIH0pOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6YWRkTXV0
ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciogb2JzZXJ2ZXIpCit2b2lkIEF1ZGlv
U2Vzc2lvbk1hYzo6YWRkQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKENvbmZpZ3VyYXRpb25D
aGFuZ2VPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgbV9vYnNlcnZlcnMuYWRkKG9ic2VydmVy
KTsKKyAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKIAot
ICAgIGlmIChtX29ic2VydmVycy5zaXplKCkgPiAxKQorICAgIGlmIChtX2NvbmZpZ3VyYXRpb25D
aGFuZ2VPYnNlcnZlcnMuY29tcHV0ZVNpemUoKSA+IDEpCiAgICAgICAgIHJldHVybjsKIAogICAg
IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIG11dGVBZGRyZXNzID0gewpAQCAtNDg2LDkgKzUx
NSw5IEBAIHZvaWQgQXVkaW9TZXNzaW9uTWFjOjphZGRNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRT
dGF0ZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICBBdWRpb09iamVjdEFkZFByb3BlcnR5TGlzdGVu
ZXIoZGVmYXVsdERldmljZSgpLCAmbXV0ZUFkZHJlc3MsIGhhbmRsZU11dGVQcm9wZXJ0eUNoYW5n
ZSwgdGhpcyk7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uTWFjOjpyZW1vdmVNdXRlZFN0YXRlT2Jz
ZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKiBvYnNlcnZlcikKK3ZvaWQgQXVkaW9TZXNzaW9uTWFj
OjpyZW1vdmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9i
c2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBpZiAobV9vYnNlcnZlcnMuc2l6ZSgpID09IDEpIHsK
KyAgICBpZiAobV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLmNvbXB1dGVTaXplKCkgPT0g
MSkgewogICAgICAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBtdXRlQWRkcmVzcyA9IHsK
ICAgICAgICAgICAgIGtBdWRpb0RldmljZVByb3BlcnR5TXV0ZSwKICAgICAgICAgICAgIGtBdWRp
b0RldmljZVByb3BlcnR5U2NvcGVPdXRwdXQsCkBAIC01MDMsNyArNTMyLDcgQEAgdm9pZCBBdWRp
b1Nlc3Npb25NYWM6OnJlbW92ZU11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRlT2JzZXJ2ZXIq
IG9ic2VydmVyKQogICAgICAgICBBdWRpb09iamVjdFJlbW92ZVByb3BlcnR5TGlzdGVuZXIoZGVm
YXVsdERldmljZSgpLCAmbXV0ZUFkZHJlc3MsIGhhbmRsZU11dGVQcm9wZXJ0eUNoYW5nZSwgdGhp
cyk7CiAgICAgfQogCi0gICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKKyAgICBtX2Nv
bmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5jcHAKaW5kZXggMmMwOTkwNDVhN2Y0ZGZkOGM0ZDlhMTMxYzk5MDZkMTFiODhh
N2Q0OC4uODczYjlhMWRkZmZkOWM5MWU3ZTg2ZmRjOTQ1YjQwMWNhZTk3ZTFjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuY3BwCkBAIC05Myw2ICs5MywxMSBAQCB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojp0cnlUb1NldEFjdGl2ZShib29sIGFjdGl2ZSwgU2V0QWN0aXZlQ29tcGxldGlvbiYmCiAg
ICAgY29tcGxldGlvbihtX2FjdGl2ZSk7CiB9CiAKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uOjpDb25maWd1cmF0aW9uQ2hhbmdlZChjb25maWd1cmF0
aW9uKCkpLCB7IH0pOworfQorCiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbklu
dGVycnVwdGlvbigpCiB7CiAgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvU2Vzc2lvbjo6QmVnaW5JbnRlcnJ1cHRpb24oKSwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKaW5k
ZXggMzBlYjExOTU0NmExMTZhMDJhN2EzYWZmODZjZWNjYzE4N2FkMTIzZS4uOGMxZGNlMjEwNjA0
ZjQwODFmNTc0ZmZmYWMwNWFiOGUyNTRjYjkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKQEAgLTU3LDYg
KzU3LDcgQEAgcHVibGljOgogICAgIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9wcmVmZXJyZWRCdWZmZXJTaXplOyB9CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CiAKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KCk7CiAgICAgdm9pZCBiZWdpbkludGVycnVwdGlvbigpOwogICAgIHZvaWQgZW5kSW50ZXJydXB0
aW9uKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6TWF5UmVzdW1lKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyLmNwcAppbmRleCBhMjhiNjBiZjIxNGUzYmE3YjQ2ZDYyNTJkYjE3MDYxZDM3
NDEyZDgxLi5mMWVkNTc1ODlkMTEyMmU5NDk2NTQxOGYzZGViNmQ4ZGQ1MWJhMmY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtNDcsMTEgKzQ3LDEzIEBAIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkK
ICAgICA6IG1fc2Vzc2lvbihBdWRpb1Nlc3Npb246OmNyZWF0ZSgpKQogewogICAgIG1fc2Vzc2lv
bi0+YWRkSW50ZXJydXB0aW9uT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc2Vzc2lvbi0+YWRkQ29u
ZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKCp0aGlzKTsKIH0KIAogUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyOjp+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkKIHsKICAgICBt
X3Nlc3Npb24tPnJlbW92ZUludGVycnVwdGlvbk9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3Nlc3Np
b24tPnJlbW92ZUNvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcigqdGhpcyk7CiB9CiAKIHZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eShSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eSYgcHJveHkpCkBAIC0xNzMsMTggKzE3NSw0MCBAQCBib29sIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcjo6dHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKFJlbW90ZUF1ZGlvU2Vz
c2lvbgogCiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6YmVnaW5BdWRpb1Nl
c3Npb25JbnRlcnJ1cHRpb24oKQogewotICAgIGZvciAoYXV0byYgcHJveHkgOiBtX3Byb3hpZXMp
IHsKKyAgICBtX3Byb3hpZXMuZm9yRWFjaChbXShhdXRvJiBwcm94eSkgewogICAgICAgICBpZiAo
cHJveHkuaXNBY3RpdmUoKSkKICAgICAgICAgICAgIHByb3h5LmJlZ2luSW50ZXJydXB0aW9uKCk7
Ci0gICAgfQorICAgIH0pOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6ZW5kQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKEF1ZGlvU2Vzc2lvbjo6TWF5UmVzdW1lIG1h
eVJlc3VtZSkKIHsKLSAgICBmb3IgKGF1dG8mIHByb3h5IDogbV9wcm94aWVzKSB7CisgICAgbV9w
cm94aWVzLmZvckVhY2goW21heVJlc3VtZV0oYXV0byYgcHJveHkpIHsKICAgICAgICAgaWYgKHBy
b3h5LmlzQWN0aXZlKCkpCiAgICAgICAgICAgICBwcm94eS5lbmRJbnRlcnJ1cHRpb24obWF5UmVz
dW1lKTsKLSAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyOjpoYXJkd2FyZU11dGVkU3RhdGVEaWRDaGFuZ2UoY29uc3QgQXVkaW9TZXNzaW9uJiBz
ZXNzaW9uKQoreworICAgIGNvbmZpZ3VyYXRpb25EaWRDaGFuZ2Uoc2Vzc2lvbik7Cit9CisKK3Zv
aWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpidWZmZXJTaXplRGlkQ2hhbmdlKGNv
bnN0IEF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBjb25maWd1cmF0aW9uRGlkQ2hhbmdl
KHNlc3Npb24pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Ft
cGxlUmF0ZURpZENoYW5nZShjb25zdCBBdWRpb1Nlc3Npb24mIHNlc3Npb24pCit7CisgICAgY29u
ZmlndXJhdGlvbkRpZENoYW5nZShzZXNzaW9uKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXI6OmNvbmZpZ3VyYXRpb25EaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uJikKK3sKKyAgICBtX3Byb3hpZXMuZm9yRWFjaChbXShhdXRvJiBwcm94eSkgewor
ICAgICAgICBwcm94eS5jb25maWd1cmF0aW9uQ2hhbmdlZCgpOworICAgIH0pOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKaW5kZXggMjdmMWQxN2I2M2FjZTdkZmU0OGZmMTgy
Mjk0ZjE4ZGU2MjJlYTRhZi4uMzBjMTMxNGYzMjEwOTZmYWE3NzM4ZTQ5MTlmZDU0NDEwMjFmN2Qy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaApAQCAtMzcsNyArMzcsOCBAQCBjbGFz
cyBHUFVQcm9jZXNzOwogY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CiAKIGNsYXNzIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcgotICAgIDogcHVibGljIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6SW50ZXJydXB0aW9uT2JzZXJ2ZXIgeworICAgIDogcHJpdmF0ZSBXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OkludGVycnVwdGlvbk9ic2VydmVyCisgICAgLCBwcml2YXRlIFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6Q29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIoKTsKQEAgLTU4LDYgKzU5LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdpbkF1ZGlv
U2Vzc2lvbkludGVycnVwdGlvbigpIGZpbmFsOwogICAgIHZvaWQgZW5kQXVkaW9TZXNzaW9uSW50
ZXJydXB0aW9uKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6TWF5UmVzdW1lKSBmaW5hbDsKIAorICAg
IHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbiYpIGZpbmFsOworICAgIHZvaWQgYnVmZmVyU2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb24mKSBmaW5hbDsKKyAgICB2b2lkIHNhbXBsZVJhdGVEaWRDaGFuZ2UoY29u
c3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJikgZmluYWw7CisgICAgdm9pZCBjb25maWd1cmF0aW9u
RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbiYpOworCiAgICAgVW5pcXVlUmVm
PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIFdlYWtIYXNoU2V0PFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5PiBtX3Byb3hpZXM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCmluZGV4
IDViM2M3YzE1YmZjYTE0NmVlOTZiMzg1NzEyMzc5NWMzMjU5OTRiNjUuLjEzZjA2MjcxYjAzOTc0
YzQ3MzBjMTUxODQ4YzA4NTFiZGNlOTczYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTEyMiw2
ICsxMjIsMTYgQEAgYm9vbCBSZW1vdGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJu
YWwoYm9vbCBhY3RpdmUpCiAgICAgcmV0dXJuIHN1Y2NlZWRlZDsKIH0KIAordm9pZCBSZW1vdGVB
dWRpb1Nlc3Npb246OmFkZENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcihDb25maWd1cmF0aW9u
Q2hhbmdlT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fY29uZmlndXJhdGlvbkNoYW5nZU9i
c2VydmVycy5hZGQob2JzZXJ2ZXIpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6cmVt
b3ZlQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyKENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZl
ciYgb2JzZXJ2ZXIpCit7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLnJlbW92
ZShvYnNlcnZlcik7Cit9CisKIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIFJlbW90ZUF1ZGlv
U2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAogewogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMTMx
LDYgKzE0MSwyNiBAQCBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBSZW1vdGVBdWRpb1Nlc3Np
b246OmNhdGVnb3J5KCkgY29uc3QKICNlbmRpZgogfQogCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
bjo6Y29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCit7CisgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdlZCA9ICFtX2NvbmZp
Z3VyYXRpb24gfHwgY29uZmlndXJhdGlvbi5pc011dGVkICE9ICgqbV9jb25maWd1cmF0aW9uKS5p
c011dGVkOworICAgIGJvb2wgYnVmZmVyU2l6ZUNoYW5nZWQgPSAhbV9jb25maWd1cmF0aW9uIHx8
IGNvbmZpZ3VyYXRpb24uYnVmZmVyU2l6ZSAhPSAoKm1fY29uZmlndXJhdGlvbikuYnVmZmVyU2l6
ZTsKKyAgICBib29sIHNhbXBsZVJhdGVDYWhuZ2VkID0gIW1fY29uZmlndXJhdGlvbiB8fCBjb25m
aWd1cmF0aW9uLnNhbXBsZVJhdGUgIT0gKCptX2NvbmZpZ3VyYXRpb24pLnNhbXBsZVJhdGU7CisK
KyAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworCisgICAgbV9j
b25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzLmZvckVhY2goWyZdKGF1dG8mIG9ic2VydmVyKSB7
CisgICAgICAgIGlmIChtdXRlZFN0YXRlQ2hhbmdlZCkKKyAgICAgICAgICAgIG9ic2VydmVyLmhh
cmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZSgqdGhpcyk7CisKKyAgICAgICAgaWYgKGJ1ZmZlclNp
emVDaGFuZ2VkKQorICAgICAgICAgICAgb2JzZXJ2ZXIuYnVmZmVyU2l6ZURpZENoYW5nZSgqdGhp
cyk7CisKKyAgICAgICAgaWYgKHNhbXBsZVJhdGVDYWhuZ2VkKQorICAgICAgICAgICAgb2JzZXJ2
ZXIuc2FtcGxlUmF0ZURpZENoYW5nZSgqdGhpcyk7CisgICAgfSk7Cit9CisKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24uaAppbmRleCA5ZTZiY2ViMDZiZTkwNDNiZTZlNmM2OGFmMDYyYzBhMzExNTU3
OTAwLi4yMDM2MThmY2Y0YThkZWVjM2ViYjU3NWFlYTI0OTBkNDZlMTc5NjJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLmgKQEAgLTY4LDYgKzY4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENhdGVnb3J5KENh
dGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKICAgICB2b2lk
IHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKICAgICBib29sIHRyeVRvU2V0
QWN0aXZlSW50ZXJuYWwoYm9vbCkgZmluYWw7CisgICAgdm9pZCBhZGRDb25maWd1cmF0aW9uQ2hh
bmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyJik7CisgICAgdm9pZCByZW1v
dmVDb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXIoQ29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVy
Jik7CiAKICAgICBjb25zdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiBjb25maWd1
cmF0aW9uKCkgY29uc3Q7CiAgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYgY29u
ZmlndXJhdGlvbigpOwpAQCAtODYsNiArODgsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUHJvY2Vz
cyYgbV9wcm9jZXNzOwogCisgICAgV2Vha0hhc2hTZXQ8Q29uZmlndXJhdGlvbkNoYW5nZU9ic2Vy
dmVyPiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnM7CiAgICAgQ2F0ZWdvcnlUeXBlIG1f
Y2F0ZWdvcnkgeyBDYXRlZ29yeVR5cGU6Ok5vbmUgfTsKICAgICBXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xp
Y3k6OkRlZmF1bHQgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24+IG1fY29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMu
aW4KaW5kZXggYjRiZWQxNjM5NTViMTFmNDljZTM4OWViMTZkODI1MzIwM2ZhMmE4Yy4uOWYwOGNl
M2YzMGY5ZDIwMzFlMDYyNGU1M2JjZjgxYzI0ZjM2NzlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b24ubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIFVTRShBVURJT19TRVNTSU9OKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb24g
Tm90UmVmQ291bnRlZCB7CisgICAgQ29uZmlndXJhdGlvbkNoYW5nZWQoc3RydWN0IFdlYktpdDo6
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIEJlZ2lu
SW50ZXJydXB0aW9uKCkKICAgICBFbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpNYXlSZXN1bWUgZmxhZ3MpCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMDM2NzBjYmFiZWJhY2Y4MzI2NjUxZjg3MjhkNTdjZjlhMWEyNzk3
ZS4uYzE1NmYwNGRjMjA1NGE5N2RlY2IzNmEzOTIxZDNlZGZiZjBiODEzZCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIxLTA4LTA0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0Nh
dGFsaW5hXVtHUFVQXSBTb21lIEFQSSB0ZXN0cyBmYWlsIGFmdGVyIEdQVSBQcm9jZXNzIGZlYXR1
cmVzIGFyZSBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjg1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA4LTAyICBQZW5nIExpdSAg
PHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFJlbW90ZUF1ZGlvU2Vzc2lv
bjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSgpIGRvZXMgbm90IGNoYW5nZSBpdHMgcHJlZmVycmVk
QnVmZmVyU2l6ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9BdWRpb0J1ZmZlclNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbQppbmRleCAwYWMxZDVlMGU3YTcxNGUwMmUyMDhjZmI0
MGJkNWM2OWRmNWZhNjNiLi41MzNkZTFlYzRkNmRhNDAwNWQ5OGE3OThjZTk3NmE1ZDllMDIzNDM5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlv
QnVmZmVyU2l6ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0F1ZGlvQnVmZmVyU2l6ZS5tbQpAQCAtNTYsNyArNTYsNyBAQCBkb3VibGUgd2FpdEZvckJ1ZmZl
clNpemVDaGFuZ2UoV0tXZWJWaWV3KiB3ZWJWaWV3LCBkb3VibGUgb2xkU2l6ZSkKICAgICByZXR1
cm4gMDsKIH0KIAotVEVTVChXZWJLaXQsIERJU0FCTEVEX0F1ZGlvQnVmZmVyU2l6ZSkKK1RFU1Qo
V2ViS2l0LCBBdWRpb0J1ZmZlclNpemUpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIGNv
bnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>