<?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>204028</bug_id>
          
          <creation_ts>2019-11-08 16:09:21 -0800</creation_ts>
          <short_desc>[WebAssembly] LLIntGenerator should not retain VirtualRegisters used for constants</short_desc>
          <delta_ts>2019-11-11 17:04:22 -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>JavaScriptCore</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1588874</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-08 16:09:21 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588882</commentid>
    <comment_count>1</comment_count>
      <attachid>383176</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-08 16:24:03 -0800</bug_when>
    <thetext>Created attachment 383176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588885</commentid>
    <comment_count>2</comment_count>
      <attachid>383176</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-08 16:30:30 -0800</bug_when>
    <thetext>Comment on attachment 383176
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:272
&gt; +    StdUnorderedMap&lt;uint64_t, VirtualRegister&gt; m_constantMap;

why StdUnorderedMap? Just because zero might be a key?

&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:519
&gt; +    target-&gt;setConstant();

this feels like a lie. I don&apos;t get it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588892</commentid>
    <comment_count>3</comment_count>
      <attachid>383176</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-08 16:40:35 -0800</bug_when>
    <thetext>Comment on attachment 383176
Patch

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

Commented about RegisterID&apos;s m_isConstant flag.

&gt; Source/JavaScriptCore/bytecompiler/RegisterID.h:68
&gt; +            , m_isConstant(false)

Let&apos;s put it in field&apos;s initializer, like, `bool m_isConstant { false }`.
We could also refactor `m_refCount` and `m_isTemporary` fields. And this constructor can delegate to `RegisterID(VirtualRegister virtualRegister)` like, `: RegisterID(VirtualRegister(index))`.

&gt; Source/JavaScriptCore/bytecompiler/RegisterID.h:136
&gt; +        bool m_isConstant;

It is a bit scary to me. I assume RegisterID is immutable one so long as it is live. So it looks strange to me when `isConstant()` starts returning different value in different code point for the exact same RegisterID.
Can we track this status differently instead of having it in RegisterID?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588893</commentid>
    <comment_count>4</comment_count>
      <attachid>383176</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-08 16:42:25 -0800</bug_when>
    <thetext>Comment on attachment 383176
Patch

discussed offline with Tadeu. This isn&apos;t sound, since a local can be written to with a non constant. It&apos;s not a static property of a local</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588926</commentid>
    <comment_count>5</comment_count>
      <attachid>383188</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-08 17:48:40 -0800</bug_when>
    <thetext>Created attachment 383188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588930</commentid>
    <comment_count>6</comment_count>
      <attachid>383188</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-08 17:57:41 -0800</bug_when>
    <thetext>Comment on attachment 383188
Patch

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

r=me with nit.

&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:510
&gt; +    if (auto it = m_constantMap.find(value); it != m_constantMap.end())
&gt; +        source = it-&gt;second;
&gt; +    else {
&gt; +        source = VirtualRegister(FirstConstantRegisterIndex + m_codeBlock-&gt;m_constants.size());
&gt; +        m_codeBlock-&gt;m_constants.append(value);
&gt; +        m_constantMap.emplace(value, source);
&gt; +    }

We are looking up dictionary twice and it is unnecessary, (1) one for m_constantMap.find, and (2) one for m_constantMap.emplace.
You can use the return-value of std::unrodered_map::emplace to avoid looking up unordered_map twice here, since emplace does nothing if entry already exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588969</commentid>
    <comment_count>7</comment_count>
      <attachid>383202</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-08 22:20:55 -0800</bug_when>
    <thetext>Created attachment 383202
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588975</commentid>
    <comment_count>8</comment_count>
      <attachid>383202</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-08 23:05:23 -0800</bug_when>
    <thetext>Comment on attachment 383202
Patch for landing

Clearing flags on attachment: 383202

Committed r252306: &lt;https://trac.webkit.org/changeset/252306&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588976</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-08 23:05:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589392</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-11 17:04:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/57099536&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383176</attachid>
            <date>2019-11-08 16:24:03 -0800</date>
            <delta_ts>2019-11-08 17:48:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204028-20191108162403.patch</filename>
            <type>text/plain</type>
            <size>7126</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
