<?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>270854</bug_id>
          
          <creation_ts>2024-03-12 08:47:50 -0700</creation_ts>
          <short_desc>AX: AccessibilityNodeObject::determineAccessibilityRoleFromNode makes many unnecessary dynamicDowncasts.</short_desc>
          <delta_ts>2024-03-12 14:56:07 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2020464</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-12 08:47:50 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2020465</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-03-12 08:47:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/124455559&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2020476</commentid>
    <comment_count>2</comment_count>
      <attachid>470321</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-12 09:13:25 -0700</bug_when>
    <thetext>Created attachment 470321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2020486</commentid>
    <comment_count>3</comment_count>
      <attachid>470321</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-12 10:00:00 -0700</bug_when>
    <thetext>Comment on attachment 470321
Patch

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

r+ with passing EWS!

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:411
&gt; +    if (is&lt;HTMLLabelElement&gt;(element.get()))

I think dereferencing *element here would save a nullcheck.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:461
&gt; +    if (RefPtr summaryElement = dynamicDowncast&lt;HTMLSummaryElement&gt;(element.get()); summaryElement &amp;&amp; summaryElement-&gt;isActiveSummary())

I think dereferencing *element here would save a null check.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:477
&gt; +    if (is&lt;HTMLVideoElement&gt;(element.get()))
&gt;          return AccessibilityRole::Video;
&gt; -    if (is&lt;HTMLAudioElement&gt;(node.get()))
&gt; +    if (is&lt;HTMLAudioElement&gt;(element.get()))

I think dereferencing *element here would save a null check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2020503</commentid>
    <comment_count>4</comment_count>
      <attachid>470324</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-12 10:47:57 -0700</bug_when>
    <thetext>Created attachment 470324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2020506</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-12 10:55:13 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #3)
&gt; Comment on attachment 470321 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=470321&amp;action=review
&gt; 
&gt; r+ with passing EWS!
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:411
&gt; &gt; +    if (is&lt;HTMLLabelElement&gt;(element.get()))
&gt; 
&gt; I think dereferencing *element here would save a nullcheck.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:461
&gt; &gt; +    if (RefPtr summaryElement = dynamicDowncast&lt;HTMLSummaryElement&gt;(element.get()); summaryElement &amp;&amp; summaryElement-&gt;isActiveSummary())
&gt; 
&gt; I think dereferencing *element here would save a null check.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:477
&gt; &gt; +    if (is&lt;HTMLVideoElement&gt;(element.get()))
&gt; &gt;          return AccessibilityRole::Video;
&gt; &gt; -    if (is&lt;HTMLAudioElement&gt;(node.get()))
&gt; &gt; +    if (is&lt;HTMLAudioElement&gt;(element.get()))
&gt; 
&gt; I think dereferencing *element here would save a null check.

Addressed all instances, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2020573</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-03-12 14:56:05 -0700</bug_when>
    <thetext>Committed 276000@main (8c357cd24a0e): &lt;https://commits.webkit.org/276000@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 470324.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470321</attachid>
            <date>2024-03-12 09:13:25 -0700</date>
            <delta_ts>2024-03-12 10:40:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270854-20240312121054.patch</filename>
            <type>text/plain</type>
            <size>12142</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSA0ZTcwZjBhYTlmNzc3YzJlYWFhYmNkYWNhZjg2NzljMjA3YWJkZmY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDEyIE1hciAyMDI0IDA4OjAyOjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6CiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGVG
cm9tTm9kZSBtYWtlcyBtYW55CiB1bm5lY2Vzc2FyeSBkeW5hbWljRG93bmNhc3RzLiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwODU0CiA8cmRhcjovL3Byb2JsZW0v
MTI0NDU1NTU5PgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGlzIGlzIGEgaG90IG1l
dGhvZCBpbiBJVE0gdGhhdCBjYWxscyBtYW55IHRpbWVzIE5vZGU6Omhhc1RhZ05hbWUoY29uc3Qg
SFRNTFF1YWxpZmllZE5hbWUmKSwgd2hpY2ggaW4gdHVybiBkeW5hbWljRG93bmNhc3RzIHRoZSBO
b2RlIHRvIGFuIEhUTUxFbGVtZW50LiBUaGlzIHBhdGNoIHJlZHVjZXMgdGhlIG51bWJlciBvZiBk
eW5hbWljRG93bmNhc3RzIHNpZ25pZmljYW50bHkgYnkgZG93bmNhc3RpbmcgdG8gYW4gSFRNTEVs
ZW1lbnQgdXBmcm9udCBhbmQgY2FsbGluZyBIVE1MRWxlbWVudDo6aGFzVGFnTmFtZSBkaXJlY3Rs
eSBpbnN0ZWFkLiBJbiBhIHJ1biBvZiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5LCB0aGUgbnVt
YmVyIG9mIGRvd25jYXN0cyBkcm9wcyBieSAxOTc4MjQ4IG9yIDEzJSBvZiB0aGUgb3JpZ2luYWwg
bnVtYmVyLgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVB
Y2Nlc3NpYmlsaXR5Um9sZUZyb21Ob2RlIGNvbnN0KToKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgfCAxMjUgKysrKysrKysrKy0tLS0tLS0tCiAxIGZp
bGUgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAppbmRleCA4N2UwNWViYjE0MzUuLjg3NGM0MjM1YTc4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAK
QEAgLTMxNSwyNSArMzE1LDMyIEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZUZyb21Ob2RlKFRyCiAgICAgaWYgKCFu
b2RlKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd247CiAKLSAgICBp
ZiAoUmVmUHRyIGVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOyBlbGVt
ZW50ICYmIGVsZW1lbnQtPmlzTGluaygpKQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJv
bGU6OldlYkNvcmVMaW5rOwogICAgIGlmIChub2RlLT5pc1RleHROb2RlKCkpCiAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6U3RhdGljVGV4dDsKLSAgICBpZiAoUmVmUHRyIHNlbGVj
dEVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTFNlbGVjdEVsZW1lbnQ+KCpub2RlKSkKKwor
ICAgIFJlZlB0ciBlbGVtZW50ID0gZHluYW1pY0Rvd25jYXN0PEhUTUxFbGVtZW50Pigqbm9kZSk7
CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlVu
a25vd247CisKKyAgICBpZiAoZWxlbWVudC0+aXNMaW5rKCkpCisgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5Um9sZTo6V2ViQ29yZUxpbms7CisgICAgaWYgKFJlZlB0ciBzZWxlY3RFbGVtZW50
ID0gZHluYW1pY0Rvd25jYXN0PEhUTUxTZWxlY3RFbGVtZW50PigqZWxlbWVudCkpCiAgICAgICAg
IHJldHVybiBzZWxlY3RFbGVtZW50LT5tdWx0aXBsZSgpID8gQWNjZXNzaWJpbGl0eVJvbGU6Okxp
c3RCb3ggOiBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b247Ci0gICAgaWYgKFJlZlB0ciBp
bWdFbGVtZW50ID0gZHluYW1pY0Rvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KCpub2RlKTsgaW1n
RWxlbWVudCAmJiBpbWdFbGVtZW50LT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KHVzZW1hcEF0dHIpKQorICAgIGlmIChSZWZQdHIgaW1nRWxlbWVudCA9IGR5bmFtaWNEb3duY2Fz
dDxIVE1MSW1hZ2VFbGVtZW50PigqZWxlbWVudCk7IGltZ0VsZW1lbnQgJiYgaW1nRWxlbWVudC0+
aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih1c2VtYXBBdHRyKSkKICAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcDsKLSAgICBpZiAobm9kZS0+aGFzVGFn
TmFtZShsaVRhZykpCisKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShsaVRhZykpCiAgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEl0ZW07Ci0gICAgaWYgKG5vZGUtPmhh
c1RhZ05hbWUoYnV0dG9uVGFnKSkKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShidXR0b25U
YWcpKQogICAgICAgICByZXR1cm4gYnV0dG9uUm9sZVR5cGUoKTsKLSAgICBpZiAobm9kZS0+aGFz
VGFnTmFtZShsZWdlbmRUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGxlZ2VuZFRh
ZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6TGVnZW5kOwotICAgIGlmIChu
b2RlLT5oYXNUYWdOYW1lKGNhbnZhc1RhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUo
Y2FudmFzVGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpDYW52YXM7Ci0g
ICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVJvbGU6OkJ1dHRvbjsKLSAgICBpZiAoUmVmUHRyIGlucHV0ID0gZHluYW1pY0Rvd25jYXN0PEhU
TUxJbnB1dEVsZW1lbnQ+KCpub2RlKSkgeworCisgICAgaWYgKFJlZlB0ciBpbnB1dCA9IGR5bmFt
aWNEb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpIHsKKyAgICAgICAgaWYgKGlu
cHV0LT5pc0ZpbGVVcGxvYWQoKSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QnV0dG9uOwogICAgICAgICBpZiAoaW5wdXQtPmlzU3dpdGNoKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRjaDsKICAgICAgICAgaWYgKGlucHV0LT5pc0No
ZWNrYm94KCkpCkBAIC0zNjQsNDggKzM3MSw1OSBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGVGcm9tTm9kZShUcgog
ICAgIGlmIChoZWFkaW5nTGV2ZWwoKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xl
OjpIZWFkaW5nOwogCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoY29kZVRhZykpCisgICAgaWYg
KGVsZW1lbnQtPmhhc1RhZ05hbWUoY29kZVRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5Um9sZTo6Q29kZTsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShkZWxUYWcpKQorICAgIGlm
IChlbGVtZW50LT5oYXNUYWdOYW1lKGRlbFRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5Um9sZTo6RGVsZXRpb247Ci0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaW5zVGFnKSkKKyAg
ICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShpbnNUYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eVJvbGU6Okluc2VydGlvbjsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzdWJUYWcp
KQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKHN1YlRhZykpCiAgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2NyaXB0OwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHN1
cFRhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoc3VwVGFnKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdDsKLSAgICBpZiAoaXNTdHlsZUZvcm1h
dEdyb3VwKCkpCisKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShrYmRUYWcpCisgICAgICAg
IHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUocHJlVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNU
YWdOYW1lKHNhbXBUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUodmFyVGFnKQor
ICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGNpdGVUYWcpKQogICAgICAgICByZXR1cm4g
dHJlYXRTdHlsZUZvcm1hdEdyb3VwQXNJbmxpbmUgPT0gVHJlYXRTdHlsZUZvcm1hdEdyb3VwQXNJ
bmxpbmU6OlllcyA/IEFjY2Vzc2liaWxpdHlSb2xlOjpJbmxpbmUgOiBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VGV4dEdyb3VwOwogCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoZGRUYWcpKQorICAgIGlm
IChlbGVtZW50LT5oYXNUYWdOYW1lKGRkVGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw7Ci0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUo
ZHRUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGR0VGFnKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3RUZXJtOwotICAgIGlmIChub2Rl
LT5oYXNUYWdOYW1lKGRsVGFnKSkKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShkbFRhZykp
CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0OwotICAg
IGlmIChub2RlLT5oYXNUYWdOYW1lKG1lbnVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xUYWcp
IHx8IG5vZGUtPmhhc1RhZ05hbWUodWxUYWcpKQorCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05h
bWUobWVudVRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShvbFRhZykKKyAgICAg
ICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZSh1bFRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGlzdDsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShmaWVsZHNldFRhZykp
CisKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShmaWVsZHNldFRhZykpCiAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cDsKLSAgICBpZiAobm9kZS0+
aGFzVGFnTmFtZShmaWd1cmVUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGZpZ3Vy
ZVRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6RmlndXJlOwotICAgIGlm
IChub2RlLT5oYXNUYWdOYW1lKHBUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKHBU
YWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlBhcmFncmFwaDsKLSAgICBp
ZiAoaXM8SFRNTExhYmVsRWxlbWVudD4obm9kZS5nZXQoKSkpCisKKyAgICBpZiAoaXM8SFRNTExh
YmVsRWxlbWVudD4oZWxlbWVudC5nZXQoKSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Um9sZTo6TGFiZWw7Ci0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoZGZuVGFnKSkKKyAgICBpZiAo
ZWxlbWVudC0+aGFzVGFnTmFtZShkZm5UYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVJvbGU6OkRlZmluaXRpb247Ci0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoZGl2VGFnKSAmJiAh
aXNOb25OYXRpdmVUZXh0Q29udHJvbCgpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGRp
dlRhZykgJiYgIWlzTm9uTmF0aXZlVGV4dENvbnRyb2woKSkKICAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlSb2xlOjpHZW5lcmljOwotICAgIGlmIChpczxIVE1MRm9ybUVsZW1lbnQ+KG5vZGUu
Z2V0KCkpKQorICAgIGlmIChpczxIVE1MRm9ybUVsZW1lbnQ+KGVsZW1lbnQuZ2V0KCkpKQogICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkZvcm07Ci0gICAgaWYgKG5vZGUtPmhhc1Rh
Z05hbWUoYXJ0aWNsZVRhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoYXJ0aWNsZVRh
ZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOwot
ICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKG1haW5UYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNU
YWdOYW1lKG1haW5UYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRt
YXJrTWFpbjsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShuYXZUYWcpKQorICAgIGlmIChlbGVt
ZW50LT5oYXNUYWdOYW1lKG5hdlRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGFuZG1hcmtOYXZpZ2F0aW9uOwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGFzaWRlVGFn
KSkgeworCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoYXNpZGVUYWcpKSB7CiAgICAgICAg
IGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Nv
bXBsZW1lbnRhcnkpCiAgICAgICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRt
YXJrQ29tcGxlbWVudGFyeTsKICAgICAgICAgLy8gVGhlIGFzaWRlIGVsZW1lbnQgc2hvdWxkIG5v
dCBhc3N1bWUgdGhlIGNvbXBsZW1lbnRhcnkgcm9sZSB3aGVuIG5lc3RlZApAQCAtNDE5LDI5ICs0
MzcsMjggQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVy
bWluZUFjY2Vzc2liaWxpdHlSb2xlRnJvbU5vZGUoVHIKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeTsKICAgICB9Ci0gICAg
aWYgKG5vZGUtPmhhc1RhZ05hbWUoc2VhcmNoVGFnKSkKKworICAgIGlmIChlbGVtZW50LT5oYXNU
YWdOYW1lKHNlYXJjaFRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFu
ZG1hcmtTZWFyY2g7CiAKICAgICAvLyBUaGUgZGVmYXVsdCByb2xlIGF0dHJpYnV0ZSB2YWx1ZSBm
b3IgdGhlIHNlY3Rpb24gZWxlbWVudCwgcmVnaW9uLCBiZWNhbWUgYSBsYW5kbWFyayBpbiBBUklB
IDEuMS4KICAgICAvLyBUaGUgSFRNTCBBQU0gc3BlYyBzYXlzIGl0IGlzICJzdHJvbmdseSByZWNv
bW1lbmRlZCIgdGhhdCBBVHMgb25seSBjb252ZXkgYW5kIHByb3ZpZGUgbmF2aWdhdGlvbgogICAg
IC8vIGZvciBzZWN0aW9uIGVsZW1lbnRzIHdoaWNoIGhhdmUgbmFtZXMuCi0gICAgaWYgKG5vZGUt
Pmhhc1RhZ05hbWUoc2VjdGlvblRhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoc2Vj
dGlvblRhZykpCiAgICAgICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoYXJpYV9sYWJlbEF0dHIpIHx8
IGhhc0F0dHJpYnV0ZShhcmlhX2xhYmVsbGVkYnlBdHRyKSA/IEFjY2Vzc2liaWxpdHlSb2xlOjpM
YW5kbWFya1JlZ2lvbiA6IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0R3JvdXA7Ci0gICAgaWYgKG5v
ZGUtPmhhc1RhZ05hbWUoYWRkcmVzc1RhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUo
YWRkcmVzc1RhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRp
b25Hcm91cDsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShibG9ja3F1b3RlVGFnKSkKKyAgICBp
ZiAoZWxlbWVudC0+aGFzVGFnTmFtZShibG9ja3F1b3RlVGFnKSkKICAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlSb2xlOjpCbG9ja3F1b3RlOwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGNh
cHRpb25UYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZmlnY2FwdGlvblRhZykpCisgICAgaWYgKGVs
ZW1lbnQtPmhhc1RhZ05hbWUoY2FwdGlvblRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShmaWdj
YXB0aW9uVGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpDYXB0aW9uOwot
ICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGRpYWxvZ1RhZykpCisgICAgaWYgKGVsZW1lbnQtPmhh
c1RhZ05hbWUoZGlhbG9nVGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpB
cHBsaWNhdGlvbkRpYWxvZzsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShtYXJrVGFnKSB8fCBl
cXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShnZXRBdHRyaWJ1dGUocm9sZUF0dHIpLCAibWFy
ayJfcykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUobWFya1RhZykgfHwgZXF1YWxMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ2V0QXR0cmlidXRlKHJvbGVBdHRyKSwgIm1hcmsiX3MpKQog
ICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6Ok1hcms7Ci0gICAgaWYgKG5vZGUtPmhh
c1RhZ05hbWUocHJlVGFnKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpQcmU7
Ci0gICAgaWYgKGlzPEhUTUxEZXRhaWxzRWxlbWVudD4obm9kZS5nZXQoKSkpCisgICAgaWYgKGlz
PEhUTUxEZXRhaWxzRWxlbWVudD4oZWxlbWVudC5nZXQoKSkpCiAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5Um9sZTo6RGV0YWlsczsKLSAgICBpZiAoYXV0byogc3VtbWFyeUVsZW1lbnQgPSBk
eW5hbWljRG93bmNhc3Q8SFRNTFN1bW1hcnlFbGVtZW50Pihub2RlLmdldCgpKTsgc3VtbWFyeUVs
ZW1lbnQgJiYgc3VtbWFyeUVsZW1lbnQtPmlzQWN0aXZlU3VtbWFyeSgpKQorICAgIGlmIChSZWZQ
dHIgc3VtbWFyeUVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTFN1bW1hcnlFbGVtZW50Pihl
bGVtZW50LmdldCgpKTsgc3VtbWFyeUVsZW1lbnQgJiYgc3VtbWFyeUVsZW1lbnQtPmlzQWN0aXZl
U3VtbWFyeSgpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnk7CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTQ1MSwyOCArNDY4LDI4IEBAIEFjY2Vzc2liaWxpdHlS
b2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZUZy
b21Ob2RlKFRyCiAKICAgICAvLyBodHRwOi8vcmF3Z2l0LmNvbS93M2MvYXJpYS9tYXN0ZXIvaHRt
bC1hYW0vaHRtbC1hYW0uaHRtbAogICAgIC8vIE91dHB1dCBlbGVtZW50cyBzaG91bGQgYmUgbWFw
cGVkIHRvIHN0YXR1cyByb2xlLgotICAgIGlmIChpc091dHB1dCgpKQorICAgIGlmIChlbGVtZW50
LT5oYXNUYWdOYW1lKG91dHB1dFRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QXBwbGljYXRpb25TdGF0dXM7CiAKICNpZiBFTkFCTEUoVklERU8pCi0gICAgaWYgKGlzPEhU
TUxWaWRlb0VsZW1lbnQ+KG5vZGUuZ2V0KCkpKQorICAgIGlmIChpczxIVE1MVmlkZW9FbGVtZW50
PihlbGVtZW50LmdldCgpKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRl
bzsKLSAgICBpZiAoaXM8SFRNTEF1ZGlvRWxlbWVudD4obm9kZS5nZXQoKSkpCisgICAgaWYgKGlz
PEhUTUxBdWRpb0VsZW1lbnQ+KGVsZW1lbnQuZ2V0KCkpKQogICAgICAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eVJvbGU6OkF1ZGlvOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkK
LSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShtb2RlbFRhZykpCisgICAgaWYgKGVsZW1lbnQtPmhh
c1RhZ05hbWUobW9kZWxUYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6Ok1v
ZGVsOwogI2VuZGlmCiAKICAgICAvLyBUaGUgSFRNTCBlbGVtZW50IHNob3VsZCBub3QgYmUgZXhw
b3NlZCBhcyBhbiBlbGVtZW50LiBUaGF0J3Mgd2hhdCB0aGUgUmVuZGVyVmlldyBlbGVtZW50IGRv
ZXMuCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykpCisgICAgaWYgKGVsZW1lbnQt
Pmhhc1RhZ05hbWUoaHRtbFRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6
SWdub3JlZDsKIAogICAgIC8vIFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBiYW5uZXIvY29udGVu
dEluZm8gcGVyIHBhZ2UuIElmIGhlYWRlci9mb290ZXIgYXJlIGJlaW5nIHVzZWQgd2l0aGluIGFu
IGFydGljbGUgb3Igc2VjdGlvbiB0aGVuIGl0IHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyB3aG9s
ZSBwYWdlJ3MgYmFubmVyL2NvbnRlbnRJbmZvLgogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by9odG1sLWFhbS8jZWwtaGVhZGVyCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaGVhZGVyVGFn
KSkgeworICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGhlYWRlclRhZykpIHsKICAgICAgICAg
aWYgKCFpc0Rlc2NlbmRhbnRPZkVsZW1lbnRUeXBlKHsgYXJ0aWNsZVRhZywgYXNpZGVUYWcsIG1h
aW5UYWcsIG5hdlRhZywgc2VjdGlvblRhZyB9KSkKICAgICAgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI7CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Um9sZTo6R2VuZXJpYzsKQEAgLTQ4MSwyMSArNDk4LDE5IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZUZyb21Ob2Rl
KFRyCiAgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi8xOTAxMzggRm9vdGVycyBzaG91bGQgYmVj
b21lIGNvbnRlbnRJbmZvJ3MgaWYgc2NvcGVkIHRvIGJvZHkgKGFuZCBjb25zZXF1ZW50bHkgYmVj
b21lIGEgbGFuZG1hcmspLgogICAgIC8vIEl0IHNob3VsZCByZW1haW4gYSBmb290ZXIgaWYgc2Nv
cGVkIHRvIG1haW4sIHNlY3Rpb25pbmcgZWxlbWVudHMgKGFydGljbGUsIGFzaWRlLCBuYXYsIHNl
Y3Rpb24pIG9yIHJvb3Qgc2VjdGlvbmluZyBlbGVtZW50IChibG9ja3F1b3RlLCBkZXRhaWxzLCBk
aWFsb2csIGZpZWxkc2V0LCBmaWd1cmUsIHRkKS4KICAgICAvLyBodHRwczovL3czYy5naXRodWIu
aW8vaHRtbC1hYW0vI2VsLWZvb3RlcgotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGZvb3RlclRh
ZykpIHsKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShmb290ZXJUYWcpKSB7CiAgICAgICAg
IGlmICghaXNEZXNjZW5kYW50T2ZFbGVtZW50VHlwZSh7IGFydGljbGVUYWcsIGFzaWRlVGFnLCBu
YXZUYWcsIHNlY3Rpb25UYWcsIG1haW5UYWcsIGJsb2NrcXVvdGVUYWcsIGRldGFpbHNUYWcsIGRp
YWxvZ1RhZywgZmllbGRzZXRUYWcsIGZpZ3VyZVRhZywgdGRUYWcgfSkpCiAgICAgICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29udGVudEluZm87CiAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyOwogICAgIH0KIAotICAgIGlmIChub2RlLT5o
YXNUYWdOYW1lKHRpbWVUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKHRpbWVUYWcp
KQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWU7Ci0gICAgaWYgKG5vZGUt
Pmhhc1RhZ05hbWUoaHJUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGhyVGFnKSkK
ICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZTsKIAogICAg
IC8vIElmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgcm9sZSwgYnV0IGl0IGhhcyBBUklBIGF0
dHJpYnV0ZXMsIG9yIGFjY2VwdHMgdGFiIGZvY3VzLCBhY2Nlc3NpYmlsaXR5IHNob3VsZCBmYWxs
YmFjayB0byBleHBvc2luZyBpdCBhcyBhIGdyb3VwLgotICAgIGlmIChzdXBwb3J0c0FSSUFBdHRy
aWJ1dGVzKCkgfHwgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlSb2xlOjpHcm91cDsKLSAgICBpZiAoUmVmUHRyIGVsZW1lbnQgPSBkeW5hbWljRG93
bmNhc3Q8RWxlbWVudD4oKm5vZGUpOyBlbGVtZW50ICYmIGVsZW1lbnQtPmlzRm9jdXNhYmxlKCkp
CisgICAgaWYgKHN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSB8fCBjYW5TZXRGb2N1c0F0dHJpYnV0
ZSgpIHx8IGVsZW1lbnQtPmlzRm9jdXNhYmxlKCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5Um9sZTo6R3JvdXA7CiAKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd247
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470324</attachid>
            <date>2024-03-12 10:47:57 -0700</date>
            <delta_ts>2024-03-12 14:56:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270854-20240312134526.patch</filename>
            <type>text/plain</type>
            <size>12111</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSAzYjFhNDJhOTQ5OWE3MGNjZjEwNmE0YmViNDMwOTVkNDZkY2E1NTMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDEyIE1hciAyMDI0IDA4OjAyOjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6CiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGVG
