<?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>116135</bug_id>
          
          <creation_ts>2013-05-14 21:15:54 -0700</creation_ts>
          <short_desc>Split out CPU specific parts of JITStubs.cpp</short_desc>
          <delta_ts>2013-05-15 08:06:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>889125</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-05-14 21:15:54 -0700</bug_when>
    <thetext>JITStubs.cpp is getting large and unwieldy with all the #if CPU(...) variations.  We should refactor the CPU specific parts into their own files.  Patch coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889135</commentid>
    <comment_count>1</comment_count>
      <attachid>201790</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-05-14 22:04:32 -0700</bug_when>
    <thetext>Created attachment 201790
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889289</commentid>
    <comment_count>2</comment_count>
      <attachid>201790</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-05-15 07:53:27 -0700</bug_when>
    <thetext>Comment on attachment 201790
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889296</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-05-15 08:06:25 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r150109: &lt;http://trac.webkit.org/changeset/150109&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201790</attachid>
            <date>2013-05-14 22:04:32 -0700</date>
            <delta_ts>2013-05-15 07:53:27 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-116135.patch</filename>
            <type>text/plain</type>
            <size>87415</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwMTAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDEzLTA1LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWZhY3RvciBKSVRTdHVicy5jcHAgdG8gbW92ZSBDUFUgc3BlY2lmaWMgcGFydHMgb3V0IGludG8g