OTVkYWU0Nzc0MzBhZDNhZDU5NzkwNjk5YTc5ZjIxOWM3YzBiNzcyLi45MGYwOGQ5OTc0ZDA5ZDgz
MDI1OGMwZmRiOTIxNjEyYWM3YjJlM2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxOS0xMS0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXNzZW1ibHldIExMSW50R2VuZXJhdG9yIHNob3VsZCBub3QgcmV0
YWluIFZpcnR1YWxSZWdpc3RlcnMgdXNlZCBmb3IgY29uc3RhbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwMjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgTExJbnRHZW5lcmF0b3IgbmVlZHMg
dG8ga25vdyB3aGljaCBSZWdpc3RlcklEcyBjb250YWluIGNvbnN0YW50cyBpbiBvcmRlciB0byBt
YXRlcmlhbGl6ZSB0aGUKKyAgICAgICAgT1NSIGVudHJ5IGRhdGEsIHNpbmNlIGNvbnN0YW50cyBk
byBub3QgbmVlZCB0byBiZSBpbmNsdWRlZCBpbiB0aGUgT1NSIGVudHJ5IGJ1ZmZlci4gVGhlIHdh
eSB0aGlzCisgICAgICAgIHdhcyBvcmlnaW5hbGx5IGRvbmUgd2FzIGJ5IGFkZGluZyB0aGUgcmVn
aXN0ZXJzICB0aGF0IGNvbnRhaW5lZCBjb25zdGFudHMgdG8gYSB2ZWN0b3IgYW5kIG5ldmVyCisg
ICAgICAgIHJldXNpbmcgdGhlbS4gVGhpcyBpcyBiYWQgYmVjYXVzZSB0aGUgYnl0ZWNvZGUgZ2Vu
ZXJhdG9yIHJlY2xhaW1zIHJlZ2lzdGVycyBieSBwb3BwaW5nIHVudXNlZAorICAgICAgICByZWdp
c3RlcnMgZnJvbSB0aGUgZW5kIG9mIHRoZSB2ZWN0b3IgYW5kIHN0b3BzIGFzIHNvb24gYXMgaXQg
ZmluZHMgYSB1c2VkIHJlZ2lzdGVyLiBXZSBmaXggdGhpcworICAgICAgICBieSBhZGRpbmcgYW4g
ZXh0cmEgcHJvcGVydHkgdG8gUmVnaXN0ZXJJRCB0byBpbmRpY2F0ZSB3aGV0aGVyIGl0IGNvbnRh
aW5zIGEgY29uc3RhbnQuIEFkZGl0aW9uYWxseSwKKyAgICAgICAgd2UgYWRkIG1fY29uc3RhbnRN
YXAgdG8gTExJbnRHZW5lcmF0b3IgdG8gYXZvaWQgYWRkaW5nIGR1cGxpY2F0ZSBjb25zdGFudHMg
dG8gY29kZSBibG9ja3MuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3JCYXNlLmg6Cisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL1JlZ2lzdGVySUQuaDoKKyAgICAgICAgKEpTQzo6UmVnaXN0
ZXJJRDo6UmVnaXN0ZXJJRCk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVySUQ6OnNldENvbnN0YW50
KToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJJRDo6aXNDb25zdGFudCk6CisgICAgICAgICogd2Fz
bS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVy
YXRvcjo6aXNDb25zdGFudCk6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjph
ZGRDb25zdGFudCk6CisKIDIwMTktMTEtMDUgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIGZld2VyIHZpcnR1YWwgcmVnaXN0ZXJzIGluIFdhc20gTExJ
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaAppbmRleCA4NjJjZTEyNDVhNjdmMGM5ZDM0Y2VjNTU4NzU2MTE3MWEwMzQ1
NTk4Li5hNzk5M2JlYjNmYWJiNzY0M2U2YWZjZTFkN2U2NGM5N2EzMzU4YmE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCkBAIC0xMjI1LDYgKzEyMjUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBTZWdt
ZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgMzI+IG1fcGFyYW1ldGVyczsKICAgICAgICAgU2VnbWVu
dGVkVmVjdG9yPExhYmVsU2NvcGUsIDMyPiBtX2xhYmVsU2NvcGVzOworICAgICAgICBTZWdtZW50
ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgMzI+IG1fY29uc3RhbnRQb29sUmVnaXN0ZXJzOwogICAgICAg
ICB1bnNpZ25lZCBtX2ZpbmFsbHlEZXB0aCB7IDAgfTsKICAgICAgICAgdW5zaWduZWQgbV9sb2Nh
bFNjb3BlRGVwdGggeyAwIH07CiAgICAgICAgIGNvbnN0IENvZGVUeXBlIG1fY29kZVR5cGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yQmFzZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvckJhc2UuaAppbmRleCAxYmM3YTdiZjIwNTdkZThkYzdhY2EyNGYxYzdiZWQwYmY0
Nzg2NDFmLi45NTVmZmNiOTRjNzA1Y2ZlNTdlMGUxZWZiMGQ4YjM0ZGRiZTAzMGYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
QmFzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3JCYXNlLmgKQEAgLTg1LDcgKzg1LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgU2VnbWVu
dGVkVmVjdG9yPEdlbmVyaWNMYWJlbDxUcmFpdHM+LCAzMj4gbV9sYWJlbHM7CiAgICAgU2VnbWVu
dGVkVmVjdG9yPFJlZ2lzdGVySUQsIDMyPiBtX2NhbGxlZUxvY2FsczsKLSAgICBTZWdtZW50ZWRW
ZWN0b3I8UmVnaXN0ZXJJRCwgMzI+IG1fY29uc3RhbnRQb29sUmVnaXN0ZXJzOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL1JlZ2lzdGVySUQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
UmVnaXN0ZXJJRC5oCmluZGV4IDM1NjIwYTExMTYxMWM1ZTBiODEwMWNkNDU1NGMwNmJjODAzMDM3
ODAuLjAzOWNjODk3YmNkZGVlNjk2M2U2NWEwMmQwOWExNzg4YjAzZjlkN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvUmVnaXN0ZXJJRC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvUmVnaXN0ZXJJRC5oCkBAIC00Myw2ICs0
Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKCkKICAgICAgICAgICAg
IDogbV9yZWZDb3VudCgwKQogICAgICAgICAgICAgLCBtX2lzVGVtcG9yYXJ5KGZhbHNlKQorICAg
ICAgICAgICAgLCBtX2lzQ29uc3RhbnQoZmFsc2UpCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAg
ICAgLCBtX2RpZFNldEluZGV4KGZhbHNlKQogI2VuZGlmCkBAIC01Myw2ICs1NCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAgICAgOiBtX3JlZkNvdW50KDApCiAgICAgICAgICAgICAsIG1f
dmlydHVhbFJlZ2lzdGVyKHZpcnR1YWxSZWdpc3RlcikKICAgICAgICAgICAgICwgbV9pc1RlbXBv
cmFyeShmYWxzZSkKKyAgICAgICAgICAgICwgbV9pc0NvbnN0YW50KGZhbHNlKQogI2lmbmRlZiBO
REVCVUcKICAgICAgICAgICAgICwgbV9kaWRTZXRJbmRleCh0cnVlKQogI2VuZGlmCkBAIC02Myw2
ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgOiBtX3JlZkNvdW50KDApCiAg
ICAgICAgICAgICAsIG1fdmlydHVhbFJlZ2lzdGVyKFZpcnR1YWxSZWdpc3RlcihpbmRleCkpCiAg
ICAgICAgICAgICAsIG1faXNUZW1wb3JhcnkoZmFsc2UpCisgICAgICAgICAgICAsIG1faXNDb25z
dGFudChmYWxzZSkKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICAsIG1fZGlkU2V0SW5kZXgo
dHJ1ZSkKICNlbmRpZgpAQCAtODIsNiArODUsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICBtX2lzVGVtcG9yYXJ5ID0gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIHZvaWQgc2V0
Q29uc3RhbnQoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2lzQ29uc3RhbnQgPSB0cnVlOwor
ICAgICAgICB9CisKICAgICAgICAgaW50IGluZGV4KCkgY29uc3QKICAgICAgICAgewogICAgICAg
ICAgICAgQVNTRVJUKG1fZGlkU2V0SW5kZXgpOwpAQCAtOTksNiArMTA3LDExIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG1faXNUZW1wb3Jhcnk7CiAgICAgICAgIH0KIAor
ICAgICAgICBib29sIGlzQ29uc3RhbnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
bV9pc0NvbnN0YW50OworICAgICAgICB9CisKICAgICAgICAgdm9pZCByZWYoKQogICAgICAgICB7
CiAgICAgICAgICAgICArK21fcmVmQ291bnQ7CkBAIC0xMjAsNiArMTMzLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIGludCBtX3JlZkNvdW50OwogICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIg
bV92aXJ0dWFsUmVnaXN0ZXI7CiAgICAgICAgIGJvb2wgbV9pc1RlbXBvcmFyeTsKKyAgICAgICAg
Ym9vbCBtX2lzQ29uc3RhbnQ7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBib29sIG1fZGlkU2V0
SW5kZXg7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21MTEludEdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJ
bnRHZW5lcmF0b3IuY3BwCmluZGV4IGExMDA0NzA3NGM2NDE1ODZiNDhkODA0MmRmZmFhODIzYjAz
MDU2ZjguLmE0MTVmNWQ0NGU2ZTBiNTliM2ZmNDdhY2Y5Y2ZmMWJmNjg0NmM0YWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIldhc21GdW5jdGlvblBhcnNlci5oIgogI2luY2x1ZGUg
Ildhc21UaHVua3MuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1N0
ZFVub3JkZXJlZE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgV2FzbSB7CkBAIC0yNTMsMTQgKzI1NCw3IEBAIHByaXZhdGU6CiAKICAg
ICBib29sIGlzQ29uc3RhbnQoUmVmUHRyPFJlZ2lzdGVySUQ+IHJlZykKICAgICB7Ci0gICAgICAg
IFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSByZWctPnZpcnR1YWxSZWdpc3Rlcigp
OwotICAgICAgICBpZiAodmlydHVhbFJlZ2lzdGVyLmlzQ29uc3RhbnQoKSkKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICBmb3IgKGF1dG8mIGNvbnN0YW50IDogbV9jb25zdGFudFBv
b2xSZWdpc3RlcnMpIHsKLSAgICAgICAgICAgIGlmIChjb25zdGFudC52aXJ0dWFsUmVnaXN0ZXIo
KSA9PSB2aXJ0dWFsUmVnaXN0ZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gcmVnLT5pc0NvbnN0
YW50KCkgfHwgcmVnLT52aXJ0dWFsUmVnaXN0ZXIoKS5pc0NvbnN0YW50KCk7CiAgICAgfQogCiAg
ICAgc3RydWN0IFN3aXRjaEVudHJ5IHsKQEAgLTI3NSw2ICsyNjksNyBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8TGFiZWwqLCBWZWN0b3I8U3dpdGNoRW50cnk+PiBtX3N3aXRjaGVzOwogICAgIEV4
cHJlc3Npb25UeXBlIG1fanNOdWxsQ29uc3RhbnQ7CiAgICAgRXhwcmVzc2lvbkxpc3QgbV91bml0
aWFsaXplZExvY2FsczsKKyAgICBTdGRVbm9yZGVyZWRNYXA8dWludDY0X3QsIFZpcnR1YWxSZWdp
c3Rlcj4gbV9jb25zdGFudE1hcDsKIH07CiAKIEV4cGVjdGVkPHN0ZDo6dW5pcXVlX3B0cjxGdW5j
dGlvbkNvZGVCbG9jaz4sIFN0cmluZz4gcGFyc2VBbmRDb21waWxlQnl0ZWNvZGUoY29uc3QgdWlu
dDhfdCogZnVuY3Rpb25TdGFydCwgc2l6ZV90IGZ1bmN0aW9uTGVuZ3RoLCBjb25zdCBTaWduYXR1
cmUmIHNpZ25hdHVyZSwgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIHVpbnQzMl90IGZ1
bmN0aW9uSW5kZXgsIFRocm93V2FzbUV4Y2VwdGlvbiB0aHJvd1dhc21FeGNlcHRpb24pCkBAIC01
MTAsMTEgKzUwNSwxOCBAQCB2b2lkIExMSW50R2VuZXJhdG9yOjpkaWRGaW5pc2hQYXJzaW5nTG9j
YWxzKCkKIAogYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQ29uc3RhbnQoVHlwZSwgdWludDY0X3Qg
dmFsdWUpIC0+IEV4cHJlc3Npb25UeXBlCiB7Ci0gICAgVmlydHVhbFJlZ2lzdGVyIHNvdXJjZShG
aXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCArIG1fY29kZUJsb2NrLT5tX2NvbnN0YW50cy5zaXpl
KCkpOworICAgIFZpcnR1YWxSZWdpc3RlciBzb3VyY2U7CisgICAgaWYgKGF1dG8gaXQgPSBtX2Nv
bnN0YW50TWFwLmZpbmQodmFsdWUpOyBpdCAhPSBtX2NvbnN0YW50TWFwLmVuZCgpKQorICAgICAg
ICBzb3VyY2UgPSBpdC0+c2Vjb25kOworICAgIGVsc2UgeworICAgICAgICBzb3VyY2UgPSBWaXJ0
dWFsUmVnaXN0ZXIoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggKyBtX2NvZGVCbG9jay0+bV9j
b25zdGFudHMuc2l6ZSgpKTsKKyAgICAgICAgbV9jb2RlQmxvY2stPm1fY29uc3RhbnRzLmFwcGVu
ZCh2YWx1ZSk7CisgICAgICAgIG1fY29uc3RhbnRNYXAuZW1wbGFjZSh2YWx1ZSwgc291cmNlKTsK
KyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlQoc291cmNlLmlzVmFsaWQoKSk7CisKICAgICBhdXRv
IHRhcmdldCA9IG5ld1RlbXBvcmFyeSgpOwotICAgIHRhcmdldC0+cmVmKCk7Ci0gICAgbV9jb25z
dGFudFBvb2xSZWdpc3RlcnMuYXBwZW5kKHRhcmdldCk7Ci0gICAgbV9jb2RlQmxvY2stPm1fY29u
c3RhbnRzLmFwcGVuZCh2YWx1ZSk7CisgICAgdGFyZ2V0LT5zZXRDb25zdGFudCgpOwogICAgIFdh
c21Nb3Y6OmVtaXQodGhpcywgdGFyZ2V0LCBzb3VyY2UpOwogICAgIHJldHVybiB0YXJnZXQ7CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383188</attachid>
            <date>2019-11-08 17:48:40 -0800</date>
            <delta_ts>2019-11-08 22:20:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204028-20191108174840.patch</filename>
            <type>text/plain</type>
            <size>7955</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
