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

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

    <bug>
          <bug_id>35901</bug_id>
          
          <creation_ts>2019-01-14 20:54:54 +0300</creation_ts>
          <short_desc>Не показывает папки, если количество файлов в них превышает 29 шт.</short_desc>
          <delta_ts>2020-12-19 22:13:04 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>vsftpd</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>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gryzun">gryzun_an</reporter>
          <assigned_to name="Alexey Shabalin">shaba</assigned_to>
          <cc>admin1</cc>
    
    <cc>rider</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>177340</commentid>
    <comment_count>0</comment_count>
    <who name="Gryzun">gryzun_an</who>
    <bug_when>2019-01-14 20:54:54 +0300</bug_when>
    <thetext>Если количество элементов в папке на ftp сервере превышает 29 - сервер разрывает соединение данных.
Причины такого поведения, кроются в sandbox в котором запускается vsftpd. При перечислении файлов в запрошенной папке, vsftpd успешно перечисляет их, а затем пытается отсортировать вызовом qsort. Если количество элементов для сортировки qsort превышает 31, то под них выделяется память, а перед её выделением происходит проверка количества установленного ОЗУ машины. Для проверки используется ядерная функция sysinfo, которая запрещена песочницей.
В качеств исправления предлагаю добавить следующие строки в файл seccompsandbox.c, функция seccomp_sandbox_setup_base:

  /* Needed for qsort. */
  allow_nr(__NR_sysinfo);

Изменённый файл seccompsandbox.c прилагаю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177341</commentid>
    <comment_count>1</comment_count>
      <attachid>7944</attachid>
    <who name="Gryzun">gryzun_an</who>
    <bug_when>2019-01-14 20:56:05 +0300</bug_when>
    <thetext>Created attachment 7944
Исправление проблемы</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188121</commentid>
    <comment_count>2</comment_count>
    <who name="Nicom">admin1</who>
    <bug_when>2020-02-23 21:47:58 +0300</bug_when>
    <thetext>Другой вариант ухода от проблемы (не её исправление), добавить в файл конфига vsftpd строку отключающую песочницу - seccomp_sandbox=NO

Проблема всё-ещё воспроизводится на vsftpd: version 3.0.3 в alt starterkit p9

