<?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>213435</bug_id>
          
          <creation_ts>2020-06-20 13:22:51 -0700</creation_ts>
          <short_desc>AXIsolatedTree::generateSubtree should properly assign the generated subtree to its parent node.</short_desc>
          <delta_ts>2020-06-22 16:56:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664772</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-20 13:22:51 -0700</bug_when>
    <thetext>AXIsolatedTree::generateSubtree should properly assign the generated subtree to its parent node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664773</commentid>
    <comment_count>1</comment_count>
      <attachid>402400</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-20 13:29:42 -0700</bug_when>
    <thetext>Created attachment 402400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664778</commentid>
    <comment_count>2</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-20 14:07:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/64420184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664888</commentid>
    <comment_count>3</comment_count>
      <attachid>402400</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-21 13:39:38 -0700</bug_when>
    <thetext>Comment on attachment 402400
Patch

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

review+ but I don’t understand the correctness of the isLocked/LockHolder use.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:164
&gt; +void AXIsolatedTree::updateChildrenIDs(AXID axID, Vector&lt;AXID&gt;&amp;&amp; childrenIDs)

Seems like we missed an opportunity to move the vector in one of the places below that do it. The make_pair could use WTFMove, I guess. Without that, the function just copies the vector twice.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:174
&gt; +    if (m_changeLogLock.isLocked())
&gt; +        m_pendingChildrenUpdates.append(std::make_pair(axID, childrenIDs));
&gt; +    else {
&gt; +        LockHolder locker { m_changeLogLock };
&gt; +        m_pendingChildrenUpdates.append(std::make_pair(axID, childrenIDs));
&gt; +    }

Is this really a safe way to use a lock? I’m surprised it’s OK and not racy to check isLocked like this.

Seems an inelegant idiom; looks like an attempt to simulate recursive lock semantics.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:379
&gt; -    LockHolder locker { m_changeLogLock };
&gt; -    m_pendingSubtreeRemovals.append(axID);
&gt; +    {
&gt; +        LockHolder locker { m_changeLogLock };
&gt; +        m_pendingSubtreeRemovals.append(axID);
&gt; +    }

This change is entirely stylistic, I guess? Doesn’t make any semantic change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665121</commentid>
    <comment_count>4</comment_count>
      <attachid>402494</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-22 12:39:15 -0700</bug_when>
    <thetext>Created attachment 402494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665136</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-22 12:45:03 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 402400 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402400&amp;action=review
&gt; 
&gt; review+ but I don’t understand the correctness of the isLocked/LockHolder
&gt; use.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:164
&gt; &gt; +void AXIsolatedTree::updateChildrenIDs(AXID axID, Vector&lt;AXID&gt;&amp;&amp; childrenIDs)
&gt; 
&gt; Seems like we missed an opportunity to move the vector in one of the places
&gt; below that do it. The make_pair could use WTFMove, I guess. Without that,
&gt; the function just copies the vector twice.

Fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:174
&gt; &gt; +    if (m_changeLogLock.isLocked())
&gt; &gt; +        m_pendingChildrenUpdates.append(std::make_pair(axID, childrenIDs));
&gt; &gt; +    else {
&gt; &gt; +        LockHolder locker { m_changeLogLock };
&gt; &gt; +        m_pendingChildrenUpdates.append(std::make_pair(axID, childrenIDs));
&gt; &gt; +    }
&gt; 
&gt; Is this really a safe way to use a lock? I’m surprised it’s OK and not racy
&gt; to check isLocked like this.
&gt; 
&gt; Seems an inelegant idiom; looks like an attempt to simulate recursive lock
&gt; semantics.

Fixed. No more check for isLocked().
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:379
&gt; &gt; -    LockHolder locker { m_changeLogLock };
&gt; &gt; -    m_pendingSubtreeRemovals.append(axID);
&gt; &gt; +    {
&gt; &gt; +        LockHolder locker { m_changeLogLock };
&gt; &gt; +        m_pendingSubtreeRemovals.append(axID);
&gt; &gt; +    }
&gt; 
&gt; This change is entirely stylistic, I guess? Doesn’t make any semantic change.

Reverted this that was a leftover of an intermediate change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665140</commentid>
    <comment_count>6</comment_count>
      <attachid>402494</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-22 12:50:04 -0700</bug_when>
    <thetext>Comment on attachment 402494
Patch

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

r=me assuming all the tests pass

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:101
&gt; +    AXIsolatedTreeID m_treeID;

Typically we put all the function members before any of the data members. This could go back where it was before, or if the order of data members matters, at least down after the functions.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:128
&gt; +    // Called on main thread to updates both m_nodeMap and m_pendingChildrenUpdates.
&gt; +    void updateChildrenIDs(AXID axID, Vector&lt;AXID&gt;&amp;&amp; childrenIDs);

&quot;updates&quot; -&gt; &quot;update&quot;

