<?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>211720</bug_id>
          
          <creation_ts>2020-05-11 04:22:06 -0700</creation_ts>
          <short_desc>Allow WebAudioBufferList to dynamically change its number of frames</short_desc>
          <delta_ts>2020-05-13 11:02:14 -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>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jacob_uphoff</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651238</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 04:22:06 -0700</bug_when>
    <thetext>Allow WebAudioBufferList to dynamically change its number of frames</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651250</commentid>
    <comment_count>1</comment_count>
      <attachid>399014</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 06:17:48 -0700</bug_when>
    <thetext>Created attachment 399014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651293</commentid>
    <comment_count>2</comment_count>
      <attachid>399014</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-11 09:36:18 -0700</bug_when>
    <thetext>Comment on attachment 399014
Patch

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

&gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp:36
&gt; +#if USE(AVFOUNDATION)
&gt; +#include &quot;WebAudioBufferList.h&quot;
&gt; +#include &lt;CoreAudio/CoreAudioTypes.h&gt;
&gt; +#endif

Do we really need to include these here in the cross platform file?

&gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSource.h:65
&gt;  #if USE(AVFOUNDATION)
&gt; +    std::unique_ptr&lt;WebAudioBufferList&gt; m_audioBuffer;
&gt;      size_t m_numberOfFrames { 0 };
&gt;  #endif

This seems like a mistake. It&apos;s probably time to actually subclass for Cocoa rather than just implementing parts of the class in MediaStreamAudioSourceCocoa.cpp

&gt; Source/WebCore/platform/audio/cocoa/WebAudioBufferList.cpp:71
&gt; +    uint32_t bufferCount = m_canonicalList-&gt;mNumberBuffers;
&gt; +    if (!bufferCount)
&gt; +        return;
&gt;  
&gt; -    size_t bytesPerBuffer = sampleCount * channelCount * format.bytesPerFrame();
&gt; -    m_flatBuffer.reserveInitialCapacity(bufferCount * bytesPerBuffer);
&gt; +    size_t bytesPerBuffer = sampleCount * m_channelCount * m_bytesPerFrame;
&gt; +    m_flatBuffer.reserveCapacity(bufferCount * bytesPerBuffer);
&gt;      auto data = m_flatBuffer.data();

Can this return early if nothing has changed so we don&apos;t call reset() needlessly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651320</commentid>
    <comment_count>3</comment_count>
      <attachid>399027</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 10:50:18 -0700</bug_when>
    <thetext>Created attachment 399027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651321</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 10:51:45 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #2)
&gt; Comment on attachment 399014 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399014&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp:36
&gt; &gt; +#if USE(AVFOUNDATION)
&gt; &gt; +#include &quot;WebAudioBufferList.h&quot;
&gt; &gt; +#include &lt;CoreAudio/CoreAudioTypes.h&gt;
&gt; &gt; +#endif
&gt; 
&gt; Do we really need to include these here in the cross platform file?

Fixed it by using PlatformAudioData.

&gt; &gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSource.h:65
&gt; &gt;  #if USE(AVFOUNDATION)
&gt; &gt; +    std::unique_ptr&lt;WebAudioBufferList&gt; m_audioBuffer;
&gt; &gt;      size_t m_numberOfFrames { 0 };
&gt; &gt;  #endif
&gt; 
&gt; This seems like a mistake. It&apos;s probably time to actually subclass for Cocoa
&gt; rather than just implementing parts of the class in
&gt; MediaStreamAudioSourceCocoa.cpp

I made a try at keeping it like it is but, yes maybe we should have a cocoa specialisation.

&gt; &gt; Source/WebCore/platform/audio/cocoa/WebAudioBufferList.cpp:71
&gt; &gt; +    uint32_t bufferCount = m_canonicalList-&gt;mNumberBuffers;
&gt; &gt; +    if (!bufferCount)
&gt; &gt; +        return;
&gt; &gt;  
&gt; &gt; -    size_t bytesPerBuffer = sampleCount * channelCount * format.bytesPerFrame();
&gt; &gt; -    m_flatBuffer.reserveInitialCapacity(bufferCount * bytesPerBuffer);
&gt; &gt; +    size_t bytesPerBuffer = sampleCount * m_channelCount * m_bytesPerFrame;
&gt; &gt; +    m_flatBuffer.reserveCapacity(bufferCount * bytesPerBuffer);
&gt; &gt;      auto data = m_flatBuffer.data();
&gt; 
&gt; Can this return early if nothing has changed so we don&apos;t call reset()
&gt; needlessly?

Added an if check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651332</commentid>
    <comment_count>5</comment_count>
      <attachid>399033</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 11:18:35 -0700</bug_when>
    <thetext>Created attachment 399033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651773</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-12 09:45:36 -0700</bug_when>
    <thetext>Committed r261557: &lt;https://trac.webkit.org/changeset/261557&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399033.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651776</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-12 09:46:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/63140841&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651821</commentid>
    <comment_count>8</comment_count>
    <who name="Jacob Uphoff">jacob_uphoff</who>
    <bug_when>2020-05-12 11:23:43 -0700</bug_when>
    <thetext>Reverted r261557 for reason:

This commit caused testing to exit early due to too many crashes on macOS Catalina Asan

Committed r261566: &lt;https://trac.webkit.org/changeset/261566&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652272</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-13 10:24:45 -0700</bug_when>
    <thetext>ASAN issue is a false positive.
We preallocate a Vector with reserveCapacity and write within the bounds of the allocated buffer, but past the end of the Vector (which is equal to begin) since the vector size is zero.
We cannot use reserveCapacity here since it is calling asanSetInitialBufferSizeTo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652276</commentid>
    <comment_count>10</comment_count>
      <attachid>399277</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-13 10:34:47 -0700</bug_when>
    <thetext>Created attachment 399277
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652278</commentid>
    <comment_count>11</comment_count>
      <attachid>399278</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-13 10:35:46 -0700</bug_when>
    <thetext>Created attachment 399278
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652279</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-13 10:38:39 -0700</bug_when>
    <thetext>&gt; We cannot use reserveCapacity here since it is calling
&gt; asanSetInitialBufferSizeTo.

I switched to resize() which is not that much expensive and will make sure we can write on the whole allocated buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652283</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-13 11:02:13 -0700</bug_when>
    <thetext>Committed r261626: &lt;https://trac.webkit.org/changeset/261626&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399278.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399014</attachid>
            <date>2020-05-11 06:17:48 -0700</date>
            <delta_ts>2020-05-11 10:50:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211720-20200511151746.patch</filename>
            <type>text/plain</type>
            <size>13142</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc4ODBlNGRlZmZkN2Yy
