<?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>231040</bug_id>
          
          <creation_ts>2021-09-30 15:41:26 -0700</creation_ts>
          <short_desc>[libpas] Change the names of libpas heap runtime configs to something simpler (intrinsic, primitive, typed, and flex) and add comments describing what they are (update to 32abc1fd5489e01aa1c504ae4654967047d3f072)</short_desc>
          <delta_ts>2021-10-01 09:20:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>bmalloc</component>
          <version>Other</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>ggaren</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1799051</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-30 15:41:26 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799056</commentid>
    <comment_count>1</comment_count>
      <attachid>439786</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-30 15:46:48 -0700</bug_when>
    <thetext>Created attachment 439786
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799334</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-10-01 09:19:39 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/283371/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799335</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-01 09:20:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/83768946&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439786</attachid>
            <date>2021-09-30 15:46:48 -0700</date>
            <delta_ts>2021-10-01 08:38:46 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>93411</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MzM0MSkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkzIEBACisyMDIxLTA5LTMwICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gQ2hhbmdlIHRoZSBu
YW1lcyBvZiBsaWJwYXMgaGVhcCBydW50aW1lIGNvbmZpZ3MgdG8gc29tZXRoaW5nIHNpbXBsZXIg
KGludHJpbnNpYywgcHJpbWl0aXZlLCB0eXBlZCwgYW5kIGZsZXgpIGFuZCBhZGQgY29tbWVudHMg
ZGVzY3JpYmluZyB3aGF0IHRoZXkgYXJlICh1cGRhdGUgdG8gMzJhYmMxZmQ1NDg5ZTAxYWExYzUw
NGFlNDY1NDk2NzA0N2QzZjA3MikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMTA0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEF0IHNvbWUgcG9pbnQgYSBsb25nIHRpbWUgYWdvLCBsaWJwYXMgaGFkIHNl
bnNpYmxlIG5hbWVzIGZvciBoZWFwIHJ1bnRpbWUgY29uZmlnczogcHJpbWl0aXZlCisgICAgICAg
IGFuZCB0eXBlZC4gVGhlbiBJIGFkZGVkIHRoZSAib2JqYyIgY2F0ZWdvcnksIG5vdCByZWFsaXpp
bmcgdGhhdCBJIHdhcyByZWFsbHkgYWRkaW5nIHN1cHBvcnQgZm9yCisgICAgICAgIGZsZXhpYmxl
IGFycmF5IG1lbWJlcnMuIEFuZCB0aGVuIEkgYWRkZWQgImludHJpbnNpY19wcmltaXRpdmUiLCBi
dXQgd293LCB3aGF0IGEgbW91dGhmdWwuCisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoZSBoZWFw
IG5hbWVzIHRvOgorCisgICAgICAgIGludHJpbnNpYzogc2luZ2xldG9uIGhlYXBzIGZvciBwcmlt
aXRpdmUgZGF0YSwgbGlrZSB0aGUgbm9ybWFsIGZhc3RNYWxsb2MgaGVhcAorICAgICAgICBwcmlt
aXRpdmU6IGlzb2hlYXBzIGZvciBwcmltaXRpdmUgZGF0YQorICAgICAgICB0eXBlZDogaXNvaGVh
cHMgZm9yIGZpeGVkLXNpemUgdHlwZXMKKyAgICAgICAgZmxleDogaXNvaGVhcHMgZm9yIHR5cGVz
IHdpdGggZmxleGlibGUgYXJyYXkgbWVtYmVycworCisgICAgICAgIEFsc28gYWRkcyBjb21tZW50
cyBleHBsYWluaW5nIHRoZSBleGFjdCBiZWhhdmlvcnMgb2YgdGhlc2UgaGVhcHMuCisKKyAgICAg
ICAgQWxzbyBleHBvc2VzIGlzb2hlYXBlZCBhcnJheSBhbGxvY2F0aW9uIHRocm91Z2ggdGhlIGJt
YWxsb2NfaGVhcCBBUEkuIFRoYXQncyBub3QgeWV0IGV4cG9zZWQKKyAgICAgICAgdmlhIHRoZSBJ
c29IZWFwIEFQSSwgYnV0IHRoZSBpZGVhIGlzIHRoYXQgaXQgd2lsbCBiZSAtLSBqdXN0IG5lZWQg
dG8gZmlndXJlIG91dCBhIGNsZWFuIHdheSB0bworICAgICAgICBkbyBpdC4KKworICAgICAgICAq
IGJtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBibWFsbG9jL2Jt
YWxsb2MuY3BwOgorICAgICAgICAoYm1hbGxvYzo6YXBpOjplbmFibGVNaW5pTW9kZSk6CisgICAg
ICAgICogbGlicGFzL2NvbW1vbi5zaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2NoYW9zL0NoYW9z
LmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2JtYWxs
b2NfaGVhcC5jOgorICAgICAgICAoYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5KToKKyAg
ICAgICAgKGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5KToKKyAgICAgICAgKGJtYWxsb2NfdHJ5
X2lzb19hbGxvY2F0ZV9hcnJheV93aXRoX2FsaWdubWVudCk6CisgICAgICAgIChibWFsbG9jX2lz
b19hbGxvY2F0ZV9hcnJheV93aXRoX2FsaWdubWVudCk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvYm1hbGxvY19oZWFwLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxv
Y19oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVh
cF9pbmxpbmVzLmg6CisgICAgICAgIChibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2lubGluZSk6Cisg
ICAgICAgIChibWFsbG9jX3JlYWxsb2NhdGVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5
X2lzb19hbGxvY2F0ZV9hcnJheV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY190cnlfaXNvX2Fs
bG9jYXRlX2FycmF5X3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2lz
b19hbGxvY2F0ZV9hcnJheV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19pc29fYWxsb2NhdGVf
YXJyYXlfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9ob3RiaXRfaGVhcC5jOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFw
X2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2lubGlu
ZXMuaDoKKyAgICAgICAgKGhvdGJpdF90cnlfcmVhbGxvY2F0ZV9pbmxpbmUpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwLmM6CisgICAgICAgIChpc29fdHJ5X2FsbG9jYXRl
X2Zvcl9mbGV4KToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfZm9yX29iamMpOiBEZWxldGVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwLmg6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvaXNvX2hlYXBfaW5saW5lcy5oOgorICAgICAgICAoaXNvX3RyeV9yZWFsbG9jYXRlX2Nv
bW1vbl9wcmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb19yZWFsbG9jYXRlX2NvbW1vbl9w
cmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfZm9yX2ZsZXhfaW5s
aW5lKToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfZm9yX29iamNfaW5saW5lKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9pbm5hcmRzLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcC5jOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvaml0X2hlYXAuYzoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9taW5hbGln
bjMyX2hlYXAuYzoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBf
Y29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcC5j
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmM6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmg6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMu
aDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmg6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYzoKKyAgICAgICAgKHBh
c19sYXJnZV9oZWFwX2NvbnN0cnVjdCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RyeV9hbGxvY2F0ZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGVfYXJyYXkuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9j
YXRlX2ludHJpbnNpYy5oOiBBZGRlZC4KKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW50cmlu
c2ljX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2lu
dHJpbnNpY19pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oOgorICAgICAgICAocGFz
X3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19hbGxvY2F0ZV9jYWxsYmFjayk6CisgICAgICAgIChw
YXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljKToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0
ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2FsbG9jYXRlX2NhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcC5jOgorICAgICAgICAodGhpbmd5
X3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
dGhpbmd5X2hlYXBfY29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBD
aGFvc1Rlc3RzLmNwcDoKKyAgICAgICAgKGFkZElzb0hlYXBDaGFvc1Rlc3RzKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwOgorCiAyMDIxLTA5LTI5ICBCYXN1a2Ug
U3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4KIAogICAgICAgICBbYm1hbGxvY10gQ2h1
bmtIYXNoIGlzIG5vdCB1c2VkIHNpbmNlIHIyNjE2NjcKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4MzE3OCkK
KysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBAQAogCQkwRjVGRTdGMTI1QjYyMTBEMDAxODU5RkMg
LyogcGFzX2NvbXBhY3RfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdEQzI1QjYyMTBEMDAxODU5RkMgLyog
cGFzX2NvbXBhY3RfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3NEI5M0UxRjg5NzEzRTAwQjkzNUQzIC8q
IENyeXB0b1JhbmRvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY3NEI5M0MxRjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1JhbmRvbS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzRCOTNGMUY4OTcx
M0UwMEI5MzVEMyAvKiBDcnlwdG9SYW5kb20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NEI5M0QxRjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1Jh
bmRvbS5jcHAgKi87IH07CisJCTBGNzUyRDkyMjcwNjZGQ0IwMEFERjc0RCAvKiBwYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY3NTJEOTEyNzA2NkZDQjAwQURGNzREIC8qIHBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY3NTQ5ODIyNDg2OTc0MDAwMkE0QzdEIC8qIHBhc19hbGxvY2F0b3JfaW5kZXguaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzU0OTgwMjQ4Njk3
M0MwMDJBNEM3RCAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3NTQ5ODMyNDg2OTc0MjAwMkE0QzdEIC8q
IHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc1NDk4MTI0ODY5NzNDMDAyQTRDN0Qg
LyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdDOTJFMjI2RTU3Rjc1MDA2
QUYwMTIgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDIyNkU1N0Y3NDAw
NkFGMDEyIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDYxLDcgKzQ2Miw2
IEBACiAJCTBGQzQwQjYwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmFuZG9tLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEE4NDI0NTE0OThDMDA4
NzZEQTAgLyogcGFzX3JhbmRvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGQzQwQjYxMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRl
ZF92aWV3X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQzQwQTg1MjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0
MEI2MjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEE4
NjI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEZDNDBC
NjMyNDUxNDk5NDAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBB
ODcyNDUxNDk4QzAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
QzQwQjY0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxp
bmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0
MEE4ODI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5l
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
QzQwQjY1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9tYWxsb2MuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQTg5MjQ1MTQ5OEMwMDg3NkRB
MCAvKiBwYXNfcGFnZV9tYWxsb2MuYyAqLzsgfTsKIAkJMEZDNDBCNjYyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19yZXNlcnZlZF9tZW1vcnlfcHJvdmlkZXIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQThBMjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNf
cmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmMgKi87IH07CkBAIC03MjIsNiArNzIyLDcgQEAKIAkJ
MEY1RkU3REMyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2JpYXNpbmdfZGlyZWN0b3J5
X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9iaWFz
aW5nX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0
X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Rjc0QjkzQzFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IENyeXB0b1JhbmRvbS5oOyBwYXRoID0gYm1hbGxvYy9DcnlwdG9S
YW5kb20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3NEI5M0QxRjg5NzEzRTAw
QjkzNUQzIC8qIENyeXB0b1JhbmRvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBDcnlwdG9SYW5kb20uY3BwOyBwYXRoID0gYm1hbGxvYy9DcnlwdG9SYW5kb20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjc1MkQ5MTI3MDY2RkNCMDBBREY3NEQg
LyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNzU0OTgwMjQ4Njk3M0MwMDJBNEM3RCAvKiBwYXNfYWxsb2NhdG9yX2luZGV4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19hbGxvY2F0b3JfaW5kZXgu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0b3JfaW5kZXguaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3NTQ5ODEyNDg2OTczQzAwMkE0QzdEIC8qIHBhc19j
b21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4
X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjdDOTJEMjI2RTU3Rjc0MDA2
QUYwMTIgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2Vf
cmVzdWx0Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
c2NhdmVuZ2VfcmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTEyLDcg
KzExMTMsNiBAQAogCQkwRkM0MEE4NDI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3JhbmRvbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfcmFuZG9tLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfcmFuZG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGQzQwQTg1MjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5k
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBODYyNDUxNDk4QzAwODc2REEwIC8q
IHBhc19yZWFsbG9jYXRlX2hlYXBfdGVsZXBvcnRfcnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfcmVhbGxvY2F0ZV9oZWFwX3RlbGVwb3J0X3J1bGUuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19yZWFsbG9jYXRlX2hlYXBfdGVsZXBvcnRfcnVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkM0MEE4NzI0NTE0OThDMDA4NzZEQTAgLyog
cGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0
aXZlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQTg4MjQ1MTQ5OEMwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lubGluZXMu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBODkyNDUxNDk4QzAw
ODc2REEwIC8qIHBhc19wYWdlX21hbGxvYy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5h
bWUgPSBwYXNfcGFnZV9tYWxsb2MuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdl
X21hbGxvYy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEE4QTI0NTE0OThD
MDA4NzZEQTAgLyogcGFzX3Jlc2VydmVkX21lbW9yeV9wcm92aWRlci5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmM7IHBhdGgg
PSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY0LDcgKzE4NjQsNyBAQAogCQkJCTBGOEE4MDFD
MjVDRjkzOEEwMDc5MEI0QSAvKiBwYXNfdHJpX3N0YXRlLmggKi8sCiAJCQkJMEZDNDBBNTIyNDUx
NDk4ODAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCAqLywKIAkJCQkwRkM0MEEz
OTI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaCAqLywKLQkJCQkw
RkM0MEE4NzI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJp
bWl0aXZlLmggKi8sCisJCQkJMEY3NTJEOTEyNzA2NkZDQjAwQURGNzREIC8qIHBhc190cnlfYWxs
b2NhdGVfaW50cmluc2ljLmggKi8sCiAJCQkJMEZDNDBBMkIyNDUxNDk4NTAwODc2REEwIC8qIHBh
c190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmggKi8sCiAJCQkJMEZDNDBBNjUyNDUxNDk4OTAwODc2
REEwIC8qIHBhc190cnlfYWxsb2NhdGUuaCAqLywKIAkJCQkwRkM0MEEzMDI0NTE0OTg2MDA4NzZE
QTAgLyogcGFzX3RyeV9yZWFsbG9jYXRlLmggKi8sCkBAIC0yMTA5LDYgKzIxMDksNyBAQAogCQkJ
CTBGN0VCODI1MUY5NTQxQjAwMEYxQUJDQiAvKiBEZWZlcnJlZFRyaWdnZXJJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjdFQjgyMzFGOTU0MUIwMDBGMUFCQ0IgLyogRWxpZ2liaWxpdHlS
ZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODM4MUY5NTQxQjAwMEYxQUJDQiAvKiBF
bGlnaWJpbGl0eVJlc3VsdElubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzUyRDkyMjcw
NjZGQ0IwMEFERjc0RCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQ4OTVEOTIxQTNBMzE5QzAwMDYyMzVEIC8qIEVudmlyb25tZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRTQ4QkQzQjIzMjFFOEQ3MDBGMTM2RDAgLyogRmFpbHVyZUFjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QzgxOEY0OEQ3NTAwOTUwNzAyIC8qIEZpeGVkVmVj
dG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTI0OTcsNyArMjQ5OCw2IEBACiAJCQkJMEZDNDBCNDIy
NDUxNDk5NDAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwQjMwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MEIxODI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3RyeV9hbGxv
Y2F0ZV9jb21tb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzQwQjYzMjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQjBBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMEYyNDUxNDk5NDAwODc2REEwIC8qIHBh
c190cnlfcmVhbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1MTkzRjUyNjZDNDJCRjAw
NDgzQTJDIC8qIHBhc190cnlfc2hyaW5rLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvYm1hbGxvYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9ibWFsbG9jLmNwcAkocmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9ibWFsbG9jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDggKzIwMCw4IEBAIHZv
aWQgZW5hYmxlTWluaU1vZGUoKQogICAgIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9i
YWxhbmNpbmdfZW5hYmxlZF9mb3JfdXRpbGl0eSA9IHRydWU7CiAKICAgICAvLyBTd2l0Y2ggdG8g
Yml0Zml0IGFsbG9jYXRpb24gZm9yIGFueXRoaW5nIHRoYXQgaXNuJ3QgaXNvaGVhcGVkLgotICAg
IGJtYWxsb2NfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLm1heF9zZWdy
ZWdhdGVkX29iamVjdF9zaXplID0gMDsKLSAgICBibWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVf
cnVudGltZV9jb25maWcuYmFzZS5tYXhfYml0Zml0X29iamVjdF9zaXplID0gVUlOVF9NQVg7Cisg
ICAgYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZS5tYXhfc2VncmVnYXRlZF9v
YmplY3Rfc2l6ZSA9IDA7CisgICAgYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFz
ZS5tYXhfYml0Zml0X29iamVjdF9zaXplID0gVUlOVF9NQVg7CiAgICAgYm1hbGxvY19wcmltaXRp
dmVfcnVudGltZV9jb25maWcuYmFzZS5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IDA7CiAg
ICAgYm1hbGxvY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZS5tYXhfYml0Zml0X29iamVj
dF9zaXplID0gVUlOVF9NQVg7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9j
b21tb24uc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL2NvbW1vbi5zaAko
cmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2NvbW1vbi5zaAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogc2V0IC1lCiBzZXQgLXgKIAotY29uZmlnPURl
YnVnCitjb25maWc9UmVsZWFzZQogc2RrPW1hY29zeC5pbnRlcm5hbAogYXJjaHM9YmxhbmsKIHZh
cmlhbnRzPWFsbApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9jaGFvcy9DaGFvcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9jaGFvcy9DaGFvcy5j
cHAJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvY2hhb3Mv
Q2hhb3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjIsMTAgKzM2MiwxMCBAQCBpbnQgbWFpbihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgfQogCiAgICAgaWYgKCFlbmFibGVCaXRGaXQpCi0g
ICAgICAgIGlzb19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UubWF4X2Jp
dGZpdF9vYmplY3Rfc2l6ZSA9IDA7CisgICAgICAgIGlzb19pbnRyaW5zaWNfcnVudGltZV9jb25m
aWcuYmFzZS5tYXhfYml0Zml0X29iamVjdF9zaXplID0gMDsKIAogICAgIGlmICghZW5hYmxlU2Vn
cmVnYXRlZCkKLSAgICAgICAgaXNvX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcu
YmFzZS5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IDA7CisgICAgICAgIGlzb19pbnRyaW5z
aWNfcnVudGltZV9jb25maWcuYmFzZS5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IDA7CiAK
ICAgICBwYXNfc3RhdHVzX3JlcG9ydGVyX2VuYWJsZWQgPSBlbmFibGVTdGF0dXNSZXBvcnRlcjsK
IApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19o
ZWFwLmMJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL2JtYWxsb2NfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxMiArMzksMTIgQEAgcGFz
X2ludHJpbnNpY19oZWFwX3N1cHBvcnQgYm1hbGxvY19jb21tbwogICAgIFBBU19JTlRSSU5TSUNf
SEVBUF9TVVBQT1JUX0lOSVRJQUxJWkVSOwogCiBwYXNfaGVhcCBibWFsbG9jX2NvbW1vbl9wcmlt
aXRpdmVfaGVhcCA9Ci0gICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfSEVBUF9JTklUSUFMSVpF
UigKKyAgICBQQVNfSU5UUklOU0lDX0hFQVBfSU5JVElBTElaRVIoCiAgICAgICAgICZibWFsbG9j
X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAgICAgUEFTX1NJTVBMRV9UWVBFX0NSRUFURSgx
LCAxKSwKICAgICAgICAgYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAg
ICAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKLSAgICAgICAgJmJtYWxsb2NfaW50cmluc2ljX3By
aW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlKTsKKyAgICAgICAgJmJtYWxsb2NfaW50cmluc2lj
X3J1bnRpbWVfY29uZmlnLmJhc2UpOwogCiBwYXNfYWxsb2NhdG9yX2NvdW50cyBibWFsbG9jX2Fs
bG9jYXRvcl9jb3VudHM7CiAKQEAgLTEwNSw2ICsxMDUsMjggQEAgdm9pZCogYm1hbGxvY19pc29f
YWxsb2NhdGUocGFzX2hlYXBfcmVmKgogICAgIHJldHVybiBibWFsbG9jX2lzb19hbGxvY2F0ZV9p
bmxpbmUoaGVhcF9yZWYpOwogfQogCit2b2lkKiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJy
YXkocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50KQoreworICAgIHJldHVybiBi
bWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJyYXlfaW5saW5lKGhlYXBfcmVmLCBjb3VudCk7Cit9
CisKK3ZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5KHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYsIHNpemVfdCBjb3VudCkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19pc29fYWxsb2NhdGVfYXJy
YXlfaW5saW5lKGhlYXBfcmVmLCBjb3VudCk7Cit9CisKK3ZvaWQqIGJtYWxsb2NfdHJ5X2lzb19h
bGxvY2F0ZV9hcnJheV93aXRoX2FsaWdubWVudCgKKyAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVm
LCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIGJtYWxsb2Nf
dHJ5X2lzb19hbGxvY2F0ZV9hcnJheV93aXRoX2FsaWdubWVudF9pbmxpbmUoaGVhcF9yZWYsIGNv
dW50LCBhbGlnbm1lbnQpOworfQorCit2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV93
aXRoX2FsaWdubWVudCgKKyAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQs
IHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2Fy
cmF5X3dpdGhfYWxpZ25tZW50X2lubGluZShoZWFwX3JlZiwgY291bnQsIGFsaWdubWVudCk7Cit9
CisKIHBhc19oZWFwKiBibWFsbG9jX2hlYXBfcmVmX2dldF9oZWFwKHBhc19oZWFwX3JlZiogaGVh
cF9yZWYpCiB7CiAgICAgcmV0dXJuIHBhc19lbnN1cmVfaGVhcChoZWFwX3JlZiwgcGFzX25vcm1h
bF9oZWFwX3JlZl9raW5kLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
Ym1hbGxvY19oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvYm1hbGxvY19oZWFwLmgJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2
ICs1NSwxNCBAQCBQQVNfQVBJIHZvaWQqIGJtYWxsb2NfcmVhbGxvY2F0ZSh2b2lkKiBvCiBQQVNf
QVBJIHZvaWQqIGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVm
KTsKIFBBU19BUEkgdm9pZCogYm1hbGxvY19pc29fYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFw
X3JlZik7CiAKK1BBU19BUEkgdm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5KHBh
c19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCk7CitQQVNfQVBJIHZvaWQqIGJtYWxs
b2NfaXNvX2FsbG9jYXRlX2FycmF5KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3Vu
dCk7CisKK1BBU19BUEkgdm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X3dpdGhf
YWxpZ25tZW50KAorICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6
ZV90IGFsaWdubWVudCk7CitQQVNfQVBJIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5
X3dpdGhfYWxpZ25tZW50KAorICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3Vu
dCwgc2l6ZV90IGFsaWdubWVudCk7CisKIFBBU19BUEkgcGFzX2hlYXAqIGJtYWxsb2NfaGVhcF9y
ZWZfZ2V0X2hlYXAocGFzX2hlYXBfcmVmKiBoZWFwX3JlZik7CiAKIFBBU19BUEkgdm9pZCogYm1h
bGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5KHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBf
cmVmLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFw
X2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L2JtYWxsb2NfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkp
CkBAIC00MSw3ICs0MSw3IEBAIHBhc19oZWFwX2NvbmZpZyBibWFsbG9jX2hlYXBfY29uZmlnID0g
Qk0KIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICBibWFsbG9jLCBCTUFM
TE9DLAogICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCi0gICAgLmludHJp
bnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29u
ZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CisgICAgLmludHJpbnNpY192aWV3
X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3
X2NhY2hlX2NhcGFjaXR5KTsKIAogdm9pZCBibWFsbG9jX2hlYXBfY29uZmlnX2FjdGl2YXRlKHZv
aWQpCiB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hl
YXBfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL2JtYWxsb2NfaGVhcF9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9pbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDcgKzMxLDggQEAKICNpbmNsdWRlICJibWFsbG9jX2hlYXBfaW5uYXJkcy5o
IgogI2luY2x1ZGUgInBhc19kZWFsbG9jYXRlLmgiCiAjaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0
ZS5oIgotI2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oIgor
I2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCIKKyNpbmNsdWRlICJwYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpYy5oIgogI2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZl
LmgiCiAjaW5jbHVkZSAicGFzX3RyeV9yZWFsbG9jYXRlLmgiCiAKQEAgLTM5LDEwICs0MCwxMCBA
QAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLVBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJ
TlNJQ19QUklNSVRJVkUoCitQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUMoCiAgICAg
Ym1hbGxvY190cnlfYWxsb2NhdGVfaW1wbCwKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAotICAg
ICZibWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKKyAgICAm
Ym1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxv
Y2F0b3JfY291bnRzLAogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKICAgICAm
Ym1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXAsCkBAIC01MSwzMCArNTIsMzAgQEAgUEFTX0NS
RUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogCiAvKiBOZWVkIHRvIGNyZWF0ZSBh
IGRpZmZlcmVudCBzZXQgb2YgYWxsb2NhdGlvbiBmdW5jdGlvbnMgaWYgd2Ugd2FudCB0byBwYXNz
IG5vbnRyaXZpYWwgYWxpZ25tZW50LAogICAgc2luY2UgaW4gdGhhdCBjYXNlIHdlIGRvIG5vdCB3
YW50IHRvIHVzZSB0aGUgZmFuY3kgbG9va3VwIHBhdGguICovCi1QQVNfQ1JFQVRFX1RSWV9BTExP
Q0FURV9JTlRSSU5TSUNfUFJJTUlUSVZFKAorUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklO
U0lDKAogICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2ltcGwsCiAgICAg
Qk1BTExPQ19IRUFQX0NPTkZJRywKLSAgICAmYm1hbGxvY19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1
bnRpbWVfY29uZmlnLmJhc2UsCisgICAgJmJtYWxsb2NfaW50cmluc2ljX3J1bnRpbWVfY29uZmln
LmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKICAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfaWRlbnRpdHksCiAgICAgJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAog
ICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRy
aW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKLVBBU19DUkVBVEVfVFJZX0FMTE9DQVRF
X0lOVFJJTlNJQ19QUklNSVRJVkUoCitQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUMo
CiAgICAgYm1hbGxvY19hbGxvY2F0ZV9pbXBsLAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCi0g
ICAgJmJtYWxsb2NfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAorICAg
ICZibWFsbG9jX2ludHJpbnNpY19ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZibWFsbG9jX2Fs
bG9jYXRvcl9jb3VudHMsCiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9y
LAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmYm1hbGxvY19jb21t
b25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfZGVz
aWduYXRlZCk7CiAKLVBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVRJVkUo
CitQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUMoCiAgICAgYm1hbGxvY19hbGxvY2F0
ZV93aXRoX2FsaWdubWVudF9pbXBsLAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCi0gICAgJmJt
YWxsb2NfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAorICAgICZibWFs
bG9jX2ludHJpbnNpY19ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZibWFsbG9jX2FsbG9jYXRv
cl9jb3VudHMsCiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAg
ICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKQEAgLTEyNyw3ICsxMjgsNyBAQCBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfaW5saW5l
KHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJu
ICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICByZXR1
cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWMoCiAgICAgICAgIG9sZF9wdHIs
CiAgICAgICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3Np
emUsCkBAIC0xNDEsNyArMTQyLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBi
bWFsbG9jX3JlYWxsb2NhdGVfaW5saW5lKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVf
bW9kZSkKIHsKLSAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNf
cHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNp
YygKICAgICAgICAgb2xkX3B0ciwKICAgICAgICAgJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9o
ZWFwLAogICAgICAgICBuZXdfc2l6ZSwKQEAgLTE3NSw2ICsxNzYsNDQgQEAgc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfaQogICAgIHJldHVybiBibWFsbG9jX2lzb19hbGxv
Y2F0ZV9pbXBsKGhlYXBfcmVmKS5wdHI7CiB9CiAKK1BBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FS
UkFZKAorICAgIGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9hcnJheV9pbXBsLAorICAgIEJNQUxM
T0NfSEVBUF9DT05GSUcsCisgICAgJmJtYWxsb2NfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwK
KyAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9pZGVudGl0eSk7CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3Ry
eV9pc29fYWxsb2NhdGVfYXJyYXlfaW5saW5lKAorICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYs
IHNpemVfdCBjb3VudCkKK3sKKyAgICByZXR1cm4gYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2Fy
cmF5X2ltcGwoaGVhcF9yZWYsIGNvdW50LCAxKS5wdHI7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJyYXlfd2l0aF9hbGlnbm1l
bnRfaW5saW5lKAorICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6
ZV90IGFsaWdubWVudCkKK3sKKyAgICByZXR1cm4gYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2Fy
cmF5X2ltcGwoaGVhcF9yZWYsIGNvdW50LCBhbGlnbm1lbnQpLnB0cjsKK30KKworUEFTX0NSRUFU
RV9UUllfQUxMT0NBVEVfQVJSQVkoCisgICAgYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfaW1w
bCwKKyAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAorICAgICZibWFsbG9jX3R5cGVkX3J1bnRpbWVf
Y29uZmlnLmJhc2UsCisgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKKyAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOworCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCogYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfaW5saW5lKAorICAgIHBhc19oZWFw
X3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19pc29f
YWxsb2NhdGVfYXJyYXlfaW1wbChoZWFwX3JlZiwgY291bnQsIDEpLnB0cjsKK30KKworc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X3dpdGhf
YWxpZ25tZW50X2lubGluZSgKKyAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291
bnQsIHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIGJtYWxsb2NfaXNvX2FsbG9jYXRl
X2FycmF5X2ltcGwoaGVhcF9yZWYsIGNvdW50LCBhbGlnbm1lbnQpLnB0cjsKK30KKwogUEFTX0NS
RUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1
eGlsaWFyeV9pbXBsLAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwLmMJKHJldmlzaW9uIDI4MzE3
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwLmMJKHdv
cmtpbmcgY29weSkKQEAgLTM4LDEyICszOCwxMiBAQCBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9y
dCBob3RiaXRfY29tbW9uCiAgICAgUEFTX0lOVFJJTlNJQ19IRUFQX1NVUFBPUlRfSU5JVElBTEla
RVI7CiAKIHBhc19oZWFwIGhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXAgPQotICAgIFBBU19J
TlRSSU5TSUNfUFJJTUlUSVZFX0hFQVBfSU5JVElBTElaRVIoCisgICAgUEFTX0lOVFJJTlNJQ19I
RUFQX0lOSVRJQUxJWkVSKAogICAgICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwK
ICAgICAgICAgUEFTX1NJTVBMRV9UWVBFX0NSRUFURSgxLCAxKSwKICAgICAgICAgaG90Yml0X2Nv
bW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgICAgICBIT1RCSVRfSEVBUF9DT05GSUcs
Ci0gICAgICAgICZob3RiaXRfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNl
KTsKKyAgICAgICAgJmhvdGJpdF9pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSk7CiAKIHBh
c19hbGxvY2F0b3JfY291bnRzIGhvdGJpdF9hbGxvY2F0b3JfY291bnRzOwogCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25m
aWcuYwkocmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvaG90Yml0X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAg
cGFzX2hlYXBfY29uZmlnIGhvdGJpdF9oZWFwX2NvbmZpZyA9IEhPVAogUEFTX0JBU0lDX0hFQVBf
Q09ORklHX0RFRklOSVRJT05TKAogICAgIGhvdGJpdCwgSE9UQklULAogICAgIC5hbGxvY2F0ZV9w
YWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCi0gICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19j
YWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19j
YWNoZV9jYXBhY2l0eSk7CisgICAgLmludHJpbnNpY192aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFz
X2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAog
dm9pZCBob3RiaXRfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKIHsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2lubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9pbmxpbmVz
LmgJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L2hvdGJpdF9oZWFwX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTcgKzMwLDE3IEBA
CiAjaW5jbHVkZSAiaG90Yml0X2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAiaG90Yml0X2hlYXBf
aW5uYXJkcy5oIgogI2luY2x1ZGUgInBhc19kZWFsbG9jYXRlLmgiCi0jaW5jbHVkZSAicGFzX3Ry
eV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmgiCisjaW5jbHVkZSAicGFzX3RyeV9hbGxv
Y2F0ZV9pbnRyaW5zaWMuaCIKICNpbmNsdWRlICJwYXNfdHJ5X3JlYWxsb2NhdGUuaCIKIAogI2lm
IFBBU19FTkFCTEVfSE9UQklUCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotUEFTX0NSRUFURV9U
UllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVElWRSgKK1BBU19DUkVBVEVfVFJZX0FMTE9DQVRF
X0lOVFJJTlNJQygKICAgICBob3RiaXRfdHJ5X2FsbG9jYXRlX2ltcGwsCiAgICAgSE9UQklUX0hF
QVBfQ09ORklHLAotICAgICZob3RiaXRfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZp
Zy5iYXNlLAorICAgICZob3RiaXRfaW50cmluc2ljX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAg
JmhvdGJpdF9hbGxvY2F0b3JfY291bnRzLAogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVu
dGl0eSwKICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKQEAgLTQ5LDEwICs0OSwx
MCBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAKIC8qIE5lZWQg
dG8gY3JlYXRlIGEgZGlmZmVyZW50IHNldCBvZiBhbGxvY2F0aW9uIGZ1bmN0aW9ucyBpZiB3ZSB3
YW50IHRvIHBhc3Mgbm9udHJpdmlhbCBhbGlnbm1lbnQsCiAgICBzaW5jZSBpbiB0aGF0IGNhc2Ug
d2UgZG8gbm90IHdhbnQgdG8gdXNlIHRoZSBmYW5jeSBsb29rdXAgcGF0aC4gKi8KLVBBU19DUkVB
VEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVRJVkUoCitQQVNfQ1JFQVRFX1RSWV9BTExP
Q0FURV9JTlRSSU5TSUMoCiAgICAgaG90Yml0X3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9p
bXBsLAogICAgIEhPVEJJVF9IRUFQX0NPTkZJRywKLSAgICAmaG90Yml0X2ludHJpbnNpY19wcmlt
aXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKKyAgICAmaG90Yml0X2ludHJpbnNpY19ydW50aW1l
X2NvbmZpZy5iYXNlLAogICAgICZob3RiaXRfYWxsb2NhdG9yX2NvdW50cywKICAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCiAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hl
YXAsCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogaG90
Yml0X3RyeV9yZWFsbG9jYXRlX2lubGluZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUg
ZnJlZV9tb2RlKQogewotICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJp
bnNpY19wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50
cmluc2ljKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRp
dmVfaGVhcCwKICAgICAgICAgbmV3X3NpemUsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9pc29faGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL2lzb19oZWFwLmMJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcg
KzM2LDcgQEAKICNpbmNsdWRlICJwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRf
bWVtb3J5LmgiCiAjaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0ZS5oIgogI2luY2x1ZGUgInBhc190
cnlfYWxsb2NhdGVfYXJyYXkuaCIKLSNpbmNsdWRlICJwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNp
Y19wcmltaXRpdmUuaCIKKyNpbmNsdWRlICJwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oIgog
I2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmgiCiAjaW5jbHVkZSAicGFzX3Ry
eV9yZWFsbG9jYXRlLmgiCiAKQEAgLTQ0LDE4ICs0NCwxOCBAQCBwYXNfaW50cmluc2ljX2hlYXBf
c3VwcG9ydCBpc29fY29tbW9uX3ByCiAgICAgUEFTX0lOVFJJTlNJQ19IRUFQX1NVUFBPUlRfSU5J
VElBTElaRVI7CiAKIHBhc19oZWFwIGlzb19jb21tb25fcHJpbWl0aXZlX2hlYXAgPQotICAgIFBB
U19JTlRSSU5TSUNfUFJJTUlUSVZFX0hFQVBfSU5JVElBTElaRVIoCisgICAgUEFTX0lOVFJJTlNJ
Q19IRUFQX0lOSVRJQUxJWkVSKAogICAgICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwK
ICAgICAgICAgUEFTX1NJTVBMRV9UWVBFX0NSRUFURSgxLCAxKSwKICAgICAgICAgaXNvX2NvbW1v
bl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgICAgICBJU09fSEVBUF9DT05GSUcsCi0gICAg
ICAgICZpc29faW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlKTsKKyAgICAg
ICAgJmlzb19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSk7CiAKIHBhc19hbGxvY2F0b3Jf
Y291bnRzIGlzb19hbGxvY2F0b3JfY291bnRzOwogCiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVh
cF9tYXAgaXNvX3ByaW1pdGl2ZV9keW5hbWljX2hlYXBfbWFwID0KICAgICBQQVNfRFlOQU1JQ19Q
UklNSVRJVkVfSEVBUF9NQVBfSU5JVElBTElaRVIoaXNvX3ByaW1pdGl2ZV9oZWFwX3JlZl9jb25z
dHJ1Y3QpOwotcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwIGlzb19vYmpjX2R5bmFtaWNf
aGVhcF9tYXAgPQorcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwIGlzb19mbGV4X2R5bmFt
aWNfaGVhcF9tYXAgPQogICAgIFBBU19EWU5BTUlDX1BSSU1JVElWRV9IRUFQX01BUF9JTklUSUFM
SVpFUihpc29fcHJpbWl0aXZlX2hlYXBfcmVmX2NvbnN0cnVjdCk7CiAKIHZvaWQqIGlzb190cnlf
YWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplX3Qgc2l6ZSkKQEAgLTI2NCw5ICsyNjQsOSBA
QCB2b2lkKiBpc29fcmVhbGxvY2F0ZV9wcmltaXRpdmUodm9pZCogb2xkCiAgICAgcmV0dXJuIGlz
b19yZWFsbG9jYXRlX3ByaW1pdGl2ZV9pbmxpbmUob2xkX3B0ciwgaGVhcF9yZWYsIG5ld19zaXpl
LCBmcmVlX21vZGUpOwogfQogCi12b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2Zvcl9vYmpjKGNvbnN0
IHZvaWQqIGNscywgc2l6ZV90IHNpemUpCit2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2Zvcl9mbGV4
KGNvbnN0IHZvaWQqIGNscywgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIGlzb190cnlfYWxs
b2NhdGVfZm9yX29iamNfaW5saW5lKGNscywgc2l6ZSk7CisgICAgcmV0dXJuIGlzb190cnlfYWxs
b2NhdGVfZm9yX2ZsZXhfaW5saW5lKGNscywgc2l6ZSk7CiB9CiAKIGJvb2wgaXNvX2hhc19vYmpl
Y3Qodm9pZCogcHRyKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNv
X2hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9p
c29faGVhcC5oCShyZXZpc2lvbiAyODMxNzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9pc29faGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcgQEAgUEFT
X0FQSSB2b2lkKiBpc29fcmVhbGxvY2F0ZV9wcmltaXRpdmUodgogCiBQQVNfQVBJIHBhc19oZWFw
KiBpc29fcHJpbWl0aXZlX2hlYXBfcmVmX2dldF9oZWFwKHBhc19wcmltaXRpdmVfaGVhcF9yZWYq
IGhlYXBfcmVmKTsKIAotUEFTX0FQSSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2Zvcl9vYmpjKGNv
bnN0IHZvaWQqIGNscywgc2l6ZV90IHNpemUpOworUEFTX0FQSSB2b2lkKiBpc29fdHJ5X2FsbG9j
YXRlX2Zvcl9mbGV4KGNvbnN0IHZvaWQqIGNscywgc2l6ZV90IHNpemUpOwogCiBQQVNfQVBJIGJv
b2wgaXNvX2hhc19vYmplY3Qodm9pZCopOwogUEFTX0FQSSBzaXplX3QgaXNvX2dldF9hbGxvY2F0
aW9uX3NpemUodm9pZCopOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
aXNvX2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw3ICszOCw3IEBAIHBhc19oZWFwX2NvbmZpZyBpc29faGVhcF9jb25maWcgPSBJU09f
SEUKIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICBpc28sIElTTywKICAg
ICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNlLAotICAgIC5pbnRyaW5zaWNfcHJp
bWl0aXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJv
X3ZpZXdfY2FjaGVfY2FwYWNpdHkpOworICAgIC5pbnRyaW5zaWNfdmlld19jYWNoZV9jYXBhY2l0
eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAK
ICNlbmRpZiAvKiBQQVNfRU5BQkxFX0lTTyAqLwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29faGVhcF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfaW5saW5lcy5oCShyZXZpc2lvbiAyODMx
NzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9pbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJwYXNfaGFzX29i
amVjdC5oIgogI2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGUuaCIKICNpbmNsdWRlICJwYXNfdHJ5
X2FsbG9jYXRlX2FycmF5LmgiCi0jaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNf
cHJpbWl0aXZlLmgiCisjaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaCIKICNp
bmNsdWRlICJwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oIgogI2luY2x1ZGUgInBhc190cnlf
cmVhbGxvY2F0ZS5oIgogCkBAIC00MywxMCArNDMsMTAgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9D
OwogCi1QQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUSVZFKAorUEFTX0NS
RUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDKAogICAgIGlzb190cnlfYWxsb2NhdGVfY29tbW9u
X3ByaW1pdGl2ZV9pbXBsLAogICAgIElTT19IRUFQX0NPTkZJRywKLSAgICAmaXNvX2ludHJpbnNp
Y19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKKyAgICAmaXNvX2ludHJpbnNpY19ydW50
aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKICAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFw
LApAQCAtNTUsMzAgKzU1LDMwIEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19Q
UklNSVQKIAogLyogTmVlZCB0byBjcmVhdGUgYSBkaWZmZXJlbnQgc2V0IG9mIGFsbG9jYXRpb24g
ZnVuY3Rpb25zIGlmIHdlIHdhbnQgdG8gcGFzcyBub250cml2aWFsIGFsaWdubWVudCwKICAgIHNp
bmNlIGluIHRoYXQgY2FzZSB3ZSBkbyBub3Qgd2FudCB0byB1c2UgdGhlIGZhbmN5IGxvb2t1cCBw
YXRoLiAqLwotUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVElWRSgKK1BB
U19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQygKICAgICBpc29fdHJ5X2FsbG9jYXRlX2Nv
bW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW1wbCwKICAgICBJU09fSEVBUF9DT05GSUcs
Ci0gICAgJmlzb19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCisgICAg
Jmlzb19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9j
b3VudHMsCiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubywKICAgICAmaXNvX2Nv
bW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBw
b3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKLVBBU19D
UkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVRJVkUoCitQQVNfQ1JFQVRFX1RSWV9B
TExPQ0FURV9JTlRSSU5TSUMoCiAgICAgaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1w
bCwKICAgICBJU09fSEVBUF9DT05GSUcsCi0gICAgJmlzb19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1
bnRpbWVfY29uZmlnLmJhc2UsCisgICAgJmlzb19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFz
ZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyYXNoX29uX2Vycm9yLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZp
c29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFw
X2lzX25vdF9kZXNpZ25hdGVkKTsKIAotUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lD
X1BSSU1JVElWRSgKK1BBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQygKICAgICBpc29f
YWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbXBsLAogICAgIElTT19I
RUFQX0NPTkZJRywKLSAgICAmaXNvX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcu
YmFzZSwKKyAgICAmaXNvX2ludHJpbnNpY19ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29f
YWxsb2NhdG9yX2NvdW50cywKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJy
b3IsCiAgICAgJmlzb19jb21tb25fcHJpbWl0aXZlX2hlYXAsCkBAIC0xMjUsNyArMTI1LDcgQEAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBpc29fdHJ5X3JlYWxsb2NhdGVfY29tbW9u
X3ByaW1pdGl2ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVf
bW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVf
aW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0
ZV9pbnRyaW5zaWMoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZpc29fY29tbW9uX3ByaW1p
dGl2ZV9oZWFwLAogICAgICAgICBuZXdfc2l6ZSwKQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGlzb19yZWFsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVf
aW5saW5lKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUp
CiB7Ci0gICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1p
dGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWMoCiAg
ICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAg
ICAgICBuZXdfc2l6ZSwKQEAgLTMzMywxOCArMzMzLDE4IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBpc29fcmVhbGwKIH0KIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlU
SVZFKAotICAgIGlzb190cnlfYWxsb2NhdGVfZm9yX29iamNfaW1wbCwKKyAgICBpc29fdHJ5X2Fs
bG9jYXRlX2Zvcl9mbGV4X2ltcGwsCiAgICAgSVNPX0hFQVBfQ09ORklHLAotICAgICZpc29fb2Jq
Y19ydW50aW1lX2NvbmZpZy5iYXNlLAorICAgICZpc29fZmxleF9ydW50aW1lX2NvbmZpZy5iYXNl
LAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
c2V0X2Vycm5vKTsKIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb190cnlfYWxs
b2NhdGVfZm9yX29iamNfaW5saW5lKGNvbnN0IHZvaWQqIGNscywgc2l6ZV90IHNpemUpCitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3RyeV9hbGxvY2F0ZV9mb3JfZmxleF9pbmxp
bmUoY29uc3Qgdm9pZCogY2xzLCBzaXplX3Qgc2l6ZSkKIHsKICAgICByZXR1cm4gKHZvaWQqKXBh
c19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAotICAgICAgICBpc29fdHJ5X2FsbG9jYXRlX2Zvcl9v
YmpjX2ltcGwoCisgICAgICAgIGlzb190cnlfYWxsb2NhdGVfZm9yX2ZsZXhfaW1wbCgKICAgICAg
ICAgICAgIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcF9maW5kKAotICAgICAgICAgICAg
ICAgICZpc29fb2JqY19keW5hbWljX2hlYXBfbWFwLCBjbHMsIHNpemUpLAorICAgICAgICAgICAg
ICAgICZpc29fZmxleF9keW5hbWljX2hlYXBfbWFwLCBjbHMsIHNpemUpLAogICAgICAgICAgICAg
c2l6ZSwgMSksCiAgICAgICAgIHNpemUpLmJlZ2luOwogfQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfaW5uYXJkcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2lubmFyZHMuaAkocmV2aXNpb24g
MjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfaW5u
YXJkcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIFBBU19BUEkgZXh0ZXJuIHBh
c19pbnRyaW5zaWNfaGVhcF9zdXBwb3IKIFBBU19BUEkgZXh0ZXJuIHBhc19hbGxvY2F0b3JfY291
bnRzIGlzb19hbGxvY2F0b3JfY291bnRzOwogCiBQQVNfQVBJIGV4dGVybiBwYXNfZHluYW1pY19w
cmltaXRpdmVfaGVhcF9tYXAgaXNvX3ByaW1pdGl2ZV9keW5hbWljX2hlYXBfbWFwOwotUEFTX0FQ
SSBleHRlcm4gcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwIGlzb19vYmpjX2R5bmFtaWNf
aGVhcF9tYXA7CitQQVNfQVBJIGV4dGVybiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAg
aXNvX2ZsZXhfZHluYW1pY19oZWFwX21hcDsKIAogUEFTX0VORF9FWFRFUk5fQzsKIApJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcC5jCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXAuYwko
cmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNv
X3Rlc3RfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNywyMyArMzcsMjMgQEAKICNpbmNsdWRl
ICJwYXNfZGVhbGxvY2F0ZS5oIgogI2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGUuaCIKICNpbmNs
dWRlICJwYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgiCi0jaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0
ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmgiCisjaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWMuaCIKIAogcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQgaXNvX3Rlc3RfY29tbW9uX3By
aW1pdGl2ZV9oZWFwX3N1cHBvcnQgPQogICAgIFBBU19JTlRSSU5TSUNfSEVBUF9TVVBQT1JUX0lO
SVRJQUxJWkVSOwogCiBwYXNfaGVhcCBpc29fdGVzdF9jb21tb25fcHJpbWl0aXZlX2hlYXAgPQot
ICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0hFQVBfSU5JVElBTElaRVIoCisgICAgUEFTX0lO
VFJJTlNJQ19IRUFQX0lOSVRJQUxJWkVSKAogICAgICAgICAmaXNvX3Rlc3RfY29tbW9uX3ByaW1p
dGl2ZV9oZWFwLAogICAgICAgICBQQVNfU0lNUExFX1RZUEVfQ1JFQVRFKDEsIDEpLAogICAgICAg
ICBpc29fdGVzdF9jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICAgICAgSVNPX1RF
U1RfSEVBUF9DT05GSUcsCi0gICAgICAgICZpc29fdGVzdF9pbnRyaW5zaWNfcHJpbWl0aXZlX3J1
bnRpbWVfY29uZmlnLmJhc2UpOworICAgICAgICAmaXNvX3Rlc3RfaW50cmluc2ljX3J1bnRpbWVf
Y29uZmlnLmJhc2UpOwogCi1QQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlU
SVZFKAorUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDKAogICAgIHRlc3RfYWxsb2Nh
dGVfY29tbW9uX3ByaW1pdGl2ZSwKICAgICBJU09fVEVTVF9IRUFQX0NPTkZJRywKLSAgICAmaXNv
X3Rlc3RfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAorICAgICZpc29f
dGVzdF9pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9j
b3VudHMsCiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZp
c29fdGVzdF9jb21tb25fcHJpbWl0aXZlX2hlYXAsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmMJKHJldmlz
aW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0
X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcGFzX2hlYXBf
Y29uZmlnIGlzb190ZXN0X2hlYXBfY29uZmlnID0gSQogUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RF
RklOSVRJT05TKAogICAgIGlzb190ZXN0LCBJU09fVEVTVCwKICAgICAuYWxsb2NhdGVfcGFnZV9z
aG91bGRfemVybyA9IGZhbHNlLAotICAgIC5pbnRyaW5zaWNfcHJpbWl0aXZlX3ZpZXdfY2FjaGVf
Y2FwYWNpdHkgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNp
dHkpOworICAgIC5pbnRyaW5zaWNfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKICNlbmRpZiAvKiBQQVNfRU5B
QkxFX0lTT19URVNUICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L2ppdF9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvaml0X2hlYXAuYwkocmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvaml0X2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMzQsMTAgKzM0LDEwIEBA
CiAjaW5jbHVkZSAiaml0X2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2RlYWxsb2NhdGUu
aCIKICNpbmNsdWRlICJwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oIgotI2luY2x1ZGUgInBhc190
cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oIgorI2luY2x1ZGUgInBhc190cnlfYWxs
b2NhdGVfaW50cmluc2ljLmgiCiAjaW5jbHVkZSAicGFzX3RyeV9zaHJpbmsuaCIKIAotcGFzX2hl
YXAgaml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCA9IFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0hF
QVBfSU5JVElBTElaRVIoCitwYXNfaGVhcCBqaXRfY29tbW9uX3ByaW1pdGl2ZV9oZWFwID0gUEFT
X0lOVFJJTlNJQ19IRUFQX0lOSVRJQUxJWkVSKAogICAgICZqaXRfY29tbW9uX3ByaW1pdGl2ZV9o
ZWFwLAogICAgIE5VTEwsCiAgICAgaml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LApA
QCAtNjAsNyArNjAsNyBAQCB2b2lkIGppdF9oZWFwX2FkZF9mcmVzaF9tZW1vcnkocGFzX3Jhbmdl
CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKIH0KIAotUEFTX0NSRUFURV9UUllfQUxMT0NB
VEVfSU5UUklOU0lDX1BSSU1JVElWRSgKK1BBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJ
QygKICAgICBqaXRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbCwKICAgICBKSVRf
SEVBUF9DT05GSUcsCiAgICAgJmppdF9oZWFwX3J1bnRpbWVfY29uZmlnLApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmMJKHJl
dmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFs
aWduMzJfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwyMyArMzYsMjMgQEAKICNpbmNsdWRl
ICJwYXNfZGVhbGxvY2F0ZS5oIgogI2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGUuaCIKICNpbmNs
dWRlICJwYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgiCi0jaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0
ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmgiCisjaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWMuaCIKIAogcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQgbWluYWxpZ24zMl9jb21tb25f
cHJpbWl0aXZlX2hlYXBfc3VwcG9ydCA9CiAgICAgUEFTX0lOVFJJTlNJQ19IRUFQX1NVUFBPUlRf
SU5JVElBTElaRVI7CiAKIHBhc19oZWFwIG1pbmFsaWduMzJfY29tbW9uX3ByaW1pdGl2ZV9oZWFw
ID0KLSAgICBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9IRUFQX0lOSVRJQUxJWkVSKAorICAgIFBB
U19JTlRSSU5TSUNfSEVBUF9JTklUSUFMSVpFUigKICAgICAgICAgJm1pbmFsaWduMzJfY29tbW9u
X3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBQQVNfU0lNUExFX1RZUEVfQ1JFQVRFKDEsIDEpLAog
ICAgICAgICBtaW5hbGlnbjMyX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgICAg
ICBNSU5BTElHTjMyX0hFQVBfQ09ORklHLAotICAgICAgICAmbWluYWxpZ24zMl9pbnRyaW5zaWNf
cHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UpOworICAgICAgICAmbWluYWxpZ24zMl9pbnRy
aW5zaWNfcnVudGltZV9jb25maWcuYmFzZSk7CiAKLVBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lO
VFJJTlNJQ19QUklNSVRJVkUoCitQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUMoCiAg
ICAgdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlLAogICAgIE1JTkFMSUdOMzJfSEVBUF9D
T05GSUcsCi0gICAgJm1pbmFsaWduMzJfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZp
Zy5iYXNlLAorICAgICZtaW5hbGlnbjMyX2ludHJpbnNpY19ydW50aW1lX2NvbmZpZy5iYXNlLAog
ICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jh
c2hfb25fZXJyb3IsCiAgICAgJm1pbmFsaWduMzJfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLApJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZp
Zy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFs
aWduMzJfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw3ICs0MCw3IEBAIHBhc19oZWFwX2NvbmZpZyBtaW5hbGlnbjMyX2hlYXBfY29uZmln
ID0KIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICBtaW5hbGlnbjMyLCBN
SU5BTElHTjMyLAogICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCi0gICAg
LmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CisgICAgLmludHJpbnNp
Y192aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2
ZV92aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAogdm9pZCBtaW5hbGlnbjMyX2hlYXBfY29uZmlnX2Fj
dGl2YXRlKHZvaWQpCiB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YWdlc2l6ZTY0a19oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcC5jCShyZXZpc2lvbiAyODMxNzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDIzICszNiwyMyBAQAogI2luY2x1ZGUgInBhc19kZWFsbG9jYXRlLmgiCiAjaW5j
bHVkZSAicGFzX3RyeV9hbGxvY2F0ZS5oIgogI2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGVfYXJy
YXkuaCIKLSNpbmNsdWRlICJwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaCIK
KyNpbmNsdWRlICJwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oIgogCiBwYXNfaW50cmluc2lj
X2hlYXBfc3VwcG9ydCBwYWdlc2l6ZTY0a19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCA9
CiAgICAgUEFTX0lOVFJJTlNJQ19IRUFQX1NVUFBPUlRfSU5JVElBTElaRVI7CiAKIHBhc19oZWFw
IHBhZ2VzaXplNjRrX2NvbW1vbl9wcmltaXRpdmVfaGVhcCA9Ci0gICAgUEFTX0lOVFJJTlNJQ19Q
UklNSVRJVkVfSEVBUF9JTklUSUFMSVpFUigKKyAgICBQQVNfSU5UUklOU0lDX0hFQVBfSU5JVElB
TElaRVIoCiAgICAgICAgICZwYWdlc2l6ZTY0a19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAg
ICAgIFBBU19TSU1QTEVfVFlQRV9DUkVBVEUoMSwgMSksCiAgICAgICAgIHBhZ2VzaXplNjRrX2Nv
bW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgICAgICBQQUdFU0laRTY0S19IRUFQX0NP
TkZJRywKLSAgICAgICAgJnBhZ2VzaXplNjRrX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9j
b25maWcuYmFzZSk7CisgICAgICAgICZwYWdlc2l6ZTY0a19pbnRyaW5zaWNfcnVudGltZV9jb25m
aWcuYmFzZSk7CiAKLVBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVRJVkUo
CitQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUMoCiAgICAgdGVzdF9hbGxvY2F0ZV9j
b21tb25fcHJpbWl0aXZlLAogICAgIFBBR0VTSVpFNjRLX0hFQVBfQ09ORklHLAotICAgICZwYWdl
c2l6ZTY0a19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCisgICAgJnBh
Z2VzaXplNjRrX2ludHJpbnNpY19ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2Nh
dG9yX2NvdW50cywKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCiAg
ICAgJnBhZ2VzaXplNjRrX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9j
b25maWcuYwkocmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtNDAsNyAr
NDAsNyBAQCBwYXNfaGVhcF9jb25maWcgcGFnZXNpemU2NGtfaGVhcF9jb25maWcgCiBQQVNfQkFT
SUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCiAgICAgcGFnZXNpemU2NGssIFBBR0VTSVpFNjRL
LAogICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCi0gICAgLmludHJpbnNp
Y19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmln
X3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CisgICAgLmludHJpbnNpY192aWV3X2NhY2hlX2Nh
cGFjaXR5ID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5
KTsKIAogdm9pZCBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZ19hY3RpdmF0ZSh2b2lkKQogewpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfY29uZmlnX3V0aWxzLmgJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNTAsMTAgKzM1MCwxMCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgUEFTX0FQSSBleHRlcm4g
cGFzX3BhZ2VfaGVhZGVyX3RhYmxlIG5hbWUgIyMgX21lZGl1bV9wYWdlX2hlYWRlcl90YWJsZTsg
XAogICAgIFBBU19BUEkgZXh0ZXJuIHBhc19wYWdlX2hlYWRlcl90YWJsZSBuYW1lICMjIF9tYXJn
ZV9wYWdlX2hlYWRlcl90YWJsZTsgXAogICAgIFBBU19BUEkgZXh0ZXJuIHBhc19iYXNpY19oZWFw
X3BhZ2VfY2FjaGVzIG5hbWUgIyMgX3BhZ2VfY2FjaGVzOyBcCi0gICAgUEFTX0FQSSBleHRlcm4g
cGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcgbmFtZSAjIyBfaW50cmluc2ljX3ByaW1pdGl2
ZV9ydW50aW1lX2NvbmZpZzsgXAorICAgIFBBU19BUEkgZXh0ZXJuIHBhc19iYXNpY19oZWFwX3J1
bnRpbWVfY29uZmlnIG5hbWUgIyMgX2ludHJpbnNpY19ydW50aW1lX2NvbmZpZzsgXAogICAgIFBB
U19BUEkgZXh0ZXJuIHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnIG5hbWUgIyMgX3ByaW1p
dGl2ZV9ydW50aW1lX2NvbmZpZzsgXAogICAgIFBBU19BUEkgZXh0ZXJuIHBhc19iYXNpY19oZWFw
X3J1bnRpbWVfY29uZmlnIG5hbWUgIyMgX3R5cGVkX3J1bnRpbWVfY29uZmlnOyBcCi0gICAgUEFT
X0FQSSBleHRlcm4gcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcgbmFtZSAjIyBfb2JqY19y
dW50aW1lX2NvbmZpZzsgXAorICAgIFBBU19BUEkgZXh0ZXJuIHBhc19iYXNpY19oZWFwX3J1bnRp
bWVfY29uZmlnIG5hbWUgIyMgX2ZsZXhfcnVudGltZV9jb25maWc7IFwKICAgICBcCiAgICAgUEFT
X0FQSSBleHRlcm4gcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YSBuYW1lICMjIF9yb290
X2RhdGE7IFwKICAgICBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHJl
dmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcg
QEAgUEFTX0FQSSB2b2lkKiBwYXNfaGVhcF9jb25maWdfdXRpbHNfcHJlcAogCiB0eXBlZGVmIHN0
cnVjdCB7CiAgICAgYm9vbCBhbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvOwotICAgIHBhc19oZWFw
X3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplX2NhbGxi
YWNrIGludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eTsKKyAgICBwYXNfaGVh
cF9ydW50aW1lX2NvbmZpZ192aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZV9jYWxs
YmFjayBpbnRyaW5zaWNfdmlld19jYWNoZV9jYXBhY2l0eTsKIH0gcGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2RlZmluaXRpb25zX2FyZ3VtZW50czsKIAogI2RlZmluZSBQQVNfQkFTSUNfSEVBUF9DT05G
SUdfREVGSU5JVElPTlMobmFtZSwgdXBjYXNlX25hbWUsIC4uLikgXApAQCAtNTYsMjQgKzU2LDI0
IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgUEFTX0JBU0lDX0hFQVBfUEFHRV9DQUNIRVNf
SU5JVElBTElaRVIoUEFTX1NNQUxMX1NIQVJFRF9QQUdFX0xPR19TSElGVCwgXAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfTUVESVVNX1NIQVJFRF9Q
QUdFX0xPR19TSElGVCk7IFwKICAgICBcCi0gICAgcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25m
aWcgbmFtZSAjIyBfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZyA9IHsgXAorICAg
IHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnIG5hbWUgIyMgX2ludHJpbnNpY19ydW50aW1l
X2NvbmZpZyA9IHsgXAogICAgICAgICAuYmFzZSA9IHsgXAogICAgICAgICAgICAgLmxvb2t1cF9r
aW5kID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfcHJpbWl0aXZlLCBcCiAgICAgICAgICAg
ICAuc2hhcmluZ19tb2RlID0gcGFzX3NoYXJlX3BhZ2VzLCBcCiAgICAgICAgICAgICAuc3RhdGlj
YWxseV9hbGxvY2F0ZWQgPSB0cnVlLCBcCiAgICAgICAgICAgICAuaXNfcGFydF9vZl9oZWFwID0g
dHJ1ZSwgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3Zp
ZXdzID0gXAotICAgICAgICAgICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0JPVU5EX0ZP
Ul9QQVJUSUFMX1ZJRVdTLCBcCisgICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19CT1VORF9G
T1JfUEFSVElBTF9WSUVXUywgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zv
cl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAotICAgICAgICAgICAgICAgIFBBU19JTlRSSU5TSUNf
UFJJTUlUSVZFX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTLCBcCisgICAgICAgICAgICAg
ICAgUEFTX0lOVFJJTlNJQ19CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUywgXAogICAgICAg
ICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gXAotICAgICAg
ICAgICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hF
LCBcCisgICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19CT1VORF9GT1JfTk9fVklFV19DQUNI
RSwgXAogICAgICAgICAgICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gXAotICAgICAg
ICAgICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX01BWF9TRUdSRUdBVEVEX09CSkVDVF9T
SVpFLCBcCisgICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19NQVhfU0VHUkVHQVRFRF9PQkpF
Q1RfU0laRSwgXAogICAgICAgICAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBcCi0gICAg
ICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX0JJVEZJVF9PQkpFQ1RfU0la
RSwgXAorICAgICAgICAgICAgICAgIFBBU19JTlRSSU5TSUNfTUFYX0JJVEZJVF9PQkpFQ1RfU0la
RSwgXAogICAgICAgICAgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0g
XAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2RlZmluaXRpb25zX2Fy
Z3VtZW50cyl7X19WQV9BUkdTX199KS5pbnRyaW5zaWNfcHJpbWl0aXZlX3ZpZXdfY2FjaGVfY2Fw
YWNpdHksIFwKKyAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19kZWZpbml0
aW9uc19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuaW50cmluc2ljX3ZpZXdfY2FjaGVfY2FwYWNp
dHksIFwKICAgICAgICAgfSwgXAogICAgICAgICAucGFnZV9jYWNoZXMgPSAmbmFtZSAjIyBfcGFn
ZV9jYWNoZXMgXAogICAgIH07IFwKQEAgLTEyMCwyMiArMTIwLDIyIEBAIHR5cGVkZWYgc3RydWN0
IHsKICAgICAgICAgLnBhZ2VfY2FjaGVzID0gJm5hbWUgIyMgX3BhZ2VfY2FjaGVzIFwKICAgICB9
OyBcCiAgICAgXAotICAgIHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnIG5hbWUgIyMgX29i
amNfcnVudGltZV9jb25maWcgPSB7IFwKKyAgICBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZp
ZyBuYW1lICMjIF9mbGV4X3J1bnRpbWVfY29uZmlnID0geyBcCiAgICAgICAgIC5iYXNlID0geyBc
CiAgICAgICAgICAgICAubG9va3VwX2tpbmQgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9w
cmltaXRpdmUsIFwKICAgICAgICAgICAgIC5zaGFyaW5nX21vZGUgPSBwYXNfc2hhcmVfcGFnZXMs
IFwKICAgICAgICAgICAgIC5zdGF0aWNhbGx5X2FsbG9jYXRlZCA9IGZhbHNlLCBcCiAgICAgICAg
ICAgICAuaXNfcGFydF9vZl9oZWFwID0gdHJ1ZSwgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9z
aXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzID0gXAotICAgICAgICAgICAgICAgIFBBU19PQkpD
X0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTLCBcCisgICAgICAgICAgICAgICAgUEFTX0ZMRVhfQk9V
TkRfRk9SX1BBUlRJQUxfVklFV1MsIFwKICAgICAgICAgICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3Vu
ZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IFwKLSAgICAgICAgICAgICAgICBQQVNfT0JKQ19C
T1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUywgXAorICAgICAgICAgICAgICAgIFBBU19GTEVY
X0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTLCBcCiAgICAgICAgICAgICAuZGlyZWN0b3J5
X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUgPSBcCi0gICAgICAgICAgICAgICAgUEFTX09C
SkNfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUsIFwKKyAgICAgICAgICAgICAgICBQQVNfRkxFWF9C
T1VORF9GT1JfTk9fVklFV19DQUNIRSwgXAogICAgICAgICAgICAgLm1heF9zZWdyZWdhdGVkX29i
amVjdF9zaXplID0gXAotICAgICAgICAgICAgICAgIFBBU19PQkpDX01BWF9TRUdSRUdBVEVEX09C
SkVDVF9TSVpFLCBcCisgICAgICAgICAgICAgICAgUEFTX0ZMRVhfTUFYX1NFR1JFR0FURURfT0JK
RUNUX1NJWkUsIFwKICAgICAgICAgICAgIC5tYXhfYml0Zml0X29iamVjdF9zaXplID0gXAotICAg
ICAgICAgICAgICAgIFBBU19PQkpDX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUsIFwKKyAgICAgICAg
ICAgICAgICBQQVNfRkxFWF9NQVhfQklURklUX09CSkVDVF9TSVpFLCBcCiAgICAgICAgICAgICAu
dmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHksIFwKICAgICAgICAgfSwgXAogICAgICAgICAu
cGFnZV9jYWNoZXMgPSAmbmFtZSAjIyBfcGFnZV9jYWNoZXMgXApJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAko
cmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2ludGVybmFsX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIsMjkgKzE1Miw0NSBAQAog
I2RlZmluZSBQQVNfVVRJTElUWV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSAgICAgICAgICAg
ICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBBU19VVElMSVRZX01BWF9CSVRGSVRfT0JKRUNUX1NJ
WkUgICAgICAgICAgICAgICAgICAgICAgMAogCi0jZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlU
SVZFX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgMAotI2RlZmluZSBQQVNfSU5UUklO
U0lDX1BSSU1JVElWRV9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgIDAKLSNkZWZpbmUg
UEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUgICAgICAgICAw
Ci0jZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX01BWF9TRUdSRUdBVEVEX09CSkVDVF9T
SVpFICAgICAgVUlOVF9NQVgKLSNkZWZpbmUgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX0JJ
VEZJVF9PQkpFQ1RfU0laRSAgICAgICAgICBVSU5UX01BWAotCisvKiBJbnRyaW5zaWMgaGVhcHMg
YXJlIGZvciBnbG9iYWwsIHNpbmdsZXRvbiwgcHJvY2Vzcy13aWRlIGhlYXBzIC0tIHNvIHRoZSAi
bm90IGlzb2hlYXBlZCIgaGVhcCwgdGhlCisgICB0aGluZyB5b3UgZ2V0IGZyb20gcmVndWxhciBt
YWxsb2MuICovCisjZGVmaW5lIFBBU19JTlRSSU5TSUNfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1Mg
ICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQVNfSU5UUklOU0lDX0JPVU5EX0ZPUl9CQVNF
TElORV9BTExPQ0FUT1JTICAgICAgICAgICAgIDAKKyNkZWZpbmUgUEFTX0lOVFJJTlNJQ19CT1VO
RF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBBU19JTlRS
SU5TSUNfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgVUlOVF9NQVgK
KyNkZWZpbmUgUEFTX0lOVFJJTlNJQ19NQVhfQklURklUX09CSkVDVF9TSVpFICAgICAgICAgICAg
ICAgICAgICBVSU5UX01BWAorCisvKiBUaGlzIGlzIGZvciBoZWFwcyB0aGF0IGhvbGQgcHJpbWl0
aXZlcyBidXQgc2hvdWxkIGJlIGtlcHQgc2VwYXJhdGUgZnJvbSB0aGUgbWFpbiBoZWFwLiBTbywg
dGhlCisgICB0dW5pbmcgaGFzIHRvIGJlIHN1Y2ggdGhhdCB3ZSBhcmUgZWZmaWNpZW50IGZvciBs
b3RzIG9mIHNtYWxsIGhlYXBzLiBCdXQsIHRoZXJlJ3Mgbm8gcmVzdHJpY3Rpb24KKyAgIG9uIHdo
ZXRoZXIgdGhlIGRhdGEgaW4gdGhlIGhlYXAgaXMgcmV1c2VkIGluIGFueSBwYXJ0aWN1bGFyIHdh
eSAtLSB3ZSBydW4gdGhpcyB3aXRoIGEgdHlwZSBzaXplCisgICBvZiAxLiAqLwogI2RlZmluZSBQ
QVNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgICAgICAgICAgIDAK
ICNkZWZpbmUgUEFTX1BSSU1JVElWRV9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgICAg
ICAgICAgICAwCiAjZGVmaW5lIFBBU19QUklNSVRJVkVfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUg
ICAgICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX1BSSU1JVElWRV9NQVhfU0VH
UkVHQVRFRF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNf
UFJJTUlUSVZFX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgIFVJTlRf
TUFYCiAKKy8qIFRoaXMgaXMgZm9yIGhlYXBzIHRoYXQgaG9sZCB0eXBlZCBvYmplY3RzLiBUaGVz
ZSBvYmplY3RzIGhhdmUgYSBjZXJ0YWluIHNpemUuIFdlIG1heSBhbGxvY2F0ZQorICAgYXJyYXlz
IG9mIHRoZXNlIG9iamVjdHMuIFRoZSB0eXBlIG1heSB0ZWxsIHVzIGFuIGFsaWdubWVudCByZXF1
aXJlbWVudCBpbiBhZGRpdGlvbiB0byBhIHNpemUuCisgICBUaGUgYWxpZ25tZW50IHJlcXVpcmVt
ZW50IGlzIHRha2VuIHRvZ2V0aGVyIHdpdGggdGhlIG1pbmFsaWduIGFyZ3VtZW50ICh0aGUgYWxs
b2NhdG9yIHVzZXMKKyAgIHdoaWNoZXZlciBpcyBiaWdnZXIpLCBidXQgaXQncyBhIGJpdCBtb3Jl
IG9wdGltYWwgdG8gY29udmV5IGFsaWdubWVudCB1c2luZyB0aGUgYWxpZ25tZW50IHBhcnQKKyAg
IG9mIHRoZSB0eXBlIHRoYW4gYnkgcGFzc2luZyBpdCB0byBtaW5hbGlnbi4gKi8KICNkZWZpbmUg
UEFTX1RZUEVEX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgICAgICAgICAgICAgICAx
MAogI2RlZmluZSBQQVNfVFlQRURfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAgICAg
ICAgICAgICAgIDAKICNkZWZpbmUgUEFTX1RZUEVEX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFICAg
ICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfVFlQRURfTUFYX1NFR1JF
R0FURURfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBB
U19UWVBFRF9NQVhfQklURklUX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgMAog
Ci0jZGVmaW5lIFBBU19PQkpDX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgICAgICAg
ICAgICAgICAgMTAKLSNkZWZpbmUgUEFTX09CSkNfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRP
UlMgICAgICAgICAgICAgICAgICAxMAotI2RlZmluZSBQQVNfT0JKQ19CT1VORF9GT1JfTk9fVklF
V19DQUNIRSAgICAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCi0jZGVmaW5lIFBBU19PQkpD
X01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgICAgVUlOVF9NQVgK
LSNkZWZpbmUgUEFTX09CSkNfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAg
ICAgICAgICAwCisvKiBUaGlzIGlzIGZvciBoZWFwcyBvZiBmbGV4aWJsZSBhcnJheSBtZW1iZXIg
b2JqZWN0cy4gVGhlc2UgYXJlIHZhcmlhYmxlLXNpemVkIG9iamVjdHMgb2YgYSBjZXJ0YWluCisg
ICB0eXBlLiBXZSBzaG91bGQgYXNzdW1lIHRoYXQgZGlmZmVyZW50LXNpemVkIGluc3RhbmNlcyBj
YW4gb25seSBiZSBvdmVybGFwcGVkIGF0IHRoZSBoZWFkZXIuCisgICBJbXBsZW1lbnRpbmcgdGhl
c2UgYXMgc2VncmVnYXRlZCBoZWFwcyBpcyB2YWxpZCBzaW5jZSBzaXplcyBnZXQgc2VncmVnYXRl
ZCBhbmQgZGlmZmVyZW50LXNpemVkCisgICBvYmplY3RzIHdpbGwgb25seSBvdmVybGFwIGF0IHRo
ZSBoZWFkZXIuIEhvd2V2ZXIsIEZJWE1FOiB3ZSBuZWVkIGZsZXggaGVhcHMgdG8gdXNlIGEgbGFy
Z2UgaGVhcAorICAgdGhhdCB3b24ndCBvdmVybGFwIG9iamVjdHMgaW4gdGhlc2UgaGVhcHMgYXMg
aWYgdGhleSB3ZXJlIGFycmF5cy4gKi8KKyNkZWZpbmUgUEFTX0ZMRVhfQk9VTkRfRk9SX1BBUlRJ
QUxfVklFV1MgICAgICAgICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBQQVNfRkxFWF9CT1VO
RF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIFBB
U19GTEVYX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFICAgICAgICAgICAgICAgICAgICAgICAgVUlO
VF9NQVgKKyNkZWZpbmUgUEFTX0ZMRVhfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUgICAgICAg
ICAgICAgICAgICAgICBVSU5UX01BWAorI2RlZmluZSBQQVNfRkxFWF9NQVhfQklURklUX09CSkVD
VF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgIDAKIAogI2VuZGlmIC8qIFBBU19JTlRFUk5B
TF9DT05GSUdfSCAqLwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbGFyZ2VfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19sYXJnZV9oZWFwLmMJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDcgKzQzLDcgQEAKIHZvaWQgcGFzX2xhcmdlX2hlYXBfY29uc3RydWN0KHBhc19sYXJnZV9o
ZWFwKiBoZWFwKQogewogICAgIC8qIFdhcm5pbmc6IGFueXRoaW5nIHlvdSBkbyBoZXJlIG11c3Qg
YmUgZHVwbGljYXRlZCBpbgotICAgICAgIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1p
dGl2ZS5oLiAqLworICAgICAgIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmguICovCiAgICAg
CiAgICAgcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwX2NvbnN0cnVjdCgmaGVhcC0+ZnJlZV9oZWFw
KTsKICAgICBoZWFwLT50YWJsZV9zdGF0ZSA9IHBhc19oZWFwX3RhYmxlX3N0YXRlX3VuaW5pdGlh
bGl6ZWQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2Fs
bG9jYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9hbGxvY2F0ZS5oCShyZXZpc2lvbiAyODMxNzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDYgKzQwLDE1IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAorLyogVGhpcyBpcyBmb3IgaGVh
cHMgdGhhdCBob2xkIHR5cGVkIG9iamVjdHMuIFRoZXNlIG9iamVjdHMgaGF2ZSBhIGNlcnRhaW4g
c2l6ZS4gV2UgbWF5IGFsbG9jYXRlCisgICBhcnJheXMgb2YgdGhlc2Ugb2JqZWN0cywgYnV0IHRo
ZSBlbnRyeXBvaW50cyBpbiB0aGlzIGhlYWRlciBhcmUgZm9yIHRoZSBjYXNlIHdoZXJlIHdlIGFy
ZSBhbGxvY2F0aW5nCisgICBqdXN0IGEgc2luZ2xlIGluc3RhbmNlLiBXZSBteSBhbGxvY2F0ZSB0
aGVzZSBvYmplY3RzIHdpdGggYW55IGFsaWdubWVudCwgYnV0IHRoZSBlbnRyeXBvaW50cyBpbiB0
aGlzCisgICBoZWFkZXIgYXJlIGZvciB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgYWxsb2NhdGluZyB3
aXRoIHRoZSBhbGlnbm1lbnQgdGhhdCB3YXMgc3BlY2lmaWVkIGluIHRoZQorICAgaGVhcF9yZWYn
cyB0eXBlLgorCisgICBJZiB5b3Ugd2FudCB0byBhbGxvY2F0ZSB3aXRoIG5vbnRyaXZpYWwgY291
bnQgKGkuZS4gYW4gYXJyYXkpIG9yIG5vbnRyaXZpYWwgYWxpZ25tZW50IChpLmUuIG1lbWFsaWdu
KQorICAgdGhlbiB1c2UgdGhlIHBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCBlbnRyeXBvaW50cy4g
Ki8KKwogdHlwZWRlZiBzdHJ1Y3QgewogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWY7CiAgICAg
cGFzX2hlYXBfY29uZmlnIGNvbmZpZzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgJKHJldmlzaW9u
IDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGVfYXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDYgKzM4LDE5IEBACiAKIFBBU19C
RUdJTl9FWFRFUk5fQzsKIAorLyogVGhpcyBpcyBmb3IgaGVhcHMgdGhhdCBob2xkIHR5cGVkIG9i
amVjdHMuIFRoZXNlIG9iamVjdHMgaGF2ZSBhIGNlcnRhaW4gc2l6ZS4gV2UgbWF5IGFsbG9jYXRl
CisgICBhcnJheXMgb2YgdGhlc2Ugb2JqZWN0cy4gVGhlIHR5cGUgbWF5IHRlbGwgdXMgYW4gYWxp
Z25tZW50IHJlcXVpcmVtZW50IGluIGFkZGl0aW9uIHRvIGEgc2l6ZS4KKyAgIFRoZSBhbGlnbm1l
bnQgcmVxdWlyZW1lbnQgaXMgdGFrZW4gdG9nZXRoZXIgd2l0aCB0aGUgbWluYWxpZ24gYXJndW1l
bnQgKHRoZSBhbGxvY2F0b3IgdXNlcworICAgd2hpY2hldmVyIGlzIGJpZ2dlciksIGJ1dCBpdCdz
IGEgYml0IG1vcmUgb3B0aW1hbCB0byBjb252ZXkgYWxpZ25tZW50IHVzaW5nIHRoZSBhbGlnbm1l
bnQgcGFydAorICAgb2YgdGhlIHR5cGUgdGhhbiBieSBwYXNzaW5nIGl0IHRvIG1pbmFsaWduLgor
CisgICBUaGUgZW50cnlwb2ludHMgaW4gdGhpcyBmaWxlIGFyZSBmb3IgdGhlIG1vc3QgZ2VuZXJh
bCBjYXNlIG9mIGFsbG9jYXRpbmcgaW4gdGhlIHR5cGVkIGhlYXAuIFlvdQorICAgY2FuIHBhc3Mg
YW55IGNvdW50IHRoYXQgaXMgPj0gMSBhbmQgYW55IGFsaWdubWVudCB0aGF0IGlzID49IDEuIE5v
dGUgdGhhdCB0aGVzZSBlbnRyeXBvaW50cyBoYXZlCisgICBvcHRpbWl6YXRpb25zIGZvciBhbGln
bm1lbnQgPT0gMSBhbmQgeW91IGdldCB0aGUgbW9zdCBiZW5lZml0IGZyb20gdGhvc2Ugb3B0aW1p
emF0aW9ucyBpZiB5b3UKKyAgIHJlYWxseSBwYXNzIHRoZSBjb25zdGFudCAiMSIgZm9yIGFsaWdu
bWVudCAodGhpcyBjYXVzZXMgdGhlIHNwZWNpYWwgbWVtYWxpZ24gbG9naWMgdG8gYmUgc3RhdGlj
YWxseQorICAga2lsbGVkIG9mZiBieSB0aGUgY29tcGlsZXIpLiBJZiB5b3Uga25vdyB0aGF0IGNv
dW50ID09IDEgYW5kIGFsaWdubWVudCA9PSAxLCB0aGVuIHlvdSdyZSBiZXR0ZXIgb2ZmCisgICB1
c2luZyB0aGUgcGFzX3RyeV9hbGxvY2F0ZS5oIGVudHJ5cG9pbnRzLiAqLworCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X2FsbG9j
YXRlX2FycmF5X2ltcGwocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfaGVhcCogaGVhcCwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzM4IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBQQVNfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19ICisjZGVmaW5lIFBBU19UUllfQUxMT0NB
VEVfSU5UUklOU0lDX0gKKworI2luY2x1ZGUgInBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfaGVhcC5oIgorI2luY2x1ZGUgInBhc19pbnRyaW5z
aWNfaGVhcF9zdXBwb3J0LmgiCisjaW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaCIK
KworUEFTX0JFR0lOX0VYVEVSTl9DOworCisvKiBUaGlzIGlzIGZvciBnbG9iYWwsIHNpbmdsZXRv
biwgcHJvY2Vzcy13aWRlIGhlYXBzIC0tIHNvIHRoZSAibm90IGlzb2hlYXBlZCIgaGVhcCwgdGhl
IHRoaW5nCisgICB5b3UgZ2V0IGZyb20gcmVndWxhciBtYWxsb2MuCisKKyAgIEl0IGlzIHBvc3Np
YmxlIGZvciBhIGhlYXBfY29uZmlnIHRvIGhhdmUgbXVsdGlwbGUgaW50cmluc2ljIGhlYXBzLCBi
dXQgZ2VuZXJhbGx5IHNwZWFraW5nLCBhCisgICBoZWFwX2NvbmZpZyB3aWxsIGhhdmUgYSBmaXhl
ZCBudW1iZXIgb2YgaW50cmluc2ljIGhlYXBzIGFuZCB0aGV5IHdpbGwgYWxsIGJlIGtub3duIHRv
IGxpYnBhcworICAgYWhlYWQgb2YgdGltZS4KKworICAgSXQgaXMgcG9zc2libGUgZm9yIGxpYnBh
cyB0byBiZSBjb25maWd1cmVkIHdpdGggbXVsdGlwbGUgaGVhcF9jb25maWdzLCBzbyB3ZSBtYXkg
YWxzbyBoYXZlCisgICBtdWx0aXBsZSBpbnRyaW5zaWMgaGVhcHMgdGhhdCB3YXkgKGVhY2ggaGVh
cF9jb25maWcgbWF5IGhhdmUgb25lIGludHJpbnNpYykuCisKKyAgIEl0IGlzIGFsc28gcG9zc2li
bGUgZm9yIGEgaGVhcF9jb25maWcgdG8gaGF2ZSBubyBpbnRyaW5zaWNzLiBGcm9tIGEgZnVuY3Rp
b25hbGl0eSBzdGFuZHBvaW50LAorICAgcHJpbWl0aXZlIGhlYXBzIGNhbiBkbyBldmVyeXRoaW5n
IHRoYXQgaW50cmluc2ljIGhlYXBzIGRvLCB0aG91Z2ggcHJpbWl0aXZlcyBhcmUgb3B0aW1pemVk
IGZvcgorICAgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50cyBvZiBsaWJwYXMgd2lsbCBjcmVh
dGUgYW55IG51bWJlciBvZiB0aGVtLiAqLworCisjZGVmaW5lIFBBU19JTlRSSU5TSUNfU0VHUkVH
QVRFRF9IRUFQX0lOSVRJQUxJWkVSKHBhcmVudF9oZWFwX3B0ciwgc3VwcG9ydCwgcGFzc2VkX3J1
bnRpbWVfY29uZmlnKSB7IFwKKyAgICAgICAgLnJ1bnRpbWVfY29uZmlnID0gKHBhc3NlZF9ydW50
aW1lX2NvbmZpZyksIFwKKyAgICAgICAgLmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkID0g
UEFTX0NPTVBBQ1RfQVRPTUlDX1BUUl9JTklUSUFMSVpFUiwgXAorICAgICAgICAuc21hbGxfaW5k
ZXhfdXBwZXJfYm91bmQgPSBQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNTRVMsIFwKKyAgICAg
ICAgLmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ID0gKHN1cHBvcnQpLmluZGV4X3RvX3Np
emVfZGlyZWN0b3J5LCBcCisgICAgICAgIC5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXgg
PSAoc3VwcG9ydCkuaW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4LCBcCisgICAgICAgIC5yYXJlX2Rh
dGEgPSBQQVNfQ09NUEFDVF9BVE9NSUNfUFRSX0lOSVRJQUxJWkVSLCBcCisgICAgfQorCisjZGVm
aW5lIFBBU19JTlRSSU5TSUNfSEVBUF9TRUdSRUdBVEVEX0hFQVBfRklFTERTKGhlYXBfcHRyLCBp
bnRyaW5zaWNfc3VwcG9ydCwgcnVudGltZV9jb25maWcpIFwKKyAgICAgICAgLnNlZ3JlZ2F0ZWRf
aGVhcCA9IFBBU19JTlRSSU5TSUNfU0VHUkVHQVRFRF9IRUFQX0lOSVRJQUxJWkVSKCBcCisgICAg
ICAgICAgICBoZWFwX3B0ciwgaW50cmluc2ljX3N1cHBvcnQsIHJ1bnRpbWVfY29uZmlnKSwgXAor
CisjZGVmaW5lIFBBU19JTlRSSU5TSUNfSEVBUF9JTklUSUFMSVpFUihoZWFwX3B0ciwgcHJpbWl0
aXZlX3R5cGUsIGludHJpbnNpY19zdXBwb3J0LCBwYXNzZWRfY29uZmlnLCBydW50aW1lX2NvbmZp
ZykgeyBcCisgICAgICAgIC50eXBlID0gKHBhc19oZWFwX3R5cGUqKShwcmltaXRpdmVfdHlwZSks
IFwKKyAgICAgICAgUEFTX0lOVFJJTlNJQ19IRUFQX1NFR1JFR0FURURfSEVBUF9GSUVMRFMoaGVh
cF9wdHIsIGludHJpbnNpY19zdXBwb3J0LCBydW50aW1lX2NvbmZpZykgXAorICAgICAgICAubGFy
Z2VfaGVhcCA9IHsgXAorICAgICAgICAgICAgLmZyZWVfaGVhcCA9IFBBU19GQVNUX0xBUkdFX0ZS
RUVfSEVBUF9JTklUSUFMSVpFUiwgXAorICAgICAgICAgICAgLnRhYmxlX3N0YXRlID0gcGFzX2hl
YXBfdGFibGVfc3RhdGVfdW5pbml0aWFsaXplZCwgXAorICAgICAgICAgICAgLmluZGV4ID0gMCBc
CisgICAgICAgIH0sIFwKKyAgICAgICAgLmhlYXBfcmVmID0gTlVMTCwgXAorICAgICAgICAubmV4
dF9oZWFwID0gUEFTX0NPTVBBQ1RfUFRSX0lOSVRJQUxJWkVSLCBcCisgICAgICAgIC5jb25maWdf
a2luZCA9IChwYXNzZWRfY29uZmlnKS5raW5kLCBcCisgICAgfQorCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNp
Y19pbXBsX21lZGl1bV9zbG93X2Nhc2UoCisgICAgcGFzX2hlYXAqIGhlYXAsCisgICAgc2l6ZV90
IHNpemUsCisgICAgc2l6ZV90IGFsaWdubWVudCwKKyAgICBwYXNfaW50cmluc2ljX2hlYXBfc3Vw
cG9ydCogaW50cmluc2ljX3N1cHBvcnQsCisgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKKyAg
ICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0IHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCwK
KyAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93IHRyeV9hbGxvY2F0ZV9jb21tb25fc2xv
dywKKyAgICBwYXNfaW50cmluc2ljX2hlYXBfZGVzaWduYXRpb25fbW9kZSBkZXNpZ25hdGlvbl9t
b2RlKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAg
ICBzaXplX3QgYWxpZ25lZF9zaXplOworICAgIHNpemVfdCBpbmRleDsKKyAgICBwYXNfaGVhcF9y
ZWYgZmFrZV9oZWFwX3JlZjsKKyAgICBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHQgZGVzaWdu
YXRlZF9pbmRleDsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsKKworICAgIFBB
U19BU1NFUlQoYWxpZ25tZW50ID09IDEgfHwgIWRlc2lnbmF0aW9uX21vZGUpOworCisgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coImluIGltcGxfbWVkaXVtX3Nsb3dfY2FzZSBmb3Ig
JXNcbiIsIHBhc19oZWFwX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoY29uZmlnLmtpbmQpKTsKKwor
ICAgIGlmICghcGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50KSkKKyAgICAgICAgcmV0dXJuIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworCisgICAgaWYgKFBBU19VTkxJ
S0VMWShwYXNfZGVidWdfaGVhcF9pc19lbmFibGVkKGNvbmZpZy5raW5kKSkpCisgICAgICAgIHJl
dHVybiBwYXNfZGVidWdfaGVhcF9hbGxvY2F0ZShzaXplLCBhbGlnbm1lbnQpOworCisgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIm5vdCBkb2luZyBkZWJ1ZyBoZWFwIGluIGltcGxf
bWVkaXVtX3Nsb3dfY2FzZSBmb3IgJXNcbiIsIHBhc19oZWFwX2NvbmZpZ19raW5kX2dldF9zdHJp
bmcoY29uZmlnLmtpbmQpKTsKKworICAgIC8qIEluIHRoZSBub24tbWVtYWxpZ24gY2FzZSwgd2Ug
Y2FuIGhhcHBpbHkgaGFuZGxlIHplcm8tc2l6ZWQgYWxsb2NhdGlvbnMgd2l0aCBhbGlnbmVkX3Np
emUKKyAgICAgICBiZWluZyAwLiBUaGlzIHdvcmtzIGJlY2F1c2UgdGhlIGhlYXAncyAwIHNpemUg
Y2xhc3MgaXMganVzdCBhIGNvcHkgb2YgdGhlIG1pbmFsaWduIHNpemUKKyAgICAgICBjbGFzcy4g
QnV0IHdlIGNhbm5vdCBkbyB0aGlzIHByb3Blcmx5IGlmIHRoZSAwIHNpemUgY2xhc3MgaGFzIHRv
IGhhdmUgc29tZSBhbGlnbm1lbnQuIFRoYXQncworICAgICAgIGJlY2F1c2Ugd2UgZXhwZWN0IHRo
YXQgZm9yIGEgc2l6ZSBjbGFzcyB0byBzYXRpc2Z5IHNvbWUgYWxpZ25tZW50LCB0aGF0IHNpemUg
bXVzdCBpdHNlbGYKKyAgICAgICBiZSBhbGlnbmVkIHRvIHRoYXQgYWxpZ25tZW50LiAqLworICAg
IGlmIChhbGlnbm1lbnQgPT0gMSkKKyAgICAgICAgYWxpZ25lZF9zaXplID0gc2l6ZTsKKyAgICBl
bHNlIGlmIChzaXplIDwgYWxpZ25tZW50KQorICAgICAgICBhbGlnbmVkX3NpemUgPSBhbGlnbm1l
bnQ7CisgICAgZWxzZQorICAgICAgICBhbGlnbmVkX3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93
ZXJfb2ZfMihzaXplLCBhbGlnbm1lbnQpOworICAgIAorICAgIGluZGV4ID0gcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9pbmRleF9mb3JfcHJpbWl0aXZlX2NvdW50KGFsaWduZWRfc2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcp
OworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiYWxpZ25lZF9zaXplID0g
JXp1LCBpbmRleCA9ICV6dSwgYWxpZ25tZW50ID0gJXp1LlxuIiwKKyAgICAgICAgICAgICAgICBh
bGlnbmVkX3NpemUsIGluZGV4LCBhbGlnbm1lbnQpOworICAgIH0KKworICAgIGNhY2hlID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CisgICAgaWYgKFBBU19MSUtFTFkoY2FjaGUp
KSB7CisgICAgICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleDsKKyAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKKyAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yOworICAgICAgICAKKyAgICAgICAgZGVzaWduYXRlZF9pbmRleCA9
IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXgoCisgICAgICAg
ICAgICBpbmRleCwgZGVzaWduYXRpb25fbW9kZSwgY29uZmlnKTsKKyAgICAgICAgaWYgKFBBU19M
SUtFTFkoZGVzaWduYXRlZF9pbmRleC5kaWRfc3VjY2VlZCkpIHsKKyAgICAgICAgICAgIGFsbG9j
YXRvcl9yZXN1bHQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcygK
KyAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfaW1wbCgKKyAgICAgICAgICAgICAgICAgICAgY2FjaGUsCisgICAgICAgICAgICAgICAgICAg
IGRlc2lnbmF0ZWRfaW5kZXguaW5kZXggKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9u
dW1fYWxsb2NhdG9yX2luZGljZXMoY29uZmlnKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgaWYgKFBBU19VTkxJS0VMWShpbmRleCA+PSBQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NM
QVNTRVMpKSB7CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0KKyAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fYWxsb2NhdG9yX2luZGV4X2Zvcl9p
bmRleCgKKyAgICAgICAgICAgICAgICAgICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsCisg
ICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF93aXRoaW5fc2l6
ZV9jbGFzc19wcm9ncmVzc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lz
X25vdF9oZWxkKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGFsbG9jYXRv
cl9pbmRleCA9IGludHJpbnNpY19zdXBwb3J0LT5pbmRleF90b19hbGxvY2F0b3JfaW5kZXhbaW5k
ZXhdOworICAgICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAg
IHBhc19sb2coImFsbG9jYXRvcl9pbmRleCA9ICV1LlxuIiwgYWxsb2NhdG9yX2luZGV4KTsKKyAg
ICAgICAgCisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKAorICAgICAgICAgICAgICAgIGNhY2hlLCBhbGxvY2F0
b3JfaW5kZXgsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAgICAgfQorCisgICAgICAgIGFs
bG9jYXRvciA9IChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3JfcmVzdWx0LmFsbG9jYXRv
cjsKKworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1
Y2NlZWQgfHwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSA+PSBhbGlnbmVkX3NpemUpOworICAgIAor
ICAgICAgICAvKiBUaGlzIHNob3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGln
bm1lbnQgY2FzZSBiZWNhdXNlIG9mIEFMV0FZU19JTkxJTkUgYW5kCisgICAgICAgICAgIGFsaWdu
bWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KKyAgICAgICAgaWYgKGFsaWdubWVudCAhPSAx
ICYmIGFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQKKyAgICAgICAgICAgICYmIGFsaWdubWVu
dCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvcikpIHsKKyAgICAgICAg
ICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgcGFzX2xvZygiRGlzY2FyZGluZyBn
b29kIGFsbG9jYXRvciByZXN1bHQgYmVjYXVzZSBhbGlnbm1lbnQgaXMgaW5hZGVxdWF0ZSAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAiKCV6dSwgbmVlZGVkICV6dSkuXG4iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yKSwg
YWxpZ25tZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQu
ZGlkX3N1Y2NlZWQgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChQQVNfTElLRUxZ
KGFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ5
X2FsbG9jYXRlX2NvbW1vbl9mYXN0KAorICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX3Ry
aXZpYWxfc2l6ZV90aHVuaywgKHZvaWQqKWFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGZha2VfaGVhcF9yZWYudHlwZSA9IGhlYXAtPnR5cGU7CisgICAg
ZmFrZV9oZWFwX3JlZi5oZWFwID0gaGVhcDsKKyAgICBmYWtlX2hlYXBfcmVmLmFsbG9jYXRvcl9p
bmRleCA9IFVJTlRfTUFYOworCisgICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25fc2xvdygm
ZmFrZV9oZWFwX3JlZiwgYWxpZ25lZF9zaXplLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCk7Cit9
CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKK3Bhc190
cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX29ubHkoCisgICAgc2l6ZV90IHNpemUs
CisgICAgc2l6ZV90IGFsaWdubWVudCwKKyAgICBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydCog
aW50cmluc2ljX3N1cHBvcnQsCisgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKKyAgICBwYXNf
dHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5IHRyeV9hbGxvY2F0ZV9jb21tb25f
ZmFzdF9pbmxpbmVfb25seSwKKyAgICBwYXNfaW50cmluc2ljX2hlYXBfZGVzaWduYXRpb25fbW9k
ZSBkZXNpZ25hdGlvbl9tb2RlKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKKyAgICAKKyAgICBzaXplX3QgYWxpZ25lZF9zaXplOworICAgIHNpemVfdCBpbmRleDsK
KyAgICBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHQgZGVzaWduYXRlZF9pbmRleDsKKyAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsKKyAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5k
ZXg7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKKyAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CisKKyAgICBQQVNfQVNTRVJUKGFsaWdu
bWVudCA9PSAxIHx8ICFkZXNpZ25hdGlvbl9tb2RlKTsKKworICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICBwYXNfbG9nKCJpbiBpbXBsX2lubGluZV9vbmx5IGZvciAlc1xuIiwgcGFzX2hlYXBfY29u
ZmlnX2tpbmRfZ2V0X3N0cmluZyhjb25maWcua2luZCkpOworCisgICAgaWYgKCFwYXNfaXNfcG93
ZXJfb2ZfMihhbGlnbm1lbnQpKQorICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyZWF0ZV9mYWlsdXJlKCk7CisKKyAgICAvKiBJbiB0aGUgbm9uLW1lbWFsaWduIGNhc2UsIHdl
IGNhbiBoYXBwaWx5IGhhbmRsZSB6ZXJvLXNpemVkIGFsbG9jYXRpb25zIHdpdGggYWxpZ25lZF9z
aXplCisgICAgICAgYmVpbmcgMC4gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBoZWFwJ3MgMCBzaXpl
IGNsYXNzIGlzIGp1c3QgYSBjb3B5IG9mIHRoZSBtaW5hbGlnbiBzaXplCisgICAgICAgY2xhc3Mu
IEJ1dCB3ZSBjYW5ub3QgZG8gdGhpcyBwcm9wZXJseSBpZiB0aGUgMCBzaXplIGNsYXNzIGhhcyB0
byBoYXZlIHNvbWUgYWxpZ25tZW50LiBUaGF0J3MKKyAgICAgICBiZWNhdXNlIHdlIGV4cGVjdCB0
aGF0IGZvciBhIHNpemUgY2xhc3MgdG8gc2F0aXNmeSBzb21lIGFsaWdubWVudCwgdGhhdCBzaXpl
IG11c3QgaXRzZWxmCisgICAgICAgYmUgYWxpZ25lZCB0byB0aGF0IGFsaWdubWVudC4gKi8KKyAg
ICBpZiAoYWxpZ25tZW50ID09IDEpCisgICAgICAgIGFsaWduZWRfc2l6ZSA9IHNpemU7CisgICAg
ZWxzZSBpZiAoc2l6ZSA8IGFsaWdubWVudCkKKyAgICAgICAgYWxpZ25lZF9zaXplID0gYWxpZ25t
ZW50OworICAgIGVsc2UKKyAgICAgICAgYWxpZ25lZF9zaXplID0gcGFzX3JvdW5kX3VwX3RvX3Bv
d2VyX29mXzIoc2l6ZSwgYWxpZ25tZW50KTsKKyAgICAKKyAgICBpbmRleCA9IHBhc19zZWdyZWdh
dGVkX2hlYXBfaW5kZXhfZm9yX3ByaW1pdGl2ZV9jb3VudChhbGlnbmVkX3NpemUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmln
KTsKKworICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIHBhc19sb2coImFsaWduZWRfc2l6ZSA9
ICV6dSwgaW5kZXggPSAlenUsIGFsaWdubWVudCA9ICV6dS5cbiIsCisgICAgICAgICAgICAgICAg
YWxpZ25lZF9zaXplLCBpbmRleCwgYWxpZ25tZW50KTsKKyAgICB9CisKKyAgICBjYWNoZSA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOworICAgIGlmIChQQVNfVU5MSUtFTFkoIWNh
Y2hlKSkKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVy
ZSgpOworICAgIAorICAgIGRlc2lnbmF0ZWRfaW5kZXggPSBwYXNfZGVzaWduYXRlZF9pbnRyaW5z
aWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4KAorICAgICAgICBpbmRleCwgZGVzaWduYXRpb25fbW9k
ZSwgY29uZmlnKTsKKyAgICBpZiAoUEFTX0xJS0VMWShkZXNpZ25hdGVkX2luZGV4LmRpZF9zdWNj
ZWVkKSkgeworICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKKyAgICAgICAgICAgICAgICBjYWNoZSwKKyAgICAg
ICAgICAgICAgICBkZXNpZ25hdGVkX2luZGV4LmluZGV4ICogcGFzX2Rlc2lnbmF0ZWRfaW50cmlu
c2ljX2hlYXBfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGNvbmZpZykpKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBpZiAoUEFTX1VOTElLRUxZKGluZGV4ID49IFBBU19OVU1fSU5UUklOU0lDX1NJWkVf
Q0xBU1NFUykpCisgICAgICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0
ZV9mYWlsdXJlKCk7CisgICAgICAgIAorICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBpbnRyaW5z
aWNfc3VwcG9ydC0+aW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XTsKKyAgICAgICAgCisg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yX2luZGV4
ID0gJXUuXG4iLCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAKKyAgICAgICAgYWxsb2NhdG9y
X3Jlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0b3Io
Y2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7CisgICAgfQorICAgIAorICAgIGlmIChQQVNfVU5MSUtF
TFkoIWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQpKQorICAgICAgICByZXR1cm4gcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgCisgICAgYWxsb2NhdG9yID0g
KHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvcl9yZXN1bHQuYWxsb2NhdG9yOworICAgIAor
ICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8fCBh
bGxvY2F0b3ItPm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZSk7CisgICAgCisgICAgLyogVGhp
cyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVj
YXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFuZAorICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29u
c3RhbnQgMS4gKi8KKyAgICBpZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxpZ25tZW50ID4gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yKSkgeworICAgICAgICBpZiAodmVyYm9z
ZSkgeworICAgICAgICAgICAgcGFzX2xvZygiRGlzY2FyZGluZyBnb29kIGFsbG9jYXRvciByZXN1
bHQgYmVjYXVzZSBhbGlnbm1lbnQgaXMgaW5hZGVxdWF0ZSAiCisgICAgICAgICAgICAgICAgICAg
ICIoJXp1LCBuZWVkZWQgJXp1KS5cbiIsCisgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvciksIGFsaWdubWVudCk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworICAg
IH0KKyAgICAKKyAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5
KGFsbG9jYXRvcik7Cit9CisKKyNkZWZpbmUgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklO
U0lDKG5hbWUsIGhlYXBfY29uZmlnLCBydW50aW1lX2NvbmZpZywgYWxsb2NhdG9yX2NvdW50cywg
cmVzdWx0X2ZpbHRlciwgaGVhcCwgaGVhcF9zdXBwb3J0LCBkZXNpZ25hdGlvbl9tb2RlKSBcCisg
ICAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQ09NTU9OKCBcCisgICAgICAgIG5hbWUgIyMgX2lt
cGwsIFwKKyAgICAgICAgcGFzX2Zha2VfaGVhcF9yZWZfa2luZCwgXAorICAgICAgICAoaGVhcF9j
b25maWcpLCBcCisgICAgICAgIChydW50aW1lX2NvbmZpZyksIFwKKyAgICAgICAgKGFsbG9jYXRv
cl9jb3VudHMpLCBcCisgICAgICAgIHBhc19mb3JjZV9jb3VudF9sb29rdXAsIFwKKyAgICAgICAg
KHJlc3VsdF9maWx0ZXIpKTsgXAorICAgIFwKKyAgICBzdGF0aWMgUEFTX05FVkVSX0lOTElORSBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIG5hbWUgIyMgX21lZGl1bV9zbG93X2Nhc2Uoc2l6
ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKKyAgICB7IFwKKyAgICAgICAgcmV0dXJuIHBh
c190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZSggXAorICAgICAg
ICAgICAgKGhlYXApLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX3N1cHBvcnQpLCAoaGVhcF9jb25m
aWcpLCBcCisgICAgICAgICAgICBuYW1lICMjIF9pbXBsX2Zhc3QsIG5hbWUgIyMgX2ltcGxfc2xv
dywgKGRlc2lnbmF0aW9uX21vZGUpKTsgXAorICAgIH0gXAorICAgIFwKKyAgICBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5hbWUgIyMgX2lubGluZV9vbmx5
KHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBcCisgICAgeyBcCisgICAgICAgIHJldHVy
biBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2lubGluZV9vbmx5KCBcCisgICAgICAg
ICAgICBzaXplLCBhbGlnbm1lbnQsIChoZWFwX3N1cHBvcnQpLCAoaGVhcF9jb25maWcpLCBcCisg
ICAgICAgICAgICBuYW1lICMjIF9pbXBsX2Zhc3RfaW5saW5lX29ubHksIChkZXNpZ25hdGlvbl9t
b2RlKSk7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBc
CisgICAgeyBcCisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsgXAor
ICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OyBcCisgICAgICAgIHJlc3VsdCA9
IG5hbWUgIyMgX2lubGluZV9vbmx5KHNpemUsIGFsaWdubWVudCk7IFwKKyAgICAgICAgaWYgKFBB
U19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVkKSkgeyBcCisgICAgICAgICAgICBpZiAodmVyYm9z
ZSkgXAorICAgICAgICAgICAgICAgIHBhc19sb2coIlJldHVybmluZyBzdWNjZXNzZnVsIHJlc3Vs
dCAoYmVnaW4gPSAlcClcbiIsICh2b2lkKilyZXN1bHQuYmVnaW4pOyBcCisgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OyBcCisgICAgICAgIH0gXAorICAgICAgICByZXR1cm4gbmFtZSAjIyBfbWVk
aXVtX3Nsb3dfY2FzZShzaXplLCBhbGlnbm1lbnQpOyBcCisgICAgfSBcCisgICAgXAorICAgIHN0
YXRpYyBQQVNfVU5VU0VEIFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwK
KyAgICBuYW1lICMjIF9mb3JfcmVhbGxvYyhzaXplX3Qgc2l6ZSkgXAorICAgIHsgXAorICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7IFwKKyAgICAgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0IHJlc3VsdCA9IG5hbWUoc2l6ZSwgMSk7IFwKKyAgICAgICAgaWYgKHZlcmJv
c2UpIFwKKyAgICAgICAgICAgIHBhc19sb2coInJlc3VsdC5iZWdpbiA9ICVwXG4iLCByZXN1bHQu
YmVnaW4pOyBcCisgICAgICAgIHJldHVybiByZXN1bHQ7IFwKKyAgICB9IFwKKyAgICBcCisgICAg
c3RydWN0IHBhc19kdW1teQorCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190
cnlfYWxsb2NhdGVfaW50cmluc2ljKShzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
YWxpZ25tZW50KTsKKwordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpY19mb3JfcmVhbGxvYykoc2l6ZV90IHNpemUpOworCitQQVNfRU5EX0VY
VEVSTl9DOworCisjZW5kaWYgLyogUEFTX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfSCAqLworCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2lu
dHJpbnNpY19wcmltaXRpdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaAkocmV2aXNp
b24gMjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9h
bGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMjQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgUEFTX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUSVZFX0gKLSNkZWZpbmUg
UEFTX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUSVZFX0gKLQotI2luY2x1ZGUgInBhc19k
ZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfaGVhcC5o
IgotI2luY2x1ZGUgInBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmgiCi0jaW5jbHVkZSAicGFz
X3RyeV9hbGxvY2F0ZV9jb21tb24uaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi0jZGVmaW5l
IFBBU19JTlRSSU5TSUNfU0VHUkVHQVRFRF9IRUFQX0lOSVRJQUxJWkVSKHBhcmVudF9oZWFwX3B0
ciwgc3VwcG9ydCwgcGFzc2VkX3J1bnRpbWVfY29uZmlnKSB7IFwKLSAgICAgICAgLnJ1bnRpbWVf
Y29uZmlnID0gKHBhc3NlZF9ydW50aW1lX2NvbmZpZyksIFwKLSAgICAgICAgLmJhc2ljX3NpemVf
ZGlyZWN0b3J5X2FuZF9oZWFkID0gUEFTX0NPTVBBQ1RfQVRPTUlDX1BUUl9JTklUSUFMSVpFUiwg
XAotICAgICAgICAuc21hbGxfaW5kZXhfdXBwZXJfYm91bmQgPSBQQVNfTlVNX0lOVFJJTlNJQ19T
SVpFX0NMQVNTRVMsIFwKLSAgICAgICAgLmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ID0g
KHN1cHBvcnQpLmluZGV4X3RvX3NpemVfZGlyZWN0b3J5LCBcCi0gICAgICAgIC5pbmRleF90b19z
bWFsbF9hbGxvY2F0b3JfaW5kZXggPSAoc3VwcG9ydCkuaW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4
LCBcCi0gICAgICAgIC5yYXJlX2RhdGEgPSBQQVNfQ09NUEFDVF9BVE9NSUNfUFRSX0lOSVRJQUxJ
WkVSLCBcCi0gICAgfQotCi0jZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0hFQVBfU0VH
UkVHQVRFRF9IRUFQX0ZJRUxEUyhoZWFwX3B0ciwgaW50cmluc2ljX3N1cHBvcnQsIHJ1bnRpbWVf
Y29uZmlnKSBcCi0gICAgICAgIC5zZWdyZWdhdGVkX2hlYXAgPSBQQVNfSU5UUklOU0lDX1NFR1JF
R0FURURfSEVBUF9JTklUSUFMSVpFUiggXAotICAgICAgICAgICAgaGVhcF9wdHIsIGludHJpbnNp
Y19zdXBwb3J0LCBydW50aW1lX2NvbmZpZyksIFwKLQotI2RlZmluZSBQQVNfSU5UUklOU0lDX1BS
SU1JVElWRV9IRUFQX0lOSVRJQUxJWkVSKGhlYXBfcHRyLCBwcmltaXRpdmVfdHlwZSwgaW50cmlu
c2ljX3N1cHBvcnQsIHBhc3NlZF9jb25maWcsIHJ1bnRpbWVfY29uZmlnKSB7IFwKLSAgICAgICAg
LnR5cGUgPSAocGFzX2hlYXBfdHlwZSopKHByaW1pdGl2ZV90eXBlKSwgXAotICAgICAgICBQQVNf
SU5UUklOU0lDX1BSSU1JVElWRV9IRUFQX1NFR1JFR0FURURfSEVBUF9GSUVMRFMoaGVhcF9wdHIs
IGludHJpbnNpY19zdXBwb3J0LCBydW50aW1lX2NvbmZpZykgXAotICAgICAgICAubGFyZ2VfaGVh
cCA9IHsgXAotICAgICAgICAgICAgLmZyZWVfaGVhcCA9IFBBU19GQVNUX0xBUkdFX0ZSRUVfSEVB
UF9JTklUSUFMSVpFUiwgXAotICAgICAgICAgICAgLnRhYmxlX3N0YXRlID0gcGFzX2hlYXBfdGFi
bGVfc3RhdGVfdW5pbml0aWFsaXplZCwgXAotICAgICAgICAgICAgLmluZGV4ID0gMCBcCi0gICAg
ICAgIH0sIFwKLSAgICAgICAgLmhlYXBfcmVmID0gTlVMTCwgXAotICAgICAgICAubmV4dF9oZWFw
ID0gUEFTX0NPTVBBQ1RfUFRSX0lOSVRJQUxJWkVSLCBcCi0gICAgICAgIC5jb25maWdfa2luZCA9
IChwYXNzZWRfY29uZmlnKS5raW5kLCBcCi0gICAgfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmlt
aXRpdmVfaW1wbF9tZWRpdW1fc2xvd19jYXNlKAotICAgIHBhc19oZWFwKiBoZWFwLAotICAgIHNp
emVfdCBzaXplLAotICAgIHNpemVfdCBhbGlnbm1lbnQsCi0gICAgcGFzX2ludHJpbnNpY19oZWFw
X3N1cHBvcnQqIGludHJpbnNpY19zdXBwb3J0LAotICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcs
Ci0gICAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCB0cnlfYWxsb2NhdGVfY29tbW9uX2Zh
c3QsCi0gICAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fc2xvdyB0cnlfYWxsb2NhdGVfY29tbW9u
X3Nsb3csCi0gICAgcGFzX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0aW9uX21vZGUgZGVzaWduYXRp
b25fbW9kZSkKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAg
Ci0gICAgc2l6ZV90IGFsaWduZWRfc2l6ZTsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFzX2hl
YXBfcmVmIGZha2VfaGVhcF9yZWY7Ci0gICAgcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0IGRl
c2lnbmF0ZWRfaW5kZXg7Ci0gICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGU7Ci0KLSAg
ICBQQVNfQVNTRVJUKGFsaWdubWVudCA9PSAxIHx8ICFkZXNpZ25hdGlvbl9tb2RlKTsKLQotICAg
IGlmICh2ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJpbiBpbXBsX21lZGl1bV9zbG93X2Nhc2Ug
Zm9yICVzXG4iLCBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRfc3RyaW5nKGNvbmZpZy5raW5kKSk7
Ci0KLSAgICBpZiAoIXBhc19pc19wb3dlcl9vZl8yKGFsaWdubWVudCkpCi0gICAgICAgIHJldHVy
biBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKLQotICAgIGlmIChQQVNf
VU5MSUtFTFkocGFzX2RlYnVnX2hlYXBfaXNfZW5hYmxlZChjb25maWcua2luZCkpKQotICAgICAg
ICByZXR1cm4gcGFzX2RlYnVnX2hlYXBfYWxsb2NhdGUoc2l6ZSwgYWxpZ25tZW50KTsKLQotICAg
IGlmICh2ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJub3QgZG9pbmcgZGVidWcgaGVhcCBpbiBp
bXBsX21lZGl1bV9zbG93X2Nhc2UgZm9yICVzXG4iLCBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRf
c3RyaW5nKGNvbmZpZy5raW5kKSk7Ci0KLSAgICAvKiBJbiB0aGUgbm9uLW1lbWFsaWduIGNhc2Us
IHdlIGNhbiBoYXBwaWx5IGhhbmRsZSB6ZXJvLXNpemVkIGFsbG9jYXRpb25zIHdpdGggYWxpZ25l
ZF9zaXplCi0gICAgICAgYmVpbmcgMC4gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBoZWFwJ3MgMCBz
aXplIGNsYXNzIGlzIGp1c3QgYSBjb3B5IG9mIHRoZSBtaW5hbGlnbiBzaXplCi0gICAgICAgY2xh
c3MuIEJ1dCB3ZSBjYW5ub3QgZG8gdGhpcyBwcm9wZXJseSBpZiB0aGUgMCBzaXplIGNsYXNzIGhh
cyB0byBoYXZlIHNvbWUgYWxpZ25tZW50LiBUaGF0J3MKLSAgICAgICBiZWNhdXNlIHdlIGV4cGVj
dCB0aGF0IGZvciBhIHNpemUgY2xhc3MgdG8gc2F0aXNmeSBzb21lIGFsaWdubWVudCwgdGhhdCBz
aXplIG11c3QgaXRzZWxmCi0gICAgICAgYmUgYWxpZ25lZCB0byB0aGF0IGFsaWdubWVudC4gKi8K
LSAgICBpZiAoYWxpZ25tZW50ID09IDEpCi0gICAgICAgIGFsaWduZWRfc2l6ZSA9IHNpemU7Ci0g
ICAgZWxzZSBpZiAoc2l6ZSA8IGFsaWdubWVudCkKLSAgICAgICAgYWxpZ25lZF9zaXplID0gYWxp
Z25tZW50OwotICAgIGVsc2UKLSAgICAgICAgYWxpZ25lZF9zaXplID0gcGFzX3JvdW5kX3VwX3Rv
X3Bvd2VyX29mXzIoc2l6ZSwgYWxpZ25tZW50KTsKLSAgICAKLSAgICBpbmRleCA9IHBhc19zZWdy
ZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3ByaW1pdGl2ZV9jb3VudChhbGlnbmVkX3NpemUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
ZmlnKTsKLQotICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIHBhc19sb2coImFsaWduZWRfc2l6
ZSA9ICV6dSwgaW5kZXggPSAlenUsIGFsaWdubWVudCA9ICV6dS5cbiIsCi0gICAgICAgICAgICAg
ICAgYWxpZ25lZF9zaXplLCBpbmRleCwgYWxpZ25tZW50KTsKLSAgICB9Ci0KLSAgICBjYWNoZSA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwotICAgIGlmIChQQVNfTElLRUxZKGNh
Y2hlKSkgewotICAgICAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9jYXRvcl9yZXN1bHQ7Ci0gICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKLSAgICAgICAgCi0gICAgICAgIGRlc2lnbmF0ZWRfaW5k
ZXggPSBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4KAotICAg
ICAgICAgICAgaW5kZXgsIGRlc2lnbmF0aW9uX21vZGUsIGNvbmZpZyk7Ci0gICAgICAgIGlmIChQ
QVNfTElLRUxZKGRlc2lnbmF0ZWRfaW5kZXguZGlkX3N1Y2NlZWQpKSB7Ci0gICAgICAgICAgICBh
bGxvY2F0b3JfcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nl
c3MoCi0gICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2ltcGwoCi0gICAgICAgICAgICAgICAgICAgIGNhY2hlLAotICAgICAgICAgICAgICAg
ICAgICBkZXNpZ25hdGVkX2luZGV4LmluZGV4ICogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hl
YXBfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGNvbmZpZykpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGlmIChQQVNfVU5MSUtFTFkoaW5kZXggPj0gUEFTX05VTV9JTlRSSU5TSUNfU0la
RV9DTEFTU0VTKSkgewotICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9Ci0gICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2FsbG9jYXRvcl9pbmRleF9m
b3JfaW5kZXgoCi0gICAgICAgICAgICAgICAgICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFw
LAotICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfd2l0aGlu
X3NpemVfY2xhc3NfcHJvZ3Jlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9j
a19pc19ub3RfaGVsZCk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBhbGxv
Y2F0b3JfaW5kZXggPSBpbnRyaW5zaWNfc3VwcG9ydC0+aW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4
W2luZGV4XTsKLSAgICAgICAgCi0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJhbGxvY2F0b3JfaW5kZXggPSAldS5cbiIsIGFsbG9jYXRvcl9pbmRleCk7
Ci0gICAgICAgIAotICAgICAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcigKLSAgICAgICAgICAgICAgICBjYWNoZSwgYWxs
b2NhdG9yX2luZGV4LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBhbGxvY2F0b3IgPSAocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yX3Jlc3VsdC5hbGxv
Y2F0b3I7Ci0KLSAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3JfcmVzdWx0LmRp
ZF9zdWNjZWVkIHx8IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9zaXplKTsKLSAg
ICAKLSAgICAgICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQgb3V0IGluIHRoZSBub24t
YWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFuZAotICAgICAgICAgICBh
bGlnbm1lbnQgYmVpbmcgdGhlIGNvbnN0YW50IDEuICovCi0gICAgICAgIGlmIChhbGlnbm1lbnQg
IT0gMSAmJiBhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkCi0gICAgICAgICAgICAmJiBhbGln
bm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3IpKSB7Ci0gICAg
ICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgICAgIHBhc19sb2coIkRpc2NhcmRp
bmcgZ29vZCBhbGxvY2F0b3IgcmVzdWx0IGJlY2F1c2UgYWxpZ25tZW50IGlzIGluYWRlcXVhdGUg
IgotICAgICAgICAgICAgICAgICAgICAgICAgIiglenUsIG5lZWRlZCAlenUpLlxuIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRv
ciksIGFsaWdubWVudCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhbGxvY2F0b3JfcmVz
dWx0LmRpZF9zdWNjZWVkID0gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoUEFTX0xJ
S0VMWShhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkKSkgewotICAgICAgICAgICAgcmV0dXJu
IHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCgKLSAgICAgICAgICAgICAgICBhbGxvY2F0b3IsIHBh
c190cml2aWFsX3NpemVfdGh1bmssICh2b2lkKilhbGlnbmVkX3NpemUsIGFsaWdubWVudCk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBmYWtlX2hlYXBfcmVmLnR5cGUgPSBoZWFwLT50eXBlOwot
ICAgIGZha2VfaGVhcF9yZWYuaGVhcCA9IGhlYXA7Ci0gICAgZmFrZV9oZWFwX3JlZi5hbGxvY2F0
b3JfaW5kZXggPSBVSU5UX01BWDsKLQotICAgIHJldHVybiB0cnlfYWxsb2NhdGVfY29tbW9uX3Ns
b3coJmZha2VfaGVhcF9yZWYsIGFsaWduZWRfc2l6ZSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQp
OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0Ci1w
YXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wbF9pbmxpbmVfb25seSgKLSAg
ICBzaXplX3Qgc2l6ZSwKLSAgICBzaXplX3QgYWxpZ25tZW50LAotICAgIHBhc19pbnRyaW5zaWNf
aGVhcF9zdXBwb3J0KiBpbnRyaW5zaWNfc3VwcG9ydCwKLSAgICBwYXNfaGVhcF9jb25maWcgY29u
ZmlnLAotICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3RfaW5saW5lX29ubHkgdHJ5X2Fs
bG9jYXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5LAotICAgIHBhc19pbnRyaW5zaWNfaGVhcF9k
ZXNpZ25hdGlvbl9tb2RlIGRlc2lnbmF0aW9uX21vZGUpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHNpemVfdCBhbGlnbmVkX3NpemU7Ci0gICAg
c2l6ZV90IGluZGV4OwotICAgIHBhc19kZXNpZ25hdGVkX2luZGV4X3Jlc3VsdCBkZXNpZ25hdGVk
X2luZGV4OwotICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlOwotICAgIHVuc2lnbmVk
IGFsbG9jYXRvcl9pbmRleDsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0
b3JfcmVzdWx0OwotICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKLQotICAgIFBB
U19BU1NFUlQoYWxpZ25tZW50ID09IDEgfHwgIWRlc2lnbmF0aW9uX21vZGUpOwotCi0gICAgaWYg
KHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coImluIGltcGxfaW5saW5lX29ubHkgZm9yICVzXG4i
LCBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRfc3RyaW5nKGNvbmZpZy5raW5kKSk7Ci0KLSAgICBp
ZiAoIXBhc19pc19wb3dlcl9vZl8yKGFsaWdubWVudCkpCi0gICAgICAgIHJldHVybiBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKLQotICAgIC8qIEluIHRoZSBub24tbWVt
YWxpZ24gY2FzZSwgd2UgY2FuIGhhcHBpbHkgaGFuZGxlIHplcm8tc2l6ZWQgYWxsb2NhdGlvbnMg
d2l0aCBhbGlnbmVkX3NpemUKLSAgICAgICBiZWluZyAwLiBUaGlzIHdvcmtzIGJlY2F1c2UgdGhl
IGhlYXAncyAwIHNpemUgY2xhc3MgaXMganVzdCBhIGNvcHkgb2YgdGhlIG1pbmFsaWduIHNpemUK
LSAgICAgICBjbGFzcy4gQnV0IHdlIGNhbm5vdCBkbyB0aGlzIHByb3Blcmx5IGlmIHRoZSAwIHNp
emUgY2xhc3MgaGFzIHRvIGhhdmUgc29tZSBhbGlnbm1lbnQuIFRoYXQncwotICAgICAgIGJlY2F1
c2Ugd2UgZXhwZWN0IHRoYXQgZm9yIGEgc2l6ZSBjbGFzcyB0byBzYXRpc2Z5IHNvbWUgYWxpZ25t
ZW50LCB0aGF0IHNpemUgbXVzdCBpdHNlbGYKLSAgICAgICBiZSBhbGlnbmVkIHRvIHRoYXQgYWxp
Z25tZW50LiAqLwotICAgIGlmIChhbGlnbm1lbnQgPT0gMSkKLSAgICAgICAgYWxpZ25lZF9zaXpl
ID0gc2l6ZTsKLSAgICBlbHNlIGlmIChzaXplIDwgYWxpZ25tZW50KQotICAgICAgICBhbGlnbmVk
X3NpemUgPSBhbGlnbm1lbnQ7Ci0gICAgZWxzZQotICAgICAgICBhbGlnbmVkX3NpemUgPSBwYXNf
cm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXplLCBhbGlnbm1lbnQpOwotICAgIAotICAgIGluZGV4
ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3JfcHJpbWl0aXZlX2NvdW50KGFsaWduZWRf
c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWcpOwotCi0gICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygi
YWxpZ25lZF9zaXplID0gJXp1LCBpbmRleCA9ICV6dSwgYWxpZ25tZW50ID0gJXp1LlxuIiwKLSAg
ICAgICAgICAgICAgICBhbGlnbmVkX3NpemUsIGluZGV4LCBhbGlnbm1lbnQpOwotICAgIH0KLQot
ICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAgaWYgKFBB
U19VTkxJS0VMWSghY2FjaGUpKQotICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyZWF0ZV9mYWlsdXJlKCk7Ci0gICAgCi0gICAgZGVzaWduYXRlZF9pbmRleCA9IHBhc19kZXNp
Z25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXgoCi0gICAgICAgIGluZGV4LCBk
ZXNpZ25hdGlvbl9tb2RlLCBjb25maWcpOwotICAgIGlmIChQQVNfTElLRUxZKGRlc2lnbmF0ZWRf
aW5kZXguZGlkX3N1Y2NlZWQpKSB7Ci0gICAgICAgIGFsbG9jYXRvcl9yZXN1bHQgPSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcygKLSAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAotICAgICAgICAgICAgICAg
IGNhY2hlLAotICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfaW5kZXguaW5kZXggKiBwYXNfZGVz
aWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fYWxsb2NhdG9yX2luZGljZXMoY29uZmlnKSkpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChQQVNfVU5MSUtFTFkoaW5kZXggPj0gUEFTX05VTV9J
TlRSSU5TSUNfU0laRV9DTEFTU0VTKSkKLSAgICAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKLSAgICAgICAgCi0gICAgICAgIGFsbG9jYXRvcl9p
bmRleCA9IGludHJpbnNpY19zdXBwb3J0LT5pbmRleF90b19hbGxvY2F0b3JfaW5kZXhbaW5kZXhd
OwotICAgICAgICAKLSAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICBwYXNfbG9nKCJh
bGxvY2F0b3JfaW5kZXggPSAldS5cbiIsIGFsbG9jYXRvcl9pbmRleCk7Ci0gICAgICAgIAotICAg
ICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xv
Y2FsX2FsbG9jYXRvcihjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKLSAgICB9Ci0gICAgCi0gICAg
aWYgKFBBU19VTkxJS0VMWSghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCkpCi0gICAgICAg
IHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKLSAgICAKLSAg
ICBhbGxvY2F0b3IgPSAocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yX3Jlc3VsdC5hbGxv
Y2F0b3I7Ci0gICAgCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3JfcmVzdWx0LmRp
ZF9zdWNjZWVkIHx8IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9zaXplKTsKLSAg
ICAKLSAgICAvKiBUaGlzIHNob3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGln
bm1lbnQgY2FzZSBiZWNhdXNlIG9mIEFMV0FZU19JTkxJTkUgYW5kCi0gICAgICAgYWxpZ25tZW50
IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLwotICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGln
bm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3IpKSB7Ci0gICAg
ICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJEaXNjYXJkaW5nIGdvb2Qg
YWxsb2NhdG9yIHJlc3VsdCBiZWNhdXNlIGFsaWdubWVudCBpcyBpbmFkZXF1YXRlICIKLSAgICAg
ICAgICAgICAgICAgICAgIiglenUsIG5lZWRlZCAlenUpLlxuIiwKLSAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yKSwgYWxpZ25tZW50KTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9m
YWlsdXJlKCk7Ci0gICAgfQotICAgIAotICAgIHJldHVybiB0cnlfYWxsb2NhdGVfY29tbW9uX2Zh
c3RfaW5saW5lX29ubHkoYWxsb2NhdG9yKTsKLX0KLQotI2RlZmluZSBQQVNfQ1JFQVRFX1RSWV9B
TExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUSVZFKG5hbWUsIGhlYXBfY29uZmlnLCBydW50aW1lX2Nv
bmZpZywgYWxsb2NhdG9yX2NvdW50cywgcmVzdWx0X2ZpbHRlciwgaGVhcCwgaGVhcF9zdXBwb3J0
LCBkZXNpZ25hdGlvbl9tb2RlKSBcCi0gICAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQ09NTU9O
KCBcCi0gICAgICAgIG5hbWUgIyMgX2ltcGwsIFwKLSAgICAgICAgcGFzX2Zha2VfaGVhcF9yZWZf
a2luZCwgXAotICAgICAgICAoaGVhcF9jb25maWcpLCBcCi0gICAgICAgIChydW50aW1lX2NvbmZp
ZyksIFwKLSAgICAgICAgKGFsbG9jYXRvcl9jb3VudHMpLCBcCi0gICAgICAgIHBhc19mb3JjZV9j
b3VudF9sb29rdXAsIFwKLSAgICAgICAgKHJlc3VsdF9maWx0ZXIpKTsgXAotICAgIFwKLSAgICBz
dGF0aWMgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAotICAgIG5hbWUg
IyMgX21lZGl1bV9zbG93X2Nhc2Uoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKLSAg
ICB7IFwKLSAgICAgICAgcmV0dXJuIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2
ZV9pbXBsX21lZGl1bV9zbG93X2Nhc2UoIFwKLSAgICAgICAgICAgIChoZWFwKSwgc2l6ZSwgYWxp
Z25tZW50LCAoaGVhcF9zdXBwb3J0KSwgKGhlYXBfY29uZmlnKSwgXAotICAgICAgICAgICAgbmFt
ZSAjIyBfaW1wbF9mYXN0LCBuYW1lICMjIF9pbXBsX3Nsb3csIChkZXNpZ25hdGlvbl9tb2RlKSk7
IFwKLSAgICB9IFwKLSAgICBcCi0gICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9pbmxpbmVfb25seShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFs
aWdubWVudCkgXAotICAgIHsgXAotICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWNfcHJpbWl0aXZlX2ltcGxfaW5saW5lX29ubHkoIFwKLSAgICAgICAgICAgIHNpemUsIGFs
aWdubWVudCwgKGhlYXBfc3VwcG9ydCksIChoZWFwX2NvbmZpZyksIFwKLSAgICAgICAgICAgIG5h
bWUgIyMgX2ltcGxfZmFzdF9pbmxpbmVfb25seSwgKGRlc2lnbmF0aW9uX21vZGUpKTsgXAotICAg
IH0gXAotICAgIFwKLSAgICBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25f
cmVzdWx0IG5hbWUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKLSAgICB7IFwKLSAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOyBcCi0gICAgICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7IFwKLSAgICAgICAgcmVzdWx0ID0gbmFtZSAjIyBfaW5s
aW5lX29ubHkoc2l6ZSwgYWxpZ25tZW50KTsgXAotICAgICAgICBpZiAoUEFTX0xJS0VMWShyZXN1
bHQuZGlkX3N1Y2NlZWQpKSB7IFwKLSAgICAgICAgICAgIGlmICh2ZXJib3NlKSBcCi0gICAgICAg
ICAgICAgICAgcGFzX2xvZygiUmV0dXJuaW5nIHN1Y2Nlc3NmdWwgcmVzdWx0IChiZWdpbiA9ICVw
KVxuIiwgKHZvaWQqKXJlc3VsdC5iZWdpbik7IFwKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
IFwKLSAgICAgICAgfSBcCi0gICAgICAgIHJldHVybiBuYW1lICMjIF9tZWRpdW1fc2xvd19jYXNl
KHNpemUsIGFsaWdubWVudCk7IFwKLSAgICB9IFwKLSAgICBcCi0gICAgc3RhdGljIFBBU19VTlVT
RUQgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAotICAgIG5hbWUgIyMg
X2Zvcl9yZWFsbG9jKHNpemVfdCBzaXplKSBcCi0gICAgeyBcCi0gICAgICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsgXAotICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQg
cmVzdWx0ID0gbmFtZShzaXplLCAxKTsgXAotICAgICAgICBpZiAodmVyYm9zZSkgXAotICAgICAg
ICAgICAgcGFzX2xvZygicmVzdWx0LmJlZ2luID0gJXBcbiIsIHJlc3VsdC5iZWdpbik7IFwKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsgXAotICAgIH0gXAotICAgIFwKLSAgICBzdHJ1Y3QgcGFzX2R1
bW15Ci0KLXR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9p
bnRyaW5zaWNfcHJpbWl0aXZlKShzaXplX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxp
Z25tZW50KTsKLQotdHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9j
YXRlX2ludHJpbnNpY19wcmltaXRpdmVfZm9yX3JlYWxsb2MpKHNpemVfdCBzaXplKTsKLQotUEFT
X0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BS
SU1JVElWRV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAkocmV2aXNpb24g
MjgzMTc4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxv
Y2F0ZV9wcmltaXRpdmUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDYgKzM3LDI0IEBACiAKIFBB
U19CRUdJTl9FWFRFUk5fQzsKIAorLyogVGhpcyBoZWFkZXIgcHJvdmlkZXMgZW50cnlwb2ludHMg
Zm9yIGJvdGggcHJpbWl0aXZlIGFuZCBmbGV4IGhlYXBzLiBZb3Ugc2VsZWN0IHRoZSBtb2RlIGJ5
IHBhc3NpbmcKKyAgIGVpdGhlciB0aGUgcHJpbWl0aXZlIGhlYXBfcnVudHVpbWVfY29uZmlnIG9y
IHRoZSBmbGV4IGhlYXBfcnVudGltZV9jb25maWcuCisgICAKKyAgIFByaW1pdGl2ZSBoZWFwcyBh
cmUgZm9yIG9iamVjdHMgdGhhdCBzaG91bGQgYmUga2VwdCBzZXBhcmF0ZSBmcm9tIHRoZSBtYWlu
IGhlYXAgYnV0IHRoYXQgb3RoZXJ3aXNlCisgICBkb24ndCBoYXZlIGFueSBpbnRlcmVzdGluZyB0
eXBlLiBTbywgdGhleSBhcmUgbGlrZSBpbnRyaW5zaWMgaGVhcHMsIGJ1dCB0aGUgdHVuaW5nIGhh
cyB0byBiZSBzdWNoCisgICB0aGF0IHdlIGFyZSBlZmZpY2llbnQgZm9yIGxvdHMgb2Ygc21hbGwg
aGVhcHMuIEJ1dCwgdGhlcmUncyBubyByZXN0cmljdGlvbiBvbiB3aGV0aGVyIHRoZSBkYXRhIGlu
CisgICB0aGUgaGVhcCBpcyByZXVzZWQgaW4gYW55IHBhcnRpY3VsYXIgd2F5IC0tIHdlIHJ1biB0
aGlzIHdpdGggYSB0eXBlIHNpemUgb2YgMS4KKworICAgVGhlc2UgaGF2ZSBhbGwgdGhlIGZ1bmN0
aW9uYWxpdHkgb2YgaW50cmluc2ljIGhlYXBzIGJ1dCBhcmUgdHVuZWQgdG8gYWxsb3cgZm9yIHRo
ZXJlIHRvIGJlIGEKKyAgIHZhcmlhYmxlIG51bWJlciBvZiBoZWFwcy4gV2hpbGUgbGlicGFzIGtu
b3dzIGFib3V0IGV2ZXJ5IGludHJpbnNpYyBoZWFwIHRoYXQgYSBoZWFwX2NvbmZpZyBtYXkKKyAg
IGhhdmUsIGxpYnBhcyBhbGxvd3MgcHJpbWl0aXZlIGhlYXBzIHRvIGJlIGNyZWF0ZWQgYnkgbGli
cGFzIGNsaWVudHMuCisKKyAgIEZsZXggaGVhcHMgYXJlIGZvciBmbGV4aWJsZSBhcnJheSBtZW1i
ZXJzLiBDdXJyZW50bHkgd2UgdHVuZSB0aGVtIGFsbW9zdCBleGFjdGx5IGxpa2UgcHJpbWl0aXZl
CisgICBoZWFwcyBleGNlcHQgdGhhdCBiaXRmaXQgaXMgZGlzYWJsZWQgZm9yIGZsZXguCisKKyAg
IEZJWE1FOiBGbGV4IGhlYXBzIHNob3VsZCBwcm92aWRlIHN0cm9uZ2VyIGlzb2xhdGlvbiBpbiB0
aGUgbGFyZ2UgaGVhcC4gVGhhdCBjYW4gYmUgYWNoaWV2ZWQgd2hpbGUKKyAgIHN0aWxsIGtlZXBp
bmcgdGhlc2UgZW50cnlwb2ludHMuIEl0J3MganVzdCBhIGRpZmZlcmVudCBsYXJnZSBoZWFwIHJl
dXNlIHBvbGljeS4gKi8KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdAogcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbWl0aXZlX2hl
YXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IHNpemUsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3Jl
YWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdHJ5X3JlYWxsb2NhdGUuaAkocmV2aXNpb24gMjgzMTc4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJwYXNfcmVhbGxvY2F0ZV9oZWFwX3RlbGVwb3J0
X3J1bGUuaCIKICNpbmNsdWRlICJwYXNfdHJ5X2FsbG9jYXRlLmgiCiAjaW5jbHVkZSAicGFzX3Ry
eV9hbGxvY2F0ZV9hcnJheS5oIgotI2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGVfaW50cmluc2lj
X3ByaW1pdGl2ZS5oIgorI2luY2x1ZGUgInBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgiCiAj
aW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaCIKIAogUEFTX0JFR0lOX0VYVEVS
Tl9DOwpAQCAtMzY3LDQwICszNjcsNDAgQEAgcGFzX3RyeV9yZWFsbG9jYXRlKHZvaWQqIG9sZF9w
dHIsCiB9CiAKIHR5cGVkZWYgc3RydWN0IHsKLSAgICBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNp
Y19wcmltaXRpdmVfZm9yX3JlYWxsb2MgdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmU7
Ci19IHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2FsbG9jYXRlX2RhdGE7
CisgICAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfZm9yX3JlYWxsb2MgdHJ5X2FsbG9jYXRl
X2ludHJpbnNpYzsKK30gcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19hbGxvY2F0ZV9kYXRh
OwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
Ci1wYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9hbGxvY2F0ZV9jYWxsYmFj
aygKK3Bhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfYWxsb2NhdGVfY2FsbGJhY2soCiAgICAg
cGFzX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IG5ld19jb3VudCwKICAgICB2b2lkKiBhcmcpCiB7
Ci0gICAgcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfYWxsb2NhdGVfZGF0
YSogZGF0YTsKKyAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX2FsbG9jYXRlX2RhdGEq
IGRhdGE7CiAKICAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOwogICAgIAotICAgIGRhdGEgPSAo
cGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfYWxsb2NhdGVfZGF0YSopYXJn
OworICAgIGRhdGEgPSAocGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19hbGxvY2F0ZV9kYXRh
Kilhcmc7CiAgICAgCiAgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGVfd2l0aF9pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCi0gICAgICAgIGRhdGEtPnRyeV9h
bGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKG5ld19jb3VudCksCisgICAgICAgIGRhdGEtPnRy
eV9hbGxvY2F0ZV9pbnRyaW5zaWMobmV3X2NvdW50KSwKICAgICAgICAgTlVMTCwKICAgICAgICAg
bmV3X2NvdW50KTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdAotcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCitwYXNfdHJ5
X3JlYWxsb2NhdGVfaW50cmluc2ljKAogICAgIHZvaWQqIG9sZF9wdHIsCiAgICAgcGFzX2hlYXAq
IGhlYXAsCiAgICAgc2l6ZV90IG5ld19zaXplLAogICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcs
Ci0gICAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2Zvcl9yZWFsbG9jIHRy
eV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLAorICAgIHBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljX2Zvcl9yZWFsbG9jIHRyeV9hbGxvY2F0ZV9pbnRyaW5zaWMsCiAgICAgcGFzX3JlYWxs
b2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxlIHRlbGVwb3J0X3J1bGUsCiAgICAgcGFzX3JlYWxsb2Nh
dGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmlu
c2ljX3ByaW1pdGl2ZV9hbGxvY2F0ZV9kYXRhIGRhdGE7CisgICAgcGFzX3RyeV9yZWFsbG9jYXRl
X2ludHJpbnNpY19hbGxvY2F0ZV9kYXRhIGRhdGE7CiAgICAgCi0gICAgZGF0YS50cnlfYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZSA9IHRyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZl
OworICAgIGRhdGEudHJ5X2FsbG9jYXRlX2ludHJpbnNpYyA9IHRyeV9hbGxvY2F0ZV9pbnRyaW5z
aWM7CiAgICAgCiAgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCiAgICAgICAgIHBhc190cnlfcmVhbGxvY2F0ZSgKQEAg
LTQxMCw3ICs0MTAsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgK
ICAgICAgICAgICAgIGNvbmZpZywKICAgICAgICAgICAgIHRlbGVwb3J0X3J1bGUsCiAgICAgICAg
ICAgICBmcmVlX21vZGUsCi0gICAgICAgICAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2lj
X3ByaW1pdGl2ZV9hbGxvY2F0ZV9jYWxsYmFjaywKKyAgICAgICAgICAgIHBhc190cnlfcmVhbGxv
Y2F0ZV9pbnRyaW5zaWNfYWxsb2NhdGVfY2FsbGJhY2ssCiAgICAgICAgICAgICAmZGF0YSkpOwog
fQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcC5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9o
ZWFwLmMJKHJldmlzaW9uIDI4MzE3OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3RoaW5neV9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNs
dWRlICJwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oIgogI2luY2x1ZGUgInBhc190cnlfYWxsb2Nh
dGUuaCIKICNpbmNsdWRlICJwYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgiCi0jaW5jbHVkZSAicGFz
X3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmgiCisjaW5jbHVkZSAicGFzX3RyeV9h
bGxvY2F0ZV9pbnRyaW5zaWMuaCIKICNpbmNsdWRlICJwYXNfdHJ5X3JlYWxsb2NhdGUuaCIKICNp
bmNsdWRlICJ0aGluZ3lfaGVhcF9jb25maWcuaCIKIApAQCAtNDQsMjkgKzQ0LDI5IEBACiBwYXNf
aW50cmluc2ljX2hlYXBfc3VwcG9ydCB0aGluZ3lfcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCA9IFBB
U19JTlRSSU5TSUNfSEVBUF9TVVBQT1JUX0lOSVRJQUxJWkVSOwogCiBwYXNfaGVhcCB0aGluZ3lf
cHJpbWl0aXZlX2hlYXAgPQotICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0hFQVBfSU5JVElB
TElaRVIoCisgICAgUEFTX0lOVFJJTlNJQ19IRUFQX0lOSVRJQUxJWkVSKAogICAgICAgICAmdGhp
bmd5X3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBUSElOR1lfVFlQRV9QUklNSVRJVkUsCiAgICAg
ICAgIHRoaW5neV9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgICAgICBUSElOR1lfSEVBUF9D
T05GSUcsCi0gICAgICAgICZ0aGluZ3lfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZp
Zy5iYXNlKTsKKyAgICAgICAgJnRoaW5neV9pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSk7
CiAKIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0IHRoaW5neV91dGlsaXR5X2hlYXBfc3VwcG9y
dCA9IFBBU19JTlRSSU5TSUNfSEVBUF9TVVBQT1JUX0lOSVRJQUxJWkVSOwogCiBwYXNfaGVhcCB0
aGluZ3lfdXRpbGl0eV9oZWFwID0KLSAgICBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9IRUFQX0lO
SVRJQUxJWkVSKAorICAgIFBBU19JTlRSSU5TSUNfSEVBUF9JTklUSUFMSVpFUigKICAgICAgICAg
JnRoaW5neV91dGlsaXR5X2hlYXAsCiAgICAgICAgIFRISU5HWV9UWVBFX1BSSU1JVElWRSwKICAg
ICAgICAgdGhpbmd5X3V0aWxpdHlfaGVhcF9zdXBwb3J0LAogICAgICAgICBUSElOR1lfSEVBUF9D
T05GSUcsCi0gICAgICAgICZ0aGluZ3lfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZp
Zy5iYXNlKTsKKyAgICAgICAgJnRoaW5neV9pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSk7
CiAKIHBhc19hbGxvY2F0b3JfY291bnRzIHRoaW5neV9hbGxvY2F0b3JfY291bnRzOwogCi1QQVNf
Q1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUSVZFKAorUEFTX0NSRUFURV9UUllf
QUxMT0NBVEVfSU5UUklOU0lDKAogICAgIHRyeV9hbGxvY2F0ZV9wcmltaXRpdmUsCiAgICAgVEhJ
TkdZX0hFQVBfQ09ORklHLAotICAgICZ0aGluZ3lfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1l
X2NvbmZpZy5iYXNlLAorICAgICZ0aGluZ3lfaW50cmluc2ljX3J1bnRpbWVfY29uZmlnLmJhc2Us
CiAgICAgJnRoaW5neV9hbGxvY2F0b3JfY291bnRzLAogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9pZGVudGl0eSwKICAgICAmdGhpbmd5X3ByaW1pdGl2ZV9oZWFwLApAQCAtOTAsNyArOTAsNyBA
QCB2b2lkKiB0aGluZ3lfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV93aXRoCiAKIHZvaWQqIHRoaW5n
eV90cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXpl
KQogewotICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmlt
aXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljKAog
ICAgICAgICBvbGRfcHRyLAogICAgICAgICAmdGhpbmd5X3ByaW1pdGl2ZV9oZWFwLAogICAgICAg
ICBuZXdfc2l6ZSwKQEAgLTE2NSwxMCArMTY1LDEwIEBAIHBhc19oZWFwKiB0aGluZ3lfaGVhcF9y
ZWZfZ2V0X2hlYXAocGFzX2gKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aGluZ3lfdHlw
ZWRfcnVudGltZV9jb25maWcuYmFzZSk7CiB9CiAKLVBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lO
VFJJTlNJQ19QUklNSVRJVkUoCitQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUMoCiAg
ICAgdXRpbGl0eV9oZWFwX2FsbG9jYXRlLAogICAgIFRISU5HWV9IRUFQX0NPTkZJRywKLSAgICAm
dGhpbmd5X2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKKyAgICAmdGhp
bmd5X2ludHJpbnNpY19ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZ0aGluZ3lfYWxsb2NhdG9y
X2NvdW50cywKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCiAgICAg
JnRoaW5neV91dGlsaXR5X2hlYXAsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy90aGluZ3lfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgzMTc4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcGFzX2hlYXBfY29uZmlnIHRoaW5neV9o
ZWFwX2NvbmZpZyA9IFRISQogUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RFRklOSVRJT05TKAogICAg
IHRoaW5neSwgVEhJTkdZLAogICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gdHJ1ZSwK
LSAgICAuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hlYXBf
cnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KTsKKyAgICAuaW50cmluc2lj
X3ZpZXdfY2FjaGVfY2FwYWNpdHkgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdf
Y2FjaGVfY2FwYWNpdHkpOwogCiAjZW5kaWYgLyogUEFTX0VOQUJMRV9USElOR1kgKi8KIApJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9z
VGVzdHMuY3BwCShyZXZpc2lvbiAyODMxNzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYzLDcgKzEw
NjMsNyBAQCB2b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCkKICAgICAgICAgICAgICAgICBzZWxl
Y3RlZEhlYXBDb25maWcgPSAmYm1hbGxvY19oZWFwX2NvbmZpZzsKICAgICAgICAgICAgICAgICBz
ZWxlY3RlZEFsbG9jYXRlQ29tbW9uUHJpbWl0aXZlID0gYm1hbGxvY19hbGxvY2F0ZTsKICAgICAg
ICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRlID0gYm1hbGxvY19pc29fYWxsb2NhdGU7Ci0gICAg
ICAgICAgICAgICAgc2VsZWN0ZWRBbGxvY2F0ZUFycmF5ID0gbnVsbHB0cjsKKyAgICAgICAgICAg
ICAgICBzZWxlY3RlZEFsbG9jYXRlQXJyYXkgPSBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV93
aXRoX2FsaWdubWVudDsKICAgICAgICAgICAgICAgICBzZWxlY3RlZERlYWxsb2NhdGUgPSBibWFs
bG9jX2RlYWxsb2NhdGU7CiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb21tb25QcmltaXRpdmVI
ZWFwID0gJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwOwogICAgICAgICAgICAgICAgIHNl
bGVjdGVkSGVhcFJlZkdldEhlYXAgPSBibWFsbG9jX2hlYXBfcmVmX2dldF9oZWFwOwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCShyZXZp
c2lvbiAyODMxNzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5l
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSwxMCArODUsMTAgQEAgc3RydWN0IFRlc3RTY29w
ZUltcGwgewogfTsKIAogI2RlZmluZSBGT1JfRUFDSF9SVU5USU1FX0NPTkZJRyhuYW1lLCBjYWxs
YmFjaykgKHsgXAotICAgICAgICAoY2FsbGJhY2spKG5hbWUgIyMgX2ludHJpbnNpY19wcmltaXRp
dmVfcnVudGltZV9jb25maWcuYmFzZSk7IFwKKyAgICAgICAgKGNhbGxiYWNrKShuYW1lICMjIF9p
bnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSk7IFwKICAgICAgICAgKGNhbGxiYWNrKShuYW1l
ICMjIF9wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSk7IFwKICAgICAgICAgKGNhbGxiYWNr
KShuYW1lICMjIF90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlKTsgXAotICAgICAgICAoY2FsbGJh
Y2spKG5hbWUgIyMgX29iamNfcnVudGltZV9jb25maWcuYmFzZSk7IFwKKyAgICAgICAgKGNhbGxi
YWNrKShuYW1lICMjIF9mbGV4X3J1bnRpbWVfY29uZmlnLmJhc2UpOyBcCiAgICAgfSkKIAogUnVu
dGltZUNvbmZpZ1Rlc3RTY29wZTo6UnVudGltZUNvbmZpZ1Rlc3RTY29wZSgK
</data>
<flag name="review"
          id="463524"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>