dGhlaXIgb3duIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE2MTM1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgbW9kIG9ubHkgbW92ZXMgdGhlIENQVSBzcGVjaWZpYyBwYXJ0cyBvdXQu
IFRoZXJlIGlzIG5vIGNvZGUgY2hhbmdlLgorICAgICAgICBUZXN0ZWQgb24gZGVidWcgYnVpbGRz
IG9mIFg4NiwgWDg2XzY0LCBBUk0gYW5kIEFSTXY3LiBUaGUgU0g0IGFuZCBNSVBTCisgICAgICAg
IHBvcnRzIGFyZSB1bnRlc3RlZC4gV2luZG93cyBwb3J0IGFsc28gbm90IHRlc3RlZC4KKworICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBqaXQvSklU
U3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpwZXJmb3JtUGxhdGZvcm1TcGVjaWZpY0pJVEFzc2Vy
dGlvbnMpOgorICAgICAgICAqIGppdC9KSVRTdHVic0FSTS5oOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6Y3RpVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OmN0aVRyYW1wb2xpbmVFbmQpOgorICAg
ICAgICAoSlNDOjpjdGlWTVRocm93VHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OmN0aU9wVGhy
b3dOb3RDYXVnaHQpOgorICAgICAgICAoSlNDOjpwZXJmb3JtQVJNSklUQXNzZXJ0aW9ucyk6Cisg
ICAgICAgICogaml0L0pJVFN0dWJzQVJNdjcuaDogQWRkZWQuCisgICAgICAgIChKU0M6OmN0aVRy
YW1wb2xpbmUpOgorICAgICAgICAoSlNDOjpjdGlWTVRocm93VHJhbXBvbGluZSk6CisgICAgICAg
IChKU0M6OmN0aU9wVGhyb3dOb3RDYXVnaHQpOgorICAgICAgICAoSlNDOjpwZXJmb3JtQVJNdjdK
SVRBc3NlcnRpb25zKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnNNSVBTLmg6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpwZXJmb3JtTUlQU0pJVEFzc2VydGlvbnMpOgorICAgICAgICAqIGppdC9KSVRT
dHVic1NINC5oOiBBZGRlZC4KKyAgICAgICAgKiBqaXQvSklUU3R1YnNYODYuaDogQWRkZWQuCisg
ICAgICAgICogaml0L0pJVFN0dWJzWDg2XzY0Lmg6IEFkZGVkLgorCiAyMDEzLTA1LTE0ICBNYXJr
IEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgZm91cnRoVGll
cjogU2VnZmF1bHQgaW4ganNjIHdpdGggc2ltcGxlIHRlc3QgcHJvZ3JhbSB3aGVuIHJ1bm5pbmcg
d2l0aCBwcm9maWxlIGR1bXBpbmcgZW5hYmxlZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1MDA5OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00NzEsNiArNDcx
LDEyIEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YlJvdXRpbmUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVicy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic0FSTS5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzQVJNdjcuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdHVic01JUFMuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic1NINC5o
IFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmggXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODZfNjQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRUaHVua3MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRo
dW5rcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oIFwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qCShyZXZpc2lvbiAxNTAwOTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjI0MSw2ICsyMjQxLDEwIEBACiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcSklUU3R1YnMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XEpJVFN0dWJzWDg2LmgiCisJCQkJPgorCQkJPC9GaWxl
PgogICAgICAgICAgICAgPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKSVRUaHVu
a3MuY3BwIgogCQkJCT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJv
agkocmV2aXNpb24gMTUwMDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTY4
LDYgKzU2OCw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YkNhbGwu
aCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YlJvdXRpbmUuaCIg
Lz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YnMuaCIgLz4NCisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YnNYODYuaCIgLz4NCisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YnNYODZfNjQuaCIgLz4NCiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxqaXRcSklUVGh1bmtzLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caml0XEpJVFdyaXRlQmFycmllci5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGppdFxKU0ludGVyZmFjZUpJVC5oIiAvPg0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAxNTAwOTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTM4
LDYgKzkzOCwxMCBAQAogCQlGRTRBMzMxRjE1QkQyRTA3MDA2RjU0RjMgLyogVk1JbnNwZWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0QTMz
MUQxNUJEMkUwNzAwNkY1NEYzIC8qIFZNSW5zcGVjdG9yLmNwcCAqLzsgfTsKIAkJRkU0QTMzMjAx
NUJEMkUwNzAwNkY1NEYzIC8qIFZNSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTRBMzMxRTE1QkQyRTA3MDA2RjU0RjMgLyogVk1JbnNw
ZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRUQyODdCMjE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDI4N0IxMTVFQzlBNTcwMERBODE2
MSAvKiBMTEludE9wY29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVGNjgzNUExNzQz
NDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkVGNjgzNUYxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0
dWJzQVJNdjcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZFRjY4MzVCMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTXY3LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkVGNjgzNjAxNzQzNDNDQzAw
QTMyRTI1IC8qIEpJVFN0dWJzWDg2XzY0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRUY2ODM1QzE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNYODZf
NjQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlG
RUY2ODM2MTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNYODYuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRjY4MzVEMTc0MzQzQ0MwMEEzMkUyNSAv
KiBKSVRTdHVic1g4Ni5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29u
dGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KQEAgLTE5NDcsNiArMTk1MSwxMCBAQAogCQlGRTRB
MzMxRDE1QkQyRTA3MDA2RjU0RjMgLyogVk1JbnNwZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVk1JbnNwZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRTRBMzMxRTE1QkQyRTA3MDA2RjU0RjMgLyogVk1JbnNwZWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVk1JbnNwZWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGgg
PSBsbGludC9MTEludE9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUY2
ODM1QTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSklUU3R1YnNBUk0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRkVGNjgzNUIxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUU3R1YnNBUk12Ny5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGRUY2ODM1QzE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNYODZfNjQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUU3R1YnNYODZfNjQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVGNjgzNUQxNzQzNDNDQzAwQTMyRTI1IC8qIEpJ
VFN0dWJzWDg2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVFN0dWJzWDg2
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBz
ZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8K
QEAgLTIyNjYsNiArMjI3NCwxMCBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYzRSAvKiBK
SVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAvKiBKSVRT
dHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0dWJzLmgg
Ki8sCisJCQkJRkVGNjgzNUExNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNLmggKi8sCisJ
CQkJRkVGNjgzNUIxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCAqLywKKwkJCQlG
RUY2ODM1QzE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNYODZfNjQuaCAqLywKKwkJCQlGRUY2
ODM1RDE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNYODYuaCAqLywKIAkJCQkwRjVFRjkxQjE2
ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLywKIAkJCQkwRjVFRjkxQzE2ODc4Rjc4
MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi8sCiAJCQkJQTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNF
IC8qIEpJVFdyaXRlQmFycmllci5oICovLApAQCAtMzE4MSw2ICszMTkzLDEwIEBACiAJCQkJMEYw
RDg1QjIxNzIzNDU1NDAwMzM4MjEwIC8qIENvZGVCbG9ja0xvY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNjM5NDU1MTVEMDcwNTcwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDM0U3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBBcnJheVByb3RvdHlwZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRkVGNjgzNUYxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJN
djcuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFRjY4MzYwMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRT
dHVic1g4Nl82NC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkVGNjgzNUUxNzQzNDNDQzAwQTMyRTI1
IC8qIEpJVFN0dWJzQVJNLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRUY2ODM2MTE3NDM0M0NDMDBB
MzJFMjUgLyogSklUU3R1YnNYODYuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjFEMTY3QkFC
RUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMThDNTI0MEUxNkZDOEEwMEIzNDQ2MCAvKiBBcnJheVByb3RvdHlwZS5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAvKiBKU0NvbnRleHRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmNwcAkocmV2aXNpb24gMTUwMDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDY2MiArNzUsMjMgQEAKIAogdXNpbmcg
bmFtZXNwYWNlIHN0ZDsKIAotbmFtZXNwYWNlIEpTQyB7Ci0KLSNpZiBVU0UoSlNWQUxVRTMyXzY0
KQotCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoWDg2KQotCi0vLyBUaGVzZSBBU1NFUlRzIHJl
bWluZCB5b3UgdGhhdCwgaWYgeW91IGNoYW5nZSB0aGUgbGF5b3V0IG9mIEpJVFN0YWNrRnJhbWUs
IHlvdQotLy8gbmVlZCB0byBjaGFuZ2UgdGhlIGFzc2VtYmx5IHRyYW1wb2xpbmVzIGJlbG93IHRv
IG1hdGNoLgotQ09NUElMRV9BU1NFUlQob2Zmc2V0b2Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNv
ZGUpICUgMTYgPT0gMHgwLCBKSVRTdGFja0ZyYW1lX21haW50YWluc18xNmJ5dGVfc3RhY2tfYWxp
Z25tZW50KTsKLUNPTVBJTEVfQVNTRVJUKG9mZnNldG9mKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBz
YXZlZEVCWCkgPT0gMHgzYywgSklUU3RhY2tGcmFtZV9zdHViX2FyZ3VtZW50X3NwYWNlX21hdGNo
ZXNfY3RpVHJhbXBvbGluZSk7Ci1DT01QSUxFX0FTU0VSVChvZmZzZXRvZihzdHJ1Y3QgSklUU3Rh
Y2tGcmFtZSwgY2FsbEZyYW1lKSA9PSAweDU4LCBKSVRTdGFja0ZyYW1lX2NhbGxGcmFtZV9vZmZz
ZXRfbWF0Y2hlc19jdGlUcmFtcG9saW5lKTsKLUNPTVBJTEVfQVNTRVJUKG9mZnNldG9mKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBjb2RlKSA9PSAweDUwLCBKSVRTdGFja0ZyYW1lX2NvZGVfb2Zmc2V0
X21hdGNoZXNfY3RpVHJhbXBvbGluZSk7Ci0KLWFzbSAoCi0iLnRleHRcbiIKLSIuZ2xvYmwgIiBT
WU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKLUhJREVfU1lNQk9MKGN0aVRyYW1wb2xp
bmUpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKLSAgICAicHVz
aGwgJWVicCIgIlxuIgotICAgICJtb3ZsICVlc3AsICVlYnAiICJcbiIKLSAgICAicHVzaGwgJWVz
aSIgIlxuIgotICAgICJwdXNobCAlZWRpIiAiXG4iCi0gICAgInB1c2hsICVlYngiICJcbiIKLSAg
ICAic3VibCAkMHgzYywgJWVzcCIgIlxuIgotICAgICJtb3ZsIDB4NTgoJWVzcCksICVlZGkiICJc
biIKLSAgICAiY2FsbCAqMHg1MCglZXNwKSIgIlxuIgotICAgICJhZGRsICQweDNjLCAlZXNwIiAi
XG4iCi0gICAgInBvcGwgJWVieCIgIlxuIgotICAgICJwb3BsICVlZGkiICJcbiIKLSAgICAicG9w
bCAlZXNpIiAiXG4iCi0gICAgInBvcGwgJWVicCIgIlxuIgotICAgICJyZXQiICJcbiIKLSIuZ2xv
YmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKLUhJREVfU1lNQk9MKGN0
aVRyYW1wb2xpbmVFbmQpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIjoi
ICJcbiIKLSk7Ci0KLWFzbSAoCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJh
bXBvbGluZSkgIlxuIgotSElERV9TWU1CT0woY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKLVNZ
TUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCi0gICAgIm1vdmwgJWVz
cCwgJWVjeCIgIlxuIgotICAgICJjYWxsICIgTE9DQUxfUkVGRVJFTkNFKGN0aV92bV90aHJvdykg
IlxuIgotICAgICJpbnQzIiAiXG4iCi0pOwotICAgIAotYXNtICgKLSIuZ2xvYmwgIiBTWU1CT0xf
U1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKLUhJREVfU1lNQk9MKGN0aU9wVGhyb3dO
b3RDYXVnaHQpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIjoiICJc
biIKLSAgICAiYWRkbCAkMHgzYywgJWVzcCIgIlxuIgotICAgICJwb3BsICVlYngiICJcbiIKLSAg
ICAicG9wbCAlZWRpIiAiXG4iCi0gICAgInBvcGwgJWVzaSIgIlxuIgotICAgICJwb3BsICVlYnAi
ICJcbiIKLSAgICAicmV0IiAiXG4iCi0pOwotICAgIAotI2VsaWYgKENPTVBJTEVSKEdDQykgfHwg
Q09NUElMRVIoUlZDVCkpICYmIENQVShBUk1fVEhVTUIyKQotCi0jZGVmaW5lIFRIVU5LX1JFVFVS
Tl9BRERSRVNTX09GRlNFVCAgICAgIDB4MzgKLSNkZWZpbmUgUFJFU0VSVkVEX1JFVFVSTl9BRERS
RVNTX09GRlNFVCAgMHgzQwotI2RlZmluZSBQUkVTRVJWRURfUjRfT0ZGU0VUICAgICAgICAgICAg
ICAweDQwCi0jZGVmaW5lIFBSRVNFUlZFRF9SNV9PRkZTRVQgICAgICAgICAgICAgIDB4NDQKLSNk
ZWZpbmUgUFJFU0VSVkVEX1I2X09GRlNFVCAgICAgICAgICAgICAgMHg0OAotI2RlZmluZSBQUkVT
RVJWRURfUjdfT0ZGU0VUICAgICAgICAgICAgICAweDRDCi0jZGVmaW5lIFBSRVNFUlZFRF9SOF9P
RkZTRVQgICAgICAgICAgICAgIDB4NTAKLSNkZWZpbmUgUFJFU0VSVkVEX1I5X09GRlNFVCAgICAg
ICAgICAgICAgMHg1NAotI2RlZmluZSBQUkVTRVJWRURfUjEwX09GRlNFVCAgICAgICAgICAgICAw
eDU4Ci0jZGVmaW5lIFBSRVNFUlZFRF9SMTFfT0ZGU0VUICAgICAgICAgICAgIDB4NUMKLSNkZWZp
bmUgUkVHSVNURVJfRklMRV9PRkZTRVQgICAgICAgICAgICAgMHg2MAotI2RlZmluZSBGSVJTVF9T
VEFDS19BUkdVTUVOVCAgICAgICAgICAgICAweDY4Ci0KLSNlbGlmIChDT01QSUxFUihHQ0MpIHx8
IENPTVBJTEVSKE1TVkMpIHx8IENPTVBJTEVSKFJWQ1QpKSAmJiBDUFUoQVJNX1RSQURJVElPTkFM
KQotCi0vLyBBbHNvIHVwZGF0ZSB0aGUgTVNWQyBzZWN0aW9uIChkZWZpbmVkIGF0IERFRklORV9T
VFVCX0ZVTkNUSU9OKQotLy8gd2hlbiBjaGFuZ2luZyBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1
ZXMuCi0jZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA2NAotI2RlZmluZSBQUkVT
RVJWRURSNF9PRkZTRVQgICAgICAgICAgNjgKLQotI2VsaWYgQ09NUElMRVIoTVNWQykgJiYgQ1BV
KFg4NikKLQotLy8gVGhlc2UgQVNTRVJUcyByZW1pbmQgeW91IHRoYXQsIGlmIHlvdSBjaGFuZ2Ug
dGhlIGxheW91dCBvZiBKSVRTdGFja0ZyYW1lLCB5b3UKLS8vIG5lZWQgdG8gY2hhbmdlIHRoZSBh
c3NlbWJseSB0cmFtcG9saW5lcyBiZWxvdyB0byBtYXRjaC4KLUNPTVBJTEVfQVNTRVJUKG9mZnNl
dG9mKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjb2RlKSAlIDE2ID09IDB4MCwgSklUU3RhY2tGcmFt
ZV9tYWludGFpbnNfMTZieXRlX3N0YWNrX2FsaWdubWVudCk7Ci1DT01QSUxFX0FTU0VSVChvZmZz
ZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc2F2ZWRFQlgpID09IDB4M2MsIEpJVFN0YWNrRnJh
bWVfc3R1Yl9hcmd1bWVudF9zcGFjZV9tYXRjaGVzX2N0aVRyYW1wb2xpbmUpOwotQ09NUElMRV9B
U1NFUlQob2Zmc2V0b2Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNhbGxGcmFtZSkgPT0gMHg1OCwg
SklUU3RhY2tGcmFtZV9jYWxsRnJhbWVfb2Zmc2V0X21hdGNoZXNfY3RpVHJhbXBvbGluZSk7Ci1D
T01QSUxFX0FTU0VSVChvZmZzZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY29kZSkgPT0gMHg1
MCwgSklUU3RhY2tGcmFtZV9jb2RlX29mZnNldF9tYXRjaGVzX2N0aVRyYW1wb2xpbmUpOwotCi1l
eHRlcm4gIkMiIHsKLQotICAgIF9fZGVjbHNwZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVlIGN0aVRy
YW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2Vk
MSovLCB2b2lkKiAvKnVudXNlZDIqLywgVk0qKQotICAgIHsKLSAgICAgICAgX19hc20gewotICAg
ICAgICAgICAgcHVzaCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWJwLCBlc3A7Ci0gICAgICAgICAg
ICBwdXNoIGVzaTsKLSAgICAgICAgICAgIHB1c2ggZWRpOwotICAgICAgICAgICAgcHVzaCBlYng7
Ci0gICAgICAgICAgICBzdWIgZXNwLCAweDNjOwotICAgICAgICAgICAgbW92IGVjeCwgZXNwOwot
ICAgICAgICAgICAgbW92IGVkaSwgW2VzcCArIDB4NThdOwotICAgICAgICAgICAgY2FsbCBbZXNw
ICsgMHg1MF07Ci0gICAgICAgICAgICBhZGQgZXNwLCAweDNjOwotICAgICAgICAgICAgcG9wIGVi
eDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAgICAgICAg
ICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9f
ZGVjbHNwZWMobmFrZWQpIHZvaWQgY3RpVk1UaHJvd1RyYW1wb2xpbmUoKQotICAgIHsKLSAgICAg
ICAgX19hc20gewotICAgICAgICAgICAgbW92IGVjeCwgZXNwOwotICAgICAgICAgICAgY2FsbCBj
dGlfdm1fdGhyb3c7Ci0gICAgICAgICAgICBhZGQgZXNwLCAweDNjOwotICAgICAgICAgICAgcG9w
IGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAgICAg
ICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IF9fZGVjbHNwZWMobmFrZWQpIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgpCi0gICAgewotICAg
ICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBhZGQgZXNwLCAweDNjOwotICAgICAgICAgICAgcG9w
IGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAgICAg
ICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLX0KLQor
I2lmIENQVShBUk1fVFJBRElUSU9OQUwpCisjaW5jbHVkZSAiSklUU3R1YnNBUk0uaCIKKyNlbGlm
IENQVShBUk1fVEhVTUIyKQorI2luY2x1ZGUgIkpJVFN0dWJzQVJNdjcuaCIKICNlbGlmIENQVShN
SVBTKQotCi0jZGVmaW5lIFBSRVNFUlZFRF9HUF9PRkZTRVQgICAgICAgICA2MAotI2RlZmluZSBQ
UkVTRVJWRURfUzBfT0ZGU0VUICAgICAgICAgNjQKLSNkZWZpbmUgUFJFU0VSVkVEX1MxX09GRlNF
VCAgICAgICAgIDY4Ci0jZGVmaW5lIFBSRVNFUlZFRF9TMl9PRkZTRVQgICAgICAgICA3MgotI2Rl
ZmluZSBQUkVTRVJWRURfUzNfT0ZGU0VUICAgICAgICAgNzYKLSNkZWZpbmUgUFJFU0VSVkVEX1M0
X09GRlNFVCAgICAgICAgIDgwCi0jZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZT
RVQgODQKLSNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDg4Ci0jZGVmaW5lIFJF
R0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA5MgotI2RlZmluZSBHTE9CQUxfREFUQV9PRkZTRVQg
ICAgICAgICAxMDgKLSNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAgICAgMTEyCi0KKyNp
bmNsdWRlICJKSVRTdHVic01JUFMuaCIKICNlbGlmIENQVShTSDQpCi0KLSNkZWZpbmUgU1lNQk9M
X1NUUklORyhuYW1lKSAjbmFtZQotLyogY29kZSAocjQpLCBKU1N0YWNrKiAocjUpLCBDYWxsRnJh
bWUqIChyNiksIHZvaWQqIHVudXNlZDEgKHI3KSwgdm9pZCogdW51c2VkMihzcCksIFZNIChzcCkq
LwotCi1hc20gdm9sYXRpbGUgKAotIi50ZXh0XG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhj
dGlUcmFtcG9saW5lKSAiXG4iCi1ISURFX1NZTUJPTChjdGlUcmFtcG9saW5lKSAiXG4iCi1TWU1C
T0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCi0gICAgIm1vdi5sIHI3LCBALXIxNSIg
IlxuIgotICAgICJtb3YubCByNiwgQC1yMTUiICJcbiIKLSAgICAibW92LmwgcjUsIEAtcjE1IiAi
XG4iCi0gICAgIm1vdi5sIHI4LCBALXIxNSIgIlxuIgotICAgICJtb3YgIzEyNywgcjgiICJcbiIK
LSAgICAibW92LmwgcjE0LCBALXIxNSIgIlxuIgotICAgICJzdHMubCBwciwgQC1yMTUiICJcbiIK
LSAgICAibW92LmwgcjEzLCBALXIxNSIgIlxuIgotICAgICJtb3YubCByMTEsIEAtcjE1IiAiXG4i
Ci0gICAgIm1vdi5sIHIxMCwgQC1yMTUiICJcbiIKLSAgICAiYWRkICMtNjAsIHIxNSIgIlxuIgot
ICAgICJtb3YgcjYsIHIxNCIgIlxuIgotICAgICJqc3IgQHI0IiAiXG4iCi0gICAgIm5vcCIgIlxu
IgotICAgICJhZGQgIzYwLCByMTUiICJcbiIKLSAgICAibW92LmwgQHIxNSsscjEwIiAiXG4iCi0g
ICAgIm1vdi5sIEByMTUrLHIxMSIgIlxuIgotICAgICJtb3YubCBAcjE1KyxyMTMiICJcbiIKLSAg
ICAibGRzLmwgQHIxNSsscHIiICJcbiIKLSAgICAibW92LmwgQHIxNSsscjE0IiAiXG4iCi0gICAg
Im1vdi5sIEByMTUrLHI4IiAiXG4iCi0gICAgImFkZCAjMTIsIHIxNSIgIlxuIgotICAgICJydHMi
ICJcbiIKLSAgICAibm9wIiAiXG4iCi0pOwotCi1hc20gdm9sYXRpbGUgKAotIi5nbG9ibCAiIFNZ
TUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKLUhJREVfU1lNQk9MKGN0aVZN
VGhyb3dUcmFtcG9saW5lKSAiXG4iCi1TWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5l
KSAiOiIgIlxuIgotICAgICJtb3YubCAuTDIiU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpIixy
MCIgIlxuIgotICAgICJtb3YgcjE1LCByNCIgIlxuIgotICAgICJtb3YubCBAKHIwLHIxMikscjEx
IiAiXG4iCi0gICAgImpzciBAcjExIiAiXG4iCi0gICAgIm5vcCIgIlxuIgotICAgICJhZGQgIzYw
LCByMTUiICJcbiIKLSAgICAibW92LmwgQHIxNSsscjEwIiAiXG4iCi0gICAgIm1vdi5sIEByMTUr
LHIxMSIgIlxuIgotICAgICJtb3YubCBAcjE1KyxyMTMiICJcbiIKLSAgICAibGRzLmwgQHIxNSss
cHIiICJcbiIKLSAgICAibW92LmwgQHIxNSsscjE0IiAiXG4iCi0gICAgIm1vdi5sIEByMTUrLHI4
IiAiXG4iCi0gICAgImFkZCAjMTIsIHIxNSIgIlxuIgotICAgICJydHMiICJcbiIKLSAgICAibm9w
IiAiXG4iCi0gICAgIi5hbGlnbiAyIiAiXG4iCi0gICAgIi5MMiJTWU1CT0xfU1RSSU5HKGN0aV92
bV90aHJvdykiOi5sb25nICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpIkBHT1QgXG4iCi0p
OwotCi1hc20gdm9sYXRpbGUgKAotIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05v
dENhdWdodCkgIlxuIgotSElERV9TWU1CT0woY3RpT3BUaHJvd05vdENhdWdodCkgIlxuIgotU1lN
Qk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiOiIgIlxuIgotICAgICJhZGQgIzYwLCBy
MTUiICJcbiIKLSAgICAibW92LmwgQHIxNSsscjEwIiAiXG4iCi0gICAgIm1vdi5sIEByMTUrLHIx
MSIgIlxuIgotICAgICJtb3YubCBAcjE1KyxyMTMiICJcbiIKLSAgICAibGRzLmwgQHIxNSsscHIi
ICJcbiIKLSAgICAibW92LmwgQHIxNSsscjE0IiAiXG4iCi0gICAgIm1vdi5sIEByMTUrLHI4IiAi
XG4iCi0gICAgImFkZCAjMTIsIHIxNSIgIlxuIgotICAgICJydHMiICJcbiIKLSAgICAibm9wIiAi
XG4iCi0pOwotI2Vsc2UKLSAgICAjZXJyb3IgIkpJVCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxh
dGZvcm0uIgotI2VuZGlmCi0KLSNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCi0KLSNpZiBDT01Q
SUxFUihHQ0MpICYmIENQVShYODZfNjQpCi0KLS8vIFRoZXNlIEFTU0VSVHMgcmVtaW5kIHlvdSB0
aGF0LCBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQgb2YgSklUU3RhY2tGcmFtZSwgeW91Ci0vLyBu
ZWVkIHRvIGNoYW5nZSB0aGUgYXNzZW1ibHkgdHJhbXBvbGluZXMgYmVsb3cgdG8gbWF0Y2guCi1D
T01QSUxFX0FTU0VSVChvZmZzZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1lKSA9
PSAweDU4LCBKSVRTdGFja0ZyYW1lX2NhbGxGcmFtZV9vZmZzZXRfbWF0Y2hlc19jdGlUcmFtcG9s
aW5lKTsKLUNPTVBJTEVfQVNTRVJUKG9mZnNldG9mKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjb2Rl
KSA9PSAweDQ4LCBKSVRTdGFja0ZyYW1lX2NvZGVfb2Zmc2V0X21hdGNoZXNfY3RpVHJhbXBvbGlu
ZSk7Ci1DT01QSUxFX0FTU0VSVChvZmZzZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc2F2ZWRS
QlgpID09IDB4NzgsIEpJVFN0YWNrRnJhbWVfc3R1Yl9hcmd1bWVudF9zcGFjZV9tYXRjaGVzX2N0
aVRyYW1wb2xpbmUpOwotCi1hc20gKAotIi50ZXh0XG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklO
RyhjdGlUcmFtcG9saW5lKSAiXG4iCi1ISURFX1NZTUJPTChjdGlUcmFtcG9saW5lKSAiXG4iCi1T
WU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCi0gICAgInB1c2hxICVyYnAiICJc
biIKLSAgICAibW92cSAlcnNwLCAlcmJwIiAiXG4iCi0gICAgInB1c2hxICVyMTIiICJcbiIKLSAg
ICAicHVzaHEgJXIxMyIgIlxuIgotICAgICJwdXNocSAlcjE0IiAiXG4iCi0gICAgInB1c2hxICVy
MTUiICJcbiIKLSAgICAicHVzaHEgJXJieCIgIlxuIgotICAgIC8vIEZvcm0gdGhlIEpJVCBzdHVi
cyBhcmVhCi0gICAgInB1c2hxICVyOSIgIlxuIgotICAgICJwdXNocSAlcjgiICJcbiIKLSAgICAi
cHVzaHEgJXJjeCIgIlxuIgotICAgICJwdXNocSAlcmR4IiAiXG4iCi0gICAgInB1c2hxICVyc2ki
ICJcbiIKLSAgICAicHVzaHEgJXJkaSIgIlxuIgotICAgICJzdWJxICQweDQ4LCAlcnNwIiAiXG4i
Ci0gICAgIm1vdnEgJDUxMiwgJXIxMiIgIlxuIgotICAgICJtb3ZxICQweEZGRkYwMDAwMDAwMDAw
MDAsICVyMTQiICJcbiIKLSAgICAibW92cSAkMHhGRkZGMDAwMDAwMDAwMDAyLCAlcjE1IiAiXG4i
Ci0gICAgIm1vdnEgJXJkeCwgJXIxMyIgIlxuIgotICAgICJjYWxsIColcmRpIiAiXG4iCi0gICAg
ImFkZHEgJDB4NzgsICVyc3AiICJcbiIKLSAgICAicG9wcSAlcmJ4IiAiXG4iCi0gICAgInBvcHEg
JXIxNSIgIlxuIgotICAgICJwb3BxICVyMTQiICJcbiIKLSAgICAicG9wcSAlcjEzIiAiXG4iCi0g
ICAgInBvcHEgJXIxMiIgIlxuIgotICAgICJwb3BxICVyYnAiICJcbiIKLSAgICAicmV0IiAiXG4i
Ci0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCi1ISURFX1NZ
TUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCi1TWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVF
bmQpICI6IiAiXG4iCi0pOwotCi1hc20gKAotIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1U
aHJvd1RyYW1wb2xpbmUpICJcbiIKLUhJREVfU1lNQk9MKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAi
XG4iCi1TWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgotICAgICJt
b3ZxICVyc3AsICVyZGkiICJcbiIKLSAgICAiY2FsbCAiIExPQ0FMX1JFRkVSRU5DRShjdGlfdm1f
dGhyb3cpICJcbiIKLSAgICAiaW50MyIgIlxuIgotKTsKLQotYXNtICgKLSIuZ2xvYmwgIiBTWU1C
T0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKLUhJREVfU1lNQk9MKGN0aU9wVGhy
b3dOb3RDYXVnaHQpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIjoi
ICJcbiIKLSAgICAiYWRkcSAkMHg3OCwgJXJzcCIgIlxuIgotICAgICJwb3BxICVyYngiICJcbiIK
LSAgICAicG9wcSAlcjE1IiAiXG4iCi0gICAgInBvcHEgJXIxNCIgIlxuIgotICAgICJwb3BxICVy
MTMiICJcbiIKLSAgICAicG9wcSAlcjEyIiAiXG4iCi0gICAgInBvcHEgJXJicCIgIlxuIgotICAg
ICJyZXQiICJcbiIKLSk7Ci0KLSNlbGlmIENPTVBJTEVSKE1TVkMpICYmIENQVShYODZfNjQpCi0K
LS8vIFRoZXNlIEFTU0VSVHMgcmVtaW5kIHlvdSB0aGF0LCBpZiB5b3UgY2hhbmdlIHRoZSBsYXlv
dXQgb2YgSklUU3RhY2tGcmFtZSwgeW91Ci0vLyBuZWVkIHRvIGNoYW5nZSB0aGUgYXNzZW1ibHkg
dHJhbXBvbGluZXMgaW4gSklUU3R1YnNNU1ZDNjQuYXNtIHRvIG1hdGNoLgotQ09NUElMRV9BU1NF
UlQob2Zmc2V0b2Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNvZGUpICUgMTYgPT0gMHgwLCBKSVRT
dGFja0ZyYW1lX21haW50YWluc18xNmJ5dGVfc3RhY2tfYWxpZ25tZW50KTsKLUNPTVBJTEVfQVNT
RVJUKG9mZnNldG9mKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBzYXZlZFJCWCkgPT0gMHg1OCwgSklU
U3RhY2tGcmFtZV9zdHViX2FyZ3VtZW50X3NwYWNlX21hdGNoZXNfY3RpVHJhbXBvbGluZSk7Ci0K
KyNpbmNsdWRlICJKSVRTdHVic1NINC5oIgorI2VsaWYgQ1BVKFg4NikKKyNpbmNsdWRlICJKSVRT
dHVic1g4Ni5oIgorI2VsaWYgQ1BVKFg4Nl82NCkKKyNpbmNsdWRlICJKSVRTdHVic1g4Nl82NC5o
IgogI2Vsc2UKLSAgICAjZXJyb3IgIkpJVCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0u
IgorI2Vycm9yICJKSVQgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIKICNlbmRpZgog
Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKLQotI2lmIENQVShNSVBTKQotYXNtICgKLSIu
dGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLnNldCBub3Jlb3JkZXIiICJcbiIKLSIuc2V0
IG5vbWFjcm8iICJcbiIKLSIuc2V0IG5vbWlwczE2IiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NU
UklORyhjdGlUcmFtcG9saW5lKSAiXG4iCi0iLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBv
bGluZSkgIlxuIgotU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIgIlxuIgotICAgICJh
ZGRpdSAkMjksJDI5LC0iIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIKLSAg
ICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVT
U19PRkZTRVQpICIoJDI5KSIgIlxuIgotICAgICJzdyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCi0gICAgInN3ICAgICQxOSwiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKLSAgICAi
c3cgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5
KSIgIlxuIgotICAgICJzdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1Mx
X09GRlNFVCkgIigkMjkpIiAiXG4iCi0gICAgInN3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKLSNpZiBXVEZfTUlQU19QSUMKLSAg
ICAic3cgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQpICIo
JDI5KSIgIlxuIgotI2VuZGlmCi0gICAgIm1vdmUgICQxNiwkNiAgICAgICAjIHNldCBjYWxsRnJh
bWVSZWdpc3RlciIgIlxuIgotICAgICJsaSAgICAkMTcsNTEyICAgICAgIyBzZXQgdGltZW91dENo
ZWNrUmVnaXN0ZXIiICJcbiIKLSAgICAibW92ZSAgJDI1LCQ0ICAgICAgICMgbW92ZSBleGVjdXRh
YmxlQWRkcmVzcyB0byB0OSIgIlxuIgotICAgICJzdyAgICAkNSwiIFNUUklOR0laRV9WQUxVRV9P
RihSRUdJU1RFUl9GSUxFX09GRlNFVCkgIigkMjkpICMgc3RvcmUgSlNTdGFjayB0byBjdXJyZW50
IHN0YWNrIiAiXG4iCi0gICAgImx3ICAgICQ5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xF
TkdUSCArIDIwKSAiKCQyOSkgICAgIyBsb2FkIHZtIGZyb20gcHJldmlvdXMgc3RhY2siICJcbiIK
LSAgICAiamFsciAgJDI1IiAiXG4iCi0gICAgInN3ICAgICQ5LCIgU1RSSU5HSVpFX1ZBTFVFX09G
KEdMT0JBTF9EQVRBX09GRlNFVCkgIigkMjkpICAgIyBzdG9yZSB2bSB0byBjdXJyZW50IHN0YWNr
IiAiXG4iCi0gICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBf
T0ZGU0VUKSAiKCQyOSkiICJcbiIKLSAgICAibHcgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgotICAgICJsdyAgICAkMTgsIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCi0gICAgImx3
ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSki
ICJcbiIKLSAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9P
RkZTRVQpICIoJDI5KSIgIlxuIgotICAgICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCi0gICAgImpyICAg
ICQzMSIgIlxuIgotICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNL
X0xFTkdUSCkgIlxuIgotIi5zZXQgcmVvcmRlciIgIlxuIgotIi5zZXQgbWFjcm8iICJcbiIKLSIu
ZW5kICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiXG4iCi0iLmdsb2JsICIgU1lNQk9M
X1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCi1ISURFX1NZTUJPTChjdGlUcmFtcG9saW5l
RW5kKSAiXG4iCi1TWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICI6IiAiXG4iCi0pOwot
Ci1hc20gKAotIi50ZXh0IiAiXG4iCi0iLmFsaWduIDIiICJcbiIKLSIuc2V0IG5vcmVvcmRlciIg
IlxuIgotIi5zZXQgbm9tYWNybyIgIlxuIgotIi5zZXQgbm9taXBzMTYiICJcbiIKLSIuZ2xvYmwg
IiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCi0iLmVudCAiIFNZTUJP
TF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3RpVk1U
aHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCi0jaWYgV1RGX01JUFNfUElDCi0iLnNldCBtYWNybyIg
IlxuIgotIi5jcGxvYWQgJDMxIiAiXG4iCi0gICAgImxhICAgICQyNSwiIFNZTUJPTF9TVFJJTkco
Y3RpX3ZtX3Rocm93KSAiXG4iCi0iLnNldCBub21hY3JvIiAiXG4iCi0gICAgImJhbCAiIFNZTUJP
TF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCi0gICAgIm1vdmUgICQ0LCQyOSIgIlxuIgotI2Vs
c2UKLSAgICAiamFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKLSAgICAibW92
ZSAgJDQsJDI5IiAiXG4iCi0jZW5kaWYKLSAgICAibHcgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgotICAgICJsdyAgICAkMTcsIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCi0gICAg
Imx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQy
OSkiICJcbiIKLSAgICAibHcgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9T
M19PRkZTRVQpICIoJDI5KSIgIlxuIgotICAgICJsdyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCi0gICAgImx3ICAgICQzMSwiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSki
ICJcbiIKLSAgICAianIgICAgJDMxIiAiXG4iCi0gICAgImFkZGl1ICQyOSwkMjksIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCi0iLnNldCByZW9yZGVyIiAiXG4iCi0iLnNl
dCBtYWNybyIgIlxuIgotIi5lbmQgIiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5l
KSAiXG4iCi0pOwotCi1hc20gKAotIi50ZXh0IiAiXG4iCi0iLmFsaWduIDIiICJcbiIKLSIuc2V0
IG5vcmVvcmRlciIgIlxuIgotIi5zZXQgbm9tYWNybyIgIlxuIgotIi5zZXQgbm9taXBzMTYiICJc
biIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKLSIu
ZW50ICIgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiXG4iCi1TWU1CT0xfU1RS
SU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCi0gICAgImx3ICAgICQxNiwiIFNUUklO
R0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKLSAgICAibHcg
ICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIg
IlxuIgotICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09G
RlNFVCkgIigkMjkpIiAiXG4iCi0gICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKLSAgICAibHcgICAgJDIwLCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgotICAgICJsdyAg
ICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNF
VCkgIigkMjkpIiAiXG4iCi0gICAgImpyICAgICQzMSIgIlxuIgotICAgICJhZGRpdSAkMjksJDI5
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgotIi5zZXQgcmVvcmRlciIg
IlxuIgotIi5zZXQgbWFjcm8iICJcbiIKLSIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlPcFRocm93
Tm90Q2F1Z2h0KSAiXG4iCi0pOwotI2VuZGlmCi0KLSNpZiBDT01QSUxFUihHQ0MpICYmIENQVShB
Uk1fVEhVTUIyKQotCi1hc20gKAotIi50ZXh0IiAiXG4iCi0iLmFsaWduIDIiICJcbiIKLSIuZ2xv
YmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKLUhJREVfU1lNQk9MKGN0aVRy
YW1wb2xpbmUpICJcbiIKLSIudGh1bWIiICJcbiIKLSIudGh1bWJfZnVuYyAiIFRIVU1CX0ZVTkNf
UEFSQU0oY3RpVHJhbXBvbGluZSkgIlxuIgotU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAi
OiIgIlxuIgotICAgICJzdWIgc3AsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRklSU1RfU1RB
Q0tfQVJHVU1FTlQpICJcbiIKLSAgICAic3RyIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgcjQs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SNF9PRkZTRVQpICJdIiAiXG4i
Ci0gICAgInN0ciByNSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I1X09G
RlNFVCkgIl0iICJcbiIKLSAgICAic3RyIHI2LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUjZfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgcjcsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SN19PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciByOCwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I4X09GRlNFVCkgIl0iICJcbiIK
LSAgICAic3RyIHI5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjlfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJzdHIgcjEwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUjEwX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyIHIxMSwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1IxMV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciBy
MSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUkVHSVNURVJfRklMRV9PRkZTRVQpICJdIiAi
XG4iCi0gICAgIm1vdiByNSwgcjIiICJcbiIKLSAgICAibW92IHI2LCAjNTEyIiAiXG4iCi0gICAg
ImJseCByMCIgIlxuIgotICAgICJsZHIgcjExLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUjExX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyIHIxMCwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1IxMF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciBy
OSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I5X09GRlNFVCkgIl0iICJc
biIKLSAgICAibGRyIHI4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjhf
T0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgcjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9SN19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciByNiwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I2X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyIHI1
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjVfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJsZHIgcjQsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SNF9P
RkZTRVQpICJdIiAiXG4iCi0gICAgImxkciBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIl0iICJcbiIKLSAgICAiYWRkIHNwLCBz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZJUlNUX1NUQUNLX0FSR1VNRU5UKSAiXG4iCi0gICAg
ImJ4IGxyIiAiXG4iCi0iLmFsaWduIDIiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0
aVRyYW1wb2xpbmVFbmQpICJcbiIKLUhJREVfU1lNQk9MKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIK
LSIudGh1bWIiICJcbiIKLSIudGh1bWJfZnVuYyAiIFRIVU1CX0ZVTkNfUEFSQU0oY3RpVHJhbXBv
bGluZUVuZCkgIlxuIgotU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgot
KTsKLQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lN
Qk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotSElERV9TWU1CT0woY3RpVk1U
aHJvd1RyYW1wb2xpbmUpICJcbiIKLSIudGh1bWIiICJcbiIKLSIudGh1bWJfZnVuYyAiIFRIVU1C
X0ZVTkNfUEFSQU0oY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3Rp
Vk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCi0gICAgIm1vdiByMCwgc3AiICJcbiIKLSAgICAi
YmwgIiBMT0NBTF9SRUZFUkVOQ0UoY3RpX3ZtX3Rocm93KSAiXG4iCi0gICAgImxkciByMTEsIFtz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SMTFfT0ZGU0VUKSAiXSIgIlxuIgot
ICAgICJsZHIgcjEwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjEwX09G
RlNFVCkgIl0iICJcbiIKLSAgICAibGRyIHI5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUjlfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgcjgsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SOF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciByNywg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I3X09GRlNFVCkgIl0iICJcbiIK
LSAgICAibGRyIHI2LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjZfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJsZHIgcjUsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9SNV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciByNCwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I0X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyIGxyLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJhZGQgc3AsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRklSU1Rf
U1RBQ0tfQVJHVU1FTlQpICJcbiIKLSAgICAiYnggbHIiICJcbiIKLSk7Ci0KLWFzbSAoCi0iLnRl
eHQiICJcbiIKLSIuYWxpZ24gMiIgIlxuIgotIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpT3BU
aHJvd05vdENhdWdodCkgIlxuIgotSElERV9TWU1CT0woY3RpT3BUaHJvd05vdENhdWdodCkgIlxu
IgotIi50aHVtYiIgIlxuIgotIi50aHVtYl9mdW5jICIgVEhVTUJfRlVOQ19QQVJBTShjdGlPcFRo
cm93Tm90Q2F1Z2h0KSAiXG4iCi1TWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6
IiAiXG4iCi0gICAgImxkciByMTEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZF
RF9SMTFfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgcjEwLCBbc3AsICMiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUjEwX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyIHI5LCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjlfT0ZGU0VUKSAiXSIgIlxuIgotICAg
ICJsZHIgcjgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SOF9PRkZTRVQp
ICJdIiAiXG4iCi0gICAgImxkciByNywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VS
VkVEX1I3X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyIHI2LCBbc3AsICMiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUjZfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgcjUsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SNV9PRkZTRVQpICJdIiAiXG4iCi0gICAg
ImxkciByNCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I0X09GRlNFVCkg
Il0iICJcbiIKLSAgICAibGRyIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJhZGQgc3AsIHNwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoRklSU1RfU1RBQ0tfQVJHVU1FTlQpICJcbiIKLSAgICAiYnggbHIi
ICJcbiIKLSk7Ci0KLSNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKEFSTV9UUkFESVRJT05BTCkK
LQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBv
bGluZSkgIlxuIgotSElERV9TWU1CT0woY3RpVHJhbXBvbGluZSkgIlxuIgotSU5MSU5FX0FSTV9G
VU5DVElPTihjdGlUcmFtcG9saW5lKQotU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIg
IlxuIgotICAgICJzdG1kYiBzcCEsIHtyMS1yM30iICJcbiIKLSAgICAic3RtZGIgc3AhLCB7cjQt
cjYsIHI4LXIxMSwgbHJ9IiAiXG4iCi0gICAgInN1YiBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURSNF9PRkZTRVQpICJcbiIKLSAgICAibW92IHI1LCByMiIgIlxuIgotICAg
ICJtb3YgcjYsICM1MTIiICJcbiIKLSAgICAvLyByMCBjb250YWlucyB0aGUgY29kZQotICAgICJi
bHggcjAiICJcbiIKLSAgICAiYWRkIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRFI0X09GRlNFVCkgIlxuIgotICAgICJsZG1pYSBzcCEsIHtyNC1yNiwgcjgtcjExLCBscn0i
ICJcbiIKLSAgICAiYWRkIHNwLCBzcCwgIzEyIiAiXG4iCi0gICAgImJ4IGxyIiAiXG4iCi0iLmds
b2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCi1ISURFX1NZTUJPTChj
dGlUcmFtcG9saW5lRW5kKSAiXG4iCi1TWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICI6
IiAiXG4iCi0pOwotCi1hc20gKAotIi50ZXh0IiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklO
RyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotSElERV9TWU1CT0woY3RpVk1UaHJvd1RyYW1w
b2xpbmUpICJcbiIKLUlOTElORV9BUk1fRlVOQ1RJT04oY3RpVk1UaHJvd1RyYW1wb2xpbmUpCi1T
WU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgotICAgICJtb3YgcjAs
IHNwIiAiXG4iCi0gICAgImJsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKLQot
Ly8gQm90aCBoYXMgdGhlIHNhbWUgcmV0dXJuIHNlcXVlbmNlCi0iLnRleHQiICJcbiIKLSIuZ2xv
YmwgIiBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKLUhJREVfU1lNQk9M
KGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKLUlOTElORV9BUk1fRlVOQ1RJT04oY3RpT3BUaHJv
d05vdENhdWdodCkKLVNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIjoiICJcbiIK
LSAgICAiYWRkIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRFI0X09GRlNF
VCkgIlxuIgotICAgICJsZG1pYSBzcCEsIHtyNC1yNiwgcjgtcjExLCBscn0iICJcbiIKLSAgICAi
YWRkIHNwLCBzcCwgIzEyIiAiXG4iCi0gICAgImJ4IGxyIiAiXG4iCi0pOwotCi0jZWxpZiBDT01Q
SUxFUihSVkNUKSAmJiBDUFUoQVJNX1RIVU1CMikKLQotX19hc20gRW5jb2RlZEpTVmFsdWUgY3Rp
VHJhbXBvbGluZSh2b2lkKiwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSov
LCB2b2lkKiAvKnVudXNlZDIqLywgVk0qKQotewotICAgIFBSRVNFUlZFOAotICAgIHN1YiBzcCwg
c3AsICMgRklSU1RfU1RBQ0tfQVJHVU1FTlQKLSAgICBzdHIgbHIsIFtzcCwgIyBQUkVTRVJWRURf
UkVUVVJOX0FERFJFU1NfT0ZGU0VUIF0KLSAgICBzdHIgcjQsIFtzcCwgIyBQUkVTRVJWRURfUjRf
T0ZGU0VUIF0KLSAgICBzdHIgcjUsIFtzcCwgIyBQUkVTRVJWRURfUjVfT0ZGU0VUIF0KLSAgICBz
dHIgcjYsIFtzcCwgIyBQUkVTRVJWRURfUjZfT0ZGU0VUIF0KLSAgICBzdHIgcjcsIFtzcCwgIyBQ
UkVTRVJWRURfUjdfT0ZGU0VUIF0KLSAgICBzdHIgcjgsIFtzcCwgIyBQUkVTRVJWRURfUjhfT0ZG
U0VUIF0KLSAgICBzdHIgcjksIFtzcCwgIyBQUkVTRVJWRURfUjlfT0ZGU0VUIF0KLSAgICBzdHIg
cjEwLCBbc3AsICMgUFJFU0VSVkVEX1IxMF9PRkZTRVQgXQotICAgIHN0ciByMTEsIFtzcCwgIyBQ
UkVTRVJWRURfUjExX09GRlNFVCBdCi0gICAgc3RyIHIxLCBbc3AsICMgUkVHSVNURVJfRklMRV9P
RkZTRVQgXQotICAgIG1vdiByNSwgcjIKLSAgICBtb3YgcjYsICM1MTIKLSAgICBibHggcjAKLSAg
ICBsZHIgcjExLCBbc3AsICMgUFJFU0VSVkVEX1IxMV9PRkZTRVQgXQotICAgIGxkciByMTAsIFtz
cCwgIyBQUkVTRVJWRURfUjEwX09GRlNFVCBdCi0gICAgbGRyIHI5LCBbc3AsICMgUFJFU0VSVkVE
X1I5X09GRlNFVCBdCi0gICAgbGRyIHI4LCBbc3AsICMgUFJFU0VSVkVEX1I4X09GRlNFVCBdCi0g
ICAgbGRyIHI3LCBbc3AsICMgUFJFU0VSVkVEX1I3X09GRlNFVCBdCi0gICAgbGRyIHI2LCBbc3As
ICMgUFJFU0VSVkVEX1I2X09GRlNFVCBdCi0gICAgbGRyIHI1LCBbc3AsICMgUFJFU0VSVkVEX1I1
X09GRlNFVCBdCi0gICAgbGRyIHI0LCBbc3AsICMgUFJFU0VSVkVEX1I0X09GRlNFVCBdCi0gICAg
bGRyIGxyLCBbc3AsICMgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCBdCi0gICAgYWRk
IHNwLCBzcCwgIyBGSVJTVF9TVEFDS19BUkdVTUVOVAotICAgIGJ4IGxyCi19Ci0KLV9fYXNtIHZv
aWQgY3RpVk1UaHJvd1RyYW1wb2xpbmUoKQotewotICAgIFBSRVNFUlZFOAotICAgIG1vdiByMCwg
c3AKLSAgICBibCBjdGlfdm1fdGhyb3cKLSAgICBsZHIgcjExLCBbc3AsICMgUFJFU0VSVkVEX1Ix
MV9PRkZTRVQgXQotICAgIGxkciByMTAsIFtzcCwgIyBQUkVTRVJWRURfUjEwX09GRlNFVCBdCi0g
ICAgbGRyIHI5LCBbc3AsICMgUFJFU0VSVkVEX1I5X09GRlNFVCBdCi0gICAgbGRyIHI4LCBbc3As
ICMgUFJFU0VSVkVEX1I4X09GRlNFVCBdCi0gICAgbGRyIHI3LCBbc3AsICMgUFJFU0VSVkVEX1I3
X09GRlNFVCBdCi0gICAgbGRyIHI2LCBbc3AsICMgUFJFU0VSVkVEX1I2X09GRlNFVCBdCi0gICAg
bGRyIHI2LCBbc3AsICMgUFJFU0VSVkVEX1I2X09GRlNFVCBdCi0gICAgbGRyIHI1LCBbc3AsICMg
UFJFU0VSVkVEX1I1X09GRlNFVCBdCi0gICAgbGRyIHI0LCBbc3AsICMgUFJFU0VSVkVEX1I0X09G
RlNFVCBdCi0gICAgbGRyIGxyLCBbc3AsICMgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNF
VCBdCi0gICAgYWRkIHNwLCBzcCwgIyBGSVJTVF9TVEFDS19BUkdVTUVOVAotICAgIGJ4IGxyCi19
Ci0KLV9fYXNtIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgpCi17Ci0gICAgUFJFU0VSVkU4Ci0g
ICAgbGRyIHIxMSwgW3NwLCAjIFBSRVNFUlZFRF9SMTFfT0ZGU0VUIF0KLSAgICBsZHIgcjEwLCBb
c3AsICMgUFJFU0VSVkVEX1IxMF9PRkZTRVQgXQotICAgIGxkciByOSwgW3NwLCAjIFBSRVNFUlZF
RF9SOV9PRkZTRVQgXQotICAgIGxkciByOCwgW3NwLCAjIFBSRVNFUlZFRF9SOF9PRkZTRVQgXQot
ICAgIGxkciByNywgW3NwLCAjIFBSRVNFUlZFRF9SN19PRkZTRVQgXQotICAgIGxkciByNiwgW3Nw
LCAjIFBSRVNFUlZFRF9SNl9PRkZTRVQgXQotICAgIGxkciByNiwgW3NwLCAjIFBSRVNFUlZFRF9S
Nl9PRkZTRVQgXQotICAgIGxkciByNSwgW3NwLCAjIFBSRVNFUlZFRF9SNV9PRkZTRVQgXQotICAg
IGxkciByNCwgW3NwLCAjIFBSRVNFUlZFRF9SNF9PRkZTRVQgXQotICAgIGxkciBsciwgW3NwLCAj
IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQgXQotICAgIGFkZCBzcCwgc3AsICMgRklS
U1RfU1RBQ0tfQVJHVU1FTlQKLSAgICBieCBscgotfQotCi0jZWxpZiBDT01QSUxFUihSVkNUKSAm
JiBDUFUoQVJNX1RSQURJVElPTkFMKQotCi1fX2FzbSBFbmNvZGVkSlNWYWx1ZSBjdGlUcmFtcG9s
aW5lKHZvaWQqLCBKU1N0YWNrKiwgQ2FsbEZyYW1lKiwgdm9pZCogLyp1bnVzZWQxKi8sIHZvaWQq
IC8qdW51c2VkMiovLCBWTSopCi17Ci0gICAgQVJNCi0gICAgc3RtZGIgc3AhLCB7cjEtcjN9Ci0g
ICAgc3RtZGIgc3AhLCB7cjQtcjYsIHI4LXIxMSwgbHJ9Ci0gICAgc3ViIHNwLCBzcCwgIyBQUkVT
RVJWRURSNF9PRkZTRVQKLSAgICBtb3YgcjUsIHIyCi0gICAgbW92IHI2LCAjNTEyCi0gICAgbW92
IGxyLCBwYwotICAgIGJ4IHIwCi0gICAgYWRkIHNwLCBzcCwgIyBQUkVTRVJWRURSNF9PRkZTRVQK
LSAgICBsZG1pYSBzcCEsIHtyNC1yNiwgcjgtcjExLCBscn0KLSAgICBhZGQgc3AsIHNwLCAjMTIK
LSAgICBieCBscgotfQotX19hc20gdm9pZCBjdGlUcmFtcG9saW5lRW5kKCkKLXsKLX0KLQotX19h
c20gdm9pZCBjdGlWTVRocm93VHJhbXBvbGluZSgpCi17Ci0gICAgQVJNCi0gICAgUFJFU0VSVkU4
Ci0gICAgbW92IHIwLCBzcAotICAgIGJsIGN0aV92bV90aHJvdwotICAgIGFkZCBzcCwgc3AsICMg
UFJFU0VSVkVEUjRfT0ZGU0VUCi0gICAgbGRtaWEgc3AhLCB7cjQtcjYsIHI4LXIxMSwgbHJ9Ci0g
ICAgYWRkIHNwLCBzcCwgIzEyCi0gICAgYnggbHIKLX0KLQotX19hc20gdm9pZCBjdGlPcFRocm93
Tm90Q2F1Z2h0KCkKLXsKLSAgICBBUk0KLSAgICBhZGQgc3AsIHNwLCAjIFBSRVNFUlZFRFI0X09G
RlNFVAotICAgIGxkbWlhIHNwISwge3I0LXI4LCBscn0KLSAgICBhZGQgc3AsIHNwLCAjMTIKLSAg
ICBieCBscgotfQotI2VuZGlmCituYW1lc3BhY2UgSlNDIHsKIAogI2lmIEVOQUJMRShPUENPREVf
U0FNUExJTkcpCiAgICAgI2RlZmluZSBDVElfU0FNUExFUiBzdGFja0ZyYW1lLnZtLT5pbnRlcnBy
ZXRlci0+c2FtcGxlcigpCkBAIC03NDQsNDEgKzEwNSwxMSBAQCB2b2lkIHBlcmZvcm1QbGF0Zm9y
bVNwZWNpZmljSklUQXNzZXJ0aW9uCiAgICAgICAgIHJldHVybjsKIAogI2lmIENQVShBUk1fVEhV
TUIyKQotICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBub3QgbGlrZSB0
aGUgdXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNvbnRhaW5zIG5v
biBQT0QgdHlwZXMpLAotICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1hY3JvIGRvZXMg
bm90IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5IHdpdGggaXRz
IHVzZSBpbiBDT01QSUxFX0FTU0VSVAotICAgIC8vIG1hY3Jvcy4KLSAgICBBU1NFUlQoT0JKRUNU
X09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9
PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEX1I0
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9PSBQUkVTRVJW
RURfUjZfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7Ci0gICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjgpID09IFBS
RVNFUlZFRF9SOF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VUKTsKLSAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTAp
ID09IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9SMTFfT0ZGU0VU
KTsKLQotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHN0
YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7Ci0gICAgLy8gVGhlIGZpZnRoIGFyZ3VtZW50
IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJUlNUX1NUQUNL
X0FSR1VNRU5UKTsKLQotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
KTsKLQorICAgIHBlcmZvcm1BUk12N0pJVEFzc2VydGlvbnMoKTsKICNlbGlmIENQVShBUk1fVFJB
RElUSU9OQUwpCi0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7
Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUjQpID09IFBSRVNFUlZFRFI0X09GRlNFVCk7Ci0KLQorICAgIHBlcmZvcm1BUk1KSVRBc3Nl
cnRpb25zKCk7CiAjZWxpZiBDUFUoTUlQUykKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7
Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZG
U0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0g
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19S
RVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdm0pID09IEdMT0JBTF9E
QVRBX09GRlNFVCk7Ci0KKyAgICBwZXJmb3JtTUlQU0pJVEFzc2VydGlvbnMoKTsKICNlbmRpZgog
fQogCkBAIC0xMDQwLDIxMSArMzcxLDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIFQg
dGhyb3dFeGNlcAogICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGw8VD4oaml0U3Rh
Y2tGcmFtZSwgbmV3Q2FsbEZyYW1lLCByZXR1cm5BZGRyZXNzU2xvdCk7CiB9CiAKLSNpZiBDUFUo
QVJNX1RIVU1CMikgJiYgQ09NUElMRVIoR0NDKQotCi0jZGVmaW5lIERFRklORV9TVFVCX0ZVTkNU
SU9OKHJ0eXBlLCBvcCkgXAotICAgIGV4dGVybiAiQyIgeyBcCi0gICAgICAgIHJ0eXBlIEpJVFN0
dWJUaHVua2VkXyMjb3AoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsgXAotICAgIH07IFwKLSAgICBh
c20gKCBcCi0gICAgICAgICIudGV4dCIgIlxuIiBcCi0gICAgICAgICIuYWxpZ24gMiIgIlxuIiBc
Ci0gICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKLSAgICAg
ICAgSElERV9TWU1CT0woY3RpXyMjb3ApICJcbiIgICAgICAgICAgICAgXAotICAgICAgICAiLnRo
dW1iIiAiXG4iIFwKLSAgICAgICAgIi50aHVtYl9mdW5jICIgVEhVTUJfRlVOQ19QQVJBTShjdGlf
IyNvcCkgIlxuIiBcCi0gICAgICAgIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICI6IiAiXG4iIFwK
LSAgICAgICAgInN0ciBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUKSAiXSIgIlxuIiBcCi0gICAgICAgICJibCAiIFNZTUJPTF9TVFJJTkco
SklUU3R1YlRodW5rZWRfIyNvcCkgIlxuIiBcCi0gICAgICAgICJsZHIgbHIsIFtzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIl0iICJcbiIgXAot
ICAgICAgICAiYnggbHIiICJcbiIgXAotICAgICAgICApOyBcCi0gICAgcnR5cGUgSklUU3R1YlRo
dW5rZWRfIyNvcChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFwKLQotI2VsaWYgQ1BVKE1JUFMpCi0j
aWYgV1RGX01JUFNfUElDCi0jZGVmaW5lIERFRklORV9TVFVCX0ZVTkNUSU9OKHJ0eXBlLCBvcCkg
XAotICAgIGV4dGVybiAiQyIgeyBcCi0gICAgICAgIHJ0eXBlIEpJVFN0dWJUaHVua2VkXyMjb3Ao
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsgXAotICAgIH07IFwKLSAgICBhc20gKCBcCi0gICAgICAg
ICIudGV4dCIgIlxuIiBcCi0gICAgICAgICIuYWxpZ24gMiIgIlxuIiBcCi0gICAgICAgICIuc2V0
IG5vcmVvcmRlciIgIlxuIiBcCi0gICAgICAgICIuc2V0IG5vbWFjcm8iICJcbiIgXAotICAgICAg
ICAiLnNldCBub21pcHMxNiIgIlxuIiBcCi0gICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5H
KGN0aV8jI29wKSAiXG4iIFwKLSAgICAgICAgIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29w
KSAiXG4iIFwKLSAgICAgICAgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIjoiICJcbiIgXAotICAg
ICAgICAiLnNldCBtYWNybyIgIlxuIiBcCi0gICAgICAgICIuY3Bsb2FkICQyNSIgIlxuIiBcCi0g
ICAgICAgICJzdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIgXAotICAgICAgICAibGEgICAgJDI1LCIgU1lNQk9MX1NU
UklORyhKSVRTdHViVGh1bmtlZF8jI29wKSAiXG4iIFwKLSAgICAgICAgIi5zZXQgbm9tYWNybyIg
IlxuIiBcCi0gICAgICAgICIucmVsb2MgMWYsUl9NSVBTX0pBTFIsIiBTWU1CT0xfU1RSSU5HKEpJ
VFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXAotICAgICAgICAiMTogamFsciAkMjUiICJcbiIgXAot
ICAgICAgICAibm9wIiAiXG4iIFwKLSAgICAgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxV
RV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCi0gICAgICAg
ICJqciAgICAkMzEiICJcbiIgXAotICAgICAgICAibm9wIiAiXG4iIFwKLSAgICAgICAgIi5zZXQg
cmVvcmRlciIgIlxuIiBcCi0gICAgICAgICIuc2V0IG1hY3JvIiAiXG4iIFwKLSAgICAgICAgIi5l
bmQgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKLSAgICAgICAgKTsgXAotICAgIHJ0
eXBlIEpJVFN0dWJUaHVua2VkXyMjb3AoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKQotCi0jZWxzZSAv
LyBXVEZfTUlQU19QSUMKLSNkZWZpbmUgREVGSU5FX1NUVUJfRlVOQ1RJT04ocnR5cGUsIG9wKSBc
Ci0gICAgZXh0ZXJuICJDIiB7IFwKLSAgICAgICAgcnR5cGUgSklUU3R1YlRodW5rZWRfIyNvcChT
VFVCX0FSR1NfREVDTEFSQVRJT04pOyBcCi0gICAgfTsgXAotICAgIGFzbSAoIFwKLSAgICAgICAg
Ii50ZXh0IiAiXG4iIFwKLSAgICAgICAgIi5hbGlnbiAyIiAiXG4iIFwKLSAgICAgICAgIi5zZXQg
bm9yZW9yZGVyIiAiXG4iIFwKLSAgICAgICAgIi5zZXQgbm9tYWNybyIgIlxuIiBcCi0gICAgICAg
ICIuc2V0IG5vbWlwczE2IiAiXG4iIFwKLSAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkco
Y3RpXyMjb3ApICJcbiIgXAotICAgICAgICAiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3Ap
ICJcbiIgXAotICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxuIiBcCi0gICAg
ICAgICJzdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUKSAiKCQyOSkiICJcbiIgXAotICAgICAgICAiamFsICIgU1lNQk9MX1NUUklORyhKSVRT
dHViVGh1bmtlZF8jI29wKSAiXG4iIFwKLSAgICAgICAgIm5vcCIgIlxuIiBcCi0gICAgICAgICJs
dyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
KSAiKCQyOSkiICJcbiIgXAotICAgICAgICAianIgICAgJDMxIiAiXG4iIFwKLSAgICAgICAgIm5v
cCIgIlxuIiBcCi0gICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIgXAotICAgICAgICAiLnNldCBt
YWNybyIgIlxuIiBcCi0gICAgICAgICIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIlxu
IiBcCi0gICAgICAgICk7IFwKLSAgICBydHlwZSBKSVRTdHViVGh1bmtlZF8jI29wKFNUVUJfQVJH
U19ERUNMQVJBVElPTikKLQotI2VuZGlmCi0KLSNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpICYm
IENPTVBJTEVSKEdDQykKLQotI2RlZmluZSBERUZJTkVfU1RVQl9GVU5DVElPTihydHlwZSwgb3Ap
IFwKLSAgICBleHRlcm4gIkMiIHsgXAotICAgICAgICBydHlwZSBKSVRTdHViVGh1bmtlZF8jI29w
KFNUVUJfQVJHU19ERUNMQVJBVElPTik7IFwKLSAgICB9OyBcCi0gICAgYXNtICggXAotICAgICAg
ICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIlxuIiBcCi0gICAgICAgIElOTElO
RV9BUk1fRlVOQ1RJT04oY3RpXyMjb3ApIFwKLSAgICAgICAgU1lNQk9MX1NUUklORyhjdGlfIyNv
cCkgIjoiICJcbiIgXAotICAgICAgICAic3RyIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICJdIiAiXG4iIFwKLSAgICAgICAgImJsICIg
U1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29wKSAiXG4iIFwKLSAgICAgICAgImxkciBs
ciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
KSAiXSIgIlxuIiBcCi0gICAgICAgICJieCBsciIgIlxuIiBcCi0gICAgICAgICk7IFwKLSAgICBy
dHlwZSBKSVRTdHViVGh1bmtlZF8jI29wKFNUVUJfQVJHU19ERUNMQVJBVElPTikKLQotI2VsaWYg
KENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RSQURJVElPTkFMKSkgJiYgQ09NUElMRVIoUlZD
VCkKLQotI2RlZmluZSBERUZJTkVfU1RVQl9GVU5DVElPTihydHlwZSwgb3ApIHJ0eXBlIEpJVFN0
dWJUaHVua2VkXyMjb3AoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKQotCi0vKiBUaGUgZm9sbG93aW5n
IGlzIGEgd29ya2Fyb3VuZCBmb3IgUlZDVCB0b29sY2hhaW47IHByZWNvbXBpbGVyIG1hY3JvcyBh
cmUgbm90IGV4cGFuZGVkIGJlZm9yZSB0aGUgY29kZSBpcyBwYXNzZWQgdG8gdGhlIGFzc2VtYmxl
ciAqLwotCi0vKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgYSB0ZW1wbGF0ZSB0byBnZW5lcmF0
ZSBjb2RlIGZvciBHZW5lcmF0ZWRKSVRTdHVic19SVkNULmggKi8KLS8qIFRoZSBwYXR0ZXJuICIj
eHh4IyIgd2lsbCBiZSByZXBsYWNlZCB3aXRoICJ4eHgiICovCi0KLS8qCi1SVkNUKGV4dGVybiAi
QyIgI3J0eXBlIyBKSVRTdHViVGh1bmtlZF8jb3AjKFNUVUJfQVJHU19ERUNMQVJBVElPTik7KQot
UlZDVChfX2FzbSAjcnR5cGUjIGN0aV8jb3AjKFNUVUJfQVJHU19ERUNMQVJBVElPTikpCi1SVkNU
KHspCi1SVkNUKCAgICBQUkVTRVJWRTgpCi1SVkNUKCAgICBJTVBPUlQgSklUU3R1YlRodW5rZWRf
I29wIykKLVJWQ1QoICAgIHN0ciBsciwgW3NwLCAjIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNF
VF0pCi1SVkNUKCAgICBibCBKSVRTdHViVGh1bmtlZF8jb3AjKQotUlZDVCggICAgbGRyIGxyLCBb
c3AsICMgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUXSkKLVJWQ1QoICAgIGJ4IGxyKQotUlZD
VCh9KQotUlZDVCgpCi0qLwotCi0vKiBJbmNsdWRlIHRoZSBnZW5lcmF0ZWQgZmlsZSAqLwotI2lu
Y2x1ZGUgIkdlbmVyYXRlZEpJVFN0dWJzX1JWQ1QuaCIKLQotI2VsaWYgQ1BVKEFSTV9UUkFESVRJ
T05BTCkgJiYgQ09NUElMRVIoTVNWQykKLQotI2RlZmluZSBERUZJTkVfU1RVQl9GVU5DVElPTihy
dHlwZSwgb3ApIGV4dGVybiAiQyIgcnR5cGUgSklUU3R1YlRodW5rZWRfIyNvcChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pCi0KLS8qIFRoZSBmb2xsb3dpbmcgaXMgYSB3b3JrYXJvdW5kIGZvciBNU1ZD
IHRvb2xjaGFpbjsgaW5saW5lIGFzc2VtYmxlciBpcyBub3Qgc3VwcG9ydGVkICovCi0KLS8qIFRo
ZSBmb2xsb3dpbmcgc2VjdGlvbiBpcyBhIHRlbXBsYXRlIHRvIGdlbmVyYXRlIGNvZGUgZm9yIEdl
bmVyYXRlZEpJVFN0dWJzX01TVkMuYXNtICovCi0vKiBUaGUgcGF0dGVybiAiI3h4eCMiIHdpbGwg
YmUgcmVwbGFjZWQgd2l0aCAieHh4IiAqLwotCi0vKgotTVNWQ19CRUdJTiggICAgQVJFQSBUcmFt
cG9saW5lLCBDT0RFKQotTVNWQ19CRUdJTigpCi1NU1ZDX0JFR0lOKCAgICBFWFBPUlQgY3RpVHJh
bXBvbGluZSkKLU1TVkNfQkVHSU4oICAgIEVYUE9SVCBjdGlUcmFtcG9saW5lRW5kKQotTVNWQ19C
RUdJTiggICAgRVhQT1JUIGN0aVZNVGhyb3dUcmFtcG9saW5lKQotTVNWQ19CRUdJTiggICAgRVhQ
T1JUIGN0aU9wVGhyb3dOb3RDYXVnaHQpCi1NU1ZDX0JFR0lOKCkKLU1TVkNfQkVHSU4oY3RpVHJh
bXBvbGluZSBQUk9DKQotTVNWQ19CRUdJTiggICAgc3RtZGIgc3AhLCB7cjEtcjN9KQotTVNWQ19C
RUdJTiggICAgc3RtZGIgc3AhLCB7cjQtcjYsIHI4LXIxMSwgbHJ9KQotTVNWQ19CRUdJTiggICAg
c3ViIHNwLCBzcCwgIzY4IDsgc3luYyB3aXRoIFBSRVNFUlZFRFI0X09GRlNFVCkKLU1TVkNfQkVH
SU4oICAgIG1vdiByNSwgcjIpCi1NU1ZDX0JFR0lOKCAgICBtb3YgcjYsICM1MTIpCi1NU1ZDX0JF
R0lOKCAgICA7IHIwIGNvbnRhaW5zIHRoZSBjb2RlKQotTVNWQ19CRUdJTiggICAgbW92IGxyLCBw
YykKLU1TVkNfQkVHSU4oICAgIGJ4IHIwKQotTVNWQ19CRUdJTiggICAgYWRkIHNwLCBzcCwgIzY4
IDsgc3luYyB3aXRoIFBSRVNFUlZFRFI0X09GRlNFVCkKLU1TVkNfQkVHSU4oICAgIGxkbWlhIHNw
ISwge3I0LXI2LCByOC1yMTEsIGxyfSkKLU1TVkNfQkVHSU4oICAgIGFkZCBzcCwgc3AsICMxMikK
LU1TVkNfQkVHSU4oICAgIGJ4IGxyKQotTVNWQ19CRUdJTihjdGlUcmFtcG9saW5lRW5kKQotTVNW
Q19CRUdJTihjdGlUcmFtcG9saW5lIEVORFApCi1NU1ZDX0JFR0lOKCkKLU1TVkNfQkVHSU4oY3Rp
Vk1UaHJvd1RyYW1wb2xpbmUgUFJPQykKLU1TVkNfQkVHSU4oICAgIG1vdiByMCwgc3ApCi1NU1ZD
X0JFR0lOKCAgICBibCBjdGlfdm1fdGhyb3cpCi1NU1ZDX0JFR0lOKGN0aU9wVGhyb3dOb3RDYXVn
aHQpCi1NU1ZDX0JFR0lOKCAgICBhZGQgc3AsIHNwLCAjNjggOyBzeW5jIHdpdGggUFJFU0VSVkVE
UjRfT0ZGU0VUKQotTVNWQ19CRUdJTiggICAgbGRtaWEgc3AhLCB7cjQtcjYsIHI4LXIxMSwgbHJ9
KQotTVNWQ19CRUdJTiggICAgYWRkIHNwLCBzcCwgIzEyKQotTVNWQ19CRUdJTiggICAgYnggbHIp
Ci1NU1ZDX0JFR0lOKGN0aVZNVGhyb3dUcmFtcG9saW5lIEVORFApCi1NU1ZDX0JFR0lOKCkKLQot
TVNWQyggICAgRVhQT1JUIGN0aV8jb3AjKQotTVNWQyggICAgSU1QT1JUIEpJVFN0dWJUaHVua2Vk
XyNvcCMpCi1NU1ZDKGN0aV8jb3AjIFBST0MpCi1NU1ZDKCAgICBzdHIgbHIsIFtzcCwgIzY0XSA7
IHN5bmMgd2l0aCBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpCi1NU1ZDKCAgICBibCBKSVRT
dHViVGh1bmtlZF8jb3AjKQotTVNWQyggICAgbGRyIGxyLCBbc3AsICM2NF0gOyBzeW5jIHdpdGgg
VEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKQotTVNWQyggICAgYnggbHIpCi1NU1ZDKGN0aV8j
b3AjIEVORFApCi1NU1ZDKCkKLQotTVNWQ19FTkQoICAgIEVORCkKLSovCi0KLSNlbGlmIENQVShT
SDQpCi0jZGVmaW5lIERFRklORV9TVFVCX0ZVTkNUSU9OKHJ0eXBlLCBvcCkgXAotICAgIGV4dGVy
biAiQyIgeyBcCi0gICAgICAgIHJ0eXBlIEpJVFN0dWJUaHVua2VkXyMjb3AoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKTsgXAotICAgIH07IFwKLSAgICBhc20gdm9sYXRpbGUoIFwKLSAgICAiLmFsaWdu
IDIiICJcbiIgXAotICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwK
LSAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxuIiBcCi0gICAgInN0cyBwciwgcjEx
IiAiXG4iIFwKLSAgICAibW92LmwgcjExLCBAKDB4MzgsIHIxNSkiICJcbiIgXAotICAgICJtb3Yu
bCAuTDIiU1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29wKSIscjAiICJcbiIgXAotICAg
ICJtb3YubCBAKHIwLHIxMikscjExIiAiXG4iIFwKLSAgICAianNyIEByMTEiICJcbiIgXAotICAg
ICJub3AiICJcbiIgXAotICAgICJtb3YubCBAKDB4MzgsIHIxNSksIHIxMSAiICJcbiIgXAotICAg
ICJsZHMgcjExLCBwciAiICJcbiIgXAotICAgICJydHMiICJcbiIgXAotICAgICJub3AiICJcbiIg
XAotICAgICIuYWxpZ24gMiIgIlxuIiBcCi0gICAgIi5MMiJTWU1CT0xfU1RSSU5HKEpJVFN0dWJU
aHVua2VkXyMjb3ApIjoubG9uZyAiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRodW5rZWRfIyNvcCki
QEdPVCBcbiIgXAotICAgICk7IFwKLSAgICBydHlwZSBKSVRTdHViVGh1bmtlZF8jI29wKFNUVUJf
QVJHU19ERUNMQVJBVElPTikKLSNlbHNlCisvLyBJZiB0aGUgQ1BVIHNwZWNpZmljIGhlYWRlciBk
b2VzIG5vdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uLCB1c2UgdGhlIGRlZmF1bHQgb25lIGhl
cmUuCisjaWZuZGVmIERFRklORV9TVFVCX0ZVTkNUSU9OCiAjZGVmaW5lIERFRklORV9TVFVCX0ZV
TkNUSU9OKHJ0eXBlLCBvcCkgcnR5cGUgSklUX1NUVUIgY3RpXyMjb3AoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YnNBUk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
QVJNLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
QVJNLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gWndhcmljaCA8Y3d6d2FyaWNoQHV3YXRlcmxvby5j
YT4KKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAx
MS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpJVFN0dWJzQVJNX2gKKyNkZWZpbmUgSklU
U3R1YnNBUk1faAorCisjaWYgIUNQVShBUk1fVFJBRElUSU9OQUwpCisjZXJyb3IgIkpJVFN0dWJz
QVJNLmggc2hvdWxkIG9ubHkgYmUgI2luY2x1ZGVkIGlmIENQVShBUk1fVFJBRElUSU9OQUwpIgor
I2VuZGlmCisKKyNpZiAhVVNFKEpTVkFMVUUzMl82NCkKKyNlcnJvciAiSklUU3R1YnNBUk0uaCBv
bmx5IGltcGxlbWVudHMgVVNFKEpTVkFMVUUzMl82NCkiCisjZW5kaWYKKworbmFtZXNwYWNlIEpT
QyB7CisKKy8vIEFsc28gdXBkYXRlIHRoZSBNU1ZDIHNlY3Rpb24gKGRlZmluZWQgYXQgREVGSU5F
X1NUVUJfRlVOQ1RJT04pCisvLyB3aGVuIGNoYW5naW5nIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZh
bHVlcy4KKyNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDY0CisjZGVmaW5lIFBS
RVNFUlZFRFI0X09GRlNFVCAgICAgICAgICA2OAorCisKKyNpZiBDT01QSUxFUihHQ0MpCisKK2Fz
bSAoCisiLnRleHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUp
ICJcbiIKK0hJREVfU1lNQk9MKGN0aVRyYW1wb2xpbmUpICJcbiIKK0lOTElORV9BUk1fRlVOQ1RJ
T04oY3RpVHJhbXBvbGluZSkKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIK
KyAgICAic3RtZGIgc3AhLCB7cjEtcjN9IiAiXG4iCisgICAgInN0bWRiIHNwISwge3I0LXI2LCBy
OC1yMTEsIGxyfSIgIlxuIgorICAgICJzdWIgc3AsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJFU0VSVkVEUjRfT0ZGU0VUKSAiXG4iCisgICAgIm1vdiByNSwgcjIiICJcbiIKKyAgICAibW92
IHI2LCAjNTEyIiAiXG4iCisgICAgLy8gcjAgY29udGFpbnMgdGhlIGNvZGUKKyAgICAiYmx4IHIw
IiAiXG4iCisgICAgImFkZCBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURS
NF9PRkZTRVQpICJcbiIKKyAgICAibGRtaWEgc3AhLCB7cjQtcjYsIHI4LXIxMSwgbHJ9IiAiXG4i
CisgICAgImFkZCBzcCwgc3AsICMxMiIgIlxuIgorICAgICJieCBsciIgIlxuIgorIi5nbG9ibCAi
IFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3RpVHJh
bXBvbGluZUVuZCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIgIlxu
IgorKTsKKworYXNtICgKKyIudGV4dCIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3Rp
Vk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKK0hJREVfU1lNQk9MKGN0aVZNVGhyb3dUcmFtcG9saW5l
KSAiXG4iCitJTkxJTkVfQVJNX0ZVTkNUSU9OKGN0aVZNVGhyb3dUcmFtcG9saW5lKQorU1lNQk9M
X1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKKyAgICAibW92IHIwLCBzcCIg
IlxuIgorICAgICJibCAiIFNZTUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCisKKy8vIEJv
dGggaGFzIHRoZSBzYW1lIHJldHVybiBzZXF1ZW5jZQorIi50ZXh0IiAiXG4iCisiLmdsb2JsICIg
U1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiXG4iCitISURFX1NZTUJPTChjdGlP
cFRocm93Tm90Q2F1Z2h0KSAiXG4iCitJTkxJTkVfQVJNX0ZVTkNUSU9OKGN0aU9wVGhyb3dOb3RD
YXVnaHQpCitTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCisgICAg
ImFkZCBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURSNF9PRkZTRVQpICJc
biIKKyAgICAibGRtaWEgc3AhLCB7cjQtcjYsIHI4LXIxMSwgbHJ9IiAiXG4iCisgICAgImFkZCBz
cCwgc3AsICMxMiIgIlxuIgorICAgICJieCBsciIgIlxuIgorKTsKKworI2RlZmluZSBERUZJTkVf
U1RVQl9GVU5DVElPTihydHlwZSwgb3ApIFwKKyAgICBleHRlcm4gIkMiIHsgXAorICAgICAgICBy
dHlwZSBKSVRTdHViVGh1bmtlZF8jI29wKFNUVUJfQVJHU19ERUNMQVJBVElPTik7IFwKKyAgICB9
OyBcCisgICAgYXNtICggXAorICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlfIyNv
cCkgIlxuIiBcCisgICAgICAgIElOTElORV9BUk1fRlVOQ1RJT04oY3RpXyMjb3ApIFwKKyAgICAg
ICAgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIjoiICJcbiIgXAorICAgICAgICAic3RyIGxyLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICJd
IiAiXG4iIFwKKyAgICAgICAgImJsICIgU1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29w
KSAiXG4iIFwKKyAgICAgICAgImxkciBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiXSIgIlxuIiBcCisgICAgICAgICJieCBsciIgIlxu
IiBcCisgICAgICAgICk7IFwKKyAgICBydHlwZSBKSVRTdHViVGh1bmtlZF8jI29wKFNUVUJfQVJH
U19ERUNMQVJBVElPTikKKworI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKKworI2lmIENPTVBJTEVS
KFJWQ1QpCisKK19fYXNtIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCosIEpTU3Rh
Y2sqLCBDYWxsRnJhbWUqLCB2b2lkKiAvKnVudXNlZDEqLywgdm9pZCogLyp1bnVzZWQyKi8sIFZN
KikKK3sKKyAgICBBUk0KKyAgICBzdG1kYiBzcCEsIHtyMS1yM30KKyAgICBzdG1kYiBzcCEsIHty
NC1yNiwgcjgtcjExLCBscn0KKyAgICBzdWIgc3AsIHNwLCAjIFBSRVNFUlZFRFI0X09GRlNFVAor
ICAgIG1vdiByNSwgcjIKKyAgICBtb3YgcjYsICM1MTIKKyAgICBtb3YgbHIsIHBjCisgICAgYngg
cjAKKyAgICBhZGQgc3AsIHNwLCAjIFBSRVNFUlZFRFI0X09GRlNFVAorICAgIGxkbWlhIHNwISwg
e3I0LXI2LCByOC1yMTEsIGxyfQorICAgIGFkZCBzcCwgc3AsICMxMgorICAgIGJ4IGxyCit9Citf
X2FzbSB2b2lkIGN0aVRyYW1wb2xpbmVFbmQoKQoreworfQorCitfX2FzbSB2b2lkIGN0aVZNVGhy
b3dUcmFtcG9saW5lKCkKK3sKKyAgICBBUk0KKyAgICBQUkVTRVJWRTgKKyAgICBtb3YgcjAsIHNw
CisgICAgYmwgY3RpX3ZtX3Rocm93CisgICAgYWRkIHNwLCBzcCwgIyBQUkVTRVJWRURSNF9PRkZT
RVQKKyAgICBsZG1pYSBzcCEsIHtyNC1yNiwgcjgtcjExLCBscn0KKyAgICBhZGQgc3AsIHNwLCAj
MTIKKyAgICBieCBscgorfQorCitfX2FzbSB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKQorewor
ICAgIEFSTQorICAgIGFkZCBzcCwgc3AsICMgUFJFU0VSVkVEUjRfT0ZGU0VUCisgICAgbGRtaWEg
c3AhLCB7cjQtcjgsIGxyfQorICAgIGFkZCBzcCwgc3AsICMxMgorICAgIGJ4IGxyCit9CisKKyNk
ZWZpbmUgREVGSU5FX1NUVUJfRlVOQ1RJT04ocnR5cGUsIG9wKSBydHlwZSBKSVRTdHViVGh1bmtl
ZF8jI29wKFNUVUJfQVJHU19ERUNMQVJBVElPTikKKworLyogVGhlIGZvbGxvd2luZyBpcyBhIHdv
cmthcm91bmQgZm9yIFJWQ1QgdG9vbGNoYWluOyBwcmVjb21waWxlciBtYWNyb3MgYXJlIG5vdCBl
eHBhbmRlZCBiZWZvcmUgdGhlIGNvZGUgaXMgcGFzc2VkIHRvIHRoZSBhc3NlbWJsZXIgKi8KKwor
LyogVGhlIGZvbGxvd2luZyBzZWN0aW9uIGlzIGEgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgY29kZSBm
b3IgR2VuZXJhdGVkSklUU3R1YnNfUlZDVC5oICovCisvKiBUaGUgcGF0dGVybiAiI3h4eCMiIHdp
bGwgYmUgcmVwbGFjZWQgd2l0aCAieHh4IiAqLworCisvKgorUlZDVChleHRlcm4gIkMiICNydHlw
ZSMgSklUU3R1YlRodW5rZWRfI29wIyhTVFVCX0FSR1NfREVDTEFSQVRJT04pOykKK1JWQ1QoX19h
c20gI3J0eXBlIyBjdGlfI29wIyhTVFVCX0FSR1NfREVDTEFSQVRJT04pKQorUlZDVCh7KQorUlZD
VCggICAgUFJFU0VSVkU4KQorUlZDVCggICAgSU1QT1JUIEpJVFN0dWJUaHVua2VkXyNvcCMpCitS
VkNUKCAgICBzdHIgbHIsIFtzcCwgIyBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVRdKQorUlZD
VCggICAgYmwgSklUU3R1YlRodW5rZWRfI29wIykKK1JWQ1QoICAgIGxkciBsciwgW3NwLCAjIFRI
VU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVF0pCitSVkNUKCAgICBieCBscikKK1JWQ1QofSkKK1JW
Q1QoKQorKi8KKworLyogSW5jbHVkZSB0aGUgZ2VuZXJhdGVkIGZpbGUgKi8KKyNpbmNsdWRlICJH
ZW5lcmF0ZWRKSVRTdHVic19SVkNULmgiCisKKyNlbmRpZiAvLyBDT01QSUxFUihSVkNUKQorCisj
aWYgQ09NUElMRVIoTVNWQykKKworI2RlZmluZSBERUZJTkVfU1RVQl9GVU5DVElPTihydHlwZSwg
b3ApIGV4dGVybiAiQyIgcnR5cGUgSklUU3R1YlRodW5rZWRfIyNvcChTVFVCX0FSR1NfREVDTEFS
QVRJT04pCisKKy8qIFRoZSBmb2xsb3dpbmcgaXMgYSB3b3JrYXJvdW5kIGZvciBNU1ZDIHRvb2xj
aGFpbjsgaW5saW5lIGFzc2VtYmxlciBpcyBub3Qgc3VwcG9ydGVkICovCisKKy8qIFRoZSBmb2xs
b3dpbmcgc2VjdGlvbiBpcyBhIHRlbXBsYXRlIHRvIGdlbmVyYXRlIGNvZGUgZm9yIEdlbmVyYXRl
ZEpJVFN0dWJzX01TVkMuYXNtICovCisvKiBUaGUgcGF0dGVybiAiI3h4eCMiIHdpbGwgYmUgcmVw
bGFjZWQgd2l0aCAieHh4IiAqLworCisvKgorTVNWQ19CRUdJTiggICAgQVJFQSBUcmFtcG9saW5l
LCBDT0RFKQorTVNWQ19CRUdJTigpCitNU1ZDX0JFR0lOKCAgICBFWFBPUlQgY3RpVHJhbXBvbGlu
ZSkKK01TVkNfQkVHSU4oICAgIEVYUE9SVCBjdGlUcmFtcG9saW5lRW5kKQorTVNWQ19CRUdJTigg
ICAgRVhQT1JUIGN0aVZNVGhyb3dUcmFtcG9saW5lKQorTVNWQ19CRUdJTiggICAgRVhQT1JUIGN0
aU9wVGhyb3dOb3RDYXVnaHQpCitNU1ZDX0JFR0lOKCkKK01TVkNfQkVHSU4oY3RpVHJhbXBvbGlu
ZSBQUk9DKQorTVNWQ19CRUdJTiggICAgc3RtZGIgc3AhLCB7cjEtcjN9KQorTVNWQ19CRUdJTigg
ICAgc3RtZGIgc3AhLCB7cjQtcjYsIHI4LXIxMSwgbHJ9KQorTVNWQ19CRUdJTiggICAgc3ViIHNw
LCBzcCwgIzY4IDsgc3luYyB3aXRoIFBSRVNFUlZFRFI0X09GRlNFVCkKK01TVkNfQkVHSU4oICAg
IG1vdiByNSwgcjIpCitNU1ZDX0JFR0lOKCAgICBtb3YgcjYsICM1MTIpCitNU1ZDX0JFR0lOKCAg
ICA7IHIwIGNvbnRhaW5zIHRoZSBjb2RlKQorTVNWQ19CRUdJTiggICAgbW92IGxyLCBwYykKK01T
VkNfQkVHSU4oICAgIGJ4IHIwKQorTVNWQ19CRUdJTiggICAgYWRkIHNwLCBzcCwgIzY4IDsgc3lu
YyB3aXRoIFBSRVNFUlZFRFI0X09GRlNFVCkKK01TVkNfQkVHSU4oICAgIGxkbWlhIHNwISwge3I0
LXI2LCByOC1yMTEsIGxyfSkKK01TVkNfQkVHSU4oICAgIGFkZCBzcCwgc3AsICMxMikKK01TVkNf
QkVHSU4oICAgIGJ4IGxyKQorTVNWQ19CRUdJTihjdGlUcmFtcG9saW5lRW5kKQorTVNWQ19CRUdJ
TihjdGlUcmFtcG9saW5lIEVORFApCitNU1ZDX0JFR0lOKCkKK01TVkNfQkVHSU4oY3RpVk1UaHJv
d1RyYW1wb2xpbmUgUFJPQykKK01TVkNfQkVHSU4oICAgIG1vdiByMCwgc3ApCitNU1ZDX0JFR0lO
KCAgICBibCBjdGlfdm1fdGhyb3cpCitNU1ZDX0JFR0lOKGN0aU9wVGhyb3dOb3RDYXVnaHQpCitN
U1ZDX0JFR0lOKCAgICBhZGQgc3AsIHNwLCAjNjggOyBzeW5jIHdpdGggUFJFU0VSVkVEUjRfT0ZG
U0VUKQorTVNWQ19CRUdJTiggICAgbGRtaWEgc3AhLCB7cjQtcjYsIHI4LXIxMSwgbHJ9KQorTVNW
Q19CRUdJTiggICAgYWRkIHNwLCBzcCwgIzEyKQorTVNWQ19CRUdJTiggICAgYnggbHIpCitNU1ZD
X0JFR0lOKGN0aVZNVGhyb3dUcmFtcG9saW5lIEVORFApCitNU1ZDX0JFR0lOKCkKKworTVNWQygg
ICAgRVhQT1JUIGN0aV8jb3AjKQorTVNWQyggICAgSU1QT1JUIEpJVFN0dWJUaHVua2VkXyNvcCMp
CitNU1ZDKGN0aV8jb3AjIFBST0MpCitNU1ZDKCAgICBzdHIgbHIsIFtzcCwgIzY0XSA7IHN5bmMg
d2l0aCBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpCitNU1ZDKCAgICBibCBKSVRTdHViVGh1
bmtlZF8jb3AjKQorTVNWQyggICAgbGRyIGxyLCBbc3AsICM2NF0gOyBzeW5jIHdpdGggVEhVTktf
UkVUVVJOX0FERFJFU1NfT0ZGU0VUKQorTVNWQyggICAgYnggbHIpCitNU1ZDKGN0aV8jb3AjIEVO
RFApCitNU1ZDKCkKKworTVNWQ19FTkQoICAgIEVORCkKKyovCisjZW5kaWYgLy8gQ09NUElMRVIo
TVNWQykKKworCitzdGF0aWMgdm9pZCBwZXJmb3JtQVJNSklUQXNzZXJ0aW9ucygpCit7CisgICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5B
ZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI0KSA9PSBQUkVTRVJW
RURSNF9PRkZTRVQpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEpJVFN0
dWJzQVJNX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNBUk12Ny5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNBUk12Ny5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic0FSTXY3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IENhbWVyb24gWndhcmljaCA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4K
KyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMS4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpJVFN0dWJzQVJNdjdfaAorI2RlZmluZSBKSVRT
dHVic0FSTXY3X2gKKworI2lmICFDUFUoQVJNX1RIVU1CMikKKyNlcnJvciAiSklUU3R1YnNBUk12
Ny5oIHNob3VsZCBvbmx5IGJlICNpbmNsdWRlZCBpZiBDUFUoQVJNX1RIVU1CMikiCisjZW5kaWYK
KworI2lmICFVU0UoSlNWQUxVRTMyXzY0KQorI2Vycm9yICJKSVRTdHVic0FSTXY3Lmggb25seSBp
bXBsZW1lbnRzIFVTRShKU1ZBTFVFMzJfNjQpIgorI2VuZGlmCisKK25hbWVzcGFjZSBKU0Mgewor
CisjZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCAgICAgIDB4MzgKKyNkZWZpbmUg
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCAgMHgzQworI2RlZmluZSBQUkVTRVJWRURf
UjRfT0ZGU0VUICAgICAgICAgICAgICAweDQwCisjZGVmaW5lIFBSRVNFUlZFRF9SNV9PRkZTRVQg
ICAgICAgICAgICAgIDB4NDQKKyNkZWZpbmUgUFJFU0VSVkVEX1I2X09GRlNFVCAgICAgICAgICAg
ICAgMHg0OAorI2RlZmluZSBQUkVTRVJWRURfUjdfT0ZGU0VUICAgICAgICAgICAgICAweDRDCisj
ZGVmaW5lIFBSRVNFUlZFRF9SOF9PRkZTRVQgICAgICAgICAgICAgIDB4NTAKKyNkZWZpbmUgUFJF
U0VSVkVEX1I5X09GRlNFVCAgICAgICAgICAgICAgMHg1NAorI2RlZmluZSBQUkVTRVJWRURfUjEw
X09GRlNFVCAgICAgICAgICAgICAweDU4CisjZGVmaW5lIFBSRVNFUlZFRF9SMTFfT0ZGU0VUICAg
ICAgICAgICAgIDB4NUMKKyNkZWZpbmUgUkVHSVNURVJfRklMRV9PRkZTRVQgICAgICAgICAgICAg
MHg2MAorI2RlZmluZSBGSVJTVF9TVEFDS19BUkdVTUVOVCAgICAgICAgICAgICAweDY4CisKKyNp
ZiBDT01QSUxFUihHQ0MpCisKK2FzbSAoCisiLnRleHQiICJcbiIKKyIuYWxpZ24gMiIgIlxuIgor
Ii5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgorSElERV9TWU1CT0wo
Y3RpVHJhbXBvbGluZSkgIlxuIgorIi50aHVtYiIgIlxuIgorIi50aHVtYl9mdW5jICIgVEhVTUJf
RlVOQ19QQVJBTShjdGlUcmFtcG9saW5lKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xp
bmUpICI6IiAiXG4iCisgICAgInN1YiBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihGSVJT
VF9TVEFDS19BUkdVTUVOVCkgIlxuIgorICAgICJzdHIgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICJdIiAiXG4iCisgICAgInN0
ciByNCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I0X09GRlNFVCkgIl0i
ICJcbiIKKyAgICAic3RyIHI1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UjVfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJzdHIgcjYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9SNl9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0ciByNywgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I3X09GRlNFVCkgIl0iICJcbiIKKyAgICAic3Ry
IHI4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjhfT0ZGU0VUKSAiXSIg
IlxuIgorICAgICJzdHIgcjksIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9S
OV9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0ciByMTAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9SMTBfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJzdHIgcjExLCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjExX09GRlNFVCkgIl0iICJcbiIKKyAgICAi
c3RyIHIxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihSRUdJU1RFUl9GSUxFX09GRlNFVCkg
Il0iICJcbiIKKyAgICAibW92IHI1LCByMiIgIlxuIgorICAgICJtb3YgcjYsICM1MTIiICJcbiIK
KyAgICAiYmx4IHIwIiAiXG4iCisgICAgImxkciByMTEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9SMTFfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJsZHIgcjEwLCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjEwX09GRlNFVCkgIl0iICJcbiIKKyAgICAi
bGRyIHI5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjlfT0ZGU0VUKSAi
XSIgIlxuIgorICAgICJsZHIgcjgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZF
RF9SOF9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciByNywgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJFU0VSVkVEX1I3X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRyIHI2LCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjZfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJs
ZHIgcjUsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SNV9PRkZTRVQpICJd
IiAiXG4iCisgICAgImxkciByNCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1I0X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRyIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJhZGQg
c3AsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRklSU1RfU1RBQ0tfQVJHVU1FTlQpICJcbiIK
KyAgICAiYnggbHIiICJcbiIKKyIuYWxpZ24gMiIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJ
TkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3RpVHJhbXBvbGluZUVuZCkg
IlxuIgorIi50aHVtYiIgIlxuIgorIi50aHVtYl9mdW5jICIgVEhVTUJfRlVOQ19QQVJBTShjdGlU
cmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICI6IiAi
XG4iCispOworCithc20gKAorIi50ZXh0IiAiXG4iCisiLmFsaWduIDIiICJcbiIKKyIuZ2xvYmwg
IiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCitISURFX1NZTUJPTChj
dGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgorIi50aHVtYiIgIlxuIgorIi50aHVtYl9mdW5jICIg
VEhVTUJfRlVOQ19QQVJBTShjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgorU1lNQk9MX1NUUklO
RyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKKyAgICAibW92IHIwLCBzcCIgIlxuIgor
ICAgICJibCAiIExPQ0FMX1JFRkVSRU5DRShjdGlfdm1fdGhyb3cpICJcbiIKKyAgICAibGRyIHIx
MSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1IxMV9PRkZTRVQpICJdIiAi
XG4iCisgICAgImxkciByMTAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9S
MTBfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJsZHIgcjksIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9SOV9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciByOCwgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I4X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRy
IHI3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjdfT0ZGU0VUKSAiXSIg
IlxuIgorICAgICJsZHIgcjYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9S
Nl9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciByNSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1I1X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRyIHI0LCBbc3AsICMiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjRfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJsZHIg
bHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19P
RkZTRVQpICJdIiAiXG4iCisgICAgImFkZCBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihG
SVJTVF9TVEFDS19BUkdVTUVOVCkgIlxuIgorICAgICJieCBsciIgIlxuIgorKTsKKworYXNtICgK
KyIudGV4dCIgIlxuIgorIi5hbGlnbiAyIiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhj
dGlPcFRocm93Tm90Q2F1Z2h0KSAiXG4iCitISURFX1NZTUJPTChjdGlPcFRocm93Tm90Q2F1Z2h0
KSAiXG4iCisiLnRodW1iIiAiXG4iCisiLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BBUkFNKGN0
aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdo
dCkgIjoiICJcbiIKKyAgICAibGRyIHIxMSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX1IxMV9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciByMTAsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SMTBfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJsZHIgcjks
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SOV9PRkZTRVQpICJdIiAiXG4i
CisgICAgImxkciByOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I4X09G
RlNFVCkgIl0iICJcbiIKKyAgICAibGRyIHI3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUjdfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJsZHIgcjYsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SNl9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciByNSwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I1X09GRlNFVCkgIl0iICJcbiIK
KyAgICAibGRyIHI0LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjRfT0ZG
U0VUKSAiXSIgIlxuIgorICAgICJsZHIgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICJdIiAiXG4iCisgICAgImFkZCBzcCwgc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihGSVJTVF9TVEFDS19BUkdVTUVOVCkgIlxuIgorICAgICJi
eCBsciIgIlxuIgorKTsKKworI2RlZmluZSBERUZJTkVfU1RVQl9GVU5DVElPTihydHlwZSwgb3Ap
IFwKKyAgICBleHRlcm4gIkMiIHsgXAorICAgICAgICBydHlwZSBKSVRTdHViVGh1bmtlZF8jI29w
KFNUVUJfQVJHU19ERUNMQVJBVElPTik7IFwKKyAgICB9OyBcCisgICAgYXNtICggXAorICAgICAg
ICAiLnRleHQiICJcbiIgXAorICAgICAgICAiLmFsaWduIDIiICJcbiIgXAorICAgICAgICAiLmds
b2JsICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIlxuIiBcCisgICAgICAgIEhJREVfU1lNQk9M
KGN0aV8jI29wKSAiXG4iICAgICAgICAgICAgIFwKKyAgICAgICAgIi50aHVtYiIgIlxuIiBcCisg
ICAgICAgICIudGh1bWJfZnVuYyAiIFRIVU1CX0ZVTkNfUEFSQU0oY3RpXyMjb3ApICJcbiIgXAor
ICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxuIiBcCisgICAgICAgICJzdHIg
bHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNF
VCkgIl0iICJcbiIgXAorICAgICAgICAiYmwgIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2Vk
XyMjb3ApICJcbiIgXAorICAgICAgICAibGRyIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICJdIiAiXG4iIFwKKyAgICAgICAgImJ4IGxy
IiAiXG4iIFwKKyAgICAgICAgKTsgXAorICAgIHJ0eXBlIEpJVFN0dWJUaHVua2VkXyMjb3AoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBcCisKKyNlbmRpZiAvLyBDT01QSUxFUihHQ0MpCisKKyNpZiBD
T01QSUxFUihSVkNUKQorCitfX2FzbSBFbmNvZGVkSlNWYWx1ZSBjdGlUcmFtcG9saW5lKHZvaWQq
LCBKU1N0YWNrKiwgQ2FsbEZyYW1lKiwgdm9pZCogLyp1bnVzZWQxKi8sIHZvaWQqIC8qdW51c2Vk
MiovLCBWTSopCit7CisgICAgUFJFU0VSVkU4CisgICAgc3ViIHNwLCBzcCwgIyBGSVJTVF9TVEFD
S19BUkdVTUVOVAorICAgIHN0ciBsciwgW3NwLCAjIFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19P
RkZTRVQgXQorICAgIHN0ciByNCwgW3NwLCAjIFBSRVNFUlZFRF9SNF9PRkZTRVQgXQorICAgIHN0
ciByNSwgW3NwLCAjIFBSRVNFUlZFRF9SNV9PRkZTRVQgXQorICAgIHN0ciByNiwgW3NwLCAjIFBS
RVNFUlZFRF9SNl9PRkZTRVQgXQorICAgIHN0ciByNywgW3NwLCAjIFBSRVNFUlZFRF9SN19PRkZT
RVQgXQorICAgIHN0ciByOCwgW3NwLCAjIFBSRVNFUlZFRF9SOF9PRkZTRVQgXQorICAgIHN0ciBy
OSwgW3NwLCAjIFBSRVNFUlZFRF9SOV9PRkZTRVQgXQorICAgIHN0ciByMTAsIFtzcCwgIyBQUkVT
RVJWRURfUjEwX09GRlNFVCBdCisgICAgc3RyIHIxMSwgW3NwLCAjIFBSRVNFUlZFRF9SMTFfT0ZG
U0VUIF0KKyAgICBzdHIgcjEsIFtzcCwgIyBSRUdJU1RFUl9GSUxFX09GRlNFVCBdCisgICAgbW92
IHI1LCByMgorICAgIG1vdiByNiwgIzUxMgorICAgIGJseCByMAorICAgIGxkciByMTEsIFtzcCwg
IyBQUkVTRVJWRURfUjExX09GRlNFVCBdCisgICAgbGRyIHIxMCwgW3NwLCAjIFBSRVNFUlZFRF9S
MTBfT0ZGU0VUIF0KKyAgICBsZHIgcjksIFtzcCwgIyBQUkVTRVJWRURfUjlfT0ZGU0VUIF0KKyAg
ICBsZHIgcjgsIFtzcCwgIyBQUkVTRVJWRURfUjhfT0ZGU0VUIF0KKyAgICBsZHIgcjcsIFtzcCwg
IyBQUkVTRVJWRURfUjdfT0ZGU0VUIF0KKyAgICBsZHIgcjYsIFtzcCwgIyBQUkVTRVJWRURfUjZf
T0ZGU0VUIF0KKyAgICBsZHIgcjUsIFtzcCwgIyBQUkVTRVJWRURfUjVfT0ZGU0VUIF0KKyAgICBs
ZHIgcjQsIFtzcCwgIyBQUkVTRVJWRURfUjRfT0ZGU0VUIF0KKyAgICBsZHIgbHIsIFtzcCwgIyBQ
UkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIF0KKyAgICBhZGQgc3AsIHNwLCAjIEZJUlNU
X1NUQUNLX0FSR1VNRU5UCisgICAgYnggbHIKK30KKworX19hc20gdm9pZCBjdGlWTVRocm93VHJh
bXBvbGluZSgpCit7CisgICAgUFJFU0VSVkU4CisgICAgbW92IHIwLCBzcAorICAgIGJsIGN0aV92
bV90aHJvdworICAgIGxkciByMTEsIFtzcCwgIyBQUkVTRVJWRURfUjExX09GRlNFVCBdCisgICAg
bGRyIHIxMCwgW3NwLCAjIFBSRVNFUlZFRF9SMTBfT0ZGU0VUIF0KKyAgICBsZHIgcjksIFtzcCwg
IyBQUkVTRVJWRURfUjlfT0ZGU0VUIF0KKyAgICBsZHIgcjgsIFtzcCwgIyBQUkVTRVJWRURfUjhf
T0ZGU0VUIF0KKyAgICBsZHIgcjcsIFtzcCwgIyBQUkVTRVJWRURfUjdfT0ZGU0VUIF0KKyAgICBs
ZHIgcjYsIFtzcCwgIyBQUkVTRVJWRURfUjZfT0ZGU0VUIF0KKyAgICBsZHIgcjYsIFtzcCwgIyBQ
UkVTRVJWRURfUjZfT0ZGU0VUIF0KKyAgICBsZHIgcjUsIFtzcCwgIyBQUkVTRVJWRURfUjVfT0ZG
U0VUIF0KKyAgICBsZHIgcjQsIFtzcCwgIyBQUkVTRVJWRURfUjRfT0ZGU0VUIF0KKyAgICBsZHIg
bHIsIFtzcCwgIyBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIF0KKyAgICBhZGQgc3As
IHNwLCAjIEZJUlNUX1NUQUNLX0FSR1VNRU5UCisgICAgYnggbHIKK30KKworX19hc20gdm9pZCBj
dGlPcFRocm93Tm90Q2F1Z2h0KCkKK3sKKyAgICBQUkVTRVJWRTgKKyAgICBsZHIgcjExLCBbc3As
ICMgUFJFU0VSVkVEX1IxMV9PRkZTRVQgXQorICAgIGxkciByMTAsIFtzcCwgIyBQUkVTRVJWRURf
UjEwX09GRlNFVCBdCisgICAgbGRyIHI5LCBbc3AsICMgUFJFU0VSVkVEX1I5X09GRlNFVCBdCisg
ICAgbGRyIHI4LCBbc3AsICMgUFJFU0VSVkVEX1I4X09GRlNFVCBdCisgICAgbGRyIHI3LCBbc3As
ICMgUFJFU0VSVkVEX1I3X09GRlNFVCBdCisgICAgbGRyIHI2LCBbc3AsICMgUFJFU0VSVkVEX1I2
X09GRlNFVCBdCisgICAgbGRyIHI2LCBbc3AsICMgUFJFU0VSVkVEX1I2X09GRlNFVCBdCisgICAg
bGRyIHI1LCBbc3AsICMgUFJFU0VSVkVEX1I1X09GRlNFVCBdCisgICAgbGRyIHI0LCBbc3AsICMg
UFJFU0VSVkVEX1I0X09GRlNFVCBdCisgICAgbGRyIGxyLCBbc3AsICMgUFJFU0VSVkVEX1JFVFVS
Tl9BRERSRVNTX09GRlNFVCBdCisgICAgYWRkIHNwLCBzcCwgIyBGSVJTVF9TVEFDS19BUkdVTUVO
VAorICAgIGJ4IGxyCit9CisKKyNkZWZpbmUgREVGSU5FX1NUVUJfRlVOQ1RJT04ocnR5cGUsIG9w
KSBydHlwZSBKSVRTdHViVGh1bmtlZF8jI29wKFNUVUJfQVJHU19ERUNMQVJBVElPTikKKworLyog
VGhlIGZvbGxvd2luZyBpcyBhIHdvcmthcm91bmQgZm9yIFJWQ1QgdG9vbGNoYWluOyBwcmVjb21w
aWxlciBtYWNyb3MgYXJlIG5vdCBleHBhbmRlZCBiZWZvcmUgdGhlIGNvZGUgaXMgcGFzc2VkIHRv
IHRoZSBhc3NlbWJsZXIgKi8KKworLyogVGhlIGZvbGxvd2luZyBzZWN0aW9uIGlzIGEgdGVtcGxh
dGUgdG8gZ2VuZXJhdGUgY29kZSBmb3IgR2VuZXJhdGVkSklUU3R1YnNfUlZDVC5oICovCisvKiBU
aGUgcGF0dGVybiAiI3h4eCMiIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCAieHh4IiAqLworCisvKgor
UlZDVChleHRlcm4gIkMiICNydHlwZSMgSklUU3R1YlRodW5rZWRfI29wIyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pOykKK1JWQ1QoX19hc20gI3J0eXBlIyBjdGlfI29wIyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pKQorUlZDVCh7KQorUlZDVCggICAgUFJFU0VSVkU4KQorUlZDVCggICAgSU1QT1JUIEpJ
VFN0dWJUaHVua2VkXyNvcCMpCitSVkNUKCAgICBzdHIgbHIsIFtzcCwgIyBUSFVOS19SRVRVUk5f
QUREUkVTU19PRkZTRVRdKQorUlZDVCggICAgYmwgSklUU3R1YlRodW5rZWRfI29wIykKK1JWQ1Qo
ICAgIGxkciBsciwgW3NwLCAjIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVF0pCitSVkNUKCAg
ICBieCBscikKK1JWQ1QofSkKK1JWQ1QoKQorKi8KKworLyogSW5jbHVkZSB0aGUgZ2VuZXJhdGVk
IGZpbGUgKi8KKyNpbmNsdWRlICJHZW5lcmF0ZWRKSVRTdHVic19SVkNULmgiCisKKyNlbmRpZiAv
LyBDT01QSUxFUihSVkNUKQorCisKK3N0YXRpYyB2b2lkIHBlcmZvcm1BUk12N0pJVEFzc2VydGlv
bnMoKQoreworICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBub3QgbGlr
ZSB0aGUgdXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNvbnRhaW5z
IG5vbiBQT0QgdHlwZXMpLAorICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1hY3JvIGRv
ZXMgbm90IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5IHdpdGgg
aXRzIHVzZSBpbiBDT01QSUxFX0FTU0VSVAorICAgIC8vIG1hY3Jvcy4KKyAgICBBU1NFUlQoT0JK
RUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNz
KSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNU
X09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVE
X1I0X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tG
cmFtZSwgcHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9PSBQUkVT
RVJWRURfUjZfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjgpID09
IFBSRVNFUlZFRF9SOF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VUKTsKKyAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
MTApID09IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9G
KHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9SMTFfT0ZG
U0VUKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUs
IHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgLy8gVGhlIGZpZnRoIGFyZ3Vt
ZW50IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgorICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJUlNUX1NU
QUNLX0FSR1VNRU5UKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0
YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZG
U0VUKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBKSVRTdHVic0FSTXY3
X2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNSVBTLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01JUFMuaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNSVBTLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwyMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4IENhbWVyb24gWndhcmljaCA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KKyAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEpJVFN0dWJzTUlQU19oCisjZGVmaW5lIEpJVFN0dWJzTUlQU19o
CisKKyNpZiAhQ1BVKE1JUFMpCisjZXJyb3IgIkpJVFN0dWJzTUlQUy5oIHNob3VsZCBvbmx5IGJl
ICNpbmNsdWRlZCBpZiBDUFUoTUlQUykiCisjZW5kaWYKKworI2lmICFVU0UoSlNWQUxVRTMyXzY0
KQorI2Vycm9yICJKSVRTdHVic01JUFMuaCBvbmx5IGltcGxlbWVudHMgVVNFKEpTVkFMVUUzMl82
NCkiCisjZW5kaWYKKworbmFtZXNwYWNlIEpTQyB7CisKKyNkZWZpbmUgUFJFU0VSVkVEX0dQX09G
RlNFVCAgICAgICAgIDYwCisjZGVmaW5lIFBSRVNFUlZFRF9TMF9PRkZTRVQgICAgICAgICA2NAor
I2RlZmluZSBQUkVTRVJWRURfUzFfT0ZGU0VUICAgICAgICAgNjgKKyNkZWZpbmUgUFJFU0VSVkVE
X1MyX09GRlNFVCAgICAgICAgIDcyCisjZGVmaW5lIFBSRVNFUlZFRF9TM19PRkZTRVQgICAgICAg
ICA3NgorI2RlZmluZSBQUkVTRVJWRURfUzRfT0ZGU0VUICAgICAgICAgODAKKyNkZWZpbmUgUFJF
U0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4NAorI2RlZmluZSBUSFVOS19SRVRVUk5fQURE
UkVTU19PRkZTRVQgODgKKyNkZWZpbmUgUkVHSVNURVJfRklMRV9PRkZTRVQgICAgICAgIDkyCisj
ZGVmaW5lIFZNX09GRlNFVCAgICAgICAgICAgICAgICAgIDEwOAorI2RlZmluZSBTVEFDS19MRU5H
VEggICAgICAgICAgICAgICAxMTIKKworYXNtICgKKyIudGV4dCIgIlxuIgorIi5hbGlnbiAyIiAi
XG4iCisiLnNldCBub3Jlb3JkZXIiICJcbiIKKyIuc2V0IG5vbWFjcm8iICJcbiIKKyIuc2V0IG5v
bWlwczE2IiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiXG4i
CisiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgorU1lNQk9MX1NUUklO
RyhjdGlUcmFtcG9saW5lKSAiOiIgIlxuIgorICAgICJhZGRpdSAkMjksJDI5LC0iIFNUUklOR0la
RV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIKKyAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgor
ICAgICJzdyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkg
IigkMjkpIiAiXG4iCisgICAgInN3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAic3cgICAgJDE4LCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMTcs
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCisg
ICAgInN3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAi
KCQyOSkiICJcbiIKKyNpZiBXVEZfTUlQU19QSUMKKyAgICAic3cgICAgJDI4LCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIgorI2VuZGlmCisgICAg
Im1vdmUgICQxNiwkNiAgICAgICAjIHNldCBjYWxsRnJhbWVSZWdpc3RlciIgIlxuIgorICAgICJs
aSAgICAkMTcsNTEyICAgICAgIyBzZXQgdGltZW91dENoZWNrUmVnaXN0ZXIiICJcbiIKKyAgICAi
bW92ZSAgJDI1LCQ0ICAgICAgICMgbW92ZSBleGVjdXRhYmxlQWRkcmVzcyB0byB0OSIgIlxuIgor
ICAgICJzdyAgICAkNSwiIFNUUklOR0laRV9WQUxVRV9PRihSRUdJU1RFUl9GSUxFX09GRlNFVCkg
IigkMjkpICMgc3RvcmUgSlNTdGFjayB0byBjdXJyZW50IHN0YWNrIiAiXG4iCisgICAgImx3ICAg
ICQ5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCArIDIwKSAiKCQyOSkgICAgIyBs
b2FkIHZtIGZyb20gcHJldmlvdXMgc3RhY2siICJcbiIKKyAgICAiamFsciAgJDI1IiAiXG4iCisg
ICAgInN3ICAgICQ5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFZNX09GRlNFVCkgIigkMjkpICAgIyBz
dG9yZSB2bSB0byBjdXJyZW50IHN0YWNrIiAiXG4iCisgICAgImx3ICAgICQxNiwiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAg
JDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxu
IgorICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNF
VCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAk
MzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkg
IigkMjkpIiAiXG4iCisgICAgImpyICAgICQzMSIgIlxuIgorICAgICJhZGRpdSAkMjksJDI5LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgorIi5zZXQgcmVvcmRlciIgIlxu
IgorIi5zZXQgbWFjcm8iICJcbiIKKyIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5l
KSAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitI
SURFX1NZTUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1w
b2xpbmVFbmQpICI6IiAiXG4iCispOworCithc20gKAorIi50ZXh0IiAiXG4iCisiLmFsaWduIDIi
ICJcbiIKKyIuc2V0IG5vcmVvcmRlciIgIlxuIgorIi5zZXQgbm9tYWNybyIgIlxuIgorIi5zZXQg
bm9taXBzMTYiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9s
aW5lKSAiXG4iCisiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJc
biIKK1NZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCisjaWYgV1RG
X01JUFNfUElDCisiLnNldCBtYWNybyIgIlxuIgorIi5jcGxvYWQgJDMxIiAiXG4iCisgICAgImxh
ICAgICQyNSwiIFNZTUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCisiLnNldCBub21hY3Jv
IiAiXG4iCisgICAgImJhbCAiIFNZTUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCisgICAg
Im1vdmUgICQ0LCQyOSIgIlxuIgorI2Vsc2UKKyAgICAiamFsICIgU1lNQk9MX1NUUklORyhjdGlf
dm1fdGhyb3cpICJcbiIKKyAgICAibW92ZSAgJDQsJDI5IiAiXG4iCisjZW5kaWYKKyAgICAibHcg
ICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIg
IlxuIgorICAgICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09G
RlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAg
ICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAi
XG4iCisgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAianIgICAgJDMxIiAiXG4iCisgICAg
ImFkZGl1ICQyOSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCisi
LnNldCByZW9yZGVyIiAiXG4iCisiLnNldCBtYWNybyIgIlxuIgorIi5lbmQgIiBTWU1CT0xfU1RS
SU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCispOworCithc20gKAorIi50ZXh0IiAiXG4i
CisiLmFsaWduIDIiICJcbiIKKyIuc2V0IG5vcmVvcmRlciIgIlxuIgorIi5zZXQgbm9tYWNybyIg
IlxuIgorIi5zZXQgbm9taXBzMTYiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aU9w
VGhyb3dOb3RDYXVnaHQpICJcbiIKKyIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90
Q2F1Z2h0KSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4i
CisgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VU
KSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQx
OSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIK
KyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQp
ICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VS
VkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImpyICAgICQzMSIg
IlxuIgorICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdU
SCkgIlxuIgorIi5zZXQgcmVvcmRlciIgIlxuIgorIi5zZXQgbWFjcm8iICJcbiIKKyIuZW5kICIg
U1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiXG4iCispOworCisKKyNpZiBXVEZf
TUlQU19QSUMKKyNkZWZpbmUgREVGSU5FX1NUVUJfRlVOQ1RJT04ocnR5cGUsIG9wKSBcCisgICAg
ZXh0ZXJuICJDIiB7IFwKKyAgICAgICAgcnR5cGUgSklUU3R1YlRodW5rZWRfIyNvcChTVFVCX0FS
R1NfREVDTEFSQVRJT04pOyBcCisgICAgfTsgXAorICAgIGFzbSAoIFwKKyAgICAgICAgIi50ZXh0
IiAiXG4iIFwKKyAgICAgICAgIi5hbGlnbiAyIiAiXG4iIFwKKyAgICAgICAgIi5zZXQgbm9yZW9y
ZGVyIiAiXG4iIFwKKyAgICAgICAgIi5zZXQgbm9tYWNybyIgIlxuIiBcCisgICAgICAgICIuc2V0
IG5vbWlwczE2IiAiXG4iIFwKKyAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMj
b3ApICJcbiIgXAorICAgICAgICAiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICJcbiIg
XAorICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxuIiBcCisgICAgICAgICIu
c2V0IG1hY3JvIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAiXG4iIFwKKyAgICAgICAg
InN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZT
RVQpICIoJDI5KSIgIlxuIiBcCisgICAgICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RSSU5HKEpJ
VFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXAorICAgICAgICAiLnNldCBub21hY3JvIiAiXG4iIFwK
KyAgICAgICAgIi5yZWxvYyAxZixSX01JUFNfSkFMUiwiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRo
dW5rZWRfIyNvcCkgIlxuIiBcCisgICAgICAgICIxOiBqYWxyICQyNSIgIlxuIiBcCisgICAgICAg
ICJub3AiICJcbiIgXAorICAgICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFRI
VU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iIFwKKyAgICAgICAgImpyICAg
ICQzMSIgIlxuIiBcCisgICAgICAgICJub3AiICJcbiIgXAorICAgICAgICAiLnNldCByZW9yZGVy
IiAiXG4iIFwKKyAgICAgICAgIi5zZXQgbWFjcm8iICJcbiIgXAorICAgICAgICAiLmVuZCAiIFNZ
TUJPTF9TVFJJTkcoY3RpXyMjb3ApICJcbiIgXAorICAgICAgICApOyBcCisgICAgcnR5cGUgSklU
U3R1YlRodW5rZWRfIyNvcChTVFVCX0FSR1NfREVDTEFSQVRJT04pCisKKyNlbHNlIC8vIFdURl9N
SVBTX1BJQworI2RlZmluZSBERUZJTkVfU1RVQl9GVU5DVElPTihydHlwZSwgb3ApIFwKKyAgICBl
eHRlcm4gIkMiIHsgXAorICAgICAgICBydHlwZSBKSVRTdHViVGh1bmtlZF8jI29wKFNUVUJfQVJH
U19ERUNMQVJBVElPTik7IFwKKyAgICB9OyBcCisgICAgYXNtICggXAorICAgICAgICAiLnRleHQi
ICJcbiIgXAorICAgICAgICAiLmFsaWduIDIiICJcbiIgXAorICAgICAgICAiLnNldCBub3Jlb3Jk
ZXIiICJcbiIgXAorICAgICAgICAiLnNldCBub21hY3JvIiAiXG4iIFwKKyAgICAgICAgIi5zZXQg
bm9taXBzMTYiICJcbiIgXAorICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlfIyNv
cCkgIlxuIiBcCisgICAgICAgICIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIlxuIiBc
CisgICAgICAgIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICI6IiAiXG4iIFwKKyAgICAgICAgInN3
ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQp
ICIoJDI5KSIgIlxuIiBcCisgICAgICAgICJqYWwgIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVu
a2VkXyMjb3ApICJcbiIgXAorICAgICAgICAibm9wIiAiXG4iIFwKKyAgICAgICAgImx3ICAgICQz
MSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5
KSIgIlxuIiBcCisgICAgICAgICJqciAgICAkMzEiICJcbiIgXAorICAgICAgICAibm9wIiAiXG4i
IFwKKyAgICAgICAgIi5zZXQgcmVvcmRlciIgIlxuIiBcCisgICAgICAgICIuc2V0IG1hY3JvIiAi
XG4iIFwKKyAgICAgICAgIi5lbmQgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKKyAg
ICAgICAgKTsgXAorICAgIHJ0eXBlIEpJVFN0dWJUaHVua2VkXyMjb3AoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKQorCisjZW5kaWYgLy8gV1RGX01JUFNfUElDCisKKworc3RhdGljIHZvaWQgcGVyZm9y
bU1JUFNKSVRBc3NlcnRpb25zKCkKK3sKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7Cisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
UzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0gUFJF
U0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRV
Uk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdm0pID09IFZNX09GRlNFVCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gSklUU3R1YnNNSVBTX2gKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNTSDQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzU0g0LmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzU0g0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IENh
bWVyb24gWndhcmljaCA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KKyAqIENvcHlyaWdodCAoQykg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEpJVFN0dWJzU0g0X2gKKyNkZWZpbmUgSklUU3R1YnNTSDRfaAorCisjaWYgIUNQ
VShTSDQpCisjZXJyb3IgIkpJVFN0dWJzU0g0Lmggc2hvdWxkIG9ubHkgYmUgI2luY2x1ZGVkIGlm
IENQVShTSDQpIgorI2VuZGlmCisKKyNpZiAhVVNFKEpTVkFMVUUzMl82NCkKKyNlcnJvciAiSklU
U3R1YnNTSDQuaCBvbmx5IGltcGxlbWVudHMgVVNFKEpTVkFMVUUzMl82NCkiCisjZW5kaWYKKwor
bmFtZXNwYWNlIEpTQyB7CisKKyNkZWZpbmUgU1lNQk9MX1NUUklORyhuYW1lKSAjbmFtZQorLyog
Y29kZSAocjQpLCBKU1N0YWNrKiAocjUpLCBDYWxsRnJhbWUqIChyNiksIHZvaWQqIHVudXNlZDEg
KHI3KSwgdm9pZCogdW51c2VkMihzcCksIFZNIChzcCkqLworCithc20gdm9sYXRpbGUgKAorIi50
ZXh0XG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiXG4iCitISURF
X1NZTUJPTChjdGlUcmFtcG9saW5lKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUp
ICI6IiAiXG4iCisgICAgIm1vdi5sIHI3LCBALXIxNSIgIlxuIgorICAgICJtb3YubCByNiwgQC1y
MTUiICJcbiIKKyAgICAibW92LmwgcjUsIEAtcjE1IiAiXG4iCisgICAgIm1vdi5sIHI4LCBALXIx
NSIgIlxuIgorICAgICJtb3YgIzEyNywgcjgiICJcbiIKKyAgICAibW92LmwgcjE0LCBALXIxNSIg
IlxuIgorICAgICJzdHMubCBwciwgQC1yMTUiICJcbiIKKyAgICAibW92LmwgcjEzLCBALXIxNSIg
IlxuIgorICAgICJtb3YubCByMTEsIEAtcjE1IiAiXG4iCisgICAgIm1vdi5sIHIxMCwgQC1yMTUi
ICJcbiIKKyAgICAiYWRkICMtNjAsIHIxNSIgIlxuIgorICAgICJtb3YgcjYsIHIxNCIgIlxuIgor
ICAgICJqc3IgQHI0IiAiXG4iCisgICAgIm5vcCIgIlxuIgorICAgICJhZGQgIzYwLCByMTUiICJc
biIKKyAgICAibW92LmwgQHIxNSsscjEwIiAiXG4iCisgICAgIm1vdi5sIEByMTUrLHIxMSIgIlxu
IgorICAgICJtb3YubCBAcjE1KyxyMTMiICJcbiIKKyAgICAibGRzLmwgQHIxNSsscHIiICJcbiIK
KyAgICAibW92LmwgQHIxNSsscjE0IiAiXG4iCisgICAgIm1vdi5sIEByMTUrLHI4IiAiXG4iCisg
ICAgImFkZCAjMTIsIHIxNSIgIlxuIgorICAgICJydHMiICJcbiIKKyAgICAibm9wIiAiXG4iCisp
OworCithc20gdm9sYXRpbGUgKAorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1Ry
YW1wb2xpbmUpICJcbiIKK0hJREVfU1lNQk9MKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCitT
WU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgorICAgICJtb3YubCAu
TDIiU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpIixyMCIgIlxuIgorICAgICJtb3YgcjE1LCBy
NCIgIlxuIgorICAgICJtb3YubCBAKHIwLHIxMikscjExIiAiXG4iCisgICAgImpzciBAcjExIiAi
XG4iCisgICAgIm5vcCIgIlxuIgorICAgICJhZGQgIzYwLCByMTUiICJcbiIKKyAgICAibW92Lmwg
QHIxNSsscjEwIiAiXG4iCisgICAgIm1vdi5sIEByMTUrLHIxMSIgIlxuIgorICAgICJtb3YubCBA
cjE1KyxyMTMiICJcbiIKKyAgICAibGRzLmwgQHIxNSsscHIiICJcbiIKKyAgICAibW92LmwgQHIx
NSsscjE0IiAiXG4iCisgICAgIm1vdi5sIEByMTUrLHI4IiAiXG4iCisgICAgImFkZCAjMTIsIHIx
NSIgIlxuIgorICAgICJydHMiICJcbiIKKyAgICAibm9wIiAiXG4iCisgICAgIi5hbGlnbiAyIiAi
XG4iCisgICAgIi5MMiJTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJvdykiOi5sb25nICIgU1lNQk9M
X1NUUklORyhjdGlfdm1fdGhyb3cpIkBHT1QgXG4iCispOworCithc20gdm9sYXRpbGUgKAorIi5n
bG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIlxuIgorSElERV9TWU1C
T0woY3RpT3BUaHJvd05vdENhdWdodCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90
Q2F1Z2h0KSAiOiIgIlxuIgorICAgICJhZGQgIzYwLCByMTUiICJcbiIKKyAgICAibW92LmwgQHIx
NSsscjEwIiAiXG4iCisgICAgIm1vdi5sIEByMTUrLHIxMSIgIlxuIgorICAgICJtb3YubCBAcjE1
KyxyMTMiICJcbiIKKyAgICAibGRzLmwgQHIxNSsscHIiICJcbiIKKyAgICAibW92LmwgQHIxNSss
cjE0IiAiXG4iCisgICAgIm1vdi5sIEByMTUrLHI4IiAiXG4iCisgICAgImFkZCAjMTIsIHIxNSIg
IlxuIgorICAgICJydHMiICJcbiIKKyAgICAibm9wIiAiXG4iCispOworCisKKyNkZWZpbmUgREVG
SU5FX1NUVUJfRlVOQ1RJT04ocnR5cGUsIG9wKSBcCisgICAgZXh0ZXJuICJDIiB7IFwKKyAgICAg
ICAgcnR5cGUgSklUU3R1YlRodW5rZWRfIyNvcChTVFVCX0FSR1NfREVDTEFSQVRJT04pOyBcCisg
ICAgfTsgXAorICAgIGFzbSB2b2xhdGlsZSggXAorICAgICIuYWxpZ24gMiIgIlxuIiBcCisgICAg
Ii5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICJcbiIgXAorICAgIFNZTUJPTF9TVFJJ
TkcoY3RpXyMjb3ApICI6IiAiXG4iIFwKKyAgICAic3RzIHByLCByMTEiICJcbiIgXAorICAgICJt
b3YubCByMTEsIEAoMHgzOCwgcjE1KSIgIlxuIiBcCisgICAgIm1vdi5sIC5MMiJTWU1CT0xfU1RS
SU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApIixyMCIgIlxuIiBcCisgICAgIm1vdi5sIEAocjAscjEy
KSxyMTEiICJcbiIgXAorICAgICJqc3IgQHIxMSIgIlxuIiBcCisgICAgIm5vcCIgIlxuIiBcCisg
ICAgIm1vdi5sIEAoMHgzOCwgcjE1KSwgcjExICIgIlxuIiBcCisgICAgImxkcyByMTEsIHByICIg
IlxuIiBcCisgICAgInJ0cyIgIlxuIiBcCisgICAgIm5vcCIgIlxuIiBcCisgICAgIi5hbGlnbiAy
IiAiXG4iIFwKKyAgICAiLkwyIlNZTUJPTF9TVFJJTkcoSklUU3R1YlRodW5rZWRfIyNvcCkiOi5s
b25nICIgU1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29wKSJAR09UIFxuIiBcCisgICAg
KTsgXAorICAgIHJ0eXBlIEpJVFN0dWJUaHVua2VkXyMjb3AoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEpJVFN0dWJzU0g0X2gKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IENhbWVy
b24gWndhcmljaCA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KKyAqIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1
dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAor
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEpJVFN0dWJzWDg2X2gKKyNkZWZpbmUgSklUU3R1YnNYODZfaAorCisjaWYgIUNQVShY
ODYpCisjZXJyb3IgIkpJVFN0dWJzWDg2Lmggc2hvdWxkIG9ubHkgYmUgI2luY2x1ZGVkIGlmIENQ
VShYODYpIgorI2VuZGlmCisKKyNpZiAhVVNFKEpTVkFMVUUzMl82NCkKKyNlcnJvciAiSklUU3R1
YnNYODYuaCBvbmx5IGltcGxlbWVudHMgVVNFKEpTVkFMVUUzMl82NCkiCisjZW5kaWYKKworbmFt
ZXNwYWNlIEpTQyB7CisKKyNpZiBDT01QSUxFUihHQ0MpCisKKy8vIFRoZXNlIEFTU0VSVHMgcmVt
aW5kIHlvdSB0aGF0LCBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQgb2YgSklUU3RhY2tGcmFtZSwg
eW91CisvLyBuZWVkIHRvIGNoYW5nZSB0aGUgYXNzZW1ibHkgdHJhbXBvbGluZXMgYmVsb3cgdG8g
bWF0Y2guCitDT01QSUxFX0FTU0VSVChvZmZzZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY29k
ZSkgJSAxNiA9PSAweDAsIEpJVFN0YWNrRnJhbWVfbWFpbnRhaW5zXzE2Ynl0ZV9zdGFja19hbGln
bm1lbnQpOworQ09NUElMRV9BU1NFUlQob2Zmc2V0b2Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHNh
dmVkRUJYKSA9PSAweDNjLCBKSVRTdGFja0ZyYW1lX3N0dWJfYXJndW1lbnRfc3BhY2VfbWF0Y2hl
c19jdGlUcmFtcG9saW5lKTsKK0NPTVBJTEVfQVNTRVJUKG9mZnNldG9mKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCBjYWxsRnJhbWUpID09IDB4NTgsIEpJVFN0YWNrRnJhbWVfY2FsbEZyYW1lX29mZnNl
dF9tYXRjaGVzX2N0aVRyYW1wb2xpbmUpOworQ09NUElMRV9BU1NFUlQob2Zmc2V0b2Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIGNvZGUpID09IDB4NTAsIEpJVFN0YWNrRnJhbWVfY29kZV9vZmZzZXRf
bWF0Y2hlc19jdGlUcmFtcG9saW5lKTsKKworYXNtICgKKyIudGV4dFxuIgorIi5nbG9ibCAiIFNZ
TUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgorSElERV9TWU1CT0woY3RpVHJhbXBvbGlu
ZSkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIgIlxuIgorICAgICJwdXNo
bCAlZWJwIiAiXG4iCisgICAgIm1vdmwgJWVzcCwgJWVicCIgIlxuIgorICAgICJwdXNobCAlZXNp
IiAiXG4iCisgICAgInB1c2hsICVlZGkiICJcbiIKKyAgICAicHVzaGwgJWVieCIgIlxuIgorICAg
ICJzdWJsICQweDNjLCAlZXNwIiAiXG4iCisgICAgIm1vdmwgMHg1OCglZXNwKSwgJWVkaSIgIlxu
IgorICAgICJjYWxsICoweDUwKCVlc3ApIiAiXG4iCisgICAgImFkZGwgJDB4M2MsICVlc3AiICJc
biIKKyAgICAicG9wbCAlZWJ4IiAiXG4iCisgICAgInBvcGwgJWVkaSIgIlxuIgorICAgICJwb3Bs
ICVlc2kiICJcbiIKKyAgICAicG9wbCAlZWJwIiAiXG4iCisgICAgInJldCIgIlxuIgorIi5nbG9i
bCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3Rp
VHJhbXBvbGluZUVuZCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIg
IlxuIgorKTsKKworYXNtICgKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFt
cG9saW5lKSAiXG4iCitISURFX1NZTUJPTChjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgorU1lN
Qk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKKyAgICAibW92bCAlZXNw
LCAlZWN4IiAiXG4iCisgICAgImNhbGwgIiBMT0NBTF9SRUZFUkVOQ0UoY3RpX3ZtX3Rocm93KSAi
XG4iCisgICAgImludDMiICJcbiIKKyk7CisKK2FzbSAoCisiLmdsb2JsICIgU1lNQk9MX1NUUklO
RyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiXG4iCitISURFX1NZTUJPTChjdGlPcFRocm93Tm90Q2F1
Z2h0KSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCisg
ICAgImFkZGwgJDB4M2MsICVlc3AiICJcbiIKKyAgICAicG9wbCAlZWJ4IiAiXG4iCisgICAgInBv
cGwgJWVkaSIgIlxuIgorICAgICJwb3BsICVlc2kiICJcbiIKKyAgICAicG9wbCAlZWJwIiAiXG4i
CisgICAgInJldCIgIlxuIgorKTsKKworI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKKworI2lmIENP
TVBJTEVSKE1TVkMpCisKKy8vIFRoZXNlIEFTU0VSVHMgcmVtaW5kIHlvdSB0aGF0LCBpZiB5b3Ug
Y2hhbmdlIHRoZSBsYXlvdXQgb2YgSklUU3RhY2tGcmFtZSwgeW91CisvLyBuZWVkIHRvIGNoYW5n
ZSB0aGUgYXNzZW1ibHkgdHJhbXBvbGluZXMgYmVsb3cgdG8gbWF0Y2guCitDT01QSUxFX0FTU0VS
VChvZmZzZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY29kZSkgJSAxNiA9PSAweDAsIEpJVFN0
YWNrRnJhbWVfbWFpbnRhaW5zXzE2Ynl0ZV9zdGFja19hbGlnbm1lbnQpOworQ09NUElMRV9BU1NF
UlQob2Zmc2V0b2Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHNhdmVkRUJYKSA9PSAweDNjLCBKSVRT
dGFja0ZyYW1lX3N0dWJfYXJndW1lbnRfc3BhY2VfbWF0Y2hlc19jdGlUcmFtcG9saW5lKTsKK0NP
TVBJTEVfQVNTRVJUKG9mZnNldG9mKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjYWxsRnJhbWUpID09
IDB4NTgsIEpJVFN0YWNrRnJhbWVfY2FsbEZyYW1lX29mZnNldF9tYXRjaGVzX2N0aVRyYW1wb2xp
bmUpOworQ09NUElMRV9BU1NFUlQob2Zmc2V0b2Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNvZGUp
ID09IDB4NTAsIEpJVFN0YWNrRnJhbWVfY29kZV9vZmZzZXRfbWF0Y2hlc19jdGlUcmFtcG9saW5l
KTsKKworZXh0ZXJuICJDIiB7CisKKyAgICBfX2RlY2xzcGVjKG5ha2VkKSBFbmNvZGVkSlNWYWx1
ZSBjdGlUcmFtcG9saW5lKHZvaWQqIGNvZGUsIEpTU3RhY2sqLCBDYWxsRnJhbWUqLCB2b2lkKiAv
KnVudXNlZDEqLywgdm9pZCogLyp1bnVzZWQyKi8sIFZNKikKKyAgICB7CisgICAgICAgIF9fYXNt
IHsKKyAgICAgICAgICAgIHB1c2ggZWJwOworICAgICAgICAgICAgbW92IGVicCwgZXNwOworICAg
ICAgICAgICAgcHVzaCBlc2k7CisgICAgICAgICAgICBwdXNoIGVkaTsKKyAgICAgICAgICAgIHB1
c2ggZWJ4OworICAgICAgICAgICAgc3ViIGVzcCwgMHgzYzsKKyAgICAgICAgICAgIG1vdiBlY3gs
IGVzcDsKKyAgICAgICAgICAgIG1vdiBlZGksIFtlc3AgKyAweDU4XTsKKyAgICAgICAgICAgIGNh
bGwgW2VzcCArIDB4NTBdOworICAgICAgICAgICAgYWRkIGVzcCwgMHgzYzsKKyAgICAgICAgICAg
IHBvcCBlYng7CisgICAgICAgICAgICBwb3AgZWRpOworICAgICAgICAgICAgcG9wIGVzaTsKKyAg
ICAgICAgICAgIHBvcCBlYnA7CisgICAgICAgICAgICByZXQ7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBfX2RlY2xzcGVjKG5ha2VkKSB2b2lkIGN0aVZNVGhyb3dUcmFtcG9saW5lKCkKKyAgICB7
CisgICAgICAgIF9fYXNtIHsKKyAgICAgICAgICAgIG1vdiBlY3gsIGVzcDsKKyAgICAgICAgICAg
IGNhbGwgY3RpX3ZtX3Rocm93OworICAgICAgICAgICAgYWRkIGVzcCwgMHgzYzsKKyAgICAgICAg
ICAgIHBvcCBlYng7CisgICAgICAgICAgICBwb3AgZWRpOworICAgICAgICAgICAgcG9wIGVzaTsK
KyAgICAgICAgICAgIHBvcCBlYnA7CisgICAgICAgICAgICByZXQ7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBfX2RlY2xzcGVjKG5ha2VkKSB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKQorICAg
IHsKKyAgICAgICAgX19hc20geworICAgICAgICAgICAgYWRkIGVzcCwgMHgzYzsKKyAgICAgICAg
ICAgIHBvcCBlYng7CisgICAgICAgICAgICBwb3AgZWRpOworICAgICAgICAgICAgcG9wIGVzaTsK
KyAgICAgICAgICAgIHBvcCBlYnA7CisgICAgICAgICAgICByZXQ7CisgICAgICAgIH0KKyAgICB9
Cit9CisKKyNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwor
I2VuZGlmIC8vIEpJVFN0dWJzWDg2X2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnNYODZfNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFN0dWJzWDg2XzY0LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzWDg2XzY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gWndhcmljaCA8Y3d6d2Fy
aWNoQHV3YXRlcmxvby5jYT4KKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExp
bWl0ZWQgMjAxMCwgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpJVFN0dWJzWDg2
XzY0X2gKKyNkZWZpbmUgSklUU3R1YnNYODZfNjRfaAorCisjaWYgIUNQVShYODZfNjQpCisjZXJy
b3IgIkpJVFN0dWJzWDg2XzY0Lmggc2hvdWxkIG9ubHkgYmUgI2luY2x1ZGVkIGlmIENQVShYODZf
NjQpIgorI2VuZGlmCisKKyNpZiAhVVNFKEpTVkFMVUU2NCkKKyNlcnJvciAiSklUU3R1YnNYODZf
NjQuaCBvbmx5IGltcGxlbWVudHMgVVNFKEpTVkFMVUU2NCkiCisjZW5kaWYKKworbmFtZXNwYWNl
IEpTQyB7CisKKyNpZiBDT01QSUxFUihHQ0MpCisKKy8vIFRoZXNlIEFTU0VSVHMgcmVtaW5kIHlv
dSB0aGF0LCBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQgb2YgSklUU3RhY2tGcmFtZSwgeW91Cisv
LyBuZWVkIHRvIGNoYW5nZSB0aGUgYXNzZW1ibHkgdHJhbXBvbGluZXMgYmVsb3cgdG8gbWF0Y2gu
CitDT01QSUxFX0FTU0VSVChvZmZzZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1l
KSA9PSAweDU4LCBKSVRTdGFja0ZyYW1lX2NhbGxGcmFtZV9vZmZzZXRfbWF0Y2hlc19jdGlUcmFt
cG9saW5lKTsKK0NPTVBJTEVfQVNTRVJUKG9mZnNldG9mKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBj
b2RlKSA9PSAweDQ4LCBKSVRTdGFja0ZyYW1lX2NvZGVfb2Zmc2V0X21hdGNoZXNfY3RpVHJhbXBv
bGluZSk7CitDT01QSUxFX0FTU0VSVChvZmZzZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc2F2
ZWRSQlgpID09IDB4NzgsIEpJVFN0YWNrRnJhbWVfc3R1Yl9hcmd1bWVudF9zcGFjZV9tYXRjaGVz
X2N0aVRyYW1wb2xpbmUpOworCithc20gKAorIi50ZXh0XG4iCisiLmdsb2JsICIgU1lNQk9MX1NU
UklORyhjdGlUcmFtcG9saW5lKSAiXG4iCitISURFX1NZTUJPTChjdGlUcmFtcG9saW5lKSAiXG4i
CitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCisgICAgInB1c2hxICVyYnAi
ICJcbiIKKyAgICAibW92cSAlcnNwLCAlcmJwIiAiXG4iCisgICAgInB1c2hxICVyMTIiICJcbiIK
KyAgICAicHVzaHEgJXIxMyIgIlxuIgorICAgICJwdXNocSAlcjE0IiAiXG4iCisgICAgInB1c2hx
ICVyMTUiICJcbiIKKyAgICAicHVzaHEgJXJieCIgIlxuIgorICAgIC8vIEZvcm0gdGhlIEpJVCBz
dHVicyBhcmVhCisgICAgInB1c2hxICVyOSIgIlxuIgorICAgICJwdXNocSAlcjgiICJcbiIKKyAg
ICAicHVzaHEgJXJjeCIgIlxuIgorICAgICJwdXNocSAlcmR4IiAiXG4iCisgICAgInB1c2hxICVy
c2kiICJcbiIKKyAgICAicHVzaHEgJXJkaSIgIlxuIgorICAgICJzdWJxICQweDQ4LCAlcnNwIiAi
XG4iCisgICAgIm1vdnEgJDUxMiwgJXIxMiIgIlxuIgorICAgICJtb3ZxICQweEZGRkYwMDAwMDAw
MDAwMDAsICVyMTQiICJcbiIKKyAgICAibW92cSAkMHhGRkZGMDAwMDAwMDAwMDAyLCAlcjE1IiAi
XG4iCisgICAgIm1vdnEgJXJkeCwgJXIxMyIgIlxuIgorICAgICJjYWxsIColcmRpIiAiXG4iCisg
ICAgImFkZHEgJDB4NzgsICVyc3AiICJcbiIKKyAgICAicG9wcSAlcmJ4IiAiXG4iCisgICAgInBv
cHEgJXIxNSIgIlxuIgorICAgICJwb3BxICVyMTQiICJcbiIKKyAgICAicG9wcSAlcjEzIiAiXG4i
CisgICAgInBvcHEgJXIxMiIgIlxuIgorICAgICJwb3BxICVyYnAiICJcbiIKKyAgICAicmV0IiAi
XG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitISURF
X1NZTUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xp
bmVFbmQpICI6IiAiXG4iCispOworCithc20gKAorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3Rp
Vk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKK0hJREVfU1lNQk9MKGN0aVZNVGhyb3dUcmFtcG9saW5l
KSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgorICAg
ICJtb3ZxICVyc3AsICVyZGkiICJcbiIKKyAgICAiY2FsbCAiIExPQ0FMX1JFRkVSRU5DRShjdGlf
dm1fdGhyb3cpICJcbiIKKyAgICAiaW50MyIgIlxuIgorKTsKKworYXNtICgKKyIuZ2xvYmwgIiBT
WU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKK0hJREVfU1lNQk9MKGN0aU9w
VGhyb3dOb3RDYXVnaHQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkg
IjoiICJcbiIKKyAgICAiYWRkcSAkMHg3OCwgJXJzcCIgIlxuIgorICAgICJwb3BxICVyYngiICJc
biIKKyAgICAicG9wcSAlcjE1IiAiXG4iCisgICAgInBvcHEgJXIxNCIgIlxuIgorICAgICJwb3Bx
ICVyMTMiICJcbiIKKyAgICAicG9wcSAlcjEyIiAiXG4iCisgICAgInBvcHEgJXJicCIgIlxuIgor
ICAgICJyZXQiICJcbiIKKyk7CisKKyNlbmRpZiAvLyBDT01QSUxFUihHQ0MpCisKKyNpZiBDT01Q
SUxFUihNU1ZDKQorCisvLyBUaGVzZSBBU1NFUlRzIHJlbWluZCB5b3UgdGhhdCwgaWYgeW91IGNo
YW5nZSB0aGUgbGF5b3V0IG9mIEpJVFN0YWNrRnJhbWUsIHlvdQorLy8gbmVlZCB0byBjaGFuZ2Ug
dGhlIGFzc2VtYmx5IHRyYW1wb2xpbmVzIGluIEpJVFN0dWJzTVNWQzY0LmFzbSB0byBtYXRjaC4K
K0NPTVBJTEVfQVNTRVJUKG9mZnNldG9mKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjb2RlKSAlIDE2
ID09IDB4MCwgSklUU3RhY2tGcmFtZV9tYWludGFpbnNfMTZieXRlX3N0YWNrX2FsaWdubWVudCk7
CitDT01QSUxFX0FTU0VSVChvZmZzZXRvZihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc2F2ZWRSQlgp
ID09IDB4NTgsIEpJVFN0YWNrRnJhbWVfc3R1Yl9hcmd1bWVudF9zcGFjZV9tYXRjaGVzX2N0aVRy
YW1wb2xpbmUpOworCisjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKKworfSAvLyBuYW1lc3BhY2Ug
SlNDCisKKyNlbmRpZiAvLyBKSVRTdHVic1g4Nl82NF9oCg==
</data>
<flag name="review"
          id="223142"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>