MTVjMDI3YThhNzhhY2EzOTQ4ZTJjNzljYy4uYzM1NDFlNTU3ZTIzMjYwMTY0ODBhMDdlMzJhYTBi
Y2Q5ZDA2OTk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBXZWJBdWRpb0J1
ZmZlckxpc3QgdG8gZHluYW1pY2FsbHkgY2hhbmdlIGl0cyBudW1iZXIgb2YgZnJhbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3MjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzb21ldGltZXMg
Y3JlYXRlIFdlYkF1ZGlvQnVmZmVyTGlzdCBvbiB0aGUgc3RhY2sgd2hpY2ggdHJpZ2dlcnMgYWxs
b2NhdGlvbiBvZiBzZXZlcmFsIHZlY3RvcnMuCisgICAgICAgIEluc3RlYWQgb2YgZG9pbmcgdGhh
dCBmb3IgZXZlcnkgYXVkaW8gc2FtcGxlIGNodW5rLCB3ZSBzaG91bGQgYWxsb2NhdGUgdGhlIFdl
YkF1ZGlvQnVmZmVyTGlzdCBhbmQgcmVzaXplIGl0IGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgRm9y
IHRoYXQgcHVycG9zZSwgd2UgaW50cm9kdWNlIFdlYkF1ZGlvQnVmZmVyTGlzdDo6dXBkYXRlV2l0
aE51bWJlck9mRnJhbWVzIGFuZCB1c2UgaXQgaW4gdHdvIHBsYWNlczoKKyAgICAgICAgLSBXaGVu
IGNyZWF0aW5nIGFuIGF1ZGlvIHRyYWNrIGludG8gV2ViQXVkaW8uCisgICAgICAgIC0gV2hlbiBy
ZWNlaXZpbmcgYXVkaW8gY2h1bmtzIGZyb20gYW5vdGhlciBwcm9jZXNzLgorICAgICAgICBDb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2U6On5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
dHJlYW1EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlvU291
cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1
ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6
OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxp
c3Q6OnVwZGF0ZVdpdGhOdW1iZXJPZkZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRp
b0J1ZmZlckxpc3Q6OmNoYW5uZWxDb3VudCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0Lmg6CisKIDIwMjAtMDUtMTEgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVk
aWFTb3VyY2UgdmlkZW8gc2FtcGxlIG9ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5ZTJkZTk2MjJmNjVh
ZjQwNzcxMjc5NTVjOWQ2YWEyNzIyNDE1YzUuLjY3NTZmNzQ4ODc4MjEyZDZmYzJjYTc0Nzg0MGVk
ZTZjOGUzMWUxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDUtMTEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IFdlYkF1ZGlvQnVm
ZmVyTGlzdCB0byBkeW5hbWljYWxseSBjaGFuZ2UgaXRzIG51bWJlciBvZiBmcmFtZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTcyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmg6CisKIDIwMjAtMDUtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVkaWFTb3VyY2Ug
dmlkZW8gc2FtcGxlIG9ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAppbmRleCBmYzhhZTY2Y2I1
MzJkZmI5MDMzODlkZjQyYzNjMGFkZjI2ODUzZTQ3Li5hZDY1ODUyMDUzZTBhZThmYzg5MDY4Njkz
YjBlY2Q2ZmUzZWJlMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKQEAgLTI5LDcgKzI5LDExIEBA
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
Ci0jaW5jbHVkZSA8d3RmL1VVSUQuaD4KKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisjaW5jbHVk
ZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5
cGVzLmg+CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw2ICs0MywxMCBA
QCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlKGZsb2F0IHNh
bXBsZVJhdGUpCiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRl
KTsKIH0KIAorTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6fk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2Uo
KQoreworfQorCiBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgdGhpcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKaW5kZXggMTY3MjY4MTdkYjM3MzU0YjgxMzk1YzQzNTYz
MDM2Yzg0Yzg3MTA5ZC4uMzI1ZDNmMzlkZjFkMWM0MzEzNWQ1ZDYyMTQ0Njk2ZWNkY2JhNDJhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1
ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmgKQEAgLTM2LDEyICszNiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEF1ZGlvQnVzOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
czsKK2NsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKIAogY2xhc3MgTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U+IGNyZWF0ZShmbG9hdCBzYW1wbGVSYXRl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UgeyBzYW1wbGVS
YXRlIH0pOyB9CiAKLSAgICB+TWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpID0gZGVmYXVsdDsKKyAg
ICB+TWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7CiAgICAgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsOwpAQCAtNTksNiArNjAsNyBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBtX2RldmljZUlkOwogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYXVkaW9CdWZmZXI7CiAgICAg
c2l6ZV90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2VDb2NvYS5jcHAKaW5kZXggN2IxOWFmYjM3MjU2YmMyNGI0ZDg1ZjlhNzdlZjEwYjAxMDc2
ZmRlOS4uZmU5Y2NhYzI0Y2I1NDBhMzRkZWM0MmQ1ODE0ODZkNjUzYWE2NmM1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNDEsNyArNDEsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
UEFMOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uIHN0cmVhbURlc2NyaXB0aW9uKHNpemVfdCBzYW1wbGVSYXRlLCBzaXpl
X3QgY2hhbm5lbENvdW50KQorc3RhdGljIGlubGluZSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24g
c3RyZWFtRGVzY3JpcHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQp
CiB7CiAgICAgYm9vbCBpc0Zsb2F0ID0gdHJ1ZTsKICAgICBib29sIGlzQmlnRW5kaWFuID0gZmFs
c2U7CkBAIC03NSwxNSArNzUsMTYgQEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25z
dW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgIGF1dG8g
bWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpOwogICAgIG1fbnVtYmVyT2ZG
cmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7CiAKLSAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24gbmV3RGVzY3JpcHRpb24gPSBzdHJlYW1EZXNjcmlwdGlvbihtX2N1cnJlbnRTZXR0aW5ncy5z
YW1wbGVSYXRlKCksIGJ1cy5udW1iZXJPZkNoYW5uZWxzKCkpOwotCi0gICAgLy8gRklYTUU6IFdl
IHNob3VsZCBkbyB0aGUgbWVtb3J5IGFsbG9jYXRpb24gb25jZSBpbiBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlIGFuZCByZXNpemUgaXQgYWNjb3JkaW5nIG51bWJlck9mRnJhbWVzLgotICAgIFdlYkF1
ZGlvQnVmZmVyTGlzdCBhdWRpb0J1ZmZlckxpc3QgeyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24o
bmV3RGVzY3JpcHRpb24pLCBXVEY6OnNhZmVDYXN0PHVpbnQzMl90PihudW1iZXJPZkZyYW1lcykg
fTsKKyAgICBhdXRvIGRlc2NyaXB0aW9uID0gc3RyZWFtRGVzY3JpcHRpb24obV9jdXJyZW50U2V0
dGluZ3Muc2FtcGxlUmF0ZSgpLCBidXMubnVtYmVyT2ZDaGFubmVscygpKTsKKyAgICBpZiAoIW1f
YXVkaW9CdWZmZXIgfHwgbV9hdWRpb0J1ZmZlci0+Y2hhbm5lbENvdW50KCkgIT0gYnVzLm51bWJl
ck9mQ2hhbm5lbHMoKSkKKyAgICAgICAgbV9hdWRpb0J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVk
aW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgV1RGOjpzYWZlQ2FzdDx1aW50MzJfdD4obnVtYmVy
T2ZGcmFtZXMpKTsKKyAgICBlbHNlCisgICAgICAgIG1fYXVkaW9CdWZmZXItPnNldFNhbXBsZUNv
dW50KG51bWJlck9mRnJhbWVzKTsKIAogICAgIGZvciAoc2l6ZV90IGNwdHIgPSAwOyBjcHRyIDwg
YnVzLm51bWJlck9mQ2hhbm5lbHMoKTsgKytjcHRyKQotICAgICAgICBjb3B5Q2hhbm5lbERhdGEo
KmJ1cy5jaGFubmVsKGNwdHIpLCAqYXVkaW9CdWZmZXJMaXN0LmJ1ZmZlcihjcHRyKSwgbnVtYmVy
T2ZGcmFtZXMsIG11dGVkKCkpOworICAgICAgICBjb3B5Q2hhbm5lbERhdGEoKmJ1cy5jaGFubmVs
KGNwdHIpLCAqbV9hdWRpb0J1ZmZlci0+YnVmZmVyKGNwdHIpLCBudW1iZXJPZkZyYW1lcywgbXV0
ZWQoKSk7CiAKLSAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUobWVkaWFUaW1lLCBhdWRpb0J1ZmZl
ckxpc3QsIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihuZXdEZXNjcmlwdGlvbiksIG51bWJlck9m
RnJhbWVzKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUobWVkaWFUaW1lLCAqbV9hdWRpb0J1
ZmZlciwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
V2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKaW5kZXggYjI2ZDUxZGQyMjNlNDhmODc5YjI2MWQw
MzE5Y2UwYjAzN2ZmYjk3NC4uNDc2YTEyYzRjNThjYWQ5YTI0NzFhZTk1NWEzMWQ0ODE2ZTBlYTM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVk
aW9CdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCkBAIC0zMywxMSArMzMsMTIgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogV2ViQXVkaW9CdWZmZXJMaXN0OjpXZWJB
dWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQpCisg
ICAgOiBtX2J5dGVzUGVyRnJhbWUoZm9ybWF0LmJ5dGVzUGVyRnJhbWUoKSkKKyAgICAsIG1fY2hh
bm5lbENvdW50KGZvcm1hdC5udW1iZXJPZkludGVybGVhdmVkQ2hhbm5lbHMoKSkKIHsKICAgICAv
LyBBdWRpb0J1ZmZlckxpc3QgaXMgYSB2YXJpYWJsZS1sZW5ndGggc3RydWN0LCBzbyBjcmVhdGUg
b24gdGhlIGhlYXAgd2l0aCBhIGdlbmVyaWMgbmV3KCkgb3BlcmF0b3IKICAgICAvLyB3aXRoIGEg
Y3VzdG9tIHNpemUsIGFuZCBpbml0aWFsaXplIHRoZSBzdHJ1Y3QgbWFudWFsbHkuCiAgICAgdWlu
dDMyX3QgYnVmZmVyQ291bnQgPSBmb3JtYXQubnVtYmVyT2ZDaGFubmVsU3RyZWFtcygpOwotICAg
IHVpbnQzMl90IGNoYW5uZWxDb3VudCA9IGZvcm1hdC5udW1iZXJPZkludGVybGVhdmVkQ2hhbm5l
bHMoKTsKIAogICAgIHVpbnQ2NF90IGJ1ZmZlckxpc3RTaXplID0gb2Zmc2V0b2YoQXVkaW9CdWZm
ZXJMaXN0LCBtQnVmZmVycykgKyAoc2l6ZW9mKEF1ZGlvQnVmZmVyKSAqIHN0ZDo6bWF4KDFVLCBi
dWZmZXJDb3VudCkpOwogICAgIEFTU0VSVChidWZmZXJMaXN0U2l6ZSA8PSBTSVpFX01BWCk7CkBA
IC00Nyw3ICs0OCw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNv
bnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQogICAgIG1lbXNldChtX2Nhbm9u
aWNhbExpc3QuZ2V0KCksIDAsIG1fbGlzdEJ1ZmZlclNpemUpOwogICAgIG1fY2Fub25pY2FsTGlz
dC0+bU51bWJlckJ1ZmZlcnMgPSBidWZmZXJDb3VudDsKICAgICBmb3IgKHVpbnQzMl90IGJ1ZmZl
ciA9IDA7IGJ1ZmZlciA8IGJ1ZmZlckNvdW50OyArK2J1ZmZlcikKLSAgICAgICAgbV9jYW5vbmlj
YWxMaXN0LT5tQnVmZmVyc1tidWZmZXJdLm1OdW1iZXJDaGFubmVscyA9IGNoYW5uZWxDb3VudDsK
KyAgICAgICAgbV9jYW5vbmljYWxMaXN0LT5tQnVmZmVyc1tidWZmZXJdLm1OdW1iZXJDaGFubmVs
cyA9IG1fY2hhbm5lbENvdW50OwogCiAgICAgcmVzZXQoKTsKIH0KQEAgLTU1LDE0ICs1NiwxOCBA
QCBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGZvcm1hdCkKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZm
ZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCB1aW50MzJfdCBz
YW1wbGVDb3VudCkKICAgICA6IFdlYkF1ZGlvQnVmZmVyTGlzdChmb3JtYXQpCiB7Ci0gICAgaWYg
KCFzYW1wbGVDb3VudCkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChzYW1wbGVDb3VudCkKKyAg
ICAgICAgc2V0U2FtcGxlQ291bnQoc2FtcGxlQ291bnQpOworfQogCi0gICAgdWludDMyX3QgYnVm
ZmVyQ291bnQgPSBmb3JtYXQubnVtYmVyT2ZDaGFubmVsU3RyZWFtcygpOwotICAgIHVpbnQzMl90
IGNoYW5uZWxDb3VudCA9IGZvcm1hdC5udW1iZXJPZkludGVybGVhdmVkQ2hhbm5lbHMoKTsKK3Zv
aWQgV2ViQXVkaW9CdWZmZXJMaXN0OjpzZXRTYW1wbGVDb3VudCh1aW50MzJfdCBzYW1wbGVDb3Vu
dCkKK3sKKyAgICB1aW50MzJfdCBidWZmZXJDb3VudCA9IG1fY2Fub25pY2FsTGlzdC0+bU51bWJl
ckJ1ZmZlcnM7CisgICAgaWYgKCFidWZmZXJDb3VudCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAg
c2l6ZV90IGJ5dGVzUGVyQnVmZmVyID0gc2FtcGxlQ291bnQgKiBjaGFubmVsQ291bnQgKiBmb3Jt
YXQuYnl0ZXNQZXJGcmFtZSgpOwotICAgIG1fZmxhdEJ1ZmZlci5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGJ1ZmZlckNvdW50ICogYnl0ZXNQZXJCdWZmZXIpOworICAgIHNpemVfdCBieXRlc1BlckJ1
ZmZlciA9IHNhbXBsZUNvdW50ICogbV9jaGFubmVsQ291bnQgKiBtX2J5dGVzUGVyRnJhbWU7Cisg
ICAgbV9mbGF0QnVmZmVyLnJlc2VydmVDYXBhY2l0eShidWZmZXJDb3VudCAqIGJ5dGVzUGVyQnVm
ZmVyKTsKICAgICBhdXRvIGRhdGEgPSBtX2ZsYXRCdWZmZXIuZGF0YSgpOwogCiAgICAgZm9yICh1
aW50MzJfdCBidWZmZXIgPSAwOyBidWZmZXIgPCBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZm
ZXJzOyArK2J1ZmZlcikgewpAQCAtNzcsNyArODIsNiBAQCBXZWJBdWRpb0J1ZmZlckxpc3Q6Oldl
YkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwg
dQogV2ViQXVkaW9CdWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikK
ICAgICA6IFdlYkF1ZGlvQnVmZmVyTGlzdChmb3JtYXQpCiB7Ci0KICAgICBpZiAoIXNhbXBsZUJ1
ZmZlcikKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCmluZGV4IDhhN2U3YTAzYWMz
M2E0ZTU1YzQzYzMxYWVjNjM3YjE4OWNiMWM3ZWIuLjQxMzZiN2ViZDdiZGNlMWM5NzY4MzdmNzdh
NGJjNjY0ZGM3OTNkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00NiwxMSArNDYsMTMgQEAgcHVi
bGljOgogICAgIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBDTVNhbXBsZUJ1ZmZlclJlZik7CiAKICAgICB2b2lkIHJlc2V0KCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRTYW1wbGVDb3VudCh1aW50MzJfdCk7CiAKICAgICBBdWRpb0J1ZmZl
ckxpc3QqIGxpc3QoKSBjb25zdCB7IHJldHVybiBtX2xpc3QuZ2V0KCk7IH0KICAgICBvcGVyYXRv
ciBBdWRpb0J1ZmZlckxpc3QmKCkgY29uc3QgeyByZXR1cm4gKm1fbGlzdDsgfQogCiAgICAgdWlu
dDMyX3QgYnVmZmVyQ291bnQoKSBjb25zdDsKKyAgICB1aW50MzJfdCBjaGFubmVsQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX2NoYW5uZWxDb3VudDsgfQogICAgIEF1ZGlvQnVmZmVyKiBidWZmZXIo
dWludDMyX3QgaW5kZXgpIGNvbnN0OwogICAgIFdURjo6SXRlcmF0b3JSYW5nZTxBdWRpb0J1ZmZl
cio+IGJ1ZmZlcnMoKSBjb25zdDsKIApAQCAtNTgsNiArNjAsOCBAQCBwcml2YXRlOgogICAgIEtp
bmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIEtpbmQ6OldlYkF1ZGlvQnVmZmVyTGlzdDsgfQogCiAg
ICAgc2l6ZV90IG1fbGlzdEJ1ZmZlclNpemUgeyAwIH07CisgICAgdWludDMyX3QgbV9ieXRlc1Bl
ckZyYW1lIHsgMCB9OworICAgIHVpbnQzMl90IG1fY2hhbm5lbENvdW50IHsgMCB9OwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0J1ZmZlckxpc3Q+IG1fY2Fub25pY2FsTGlzdDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9CdWZmZXJMaXN0PiBtX2xpc3Q7CiAgICAgUmV0YWluUHRyPENNQmxv
Y2tCdWZmZXJSZWY+IG1fYmxvY2tCdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRl
eCBjYmMzZGQ1OWMzZmU3MDA5NDJjNDYxNTlkMzM4MTNkYjRmMWQzZmI0Li40ZTU5ZjVkOWEwODcw
YjA3OGJhMDhjYzBhMDdmZTk3MzgxY2E2MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAK
QEAgLTEzOCwxNyArMTM4LDE3IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJl
bW90ZUF1ZGlvOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuCiAgICAgc3RvcmFn
ZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBzdG9yYWdlLnNldFJl
YWRPbmx5KHRydWUpOwogICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJM
aXN0PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogfQogCiB2b2lkIFJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhbGxvY2F0ZSB0
aGlzIGJ1ZmZlciBvbmNlIGFuZCByZXNpemUgaXQgYXMgbmVlZGVkLgotICAgIFdlYkF1ZGlvQnVm
ZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1f
YnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7CiAKICAgICBtX3JpbmdCdWZm
ZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7Ci0gICAgbV9y
aW5nQnVmZmVyLT5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50
aW1lVmFsdWUoKSk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChtX2J1ZmZlci0+bGlzdCgpLCBu
dW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CiAKLSAgICBtX3NvdXJjZS0+cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwgbnVt
YmVyT2ZGcmFtZXMpOworICAgIG1fc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUo
dGltZSwgKm1fYnVmZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXggNjViYTU2NDJhODZiMjY4NDY3NTM3YThjOTdkYjk5
ZThmN2M5MjJlMC4uNTg1Zjc3ZThlNzJlNTdiNmE3N2Q3YjcxOTE2MjM3MmQxYjM0YjVhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTaGFyZWRN
ZW1vcnkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJB
dWRpb0J1ZmZlckxpc3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9Xb3JrUXVldWUuaD4KIApAQCAtNzEsNiArNzIsNyBAQCBwcml2YXRlOgogICAgICAgICBSZWY8
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgICAgIFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOwogICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOwogICAgIH07
CiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399027</attachid>
            <date>2020-05-11 10:50:18 -0700</date>
            <delta_ts>2020-05-11 11:14:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211720-20200511195016.patch</filename>
            <type>text/plain</type>
            <size>13336</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNkNTE0ZWYxZjZhZWUz
