<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>6082</bug_id>
          
          <creation_ts>2005-02-10 17:03:17 +0300</creation_ts>
          <short_desc>compilation fix</short_desc>
          <delta_ts>2005-04-29 12:42:00 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>bash</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kachalov Anton">mouse</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>21886</commentid>
    <comment_count>0</comment_count>
    <who name="Kachalov Anton">mouse</who>
    <bug_when>2005-02-10 17:03:19 +0300</bug_when>
    <thetext>fix compilation with gcc3.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21887</commentid>
    <comment_count>1</comment_count>
      <attachid>725</attachid>
    <who name="Kachalov Anton">mouse</who>
    <bug_when>2005-02-10 17:04:27 +0300</bug_when>
    <thetext>Created attachment 725
small fix near default label</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21997</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-02-12 18:09:52 +0300</bug_when>
    <thetext>Fixed in bash-2.05b-alt7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24037</commentid>
    <comment_count>3</comment_count>
    <who name="Kachalov Anton">mouse</who>
    <bug_when>2005-04-29 12:41:59 +0400</bug_when>
    <thetext>thanks</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>725</attachid>
            <date>2005-02-10 17:04:27 +0300</date>
            <delta_ts>2005-02-10 17:04:27 +0300</delta_ts>
            <desc>small fix near default label</desc>
            <filename>bash-2.05b-owl-alt-fixes.patch</filename>
            <type>text/plain</type>
            <size>47632</size>
            <attacher name="Kachalov Anton">mouse</attacher>
            
              <data encoding="base64">ZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9iYXNoam1wLmggYmFzaC0yLjA1Yi9iYXNo