cm9tTm9kZSBtYWtlcyBtYW55CiB1bm5lY2Vzc2FyeSBkeW5hbWljRG93bmNhc3RzLiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwODU0CiA8cmRhcjovL3Byb2JsZW0v
MTI0NDU1NTU5PgoKUmV2aWV3ZWQgYnkgVHlsZXIgV2lsY29jay4KClRoaXMgaXMgYSBob3QgbWV0
aG9kIGluIElUTSB0aGF0IGNhbGxzIG1hbnkgdGltZXMgTm9kZTo6aGFzVGFnTmFtZShjb25zdCBI
VE1MUXVhbGlmaWVkTmFtZSYpLCB3aGljaCBpbiB0dXJuIGR5bmFtaWNEb3duY2FzdHMgdGhlIE5v
ZGUgdG8gYW4gSFRNTEVsZW1lbnQuIFRoaXMgcGF0Y2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGR5
bmFtaWNEb3duY2FzdHMgc2lnbmlmaWNhbnRseSBieSBkb3duY2FzdGluZyB0byBhbiBIVE1MRWxl
bWVudCB1cGZyb250IGFuZCBjYWxsaW5nIEhUTUxFbGVtZW50OjpoYXNUYWdOYW1lIGRpcmVjdGx5
IGluc3RlYWQuIEluIGEgcnVuIG9mIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHksIHRoZSBudW1i
ZXIgb2YgZG93bmNhc3RzIGRyb3BzIGJ5IDE5NzgyNDggb3IgMTMlIG9mIHRoZSBvcmlnaW5hbCBu
dW1iZXIuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFj
Y2Vzc2liaWxpdHlSb2xlRnJvbU5vZGUgY29uc3QpOgotLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCB8IDEyNSArKysrKysrKysrLS0tLS0tLS0KIDEgZmls
ZSBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
Y3BwCmluZGV4IDg3ZTA1ZWJiMTQzNS4uZGE4YjJiZjYxZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApA
QCAtMzE1LDI1ICszMTUsMzIgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlRnJvbU5vZGUoVHIKICAgICBpZiAoIW5v
ZGUpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bjsKIAotICAgIGlm
IChSZWZQdHIgZWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7IGVsZW1l
bnQgJiYgZWxlbWVudC0+aXNMaW5rKCkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9s
ZTo6V2ViQ29yZUxpbms7CiAgICAgaWYgKG5vZGUtPmlzVGV4dE5vZGUoKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0OwotICAgIGlmIChSZWZQdHIgc2VsZWN0
RWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MU2VsZWN0RWxlbWVudD4oKm5vZGUpKQorCisg
ICAgUmVmUHRyIGVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpub2RlKTsK
KyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5r
bm93bjsKKworICAgIGlmIChlbGVtZW50LT5pc0xpbmsoKSkKKyAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlSb2xlOjpXZWJDb3JlTGluazsKKyAgICBpZiAoUmVmUHRyIHNlbGVjdEVsZW1lbnQg
PSBkeW5hbWljRG93bmNhc3Q8SFRNTFNlbGVjdEVsZW1lbnQ+KCplbGVtZW50KSkKICAgICAgICAg
cmV0dXJuIHNlbGVjdEVsZW1lbnQtPm11bHRpcGxlKCkgPyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlz
dEJveCA6IEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjsKLSAgICBpZiAoUmVmUHRyIGlt
Z0VsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTEltYWdlRWxlbWVudD4oKm5vZGUpOyBpbWdF
bGVtZW50ICYmIGltZ0VsZW1lbnQtPmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
dXNlbWFwQXR0cikpCisgICAgaWYgKFJlZlB0ciBpbWdFbGVtZW50ID0gZHluYW1pY0Rvd25jYXN0
PEhUTUxJbWFnZUVsZW1lbnQ+KCplbGVtZW50KTsgaW1nRWxlbWVudCAmJiBpbWdFbGVtZW50LT5o
YXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHVzZW1hcEF0dHIpKQogICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlTWFwOwotICAgIGlmIChub2RlLT5oYXNUYWdO
YW1lKGxpVGFnKSkKKworICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGxpVGFnKSkKICAgICAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbTsKLSAgICBpZiAobm9kZS0+aGFz
VGFnTmFtZShidXR0b25UYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGJ1dHRvblRh
ZykpCiAgICAgICAgIHJldHVybiBidXR0b25Sb2xlVHlwZSgpOwotICAgIGlmIChub2RlLT5oYXNU
YWdOYW1lKGxlZ2VuZFRhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUobGVnZW5kVGFn
KSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpMZWdlbmQ7Ci0gICAgaWYgKG5v
ZGUtPmhhc1RhZ05hbWUoY2FudmFzVGFnKSkKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShj
YW52YXNUYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkNhbnZhczsKLSAg
ICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Um9sZTo6QnV0dG9uOwotICAgIGlmIChSZWZQdHIgaW5wdXQgPSBkeW5hbWljRG93bmNhc3Q8SFRN
TElucHV0RWxlbWVudD4oKm5vZGUpKSB7CisKKyAgICBpZiAoUmVmUHRyIGlucHV0ID0gZHluYW1p
Y0Rvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAgICBpZiAoaW5w
dXQtPmlzRmlsZVVwbG9hZCgpKQorICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xl
OjpCdXR0b247CiAgICAgICAgIGlmIChpbnB1dC0+aXNTd2l0Y2goKSkKICAgICAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6U3dpdGNoOwogICAgICAgICBpZiAoaW5wdXQtPmlzQ2hl
Y2tib3goKSkKQEAgLTM2NCw0OCArMzcxLDU5IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZUZyb21Ob2RlKFRyCiAg
ICAgaWYgKGhlYWRpbmdMZXZlbCgpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6
OkhlYWRpbmc7CiAKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShjb2RlVGFnKSkKKyAgICBpZiAo
ZWxlbWVudC0+aGFzVGFnTmFtZShjb2RlVGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlSb2xlOjpDb2RlOwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGRlbFRhZykpCisgICAgaWYg
KGVsZW1lbnQtPmhhc1RhZ05hbWUoZGVsVGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlSb2xlOjpEZWxldGlvbjsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShpbnNUYWcpKQorICAg
IGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGluc1RhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5Um9sZTo6SW5zZXJ0aW9uOwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHN1YlRhZykp
CisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoc3ViVGFnKSkKICAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQ7Ci0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc3Vw
VGFnKSkKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShzdXBUYWcpKQogICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlN1cGVyc2NyaXB0OwotICAgIGlmIChpc1N0eWxlRm9ybWF0
R3JvdXAoKSkKKworICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGtiZFRhZykKKyAgICAgICAg
fHwgZWxlbWVudC0+aGFzVGFnTmFtZShwcmVUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1Rh
Z05hbWUoc2FtcFRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZSh2YXJUYWcpCisg
ICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoY2l0ZVRhZykpCiAgICAgICAgIHJldHVybiB0
cmVhdFN0eWxlRm9ybWF0R3JvdXBBc0lubGluZSA9PSBUcmVhdFN0eWxlRm9ybWF0R3JvdXBBc0lu
bGluZTo6WWVzID8gQWNjZXNzaWJpbGl0eVJvbGU6OklubGluZSA6IEFjY2Vzc2liaWxpdHlSb2xl
OjpUZXh0R3JvdXA7CiAKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShkZFRhZykpCisgICAgaWYg
KGVsZW1lbnQtPmhhc1RhZ05hbWUoZGRUYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbDsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShk
dFRhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoZHRUYWcpKQogICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm07Ci0gICAgaWYgKG5vZGUt
Pmhhc1RhZ05hbWUoZGxUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGRsVGFnKSkK
ICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3Q7Ci0gICAg
aWYgKG5vZGUtPmhhc1RhZ05hbWUobWVudVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShvbFRhZykg
fHwgbm9kZS0+aGFzVGFnTmFtZSh1bFRhZykpCisKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFt
ZShtZW51VGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKG9sVGFnKQorICAgICAg
ICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKHVsVGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlSb2xlOjpMaXN0OwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGZpZWxkc2V0VGFnKSkK
KworICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGZpZWxkc2V0VGFnKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkdyb3VwOwotICAgIGlmIChub2RlLT5o
YXNUYWdOYW1lKGZpZ3VyZVRhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoZmlndXJl
VGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpGaWd1cmU7Ci0gICAgaWYg
KG5vZGUtPmhhc1RhZ05hbWUocFRhZykpCisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUocFRh
ZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6UGFyYWdyYXBoOwotICAgIGlm
IChpczxIVE1MTGFiZWxFbGVtZW50Pihub2RlLmdldCgpKSkKKworICAgIGlmIChpczxIVE1MTGFi
ZWxFbGVtZW50PigqZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGFiZWw7Ci0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoZGZuVGFnKSkKKyAgICBpZiAoZWxlbWVu
dC0+aGFzVGFnTmFtZShkZm5UYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6
OkRlZmluaXRpb247Ci0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoZGl2VGFnKSAmJiAhaXNOb25O
YXRpdmVUZXh0Q29udHJvbCgpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGRpdlRhZykg
JiYgIWlzTm9uTmF0aXZlVGV4dENvbnRyb2woKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlSb2xlOjpHZW5lcmljOwotICAgIGlmIChpczxIVE1MRm9ybUVsZW1lbnQ+KG5vZGUuZ2V0KCkp
KQorICAgIGlmIChpczxIVE1MRm9ybUVsZW1lbnQ+KCplbGVtZW50KSkKICAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlSb2xlOjpGb3JtOwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGFydGlj
bGVUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGFydGljbGVUYWcpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50QXJ0aWNsZTsKLSAgICBpZiAobm9k
ZS0+aGFzVGFnTmFtZShtYWluVGFnKSkKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShtYWlu
VGFnKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya01haW47Ci0g
ICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUobmF2VGFnKSkKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFn
TmFtZShuYXZUYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJr
TmF2aWdhdGlvbjsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShhc2lkZVRhZykpIHsKKworICAg
IGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGFzaWRlVGFnKSkgewogICAgICAgICBpZiAoYXJpYVJv
bGVBdHRyaWJ1dGUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50YXJ5
KQogICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbXBsZW1l
bnRhcnk7CiAgICAgICAgIC8vIFRoZSBhc2lkZSBlbGVtZW50IHNob3VsZCBub3QgYXNzdW1lIHRo
ZSBjb21wbGVtZW50YXJ5IHJvbGUgd2hlbiBuZXN0ZWQKQEAgLTQxOSwyOSArNDM3LDI4IEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZUZyb21Ob2RlKFRyCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlSb2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk7CiAgICAgfQotICAgIGlmIChub2RlLT5o
YXNUYWdOYW1lKHNlYXJjaFRhZykpCisKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShzZWFy
Y2hUYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNo
OwogCiAgICAgLy8gVGhlIGRlZmF1bHQgcm9sZSBhdHRyaWJ1dGUgdmFsdWUgZm9yIHRoZSBzZWN0
aW9uIGVsZW1lbnQsIHJlZ2lvbiwgYmVjYW1lIGEgbGFuZG1hcmsgaW4gQVJJQSAxLjEuCiAgICAg
Ly8gVGhlIEhUTUwgQUFNIHNwZWMgc2F5cyBpdCBpcyAic3Ryb25nbHkgcmVjb21tZW5kZWQiIHRo
YXQgQVRzIG9ubHkgY29udmV5IGFuZCBwcm92aWRlIG5hdmlnYXRpb24KICAgICAvLyBmb3Igc2Vj
dGlvbiBlbGVtZW50cyB3aGljaCBoYXZlIG5hbWVzLgotICAgIGlmIChub2RlLT5oYXNUYWdOYW1l
KHNlY3Rpb25UYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKHNlY3Rpb25UYWcpKQog
ICAgICAgICByZXR1cm4gaGFzQXR0cmlidXRlKGFyaWFfbGFiZWxBdHRyKSB8fCBoYXNBdHRyaWJ1
dGUoYXJpYV9sYWJlbGxlZGJ5QXR0cikgPyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdp
b24gOiBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwOwotICAgIGlmIChub2RlLT5oYXNUYWdO
YW1lKGFkZHJlc3NUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGFkZHJlc3NUYWcp
KQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA7Ci0g
ICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoYmxvY2txdW90ZVRhZykpCisgICAgaWYgKGVsZW1lbnQt
Pmhhc1RhZ05hbWUoYmxvY2txdW90ZVRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Um9sZTo6QmxvY2txdW90ZTsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKGZpZ2NhcHRpb25UYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNU
YWdOYW1lKGNhcHRpb25UYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoZmlnY2FwdGlvblRhZykp
CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FwdGlvbjsKLSAgICBpZiAobm9k
ZS0+aGFzVGFnTmFtZShkaWFsb2dUYWcpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGRp
YWxvZ1RhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25E
aWFsb2c7Ci0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUobWFya1RhZykgfHwgZXF1YWxMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UoZ2V0QXR0cmlidXRlKHJvbGVBdHRyKSwgIm1hcmsiX3MpKQorICAg
IGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG1hcmtUYWcpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKGdldEF0dHJpYnV0ZShyb2xlQXR0ciksICJtYXJrIl9zKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpNYXJrOwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHBy
ZVRhZykpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6UHJlOwotICAgIGlmIChp
czxIVE1MRGV0YWlsc0VsZW1lbnQ+KG5vZGUuZ2V0KCkpKQorICAgIGlmIChpczxIVE1MRGV0YWls
c0VsZW1lbnQ+KCplbGVtZW50KSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpE
ZXRhaWxzOwotICAgIGlmIChhdXRvKiBzdW1tYXJ5RWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxI
VE1MU3VtbWFyeUVsZW1lbnQ+KG5vZGUuZ2V0KCkpOyBzdW1tYXJ5RWxlbWVudCAmJiBzdW1tYXJ5
RWxlbWVudC0+aXNBY3RpdmVTdW1tYXJ5KCkpCisgICAgaWYgKFJlZlB0ciBzdW1tYXJ5RWxlbWVu
dCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MU3VtbWFyeUVsZW1lbnQ+KCplbGVtZW50KTsgc3VtbWFy
eUVsZW1lbnQgJiYgc3VtbWFyeUVsZW1lbnQtPmlzQWN0aXZlU3VtbWFyeSgpKQogICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnk7CiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTQ1MSwyOCArNDY4LDI4IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZUZyb21Ob2RlKFRyCiAKICAgICAvLyBo
dHRwOi8vcmF3Z2l0LmNvbS93M2MvYXJpYS9tYXN0ZXIvaHRtbC1hYW0vaHRtbC1hYW0uaHRtbAog
ICAgIC8vIE91dHB1dCBlbGVtZW50cyBzaG91bGQgYmUgbWFwcGVkIHRvIHN0YXR1cyByb2xlLgot
ICAgIGlmIChpc091dHB1dCgpKQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG91dHB1dFRh
ZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM7
CiAKICNpZiBFTkFCTEUoVklERU8pCi0gICAgaWYgKGlzPEhUTUxWaWRlb0VsZW1lbnQ+KG5vZGUu
Z2V0KCkpKQorICAgIGlmIChpczxIVE1MVmlkZW9FbGVtZW50PigqZWxlbWVudCkpCiAgICAgICAg
IHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW87Ci0gICAgaWYgKGlzPEhUTUxBdWRpb0Vs
ZW1lbnQ+KG5vZGUuZ2V0KCkpKQorICAgIGlmIChpczxIVE1MQXVkaW9FbGVtZW50PigqZWxlbWVu
dCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW87CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKG1vZGVs
VGFnKSkKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShtb2RlbFRhZykpCiAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6TW9kZWw7CiAjZW5kaWYKIAogICAgIC8vIFRoZSBIVE1M
IGVsZW1lbnQgc2hvdWxkIG5vdCBiZSBleHBvc2VkIGFzIGFuIGVsZW1lbnQuIFRoYXQncyB3aGF0
IHRoZSBSZW5kZXJWaWV3IGVsZW1lbnQgZG9lcy4KLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSho
dG1sVGFnKSkKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShodG1sVGFnKSkKICAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpJZ25vcmVkOwogCiAgICAgLy8gVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGJhbm5lci9jb250ZW50SW5mbyBwZXIgcGFnZS4gSWYgaGVhZGVyL2Zvb3Rl
ciBhcmUgYmVpbmcgdXNlZCB3aXRoaW4gYW4gYXJ0aWNsZSBvciBzZWN0aW9uIHRoZW4gaXQgc2hv
dWxkIG5vdCBiZSBleHBvc2VkIGFzIHdob2xlIHBhZ2UncyBiYW5uZXIvY29udGVudEluZm8uCiAg
ICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2h0bWwtYWFtLyNlbC1oZWFkZXIKLSAgICBpZiAo
bm9kZS0+aGFzVGFnTmFtZShoZWFkZXJUYWcpKSB7CisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05h
bWUoaGVhZGVyVGFnKSkgewogICAgICAgICBpZiAoIWlzRGVzY2VuZGFudE9mRWxlbWVudFR5cGUo
eyBhcnRpY2xlVGFnLCBhc2lkZVRhZywgbWFpblRhZywgbmF2VGFnLCBzZWN0aW9uVGFnIH0pKQog
ICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjsKICAg
ICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpHZW5lcmljOwpAQCAtNDgxLDIxICs0OTgs
MTkgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWlu
ZUFjY2Vzc2liaWxpdHlSb2xlRnJvbU5vZGUoVHIKICAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9i
LzE5MDEzOCBGb290ZXJzIHNob3VsZCBiZWNvbWUgY29udGVudEluZm8ncyBpZiBzY29wZWQgdG8g
Ym9keSAoYW5kIGNvbnNlcXVlbnRseSBiZWNvbWUgYSBsYW5kbWFyaykuCiAgICAgLy8gSXQgc2hv
dWxkIHJlbWFpbiBhIGZvb3RlciBpZiBzY29wZWQgdG8gbWFpbiwgc2VjdGlvbmluZyBlbGVtZW50
cyAoYXJ0aWNsZSwgYXNpZGUsIG5hdiwgc2VjdGlvbikgb3Igcm9vdCBzZWN0aW9uaW5nIGVsZW1l
bnQgKGJsb2NrcXVvdGUsIGRldGFpbHMsIGRpYWxvZywgZmllbGRzZXQsIGZpZ3VyZSwgdGQpLgog
ICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9odG1sLWFhbS8jZWwtZm9vdGVyCi0gICAgaWYg
KG5vZGUtPmhhc1RhZ05hbWUoZm9vdGVyVGFnKSkgeworICAgIGlmIChlbGVtZW50LT5oYXNUYWdO
YW1lKGZvb3RlclRhZykpIHsKICAgICAgICAgaWYgKCFpc0Rlc2NlbmRhbnRPZkVsZW1lbnRUeXBl
KHsgYXJ0aWNsZVRhZywgYXNpZGVUYWcsIG5hdlRhZywgc2VjdGlvblRhZywgbWFpblRhZywgYmxv
Y2txdW90ZVRhZywgZGV0YWlsc1RhZywgZGlhbG9nVGFnLCBmaWVsZHNldFRhZywgZmlndXJlVGFn
LCB0ZFRhZyB9KSkKICAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1h
cmtDb250ZW50SW5mbzsKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXI7
CiAgICAgfQogCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodGltZVRhZykpCisgICAgaWYgKGVs
ZW1lbnQtPmhhc1RhZ05hbWUodGltZVRhZykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGltZTsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShoclRhZykpCisgICAgaWYgKGVs
ZW1lbnQtPmhhc1RhZ05hbWUoaHJUYWcpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJv
bGU6Okhvcml6b250YWxSdWxlOwogCiAgICAgLy8gSWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2
ZSByb2xlLCBidXQgaXQgaGFzIEFSSUEgYXR0cmlidXRlcywgb3IgYWNjZXB0cyB0YWIgZm9jdXMs
IGFjY2Vzc2liaWxpdHkgc2hvdWxkIGZhbGxiYWNrIHRvIGV4cG9zaW5nIGl0IGFzIGEgZ3JvdXAu
Ci0gICAgaWYgKHN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSB8fCBjYW5TZXRGb2N1c0F0dHJpYnV0
ZSgpKQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwOwotICAgIGlmIChS
ZWZQdHIgZWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7IGVsZW1lbnQg
JiYgZWxlbWVudC0+aXNGb2N1c2FibGUoKSkKKyAgICBpZiAoc3VwcG9ydHNBUklBQXR0cmlidXRl
cygpIHx8IGNhblNldEZvY3VzQXR0cmlidXRlKCkgfHwgZWxlbWVudC0+aXNGb2N1c2FibGUoKSkK
ICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpHcm91cDsKIAogICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>