<?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>206124</bug_id>
          
          <creation_ts>2020-01-10 21:34:11 -0800</creation_ts>
          <short_desc>Platform.h is out of control Part 1: Split WTF_CPU_* macro definitions out of Platform.h and into a new CPU.h</short_desc>
          <delta_ts>2020-01-11 10:08:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>andersca</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1605492</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-10 21:34:11 -0800</bug_when>
    <thetext>Split WTF_CPU_* macro definitions out of Platform.h and into a new CPU.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605493</commentid>
    <comment_count>1</comment_count>
      <attachid>387421</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-10 21:36:58 -0800</bug_when>
    <thetext>Created attachment 387421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605515</commentid>
    <comment_count>2</comment_count>
      <attachid>387421</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2020-01-11 07:41:07 -0800</bug_when>
    <thetext>Comment on attachment 387421
Patch

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

&gt; Source/WTF/wtf/CPU.h:186
&gt; +// FIXME: WTF_THUMB_ARCH_VERSION seems unusued. Remove.

*unusued*.

&gt; Source/WTF/wtf/Platform.h:81
&gt; +/* FIXME: This should be renamed to WTF_CPU_ARM_IDIV_INSTRUCTIONS and moved to CPU.h */

Why use C comments here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605535</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-11 10:07:06 -0800</bug_when>
    <thetext>Committed r254401: &lt;https://trac.webkit.org/changeset/254401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605537</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-11 10:08:01 -0800</bug_when>
    <thetext>(In reply to Anders Carlsson from comment #2)
&gt; Comment on attachment 387421 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=387421&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/CPU.h:186
&gt; &gt; +// FIXME: WTF_THUMB_ARCH_VERSION seems unusued. Remove.
&gt; 
&gt; *unusued*.

Fixed.

&gt; 
&gt; &gt; Source/WTF/wtf/Platform.h:81
&gt; &gt; +/* FIXME: This should be renamed to WTF_CPU_ARM_IDIV_INSTRUCTIONS and moved to CPU.h */
&gt; 
&gt; Why use C comments here?

The whole file is supposed to uses C comments so it can be included in C files. I fixed the other one to also be a C comment.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605538</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-11 10:08:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/58504848&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387421</attachid>
            <date>2020-01-10 21:36:58 -0800</date>
            <delta_ts>2020-01-11 07:41:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206124-20200110213657.patch</filename>
            <type>text/plain</type>
            <size>108996</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTQzOTIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAxLTEwICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTcGxpdCBXVEZfQ1BVXyogbWFjcm8gZGVmaW5pdGlvbnMg
b3V0IG9mIFBsYXRmb3JtLmggYW5kIGludG8gYSBuZXcgQ1BVLmgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEyNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIGEgc3RlcCB0b3dhcmRzIGNsZWFuaW5n
IHVwIFBsYXRmb3JtLmgsIHNwbGl0IG91dCBDUFUgcmVsYXRlZAorICAgICAgICBtYWNyb3MgaW50
byB0aGVpciBvd24gZmlsZS4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvQ1BVLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmguCisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKIDIwMjAtMDEtMTAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxODU4MTYpOiBJbiB0aGUgSG9uZyBLb25n
IGxvY2FsZSwgbmF2aWdhdG9yLmxhbmd1YWdlIHJlcG9ydHMgaXQncyBpbiB0aGUgVGFpd2FuIGxv
Y2FsZQpJbmRleDogU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAyNTQzOTApCisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC00NDUsNiArNDQ1LDcgQEAKIAkJN0MxMzc5NDMyMjIzMjZENTAw
RDdBODI0IC8qIFJFQURNRS5tZCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IG5ldC5kYXJpbmdmaXJlYmFsbC5tYXJrZG93bjsgcGF0aCA9IFJFQURNRS5t
ZDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MzRjcyMzkxRDc4ODExOTAwNjc0RTI2
IC8qIEJyaWdhbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnJpZ2FuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzk2OTI5NDFGNjYzMDZFMDAyNjdBOUUg
LyogS2V5VmFsdWVQYWlyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtleVZh
bHVlUGFpci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0E4NDJFOTIzQzk4Q0I3
MDA1MTRDQUYgLyogQ1BVLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENQVS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUg
LyogT1NPYmplY3RQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT1NPYmpl
Y3RQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NEMEQ1QTcxRDU1MzIyQTAw
MENDOUUxIC8qIFZhcmlhbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFy
aWFudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q0QzI2RjFFMkM4MkI5MDA5
Mjk0NzAgLyogU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtOTU0LDYgKzk1NSw3IEBACiAJCQkJMEZEQjY5OEQxQjdDNjQzQTAwMEMx
MDc4IC8qIENvbmRpdGlvbi5oICovLAogCQkJCTBGOEU4NURBMUZENDg1QjAwMDY5MTg4OSAvKiBD
b3VudGluZ0xvY2suY3BwICovLAogCQkJCTBGRkJDQkZBMUZEMzdFMEYwMDcyQUFGMCAvKiBDb3Vu
dGluZ0xvY2suaCAqLywKKwkJCQk3Q0E4NDJFOTIzQzk4Q0I3MDA1MTRDQUYgLyogQ1BVLmggKi8s
CiAJCQkJRTM4QzQxMjYxRUI0RTA2ODAwNDI5NTdEIC8qIENQVVRpbWUuY3BwICovLAogCQkJCUUz
OEM0MTI3MUVCNEUwNjgwMDQyOTU3RCAvKiBDUFVUaW1lLmggKi8sCiAJCQkJNTE1Rjc5NEIxQ0ZD
OUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLywKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CShyZXZpc2lvbiAyNTQzOTApCisrKyBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQCBzZXQoV1RGX1BVQkxJQ19IRUFE
RVJTCiAgICAgQnViYmxlU29ydC5oCiAgICAgQnVtcFBvaW50ZXJBbGxvY2F0b3IuaAogICAgIEJ5
dGVPcmRlci5oCisgICAgQ1BVLmgKICAgICBDUFVUaW1lLmgKICAgICBDYWdlZFB0ci5oCiAgICAg
Q2FnZWRVbmlxdWVQdHIuaApJbmRleDogU291cmNlL1dURi93dGYvQ1BVLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvQ1BVLmgJKHJldmlzaW9uIDI1NDM5MCkJKGZyb20gU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaDoyNTQzOTApCisrKyBTb3VyY2UvV1RGL3d0Zi9DUFUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDE2ODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDct
MjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKy8qIEluY2x1
ZGUgY29tcGlsZXIgc3BlY2lmaWMgbWFjcm9zICovCisjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+
CisKKy8qID09PT0gUExBVEZPUk0gaGFuZGxlcyBPUywgb3BlcmF0aW5nIGVudmlyb25tZW50LCBn
cmFwaGljcyBBUEksIGFuZAorICAgQ1BVLiBUaGlzIG1hY3JvIHdpbGwgYmUgcGhhc2VkIG91dCBp
biBmYXZvciBvZiBwbGF0Zm9ybSBhZGFwdGF0aW9uCisgICBtYWNyb3MsIHBvbGljeSBkZWNpc2lv
biBtYWNyb3MsIGFuZCB0b3AtbGV2ZWwgcG9ydCBkZWZpbml0aW9ucy4gPT09PSAqLworI2RlZmlu
ZSBQTEFURk9STShXVEZfRkVBVFVSRSkgKGRlZmluZWQgV1RGX1BMQVRGT1JNXyMjV1RGX0ZFQVRV
UkUgICYmIFdURl9QTEFURk9STV8jI1dURl9GRUFUVVJFKQorCisKKy8qID09PT0gUGxhdGZvcm0g
YWRhcHRhdGlvbiBtYWNyb3M6IHRoZXNlIGRlc2NyaWJlIHByb3BlcnRpZXMgb2YgdGhlIHRhcmdl
dCBlbnZpcm9ubWVudC4gPT09PSAqLworCisvKiBDUFUoKSAtIHRoZSB0YXJnZXQgQ1BVIGFyY2hp
dGVjdHVyZSAqLworI2RlZmluZSBDUFUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIFdURl9DUFVfIyNX
VEZfRkVBVFVSRSAgJiYgV1RGX0NQVV8jI1dURl9GRUFUVVJFKQorLyogSEFWRSgpIC0gc3BlY2lm
aWMgc3lzdGVtIGZlYXR1cmVzIChoZWFkZXJzLCBmdW5jdGlvbnMgb3Igc2ltaWxhcikgdGhhdCBh
cmUgcHJlc2VudCBvciBub3QgKi8KKyNkZWZpbmUgSEFWRShXVEZfRkVBVFVSRSkgKGRlZmluZWQg
SEFWRV8jI1dURl9GRUFUVVJFICAmJiBIQVZFXyMjV1RGX0ZFQVRVUkUpCisvKiBPUygpIC0gdW5k
ZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtOyBvbmx5IHRvIGJlIHVzZWQgZm9yIG1hbmRhdGVkIGxv
dy1sZXZlbCBzZXJ2aWNlcyBsaWtlIAorICAgdmlydHVhbCBtZW1vcnksIG5vdCB0byBjaG9vc2Ug
YSBHVUkgdG9vbGtpdCAqLworI2RlZmluZSBPUyhXVEZfRkVBVFVSRSkgKGRlZmluZWQgV1RGX09T
XyMjV1RGX0ZFQVRVUkUgICYmIFdURl9PU18jI1dURl9GRUFUVVJFKQorCisKKy8qID09PT0gUG9s
aWN5IGRlY2lzaW9uIG1hY3JvczogdGhlc2UgZGVmaW5lIHBvbGljeSBjaG9pY2VzIGZvciBhIHBh
cnRpY3VsYXIgcG9ydC4gPT09PSAqLworCisvKiBVU0UoKSAtIHVzZSBhIHBhcnRpY3VsYXIgdGhp
cmQtcGFydHkgbGlicmFyeSBvciBvcHRpb25hbCBPUyBzZXJ2aWNlICovCisjZGVmaW5lIFVTRShX
VEZfRkVBVFVSRSkgKGRlZmluZWQgVVNFXyMjV1RGX0ZFQVRVUkUgICYmIFVTRV8jI1dURl9GRUFU
VVJFKQorLyogRU5BQkxFKCkgLSB0dXJuIG9uIGEgc3BlY2lmaWMgZmVhdHVyZSBvZiBXZWJLaXQg
Ki8KKyNkZWZpbmUgRU5BQkxFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBFTkFCTEVfIyNXVEZfRkVB
VFVSRSAgJiYgRU5BQkxFXyMjV1RGX0ZFQVRVUkUpCisKKworLyogPT09PSBDUFUoKSAtIHRoZSB0
YXJnZXQgQ1BVIGFyY2hpdGVjdHVyZSA9PT09ICovCisvKiBDUFUoS05PV04pIGJlY29tZXMgdHJ1
ZSBpZiB3ZSBleHBsaWNpdGx5IHN1cHBvcnQgYSB0YXJnZXQgQ1BVLiAqLworCisvKiBDUFUoTUlQ
UykgLSBNSVBTIDMyLWJpdCBhbmQgNjQtYml0ICovCisjaWYgKGRlZmluZWQobWlwcykgfHwgZGVm
aW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChNSVBTKSB8fCBkZWZpbmVkKF9NSVBTXykgfHwgZGVm
aW5lZChfX21pcHM2NCkpCisjaWYgZGVmaW5lZChfQUJJNjQpICYmIChfTUlQU19TSU0gPT0gX0FC
STY0KQorI2RlZmluZSBXVEZfQ1BVX01JUFM2NCAxCisjZGVmaW5lIFdURl9NSVBTX0FSQ0ggX19t
aXBzNjQKKyNlbHNlCisjZGVmaW5lIFdURl9DUFVfTUlQUyAxCisjZGVmaW5lIFdURl9NSVBTX0FS
Q0ggX19taXBzCisjZW5kaWYKKyNkZWZpbmUgV1RGX0NQVV9LTk9XTiAxCisjZGVmaW5lIFdURl9N
SVBTX1BJQyAoZGVmaW5lZCBfX1BJQ19fKQorI2RlZmluZSBXVEZfTUlQU19JU0EodikgKGRlZmlu
ZWQgV1RGX01JUFNfQVJDSCAmJiBXVEZfTUlQU19BUkNIID09IHYpCisjZGVmaW5lIFdURl9NSVBT
X0lTQV9BVF9MRUFTVCh2KSAoZGVmaW5lZCBXVEZfTUlQU19BUkNIICYmIFdURl9NSVBTX0FSQ0gg
Pj0gdikKKyNkZWZpbmUgV1RGX01JUFNfQVJDSF9SRVYgX19taXBzX2lzYV9yZXYKKyNkZWZpbmUg
V1RGX01JUFNfSVNBX1JFVih2KSAoZGVmaW5lZCBXVEZfTUlQU19BUkNIX1JFViAmJiBXVEZfTUlQ
U19BUkNIX1JFViA9PSB2KQorI2RlZmluZSBXVEZfTUlQU19JU0FfUkVWX0FUX0xFQVNUKHYpIChk
ZWZpbmVkIFdURl9NSVBTX0FSQ0hfUkVWICYmIFdURl9NSVBTX0FSQ0hfUkVWID49IHYpCisjZGVm
aW5lIFdURl9NSVBTX0RPVUJMRV9GTE9BVCAoZGVmaW5lZCBfX21pcHNfaGFyZF9mbG9hdCAmJiAh
ZGVmaW5lZCBfX21pcHNfc2luZ2xlX2Zsb2F0KQorI2RlZmluZSBXVEZfTUlQU19GUDY0IChkZWZp
bmVkIF9fbWlwc19mcHIgJiYgX19taXBzX2ZwciA9PSA2NCkKKy8qIE1JUFMgcmVxdWlyZXMgYWxs
b2NhdG9ycyB0byB1c2UgYWxpZ25lZCBtZW1vcnkgKi8KKyNkZWZpbmUgVVNFX0FSRU5BX0FMTE9D
X0FMSUdOTUVOVF9JTlRFR0VSIDEKKyNlbmRpZiAvKiBNSVBTICovCisKKy8qIENQVShQUEM2NCkg
LSBQb3dlclBDIDY0LWJpdCBCaWcgRW5kaWFuICovCisjaWYgKCAgZGVmaW5lZChfX3BwYzY0X18p
ICAgICAgXAorICAgIHx8IGRlZmluZWQoX19QUEM2NF9fKSkgICAgIFwKKyAgICAmJiBkZWZpbmVk
KF9fQllURV9PUkRFUl9fKSBcCisgICAgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfQklH
X0VORElBTl9fKQorI2RlZmluZSBXVEZfQ1BVX1BQQzY0IDEKKyNkZWZpbmUgV1RGX0NQVV9LTk9X
TiAxCisjZW5kaWYKKworLyogQ1BVKFBQQzY0TEUpIC0gUG93ZXJQQyA2NC1iaXQgTGl0dGxlIEVu
ZGlhbiAqLworI2lmICggICBkZWZpbmVkKF9fcHBjNjRfXykgICAgIFwKKyAgICB8fCBkZWZpbmVk
KF9fUFBDNjRfXykgICAgICBcCisgICAgfHwgZGVmaW5lZChfX3BwYzY0bGVfXykgICAgXAorICAg
IHx8IGRlZmluZWQoX19QUEM2NExFX18pKSAgIFwKKyAgICAmJiBkZWZpbmVkKF9fQllURV9PUkRF
Ul9fKSBcCisgICAgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9f
KQorI2RlZmluZSBXVEZfQ1BVX1BQQzY0TEUgMQorI2RlZmluZSBXVEZfQ1BVX0tOT1dOIDEKKyNl
bmRpZgorCisvKiBDUFUoUFBDKSAtIFBvd2VyUEMgMzItYml0ICovCisjaWYgKCAgZGVmaW5lZChf
X3BwY19fKSAgICAgICAgXAorICAgIHx8IGRlZmluZWQoX19QUENfXykgICAgICAgIFwKKyAgICB8
fCBkZWZpbmVkKF9fcG93ZXJwY19fKSAgICBcCisgICAgfHwgZGVmaW5lZChfX3Bvd2VycGMpICAg
ICAgXAorICAgIHx8IGRlZmluZWQoX19QT1dFUlBDX18pICAgIFwKKyAgICB8fCBkZWZpbmVkKF9N
X1BQQykgICAgICAgICBcCisgICAgfHwgZGVmaW5lZChfX1BQQykpICAgICAgICAgXAorICAgICYm
ICFDUFUoUFBDNjQpICAgICAgICAgICAgIFwKKyAgICAmJiBDUFUoQklHX0VORElBTikKKyNkZWZp
bmUgV1RGX0NQVV9QUEMgMQorI2RlZmluZSBXVEZfQ1BVX0tOT1dOIDEKKyNlbmRpZgorCisvKiBD
UFUoWDg2KSAtIGkzODYgLyB4ODYgMzItYml0ICovCisjaWYgICBkZWZpbmVkKF9faTM4Nl9fKSBc
CisgICAgfHwgZGVmaW5lZChpMzg2KSAgICAgXAorICAgIHx8IGRlZmluZWQoX01fSVg4NikgIFwK
KyAgICB8fCBkZWZpbmVkKF9YODZfKSAgICBcCisgICAgfHwgZGVmaW5lZChfX1RIV19JTlRFTCkK
KyNkZWZpbmUgV1RGX0NQVV9YODYgMQorI2RlZmluZSBXVEZfQ1BVX0tOT1dOIDEKKworI2lmIGRl
ZmluZWQoX19TU0UyX18pIHx8IChkZWZpbmVkKF9NX0lYODZfRlApICYmIF9NX0lYODZfRlAgPj0g
MikKKyNkZWZpbmUgV1RGX0NQVV9YODZfU1NFMiAxCisjZW5kaWYKKworI2VuZGlmCisKKy8qIENQ
VShYODZfNjQpIC0gQU1ENjQgLyBJbnRlbDY0IC8geDg2XzY0IDY0LWJpdCAqLworI2lmICAgZGVm
aW5lZChfX3g4Nl82NF9fKSBcCisgICAgfHwgZGVmaW5lZChfTV9YNjQpCisjZGVmaW5lIFdURl9D
UFVfWDg2XzY0IDEKKyNkZWZpbmUgV1RGX0NQVV9YODZfU1NFMiAxCisjZGVmaW5lIFdURl9DUFVf
S05PV04gMQorI2VuZGlmCisKKy8qIENQVShBUk02NCkgLSBBcHBsZSAqLworI2lmIChkZWZpbmVk
KF9fYXJtNjRfXykgJiYgZGVmaW5lZChfX0FQUExFX18pKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9f
KQorI2RlZmluZSBXVEZfQ1BVX0FSTTY0IDEKKyNkZWZpbmUgV1RGX0NQVV9LTk9XTiAxCisKKyNp
ZiBkZWZpbmVkKF9fYXJtNjRlX18pCisjZGVmaW5lIFdURl9DUFVfQVJNNjRFIDEKKyNlbmRpZgor
I2VuZGlmCisKKy8qIENQVShBUk0pIC0gQVJNLCBhbnkgdmVyc2lvbiovCisjZGVmaW5lIFdURl9B
Uk1fQVJDSF9BVF9MRUFTVChOKSAoQ1BVKEFSTSkgJiYgV1RGX0FSTV9BUkNIX1ZFUlNJT04gPj0g
TikKKworI2lmICAgZGVmaW5lZChhcm0pIFwKKyAgICB8fCBkZWZpbmVkKF9fYXJtX18pIFwKKyAg
ICB8fCBkZWZpbmVkKEFSTSkgXAorICAgIHx8IGRlZmluZWQoX0FSTV8pCisjZGVmaW5lIFdURl9D
UFVfQVJNIDEKKyNkZWZpbmUgV1RGX0NQVV9LTk9XTiAxCisKKyNpZiBkZWZpbmVkKF9fQVJNX1BD
U19WRlApCisjZGVmaW5lIFdURl9DUFVfQVJNX0hBUkRGUCAxCisjZW5kaWYKKworLyogU2V0IFdU
Rl9BUk1fQVJDSF9WRVJTSU9OICovCisjaWYgICBkZWZpbmVkKF9fQVJNX0FSQ0hfNF9fKSBcCisg
ICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzRUX18pIFwKKyAgICB8fCBkZWZpbmVkKF9fTUFSTV9B
Uk1WNF9fKQorI2RlZmluZSBXVEZfQVJNX0FSQ0hfVkVSU0lPTiA0CisKKyNlbGlmIGRlZmluZWQo
X19BUk1fQVJDSF81X18pIFwKKyAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRfXykgXAorICAg
IHx8IGRlZmluZWQoX19NQVJNX0FSTVY1X18pCisjZGVmaW5lIFdURl9BUk1fQVJDSF9WRVJTSU9O
IDUKKworI2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzVFX18pIFwKKyAgICB8fCBkZWZpbmVkKF9f
QVJNX0FSQ0hfNVRFX18pIFwKKyAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRFSl9fKQorI2Rl
ZmluZSBXVEZfQVJNX0FSQ0hfVkVSU0lPTiA1CisvKkFSTXY1VEUgcmVxdWlyZXMgYWxsb2NhdG9y
cyB0byB1c2UgYWxpZ25lZCBtZW1vcnkqLworI2RlZmluZSBVU0VfQVJFTkFfQUxMT0NfQUxJR05N
RU5UX0lOVEVHRVIgMQorCisjZWxpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNl9fKSBcCisgICAgfHwg
ZGVmaW5lZChfX0FSTV9BUkNIXzZKX18pIFwKKyAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNktf
XykgXAorICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF82Wl9fKSBcCisgICAgfHwgZGVmaW5lZChf
X0FSTV9BUkNIXzZaS19fKSBcCisgICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZUMl9fKSBcCisg
ICAgfHwgZGVmaW5lZChfX0FSTVY2X18pCisjZGVmaW5lIFdURl9BUk1fQVJDSF9WRVJTSU9OIDYK
KworI2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzdBX18pIFwKKyAgICB8fCBkZWZpbmVkKF9fQVJN
X0FSQ0hfN0tfXykgXAorICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF83Ul9fKSBcCisgICAgfHwg
ZGVmaW5lZChfX0FSTV9BUkNIXzdTX18pCisjZGVmaW5lIFdURl9BUk1fQVJDSF9WRVJTSU9OIDcK
KworI2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzhfXykgXAorICAgIHx8IGRlZmluZWQoX19BUk1f
QVJDSF84QV9fKQorI2RlZmluZSBXVEZfQVJNX0FSQ0hfVkVSU0lPTiA4CisKKy8qIE1TVkMgc2V0
cyBfTV9BUk0gKi8KKyNlbGlmIGRlZmluZWQoX01fQVJNKQorI2RlZmluZSBXVEZfQVJNX0FSQ0hf
VkVSU0lPTiBfTV9BUk0KKworLyogUlZDVCBzZXRzIF9UQVJHRVRfQVJDSF9BUk0gKi8KKyNlbGlm
IGRlZmluZWQoX19UQVJHRVRfQVJDSF9BUk0pCisjZGVmaW5lIFdURl9BUk1fQVJDSF9WRVJTSU9O
IF9fVEFSR0VUX0FSQ0hfQVJNCisKKyNpZiBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNUUpIFwKKyAg
ICB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNVRFKSBcCisgICAgfHwgZGVmaW5lZChfX1RBUkdF
VF9BUkNIXzVURUopCisvKkFSTXY1VEUgcmVxdWlyZXMgYWxsb2NhdG9ycyB0byB1c2UgYWxpZ25l
ZCBtZW1vcnkqLworI2RlZmluZSBVU0VfQVJFTkFfQUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQor
I2VuZGlmCisKKyNlbHNlCisjZGVmaW5lIFdURl9BUk1fQVJDSF9WRVJTSU9OIDAKKworI2VuZGlm
CisKKy8qIFNldCBXVEZfVEhVTUJfQVJDSF9WRVJTSU9OICovCisjaWYgICBkZWZpbmVkKF9fQVJN
X0FSQ0hfNFRfXykKKyNkZWZpbmUgV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTiAxCisKKyNlbGlmIGRl
ZmluZWQoX19BUk1fQVJDSF81VF9fKSBcCisgICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURV9f
KSBcCisgICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURUpfXykKKyNkZWZpbmUgV1RGX1RIVU1C
X0FSQ0hfVkVSU0lPTiAyCisKKyNlbGlmIGRlZmluZWQoX19BUk1fQVJDSF82Sl9fKSBcCisgICAg
fHwgZGVmaW5lZChfX0FSTV9BUkNIXzZLX18pIFwKKyAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hf
NlpfXykgXAorICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF82WktfXykgXAorICAgIHx8IGRlZmlu
ZWQoX19BUk1fQVJDSF82TV9fKQorI2RlZmluZSBXVEZfVEhVTUJfQVJDSF9WRVJTSU9OIDMKKwor
I2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzZUMl9fKSBcCisgICAgfHwgZGVmaW5lZChfX0FSTV9B
UkNIXzdfXykgXAorICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF83QV9fKSBcCisgICAgfHwgZGVm
aW5lZChfX0FSTV9BUkNIXzdLX18pIFwKKyAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN01fXykg
XAorICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF83Ul9fKSBcCisgICAgfHwgZGVmaW5lZChfX0FS
TV9BUkNIXzdTX18pCisjZGVmaW5lIFdURl9USFVNQl9BUkNIX1ZFUlNJT04gNAorCisvKiBSVkNU
IHNldHMgX19UQVJHRVRfQVJDSF9USFVNQiAqLworI2VsaWYgZGVmaW5lZChfX1RBUkdFVF9BUkNI
X1RIVU1CKQorI2RlZmluZSBXVEZfVEhVTUJfQVJDSF9WRVJTSU9OIF9fVEFSR0VUX0FSQ0hfVEhV
TUIKKworI2Vsc2UKKyNkZWZpbmUgV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTiAwCisjZW5kaWYKKwor
CisvKiBDUFUoQVJNVjVfT1JfTE9XRVIpIC0gQVJNIGluc3RydWN0aW9uIHNldCB2NSBvciBlYXJs
aWVyICovCisvKiBPbiBBUk12NSBhbmQgYmVsb3cgdGhlIG5hdHVyYWwgYWxpZ25tZW50IGlzIHJl
cXVpcmVkLiAKKyAgIEFuZCB0aGVyZSBhcmUgc29tZSBvdGhlciBkaWZmZXJlbmNlcyBmb3IgdjUg
b3IgZWFybGllci4gKi8KKyNpZiAhZGVmaW5lZChBUk1WNV9PUl9MT1dFUikgJiYgIVdURl9BUk1f
QVJDSF9BVF9MRUFTVCg2KQorI2RlZmluZSBXVEZfQ1BVX0FSTVY1X09SX0xPV0VSIDEKKyNlbmRp
ZgorCisKKy8qIENQVShBUk1fVFJBRElUSU9OQUwpIC0gVGh1bWIyIGlzIG5vdCBhdmFpbGFibGUs
IG9ubHkgdHJhZGl0aW9uYWwgQVJNICh2NCBvciBncmVhdGVyKSAqLworLyogQ1BVKEFSTV9USFVN
QjIpIC0gVGh1bWIyIGluc3RydWN0aW9uIHNldCBpcyBhdmFpbGFibGUgKi8KKy8qIE9ubHkgb25l
IG9mIHRoZXNlIHdpbGwgYmUgZGVmaW5lZC4gKi8KKyNpZiAhZGVmaW5lZChXVEZfQ1BVX0FSTV9U
UkFESVRJT05BTCkgJiYgIWRlZmluZWQoV1RGX0NQVV9BUk1fVEhVTUIyKQorIyAgaWYgZGVmaW5l
ZCh0aHVtYjIpIHx8IGRlZmluZWQoX190aHVtYjJfXykgXAorICAgIHx8ICgoZGVmaW5lZChfX3Ro
dW1iKSB8fCBkZWZpbmVkKF9fdGh1bWJfXykpICYmIFdURl9USFVNQl9BUkNIX1ZFUlNJT04gPT0g
NCkKKyMgICAgZGVmaW5lIFdURl9DUFVfQVJNX1RSQURJVElPTkFMIDAKKyMgICAgZGVmaW5lIFdU
Rl9DUFVfQVJNX1RIVU1CMiAxCisjICBlbGlmIFdURl9BUk1fQVJDSF9BVF9MRUFTVCg0KQorIyAg
ICBkZWZpbmUgV1RGX0NQVV9BUk1fVFJBRElUSU9OQUwgMQorIyAgICBkZWZpbmUgV1RGX0NQVV9B
Uk1fVEhVTUIyIDAKKyMgIGVsc2UKKyMgICAgZXJyb3IgIk5vdCBzdXBwb3J0ZWQgQVJNIGFyY2hp
dGVjdHVyZSIKKyMgIGVuZGlmCisjZWxpZiBDUFUoQVJNX1RSQURJVElPTkFMKSAmJiBDUFUoQVJN
X1RIVU1CMikgLyogU2FuaXR5IENoZWNrICovCisjICBlcnJvciAiQ2Fubm90IHVzZSBib3RoIG9m
IFdURl9DUFVfQVJNX1RSQURJVElPTkFMIGFuZCBXVEZfQ1BVX0FSTV9USFVNQjIgcGxhdGZvcm1z
IgorI2VuZGlmIC8qICFkZWZpbmVkKFdURl9DUFVfQVJNX1RSQURJVElPTkFMKSAmJiAhZGVmaW5l
ZChXVEZfQ1BVX0FSTV9USFVNQjIpICovCisKKyNpZiBkZWZpbmVkKF9fQVJNX05FT05fXykgJiYg
IWRlZmluZWQoV1RGX0NQVV9BUk1fTkVPTikKKyNkZWZpbmUgV1RGX0NQVV9BUk1fTkVPTiAxCisj
ZW5kaWYKKworI2lmIENQVShBUk1fTkVPTikKKy8qIEFsbCBORU9OIGludHJpbnNpY3MgdXNhZ2Ug
Y2FuIGJlIGRpc2FibGVkIGJ5IHRoaXMgbWFjcm8uICovCisjZGVmaW5lIEhBVkVfQVJNX05FT05f
SU5UUklOU0lDUyAxCisjZW5kaWYKKworI2lmIChkZWZpbmVkKF9fVkZQX0ZQX18pICYmICFkZWZp
bmVkKF9fU09GVEZQX18pKQorI2RlZmluZSBXVEZfQ1BVX0FSTV9WRlAgMQorI2VuZGlmCisKKy8q
IElmIENQVShBUk1fTkVPTikgaXMgbm90IGVuYWJsZWQsIHdlJ2xsIGNvbnNlcnZhdGl2ZWx5IGFz
c3VtZSBvbmx5IFZGUDIgb3IgVkZQdjNEMTYKKyAgIHN1cHBvcnQgaXMgYXZhaWxhYmxlLiBIZW5j
ZSwgb25seSB0aGUgZmlyc3QgMTYgNjQtYml0IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycworICAg
YXJlIGF2YWlsYWJsZS4gU2VlOgorICAgTkVPTiByZWdpc3RlcnM6IGh0dHA6Ly9pbmZvY2VudGVy
LmFybS5jb20vaGVscC9pbmRleC5qc3A/dG9waWM9L2NvbS5hcm0uZG9jLmR1aTA0NzNjL0NKQUNB
QkVKLmh0bWwKKyAgIFZGUDIgYW5kIFZGUDMgcmVnaXN0ZXJzOiBodHRwOi8vaW5mb2NlbnRlci5h
cm0uY29tL2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20uYXJtLmRvYy5kdWkwNDczYy9DSUhESUJE
Ry5odG1sCisgICBORU9OIHRvIFZGUCByZWdpc3RlciBtYXBwaW5nOiBodHRwOi8vaW5mb2NlbnRl
ci5hcm0uY29tL2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20uYXJtLmRvYy5kdWkwNDczYy9DSkFJ
SkhGQy5odG1sCisqLworI2lmIENQVShBUk1fTkVPTikKKyNkZWZpbmUgV1RGX0NQVV9BUk1fVkZQ
X1YzX0QzMiAxCisjZWxzZQorI2RlZmluZSBXVEZfQ1BVX0FSTV9WRlBfVjIgMQorI2VuZGlmCisK
KyNpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfN0tfXykKKyNkZWZpbmUgV1RGX0NQVV9BUFBMRV9BUk1W
N0sgMQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfN1NfXykKKyNkZWZpbmUgV1RG
X0NQVV9BUFBMRV9BUk1WN1MgMQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfRVhU
X0lESVZfXykgfHwgQ1BVKEFQUExFX0FSTVY3UykKKyNkZWZpbmUgSEFWRV9BUk1fSURJVl9JTlNU
UlVDVElPTlMgMQorI2VuZGlmCisKKyNlbmRpZiAvKiBBUk0gKi8KKworI2lmICFDUFUoS05PV04p
CisjZGVmaW5lIFdURl9DUFVfVU5LTk9XTiAxCisjZW5kaWYKKworI2lmIENQVShBUk0pIHx8IENQ
VShNSVBTKSB8fCBDUFUoVU5LTk9XTikKKyNkZWZpbmUgV1RGX0NQVV9ORUVEU19BTElHTkVEX0FD
Q0VTUyAxCisjZW5kaWYKKworI2lmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQorLyogX19MUDY0
X18gaXMgbm90IGRlZmluZWQgb24gNjRiaXQgV2luZG93cyBzaW5jZSBpdCB1c2VzIExMUDY0LiBV
c2luZyBfX1NJWkVPRl9QT0lOVEVSX18gaXMgc2ltcGxlci4gKi8KKyNpZiBfX1NJWkVPRl9QT0lO
VEVSX18gPT0gOAorI2RlZmluZSBXVEZfQ1BVX0FERFJFU1M2NCAxCisjZWxpZiBfX1NJWkVPRl9Q
T0lOVEVSX18gPT0gNAorI2RlZmluZSBXVEZfQ1BVX0FERFJFU1MzMiAxCisjZWxzZQorI2Vycm9y
ICJVbnN1cHBvcnRlZCBwb2ludGVyIHdpZHRoIgorI2VuZGlmCisjZWxpZiBDT01QSUxFUihNU1ZD
KQorI2lmIGRlZmluZWQoX1dJTjY0KQorI2RlZmluZSBXVEZfQ1BVX0FERFJFU1M2NCAxCisjZWxz
ZQorI2RlZmluZSBXVEZfQ1BVX0FERFJFU1MzMiAxCisjZW5kaWYKKyNlbHNlCisvKiBUaGlzIGlz
IHRoZSBtb3N0IGdlbmVyaWMgd2F5LiBCdXQgaW4gT1MoREFSV0lOKSwgUGxhdGZvcm0uaCBjYW4g
YmUgaW5jbHVkZWQgYnkgc2FuZGJveCBkZWZpbml0aW9uIGZpbGUgKC5zYikuCisgKiBBdCB0aGF0
IHRpbWUsIHdlIGNhbm5vdCBpbmNsdWRlICJzdGRpbnQuaCIgaGVhZGVyLiBTbyBpbiB0aGUgY2Fz
ZSBvZiBrbm93biBjb21waWxlcnMsIHdlIHVzZSBwcmVkZWZpbmVkIGNvbnN0YW50cyBpbnN0ZWFk
LiAqLworI2luY2x1ZGUgPHN0ZGludC5oPgorI2lmIFVJTlRQVFJfTUFYID4gVUlOVDMyX01BWAor
I2RlZmluZSBXVEZfQ1BVX0FERFJFU1M2NCAxCisjZWxzZQorI2RlZmluZSBXVEZfQ1BVX0FERFJF
U1MzMiAxCisjZW5kaWYKKyNlbmRpZgorCisvKiA9PT09IE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJh
dGluZyBzeXN0ZW07IG9ubHkgdG8gYmUgdXNlZCBmb3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZp
Y2VzIGxpa2UgCisgICB2aXJ0dWFsIG1lbW9yeSwgbm90IHRvIGNob29zZSBhIEdVSSB0b29sa2l0
ID09PT0gKi8KKworLyogT1MoQUlYKSAtIEFJWCAqLworI2lmZGVmIF9BSVgKKyNkZWZpbmUgV1RG
X09TX0FJWCAxCisjZW5kaWYKKworLyogT1MoREFSV0lOKSAtIEFueSBEYXJ3aW4tYmFzZWQgT1Ms
IGluY2x1ZGluZyBNYWMgT1MgWCBhbmQgaVBob25lIE9TICovCisjaWZkZWYgX19BUFBMRV9fCisj
ZGVmaW5lIFdURl9PU19EQVJXSU4gMQorCisjaW5jbHVkZSA8QXZhaWxhYmlsaXR5Lmg+CisjaW5j
bHVkZSA8QXZhaWxhYmlsaXR5TWFjcm9zLmg+CisjaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxz
Lmg+CisjZW5kaWYKKworLyogT1MoSU9TX0ZBTUlMWSkgLSBpT1MgZmFtaWx5LCBpbmNsdWRpbmcg
aU9TLCBtYWNDYXRhbHlzdCwgdHZPUywgd2F0Y2hPUyAqLworLyogT1MoSU9TKSAtIGlPUyBvbmx5
LCBub3QgaW5jbHVkaW5nIG1hY0NhdGFseXN0ICovCisvKiBPUyhNQUNfT1NfWCkgLSBtYWNPUyAo
bm90IGluY2x1ZGluZyBpT1MgZmFtaWx5KSAqLworI2lmIE9TKERBUldJTikKKyNpZiBUQVJHRVRf
T1NfSU9TICYmICEoZGVmaW5lZChUQVJHRVRfT1NfTUFDQ0FUQUxZU1QpICYmIFRBUkdFVF9PU19N
QUNDQVRBTFlTVCkKKyNkZWZpbmUgV1RGX09TX0lPUyAxCisjZW5kaWYKKyNpZiBUQVJHRVRfT1Nf
SVBIT05FCisjZGVmaW5lIFdURl9PU19JT1NfRkFNSUxZIDEKKyNlbGlmIFRBUkdFVF9PU19NQUMK
KyNkZWZpbmUgV1RGX09TX01BQ19PU19YIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qIE9TKEZSRUVC
U0QpIC0gRnJlZUJTRCAqLworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19E
cmFnb25GbHlfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCisjZGVmaW5lIFdURl9P
U19GUkVFQlNEIDEKKyNlbmRpZgorCisvKiBPUyhGVUNIU0lBKSAtIEZ1Y2hzaWEgKi8KKyNpZmRl
ZiBfX0Z1Y2hzaWFfXworI2RlZmluZSBXVEZfT1NfRlVDSFNJQSAxCisjZW5kaWYKKworLyogT1Mo
SFVSRCkgLSBHTlUvSHVyZCAqLworI2lmZGVmIF9fR05VX18KKyNkZWZpbmUgV1RGX09TX0hVUkQg
MQorI2VuZGlmCisKKy8qIE9TKExJTlVYKSAtIExpbnV4ICovCisjaWZkZWYgX19saW51eF9fCisj
ZGVmaW5lIFdURl9PU19MSU5VWCAxCisjZW5kaWYKKworLyogT1MoTkVUQlNEKSAtIE5ldEJTRCAq
LworI2lmIGRlZmluZWQoX19OZXRCU0RfXykKKyNkZWZpbmUgV1RGX09TX05FVEJTRCAxCisjZW5k
aWYKKworLyogT1MoT1BFTkJTRCkgLSBPcGVuQlNEICovCisjaWZkZWYgX19PcGVuQlNEX18KKyNk
ZWZpbmUgV1RGX09TX09QRU5CU0QgMQorI2VuZGlmCisKKy8qIE9TKFdJTkRPV1MpIC0gQW55IHZl
cnNpb24gb2YgV2luZG93cyAqLworI2lmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMy
KQorI2RlZmluZSBXVEZfT1NfV0lORE9XUyAxCisjZW5kaWYKKworI2RlZmluZSBXVEZfT1NfV0lO
IEVSUk9SICJVU0UgV0lORE9XUyBXSVRIIE9TIE5PVCBXSU4iCisjZGVmaW5lIFdURl9PU19NQUMg
RVJST1IgIlVTRSBNQUNfT1NfWCBXSVRIIE9TIE5PVCBNQUMiCisKKy8qIE9TKFVOSVgpIC0gQW55
IFVuaXgtbGlrZSBzeXN0ZW0gKi8KKyNpZiAgICBPUyhBSVgpICAgICAgICAgICAgICBcCisgICAg
fHwgT1MoREFSV0lOKSAgICAgICAgICAgXAorICAgIHx8IE9TKEZSRUVCU0QpICAgICAgICAgIFwK
KyAgICB8fCBPUyhGVUNIU0lBKSAgICAgICAgICBcCisgICAgfHwgT1MoSFVSRCkgICAgICAgICAg
ICAgXAorICAgIHx8IE9TKExJTlVYKSAgICAgICAgICAgIFwKKyAgICB8fCBPUyhORVRCU0QpICAg
ICAgICAgICBcCisgICAgfHwgT1MoT1BFTkJTRCkgICAgICAgICAgXAorICAgIHx8IGRlZmluZWQo
dW5peCkgICAgICAgIFwKKyAgICB8fCBkZWZpbmVkKF9fdW5peCkgICAgICBcCisgICAgfHwgZGVm
aW5lZChfX3VuaXhfXykKKyNkZWZpbmUgV1RGX09TX1VOSVggMQorI2VuZGlmCisKKy8qIE9wZXJh
dGluZyBlbnZpcm9ubWVudHMgKi8KKworLyogQ1BVKEJJR19FTkRJQU4pIG9yIENQVShNSURETEVf
RU5ESUFOKSBvciBuZWl0aGVyLCBhcyBhcHByb3ByaWF0ZS4gKi8KKworI2lmIENPTVBJTEVSKEdD
Q19DT01QQVRJQkxFKQorI2lmIF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfQklHX0VORElBTl9f
CisjZGVmaW5lIFdURl9DUFVfQklHX0VORElBTiAxCisjZWxpZiBfX0JZVEVfT1JERVJfXyA9PSBf
X09SREVSX0xJVFRMRV9FTkRJQU5fXworI2RlZmluZSBXVEZfQ1BVX0xJVFRMRV9FTkRJQU4gMQor
I2VsaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9QRFBfRU5ESUFOX18KKyNkZWZpbmUgV1RG
X0NQVV9NSURETEVfRU5ESUFOIDEKKyNlbHNlCisjZXJyb3IgIlVua25vd24gZW5kaWFuIgorI2Vu
ZGlmCisjZWxzZQorI2lmIE9TKFdJTkRPV1MpCisvKiBXaW5kb3dzIG9ubHkgaGF2ZSBsaXR0bGUg
ZW5kaWFuIGFyY2hpdGVjdHVyZS4gKi8KKyNkZWZpbmUgV1RGX0NQVV9MSVRUTEVfRU5ESUFOIDEK
KyNlbHNlCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaWYgX19oYXNfaW5jbHVkZSg8ZW5kaWFu
Lmg+KQorI2luY2x1ZGUgPGVuZGlhbi5oPgorI2lmIF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJ
QU4KKyNkZWZpbmUgV1RGX0NQVV9CSUdfRU5ESUFOIDEKKyNlbGlmIF9fQllURV9PUkRFUiA9PSBf
X0xJVFRMRV9FTkRJQU4KKyNkZWZpbmUgV1RGX0NQVV9MSVRUTEVfRU5ESUFOIDEKKyNlbGlmIF9f
QllURV9PUkRFUiA9PSBfX1BEUF9FTkRJQU4KKyNkZWZpbmUgV1RGX0NQVV9NSURETEVfRU5ESUFO
IDEKKyNlbHNlCisjZXJyb3IgIlVua25vd24gZW5kaWFuIgorI2VuZGlmCisjZWxzZQorI2lmIF9f
aGFzX2luY2x1ZGUoPG1hY2hpbmUvZW5kaWFuLmg+KQorI2luY2x1ZGUgPG1hY2hpbmUvZW5kaWFu
Lmg+CisjZWxzZQorI2luY2x1ZGUgPHN5cy9lbmRpYW4uaD4KKyNlbmRpZgorI2lmIEJZVEVfT1JE
RVIgPT0gQklHX0VORElBTgorI2RlZmluZSBXVEZfQ1BVX0JJR19FTkRJQU4gMQorI2VsaWYgQllU
RV9PUkRFUiA9PSBMSVRUTEVfRU5ESUFOCisjZGVmaW5lIFdURl9DUFVfTElUVExFX0VORElBTiAx
CisjZWxpZiBCWVRFX09SREVSID09IFBEUF9FTkRJQU4KKyNkZWZpbmUgV1RGX0NQVV9NSURETEVf
RU5ESUFOIDEKKyNlbHNlCisjZXJyb3IgIlVua25vd24gZW5kaWFuIgorI2VuZGlmCisjZW5kaWYK
KyNlbmRpZgorI2VuZGlmCisKKyNpZiAhQ1BVKExJVFRMRV9FTkRJQU4pICYmICFDUFUoQklHX0VO
RElBTikKKyNlcnJvciAiVW5zdXBwb3J0ZWQgZW5kaWFuIgorI2VuZGlmCisKKy8qIEV4cG9ydCBt
YWNybyBzdXBwb3J0LiBEZXRlY3RzIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmb3Igc2hhcmVk
IGxpYnJhcnkgc3ltYm9sIGV4cG9ydAorICAgZGVjb3JhdGlvbnMuICovCisjaWYgT1MoV0lORE9X
UykgfHwgKENPTVBJTEVSX0hBU19DTEFOR19ERUNMU1BFQyhkbGxpbXBvcnQpICYmIENPTVBJTEVS
X0hBU19DTEFOR19ERUNMU1BFQyhkbGxleHBvcnQpKQorI2RlZmluZSBVU0VfREVDTFNQRUNfQVRU
UklCVVRFIDEKKyNkZWZpbmUgVVNFX1ZJU0lCSUxJVFlfQVRUUklCVVRFIDAKKyNlbGlmIGRlZmlu
ZWQoX19HTlVDX18pCisjZGVmaW5lIFVTRV9ERUNMU1BFQ19BVFRSSUJVVEUgMAorI2RlZmluZSBV
U0VfVklTSUJJTElUWV9BVFRSSUJVVEUgMQorI2Vsc2UKKyNkZWZpbmUgVVNFX0RFQ0xTUEVDX0FU
VFJJQlVURSAwCisjZGVmaW5lIFVTRV9WSVNJQklMSVRZX0FUVFJJQlVURSAwCisjZW5kaWYKKwor
LyogU3RhbmRhcmQgbGlicmFyaWVzICovCisjaWYgZGVmaW5lZChIQVZFX0ZFQVRVUkVTX0gpICYm
IEhBVkVfRkVBVFVSRVNfSAorLyogSWYgdGhlIGluY2x1ZGVkIGZlYXR1cmVzLmggaXMgZ2xpYmMn
cyBvbmUsIF9fR0xJQkNfXyBpcyBkZWZpbmVkLiAqLworI2luY2x1ZGUgPGZlYXR1cmVzLmg+Cisj
ZW5kaWYKKworLyogRklYTUU6IHRoZXNlIGFyZSBhbGwgbWl4ZXMgb2YgT1MsIG9wZXJhdGluZyBl
bnZpcm9ubWVudCBhbmQgcG9saWN5IGNob2ljZXMuICovCisvKiBQTEFURk9STShHVEspICovCisv
KiBQTEFURk9STShNQUMpICovCisvKiBQTEFURk9STShJT1MpICovCisvKiBQTEFURk9STShJT1Nf
RkFNSUxZKSAqLworLyogUExBVEZPUk0oSU9TX1NJTVVMQVRPUikgKi8KKy8qIFBMQVRGT1JNKElP
U19GQU1JTFlfU0lNVUxBVE9SKSAqLworLyogUExBVEZPUk0oV0lOKSAqLworI2lmIGRlZmluZWQo
QlVJTERJTkdfR1RLX18pCisjZGVmaW5lIFdURl9QTEFURk9STV9HVEsgMQorI2VsaWYgZGVmaW5l
ZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQRSAxCisjZWxpZiBkZWZp
bmVkKEJVSUxESU5HX0pTQ09OTFlfXykKKy8qIEpTQ09ubHkgZG9lcyBub3QgcHJvdmlkZSBQTEFU
Rk9STSgpIG1hY3JvICovCisjZWxpZiBPUyhNQUNfT1NfWCkKKyNkZWZpbmUgV1RGX1BMQVRGT1JN
X01BQyAxCisjZWxpZiBPUyhJT1NfRkFNSUxZKQorI2lmIE9TKElPUykKKyNkZWZpbmUgV1RGX1BM
QVRGT1JNX0lPUyAxCisjZW5kaWYKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkgMQor
I2lmIFRBUkdFVF9PU19TSU1VTEFUT1IKKyNpZiBPUyhJT1MpCisjZGVmaW5lIFdURl9QTEFURk9S
TV9JT1NfU0lNVUxBVE9SIDEKKyNlbmRpZgorI2RlZmluZSBXVEZfUExBVEZPUk1fSU9TX0ZBTUlM
WV9TSU1VTEFUT1IgMQorI2VuZGlmCisjaWYgZGVmaW5lZChUQVJHRVRfT1NfTUFDQ0FUQUxZU1Qp
ICYmIFRBUkdFVF9PU19NQUNDQVRBTFlTVAorI2RlZmluZSBXVEZfUExBVEZPUk1fTUFDQ0FUQUxZ
U1QgMQorI2VuZGlmCisjZWxpZiBPUyhXSU5ET1dTKQorI2RlZmluZSBXVEZfUExBVEZPUk1fV0lO
IDEKKyNlbmRpZgorCisvKiBQTEFURk9STShDT0NPQSkgKi8KKyNpZiBQTEFURk9STShNQUMpIHx8
IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIFdURl9QTEFURk9STV9DT0NPQSAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBf
X2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCisjZGVmaW5lIFVTRV9BUFBM
RV9JTlRFUk5BTF9TREsgMQorI2VuZGlmCisjZW5kaWYKKworLyogUExBVEZPUk0oQVBQTEVUVikg
Ki8KKyNpZiBkZWZpbmVkKFRBUkdFVF9PU19UVikgJiYgVEFSR0VUX09TX1RWCisjZGVmaW5lIFdU
Rl9QTEFURk9STV9BUFBMRVRWIDEKKyNlbmRpZgorCisvKiBQTEFURk9STShXQVRDSE9TKSAqLwor
I2lmIGRlZmluZWQoVEFSR0VUX09TX1dBVENIKSAmJiBUQVJHRVRfT1NfV0FUQ0gKKyNkZWZpbmUg
V1RGX1BMQVRGT1JNX1dBVENIT1MgMQorI2VuZGlmCisKKy8qIEdyYXBoaWNzIGVuZ2luZXMgKi8K
KworLyogVVNFKENHKSBhbmQgUExBVEZPUk0oQ0kpICovCisjaWYgUExBVEZPUk0oQ09DT0EpCisj
ZGVmaW5lIFVTRV9DRyAxCisjZGVmaW5lIFVTRV9DQSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQorI2RlZmluZSBVU0VfR0xJQiAxCisjZGVmaW5lIFVTRV9G
UkVFVFlQRSAxCisjZGVmaW5lIFVTRV9IQVJGQlVaWiAxCisjZGVmaW5lIFVTRV9TT1VQIDEKKyNk
ZWZpbmUgVVNFX1dFQlAgMQorI2RlZmluZSBVU0VfRklMRV9MT0NLIDEKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oR1RLKQorI2RlZmluZSBHTElCX1ZFUlNJT05fTUlOX1JFUVVJUkVEIEdMSUJfVkVS
U0lPTl8yXzM2CisjZGVmaW5lIEdES19WRVJTSU9OX01JTl9SRVFVSVJFRCBHREtfVkVSU0lPTl8z
XzYKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorI2RlZmluZSBHTElCX1ZFUlNJT05fTUlO
X1JFUVVJUkVEIEdMSUJfVkVSU0lPTl8yXzQwCisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2Rl
ZmluZSBTT1VQX1ZFUlNJT05fTUlOX1JFUVVJUkVEIFNPVVBfVkVSU0lPTl8yXzQyCisjZW5kaWYK
KworLyogT24gV2luZG93cywgdXNlIFF1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyIGJ5IGRlZmF1bHQg
Ki8KKyNpZiBPUyhXSU5ET1dTKQorI2RlZmluZSBVU0VfUVVFUllfUEVSRk9STUFOQ0VfQ09VTlRF
UiAgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2RlZmluZSBIQVZFX09VVF9P
Rl9QUk9DRVNTX0xBWUVSX0hPU1RJTkcgMQorI2RlZmluZSBVU0VfQ0YgMQorI2RlZmluZSBVU0Vf
RklMRV9MT0NLIDEKKyNkZWZpbmUgVVNFX0ZPVU5EQVRJT04gMQorI2RlZmluZSBVU0VfTkVUV09S
S19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0sgMQorCisvKiBDb2NvYSBkZWZpbmVzIGEgc2VyaWVzIG9m
IHBsYXRmb3JtIG1hY3JvcyBmb3IgZGVidWdnaW5nLiAqLworLyogU29tZSBvZiB0aGVtIGFyZSBy
ZWFsbHkgYW5ub3lpbmcgYmVjYXVzZSB0aGV5IHVzZSBjb21tb24gbmFtZXMgKGUuZy4gY2hlY2so
KSkuICovCisvKiBEaXNhYmxlIHRob3NlIG1hY3JvcyBzbyB0aGF0IHdlIGFyZSBub3QgbGltaXRl
ZCBpbiBob3cgd2UgbmFtZSBtZXRob2RzIGFuZCBmdW5jdGlvbnMuICovCisjdW5kZWYgX19BU1NF
UlRfTUFDUk9TX0RFRklORV9WRVJTSU9OU19XSVRIT1VUX1VOREVSU0NPUkVTCisjZGVmaW5lIF9f
QVNTRVJUX01BQ1JPU19ERUZJTkVfVkVSU0lPTlNfV0lUSE9VVF9VTkRFUlNDT1JFUyAwCisKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjZGVmaW5lIEhBVkVfUlVOTE9PUF9USU1FUiAx
CisjZGVmaW5lIEhBVkVfU0VDX0tFWUNIQUlOIDEKKyNkZWZpbmUgSEFWRV9ISVNFUlZJQ0VTIDEK
KyNkZWZpbmUgVVNFX0FQUEtJVCAxCisjZGVmaW5lIFVTRV9QQVNTS0lUIDEKKworI2lmIENQVShY
ODZfNjQpCisjZGVmaW5lIEhBVkVfTkVUV09SS19FWFRFTlNJT04gMQorI2RlZmluZSBVU0VfUExV
R0lOX0hPU1RfUFJPQ0VTUyAxCisjZW5kaWYKKyNlbmRpZiAvKiBQTEFURk9STShNQUMpICovCisK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjZGVmaW5lIEhBVkVfTkVUV09SS19FWFRFTlNJ
T04gMQorI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKKyNkZWZpbmUgVVNFX1VJS0lUX0VESVRJTkcg
MQorI2RlZmluZSBVU0VfV0VCX1RIUkVBRCAxCisKKyNpZiBDUFUoQVJNNjQpCisjZGVmaW5lIEVO
QUJMRV9KSVRfQ09OU1RBTlRfQkxJTkRJTkcgMAorI2VuZGlmCisKKyNpZiBDUFUoQVJNX05FT04p
CisjdW5kZWYgSEFWRV9BUk1fTkVPTl9JTlRSSU5TSUNTCisjZGVmaW5lIEhBVkVfQVJNX05FT05f
SU5UUklOU0lDUyAwCisjZW5kaWYKKworI2VuZGlmIC8qIFBMQVRGT1JNKElPU19GQU1JTFkpICov
CisKKyNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCisjaWYgUExBVEZPUk0oQ09DT0Ep
IHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisjZGVm
aW5lIEhBVkVfQUNDRVNTSUJJTElUWSAxCisjZW5kaWYKKyNlbmRpZiAvKiAhZGVmaW5lZChIQVZF
X0FDQ0VTU0lCSUxJVFkpICovCisKKy8qIEZJWE1FOiBSZW1vdmUgYWZ0ZXIgQ01ha2UgYnVpbGQg
ZW5hYmxlZCBvbiBEYXJ3aW4gKi8KKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5lIEhBVkVfRVJSTk9f
SCAxCisjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxCisjZGVmaW5lIEhBVkVfTE9DQUxUSU1FX1Ig
MQorI2RlZmluZSBIQVZFX01NQVAgMQorI2RlZmluZSBIQVZFX1JFR0VYX0ggMQorI2RlZmluZSBI
QVZFX1NJR05BTF9IIDEKKyNkZWZpbmUgSEFWRV9TVEFUX0JJUlRIVElNRSAxCisjZGVmaW5lIEhB
VkVfU1RSSU5HU19IIDEKKyNkZWZpbmUgSEFWRV9TVFJOU1RSIDEKKyNkZWZpbmUgSEFWRV9TWVNf
UEFSQU1fSCAxCisjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxIAorI2RlZmluZSBIQVZFX1RNX0dN
VE9GRiAxCisjZGVmaW5lIEhBVkVfVE1fWk9ORSAxCisjZGVmaW5lIEhBVkVfVElNRUdNIDEKKyNk
ZWZpbmUgSEFWRV9QVEhSRUFEX01BSU5fTlAgMQorCisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFS
TTY0KQorI2RlZmluZSBIQVZFX0lOVDEyOF9UIDEKKyNlbmRpZgorI2VuZGlmIC8qIE9TKERBUldJ
TikgKi8KKworI2lmIE9TKFVOSVgpCisjZGVmaW5lIFVTRV9QVEhSRUFEUyAxCisjZW5kaWYgLyog
T1MoVU5JWCkgKi8KKworI2lmIE9TKFVOSVgpICYmICFPUyhGVUNIU0lBKQorI2RlZmluZSBIQVZF
X1JFU09VUkNFX0ggMQorI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU0NIRURQQVJBTSAxCisjZW5k
aWYKKworI2lmIE9TKERBUldJTikKKyNkZWZpbmUgSEFWRV9ESVNQQVRDSF9IIDEKKyNkZWZpbmUg
SEFWRV9NQURWX0ZSRUUgMQorI2RlZmluZSBIQVZFX01BRFZfRlJFRV9SRVVTRSAxCisjZGVmaW5l
IEhBVkVfTUFEVl9ET05UTkVFRCAxCisjZGVmaW5lIEhBVkVfTUVSR0VTT1JUIDEKKyNkZWZpbmUg
SEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQorI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKKyNkZWZp
bmUgSEFWRV9TWVNfVElNRUJfSCAxCisjZGVmaW5lIEhBVkVfQVVESVRfVE9LRU4gMQorCisjaWYg
X19oYXNfaW5jbHVkZSg8bWFjaC9tYWNoX2V4Yy5kZWZzPikgJiYgIVBMQVRGT1JNKEdUSykKKyNk
ZWZpbmUgSEFWRV9NQUNIX0VYQ0VQVElPTlMgMQorI2VuZGlmCisKKyNpZiAhUExBVEZPUk0oR1RL
KQorI2RlZmluZSBVU0VfQUNDRUxFUkFURSAxCisjZW5kaWYKKyNpZiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyNkZWZpbmUgSEFWRV9IT1NURURfQ09SRV9BTklNQVRJT04gMQorI2VuZGlmCisKKyNl
bmRpZiAvKiBPUyhEQVJXSU4pICovCisKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKEZVQ0hTSUEpIHx8
ICgoT1MoRlJFRUJTRCkgfHwgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19CSU9OSUNf
XykpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNKSB8fCBDUFUoQVJNNjQp
IHx8IENQVShNSVBTKSkpCisjZGVmaW5lIEhBVkVfTUFDSElORV9DT05URVhUIDEKKyNlbmRpZgor
CisjaWYgT1MoREFSV0lOKSB8fCAoT1MoTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSAmJiAh
ZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhQ1BVKE1JUFMpKQorI2RlZmluZSBIQVZFX0JBQ0tUUkFD
RSAxCisjZW5kaWYKKworI2lmIE9TKERBUldJTikgfHwgT1MoTElOVVgpCisjaWYgUExBVEZPUk0o
R1RLKQorI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAh
Q1BVKE1JUFMpCisjZGVmaW5lIEhBVkVfQkFDS1RSQUNFX1NZTUJPTFMgMQorI2VuZGlmCisjZW5k
aWYgLyogUExBVEZPUk0oR1RLKSAqLworI2RlZmluZSBIQVZFX0RMQUREUiAxCisjZW5kaWYgLyog
T1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgKi8KKworCisvKiBFTkFCTEUgbWFjcm8gZGVmYXVsdHMg
Ki8KKworLyogRklYTUU6IG1vdmUgb3V0IGFsbCBFTkFCTEUoKSBkZWZpbmVzIGZyb20gaGVyZSB0
byBGZWF0dXJlRGVmaW5lcy5oICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBf
X2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbFBsYXRmb3JtLmg+KQorI2lu
Y2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsUGxhdGZvcm0uaD4KKyNlbmRpZgorCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRp
b25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlv
bnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+CisjZW5kaWYKKworLyogSW5jbHVkZSBmZWF0
dXJlIG1hY3JvcyAqLworI2luY2x1ZGUgPHd0Zi9GZWF0dXJlRGVmaW5lcy5oPgorCisjaWYgT1Mo
V0lORE9XUykKKyNkZWZpbmUgVVNFX1NZU1RFTV9NQUxMT0MgMQorI2VuZGlmCisKKyNpZiBDUFUo
QUREUkVTUzY0KQorI2lmIE9TKERBUldJTikgJiYgQ1BVKEFSTTY0KQorI2RlZmluZSBXVEZfQ1BV
X0VGRkVDVElWRV9BRERSRVNTX1dJRFRIIDM2CisjZWxzZQorLyogV2Ugc3Ryb25nbHkgYXNzdW1l
IHRoYXQgZWZmZWN0aXZlIGFkZHJlc3Mgd2lkdGggaXMgPD0gNDggaW4gNjRiaXQgYXJjaGl0ZWN0
dXJlcyAoZS5nLiBOYU4gYm94aW5nKS4gKi8KKyNkZWZpbmUgV1RGX0NQVV9FRkZFQ1RJVkVfQURE
UkVTU19XSURUSCA0OAorI2VuZGlmCisjZWxzZQorI2RlZmluZSBXVEZfQ1BVX0VGRkVDVElWRV9B
RERSRVNTX1dJRFRIIDMyCisjZW5kaWYKKworI2lmICFkZWZpbmVkKFVTRV9KU1ZBTFVFNjQpICYm
ICFkZWZpbmVkKFVTRV9KU1ZBTFVFMzJfNjQpCisjaWYgQ1BVKEFERFJFU1M2NCkgfHwgQ1BVKEFS
TTY0KQorI2RlZmluZSBVU0VfSlNWQUxVRTY0IDEKKyNlbHNlCisjZGVmaW5lIFVTRV9KU1ZBTFVF
MzJfNjQgMQorI2VuZGlmCisjZW5kaWYgLyogIWRlZmluZWQoVVNFX0pTVkFMVUU2NCkgJiYgIWRl
ZmluZWQoVVNFX0pTVkFMVUUzMl82NCkgKi8KKworLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRl
ZmF1bHQgb24gYWxsIHg4Ni02NCAmIEFSTTY0IHBsYXRmb3Jtcy4gKi8KKyNpZiAhZGVmaW5lZChF
TkFCTEVfSklUKSBcCisgICAgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpIFwKKyAgICAm
JiAhQ1BVKEFQUExFX0FSTVY3SykKKyNkZWZpbmUgRU5BQkxFX0pJVCAxCisjZW5kaWYKKworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYm
IE9TKExJTlVYKQorLyogT24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFi
bGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9K
SVQpCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlmCisjZWxzZQorLyogRGlzYWJsZSBKSVQg
YW5kIGZvcmNlIENfTE9PUCBvbiBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0dXJlcy4gKi8KKyN1
bmRlZiBFTkFCTEVfSklUCisjZGVmaW5lIEVOQUJMRV9KSVQgMAorI3VuZGVmIEVOQUJMRV9DX0xP
T1AKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NfTE9PUCkKKyNpZiBFTkFCTEUoSklUKSBcCisgICAgfHwgQ1BVKFg4Nl82NCkg
fHwgKENQVShBUk02NCkgJiYgIWRlZmluZWQoX19JTFAzMl9fKSkKKyNkZWZpbmUgRU5BQkxFX0Nf
TE9PUCAwCisjZWxzZQorI2RlZmluZSBFTkFCTEVfQ19MT09QIDEKKyNlbmRpZgorI2VuZGlmCisK
Ky8qIFRoZSBGVEwgKmRvZXMgbm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMuIERpc2FibGUg
aXQgZXZlbiBpZiBzb21lb25lIGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KKyNpZiBVU0UoSlNW
QUxVRTMyXzY0KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklU
IDAKKyNlbmRpZgorCisvKiBUaGUgRlRMIGlzIGRpc2FibGVkIG9uIHRoZSBpT1Mgc2ltdWxhdG9y
LCBtb3N0bHkgZm9yIHNpbXBsaWNpdHkuICovCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1V
TEFUT1IpCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAor
I2VuZGlmCisKKy8qIElmIHBvc3NpYmxlLCB0cnkgdG8gZW5hYmxlIGEgZGlzYXNzZW1ibGVyLiBU
aGlzIGlzIG9wdGlvbmFsLiBXZSBwcm9jZWVkIGluIHR3bworICAgc3RlcHM6IGZpcnN0IHdlIHRy
eSB0byBmaW5kIHNvbWUgZGlzYXNzZW1ibGVyIHRoYXQgd2UgY2FuIHVzZSwgYW5kIHRoZW4gd2UK
KyAgIGRlY2lkZSBpZiB0aGUgaGlnaC1sZXZlbCBkaXNhc3NlbWJsZXIgQVBJIGNhbiBiZSBlbmFi
bGVkLiAqLworI2lmICFkZWZpbmVkKFVTRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQVShY
ODZfNjQpICYmICFVU0UoQ0FQU1RPTkUpCisjZGVmaW5lIFVTRV9VRElTODYgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChVU0VfQVJNNjRfRElTQVNTRU1CTEVSKSAmJiBFTkFCTEUoSklUKSAmJiBD
UFUoQVJNNjQpICYmICFVU0UoQ0FQU1RPTkUpCisjZGVmaW5lIFVTRV9BUk02NF9ESVNBU1NFTUJM
RVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1CTEVSKSAmJiAoVVNF
KFVESVM4NikgfHwgVVNFKEFSTTY0X0RJU0FTU0VNQkxFUikgfHwgKEVOQUJMRShKSVQpICYmIFVT
RShDQVBTVE9ORSkpKQorI2RlZmluZSBFTkFCTEVfRElTQVNTRU1CTEVSIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpCisvKiBFbmFibGUgdGhl
IERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQuICovCisjaWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERB
UldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRP
V1MpKQorI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCisjZW5kaWYKKy8qIEVuYWJsZSB0aGUgREZH
IEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAq
LworI2lmIChDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPU19G
QU1JTFkpIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkKKyNkZWZpbmUgRU5BQkxFX0RGR19K
SVQgMQorI2VuZGlmCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gTUlQUy4gKi8KKyNpZiBDUFUo
TUlQUykKKyNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQorI2VuZGlmCisjZW5kaWYKKworLyogQ29u
Y3VycmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVzZSBpdCByZXF1
aXJlcyB0aGF0CisgICB2YWx1ZXMgZ2V0IHN0b3JlZCB0byBhdG9taWNhbGx5LiBUaGlzIGlzIHRy
aXZpYWxseSB0cnVlIG9uIDY0LWJpdCBwbGF0Zm9ybXMsCisgICBidXQgbm90IHRydWUgYXQgYWxs
IG9uIDMyLWJpdCBwbGF0Zm9ybXMgd2hlcmUgdmFsdWVzIGFyZSBjb21wb3NlZCBvZiB0d28KKyAg
IHNlcGFyYXRlIHN1Yi12YWx1ZXMuICovCisjaWYgRU5BQkxFKEpJVCkgJiYgVVNFKEpTVkFMVUU2
NCkKKyNkZWZpbmUgRU5BQkxFX0NPTkNVUlJFTlRfSlMgMQorI2VuZGlmCisKKyNpZiBfX2hhc19p
bmNsdWRlKDxTeXN0ZW0vcHRocmVhZF9tYWNoZGVwLmg+KQorI2RlZmluZSBIQVZFX0ZBU1RfVExT
IDEKKyNlbmRpZgorCisjaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmIEhBVkUoRkFT
VF9UTFMpCisjZGVmaW5lIEVOQUJMRV9GQVNUX1RMU19KSVQgMQorI2VuZGlmCisKKyNpZiBDUFUo
WDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSB8fCBD
UFUoTUlQUykKKyNkZWZpbmUgRU5BQkxFX01BU01fUFJPQkUgMQorI2Vsc2UKKyNkZWZpbmUgRU5B
QkxFX01BU01fUFJPQkUgMAorI2VuZGlmCisKKyNpZiAhRU5BQkxFKEpJVCkKKyN1bmRlZiBFTkFC
TEVfTUFTTV9QUk9CRQorI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAwCisjZW5kaWYKKworLyog
SWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIg
dGllcnMgYXMgd2VsbC4KKyAgIFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBpcyBhbHNvIHJl
cXVpcmVkIGZvciBzdXBwb3J0aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KKyNpZiAhRU5BQkxFKEpJ
VCkgfHwgIUVOQUJMRShNQVNNX1BST0JFKQorI3VuZGVmIEVOQUJMRV9ERkdfSklUCisjdW5kZWYg
RU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMAorI2RlZmluZSBFTkFCTEVf
RlRMX0pJVCAwCisjZW5kaWYKKworLyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwg
dGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGw6ICovCisjaWYgIUVOQUJMRShERkdfSklU
KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRp
ZgorCisvKiBUaGlzIGNvbnRyb2xzIHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBm
b3IgRlRMIEpJVCBhbmQgV2ViQXNzZW1ibHkgKi8KKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyNkZWZp
bmUgRU5BQkxFX0IzX0pJVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJBU1NF
TUJMWSkKKyNpZiBFTkFCTEUoQjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkgJiYgQ1BVKEFERFJF
U1M2NCkKKyNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZIDEKKyNlbHNlCisjZGVmaW5lIEVOQUJM
RV9XRUJBU1NFTUJMWSAwCisjZW5kaWYKKyNlbmRpZgorCisvKiBUaGUgU2FtcGxpbmdQcm9maWxl
ciBpcyB0aGUgcHJvYmFiaWxpc3RpYyBhbmQgbG93LW92ZXJoZWFkIHByb2ZpbGVyIHVzZWQgYnkK
KyAqIEpTQyB0byBtZWFzdXJlIHdoZXJlIHRpbWUgaXMgc3BlbnQgaW5zaWRlIGEgSmF2YVNjcmlw
dCBwcm9ncmFtLgorICogSW4gY29uZmlndXJhdGlvbnMgb3RoZXIgdGhhbiBXaW5kb3dzIGFuZCBE
YXJ3aW4sIGJlY2F1c2UgbGF5b3V0IG9mIG1jb250ZXh0X3QgZGVwZW5kcyBvbiBzdGFuZGFyZCBs
aWJyYXJpZXMgKGxpa2UgZ2xpYmMpLAorICogc2FtcGxpbmcgcHJvZmlsZXIgaXMgZW5hYmxlZCBp
ZiBXZWJLaXQgdXNlcyBwdGhyZWFkcyBhbmQgZ2xpYmMuICovCisjaWYgIWRlZmluZWQoRU5BQkxF
X1NBTVBMSU5HX1BST0ZJTEVSKQorI2lmICFFTkFCTEUoQ19MT09QKSAmJiAoT1MoV0lORE9XUykg
fHwgSEFWRShNQUNISU5FX0NPTlRFWFQpKQorI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklM
RVIgMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDAKKyNlbmRpZgor
I2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhU
KQorI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkgMQorI2VuZGlmCisKKy8q
IENvdW50cyB1c2VzIG9mIHdyaXRlIGJhcnJpZXJzIHVzaW5nIHNhbXBsaW5nIGNvdW50ZXJzLiBC
ZSBzdXJlIHRvIGFsc28KKyAgIHNldCBFTkFCTEVfU0FNUExJTkdfQ09VTlRFUlMgdG8gMS4gKi8K
KyNpZiAhZGVmaW5lZChFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCisjZGVmaW5lIEVO
QUJMRV9XUklURV9CQVJSSUVSX1BST0ZJTElORyAwCisjZW5kaWYKKworLyogTG9ncyBhbGwgYWxs
b2NhdGlvbi1yZWxhdGVkIGFjdGl2aXR5IHRoYXQgZ29lcyB0aHJvdWdoIGZhc3RNYWxsb2Mgb3Ig
dGhlCisgICBKU0MgR0MgKGJvdGggY2VsbHMgYW5kIGJ1dHRlcmZsaWVzKS4gQWxzbyBsb2dzIG1h
cmtpbmcuIE5vdGUgdGhhdCB0aGlzCisgICBpc24ndCBhIGNvbXBsZXRlbHkgYWNjdXJhdGUgdmll
dyBvZiB0aGUgaGVhcCBzaW5jZSBpdCBkb2Vzbid0IGluY2x1ZGUgYWxsCisgICBidXR0ZXJmbHkg
cmVzaXplIG9wZXJhdGlvbnMsIGRvZXNuJ3QgdGVsbCB5b3Ugd2hhdCBpcyBnb2luZyBvbiB3aXRo
IHdlYWsKKyAgIHJlZmVyZW5jZXMgKG90aGVyIHRoYW4gdG8gdGVsbCB5b3Ugd2hlbiB0aGV5J3Jl
IG1hcmtlZCksIGFuZCBkb2Vzbid0CisgICB0cmFjayBkaXJlY3QgbW1hcCgpIGFsbG9jYXRpb25z
IG9yIHRoaW5ncyBsaWtlIEpJVCBhbGxvY2F0aW9uLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9B
TExPQ0FUSU9OX0xPR0dJTkcpCisjZGVmaW5lIEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcgMAor
I2VuZGlmCisKKy8qIEVuYWJsZSB2ZXJpZmljYXRpb24gdGhhdCB0aGF0IHJlZ2lzdGVyIGFsbG9j
YXRpb25zIGFyZSBub3QgbWFkZSB3aXRoaW4gZ2VuZXJhdGVkIGNvbnRyb2wgZmxvdy4KKyAgIFR1
cm5lZCBvbiBmb3IgZGVidWcgYnVpbGRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfUkVH
SVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKSAmJiBFTkFCTEUoREZHX0pJVCkKKyNpZiAhZGVm
aW5lZChOREVCVUcpCisjZGVmaW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJ
REFUSU9OIDEKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9W
QUxJREFUSU9OIDAKKyNlbmRpZgorI2VuZGlmCisKKy8qIENvbmZpZ3VyZSB0aGUgSklUICovCisj
aWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgSlNDX0hPU1RfQ0FMTCBfX2Zh
c3RjYWxsCisjZWxpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKKyNkZWZp
bmUgSlNDX0hPU1RfQ0FMTCBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQorI2Vsc2UKKyNkZWZp
bmUgSlNDX0hPU1RfQ0FMTAorI2VuZGlmCisKKyNpZiBDUFUoWDg2KSAmJiBPUyhXSU5ET1dTKQor
I2RlZmluZSBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTCAxCisjaWZuZGVmIENERUNMCisj
aWYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgQ0RFQ0wgX19jZGVjbAorI2Vsc2UKKyNkZWZpbmUg
Q0RFQ0wgX19hdHRyaWJ1dGVfXyAoKF9fY2RlY2wpKQorI2VuZGlmCisjZW5kaWYKKyNlbHNlCisj
ZGVmaW5lIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMIDAKKyNlbmRpZgorCisjaWYgQ1BV
KFg4NikKKyNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0ZBU1RDQUxMX0NBTExJTkdfQ09O
VkVOVElPTiAxCisjaWZuZGVmIEZBU1RDQUxMCisjaWYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUg
RkFTVENBTEwgX19mYXN0Y2FsbAorI2Vsc2UKKyNkZWZpbmUgRkFTVENBTEwgIF9fYXR0cmlidXRl
X18gKChmYXN0Y2FsbCkpCisjZW5kaWYKKyNlbmRpZgorI2Vsc2UKKyNkZWZpbmUgV1RGX0NPTVBJ
TEVSX1NVUFBPUlRTX0ZBU1RDQUxMX0NBTExJTkdfQ09OVkVOVElPTiAwCisjZW5kaWYKKworI2lm
IEVOQUJMRShKSVQpICYmIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMCisjZGVmaW5lIEpJ
VF9PUEVSQVRJT04gQ0RFQ0wKKyNlbHNlCisjZGVmaW5lIEpJVF9PUEVSQVRJT04KKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAmJiAoIUVOQUJMRShGQVNU
X0pJVF9QRVJNSVNTSU9OUykgfHwgIUNQVShBUk02NEUpKQorI2RlZmluZSBFTkFCTEVfU0VQQVJB
VEVEX1dYX0hFQVAgMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDAK
KyNlbmRpZgorCisvKiBDb25maWd1cmUgdGhlIGludGVycHJldGVyICovCisjaWYgQ09NUElMRVIo
R0NDX0NPTVBBVElCTEUpCisjZGVmaW5lIEhBVkVfQ09NUFVURURfR09UTyAxCisjZW5kaWYKKwor
LyogRGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZW5hYmxlIENvbXB1dGVkIEdvdG8gT3Bjb2RlcyBv
ciBub3Q6ICovCisjaWYgSEFWRShDT01QVVRFRF9HT1RPKSB8fCAhRU5BQkxFKENfTE9PUCkKKyNk
ZWZpbmUgRU5BQkxFX0NPTVBVVEVEX0dPVE9fT1BDT0RFUyAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKFVTRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQpICYmICFFTkFCTEUoQ19MT09QKSAmJiAh
Q09NUElMRVIoTVNWQykgJiYgXAorICAgIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lOKSkpCisvKiBUaGlzIGZlYXR1
cmUgd29ya3MgYnkgZW1iZWRkaW5nIHRoZSBPcGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3QgYmVm
b3JlIHRoZSBnZW5lcmF0ZWQgTExpbnQgY29kZQorICAgdGhhdCBleGVjdXRlcyBlYWNoIG9wY29k
ZS4gSXQgY2Fubm90IGJlIHN1cHBvcnRlZCBieSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBubyB3
YXkgdG8gZW1iZWQgdGhlCisgICBPcGNvZGVJRCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRjaCBz
dGF0ZW1lbnQgY2FzZXMuIEl0IGlzIGFsc28gY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBmb3Ig
TVNWQy4KKyovCisjZGVmaW5lIFVTRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQgMQorI2VuZGlm
CisKKy8qIFVzZSBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcygxKSB0byBnZXQgQ2FsbEZyYW1lKiAq
LworI2lmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiAoQ1BVKEFSTTY0KSB8fCBDUFUoWDg2
XzY0KSkKKyNkZWZpbmUgVVNFX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCisjZW5kaWYKKworLyog
UmVndWxhciBFeHByZXNzaW9uIFRyYWNpbmcgLSBTZXQgdG8gMSB0byB0cmFjZSBSZWdFeHAncyBp
biBqc2MuICBSZXN1bHRzIGR1bXBlZCBhdCBleGl0ICovCisjZGVmaW5lIEVOQUJMRV9SRUdFWFBf
VFJBQ0lORyAwCisKKy8qIFlldCBBbm90aGVyIFJlZ2V4IFJ1bnRpbWUgLSB0dXJuZWQgb24gYnkg
ZGVmYXVsdCBmb3IgSklUIGVuYWJsZWQgcG9ydHMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1lB
UlJfSklUKSAmJiBFTkFCTEUoSklUKQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVQgMQorCisvKiBT
ZXR0aW5nIHRoaXMgZmxhZyBjb21wYXJlcyBKSVQgcmVzdWx0cyB3aXRoIGludGVycHJldGVyIHJl
c3VsdHMuICovCisjZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9ERUJVRyAwCisjZW5kaWYKKworI2lm
IEVOQUJMRShZQVJSX0pJVCkKKyNpZiBDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1Mo
V0lORE9XUykpCisvKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2
ZSBuZXN0ZWQgcGFyZW50aGVzaXMgYW5kIGJhY2sgcmVmZXJlbmNlcy4gKi8KKyNkZWZpbmUgRU5B
QkxFX1lBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMgMQorI2RlZmluZSBFTkFCTEVfWUFS
Ul9KSVRfQkFDS1JFRkVSRU5DRVMgMQorI2VuZGlmCisjZW5kaWYKKworLyogSWYgZWl0aGVyIHRo
ZSBKSVQgb3IgdGhlIFJlZ0V4cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11
c3QgYmUKKyAgIGVuYWJsZWQgYXMgd2VsbDogKi8KKyNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUo
WUFSUl9KSVQpIHx8ICFFTkFCTEUoQ19MT09QKQorI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxF
UikgJiYgIUVOQUJMRV9BU1NFTUJMRVIKKyNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklUIG9y
IFJlZ0V4cCBKSVQgd2l0aG91dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgorI2Vsc2UKKyN1bmRl
ZiBFTkFCTEVfQVNTRU1CTEVSCisjZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQorI2VuZGlmCisj
ZW5kaWYKKworLyogSWYgdGhlIERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3Nl
bWJsZXIgbXVzdCBiZSBlbmFibGVkIGFzIHdlbGw6ICovCisjaWYgRU5BQkxFKERJU0FTU0VNQkxF
UikKKyNpZiBkZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCisj
ZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5nIHRo
ZSBBc3NlbWJsZXIiCisjZWxzZQorI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKKyNkZWZpbmUgRU5B
QkxFX0FTU0VNQkxFUiAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBBU1NFUlRfRU5BQkxFRCBzaG91
bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIHVuaXQgdG8KKyAg
IGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5jb25kaXRpb25hbGx5IChlLmcuIHRyZWF0IGEg
ZGVidWcgQVNTRVJUCisgICBsaWtlIGEgUkVMRUFTRV9BU1NFUlQuCisqLworI2lmbmRlZiBBU1NF
UlRfRU5BQkxFRAorI2lmZGVmIE5ERUJVRworI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAwCisjZWxz
ZQorI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCisjZW5kaWYKKyNlbmRpZgorCisjaWZuZGVmIEVO
QUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OCisjZGVmaW5lIEVOQUJMRV9FWENFUFRJ
T05fU0NPUEVfVkVSSUZJQ0FUSU9OIEFTU0VSVF9FTkFCTEVECisjZW5kaWYKKworI2lmIEVOQUJM
RShERkdfSklUKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQ
VShBUk02NCkpCisjZGVmaW5lIEVOQUJMRV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQorI2VuZGlm
CisKKy8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVf
Q1NTX1NFTEVDVE9SX0pJVCkKKyNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BV
KEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpKSkgJiYgRU5BQkxFKEpJVCkgJiYg
KE9TKERBUldJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQorI2RlZmluZSBF
TkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCAxCisjZWxzZQorI2RlZmluZSBFTkFCTEVfQ1NTX1NFTEVD
VE9SX0pJVCAwCisjZW5kaWYKKyNlbmRpZgorCisjaWYgQ1BVKEFSTTY0RSkgJiYgT1MoREFSV0lO
KQorI2RlZmluZSBIQVZFX0ZKQ1ZUWlNfSU5TVFJVQ1RJT04gMQorI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShJT1MpCisjZGVmaW5lIEhBVkVfQVBQX0xJTktTIDEKKyNkZWZpbmUgVVNFX1BBU1NLSVQg
MQorI2RlZmluZSBVU0VfUVVJQ0tfTE9PSyAxCisjZGVmaW5lIFVTRV9TWVNURU1fUFJFVklFVyAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRB
TFlTVCkKKyNkZWZpbmUgSEFWRV9DRUxFU1RJQUwgMQorI2RlZmluZSBIQVZFX0NPUkVfQU5JTUFU
SU9OX1JFTkRFUl9TRVJWRVIgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShBUFBMRVRWKQorI2RlZmluZSBI
QVZFX1BBUkVOVEFMX0NPTlRST0xTX1dJVEhfVU5CTE9DS19IQU5ETEVSIDEKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisKKyNkZWZpbmUgVVNFX0FWRk9VTkRBVElPTiAxCisjZGVmaW5l
IFVTRV9QUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0sgMQorCisjaWYgIVBMQVRGT1JNKFdB
VENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisj
ZGVmaW5lIEVOQUJMRV9EQVRBX0RFVEVDVElPTiAxCisjZW5kaWYKKworLyogRklYTUU6IEVuYWJs
ZSBIQVZFX1BBUkVOVEFMX0NPTlRST0xTIGZvciB3YXRjaE9TIFNpbXVsYXRvciBvbmNlIHJkYXI6
Ly9wcm9ibGVtLzU0NjA4Mzg2IGlzIHJlc29sdmVkICovCisjaWYgIVBMQVRGT1JNKEFQUExFVFYp
ICYmICghUExBVEZPUk0oV0FUQ0hPUykgfHwgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9S
KSkKKyNkZWZpbmUgSEFWRV9QQVJFTlRBTF9DT05UUk9MUyAxCisjZW5kaWYKKworI2lmICFQTEFU
Rk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX0FWS0lUIDEKKyNlbmRpZgorCisjaWYgRU5BQkxF
KFdFQkdMKQorLyogVVNFX0FOR0xFPTEgdXNlcyBBTkdMRSBmb3IgdGhlIFdlYkdMIGJhY2tlbmQu
CisgICBJdCByZXBsYWNlcyBVU0VfT1BFTkdMLCBVU0VfT1BFTkdMX0VTIGFuZCBVU0VfRUdMLiAq
LworI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX2hhc19p
bmNsdWRlKDxPcGVuR0wvT3BlbkdMLmg+KSkKKyNkZWZpbmUgVVNFX09QRU5HTCAxCisjZGVmaW5l
IFVTRV9PUEVOR0xfMyAxCisjZGVmaW5lIFVTRV9PUEVOR0xfRVMgMAorI2RlZmluZSBVU0VfT1BF
TkdMX0VTXzMgMAorI2RlZmluZSBVU0VfQU5HTEUgMAorI2Vsc2UKKyNkZWZpbmUgVVNFX09QRU5H
TCAwCisjZGVmaW5lIFVTRV9PUEVOR0xfMyAwCisjZGVmaW5lIFVTRV9PUEVOR0xfRVMgMQorI2Rl
ZmluZSBVU0VfT1BFTkdMX0VTXzMgMQorI2RlZmluZSBVU0VfQU5HTEUgMAorI2VuZGlmCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjaWZuZGVmIEdMX1NJTEVOQ0VfREVQUkVDQVRJT04KKyNkZWZpbmUg
R0xfU0lMRU5DRV9ERVBSRUNBVElPTiAxCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNkZWZp
bmUgVVNFX01FVEFMIDEKKworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKQorI2RlZmluZSBVU0Vf
QUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTIDEKKyNlbmRpZgorCisjZW5kaWYKKworI2lmIEVO
QUJMRShXRUJHTCkKKyNpZiAhZGVmaW5lZChVU0VfQU5HTEUpCisjZGVmaW5lIFVTRV9BTkdMRSAw
CisjZW5kaWYKKworI2lmIChVU0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwgVVNFX09QRU5HTF9F
UyB8fCAoZGVmaW5lZChVU0VfRUdMKSAmJiBVU0VfRUdMKSkpICYmICFVU0UoVEVYVFVSRV9NQVBQ
RVIpCisjZXJyb3IgVVNFX0FOR0xFIGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wsIFVT
RV9PUEVOR0xfRVMgYW5kIFVTRV9FR0wKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBVU0UoVEVYVFVS
RV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSAmJiAhZGVmaW5lZChVU0Vf
VEVYVFVSRV9NQVBQRVJfR0wpCisjZGVmaW5lIFVTRV9URVhUVVJFX01BUFBFUl9HTCAxCisjZW5k
aWYKKworI2lmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCisjZGVmaW5lIEVOQUJMRV9C
UkFOQ0hfQ09NUEFDVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJ
TkdfTElCRElTUEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKKyNkZWZpbmUgRU5BQkxFX1RIUkVB
RElOR19MSUJESVNQQVRDSCAxCisjZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5HX09QRU5N
UCkgJiYgZGVmaW5lZChfT1BFTk1QKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX09QRU5NUCAx
CisjZWxpZiAhZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKKyNkZWZpbmUgRU5BQkxFX1RIUkVB
RElOR19HRU5FUklDIDEKKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2ds
aWIvR1R5cGVkZWZzLmg+CisjZW5kaWYKKworI2lmICFkZWZpbmVkKFVTRV9FWFBPUlRfTUFDUk9T
KSAmJiAoUExBVEZPUk0oQ09DT0EpIHx8IE9TKFdJTkRPV1MpKQorI2RlZmluZSBVU0VfRVhQT1JU
X01BQ1JPUyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQor
I2RlZmluZSBVU0VfVU5JWF9ET01BSU5fU09DS0VUUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KFVTRV9JTUxBTkdfRk9OVF9MSU5LMikKKyNkZWZpbmUgVVNFX0lNTEFOR19GT05UX0xJTksyIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dDX1ZBTElEQVRJT04pICYmICFkZWZpbmVk
KE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJVFkpICYmICFPUyhXSU5ET1dTKQorI2RlZmlu
ZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfVFJFRV9ERUJVR0dJTkcpCisjaWYgIWRlZmluZWQoTkRFQlVHKQorI2RlZmluZSBFTkFCTEVf
VFJFRV9ERUJVR0dJTkcgMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDAK
KyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiBFbmFibGUgdGhpcyB0byBwdXQgZWFjaCBJc29IZWFw
IGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVpciBvd24gbWFsbG9jIGhl
YXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93IGJpZyBlYWNoIGhlYXAg
aXMuCisgKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIG9uIGluIGJtYWxsb2Mg
dG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgorICovCisjaWYgIWRlZmluZWQoRU5BQkxFX01BTExP
Q19IRUFQX0JSRUFLRE9XTikKKyNkZWZpbmUgRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiAw
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQ09SRU1FRElBIDEK
KyNkZWZpbmUgVVNFX1ZJREVPVE9PTEJPWCAxCisjZGVmaW5lIEhBVkVfQVZGT1VOREFUSU9OX1ZJ
REVPX09VVFBVVCAxCisjZGVmaW5lIEhBVkVfQ09SRV9WSURFTyAxCisjZGVmaW5lIEhBVkVfTUVE
SUFfUExBWUVSIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVf
QVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCAxCisjZW5kaWYKKworI2lmIFBMQVRG
T1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQ
T1JUIDEKKyNkZWZpbmUgSEFWRV9NRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSyAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9MT0FE
RVJfREVMRUdBVEUgMQorI2VuZGlmCisKKyNpZiAhUExBVEZPUk0oV0lOKQorI2RlZmluZSBVU0Vf
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFWRV9BUFBM
RV9HUkFQSElDU19DT05UUk9MIDEKKyNkZWZpbmUgSEFWRV9OU0NVUlNPUiAxCisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0NPUkVBVURJTyAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKFVTRV9aTElCKQorI2RlZmluZSBVU0VfWkxJQiAxCisjZW5kaWYKKworI2lmbmRl
ZiBIQVZFX1FPU19DTEFTU0VTCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfUU9T
X0NMQVNTRVMgMQorI2VuZGlmCisjZW5kaWYKKworI2lmbmRlZiBIQVZFX1ZPVUNIRVJTCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfVk9VQ0hFUlMgMQorI2VuZGlmCisjZW5kaWYK
KworI2RlZmluZSBVU0VfR1JBTU1BUl9DSEVDS0lORyAxCisKKyNpZiBQTEFURk9STShDT0NPQSkg
fHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBVU0VfVU5JRklFRF9URVhUX0NIRUNLSU5HIDEKKyNl
bmRpZgorI2lmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0FVVE9NQVRJQ19URVhUX1JFUExB
Q0VNRU5UIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorLyogU29tZSBwbGF0Zm9ybXMg
cHJvdmlkZSBVSSBmb3Igc3VnZ2VzdGluZyBhdXRvY29ycmVjdGlvbi4gKi8KKyNkZWZpbmUgVVNF
X0FVVE9DT1JSRUNUSU9OX1BBTkVMIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisv
KiBTb21lIHBsYXRmb3JtcyB1c2Ugc3BlbGxpbmcgYW5kIGF1dG9jb3JyZWN0aW9uIG1hcmtlcnMg
dG8gcHJvdmlkZSB2aXN1YWwgY3VlLiBPbiBzdWNoIHBsYXRmb3JtLCBpZiB3b3JkIHdpdGggbWFy
a2VyIGlzIGVkaXRlZCwgd2UgbmVlZCB0byByZW1vdmUgdGhlIG1hcmtlci4gKi8KKyNkZWZpbmUg
VVNFX01BUktFUl9SRU1PVkFMX1VQT05fRURJVElORyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KE1BQykKKyNkZWZpbmUgVVNFX0lOU0VSVElPTl9VTkRPX0dST1VQSU5HIDEKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfQVZBU1NFVFJFQURFUiAxCisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQVVESU9fU0VTU0lPTiAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0lPU1VSRkFDRSAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJ
TVVMQVRPUikKKyNkZWZpbmUgSEFWRV9JT1NVUkZBQ0VfQ09SRUlNQUdFX1NVUFBPUlQgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9T
SU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFWRV9JT1NVUkZB
Q0VfQUNDRUxFUkFUT1IgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUg
RU5BQkxFX1JFU09VUkNFX1VTQUdFIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCisjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCisjZGVmaW5lIEVO
QUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCisjZW5kaWYKKworI2lmIENPTVBJTEVSKE1TVkMpCisj
dW5kZWYgX19TVERDX0ZPUk1BVF9NQUNST1MKKyNkZWZpbmUgX19TVERDX0ZPUk1BVF9NQUNST1MK
KyN1bmRlZiBfX1NURENfTElNSVRfTUFDUk9TCisjZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX05TX0FDVElWSVRZIDEK
KyNlbmRpZgorCisvKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRpbCBTcGVjdHJlIHNl
Y3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCisjZGVmaW5lIEVOQUJMRV9TSEFSRURf
QVJSQVlfQlVGRkVSIDAKKworI2lmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8IChVU0UoRlJF
RVRZUEUpICYmICFQTEFURk9STShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoVVNFKENHKSB8
fCBVU0UoQ0FJUk8pKSkKKyN1bmRlZiBFTkFCTEVfT1BFTlRZUEVfTUFUSAorI2RlZmluZSBFTkFC
TEVfT1BFTlRZUEVfTUFUSCAxCisjZW5kaWYKKworLyogU2V0IFRBUkdFVF9PU19JUEhPTkUgdG8g
MCBieSBkZWZhdWx0IHRvIGFsbG93IHVzaW5nIGl0IGFzIGEgZ3VhcmQgCisgKiBpbiBjcm9zcy1w
bGF0Zm9ybSB0aGUgc2FtZSB3YXkgYXMgaXQgaXMgdXNlZCBpbiBPUyhEQVJXSU4pIGNvZGUuICov
IAorI2lmICFkZWZpbmVkKFRBUkdFVF9PU19JUEhPTkUpICYmICFPUyhEQVJXSU4pCisjZGVmaW5l
IFRBUkdFVF9PU19JUEhPTkUgMAorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZp
bmUgVVNFX01FRElBVE9PTEJPWCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2Rl
ZmluZSBVU0VfT1NfTE9HIDEKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBV
U0VfT1NfU1RBVEUgMQorI2VuZGlmCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2Rl
ZmluZSBIQVZFX1NFQ19UUlVTVF9TRVJJQUxJWkFUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoV1RGX0RFRkFVTFRfRVZFTlRfTE9PUCkKKyNkZWZpbmUgV1RGX0RFRkFVTFRfRVZFTlRfTE9P
UCAxCisjZW5kaWYKKworI2lmIFdURl9ERUZBVUxUX0VWRU5UX0xPT1AKKyNpZiBVU0UoR0xJQikK
Ky8qIFVzZSBHTGliJ3MgZXZlbnQgbG9vcCBhYnN0cmFjdGlvbi4gUHJpbWFyaWx5IEdUSyBwb3J0
IHVzZXMgaXQuICovCisjZGVmaW5lIFVTRV9HTElCX0VWRU5UX0xPT1AgMQorI2VsaWYgT1MoV0lO
RE9XUykKKy8qIFVzZSBXaW5kb3dzIG1lc3NhZ2UgcHVtcCBhYnN0cmFjdGlvbi4KKyAqIEV2ZW4g
aWYgdGhlIHBvcnQgaXMgQXBwbGVXaW4sIHdlIHVzZSB0aGUgV2luZG93cyBtZXNzYWdlIHB1bXAg
c3lzdGVtIGZvciB0aGUgZXZlbnQgbG9vcCwKKyAqIHNvIHRoYXQgVVNFKFdJTkRPV1NfRVZFTlRf
TE9PUCkgJiYgVVNFKENGKSBjYW4gYmUgdHJ1ZS4KKyAqIEFuZCBQTEFURk9STShXSU4pIGFuZCBQ
TEFURk9STShHVEspIGFyZSBleGNsdXNpdmUuIElmIHRoZSBwb3J0IGlzIEdUSywKKyAqIFBMQVRG
T1JNKFdJTikgc2hvdWxkIGJlIGZhbHNlLiBBbmQgaW4gdGhhdCBjYXNlLCBHTGliJ3MgZXZlbnQg
bG9vcCBpcyB1c2VkLgorICovCisjZGVmaW5lIFVTRV9XSU5ET1dTX0VWRU5UX0xPT1AgMQorI2Vs
aWYgUExBVEZPUk0oQ09DT0EpCisvKiBPUyBYIGFuZCBJT1MuIFVzZSBDb3JlRm91bmRhdGlvbiAm
IEdDRCBhYnN0cmFjdGlvbi4gKi8KKyNkZWZpbmUgVVNFX0NPQ09BX0VWRU5UX0xPT1AgMQorI2Vs
c2UKKyNkZWZpbmUgVVNFX0dFTkVSSUNfRVZFTlRfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisjZW5kaWYKKwor
I2lmIENPTVBJTEVSKE1TVkMpCisvKiBFbmFibGUgc3RyaWN0IHJ1bnRpbWUgc3RhY2sgYnVmZmVy
IGNoZWNrcy4gKi8KKyNwcmFnbWEgc3RyaWN0X2dzX2NoZWNrKG9uKQorI2VuZGlmCisKKyNpZiBQ
TEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfVE9VQ0hfQkFSIDEKKyNkZWZpbmUgVVNFX0RJQ1RB
VElPTl9BTFRFUk5BVElWRVMgMQorCisjaWYgZGVmaW5lZChfX0xQNjRfXykKKyNkZWZpbmUgRU5B
QkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKKyNlbmRpZgorI2VuZGlmIC8qIFBM
QVRGT1JNKE1BQykgKi8KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX1JUQykK
KyNkZWZpbmUgVVNFX0xJQldFQlJUQyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgVVNFKEdDUllQVCkKKyNk
ZWZpbmUgSEFWRV9SU0FfUFNTIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE1MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIFVTRV9TT1VSQ0VfQVBQ
TElDQVRJT05fQVVESVRfREFUQSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQor
I2RlZmluZSBIQVZFX0hTVFNfU1RPUkFHRV9QQVRIIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBM
QVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhBVkVfVVJMX0ZP
Uk1BVFRJTkcgMQorI2VuZGlmCisKKyNpZiAhT1MoV0lORE9XUykKKyNkZWZpbmUgSEFWRV9TVEFD
S19CT1VORFNfRk9SX05FV19USFJFQUQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8
IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhBVkVfQVZD
T05URU5US0VZU0VTU0lPTiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1MpIHx8
IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBIQVZFX1NFQ19LRVlfUFJPWFkgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKENBKQorI2RlZmluZSBVU0VfSU9TVVJG
QUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFIDEKKyNlbmRpZgorCisvKiBGSVhNRTogU2hvdWxkIHRo
aXMgYmUgZW5hYmxlZCBvciBJT1NfRkFNSUxZLCBub3QganVzdCBJT1M/ICovCisjaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8
IFBMQVRGT1JNKElPUykKKyNkZWZpbmUgSEFWRV9GT1VOREFUSU9OX1dJVEhfU0FWRV9DT09LSUVT
X1dJVEhfQ09NUExFVElPTl9IQU5ETEVSIDEKKyNlbmRpZgorCisvKiBGSVhNRTogU2hvdWxkIHRo
aXMgYmUgZW5hYmxlZCBmb3IgSU9TX0ZBTUlMWSwgbm90IGp1c3QgSU9TPyAqLworI2lmIChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8
fCBQTEFURk9STShJT1MpCisjZGVmaW5lIEhBVkVfRk9VTkRBVElPTl9XSVRIX1NBTUVfU0lURV9D
T09LSUVfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNDAwCisjZGVmaW5lIEhBVkVfTlNIVFRQQ09PS0lF
U1RPUkFHRV9fSU5JVFdJVEhJREVOVElGSUVSX1dJVEhfSU5BQ0NVUkFURV9OVUxMQUJJTElUWSAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0NGTkVUV09SS19X
SVRIX0NPTlRFTlRfRU5DT0RJTkdfU05JRkZJTkdfT1ZFUlJJREUgMQorLyogVGhlIG92ZXJyaWRl
IGlzbid0IG5lZWRlZCBvbiBpT1MgZmFtaWx5LCBhcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0
byBub3Qgc25pZmYuICovCisvKiBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgZW5hYmxl
ZCBvbiAxMC4xMy4yIGFuZCBuZXdlciwgbm90IGp1c3QgMTAuMTQgYW5kIG5ld2VyLiAqLworI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0
MDAKKyNkZWZpbmUgVVNFX0NGTkVUV09SS19DT05URU5UX0VOQ09ESU5HX1NOSUZGSU5HX09WRVJS
SURFIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZP
Uk0oR1RLKQorI2RlZmluZSBIQVZFX09TX0RBUktfTU9ERV9TVVBQT1JUIDEKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTQwMAorI2RlZmluZSBIQVZFX0NHX0ZPTlRfUkVOREVSSU5HX0dFVF9GT05UX1NNT09USElOR19E
SVNBQkxFRCAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2Rl
ZmluZSBIQVZFX0NBX1dIRVJFX0FERElUSVZFX1RSQU5TRk9STVNfQVJFX1JFVkVSU0VEIDEKKyNl
bmRpZgorCisjaWZkZWYgX19BUFBMRV9fCisjZGVmaW5lIEhBVkVfRlVOQ19VU0xFRVAgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKKy8qIEZJWE1FOiBUaGlz
IHJlYWxseSBuZWVkcyBhIGRlc2NyaXB0aXZlIG5hbWUsIHRoaXMgIm5ldyB0aGVtZSIgd2FzIGFk
ZGVkIGluIDIwMDguICovCisjZGVmaW5lIFVTRV9ORVdfVEhFTUUgMQorI2VuZGlmCisKKyNpZiBQ
TEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfV0lORE9XX1NFUlZFUl9PQ0NMVVNJT05fTk9USUZJ
Q0FUSU9OUyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX1NF
Q19BQ0NFU1NfQ09OVFJPTCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKKy8qIEZJWE1F
OiBTYWZhcmlTZXJ2aWNlcy5mcmFtZXdvcmsgZXhpc3RzIG9uIG1hY09TLiBJdCBpcyBvbmx5IHVz
ZWQgYnkgV2ViS2l0IG9uIGlPUywgc28gdGhlIGJlaGF2aW9yIGlzIGNvcnJlY3QsIGJ1dCB0aGUg
bmFtZSBpcyBtaXNsZWFkaW5nLiAqLworI2RlZmluZSBIQVZFX1NBRkFSSV9TRVJWSUNFU19GUkFN
RVdPUksgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwg
UExBVEZPUk0oV0FUQ0hPUykKKyNkZWZpbmUgSEFWRV9TQUZFX0JST1dTSU5HIDEKKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBIQVZFX0xJTktfUFJFVklFVyAxCisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ugc3R5bGUgbWFj
cm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZyYW1ld29yayBz
dHVicy4gKi8KKy8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZVUkxDb25uZWN0
aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLworI2RlZmluZSBF
TkFCTEVfU0VDX0lURU1fU0hJTSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1NfRkFNSUxZ
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTQwMCkpCisjZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9TVVBQT1JUIDEKKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTMwMDAwICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTMw
MTAwCisjZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9CVU5ETEVTX1BBVEggMQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUyAx
CisjZW5kaWYKKworI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFBMQVlTVEFUSU9O
KSB8fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSkgfHwgUExBVEZP
Uk0oR1RLKQorI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkKKyNkZWZpbmUgSEFWRV9BVVRIT1JJWkFUSU9O
X1NUQVRVU19GT1JfTUVESUFfVFlQRSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYm
IChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxNDA0KSkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwMjAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFU
Rk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX0NGTkVUV09SS19PVkVSUklERV9TRVNTSU9OX0NP
T0tJRV9BQ0NFUFRfUE9MSUNZIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCisj
ZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX05TVVJMU0VTU0lPTl9TVFJJQ1RSVVNURVZBTFVBVEUgMQor
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9D
Rk5FVFdPUktfTkVHT1RJQVRFRF9TU0xfUFJPVE9DT0xfQ0lQSEVSIDEKKyNlbmRpZgorCisjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE2
MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxNDAwMDApCisjZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX01FVFJJQ1NfQVBJU19W
NCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDE1MDAKKyNkZWZpbmUgSEFWRV9DU0NIRUNLRklYRElTQUJMRSAxCisj
ZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmluZSBIQVZFX1NB
TkRCT1hfSVNTVUVfTUFDSF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCisj
ZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmluZSBIQVZFX1NB
TkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCisj
ZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1Nf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2RlZmluZSBIQVZFX01ETlNfRkFTVF9S
RUdJU1RSQVRJT04gMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJM
RV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04gKF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPCAxMDE1MDApCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmluZSBFTkFCTEVf
TU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIChfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDEzMDAwMCkKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisj
ZGVmaW5lIEhBVkVfRElTQUxMT1dBQkxFX1VTRVJfSU5TVEFMTEVEX0ZPTlRTIDEKKyNlbmRpZgor
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCisjZGVmaW5lIEhBVkVfQ1RGT05UQ1JFQVRFRk9SQ0hB
UkFDVEVSU1dJVEhMQU5HVUFHRUFORE9QVElPTiAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMAor
I2RlZmluZSBIQVZFX0FSS0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNIDEKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTMwMDAwCisjZGVmaW5lIEhBVkVfVUlfV0tfRE9DVU1FTlRfQ09OVEVYVCAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVfUExBVEZPUk1f
RFJJVkVOX1RFWFRfQ0hFQ0tJTkcgMQorI2RlZmluZSBIQVZFX0hPVkVSX0dFU1RVUkVfUkVDT0dO
SVpFUiAxCisjZGVmaW5lIEhBVkVfVUlfUEFSQUxMQVhfVFJBTlNJVElPTl9HRVNUVVJFX1JFQ09H
TklaRVIgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZp
bmUgSEFWRV9BTExPV1NfU0VOU0lUSVZFX0xPR0dJTkcgMQorI2VuZGlmCisKKyNpZiAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9GQUlSUExBWVNUUkVBTUlOR19DRU5D
X0lOSVREQVRBIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1Nf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQ
TEFURk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX1VJX1NDUk9MTF9WSUVXX0lORElDQVRPUl9G
TEFTSElOR19TUEkgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8
IFBMQVRGT1JNKEFQUExFVFYpCisjZGVmaW5lIEhBVkVfQVBQX0xJTktTX1dJVEhfSVNFTkFCTEVE
IDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2RlZmluZSBIQVZFX1JPVVRFX1NIQVJJTkdfUE9MSUNZ
X0xPTkdfRk9STV9WSURFTyAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCAmJiAhUExBVEZPUk0oSU9TX1NJ
TVVMQVRPUikpCisjZGVmaW5lIEhBVkVfREVWSUNFX01BTkFHRU1FTlQgMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTUw
MAorI2RlZmluZSBVU0VfUkVBTFBBVEhfRk9SX0RMT1BFTl9QUkVGTElHSFQgMQorI2VuZGlmCisK
KyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0o
QVBQTEVUVikKKyNkZWZpbmUgSEFWRV9OU1VSTFNFU1NJT05fV0VCU09DS0VUIDEKKyNlbmRpZgor
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE1MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVU
VikKKyNkZWZpbmUgSEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9DT05TRVJWQVRJT05fTEVWRUwgMQor
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9S
TShBUFBMRVRWKQorI2RlZmluZSBIQVZFX0NPUkVURVhUX0FVVE9fT1BUSUNBTF9TSVpJTkcgMQor
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIDwgMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA8IDEzMDAwMCkKKyNkZWZpbmUgSEFWRV9OU0ZPTlRfV0lUSF9PUFRJQ0FM
X1NJWklOR19CVUcgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkpCisjZGVm
aW5lIEhBVkVfQVBQX1NTTyAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCB8fCBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShX
QVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNk
ZWZpbmUgSEFWRV9UTFNfUFJPVE9DT0xfVkVSU0lPTl9UIDEKKyNlbmRpZgorCisjaWYgUExBVEZP
Uk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikg
fHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhBVkVfU0VDX1RSVVNUX0VWQUxVQVRF
X1dJVEhfRVJST1IgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQorI2RlZmluZSBVU0VfVUlDT05URVhUTUVOVSAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDAK
KyNkZWZpbmUgSEFWRV9TVUJWSUVXU19JVkFSX1NQSSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNTAwCisjZGVmaW5l
IEhBVkVfU1VCVklFV1NfSVZBUl9ERUNMQVJFRF9CWV9TREsgMQorI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShNQUMpIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMTAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JN
KEFQUExFVFYpCisjZGVmaW5lIFVTRV9QTEFURk9STV9TWVNURU1fRkFMTEJBQ0tfTElTVCAxCisj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExP
V0VEID49IDEwMTUwMAorI2RlZmluZSBIQVZFX0FYX0NMSUVOVF9UWVBFIDEKKyNlbmRpZgorCisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDE1MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikK
KyNkZWZpbmUgSEFWRV9ERVNJR05fU1lTVEVNX1VJX0ZPTlRTIDEKKyNlbmRpZgorCisjaWYgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAp
IHx8IChQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKSkKKyNkZWZpbmUg
SEFWRV9ERVZJQ0VfSURFTlRJVFkgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9EQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4gMQorI2VuZGlm
CisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFN
SUxZX1NJTVVMQVRPUikpCisjZGVmaW5lIEhBVkVfTkVBUl9GSUVMRCAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8ICghKGRlZmluZWQoVVNFX1NZU1RFTV9NQUxMT0MpICYm
IFVTRV9TWVNURU1fTUFMTE9DKSAmJiAoT1MoTElOVVgpICYmIChQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdQRSkpKSkKKyNkZWZpbmUgVVNFX0JNQUxMT0NfTUVNT1JZX0ZPT1RQUklOVF9BUEkg
MQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFW
RV9PU19TSUdOUE9TVCAxCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XVEYv
d3RmL0NQVS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIwor
bmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL0NQVS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NQVS5oCShyZXZpc2lvbiAy
NTQzOTApCisrKyBTb3VyY2UvV1RGL3d0Zi9DUFUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIElu
Yy4KLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMwLDMwICsyOCw4IEBACiAvKiBJbmNsdWRlIGNvbXBpbGVyIHNwZWNpZmljIG1hY3JvcyAqLwog
I2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgogCi0vKiA9PT09IFBMQVRGT1JNIGhhbmRsZXMgT1Ms
IG9wZXJhdGluZyBlbnZpcm9ubWVudCwgZ3JhcGhpY3MgQVBJLCBhbmQKLSAgIENQVS4gVGhpcyBt
YWNybyB3aWxsIGJlIHBoYXNlZCBvdXQgaW4gZmF2b3Igb2YgcGxhdGZvcm0gYWRhcHRhdGlvbgot
ICAgbWFjcm9zLCBwb2xpY3kgZGVjaXNpb24gbWFjcm9zLCBhbmQgdG9wLWxldmVsIHBvcnQgZGVm
aW5pdGlvbnMuID09PT0gKi8KLSNkZWZpbmUgUExBVEZPUk0oV1RGX0ZFQVRVUkUpIChkZWZpbmVk
IFdURl9QTEFURk9STV8jI1dURl9GRUFUVVJFICAmJiBXVEZfUExBVEZPUk1fIyNXVEZfRkVBVFVS
RSkKLQotCi0vKiA9PT09IFBsYXRmb3JtIGFkYXB0YXRpb24gbWFjcm9zOiB0aGVzZSBkZXNjcmli
ZSBwcm9wZXJ0aWVzIG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuID09PT0gKi8KLQogLyogQ1BV
KCkgLSB0aGUgdGFyZ2V0IENQVSBhcmNoaXRlY3R1cmUgKi8KICNkZWZpbmUgQ1BVKFdURl9GRUFU
VVJFKSAoZGVmaW5lZCBXVEZfQ1BVXyMjV1RGX0ZFQVRVUkUgICYmIFdURl9DUFVfIyNXVEZfRkVB
VFVSRSkKLS8qIEhBVkUoKSAtIHNwZWNpZmljIHN5c3RlbSBmZWF0dXJlcyAoaGVhZGVycywgZnVu
Y3Rpb25zIG9yIHNpbWlsYXIpIHRoYXQgYXJlIHByZXNlbnQgb3Igbm90ICovCi0jZGVmaW5lIEhB
VkUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEhBVkVfIyNXVEZfRkVBVFVSRSAgJiYgSEFWRV8jI1dU
Rl9GRUFUVVJFKQotLyogT1MoKSAtIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbTsgb25seSB0
byBiZSB1c2VkIGZvciBtYW5kYXRlZCBsb3ctbGV2ZWwgc2VydmljZXMgbGlrZSAKLSAgIHZpcnR1
YWwgbWVtb3J5LCBub3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgKi8KLSNkZWZpbmUgT1MoV1RG
X0ZFQVRVUkUpIChkZWZpbmVkIFdURl9PU18jI1dURl9GRUFUVVJFICAmJiBXVEZfT1NfIyNXVEZf
RkVBVFVSRSkKLQotCi0vKiA9PT09IFBvbGljeSBkZWNpc2lvbiBtYWNyb3M6IHRoZXNlIGRlZmlu
ZSBwb2xpY3kgY2hvaWNlcyBmb3IgYSBwYXJ0aWN1bGFyIHBvcnQuID09PT0gKi8KLQotLyogVVNF
KCkgLSB1c2UgYSBwYXJ0aWN1bGFyIHRoaXJkLXBhcnR5IGxpYnJhcnkgb3Igb3B0aW9uYWwgT1Mg
c2VydmljZSAqLwotI2RlZmluZSBVU0UoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIFVTRV8jI1dURl9G
RUFUVVJFICAmJiBVU0VfIyNXVEZfRkVBVFVSRSkKLS8qIEVOQUJMRSgpIC0gdHVybiBvbiBhIHNw
ZWNpZmljIGZlYXR1cmUgb2YgV2ViS2l0ICovCi0jZGVmaW5lIEVOQUJMRShXVEZfRkVBVFVSRSkg
KGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgICYmIEVOQUJMRV8jI1dURl9GRUFUVVJFKQot
CiAKIC8qID09PT0gQ1BVKCkgLSB0aGUgdGFyZ2V0IENQVSBhcmNoaXRlY3R1cmUgPT09PSAqLwog
LyogQ1BVKEtOT1dOKSBiZWNvbWVzIHRydWUgaWYgd2UgZXhwbGljaXRseSBzdXBwb3J0IGEgdGFy
Z2V0IENQVS4gKi8KQEAgLTc2LDkgKzUyLDcgQEAKICNkZWZpbmUgV1RGX01JUFNfSVNBX1JFVl9B
VF9MRUFTVCh2KSAoZGVmaW5lZCBXVEZfTUlQU19BUkNIX1JFViAmJiBXVEZfTUlQU19BUkNIX1JF
ViA+PSB2KQogI2RlZmluZSBXVEZfTUlQU19ET1VCTEVfRkxPQVQgKGRlZmluZWQgX19taXBzX2hh
cmRfZmxvYXQgJiYgIWRlZmluZWQgX19taXBzX3NpbmdsZV9mbG9hdCkKICNkZWZpbmUgV1RGX01J
UFNfRlA2NCAoZGVmaW5lZCBfX21pcHNfZnByICYmIF9fbWlwc19mcHIgPT0gNjQpCi0vKiBNSVBT
IHJlcXVpcmVzIGFsbG9jYXRvcnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5ICovCi0jZGVmaW5lIFVT
RV9BUkVOQV9BTExPQ19BTElHTk1FTlRfSU5URUdFUiAxCi0jZW5kaWYgLyogTUlQUyAqLworI2Vu
ZGlmCiAKIC8qIENQVShQUEM2NCkgLSBQb3dlclBDIDY0LWJpdCBCaWcgRW5kaWFuICovCiAjaWYg
KCAgZGVmaW5lZChfX3BwYzY0X18pICAgICAgXApAQCAtMTc2LDggKzE1MCw2IEBACiAgICAgfHwg
ZGVmaW5lZChfX0FSTV9BUkNIXzVURV9fKSBcCiAgICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVU
RUpfXykKICNkZWZpbmUgV1RGX0FSTV9BUkNIX1ZFUlNJT04gNQotLypBUk12NVRFIHJlcXVpcmVz
IGFsbG9jYXRvcnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5Ki8KLSNkZWZpbmUgVVNFX0FSRU5BX0FM
TE9DX0FMSUdOTUVOVF9JTlRFR0VSIDEKIAogI2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzZfXykg
XAogICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF82Sl9fKSBcCkBAIC0yMDYsMTggKzE3OCwxMiBA
QAogI2VsaWYgZGVmaW5lZChfX1RBUkdFVF9BUkNIX0FSTSkKICNkZWZpbmUgV1RGX0FSTV9BUkNI
X1ZFUlNJT04gX19UQVJHRVRfQVJDSF9BUk0KIAotI2lmIGRlZmluZWQoX19UQVJHRVRfQVJDSF81
RSkgXAotICAgIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF81VEUpIFwKLSAgICB8fCBkZWZpbmVk
KF9fVEFSR0VUX0FSQ0hfNVRFSikKLS8qQVJNdjVURSByZXF1aXJlcyBhbGxvY2F0b3JzIHRvIHVz
ZSBhbGlnbmVkIG1lbW9yeSovCi0jZGVmaW5lIFVTRV9BUkVOQV9BTExPQ19BTElHTk1FTlRfSU5U
RUdFUiAxCi0jZW5kaWYKLQogI2Vsc2UKICNkZWZpbmUgV1RGX0FSTV9BUkNIX1ZFUlNJT04gMAog
CiAjZW5kaWYKIAorLy8gRklYTUU6IFdURl9USFVNQl9BUkNIX1ZFUlNJT04gc2VlbXMgdW51c3Vl
ZC4gUmVtb3ZlLgogLyogU2V0IFdURl9USFVNQl9BUkNIX1ZFUlNJT04gKi8KICNpZiAgIGRlZmlu
ZWQoX19BUk1fQVJDSF80VF9fKQogI2RlZmluZSBXVEZfVEhVTUJfQVJDSF9WRVJTSU9OIDEKQEAg
LTI1Miw2ICsyMTgsNyBAQAogI2VuZGlmCiAKIAorLy8gRklYTUU6IENQVShBUk1WNV9PUl9MT1dF
Uikgc2VlbXMgdW51c3VlZC4gUmVtb3ZlLgogLyogQ1BVKEFSTVY1X09SX0xPV0VSKSAtIEFSTSBp
bnN0cnVjdGlvbiBzZXQgdjUgb3IgZWFybGllciAqLwogLyogT24gQVJNdjUgYW5kIGJlbG93IHRo
ZSBuYXR1cmFsIGFsaWdubWVudCBpcyByZXF1aXJlZC4gCiAgICBBbmQgdGhlcmUgYXJlIHNvbWUg
b3RoZXIgZGlmZmVyZW5jZXMgZm9yIHY1IG9yIGVhcmxpZXIuICovCkBAIC0yODIsMTEgKzI0OSw2
IEBACiAjZGVmaW5lIFdURl9DUFVfQVJNX05FT04gMQogI2VuZGlmCiAKLSNpZiBDUFUoQVJNX05F
T04pCi0vKiBBbGwgTkVPTiBpbnRyaW5zaWNzIHVzYWdlIGNhbiBiZSBkaXNhYmxlZCBieSB0aGlz
IG1hY3JvLiAqLwotI2RlZmluZSBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJQ1MgMQotI2VuZGlmCi0K
ICNpZiAoZGVmaW5lZChfX1ZGUF9GUF9fKSAmJiAhZGVmaW5lZChfX1NPRlRGUF9fKSkKICNkZWZp
bmUgV1RGX0NQVV9BUk1fVkZQIDEKICNlbmRpZgpAQCAtMzEyLDEwICsyNzQsNiBAQAogI2RlZmlu
ZSBXVEZfQ1BVX0FQUExFX0FSTVY3UyAxCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19BUk1fQVJD
SF9FWFRfSURJVl9fKSB8fCBDUFUoQVBQTEVfQVJNVjdTKQotI2RlZmluZSBIQVZFX0FSTV9JRElW
X0lOU1RSVUNUSU9OUyAxCi0jZW5kaWYKLQogI2VuZGlmIC8qIEFSTSAqLwogCiAjaWYgIUNQVShL
Tk9XTikKQEAgLTM1Miw5MiArMzEwLDYgQEAKICNlbmRpZgogI2VuZGlmCiAKLS8qID09PT0gT1Mo
KSAtIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbTsgb25seSB0byBiZSB1c2VkIGZvciBtYW5k
YXRlZCBsb3ctbGV2ZWwgc2VydmljZXMgbGlrZSAKLSAgIHZpcnR1YWwgbWVtb3J5LCBub3QgdG8g
Y2hvb3NlIGEgR1VJIHRvb2xraXQgPT09PSAqLwotCi0vKiBPUyhBSVgpIC0gQUlYICovCi0jaWZk
ZWYgX0FJWAotI2RlZmluZSBXVEZfT1NfQUlYIDEKLSNlbmRpZgotCi0vKiBPUyhEQVJXSU4pIC0g
QW55IERhcndpbi1iYXNlZCBPUywgaW5jbHVkaW5nIE1hYyBPUyBYIGFuZCBpUGhvbmUgT1MgKi8K
LSNpZmRlZiBfX0FQUExFX18KLSNkZWZpbmUgV1RGX09TX0RBUldJTiAxCi0KLSNpbmNsdWRlIDxB
dmFpbGFiaWxpdHkuaD4KLSNpbmNsdWRlIDxBdmFpbGFiaWxpdHlNYWNyb3MuaD4KLSNpbmNsdWRl
IDxUYXJnZXRDb25kaXRpb25hbHMuaD4KLSNlbmRpZgotCi0vKiBPUyhJT1NfRkFNSUxZKSAtIGlP
UyBmYW1pbHksIGluY2x1ZGluZyBpT1MsIG1hY0NhdGFseXN0LCB0dk9TLCB3YXRjaE9TICovCi0v
KiBPUyhJT1MpIC0gaU9TIG9ubHksIG5vdCBpbmNsdWRpbmcgbWFjQ2F0YWx5c3QgKi8KLS8qIE9T
KE1BQ19PU19YKSAtIG1hY09TIChub3QgaW5jbHVkaW5nIGlPUyBmYW1pbHkpICovCi0jaWYgT1Mo
REFSV0lOKQotI2lmIFRBUkdFVF9PU19JT1MgJiYgIShkZWZpbmVkKFRBUkdFVF9PU19NQUNDQVRB
TFlTVCkgJiYgVEFSR0VUX09TX01BQ0NBVEFMWVNUKQotI2RlZmluZSBXVEZfT1NfSU9TIDEKLSNl
bmRpZgotI2lmIFRBUkdFVF9PU19JUEhPTkUKLSNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkgMQot
I2VsaWYgVEFSR0VUX09TX01BQwotI2RlZmluZSBXVEZfT1NfTUFDX09TX1ggMQotI2VuZGlmCi0j
ZW5kaWYKLQotLyogT1MoRlJFRUJTRCkgLSBGcmVlQlNEICovCi0jaWYgZGVmaW5lZChfX0ZyZWVC
U0RfXykgfHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJu
ZWxfXykKLSNkZWZpbmUgV1RGX09TX0ZSRUVCU0QgMQotI2VuZGlmCi0KLS8qIE9TKEZVQ0hTSUEp
IC0gRnVjaHNpYSAqLwotI2lmZGVmIF9fRnVjaHNpYV9fCi0jZGVmaW5lIFdURl9PU19GVUNIU0lB
IDEKLSNlbmRpZgotCi0vKiBPUyhIVVJEKSAtIEdOVS9IdXJkICovCi0jaWZkZWYgX19HTlVfXwot
I2RlZmluZSBXVEZfT1NfSFVSRCAxCi0jZW5kaWYKLQotLyogT1MoTElOVVgpIC0gTGludXggKi8K
LSNpZmRlZiBfX2xpbnV4X18KLSNkZWZpbmUgV1RGX09TX0xJTlVYIDEKLSNlbmRpZgotCi0vKiBP
UyhORVRCU0QpIC0gTmV0QlNEICovCi0jaWYgZGVmaW5lZChfX05ldEJTRF9fKQotI2RlZmluZSBX
VEZfT1NfTkVUQlNEIDEKLSNlbmRpZgotCi0vKiBPUyhPUEVOQlNEKSAtIE9wZW5CU0QgKi8KLSNp
ZmRlZiBfX09wZW5CU0RfXwotI2RlZmluZSBXVEZfT1NfT1BFTkJTRCAxCi0jZW5kaWYKLQotLyog
T1MoV0lORE9XUykgLSBBbnkgdmVyc2lvbiBvZiBXaW5kb3dzICovCi0jaWYgZGVmaW5lZChXSU4z
MikgfHwgZGVmaW5lZChfV0lOMzIpCi0jZGVmaW5lIFdURl9PU19XSU5ET1dTIDEKLSNlbmRpZgot
Ci0jZGVmaW5lIFdURl9PU19XSU4gRVJST1IgIlVTRSBXSU5ET1dTIFdJVEggT1MgTk9UIFdJTiIK
LSNkZWZpbmUgV1RGX09TX01BQyBFUlJPUiAiVVNFIE1BQ19PU19YIFdJVEggT1MgTk9UIE1BQyIK
LQotLyogT1MoVU5JWCkgLSBBbnkgVW5peC1saWtlIHN5c3RlbSAqLwotI2lmICAgIE9TKEFJWCkg
ICAgICAgICAgICAgIFwKLSAgICB8fCBPUyhEQVJXSU4pICAgICAgICAgICBcCi0gICAgfHwgT1Mo
RlJFRUJTRCkgICAgICAgICAgXAotICAgIHx8IE9TKEZVQ0hTSUEpICAgICAgICAgIFwKLSAgICB8
fCBPUyhIVVJEKSAgICAgICAgICAgICBcCi0gICAgfHwgT1MoTElOVVgpICAgICAgICAgICAgXAot
ICAgIHx8IE9TKE5FVEJTRCkgICAgICAgICAgIFwKLSAgICB8fCBPUyhPUEVOQlNEKSAgICAgICAg
ICBcCi0gICAgfHwgZGVmaW5lZCh1bml4KSAgICAgICAgXAotICAgIHx8IGRlZmluZWQoX191bml4
KSAgICAgIFwKLSAgICB8fCBkZWZpbmVkKF9fdW5peF9fKQotI2RlZmluZSBXVEZfT1NfVU5JWCAx
Ci0jZW5kaWYKLQotLyogT3BlcmF0aW5nIGVudmlyb25tZW50cyAqLwotCiAvKiBDUFUoQklHX0VO
RElBTikgb3IgQ1BVKE1JRERMRV9FTkRJQU4pIG9yIG5laXRoZXIsIGFzIGFwcHJvcHJpYXRlLiAq
LwogCiAjaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCkBAIC00NTEsNyArMzIzLDcgQEAKICNl
cnJvciAiVW5rbm93biBlbmRpYW4iCiAjZW5kaWYKICNlbHNlCi0jaWYgT1MoV0lORE9XUykKKyNp
ZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKIC8qIFdpbmRvd3Mgb25seSBoYXZl
IGxpdHRsZSBlbmRpYW4gYXJjaGl0ZWN0dXJlLiAqLwogI2RlZmluZSBXVEZfQ1BVX0xJVFRMRV9F
TkRJQU4gMQogI2Vsc2UKQEAgLTQ4OSwxMTk0ICszNjEsMyBAQAogI2lmICFDUFUoTElUVExFX0VO
RElBTikgJiYgIUNQVShCSUdfRU5ESUFOKQogI2Vycm9yICJVbnN1cHBvcnRlZCBlbmRpYW4iCiAj
ZW5kaWYKLQotLyogRXhwb3J0IG1hY3JvIHN1cHBvcnQuIERldGVjdHMgdGhlIGF0dHJpYnV0ZXMg
YXZhaWxhYmxlIGZvciBzaGFyZWQgbGlicmFyeSBzeW1ib2wgZXhwb3J0Ci0gICBkZWNvcmF0aW9u
cy4gKi8KLSNpZiBPUyhXSU5ET1dTKSB8fCAoQ09NUElMRVJfSEFTX0NMQU5HX0RFQ0xTUEVDKGRs
bGltcG9ydCkgJiYgQ09NUElMRVJfSEFTX0NMQU5HX0RFQ0xTUEVDKGRsbGV4cG9ydCkpCi0jZGVm
aW5lIFVTRV9ERUNMU1BFQ19BVFRSSUJVVEUgMQotI2RlZmluZSBVU0VfVklTSUJJTElUWV9BVFRS
SUJVVEUgMAotI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKLSNkZWZpbmUgVVNFX0RFQ0xTUEVDX0FU
VFJJQlVURSAwCi0jZGVmaW5lIFVTRV9WSVNJQklMSVRZX0FUVFJJQlVURSAxCi0jZWxzZQotI2Rl
ZmluZSBVU0VfREVDTFNQRUNfQVRUUklCVVRFIDAKLSNkZWZpbmUgVVNFX1ZJU0lCSUxJVFlfQVRU
UklCVVRFIDAKLSNlbmRpZgotCi0vKiBTdGFuZGFyZCBsaWJyYXJpZXMgKi8KLSNpZiBkZWZpbmVk
KEhBVkVfRkVBVFVSRVNfSCkgJiYgSEFWRV9GRUFUVVJFU19ICi0vKiBJZiB0aGUgaW5jbHVkZWQg
ZmVhdHVyZXMuaCBpcyBnbGliYydzIG9uZSwgX19HTElCQ19fIGlzIGRlZmluZWQuICovCi0jaW5j
bHVkZSA8ZmVhdHVyZXMuaD4KLSNlbmRpZgotCi0vKiBGSVhNRTogdGhlc2UgYXJlIGFsbCBtaXhl
cyBvZiBPUywgb3BlcmF0aW5nIGVudmlyb25tZW50IGFuZCBwb2xpY3kgY2hvaWNlcy4gKi8KLS8q
IFBMQVRGT1JNKEdUSykgKi8KLS8qIFBMQVRGT1JNKE1BQykgKi8KLS8qIFBMQVRGT1JNKElPUykg
Ki8KLS8qIFBMQVRGT1JNKElPU19GQU1JTFkpICovCi0vKiBQTEFURk9STShJT1NfU0lNVUxBVE9S
KSAqLwotLyogUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpICovCi0vKiBQTEFURk9STShX
SU4pICovCi0jaWYgZGVmaW5lZChCVUlMRElOR19HVEtfXykKLSNkZWZpbmUgV1RGX1BMQVRGT1JN
X0dUSyAxCi0jZWxpZiBkZWZpbmVkKEJVSUxESU5HX1dQRV9fKQotI2RlZmluZSBXVEZfUExBVEZP
Uk1fV1BFIDEKLSNlbGlmIGRlZmluZWQoQlVJTERJTkdfSlNDT05MWV9fKQotLyogSlNDT25seSBk
b2VzIG5vdCBwcm92aWRlIFBMQVRGT1JNKCkgbWFjcm8gKi8KLSNlbGlmIE9TKE1BQ19PU19YKQot
I2RlZmluZSBXVEZfUExBVEZPUk1fTUFDIDEKLSNlbGlmIE9TKElPU19GQU1JTFkpCi0jaWYgT1Mo
SU9TKQotI2RlZmluZSBXVEZfUExBVEZPUk1fSU9TIDEKLSNlbmRpZgotI2RlZmluZSBXVEZfUExB
VEZPUk1fSU9TX0ZBTUlMWSAxCi0jaWYgVEFSR0VUX09TX1NJTVVMQVRPUgotI2lmIE9TKElPUykK
LSNkZWZpbmUgV1RGX1BMQVRGT1JNX0lPU19TSU1VTEFUT1IgMQotI2VuZGlmCi0jZGVmaW5lIFdU
Rl9QTEFURk9STV9JT1NfRkFNSUxZX1NJTVVMQVRPUiAxCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFRB
UkdFVF9PU19NQUNDQVRBTFlTVCkgJiYgVEFSR0VUX09TX01BQ0NBVEFMWVNUCi0jZGVmaW5lIFdU
Rl9QTEFURk9STV9NQUNDQVRBTFlTVCAxCi0jZW5kaWYKLSNlbGlmIE9TKFdJTkRPV1MpCi0jZGVm
aW5lIFdURl9QTEFURk9STV9XSU4gMQotI2VuZGlmCi0KLS8qIFBMQVRGT1JNKENPQ09BKSAqLwot
I2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgV1RGX1BM
QVRGT1JNX0NPQ09BIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaWYgZGVmaW5l
ZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NGUHJpdi5o
PikKLSNkZWZpbmUgVVNFX0FQUExFX0lOVEVSTkFMX1NESyAxCi0jZW5kaWYKLSNlbmRpZgotCi0v
KiBQTEFURk9STShBUFBMRVRWKSAqLwotI2lmIGRlZmluZWQoVEFSR0VUX09TX1RWKSAmJiBUQVJH
RVRfT1NfVFYKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX0FQUExFVFYgMQotI2VuZGlmCi0KLS8qIFBM
QVRGT1JNKFdBVENIT1MpICovCi0jaWYgZGVmaW5lZChUQVJHRVRfT1NfV0FUQ0gpICYmIFRBUkdF
VF9PU19XQVRDSAotI2RlZmluZSBXVEZfUExBVEZPUk1fV0FUQ0hPUyAxCi0jZW5kaWYKLQotLyog
R3JhcGhpY3MgZW5naW5lcyAqLwotCi0vKiBVU0UoQ0cpIGFuZCBQTEFURk9STShDSSkgKi8KLSNp
ZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgVVNFX0NHIDEKLSNkZWZpbmUgVVNFX0NBIDEKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCi0jZGVmaW5lIFVTRV9H
TElCIDEKLSNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKLSNkZWZpbmUgVVNFX0hBUkZCVVpaIDEKLSNk
ZWZpbmUgVVNFX1NPVVAgMQotI2RlZmluZSBVU0VfV0VCUCAxCi0jZGVmaW5lIFVTRV9GSUxFX0xP
Q0sgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspCi0jZGVmaW5lIEdMSUJfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgR0xJQl9WRVJTSU9OXzJfMzYKLSNkZWZpbmUgR0RLX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIEdES19WRVJTSU9OXzNfNgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShXUEUpCi0jZGVm
aW5lIEdMSUJfVkVSU0lPTl9NSU5fUkVRVUlSRUQgR0xJQl9WRVJTSU9OXzJfNDAKLSNlbmRpZgot
Ci0jaWYgVVNFKFNPVVApCi0jZGVmaW5lIFNPVVBfVkVSU0lPTl9NSU5fUkVRVUlSRUQgU09VUF9W
RVJTSU9OXzJfNDIKLSNlbmRpZgotCi0vKiBPbiBXaW5kb3dzLCB1c2UgUXVlcnlQZXJmb3JtYW5j
ZUNvdW50ZXIgYnkgZGVmYXVsdCAqLwotI2lmIE9TKFdJTkRPV1MpCi0jZGVmaW5lIFVTRV9RVUVS
WV9QRVJGT1JNQU5DRV9DT1VOVEVSICAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQot
Ci0jZGVmaW5lIEhBVkVfT1VUX09GX1BST0NFU1NfTEFZRVJfSE9TVElORyAxCi0jZGVmaW5lIFVT
RV9DRiAxCi0jZGVmaW5lIFVTRV9GSUxFX0xPQ0sgMQotI2RlZmluZSBVU0VfRk9VTkRBVElPTiAx
Ci0jZGVmaW5lIFVTRV9ORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSyAxCi0KLS8qIENvY29h
IGRlZmluZXMgYSBzZXJpZXMgb2YgcGxhdGZvcm0gbWFjcm9zIGZvciBkZWJ1Z2dpbmcuICovCi0v
KiBTb21lIG9mIHRoZW0gYXJlIHJlYWxseSBhbm5veWluZyBiZWNhdXNlIHRoZXkgdXNlIGNvbW1v
biBuYW1lcyAoZS5nLiBjaGVjaygpKS4gKi8KLS8qIERpc2FibGUgdGhvc2UgbWFjcm9zIHNvIHRo
YXQgd2UgYXJlIG5vdCBsaW1pdGVkIGluIGhvdyB3ZSBuYW1lIG1ldGhvZHMgYW5kIGZ1bmN0aW9u
cy4gKi8KLSN1bmRlZiBfX0FTU0VSVF9NQUNST1NfREVGSU5FX1ZFUlNJT05TX1dJVEhPVVRfVU5E
RVJTQ09SRVMKLSNkZWZpbmUgX19BU1NFUlRfTUFDUk9TX0RFRklORV9WRVJTSU9OU19XSVRIT1VU
X1VOREVSU0NPUkVTIDAKLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0KLSNkZWZpbmUg
SEFWRV9SVU5MT09QX1RJTUVSIDEKLSNkZWZpbmUgSEFWRV9TRUNfS0VZQ0hBSU4gMQotI2RlZmlu
ZSBIQVZFX0hJU0VSVklDRVMgMQotI2RlZmluZSBVU0VfQVBQS0lUIDEKLSNkZWZpbmUgVVNFX1BB
U1NLSVQgMQotCi0jaWYgQ1BVKFg4Nl82NCkKLSNkZWZpbmUgSEFWRV9ORVRXT1JLX0VYVEVOU0lP
TiAxCi0jZGVmaW5lIFVTRV9QTFVHSU5fSE9TVF9QUk9DRVNTIDEKLSNlbmRpZgotI2VuZGlmIC8q
IFBMQVRGT1JNKE1BQykgKi8KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNkZWZpbmUg
SEFWRV9ORVRXT1JLX0VYVEVOU0lPTiAxCi0jZGVmaW5lIEhBVkVfUkVBRExJTkUgMQotI2RlZmlu
ZSBVU0VfVUlLSVRfRURJVElORyAxCi0jZGVmaW5lIFVTRV9XRUJfVEhSRUFEIDEKLQotI2lmIENQ
VShBUk02NCkKLSNkZWZpbmUgRU5BQkxFX0pJVF9DT05TVEFOVF9CTElORElORyAwCi0jZW5kaWYK
LQotI2lmIENQVShBUk1fTkVPTikKLSN1bmRlZiBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJQ1MKLSNk
ZWZpbmUgSEFWRV9BUk1fTkVPTl9JTlRSSU5TSUNTIDAKLSNlbmRpZgotCi0jZW5kaWYgLyogUExB
VEZPUk0oSU9TX0ZBTUlMWSkgKi8KLQotI2lmICFkZWZpbmVkKEhBVkVfQUNDRVNTSUJJTElUWSkK
LSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkKLSNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZIDEKLSNlbmRpZgotI2Vu
ZGlmIC8qICFkZWZpbmVkKEhBVkVfQUNDRVNTSUJJTElUWSkgKi8KLQotLyogRklYTUU6IFJlbW92
ZSBhZnRlciBDTWFrZSBidWlsZCBlbmFibGVkIG9uIERhcndpbiAqLwotI2lmIE9TKERBUldJTikK
LSNkZWZpbmUgSEFWRV9FUlJOT19IIDEKLSNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDEKLSNkZWZp
bmUgSEFWRV9MT0NBTFRJTUVfUiAxCi0jZGVmaW5lIEhBVkVfTU1BUCAxCi0jZGVmaW5lIEhBVkVf
UkVHRVhfSCAxCi0jZGVmaW5lIEhBVkVfU0lHTkFMX0ggMQotI2RlZmluZSBIQVZFX1NUQVRfQklS
VEhUSU1FIDEKLSNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotI2RlZmluZSBIQVZFX1NUUk5TVFIg
MQotI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKLSNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEg
Ci0jZGVmaW5lIEhBVkVfVE1fR01UT0ZGIDEKLSNkZWZpbmUgSEFWRV9UTV9aT05FIDEKLSNkZWZp
bmUgSEFWRV9USU1FR00gMQotI2RlZmluZSBIQVZFX1BUSFJFQURfTUFJTl9OUCAxCi0KLSNpZiBD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCi0jZGVmaW5lIEhBVkVfSU5UMTI4X1QgMQotI2VuZGlm
Ci0jZW5kaWYgLyogT1MoREFSV0lOKSAqLwotCi0jaWYgT1MoVU5JWCkKLSNkZWZpbmUgVVNFX1BU
SFJFQURTIDEKLSNlbmRpZiAvKiBPUyhVTklYKSAqLwotCi0jaWYgT1MoVU5JWCkgJiYgIU9TKEZV
Q0hTSUEpCi0jZGVmaW5lIEhBVkVfUkVTT1VSQ0VfSCAxCi0jZGVmaW5lIEhBVkVfUFRIUkVBRF9T
RVRTQ0hFRFBBUkFNIDEKLSNlbmRpZgotCi0jaWYgT1MoREFSV0lOKQotI2RlZmluZSBIQVZFX0RJ
U1BBVENIX0ggMQotI2RlZmluZSBIQVZFX01BRFZfRlJFRSAxCi0jZGVmaW5lIEhBVkVfTUFEVl9G
UkVFX1JFVVNFIDEKLSNkZWZpbmUgSEFWRV9NQURWX0RPTlRORUVEIDEKLSNkZWZpbmUgSEFWRV9N
RVJHRVNPUlQgMQotI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCi0jZGVmaW5lIEhB
VkVfUkVBRExJTkUgMQotI2RlZmluZSBIQVZFX1NZU19USU1FQl9IIDEKLSNkZWZpbmUgSEFWRV9B
VURJVF9UT0tFTiAxCi0KLSNpZiBfX2hhc19pbmNsdWRlKDxtYWNoL21hY2hfZXhjLmRlZnM+KSAm
JiAhUExBVEZPUk0oR1RLKQotI2RlZmluZSBIQVZFX01BQ0hfRVhDRVBUSU9OUyAxCi0jZW5kaWYK
LQotI2lmICFQTEFURk9STShHVEspCi0jZGVmaW5lIFVTRV9BQ0NFTEVSQVRFIDEKLSNlbmRpZgot
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX0hPU1RFRF9DT1JFX0FOSU1B
VElPTiAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIE9TKERBUldJTikgKi8KLQotI2lmIE9TKERBUldJ
TikgfHwgT1MoRlVDSFNJQSkgfHwgKChPUyhGUkVFQlNEKSB8fCBkZWZpbmVkKF9fR0xJQkNfXykg
fHwgZGVmaW5lZChfX0JJT05JQ19fKSkgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQ
VShBUk0pIHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpKSkKLSNkZWZpbmUgSEFWRV9NQUNISU5F
X0NPTlRFWFQgMQotI2VuZGlmCi0KLSNpZiBPUyhEQVJXSU4pIHx8IChPUyhMSU5VWCkgJiYgZGVm
aW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFDUFUoTUlQUykpCi0j
ZGVmaW5lIEhBVkVfQkFDS1RSQUNFIDEKLSNlbmRpZgotCi0jaWYgT1MoREFSV0lOKSB8fCBPUyhM
SU5VWCkKLSNpZiBQTEFURk9STShHVEspCi0jaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZp
bmVkKF9fVUNMSUJDX18pICYmICFDUFUoTUlQUykKLSNkZWZpbmUgSEFWRV9CQUNLVFJBQ0VfU1lN
Qk9MUyAxCi0jZW5kaWYKLSNlbmRpZiAvKiBQTEFURk9STShHVEspICovCi0jZGVmaW5lIEhBVkVf
RExBRERSIDEKLSNlbmRpZiAvKiBPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSAqLwotCi0KLS8qIEVO
QUJMRSBtYWNybyBkZWZhdWx0cyAqLwotCi0vKiBGSVhNRTogbW92ZSBvdXQgYWxsIEVOQUJMRSgp
IGRlZmluZXMgZnJvbSBoZXJlIHRvIEZlYXR1cmVEZWZpbmVzLmggKi8KLQotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlv
bmFsUGxhdGZvcm0uaD4pCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxQbGF0
Zm9ybS5oPgotI2VuZGlmCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19p
bmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+KQotI2lu
Y2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4KLSNlbmRp
ZgotCi0vKiBJbmNsdWRlIGZlYXR1cmUgbWFjcm9zICovCi0jaW5jbHVkZSA8d3RmL0ZlYXR1cmVE
ZWZpbmVzLmg+Ci0KLSNpZiBPUyhXSU5ET1dTKQotI2RlZmluZSBVU0VfU1lTVEVNX01BTExPQyAx
Ci0jZW5kaWYKLQotI2lmIENQVShBRERSRVNTNjQpCi0jaWYgT1MoREFSV0lOKSAmJiBDUFUoQVJN
NjQpCi0jZGVmaW5lIFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1NfV0lEVEggMzYKLSNlbHNlCi0v
KiBXZSBzdHJvbmdseSBhc3N1bWUgdGhhdCBlZmZlY3RpdmUgYWRkcmVzcyB3aWR0aCBpcyA8PSA0
OCBpbiA2NGJpdCBhcmNoaXRlY3R1cmVzIChlLmcuIE5hTiBib3hpbmcpLiAqLwotI2RlZmluZSBX
VEZfQ1BVX0VGRkVDVElWRV9BRERSRVNTX1dJRFRIIDQ4Ci0jZW5kaWYKLSNlbHNlCi0jZGVmaW5l
IFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1NfV0lEVEggMzIKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoVVNFX0pTVkFMVUU2NCkgJiYgIWRlZmluZWQoVVNFX0pTVkFMVUUzMl82NCkKLSNpZiBDUFUo
QUREUkVTUzY0KSB8fCBDUFUoQVJNNjQpCi0jZGVmaW5lIFVTRV9KU1ZBTFVFNjQgMQotI2Vsc2UK
LSNkZWZpbmUgVVNFX0pTVkFMVUUzMl82NCAxCi0jZW5kaWYKLSNlbmRpZiAvKiAhZGVmaW5lZChV
U0VfSlNWQUxVRTY0KSAmJiAhZGVmaW5lZChVU0VfSlNWQUxVRTMyXzY0KSAqLwotCi0vKiBUaGUg
SklUIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LTY0ICYgQVJNNjQgcGxhdGZvcm1z
LiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpIFwKLSAgICAmJiAoQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTTY0KSkgXAotICAgICYmICFDUFUoQVBQTEVfQVJNVjdLKQotI2RlZmluZSBFTkFCTEVf
SklUIDEKLSNlbmRpZgotCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSNpZiAoQ1BVKEFSTV9USFVN
QjIpIHx8IENQVShNSVBTKSkgJiYgT1MoTElOVVgpCi0vKiBPbiBBUk12NyBhbmQgTUlQUyBvbiBM
aW51eCB0aGUgSklUIGlzIGVuYWJsZWQgdW5sZXNzIGV4cGxpY2l0bHkgZGlzYWJsZWQuICovCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLSNl
bHNlCi0vKiBEaXNhYmxlIEpJVCBhbmQgZm9yY2UgQ19MT09QIG9uIGFsbCBvdGhlciAzMmJpdCBh
cmNoaXRlY3R1cmVzLiAqLwotI3VuZGVmIEVOQUJMRV9KSVQKLSNkZWZpbmUgRU5BQkxFX0pJVCAw
Ci0jdW5kZWYgRU5BQkxFX0NfTE9PUAotI2RlZmluZSBFTkFCTEVfQ19MT09QIDEKLSNlbmRpZgot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ19MT09QKQotI2lmIEVOQUJMRShKSVQpIFwK
LSAgICB8fCBDUFUoWDg2XzY0KSB8fCAoQ1BVKEFSTTY0KSAmJiAhZGVmaW5lZChfX0lMUDMyX18p
KQotI2RlZmluZSBFTkFCTEVfQ19MT09QIDAKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1Ag
MQotI2VuZGlmCi0jZW5kaWYKLQotLyogVGhlIEZUTCAqZG9lcyBub3QqIHdvcmsgb24gMzItYml0
IHBsYXRmb3Jtcy4gRGlzYWJsZSBpdCBldmVuIGlmIHNvbWVvbmUgYXNrZWQgdXMgdG8gZW5hYmxl
IGl0LiAqLwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0jdW5kZWYgRU5BQkxFX0ZUTF9KSVQKLSNk
ZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIFRoZSBGVEwgaXMgZGlzYWJsZWQg
b24gdGhlIGlPUyBzaW11bGF0b3IsIG1vc3RseSBmb3Igc2ltcGxpY2l0eS4gKi8KLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmlu
ZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYKLQotLyogSWYgcG9zc2libGUsIHRyeSB0byBlbmFi
bGUgYSBkaXNhc3NlbWJsZXIuIFRoaXMgaXMgb3B0aW9uYWwuIFdlIHByb2NlZWQgaW4gdHdvCi0g
ICBzdGVwczogZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgc29tZSBkaXNhc3NlbWJsZXIgdGhhdCB3ZSBj
YW4gdXNlLCBhbmQgdGhlbiB3ZQotICAgZGVjaWRlIGlmIHRoZSBoaWdoLWxldmVsIGRpc2Fzc2Vt
YmxlciBBUEkgY2FuIGJlIGVuYWJsZWQuICovCi0jaWYgIWRlZmluZWQoVVNFX1VESVM4NikgJiYg
RU5BQkxFKEpJVCkgJiYgQ1BVKFg4Nl82NCkgJiYgIVVTRShDQVBTVE9ORSkKLSNkZWZpbmUgVVNF
X1VESVM4NiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKFVTRV9BUk02NF9ESVNBU1NFTUJMRVIp
ICYmIEVOQUJMRShKSVQpICYmIENQVShBUk02NCkgJiYgIVVTRShDQVBTVE9ORSkKLSNkZWZpbmUg
VVNFX0FSTTY0X0RJU0FTU0VNQkxFUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9E
SVNBU1NFTUJMRVIpICYmIChVU0UoVURJUzg2KSB8fCBVU0UoQVJNNjRfRElTQVNTRU1CTEVSKSB8
fCAoRU5BQkxFKEpJVCkgJiYgVVNFKENBUFNUT05FKSkpCi0jZGVmaW5lIEVOQUJMRV9ESVNBU1NF
TUJMRVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxF
KEpJVCkKLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KLSNpZiBD
UFUoWDg2XzY0KSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwg
T1MoSFVSRCkgfHwgT1MoV0lORE9XUykpCi0jZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKLSNlbmRp
ZgotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TLCBM
aW51eCwgYW5kIEZyZWVCU0QuICovCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQp
KSAmJiAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpKQot
I2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5kaWYKLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBv
biBNSVBTLiAqLwotI2lmIENQVShNSVBTKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5k
aWYKLSNlbmRpZgotCi0vKiBDb25jdXJyZW50IEpTIG9ubHkgd29ya3Mgb24gNjQtYml0IHBsYXRm
b3JtcyBiZWNhdXNlIGl0IHJlcXVpcmVzIHRoYXQKLSAgIHZhbHVlcyBnZXQgc3RvcmVkIHRvIGF0
b21pY2FsbHkuIFRoaXMgaXMgdHJpdmlhbGx5IHRydWUgb24gNjQtYml0IHBsYXRmb3JtcywKLSAg
IGJ1dCBub3QgdHJ1ZSBhdCBhbGwgb24gMzItYml0IHBsYXRmb3JtcyB3aGVyZSB2YWx1ZXMgYXJl
IGNvbXBvc2VkIG9mIHR3bwotICAgc2VwYXJhdGUgc3ViLXZhbHVlcy4gKi8KLSNpZiBFTkFCTEUo
SklUKSAmJiBVU0UoSlNWQUxVRTY0KQotI2RlZmluZSBFTkFCTEVfQ09OQ1VSUkVOVF9KUyAxCi0j
ZW5kaWYKLQotI2lmIF9faGFzX2luY2x1ZGUoPFN5c3RlbS9wdGhyZWFkX21hY2hkZXAuaD4pCi0j
ZGVmaW5lIEhBVkVfRkFTVF9UTFMgMQotI2VuZGlmCi0KLSNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BV
KEFSTTY0KSkgJiYgSEFWRShGQVNUX1RMUykKLSNkZWZpbmUgRU5BQkxFX0ZBU1RfVExTX0pJVCAx
Ci0jZW5kaWYKLQotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIy
KSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAx
Ci0jZWxzZQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAwCi0jZW5kaWYKLQotI2lmICFFTkFC
TEUoSklUKQotI3VuZGVmIEVOQUJMRV9NQVNNX1BST0JFCi0jZGVmaW5lIEVOQUJMRV9NQVNNX1BS
T0JFIDAKLSNlbmRpZgotCi0vKiBJZiB0aGUgYmFzZWxpbmUgaml0IGlzIG5vdCBhdmFpbGFibGUs
IHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsLgotICAgVGhlIE1hY3JvQXNzZW1ibGVy
Ojpwcm9iZSgpIGlzIGFsc28gcmVxdWlyZWQgZm9yIHN1cHBvcnRpbmcgdGhlIHVwcGVyIHRpZXJz
LiAqLwotI2lmICFFTkFCTEUoSklUKSB8fCAhRU5BQkxFKE1BU01fUFJPQkUpCi0jdW5kZWYgRU5B
QkxFX0RGR19KSVQKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmluZSBFTkFCTEVfREZHX0pJ
VCAwCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgotCi0vKiBJZiB0aGUgREZHIGpp
dCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbDogKi8K
LSNpZiAhRU5BQkxFKERGR19KSVQpCi0jdW5kZWYgRU5BQkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5B
QkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIFRoaXMgY29udHJvbHMgd2hldGhlciBCMyBpcyBi
dWlsdC4gQjMgaXMgbmVlZGVkIGZvciBGVEwgSklUIGFuZCBXZWJBc3NlbWJseSAqLwotI2lmIEVO
QUJMRShGVExfSklUKQotI2RlZmluZSBFTkFCTEVfQjNfSklUIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX1dFQkFTU0VNQkxZKQotI2lmIEVOQUJMRShCM19KSVQpICYmIFBMQVRGT1JN
KENPQ09BKSAmJiBDUFUoQUREUkVTUzY0KQotI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMQot
I2Vsc2UKLSNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZIDAKLSNlbmRpZgotI2VuZGlmCi0KLS8q
IFRoZSBTYW1wbGluZ1Byb2ZpbGVyIGlzIHRoZSBwcm9iYWJpbGlzdGljIGFuZCBsb3ctb3Zlcmhl
YWQgcHJvZmlsZXIgdXNlZCBieQotICogSlNDIHRvIG1lYXN1cmUgd2hlcmUgdGltZSBpcyBzcGVu
dCBpbnNpZGUgYSBKYXZhU2NyaXB0IHByb2dyYW0uCi0gKiBJbiBjb25maWd1cmF0aW9ucyBvdGhl
ciB0aGFuIFdpbmRvd3MgYW5kIERhcndpbiwgYmVjYXVzZSBsYXlvdXQgb2YgbWNvbnRleHRfdCBk
ZXBlbmRzIG9uIHN0YW5kYXJkIGxpYnJhcmllcyAobGlrZSBnbGliYyksCi0gKiBzYW1wbGluZyBw
cm9maWxlciBpcyBlbmFibGVkIGlmIFdlYktpdCB1c2VzIHB0aHJlYWRzIGFuZCBnbGliYy4gKi8K
LSNpZiAhZGVmaW5lZChFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIpCi0jaWYgIUVOQUJMRShDX0xP
T1ApICYmIChPUyhXSU5ET1dTKSB8fCBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkpCi0jZGVmaW5lIEVO
QUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCi0jZWxzZQotI2RlZmluZSBFTkFCTEVfU0FNUExJTkdf
UFJPRklMRVIgMAotI2VuZGlmCi0jZW5kaWYKLQotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYg
SEFWRShNQUNISU5FX0NPTlRFWFQpCi0jZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9GQVNUX01F
TU9SWSAxCi0jZW5kaWYKLQotLyogQ291bnRzIHVzZXMgb2Ygd3JpdGUgYmFycmllcnMgdXNpbmcg
c2FtcGxpbmcgY291bnRlcnMuIEJlIHN1cmUgdG8gYWxzbwotICAgc2V0IEVOQUJMRV9TQU1QTElO
R19DT1VOVEVSUyB0byAxLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9XUklURV9CQVJSSUVSX1BS
T0ZJTElORykKLSNkZWZpbmUgRU5BQkxFX1dSSVRFX0JBUlJJRVJfUFJPRklMSU5HIDAKLSNlbmRp
ZgotCi0vKiBMb2dzIGFsbCBhbGxvY2F0aW9uLXJlbGF0ZWQgYWN0aXZpdHkgdGhhdCBnb2VzIHRo
cm91Z2ggZmFzdE1hbGxvYyBvciB0aGUKLSAgIEpTQyBHQyAoYm90aCBjZWxscyBhbmQgYnV0dGVy
ZmxpZXMpLiBBbHNvIGxvZ3MgbWFya2luZy4gTm90ZSB0aGF0IHRoaXMKLSAgIGlzbid0IGEgY29t
cGxldGVseSBhY2N1cmF0ZSB2aWV3IG9mIHRoZSBoZWFwIHNpbmNlIGl0IGRvZXNuJ3QgaW5jbHVk
ZSBhbGwKLSAgIGJ1dHRlcmZseSByZXNpemUgb3BlcmF0aW9ucywgZG9lc24ndCB0ZWxsIHlvdSB3
aGF0IGlzIGdvaW5nIG9uIHdpdGggd2VhawotICAgcmVmZXJlbmNlcyAob3RoZXIgdGhhbiB0byB0
ZWxsIHlvdSB3aGVuIHRoZXkncmUgbWFya2VkKSwgYW5kIGRvZXNuJ3QKLSAgIHRyYWNrIGRpcmVj
dCBtbWFwKCkgYWxsb2NhdGlvbnMgb3IgdGhpbmdzIGxpa2UgSklUIGFsbG9jYXRpb24uICovCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0FMTE9DQVRJT05fTE9HR0lORykKLSNkZWZpbmUgRU5BQkxFX0FM
TE9DQVRJT05fTE9HR0lORyAwCi0jZW5kaWYKLQotLyogRW5hYmxlIHZlcmlmaWNhdGlvbiB0aGF0
IHRoYXQgcmVnaXN0ZXIgYWxsb2NhdGlvbnMgYXJlIG5vdCBtYWRlIHdpdGhpbiBnZW5lcmF0ZWQg
Y29udHJvbCBmbG93LgotICAgVHVybmVkIG9uIGZvciBkZWJ1ZyBidWlsZHMuICovCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0RGR19SRUdJU1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04pICYmIEVOQUJM
RShERkdfSklUKQotI2lmICFkZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX0RGR19SRUdJ
U1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMQotI2Vsc2UKLSNkZWZpbmUgRU5BQkxFX0RGR19S
RUdJU1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMAotI2VuZGlmCi0jZW5kaWYKLQotLyogQ29u
ZmlndXJlIHRoZSBKSVQgKi8KLSNpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihNU1ZDKQotI2RlZmlu
ZSBKU0NfSE9TVF9DQUxMIF9fZmFzdGNhbGwKLSNlbGlmIENQVShYODYpICYmIENPTVBJTEVSKEdD
Q19DT01QQVRJQkxFKQotI2RlZmluZSBKU0NfSE9TVF9DQUxMIF9fYXR0cmlidXRlX18gKChmYXN0
Y2FsbCkpCi0jZWxzZQotI2RlZmluZSBKU0NfSE9TVF9DQUxMCi0jZW5kaWYKLQotI2lmIENQVShY
ODYpICYmIE9TKFdJTkRPV1MpCi0jZGVmaW5lIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxM
IDEKLSNpZm5kZWYgQ0RFQ0wKLSNpZiBDT01QSUxFUihNU1ZDKQotI2RlZmluZSBDREVDTCBfX2Nk
ZWNsCi0jZWxzZQotI2RlZmluZSBDREVDTCBfX2F0dHJpYnV0ZV9fICgoX19jZGVjbCkpCi0jZW5k
aWYKLSNlbmRpZgotI2Vsc2UKLSNkZWZpbmUgQ0FMTElOR19DT05WRU5USU9OX0lTX1NURENBTEwg
MAotI2VuZGlmCi0KLSNpZiBDUFUoWDg2KQotI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNf
RkFTVENBTExfQ0FMTElOR19DT05WRU5USU9OIDEKLSNpZm5kZWYgRkFTVENBTEwKLSNpZiBDT01Q
SUxFUihNU1ZDKQotI2RlZmluZSBGQVNUQ0FMTCBfX2Zhc3RjYWxsCi0jZWxzZQotI2RlZmluZSBG
QVNUQ0FMTCAgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKLSNlbmRpZgotI2VuZGlmCi0jZWxz
ZQotI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNfRkFTVENBTExfQ0FMTElOR19DT05WRU5U
SU9OIDAKLSNlbmRpZgotCi0jaWYgRU5BQkxFKEpJVCkgJiYgQ0FMTElOR19DT05WRU5USU9OX0lT
X1NURENBTEwKLSNkZWZpbmUgSklUX09QRVJBVElPTiBDREVDTAotI2Vsc2UKLSNkZWZpbmUgSklU
X09QRVJBVElPTgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBDUFUoQVJN
NjQpICYmICghRU5BQkxFKEZBU1RfSklUX1BFUk1JU1NJT05TKSB8fCAhQ1BVKEFSTTY0RSkpCi0j
ZGVmaW5lIEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCAxCi0jZWxzZQotI2RlZmluZSBFTkFCTEVf
U0VQQVJBVEVEX1dYX0hFQVAgMAotI2VuZGlmCi0KLS8qIENvbmZpZ3VyZSB0aGUgaW50ZXJwcmV0
ZXIgKi8KLSNpZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLSNkZWZpbmUgSEFWRV9DT01QVVRF
RF9HT1RPIDEKLSNlbmRpZgotCi0vKiBEZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBlbmFibGUgQ29t
cHV0ZWQgR290byBPcGNvZGVzIG9yIG5vdDogKi8KLSNpZiBIQVZFKENPTVBVVEVEX0dPVE8pIHx8
ICFFTkFCTEUoQ19MT09QKQotI2RlZmluZSBFTkFCTEVfQ09NUFVURURfR09UT19PUENPREVTIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoVVNFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCkgJiYg
IUVOQUJMRShDX0xPT1ApICYmICFDT01QSUxFUihNU1ZDKSAmJiBcCi0gICAgKENQVShYODYpIHx8
IENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJX
SU4pKSkKLS8qIFRoaXMgZmVhdHVyZSB3b3JrcyBieSBlbWJlZGRpbmcgdGhlIE9wY29kZUlEIGlu
IHRoZSAzMiBiaXQganVzdCBiZWZvcmUgdGhlIGdlbmVyYXRlZCBMTGludCBjb2RlCi0gICB0aGF0
IGV4ZWN1dGVzIGVhY2ggb3Bjb2RlLiBJdCBjYW5ub3QgYmUgc3VwcG9ydGVkIGJ5IHRoZSBDTG9v
cCBzaW5jZSB0aGVyZSdzIG5vIHdheSB0byBlbWJlZCB0aGUKLSAgIE9wY29kZUlEIHdvcmQgaW4g
dGhlIENMb29wJ3Mgc3dpdGNoIHN0YXRlbWVudCBjYXNlcy4gSXQgaXMgYWxzbyBjdXJyZW50bHkg
bm90IGltcGxlbWVudGVkIGZvciBNU1ZDLgotKi8KLSNkZWZpbmUgVVNFX0xMSU5UX0VNQkVEREVE
X09QQ09ERV9JRCAxCi0jZW5kaWYKLQotLyogVXNlIF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzKDEp
IHRvIGdldCBDYWxsRnJhbWUqICovCi0jaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIChD
UFUoQVJNNjQpIHx8IENQVShYODZfNjQpKQotI2RlZmluZSBVU0VfQlVJTFRJTl9GUkFNRV9BRERS
RVNTIDEKLSNlbmRpZgotCi0vKiBSZWd1bGFyIEV4cHJlc3Npb24gVHJhY2luZyAtIFNldCB0byAx
IHRvIHRyYWNlIFJlZ0V4cCdzIGluIGpzYy4gIFJlc3VsdHMgZHVtcGVkIGF0IGV4aXQgKi8KLSNk
ZWZpbmUgRU5BQkxFX1JFR0VYUF9UUkFDSU5HIDAKLQotLyogWWV0IEFub3RoZXIgUmVnZXggUnVu
dGltZSAtIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZvciBKSVQgZW5hYmxlZCBwb3J0cy4gKi8KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0jZGVmaW5lIEVOQUJM
RV9ZQVJSX0pJVCAxCi0KLS8qIFNldHRpbmcgdGhpcyBmbGFnIGNvbXBhcmVzIEpJVCByZXN1bHRz
IHdpdGggaW50ZXJwcmV0ZXIgcmVzdWx0cy4gKi8KLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0RF
QlVHIDAKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFlBUlJfSklUKQotI2lmIENQVShBUk02NCkgfHwg
KENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkKLS8qIEVuYWJsZSBKSVQnaW5nIFJlZ3VsYXIg
RXhwcmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBwYXJlbnRoZXNpcyBhbmQgYmFjayByZWZlcmVu
Y2VzLiAqLwotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUyAx
Ci0jZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9CQUNLUkVGRVJFTkNFUyAxCi0jZW5kaWYKLSNlbmRp
ZgotCi0vKiBJZiBlaXRoZXIgdGhlIEpJVCBvciB0aGUgUmVnRXhwIEpJVCBpcyBlbmFibGVkLCB0
aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZQotICAgZW5hYmxlZCBhcyB3ZWxsOiAqLwotI2lmIEVO
QUJMRShKSVQpIHx8IEVOQUJMRShZQVJSX0pJVCkgfHwgIUVOQUJMRShDX0xPT1ApCi0jaWYgZGVm
aW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxFUgotI2Vycm9yICJDYW5u
b3QgZW5hYmxlIHRoZSBKSVQgb3IgUmVnRXhwIEpJVCB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3Nl
bWJsZXIiCi0jZWxzZQotI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FT
U0VNQkxFUiAxCi0jZW5kaWYKLSNlbmRpZgotCi0vKiBJZiB0aGUgRGlzYXNzZW1ibGVyIGlzIGVu
YWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJlIGVuYWJsZWQgYXMgd2VsbDogKi8KLSNp
ZiBFTkFCTEUoRElTQVNTRU1CTEVSKQotI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYg
IUVOQUJMRV9BU1NFTUJMRVIKLSNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgRGlzYXNzZW1ibGVy
IHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKLSNlbHNlCi0jdW5kZWYgRU5BQkxFX0FT
U0VNQkxFUgotI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKLSNlbmRpZgotI2VuZGlmCi0KLS8q
IEFTU0VSVF9FTkFCTEVEIHNob3VsZCBiZSB0cnVlIGlmIHdlIHdhbnQgdGhlIGN1cnJlbnQgY29t
cGlsYXRpb24gdW5pdCB0bwotICAgZG8gZGVidWcgYXNzZXJ0aW9uIGNoZWNrcyB1bmNvbmRpdGlv
bmFsbHkgKGUuZy4gdHJlYXQgYSBkZWJ1ZyBBU1NFUlQKLSAgIGxpa2UgYSBSRUxFQVNFX0FTU0VS
VC4KLSovCi0jaWZuZGVmIEFTU0VSVF9FTkFCTEVECi0jaWZkZWYgTkRFQlVHCi0jZGVmaW5lIEFT
U0VSVF9FTkFCTEVEIDAKLSNlbHNlCi0jZGVmaW5lIEFTU0VSVF9FTkFCTEVEIDEKLSNlbmRpZgot
I2VuZGlmCi0KLSNpZm5kZWYgRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04KLSNk
ZWZpbmUgRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04gQVNTRVJUX0VOQUJMRUQK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKERGR19KSVQpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAm
JiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkKLSNkZWZpbmUgRU5BQkxFX1NJR05BTF9CQVNF
RF9WTV9UUkFQUyAxCi0jZW5kaWYKLQotLyogQ1NTIFNlbGVjdG9yIEpJVCBDb21waWxlciAqLwot
I2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUKQotI2lmIChDUFUoWDg2XzY0KSB8
fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkp
KSAmJiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkpCi0jZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKLSNlbHNlCi0jZGVm
aW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDAKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBDUFUo
QVJNNjRFKSAmJiBPUyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfRkpDVlRaU19JTlNUUlVDVElPTiAx
Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgSEFWRV9BUFBfTElOS1MgMQot
I2RlZmluZSBVU0VfUEFTU0tJVCAxCi0jZGVmaW5lIFVTRV9RVUlDS19MT09LIDEKLSNkZWZpbmUg
VVNFX1NZU1RFTV9QUkVWSUVXIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBIQVZFX0NFTEVTVElBTCAxCi0jZGVm
aW5lIEhBVkVfQ09SRV9BTklNQVRJT05fUkVOREVSX1NFUlZFUiAxCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JN
KEFQUExFVFYpCi0jZGVmaW5lIEhBVkVfUEFSRU5UQUxfQ09OVFJPTFNfV0lUSF9VTkJMT0NLX0hB
TkRMRVIgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLQotI2RlZmluZSBVU0VfQVZG
T1VOREFUSU9OIDEKLSNkZWZpbmUgVVNFX1BST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSyAx
Ci0KLSNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFU
Rk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0RBVEFfREVURUNUSU9OIDEKLSNlbmRp
ZgotCi0vKiBGSVhNRTogRW5hYmxlIEhBVkVfUEFSRU5UQUxfQ09OVFJPTFMgZm9yIHdhdGNoT1Mg
U2ltdWxhdG9yIG9uY2UgcmRhcjovL3Byb2JsZW0vNTQ2MDgzODYgaXMgcmVzb2x2ZWQgKi8KLSNp
ZiAhUExBVEZPUk0oQVBQTEVUVikgJiYgKCFQTEFURk9STShXQVRDSE9TKSB8fCAhUExBVEZPUk0o
SU9TX0ZBTUlMWV9TSU1VTEFUT1IpKQotI2RlZmluZSBIQVZFX1BBUkVOVEFMX0NPTlRST0xTIDEK
LSNlbmRpZgotCi0jaWYgIVBMQVRGT1JNKEFQUExFVFYpCi0jZGVmaW5lIEhBVkVfQVZLSVQgMQot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoV0VCR0wpCi0vKiBVU0VfQU5HTEU9MSB1c2VzIEFOR0xFIGZv
ciB0aGUgV2ViR0wgYmFja2VuZC4KLSAgIEl0IHJlcGxhY2VzIFVTRV9PUEVOR0wsIFVTRV9PUEVO
R0xfRVMgYW5kIFVTRV9FR0wuICovCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oTUFD
Q0FUQUxZU1QpICYmIF9faGFzX2luY2x1ZGUoPE9wZW5HTC9PcGVuR0wuaD4pKQotI2RlZmluZSBV
U0VfT1BFTkdMIDEKLSNkZWZpbmUgVVNFX09QRU5HTF8zIDEKLSNkZWZpbmUgVVNFX09QRU5HTF9F
UyAwCi0jZGVmaW5lIFVTRV9PUEVOR0xfRVNfMyAwCi0jZGVmaW5lIFVTRV9BTkdMRSAwCi0jZWxz
ZQotI2RlZmluZSBVU0VfT1BFTkdMIDAKLSNkZWZpbmUgVVNFX09QRU5HTF8zIDAKLSNkZWZpbmUg
VVNFX09QRU5HTF9FUyAxCi0jZGVmaW5lIFVTRV9PUEVOR0xfRVNfMyAxCi0jZGVmaW5lIFVTRV9B
TkdMRSAwCi0jZW5kaWYKLSNpZiBQTEFURk9STShDT0NPQSkKLSNpZm5kZWYgR0xfU0lMRU5DRV9E
RVBSRUNBVElPTgotI2RlZmluZSBHTF9TSUxFTkNFX0RFUFJFQ0FUSU9OIDEKLSNlbmRpZgotI2Vu
ZGlmCi0jZW5kaWYKLQotI2RlZmluZSBVU0VfTUVUQUwgMQotCi0jaWYgRU5BQkxFKEFDQ0VTU0lC
SUxJVFkpCi0jZGVmaW5lIFVTRV9BQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMgMQotI2VuZGlm
Ci0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkdMKQotI2lmICFkZWZpbmVkKFVTRV9BTkdMRSkK
LSNkZWZpbmUgVVNFX0FOR0xFIDAKLSNlbmRpZgotCi0jaWYgKFVTRV9BTkdMRSAmJiAoVVNFX09Q
RU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9FR0wpICYmIFVTRV9FR0wpKSkg
JiYgIVVTRShURVhUVVJFX01BUFBFUikKLSNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRpYmxl
IHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTAotI2VuZGlmCi0jZW5k
aWYKLQotI2lmIFVTRShURVhUVVJFX01BUFBFUikgJiYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRf
R0wpICYmICFkZWZpbmVkKFVTRV9URVhUVVJFX01BUFBFUl9HTCkKLSNkZWZpbmUgVVNFX1RFWFRV
UkVfTUFQUEVSX0dMIDEKLSNlbmRpZgotCi0jaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02
NCkKLSNkZWZpbmUgRU5BQkxFX0JSQU5DSF9DT01QQUNUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCkgJiYgSEFWRShESVNQQVRDSF9IKQot
I2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIIDEKLSNlbGlmICFkZWZpbmVkKEVO
QUJMRV9USFJFQURJTkdfT1BFTk1QKSAmJiBkZWZpbmVkKF9PUEVOTVApCi0jZGVmaW5lIEVOQUJM
RV9USFJFQURJTkdfT1BFTk1QIDEKLSNlbGlmICFkZWZpbmVkKFRIUkVBRElOR19HRU5FUklDKQot
I2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0dFTkVSSUMgMQotI2VuZGlmCi0KLSNpZiBVU0UoR0xJ
QikKLSNpbmNsdWRlIDx3dGYvZ2xpYi9HVHlwZWRlZnMuaD4KLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoVVNFX0VYUE9SVF9NQUNST1MpICYmIChQTEFURk9STShDT0NPQSkgfHwgT1MoV0lORE9XUykp
Ci0jZGVmaW5lIFVTRV9FWFBPUlRfTUFDUk9TIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCi0jZGVmaW5lIFVTRV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoVVNFX0lNTEFOR19GT05UX0xJTksyKQotI2RlZmluZSBVU0Vf
SU1MQU5HX0ZPTlRfTElOSzIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0NfVkFM
SURBVElPTikgJiYgIWRlZmluZWQoTkRFQlVHKQotI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElP
TiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSkgJiYg
IU9TKFdJTkRPV1MpCi0jZGVmaW5lIEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9UUkVFX0RFQlVHR0lORykKLSNpZiAhZGVmaW5lZChOREVC
VUcpCi0jZGVmaW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCi0jZWxzZQotI2RlZmluZSBFTkFC
TEVfVFJFRV9ERUJVR0dJTkcgMAotI2VuZGlmCi0jZW5kaWYKLQotLyoKLSAqIEVuYWJsZSB0aGlz
IHRvIHB1dCBlYWNoIElzb0hlYXAgYW5kIG90aGVyIGFsbG9jYXRpb24gY2F0ZWdvcmllcyBpbnRv
IHRoZWlyIG93biBtYWxsb2MgaGVhcHMsIHNvIHRoYXQgdG9vbHMgbGlrZSB2bW1hcCBjYW4gc2hv
dyBob3cgYmlnIGVhY2ggaGVhcCBpcy4KLSAqIFR1cm4gQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVB
S0RPV04gb24gaW4gYm1hbGxvYyB0b2dldGhlciB3aGVuIHVzaW5nIHRoaXMuCi0gKi8KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOKQotI2RlZmluZSBFTkFCTEVfTUFM
TE9DX0hFQVBfQlJFQUtET1dOIDAKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVm
aW5lIFVTRV9DT1JFTUVESUEgMQotI2RlZmluZSBVU0VfVklERU9UT09MQk9YIDEKLSNkZWZpbmUg
SEFWRV9BVkZPVU5EQVRJT05fVklERU9fT1VUUFVUIDEKLSNkZWZpbmUgSEFWRV9DT1JFX1ZJREVP
IDEKLSNkZWZpbmUgSEFWRV9NRURJQV9QTEFZRVIgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShD
T0NPQSkKLSNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQIDEK
LSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfQVZGT1VOREFUSU9O
X0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQgMQotI2RlZmluZSBIQVZFX01FRElBX0FDQ0VTU0lCSUxJ
VFlfRlJBTUVXT1JLIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhB
VkVfQVZGT1VOREFUSU9OX0xPQURFUl9ERUxFR0FURSAxCi0jZW5kaWYKLQotI2lmICFQTEFURk9S
TShXSU4pCi0jZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQotI2RlZmluZSBIQVZFX0FQUExFX0dSQVBISUNTX0NPTlRST0wgMQotI2RlZmluZSBIQVZFX05T
Q1VSU09SIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBVU0VfQ09SRUFV
RElPIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoVVNFX1pMSUIpCi0jZGVmaW5lIFVTRV9aTElC
IDEKLSNlbmRpZgotCi0jaWZuZGVmIEhBVkVfUU9TX0NMQVNTRVMKLSNpZiBQTEFURk9STShDT0NP
QSkKLSNkZWZpbmUgSEFWRV9RT1NfQ0xBU1NFUyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVm
IEhBVkVfVk9VQ0hFUlMKLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9WT1VDSEVS
UyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jZGVmaW5lIFVTRV9HUkFNTUFSX0NIRUNLSU5HIDEKLQot
I2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCi0jZGVmaW5lIFVTRV9VTklGSUVE
X1RFWFRfQ0hFQ0tJTkcgMQotI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBVU0Vf
QVVUT01BVElDX1RFWFRfUkVQTEFDRU1FTlQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMp
Ci0vKiBTb21lIHBsYXRmb3JtcyBwcm92aWRlIFVJIGZvciBzdWdnZXN0aW5nIGF1dG9jb3JyZWN0
aW9uLiAqLwotI2RlZmluZSBVU0VfQVVUT0NPUlJFQ1RJT05fUEFORUwgMQotI2VuZGlmCi0KLSNp
ZiBQTEFURk9STShDT0NPQSkKLS8qIFNvbWUgcGxhdGZvcm1zIHVzZSBzcGVsbGluZyBhbmQgYXV0
b2NvcnJlY3Rpb24gbWFya2VycyB0byBwcm92aWRlIHZpc3VhbCBjdWUuIE9uIHN1Y2ggcGxhdGZv
cm0sIGlmIHdvcmQgd2l0aCBtYXJrZXIgaXMgZWRpdGVkLCB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUg
bWFya2VyLiAqLwotI2RlZmluZSBVU0VfTUFSS0VSX1JFTU9WQUxfVVBPTl9FRElUSU5HIDEKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBVU0VfSU5TRVJUSU9OX1VORE9fR1JP
VVBJTkcgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9BVkFT
U0VUUkVBREVSIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9B
VURJT19TRVNTSU9OIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhB
VkVfSU9TVVJGQUNFIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBM
QVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQotI2RlZmluZSBIQVZFX0lPU1VSRkFDRV9DT1JF
SU1BR0VfU1VQUE9SVCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQ
TEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQot
I2RlZmluZSBIQVZFX0lPU1VSRkFDRV9BQ0NFTEVSQVRPUiAxCi0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKENPQ09BKQotI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgMQotI2VuZGlmCi0KLSNp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKLSN1bmRlZiBFTkFCTEVfT1BFTlRZUEVf
VkVSVElDQUwKLSNkZWZpbmUgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMIDEKLSNlbmRpZgotCi0j
aWYgQ09NUElMRVIoTVNWQykKLSN1bmRlZiBfX1NURENfRk9STUFUX01BQ1JPUwotI2RlZmluZSBf
X1NURENfRk9STUFUX01BQ1JPUwotI3VuZGVmIF9fU1REQ19MSU1JVF9NQUNST1MKLSNkZWZpbmUg
X19TVERDX0xJTUlUX01BQ1JPUwotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5l
IEhBVkVfTlNfQUNUSVZJVFkgMQotI2VuZGlmCi0KLS8qIERpc2FibGUgU2hhcmVkQXJyYXlCdWZm
ZXJzIHVudGlsIFNwZWN0cmUgc2VjdXJpdHkgY29uY2VybnMgYXJlIG1pdGlnYXRlZC4gKi8KLSNk
ZWZpbmUgRU5BQkxFX1NIQVJFRF9BUlJBWV9CVUZGRVIgMAotCi0jaWYgKE9TKERBUldJTikgJiYg
VVNFKENHKSkgfHwgKFVTRShGUkVFVFlQRSkgJiYgIVBMQVRGT1JNKEdUSykpIHx8IChQTEFURk9S
TShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQotI3VuZGVmIEVOQUJMRV9PUEVOVFlQ
RV9NQVRICi0jZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9NQVRIIDEKLSNlbmRpZgotCi0vKiBTZXQg
VEFSR0VUX09TX0lQSE9ORSB0byAwIGJ5IGRlZmF1bHQgdG8gYWxsb3cgdXNpbmcgaXQgYXMgYSBn
dWFyZCAKLSAqIGluIGNyb3NzLXBsYXRmb3JtIHRoZSBzYW1lIHdheSBhcyBpdCBpcyB1c2VkIGlu
IE9TKERBUldJTikgY29kZS4gKi8gCi0jaWYgIWRlZmluZWQoVEFSR0VUX09TX0lQSE9ORSkgJiYg
IU9TKERBUldJTikKLSNkZWZpbmUgVEFSR0VUX09TX0lQSE9ORSAwCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKENPQ09BKQotI2RlZmluZSBVU0VfTUVESUFUT09MQk9YIDEKLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9PU19MT0cgMQotI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCi0jZGVmaW5lIFVTRV9PU19TVEFURSAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfU0VDX1RSVVNUX1NFUklBTElaQVRJT04gMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChXVEZfREVGQVVMVF9FVkVOVF9MT09QKQotI2RlZmluZSBX
VEZfREVGQVVMVF9FVkVOVF9MT09QIDEKLSNlbmRpZgotCi0jaWYgV1RGX0RFRkFVTFRfRVZFTlRf
TE9PUAotI2lmIFVTRShHTElCKQotLyogVXNlIEdMaWIncyBldmVudCBsb29wIGFic3RyYWN0aW9u
LiBQcmltYXJpbHkgR1RLIHBvcnQgdXNlcyBpdC4gKi8KLSNkZWZpbmUgVVNFX0dMSUJfRVZFTlRf
TE9PUCAxCi0jZWxpZiBPUyhXSU5ET1dTKQotLyogVXNlIFdpbmRvd3MgbWVzc2FnZSBwdW1wIGFi
c3RyYWN0aW9uLgotICogRXZlbiBpZiB0aGUgcG9ydCBpcyBBcHBsZVdpbiwgd2UgdXNlIHRoZSBX
aW5kb3dzIG1lc3NhZ2UgcHVtcCBzeXN0ZW0gZm9yIHRoZSBldmVudCBsb29wLAotICogc28gdGhh
dCBVU0UoV0lORE9XU19FVkVOVF9MT09QKSAmJiBVU0UoQ0YpIGNhbiBiZSB0cnVlLgotICogQW5k
IFBMQVRGT1JNKFdJTikgYW5kIFBMQVRGT1JNKEdUSykgYXJlIGV4Y2x1c2l2ZS4gSWYgdGhlIHBv
cnQgaXMgR1RLLAotICogUExBVEZPUk0oV0lOKSBzaG91bGQgYmUgZmFsc2UuIEFuZCBpbiB0aGF0
IGNhc2UsIEdMaWIncyBldmVudCBsb29wIGlzIHVzZWQuCi0gKi8KLSNkZWZpbmUgVVNFX1dJTkRP
V1NfRVZFTlRfTE9PUCAxCi0jZWxpZiBQTEFURk9STShDT0NPQSkKLS8qIE9TIFggYW5kIElPUy4g
VXNlIENvcmVGb3VuZGF0aW9uICYgR0NEIGFic3RyYWN0aW9uLiAqLwotI2RlZmluZSBVU0VfQ09D
T0FfRVZFTlRfTE9PUCAxCi0jZWxzZQotI2RlZmluZSBVU0VfR0VORVJJQ19FVkVOVF9MT09QIDEK
LSNlbmRpZgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgVVNFX01FRElB
UkVNT1RFIDEKLSNlbmRpZgotCi0jaWYgQ09NUElMRVIoTVNWQykKLS8qIEVuYWJsZSBzdHJpY3Qg
cnVudGltZSBzdGFjayBidWZmZXIgY2hlY2tzLiAqLwotI3ByYWdtYSBzdHJpY3RfZ3NfY2hlY2so
b24pCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgSEFWRV9UT1VDSF9CQVIg
MQotI2RlZmluZSBVU0VfRElDVEFUSU9OX0FMVEVSTkFUSVZFUyAxCi0KLSNpZiBkZWZpbmVkKF9f
TFA2NF9fKQotI2RlZmluZSBFTkFCTEVfV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIgMQot
I2VuZGlmCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLwotCi0jaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShXRUJfUlRDKQotI2RlZmluZSBVU0VfTElCV0VCUlRDIDEKLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KSB8fCBVU0UoR0NSWVBUKQotI2RlZmluZSBIQVZFX1JTQV9QU1MgMQotI2VuZGlmCi0KLSNpZiAo
UExBVEZPUk0oTUFDKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNk
ZWZpbmUgVVNFX1NPVVJDRV9BUFBMSUNBVElPTl9BVURJVF9EQVRBIDEKLSNlbmRpZgotCi0jaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1
MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMzAwMDApCi0jZGVmaW5lIEhBVkVfSFNUU19TVE9SQUdFX1BBVEggMQotI2Vu
ZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkK
LSNkZWZpbmUgSEFWRV9VUkxfRk9STUFUVElORyAxCi0jZW5kaWYKLQotI2lmICFPUyhXSU5ET1dT
KQotI2RlZmluZSBIQVZFX1NUQUNLX0JPVU5EU19GT1JfTkVXX1RIUkVBRCAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlT
VCkKLSNkZWZpbmUgSEFWRV9BVkNPTlRFTlRLRVlTRVNTSU9OIDEKLSNlbmRpZgotCi0jaWYgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAp
IHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEhBVkVf
U0VDX0tFWV9QUk9YWSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoQ0Ep
Ci0jZGVmaW5lIFVTRV9JT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUgMQotI2VuZGlmCi0K
LS8qIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBlbmFibGVkIG9yIElPU19GQU1JTFksIG5vdCBqdXN0
IElPUz8gKi8KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TKQotI2RlZmluZSBIQVZFX0ZPVU5EQVRJ
T05fV0lUSF9TQVZFX0NPT0tJRVNfV0lUSF9DT01QTEVUSU9OX0hBTkRMRVIgMQotI2VuZGlmCi0K
LS8qIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBlbmFibGVkIGZvciBJT1NfRkFNSUxZLCBub3QganVz
dCBJT1M/ICovCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPUykKLSNkZWZpbmUgSEFWRV9GT1VOREFU
SU9OX1dJVEhfU0FNRV9TSVRFX0NPT0tJRV9TVVBQT1JUIDEKLSNlbmRpZgotCi0jaWYgUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAxMDE0MDAKLSNkZWZp
bmUgSEFWRV9OU0hUVFBDT09LSUVTVE9SQUdFX19JTklUV0lUSElERU5USUZJRVJfV0lUSF9JTkFD
Q1VSQVRFX05VTExBQklMSVRZIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVm
aW5lIEhBVkVfQ0ZORVRXT1JLX1dJVEhfQ09OVEVOVF9FTkNPRElOR19TTklGRklOR19PVkVSUklE
RSAxCi0vKiBUaGUgb3ZlcnJpZGUgaXNuJ3QgbmVlZGVkIG9uIGlPUyBmYW1pbHksIGFzIHRoZSBk
ZWZhdWx0IGJlaGF2aW9yIGlzIHRvIG5vdCBzbmlmZi4gKi8KLS8qIEZJWE1FOiBUaGlzIHNob3Vs
ZCBwcm9iYWJseSBiZSBlbmFibGVkIG9uIDEwLjEzLjIgYW5kIG5ld2VyLCBub3QganVzdCAxMC4x
NCBhbmQgbmV3ZXIuICovCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTQwMAotI2RlZmluZSBVU0VfQ0ZORVRXT1JLX0NPTlRFTlRfRU5D
T0RJTkdfU05JRkZJTkdfT1ZFUlJJREUgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAo
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTMwMDAwKSB8fCBQTEFURk9STShHVEspCi0jZGVmaW5lIEhBVkVfT1NfREFSS19NT0RFX1NV
UFBPUlQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCi0jZGVmaW5lIEhBVkVfQ0dfRk9OVF9SRU5ERVJJTkdf
R0VUX0ZPTlRfU01PT1RISU5HX0RJU0FCTEVEIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IFBMQVRG
T1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIEhBVkVfQ0FfV0hFUkVfQURESVRJVkVfVFJBTlNGT1JN
U19BUkVfUkVWRVJTRUQgMQotI2VuZGlmCi0KLSNpZmRlZiBfX0FQUExFX18KLSNkZWZpbmUgSEFW
RV9GVU5DX1VTTEVFUCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
V1BFKQotLyogRklYTUU6IFRoaXMgcmVhbGx5IG5lZWRzIGEgZGVzY3JpcHRpdmUgbmFtZSwgdGhp
cyAibmV3IHRoZW1lIiB3YXMgYWRkZWQgaW4gMjAwOC4gKi8KLSNkZWZpbmUgVVNFX05FV19USEVN
RSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgSEFWRV9XSU5ET1dfU0VS
VkVSX09DQ0xVU0lPTl9OT1RJRklDQVRJT05TIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09D
T0EpCi0jZGVmaW5lIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MIDEKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oSU9TKQotLyogRklYTUU6IFNhZmFyaVNlcnZpY2VzLmZyYW1ld29yayBleGlzdHMgb24g
bWFjT1MuIEl0IGlzIG9ubHkgdXNlZCBieSBXZWJLaXQgb24gaU9TLCBzbyB0aGUgYmVoYXZpb3Ig
aXMgY29ycmVjdCwgYnV0IHRoZSBuYW1lIGlzIG1pc2xlYWRpbmcuICovCi0jZGVmaW5lIEhBVkVf
U0FGQVJJX1NFUlZJQ0VTX0ZSQU1FV09SSyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShXQVRDSE9TKQotI2RlZmluZSBIQVZFX1NBRkVf
QlJPV1NJTkcgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpCi0jZGVmaW5lIEhBVkVfTElO
S19QUkVWSUVXIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0vKiBGSVhNRTogVGhp
cyBpcyBhIFVTRSBzdHlsZSBtYWNybywgYXMgaXQgdHJpZ2dlcnMgdGhlIHVzZSBvZiBDRlVSTENv
bm5lY3Rpb24gZnJhbWV3b3JrIHN0dWJzLiAqLwotLyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVj
ZXNzYXJ5PyBDRlVSTENvbm5lY3Rpb24gaXNuJ3QgdXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55
IG1vcmUuICovCi0jZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDEKLSNlbmRpZgotCi0jaWYg
KFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSkKLSNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZ
X1NVUFBPUlQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDAgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NQVhfQUxMT1dFRCA+PSAxMzAxMDAKLSNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZX0JVTkRM
RVNfUEFUSCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgRU5BQkxFX0ZV
TExfS0VZQk9BUkRfQUNDRVNTIDEKLSNlbmRpZgotCi0jaWYgKChQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQRSkpICYmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCi0jZGVmaW5lIEVOQUJMRV9LSU5FVElDX1NDUk9M
TElORyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKQotI2RlZmlu
ZSBIQVZFX0FVVEhPUklaQVRJT05fU1RBVFVTX0ZPUl9NRURJQV9UWVBFIDEKLSNlbmRpZgotCi0j
aWYgKFBMQVRGT1JNKE1BQykgJiYgKF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNDAwICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDE0MDQpKSB8fCAo
UExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAw
MDAgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAyMDApIHx8IFBMQVRG
T1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCi0jZGVmaW5lIEhBVkVfQ0ZORVRXT1JL
X09WRVJSSURFX1NFU1NJT05fQ09PS0lFX0FDQ0VQVF9QT0xJQ1kgMQotI2VuZGlmCi0KLSNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUw
MCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEzMDAwMCkKLSNkZWZpbmUgSEFWRV9DRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NU
UklDVFJVU1RFVkFMVUFURSAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShJT1NfRkFN
SUxZKQotI2RlZmluZSBIQVZFX0NGTkVUV09SS19ORUdPVElBVEVEX1NTTF9QUk9UT0NPTF9DSVBI
RVIgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTYwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkKLSNkZWZpbmUgSEFWRV9DRk5F
VFdPUktfTUVUUklDU19BUElTX1Y0IDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMAotI2RlZmluZSBIQVZFX0NT
Q0hFQ0tGSVhESVNBQkxFIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1J
TFkpCi0jZGVmaW5lIEhBVkVfU0FOREJPWF9JU1NVRV9NQUNIX0VYVEVOU0lPTl9UT19QUk9DRVNT
X0JZX0FVRElUX1RPS0VOIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1J
TFkpCi0jZGVmaW5lIEhBVkVfU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNT
X0JZX0FVRElUX1RPS0VOIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCi0jZGVm
aW5lIEhBVkVfTUROU19GQVNUX1JFR0lTVFJBVElPTiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KE1BQykKLSNkZWZpbmUgRU5BQkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElPTiAoX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMCkKLSNlbGlmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0jZGVmaW5lIEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04gKF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTMwMDAwKQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9ESVNBTExPV0FCTEVfVVNFUl9JTlNUQUxM
RURfRk9OVFMgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkKLSNkZWZpbmUgSEFW
RV9DVEZPTlRDUkVBVEVGT1JDSEFSQUNURVJTV0lUSExBTkdVQUdFQU5ET1BUSU9OIDEKLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTMwMDAwCi0jZGVmaW5lIEhBVkVfQVJLSVRfUVVJQ0tfTE9PS19QUkVWSUVX
X0lURU0gMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDAKLSNkZWZpbmUgSEFWRV9VSV9XS19ET0NV
TUVOVF9DT05URVhUIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVm
aW5lIEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lORyAxCi0jZGVmaW5lIEhBVkVf
SE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSIDEKLSNkZWZpbmUgSEFWRV9VSV9QQVJBTExBWF9UUkFO
U0lUSU9OX0dFU1RVUkVfUkVDT0dOSVpFUiAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9S
TShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX0FMTE9XU19TRU5TSVRJVkVfTE9HR0lORyAxCi0j
ZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX0ZB
SVJQTEFZU1RSRUFNSU5HX0NFTkNfSU5JVERBVEEgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0o
SU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBM
QVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCi0jZGVmaW5lIEhBVkVfVUlfU0NS
T0xMX1ZJRVdfSU5ESUNBVE9SX0ZMQVNISU5HX1NQSSAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9S
TShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwg
UExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLSNkZWZpbmUgSEFWRV9BUFBf
TElOS1NfV0lUSF9JU0VOQUJMRUQgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oSU9TKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCi0jZGVmaW5lIEhBVkVf
Uk9VVEVfU0hBUklOR19QT0xJQ1lfTE9OR19GT1JNX1ZJREVPIDEKLSNlbmRpZgotCi0jaWYgKFBM
QVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAw
ICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKSkKLSNkZWZpbmUgSEFWRV9ERVZJQ0VfTUFOQUdF
TUVOVCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01BWF9BTExPV0VEIDwgMTAxNTAwCi0jZGVmaW5lIFVTRV9SRUFMUEFUSF9GT1JfRExPUEVOX1BS
RUZMSUdIVCAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
X19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShX
QVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKQotI2RlZmluZSBIQVZFX05TVVJMU0VTU0lPTl9X
RUJTT0NLRVQgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRDSE9T
KSB8fCBQTEFURk9STShBUFBMRVRWKQotI2RlZmluZSBIQVZFX0FWUExBWUVSX1JFU09VUkNFX0NP
TlNFUlZBVElPTl9MRVZFTCAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIHx8IFBMQVRGT1JN
KFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCi0jZGVmaW5lIEhBVkVfQ09SRVRFWFRfQVVU
T19PUFRJQ0FMX1NJWklORyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApIHx8IChQTEFURk9STShJT1MpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTMwMDAwKQotI2RlZmluZSBIQVZF
X05TRk9OVF9XSVRIX09QVElDQUxfU0laSU5HX0JVRyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNTAwKSkKLSNkZWZpbmUgSEFWRV9BUFBfU1NPIDEKLSNlbmRpZgotCi0jaWYgKFBM
QVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAw
IHx8IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDE1MDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpIHx8IFBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBIQVZFX1RMU19QUk9UT0NPTF9WRVJTSU9OX1QgMQot
I2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8
fCBQTEFURk9STShBUFBMRVRWKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgSEFW
RV9TRUNfVFJVU1RfRVZBTFVBVEVfV0lUSF9FUlJPUiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIFVTRV9VSUNPTlRFWFRNRU5V
IDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTUwMAotI2RlZmluZSBIQVZFX1NVQlZJRVdTX0lWQVJfU1BJIDEKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9X
RUQgPCAxMDE1MDAKLSNkZWZpbmUgSEFWRV9TVUJWSUVXU19JVkFSX0RFQ0xBUkVEX0JZX1NESyAx
Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkgfHwgUExBVEZPUk0o
V0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLSNkZWZpbmUgVVNFX1BMQVRGT1JNX1NZU1RF
TV9GQUxMQkFDS19MSVNUIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxNTAwCi0jZGVmaW5lIEhBVkVfQVhfQ0xJRU5U
X1RZUEUgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8
fCBQTEFURk9STShBUFBMRVRWKQotI2RlZmluZSBIQVZFX0RFU0lHTl9TWVNURU1fVUlfRk9OVFMg
MQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19T
SU1VTEFUT1IpKQotI2RlZmluZSBIQVZFX0RFVklDRV9JREVOVElUWSAxCi0jZW5kaWYKLQotI2lm
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
NTAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX0RBVEFfUFJPVEVDVElP
Tl9LRVlDSEFJTiAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSkKLSNkZWZpbmUgSEFWRV9ORUFSX0ZJ
RUxEIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKCEoZGVmaW5lZChV
U0VfU1lTVEVNX01BTExPQykgJiYgVVNFX1NZU1RFTV9NQUxMT0MpICYmIChPUyhMSU5VWCkgJiYg
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkpKQotI2RlZmluZSBVU0VfQk1BTExPQ19N
RU1PUllfRk9PVFBSSU5UX0FQSSAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1Nf
RkFNSUxZKQotI2RlZmluZSBIQVZFX09TX1NJR05QT1NUIDEKLSNlbmRpZgpJbmRleDogU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCShyZXZpc2lvbiAyNTQzOTApCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw2ICszMCw5IEBACiAvKiBJbmNsdWRlIGNvbXBpbGVyIHNwZWNpZmlj
IG1hY3JvcyAqLwogI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgogCisvKiBJbmNsdWRlIENQVSBz
cGVjaWZpYyBtYWNyb3MgKi8KKyNpbmNsdWRlIDx3dGYvQ1BVLmg+CisKIC8qID09PT0gUExBVEZP
Uk0gaGFuZGxlcyBPUywgb3BlcmF0aW5nIGVudmlyb25tZW50LCBncmFwaGljcyBBUEksIGFuZAog
ICAgQ1BVLiBUaGlzIG1hY3JvIHdpbGwgYmUgcGhhc2VkIG91dCBpbiBmYXZvciBvZiBwbGF0Zm9y
bSBhZGFwdGF0aW9uCiAgICBtYWNyb3MsIHBvbGljeSBkZWNpc2lvbiBtYWNyb3MsIGFuZCB0b3At
bGV2ZWwgcG9ydCBkZWZpbml0aW9ucy4gPT09PSAqLwpAQCAtNTUsMzAyICs1OCwzMiBAQAogI2Rl
ZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEVOQUJMRV8jI1dURl9GRUFUVVJFICAm
JiBFTkFCTEVfIyNXVEZfRkVBVFVSRSkKIAogCi0vKiA9PT09IENQVSgpIC0gdGhlIHRhcmdldCBD
UFUgYXJjaGl0ZWN0dXJlID09PT0gKi8KLS8qIENQVShLTk9XTikgYmVjb21lcyB0cnVlIGlmIHdl
IGV4cGxpY2l0bHkgc3VwcG9ydCBhIHRhcmdldCBDUFUuICovCi0KLS8qIENQVShNSVBTKSAtIE1J
UFMgMzItYml0IGFuZCA2NC1iaXQgKi8KLSNpZiAoZGVmaW5lZChtaXBzKSB8fCBkZWZpbmVkKF9f
bWlwc19fKSB8fCBkZWZpbmVkKE1JUFMpIHx8IGRlZmluZWQoX01JUFNfKSB8fCBkZWZpbmVkKF9f
bWlwczY0KSkKLSNpZiBkZWZpbmVkKF9BQkk2NCkgJiYgKF9NSVBTX1NJTSA9PSBfQUJJNjQpCi0j
ZGVmaW5lIFdURl9DUFVfTUlQUzY0IDEKLSNkZWZpbmUgV1RGX01JUFNfQVJDSCBfX21pcHM2NAot
I2Vsc2UKLSNkZWZpbmUgV1RGX0NQVV9NSVBTIDEKLSNkZWZpbmUgV1RGX01JUFNfQVJDSCBfX21p
cHMKLSNlbmRpZgotI2RlZmluZSBXVEZfQ1BVX0tOT1dOIDEKLSNkZWZpbmUgV1RGX01JUFNfUElD
IChkZWZpbmVkIF9fUElDX18pCi0jZGVmaW5lIFdURl9NSVBTX0lTQSh2KSAoZGVmaW5lZCBXVEZf
TUlQU19BUkNIICYmIFdURl9NSVBTX0FSQ0ggPT0gdikKLSNkZWZpbmUgV1RGX01JUFNfSVNBX0FU
X0xFQVNUKHYpIChkZWZpbmVkIFdURl9NSVBTX0FSQ0ggJiYgV1RGX01JUFNfQVJDSCA+PSB2KQot
I2RlZmluZSBXVEZfTUlQU19BUkNIX1JFViBfX21pcHNfaXNhX3JldgotI2RlZmluZSBXVEZfTUlQ
U19JU0FfUkVWKHYpIChkZWZpbmVkIFdURl9NSVBTX0FSQ0hfUkVWICYmIFdURl9NSVBTX0FSQ0hf
UkVWID09IHYpCi0jZGVmaW5lIFdURl9NSVBTX0lTQV9SRVZfQVRfTEVBU1QodikgKGRlZmluZWQg
V1RGX01JUFNfQVJDSF9SRVYgJiYgV1RGX01JUFNfQVJDSF9SRVYgPj0gdikKLSNkZWZpbmUgV1RG
X01JUFNfRE9VQkxFX0ZMT0FUIChkZWZpbmVkIF9fbWlwc19oYXJkX2Zsb2F0ICYmICFkZWZpbmVk
IF9fbWlwc19zaW5nbGVfZmxvYXQpCi0jZGVmaW5lIFdURl9NSVBTX0ZQNjQgKGRlZmluZWQgX19t
aXBzX2ZwciAmJiBfX21pcHNfZnByID09IDY0KQogLyogTUlQUyByZXF1aXJlcyBhbGxvY2F0b3Jz
IHRvIHVzZSBhbGlnbmVkIG1lbW9yeSAqLworI2lmIENQVShNSVBTKSB8fCBDUFUoTUlQUzY0KQog
I2RlZmluZSBVU0VfQVJFTkFfQUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQotI2VuZGlmIC8qIE1J
UFMgKi8KKyNlbmRpZgogCi0vKiBDUFUoUFBDNjQpIC0gUG93ZXJQQyA2NC1iaXQgQmlnIEVuZGlh
biAqLwotI2lmICggIGRlZmluZWQoX19wcGM2NF9fKSAgICAgIFwKLSAgICB8fCBkZWZpbmVkKF9f
UFBDNjRfXykpICAgICBcCi0gICAgJiYgZGVmaW5lZChfX0JZVEVfT1JERVJfXykgXAotICAgICYm
IChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0JJR19FTkRJQU5fXykKLSNkZWZpbmUgV1RGX0NQ
VV9QUEM2NCAxCi0jZGVmaW5lIFdURl9DUFVfS05PV04gMQotI2VuZGlmCi0KLS8qIENQVShQUEM2
NExFKSAtIFBvd2VyUEMgNjQtYml0IExpdHRsZSBFbmRpYW4gKi8KLSNpZiAoICAgZGVmaW5lZChf
X3BwYzY0X18pICAgICBcCi0gICAgfHwgZGVmaW5lZChfX1BQQzY0X18pICAgICAgXAotICAgIHx8
IGRlZmluZWQoX19wcGM2NGxlX18pICAgIFwKLSAgICB8fCBkZWZpbmVkKF9fUFBDNjRMRV9fKSkg
ICBcCi0gICAgJiYgZGVmaW5lZChfX0JZVEVfT1JERVJfXykgXAotICAgICYmIChfX0JZVEVfT1JE
RVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSNkZWZpbmUgV1RGX0NQVV9QUEM2NExF
IDEKLSNkZWZpbmUgV1RGX0NQVV9LTk9XTiAxCi0jZW5kaWYKLQotLyogQ1BVKFBQQykgLSBQb3dl
clBDIDMyLWJpdCAqLwotI2lmICggIGRlZmluZWQoX19wcGNfXykgICAgICAgIFwKLSAgICB8fCBk
ZWZpbmVkKF9fUFBDX18pICAgICAgICBcCi0gICAgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgICAg
XAotICAgIHx8IGRlZmluZWQoX19wb3dlcnBjKSAgICAgIFwKLSAgICB8fCBkZWZpbmVkKF9fUE9X
RVJQQ19fKSAgICBcCi0gICAgfHwgZGVmaW5lZChfTV9QUEMpICAgICAgICAgXAotICAgIHx8IGRl
ZmluZWQoX19QUEMpKSAgICAgICAgIFwKLSAgICAmJiAhQ1BVKFBQQzY0KSAgICAgICAgICAgICBc
Ci0gICAgJiYgQ1BVKEJJR19FTkRJQU4pCi0jZGVmaW5lIFdURl9DUFVfUFBDIDEKLSNkZWZpbmUg
V1RGX0NQVV9LTk9XTiAxCi0jZW5kaWYKLQotLyogQ1BVKFg4NikgLSBpMzg2IC8geDg2IDMyLWJp
dCAqLwotI2lmICAgZGVmaW5lZChfX2kzODZfXykgXAotICAgIHx8IGRlZmluZWQoaTM4NikgICAg
IFwKLSAgICB8fCBkZWZpbmVkKF9NX0lYODYpICBcCi0gICAgfHwgZGVmaW5lZChfWDg2XykgICAg
XAotICAgIHx8IGRlZmluZWQoX19USFdfSU5URUwpCi0jZGVmaW5lIFdURl9DUFVfWDg2IDEKLSNk
ZWZpbmUgV1RGX0NQVV9LTk9XTiAxCi0KLSNpZiBkZWZpbmVkKF9fU1NFMl9fKSB8fCAoZGVmaW5l
ZChfTV9JWDg2X0ZQKSAmJiBfTV9JWDg2X0ZQID49IDIpCi0jZGVmaW5lIFdURl9DUFVfWDg2X1NT
RTIgMQotI2VuZGlmCi0KLSNlbmRpZgotCi0vKiBDUFUoWDg2XzY0KSAtIEFNRDY0IC8gSW50ZWw2
NCAvIHg4Nl82NCA2NC1iaXQgKi8KLSNpZiAgIGRlZmluZWQoX194ODZfNjRfXykgXAotICAgIHx8
IGRlZmluZWQoX01fWDY0KQotI2RlZmluZSBXVEZfQ1BVX1g4Nl82NCAxCi0jZGVmaW5lIFdURl9D
UFVfWDg2X1NTRTIgMQotI2RlZmluZSBXVEZfQ1BVX0tOT1dOIDEKLSNlbmRpZgotCi0vKiBDUFUo
QVJNNjQpIC0gQXBwbGUgKi8KLSNpZiAoZGVmaW5lZChfX2FybTY0X18pICYmIGRlZmluZWQoX19B
UFBMRV9fKSkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLSNkZWZpbmUgV1RGX0NQVV9BUk02NCAx
Ci0jZGVmaW5lIFdURl9DUFVfS05PV04gMQotCi0jaWYgZGVmaW5lZChfX2FybTY0ZV9fKQotI2Rl
ZmluZSBXVEZfQ1BVX0FSTTY0RSAxCi0jZW5kaWYKLSNlbmRpZgotCi0vKiBDUFUoQVJNKSAtIEFS
TSwgYW55IHZlcnNpb24qLwotI2RlZmluZSBXVEZfQVJNX0FSQ0hfQVRfTEVBU1QoTikgKENQVShB
Uk0pICYmIFdURl9BUk1fQVJDSF9WRVJTSU9OID49IE4pCi0KLSNpZiAgIGRlZmluZWQoYXJtKSBc
Ci0gICAgfHwgZGVmaW5lZChfX2FybV9fKSBcCi0gICAgfHwgZGVmaW5lZChBUk0pIFwKLSAgICB8
fCBkZWZpbmVkKF9BUk1fKQotI2RlZmluZSBXVEZfQ1BVX0FSTSAxCi0jZGVmaW5lIFdURl9DUFVf
S05PV04gMQotCi0jaWYgZGVmaW5lZChfX0FSTV9QQ1NfVkZQKQotI2RlZmluZSBXVEZfQ1BVX0FS
TV9IQVJERlAgMQotI2VuZGlmCi0KLS8qIFNldCBXVEZfQVJNX0FSQ0hfVkVSU0lPTiAqLwotI2lm
ICAgZGVmaW5lZChfX0FSTV9BUkNIXzRfXykgXAotICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF80
VF9fKSBcCi0gICAgfHwgZGVmaW5lZChfX01BUk1fQVJNVjRfXykKLSNkZWZpbmUgV1RGX0FSTV9B
UkNIX1ZFUlNJT04gNAotCi0jZWxpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNV9fKSBcCi0gICAgfHwg
ZGVmaW5lZChfX0FSTV9BUkNIXzVUX18pIFwKLSAgICB8fCBkZWZpbmVkKF9fTUFSTV9BUk1WNV9f
KQotI2RlZmluZSBXVEZfQVJNX0FSQ0hfVkVSU0lPTiA1Ci0KLSNlbGlmIGRlZmluZWQoX19BUk1f
QVJDSF81RV9fKSBcCi0gICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURV9fKSBcCi0gICAgfHwg
ZGVmaW5lZChfX0FSTV9BUkNIXzVURUpfXykKLSNkZWZpbmUgV1RGX0FSTV9BUkNIX1ZFUlNJT04g
NQogLypBUk12NVRFIHJlcXVpcmVzIGFsbG9jYXRvcnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5Ki8K
KyNpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNUVfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURV9f
KSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRFSl9fKQogI2RlZmluZSBVU0VfQVJFTkFfQUxMT0Nf
QUxJR05NRU5UX0lOVEVHRVIgMQorI2VuZGlmCiAKLSNlbGlmIGRlZmluZWQoX19BUk1fQVJDSF82
X18pIFwKLSAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNkpfXykgXAotICAgIHx8IGRlZmluZWQo
X19BUk1fQVJDSF82S19fKSBcCi0gICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZaX18pIFwKLSAg
ICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNlpLX18pIFwKLSAgICB8fCBkZWZpbmVkKF9fQVJNX0FS
Q0hfNlQyX18pIFwKLSAgICB8fCBkZWZpbmVkKF9fQVJNVjZfXykKLSNkZWZpbmUgV1RGX0FSTV9B
UkNIX1ZFUlNJT04gNgotCi0jZWxpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfN0FfXykgXAotICAgIHx8
IGRlZmluZWQoX19BUk1fQVJDSF83S19fKSBcCi0gICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzdS
X18pIFwKLSAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN1NfXykKLSNkZWZpbmUgV1RGX0FSTV9B
UkNIX1ZFUlNJT04gNwotCi0jZWxpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfOF9fKSBcCi0gICAgfHwg
ZGVmaW5lZChfX0FSTV9BUkNIXzhBX18pCi0jZGVmaW5lIFdURl9BUk1fQVJDSF9WRVJTSU9OIDgK
LQotLyogTVNWQyBzZXRzIF9NX0FSTSAqLwotI2VsaWYgZGVmaW5lZChfTV9BUk0pCi0jZGVmaW5l
IFdURl9BUk1fQVJDSF9WRVJTSU9OIF9NX0FSTQotCi0vKiBSVkNUIHNldHMgX1RBUkdFVF9BUkNI
X0FSTSAqLwotI2VsaWYgZGVmaW5lZChfX1RBUkdFVF9BUkNIX0FSTSkKLSNkZWZpbmUgV1RGX0FS
TV9BUkNIX1ZFUlNJT04gX19UQVJHRVRfQVJDSF9BUk0KLQotI2lmIGRlZmluZWQoX19UQVJHRVRf
QVJDSF81RSkgXAotICAgIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF81VEUpIFwKLSAgICB8fCBk
ZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNVRFSikKIC8qQVJNdjVURSByZXF1aXJlcyBhbGxvY2F0b3Jz
IHRvIHVzZSBhbGlnbmVkIG1lbW9yeSovCisjaWYgZGVmaW5lZChfX1RBUkdFVF9BUkNIXzVFKSB8
fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNVRFKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNVRF
SikKICNkZWZpbmUgVVNFX0FSRU5BX0FMTE9DX0FMSUdOTUVOVF9JTlRFR0VSIDEKICNlbmRpZgog
Ci0jZWxzZQotI2RlZmluZSBXVEZfQVJNX0FSQ0hfVkVSU0lPTiAwCi0KLSNlbmRpZgotCi0vKiBT
ZXQgV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTiAqLwotI2lmICAgZGVmaW5lZChfX0FSTV9BUkNIXzRU
X18pCi0jZGVmaW5lIFdURl9USFVNQl9BUkNIX1ZFUlNJT04gMQotCi0jZWxpZiBkZWZpbmVkKF9f
QVJNX0FSQ0hfNVRfXykgXAotICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF81VEVfXykgXAotICAg
IHx8IGRlZmluZWQoX19BUk1fQVJDSF81VEVKX18pCi0jZGVmaW5lIFdURl9USFVNQl9BUkNIX1ZF
UlNJT04gMgotCi0jZWxpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNkpfXykgXAotICAgIHx8IGRlZmlu
ZWQoX19BUk1fQVJDSF82S19fKSBcCi0gICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZaX18pIFwK
LSAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNlpLX18pIFwKLSAgICB8fCBkZWZpbmVkKF9fQVJN
X0FSQ0hfNk1fXykKLSNkZWZpbmUgV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTiAzCi0KLSNlbGlmIGRl
ZmluZWQoX19BUk1fQVJDSF82VDJfXykgXAotICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF83X18p
IFwKLSAgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN0FfXykgXAotICAgIHx8IGRlZmluZWQoX19B
Uk1fQVJDSF83S19fKSBcCi0gICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzdNX18pIFwKLSAgICB8
fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN1JfXykgXAotICAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF83
U19fKQotI2RlZmluZSBXVEZfVEhVTUJfQVJDSF9WRVJTSU9OIDQKLQotLyogUlZDVCBzZXRzIF9f
VEFSR0VUX0FSQ0hfVEhVTUIgKi8KLSNlbGlmIGRlZmluZWQoX19UQVJHRVRfQVJDSF9USFVNQikK
LSNkZWZpbmUgV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTiBfX1RBUkdFVF9BUkNIX1RIVU1CCi0KLSNl
bHNlCi0jZGVmaW5lIFdURl9USFVNQl9BUkNIX1ZFUlNJT04gMAotI2VuZGlmCi0KLQotLyogQ1BV
KEFSTVY1X09SX0xPV0VSKSAtIEFSTSBpbnN0cnVjdGlvbiBzZXQgdjUgb3IgZWFybGllciAqLwot
LyogT24gQVJNdjUgYW5kIGJlbG93IHRoZSBuYXR1cmFsIGFsaWdubWVudCBpcyByZXF1aXJlZC4g
Ci0gICBBbmQgdGhlcmUgYXJlIHNvbWUgb3RoZXIgZGlmZmVyZW5jZXMgZm9yIHY1IG9yIGVhcmxp
ZXIuICovCi0jaWYgIWRlZmluZWQoQVJNVjVfT1JfTE9XRVIpICYmICFXVEZfQVJNX0FSQ0hfQVRf
TEVBU1QoNikKLSNkZWZpbmUgV1RGX0NQVV9BUk1WNV9PUl9MT1dFUiAxCi0jZW5kaWYKLQotCi0v
KiBDUFUoQVJNX1RSQURJVElPTkFMKSAtIFRodW1iMiBpcyBub3QgYXZhaWxhYmxlLCBvbmx5IHRy
YWRpdGlvbmFsIEFSTSAodjQgb3IgZ3JlYXRlcikgKi8KLS8qIENQVShBUk1fVEhVTUIyKSAtIFRo
dW1iMiBpbnN0cnVjdGlvbiBzZXQgaXMgYXZhaWxhYmxlICovCi0vKiBPbmx5IG9uZSBvZiB0aGVz
ZSB3aWxsIGJlIGRlZmluZWQuICovCi0jaWYgIWRlZmluZWQoV1RGX0NQVV9BUk1fVFJBRElUSU9O
QUwpICYmICFkZWZpbmVkKFdURl9DUFVfQVJNX1RIVU1CMikKLSMgIGlmIGRlZmluZWQodGh1bWIy
KSB8fCBkZWZpbmVkKF9fdGh1bWIyX18pIFwKLSAgICB8fCAoKGRlZmluZWQoX190aHVtYikgfHwg
ZGVmaW5lZChfX3RodW1iX18pKSAmJiBXVEZfVEhVTUJfQVJDSF9WRVJTSU9OID09IDQpCi0jICAg
IGRlZmluZSBXVEZfQ1BVX0FSTV9UUkFESVRJT05BTCAwCi0jICAgIGRlZmluZSBXVEZfQ1BVX0FS
TV9USFVNQjIgMQotIyAgZWxpZiBXVEZfQVJNX0FSQ0hfQVRfTEVBU1QoNCkKLSMgICAgZGVmaW5l
IFdURl9DUFVfQVJNX1RSQURJVElPTkFMIDEKLSMgICAgZGVmaW5lIFdURl9DUFVfQVJNX1RIVU1C
MiAwCi0jICBlbHNlCi0jICAgIGVycm9yICJOb3Qgc3VwcG9ydGVkIEFSTSBhcmNoaXRlY3R1cmUi
Ci0jICBlbmRpZgotI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkgJiYgQ1BVKEFSTV9USFVNQjIp
IC8qIFNhbml0eSBDaGVjayAqLwotIyAgZXJyb3IgIkNhbm5vdCB1c2UgYm90aCBvZiBXVEZfQ1BV
X0FSTV9UUkFESVRJT05BTCBhbmQgV1RGX0NQVV9BUk1fVEhVTUIyIHBsYXRmb3JtcyIKLSNlbmRp
ZiAvKiAhZGVmaW5lZChXVEZfQ1BVX0FSTV9UUkFESVRJT05BTCkgJiYgIWRlZmluZWQoV1RGX0NQ
VV9BUk1fVEhVTUIyKSAqLwotCi0jaWYgZGVmaW5lZChfX0FSTV9ORU9OX18pICYmICFkZWZpbmVk
KFdURl9DUFVfQVJNX05FT04pCi0jZGVmaW5lIFdURl9DUFVfQVJNX05FT04gMQotI2VuZGlmCi0K
ICNpZiBDUFUoQVJNX05FT04pCiAvKiBBbGwgTkVPTiBpbnRyaW5zaWNzIHVzYWdlIGNhbiBiZSBk
aXNhYmxlZCBieSB0aGlzIG1hY3JvLiAqLwogI2RlZmluZSBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJ
Q1MgMQogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChfX1ZGUF9GUF9fKSAmJiAhZGVmaW5lZChfX1NP
RlRGUF9fKSkKLSNkZWZpbmUgV1RGX0NQVV9BUk1fVkZQIDEKLSNlbmRpZgotCi0vKiBJZiBDUFUo
QVJNX05FT04pIGlzIG5vdCBlbmFibGVkLCB3ZSdsbCBjb25zZXJ2YXRpdmVseSBhc3N1bWUgb25s
eSBWRlAyIG9yIFZGUHYzRDE2Ci0gICBzdXBwb3J0IGlzIGF2YWlsYWJsZS4gSGVuY2UsIG9ubHkg
dGhlIGZpcnN0IDE2IDY0LWJpdCBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMKLSAgIGFyZSBhdmFp
bGFibGUuIFNlZToKLSAgIE5FT04gcmVnaXN0ZXJzOiBodHRwOi8vaW5mb2NlbnRlci5hcm0uY29t
L2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20uYXJtLmRvYy5kdWkwNDczYy9DSkFDQUJFSi5odG1s
Ci0gICBWRlAyIGFuZCBWRlAzIHJlZ2lzdGVyczogaHR0cDovL2luZm9jZW50ZXIuYXJtLmNvbS9o
ZWxwL2luZGV4LmpzcD90b3BpYz0vY29tLmFybS5kb2MuZHVpMDQ3M2MvQ0lIRElCREcuaHRtbAot
ICAgTkVPTiB0byBWRlAgcmVnaXN0ZXIgbWFwcGluZzogaHR0cDovL2luZm9jZW50ZXIuYXJtLmNv
bS9oZWxwL2luZGV4LmpzcD90b3BpYz0vY29tLmFybS5kb2MuZHVpMDQ3M2MvQ0pBSUpIRkMuaHRt
bAotKi8KLSNpZiBDUFUoQVJNX05FT04pCi0jZGVmaW5lIFdURl9DUFVfQVJNX1ZGUF9WM19EMzIg
MQotI2Vsc2UKLSNkZWZpbmUgV1RGX0NQVV9BUk1fVkZQX1YyIDEKLSNlbmRpZgotCi0jaWYgZGVm
aW5lZChfX0FSTV9BUkNIXzdLX18pCi0jZGVmaW5lIFdURl9DUFVfQVBQTEVfQVJNVjdLIDEKLSNl
bmRpZgotCi0jaWYgZGVmaW5lZChfX0FSTV9BUkNIXzdTX18pCi0jZGVmaW5lIFdURl9DUFVfQVBQ
TEVfQVJNVjdTIDEKLSNlbmRpZgotCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVuYW1lZCB0
byBXVEZfQ1BVX0FSTV9JRElWX0lOU1RSVUNUSU9OUyBhbmQgbW92ZWQgdG8gQ1BVLmggKi8KICNp
ZiBkZWZpbmVkKF9fQVJNX0FSQ0hfRVhUX0lESVZfXykgfHwgQ1BVKEFQUExFX0FSTVY3UykKICNk
ZWZpbmUgSEFWRV9BUk1fSURJVl9JTlNUUlVDVElPTlMgMQogI2VuZGlmCiAKLSNlbmRpZiAvKiBB
Uk0gKi8KLQotI2lmICFDUFUoS05PV04pCi0jZGVmaW5lIFdURl9DUFVfVU5LTk9XTiAxCi0jZW5k
aWYKIAotI2lmIENQVShBUk0pIHx8IENQVShNSVBTKSB8fCBDUFUoVU5LTk9XTikKLSNkZWZpbmUg
V1RGX0NQVV9ORUVEU19BTElHTkVEX0FDQ0VTUyAxCi0jZW5kaWYKLQotI2lmIENPTVBJTEVSKEdD
Q19DT01QQVRJQkxFKQotLyogX19MUDY0X18gaXMgbm90IGRlZmluZWQgb24gNjRiaXQgV2luZG93
cyBzaW5jZSBpdCB1c2VzIExMUDY0LiBVc2luZyBfX1NJWkVPRl9QT0lOVEVSX18gaXMgc2ltcGxl
ci4gKi8KLSNpZiBfX1NJWkVPRl9QT0lOVEVSX18gPT0gOAotI2RlZmluZSBXVEZfQ1BVX0FERFJF
U1M2NCAxCi0jZWxpZiBfX1NJWkVPRl9QT0lOVEVSX18gPT0gNAotI2RlZmluZSBXVEZfQ1BVX0FE
RFJFU1MzMiAxCi0jZWxzZQotI2Vycm9yICJVbnN1cHBvcnRlZCBwb2ludGVyIHdpZHRoIgotI2Vu
ZGlmCi0jZWxpZiBDT01QSUxFUihNU1ZDKQotI2lmIGRlZmluZWQoX1dJTjY0KQotI2RlZmluZSBX
VEZfQ1BVX0FERFJFU1M2NCAxCi0jZWxzZQotI2RlZmluZSBXVEZfQ1BVX0FERFJFU1MzMiAxCi0j
ZW5kaWYKLSNlbHNlCi0vKiBUaGlzIGlzIHRoZSBtb3N0IGdlbmVyaWMgd2F5LiBCdXQgaW4gT1Mo
REFSV0lOKSwgUGxhdGZvcm0uaCBjYW4gYmUgaW5jbHVkZWQgYnkgc2FuZGJveCBkZWZpbml0aW9u
IGZpbGUgKC5zYikuCi0gKiBBdCB0aGF0IHRpbWUsIHdlIGNhbm5vdCBpbmNsdWRlICJzdGRpbnQu
aCIgaGVhZGVyLiBTbyBpbiB0aGUgY2FzZSBvZiBrbm93biBjb21waWxlcnMsIHdlIHVzZSBwcmVk
ZWZpbmVkIGNvbnN0YW50cyBpbnN0ZWFkLiAqLwotI2luY2x1ZGUgPHN0ZGludC5oPgotI2lmIFVJ
TlRQVFJfTUFYID4gVUlOVDMyX01BWAotI2RlZmluZSBXVEZfQ1BVX0FERFJFU1M2NCAxCi0jZWxz
ZQotI2RlZmluZSBXVEZfQ1BVX0FERFJFU1MzMiAxCi0jZW5kaWYKLSNlbmRpZgogCiAvKiA9PT09
IE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW07IG9ubHkgdG8gYmUgdXNlZCBmb3Ig
bWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2UgCiAgICB2aXJ0dWFsIG1lbW9yeSwgbm90
IHRvIGNob29zZSBhIEdVSSB0b29sa2l0ID09PT0gKi8KQEAgLTQzOCw1NiArMTcxLDE3IEBACiAK
IC8qIE9wZXJhdGluZyBlbnZpcm9ubWVudHMgKi8KIAotLyogQ1BVKEJJR19FTkRJQU4pIG9yIENQ
VShNSURETEVfRU5ESUFOKSBvciBuZWl0aGVyLCBhcyBhcHByb3ByaWF0ZS4gKi8KIAotI2lmIENP
TVBJTEVSKEdDQ19DT01QQVRJQkxFKQotI2lmIF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfQklH
X0VORElBTl9fCi0jZGVmaW5lIFdURl9DUFVfQklHX0VORElBTiAxCi0jZWxpZiBfX0JZVEVfT1JE
RVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXwotI2RlZmluZSBXVEZfQ1BVX0xJVFRMRV9F
TkRJQU4gMQotI2VsaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9QRFBfRU5ESUFOX18KLSNk
ZWZpbmUgV1RGX0NQVV9NSURETEVfRU5ESUFOIDEKLSNlbHNlCi0jZXJyb3IgIlVua25vd24gZW5k
aWFuIgotI2VuZGlmCi0jZWxzZQotI2lmIE9TKFdJTkRPV1MpCi0vKiBXaW5kb3dzIG9ubHkgaGF2
ZSBsaXR0bGUgZW5kaWFuIGFyY2hpdGVjdHVyZS4gKi8KLSNkZWZpbmUgV1RGX0NQVV9MSVRUTEVf
RU5ESUFOIDEKLSNlbHNlCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaWYgX19oYXNfaW5jbHVk
ZSg8ZW5kaWFuLmg+KQotI2luY2x1ZGUgPGVuZGlhbi5oPgotI2lmIF9fQllURV9PUkRFUiA9PSBf
X0JJR19FTkRJQU4KLSNkZWZpbmUgV1RGX0NQVV9CSUdfRU5ESUFOIDEKLSNlbGlmIF9fQllURV9P
UkRFUiA9PSBfX0xJVFRMRV9FTkRJQU4KLSNkZWZpbmUgV1RGX0NQVV9MSVRUTEVfRU5ESUFOIDEK
LSNlbGlmIF9fQllURV9PUkRFUiA9PSBfX1BEUF9FTkRJQU4KLSNkZWZpbmUgV1RGX0NQVV9NSURE
TEVfRU5ESUFOIDEKLSNlbHNlCi0jZXJyb3IgIlVua25vd24gZW5kaWFuIgotI2VuZGlmCi0jZWxz
ZQotI2lmIF9faGFzX2luY2x1ZGUoPG1hY2hpbmUvZW5kaWFuLmg+KQotI2luY2x1ZGUgPG1hY2hp
bmUvZW5kaWFuLmg+CisvKiBGSVhNRTogUmVuYW1lIFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1Nf
V0lEVEggdG8gV1RGX09TX0VGRkVDVElWRV9BRERSRVNTX1dJRFRILCBhcyBpdCBpcyBhbiBPUyBm
ZWF0dXJlLCBub3QgYSBDUFUgZmVhdHVyZS4gKi8KKyNpZiBDUFUoQUREUkVTUzY0KQorI2lmIE9T
KERBUldJTikgJiYgQ1BVKEFSTTY0KQorI2RlZmluZSBXVEZfQ1BVX0VGRkVDVElWRV9BRERSRVNT
X1dJRFRIIDM2CiAjZWxzZQotI2luY2x1ZGUgPHN5cy9lbmRpYW4uaD4KKy8qIFdlIHN0cm9uZ2x5
IGFzc3VtZSB0aGF0IGVmZmVjdGl2ZSBhZGRyZXNzIHdpZHRoIGlzIDw9IDQ4IGluIDY0Yml0IGFy
Y2hpdGVjdHVyZXMgKGUuZy4gTmFOIGJveGluZykuICovCisjZGVmaW5lIFdURl9DUFVfRUZGRUNU
SVZFX0FERFJFU1NfV0lEVEggNDgKICNlbmRpZgotI2lmIEJZVEVfT1JERVIgPT0gQklHX0VORElB
TgotI2RlZmluZSBXVEZfQ1BVX0JJR19FTkRJQU4gMQotI2VsaWYgQllURV9PUkRFUiA9PSBMSVRU
TEVfRU5ESUFOCi0jZGVmaW5lIFdURl9DUFVfTElUVExFX0VORElBTiAxCi0jZWxpZiBCWVRFX09S
REVSID09IFBEUF9FTkRJQU4KLSNkZWZpbmUgV1RGX0NQVV9NSURETEVfRU5ESUFOIDEKICNlbHNl
Ci0jZXJyb3IgIlVua25vd24gZW5kaWFuIgotI2VuZGlmCi0jZW5kaWYKLSNlbmRpZgotI2VuZGlm
Ci0KLSNpZiAhQ1BVKExJVFRMRV9FTkRJQU4pICYmICFDUFUoQklHX0VORElBTikKLSNlcnJvciAi
VW5zdXBwb3J0ZWQgZW5kaWFuIgorI2RlZmluZSBXVEZfQ1BVX0VGRkVDVElWRV9BRERSRVNTX1dJ
RFRIIDMyCiAjZW5kaWYKIAogLyogRXhwb3J0IG1hY3JvIHN1cHBvcnQuIERldGVjdHMgdGhlIGF0
dHJpYnV0ZXMgYXZhaWxhYmxlIGZvciBzaGFyZWQgbGlicmFyeSBzeW1ib2wgZXhwb3J0CkBAIC03
NDYsMTYgKzQ0MCw2IEBACiAjZGVmaW5lIFVTRV9TWVNURU1fTUFMTE9DIDEKICNlbmRpZgogCi0j
aWYgQ1BVKEFERFJFU1M2NCkKLSNpZiBPUyhEQVJXSU4pICYmIENQVShBUk02NCkKLSNkZWZpbmUg
V1RGX0NQVV9FRkZFQ1RJVkVfQUREUkVTU19XSURUSCAzNgotI2Vsc2UKLS8qIFdlIHN0cm9uZ2x5
IGFzc3VtZSB0aGF0IGVmZmVjdGl2ZSBhZGRyZXNzIHdpZHRoIGlzIDw9IDQ4IGluIDY0Yml0IGFy
Y2hpdGVjdHVyZXMgKGUuZy4gTmFOIGJveGluZykuICovCi0jZGVmaW5lIFdURl9DUFVfRUZGRUNU
SVZFX0FERFJFU1NfV0lEVEggNDgKLSNlbmRpZgotI2Vsc2UKLSNkZWZpbmUgV1RGX0NQVV9FRkZF
Q1RJVkVfQUREUkVTU19XSURUSCAzMgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChVU0VfSlNWQUxV
RTY0KSAmJiAhZGVmaW5lZChVU0VfSlNWQUxVRTMyXzY0KQogI2lmIENQVShBRERSRVNTNjQpIHx8
IENQVShBUk02NCkK
</data>
<flag name="review"
          id="403219"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>