am1wLmgKLS0tIGJhc2gtMi4wNWIub3JpZy9iYXNoam1wLmgJMTk5OS0wOC0wNSAxNToyNDoxMiAr
MDQwMAorKysgYmFzaC0yLjA1Yi9iYXNoam1wLmgJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApA
QCAtMjcsNyArMjcsOSBAQCBleHRlcm4gcHJvY2Vudl90CXRvcF9sZXZlbDsKIGV4dGVybiBwcm9j
ZW52X3QJc3Vic2hlbGxfdG9wX2xldmVsOwogZXh0ZXJuIHByb2NlbnZfdAlyZXR1cm5fY2F0Y2g7
CS8qIHVzZWQgYnkgYHJldHVybicgYnVpbHRpbiAqLwogCisjaWZkZWYgSU5DTFVERV9VTlVTRUQK
ICNkZWZpbmUgU0hGVU5DX1JFVFVSTigpCWxvbmdqbXAgKHJldHVybl9jYXRjaCwgMSkKKyNlbmRp
ZgogCiAjZGVmaW5lIENPUFlfUFJPQ0VOVihvbGQsIHNhdmUpIFwKIAl4YmNvcHkgKChjaGFyICop
b2xkLCAoY2hhciAqKXNhdmUsIHNpemVvZiAocHJvY2Vudl90KSk7CmRpZmYgLXVwcmsub3JpZyBi
YXNoLTIuMDViLm9yaWcvYmFzaGxpbmUuYyBiYXNoLTIuMDViL2Jhc2hsaW5lLmMKLS0tIGJhc2gt
Mi4wNWIub3JpZy9iYXNobGluZS5jCTIwMDItMDUtMDcgMjM6NTI6NDIgKzA0MDAKKysrIGJhc2gt
Mi4wNWIvYmFzaGxpbmUuYwkyMDAyLTA5LTE2IDAzOjE3OjA5ICswNDAwCkBAIC01NDIsNyArNTQy
LDcgQEAgc25hcmZfaG9zdHNfZnJvbV9maWxlIChmaWxlbmFtZSkKICAgaWYgKGZpbGUgPT0gMCkK
ICAgICByZXR1cm47CiAKLSAgd2hpbGUgKHRlbXAgPSBmZ2V0cyAoYnVmZmVyLCAyNTUsIGZpbGUp
KQorICB3aGlsZSAoKHRlbXAgPSBmZ2V0cyAoYnVmZmVyLCAyNTUsIGZpbGUpKSkKICAgICB7CiAg
ICAgICAvKiBTa2lwIHRvIGZpcnN0IGNoYXJhY3Rlci4gKi8KICAgICAgIGZvciAoaSA9IDA7IGJ1
ZmZlcltpXSAmJiBjcl93aGl0ZXNwYWNlIChidWZmZXJbaV0pOyBpKyspCkBAIC0xNjAzLDcgKzE2
MDMsNyBAQCBiYXNoX2dyb3VwbmFtZV9jb21wbGV0aW9uX2Z1bmN0aW9uICh0ZXh0CiAgICAgICBz
ZXRncmVudCAoKTsKICAgICB9CiAKLSAgd2hpbGUgKGdyZW50ID0gZ2V0Z3JlbnQgKCkpCisgIHdo
aWxlICgoZ3JlbnQgPSBnZXRncmVudCAoKSkpCiAgICAgewogICAgICAgaWYgKGduYW1lbGVuID09
IDAgfHwgKFNUUkVRTiAoZ25hbWUsIGdyZW50LT5ncl9uYW1lLCBnbmFtZWxlbikpKQogICAgICAg
ICBicmVhazsKQEAgLTI3NTcsNyArMjc1Nyw3IEBAIGlzb2xhdGVfc2VxdWVuY2UgKHN0cmluZywg
aW5kLCBuZWVkX2RxdW8KICAgaWYgKHN0YXJ0cCkKICAgICAqc3RhcnRwID0gZGVsaW0gPyArK2kg
OiBpOwogCi0gIGZvciAocGFzc2MgPSAwOyBjID0gc3RyaW5nW2ldOyBpKyspCisgIGZvciAocGFz
c2MgPSAwOyAoYyA9IHN0cmluZ1tpXSk7IGkrKykKICAgICB7CiAgICAgICBpZiAocGFzc2MpCiAJ
ewpkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2JyYWNlcy5jIGJhc2gtMi4wNWIvYnJh
Y2VzLmMKLS0tIGJhc2gtMi4wNWIub3JpZy9icmFjZXMuYwkyMDAyLTA1LTA2IDIxOjUwOjQwICsw
NDAwCisrKyBiYXNoLTIuMDViL2JyYWNlcy5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAg
LTI2MCw3ICsyNjAsNyBAQCBicmFjZV9nb2JibGVyICh0ZXh0LCB0bGVuLCBpbmR4LCBzYXRpc2Z5
CiAgIGxldmVsID0gcXVvdGVkID0gcGFzc19uZXh0ID0gMDsKIAogICBpID0gKmluZHg7Ci0gIHdo
aWxlIChjID0gdGV4dFtpXSkKKyAgd2hpbGUgKChjID0gdGV4dFtpXSkpCiAgICAgewogICAgICAg
aWYgKHBhc3NfbmV4dCkKIAl7CmRpZmYgLXVwcmsub3JpZyBiYXNoLTIuMDViLm9yaWcvYnVpbHRp
bnMvYmluZC5kZWYgYmFzaC0yLjA1Yi9idWlsdGlucy9iaW5kLmRlZgotLS0gYmFzaC0yLjA1Yi5v
cmlnL2J1aWx0aW5zL2JpbmQuZGVmCTIwMDItMDQtMDQgMjA6MjQ6MTUgKzA0MDAKKysrIGJhc2gt
Mi4wNWIvYnVpbHRpbnMvYmluZC5kZWYJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMTIz
LDYgKzEyMyw4IEBAIGJpbmRfYnVpbHRpbiAobGlzdCkKIAogICBybF9vdXRzdHJlYW0gPSBzdGRv
dXQ7CiAKKyAgY21kX3NlcSA9IE5VTEw7IC8qIG5ldmVyIHVzZWQgKi8KKwogICByZXNldF9pbnRl
cm5hbF9nZXRvcHQgKCk7ICAKICAgd2hpbGUgKChvcHQgPSBpbnRlcm5hbF9nZXRvcHQgKGxpc3Qs
ICJsdnBWUHNTZjpxOnU6bTpyOng6IikpICE9IEVPRikKICAgICB7CmRpZmYgLXVwcmsub3JpZyBi
YXNoLTIuMDViLm9yaWcvYnVpbHRpbnMvY2QuZGVmIGJhc2gtMi4wNWIvYnVpbHRpbnMvY2QuZGVm
Ci0tLSBiYXNoLTIuMDViLm9yaWcvYnVpbHRpbnMvY2QuZGVmCTIwMDItMDctMTUgMjI6NTE6Mzkg
KzA0MDAKKysrIGJhc2gtMi4wNWIvYnVpbHRpbnMvY2QuZGVmCTIwMDItMDktMTYgMDM6MTc6MDkg
KzA0MDAKQEAgLTIwMywxMyArMjAzLDEzIEBAIGNkX2J1aWx0aW4gKGxpc3QpCiAgICAgfQogICBl
bHNlIGlmIChhYnNvbHV0ZV9wYXRobmFtZSAobGlzdC0+d29yZC0+d29yZCkpCiAgICAgZGlybmFt
ZSA9IGxpc3QtPndvcmQtPndvcmQ7Ci0gIGVsc2UgaWYgKGNkcGF0aCA9IGdldF9zdHJpbmdfdmFs
dWUgKCJDRFBBVEgiKSkKKyAgZWxzZSBpZiAoKGNkcGF0aCA9IGdldF9zdHJpbmdfdmFsdWUgKCJD
RFBBVEgiKSkpCiAgICAgewogICAgICAgZGlybmFtZSA9IGxpc3QtPndvcmQtPndvcmQ7CiAKICAg
ICAgIC8qIEZpbmQgZGlyZWN0b3J5IGluICRDRFBBVEguICovCiAgICAgICBwYXRoX2luZGV4ID0g
MDsKLSAgICAgIHdoaWxlIChwYXRoID0gZXh0cmFjdF9jb2xvbl91bml0IChjZHBhdGgsICZwYXRo
X2luZGV4KSkKKyAgICAgIHdoaWxlICgocGF0aCA9IGV4dHJhY3RfY29sb25fdW5pdCAoY2RwYXRo
LCAmcGF0aF9pbmRleCkpKQogCXsKIAkgIC8qIE9QVCBpcyAxIGlmIHRoZSBwYXRoIGVsZW1lbnQg
aXMgbm9uLWVtcHR5ICovCiAJICBvcHQgPSBwYXRoWzBdICE9ICdcMCc7CmRpZmYgLXVwcmsub3Jp
ZyBiYXNoLTIuMDViLm9yaWcvYnVpbHRpbnMvY29tbW9uLmMgYmFzaC0yLjA1Yi9idWlsdGlucy9j
b21tb24uYwotLS0gYmFzaC0yLjA1Yi5vcmlnL2J1aWx0aW5zL2NvbW1vbi5jCTIwMDItMDYtMjgg
MjA6MjQ6MzEgKzA0MDAKKysrIGJhc2gtMi4wNWIvYnVpbHRpbnMvY29tbW9uLmMJMjAwMi0wOS0x
NiAwMzoxNzowOSArMDQwMApAQCAtMjQ0LDcgKzI0NCw3IEBAIHNoX25vam9icyAocykKICAgICAg
Y2hhciAqczsKIHsKICAgaWYgKHMpCi0gICAgYnVpbHRpbl9lcnJvciAoIiVzOiBubyBqb2IgY29u
dHJvbCIpOworICAgIGJ1aWx0aW5fZXJyb3IgKCIlczogbm8gam9iIGNvbnRyb2wiLCBzKTsKICAg
ZWxzZQogICAgIGJ1aWx0aW5fZXJyb3IgKCJubyBqb2IgY29udHJvbCIpOwogfQpkaWZmIC11cHJr
Lm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2J1aWx0aW5zL2RlY2xhcmUuZGVmIGJhc2gtMi4wNWIvYnVp
bHRpbnMvZGVjbGFyZS5kZWYKLS0tIGJhc2gtMi4wNWIub3JpZy9idWlsdGlucy9kZWNsYXJlLmRl
ZgkyMDAyLTA0LTA4IDIxOjIwOjU1ICswNDAwCisrKyBiYXNoLTIuMDViL2J1aWx0aW5zL2RlY2xh
cmUuZGVmCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTIzOCw3ICsyMzgsNyBAQCBkZWNs
YXJlX2ludGVybmFsIChsaXN0LCBsb2NhbF92YXIpCiAjaWYgZGVmaW5lZCAoQVJSQVlfVkFSUykK
ICAgICAgIGNvbXBvdW5kX2FycmF5X2Fzc2lnbiA9IHNpbXBsZV9hcnJheV9hc3NpZ24gPSAwOwog
ICAgICAgc3Vic2NyaXB0X3N0YXJ0ID0gKGNoYXIgKilOVUxMOwotICAgICAgaWYgKHQgPSBzdHJj
aHIgKG5hbWUsICdbJykpCS8qIF0gKi8KKyAgICAgIGlmICgodCA9IHN0cmNociAobmFtZSwgJ1sn
KSkpCS8qIF0gKi8KIAl7CiAJICBzdWJzY3JpcHRfc3RhcnQgPSB0OwogCSAgKnQgPSAnXDAnOwpk
aWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2J1aWx0aW5zL2VjaG8uZGVmIGJhc2gtMi4w
NWIvYnVpbHRpbnMvZWNoby5kZWYKLS0tIGJhc2gtMi4wNWIub3JpZy9idWlsdGlucy9lY2hvLmRl
ZgkyMDAyLTAzLTE5IDE4OjQ1OjI4ICswMzAwCisrKyBiYXNoLTIuMDViL2J1aWx0aW5zL2VjaG8u
ZGVmCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTExMCw3ICsxMTAsNyBAQCBlY2hvX2J1
aWx0aW4gKGxpc3QpCiAKICAgICAgIC8qIEFsbCBvZiB0aGUgb3B0aW9ucyBpbiBURU1QIGFyZSB2
YWxpZCBvcHRpb25zIHRvIEVDSE8uCiAJIEhhbmRsZSB0aGVtLiAqLwotICAgICAgd2hpbGUgKGkg
PSAqdGVtcCsrKQorICAgICAgd2hpbGUgKChpID0gKnRlbXArKykpCiAJewogCSAgc3dpdGNoIChp
KQogCSAgICB7CmRpZmYgLXVwcmsub3JpZyBiYXNoLTIuMDViLm9yaWcvYnVpbHRpbnMvZW5hYmxl
LmRlZiBiYXNoLTIuMDViL2J1aWx0aW5zL2VuYWJsZS5kZWYKLS0tIGJhc2gtMi4wNWIub3JpZy9i
dWlsdGlucy9lbmFibGUuZGVmCTIwMDItMDMtMTkgMjE6NTQ6MDAgKzAzMDAKKysrIGJhc2gtMi4w
NWIvYnVpbHRpbnMvZW5hYmxlLmRlZgkyMDAyLTA5LTE2IDAzOjE3OjA5ICswNDAwCkBAIC05NSw2
ICs5NSw4IEBAIGVuYWJsZV9idWlsdGluIChsaXN0KQogICBpbnQgb3B0LCBmaWx0ZXI7CiAjaWYg
ZGVmaW5lZCAoSEFWRV9ETE9QRU4pICYmIGRlZmluZWQgKEhBVkVfRExTWU0pCiAgIGNoYXIgKmZp
bGVuYW1lOworCisgIGZpbGVuYW1lID0gTlVMTDsKICNlbmRpZgogCiAgIHJlc3VsdCA9IEVYRUNV
VElPTl9TVUNDRVNTOwpAQCAtMzM0LDcgKzMzNiw3IEBAIGR5bl9sb2FkX2J1aWx0aW4gKGxpc3Qs
IGZsYWdzLCBmaWxlbmFtZSkKIAliLT5mbGFncyB8PSBTUEVDSUFMX0JVSUxUSU47CiAgICAgICBi
LT5oYW5kbGUgPSBoYW5kbGU7CiAKLSAgICAgIGlmIChvbGRfYnVpbHRpbiA9IGJ1aWx0aW5fYWRk
cmVzc19pbnRlcm5hbCAobmFtZSwgMSkpCisgICAgICBpZiAoKG9sZF9idWlsdGluID0gYnVpbHRp
bl9hZGRyZXNzX2ludGVybmFsIChuYW1lLCAxKSkpCiAJewogCSAgcmVwbGFjZWQrKzsKIAkgIEZB
U1RDT1BZICgoY2hhciAqKWIsIChjaGFyICopb2xkX2J1aWx0aW4sIHNpemVvZiAoc3RydWN0IGJ1
aWx0aW4pKTsKZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9idWlsdGlucy9ldmFsc3Ry
aW5nLmMgYmFzaC0yLjA1Yi9idWlsdGlucy9ldmFsc3RyaW5nLmMKLS0tIGJhc2gtMi4wNWIub3Jp
Zy9idWlsdGlucy9ldmFsc3RyaW5nLmMJMjAwMi0wNC0wNCAyMjozODo1MCArMDQwMAorKysgYmFz
aC0yLjA1Yi9idWlsdGlucy9ldmFsc3RyaW5nLmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApA
QCAtNTIsNiArNTIsOCBAQAogZXh0ZXJuIGludCBlcnJubzsKICNlbmRpZgogCitleHRlcm4gaW50
IHpjYXRmZCAoaW50IGZkLCBpbnQgb2ZkLCBjb25zdCBjaGFyICpmbik7CisKICNkZWZpbmUgSVNf
QlVJTFRJTihzKQkoYnVpbHRpbl9hZGRyZXNzX2ludGVybmFsKHMsIDApICE9IChzdHJ1Y3QgYnVp
bHRpbiAqKU5VTEwpCiAKIGV4dGVybiBpbnQgaW5kaXJlY3Rpb25fbGV2ZWwsIHN0YXJ0dXBfc3Rh
dGUsIHN1YnNoZWxsX2Vudmlyb25tZW50OwpAQCAtMjAwLDcgKzIwMiw3IEBAIHBhcnNlX2FuZF9l
eGVjdXRlIChzdHJpbmcsIGZyb21fZmlsZSwgZmwKIAkgICAgICBkaXNwb3NlX2NvbW1hbmQgKGds
b2JhbF9jb21tYW5kKTsKIAkgICAgICBnbG9iYWxfY29tbWFuZCA9IChDT01NQU5EICopTlVMTDsK
IAkgICAgfQotCSAgZWxzZSBpZiAoY29tbWFuZCA9IGdsb2JhbF9jb21tYW5kKQorCSAgZWxzZSBp
ZiAoKGNvbW1hbmQgPSBnbG9iYWxfY29tbWFuZCkpCiAJICAgIHsKIAkgICAgICBzdHJ1Y3QgZmRf
Yml0bWFwICpiaXRtYXA7CiAKQEAgLTI5Myw5ICsyOTUsOCBAQCBzdGF0aWMgaW50CiBjYXRfZmls
ZSAocikKICAgICAgUkVESVJFQ1QgKnI7CiB7Ci0gIGNoYXIgbGJ1ZlsxMjhdLCAqZm47CisgIGNo
YXIgKmZuOwogICBpbnQgZmQsIHJ2YWw7Ci0gIHNzaXplX3QgbnI7CiAKICAgaWYgKHItPmluc3Ry
dWN0aW9uICE9IHJfaW5wdXRfZGlyZWN0aW9uKQogICAgIHJldHVybiAtMTsKZGlmZiAtdXByay5v
cmlnIGJhc2gtMi4wNWIub3JpZy9idWlsdGlucy9mZ19iZy5kZWYgYmFzaC0yLjA1Yi9idWlsdGlu
cy9mZ19iZy5kZWYKLS0tIGJhc2gtMi4wNWIub3JpZy9idWlsdGlucy9mZ19iZy5kZWYJMjAwMi0w
NC0wOCAyMToyMTozMiArMDQwMAorKysgYmFzaC0yLjA1Yi9idWlsdGlucy9mZ19iZy5kZWYJMjAw
Mi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMTMyLDExICsxMzIsOSBAQCBmZ19iZyAobGlzdCwg
Zm9yZWdyb3VuZCkKICAgICAgIGdvdG8gZmFpbHVyZTsKICAgICB9CiAKKyAgb2xkX2FzeW5jX3Bp
ZCA9IGxhc3RfYXN5bmNocm9ub3VzX3BpZDsKICAgaWYgKGZvcmVncm91bmQgPT0gMCkKLSAgICB7
Ci0gICAgICBvbGRfYXN5bmNfcGlkID0gbGFzdF9hc3luY2hyb25vdXNfcGlkOwotICAgICAgbGFz
dF9hc3luY2hyb25vdXNfcGlkID0gam9ic1tqb2JdLT5wZ3JwOwkvKiBBcyBwZXIgUG9zaXguMiA1
LjQuMiAqLwotICAgIH0KKyAgICBsYXN0X2FzeW5jaHJvbm91c19waWQgPSBqb2JzW2pvYl0tPnBn
cnA7CS8qIEFzIHBlciBQb3NpeC4yIDUuNC4yICovCiAKICAgc3RhdHVzID0gc3RhcnRfam9iIChq
b2IsIGZvcmVncm91bmQpOwogCmRpZmYgLXVwcmsub3JpZyBiYXNoLTIuMDViLm9yaWcvYnVpbHRp
bnMvZ2V0b3B0LmMgYmFzaC0yLjA1Yi9idWlsdGlucy9nZXRvcHQuYwotLS0gYmFzaC0yLjA1Yi5v
cmlnL2J1aWx0aW5zL2dldG9wdC5jCTIwMDItMDMtMTkgMjA6MDM6MjcgKzAzMDAKKysrIGJhc2gt
Mi4wNWIvYnVpbHRpbnMvZ2V0b3B0LmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMTc3
LDcgKzE3Nyw3IEBAIHNoX2dldG9wdCAoYXJnYywgYXJndiwgb3B0c3RyaW5nKQogICAgICAgbmV4
dGNoYXIgPSAoY2hhciAqKU5VTEw7CiAgICAgfQogCi0gIGlmIChzaF9iYWRvcHQgPSAodGVtcCA9
PSBOVUxMIHx8IGMgPT0gJzonKSkKKyAgaWYgKChzaF9iYWRvcHQgPSAodGVtcCA9PSBOVUxMIHx8
IGMgPT0gJzonKSkpCiAgICAgewogICAgICAgaWYgKHNoX29wdGVycikKIAlCQURPUFQgKGMpOwpk
aWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2J1aWx0aW5zL2dldG9wdHMuZGVmIGJhc2gt
Mi4wNWIvYnVpbHRpbnMvZ2V0b3B0cy5kZWYKLS0tIGJhc2gtMi4wNWIub3JpZy9idWlsdGlucy9n
ZXRvcHRzLmRlZgkyMDAyLTAzLTE5IDIwOjAzOjA2ICswMzAwCisrKyBiYXNoLTIuMDViL2J1aWx0
aW5zL2dldG9wdHMuZGVmCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTE2NCw5ICsxNjQs
OSBAQCBkb2dldG9wdHMgKGFyZ2MsIGFyZ3YpCiAKICAgc3BlY2lhbF9lcnJvciA9IG9wdHN0clsw
XSA9PSAnOic7CiAKKyAgb2xkX29wdGVyciA9IHNoX29wdGVycjsKICAgaWYgKHNwZWNpYWxfZXJy
b3IpCiAgICAgewotICAgICAgb2xkX29wdGVyciA9IHNoX29wdGVycjsKICAgICAgIG9wdHN0cisr
OwogICAgICAgc2hfb3B0ZXJyID0gMDsJCS8qIHN1cHByZXNzIGRpYWdub3N0aWMgbWVzc2FnZXMg
Ki8KICAgICB9CmRpZmYgLXVwcmsub3JpZyBiYXNoLTIuMDViLm9yaWcvYnVpbHRpbnMvaGVscC5k
ZWYgYmFzaC0yLjA1Yi9idWlsdGlucy9oZWxwLmRlZgotLS0gYmFzaC0yLjA1Yi5vcmlnL2J1aWx0
aW5zL2hlbHAuZGVmCTIwMDItMDQtMDggMjE6MjI6MDcgKzA0MDAKKysrIGJhc2gtMi4wNWIvYnVp
bHRpbnMvaGVscC5kZWYJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtNjEsNiArNjEsOCBA
QCAkRU5ECiBleHRlcm4gaW50IGVycm5vOwogI2VuZGlmCiAKK2V4dGVybiBpbnQgemNhdGZkIChp
bnQgZmQsIGludCBvZmQsIGNvbnN0IGNoYXIgKmZuKTsKKwogc3RhdGljIHZvaWQgc2hvd19idWls
dGluX2NvbW1hbmRfaGVscCBfX1AoKHZvaWQpKTsKIHN0YXRpYyB2b2lkIHNob3dfbG9uZ2RvYyBf
X1AoKGludCkpOwogCkBAIC0xMTIsNyArMTE0LDcgQEAgaGVscF9idWlsdGluIChsaXN0KQogICAg
ICAgcGF0dGVybiA9IGxpc3QtPndvcmQtPndvcmQ7CiAgICAgICBwbGVuID0gc3RybGVuIChwYXR0
ZXJuKTsKIAotICAgICAgZm9yIChpID0gMDsgbmFtZSA9IHNoZWxsX2J1aWx0aW5zW2ldLm5hbWU7
IGkrKykKKyAgICAgIGZvciAoaSA9IDA7IChuYW1lID0gc2hlbGxfYnVpbHRpbnNbaV0ubmFtZSk7
IGkrKykKIAl7CiAJICBRVUlUOwogCSAgaWYgKChzdHJuY21wIChwYXR0ZXJuLCBuYW1lLCBwbGVu
KSA9PSAwKSB8fApkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2J1aWx0aW5zL2hpc3Rv
cnkuZGVmIGJhc2gtMi4wNWIvYnVpbHRpbnMvaGlzdG9yeS5kZWYKLS0tIGJhc2gtMi4wNWIub3Jp
Zy9idWlsdGlucy9oaXN0b3J5LmRlZgkyMDAyLTAzLTE5IDIyOjA2OjMzICswMzAwCisrKyBiYXNo
LTIuMDViL2J1aWx0aW5zL2hpc3RvcnkuZGVmCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAg
LTk1LDYgKzk1LDggQEAgaGlzdG9yeV9idWlsdGluIChsaXN0KQogICBjaGFyICpmaWxlbmFtZSwg
KmRlbGV0ZV9hcmc7CiAgIGludG1heF90IGRlbGV0ZV9vZmZzZXQ7CiAKKyAgZGVsZXRlX2FyZyA9
IE5VTEw7IC8qIG5ldmVyIHVzZWQgKi8KKwogICBmbGFncyA9IDA7CiAgIHJlc2V0X2ludGVybmFs
X2dldG9wdCAoKTsKICAgd2hpbGUgKChvcHQgPSBpbnRlcm5hbF9nZXRvcHQgKGxpc3QsICJhY2Q6
bnBzcnciKSkgIT0gLTEpCmRpZmYgLXVwcmsub3JpZyBiYXNoLTIuMDViLm9yaWcvYnVpbHRpbnMv
bWtidWlsdGlucy5jIGJhc2gtMi4wNWIvYnVpbHRpbnMvbWtidWlsdGlucy5jCi0tLSBiYXNoLTIu
MDViLm9yaWcvYnVpbHRpbnMvbWtidWlsdGlucy5jCTIwMDItMDQtMDggMjE6MjI6NDQgKzA0MDAK
KysrIGJhc2gtMi4wNWIvYnVpbHRpbnMvbWtidWlsdGlucy5jCTIwMDItMDktMTYgMDM6MTc6MDkg
KzA0MDAKQEAgLTUyNCw3ICs1MjQsNyBAQCBleHRyYWN0X2luZm8gKGZpbGVuYW1lLCBzdHJ1Y3Rm
aWxlLCBleHRlCiAgIG91dHB1dF9jcHBfbGluZV9pbmZvID0gMTsKIAogICAvKiBQcm9jZXNzIGVh
Y2ggbGluZSBpbiB0aGUgYXJyYXkuICovCi0gIGZvciAoaSA9IDA7IGxpbmUgPSBkZWZzLT5saW5l
cy0+YXJyYXlbaV07IGkrKykKKyAgZm9yIChpID0gMDsgKGxpbmUgPSBkZWZzLT5saW5lcy0+YXJy
YXlbaV0pOyBpKyspCiAgICAgewogICAgICAgZGVmcy0+bGluZV9udW1iZXIgPSBpOwogCkBAIC02
NDAsNyArNjQwLDcgQEAgZnJlZV9kZWZzIChkZWZzKQogCiAgIGlmIChkZWZzLT5idWlsdGlucykK
ICAgICB7Ci0gICAgICBmb3IgKGkgPSAwOyBidWlsdGluID0gKEJVSUxUSU5fREVTQyAqKWRlZnMt
PmJ1aWx0aW5zLT5hcnJheVtpXTsgaSsrKQorICAgICAgZm9yIChpID0gMDsgKGJ1aWx0aW4gPSAo
QlVJTFRJTl9ERVNDICopZGVmcy0+YnVpbHRpbnMtPmFycmF5W2ldKTsgaSsrKQogCXsKIAkgIGZy
ZWVfYnVpbHRpbiAoYnVpbHRpbik7CiAJICBmcmVlIChidWlsdGluKTsKQEAgLTEzNTcsNyArMTM1
Nyw3IEBAIHdyaXRlX2RvY3VtZW50YXRpb24gKHN0cmVhbSwgZG9jdW1lbnRhdGkKICAgaWYgKHN0
cmluZ19hcnJheSkKICAgICBmcHJpbnRmIChzdHJlYW0sICIge1xuI2lmIGRlZmluZWQgKEhFTFBf
QlVJTFRJTilcbiIpOwogCi0gIGZvciAoaSA9IDAsIHRleGluZm8gPSAoZmxhZ3MgJiBURVhJTkZP
KTsgbGluZSA9IGRvY3VtZW50YXRpb25baV07IGkrKykKKyAgZm9yIChpID0gMCwgdGV4aW5mbyA9
IChmbGFncyAmIFRFWElORk8pOyAobGluZSA9IGRvY3VtZW50YXRpb25baV0pOyBpKyspCiAgICAg
ewogICAgICAgLyogQWxsb3cgI2lmZGVmJ3MgdG8gYmUgd3JpdHRlbiBvdXQgdmVyYmF0aW0uICov
CiAgICAgICBpZiAoKmxpbmUgPT0gJyMnKQpkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmln
L2J1aWx0aW5zL3JlYWQuZGVmIGJhc2gtMi4wNWIvYnVpbHRpbnMvcmVhZC5kZWYKLS0tIGJhc2gt
Mi4wNWIub3JpZy9idWlsdGlucy9yZWFkLmRlZgkyMDAyLTAzLTE5IDIyOjMzOjQxICswMzAwCisr
KyBiYXNoLTIuMDViL2J1aWx0aW5zL3JlYWQuZGVmCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAK
QEAgLTUzLDYgKzUzLDcgQEAgJEVORAogI2luY2x1ZGUgInBvc2l4c3RhdC5oIgogCiAjaW5jbHVk
ZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KIAogI2lmIGRlZmluZWQgKEhBVkVfVU5J
U1REX0gpCiAjICBpbmNsdWRlIDx1bmlzdGQuaD4KZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIu
b3JpZy9idWlsdGlucy9zZXRhdHRyLmRlZiBiYXNoLTIuMDViL2J1aWx0aW5zL3NldGF0dHIuZGVm
Ci0tLSBiYXNoLTIuMDViLm9yaWcvYnVpbHRpbnMvc2V0YXR0ci5kZWYJMjAwMi0wNi0yMiAwMTox
MTowMiArMDQwMAorKysgYmFzaC0yLjA1Yi9idWlsdGlucy9zZXRhdHRyLmRlZgkyMDAyLTA5LTE2
IDAzOjE3OjA5ICswNDAwCkBAIC0yNDgsNyArMjQ4LDcgQEAgc2V0X29yX3Nob3dfYXR0cmlidXRl
cyAobGlzdCwgYXR0cmlidXRlLAogCiAgICAgICBpZiAodmFyaWFibGVfbGlzdCkKIAl7Ci0JICBm
b3IgKGkgPSAwOyB2YXIgPSB2YXJpYWJsZV9saXN0W2ldOyBpKyspCisJICBmb3IgKGkgPSAwOyAo
dmFyID0gdmFyaWFibGVfbGlzdFtpXSk7IGkrKykKIAkgICAgewogI2lmIGRlZmluZWQgKEFSUkFZ
X1ZBUlMpCiAJICAgICAgaWYgKGFycmF5c19vbmx5ICYmIGFycmF5X3AgKHZhcikgPT0gMCkKZGlm
ZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9idWlsdGlucy9zZXQuZGVmIGJhc2gtMi4wNWIv
YnVpbHRpbnMvc2V0LmRlZgotLS0gYmFzaC0yLjA1Yi5vcmlnL2J1aWx0aW5zL3NldC5kZWYJMjAw
Mi0wNy0xMSAwMDoxNzoyMCArMDQwMAorKysgYmFzaC0yLjA1Yi9idWlsdGlucy9zZXQuZGVmCTIw
MDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTUxMiw3ICs1MTIsNyBAQCBwYXJzZV9zaGVsbG9w
dHMgKHZhbHVlKQogICBpbnQgdnB0cjsKIAogICB2cHRyID0gMDsKLSAgd2hpbGUgKHZuYW1lID0g
ZXh0cmFjdF9jb2xvbl91bml0ICh2YWx1ZSwgJnZwdHIpKQorICB3aGlsZSAoKHZuYW1lID0gZXh0
cmFjdF9jb2xvbl91bml0ICh2YWx1ZSwgJnZwdHIpKSkKICAgICB7CiAgICAgICBzZXRfbWludXNf
b19vcHRpb24gKEZMQUdfT04sIHZuYW1lKTsKICAgICAgIGZyZWUgKHZuYW1lKTsKQEAgLTU2NSw3
ICs1NjUsNiBAQCBzZXRfYnVpbHRpbiAobGlzdCkKICAgICAgV09SRF9MSVNUICpsaXN0Owogewog
ICBpbnQgb25fb3Jfb2ZmLCBmbGFnX25hbWUsIGZvcmNlX2Fzc2lnbm1lbnQsIG9wdHNfY2hhbmdl
ZDsKLSAgV09SRF9MSVNUICpsOwogICByZWdpc3RlciBjaGFyICphcmc7CiAgIGNoYXIgc1szXTsK
IApAQCAtNjIxLDcgKzYyMCw3IEBAIHNldF9idWlsdGluIChsaXN0KQogCiAgICAgICBpZiAoKG9u
X29yX29mZiA9ICphcmcpICYmIChvbl9vcl9vZmYgPT0gJy0nIHx8IG9uX29yX29mZiA9PSAnKycp
KQogCXsKLQkgIHdoaWxlIChmbGFnX25hbWUgPSAqKythcmcpCisJICB3aGlsZSAoKGZsYWdfbmFt
ZSA9ICorK2FyZykpCiAJICAgIHsKIAkgICAgICBpZiAoZmxhZ19uYW1lID09ICc/JykKIAkJewpA
QCAtNzM5LDYgKzczOCw4IEBAIHVuc2V0X2J1aWx0aW4gKGxpc3QpCiAgICAgICBpbnQgdGVtOwog
I2lmIGRlZmluZWQgKEFSUkFZX1ZBUlMpCiAgICAgICBjaGFyICp0OworCisgICAgICB0ID0gTlVM
TDsKICNlbmRpZgogCiAgICAgICBuYW1lID0gbGlzdC0+d29yZC0+d29yZDsKZGlmZiAtdXByay5v
cmlnIGJhc2gtMi4wNWIub3JpZy9idWlsdGlucy90eXBlLmRlZiBiYXNoLTIuMDViL2J1aWx0aW5z
L3R5cGUuZGVmCi0tLSBiYXNoLTIuMDViLm9yaWcvYnVpbHRpbnMvdHlwZS5kZWYJMjAwMi0wMy0x
OSAxODo0MTozNyArMDMwMAorKysgYmFzaC0yLjA1Yi9idWlsdGlucy90eXBlLmRlZgkyMDAyLTA5
LTE2IDAzOjE3OjA5ICswNDAwCkBAIC0zMjgsNyArMzI4LDcgQEAgZGVzY3JpYmVfY29tbWFuZCAo
Y29tbWFuZCwgZGZsYWdzKQogICAgICB3aGV0aGVyIHRoZSBmaWxlIGlzIHByZXNlbnQgaW4gb3Vy
IGhhc2ggdGFibGUuICovCiAgIGlmIChhbGwgPT0gMCB8fCAoZGZsYWdzICYgQ0RFU0NfRk9SQ0Vf
UEFUSCkpCiAgICAgewotICAgICAgaWYgKGZ1bGxfcGF0aCA9IHBoYXNoX3NlYXJjaCAoY29tbWFu
ZCkpCisgICAgICBpZiAoKGZ1bGxfcGF0aCA9IHBoYXNoX3NlYXJjaCAoY29tbWFuZCkpKQogCXsK
IAkgIGlmIChkZmxhZ3MgJiBDREVTQ19UWVBFKQogCSAgICBwdXRzICgiZmlsZSIpOwpkaWZmIC11
cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2J1aWx0aW5zL3VsaW1pdC5kZWYgYmFzaC0yLjA1Yi9i
dWlsdGlucy91bGltaXQuZGVmCi0tLSBiYXNoLTIuMDViLm9yaWcvYnVpbHRpbnMvdWxpbWl0LmRl
ZgkyMDAyLTAzLTE5IDIyOjM5OjE0ICswMzAwCisrKyBiYXNoLTIuMDViL2J1aWx0aW5zL3VsaW1p
dC5kZWYJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMTc1LDcgKzE3NSw5IEBAIHN0YXRp
YyBpbnQgc2V0X2xpbWl0IF9fUCgoaW50LCBSTElNVFlQRSwKIHN0YXRpYyB2b2lkIHByaW50b25l
IF9fUCgoaW50LCBSTElNVFlQRSwgaW50KSk7CiBzdGF0aWMgdm9pZCBwcmludF9hbGxfbGltaXRz
IF9fUCgoaW50KSk7CiAKKyNpZmRlZiBOT1RZRVQKIHN0YXRpYyBpbnQgc2V0X2FsbF9saW1pdHMg
X19QKChpbnQsIFJMSU1UWVBFKSk7CisjZW5kaWYKIAogc3RhdGljIGludCBmaWxlc2l6ZSBfX1Ao
KFJMSU1UWVBFICopKTsKIHN0YXRpYyBpbnQgcGlwZXNpemUgX19QKChSTElNVFlQRSAqKSk7CkBA
IC02ODAsNiArNjgyLDcgQEAgcHJpbnRvbmUgKGxpbWluZCwgY3VybGltLCBwZGVzYykKICAgICBw
cmludF9ybGltdHlwZSAoKGN1cmxpbSAvIGxpbWl0c1tsaW1pbmRdLmJsb2NrX2ZhY3RvciksIDEp
OwogfQogCisjaWZkZWYgTk9UWUVUCiAvKiBTZXQgYWxsIGxpbWl0cyB0byBORVdMSU0uICBORVdM
SU0gY3VycmVudGx5IG11c3QgYmUgUkxJTV9JTkZJTklUWSwgd2hpY2gKICAgIGNhdXNlcyBhbGwg
bGltaXRzIHRvIGJlIHNldCBhcyBoaWdoIGFzIHBvc3NpYmxlIGRlcGVuZGluZyBvbiBtb2RlIChs
aWtlCiAgICBjc2ggYHVubGltaXQnKS4gIFJldHVybnMgLTEgaWYgTkVXTElNIGlzIGludmFsaWQs
IDAgaWYgYWxsIGxpbWl0cwpAQCAtNzE5LDUgKzcyMiw2IEBAIHNldF9hbGxfbGltaXRzIChtb2Rl
LCBuZXdsaW0pCiAgICAgICB9CiAgIHJldHVybiByZXR2YWw7CiB9CisjZW5kaWYKIAogI2VuZGlm
IC8qICFfTUlOSVggKi8KZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9jb25maWctYm90
LmggYmFzaC0yLjA1Yi9jb25maWctYm90LmgKLS0tIGJhc2gtMi4wNWIub3JpZy9jb25maWctYm90
LmgJMjAwMi0wNC0xNyAwMTowMTowMyArMDQwMAorKysgYmFzaC0yLjA1Yi9jb25maWctYm90LmgJ
MjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtODgsNyArODgsNyBAQAogIyAgdW5kZWYgSEFW
RV9TVFJDT0xMCiAjZW5kaWYKIAotI2lmIGRlZmluZWQgKEhBVkVfU1lTX1NPQ0tFVF9IKSAmJiBk
ZWZpbmVkIChIQVZFX0dFVFBFRVJOQU1FKSAmJiBkZWZpbmVkIChIQVZFX05FVElORVRfSU5fSCkK
KyNpZiBkZWZpbmVkIChIQVZFX1NZU19TT0NLRVRfSCkgJiYgZGVmaW5lZCAoSEFWRV9HRVRQRUVS
TkFNRSkgJiYgZGVmaW5lZCAoSEFWRV9ORVRJTkVUX0lOX0gpICYmIGRlZmluZWQgKE5FVFdPUktf
UkVESVJFQ1RJT05TKQogIyAgZGVmaW5lIEhBVkVfTkVUV09SSwogI2VuZGlmCiAKZGlmZiAtdXBy
ay5vcmlnIGJhc2gtMi4wNWIub3JpZy9lcnJvci5jIGJhc2gtMi4wNWIvZXJyb3IuYwotLS0gYmFz
aC0yLjA1Yi5vcmlnL2Vycm9yLmMJMjAwMi0wNi0yMiAwMTo1Njo0MSArMDQwMAorKysgYmFzaC0y
LjA1Yi9lcnJvci5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTEyOCw3ICsxMjgsNiBA
QCBwcm9ncmFtbWluZ19lcnJvciAoZm9ybWF0LCB2YV9hbGlzdCkKICNlbmRpZgogewogICB2YV9s
aXN0IGFyZ3M7Ci0gIGNoYXIgKmg7CiAKICNpZiBkZWZpbmVkIChKT0JfQ09OVFJPTCkKICAgZ2l2
ZV90ZXJtaW5hbF90byAoc2hlbGxfcGdycCwgMCk7CkBAIC0xNDMsNiArMTQyLDcgQEAgcHJvZ3Jh
bW1pbmdfZXJyb3IgKGZvcm1hdCwgdmFfYWxpc3QpCiAjaWYgZGVmaW5lZCAoSElTVE9SWSkKICAg
aWYgKHJlbWVtYmVyX29uX2hpc3RvcnkpCiAgICAgeworICAgICAgY2hhciAqaDsKICAgICAgIGgg
PSBsYXN0X2hpc3RvcnlfbGluZSAoKTsKICAgICAgIGZwcmludGYgKHN0ZGVyciwgImxhc3QgY29t
bWFuZDogJXNcbiIsIGggPyBoIDogIihudWxsKSIpOwogICAgIH0KZGlmZiAtdXByay5vcmlnIGJh
c2gtMi4wNWIub3JpZy9ldmFsLmMgYmFzaC0yLjA1Yi9ldmFsLmMKLS0tIGJhc2gtMi4wNWIub3Jp
Zy9ldmFsLmMJMjAwMi0wMy0xMiAxNzo1MzozNiArMDMwMAorKysgYmFzaC0yLjA1Yi9ldmFsLmMJ
MjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtNzEsNiArNzEsOCBAQCByZWFkZXJfbG9vcCAo
KQogICAgIHsKICAgICAgIGludCBjb2RlOwogCisgICAgICAvKiBYWFg6IG5vbi1hdG9taWMgdXBk
YXRlIG9mIHRvcF9sZXZlbCwgZG8gd2UgYWxsb3cgaW50ZXJydXB0cyBoZXJlPyAqLworICAgICAg
LyogWFhYOiBkb2Vzbid0IHJlc3RvcmUgdG9wX2xldmVsIG9uIGZ1bmN0aW9uIHJldHVybiAqLwog
ICAgICAgY29kZSA9IHNldGptcCAodG9wX2xldmVsKTsKIAogI2lmIGRlZmluZWQgKFBST0NFU1Nf
U1VCU1RJVFVUSU9OKQpAQCAtMTMzLDcgKzEzNSw3IEBAIHJlYWRlcl9sb29wICgpCiAJICAgICAg
ZGlzcG9zZV9jb21tYW5kIChnbG9iYWxfY29tbWFuZCk7CiAJICAgICAgZ2xvYmFsX2NvbW1hbmQg
PSAoQ09NTUFORCAqKU5VTEw7CiAJICAgIH0KLQkgIGVsc2UgaWYgKGN1cnJlbnRfY29tbWFuZCA9
IGdsb2JhbF9jb21tYW5kKQorCSAgZWxzZSBpZiAoKGN1cnJlbnRfY29tbWFuZCA9IGdsb2JhbF9j
b21tYW5kKSkKIAkgICAgewogCSAgICAgIGdsb2JhbF9jb21tYW5kID0gKENPTU1BTkQgKilOVUxM
OwogCSAgICAgIGN1cnJlbnRfY29tbWFuZF9udW1iZXIrKzsKZGlmZiAtdXByay5vcmlnIGJhc2gt
Mi4wNWIub3JpZy9leGVjdXRlX2NtZC5jIGJhc2gtMi4wNWIvZXhlY3V0ZV9jbWQuYwotLS0gYmFz
aC0yLjA1Yi5vcmlnL2V4ZWN1dGVfY21kLmMJMjAwMi0wMy0xOCAyMToyNDoyMiArMDMwMAorKysg
YmFzaC0yLjA1Yi9leGVjdXRlX2NtZC5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTIy
OTUsOCArMjI5NSw4IEBAIGV4ZWN1dGVfY29uZF9ub2RlIChjb25kKQogICAgIH0KICAgZWxzZSBp
ZiAoY29uZC0+dHlwZSA9PSBDT05EX0JJTkFSWSkKICAgICB7Ci0gICAgICBwYXRtYXRjaCA9ICgo
Y29uZC0+b3AtPndvcmRbMV0gPT0gJz0nKSAmJiAoY29uZC0+b3AtPndvcmRbMl0gPT0gJ1wwJykg
JiYKLQkJICAoY29uZC0+b3AtPndvcmRbMF0gPT0gJyEnIHx8IGNvbmQtPm9wLT53b3JkWzBdID09
ICc9JykgfHwKKyAgICAgIHBhdG1hdGNoID0gKCgoY29uZC0+b3AtPndvcmRbMV0gPT0gJz0nKSAm
JiAoY29uZC0+b3AtPndvcmRbMl0gPT0gJ1wwJykgJiYKKwkJICAgKGNvbmQtPm9wLT53b3JkWzBd
ID09ICchJyB8fCBjb25kLT5vcC0+d29yZFswXSA9PSAnPScpKSB8fAogCQkgIChjb25kLT5vcC0+
d29yZFswXSA9PSAnPScgJiYgY29uZC0+b3AtPndvcmRbMV0gPT0gJ1wwJykpOwogCiAgICAgICBh
cmcxID0gY29uZF9leHBhbmRfd29yZCAoY29uZC0+bGVmdC0+b3AsIDApOwpAQCAtMzAzMCw2ICsz
MDMwLDcgQEAgZXhlY3V0ZV9zdWJzaGVsbF9idWlsdGluX29yX2Z1bmN0aW9uICh3bwogICAgIHsK
ICAgICAgIC8qIEdpdmUgYnVpbHRpbnMgYSBwbGFjZSB0byBqdW1wIGJhY2sgdG8gb24gZmFpbHVy
ZSwKIAkgc28gd2UgZG9uJ3QgZ28gYmFjayB1cCB0byBtYWluKCkuICovCisgICAgICAvKiBYWFg6
IG5vbi1hdG9taWMgdXBkYXRlIG9mIHRvcF9sZXZlbCwgZG8gd2UgYWxsb3cgaW50ZXJydXB0cyBo
ZXJlPyAqLwogICAgICAgcmVzdWx0ID0gc2V0am1wICh0b3BfbGV2ZWwpOwogCiAgICAgICBpZiAo
cmVzdWx0ID09IEVYSVRQUk9HKQpkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2V4cHIu
YyBiYXNoLTIuMDViL2V4cHIuYwotLS0gYmFzaC0yLjA1Yi5vcmlnL2V4cHIuYwkyMDAyLTA2LTA0
IDE4OjUwOjUzICswNDAwCisrKyBiYXNoLTIuMDViL2V4cHIuYwkyMDAyLTA5LTE2IDAzOjE3OjA5
ICswNDAwCkBAIC0zOTEsMTEgKzM5MSw4IEBAIGV4cGFzc2lnbiAoKQogICAgICAgaWYgKGxhc3R0
b2sgIT0gU1RSKQogCWV2YWxlcnJvciAoImF0dGVtcHRlZCBhc3NpZ25tZW50IHRvIG5vbi12YXJp
YWJsZSIpOwogCi0gICAgICBpZiAoc3BlY2lhbCkKLQl7Ci0JICBvcCA9IGFzc2lnbnRvazsJCS8q
IGEgT1A9IGIgKi8KLQkgIGx2YWx1ZSA9IHZhbHVlOwotCX0KKyAgICAgIG9wID0gYXNzaWdudG9r
OwkJCS8qIGEgT1A9IGIgKi8KKyAgICAgIGx2YWx1ZSA9IHZhbHVlOwogCiAgICAgICBsaHMgPSBz
YXZlc3RyaW5nICh0b2tzdHIpOwogICAgICAgcmVhZHRvayAoKTsKZGlmZiAtdXByay5vcmlnIGJh
c2gtMi4wNWIub3JpZy9maW5kY21kLmMgYmFzaC0yLjA1Yi9maW5kY21kLmMKLS0tIGJhc2gtMi4w
NWIub3JpZy9maW5kY21kLmMJMjAwMi0wMy0xOSAxODoxOTowNSArMDMwMAorKysgYmFzaC0yLjA1
Yi9maW5kY21kLmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMjA1LDcgKzIwNSw3IEBA
IF9maW5kX3VzZXJfY29tbWFuZF9pbnRlcm5hbCAobmFtZSwgZmxhZ3MKIAogICAvKiBTZWFyY2gg
Zm9yIHRoZSB2YWx1ZSBvZiBQQVRIIGluIGJvdGggdGhlIHRlbXBvcmFyeSBlbnZpcm9ubWVudHMg
YW5kCiAgICAgIGluIHRoZSByZWd1bGFyIGxpc3Qgb2YgdmFyaWFibGVzLiAqLwotICBpZiAodmFy
ID0gZmluZF92YXJpYWJsZV9pbnRlcm5hbCAoIlBBVEgiLCAxKSkJLyogWFhYIGNvdWxkIGJlIGFy
cmF5PyAqLworICBpZiAoKHZhciA9IGZpbmRfdmFyaWFibGVfaW50ZXJuYWwgKCJQQVRIIiwgMSkp
KSAvKiBYWFggY291bGQgYmUgYXJyYXk/ICovCiAgICAgcGF0aF9saXN0ID0gdmFsdWVfY2VsbCAo
dmFyKTsKICAgZWxzZQogICAgIHBhdGhfbGlzdCA9IChjaGFyICopTlVMTDsKQEAgLTM2Miw2ICsz
NjIsNyBAQCB1c2VyX2NvbW1hbmRfbWF0Y2hlcyAobmFtZSwgZmxhZ3MsIHN0YXRlCiAJICBtYXRj
aF9saXN0WzBdID0gZmluZF9hYnNvbHV0ZV9wcm9ncmFtIChuYW1lLCBmbGFncyk7CiAJICBtYXRj
aF9saXN0WzFdID0gKGNoYXIgKilOVUxMOwogCSAgcGF0aF9saXN0ID0gKGNoYXIgKilOVUxMOwor
CSAgbmFtZV9sZW4gPSAwOyAvKiBuZXZlciB1c2VkICovCiAJfQogICAgICAgZWxzZQogCXsKZGlm
ZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9nZW5lcmFsLmMgYmFzaC0yLjA1Yi9nZW5lcmFs
LmMKLS0tIGJhc2gtMi4wNWIub3JpZy9nZW5lcmFsLmMJMjAwMi0wNi0xMyAwMDo1Nzo1NSArMDQw
MAorKysgYmFzaC0yLjA1Yi9nZW5lcmFsLmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAt
MjUwLDcgKzI1MCw3IEBAIGFzc2lnbm1lbnQgKHN0cmluZykKICAgaWYgKGxlZ2FsX3ZhcmlhYmxl
X3N0YXJ0ZXIgKGMpID09IDApCiAgICAgcmV0dXJuICgwKTsKIAotICB3aGlsZSAoYyA9IHN0cmlu
Z1tpbmR4XSkKKyAgd2hpbGUgKChjID0gc3RyaW5nW2luZHhdKSkKICAgICB7CiAgICAgICAvKiBU
aGUgZm9sbG93aW5nIGlzIHNhZmUuICBOb3RlIHRoYXQgJz0nIGF0IHRoZSBzdGFydCBvZiBhIHdv
cmQKIAkgaXMgbm90IGFuIGFzc2lnbm1lbnQgc3RhdGVtZW50LiAqLwpkaWZmIC11cHJrLm9yaWcg
YmFzaC0yLjA1Yi5vcmlnL2hhc2hsaWIuYyBiYXNoLTIuMDViL2hhc2hsaWIuYwotLS0gYmFzaC0y
LjA1Yi5vcmlnL2hhc2hsaWIuYwkyMDAyLTAzLTE4IDE4OjMwOjIzICswMzAwCisrKyBiYXNoLTIu
MDViL2hhc2hsaWIuYwkyMDAyLTA5LTE2IDAzOjE3OjA5ICswNDAwCkBAIC04MSw2ICs4MSw3IEBA
IGNvcHlfYnVja2V0X2FycmF5IChiYSwgY3BkYXRhKQogICBpZiAoYmEgPT0gMCkKICAgICByZXR1
cm4gKChCVUNLRVRfQ09OVEVOVFMgKikwKTsKIAorICBuZXdfYnVja2V0ID0gTlVMTDsKICAgZm9y
IChuID0gKEJVQ0tFVF9DT05URU5UUyAqKTAsIGUgPSBiYTsgZTsgZSA9IGUtPm5leHQpCiAgICAg
ewogICAgICAgaWYgKG4gPT0gMCkKZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9qb2Jz
LmMgYmFzaC0yLjA1Yi9qb2JzLmMKLS0tIGJhc2gtMi4wNWIub3JpZy9qb2JzLmMJMjAwMi0wNS0w
OSAxOTo1NjoyMCArMDQwMAorKysgYmFzaC0yLjA1Yi9qb2JzLmMJMjAwMi0wOS0xNiAwMzoxNzow
OSArMDQwMApAQCAtNzA3LDcgKzcwNyw3IEBAIG5vaHVwX2pvYiAoam9iX2luZGV4KQogICBpZiAo
am9iX3Nsb3RzID09IDApCiAgICAgcmV0dXJuOwogCi0gIGlmICh0ZW1wID0gam9ic1tqb2JfaW5k
ZXhdKQorICBpZiAoKHRlbXAgPSBqb2JzW2pvYl9pbmRleF0pKQogICAgIHRlbXAtPmZsYWdzIHw9
IEpfTk9IVVA7CiB9CiAKZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9saWIvZ2xvYi9n
bG9iLmMgYmFzaC0yLjA1Yi9saWIvZ2xvYi9nbG9iLmMKLS0tIGJhc2gtMi4wNWIub3JpZy9saWIv
Z2xvYi9nbG9iLmMJMjAwMi0wNC0xMSAxNzoyMjoyOCArMDQwMAorKysgYmFzaC0yLjA1Yi9saWIv
Z2xvYi9nbG9iLmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMzY1LDYgKzM2NSw3IEBA
IGdsb2JfdmVjdG9yIChwYXQsIGRpciwgZmxhZ3MpCiAKICAgbGFzdGxpbmsgPSAwOwogICBjb3Vu
dCA9IGxvc2UgPSBza2lwID0gMDsKKyAgbmFtZV92ZWN0b3IgPSBOVUxMOwogCiAgIC8qIElmIFBB
VCBpcyBlbXB0eSwgc2tpcCB0aGUgbG9vcCwgYnV0IHJldHVybiBvbmUgKGVtcHR5KSBmaWxlbmFt
ZS4gKi8KICAgaWYgKHBhdCA9PSAwIHx8ICpwYXQgPT0gJ1wwJykKZGlmZiAtdXByay5vcmlnIGJh
c2gtMi4wNWIub3JpZy9saWIvZ2xvYi9zbWF0Y2guYyBiYXNoLTIuMDViL2xpYi9nbG9iL3NtYXRj
aC5jCi0tLSBiYXNoLTIuMDViLm9yaWcvbGliL2dsb2Ivc21hdGNoLmMJMjAwMi0wNC0wMyAxNzoz
OTo1MiArMDQwMAorKysgYmFzaC0yLjA1Yi9saWIvZ2xvYi9zbWF0Y2guYwkyMDAyLTA5LTE2IDAz
OjE3OjA5ICswNDAwCkBAIC0yNDUsNyArMjQ1LDYgQEAgcmFuZ2VjbXBfd2MgKGMxLCBjMikKIHsK
ICAgc3RhdGljIHdjaGFyX3QgczFbMl0gPSB7IEwnICcsIEwnXDAnIH07CiAgIHN0YXRpYyB3Y2hh
cl90IHMyWzJdID0geyBMJyAnLCBMJ1wwJyB9OwotICBpbnQgcmV0OwogCiAgIGlmIChjMSA9PSBj
MikKICAgICByZXR1cm4gMDsKZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9saWIvZ2xv
Yi9zbV9sb29wLmMgYmFzaC0yLjA1Yi9saWIvZ2xvYi9zbV9sb29wLmMKLS0tIGJhc2gtMi4wNWIu
b3JpZy9saWIvZ2xvYi9zbV9sb29wLmMJMjAwMi0wNC0wMyAxODozNTowOSArMDQwMAorKysgYmFz
aC0yLjA1Yi9saWIvZ2xvYi9zbV9sb29wLmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAt
Mjg4LDcgKzI4OCw3IEBAIEJSQUNLTUFUQ0ggKHAsIHRlc3QsIGZsYWdzKQogICAgICBjaXJjdW1m
bGV4IChgXicpIGluIGl0cyByb2xlIGluIGEgYG5vbm1hdGNoaW5nIGxpc3QnLiAgQSBicmFja2V0
CiAgICAgIGV4cHJlc3Npb24gc3RhcnRpbmcgd2l0aCBhbiB1bnF1b3RlZCBjaXJjdW1mbGV4IGNo
YXJhY3RlciBwcm9kdWNlcwogICAgICB1bnNwZWNpZmllZCByZXN1bHRzLiAgVGhpcyBpbXBsZW1l
bnRhdGlvbiB0cmVhdHMgdGhlIHR3byBpZGVudGljYWxseS4gKi8KLSAgaWYgKG5vdCA9ICgqcCA9
PSBMKCchJykgfHwgKnAgPT0gTCgnXicpKSkKKyAgaWYgKChub3QgPSAoKnAgPT0gTCgnIScpIHx8
ICpwID09IEwoJ14nKSkpKQogICAgICsrcDsKIAogICBjID0gKnArKzsKQEAgLTUxNiw3ICs1MTYs
NyBAQCBQQVRTQ0FOIChzdHJpbmcsIGVuZCwgZGVsaW0pCiAgIGNjaGFyID0gMDsKICAgYmZpcnN0
ID0gTlVMTDsKIAotICBmb3IgKHMgPSBzdHJpbmc7IGMgPSAqczsgcysrKQorICBmb3IgKHMgPSBz
dHJpbmc7IChjID0gKnMpOyBzKyspCiAgICAgewogICAgICAgaWYgKHMgPj0gZW5kKQogCXJldHVy
biAocyk7CkBAIC02OTgsNyArNjk4LDcgQEAgZnByaW50ZihzdGRlcnIsICJleHRtYXRjaDogcCA9
ICVzOyBwZSA9IAogCSAgICB7CiAJICAgICAgcG5leHQgPSBQQVRTQ0FOIChwc3ViLCBwZSwgTCgn
fCcpKTsKIAkgICAgICAvKiBJZiBvbmUgb2YgdGhlIHBhdHRlcm5zIG1hdGNoZXMsIGp1c3QgYmFp
bCBpbW1lZGlhdGVseS4gKi8KLQkgICAgICBpZiAobTEgPSAoR01BVENIIChzLCBzcmVzdCwgcHN1
YiwgcG5leHQgLSAxLCBmbGFncykgPT0gMCkpCisJICAgICAgaWYgKChtMSA9IChHTUFUQ0ggKHMs
IHNyZXN0LCBwc3ViLCBwbmV4dCAtIDEsIGZsYWdzKSA9PSAwKSkpCiAJCWJyZWFrOwogCSAgICAg
IGlmIChwbmV4dCA9PSBwcmVzdCkKIAkJYnJlYWs7CmRpZmYgLXVwcmsub3JpZyBiYXNoLTIuMDVi
Lm9yaWcvbGliL21hbGxvYy9tYWxsb2MuYyBiYXNoLTIuMDViL2xpYi9tYWxsb2MvbWFsbG9jLmMK
LS0tIGJhc2gtMi4wNWIub3JpZy9saWIvbWFsbG9jL21hbGxvYy5jCTIwMDItMDYtMjEgMjM6MTY6
NDkgKzA0MDAKKysrIGJhc2gtMi4wNWIvbGliL21hbGxvYy9tYWxsb2MuYwkyMDAyLTA5LTE2IDAz
OjE3OjA5ICswNDAwCkBAIC01OTUsMTEgKzU5NSwxMyBAQCBtb3JlY29yZV9kb25lOgogICAgIHVu
YmxvY2tfc2lnbmFscyAoJnNldCwgJm9zZXQpOwogfQogCisjaWZkZWYgSU5DTFVERV9VTlVTRUQK
IHN0YXRpYyB2b2lkCiBtYWxsb2NfZGVidWdfZHVtbXkgKCkKIHsKICAgd3JpdGUgKDEsICJtYWxs
b2NfZGVidWdfZHVtbXlcbiIsIDE5KTsKIH0KKyNlbmRpZgogCiAjZGVmaW5lIFBSRVBPUF9CSU4J
MgogI2RlZmluZSBQUkVQT1BfU0laRQkzMgpAQCAtNzg4LDcgKzc5MCw5IEBAIGludGVybmFsX2Zy
ZWUgKG1lbSwgZmlsZSwgbGluZSwgZmxhZ3MpCiAgIHJlZ2lzdGVyIGNoYXIgKmFwLCAqejsKICAg
cmVnaXN0ZXIgaW50IG51bml0czsKICAgcmVnaXN0ZXIgdW5zaWduZWQgaW50IG5ieXRlczsKKyNp
ZiBkZWZpbmVkIChNQUxMT0NfVFJBQ0UpIHx8IGRlZmluZWQgKE1BTExPQ19SRUdJU1RFUikKICAg
aW50IHVieXRlczsJCS8qIGNhbGxlci1yZXF1ZXN0ZWQgc2l6ZSAqLworI2VuZGlmCiAgIG1ndWFy
ZF90IG1nOwogCiAgIGlmICgoYXAgPSAoY2hhciAqKW1lbSkgPT0gMCkKQEAgLTkwMSw2ICs5MDUs
OCBAQCBmcmVlX3JldHVybjoKICAgaWYgKF9tYWxsb2NfbndhdGNoID4gMCkKICAgICBfbWFsbG9j
X2Nrd2F0Y2ggKG1lbSwgZmlsZSwgbGluZSwgV19GUkVFLCB1Ynl0ZXMpOwogI2VuZGlmCisKKyAg
cmV0dXJuOwogfQogCiBzdGF0aWMgUFRSX1QKZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3Jp
Zy9saWIvbWFsbG9jL3dhdGNoLmMgYmFzaC0yLjA1Yi9saWIvbWFsbG9jL3dhdGNoLmMKLS0tIGJh
c2gtMi4wNWIub3JpZy9saWIvbWFsbG9jL3dhdGNoLmMJMjAwMi0wNS0yNCAxOTozMjo1MyArMDQw
MAorKysgYmFzaC0yLjA1Yi9saWIvbWFsbG9jL3dhdGNoLmMJMjAwMi0wOS0xNiAwMzoxNzowOSAr
MDQwMApAQCAtODMsNyArODMsOSBAQCBQVFJfVAogbWFsbG9jX3dhdGNoIChhZGRyKQogICAgICBQ
VFJfVCBhZGRyOwogeworI2lmZGVmIE1BTExPQ19XQVRDSAogICByZWdpc3RlciBpbnQgaTsKKyNl
bmRpZiAvKiBNQUxMT0NfV0FUQ0ggKi8KICAgUFRSX1QgcmV0OwogCiAgIGlmIChhZGRyID09IDAp
CkBAIC0xMDcsNyArMTA5LDcgQEAgbWFsbG9jX3dhdGNoIChhZGRyKQogCX0KICAgICAgIF9tYWxs
b2Nfd2F0Y2hfbGlzdFtfbWFsbG9jX253YXRjaCsrXSA9IGFkZHI7CiAgICAgfQotI2VuZGlmCisj
ZW5kaWYgLyogTUFMTE9DX1dBVENIICovCiAKICAgcmV0dXJuIHJldDsgIAogfQpkaWZmIC11cHJr
Lm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2xpYi9zaC9tYWtlcGF0aC5jIGJhc2gtMi4wNWIvbGliL3No
L21ha2VwYXRoLmMKLS0tIGJhc2gtMi4wNWIub3JpZy9saWIvc2gvbWFrZXBhdGguYwkyMDAxLTEx
LTI0IDIyOjI3OjE5ICswMzAwCisrKyBiYXNoLTIuMDViL2xpYi9zaC9tYWtlcGF0aC5jCTIwMDIt
MDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTExMCw3ICsxMTAsNyBAQCBzaF9tYWtlcGF0aCAocGF0
aCwgZGlyLCBmbGFncykKICAgaWYgKHNbLTFdICE9ICcvJykKICAgICAqcisrID0gJy8nOyAgICAg
IAogICBzID0geGRpcjsKLSAgd2hpbGUgKCpyKysgPSAqcysrKQorICB3aGlsZSAoKCpyKysgPSAq
cysrKSkKICAgICA7CiAgIGlmICh4cGF0aCAhPSBwYXRoKQogICAgIGZyZWUgKHhwYXRoKTsKZGlm
ZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9saWIvc2gvbmV0b3Blbi5jIGJhc2gtMi4wNWIv
bGliL3NoL25ldG9wZW4uYwotLS0gYmFzaC0yLjA1Yi5vcmlnL2xpYi9zaC9uZXRvcGVuLmMJMjAw
Mi0wMi0xOCAxNjo1NjowMyArMDMwMAorKysgYmFzaC0yLjA1Yi9saWIvc2gvbmV0b3Blbi5jCTIw
MDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTMxLDcgKzMxLDggQEAKICMgIGluY2x1ZGUgPHVu
aXN0ZC5oPgogI2VuZGlmCiAKLSNpbmNsdWRlIDxzdGRpby5oPiAKKyNpbmNsdWRlIDxzdGRpby5o
PgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCiAjaWYgZGVm
aW5lZCAoSEFWRV9TWVNfU09DS0VUX0gpCkBAIC01NSw2ICs1Niw4IEBACiAKICNpbmNsdWRlIDxz
aGVsbC5oPgogI2luY2x1ZGUgPHhtYWxsb2MuaD4KKyNpbmNsdWRlICJnZW5lcmFsLmgiCisjaW5j
bHVkZSAiZXJyb3IuaCIKIAogI2lmbmRlZiBlcnJubwogZXh0ZXJuIGludCBlcnJubzsKQEAgLTIw
MSw3ICsyMDQsNyBAQCBfbmV0b3BlbjYgKGhvc3QsIHNlcnYsIHR5cCkKICAgICAgY2hhciAqaG9z
dCwgKnNlcnY7CiAgICAgIGludCB0eXA7CiB7Ci0gIGludCBzLCBlOworICBpbnQgcyA9IC0xOwog
ICBzdHJ1Y3QgYWRkcmluZm8gaGludHMsICpyZXMsICpyZXMwOwogICBpbnQgZ2VycjsKIApAQCAt
MjM3LDYgKzI0MCw3IEBAIF9uZXRvcGVuNiAoaG9zdCwgc2VydiwgdHlwKQogCX0KICAgICAgIGlm
IChjb25uZWN0IChzLCByZXMtPmFpX2FkZHIsIHJlcy0+YWlfYWRkcmxlbikgPCAwKQogCXsKKwkg
IGludCBlOwogCSAgaWYgKHJlcy0+YWlfbmV4dCkKIAkgICAgewogCSAgICAgIGNsb3NlIChzKTsK
QEAgLTMyNyw2ICszMzEsOCBAQCB1ZHBvcGVuIChob3N0LCBzZXJ2KQogCiAjZWxzZSAvKiAhSEFW
RV9ORVRXT1JLICovCiAKKyNpbmNsdWRlICJlcnJvci5oIgorCiBpbnQKIG5ldG9wZW4gKHBhdGgp
CiAgICAgIGNoYXIgKnBhdGg7CmRpZmYgLXVwcmsub3JpZyBiYXNoLTIuMDViLm9yaWcvbGliL3No
L3BhdGhjYW5vbi5jIGJhc2gtMi4wNWIvbGliL3NoL3BhdGhjYW5vbi5jCi0tLSBiYXNoLTIuMDVi
Lm9yaWcvbGliL3NoL3BhdGhjYW5vbi5jCTIwMDEtMTEtMjEgMjA6MDY6MTQgKzAzMDAKKysrIGJh
c2gtMi4wNWIvbGliL3NoL3BhdGhjYW5vbi5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAg
LTEwNyw3ICsxMDcsOCBAQCBzaF9jYW5vbnBhdGggKHBhdGgsIGZsYWdzKQogCiAgIC8qIFBPU0lY
LjIgc2F5cyB0byBsZWF2ZSBhIGxlYWRpbmcgYC8vJyBhbG9uZS4gIE9uIGN5Z3dpbiwgd2Ugc2tp
cCBvdmVyIGFueQogICAgICBsZWFkaW5nIGB4OicgKGRvcyBkcml2ZSBuYW1lKS4gKi8KLSAgaWYg
KHJvb3RlZCA9IFJPT1RFRFBBVEgocGF0aCkpCisgIGRvdWJsZV9zbGFzaF9wYXRoID0gMDsKKyAg
aWYgKChyb290ZWQgPSBST09URURQQVRIKHBhdGgpKSkKICAgICB7CiAgICAgICBzdHViX2NoYXIg
PSBESVJTRVA7CiAjaWYgZGVmaW5lZCAoX19DWUdXSU5fXykKZGlmZiAtdXByay5vcmlnIGJhc2gt
Mi4wNWIub3JpZy9saWIvc2gvc2hxdW90ZS5jIGJhc2gtMi4wNWIvbGliL3NoL3NocXVvdGUuYwot
LS0gYmFzaC0yLjA1Yi5vcmlnL2xpYi9zaC9zaHF1b3RlLmMJMjAwMi0wNS0wMiAyMTozODoyMyAr
MDQwMAorKysgYmFzaC0yLjA1Yi9saWIvc2gvc2hxdW90ZS5jCTIwMDItMDktMTYgMDM6MTc6MDkg
KzA0MDAKQEAgLTI2LDYgKzI2LDcgQEAKICNlbmRpZgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDxzdHJpbmcuaD4KIAogI2luY2x1ZGUgInN5bnRheC5oIgogI2luY2x1ZGUgPHhtYWxs
b2MuaD4KZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9saWIvc2gvc3BlbGwuYyBiYXNo
LTIuMDViL2xpYi9zaC9zcGVsbC5jCi0tLSBiYXNoLTIuMDViLm9yaWcvbGliL3NoL3NwZWxsLmMJ
MjAwMS0xMS0yNyAyMDozNDoxNSArMDMwMAorKysgYmFzaC0yLjA1Yi9saWIvc2gvc3BlbGwuYwky
MDAyLTA5LTE2IDAzOjE3OjA5ICswNDAwCkBAIC05NSw3ICs5NSw3IEBAIHNwbmFtZShvbGRuYW1l
LCBuZXduYW1lKQogICAgICAgLyoKICAgICAgICAqICBBZGQgdG8gZW5kIG9mIG5ld25hbWUKICAg
ICAgICAqLwotICAgICAgZm9yIChwID0gYmVzdDsgKm5wID0gKnArKzsgbnArKykKKyAgICAgIGZv
ciAocCA9IGJlc3Q7ICgqbnAgPSAqcCsrKTsgbnArKykKIAk7CiAgICAgfQogfQpkaWZmIC11cHJr
Lm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2xpYi9zaC9zdHJpbmdsaXN0LmMgYmFzaC0yLjA1Yi9saWIv
c2gvc3RyaW5nbGlzdC5jCi0tLSBiYXNoLTIuMDViLm9yaWcvbGliL3NoL3N0cmluZ2xpc3QuYwky
MDAyLTAzLTI1IDIxOjAzOjMyICswMzAwCisrKyBiYXNoLTIuMDViL2xpYi9zaC9zdHJpbmdsaXN0
LmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMTQxLDYgKzE0MSw3IEBAIHN0cmxpc3Rf
Y29weSAoc2wpCiAgIHJldHVybiBuZXc7CiB9CiAKKyNpZmRlZiBJTkNMVURFX1VOVVNFRAogLyog
UmV0dXJuIGEgbmV3IFNUUklOR0xJU1Qgd2l0aCBldmVyeXRoaW5nIGZyb20gTTEgYW5kIE0yLiAq
LwogCiBTVFJJTkdMSVNUICoKQEAgLTE2Miw2ICsxNjMsNyBAQCBzdHJsaXN0X21lcmdlIChtMSwg
bTIpCiAgIHNsLT5saXN0W25dID0gKGNoYXIgKilOVUxMOwogICByZXR1cm4gKHNsKTsKIH0KKyNl
bmRpZgogCiAvKiBNYWtlIFNUUklOR0xJU1QgTTEgY29udGFpbiBldmVyeXRoaW5nIGluIE0xIGFu
ZCBNMi4gKi8KIFNUUklOR0xJU1QgKgpkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2xp
Yi9zaC9zdHJ0cmFucy5jIGJhc2gtMi4wNWIvbGliL3NoL3N0cnRyYW5zLmMKLS0tIGJhc2gtMi4w
NWIub3JpZy9saWIvc2gvc3RydHJhbnMuYwkyMDAyLTA1LTEzIDIzOjMyOjI3ICswNDAwCisrKyBi
YXNoLTIuMDViL2xpYi9zaC9zdHJ0cmFucy5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAg
LTE0NSw3ICsxNDUsNyBAQCBhbnNpY19xdW90ZSAoc3RyLCBmbGFncywgcmxlbikKICAgICAgaW50
IGZsYWdzLCAqcmxlbjsKIHsKICAgY2hhciAqciwgKnJldCwgKnM7Ci0gIGludCBsLCByc2l6ZSwg
dDsKKyAgaW50IGwsIHJzaXplOwogICB1bnNpZ25lZCBjaGFyIGM7CiAKICAgaWYgKHN0ciA9PSAw
IHx8ICpzdHIgPT0gMCkKQEAgLTIxNiw3ICsyMTYsNyBAQCBhbnNpY19zaG91bGRxdW90ZSAoc3Ry
aW5nKQogICBpZiAoc3RyaW5nID09IDApCiAgICAgcmV0dXJuIDA7CiAKLSAgZm9yIChzID0gc3Ry
aW5nOyBjID0gKnM7IHMrKykKKyAgZm9yIChzID0gc3RyaW5nOyAoYyA9ICpzKTsgcysrKQogICAg
IGlmIChJU1BSSU5UIChjKSA9PSAwKQogICAgICAgcmV0dXJuIDE7CiAKZGlmZiAtdXByay5vcmln
IGJhc2gtMi4wNWIub3JpZy9saWIvc2gvemNhdGZkLmMgYmFzaC0yLjA1Yi9saWIvc2gvemNhdGZk
LmMKLS0tIGJhc2gtMi4wNWIub3JpZy9saWIvc2gvemNhdGZkLmMJMjAwMi0wNC0wNCAyMjozMzoz
MSArMDQwMAorKysgYmFzaC0yLjA1Yi9saWIvc2gvemNhdGZkLmMJMjAwMi0wOS0xNiAwMzoxNzow
OSArMDQwMApAQCAtNDAsNyArNDAsNyBAQCBleHRlcm4gaW50IHp3cml0ZSBfX1AoKGludCwgY2hh
ciAqLCBzc2l6CiBpbnQKIHpjYXRmZCAoZmQsIG9mZCwgZm4pCiAgICAgIGludCBmZCwgb2ZkOwot
ICAgICBjaGFyICpmbjsKKyAgICAgY29uc3QgY2hhciAqZm47CiB7CiAgIHNzaXplX3QgbnI7CiAg
IGludCBydmFsOwpkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL2xpYi90aWxkZS90aWxk
ZS5jIGJhc2gtMi4wNWIvbGliL3RpbGRlL3RpbGRlLmMKLS0tIGJhc2gtMi4wNWIub3JpZy9saWIv
dGlsZGUvdGlsZGUuYwkyMDAyLTAzLTEyIDE5OjI5OjM2ICswMzAwCisrKyBiYXNoLTIuMDViL2xp
Yi90aWxkZS90aWxkZS5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTE5MCw3ICsxOTAs
NyBAQCB0aWxkZV9leHBhbmQgKHN0cmluZykKICAgaW50IHJlc3VsdF9zaXplLCByZXN1bHRfaW5k
ZXg7CiAKICAgcmVzdWx0X2luZGV4ID0gcmVzdWx0X3NpemUgPSAwOwotICBpZiAocmVzdWx0ID0g
c3RyY2hyIChzdHJpbmcsICd+JykpCisgIGlmICgocmVzdWx0ID0gc3RyY2hyIChzdHJpbmcsICd+
JykpKQogICAgIHJlc3VsdCA9IChjaGFyICopeG1hbGxvYyAocmVzdWx0X3NpemUgPSAoc3RybGVu
IChzdHJpbmcpICsgMTYpKTsKICAgZWxzZQogICAgIHJlc3VsdCA9IChjaGFyICopeG1hbGxvYyAo
cmVzdWx0X3NpemUgPSAoc3RybGVuIChzdHJpbmcpICsgMSkpOwpkaWZmIC11cHJrLm9yaWcgYmFz
aC0yLjA1Yi5vcmlnL21haWxjaGVjay5jIGJhc2gtMi4wNWIvbWFpbGNoZWNrLmMKLS0tIGJhc2gt
Mi4wNWIub3JpZy9tYWlsY2hlY2suYwkyMDAyLTAxLTEwIDIyOjIzOjE1ICswMzAwCisrKyBiYXNo
LTIuMDViL21haWxjaGVjay5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTMyNiw3ICsz
MjYsNyBAQCByZW1lbWJlcl9tYWlsX2RhdGVzICgpCiAgICAgICByZXR1cm47CiAgICAgfQogCi0g
IHdoaWxlIChtYWlsZmlsZSA9IGV4dHJhY3RfY29sb25fdW5pdCAobWFpbHBhdGhzLCAmaSkpCisg
IHdoaWxlICgobWFpbGZpbGUgPSBleHRyYWN0X2NvbG9uX3VuaXQgKG1haWxwYXRocywgJmkpKSkK
ICAgICB7CiAgICAgICBtcCA9IHBhcnNlX21haWxwYXRoX3NwZWMgKG1haWxmaWxlKTsKICAgICAg
IGlmIChtcCAmJiAqbXApCkBAIC00MDAsNyArNDAwLDcgQEAgY2hlY2tfbWFpbCAoKQogI3VuZGVm
IGF0aW1lCiAjdW5kZWYgbXRpbWUKIAotCSAgaWYgKHRlbXAgPSBleHBhbmRfc3RyaW5nX3RvX3N0
cmluZyAobWVzc2FnZSwgUV9ET1VCTEVfUVVPVEVTKSkKKwkgIGlmICgodGVtcCA9IGV4cGFuZF9z
dHJpbmdfdG9fc3RyaW5nIChtZXNzYWdlLCBRX0RPVUJMRV9RVU9URVMpKSkKIAkgICAgewogCSAg
ICAgIHB1dHMgKHRlbXApOwogCSAgICAgIGZyZWUgKHRlbXApOwpkaWZmIC11cHJrLm9yaWcgYmFz
aC0yLjA1Yi5vcmlnL21ha2VfY21kLmMgYmFzaC0yLjA1Yi9tYWtlX2NtZC5jCi0tLSBiYXNoLTIu
MDViLm9yaWcvbWFrZV9jbWQuYwkyMDAyLTA1LTA2IDIxOjM3OjAyICswNDAwCisrKyBiYXNoLTIu
MDViL21ha2VfY21kLmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtNTgwLDcgKzU4MCw3
IEBAIG1ha2VfaGVyZV9kb2N1bWVudCAodGVtcCkKICAgICAgYmUgcmVhZCB2ZXJiYXRpbSBmcm9t
IHRoZSBpbnB1dC4gIElmIGl0IHdhcyBub3QgcXVvdGVkLCB3ZQogICAgICBuZWVkIHRvIHBlcmZv
cm0gYmFja3NsYXNoLXF1b3RlZCBuZXdsaW5lIHJlbW92YWwuICovCiAgIGRlbGltX3VucXVvdGVk
ID0gKHRlbXAtPnJlZGlyZWN0ZWUuZmlsZW5hbWUtPmZsYWdzICYgV19RVU9URUQpID09IDA7Ci0g
IHdoaWxlIChmdWxsX2xpbmUgPSByZWFkX3NlY29uZGFyeV9saW5lIChkZWxpbV91bnF1b3RlZCkp
CisgIHdoaWxlICgoZnVsbF9saW5lID0gcmVhZF9zZWNvbmRhcnlfbGluZSAoZGVsaW1fdW5xdW90
ZWQpKSkKICAgICB7CiAgICAgICByZWdpc3RlciBjaGFyICpsaW5lOwogICAgICAgaW50IGxlbjsK
ZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9wYXJzZS55IGJhc2gtMi4wNWIvcGFyc2Uu
eQotLS0gYmFzaC0yLjA1Yi5vcmlnL3BhcnNlLnkJMjAwMi0wNS0yMSAxOTo1NzozMCArMDQwMAor
KysgYmFzaC0yLjA1Yi9wYXJzZS55CTIwMDItMDktMTYgMDM6MjE6NDcgKzA0MDAKQEAgLTE2Miw3
ICsxNjIsOSBAQCBzdGF0aWMgY2hhciAqcmVhZF9hX2xpbmUgX19QKChpbnQpKTsKIHN0YXRpYyBp
bnQgcmVzZXJ2ZWRfd29yZF9hY2NlcHRhYmxlIF9fUCgoaW50KSk7CiBzdGF0aWMgaW50IHl5bGV4
IF9fUCgodm9pZCkpOwogc3RhdGljIGludCBhbGlhc19leHBhbmRfdG9rZW4gX19QKChjaGFyICop
KTsKKyNpZiBkZWZpbmVkIChDT01NQU5EX1RJTUlORykKIHN0YXRpYyBpbnQgdGltZV9jb21tYW5k
X2FjY2VwdGFibGUgX19QKCh2b2lkKSk7CisjZW5kaWYKIHN0YXRpYyBpbnQgc3BlY2lhbF9jYXNl
X3Rva2VucyBfX1AoKGNoYXIgKikpOwogc3RhdGljIGludCByZWFkX3Rva2VuIF9fUCgoaW50KSk7
CiBzdGF0aWMgY2hhciAqcGFyc2VfbWF0Y2hlZF9wYWlyIF9fUCgoaW50LCBpbnQsIGludCwgaW50
ICosIGludCkpOwpAQCAtMTg3LDcgKzE4OSw5IEBAIHN0YXRpYyBpbnQgdG9rZW5faXNfYXNzaWdu
bWVudCBfX1AoKGNoYXIKIHN0YXRpYyBpbnQgdG9rZW5faXNfaWRlbnQgX19QKChjaGFyICosIGlu
dCkpOwogI2VuZGlmCiBzdGF0aWMgaW50IHJlYWRfdG9rZW5fd29yZCBfX1AoKGludCkpOworI2lm
ZGVmIElOQ0xVREVfVU5VU0VECiBzdGF0aWMgdm9pZCBkaXNjYXJkX3BhcnNlcl9jb25zdHJ1Y3Rz
IF9fUCgoaW50KSk7CisjZW5kaWYKIAogc3RhdGljIGNoYXIgKmVycm9yX3Rva2VuX2Zyb21fdG9r
ZW4gX19QKChpbnQpKTsKIHN0YXRpYyBjaGFyICplcnJvcl90b2tlbl9mcm9tX3RleHQgX19QKCh2
b2lkKSk7CkBAIC0yMTg3LDEwICsyMTkxLDEwIEBAIGFsaWFzX2V4cGFuZF90b2tlbiAodG9rc3Ry
KQogfQogI2VuZGlmIC8qIEFMSUFTICovCiAKKyNpZiBkZWZpbmVkIChDT01NQU5EX1RJTUlORykK
IHN0YXRpYyBpbnQKIHRpbWVfY29tbWFuZF9hY2NlcHRhYmxlICgpCiB7Ci0jaWYgZGVmaW5lZCAo
Q09NTUFORF9USU1JTkcpCiAgIHN3aXRjaCAobGFzdF9yZWFkX3Rva2VuKQogICAgIHsKICAgICBj
YXNlIDA6CkBAIC0yMjA4LDEwICsyMjEyLDggQEAgdGltZV9jb21tYW5kX2FjY2VwdGFibGUgKCkK
ICAgICBkZWZhdWx0OgogICAgICAgcmV0dXJuIDA7CiAgICAgfQotI2Vsc2UKLSAgcmV0dXJuIDA7
Ci0jZW5kaWYgLyogQ09NTUFORF9USU1JTkcgKi8KIH0KKyNlbmRpZiAvKiBDT01NQU5EX1RJTUlO
RyAqLwogCiAvKiBIYW5kbGUgc3BlY2lhbCBjYXNlcyBvZiB0b2tlbiByZWNvZ25pdGlvbjoKIAlJ
TiBpcyByZWNvZ25pemVkIGlmIHRoZSBsYXN0IHRva2VuIHdhcyBXT1JEIGFuZCB0aGUgdG9rZW4K
QEAgLTI3MjEsNiArMjcyMyw3IEBAIHBhcnNlX21hdGNoZWRfcGFpciAocWMsIG9wZW4sIGNsb3Nl
LCBsZW4KIAl7CiAJICBpZiAob3BlbiA9PSBjaCkJLyogdW5kbyBwcmV2aW91cyBpbmNyZW1lbnQg
Ki8KIAkgICAgY291bnQtLTsKKwkgIG5lc3RyZXQgPSAnXDAnOyAvKiBuZXZlciB1c2VkICovCiAJ
ICBpZiAoY2ggPT0gJygnKQkJLyogKSAqLwogCSAgICBuZXN0cmV0ID0gcGFyc2VfbWF0Y2hlZF9w
YWlyICgwLCAnKCcsICcpJywgJm5lc3RsZW4sIDApOwogCSAgZWxzZSBpZiAoY2ggPT0gJ3snKQkJ
LyogfSAqLwpAQCAtMjg2NCwxMyArMjg2NywxMyBAQCBwYXJzZV9hcml0aF9jbWQgKGVwKQogc3Rh
dGljIHZvaWQKIGNvbmRfZXJyb3IgKCkKIHsKLSAgY2hhciAqZXRleHQ7Ci0KICAgaWYgKEVPRl9S
ZWFjaGVkICYmIGNvbmRfdG9rZW4gIT0gQ09ORF9FUlJPUikJCS8qIFtbICovCiAgICAgcGFyc2Vy
X2Vycm9yIChjb25kX2xpbmVubywgInVuZXhwZWN0ZWQgRU9GIHdoaWxlIGxvb2tpbmcgZm9yIGBd
XSciKTsKICAgZWxzZSBpZiAoY29uZF90b2tlbiAhPSBDT05EX0VSUk9SKQogICAgIHsKLSAgICAg
IGlmIChldGV4dCA9IGVycm9yX3Rva2VuX2Zyb21fdG9rZW4gKGNvbmRfdG9rZW4pKQorICAgICAg
Y2hhciAqZXRleHQgPSBlcnJvcl90b2tlbl9mcm9tX3Rva2VuIChjb25kX3Rva2VuKTsKKworICAg
ICAgaWYgKGV0ZXh0KQogCXsKIAkgIHBhcnNlcl9lcnJvciAoY29uZF9saW5lbm8sICJzeW50YXgg
ZXJyb3IgaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lvbjogdW5leHBlY3RlZCB0b2tlbiBgJXMnIiwg
ZXRleHQpOwogCSAgZnJlZSAoZXRleHQpOwpAQCAtMjk1Miw3ICsyOTU1LDcgQEAgY29uZF90ZXJt
ICgpCiAJewogCSAgaWYgKHRlcm0pCiAJICAgIGRpc3Bvc2VfY29uZF9ub2RlICh0ZXJtKTsJCS8q
ICggKi8KLQkgIGlmIChldGV4dCA9IGVycm9yX3Rva2VuX2Zyb21fdG9rZW4gKGNvbmRfdG9rZW4p
KQorCSAgaWYgKChldGV4dCA9IGVycm9yX3Rva2VuX2Zyb21fdG9rZW4gKGNvbmRfdG9rZW4pKSkK
IAkgICAgewogCSAgICAgIHBhcnNlcl9lcnJvciAobGluZW5vLCAidW5leHBlY3RlZCB0b2tlbiBg
JXMnLCBleHBlY3RlZCBgKSciLCBldGV4dCk7CiAJICAgICAgZnJlZSAoZXRleHQpOwpAQCAtMjk4
NCw3ICsyOTg3LDcgQEAgY29uZF90ZXJtICgpCiAgICAgICBlbHNlCiAJewogCSAgZGlzcG9zZV93
b3JkIChvcCk7Ci0JICBpZiAoZXRleHQgPSBlcnJvcl90b2tlbl9mcm9tX3Rva2VuICh0b2spKQor
CSAgaWYgKChldGV4dCA9IGVycm9yX3Rva2VuX2Zyb21fdG9rZW4gKHRvaykpKQogCSAgICB7CiAJ
ICAgICAgcGFyc2VyX2Vycm9yIChsaW5lX251bWJlciwgInVuZXhwZWN0ZWQgYXJndW1lbnQgYCVz
JyB0byBjb25kaXRpb25hbCB1bmFyeSBvcGVyYXRvciIsIGV0ZXh0KTsKIAkgICAgICBmcmVlIChl
dGV4dCk7CkBAIC0zMDIxLDcgKzMwMjQsNyBAQCBjb25kX3Rlcm0gKCkKIAl9CiAgICAgICBlbHNl
CiAJewotCSAgaWYgKGV0ZXh0ID0gZXJyb3JfdG9rZW5fZnJvbV90b2tlbiAodG9rKSkKKwkgIGlm
ICgoZXRleHQgPSBlcnJvcl90b2tlbl9mcm9tX3Rva2VuICh0b2spKSkKIAkgICAgewogCSAgICAg
IHBhcnNlcl9lcnJvciAobGluZV9udW1iZXIsICJ1bmV4cGVjdGVkIHRva2VuIGAlcycsIGNvbmRp
dGlvbmFsIGJpbmFyeSBvcGVyYXRvciBleHBlY3RlZCIsIGV0ZXh0KTsKIAkgICAgICBmcmVlIChl
dGV4dCk7CkBAIC0zMDQxLDcgKzMwNDQsNyBAQCBjb25kX3Rlcm0gKCkKIAl9CiAgICAgICBlbHNl
CiAJewotCSAgaWYgKGV0ZXh0ID0gZXJyb3JfdG9rZW5fZnJvbV90b2tlbiAodG9rKSkKKwkgIGlm
ICgoZXRleHQgPSBlcnJvcl90b2tlbl9mcm9tX3Rva2VuICh0b2spKSkKIAkgICAgewogCSAgICAg
IHBhcnNlcl9lcnJvciAobGluZV9udW1iZXIsICJ1bmV4cGVjdGVkIGFyZ3VtZW50IGAlcycgdG8g
Y29uZGl0aW9uYWwgYmluYXJ5IG9wZXJhdG9yIiwgZXRleHQpOwogCSAgICAgIGZyZWUgKGV0ZXh0
KTsKQEAgLTMwNTksNyArMzA2Miw3IEBAIGNvbmRfdGVybSAoKQogICAgIHsKICAgICAgIGlmICh0
b2sgPCAyNTYpCiAJcGFyc2VyX2Vycm9yIChsaW5lX251bWJlciwgInVuZXhwZWN0ZWQgdG9rZW4g
YCVjJyBpbiBjb25kaXRpb25hbCBjb21tYW5kIiwgdG9rKTsKLSAgICAgIGVsc2UgaWYgKGV0ZXh0
ID0gZXJyb3JfdG9rZW5fZnJvbV90b2tlbiAodG9rKSkKKyAgICAgIGVsc2UgaWYgKChldGV4dCA9
IGVycm9yX3Rva2VuX2Zyb21fdG9rZW4gKHRvaykpKQogCXsKIAkgIHBhcnNlcl9lcnJvciAobGlu
ZV9udW1iZXIsICJ1bmV4cGVjdGVkIHRva2VuIGAlcycgaW4gY29uZGl0aW9uYWwgY29tbWFuZCIs
IGV0ZXh0KTsKIAkgIGZyZWUgKGV0ZXh0KTsKQEAgLTM3NzQsNyArMzc3Nyw3IEBAIGRlY29kZV9w
cm9tcHRfc3RyaW5nIChzdHJpbmcpCiAgIHJlc3VsdFtyZXN1bHRfaW5kZXggPSAwXSA9IDA7CiAg
IHRlbXAgPSAoY2hhciAqKU5VTEw7CiAKLSAgd2hpbGUgKGMgPSAqc3RyaW5nKyspCisgIHdoaWxl
ICgoYyA9ICpzdHJpbmcrKykpCiAgICAgewogICAgICAgaWYgKHBvc2l4bHlfY29ycmVjdCAmJiBj
ID09ICchJykKIAl7CkBAIC00MTI0LDEwICs0MTI3LDEwIEBAIGVycm9yX3Rva2VuX2Zyb21fdG9r
ZW4gKHRva2VuKQogewogICBjaGFyICp0OwogCi0gIGlmICh0ID0gZmluZF90b2tlbl9pbl9hbGlz
dCAodG9rZW4sIHdvcmRfdG9rZW5fYWxpc3QsIDApKQorICBpZiAoKHQgPSBmaW5kX3Rva2VuX2lu
X2FsaXN0ICh0b2tlbiwgd29yZF90b2tlbl9hbGlzdCwgMCkpKQogICAgIHJldHVybiB0OwogCi0g
IGlmICh0ID0gZmluZF90b2tlbl9pbl9hbGlzdCAodG9rZW4sIG90aGVyX3Rva2VuX2FsaXN0LCAw
KSkKKyAgaWYgKCh0ID0gZmluZF90b2tlbl9pbl9hbGlzdCAodG9rZW4sIG90aGVyX3Rva2VuX2Fs
aXN0LCAwKSkpCiAgICAgcmV0dXJuIHQ7CiAKICAgdCA9IChjaGFyICopTlVMTDsKQEAgLTQyNzks
NiArNDI4Miw3IEBAIHJlcG9ydF9zeW50YXhfZXJyb3IgKG1lc3NhZ2UpCiAgIGxhc3RfY29tbWFu
ZF9leGl0X3ZhbHVlID0gRVhfVVNBR0U7CiB9CiAKKyNpZmRlZiBJTkNMVURFX1VOVVNFRAogLyog
Pz8/IE5lZWRlZCBmdW5jdGlvbi4gPz8/IFdlIGhhdmUgdG8gYmUgYWJsZSB0byBkaXNjYXJkIHRo
ZSBjb25zdHJ1Y3RzCiAgICBjcmVhdGVkIGR1cmluZyBwYXJzaW5nLiAgSW4gdGhlIGNhc2Ugb2Yg
ZXJyb3IsIHdlIHdhbnQgdG8gcmV0dXJuCiAgICBhbGxvY2F0ZWQgb2JqZWN0cyB0byB0aGUgbWVt
b3J5IHBvb2wuICBJbiB0aGUgY2FzZSBvZiBubyBlcnJvciwgd2Ugd2FudApAQCAtNDI4OSw2ICs0
MjkzLDcgQEAgZGlzY2FyZF9wYXJzZXJfY29uc3RydWN0cyAoZXJyb3JfcCkKICAgICAgaW50IGVy
cm9yX3A7CiB7CiB9CisjZW5kaWYKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgogICoJCQkJCQkqCmRpZmYgLXVwcmsub3JpZyBiYXNoLTIuMDViLm9y
aWcvcGF0aGV4cC5jIGJhc2gtMi4wNWIvcGF0aGV4cC5jCi0tLSBiYXNoLTIuMDViLm9yaWcvcGF0
aGV4cC5jCTIwMDItMDUtMDYgMjE6NDM6MDUgKzA0MDAKKysrIGJhc2gtMi4wNWIvcGF0aGV4cC5j
CTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTY3LDcgKzY3LDcgQEAgdW5xdW90ZWRfZ2xv
Yl9wYXR0ZXJuX3AgKHN0cmluZykKICAgb3BlbiA9IDA7CiAgIHNlbmQgPSBzdHJpbmcgKyBzdHJs
ZW4gKHN0cmluZyk7CiAKLSAgd2hpbGUgKGMgPSAqc3RyaW5nKyspCisgIHdoaWxlICgoYyA9ICpz
dHJpbmcrKykpCiAgICAgewogICAgICAgc3dpdGNoIChjKQogCXsKQEAgLTQxOSw3ICs0MTksNyBA
QCBzZXR1cF9pZ25vcmVfcGF0dGVybnMgKGl2cCkKIAogICBudW1pdGVtcyA9IG1heGl0ZW1zID0g
cHRyID0gMDsKIAotICB3aGlsZSAoY29sb25fYml0ID0gZXh0cmFjdF9jb2xvbl91bml0ICh0aGlz
X2lnbm9yZXZhbCwgJnB0cikpCisgIHdoaWxlICgoY29sb25fYml0ID0gZXh0cmFjdF9jb2xvbl91
bml0ICh0aGlzX2lnbm9yZXZhbCwgJnB0cikpKQogICAgIHsKICAgICAgIGlmIChudW1pdGVtcyAr
IDEgPj0gbWF4aXRlbXMpCiAJewpkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL3Bjb21w
bGV0ZS5jIGJhc2gtMi4wNWIvcGNvbXBsZXRlLmMKLS0tIGJhc2gtMi4wNWIub3JpZy9wY29tcGxl
dGUuYwkyMDAyLTA0LTEwIDE4OjEwOjAzICswNDAwCisrKyBiYXNoLTIuMDViL3Bjb21wbGV0ZS5j
CTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTUwOSw2ICs1MDksNyBAQCBpdF9pbml0X2pv
Ymxpc3QgKGl0cCwganN0YXRlKQogICBjaGFyICpzLCAqdDsKICAgSk9CX1NUQVRFIGpzOwogCisg
IGpzID0gLTE7CiAgIGlmIChqc3RhdGUgPT0gMCkKICAgICBqcyA9IEpSVU5OSU5HOwogICBlbHNl
IGlmIChqc3RhdGUgPT0gMSkKZGlmZiAtdXByay5vcmlnIGJhc2gtMi4wNWIub3JpZy9wcmludF9j
bWQuYyBiYXNoLTIuMDViL3ByaW50X2NtZC5jCi0tLSBiYXNoLTIuMDViLm9yaWcvcHJpbnRfY21k
LmMJMjAwMi0wMy0xMiAyMjozOTozMCArMDMwMAorKysgYmFzaC0yLjA1Yi9wcmludF9jbWQuYwky
MDAyLTA5LTE2IDAzOjE3OjA5ICswNDAwCkBAIC0xNDMsNyArMTQzLDcgQEAgbWFrZV9jb21tYW5k
X3N0cmluZ19pbnRlcm5hbCAoY29tbWFuZCkKICAgICAgQ09NTUFORCAqY29tbWFuZDsKIHsKICAg
aWYgKGNvbW1hbmQgPT0gMCkKLSAgICBjcHJpbnRmICgiIik7CisgICAgY3ByaW50ZiAoIiVzIiwg
IiIpOwogICBlbHNlCiAgICAgewogICAgICAgaWYgKHNraXBfdGhpc19pbmRlbnQpCmRpZmYgLXVw
cmsub3JpZyBiYXNoLTIuMDViLm9yaWcvcmVkaXIuYyBiYXNoLTIuMDViL3JlZGlyLmMKLS0tIGJh
c2gtMi4wNWIub3JpZy9yZWRpci5jCTIwMDItMDMtMTIgMjM6Mjc6MzggKzAzMDAKKysrIGJhc2gt
Mi4wNWIvcmVkaXIuYwkyMDAyLTA5LTE2IDAzOjE3OjA5ICswNDAwCkBAIC0xMTYsNiArMTE2LDcg
QEAgcmVkaXJlY3Rpb25fZXJyb3IgKHRlbXAsIGVycm9yKQogI2VuZGlmCiAgIGVsc2UgaWYgKGV4
cGFuZGFibGVfcmVkaXJlY3Rpb25fZmlsZW5hbWUgKHRlbXApKQogICAgIHsKKyAgICAgIG9mbGFn
cyA9IDA7IC8qIG5ldmVyIHVzZWQgKi8KICAgICAgIGlmIChwb3NpeGx5X2NvcnJlY3QgJiYgaW50
ZXJhY3RpdmVfc2hlbGwgPT0gMCkKIAl7CiAJICBvZmxhZ3MgPSB0ZW1wLT5yZWRpcmVjdGVlLmZp
bGVuYW1lLT5mbGFnczsKQEAgLTY1Niw2ICs2NTcsOCBAQCBkb19yZWRpcmVjdGlvbl9pbnRlcm5h
bCAocmVkaXJlY3QsIGZvcl9yCiAJICAgIGNhc2Ugcl9tb3ZlX291dHB1dF93b3JkOgogCSAgICAg
IG5ld19yZWRpcmVjdCA9IG1ha2VfcmVkaXJlY3Rpb24gKHJlZGlyZWN0b3IsIHJfbW92ZV9vdXRw
dXQsIHJkKTsKIAkgICAgICBicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CiAJICAgIH0K
IAl9CiAgICAgICBlbHNlIGlmIChyaSA9PSByX2R1cGxpY2F0aW5nX291dHB1dF93b3JkICYmIHJl
ZGlyZWN0b3IgPT0gMSkKQEAgLTcxMCw2ICs3MTIsNyBAQCBkb19yZWRpcmVjdGlvbl9pbnRlcm5h
bCAocmVkaXJlY3QsIGZvcl9yCiAgICAgY2FzZSByX2Vycl9hbmRfb3V0OgkJLyogY29tbWFuZCAm
PmZpbGVuYW1lICovCiAgICAgY2FzZSByX2lucHV0X291dHB1dDoKICAgICBjYXNlIHJfb3V0cHV0
X2ZvcmNlOgorICAgICAgb2ZsYWdzID0gMDsgLyogbmV2ZXIgdXNlZCAqLwogICAgICAgaWYgKHBv
c2l4bHlfY29ycmVjdCAmJiBpbnRlcmFjdGl2ZV9zaGVsbCA9PSAwKQogCXsKIAkgIG9mbGFncyA9
IHJlZGlyZWN0ZWUtPmZsYWdzOwpAQCAtMTAyNyw2ICsxMDMwLDggQEAgc3RkaW5fcmVkaXJlY3Rp
b24gKHJpLCByZWRpcmVjdG9yKQogICAgIGNhc2Ugcl9vdXRwdXRfZm9yY2U6CiAgICAgY2FzZSBy
X2R1cGxpY2F0aW5nX291dHB1dF93b3JkOgogICAgICAgcmV0dXJuICgwKTsKKyAgICBkZWZhdWx0
OgorCWJyZWFrOwogICAgIH0KICAgcmV0dXJuICgwKTsKIH0KZGlmZiAtdXByay5vcmlnIGJhc2gt
Mi4wNWIub3JpZy9zaGVsbC5jIGJhc2gtMi4wNWIvc2hlbGwuYwotLS0gYmFzaC0yLjA1Yi5vcmln
L3NoZWxsLmMJMjAwMi0wNy0wMSAxOToyNzoxMSArMDQwMAorKysgYmFzaC0yLjA1Yi9zaGVsbC5j
CTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTUzMSw2ICs1MzEsNyBAQCBtYWluIChhcmdj
LCBhcmd2LCBlbnYpCiAgIC8qIEdpdmUgdGhpcyBzaGVsbCBhIHBsYWNlIHRvIGxvbmdqbXAgdG8g
YmVmb3JlIGV4ZWN1dGluZyB0aGUKICAgICAgc3RhcnR1cCBmaWxlcy4gIFRoaXMgYWxsb3dzIHVz
ZXJzIHRvIHByZXNzIEMtYyB0byBhYm9ydCB0aGUKICAgICAgbGVuZ3RoeSBzdGFydHVwLiAqLwor
ICAvKiBYWFg6IG5vbi1hdG9taWMgdXBkYXRlIG9mIHRvcF9sZXZlbCB3aXRoIG5vdGhpbmcgcHJl
dmVudGluZyBpdHMgdXNlICovCiAgIGNvZGUgPSBzZXRqbXAgKHRvcF9sZXZlbCk7CiAgIGlmIChj
b2RlKQogICAgIHsKQEAgLTc2Miw3ICs3NjMsNyBAQCBwYXJzZV9zaGVsbF9vcHRpb25zIChhcmd2
LCBhcmdfc3RhcnQsIGFyCiAKICAgICAgIGkgPSAxOwogICAgICAgb25fb3Jfb2ZmID0gYXJnX3N0
cmluZ1swXTsKLSAgICAgIHdoaWxlIChhcmdfY2hhcmFjdGVyID0gYXJnX3N0cmluZ1tpKytdKQor
ICAgICAgd2hpbGUgKChhcmdfY2hhcmFjdGVyID0gYXJnX3N0cmluZ1tpKytdKSkKIAl7CiAJICBz
d2l0Y2ggKGFyZ19jaGFyYWN0ZXIpCiAJICAgIHsKQEAgLTExMzUsNiArMTEzNiw4IEBAIHJ1bl93
b3JkZXhwICh3b3JkcykKICAgaW50IGNvZGUsIG53LCBuYjsKICAgV09SRF9MSVNUICp3bCwgKnJl
c3VsdDsKIAorICAvKiBYWFg6IG5vbi1hdG9taWMgdXBkYXRlIG9mIHRvcF9sZXZlbCB3aXRoIG5v
dGhpbmcgcHJldmVudGluZyBpdHMgdXNlICovCisgIC8qIFhYWDogZG9lc24ndCByZXN0b3JlIHRv
cF9sZXZlbCBvbiBmdW5jdGlvbiByZXR1cm4gKGJ1dCB3aWxsIGV4aXQgc29vbikgKi8KICAgY29k
ZSA9IHNldGptcCAodG9wX2xldmVsKTsKIAogICBpZiAoY29kZSAhPSBOT1RfSlVNUEVEKQpAQCAt
MTIwNSw2ICsxMjA4LDggQEAgcnVuX29uZV9jb21tYW5kIChjb21tYW5kKQogewogICBpbnQgY29k
ZTsKIAorICAvKiBYWFg6IG5vbi1hdG9taWMgdXBkYXRlIG9mIHRvcF9sZXZlbCB3aXRoIG5vdGhp
bmcgcHJldmVudGluZyBpdHMgdXNlICovCisgIC8qIFhYWDogZG9lc24ndCByZXN0b3JlIHRvcF9s
ZXZlbCBvbiBmdW5jdGlvbiByZXR1cm4gKGJ1dCB3aWxsIGV4aXQgc29vbikgKi8KICAgY29kZSA9
IHNldGptcCAodG9wX2xldmVsKTsKIAogICBpZiAoY29kZSAhPSBOT1RfSlVNUEVEKQpkaWZmIC11
cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmlnL3NpZy5jIGJhc2gtMi4wNWIvc2lnLmMKLS0tIGJhc2gt
Mi4wNWIub3JpZy9zaWcuYwkyMDAyLTA3LTExIDAwOjA3OjUzICswNDAwCisrKyBiYXNoLTIuMDVi
L3NpZy5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTQ0NSw2ICs0NDUsOCBAQCBzaWdp
bnRfc2lnaGFuZGxlciAoc2lnKQogICBpZiAoaW50ZXJydXB0X2ltbWVkaWF0ZWx5KQogICAgIHsK
ICAgICAgIGludGVycnVwdF9pbW1lZGlhdGVseSA9IDA7CisgICAgICAvKiBYWFg6IG1heSBpbnRl
cnJ1cHQgbm9uLXJlZW50cmFudCBsaWJyYXJ5IGZ1bmN0aW9ucyBhbmQgY2F1c2UKKyAgICAgICAq
IHJlLWVudHJ5IHdpdGggaW52YWxpZCAoaW50ZXJuYWwpIHN0YXRlLiAqLwogICAgICAgdGhyb3df
dG9fdG9wX2xldmVsICgpOwogICAgIH0KIApkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1Yi5vcmln
L3N1YnN0LmMgYmFzaC0yLjA1Yi9zdWJzdC5jCi0tLSBiYXNoLTIuMDViLm9yaWcvc3Vic3QuYwky
MDAyLTA2LTI0IDE1OjU5OjQ1ICswNDAwCisrKyBiYXNoLTIuMDViL3N1YnN0LmMJMjAwMi0wOS0x
NiAwMzoxNzowOSArMDQwMApAQCAtMTY0LDggKzE2NCwxMCBAQCBXT1JEX0xJU1QgKnN1YnN0X2Fz
c2lnbl92YXJsaXN0ID0gKFdPUkRfCiAgICB3aXRob3V0IGFueSBsZWFkaW5nIHZhcmlhYmxlIGFz
c2lnbm1lbnRzLiAqLwogc3RhdGljIFdPUkRfTElTVCAqZ2FyZ2xpc3QgPSAoV09SRF9MSVNUICop
TlVMTDsKIAorI2lmZGVmIElOQ0xVREVfVU5VU0VECiBzdGF0aWMgY2hhciAqcXVvdGVkX3N1YnN0
cmluZyBfX1AoKGNoYXIgKiwgaW50LCBpbnQpKTsKIHN0YXRpYyBpbnQgcXVvdGVkX3N0cmxlbiBf
X1AoKGNoYXIgKikpOworI2VuZGlmCiBzdGF0aWMgY2hhciAqcXVvdGVkX3N0cmNociBfX1AoKGNo
YXIgKiwgaW50LCBpbnQpKTsKIAogc3RhdGljIGNoYXIgKmV4cGFuZF9zdHJpbmdfaWZfbmVjZXNz
YXJ5IF9fUCgoY2hhciAqLCBpbnQsIEVYUEZVTkMgKikpOwpAQCAtMjA0LDcgKzIwNiw5IEBAIHN0
YXRpYyBpbnQgbWF0Y2hfcGF0dGVybl9jaGFyIF9fUCgoY2hhciAKIHN0YXRpYyBpbnQgbWF0Y2hf
cGF0dGVybiBfX1AoKGNoYXIgKiwgY2hhciAqLCBpbnQsIGNoYXIgKiosIGNoYXIgKiopKTsKIHN0
YXRpYyBpbnQgZ2V0cGF0c3BlYyBfX1AoKGludCwgY2hhciAqKSk7CiBzdGF0aWMgY2hhciAqZ2V0
cGF0dGVybiBfX1AoKGNoYXIgKiwgaW50LCBpbnQpKTsKKyNpZmRlZiBJTkNMVURFX1VOVVNFRAog
c3RhdGljIGNoYXIgKnZhcmlhYmxlX3JlbW92ZV9wYXR0ZXJuIF9fUCgoY2hhciAqLCBjaGFyICos
IGludCwgaW50KSk7CisjZW5kaWYKIHN0YXRpYyBjaGFyICpsaXN0X3JlbW92ZV9wYXR0ZXJuIF9f
UCgoV09SRF9MSVNUICosIGNoYXIgKiwgaW50LCBpbnQsIGludCkpOwogc3RhdGljIGNoYXIgKnBh
cmFtZXRlcl9saXN0X3JlbW92ZV9wYXR0ZXJuIF9fUCgoaW50LCBjaGFyICosIGludCwgaW50KSk7
CiAjaWZkZWYgQVJSQVlfVkFSUwpAQCAtMzY2LDcgKzM3MCw3IEBAIHVucXVvdGVkX21lbWJlciAo
Y2hhcmFjdGVyLCBzdHJpbmcpCiAKICAgc2xlbiA9IHN0cmxlbiAoc3RyaW5nKTsKICAgc2luZGV4
ID0gMDsKLSAgd2hpbGUgKGMgPSBzdHJpbmdbc2luZGV4XSkKKyAgd2hpbGUgKChjID0gc3RyaW5n
W3NpbmRleF0pKQogICAgIHsKICAgICAgIGlmIChjID09IGNoYXJhY3RlcikKIAlyZXR1cm4gKDEp
OwpAQCAtNDA5LDcgKzQxMyw3IEBAIHVucXVvdGVkX3N1YnN0cmluZyAoc3Vic3RyLCBzdHJpbmcp
CiAKICAgc2xlbiA9IHN0cmxlbiAoc3RyaW5nKTsKICAgc3VibGVuID0gc3RybGVuIChzdWJzdHIp
OwotICBmb3IgKHNpbmRleCA9IDA7IGMgPSBzdHJpbmdbc2luZGV4XTsgKQorICBmb3IgKHNpbmRl
eCA9IDA7IChjID0gc3RyaW5nW3NpbmRleF0pOyApCiAgICAgewogICAgICAgaWYgKFNUUkVRTiAo
c3RyaW5nICsgc2luZGV4LCBzdWJzdHIsIHN1YmxlbikpCiAJcmV0dXJuICgxKTsKQEAgLTUxNiw3
ICs1MjAsNyBAQCBzdHJpbmdfZXh0cmFjdCAoc3RyaW5nLCBzaW5kZXgsIGNoYXJsaXN0CiAKICAg
c2xlbiA9IHN0cmxlbiAoc3RyaW5nICsgKnNpbmRleCkgKyAqc2luZGV4OwogICBpID0gKnNpbmRl
eDsKLSAgd2hpbGUgKGMgPSBzdHJpbmdbaV0pCisgIHdoaWxlICgoYyA9IHN0cmluZ1tpXSkpCiAg
ICAgewogICAgICAgaWYgKGMgPT0gJ1xcJykKIAl7CkBAIC01NzUsNyArNTc5LDcgQEAgc3RyaW5n
X2V4dHJhY3RfZG91YmxlX3F1b3RlZCAoc3RyaW5nLCBzaQogCiAgIGogPSAwOwogICBpID0gKnNp
bmRleDsKLSAgd2hpbGUgKGMgPSBzdHJpbmdbaV0pCisgIHdoaWxlICgoYyA9IHN0cmluZ1tpXSkp
CiAgICAgewogICAgICAgLyogUHJvY2VzcyBhIGNoYXJhY3RlciB0aGF0IHdhcyBxdW90ZWQgYnkg
YSBiYWNrc2xhc2guICovCiAgICAgICBpZiAocGFzc19uZXh0KQpAQCAtNzA0LDcgKzcwOCw3IEBA
IHNraXBfZG91YmxlX3F1b3RlZCAoc3RyaW5nLCBzbGVuLCBzaW5kKQogCiAgIHBhc3NfbmV4dCA9
IGJhY2txdW90ZSA9IDA7CiAgIGkgPSBzaW5kOwotICB3aGlsZSAoYyA9IHN0cmluZ1tpXSkKKyAg
d2hpbGUgKChjID0gc3RyaW5nW2ldKSkKICAgICB7CiAgICAgICBpZiAocGFzc19uZXh0KQogCXsK
QEAgLTgyMiw3ICs4MjYsNyBAQCBzdHJpbmdfZXh0cmFjdF92ZXJiYXRpbSAoc3RyaW5nLCBzaW5k
ZXgsCiAgICAgICByZXR1cm4gdGVtcDsKICAgICB9CiAKLSAgZm9yIChpID0gKnNpbmRleDsgYyA9
IHN0cmluZ1tpXTsgaSsrKQorICBmb3IgKGkgPSAqc2luZGV4OyAoYyA9IHN0cmluZ1tpXSk7IGkr
KykKICAgICB7CiAgICAgICBpZiAoYyA9PSBDVExFU0MpCiAJewpAQCAtMTAzNCw3ICsxMDM4LDcg
QEAgZXh0cmFjdF9kb2xsYXJfYnJhY2Vfc3RyaW5nIChzdHJpbmcsIHNpbgogICBzbGVuID0gc3Ry
bGVuIChzdHJpbmcgKyAqc2luZGV4KSArICpzaW5kZXg7CiAKICAgaSA9ICpzaW5kZXg7Ci0gIHdo
aWxlIChjID0gc3RyaW5nW2ldKQorICB3aGlsZSAoKGMgPSBzdHJpbmdbaV0pKQogICAgIHsKICAg
ICAgIGlmIChwYXNzX2NoYXJhY3RlcikKIAl7CkBAIC0xMjk1LDcgKzEyOTksNyBAQCBza2lwX3Rv
X2RlbGltIChzdHJpbmcsIHN0YXJ0LCBkZWxpbXMpCiAgIG5vX2xvbmdqbXBfb25fZmF0YWxfZXJy
b3IgPSAxOwogICBpID0gc3RhcnQ7CiAgIHBhc3NfbmV4dCA9IGJhY2txID0gMDsKLSAgd2hpbGUg
KGMgPSBzdHJpbmdbaV0pCisgIHdoaWxlICgoYyA9IHN0cmluZ1tpXSkpCiAgICAgewogICAgICAg
aWYgKHBhc3NfbmV4dCkKIAl7CkBAIC0xOTczLDcgKzE5NzcsNyBAQCBkb19hc3NpZ25tZW50X2lu
dGVybmFsIChzdHJpbmcsIGV4cGFuZCkKICNkZWZpbmUgQVNTSUdOX1JFVFVSTihyKQlkbyB7IEZS
RUUgKHZhbHVlKTsgZnJlZSAobmFtZSk7IHJldHVybiAocik7IH0gd2hpbGUgKDApCiAKICNpZiBk
ZWZpbmVkIChBUlJBWV9WQVJTKQotICBpZiAodCA9IHhzdHJjaHIgKG5hbWUsICdbJykpCS8qXSov
CisgIGlmICgodCA9IHhzdHJjaHIgKG5hbWUsICdbJykpKQkvKl0qLwogICAgIHsKICAgICAgIGlm
IChhc3NpZ25fbGlzdCkKIAl7CkBAIC0yODkxLDcgKzI4OTUsNyBAQCBtYXRjaF9wYXR0ZXJuX2No
YXIgKHBhdCwgc3RyaW5nKQogICBpZiAoKnN0cmluZyA9PSAwKQogICAgIHJldHVybiAoMCk7CiAK
LSAgc3dpdGNoIChjID0gKnBhdCsrKQorICBzd2l0Y2ggKChjID0gKnBhdCsrKSkKICAgICB7CiAg
ICAgZGVmYXVsdDoKICAgICAgIHJldHVybiAoKnN0cmluZyA9PSBjKTsKQEAgLTMwMTEsNyArMzAx
NSw2IEBAIGdldHBhdHRlcm4gKHZhbHVlLCBxdW90ZWQsIGV4cGFuZHBhdCkKIHsKICAgY2hhciAq
cGF0LCAqdHdvcmQ7CiAgIFdPUkRfTElTVCAqbDsKLSAgaW50IGk7CiAKICAgdHdvcmQgPSB4c3Ry
Y2hyICh2YWx1ZSwgJ34nKSA/IGJhc2hfdGlsZGVfZXhwYW5kICh2YWx1ZSwgMCkgOiBzYXZlc3Ry
aW5nICh2YWx1ZSk7CiAKQEAgLTMwMjMsNyArMzAyNiw3IEBAIGdldHBhdHRlcm4gKHZhbHVlLCBx
dW90ZWQsIGV4cGFuZHBhdCkKICNpZiAwCiAgIGlmIChleHBhbmRwYXQgJiYgKHF1b3RlZCAmIChR
X0hFUkVfRE9DVU1FTlR8UV9ET1VCTEVfUVVPVEVTKSkgJiYgKnR3b3JkKQogICAgIHsKLSAgICAg
IGkgPSAwOworICAgICAgaW50IGkgPSAwOwogICAgICAgcGF0ID0gc3RyaW5nX2V4dHJhY3RfZG91
YmxlX3F1b3RlZCAodHdvcmQsICZpLCAxKTsKICAgICAgIGZyZWUgKHR3b3JkKTsKICAgICAgIHR3
b3JkID0gcGF0OwpAQCAtMzYyNiw2ICszNjI5LDcgQEAgcmVhZF9jb21zdWIgKGZkLCBxdW90ZWQp
CiAKICAgaXN0cmluZyA9IChjaGFyICopTlVMTDsKICAgaXN0cmluZ19pbmRleCA9IGlzdHJpbmdf
c2l6ZSA9IGJ1Zm4gPSAwOworICBidWZwID0gYnVmOyAvKiByZWR1bmRhbnQgKi8KIAogI2lmZGVm
IF9fQ1lHV0lOX18KICAgc2V0bW9kZSAoZmQsIE9fVEVYVCk7CQkvKiB3ZSBkb24ndCB3YW50IENS
L0xGLCB3ZSB3YW50IFVuaXgtc3R5bGUgKi8KQEAgLTQwMDcsNyArNDAxMSw3IEBAIHBhcmFtZXRl
cl9icmFjZV9leHBhbmRfd29yZCAobmFtZSwgdmFyX2kKIAl0ZW1wID0gcXVvdGVfZXNjYXBlcyAo
dGVtcCk7CiAgICAgfQogI2VuZGlmCi0gIGVsc2UgaWYgKHZhciA9IGZpbmRfdmFyaWFibGUgKG5h
bWUpKQorICBlbHNlIGlmICgodmFyID0gZmluZF92YXJpYWJsZSAobmFtZSkpKQogICAgIHsKICAg
ICAgIGlmICh2YXJfaXNzZXQgKHZhcikgJiYgaW52aXNpYmxlX3AgKHZhcikgPT0gMCkKIAl7CkBA
IC00MTg1LDYgKzQxODksNyBAQCBwYXJhbWV0ZXJfYnJhY2VfZXhwYW5kX2xlbmd0aCAobmFtZSkK
ICAgU0hFTExfVkFSICp2YXI7CiAjZW5kaWYKIAorICB0ID0gTlVMTDsKICAgaWYgKG5hbWVbMV0g
PT0gJ1wwJykJCQkvKiAkeyN9ICovCiAgICAgbnVtYmVyID0gbnVtYmVyX29mX2FyZ3MgKCk7CiAg
IGVsc2UgaWYgKChuYW1lWzFdID09ICdAJyB8fCBuYW1lWzFdID09ICcqJykgJiYgbmFtZVsyXSA9
PSAnXDAnKQkvKiAkeyNAfSwgJHsjKn0gKi8KQEAgLTQ0ODksNiArNDQ5NCw3IEBAIHBhcmFtZXRl
cl9icmFjZV9zdWJzdHJpbmcgKHZhcm5hbWUsIHZhbHUKICAgaWYgKHIgPD0gMCkKICAgICByZXR1
cm4gKChyID09IDApID8gJmV4cGFuZF9wYXJhbV9lcnJvciA6IChjaGFyICopTlVMTCk7CiAKKyAg
dGVtcCA9IE5VTEw7CiAgIHN3aXRjaCAodnR5cGUpCiAgICAgewogICAgIGNhc2UgVlRfVkFSSUFC
TEU6CkBAIC00NTc2LDcgKzQ1ODIsNyBAQCBwYXRfc3Vic3QgKHN0cmluZywgcGF0LCByZXAsIG1m
bGFncykKICAgcmV0ID0gKGNoYXIgKil4bWFsbG9jIChyc2l6ZSA9IDY0KTsKICAgcmV0WzBdID0g
J1wwJzsKIAotICBmb3IgKHJlcGxlbiA9IFNUUkxFTiAocmVwKSwgcnB0ciA9IDAsIHN0ciA9IHN0
cmluZzs7KQorICBmb3IgKHJlcGxlbiA9IFNUUkxFTiAocmVwKSwgcnB0ciA9IDAsIChzdHIgPSBz
dHJpbmcpOzspCiAgICAgewogICAgICAgaWYgKG1hdGNoX3BhdHRlcm4gKHN0ciwgcGF0LCBtdHlw
ZSwgJnMsICZlKSA9PSAwKQogCWJyZWFrOwpAQCAtNDYyNCw3ICs0NjMwLDcgQEAgcG9zX3BhcmFt
c19wYXRfc3Vic3QgKHN0cmluZywgcGF0LCByZXAsIAogewogICBXT1JEX0xJU1QgKnNhdmUsICpw
YXJhbXM7CiAgIFdPUkRfREVTQyAqdzsKLSAgY2hhciAqcmV0LCAqdHQ7CisgIGNoYXIgKnJldDsK
IAogICBzYXZlID0gcGFyYW1zID0gbGlzdF9yZXN0X29mX2FyZ3MgKCk7CiAgIGlmIChzYXZlID09
IDApCkBAIC00NjgxLDcgKzQ2ODcsNyBAQCBwYXJhbWV0ZXJfYnJhY2VfcGF0c3ViICh2YXJuYW1l
LCB2YWx1ZSwgCiAgIGlmIChxdW90ZWQgJiAoUV9IRVJFX0RPQ1VNRU5UfFFfRE9VQkxFX1FVT1RF
UykpCiAgICAgbWZsYWdzIHw9IE1BVENIX1FVT1RFRDsKIAotICBpZiAocmVwID0gcXVvdGVkX3N0
cmNociAobHBhdHN1YiwgJy8nLCBTVF9CQUNLU0wpKQorICBpZiAoKHJlcCA9IHF1b3RlZF9zdHJj
aHIgKGxwYXRzdWIsICcvJywgU1RfQkFDS1NMKSkpCiAgICAgKnJlcCsrID0gJ1wwJzsKICAgZWxz
ZQogICAgIHJlcCA9IChjaGFyICopTlVMTDsKQEAgLTQ3MjcsNiArNDczMyw3IEBAIHBhcmFtZXRl
cl9icmFjZV9wYXRzdWIgKHZhcm5hbWUsIHZhbHVlLCAKICAgICAgb3RoZXIgY2FzZXMgaWYgUVVP
VEVEID09IDAsIHNpbmNlIHRoZSBwb3NwYXJhbXMgYW5kIGFycmF5cwogICAgICBpbmRleGVkIGJ5
ICogb3IgQCBkbyBzcGVjaWFsIHRoaW5ncyB3aGVuIFFVT1RFRCAhPSAwLiAqLwogCisgIHRlbXAg
PSAwOwogICBzd2l0Y2ggKHZ0eXBlKQogICAgIHsKICAgICBjYXNlIFZUX1ZBUklBQkxFOgpAQCAt
NDgyOCw3ICs0ODM1LDcgQEAgcGFyYW1ldGVyX2JyYWNlX2V4cGFuZCAoc3RyaW5nLCBpbmRleHAs
IAogCiAgIC8qIEZpbmQgb3V0IHdoYXQgY2hhcmFjdGVyIGVuZGVkIHRoZSB2YXJpYWJsZSBuYW1l
LiAgVGhlbgogICAgICBkbyB0aGUgYXBwcm9wcmlhdGUgdGhpbmcuICovCi0gIGlmIChjID0gc3Ry
aW5nW3NpbmRleF0pCisgIGlmICgoYyA9IHN0cmluZ1tzaW5kZXhdKSkKICAgICBzaW5kZXgrKzsK
IAogICAvKiBJZiBjIGlzIGZvbGxvd2VkIGJ5IG9uZSBvZiB0aGUgdmFsaWQgcGFyYW1ldGVyIGV4
cGFuc2lvbgpAQCAtNDgzOCw3ICs0ODQ1LDcgQEAgcGFyYW1ldGVyX2JyYWNlX2V4cGFuZCAoc3Ry
aW5nLCBpbmRleHAsIAogICBpZiAoYyA9PSAnOicgJiYgVkFMSURfUEFSQU1fRVhQQU5EX0NIQVIg
KHN0cmluZ1tzaW5kZXhdKSkKICAgICB7CiAgICAgICBjaGVja19udWxsbmVzcysrOwotICAgICAg
aWYgKGMgPSBzdHJpbmdbc2luZGV4XSkKKyAgICAgIGlmICgoYyA9IHN0cmluZ1tzaW5kZXhdKSkK
IAlzaW5kZXgrKzsKICAgICB9CiAgIGVsc2UgaWYgKGMgPT0gJzonICYmIHN0cmluZ1tzaW5kZXhd
ICE9IFJCUkFDRSkKQEAgLTYwNjgsNyArNjA3NSw3IEBAIHN0cmluZ19xdW90ZV9yZW1vdmFsIChz
dHJpbmcsIHF1b3RlZCkKIAogICByID0gcmVzdWx0X3N0cmluZyA9IChjaGFyICopeG1hbGxvYyAo
c2xlbiArIDEpOwogCi0gIGZvciAoZHF1b3RlID0gc2luZGV4ID0gMDsgYyA9IHN0cmluZ1tzaW5k
ZXhdOykKKyAgZm9yIChkcXVvdGUgPSBzaW5kZXggPSAwOyAoYyA9IHN0cmluZ1tzaW5kZXhdKTsp
CiAgICAgewogICAgICAgc3dpdGNoIChjKQogCXsKQEAgLTY0OTgsNyArNjUwNSw3IEBAIGJyYWNl
X2V4cGFuZF93b3JkX2xpc3QgKHRsaXN0LCBlZmxhZ3MpCiAJewogCSAgZXhwYW5zaW9ucyA9IGJy
YWNlX2V4cGFuZCAodGxpc3QtPndvcmQtPndvcmQpOwogCi0JICBmb3IgKGVpbmRleCA9IDA7IHRl
bXBfc3RyaW5nID0gZXhwYW5zaW9uc1tlaW5kZXhdOyBlaW5kZXgrKykKKwkgIGZvciAoZWluZGV4
ID0gMDsgKHRlbXBfc3RyaW5nID0gZXhwYW5zaW9uc1tlaW5kZXhdKTsgZWluZGV4KyspCiAJICAg
IHsKIAkgICAgICB3ID0gbWFrZV93b3JkICh0ZW1wX3N0cmluZyk7CiAJICAgICAgLyogSWYgYnJh
Y2UgZXhwYW5zaW9uIGRpZG4ndCBjaGFuZ2UgdGhlIHdvcmQsIHByZXNlcnZlCmRpZmYgLXVwcmsu
b3JpZyBiYXNoLTIuMDViLm9yaWcvdGVzdC5jIGJhc2gtMi4wNWIvdGVzdC5jCi0tLSBiYXNoLTIu
MDViLm9yaWcvdGVzdC5jCTIwMDItMDItMjggMTg6NTQ6NDcgKzAzMDAKKysrIGJhc2gtMi4wNWIv
dGVzdC5jCTIwMDItMDktMTYgMDM6MTc6MDkgKzA0MDAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAKKyNpbmNsdWRlICJzdGRjLmgiCisKICNpbmNsdWRlICJiYXNodHlw
ZXMuaCIKIAogI2lmICFkZWZpbmVkIChIQVZFX0xJTUlUU19IKQpAQCAtMTM0LDcgKzEzNiw3IEBA
IHN0YXRpYyBpbnQgZmlsZWNvbXAgX19QKChjaGFyICosIGNoYXIgKiwKIHN0YXRpYyBpbnQgYXJp
dGhjb21wIF9fUCgoY2hhciAqLCBjaGFyICosIGludCwgaW50KSk7CiBzdGF0aWMgaW50IHBhdGNv
bXAgX19QKChjaGFyICosIGNoYXIgKiwgaW50KSk7CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9p
ZCBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKQogdGVzdF9zeW50YXhfZXJyb3IgKGZvcm1h
dCwgYXJnKQogICAgICBjaGFyICpmb3JtYXQsICphcmc7CiB7CkBAIC03NDksNiArNzUxLDggQEAg
dGVzdF9iaW5vcCAob3ApCiAgICAgICBlbHNlCiAJcmV0dXJuICgwKTsKICAgICB9CisKKyAgICBy
ZXR1cm4gMDsKIH0KIAogLyogUmV0dXJuIG5vbi16ZXJvIGlmIE9QIGlzIG9uZSBvZiB0aGUgdGVz
dCBjb21tYW5kJ3MgdW5hcnkgb3BlcmF0b3JzLiAqLwpkaWZmIC11cHJrLm9yaWcgYmFzaC0yLjA1
Yi5vcmlnL3Vud2luZF9wcm90LmMgYmFzaC0yLjA1Yi91bndpbmRfcHJvdC5jCi0tLSBiYXNoLTIu
MDViLm9yaWcvdW53aW5kX3Byb3QuYwkyMDAyLTAyLTI4IDIyOjM0OjA1ICswMzAwCisrKyBiYXNo
LTIuMDViL3Vud2luZF9wcm90LmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMjM1LDcg
KzIzNSw3IEBAIHVud2luZF9mcmFtZV9kaXNjYXJkX2ludGVybmFsICh0YWcsIGlnbm8KIHsKICAg
VU5XSU5EX0VMVCAqZWx0OwogCi0gIHdoaWxlIChlbHQgPSB1bndpbmRfcHJvdGVjdF9saXN0KQor
ICB3aGlsZSAoKGVsdCA9IHVud2luZF9wcm90ZWN0X2xpc3QpKQogICAgIHsKICAgICAgIHVud2lu
ZF9wcm90ZWN0X2xpc3QgPSB1bndpbmRfcHJvdGVjdF9saXN0LT5oZWFkLm5leHQ7CiAgICAgICBp
ZiAoZWx0LT5oZWFkLmNsZWFudXAgPT0gMCAmJiAoU1RSRVEgKGVsdC0+YXJnLnYsIHRhZykpKQpA
QCAtMjY0LDcgKzI2NCw3IEBAIHVud2luZF9mcmFtZV9ydW5faW50ZXJuYWwgKHRhZywgaWdub3Jl
KQogewogICBVTldJTkRfRUxUICplbHQ7CiAKLSAgd2hpbGUgKGVsdCA9IHVud2luZF9wcm90ZWN0
X2xpc3QpCisgIHdoaWxlICgoZWx0ID0gdW53aW5kX3Byb3RlY3RfbGlzdCkpCiAgICAgewogICAg
ICAgdW53aW5kX3Byb3RlY3RfbGlzdCA9IGVsdC0+aGVhZC5uZXh0OwogCmRpZmYgLXVwcmsub3Jp
ZyBiYXNoLTIuMDViLm9yaWcvdmFyaWFibGVzLmMgYmFzaC0yLjA1Yi92YXJpYWJsZXMuYwotLS0g
YmFzaC0yLjA1Yi5vcmlnL3ZhcmlhYmxlcy5jCTIwMDItMDYtMjUgMTc6NDM6MzMgKzA0MDAKKysr
IGJhc2gtMi4wNWIvdmFyaWFibGVzLmMJMjAwMi0wOS0xNiAwMzoxNzowOSArMDQwMApAQCAtMjM5
LDcgKzIzOSw3IEBAIGluaXRpYWxpemVfc2hlbGxfdmFyaWFibGVzIChlbnYsIHByaXZtb2QKICAg
aWYgKHNoZWxsX2Z1bmN0aW9ucyA9PSAwKQogICAgIHNoZWxsX2Z1bmN0aW9ucyA9IGhhc2hfY3Jl
YXRlICgwKTsKIAotICBmb3IgKHN0cmluZ19pbmRleCA9IDA7IHN0cmluZyA9IGVudltzdHJpbmdf
aW5kZXgrK107ICkKKyAgZm9yIChzdHJpbmdfaW5kZXggPSAwOyAoc3RyaW5nID0gZW52W3N0cmlu
Z19pbmRleCsrXSk7ICkKICAgICB7CiAgICAgICBjaGFyX2luZGV4ID0gMDsKICAgICAgIG5hbWUg
PSBzdHJpbmc7CkBAIC0yNzYsNyArMjc2LDcgQEAgaW5pdGlhbGl6ZV9zaGVsbF92YXJpYWJsZXMg
KGVudiwgcHJpdm1vZAogCSAgaWYgKG5hbWVbY2hhcl9pbmRleCAtIDFdID09ICcpJyAmJiBuYW1l
W2NoYXJfaW5kZXggLSAyXSA9PSAnKCcpCiAJICAgIG5hbWVbY2hhcl9pbmRleCAtIDJdID0gJ1ww
JzsKIAotCSAgaWYgKHRlbXBfdmFyID0gZmluZF9mdW5jdGlvbiAobmFtZSkpCisJICBpZiAoKHRl
bXBfdmFyID0gZmluZF9mdW5jdGlvbiAobmFtZSkpKQogCSAgICB7CiAJICAgICAgVlNFVEFUVFIg
KHRlbXBfdmFyLCAoYXR0X2V4cG9ydGVkfGF0dF9pbXBvcnRlZCkpOwogCSAgICAgIGFycmF5X25l
ZWRzX21ha2luZyA9IDE7CkBAIC0xMzIwLDcgKzEzMjAsNyBAQCB2YXJfbG9va3VwIChuYW1lLCB2
Y29udGV4dCkKIAogICB2ID0gKFNIRUxMX1ZBUiAqKU5VTEw7CiAgIGZvciAodmMgPSB2Y29udGV4
dDsgdmM7IHZjID0gdmMtPmRvd24pCi0gICAgaWYgKHYgPSBoYXNoX2xvb2t1cCAobmFtZSwgdmMt
PnRhYmxlKSkKKyAgICBpZiAoKHYgPSBoYXNoX2xvb2t1cCAobmFtZSwgdmMtPnRhYmxlKSkpCiAg
ICAgICBicmVhazsKIAogICByZXR1cm4gdjsKQEAgLTE0NDIsNyArMTQ0Miw3IEBAIG1ha2VfbG9j
YWxfdmFyaWFibGUgKG5hbWUpCiAgIFNIRUxMX1ZBUiAqbmV3X3ZhciwgKm9sZF92YXI7CiAgIFZB
Ul9DT05URVhUICp2YzsKICAgaW50IHdhc190bXB2YXI7Ci0gIGNoYXIgKnRtcF92YWx1ZTsKKyAg
Y2hhciAqdG1wX3ZhbHVlID0gMDsKIAogICAvKiBsb2NhbCBmb287IGxvY2FsIGZvbzsgIGlzIGEg
bm8tb3AuICovCiAgIG9sZF92YXIgPSBmaW5kX3ZhcmlhYmxlIChuYW1lKTsKQEAgLTE3ODgsNyAr
MTc4OCw3IEBAIGJpbmRfaW50X3ZhcmlhYmxlIChsaHMsIHJocykKIAogICBpc2ludCA9IGlzYXJy
ID0gMDsKICNpZiBkZWZpbmVkIChBUlJBWV9WQVJTKQotICBpZiAodCA9IHhzdHJjaHIgKGxocywg
J1snKSkJLypdKi8KKyAgaWYgKCh0ID0geHN0cmNociAobGhzLCAnWycpKSkJLypdKi8KICAgICB7
CiAgICAgICBpc2FyciA9IDE7CiAgICAgICB2ID0gYXJyYXlfdmFyaWFibGVfcGFydCAobGhzLCAo
Y2hhciAqKikwLCAoaW50ICopMCk7CkBAIC0yMDc3LDcgKzIwNzcsNyBAQCBtYWt1bmJvdW5kIChu
YW1lLCB2YykKICAgY2hhciAqdDsKIAogICBmb3IgKGVsdCA9IChCVUNLRVRfQ09OVEVOVFMgKilO
VUxMLCB2ID0gdmM7IHY7IHYgPSB2LT5kb3duKQotICAgIGlmIChlbHQgPSBoYXNoX3JlbW92ZSAo
bmFtZSwgdi0+dGFibGUsIDApKQorICAgIGlmICgoZWx0ID0gaGFzaF9yZW1vdmUgKG5hbWUsIHYt
PnRhYmxlLCAwKSkpCiAgICAgICBicmVhazsKIAogICBpZiAoZWx0ID09IDApCkBAIC0yNzUwLDcg
KzI3NTAsNyBAQCBtYWtlX2Vudl9hcnJheV9mcm9tX3Zhcl9saXN0ICh2YXJzKQogCiAjZGVmaW5l
IFVTRV9FWFBPUlRTVFIgKHZhbHVlID09IHZhci0+ZXhwb3J0c3RyKQogCi0gIGZvciAoaSA9IDAs
IGxpc3RfaW5kZXggPSAwOyB2YXIgPSB2YXJzW2ldOyBpKyspCisgIGZvciAoaSA9IDAsIGxpc3Rf
aW5kZXggPSAwOyAodmFyID0gdmFyc1tpXSk7IGkrKykKICAgICB7CiAjaWYgZGVmaW5lZCAoX19D
WUdXSU5fXykKICAgICAgIC8qIFdlIGRvbid0IHVzZSB0aGUgZXhwb3J0c3RyIHN0dWZmIG9uIEN5
Z3dpbiBhdCBhbGwuICovCkBAIC0zMTYwLDcgKzMxNjAsNyBAQCBwb3BfdmFyX2NvbnRleHQgKCkK
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgaWYgKHJldCA9IHZjeHQtPmRvd24pCisgIGlmICgo
cmV0ID0gdmN4dC0+ZG93bikpCiAgICAgewogICAgICAgcmV0LT51cCA9IChWQVJfQ09OVEVYVCAq
KU5VTEw7CiAgICAgICBzaGVsbF92YXJpYWJsZXMgPSByZXQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>