<?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>213393</bug_id>
          
          <creation_ts>2020-06-19 11:09:53 -0700</creation_ts>
          <short_desc>Added getFloatTimeDomainData method to AnalyserNode</short_desc>
          <delta_ts>2021-01-05 08:30:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly 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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Clark Wang">clark_wang</reporter>
          <assigned_to name="Clark Wang">clark_wang</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>parametrize</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664427</commentid>
    <comment_count>0</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-19 11:09:53 -0700</bug_when>
    <thetext>Added getFloatTimeDomainData method to AnalyserNode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664428</commentid>
    <comment_count>1</comment_count>
      <attachid>402296</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-19 11:13:18 -0700</bug_when>
    <thetext>Created attachment 402296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664433</commentid>
    <comment_count>2</comment_count>
      <attachid>402296</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 11:36:50 -0700</bug_when>
    <thetext>Comment on attachment 402296
Patch

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

&gt; Source/WebCore/Modules/webaudio/AnalyserNode.idl:45
&gt; +    void getFloatTimeDomainData(Float32Array? array); // FIXME: The parameter should not be nullable.

Since this is new code, why a FIXME comment? Why not make the parameter non-nullable?

Also, everything you add should be behind the Modern Web Audio flag so:
[EnabledBySetting=ModernUnprefixedWebAudio] void getFloatTimeDomainData(Float32Array array);

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:265
&gt; +void RealtimeAnalyser::getFloatTimeDomainData(Float32Array* destinationArray)

If this implementation is based on the Blink one, please state so in the ChangeLog file.

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:273
&gt; +    size_t len = std::min(fftSize, destinationArray-&gt;length());