Yjk2NzhlZTk3Njk1MDc5MGZjMTk5NGEyZS4uYWIyOGI1MDZlZjYyMjY2ZDI0MWY5NjJmOWJkYTZi
OTRiMzU3YzEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBXZWJBdWRpb0J1
ZmZlckxpc3QgdG8gZHluYW1pY2FsbHkgY2hhbmdlIGl0cyBudW1iZXIgb2YgZnJhbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3MjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzb21ldGltZXMg
Y3JlYXRlIFdlYkF1ZGlvQnVmZmVyTGlzdCBvbiB0aGUgc3RhY2sgd2hpY2ggdHJpZ2dlcnMgYWxs
b2NhdGlvbiBvZiBzZXZlcmFsIHZlY3RvcnMuCisgICAgICAgIEluc3RlYWQgb2YgZG9pbmcgdGhh
dCBmb3IgZXZlcnkgYXVkaW8gc2FtcGxlIGNodW5rLCB3ZSBzaG91bGQgYWxsb2NhdGUgdGhlIFdl
YkF1ZGlvQnVmZmVyTGlzdCBhbmQgcmVzaXplIGl0IGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgRm9y
IHRoYXQgcHVycG9zZSwgd2UgaW50cm9kdWNlIFdlYkF1ZGlvQnVmZmVyTGlzdDo6dXBkYXRlV2l0
aE51bWJlck9mRnJhbWVzIGFuZCB1c2UgaXQgaW4gdHdvIHBsYWNlczoKKyAgICAgICAgLSBXaGVu
IGNyZWF0aW5nIGFuIGF1ZGlvIHRyYWNrIGludG8gV2ViQXVkaW8uCisgICAgICAgIC0gV2hlbiBy
ZWNlaXZpbmcgYXVkaW8gY2h1bmtzIGZyb20gYW5vdGhlciBwcm9jZXNzLgorICAgICAgICBDb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2U6On5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
dHJlYW1EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlvU291
cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1
ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6
OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxp
c3Q6OnVwZGF0ZVdpdGhOdW1iZXJPZkZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRp
b0J1ZmZlckxpc3Q6OmNoYW5uZWxDb3VudCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0Lmg6CisKIDIwMjAtMDUtMTEgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVk
aWFTb3VyY2UgdmlkZW8gc2FtcGxlIG9ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5ZTJkZTk2MjJmNjVh
ZjQwNzcxMjc5NTVjOWQ2YWEyNzIyNDE1YzUuLjY3NTZmNzQ4ODc4MjEyZDZmYzJjYTc0Nzg0MGVk
ZTZjOGUzMWUxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDUtMTEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IFdlYkF1ZGlvQnVm
ZmVyTGlzdCB0byBkeW5hbWljYWxseSBjaGFuZ2UgaXRzIG51bWJlciBvZiBmcmFtZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTcyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmg6CisKIDIwMjAtMDUtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVkaWFTb3VyY2Ug
dmlkZW8gc2FtcGxlIG9ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAppbmRleCBmYzhhZTY2Y2I1
MzJkZmI5MDMzODlkZjQyYzNjMGFkZjI2ODUzZTQ3Li43MTUyM2JiOTBiNzQ2Y2NiMTA4Mjk5YWU2
YTIwZTc4NmNlNzBlZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
LSNpbmNsdWRlIDx3dGYvVVVJRC5oPgorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9EYXRhLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArMzksOCBAQCBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlKGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgbV9j
dXJyZW50U2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlKTsKIH0KIAorTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZTo6fk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSA9IGRlZmF1bHQ7CisKIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIE1lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2U6OmNhcGFiaWxpdGllcygpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2UuaAppbmRleCAxNjcyNjgxN2RiMzczNTRiODEzOTVjNDM1NjMwMzZjODRjODcxMDlk
Li43N2Q5OTNiNTMzZjE0OTg1ZTJjYzdmMjczZGQ4NmYzNGUyNzEzMWVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2UuaApAQCAtMzUsMTMgKzM1LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1
ZGlvQnVzOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzOwogCiBjbGFzcyBNZWRpYVN0cmVhbUF1ZGlvU291cmNlIGZpbmFsIDog
cHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVk
aWFTdHJlYW1BdWRpb1NvdXJjZT4gY3JlYXRlKGZsb2F0IHNhbXBsZVJhdGUpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSB7IHNhbXBsZVJhdGUgfSk7IH0KIAot
ICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgPSBkZWZhdWx0OworICAgIH5NZWRpYVN0cmVh
bUF1ZGlvU291cmNlKCk7CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWw7CkBAIC01OCw2ICs1OSw3IEBAIHByaXZhdGU6CiAK
ICAgICBTdHJpbmcgbV9kZXZpY2VJZDsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
bV9jdXJyZW50U2V0dGluZ3M7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtQXVkaW9EYXRh
PiBtX2F1ZGlvQnVmZmVyOwogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgc2l6ZV90IG1fbnVt
YmVyT2ZGcmFtZXMgeyAwIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApp
bmRleCA3YjE5YWZiMzcyNTZiYzI0YjRkODVmOWE3N2VmMTBiMDEwNzZmZGU5Li4yNzY1NTRkOTE5
MjMyOTYwOWE1NDg0Yzc0MmRiNTAyNjJmZDNjZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29j
b2EuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24g
c3RyZWFtRGVzY3JpcHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQp
CitzdGF0aWMgaW5saW5lIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlv
bihzaXplX3Qgc2FtcGxlUmF0ZSwgc2l6ZV90IGNoYW5uZWxDb3VudCkKIHsKICAgICBib29sIGlz
RmxvYXQgPSB0cnVlOwogICAgIGJvb2wgaXNCaWdFbmRpYW4gPSBmYWxzZTsKQEAgLTc1LDE1ICs3
NSwxOSBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1
cyYgYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6
OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBudW1iZXJP
ZkZyYW1lczsKIAotICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBuZXdEZXNjcmlwdGlv
biA9IHN0cmVhbURlc2NyaXB0aW9uKG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSwgYnVz
Lm51bWJlck9mQ2hhbm5lbHMoKSk7CisgICAgYXV0byogYXVkaW9CdWZmZXIgPSBtX2F1ZGlvQnVm
ZmVyID8gJmRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oKm1fYXVkaW9CdWZmZXIpIDogbnVs
bHB0cjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gdGhlIG1lbW9yeSBhbGxvY2F0aW9u
IG9uY2UgaW4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSBhbmQgcmVzaXplIGl0IGFjY29yZGluZyBu
dW1iZXJPZkZyYW1lcy4KLSAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9CdWZmZXJMaXN0IHsg
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG5ld0Rlc2NyaXB0aW9uKSwgV1RGOjpzYWZlQ2FzdDx1
aW50MzJfdD4obnVtYmVyT2ZGcmFtZXMpIH07CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IHN0cmVh
bURlc2NyaXB0aW9uKG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSwgYnVzLm51bWJlck9m
Q2hhbm5lbHMoKSk7CisgICAgaWYgKCFhdWRpb0J1ZmZlciB8fCBhdWRpb0J1ZmZlci0+Y2hhbm5l
bENvdW50KCkgIT0gYnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgICAgICBtX2F1ZGlvQnVm
ZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBXVEY6OnNh
ZmVDYXN0PHVpbnQzMl90PihudW1iZXJPZkZyYW1lcykpOworICAgICAgICBhdWRpb0J1ZmZlciA9
ICZkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KCptX2F1ZGlvQnVmZmVyKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgYXVkaW9CdWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJhbWVzKTsK
IAogICAgIGZvciAoc2l6ZV90IGNwdHIgPSAwOyBjcHRyIDwgYnVzLm51bWJlck9mQ2hhbm5lbHMo
KTsgKytjcHRyKQotICAgICAgICBjb3B5Q2hhbm5lbERhdGEoKmJ1cy5jaGFubmVsKGNwdHIpLCAq
YXVkaW9CdWZmZXJMaXN0LmJ1ZmZlcihjcHRyKSwgbnVtYmVyT2ZGcmFtZXMsIG11dGVkKCkpOwor
ICAgICAgICBjb3B5Q2hhbm5lbERhdGEoKmJ1cy5jaGFubmVsKGNwdHIpLCAqYXVkaW9CdWZmZXIt
PmJ1ZmZlcihjcHRyKSwgbnVtYmVyT2ZGcmFtZXMsIG11dGVkKCkpOwogCi0gICAgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKG1lZGlhVGltZSwgYXVkaW9CdWZmZXJMaXN0LCBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24obmV3RGVzY3JpcHRpb24pLCBudW1iZXJPZkZyYW1lcyk7CisgICAgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKG1lZGlhVGltZSwgKm1fYXVkaW9CdWZmZXIsIGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3Qu
Y3BwCmluZGV4IGIyNmQ1MWRkMjIzZTQ4Zjg3OWIyNjFkMDMxOWNlMGIwMzdmZmI5NzQuLmE3NGE3
MzU2Y2M5MjRiNmY0NGY0ZDI3YTM1MDQ5YzlhNTExYWE1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNw
cApAQCAtMzMsMTEgKzMzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQorICAgIDogbV9ieXRlc1BlckZyYW1lKGZv
cm1hdC5ieXRlc1BlckZyYW1lKCkpCisgICAgLCBtX2NoYW5uZWxDb3VudChmb3JtYXQubnVtYmVy
T2ZJbnRlcmxlYXZlZENoYW5uZWxzKCkpCiB7CiAgICAgLy8gQXVkaW9CdWZmZXJMaXN0IGlzIGEg
dmFyaWFibGUtbGVuZ3RoIHN0cnVjdCwgc28gY3JlYXRlIG9uIHRoZSBoZWFwIHdpdGggYSBnZW5l
cmljIG5ldygpIG9wZXJhdG9yCiAgICAgLy8gd2l0aCBhIGN1c3RvbSBzaXplLCBhbmQgaW5pdGlh
bGl6ZSB0aGUgc3RydWN0IG1hbnVhbGx5LgogICAgIHVpbnQzMl90IGJ1ZmZlckNvdW50ID0gZm9y
bWF0Lm51bWJlck9mQ2hhbm5lbFN0cmVhbXMoKTsKLSAgICB1aW50MzJfdCBjaGFubmVsQ291bnQg
PSBmb3JtYXQubnVtYmVyT2ZJbnRlcmxlYXZlZENoYW5uZWxzKCk7CiAKICAgICB1aW50NjRfdCBi
dWZmZXJMaXN0U2l6ZSA9IG9mZnNldG9mKEF1ZGlvQnVmZmVyTGlzdCwgbUJ1ZmZlcnMpICsgKHNp
emVvZihBdWRpb0J1ZmZlcikgKiBzdGQ6Om1heCgxVSwgYnVmZmVyQ291bnQpKTsKICAgICBBU1NF
UlQoYnVmZmVyTGlzdFNpemUgPD0gU0laRV9NQVgpOwpAQCAtNDcsNyArNDgsNyBAQCBXZWJBdWRp
b0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGZvcm1hdCkKICAgICBtZW1zZXQobV9jYW5vbmljYWxMaXN0LmdldCgpLCAwLCBtX2xp
c3RCdWZmZXJTaXplKTsKICAgICBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZmZXJzID0gYnVm
ZmVyQ291bnQ7CiAgICAgZm9yICh1aW50MzJfdCBidWZmZXIgPSAwOyBidWZmZXIgPCBidWZmZXJD
b3VudDsgKytidWZmZXIpCi0gICAgICAgIG1fY2Fub25pY2FsTGlzdC0+bUJ1ZmZlcnNbYnVmZmVy
XS5tTnVtYmVyQ2hhbm5lbHMgPSBjaGFubmVsQ291bnQ7CisgICAgICAgIG1fY2Fub25pY2FsTGlz
dC0+bUJ1ZmZlcnNbYnVmZmVyXS5tTnVtYmVyQ2hhbm5lbHMgPSBtX2NoYW5uZWxDb3VudDsKIAog
ICAgIHJlc2V0KCk7CiB9CkBAIC01NSwxNCArNTYsMTkgQEAgV2ViQXVkaW9CdWZmZXJMaXN0OjpX
ZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQp
CiBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgdWludDMyX3Qgc2FtcGxlQ291bnQpCiAgICAgOiBXZWJB
dWRpb0J1ZmZlckxpc3QoZm9ybWF0KQogewotICAgIGlmICghc2FtcGxlQ291bnQpCi0gICAgICAg
IHJldHVybjsKKyAgICBpZiAoc2FtcGxlQ291bnQpCisgICAgICAgIHNldFNhbXBsZUNvdW50KHNh
bXBsZUNvdW50KTsKK30KIAotICAgIHVpbnQzMl90IGJ1ZmZlckNvdW50ID0gZm9ybWF0Lm51bWJl
ck9mQ2hhbm5lbFN0cmVhbXMoKTsKLSAgICB1aW50MzJfdCBjaGFubmVsQ291bnQgPSBmb3JtYXQu
bnVtYmVyT2ZJbnRlcmxlYXZlZENoYW5uZWxzKCk7Cit2b2lkIFdlYkF1ZGlvQnVmZmVyTGlzdDo6
c2V0U2FtcGxlQ291bnQodWludDMyX3Qgc2FtcGxlQ291bnQpCit7CisgICAgdWludDMyX3QgYnVm
ZmVyQ291bnQgPSBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZmZXJzOworICAgIGlmICghYnVm
ZmVyQ291bnQgfHwgbV9zYW1wbGVDb3VudCAhPSBzYW1wbGVDb3VudCkKKyAgICAgICAgcmV0dXJu
OwogCi0gICAgc2l6ZV90IGJ5dGVzUGVyQnVmZmVyID0gc2FtcGxlQ291bnQgKiBjaGFubmVsQ291
bnQgKiBmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpOwotICAgIG1fZmxhdEJ1ZmZlci5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KGJ1ZmZlckNvdW50ICogYnl0ZXNQZXJCdWZmZXIpOworICAgIG1fc2FtcGxl
Q291bnQgPSBzYW1wbGVDb3VudDsKKyAgICBzaXplX3QgYnl0ZXNQZXJCdWZmZXIgPSBtX3NhbXBs
ZUNvdW50ICogbV9jaGFubmVsQ291bnQgKiBtX2J5dGVzUGVyRnJhbWU7CisgICAgbV9mbGF0QnVm
ZmVyLnJlc2VydmVDYXBhY2l0eShidWZmZXJDb3VudCAqIGJ5dGVzUGVyQnVmZmVyKTsKICAgICBh
dXRvIGRhdGEgPSBtX2ZsYXRCdWZmZXIuZGF0YSgpOwogCiAgICAgZm9yICh1aW50MzJfdCBidWZm
ZXIgPSAwOyBidWZmZXIgPCBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZmZXJzOyArK2J1ZmZl
cikgewpAQCAtNzcsNyArODMsNiBAQCBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVy
TGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgdQogV2ViQXVkaW9C
dWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBmb3JtYXQsIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKICAgICA6IFdlYkF1
ZGlvQnVmZmVyTGlzdChmb3JtYXQpCiB7Ci0KICAgICBpZiAoIXNhbXBsZUJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCmluZGV4IDhhN2U3YTAzYWMzM2E0ZTU1YzQzYzMx
YWVjNjM3YjE4OWNiMWM3ZWIuLmNjOGI2OGQxYzc1NGY2Y2Y2NWQ2MTM2YWQxMmQzOGFkMGZmZmJi
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1
ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00NiwxMSArNDYsMTMgQEAgcHVibGljOgogICAgIFdl
YkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBDTVNhbXBs
ZUJ1ZmZlclJlZik7CiAKICAgICB2b2lkIHJlc2V0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTYW1wbGVDb3VudCh1aW50MzJfdCk7CiAKICAgICBBdWRpb0J1ZmZlckxpc3QqIGxpc3Qo
KSBjb25zdCB7IHJldHVybiBtX2xpc3QuZ2V0KCk7IH0KICAgICBvcGVyYXRvciBBdWRpb0J1ZmZl
ckxpc3QmKCkgY29uc3QgeyByZXR1cm4gKm1fbGlzdDsgfQogCiAgICAgdWludDMyX3QgYnVmZmVy
Q291bnQoKSBjb25zdDsKKyAgICB1aW50MzJfdCBjaGFubmVsQ291bnQoKSBjb25zdCB7IHJldHVy
biBtX2NoYW5uZWxDb3VudDsgfQogICAgIEF1ZGlvQnVmZmVyKiBidWZmZXIodWludDMyX3QgaW5k
ZXgpIGNvbnN0OwogICAgIFdURjo6SXRlcmF0b3JSYW5nZTxBdWRpb0J1ZmZlcio+IGJ1ZmZlcnMo
KSBjb25zdDsKIApAQCAtNTgsNiArNjAsOSBAQCBwcml2YXRlOgogICAgIEtpbmQga2luZCgpIGNv
bnN0IHsgcmV0dXJuIEtpbmQ6OldlYkF1ZGlvQnVmZmVyTGlzdDsgfQogCiAgICAgc2l6ZV90IG1f
bGlzdEJ1ZmZlclNpemUgeyAwIH07CisgICAgdWludDMyX3QgbV9ieXRlc1BlckZyYW1lIHsgMCB9
OworICAgIHVpbnQzMl90IG1fY2hhbm5lbENvdW50IHsgMCB9OworICAgIHVpbnQzMl90IG1fc2Ft
cGxlQ291bnQgeyAwIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVmZmVyTGlzdD4gbV9j
YW5vbmljYWxMaXN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1ZmZlckxpc3Q+IG1fbGlz
dDsKICAgICBSZXRhaW5QdHI8Q01CbG9ja0J1ZmZlclJlZj4gbV9ibG9ja0J1ZmZlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IGNiYzNkZDU5YzNmZTcwMDk0MmM0NjE1OWQzMzgxM2Ri
NGYxZDNmYjQuLjRlNTlmNWQ5YTA4NzBiMDc4YmEwOGNjMGEwN2ZlOTczODFjYTYxYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtMTM4LDE3ICsxMzgsMTcgQEAgdm9pZCBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVk
TWVtb3J5OjpIYW4KICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxs
KCkpOwogICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CiAgICAgbV9yaW5nQnVmZmVyLT5h
bGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFr
ZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7
CiB9CiAKIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKIHsKLSAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGFsbG9jYXRlIHRoaXMgYnVmZmVyIG9uY2UgYW5kIHJlc2l6ZSBpdCBhcyBu
ZWVkZWQuCi0gICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvRGF0YShtX2Rlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJh
bWVzKTsKIAogICAgIG1fcmluZ0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJh
bWUsIGVuZEZyYW1lKTsKLSAgICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0KCks
IG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBtX3JpbmdCdWZmZXItPmZl
dGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
IAotICAgIG1fc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9E
YXRhLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9zb3VyY2UtPnJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCA2NWJhNTY0
MmE4NmIyNjg0Njc1MzdhOGM5N2RiOTllOGY3YzkyMmUwLi41ODVmNzdlOGU3MmU1N2I2YTc3ZDdi
NzE5MTYyMzcyZDFiMzRiNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCkBAIC03MSw2ICs3Miw3IEBA
IHByaXZhdGU6CiAgICAgICAgIFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJj
ZTsKICAgICAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRp
b247CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmlu
Z0J1ZmZlcjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVy
TGlzdD4gbV9idWZmZXI7CiAgICAgfTsKIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399033</attachid>
            <date>2020-05-11 11:18:35 -0700</date>
            <delta_ts>2020-05-13 10:34:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211720-20200511201833.patch</filename>
            <type>text/plain</type>
            <size>13336</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNkNTE0ZWYxZjZhZWUz
