<?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>235497</bug_id>
          
          <creation_ts>2022-01-23 14:08:39 -0800</creation_ts>
          <short_desc>[libpas] jit_heap should support the segregated heap</short_desc>
          <delta_ts>2022-02-10 15:50:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>bmalloc</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1833142</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-23 14:08:39 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833143</commentid>
    <comment_count>1</comment_count>
      <attachid>449765</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-23 14:10:10 -0800</bug_when>
    <thetext>Created attachment 449765
work in progress

Still just getting test_pas to pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833152</commentid>
    <comment_count>2</comment_count>
      <attachid>449767</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-23 15:47:55 -0800</bug_when>
    <thetext>Created attachment 449767
better patch

test_pas revealed so many bugs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833552</commentid>
    <comment_count>3</comment_count>
      <attachid>449880</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-24 16:27:51 -0800</bug_when>
    <thetext>Created attachment 449880
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833562</commentid>
    <comment_count>4</comment_count>
      <attachid>449880</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-24 17:05:46 -0800</bug_when>
    <thetext>Comment on attachment 449880
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835403</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-30 14:09:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88245828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839986</commentid>
    <comment_count>6</comment_count>
      <attachid>451609</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-02-10 15:07:09 -0800</bug_when>
    <thetext>Created attachment 451609
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840010</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-02-10 15:50:03 -0800</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/289590/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449765</attachid>
            <date>2022-01-23 14:10:10 -0800</date>
            <delta_ts>2022-01-23 15:47:55 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>62250</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4ODQyNCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgzIEBACisyMDIyLTAxLTIzICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gaml0X2hlYXAgc2hv
dWxkIHN1cHBvcnQgdGhlIHNlZ3JlZ2F0ZWQgaGVhcAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4gVGhpcyByZXZlYWxlZCBz
b21lIHN1cGVyIGNvb2wgYnVncy4KKworICAgICAgICAqIGxpYnBhcy9saWJwYXMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5j
OgorICAgICAgICAoaml0X2hlYXBfc2hyaW5rKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9qaXRfaGVhcF9jb25maWcuYzoKKyAgICAgICAgKGppdF9zbWFsbF9zZWdyZWdhdGVkX2FsbG9j
YXRlX3BhZ2UpOgorICAgICAgICAoaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfY3JlYXRlX3BhZ2VfaGVh
ZGVyKToKKyAgICAgICAgKGppdF9zbWFsbF9kZXN0cm95X3BhZ2VfaGVhZGVyKToKKyAgICAgICAg
KGppdF9zbWFsbF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3Rvcik6Cisg
ICAgICAgIChqaXRfc21hbGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UpOgorICAgICAgICAoaml0X3Nt
YWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIpOgorICAgICAgICAoaml0X21lZGl1bV9iaXRm
aXRfY3JlYXRlX3BhZ2VfaGVhZGVyKToKKyAgICAgICAgKGppdF9tZWRpdW1fZGVzdHJveV9wYWdl
X2hlYWRlcik6CisgICAgICAgIChqaXRfcHJlcGFyZV90b19lbnVtZXJhdGUpOgorICAgICAgICAo
aml0X3NtYWxsX2JpdGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KGppdF9tZWRpdW1fYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIpOiBEZWxldGVkLgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oOgorICAgICAgICAoaml0X3Nt
YWxsX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSk6CisgICAgICAgIChqaXRfc21hbGxfYm91bmRh
cnlfZm9yX3BhZ2VfaGVhZGVyKToKKyAgICAgICAgKGppdF9tZWRpdW1fcGFnZV9oZWFkZXJfZm9y
X2JvdW5kYXJ5KToKKyAgICAgICAgKGppdF9tZWRpdW1fYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVy
KToKKyAgICAgICAgKGppdF9oZWFwX2NvbmZpZ19wYWdlX2hlYWRlcik6CisgICAgICAgIChqaXRf
c21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSk6IERlbGV0ZWQuCisgICAgICAg
IChqaXRfc21hbGxfYml0Zml0X2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChqaXRfbWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkpOiBEZWxl
dGVkLgorICAgICAgICAoaml0X21lZGl1bV9iaXRmaXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWdf
cm9vdF9kYXRhLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFw
LmM6CisgICAgICAgIChwYXNfYml0Zml0X2hlYXBfc2VsZWN0X3ZhcmlhbnQpOgorICAgICAgICAo
cGFzX2JpdGZpdF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXJ0X3NpemVfY2xhc3MpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaDoKKyAgICAgICAgKHBhc19iaXRm
aXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2hlYXBfY29uZmlnLmg6CisgICAgICAgIChwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9o
ZWFwX21pbl9hbGlnbl9zaGlmdCk6CisgICAgICAgIChwYXNfaGVhcF9jb25maWdfc2VncmVnYXRl
ZF9oZWFwX21pbl9hbGlnbik6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcC5jOgorICAgICAgICAobWluX2FsaWduX2Zvcl9oZWFwKToKKyAgICAgICAgKG1p
bl9vYmplY3Rfc2l6ZV9mb3JfaGVhcCk6CisgICAgICAgIChtYXhfc2VncmVnYXRlZF9vYmplY3Rf
c2l6ZV9mb3JfaGVhcCk6CisgICAgICAgIChtYXhfYml0Zml0X29iamVjdF9zaXplX2Zvcl9oZWFw
KToKKyAgICAgICAgKG1heF9vYmplY3Rfc2l6ZV9mb3JfaGVhcCk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX3NpemUpOgorICAgICAgICAobWlu
X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyk6IERlbGV0ZWQuCisgICAgICAgIChtYXhfc2Vn
cmVnYXRlZF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcpOiBEZWxldGVkLgorICAgICAgICAo
bWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcpOiBEZWxldGVkLgorICAgICAg
ICAobWF4X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyk6IERlbGV0ZWQuCisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3Jfc2l6ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9o
ZWFwX3NpemVfZm9yX2luZGV4KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9wYWdlLmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdCk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcu
aDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQu
ZGVmOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfYW5kX3JvbGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfY3JlYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9z
VGVzdHMuY3BwOgorICAgICAgICAoc3RkOjphZGRBbGxUZXN0cyk6CisgICAgICAgICogbGlicGFz
L3NyYy90ZXN0L0pJVEhlYXBUZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OnRlc3RBbGxvY2F0aW9u
U2l6ZSk6CisgICAgICAgIChhZGRKSVRIZWFwVGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
dGVzdC9UZXN0SGFybmVzcy5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL3Rlc3QvVmlld0NhY2hlVGVzdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKHN0ZDo6c2V0dXBD
b25maWcpOgorICAgICAgICAoc3RkOjp0ZXN0RGlzYWJsZVZpZXdDYWNoZVVzaW5nQm91bmRGb3JO
b1ZpZXdDYWNoZSk6CisgICAgICAgIChzdGQ6OnRlc3RFbmFibGVWaWV3Q2FjaGVBdFNvbWVCb3Vu
ZEZvck5vVmlld0NhY2hlKToKKyAgICAgICAgKGFkZFZpZXdDYWNoZVRlc3RzKToKKwogMjAyMi0w
MS0yMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODg0MDAuCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw2ICs1NTQsNyBAQAogCQkyQzExRTg4
RTI3MjhBNzgzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg4QzI3MjhBNzgzMDAyMTYyRDAgLyogYm1h
bGxvY190eXBlLmggKi87IH07CiAJCTJDMTFFODhGMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2lt
cGxlX3R5cGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDMTFFODhEMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2ltcGxlX3R5cGUuYyAqLzsgfTsKIAkJ
MkMxMUU4OTEyNzI4QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OTAyNzI4QTg5MzAwMjE2MkQw
IC8qIGJtYWxsb2NfdHlwZS5jICovOyB9OworCQkyQzE2REFFMDI3OUUwNzI5MDA0MkU5MTkgLyog
Vmlld0NhY2hlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3RzLmNwcCAq
LzsgfTsKIAkJMkMzNDAwMDAyNzU4MTVEMDAwNTU2NUNCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfYW5kX3JvbGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDMzRGRkZGMjc1ODE1RDAwMDU1NjVDQiAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlLmMgKi87IH07CiAJCTJDMzQwMDAyMjc1ODE2ODcwMDU1
NjVDQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkMzNDAwMDEyNzU4MTY4NzAwNTU2NUNCIC8qIHBhc19wYWdl
X2Jhc2VfY29uZmlnLmMgKi87IH07CiAJCTJDMzRGRkZBMjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNf
cGFnZV9iYXNlX2FuZF9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyQzM0RkZGNTI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3BhZ2VfYmFzZV9hbmRf
a2luZC5oICovOyB9OwpAQCAtMTI0Nyw2ICsxMjQ4LDcgQEAKIAkJMkMxMUU4OEMyNzI4QTc4MzAw
MjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBibWFsbG9jX3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMxMUU4OEQy
NzI4QTc4MzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IHBhdGggPSBwYXNfc2ltcGxlX3R5cGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkMxMUU4OTAyNzI4QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBibWFsbG9jX3R5cGUuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3Rz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZXdDYWNoZVRlc3Rz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNDAwMDEyNzU4MTY4NzAwNTU2
NUNCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
cGF0aCA9IHBhc19wYWdlX2Jhc2VfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJDMzRGRkY1Mjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfcGFnZV9iYXNlX2FuZF9raW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfYW5kX2tpbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNEZGRjYyNzU3MUQyRjAwNTU2NUNC
IC8qIHBhc19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21l
Z2FwYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19nZXRfcGFnZV9i
YXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21lZ2FwYWdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzkzLDYgKzEzOTUsNyBAQAogCQkJCTBGODcwMEIyMjVC
MEFCMjkwMDBFMUFCRiAvKiBUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAg
Ki8sCiAJCQkJMEY4NzAwREUyNUIxNEM2ODAwMEUxQUJGIC8qIFRTRFRlc3RzLmNwcCAqLywKIAkJ
CQkwRjUzMTgxMjIyQzk2MDlEMDAzRjdCNkEgLyogVXRpbHNUZXN0cy5jcHAgKi8sCisJCQkJMkMx
NkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3RzLmNwcCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gdGVzdDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNjA1LDYgKzI2
MDgsNyBAQAogCQkJCTBGREVBNDYxMjI4QjY1MUIwMDg1RTM0MCAvKiBCaXRmaWVsZFZlY3RvclRl
c3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTMxODExMjJDOTU0RUQwMDNGN0I2QSAvKiBC
aXR2ZWN0b3JUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjMxQTY2ODIzRThCMzM2MDAy
QzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDMTZE
QUUwMjc5RTA3MjkwMDQyRTkxOSAvKiBWaWV3Q2FjaGVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkM2ODIzODIxMjlENEVFMDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJDNDgxMzJEMjczRjQxNTkwMDZDQUI1NSAvKiBFeHBlbmRhYmxlTWVtb3J5
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNjgyMzEyMTI5Q0I0NjAwM0M2QTEzIC8q
IEV4dGVuZGVkR0NEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmMJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmMJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
ODYsOSArODYsMTAgQEAgdm9pZCogaml0X2hlYXBfdHJ5X2FsbG9jYXRlKHNpemVfdCBzaXplKQog
CiB2b2lkIGppdF9oZWFwX3Nocmluayh2b2lkKiBvYmplY3QsIHNpemVfdCBuZXdfc2l6ZSkKIHsK
LSAgICBib29sIHJlc3VsdDsKLSAgICByZXN1bHQgPSBwYXNfdHJ5X3NocmluayhvYmplY3QsIG5l
d19zaXplLCBKSVRfSEVBUF9DT05GSUcpOwotICAgIFBBU19BU1NFUlQocmVzdWx0KTsKKyAgICAv
KiBOT1RFOiB0aGUgc2hyaW5rIGNhbGwgd2lsbCBmYWlsIChyZXR1cm4gZmFsc2UpIGZvciBzZWdy
ZWdhdGVkIGFsbG9jYXRpb25zLCBhbmQgdGhhdCdzIGZpbmUgYmVjYXVzZSB3ZQorICAgICAgIG9u
bHkgdXNlIHNlZ3JlZ2F0ZWQgYWxsb2NhdGlvbnMgZm9yIHNtYWxsZXIgc2l6ZXMgKHNvIHRoZSBh
bW91bnQgb2YgcG90ZW50aWFsIG1lbW9yeSBzYXZpbmdzIGZyb20KKyAgICAgICBzaHJpbmtpbmcg
aXMgc21hbGwpLiAqLworICAgIHBhc190cnlfc2hyaW5rKG9iamVjdCwgbmV3X3NpemUsIEpJVF9I
RUFQX0NPTkZJRyk7CiB9CiAKIHNpemVfdCBqaXRfaGVhcF9nZXRfc2l6ZSh2b2lkKiBvYmplY3Qp
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVh
cF9jb25maWcuYwkocmV2aXNpb24gMjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgInBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX2hl
YXBfY29uZmlnX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfcm9vdC5oIgorI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc3RyZWFt
LmgiCiAKICNpZiBkZWZpbmVkKFBBU19CTUFMTE9DKQpAQCAtMTAyLDkgKzEwMyw5IEBAIHBhc19s
YXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWMKICAgICAucHJvdmlkZXJfYXJnID0g
TlVMTAogfTsKIAotcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9zbWFsbF9iaXRmaXRfcGFnZV9o
ZWFkZXJfdGFibGUgPQorcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9zbWFsbF9wYWdlX2hlYWRl
cl90YWJsZSA9CiAgICAgUEFTX1BBR0VfSEVBREVSX1RBQkxFX0lOSVRJQUxJWkVSKEpJVF9TTUFM
TF9QQUdFX1NJWkUpOwotcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9tZWRpdW1fYml0Zml0X3Bh
Z2VfaGVhZGVyX3RhYmxlID0KK3Bhc19wYWdlX2hlYWRlcl90YWJsZSBqaXRfbWVkaXVtX3BhZ2Vf
aGVhZGVyX3RhYmxlID0KICAgICBQQVNfUEFHRV9IRUFERVJfVEFCTEVfSU5JVElBTElaRVIoSklU
X01FRElVTV9QQUdFX1NJWkUpOwogCiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyBqaXRfaGVhcF9y
dW50aW1lX2NvbmZpZyA9IHsKQEAgLTExNCwxNSArMTE1LDE1IEBAIHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnIGppdF9oZWFwX3J1bnRpbWUKICAgICAuaXNfcGFydF9vZl9oZWFwID0gdHJ1ZSwKICAg
ICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPSAwLAogICAgIC5kaXJl
Y3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IDAsCi0gICAgLmRpcmVj
dG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gVUlOVF9NQVgsCi0gICAgLm1heF9z
ZWdyZWdhdGVkX29iamVjdF9zaXplID0gMCwKKyAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9y
X25vX3ZpZXdfY2FjaGUgPSAwLAorICAgIC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IDEw
MDAsCiAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBVSU5UX01BWCwKLSAgICAudmlld19j
YWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196
ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkKKyAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2Jq
ZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVf
Y2FwYWNpdHkKIH07CiAKIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEgaml0X3Jvb3RfZGF0YSA9
IHsKLSAgICAuc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlID0gJmppdF9zbWFsbF9iaXRm
aXRfcGFnZV9oZWFkZXJfdGFibGUsCi0gICAgLm1lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFi
bGUgPSAmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUKKyAgICAuc21hbGxfcGFn
ZV9oZWFkZXJfdGFibGUgPSAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAorICAgIC5tZWRp
dW1fcGFnZV9oZWFkZXJfdGFibGUgPSAmaml0X21lZGl1bV9wYWdlX2hlYWRlcl90YWJsZQogfTsK
IAogdm9pZCBqaXRfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKQEAgLTE0MiwzOSArMTQzLDcz
IEBAIHBhc19wYWdlX2Jhc2UqIGppdF9wYWdlX2hlYWRlcl9mb3JfYm91bmQKICAgICByZXR1cm4g
KHBhc19wYWdlX2Jhc2UqKXBhc19wdHJfaGFzaF9tYXBfZ2V0KCZkYXRhLT5wYWdlX2hlYWRlcl90
YWJsZSwgYm91bmRhcnkpLnZhbHVlOwogfQogCi12b2lkKiBqaXRfc21hbGxfYml0Zml0X2FsbG9j
YXRlX3BhZ2UoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2FsX21l
bW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCit2b2lkKiBqaXRfc21hbGxfc2VncmVnYXRl
ZF9hbGxvY2F0ZV9wYWdlKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19waHlz
aWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBwYXNfc2VncmVnYXRlZF9wYWdl
X3JvbGUgcm9sZSkKIHsKKyAgICBQQVNfQVNTRVJUKHJvbGUgPT0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9leGNsdXNpdmVfcm9sZSk7CiAgICAgUEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKICAgICBQQVNf
VU5VU0VEX1BBUkFNKHRyYW5zYWN0aW9uKTsKICAgICByZXR1cm4gKHZvaWQqKWFsbG9jYXRlX2Zy
b21fZnJlc2goCiAgICAgICAgIEpJVF9TTUFMTF9QQUdFX1NJWkUsIHBhc19hbGlnbm1lbnRfY3Jl
YXRlX3RyYWRpdGlvbmFsKEpJVF9TTUFMTF9QQUdFX1NJWkUpKS5iZWdpbjsKIH0KIAotcGFzX3Bh
Z2VfYmFzZSogaml0X3NtYWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIoCitwYXNfcGFnZV9i
YXNlKiBqaXRfc21hbGxfc2VncmVnYXRlZF9jcmVhdGVfcGFnZV9oZWFkZXIoCiAgICAgdm9pZCog
Ym91bmRhcnksIHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpCiB7CiAgICAgcGFzX3BhZ2VfYmFzZSogcmVzdWx0OwotICAgIFBBU19BU1NF
UlQoa2luZCA9PSBwYXNfc21hbGxfYml0Zml0X3BhZ2Vfa2luZCk7CisgICAgUEFTX0FTU0VSVChr
aW5kID09IHBhc19zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9wYWdlX2tpbmQpOwogICAgIHBh
c19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAg
IHJlc3VsdCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZV9hZGQoJmppdF9zbWFsbF9iaXRmaXRfcGFn
ZV9oZWFkZXJfdGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBK
SVRfU01BTExfUEFHRV9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJRy5zbWFsbF9iaXRm
aXRfY29uZmlnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5k
YXJ5KTsKKyAgICByZXN1bHQgPSBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKAorICAgICAgICAm
aml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAorICAgICAgICBKSVRfU01BTExfUEFHRV9TSVpF
LAorICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJ
Ry5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSwKKyAgICAgICAg
Ym91bmRhcnkpOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBqaXRfc21hbGxf
Yml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCi0gICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwgcGFz
X2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit2b2lkIGppdF9zbWFsbF9kZXN0
cm95X3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UsIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKQogewogICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25h
bGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgIHBhc19wYWdlX2hlYWRlcl90YWJsZV9yZW1v
dmUoJmppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCisgICAgcGFzX3BhZ2VfaGVh
ZGVyX3RhYmxlX3JlbW92ZSgmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSklUX1NNQUxMX1BBR0VfU0laRSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhZ2UpOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2Nv
bmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiB9CiAKK3Bhc19zZWdyZWdhdGVkX3No
YXJlZF9wYWdlX2RpcmVjdG9yeSogaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5X3NlbGVjdG9yKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgUEFTX1VOVVNFRF9QQVJB
TShoZWFwKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7CisgICAgUEFTX0FTU0VS
VCghIk5vdCBpbXBsZW1lbnRlZCIpOworICAgIHJldHVybiBOVUxMOworfQorCit2b2lkKiBqaXRf
c21hbGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCit7CisgICAg
UEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKHRyYW5zYWN0aW9u
KTsKKyAgICByZXR1cm4gKHZvaWQqKWFsbG9jYXRlX2Zyb21fZnJlc2goCisgICAgICAgIEpJVF9T
TUFMTF9QQUdFX1NJWkUsIHBhc19hbGlnbm1lbnRfY3JlYXRlX3RyYWRpdGlvbmFsKEpJVF9TTUFM
TF9QQUdFX1NJWkUpKS5iZWdpbjsKK30KKworcGFzX3BhZ2VfYmFzZSogaml0X3NtYWxsX2JpdGZp
dF9jcmVhdGVfcGFnZV9oZWFkZXIoCisgICAgdm9pZCogYm91bmRhcnksIHBhc19wYWdlX2tpbmQg
a2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit7CisgICAgcGFz
X3BhZ2VfYmFzZSogcmVzdWx0OworICAgIFBBU19BU1NFUlQoa2luZCA9PSBwYXNfc21hbGxfYml0
Zml0X3BhZ2Vfa2luZCk7CisgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVh
cF9sb2NrX2hvbGRfbW9kZSk7CisgICAgcmVzdWx0ID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2Fk
ZCgmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSklUX1NNQUxMX1BBR0VfU0laRSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9oZWFkZXJfc2l6ZShKSVRfSEVBUF9D
T05GSUcuc21hbGxfYml0Zml0X2NvbmZpZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib3VuZGFyeSk7CisgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9u
YWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2b2lk
KiBqaXRfbWVkaXVtX2JpdGZpdF9hbGxvY2F0ZV9wYWdlKAogICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQog
ewpAQCAtMTkwLDcgKzIyNSw3IEBAIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fYml0Zml0X2Ny
ZWF0ZV8KICAgICBwYXNfcGFnZV9iYXNlKiByZXN1bHQ7CiAgICAgUEFTX0FTU0VSVChraW5kID09
IHBhc19tZWRpdW1fYml0Zml0X3BhZ2Vfa2luZCk7CiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2Nv
bmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgcmVzdWx0ID0gcGFzX3BhZ2Vf
aGVhZGVyX3RhYmxlX2FkZCgmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCisg
ICAgcmVzdWx0ID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2FkZCgmaml0X21lZGl1bV9wYWdlX2hl
YWRlcl90YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpJVF9N
RURJVU1fUEFHRV9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJRy5tZWRpdW1fYml0Zml0
X2NvbmZpZyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZGFy
eSk7CkBAIC0xOTgsMTEgKzIzMywxMSBAQCBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX2JpdGZp
dF9jcmVhdGVfCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBqaXRfbWVkaXVtX2JpdGZp
dF9kZXN0cm95X3BhZ2VfaGVhZGVyKAordm9pZCBqaXRfbWVkaXVtX2Rlc3Ryb3lfcGFnZV9oZWFk
ZXIoCiAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpCiB7CiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVh
cF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX3JlbW92ZSgmaml0
X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCisgICAgcGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlX3JlbW92ZSgmaml0X21lZGl1bV9wYWdlX2hlYWRlcl90YWJsZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEpJVF9NRURJVU1fUEFHRV9TSVpFLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFnZSk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0
aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKQEAgLTI2OSwxNCArMzA0LDE0IEBAIHZvaWQq
IGppdF9wcmVwYXJlX3RvX2VudW1lcmF0ZShwYXNfZW51bWUKICAgICAgICAgICAgIHJlc3VsdCwK
ICAgICAgICAgICAgIGVudW1lcmF0b3IsCiAgICAgICAgICAgICAocGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlKilwYXNfZW51bWVyYXRvcl9yZWFkKAotICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsIHJv
b3RfZGF0YS0+c21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBzaXplb2YocGFzX3BhZ2Vf
aGVhZGVyX3RhYmxlKSkpKQorICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsIHJvb3RfZGF0YS0+
c21hbGxfcGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihwYXNfcGFnZV9oZWFkZXJfdGFibGUpKSkp
CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIAogICAgIGlmICghcGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2VudW1lcmF0b3JfZGF0YV9hZGRfcGFnZV9oZWFkZXJfdGFibGUoCiAgICAgICAgICAgICBy
ZXN1bHQsCiAgICAgICAgICAgICBlbnVtZXJhdG9yLAogICAgICAgICAgICAgKHBhc19wYWdlX2hl
YWRlcl90YWJsZSopcGFzX2VudW1lcmF0b3JfcmVhZCgKLSAgICAgICAgICAgICAgICBlbnVtZXJh
dG9yLCByb290X2RhdGEtPm1lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihw
YXNfcGFnZV9oZWFkZXJfdGFibGUpKSkpCisgICAgICAgICAgICAgICAgZW51bWVyYXRvciwgcm9v
dF9kYXRhLT5tZWRpdW1fcGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihwYXNfcGFnZV9oZWFkZXJf
dGFibGUpKSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7
CkBAIC0zMzEsNiArMzY2LDggQEAgdm9pZCBqaXRfaGVhcF9jb25maWdfYWRkX2ZyZXNoX21lbW9y
eShwYQogICAgICAgICAmaml0X2ZyZXNoX21lbW9yeV9oZWFwLCByYW5nZS5iZWdpbiwgcmFuZ2Uu
ZW5kLCBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJvLCAmY29uZmlnKTsKIH0KIAorUEFTX1NFR1JF
R0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVGSU5JVElPTlMoCisgICAgaml0X3Nt
YWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcsIEpJVF9IRUFQX0NPTkZJRy5zbWFsbF9zZWdyZWdh
dGVkX2NvbmZpZyk7CiBQQVNfQklURklUX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFRklO
SVRJT05TKAogICAgIGppdF9zbWFsbF9iaXRmaXRfcGFnZV9jb25maWcsIEpJVF9IRUFQX0NPTkZJ
Ry5zbWFsbF9iaXRmaXRfY29uZmlnKTsKIFBBU19CSVRGSVRfUEFHRV9DT05GSUdfU1BFQ0lBTEla
QVRJT05fREVGSU5JVElPTlMoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9qaXRfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg4NDA4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzYsMTIgKzM2LDE0IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotI2RlZmluZSBKSVRf
U01BTExfTUlOX0FMSUdOX1NISUZUIDJ1Ci0jZGVmaW5lIEpJVF9TTUFMTF9NSU5fQUxJR04gKDF1
IDw8IEpJVF9TTUFMTF9NSU5fQUxJR05fU0hJRlQpCisjZGVmaW5lIEpJVF9TTUFMTF9TRUdSRUdB
VEVEX01JTl9BTElHTl9TSElGVCA0dQorI2RlZmluZSBKSVRfU01BTExfU0VHUkVHQVRFRF9NSU5f
QUxJR04gKDF1IDw8IEpJVF9TTUFMTF9TRUdSRUdBVEVEX01JTl9BTElHTl9TSElGVCkKKyNkZWZp
bmUgSklUX1NNQUxMX0JJVEZJVF9NSU5fQUxJR05fU0hJRlQgMnUKKyNkZWZpbmUgSklUX1NNQUxM
X0JJVEZJVF9NSU5fQUxJR04gKDF1IDw8IEpJVF9TTUFMTF9CSVRGSVRfTUlOX0FMSUdOX1NISUZU
KQogI2RlZmluZSBKSVRfU01BTExfUEFHRV9TSVpFIDE2Mzg0dQogI2RlZmluZSBKSVRfU01BTExf
R1JBTlVMRV9TSVpFIDE2Mzg0dQotI2RlZmluZSBKSVRfTUVESVVNX01JTl9BTElHTl9TSElGVCA4
dQotI2RlZmluZSBKSVRfTUVESVVNX01JTl9BTElHTiAoMXUgPDwgSklUX01FRElVTV9NSU5fQUxJ
R05fU0hJRlQpCisjZGVmaW5lIEpJVF9NRURJVU1fQklURklUX01JTl9BTElHTl9TSElGVCA4dQor
I2RlZmluZSBKSVRfTUVESVVNX0JJVEZJVF9NSU5fQUxJR04gKDF1IDw8IEpJVF9NRURJVU1fQklU
RklUX01JTl9BTElHTl9TSElGVCkKICNkZWZpbmUgSklUX01FRElVTV9QQUdFX1NJWkUgMTMxMDcy
dQogI2lmIFBBU19BUk02NAogI2RlZmluZSBKSVRfTUVESVVNX0dSQU5VTEVfU0laRSAxNjM4NHUK
QEAgLTY2LDIzICs2OCwzMyBAQCBQQVNfQVBJIHZvaWQgaml0X3R5cGVfZHVtcChjb25zdCBwYXNf
aGVhCiAKIFBBU19BUEkgcGFzX3BhZ2VfYmFzZSogaml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFy
eV9yZW1vdGUocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsIHZvaWQqIGJvdW5kYXJ5KTsKIAot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9zbWFsbF9iaXRmaXRf
cGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5KTsKLXN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKiBqaXRfc21hbGxfYml0Zml0X2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRl
cihwYXNfcGFnZV9iYXNlKiBwYWdlKTsKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFn
ZV9iYXNlKiBqaXRfc21hbGxfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5
KTsKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBqaXRfc21hbGxfYm91bmRhcnlfZm9y
X3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UpOworUEFTX0FQSSB2b2lkKiBqaXRfc21h
bGxfc2VncmVnYXRlZF9hbGxvY2F0ZV9wYWdlKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3JvbGUgcm9sZSk7CitQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9zbWFs
bF9zZWdyZWdhdGVkX2NyZWF0ZV9wYWdlX2hlYWRlcigKKyAgICB2b2lkKiBib3VuZGFyeSwgcGFz
X3BhZ2Vfa2luZCBraW5kLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CitQQVNfQVBJIHZvaWQgaml0X3NtYWxsX2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCisgICAgcGFzX3Bh
Z2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwor
UEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkqIGppdF9zbWFsbF9z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvcigKKyAgICBwYXNfc2VncmVn
YXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KTsKKworUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVDTEFSQVRJ
T05TKGppdF9zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKTsKKwogUEFTX0FQSSB2b2lkKiBq
aXRfc21hbGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOwogUEFT
X0FQSSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfYml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcigK
ICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX3BhZ2Vfa2luZCBraW5kLCBwYXNfbG9ja19ob2xkX21v
ZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci1QQVNfQVBJIHZvaWQgaml0X3NtYWxsX2JpdGZpdF9k
ZXN0cm95X3BhZ2VfaGVhZGVyKAotICAgIHBhc19wYWdlX2Jhc2UqIHBhZ2UsIHBhc19sb2NrX2hv
bGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogUEFTX0JJVEZJVF9QQUdFX0NPTkZJR19T
UEVDSUFMSVpBVElPTl9ERUNMQVJBVElPTlMoaml0X3NtYWxsX2JpdGZpdF9wYWdlX2NvbmZpZyk7
CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX2Jp
dGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkpOworc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fcGFnZV9oZWFkZXJfZm9y
X2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5KTsKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KiBqaXRfbWVkaXVtX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlcihwYXNfcGFnZV9iYXNlKiBwYWdl
KTsKIFBBU19BUEkgdm9pZCogaml0X21lZGl1bV9iaXRmaXRfYWxsb2NhdGVfcGFnZSgKICAgICBw
YXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9u
KiB0cmFuc2FjdGlvbik7CiBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fYml0Zml0
X2NyZWF0ZV9wYWdlX2hlYWRlcigKICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX3BhZ2Vfa2luZCBr
aW5kLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci1QQVNfQVBJIHZv
aWQgaml0X21lZGl1bV9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlcigKK1BBU19BUEkgdm9pZCBq
aXRfbWVkaXVtX2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCiAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwg
cGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCiBQQVNfQklURklUX1BB
R0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFUSU9OUyhqaXRfbWVkaXVtX2JpdGZpdF9w
YWdlX2NvbmZpZyk7CkBAIC0xMjEsMTYgKzEzMywxNiBAQCBQQVNfSEVBUF9DT05GSUdfU1BFQ0lB
TElaQVRJT05fREVDTEFSQVRJCiAgICAgICAgICAgICAuaGVhcF9jb25maWdfcHRyID0gJmppdF9o
ZWFwX2NvbmZpZywgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmlnX3B0ciA9ICZqaXRfaGVhcF9j
b25maWcudmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9jb25maWcuYmFzZSwgXAogICAgICAg
ICAgICAgLnBhZ2VfY29uZmlnX2tpbmQgPSBwYXNfcGFnZV9jb25maWdfa2luZF9iaXRmaXQsIFwK
LSAgICAgICAgICAgIC5taW5fYWxpZ25fc2hpZnQgPSBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNl
ICMjIF9NSU5fQUxJR05fU0hJRlQsIFwKKyAgICAgICAgICAgIC5taW5fYWxpZ25fc2hpZnQgPSBK
SVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMjIF9CSVRGSVRfTUlOX0FMSUdOX1NISUZULCBcCiAg
ICAgICAgICAgICAucGFnZV9zaXplID0gSklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfUEFH
RV9TSVpFLCBcCiAgICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0gSklUXyAjIyB2YXJpYW50X3Vw
cGVyY2FzZSAjIyBfR1JBTlVMRV9TSVpFLCBcCiAgICAgICAgICAgICAubWF4X29iamVjdF9zaXpl
ID0gXAotICAgICAgICAgICAgICAgIFBBU19CSVRGSVRfTUFYX0ZSRUVfTUFYX1ZBTElEIDw8IEpJ
VF8gIyMgdmFyaWFudF91cHBlcmNhc2UgIyMgX01JTl9BTElHTl9TSElGVCwgXAotICAgICAgICAg
ICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2Ug
IyMgX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnksIFwKLSAgICAgICAgICAgIC5ib3Vu
ZGFyeV9mb3JfcGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlhbnRfbG93ZXJjYXNlICMjIF9iaXRm
aXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyLCBcCisgICAgICAgICAgICAgICAgUEFTX0JJVEZJ
VF9NQVhfRlJFRV9NQVhfVkFMSUQgPDwgSklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfQklU
RklUX01JTl9BTElHTl9TSElGVCwgXAorICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3Vu
ZGFyeSA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX3BhZ2VfaGVhZGVyX2Zvcl9ib3Vu
ZGFyeSwgXAorICAgICAgICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciA9IGppdF8gIyMg
dmFyaWFudF9sb3dlcmNhc2UgIyMgX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciwgXAogICAgICAg
ICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUgPSBqaXRfcGFnZV9oZWFkZXJf
Zm9yX2JvdW5kYXJ5X3JlbW90ZSwgXAogICAgICAgICAgICAgLmNyZWF0ZV9wYWdlX2hlYWRlciA9
IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIs
IFwKLSAgICAgICAgICAgIC5kZXN0cm95X3BhZ2VfaGVhZGVyID0gaml0XyAjIyB2YXJpYW50X2xv
d2VyY2FzZSAjIyBfYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIgXAorICAgICAgICAgICAgLmRl
c3Ryb3lfcGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlhbnRfbG93ZXJjYXNlICMjIF9kZXN0cm95
X3BhZ2VfaGVhZGVyIFwKICAgICAgICAgfSwgXAogICAgICAgICAudmFyaWFudCA9IHBhc18gIyMg
dmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LCBcCiAgICAg
ICAgIC5raW5kID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2ppdF8gIyMgdmFyaWFudF9s
b3dlcmNhc2UgIyMgX2JpdGZpdCwgXApAQCAtMTQ3LDExICsxNTksNDMgQEAgUEFTX0hFQVBfQ09O
RklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFUSQogICAgICAgICAuZ2V0X3R5cGVfc2l6ZSA9IGpp
dF90eXBlX3NpemUsIFwKICAgICAgICAgLmdldF90eXBlX2FsaWdubWVudCA9IGppdF90eXBlX2Fs
aWdubWVudCwgXAogICAgICAgICAuZHVtcF90eXBlID0gaml0X3R5cGVfZHVtcCwgXAotICAgICAg
ICAubGFyZ2VfYWxpZ25tZW50ID0gSklUX1NNQUxMX01JTl9BTElHTiwgXAorICAgICAgICAubGFy
Z2VfYWxpZ25tZW50ID0gUEFTX01JTl9DT05TVChKSVRfU01BTExfU0VHUkVHQVRFRF9NSU5fQUxJ
R04sIEpJVF9TTUFMTF9CSVRGSVRfTUlOX0FMSUdOKSwgXAogICAgICAgICAuc21hbGxfc2VncmVn
YXRlZF9jb25maWcgPSB7IFwKICAgICAgICAgICAgIC5iYXNlID0geyBcCi0gICAgICAgICAgICAg
ICAgLmlzX2VuYWJsZWQgPSBmYWxzZSBcCi0gICAgICAgICAgICB9IFwKKyAgICAgICAgICAgICAg
ICAuaXNfZW5hYmxlZCA9IHRydWUsIFwKKyAgICAgICAgICAgICAgICAuaGVhcF9jb25maWdfcHRy
ID0gJmppdF9oZWFwX2NvbmZpZywgXAorICAgICAgICAgICAgICAgIC5wYWdlX2NvbmZpZ19wdHIg
PSAmaml0X2hlYXBfY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UsIFwKKyAgICAg
ICAgICAgICAgICAucGFnZV9jb25maWdfa2luZCA9IHBhc19wYWdlX2NvbmZpZ19raW5kX3NlZ3Jl
Z2F0ZWQsIFwKKyAgICAgICAgICAgICAgICAubWluX2FsaWduX3NoaWZ0ID0gSklUX1NNQUxMX1NF
R1JFR0FURURfTUlOX0FMSUdOX1NISUZULCBcCisgICAgICAgICAgICAgICAgLnBhZ2Vfc2l6ZSA9
IEpJVF9TTUFMTF9QQUdFX1NJWkUsIFwKKyAgICAgICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0g
SklUX1NNQUxMX0dSQU5VTEVfU0laRSwgXAorICAgICAgICAgICAgICAgIC5tYXhfb2JqZWN0X3Np
emUgPSBQQVNfTUFYX09CSkVDVF9TSVpFKEpJVF9TTUFMTF9QQUdFX1NJWkUpLCBcCisgICAgICAg
ICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9IGppdF9zbWFsbF9wYWdlX2hlYWRl
cl9mb3JfYm91bmRhcnksIFwKKyAgICAgICAgICAgICAgICAuYm91bmRhcnlfZm9yX3BhZ2VfaGVh
ZGVyID0gaml0X3NtYWxsX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciwgXAorICAgICAgICAgICAg
ICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlID0gaml0X3BhZ2VfaGVhZGVyX2Zv
cl9ib3VuZGFyeV9yZW1vdGUsIFwKKyAgICAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVy
ID0gaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfY3JlYXRlX3BhZ2VfaGVhZGVyLCBcCisgICAgICAgICAg
ICAgICAgLmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBqaXRfc21hbGxfZGVzdHJveV9wYWdlX2hlYWRl
ciBcCisgICAgICAgICAgICB9LCBcCisgICAgICAgICAgICAudmFyaWFudCA9IHBhc19zbWFsbF9z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIFwKKyAgICAgICAgICAgIC5raW5kID0gcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9qaXRfc21hbGxfc2VncmVnYXRlZCwgXAorICAg
ICAgICAgICAgLndhc3RlYWdlX2hhbmRpY2FwID0gMS4sIFwKKyAgICAgICAgICAgIC5zaGFyaW5n
X3NoaWZ0ID0gUEFTX1NNQUxMX1NIQVJJTkdfU0hJRlQsIFwKKyAgICAgICAgICAgIC5udW1fYWxs
b2NfYml0cyA9IFBBU19CQVNJQ19TRUdSRUdBVEVEX05VTV9BTExPQ19CSVRTKEpJVF9TTUFMTF9T
RUdSRUdBVEVEX01JTl9BTElHTl9TSElGVCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX1NNQUxMX1BBR0VfU0la
RSksIFwKKyAgICAgICAgICAgIC5zaGFyZWRfcGF5bG9hZF9vZmZzZXQgPSAwLCBcCisgICAgICAg
ICAgICAuZXhjbHVzaXZlX3BheWxvYWRfb2Zmc2V0ID0gMCwgXAorICAgICAgICAgICAgLnNoYXJl
ZF9wYXlsb2FkX3NpemUgPSAwLCBcCisgICAgICAgICAgICAuZXhjbHVzaXZlX3BheWxvYWRfc2l6
ZSA9IEpJVF9TTUFMTF9QQUdFX1NJWkUsIFwKKyAgICAgICAgICAgIC5zaGFyZWRfbG9nZ2luZ19t
b2RlID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX25vX2xvZ2dpbmdfbW9kZSwgXAorICAg
ICAgICAgICAgLmV4Y2x1c2l2ZV9sb2dnaW5nX21vZGUgPSBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fc2l6ZV9vYmxpdmlvdXNfbG9nZ2luZ19tb2RlLCBcCisgICAgICAgICAgICAudXNlX3Jl
dmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAorICAgICAgICAgICAgLmNoZWNrX2Rl
YWxsb2NhdGlvbiA9IGZhbHNlLCBcCisgICAgICAgICAgICAuZW5hYmxlX2VtcHR5X3dvcmRfZWxp
Z2liaWxpdHlfb3B0aW1pemF0aW9uX2Zvcl9zaGFyZWQgPSBmYWxzZSwgXAorICAgICAgICAgICAg
LmVuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbl9mb3JfZXhjbHVzaXZl
ID0gdHJ1ZSwgXAorICAgICAgICAgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gdHJ1ZSwgXAorICAg
ICAgICAgICAgLnBhZ2VfYWxsb2NhdG9yID0gaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfYWxsb2NhdGVf
cGFnZSwgXAorICAgICAgICAgICAgLnNoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvciA9IGpp
dF9zbWFsbF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvciwgXAorICAg
ICAgICAgICAgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKGppdF9z
bWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKSBcCiAgICAgICAgIH0sIFwKICAgICAgICAgLm1l
ZGl1bV9zZWdyZWdhdGVkX2NvbmZpZyA9IHsgXAogICAgICAgICAgICAgLmJhc2UgPSB7IFwKQEAg
LTE5MCwzMyArMjM0LDMzIEBAIFBBU19BUEkgZXh0ZXJuIHBhc19oZWFwX2NvbmZpZyBqaXRfaGVh
cF8KIFBBU19BUEkgZXh0ZXJuIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwIGppdF9mcmVzaF9t
ZW1vcnlfaGVhcDsKIAogUEFTX0FQSSBleHRlcm4gcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFn
ZV9zaGFyaW5nX2NhY2hlIGppdF9sYXJnZV9mcmVzaF9tZW1vcnlfaGVhcDsKLVBBU19BUEkgZXh0
ZXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZSBqaXRfc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3Rh
YmxlOwotUEFTX0FQSSBleHRlcm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9tZWRpdW1fYml0
Zml0X3BhZ2VfaGVhZGVyX3RhYmxlOworUEFTX0FQSSBleHRlcm4gcGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlIGppdF9zbWFsbF9wYWdlX2hlYWRlcl90YWJsZTsKK1BBU19BUEkgZXh0ZXJuIHBhc19wYWdl
X2hlYWRlcl90YWJsZSBqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlOwogUEFTX0FQSSBleHRl
cm4gcGFzX2hlYXBfcnVudGltZV9jb25maWcgaml0X2hlYXBfcnVudGltZV9jb25maWc7CiBQQVNf
QVBJIGV4dGVybiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhIGppdF9yb290X2RhdGE7CiAKLXN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfYml0Zml0X3Bh
Z2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFyeSkKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5
KHZvaWQqIGJvdW5kYXJ5KQogewogICAgIHJldHVybiBwYXNfcGFnZV9oZWFkZXJfdGFibGVfZ2V0
X2Zvcl9ib3VuZGFyeSgKLSAgICAgICAgJmppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFi
bGUsIEpJVF9TTUFMTF9QQUdFX1NJWkUsIGJvdW5kYXJ5KTsKKyAgICAgICAgJmppdF9zbWFsbF9w
YWdlX2hlYWRlcl90YWJsZSwgSklUX1NNQUxMX1BBR0VfU0laRSwgYm91bmRhcnkpOwogfQogCi1z
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaml0X3NtYWxsX2JpdGZpdF9ib3VuZGFyeV9m
b3JfcGFnZV9oZWFkZXIocGFzX3BhZ2VfYmFzZSogcGFnZSkKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBqaXRfc21hbGxfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jh
c2UqIHBhZ2UpCiB7CiAgICAgcmV0dXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRfYm91bmRh
cnkoCi0gICAgICAgICZqaXRfc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfU01B
TExfUEFHRV9TSVpFLCBwYWdlKTsKKyAgICAgICAgJmppdF9zbWFsbF9wYWdlX2hlYWRlcl90YWJs
ZSwgSklUX1NNQUxMX1BBR0VfU0laRSwgcGFnZSk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91
bmRhcnkodm9pZCogYm91bmRhcnkpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3BhZ2Vf
YmFzZSogaml0X21lZGl1bV9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkp
CiB7CiAgICAgcmV0dXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRfZm9yX2JvdW5kYXJ5KAot
ICAgICAgICAmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsIEpJVF9NRURJVU1f
UEFHRV9TSVpFLCBib3VuZGFyeSk7CisgICAgICAgICZqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3Rh
YmxlLCBKSVRfTUVESVVNX1BBR0VfU0laRSwgYm91bmRhcnkpOwogfQogCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCogaml0X21lZGl1bV9iaXRmaXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVh
ZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
aml0X21lZGl1bV9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIocGFzX3BhZ2VfYmFzZSogcGFnZSkK
IHsKICAgICByZXR1cm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9ib3VuZGFyeSgKLSAgICAg
ICAgJmppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfTUVESVVNX1BBR0Vf
U0laRSwgcGFnZSk7CisgICAgICAgICZqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRf
TUVESVVNX1BBR0VfU0laRSwgcGFnZSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBw
YXNfcGFnZV9iYXNlKiBqaXRfaGVhcF9jb25maWdfcGFnZV9oZWFkZXIodWludHB0cl90IGJlZ2lu
KQpAQCAtMjI0LDEyICsyNjgsMTIgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdl
X2Jhc2UqIAogICAgIHBhc19wYWdlX2Jhc2UqIHJlc3VsdDsKIAogICAgIHJlc3VsdCA9IHBhc19w
YWdlX2hlYWRlcl90YWJsZV9nZXRfZm9yX2FkZHJlc3MoCi0gICAgICAgICZqaXRfc21hbGxfYml0
Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfU01BTExfUEFHRV9TSVpFLCAodm9pZCopYmVnaW4p
OworICAgICAgICAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfU01BTExfUEFHRV9T
SVpFLCAodm9pZCopYmVnaW4pOwogICAgIGlmIChyZXN1bHQpCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAKICAgICByZXR1cm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9mb3JfYWRkcmVzcygK
LSAgICAgICAgJmppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfTUVESVVN
X1BBR0VfU0laRSwgKHZvaWQqKWJlZ2luKTsKKyAgICAgICAgJmppdF9tZWRpdW1fcGFnZV9oZWFk
ZXJfdGFibGUsIEpJVF9NRURJVU1fUEFHRV9TSVpFLCAodm9pZCopYmVnaW4pOwogfQogCiBQQVNf
QVBJIHZvaWQgaml0X2hlYXBfY29uZmlnX2FkZF9mcmVzaF9tZW1vcnkocGFzX3JhbmdlIHJhbmdl
KTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZp
Z19yb290X2RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9qaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmgJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIx
LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNiw4ICszNiw4IEBAIHR5cGVkZWYgc3RydWN0IGppdF9oZWFwX2Nv
bmZpZ19yb290X2RhdGEKIHR5cGVkZWYgc3RydWN0IHBhc19wYWdlX2hlYWRlcl90YWJsZSBwYXNf
cGFnZV9oZWFkZXJfdGFibGU7CiAKIHN0cnVjdCBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhIHsK
LSAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIHNtYWxsX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJs
ZTsKLSAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIG1lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJf
dGFibGU7CisgICAgcGFzX3BhZ2VfaGVhZGVyX3RhYmxlKiBzbWFsbF9wYWdlX2hlYWRlcl90YWJs
ZTsKKyAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIG1lZGl1bV9wYWdlX2hlYWRlcl90YWJsZTsK
IH07CiAKIFBBU19FTkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwkocmV2aXNpb24gMjg4NDA4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmMJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIwLTIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC02MCw3ICs2MCw4IEBAIHBhc19iaXRmaXRfaGVhcCogcGFzX2JpdGZpdF9o
ZWFwX2NyZWF0ZSgKIH0KIAogcGFzX2JpdGZpdF92YXJpYW50X3NlbGVjdGlvbiBwYXNfYml0Zml0
X2hlYXBfc2VsZWN0X3ZhcmlhbnQoc2l6ZV90IHJlcXVlc3RlZF9vYmplY3Rfc2l6ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtNzksNyArODAsNyBAQCBwYXNfYml0
Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIHBhc19iaXRmaXRfCiAgICAgICAgIHNpemVfdCBvYmplY3Rf
c2l6ZTsKIAogICAgICAgICBwYWdlX2NvbmZpZyA9ICpwYXNfaGVhcF9jb25maWdfYml0Zml0X3Bh
Z2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudChjb25maWcsIHZhcmlhbnQpOwotICAgICAgICBpZiAo
IXBhc19iaXRmaXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZChwYWdlX2NvbmZpZykpCisgICAgICAg
IGlmICghcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKHBhZ2VfY29uZmlnLCBydW50
aW1lX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAodmVyYm9z
ZSkKQEAgLTEyNSw3ICsxMjYsOCBAQCBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIHBhc19i
aXRmaXRfCiB2b2lkIHBhc19iaXRmaXRfaGVhcF9jb25zdHJ1Y3RfYW5kX2luc2VydF9zaXplX2Ns
YXNzKHBhc19iaXRmaXRfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBvYmplY3Rfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyog
Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpCiB7CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtMTM5LDcgKzE0MSw3IEBA
IHZvaWQgcGFzX2JpdGZpdF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXIKICAgICAgICAgICAgICAg
ICBoZWFwLCBzaXplX2NsYXNzLCBvYmplY3Rfc2l6ZSk7CiAgICAgfQogCi0gICAgYmVzdCA9IHBh
c19iaXRmaXRfaGVhcF9zZWxlY3RfdmFyaWFudChvYmplY3Rfc2l6ZSwgY29uZmlnKTsKKyAgICBi
ZXN0ID0gcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KG9iamVjdF9zaXplLCBjb25maWcs
IHJ1bnRpbWVfY29uZmlnKTsKIAogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKICAg
ICBpZiAodmVyYm9zZSkgewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzMsMTAgKzMzLDEyIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19i
aXRmaXRfaGVhcDsKIHN0cnVjdCBwYXNfaGVhcF9jb25maWc7CitzdHJ1Y3QgcGFzX2hlYXBfcnVu
dGltZV9jb25maWc7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiBzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfaGVhcCBw
YXNfYml0Zml0X2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9jb25maWcgcGFzX2hlYXBf
Y29uZmlnOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWcgcGFzX2hlYXBf
cnVudGltZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIApAQCAtNjEsMTIgKzYzLDE1IEBA
IHR5cGVkZWYgc3RydWN0IHsKIH0gcGFzX2JpdGZpdF92YXJpYW50X3NlbGVjdGlvbjsKIAogUEFT
X0FQSSBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uCi1wYXNfYml0Zml0X2hlYXBfc2VsZWN0
X3ZhcmlhbnQoc2l6ZV90IG9iamVjdF9zaXplLCBwYXNfaGVhcF9jb25maWcqIGNvbmZpZyk7Citw
YXNfYml0Zml0X2hlYXBfc2VsZWN0X3ZhcmlhbnQoc2l6ZV90IG9iamVjdF9zaXplLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1l
X2NvbmZpZyk7CiAKIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0X2hlYXBfY29uc3RydWN0X2FuZF9p
bnNlcnRfc2l6ZV9jbGFzcyhwYXNfYml0Zml0X2hlYXAqIGhlYXAsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9z
aXplX2NsYXNzKiBzaXplX2NsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9iamVjdF9zaXplLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpOwogCiBQQVNfQVBJIHBh
c19oZWFwX3N1bW1hcnkgcGFzX2JpdGZpdF9oZWFwX2NvbXB1dGVfc3VtbWFyeShwYXNfYml0Zml0
X2hlYXAqIGhlYXApOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X3BhZ2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCShyZXZpc2lvbiAyODg0MDgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29u
ZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChjKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAicGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmgiCiAjaW5jbHVkZSAicGFzX2JpdHZlY3Rvci5oIgog
I2luY2x1ZGUgInBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCIKKyNpbmNsdWRlICJw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX2Jhc2VfY29uZmln
LmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgi
CkBAIC0xMzEsMTAgKzEzMiwxOCBAQCBQQVNfQVBJIGV4dGVybiBib29sIHBhc19tYXJnZV9iaXRm
aXRfcGFnCiAgICAgUEFTX0FQSSB2b2lkIGxvd2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAjIyBf
c3BlY2lhbGl6ZWRfcGFnZV9zaHJpbmtfd2l0aF9wYWdlKCBcCiAgICAgICAgIHBhc19iaXRmaXRf
cGFnZSogcGFnZSwgdWludHB0cl90IGJlZ2luLCBzaXplX3QgbmV3X3NpemUpCiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQocGFzX2JpdGZpdF9w
YWdlX2NvbmZpZyBjb25maWcpCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZ19pc19lbmFibGVkKHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmlnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9ydW50
aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpCiB7CiAgICAgaWYgKCFjb25maWcuYmFzZS5pc19l
bmFibGVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLyogRG9pbmcgdGhpcyBjaGVjayBo
ZXJlIGlzIG5vdCBzdXBlciBuZWNlc3NhcnksIGJ1dCBpdCdzIHNvcnQgb2YgbmljZSBmb3IgY2Fz
ZXMgd2hlcmUgd2UgaGF2ZSBhIGhlYXAKKyAgICAgICB0aGF0IHNvbWV0aW1lcyB1c2VzIGJpdGZp
dCBleGNsdXNpdmVseSBvciBzb21ldGltZXMgdXNlcyBzZWdyZWdhdGVkIGV4Y2x1c2l2ZWx5IGFu
ZCB0aGF0J3Mgc2VsZWN0ZWQKKyAgICAgICBieSBzZWxlY3Rpbmcgb3IgbXV0YXRpbmcgcnVudGlt
ZV9jb25maWdzLiBUaGlzIGlzX2VuYWJsZWQgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgYXMgcGFy
dCBvZiB0aGUgbWF0aAorICAgICAgIHRoYXQgc2V0cyB1cCBzaXplIGNsYXNzZXMsIGF0IGxlYXN0
IGZvciBub3csIHNvIHRoZSBpbXBsaWNhdGlvbnMgb2Ygbm90IGRvaW5nIHRoaXMgY2hlY2sgYXJl
IHJhdGhlcgorICAgICAgIHRpbnkuICovCisgICAgaWYgKCFydW50aW1lX2NvbmZpZy0+bWF4X2Jp
dGZpdF9vYmplY3Rfc2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHN3aXRjaCAoY29u
ZmlnLnZhcmlhbnQpIHsKICAgICBjYXNlIHBhc19zbWFsbF9iaXRmaXRfcGFnZV9jb25maWdfdmFy
aWFudDoKICAgICAgICAgcmV0dXJuIHBhc19zbWFsbF9iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFu
dF9pc19lbmFibGVkX292ZXJyaWRlOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzA1LDYgKzMwNSwyMyBAQCBwYXNfaGVhcF9jb25maWdfYml0Zml0X3BhZ2Vf
Y29uZmlnX2Zvcl92CiAgICAgcmV0dXJuIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnOwogfQog
CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19oZWFwX2NvbmZpZ19zZWdyZWdh
dGVkX2hlYXBfbWluX2FsaWduX3NoaWZ0KHBhc19oZWFwX2NvbmZpZyBjb25maWcpCit7CisgICAg
c2l6ZV90IHJlc3VsdDsKKyAgICByZXN1bHQgPSBTSVpFX01BWDsKKyAgICBpZiAoY29uZmlnLnNt
YWxsX2JpdGZpdF9jb25maWcuYmFzZS5pc19lbmFibGVkKQorICAgICAgICByZXN1bHQgPSBQQVNf
TUlOKHJlc3VsdCwgY29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hp
ZnQpOworICAgIGlmIChjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5pc19lbmFi
bGVkKQorICAgICAgICByZXN1bHQgPSBQQVNfTUlOKHJlc3VsdCwgY29uZmlnLnNtYWxsX3NlZ3Jl
Z2F0ZWRfY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0KTsKKyAgICBQQVNfQVNTRVJUKHJlc3Vs
dCAhPSBTSVpFX01BWCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHNpemVfdCBwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9oZWFwX21pbl9hbGln
bihwYXNfaGVhcF9jb25maWcgY29uZmlnKQoreworICAgIHJldHVybiAoc2l6ZV90KTEgPDwgcGFz
X2hlYXBfY29uZmlnX3NlZ3JlZ2F0ZWRfaGVhcF9taW5fYWxpZ25fc2hpZnQoY29uZmlnKTsKK30K
KwogLyogUmV0dXJucyB0cnVlIGlmIHdlIHdlcmUgdGhlIGZpcnN0IHRvIGFjdGl2ZSBpdC4gTXVz
dCBob2xkIHRoZSBoZWFwIGxvY2sgdG8gY2FsbCB0aGlzLiBUaGlzIGlzCiAgICBwZXJtaXNzaXZl
IG9mIHJlY3Vyc2l2ZSBpbml0aWFsaXphdGlvbjogaW4gdGhhdCBjYXNlLCBpdCB3aWxsIGp1c3Qg
cHJldGVuZCB0aGF0IHRoZSBjb25maWcgaXMKICAgIGFscmVhZHkgaW5pdGlhbGl6ZWQuICovCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFw
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcC5jCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDcgKzUyLDggQEAgc3RhdGljIHZvaWQgY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCAqY2FjaGVkX2luZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB3aGVyZSk7CiAKLXN0YXRpYyBz
aXplX3QgbWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVhcF9jb25maWcqIGNv
bmZpZykKK3N0YXRpYyBzaXplX3QgbWluX2FsaWduX2Zvcl9oZWFwKHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25m
aWcqIGNvbmZpZykKIHsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50IHNl
Z3JlZ2F0ZWRfdmFyaWFudDsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQgYml0
Zml0X3ZhcmlhbnQ7CkBAIC02MCw3ICs2MSw3IEBAIHN0YXRpYyBzaXplX3QgbWluX29iamVjdF9z
aXplX2Zvcl9oZWFwX2MKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2Vf
Y29uZmlnOwogICAgICAgICBwYWdlX2NvbmZpZyA9CiAgICAgICAgICAgICBwYXNfaGVhcF9jb25m
aWdfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoY29uZmlnLCBzZWdyZWdh
dGVkX3ZhcmlhbnQpOwotICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lz
X2VuYWJsZWQoKnBhZ2VfY29uZmlnKSkKKyAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19pc19lbmFibGVkKCpwYWdlX2NvbmZpZywgaGVhcC0+cnVudGltZV9jb25maWcpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19taW5fYWxpZ24oKnBhZ2VfY29uZmlnKTsKICAgICB9CkBAIC03MCw3ICs3MSw3IEBA
IHN0YXRpYyBzaXplX3QgbWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2MKICAgICAgICAgcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CiAgICAgICAgIHBhZ2VfY29uZmlnID0KICAg
ICAgICAgICAgIHBhc19oZWFwX2NvbmZpZ19iaXRmaXRfcGFnZV9jb25maWdfcHRyX2Zvcl92YXJp
YW50KGNvbmZpZywgYml0Zml0X3ZhcmlhbnQpOwotICAgICAgICBpZiAoIXBhc19iaXRmaXRfcGFn
ZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcpKQorICAgICAgICBpZiAoIXBhc19iaXRm
aXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcsIGhlYXAtPnJ1bnRpbWVfY29u
ZmlnKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICByZXR1cm4gcGFzX3BhZ2VfYmFz
ZV9jb25maWdfbWluX2FsaWduKHBhZ2VfY29uZmlnLT5iYXNlKTsKICAgICB9CkBAIC03OSw2ICs4
MCwxMiBAQCBzdGF0aWMgc2l6ZV90IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jCiAgICAgcmV0
dXJuIGNvbmZpZy0+bGFyZ2VfYWxpZ25tZW50OwogfQogCitzdGF0aWMgc2l6ZV90IG1pbl9vYmpl
Y3Rfc2l6ZV9mb3JfaGVhcChwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCit7Cisg
ICAgcmV0dXJuIG1pbl9hbGlnbl9mb3JfaGVhcChoZWFwLCBjb25maWcpOworfQorCiBzdGF0aWMg
c2l6ZV90IG1heF9vYmplY3Rfc2l6ZV9mb3JfcGFnZV9jb25maWcocGFzX2hlYXAqIHBhcmVudF9o
ZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19w
YWdlX2Jhc2VfY29uZmlnKiBwYWdlX2NvbmZpZykKIHsKQEAgLTk4LDkgKzEwNSw5IEBAIHN0YXRp
YyBzaXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9wYWdlX2MKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1zdGF0aWMgc2l6ZV90IG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplX2Zvcl9oZWFwX2Nv
bmZpZyhwYXNfaGVhcCogcGFyZW50X2hlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWcpCitzdGF0aWMgc2l6ZV90IG1heF9zZWdyZWdhdGVkX29i
amVjdF9zaXplX2Zvcl9oZWFwKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWcpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogICAgIApAQCAtMTExLDcgKzExOCw3IEBAIHN0YXRpYyBzaXplX3QgbWF4X3Nl
Z3JlZ2F0ZWRfb2JqZWN0X3NpemUKICAgICAgICAgc2l6ZV90IHJlc3VsdDsKICAgICAgICAgCiAg
ICAgICAgIHBhZ2VfY29uZmlnID0gcGFzX2hlYXBfY29uZmlnX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfcHRyX2Zvcl92YXJpYW50KGNvbmZpZywgdmFyaWFudCk7Ci0gICAgICAgIGlmICghcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcpKQorICAgICAgICBp
ZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQoKnBhZ2VfY29uZmlnLCBo
ZWFwLT5ydW50aW1lX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBt
YXhfc2l6ZV9wZXJfY29uZmlnID0gbWF4X29iamVjdF9zaXplX2Zvcl9wYWdlX2NvbmZpZyhwYXJl
bnRfaGVhcCwgJnBhZ2VfY29uZmlnLT5iYXNlKTsKQEAgLTEyNSw5ICsxMzIsOSBAQCBzdGF0aWMg
c2l6ZV90IG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0
YXRpYyBzaXplX3QgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcocGFzX2hl
YXAqIHBhcmVudF9oZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNv
bmZpZykKK3N0YXRpYyBzaXplX3QgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcChwYXNf
aGVhcCogcGFyZW50X2hlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKIHsKICAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCkBAIC0xNDUsNyArMTUy
LDcgQEAgc3RhdGljIHNpemVfdCBtYXhfYml0Zml0X29iamVjdF9zaXplX2ZvcgogICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2Nv
bmZpZy0+a2luZCkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX2lzX2VuYWJsZWQoKnBhZ2VfY29uZmlnKSkgeworICAgICAgICBpZiAoIXBhc19iaXRm
aXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcsIGhlYXAtPnJ1bnRpbWVfY29u
ZmlnKSkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgICAgICAgICBwYXNf
bG9nKCJOb3QgY29uc2lkZXJpbmcgJXMgYmVjYXVzZSBpdCdzIGRpc2FibGVkLlxuIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5n
KHBhZ2VfY29uZmlnLT5raW5kKSk7CkBAIC0xODIsMTIgKzE4OSwxMiBAQCBzdGF0aWMgc2l6ZV90
IG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBz
aXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVhcCogcGFyZW50X2hl
YXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKK3N0YXRpYyBzaXplX3QgbWF4X29i
amVjdF9zaXplX2Zvcl9oZWFwKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZp
ZykKIHsKLSAgICByZXR1cm4gUEFTX01BWChtYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZV9mb3Jf
aGVhcF9jb25maWcocGFyZW50X2hlYXAsIGhlYXAsIGNvbmZpZyksCi0gICAgICAgICAgICAgICAg
ICAgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcocGFyZW50X2hlYXAsIGhl
YXAsIGNvbmZpZykpOworICAgIHJldHVybiBQQVNfTUFYKG1heF9zZWdyZWdhdGVkX29iamVjdF9z
aXplX2Zvcl9oZWFwKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcpLAorICAgICAgICAgICAgICAg
ICAgIG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yX2hlYXAocGFyZW50X2hlYXAsIGhlYXAsIGNv
bmZpZykpOwogfQogCiB2b2lkIHBhc19zZWdyZWdhdGVkX2hlYXBfY29uc3RydWN0KHBhc19zZWdy
ZWdhdGVkX2hlYXAqIHNlZ3JlZ2F0ZWRfaGVhcCwKQEAgLTg0Nyw3ICs4NTQsNyBAQCBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kCiAKICAgICBwYXNfaGVhcF9sb2NrX2Fz
c2VydF9oZWxkKCk7CiAgICAgCi0gICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXpl
ID49IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcoY29uZmlnKSk7CisgICAgUEFTX0FT
U0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXplID49IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcCho
ZWFwLCBjb25maWcpKTsKIAogICAgIHJlbWF0ZXJpYWxpemVfc2l6ZV9sb29rdXBfaWZfbmVjZXNz
YXJ5KGhlYXAsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKIApAQCAtMTMyOCw2ICsxMzM1LDcgQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgIHNpemVfdCBvYmpl
Y3Rfc2l6ZTsKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUq
IG1lZGl1bV90dXBsZTsKICAgICBib29sIGlzX3V0aWxpdHk7CisgICAgc2l6ZV90IG1pbl9hbGln
bjsKIAogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKIApAQCAtMTM5MSwyMiArMTM5
OSwzMiBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgcGFy
ZW50X2hlYXAgPSBwYXNfaGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKGhlYXApOwogCiAgICAgaW5k
ZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKHNpemUsICpjb25maWcpOwor
CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coImluZGV4ID0gJXp1XG4iLCBpbmRl
eCk7CisgICAgCiAgICAgb2JqZWN0X3NpemUgPSBwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZm9y
X2luZGV4KGluZGV4LCAqY29uZmlnKTsKIAorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNf
bG9nKCJvYmplY3Rfc2l6ZSA9ICV6dVxuIiwgb2JqZWN0X3NpemUpOworCiAgICAgaWYgKG9iamVj
dF9zaXplIDwgc2l6ZSkgewogICAgICAgICAvKiBUaGlzJ2xsIG9ubHkgaGFwcGVuIGluIGNlcnRh
aW4ga2luZHMgb2Ygb3ZlcmZsb3dzLCBpbiB3aGljaCBjYXNlIHRoZSBzaXplIG11c3QgYmUgd2F5
IHRvbyBiaWcuICovCiAgICAgICAgIFBBU19BU1NFUlQoIW9iamVjdF9zaXplKTsKICAgICAgICAg
cmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgb2JqZWN0X3NpemUgPSBQQVNfTUFYKG1pbl9vYmpl
Y3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcoY29uZmlnKSwgb2JqZWN0X3NpemUpOworICAgIG9iamVj
dF9zaXplID0gUEFTX01BWChtaW5fb2JqZWN0X3NpemVfZm9yX2hlYXAoaGVhcCwgY29uZmlnKSwg
b2JqZWN0X3NpemUpOwogCi0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6
ZSwgYWxpZ25tZW50KSk7Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZCgKLSAgICAgICAg
ICAgICAgICAgICBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2Fs
aWduKGNvbmZpZy0+c21hbGxfc2VncmVnYXRlZF9jb25maWcpKSk7CisgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgIHBhc19sb2coIm9iamVjdF9zaXplIGFmdGVyIGFjY291bnRpbmcgZm9yIG1pbl9v
YmplY3Rfc2l6ZSA9ICV6dVxuIiwgb2JqZWN0X3NpemUpOworICAgIAorICAgIG1pbl9hbGlnbiA9
IG1pbl9hbGlnbl9mb3JfaGVhcChoZWFwLCBjb25maWcpOwogCi0gICAgYWxpZ25tZW50ID0gUEFT
X01BWChhbGlnbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19taW5fYWxpZ24oY29uZmlnLT5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZykpOwor
ICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQob2JqZWN0X3NpemUsIGFsaWdubWVudCkpOwor
ICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQob2JqZWN0X3NpemUsIG1pbl9hbGlnbikpOwor
ICAgIAorICAgIGFsaWdubWVudCA9IFBBU19NQVgoYWxpZ25tZW50LCBtaW5fYWxpZ24pOwogCiAg
ICAgLyogSWYgd2UgaGF2ZSBvdmVyZmxvd2VkIGFscmVhZHkgdGhlbiBiYWlsLiAqLwogICAgIGlm
ICgodW5zaWduZWQpb2JqZWN0X3NpemUgIT0gb2JqZWN0X3NpemUgfHwKQEAgLTE0MTksNyArMTQz
Nyw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAvKiBJ
ZiBpdCdzIGltcG9zc2libGUgdG8gdXNlIHRoZSBsYXJnZXN0IHNlZ3JlZ2F0ZWQgaGVhcCB0byBh
bGxvY2F0ZSB0aGUgcmVxdWVzdCB0aGVuCiAgICAgICAgaW1tZWRpYXRlbHkgZ2l2ZSB1cC4gRG8g
dGhpcyBiZWZvcmUgZW5zdXJlX3NpemVfbG9va3VwIHNvIHRoYXQgaGVhcHMgdGhhdCBhcmUgb25s
eSB1c2VkCiAgICAgICAgZm9yIGxhcmdlIG9iamVjdCBhbGxvY2F0aW9uIGRvbid0IGFsbG9jYXRl
IGFueSBzbWFsbCBoZWFwIG1ldGEtZGF0YS4gKi8KLSAgICBpZiAob2JqZWN0X3NpemUgPiBtYXhf
b2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcpKSB7
CisgICAgaWYgKG9iamVjdF9zaXplID4gbWF4X29iamVjdF9zaXplX2Zvcl9oZWFwKHBhcmVudF9o
ZWFwLCBoZWFwLCBjb25maWcpKSB7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAg
cGFzX2xvZygiSXQncyB0b28gYmlnLlxuIik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTY1
Nyw3ICsxNjc1LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcgog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnX3B0ciA9CiAgICAg
ICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZ19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3B0
cl9mb3JfdmFyaWFudChjb25maWcsIHZhcmlhbnQpOwotICAgICAgICAgICAgICAgIGlmICghcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWdfcHRyKSkKKyAg
ICAgICAgICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQo
KnBhZ2VfY29uZmlnX3B0ciwgaGVhcC0+cnVudGltZV9jb25maWcpKQogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBwYWdlX2Nv
bmZpZyA9ICpwYWdlX2NvbmZpZ19wdHI7CkBAIC0xNzAxLDkgKzE3MTksOSBAQCBwYXNfc2VncmVn
YXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBQQVNfQVNTRVJUKG9iamVjdF9zaXplIDw9IGhlYXAtPnJ1bnRpbWVfY29uZmlnLT5tYXhfYml0
Zml0X29iamVjdF9zaXplKTsKICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAg
ICAgICAgICAgICBvYmplY3Rfc2l6ZSA8PSBtYXhfYml0Zml0X29iamVjdF9zaXplX2Zvcl9oZWFw
X2NvbmZpZyhwYXJlbnRfaGVhcCwgaGVhcCwgY29uZmlnKSk7CisgICAgICAgICAgICAgICAgb2Jq
ZWN0X3NpemUgPD0gbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcChwYXJlbnRfaGVhcCwg
aGVhcCwgY29uZmlnKSk7CiAgICAgICAgICAgICBiZXN0X2J5dGVzX2RpcnRpZWRfcGVyX29iamVj
dCA9Ci0gICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KG9iamVj
dF9zaXplLCBjb25maWcpLm9iamVjdF9zaXplOworICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
aGVhcF9zZWxlY3RfdmFyaWFudChvYmplY3Rfc2l6ZSwgY29uZmlnLCBoZWFwLT5ydW50aW1lX2Nv
bmZpZykub2JqZWN0X3NpemU7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFpc191dGlsaXR5KTsK
ICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xNTUsMTQgKzE1NSwxNyBAQCBQQVNfQVBJIHBhc19iaXRmaXRfaGVhcCog
cGFzX3NlZ3JlZ2F0ZWRfCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CiBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKHNpemVfdCBzaXplLCBwYXNfaGVhcF9jb25maWcg
Y29uZmlnKQogewotICAgIHJldHVybiAoc2l6ZSArIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X21pbl9hbGlnbihjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpIC0gMSkKLSAgICAgICAg
Pj4gY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0Owor
ICAgIHNpemVfdCBtaW5fYWxpZ25fc2hpZnQ7CisgICAgc2l6ZV90IG1pbl9hbGlnbjsKKyAgICBt
aW5fYWxpZ25fc2hpZnQgPSBwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9oZWFwX21pbl9hbGln
bl9zaGlmdChjb25maWcpOworICAgIG1pbl9hbGlnbiA9IChzaXplX3QpMSA8PCBtaW5fYWxpZ25f
c2hpZnQ7CisgICAgcmV0dXJuIChzaXplICsgbWluX2FsaWduIC0gMSkgPj4gbWluX2FsaWduX3No
aWZ0OwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CiBwYXNfc2VncmVnYXRl
ZF9oZWFwX3NpemVfZm9yX2luZGV4KHNpemVfdCBpbmRleCwgcGFzX2hlYXBfY29uZmlnIGNvbmZp
ZykKIHsKLSAgICByZXR1cm4gaW5kZXggPDwgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmln
LmJhc2UubWluX2FsaWduX3NoaWZ0OworICAgIHJldHVybiBpbmRleCA8PCBwYXNfaGVhcF9jb25m
aWdfc2VncmVnYXRlZF9oZWFwX21pbl9hbGlnbl9zaGlmdChjb25maWcpOwogfQogCiAvKiBUaGVz
ZSBmdW5jdGlvbnMgaGVscCB3aXRoIGRlYWxpbmcgd2l0aCBwYXNfaGVhcF9yZWY6OmFsbG9jYXRv
cl9pbmRleC4gQ2FuIHBhc3MgYSBOVUxMIGNhY2hlZF9pbmRleCwgaW4gd2hpY2gKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9wYWdlLmMJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwkod29ya2luZyBjb3B5KQpAQCAtMjQzLDcgKzI0
Myw2IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QocGFzX3MKIAogICAgICAg
ICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eShk
aXJlY3RvcnkpKSB7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNo
ZV9pbmRleCk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9p
bmRleCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKICAgICAgICAgICAgIHBhZ2Ut
PnZpZXdfY2FjaGVfaW5kZXggPSBkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXg7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5k
ZXggPT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZy5oCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjksMTMgKzI5LDE0IEBACiAjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAj
aW5jbHVkZSAicGFzX2JpdHZlY3Rvci5oIgogI2luY2x1ZGUgInBhc19jb25maWcuaCIKKyNpbmNs
dWRlICJwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVmaWxsX21vZGUuaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgotI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9iYXNl
X2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmgiCiAjaW5j
bHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
ZGVhbGxvY2F0aW9uX2xvZ2dpbmdfbW9kZS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192
YXJpYW50LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmgiCiAjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgpAQCAtMjIyLDEwICsyMjMsMTggQEAgUEFTX0FQSSBl
eHRlcm4gYm9vbCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZQogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9Q
QUdFX0NPTkZJR19HT09EX01BWF9PQkpFQ1RfU0laRShvYmplY3RfcGF5bG9hZF9zaXplLCBtaW5f
bnVtX29iamVjdHMpIFwKICAgICAoKG9iamVjdF9wYXlsb2FkX3NpemUpIC8gKG1pbl9udW1fb2Jq
ZWN0cykpCiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
c19lbmFibGVkKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZykKK3N0YXRpYyBpbmxp
bmUgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1l
X2NvbmZpZykKIHsKICAgICBpZiAoIWNvbmZpZy5iYXNlLmlzX2VuYWJsZWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAvKiBEb2luZyB0aGlzIGNoZWNrIGhlcmUgaXMgbm90IHN1cGVyIG5l
Y2Vzc2FyeSwgYnV0IGl0J3Mgc29ydCBvZiBuaWNlIGZvciBjYXNlcyB3aGVyZSB3ZSBoYXZlIGEg
aGVhcAorICAgICAgIHRoYXQgc29tZXRpbWVzIHVzZXMgYml0Zml0IGV4Y2x1c2l2ZWx5IG9yIHNv
bWV0aW1lcyB1c2VzIHNlZ3JlZ2F0ZWQgZXhjbHVzaXZlbHkgYW5kIHRoYXQncyBzZWxlY3RlZAor
ICAgICAgIGJ5IHNlbGVjdGluZyBvciBtdXRhdGluZyBydW50aW1lX2NvbmZpZ3MuIFRoaXMgaXNf
ZW5hYmxlZCBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBtYXRoCisgICAg
ICAgdGhhdCBzZXRzIHVwIHNpemUgY2xhc3NlcywgYXQgbGVhc3QgZm9yIG5vdywgc28gdGhlIGlt
cGxpY2F0aW9ucyBvZiBub3QgZG9pbmcgdGhpcyBjaGVjayBhcmUgcmF0aGVyCisgICAgICAgdGlu
eS4gKi8KKyAgICBpZiAoIXJ1bnRpbWVfY29uZmlnLT5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHN3aXRjaCAoY29uZmlnLnZhcmlhbnQpIHsK
ICAgICBjYXNlIHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQ6CiAgICAg
ICAgIHJldHVybiBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50X2lzX2Vu
YWJsZWRfb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
LmRlZgkocmV2aXNpb24gMjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5kZWYJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xMDQsMyArMTA0LDcgQEAgUEFTX0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkQo
aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSE9UQklUX0hFQVBfQ09O
RklHLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZykKICNlbmRpZgogCisjaWYgUEFTX0VOQUJMRV9K
SVQKK1BBU19ERUZJTkVfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EKGppdF9zbWFsbF9zZWdy
ZWdhdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX0hFQVBf
Q09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKQorI2VuZGlmCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2Fu
ZF9yb2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5oCShyZXZpc2lvbiAyODg0
MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNyArNDEsNyBAQCBl
bnVtIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kCiAKIHR5cGVkZWYgZW51bSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmRfYW5kX3JvbGU7CiAKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9D
T05GSUdfS0lORF9BTkRfUk9MRV9OVU1fQklUUyA1dQorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9Q
QUdFX0NPTkZJR19LSU5EX0FORF9ST0xFX05VTV9CSVRTIDZ1CiAjZGVmaW5lIFBBU19TRUdSRUdB
VEVEX1BBR0VfQ09ORklHX0tJTkRfQU5EX1JPTEVfTUFTSyBcCiAgICAgKCgxdSA8PCBQQVNfU0VH
UkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EX0FORF9ST0xFX05VTV9CSVRTKSAtIDF1KQogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChjKSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzAsNyArMTMwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZQogICAgICAgICBiaXRmaXRfc2l6ZV9jbGFzcyA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9iaXRmaXRfc2l6ZV9jbGFzcyhyZXN1bHQp
OwogICAgICAgICAKICAgICAgICAgcGFzX2JpdGZpdF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXJ0
X3NpemVfY2xhc3MoCi0gICAgICAgICAgICBiaXRmaXRfaGVhcCwgYml0Zml0X3NpemVfY2xhc3Ms
IG9iamVjdF9zaXplLCBoZWFwX2NvbmZpZyk7CisgICAgICAgICAgICBiaXRmaXRfaGVhcCwgYml0
Zml0X3NpemVfY2xhc3MsIG9iamVjdF9zaXplLCBoZWFwX2NvbmZpZywgaGVhcC0+cnVudGltZV9j
b25maWcpOwogICAgIH0KICAgICAKICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwgTlVMTCk7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hh
b3NUZXN0cy5jcHAJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjA3LDYg
KzEyMDcsMTEgQEAgdm9pZCBhZGRBbGxUZXN0cygpCiAgICAgICAgIEJvb3RKSVRIZWFwIGJvb3RK
SVRIZWFwOwogCiAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7CisKKyAg
ICAgICAgeworICAgICAgICAgICAgRm9yY2VCaXRmaXQgZm9yY2VCaXRmaXQ7CisgICAgICAgICAg
ICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgdHJ1ZSkpOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgewpAQCAtMTIyNyw2ICsxMjMyLDExIEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgICAgICBC
b290SklUSGVhcCBib290SklUSGVhcDsKIAogICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMo
MSwgZmFsc2UpKTsKKworICAgICAgICB7CisgICAgICAgICAgICBGb3JjZUJpdGZpdCBmb3JjZUJp
dGZpdDsKKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOworICAg
ICAgICB9CiAgICAgfQogI2VuZGlmIC8vIFBBU19FTkFCTEVfSE9UQklUCiB9CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSklUSGVhcFRlc3RzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSklUSGVhcFRlc3RzLmNwcAkocmV2aXNp
b24gMjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0pJVEhlYXBUZXN0
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykg
MjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNjksNiArNjksMTEgQEAgdm9pZCB0ZXN0QWxsb2NhdGVTaHJp
bmtBbmRBbGxvY2F0ZSh1bnNpZwogICAgIGppdF9oZWFwX2RlYWxsb2NhdGUobmV3UHRyKTsKIH0K
IAordm9pZCB0ZXN0QWxsb2NhdGlvblNpemUoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCBh
Y3R1YWxTaXplKQoreworICAgIENIRUNLX0VRVUFMKGppdF9oZWFwX2dldF9zaXplKGppdF9oZWFw
X3RyeV9hbGxvY2F0ZShyZXF1ZXN0ZWRTaXplKSksIGFjdHVhbFNpemUpOworfQorCiB9IC8vIGFu
b255bW91cyBuYW1lc3BhY2UKIAogI2VuZGlmIC8vIFBBU19FTkFCTEVfSklUCkBAIC04Niw1ICs5
MSwxOSBAQCB2b2lkIGFkZEpJVEhlYXBUZXN0cygpCiAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRl
U2hyaW5rQW5kQWxsb2NhdGUoMzIsIDEwLCAyMDQ4LCA1MTIsIDExMDAsIDI1NikpOwogICAgIEFE
RF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKDExMDAsIDEwLCAyMDQ4LCA1MTIs
IDExMDAsIDI1NikpOwogICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRl
KDAsIDAsIDEwMDAwMCwgMTAwMDAsIDgwMDAwLCA0KSk7CisgICAgCisgICAgQUREX1RFU1QodGVz
dEFsbG9jYXRpb25TaXplKDQsIDE2KSk7CisgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25TaXpl
KDgsIDE2KSk7CisgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25TaXplKDEyLCAxNikpOworICAg
IEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSgxNiwgMTYpKTsKKyAgICBBRERfVEVTVCh0ZXN0
QWxsb2NhdGlvblNpemUoMjAsIDMyKSk7CisgICAgeworICAgICAgICBGb3JjZUJpdGZpdCBmb3Jj
ZUJpdGZpdDsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25TaXplKDQsIDQpKTsKKyAg
ICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25TaXplKDgsIDgpKTsKKyAgICAgICAgQUREX1RF
U1QodGVzdEFsbG9jYXRpb25TaXplKDEyLCAxMikpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxs
b2NhdGlvblNpemUoMTYsIDE2KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6
ZSgyMCwgMjApKTsKKyAgICB9CiAjZW5kaWYgLy8gUEFTX0VOQUJMRV9KSVQKIH0KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAkocmV2aXNp
b24gMjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2NSw3IEBAIHZvaWQgYWRkUmVkQmxhY2tU
cmVlVGVzdHMoKTsKIHZvaWQgYWRkVFNEVGVzdHMoKTsKIHZvaWQgYWRkVGhpbmd5QW5kVXRpbGl0
eUhlYXBBbGxvY2F0aW9uVGVzdHMoKTsKIHZvaWQgYWRkVXRpbHNUZXN0cygpOwordm9pZCBhZGRW
aWV3Q2FjaGVUZXN0cygpOwogCiB2b2lkIHRlc3RTdWNjZWVkZWQoKQogewpAQCAtNzI5LDYgKzcz
MCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBBRERfU1VJVEUoUmVk
QmxhY2tUcmVlKTsKICAgICBBRERfU1VJVEUoVFNEKTsKICAgICBBRERfU1VJVEUoVXRpbHMpOwor
ICAgIEFERF9TVUlURShWaWV3Q2FjaGUpOwogICAgIAogICAgIHN0cmluZyBmaWx0ZXI7CiAgICAg
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVmlld0NhY2hlVGVzdHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9WaWV3Q2FjaGVU
ZXN0cy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0
L1ZpZXdDYWNoZVRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoYykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiVGVz
dEhhcm5lc3MuaCIKKworI2lmIFBBU19FTkFCTEVfQk1BTExPQworCisjaW5jbHVkZSAiYm1hbGxv
Y19oZWFwLmgiCisjaW5jbHVkZSAiYm1hbGxvY19oZWFwX2NvbmZpZy5oIgorI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSA8c2V0PgorCit1c2luZyBu
YW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgeworCit2b2lkIHNldHVwQ29uZmlnKCkKK3sKKyAg
ICAvLyBJZiB0aGVzZSBhc3NlcnRpb25zIGV2ZXIgZmFpbCB3ZSBjb3VsZCBqdXN0IGZpeCBpdCBi
eSByZXBsYWNpbmcgdGhlbSB3aXRoIGNvZGUgdGhhdCBtdXRhdGVzIHRoZQorICAgIC8vIGNvbmZp
ZyB0byBoYXZlIHRoZSBzZXR0aW5ncyB3ZSB3YW50LgorICAgIENIRUNLX0VRVUFMKGJtYWxsb2Nf
aW50cmluc2ljX3J1bnRpbWVfY29uZmlnLmJhc2Uudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2Jq
ZWN0X3NpemUsCisgICAgICAgICAgICAgICAgcGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdncmVz
c2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5KTsKKyAgICBDSEVDS19FUVVBTChibWFsbG9jX2ludHJp
bnNpY19ydW50aW1lX2NvbmZpZy5iYXNlLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3
X2NhY2hlLCAwKTsKK30KKwordm9pZCB0ZXN0RGlzYWJsZVZpZXdDYWNoZVVzaW5nQm91bmRGb3JO
b1ZpZXdDYWNoZSgpCit7CisgICAgc2V0dXBDb25maWcoKTsKKworICAgIGJtYWxsb2NfaW50cmlu
c2ljX3J1bnRpbWVfY29uZmlnLmJhc2UuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdf
Y2FjaGUgPSBVSU5UX01BWDsKKworICAgIGJtYWxsb2NfZGVhbGxvY2F0ZShibWFsbG9jX2FsbG9j
YXRlKDQyKSk7Cit9CisKK3ZvaWQgdGVzdEVuYWJsZVZpZXdDYWNoZUF0U29tZUJvdW5kRm9yTm9W
aWV3Q2FjaGUodW5zaWduZWQgYm91bmQpCit7CisgICAgc2V0dXBDb25maWcoKTsKKworICAgIGJt
YWxsb2NfaW50cmluc2ljX3J1bnRpbWVfY29uZmlnLmJhc2UuZGlyZWN0b3J5X3NpemVfYm91bmRf
Zm9yX25vX3ZpZXdfY2FjaGUgPSBib3VuZDsKKworICAgIHZvaWQqIHB0ciA9IGJtYWxsb2NfYWxs
b2NhdGUoNDIpOworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyA9IHBhc19zZWdyZWdhdGVk
X3ZpZXdfZm9yX29iamVjdCgKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0
ciksICZibWFsbG9jX2hlYXBfY29uZmlnKTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogdGhlRGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rv
cnkodmlldyk7CisKKyAgICBDSEVDS19FUVVBTCh0aGVEaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5k
ZXgsIFVJTlRfTUFYKTsKKworICAgIHNldDxwYXNfc2VncmVnYXRlZF92aWV3PiB2aWV3czsKKyAg
ICB2aWV3cy5pbnNlcnQodmlldyk7CisKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHB0ciA9IGJt
YWxsb2NfYWxsb2NhdGUoNDIpOworICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19m
b3Jfb2JqZWN0KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpLCAmYm1hbGxvY19oZWFw
X2NvbmZpZyk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKKworICAg
ICAgICBDSEVDS19FUVVBTChkaXJlY3RvcnksIHRoZURpcmVjdG9yeSk7CisKKyAgICAgICAgdmll
d3MuaW5zZXJ0KHZpZXcpOworCisgICAgICAgIGlmICh2aWV3cy5zaXplKCkgPiBib3VuZCkgewor
ICAgICAgICAgICAgQ0hFQ0tfRVFVQUwodmlld3Muc2l6ZSgpLCBib3VuZCArIDEpOworICAgICAg
ICAgICAgQ0hFQ0tfTEVTUyh0aGVEaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXgsIFVJTlRfTUFY
KTsKKyAgICAgICAgICAgIENIRUNLX0dSRUFURVIodGhlRGlyZWN0b3J5LT52aWV3X2NhY2hlX2lu
ZGV4LCAwKTsKKworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSA9IHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2Uodmlldyk7CisgICAgICAgICAgICBDSEVDS19FUVVBTChw
YWdlLT52aWV3X2NhY2hlX2luZGV4LCB0aGVEaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorfQorCit9IC8vIGFub255bW91
cyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIFBBU19FTkFCTEVfQk1BTExPQworCit2b2lkIGFkZFZp
ZXdDYWNoZVRlc3RzKCkKK3sKKyNpZiBQQVNfRU5BQkxFX0JNQUxMT0MKKyAgICBGb3JjZUV4Y2x1
c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOworICAgIEZvcmNlVExBcyBmb3JjZVRMQXM7CisgICAgCisg
ICAgQUREX1RFU1QodGVzdERpc2FibGVWaWV3Q2FjaGVVc2luZ0JvdW5kRm9yTm9WaWV3Q2FjaGUo
KSk7CisgICAgQUREX1RFU1QodGVzdEVuYWJsZVZpZXdDYWNoZUF0U29tZUJvdW5kRm9yTm9WaWV3
Q2FjaGUoMSkpOworICAgIEFERF9URVNUKHRlc3RFbmFibGVWaWV3Q2FjaGVBdFNvbWVCb3VuZEZv
ck5vVmlld0NhY2hlKDEwKSk7CisgICAgQUREX1RFU1QodGVzdEVuYWJsZVZpZXdDYWNoZUF0U29t
ZUJvdW5kRm9yTm9WaWV3Q2FjaGUoMTAwKSk7CisjZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9D
Cit9CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449767</attachid>
            <date>2022-01-23 15:47:55 -0800</date>
            <delta_ts>2022-01-24 16:27:51 -0800</delta_ts>
            <desc>better patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>63527</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4ODQyNCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgzIEBACisyMDIyLTAxLTIzICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gaml0X2hlYXAgc2hv
dWxkIHN1cHBvcnQgdGhlIHNlZ3JlZ2F0ZWQgaGVhcAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4gVGhpcyByZXZlYWxlZCBz
b21lIHN1cGVyIGNvb2wgYnVncy4KKworICAgICAgICAqIGxpYnBhcy9saWJwYXMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5j
OgorICAgICAgICAoaml0X2hlYXBfc2hyaW5rKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9qaXRfaGVhcF9jb25maWcuYzoKKyAgICAgICAgKGppdF9zbWFsbF9zZWdyZWdhdGVkX2FsbG9j
YXRlX3BhZ2UpOgorICAgICAgICAoaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfY3JlYXRlX3BhZ2VfaGVh
ZGVyKToKKyAgICAgICAgKGppdF9zbWFsbF9kZXN0cm95X3BhZ2VfaGVhZGVyKToKKyAgICAgICAg
KGppdF9zbWFsbF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3Rvcik6Cisg
ICAgICAgIChqaXRfc21hbGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UpOgorICAgICAgICAoaml0X3Nt
YWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIpOgorICAgICAgICAoaml0X21lZGl1bV9iaXRm
aXRfY3JlYXRlX3BhZ2VfaGVhZGVyKToKKyAgICAgICAgKGppdF9tZWRpdW1fZGVzdHJveV9wYWdl
X2hlYWRlcik6CisgICAgICAgIChqaXRfcHJlcGFyZV90b19lbnVtZXJhdGUpOgorICAgICAgICAo
aml0X3NtYWxsX2JpdGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KGppdF9tZWRpdW1fYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIpOiBEZWxldGVkLgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oOgorICAgICAgICAoaml0X3Nt
YWxsX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSk6CisgICAgICAgIChqaXRfc21hbGxfYm91bmRh
cnlfZm9yX3BhZ2VfaGVhZGVyKToKKyAgICAgICAgKGppdF9tZWRpdW1fcGFnZV9oZWFkZXJfZm9y
X2JvdW5kYXJ5KToKKyAgICAgICAgKGppdF9tZWRpdW1fYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVy
KToKKyAgICAgICAgKGppdF9oZWFwX2NvbmZpZ19wYWdlX2hlYWRlcik6CisgICAgICAgIChqaXRf
c21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSk6IERlbGV0ZWQuCisgICAgICAg
IChqaXRfc21hbGxfYml0Zml0X2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChqaXRfbWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkpOiBEZWxl
dGVkLgorICAgICAgICAoaml0X21lZGl1bV9iaXRmaXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWdf
cm9vdF9kYXRhLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFw
LmM6CisgICAgICAgIChwYXNfYml0Zml0X2hlYXBfc2VsZWN0X3ZhcmlhbnQpOgorICAgICAgICAo
cGFzX2JpdGZpdF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXJ0X3NpemVfY2xhc3MpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaDoKKyAgICAgICAgKHBhc19iaXRm
aXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2hlYXBfY29uZmlnLmg6CisgICAgICAgIChwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9o
ZWFwX21pbl9hbGlnbl9zaGlmdCk6CisgICAgICAgIChwYXNfaGVhcF9jb25maWdfc2VncmVnYXRl
ZF9oZWFwX21pbl9hbGlnbik6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcC5jOgorICAgICAgICAobWluX2FsaWduX2Zvcl9oZWFwKToKKyAgICAgICAgKG1p
bl9vYmplY3Rfc2l6ZV9mb3JfaGVhcCk6CisgICAgICAgIChtYXhfc2VncmVnYXRlZF9vYmplY3Rf
c2l6ZV9mb3JfaGVhcCk6CisgICAgICAgIChtYXhfYml0Zml0X29iamVjdF9zaXplX2Zvcl9oZWFw
KToKKyAgICAgICAgKG1heF9vYmplY3Rfc2l6ZV9mb3JfaGVhcCk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX3NpemUpOgorICAgICAgICAobWlu
X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyk6IERlbGV0ZWQuCisgICAgICAgIChtYXhfc2Vn
cmVnYXRlZF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcpOiBEZWxldGVkLgorICAgICAgICAo
bWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcpOiBEZWxldGVkLgorICAgICAg
ICAobWF4X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyk6IERlbGV0ZWQuCisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3Jfc2l6ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9o
ZWFwX3NpemVfZm9yX2luZGV4KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9wYWdlLmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdCk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcu
aDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQu
ZGVmOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfYW5kX3JvbGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfY3JlYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9z
VGVzdHMuY3BwOgorICAgICAgICAoc3RkOjphZGRBbGxUZXN0cyk6CisgICAgICAgICogbGlicGFz
L3NyYy90ZXN0L0pJVEhlYXBUZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OnRlc3RBbGxvY2F0aW9u
U2l6ZSk6CisgICAgICAgIChhZGRKSVRIZWFwVGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
dGVzdC9UZXN0SGFybmVzcy5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL3Rlc3QvVmlld0NhY2hlVGVzdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKHN0ZDo6c2V0dXBD
b25maWcpOgorICAgICAgICAoc3RkOjp0ZXN0RGlzYWJsZVZpZXdDYWNoZVVzaW5nQm91bmRGb3JO
b1ZpZXdDYWNoZSk6CisgICAgICAgIChzdGQ6OnRlc3RFbmFibGVWaWV3Q2FjaGVBdFNvbWVCb3Vu
ZEZvck5vVmlld0NhY2hlKToKKyAgICAgICAgKGFkZFZpZXdDYWNoZVRlc3RzKToKKwogMjAyMi0w
MS0yMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODg0MDAuCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw2ICs1NTQsNyBAQAogCQkyQzExRTg4
RTI3MjhBNzgzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg4QzI3MjhBNzgzMDAyMTYyRDAgLyogYm1h
bGxvY190eXBlLmggKi87IH07CiAJCTJDMTFFODhGMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2lt
cGxlX3R5cGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDMTFFODhEMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2ltcGxlX3R5cGUuYyAqLzsgfTsKIAkJ
MkMxMUU4OTEyNzI4QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OTAyNzI4QTg5MzAwMjE2MkQw
IC8qIGJtYWxsb2NfdHlwZS5jICovOyB9OworCQkyQzE2REFFMDI3OUUwNzI5MDA0MkU5MTkgLyog
Vmlld0NhY2hlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3RzLmNwcCAq
LzsgfTsKIAkJMkMzNDAwMDAyNzU4MTVEMDAwNTU2NUNCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfYW5kX3JvbGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDMzRGRkZGMjc1ODE1RDAwMDU1NjVDQiAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlLmMgKi87IH07CiAJCTJDMzQwMDAyMjc1ODE2ODcwMDU1
NjVDQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkMzNDAwMDEyNzU4MTY4NzAwNTU2NUNCIC8qIHBhc19wYWdl
X2Jhc2VfY29uZmlnLmMgKi87IH07CiAJCTJDMzRGRkZBMjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNf
cGFnZV9iYXNlX2FuZF9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyQzM0RkZGNTI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3BhZ2VfYmFzZV9hbmRf
a2luZC5oICovOyB9OwpAQCAtMTI0Nyw2ICsxMjQ4LDcgQEAKIAkJMkMxMUU4OEMyNzI4QTc4MzAw
MjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBibWFsbG9jX3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMxMUU4OEQy
NzI4QTc4MzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IHBhdGggPSBwYXNfc2ltcGxlX3R5cGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkMxMUU4OTAyNzI4QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBibWFsbG9jX3R5cGUuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3Rz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZXdDYWNoZVRlc3Rz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNDAwMDEyNzU4MTY4NzAwNTU2
NUNCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
cGF0aCA9IHBhc19wYWdlX2Jhc2VfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJDMzRGRkY1Mjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfcGFnZV9iYXNlX2FuZF9raW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfYW5kX2tpbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNEZGRjYyNzU3MUQyRjAwNTU2NUNC
IC8qIHBhc19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21l
Z2FwYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19nZXRfcGFnZV9i
YXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21lZ2FwYWdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzkzLDYgKzEzOTUsNyBAQAogCQkJCTBGODcwMEIyMjVC
MEFCMjkwMDBFMUFCRiAvKiBUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAg
Ki8sCiAJCQkJMEY4NzAwREUyNUIxNEM2ODAwMEUxQUJGIC8qIFRTRFRlc3RzLmNwcCAqLywKIAkJ
CQkwRjUzMTgxMjIyQzk2MDlEMDAzRjdCNkEgLyogVXRpbHNUZXN0cy5jcHAgKi8sCisJCQkJMkMx
NkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3RzLmNwcCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gdGVzdDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNjA1LDYgKzI2
MDgsNyBAQAogCQkJCTBGREVBNDYxMjI4QjY1MUIwMDg1RTM0MCAvKiBCaXRmaWVsZFZlY3RvclRl
c3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTMxODExMjJDOTU0RUQwMDNGN0I2QSAvKiBC
aXR2ZWN0b3JUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjMxQTY2ODIzRThCMzM2MDAy
QzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDMTZE
QUUwMjc5RTA3MjkwMDQyRTkxOSAvKiBWaWV3Q2FjaGVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkM2ODIzODIxMjlENEVFMDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJDNDgxMzJEMjczRjQxNTkwMDZDQUI1NSAvKiBFeHBlbmRhYmxlTWVtb3J5
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNjgyMzEyMTI5Q0I0NjAwM0M2QTEzIC8q
IEV4dGVuZGVkR0NEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmMJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmMJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
ODYsOSArODYsMTAgQEAgdm9pZCogaml0X2hlYXBfdHJ5X2FsbG9jYXRlKHNpemVfdCBzaXplKQog
CiB2b2lkIGppdF9oZWFwX3Nocmluayh2b2lkKiBvYmplY3QsIHNpemVfdCBuZXdfc2l6ZSkKIHsK
LSAgICBib29sIHJlc3VsdDsKLSAgICByZXN1bHQgPSBwYXNfdHJ5X3NocmluayhvYmplY3QsIG5l
d19zaXplLCBKSVRfSEVBUF9DT05GSUcpOwotICAgIFBBU19BU1NFUlQocmVzdWx0KTsKKyAgICAv
KiBOT1RFOiB0aGUgc2hyaW5rIGNhbGwgd2lsbCBmYWlsIChyZXR1cm4gZmFsc2UpIGZvciBzZWdy
ZWdhdGVkIGFsbG9jYXRpb25zLCBhbmQgdGhhdCdzIGZpbmUgYmVjYXVzZSB3ZQorICAgICAgIG9u
bHkgdXNlIHNlZ3JlZ2F0ZWQgYWxsb2NhdGlvbnMgZm9yIHNtYWxsZXIgc2l6ZXMgKHNvIHRoZSBh
bW91bnQgb2YgcG90ZW50aWFsIG1lbW9yeSBzYXZpbmdzIGZyb20KKyAgICAgICBzaHJpbmtpbmcg
aXMgc21hbGwpLiAqLworICAgIHBhc190cnlfc2hyaW5rKG9iamVjdCwgbmV3X3NpemUsIEpJVF9I
RUFQX0NPTkZJRyk7CiB9CiAKIHNpemVfdCBqaXRfaGVhcF9nZXRfc2l6ZSh2b2lkKiBvYmplY3Qp
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVh
cF9jb25maWcuYwkocmV2aXNpb24gMjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgInBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX2hl
YXBfY29uZmlnX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfcm9vdC5oIgorI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc3RyZWFt
LmgiCiAKICNpZiBkZWZpbmVkKFBBU19CTUFMTE9DKQpAQCAtMTAyLDkgKzEwMyw5IEBAIHBhc19s
YXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWMKICAgICAucHJvdmlkZXJfYXJnID0g
TlVMTAogfTsKIAotcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9zbWFsbF9iaXRmaXRfcGFnZV9o
ZWFkZXJfdGFibGUgPQorcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9zbWFsbF9wYWdlX2hlYWRl
cl90YWJsZSA9CiAgICAgUEFTX1BBR0VfSEVBREVSX1RBQkxFX0lOSVRJQUxJWkVSKEpJVF9TTUFM
TF9QQUdFX1NJWkUpOwotcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9tZWRpdW1fYml0Zml0X3Bh
Z2VfaGVhZGVyX3RhYmxlID0KK3Bhc19wYWdlX2hlYWRlcl90YWJsZSBqaXRfbWVkaXVtX3BhZ2Vf
aGVhZGVyX3RhYmxlID0KICAgICBQQVNfUEFHRV9IRUFERVJfVEFCTEVfSU5JVElBTElaRVIoSklU
X01FRElVTV9QQUdFX1NJWkUpOwogCiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyBqaXRfaGVhcF9y
dW50aW1lX2NvbmZpZyA9IHsKQEAgLTExNCwxNSArMTE1LDE1IEBAIHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnIGppdF9oZWFwX3J1bnRpbWUKICAgICAuaXNfcGFydF9vZl9oZWFwID0gdHJ1ZSwKICAg
ICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPSAwLAogICAgIC5kaXJl
Y3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IDAsCi0gICAgLmRpcmVj
dG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gVUlOVF9NQVgsCi0gICAgLm1heF9z
ZWdyZWdhdGVkX29iamVjdF9zaXplID0gMCwKKyAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9y
X25vX3ZpZXdfY2FjaGUgPSAwLAorICAgIC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IDEw
MDAsCiAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBVSU5UX01BWCwKLSAgICAudmlld19j
YWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196
ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkKKyAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2Jq
ZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVf
Y2FwYWNpdHkKIH07CiAKIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEgaml0X3Jvb3RfZGF0YSA9
IHsKLSAgICAuc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlID0gJmppdF9zbWFsbF9iaXRm
aXRfcGFnZV9oZWFkZXJfdGFibGUsCi0gICAgLm1lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFi
bGUgPSAmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUKKyAgICAuc21hbGxfcGFn
ZV9oZWFkZXJfdGFibGUgPSAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAorICAgIC5tZWRp
dW1fcGFnZV9oZWFkZXJfdGFibGUgPSAmaml0X21lZGl1bV9wYWdlX2hlYWRlcl90YWJsZQogfTsK
IAogdm9pZCBqaXRfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKQEAgLTE0MiwzOSArMTQzLDcz
IEBAIHBhc19wYWdlX2Jhc2UqIGppdF9wYWdlX2hlYWRlcl9mb3JfYm91bmQKICAgICByZXR1cm4g
KHBhc19wYWdlX2Jhc2UqKXBhc19wdHJfaGFzaF9tYXBfZ2V0KCZkYXRhLT5wYWdlX2hlYWRlcl90
YWJsZSwgYm91bmRhcnkpLnZhbHVlOwogfQogCi12b2lkKiBqaXRfc21hbGxfYml0Zml0X2FsbG9j
YXRlX3BhZ2UoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2FsX21l
bW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCit2b2lkKiBqaXRfc21hbGxfc2VncmVnYXRl
ZF9hbGxvY2F0ZV9wYWdlKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19waHlz
aWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBwYXNfc2VncmVnYXRlZF9wYWdl
X3JvbGUgcm9sZSkKIHsKKyAgICBQQVNfQVNTRVJUKHJvbGUgPT0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9leGNsdXNpdmVfcm9sZSk7CiAgICAgUEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKICAgICBQQVNf
VU5VU0VEX1BBUkFNKHRyYW5zYWN0aW9uKTsKICAgICByZXR1cm4gKHZvaWQqKWFsbG9jYXRlX2Zy
b21fZnJlc2goCiAgICAgICAgIEpJVF9TTUFMTF9QQUdFX1NJWkUsIHBhc19hbGlnbm1lbnRfY3Jl
YXRlX3RyYWRpdGlvbmFsKEpJVF9TTUFMTF9QQUdFX1NJWkUpKS5iZWdpbjsKIH0KIAotcGFzX3Bh
Z2VfYmFzZSogaml0X3NtYWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIoCitwYXNfcGFnZV9i
YXNlKiBqaXRfc21hbGxfc2VncmVnYXRlZF9jcmVhdGVfcGFnZV9oZWFkZXIoCiAgICAgdm9pZCog
Ym91bmRhcnksIHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpCiB7CiAgICAgcGFzX3BhZ2VfYmFzZSogcmVzdWx0OwotICAgIFBBU19BU1NF
UlQoa2luZCA9PSBwYXNfc21hbGxfYml0Zml0X3BhZ2Vfa2luZCk7CisgICAgUEFTX0FTU0VSVChr
aW5kID09IHBhc19zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9wYWdlX2tpbmQpOwogICAgIHBh
c19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAg
IHJlc3VsdCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZV9hZGQoJmppdF9zbWFsbF9iaXRmaXRfcGFn
ZV9oZWFkZXJfdGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBK
SVRfU01BTExfUEFHRV9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJRy5zbWFsbF9iaXRm
aXRfY29uZmlnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5k
YXJ5KTsKKyAgICByZXN1bHQgPSBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKAorICAgICAgICAm
aml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAorICAgICAgICBKSVRfU01BTExfUEFHRV9TSVpF
LAorICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJ
Ry5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSwKKyAgICAgICAg
Ym91bmRhcnkpOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBqaXRfc21hbGxf
Yml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCi0gICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwgcGFz
X2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit2b2lkIGppdF9zbWFsbF9kZXN0
cm95X3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UsIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKQogewogICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25h
bGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgIHBhc19wYWdlX2hlYWRlcl90YWJsZV9yZW1v
dmUoJmppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCisgICAgcGFzX3BhZ2VfaGVh
ZGVyX3RhYmxlX3JlbW92ZSgmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSklUX1NNQUxMX1BBR0VfU0laRSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhZ2UpOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2Nv
bmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiB9CiAKK3Bhc19zZWdyZWdhdGVkX3No
YXJlZF9wYWdlX2RpcmVjdG9yeSogaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5X3NlbGVjdG9yKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgUEFTX1VOVVNFRF9QQVJB
TShoZWFwKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7CisgICAgUEFTX0FTU0VS
VCghIk5vdCBpbXBsZW1lbnRlZCIpOworICAgIHJldHVybiBOVUxMOworfQorCit2b2lkKiBqaXRf
c21hbGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCit7CisgICAg
UEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKHRyYW5zYWN0aW9u
KTsKKyAgICByZXR1cm4gKHZvaWQqKWFsbG9jYXRlX2Zyb21fZnJlc2goCisgICAgICAgIEpJVF9T
TUFMTF9QQUdFX1NJWkUsIHBhc19hbGlnbm1lbnRfY3JlYXRlX3RyYWRpdGlvbmFsKEpJVF9TTUFM
TF9QQUdFX1NJWkUpKS5iZWdpbjsKK30KKworcGFzX3BhZ2VfYmFzZSogaml0X3NtYWxsX2JpdGZp
dF9jcmVhdGVfcGFnZV9oZWFkZXIoCisgICAgdm9pZCogYm91bmRhcnksIHBhc19wYWdlX2tpbmQg
a2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit7CisgICAgcGFz
X3BhZ2VfYmFzZSogcmVzdWx0OworICAgIFBBU19BU1NFUlQoa2luZCA9PSBwYXNfc21hbGxfYml0
Zml0X3BhZ2Vfa2luZCk7CisgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVh
cF9sb2NrX2hvbGRfbW9kZSk7CisgICAgcmVzdWx0ID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2Fk
ZCgmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSklUX1NNQUxMX1BBR0VfU0laRSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9oZWFkZXJfc2l6ZShKSVRfSEVBUF9D
T05GSUcuc21hbGxfYml0Zml0X2NvbmZpZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib3VuZGFyeSk7CisgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9u
YWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2b2lk
KiBqaXRfbWVkaXVtX2JpdGZpdF9hbGxvY2F0ZV9wYWdlKAogICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQog
ewpAQCAtMTkwLDcgKzIyNSw3IEBAIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fYml0Zml0X2Ny
ZWF0ZV8KICAgICBwYXNfcGFnZV9iYXNlKiByZXN1bHQ7CiAgICAgUEFTX0FTU0VSVChraW5kID09
IHBhc19tZWRpdW1fYml0Zml0X3BhZ2Vfa2luZCk7CiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2Nv
bmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgcmVzdWx0ID0gcGFzX3BhZ2Vf
aGVhZGVyX3RhYmxlX2FkZCgmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCisg
ICAgcmVzdWx0ID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2FkZCgmaml0X21lZGl1bV9wYWdlX2hl
YWRlcl90YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpJVF9N
RURJVU1fUEFHRV9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJRy5tZWRpdW1fYml0Zml0
X2NvbmZpZyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZGFy
eSk7CkBAIC0xOTgsMTEgKzIzMywxMSBAQCBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX2JpdGZp
dF9jcmVhdGVfCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBqaXRfbWVkaXVtX2JpdGZp
dF9kZXN0cm95X3BhZ2VfaGVhZGVyKAordm9pZCBqaXRfbWVkaXVtX2Rlc3Ryb3lfcGFnZV9oZWFk
ZXIoCiAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpCiB7CiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVh
cF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX3JlbW92ZSgmaml0
X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCisgICAgcGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlX3JlbW92ZSgmaml0X21lZGl1bV9wYWdlX2hlYWRlcl90YWJsZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEpJVF9NRURJVU1fUEFHRV9TSVpFLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFnZSk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0
aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKQEAgLTI2OSwxNCArMzA0LDE0IEBAIHZvaWQq
IGppdF9wcmVwYXJlX3RvX2VudW1lcmF0ZShwYXNfZW51bWUKICAgICAgICAgICAgIHJlc3VsdCwK
ICAgICAgICAgICAgIGVudW1lcmF0b3IsCiAgICAgICAgICAgICAocGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlKilwYXNfZW51bWVyYXRvcl9yZWFkKAotICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsIHJv
b3RfZGF0YS0+c21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBzaXplb2YocGFzX3BhZ2Vf
aGVhZGVyX3RhYmxlKSkpKQorICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsIHJvb3RfZGF0YS0+
c21hbGxfcGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihwYXNfcGFnZV9oZWFkZXJfdGFibGUpKSkp
CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIAogICAgIGlmICghcGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2VudW1lcmF0b3JfZGF0YV9hZGRfcGFnZV9oZWFkZXJfdGFibGUoCiAgICAgICAgICAgICBy
ZXN1bHQsCiAgICAgICAgICAgICBlbnVtZXJhdG9yLAogICAgICAgICAgICAgKHBhc19wYWdlX2hl
YWRlcl90YWJsZSopcGFzX2VudW1lcmF0b3JfcmVhZCgKLSAgICAgICAgICAgICAgICBlbnVtZXJh
dG9yLCByb290X2RhdGEtPm1lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihw
YXNfcGFnZV9oZWFkZXJfdGFibGUpKSkpCisgICAgICAgICAgICAgICAgZW51bWVyYXRvciwgcm9v
dF9kYXRhLT5tZWRpdW1fcGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihwYXNfcGFnZV9oZWFkZXJf
dGFibGUpKSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7
CkBAIC0zMzEsNiArMzY2LDggQEAgdm9pZCBqaXRfaGVhcF9jb25maWdfYWRkX2ZyZXNoX21lbW9y
eShwYQogICAgICAgICAmaml0X2ZyZXNoX21lbW9yeV9oZWFwLCByYW5nZS5iZWdpbiwgcmFuZ2Uu
ZW5kLCBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJvLCAmY29uZmlnKTsKIH0KIAorUEFTX1NFR1JF
R0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVGSU5JVElPTlMoCisgICAgaml0X3Nt
YWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcsIEpJVF9IRUFQX0NPTkZJRy5zbWFsbF9zZWdyZWdh
dGVkX2NvbmZpZyk7CiBQQVNfQklURklUX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFRklO
SVRJT05TKAogICAgIGppdF9zbWFsbF9iaXRmaXRfcGFnZV9jb25maWcsIEpJVF9IRUFQX0NPTkZJ
Ry5zbWFsbF9iaXRmaXRfY29uZmlnKTsKIFBBU19CSVRGSVRfUEFHRV9DT05GSUdfU1BFQ0lBTEla
QVRJT05fREVGSU5JVElPTlMoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9qaXRfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg4NDA4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzYsMTIgKzM2LDE0IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotI2RlZmluZSBKSVRf
U01BTExfTUlOX0FMSUdOX1NISUZUIDJ1Ci0jZGVmaW5lIEpJVF9TTUFMTF9NSU5fQUxJR04gKDF1
IDw8IEpJVF9TTUFMTF9NSU5fQUxJR05fU0hJRlQpCisjZGVmaW5lIEpJVF9TTUFMTF9TRUdSRUdB
VEVEX01JTl9BTElHTl9TSElGVCA0dQorI2RlZmluZSBKSVRfU01BTExfU0VHUkVHQVRFRF9NSU5f
QUxJR04gKDF1IDw8IEpJVF9TTUFMTF9TRUdSRUdBVEVEX01JTl9BTElHTl9TSElGVCkKKyNkZWZp
bmUgSklUX1NNQUxMX0JJVEZJVF9NSU5fQUxJR05fU0hJRlQgMnUKKyNkZWZpbmUgSklUX1NNQUxM
X0JJVEZJVF9NSU5fQUxJR04gKDF1IDw8IEpJVF9TTUFMTF9CSVRGSVRfTUlOX0FMSUdOX1NISUZU
KQogI2RlZmluZSBKSVRfU01BTExfUEFHRV9TSVpFIDE2Mzg0dQogI2RlZmluZSBKSVRfU01BTExf
R1JBTlVMRV9TSVpFIDE2Mzg0dQotI2RlZmluZSBKSVRfTUVESVVNX01JTl9BTElHTl9TSElGVCA4
dQotI2RlZmluZSBKSVRfTUVESVVNX01JTl9BTElHTiAoMXUgPDwgSklUX01FRElVTV9NSU5fQUxJ
R05fU0hJRlQpCisjZGVmaW5lIEpJVF9NRURJVU1fQklURklUX01JTl9BTElHTl9TSElGVCA4dQor
I2RlZmluZSBKSVRfTUVESVVNX0JJVEZJVF9NSU5fQUxJR04gKDF1IDw8IEpJVF9NRURJVU1fQklU
RklUX01JTl9BTElHTl9TSElGVCkKICNkZWZpbmUgSklUX01FRElVTV9QQUdFX1NJWkUgMTMxMDcy
dQogI2lmIFBBU19BUk02NAogI2RlZmluZSBKSVRfTUVESVVNX0dSQU5VTEVfU0laRSAxNjM4NHUK
QEAgLTY2LDIzICs2OCwzMyBAQCBQQVNfQVBJIHZvaWQgaml0X3R5cGVfZHVtcChjb25zdCBwYXNf
aGVhCiAKIFBBU19BUEkgcGFzX3BhZ2VfYmFzZSogaml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFy
eV9yZW1vdGUocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsIHZvaWQqIGJvdW5kYXJ5KTsKIAot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9zbWFsbF9iaXRmaXRf
cGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5KTsKLXN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKiBqaXRfc21hbGxfYml0Zml0X2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRl
cihwYXNfcGFnZV9iYXNlKiBwYWdlKTsKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFn
ZV9iYXNlKiBqaXRfc21hbGxfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5
KTsKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBqaXRfc21hbGxfYm91bmRhcnlfZm9y
X3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UpOworUEFTX0FQSSB2b2lkKiBqaXRfc21h
bGxfc2VncmVnYXRlZF9hbGxvY2F0ZV9wYWdlKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3JvbGUgcm9sZSk7CitQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9zbWFs
bF9zZWdyZWdhdGVkX2NyZWF0ZV9wYWdlX2hlYWRlcigKKyAgICB2b2lkKiBib3VuZGFyeSwgcGFz
X3BhZ2Vfa2luZCBraW5kLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CitQQVNfQVBJIHZvaWQgaml0X3NtYWxsX2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCisgICAgcGFzX3Bh
Z2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwor
UEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkqIGppdF9zbWFsbF9z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvcigKKyAgICBwYXNfc2VncmVn
YXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KTsKKworUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVDTEFSQVRJ
T05TKGppdF9zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKTsKKwogUEFTX0FQSSB2b2lkKiBq
aXRfc21hbGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOwogUEFT
X0FQSSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfYml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcigK
ICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX3BhZ2Vfa2luZCBraW5kLCBwYXNfbG9ja19ob2xkX21v
ZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci1QQVNfQVBJIHZvaWQgaml0X3NtYWxsX2JpdGZpdF9k
ZXN0cm95X3BhZ2VfaGVhZGVyKAotICAgIHBhc19wYWdlX2Jhc2UqIHBhZ2UsIHBhc19sb2NrX2hv
bGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogUEFTX0JJVEZJVF9QQUdFX0NPTkZJR19T
UEVDSUFMSVpBVElPTl9ERUNMQVJBVElPTlMoaml0X3NtYWxsX2JpdGZpdF9wYWdlX2NvbmZpZyk7
CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX2Jp
dGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkpOworc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fcGFnZV9oZWFkZXJfZm9y
X2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5KTsKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KiBqaXRfbWVkaXVtX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlcihwYXNfcGFnZV9iYXNlKiBwYWdl
KTsKIFBBU19BUEkgdm9pZCogaml0X21lZGl1bV9iaXRmaXRfYWxsb2NhdGVfcGFnZSgKICAgICBw
YXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9u
KiB0cmFuc2FjdGlvbik7CiBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fYml0Zml0
X2NyZWF0ZV9wYWdlX2hlYWRlcigKICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX3BhZ2Vfa2luZCBr
aW5kLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci1QQVNfQVBJIHZv
aWQgaml0X21lZGl1bV9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlcigKK1BBU19BUEkgdm9pZCBq
aXRfbWVkaXVtX2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCiAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwg
cGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCiBQQVNfQklURklUX1BB
R0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFUSU9OUyhqaXRfbWVkaXVtX2JpdGZpdF9w
YWdlX2NvbmZpZyk7CkBAIC0xMjEsMTYgKzEzMywxNiBAQCBQQVNfSEVBUF9DT05GSUdfU1BFQ0lB
TElaQVRJT05fREVDTEFSQVRJCiAgICAgICAgICAgICAuaGVhcF9jb25maWdfcHRyID0gJmppdF9o
ZWFwX2NvbmZpZywgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmlnX3B0ciA9ICZqaXRfaGVhcF9j
b25maWcudmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9jb25maWcuYmFzZSwgXAogICAgICAg
ICAgICAgLnBhZ2VfY29uZmlnX2tpbmQgPSBwYXNfcGFnZV9jb25maWdfa2luZF9iaXRmaXQsIFwK
LSAgICAgICAgICAgIC5taW5fYWxpZ25fc2hpZnQgPSBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNl
ICMjIF9NSU5fQUxJR05fU0hJRlQsIFwKKyAgICAgICAgICAgIC5taW5fYWxpZ25fc2hpZnQgPSBK
SVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMjIF9CSVRGSVRfTUlOX0FMSUdOX1NISUZULCBcCiAg
ICAgICAgICAgICAucGFnZV9zaXplID0gSklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfUEFH
RV9TSVpFLCBcCiAgICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0gSklUXyAjIyB2YXJpYW50X3Vw
cGVyY2FzZSAjIyBfR1JBTlVMRV9TSVpFLCBcCiAgICAgICAgICAgICAubWF4X29iamVjdF9zaXpl
ID0gXAotICAgICAgICAgICAgICAgIFBBU19CSVRGSVRfTUFYX0ZSRUVfTUFYX1ZBTElEIDw8IEpJ
VF8gIyMgdmFyaWFudF91cHBlcmNhc2UgIyMgX01JTl9BTElHTl9TSElGVCwgXAotICAgICAgICAg
ICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2Ug
IyMgX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnksIFwKLSAgICAgICAgICAgIC5ib3Vu
ZGFyeV9mb3JfcGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlhbnRfbG93ZXJjYXNlICMjIF9iaXRm
aXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyLCBcCisgICAgICAgICAgICAgICAgUEFTX0JJVEZJ
VF9NQVhfRlJFRV9NQVhfVkFMSUQgPDwgSklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfQklU
RklUX01JTl9BTElHTl9TSElGVCwgXAorICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3Vu
ZGFyeSA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX3BhZ2VfaGVhZGVyX2Zvcl9ib3Vu
ZGFyeSwgXAorICAgICAgICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciA9IGppdF8gIyMg
dmFyaWFudF9sb3dlcmNhc2UgIyMgX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciwgXAogICAgICAg
ICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUgPSBqaXRfcGFnZV9oZWFkZXJf
Zm9yX2JvdW5kYXJ5X3JlbW90ZSwgXAogICAgICAgICAgICAgLmNyZWF0ZV9wYWdlX2hlYWRlciA9
IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIs
IFwKLSAgICAgICAgICAgIC5kZXN0cm95X3BhZ2VfaGVhZGVyID0gaml0XyAjIyB2YXJpYW50X2xv
d2VyY2FzZSAjIyBfYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIgXAorICAgICAgICAgICAgLmRl
c3Ryb3lfcGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlhbnRfbG93ZXJjYXNlICMjIF9kZXN0cm95
X3BhZ2VfaGVhZGVyIFwKICAgICAgICAgfSwgXAogICAgICAgICAudmFyaWFudCA9IHBhc18gIyMg
dmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LCBcCiAgICAg
ICAgIC5raW5kID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2ppdF8gIyMgdmFyaWFudF9s
b3dlcmNhc2UgIyMgX2JpdGZpdCwgXApAQCAtMTQ3LDExICsxNTksNDMgQEAgUEFTX0hFQVBfQ09O
RklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFUSQogICAgICAgICAuZ2V0X3R5cGVfc2l6ZSA9IGpp
dF90eXBlX3NpemUsIFwKICAgICAgICAgLmdldF90eXBlX2FsaWdubWVudCA9IGppdF90eXBlX2Fs
aWdubWVudCwgXAogICAgICAgICAuZHVtcF90eXBlID0gaml0X3R5cGVfZHVtcCwgXAotICAgICAg
ICAubGFyZ2VfYWxpZ25tZW50ID0gSklUX1NNQUxMX01JTl9BTElHTiwgXAorICAgICAgICAubGFy
Z2VfYWxpZ25tZW50ID0gUEFTX01JTl9DT05TVChKSVRfU01BTExfU0VHUkVHQVRFRF9NSU5fQUxJ
R04sIEpJVF9TTUFMTF9CSVRGSVRfTUlOX0FMSUdOKSwgXAogICAgICAgICAuc21hbGxfc2VncmVn
YXRlZF9jb25maWcgPSB7IFwKICAgICAgICAgICAgIC5iYXNlID0geyBcCi0gICAgICAgICAgICAg
ICAgLmlzX2VuYWJsZWQgPSBmYWxzZSBcCi0gICAgICAgICAgICB9IFwKKyAgICAgICAgICAgICAg
ICAuaXNfZW5hYmxlZCA9IHRydWUsIFwKKyAgICAgICAgICAgICAgICAuaGVhcF9jb25maWdfcHRy
ID0gJmppdF9oZWFwX2NvbmZpZywgXAorICAgICAgICAgICAgICAgIC5wYWdlX2NvbmZpZ19wdHIg
PSAmaml0X2hlYXBfY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UsIFwKKyAgICAg
ICAgICAgICAgICAucGFnZV9jb25maWdfa2luZCA9IHBhc19wYWdlX2NvbmZpZ19raW5kX3NlZ3Jl
Z2F0ZWQsIFwKKyAgICAgICAgICAgICAgICAubWluX2FsaWduX3NoaWZ0ID0gSklUX1NNQUxMX1NF
R1JFR0FURURfTUlOX0FMSUdOX1NISUZULCBcCisgICAgICAgICAgICAgICAgLnBhZ2Vfc2l6ZSA9
IEpJVF9TTUFMTF9QQUdFX1NJWkUsIFwKKyAgICAgICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0g
SklUX1NNQUxMX0dSQU5VTEVfU0laRSwgXAorICAgICAgICAgICAgICAgIC5tYXhfb2JqZWN0X3Np
emUgPSBQQVNfTUFYX09CSkVDVF9TSVpFKEpJVF9TTUFMTF9QQUdFX1NJWkUpLCBcCisgICAgICAg
ICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9IGppdF9zbWFsbF9wYWdlX2hlYWRl
cl9mb3JfYm91bmRhcnksIFwKKyAgICAgICAgICAgICAgICAuYm91bmRhcnlfZm9yX3BhZ2VfaGVh
ZGVyID0gaml0X3NtYWxsX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciwgXAorICAgICAgICAgICAg
ICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlID0gaml0X3BhZ2VfaGVhZGVyX2Zv
cl9ib3VuZGFyeV9yZW1vdGUsIFwKKyAgICAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVy
ID0gaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfY3JlYXRlX3BhZ2VfaGVhZGVyLCBcCisgICAgICAgICAg
ICAgICAgLmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBqaXRfc21hbGxfZGVzdHJveV9wYWdlX2hlYWRl
ciBcCisgICAgICAgICAgICB9LCBcCisgICAgICAgICAgICAudmFyaWFudCA9IHBhc19zbWFsbF9z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIFwKKyAgICAgICAgICAgIC5raW5kID0gcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9qaXRfc21hbGxfc2VncmVnYXRlZCwgXAorICAg
ICAgICAgICAgLndhc3RlYWdlX2hhbmRpY2FwID0gMS4sIFwKKyAgICAgICAgICAgIC5zaGFyaW5n
X3NoaWZ0ID0gUEFTX1NNQUxMX1NIQVJJTkdfU0hJRlQsIFwKKyAgICAgICAgICAgIC5udW1fYWxs
b2NfYml0cyA9IFBBU19CQVNJQ19TRUdSRUdBVEVEX05VTV9BTExPQ19CSVRTKEpJVF9TTUFMTF9T
RUdSRUdBVEVEX01JTl9BTElHTl9TSElGVCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX1NNQUxMX1BBR0VfU0la
RSksIFwKKyAgICAgICAgICAgIC5zaGFyZWRfcGF5bG9hZF9vZmZzZXQgPSAwLCBcCisgICAgICAg
ICAgICAuZXhjbHVzaXZlX3BheWxvYWRfb2Zmc2V0ID0gMCwgXAorICAgICAgICAgICAgLnNoYXJl
ZF9wYXlsb2FkX3NpemUgPSAwLCBcCisgICAgICAgICAgICAuZXhjbHVzaXZlX3BheWxvYWRfc2l6
ZSA9IEpJVF9TTUFMTF9QQUdFX1NJWkUsIFwKKyAgICAgICAgICAgIC5zaGFyZWRfbG9nZ2luZ19t
b2RlID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX25vX2xvZ2dpbmdfbW9kZSwgXAorICAg
ICAgICAgICAgLmV4Y2x1c2l2ZV9sb2dnaW5nX21vZGUgPSBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fc2l6ZV9vYmxpdmlvdXNfbG9nZ2luZ19tb2RlLCBcCisgICAgICAgICAgICAudXNlX3Jl
dmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAorICAgICAgICAgICAgLmNoZWNrX2Rl
YWxsb2NhdGlvbiA9IGZhbHNlLCBcCisgICAgICAgICAgICAuZW5hYmxlX2VtcHR5X3dvcmRfZWxp
Z2liaWxpdHlfb3B0aW1pemF0aW9uX2Zvcl9zaGFyZWQgPSBmYWxzZSwgXAorICAgICAgICAgICAg
LmVuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbl9mb3JfZXhjbHVzaXZl
ID0gdHJ1ZSwgXAorICAgICAgICAgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gdHJ1ZSwgXAorICAg
ICAgICAgICAgLnBhZ2VfYWxsb2NhdG9yID0gaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfYWxsb2NhdGVf
cGFnZSwgXAorICAgICAgICAgICAgLnNoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvciA9IGpp
dF9zbWFsbF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvciwgXAorICAg
ICAgICAgICAgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKGppdF9z
bWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKSBcCiAgICAgICAgIH0sIFwKICAgICAgICAgLm1l
ZGl1bV9zZWdyZWdhdGVkX2NvbmZpZyA9IHsgXAogICAgICAgICAgICAgLmJhc2UgPSB7IFwKQEAg
LTE5MCwzMyArMjM0LDMzIEBAIFBBU19BUEkgZXh0ZXJuIHBhc19oZWFwX2NvbmZpZyBqaXRfaGVh
cF8KIFBBU19BUEkgZXh0ZXJuIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwIGppdF9mcmVzaF9t
ZW1vcnlfaGVhcDsKIAogUEFTX0FQSSBleHRlcm4gcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFn
ZV9zaGFyaW5nX2NhY2hlIGppdF9sYXJnZV9mcmVzaF9tZW1vcnlfaGVhcDsKLVBBU19BUEkgZXh0
ZXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZSBqaXRfc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3Rh
YmxlOwotUEFTX0FQSSBleHRlcm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9tZWRpdW1fYml0
Zml0X3BhZ2VfaGVhZGVyX3RhYmxlOworUEFTX0FQSSBleHRlcm4gcGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlIGppdF9zbWFsbF9wYWdlX2hlYWRlcl90YWJsZTsKK1BBU19BUEkgZXh0ZXJuIHBhc19wYWdl
X2hlYWRlcl90YWJsZSBqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlOwogUEFTX0FQSSBleHRl
cm4gcGFzX2hlYXBfcnVudGltZV9jb25maWcgaml0X2hlYXBfcnVudGltZV9jb25maWc7CiBQQVNf
QVBJIGV4dGVybiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhIGppdF9yb290X2RhdGE7CiAKLXN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfYml0Zml0X3Bh
Z2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFyeSkKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5
KHZvaWQqIGJvdW5kYXJ5KQogewogICAgIHJldHVybiBwYXNfcGFnZV9oZWFkZXJfdGFibGVfZ2V0
X2Zvcl9ib3VuZGFyeSgKLSAgICAgICAgJmppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFi
bGUsIEpJVF9TTUFMTF9QQUdFX1NJWkUsIGJvdW5kYXJ5KTsKKyAgICAgICAgJmppdF9zbWFsbF9w
YWdlX2hlYWRlcl90YWJsZSwgSklUX1NNQUxMX1BBR0VfU0laRSwgYm91bmRhcnkpOwogfQogCi1z
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaml0X3NtYWxsX2JpdGZpdF9ib3VuZGFyeV9m
b3JfcGFnZV9oZWFkZXIocGFzX3BhZ2VfYmFzZSogcGFnZSkKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBqaXRfc21hbGxfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jh
c2UqIHBhZ2UpCiB7CiAgICAgcmV0dXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRfYm91bmRh
cnkoCi0gICAgICAgICZqaXRfc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfU01B
TExfUEFHRV9TSVpFLCBwYWdlKTsKKyAgICAgICAgJmppdF9zbWFsbF9wYWdlX2hlYWRlcl90YWJs
ZSwgSklUX1NNQUxMX1BBR0VfU0laRSwgcGFnZSk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91
bmRhcnkodm9pZCogYm91bmRhcnkpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3BhZ2Vf
YmFzZSogaml0X21lZGl1bV9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkp
CiB7CiAgICAgcmV0dXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRfZm9yX2JvdW5kYXJ5KAot
ICAgICAgICAmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsIEpJVF9NRURJVU1f
UEFHRV9TSVpFLCBib3VuZGFyeSk7CisgICAgICAgICZqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3Rh
YmxlLCBKSVRfTUVESVVNX1BBR0VfU0laRSwgYm91bmRhcnkpOwogfQogCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCogaml0X21lZGl1bV9iaXRmaXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVh
ZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
aml0X21lZGl1bV9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIocGFzX3BhZ2VfYmFzZSogcGFnZSkK
IHsKICAgICByZXR1cm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9ib3VuZGFyeSgKLSAgICAg
ICAgJmppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfTUVESVVNX1BBR0Vf
U0laRSwgcGFnZSk7CisgICAgICAgICZqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRf
TUVESVVNX1BBR0VfU0laRSwgcGFnZSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBw
YXNfcGFnZV9iYXNlKiBqaXRfaGVhcF9jb25maWdfcGFnZV9oZWFkZXIodWludHB0cl90IGJlZ2lu
KQpAQCAtMjI0LDEyICsyNjgsMTIgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdl
X2Jhc2UqIAogICAgIHBhc19wYWdlX2Jhc2UqIHJlc3VsdDsKIAogICAgIHJlc3VsdCA9IHBhc19w
YWdlX2hlYWRlcl90YWJsZV9nZXRfZm9yX2FkZHJlc3MoCi0gICAgICAgICZqaXRfc21hbGxfYml0
Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfU01BTExfUEFHRV9TSVpFLCAodm9pZCopYmVnaW4p
OworICAgICAgICAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfU01BTExfUEFHRV9T
SVpFLCAodm9pZCopYmVnaW4pOwogICAgIGlmIChyZXN1bHQpCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAKICAgICByZXR1cm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9mb3JfYWRkcmVzcygK
LSAgICAgICAgJmppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfTUVESVVN
X1BBR0VfU0laRSwgKHZvaWQqKWJlZ2luKTsKKyAgICAgICAgJmppdF9tZWRpdW1fcGFnZV9oZWFk
ZXJfdGFibGUsIEpJVF9NRURJVU1fUEFHRV9TSVpFLCAodm9pZCopYmVnaW4pOwogfQogCiBQQVNf
QVBJIHZvaWQgaml0X2hlYXBfY29uZmlnX2FkZF9mcmVzaF9tZW1vcnkocGFzX3JhbmdlIHJhbmdl
KTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZp
Z19yb290X2RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9qaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmgJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIx
LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNiw4ICszNiw4IEBAIHR5cGVkZWYgc3RydWN0IGppdF9oZWFwX2Nv
bmZpZ19yb290X2RhdGEKIHR5cGVkZWYgc3RydWN0IHBhc19wYWdlX2hlYWRlcl90YWJsZSBwYXNf
cGFnZV9oZWFkZXJfdGFibGU7CiAKIHN0cnVjdCBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhIHsK
LSAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIHNtYWxsX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJs
ZTsKLSAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIG1lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJf
dGFibGU7CisgICAgcGFzX3BhZ2VfaGVhZGVyX3RhYmxlKiBzbWFsbF9wYWdlX2hlYWRlcl90YWJs
ZTsKKyAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIG1lZGl1bV9wYWdlX2hlYWRlcl90YWJsZTsK
IH07CiAKIFBBU19FTkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwkocmV2aXNpb24gMjg4NDA4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmMJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIwLTIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC02MCw3ICs2MCw4IEBAIHBhc19iaXRmaXRfaGVhcCogcGFzX2JpdGZpdF9o
ZWFwX2NyZWF0ZSgKIH0KIAogcGFzX2JpdGZpdF92YXJpYW50X3NlbGVjdGlvbiBwYXNfYml0Zml0
X2hlYXBfc2VsZWN0X3ZhcmlhbnQoc2l6ZV90IHJlcXVlc3RlZF9vYmplY3Rfc2l6ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtNzksNyArODAsNyBAQCBwYXNfYml0
Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIHBhc19iaXRmaXRfCiAgICAgICAgIHNpemVfdCBvYmplY3Rf
c2l6ZTsKIAogICAgICAgICBwYWdlX2NvbmZpZyA9ICpwYXNfaGVhcF9jb25maWdfYml0Zml0X3Bh
Z2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudChjb25maWcsIHZhcmlhbnQpOwotICAgICAgICBpZiAo
IXBhc19iaXRmaXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZChwYWdlX2NvbmZpZykpCisgICAgICAg
IGlmICghcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKHBhZ2VfY29uZmlnLCBydW50
aW1lX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAodmVyYm9z
ZSkKQEAgLTEyNSw3ICsxMjYsOCBAQCBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIHBhc19i
aXRmaXRfCiB2b2lkIHBhc19iaXRmaXRfaGVhcF9jb25zdHJ1Y3RfYW5kX2luc2VydF9zaXplX2Ns
YXNzKHBhc19iaXRmaXRfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBvYmplY3Rfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyog
Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpCiB7CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtMTM5LDcgKzE0MSw3IEBA
IHZvaWQgcGFzX2JpdGZpdF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXIKICAgICAgICAgICAgICAg
ICBoZWFwLCBzaXplX2NsYXNzLCBvYmplY3Rfc2l6ZSk7CiAgICAgfQogCi0gICAgYmVzdCA9IHBh
c19iaXRmaXRfaGVhcF9zZWxlY3RfdmFyaWFudChvYmplY3Rfc2l6ZSwgY29uZmlnKTsKKyAgICBi
ZXN0ID0gcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KG9iamVjdF9zaXplLCBjb25maWcs
IHJ1bnRpbWVfY29uZmlnKTsKIAogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKICAg
ICBpZiAodmVyYm9zZSkgewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzMsMTAgKzMzLDEyIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19i
aXRmaXRfaGVhcDsKIHN0cnVjdCBwYXNfaGVhcF9jb25maWc7CitzdHJ1Y3QgcGFzX2hlYXBfcnVu
dGltZV9jb25maWc7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiBzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfaGVhcCBw
YXNfYml0Zml0X2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9jb25maWcgcGFzX2hlYXBf
Y29uZmlnOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWcgcGFzX2hlYXBf
cnVudGltZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIApAQCAtNjEsMTIgKzYzLDE1IEBA
IHR5cGVkZWYgc3RydWN0IHsKIH0gcGFzX2JpdGZpdF92YXJpYW50X3NlbGVjdGlvbjsKIAogUEFT
X0FQSSBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uCi1wYXNfYml0Zml0X2hlYXBfc2VsZWN0
X3ZhcmlhbnQoc2l6ZV90IG9iamVjdF9zaXplLCBwYXNfaGVhcF9jb25maWcqIGNvbmZpZyk7Citw
YXNfYml0Zml0X2hlYXBfc2VsZWN0X3ZhcmlhbnQoc2l6ZV90IG9iamVjdF9zaXplLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1l
X2NvbmZpZyk7CiAKIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0X2hlYXBfY29uc3RydWN0X2FuZF9p
bnNlcnRfc2l6ZV9jbGFzcyhwYXNfYml0Zml0X2hlYXAqIGhlYXAsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9z
aXplX2NsYXNzKiBzaXplX2NsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9iamVjdF9zaXplLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpOwogCiBQQVNfQVBJIHBh
c19oZWFwX3N1bW1hcnkgcGFzX2JpdGZpdF9oZWFwX2NvbXB1dGVfc3VtbWFyeShwYXNfYml0Zml0
X2hlYXAqIGhlYXApOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X3BhZ2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCShyZXZpc2lvbiAyODg0MDgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29u
ZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChjKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAicGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmgiCiAjaW5jbHVkZSAicGFzX2JpdHZlY3Rvci5oIgog
I2luY2x1ZGUgInBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCIKKyNpbmNsdWRlICJw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX2Jhc2VfY29uZmln
LmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgi
CkBAIC0xMzEsMTAgKzEzMiwxOCBAQCBQQVNfQVBJIGV4dGVybiBib29sIHBhc19tYXJnZV9iaXRm
aXRfcGFnCiAgICAgUEFTX0FQSSB2b2lkIGxvd2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAjIyBf
c3BlY2lhbGl6ZWRfcGFnZV9zaHJpbmtfd2l0aF9wYWdlKCBcCiAgICAgICAgIHBhc19iaXRmaXRf
cGFnZSogcGFnZSwgdWludHB0cl90IGJlZ2luLCBzaXplX3QgbmV3X3NpemUpCiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQocGFzX2JpdGZpdF9w
YWdlX2NvbmZpZyBjb25maWcpCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZ19pc19lbmFibGVkKHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmlnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9ydW50
aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpCiB7CiAgICAgaWYgKCFjb25maWcuYmFzZS5pc19l
bmFibGVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLyogRG9pbmcgdGhpcyBjaGVjayBo
ZXJlIGlzIG5vdCBzdXBlciBuZWNlc3NhcnksIGJ1dCBpdCdzIHNvcnQgb2YgbmljZSBmb3IgY2Fz
ZXMgd2hlcmUgd2UgaGF2ZSBhIGhlYXAKKyAgICAgICB0aGF0IHNvbWV0aW1lcyB1c2VzIGJpdGZp
dCBleGNsdXNpdmVseSBvciBzb21ldGltZXMgdXNlcyBzZWdyZWdhdGVkIGV4Y2x1c2l2ZWx5IGFu
ZCB0aGF0J3Mgc2VsZWN0ZWQKKyAgICAgICBieSBzZWxlY3Rpbmcgb3IgbXV0YXRpbmcgcnVudGlt
ZV9jb25maWdzLiBUaGlzIGlzX2VuYWJsZWQgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgYXMgcGFy
dCBvZiB0aGUgbWF0aAorICAgICAgIHRoYXQgc2V0cyB1cCBzaXplIGNsYXNzZXMsIGF0IGxlYXN0
IGZvciBub3csIHNvIHRoZSBpbXBsaWNhdGlvbnMgb2Ygbm90IGRvaW5nIHRoaXMgY2hlY2sgYXJl
IHJhdGhlcgorICAgICAgIHRpbnkuICovCisgICAgaWYgKCFydW50aW1lX2NvbmZpZy0+bWF4X2Jp
dGZpdF9vYmplY3Rfc2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHN3aXRjaCAoY29u
ZmlnLnZhcmlhbnQpIHsKICAgICBjYXNlIHBhc19zbWFsbF9iaXRmaXRfcGFnZV9jb25maWdfdmFy
aWFudDoKICAgICAgICAgcmV0dXJuIHBhc19zbWFsbF9iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFu
dF9pc19lbmFibGVkX292ZXJyaWRlOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzA1LDYgKzMwNSwyMyBAQCBwYXNfaGVhcF9jb25maWdfYml0Zml0X3BhZ2Vf
Y29uZmlnX2Zvcl92CiAgICAgcmV0dXJuIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnOwogfQog
CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19oZWFwX2NvbmZpZ19zZWdyZWdh
dGVkX2hlYXBfbWluX2FsaWduX3NoaWZ0KHBhc19oZWFwX2NvbmZpZyBjb25maWcpCit7CisgICAg
c2l6ZV90IHJlc3VsdDsKKyAgICByZXN1bHQgPSBTSVpFX01BWDsKKyAgICBpZiAoY29uZmlnLnNt
YWxsX2JpdGZpdF9jb25maWcuYmFzZS5pc19lbmFibGVkKQorICAgICAgICByZXN1bHQgPSBQQVNf
TUlOKHJlc3VsdCwgY29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hp
ZnQpOworICAgIGlmIChjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5pc19lbmFi
bGVkKQorICAgICAgICByZXN1bHQgPSBQQVNfTUlOKHJlc3VsdCwgY29uZmlnLnNtYWxsX3NlZ3Jl
Z2F0ZWRfY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0KTsKKyAgICBQQVNfQVNTRVJUKHJlc3Vs
dCAhPSBTSVpFX01BWCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHNpemVfdCBwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9oZWFwX21pbl9hbGln
bihwYXNfaGVhcF9jb25maWcgY29uZmlnKQoreworICAgIHJldHVybiAoc2l6ZV90KTEgPDwgcGFz
X2hlYXBfY29uZmlnX3NlZ3JlZ2F0ZWRfaGVhcF9taW5fYWxpZ25fc2hpZnQoY29uZmlnKTsKK30K
KwogLyogUmV0dXJucyB0cnVlIGlmIHdlIHdlcmUgdGhlIGZpcnN0IHRvIGFjdGl2ZSBpdC4gTXVz
dCBob2xkIHRoZSBoZWFwIGxvY2sgdG8gY2FsbCB0aGlzLiBUaGlzIGlzCiAgICBwZXJtaXNzaXZl
IG9mIHJlY3Vyc2l2ZSBpbml0aWFsaXphdGlvbjogaW4gdGhhdCBjYXNlLCBpdCB3aWxsIGp1c3Qg
cHJldGVuZCB0aGF0IHRoZSBjb25maWcgaXMKICAgIGFscmVhZHkgaW5pdGlhbGl6ZWQuICovCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFw
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcC5jCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDcgKzUyLDggQEAgc3RhdGljIHZvaWQgY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCAqY2FjaGVkX2luZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB3aGVyZSk7CiAKLXN0YXRpYyBz
aXplX3QgbWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVhcF9jb25maWcqIGNv
bmZpZykKK3N0YXRpYyBzaXplX3QgbWluX2FsaWduX2Zvcl9oZWFwKHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25m
aWcqIGNvbmZpZykKIHsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50IHNl
Z3JlZ2F0ZWRfdmFyaWFudDsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQgYml0
Zml0X3ZhcmlhbnQ7CkBAIC02MCw3ICs2MSw3IEBAIHN0YXRpYyBzaXplX3QgbWluX29iamVjdF9z
aXplX2Zvcl9oZWFwX2MKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2Vf
Y29uZmlnOwogICAgICAgICBwYWdlX2NvbmZpZyA9CiAgICAgICAgICAgICBwYXNfaGVhcF9jb25m
aWdfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoY29uZmlnLCBzZWdyZWdh
dGVkX3ZhcmlhbnQpOwotICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lz
X2VuYWJsZWQoKnBhZ2VfY29uZmlnKSkKKyAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19pc19lbmFibGVkKCpwYWdlX2NvbmZpZywgaGVhcC0+cnVudGltZV9jb25maWcpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19taW5fYWxpZ24oKnBhZ2VfY29uZmlnKTsKICAgICB9CkBAIC03MCw3ICs3MSw3IEBA
IHN0YXRpYyBzaXplX3QgbWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2MKICAgICAgICAgcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CiAgICAgICAgIHBhZ2VfY29uZmlnID0KICAg
ICAgICAgICAgIHBhc19oZWFwX2NvbmZpZ19iaXRmaXRfcGFnZV9jb25maWdfcHRyX2Zvcl92YXJp
YW50KGNvbmZpZywgYml0Zml0X3ZhcmlhbnQpOwotICAgICAgICBpZiAoIXBhc19iaXRmaXRfcGFn
ZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcpKQorICAgICAgICBpZiAoIXBhc19iaXRm
aXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcsIGhlYXAtPnJ1bnRpbWVfY29u
ZmlnKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICByZXR1cm4gcGFzX3BhZ2VfYmFz
ZV9jb25maWdfbWluX2FsaWduKHBhZ2VfY29uZmlnLT5iYXNlKTsKICAgICB9CkBAIC03OSw2ICs4
MCwxMiBAQCBzdGF0aWMgc2l6ZV90IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jCiAgICAgcmV0
dXJuIGNvbmZpZy0+bGFyZ2VfYWxpZ25tZW50OwogfQogCitzdGF0aWMgc2l6ZV90IG1pbl9vYmpl
Y3Rfc2l6ZV9mb3JfaGVhcChwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCit7Cisg
ICAgcmV0dXJuIG1pbl9hbGlnbl9mb3JfaGVhcChoZWFwLCBjb25maWcpOworfQorCiBzdGF0aWMg
c2l6ZV90IG1heF9vYmplY3Rfc2l6ZV9mb3JfcGFnZV9jb25maWcocGFzX2hlYXAqIHBhcmVudF9o
ZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19w
YWdlX2Jhc2VfY29uZmlnKiBwYWdlX2NvbmZpZykKIHsKQEAgLTk4LDkgKzEwNSw5IEBAIHN0YXRp
YyBzaXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9wYWdlX2MKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1zdGF0aWMgc2l6ZV90IG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplX2Zvcl9oZWFwX2Nv
bmZpZyhwYXNfaGVhcCogcGFyZW50X2hlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWcpCitzdGF0aWMgc2l6ZV90IG1heF9zZWdyZWdhdGVkX29i
amVjdF9zaXplX2Zvcl9oZWFwKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWcpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogICAgIApAQCAtMTExLDcgKzExOCw3IEBAIHN0YXRpYyBzaXplX3QgbWF4X3Nl
Z3JlZ2F0ZWRfb2JqZWN0X3NpemUKICAgICAgICAgc2l6ZV90IHJlc3VsdDsKICAgICAgICAgCiAg
ICAgICAgIHBhZ2VfY29uZmlnID0gcGFzX2hlYXBfY29uZmlnX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfcHRyX2Zvcl92YXJpYW50KGNvbmZpZywgdmFyaWFudCk7Ci0gICAgICAgIGlmICghcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcpKQorICAgICAgICBp
ZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQoKnBhZ2VfY29uZmlnLCBo
ZWFwLT5ydW50aW1lX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBt
YXhfc2l6ZV9wZXJfY29uZmlnID0gbWF4X29iamVjdF9zaXplX2Zvcl9wYWdlX2NvbmZpZyhwYXJl
bnRfaGVhcCwgJnBhZ2VfY29uZmlnLT5iYXNlKTsKQEAgLTEyNSw5ICsxMzIsOSBAQCBzdGF0aWMg
c2l6ZV90IG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0
YXRpYyBzaXplX3QgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcocGFzX2hl
YXAqIHBhcmVudF9oZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNv
bmZpZykKK3N0YXRpYyBzaXplX3QgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcChwYXNf
aGVhcCogcGFyZW50X2hlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKIHsKICAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCkBAIC0xNDUsNyArMTUy
LDcgQEAgc3RhdGljIHNpemVfdCBtYXhfYml0Zml0X29iamVjdF9zaXplX2ZvcgogICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2Nv
bmZpZy0+a2luZCkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX2lzX2VuYWJsZWQoKnBhZ2VfY29uZmlnKSkgeworICAgICAgICBpZiAoIXBhc19iaXRm
aXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcsIGhlYXAtPnJ1bnRpbWVfY29u
ZmlnKSkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgICAgICAgICBwYXNf
bG9nKCJOb3QgY29uc2lkZXJpbmcgJXMgYmVjYXVzZSBpdCdzIGRpc2FibGVkLlxuIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5n
KHBhZ2VfY29uZmlnLT5raW5kKSk7CkBAIC0xODIsMTIgKzE4OSwxMiBAQCBzdGF0aWMgc2l6ZV90
IG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBz
aXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVhcCogcGFyZW50X2hl
YXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKK3N0YXRpYyBzaXplX3QgbWF4X29i
amVjdF9zaXplX2Zvcl9oZWFwKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZp
ZykKIHsKLSAgICByZXR1cm4gUEFTX01BWChtYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZV9mb3Jf
aGVhcF9jb25maWcocGFyZW50X2hlYXAsIGhlYXAsIGNvbmZpZyksCi0gICAgICAgICAgICAgICAg
ICAgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcocGFyZW50X2hlYXAsIGhl
YXAsIGNvbmZpZykpOworICAgIHJldHVybiBQQVNfTUFYKG1heF9zZWdyZWdhdGVkX29iamVjdF9z
aXplX2Zvcl9oZWFwKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcpLAorICAgICAgICAgICAgICAg
ICAgIG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yX2hlYXAocGFyZW50X2hlYXAsIGhlYXAsIGNv
bmZpZykpOwogfQogCiB2b2lkIHBhc19zZWdyZWdhdGVkX2hlYXBfY29uc3RydWN0KHBhc19zZWdy
ZWdhdGVkX2hlYXAqIHNlZ3JlZ2F0ZWRfaGVhcCwKQEAgLTg0Nyw3ICs4NTQsNyBAQCBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kCiAKICAgICBwYXNfaGVhcF9sb2NrX2Fz
c2VydF9oZWxkKCk7CiAgICAgCi0gICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXpl
ID49IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcoY29uZmlnKSk7CisgICAgUEFTX0FT
U0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXplID49IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcCho
ZWFwLCBjb25maWcpKTsKIAogICAgIHJlbWF0ZXJpYWxpemVfc2l6ZV9sb29rdXBfaWZfbmVjZXNz
YXJ5KGhlYXAsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKIApAQCAtMTMyOCw2ICsxMzM1LDggQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgIHNpemVfdCBvYmpl
Y3Rfc2l6ZTsKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUq
IG1lZGl1bV90dXBsZTsKICAgICBib29sIGlzX3V0aWxpdHk7CisgICAgc2l6ZV90IGR5bmFtaWNf
bWluX2FsaWduOworICAgIHNpemVfdCBzdGF0aWNfbWluX2FsaWduOwogCiAgICAgcGFzX2hlYXBf
bG9ja19hc3NlcnRfaGVsZCgpOwogCkBAIC0xMzkxLDIyICsxNDAwLDM2IEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICBwYXJlbnRfaGVhcCA9IHBhc19oZWFw
X2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCk7CiAKICAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVk
X2hlYXBfaW5kZXhfZm9yX3NpemUoc2l6ZSwgKmNvbmZpZyk7CisKKyAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgcGFzX2xvZygiaW5kZXggPSAlenVcbiIsIGluZGV4KTsKKyAgICAKICAgICBvYmpl
Y3Rfc2l6ZSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9mb3JfaW5kZXgoaW5kZXgsICpjb25m
aWcpOwogCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIm9iamVjdF9zaXplID0g
JXp1XG4iLCBvYmplY3Rfc2l6ZSk7CisKICAgICBpZiAob2JqZWN0X3NpemUgPCBzaXplKSB7CiAg
ICAgICAgIC8qIFRoaXMnbGwgb25seSBoYXBwZW4gaW4gY2VydGFpbiBraW5kcyBvZiBvdmVyZmxv
d3MsIGluIHdoaWNoIGNhc2UgdGhlIHNpemUgbXVzdCBiZSB3YXkgdG9vIGJpZy4gKi8KICAgICAg
ICAgUEFTX0FTU0VSVCghb2JqZWN0X3NpemUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9
CiAKLSAgICBvYmplY3Rfc2l6ZSA9IFBBU19NQVgobWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2Nv
bmZpZyhjb25maWcpLCBvYmplY3Rfc2l6ZSk7CisgICAgb2JqZWN0X3NpemUgPSBQQVNfTUFYKG1p
bl9vYmplY3Rfc2l6ZV9mb3JfaGVhcChoZWFwLCBjb25maWcpLCBvYmplY3Rfc2l6ZSk7CisKKyAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygib2JqZWN0X3NpemUgYWZ0ZXIgYWNjb3Vu
dGluZyBmb3IgbWluX29iamVjdF9zaXplID0gJXp1XG4iLCBvYmplY3Rfc2l6ZSk7CisKKyAgICBz
dGF0aWNfbWluX2FsaWduID0gcGFzX2hlYXBfY29uZmlnX3NlZ3JlZ2F0ZWRfaGVhcF9taW5fYWxp
Z24oKmNvbmZpZyk7CisgICAgZHluYW1pY19taW5fYWxpZ24gPSBtaW5fYWxpZ25fZm9yX2hlYXAo
aGVhcCwgY29uZmlnKTsKKyAgICBQQVNfQVNTRVJUKGR5bmFtaWNfbWluX2FsaWduID49IHN0YXRp
Y19taW5fYWxpZ24pOwogCiAgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6
ZSwgYWxpZ25tZW50KSk7Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZCgKLSAgICAgICAg
ICAgICAgICAgICBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2Fs
aWduKGNvbmZpZy0+c21hbGxfc2VncmVnYXRlZF9jb25maWcpKSk7CisgICAgUEFTX0FTU0VSVChw
YXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgc3RhdGljX21pbl9hbGlnbikpOwogCi0gICAgYWxp
Z25tZW50ID0gUEFTX01BWChhbGlnbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24oY29uZmlnLT5zbWFsbF9zZWdyZWdhdGVk
X2NvbmZpZykpOworICAgIG9iamVjdF9zaXplID0gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIo
b2JqZWN0X3NpemUsIGR5bmFtaWNfbWluX2FsaWduKTsKKyAgICAKKyAgICBhbGlnbm1lbnQgPSBQ
QVNfTUFYKGFsaWdubWVudCwgZHluYW1pY19taW5fYWxpZ24pOwogCiAgICAgLyogSWYgd2UgaGF2
ZSBvdmVyZmxvd2VkIGFscmVhZHkgdGhlbiBiYWlsLiAqLwogICAgIGlmICgodW5zaWduZWQpb2Jq
ZWN0X3NpemUgIT0gb2JqZWN0X3NpemUgfHwKQEAgLTE0MTksNyArMTQ0Miw3IEBAIHBhc19zZWdy
ZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAvKiBJZiBpdCdzIGltcG9zc2li
bGUgdG8gdXNlIHRoZSBsYXJnZXN0IHNlZ3JlZ2F0ZWQgaGVhcCB0byBhbGxvY2F0ZSB0aGUgcmVx
dWVzdCB0aGVuCiAgICAgICAgaW1tZWRpYXRlbHkgZ2l2ZSB1cC4gRG8gdGhpcyBiZWZvcmUgZW5z
dXJlX3NpemVfbG9va3VwIHNvIHRoYXQgaGVhcHMgdGhhdCBhcmUgb25seSB1c2VkCiAgICAgICAg
Zm9yIGxhcmdlIG9iamVjdCBhbGxvY2F0aW9uIGRvbid0IGFsbG9jYXRlIGFueSBzbWFsbCBoZWFw
IG1ldGEtZGF0YS4gKi8KLSAgICBpZiAob2JqZWN0X3NpemUgPiBtYXhfb2JqZWN0X3NpemVfZm9y
X2hlYXBfY29uZmlnKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcpKSB7CisgICAgaWYgKG9iamVj
dF9zaXplID4gbWF4X29iamVjdF9zaXplX2Zvcl9oZWFwKHBhcmVudF9oZWFwLCBoZWFwLCBjb25m
aWcpKSB7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiSXQncyB0
b28gYmlnLlxuIik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTY1Nyw3ICsxNjgwLDcgQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnX3B0ciA9CiAgICAgICAgICAgICAgICAgICAg
IHBhc19oZWFwX2NvbmZpZ19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudChj
b25maWcsIHZhcmlhbnQpOwotICAgICAgICAgICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWdfcHRyKSkKKyAgICAgICAgICAgICAgICBp
ZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQoKnBhZ2VfY29uZmlnX3B0
ciwgaGVhcC0+cnVudGltZV9jb25maWcpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZyA9ICpwYWdlX2Nv
bmZpZ19wdHI7CkBAIC0xNzAxLDkgKzE3MjQsOSBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3Vy
ZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBQQVNfQVNTRVJUKG9i
amVjdF9zaXplIDw9IGhlYXAtPnJ1bnRpbWVfY29uZmlnLT5tYXhfYml0Zml0X29iamVjdF9zaXpl
KTsKICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgICAgICAgICBvYmpl
Y3Rfc2l6ZSA8PSBtYXhfYml0Zml0X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXJlbnRf
aGVhcCwgaGVhcCwgY29uZmlnKSk7CisgICAgICAgICAgICAgICAgb2JqZWN0X3NpemUgPD0gbWF4
X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcChwYXJlbnRfaGVhcCwgaGVhcCwgY29uZmlnKSk7
CiAgICAgICAgICAgICBiZXN0X2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdCA9Ci0gICAgICAgICAg
ICAgICAgcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KG9iamVjdF9zaXplLCBjb25maWcp
Lm9iamVjdF9zaXplOworICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfaGVhcF9zZWxlY3RfdmFy
aWFudChvYmplY3Rfc2l6ZSwgY29uZmlnLCBoZWFwLT5ydW50aW1lX2NvbmZpZykub2JqZWN0X3Np
emU7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFpc191dGlsaXR5KTsKICAgICAgICAgfQogCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFw
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcC5oCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
NTUsMTQgKzE1NSwxNyBAQCBQQVNfQVBJIHBhc19iaXRmaXRfaGVhcCogcGFzX3NlZ3JlZ2F0ZWRf
CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CiBwYXNfc2VncmVnYXRlZF9oZWFwX2lu
ZGV4X2Zvcl9zaXplKHNpemVfdCBzaXplLCBwYXNfaGVhcF9jb25maWcgY29uZmlnKQogewotICAg
IHJldHVybiAoc2l6ZSArIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25m
aWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpIC0gMSkKLSAgICAgICAgPj4gY29uZmlnLnNtYWxs
X3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0OworICAgIHNpemVfdCBtaW5f
YWxpZ25fc2hpZnQ7CisgICAgc2l6ZV90IG1pbl9hbGlnbjsKKyAgICBtaW5fYWxpZ25fc2hpZnQg
PSBwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9oZWFwX21pbl9hbGlnbl9zaGlmdChjb25maWcp
OworICAgIG1pbl9hbGlnbiA9IChzaXplX3QpMSA8PCBtaW5fYWxpZ25fc2hpZnQ7CisgICAgcmV0
dXJuIChzaXplICsgbWluX2FsaWduIC0gMSkgPj4gbWluX2FsaWduX3NoaWZ0OwogfQogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CiBwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZm9y
X2luZGV4KHNpemVfdCBpbmRleCwgcGFzX2hlYXBfY29uZmlnIGNvbmZpZykKIHsKLSAgICByZXR1
cm4gaW5kZXggPDwgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UubWluX2FsaWdu
X3NoaWZ0OworICAgIHJldHVybiBpbmRleCA8PCBwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9o
ZWFwX21pbl9hbGlnbl9zaGlmdChjb25maWcpOwogfQogCiAvKiBUaGVzZSBmdW5jdGlvbnMgaGVs
cCB3aXRoIGRlYWxpbmcgd2l0aCBwYXNfaGVhcF9yZWY6OmFsbG9jYXRvcl9pbmRleC4gQ2FuIHBh
c3MgYSBOVUxMIGNhY2hlZF9pbmRleCwgaW4gd2hpY2gKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMJKHJldmlz
aW9uIDI4ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhZ2UuYwkod29ya2luZyBjb3B5KQpAQCAtMjQzLDcgKzI0Myw2IEBAIHZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QocGFzX3MKIAogICAgICAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eShkaXJlY3RvcnkpKSB7CiAg
ICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCk7Ci0gICAg
ICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCA8IChwYXNfYWxs
b2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKICAgICAgICAgICAgIHBhZ2UtPnZpZXdfY2FjaGVfaW5k
ZXggPSBkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXg7CiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXggPT0gKHBhc19hbGxv
Y2F0b3JfaW5kZXgpVUlOVF9NQVgpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCShy
ZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTMgKzI5LDE0
IEBACiAjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX2Jp
dHZlY3Rvci5oIgogI2luY2x1ZGUgInBhc19jb25maWcuaCIKKyNpbmNsdWRlICJwYXNfaGVhcF9y
dW50aW1lX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21v
ZGUuaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIgogI2lu
Y2x1ZGUgInBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vf
c2hhcmluZ19tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2xv
Z2dpbmdfbW9kZS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LmgiCiAjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfdmlldy5oIgpAQCAtMjIyLDEwICsyMjMsMTggQEAgUEFTX0FQSSBleHRlcm4gYm9vbCBwYXNf
bWVkaXVtX3NlZ3JlZ2F0ZQogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19HT09E
X01BWF9PQkpFQ1RfU0laRShvYmplY3RfcGF5bG9hZF9zaXplLCBtaW5fbnVtX29iamVjdHMpIFwK
ICAgICAoKG9iamVjdF9wYXlsb2FkX3NpemUpIC8gKG1pbl9udW1fb2JqZWN0cykpCiAKLXN0YXRp
YyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZykKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
IGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2NvbmZpZykKIHsKICAg
ICBpZiAoIWNvbmZpZy5iYXNlLmlzX2VuYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAvKiBEb2luZyB0aGlzIGNoZWNrIGhlcmUgaXMgbm90IHN1cGVyIG5lY2Vzc2FyeSwgYnV0IGl0
J3Mgc29ydCBvZiBuaWNlIGZvciBjYXNlcyB3aGVyZSB3ZSBoYXZlIGEgaGVhcAorICAgICAgIHRo
YXQgc29tZXRpbWVzIHVzZXMgYml0Zml0IGV4Y2x1c2l2ZWx5IG9yIHNvbWV0aW1lcyB1c2VzIHNl
Z3JlZ2F0ZWQgZXhjbHVzaXZlbHkgYW5kIHRoYXQncyBzZWxlY3RlZAorICAgICAgIGJ5IHNlbGVj
dGluZyBvciBtdXRhdGluZyBydW50aW1lX2NvbmZpZ3MuIFRoaXMgaXNfZW5hYmxlZCBmdW5jdGlv
biBpcyBvbmx5IGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBtYXRoCisgICAgICAgdGhhdCBzZXRzIHVw
IHNpemUgY2xhc3NlcywgYXQgbGVhc3QgZm9yIG5vdywgc28gdGhlIGltcGxpY2F0aW9ucyBvZiBu
b3QgZG9pbmcgdGhpcyBjaGVjayBhcmUgcmF0aGVyCisgICAgICAgdGlueS4gKi8KKyAgICBpZiAo
IXJ1bnRpbWVfY29uZmlnLT5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIHN3aXRjaCAoY29uZmlnLnZhcmlhbnQpIHsKICAgICBjYXNlIHBhc19z
bWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQ6CiAgICAgICAgIHJldHVybiBwYXNf
c21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50X2lzX2VuYWJsZWRfb3ZlcnJpZGU7
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZgkocmV2aXNpb24g
Mjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfa2luZC5kZWYJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDQsMyArMTA0LDcg
QEAgUEFTX0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkQoaAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSE9UQklUX0hFQVBfQ09ORklHLm1lZGl1bV9zZWdy
ZWdhdGVkX2NvbmZpZykKICNlbmRpZgogCisjaWYgUEFTX0VOQUJMRV9KSVQKK1BBU19ERUZJTkVf
U0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EKGppdF9zbWFsbF9zZWdyZWdhdGVkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX0hFQVBfQ09ORklHLnNtYWxsX3Nl
Z3JlZ2F0ZWRfY29uZmlnKQorI2VuZGlmCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5oCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
X2FuZF9yb2xlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNyArNDEsNyBAQCBlbnVtIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kCiAKIHR5cGVkZWYgZW51bSBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRf
YW5kX3JvbGU7CiAKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfS0lORF9BTkRf
Uk9MRV9OVU1fQklUUyA1dQorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5E
X0FORF9ST0xFX05VTV9CSVRTIDZ1CiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklH
X0tJTkRfQU5EX1JPTEVfTUFTSyBcCiAgICAgKCgxdSA8PCBQQVNfU0VHUkVHQVRFRF9QQUdFX0NP
TkZJR19LSU5EX0FORF9ST0xFX05VTV9CSVRTKSAtIDF1KQogCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xMzAsNyArMTMwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IHBhc19zZWdyZQogICAgICAgICBiaXRmaXRfc2l6ZV9jbGFzcyA9IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2dldF9iaXRmaXRfc2l6ZV9jbGFzcyhyZXN1bHQpOwogICAgICAgICAKICAg
ICAgICAgcGFzX2JpdGZpdF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXJ0X3NpemVfY2xhc3MoCi0g
ICAgICAgICAgICBiaXRmaXRfaGVhcCwgYml0Zml0X3NpemVfY2xhc3MsIG9iamVjdF9zaXplLCBo
ZWFwX2NvbmZpZyk7CisgICAgICAgICAgICBiaXRmaXRfaGVhcCwgYml0Zml0X3NpemVfY2xhc3Ms
IG9iamVjdF9zaXplLCBoZWFwX2NvbmZpZywgaGVhcC0+cnVudGltZV9jb25maWcpOwogICAgIH0K
ICAgICAKICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHJfc3RvcmUoJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwgTlVMTCk7CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAJKHJl
dmlzaW9uIDI4ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFw
Q2hhb3NUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjA3LDYgKzEyMDcsMTEgQEAgdm9p
ZCBhZGRBbGxUZXN0cygpCiAgICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRIZWFwOwogCiAgICAg
ICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7CisKKyAgICAgICAgeworICAgICAg
ICAgICAgRm9yY2VCaXRmaXQgZm9yY2VCaXRmaXQ7CisgICAgICAgICAgICBBRERfR1JPVVAoYWRk
VGhlVGVzdHMoMSwgdHJ1ZSkpOworICAgICAgICB9CiAgICAgfQogCiAgICAgewpAQCAtMTIyNyw2
ICsxMjMyLDExIEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgICAgICBCb290SklUSGVhcCBib290
SklUSGVhcDsKIAogICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKKwor
ICAgICAgICB7CisgICAgICAgICAgICBGb3JjZUJpdGZpdCBmb3JjZUJpdGZpdDsKKyAgICAgICAg
ICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOworICAgICAgICB9CiAgICAgfQog
I2VuZGlmIC8vIFBBU19FTkFCTEVfSE9UQklUCiB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvSklUSGVhcFRlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL3Rlc3QvSklUSGVhcFRlc3RzLmNwcAkocmV2aXNpb24gMjg4NDA4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0pJVEhlYXBUZXN0cy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNjksNiArNjksMTEgQEAgdm9pZCB0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSh1
bnNpZwogICAgIGppdF9oZWFwX2RlYWxsb2NhdGUobmV3UHRyKTsKIH0KIAordm9pZCB0ZXN0QWxs
b2NhdGlvblNpemUoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCBhY3R1YWxTaXplKQorewor
ICAgIENIRUNLX0VRVUFMKGppdF9oZWFwX2dldF9zaXplKGppdF9oZWFwX3RyeV9hbGxvY2F0ZShy
ZXF1ZXN0ZWRTaXplKSksIGFjdHVhbFNpemUpOworfQorCiB9IC8vIGFub255bW91cyBuYW1lc3Bh
Y2UKIAogI2VuZGlmIC8vIFBBU19FTkFCTEVfSklUCkBAIC03OCwxMyArODMsMzAgQEAgdm9pZCBh
ZGRKSVRIZWFwVGVzdHMoKQogI2lmIFBBU19FTkFCTEVfSklUCiAgICAgQm9vdEpJVEhlYXAgYm9v
dEpJVEhlYXA7CiAKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgw
LCAwLCAwLCAwLCAwLCA0KSk7Ci0gICAgQUREX1RFU1QodGVzdEFsbG9jYXRlU2hyaW5rQW5kQWxs
b2NhdGUoMCwgMCwgMTI4LCA2NCwgNjQsIDQpKTsKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVT
aHJpbmtBbmRBbGxvY2F0ZSgzMiwgMTAsIDEyOCwgNjQsIDY0LCA0KSk7Ci0gICAgQUREX1RFU1Qo
dGVzdEFsbG9jYXRlU2hyaW5rQW5kQWxsb2NhdGUoMzIsIDEwLCAxMDAwLCA1MDAsIDEwMDAsIDQp
KTsKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgwLCAwLCAyMDQ4
LCA1MTIsIDExMDAsIDI1NikpOwotICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFs
bG9jYXRlKDMyLCAxMCwgMjA0OCwgNTEyLCAxMTAwLCAyNTYpKTsKLSAgICBBRERfVEVTVCh0ZXN0
QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgxMTAwLCAxMCwgMjA0OCwgNTEyLCAxMTAwLCAyNTYp
KTsKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgwLCAwLCAxMDAw
MDAsIDEwMDAwLCA4MDAwMCwgNCkpOworICAgIHsKKyAgICAgICAgRm9yY2VCaXRmaXQgZm9yY2VC
aXRmaXQ7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKDAs
IDAsIDAsIDAsIDAsIDQpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRlU2hyaW5rQW5k
QWxsb2NhdGUoMCwgMCwgMTI4LCA2NCwgNjQsIDQpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFs
bG9jYXRlU2hyaW5rQW5kQWxsb2NhdGUoMzIsIDEwLCAxMjgsIDY0LCA2NCwgNCkpOworICAgICAg
ICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgzMiwgMTAsIDEwMDAsIDUw
MCwgMTAwMCwgNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxv
Y2F0ZSgwLCAwLCAyMDQ4LCA1MTIsIDExMDAsIDI1NikpOworICAgICAgICBBRERfVEVTVCh0ZXN0
QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgzMiwgMTAsIDIwNDgsIDUxMiwgMTEwMCwgMjU2KSk7
CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKDExMDAsIDEw
LCAyMDQ4LCA1MTIsIDExMDAsIDI1NikpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVT
aHJpbmtBbmRBbGxvY2F0ZSgwLCAwLCAxMDAwMDAsIDEwMDAwLCA4MDAwMCwgNCkpOworICAgIH0K
KyAgICAKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvblNpemUoNCwgMTYpKTsKKyAgICBBRERf
VEVTVCh0ZXN0QWxsb2NhdGlvblNpemUoOCwgMTYpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2Nh
dGlvblNpemUoMTIsIDE2KSk7CisgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25TaXplKDE2LCAx
NikpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSgyMCwgMzIpKTsKKyAgICB7Cisg
ICAgICAgIEZvcmNlQml0Zml0IGZvcmNlQml0Zml0OworICAgICAgICBBRERfVEVTVCh0ZXN0QWxs
b2NhdGlvblNpemUoNCwgNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvblNpemUo
OCwgOCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvblNpemUoMTIsIDEyKSk7Cisg
ICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSgxNiwgMTYpKTsKKyAgICAgICAgQURE
X1RFU1QodGVzdEFsbG9jYXRpb25TaXplKDIwLCAyMCkpOworICAgIH0KICNlbmRpZiAvLyBQQVNf
RU5BQkxFX0pJVAogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RI
YXJuZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3Qv
VGVzdEhhcm5lc3MuY3BwCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjUsNiArMzY1
LDcgQEAgdm9pZCBhZGRSZWRCbGFja1RyZWVUZXN0cygpOwogdm9pZCBhZGRUU0RUZXN0cygpOwog
dm9pZCBhZGRUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cygpOwogdm9pZCBhZGRV
dGlsc1Rlc3RzKCk7Cit2b2lkIGFkZFZpZXdDYWNoZVRlc3RzKCk7CiAKIHZvaWQgdGVzdFN1Y2Nl
ZWRlZCgpCiB7CkBAIC03MjksNiArNzMwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KQogICAgIEFERF9TVUlURShSZWRCbGFja1RyZWUpOwogICAgIEFERF9TVUlURShUU0QpOwog
ICAgIEFERF9TVUlURShVdGlscyk7CisgICAgQUREX1NVSVRFKFZpZXdDYWNoZSk7CiAgICAgCiAg
ICAgc3RyaW5nIGZpbHRlcjsKICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9WaWV3Q2FjaGVUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L1ZpZXdDYWNoZVRlc3RzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVmlld0NhY2hlVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJUZXN0SGFybmVzcy5oIgorCisjaWYgUEFTX0VOQUJMRV9CTUFM
TE9DCisKKyNpbmNsdWRlICJibWFsbG9jX2hlYXAuaCIKKyNpbmNsdWRlICJibWFsbG9jX2hlYXBf
Y29uZmlnLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKKyNp
bmNsdWRlIDxzZXQ+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSB7CisKK3Zv
aWQgc2V0dXBDb25maWcoKQoreworICAgIC8vIElmIHRoZXNlIGFzc2VydGlvbnMgZXZlciBmYWls
IHdlIGNvdWxkIGp1c3QgZml4IGl0IGJ5IHJlcGxhY2luZyB0aGVtIHdpdGggY29kZSB0aGF0IG11
dGF0ZXMgdGhlCisgICAgLy8gY29uZmlnIHRvIGhhdmUgdGhlIHNldHRpbmdzIHdlIHdhbnQuCisg
ICAgQ0hFQ0tfRVFVQUwoYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZS52aWV3
X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSwKKyAgICAgICAgICAgICAgICBwYXNfaGVh
cF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkpOworICAgIENI
RUNLX0VRVUFMKGJtYWxsb2NfaW50cmluc2ljX3J1bnRpbWVfY29uZmlnLmJhc2UuZGlyZWN0b3J5
X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUsIDApOworfQorCit2b2lkIHRlc3REaXNhYmxl
Vmlld0NhY2hlVXNpbmdCb3VuZEZvck5vVmlld0NhY2hlKCkKK3sKKyAgICBzZXR1cENvbmZpZygp
OworCisgICAgYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZS5kaXJlY3Rvcnlf
c2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IFVJTlRfTUFYOworCisgICAgYm1hbGxvY19k
ZWFsbG9jYXRlKGJtYWxsb2NfYWxsb2NhdGUoNDIpKTsKK30KKwordm9pZCB0ZXN0RW5hYmxlVmll
d0NhY2hlQXRTb21lQm91bmRGb3JOb1ZpZXdDYWNoZSh1bnNpZ25lZCBib3VuZCkKK3sKKyAgICBz
ZXR1cENvbmZpZygpOworCisgICAgYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFz
ZS5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IGJvdW5kOworCisgICAg
dm9pZCogcHRyID0gYm1hbGxvY19hbGxvY2F0ZSg0Mik7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
dyB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KAorICAgICAgICByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSwgJmJtYWxsb2NfaGVhcF9jb25maWcpOworICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiB0aGVEaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKKworICAgIENIRUNLX0VRVUFMKHRoZURp
cmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCwgVUlOVF9NQVgpOworCisgICAgc2V0PHBhc19zZWdy
ZWdhdGVkX3ZpZXc+IHZpZXdzOworICAgIHZpZXdzLmluc2VydCh2aWV3KTsKKworICAgIGZvciAo
OzspIHsKKyAgICAgICAgcHRyID0gYm1hbGxvY19hbGxvY2F0ZSg0Mik7CisgICAgICAgIHZpZXcg
PSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KHB0ciksICZibWFsbG9jX2hlYXBfY29uZmlnKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVf
ZGlyZWN0b3J5KHZpZXcpOworCisgICAgICAgIENIRUNLX0VRVUFMKGRpcmVjdG9yeSwgdGhlRGly
ZWN0b3J5KTsKKworICAgICAgICB2aWV3cy5pbnNlcnQodmlldyk7CisKKyAgICAgICAgaWYgKHZp
ZXdzLnNpemUoKSA+IGJvdW5kKSB7CisgICAgICAgICAgICBDSEVDS19FUVVBTCh2aWV3cy5zaXpl
KCksIGJvdW5kICsgMSk7CisgICAgICAgICAgICBDSEVDS19MRVNTKHRoZURpcmVjdG9yeS0+dmll
d19jYWNoZV9pbmRleCwgVUlOVF9NQVgpOworICAgICAgICAgICAgQ0hFQ0tfR1JFQVRFUih0aGVE
aXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXgsIDApOworCisgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlKiBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZSh2aWV3KTsKKyAg
ICAgICAgICAgIENIRUNLX0VRVUFMKHBhZ2UtPnZpZXdfY2FjaGVfaW5kZXgsIHRoZURpcmVjdG9y
eS0+dmlld19jYWNoZV9pbmRleCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICB9Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gUEFTX0VOQUJM
RV9CTUFMTE9DCisKK3ZvaWQgYWRkVmlld0NhY2hlVGVzdHMoKQoreworI2lmIFBBU19FTkFCTEVf
Qk1BTExPQworICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7CisgICAgRm9yY2VU
TEFzIGZvcmNlVExBczsKKyAgICAKKyAgICBBRERfVEVTVCh0ZXN0RGlzYWJsZVZpZXdDYWNoZVVz
aW5nQm91bmRGb3JOb1ZpZXdDYWNoZSgpKTsKKyAgICBBRERfVEVTVCh0ZXN0RW5hYmxlVmlld0Nh
Y2hlQXRTb21lQm91bmRGb3JOb1ZpZXdDYWNoZSgxKSk7CisgICAgQUREX1RFU1QodGVzdEVuYWJs
ZVZpZXdDYWNoZUF0U29tZUJvdW5kRm9yTm9WaWV3Q2FjaGUoMTApKTsKKyAgICBBRERfVEVTVCh0
ZXN0RW5hYmxlVmlld0NhY2hlQXRTb21lQm91bmRGb3JOb1ZpZXdDYWNoZSgxMDApKTsKKyNlbmRp
ZiAvLyBQQVNfRU5BQkxFX0JNQUxMT0MKK30KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449880</attachid>
            <date>2022-01-24 16:27:51 -0800</date>
            <delta_ts>2022-02-10 15:07:09 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>71006</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg4NDYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDIyLTAxLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W2xpYnBhc10gaml0X2hlYXAgc2hvdWxkIHN1cHBvcnQgdGhlIHNlZ3JlZ2F0ZWQgaGVhcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlzYWJsZSB0aGUg
aml0X2hlYXAgc2VncmVnYXRlZCBoZWFwIGlmIHRoZSBleGVjdXRhYmxlIHBvb2wgc2l6ZSBpcyB0
b28gc21hbGwuCisKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHA6CisgICAg
ICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24pOgorCiAyMDIyLTAxLTI0ICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgRml4ZWRWZWN0b3I6
OmNsZWFyKCksIGNvbnRhaW5zKCksIGZpbmQoKSwgYW5kIGZpbmRNYXRjaGluZygpLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3Bw
CShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsNiArNDMsNyBAQAogCiAjaWYg
VVNFKExJQlBBU19KSVRfSEVBUCkKICNpbmNsdWRlIDxibWFsbG9jL2ppdF9oZWFwLmg+CisjaW5j
bHVkZSA8Ym1hbGxvYy9qaXRfaGVhcF9jb25maWcuaD4KICNlbHNlCiAjaW5jbHVkZSA8d3RmL01l
dGFBbGxvY2F0b3IuaD4KICNlbmRpZgpAQCAtODQsNiArODUsMTAgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKKyNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQorc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3QgbWluaW11bVBvb2xTaXplRm9yU2VncmVnYXRlZEhlYXAgPSAy
NTYgKiBNQjsKKyNlbmRpZgorCiAjaWYgZGVmaW5lZChGSVhFRF9FWEVDVVRBQkxFX01FTU9SWV9Q
T09MX1NJWkVfSU5fTUIpICYmIEZJWEVEX0VYRUNVVEFCTEVfTUVNT1JZX1BPT0xfU0laRV9JTl9N
QiA+IDAKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGZpeGVkRXhlY3V0YWJsZU1lbW9yeVBvb2xT
aXplID0gRklYRURfRVhFQ1VUQUJMRV9NRU1PUllfUE9PTF9TSVpFX0lOX01CICogTUI7CiAjZWxp
ZiBDUFUoQVJNKQpAQCAtMzU0LDYgKzM1OSwxMSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKSVRS
ZXNlcnZhdGlvbiBpbml0CiAgICAgfQogICAgIHJlc2VydmF0aW9uLnNpemUgPSBzdGQ6Om1heChy
b3VuZFVwVG9NdWx0aXBsZU9mKHBhZ2VTaXplKCksIHJlc2VydmF0aW9uLnNpemUpLCBwYWdlU2l6
ZSgpICogMik7CiAKKyNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQorICAgIGlmIChyZXNlcnZhdGlv
bi5zaXplIDwgbWluaW11bVBvb2xTaXplRm9yU2VncmVnYXRlZEhlYXApCisgICAgICAgIGppdF9o
ZWFwX3J1bnRpbWVfY29uZmlnLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gMDsKKyNlbmRp
ZgorCiAgICAgYXV0byB0cnlDcmVhdGVQYWdlUmVzZXJ2YXRpb24gPSBbXSAoc2l6ZV90IHJlc2Vy
dmF0aW9uU2l6ZSkgewogI2lmIE9TKExJTlVYKQogICAgICAgICAvLyBJZiB3ZSB1c2UgdW5jb21t
aXR0ZWQgcmVzZXJ2YXRpb24sIG1tYXAgb3BlcmF0aW9uIGlzIHJlY29yZGVkIHdpdGggc21hbGwg
cGFnZSBzaXplIGluIHBlcmYgY29tbWFuZCdzIG91dHB1dC4KQEAgLTc3MCw3ICs3ODAsNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1fc3RhcnQpOwogICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIW1fZW5kKTsKICAgICAgICAgICAgIG1fc3RhcnQgPSByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oc3RhcnQpOwotICAgICAgICAgICAgbV9lbmQgPSBtX3N0YXJ0
ICsgc2l6ZUluQnl0ZXM7IAorICAgICAgICAgICAgbV9lbmQgPSBtX3N0YXJ0ICsgc2l6ZUluQnl0
ZXM7CiAgICAgICAgICAgICBqaXRfaGVhcF9hZGRfZnJlc2hfbWVtb3J5KHBhc19yYW5nZV9jcmVh
dGUobV9zdGFydCwgbV9lbmQpKTsKICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0V4ZWN1dGFibGVNZW1vcnlIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVNZW1vcnlIYW5kbGUuaAkocmV2aXNpb24gMjg4
NDA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlTWVtb3J5SGFuZGxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBVU0UoTElCUEFTX0pJVF9I
RUFQKQogI2luY2x1ZGUgPHd0Zi9NZXRhQWxsb2NhdG9yUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8Ym1hbGxvYy9qaXRfaGVhcC5oPgogI2Vs
c2UKICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvckhhbmRsZS5oPgogI2VuZGlmCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyODg0MjQpCisrKyBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMTEgQEAKKzIwMjItMDEtMjMgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBbbGlicGFzXSBqaXRfaGVhcCBzaG91bGQgc3Vw
cG9ydCB0aGUgc2VncmVnYXRlZCBoZWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzU0OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbmUgb2YgdGhlIHRoaW5ncyB0aGF0IGxpYnBhcyBwcm92aWRlcyBp
cyBhIGZhc3QgaW1wbGVtZW50YXRpb24gb2YgZXhlY3V0YWJsZSBtZW1vcnkgYWxsb2NhdGlvbiwg
d2hpY2gKKyAgICAgICAgbGlicGFzIGNhbGxzICJqaXRfaGVhcCIuIFRoZSBpbml0aWFsIGltcGxl
bWVudGF0aW9uIG9mIHRoaXMgb25seSB1c2VkIGxpYnBhcydzIGJpdGZpdCBhbmQgbGFyZ2UKKyAg
ICAgICAgYWxnb3JpdGhtcy4gQml0Zml0IHdhcyB1c2VkIGZvciBzbWFsbGVyIG9iamVjdHMgYW5k
IGxhcmdlIHdhcyB1c2VkIGZvciBsYXJnZXIgb2JqZWN0cy4gVGhlIGxpYnBhcworICAgICAgICBz
ZWdyZWdhdGVkIGhlYXAgd2FzIGRpc2FibGVkIGluIGppdF9oZWFwLiBUaGlzIG1hZGUgc2Vuc2Ug
YmVjYXVzZTogCisKKyAgICAgICAgLSBCaXRmaXQgYW5kIGxhcmdlIHN1cHBvcnQgdGhlIHNocmlu
aygpIGNhbGwsIHdoZXJlIHdlIHNocmluayBhbiBhbGxvY2F0aW9uIGluLXBsYWNlLiBFeGVjdXRh
YmxlCisgICAgICAgICAgYWxsb2NhdGlvbiBzdXBwb3J0cyB0aGlzIHRvIGFpZCBicmFuY2ggY29t
cGFjdGlvbiAod2UgY29tcGFjdCBjb2RlIGFmdGVyIHdlIGNvcHkgaXQgaW50byBpdHMgZmluYWwK
KyAgICAgICAgICByZXN0aW5nIHBsYWNlLCB3aGljaCBpcyBhZnRlciB3ZSBhbGxvY2F0ZSB0aGUg
bWVtb3J5IC0gc28gYWZ0ZXIgd2UgZmluaXNoIGNvbXBhY3Rpb24sIHdlIGNhbiBvbmx5CisgICAg
ICAgICAgc2hyaW5rIHRoZSBhbGxvY2F0aW9uIGluLXBsYWNlIG9yIG5vdCBhdCBhbGwpLgorCisg
ICAgICAgIC0gU2VncmVnYXRlZCBoZWFwcyBoYXZlIHNvbWUgdmlydHVhbCBhZGRyZXNzIHNwYWNl
IG92ZXJoZWFkcywgYW5kIG1lbW9yeSBvdmVyaGVhZHMsIHRoYXQgdGhlIGJpdGZpdAorICAgICAg
ICAgIGFuZCBsYXJnZSBoZWFwcyBkb24ndCBoYXZlLiBUaGlzIGhhcHBlbnMgYmVjYXVzZSBzZWdy
ZWF0ZWQgaGVhcHMgd2lsbCBkZWRpY2F0ZSBlYWNoIHBhZ2UgdG8gb2JqZWN0cworICAgICAgICAg
IG9mIGV4YWN0bHkgb25lIHNpemUgZm9yZXZlci4KKworICAgICAgICBIb3dldmVyLCBzZWdyZWdh
dGVkIGhlYXBzIGFyZSBzdWJzdGFudGlhbGx5IGZhc3RlciB0aGFuIGJpdGZpdCBoZWFwcy4gVGhl
eSBhcmUgZmFzdGVyIHVuZGVyIHNlcmlhbAorICAgICAgICBhbGxvY2F0aW9uIHRoYW5rcyB0byB0
aGUgZmFjdCB0aGF0IG5vIGxvY2tzIG5lZWQgdG8gYmUgYWNxdWlyZWQgZm9yIGEgdHlwaWNhbCBh
bGxvY2F0aW9uIG9yCisgICAgICAgIGRlYWxsb2NhdGlvbi4gVGhleSBhcmUgZXZlbiBtb3JlIGZh
c3RlciB1bmRlciBwYXJhbGxlbCBhbGxvY2F0aW9uIHRoYW5rcyB0byB0aHJlYWQtbG9jYWwgY2Fj
aGluZy4KKworICAgICAgICBUaGlzIHBhdGNoIGVuYWJsZXMgc2VncmVnYXRlZCBoZWFwcyBmb3Ig
dGhlIHNtYWxsZXN0IGppdF9oZWFwIGFsbG9jYXRpb25zICg8PTIwMDAgYnl0ZXMpLiBUaGUgY3V0
b2ZmCisgICAgICAgIHRocmVzaG9sZCBpcyBydW50aW1lIGNvbmZpZ3VyYWJsZSwgc28gaXQncyBw
b3NzaWJsZSB0byBkaXNhYmxlIHNlZ3JlZ2F0ZWQgaGVhcHMgYXQgcnVudGltZSBieSBzZXR0aW5n
CisgICAgICAgIHRoZSBjdXRvZmYgdG8gMC4KKworICAgICAgICBXaXRoIHRoZSAyMDAwIHRocmVz
aG9sZCwgdGhpcyBhcHBlYXJzIHRvIGJlIGEgMC4zJSBTcGVlZG9tZXRlcjIgc3BlZWQtdXAuCisK
KyAgICAgICAgV2hpbGUgdGhlcmUgaXMgYSB0aGVvcmV0aWNhbCBwb3NzaWJpbGl0eSBvZiBtZW1v
cnkgb3ZlcmhlYWQsIEkgaGF2ZW4ndCBzZWVuIGl0LiBJZiB3ZSBhcmUgdXNpbmcganVtcAorICAg
ICAgICBpc2xhbmRzIHRoZW4gdGhlIHZpcnR1YWwgbWVtb3J5IG92ZXJoZWFkIG9mIHNlZ3JlZ2F0
ZWQgaGVhcHMgd2lsbCBqdXN0IG1lYW4gdGhhdCB3ZSB1c2UganVtcCBpc2xhbmRzCisgICAgICAg
IG1vcmUgZnJlcXVlbnRseSwgd2hpY2ggd291bGQgbWFuaWZlc3QgYXMgYSBwZXJmb3JtYW5jZSBy
ZWdyZXNzaW9uIC0tIGJ1dCBJJ3ZlIG5vdCBzZWVuIGFueSBzdWNoCisgICAgICAgIHJlZ3Jlc3Np
b24uIFNvLCB0aGlzIGRpc2FibGVzIHRoZSBzZWdyZWdhdGVkIGhlYXAgaWYgdGhlIEpJVCBwb29s
IHNpemUgaXMgdG9vIHNtYWxsIChzZWUgY2hhbmdlcyB0bworICAgICAgICBFeGVjdXRhYmxlQWxs
b2NhdG9yLmNwcCBpbiBKU0MpLgorCisgICAgICAgICogbGlicGFzL2xpYnBhcy54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmM6
CisgICAgICAgIChqaXRfaGVhcF9zaHJpbmspOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L2ppdF9oZWFwX2NvbmZpZy5jOgorICAgICAgICAoaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfYWxsb2Nh
dGVfcGFnZSk6CisgICAgICAgIChqaXRfc21hbGxfc2VncmVnYXRlZF9jcmVhdGVfcGFnZV9oZWFk
ZXIpOgorICAgICAgICAoaml0X3NtYWxsX2Rlc3Ryb3lfcGFnZV9oZWFkZXIpOgorICAgICAgICAo
aml0X3NtYWxsX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yKToKKyAg
ICAgICAgKGppdF9zbWFsbF9iaXRmaXRfYWxsb2NhdGVfcGFnZSk6CisgICAgICAgIChqaXRfc21h
bGxfYml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcik6CisgICAgICAgIChqaXRfbWVkaXVtX2JpdGZp
dF9jcmVhdGVfcGFnZV9oZWFkZXIpOgorICAgICAgICAoaml0X21lZGl1bV9kZXN0cm95X3BhZ2Vf
aGVhZGVyKToKKyAgICAgICAgKGppdF9wcmVwYXJlX3RvX2VudW1lcmF0ZSk6CisgICAgICAgIChq
aXRfc21hbGxfYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIpOiBEZWxldGVkLgorICAgICAgICAo
aml0X21lZGl1bV9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlcik6IERlbGV0ZWQuCisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmg6CisgICAgICAgIChqaXRfc21h
bGxfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KToKKyAgICAgICAgKGppdF9zbWFsbF9ib3VuZGFy
eV9mb3JfcGFnZV9oZWFkZXIpOgorICAgICAgICAoaml0X21lZGl1bV9wYWdlX2hlYWRlcl9mb3Jf
Ym91bmRhcnkpOgorICAgICAgICAoaml0X21lZGl1bV9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIp
OgorICAgICAgICAoaml0X2hlYXBfY29uZmlnX3BhZ2VfaGVhZGVyKToKKyAgICAgICAgKGppdF9z
bWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KTogRGVsZXRlZC4KKyAgICAgICAg
KGppdF9zbWFsbF9iaXRmaXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKGppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSk6IERlbGV0
ZWQuCisgICAgICAgIChqaXRfbWVkaXVtX2JpdGZpdF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIp
OiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZ19y
b290X2RhdGEuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAu
YzoKKyAgICAgICAgKHBhc19iaXRmaXRfaGVhcF9zZWxlY3RfdmFyaWFudCk6CisgICAgICAgIChw
YXNfYml0Zml0X2hlYXBfY29uc3RydWN0X2FuZF9pbnNlcnRfc2l6ZV9jbGFzcyk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmg6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oOgorICAgICAgICAocGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKHBhc19oZWFwX2NvbmZpZ19zZWdyZWdhdGVkX2hl
YXBfbWluX2FsaWduX3NoaWZ0KToKKyAgICAgICAgKHBhc19oZWFwX2NvbmZpZ19zZWdyZWdhdGVk
X2hlYXBfbWluX2FsaWduKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9oZWFwLmM6CisgICAgICAgIChtaW5fYWxpZ25fZm9yX2hlYXApOgorICAgICAgICAobWlu
X29iamVjdF9zaXplX2Zvcl9oZWFwKToKKyAgICAgICAgKG1heF9zZWdyZWdhdGVkX29iamVjdF9z
aXplX2Zvcl9oZWFwKToKKyAgICAgICAgKG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yX2hlYXAp
OgorICAgICAgICAobWF4X29iamVjdF9zaXplX2Zvcl9oZWFwKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleCk6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jfc2l6ZSk6CisgICAgICAgIChtaW5f
b2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKTogRGVsZXRlZC4KKyAgICAgICAgKG1heF9zZWdy
ZWdhdGVkX29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyk6IERlbGV0ZWQuCisgICAgICAgICht
YXhfYml0Zml0X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyk6IERlbGV0ZWQuCisgICAgICAg
IChtYXhfb2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKTogRGVsZXRlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmg6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hl
YXBfc2l6ZV9mb3JfaW5kZXgpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhZ2UuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uc3RydWN0KToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5o
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5k
ZWY6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfa2luZF9hbmRfcm9sZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9jcmVhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NU
ZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OmFkZEFsbFRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL3Rlc3QvSklUSGVhcFRlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6dGVzdEFsbG9jYXRpb25T
aXplKToKKyAgICAgICAgKGFkZEpJVEhlYXBUZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90
ZXN0L1Rlc3RIYXJuZXNzLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIGxpYnBhcy9z
cmMvdGVzdC9WaWV3Q2FjaGVUZXN0cy5jcHA6IEFkZGVkLgorICAgICAgICAoc3RkOjpzZXR1cENv
bmZpZyk6CisgICAgICAgIChzdGQ6OnRlc3REaXNhYmxlVmlld0NhY2hlVXNpbmdCb3VuZEZvck5v
Vmlld0NhY2hlKToKKyAgICAgICAgKHN0ZDo6dGVzdEVuYWJsZVZpZXdDYWNoZUF0U29tZUJvdW5k
Rm9yTm9WaWV3Q2FjaGUpOgorICAgICAgICAoYWRkVmlld0NhY2hlVGVzdHMpOgorCiAyMDIyLTAx
LTIxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByZXZlcnRpbmcgcjI4ODQwMC4KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxs
b2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4ODQwOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsOSArMzgsOSBAQAogCQkwRjUxNjc3NDFGQUQ2ODVDMDA4MjM2QTggLyog
Ym1hbGxvYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjUxNjc3MzFGQUQ2ODUyMDA4MjM2QTggLyogYm1hbGxvYy5jcHAgKi87IH07CiAJCTBGNTE2
RUU1MjQ1NjE4NEYwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNkVFNDI0NTYxODRGMDA0RTJC
OEQgLyogcGFzX2ludGVybmFsX2NvbmZpZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNTE2RUU5MjQ1NjFBRTkwMDRFMkI4RCAvKiBpc29faGVh
cF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjUxNkVFODI0NTYxQUU4MDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGNTE5M0VFMjY2QzQy
QUQwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE5M0U4MjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVh
cF9jb25maWcuaCAqLzsgfTsKKwkJMEY1MTkzRUUyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9oZWFw
X2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1MTkzRTgyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTE5M0VGMjY2QzQyQUQw
MDQ4M0EyQyAvKiBqaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1MTkzRTkyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY1MTkzRjAyNjZD
NDJBRDAwNDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE5M0VBMjY2QzQyQUMwMDQ4M0Ey
QyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi87IH07CisJCTBGNTE5M0YwMjY2QzQy
QUQwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxOTNFQTI2NkM0MkFDMDA0ODNBMkMg
Lyogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTE5M0YxMjY2QzQyQUQwMDQ4M0EyQyAvKiBqaXRf
aGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNTE5M0VCMjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuYyAqLzsgfTsK
IAkJMEY1MTkzRjIyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9oZWFwLmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxOTNFQzI2NkM0MkFDMDA0ODNBMkMg
Lyogaml0X2hlYXAuYyAqLzsgfTsKIAkJMEY1MTkzRjMyNjZDNDJBRDAwNDgzQTJDIC8qIHBhc19i
YXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE5M0VEMjY2QzQyQUQwMDQ4M0EyQyAvKiBwYXNf
YmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmMgKi87IH07CkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw2ICs1NTQsNyBA
QAogCQkyQzExRTg4RTI3MjhBNzgzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg4QzI3MjhBNzgzMDAy
MTYyRDAgLyogYm1hbGxvY190eXBlLmggKi87IH07CiAJCTJDMTFFODhGMjcyOEE3ODMwMDIxNjJE
MCAvKiBwYXNfc2ltcGxlX3R5cGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDMTFFODhEMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2ltcGxlX3R5cGUu
YyAqLzsgfTsKIAkJMkMxMUU4OTEyNzI4QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OTAyNzI4
QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jICovOyB9OworCQkyQzE2REFFMDI3OUUwNzI5
MDA0MkU5MTkgLyogVmlld0NhY2hlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNo
ZVRlc3RzLmNwcCAqLzsgfTsKIAkJMkMzNDAwMDAyNzU4MTVEMDAwNTU2NUNCIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMzRGRkZGMjc1ODE1RDAwMDU1NjVDQiAvKiBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlLmMgKi87IH07CiAJCTJDMzQwMDAy
Mjc1ODE2ODcwMDU1NjVDQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMzNDAwMDEyNzU4MTY4NzAwNTU2NUNC
IC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgKi87IH07CiAJCTJDMzRGRkZBMjc1NzFEMkYwMDU1
NjVDQiAvKiBwYXNfcGFnZV9iYXNlX2FuZF9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzM0RkZGNTI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3Bh
Z2VfYmFzZV9hbmRfa2luZC5oICovOyB9OwpAQCAtMTI0Nyw2ICsxMjQ4LDcgQEAKIAkJMkMxMUU4
OEMyNzI4QTc4MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBibWFsbG9jX3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkMxMUU4OEQyNzI4QTc4MzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc2ltcGxlX3R5cGUuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkMxMUU4OTAyNzI4QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlw
ZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBibWFsbG9jX3R5cGUuYzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZp
ZXdDYWNoZVRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZp
ZXdDYWNoZVRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNDAwMDEy
NzU4MTY4NzAwNTU2NUNCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJDMzRGRkY1Mjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfcGFnZV9iYXNl
X2FuZF9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jh
c2VfYW5kX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNEZGRjYyNzU3
MUQyRjAwNTU2NUNCIC8qIHBhc19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhl
cl9pbl9mYXN0X21lZ2FwYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21lZ2FwYWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzkzLDYgKzEzOTUsNyBAQAogCQkJ
CTBGODcwMEIyMjVCMEFCMjkwMDBFMUFCRiAvKiBUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRp
b25UZXN0cy5jcHAgKi8sCiAJCQkJMEY4NzAwREUyNUIxNEM2ODAwMEUxQUJGIC8qIFRTRFRlc3Rz
LmNwcCAqLywKIAkJCQkwRjUzMTgxMjIyQzk2MDlEMDAzRjdCNkEgLyogVXRpbHNUZXN0cy5jcHAg
Ki8sCisJCQkJMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3RzLmNwcCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gdGVzdDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0yNjA1LDYgKzI2MDgsNyBAQAogCQkJCTBGREVBNDYxMjI4QjY1MUIwMDg1RTM0MCAvKiBCaXRm
aWVsZFZlY3RvclRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTMxODExMjJDOTU0RUQw
MDNGN0I2QSAvKiBCaXR2ZWN0b3JUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjMxQTY2
ODIzRThCMzM2MDAyQzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTJDMTZEQUUwMjc5RTA3MjkwMDQyRTkxOSAvKiBWaWV3Q2FjaGVUZXN0cy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkM2ODIzODIxMjlENEVFMDAzQzZBMTMgLyogQ29hbGlnblRlc3Rz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJDNDgxMzJEMjczRjQxNTkwMDZDQUI1NSAvKiBFeHBl
bmRhYmxlTWVtb3J5VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNjgyMzEyMTI5Q0I0
NjAwM0M2QTEzIC8qIEV4dGVuZGVkR0NEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmMJKHJldmlzaW9uIDI4
ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmMJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtODYsOSArODYsMTAgQEAgdm9pZCogaml0X2hlYXBfdHJ5X2FsbG9jYXRlKHNp
emVfdCBzaXplKQogCiB2b2lkIGppdF9oZWFwX3Nocmluayh2b2lkKiBvYmplY3QsIHNpemVfdCBu
ZXdfc2l6ZSkKIHsKLSAgICBib29sIHJlc3VsdDsKLSAgICByZXN1bHQgPSBwYXNfdHJ5X3Nocmlu
ayhvYmplY3QsIG5ld19zaXplLCBKSVRfSEVBUF9DT05GSUcpOwotICAgIFBBU19BU1NFUlQocmVz
dWx0KTsKKyAgICAvKiBOT1RFOiB0aGUgc2hyaW5rIGNhbGwgd2lsbCBmYWlsIChyZXR1cm4gZmFs
c2UpIGZvciBzZWdyZWdhdGVkIGFsbG9jYXRpb25zLCBhbmQgdGhhdCdzIGZpbmUgYmVjYXVzZSB3
ZQorICAgICAgIG9ubHkgdXNlIHNlZ3JlZ2F0ZWQgYWxsb2NhdGlvbnMgZm9yIHNtYWxsZXIgc2l6
ZXMgKHNvIHRoZSBhbW91bnQgb2YgcG90ZW50aWFsIG1lbW9yeSBzYXZpbmdzIGZyb20KKyAgICAg
ICBzaHJpbmtpbmcgaXMgc21hbGwpLiAqLworICAgIHBhc190cnlfc2hyaW5rKG9iamVjdCwgbmV3
X3NpemUsIEpJVF9IRUFQX0NPTkZJRyk7CiB9CiAKIHNpemVfdCBqaXRfaGVhcF9nZXRfc2l6ZSh2
b2lkKiBvYmplY3QpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRf
aGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9qaXRfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjg4NDA4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgInBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9jLmgiCiAjaW5j
bHVkZSAicGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfcm9vdC5oIgor
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaCIKICNpbmNsdWRl
ICJwYXNfc3RyZWFtLmgiCiAKICNpZiBkZWZpbmVkKFBBU19CTUFMTE9DKQpAQCAtMTAyLDkgKzEw
Myw5IEBAIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWMKICAgICAucHJv
dmlkZXJfYXJnID0gTlVMTAogfTsKIAotcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9zbWFsbF9i
aXRmaXRfcGFnZV9oZWFkZXJfdGFibGUgPQorcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9zbWFs
bF9wYWdlX2hlYWRlcl90YWJsZSA9CiAgICAgUEFTX1BBR0VfSEVBREVSX1RBQkxFX0lOSVRJQUxJ
WkVSKEpJVF9TTUFMTF9QQUdFX1NJWkUpOwotcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9tZWRp
dW1fYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlID0KK3Bhc19wYWdlX2hlYWRlcl90YWJsZSBqaXRf
bWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlID0KICAgICBQQVNfUEFHRV9IRUFERVJfVEFCTEVfSU5J
VElBTElaRVIoSklUX01FRElVTV9QQUdFX1NJWkUpOwogCiBwYXNfaGVhcF9ydW50aW1lX2NvbmZp
ZyBqaXRfaGVhcF9ydW50aW1lX2NvbmZpZyA9IHsKQEAgLTExNCwxNSArMTE1LDE1IEBAIHBhc19o
ZWFwX3J1bnRpbWVfY29uZmlnIGppdF9oZWFwX3J1bnRpbWUKICAgICAuaXNfcGFydF9vZl9oZWFw
ID0gdHJ1ZSwKICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPSAw
LAogICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IDAs
Ci0gICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gVUlOVF9NQVgs
Ci0gICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gMCwKKyAgICAuZGlyZWN0b3J5X3Np
emVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUgPSAwLAorICAgIC5tYXhfc2VncmVnYXRlZF9vYmpl
Y3Rfc2l6ZSA9IDIwMDAsCiAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBVSU5UX01BWCwK
LSAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50
aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkKKyAgICAudmlld19jYWNoZV9jYXBh
Y2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZl
X3ZpZXdfY2FjaGVfY2FwYWNpdHkKIH07CiAKIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEgaml0
X3Jvb3RfZGF0YSA9IHsKLSAgICAuc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlID0gJmpp
dF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCi0gICAgLm1lZGl1bV9iaXRmaXRfcGFn
ZV9oZWFkZXJfdGFibGUgPSAmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUKKyAg
ICAuc21hbGxfcGFnZV9oZWFkZXJfdGFibGUgPSAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxl
LAorICAgIC5tZWRpdW1fcGFnZV9oZWFkZXJfdGFibGUgPSAmaml0X21lZGl1bV9wYWdlX2hlYWRl
cl90YWJsZQogfTsKIAogdm9pZCBqaXRfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKQEAgLTE0
MiwzOSArMTQzLDczIEBAIHBhc19wYWdlX2Jhc2UqIGppdF9wYWdlX2hlYWRlcl9mb3JfYm91bmQK
ICAgICByZXR1cm4gKHBhc19wYWdlX2Jhc2UqKXBhc19wdHJfaGFzaF9tYXBfZ2V0KCZkYXRhLT5w
YWdlX2hlYWRlcl90YWJsZSwgYm91bmRhcnkpLnZhbHVlOwogfQogCi12b2lkKiBqaXRfc21hbGxf
Yml0Zml0X2FsbG9jYXRlX3BhZ2UoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFz
X3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCit2b2lkKiBqaXRfc21h
bGxfc2VncmVnYXRlZF9hbGxvY2F0ZV9wYWdlKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3JvbGUgcm9sZSkKIHsKKyAgICBQQVNfQVNTRVJUKHJvbGUgPT0gcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSk7CiAgICAgUEFTX1VOVVNFRF9QQVJBTShoZWFw
KTsKICAgICBQQVNfVU5VU0VEX1BBUkFNKHRyYW5zYWN0aW9uKTsKICAgICByZXR1cm4gKHZvaWQq
KWFsbG9jYXRlX2Zyb21fZnJlc2goCiAgICAgICAgIEpJVF9TTUFMTF9QQUdFX1NJWkUsIHBhc19h
bGlnbm1lbnRfY3JlYXRlX3RyYWRpdGlvbmFsKEpJVF9TTUFMTF9QQUdFX1NJWkUpKS5iZWdpbjsK
IH0KIAotcGFzX3BhZ2VfYmFzZSogaml0X3NtYWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIo
CitwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfc2VncmVnYXRlZF9jcmVhdGVfcGFnZV9oZWFkZXIo
CiAgICAgdm9pZCogYm91bmRhcnksIHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xvY2tfaG9sZF9t
b2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7CiAgICAgcGFzX3BhZ2VfYmFzZSogcmVzdWx0Owot
ICAgIFBBU19BU1NFUlQoa2luZCA9PSBwYXNfc21hbGxfYml0Zml0X3BhZ2Vfa2luZCk7CisgICAg
UEFTX0FTU0VSVChraW5kID09IHBhc19zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9wYWdlX2tp
bmQpOwogICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xk
X21vZGUpOwotICAgIHJlc3VsdCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZV9hZGQoJmppdF9zbWFs
bF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBKSVRfU01BTExfUEFHRV9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJ
Ry5zbWFsbF9iaXRmaXRfY29uZmlnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvdW5kYXJ5KTsKKyAgICByZXN1bHQgPSBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRk
KAorICAgICAgICAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAorICAgICAgICBKSVRfU01B
TExfUEFHRV9TSVpFLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9zaXplKEpJ
VF9IRUFQX0NPTkZJRy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xl
KSwKKyAgICAgICAgYm91bmRhcnkpOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlv
bmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9p
ZCBqaXRfc21hbGxfYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCi0gICAgcGFzX3BhZ2VfYmFz
ZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit2b2lkIGpp
dF9zbWFsbF9kZXN0cm95X3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UsIHBhc19sb2Nr
X2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQogewogICAgIHBhc19oZWFwX2xvY2tfbG9j
a19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgIHBhc19wYWdlX2hlYWRl
cl90YWJsZV9yZW1vdmUoJmppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCisgICAg
cGFzX3BhZ2VfaGVhZGVyX3RhYmxlX3JlbW92ZSgmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX1NNQUxMX1BBR0VfU0laRSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UpOwogICAgIHBhc19oZWFwX2xv
Y2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiB9CiAKK3Bhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgUEFT
X1VOVVNFRF9QQVJBTShoZWFwKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7Cisg
ICAgUEFTX0FTU0VSVCghIk5vdCBpbXBsZW1lbnRlZCIpOworICAgIHJldHVybiBOVUxMOworfQor
Cit2b2lkKiBqaXRfc21hbGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rp
b24pCit7CisgICAgUEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFN
KHRyYW5zYWN0aW9uKTsKKyAgICByZXR1cm4gKHZvaWQqKWFsbG9jYXRlX2Zyb21fZnJlc2goCisg
ICAgICAgIEpJVF9TTUFMTF9QQUdFX1NJWkUsIHBhc19hbGlnbm1lbnRfY3JlYXRlX3RyYWRpdGlv
bmFsKEpJVF9TTUFMTF9QQUdFX1NJWkUpKS5iZWdpbjsKK30KKworcGFzX3BhZ2VfYmFzZSogaml0
X3NtYWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIoCisgICAgdm9pZCogYm91bmRhcnksIHBh
c19wYWdlX2tpbmQga2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUp
Cit7CisgICAgcGFzX3BhZ2VfYmFzZSogcmVzdWx0OworICAgIFBBU19BU1NFUlQoa2luZCA9PSBw
YXNfc21hbGxfYml0Zml0X3BhZ2Vfa2luZCk7CisgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRp
dGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgcmVzdWx0ID0gcGFzX3BhZ2VfaGVh
ZGVyX3RhYmxlX2FkZCgmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX1NNQUxMX1BBR0VfU0laRSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9oZWFkZXJfc2l6
ZShKSVRfSEVBUF9DT05GSUcuc21hbGxfYml0Zml0X2NvbmZpZyksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib3VuZGFyeSk7CisgICAgcGFzX2hlYXBfbG9ja191bmxv
Y2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCiB2b2lkKiBqaXRfbWVkaXVtX2JpdGZpdF9hbGxvY2F0ZV9wYWdlKAogICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uKQogewpAQCAtMTkwLDcgKzIyNSw3IEBAIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRp
dW1fYml0Zml0X2NyZWF0ZV8KICAgICBwYXNfcGFnZV9iYXNlKiByZXN1bHQ7CiAgICAgUEFTX0FT
U0VSVChraW5kID09IHBhc19tZWRpdW1fYml0Zml0X3BhZ2Vfa2luZCk7CiAgICAgcGFzX2hlYXBf
bG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgcmVzdWx0
ID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2FkZCgmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFk
ZXJfdGFibGUsCisgICAgcmVzdWx0ID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2FkZCgmaml0X21l
ZGl1bV9wYWdlX2hlYWRlcl90YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEpJVF9NRURJVU1fUEFHRV9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJRy5t
ZWRpdW1fYml0Zml0X2NvbmZpZyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib3VuZGFyeSk7CkBAIC0xOTgsMTEgKzIzMywxMSBAQCBwYXNfcGFnZV9iYXNlKiBqaXRf
bWVkaXVtX2JpdGZpdF9jcmVhdGVfCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBqaXRf
bWVkaXVtX2JpdGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyKAordm9pZCBqaXRfbWVkaXVtX2Rlc3Ry
b3lfcGFnZV9oZWFkZXIoCiAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9t
b2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7CiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRp
dGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgcGFzX3BhZ2VfaGVhZGVyX3RhYmxl
X3JlbW92ZSgmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCisgICAgcGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlX3JlbW92ZSgmaml0X21lZGl1bV9wYWdlX2hlYWRlcl90YWJsZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpJVF9NRURJVU1fUEFHRV9TSVpFLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZSk7CiAgICAgcGFzX2hlYXBfbG9ja191
bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKQEAgLTI2OSwxNCArMzA0
LDE0IEBAIHZvaWQqIGppdF9wcmVwYXJlX3RvX2VudW1lcmF0ZShwYXNfZW51bWUKICAgICAgICAg
ICAgIHJlc3VsdCwKICAgICAgICAgICAgIGVudW1lcmF0b3IsCiAgICAgICAgICAgICAocGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlKilwYXNfZW51bWVyYXRvcl9yZWFkKAotICAgICAgICAgICAgICAgIGVu
dW1lcmF0b3IsIHJvb3RfZGF0YS0+c21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBzaXpl
b2YocGFzX3BhZ2VfaGVhZGVyX3RhYmxlKSkpKQorICAgICAgICAgICAgICAgIGVudW1lcmF0b3Is
IHJvb3RfZGF0YS0+c21hbGxfcGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihwYXNfcGFnZV9oZWFk
ZXJfdGFibGUpKSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIAogICAgIGlmICghcGFzX2Jh
c2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YV9hZGRfcGFnZV9oZWFkZXJfdGFibGUoCiAg
ICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICBlbnVtZXJhdG9yLAogICAgICAgICAgICAg
KHBhc19wYWdlX2hlYWRlcl90YWJsZSopcGFzX2VudW1lcmF0b3JfcmVhZCgKLSAgICAgICAgICAg
ICAgICBlbnVtZXJhdG9yLCByb290X2RhdGEtPm1lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFi
bGUsIHNpemVvZihwYXNfcGFnZV9oZWFkZXJfdGFibGUpKSkpCisgICAgICAgICAgICAgICAgZW51
bWVyYXRvciwgcm9vdF9kYXRhLT5tZWRpdW1fcGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihwYXNf
cGFnZV9oZWFkZXJfdGFibGUpKSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIAogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC0zMzEsNiArMzY2LDggQEAgdm9pZCBqaXRfaGVhcF9jb25maWdfYWRk
X2ZyZXNoX21lbW9yeShwYQogICAgICAgICAmaml0X2ZyZXNoX21lbW9yeV9oZWFwLCByYW5nZS5i
ZWdpbiwgcmFuZ2UuZW5kLCBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJvLCAmY29uZmlnKTsKIH0K
IAorUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVGSU5JVElPTlMo
CisgICAgaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcsIEpJVF9IRUFQX0NPTkZJRy5z
bWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7CiBQQVNfQklURklUX1BBR0VfQ09ORklHX1NQRUNJQUxJ
WkFUSU9OX0RFRklOSVRJT05TKAogICAgIGppdF9zbWFsbF9iaXRmaXRfcGFnZV9jb25maWcsIEpJ
VF9IRUFQX0NPTkZJRy5zbWFsbF9iaXRmaXRfY29uZmlnKTsKIFBBU19CSVRGSVRfUEFHRV9DT05G
SUdfU1BFQ0lBTElaQVRJT05fREVGSU5JVElPTlMoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg4NDA4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0y
MDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzYsMTIgKzM2LDE0IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAot
I2RlZmluZSBKSVRfU01BTExfTUlOX0FMSUdOX1NISUZUIDJ1Ci0jZGVmaW5lIEpJVF9TTUFMTF9N
SU5fQUxJR04gKDF1IDw8IEpJVF9TTUFMTF9NSU5fQUxJR05fU0hJRlQpCisjZGVmaW5lIEpJVF9T
TUFMTF9TRUdSRUdBVEVEX01JTl9BTElHTl9TSElGVCA0dQorI2RlZmluZSBKSVRfU01BTExfU0VH
UkVHQVRFRF9NSU5fQUxJR04gKDF1IDw8IEpJVF9TTUFMTF9TRUdSRUdBVEVEX01JTl9BTElHTl9T
SElGVCkKKyNkZWZpbmUgSklUX1NNQUxMX0JJVEZJVF9NSU5fQUxJR05fU0hJRlQgMnUKKyNkZWZp
bmUgSklUX1NNQUxMX0JJVEZJVF9NSU5fQUxJR04gKDF1IDw8IEpJVF9TTUFMTF9CSVRGSVRfTUlO
X0FMSUdOX1NISUZUKQogI2RlZmluZSBKSVRfU01BTExfUEFHRV9TSVpFIDE2Mzg0dQogI2RlZmlu
ZSBKSVRfU01BTExfR1JBTlVMRV9TSVpFIDE2Mzg0dQotI2RlZmluZSBKSVRfTUVESVVNX01JTl9B
TElHTl9TSElGVCA4dQotI2RlZmluZSBKSVRfTUVESVVNX01JTl9BTElHTiAoMXUgPDwgSklUX01F
RElVTV9NSU5fQUxJR05fU0hJRlQpCisjZGVmaW5lIEpJVF9NRURJVU1fQklURklUX01JTl9BTElH
Tl9TSElGVCA4dQorI2RlZmluZSBKSVRfTUVESVVNX0JJVEZJVF9NSU5fQUxJR04gKDF1IDw8IEpJ
VF9NRURJVU1fQklURklUX01JTl9BTElHTl9TSElGVCkKICNkZWZpbmUgSklUX01FRElVTV9QQUdF
X1NJWkUgMTMxMDcydQogI2lmIFBBU19BUk02NAogI2RlZmluZSBKSVRfTUVESVVNX0dSQU5VTEVf
U0laRSAxNjM4NHUKQEAgLTY2LDIzICs2OCwzMyBAQCBQQVNfQVBJIHZvaWQgaml0X3R5cGVfZHVt
cChjb25zdCBwYXNfaGVhCiAKIFBBU19BUEkgcGFzX3BhZ2VfYmFzZSogaml0X3BhZ2VfaGVhZGVy
X2Zvcl9ib3VuZGFyeV9yZW1vdGUocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsIHZvaWQqIGJv
dW5kYXJ5KTsKIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9z
bWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5KTsKLXN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBqaXRfc21hbGxfYml0Zml0X2JvdW5kYXJ5X2Zv
cl9wYWdlX2hlYWRlcihwYXNfcGFnZV9iYXNlKiBwYWdlKTsKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KHZv
aWQqIGJvdW5kYXJ5KTsKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBqaXRfc21hbGxf
Ym91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UpOworUEFTX0FQSSB2
b2lkKiBqaXRfc21hbGxfc2VncmVnYXRlZF9hbGxvY2F0ZV9wYWdlKAorICAgIHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0
aW9uLCBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSk7CitQQVNfQVBJIHBhc19wYWdlX2Jh
c2UqIGppdF9zbWFsbF9zZWdyZWdhdGVkX2NyZWF0ZV9wYWdlX2hlYWRlcigKKyAgICB2b2lkKiBi
b3VuZGFyeSwgcGFzX3BhZ2Vfa2luZCBraW5kLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7CitQQVNfQVBJIHZvaWQgaml0X3NtYWxsX2Rlc3Ryb3lfcGFnZV9oZWFkZXIo
CisgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGUpOworUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnkq
IGppdF9zbWFsbF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvcigKKyAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KTsKKworUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJ
T05fREVDTEFSQVRJT05TKGppdF9zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKTsKKwogUEFT
X0FQSSB2b2lkKiBqaXRfc21hbGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UoCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNh
Y3Rpb24pOwogUEFTX0FQSSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfYml0Zml0X2NyZWF0ZV9w
YWdlX2hlYWRlcigKICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX3BhZ2Vfa2luZCBraW5kLCBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci1QQVNfQVBJIHZvaWQgaml0X3Nt
YWxsX2JpdGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyKAotICAgIHBhc19wYWdlX2Jhc2UqIHBhZ2Us
IHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogUEFTX0JJVEZJVF9Q
QUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUNMQVJBVElPTlMoaml0X3NtYWxsX2JpdGZpdF9w
YWdlX2NvbmZpZyk7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBq
aXRfbWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkp
Oworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fcGFn
ZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5KTsKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKiBqaXRfbWVkaXVtX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlcihwYXNfcGFn
ZV9iYXNlKiBwYWdlKTsKIFBBU19BUEkgdm9pZCogaml0X21lZGl1bV9iaXRmaXRfYWxsb2NhdGVf
cGFnZSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5
X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7CiBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9t
ZWRpdW1fYml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcigKICAgICB2b2lkKiBib3VuZGFyeSwgcGFz
X3BhZ2Vfa2luZCBraW5kLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
Ci1QQVNfQVBJIHZvaWQgaml0X21lZGl1bV9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlcigKK1BB
U19BUEkgdm9pZCBqaXRfbWVkaXVtX2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCiAgICAgcGFzX3BhZ2Vf
YmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCiBQ
QVNfQklURklUX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFUSU9OUyhqaXRfbWVk
aXVtX2JpdGZpdF9wYWdlX2NvbmZpZyk7CkBAIC0xMjEsMTYgKzEzMywxNiBAQCBQQVNfSEVBUF9D
T05GSUdfU1BFQ0lBTElaQVRJT05fREVDTEFSQVRJCiAgICAgICAgICAgICAuaGVhcF9jb25maWdf
cHRyID0gJmppdF9oZWFwX2NvbmZpZywgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmlnX3B0ciA9
ICZqaXRfaGVhcF9jb25maWcudmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9jb25maWcuYmFz
ZSwgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmlnX2tpbmQgPSBwYXNfcGFnZV9jb25maWdfa2lu
ZF9iaXRmaXQsIFwKLSAgICAgICAgICAgIC5taW5fYWxpZ25fc2hpZnQgPSBKSVRfICMjIHZhcmlh
bnRfdXBwZXJjYXNlICMjIF9NSU5fQUxJR05fU0hJRlQsIFwKKyAgICAgICAgICAgIC5taW5fYWxp
Z25fc2hpZnQgPSBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMjIF9CSVRGSVRfTUlOX0FMSUdO
X1NISUZULCBcCiAgICAgICAgICAgICAucGFnZV9zaXplID0gSklUXyAjIyB2YXJpYW50X3VwcGVy
Y2FzZSAjIyBfUEFHRV9TSVpFLCBcCiAgICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0gSklUXyAj
IyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfR1JBTlVMRV9TSVpFLCBcCiAgICAgICAgICAgICAubWF4
X29iamVjdF9zaXplID0gXAotICAgICAgICAgICAgICAgIFBBU19CSVRGSVRfTUFYX0ZSRUVfTUFY
X1ZBTElEIDw8IEpJVF8gIyMgdmFyaWFudF91cHBlcmNhc2UgIyMgX01JTl9BTElHTl9TSElGVCwg
XAotICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9IGppdF8gIyMgdmFyaWFu
dF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnksIFwKLSAgICAg
ICAgICAgIC5ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlhbnRfbG93ZXJj
YXNlICMjIF9iaXRmaXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyLCBcCisgICAgICAgICAgICAg
ICAgUEFTX0JJVEZJVF9NQVhfRlJFRV9NQVhfVkFMSUQgPDwgSklUXyAjIyB2YXJpYW50X3VwcGVy
Y2FzZSAjIyBfQklURklUX01JTl9BTElHTl9TSElGVCwgXAorICAgICAgICAgICAgLnBhZ2VfaGVh
ZGVyX2Zvcl9ib3VuZGFyeSA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX3BhZ2VfaGVh
ZGVyX2Zvcl9ib3VuZGFyeSwgXAorICAgICAgICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRl
ciA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRl
ciwgXAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUgPSBqaXRf
cGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZSwgXAogICAgICAgICAgICAgLmNyZWF0ZV9w
YWdlX2hlYWRlciA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9jcmVhdGVf
cGFnZV9oZWFkZXIsIFwKLSAgICAgICAgICAgIC5kZXN0cm95X3BhZ2VfaGVhZGVyID0gaml0XyAj
IyB2YXJpYW50X2xvd2VyY2FzZSAjIyBfYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIgXAorICAg
ICAgICAgICAgLmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlhbnRfbG93ZXJjYXNl
ICMjIF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwKICAgICAgICAgfSwgXAogICAgICAgICAudmFyaWFu
dCA9IHBhc18gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJp
YW50LCBcCiAgICAgICAgIC5raW5kID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2ppdF8g
IyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdCwgXApAQCAtMTQ3LDExICsxNTksNDMgQEAg
UEFTX0hFQVBfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFUSQogICAgICAgICAuZ2V0X3R5
cGVfc2l6ZSA9IGppdF90eXBlX3NpemUsIFwKICAgICAgICAgLmdldF90eXBlX2FsaWdubWVudCA9
IGppdF90eXBlX2FsaWdubWVudCwgXAogICAgICAgICAuZHVtcF90eXBlID0gaml0X3R5cGVfZHVt
cCwgXAotICAgICAgICAubGFyZ2VfYWxpZ25tZW50ID0gSklUX1NNQUxMX01JTl9BTElHTiwgXAor
ICAgICAgICAubGFyZ2VfYWxpZ25tZW50ID0gUEFTX01JTl9DT05TVChKSVRfU01BTExfU0VHUkVH
QVRFRF9NSU5fQUxJR04sIEpJVF9TTUFMTF9CSVRGSVRfTUlOX0FMSUdOKSwgXAogICAgICAgICAu
c21hbGxfc2VncmVnYXRlZF9jb25maWcgPSB7IFwKICAgICAgICAgICAgIC5iYXNlID0geyBcCi0g
ICAgICAgICAgICAgICAgLmlzX2VuYWJsZWQgPSBmYWxzZSBcCi0gICAgICAgICAgICB9IFwKKyAg
ICAgICAgICAgICAgICAuaXNfZW5hYmxlZCA9IHRydWUsIFwKKyAgICAgICAgICAgICAgICAuaGVh
cF9jb25maWdfcHRyID0gJmppdF9oZWFwX2NvbmZpZywgXAorICAgICAgICAgICAgICAgIC5wYWdl
X2NvbmZpZ19wdHIgPSAmaml0X2hlYXBfY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJh
c2UsIFwKKyAgICAgICAgICAgICAgICAucGFnZV9jb25maWdfa2luZCA9IHBhc19wYWdlX2NvbmZp
Z19raW5kX3NlZ3JlZ2F0ZWQsIFwKKyAgICAgICAgICAgICAgICAubWluX2FsaWduX3NoaWZ0ID0g
SklUX1NNQUxMX1NFR1JFR0FURURfTUlOX0FMSUdOX1NISUZULCBcCisgICAgICAgICAgICAgICAg
LnBhZ2Vfc2l6ZSA9IEpJVF9TTUFMTF9QQUdFX1NJWkUsIFwKKyAgICAgICAgICAgICAgICAuZ3Jh
bnVsZV9zaXplID0gSklUX1NNQUxMX0dSQU5VTEVfU0laRSwgXAorICAgICAgICAgICAgICAgIC5t
YXhfb2JqZWN0X3NpemUgPSBQQVNfTUFYX09CSkVDVF9TSVpFKEpJVF9TTUFMTF9QQUdFX1NJWkUp
LCBcCisgICAgICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9IGppdF9zbWFs
bF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnksIFwKKyAgICAgICAgICAgICAgICAuYm91bmRhcnlf
Zm9yX3BhZ2VfaGVhZGVyID0gaml0X3NtYWxsX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciwgXAor
ICAgICAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlID0gaml0X3Bh
Z2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUsIFwKKyAgICAgICAgICAgICAgICAuY3JlYXRl
X3BhZ2VfaGVhZGVyID0gaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfY3JlYXRlX3BhZ2VfaGVhZGVyLCBc
CisgICAgICAgICAgICAgICAgLmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBqaXRfc21hbGxfZGVzdHJv
eV9wYWdlX2hlYWRlciBcCisgICAgICAgICAgICB9LCBcCisgICAgICAgICAgICAudmFyaWFudCA9
IHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIFwKKyAgICAgICAgICAg
IC5raW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9qaXRfc21hbGxfc2VncmVn
YXRlZCwgXAorICAgICAgICAgICAgLndhc3RlYWdlX2hhbmRpY2FwID0gMS4sIFwKKyAgICAgICAg
ICAgIC5zaGFyaW5nX3NoaWZ0ID0gUEFTX1NNQUxMX1NIQVJJTkdfU0hJRlQsIFwKKyAgICAgICAg
ICAgIC5udW1fYWxsb2NfYml0cyA9IFBBU19CQVNJQ19TRUdSRUdBVEVEX05VTV9BTExPQ19CSVRT
KEpJVF9TTUFMTF9TRUdSRUdBVEVEX01JTl9BTElHTl9TSElGVCwgXAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX1NN
QUxMX1BBR0VfU0laRSksIFwKKyAgICAgICAgICAgIC5zaGFyZWRfcGF5bG9hZF9vZmZzZXQgPSAw
LCBcCisgICAgICAgICAgICAuZXhjbHVzaXZlX3BheWxvYWRfb2Zmc2V0ID0gMCwgXAorICAgICAg
ICAgICAgLnNoYXJlZF9wYXlsb2FkX3NpemUgPSAwLCBcCisgICAgICAgICAgICAuZXhjbHVzaXZl
X3BheWxvYWRfc2l6ZSA9IEpJVF9TTUFMTF9QQUdFX1NJWkUsIFwKKyAgICAgICAgICAgIC5zaGFy
ZWRfbG9nZ2luZ19tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX25vX2xvZ2dpbmdf
bW9kZSwgXAorICAgICAgICAgICAgLmV4Y2x1c2l2ZV9sb2dnaW5nX21vZGUgPSBwYXNfc2VncmVn
YXRlZF9kZWFsbG9jYXRpb25fc2l6ZV9vYmxpdmlvdXNfbG9nZ2luZ19tb2RlLCBcCisgICAgICAg
ICAgICAudXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAorICAgICAgICAg
ICAgLmNoZWNrX2RlYWxsb2NhdGlvbiA9IGZhbHNlLCBcCisgICAgICAgICAgICAuZW5hYmxlX2Vt
cHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uX2Zvcl9zaGFyZWQgPSBmYWxzZSwgXAor
ICAgICAgICAgICAgLmVuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbl9m
b3JfZXhjbHVzaXZlID0gdHJ1ZSwgXAorICAgICAgICAgICAgLmVuYWJsZV92aWV3X2NhY2hlID0g
dHJ1ZSwgXAorICAgICAgICAgICAgLnBhZ2VfYWxsb2NhdG9yID0gaml0X3NtYWxsX3NlZ3JlZ2F0
ZWRfYWxsb2NhdGVfcGFnZSwgXAorICAgICAgICAgICAgLnNoYXJlZF9wYWdlX2RpcmVjdG9yeV9z
ZWxlY3RvciA9IGppdF9zbWFsbF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxl
Y3RvciwgXAorICAgICAgICAgICAgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTEla
QVRJT05TKGppdF9zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKSBcCiAgICAgICAgIH0sIFwK
ICAgICAgICAgLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZyA9IHsgXAogICAgICAgICAgICAgLmJh
c2UgPSB7IFwKQEAgLTE5MCwzMyArMjM0LDMzIEBAIFBBU19BUEkgZXh0ZXJuIHBhc19oZWFwX2Nv
bmZpZyBqaXRfaGVhcF8KIFBBU19BUEkgZXh0ZXJuIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFw
IGppdF9mcmVzaF9tZW1vcnlfaGVhcDsKIAogUEFTX0FQSSBleHRlcm4gcGFzX2xhcmdlX2hlYXBf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlIGppdF9sYXJnZV9mcmVzaF9tZW1vcnlfaGVhcDsK
LVBBU19BUEkgZXh0ZXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZSBqaXRfc21hbGxfYml0Zml0X3Bh
Z2VfaGVhZGVyX3RhYmxlOwotUEFTX0FQSSBleHRlcm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGpp
dF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlOworUEFTX0FQSSBleHRlcm4gcGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlIGppdF9zbWFsbF9wYWdlX2hlYWRlcl90YWJsZTsKK1BBU19BUEkgZXh0
ZXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZSBqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlOwog
UEFTX0FQSSBleHRlcm4gcGFzX2hlYXBfcnVudGltZV9jb25maWcgaml0X2hlYXBfcnVudGltZV9j
b25maWc7CiBQQVNfQVBJIGV4dGVybiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhIGppdF9yb290
X2RhdGE7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfc21h
bGxfYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFyeSkKK3N0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfcGFnZV9oZWFkZXJf
Zm9yX2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5KQogewogICAgIHJldHVybiBwYXNfcGFnZV9oZWFk
ZXJfdGFibGVfZ2V0X2Zvcl9ib3VuZGFyeSgKLSAgICAgICAgJmppdF9zbWFsbF9iaXRmaXRfcGFn
ZV9oZWFkZXJfdGFibGUsIEpJVF9TTUFMTF9QQUdFX1NJWkUsIGJvdW5kYXJ5KTsKKyAgICAgICAg
JmppdF9zbWFsbF9wYWdlX2hlYWRlcl90YWJsZSwgSklUX1NNQUxMX1BBR0VfU0laRSwgYm91bmRh
cnkpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaml0X3NtYWxsX2JpdGZp
dF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIocGFzX3BhZ2VfYmFzZSogcGFnZSkKK3N0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB2b2lkKiBqaXRfc21hbGxfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVy
KHBhc19wYWdlX2Jhc2UqIHBhZ2UpCiB7CiAgICAgcmV0dXJuIHBhc19wYWdlX2hlYWRlcl90YWJs
ZV9nZXRfYm91bmRhcnkoCi0gICAgICAgICZqaXRfc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3Rh
YmxlLCBKSVRfU01BTExfUEFHRV9TSVpFLCBwYWdlKTsKKyAgICAgICAgJmppdF9zbWFsbF9wYWdl
X2hlYWRlcl90YWJsZSwgSklUX1NNQUxMX1BBR0VfU0laRSwgcGFnZSk7CiB9CiAKLXN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX2JpdGZpdF9wYWdlX2hl
YWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX3BhZ2VfYmFzZSogaml0X21lZGl1bV9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9p
ZCogYm91bmRhcnkpCiB7CiAgICAgcmV0dXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRfZm9y
X2JvdW5kYXJ5KAotICAgICAgICAmaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUs
IEpJVF9NRURJVU1fUEFHRV9TSVpFLCBib3VuZGFyeSk7CisgICAgICAgICZqaXRfbWVkaXVtX3Bh
Z2VfaGVhZGVyX3RhYmxlLCBKSVRfTUVESVVNX1BBR0VfU0laRSwgYm91bmRhcnkpOwogfQogCi1z
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaml0X21lZGl1bV9iaXRmaXRfYm91bmRhcnlf
Zm9yX3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UpCitzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCogaml0X21lZGl1bV9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIocGFzX3BhZ2Vf
YmFzZSogcGFnZSkKIHsKICAgICByZXR1cm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9ib3Vu
ZGFyeSgKLSAgICAgICAgJmppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRf
TUVESVVNX1BBR0VfU0laRSwgcGFnZSk7CisgICAgICAgICZqaXRfbWVkaXVtX3BhZ2VfaGVhZGVy
X3RhYmxlLCBKSVRfTUVESVVNX1BBR0VfU0laRSwgcGFnZSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfaGVhcF9jb25maWdfcGFnZV9oZWFkZXIodWlu
dHB0cl90IGJlZ2luKQpAQCAtMjI0LDEyICsyNjgsMTIgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19wYWdlX2Jhc2UqIAogICAgIHBhc19wYWdlX2Jhc2UqIHJlc3VsdDsKIAogICAgIHJl
c3VsdCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRfZm9yX2FkZHJlc3MoCi0gICAgICAgICZq
aXRfc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfU01BTExfUEFHRV9TSVpFLCAo
dm9pZCopYmVnaW4pOworICAgICAgICAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRf
U01BTExfUEFHRV9TSVpFLCAodm9pZCopYmVnaW4pOwogICAgIGlmIChyZXN1bHQpCiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAKICAgICByZXR1cm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9m
b3JfYWRkcmVzcygKLSAgICAgICAgJmppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxl
LCBKSVRfTUVESVVNX1BBR0VfU0laRSwgKHZvaWQqKWJlZ2luKTsKKyAgICAgICAgJmppdF9tZWRp
dW1fcGFnZV9oZWFkZXJfdGFibGUsIEpJVF9NRURJVU1fUEFHRV9TSVpFLCAodm9pZCopYmVnaW4p
OwogfQogCiBQQVNfQVBJIHZvaWQgaml0X2hlYXBfY29uZmlnX2FkZF9mcmVzaF9tZW1vcnkocGFz
X3JhbmdlIHJhbmdlKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2pp
dF9oZWFwX2NvbmZpZ19yb290X2RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmgJKHJldmlzaW9uIDI4
ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZp
Z19yb290X2RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChjKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw4ICszNiw4IEBAIHR5cGVkZWYgc3RydWN0
IGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEKIHR5cGVkZWYgc3RydWN0IHBhc19wYWdlX2hlYWRl
cl90YWJsZSBwYXNfcGFnZV9oZWFkZXJfdGFibGU7CiAKIHN0cnVjdCBqaXRfaGVhcF9jb25maWdf
cm9vdF9kYXRhIHsKLSAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIHNtYWxsX2JpdGZpdF9wYWdl
X2hlYWRlcl90YWJsZTsKLSAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIG1lZGl1bV9iaXRmaXRf
cGFnZV9oZWFkZXJfdGFibGU7CisgICAgcGFzX3BhZ2VfaGVhZGVyX3RhYmxlKiBzbWFsbF9wYWdl
X2hlYWRlcl90YWJsZTsKKyAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGUqIG1lZGl1bV9wYWdlX2hl
YWRlcl90YWJsZTsKIH07CiAKIFBBU19FTkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwkocmV2aXNpb24g
Mjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9o
ZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChjKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02MCw3ICs2MCw4IEBAIHBhc19iaXRmaXRfaGVhcCog
cGFzX2JpdGZpdF9oZWFwX2NyZWF0ZSgKIH0KIAogcGFzX2JpdGZpdF92YXJpYW50X3NlbGVjdGlv
biBwYXNfYml0Zml0X2hlYXBfc2VsZWN0X3ZhcmlhbnQoc2l6ZV90IHJlcXVlc3RlZF9vYmplY3Rf
c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBj
b25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpCiB7CiAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtNzksNyArODAs
NyBAQCBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIHBhc19iaXRmaXRfCiAgICAgICAgIHNp
emVfdCBvYmplY3Rfc2l6ZTsKIAogICAgICAgICBwYWdlX2NvbmZpZyA9ICpwYXNfaGVhcF9jb25m
aWdfYml0Zml0X3BhZ2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudChjb25maWcsIHZhcmlhbnQpOwot
ICAgICAgICBpZiAoIXBhc19iaXRmaXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZChwYWdlX2NvbmZp
ZykpCisgICAgICAgIGlmICghcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKHBhZ2Vf
Y29uZmlnLCBydW50aW1lX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg
ICBpZiAodmVyYm9zZSkKQEAgLTEyNSw3ICsxMjYsOCBAQCBwYXNfYml0Zml0X3ZhcmlhbnRfc2Vs
ZWN0aW9uIHBhc19iaXRmaXRfCiB2b2lkIHBhc19iaXRmaXRfaGVhcF9jb25zdHJ1Y3RfYW5kX2lu
c2VydF9zaXplX2NsYXNzKHBhc19iaXRmaXRfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNz
KiBzaXplX2NsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19o
ZWFwX2NvbmZpZyogY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcp
CiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtMTM5
LDcgKzE0MSw3IEBAIHZvaWQgcGFzX2JpdGZpdF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXIKICAg
ICAgICAgICAgICAgICBoZWFwLCBzaXplX2NsYXNzLCBvYmplY3Rfc2l6ZSk7CiAgICAgfQogCi0g
ICAgYmVzdCA9IHBhc19iaXRmaXRfaGVhcF9zZWxlY3RfdmFyaWFudChvYmplY3Rfc2l6ZSwgY29u
ZmlnKTsKKyAgICBiZXN0ID0gcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KG9iamVjdF9z
aXplLCBjb25maWcsIHJ1bnRpbWVfY29uZmlnKTsKIAogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0
X2hlbGQoKTsKICAgICBpZiAodmVyYm9zZSkgewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgJKHJldmlzaW9uIDI4ODQwOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAy
MC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzMsMTAgKzMzLDEyIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAog
c3RydWN0IHBhc19iaXRmaXRfaGVhcDsKIHN0cnVjdCBwYXNfaGVhcF9jb25maWc7CitzdHJ1Y3Qg
cGFzX2hlYXBfcnVudGltZV9jb25maWc7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnk7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19i
aXRmaXRfaGVhcCBwYXNfYml0Zml0X2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9jb25m
aWcgcGFzX2hlYXBfY29uZmlnOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25m
aWcgcGFzX2hlYXBfcnVudGltZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYg
c3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIApAQCAtNjEs
MTIgKzYzLDE1IEBAIHR5cGVkZWYgc3RydWN0IHsKIH0gcGFzX2JpdGZpdF92YXJpYW50X3NlbGVj
dGlvbjsKIAogUEFTX0FQSSBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uCi1wYXNfYml0Zml0
X2hlYXBfc2VsZWN0X3ZhcmlhbnQoc2l6ZV90IG9iamVjdF9zaXplLCBwYXNfaGVhcF9jb25maWcq
IGNvbmZpZyk7CitwYXNfYml0Zml0X2hlYXBfc2VsZWN0X3ZhcmlhbnQoc2l6ZV90IG9iamVjdF9z
aXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29u
ZmlnKiBydW50aW1lX2NvbmZpZyk7CiAKIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0X2hlYXBfY29u
c3RydWN0X2FuZF9pbnNlcnRfc2l6ZV9jbGFzcyhwYXNfYml0Zml0X2hlYXAqIGhlYXAsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNzLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9iamVjdF9z
aXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcq
IGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpOwog
CiBQQVNfQVBJIHBhc19oZWFwX3N1bW1hcnkgcGFzX2JpdGZpdF9oZWFwX2NvbXB1dGVfc3VtbWFy
eShwYXNfYml0Zml0X2hlYXAqIGhlYXApOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCShyZXZp
c2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X3BhZ2VfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAicGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmgiCiAjaW5jbHVkZSAicGFzX2Jp
dHZlY3Rvci5oIgogI2luY2x1ZGUgInBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCIK
KyNpbmNsdWRlICJwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdl
X2Jhc2VfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAi
cGFzX3V0aWxzLmgiCkBAIC0xMzEsMTAgKzEzMiwxOCBAQCBQQVNfQVBJIGV4dGVybiBib29sIHBh
c19tYXJnZV9iaXRmaXRfcGFnCiAgICAgUEFTX0FQSSB2b2lkIGxvd2VyX2Nhc2VfcGFnZV9jb25m
aWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfcGFnZV9zaHJpbmtfd2l0aF9wYWdlKCBcCiAgICAgICAg
IHBhc19iaXRmaXRfcGFnZSogcGFnZSwgdWludHB0cl90IGJlZ2luLCBzaXplX3QgbmV3X3NpemUp
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQo
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZyBjb25maWcpCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmln
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcpCiB7CiAgICAgaWYgKCFjb25m
aWcuYmFzZS5pc19lbmFibGVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLyogRG9pbmcg
dGhpcyBjaGVjayBoZXJlIGlzIG5vdCBzdXBlciBuZWNlc3NhcnksIGJ1dCBpdCdzIHNvcnQgb2Yg
bmljZSBmb3IgY2FzZXMgd2hlcmUgd2UgaGF2ZSBhIGhlYXAKKyAgICAgICB0aGF0IHNvbWV0aW1l
cyB1c2VzIGJpdGZpdCBleGNsdXNpdmVseSBvciBzb21ldGltZXMgdXNlcyBzZWdyZWdhdGVkIGV4
Y2x1c2l2ZWx5IGFuZCB0aGF0J3Mgc2VsZWN0ZWQKKyAgICAgICBieSBzZWxlY3Rpbmcgb3IgbXV0
YXRpbmcgcnVudGltZV9jb25maWdzLiBUaGlzIGlzX2VuYWJsZWQgZnVuY3Rpb24gaXMgb25seSBj
YWxsZWQgYXMgcGFydCBvZiB0aGUgbWF0aAorICAgICAgIHRoYXQgc2V0cyB1cCBzaXplIGNsYXNz
ZXMsIGF0IGxlYXN0IGZvciBub3csIHNvIHRoZSBpbXBsaWNhdGlvbnMgb2Ygbm90IGRvaW5nIHRo
aXMgY2hlY2sgYXJlIHJhdGhlcgorICAgICAgIHRpbnkuICovCisgICAgaWYgKCFydW50aW1lX2Nv
bmZpZy0+bWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IHN3aXRjaCAoY29uZmlnLnZhcmlhbnQpIHsKICAgICBjYXNlIHBhc19zbWFsbF9iaXRmaXRfcGFn
ZV9jb25maWdfdmFyaWFudDoKICAgICAgICAgcmV0dXJuIHBhc19zbWFsbF9iaXRmaXRfcGFnZV9j
b25maWdfdmFyaWFudF9pc19lbmFibGVkX292ZXJyaWRlOwpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4
ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZp
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykg
MjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
YykgMjAxOC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzA1LDYgKzMwNSwyMyBAQCBwYXNfaGVhcF9jb25maWdf
Yml0Zml0X3BhZ2VfY29uZmlnX2Zvcl92CiAgICAgcmV0dXJuIGNvbmZpZy5zbWFsbF9iaXRmaXRf
Y29uZmlnOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19oZWFwX2Nv
bmZpZ19zZWdyZWdhdGVkX2hlYXBfbWluX2FsaWduX3NoaWZ0KHBhc19oZWFwX2NvbmZpZyBjb25m
aWcpCit7CisgICAgc2l6ZV90IHJlc3VsdDsKKyAgICByZXN1bHQgPSBTSVpFX01BWDsKKyAgICBp
ZiAoY29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcuYmFzZS5pc19lbmFibGVkKQorICAgICAgICBy
ZXN1bHQgPSBQQVNfTUlOKHJlc3VsdCwgY29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcuYmFzZS5t
aW5fYWxpZ25fc2hpZnQpOworICAgIGlmIChjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcu
YmFzZS5pc19lbmFibGVkKQorICAgICAgICByZXN1bHQgPSBQQVNfTUlOKHJlc3VsdCwgY29uZmln
LnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0KTsKKyAgICBQQVNf
QVNTRVJUKHJlc3VsdCAhPSBTSVpFX01BWCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdCBwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9o
ZWFwX21pbl9hbGlnbihwYXNfaGVhcF9jb25maWcgY29uZmlnKQoreworICAgIHJldHVybiAoc2l6
ZV90KTEgPDwgcGFzX2hlYXBfY29uZmlnX3NlZ3JlZ2F0ZWRfaGVhcF9taW5fYWxpZ25fc2hpZnQo
Y29uZmlnKTsKK30KKwogLyogUmV0dXJucyB0cnVlIGlmIHdlIHdlcmUgdGhlIGZpcnN0IHRvIGFj
dGl2ZSBpdC4gTXVzdCBob2xkIHRoZSBoZWFwIGxvY2sgdG8gY2FsbCB0aGlzLiBUaGlzIGlzCiAg
ICBwZXJtaXNzaXZlIG9mIHJlY3Vyc2l2ZSBpbml0aWFsaXphdGlvbjogaW4gdGhhdCBjYXNlLCBp
dCB3aWxsIGp1c3QgcHJldGVuZCB0aGF0IHRoZSBjb25maWcgaXMKICAgIGFscmVhZHkgaW5pdGlh
bGl6ZWQuICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDcgKzUyLDggQEAgc3RhdGljIHZvaWQgY2hlY2tfc2l6ZV9sb29rdXBfcmVj
b21wdXRhdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCAqY2FjaGVkX2luZGV4LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB3aGVyZSk7
CiAKLXN0YXRpYyBzaXplX3QgbWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVh
cF9jb25maWcqIGNvbmZpZykKK3N0YXRpYyBzaXplX3QgbWluX2FsaWduX2Zvcl9oZWFwKHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfaGVhcF9jb25maWcqIGNvbmZpZykKIHsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z192YXJpYW50IHNlZ3JlZ2F0ZWRfdmFyaWFudDsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X3ZhcmlhbnQgYml0Zml0X3ZhcmlhbnQ7CkBAIC02MCw3ICs2MSw3IEBAIHN0YXRpYyBzaXplX3Qg
bWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2MKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcqIHBhZ2VfY29uZmlnOwogICAgICAgICBwYWdlX2NvbmZpZyA9CiAgICAgICAgICAgICBw
YXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoY29u
ZmlnLCBzZWdyZWdhdGVkX3ZhcmlhbnQpOwotICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2lzX2VuYWJsZWQoKnBhZ2VfY29uZmlnKSkKKyAgICAgICAgaWYgKCFwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKCpwYWdlX2NvbmZpZywgaGVhcC0+cnVudGlt
ZV9jb25maWcpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24oKnBhZ2VfY29uZmlnKTsKICAgICB9CkBAIC03
MCw3ICs3MSw3IEBAIHN0YXRpYyBzaXplX3QgbWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2MKICAg
ICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CiAgICAgICAgIHBhZ2Vf
Y29uZmlnID0KICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZ19iaXRmaXRfcGFnZV9jb25maWdf
cHRyX2Zvcl92YXJpYW50KGNvbmZpZywgYml0Zml0X3ZhcmlhbnQpOwotICAgICAgICBpZiAoIXBh
c19iaXRmaXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcpKQorICAgICAgICBp
ZiAoIXBhc19iaXRmaXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcsIGhlYXAt
PnJ1bnRpbWVfY29uZmlnKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICByZXR1cm4g
cGFzX3BhZ2VfYmFzZV9jb25maWdfbWluX2FsaWduKHBhZ2VfY29uZmlnLT5iYXNlKTsKICAgICB9
CkBAIC03OSw2ICs4MCwxMiBAQCBzdGF0aWMgc2l6ZV90IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVh
cF9jCiAgICAgcmV0dXJuIGNvbmZpZy0+bGFyZ2VfYWxpZ25tZW50OwogfQogCitzdGF0aWMgc2l6
ZV90IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcChwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBj
b25maWcpCit7CisgICAgcmV0dXJuIG1pbl9hbGlnbl9mb3JfaGVhcChoZWFwLCBjb25maWcpOwor
fQorCiBzdGF0aWMgc2l6ZV90IG1heF9vYmplY3Rfc2l6ZV9mb3JfcGFnZV9jb25maWcocGFzX2hl
YXAqIHBhcmVudF9oZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19wYWdlX2Jhc2VfY29uZmlnKiBwYWdlX2NvbmZpZykKIHsKQEAgLTk4LDkgKzEw
NSw5IEBAIHN0YXRpYyBzaXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9wYWdlX2MKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgc2l6ZV90IG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXpl
X2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVhcCogcGFyZW50X2hlYXAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCitzdGF0aWMgc2l6ZV90IG1heF9z
ZWdyZWdhdGVkX29iamVjdF9zaXplX2Zvcl9oZWFwKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCiB7CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtMTExLDcgKzExOCw3IEBAIHN0YXRpYyBz
aXplX3QgbWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemUKICAgICAgICAgc2l6ZV90IHJlc3VsdDsK
ICAgICAgICAgCiAgICAgICAgIHBhZ2VfY29uZmlnID0gcGFzX2hlYXBfY29uZmlnX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfcHRyX2Zvcl92YXJpYW50KGNvbmZpZywgdmFyaWFudCk7Ci0gICAgICAg
IGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcp
KQorICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQoKnBh
Z2VfY29uZmlnLCBoZWFwLT5ydW50aW1lX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAogICAgICAgICBtYXhfc2l6ZV9wZXJfY29uZmlnID0gbWF4X29iamVjdF9zaXplX2Zvcl9wYWdl
X2NvbmZpZyhwYXJlbnRfaGVhcCwgJnBhZ2VfY29uZmlnLT5iYXNlKTsKQEAgLTEyNSw5ICsxMzIs
OSBAQCBzdGF0aWMgc2l6ZV90IG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplCiAgICAgcmV0dXJu
IDA7CiB9CiAKLXN0YXRpYyBzaXplX3QgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9j
b25maWcocGFzX2hlYXAqIHBhcmVudF9oZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVh
cF9jb25maWcqIGNvbmZpZykKK3N0YXRpYyBzaXplX3QgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9m
b3JfaGVhcChwYXNfaGVhcCogcGFyZW50X2hlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNv
bmZpZykKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCkBA
IC0xNDUsNyArMTUyLDcgQEAgc3RhdGljIHNpemVfdCBtYXhfYml0Zml0X29iamVjdF9zaXplX2Zv
cgogICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0
cmluZyhwYWdlX2NvbmZpZy0+a2luZCkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQoKnBhZ2VfY29uZmlnKSkgeworICAgICAgICBp
ZiAoIXBhc19iaXRmaXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcsIGhlYXAt
PnJ1bnRpbWVfY29uZmlnKSkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJOb3QgY29uc2lkZXJpbmcgJXMgYmVjYXVzZSBpdCdzIGRpc2FibGVk
LlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2lu
ZF9nZXRfc3RyaW5nKHBhZ2VfY29uZmlnLT5raW5kKSk7CkBAIC0xODIsMTIgKzE4OSwxMiBAQCBz
dGF0aWMgc2l6ZV90IG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yCiAgICAgcmV0dXJuIDA7CiB9
CiAKLXN0YXRpYyBzaXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVh
cCogcGFyZW50X2hlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKK3N0YXRpYyBz
aXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9oZWFwKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9j
b25maWcqIGNvbmZpZykKIHsKLSAgICByZXR1cm4gUEFTX01BWChtYXhfc2VncmVnYXRlZF9vYmpl
Y3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcocGFyZW50X2hlYXAsIGhlYXAsIGNvbmZpZyksCi0gICAg
ICAgICAgICAgICAgICAgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcocGFy
ZW50X2hlYXAsIGhlYXAsIGNvbmZpZykpOworICAgIHJldHVybiBQQVNfTUFYKG1heF9zZWdyZWdh
dGVkX29iamVjdF9zaXplX2Zvcl9oZWFwKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcpLAorICAg
ICAgICAgICAgICAgICAgIG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yX2hlYXAocGFyZW50X2hl
YXAsIGhlYXAsIGNvbmZpZykpOwogfQogCiB2b2lkIHBhc19zZWdyZWdhdGVkX2hlYXBfY29uc3Ry
dWN0KHBhc19zZWdyZWdhdGVkX2hlYXAqIHNlZ3JlZ2F0ZWRfaGVhcCwKQEAgLTg0Nyw3ICs4NTQs
NyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kCiAKICAgICBwYXNf
aGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CiAgICAgCi0gICAgUEFTX0FTU0VSVChkaXJlY3Rvcnkt
Pm9iamVjdF9zaXplID49IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcoY29uZmlnKSk7
CisgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXplID49IG1pbl9vYmplY3Rfc2l6
ZV9mb3JfaGVhcChoZWFwLCBjb25maWcpKTsKIAogICAgIHJlbWF0ZXJpYWxpemVfc2l6ZV9sb29r
dXBfaWZfbmVjZXNzYXJ5KGhlYXAsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKIApAQCAtMTMyOCw2
ICsxMzM1LDggQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAg
IHNpemVfdCBvYmplY3Rfc2l6ZTsKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJl
Y3RvcnlfdHVwbGUqIG1lZGl1bV90dXBsZTsKICAgICBib29sIGlzX3V0aWxpdHk7CisgICAgc2l6
ZV90IGR5bmFtaWNfbWluX2FsaWduOworICAgIHNpemVfdCBzdGF0aWNfbWluX2FsaWduOwogCiAg
ICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogCkBAIC0xMzkxLDIyICsxNDAwLDM2IEBA
IHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICBwYXJlbnRfaGVh
cCA9IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCk7CiAKICAgICBpbmRleCA9IHBh
c19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3NpemUoc2l6ZSwgKmNvbmZpZyk7CisKKyAgICBp
ZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiaW5kZXggPSAlenVcbiIsIGluZGV4KTsKKyAg
ICAKICAgICBvYmplY3Rfc2l6ZSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9mb3JfaW5kZXgo
aW5kZXgsICpjb25maWcpOwogCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIm9i
amVjdF9zaXplID0gJXp1XG4iLCBvYmplY3Rfc2l6ZSk7CisKICAgICBpZiAob2JqZWN0X3NpemUg
PCBzaXplKSB7CiAgICAgICAgIC8qIFRoaXMnbGwgb25seSBoYXBwZW4gaW4gY2VydGFpbiBraW5k
cyBvZiBvdmVyZmxvd3MsIGluIHdoaWNoIGNhc2UgdGhlIHNpemUgbXVzdCBiZSB3YXkgdG9vIGJp
Zy4gKi8KICAgICAgICAgUEFTX0FTU0VSVCghb2JqZWN0X3NpemUpOwogICAgICAgICByZXR1cm4g
TlVMTDsKICAgICB9CiAKLSAgICBvYmplY3Rfc2l6ZSA9IFBBU19NQVgobWluX29iamVjdF9zaXpl
X2Zvcl9oZWFwX2NvbmZpZyhjb25maWcpLCBvYmplY3Rfc2l6ZSk7CisgICAgb2JqZWN0X3NpemUg
PSBQQVNfTUFYKG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcChoZWFwLCBjb25maWcpLCBvYmplY3Rf
c2l6ZSk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygib2JqZWN0X3NpemUg
YWZ0ZXIgYWNjb3VudGluZyBmb3IgbWluX29iamVjdF9zaXplID0gJXp1XG4iLCBvYmplY3Rfc2l6
ZSk7CisKKyAgICBzdGF0aWNfbWluX2FsaWduID0gcGFzX2hlYXBfY29uZmlnX3NlZ3JlZ2F0ZWRf
aGVhcF9taW5fYWxpZ24oKmNvbmZpZyk7CisgICAgZHluYW1pY19taW5fYWxpZ24gPSBtaW5fYWxp
Z25fZm9yX2hlYXAoaGVhcCwgY29uZmlnKTsKKyAgICBQQVNfQVNTRVJUKGR5bmFtaWNfbWluX2Fs
aWduID49IHN0YXRpY19taW5fYWxpZ24pOwogCiAgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25l
ZChvYmplY3Rfc2l6ZSwgYWxpZ25tZW50KSk7Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25l
ZCgKLSAgICAgICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfbWluX2FsaWduKGNvbmZpZy0+c21hbGxfc2VncmVnYXRlZF9jb25maWcpKSk7CisgICAg
UEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgc3RhdGljX21pbl9hbGlnbikp
OwogCi0gICAgYWxpZ25tZW50ID0gUEFTX01BWChhbGlnbm1lbnQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24oY29uZmlnLT5zbWFs
bF9zZWdyZWdhdGVkX2NvbmZpZykpOworICAgIG9iamVjdF9zaXplID0gcGFzX3JvdW5kX3VwX3Rv
X3Bvd2VyX29mXzIob2JqZWN0X3NpemUsIGR5bmFtaWNfbWluX2FsaWduKTsKKyAgICAKKyAgICBh
bGlnbm1lbnQgPSBQQVNfTUFYKGFsaWdubWVudCwgZHluYW1pY19taW5fYWxpZ24pOwogCiAgICAg
LyogSWYgd2UgaGF2ZSBvdmVyZmxvd2VkIGFscmVhZHkgdGhlbiBiYWlsLiAqLwogICAgIGlmICgo
dW5zaWduZWQpb2JqZWN0X3NpemUgIT0gb2JqZWN0X3NpemUgfHwKQEAgLTE0MTksNyArMTQ0Miw3
IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAvKiBJZiBp
dCdzIGltcG9zc2libGUgdG8gdXNlIHRoZSBsYXJnZXN0IHNlZ3JlZ2F0ZWQgaGVhcCB0byBhbGxv
Y2F0ZSB0aGUgcmVxdWVzdCB0aGVuCiAgICAgICAgaW1tZWRpYXRlbHkgZ2l2ZSB1cC4gRG8gdGhp
cyBiZWZvcmUgZW5zdXJlX3NpemVfbG9va3VwIHNvIHRoYXQgaGVhcHMgdGhhdCBhcmUgb25seSB1
c2VkCiAgICAgICAgZm9yIGxhcmdlIG9iamVjdCBhbGxvY2F0aW9uIGRvbid0IGFsbG9jYXRlIGFu
eSBzbWFsbCBoZWFwIG1ldGEtZGF0YS4gKi8KLSAgICBpZiAob2JqZWN0X3NpemUgPiBtYXhfb2Jq
ZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcpKSB7Cisg
ICAgaWYgKG9iamVjdF9zaXplID4gbWF4X29iamVjdF9zaXplX2Zvcl9oZWFwKHBhcmVudF9oZWFw
LCBoZWFwLCBjb25maWcpKSB7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFz
X2xvZygiSXQncyB0b28gYmlnLlxuIik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTY1Nyw3
ICsxNjgwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnX3B0ciA9CiAgICAgICAg
ICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZ19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3B0cl9m
b3JfdmFyaWFudChjb25maWcsIHZhcmlhbnQpOwotICAgICAgICAgICAgICAgIGlmICghcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWdfcHRyKSkKKyAgICAg
ICAgICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQoKnBh
Z2VfY29uZmlnX3B0ciwgaGVhcC0+cnVudGltZV9jb25maWcpKQogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBwYWdlX2NvbmZp
ZyA9ICpwYWdlX2NvbmZpZ19wdHI7CkBAIC0xNzAxLDkgKzE3MjQsOSBAQCBwYXNfc2VncmVnYXRl
ZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBQ
QVNfQVNTRVJUKG9iamVjdF9zaXplIDw9IGhlYXAtPnJ1bnRpbWVfY29uZmlnLT5tYXhfYml0Zml0
X29iamVjdF9zaXplKTsKICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAg
ICAgICAgICBvYmplY3Rfc2l6ZSA8PSBtYXhfYml0Zml0X29iamVjdF9zaXplX2Zvcl9oZWFwX2Nv
bmZpZyhwYXJlbnRfaGVhcCwgaGVhcCwgY29uZmlnKSk7CisgICAgICAgICAgICAgICAgb2JqZWN0
X3NpemUgPD0gbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcChwYXJlbnRfaGVhcCwgaGVh
cCwgY29uZmlnKSk7CiAgICAgICAgICAgICBiZXN0X2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdCA9
Ci0gICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KG9iamVjdF9z
aXplLCBjb25maWcpLm9iamVjdF9zaXplOworICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfaGVh
cF9zZWxlY3RfdmFyaWFudChvYmplY3Rfc2l6ZSwgY29uZmlnLCBoZWFwLT5ydW50aW1lX2NvbmZp
Zykub2JqZWN0X3NpemU7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFpc191dGlsaXR5KTsKICAg
ICAgICAgfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xNTUsMTQgKzE1NSwxNyBAQCBQQVNfQVBJIHBhc19iaXRmaXRfaGVhcCogcGFz
X3NlZ3JlZ2F0ZWRfCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CiBwYXNfc2VncmVn
YXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKHNpemVfdCBzaXplLCBwYXNfaGVhcF9jb25maWcgY29u
ZmlnKQogewotICAgIHJldHVybiAoc2l6ZSArIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21p
bl9hbGlnbihjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpIC0gMSkKLSAgICAgICAgPj4g
Y29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0OworICAg
IHNpemVfdCBtaW5fYWxpZ25fc2hpZnQ7CisgICAgc2l6ZV90IG1pbl9hbGlnbjsKKyAgICBtaW5f
YWxpZ25fc2hpZnQgPSBwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9oZWFwX21pbl9hbGlnbl9z
aGlmdChjb25maWcpOworICAgIG1pbl9hbGlnbiA9IChzaXplX3QpMSA8PCBtaW5fYWxpZ25fc2hp
ZnQ7CisgICAgcmV0dXJuIChzaXplICsgbWluX2FsaWduIC0gMSkgPj4gbWluX2FsaWduX3NoaWZ0
OwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CiBwYXNfc2VncmVnYXRlZF9o
ZWFwX3NpemVfZm9yX2luZGV4KHNpemVfdCBpbmRleCwgcGFzX2hlYXBfY29uZmlnIGNvbmZpZykK
IHsKLSAgICByZXR1cm4gaW5kZXggPDwgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJh
c2UubWluX2FsaWduX3NoaWZ0OworICAgIHJldHVybiBpbmRleCA8PCBwYXNfaGVhcF9jb25maWdf
c2VncmVnYXRlZF9oZWFwX21pbl9hbGlnbl9zaGlmdChjb25maWcpOwogfQogCiAvKiBUaGVzZSBm
dW5jdGlvbnMgaGVscCB3aXRoIGRlYWxpbmcgd2l0aCBwYXNfaGVhcF9yZWY6OmFsbG9jYXRvcl9p
bmRleC4gQ2FuIHBhc3MgYSBOVUxMIGNhY2hlZF9pbmRleCwgaW4gd2hpY2gKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlLmMJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwkod29ya2luZyBjb3B5KQpAQCAtMjQzLDcgKzI0Myw2
IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QocGFzX3MKIAogICAgICAgICBp
ZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eShkaXJl
Y3RvcnkpKSB7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9p
bmRleCk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRl
eCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKICAgICAgICAgICAgIHBhZ2UtPnZp
ZXdfY2FjaGVfaW5kZXggPSBkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXg7CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXgg
PT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZy5oCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjksMTMgKzI5LDE0IEBACiAjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5j
bHVkZSAicGFzX2JpdHZlY3Rvci5oIgogI2luY2x1ZGUgInBhc19jb25maWcuaCIKKyNpbmNsdWRl
ICJwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0
b3JfcmVmaWxsX21vZGUuaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgotI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9iYXNlX2Nv
bmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmgiCiAjaW5jbHVk
ZSAicGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX2xvZ2dpbmdfbW9kZS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJp
YW50LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgpAQCAtMjIyLDEwICsyMjMsMTggQEAgUEFTX0FQSSBleHRl
cm4gYm9vbCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZQogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQUdF
X0NPTkZJR19HT09EX01BWF9PQkpFQ1RfU0laRShvYmplY3RfcGF5bG9hZF9zaXplLCBtaW5fbnVt
X29iamVjdHMpIFwKICAgICAoKG9iamVjdF9wYXlsb2FkX3NpemUpIC8gKG1pbl9udW1fb2JqZWN0
cykpCiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc19l
bmFibGVkKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZykKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2Nv
bmZpZykKIHsKICAgICBpZiAoIWNvbmZpZy5iYXNlLmlzX2VuYWJsZWQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAvKiBEb2luZyB0aGlzIGNoZWNrIGhlcmUgaXMgbm90IHN1cGVyIG5lY2Vz
c2FyeSwgYnV0IGl0J3Mgc29ydCBvZiBuaWNlIGZvciBjYXNlcyB3aGVyZSB3ZSBoYXZlIGEgaGVh
cAorICAgICAgIHRoYXQgc29tZXRpbWVzIHVzZXMgYml0Zml0IGV4Y2x1c2l2ZWx5IG9yIHNvbWV0
aW1lcyB1c2VzIHNlZ3JlZ2F0ZWQgZXhjbHVzaXZlbHkgYW5kIHRoYXQncyBzZWxlY3RlZAorICAg
ICAgIGJ5IHNlbGVjdGluZyBvciBtdXRhdGluZyBydW50aW1lX2NvbmZpZ3MuIFRoaXMgaXNfZW5h
YmxlZCBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBtYXRoCisgICAgICAg
dGhhdCBzZXRzIHVwIHNpemUgY2xhc3NlcywgYXQgbGVhc3QgZm9yIG5vdywgc28gdGhlIGltcGxp
Y2F0aW9ucyBvZiBub3QgZG9pbmcgdGhpcyBjaGVjayBhcmUgcmF0aGVyCisgICAgICAgdGlueS4g
Ki8KKyAgICBpZiAoIXJ1bnRpbWVfY29uZmlnLT5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHN3aXRjaCAoY29uZmlnLnZhcmlhbnQpIHsKICAg
ICBjYXNlIHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQ6CiAgICAgICAg
IHJldHVybiBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50X2lzX2VuYWJs
ZWRfb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRl
ZgkocmV2aXNpb24gMjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5kZWYJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
MDQsMyArMTA0LDcgQEAgUEFTX0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkQoaAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSE9UQklUX0hFQVBfQ09ORklH
Lm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZykKICNlbmRpZgogCisjaWYgUEFTX0VOQUJMRV9KSVQK
K1BBU19ERUZJTkVfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EKGppdF9zbWFsbF9zZWdyZWdh
dGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX0hFQVBfQ09O
RklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKQorI2VuZGlmCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9y
b2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5oCShyZXZpc2lvbiAyODg0MDgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX2FuZF9yb2xlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNyArNDEsNyBAQCBlbnVt
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kCiAKIHR5cGVkZWYgZW51bSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfYW5kX3JvbGU7CiAKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9DT05G
SUdfS0lORF9BTkRfUk9MRV9OVU1fQklUUyA1dQorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQUdF
X0NPTkZJR19LSU5EX0FORF9ST0xFX05VTV9CSVRTIDZ1CiAjZGVmaW5lIFBBU19TRUdSRUdBVEVE
X1BBR0VfQ09ORklHX0tJTkRfQU5EX1JPTEVfTUFTSyBcCiAgICAgKCgxdSA8PCBQQVNfU0VHUkVH
QVRFRF9QQUdFX0NPTkZJR19LSU5EX0FORF9ST0xFX05VTV9CSVRTKSAtIDF1KQogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAy
MDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChj
KSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzAsNyArMTMwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIHBhc19zZWdyZQogICAgICAgICBiaXRmaXRfc2l6ZV9jbGFzcyA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9iaXRmaXRfc2l6ZV9jbGFzcyhyZXN1bHQpOwog
ICAgICAgICAKICAgICAgICAgcGFzX2JpdGZpdF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXJ0X3Np
emVfY2xhc3MoCi0gICAgICAgICAgICBiaXRmaXRfaGVhcCwgYml0Zml0X3NpemVfY2xhc3MsIG9i
amVjdF9zaXplLCBoZWFwX2NvbmZpZyk7CisgICAgICAgICAgICBiaXRmaXRfaGVhcCwgYml0Zml0
X3NpemVfY2xhc3MsIG9iamVjdF9zaXplLCBoZWFwX2NvbmZpZywgaGVhcC0+cnVudGltZV9jb25m
aWcpOwogICAgIH0KICAgICAKICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwgTlVMTCk7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NU
ZXN0cy5jcHAJKHJldmlzaW9uIDI4ODQwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjA3LDYgKzEy
MDcsMTEgQEAgdm9pZCBhZGRBbGxUZXN0cygpCiAgICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRI
ZWFwOwogCiAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7CisKKyAgICAg
ICAgeworICAgICAgICAgICAgRm9yY2VCaXRmaXQgZm9yY2VCaXRmaXQ7CisgICAgICAgICAgICBB
RERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgdHJ1ZSkpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
ewpAQCAtMTIyNyw2ICsxMjMyLDExIEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgICAgICBCb290
SklUSGVhcCBib290SklUSGVhcDsKIAogICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwg
ZmFsc2UpKTsKKworICAgICAgICB7CisgICAgICAgICAgICBGb3JjZUJpdGZpdCBmb3JjZUJpdGZp
dDsKKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOworICAgICAg
ICB9CiAgICAgfQogI2VuZGlmIC8vIFBBU19FTkFCTEVfSE9UQklUCiB9CkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSklUSGVhcFRlc3RzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSklUSGVhcFRlc3RzLmNwcAkocmV2aXNpb24g
Mjg4NDA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0pJVEhlYXBUZXN0cy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAy
MS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjksNiArNjksMTEgQEAgdm9pZCB0ZXN0QWxsb2NhdGVTaHJpbmtB
bmRBbGxvY2F0ZSh1bnNpZwogICAgIGppdF9oZWFwX2RlYWxsb2NhdGUobmV3UHRyKTsKIH0KIAor
dm9pZCB0ZXN0QWxsb2NhdGlvblNpemUoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCBhY3R1
YWxTaXplKQoreworICAgIENIRUNLX0VRVUFMKGppdF9oZWFwX2dldF9zaXplKGppdF9oZWFwX3Ry
eV9hbGxvY2F0ZShyZXF1ZXN0ZWRTaXplKSksIGFjdHVhbFNpemUpOworfQorCiB9IC8vIGFub255
bW91cyBuYW1lc3BhY2UKIAogI2VuZGlmIC8vIFBBU19FTkFCTEVfSklUCkBAIC03OCwxMyArODMs
MzAgQEAgdm9pZCBhZGRKSVRIZWFwVGVzdHMoKQogI2lmIFBBU19FTkFCTEVfSklUCiAgICAgQm9v
dEpJVEhlYXAgYm9vdEpJVEhlYXA7CiAKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtB
bmRBbGxvY2F0ZSgwLCAwLCAwLCAwLCAwLCA0KSk7Ci0gICAgQUREX1RFU1QodGVzdEFsbG9jYXRl
U2hyaW5rQW5kQWxsb2NhdGUoMCwgMCwgMTI4LCA2NCwgNjQsIDQpKTsKLSAgICBBRERfVEVTVCh0
ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgzMiwgMTAsIDEyOCwgNjQsIDY0LCA0KSk7Ci0g
ICAgQUREX1RFU1QodGVzdEFsbG9jYXRlU2hyaW5rQW5kQWxsb2NhdGUoMzIsIDEwLCAxMDAwLCA1
MDAsIDEwMDAsIDQpKTsKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0
ZSgwLCAwLCAyMDQ4LCA1MTIsIDExMDAsIDI1NikpOwotICAgIEFERF9URVNUKHRlc3RBbGxvY2F0
ZVNocmlua0FuZEFsbG9jYXRlKDMyLCAxMCwgMjA0OCwgNTEyLCAxMTAwLCAyNTYpKTsKLSAgICBB
RERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgxMTAwLCAxMCwgMjA0OCwgNTEy
LCAxMTAwLCAyNTYpKTsKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0
ZSgwLCAwLCAxMDAwMDAsIDEwMDAwLCA4MDAwMCwgNCkpOworICAgIHsKKyAgICAgICAgRm9yY2VC
aXRmaXQgZm9yY2VCaXRmaXQ7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0Fu
ZEFsbG9jYXRlKDAsIDAsIDAsIDAsIDAsIDQpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9j
YXRlU2hyaW5rQW5kQWxsb2NhdGUoMCwgMCwgMTI4LCA2NCwgNjQsIDQpKTsKKyAgICAgICAgQURE
X1RFU1QodGVzdEFsbG9jYXRlU2hyaW5rQW5kQWxsb2NhdGUoMzIsIDEwLCAxMjgsIDY0LCA2NCwg
NCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgzMiwg
MTAsIDEwMDAsIDUwMCwgMTAwMCwgNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVT
aHJpbmtBbmRBbGxvY2F0ZSgwLCAwLCAyMDQ4LCA1MTIsIDExMDAsIDI1NikpOworICAgICAgICBB
RERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgzMiwgMTAsIDIwNDgsIDUxMiwg
MTEwMCwgMjU2KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9j
YXRlKDExMDAsIDEwLCAyMDQ4LCA1MTIsIDExMDAsIDI1NikpOworICAgICAgICBBRERfVEVTVCh0
ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgwLCAwLCAxMDAwMDAsIDEwMDAwLCA4MDAwMCwg
NCkpOworICAgIH0KKyAgICAKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvblNpemUoNCwgMTYp
KTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvblNpemUoOCwgMTYpKTsKKyAgICBBRERfVEVT
VCh0ZXN0QWxsb2NhdGlvblNpemUoMTIsIDE2KSk7CisgICAgQUREX1RFU1QodGVzdEFsbG9jYXRp
b25TaXplKDE2LCAxNikpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSgyMCwgMzIp
KTsKKyAgICB7CisgICAgICAgIEZvcmNlQml0Zml0IGZvcmNlQml0Zml0OworICAgICAgICBBRERf
VEVTVCh0ZXN0QWxsb2NhdGlvblNpemUoNCwgNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxs
b2NhdGlvblNpemUoOCwgOCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvblNpemUo
MTIsIDEyKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSgxNiwgMTYpKTsK
KyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25TaXplKDIwLCAyMCkpOworICAgIH0KICNl
bmRpZiAvLyBQQVNfRU5BQkxFX0pJVAogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCShyZXZpc2lvbiAyODg0MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNjUsNiArMzY1LDcgQEAgdm9pZCBhZGRSZWRCbGFja1RyZWVUZXN0cygpOwogdm9pZCBhZGRU
U0RUZXN0cygpOwogdm9pZCBhZGRUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cygp
Owogdm9pZCBhZGRVdGlsc1Rlc3RzKCk7Cit2b2lkIGFkZFZpZXdDYWNoZVRlc3RzKCk7CiAKIHZv
aWQgdGVzdFN1Y2NlZWRlZCgpCiB7CkBAIC03MjksNiArNzMwLDcgQEAgaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQogICAgIEFERF9TVUlURShSZWRCbGFja1RyZWUpOwogICAgIEFERF9T
VUlURShUU0QpOwogICAgIEFERF9TVUlURShVdGlscyk7CisgICAgQUREX1NVSVRFKFZpZXdDYWNo
ZSk7CiAgICAgCiAgICAgc3RyaW5nIGZpbHRlcjsKICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvdGVzdC9WaWV3Q2FjaGVUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1ZpZXdDYWNoZVRlc3RzLmNwcAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVmlld0NhY2hlVGVzdHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJUZXN0SGFybmVzcy5oIgorCisjaWYgUEFT
X0VOQUJMRV9CTUFMTE9DCisKKyNpbmNsdWRlICJibWFsbG9jX2hlYXAuaCIKKyNpbmNsdWRlICJi
bWFsbG9jX2hlYXBfY29uZmlnLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuaCIKKyNpbmNsdWRlIDxzZXQ+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVz
cGFjZSB7CisKK3ZvaWQgc2V0dXBDb25maWcoKQoreworICAgIC8vIElmIHRoZXNlIGFzc2VydGlv
bnMgZXZlciBmYWlsIHdlIGNvdWxkIGp1c3QgZml4IGl0IGJ5IHJlcGxhY2luZyB0aGVtIHdpdGgg
Y29kZSB0aGF0IG11dGF0ZXMgdGhlCisgICAgLy8gY29uZmlnIHRvIGhhdmUgdGhlIHNldHRpbmdz
IHdlIHdhbnQuCisgICAgQ0hFQ0tfRVFVQUwoYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25m
aWcuYmFzZS52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSwKKyAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVfY2FwYWNp
dHkpOworICAgIENIRUNLX0VRVUFMKGJtYWxsb2NfaW50cmluc2ljX3J1bnRpbWVfY29uZmlnLmJh
c2UuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUsIDApOworfQorCit2b2lk
IHRlc3REaXNhYmxlVmlld0NhY2hlVXNpbmdCb3VuZEZvck5vVmlld0NhY2hlKCkKK3sKKyAgICBz
ZXR1cENvbmZpZygpOworCisgICAgYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFz
ZS5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IFVJTlRfTUFYOworCisg
ICAgYm1hbGxvY19kZWFsbG9jYXRlKGJtYWxsb2NfYWxsb2NhdGUoNDIpKTsKK30KKwordm9pZCB0
ZXN0RW5hYmxlVmlld0NhY2hlQXRTb21lQm91bmRGb3JOb1ZpZXdDYWNoZSh1bnNpZ25lZCBib3Vu
ZCkKK3sKKyAgICBzZXR1cENvbmZpZygpOworCisgICAgYm1hbGxvY19pbnRyaW5zaWNfcnVudGlt
ZV9jb25maWcuYmFzZS5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IGJv
dW5kOworCisgICAgdm9pZCogcHRyID0gYm1hbGxvY19hbGxvY2F0ZSg0Mik7CisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlldyB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KAorICAg
ICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSwgJmJtYWxsb2NfaGVhcF9jb25m
aWcpOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiB0aGVEaXJlY3RvcnkgPSBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKKworICAgIENIRUNL
X0VRVUFMKHRoZURpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCwgVUlOVF9NQVgpOworCisgICAg
c2V0PHBhc19zZWdyZWdhdGVkX3ZpZXc+IHZpZXdzOworICAgIHZpZXdzLmluc2VydCh2aWV3KTsK
KworICAgIGZvciAoOzspIHsKKyAgICAgICAgcHRyID0gYm1hbGxvY19hbGxvY2F0ZSg0Mik7Cisg
ICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QocmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KHB0ciksICZibWFsbG9jX2hlYXBfY29uZmlnKTsKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpOworCisgICAgICAgIENIRUNLX0VRVUFMKGRpcmVj
dG9yeSwgdGhlRGlyZWN0b3J5KTsKKworICAgICAgICB2aWV3cy5pbnNlcnQodmlldyk7CisKKyAg
ICAgICAgaWYgKHZpZXdzLnNpemUoKSA+IGJvdW5kKSB7CisgICAgICAgICAgICBDSEVDS19FUVVB
TCh2aWV3cy5zaXplKCksIGJvdW5kICsgMSk7CisgICAgICAgICAgICBDSEVDS19MRVNTKHRoZURp
cmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCwgVUlOVF9NQVgpOworICAgICAgICAgICAgQ0hFQ0tf
R1JFQVRFUih0aGVEaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXgsIDApOworCisgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFn
ZSh2aWV3KTsKKyAgICAgICAgICAgIENIRUNLX0VRVUFMKHBhZ2UtPnZpZXdfY2FjaGVfaW5kZXgs
IHRoZURpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCisjZW5kaWYg
Ly8gUEFTX0VOQUJMRV9CTUFMTE9DCisKK3ZvaWQgYWRkVmlld0NhY2hlVGVzdHMoKQoreworI2lm
IFBBU19FTkFCTEVfQk1BTExPQworICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7
CisgICAgRm9yY2VUTEFzIGZvcmNlVExBczsKKyAgICAKKyAgICBBRERfVEVTVCh0ZXN0RGlzYWJs
ZVZpZXdDYWNoZVVzaW5nQm91bmRGb3JOb1ZpZXdDYWNoZSgpKTsKKyAgICBBRERfVEVTVCh0ZXN0
RW5hYmxlVmlld0NhY2hlQXRTb21lQm91bmRGb3JOb1ZpZXdDYWNoZSgxKSk7CisgICAgQUREX1RF
U1QodGVzdEVuYWJsZVZpZXdDYWNoZUF0U29tZUJvdW5kRm9yTm9WaWV3Q2FjaGUoMTApKTsKKyAg
ICBBRERfVEVTVCh0ZXN0RW5hYmxlVmlld0NhY2hlQXRTb21lQm91bmRGb3JOb1ZpZXdDYWNoZSgx
MDApKTsKKyNlbmRpZiAvLyBQQVNfRU5BQkxFX0JNQUxMT0MKK30KKwo=
</data>
<flag name="review"
          id="476100"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451609</attachid>
            <date>2022-02-10 15:07:09 -0800</date>
            <delta_ts>2022-02-10 15:07:09 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>71153</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg5NTc5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDIyLTAxLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W2xpYnBhc10gaml0X2hlYXAgc2hvdWxkIHN1cHBvcnQgdGhlIHNlZ3JlZ2F0ZWQgaGVhcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBEaXNhYmxlIHRoZSBq
aXRfaGVhcCBzZWdyZWdhdGVkIGhlYXAgaWYgdGhlIGV4ZWN1dGFibGUgcG9vbCBzaXplIGlzIHRv
byBzbWFsbC4KKworICAgICAgICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6aW5pdGlhbGl6ZUpJVFBhZ2VSZXNlcnZhdGlvbik6CisKIDIwMjItMDItMDkgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgbG9jYWwgdmFy
aWFibGUgcG9pbnRlciBmb3IgY29uY3VycmVudGx5IGxvYWQgdmFsdWUKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAkocmV2aXNp
b24gMjg5NTc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDYgKzQzLDcgQEAKIAogI2lmIFVTRShMSUJQ
QVNfSklUX0hFQVApCiAjaW5jbHVkZSA8Ym1hbGxvYy9qaXRfaGVhcC5oPgorI2luY2x1ZGUgPGJt
YWxsb2Mvaml0X2hlYXBfY29uZmlnLmg+CiAjZWxzZQogI2luY2x1ZGUgPHd0Zi9NZXRhQWxsb2Nh
dG9yLmg+CiAjZW5kaWYKQEAgLTg0LDYgKzg1LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiB1c2lu
ZyBuYW1lc3BhY2UgV1RGOwogCisjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKK3N0YXRpYyBjb25z
dGV4cHIgc2l6ZV90IG1pbmltdW1Qb29sU2l6ZUZvclNlZ3JlZ2F0ZWRIZWFwID0gMjU2ICogTUI7
CisjZW5kaWYKKwogI2lmIGRlZmluZWQoRklYRURfRVhFQ1VUQUJMRV9NRU1PUllfUE9PTF9TSVpF
X0lOX01CKSAmJiBGSVhFRF9FWEVDVVRBQkxFX01FTU9SWV9QT09MX1NJWkVfSU5fTUIgPiAwCiBz
dGF0aWMgY29uc3RleHByIHNpemVfdCBmaXhlZEV4ZWN1dGFibGVNZW1vcnlQb29sU2l6ZSA9IEZJ
WEVEX0VYRUNVVEFCTEVfTUVNT1JZX1BPT0xfU0laRV9JTl9NQiAqIE1COwogI2VsaWYgQ1BVKEFS
TSkKQEAgLTM1NCw2ICszNTksMTEgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSklUUmVzZXJ2YXRp
b24gaW5pdAogICAgIH0KICAgICByZXNlcnZhdGlvbi5zaXplID0gc3RkOjptYXgocm91bmRVcFRv
TXVsdGlwbGVPZihwYWdlU2l6ZSgpLCByZXNlcnZhdGlvbi5zaXplKSwgcGFnZVNpemUoKSAqIDIp
OwogCisjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKKyAgICBpZiAocmVzZXJ2YXRpb24uc2l6ZSA8
IG1pbmltdW1Qb29sU2l6ZUZvclNlZ3JlZ2F0ZWRIZWFwKQorICAgICAgICBqaXRfaGVhcF9ydW50
aW1lX2NvbmZpZy5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IDA7CisjZW5kaWYKKwogICAg
IGF1dG8gdHJ5Q3JlYXRlUGFnZVJlc2VydmF0aW9uID0gW10gKHNpemVfdCByZXNlcnZhdGlvblNp
emUpIHsKICNpZiBPUyhMSU5VWCkKICAgICAgICAgLy8gSWYgd2UgdXNlIHVuY29tbWl0dGVkIHJl
c2VydmF0aW9uLCBtbWFwIG9wZXJhdGlvbiBpcyByZWNvcmRlZCB3aXRoIHNtYWxsIHBhZ2Ugc2l6
ZSBpbiBwZXJmIGNvbW1hbmQncyBvdXRwdXQuCkBAIC03NzAsNyArNzgwLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX3N0YXJ0KTsKICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFtX2VuZCk7CiAgICAgICAgICAgICBtX3N0YXJ0ID0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KHN0YXJ0KTsKLSAgICAgICAgICAgIG1fZW5kID0gbV9zdGFydCArIHNpemVJ
bkJ5dGVzOyAKKyAgICAgICAgICAgIG1fZW5kID0gbV9zdGFydCArIHNpemVJbkJ5dGVzOwogICAg
ICAgICAgICAgaml0X2hlYXBfYWRkX2ZyZXNoX21lbW9yeShwYXNfcmFuZ2VfY3JlYXRlKG1fc3Rh
cnQsIG1fZW5kKSk7CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9FeGVjdXRhYmxlTWVtb3J5SGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9FeGVjdXRhYmxlTWVtb3J5SGFuZGxlLmgJKHJldmlzaW9uIDI4OTU3OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkgJiYg
RU5BQkxFKEpJVCkKICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvclB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPGJtYWxsb2Mvaml0X2hlYXAu
aD4KICNlbHNlCiAjaW5jbHVkZSA8d3RmL01ldGFBbGxvY2F0b3JIYW5kbGUuaD4KICNlbmRpZgpJ
bmRleDogU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL0NoYW5nZUxvZwkocmV2aXNpb24gMjg5NTc5KQorKysgU291cmNlL2JtYWxsb2MvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTExIEBACisyMDIyLTAxLTIzICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gaml0X2hlYXAgc2hv
dWxkIHN1cHBvcnQgdGhlIHNlZ3JlZ2F0ZWQgaGVhcAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVz
dWtlIFN1enVraS4KKworICAgICAgICBPbmUgb2YgdGhlIHRoaW5ncyB0aGF0IGxpYnBhcyBwcm92
aWRlcyBpcyBhIGZhc3QgaW1wbGVtZW50YXRpb24gb2YgZXhlY3V0YWJsZSBtZW1vcnkgYWxsb2Nh
dGlvbiwgd2hpY2gKKyAgICAgICAgbGlicGFzIGNhbGxzICJqaXRfaGVhcCIuIFRoZSBpbml0aWFs
IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgb25seSB1c2VkIGxpYnBhcydzIGJpdGZpdCBhbmQgbGFy
Z2UKKyAgICAgICAgYWxnb3JpdGhtcy4gQml0Zml0IHdhcyB1c2VkIGZvciBzbWFsbGVyIG9iamVj
dHMgYW5kIGxhcmdlIHdhcyB1c2VkIGZvciBsYXJnZXIgb2JqZWN0cy4gVGhlIGxpYnBhcworICAg
ICAgICBzZWdyZWdhdGVkIGhlYXAgd2FzIGRpc2FibGVkIGluIGppdF9oZWFwLiBUaGlzIG1hZGUg
c2Vuc2UgYmVjYXVzZToKKworICAgICAgICAtIEJpdGZpdCBhbmQgbGFyZ2Ugc3VwcG9ydCB0aGUg
c2hyaW5rKCkgY2FsbCwgd2hlcmUgd2Ugc2hyaW5rIGFuIGFsbG9jYXRpb24gaW4tcGxhY2UuIEV4
ZWN1dGFibGUKKyAgICAgICAgICBhbGxvY2F0aW9uIHN1cHBvcnRzIHRoaXMgdG8gYWlkIGJyYW5j
aCBjb21wYWN0aW9uICh3ZSBjb21wYWN0IGNvZGUgYWZ0ZXIgd2UgY29weSBpdCBpbnRvIGl0cyBm
aW5hbAorICAgICAgICAgIHJlc3RpbmcgcGxhY2UsIHdoaWNoIGlzIGFmdGVyIHdlIGFsbG9jYXRl
IHRoZSBtZW1vcnkgLSBzbyBhZnRlciB3ZSBmaW5pc2ggY29tcGFjdGlvbiwgd2UgY2FuIG9ubHkK
KyAgICAgICAgICBzaHJpbmsgdGhlIGFsbG9jYXRpb24gaW4tcGxhY2Ugb3Igbm90IGF0IGFsbCku
CisKKyAgICAgICAgLSBTZWdyZWdhdGVkIGhlYXBzIGhhdmUgc29tZSB2aXJ0dWFsIGFkZHJlc3Mg
c3BhY2Ugb3ZlcmhlYWRzLCBhbmQgbWVtb3J5IG92ZXJoZWFkcywgdGhhdCB0aGUgYml0Zml0Cisg
ICAgICAgICAgYW5kIGxhcmdlIGhlYXBzIGRvbid0IGhhdmUuIFRoaXMgaGFwcGVucyBiZWNhdXNl
IHNlZ3JlYXRlZCBoZWFwcyB3aWxsIGRlZGljYXRlIGVhY2ggcGFnZSB0byBvYmplY3RzCisgICAg
ICAgICAgb2YgZXhhY3RseSBvbmUgc2l6ZSBmb3JldmVyLgorCisgICAgICAgIEhvd2V2ZXIsIHNl
Z3JlZ2F0ZWQgaGVhcHMgYXJlIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4gYml0Zml0IGhlYXBz
LiBUaGV5IGFyZSBmYXN0ZXIgdW5kZXIgc2VyaWFsCisgICAgICAgIGFsbG9jYXRpb24gdGhhbmtz
IHRvIHRoZSBmYWN0IHRoYXQgbm8gbG9ja3MgbmVlZCB0byBiZSBhY3F1aXJlZCBmb3IgYSB0eXBp
Y2FsIGFsbG9jYXRpb24gb3IKKyAgICAgICAgZGVhbGxvY2F0aW9uLiBUaGV5IGFyZSBldmVuIG1v
cmUgZmFzdGVyIHVuZGVyIHBhcmFsbGVsIGFsbG9jYXRpb24gdGhhbmtzIHRvIHRocmVhZC1sb2Nh
bCBjYWNoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyBzZWdyZWdhdGVkIGhlYXBz
IGZvciB0aGUgc21hbGxlc3Qgaml0X2hlYXAgYWxsb2NhdGlvbnMgKDw9MjAwMCBieXRlcykuIFRo
ZSBjdXRvZmYKKyAgICAgICAgdGhyZXNob2xkIGlzIHJ1bnRpbWUgY29uZmlndXJhYmxlLCBzbyBp
dCdzIHBvc3NpYmxlIHRvIGRpc2FibGUgc2VncmVnYXRlZCBoZWFwcyBhdCBydW50aW1lIGJ5IHNl
dHRpbmcKKyAgICAgICAgdGhlIGN1dG9mZiB0byAwLgorCisgICAgICAgIFdpdGggdGhlIDIwMDAg
dGhyZXNob2xkLCB0aGlzIGFwcGVhcnMgdG8gYmUgYSAwLjMlIFNwZWVkb21ldGVyMiBzcGVlZC11
cC4KKworICAgICAgICBXaGlsZSB0aGVyZSBpcyBhIHRoZW9yZXRpY2FsIHBvc3NpYmlsaXR5IG9m
IG1lbW9yeSBvdmVyaGVhZCwgSSBoYXZlbid0IHNlZW4gaXQuIElmIHdlIGFyZSB1c2luZyBqdW1w
CisgICAgICAgIGlzbGFuZHMgdGhlbiB0aGUgdmlydHVhbCBtZW1vcnkgb3ZlcmhlYWQgb2Ygc2Vn
cmVnYXRlZCBoZWFwcyB3aWxsIGp1c3QgbWVhbiB0aGF0IHdlIHVzZSBqdW1wIGlzbGFuZHMKKyAg
ICAgICAgbW9yZSBmcmVxdWVudGx5LCB3aGljaCB3b3VsZCBtYW5pZmVzdCBhcyBhIHBlcmZvcm1h
bmNlIHJlZ3Jlc3Npb24gLS0gYnV0IEkndmUgbm90IHNlZW4gYW55IHN1Y2gKKyAgICAgICAgcmVn
cmVzc2lvbi4gU28sIHRoaXMgZGlzYWJsZXMgdGhlIHNlZ3JlZ2F0ZWQgaGVhcCBpZiB0aGUgSklU
IHBvb2wgc2l6ZSBpcyB0b28gc21hbGwgKHNlZSBjaGFuZ2VzIHRvCisgICAgICAgIEV4ZWN1dGFi
bGVBbGxvY2F0b3IuY3BwIGluIEpTQykuCisKKyAgICAgICAgKiBsaWJwYXMvbGlicGFzLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaml0X2hl
YXAuYzoKKyAgICAgICAgKGppdF9oZWFwX3Nocmluayk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvaml0X2hlYXBfY29uZmlnLmM6CisgICAgICAgIChqaXRfc21hbGxfc2VncmVnYXRlZF9h
bGxvY2F0ZV9wYWdlKToKKyAgICAgICAgKGppdF9zbWFsbF9zZWdyZWdhdGVkX2NyZWF0ZV9wYWdl
X2hlYWRlcik6CisgICAgICAgIChqaXRfc21hbGxfZGVzdHJveV9wYWdlX2hlYWRlcik6CisgICAg
ICAgIChqaXRfc21hbGxfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3Ip
OgorICAgICAgICAoaml0X3NtYWxsX2JpdGZpdF9hbGxvY2F0ZV9wYWdlKToKKyAgICAgICAgKGpp
dF9zbWFsbF9iaXRmaXRfY3JlYXRlX3BhZ2VfaGVhZGVyKToKKyAgICAgICAgKGppdF9tZWRpdW1f
Yml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcik6CisgICAgICAgIChqaXRfbWVkaXVtX2Rlc3Ryb3lf
cGFnZV9oZWFkZXIpOgorICAgICAgICAoaml0X3ByZXBhcmVfdG9fZW51bWVyYXRlKToKKyAgICAg
ICAgKGppdF9zbWFsbF9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlcik6IERlbGV0ZWQuCisgICAg
ICAgIChqaXRfbWVkaXVtX2JpdGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKGpp
dF9zbWFsbF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkpOgorICAgICAgICAoaml0X3NtYWxsX2Jv
dW5kYXJ5X2Zvcl9wYWdlX2hlYWRlcik6CisgICAgICAgIChqaXRfbWVkaXVtX3BhZ2VfaGVhZGVy
X2Zvcl9ib3VuZGFyeSk6CisgICAgICAgIChqaXRfbWVkaXVtX2JvdW5kYXJ5X2Zvcl9wYWdlX2hl
YWRlcik6CisgICAgICAgIChqaXRfaGVhcF9jb25maWdfcGFnZV9oZWFkZXIpOgorICAgICAgICAo
aml0X3NtYWxsX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkpOiBEZWxldGVkLgorICAg
ICAgICAoaml0X3NtYWxsX2JpdGZpdF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIpOiBEZWxldGVk
LgorICAgICAgICAoaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KTog
RGVsZXRlZC4KKyAgICAgICAgKGppdF9tZWRpdW1fYml0Zml0X2JvdW5kYXJ5X2Zvcl9wYWdlX2hl
YWRlcik6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29u
ZmlnX3Jvb3RfZGF0YS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
aGVhcC5jOgorICAgICAgICAocGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KToKKyAgICAg
ICAgKHBhc19iaXRmaXRfaGVhcF9jb25zdHJ1Y3RfYW5kX2luc2VydF9zaXplX2NsYXNzKToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuaDoKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmg6CisgICAgICAgIChwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX2NvbmZpZy5oOgorICAgICAgICAocGFzX2hlYXBfY29uZmlnX3NlZ3JlZ2F0
ZWRfaGVhcF9taW5fYWxpZ25fc2hpZnQpOgorICAgICAgICAocGFzX2hlYXBfY29uZmlnX3NlZ3Jl
Z2F0ZWRfaGVhcF9taW5fYWxpZ24pOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2hlYXAuYzoKKyAgICAgICAgKG1pbl9hbGlnbl9mb3JfaGVhcCk6CisgICAgICAg
IChtaW5fb2JqZWN0X3NpemVfZm9yX2hlYXApOgorICAgICAgICAobWF4X3NlZ3JlZ2F0ZWRfb2Jq
ZWN0X3NpemVfZm9yX2hlYXApOgorICAgICAgICAobWF4X2JpdGZpdF9vYmplY3Rfc2l6ZV9mb3Jf
aGVhcCk6CisgICAgICAgIChtYXhfb2JqZWN0X3NpemVfZm9yX2hlYXApOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4KToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9zaXplKToKKyAgICAgICAg
KG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcpOiBEZWxldGVkLgorICAgICAgICAobWF4
X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKTogRGVsZXRlZC4KKyAgICAg
ICAgKG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKTogRGVsZXRlZC4KKyAg
ICAgICAgKG1heF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcpOiBEZWxldGVkLgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuaDoKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3NpemUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9zaXplX2Zvcl9pbmRleCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFnZS5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1
Y3QpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kLmRlZjoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX2FuZF9yb2xlLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2NyZWF0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBD
aGFvc1Rlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6YWRkQWxsVGVzdHMpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvdGVzdC9KSVRIZWFwVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjp0ZXN0QWxsb2Nh
dGlvblNpemUpOgorICAgICAgICAoYWRkSklUSGVhcFRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAgICogbGli
cGFzL3NyYy90ZXN0L1ZpZXdDYWNoZVRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChzdGQ6OnNl
dHVwQ29uZmlnKToKKyAgICAgICAgKHN0ZDo6dGVzdERpc2FibGVWaWV3Q2FjaGVVc2luZ0JvdW5k
Rm9yTm9WaWV3Q2FjaGUpOgorICAgICAgICAoc3RkOjp0ZXN0RW5hYmxlVmlld0NhY2hlQXRTb21l
Qm91bmRGb3JOb1ZpZXdDYWNoZSk6CisgICAgICAgIChhZGRWaWV3Q2FjaGVUZXN0cyk6CisKIDIw
MjItMDEtMTggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBbbGli
cGFzXSBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZGVjb21taXQgdW51c2VkIHBhcnRzIG9mIGEg
dGhyZWFkX2xvY2FsX2NhY2hlICh1cGRhdGUgdG8gNzg1MDhlNzlmYTI3OTc2ODAzNDRkNDNiOTQ4
NDFhZTJlOTAzYjE1YikKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4OTU3OSkKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzgs
OSArMzgsOSBAQAogCQkwRjUxNjc3NDFGQUQ2ODVDMDA4MjM2QTggLyogYm1hbGxvYy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNjc3MzFGQUQ2
ODUyMDA4MjM2QTggLyogYm1hbGxvYy5jcHAgKi87IH07CiAJCTBGNTE2RUU1MjQ1NjE4NEYwMDRF
MkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNkVFNDI0NTYxODRGMDA0RTJCOEQgLyogcGFzX2ludGVy
bmFsX2NvbmZpZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGNTE2RUU5MjQ1NjFBRTkwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNkVFODI0NTYx
QUU4MDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGNTE5M0VFMjY2QzQyQUQwMDQ4M0EyQyAvKiBq
aXRfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNTE5M0U4MjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuaCAqLzsg
fTsKKwkJMEY1MTkzRUUyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTkzRTgyNjZDNDJB
QzAwNDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTE5M0VGMjY2QzQyQUQwMDQ4M0EyQyAvKiBqaXRf
aGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1
MTkzRTkyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY1MTkzRjAyNjZDNDJBRDAwNDgzQTJDIC8q
IGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE5M0VBMjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcF9j
b25maWdfcm9vdF9kYXRhLmggKi87IH07CisJCTBGNTE5M0YwMjY2QzQyQUQwMDQ4M0EyQyAvKiBq
aXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjUxOTNFQTI2NkM0MkFDMDA0ODNBMkMgLyogaml0X2hlYXBfY29u
ZmlnX3Jvb3RfZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGNTE5M0YxMjY2QzQyQUQwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE5M0VCMjY2
QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuYyAqLzsgfTsKIAkJMEY1MTkzRjIyNjZD
NDJBRDAwNDgzQTJDIC8qIGppdF9oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjUxOTNFQzI2NkM0MkFDMDA0ODNBMkMgLyogaml0X2hlYXAuYyAq
LzsgfTsKIAkJMEY1MTkzRjMyNjZDNDJBRDAwNDgzQTJDIC8qIHBhc19iYXNpY19oZWFwX2NvbmZp
Z19lbnVtZXJhdG9yX2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNTE5M0VEMjY2QzQyQUQwMDQ4M0EyQyAvKiBwYXNfYmFzaWNfaGVhcF9jb25m
aWdfZW51bWVyYXRvcl9kYXRhLmMgKi87IH07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
bGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAy
ODk1NzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw2ICs1NTQsNyBAQAogCQkyQzExRTg4RTI3
MjhBNzgzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg4QzI3MjhBNzgzMDAyMTYyRDAgLyogYm1hbGxv
Y190eXBlLmggKi87IH07CiAJCTJDMTFFODhGMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2ltcGxl
X3R5cGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
MTFFODhEMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2ltcGxlX3R5cGUuYyAqLzsgfTsKIAkJMkMx
MUU4OTEyNzI4QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OTAyNzI4QTg5MzAwMjE2MkQwIC8q
IGJtYWxsb2NfdHlwZS5jICovOyB9OworCQkyQzE2REFFMDI3OUUwNzI5MDA0MkU5MTkgLyogVmll
d0NhY2hlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3RzLmNwcCAqLzsg
fTsKIAkJMkMzNDAwMDAyNzU4MTVEMDAwNTU2NUNCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfYW5kX3JvbGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJDMzRGRkZGMjc1ODE1RDAwMDU1NjVDQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX2FuZF9yb2xlLmMgKi87IH07CiAJCTJDMzQwMDAyMjc1ODE2ODcwMDU1NjVD
QiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkMzNDAwMDEyNzU4MTY4NzAwNTU2NUNCIC8qIHBhc19wYWdlX2Jh
c2VfY29uZmlnLmMgKi87IH07CiAJCTJDMzRGRkZBMjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfcGFn
ZV9iYXNlX2FuZF9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyQzM0RkZGNTI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3BhZ2VfYmFzZV9hbmRfa2lu
ZC5oICovOyB9OwpAQCAtMTI1NSw2ICsxMjU2LDcgQEAKIAkJMkMxMUU4OEMyNzI4QTc4MzAwMjE2
MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBi
bWFsbG9jX3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMxMUU4OEQyNzI4
QTc4MzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBwYXNfc2ltcGxlX3R5cGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkMxMUU4OTAyNzI4QTg5MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBibWFsbG9jX3R5cGUuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkMxNkRBREYyNzlFMDcyOTAwNDJFOTE5IC8qIFZpZXdDYWNoZVRlc3RzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZXdDYWNoZVRlc3RzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNDAwMDEyNzU4MTY4NzAwNTU2NUNC
IC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0
aCA9IHBhc19wYWdlX2Jhc2VfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJDMzRGRkY1Mjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfcGFnZV9iYXNlX2FuZF9raW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfYW5kX2tpbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNEZGRjYyNzU3MUQyRjAwNTU2NUNCIC8q
IHBhc19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21lZ2Fw
YWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19nZXRfcGFnZV9iYXNl
X2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21lZ2FwYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNDE2LDYgKzE0MTgsNyBAQAogCQkJCTJDNDczMTYxMjc3RDRD
OUUwMEI2MkM0OSAvKiBUTENEZWNvbW1pdFRlc3RzLmNwcCAqLywKIAkJCQkwRjg3MDBERTI1QjE0
QzY4MDAwRTFBQkYgLyogVFNEVGVzdHMuY3BwICovLAogCQkJCTBGNTMxODEyMjJDOTYwOUQwMDNG
N0I2QSAvKiBVdGlsc1Rlc3RzLmNwcCAqLywKKwkJCQkyQzE2REFERjI3OUUwNzI5MDA0MkU5MTkg
LyogVmlld0NhY2hlVGVzdHMuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSB0ZXN0OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NDMsNiArMjY0Niw3IEBACiAJCQkJMEZERUE0NjEy
MjhCNjUxQjAwODVFMzQwIC8qIEJpdGZpZWxkVmVjdG9yVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY1MzE4MTEyMkM5NTRFRDAwM0Y3QjZBIC8qIEJpdHZlY3RvclRlc3RzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGMzFBNjY4MjNFOEIzMzYwMDJDMENBMyAvKiBDYXJ0ZXNpYW5UcmVl
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkMxNkRBRTAyNzlFMDcyOTAwNDJFOTE5IC8q
IFZpZXdDYWNoZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzY4MjM4MjEyOUQ0RUUw
MDNDNkExMyAvKiBDb2FsaWduVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkM0ODEzMkQy
NzNGNDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkM2ODIzMTIxMjlDQjQ2MDAzQzZBMTMgLyogRXh0ZW5kZWRHQ0RUZXN0cy5jcHAg
aW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2pp
dF9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
aml0X2hlYXAuYwkocmV2aXNpb24gMjg5NTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvaml0X2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Niw5ICs4NiwxMCBAQCB2b2lkKiBq
aXRfaGVhcF90cnlfYWxsb2NhdGUoc2l6ZV90IHNpemUpCiAKIHZvaWQgaml0X2hlYXBfc2hyaW5r
KHZvaWQqIG9iamVjdCwgc2l6ZV90IG5ld19zaXplKQogewotICAgIGJvb2wgcmVzdWx0OwotICAg
IHJlc3VsdCA9IHBhc190cnlfc2hyaW5rKG9iamVjdCwgbmV3X3NpemUsIEpJVF9IRUFQX0NPTkZJ
Ryk7Ci0gICAgUEFTX0FTU0VSVChyZXN1bHQpOworICAgIC8qIE5PVEU6IHRoZSBzaHJpbmsgY2Fs
bCB3aWxsIGZhaWwgKHJldHVybiBmYWxzZSkgZm9yIHNlZ3JlZ2F0ZWQgYWxsb2NhdGlvbnMsIGFu
ZCB0aGF0J3MgZmluZSBiZWNhdXNlIHdlCisgICAgICAgb25seSB1c2Ugc2VncmVnYXRlZCBhbGxv
Y2F0aW9ucyBmb3Igc21hbGxlciBzaXplcyAoc28gdGhlIGFtb3VudCBvZiBwb3RlbnRpYWwgbWVt
b3J5IHNhdmluZ3MgZnJvbQorICAgICAgIHNocmlua2luZyBpcyBzbWFsbCkuICovCisgICAgcGFz
X3RyeV9zaHJpbmsob2JqZWN0LCBuZXdfc2l6ZSwgSklUX0hFQVBfQ09ORklHKTsKIH0KIAogc2l6
ZV90IGppdF9oZWFwX2dldF9zaXplKHZvaWQqIG9iamVjdCkKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAy
ODk1NzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25m
aWcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAy
MDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAicGFzX2VudW1lcmFi
bGVfcGFnZV9tYWxsb2MuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oIgog
I2luY2x1ZGUgInBhc19yb290LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zdHJlYW0uaCIKIAogI2lmIGRlZmluZWQoUEFT
X0JNQUxMT0MpCkBAIC0xMDIsOSArMTAzLDkgQEAgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFn
ZV9zaGFyaW5nX2NhYwogICAgIC5wcm92aWRlcl9hcmcgPSBOVUxMCiB9OwogCi1wYXNfcGFnZV9o
ZWFkZXJfdGFibGUgaml0X3NtYWxsX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSA9CitwYXNfcGFn
ZV9oZWFkZXJfdGFibGUgaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlID0KICAgICBQQVNfUEFH
RV9IRUFERVJfVEFCTEVfSU5JVElBTElaRVIoSklUX1NNQUxMX1BBR0VfU0laRSk7Ci1wYXNfcGFn
ZV9oZWFkZXJfdGFibGUgaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUgPQorcGFz
X3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9tZWRpdW1fcGFnZV9oZWFkZXJfdGFibGUgPQogICAgIFBB
U19QQUdFX0hFQURFUl9UQUJMRV9JTklUSUFMSVpFUihKSVRfTUVESVVNX1BBR0VfU0laRSk7CiAK
IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIGppdF9oZWFwX3J1bnRpbWVfY29uZmlnID0gewpAQCAt
MTE0LDE1ICsxMTUsMTUgQEAgcGFzX2hlYXBfcnVudGltZV9jb25maWcgaml0X2hlYXBfcnVudGlt
ZQogICAgIC5pc19wYXJ0X29mX2hlYXAgPSB0cnVlLAogICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3Vu
ZF9mb3JfcGFydGlhbF92aWV3cyA9IDAsCiAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9i
YXNlbGluZV9hbGxvY2F0b3JzID0gMCwKLSAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25v
X3ZpZXdfY2FjaGUgPSBVSU5UX01BWCwKLSAgICAubWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemUg
PSAwLAorICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IDAsCisg
ICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gMjAwMCwKICAgICAubWF4X2JpdGZpdF9v
YmplY3Rfc2l6ZSA9IFVJTlRfTUFYLAotICAgIC52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmpl
Y3Rfc2l6ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0
eQorICAgIC52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSA9IHBhc19oZWFwX3J1
bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eQogfTsKIAogaml0X2hl
YXBfY29uZmlnX3Jvb3RfZGF0YSBqaXRfcm9vdF9kYXRhID0gewotICAgIC5zbWFsbF9iaXRmaXRf
cGFnZV9oZWFkZXJfdGFibGUgPSAmaml0X3NtYWxsX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSwK
LSAgICAubWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSA9ICZqaXRfbWVkaXVtX2JpdGZp
dF9wYWdlX2hlYWRlcl90YWJsZQorICAgIC5zbWFsbF9wYWdlX2hlYWRlcl90YWJsZSA9ICZqaXRf
c21hbGxfcGFnZV9oZWFkZXJfdGFibGUsCisgICAgLm1lZGl1bV9wYWdlX2hlYWRlcl90YWJsZSA9
ICZqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlCiB9OwogCiB2b2lkIGppdF9oZWFwX2NvbmZp
Z19hY3RpdmF0ZSh2b2lkKQpAQCAtMTQyLDM5ICsxNDMsNzMgQEAgcGFzX3BhZ2VfYmFzZSogaml0
X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZAogICAgIHJldHVybiAocGFzX3BhZ2VfYmFzZSopcGFzX3B0
cl9oYXNoX21hcF9nZXQoJmRhdGEtPnBhZ2VfaGVhZGVyX3RhYmxlLCBib3VuZGFyeSkudmFsdWU7
CiB9CiAKLXZvaWQqIGppdF9zbWFsbF9iaXRmaXRfYWxsb2NhdGVfcGFnZSgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFu
c2FjdGlvbikKK3ZvaWQqIGppdF9zbWFsbF9zZWdyZWdhdGVkX2FsbG9jYXRlX3BhZ2UoCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlv
biogdHJhbnNhY3Rpb24sIHBhc19zZWdyZWdhdGVkX3BhZ2Vfcm9sZSByb2xlKQogeworICAgIFBB
U19BU1NFUlQocm9sZSA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKTsKICAg
ICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOwogICAgIFBBU19VTlVTRURfUEFSQU0odHJhbnNhY3Rp
b24pOwogICAgIHJldHVybiAodm9pZCopYWxsb2NhdGVfZnJvbV9mcmVzaCgKICAgICAgICAgSklU
X1NNQUxMX1BBR0VfU0laRSwgcGFzX2FsaWdubWVudF9jcmVhdGVfdHJhZGl0aW9uYWwoSklUX1NN
QUxMX1BBR0VfU0laRSkpLmJlZ2luOwogfQogCi1wYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfYml0
Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcigKK3Bhc19wYWdlX2Jhc2UqIGppdF9zbWFsbF9zZWdyZWdh
dGVkX2NyZWF0ZV9wYWdlX2hlYWRlcigKICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX3BhZ2Vfa2lu
ZCBraW5kLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKICAgICBw
YXNfcGFnZV9iYXNlKiByZXN1bHQ7Ci0gICAgUEFTX0FTU0VSVChraW5kID09IHBhc19zbWFsbF9i
aXRmaXRfcGFnZV9raW5kKTsKKyAgICBQQVNfQVNTRVJUKGtpbmQgPT0gcGFzX3NtYWxsX2V4Y2x1
c2l2ZV9zZWdyZWdhdGVkX3BhZ2Vfa2luZCk7CiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRp
dGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgcmVzdWx0ID0gcGFzX3BhZ2VfaGVh
ZGVyX3RhYmxlX2FkZCgmaml0X3NtYWxsX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpJVF9TTUFMTF9QQUdFX1NJWkUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfaGVh
ZGVyX3NpemUoSklUX0hFQVBfQ09ORklHLnNtYWxsX2JpdGZpdF9jb25maWcpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRhcnkpOworICAgIHJlc3VsdCA9IHBh
c19wYWdlX2hlYWRlcl90YWJsZV9hZGQoCisgICAgICAgICZqaXRfc21hbGxfcGFnZV9oZWFkZXJf
dGFibGUsCisgICAgICAgIEpJVF9TTUFMTF9QQUdFX1NJWkUsCisgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfaGVhZGVyX3NpemUoSklUX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpLAorICAgICAgICBib3VuZGFyeSk7CiAgICAgcGFzX2hl
YXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIGppdF9zbWFsbF9iaXRmaXRfZGVzdHJveV9wYWdlX2hl
YWRlcigKLSAgICBwYXNfcGFnZV9iYXNlKiBwYWdlLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9s
b2NrX2hvbGRfbW9kZSkKK3ZvaWQgaml0X3NtYWxsX2Rlc3Ryb3lfcGFnZV9oZWFkZXIocGFzX3Bh
Z2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7
CiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7Ci0gICAgcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX3JlbW92ZSgmaml0X3NtYWxsX2JpdGZpdF9w
YWdlX2hlYWRlcl90YWJsZSwKKyAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGVfcmVtb3ZlKCZqaXRf
c21hbGxfcGFnZV9oZWFkZXJfdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBKSVRfU01BTExfUEFHRV9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFnZSk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tf
aG9sZF9tb2RlKTsKIH0KIAorcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBq
aXRfc21hbGxfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IoCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSkKK3sKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOworICAgIFBBU19VTlVT
RURfUEFSQU0oZGlyZWN0b3J5KTsKKyAgICBQQVNfQVNTRVJUKCEiTm90IGltcGxlbWVudGVkIik7
CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQqIGppdF9zbWFsbF9iaXRmaXRfYWxsb2NhdGVf
cGFnZSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5
X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKK3sKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXAp
OworICAgIFBBU19VTlVTRURfUEFSQU0odHJhbnNhY3Rpb24pOworICAgIHJldHVybiAodm9pZCop
YWxsb2NhdGVfZnJvbV9mcmVzaCgKKyAgICAgICAgSklUX1NNQUxMX1BBR0VfU0laRSwgcGFzX2Fs
aWdubWVudF9jcmVhdGVfdHJhZGl0aW9uYWwoSklUX1NNQUxMX1BBR0VfU0laRSkpLmJlZ2luOwor
fQorCitwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfYml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcigK
KyAgICB2b2lkKiBib3VuZGFyeSwgcGFzX3BhZ2Vfa2luZCBraW5kLCBwYXNfbG9ja19ob2xkX21v
ZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICBwYXNfcGFnZV9iYXNlKiByZXN1bHQ7Cisg
ICAgUEFTX0FTU0VSVChraW5kID09IHBhc19zbWFsbF9iaXRmaXRfcGFnZV9raW5kKTsKKyAgICBw
YXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAg
ICByZXN1bHQgPSBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKCZqaXRfc21hbGxfcGFnZV9oZWFk
ZXJfdGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKSVRfU01B
TExfUEFHRV9TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJRy5zbWFsbF9iaXRmaXRfY29u
ZmlnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kYXJ5KTsK
KyAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21v
ZGUpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQqIGppdF9tZWRpdW1fYml0Zml0X2Fs
bG9jYXRlX3BhZ2UoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2Fs
X21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiB7CkBAIC0xOTAsNyArMjI1LDcgQEAg
cGFzX3BhZ2VfYmFzZSogaml0X21lZGl1bV9iaXRmaXRfY3JlYXRlXwogICAgIHBhc19wYWdlX2Jh
c2UqIHJlc3VsdDsKICAgICBQQVNfQVNTRVJUKGtpbmQgPT0gcGFzX21lZGl1bV9iaXRmaXRfcGFn
ZV9raW5kKTsKICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tf
aG9sZF9tb2RlKTsKLSAgICByZXN1bHQgPSBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKCZqaXRf
bWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSwKKyAgICByZXN1bHQgPSBwYXNfcGFnZV9o
ZWFkZXJfdGFibGVfYWRkKCZqaXRfbWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX01FRElVTV9QQUdFX1NJWkUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfaGVhZGVy
X3NpemUoSklUX0hFQVBfQ09ORklHLm1lZGl1bV9iaXRmaXRfY29uZmlnKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kYXJ5KTsKQEAgLTE5OCwxMSArMjMzLDEx
IEBAIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fYml0Zml0X2NyZWF0ZV8KICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi12b2lkIGppdF9tZWRpdW1fYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIo
Cit2b2lkIGppdF9tZWRpdW1fZGVzdHJveV9wYWdlX2hlYWRlcigKICAgICBwYXNfcGFnZV9iYXNl
KiBwYWdlLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKICAgICBw
YXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAg
ICBwYXNfcGFnZV9oZWFkZXJfdGFibGVfcmVtb3ZlKCZqaXRfbWVkaXVtX2JpdGZpdF9wYWdlX2hl
YWRlcl90YWJsZSwKKyAgICBwYXNfcGFnZV9oZWFkZXJfdGFibGVfcmVtb3ZlKCZqaXRfbWVkaXVt
X3BhZ2VfaGVhZGVyX3RhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklU
X01FRElVTV9QQUdFX1NJWkUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdl
KTsKICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xk
X21vZGUpOwpAQCAtMjY5LDE0ICszMDQsMTQgQEAgdm9pZCogaml0X3ByZXBhcmVfdG9fZW51bWVy
YXRlKHBhc19lbnVtZQogICAgICAgICAgICAgcmVzdWx0LAogICAgICAgICAgICAgZW51bWVyYXRv
ciwKICAgICAgICAgICAgIChwYXNfcGFnZV9oZWFkZXJfdGFibGUqKXBhc19lbnVtZXJhdG9yX3Jl
YWQoCi0gICAgICAgICAgICAgICAgZW51bWVyYXRvciwgcm9vdF9kYXRhLT5zbWFsbF9iaXRmaXRf
cGFnZV9oZWFkZXJfdGFibGUsIHNpemVvZihwYXNfcGFnZV9oZWFkZXJfdGFibGUpKSkpCisgICAg
ICAgICAgICAgICAgZW51bWVyYXRvciwgcm9vdF9kYXRhLT5zbWFsbF9wYWdlX2hlYWRlcl90YWJs
ZSwgc2l6ZW9mKHBhc19wYWdlX2hlYWRlcl90YWJsZSkpKSkKICAgICAgICAgcmV0dXJuIE5VTEw7
CiAgICAgCiAgICAgaWYgKCFwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhX2Fk
ZF9wYWdlX2hlYWRlcl90YWJsZSgKICAgICAgICAgICAgIHJlc3VsdCwKICAgICAgICAgICAgIGVu
dW1lcmF0b3IsCiAgICAgICAgICAgICAocGFzX3BhZ2VfaGVhZGVyX3RhYmxlKilwYXNfZW51bWVy
YXRvcl9yZWFkKAotICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsIHJvb3RfZGF0YS0+bWVkaXVt
X2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSwgc2l6ZW9mKHBhc19wYWdlX2hlYWRlcl90YWJsZSkp
KSkKKyAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLCByb290X2RhdGEtPm1lZGl1bV9wYWdlX2hl
YWRlcl90YWJsZSwgc2l6ZW9mKHBhc19wYWdlX2hlYWRlcl90YWJsZSkpKSkKICAgICAgICAgcmV0
dXJuIE5VTEw7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTMzMSw2ICszNjYsOCBAQCB2
b2lkIGppdF9oZWFwX2NvbmZpZ19hZGRfZnJlc2hfbWVtb3J5KHBhCiAgICAgICAgICZqaXRfZnJl
c2hfbWVtb3J5X2hlYXAsIHJhbmdlLmJlZ2luLCByYW5nZS5lbmQsIHBhc196ZXJvX21vZGVfaXNf
YWxsX3plcm8sICZjb25maWcpOwogfQogCitQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19TUEVD
SUFMSVpBVElPTl9ERUZJTklUSU9OUygKKyAgICBqaXRfc21hbGxfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZywgSklUX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKIFBBU19CSVRG
SVRfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVGSU5JVElPTlMoCiAgICAgaml0X3NtYWxs
X2JpdGZpdF9wYWdlX2NvbmZpZywgSklUX0hFQVBfQ09ORklHLnNtYWxsX2JpdGZpdF9jb25maWcp
OwogUEFTX0JJVEZJVF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUZJTklUSU9OUygKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2Nv
bmZpZy5oCShyZXZpc2lvbiAyODk1NzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9qaXRfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiwxMiArMzYsMTQgQEAKIAog
UEFTX0JFR0lOX0VYVEVSTl9DOwogCi0jZGVmaW5lIEpJVF9TTUFMTF9NSU5fQUxJR05fU0hJRlQg
MnUKLSNkZWZpbmUgSklUX1NNQUxMX01JTl9BTElHTiAoMXUgPDwgSklUX1NNQUxMX01JTl9BTElH
Tl9TSElGVCkKKyNkZWZpbmUgSklUX1NNQUxMX1NFR1JFR0FURURfTUlOX0FMSUdOX1NISUZUIDR1
CisjZGVmaW5lIEpJVF9TTUFMTF9TRUdSRUdBVEVEX01JTl9BTElHTiAoMXUgPDwgSklUX1NNQUxM
X1NFR1JFR0FURURfTUlOX0FMSUdOX1NISUZUKQorI2RlZmluZSBKSVRfU01BTExfQklURklUX01J
Tl9BTElHTl9TSElGVCAydQorI2RlZmluZSBKSVRfU01BTExfQklURklUX01JTl9BTElHTiAoMXUg
PDwgSklUX1NNQUxMX0JJVEZJVF9NSU5fQUxJR05fU0hJRlQpCiAjZGVmaW5lIEpJVF9TTUFMTF9Q
QUdFX1NJWkUgMTYzODR1CiAjZGVmaW5lIEpJVF9TTUFMTF9HUkFOVUxFX1NJWkUgMTYzODR1Ci0j
ZGVmaW5lIEpJVF9NRURJVU1fTUlOX0FMSUdOX1NISUZUIDh1Ci0jZGVmaW5lIEpJVF9NRURJVU1f
TUlOX0FMSUdOICgxdSA8PCBKSVRfTUVESVVNX01JTl9BTElHTl9TSElGVCkKKyNkZWZpbmUgSklU
X01FRElVTV9CSVRGSVRfTUlOX0FMSUdOX1NISUZUIDh1CisjZGVmaW5lIEpJVF9NRURJVU1fQklU
RklUX01JTl9BTElHTiAoMXUgPDwgSklUX01FRElVTV9CSVRGSVRfTUlOX0FMSUdOX1NISUZUKQog
I2RlZmluZSBKSVRfTUVESVVNX1BBR0VfU0laRSAxMzEwNzJ1CiAjaWYgUEFTX0FSTTY0CiAjZGVm
aW5lIEpJVF9NRURJVU1fR1JBTlVMRV9TSVpFIDE2Mzg0dQpAQCAtNjYsMjMgKzY4LDMzIEBAIFBB
U19BUEkgdm9pZCBqaXRfdHlwZV9kdW1wKGNvbnN0IHBhc19oZWEKIAogUEFTX0FQSSBwYXNfcGFn
ZV9iYXNlKiBqaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZShwYXNfZW51bWVyYXRv
ciogZW51bWVyYXRvciwgdm9pZCogYm91bmRhcnkpOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX3BhZ2VfYmFzZSogaml0X3NtYWxsX2JpdGZpdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRh
cnkodm9pZCogYm91bmRhcnkpOwotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGppdF9z
bWFsbF9iaXRmaXRfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2Up
Oworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9zbWFsbF9wYWdl
X2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkpOworc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqIGppdF9zbWFsbF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIocGFzX3BhZ2Vf
YmFzZSogcGFnZSk7CitQQVNfQVBJIHZvaWQqIGppdF9zbWFsbF9zZWdyZWdhdGVkX2FsbG9jYXRl
X3BhZ2UoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2FsX21lbW9y
eV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIHBhc19zZWdyZWdhdGVkX3BhZ2Vfcm9sZSByb2xl
KTsKK1BBU19BUEkgcGFzX3BhZ2VfYmFzZSogaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfY3JlYXRlX3Bh
Z2VfaGVhZGVyKAorICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19s
b2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKK1BBU19BUEkgdm9pZCBqaXRfc21h
bGxfZGVzdHJveV9wYWdlX2hlYWRlcigKKyAgICBwYXNfcGFnZV9iYXNlKiBwYWdlLCBwYXNfbG9j
a19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CitQQVNfQVBJIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5X3NlbGVjdG9yKAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfU0VHUkVHQVRFRF9Q
QUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUNMQVJBVElPTlMoaml0X3NtYWxsX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcpOworCiBQQVNfQVBJIHZvaWQqIGppdF9zbWFsbF9iaXRmaXRfYWxsb2Nh
dGVfcGFnZSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVt
b3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7CiBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGpp
dF9zbWFsbF9iaXRmaXRfY3JlYXRlX3BhZ2VfaGVhZGVyKAogICAgIHZvaWQqIGJvdW5kYXJ5LCBw
YXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLVBBU19BUEkgdm9pZCBqaXRfc21hbGxfYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCi0g
ICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xk
X21vZGUpOwogCiBQQVNfQklURklUX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFU
SU9OUyhqaXRfc21hbGxfYml0Zml0X3BhZ2VfY29uZmlnKTsKIAotc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9i
b3VuZGFyeSh2b2lkKiBib3VuZGFyeSk7CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3Bh
Z2VfYmFzZSogaml0X21lZGl1bV9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRh
cnkpOworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGppdF9tZWRpdW1fYm91bmRhcnlf
Zm9yX3BhZ2VfaGVhZGVyKHBhc19wYWdlX2Jhc2UqIHBhZ2UpOwogUEFTX0FQSSB2b2lkKiBqaXRf
bWVkaXVtX2JpdGZpdF9hbGxvY2F0ZV9wYWdlKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKTsKIFBBU19B
UEkgcGFzX3BhZ2VfYmFzZSogaml0X21lZGl1bV9iaXRmaXRfY3JlYXRlX3BhZ2VfaGVhZGVyKAog
ICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2NrX2hvbGRfbW9k
ZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLVBBU19BUEkgdm9pZCBqaXRfbWVkaXVtX2JpdGZpdF9k
ZXN0cm95X3BhZ2VfaGVhZGVyKAorUEFTX0FQSSB2b2lkIGppdF9tZWRpdW1fZGVzdHJveV9wYWdl
X2hlYWRlcigKICAgICBwYXNfcGFnZV9iYXNlKiBwYWdlLCBwYXNfbG9ja19ob2xkX21vZGUgaGVh
cF9sb2NrX2hvbGRfbW9kZSk7CiAKIFBBU19CSVRGSVRfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJ
T05fREVDTEFSQVRJT05TKGppdF9tZWRpdW1fYml0Zml0X3BhZ2VfY29uZmlnKTsKQEAgLTEyMSwx
NiArMTMzLDE2IEBAIFBBU19IRUFQX0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUNMQVJBVEkKICAg
ICAgICAgICAgIC5oZWFwX2NvbmZpZ19wdHIgPSAmaml0X2hlYXBfY29uZmlnLCBcCiAgICAgICAg
ICAgICAucGFnZV9jb25maWdfcHRyID0gJmppdF9oZWFwX2NvbmZpZy52YXJpYW50X2xvd2VyY2Fz
ZSAjIyBfYml0Zml0X2NvbmZpZy5iYXNlLCBcCiAgICAgICAgICAgICAucGFnZV9jb25maWdfa2lu
ZCA9IHBhc19wYWdlX2NvbmZpZ19raW5kX2JpdGZpdCwgXAotICAgICAgICAgICAgLm1pbl9hbGln
bl9zaGlmdCA9IEpJVF8gIyMgdmFyaWFudF91cHBlcmNhc2UgIyMgX01JTl9BTElHTl9TSElGVCwg
XAorICAgICAgICAgICAgLm1pbl9hbGlnbl9zaGlmdCA9IEpJVF8gIyMgdmFyaWFudF91cHBlcmNh
c2UgIyMgX0JJVEZJVF9NSU5fQUxJR05fU0hJRlQsIFwKICAgICAgICAgICAgIC5wYWdlX3NpemUg
PSBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMjIF9QQUdFX1NJWkUsIFwKICAgICAgICAgICAg
IC5ncmFudWxlX3NpemUgPSBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMjIF9HUkFOVUxFX1NJ
WkUsIFwKICAgICAgICAgICAgIC5tYXhfb2JqZWN0X3NpemUgPSBcCi0gICAgICAgICAgICAgICAg
UEFTX0JJVEZJVF9NQVhfRlJFRV9NQVhfVkFMSUQgPDwgSklUXyAjIyB2YXJpYW50X3VwcGVyY2Fz
ZSAjIyBfTUlOX0FMSUdOX1NISUZULCBcCi0gICAgICAgICAgICAucGFnZV9oZWFkZXJfZm9yX2Jv
dW5kYXJ5ID0gaml0XyAjIyB2YXJpYW50X2xvd2VyY2FzZSAjIyBfYml0Zml0X3BhZ2VfaGVhZGVy
X2Zvcl9ib3VuZGFyeSwgXAotICAgICAgICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciA9
IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9ib3VuZGFyeV9mb3JfcGFnZV9o
ZWFkZXIsIFwKKyAgICAgICAgICAgICAgICBQQVNfQklURklUX01BWF9GUkVFX01BWF9WQUxJRCA8
PCBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMjIF9CSVRGSVRfTUlOX0FMSUdOX1NISUZULCBc
CisgICAgICAgICAgICAucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5ID0gaml0XyAjIyB2YXJpYW50
X2xvd2VyY2FzZSAjIyBfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5LCBcCisgICAgICAgICAgICAu
Ym91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyID0gaml0XyAjIyB2YXJpYW50X2xvd2VyY2FzZSAjIyBf
Ym91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyLCBcCiAgICAgICAgICAgICAucGFnZV9oZWFkZXJfZm9y
X2JvdW5kYXJ5X3JlbW90ZSA9IGppdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlLCBc
CiAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVyID0gaml0XyAjIyB2YXJpYW50X2xvd2Vy
Y2FzZSAjIyBfYml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlciwgXAotICAgICAgICAgICAgLmRlc3Ry
b3lfcGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlhbnRfbG93ZXJjYXNlICMjIF9iaXRmaXRfZGVz
dHJveV9wYWdlX2hlYWRlciBcCisgICAgICAgICAgICAuZGVzdHJveV9wYWdlX2hlYWRlciA9IGpp
dF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2Rlc3Ryb3lfcGFnZV9oZWFkZXIgXAogICAgICAg
ICB9LCBcCiAgICAgICAgIC52YXJpYW50ID0gcGFzXyAjIyB2YXJpYW50X2xvd2VyY2FzZSAjIyBf
Yml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQsIFwKICAgICAgICAgLmtpbmQgPSBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmRfaml0XyAjIyB2YXJpYW50X2xvd2VyY2FzZSAjIyBfYml0Zml0LCBc
CkBAIC0xNDcsMTEgKzE1OSw0MyBAQCBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVD
TEFSQVRJCiAgICAgICAgIC5nZXRfdHlwZV9zaXplID0gaml0X3R5cGVfc2l6ZSwgXAogICAgICAg
ICAuZ2V0X3R5cGVfYWxpZ25tZW50ID0gaml0X3R5cGVfYWxpZ25tZW50LCBcCiAgICAgICAgIC5k
dW1wX3R5cGUgPSBqaXRfdHlwZV9kdW1wLCBcCi0gICAgICAgIC5sYXJnZV9hbGlnbm1lbnQgPSBK
SVRfU01BTExfTUlOX0FMSUdOLCBcCisgICAgICAgIC5sYXJnZV9hbGlnbm1lbnQgPSBQQVNfTUlO
X0NPTlNUKEpJVF9TTUFMTF9TRUdSRUdBVEVEX01JTl9BTElHTiwgSklUX1NNQUxMX0JJVEZJVF9N
SU5fQUxJR04pLCBcCiAgICAgICAgIC5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyA9IHsgXAogICAg
ICAgICAgICAgLmJhc2UgPSB7IFwKLSAgICAgICAgICAgICAgICAuaXNfZW5hYmxlZCA9IGZhbHNl
IFwKLSAgICAgICAgICAgIH0gXAorICAgICAgICAgICAgICAgIC5pc19lbmFibGVkID0gdHJ1ZSwg
XAorICAgICAgICAgICAgICAgIC5oZWFwX2NvbmZpZ19wdHIgPSAmaml0X2hlYXBfY29uZmlnLCBc
CisgICAgICAgICAgICAgICAgLnBhZ2VfY29uZmlnX3B0ciA9ICZqaXRfaGVhcF9jb25maWcuc21h
bGxfc2VncmVnYXRlZF9jb25maWcuYmFzZSwgXAorICAgICAgICAgICAgICAgIC5wYWdlX2NvbmZp
Z19raW5kID0gcGFzX3BhZ2VfY29uZmlnX2tpbmRfc2VncmVnYXRlZCwgXAorICAgICAgICAgICAg
ICAgIC5taW5fYWxpZ25fc2hpZnQgPSBKSVRfU01BTExfU0VHUkVHQVRFRF9NSU5fQUxJR05fU0hJ
RlQsIFwKKyAgICAgICAgICAgICAgICAucGFnZV9zaXplID0gSklUX1NNQUxMX1BBR0VfU0laRSwg
XAorICAgICAgICAgICAgICAgIC5ncmFudWxlX3NpemUgPSBKSVRfU01BTExfR1JBTlVMRV9TSVpF
LCBcCisgICAgICAgICAgICAgICAgLm1heF9vYmplY3Rfc2l6ZSA9IFBBU19NQVhfT0JKRUNUX1NJ
WkUoSklUX1NNQUxMX1BBR0VfU0laRSksIFwKKyAgICAgICAgICAgICAgICAucGFnZV9oZWFkZXJf
Zm9yX2JvdW5kYXJ5ID0gaml0X3NtYWxsX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSwgXAorICAg
ICAgICAgICAgICAgIC5ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIgPSBqaXRfc21hbGxfYm91bmRh
cnlfZm9yX3BhZ2VfaGVhZGVyLCBcCisgICAgICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9i
b3VuZGFyeV9yZW1vdGUgPSBqaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZSwgXAor
ICAgICAgICAgICAgICAgIC5jcmVhdGVfcGFnZV9oZWFkZXIgPSBqaXRfc21hbGxfc2VncmVnYXRl
ZF9jcmVhdGVfcGFnZV9oZWFkZXIsIFwKKyAgICAgICAgICAgICAgICAuZGVzdHJveV9wYWdlX2hl
YWRlciA9IGppdF9zbWFsbF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwKKyAgICAgICAgICAgIH0sIFwK
KyAgICAgICAgICAgIC52YXJpYW50ID0gcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
dmFyaWFudCwgXAorICAgICAgICAgICAgLmtpbmQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX2ppdF9zbWFsbF9zZWdyZWdhdGVkLCBcCisgICAgICAgICAgICAud2FzdGVhZ2VfaGFu
ZGljYXAgPSAxLiwgXAorICAgICAgICAgICAgLnNoYXJpbmdfc2hpZnQgPSBQQVNfU01BTExfU0hB
UklOR19TSElGVCwgXAorICAgICAgICAgICAgLm51bV9hbGxvY19iaXRzID0gUEFTX0JBU0lDX1NF
R1JFR0FURURfTlVNX0FMTE9DX0JJVFMoSklUX1NNQUxMX1NFR1JFR0FURURfTUlOX0FMSUdOX1NI
SUZULCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBKSVRfU01BTExfUEFHRV9TSVpFKSwgXAorICAgICAgICAgICAgLnNo
YXJlZF9wYXlsb2FkX29mZnNldCA9IDAsIFwKKyAgICAgICAgICAgIC5leGNsdXNpdmVfcGF5bG9h
ZF9vZmZzZXQgPSAwLCBcCisgICAgICAgICAgICAuc2hhcmVkX3BheWxvYWRfc2l6ZSA9IDAsIFwK
KyAgICAgICAgICAgIC5leGNsdXNpdmVfcGF5bG9hZF9zaXplID0gSklUX1NNQUxMX1BBR0VfU0la
RSwgXAorICAgICAgICAgICAgLnNoYXJlZF9sb2dnaW5nX21vZGUgPSBwYXNfc2VncmVnYXRlZF9k
ZWFsbG9jYXRpb25fbm9fbG9nZ2luZ19tb2RlLCBcCisgICAgICAgICAgICAuZXhjbHVzaXZlX2xv
Z2dpbmdfbW9kZSA9IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9zaXplX29ibGl2aW91c19s
b2dnaW5nX21vZGUsIFwKKyAgICAgICAgICAgIC51c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0g
UEFTX0FSTTY0LCBcCisgICAgICAgICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gZmFsc2UsIFwK
KyAgICAgICAgICAgIC5lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb25f
Zm9yX3NoYXJlZCA9IGZhbHNlLCBcCisgICAgICAgICAgICAuZW5hYmxlX2VtcHR5X3dvcmRfZWxp
Z2liaWxpdHlfb3B0aW1pemF0aW9uX2Zvcl9leGNsdXNpdmUgPSB0cnVlLCBcCisgICAgICAgICAg
ICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSB0cnVlLCBcCisgICAgICAgICAgICAucGFnZV9hbGxvY2F0
b3IgPSBqaXRfc21hbGxfc2VncmVnYXRlZF9hbGxvY2F0ZV9wYWdlLCBcCisgICAgICAgICAgICAu
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yID0gaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yLCBcCisgICAgICAgICAgICBQQVNfU0VHUkVHQVRF
RF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTlMoaml0X3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcpIFwKICAgICAgICAgfSwgXAogICAgICAgICAubWVkaXVtX3NlZ3JlZ2F0ZWRfY29uZmln
ID0geyBcCiAgICAgICAgICAgICAuYmFzZSA9IHsgXApAQCAtMTkxLDMzICsyMzUsMzMgQEAgUEFT
X0FQSSBleHRlcm4gcGFzX2hlYXBfY29uZmlnIGppdF9oZWFwXwogUEFTX0FQSSBleHRlcm4gcGFz
X3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAgaml0X2ZyZXNoX21lbW9yeV9oZWFwOwogCiBQQVNfQVBJ
IGV4dGVybiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUgaml0X2xh
cmdlX2ZyZXNoX21lbW9yeV9oZWFwOwotUEFTX0FQSSBleHRlcm4gcGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlIGppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGU7Ci1QQVNfQVBJIGV4dGVybiBw
YXNfcGFnZV9oZWFkZXJfdGFibGUgaml0X21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGU7
CitQQVNfQVBJIGV4dGVybiBwYXNfcGFnZV9oZWFkZXJfdGFibGUgaml0X3NtYWxsX3BhZ2VfaGVh
ZGVyX3RhYmxlOworUEFTX0FQSSBleHRlcm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIGppdF9tZWRp
dW1fcGFnZV9oZWFkZXJfdGFibGU7CiBQQVNfQVBJIGV4dGVybiBwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZyBqaXRfaGVhcF9ydW50aW1lX2NvbmZpZzsKIFBBU19BUEkgZXh0ZXJuIGppdF9oZWFwX2Nv
bmZpZ19yb290X2RhdGEgaml0X3Jvb3RfZGF0YTsKIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19wYWdlX2Jhc2UqIGppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5
KHZvaWQqIGJvdW5kYXJ5KQorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2Uq
IGppdF9zbWFsbF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkpCiB7CiAg
ICAgcmV0dXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRfZm9yX2JvdW5kYXJ5KAotICAgICAg
ICAmaml0X3NtYWxsX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSwgSklUX1NNQUxMX1BBR0VfU0la
RSwgYm91bmRhcnkpOworICAgICAgICAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRf
U01BTExfUEFHRV9TSVpFLCBib3VuZGFyeSk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSB2b2lkKiBqaXRfc21hbGxfYml0Zml0X2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlcihwYXNfcGFn
ZV9iYXNlKiBwYWdlKQorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGppdF9zbWFsbF9i
b3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIocGFzX3BhZ2VfYmFzZSogcGFnZSkKIHsKICAgICByZXR1
cm4gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9ib3VuZGFyeSgKLSAgICAgICAgJmppdF9zbWFs
bF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsIEpJVF9TTUFMTF9QQUdFX1NJWkUsIHBhZ2UpOwor
ICAgICAgICAmaml0X3NtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlLCBKSVRfU01BTExfUEFHRV9TSVpF
LCBwYWdlKTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGpp
dF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFyeSkK
K3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX3BhZ2Vf
aGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFyeSkKIHsKICAgICByZXR1cm4gcGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlX2dldF9mb3JfYm91bmRhcnkoCi0gICAgICAgICZqaXRfbWVkaXVtX2Jp
dGZpdF9wYWdlX2hlYWRlcl90YWJsZSwgSklUX01FRElVTV9QQUdFX1NJWkUsIGJvdW5kYXJ5KTsK
KyAgICAgICAgJmppdF9tZWRpdW1fcGFnZV9oZWFkZXJfdGFibGUsIEpJVF9NRURJVU1fUEFHRV9T
SVpFLCBib3VuZGFyeSk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBqaXRf
bWVkaXVtX2JpdGZpdF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIocGFzX3BhZ2VfYmFzZSogcGFn
ZSkKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBqaXRfbWVkaXVtX2JvdW5kYXJ5X2Zv
cl9wYWdlX2hlYWRlcihwYXNfcGFnZV9iYXNlKiBwYWdlKQogewogICAgIHJldHVybiBwYXNfcGFn
ZV9oZWFkZXJfdGFibGVfZ2V0X2JvdW5kYXJ5KAotICAgICAgICAmaml0X21lZGl1bV9iaXRmaXRf
cGFnZV9oZWFkZXJfdGFibGUsIEpJVF9NRURJVU1fUEFHRV9TSVpFLCBwYWdlKTsKKyAgICAgICAg
JmppdF9tZWRpdW1fcGFnZV9oZWFkZXJfdGFibGUsIEpJVF9NRURJVU1fUEFHRV9TSVpFLCBwYWdl
KTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIGppdF9oZWFw
X2NvbmZpZ19wYWdlX2hlYWRlcih1aW50cHRyX3QgYmVnaW4pCkBAIC0yMjUsMTIgKzI2OSwxMiBA
QCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3BhZ2VfYmFzZSogCiAgICAgcGFzX3BhZ2Vf
YmFzZSogcmVzdWx0OwogCiAgICAgcmVzdWx0ID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9m
b3JfYWRkcmVzcygKLSAgICAgICAgJmppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUs
IEpJVF9TTUFMTF9QQUdFX1NJWkUsICh2b2lkKiliZWdpbik7CisgICAgICAgICZqaXRfc21hbGxf
cGFnZV9oZWFkZXJfdGFibGUsIEpJVF9TTUFMTF9QQUdFX1NJWkUsICh2b2lkKiliZWdpbik7CiAg
ICAgaWYgKHJlc3VsdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgIHJldHVybiBwYXNf
cGFnZV9oZWFkZXJfdGFibGVfZ2V0X2Zvcl9hZGRyZXNzKAotICAgICAgICAmaml0X21lZGl1bV9i
aXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsIEpJVF9NRURJVU1fUEFHRV9TSVpFLCAodm9pZCopYmVn
aW4pOworICAgICAgICAmaml0X21lZGl1bV9wYWdlX2hlYWRlcl90YWJsZSwgSklUX01FRElVTV9Q
QUdFX1NJWkUsICh2b2lkKiliZWdpbik7CiB9CiAKIFBBU19BUEkgdm9pZCBqaXRfaGVhcF9jb25m
aWdfYWRkX2ZyZXNoX21lbW9yeShwYXNfcmFuZ2UgcmFuZ2UpOwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZ19y
b290X2RhdGEuaAkocmV2aXNpb24gMjg5NTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDgg
KzM2LDggQEAgdHlwZWRlZiBzdHJ1Y3Qgaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YQogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX3BhZ2VfaGVhZGVyX3RhYmxlIHBhc19wYWdlX2hlYWRlcl90YWJsZTsKIAog
c3RydWN0IGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEgewotICAgIHBhc19wYWdlX2hlYWRlcl90
YWJsZSogc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX3RhYmxlOwotICAgIHBhc19wYWdlX2hlYWRl
cl90YWJsZSogbWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZTsKKyAgICBwYXNfcGFnZV9o
ZWFkZXJfdGFibGUqIHNtYWxsX3BhZ2VfaGVhZGVyX3RhYmxlOworICAgIHBhc19wYWdlX2hlYWRl
cl90YWJsZSogbWVkaXVtX3BhZ2VfaGVhZGVyX3RhYmxlOwogfTsKIAogUEFTX0VORF9FWFRFUk5f
QzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVh
cC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfaGVhcC5jCShyZXZpc2lvbiAyODk1NzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYwLDcgKzYw
LDggQEAgcGFzX2JpdGZpdF9oZWFwKiBwYXNfYml0Zml0X2hlYXBfY3JlYXRlKAogfQogCiBwYXNf
Yml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIHBhc19iaXRmaXRfaGVhcF9zZWxlY3RfdmFyaWFudChz
aXplX3QgcmVxdWVzdGVkX29iamVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmln
KiBydW50aW1lX2NvbmZpZykKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CiAgICAgCkBAIC03OSw3ICs4MCw3IEBAIHBhc19iaXRmaXRfdmFyaWFudF9zZWxlY3Rpb24g
cGFzX2JpdGZpdF8KICAgICAgICAgc2l6ZV90IG9iamVjdF9zaXplOwogCiAgICAgICAgIHBhZ2Vf
Y29uZmlnID0gKnBhc19oZWFwX2NvbmZpZ19iaXRmaXRfcGFnZV9jb25maWdfcHRyX2Zvcl92YXJp
YW50KGNvbmZpZywgdmFyaWFudCk7Ci0gICAgICAgIGlmICghcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19pc19lbmFibGVkKHBhZ2VfY29uZmlnKSkKKyAgICAgICAgaWYgKCFwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX2lzX2VuYWJsZWQocGFnZV9jb25maWcsIHJ1bnRpbWVfY29uZmlnKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmICh2ZXJib3NlKQpAQCAtMTI1LDcgKzEyNiw4IEBA
IHBhc19iaXRmaXRfdmFyaWFudF9zZWxlY3Rpb24gcGFzX2JpdGZpdF8KIHZvaWQgcGFzX2JpdGZp
dF9oZWFwX2NvbnN0cnVjdF9hbmRfaW5zZXJ0X3NpemVfY2xhc3MocGFzX2JpdGZpdF9oZWFwKiBo
ZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9iamVjdF9zaXplLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
aGVhcF9jb25maWcqIGNvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnKiBydW50aW1lX2NvbmZpZykKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiAgICAgCkBAIC0xMzksNyArMTQxLDcgQEAgdm9pZCBwYXNfYml0Zml0X2hlYXBf
Y29uc3RydWN0X2FuZF9pbnNlcgogICAgICAgICAgICAgICAgIGhlYXAsIHNpemVfY2xhc3MsIG9i
amVjdF9zaXplKTsKICAgICB9CiAKLSAgICBiZXN0ID0gcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92
YXJpYW50KG9iamVjdF9zaXplLCBjb25maWcpOworICAgIGJlc3QgPSBwYXNfYml0Zml0X2hlYXBf
c2VsZWN0X3ZhcmlhbnQob2JqZWN0X3NpemUsIGNvbmZpZywgcnVudGltZV9jb25maWcpOwogCiAg
ICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogICAgIGlmICh2ZXJib3NlKSB7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hl
YXAuaAkocmV2aXNpb24gMjg5NTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMywxMCArMzMsMTIgQEAg
UEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1Y3QgcGFzX2JpdGZpdF9oZWFwOwogc3RydWN0IHBh
c19oZWFwX2NvbmZpZzsKK3N0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFw
OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9oZWFwIHBhc19iaXRmaXRfaGVhcDsKIHR5cGVk
ZWYgc3RydWN0IHBhc19oZWFwX2NvbmZpZyBwYXNfaGVhcF9jb25maWc7Cit0eXBlZGVmIHN0cnVj
dCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKIHR5cGVk
ZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfc2Vn
cmVnYXRlZF9oZWFwOwogCkBAIC02MSwxMiArNjMsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgewogfSBw
YXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uOwogCiBQQVNfQVBJIHBhc19iaXRmaXRfdmFyaWFu
dF9zZWxlY3Rpb24KLXBhc19iaXRmaXRfaGVhcF9zZWxlY3RfdmFyaWFudChzaXplX3Qgb2JqZWN0
X3NpemUsIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKTsKK3Bhc19iaXRmaXRfaGVhcF9zZWxlY3Rf
dmFyaWFudChzaXplX3Qgb2JqZWN0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfcnVudGltZV9jb25maWcqIHJ1bnRpbWVfY29uZmlnKTsKIAogUEFTX0FQSSB2
b2lkIHBhc19iaXRmaXRfaGVhcF9jb25zdHJ1Y3RfYW5kX2luc2VydF9zaXplX2NsYXNzKHBhc19i
aXRmaXRfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3Ms
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgb2JqZWN0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29u
ZmlnKiBydW50aW1lX2NvbmZpZyk7CiAKIFBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfYml0
Zml0X2hlYXBfY29tcHV0ZV9zdW1tYXJ5KHBhc19iaXRmaXRfaGVhcCogaGVhcCk7CiAKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X3BhZ2VfY29uZmlnLmgJKHJldmlzaW9uIDI4OTU3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3Zhcmlh
bnQuaCIKICNpbmNsdWRlICJwYXNfYml0dmVjdG9yLmgiCiAjaW5jbHVkZSAicGFzX2Zhc3RfcGF0
aF9hbGxvY2F0aW9uX3Jlc3VsdC5oIgorI2luY2x1ZGUgInBhc19oZWFwX3J1bnRpbWVfY29uZmln
LmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfYmFzZV9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfcGFn
ZV9tYWxsb2MuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKQEAgLTEzNSwxMCArMTM2LDE4IEBA
IFBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX21hcmdlX2JpdGZpdF9wYWcKICAgICBQQVNfQVBJIHZv
aWQgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9wYWdlX3Nocmlu
a193aXRoX3BhZ2UoIFwKICAgICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlLCB1aW50cHRyX3Qg
YmVnaW4sIHNpemVfdCBuZXdfc2l6ZSkKIAotc3RhdGljIGlubGluZSBib29sIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfaXNfZW5hYmxlZChwYXNfYml0Zml0X3BhZ2VfY29uZmlnIGNvbmZpZykKK3N0
YXRpYyBpbmxpbmUgYm9vbCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQocGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZyBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2Nv
bmZpZykKIHsKICAgICBpZiAoIWNvbmZpZy5iYXNlLmlzX2VuYWJsZWQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAvKiBEb2luZyB0aGlzIGNoZWNrIGhlcmUgaXMgbm90IHN1cGVyIG5lY2Vz
c2FyeSwgYnV0IGl0J3Mgc29ydCBvZiBuaWNlIGZvciBjYXNlcyB3aGVyZSB3ZSBoYXZlIGEgaGVh
cAorICAgICAgIHRoYXQgc29tZXRpbWVzIHVzZXMgYml0Zml0IGV4Y2x1c2l2ZWx5IG9yIHNvbWV0
aW1lcyB1c2VzIHNlZ3JlZ2F0ZWQgZXhjbHVzaXZlbHkgYW5kIHRoYXQncyBzZWxlY3RlZAorICAg
ICAgIGJ5IHNlbGVjdGluZyBvciBtdXRhdGluZyBydW50aW1lX2NvbmZpZ3MuIFRoaXMgaXNfZW5h
YmxlZCBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBtYXRoCisgICAgICAg
dGhhdCBzZXRzIHVwIHNpemUgY2xhc3NlcywgYXQgbGVhc3QgZm9yIG5vdywgc28gdGhlIGltcGxp
Y2F0aW9ucyBvZiBub3QgZG9pbmcgdGhpcyBjaGVjayBhcmUgcmF0aGVyCisgICAgICAgdGlueS4g
Ki8KKyAgICBpZiAoIXJ1bnRpbWVfY29uZmlnLT5tYXhfYml0Zml0X29iamVjdF9zaXplKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgc3dpdGNoIChjb25maWcudmFyaWFudCkgewogICAgIGNh
c2UgcGFzX3NtYWxsX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50OgogICAgICAgICByZXR1cm4g
cGFzX3NtYWxsX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50X2lzX2VuYWJsZWRfb3ZlcnJpZGU7
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVh
cF9jb25maWcuaAkocmV2aXNpb24gMjg5NTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMDgsNiArMzA4
LDIzIEBAIHBhc19oZWFwX2NvbmZpZ19iaXRmaXRfcGFnZV9jb25maWdfZm9yX3YKICAgICByZXR1
cm4gY29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWc7CiB9CiAKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBzaXplX3QgcGFzX2hlYXBfY29uZmlnX3NlZ3JlZ2F0ZWRfaGVhcF9taW5fYWxpZ25fc2hp
ZnQocGFzX2hlYXBfY29uZmlnIGNvbmZpZykKK3sKKyAgICBzaXplX3QgcmVzdWx0OworICAgIHJl
c3VsdCA9IFNJWkVfTUFYOworICAgIGlmIChjb25maWcuc21hbGxfYml0Zml0X2NvbmZpZy5iYXNl
LmlzX2VuYWJsZWQpCisgICAgICAgIHJlc3VsdCA9IFBBU19NSU4ocmVzdWx0LCBjb25maWcuc21h
bGxfYml0Zml0X2NvbmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdCk7CisgICAgaWYgKGNvbmZpZy5z
bWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpCisgICAgICAgIHJlc3VsdCA9
IFBBU19NSU4ocmVzdWx0LCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5taW5f
YWxpZ25fc2hpZnQpOworICAgIFBBU19BU1NFUlQocmVzdWx0ICE9IFNJWkVfTUFYKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19o
ZWFwX2NvbmZpZ19zZWdyZWdhdGVkX2hlYXBfbWluX2FsaWduKHBhc19oZWFwX2NvbmZpZyBjb25m
aWcpCit7CisgICAgcmV0dXJuIChzaXplX3QpMSA8PCBwYXNfaGVhcF9jb25maWdfc2VncmVnYXRl
ZF9oZWFwX21pbl9hbGlnbl9zaGlmdChjb25maWcpOworfQorCiAvKiBSZXR1cm5zIHRydWUgaWYg
d2Ugd2VyZSB0aGUgZmlyc3QgdG8gYWN0aXZlIGl0LiBNdXN0IGhvbGQgdGhlIGhlYXAgbG9jayB0
byBjYWxsIHRoaXMuIFRoaXMgaXMKICAgIHBlcm1pc3NpdmUgb2YgcmVjdXJzaXZlIGluaXRpYWxp
emF0aW9uOiBpbiB0aGF0IGNhc2UsIGl0IHdpbGwganVzdCBwcmV0ZW5kIHRoYXQgdGhlIGNvbmZp
ZyBpcwogICAgYWxyZWFkeSBpbml0aWFsaXplZC4gKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHJldmlz
aW9uIDI4OTU3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsOCBAQCBzdGF0aWMgdm9p
ZCBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkICpjYWNoZWRfaW5kZXgs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIHdoZXJlKTsKIAotc3RhdGljIHNpemVfdCBtaW5fb2JqZWN0X3NpemVf
Zm9yX2hlYXBfY29uZmlnKHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQorc3RhdGljIHNpemVfdCBt
aW5fYWxpZ25fZm9yX2hlYXAocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQogewogICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQgc2VncmVnYXRlZF92YXJpYW50OwogICAg
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudCBiaXRmaXRfdmFyaWFudDsKQEAgLTYwLDcg
KzYxLDcgQEAgc3RhdGljIHNpemVfdCBtaW5fb2JqZWN0X3NpemVfZm9yX2hlYXBfYwogICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CiAgICAgICAgIHBhZ2Vf
Y29uZmlnID0KICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZ19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX3B0cl9mb3JfdmFyaWFudChjb25maWcsIHNlZ3JlZ2F0ZWRfdmFyaWFudCk7Ci0gICAgICAg
IGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcp
KQorICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQoKnBh
Z2VfY29uZmlnLCBoZWFwLT5ydW50aW1lX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbigqcGFn
ZV9jb25maWcpOwogICAgIH0KQEAgLTcwLDcgKzcxLDcgQEAgc3RhdGljIHNpemVfdCBtaW5fb2Jq
ZWN0X3NpemVfZm9yX2hlYXBfYwogICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYWdl
X2NvbmZpZzsKICAgICAgICAgcGFnZV9jb25maWcgPQogICAgICAgICAgICAgcGFzX2hlYXBfY29u
ZmlnX2JpdGZpdF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoY29uZmlnLCBiaXRmaXRfdmFy
aWFudCk7Ci0gICAgICAgIGlmICghcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pc19lbmFibGVkKCpw
YWdlX2NvbmZpZykpCisgICAgICAgIGlmICghcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pc19lbmFi
bGVkKCpwYWdlX2NvbmZpZywgaGVhcC0+cnVudGltZV9jb25maWcpKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIHJldHVybiBwYXNfcGFnZV9iYXNlX2NvbmZpZ19taW5fYWxpZ24ocGFn
ZV9jb25maWctPmJhc2UpOwogICAgIH0KQEAgLTc5LDYgKzgwLDEyIEBAIHN0YXRpYyBzaXplX3Qg
bWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2MKICAgICByZXR1cm4gY29uZmlnLT5sYXJnZV9hbGln
bm1lbnQ7CiB9CiAKK3N0YXRpYyBzaXplX3QgbWluX29iamVjdF9zaXplX2Zvcl9oZWFwKHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKK3sKKyAgICByZXR1cm4gbWluX2FsaWduX2Zv
cl9oZWFwKGhlYXAsIGNvbmZpZyk7Cit9CisKIHN0YXRpYyBzaXplX3QgbWF4X29iamVjdF9zaXpl
X2Zvcl9wYWdlX2NvbmZpZyhwYXNfaGVhcCogcGFyZW50X2hlYXAsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWcqIHBhZ2Vf
Y29uZmlnKQogewpAQCAtOTgsOSArMTA1LDkgQEAgc3RhdGljIHNpemVfdCBtYXhfb2JqZWN0X3Np
emVfZm9yX3BhZ2VfYwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBzaXplX3QgbWF4
X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKHBhc19oZWFwKiBwYXJlbnRf
aGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZp
ZykKK3N0YXRpYyBzaXplX3QgbWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemVfZm9yX2hlYXAocGFz
X2hlYXAqIHBhcmVudF9oZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZp
ZykKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCkBAIC0x
MTEsNyArMTE4LDcgQEAgc3RhdGljIHNpemVfdCBtYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZQog
ICAgICAgICBzaXplX3QgcmVzdWx0OwogICAgICAgICAKICAgICAgICAgcGFnZV9jb25maWcgPSBw
YXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoY29u
ZmlnLCB2YXJpYW50KTsKLSAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
c19lbmFibGVkKCpwYWdlX2NvbmZpZykpCisgICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWcsIGhlYXAtPnJ1bnRpbWVfY29uZmlnKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIG1heF9zaXplX3Blcl9jb25maWcgPSBt
YXhfb2JqZWN0X3NpemVfZm9yX3BhZ2VfY29uZmlnKHBhcmVudF9oZWFwLCAmcGFnZV9jb25maWct
PmJhc2UpOwpAQCAtMTI1LDkgKzEzMiw5IEBAIHN0YXRpYyBzaXplX3QgbWF4X3NlZ3JlZ2F0ZWRf
b2JqZWN0X3NpemUKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHNpemVfdCBtYXhfYml0Zml0
X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVhcCogcGFyZW50X2hlYXAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQorc3RhdGljIHNpemVfdCBt
YXhfYml0Zml0X29iamVjdF9zaXplX2Zvcl9oZWFwKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9oZWFwKiBoZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKICAgICAKQEAgLTE0NSw3ICsxNTIsNyBAQCBzdGF0aWMgc2l6ZV90IG1h
eF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yCiAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKHBhZ2VfY29uZmlnLT5raW5kKSk7CiAgICAgICAg
IH0KIAotICAgICAgICBpZiAoIXBhc19iaXRmaXRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFn
ZV9jb25maWcpKSB7CisgICAgICAgIGlmICghcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pc19lbmFi
bGVkKCpwYWdlX2NvbmZpZywgaGVhcC0+cnVudGltZV9jb25maWcpKSB7CiAgICAgICAgICAgICBp
ZiAodmVyYm9zZSkgewogICAgICAgICAgICAgICAgIHBhc19sb2coIk5vdCBjb25zaWRlcmluZyAl
cyBiZWNhdXNlIGl0J3MgZGlzYWJsZWQuXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcocGFnZV9jb25maWctPmtpbmQpKTsK
QEAgLTE4MiwxMiArMTg5LDEyIEBAIHN0YXRpYyBzaXplX3QgbWF4X2JpdGZpdF9vYmplY3Rfc2l6
ZV9mb3IKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHNpemVfdCBtYXhfb2JqZWN0X3NpemVf
Zm9yX2hlYXBfY29uZmlnKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2Nv
bmZpZyogY29uZmlnKQorc3RhdGljIHNpemVfdCBtYXhfb2JqZWN0X3NpemVfZm9yX2hlYXAocGFz
X2hlYXAqIHBhcmVudF9oZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQogewotICAgIHJldHVybiBQQVNf
TUFYKG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXJlbnRfaGVh
cCwgaGVhcCwgY29uZmlnKSwKLSAgICAgICAgICAgICAgICAgICBtYXhfYml0Zml0X29iamVjdF9z
aXplX2Zvcl9oZWFwX2NvbmZpZyhwYXJlbnRfaGVhcCwgaGVhcCwgY29uZmlnKSk7CisgICAgcmV0
dXJuIFBBU19NQVgobWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemVfZm9yX2hlYXAocGFyZW50X2hl
YXAsIGhlYXAsIGNvbmZpZyksCisgICAgICAgICAgICAgICAgICAgbWF4X2JpdGZpdF9vYmplY3Rf
c2l6ZV9mb3JfaGVhcChwYXJlbnRfaGVhcCwgaGVhcCwgY29uZmlnKSk7CiB9CiAKIHZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9jb25zdHJ1Y3QocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogc2VncmVnYXRl
ZF9oZWFwLApAQCAtODQ3LDcgKzg1NCw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2Fs
bG9jYXRvcl9pbmQKIAogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKICAgICAKLSAg
ICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+b2JqZWN0X3NpemUgPj0gbWluX29iamVjdF9zaXplX2Zv
cl9oZWFwX2NvbmZpZyhjb25maWcpKTsKKyAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+b2JqZWN0
X3NpemUgPj0gbWluX29iamVjdF9zaXplX2Zvcl9oZWFwKGhlYXAsIGNvbmZpZykpOwogCiAgICAg
cmVtYXRlcmlhbGl6ZV9zaXplX2xvb2t1cF9pZl9uZWNlc3NhcnkoaGVhcCwgY29uZmlnLCBjYWNo
ZWRfaW5kZXgpOwogCkBAIC0xMzI4LDYgKzEzMzUsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vu
c3VyZV9zaXplX2RpcmVjdG9yCiAgICAgc2l6ZV90IG9iamVjdF9zaXplOwogICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSogbWVkaXVtX3R1cGxlOwogICAgIGJv
b2wgaXNfdXRpbGl0eTsKKyAgICBzaXplX3QgZHluYW1pY19taW5fYWxpZ247CisgICAgc2l6ZV90
IHN0YXRpY19taW5fYWxpZ247CiAgICAgc2l6ZV90IHR5cGVfYWxpZ25tZW50OwogCiAgICAgcGFz
X2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwpAQCAtMTQyMywyMSArMTQzMiwzNiBAQCBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgUEFTX0FTU0VSVChhbGlnbm1l
bnQgPj0gdHlwZV9hbGlnbm1lbnQpOwogICAgIAogICAgIGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9pbmRleF9mb3Jfc2l6ZShzaXplLCAqY29uZmlnKTsKKworICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICBwYXNfbG9nKCJpbmRleCA9ICV6dVxuIiwgaW5kZXgpOworICAgIAogICAgIG9iamVj
dF9zaXplID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2Zvcl9pbmRleChpbmRleCwgKmNvbmZp
Zyk7CiAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygib2JqZWN0X3NpemUgPSAl
enVcbiIsIG9iamVjdF9zaXplKTsKKwogICAgIGlmIChvYmplY3Rfc2l6ZSA8IHNpemUpIHsKICAg
ICAgICAgLyogVGhpcydsbCBvbmx5IGhhcHBlbiBpbiBjZXJ0YWluIGtpbmRzIG9mIG92ZXJmbG93
cywgaW4gd2hpY2ggY2FzZSB0aGUgc2l6ZSBtdXN0IGJlIHdheSB0b28gYmlnLiAqLwogICAgICAg
ICBQQVNfQVNTRVJUKCFvYmplY3Rfc2l6ZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0K
IAotICAgIG9iamVjdF9zaXplID0gUEFTX01BWChtaW5fb2JqZWN0X3NpemVfZm9yX2hlYXBfY29u
ZmlnKGNvbmZpZyksIG9iamVjdF9zaXplKTsKKyAgICBvYmplY3Rfc2l6ZSA9IFBBU19NQVgobWlu
X29iamVjdF9zaXplX2Zvcl9oZWFwKGhlYXAsIGNvbmZpZyksIG9iamVjdF9zaXplKTsKIAotICAg
IFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoCi0gICAgICAgICAgICAgICAgICAgb2JqZWN0X3Np
emUsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25maWctPnNtYWxsX3Nl
Z3JlZ2F0ZWRfY29uZmlnKSkpOworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJv
YmplY3Rfc2l6ZSBhZnRlciBhY2NvdW50aW5nIGZvciBtaW5fb2JqZWN0X3NpemUgPSAlenVcbiIs
IG9iamVjdF9zaXplKTsKKworICAgIHN0YXRpY19taW5fYWxpZ24gPSBwYXNfaGVhcF9jb25maWdf
c2VncmVnYXRlZF9oZWFwX21pbl9hbGlnbigqY29uZmlnKTsKKyAgICBkeW5hbWljX21pbl9hbGln
biA9IG1pbl9hbGlnbl9mb3JfaGVhcChoZWFwLCBjb25maWcpOworICAgIFBBU19BU1NFUlQoZHlu
YW1pY19taW5fYWxpZ24gPj0gc3RhdGljX21pbl9hbGlnbik7CiAKLSAgICBhbGlnbm1lbnQgPSBQ
QVNfTUFYKGFsaWdubWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25maWctPnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKSk7
CisgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgYWxpZ25tZW50KSk7
CisgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgc3RhdGljX21pbl9h
bGlnbikpOworCisgICAgb2JqZWN0X3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihv
YmplY3Rfc2l6ZSwgZHluYW1pY19taW5fYWxpZ24pOworICAgIAorICAgIGFsaWdubWVudCA9IFBB
U19NQVgoYWxpZ25tZW50LCBkeW5hbWljX21pbl9hbGlnbik7CiAKICAgICBpZiAoYWxpZ25tZW50
ID4gdHlwZV9hbGlnbm1lbnQpIHsKICAgICAgICAgLyogSWYgdGhlIGFsaWdubWVudCBpcyBiaWdn
ZXIgdGhhbiB0eXBlX2FsaWdubWVudCB0aGVuIGl0IG1lYW5zIHRoYXQgdGhpcyBpcyBhIGR5bmFt
aWNhbGx5IHJlcXVlc3RlZApAQCAtMTQ2Niw3ICsxNDkwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgIC8qIElmIGl0J3MgaW1wb3NzaWJsZSB0byB1c2Ug
dGhlIGxhcmdlc3Qgc2VncmVnYXRlZCBoZWFwIHRvIGFsbG9jYXRlIHRoZSByZXF1ZXN0IHRoZW4K
ICAgICAgICBpbW1lZGlhdGVseSBnaXZlIHVwLiBEbyB0aGlzIGJlZm9yZSBlbnN1cmVfc2l6ZV9s
b29rdXAgc28gdGhhdCBoZWFwcyB0aGF0IGFyZSBvbmx5IHVzZWQKICAgICAgICBmb3IgbGFyZ2Ug
b2JqZWN0IGFsbG9jYXRpb24gZG9uJ3QgYWxsb2NhdGUgYW55IHNtYWxsIGhlYXAgbWV0YS1kYXRh
LiAqLwotICAgIGlmIChvYmplY3Rfc2l6ZSA+IG1heF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25m
aWcocGFyZW50X2hlYXAsIGhlYXAsIGNvbmZpZykpIHsKKyAgICBpZiAob2JqZWN0X3NpemUgPiBt
YXhfb2JqZWN0X3NpemVfZm9yX2hlYXAocGFyZW50X2hlYXAsIGhlYXAsIGNvbmZpZykpIHsKICAg
ICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJJdCdzIHRvbyBiaWcuXG4i
KTsKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xNzA0LDcgKzE3MjgsNyBAQCBwYXNfc2VncmVn
YXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgcGFnZV9jb25maWdfcHRyID0KICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBf
Y29uZmlnX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcHRyX2Zvcl92YXJpYW50KGNvbmZpZywgdmFy
aWFudCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
c19lbmFibGVkKCpwYWdlX2NvbmZpZ19wdHIpKQorICAgICAgICAgICAgICAgIGlmICghcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfZW5hYmxlZCgqcGFnZV9jb25maWdfcHRyLCBoZWFwLT5y
dW50aW1lX2NvbmZpZykpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnID0gKnBhZ2VfY29uZmlnX3B0cjsK
QEAgLTE3NDgsOSArMTc3Miw5IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGly
ZWN0b3IKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFBBU19BU1NFUlQob2JqZWN0X3NpemUg
PD0gaGVhcC0+cnVudGltZV9jb25maWctPm1heF9iaXRmaXRfb2JqZWN0X3NpemUpOwogICAgICAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAotICAgICAgICAgICAgICAgIG9iamVjdF9zaXplIDw9
IG1heF9iaXRmaXRfb2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKHBhcmVudF9oZWFwLCBoZWFw
LCBjb25maWcpKTsKKyAgICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSA8PSBtYXhfYml0Zml0X29i
amVjdF9zaXplX2Zvcl9oZWFwKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcpKTsKICAgICAgICAg
ICAgIGJlc3RfYnl0ZXNfZGlydGllZF9wZXJfb2JqZWN0ID0KLSAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X2hlYXBfc2VsZWN0X3ZhcmlhbnQob2JqZWN0X3NpemUsIGNvbmZpZykub2JqZWN0X3Np
emU7CisgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KG9iamVj
dF9zaXplLCBjb25maWcsIGhlYXAtPnJ1bnRpbWVfY29uZmlnKS5vYmplY3Rfc2l6ZTsKICAgICAg
ICAgICAgIFBBU19BU1NFUlQoIWlzX3V0aWxpdHkpOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9o
ZWFwLmgJKHJldmlzaW9uIDI4OTU3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE1NSwxNCArMTU1
LDE3IEBAIFBBU19BUEkgcGFzX2JpdGZpdF9oZWFwKiBwYXNfc2VncmVnYXRlZF8KIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSBzaXplX3QKIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3Np
emUoc2l6ZV90IHNpemUsIHBhc19oZWFwX2NvbmZpZyBjb25maWcpCiB7Ci0gICAgcmV0dXJuIChz
aXplICsgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKGNvbmZpZy5zbWFsbF9z
ZWdyZWdhdGVkX2NvbmZpZykgLSAxKQotICAgICAgICA+PiBjb25maWcuc21hbGxfc2VncmVnYXRl
ZF9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7CisgICAgc2l6ZV90IG1pbl9hbGlnbl9zaGlm
dDsKKyAgICBzaXplX3QgbWluX2FsaWduOworICAgIG1pbl9hbGlnbl9zaGlmdCA9IHBhc19oZWFw
X2NvbmZpZ19zZWdyZWdhdGVkX2hlYXBfbWluX2FsaWduX3NoaWZ0KGNvbmZpZyk7CisgICAgbWlu
X2FsaWduID0gKHNpemVfdCkxIDw8IG1pbl9hbGlnbl9zaGlmdDsKKyAgICByZXR1cm4gKHNpemUg
KyBtaW5fYWxpZ24gLSAxKSA+PiBtaW5fYWxpZ25fc2hpZnQ7CiB9CiAKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBzaXplX3QKIHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9mb3JfaW5kZXgoc2l6
ZV90IGluZGV4LCBwYXNfaGVhcF9jb25maWcgY29uZmlnKQogewotICAgIHJldHVybiBpbmRleCA8
PCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7Cisg
ICAgcmV0dXJuIGluZGV4IDw8IHBhc19oZWFwX2NvbmZpZ19zZWdyZWdhdGVkX2hlYXBfbWluX2Fs
aWduX3NoaWZ0KGNvbmZpZyk7CiB9CiAKIC8qIFRoZXNlIGZ1bmN0aW9ucyBoZWxwIHdpdGggZGVh
bGluZyB3aXRoIHBhc19oZWFwX3JlZjo6YWxsb2NhdG9yX2luZGV4LiBDYW4gcGFzcyBhIE5VTEwg
Y2FjaGVkX2luZGV4LCBpbiB3aGljaApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwkocmV2aXNpb24gMjg5NTc5
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNyArMjQzLDYgQEAgdm9pZCBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbnN0cnVjdChwYXNfcwogCiAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV92aWV3X2NhY2hlX2NhcGFjaXR5KGRpcmVjdG9yeSkpIHsKICAgICAgICAgICAg
IFBBU19BU1NFUlQoZGlyZWN0b3J5LT52aWV3X2NhY2hlX2luZGV4KTsKLSAgICAgICAgICAgIFBB
U19BU1NFUlQoZGlyZWN0b3J5LT52aWV3X2NhY2hlX2luZGV4IDwgKHBhc19hbGxvY2F0b3JfaW5k
ZXgpVUlOVF9NQVgpOwogICAgICAgICAgICAgcGFnZS0+dmlld19jYWNoZV9pbmRleCA9IGRpcmVj
dG9yeS0+dmlld19jYWNoZV9pbmRleDsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBQQVNf
QVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCA9PSAocGFzX2FsbG9jYXRvcl9pbmRl
eClVSU5UX01BWCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgJKHJldmlzaW9uIDI4
OTU3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMyArMjksMTQgQEAKICNpbmNs
dWRlICJwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfYml0dmVjdG9yLmgi
CiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgorI2luY2x1ZGUgInBhc19oZWFwX3J1bnRpbWVfY29u
ZmlnLmgiCiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oIgogI2lu
Y2x1ZGUgInBhc19sb2NrLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZC5oIgogI2luY2x1ZGUgInBhc19wYWdlX2Jhc2VfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFz
X3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX21v
ZGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbG9nZ2luZ19tb2Rl
LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCIKICNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9wYWdlX3JvbGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3Lmgi
CkBAIC0yMjIsMTAgKzIyMywxOCBAQCBQQVNfQVBJIGV4dGVybiBib29sIHBhc19tZWRpdW1fc2Vn
cmVnYXRlCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0dPT0RfTUFYX09CSkVD
VF9TSVpFKG9iamVjdF9wYXlsb2FkX3NpemUsIG1pbl9udW1fb2JqZWN0cykgXAogICAgICgob2Jq
ZWN0X3BheWxvYWRfc2l6ZSkgLyAobWluX251bV9vYmplY3RzKSkKIAotc3RhdGljIGlubGluZSBi
b29sIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX2VuYWJsZWQocGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcgY29uZmlnKQorc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2lzX2VuYWJsZWQocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgY29uZmlnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2hlYXBfcnVudGltZV9jb25maWcqIHJ1bnRpbWVfY29uZmlnKQogewogICAgIGlmICghY29u
ZmlnLmJhc2UuaXNfZW5hYmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8qIERvaW5n
IHRoaXMgY2hlY2sgaGVyZSBpcyBub3Qgc3VwZXIgbmVjZXNzYXJ5LCBidXQgaXQncyBzb3J0IG9m
IG5pY2UgZm9yIGNhc2VzIHdoZXJlIHdlIGhhdmUgYSBoZWFwCisgICAgICAgdGhhdCBzb21ldGlt
ZXMgdXNlcyBiaXRmaXQgZXhjbHVzaXZlbHkgb3Igc29tZXRpbWVzIHVzZXMgc2VncmVnYXRlZCBl
eGNsdXNpdmVseSBhbmQgdGhhdCdzIHNlbGVjdGVkCisgICAgICAgYnkgc2VsZWN0aW5nIG9yIG11
dGF0aW5nIHJ1bnRpbWVfY29uZmlncy4gVGhpcyBpc19lbmFibGVkIGZ1bmN0aW9uIGlzIG9ubHkg
Y2FsbGVkIGFzIHBhcnQgb2YgdGhlIG1hdGgKKyAgICAgICB0aGF0IHNldHMgdXAgc2l6ZSBjbGFz
c2VzLCBhdCBsZWFzdCBmb3Igbm93LCBzbyB0aGUgaW1wbGljYXRpb25zIG9mIG5vdCBkb2luZyB0
aGlzIGNoZWNrIGFyZSByYXRoZXIKKyAgICAgICB0aW55LiAqLworICAgIGlmICghcnVudGltZV9j
b25maWctPm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgc3dpdGNoIChjb25maWcudmFyaWFudCkgewogICAgIGNhc2UgcGFzX3NtYWxsX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudDoKICAgICAgICAgcmV0dXJuIHBhc19zbWFsbF9zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnRfaXNfZW5hYmxlZF9vdmVycmlkZTsKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmQuZGVmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmCShyZXZpc2lvbiAyODk1NzkpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kLmRlZgkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTktMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwNCwzICsxMDQsNyBAQCBQQVNfREVG
SU5FX1NFR1JFR0FURURfUEFHRV9DT05GSUdfS0lORChoCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBIT1RCSVRfSEVBUF9DT05GSUcubWVkaXVtX3NlZ3JlZ2F0ZWRfY29u
ZmlnKQogI2VuZGlmCiAKKyNpZiBQQVNfRU5BQkxFX0pJVAorUEFTX0RFRklORV9TRUdSRUdBVEVE
X1BBR0VfQ09ORklHX0tJTkQoaml0X3NtYWxsX3NlZ3JlZ2F0ZWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBKSVRfSEVBUF9DT05GSUcuc21hbGxfc2VncmVnYXRlZF9j
b25maWcpCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX2FuZF9yb2xlLmgJKHJldmlzaW9uIDI4OTU3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIx
LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00MSw3ICs0MSw3IEBAIGVudW0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9hbmQKIAogdHlwZWRlZiBlbnVtIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfYW5kX3JvbGUgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZTsK
IAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EX0FORF9ST0xFX05VTV9C
SVRTIDV1CisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkRfQU5EX1JPTEVf
TlVNX0JJVFMgNnUKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfS0lORF9BTkRf
Uk9MRV9NQVNLIFwKICAgICAoKDF1IDw8IFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkRf
QU5EX1JPTEVfTlVNX0JJVFMpIC0gMXUpCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuYwkocmV2aXNpb24gMjg5NTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTEzMCw3ICsxMzAsNyBAQCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3Jl
CiAgICAgICAgIGJpdGZpdF9zaXplX2NsYXNzID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZ2V0X2JpdGZpdF9zaXplX2NsYXNzKHJlc3VsdCk7CiAgICAgICAgIAogICAgICAgICBwYXNf
Yml0Zml0X2hlYXBfY29uc3RydWN0X2FuZF9pbnNlcnRfc2l6ZV9jbGFzcygKLSAgICAgICAgICAg
IGJpdGZpdF9oZWFwLCBiaXRmaXRfc2l6ZV9jbGFzcywgb2JqZWN0X3NpemUsIGhlYXBfY29uZmln
KTsKKyAgICAgICAgICAgIGJpdGZpdF9oZWFwLCBiaXRmaXRfc2l6ZV9jbGFzcywgb2JqZWN0X3Np
emUsIGhlYXBfY29uZmlnLCBoZWFwLT5ydW50aW1lX2NvbmZpZyk7CiAgICAgfQogICAgIAogICAg
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgm
cmVzdWx0LT5uZXh0X2Zvcl9oZWFwLCBOVUxMKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAkocmV2aXNpb24gMjg5
NTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3Rz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTktMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMDcsNiArMTIwNywxMSBAQCB2b2lkIGFkZEFsbFRl
c3RzKCkKICAgICAgICAgQm9vdEpJVEhlYXAgYm9vdEpJVEhlYXA7CiAKICAgICAgICAgQUREX0dS
T1VQKGFkZFRoZVRlc3RzKDEsIHRydWUpKTsKKworICAgICAgICB7CisgICAgICAgICAgICBGb3Jj
ZUJpdGZpdCBmb3JjZUJpdGZpdDsKKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygx
LCB0cnVlKSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB7CkBAIC0xMjI3LDYgKzEyMzIsMTEg
QEAgdm9pZCBhZGRBbGxUZXN0cygpCiAgICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRIZWFwOwog
CiAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOworCisgICAgICAgIHsK
KyAgICAgICAgICAgIEZvcmNlQml0Zml0IGZvcmNlQml0Zml0OworICAgICAgICAgICAgQUREX0dS
T1VQKGFkZFRoZVRlc3RzKDEsIGZhbHNlKSk7CisgICAgICAgIH0KICAgICB9CiAjZW5kaWYgLy8g
UEFTX0VOQUJMRV9IT1RCSVQKIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVz
dC9KSVRIZWFwVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvdGVzdC9KSVRIZWFwVGVzdHMuY3BwCShyZXZpc2lvbiAyODk1NzkpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL3Rlc3QvSklUSGVhcFRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02OSw2
ICs2OSwxMSBAQCB2b2lkIHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKHVuc2lnCiAgICAg
aml0X2hlYXBfZGVhbGxvY2F0ZShuZXdQdHIpOwogfQogCit2b2lkIHRlc3RBbGxvY2F0aW9uU2l6
ZShzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90IGFjdHVhbFNpemUpCit7CisgICAgQ0hFQ0tf
RVFVQUwoaml0X2hlYXBfZ2V0X3NpemUoaml0X2hlYXBfdHJ5X2FsbG9jYXRlKHJlcXVlc3RlZFNp
emUpKSwgYWN0dWFsU2l6ZSk7Cit9CisKIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQogCiAjZW5k
aWYgLy8gUEFTX0VOQUJMRV9KSVQKQEAgLTc4LDEzICs4MywzMCBAQCB2b2lkIGFkZEpJVEhlYXBU
ZXN0cygpCiAjaWYgUEFTX0VOQUJMRV9KSVQKICAgICBCb290SklUSGVhcCBib290SklUSGVhcDsK
IAotICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKDAsIDAsIDAsIDAs
IDAsIDQpKTsKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgwLCAw
LCAxMjgsIDY0LCA2NCwgNCkpOwotICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFs
bG9jYXRlKDMyLCAxMCwgMTI4LCA2NCwgNjQsIDQpKTsKLSAgICBBRERfVEVTVCh0ZXN0QWxsb2Nh
dGVTaHJpbmtBbmRBbGxvY2F0ZSgzMiwgMTAsIDEwMDAsIDUwMCwgMTAwMCwgNCkpOwotICAgIEFE
RF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKDAsIDAsIDIwNDgsIDUxMiwgMTEw
MCwgMjU2KSk7Ci0gICAgQUREX1RFU1QodGVzdEFsbG9jYXRlU2hyaW5rQW5kQWxsb2NhdGUoMzIs
IDEwLCAyMDQ4LCA1MTIsIDExMDAsIDI1NikpOwotICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNo
cmlua0FuZEFsbG9jYXRlKDExMDAsIDEwLCAyMDQ4LCA1MTIsIDExMDAsIDI1NikpOwotICAgIEFE
RF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKDAsIDAsIDEwMDAwMCwgMTAwMDAs
IDgwMDAwLCA0KSk7CisgICAgeworICAgICAgICBGb3JjZUJpdGZpdCBmb3JjZUJpdGZpdDsKKyAg
ICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRlU2hyaW5rQW5kQWxsb2NhdGUoMCwgMCwgMCwgMCwg
MCwgNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJpbmtBbmRBbGxvY2F0ZSgw
LCAwLCAxMjgsIDY0LCA2NCwgNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVTaHJp
bmtBbmRBbGxvY2F0ZSgzMiwgMTAsIDEyOCwgNjQsIDY0LCA0KSk7CisgICAgICAgIEFERF9URVNU
KHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKDMyLCAxMCwgMTAwMCwgNTAwLCAxMDAwLCA0
KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFsbG9jYXRlKDAsIDAs
IDIwNDgsIDUxMiwgMTEwMCwgMjU2KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNo
cmlua0FuZEFsbG9jYXRlKDMyLCAxMCwgMjA0OCwgNTEyLCAxMTAwLCAyNTYpKTsKKyAgICAgICAg
QUREX1RFU1QodGVzdEFsbG9jYXRlU2hyaW5rQW5kQWxsb2NhdGUoMTEwMCwgMTAsIDIwNDgsIDUx
MiwgMTEwMCwgMjU2KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVNocmlua0FuZEFs
bG9jYXRlKDAsIDAsIDEwMDAwMCwgMTAwMDAsIDgwMDAwLCA0KSk7CisgICAgfQorICAgIAorICAg
IEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSg0LCAxNikpOworICAgIEFERF9URVNUKHRlc3RB
bGxvY2F0aW9uU2l6ZSg4LCAxNikpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSgx
MiwgMTYpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvblNpemUoMTYsIDE2KSk7CisgICAg
QUREX1RFU1QodGVzdEFsbG9jYXRpb25TaXplKDIwLCAzMikpOworICAgIHsKKyAgICAgICAgRm9y
Y2VCaXRmaXQgZm9yY2VCaXRmaXQ7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6
ZSg0LCA0KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSg4LCA4KSk7Cisg
ICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uU2l6ZSgxMiwgMTIpKTsKKyAgICAgICAgQURE
X1RFU1QodGVzdEFsbG9jYXRpb25TaXplKDE2LCAxNikpOworICAgICAgICBBRERfVEVTVCh0ZXN0
QWxsb2NhdGlvblNpemUoMjAsIDIwKSk7CisgICAgfQogI2VuZGlmIC8vIFBBU19FTkFCTEVfSklU
CiB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVz
cy5jcHAJKHJldmlzaW9uIDI4OTU3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVz
dC9UZXN0SGFybmVzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3OCw2ICszNzgsNyBAQCB2b2lk
IGFkZFRMQ0RlY29tbWl0VGVzdHMoKTsKIHZvaWQgYWRkVFNEVGVzdHMoKTsKIHZvaWQgYWRkVGhp
bmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMoKTsKIHZvaWQgYWRkVXRpbHNUZXN0cygp
Owordm9pZCBhZGRWaWV3Q2FjaGVUZXN0cygpOwogCiB2b2lkIHRlc3RTdWNjZWVkZWQoKQogewpA
QCAtNzQ0LDYgKzc0NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBB
RERfU1VJVEUoVExDRGVjb21taXQpOwogICAgIEFERF9TVUlURShUU0QpOwogICAgIEFERF9TVUlU
RShVdGlscyk7CisgICAgQUREX1NVSVRFKFZpZXdDYWNoZSk7CiAgICAgCiAgICAgc3RyaW5nIGZp
bHRlcjsKICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9WaWV3Q2Fj
aGVUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0
L1ZpZXdDYWNoZVRlc3RzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvVmlld0NhY2hlVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTEwIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJUZXN0SGFybmVzcy5oIgorCisjaWYgUEFTX0VOQUJMRV9CTUFMTE9DCisKKyNpbmNs
dWRlICJibWFsbG9jX2hlYXAuaCIKKyNpbmNsdWRlICJibWFsbG9jX2hlYXBfY29uZmlnLmgiCisj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlIDxzZXQ+
CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSB7CisKK3ZvaWQgc2V0dXBDb25m
aWcoKQoreworICAgIC8vIElmIHRoZXNlIGFzc2VydGlvbnMgZXZlciBmYWlsIHdlIGNvdWxkIGp1
c3QgZml4IGl0IGJ5IHJlcGxhY2luZyB0aGVtIHdpdGggY29kZSB0aGF0IG11dGF0ZXMgdGhlCisg
ICAgLy8gY29uZmlnIHRvIGhhdmUgdGhlIHNldHRpbmdzIHdlIHdhbnQuCisgICAgQ0hFQ0tfRVFV
QUwoYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZS52aWV3X2NhY2hlX2NhcGFj
aXR5X2Zvcl9vYmplY3Rfc2l6ZSwKKyAgICAgICAgICAgICAgICBwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkpOworICAgIENIRUNLX0VRVUFMKGJt
YWxsb2NfaW50cmluc2ljX3J1bnRpbWVfY29uZmlnLmJhc2UuZGlyZWN0b3J5X3NpemVfYm91bmRf
Zm9yX25vX3ZpZXdfY2FjaGUsIDApOworfQorCit2b2lkIHRlc3REaXNhYmxlVmlld0NhY2hlVXNp
bmdCb3VuZEZvck5vVmlld0NhY2hlKCkKK3sKKyAgICBzZXR1cENvbmZpZygpOworCisgICAgYm1h
bGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZS5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9m
b3Jfbm9fdmlld19jYWNoZSA9IFVJTlRfTUFYOworCisgICAgYm1hbGxvY19kZWFsbG9jYXRlKGJt
YWxsb2NfYWxsb2NhdGUoNDIpKTsKK30KKwordm9pZCB0ZXN0RW5hYmxlVmlld0NhY2hlQXRTb21l
Qm91bmRGb3JOb1ZpZXdDYWNoZSh1bnNpZ25lZCBib3VuZCkKK3sKKyAgICBzZXR1cENvbmZpZygp
OworCisgICAgYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZS5kaXJlY3Rvcnlf
c2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IGJvdW5kOworCisgICAgdm9pZCogcHRyID0g
Ym1hbGxvY19hbGxvY2F0ZSg0Mik7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3ID0gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KAorICAgICAgICByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4ocHRyKSwgJmJtYWxsb2NfaGVhcF9jb25maWcpOworICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiB0aGVEaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9z
aXplX2RpcmVjdG9yeSh2aWV3KTsKKworICAgIENIRUNLX0VRVUFMKHRoZURpcmVjdG9yeS0+dmll
d19jYWNoZV9pbmRleCwgVUlOVF9NQVgpOworCisgICAgc2V0PHBhc19zZWdyZWdhdGVkX3ZpZXc+
IHZpZXdzOworICAgIHZpZXdzLmluc2VydCh2aWV3KTsKKworICAgIGZvciAoOzspIHsKKyAgICAg
ICAgcHRyID0gYm1hbGxvY19hbGxvY2F0ZSg0Mik7CisgICAgICAgIHZpZXcgPSBwYXNfc2VncmVn
YXRlZF92aWV3X2Zvcl9vYmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0ciksICZi
bWFsbG9jX2hlYXBfY29uZmlnKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZp
ZXcpOworCisgICAgICAgIENIRUNLX0VRVUFMKGRpcmVjdG9yeSwgdGhlRGlyZWN0b3J5KTsKKwor
ICAgICAgICB2aWV3cy5pbnNlcnQodmlldyk7CisKKyAgICAgICAgaWYgKHZpZXdzLnNpemUoKSA+
IGJvdW5kKSB7CisgICAgICAgICAgICBDSEVDS19FUVVBTCh2aWV3cy5zaXplKCksIGJvdW5kICsg
MSk7CisgICAgICAgICAgICBDSEVDS19MRVNTKHRoZURpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRl
eCwgVUlOVF9NQVgpOworICAgICAgICAgICAgQ0hFQ0tfR1JFQVRFUih0aGVEaXJlY3RvcnktPnZp
ZXdfY2FjaGVfaW5kZXgsIDApOworCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBw
YWdlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZSh2aWV3KTsKKyAgICAgICAgICAgIENI
RUNLX0VRVUFMKHBhZ2UtPnZpZXdfY2FjaGVfaW5kZXgsIHRoZURpcmVjdG9yeS0+dmlld19jYWNo
ZV9pbmRleCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK30g
Ly8gYW5vbnltb3VzIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9DCisK
K3ZvaWQgYWRkVmlld0NhY2hlVGVzdHMoKQoreworI2lmIFBBU19FTkFCTEVfQk1BTExPQworICAg
IEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7CisgICAgRm9yY2VUTEFzIGZvcmNlVExB
czsKKyAgICAKKyAgICBBRERfVEVTVCh0ZXN0RGlzYWJsZVZpZXdDYWNoZVVzaW5nQm91bmRGb3JO
b1ZpZXdDYWNoZSgpKTsKKyAgICBBRERfVEVTVCh0ZXN0RW5hYmxlVmlld0NhY2hlQXRTb21lQm91
bmRGb3JOb1ZpZXdDYWNoZSgxKSk7CisgICAgQUREX1RFU1QodGVzdEVuYWJsZVZpZXdDYWNoZUF0
U29tZUJvdW5kRm9yTm9WaWV3Q2FjaGUoMTApKTsKKyAgICBBRERfVEVTVCh0ZXN0RW5hYmxlVmll
d0NhY2hlQXRTb21lQm91bmRGb3JOb1ZpZXdDYWNoZSgxMDApKTsKKyNlbmRpZiAvLyBQQVNfRU5B
QkxFX0JNQUxMT0MKK30KKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>