<?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>238792</bug_id>
          
          <creation_ts>2022-04-04 23:12:21 -0700</creation_ts>
          <short_desc>Remove RenderButton in favor of shadow DOM content</short_desc>
          <delta_ts>2022-05-23 05:10:33 -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>Forms</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          
          <blocked>62096</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Nguyen (:ntim)">ntim</reporter>
          <assigned_to name="Tim Nguyen (:ntim)">ntim</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1858254</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-04-04 23:12:21 -0700</bug_when>
    <thetext>Code: &lt;input type=button value=&quot;1&amp;#10;2&quot;&gt;

Testcase URL: data:text/html,%3Cinput type%3Dbutton value%3D&quot;1%26%2310%3B2&quot;%3E

Should appear the same as: &lt;button&gt;1&lt;br&gt;2&lt;/button&gt;

Tested by html/rendering/widgets/button-layout/inline-level.html WPT

WebKit only shows the first line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858317</commentid>
    <comment_count>1</comment_count>
      <attachid>456685</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-04-05 03:16:08 -0700</bug_when>
    <thetext>Created attachment 456685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858374</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-04-05 07:38:08 -0700</bug_when>
    <thetext>I morphed this issue, the original issue will be addressed by bug 238803.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860573</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-11 23:13:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/91609649&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456685</attachid>
            <date>2022-04-05 03:16:08 -0700</date>
            <delta_ts>2022-04-05 04:52:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238792-20220405121607.patch</filename>
            <type>text/plain</type>
            <size>44472</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRkNGVmZWE5MzY3NjVj