Typically we put all the function members before any of the data members, so this could go above m_axObjectCache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665233</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-22 16:55:02 -0700</bug_when>
    <thetext>Committed r263378: &lt;https://trac.webkit.org/changeset/263378&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402494.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665234</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-22 16:56:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64614814&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402400</attachid>
            <date>2020-06-20 13:29:42 -0700</date>
            <delta_ts>2020-06-22 12:39:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213435-20200620162941.patch</filename>
            <type>text/plain</type>
            <size>8370</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg5NjQxNmZhNTYyYWNm
OWJmNDQ0Njk0YjNiNjNhYjNhYjBkYTE0Yi4uNDg5NTk2MzZjMjU4MzA2NzczYzBmNTgyNTU3Yzhi
YmQ3MTQ2YWE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA2LTIwICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBWElzb2xhdGVk
VHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIHNob3VsZCBwcm9wZXJseSBhc3NpZ24gdGhlIGdlbmVyYXRl
ZCBzdWJ0cmVlIHRvIGl0cyBwYXJlbnQgbm9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUgbm93
IHByb3Blcmx5IHVwZGF0ZXMgdGhlIGNoaWxkcmVuIElEcworICAgICAgICBvZiB0aGUgcGFyZW50
IG5vZGUgb2YgdGhlIHN1YnRyZWUgYmVpbmcgZ2VuZXJhdGVkLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OmdlbmVyYXRlSXNvbGF0ZWRUcmVlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
VHJlZTo6dXBkYXRlQ2hpbGRyZW5JRHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OmdlbmVyYXRlU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Y3JlYXRlU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRl
U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRy
ZW4pOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjphcHBlbmROb2RlQ2hhbmdlcyk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKwogMjAyMC0wNi0y
MCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ11b
UXVpcmtdIFRhYmxlIGhlaWdodCBuZWVkcyBxdWlyayBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggNTZhZjg4MGU1OWQ3MGRi
OGRlNjViMmRmNWQ5NGNlODgyMTNmMjhiMi4uYmZhOGZkOGIyYzg4MmVlYzEyZmNiYmMxZDliYTc0
MTI3Y2RkZmVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCkBAIC0zMTI3LDcgKzMxMjcsNyBAQCBSZWY8QVhJc29sYXRlZFRyZWU+IEFYT2Jq
ZWN0Q2FjaGU6OmdlbmVyYXRlSXNvbGF0ZWRUcmVlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRAog
CiAgICAgYXV0byogYXhSb290ID0gYXhPYmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUoZG9jdW1lbnQu
dmlldygpKTsKICAgICBpZiAoYXhSb290KQotICAgICAgICB0cmVlLT5nZW5lcmF0ZVN1YnRyZWUo
KmF4Um9vdCwgSW52YWxpZEFYSUQsIHRydWUpOworICAgICAgICB0cmVlLT5nZW5lcmF0ZVN1YnRy
ZWUoKmF4Um9vdCwgbnVsbHB0ciwgdHJ1ZSk7CiAKICAgICBhdXRvKiBheEZvY3VzID0gYXhPYmpl
Y3RDYWNoZS0+Zm9jdXNlZE9iamVjdChkb2N1bWVudCk7CiAgICAgaWYgKGF4Rm9jdXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5jcHAKaW5kZXggZWQ1OGYxMjg1YTE3NWM0OTU1MzY2ZTg3Y2VhZWY4MzM5
OGZiZDIwMS4uMzc1YzIzMjAzYmM3ZDFlNWY4YWU3ODdkODU5ZTYxZGY4YjU4ZDc3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtMTYxLDE4ICsxNjEsMzMgQEAgVmVjdG9yPFJlZlB0cjxB
WENvcmVPYmplY3Q+PiBBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhWZWN0b3I8QVhJRD4g
YXhJRHMpIGMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIEFYSXNvbGF0ZWRUcmVlOjpn
ZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJlbnRJRCwgYm9v
bCBhdHRhY2hXcmFwcGVyKQordm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW5JRHMo
QVhJRCBheElELCBWZWN0b3I8QVhJRD4mJiBjaGlsZHJlbklEcykKK3sKKyAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworCisgICAgbV9ub2RlTWFwLnNldChheElELCBjaGlsZHJlbklEcyk7Cisg
ICAgaWYgKG1fY2hhbmdlTG9nTG9jay5pc0xvY2tlZCgpKQorICAgICAgICBtX3BlbmRpbmdDaGls
ZHJlblVwZGF0ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGF4SUQsIGNoaWxkcmVuSURzKSk7Cisg
ICAgZWxzZSB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07
CisgICAgICAgIG1fcGVuZGluZ0NoaWxkcmVuVXBkYXRlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIo
YXhJRCwgY2hpbGRyZW5JRHMpKTsKKyAgICB9Cit9CisKK3ZvaWQgQVhJc29sYXRlZFRyZWU6Omdl
bmVyYXRlU3VidHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWENvcmVPYmplY3QqIGF4UGFy
ZW50LCBib29sIGF0dGFjaFdyYXBwZXIpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6
OmdlbmVyYXRlU3VidHJlZSIpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKICAgICBW
ZWN0b3I8Tm9kZUNoYW5nZT4gbm9kZUNoYW5nZXM7Ci0gICAgYXV0byBvYmplY3QgPSBjcmVhdGVT
dWJ0cmVlKGF4T2JqZWN0LCBwYXJlbnRJRCwgYXR0YWNoV3JhcHBlciwgbm9kZUNoYW5nZXMpOwor
ICAgIGF1dG8gb2JqZWN0ID0gY3JlYXRlU3VidHJlZShheE9iamVjdCwgYXhQYXJlbnQgPyBheFBh
cmVudC0+b2JqZWN0SUQoKSA6IEludmFsaWRBWElELCBhdHRhY2hXcmFwcGVyLCBub2RlQ2hhbmdl
cyk7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKICAgICBhcHBl
bmROb2RlQ2hhbmdlcyhub2RlQ2hhbmdlcyk7CiAKLSAgICBpZiAocGFyZW50SUQgPT0gSW52YWxp
ZEFYSUQpCisgICAgaWYgKCFheFBhcmVudCkKICAgICAgICAgc2V0Um9vdE5vZGUob2JqZWN0LnB0
cigpKTsKLSAgICAvLyBGSVhNRTogZWxzZSBhdHRhY2ggdGhlIG5ld2x5IGNyZWF0ZWQgc3VidHJl
ZSB0byBpdHMgcGFyZW50LgorICAgIGVsc2UKKyAgICAgICAgdXBkYXRlQ2hpbGRyZW5JRHMoYXhQ
YXJlbnQtPm9iamVjdElEKCksIGF4UGFyZW50LT5jaGlsZHJlbklEcygpKTsKIH0KIAogUmVmPEFY
SXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpjcmVhdGVTdWJ0cmVlKEFYQ29yZU9iamVj
dCYgYXhPYmplY3QsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwgVmVjdG9yPE5v
ZGVDaGFuZ2U+JiBub2RlQ2hhbmdlcykKQEAgLTIwMiwxMSArMjE3LDcgQEAgUmVmPEFYSXNvbGF0
ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpjcmVhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhP
YmplY3QsIEFYSUQKICAgICAgICAgYXV0byBjaGlsZCA9IGNyZWF0ZVN1YnRyZWUoKmF4Q2hpbGQs
IGF4T2JqZWN0Lm9iamVjdElEKCksIGF0dGFjaFdyYXBwZXIsIG5vZGVDaGFuZ2VzKTsKICAgICAg
ICAgY2hpbGRyZW5JRHMuYXBwZW5kKGNoaWxkLT5vYmplY3RJRCgpKTsKICAgICB9Ci0gICAgbV9u
b2RlTWFwLnNldChvYmplY3QtPm9iamVjdElEKCksIGNoaWxkcmVuSURzKTsKLSAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07Ci0gICAgICAgIG1fcGVu
ZGluZ0NoaWxkcmVuVXBkYXRlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIob2JqZWN0LT5vYmplY3RJ
RCgpLCBjaGlsZHJlbklEcykpOwotICAgIH0KKyAgICB1cGRhdGVDaGlsZHJlbklEcyhvYmplY3Qt
Pm9iamVjdElEKCksIFdURk1vdmUoY2hpbGRyZW5JRHMpKTsKIAogICAgIHJldHVybiBvYmplY3Q7
CiB9CkBAIC0yMzcsMTAgKzI0OCw5IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZVN1YnRy
ZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKICAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6
dXBkYXRlU3VidHJlZSIpOwogICAgIEFYTE9HKCZheE9iamVjdCk7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKwogICAgIHJlbW92ZVN1YnRyZWUoYXhPYmplY3Qub2JqZWN0SUQoKSk7Ci0g
ICAgYXV0byogYXhQYXJlbnQgPSBheE9iamVjdC5wYXJlbnRPYmplY3QoKTsKLSAgICBBWElEIHBh
cmVudElEID0gYXhQYXJlbnQgPyBheFBhcmVudC0+b2JqZWN0SUQoKSA6IEludmFsaWRBWElEOwot
ICAgIGdlbmVyYXRlU3VidHJlZShheE9iamVjdCwgcGFyZW50SUQsIGZhbHNlKTsKKyAgICBnZW5l
cmF0ZVN1YnRyZWUoYXhPYmplY3QsIGF4T2JqZWN0LnBhcmVudE9iamVjdCgpLCBmYWxzZSk7CiB9
CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhP
YmplY3QpCkBAIC0yODYsNyArMjk2LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hp
bGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBu
ZXcgY2hpbGQsIGFkZCBpdCB0byB0aGUgdHJlZS4KICAgICAgICAgICAgIEFYTE9HKCJBZGRpbmcg
YSBuZXcgY2hpbGQgZm9yOiIpOwogICAgICAgICAgICAgQVhMT0coYXhDaGlsZHJlbltpXSk7Ci0g
ICAgICAgICAgICBnZW5lcmF0ZVN1YnRyZWUoKmF4Q2hpbGRyZW5baV0sIGF4QW5jZXN0b3ItPm9i
amVjdElEKCksIHRydWUpOworICAgICAgICAgICAgZ2VuZXJhdGVTdWJ0cmVlKCpheENoaWxkcmVu
W2ldLCBheEFuY2VzdG9yLCB0cnVlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjk2LDExICsz
MDYsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3Qm
IGF4T2JqZWN0KQogICAgICAgICByZW1vdmVTdWJ0cmVlKGNoaWxkSUQpOwogCiAgICAgLy8gTGFz
dGx5LCBtYWtlIHRoZSBjaGlsZHJlbiBJRHMgb2YgdGhlIGlzb2xhdGVkIG9iamVjdCB0byBiZSB0
aGUgc2FtZSBhcyB0aGUgQVhPYmplY3Qncy4KLSAgICBtX25vZGVNYXAuc2V0KGF4QW5jZXN0b3It
Pm9iamVjdElEKCksIGF4Q2hpbGRyZW5JRHMpOwotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKLSAgICAgICAgbV9wZW5kaW5nQ2hpbGRyZW5VcGRh
dGVzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihheEFuY2VzdG9yLT5vYmplY3RJRCgpLCBheENoaWxk
cmVuSURzKSk7Ci0gICAgfQorICAgIHVwZGF0ZUNoaWxkcmVuSURzKGF4QW5jZXN0b3ItPm9iamVj
dElEKCksIFdURk1vdmUoYXhDaGlsZHJlbklEcykpOwogfQogCiBSZWZQdHI8QVhJc29sYXRlZE9i
amVjdD4gQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKQEAgLTMyNyw2ICszMzMsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQog
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSIpOwogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2hhbmdlTG9nTG9jay5pc0xvY2tlZCgpKTsK
KyAgICBBU1NFUlQoIW1fcm9vdE5vZGUpOwogICAgIEFTU0VSVChyb290KTsKIAogICAgIG1fcm9v
dE5vZGUgPSByb290OwpAQCAtMzY2LDE0ICszNzMsMTggQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6
cmVtb3ZlU3VidHJlZShBWElEIGF4SUQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMb2NrSG9s
ZGVyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9OwotICAgIG1fcGVuZGluZ1N1YnRyZWVSZW1v
dmFscy5hcHBlbmQoYXhJRCk7CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciB7IG1f
Y2hhbmdlTG9nTG9jayB9OworICAgICAgICBtX3BlbmRpbmdTdWJ0cmVlUmVtb3ZhbHMuYXBwZW5k
KGF4SUQpOworICAgIH0KIH0KIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwZW5kTm9kZUNoYW5n
ZXMoY29uc3QgVmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzKQogewogICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjphcHBlbmROb2RlQ2hhbmdlcyIpOwogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgQVNTRVJUKG1fY2hhbmdlTG9nTG9jay5pc0xvY2tlZCgpKTsKKwogICAgIG1f
cGVuZGluZ0FwcGVuZHMuYXBwZW5kVmVjdG9yKGNoYW5nZXMpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuaAppbmRleCAzNmI4N2RmOTMxOWE3M2ZhODdiYmQwZDkyZjVjM2U0ZjhmNjBjOTQyLi4xZjc1
MmQ5MjVkOGRkYjRlZjgzNGRlNTlkYTBkMWRhMDk3NmRmNTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgICAgICBOb2RlQ2hhbmdlKGNvbnN0IE5v
ZGVDaGFuZ2UmKTsKICAgICB9OwogCi0gICAgdm9pZCBnZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2Jq
ZWN0JiwgQVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyKTsKKyAgICB2b2lkIGdlbmVy
YXRlU3VidHJlZShBWENvcmVPYmplY3QmLCBBWENvcmVPYmplY3QqLCBib29sIGF0dGFjaFdyYXBw
ZXIpOwogICAgIHZvaWQgdXBkYXRlTm9kZShBWENvcmVPYmplY3QmKTsKICAgICB2b2lkIHVwZGF0
ZVN1YnRyZWUoQVhDb3JlT2JqZWN0Jik7CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbihBWENvcmVP
YmplY3QmKTsKQEAgLTk4LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICBBWElzb2xhdGVkVHJlZSgp
OwogICAgIHZvaWQgY2xlYXIoKTsKIAorICAgIEFYSXNvbGF0ZWRUcmVlSUQgbV90cmVlSUQ7CiAg
ICAgc3RhdGljIEhhc2hNYXA8QVhJc29sYXRlZFRyZWVJRCwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4m
IHRyZWVJRENhY2hlKCk7CiAgICAgc3RhdGljIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIFJlZjxB
WElzb2xhdGVkVHJlZT4+JiB0cmVlUGFnZUNhY2hlKCk7CiAKQEAgLTEyMCwxMCArMTIxLDExIEBA
IHByaXZhdGU6CiAgICAgVmVjdG9yPEFYSUQ+IG1fcGVuZGluZ1N1YnRyZWVSZW1vdmFsczsgLy8g
Tm9kZXMgd2hvc2Ugc3VidHJlZXMgYXJlIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgdHJlZS4KICAg
ICBWZWN0b3I8c3RkOjpwYWlyPEFYSUQsIFZlY3RvcjxBWElEPj4+IG1fcGVuZGluZ0NoaWxkcmVu
VXBkYXRlczsKICAgICBBWElEIG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQgeyBJbnZhbGlkQVhJRCB9
OworICAgIEFYSUQgbV9mb2N1c2VkTm9kZUlEIHsgSW52YWxpZEFYSUQgfTsKICAgICBMb2NrIG1f
Y2hhbmdlTG9nTG9jazsKIAotICAgIEFYSXNvbGF0ZWRUcmVlSUQgbV90cmVlSUQ7Ci0gICAgQVhJ
RCBtX2ZvY3VzZWROb2RlSUQgeyBJbnZhbGlkQVhJRCB9OworICAgIC8vIENhbGxlZCBvbiBtYWlu
IHRocmVhZCB0byB1cGRhdGVzIGJvdGggbV9ub2RlTWFwIGFuZCBtX3BlbmRpbmdDaGlsZHJlblVw
ZGF0ZXMuCisgICAgdm9pZCB1cGRhdGVDaGlsZHJlbklEcyhBWElEIGF4SUQsIFZlY3RvcjxBWElE
PiYmIGNoaWxkcmVuSURzKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402494</attachid>
            <date>2020-06-22 12:39:15 -0700</date>
            <delta_ts>2020-06-22 16:55:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213435-20200622153914.patch</filename>
            <type>text/plain</type>
            <size>8894</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg5NjQxNmZhNTYyYWNm