OTVkYWU0Nzc0MzBhZDNhZDU5NzkwNjk5YTc5ZjIxOWM3YzBiNzcyLi5iMTdjMGQwZTU4ZmIzMTMx
ZTRmYTNhOWMxNWJlMTA5NGYxNWU3N2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOS0xMS0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXNzZW1ibHldIExMSW50R2VuZXJhdG9yIHNob3VsZCBub3QgcmV0
YWluIFZpcnR1YWxSZWdpc3RlcnMgdXNlZCBmb3IgY29uc3RhbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwMjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgTExJbnRHZW5lcmF0b3Igd2FzIGtl
ZXBpbmcgdHJhY2sgb2Ygd2hpY2ggUmVnaXN0ZXJJRHMgY29udGFpbmVkIGNvbnN0YW50cyBpbiBv
cmRlciB0byBtYXRlcmlhbGl6ZQorICAgICAgICB0aGUgT1NSIGVudHJ5IGRhdGEsIHNpbmNlIGNv
bnN0YW50cyB3ZXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgT1NSIGVudHJ5IGJ1ZmZlci4gVGhpcyB3
YXMgb3JpZ2luYWxseSBkb25lCisgICAgICAgIGJ5IGFkZGluZyB0aGUgcmVnaXN0ZXJzIHRoYXQg
Y29udGFpbmVkIGNvbnN0YW50cyB0byBhIHZlY3RvciBhbmQgbmV2ZXIgcmV1c2luZyB0aGVtLiBU
aGlzIGlzIGJhZCBiZWNhdXNlCisgICAgICAgIHRoZSBieXRlY29kZSBnZW5lcmF0b3IgcmVjbGFp
bXMgcmVnaXN0ZXJzIGJ5IHBvcHBpbmcgdW51c2VkIHJlZ2lzdGVycyBmcm9tIHRoZSBlbmQgb2Yg
dGhlIHZlY3RvciBhbmQKKyAgICAgICAgc3RvcHMgYXMgc29vbiBhcyBpdCBmaW5kcyBhIHVzZWQg
cmVnaXN0ZXIuIEFzIGl0IHR1cm5zIG91dCwgY29uc3RhbnRzICpzaG91bGQqIGJlIGluY2x1ZGVk
IGluIHRoZSBidWZmZXIsCisgICAgICAgIHNvIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQg
d2hldGhlciByZWdpc3RlcnMgY29udGFpbiBjb25zdGFudHMgYW5kIHdlIGNhbiBqdXN0IHN0b3Ag
cmV0YWluaW5nIHRoZQorICAgICAgICByZWdpc3RlcnMuIEFuIGFzc2VydGlvbiB3YXMgYWRkZWQg
dG8gZG9PU1JFbnRyeSB0byBlbnN1cmUgdGhhdCB0aGUgc2l6ZSBvZiB0aGUgc2NyYXRjaCBidWZm
ZXIgbWF0Y2hlcyB0aGUKKyAgICAgICAgc2l6ZSBvZiB0aGUgdmFsdWVzIHRvIGJlIHdyaXR0ZW4s
IHdoaWNoIHdhcyBub3QgdHJ1ZSBiZWZvcmUuCisgICAgICAgIEFkZGl0aW9uYWxseSwgYWRkIG1f
Y29uc3RhbnRNYXAgdG8gTExJbnRHZW5lcmF0b3IgdG8gYXZvaWQgYWRkaW5nIGR1cGxpY2F0ZSBj
b25zdGFudHMgdG8gY29kZSBibG9ja3MuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3JC
YXNlLmg6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChK
U0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZExvb3ApOgorICAgICAgICAqIHdhc20vV2FzbUxM
SW50R2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFk
ZENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZExvb3Ap
OgorICAgICAgICAqIHdhc20vV2FzbU9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpXYXNt
Ojpkb09TUkVudHJ5KToKKwogMjAxOS0xMS0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBVc2UgZmV3ZXIgdmlydHVhbCByZWdpc3RlcnMgaW4gV2FzbSBM
TEludApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCmluZGV4IDg2MmNlMTI0NWE2N2YwYzlkMzRjZWM1NTg3NTYxMTcxYTAz
NDU1OTguLmE3OTkzYmViM2ZhYmI3NjQzZTZhZmNlMWQ3ZTY0Yzk3YTMzNThiYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmgKQEAgLTEyMjUsNiArMTIyNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFNl
Z21lbnRlZFZlY3RvcjxSZWdpc3RlcklELCAzMj4gbV9wYXJhbWV0ZXJzOwogICAgICAgICBTZWdt
ZW50ZWRWZWN0b3I8TGFiZWxTY29wZSwgMzI+IG1fbGFiZWxTY29wZXM7CisgICAgICAgIFNlZ21l
bnRlZFZlY3RvcjxSZWdpc3RlcklELCAzMj4gbV9jb25zdGFudFBvb2xSZWdpc3RlcnM7CiAgICAg
ICAgIHVuc2lnbmVkIG1fZmluYWxseURlcHRoIHsgMCB9OwogICAgICAgICB1bnNpZ25lZCBtX2xv
Y2FsU2NvcGVEZXB0aCB7IDAgfTsKICAgICAgICAgY29uc3QgQ29kZVR5cGUgbV9jb2RlVHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3JCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yQmFzZS5oCmluZGV4IDFiYzdhN2JmMjA1N2RlOGRjN2FjYTI0ZjFjN2JlZDBi
ZjQ3ODY0MWYuLjk1NWZmY2I5NGM3MDVjZmU1N2UwZTFlZmIwZDhiMzRkZGJlMDMwZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3JCYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvckJhc2UuaApAQCAtODUsNyArODUsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBTZWdt
ZW50ZWRWZWN0b3I8R2VuZXJpY0xhYmVsPFRyYWl0cz4sIDMyPiBtX2xhYmVsczsKICAgICBTZWdt
ZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgMzI+IG1fY2FsbGVlTG9jYWxzOwotICAgIFNlZ21lbnRl
ZFZlY3RvcjxSZWdpc3RlcklELCAzMj4gbV9jb25zdGFudFBvb2xSZWdpc3RlcnM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CM0lSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21C
M0lSR2VuZXJhdG9yLmNwcAppbmRleCAxNWQyY2JlZWMwYTgxYzRjMjViYzZkM2MwYWI2NGI4ZDIz
YWY3OGQ5Li44NjVhNzM5M2FkYTlmOWYyMTQ1YjM4Y2E0ZDU0NzZiNmUzNjZkMjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC0x
Mjk5LDggKzEyOTksMTAgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRMb29wKEJsb2NrU2lnbmF0
dXJlIHNpZ25hdHVyZSwgU3RhY2smIGVuY2xvc2luZ1N0YWNrLCBDb24KICAgICAgICAgICAgIEIz
OjpJbnNlcnRpb25TZXQgaW5zZXJ0aW9uU2V0KG1fcHJvYyk7CiAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZXhwcmVzc2lvblN0YWNrLnNpemUoKTsgaSsrKSB7CiAgICAgICAg
ICAgICAgICAgYXV0byogdmFsdWUgPSBleHByZXNzaW9uU3RhY2tbaV07Ci0gICAgICAgICAgICAg
ICAgaWYgKHZhbHVlLT5pc0NvbnN0YW50KCkpCisgICAgICAgICAgICAgICAgaWYgKHZhbHVlLT5p
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytpbmRleEluQnVmZmVyOwogICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgICAgICBpZiAodmFsdWUtPm93bmVyICE9IHNvdXJjZUJsb2NrKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGluc2VydGlvblNldC5leGVjdXRlKHNvdXJjZUJsb2NrKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCmluZGV4IGExMDA0NzA3
NGM2NDE1ODZiNDhkODA0MmRmZmFhODIzYjAzMDU2ZjguLjQ3MjViM2RiMTQ1MDQ5OWNlZmQzZGM4
OTA0NjU4YmNmZjQ4OWE5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21MTEludEdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIldhc21G
dW5jdGlvblBhcnNlci5oIgogI2luY2x1ZGUgIldhc21UaHVua3MuaCIKICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1N0ZFVub3JkZXJlZE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CkBAIC0yNTEs
MTggKzI1Miw2IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX2pzTnVsbENvbnN0YW50Owog
ICAgIH0KIAotICAgIGJvb2wgaXNDb25zdGFudChSZWZQdHI8UmVnaXN0ZXJJRD4gcmVnKQotICAg
IHsKLSAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IHJlZy0+dmlydHVh
bFJlZ2lzdGVyKCk7Ci0gICAgICAgIGlmICh2aXJ0dWFsUmVnaXN0ZXIuaXNDb25zdGFudCgpKQot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGZvciAoYXV0byYgY29uc3RhbnQgOiBt
X2NvbnN0YW50UG9vbFJlZ2lzdGVycykgewotICAgICAgICAgICAgaWYgKGNvbnN0YW50LnZpcnR1
YWxSZWdpc3RlcigpID09IHZpcnR1YWxSZWdpc3RlcikKLSAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgc3Ry
dWN0IFN3aXRjaEVudHJ5IHsKICAgICAgICAgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBvZmZz
ZXQ7CiAgICAgICAgIEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQqIGp1bXBUYXJnZXQ7CkBAIC0y
NzUsNiArMjY0LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPExhYmVsKiwgVmVjdG9yPFN3aXRj
aEVudHJ5Pj4gbV9zd2l0Y2hlczsKICAgICBFeHByZXNzaW9uVHlwZSBtX2pzTnVsbENvbnN0YW50
OwogICAgIEV4cHJlc3Npb25MaXN0IG1fdW5pdGlhbGl6ZWRMb2NhbHM7CisgICAgU3RkVW5vcmRl
cmVkTWFwPHVpbnQ2NF90LCBWaXJ0dWFsUmVnaXN0ZXI+IG1fY29uc3RhbnRNYXA7CiB9OwogCiBF
eHBlY3RlZDxzdGQ6OnVuaXF1ZV9wdHI8RnVuY3Rpb25Db2RlQmxvY2s+LCBTdHJpbmc+IHBhcnNl
QW5kQ29tcGlsZUJ5dGVjb2RlKGNvbnN0IHVpbnQ4X3QqIGZ1bmN0aW9uU3RhcnQsIHNpemVfdCBm
dW5jdGlvbkxlbmd0aCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUsIGNvbnN0IE1vZHVsZUlu
Zm9ybWF0aW9uJiBpbmZvLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBUaHJvd1dhc21FeGNlcHRp
b24gdGhyb3dXYXNtRXhjZXB0aW9uKQpAQCAtNTEwLDExICs1MDAsMTcgQEAgdm9pZCBMTEludEdl
bmVyYXRvcjo6ZGlkRmluaXNoUGFyc2luZ0xvY2FscygpCiAKIGF1dG8gTExJbnRHZW5lcmF0b3I6
OmFkZENvbnN0YW50KFR5cGUsIHVpbnQ2NF90IHZhbHVlKSAtPiBFeHByZXNzaW9uVHlwZQogewot
ICAgIFZpcnR1YWxSZWdpc3RlciBzb3VyY2UoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggKyBt
X2NvZGVCbG9jay0+bV9jb25zdGFudHMuc2l6ZSgpKTsKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgc291
cmNlOworICAgIGlmIChhdXRvIGl0ID0gbV9jb25zdGFudE1hcC5maW5kKHZhbHVlKTsgaXQgIT0g
bV9jb25zdGFudE1hcC5lbmQoKSkKKyAgICAgICAgc291cmNlID0gaXQtPnNlY29uZDsKKyAgICBl
bHNlIHsKKyAgICAgICAgc291cmNlID0gVmlydHVhbFJlZ2lzdGVyKEZpcnN0Q29uc3RhbnRSZWdp
c3RlckluZGV4ICsgbV9jb2RlQmxvY2stPm1fY29uc3RhbnRzLnNpemUoKSk7CisgICAgICAgIG1f
Y29kZUJsb2NrLT5tX2NvbnN0YW50cy5hcHBlbmQodmFsdWUpOworICAgICAgICBtX2NvbnN0YW50
TWFwLmVtcGxhY2UodmFsdWUsIHNvdXJjZSk7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUKHNv
dXJjZS5pc1ZhbGlkKCkpOworCiAgICAgYXV0byB0YXJnZXQgPSBuZXdUZW1wb3JhcnkoKTsKLSAg
ICB0YXJnZXQtPnJlZigpOwotICAgIG1fY29uc3RhbnRQb29sUmVnaXN0ZXJzLmFwcGVuZCh0YXJn
ZXQpOwotICAgIG1fY29kZUJsb2NrLT5tX2NvbnN0YW50cy5hcHBlbmQodmFsdWUpOwogICAgIFdh
c21Nb3Y6OmVtaXQodGhpcywgdGFyZ2V0LCBzb3VyY2UpOwogICAgIHJldHVybiB0YXJnZXQ7CiB9
CkBAIC01NzAsMTEgKzU2Niw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZExvb3AoQmxvY2tT
aWduYXR1cmUgc2lnbmF0dXJlLCBTdGFjayYgZW5jbG9zaW5nU3RhY2ssIENvCiAgICAgICAgIG9z
ckVudHJ5RGF0YS5hcHBlbmQoOjpKU0M6OnZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkpKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGNvbnRyb2xJbmRleCA9IDA7IGNvbnRyb2xJbmRleCA8IG1fcGFyc2Vy
LT5jb250cm9sU3RhY2soKS5zaXplKCk7ICsrY29udHJvbEluZGV4KSB7CiAgICAgICAgIEV4cHJl
c3Npb25MaXN0JiBleHByZXNzaW9uU3RhY2sgPSBtX3BhcnNlci0+Y29udHJvbFN0YWNrKClbY29u
dHJvbEluZGV4XS5lbmNsb3NlZEV4cHJlc3Npb25TdGFjazsKLSAgICAgICAgZm9yIChhdXRvJiBl
eHByZXNzaW9uIDogZXhwcmVzc2lvblN0YWNrKSB7Ci0gICAgICAgICAgICBpZiAoaXNDb25zdGFu
dChleHByZXNzaW9uKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZm9yIChh
dXRvJiBleHByZXNzaW9uIDogZXhwcmVzc2lvblN0YWNrKQogICAgICAgICAgICAgb3NyRW50cnlE
YXRhLmFwcGVuZChleHByZXNzaW9uLT52aXJ0dWFsUmVnaXN0ZXIoKSk7Ci0gICAgICAgIH0KICAg
ICB9CiAKICAgICBXYXNtTG9vcEhpbnQ6OmVtaXQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKaW5kZXggNjI2ZTUyYThjYzg5ZjhhZjQ3NzQz
MjYxY2JhODI2ODRjYTBmNTZlMC4uZmNlZjQ4Zjc1ZGZlZDg1ZjhmYmNkNDBiNzAxOTUxNzc0ZTcy
NmQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNw
cApAQCAtMTI2LDYgKzEyNiw4IEBAIHN0YXRpYyB2b2lkIGRvT1NSRW50cnkoSW5zdGFuY2UqIGlu
c3RhbmNlLCBQcm9iZTo6Q29udGV4dCYgY29udGV4dCwgQkJRQ2FsbGVlJiBjCiAgICAgICAgIGNv
bnRleHQuZ3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMCkgPSAwOwogICAgIH07CiAKKyAgICBSRUxF
QVNFX0FTU0VSVChvc3JFbnRyeUNhbGxlZS5vc3JFbnRyeVNjcmF0Y2hCdWZmZXJTaXplKCkgPT0g
b3NyRW50cnlEYXRhLnZhbHVlcygpLnNpemUoKSk7CisKICAgICB1aW50NjRfdCogYnVmZmVyID0g
aW5zdGFuY2UtPmNvbnRleHQoKS0+c2NyYXRjaEJ1ZmZlckZvclNpemUob3NyRW50cnlDYWxsZWUu
b3NyRW50cnlTY3JhdGNoQnVmZmVyU2l6ZSgpKTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAg
cmV0dXJuIHJldHVybldpdGhvdXRPU1JFbnRyeSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383202</attachid>
            <date>2019-11-08 22:20:55 -0800</date>
            <delta_ts>2019-11-08 23:05:23 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204028-20191108222055.patch</filename>
            <type>text/plain</type>
            <size>7747</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