ZDNhZjM2MTk0MmQ0OTg1Zjg1NTJlNjE0NC4uMzdmOTI1OTUyZjA3YzliNWMyMTk2YzQ2ZTgzYWJi
MTdkNWI5MDg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIyLTA0LTA1ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFJlbmRlckJ1dHRvbiBp
biBmYXZvciBvZiBzaGFkb3cgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAqIGh0bWwvQmFzZUJ1dHRv
bklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQnV0dG9uSW5wdXRUeXBlOjpj
cmVhdGVJbnB1dFJlbmRlcmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VCdXR0b25J
bnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVl
KToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9TdWJtaXRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RleHRCdXR0b25JbnB1dFR5cGUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRCdXR0b25JbnB1dFR5cGU6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRCdXR0b25JbnB1dFR5cGU6OmF0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QnV0dG9uSW5wdXRUeXBlOjp1cGRh
dGVJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogaHRtbC9UZXh0QnV0dG9uSW5wdXRUeXBlLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEJ1dHRvbklucHV0VHlwZTo6VGV4dEJ1dHRvbklucHV0VHlw
ZSk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91
dDo6dXBkYXRlTGF5b3V0Qm94RGltZW5zaW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRGaXJzdExldHRlckJsb2NrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpnZXRGaXJzdExldHRlcik6CisgICAgICAgIChX
ZWJDb3JlOjppc1JlbmRlckJsb2NrRmxvd09yUmVuZGVyQnV0dG9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQnV0dG9uLmg6IFJlbW92ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjpwYWludE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1Byb2dyZXNzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZW5kZXJCdXR0b24gY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YXV0b0FwcGVhcmFuY2VGb3JFbGVtZW50IGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6YWRqdXN0Um91bmRCb3JkZXJSYWRpdXMpOgorICAgICAgICAqIHJlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUcmVlQnVpbGRlcjo6YXR0YWNoSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVHJlZUJ1aWxkZXI6OmRldGFjaCk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1
aWxkZXI6OkJsb2NrOjpyZW1vdmVMZWZ0b3ZlckFub255bW91c0Jsb2NrKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzdXBwb3J0c0ZpcnN0TGV0dGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGb3JtQ29udHJvbHMuY3BwOgorICAgICAgICAqIHJl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUcmVlVXBkYXRlcjo6dGV4dFJlbmRlcmVySXNOZWVkZWQpOgorCiAyMDIyLTA0LTA0
ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtX
UEVdIFVzZSBVbml4RmlsZURlc2NyaXB0b3IgaW4gRE1BQnVmT2JqZWN0LCBETUFCdWZSZWxlYXNl
RmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAxY2IzN2ZhMDRiZjJlNTBlOWJkZGM4Zjg4OTMwZjZlM2Qw
NDM0NTM4Li43YjY0Y2E5ZmY5YzQ1MjUyYTRmY2NjMDIzM2M4NTZhYTA1YTMyZDU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTMzNyw2ICsxMzM3LDcgQEAgaHRtbC9TdGVwUmFuZ2UuY3BwCiBodG1sL1N1
Ym1pdEV2ZW50LmNwcAogaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCiBodG1sL1RlbGVwaG9uZUlu
cHV0VHlwZS5jcHAKK2h0bWwvVGV4dEJ1dHRvbklucHV0VHlwZS5jcHAKIGh0bWwvVGV4dERvY3Vt
ZW50LmNwcAogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCiBodG1sL1RleHRJbnB1dFR5cGUu
Y3BwCkBAIC0yMzM0LDcgKzIzMzUsNiBAQCByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAogcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKIHJlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKLXJlbmRlcmluZy9SZW5kZXJCdXR0b24uY3Bw
CiByZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwCiByZW5kZXJpbmcvUmVuZGVyQ291bnRl
ci5jcHAKIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCBhNmQzMTAyYzg4MmE2MDk4ZjQ3OTJiN2JjZDA2YmEyNmQ0Mjg3ZDhh
Li5iYTNiYWUzOWEwMGUwYTlhYjUxMzM0NWFlYTVjY2QzYWIwNGMxNjFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKQEAgLTc5LDcgKzc5LDYgQEAKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgog
I2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCi0jaW5jbHVk
ZSAiUmVuZGVyQnV0dG9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIK
ICNpbmNsdWRlICJSZW5kZXJIVE1MQ2FudmFzLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwCmluZGV4IDg4MjEw
YzMzOWY1NTU5NmQ2MTIxZjUwNjUyODUwZDQ2MDBkYzE4MzEuLmZlZmI2MzY1ZjZiZmEwNTg5OTUx
YTVmZTVmZDRiYWE1NDhjY2M4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUJ1dHRvbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9u
SW5wdXRUeXBlLmNwcApAQCAtMzQsNyArMzQsNiBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIlJlbmRlckJ1dHRvbi5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUxLDEyICs1MCw2IEBAIGJvb2wgQmFzZUJ1
dHRvbklucHV0VHlwZTo6YXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEmKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEJhc2VCdXR0b25JbnB1
dFR5cGU6OmNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSkKLXsKLSAgICBB
U1NFUlQoZWxlbWVudCgpKTsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQnV0dG9u
PigqZWxlbWVudCgpLCBXVEZNb3ZlKHN0eWxlKSk7Ci19Ci0KIGJvb2wgQmFzZUJ1dHRvbklucHV0
VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKQogewogICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggNGY4
ZThhMWFlM2YzZjQ2MTg2OWY2NmMxZTZmMmI3YTliMWMzNjkyNS4uMmY3MGQ3Zjg2M2QyOTc1YmZh
MDlhYjYxZjY2YTM1ZGIxZmI5Yjg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQnV0dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9u
SW5wdXRUeXBlLmgKQEAgLTM4LDEzICszOCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBCYXNlQnV0dG9uSW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRU
eXBlIHsKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBCYXNlQnV0dG9uSW5wdXRUeXBlKFR5cGUg
dHlwZSwgSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZSh0eXBlLCBlbGVtZW50KSB7IH0KKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0VmFsdWVTZWxl
Y3Rpb24pIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkU2F2ZUFuZFJlc3Rv
cmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBhcHBlbmRGb3Jt
RGF0YShET01Gb3JtRGF0YSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIG92ZXJyaWRlOwogICAg
IGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBvdmVycmlkZTsKLSAgICB2
b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Is
IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24pIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggYzU1
NTEwNjIxYTY3NTI2YWFhN2NiZmFhN2NkZjFiN2FiZjBlODM3Yi4uZGJhMTlmOTgwMWY2ODcyOGJj
MTIyYjIxZmZlMGE4MTQ3ZTc1MjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
dXR0b25JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlw
ZS5oCkBAIC0xLDQgKzEsNSBAQAogLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMwLDE0ICszMSwxNSBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkJhc2VCdXR0b25JbnB1dFR5cGUuaCIKKyNp
bmNsdWRlICJUZXh0QnV0dG9uSW5wdXRUeXBlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgQnV0dG9uSW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUg
eworY2xhc3MgQnV0dG9uSW5wdXRUeXBlIGZpbmFsIDogcHVibGljIFRleHRCdXR0b25JbnB1dFR5
cGUgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBp
c0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1l
bnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShUeXBlOjpCdXR0b24sIGVsZW1lbnQpIHsgfQorICAg
IGV4cGxpY2l0IEJ1dHRvbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQorICAg
ICAgICA6IFRleHRCdXR0b25JbnB1dFR5cGUoVHlwZTo6QnV0dG9uLCBlbGVtZW50KSB7IH0KIAog
cHJpdmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5kZXgg
YzhjYmQxODUwZjFhYzI4ZDFiMzVhYmIxNTM4MmIwMDc1Y2UxNmE0OC4uODJkNmY4ODZmNzFiYTFk
OGUyNzVlNGU3NzQwYzJkMDM2ZjY2NWNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0
dG9uRWxlbWVudC5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyQnV0dG9uLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CkBAIC02NSwxNSArNjQsNiBAQCB2b2lkIEhUTUxCdXR0b25FbGVtZW50OjpzZXRU
eXBlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUpCiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbih0eXBlQXR0ciwgdHlwZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBIVE1MQnV0dG9uRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYg
c3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgcG9zaXRpb24pCi17Ci0gICAgLy8gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcmVuZGVyaW5nLmh0bWwjYnV0dG9u
LWxheW91dAotICAgIERpc3BsYXlUeXBlIGRpc3BsYXkgPSBzdHlsZS5kaXNwbGF5KCk7Ci0gICAg
aWYgKGRpc3BsYXkgPT0gRGlzcGxheVR5cGU6OklubGluZUdyaWQgfHwgZGlzcGxheSA9PSBEaXNw
bGF5VHlwZTo6R3JpZCB8fCBkaXNwbGF5ID09IERpc3BsYXlUeXBlOjpJbmxpbmVGbGV4IHx8IGRp
c3BsYXkgPT0gRGlzcGxheVR5cGU6OkZsZXgpCi0gICAgICAgIHJldHVybiBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGTW92ZShzdHlsZSksIHBvc2l0aW9u
KTsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQnV0dG9uPigqdGhpcywgV1RGTW92
ZShzdHlsZSkpOwotfQotCiBpbnQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRUYWJJbmRleCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmgKaW5kZXggZGQzMzA2ZGIxMzY2N2NiMDQ5Mzc1MTU3ZDI4NTRjN2M0Nzg4YWE4Yy4uNjEx
OWNlZjg1NDdlY2JkNGE4ZDBmNzJkM2Q1NDFjYWE2ZTNmZDkyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaApAQCAtMjcsOCArMjcsNiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFJlbmRlckJ1dHRvbjsKLQogY2xhc3MgSFRNTEJ1dHRvbkVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChIVE1MQnV0dG9uRWxlbWVudCk7CiBwdWJsaWM6CkBAIC00MCw4ICszOCw2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5h
bDsKIAotICAgIFJlbmRlckJ1dHRvbiogcmVuZGVyZXIoKSBjb25zdDsKLQogICAgIGJvb2wgaXNF
eHBsaWNpdGx5U2V0U3VibWl0QnV0dG9uKCkgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC01MSw4ICs0
Nyw2IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBmaW5hbDsKIAotICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmlu
YWw7Ci0KICAgICBpbnQgZGVmYXVsdFRhYkluZGV4KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDk2MTUzNDEx
YzcwM2IzNGFiM2Q4MmM1YWEyNjU0OThiMWNhMzBhZTIuLjJkNjg0NGE3ZTkzYTEyYzFiZjExMTVk
OTZlZTBmOTlkOTFiMjllOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
CkBAIC0yMTcsNCArMjE3LDggQEAgU3RyaW5nIEltYWdlSW5wdXRUeXBlOjpyZXN1bHRGb3JEaWFs
b2dTdWJtaXQoKSBjb25zdAogICAgIHJldHVybiBtYWtlU3RyaW5nKG1fY2xpY2tMb2NhdGlvbi54
KCksICcsJywgbV9jbGlja0xvY2F0aW9uLnkoKSk7CiB9CiAKK3ZvaWQgSW1hZ2VJbnB1dFR5cGU6
OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IDMwNzA3MmY4YmE3NzZlOTMzN2U3
YWY0M2NiN2ZmMTk4ZjVlY2FmZmQuLmVlYTUzNGUxN2E4MTJhNWZlOTI3ODI0ZTgwNjk2MTczZTFm
NjA2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTU2LDYgKzU2LDcg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdCBmaW5hbDsKICAgICB1bnNp
Z25lZCB3aWR0aCgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyByZXN1bHRGb3JEaWFsb2dTdWJt
aXQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCkgZmluYWw7
CiAKICAgICBJbnRQb2ludCBtX2NsaWNrTG9jYXRpb247IC8vIFZhbGlkIG9ubHkgZHVyaW5nIEhU
TUxGb3JtRWxlbWVudDo6c3VibWl0SWZQb3NzaWJsZSgpLgogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5oCmluZGV4IGI4ZjY1MzBmYjk0MTAyMzc1ZjljMzExYTBhOGFlNzc0OTVlNzYyN2YuLmRmODNm
ODVjZDRiM2MwYjQxMTQ2MDgwMjAyMmY5YjJjNjFkYzI3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaApAQCAtMTQ1LDEzICsxNDUsMTAgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMg
Y29uc3RleHByIE9wdGlvblNldDxUeXBlPiBub25TaGFkb3dSb290VHlwZXMgPSB7Ci0gICAgICAg
IFR5cGU6OkJ1dHRvbiwKICAgICAgICAgVHlwZTo6Q2hlY2tib3gsCiAgICAgICAgIFR5cGU6Okhp
ZGRlbiwKICAgICAgICAgVHlwZTo6SW1hZ2UsCiAgICAgICAgIFR5cGU6OlJhZGlvLAotICAgICAg
ICBUeXBlOjpSZXNldCwKLSAgICAgICAgVHlwZTo6U3VibWl0LAogICAgIH07CiAKICAgICBzdGF0
aWMgUmVmPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmLCBjb25zdCBBdG9tU3Ry
aW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKaW5kZXggYmE2MzU3NGIwNjQ4
ZWYzNGMxZDcyMzI1ZDlkNmFkNTI3OTkzYTQ4ZC4uZmFiNzBjOWI1NGQ0ODhkMDkyZjIxNDE3ZjM4
N2M1NTJjZWYxYTA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaApAQCAtMSw0
ICsxLDUgQEAKIC8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMCwxNCArMzEsMTUgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJCYXNlQnV0dG9uSW5wdXRUeXBlLmgiCisjaW5jbHVkZSAiVGV4
dEJ1dHRvbklucHV0VHlwZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlc2V0
SW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgeworY2xhc3MgUmVz
ZXRJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgVGV4dEJ1dHRvbklucHV0VHlwZSB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0
VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBleHBs
aWNpdCBSZXNldElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0
b25JbnB1dFR5cGUoVHlwZTo6UmVzZXQsIGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFJlc2V0
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCisgICAgICAgIDogVGV4dEJ1dHRv
bklucHV0VHlwZShUeXBlOjpSZXNldCwgZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6CiAgICAgY29u
c3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaAppbmRleCBlOTc4YTJkYmVjZDg2MTcwZDllMTM3YWMx
NjRlMzM4NGVjY2FjNjc5Li4yNzhjYjFkMWI5NDgxYzhhY2I3Zjg2OGM1NmU4NTNjMGQxZjBiYjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKQEAgLTEsNCArMSw1IEBACiAv
KgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMzAsMTQgKzMxLDE1IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiQmFzZUJ1dHRvbklucHV0VHlwZS5oIgorI2luY2x1ZGUgIlRleHRCdXR0b25JbnB1
dFR5cGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTdWJtaXRJbnB1dFR5cGUg
ZmluYWwgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0VHlwZSB7CitjbGFzcyBTdWJtaXRJbnB1dFR5
cGUgZmluYWwgOiBwdWJsaWMgVGV4dEJ1dHRvbklucHV0VHlwZSB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25z
dCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBTdWJt
aXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQnV0dG9uSW5wdXRU
eXBlKFR5cGU6OlN1Ym1pdCwgZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgU3VibWl0SW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCisgICAgICAgIDogVGV4dEJ1dHRvbklucHV0
VHlwZShUeXBlOjpTdWJtaXQsIGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0
b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0QnV0dG9uSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEJ1dHRvbklucHV0VHlwZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQwMDE1NDJkOWYz
Yjk3YzkxNzBlMWQxN2JmMjU0MGIzOGI4MGRmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEJ1dHRvbklucHV0VHlwZS5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGV4dEJ1dHRvbklucHV0VHlwZS5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOworCit2b2lkIFRleHRCdXR0b25JbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0
IFN0cmluZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9y
IGV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24gc2VsZWN0aW9uKQor
eworICAgIEJhc2VCdXR0b25JbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQs
IGV2ZW50QmVoYXZpb3IsIHNlbGVjdGlvbik7CisgICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsK
K30KKwordm9pZCBUZXh0QnV0dG9uSW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUpCit7CisgICAgaWYgKG5hbWUgPT0gdmFsdWVBdHRyKSB7CisgICAg
ICAgIGlmIChtX2lubmVyVGV4dCAmJiBlbGVtZW50KCkpCisgICAgICAgICAgICB1cGRhdGVJbm5l
clRleHRWYWx1ZSgpOworICAgIH0KKyAgICBJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSk7Cit9CisKK3ZvaWQgVGV4dEJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
Cit7CisgICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKKyAgICBBU1NFUlQoZWxlbWVu
dCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOworICAgIEFTU0VSVCgh
ZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmhhc0NoaWxkTm9kZXMoKSk7CisKKyAgICBBU1NFUlQo
IW1faW5uZXJUZXh0KTsKKworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQoKS0+ZG9j
dW1lbnQoKTsKKyAgICBtX2lubmVyVGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgU3RyaW5n
KCkpOworICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChD
b250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIsICptX2lubmVyVGV4dCk7
CisgICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKK30KKwordm9pZCBUZXh0QnV0dG9uSW5wdXRU
eXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCit7CisgICAgQVNTRVJUKG1faW5uZXJUZXh0ICYm
IGVsZW1lbnQoKSk7CisgICAgaWYgKCFlbGVtZW50KCktPmZvcm1Db250cm9sVmFsdWVNYXRjaGVz
UmVuZGVyZXIoKSkKKyAgICAgICAgbV9pbm5lclRleHQtPnNldFRleHRDb250ZW50KHZpc2libGVW
YWx1ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0QnV0dG9uSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRCdXR0b25JbnB1dFR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzIxNDBjMjQ5NmJiZmIwOTA3ZWEz
ZmIwMDU5MjY3MTFiMzU5MDIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0QnV0dG9uSW5wdXRUeXBlLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQmFzZUJ1dHRvbklucHV0VHlwZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBCYXNlIG9mIGJ1dHRvbiwgZmlsZSwgaW1hZ2UsIHJlc2V0
LCBhbmQgc3VibWl0IHR5cGVzLgorY2xhc3MgVGV4dEJ1dHRvbklucHV0VHlwZSA6IHB1YmxpYyBC
YXNlQnV0dG9uSW5wdXRUeXBlIHsKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBUZXh0QnV0dG9u
SW5wdXRUeXBlKFR5cGUgdHlwZSwgSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKKyAgICAgICAg
OiBCYXNlQnV0dG9uSW5wdXRUeXBlKHR5cGUsIGVsZW1lbnQpIHsgfQorCitwcml2YXRlOgorICAg
IHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBUZXh0Q29udHJv
bFNldFZhbHVlU2VsZWN0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZUlubmVyVGV4dFZh
bHVlKCkgb3ZlcnJpZGU7CisKKyAgICBSZWZQdHI8VGV4dD4gbV9pbm5lclRleHQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmlu
ZGV4IDJhODYwNDlhZDg3ZmViN2MxNjUwZTI1N2RlOWUyMmVkMzcyZTBiODcuLmQ3YmJkMDIxYTIx
ZGJmMjEzMGY2OTQ1ZjFkNmM1NzZkMmU2NDcwNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVM
YXlvdXQuY3BwCkBAIC00Nyw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQXR0YWNobWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgot
I2luY2x1ZGUgIlJlbmRlckJ1dHRvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNoaWxkSXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5k
ZXJJbWFnZS5oIgpAQCAtMjkzLDE0ICsyOTIsMTMgQEAgdm9pZCBMaW5lTGF5b3V0Ojp1cGRhdGVM
YXlvdXRCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlckJveCYgcmVwbGFjZWRPcklubGluZUJsb2MK
ICAgICAgICAgaWYgKGlzPFJlbmRlckxpc3RNYXJrZXI+KHJlcGxhY2VkT3JJbmxpbmVCbG9jaykp
CiAgICAgICAgICAgICByZXR1cm4gIWRvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KHJlcGxhY2Vk
T3JJbmxpbmVCbG9jaykuaXNJbWFnZSgpOwogICAgICAgICBpZiAoaXM8UmVuZGVyUmVwbGFjZWQ+
KHJlcGxhY2VkT3JJbmxpbmVCbG9jaykKLSAgICAgICAgICAgIHx8IGlzPFJlbmRlckxpc3RCb3g+
KHJlcGxhY2VkT3JJbmxpbmVCbG9jaykKLSAgICAgICAgICAgIHx8IGlzPFJlbmRlclNsaWRlcj4o
cmVwbGFjZWRPcklubGluZUJsb2NrKQotICAgICAgICAgICAgfHwgaXM8UmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmU+KHJlcGxhY2VkT3JJbmxpbmVCbG9jaykKLSAgICAgICAgICAgIHx8IGlzPFJl
bmRlclRhYmxlPihyZXBsYWNlZE9ySW5saW5lQmxvY2spCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKICAgICAgICAgICAgIHx8IGlzPFJlbmRlckF0dGFjaG1lbnQ+KHJlcGxhY2VkT3JJ
bmxpbmVCbG9jaykKICNlbmRpZgotICAgICAgICAgICAgfHwgaXM8UmVuZGVyQnV0dG9uPihyZXBs
YWNlZE9ySW5saW5lQmxvY2spKSB7CisgICAgICAgICAgICB8fCBpczxSZW5kZXJMaXN0Qm94Pihy
ZXBsYWNlZE9ySW5saW5lQmxvY2spCisgICAgICAgICAgICB8fCBpczxSZW5kZXJTbGlkZXI+KHJl
cGxhY2VkT3JJbmxpbmVCbG9jaykKKyAgICAgICAgICAgIHx8IGlzPFJlbmRlclRleHRDb250cm9s
TXVsdGlMaW5lPihyZXBsYWNlZE9ySW5saW5lQmxvY2spCisgICAgICAgICAgICB8fCBpczxSZW5k
ZXJUYWJsZT4ocmVwbGFjZWRPcklubGluZUJsb2NrKSkgewogICAgICAgICAgICAgLy8gVGhlc2Ug
YXJlIHNwZWNpYWwgUmVuZGVyQmxvY2sgcmVuZGVyZXJzIHRoYXQgb3ZlcnJpZGUgdGhlIGRlZmF1
bHQgYmFzZWxpbmUgcG9zaXRpb24gYmVoYXZpb3Igb2YgdGhlIGlubGluZSBibG9jayBib3guCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKaW5kZXggN2RjMjZhMDRkNDIwNGViZDg1YjgyNTZmN2EzMDcyNjg1
OTgzYjM5Ni4uMTNiNDdlYjUzZjgzNzFmMjljYmVjMmRhYWI5NWY5ODMwZDNkMmVlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC01MSw3ICs1MSw2IEBACiAj
aW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5j
bHVkZSAiUmVuZGVyQm94RnJhZ21lbnRJbmZvLmgiCi0jaW5jbHVkZSAiUmVuZGVyQnV0dG9uLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckNvbWJp
bmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmgiCkBAIC0y
NTYwLDMwICsyNTU5LDE5IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6
OmlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgbGluCiAgICAgcmV0dXJuIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4oKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzUmVu
ZGVyQmxvY2tGbG93T3JSZW5kZXJCdXR0b24oUmVuZGVyRWxlbWVudCYgcmVuZGVyRWxlbWVudCkK
LXsKLSAgICAvLyBXZSBpbmNsdWRlIGlzUmVuZGVyQnV0dG9uIGluIHRoaXMgY2hlY2sgYmVjYXVz
ZSBidXR0b25zIGFyZSBpbXBsZW1lbnRlZAotICAgIC8vIHVzaW5nIGZsZXggYm94IGJ1dCBzaG91
bGQgc3RpbGwgc3VwcG9ydCBmaXJzdC1saW5lfGZpcnN0LWxldHRlci4KLSAgICAvLyBUaGUgZmxl
eCBib3ggYW5kIHNwZWNzIHJlcXVpcmUgdGhhdCBmbGV4IGJveCBhbmQgZ3JpZCBkbyBub3Qgc3Vw
cG9ydAotICAgIC8vIGZpcnN0LWxpbmV8Zmlyc3QtbGV0dGVyLCB0aG91Z2guCi0gICAgLy8gRklY
TUU6IFJlbW92ZSB3aGVuIGJ1dHRvbnMgYXJlIGltcGxlbWVudGVkIHdpdGggYWxpZ24taXRlbXMg
aW5zdGVhZCBvZgotICAgIC8vIGZsZXggYm94LgotICAgIHJldHVybiByZW5kZXJFbGVtZW50Lmlz
UmVuZGVyQmxvY2tGbG93KCkgfHwgcmVuZGVyRWxlbWVudC5pc1JlbmRlckJ1dHRvbigpOwotfQot
CiBzdGF0aWMgaW5saW5lIFJlbmRlckJsb2NrKiBmaW5kRmlyc3RMZXR0ZXJCbG9jayhSZW5kZXJC
bG9jayogc3RhcnQpCiB7CiAgICAgUmVuZGVyQmxvY2sqIGZpcnN0TGV0dGVyQmxvY2sgPSBzdGFy
dDsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBib29sIGNhbkhhdmVGaXJzdExldHRlclJl
bmRlcmVyID0gZmlyc3RMZXR0ZXJCbG9jay0+c3R5bGUoKS5oYXNQc2V1ZG9TdHlsZShQc2V1ZG9J
ZDo6Rmlyc3RMZXR0ZXIpCiAgICAgICAgICAgICAmJiBmaXJzdExldHRlckJsb2NrLT5jYW5IYXZl
R2VuZXJhdGVkQ2hpbGRyZW4oKQotICAgICAgICAgICAgJiYgaXNSZW5kZXJCbG9ja0Zsb3dPclJl
bmRlckJ1dHRvbigqZmlyc3RMZXR0ZXJCbG9jayk7CisgICAgICAgICAgICAmJiBmaXJzdExldHRl
ckJsb2NrLT5pc1JlbmRlckJsb2NrRmxvdygpOwogICAgICAgICBpZiAoY2FuSGF2ZUZpcnN0TGV0
dGVyUmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4gZmlyc3RMZXR0ZXJCbG9jazsKIAogICAg
ICAgICBSZW5kZXJFbGVtZW50KiBwYXJlbnRCbG9jayA9IGZpcnN0TGV0dGVyQmxvY2stPnBhcmVu
dCgpOwogICAgICAgICBpZiAoZmlyc3RMZXR0ZXJCbG9jay0+aXNSZXBsYWNlZE9ySW5saW5lQmxv
Y2soKSB8fCAhcGFyZW50QmxvY2sgfHwgcGFyZW50QmxvY2stPmZpcnN0Q2hpbGQoKSAhPSBmaXJz
dExldHRlckJsb2NrCi0gICAgICAgICAgICB8fCAhaXNSZW5kZXJCbG9ja0Zsb3dPclJlbmRlckJ1
dHRvbigqcGFyZW50QmxvY2spKQorICAgICAgICAgICAgfHwgIXBhcmVudEJsb2NrLT5pc1JlbmRl
ckJsb2NrRmxvdygpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGZpcnN0
TGV0dGVyQmxvY2sgPSBkb3duY2FzdDxSZW5kZXJCbG9jaz4ocGFyZW50QmxvY2spOwogICAgIH0g
CkBAIC0yNjMwLDcgKzI2MTgsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpnZXRGaXJzdExldHRlcihS
ZW5kZXJPYmplY3QqJiBmaXJzdExldHRlciwgUmVuZGVyRWxlbWVudComIGZpcgogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZmlyc3RMZXR0ZXIgPSBj
dXJyZW50Lm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5pc1JlcGxh
Y2VkT3JJbmxpbmVCbG9jaygpIHx8IGlzPFJlbmRlckJ1dHRvbj4oY3VycmVudCkgfHwgaXM8UmVu
ZGVyTWVudUxpc3Q+KGN1cnJlbnQpKQorICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnQuaXNSZXBs
YWNlZE9ySW5saW5lQmxvY2soKSB8fCBpczxSZW5kZXJNZW51TGlzdD4oY3VycmVudCkpCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgZWxzZSBpZiAoY3VycmVudC5pc0ZsZXhpYmxlQm94SW5j
bHVkaW5nRGVwcmVjYXRlZCgpIHx8IGN1cnJlbnQuaXNSZW5kZXJHcmlkKCkpCiAgICAgICAgICAg
ICBmaXJzdExldHRlciA9IGN1cnJlbnQubmV4dFNpYmxpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3
M2FmNWM4MjQwZDMwYTAzYmE2ZDA0OGYzYzU0MjhmNGNkZTllMjMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJ1dHRvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzIgKzAsMCBAQAotLyoqCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgSW5jLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlJlbmRlckJ1dHRvbi5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCi0jaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCi0jaW5j
bHVkZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgotI2lu
Y2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2luY2x1ZGUgIlJlbmRlclRoZW1l
SU9TLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUmVuZGVyQnV0dG9uKTsK
LQotUmVuZGVyQnV0dG9uOjpSZW5kZXJCdXR0b24oSFRNTEZvcm1Db250cm9sRWxlbWVudCYgZWxl
bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKLSAgICA6IFJlbmRlckZsZXhpYmxlQm94KGVsZW1l
bnQsIFdURk1vdmUoc3R5bGUpKQotewotfQotCi1SZW5kZXJCdXR0b246On5SZW5kZXJCdXR0b24o
KSA9IGRlZmF1bHQ7Ci0KLUhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIFJlbmRlckJ1dHRvbjo6Zm9y
bUNvbnRyb2xFbGVtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZvcm1D
b250cm9sRWxlbWVudD4obm9kZUZvck5vbkFub255bW91cygpKTsKLX0KLQotYm9vbCBSZW5kZXJC
dXR0b246OmNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZvcm1Db250
cm9sRWxlbWVudCgpLmhhc0VkaXRhYmxlU3R5bGUoKTsKLX0KLQotYm9vbCBSZW5kZXJCdXR0b246
Omhhc0xpbmVJZkVtcHR5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXM8SFRNTElucHV0RWxlbWVu
dD4oZm9ybUNvbnRyb2xFbGVtZW50KCkpOwotfQotCi12b2lkIFJlbmRlckJ1dHRvbjo6c2V0SW5u
ZXJSZW5kZXJlcihSZW5kZXJCbG9jayYgaW5uZXJSZW5kZXJlcikKLXsKLSAgICBBU1NFUlQoIW1f
aW5uZXIuZ2V0KCkpOwotICAgIG1faW5uZXIgPSBpbm5lclJlbmRlcmVyOwotICAgIHVwZGF0ZUFu
b255bW91c0NoaWxkU3R5bGUobV9pbm5lci0+bXV0YWJsZVN0eWxlKCkpOwotfQotICAgIAotdm9p
ZCBSZW5kZXJCdXR0b246OnVwZGF0ZUFub255bW91c0NoaWxkU3R5bGUoUmVuZGVyU3R5bGUmIGNo
aWxkU3R5bGUpIGNvbnN0Ci17Ci0gICAgY2hpbGRTdHlsZS5zZXRGbGV4R3JvdygxLjBmKTsKLSAg
ICAvLyBtaW4td2lkdGg6IDA7IGlzIG5lZWRlZCBmb3IgY29ycmVjdCBzaHJpbmtpbmcuCi0gICAg
Y2hpbGRTdHlsZS5zZXRNaW5XaWR0aChMZW5ndGgoMCwgTGVuZ3RoVHlwZTo6Rml4ZWQpKTsKLSAg
ICAvLyBVc2UgbWFyZ2luOmF1dG8gaW5zdGVhZCBvZiBhbGlnbi1pdGVtczpjZW50ZXIgdG8gZ2V0
IHNhZmUgY2VudGVyaW5nLCBpLmUuCi0gICAgLy8gd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3Ms
IHRyZWF0IGl0IHRoZSBzYW1lIGFzIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0LgotICAgIGNoaWxk
U3R5bGUuc2V0TWFyZ2luVG9wKExlbmd0aCgpKTsKLSAgICBjaGlsZFN0eWxlLnNldE1hcmdpbkJv
dHRvbShMZW5ndGgoKSk7Ci0gICAgY2hpbGRTdHlsZS5zZXRGbGV4RGlyZWN0aW9uKHN0eWxlKCku
ZmxleERpcmVjdGlvbigpKTsKLSAgICBjaGlsZFN0eWxlLnNldEp1c3RpZnlDb250ZW50KHN0eWxl
KCkuanVzdGlmeUNvbnRlbnQoKSk7Ci0gICAgY2hpbGRTdHlsZS5zZXRGbGV4V3JhcChzdHlsZSgp
LmZsZXhXcmFwKCkpOwotICAgIGNoaWxkU3R5bGUuc2V0QWxpZ25JdGVtcyhzdHlsZSgpLmFsaWdu
SXRlbXMoKSk7Ci0gICAgY2hpbGRTdHlsZS5zZXRBbGlnbkNvbnRlbnQoc3R5bGUoKS5hbGlnbkNv
bnRlbnQoKSk7Ci19Ci0KLXZvaWQgUmVuZGVyQnV0dG9uOjp1cGRhdGVGcm9tRWxlbWVudCgpCi17
Ci0gICAgLy8gSWYgd2UncmUgYW4gaW5wdXQgZWxlbWVudCwgd2UgbWF5IG5lZWQgdG8gY2hhbmdl
IG91ciBidXR0b24gdGV4dC4KLSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oZm9ybUNvbnRy
b2xFbGVtZW50KCkpKSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0gZG93bmNh
c3Q8SFRNTElucHV0RWxlbWVudD4oZm9ybUNvbnRyb2xFbGVtZW50KCkpOwotICAgICAgICBTdHJp
bmcgdmFsdWUgPSBpbnB1dC52YWx1ZVdpdGhEZWZhdWx0KCk7Ci0gICAgICAgIHNldFRleHQodmFs
dWUpOwotICAgIH0KLX0KLQotdm9pZCBSZW5kZXJCdXR0b246OnNldFRleHQoY29uc3QgU3RyaW5n
JiBzdHIpCi17Ci0gICAgaWYgKCFtX2J1dHRvblRleHQgJiYgc3RyLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKCFtX2J1dHRvblRleHQpIHsKLSAgICAgICAgYXV0byBuZXdC
dXR0b25UZXh0ID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dEZyYWdtZW50Pihkb2N1bWVudCgp
LCBzdHIpOwotICAgICAgICBtX2J1dHRvblRleHQgPSAqbmV3QnV0dG9uVGV4dDsKLSAgICAgICAg
Ly8gRklYTUU6IFRoaXMgbXV0YXRpb24gc2hvdWxkIGdvIHRocm91Z2ggdGhlIG5vcm1hbCBSZW5k
ZXJUcmVlQnVpbGRlciBwYXRoLgotICAgICAgICBpZiAoUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJl
bnQoKSkKLSAgICAgICAgICAgIFJlbmRlclRyZWVCdWlsZGVyOjpjdXJyZW50KCktPmF0dGFjaCgq
dGhpcywgV1RGTW92ZShuZXdCdXR0b25UZXh0KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IFJlbmRlclRyZWVCdWlsZGVyKCpkb2N1bWVudCgpLnJlbmRlclZpZXcoKSkuYXR0YWNoKCp0aGlz
LCBXVEZNb3ZlKG5ld0J1dHRvblRleHQpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmICghc3RyLmlzRW1wdHkoKSkgewotICAgICAgICBtX2J1dHRvblRleHQtPnNldFRleHQoc3Ry
LmltcGwoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKFJlbmRlclRyZWVCdWls
ZGVyOjpjdXJyZW50KCkpCi0gICAgICAgIFJlbmRlclRyZWVCdWlsZGVyOjpjdXJyZW50KCktPmRl
c3Ryb3koKm1fYnV0dG9uVGV4dCk7Ci0gICAgZWxzZQotICAgICAgICBSZW5kZXJUcmVlQnVpbGRl
cigqZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkpLmRlc3Ryb3koKm1fYnV0dG9uVGV4dCk7Ci19Ci0K
LVN0cmluZyBSZW5kZXJCdXR0b246OnRleHQoKSBjb25zdAotewotICAgIGlmIChtX2J1dHRvblRl
eHQpCi0gICAgICAgIHJldHVybiBtX2J1dHRvblRleHQtPnRleHQoKTsKLSAgICByZXR1cm4geyB9
OwotfQotCi1ib29sIFJlbmRlckJ1dHRvbjo6Y2FuSGF2ZUdlbmVyYXRlZENoaWxkcmVuKCkgY29u
c3QKLXsKLSAgICAvLyBJbnB1dCBlbGVtZW50cyBjYW4ndCBoYXZlIGdlbmVyYXRlZCBjaGlsZHJl
biwgYnV0IGJ1dHRvbiBlbGVtZW50cyBjYW4uIFdlJ2xsCi0gICAgLy8gd3JpdGUgdGhlIGNvZGUg
YXNzdW1pbmcgYW55IG90aGVyIGJ1dHRvbiB0eXBlcyB0aGF0IG1pZ2h0IGVtZXJnZSBpbiB0aGUg
ZnV0dXJlCi0gICAgLy8gY2FuIGFsc28gaGF2ZSBjaGlsZHJlbi4KLSAgICByZXR1cm4gIWlzPEhU
TUxJbnB1dEVsZW1lbnQ+KGZvcm1Db250cm9sRWxlbWVudCgpKTsKLX0KLQotTGF5b3V0UmVjdCBS
ZW5kZXJCdXR0b246OmNvbnRyb2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25h
bE9mZnNldCkgY29uc3QKLXsKLSAgICAvLyBDbGlwIHRvIHRoZSBwYWRkaW5nIGJveCB0byBhdCBs
ZWFzdCBnaXZlIGNvbnRlbnQgdGhlIGV4dHJhIHBhZGRpbmcgc3BhY2UuCi0gICAgcmV0dXJuIExh
eW91dFJlY3QoYWRkaXRpb25hbE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCksIGFkZGl0aW9uYWxP
ZmZzZXQueSgpICsgYm9yZGVyVG9wKCksIHdpZHRoKCkgLSBib3JkZXJMZWZ0KCkgLSBib3JkZXJS
aWdodCgpLCBoZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0gYm9yZGVyQm90dG9tKCkpOwotfQotCi1z
dGF0aWMgTGF5b3V0VW5pdCBzeW50aGVzaXplZEJhc2VsaW5lRnJvbUNvbnRlbnRCb3goY29uc3Qg
UmVuZGVyQm94JiBib3gsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikKLXsKLSAgICByZXR1
cm4gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gYm94LmJvcmRlclRvcCgpICsgYm94LnBh
ZGRpbmdUb3AoKSArIGJveC5jb250ZW50SGVpZ2h0KCkgOiBib3guYm9yZGVyUmlnaHQoKSArIGJv
eC5wYWRkaW5nUmlnaHQoKSArIGJveC5jb250ZW50V2lkdGgoKTsKLX0KLQotTGF5b3V0VW5pdCBS
ZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lIGZvbnRCYXNlbGluZSwg
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9u
TW9kZSBtb2RlKSBjb25zdAotewotICAgIGlmIChzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50
KCp0aGlzKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0
aW9uKGZvbnRCYXNlbGluZSwgZmlyc3RMaW5lLCBkaXJlY3Rpb24sIG1vZGUpOwotICAgIC8vIFdl
IGNhbm5vdCByZWx5IG9uIFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgYmVj
YXVzZSBvZiBmbGV4Ym94ZXMgaGF2ZSBzb21lIHNwZWNpYWwgYmVoYXZpb3IKLSAgICAvLyByZWdh
cmRpbmcgYmFzZWxpbmVzIHRoYXQgc2hvdWxkbid0IGFwcGx5IHRvIGJ1dHRvbnMuCi0gICAgTGF5
b3V0VW5pdCBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCkudmFsdWVfb3Ioc3ludGhlc2l6
ZWRCYXNlbGluZUZyb21Db250ZW50Qm94KCp0aGlzLCBkaXJlY3Rpb24pKTsKLSAgICBMYXlvdXRV
bml0IG1hcmdpbkFzY2VudCA9IGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRv
cCgpIDogbWFyZ2luUmlnaHQoKTsKLSAgICByZXR1cm4gYmFzZWxpbmUgKyBtYXJnaW5Bc2NlbnQ7
Ci19Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotdm9pZCBSZW5kZXJCdXR0b246OmxheW91
dCgpCi17Ci0gICAgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dCgpOwotCi0gICAgLy8gRklYTUU6
IFdlIHNob3VsZCBub3QgYmUgYWRqdXN0aW5nIHN0eWxlcyBkdXJpbmcgbGF5b3V0LiBTZWUgPHJk
YXI6Ly9wcm9ibGVtLzc2NzU0OTM+LgotICAgIFJlbmRlclRoZW1lSU9TOjphZGp1c3RSb3VuZEJv
cmRlclJhZGl1cyhtdXRhYmxlU3R5bGUoKSwgKnRoaXMpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCdXR0b24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYyODc0MjVmYWQ4NWYxODg3OTk2ZTVhNmM2NTgz
NzJjNTBlZWFmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIEluYy4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKLSNpbmNsdWRl
IDxtZW1vcnk+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSFRNTEZvcm1Db250cm9s
RWxlbWVudDsKLWNsYXNzIFJlbmRlclRleHRGcmFnbWVudDsKLQotLy8gUmVuZGVyQnV0dG9ucyBh
cmUganVzdCBsaWtlIG5vcm1hbCBmbGV4Ym94ZXMgZXhjZXB0IHRoYXQgdGhleSB3aWxsIGdlbmVy
YXRlIGFuIGFub255bW91cyBibG9jayBjaGlsZC4KLS8vIEZvciBpbnB1dHMsIHRoZXkgd2lsbCBh
bHNvIGdlbmVyYXRlIGFuIGFub255bW91cyBSZW5kZXJUZXh0IGFuZCBrZWVwIGl0cyBzdHlsZSBh
bmQgY29udGVudCB1cAotLy8gdG8gZGF0ZSBhcyB0aGUgYnV0dG9uIGNoYW5nZXMuCi1jbGFzcyBS
ZW5kZXJCdXR0b24gZmluYWwgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3ggewotICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoUmVuZGVyQnV0dG9uKTsKLXB1YmxpYzoKLSAgICBSZW5kZXJCdXR0
b24oSFRNTEZvcm1Db250cm9sRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwotICAgIHZpcnR1YWwg
flJlbmRlckJ1dHRvbigpOwotCi0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgZm9ybUNvbnRy
b2xFbGVtZW50KCkgY29uc3Q7Ci0KLSAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0
IG92ZXJyaWRlOwotCi0gICAgYm9vbCBjcmVhdGVzQW5vbnltb3VzV3JhcHBlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBv
dmVycmlkZTsKLQotICAgIGJvb2wgY2FuSGF2ZUdlbmVyYXRlZENoaWxkcmVuKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBoYXNDb250cm9sQ2xpcCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KLSAgICBMYXlvdXRSZWN0IGNvbnRyb2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2lu
dCYpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgdm9pZCB1cGRhdGVBbm9ueW1vdXNDaGlsZFN0eWxl
KFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHNldFRleHQoY29uc3Qg
U3RyaW5nJik7Ci0gICAgU3RyaW5nIHRleHQoKSBjb25zdDsKLQotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKLSNlbmRpZgotCi0gICAgUmVuZGVy
QmxvY2sqIGlubmVyUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX2lubmVyLmdldCgpOyB9Ci0g
ICAgdm9pZCBzZXRJbm5lclJlbmRlcmVyKFJlbmRlckJsb2NrJik7Ci0KLSAgICBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVj
dGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNv
bnN0IG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVs
ZXRlOwotCi0gICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAiUmVuZGVyQnV0dG9uIl9zOyB9Ci0gICAgYm9vbCBpc1JlbmRlckJ1dHRvbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIGJvb2wgaGFzTGluZUlmRW1wdHkoKSBj
b25zdCBvdmVycmlkZTsKLQotICAgIGJvb2wgaXNGbGV4aWJsZUJveEltcGwoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9Ci0KLSAgICBXZWFrUHRyPFJlbmRlclRleHRGcmFnbWVudD4g
bV9idXR0b25UZXh0OwotICAgIFdlYWtQdHI8UmVuZGVyQmxvY2s+IG1faW5uZXI7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfUkVOREVSX09C
SkVDVChSZW5kZXJCdXR0b24sIGlzUmVuZGVyQnV0dG9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBlZTNiOGJk
Y2MxOTEzNTVhNTJlMjlhOTI4MzY1YTY0ODE0YTA2Njc2Li5hYjE3OWI4ZjA2MTFlODNiOTM3NGVh
M2IxNmE4MDhkZGIxNzI3Mjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRl
ICJJY29uLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIlBhaW50
SW5mby5oIgotI2luY2x1ZGUgIlJlbmRlckJ1dHRvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQu
aCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKQEAg
LTE1OCw4ICsxNTcsOCBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwYWludE9iamVj
dChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbgogICAgICAgICBMYXlvdXRV
bml0IHRleHRZOwogICAgICAgICAvLyBXZSB3YW50IHRvIG1hdGNoIHRoZSBidXR0b24ncyBiYXNl
bGluZQogICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIHdvcmsgd2l0aCB0cmFuc2Zvcm1zLgot
ICAgICAgICBpZiAoUmVuZGVyQnV0dG9uKiBidXR0b25SZW5kZXJlciA9IGRvd25jYXN0PFJlbmRl
ckJ1dHRvbj4oYnV0dG9uLT5yZW5kZXJlcigpKSkKLSAgICAgICAgICAgIHRleHRZID0gcGFpbnRP
ZmZzZXQueSgpICsgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgKyBidXR0b25SZW5kZXJlci0+
YmFzZWxpbmVQb3NpdGlvbihBbHBoYWJldGljQmFzZWxpbmUsIHRydWUsIEhvcml6b250YWxMaW5l
LCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpOworICAgICAgICBpZiAoYXV0byogYnV0dG9uUmVu
ZGVyZXIgPSBidXR0b24tPnJlbmRlcmVyKCkpCisgICAgICAgICAgICB0ZXh0WSA9IHBhaW50T2Zm
c2V0LnkoKSArIGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpICsgYmFzZWxpbmVQb3NpdGlvbihB
bHBoYWJldGljQmFzZWxpbmUsIHRydWUsIEhvcml6b250YWxMaW5lLCBQb3NpdGlvbk9uQ29udGFp
bmluZ0xpbmUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0ZXh0WSA9IGJhc2VsaW5lUG9z
aXRpb24oQWxwaGFiZXRpY0Jhc2VsaW5lLCB0cnVlLCBIb3Jpem9udGFsTGluZSwgUG9zaXRpb25P
bkNvbnRhaW5pbmdMaW5lKTsKIApAQCAtMTc4LDcgKzE3Nyw3IEBAIHZvaWQgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2luCiAgICAgICAgICAgICAgICAgaWNvblggPSBjb250ZW50TGVmdCArIGNvbnRlbnRXaWR0
aCgpIC0gYnV0dG9uV2lkdGggLSBhZnRlckJ1dHRvblNwYWNpbmcgLSBpY29uV2lkdGg7CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICAgICAgaWYgKFJlbmRlckJ1dHRvbiogYnV0
dG9uUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJCdXR0b24+KGJ1dHRvbi0+cmVuZGVyZXIoKSkp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBidXR0b25SZW5kZXJlciA9IGJ1dHRvbi0+cmVuZGVy
ZXIoKSkgewogICAgICAgICAgICAgICAgIC8vIERyYXcgdGhlIGZpbGUgaWNvbiBhbmQgZGVjb3Jh
dGlvbnMuCiAgICAgICAgICAgICAgICAgSW50UmVjdCBpY29uUmVjdChpY29uWCwgaWNvblksIGlj
b25XaWR0aCwgaWNvbkhlaWdodCk7CiAgICAgICAgICAgICAgICAgUmVuZGVyVGhlbWU6OkZpbGVV
cGxvYWREZWNvcmF0aW9ucyBkZWNvcmF0aW9uc1R5cGUgPSBpbnB1dEVsZW1lbnQoKS5maWxlcygp
LT5sZW5ndGgoKSA9PSAxID8gUmVuZGVyVGhlbWU6OlNpbmdsZUZpbGUgOiBSZW5kZXJUaGVtZTo6
TXVsdGlwbGVGaWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRl
eCBmY2FjZjM4NTRjOGVhNGUwODI3YTdiZTIyMGQ0OTJmMjU1N2U2YTk5Li43N2M1MzQxNTFjNjcz
Njg0MThmYzJkOGNhNDRmZmQ1MmJjOGMxZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCkBAIC0yMjEsNyArMjIxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc01lbnVMaXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNNZXRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUHJv
Z3Jlc3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRl
ckJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVu
ZGVySUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgRU5BQkxFKE1PREVMX0VM
RU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCAwZGY0
ZmQ4ZWYxMGUyODhjNDM5OGZlMTk0ZTc1OTcyYjZlNDM0N2RiLi4yNjRkNTJkM2Q1NDRlMzQzNDEy
NjMyNWExNTI2MzAxZDcxM2RiMWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5jcHAKQEAgLTM0MSw3ICszNDEsNyBAQCBDb250cm9sUGFydCBSZW5kZXJUaGVtZTo6YXV0
b0FwcGVhcmFuY2VGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnRQdHIpIGNvbgogICAg
ICAgICBhdXRvJiBpbnB1dCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQuZ2V0
KCkpOwogCiAgICAgICAgIGlmIChpbnB1dC5pc1RleHRCdXR0b24oKSB8fCBpbnB1dC5pc1VwbG9h
ZEJ1dHRvbigpKQotICAgICAgICAgICAgcmV0dXJuIFB1c2hCdXR0b25QYXJ0OworICAgICAgICAg
ICAgcmV0dXJuIEJ1dHRvblBhcnQ7CiAKICAgICAgICAgaWYgKGlucHV0LmlzQ2hlY2tib3goKSkK
ICAgICAgICAgICAgIHJldHVybiBDaGVja2JveFBhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggY2Y0ODk0ZmYyYzM2ZTZlYzNiYjU0OWY1N2NiMzQ3
YzJmOTIyMmIxMC4uNjYzNTI1YmVjZjdkYjg0MWQ3NTNlYWVlYmZhY2VkNmRhNDY3YTJhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtNjgsNyArNjgs
NiBAQAogI2ltcG9ydCAiUGF0aFV0aWxpdGllcy5oIgogI2ltcG9ydCAiUGxhdGZvcm1Mb2NhbGUu
aCIKICNpbXBvcnQgIlJlbmRlckF0dGFjaG1lbnQuaCIKLSNpbXBvcnQgIlJlbmRlckJ1dHRvbi5o
IgogI2ltcG9ydCAiUmVuZGVyTWVudUxpc3QuaCIKICNpbXBvcnQgIlJlbmRlck1ldGVyLmgiCiAj
aW1wb3J0ICJSZW5kZXJPYmplY3QuaCIKQEAgLTczOSw3ICs3MzgsNyBAQCB2b2lkIFJlbmRlclRo
ZW1lSU9TOjphZGp1c3RSb3VuZEJvcmRlclJhZGl1cyhSZW5kZXJTdHlsZSYgc3R5bGUsIFJlbmRl
ckJveCYgYm94KQogICAgIGlmICghY2FuQWRqdXN0Qm9yZGVyUmFkaXVzRm9yQXBwZWFyYW5jZShz
dHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCksIGJveCkgfHwgc3R5bGUuYmFja2dyb3VuZExheWVy
cygpLmhhc0ltYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICgoaXM8UmVuZGVyQnV0
dG9uPihib3gpIHx8IGlzPFJlbmRlck1lbnVMaXN0Pihib3gpKSAmJiBib3guaGVpZ2h0KCkgPj0g
bGFyZ2VCdXR0b25TaXplKSB7CisgICAgaWYgKChzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkg
PT0gQnV0dG9uUGFydCB8fCBpczxSZW5kZXJNZW51TGlzdD4oYm94KSkgJiYgYm94LmhlaWdodCgp
ID49IGxhcmdlQnV0dG9uU2l6ZSkgewogICAgICAgICBhdXRvIGxhcmdlQnV0dG9uQm9yZGVyUmFk
aXVzID0gc3RkOjptaW4oYm94LndpZHRoKCksIGJveC5oZWlnaHQoKSkgKiBsYXJnZUJ1dHRvbkJv
cmRlclJhZGl1c1JhdGlvOwogICAgICAgICBzdHlsZS5zZXRCb3JkZXJSYWRpdXMoeyB7IGxhcmdl
QnV0dG9uQm9yZGVyUmFkaXVzLCBMZW5ndGhUeXBlOjpGaXhlZCB9LCB7IGxhcmdlQnV0dG9uQm9y
ZGVyUmFkaXVzLCBMZW5ndGhUeXBlOjpGaXhlZCB9IH0pOwogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWls
ZGVyLmNwcAppbmRleCA2MDZhZGFmMGI3MDRhMDNmOTdjMjIwOGY5MGM2NTE1YjllY2Y1NWU2Li42
YmE5ZjcwNGQ2Yjg0YzE0YzdmOGI3YzgxY2U5OGJhNTFjODJiZGQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAK
QEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUg
IkxlZ2FjeVJlbmRlclNWR0NvbnRhaW5lci5oIgogI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1Jv
b3QuaCIKLSNpbmNsdWRlICJSZW5kZXJCdXR0b24uaCIKICNpbmNsdWRlICJSZW5kZXJDb3VudGVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyRWxlbWVudC5oIgpAQCAtMjczLDExICsyNzIsNiBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVy
OjphdHRhY2hJbnRlcm5hbChSZW5kZXJFbGVtZW50JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJP
YgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzPFJlbmRlckJ1dHRvbj4ocGFy
ZW50KSkgewotICAgICAgICBmb3JtQ29udHJvbHNCdWlsZGVyKCkuYXR0YWNoKGRvd25jYXN0PFJl
bmRlckJ1dHRvbj4ocGFyZW50KSwgV1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmIChpczxSZW5kZXJNZW51TGlzdD4ocGFyZW50KSkg
ewogICAgICAgICBmb3JtQ29udHJvbHNCdWlsZGVyKCkuYXR0YWNoKGRvd25jYXN0PFJlbmRlck1l
bnVMaXN0PihwYXJlbnQpLCBXVEZNb3ZlKGNoaWxkKSwgYmVmb3JlQ2hpbGQpOwogICAgICAgICBy
ZXR1cm47CkBAIC0zNzYsOSArMzcwLDYgQEAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVy
VHJlZUJ1aWxkZXI6OmRldGFjaChSZW5kZXJFbGVtZW50JiBwYXJlbnQsIFJlbmRlck8KICAgICBp
ZiAoaXM8UmVuZGVyTWVudUxpc3Q+KHBhcmVudCkpCiAgICAgICAgIHJldHVybiBmb3JtQ29udHJv
bHNCdWlsZGVyKCkuZGV0YWNoKGRvd25jYXN0PFJlbmRlck1lbnVMaXN0PihwYXJlbnQpLCBjaGls
ZCk7CiAKLSAgICBpZiAoaXM8UmVuZGVyQnV0dG9uPihwYXJlbnQpKQotICAgICAgICByZXR1cm4g
Zm9ybUNvbnRyb2xzQnVpbGRlcigpLmRldGFjaChkb3duY2FzdDxSZW5kZXJCdXR0b24+KHBhcmVu
dCksIGNoaWxkKTsKLQogICAgIGlmIChpczxSZW5kZXJHcmlkPihwYXJlbnQpKQogICAgICAgICBy
ZXR1cm4gZGV0YWNoRnJvbVJlbmRlckdyaWQoZG93bmNhc3Q8UmVuZGVyR3JpZD4ocGFyZW50KSwg
Y2hpbGQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5jcHAKaW5kZXggMTZlZTBmZGVhZmM4NDZjNGQ2
NWIwZWE2NGMxNzhlMzI3N2EzYWJmMC4uYWQ0ODljOWFjNjY0MjVlZDE0OWE0MjAwYTJhZGJlMzQw
YTU3YTQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyQmxvY2suaCIKIAot
I2luY2x1ZGUgIlJlbmRlckJ1dHRvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNoaWxkSXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJSZW5kZXJGdWxsU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyTXVsdGlD
b2x1bW5GbG93LmgiCkBAIC0yNjgsNyArMjY3LDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6
QmxvY2s6OnJlbW92ZUxlZnRvdmVyQW5vbnltb3VzQmxvY2soUmVuZGVyQmxvY2smIGFub255bW8K
ICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byogcGFyZW50ID0gYW5vbnltb3VzQmxvY2sucGFy
ZW50KCk7Ci0gICAgaWYgKGlzPFJlbmRlckJ1dHRvbj4oKnBhcmVudCkgfHwgaXM8UmVuZGVyVGV4
dENvbnRyb2w+KCpwYXJlbnQpIHx8IGlzPFJlbmRlclJ1YnlBc0Jsb2NrPigqcGFyZW50KSB8fCBp
czxSZW5kZXJSdWJ5UnVuPigqcGFyZW50KSkKKyAgICBpZiAoaXM8UmVuZGVyVGV4dENvbnRyb2w+
KCpwYXJlbnQpIHx8IGlzPFJlbmRlclJ1YnlBc0Jsb2NrPigqcGFyZW50KSB8fCBpczxSZW5kZXJS
dWJ5UnVuPigqcGFyZW50KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9idWlsZGVyLnJlbW92
ZUZsb2F0aW5nT2JqZWN0cyhhbm9ueW1vdXNCbG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJz
dExldHRlci5jcHAKaW5kZXggZTdhNzgxNDdlODYwZGQyMjZiODExOGEyMDU0YjhmOGU1OTQzYjY2
YS4uNjZkZGFiODgxZDg2NjY3YmEwOTJjN2Q4MmVhZjkzMzE3YmM1MzFiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyRmlyc3RM
ZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcApAQCAtMjYsNyArMjYsNiBAQAogCiAjaW5jbHVkZSAi
Rm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgotI2luY2x1ZGUgIlJlbmRl
ckJ1dHRvbi5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlclJ1
YnlSdW4uaCIKICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0LmgiCkBAIC0xMDUsOCArMTA0LDYgQEAg
c3RhdGljIGlubGluZSBib29sIHNob3VsZFNraXBGb3JGaXJzdExldHRlcihVQ2hhcjMyIGMpCiAK
IHN0YXRpYyBib29sIHN1cHBvcnRzRmlyc3RMZXR0ZXIoUmVuZGVyQmxvY2smIGJsb2NrKQogewot
ICAgIGlmIChpczxSZW5kZXJCdXR0b24+KGJsb2NrKSkKLSAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgaWYgKCFpczxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmIChpczxSZW5kZXJTVkdUZXh0PihibG9jaykpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGb3JtQ29udHJvbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
Rm9ybUNvbnRyb2xzLmNwcAppbmRleCA5OWM1NzQ3ODQzNzBhODNhNjQ1MWMxY2IyYTRhY2IyYTlj
NGM5MzZkLi41MDVmNmZkMmQ1NzM3YjlkYzc0NTY3NDA4NjQzNzc4OTk4Y2U0ZDA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJG
b3JtQ29udHJvbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlckZvcm1Db250cm9scy5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlckZvcm1Db250cm9scy5o
IgogCi0jaW5jbHVkZSAiUmVuZGVyQnV0dG9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlckJsb2NrLmgiCiAKQEAgLTM3LDExICszNiw2
IEBAIFJlbmRlclRyZWVCdWlsZGVyOjpGb3JtQ29udHJvbHM6OkZvcm1Db250cm9scyhSZW5kZXJU
cmVlQnVpbGRlciYgYnVpbGRlcikKIHsKIH0KIAotdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6Rm9y
bUNvbnRyb2xzOjphdHRhY2goUmVuZGVyQnV0dG9uJiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJP
YmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQotewotICAgIG1fYnVpbGRl
ci5ibG9ja0J1aWxkZXIoKS5hdHRhY2goZmluZE9yQ3JlYXRlUGFyZW50Rm9yQ2hpbGQocGFyZW50
KSwgV1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsKLX0KLQogdm9pZCBSZW5kZXJUcmVlQnVp
bGRlcjo6Rm9ybUNvbnRyb2xzOjphdHRhY2goUmVuZGVyTWVudUxpc3QmIHBhcmVudCwgUmVuZGVy
UHRyPFJlbmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiB7CiAg
ICAgYXV0byYgbmV3Q2hpbGQgPSAqY2hpbGQuZ2V0KCk7CkBAIC01NywzMCArNTEsNiBAQCBSZW5k
ZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJUcmVlQnVpbGRlcjo6Rm9ybUNvbnRyb2xzOjpkZXRh
Y2goUmVuZGVyTWVudUxpc3QmCiAgICAgcmV0dXJuIG1fYnVpbGRlci5kZXRhY2goKmlubmVyUmVu
ZGVyZXIsIGNoaWxkKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyVHJlZUJ1
aWxkZXI6OkZvcm1Db250cm9sczo6ZGV0YWNoKFJlbmRlckJ1dHRvbiYgcGFyZW50LCBSZW5kZXJP
YmplY3QmIGNoaWxkKQotewotICAgIGF1dG8qIGlubmVyUmVuZGVyZXIgPSBwYXJlbnQuaW5uZXJS
ZW5kZXJlcigpOwotICAgIGlmICghaW5uZXJSZW5kZXJlciB8fCAmY2hpbGQgPT0gaW5uZXJSZW5k
ZXJlciB8fCBjaGlsZC5wYXJlbnQoKSA9PSAmcGFyZW50KSB7Ci0gICAgICAgIEFTU0VSVCgmY2hp
bGQgPT0gaW5uZXJSZW5kZXJlciB8fCAhaW5uZXJSZW5kZXJlcik7Ci0gICAgICAgIHJldHVybiBt
X2J1aWxkZXIuYmxvY2tCdWlsZGVyKCkuZGV0YWNoKHBhcmVudCwgY2hpbGQpOwotICAgIH0KLSAg
ICByZXR1cm4gbV9idWlsZGVyLmRldGFjaCgqaW5uZXJSZW5kZXJlciwgY2hpbGQpOwotfQotCi0K
LVJlbmRlckJsb2NrJiBSZW5kZXJUcmVlQnVpbGRlcjo6Rm9ybUNvbnRyb2xzOjpmaW5kT3JDcmVh
dGVQYXJlbnRGb3JDaGlsZChSZW5kZXJCdXR0b24mIHBhcmVudCkKLXsKLSAgICBhdXRvKiBpbm5l
clJlbmRlcmVyID0gcGFyZW50LmlubmVyUmVuZGVyZXIoKTsKLSAgICBpZiAoaW5uZXJSZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuICppbm5lclJlbmRlcmVyOwotCi0gICAgYXV0byB3cmFwcGVyID0g
cGFyZW50LmNyZWF0ZUFub255bW91c0Jsb2NrKHBhcmVudC5zdHlsZSgpLmRpc3BsYXkoKSk7Ci0g
ICAgaW5uZXJSZW5kZXJlciA9IHdyYXBwZXIuZ2V0KCk7Ci0gICAgbV9idWlsZGVyLmJsb2NrQnVp
bGRlcigpLmF0dGFjaChwYXJlbnQsIFdURk1vdmUod3JhcHBlciksIG51bGxwdHIpOwotICAgIHBh
cmVudC5zZXRJbm5lclJlbmRlcmVyKCppbm5lclJlbmRlcmVyKTsKLSAgICByZXR1cm4gKmlubmVy
UmVuZGVyZXI7Ci19Ci0KIFJlbmRlckJsb2NrJiBSZW5kZXJUcmVlQnVpbGRlcjo6Rm9ybUNvbnRy
b2xzOjpmaW5kT3JDcmVhdGVQYXJlbnRGb3JDaGlsZChSZW5kZXJNZW51TGlzdCYgcGFyZW50KQog
ewogICAgIGF1dG8qIGlubmVyUmVuZGVyZXIgPSBwYXJlbnQuaW5uZXJSZW5kZXJlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5jcHAKaW5kZXggNWQ0ZjY0OGQ5NjA3ZGMwYWIzZTA3ZjRhZmMzYzY1YTViZTgxZmVlZi4u
NzU2ZTY4MDk5MDNlNGY0OTIyZTI4ODhjNTgzYmFmYmM5ZGU0Mjg3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3Bw
CkBAIC00MjIsNyArNDIyLDcgQEAgYm9vbCBSZW5kZXJUcmVlVXBkYXRlcjo6dGV4dFJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgVGV4dCYgdGV4dE5vZGUpCiAgICAgaWYgKGlzPFJlbmRlclRleHQ+KHJl
bmRlcmluZ1BhcmVudC5wcmV2aW91c0NoaWxkUmVuZGVyZXIpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAvLyBUaGlzIHRleHQgbm9kZSBoYXMgbm90aGluZyBidXQgd2hpdGUgc3BhY2UuIFdl
IG1heSBzdGlsbCBuZWVkIGEgcmVuZGVyZXIgaW4gc29tZSBjYXNlcy4KLSAgICBpZiAocGFyZW50
UmVuZGVyZXIuaXNUYWJsZSgpIHx8IHBhcmVudFJlbmRlcmVyLmlzVGFibGVSb3coKSB8fCBwYXJl
bnRSZW5kZXJlci5pc1RhYmxlU2VjdGlvbigpIHx8IHBhcmVudFJlbmRlcmVyLmlzUmVuZGVyVGFi
bGVDb2woKSB8fCBwYXJlbnRSZW5kZXJlci5pc0ZyYW1lU2V0KCkgfHwgcGFyZW50UmVuZGVyZXIu
aXNSZW5kZXJHcmlkKCkgfHwgKHBhcmVudFJlbmRlcmVyLmlzRmxleGlibGVCb3goKSAmJiAhcGFy
ZW50UmVuZGVyZXIuaXNSZW5kZXJCdXR0b24oKSkpCisgICAgaWYgKHBhcmVudFJlbmRlcmVyLmlz
VGFibGUoKSB8fCBwYXJlbnRSZW5kZXJlci5pc1RhYmxlUm93KCkgfHwgcGFyZW50UmVuZGVyZXIu
aXNUYWJsZVNlY3Rpb24oKSB8fCBwYXJlbnRSZW5kZXJlci5pc1JlbmRlclRhYmxlQ29sKCkgfHwg
cGFyZW50UmVuZGVyZXIuaXNGcmFtZVNldCgpIHx8IHBhcmVudFJlbmRlcmVyLmlzUmVuZGVyR3Jp
ZCgpIHx8IHBhcmVudFJlbmRlcmVyLmlzRmxleGlibGVCb3goKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmIChwYXJlbnRSZW5kZXJlci5zdHlsZSgpLnByZXNlcnZlTmV3bGluZSgpKSAv
LyBwcmUvcHJlLXdyYXAvcHJlLWxpbmUgYWx3YXlzIG1ha2UgcmVuZGVyZXJzLgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsK
</data>
<flag name="commit-queue"
          id="485072"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>