No abbreviations in WebKit: len -&gt; length

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:285
&gt; +        for (unsigned i = 0; i &lt; len; ++i) {

len is a size_t so please use same type for i.

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:287
&gt; +            float value = inputBuffer[(i + writeIndex - fftSize + InputBufferSize) % InputBufferSize];

This local variable is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664566</commentid>
    <comment_count>3</comment_count>
      <attachid>402335</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-19 15:27:04 -0700</bug_when>
    <thetext>Created attachment 402335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664660</commentid>
    <comment_count>4</comment_count>
      <attachid>402335</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 17:52:19 -0700</bug_when>
    <thetext>Comment on attachment 402335
Patch

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

&gt; Source/WebCore/Modules/webaudio/AnalyserNode.h:58
&gt; +    void getFloatTimeDomainData(const RefPtr&lt;JSC::Float32Array&gt;&amp; array) { m_analyser.getFloatTimeDomainData(array.get()); }

const Ref&lt;JSC::Float32Array&gt;&amp;

Same for others.

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:-107
&gt; -        return;    

Please configure your IDE to stop doing these things. We try to avoid unrelated changes in patches as much as possible.

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:-207
&gt; -    if (!destinationArray)

Since destinationArray cannot take null anymore, the parameter should be of type:
Float32Array&amp; destinationArray

This means you&apos;ll need to update AnalyzerNode::getFloatFrequencyData() to take in a Ref&lt;&gt; instead of a RefPtr&lt;&gt;.

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:-232
&gt; -    if (!destinationArray)

ditto

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:-269
&gt; -    if (!destinationArray)

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665034</commentid>
    <comment_count>5</comment_count>
      <attachid>402474</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-22 08:12:36 -0700</bug_when>
    <thetext>Created attachment 402474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665111</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-22 12:26:49 -0700</bug_when>
    <thetext>Committed r263359: &lt;https://trac.webkit.org/changeset/263359&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402474.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665112</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-22 12:27:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64603798&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717317</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-01-05 08:30:38 -0800</bug_when>
    <thetext>*** Bug 220023 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402296</attachid>
            <date>2020-06-19 11:13:18 -0700</date>
            <delta_ts>2020-06-19 15:27:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213393-20200619141317.patch</filename>
            <type>text/plain</type>
            <size>6685</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE2MmM1YzJhNGJhNzc3
YjhlMDc4NTU4NWQyYTcxYmQ2YWIwZWEwZS4uN2JjMDUwODA3YjU0NmQ2ZWZkZWU1Njk1MzI3MmRh
ZjAxMmE3ODcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTE5ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgZ2V0RmxvYXRU
aW1lRG9tYWluRGF0YSBtZXRob2QgdG8gQW5hbHlzZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzOTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBnZXRGbG9hdFRpbWVEb21haW5EYXRh
IG1ldGhvZCwgYXMgcGVyIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jYW5h
bHlzZXJub2RlLgorCisgICAgICAgIFJlLWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0IGFmdGVyIGEg
bmV3IHBhc3NlZCB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5v
ZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGw6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0VGltZURvbWFpbkRhdGEpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5oOgorCiAyMDIwLTA2LTE3ICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11GbG9hdHNdIENs
ZWFudXAgRmxvYXRBdm9pZGVyIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQW5hbHlzZXJOb2RlLmgKaW5kZXggZGExYjVlODljYTI4ZGVlY2MzOWMyZjM2Njk3
ZmQ5MGEwYjNlMGY3ZS4uODE3YzAzYmY1OGFhNjAyYmJhMzFhOWY2NWEwMDkwNjdmNmI5MDg0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oCkBA
IC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0RmxvYXRGcmVxdWVuY3lEYXRh
KGNvbnN0IFJlZlB0cjxKU0M6OkZsb2F0MzJBcnJheT4mIGFycmF5KSB7IG1fYW5hbHlzZXIuZ2V0
RmxvYXRGcmVxdWVuY3lEYXRhKGFycmF5LmdldCgpKTsgfQogICAgIHZvaWQgZ2V0Qnl0ZUZyZXF1
ZW5jeURhdGEoY29uc3QgUmVmUHRyPEpTQzo6VWludDhBcnJheT4mIGFycmF5KSB7IG1fYW5hbHlz
ZXIuZ2V0Qnl0ZUZyZXF1ZW5jeURhdGEoYXJyYXkuZ2V0KCkpOyB9CisgICAgdm9pZCBnZXRGbG9h
dFRpbWVEb21haW5EYXRhKGNvbnN0IFJlZlB0cjxKU0M6OkZsb2F0MzJBcnJheT4mIGFycmF5KSB7
IG1fYW5hbHlzZXIuZ2V0RmxvYXRUaW1lRG9tYWluRGF0YShhcnJheS5nZXQoKSk7IH0KICAgICB2
b2lkIGdldEJ5dGVUaW1lRG9tYWluRGF0YShjb25zdCBSZWZQdHI8SlNDOjpVaW50OEFycmF5PiYg
YXJyYXkpIHsgbV9hbmFseXNlci5nZXRCeXRlVGltZURvbWFpbkRhdGEoYXJyYXkuZ2V0KCkpOyB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0FuYWx5c2VyTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5
c2VyTm9kZS5pZGwKaW5kZXggMzhmYmNkNjdlZDgyYTFhODZkY2EyMjBlOTgzM2UwYjE2MTYwYzg3
YS4uMmU3YTQwNzIyNmM4YmQ1NGFiMDUwYjIxNjA4OGNkODBkNmQzOWI1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlkbApAQCAtNDIsNSAr
NDIsNiBAQAogICAgIHZvaWQgZ2V0Qnl0ZUZyZXF1ZW5jeURhdGEoVWludDhBcnJheT8gYXJyYXkp
OyAvLyBGSVhNRTogVGhlIHBhcmFtZXRlciBzaG91bGQgbm90IGJlIG51bGxhYmxlLgogCiAgICAg
Ly8gUmVhbC10aW1lIHdhdmVmb3JtIGRhdGEKKyAgICB2b2lkIGdldEZsb2F0VGltZURvbWFpbkRh
dGEoRmxvYXQzMkFycmF5PyBhcnJheSk7IC8vIEZJWE1FOiBUaGUgcGFyYW1ldGVyIHNob3VsZCBu
b3QgYmUgbnVsbGFibGUuCiAgICAgdm9pZCBnZXRCeXRlVGltZURvbWFpbkRhdGEoVWludDhBcnJh
eT8gYXJyYXkpOyAvLyBGSVhNRTogVGhlIHBhcmFtZXRlciBzaG91bGQgbm90IGJlIG51bGxhYmxl
LgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRp
bWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1l
QW5hbHlzZXIuY3BwCmluZGV4IGU0N2FlNjAyNGUzMDgwNWY3ZjRkMzM2OGNhODdlYzRkYmUxZTNm
YWEuLjNmOThiNTc4ZjgyNDA1YzA3NTY2ODM2ODc5YTBmMGQ5OGYyNWNhM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcApA
QCAtMjYyLDYgKzI2MiwzNSBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEJ5dGVGcmVxdWVu
Y3lEYXRhKFVpbnQ4QXJyYXkqIGRlc3RpbmF0aW9uQXJyYXkpCiAgICAgfQogfQogCit2b2lkIFJl
YWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0VGltZURvbWFpbkRhdGEoRmxvYXQzMkFycmF5KiBkZXN0
aW5hdGlvbkFycmF5KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgCisgICAg
aWYgKCFkZXN0aW5hdGlvbkFycmF5KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgdW5zaWdu
ZWQgZmZ0U2l6ZSA9IHRoaXMtPmZmdFNpemUoKTsKKyAgICBzaXplX3QgbGVuID0gc3RkOjptaW4o
ZmZ0U2l6ZSwgZGVzdGluYXRpb25BcnJheS0+bGVuZ3RoKCkpOworICAgIGlmIChsZW4gPiAwKSB7
CisgICAgICAgIGJvb2wgaXNJbnB1dEJ1ZmZlckdvb2QgPSBtX2lucHV0QnVmZmVyLnNpemUoKSA9
PSBJbnB1dEJ1ZmZlclNpemUgJiYgbV9pbnB1dEJ1ZmZlci5zaXplKCkgPiBmZnRTaXplOworICAg
ICAgICBBU1NFUlQoaXNJbnB1dEJ1ZmZlckdvb2QpOworICAgICAgICBpZiAoIWlzSW5wdXRCdWZm
ZXJHb29kKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgZmxvYXQqIGlu
cHV0QnVmZmVyID0gbV9pbnB1dEJ1ZmZlci5kYXRhKCk7CisgICAgICAgIGZsb2F0KiBkZXN0aW5h
dGlvbiA9IGRlc3RpbmF0aW9uQXJyYXktPmRhdGEoKTsKKyAgICAgICAgCisgICAgICAgIHVuc2ln
bmVkIHdyaXRlSW5kZXggPSBtX3dyaXRlSW5kZXg7CisgICAgICAgIAorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIC8vIEJ1ZmZlciBhY2Nl
c3MgaXMgcHJvdGVjdGVkIGR1ZSB0byBtb2R1bG8gb3BlcmF0aW9uLgorICAgICAgICAgICAgZmxv
YXQgdmFsdWUgPSBpbnB1dEJ1ZmZlclsoaSArIHdyaXRlSW5kZXggLSBmZnRTaXplICsgSW5wdXRC
dWZmZXJTaXplKSAlIElucHV0QnVmZmVyU2l6ZV07CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGRlc3RpbmF0aW9uW2ldID0gdmFsdWU7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgUmVh
bHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZVRpbWVEb21haW5EYXRhKFVpbnQ4QXJyYXkqIGRlc3RpbmF0
aW9uQXJyYXkpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmgKaW5kZXggMDliMTZl
MTE2YmZjMzBiMzM3ZjQxNTY3ZDM5YTM2NWVhMzM1MTBlMy4uYmY4YjYwOTY2NmEyODAyODUzZDlk
ZmQ5Mzc2MWM3YjZhOGMxODlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBnZXRGbG9hdEZyZXF1ZW5jeURhdGEoSlNDOjpGbG9hdDMyQXJyYXkqKTsKICAgICB2
b2lkIGdldEJ5dGVGcmVxdWVuY3lEYXRhKEpTQzo6VWludDhBcnJheSopOworICAgIHZvaWQgZ2V0
RmxvYXRUaW1lRG9tYWluRGF0YShKU0M6OkZsb2F0MzJBcnJheSopOwogICAgIHZvaWQgZ2V0Qnl0
ZVRpbWVEb21haW5EYXRhKEpTQzo6VWludDhBcnJheSopOwogCiAgICAgLy8gVGhlIGF1ZGlvIHRo
cmVhZCB3cml0ZXMgaW5wdXQgZGF0YSBoZXJlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggMDJmNTEyZTU1N2I0OGI3OWUzNGU4ZGRmZGIwMTA5ZWM0ZjcwOGE3Ny4uOTQ1MGNiYTBm
NmZlYmJmNTljNWRiZTQxYzM1NGZiOTNjNzEyN2Y3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDYtMTkgIENsYXJrIFdhbmcgIDxjbGFya193
YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBnZXRGbG9hdFRpbWVEb21haW5EYXRhIG1l
dGhvZCB0byBBbmFseXNlck5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMzM5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlLWJhc2VsaW5lZCB0ZXN0IHRvIHNob3cgYSBuZXcgcGFzc2luZyB0ZXN0
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0
cHMud2luZG93LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNi0xNyAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBSZWFkYWJsZVN0cmVhbSByb2J1c3QgYWdh
aW5zdCB1c2VyIGNvZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggY2NjN2U5ZThmNzFi
ZjFkNDEyNGRiY2RlODkzNjE2YzI2NDBiYzNhZC4uNGUzY2M0YWU0MjBmMGE3ODJhM2RkNGQxMzBj
OTU0MWIzMWNlMTQ5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTI3MSw3ICsyNzEs
NyBAQCBQQVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iagogUEFTUyBBbmFseXNlck5vZGUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAogUEFTUyBBbmFseXNlck5vZGUgaW50ZXJmYWNlOiBv
cGVyYXRpb24gZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKEZsb2F0MzJBcnJheSkgCiBQQVNTIEFuYWx5
c2VyTm9kZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCeXRlRnJlcXVlbmN5RGF0YShVaW50OEFy
cmF5KSAKLUZBSUwgQW5hbHlzZXJOb2RlIGludGVyZmFjZTogb3BlcmF0aW9uIGdldEZsb2F0VGlt
ZURvbWFpbkRhdGEoRmxvYXQzMkFycmF5KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHBy
b3BlcnR5ICJnZXRGbG9hdFRpbWVEb21haW5EYXRhIiBtaXNzaW5nCitQQVNTIEFuYWx5c2VyTm9k
ZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRGbG9hdFRpbWVEb21haW5EYXRhKEZsb2F0MzJBcnJh
eSkgCiBQQVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCeXRlVGltZURv
bWFpbkRhdGEoVWludDhBcnJheSkgCiBQQVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBmZnRTaXplIAogUEFTUyBBbmFseXNlck5vZGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZnJl
cXVlbmN5QmluQ291bnQgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402335</attachid>
            <date>2020-06-19 15:27:04 -0700</date>
            <delta_ts>2020-06-22 08:12:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213393-20200619182703.patch</filename>
            <type>text/plain</type>
            <size>13405</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYyODAwYjYyNGI4YTFh
OGNlOWYyZTVlNGExN2ZmODE1YjY0MzIwMC4uNTg1Yzg5OGFlYTUyYmQzMDVlYjQ2NTRhZDJiZmY2
NjU5YzQxNjBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA2LTE5ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgZ2V0RmxvYXRU
aW1lRG9tYWluRGF0YSBtZXRob2QgdG8gQW5hbHlzZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzOTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBnZXRGbG9hdFRpbWVEb21haW5EYXRh
IG1ldGhvZCwgYXMgcGVyIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jYW5h
bHlzZXJub2RlLgorICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBSZWFsdGltZUFuYWx5c2VyOjpn
ZXRGbG9hdFRpbWVEb21haW5EYXRhKEZsb2F0MzJBcnJheSogZGVzdGluYXRpb25BcnJheSkgaXMg
YmFzZWQgb246CisgICAgICAgIGh0dHBzOi8vc291cmNlLmNocm9taXVtLm9yZy9jaHJvbWl1bS9j
aHJvbWl1bS9zcmMvKy9tYXN0ZXI6dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy93
ZWJhdWRpby9yZWFsdGltZV9hbmFseXNlci5jYy4KKyAgICAgICAgUmVtb3ZlZCBudWxsYWJsZSBv
cHRpb24gZnJvbSBzb21lIEFuYWx5c2VyTm9kZSBtZXRob2RzLgorCisgICAgICAgIFJlLWJhc2Vs
aW5lZCBleGlzdGluZyB0ZXN0cyB0byBzaG93IG5ldyBwYXNzaW5nIHRlc3QuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQW5hbHlzZXJOb2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6d3Jp
dGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUFuYWx5c2VyOjpkb0ZGVEFuYWx5
c2lzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0RnJlcXVl
bmN5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUFuYWx5c2VyOjpnZXRCeXRlRnJl
cXVlbmN5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUFuYWx5c2VyOjpnZXRGbG9h
dFRpbWVEb21haW5EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lQW5hbHlzZXI6Omdl
dEJ5dGVUaW1lRG9tYWluRGF0YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9SZWFsdGlt
ZUFuYWx5c2VyLmg6CisKIDIwMjAtMDYtMTkgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJA
YXBwbGUuY29tPgogCiAgICAgICAgIEFYOiB3ZWIgcHJvY2VzcyBjcmFzaCBpbiBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BbmFseXNlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQW5hbHlzZXJOb2RlLmgKaW5kZXggYTQwMjNhMzBkZWEwZGYyYmM5YTdiYjA0YmVkYWQ4YTMw
ZGI5ZGNlNS4uM2EyNGFjZTY5ZmIwOTI2OGJiMDdmMmM5ZjE3NTlmMTdmYTRmYzVjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oCkBAIC01NSw2
ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKGNvbnN0
IFJlZlB0cjxKU0M6OkZsb2F0MzJBcnJheT4mIGFycmF5KSB7IG1fYW5hbHlzZXIuZ2V0RmxvYXRG
cmVxdWVuY3lEYXRhKGFycmF5LmdldCgpKTsgfQogICAgIHZvaWQgZ2V0Qnl0ZUZyZXF1ZW5jeURh
dGEoY29uc3QgUmVmUHRyPEpTQzo6VWludDhBcnJheT4mIGFycmF5KSB7IG1fYW5hbHlzZXIuZ2V0
Qnl0ZUZyZXF1ZW5jeURhdGEoYXJyYXkuZ2V0KCkpOyB9CisgICAgdm9pZCBnZXRGbG9hdFRpbWVE
b21haW5EYXRhKGNvbnN0IFJlZlB0cjxKU0M6OkZsb2F0MzJBcnJheT4mIGFycmF5KSB7IG1fYW5h
bHlzZXIuZ2V0RmxvYXRUaW1lRG9tYWluRGF0YShhcnJheS5nZXQoKSk7IH0KICAgICB2b2lkIGdl
dEJ5dGVUaW1lRG9tYWluRGF0YShjb25zdCBSZWZQdHI8SlNDOjpVaW50OEFycmF5PiYgYXJyYXkp
IHsgbV9hbmFseXNlci5nZXRCeXRlVGltZURvbWFpbkRhdGEoYXJyYXkuZ2V0KCkpOyB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5
c2VyTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9k
ZS5pZGwKaW5kZXggMzhmYmNkNjdlZDgyYTFhODZkY2EyMjBlOTgzM2UwYjE2MTYwYzg3YS4uMjIw
YWVmOTU5YWYyYjM5NzJkM2I4OTg2NmFkYTkyM2Q1NmNmNjBmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlkbApAQCAtMzgsOSArMzgsMTAg
QEAKIAogICAgIC8vIENvcGllcyB0aGUgY3VycmVudCBmcmVxdWVuY3kgZGF0YSBpbnRvIHRoZSBw
YXNzZWQgYXJyYXkuCiAgICAgLy8gSWYgdGhlIGFycmF5IGhhcyBmZXdlciBlbGVtZW50cyB0aGFu
IHRoZSBmcmVxdWVuY3lCaW5Db3VudCwgdGhlIGV4Y2VzcyBlbGVtZW50cyB3aWxsIGJlIGRyb3Bw
ZWQuCi0gICAgdm9pZCBnZXRGbG9hdEZyZXF1ZW5jeURhdGEoRmxvYXQzMkFycmF5PyBhcnJheSk7
IC8vIEZJWE1FOiBUaGUgcGFyYW1ldGVyIHNob3VsZCBub3QgYmUgbnVsbGFibGUuCi0gICAgdm9p
ZCBnZXRCeXRlRnJlcXVlbmN5RGF0YShVaW50OEFycmF5PyBhcnJheSk7IC8vIEZJWE1FOiBUaGUg
cGFyYW1ldGVyIHNob3VsZCBub3QgYmUgbnVsbGFibGUuCisgICAgdm9pZCBnZXRGbG9hdEZyZXF1
ZW5jeURhdGEoRmxvYXQzMkFycmF5IGFycmF5KTsKKyAgICB2b2lkIGdldEJ5dGVGcmVxdWVuY3lE
YXRhKFVpbnQ4QXJyYXkgYXJyYXkpOwogCiAgICAgLy8gUmVhbC10aW1lIHdhdmVmb3JtIGRhdGEK
LSAgICB2b2lkIGdldEJ5dGVUaW1lRG9tYWluRGF0YShVaW50OEFycmF5PyBhcnJheSk7IC8vIEZJ
WE1FOiBUaGUgcGFyYW1ldGVyIHNob3VsZCBub3QgYmUgbnVsbGFibGUuCisgICAgW0VuYWJsZWRC
eVNldHRpbmc9TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvXSB2b2lkIGdldEZsb2F0VGltZURvbWFp
bkRhdGEoRmxvYXQzMkFycmF5IGFycmF5KTsKKyAgICB2b2lkIGdldEJ5dGVUaW1lRG9tYWluRGF0
YShVaW50OEFycmF5IGFycmF5KTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcAppbmRleCBlNDdhZTYwMjRlMzA4MDVmN2Y0
ZDMzNjhjYTg3ZWM0ZGJlMWUzZmFhLi41NzA2M2FlOTFjZGM1YTc3NzFjNzI4Y2U1YjRiNGM5ZGU4
ZThhYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVh
bHRpbWVBbmFseXNlci5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFJlYWx0aW1lQW5hbHlz
ZXI6OndyaXRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAg
ICBib29sIGlzRGVzdGluYXRpb25Hb29kID0gbV93cml0ZUluZGV4IDwgbV9pbnB1dEJ1ZmZlci5z
aXplKCkgJiYgbV93cml0ZUluZGV4ICsgZnJhbWVzVG9Qcm9jZXNzIDw9IG1faW5wdXRCdWZmZXIu
c2l6ZSgpOwogICAgIEFTU0VSVChpc0Rlc3RpbmF0aW9uR29vZCk7CiAgICAgaWYgKCFpc0Rlc3Rp
bmF0aW9uR29vZCkKLSAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgcmV0dXJuOwogICAgIAog
ICAgIC8vIFBlcmZvcm0gcmVhbC10aW1lIGFuYWx5c2lzCiAgICAgY29uc3QgZmxvYXQqIHNvdXJj
ZSA9IGJ1cy0+Y2hhbm5lbCgwKS0+ZGF0YSgpOwpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgYXBw
bHlXaW5kb3coZmxvYXQqIHAsIHNpemVfdCBuKQogfSAvLyBuYW1lc3BhY2UKIAogdm9pZCBSZWFs
dGltZUFuYWx5c2VyOjpkb0ZGVEFuYWx5c2lzKCkKLXsgICAgCit7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIAogICAgIC8vIFVucm9sbCB0aGUgaW5wdXQgYnVmZmVyIGludG8gYSB0ZW1w
b3JhcnkgYnVmZmVyLCB3aGVyZSB3ZSdsbCBhcHBseSBhbiBhbmFseXNpcyB3aW5kb3cgZm9sbG93
ZWQgYnkgYW4gRkZULgpAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6
ZG9GRlRBbmFseXNpcygpCiAgICAgaWYgKHdyaXRlSW5kZXggPCBmZnRTaXplKSB7CiAgICAgICAg
IG1lbWNweSh0ZW1wUCwgaW5wdXRCdWZmZXIgKyB3cml0ZUluZGV4IC0gZmZ0U2l6ZSArIElucHV0
QnVmZmVyU2l6ZSwgc2l6ZW9mKCp0ZW1wUCkgKiAoZmZ0U2l6ZSAtIHdyaXRlSW5kZXgpKTsKICAg
ICAgICAgbWVtY3B5KHRlbXBQICsgZmZ0U2l6ZSAtIHdyaXRlSW5kZXgsIGlucHV0QnVmZmVyLCBz
aXplb2YoKnRlbXBQKSAqIHdyaXRlSW5kZXgpOwotICAgIH0gZWxzZSAKKyAgICB9IGVsc2UKICAg
ICAgICAgbWVtY3B5KHRlbXBQLCBpbnB1dEJ1ZmZlciArIHdyaXRlSW5kZXggLSBmZnRTaXplLCBz
aXplb2YoKnRlbXBQKSAqIGZmdFNpemUpOwogCiAgICAgCkBAIC0xODgsMTQgKzE4OCwxNCBAQCB2
b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmRvRkZUQW5hbHlzaXMoKQogICAgIC8vIEEgdmFsdWUgb2Yg
MCBkb2VzIG5vIGF2ZXJhZ2luZyB3aXRoIHRoZSBwcmV2aW91cyByZXN1bHQuICBMYXJnZXIgdmFs
dWVzIHByb2R1Y2Ugc2xvd2VyLCBidXQgc21vb3RoZXIgY2hhbmdlcy4KICAgICBkb3VibGUgayA9
IG1fc21vb3RoaW5nVGltZUNvbnN0YW50OwogICAgIGsgPSBzdGQ6Om1heCgwLjAsIGspOwotICAg
IGsgPSBzdGQ6Om1pbigxLjAsIGspOyAgICAKKyAgICBrID0gc3RkOjptaW4oMS4wLCBrKTsKICAg
ICAKICAgICAvLyBDb252ZXJ0IHRoZSBhbmFseXNpcyBkYXRhIGZyb20gY29tcGxleCB0byBtYWdu
aXR1ZGUgYW5kIGF2ZXJhZ2Ugd2l0aCB0aGUgcHJldmlvdXMgcmVzdWx0LgogICAgIGZsb2F0KiBk
ZXN0aW5hdGlvbiA9IG1hZ25pdHVkZUJ1ZmZlcigpLmRhdGEoKTsKICAgICBzaXplX3QgbiA9IG1h
Z25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsr
aSkgewogICAgICAgICBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjKHJlYWxQW2ldLCBpbWFnUFtpXSk7
Ci0gICAgICAgIGRvdWJsZSBzY2FsYXJNYWduaXR1ZGUgPSBhYnMoYykgKiBtYWduaXR1ZGVTY2Fs
ZTsgICAgICAgIAorICAgICAgICBkb3VibGUgc2NhbGFyTWFnbml0dWRlID0gYWJzKGMpICogbWFn
bml0dWRlU2NhbGU7CiAgICAgICAgIGRlc3RpbmF0aW9uW2ldID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KGsgKiBkZXN0aW5hdGlvbltpXSArICgxIC0gaykgKiBzY2FsYXJNYWduaXR1ZGUpOwogICAgIH0K
IH0KQEAgLTIwNCwyMCArMjA0LDE3IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0RmxvYXRG
cmVxdWVuY3lEYXRhKEZsb2F0MzJBcnJheSogZGVzdGluYXRpb25BcnJheSkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKCFkZXN0aW5hdGlvbkFycmF5KQotICAgICAg
ICByZXR1cm47Ci0gICAgICAgIAogICAgIGRvRkZUQW5hbHlzaXMoKTsKICAgICAKICAgICAvLyBD
b252ZXJ0IGZyb20gbGluZWFyIG1hZ25pdHVkZSB0byBmbG9hdGluZy1wb2ludCBkZWNpYmVscy4K
ICAgICBjb25zdCBkb3VibGUgbWluRGVjaWJlbHMgPSBtX21pbkRlY2liZWxzOwogICAgIHVuc2ln
bmVkIHNvdXJjZUxlbmd0aCA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKLSAgICBzaXplX3Qg
bGVuID0gc3RkOjptaW4oc291cmNlTGVuZ3RoLCBkZXN0aW5hdGlvbkFycmF5LT5sZW5ndGgoKSk7
Ci0gICAgaWYgKGxlbiA+IDApIHsKKyAgICBzaXplX3QgbGVuZ3RoID0gc3RkOjptaW4oc291cmNl
TGVuZ3RoLCBkZXN0aW5hdGlvbkFycmF5LT5sZW5ndGgoKSk7CisgICAgaWYgKGxlbmd0aCA+IDAp
IHsKICAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZSA9IG1hZ25pdHVkZUJ1ZmZlcigpLmRhdGEo
KTsKICAgICAgICAgZmxvYXQqIGRlc3RpbmF0aW9uID0gZGVzdGluYXRpb25BcnJheS0+ZGF0YSgp
OwogICAgICAgICAKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgKytpKSB7
CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAg
ICAgIGZsb2F0IGxpbmVhclZhbHVlID0gc291cmNlW2ldOwogICAgICAgICAgICAgZG91YmxlIGRi
TWFnID0gIWxpbmVhclZhbHVlID8gbWluRGVjaWJlbHMgOiBBdWRpb1V0aWxpdGllczo6bGluZWFy
VG9EZWNpYmVscyhsaW5lYXJWYWx1ZSk7CiAgICAgICAgICAgICBkZXN0aW5hdGlvbltpXSA9IHN0
YXRpY19jYXN0PGZsb2F0PihkYk1hZyk7CkBAIC0yMjgsMjMgKzIyNSwyMCBAQCB2b2lkIFJlYWx0
aW1lQW5hbHlzZXI6OmdldEZsb2F0RnJlcXVlbmN5RGF0YShGbG9hdDMyQXJyYXkqIGRlc3RpbmF0
aW9uQXJyYXkpCiB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEJ5dGVGcmVxdWVuY3lEYXRhKFVp
bnQ4QXJyYXkqIGRlc3RpbmF0aW9uQXJyYXkpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKLQotICAgIGlmICghZGVzdGluYXRpb25BcnJheSkKLSAgICAgICAgcmV0dXJuOwotICAgICAg
ICAKKyAgICAKICAgICBkb0ZGVEFuYWx5c2lzKCk7CiAgICAgCiAgICAgLy8gQ29udmVydCBmcm9t
IGxpbmVhciBtYWduaXR1ZGUgdG8gdW5zaWduZWQtYnl0ZSBkZWNpYmVscy4KICAgICB1bnNpZ25l
ZCBzb3VyY2VMZW5ndGggPSBtYWduaXR1ZGVCdWZmZXIoKS5zaXplKCk7Ci0gICAgc2l6ZV90IGxl
biA9IHN0ZDo6bWluKHNvdXJjZUxlbmd0aCwgZGVzdGluYXRpb25BcnJheS0+bGVuZ3RoKCkpOwot
ICAgIGlmIChsZW4gPiAwKSB7CisgICAgc2l6ZV90IGxlbmd0aCA9IHN0ZDo6bWluKHNvdXJjZUxl
bmd0aCwgZGVzdGluYXRpb25BcnJheS0+bGVuZ3RoKCkpOworICAgIGlmIChsZW5ndGggPiAwKSB7
CiAgICAgICAgIGNvbnN0IGRvdWJsZSByYW5nZVNjYWxlRmFjdG9yID0gbV9tYXhEZWNpYmVscyA9
PSBtX21pbkRlY2liZWxzID8gMSA6IDEgLyAobV9tYXhEZWNpYmVscyAtIG1fbWluRGVjaWJlbHMp
OwogICAgICAgICBjb25zdCBkb3VibGUgbWluRGVjaWJlbHMgPSBtX21pbkRlY2liZWxzOwogCiAg
ICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2UgPSBtYWduaXR1ZGVCdWZmZXIoKS5kYXRhKCk7Ci0g
ICAgICAgIHVuc2lnbmVkIGNoYXIqIGRlc3RpbmF0aW9uID0gZGVzdGluYXRpb25BcnJheS0+ZGF0
YSgpOyAgICAgICAgCisgICAgICAgIHVuc2lnbmVkIGNoYXIqIGRlc3RpbmF0aW9uID0gZGVzdGlu
YXRpb25BcnJheS0+ZGF0YSgpOwogICAgICAgICAKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpIHsKICAgICAgICAgICAgIGZsb2F0IGxpbmVhclZhbHVlID0gc291cmNlW2ldOwogICAg
ICAgICAgICAgZG91YmxlIGRiTWFnID0gIWxpbmVhclZhbHVlID8gbWluRGVjaWJlbHMgOiBBdWRp
b1V0aWxpdGllczo6bGluZWFyVG9EZWNpYmVscyhsaW5lYXJWYWx1ZSk7CiAgICAgICAgICAgICAK
QEAgLTI2MiwyNyArMjU2LDQ4IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1
ZW5jeURhdGEoVWludDhBcnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICB9CiB9CiAKLXZvaWQg
UmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZVRpbWVEb21haW5EYXRhKFVpbnQ4QXJyYXkqIGRlc3Rp
bmF0aW9uQXJyYXkpCit2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0VGltZURvbWFpbkRh
dGEoRmxvYXQzMkFycmF5KiBkZXN0aW5hdGlvbkFycmF5KQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKLSAgICBpZiAoIWRlc3RpbmF0aW9uQXJyYXkpCi0gICAgICAgIHJldHVybjsK
KyAgICB1bnNpZ25lZCBmZnRTaXplID0gdGhpcy0+ZmZ0U2l6ZSgpOworICAgIHNpemVfdCBsZW5n
dGggPSBzdGQ6Om1pbihmZnRTaXplLCBkZXN0aW5hdGlvbkFycmF5LT5sZW5ndGgoKSk7CisgICAg
aWYgKGxlbmd0aCA+IDApIHsKKyAgICAgICAgYm9vbCBpc0lucHV0QnVmZmVyR29vZCA9IG1faW5w
dXRCdWZmZXIuc2l6ZSgpID09IElucHV0QnVmZmVyU2l6ZSAmJiBtX2lucHV0QnVmZmVyLnNpemUo
KSA+IGZmdFNpemU7CisgICAgICAgIEFTU0VSVChpc0lucHV0QnVmZmVyR29vZCk7CisgICAgICAg
IGlmICghaXNJbnB1dEJ1ZmZlckdvb2QpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAor
ICAgICAgICBmbG9hdCogaW5wdXRCdWZmZXIgPSBtX2lucHV0QnVmZmVyLmRhdGEoKTsKKyAgICAg
ICAgZmxvYXQqIGRlc3RpbmF0aW9uID0gZGVzdGluYXRpb25BcnJheS0+ZGF0YSgpOwogICAgICAg
ICAKKyAgICAgICAgdW5zaWduZWQgd3JpdGVJbmRleCA9IG1fd3JpdGVJbmRleDsKKyAgICAgICAg
CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
ICAgIC8vIEJ1ZmZlciBhY2Nlc3MgaXMgcHJvdGVjdGVkIGR1ZSB0byBtb2R1bG8gb3BlcmF0aW9u
LgorICAgICAgICAgICAgZGVzdGluYXRpb25baV0gPSBpbnB1dEJ1ZmZlclsoaSArIHdyaXRlSW5k
ZXggLSBmZnRTaXplICsgSW5wdXRCdWZmZXJTaXplKSAlIElucHV0QnVmZmVyU2l6ZV07CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZVRpbWVEb21h
aW5EYXRhKFVpbnQ4QXJyYXkqIGRlc3RpbmF0aW9uQXJyYXkpCit7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKwogICAgIHVuc2lnbmVkIGZmdFNpemUgPSB0aGlzLT5mZnRTaXplKCk7Ci0g
ICAgc2l6ZV90IGxlbiA9IHN0ZDo6bWluKGZmdFNpemUsIGRlc3RpbmF0aW9uQXJyYXktPmxlbmd0
aCgpKTsKLSAgICBpZiAobGVuID4gMCkgeworICAgIHNpemVfdCBsZW5ndGggPSBzdGQ6Om1pbihm
ZnRTaXplLCBkZXN0aW5hdGlvbkFycmF5LT5sZW5ndGgoKSk7CisgICAgaWYgKGxlbmd0aCA+IDAp
IHsKICAgICAgICAgYm9vbCBpc0lucHV0QnVmZmVyR29vZCA9IG1faW5wdXRCdWZmZXIuc2l6ZSgp
ID09IElucHV0QnVmZmVyU2l6ZSAmJiBtX2lucHV0QnVmZmVyLnNpemUoKSA+IGZmdFNpemU7CiAg
ICAgICAgIEFTU0VSVChpc0lucHV0QnVmZmVyR29vZCk7CiAgICAgICAgIGlmICghaXNJbnB1dEJ1
ZmZlckdvb2QpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZmxvYXQqIGlucHV0QnVm
ZmVyID0gbV9pbnB1dEJ1ZmZlci5kYXRhKCk7ICAgICAgICAKKyAgICAgICAgZmxvYXQqIGlucHV0
QnVmZmVyID0gbV9pbnB1dEJ1ZmZlci5kYXRhKCk7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGRl
c3RpbmF0aW9uID0gZGVzdGluYXRpb25BcnJheS0+ZGF0YSgpOwogICAgICAgICAKICAgICAgICAg
dW5zaWduZWQgd3JpdGVJbmRleCA9IG1fd3JpdGVJbmRleDsKIAotICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgewogICAgICAgICAgICAgLy8gQnVmZmVyIGFjY2VzcyBpcyBwcm90ZWN0
ZWQgZHVlIHRvIG1vZHVsbyBvcGVyYXRpb24uCiAgICAgICAgICAgICBmbG9hdCB2YWx1ZSA9IGlu
cHV0QnVmZmVyWyhpICsgd3JpdGVJbmRleCAtIGZmdFNpemUgKyBJbnB1dEJ1ZmZlclNpemUpICUg
SW5wdXRCdWZmZXJTaXplXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1JlYWx0aW1lQW5hbHlzZXIuaAppbmRleCAwOWIxNmUxMTZiZmMzMGIzMzdmNDE1NjdkMzlh
MzY1ZWEzMzUxMGUzLi40NDE1MDMxMmEyZmQ2NTliYzA4ZjhmOGFlOTAzYmYxZTQ0MTZjN2I4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldEZsb2F0RnJlcXVl
bmN5RGF0YShKU0M6OkZsb2F0MzJBcnJheSopOwogICAgIHZvaWQgZ2V0Qnl0ZUZyZXF1ZW5jeURh
dGEoSlNDOjpVaW50OEFycmF5Kik7CisgICAgdm9pZCBnZXRGbG9hdFRpbWVEb21haW5EYXRhKEpT
Qzo6RmxvYXQzMkFycmF5Kik7CiAgICAgdm9pZCBnZXRCeXRlVGltZURvbWFpbkRhdGEoSlNDOjpV
aW50OEFycmF5Kik7CiAKICAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIHdyaXRlcyBpbnB1dCBkYXRh
IGhlcmUuCkBAIC04OSw5ICs5MCw5IEBAIHByaXZhdGU6CiAgICAgQXVkaW9GbG9hdEFycmF5JiBt
YWduaXR1ZGVCdWZmZXIoKSB7IHJldHVybiBtX21hZ25pdHVkZUJ1ZmZlcjsgfQogCiAgICAgLy8g
QSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEgd2hpY2ggYXZlcmFnZXMgdGhlIHByZXZpb3VzIHZlcnNp
b24gb2YgbV9tYWduaXR1ZGVCdWZmZXIgd2l0aCB0aGUgY3VycmVudCBhbmFseXNpcyBtYWduaXR1
ZGUgZGF0YS4KLSAgICBkb3VibGUgbV9zbW9vdGhpbmdUaW1lQ29uc3RhbnQ7ICAgIAorICAgIGRv
dWJsZSBtX3Ntb290aGluZ1RpbWVDb25zdGFudDsKIAotICAgIC8vIFRoZSByYW5nZSB1c2VkIHdo
ZW4gY29udmVydGluZyB3aGVuIHVzaW5nIGdldEJ5dGVGcmVxdWVuY3lEYXRhKCkuIAorICAgIC8v
IFRoZSByYW5nZSB1c2VkIHdoZW4gY29udmVydGluZyB3aGVuIHVzaW5nIGdldEJ5dGVGcmVxdWVu
Y3lEYXRhKCkuCiAgICAgZG91YmxlIG1fbWluRGVjaWJlbHM7CiAgICAgZG91YmxlIG1fbWF4RGVj
aWJlbHM7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggM2IyODMxYjFkMjli
NDVjMDkzMGNlOTQ0NjExMzZhNTIyYmZhY2VjOC4uNTEwZjZlZDBmMWE5Y2E3OGJhNzRlZTYzNjg3
NTg0NDRjYjdjZDYzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjAtMDYtMTkgIENsYXJrIFdhbmcgIDxjbGFya193YW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGRlZCBnZXRGbG9hdFRpbWVEb21haW5EYXRhIG1ldGhvZCB0byBBbmFseXNlck5v
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzM5
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlLWJh
c2VsaW5lZCB0ZXN0IHRvIHNob3cgYSBuZXcgcGFzc2luZyB0ZXN0LgorCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVk
LnR4dDoKKwogMjAyMC0wNi0xMCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjIyNTQ/KTogW1dQRV0gaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sIGlz
IGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxo
YXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggYmE5NDgwODBjYjI3MjI2ZmJj
MGFiMjAwYzUyMmIyMTQ4YjFlODJiNi4uYzY4YTRjYjQzOWYxNjc5NDNiNTI1NDBiYjJmODJmMTY0
OTFmMzM4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9p
ZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTI3MSw3ICsyNzEsNyBAQCBQ
QVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iagogUEFTUyBBbmFseXNlck5vZGUgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVu
c2NvcGFibGVzIHByb3BlcnR5IAogUEFTUyBBbmFseXNlck5vZGUgaW50ZXJmYWNlOiBvcGVyYXRp
b24gZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKEZsb2F0MzJBcnJheSkgCiBQQVNTIEFuYWx5c2VyTm9k
ZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCeXRlRnJlcXVlbmN5RGF0YShVaW50OEFycmF5KSAK
LUZBSUwgQW5hbHlzZXJOb2RlIGludGVyZmFjZTogb3BlcmF0aW9uIGdldEZsb2F0VGltZURvbWFp
bkRhdGEoRmxvYXQzMkFycmF5KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5
ICJnZXRGbG9hdFRpbWVEb21haW5EYXRhIiBtaXNzaW5nCitQQVNTIEFuYWx5c2VyTm9kZSBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBnZXRGbG9hdFRpbWVEb21haW5EYXRhKEZsb2F0MzJBcnJheSkgCiBQ
QVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCeXRlVGltZURvbWFpbkRh
dGEoVWludDhBcnJheSkgCiBQQVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBm
ZnRTaXplIAogUEFTUyBBbmFseXNlck5vZGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZnJlcXVlbmN5
QmluQ291bnQgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402474</attachid>
            <date>2020-06-22 08:12:36 -0700</date>
            <delta_ts>2020-06-22 12:26:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213393-20200622111235.patch</filename>
            <type>text/plain</type>
            <size>12061</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYyODAwYjYyNGI4YTFh
OGNlOWYyZTVlNGExN2ZmODE1YjY0MzIwMC4uMWMyNTYyNzgwM2M3MzRlYzlmZTA3MTBmYzc5YjA5
ZDFmNmViY2Q4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA2LTIyICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgZ2V0RmxvYXRU
aW1lRG9tYWluRGF0YSBtZXRob2QgdG8gQW5hbHlzZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzOTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBnZXRGbG9hdFRpbWVEb21haW5EYXRh
IG1ldGhvZCwgYXMgcGVyIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jYW5h
bHlzZXJub2RlLgorICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBSZWFsdGltZUFuYWx5c2VyOjpn
ZXRGbG9hdFRpbWVEb21haW5EYXRhKEZsb2F0MzJBcnJheSogZGVzdGluYXRpb25BcnJheSkgaXMg
YmFzZWQgb246CisgICAgICAgIGh0dHBzOi8vc291cmNlLmNocm9taXVtLm9yZy9jaHJvbWl1bS9j
aHJvbWl1bS9zcmMvKy9tYXN0ZXI6dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy93
ZWJhdWRpby9yZWFsdGltZV9hbmFseXNlci5jYy4KKyAgICAgICAgUmVtb3ZlZCBudWxsYWJsZSBv
cHRpb24gZnJvbSBzb21lIEFuYWx5c2VyTm9kZSBtZXRob2RzLgorCisgICAgICAgIFJlLWJhc2Vs
aW5lZCBleGlzdGluZyB0ZXN0cyB0byBzaG93IG5ldyBwYXNzaW5nIHRlc3QuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQW5hbHlzZXJOb2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6Z2V0
RmxvYXRGcmVxdWVuY3lEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lQW5hbHlzZXI6
OmdldEJ5dGVGcmVxdWVuY3lEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lQW5hbHlz
ZXI6OmdldEZsb2F0VGltZURvbWFpbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVB
bmFseXNlcjo6Z2V0Qnl0ZVRpbWVEb21haW5EYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL1JlYWx0aW1lQW5hbHlzZXIuaDoKKwogMjAyMC0wNi0xOSAgQW5kcmVzIEdvbnphbGV6ICA8
YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IHdlYiBwcm9jZXNzIGNyYXNoIGlu
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaAppbmRleCBhNDAyM2EzMGRlYTBkZjJiYzlhN2Ji
MDRiZWRhZDhhMzBkYjlkY2U1Li5lMWVkMWVkMDk4ZGM4MTA5MTAxNGEwYWY2OThiNzNlYTkwZmY1
MWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2Vy
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2Rl
LmgKQEAgLTUzLDkgKzUzLDEwIEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRT
bW9vdGhpbmdUaW1lQ29uc3RhbnQoZG91YmxlKTsKICAgICBkb3VibGUgc21vb3RoaW5nVGltZUNv
bnN0YW50KCkgY29uc3QgeyByZXR1cm4gbV9hbmFseXNlci5zbW9vdGhpbmdUaW1lQ29uc3RhbnQo
KTsgfQogCi0gICAgdm9pZCBnZXRGbG9hdEZyZXF1ZW5jeURhdGEoY29uc3QgUmVmUHRyPEpTQzo6
RmxvYXQzMkFycmF5PiYgYXJyYXkpIHsgbV9hbmFseXNlci5nZXRGbG9hdEZyZXF1ZW5jeURhdGEo
YXJyYXkuZ2V0KCkpOyB9Ci0gICAgdm9pZCBnZXRCeXRlRnJlcXVlbmN5RGF0YShjb25zdCBSZWZQ
dHI8SlNDOjpVaW50OEFycmF5PiYgYXJyYXkpIHsgbV9hbmFseXNlci5nZXRCeXRlRnJlcXVlbmN5
RGF0YShhcnJheS5nZXQoKSk7IH0KLSAgICB2b2lkIGdldEJ5dGVUaW1lRG9tYWluRGF0YShjb25z
dCBSZWZQdHI8SlNDOjpVaW50OEFycmF5PiYgYXJyYXkpIHsgbV9hbmFseXNlci5nZXRCeXRlVGlt
ZURvbWFpbkRhdGEoYXJyYXkuZ2V0KCkpOyB9CisgICAgdm9pZCBnZXRGbG9hdEZyZXF1ZW5jeURh
dGEoY29uc3QgUmVmPEpTQzo6RmxvYXQzMkFycmF5PiYgYXJyYXkpIHsgbV9hbmFseXNlci5nZXRG
bG9hdEZyZXF1ZW5jeURhdGEoYXJyYXkuZ2V0KCkpOyB9CisgICAgdm9pZCBnZXRCeXRlRnJlcXVl
bmN5RGF0YShjb25zdCBSZWY8SlNDOjpVaW50OEFycmF5PiYgYXJyYXkpIHsgbV9hbmFseXNlci5n
ZXRCeXRlRnJlcXVlbmN5RGF0YShhcnJheS5nZXQoKSk7IH0KKyAgICB2b2lkIGdldEZsb2F0VGlt
ZURvbWFpbkRhdGEoY29uc3QgUmVmPEpTQzo6RmxvYXQzMkFycmF5PiYgYXJyYXkpIHsgbV9hbmFs
eXNlci5nZXRGbG9hdFRpbWVEb21haW5EYXRhKGFycmF5LmdldCgpKTsgfQorICAgIHZvaWQgZ2V0
Qnl0ZVRpbWVEb21haW5EYXRhKGNvbnN0IFJlZjxKU0M6OlVpbnQ4QXJyYXk+JiBhcnJheSkgeyBt
X2FuYWx5c2VyLmdldEJ5dGVUaW1lRG9tYWluRGF0YShhcnJheS5nZXQoKSk7IH0KIAogcHJpdmF0
ZToKICAgICBBbmFseXNlck5vZGUoQXVkaW9Db250ZXh0QmFzZSYsIGZsb2F0IHNhbXBsZVJhdGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5v
ZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaWRs
CmluZGV4IDM4ZmJjZDY3ZWQ4MmExYTg2ZGNhMjIwZTk4MzNlMGIxNjE2MGM4N2EuLjIyMGFlZjk1
OWFmMmIzOTcyZDNiODk4NjZhZGE5MjNkNTZjZjYwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGwKQEAgLTM4LDkgKzM4LDEwIEBACiAK
ICAgICAvLyBDb3BpZXMgdGhlIGN1cnJlbnQgZnJlcXVlbmN5IGRhdGEgaW50byB0aGUgcGFzc2Vk
IGFycmF5LgogICAgIC8vIElmIHRoZSBhcnJheSBoYXMgZmV3ZXIgZWxlbWVudHMgdGhhbiB0aGUg
ZnJlcXVlbmN5QmluQ291bnQsIHRoZSBleGNlc3MgZWxlbWVudHMgd2lsbCBiZSBkcm9wcGVkLgot
ICAgIHZvaWQgZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKEZsb2F0MzJBcnJheT8gYXJyYXkpOyAvLyBG
SVhNRTogVGhlIHBhcmFtZXRlciBzaG91bGQgbm90IGJlIG51bGxhYmxlLgotICAgIHZvaWQgZ2V0
Qnl0ZUZyZXF1ZW5jeURhdGEoVWludDhBcnJheT8gYXJyYXkpOyAvLyBGSVhNRTogVGhlIHBhcmFt
ZXRlciBzaG91bGQgbm90IGJlIG51bGxhYmxlLgorICAgIHZvaWQgZ2V0RmxvYXRGcmVxdWVuY3lE
YXRhKEZsb2F0MzJBcnJheSBhcnJheSk7CisgICAgdm9pZCBnZXRCeXRlRnJlcXVlbmN5RGF0YShV
aW50OEFycmF5IGFycmF5KTsKIAogICAgIC8vIFJlYWwtdGltZSB3YXZlZm9ybSBkYXRhCi0gICAg
dm9pZCBnZXRCeXRlVGltZURvbWFpbkRhdGEoVWludDhBcnJheT8gYXJyYXkpOyAvLyBGSVhNRTog
VGhlIHBhcmFtZXRlciBzaG91bGQgbm90IGJlIG51bGxhYmxlLgorICAgIFtFbmFibGVkQnlTZXR0
aW5nPU1vZGVyblVucHJlZml4ZWRXZWJBdWRpb10gdm9pZCBnZXRGbG9hdFRpbWVEb21haW5EYXRh
KEZsb2F0MzJBcnJheSBhcnJheSk7CisgICAgdm9pZCBnZXRCeXRlVGltZURvbWFpbkRhdGEoVWlu
dDhBcnJheSBhcnJheSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKaW5kZXggZTQ3YWU2MDI0ZTMwODA1ZjdmNGQzMzY4
Y2E4N2VjNGRiZTFlM2ZhYS4uZmE1ZGVlMjBjYWRkYTMxZmQ5MmMyM2E4ZTk2YjNjNDBjZmNhZDc0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFu
YWx5c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1l
QW5hbHlzZXIuY3BwCkBAIC0yMDAsMjQgKzIwMCwyMSBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6
OmRvRkZUQW5hbHlzaXMoKQogICAgIH0KIH0KIAotdm9pZCBSZWFsdGltZUFuYWx5c2VyOjpnZXRG
bG9hdEZyZXF1ZW5jeURhdGEoRmxvYXQzMkFycmF5KiBkZXN0aW5hdGlvbkFycmF5KQordm9pZCBS
ZWFsdGltZUFuYWx5c2VyOjpnZXRGbG9hdEZyZXF1ZW5jeURhdGEoRmxvYXQzMkFycmF5JiBkZXN0
aW5hdGlvbkFycmF5KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBpZiAo
IWRlc3RpbmF0aW9uQXJyYXkpCi0gICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgZG9GRlRB
bmFseXNpcygpOwogICAgIAogICAgIC8vIENvbnZlcnQgZnJvbSBsaW5lYXIgbWFnbml0dWRlIHRv
IGZsb2F0aW5nLXBvaW50IGRlY2liZWxzLgogICAgIGNvbnN0IGRvdWJsZSBtaW5EZWNpYmVscyA9
IG1fbWluRGVjaWJlbHM7CiAgICAgdW5zaWduZWQgc291cmNlTGVuZ3RoID0gbWFnbml0dWRlQnVm
ZmVyKCkuc2l6ZSgpOwotICAgIHNpemVfdCBsZW4gPSBzdGQ6Om1pbihzb3VyY2VMZW5ndGgsIGRl
c3RpbmF0aW9uQXJyYXktPmxlbmd0aCgpKTsKLSAgICBpZiAobGVuID4gMCkgeworICAgIHNpemVf
dCBsZW5ndGggPSBzdGQ6Om1pbihzb3VyY2VMZW5ndGgsIGRlc3RpbmF0aW9uQXJyYXkubGVuZ3Ro
KCkpOworICAgIGlmIChsZW5ndGggPiAwKSB7CiAgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2Ug
PSBtYWduaXR1ZGVCdWZmZXIoKS5kYXRhKCk7Ci0gICAgICAgIGZsb2F0KiBkZXN0aW5hdGlvbiA9
IGRlc3RpbmF0aW9uQXJyYXktPmRhdGEoKTsKKyAgICAgICAgZmxvYXQqIGRlc3RpbmF0aW9uID0g
ZGVzdGluYXRpb25BcnJheS5kYXRhKCk7CiAgICAgICAgIAotICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkgewogICAgICAgICAgICAgZmxvYXQgbGluZWFyVmFsdWUgPSBzb3VyY2VbaV07
CiAgICAgICAgICAgICBkb3VibGUgZGJNYWcgPSAhbGluZWFyVmFsdWUgPyBtaW5EZWNpYmVscyA6
IEF1ZGlvVXRpbGl0aWVzOjpsaW5lYXJUb0RlY2liZWxzKGxpbmVhclZhbHVlKTsKICAgICAgICAg
ICAgIGRlc3RpbmF0aW9uW2ldID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGRiTWFnKTsKQEAgLTIyNSwy
NiArMjIyLDIzIEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0RmxvYXRGcmVxdWVuY3lEYXRh
KEZsb2F0MzJBcnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICB9CiB9CiAKLXZvaWQgUmVhbHRp
bWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1ZW5jeURhdGEoVWludDhBcnJheSogZGVzdGluYXRpb25B
cnJheSkKK3ZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1ZW5jeURhdGEoVWludDhB
cnJheSYgZGVzdGluYXRpb25BcnJheSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
Ci0gICAgaWYgKCFkZXN0aW5hdGlvbkFycmF5KQotICAgICAgICByZXR1cm47CiAgICAgICAgIAog
ICAgIGRvRkZUQW5hbHlzaXMoKTsKICAgICAKICAgICAvLyBDb252ZXJ0IGZyb20gbGluZWFyIG1h
Z25pdHVkZSB0byB1bnNpZ25lZC1ieXRlIGRlY2liZWxzLgogICAgIHVuc2lnbmVkIHNvdXJjZUxl
bmd0aCA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKLSAgICBzaXplX3QgbGVuID0gc3RkOjpt
aW4oc291cmNlTGVuZ3RoLCBkZXN0aW5hdGlvbkFycmF5LT5sZW5ndGgoKSk7Ci0gICAgaWYgKGxl
biA+IDApIHsKKyAgICBzaXplX3QgbGVuZ3RoID0gc3RkOjptaW4oc291cmNlTGVuZ3RoLCBkZXN0
aW5hdGlvbkFycmF5Lmxlbmd0aCgpKTsKKyAgICBpZiAobGVuZ3RoID4gMCkgewogICAgICAgICBj
b25zdCBkb3VibGUgcmFuZ2VTY2FsZUZhY3RvciA9IG1fbWF4RGVjaWJlbHMgPT0gbV9taW5EZWNp
YmVscyA/IDEgOiAxIC8gKG1fbWF4RGVjaWJlbHMgLSBtX21pbkRlY2liZWxzKTsKICAgICAgICAg
Y29uc3QgZG91YmxlIG1pbkRlY2liZWxzID0gbV9taW5EZWNpYmVsczsKIAogICAgICAgICBjb25z
dCBmbG9hdCogc291cmNlID0gbWFnbml0dWRlQnVmZmVyKCkuZGF0YSgpOwotICAgICAgICB1bnNp
Z25lZCBjaGFyKiBkZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uQXJyYXktPmRhdGEoKTsgICAgICAg
IAorICAgICAgICB1bnNpZ25lZCBjaGFyKiBkZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uQXJyYXku
ZGF0YSgpOwogICAgICAgICAKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsg
KytpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgICAgIGZsb2F0IGxpbmVhclZhbHVlID0gc291cmNlW2ldOwogICAgICAgICAgICAgZG91
YmxlIGRiTWFnID0gIWxpbmVhclZhbHVlID8gbWluRGVjaWJlbHMgOiBBdWRpb1V0aWxpdGllczo6
bGluZWFyVG9EZWNpYmVscyhsaW5lYXJWYWx1ZSk7CiAgICAgICAgICAgICAKQEAgLTI2MiwyNyAr
MjU2LDQ4IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1ZW5jeURhdGEoVWlu
dDhBcnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICB9CiB9CiAKLXZvaWQgUmVhbHRpbWVBbmFs
eXNlcjo6Z2V0Qnl0ZVRpbWVEb21haW5EYXRhKFVpbnQ4QXJyYXkqIGRlc3RpbmF0aW9uQXJyYXkp
Cit2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0VGltZURvbWFpbkRhdGEoRmxvYXQzMkFy
cmF5JiBkZXN0aW5hdGlvbkFycmF5KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0K
LSAgICBpZiAoIWRlc3RpbmF0aW9uQXJyYXkpCi0gICAgICAgIHJldHVybjsKKyAgICAKKyAgICB1
bnNpZ25lZCBmZnRTaXplID0gdGhpcy0+ZmZ0U2l6ZSgpOworICAgIHNpemVfdCBsZW5ndGggPSBz
dGQ6Om1pbihmZnRTaXplLCBkZXN0aW5hdGlvbkFycmF5Lmxlbmd0aCgpKTsKKyAgICBpZiAobGVu
Z3RoID4gMCkgeworICAgICAgICBib29sIGlzSW5wdXRCdWZmZXJHb29kID0gbV9pbnB1dEJ1ZmZl
ci5zaXplKCkgPT0gSW5wdXRCdWZmZXJTaXplICYmIG1faW5wdXRCdWZmZXIuc2l6ZSgpID4gZmZ0
U2l6ZTsKKyAgICAgICAgQVNTRVJUKGlzSW5wdXRCdWZmZXJHb29kKTsKKyAgICAgICAgaWYgKCFp
c0lucHV0QnVmZmVyR29vZCkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCisgICAgICAg
IGZsb2F0KiBpbnB1dEJ1ZmZlciA9IG1faW5wdXRCdWZmZXIuZGF0YSgpOworICAgICAgICBmbG9h
dCogZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbkFycmF5LmRhdGEoKTsKKyAgICAgICAgCisgICAg
ICAgIHVuc2lnbmVkIHdyaXRlSW5kZXggPSBtX3dyaXRlSW5kZXg7CisgICAgICAgIAorICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvLyBC
dWZmZXIgYWNjZXNzIGlzIHByb3RlY3RlZCBkdWUgdG8gbW9kdWxvIG9wZXJhdGlvbi4KKyAgICAg
ICAgICAgIGRlc3RpbmF0aW9uW2ldID0gaW5wdXRCdWZmZXJbKGkgKyB3cml0ZUluZGV4IC0gZmZ0
U2l6ZSArIElucHV0QnVmZmVyU2l6ZSkgJSBJbnB1dEJ1ZmZlclNpemVdOworICAgICAgICB9Cisg
ICAgfQorfQorCit2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEJ5dGVUaW1lRG9tYWluRGF0YShV
aW50OEFycmF5JiBkZXN0aW5hdGlvbkFycmF5KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisKICAgICB1bnNpZ25lZCBmZnRTaXplID0gdGhpcy0+ZmZ0U2l6ZSgpOwotICAgIHNpemVf
dCBsZW4gPSBzdGQ6Om1pbihmZnRTaXplLCBkZXN0aW5hdGlvbkFycmF5LT5sZW5ndGgoKSk7Ci0g
ICAgaWYgKGxlbiA+IDApIHsKKyAgICBzaXplX3QgbGVuZ3RoID0gc3RkOjptaW4oZmZ0U2l6ZSwg
ZGVzdGluYXRpb25BcnJheS5sZW5ndGgoKSk7CisgICAgaWYgKGxlbmd0aCA+IDApIHsKICAgICAg
ICAgYm9vbCBpc0lucHV0QnVmZmVyR29vZCA9IG1faW5wdXRCdWZmZXIuc2l6ZSgpID09IElucHV0
QnVmZmVyU2l6ZSAmJiBtX2lucHV0QnVmZmVyLnNpemUoKSA+IGZmdFNpemU7CiAgICAgICAgIEFT
U0VSVChpc0lucHV0QnVmZmVyR29vZCk7CiAgICAgICAgIGlmICghaXNJbnB1dEJ1ZmZlckdvb2Qp
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZmxvYXQqIGlucHV0QnVmZmVyID0gbV9p
bnB1dEJ1ZmZlci5kYXRhKCk7ICAgICAgICAKLSAgICAgICAgdW5zaWduZWQgY2hhciogZGVzdGlu
YXRpb24gPSBkZXN0aW5hdGlvbkFycmF5LT5kYXRhKCk7CisgICAgICAgIHVuc2lnbmVkIGNoYXIq
IGRlc3RpbmF0aW9uID0gZGVzdGluYXRpb25BcnJheS5kYXRhKCk7CiAgICAgICAgIAogICAgICAg
ICB1bnNpZ25lZCB3cml0ZUluZGV4ID0gbV93cml0ZUluZGV4OwogCi0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAvLyBCdWZmZXIgYWNjZXNzIGlzIHByb3Rl
Y3RlZCBkdWUgdG8gbW9kdWxvIG9wZXJhdGlvbi4KICAgICAgICAgICAgIGZsb2F0IHZhbHVlID0g
aW5wdXRCdWZmZXJbKGkgKyB3cml0ZUluZGV4IC0gZmZ0U2l6ZSArIElucHV0QnVmZmVyU2l6ZSkg
JSBJbnB1dEJ1ZmZlclNpemVdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUmVhbHRpbWVBbmFseXNlci5oCmluZGV4IDA5YjE2ZTExNmJmYzMwYjMzN2Y0MTU2N2Qz
OWEzNjVlYTMzNTEwZTMuLjcyZGM4OTk4MDRiMGQ0ZmMzZTlmNTc3YzIxNjQ2YmY2YjY0NTU4MWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFs
eXNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFs
eXNlci5oCkBAIC01OSw5ICs1OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTbW9vdGhpbmdU
aW1lQ29uc3RhbnQoZG91YmxlIGspIHsgbV9zbW9vdGhpbmdUaW1lQ29uc3RhbnQgPSBrOyB9CiAg
ICAgZG91YmxlIHNtb290aGluZ1RpbWVDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIG1fc21vb3Ro
aW5nVGltZUNvbnN0YW50OyB9CiAKLSAgICB2b2lkIGdldEZsb2F0RnJlcXVlbmN5RGF0YShKU0M6
OkZsb2F0MzJBcnJheSopOwotICAgIHZvaWQgZ2V0Qnl0ZUZyZXF1ZW5jeURhdGEoSlNDOjpVaW50
OEFycmF5Kik7Ci0gICAgdm9pZCBnZXRCeXRlVGltZURvbWFpbkRhdGEoSlNDOjpVaW50OEFycmF5
Kik7CisgICAgdm9pZCBnZXRGbG9hdEZyZXF1ZW5jeURhdGEoSlNDOjpGbG9hdDMyQXJyYXkmKTsK
KyAgICB2b2lkIGdldEJ5dGVGcmVxdWVuY3lEYXRhKEpTQzo6VWludDhBcnJheSYpOworICAgIHZv
aWQgZ2V0RmxvYXRUaW1lRG9tYWluRGF0YShKU0M6OkZsb2F0MzJBcnJheSYpOworICAgIHZvaWQg
Z2V0Qnl0ZVRpbWVEb21haW5EYXRhKEpTQzo6VWludDhBcnJheSYpOwogCiAgICAgLy8gVGhlIGF1
ZGlvIHRocmVhZCB3cml0ZXMgaW5wdXQgZGF0YSBoZXJlLgogICAgIHZvaWQgd3JpdGVJbnB1dChB
dWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggM2IyODMxYjFkMjliNDVjMDkzMGNlOTQ0NjExMzZhNTIyYmZhY2VjOC4uZDk1
ZjA5MWU3MTZmNDliYjg5YzMyNDE3NmQ2NGZmYmI4NjkyMjc3NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDYtMjIgIENsYXJrIFdhbmcgIDxj
bGFya193YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBnZXRGbG9hdFRpbWVEb21haW5E
YXRhIG1ldGhvZCB0byBBbmFseXNlck5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzM5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlLWJhc2VsaW5lZCB0ZXN0IHRvIHNob3cgYSBuZXcgcGFzc2lu
ZyB0ZXN0LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5l
c3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNi0xMCAgU2VyZ2lvIFZpbGxh
ciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjIy
NTQ/KTogW1dQRV0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxoYXJu
ZXNzLmh0dHBzLndpbmRvdy5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRw
cy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQK
aW5kZXggYmE5NDgwODBjYjI3MjI2ZmJjMGFiMjAwYzUyMmIyMTQ4YjFlODJiNi4uYzY4YTRjYjQz
OWYxNjc5NDNiNTI1NDBiYjJmODJmMTY0OTFmMzM4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBz
LndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50
eHQKQEAgLTI3MSw3ICsyNzEsNyBAQCBQQVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iagogUEFTUyBBbmFs
eXNlck5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAogUEFTUyBBbmFseXNl
ck5vZGUgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKEZsb2F0MzJB
cnJheSkgCiBQQVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCeXRlRnJl
cXVlbmN5RGF0YShVaW50OEFycmF5KSAKLUZBSUwgQW5hbHlzZXJOb2RlIGludGVyZmFjZTogb3Bl
cmF0aW9uIGdldEZsb2F0VGltZURvbWFpbkRhdGEoRmxvYXQzMkFycmF5KSBhc3NlcnRfb3duX3By
b3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3Bl
cmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRGbG9hdFRpbWVEb21haW5EYXRhIiBtaXNzaW5n
CitQQVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRGbG9hdFRpbWVEb21h
aW5EYXRhKEZsb2F0MzJBcnJheSkgCiBQQVNTIEFuYWx5c2VyTm9kZSBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXRCeXRlVGltZURvbWFpbkRhdGEoVWludDhBcnJheSkgCiBQQVNTIEFuYWx5c2VyTm9k
ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmZnRTaXplIAogUEFTUyBBbmFseXNlck5vZGUgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgZnJlcXVlbmN5QmluQ291bnQgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>