OTVkYWU0Nzc0MzBhZDNhZDU5NzkwNjk5YTc5ZjIxOWM3YzBiNzcyLi5jMTJlNTIzOWFhODAzOGRi
ZWNhNjdhNDhjMmYwMTIwMDA3OWYxNDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOS0xMS0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXNzZW1ibHldIExMSW50R2VuZXJhdG9yIHNob3VsZCBub3QgcmV0
YWluIFZpcnR1YWxSZWdpc3RlcnMgdXNlZCBmb3IgY29uc3RhbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwMjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFRoZSBMTEludEdlbmVyYXRvciB3YXMga2Vl
cGluZyB0cmFjayBvZiB3aGljaCBSZWdpc3RlcklEcyBjb250YWluZWQgY29uc3RhbnRzIGluIG9y
ZGVyIHRvIG1hdGVyaWFsaXplCisgICAgICAgIHRoZSBPU1IgZW50cnkgZGF0YSwgc2luY2UgY29u
c3RhbnRzIHdlcmUgbm90IGluY2x1ZGVkIGluIHRoZSBPU1IgZW50cnkgYnVmZmVyLiBUaGlzIHdh
cyBvcmlnaW5hbGx5IGRvbmUKKyAgICAgICAgYnkgYWRkaW5nIHRoZSByZWdpc3RlcnMgdGhhdCBj
b250YWluZWQgY29uc3RhbnRzIHRvIGEgdmVjdG9yIGFuZCBuZXZlciByZXVzaW5nIHRoZW0uIFRo
aXMgaXMgYmFkIGJlY2F1c2UKKyAgICAgICAgdGhlIGJ5dGVjb2RlIGdlbmVyYXRvciByZWNsYWlt
cyByZWdpc3RlcnMgYnkgcG9wcGluZyB1bnVzZWQgcmVnaXN0ZXJzIGZyb20gdGhlIGVuZCBvZiB0
aGUgdmVjdG9yIGFuZAorICAgICAgICBzdG9wcyBhcyBzb29uIGFzIGl0IGZpbmRzIGEgdXNlZCBy
ZWdpc3Rlci4gQXMgaXQgdHVybnMgb3V0LCBjb25zdGFudHMgKnNob3VsZCogYmUgaW5jbHVkZWQg
aW4gdGhlIGJ1ZmZlciwKKyAgICAgICAgc28gd2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCB3
aGV0aGVyIHJlZ2lzdGVycyBjb250YWluIGNvbnN0YW50cyBhbmQgd2UgY2FuIGp1c3Qgc3RvcCBy
ZXRhaW5pbmcgdGhlCisgICAgICAgIHJlZ2lzdGVycy4gQW4gYXNzZXJ0aW9uIHdhcyBhZGRlZCB0
byBkb09TUkVudHJ5IHRvIGVuc3VyZSB0aGF0IHRoZSBzaXplIG9mIHRoZSBzY3JhdGNoIGJ1ZmZl
ciBtYXRjaGVzIHRoZQorICAgICAgICBzaXplIG9mIHRoZSB2YWx1ZXMgdG8gYmUgd3JpdHRlbiwg
d2hpY2ggd2FzIG5vdCB0cnVlIGJlZm9yZS4KKyAgICAgICAgQWRkaXRpb25hbGx5LCBhZGQgbV9j
b25zdGFudE1hcCB0byBMTEludEdlbmVyYXRvciB0byBhdm9pZCBhZGRpbmcgZHVwbGljYXRlIGNv
bnN0YW50cyB0byBjb2RlIGJsb2Nrcy4KKworICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvckJh
c2UuaDoKKyAgICAgICAgKiB3YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkTG9vcCk6CisgICAgICAgICogd2FzbS9XYXNtTExJ
bnRHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRk
Q29uc3RhbnQpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9vcCk6
CisgICAgICAgICogd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Oldhc206
OmRvT1NSRW50cnkpOgorCiAyMDE5LTExLTA1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBw
bGUuY29tPgogCiAgICAgICAgIFVzZSBmZXdlciB2aXJ0dWFsIHJlZ2lzdGVycyBpbiBXYXNtIExM
SW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgKaW5kZXggODYyY2UxMjQ1YTY3ZjBjOWQzNGNlYzU1ODc1NjExNzFhMDM0
NTU5OC4uYTc5OTNiZWIzZmFiYjc2NDNlNmFmY2UxZDdlNjRjOTdhMzM1OGJhOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaApAQCAtMTIyNSw2ICsxMjI1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgU2Vn
bWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDMyPiBtX3BhcmFtZXRlcnM7CiAgICAgICAgIFNlZ21l
bnRlZFZlY3RvcjxMYWJlbFNjb3BlLCAzMj4gbV9sYWJlbFNjb3BlczsKKyAgICAgICAgU2VnbWVu
dGVkVmVjdG9yPFJlZ2lzdGVySUQsIDMyPiBtX2NvbnN0YW50UG9vbFJlZ2lzdGVyczsKICAgICAg
ICAgdW5zaWduZWQgbV9maW5hbGx5RGVwdGggeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fbG9j
YWxTY29wZURlcHRoIHsgMCB9OwogICAgICAgICBjb25zdCBDb2RlVHlwZSBtX2NvZGVUeXBlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvckJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3JCYXNlLmgKaW5kZXggMWJjN2E3YmYyMDU3ZGU4ZGM3YWNhMjRmMWM3YmVkMGJm
NDc4NjQxZi4uOTU1ZmZjYjk0YzcwNWNmZTU3ZTBlMWVmYjBkOGIzNGRkYmUwMzBmMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ckJhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yQmFzZS5oCkBAIC04NSw3ICs4NSw2IEBAIHByb3RlY3RlZDoKIAogICAgIFNlZ21l
bnRlZFZlY3RvcjxHZW5lcmljTGFiZWw8VHJhaXRzPiwgMzI+IG1fbGFiZWxzOwogICAgIFNlZ21l
bnRlZFZlY3RvcjxSZWdpc3RlcklELCAzMj4gbV9jYWxsZWVMb2NhbHM7Ci0gICAgU2VnbWVudGVk
VmVjdG9yPFJlZ2lzdGVySUQsIDMyPiBtX2NvbnN0YW50UG9vbFJlZ2lzdGVyczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIz
SVJHZW5lcmF0b3IuY3BwCmluZGV4IDE1ZDJjYmVlYzBhODFjNGMyNWJjNmQzYzBhYjY0YjhkMjNh
Zjc4ZDkuLjg2NWE3MzkzYWRhOWY5ZjIxNDViMzhjYTRkNTQ3NmI2ZTM2NmQyMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTEy
OTksOCArMTI5OSwxMCBAQCBhdXRvIEIzSVJHZW5lcmF0b3I6OmFkZExvb3AoQmxvY2tTaWduYXR1
cmUgc2lnbmF0dXJlLCBTdGFjayYgZW5jbG9zaW5nU3RhY2ssIENvbgogICAgICAgICAgICAgQjM6
Okluc2VydGlvblNldCBpbnNlcnRpb25TZXQobV9wcm9jKTsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBleHByZXNzaW9uU3RhY2suc2l6ZSgpOyBpKyspIHsKICAgICAgICAg
ICAgICAgICBhdXRvKiB2YWx1ZSA9IGV4cHJlc3Npb25TdGFja1tpXTsKLSAgICAgICAgICAgICAg
ICBpZiAodmFsdWUtPmlzQ29uc3RhbnQoKSkKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUtPmlz
Q29uc3RhbnQoKSkgeworICAgICAgICAgICAgICAgICAgICArK2luZGV4SW5CdWZmZXI7CiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgICAgIGlmICh2YWx1ZS0+b3duZXIgIT0gc291cmNlQmxvY2spIHsKICAgICAgICAgICAgICAg
ICAgICAgaW5zZXJ0aW9uU2V0LmV4ZWN1dGUoc291cmNlQmxvY2spOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggYTEwMDQ3MDc0
YzY0MTU4NmI0OGQ4MDQyZGZmYWE4MjNiMDMwNTZmOC4uMWQ0YzQyY2M0NzI2OTk0ZGU0M2Y4Mjhj
Yzk5ZjI3Mzg0MDgzNDEzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRHZW5lcmF0b3IuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiV2FzbUZ1
bmN0aW9uUGFyc2VyLmgiCiAjaW5jbHVkZSAiV2FzbVRodW5rcy5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvU3RkVW5vcmRlcmVkTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKQEAgLTI1MSwx
OCArMjUyLDYgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1fanNOdWxsQ29uc3RhbnQ7CiAg
ICAgfQogCi0gICAgYm9vbCBpc0NvbnN0YW50KFJlZlB0cjxSZWdpc3RlcklEPiByZWcpCi0gICAg
ewotICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gcmVnLT52aXJ0dWFs
UmVnaXN0ZXIoKTsKLSAgICAgICAgaWYgKHZpcnR1YWxSZWdpc3Rlci5pc0NvbnN0YW50KCkpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZm9yIChhdXRvJiBjb25zdGFudCA6IG1f
Y29uc3RhbnRQb29sUmVnaXN0ZXJzKSB7Ci0gICAgICAgICAgICBpZiAoY29uc3RhbnQudmlydHVh
bFJlZ2lzdGVyKCkgPT0gdmlydHVhbFJlZ2lzdGVyKQotICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICBzdHJ1
Y3QgU3dpdGNoRW50cnkgewogICAgICAgICBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IG9mZnNl
dDsKICAgICAgICAgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCoganVtcFRhcmdldDsKQEAgLTI3
NSw2ICsyNjQsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8TGFiZWwqLCBWZWN0b3I8U3dpdGNo
RW50cnk+PiBtX3N3aXRjaGVzOwogICAgIEV4cHJlc3Npb25UeXBlIG1fanNOdWxsQ29uc3RhbnQ7
CiAgICAgRXhwcmVzc2lvbkxpc3QgbV91bml0aWFsaXplZExvY2FsczsKKyAgICBTdGRVbm9yZGVy
ZWRNYXA8dWludDY0X3QsIFZpcnR1YWxSZWdpc3Rlcj4gbV9jb25zdGFudE1hcDsKIH07CiAKIEV4
cGVjdGVkPHN0ZDo6dW5pcXVlX3B0cjxGdW5jdGlvbkNvZGVCbG9jaz4sIFN0cmluZz4gcGFyc2VB
bmRDb21waWxlQnl0ZWNvZGUoY29uc3QgdWludDhfdCogZnVuY3Rpb25TdGFydCwgc2l6ZV90IGZ1
bmN0aW9uTGVuZ3RoLCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwgY29uc3QgTW9kdWxlSW5m
b3JtYXRpb24mIGluZm8sIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIFRocm93V2FzbUV4Y2VwdGlv
biB0aHJvd1dhc21FeGNlcHRpb24pCkBAIC01MTEsMTAgKzUwMSwxMiBAQCB2b2lkIExMSW50R2Vu
ZXJhdG9yOjpkaWRGaW5pc2hQYXJzaW5nTG9jYWxzKCkKIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFk
ZENvbnN0YW50KFR5cGUsIHVpbnQ2NF90IHZhbHVlKSAtPiBFeHByZXNzaW9uVHlwZQogewogICAg
IFZpcnR1YWxSZWdpc3RlciBzb3VyY2UoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggKyBtX2Nv
ZGVCbG9jay0+bV9jb25zdGFudHMuc2l6ZSgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fY29uc3Rh
bnRNYXAuZW1wbGFjZSh2YWx1ZSwgc291cmNlKTsKKyAgICBpZiAocmVzdWx0LnNlY29uZCkKKyAg
ICAgICAgbV9jb2RlQmxvY2stPm1fY29uc3RhbnRzLmFwcGVuZCh2YWx1ZSk7CisgICAgZWxzZQor
ICAgICAgICBzb3VyY2UgPSByZXN1bHQuZmlyc3QtPnNlY29uZDsKICAgICBhdXRvIHRhcmdldCA9
IG5ld1RlbXBvcmFyeSgpOwotICAgIHRhcmdldC0+cmVmKCk7Ci0gICAgbV9jb25zdGFudFBvb2xS
ZWdpc3RlcnMuYXBwZW5kKHRhcmdldCk7Ci0gICAgbV9jb2RlQmxvY2stPm1fY29uc3RhbnRzLmFw
cGVuZCh2YWx1ZSk7CiAgICAgV2FzbU1vdjo6ZW1pdCh0aGlzLCB0YXJnZXQsIHNvdXJjZSk7CiAg
ICAgcmV0dXJuIHRhcmdldDsKIH0KQEAgLTU3MCwxMSArNTYyLDggQEAgYXV0byBMTEludEdlbmVy
YXRvcjo6YWRkTG9vcChCbG9ja1NpZ25hdHVyZSBzaWduYXR1cmUsIFN0YWNrJiBlbmNsb3NpbmdT
dGFjaywgQ28KICAgICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZCg6OkpTQzo6dmlydHVhbFJlZ2lz
dGVyRm9yTG9jYWwoaSkpOwogICAgIGZvciAodW5zaWduZWQgY29udHJvbEluZGV4ID0gMDsgY29u
dHJvbEluZGV4IDwgbV9wYXJzZXItPmNvbnRyb2xTdGFjaygpLnNpemUoKTsgKytjb250cm9sSW5k
ZXgpIHsKICAgICAgICAgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25TdGFjayA9IG1fcGFyc2Vy
LT5jb250cm9sU3RhY2soKVtjb250cm9sSW5kZXhdLmVuY2xvc2VkRXhwcmVzc2lvblN0YWNrOwot
ICAgICAgICBmb3IgKGF1dG8mIGV4cHJlc3Npb24gOiBleHByZXNzaW9uU3RhY2spIHsKLSAgICAg
ICAgICAgIGlmIChpc0NvbnN0YW50KGV4cHJlc3Npb24pKQotICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBmb3IgKGF1dG8mIGV4cHJlc3Npb24gOiBleHByZXNzaW9uU3RhY2spCiAg
ICAgICAgICAgICBvc3JFbnRyeURhdGEuYXBwZW5kKGV4cHJlc3Npb24tPnZpcnR1YWxSZWdpc3Rl
cigpKTsKLSAgICAgICAgfQogICAgIH0KIAogICAgIFdhc21Mb29wSGludDo6ZW1pdCh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAppbmRleCA2
MjZlNTJhOGNjODlmOGFmNDc3NDMyNjFjYmE4MjY4NGNhMGY1NmUwLi5mY2VmNDhmNzVkZmVkODVm
OGZiY2Q0MGI3MDE5NTE3NzRlNzI2ZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9wZXJhdGlvbnMuY3BwCkBAIC0xMjYsNiArMTI2LDggQEAgc3RhdGljIHZvaWQgZG9P
U1JFbnRyeShJbnN0YW5jZSogaW5zdGFuY2UsIFByb2JlOjpDb250ZXh0JiBjb250ZXh0LCBCQlFD
YWxsZWUmIGMKICAgICAgICAgY29udGV4dC5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSA9IDA7
CiAgICAgfTsKIAorICAgIFJFTEVBU0VfQVNTRVJUKG9zckVudHJ5Q2FsbGVlLm9zckVudHJ5U2Ny
YXRjaEJ1ZmZlclNpemUoKSA9PSBvc3JFbnRyeURhdGEudmFsdWVzKCkuc2l6ZSgpKTsKKwogICAg
IHVpbnQ2NF90KiBidWZmZXIgPSBpbnN0YW5jZS0+Y29udGV4dCgpLT5zY3JhdGNoQnVmZmVyRm9y
U2l6ZShvc3JFbnRyeUNhbGxlZS5vc3JFbnRyeVNjcmF0Y2hCdWZmZXJTaXplKCkpOwogICAgIGlm
ICghYnVmZmVyKQogICAgICAgICByZXR1cm4gcmV0dXJuV2l0aG91dE9TUkVudHJ5KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>