OWJmNDQ0Njk0YjNiNjNhYjNhYjBkYTE0Yi4uYzg0YmI4MjJhOWRkZTdiYmJhYzlmMWQ3ZTM2NzQ4
MGY3YTUyNzk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA2LTIyICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBWElzb2xhdGVk
VHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIHNob3VsZCBwcm9wZXJseSBhc3NpZ24gdGhlIGdlbmVyYXRl
ZCBzdWJ0cmVlIHRvIGl0cyBwYXJlbnQgbm9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQzNQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIEFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUgbm93IHBy
b3Blcmx5IHVwZGF0ZXMgdGhlIGNoaWxkcmVuIElEcworICAgICAgICBvZiB0aGUgcGFyZW50IG5v
ZGUgb2YgdGhlIHN1YnRyZWUgYmVpbmcgZ2VuZXJhdGVkLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OmdlbmVyYXRlSXNvbGF0ZWRUcmVlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlQ2hpbGRyZW5JRHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6
OmdlbmVyYXRlU3VidHJlZSk6IFRha2VzIHRoZSBwYXJlbnQgb2JqZWN0CisgICAgICAgIGluc3Rl
YWQgb2YgdGhlIHBhcmVudCBJRC4gVGhpcyBhbGxvd3MgdG8gcmV0cmlldmUgdGhlIGNoaWxkcmVu
IElEcyBvZgorICAgICAgICB0aGUgcGFyZW50IG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OkFY
SXNvbGF0ZWRUcmVlOjpjcmVhdGVTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0
ZWRUcmVlOjp1cGRhdGVTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
Ojp1cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6c2V0
Um9vdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRy
ZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmFwcGVuZE5vZGVDaGFuZ2Vz
KTogUi12YWx1ZSBwYXJhbWV0ZXIgaW5zdGVhZAorICAgICAgICBvZiBieSByZWZlcmVuY2UuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKwog
MjAyMC0wNi0yMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtM
RkNdW1RGQ11bUXVpcmtdIFRhYmxlIGhlaWdodCBuZWVkcyBxdWlyayBoYW5kbGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggNTZhZjg4
MGU1OWQ3MGRiOGRlNjViMmRmNWQ5NGNlODgyMTNmMjhiMi4uYmZhOGZkOGIyYzg4MmVlYzEyZmNi
YmMxZDliYTc0MTI3Y2RkZmVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0zMTI3LDcgKzMxMjcsNyBAQCBSZWY8QVhJc29sYXRlZFRy
ZWU+IEFYT2JqZWN0Q2FjaGU6OmdlbmVyYXRlSXNvbGF0ZWRUcmVlKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgRAogCiAgICAgYXV0byogYXhSb290ID0gYXhPYmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUo
ZG9jdW1lbnQudmlldygpKTsKICAgICBpZiAoYXhSb290KQotICAgICAgICB0cmVlLT5nZW5lcmF0
ZVN1YnRyZWUoKmF4Um9vdCwgSW52YWxpZEFYSUQsIHRydWUpOworICAgICAgICB0cmVlLT5nZW5l
cmF0ZVN1YnRyZWUoKmF4Um9vdCwgbnVsbHB0ciwgdHJ1ZSk7CiAKICAgICBhdXRvKiBheEZvY3Vz
ID0gYXhPYmplY3RDYWNoZS0+Zm9jdXNlZE9iamVjdChkb2N1bWVudCk7CiAgICAgaWYgKGF4Rm9j
dXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggZWQ1OGYxMjg1YTE3NWM0OTU1MzY2ZTg3
Y2VhZWY4MzM5OGZiZDIwMS4uMGEwOWIwMzRhN2VlMWM0ZmI5MzY2MTNjMWJiZmU1NjRiMDk1NjU4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtMTYxLDE4ICsxNjEsMjkgQEAgVmVjdG9y
PFJlZlB0cjxBWENvcmVPYmplY3Q+PiBBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhWZWN0
b3I8QVhJRD4gYXhJRHMpIGMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIEFYSXNvbGF0
ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJl
bnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyKQordm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hp
bGRyZW5JRHMoQVhJRCBheElELCBWZWN0b3I8QVhJRD4mJiBjaGlsZHJlbklEcykKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX2NoYW5nZUxvZ0xvY2suaXNMb2Nr
ZWQoKSk7CisKKyAgICBtX25vZGVNYXAuc2V0KGF4SUQsIGNoaWxkcmVuSURzKTsKKyAgICBtX3Bl
bmRpbmdDaGlsZHJlblVwZGF0ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGF4SUQsIFdURk1vdmUo
Y2hpbGRyZW5JRHMpKSk7Cit9CisKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3VidHJl
ZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWENvcmVPYmplY3QqIGF4UGFyZW50LCBib29sIGF0
dGFjaFdyYXBwZXIpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3Vi
dHJlZSIpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKICAgICBWZWN0b3I8Tm9kZUNo
YW5nZT4gbm9kZUNoYW5nZXM7Ci0gICAgYXV0byBvYmplY3QgPSBjcmVhdGVTdWJ0cmVlKGF4T2Jq
ZWN0LCBwYXJlbnRJRCwgYXR0YWNoV3JhcHBlciwgbm9kZUNoYW5nZXMpOworICAgIGF1dG8gb2Jq
ZWN0ID0gY3JlYXRlU3VidHJlZShheE9iamVjdCwgYXhQYXJlbnQgPyBheFBhcmVudC0+b2JqZWN0
SUQoKSA6IEludmFsaWRBWElELCBhdHRhY2hXcmFwcGVyLCBub2RlQ2hhbmdlcyk7CiAgICAgTG9j
a0hvbGRlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKLSAgICBhcHBlbmROb2RlQ2hhbmdl
cyhub2RlQ2hhbmdlcyk7CisgICAgYXBwZW5kTm9kZUNoYW5nZXMoV1RGTW92ZShub2RlQ2hhbmdl
cykpOwogCi0gICAgaWYgKHBhcmVudElEID09IEludmFsaWRBWElEKQorICAgIGlmICghYXhQYXJl
bnQpCiAgICAgICAgIHNldFJvb3ROb2RlKG9iamVjdC5wdHIoKSk7Ci0gICAgLy8gRklYTUU6IGVs
c2UgYXR0YWNoIHRoZSBuZXdseSBjcmVhdGVkIHN1YnRyZWUgdG8gaXRzIHBhcmVudC4KKyAgICBl
bHNlCisgICAgICAgIHVwZGF0ZUNoaWxkcmVuSURzKGF4UGFyZW50LT5vYmplY3RJRCgpLCBheFBh
cmVudC0+Y2hpbGRyZW5JRHMoKSk7CiB9CiAKIFJlZjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xh
dGVkVHJlZTo6Y3JlYXRlU3VidHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElEIHBhcmVu
dElELCBib29sIGF0dGFjaFdyYXBwZXIsIFZlY3RvcjxOb2RlQ2hhbmdlPiYgbm9kZUNoYW5nZXMp
CkBAIC0yMDIsMTAgKzIxMywxMCBAQCBSZWY8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRy
ZWU6OmNyZWF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRAogICAgICAgICBh
dXRvIGNoaWxkID0gY3JlYXRlU3VidHJlZSgqYXhDaGlsZCwgYXhPYmplY3Qub2JqZWN0SUQoKSwg
YXR0YWNoV3JhcHBlciwgbm9kZUNoYW5nZXMpOwogICAgICAgICBjaGlsZHJlbklEcy5hcHBlbmQo
Y2hpbGQtPm9iamVjdElEKCkpOwogICAgIH0KLSAgICBtX25vZGVNYXAuc2V0KG9iamVjdC0+b2Jq
ZWN0SUQoKSwgY2hpbGRyZW5JRHMpOworCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
ciB7IG1fY2hhbmdlTG9nTG9jayB9OwotICAgICAgICBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMu
YXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG9iamVjdC0+b2JqZWN0SUQoKSwgY2hpbGRyZW5JRHMpKTsK
KyAgICAgICAgdXBkYXRlQ2hpbGRyZW5JRHMob2JqZWN0LT5vYmplY3RJRCgpLCBXVEZNb3ZlKGNo
aWxkcmVuSURzKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG9iamVjdDsKQEAgLTIzNywxMCArMjQ4
LDkgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlU3VidHJlZShBWENvcmVPYmplY3QmIGF4
T2JqZWN0KQogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVTdWJ0cmVlIik7CiAg
ICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCiAgICAg
cmVtb3ZlU3VidHJlZShheE9iamVjdC5vYmplY3RJRCgpKTsKLSAgICBhdXRvKiBheFBhcmVudCA9
IGF4T2JqZWN0LnBhcmVudE9iamVjdCgpOwotICAgIEFYSUQgcGFyZW50SUQgPSBheFBhcmVudCA/
IGF4UGFyZW50LT5vYmplY3RJRCgpIDogSW52YWxpZEFYSUQ7Ci0gICAgZ2VuZXJhdGVTdWJ0cmVl
KGF4T2JqZWN0LCBwYXJlbnRJRCwgZmFsc2UpOworICAgIGdlbmVyYXRlU3VidHJlZShheE9iamVj
dCwgYXhPYmplY3QucGFyZW50T2JqZWN0KCksIGZhbHNlKTsKIH0KIAogdm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKQEAgLTI4Niw3ICsy
OTYsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3Qm
IGF4T2JqZWN0KQogICAgICAgICAgICAgLy8gVGhpcyBpcyBhIG5ldyBjaGlsZCwgYWRkIGl0IHRv
IHRoZSB0cmVlLgogICAgICAgICAgICAgQVhMT0coIkFkZGluZyBhIG5ldyBjaGlsZCBmb3I6Iik7
CiAgICAgICAgICAgICBBWExPRyhheENoaWxkcmVuW2ldKTsKLSAgICAgICAgICAgIGdlbmVyYXRl
U3VidHJlZSgqYXhDaGlsZHJlbltpXSwgYXhBbmNlc3Rvci0+b2JqZWN0SUQoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBnZW5lcmF0ZVN1YnRyZWUoKmF4Q2hpbGRyZW5baV0sIGF4QW5jZXN0b3IsIHRy
dWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yOTYsMTEgKzMwNiw4IEBAIHZvaWQgQVhJc29s
YXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAgICAgICAg
IHJlbW92ZVN1YnRyZWUoY2hpbGRJRCk7CiAKICAgICAvLyBMYXN0bHksIG1ha2UgdGhlIGNoaWxk
cmVuIElEcyBvZiB0aGUgaXNvbGF0ZWQgb2JqZWN0IHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBBWE9i
amVjdCdzLgotICAgIG1fbm9kZU1hcC5zZXQoYXhBbmNlc3Rvci0+b2JqZWN0SUQoKSwgYXhDaGls
ZHJlbklEcyk7Ci0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciB7IG1fY2hhbmdlTG9n
TG9jayB9OwotICAgICAgICBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMuYXBwZW5kKHN0ZDo6bWFr
ZV9wYWlyKGF4QW5jZXN0b3ItPm9iamVjdElEKCksIGF4Q2hpbGRyZW5JRHMpKTsKLSAgICB9Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKKyAgICB1cGRhdGVDaGls
ZHJlbklEcyhheEFuY2VzdG9yLT5vYmplY3RJRCgpLCBXVEZNb3ZlKGF4Q2hpbGRyZW5JRHMpKTsK
IH0KIAogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9k
ZSgpCkBAIC0zMjcsNiArMzM0LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUo
QVhJc29sYXRlZE9iamVjdCogcm9vdCkKICAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0
Um9vdE5vZGUiKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2No
YW5nZUxvZ0xvY2suaXNMb2NrZWQoKSk7CisgICAgQVNTRVJUKCFtX3Jvb3ROb2RlKTsKICAgICBB
U1NFUlQocm9vdCk7CiAKICAgICBtX3Jvb3ROb2RlID0gcm9vdDsKQEAgLTM3MCwxMSArMzc4LDEz
IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWUoQVhJRCBheElEKQogICAgIG1f
cGVuZGluZ1N1YnRyZWVSZW1vdmFscy5hcHBlbmQoYXhJRCk7CiB9CiAKLXZvaWQgQVhJc29sYXRl
ZFRyZWU6OmFwcGVuZE5vZGVDaGFuZ2VzKGNvbnN0IFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hhbmdl
cykKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGVuZE5vZGVDaGFuZ2VzKFZlY3RvcjxOb2RlQ2hh
bmdlPiYmIGNoYW5nZXMpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGVuZE5v
ZGVDaGFuZ2VzIik7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3BlbmRpbmdB
cHBlbmRzLmFwcGVuZFZlY3RvcihjaGFuZ2VzKTsKKyAgICBBU1NFUlQobV9jaGFuZ2VMb2dMb2Nr
LmlzTG9ja2VkKCkpOworCisgICAgbV9wZW5kaW5nQXBwZW5kcy5hcHBlbmRWZWN0b3IoV1RGTW92
ZShjaGFuZ2VzKSk7CiB9CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5n
ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggMzZiODdkZjkzMTlhNzNmYTg3YmJkMGQ5MmY1
YzNlNGY4ZjYwYzk0Mi4uOTczNWJmNmY4OGRmMTU3NjE1M2NhZDM1ZTdiOTI5ZTMzMTVmMzMwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAgICAg
Tm9kZUNoYW5nZShjb25zdCBOb2RlQ2hhbmdlJik7CiAgICAgfTsKIAotICAgIHZvaWQgZ2VuZXJh
dGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBl
cik7CisgICAgdm9pZCBnZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiwgQVhDb3JlT2JqZWN0
KiwgYm9vbCBhdHRhY2hXcmFwcGVyKTsKICAgICB2b2lkIHVwZGF0ZU5vZGUoQVhDb3JlT2JqZWN0
Jik7CiAgICAgdm9pZCB1cGRhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYpOwogICAgIHZvaWQgdXBk
YXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0Jik7CkBAIC05OCwxMyArOTgsMTQgQEAgcHJpdmF0ZToK
ICAgICBBWElzb2xhdGVkVHJlZSgpOwogICAgIHZvaWQgY2xlYXIoKTsKIAorICAgIEFYSXNvbGF0
ZWRUcmVlSUQgbV90cmVlSUQ7CiAgICAgc3RhdGljIEhhc2hNYXA8QVhJc29sYXRlZFRyZWVJRCwg
UmVmPEFYSXNvbGF0ZWRUcmVlPj4mIHRyZWVJRENhY2hlKCk7CiAgICAgc3RhdGljIEhhc2hNYXA8
UGFnZUlkZW50aWZpZXIsIFJlZjxBWElzb2xhdGVkVHJlZT4+JiB0cmVlUGFnZUNhY2hlKCk7CiAK
ICAgICAvLyBDYWxsIG9uIG1haW4gdGhyZWFkCiAgICAgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IGNy
ZWF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiwgQVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFw
cGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mKTsKICAgICAvLyBRdWV1ZXMgYWxsIHBlbmRpbmcgYWRk
aXRpb25zIHRvIHRoZSB0cmVlIGFzIHRoZSByZXN1bHQgb2YgYSBzdWJ0cmVlIGdlbmVyYXRpb24u
Ci0gICAgdm9pZCBhcHBlbmROb2RlQ2hhbmdlcyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mKTsK
KyAgICB2b2lkIGFwcGVuZE5vZGVDaGFuZ2VzKFZlY3RvcjxOb2RlQ2hhbmdlPiYmKTsKIAogICAg
IEFYT2JqZWN0Q2FjaGUqIG1fYXhPYmplY3RDYWNoZSB7IG51bGxwdHIgfTsKIApAQCAtMTIwLDEw
ICsxMjEsMTEgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8QVhJRD4gbV9wZW5kaW5nU3VidHJlZVJl
bW92YWxzOyAvLyBOb2RlcyB3aG9zZSBzdWJ0cmVlcyBhcmUgdG8gYmUgcmVtb3ZlZCBmcm9tIHRo
ZSB0cmVlLgogICAgIFZlY3RvcjxzdGQ6OnBhaXI8QVhJRCwgVmVjdG9yPEFYSUQ+Pj4gbV9wZW5k
aW5nQ2hpbGRyZW5VcGRhdGVzOwogICAgIEFYSUQgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRCB7IElu
dmFsaWRBWElEIH07CisgICAgQVhJRCBtX2ZvY3VzZWROb2RlSUQgeyBJbnZhbGlkQVhJRCB9Owog
ICAgIExvY2sgbV9jaGFuZ2VMb2dMb2NrOwogCi0gICAgQVhJc29sYXRlZFRyZWVJRCBtX3RyZWVJ
RDsKLSAgICBBWElEIG1fZm9jdXNlZE5vZGVJRCB7IEludmFsaWRBWElEIH07CisgICAgLy8gQ2Fs
bGVkIG9uIG1haW4gdGhyZWFkIHRvIHVwZGF0ZXMgYm90aCBtX25vZGVNYXAgYW5kIG1fcGVuZGlu
Z0NoaWxkcmVuVXBkYXRlcy4KKyAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuSURzKEFYSUQgYXhJRCwg
VmVjdG9yPEFYSUQ+JiYgY2hpbGRyZW5JRHMpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>