Yjk2NzhlZTk3Njk1MDc5MGZjMTk5NGEyZS4uYWIyOGI1MDZlZjYyMjY2ZDI0MWY5NjJmOWJkYTZi
OTRiMzU3YzEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBXZWJBdWRpb0J1
ZmZlckxpc3QgdG8gZHluYW1pY2FsbHkgY2hhbmdlIGl0cyBudW1iZXIgb2YgZnJhbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3MjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzb21ldGltZXMg
Y3JlYXRlIFdlYkF1ZGlvQnVmZmVyTGlzdCBvbiB0aGUgc3RhY2sgd2hpY2ggdHJpZ2dlcnMgYWxs
b2NhdGlvbiBvZiBzZXZlcmFsIHZlY3RvcnMuCisgICAgICAgIEluc3RlYWQgb2YgZG9pbmcgdGhh
dCBmb3IgZXZlcnkgYXVkaW8gc2FtcGxlIGNodW5rLCB3ZSBzaG91bGQgYWxsb2NhdGUgdGhlIFdl
YkF1ZGlvQnVmZmVyTGlzdCBhbmQgcmVzaXplIGl0IGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgRm9y
IHRoYXQgcHVycG9zZSwgd2UgaW50cm9kdWNlIFdlYkF1ZGlvQnVmZmVyTGlzdDo6dXBkYXRlV2l0
aE51bWJlck9mRnJhbWVzIGFuZCB1c2UgaXQgaW4gdHdvIHBsYWNlczoKKyAgICAgICAgLSBXaGVu
IGNyZWF0aW5nIGFuIGF1ZGlvIHRyYWNrIGludG8gV2ViQXVkaW8uCisgICAgICAgIC0gV2hlbiBy
ZWNlaXZpbmcgYXVkaW8gY2h1bmtzIGZyb20gYW5vdGhlciBwcm9jZXNzLgorICAgICAgICBDb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2U6On5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
dHJlYW1EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlvU291
cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1
ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6
OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxp
c3Q6OnVwZGF0ZVdpdGhOdW1iZXJPZkZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRp
b0J1ZmZlckxpc3Q6OmNoYW5uZWxDb3VudCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0Lmg6CisKIDIwMjAtMDUtMTEgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVk
aWFTb3VyY2UgdmlkZW8gc2FtcGxlIG9ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5ZTJkZTk2MjJmNjVh
ZjQwNzcxMjc5NTVjOWQ2YWEyNzIyNDE1YzUuLjY3NTZmNzQ4ODc4MjEyZDZmYzJjYTc0Nzg0MGVk
ZTZjOGUzMWUxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDUtMTEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IFdlYkF1ZGlvQnVm
ZmVyTGlzdCB0byBkeW5hbWljYWxseSBjaGFuZ2UgaXRzIG51bWJlciBvZiBmcmFtZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTcyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmg6CisKIDIwMjAtMDUtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVkaWFTb3VyY2Ug
dmlkZW8gc2FtcGxlIG9ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAppbmRleCBmYzhhZTY2Y2I1
MzJkZmI5MDMzODlkZjQyYzNjMGFkZjI2ODUzZTQ3Li43MTUyM2JiOTBiNzQ2Y2NiMTA4Mjk5YWU2
YTIwZTc4NmNlNzBlZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
LSNpbmNsdWRlIDx3dGYvVVVJRC5oPgorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9EYXRhLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArMzksOCBAQCBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlKGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgbV9j
dXJyZW50U2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlKTsKIH0KIAorTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZTo6fk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSA9IGRlZmF1bHQ7CisKIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIE1lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2U6OmNhcGFiaWxpdGllcygpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2UuaAppbmRleCAxNjcyNjgxN2RiMzczNTRiODEzOTVjNDM1NjMwMzZjODRjODcxMDlk
Li43N2Q5OTNiNTMzZjE0OTg1ZTJjYzdmMjczZGQ4NmYzNGUyNzEzMWVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2UuaApAQCAtMzUsMTMgKzM1LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1
ZGlvQnVzOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzOwogCiBjbGFzcyBNZWRpYVN0cmVhbUF1ZGlvU291cmNlIGZpbmFsIDog
cHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVk
aWFTdHJlYW1BdWRpb1NvdXJjZT4gY3JlYXRlKGZsb2F0IHNhbXBsZVJhdGUpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSB7IHNhbXBsZVJhdGUgfSk7IH0KIAot
ICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgPSBkZWZhdWx0OworICAgIH5NZWRpYVN0cmVh
bUF1ZGlvU291cmNlKCk7CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWw7CkBAIC01OCw2ICs1OSw3IEBAIHByaXZhdGU6CiAK
ICAgICBTdHJpbmcgbV9kZXZpY2VJZDsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
bV9jdXJyZW50U2V0dGluZ3M7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtQXVkaW9EYXRh
PiBtX2F1ZGlvQnVmZmVyOwogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgc2l6ZV90IG1fbnVt
YmVyT2ZGcmFtZXMgeyAwIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApp
bmRleCA3YjE5YWZiMzcyNTZiYzI0YjRkODVmOWE3N2VmMTBiMDEwNzZmZGU5Li4yNzY1NTRkOTE5
MjMyOTYwOWE1NDg0Yzc0MmRiNTAyNjJmZDNjZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29j
b2EuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24g
c3RyZWFtRGVzY3JpcHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQp
CitzdGF0aWMgaW5saW5lIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlv
bihzaXplX3Qgc2FtcGxlUmF0ZSwgc2l6ZV90IGNoYW5uZWxDb3VudCkKIHsKICAgICBib29sIGlz
RmxvYXQgPSB0cnVlOwogICAgIGJvb2wgaXNCaWdFbmRpYW4gPSBmYWxzZTsKQEAgLTc1LDE1ICs3
NSwxOSBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1
cyYgYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6
OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBudW1iZXJP
ZkZyYW1lczsKIAotICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBuZXdEZXNjcmlwdGlv
biA9IHN0cmVhbURlc2NyaXB0aW9uKG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSwgYnVz
Lm51bWJlck9mQ2hhbm5lbHMoKSk7CisgICAgYXV0byogYXVkaW9CdWZmZXIgPSBtX2F1ZGlvQnVm
ZmVyID8gJmRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oKm1fYXVkaW9CdWZmZXIpIDogbnVs
bHB0cjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gdGhlIG1lbW9yeSBhbGxvY2F0aW9u
IG9uY2UgaW4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSBhbmQgcmVzaXplIGl0IGFjY29yZGluZyBu
dW1iZXJPZkZyYW1lcy4KLSAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9CdWZmZXJMaXN0IHsg
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG5ld0Rlc2NyaXB0aW9uKSwgV1RGOjpzYWZlQ2FzdDx1
aW50MzJfdD4obnVtYmVyT2ZGcmFtZXMpIH07CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IHN0cmVh
bURlc2NyaXB0aW9uKG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSwgYnVzLm51bWJlck9m
Q2hhbm5lbHMoKSk7CisgICAgaWYgKCFhdWRpb0J1ZmZlciB8fCBhdWRpb0J1ZmZlci0+Y2hhbm5l
bENvdW50KCkgIT0gYnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgICAgICBtX2F1ZGlvQnVm
ZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBXVEY6OnNh
ZmVDYXN0PHVpbnQzMl90PihudW1iZXJPZkZyYW1lcykpOworICAgICAgICBhdWRpb0J1ZmZlciA9
ICZkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KCptX2F1ZGlvQnVmZmVyKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgYXVkaW9CdWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJhbWVzKTsK
IAogICAgIGZvciAoc2l6ZV90IGNwdHIgPSAwOyBjcHRyIDwgYnVzLm51bWJlck9mQ2hhbm5lbHMo
KTsgKytjcHRyKQotICAgICAgICBjb3B5Q2hhbm5lbERhdGEoKmJ1cy5jaGFubmVsKGNwdHIpLCAq
YXVkaW9CdWZmZXJMaXN0LmJ1ZmZlcihjcHRyKSwgbnVtYmVyT2ZGcmFtZXMsIG11dGVkKCkpOwor
ICAgICAgICBjb3B5Q2hhbm5lbERhdGEoKmJ1cy5jaGFubmVsKGNwdHIpLCAqYXVkaW9CdWZmZXIt
PmJ1ZmZlcihjcHRyKSwgbnVtYmVyT2ZGcmFtZXMsIG11dGVkKCkpOwogCi0gICAgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKG1lZGlhVGltZSwgYXVkaW9CdWZmZXJMaXN0LCBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24obmV3RGVzY3JpcHRpb24pLCBudW1iZXJPZkZyYW1lcyk7CisgICAgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKG1lZGlhVGltZSwgKm1fYXVkaW9CdWZmZXIsIGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3Qu
Y3BwCmluZGV4IGIyNmQ1MWRkMjIzZTQ4Zjg3OWIyNjFkMDMxOWNlMGIwMzdmZmI5NzQuLjFjYjFl
ZjVlYWJlZTYyYzM2MmU4YWVlYTcwMTZlNDE4NjdhYTE5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNw
cApAQCAtMzMsMTEgKzMzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQorICAgIDogbV9ieXRlc1BlckZyYW1lKGZv
cm1hdC5ieXRlc1BlckZyYW1lKCkpCisgICAgLCBtX2NoYW5uZWxDb3VudChmb3JtYXQubnVtYmVy
T2ZJbnRlcmxlYXZlZENoYW5uZWxzKCkpCiB7CiAgICAgLy8gQXVkaW9CdWZmZXJMaXN0IGlzIGEg
dmFyaWFibGUtbGVuZ3RoIHN0cnVjdCwgc28gY3JlYXRlIG9uIHRoZSBoZWFwIHdpdGggYSBnZW5l
cmljIG5ldygpIG9wZXJhdG9yCiAgICAgLy8gd2l0aCBhIGN1c3RvbSBzaXplLCBhbmQgaW5pdGlh
bGl6ZSB0aGUgc3RydWN0IG1hbnVhbGx5LgogICAgIHVpbnQzMl90IGJ1ZmZlckNvdW50ID0gZm9y
bWF0Lm51bWJlck9mQ2hhbm5lbFN0cmVhbXMoKTsKLSAgICB1aW50MzJfdCBjaGFubmVsQ291bnQg
PSBmb3JtYXQubnVtYmVyT2ZJbnRlcmxlYXZlZENoYW5uZWxzKCk7CiAKICAgICB1aW50NjRfdCBi
dWZmZXJMaXN0U2l6ZSA9IG9mZnNldG9mKEF1ZGlvQnVmZmVyTGlzdCwgbUJ1ZmZlcnMpICsgKHNp
emVvZihBdWRpb0J1ZmZlcikgKiBzdGQ6Om1heCgxVSwgYnVmZmVyQ291bnQpKTsKICAgICBBU1NF
UlQoYnVmZmVyTGlzdFNpemUgPD0gU0laRV9NQVgpOwpAQCAtNDcsNyArNDgsNyBAQCBXZWJBdWRp
b0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGZvcm1hdCkKICAgICBtZW1zZXQobV9jYW5vbmljYWxMaXN0LmdldCgpLCAwLCBtX2xp
c3RCdWZmZXJTaXplKTsKICAgICBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZmZXJzID0gYnVm
ZmVyQ291bnQ7CiAgICAgZm9yICh1aW50MzJfdCBidWZmZXIgPSAwOyBidWZmZXIgPCBidWZmZXJD
b3VudDsgKytidWZmZXIpCi0gICAgICAgIG1fY2Fub25pY2FsTGlzdC0+bUJ1ZmZlcnNbYnVmZmVy
XS5tTnVtYmVyQ2hhbm5lbHMgPSBjaGFubmVsQ291bnQ7CisgICAgICAgIG1fY2Fub25pY2FsTGlz
dC0+bUJ1ZmZlcnNbYnVmZmVyXS5tTnVtYmVyQ2hhbm5lbHMgPSBtX2NoYW5uZWxDb3VudDsKIAog
ICAgIHJlc2V0KCk7CiB9CkBAIC01NSwxNCArNTYsMTkgQEAgV2ViQXVkaW9CdWZmZXJMaXN0OjpX
ZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQp
CiBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgdWludDMyX3Qgc2FtcGxlQ291bnQpCiAgICAgOiBXZWJB
dWRpb0J1ZmZlckxpc3QoZm9ybWF0KQogewotICAgIGlmICghc2FtcGxlQ291bnQpCi0gICAgICAg
IHJldHVybjsKKyAgICBpZiAoc2FtcGxlQ291bnQpCisgICAgICAgIHNldFNhbXBsZUNvdW50KHNh
bXBsZUNvdW50KTsKK30KIAotICAgIHVpbnQzMl90IGJ1ZmZlckNvdW50ID0gZm9ybWF0Lm51bWJl
ck9mQ2hhbm5lbFN0cmVhbXMoKTsKLSAgICB1aW50MzJfdCBjaGFubmVsQ291bnQgPSBmb3JtYXQu
bnVtYmVyT2ZJbnRlcmxlYXZlZENoYW5uZWxzKCk7Cit2b2lkIFdlYkF1ZGlvQnVmZmVyTGlzdDo6
c2V0U2FtcGxlQ291bnQodWludDMyX3Qgc2FtcGxlQ291bnQpCit7CisgICAgdWludDMyX3QgYnVm
ZmVyQ291bnQgPSBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZmZXJzOworICAgIGlmICghYnVm
ZmVyQ291bnQgfHwgbV9zYW1wbGVDb3VudCA9PSBzYW1wbGVDb3VudCkKKyAgICAgICAgcmV0dXJu
OwogCi0gICAgc2l6ZV90IGJ5dGVzUGVyQnVmZmVyID0gc2FtcGxlQ291bnQgKiBjaGFubmVsQ291
bnQgKiBmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpOwotICAgIG1fZmxhdEJ1ZmZlci5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KGJ1ZmZlckNvdW50ICogYnl0ZXNQZXJCdWZmZXIpOworICAgIG1fc2FtcGxl
Q291bnQgPSBzYW1wbGVDb3VudDsKKyAgICBzaXplX3QgYnl0ZXNQZXJCdWZmZXIgPSBtX3NhbXBs
ZUNvdW50ICogbV9jaGFubmVsQ291bnQgKiBtX2J5dGVzUGVyRnJhbWU7CisgICAgbV9mbGF0QnVm
ZmVyLnJlc2VydmVDYXBhY2l0eShidWZmZXJDb3VudCAqIGJ5dGVzUGVyQnVmZmVyKTsKICAgICBh
dXRvIGRhdGEgPSBtX2ZsYXRCdWZmZXIuZGF0YSgpOwogCiAgICAgZm9yICh1aW50MzJfdCBidWZm
ZXIgPSAwOyBidWZmZXIgPCBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZmZXJzOyArK2J1ZmZl
cikgewpAQCAtNzcsNyArODMsNiBAQCBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVy
TGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgdQogV2ViQXVkaW9C
dWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBmb3JtYXQsIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKICAgICA6IFdlYkF1
ZGlvQnVmZmVyTGlzdChmb3JtYXQpCiB7Ci0KICAgICBpZiAoIXNhbXBsZUJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCmluZGV4IDhhN2U3YTAzYWMzM2E0ZTU1YzQzYzMx
YWVjNjM3YjE4OWNiMWM3ZWIuLmNjOGI2OGQxYzc1NGY2Y2Y2NWQ2MTM2YWQxMmQzOGFkMGZmZmJi
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1
ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00NiwxMSArNDYsMTMgQEAgcHVibGljOgogICAgIFdl
YkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBDTVNhbXBs
ZUJ1ZmZlclJlZik7CiAKICAgICB2b2lkIHJlc2V0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTYW1wbGVDb3VudCh1aW50MzJfdCk7CiAKICAgICBBdWRpb0J1ZmZlckxpc3QqIGxpc3Qo
KSBjb25zdCB7IHJldHVybiBtX2xpc3QuZ2V0KCk7IH0KICAgICBvcGVyYXRvciBBdWRpb0J1ZmZl
ckxpc3QmKCkgY29uc3QgeyByZXR1cm4gKm1fbGlzdDsgfQogCiAgICAgdWludDMyX3QgYnVmZmVy
Q291bnQoKSBjb25zdDsKKyAgICB1aW50MzJfdCBjaGFubmVsQ291bnQoKSBjb25zdCB7IHJldHVy
biBtX2NoYW5uZWxDb3VudDsgfQogICAgIEF1ZGlvQnVmZmVyKiBidWZmZXIodWludDMyX3QgaW5k
ZXgpIGNvbnN0OwogICAgIFdURjo6SXRlcmF0b3JSYW5nZTxBdWRpb0J1ZmZlcio+IGJ1ZmZlcnMo
KSBjb25zdDsKIApAQCAtNTgsNiArNjAsOSBAQCBwcml2YXRlOgogICAgIEtpbmQga2luZCgpIGNv
bnN0IHsgcmV0dXJuIEtpbmQ6OldlYkF1ZGlvQnVmZmVyTGlzdDsgfQogCiAgICAgc2l6ZV90IG1f
bGlzdEJ1ZmZlclNpemUgeyAwIH07CisgICAgdWludDMyX3QgbV9ieXRlc1BlckZyYW1lIHsgMCB9
OworICAgIHVpbnQzMl90IG1fY2hhbm5lbENvdW50IHsgMCB9OworICAgIHVpbnQzMl90IG1fc2Ft
cGxlQ291bnQgeyAwIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVmZmVyTGlzdD4gbV9j
YW5vbmljYWxMaXN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1ZmZlckxpc3Q+IG1fbGlz
dDsKICAgICBSZXRhaW5QdHI8Q01CbG9ja0J1ZmZlclJlZj4gbV9ibG9ja0J1ZmZlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IGNiYzNkZDU5YzNmZTcwMDk0MmM0NjE1OWQzMzgxM2Ri
NGYxZDNmYjQuLjRlNTlmNWQ5YTA4NzBiMDc4YmEwOGNjMGEwN2ZlOTczODFjYTYxYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtMTM4LDE3ICsxMzgsMTcgQEAgdm9pZCBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVk
TWVtb3J5OjpIYW4KICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxs
KCkpOwogICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CiAgICAgbV9yaW5nQnVmZmVyLT5h
bGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFr
ZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7
CiB9CiAKIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKIHsKLSAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGFsbG9jYXRlIHRoaXMgYnVmZmVyIG9uY2UgYW5kIHJlc2l6ZSBpdCBhcyBu
ZWVkZWQuCi0gICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvRGF0YShtX2Rlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJh
bWVzKTsKIAogICAgIG1fcmluZ0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJh
bWUsIGVuZEZyYW1lKTsKLSAgICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0KCks
IG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBtX3JpbmdCdWZmZXItPmZl
dGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
IAotICAgIG1fc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9E
YXRhLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9zb3VyY2UtPnJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCA2NWJhNTY0
MmE4NmIyNjg0Njc1MzdhOGM5N2RiOTllOGY3YzkyMmUwLi41ODVmNzdlOGU3MmU1N2I2YTc3ZDdi
NzE5MTYyMzcyZDFiMzRiNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCkBAIC03MSw2ICs3Miw3IEBA
IHByaXZhdGU6CiAgICAgICAgIFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJj
ZTsKICAgICAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRp
b247CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmlu
Z0J1ZmZlcjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVy
TGlzdD4gbV9idWZmZXI7CiAgICAgfTsKIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399277</attachid>
            <date>2020-05-13 10:34:47 -0700</date>
            <delta_ts>2020-05-13 10:35:41 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211720-20200513193445.patch</filename>
            <type>text/plain</type>
            <size>14590</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVhZjExZDY3ZDM2NTRk