Подобный баг уже появлялся ранее https://bugzilla.altlinux.org/show_bug.cgi?id=27752</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195072</commentid>
    <comment_count>3</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2020-12-19 22:13:04 +0300</bug_when>
    <thetext>vsftpd-3.0.3-alt2 -&gt; sisyphus:

 Sat Dec 19 2020 Dmitry V. Levin &lt;ldv@altlinux&gt; 3.0.3-alt2
 - Updated seccomp filter (closes: #27752, #35901).
 - Fixed build with gcc-10.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7944</attachid>
            <date>2019-01-14 20:56:05 +0300</date>
            <delta_ts>2019-01-14 20:56:05 +0300</delta_ts>
            <desc>Исправление проблемы</desc>
            <filename>seccompsandbox.c</filename>
            <type>text/x-csrc</type>
            <size>16602</size>
            <attacher name="Gryzun">gryzun_an</attacher>
            
              <data encoding="base64">LyoKICogUGFydCBvZiBWZXJ5IFNlY3VyZSBGVFBkCiAqIExpY2VuY2U6IEdQTCB2MgogKiBBdXRo
b3I6IENocmlzIEV2YW5zCiAqIHNlY2NvbXBzYW5kYm94LmMKICoKICogQ29kZSB0byBsb2NrIGRv
d24gdGhlIGFjY2Vzc2libGUga2VybmVsIEFQSSBpbiBhIExpbnV4IHNlY2NvbXAgZmlsdGVyCiAq
IHNhbmRib3guIFdvcmtzIGluIFVidW50dSAxMS4xMCBhbmQgbmV3ZXIuCiAqLwoKI2luY2x1ZGUg
InNlY2NvbXBzYW5kYm94LmgiCgojaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX194
ODZfNjRfXykKCiNpZm5kZWYgX0dOVV9TT1VSQ0UKICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQojZW5k
aWYKCiNpbmNsdWRlICJzZXNzaW9uLmgiCiNpbmNsdWRlICJzeXN1dGlsLmgiCiNpbmNsdWRlICJ0
dW5hYmxlcy5oIgojaW5jbHVkZSAidXRpbGl0eS5oIgoKI2luY2x1ZGUgPGVycm5vLmg+CgojaW5j
bHVkZSA8bmV0aW5ldC9pbi5oPgojaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4KCiNpbmNsdWRlIDxz
eXMvZmNudGwuaD4KI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiNpbmNsdWRlIDxzeXMvcHJjdGwuaD4K
I2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgoKI2luY2x1ZGUg
PGxpbnV4L2ZpbHRlci5oPgoKI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KCi8qICNkZWZpbmUgREVC
VUdfU0lHU1lTIDEgKi8KCiNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKICAjZGVmaW5lIFBSX1NFVF9T
RUNDT01QIDIyCiNlbmRpZgoKI2lmbmRlZiBQUl9TRVRfTk9fTkVXX1BSSVZTCiAgI2RlZmluZSBQ
Ul9TRVRfTk9fTkVXX1BSSVZTIDM4CiNlbmRpZgoKI2lmbmRlZiBfX05SX29wZW5hdAogICNkZWZp
bmUgX19OUl9vcGVuYXQgMjU3CiNlbmRpZgoKI2lmZGVmIE9fTEFSR0VGSUxFCiAgI2lmIE9fTEFS
R0VGSUxFID09IDAKICAgICN1bmRlZiBPX0xBUkdFRklMRQogICNlbmRpZgojZW5kaWYKCiNpZm5k
ZWYgT19MQVJHRUZJTEUKICAjZGVmaW5lIE9fTEFSR0VGSUxFIDAwMTAwMDAwCiNlbmRpZgoKI2lm
bmRlZiBPX0RJUkVDVE9SWQogICNkZWZpbmUgT19ESVJFQ1RPUlkgMDAyMDAwMDAKI2VuZGlmCgoj
aWZuZGVmIE9fQ0xPRVhFQwogICNkZWZpbmUgT19DTE9FWEVDIDAwMjAwMDAwMAojZW5kaWYKCiNk
ZWZpbmUga01heFN5c2NhbGxzIDEwMAoKI2lmZGVmIERFQlVHX1NJR1NZUwoKI2luY2x1ZGUgPHNp
Z25hbC5oPgojaW5jbHVkZSA8c3RyaW5nLmg+Cgp2b2lkCmhhbmRsZV9zaWdzeXMoaW50IHNpZykK
ewogICh2b2lkKSBzaWc7Cn0KI2VuZGlmCgpzdGF0aWMgY29uc3QgaW50IGtPcGVuRmxhZ3MgPQog
ICAgT19DUkVBVHxPX0VYQ0x8T19BUFBFTkR8T19OT05CTE9DS3xPX0RJUkVDVE9SWXxPX0NMT0VY
RUN8T19MQVJHRUZJTEU7CgpzdGF0aWMgc2l6ZV90IHNfc3lzY2FsbF9pbmRleDsKc3RhdGljIHNp
emVfdCBzXzFfYXJnX3ZhbGlkYXRpb25zOwpzdGF0aWMgc2l6ZV90IHNfMl9hcmdfdmFsaWRhdGlv
bnM7CnN0YXRpYyBzaXplX3Qgc18zX2FyZ192YWxpZGF0aW9uczsKc3RhdGljIGludCBzX3N5c2Nh
bGxzW2tNYXhTeXNjYWxsc107CnN0YXRpYyBpbnQgc19lcnJub3Nba01heFN5c2NhbGxzXTsKc3Rh
dGljIGludCBzX2FyZ3NfMVtrTWF4U3lzY2FsbHNdOwpzdGF0aWMgaW50IHNfdmFsc18xW2tNYXhT
eXNjYWxsc107CnN0YXRpYyBpbnQgc19hcmdzXzJba01heFN5c2NhbGxzXTsKc3RhdGljIGludCBz
X3ZhbHNfMltrTWF4U3lzY2FsbHNdOwpzdGF0aWMgaW50IHNfYXJnc18zW2tNYXhTeXNjYWxsc107
CnN0YXRpYyBpbnQgc192YWxzXzNba01heFN5c2NhbGxzXTsKCnN0YXRpYyB2b2lkCmFsbG93X25y
KGludCBucikKewogIGlmIChzX3N5c2NhbGxfaW5kZXggPj0ga01heFN5c2NhbGxzKQogIHsKICAg
IGJ1Zygib3V0IG9mIHN5c2NhbGwgc3BhY2UiKTsKICB9CiAgaWYgKG5yIDwgMCkKICB7CiAgICBi
dWcoIm5lZ2F0aXZlIHN5c2NhbGwiKTsKICB9CiAgc19lcnJub3Nbc19zeXNjYWxsX2luZGV4XSA9
IDA7CiAgc19zeXNjYWxsc1tzX3N5c2NhbGxfaW5kZXgrK10gPSBucjsKfQoKc3RhdGljIHZvaWQK
cmVqZWN0X25yKGludCBuciwgaW50IGVycmNvZGUpCnsKICBpZiAoc19zeXNjYWxsX2luZGV4ID49
IGtNYXhTeXNjYWxscykKICB7CiAgICBidWcoIm91dCBvZiBzeXNjYWxsIHNwYWNlIik7CiAgfQog
IGlmIChuciA8IDApCiAgewogICAgYnVnKCJuZWdhdGl2ZSBzeXNjYWxsIik7CiAgfQogIGlmIChl
cnJjb2RlIDwgMCB8fCBlcnJjb2RlID4gMjU1KQogIHsKICAgIGJ1ZygiYmFkIGVycmNvZGUiKTsK
ICB9CiAgc19lcnJub3Nbc19zeXNjYWxsX2luZGV4XSA9IGVycmNvZGU7CiAgc19zeXNjYWxsc1tz
X3N5c2NhbGxfaW5kZXgrK10gPSBucjsKfQoKc3RhdGljIHZvaWQKYWxsb3dfbnJfMV9hcmdfbWF0
Y2goaW50IG5yLCBpbnQgYXJnLCBpbnQgdmFsKQp7CiAgaWYgKHNfc3lzY2FsbF9pbmRleCA+PSBr
TWF4U3lzY2FsbHMpCiAgewogICAgYnVnKCJvdXQgb2Ygc3lzY2FsbCBzcGFjZSIpOwogIH0KICBp
ZiAobnIgPCAwKQogIHsKICAgIGJ1ZygibmVnYXRpdmUgc3lzY2FsbCIpOwogIH0KICBpZiAoYXJn
IDwgMSB8fCBhcmcgPiA2KQogIHsKICAgIGJ1ZygiYXJnIG91dCBvZiByYW5nZSIpOwogIH0KICBz
X2FyZ3NfMVtzX3N5c2NhbGxfaW5kZXhdID0gYXJnOwogIHNfdmFsc18xW3Nfc3lzY2FsbF9pbmRl
eF0gPSB2YWw7CiAgc19lcnJub3Nbc19zeXNjYWxsX2luZGV4XSA9IDA7CiAgc19zeXNjYWxsc1tz
X3N5c2NhbGxfaW5kZXgrK10gPSBucjsKICBzXzFfYXJnX3ZhbGlkYXRpb25zKys7Cn0KCnN0YXRp
YyB2b2lkCmFsbG93X25yXzFfYXJnX21hc2soaW50IG5yLCBpbnQgYXJnLCBpbnQgdmFsKQp7CiAg
aWYgKHNfc3lzY2FsbF9pbmRleCA+PSBrTWF4U3lzY2FsbHMpCiAgewogICAgYnVnKCJvdXQgb2Yg
c3lzY2FsbCBzcGFjZSIpOwogIH0KICBpZiAobnIgPCAwKQogIHsKICAgIGJ1ZygibmVnYXRpdmUg
c3lzY2FsbCIpOwogIH0KICBpZiAoYXJnIDwgMSB8fCBhcmcgPiA2KQogIHsKICAgIGJ1ZygiYXJn
IG91dCBvZiByYW5nZSIpOwogIH0KICBzX2FyZ3NfMVtzX3N5c2NhbGxfaW5kZXhdID0gMTAwICsg
YXJnOwogIHNfdmFsc18xW3Nfc3lzY2FsbF9pbmRleF0gPSB2YWw7CiAgc19lcnJub3Nbc19zeXNj
YWxsX2luZGV4XSA9IDA7CiAgc19zeXNjYWxsc1tzX3N5c2NhbGxfaW5kZXgrK10gPSBucjsKICBz
XzFfYXJnX3ZhbGlkYXRpb25zKys7Cn0KCnN0YXRpYyB2b2lkCmFsbG93X25yXzJfYXJnX21hdGNo
KGludCBuciwgaW50IGFyZzEsIGludCB2YWwxLCBpbnQgYXJnMiwgaW50IHZhbDIpCnsKICBpZiAo
c19zeXNjYWxsX2luZGV4ID49IGtNYXhTeXNjYWxscykKICB7CiAgICBidWcoIm91dCBvZiBzeXNj
YWxsIHNwYWNlIik7CiAgfQogIGlmIChuciA8IDApCiAgewogICAgYnVnKCJuZWdhdGl2ZSBzeXNj
YWxsIik7CiAgfQogIGlmIChhcmcxIDwgMSB8fCBhcmcxID4gNikKICB7CiAgICBidWcoImFyZzEg
b3V0IG9mIHJhbmdlIik7CiAgfQogIGlmIChhcmcyIDwgMSB8fCBhcmcyID4gNikKICB7CiAgICBi
dWcoImFyZzIgb3V0IG9mIHJhbmdlIik7CiAgfQogIHNfYXJnc18xW3Nfc3lzY2FsbF9pbmRleF0g
PSBhcmcxOwogIHNfdmFsc18xW3Nfc3lzY2FsbF9pbmRleF0gPSB2YWwxOwogIHNfYXJnc18yW3Nf
c3lzY2FsbF9pbmRleF0gPSBhcmcyOwogIHNfdmFsc18yW3Nfc3lzY2FsbF9pbmRleF0gPSB2YWwy
OwogIHNfZXJybm9zW3Nfc3lzY2FsbF9pbmRleF0gPSAwOwogIHNfc3lzY2FsbHNbc19zeXNjYWxs
X2luZGV4KytdID0gbnI7CiAgc18yX2FyZ192YWxpZGF0aW9ucysrOwp9CgpzdGF0aWMgdm9pZAph
bGxvd19ucl8yX2FyZ19tYXNrX21hdGNoKGludCBuciwgaW50IGFyZzEsIGludCB2YWwxLCBpbnQg
YXJnMiwgaW50IHZhbDIpCnsKICBpZiAoc19zeXNjYWxsX2luZGV4ID49IGtNYXhTeXNjYWxscykK
ICB7CiAgICBidWcoIm91dCBvZiBzeXNjYWxsIHNwYWNlIik7CiAgfQogIGlmIChuciA8IDApCiAg
ewogICAgYnVnKCJuZWdhdGl2ZSBzeXNjYWxsIik7CiAgfQogIGlmIChhcmcxIDwgMSB8fCBhcmcx
ID4gNikKICB7CiAgICBidWcoImFyZzEgb3V0IG9mIHJhbmdlIik7CiAgfQogIGlmIChhcmcyIDwg
MSB8fCBhcmcyID4gNikKICB7CiAgICBidWcoImFyZzIgb3V0IG9mIHJhbmdlIik7CiAgfQogIHNf
YXJnc18xW3Nfc3lzY2FsbF9pbmRleF0gPSAxMDAgKyBhcmcxOwogIHNfdmFsc18xW3Nfc3lzY2Fs
bF9pbmRleF0gPSB2YWwxOwogIHNfYXJnc18yW3Nfc3lzY2FsbF9pbmRleF0gPSBhcmcyOwogIHNf
dmFsc18yW3Nfc3lzY2FsbF9pbmRleF0gPSB2YWwyOwogIHNfZXJybm9zW3Nfc3lzY2FsbF9pbmRl
eF0gPSAwOwogIHNfc3lzY2FsbHNbc19zeXNjYWxsX2luZGV4KytdID0gbnI7CiAgc18yX2FyZ192
YWxpZGF0aW9ucysrOwp9CgpzdGF0aWMgdm9pZAphbGxvd19ucl8zX2FyZ19tYXRjaChpbnQgbnIs
IGludCBhcmcxLCBpbnQgdmFsMSwgaW50IGFyZzIsIGludCB2YWwyLCBpbnQgYXJnMywKICAgICAg
ICAgICAgICAgICAgICAgaW50IHZhbDMpCnsKICBpZiAoc19zeXNjYWxsX2luZGV4ID49IGtNYXhT
eXNjYWxscykKICB7CiAgICBidWcoIm91dCBvZiBzeXNjYWxsIHNwYWNlIik7CiAgfQogIGlmIChu
ciA8IDApCiAgewogICAgYnVnKCJuZWdhdGl2ZSBzeXNjYWxsIik7CiAgfQogIGlmIChhcmcxIDwg
MSB8fCBhcmcxID4gNikKICB7CiAgICBidWcoImFyZzEgb3V0IG9mIHJhbmdlIik7CiAgfQogIGlm
IChhcmcyIDwgMSB8fCBhcmcyID4gNikKICB7CiAgICBidWcoImFyZzIgb3V0IG9mIHJhbmdlIik7
CiAgfQogIGlmIChhcmczIDwgMSB8fCBhcmczID4gNikKICB7CiAgICBidWcoImFyZzMgb3V0IG9m
IHJhbmdlIik7CiAgfQogIHNfYXJnc18xW3Nfc3lzY2FsbF9pbmRleF0gPSBhcmcxOwogIHNfdmFs
c18xW3Nfc3lzY2FsbF9pbmRleF0gPSB2YWwxOwogIHNfYXJnc18yW3Nfc3lzY2FsbF9pbmRleF0g
PSBhcmcyOwogIHNfdmFsc18yW3Nfc3lzY2FsbF9pbmRleF0gPSB2YWwyOwogIHNfYXJnc18zW3Nf
c3lzY2FsbF9pbmRleF0gPSBhcmczOwogIHNfdmFsc18zW3Nfc3lzY2FsbF9pbmRleF0gPSB2YWwz
OwogIHNfZXJybm9zW3Nfc3lzY2FsbF9pbmRleF0gPSAwOwogIHNfc3lzY2FsbHNbc19zeXNjYWxs
X2luZGV4KytdID0gbnI7CiAgc18zX2FyZ192YWxpZGF0aW9ucysrOwp9CgpzdGF0aWMgdm9pZApz
ZWNjb21wX3NhbmRib3hfc2V0dXBfZGF0YV9jb25uZWN0aW9ucygpCnsKICBhbGxvd19ucl8zX2Fy
Z19tYXRjaChfX05SX3NvY2tldCwgMSwgUEZfSU5FVCwgMiwgU09DS19TVFJFQU0sIDMsIElQUFJP
VE9fVENQKTsKICBhbGxvd19ucl8zX2FyZ19tYXRjaChfX05SX3NvY2tldCwKICAgICAgICAgICAg
ICAgICAgICAgICAxLCBQRl9JTkVUNiwKICAgICAgICAgICAgICAgICAgICAgICAyLCBTT0NLX1NU
UkVBTSwKICAgICAgICAgICAgICAgICAgICAgICAzLCBJUFBST1RPX1RDUCk7CiAgYWxsb3dfbnIo
X19OUl9iaW5kKTsKICBhbGxvd19ucihfX05SX3NlbGVjdCk7CiAgaWYgKHR1bmFibGVfcG9ydF9l
bmFibGUpCiAgewogICAgYWxsb3dfbnIoX19OUl9jb25uZWN0KTsKICAgIGFsbG93X25yXzJfYXJn
X21hdGNoKF9fTlJfZ2V0c29ja29wdCwgMiwgU09MX1NPQ0tFVCwgMywgU09fRVJST1IpOwogICAg
YWxsb3dfbnJfMl9hcmdfbWF0Y2goX19OUl9zZXRzb2Nrb3B0LCAyLCBTT0xfU09DS0VULCAzLCBT
T19SRVVTRUFERFIpOwogICAgYWxsb3dfbnJfMV9hcmdfbWF0Y2goX19OUl9mY250bCwgMiwgRl9H
RVRGTCk7CiAgICBhbGxvd19ucl8yX2FyZ19tYXRjaChfX05SX2ZjbnRsLCAyLCBGX1NFVEZMLCAz
LCBPX1JEV1J8T19OT05CTE9DSyk7CiAgICBhbGxvd19ucl8yX2FyZ19tYXRjaChfX05SX2ZjbnRs
LCAyLCBGX1NFVEZMLCAzLCBPX1JEV1IpOwogIH0KICBpZiAodHVuYWJsZV9wYXN2X2VuYWJsZSkK
ICB7CiAgICBhbGxvd19ucihfX05SX2xpc3Rlbik7CiAgICBhbGxvd19ucihfX05SX2FjY2VwdCk7
CiAgfQp9CgpzdGF0aWMgdm9pZApzZWNjb21wX3NhbmRib3hfc2V0dXBfYmFzZSgpCnsKICAvKiBT
aW1wbGUgcmVhZHMgYW5kIHdyaXRlcyBvbiBleGlzdGluZyBkZXNjcmlwdG9ycy4gKi8KICBhbGxv
d19ucihfX05SX3JlYWQpOwogIGFsbG93X25yKF9fTlJfd3JpdGUpOwoKICAvKiBOZWVkZWQgZm9y
IHFzb3J0LiAqLwogIGFsbG93X25yKF9fTlJfc3lzaW5mbyk7CgogIC8qIE5lZWRlZCBmb3IgbWVt
b3J5IG1hbmFnZW1lbnQuICovCiAgYWxsb3dfbnJfMl9hcmdfbWF0Y2goX19OUl9tbWFwLAogICAg
ICAgICAgICAgICAgICAgICAgIDMsIFBST1RfUkVBRHxQUk9UX1dSSVRFLAogICAgICAgICAgICAg
ICAgICAgICAgIDQsIE1BUF9QUklWQVRFfE1BUF9BTk9OKTsKICBhbGxvd19ucl8xX2FyZ19tYXNr
KF9fTlJfbXByb3RlY3QsIDMsIFBST1RfUkVBRCk7CiAgYWxsb3dfbnIoX19OUl9tdW5tYXApOwog
IGFsbG93X25yKF9fTlJfYnJrKTsKICAvKiBnbGliYyBmYWxscyBiYWNrIGdyYWNlZnVsbHkgaWYg
bXJlbWFwKCkgZmFpbHMgZHVyaW5nIHJlYWxsb2MoKS4gKi8KICByZWplY3RfbnIoX19OUl9tcmVt
YXAsIEVOT1NZUyk7CgogIC8qIE1pc2Mgc2ltcGxlIGxvdy1yaXNrIGNhbGxzLiAqLwogIGFsbG93
X25yKF9fTlJfZ2V0dGltZW9mZGF5KTsgLyogVXNlZCBieSBsb2dnaW5nLiAqLwogIGFsbG93X25y
KF9fTlJfcnRfc2lncmV0dXJuKTsgLyogVXNlZCB0byBoYW5kbGUgU0lHUElQRS4gKi8KICBhbGxv
d19ucihfX05SX3Jlc3RhcnRfc3lzY2FsbCk7CiAgYWxsb3dfbnIoX19OUl9jbG9zZSk7CgogIC8q
IEFsd2F5cyBuZWVkIHRvIGJlIGFibGUgdG8gZXhpdCAhICovCiAgYWxsb3dfbnIoX19OUl9leGl0
X2dyb3VwKTsKfQoKdm9pZApzZWNjb21wX3NhbmRib3hfaW5pdCgpCnsKICBpZiAoc19zeXNjYWxs
X2luZGV4ICE9IDApCiAgewogICAgYnVnKCJiYWQgc3RhdGUgaW4gc2VjY29tcF9zYW5kYm94X2lu
aXQiKTsKICB9Cn0KCnZvaWQKc2VjY29tcF9zYW5kYm94X3NldHVwX3ByZWxvZ2luKGNvbnN0IHN0
cnVjdCB2c2Zfc2Vzc2lvbiogcF9zZXNzKQp7CiAgKHZvaWQpIHBfc2VzczsKCiAgc2VjY29tcF9z
YW5kYm94X3NldHVwX2Jhc2UoKTsKCiAgLyogUGVla2luZyBGVFAgY29tbWFuZHMgZnJvbSB0aGUg
bmV0d29yay4gKi8KICBhbGxvd19ucl8xX2FyZ19tYXRjaChfX05SX3JlY3Zmcm9tLCA0LCBNU0df
UEVFSyk7CgogIC8qIE1pc2Mgc2ltcGxlIGxvdy1yaXNrIGNhbGxzICovCiAgYWxsb3dfbnIoX19O
Ul9uYW5vc2xlZXApOyAvKiBVc2VkIGZvciBiYW5kd2lkdGggLyBsb2dpbiB0aHJvdHRsaW5nLiAq
LwogIGFsbG93X25yKF9fTlJfZ2V0cGlkKTsgLyogVXNlZCBieSBsb2dnaW5nLiAqLwogIGFsbG93
X25yKF9fTlJfc2h1dGRvd24pOyAvKiBVc2VkIGZvciBRVUlUIG9yIGEgdGltZW91dC4gKi8KICBh
bGxvd19ucl8xX2FyZ19tYXRjaChfX05SX2ZjbnRsLCAyLCBGX0dFVEZMKTsKICAvKiBJdCdzIHNh
ZmUgdG8gYWxsb3cgT19SRFdSIGluIGZjbnRsIGJlY2F1c2UgdGhlc2UgZmxhZ3MgY2Fubm90IGJl
IGNoYW5nZWQuCiAgICogQWxzbywgc29ja2V0cyBhcmUgT19SRFdSLgogICAqLwogIGFsbG93X25y
XzJfYXJnX21hc2tfbWF0Y2goX19OUl9mY250bCwgMywga09wZW5GbGFnc3xPX0FDQ01PREUsIDIs
IEZfU0VURkwpOwoKICAvKiBDb25maWctZGVwZW5kZW50IGl0ZW1zIGZvbGxvdy4gKi8KICBpZiAo
dHVuYWJsZV9pZGxlX3Nlc3Npb25fdGltZW91dCA+IDApCiAgewogICAgYWxsb3dfbnIoX19OUl9y
dF9zaWdhY3Rpb24pOwogICAgYWxsb3dfbnIoX19OUl9hbGFybSk7CiAgfQogIGlmICh0dW5hYmxl
X3hmZXJsb2dfZW5hYmxlIHx8IHR1bmFibGVfZHVhbF9sb2dfZW5hYmxlKQogIHsKICAgIC8qIEZv
ciBmaWxlIGxvY2tpbmcuICovCiAgICBhbGxvd19ucl8xX2FyZ19tYXRjaChfX05SX2ZjbnRsLCAy
LCBGX1NFVExLVyk7CiAgICBhbGxvd19ucl8xX2FyZ19tYXRjaChfX05SX2ZjbnRsLCAyLCBGX1NF
VExLKTsKICB9CiAgaWYgKHR1bmFibGVfc3NsX2VuYWJsZSkKICB7CiAgICBhbGxvd19ucl8xX2Fy
Z19tYXRjaChfX05SX3JlY3Ztc2csIDMsIDApOwogICAgYWxsb3dfbnJfMl9hcmdfbWF0Y2goX19O
Ul9zZXRzb2Nrb3B0LCAyLCBJUFBST1RPX1RDUCwgMywgVENQX05PREVMQVkpOwogIH0KICBpZiAo
dHVuYWJsZV9zeXNsb2dfZW5hYmxlKQogIHsKICAgIHJlamVjdF9ucihfX05SX3NvY2tldCwgRUFD
Q0VTKTsKICB9Cn0KCnZvaWQKc2VjY29tcF9zYW5kYm94X3NldHVwX3Bvc3Rsb2dpbihjb25zdCBz
dHJ1Y3QgdnNmX3Nlc3Npb24qIHBfc2VzcykKewogIGludCBpc19hbm9uID0gcF9zZXNzLT5pc19h
bm9ueW1vdXM7CiAgaW50IG9wZW5fZmxhZyA9IGtPcGVuRmxhZ3M7CiAgaWYgKHR1bmFibGVfd3Jp
dGVfZW5hYmxlKQogIHsKICAgIG9wZW5fZmxhZyB8PSBPX0FDQ01PREU7CiAgfQoKICAvKiBQdXQg
bHN0YXQoKSBmaXJzdCBiZWNhdXNlIGl0IGlzIGEgdmVyeSBob3Qgc3lzY2FsbCBmb3IgbGFyZ2Ug
ZGlyZWN0b3J5CiAgICogbGlzdGluZ3MuIEFuZCB0aGUgY3VycmVudCBCUEYgb25seSBhbGxvd3Mg
YSBsaW5lYXIgc2NhbiBvZiBhbGxvd2VkCiAgICogc3lzY2FsbHMuCiAgICovCiAgYWxsb3dfbnIo
X19OUl9sc3RhdCk7CgogIC8qIEFsbG93IGFsbCB0aGUgc2ltcGxlIHByZS1sb2dpbiB0aGluZ3Mg
YW5kIHRoZW4gZXhwYW5kIHVwb24gdGhlbS4gKi8KICBzZWNjb21wX3NhbmRib3hfc2V0dXBfcHJl
bG9naW4ocF9zZXNzKTsKCiAgLyogU2ltcGxlIGZpbGUgZGVzY3JpcHRvci1iYXNlZCBvcGVyYXRp
b25zLiAqLwogIGlmICh0dW5hYmxlX3hmZXJsb2dfZW5hYmxlIHx8IHR1bmFibGVfZHVhbF9sb2df
ZW5hYmxlIHx8CiAgICAgIHR1bmFibGVfbG9ja191cGxvYWRfZmlsZXMpCiAgewogICAgYWxsb3df
bnJfMV9hcmdfbWF0Y2goX19OUl9mY250bCwgMiwgRl9TRVRMS1cpOwogICAgYWxsb3dfbnJfMV9h
cmdfbWF0Y2goX19OUl9mY250bCwgMiwgRl9TRVRMSyk7CiAgfQogIGlmICh0dW5hYmxlX2FzeW5j
X2Fib3JfZW5hYmxlKQogIHsKICAgIGFsbG93X25yXzJfYXJnX21hdGNoKF9fTlJfZmNudGwsIDIs
IEZfU0VUT1dOLCAzLCB2c2Zfc3lzdXRpbF9nZXRwaWQoKSk7CiAgfQogIGFsbG93X25yXzJfYXJn
X21hdGNoKF9fTlJfc2V0c29ja29wdCwgMiwgU09MX1NPQ0tFVCwgMywgU09fS0VFUEFMSVZFKTsK
ICBhbGxvd19ucl8yX2FyZ19tYXRjaChfX05SX3NldHNvY2tvcHQsIDIsIFNPTF9TT0NLRVQsIDMs
IFNPX0xJTkdFUik7CiAgYWxsb3dfbnJfMl9hcmdfbWF0Y2goX19OUl9zZXRzb2Nrb3B0LCAyLCBJ
UFBST1RPX0lQLCAzLCBJUF9UT1MpOwogIGFsbG93X25yKF9fTlJfZnN0YXQpOwogIGFsbG93X25y
KF9fTlJfbHNlZWspOwogIC8qIFNpbmNlIHdlIHVzZSBjaHJvb3QoKSB0byByZXN0cmljdCBmaWxl
c3lzdGVtIGFjY2Vzcywgd2UgY2FuIGp1c3QgYmxhbmtldAogICAqIGFsbG93IG9wZW4oKS4KICAg
Ki8KICBhbGxvd19ucl8xX2FyZ19tYXNrKF9fTlJfb3BlbiwgMiwgb3Blbl9mbGFnKTsKICBhbGxv
d19ucl8xX2FyZ19tYXNrKF9fTlJfb3BlbmF0LCAzLCBvcGVuX2ZsYWcpOwogIC8qIE90aGVyIHBh
dGhuYW1lLWJhc2VkIG1ldGFkYXRhIHF1ZXJpZXMuICovCiAgYWxsb3dfbnIoX19OUl9zdGF0KTsK
ICBhbGxvd19ucihfX05SX3JlYWRsaW5rKTsKICAvKiBEaXJlY3RvcnkgaGFuZGxpbmc6IHF1ZXJ5
LCBjaGFuZ2UsIHJlYWQuICovCiAgYWxsb3dfbnIoX19OUl9nZXRjd2QpOwogIGFsbG93X25yKF9f
TlJfY2hkaXIpOwogIGFsbG93X25yKF9fTlJfZ2V0ZGVudHMpOwogIC8qIE1pc2MgKi8KICBhbGxv
d19ucihfX05SX3VtYXNrKTsKCiAgLyogQ29uZmlnLWRlcGVuZGVudCBpdGVtcyBmb2xsb3cuICov
CiAgaWYgKHR1bmFibGVfdXNlX3NlbmRmaWxlKQogIHsKICAgIGFsbG93X25yKF9fTlJfc2VuZGZp
bGUpOwogIH0KICBpZiAodHVuYWJsZV9pZGxlX3Nlc3Npb25fdGltZW91dCA+IDAgfHwKICAgICAg
dHVuYWJsZV9kYXRhX2Nvbm5lY3Rpb25fdGltZW91dCA+IDAgfHwKICAgICAgdHVuYWJsZV9hc3lu
Y19hYm9yX2VuYWJsZSkKICB7CiAgICBhbGxvd19ucihfX05SX3J0X3NpZ2FjdGlvbik7CiAgfQog
IGlmICh0dW5hYmxlX2lkbGVfc2Vzc2lvbl90aW1lb3V0ID4gMCB8fCB0dW5hYmxlX2RhdGFfY29u
bmVjdGlvbl90aW1lb3V0ID4gMCkKICB7CiAgICBhbGxvd19ucihfX05SX2FsYXJtKTsKICB9Cgog
IGlmICh0dW5hYmxlX29uZV9wcm9jZXNzX21vZGVsKQogIHsKICAgIHNlY2NvbXBfc2FuZGJveF9z
ZXR1cF9kYXRhX2Nvbm5lY3Rpb25zKCk7CiAgICBpZiAoaXNfYW5vbiAmJiB0dW5hYmxlX2Nob3du
X3VwbG9hZHMpCiAgICB7CiAgICAgIGFsbG93X25yKF9fTlJfZmNobW9kKTsKICAgICAgYWxsb3df
bnIoX19OUl9mY2hvd24pOwogICAgfQogIH0KICBlbHNlCiAgewogICAgLyogTmVlZCB0byByZWNl
aWV2ZSBmaWxlIGRlc2NyaXB0b3JzIGZyb20gcHJpdmlsZWdlZCBicm9rZXIuICovCiAgICBhbGxv
d19ucl8xX2FyZ19tYXRjaChfX05SX3JlY3Ztc2csIDMsIDApOwogICAgaWYgKChpc19hbm9uICYm
IHR1bmFibGVfY2hvd25fdXBsb2FkcykgfHwgdHVuYWJsZV9zc2xfZW5hYmxlKQogICAgewogICAg
ICAvKiBOZWVkIHRvIHNlbmQgZmlsZSBkZXNjcmlwdG9ycyB0byBwcml2aWxlZ2VkIGJyb2tlci4g
Ki8KICAgICAgYWxsb3dfbnJfMV9hcmdfbWF0Y2goX19OUl9zZW5kbXNnLCAzLCAwKTsKICAgIH0K
ICB9CgogIGlmICh0dW5hYmxlX3N5c2xvZ19lbmFibGUpCiAgewogICAgLyogVGhlIGFiaWxpdHkg
dG8gcGFzcyBhbiBhZGRyZXNzIHNwZWMgaXNuJ3QgbmVlZGVkIHNvIGRpc2FibGUgaXQuIFdlIGVu
c3VyZQogICAgICogdGhlIDZ0aCBhcmcgKHNvY2tsZW4pIGlzIDAuIFdlIGNvdWxkIGhhdmUgY2hl
Y2tlZCB0aGUgNXRoIGFyZyAoc29ja3B0cikKICAgICAqIGJ1dCBJIGRvbid0IGtub3cgaWYgNjQt
Yml0IGNvbXBhcmVzIHdvcmsgaW4gdGhlIGtlcm5lbCBmaWx0ZXIsIHNvIHdlJ3JlCiAgICAgKiBo
YXBweSB0byBjaGVjayB0aGUgc29ja2xlbiBhcmcsIHdoaWNoIGlzIDMyIGJpdHMuCiAgICAgKi8K
ICAgIGFsbG93X25yXzFfYXJnX21hdGNoKF9fTlJfc2VuZHRvLCA2LCAwKTsKICB9CgogIGlmICh0
dW5hYmxlX3RleHRfdXNlcmRiX25hbWVzKQogIHsKICAgIHJlamVjdF9ucihfX05SX3NvY2tldCwg
RUFDQ0VTKTsKICAgIGFsbG93X25yXzJfYXJnX21hdGNoKF9fTlJfbW1hcCwgMywgUFJPVF9SRUFE
LCA0LCBNQVBfU0hBUkVEKTsKICB9CgogIGlmICh0dW5hYmxlX3dyaXRlX2VuYWJsZSkKICB7CiAg
ICBpZiAoIWlzX2Fub24gfHwgdHVuYWJsZV9hbm9uX21rZGlyX3dyaXRlX2VuYWJsZSkKICAgIHsK
ICAgICAgYWxsb3dfbnIoX19OUl9ta2Rpcik7CiAgICB9CiAgICBpZiAoIWlzX2Fub24gfHwKICAg
ICAgICB0dW5hYmxlX2Fub25fb3RoZXJfd3JpdGVfZW5hYmxlIHx8CiAgICAgICAgdHVuYWJsZV9k
ZWxldGVfZmFpbGVkX3VwbG9hZHMpCiAgICB7CiAgICAgIGFsbG93X25yKF9fTlJfdW5saW5rKTsK
ICAgIH0KICAgIGlmICghaXNfYW5vbiB8fCB0dW5hYmxlX2Fub25fb3RoZXJfd3JpdGVfZW5hYmxl
KQogICAgewogICAgICBhbGxvd19ucihfX05SX3JtZGlyKTsKICAgICAgYWxsb3dfbnIoX19OUl9y
ZW5hbWUpOwogICAgICBhbGxvd19ucihfX05SX2Z0cnVuY2F0ZSk7CiAgICAgIGlmICh0dW5hYmxl
X21kdG1fd3JpdGUpCiAgICAgIHsKICAgICAgICBhbGxvd19ucihfX05SX3V0aW1lKTsKICAgICAg
ICBhbGxvd19ucihfX05SX3V0aW1lcyk7CiAgICAgIH0KICAgIH0KICAgIGlmICghaXNfYW5vbiAm
JiB0dW5hYmxlX2NobW9kX2VuYWJsZSkKICAgIHsKICAgICAgYWxsb3dfbnIoX19OUl9jaG1vZCk7
CiAgICB9CiAgfQp9Cgp2b2lkCnNlY2NvbXBfc2FuZGJveF9zZXR1cF9wb3N0bG9naW5fYnJva2Vy
KCkKewogIHNlY2NvbXBfc2FuZGJveF9zZXR1cF9iYXNlKCk7CiAgc2VjY29tcF9zYW5kYm94X3Nl
dHVwX2RhdGFfY29ubmVjdGlvbnMoKTsKICBhbGxvd19ucl8xX2FyZ19tYXRjaChfX05SX3NlbmRt
c2csIDMsIDApOwp9Cgp2b2lkCnNlY2NvbXBfc2FuZGJveF9sb2NrZG93bigpCnsKICBzaXplX3Qg
bGVuID0gKHNfc3lzY2FsbF9pbmRleCAqIDIpICsKICAgICAgICAgICAgICAgKHNfMV9hcmdfdmFs
aWRhdGlvbnMgKiAzKSArCiAgICAgICAgICAgICAgIChzXzJfYXJnX3ZhbGlkYXRpb25zICogNSkg
KwogICAgICAgICAgICAgICAoc18zX2FyZ192YWxpZGF0aW9ucyAqIDcpICsKICAgICAgICAgICAg
ICAgNTsKICBzdHJ1Y3Qgc29ja19maWx0ZXIgZmlsdGVyc1tsZW5dOwogIHN0cnVjdCBzb2NrX2Zp
bHRlciogcF9maWx0ZXIgPSBmaWx0ZXJzOwogIHN0cnVjdCBzb2NrX2Zwcm9nIHByb2c7CiAgc2l6
ZV90IGk7CiAgaW50IHJldDsKCiAgcHJvZy5sZW4gPSBsZW47CiAgcHJvZy5maWx0ZXIgPSBmaWx0
ZXJzOwogIC8qIFZhbGlkYXRlIHRoZSBzeXNjYWxsIGFyY2hpdGVjdHVyZS4gKi8KICBwX2ZpbHRl
ci0+Y29kZSA9IEJQRl9MRCtCUEZfVytCUEZfQUJTOwogIHBfZmlsdGVyLT5qdCA9IDA7CiAgcF9m
aWx0ZXItPmpmID0gMDsKICAvKiBPZmZzZXQgNCBmb3Igc3lzY2FsbCBhcmNoaXRlY3R1cmUuICov
CiAgcF9maWx0ZXItPmsgPSA0OwogIHBfZmlsdGVyKys7CiAgcF9maWx0ZXItPmNvZGUgPSBCUEZf
Sk1QK0JQRl9KRVErQlBGX0s7CiAgcF9maWx0ZXItPmp0ID0gMTsKICBwX2ZpbHRlci0+amYgPSAw
OwogIC8qIEFVRElUX0FSQ0hfWDg2XzY0ICovCiAgcF9maWx0ZXItPmsgPSAweGMwMDAwMDNlOwog
IHBfZmlsdGVyKys7CiAgcF9maWx0ZXItPmNvZGUgPSBCUEZfUkVUK0JQRl9LOwogIHBfZmlsdGVy
LT5qdCA9IDA7CiAgcF9maWx0ZXItPmpmID0gMDsKICAvKiBTRUNDT01QX1JFVF9LSUxMICovCiAg
cF9maWx0ZXItPmsgPSAwOwogIHBfZmlsdGVyKys7CgogIC8qIExvYWQgdGhlIHN5c2NhbGwgbnVt
YmVyLiAqLwogIHBfZmlsdGVyLT5jb2RlID0gQlBGX0xEK0JQRl9XK0JQRl9BQlM7CiAgcF9maWx0
ZXItPmp0ID0gMDsKICBwX2ZpbHRlci0+amYgPSAwOwogIC8qIE9mZnNldCAwIGZvciBzeXNjYWxs
IG51bWJlci4gKi8KICBwX2ZpbHRlci0+ayA9IDA7CiAgcF9maWx0ZXIrKzsKCiAgZm9yIChpID0g
MDsgaSA8IHNfc3lzY2FsbF9pbmRleDsgKytpKQogIHsKICAgIGludCBibG9ja19zaXplID0gMTsK
ICAgIGlmIChzX2FyZ3NfM1tpXSkKICAgIHsKICAgICAgYmxvY2tfc2l6ZSA9IDg7CiAgICB9CiAg
ICBlbHNlIGlmIChzX2FyZ3NfMltpXSkKICAgIHsKICAgICAgYmxvY2tfc2l6ZSA9IDY7CiAgICB9
CiAgICBlbHNlIGlmIChzX2FyZ3NfMVtpXSkKICAgIHsKICAgICAgYmxvY2tfc2l6ZSA9IDQ7CiAg
ICB9CiAgICAvKiBDaGVjayBmb3Igc3lzY2FsbCBudW1iZXIgbWF0Y2guICovCiAgICBwX2ZpbHRl
ci0+Y29kZSA9IEJQRl9KTVArQlBGX0pFUStCUEZfSzsKICAgIHBfZmlsdGVyLT5qdCA9IDA7CiAg
ICBwX2ZpbHRlci0+amYgPSBibG9ja19zaXplOwogICAgcF9maWx0ZXItPmsgPSBzX3N5c2NhbGxz
W2ldOwogICAgcF9maWx0ZXIrKzsKICAgIC8qIENoZWNrIGFyZ3VtZW50IG1hdGNoZXMgaWYgbmVj
ZXNzYXJ5LiAqLwogICAgaWYgKHNfYXJnc18zW2ldKQogICAgewogICAgICBwX2ZpbHRlci0+Y29k
ZSA9IEJQRl9MRCtCUEZfVytCUEZfQUJTOwogICAgICBwX2ZpbHRlci0+anQgPSAwOwogICAgICBw
X2ZpbHRlci0+amYgPSAwOwogICAgICBwX2ZpbHRlci0+ayA9IDE2ICsgKChzX2FyZ3NfM1tpXSAt
IDEpICogOCk7CiAgICAgIHBfZmlsdGVyKys7CiAgICAgIHBfZmlsdGVyLT5jb2RlID0gQlBGX0pN
UCtCUEZfSkVRK0JQRl9LOwogICAgICBwX2ZpbHRlci0+anQgPSAwOwogICAgICBwX2ZpbHRlci0+
amYgPSA1OwogICAgICBwX2ZpbHRlci0+ayA9IHNfdmFsc18zW2ldOwogICAgICBwX2ZpbHRlcisr
OwogICAgfQogICAgaWYgKHNfYXJnc18yW2ldKQogICAgewogICAgICBwX2ZpbHRlci0+Y29kZSA9
IEJQRl9MRCtCUEZfVytCUEZfQUJTOwogICAgICBwX2ZpbHRlci0+anQgPSAwOwogICAgICBwX2Zp
bHRlci0+amYgPSAwOwogICAgICBwX2ZpbHRlci0+ayA9IDE2ICsgKChzX2FyZ3NfMltpXSAtIDEp
ICogOCk7CiAgICAgIHBfZmlsdGVyKys7CiAgICAgIHBfZmlsdGVyLT5jb2RlID0gQlBGX0pNUCtC
UEZfSkVRK0JQRl9LOwogICAgICBwX2ZpbHRlci0+anQgPSAwOwogICAgICBwX2ZpbHRlci0+amYg
PSAzOwogICAgICBwX2ZpbHRlci0+ayA9IHNfdmFsc18yW2ldOwogICAgICBwX2ZpbHRlcisrOwog
ICAgfQogICAgaWYgKHNfYXJnc18xW2ldKQogICAgewogICAgICBpbnQgYXJnID0gc19hcmdzXzFb
aV07CiAgICAgIGludCBjb2RlID0gQlBGX0pNUCtCUEZfSkVRK0JQRl9LOwogICAgICBpbnQgdmFs
ID0gc192YWxzXzFbaV07CiAgICAgIGludCBqdCA9IDA7CiAgICAgIGludCBqZiA9IDE7CiAgICAg
IGlmIChhcmcgPiAxMDApCiAgICAgIHsKICAgICAgICBhcmcgLT0gMTAwOwogICAgICAgIGNvZGUg
PSBCUEZfSk1QK0JQRl9KU0VUK0JQRl9LOwogICAgICAgIHZhbCA9IH52YWw7CiAgICAgICAganQg
PSAxOwogICAgICAgIGpmID0gMDsKICAgICAgfQogICAgICBwX2ZpbHRlci0+Y29kZSA9IEJQRl9M
RCtCUEZfVytCUEZfQUJTOwogICAgICBwX2ZpbHRlci0+anQgPSAwOwogICAgICBwX2ZpbHRlci0+
amYgPSAwOwogICAgICBwX2ZpbHRlci0+ayA9IDE2ICsgKChhcmcgLSAxKSAqIDgpOwogICAgICBw
X2ZpbHRlcisrOwogICAgICBwX2ZpbHRlci0+Y29kZSA9IGNvZGU7CiAgICAgIHBfZmlsdGVyLT5q
dCA9IGp0OwogICAgICBwX2ZpbHRlci0+amYgPSBqZjsKICAgICAgcF9maWx0ZXItPmsgPSB2YWw7
CiAgICAgIHBfZmlsdGVyKys7CiAgICB9CiAgICBwX2ZpbHRlci0+Y29kZSA9IEJQRl9SRVQrQlBG
X0s7CiAgICBwX2ZpbHRlci0+anQgPSAwOwogICAgcF9maWx0ZXItPmpmID0gMDsKICAgIGlmICgh
c19lcnJub3NbaV0pCiAgICB7CiAgICAgIC8qIFNFQ0NPTVBfUkVUX0FMTE9XICovCiAgICAgIHBf
ZmlsdGVyLT5rID0gMHg3ZmZmMDAwMDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgLyogU0VD
Q09NUF9SRVRfRVJSTk8gKi8KICAgICAgcF9maWx0ZXItPmsgPSAweDAwMDUwMDAwICsgc19lcnJu
b3NbaV07CiAgICB9CiAgICBwX2ZpbHRlcisrOwogICAgaWYgKHNfYXJnc18xW2ldKQogICAgewog
ICAgICAvKiBXZSB0cmFzaGVkIHRoZSBhY2N1bXVsYXRvciBzbyBwdXQgaXQgYmFjay4gKi8KICAg
ICAgcF9maWx0ZXItPmNvZGUgPSBCUEZfTEQrQlBGX1crQlBGX0FCUzsKICAgICAgcF9maWx0ZXIt
Pmp0ID0gMDsKICAgICAgcF9maWx0ZXItPmpmID0gMDsKICAgICAgcF9maWx0ZXItPmsgPSAwOwog
ICAgICBwX2ZpbHRlcisrOwogICAgfQogIH0KICAvKiBObyAiYWxsb3ciIG1hdGNoZXMgc28ga2ls
bC4gKi8KICBwX2ZpbHRlci0+Y29kZSA9IEJQRl9SRVQrQlBGX0s7CiAgcF9maWx0ZXItPmp0ID0g
MDsKICBwX2ZpbHRlci0+amYgPSAwOwojaWZkZWYgREVCVUdfU0lHU1lTCiAgLyogU0VDQ09NUF9S
RVRfVFJBUCAqLwogIHBfZmlsdGVyLT5rID0gMHgwMDAzMDAwMDsKI2Vsc2UKICAvKiBTRUNDT01Q
X1JFVF9LSUxMICovCiAgcF9maWx0ZXItPmsgPSAwOwojZW5kaWYKCiAgcmV0ID0gcHJjdGwoUFJf
U0VUX05PX05FV19QUklWUywgMSwgMCwgMCwgMCk7CiAgaWYgKHJldCAhPSAwKQogIHsKICAgIGlm
IChlcnJubyA9PSBFSU5WQUwpCiAgICB7CiAgICAgIC8qIEtlcm5lbCBpc24ndCBnb29kIGVub3Vn
aC4gKi8KICAgICAgcmV0dXJuOwogICAgfQogICAgZGllKCJwcmN0bCBQUl9TRVRfTk9fTkVXX1BS
SVZTIik7CiAgfQoKICBpZiAoIXR1bmFibGVfc2VjY29tcF9zYW5kYm94KQogIHsKICAgIHJldHVy
bjsKICB9CgojaWZkZWYgREVCVUdfU0lHU1lTCiAgewogICAgc3RydWN0IHNpZ2FjdGlvbiBzYTsK
ICAgIG1lbXNldCgmc2EsICdcMCcsIHNpemVvZihzYSkpOwogICAgc2Euc2FfaGFuZGxlciA9IGhh
bmRsZV9zaWdzeXM7CiAgICBzaWdhY3Rpb24oU0lHU1lTLCAmc2EsIE5VTEwpOwogIH0KI2VuZGlm
CgogIHJldCA9IHByY3RsKFBSX1NFVF9TRUNDT01QLCAyLCAmcHJvZywgMCwgMCk7CiAgaWYgKHJl
dCAhPSAwKQogIHsKICAgIGlmIChlcnJubyA9PSBFSU5WQUwpCiAgICB7CiAgICAgIC8qIEtlcm5l
bCBpc24ndCBnb29kIGVub3VnaC4gKi8KICAgICAgcmV0dXJuOwogICAgfQogICAgZGllKCJwcmN0
bCBQUl9TRVRfU0VDQ09NUCBmYWlsZWQiKTsKICB9Cn0KCiNlbHNlIC8qIF9fbGludXhfXyAmJiBf
X3g4Nl82NF9fICovCgp2b2lkCnNlY2NvbXBfc2FuZGJveF9pbml0KCkKewp9Cgp2b2lkCnNlY2Nv
bXBfc2FuZGJveF9zZXR1cF9wcmVsb2dpbihjb25zdCBzdHJ1Y3QgdnNmX3Nlc3Npb24qIHBfc2Vz
cykKewogICh2b2lkKSBwX3Nlc3M7Cn0KCnZvaWQKc2VjY29tcF9zYW5kYm94X3NldHVwX3Bvc3Rs
b2dpbihjb25zdCBzdHJ1Y3QgdnNmX3Nlc3Npb24qIHBfc2VzcykKewogICh2b2lkKSBwX3Nlc3M7
Cn0KCnZvaWQKc2VjY29tcF9zYW5kYm94X3NldHVwX3Bvc3Rsb2dpbl9icm9rZXIoKQp7Cn0KCnZv
aWQKc2VjY29tcF9zYW5kYm94X2xvY2tkb3duKCkKewp9CgojZW5kaWYgLyogX19saW51eF9fICYm
IF9feDg2XzY0X18gKi8K
</data>

          </attachment>
      

    </bug>

</bugzilla>