MDBhNWNkYTgzN2Y3NmUyM2I3OTY4MGZkOC4uMTI4YTc3MWI0OGZjMTQxYzQ0OThkMDkyMzNmZGNj
OWRkYjFmYmYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA1LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBXZWJBdWRpb0J1
ZmZlckxpc3QgdG8gZHluYW1pY2FsbHkgY2hhbmdlIGl0cyBudW1iZXIgb2YgZnJhbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3MjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2Ugc29tZXRpbWVzIGNy
ZWF0ZSBXZWJBdWRpb0J1ZmZlckxpc3Qgb24gdGhlIHN0YWNrIHdoaWNoIHRyaWdnZXJzIGFsbG9j
YXRpb24gb2Ygc2V2ZXJhbCB2ZWN0b3JzLgorICAgICAgICBJbnN0ZWFkIG9mIGRvaW5nIHRoYXQg
Zm9yIGV2ZXJ5IGF1ZGlvIHNhbXBsZSBjaHVuaywgd2Ugc2hvdWxkIGFsbG9jYXRlIHRoZSBXZWJB
dWRpb0J1ZmZlckxpc3QgYW5kIHJlc2l6ZSBpdCBhcyBuZWNlc3NhcnkuCisgICAgICAgIEZvciB0
aGF0IHB1cnBvc2UsIHdlIGludHJvZHVjZSBXZWJBdWRpb0J1ZmZlckxpc3Q6OnVwZGF0ZVdpdGhO
dW1iZXJPZkZyYW1lcyBhbmQgdXNlIGl0IGluIHR3byBwbGFjZXM6CisgICAgICAgIC0gV2hlbiBj
cmVhdGluZyBhbiBhdWRpbyB0cmFjayBpbnRvIFdlYkF1ZGlvLgorICAgICAgICAtIFdoZW4gcmVj
ZWl2aW5nIGF1ZGlvIGNodW5rcyBmcm9tIGFub3RoZXIgcHJvY2Vzcy4KKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjp+TWVkaWFTdHJlYW1BdWRpb1NvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3Ry
ZWFtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRp
b0J1ZmZlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0OjpX
ZWJBdWRpb0J1ZmZlckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0
Ojp1cGRhdGVXaXRoTnVtYmVyT2ZGcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9C
dWZmZXJMaXN0OjpjaGFubmVsQ291bnQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1
ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAgICBEcml2ZS1ieSBmaXgsIHdlIGRv
IG5vdCBuZWVkIHRvIGdpdmUgdGhlIHNpemUgaW4gYnl0ZXMgYnV0IHRoZSBzaXplIGluIHNhbXBs
ZXMuCisKIDIwMjAtMDUtMTIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxl
LmNvbT4KIAogICAgICAgICBOZWVkIHRvIGFkdmVydGlzZSBzdXBwb3J0IGZvciBXZWJQIGluIHRo
ZSBBY2NlcHQgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM0NDc3NDhhYWQ3MmJlYzJlODNlNDY5OWJiZjJh
NzljZWRhMTIxM2MuLmNiNzJlOTQ3ZWRmMTk3OTBjNmY1MGIxOTg5YWYxNjJiNDcxN2YwNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDUtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IFdlYkF1ZGlvQnVmZmVyTGlzdCB0byBkeW5h
bWljYWxseSBjaGFuZ2UgaXRzIG51bWJlciBvZiBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTcyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmg6CisKIDIwMjAtMDUtMTEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCBwcm9ibGVtcyBjYXVnaHQgYnkgcmVwbGFjaW5nIFdURjo6T3B0aW9uYWwgd2l0
aCBzdGQ6Om9wdGlvbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAppbmRleCBmYzhhZTY2Y2I1MzJkZmI5
MDMzODlkZjQyYzNjMGFkZjI2ODUzZTQ3Li43MTUyM2JiOTBiNzQ2Y2NiMTA4Mjk5YWU2YTIwZTc4
NmNlNzBlZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNs
dWRlIDx3dGYvVVVJRC5oPgorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9EYXRhLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArMzksOCBAQCBNZWRpYVN0cmVhbUF1ZGlvU291cmNl
OjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlKGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgbV9jdXJyZW50
U2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlKTsKIH0KIAorTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6fk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSA9IGRlZmF1bHQ7CisKIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNh
cGFiaWxpdGllcygpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2UuaAppbmRleCAxNjcyNjgxN2RiMzczNTRiODEzOTVjNDM1NjMwMzZjODRjODcxMDlkLi43N2Q5
OTNiNTMzZjE0OTg1ZTJjYzdmMjczZGQ4NmYzNGUyNzEzMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaApA
QCAtMzUsMTMgKzM1LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvQnVz
OworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzOwogCiBjbGFzcyBNZWRpYVN0cmVhbUF1ZGlvU291cmNlIGZpbmFsIDogcHVibGlj
IFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJl
YW1BdWRpb1NvdXJjZT4gY3JlYXRlKGZsb2F0IHNhbXBsZVJhdGUpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSB7IHNhbXBsZVJhdGUgfSk7IH0KIAotICAgIH5N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgPSBkZWZhdWx0OworICAgIH5NZWRpYVN0cmVhbUF1ZGlv
U291cmNlKCk7CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBj
YXBhYmlsaXRpZXMoKSBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKCkgZmluYWw7CkBAIC01OCw2ICs1OSw3IEBAIHByaXZhdGU6CiAKICAgICBT
dHJpbmcgbV9kZXZpY2VJZDsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJy
ZW50U2V0dGluZ3M7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtQXVkaW9EYXRhPiBtX2F1
ZGlvQnVmZmVyOwogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgc2l6ZV90IG1fbnVtYmVyT2ZG
cmFtZXMgeyAwIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCA3
YjE5YWZiMzcyNTZiYzI0YjRkODVmOWE3N2VmMTBiMDEwNzZmZGU5Li4yNzY1NTRkOTE5MjMyOTYw
OWE1NDg0Yzc0MmRiNTAyNjJmZDNjZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3Bw
CkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIGlubGluZSBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gc3RyZWFt
RGVzY3JpcHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQpCitzdGF0
aWMgaW5saW5lIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlvbihzaXpl
X3Qgc2FtcGxlUmF0ZSwgc2l6ZV90IGNoYW5uZWxDb3VudCkKIHsKICAgICBib29sIGlzRmxvYXQg
PSB0cnVlOwogICAgIGJvb2wgaXNCaWdFbmRpYW4gPSBmYWxzZTsKQEAgLTc1LDE1ICs3NSwxOSBA
QCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyYgYnVz
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZyYW1l
czsKIAotICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBuZXdEZXNjcmlwdGlvbiA9IHN0
cmVhbURlc2NyaXB0aW9uKG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSwgYnVzLm51bWJl
ck9mQ2hhbm5lbHMoKSk7CisgICAgYXV0byogYXVkaW9CdWZmZXIgPSBtX2F1ZGlvQnVmZmVyID8g
JmRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oKm1fYXVkaW9CdWZmZXIpIDogbnVsbHB0cjsK
IAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gdGhlIG1lbW9yeSBhbGxvY2F0aW9uIG9uY2Ug
aW4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSBhbmQgcmVzaXplIGl0IGFjY29yZGluZyBudW1iZXJP
ZkZyYW1lcy4KLSAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9CdWZmZXJMaXN0IHsgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKG5ld0Rlc2NyaXB0aW9uKSwgV1RGOjpzYWZlQ2FzdDx1aW50MzJf
dD4obnVtYmVyT2ZGcmFtZXMpIH07CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IHN0cmVhbURlc2Ny
aXB0aW9uKG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSwgYnVzLm51bWJlck9mQ2hhbm5l
bHMoKSk7CisgICAgaWYgKCFhdWRpb0J1ZmZlciB8fCBhdWRpb0J1ZmZlci0+Y2hhbm5lbENvdW50
KCkgIT0gYnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgICAgICBtX2F1ZGlvQnVmZmVyID0g
bWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBXVEY6OnNhZmVDYXN0
PHVpbnQzMl90PihudW1iZXJPZkZyYW1lcykpOworICAgICAgICBhdWRpb0J1ZmZlciA9ICZkb3du
Y2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KCptX2F1ZGlvQnVmZmVyKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgYXVkaW9CdWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJhbWVzKTsKIAogICAg
IGZvciAoc2l6ZV90IGNwdHIgPSAwOyBjcHRyIDwgYnVzLm51bWJlck9mQ2hhbm5lbHMoKTsgKytj
cHRyKQotICAgICAgICBjb3B5Q2hhbm5lbERhdGEoKmJ1cy5jaGFubmVsKGNwdHIpLCAqYXVkaW9C
dWZmZXJMaXN0LmJ1ZmZlcihjcHRyKSwgbnVtYmVyT2ZGcmFtZXMsIG11dGVkKCkpOworICAgICAg
ICBjb3B5Q2hhbm5lbERhdGEoKmJ1cy5jaGFubmVsKGNwdHIpLCAqYXVkaW9CdWZmZXItPmJ1ZmZl
cihjcHRyKSwgbnVtYmVyT2ZGcmFtZXMsIG11dGVkKCkpOwogCi0gICAgYXVkaW9TYW1wbGVzQXZh
aWxhYmxlKG1lZGlhVGltZSwgYXVkaW9CdWZmZXJMaXN0LCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24obmV3RGVzY3JpcHRpb24pLCBudW1iZXJPZkZyYW1lcyk7CisgICAgYXVkaW9TYW1wbGVzQXZh
aWxhYmxlKG1lZGlhVGltZSwgKm1fYXVkaW9CdWZmZXIsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZy
YW1lcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCmlu
ZGV4IGIyNmQ1MWRkMjIzZTQ4Zjg3OWIyNjFkMDMxOWNlMGIwMzdmZmI5NzQuLjVmYjA1ODI5MTYz
MjQ1OWE0YjZjNWQ4ODg0YmU0MTRiMjBiOTRlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApAQCAt
MzMsMTEgKzMzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7
CiAKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQorICAgIDogbV9ieXRlc1BlckZyYW1lKGZvcm1hdC5i
eXRlc1BlckZyYW1lKCkpCisgICAgLCBtX2NoYW5uZWxDb3VudChmb3JtYXQubnVtYmVyT2ZJbnRl
cmxlYXZlZENoYW5uZWxzKCkpCiB7CiAgICAgLy8gQXVkaW9CdWZmZXJMaXN0IGlzIGEgdmFyaWFi
bGUtbGVuZ3RoIHN0cnVjdCwgc28gY3JlYXRlIG9uIHRoZSBoZWFwIHdpdGggYSBnZW5lcmljIG5l
dygpIG9wZXJhdG9yCiAgICAgLy8gd2l0aCBhIGN1c3RvbSBzaXplLCBhbmQgaW5pdGlhbGl6ZSB0
aGUgc3RydWN0IG1hbnVhbGx5LgogICAgIHVpbnQzMl90IGJ1ZmZlckNvdW50ID0gZm9ybWF0Lm51
bWJlck9mQ2hhbm5lbFN0cmVhbXMoKTsKLSAgICB1aW50MzJfdCBjaGFubmVsQ291bnQgPSBmb3Jt
YXQubnVtYmVyT2ZJbnRlcmxlYXZlZENoYW5uZWxzKCk7CiAKICAgICB1aW50NjRfdCBidWZmZXJM
aXN0U2l6ZSA9IG9mZnNldG9mKEF1ZGlvQnVmZmVyTGlzdCwgbUJ1ZmZlcnMpICsgKHNpemVvZihB
dWRpb0J1ZmZlcikgKiBzdGQ6Om1heCgxVSwgYnVmZmVyQ291bnQpKTsKICAgICBBU1NFUlQoYnVm
ZmVyTGlzdFNpemUgPD0gU0laRV9NQVgpOwpAQCAtNDcsNyArNDgsNyBAQCBXZWJBdWRpb0J1ZmZl
ckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGZvcm1hdCkKICAgICBtZW1zZXQobV9jYW5vbmljYWxMaXN0LmdldCgpLCAwLCBtX2xpc3RCdWZm
ZXJTaXplKTsKICAgICBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZmZXJzID0gYnVmZmVyQ291
bnQ7CiAgICAgZm9yICh1aW50MzJfdCBidWZmZXIgPSAwOyBidWZmZXIgPCBidWZmZXJDb3VudDsg
KytidWZmZXIpCi0gICAgICAgIG1fY2Fub25pY2FsTGlzdC0+bUJ1ZmZlcnNbYnVmZmVyXS5tTnVt
YmVyQ2hhbm5lbHMgPSBjaGFubmVsQ291bnQ7CisgICAgICAgIG1fY2Fub25pY2FsTGlzdC0+bUJ1
ZmZlcnNbYnVmZmVyXS5tTnVtYmVyQ2hhbm5lbHMgPSBtX2NoYW5uZWxDb3VudDsKIAogICAgIHJl
c2V0KCk7CiB9CkBAIC01NSwxNSArNTYsMTggQEAgV2ViQXVkaW9CdWZmZXJMaXN0OjpXZWJBdWRp
b0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQpCiBXZWJB
dWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGZvcm1hdCwgdWludDMyX3Qgc2FtcGxlQ291bnQpCiAgICAgOiBXZWJBdWRpb0J1
ZmZlckxpc3QoZm9ybWF0KQogewotICAgIGlmICghc2FtcGxlQ291bnQpCi0gICAgICAgIHJldHVy
bjsKKyAgICBzZXRTYW1wbGVDb3VudChzYW1wbGVDb3VudCk7Cit9CiAKLSAgICB1aW50MzJfdCBi
dWZmZXJDb3VudCA9IGZvcm1hdC5udW1iZXJPZkNoYW5uZWxTdHJlYW1zKCk7Ci0gICAgdWludDMy
X3QgY2hhbm5lbENvdW50ID0gZm9ybWF0Lm51bWJlck9mSW50ZXJsZWF2ZWRDaGFubmVscygpOwor
dm9pZCBXZWJBdWRpb0J1ZmZlckxpc3Q6OnNldFNhbXBsZUNvdW50KHVpbnQzMl90IHNhbXBsZUNv
dW50KQoreworICAgIGlmICghc2FtcGxlQ291bnQgfHwgbV9zYW1wbGVDb3VudCA9PSBzYW1wbGVD
b3VudCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgc2l6ZV90IGJ5dGVzUGVyQnVmZmVyID0gc2Ft
cGxlQ291bnQgKiBjaGFubmVsQ291bnQgKiBmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpOwotICAgIG1f
ZmxhdEJ1ZmZlci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGJ1ZmZlckNvdW50ICogYnl0ZXNQZXJC
dWZmZXIpOwotICAgIGF1dG8gZGF0YSA9IG1fZmxhdEJ1ZmZlci5kYXRhKCk7CisgICAgbV9zYW1w
bGVDb3VudCA9IHNhbXBsZUNvdW50OworICAgIHNpemVfdCBieXRlc1BlckJ1ZmZlciA9IG1fc2Ft
cGxlQ291bnQgKiBtX2NoYW5uZWxDb3VudCAqIG1fYnl0ZXNQZXJGcmFtZTsKKyAgICBtX2ZsYXRC
dWZmZXIucmVzaXplKG1fY2Fub25pY2FsTGlzdC0+bU51bWJlckJ1ZmZlcnMgKiBieXRlc1BlckJ1
ZmZlcik7CisgICAgYXV0byogZGF0YSA9IG1fZmxhdEJ1ZmZlci5kYXRhKCk7CiAKICAgICBmb3Ig
KHVpbnQzMl90IGJ1ZmZlciA9IDA7IGJ1ZmZlciA8IG1fY2Fub25pY2FsTGlzdC0+bU51bWJlckJ1
ZmZlcnM7ICsrYnVmZmVyKSB7CiAgICAgICAgIG1fY2Fub25pY2FsTGlzdC0+bUJ1ZmZlcnNbYnVm
ZmVyXS5tRGF0YSA9IGRhdGE7CkBAIC03Nyw3ICs4MSw2IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6
V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0
LCB1CiBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVy
KQogICAgIDogV2ViQXVkaW9CdWZmZXJMaXN0KGZvcm1hdCkKIHsKLQogICAgIGlmICghc2FtcGxl
QnVmZmVyKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmgKaW5kZXggOGE3ZTdhMDNh
YzMzYTRlNTVjNDNjMzFhZWM2MzdiMTg5Y2IxYzdlYi4uY2M4YjY4ZDFjNzU0ZjZjZjY1ZDYxMzZh
ZDEyZDM4YWQwZmZmYmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmgKQEAgLTQ2LDExICs0NiwxMyBAQCBw
dWJsaWM6CiAgICAgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIENNU2FtcGxlQnVmZmVyUmVmKTsKIAogICAgIHZvaWQgcmVzZXQoKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFNhbXBsZUNvdW50KHVpbnQzMl90KTsKIAogICAgIEF1ZGlvQnVm
ZmVyTGlzdCogbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5nZXQoKTsgfQogICAgIG9wZXJh
dG9yIEF1ZGlvQnVmZmVyTGlzdCYoKSBjb25zdCB7IHJldHVybiAqbV9saXN0OyB9CiAKICAgICB1
aW50MzJfdCBidWZmZXJDb3VudCgpIGNvbnN0OworICAgIHVpbnQzMl90IGNoYW5uZWxDb3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENvdW50OyB9CiAgICAgQXVkaW9CdWZmZXIqIGJ1ZmZl
cih1aW50MzJfdCBpbmRleCkgY29uc3Q7CiAgICAgV1RGOjpJdGVyYXRvclJhbmdlPEF1ZGlvQnVm
ZmVyKj4gYnVmZmVycygpIGNvbnN0OwogCkBAIC01OCw2ICs2MCw5IEBAIHByaXZhdGU6CiAgICAg
S2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gS2luZDo6V2ViQXVkaW9CdWZmZXJMaXN0OyB9CiAK
ICAgICBzaXplX3QgbV9saXN0QnVmZmVyU2l6ZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtX2J5dGVz
UGVyRnJhbWUgeyAwIH07CisgICAgdWludDMyX3QgbV9jaGFubmVsQ291bnQgeyAwIH07CisgICAg
dWludDMyX3QgbV9zYW1wbGVDb3VudCB7IDAgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9C
dWZmZXJMaXN0PiBtX2Nhbm9uaWNhbExpc3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVm
ZmVyTGlzdD4gbV9saXN0OwogICAgIFJldGFpblB0cjxDTUJsb2NrQnVmZmVyUmVmPiBtX2Jsb2Nr
QnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQppbmRleCAxYWNkODdlYTJiNjg4Yjkx
ZTI1ZDQzNzJkMDY3MTk2MGE3NzNjNmQyLi5jMWI5YzlkMDFjOTA1M2VmYzcxOTI5NGFiNzNmZWEx
ZWJkODdiNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtMjEzLDcgKzIxMyw3
IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUoKQogICAgIGNvbnN0IGJv
b2wgaXNOb25JbnRlcmxlYXZlZCA9IHRydWU7CiAgICAgRmlsbE91dEFTQkRGb3JMUENNKG1fc3Ry
ZWFtRm9ybWF0LCByYXRlLCBjaGFubmVsQ291bnQsIGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9h
dCwgYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0LCBpc0Zsb2F0LCBpc0JpZ0VuZGlhbiwgaXNO
b25JbnRlcmxlYXZlZCk7CiAKLSAgICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2Vi
QXVkaW9CdWZmZXJMaXN0PihtX3N0cmVhbUZvcm1hdCwgbV9zdHJlYW1Gb3JtYXQubUJ5dGVzUGVy
RnJhbWUgKiBtX21heGltaXVtRnJhbWVDb3VudCk7CisgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBt
YWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9zdHJlYW1Gb3JtYXQsIG1fbWF4aW1pdW1G
cmFtZUNvdW50KTsKIAogICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b247CiAgICAgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEwsICZtX3N0cmVhbUZv
cm1hdCwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IGNiYzNkZDU5YzNmZTcwMDk0MmM0NjE1OWQzMzgxM2Ri
NGYxZDNmYjQuLjRlNTlmNWQ5YTA4NzBiMDc4YmEwOGNjMGEwN2ZlOTczODFjYTYxYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtMTM4LDE3ICsxMzgsMTcgQEAgdm9pZCBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVk
TWVtb3J5OjpIYW4KICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxs
KCkpOwogICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CiAgICAgbV9yaW5nQnVmZmVyLT5h
bGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFr
ZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7
CiB9CiAKIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKIHsKLSAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGFsbG9jYXRlIHRoaXMgYnVmZmVyIG9uY2UgYW5kIHJlc2l6ZSBpdCBhcyBu
ZWVkZWQuCi0gICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvRGF0YShtX2Rlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJh
bWVzKTsKIAogICAgIG1fcmluZ0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJh
bWUsIGVuZEZyYW1lKTsKLSAgICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0KCks
IG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBtX3JpbmdCdWZmZXItPmZl
dGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
IAotICAgIG1fc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9E
YXRhLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9zb3VyY2UtPnJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCA2NWJhNTY0
MmE4NmIyNjg0Njc1MzdhOGM5N2RiOTllOGY3YzkyMmUwLi41ODVmNzdlOGU3MmU1N2I2YTc3ZDdi
NzE5MTYyMzcyZDFiMzRiNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCkBAIC03MSw2ICs3Miw3IEBA
IHByaXZhdGU6CiAgICAgICAgIFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJj
ZTsKICAgICAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRp
b247CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmlu
Z0J1ZmZlcjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVy
TGlzdD4gbV9idWZmZXI7CiAgICAgfTsKIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399278</attachid>
            <date>2020-05-13 10:35:46 -0700</date>
            <delta_ts>2020-05-13 11:02:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211720-20200513193544.patch</filename>
            <type>text/plain</type>
            <size>14588</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVhZjExZDY3ZDM2NTRk
MDBhNWNkYTgzN2Y3NmUyM2I3OTY4MGZkOC4uMTI4YTc3MWI0OGZjMTQxYzQ0OThkMDkyMzNmZGNj
OWRkYjFmYmYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA1LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBXZWJBdWRpb0J1
ZmZlckxpc3QgdG8gZHluYW1pY2FsbHkgY2hhbmdlIGl0cyBudW1iZXIgb2YgZnJhbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3MjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2Ugc29tZXRpbWVzIGNy
ZWF0ZSBXZWJBdWRpb0J1ZmZlckxpc3Qgb24gdGhlIHN0YWNrIHdoaWNoIHRyaWdnZXJzIGFsbG9j
YXRpb24gb2Ygc2V2ZXJhbCB2ZWN0b3JzLgorICAgICAgICBJbnN0ZWFkIG9mIGRvaW5nIHRoYXQg
Zm9yIGV2ZXJ5IGF1ZGlvIHNhbXBsZSBjaHVuaywgd2Ugc2hvdWxkIGFsbG9jYXRlIHRoZSBXZWJB
dWRpb0J1ZmZlckxpc3QgYW5kIHJlc2l6ZSBpdCBhcyBuZWNlc3NhcnkuCisgICAgICAgIEZvciB0
aGF0IHB1cnBvc2UsIHdlIGludHJvZHVjZSBXZWJBdWRpb0J1ZmZlckxpc3Q6OnVwZGF0ZVdpdGhO
dW1iZXJPZkZyYW1lcyBhbmQgdXNlIGl0IGluIHR3byBwbGFjZXM6CisgICAgICAgIC0gV2hlbiBj
cmVhdGluZyBhbiBhdWRpbyB0cmFjayBpbnRvIFdlYkF1ZGlvLgorICAgICAgICAtIFdoZW4gcmVj
ZWl2aW5nIGF1ZGlvIGNodW5rcyBmcm9tIGFub3RoZXIgcHJvY2Vzcy4KKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjp+TWVkaWFTdHJlYW1BdWRpb1NvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3Ry
ZWFtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRp
b0J1ZmZlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0OjpX
ZWJBdWRpb0J1ZmZlckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0
Ojp1cGRhdGVXaXRoTnVtYmVyT2ZGcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9C
dWZmZXJMaXN0OjpjaGFubmVsQ291bnQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1
ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAgICBEcml2ZS1ieSBmaXgsIHdlIGRv
IG5vdCBuZWVkIHRvIGdpdmUgdGhlIHNpemUgaW4gYnl0ZXMgYnV0IHRoZSBzaXplIGluIHNhbXBs
ZXMuCisKIDIwMjAtMDUtMTIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxl
LmNvbT4KIAogICAgICAgICBOZWVkIHRvIGFkdmVydGlzZSBzdXBwb3J0IGZvciBXZWJQIGluIHRo
ZSBBY2NlcHQgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM0NDc3NDhhYWQ3MmJlYzJlODNlNDY5OWJiZjJh
NzljZWRhMTIxM2MuLjI3NjU1ZTA4NGJlNjc1NjlkZTUzM2U3MDY3NDc0MDE0MmRlODc3MWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDUtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IFdlYkF1ZGlvQnVmZmVyTGlzdCB0byBkeW5h
bWljYWxseSBjaGFuZ2UgaXRzIG51bWJlciBvZiBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTcyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OmF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5oOgorCiAyMDIwLTA1LTExICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGaXggcHJvYmxlbXMgY2F1Z2h0IGJ5IHJlcGxhY2luZyBXVEY6Ok9wdGlvbmFsIHdpdGgg
c3RkOjpvcHRpb25hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKaW5kZXggZmM4YWU2NmNiNTMyZGZiOTAz
Mzg5ZGY0MmMzYzBhZGYyNjg1M2U0Ny4uNzE1MjNiYjkwYjc0NmNjYjEwODI5OWFlNmEyMGU3ODZj
ZTcwZWRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVk
ZSA8d3RmL1VVSUQuaD4KKyNpbmNsdWRlICJQbGF0Zm9ybUF1ZGlvRGF0YS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTM5LDYgKzM5LDggQEAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZShmbG9hdCBzYW1wbGVSYXRlKQogICAgIG1fY3VycmVudFNl
dHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7CiB9CiAKK01lZGlhU3RyZWFtQXVkaW9T
b3VyY2U6On5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgPSBkZWZhdWx0OworCiBjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBh
YmlsaXRpZXMoKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
LmgKaW5kZXggMTY3MjY4MTdkYjM3MzU0YjgxMzk1YzQzNTYzMDM2Yzg0Yzg3MTA5ZC4uNzdkOTkz
YjUzM2YxNDk4NWUyY2M3ZjI3M2RkODZmMzRlMjcxMzFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKQEAg
LTM1LDEzICszNSwxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0J1czsK
K2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllczsKIAogY2xhc3MgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U+IGNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UgeyBzYW1wbGVSYXRlIH0pOyB9CiAKLSAgICB+TWVk
aWFTdHJlYW1BdWRpb1NvdXJjZSgpID0gZGVmYXVsdDsKKyAgICB+TWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZSgpOwogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2Fw
YWJpbGl0aWVzKCkgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiBzZXR0aW5ncygpIGZpbmFsOwpAQCAtNTgsNiArNTksNyBAQCBwcml2YXRlOgogCiAgICAgU3Ry
aW5nIG1fZGV2aWNlSWQ7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVu
dFNldHRpbmdzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybUF1ZGlvRGF0YT4gbV9hdWRp
b0J1ZmZlcjsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIHNpemVfdCBtX251bWJlck9mRnJh
bWVzIHsgMCB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggN2Ix
OWFmYjM3MjU2YmMyNGI0ZDg1ZjlhNzdlZjEwYjAxMDc2ZmRlOS4uMjc2NTU0ZDkxOTIzMjk2MDlh
NTQ4NGM3NDJkYjUwMjYyZmQzY2VmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApA
QCAtNDEsNyArNDEsNyBAQCB1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBpbmxpbmUgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbURl
c2NyaXB0aW9uKHNpemVfdCBzYW1wbGVSYXRlLCBzaXplX3QgY2hhbm5lbENvdW50KQorc3RhdGlj
IGlubGluZSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gc3RyZWFtRGVzY3JpcHRpb24oc2l6ZV90
IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQpCiB7CiAgICAgYm9vbCBpc0Zsb2F0ID0g
dHJ1ZTsKICAgICBib29sIGlzQmlnRW5kaWFuID0gZmFsc2U7CkBAIC03NSwxNSArNzUsMTkgQEAg
dm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywg
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlh
VGltZShzdGFydFRpbWUpOwogICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7
CiAKLSAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbmV3RGVzY3JpcHRpb24gPSBzdHJl
YW1EZXNjcmlwdGlvbihtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCksIGJ1cy5udW1iZXJP
ZkNoYW5uZWxzKCkpOworICAgIGF1dG8qIGF1ZGlvQnVmZmVyID0gbV9hdWRpb0J1ZmZlciA/ICZk
b3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KCptX2F1ZGlvQnVmZmVyKSA6IG51bGxwdHI7CiAK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBvbmNlIGlu
IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UgYW5kIHJlc2l6ZSBpdCBhY2NvcmRpbmcgbnVtYmVyT2ZG
cmFtZXMuCi0gICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvQnVmZmVyTGlzdCB7IENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbihuZXdEZXNjcmlwdGlvbiksIFdURjo6c2FmZUNhc3Q8dWludDMyX3Q+
KG51bWJlck9mRnJhbWVzKSB9OworICAgIGF1dG8gZGVzY3JpcHRpb24gPSBzdHJlYW1EZXNjcmlw
dGlvbihtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCksIGJ1cy5udW1iZXJPZkNoYW5uZWxz
KCkpOworICAgIGlmICghYXVkaW9CdWZmZXIgfHwgYXVkaW9CdWZmZXItPmNoYW5uZWxDb3VudCgp
ICE9IGJ1cy5udW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICAgICAgbV9hdWRpb0J1ZmZlciA9IG1h
a2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgV1RGOjpzYWZlQ2FzdDx1
aW50MzJfdD4obnVtYmVyT2ZGcmFtZXMpKTsKKyAgICAgICAgYXVkaW9CdWZmZXIgPSAmZG93bmNh
c3Q8V2ViQXVkaW9CdWZmZXJMaXN0PigqbV9hdWRpb0J1ZmZlcik7CisgICAgfSBlbHNlCisgICAg
ICAgIGF1ZGlvQnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7CiAKICAgICBm
b3IgKHNpemVfdCBjcHRyID0gMDsgY3B0ciA8IGJ1cy5udW1iZXJPZkNoYW5uZWxzKCk7ICsrY3B0
cikKLSAgICAgICAgY29weUNoYW5uZWxEYXRhKCpidXMuY2hhbm5lbChjcHRyKSwgKmF1ZGlvQnVm
ZmVyTGlzdC5idWZmZXIoY3B0ciksIG51bWJlck9mRnJhbWVzLCBtdXRlZCgpKTsKKyAgICAgICAg
Y29weUNoYW5uZWxEYXRhKCpidXMuY2hhbm5lbChjcHRyKSwgKmF1ZGlvQnVmZmVyLT5idWZmZXIo
Y3B0ciksIG51bWJlck9mRnJhbWVzLCBtdXRlZCgpKTsKIAotICAgIGF1ZGlvU2FtcGxlc0F2YWls
YWJsZShtZWRpYVRpbWUsIGF1ZGlvQnVmZmVyTGlzdCwgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
KG5ld0Rlc2NyaXB0aW9uKSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIGF1ZGlvU2FtcGxlc0F2YWls
YWJsZShtZWRpYVRpbWUsICptX2F1ZGlvQnVmZmVyLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFt
ZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcAppbmRl
eCBiMjZkNTFkZDIyM2U0OGY4NzliMjYxZDAzMTljZTBiMDM3ZmZiOTc0Li41ZmIwNTgyOTE2MzI0
NTlhNGI2YzVkODg4NGJlNDE0YjIwYjk0ZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKQEAgLTMz
LDExICszMywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwog
CiBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGZvcm1hdCkKKyAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQuYnl0
ZXNQZXJGcmFtZSgpKQorICAgICwgbV9jaGFubmVsQ291bnQoZm9ybWF0Lm51bWJlck9mSW50ZXJs
ZWF2ZWRDaGFubmVscygpKQogewogICAgIC8vIEF1ZGlvQnVmZmVyTGlzdCBpcyBhIHZhcmlhYmxl
LWxlbmd0aCBzdHJ1Y3QsIHNvIGNyZWF0ZSBvbiB0aGUgaGVhcCB3aXRoIGEgZ2VuZXJpYyBuZXco
KSBvcGVyYXRvcgogICAgIC8vIHdpdGggYSBjdXN0b20gc2l6ZSwgYW5kIGluaXRpYWxpemUgdGhl
IHN0cnVjdCBtYW51YWxseS4KICAgICB1aW50MzJfdCBidWZmZXJDb3VudCA9IGZvcm1hdC5udW1i
ZXJPZkNoYW5uZWxTdHJlYW1zKCk7Ci0gICAgdWludDMyX3QgY2hhbm5lbENvdW50ID0gZm9ybWF0
Lm51bWJlck9mSW50ZXJsZWF2ZWRDaGFubmVscygpOwogCiAgICAgdWludDY0X3QgYnVmZmVyTGlz
dFNpemUgPSBvZmZzZXRvZihBdWRpb0J1ZmZlckxpc3QsIG1CdWZmZXJzKSArIChzaXplb2YoQXVk
aW9CdWZmZXIpICogc3RkOjptYXgoMVUsIGJ1ZmZlckNvdW50KSk7CiAgICAgQVNTRVJUKGJ1ZmZl
ckxpc3RTaXplIDw9IFNJWkVfTUFYKTsKQEAgLTQ3LDcgKzQ4LDcgQEAgV2ViQXVkaW9CdWZmZXJM
aXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBm
b3JtYXQpCiAgICAgbWVtc2V0KG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgMCwgbV9saXN0QnVmZmVy
U2l6ZSk7CiAgICAgbV9jYW5vbmljYWxMaXN0LT5tTnVtYmVyQnVmZmVycyA9IGJ1ZmZlckNvdW50
OwogICAgIGZvciAodWludDMyX3QgYnVmZmVyID0gMDsgYnVmZmVyIDwgYnVmZmVyQ291bnQ7ICsr
YnVmZmVyKQotICAgICAgICBtX2Nhbm9uaWNhbExpc3QtPm1CdWZmZXJzW2J1ZmZlcl0ubU51bWJl
ckNoYW5uZWxzID0gY2hhbm5lbENvdW50OworICAgICAgICBtX2Nhbm9uaWNhbExpc3QtPm1CdWZm
ZXJzW2J1ZmZlcl0ubU51bWJlckNoYW5uZWxzID0gbV9jaGFubmVsQ291bnQ7CiAKICAgICByZXNl
dCgpOwogfQpAQCAtNTUsMTUgKzU2LDE4IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9C
dWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQogV2ViQXVk
aW9CdWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiBmb3JtYXQsIHVpbnQzMl90IHNhbXBsZUNvdW50KQogICAgIDogV2ViQXVkaW9CdWZm
ZXJMaXN0KGZvcm1hdCkKIHsKLSAgICBpZiAoIXNhbXBsZUNvdW50KQotICAgICAgICByZXR1cm47
CisgICAgc2V0U2FtcGxlQ291bnQoc2FtcGxlQ291bnQpOworfQogCi0gICAgdWludDMyX3QgYnVm
ZmVyQ291bnQgPSBmb3JtYXQubnVtYmVyT2ZDaGFubmVsU3RyZWFtcygpOwotICAgIHVpbnQzMl90
IGNoYW5uZWxDb3VudCA9IGZvcm1hdC5udW1iZXJPZkludGVybGVhdmVkQ2hhbm5lbHMoKTsKK3Zv
aWQgV2ViQXVkaW9CdWZmZXJMaXN0OjpzZXRTYW1wbGVDb3VudCh1aW50MzJfdCBzYW1wbGVDb3Vu
dCkKK3sKKyAgICBpZiAoIXNhbXBsZUNvdW50IHx8IG1fc2FtcGxlQ291bnQgPT0gc2FtcGxlQ291
bnQpCisgICAgICAgIHJldHVybjsKIAotICAgIHNpemVfdCBieXRlc1BlckJ1ZmZlciA9IHNhbXBs
ZUNvdW50ICogY2hhbm5lbENvdW50ICogZm9ybWF0LmJ5dGVzUGVyRnJhbWUoKTsKLSAgICBtX2Zs
YXRCdWZmZXIucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShidWZmZXJDb3VudCAqIGJ5dGVzUGVyQnVm
ZmVyKTsKLSAgICBhdXRvIGRhdGEgPSBtX2ZsYXRCdWZmZXIuZGF0YSgpOworICAgIG1fc2FtcGxl
Q291bnQgPSBzYW1wbGVDb3VudDsKKyAgICBzaXplX3QgYnl0ZXNQZXJCdWZmZXIgPSBtX3NhbXBs
ZUNvdW50ICogbV9jaGFubmVsQ291bnQgKiBtX2J5dGVzUGVyRnJhbWU7CisgICAgbV9mbGF0QnVm
ZmVyLnJlc2l6ZShtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZmZXJzICogYnl0ZXNQZXJCdWZm
ZXIpOworICAgIGF1dG8qIGRhdGEgPSBtX2ZsYXRCdWZmZXIuZGF0YSgpOwogCiAgICAgZm9yICh1
aW50MzJfdCBidWZmZXIgPSAwOyBidWZmZXIgPCBtX2Nhbm9uaWNhbExpc3QtPm1OdW1iZXJCdWZm
ZXJzOyArK2J1ZmZlcikgewogICAgICAgICBtX2Nhbm9uaWNhbExpc3QtPm1CdWZmZXJzW2J1ZmZl
cl0ubURhdGEgPSBkYXRhOwpAQCAtNzcsNyArODEsNiBAQCBXZWJBdWRpb0J1ZmZlckxpc3Q6Oldl
YkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwg
dQogV2ViQXVkaW9CdWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikK
ICAgICA6IFdlYkF1ZGlvQnVmZmVyTGlzdChmb3JtYXQpCiB7Ci0KICAgICBpZiAoIXNhbXBsZUJ1
ZmZlcikKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCmluZGV4IDhhN2U3YTAzYWMz
M2E0ZTU1YzQzYzMxYWVjNjM3YjE4OWNiMWM3ZWIuLmNjOGI2OGQxYzc1NGY2Y2Y2NWQ2MTM2YWQx
MmQzOGFkMGZmZmJiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00NiwxMSArNDYsMTMgQEAgcHVi
bGljOgogICAgIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBDTVNhbXBsZUJ1ZmZlclJlZik7CiAKICAgICB2b2lkIHJlc2V0KCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRTYW1wbGVDb3VudCh1aW50MzJfdCk7CiAKICAgICBBdWRpb0J1ZmZl
ckxpc3QqIGxpc3QoKSBjb25zdCB7IHJldHVybiBtX2xpc3QuZ2V0KCk7IH0KICAgICBvcGVyYXRv
ciBBdWRpb0J1ZmZlckxpc3QmKCkgY29uc3QgeyByZXR1cm4gKm1fbGlzdDsgfQogCiAgICAgdWlu
dDMyX3QgYnVmZmVyQ291bnQoKSBjb25zdDsKKyAgICB1aW50MzJfdCBjaGFubmVsQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX2NoYW5uZWxDb3VudDsgfQogICAgIEF1ZGlvQnVmZmVyKiBidWZmZXIo
dWludDMyX3QgaW5kZXgpIGNvbnN0OwogICAgIFdURjo6SXRlcmF0b3JSYW5nZTxBdWRpb0J1ZmZl
cio+IGJ1ZmZlcnMoKSBjb25zdDsKIApAQCAtNTgsNiArNjAsOSBAQCBwcml2YXRlOgogICAgIEtp
bmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIEtpbmQ6OldlYkF1ZGlvQnVmZmVyTGlzdDsgfQogCiAg
ICAgc2l6ZV90IG1fbGlzdEJ1ZmZlclNpemUgeyAwIH07CisgICAgdWludDMyX3QgbV9ieXRlc1Bl
ckZyYW1lIHsgMCB9OworICAgIHVpbnQzMl90IG1fY2hhbm5lbENvdW50IHsgMCB9OworICAgIHVp
bnQzMl90IG1fc2FtcGxlQ291bnQgeyAwIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVm
ZmVyTGlzdD4gbV9jYW5vbmljYWxMaXN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1ZmZl
ckxpc3Q+IG1fbGlzdDsKICAgICBSZXRhaW5QdHI8Q01CbG9ja0J1ZmZlclJlZj4gbV9ibG9ja0J1
ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggMWFjZDg3ZWEyYjY4OGI5MWUy
NWQ0MzcyZDA2NzE5NjBhNzczYzZkMi4uYzFiOWM5ZDAxYzkwNTNlZmM3MTkyOTRhYjczZmVhMWVi
ZDg3YjVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAgLTIxMyw3ICsyMTMsNyBA
QCB2b2lkIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlKCkKICAgICBjb25zdCBib29s
IGlzTm9uSW50ZXJsZWF2ZWQgPSB0cnVlOwogICAgIEZpbGxPdXRBU0JERm9yTFBDTShtX3N0cmVh
bUZvcm1hdCwgcmF0ZSwgY2hhbm5lbENvdW50LCBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQs
IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdCwgaXNGbG9hdCwgaXNCaWdFbmRpYW4sIGlzTm9u
SW50ZXJsZWF2ZWQpOwogCi0gICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBtYWtlVW5pcXVlPFdlYkF1
ZGlvQnVmZmVyTGlzdD4obV9zdHJlYW1Gb3JtYXQsIG1fc3RyZWFtRm9ybWF0Lm1CeXRlc1BlckZy
YW1lICogbV9tYXhpbWl1bUZyYW1lQ291bnQpOworICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFr
ZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KG1fc3RyZWFtRm9ybWF0LCBtX21heGltaXVtRnJh
bWVDb3VudCk7CiAKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
OwogICAgIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShOVUxMLCAmbV9zdHJlYW1Gb3Jt
YXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXREZXNjcmlwdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyLmNwcAppbmRleCBjYmMzZGQ1OWMzZmU3MDA5NDJjNDYxNTlkMzM4MTNkYjRm
MWQzZmI0Li40ZTU5ZjVkOWEwODcwYjA3OGJhMDhjYzBhMDdmZTk3MzgxY2E2MWE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTEzOCwxNyArMTM4LDE3IEBAIHZvaWQgUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SGFuCiAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgp
KTsKICAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOwogICAgIG1fcmluZ0J1ZmZlci0+YWxs
b2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1ZmZlciA9IG1ha2VV
bmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwog
fQogCiB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywg
dWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCiB7Ci0gICAgLy8gRklYTUU6
IFdlIHNob3VsZCBhbGxvY2F0ZSB0aGlzIGJ1ZmZlciBvbmNlIGFuZCByZXNpemUgaXQgYXMgbmVl
ZGVkLgotICAgIFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNjcmlwdGlvbiwgbnVt
YmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1l
cyk7CiAKICAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1l
LCBlbmRGcmFtZSk7Ci0gICAgbV9yaW5nQnVmZmVyLT5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBu
dW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRj
aChtX2J1ZmZlci0+bGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CiAK
LSAgICBtX3NvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0
YSwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fc291cmNlLT5yZW1vdGVB
dWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVmZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXggNjViYTU2NDJh
ODZiMjY4NDY3NTM3YThjOTdkYjk5ZThmN2M5MjJlMC4uNTg1Zjc3ZThlNzJlNTdiNmE3N2Q3Yjcx
OTE2MjM3MmQxYjM0YjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIApAQCAtNzEsNiArNzIsNyBAQCBw
cml2YXRlOgogICAgICAgICBSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7
CiAgICAgICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9u
OwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdC
dWZmZXI7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxp
c3Q+IG1fYnVmZmVyOwogICAgIH07CiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>