<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>47675</bug_id>
          
          <creation_ts>2004-04-13 00:58 0000</creation_ts>
          <short_desc>slang-1.4.9-r1.ebuild</short_desc>
          <delta_ts>2004-06-06 09:58:35 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <keywords>EBUILD</keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>adarovsky@users.sf.net</reporter>
          <assigned_to>cjk@gentoo.org</assigned_to>
          <cc>adarovsky@users.sf.net</cc>
    
    <cc>berk@inbox.ru</cc>
    
    <cc>liquidx@gentoo.org</cc>
    
    <cc>svyatogor@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>adarovsky@users.sf.net</who>
            <bug_when>2004-04-13 00:58:51 0000</bug_when>
            <thetext>Hi!

Here is an improvement of slang library for UTF-8 locale.
It&apos;s just a set of patches used in Fedora and Debian. 

The debian one is fixed back to leave library name &quot;libslang.*&quot;, not &quot;libslang-utf8.*&quot;. Maybe
it is wrong, if it&apos;s so, apply slang-debian-utf8.orig.patch instead of slang-debian-utf8.patch.

It&apos;s very important to support non-8-bit locales in a modern distro, and
I&apos;d like to help a bit.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>adarovsky@users.sf.net</who>
            <bug_when>2004-04-13 01:00:11 0000</bug_when>
            <thetext>Created an attachment (id=29188)
The ebuild itself

The ebuild itself</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>adarovsky@users.sf.net</who>
            <bug_when>2004-04-13 01:01:11 0000</bug_when>
            <thetext>Created an attachment (id=29189)
A modified patch from Debian for slang to work with Utf-8
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>adarovsky@users.sf.net</who>
            <bug_when>2004-04-13 01:01:52 0000</bug_when>
            <thetext>Created an attachment (id=29190)
An original patch from Debian for slang to work with Utf-8
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>adarovsky@users.sf.net</who>
            <bug_when>2004-04-13 01:02:28 0000</bug_when>
            <thetext>Created an attachment (id=29191)
RH patches
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>adarovsky@users.sf.net</who>
            <bug_when>2004-04-13 01:02:53 0000</bug_when>
            <thetext>Created an attachment (id=29192)
RH patches
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>liquidx@gentoo.org</who>
            <bug_when>2004-04-26 00:42:16 0000</bug_when>
            <thetext>probably better handled by cjk ?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>usata@gentoo.org</who>
            <bug_when>2004-06-02 23:33:18 0000</bug_when>
            <thetext>*** Bug 52846 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>usata@gentoo.org</who>
            <bug_when>2004-06-06 09:58:35 0000</bug_when>
            <thetext>Thanks to all, I&apos;ve just added it to CVS. I used original Debian patch
and made symlinks to libslang-utf8 as other distros do. I didn&apos;t make
utf8 patchs applied by default (apply utf8 patches only if you have
unicode USE flag on), and that&apos;s another reason. Also, I added cjk as
maintaining herd of slang. If you experience any problem about utf8
patches, please report it back.
</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29188</attachid>
            <date>2004-04-13 01:00 0000</date>
            <desc>The ebuild itself</desc>
            <filename>slang-1.4.9-r1.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA0IEdlbnRvbyBUZWNobm9sb2dpZXMsIEluYy4KIyBEaXN0cmli
dXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYy
CiMgJEhlYWRlcjogL2hvbWUvY3Zzcm9vdC9nZW50b28teDg2L3N5cy1saWJzL3NsYW5nL3NsYW5n
LTEuNC45LmVidWlsZCx2IDEuMTcgMjAwNC8wMy8wMiAxNjo0Mzo0NyBpZ2d5IEV4cCAkCgppbmhl
cml0IGdjYwoKREVTQ1JJUFRJT049IkNvbnNvbGUgZGlzcGxheSBsaWJyYXJ5IHVzZWQgYnkgbW9z
dCB0ZXh0IHZpZXdlciIKSE9NRVBBR0U9Imh0dHA6Ly9zcGFjZS5taXQuZWR1L35kYXZpcy9zbGFu
Zy8iClNSQ19VUkk9ImZ0cDovL3NwYWNlLm1pdC5lZHUvcHViL2RhdmlzL3NsYW5nL3YxLjQvJHtQ
fS50YXIuYnoyIgoKTElDRU5TRT0iR1BMLTIgfCBBcnRpc3RpYyIKU0xPVD0iMCIKS0VZV09SRFM9
Ing4NiB+cHBjIHNwYXJjIGFscGhhIG1pcHMgaHBwYSBhbWQ2NCBpYTY0IHBwYzY0IHMzOTAiCklV
U0U9ImNqayIKCkRFUEVORD0iPj1zeXMtbGlicy9uY3Vyc2VzLTUuMi1yMiIKCgpzcmNfdW5wYWNr
KCkgewogICAgICAgIHVucGFjayAke1B9LnRhci5iejIKICAgICAgICBjZCAke1N9CgoJZXBhdGNo
ICR7RklMRVNESVJ9L3NsYW5nLWRlYmlhbi11dGY4LnBhdGNoCgllcGF0Y2ggJHtGSUxFU0RJUn0v
c2xhbmctdXRmOC1hY3MucGF0Y2gKCWVwYXRjaCAke0ZJTEVTRElSfS9zbGFuZy11dGY4LWZpeC5w
YXRjaAp9CgpzcmNfY29tcGlsZSgpIHsKCWlmIFsgLW4gImB1c2UgY2prYCIgXQoJdGhlbgoJCSMg
ZW5hYmxlIEthbmppIFN1cHBvcnQKCQljcCBzcmMvc2wtZmVhdC5oIHNyYy9zbC1mZWF0LmguYmFr
CgkJc2VkICIvU0xBTkdfSEFTX0tBTkpJX1NVUFBPUlQvcy8wLzEvIiBcCgkJCXNyYy9zbC1mZWF0
LmguYmFrID4gc3JjL3NsLWZlYXQuaAoJZmkKCWVjb25mIHx8IGRpZSAiZWNvbmYgZmFpbGVkIgoJ
IyBlbWFrZSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIHNsYW5nLCBzbyBqdXN0IHVzZSBub3JtYWwg
bWFrZS4KCW1ha2UgYWxsIGVsZiB8fCBkaWUgIm1ha2UgZmFpbGVkIgp9CgpzcmNfaW5zdGFsbCgp
IHsKCW1ha2UgaW5zdGFsbCBpbnN0YWxsLWVsZiBERVNURElSPSR7RH0gfHwgZGllICJtYWtlIGlu
c3RhbGwgZmFpbGVkIgoJKCBjZCAke0R9L3Vzci9saWIgOyBjaG1vZCA3NTUgbGlic2xhbmcuc28u
KiApCgkjIHJlbW92ZSB0aGUgZG9jdW1lbnRhdGlvbi4uLiB3ZSB3YW50IHRvIGluc3RhbGwgaXQg
b3Vyc2VsdmVzCglybSAtcmYgJHtEfS91c3IvZG9jCglkb2RvYyBDT1BZSU5HKiBORVdTIFJFQURN
RSAqLnR4dAoJZG9kb2MgZG9jLyoudHh0IGRvYy9pbnRlcm5hbC8qLnR4dCBkb2MvdGV4dC8qLnR4
dAoJZG9odG1sIGRvYy8qLmh0bWwKfQoKcGtnX3Bvc3RpbnN0KCkgewoJIyBlbnN1cmUgZ2NjIHVz
ZXMgdGhlIG1vc3QgcmVjZW50IHNsYW5nLmggKCMxNjY3OCkKCWlmIFsgImBnY2MtbWFqb3ItdmVy
c2lvbmAiID0gIjMiIF07IHRoZW4KCQlpZiBbIC1mICJgZ2NjLWxpYnBhdGhgL2luY2x1ZGUvc2xh
bmcuaCIgXTsgdGhlbgoJCQllaW5mbyAiUmVtb3ZpbmcgZ2NjIGJ1ZmZlcmVkIHNsYW5nLmggdG8g
YXZvaWQgY29uZmxpY3RzIgoJCQlybSAtZiBgZ2NjLWxpYnBhdGhgL2luY2x1ZGUvc2xhbmcuaAoJ
CWZpCglmaQp9Cg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29189</attachid>
            <date>2004-04-13 01:01 0000</date>
            <desc>A modified patch from Debian for slang to work with Utf-8</desc>
            <filename>slang-debian-utf8.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHNsYW5nLTEuNC40Lm9yaWcvc3JjL3NsaW5jbHVkLmgKKysrIHNsYW5nLTEuNC40L3NyYy9z
bGluY2x1ZC5oCkBAIC0yMyw0ICsyMywxMiBAQAogIyBpbmNsdWRlIDxtZW1vcnkuaD4KICNlbmRp
ZgoKKyNkZWZpbmUgVVRGOCAxCisKKyNpZmRlZiBVVEY4CisjaW5jbHVkZSA8d2NoYXIuaD4KKyNp
bmNsdWRlIDxsaW1pdHMuaD4KKyNlbmRpZiAvKiBVVEY4ICovCisKKwogI2VuZGlmCQkJCSAgICAg
ICAvKiBfU0xBTkdfSU5DTFVERV9IXyAqLwotLS0gc2xhbmctMS40LjQub3JpZy9zcmMvc2xhbmcu
aAorKysgc2xhbmctMS40LjQvc3JjL3NsYW5nLmgKQEAgLTEyMzksMTAgKzEyMzksMjAgQEAKIGV4
dGVybiBpbnQgU0x0dF9Nc2Rvc19DaGVhcF9WaWRlbzsKICNlbmRpZgoKKyNkZWZpbmUgVVRGOCAx
CisKKyNpZmRlZiBVVEY4Cit0eXBlZGVmIGludCBTTHNtZ19DaGFyX1R5cGU7CisjZGVmaW5lIFNM
U01HX0VYVFJBQ1RfQ0hBUih4KSAoKHgpICYgMHhGRkZGRkYpCisjZGVmaW5lIFNMU01HX0VYVFJB
Q1RfQ09MT1IoeCkgKCgoeCk+PjI0KSYweEZGKQorI2RlZmluZSBTTFNNR19CVUlMRF9DSEFSKGNo
LGNvbG9yKSAoKChTTHNtZ19DaGFyX1R5cGUpKHdjaGFyX3QpKGNoKSl8KChjb2xvcik8PDI0KSkK
KyNkZWZpbmUgU0xTTUdfTk9DSEFSIDEKKyNlbHNlCiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFNM
c21nX0NoYXJfVHlwZTsKICNkZWZpbmUgU0xTTUdfRVhUUkFDVF9DSEFSKHgpICgoeCkgJiAweEZG
KQogI2RlZmluZSBTTFNNR19FWFRSQUNUX0NPTE9SKHgpICgoKHgpPj44KSYweEZGKQogI2RlZmlu
ZSBTTFNNR19CVUlMRF9DSEFSKGNoLGNvbG9yKSAoKChTTHNtZ19DaGFyX1R5cGUpKHVuc2lnbmVk
IGNoYXIpKGNoKSl8KChjb2xvcik8PDgpKQorI2VuZGlmIC8qIFVURjggKi8KIAogZXh0ZXJuIGlu
dCBTTHR0X2ZsdXNoX291dHB1dCAodm9pZCk7CiBleHRlcm4gdm9pZCBTTHR0X3NldF9zY3JvbGxf
cmVnaW9uKGludCwgaW50KTsKQEAgLTEzMzQsNyArMTM0MiwxMSBAQAogCiAvKnt7eyBTTHNtZyBT
Y3JlZW4gTWFuYWdlbWVudCBGdW5jdGlvbnMgKi8KIAorI2lmZGVmIFVURjgKK2V4dGVybiB2b2lk
IFNMc21nX2ZpbGxfcmVnaW9uIChpbnQsIGludCwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQs
IHdjaGFyX3QpOworI2Vsc2UKIGV4dGVybiB2b2lkIFNMc21nX2ZpbGxfcmVnaW9uIChpbnQsIGlu
dCwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGNoYXIpOworI2VuZGlmIC8q
IFVURjggKi8KIGV4dGVybiB2b2lkIFNMc21nX3NldF9jaGFyX3NldCAoaW50KTsKICNpZm5kZWYg
SUJNUENfU1lTVEVNCiBleHRlcm4gaW50IFNMc21nX1Njcm9sbF9IYXNoX0JvcmRlcjsKQEAgLTEz
NTEsNyArMTM2MywxMiBAQAogZXh0ZXJuIHZvaWQgU0xzbWdfdnByaW50ZiAoY2hhciAqLCB2YV9s
aXN0KTsKIGV4dGVybiB2b2lkIFNMc21nX3dyaXRlX3N0cmluZyAoY2hhciAqKTsKIGV4dGVybiB2
b2lkIFNMc21nX3dyaXRlX25zdHJpbmcgKGNoYXIgKiwgdW5zaWduZWQgaW50KTsKKyNpZmRlZiBV
VEY4CitleHRlcm4gdm9pZCBTTHNtZ193cml0ZV9jaGFyICh3Y2hhcl90KTsKK2V4dGVybiB2b2lk
IFNMc21nX3dyaXRlX253Y2hhcnMgKHdjaGFyX3QgKiwgdW5zaWduZWQgaW50KTsKKyNlbHNlCiBl
eHRlcm4gdm9pZCBTTHNtZ193cml0ZV9jaGFyIChjaGFyKTsKKyNlbmRpZiAvKiBVVEY4ICovCiBl
eHRlcm4gdm9pZCBTTHNtZ193cml0ZV9uY2hhcnMgKGNoYXIgKiwgdW5zaWduZWQgaW50KTsKIGV4
dGVybiB2b2lkIFNMc21nX3dyaXRlX3dyYXBwZWRfc3RyaW5nIChjaGFyICosIGludCwgaW50LCB1
bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCwgaW50KTsKIGV4dGVybiB2b2lkIFNMc21nX2NscyAo
dm9pZCk7Ci0tLSBzbGFuZy0xLjQuNC5vcmlnL3NyYy9zbGN1cnNlcy5jCisrKyBzbGFuZy0xLjQu
NC9zcmMvc2xjdXJzZXMuYwpAQCAtNDQwLDIwICs0NDAsMTMwIEBACiAKIHN0YXRpYyBpbnQgZG9f
bmV3bGluZSAoU0xjdXJzZXNfV2luZG93X1R5cGUgKncpCiB7Ci0gICB3LT5fY3VyeCA9IDA7Cisg
ICAvKiB3LT5fY3VyeCA9IDA7ICovCiAgICB3LT5fY3VyeSArPSAxOwogICAgaWYgKHctPl9jdXJ5
ID49IHctPnNjcm9sbF9tYXgpCiAgICAgIHsKIAl3LT5fY3VyeSA9IHctPnNjcm9sbF9tYXggLSAx
OwotCWlmICh3LT5zY3JvbGxfb2spCisJaWYgKHctPnNjcm9sbF9vaykgeworCSAgdy0+X2N1cngg
PSAwOwogCSAgU0xjdXJzZXNfd3NjcmwgKHcsIDEpOworCX0KICAgICAgfQorICAgZWxzZQorICAg
ICB3LT5fY3VyeCA9IDA7CisgICAKKyAgIHJldHVybiAwOworfQorCisjaWZkZWYgVVRGOAorc3Rh
dGljIGludCBTTGN1cnNlc193YWRkY2gxIChTTGN1cnNlc19XaW5kb3dfVHlwZSAqd2luLAorCQkJ
ICAgICB3Y2hhcl90IGNoLCBpbnQgY29sb3IpCit7CisgICBTTHNtZ19DaGFyX1R5cGUgKmIsICpi
bWluLCAqYm1heCwgKmM7CisgICBpbnQgazsKKworICAgaWYgKHdpbiA9PSBOVUxMKSByZXR1cm4g
LTE7CisKKyAgIGlmICh3aW4tPl9jdXJ5ID49IHdpbi0+bnJvd3MpCisgICAgIHsKKwkvKiBDdXJz
ZXMgc2VlbXMgdG8gbW92ZSBjdXJyZW50IHBvc3Rpb24gdG8gdG9wIG9mIHdpbmRvdy4gKi8KKwl3
aW4tPl9jdXJ5ID0gd2luLT5fY3VyeCA9IDA7CisJcmV0dXJuIC0xOworICAgICB9CisKKyAgIHdp
bi0+bW9kaWZpZWQgPSAxOworCisgICBpZiAoY2ggPCAnICcpCisgICAgIHsKKwlpZiAoY2ggPT0g
J1xuJykKKwkgIHsKKwkgICAgIFNMY3Vyc2VzX3djbHJ0b2VvbCAod2luKTsKKwkgICAgIHJldHVy
biBkb19uZXdsaW5lICh3aW4pOworCSAgfQorCisJaWYgKGNoID09ICdccicpCisJICB7CisJICAg
ICB3aW4tPl9jdXJ4ID0gMDsKKwkgICAgIHJldHVybiAwOworCSAgfQorCisJaWYgKGNoID09ICdc
YicpCisJICB7CisJICAgICBpZiAod2luLT5fY3VyeCA+IDApCisJICAgICAgIHdpbi0+X2N1cngt
LTsKKworCSAgICAgcmV0dXJuIDA7CisJICB9CisKKwkvKiBIQUNLIEhBQ0shISEhICovCisJaWYg
KGNoID09ICdcdCcpIGNoID0gJyAnOworICAgICB9CisKKyAgIGsgPSB3Y3dpZHRoKGNoKTsKKwor
ICAgaWYgKCFrKQorICAgICByZXR1cm4gMDsgLyogaWdub3JlIGNvbWJpbmluZyBjaGFyYWN0ZXJz
IGZvciBub3cgKi8KKworICAgaWYgKGsgPiB3aW4tPm5jb2xzKQorICAgICByZXR1cm4gMDsgLyog
Y2hhcmFjdGVyIHdpZGVyIHRoYW4gd2luZG93ICovCisKKyAgIGlmICh3aW4tPl9jdXJ4ICsgayA+
IHdpbi0+bmNvbHMpIHsKKyAgICAgaWYgKHdpbi0+X2N1cnggPCB3aW4tPm5jb2xzKQorICAgICAg
IFNMY3Vyc2VzX3djbHJ0b2VvbCh3aW4pOworICAgICBkb19uZXdsaW5lICh3aW4pOworICAgfQor
CisgICBibWluID0gd2luLT5saW5lc1t3aW4tPl9jdXJ5XTsKKyAgIGIgPSBibWluICsgd2luLT5f
Y3VyeDsKKyAgIGJtYXggPSBibWluICsgd2luLT5uY29sczsKKworICAgLyogUmVtb3ZlIG92ZXJ3
cml0dGVuIGNoYXJzIHRvIGxlZnQgKi8KKyAgIGlmICgqYiA9PSBTTFNNR19OT0NIQVIpIHsKKyAg
ICAgZm9yIChjID0gYiAtIDE7IGMgPj0gYm1pbiAmJiAqYyA9PSBTTFNNR19OT0NIQVI7IGMtLSkK
KyAgICAgICAqYyA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLFNMU01HX0VYVFJBQ1RfQ09MT1IoKmMp
KTsKKyAgICAgaWYgKGMgPj0gYm1pbikKKyAgICAgICAqYyA9IFNMU01HX0JVSUxEX0NIQVIoJyAn
LFNMU01HX0VYVFJBQ1RfQ09MT1IoKmMpKTsKKyAgIH0KKworICAgKmIgPSBTTFNNR19CVUlMRF9D
SEFSKGNoLGNvbG9yKTsKKyAgIHdpbi0+X2N1cnggKz0gazsKKyAgIHdoaWxlICgtLWsgPiAwKQor
ICAgICAqKytiID0gU0xTTUdfTk9DSEFSOworCisgICAvKiBSZW1vdmUgb3ZlcndyaXR0ZW4gY2hh
cnMgdG8gcmlnaHQgKi8KKyAgIGZvciAoYyA9IGIgKyAxOyBjIDwgYm1heCAmJiAqYyA9PSBTTFNN
R19OT0NIQVI7IGMrKykKKyAgICAgKmMgPSBTTFNNR19CVUlMRF9DSEFSKCcgJyxTTFNNR19FWFRS
QUNUX0NPTE9SKCpjKSk7CiAKICAgIHJldHVybiAwOwogfQogCiBpbnQgU0xjdXJzZXNfd2FkZGNo
IChTTGN1cnNlc19XaW5kb3dfVHlwZSAqd2luLCBTTHR0X0NoYXJfVHlwZSBhdHRyKQogeworICAg
U0xzbWdfQ2hhcl9UeXBlIGNoLCBjb2xvcjsKKworICAgaWYgKHdpbiA9PSBOVUxMKSByZXR1cm4g
LTE7CisKKyAgIGNoID0gU0xTTUdfRVhUUkFDVF9DSEFSKGF0dHIpOworCisgICBpZiAoYXR0ciA9
PSBjaCkKKyAgICAgY29sb3IgPSB3aW4tPmNvbG9yOworICAgZWxzZQorICAgICB7CisJLyogaGFj
ayB0byBwaWNrIHVwIHRoZSBkZWZhdWx0IGNvbG9yIGZvciBncmFwaGljcyBjaGFycyAqLworCWlm
ICgoKGF0dHIgJiBBX0NPTE9SKSA9PSAwKSAmJiAoKGF0dHIgJiBBX0FMVENIQVJTRVQpICE9IDAp
KQorCSAgeworCSAgICAgLyogRklYTUU6IHByaW9yaXR5PW1lZGl1bTogVXNlIFNMU01HXz8/IGlu
c3RlYWQgb2YgPDwgKi8KKwkgICAgIGF0dHIgfD0gd2luLT5jb2xvciA8PCA4OworCSAgfQorCWNv
bG9yID0gbWFwX2F0dHJfdG9fb2JqZWN0IChhdHRyKTsKKyAgICAgfQorCisgICByZXR1cm4gU0xj
dXJzZXNfd2FkZGNoMSAod2luLCBjaCwgY29sb3IpOworfQorI2Vsc2UKK2ludCBTTGN1cnNlc193
YWRkY2ggKFNMY3Vyc2VzX1dpbmRvd19UeXBlICp3aW4sIFNMdHRfQ2hhcl9UeXBlIGF0dHIpCit7
CiAgICBTTHNtZ19DaGFyX1R5cGUgKmIsIGNoOwogICAgU0xzbWdfQ2hhcl9UeXBlIGNvbG9yOwog
CkBAIC01MTgsNiArNjI4LDcgQEAKIAogICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogVVRGOCAq
LwogCiBpbnQgU0xjdXJzZXNfd25vdXRyZWZyZXNoIChTTGN1cnNlc19XaW5kb3dfVHlwZSAqdykK
IHsKQEAgLTU3Nyw3ICs2ODgsMTEgQEAKIAogaW50IFNMY3Vyc2VzX3djbHJ0b2VvbCAoU0xjdXJz
ZXNfV2luZG93X1R5cGUgKncpCiB7CisjaWZkZWYgVVRGOAorICAgU0xzbWdfQ2hhcl9UeXBlICpi
LCAqYm1pbiwgKmJtYXgsICpjOworI2Vsc2UKICAgIFNMc21nX0NoYXJfVHlwZSAqYiwgKmJtYXg7
CisjZW5kaWYgLyogVVRGOCAqLwogICAgU0xzbWdfQ2hhcl9UeXBlIGJsYW5rOwogCiAgICBpZiAo
dyA9PSBOVUxMKSByZXR1cm4gLTE7CkBAIC01ODgsOSArNzAzLDIzIEBACiAKICAgIGJsYW5rID0g
U0xTTUdfQlVJTERfQ0hBUignICcsdy0+Y29sb3IpOwogCisjaWZkZWYgVVRGOAorICAgYm1pbiA9
IHctPmxpbmVzW3ctPl9jdXJ5XTsKKyAgIGIgPSBibWluICsgdy0+X2N1cng7CisgICBibWF4ID0g
Ym1pbiArIHctPm5jb2xzOworCisgICAvKiBSZW1vdmUgb3ZlcndyaXR0ZW4gY2hhcnMgdG8gbGVm
dCAqLworICAgaWYgKGIgPCBibWF4ICYmICpiID09IFNMU01HX05PQ0hBUikgeworICAgICBmb3Ig
KGMgPSBiIC0gMTsgYyA+PSBibWluICYmICpjID09IFNMU01HX05PQ0hBUjsgYy0tKQorICAgICAg
ICpjID0gU0xTTUdfQlVJTERfQ0hBUignICcsU0xTTUdfRVhUUkFDVF9DT0xPUigqYykpOworICAg
ICBpZiAoYyA+PSBibWluKSAKKyAgICAgICAqYyA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLFNMU01H
X0VYVFJBQ1RfQ09MT1IoKmMpKTsKKyAgIH0KKyNlbHNlCiAgICBiID0gdy0+bGluZXNbdy0+X2N1
cnldOwogICAgYm1heCA9IGIgKyB3LT5uY29sczsKICAgIGIgKz0gdy0+X2N1cng7CisjZW5kaWYg
LyogVVRGOCAqLwogCiAgICB3aGlsZSAoYiA8IGJtYXgpICpiKysgPSBibGFuazsKICAgIHJldHVy
biAwOwpAQCAtNjc3LDYgKzgwNiwzNCBAQAogICAgcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBVVEY4
CisvKiBOb3RlOiBpZiBsZW4gaXMgPCAwLCBlbnRpcmUgc3RyaW5nIHdpbGwgYmUgdXNlZC4KKyAq
LworaW50IFNMY3Vyc2VzX3dhZGRuc3RyIChTTGN1cnNlc19XaW5kb3dfVHlwZSAqdywgY2hhciAq
c3RyLCBpbnQgbGVuKQoreworICAgc2l6ZV90IGs7CisgICB3Y2hhcl90IHdjOworICAgbWJzdGF0
ZV90IG1ic3RhdGU7CisKKyAgIGlmICgodyA9PSBOVUxMKQorICAgICAgIHx8IChzdHIgPT0gTlVM
TCkpCisgICAgIHJldHVybiAtMTsKKworICAgaWYgKGxlbiA8IDApCisgICAgIGxlbiA9IChjaGFy
ICopKC0xKSAtIHN0cjsKKworICAgbWVtc2V0ICgmbWJzdGF0ZSwgMCwgc2l6ZW9mIChtYnN0YXRl
KSk7CisgICB3aGlsZSAoKGsgPSBtYnJ0b3djICgmd2MsIHN0ciwgbGVuLCAmbWJzdGF0ZSkpICYm
CisJICBrICE9IChzaXplX3QpKC0xKSAmJgorCSAgayAhPSAoc2l6ZV90KSgtMikpCisgICAgIHsK
KwlTTGN1cnNlc193YWRkY2gxICh3LCB3Yywgdy0+Y29sb3IpOworCXN0ciArPSBrOworCWxlbiAt
PSBrOworICAgICB9CisgICByZXR1cm4gazsKK30KKyNlbHNlCiAvKiBOb3RlOiBpZiBsZW4gaXMg
PCAwLCBlbnRpcmUgc3RyaW5nIHdpbGwgYmUgdXNlZC4KICAqLwogaW50IFNMY3Vyc2VzX3dhZGRu
c3RyIChTTGN1cnNlc19XaW5kb3dfVHlwZSAqdywgY2hhciAqc3RyLCBpbnQgbGVuKQpAQCAtNzU4
LDYgKzkxNSw3IEBACiAKICAgIHJldHVybiAwOwogfQorI2VuZGlmIC8qIFVURjggKi8KIAogLyog
VGhpcyByb3V0aW5lIElTIE5PVCBDT1JSRUNULiAgSXQgbmVlZHMgdG8gY29tcHV0ZSB0aGUgcHJv
cGVyIG92ZXJsYXAKICAqIGFuZCBjb3B5IGFjY29yZGluZ2x5LiAgSGVyZSwgSSBqdXN0IGFzc3Vt
ZSB3aW5kb3dzIGFyZSBzYW1lIHNpemUuCkBAIC04NTIsMTIgKzEwMTAsMzYgQEAKIAogaW50IFNM
Y3Vyc2VzX3dkZWxjaCAoU0xjdXJzZXNfV2luZG93X1R5cGUgKncpCiB7CisjaWZkZWYgVVRGOAor
ICAgU0xzbWdfQ2hhcl9UeXBlICpwLCAqcDEsICpwbWluLCAqcG1heCwgKnE7CisjZWxzZQogICAg
U0xzbWdfQ2hhcl9UeXBlICpwLCAqcDEsICpwbWF4OworI2VuZGlmIC8qIFVURjggKi8KIAorI2lm
ZGVmIFVURjgKKyAgIHBtaW4gPSB3LT5saW5lc1t3LT5fY3VyeV07CisgICBwID0gcG1pbiArIHct
Pl9jdXJ4OworICAgcG1heCA9IHBtaW4gKyB3LT5uY29sczsKKworICAgLyogUmVtb3ZlIG92ZXJ3
cml0dGVuIGNoYXJzIHRvIGxlZnQgKi8KKyAgIGlmIChwIDwgcG1heCAmJiAqcCA9PSBTTFNNR19O
T0NIQVIpIHsKKyAgICAgZm9yIChxID0gcCAtIDE7IHEgPj0gcG1pbiAmJiAqcSA9PSBTTFNNR19O
T0NIQVI7IHEtLSkKKyAgICAgICAqcSA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLFNMU01HX0VYVFJB
Q1RfQ09MT1IoKnEpKTsKKyAgICAgaWYgKHEgPj0gcG1pbikKKyAgICAgICAqcSA9IFNMU01HX0JV
SUxEX0NIQVIoJyAnLFNMU01HX0VYVFJBQ1RfQ09MT1IoKnEpKTsKKyAgIH0KKworICAgLyogUmVt
b3ZlIG92ZXJ3cml0dGVuIGNoYXJzIHRvIHJpZ2h0ICovCisgICBmb3IgKHEgPSBwICsgMTsgcSA8
IHBtYXggJiYgKnEgPT0gU0xTTUdfTk9DSEFSOyBxKyspCisgICAgICpxID0gU0xTTUdfQlVJTERf
Q0hBUignICcsU0xTTUdfRVhUUkFDVF9DT0xPUigqcSkpOworIAorICAgcDEgPSBwICsgMTsKKyNl
bHNlCiAgICBwID0gdy0+bGluZXNbdy0+X2N1cnldOwogICAgcG1heCA9IHAgKyB3LT5uY29sczsK
ICAgIHAgKz0gdy0+X2N1cng7CiAgICBwMSA9IHAgKyAxOworI2VuZGlmIC8qIFVURjggKi8KIAog
ICAgd2hpbGUgKHAxIDwgcG1heCkKICAgICAgewpAQCAtODg0LDEyICsxMDY2LDEyIEBACiAKICAg
IHdoaWxlIChwbWF4ID4gcCkKICAgICAgewotCSpwbWF4ID0gKnAxOworCSpwbWF4ID0gKnAxOyAv
KiBEb2Vzbid0IHRoaXMgYXNzaWduIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBsaW5lPyAqLwogCXBt
YXggPSBwMTsKIAlwMS0tOwogICAgICB9CiAKLSAgIGlmIChwIDwgcG1heCkKKyAgIGlmIChwIDwg
cG1heCkgLyogSG93IGNvdWxkIGl0IGJlPyAqLwogICAgICAqcCA9IFNMU01HX0JVSUxEX0NIQVIo
Y2gsIHctPmNvbG9yKTsKIAogICAgdy0+bW9kaWZpZWQgPSAxOwotLS0gc2xhbmctMS40LjQub3Jp
Zy9zcmMvc2xzbWcuYworKysgc2xhbmctMS40LjQvc3JjL3Nsc21nLmMKQEAgLTIyNSw2ICsyMjUs
MzggQEAKICAgIFNMc21nX3dyaXRlX25jaGFycyAoc3RyLCBzdHJsZW4gKHN0cikpOwogfQogCisj
aWZkZWYgVVRGOAordm9pZCBTTHNtZ193cml0ZV9uc3RyaW5nIChjaGFyICpzdHIsIHVuc2lnbmVk
IGludCBuKQoreworICAgY2hhciBibGFuayA9ICcgJzsKKyAgIG1ic3RhdGVfdCBtYnN0YXRlOwor
CisgICAvKiBBdm9pZCBhIHByb2JsZW0gaWYgYSB1c2VyIGFjY2lkZW50bHkgcGFzc2VzIGEgbmVn
YXRpdmUgdmFsdWUgKi8KKyAgIGlmICgoaW50KSBuIDwgMCkKKyAgICAgcmV0dXJuOworCisgICBp
ZiAoc3RyICE9IE5VTEwpCisgICAgIHsKKwl3Y2hhcl90IHdjOworCXNpemVfdCBrOworCWludCB3
OworCisJbWVtc2V0ICgmbWJzdGF0ZSwgMCwgc2l6ZW9mIChtYnN0YXRlKSk7CisgICAgICAgIHdo
aWxlICgoayA9IG1icnRvd2MgKCZ3Yywgc3RyLCBNQl9MRU5fTUFYLCAmbWJzdGF0ZSkpICYmCisJ
ICAgICAgIGsgIT0gKHNpemVfdCkoLTEpICYmCisJICAgICAgIGsgIT0gKHNpemVfdCkoLTIpKQor
CSAgeworCSAgICAgdyA9IHdjd2lkdGgod2MpOworCSAgICAgaWYgKHcgPCAwIHx8IHcgPiBuKQor
CSAgICAgICBicmVhazsKKwkgICAgIFNMc21nX3dyaXRlX253Y2hhcnMgKCZ3YywgMSk7CisJICAg
ICBzdHIgKz0gazsKKwkgICAgIG4gLT0gdzsKKwkgIH0KKyAgICAgfQorICAgd2hpbGUgKG4tLSA+
IDApIFNMc21nX3dyaXRlX25jaGFycyAoJmJsYW5rLCAxKTsKK30KKyNlbHNlCiB2b2lkIFNMc21n
X3dyaXRlX25zdHJpbmcgKGNoYXIgKnN0ciwgdW5zaWduZWQgaW50IG4pCiB7CiAgICB1bnNpZ25l
ZCBpbnQgd2lkdGg7CkBAIC0yNDMsNyArMjc1LDExIEBACiAgICAgIH0KICAgIHdoaWxlICh3aWR0
aCsrIDwgbikgU0xzbWdfd3JpdGVfbmNoYXJzICgmYmxhbmssIDEpOwogfQorI2VuZGlmIC8qIFVU
RjggKi8KIAorI2lmZGVmIFVURjgKKy8qIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIG5vdCBVVEY4J2Qg
eWV0IC0gRWRtdW5kICovCisjZW5kaWYgLyogVVRGOCAqLwogdm9pZCBTTHNtZ193cml0ZV93cmFw
cGVkX3N0cmluZyAoY2hhciAqcywgaW50IHIsIGludCBjLAogCQkJCSB1bnNpZ25lZCBpbnQgZHIs
IHVuc2lnbmVkIGludCBkYywKIAkJCQkgaW50IGZpbGwpCkBAIC0zMDIsNiArMzM4LDEyMyBAQAog
aW50IFNMc21nX0Rpc3BsYXlfRWlnaHRfQml0ID0gMTI4OwogI2VuZGlmCiAKKyNpZmRlZiBVVEY4
Cit2b2lkIFNMc21nX3dyaXRlX253Y2hhcnMgKHdjaGFyX3QgKnN0ciwgdW5zaWduZWQgaW50IG4p
Cit7CisgIFNMc21nX0NoYXJfVHlwZSAqcCwgKnByZXYsICpxOworICBpbnQgbGVuLCBtYXhfbGVu
LCB3LCBpOworICB3Y2hhcl90IGNoOworCisjaWZuZGVmIElCTVBDX1NZU1RFTQorICAgaW50IGFs
dF9jaGFyX3NldF9mbGFnOworCisgICBhbHRfY2hhcl9zZXRfZmxhZyA9ICgoVGhpc19Db2xvciAm
IEFMVF9DSEFSX0ZMQUcpCisJCQkmJiAoKHR0X1VzZV9CbGlua19Gb3JfQUNTID09IE5VTEwpCisJ
CQkgICAgfHwgKCp0dF9Vc2VfQmxpbmtfRm9yX0FDUyA9PSAwKSkpOworI2VuZGlmCisKKyAgaWYg
KFNtZ19Jbml0ZWQgPT0gMCkKKyAgICByZXR1cm47CisgIGlmIChUaGlzX1JvdyA8IFN0YXJ0X1Jv
dyB8fCBUaGlzX1JvdyA+PSBTdGFydF9Sb3cgKyBTY3JlZW5fUm93cykKKyAgICByZXR1cm47CisK
KyAgbWF4X2xlbiA9IFN0YXJ0X0NvbCArIFNjcmVlbl9Db2xzOworICBsZW4gPSBUaGlzX0NvbDsK
KyAgcCA9IFNMX1NjcmVlbltUaGlzX1JvdyAtIFN0YXJ0X1Jvd10ubmVldyArIGxlbiAtIFN0YXJ0
X0NvbDsKKyAgcHJldiA9IDA7CisKKyAgZm9yIChpID0gMDsgaSA8IG47IGkrKywgc3RyKSB7Cisg
ICAgY2ggPSAqc3RyKys7CisjaWZuZGVmIElCTVBDX1NZU1RFTQorICAgIGlmIChhbHRfY2hhcl9z
ZXRfZmxhZykKKyAgICAgIGNoID0gQWx0X0NoYXJfU2V0W2NoICYgMHg3Rl07CisjZW5kaWYKKyAg
ICB3ID0gd2N3aWR0aChjaCk7CisKKyAgICBpZiAodyA+IDApIHsKKyAgICAgIGlmIChsZW4gKyB3
IDw9IG1heF9sZW4pIHsKKwlpZiAoIXByZXYpIHsKKwkgIGZvciAocSA9IHA7ICpxID09IFNMU01H
X05PQ0hBUjsgcS0tKQorCSAgICAqcSA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLCBTTFNNR19FWFRS
QUNUX0NPTE9SKCpxKSk7CisJICAqcSA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLCBTTFNNR19FWFRS
QUNUX0NPTE9SKCpxKSk7CisJfQorCXByZXYgPSBwOworCSpwKysgPSBTTFNNR19CVUlMRF9DSEFS
KGNoLCBUaGlzX0NvbG9yKSwgKytsZW47CisJZm9yICg7IC0tdzsgbGVuKyssIHArKykKKwkgICpw
ID0gU0xTTUdfTk9DSEFSOworICAgICAgfQorICAgICAgZWxzZSBpZiAobGVuIDwgbWF4X2xlbikg
eworCWZvciAoOyBsZW4gPCBtYXhfbGVuOyBsZW4rKywgcCsrKQorCSAgKnAgPSBTTFNNR19CVUlM
RF9DSEFSKCcgJywgU0xTTUdfRVhUUkFDVF9DT0xPUigqcCkpOworCXByZXYgPSAwOworICAgICAg
fQorICAgIH0KKyAgICBlbHNlIGlmIChjaCA9PSAnXG4nICYmCisJICAgICBTTHNtZ19OZXdsaW5l
X0JlaGF2aW9yICE9IFNMU01HX05FV0xJTkVfUFJJTlRBQkxFKSB7CisgICAgICBTTF9TY3JlZW5b
VGhpc19Sb3cgLSBTdGFydF9Sb3ddLmZsYWdzIHw9IFRPVUNIRUQ7CisgICAgICBmb3IgKDsgbGVu
IDwgbWF4X2xlbiAmJiAqcCA9PSBTTFNNR19OT0NIQVI7IGxlbisrLCBwKyspCisJKnAgPSBTTFNN
R19CVUlMRF9DSEFSKCcgJywgU0xTTUdfRVhUUkFDVF9DT0xPUigqcCkpOworICAgICAgaWYgKCFT
THNtZ19OZXdsaW5lX0JlaGF2aW9yKQorCWJyZWFrOworICAgICAgKytUaGlzX1JvdzsKKyAgICAg
IGxlbiA9IDA7CisgICAgICBpZiAoVGhpc19Sb3cgPT0gU3RhcnRfUm93ICsgU2NyZWVuX1Jvd3Mp
IHsKKwlpZiAoU0xzbWdfTmV3bGluZV9CZWhhdmlvciA9PSBTTFNNR19ORVdMSU5FX1NDUk9MTFMp
CisJICBzY3JvbGxfdXAoKTsKKwllbHNlCisJICBicmVhazsKKyAgICAgIH0KKyAgICAgIHAgPSBT
TF9TY3JlZW5bVGhpc19Sb3cgLSBTdGFydF9Sb3ddLm5lZXc7CisgICAgICBwcmV2ID0gMDsKKyAg
ICB9CisgICAgZWxzZSBpZiAoY2ggPT0gJ1x0JyAmJiAoU0xzbWdfVGFiX1dpZHRoID4gMCkpIHsK
KyAgICAgIHdoaWxlIChsZW4gPCBtYXhfbGVuKSB7CisJKnAgPSBTTFNNR19CVUlMRF9DSEFSKCcg
JywgU0xTTUdfRVhUUkFDVF9DT0xPUigqcCkpOworCSsrcCwgKytsZW47CisJaWYgKGxlbiAlIFNM
c21nX1RhYl9XaWR0aCA9PSAwKQorCSAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIGVsc2Ug
aWYgKChjaCA9PSAweDgpICYmIFNMc21nX0JhY2tzcGFjZV9Nb3ZlcykgeworICAgICAgLyogbm90
IGltcGxlbWVudGVkICovCisgICAgfQorICAgIGVsc2UgaWYgKCF3ICYmIGNoKSB7CisgICAgICAv
KiB3ZSBjb3VsZCBoYW5kbGUgY29tYmluaW5nIGNoYXJhY3RlcnMgaGVyZSwgdXNpbmcgcHJldiAq
LworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIC8qIHdlIHNob3VsZCBjb252ZXJ0IGNvbnRyb2wg
Y2hhcmFjdGVycyB0byBwcmludGFibGUgZm9ybSBoZXJlICovCisgICAgfQorICB9CisgIFRoaXNf
Q29sID0gbGVuOworICBpZiAoaSA9PSBuKSB7CisgICAgU0xfU2NyZWVuW1RoaXNfUm93IC0gU3Rh
cnRfUm93XS5mbGFncyB8PSBUT1VDSEVEOworICAgIGZvciAoOyBsZW4gPCBtYXhfbGVuICYmICpw
ID09IFNMU01HX05PQ0hBUjsgbGVuKyssIHArKykKKyAgICAgICpwID0gU0xTTUdfQlVJTERfQ0hB
UignICcsIFNMU01HX0VYVFJBQ1RfQ09MT1IoKnApKTsKKyAgfQorfQorCit2b2lkIFNMc21nX3dy
aXRlX2NoYXIgKHdjaGFyX3Qgd2MpCit7CisgICBTTHNtZ193cml0ZV9ud2NoYXJzICgmd2MsIDEp
OworfQorCit2b2lkIFNMc21nX3dyaXRlX25jaGFycyAoY2hhciAqc3RyLCB1bnNpZ25lZCBpbnQg
bikKK3sKKyAgIHdjaGFyX3Qgd2M7CisgICBzaXplX3QgazsKKyAgIG1ic3RhdGVfdCBtYnN0YXRl
OworCisgICBtZW1zZXQgKCZtYnN0YXRlLCAwLCBzaXplb2YgKG1ic3RhdGUpKTsKKyAgIHdoaWxl
ICgoayA9IG1icnRvd2MgKCZ3Yywgc3RyLCBuLCAmbWJzdGF0ZSkpICYmCisJICBrICE9IChzaXpl
X3QpKC0xKSAmJgorCSAgayAhPSAoc2l6ZV90KSgtMikpCisgICAgIHsKKyAgICAgICAgU0xzbWdf
d3JpdGVfbndjaGFycyAoJndjLCAxKTsKKwlzdHIgKz0gazsKKwluIC09IGs7CisgICAgIH0KK30K
KyNlbHNlCiB2b2lkIFNMc21nX3dyaXRlX25jaGFycyAoY2hhciAqc3RyLCB1bnNpZ25lZCBpbnQg
bikKIHsKICAgIHJlZ2lzdGVyIFNMc21nX0NoYXJfVHlwZSAqcCwgb2xkLCBuZWV3LCBjb2xvcjsK
QEAgLTQ3NSw2ICs2MjgsNyBAQAogewogICAgU0xzbWdfd3JpdGVfbmNoYXJzICgmY2gsIDEpOwog
fQorI2VuZGlmIC8qIFVURjggKi8KIAogc3RhdGljIGludCBDbHNfRmxhZzsKIApAQCAtODkxLDYg
KzEwNDUsMTAgQEAKIAkgICAgIFRoaXNfQ29sb3IgPSBjb2xvcjsKIAkgIH0KIAorI2lmZGVmIFVU
RjgKKwkvKiBGSVhNRTogV2Ugc2hvdWxkIGNvbnZlcnQgYnJva2VuIHdpZGUgY2hhcmFjdGVycyB0
byBzcGFjZXMKKwkgICBiZWZvcmUgY2FsbGluZyBzbWFydF9wdXRzICovCisjZW5kaWYgLyogVVRG
OCAqLwogCVNMX1NjcmVlbltpXS5vbGRbU2NyZWVuX0NvbHNdID0gMDsKIAlTTF9TY3JlZW5baV0u
bmVld1tTY3JlZW5fQ29sc10gPSAwOwogCkBAIC0xMzM0LDkgKzE0OTIsMTYgQEAKICAgIFRoaXNf
Um93ID0gcjsgVGhpc19Db2wgPSBjOwogfQogCisjaWZkZWYgVVRGOAordm9pZCBTTHNtZ19maWxs
X3JlZ2lvbiAoaW50IHIsIGludCBjLCB1bnNpZ25lZCBpbnQgZHIsIHVuc2lnbmVkIGludCBkYywg
d2NoYXJfdCBjaCkKK3sKKyAgIHN0YXRpYyB3Y2hhcl90IGhidWZbMTZdOworICAgaW50IGk7Cisj
ZWxzZQogdm9pZCBTTHNtZ19maWxsX3JlZ2lvbiAoaW50IHIsIGludCBjLCB1bnNpZ25lZCBpbnQg
ZHIsIHVuc2lnbmVkIGludCBkYywgdW5zaWduZWQgY2hhciBjaCkKIHsKICAgIHN0YXRpYyB1bnNp
Z25lZCBjaGFyIGhidWZbMTZdOworI2VuZGlmIC8qIFVURjggKi8KICAgIGludCBjb3VudDsKICAg
IGludCBkY21heCwgcm1heDsKIApAQCAtMTM1NywxNiArMTUyMiwzMCBAQAogI2lmIDAKICAgIGNo
ID0gQWx0X0NoYXJfU2V0W2NoXTsKICNlbmRpZgorI2lmZGVmIFVURjgKKyAgIGlmIChjaCAhPSBo
YnVmWzBdKQorICAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykKKyAgICAgICBoYnVmW2ldID0g
Y2g7CisjZWxzZQogICAgaWYgKGNoICE9IGhidWZbMF0pIFNMTUVNU0VUICgoY2hhciAqKSBoYnVm
LCAoY2hhcikgY2gsIDE2KTsKKyNlbmRpZiAvKiBVVEY4ICovCiAKICAgIGZvciAoVGhpc19Sb3cg
PSByOyBUaGlzX1JvdyA8IHJtYXg7IFRoaXNfUm93KyspCiAgICAgIHsKIAlUaGlzX0NvbCA9IGM7
CiAJY291bnQgPSBkYyAvIDE2OworI2lmZGVmIFVURjgKKwlTTHNtZ193cml0ZV9ud2NoYXJzICho
YnVmLCBkYyAlIDE2KTsKKyNlbHNlCiAJU0xzbWdfd3JpdGVfbmNoYXJzICgoY2hhciAqKSBoYnVm
LCBkYyAlIDE2KTsKKyNlbmRpZiAvKiBVVEY4ICovCiAJd2hpbGUgKGNvdW50LS0gPiAwKQogCSAg
eworI2lmZGVmIFVURjgKKwkgICAgIFNMc21nX3dyaXRlX253Y2hhcnMgKGhidWYsIDE2KTsKKyNl
bHNlCiAJICAgICBTTHNtZ193cml0ZV9uY2hhcnMgKChjaGFyICopIGhidWYsIDE2KTsKKyNlbmRp
ZiAvKiBVVEY4ICovCiAJICB9CiAgICAgIH0KIApAQCAtMTM4MSwxNCArMTU2MCwyMiBAQAogdm9p
ZCBTTHNtZ193cml0ZV9jb2xvcl9jaGFycyAoU0xzbWdfQ2hhcl9UeXBlICpzLCB1bnNpZ25lZCBp
bnQgbGVuKQogewogICAgU0xzbWdfQ2hhcl9UeXBlICpzbWF4LCBzaDsKKyNpZmRlZiBVVEY4Cisg
ICB3Y2hhcl90IGJ1ZlszMl0sICpiLCAqYm1heDsKKyNlbHNlCiAgICBjaGFyIGJ1ZlszMl0sICpi
LCAqYm1heDsKKyNlbmRpZiAvKiBVVEY4ICovCiAgICBpbnQgY29sb3IsIHNhdmVfY29sb3I7CiAK
ICAgIGlmIChTbWdfSW5pdGVkID09IDApIHJldHVybjsKIAogICAgc21heCA9IHMgKyBsZW47CiAg
ICBiID0gYnVmOworI2lmZGVmIFVURjgKKyAgIGJtYXggPSBiICsgc2l6ZW9mIChidWYpIC8gc2l6
ZW9mIChTTHNtZ19DaGFyX1R5cGUpOworI2Vsc2UKICAgIGJtYXggPSBiICsgc2l6ZW9mIChidWYp
OworI2VuZGlmIC8qIFVURjggKi8KIAogICAgc2F2ZV9jb2xvciA9IFRoaXNfQ29sb3I7CiAKQEAg
LTE0MTIsMTYgKzE1OTksMjggQEAKIAkgIHsKIAkgICAgIGlmIChiICE9IGJ1ZikKIAkgICAgICAg
eworI2lmZGVmIFVURjgKKwkJICBTTHNtZ193cml0ZV9ud2NoYXJzIChidWYsIChpbnQpIChiIC0g
YnVmKSk7CisjZWxzZQogCQkgIFNMc21nX3dyaXRlX25jaGFycyAoYnVmLCAoaW50KSAoYiAtIGJ1
ZikpOworI2VuZGlmIC8qIFVURjggKi8KIAkJICBiID0gYnVmOwogCSAgICAgICB9CiAJICAgICBU
aGlzX0NvbG9yID0gY29sb3I7CiAJICB9CisjaWZkZWYgVVRGOAorCSpiKysgPSBTTFNNR19FWFRS
QUNUX0NIQVIoc2gpOworI2Vsc2UKIAkqYisrID0gKGNoYXIpIFNMU01HX0VYVFJBQ1RfQ0hBUihz
aCk7CisjZW5kaWYgLyogVVRGOCAqLwogICAgICB9CiAKICAgIGlmIChiICE9IGJ1ZikKKyNpZmRl
ZiBVVEY4CisgICAgIFNMc21nX3dyaXRlX253Y2hhcnMgKGJ1ZiwgKHVuc2lnbmVkIGludCkgKGIg
LSBidWYpKTsKKyNlbHNlCiAgICAgIFNMc21nX3dyaXRlX25jaGFycyAoYnVmLCAodW5zaWduZWQg
aW50KSAoYiAtIGJ1ZikpOworI2VuZGlmIC8qIFVURjggKi8KIAogICAgVGhpc19Db2xvciA9IHNh
dmVfY29sb3I7CiB9CkBAIC0xNDczLDcgKzE2NzIsMTEgQEAKIFNMc21nX3NldF9jb2xvcl9pbl9y
ZWdpb24gKGludCBjb2xvciwgaW50IHIsIGludCBjLCB1bnNpZ25lZCBpbnQgZHIsIHVuc2lnbmVk
IGludCBkYykKIHsKICAgIGludCBjbWF4LCBybWF4OworI2lmZGVmIFVURjgKKyAgIGludCBjb2xv
cl9tYXNrOworI2Vsc2UKICAgIFNMc21nX0NoYXJfVHlwZSBjaGFyX21hc2s7CisjZW5kaWYgLyog
VVRGOCAqLwogCiAgICBpZiAoU21nX0luaXRlZCA9PSAwKSByZXR1cm47CiAKQEAgLTE0OTgsMTQg
KzE3MDEsMjIgQEAKIAkgIGNvbG9yID0gKChjb2xvciAmIDB4N0YpICsgQmNlX0NvbG9yX09mZnNl
dCkgJiAweDdGOwogICAgICB9CiAjZW5kaWYKKyNpZmRlZiBVVEY4CisgICBjb2xvcl9tYXNrID0g
MDsKKyNlbHNlCiAgICBjb2xvciA9IGNvbG9yIDw8IDg7CiAKICAgIGNoYXJfbWFzayA9IDB4RkY7
CisjZW5kaWYgLyogVVRGOCAqLwogCiAjaWZuZGVmIElCTVBDX1NZU1RFTQogICAgaWYgKCh0dF9V
c2VfQmxpbmtfRm9yX0FDUyA9PSBOVUxMKQogICAgICAgIHx8ICgwID09ICp0dF9Vc2VfQmxpbmtf
Rm9yX0FDUykpCisjaWZkZWYgVVRGOAorICAgICBjb2xvcl9tYXNrID0gMHg4MDsKKyNlbHNlCiAg
ICAgIGNoYXJfbWFzayA9IDB4ODBGRjsKKyNlbmRpZiAvKiBVVEY4ICovCiAjZW5kaWYKIAogICAg
d2hpbGUgKHIgPCBybWF4KQpAQCAtMTUxOSw3ICsxNzMwLDEzIEBACiAKIAl3aGlsZSAocyA8IHNt
YXgpCiAJICB7CisjaWZkZWYgVVRGOAorCSAgICAgKnMgPSBTTFNNR19CVUlMRF9DSEFSKFNMU01H
X0VYVFJBQ1RfQ0hBUigqcyksCisJCQkJICAgKFNMU01HX0VYVFJBQ1RfQ09MT1IoKnMpICYgY29s
b3JfbWFzaykKKwkJCQkgICB8IGNvbG9yKTsKKyNlbHNlCiAJICAgICAqcyA9ICgqcyAmIGNoYXJf
bWFzaykgfCBjb2xvcjsKKyNlbmRpZiAvKiBVVEY4ICovCiAJICAgICBzKys7CiAJICB9CiAJcisr
OwotLS0gc2xhbmctMS40Ljkvc3JjL3NsZGlzcGx5LmMub3JpZwkyMDAzLTEwLTI3IDE3OjI0OjE1
LjAwMDAwMDAwMCAtMDUwMAorKysgc2xhbmctMS40Ljkvc3JjL3NsZGlzcGx5LmMJMjAwMy0xMC0y
NyAxNzo1NjoyNS4wMDAwMDAwMDAgLTA1MDAKQEAgLTksNiArOSw3IEBACiAKICNpbmNsdWRlIDx0
aW1lLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KIAogI2lmICFk
ZWZpbmVkKFZNUykgfHwgKF9fVk1TX1ZFUiA+PSA3MDAwMDAwMCkKICMgaW5jbHVkZSA8c3lzL3Rp
bWUuaD4KQEAgLTE0MjYsMTQgKzE0MjcsMjUgQEAKIAogLyogSGlnaGVzdCBiaXQgcmVwcmVzZW50
cyB0aGUgY2hhcmFjdGVyIHNldC4gKi8KICNkZWZpbmUgQ09MT1JfTUFTSyAweDdGMDAKKyNpZmRl
ZiBVVEY4CisjIGRlZmluZSBDT0xPUl9PRih4KSAoU0xTTUdfRVhUUkFDVF9DT0xPUih4KSAmIDB4
N0YpCisjZWxzZQogI2RlZmluZSBDT0xPUl9PRih4KSAoKCh4KSZDT0xPUl9NQVNLKT4+OCkKKyNl
bmRpZgogI2RlZmluZSBDSEFSX09GKHgpICgoeCkmMHg4MEZGKQogCiAjaWYgU0xUVF9IQVNfTk9O
X0JDRV9TVVBQT1JUCisjaWZkZWYgVVRGOAorc3RhdGljIGludCBiY2VfY29sb3JfZXFzIChTTHNt
Z19DaGFyX1R5cGUgYSwgU0xzbWdfQ2hhcl9UeXBlIGIpCit7CisgICBhID0gU0xTTUdfRVhUUkFD
VF9DT0xPUihhKSAmIDB4N0Y7CisgICBiID0gU0xTTUdfRVhUUkFDVF9DT0xPUihiKSAmIDB4N0Y7
CisjZWxzZQogc3RhdGljIGludCBiY2VfY29sb3JfZXFzICh1bnNpZ25lZCBpbnQgYSwgdW5zaWdu
ZWQgaW50IGIpCiB7CiAgICBhID0gQ09MT1JfT0YoYSk7CiAgICBiID0gQ09MT1JfT0YoYik7Cisj
ZW5kaWYKICAgIAogICAgaWYgKGEgPT0gYikKICAgICAgcmV0dXJuIDE7CkBAIC0xNDU5LDggKzE0
NzEsMTQgQEAKICAgICA6ICAoQW5zaV9Db2xvcl9NYXBbQ09MT1JfT0YoYSldLm1vbm8gPT0gQW5z
aV9Db2xvcl9NYXBbQ09MT1JfT0YoYildLm1vbm8pKQogI2VuZGlmCiAKKyNpZmRlZiBVVEY4Cisj
ZGVmaW5lIENIQVJfRVFTKGEsIGIpICgoYSkgPT0gKGIpXAorCQkJfHwgKFNMU01HX0VYVFJBQ1Rf
Q0hBUihhKSA9PSBTTFNNR19FWFRSQUNUX0NIQVIoYilcCisJCQkgICAgJiYgQ09MT1JfRVFTKChh
KSwgKGIpKSkpCisjZWxzZQogI2RlZmluZSBDSEFSX0VRUyhhLCBiKSAoKChhKSA9PSAoYikpXAog
CQkJfHwgKChDSEFSX09GKGEpPT1DSEFSX09GKGIpKSAmJiBDT0xPUl9FUVMoYSxiKSkpCisjZW5k
aWYKIAogLyogVGhlIHdob2xlIHBvaW50IG9mIHRoaXMgcm91dGluZSBpcyB0byBwcmV2ZW50IHdy
aXRpbmcgdG8gdGhlIGxhc3QgY29sdW1uCiAgKiBhbmQgbGFzdCByb3cgb24gdGVybWluYWxzIHdp
dGggYXV0b21hdGljIG1hcmdpbnMuCkBAIC0xNDg4LDkgKzE1MDYsNTggQEAKICAgIHR0X3dyaXRl
IChzdHIsIGxlbik7CiB9CiAKKyNpZmRlZiBVVEY4CisvKiBGSVhNRTogVGhpcyBkdXBsaWNhdGVz
IHRoZSBmdW5jdGlvbiBhYm92ZQorICovCitzdGF0aWMgdm9pZCB3cml0ZV93c3RyaW5nX3dpdGhf
Y2FyZSAoU0xzbWdfQ2hhcl9UeXBlICpzdHIsIHVuc2lnbmVkIGludCBsZW4pCit7CisgICBtYnN0
YXRlX3QgbWJzdGF0ZTsKKworICAgaWYgKHN0ciA9PSBOVUxMKSByZXR1cm47CisKKyAgIGlmIChB
dXRvbWF0aWNfTWFyZ2lucyAmJiAoQ3Vyc29yX3IgKyAxID09IFNMdHRfU2NyZWVuX1Jvd3MpKQor
ICAgICB7CisJaWYgKGxlbiArICh1bnNpZ25lZCBpbnQpIEN1cnNvcl9jID49ICh1bnNpZ25lZCBp
bnQpIFNMdHRfU2NyZWVuX0NvbHMpCisJICB7CisJICAgICAvKiBGb3Igbm93LCBqdXN0IGRvIG5v
dCB3cml0ZSB0aGVyZS4gIExhdGVyLCBzb21ldGhpbmcgbW9yZQorCSAgICAgICogc29waGlzdGlj
YXRlZCB3aWxsIGJlIGltcGxlbWVudGVkLgorCSAgICAgICovCisJICAgICBpZiAoU0x0dF9TY3Jl
ZW5fQ29scyA+IEN1cnNvcl9jKQorCSAgICAgICB7CisJCSAgbGVuID0gU0x0dF9TY3JlZW5fQ29s
cyAtIEN1cnNvcl9jIC0gMTsKKwkJICB3aGlsZSAobGVuID4gMCAmJiBzdHJbbGVuXSA9PSBTTFNN
R19OT0NIQVIpCisJCSAgICAtLWxlbjsKKwkgICAgICAgfQorCSAgICAgZWxzZSBsZW4gPSAwOwor
CSAgfQorICAgICB9CisKKyAgIG1lbXNldCAoJm1ic3RhdGUsIDAsIHNpemVvZiAobWJzdGF0ZSkp
OworICAgd2hpbGUgKGxlbi0tKQorICAgICB7CisgICAgICAgIFNMc21nX0NoYXJfVHlwZSBjID0g
KnN0cisrOworCWNoYXIgYnVmW01CX0xFTl9NQVhdOworCXNpemVfdCBuOworCisJaWYgKGMgPT0g
U0xTTUdfTk9DSEFSKQorCSAgY29udGludWU7CisKKwluID0gd2NydG9tYiAoYnVmLCBjLCAmbWJz
dGF0ZSk7CisJaWYgKG4gPT0gKHNpemVfdCkoLTEpKQorCSAgYnJlYWs7CisKKwl0dF93cml0ZShi
dWYsIG4pOworICAgICB9Cit9CisjZW5kaWYgLyogVVRGOCAqLworCiBzdGF0aWMgdm9pZCBzZW5k
X2F0dHJfc3RyIChTTHNtZ19DaGFyX1R5cGUgKnMpCiB7CisjaWZkZWYgVVRGOAorICAgU0xzbWdf
Q2hhcl9UeXBlIG91dFtTTFRUX01BWF9TQ1JFRU5fQ09MU10sIGNoLCAqcDsKKyNlbHNlCiAgICB1
bnNpZ25lZCBjaGFyIG91dFtTTFRUX01BWF9TQ1JFRU5fQ09MU10sIGNoLCAqcDsKKyNlbmRpZiAv
KiBVVEY4ICovCiAgICByZWdpc3RlciBTTHR0X0NoYXJfVHlwZSBhdHRyOwogICAgcmVnaXN0ZXIg
U0xzbWdfQ2hhcl9UeXBlIHNoOwogICAgaW50IGNvbG9yLCBsYXN0X2NvbG9yID0gLTE7CkBAIC0x
NDk4LDggKzE1NjUsMTMgQEAKICAgIHAgPSBvdXQ7CiAgICB3aGlsZSAoMCAhPSAoc2ggPSAqcysr
KSkKICAgICAgeworI2lmZGVmIFVURjgKKwljaCA9IFNMU01HX0VYVFJBQ1RfQ0hBUihzaCk7CisJ
Y29sb3IgPSBTTFNNR19FWFRSQUNUX0NPTE9SKHNoKTsKKyNlbHNlCiAJY2ggPSBzaCAmIDB4RkY7
CiAJY29sb3IgPSAoKGludCkgc2ggJiAweEZGMDApID4+IDg7CisjZW5kaWYKIAogI2lmIFNMVFRf
SEFTX05PTl9CQ0VfU1VQUE9SVAogCWlmIChCY2VfQ29sb3JfT2Zmc2V0CkBAIC0xNTExLDggKzE1
ODMsMTIgQEAKIAkgIHsKIAkgICAgIGlmIChTTHR0X1VzZV9BbnNpX0NvbG9ycykgYXR0ciA9IEFu
c2lfQ29sb3JfTWFwW2NvbG9yICYgMHg3Rl0uZmdiZzsKIAkgICAgIGVsc2UgYXR0ciA9IEFuc2lf
Q29sb3JfTWFwW2NvbG9yICYgMHg3Rl0ubW9ubzsKLQorIAorI2lmZGVmIFVURjgKKwkgICAgIGlm
IChTTFNNR19FWFRSQUNUX0NPTE9SKHNoKSAmIDB4ODApIC8qIGFsdGVybmF0ZSBjaGFyIHNldCAq
LworI2Vsc2UKIAkgICAgIGlmIChzaCAmIDB4ODAwMCkgLyogYWx0ZXJuYXRlIGNoYXIgc2V0ICov
CisjZW5kaWYKIAkgICAgICAgewogCQkgIGlmIChTTHR0X1VzZV9CbGlua19Gb3JfQUNTKQogCQkg
ICAgewpAQCAtMTUzNCw4ICsxNjEwLDEyIEBACiAJCSAgICB7CiAJCSAgICAgICBpZiAocCAhPSBv
dXQpCiAJCQkgeworI2lmZGVmIFVURjgKKwkJCSAgICB3cml0ZV93c3RyaW5nX3dpdGhfY2FyZSAo
b3V0LCBwLW91dCk7CisjZWxzZQogCQkJICAgICpwID0gMDsKIAkJCSAgICB3cml0ZV9zdHJpbmdf
d2l0aF9jYXJlICgoY2hhciAqKSBvdXQpOworI2VuZGlmCiAJCQkgICAgQ3Vyc29yX2MgKz0gKGlu
dCkgKHAgLSBvdXQpOwogCQkJICAgIHAgPSBvdXQ7CiAJCQkgfQpAQCAtMTU1OCw4ICsxNjM4LDEy
IEBACiAJICB9CiAJKnArKyA9IGNoOwogICAgICB9CisjaWZkZWYgVVRGOAorICAgaWYgKHAgIT0g
b3V0KSB3cml0ZV93c3RyaW5nX3dpdGhfY2FyZSAob3V0LCBwLW91dCk7CisjZWxzZQogICAgKnAg
PSAwOwogICAgaWYgKHAgIT0gb3V0KSB3cml0ZV9zdHJpbmdfd2l0aF9jYXJlICgoY2hhciAqKSBv
dXQpOworI2VuZGlmCiAgICBDdXJzb3JfYyArPSAoaW50KSAocCAtIG91dCk7CiB9CiAKQEAgLTE2
ODYsNyArMTc3MCwxMSBAQAogCiAJd2hpbGUgKHFxIDwgcW1heCkKIAkgIHsKKyNpZmRlZiBVVEY4
CisJICAgICBpZiAoU0xTTUdfRVhUUkFDVF9DT0xPUigqcXEpKQorI2Vsc2UKIAkgICAgIGlmICgq
cXEgJiAweEZGMDApCisjZW5kaWYKIAkgICAgICAgewogCQkgIFNMdHRfbm9ybWFsX3ZpZGVvICgp
OwogCQkgIFNMdHRfZGVsX2VvbCAoKTsKQEAgLTE3MDEsNyArMTc4OSwxMSBAQAogICAgLyogRmlu
ZCB3aGVyZSB0aGUgbGFzdCBub24tYmxhbmsgY2hhcmFjdGVyIG9uIG9sZC9uZXcgc2NyZWVuIGlz
ICovCiAKICAgIHNwYWNlX2NoYXIgPSAnICc7CisjaWZkZWYgVVRGOAorICAgaWYgKFNMU01HX0VY
VFJBQ1RfQ0hBUigqKHBtYXgtMSkpID09ICcgJykKKyNlbHNlCiAgICBpZiAoQ0hBUl9FUVMoKihw
bWF4LTEpLCAnICcpKQorI2VuZGlmCiAgICAgIHsKIAkvKiBJZiB3ZSBnZXQgaGVyZSwgdGhlbiB3
ZSBjYW4gZXJhc2UgdG8gdGhlIGVuZCBvZiB0aGUgbGluZSB0byBjcmVhdGUKIAkgKiB0aGUgZmlu
YWwgc3BhY2UuICBIb3dldmVyLCB0aGlzIHdpbGwgb25seSB3b3JrIF9pZl8gZXJhc2luZyB3aWxs
IApAQCAtMTc1Miw3ICsxODQ0LDExIEBACiAgICAgIHsKICNlbmRpZgogCS8qIFRyeSB1c2UgdXNl
IGVyYXNlIHRvIGJvbCBpZiBwb3NzaWJsZSAqLworI2lmZGVmIFVURjgKKwlpZiAoKERlbF9Cb2xf
U3RyICE9IE5VTEwpICYmIChTTFNNR19FWFRSQUNUX0NIQVIoKm5ld3cpID09ICcgJykpCisjZWxz
ZQogCWlmICgoRGVsX0JvbF9TdHIgIT0gTlVMTCkgJiYgKENIQVJfT0YoKm5ld3cpID09ICcgJykp
CisjZW5kaWYKIAkgIHsKIAkgICAgIFNMc21nX0NoYXJfVHlwZSAqcDE7CiAJICAgICBTTHNtZ19D
aGFyX1R5cGUgYmxhbms7CkBAIC0xNzgxLDcgKzE4NzcsMTEgQEAKIAkJICBxID0gb2xkZCArIG9m
czsKIAkJICBwID0gcDE7CiAJCSAgU0x0dF9nb3RvX3JjIChyb3csIG9mcyAtIDEpOworI2lmZGVm
IFVURjgKKwkJICBTTHR0X3JldmVyc2VfdmlkZW8gKFNMU01HX0VYVFJBQ1RfQ09MT1IgKGJsYW5r
KSk7CisjZWxzZQogCQkgIFNMdHRfcmV2ZXJzZV92aWRlbyAoQ09MT1JfT0YoYmxhbmspKTsKKyNl
bmRpZgogCQkgIHR0X3dyaXRlX3N0cmluZyAoRGVsX0JvbF9TdHIpOwogCQkgIHR0X3dyaXRlICgi
ICIsIDEpOwogCQkgIEN1cnNvcl9jICs9IDE7CkBAIC0xOTc4LDcgKzIwNzgsMTEgQEAKIAogICAg
aWYgKHEgPCBxbWF4KSAKICAgICAgeworI2lmZGVmIFVURjgKKwlTTHR0X3JldmVyc2VfdmlkZW8g
KFNMU01HX0VYVFJBQ1RfQ09MT1IgKHNwYWNlX2NoYXIpKTsKKyNlbHNlCiAJU0x0dF9yZXZlcnNl
X3ZpZGVvIChDT0xPUl9PRihzcGFjZV9jaGFyKSk7CisjZW5kaWYKIAlkZWxfZW9sICgpOwogICAg
ICB9CiAgICAK
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29190</attachid>
            <date>2004-04-13 01:01 0000</date>
            <desc>An original patch from Debian for slang to work with Utf-8</desc>
            <filename>slang-debian-utf8.orig.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHNsYW5nLTEuNC40Lm9yaWcvc3JjL3NsaW5jbHVkLmgKKysrIHNsYW5nLTEuNC40L3NyYy9z
bGluY2x1ZC5oCkBAIC0yMyw0ICsyMywxMiBAQAogIyBpbmNsdWRlIDxtZW1vcnkuaD4KICNlbmRp
ZgoKKyNkZWZpbmUgVVRGOCAxCisKKyNpZmRlZiBVVEY4CisjaW5jbHVkZSA8d2NoYXIuaD4KKyNp
bmNsdWRlIDxsaW1pdHMuaD4KKyNlbmRpZiAvKiBVVEY4ICovCisKKwogI2VuZGlmCQkJCSAgICAg
ICAvKiBfU0xBTkdfSU5DTFVERV9IXyAqLwotLS0gc2xhbmctMS40LjQub3JpZy9zcmMvc2xhbmcu
aAorKysgc2xhbmctMS40LjQvc3JjL3NsYW5nLmgKQEAgLTEyMzksMTAgKzEyMzksMjAgQEAKIGV4
dGVybiBpbnQgU0x0dF9Nc2Rvc19DaGVhcF9WaWRlbzsKICNlbmRpZgoKKyNkZWZpbmUgVVRGOCAx
CisKKyNpZmRlZiBVVEY4Cit0eXBlZGVmIGludCBTTHNtZ19DaGFyX1R5cGU7CisjZGVmaW5lIFNM
U01HX0VYVFJBQ1RfQ0hBUih4KSAoKHgpICYgMHhGRkZGRkYpCisjZGVmaW5lIFNMU01HX0VYVFJB
Q1RfQ09MT1IoeCkgKCgoeCk+PjI0KSYweEZGKQorI2RlZmluZSBTTFNNR19CVUlMRF9DSEFSKGNo
LGNvbG9yKSAoKChTTHNtZ19DaGFyX1R5cGUpKHdjaGFyX3QpKGNoKSl8KChjb2xvcik8PDI0KSkK
KyNkZWZpbmUgU0xTTUdfTk9DSEFSIDEKKyNlbHNlCiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFNM
c21nX0NoYXJfVHlwZTsKICNkZWZpbmUgU0xTTUdfRVhUUkFDVF9DSEFSKHgpICgoeCkgJiAweEZG
KQogI2RlZmluZSBTTFNNR19FWFRSQUNUX0NPTE9SKHgpICgoKHgpPj44KSYweEZGKQogI2RlZmlu
ZSBTTFNNR19CVUlMRF9DSEFSKGNoLGNvbG9yKSAoKChTTHNtZ19DaGFyX1R5cGUpKHVuc2lnbmVk
IGNoYXIpKGNoKSl8KChjb2xvcik8PDgpKQorI2VuZGlmIC8qIFVURjggKi8KIAogZXh0ZXJuIGlu
dCBTTHR0X2ZsdXNoX291dHB1dCAodm9pZCk7CiBleHRlcm4gdm9pZCBTTHR0X3NldF9zY3JvbGxf
cmVnaW9uKGludCwgaW50KTsKQEAgLTEzMzQsNyArMTM0MiwxMSBAQAogCiAvKnt7eyBTTHNtZyBT
Y3JlZW4gTWFuYWdlbWVudCBGdW5jdGlvbnMgKi8KIAorI2lmZGVmIFVURjgKK2V4dGVybiB2b2lk
IFNMc21nX2ZpbGxfcmVnaW9uIChpbnQsIGludCwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQs
IHdjaGFyX3QpOworI2Vsc2UKIGV4dGVybiB2b2lkIFNMc21nX2ZpbGxfcmVnaW9uIChpbnQsIGlu
dCwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGNoYXIpOworI2VuZGlmIC8q
IFVURjggKi8KIGV4dGVybiB2b2lkIFNMc21nX3NldF9jaGFyX3NldCAoaW50KTsKICNpZm5kZWYg
SUJNUENfU1lTVEVNCiBleHRlcm4gaW50IFNMc21nX1Njcm9sbF9IYXNoX0JvcmRlcjsKQEAgLTEz
NTEsNyArMTM2MywxMiBAQAogZXh0ZXJuIHZvaWQgU0xzbWdfdnByaW50ZiAoY2hhciAqLCB2YV9s
aXN0KTsKIGV4dGVybiB2b2lkIFNMc21nX3dyaXRlX3N0cmluZyAoY2hhciAqKTsKIGV4dGVybiB2
b2lkIFNMc21nX3dyaXRlX25zdHJpbmcgKGNoYXIgKiwgdW5zaWduZWQgaW50KTsKKyNpZmRlZiBV
VEY4CitleHRlcm4gdm9pZCBTTHNtZ193cml0ZV9jaGFyICh3Y2hhcl90KTsKK2V4dGVybiB2b2lk
IFNMc21nX3dyaXRlX253Y2hhcnMgKHdjaGFyX3QgKiwgdW5zaWduZWQgaW50KTsKKyNlbHNlCiBl
eHRlcm4gdm9pZCBTTHNtZ193cml0ZV9jaGFyIChjaGFyKTsKKyNlbmRpZiAvKiBVVEY4ICovCiBl
eHRlcm4gdm9pZCBTTHNtZ193cml0ZV9uY2hhcnMgKGNoYXIgKiwgdW5zaWduZWQgaW50KTsKIGV4
dGVybiB2b2lkIFNMc21nX3dyaXRlX3dyYXBwZWRfc3RyaW5nIChjaGFyICosIGludCwgaW50LCB1
bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCwgaW50KTsKIGV4dGVybiB2b2lkIFNMc21nX2NscyAo
dm9pZCk7Ci0tLSBzbGFuZy0xLjQuNC5vcmlnL3NyYy9zbGN1cnNlcy5jCisrKyBzbGFuZy0xLjQu
NC9zcmMvc2xjdXJzZXMuYwpAQCAtNDQwLDIwICs0NDAsMTMwIEBACiAKIHN0YXRpYyBpbnQgZG9f
bmV3bGluZSAoU0xjdXJzZXNfV2luZG93X1R5cGUgKncpCiB7Ci0gICB3LT5fY3VyeCA9IDA7Cisg
ICAvKiB3LT5fY3VyeCA9IDA7ICovCiAgICB3LT5fY3VyeSArPSAxOwogICAgaWYgKHctPl9jdXJ5
ID49IHctPnNjcm9sbF9tYXgpCiAgICAgIHsKIAl3LT5fY3VyeSA9IHctPnNjcm9sbF9tYXggLSAx
OwotCWlmICh3LT5zY3JvbGxfb2spCisJaWYgKHctPnNjcm9sbF9vaykgeworCSAgdy0+X2N1cngg
PSAwOwogCSAgU0xjdXJzZXNfd3NjcmwgKHcsIDEpOworCX0KICAgICAgfQorICAgZWxzZQorICAg
ICB3LT5fY3VyeCA9IDA7CisgICAKKyAgIHJldHVybiAwOworfQorCisjaWZkZWYgVVRGOAorc3Rh
dGljIGludCBTTGN1cnNlc193YWRkY2gxIChTTGN1cnNlc19XaW5kb3dfVHlwZSAqd2luLAorCQkJ
ICAgICB3Y2hhcl90IGNoLCBpbnQgY29sb3IpCit7CisgICBTTHNtZ19DaGFyX1R5cGUgKmIsICpi
bWluLCAqYm1heCwgKmM7CisgICBpbnQgazsKKworICAgaWYgKHdpbiA9PSBOVUxMKSByZXR1cm4g
LTE7CisKKyAgIGlmICh3aW4tPl9jdXJ5ID49IHdpbi0+bnJvd3MpCisgICAgIHsKKwkvKiBDdXJz
ZXMgc2VlbXMgdG8gbW92ZSBjdXJyZW50IHBvc3Rpb24gdG8gdG9wIG9mIHdpbmRvdy4gKi8KKwl3
aW4tPl9jdXJ5ID0gd2luLT5fY3VyeCA9IDA7CisJcmV0dXJuIC0xOworICAgICB9CisKKyAgIHdp
bi0+bW9kaWZpZWQgPSAxOworCisgICBpZiAoY2ggPCAnICcpCisgICAgIHsKKwlpZiAoY2ggPT0g
J1xuJykKKwkgIHsKKwkgICAgIFNMY3Vyc2VzX3djbHJ0b2VvbCAod2luKTsKKwkgICAgIHJldHVy
biBkb19uZXdsaW5lICh3aW4pOworCSAgfQorCisJaWYgKGNoID09ICdccicpCisJICB7CisJICAg
ICB3aW4tPl9jdXJ4ID0gMDsKKwkgICAgIHJldHVybiAwOworCSAgfQorCisJaWYgKGNoID09ICdc
YicpCisJICB7CisJICAgICBpZiAod2luLT5fY3VyeCA+IDApCisJICAgICAgIHdpbi0+X2N1cngt
LTsKKworCSAgICAgcmV0dXJuIDA7CisJICB9CisKKwkvKiBIQUNLIEhBQ0shISEhICovCisJaWYg
KGNoID09ICdcdCcpIGNoID0gJyAnOworICAgICB9CisKKyAgIGsgPSB3Y3dpZHRoKGNoKTsKKwor
ICAgaWYgKCFrKQorICAgICByZXR1cm4gMDsgLyogaWdub3JlIGNvbWJpbmluZyBjaGFyYWN0ZXJz
IGZvciBub3cgKi8KKworICAgaWYgKGsgPiB3aW4tPm5jb2xzKQorICAgICByZXR1cm4gMDsgLyog
Y2hhcmFjdGVyIHdpZGVyIHRoYW4gd2luZG93ICovCisKKyAgIGlmICh3aW4tPl9jdXJ4ICsgayA+
IHdpbi0+bmNvbHMpIHsKKyAgICAgaWYgKHdpbi0+X2N1cnggPCB3aW4tPm5jb2xzKQorICAgICAg
IFNMY3Vyc2VzX3djbHJ0b2VvbCh3aW4pOworICAgICBkb19uZXdsaW5lICh3aW4pOworICAgfQor
CisgICBibWluID0gd2luLT5saW5lc1t3aW4tPl9jdXJ5XTsKKyAgIGIgPSBibWluICsgd2luLT5f
Y3VyeDsKKyAgIGJtYXggPSBibWluICsgd2luLT5uY29sczsKKworICAgLyogUmVtb3ZlIG92ZXJ3
cml0dGVuIGNoYXJzIHRvIGxlZnQgKi8KKyAgIGlmICgqYiA9PSBTTFNNR19OT0NIQVIpIHsKKyAg
ICAgZm9yIChjID0gYiAtIDE7IGMgPj0gYm1pbiAmJiAqYyA9PSBTTFNNR19OT0NIQVI7IGMtLSkK
KyAgICAgICAqYyA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLFNMU01HX0VYVFJBQ1RfQ09MT1IoKmMp
KTsKKyAgICAgaWYgKGMgPj0gYm1pbikKKyAgICAgICAqYyA9IFNMU01HX0JVSUxEX0NIQVIoJyAn
LFNMU01HX0VYVFJBQ1RfQ09MT1IoKmMpKTsKKyAgIH0KKworICAgKmIgPSBTTFNNR19CVUlMRF9D
SEFSKGNoLGNvbG9yKTsKKyAgIHdpbi0+X2N1cnggKz0gazsKKyAgIHdoaWxlICgtLWsgPiAwKQor
ICAgICAqKytiID0gU0xTTUdfTk9DSEFSOworCisgICAvKiBSZW1vdmUgb3ZlcndyaXR0ZW4gY2hh
cnMgdG8gcmlnaHQgKi8KKyAgIGZvciAoYyA9IGIgKyAxOyBjIDwgYm1heCAmJiAqYyA9PSBTTFNN
R19OT0NIQVI7IGMrKykKKyAgICAgKmMgPSBTTFNNR19CVUlMRF9DSEFSKCcgJyxTTFNNR19FWFRS
QUNUX0NPTE9SKCpjKSk7CiAKICAgIHJldHVybiAwOwogfQogCiBpbnQgU0xjdXJzZXNfd2FkZGNo
IChTTGN1cnNlc19XaW5kb3dfVHlwZSAqd2luLCBTTHR0X0NoYXJfVHlwZSBhdHRyKQogeworICAg
U0xzbWdfQ2hhcl9UeXBlIGNoLCBjb2xvcjsKKworICAgaWYgKHdpbiA9PSBOVUxMKSByZXR1cm4g
LTE7CisKKyAgIGNoID0gU0xTTUdfRVhUUkFDVF9DSEFSKGF0dHIpOworCisgICBpZiAoYXR0ciA9
PSBjaCkKKyAgICAgY29sb3IgPSB3aW4tPmNvbG9yOworICAgZWxzZQorICAgICB7CisJLyogaGFj
ayB0byBwaWNrIHVwIHRoZSBkZWZhdWx0IGNvbG9yIGZvciBncmFwaGljcyBjaGFycyAqLworCWlm
ICgoKGF0dHIgJiBBX0NPTE9SKSA9PSAwKSAmJiAoKGF0dHIgJiBBX0FMVENIQVJTRVQpICE9IDAp
KQorCSAgeworCSAgICAgLyogRklYTUU6IHByaW9yaXR5PW1lZGl1bTogVXNlIFNMU01HXz8/IGlu
c3RlYWQgb2YgPDwgKi8KKwkgICAgIGF0dHIgfD0gd2luLT5jb2xvciA8PCA4OworCSAgfQorCWNv
bG9yID0gbWFwX2F0dHJfdG9fb2JqZWN0IChhdHRyKTsKKyAgICAgfQorCisgICByZXR1cm4gU0xj
dXJzZXNfd2FkZGNoMSAod2luLCBjaCwgY29sb3IpOworfQorI2Vsc2UKK2ludCBTTGN1cnNlc193
YWRkY2ggKFNMY3Vyc2VzX1dpbmRvd19UeXBlICp3aW4sIFNMdHRfQ2hhcl9UeXBlIGF0dHIpCit7
CiAgICBTTHNtZ19DaGFyX1R5cGUgKmIsIGNoOwogICAgU0xzbWdfQ2hhcl9UeXBlIGNvbG9yOwog
CkBAIC01MTgsNiArNjI4LDcgQEAKIAogICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogVVRGOCAq
LwogCiBpbnQgU0xjdXJzZXNfd25vdXRyZWZyZXNoIChTTGN1cnNlc19XaW5kb3dfVHlwZSAqdykK
IHsKQEAgLTU3Nyw3ICs2ODgsMTEgQEAKIAogaW50IFNMY3Vyc2VzX3djbHJ0b2VvbCAoU0xjdXJz
ZXNfV2luZG93X1R5cGUgKncpCiB7CisjaWZkZWYgVVRGOAorICAgU0xzbWdfQ2hhcl9UeXBlICpi
LCAqYm1pbiwgKmJtYXgsICpjOworI2Vsc2UKICAgIFNMc21nX0NoYXJfVHlwZSAqYiwgKmJtYXg7
CisjZW5kaWYgLyogVVRGOCAqLwogICAgU0xzbWdfQ2hhcl9UeXBlIGJsYW5rOwogCiAgICBpZiAo
dyA9PSBOVUxMKSByZXR1cm4gLTE7CkBAIC01ODgsOSArNzAzLDIzIEBACiAKICAgIGJsYW5rID0g
U0xTTUdfQlVJTERfQ0hBUignICcsdy0+Y29sb3IpOwogCisjaWZkZWYgVVRGOAorICAgYm1pbiA9
IHctPmxpbmVzW3ctPl9jdXJ5XTsKKyAgIGIgPSBibWluICsgdy0+X2N1cng7CisgICBibWF4ID0g
Ym1pbiArIHctPm5jb2xzOworCisgICAvKiBSZW1vdmUgb3ZlcndyaXR0ZW4gY2hhcnMgdG8gbGVm
dCAqLworICAgaWYgKGIgPCBibWF4ICYmICpiID09IFNMU01HX05PQ0hBUikgeworICAgICBmb3Ig
KGMgPSBiIC0gMTsgYyA+PSBibWluICYmICpjID09IFNMU01HX05PQ0hBUjsgYy0tKQorICAgICAg
ICpjID0gU0xTTUdfQlVJTERfQ0hBUignICcsU0xTTUdfRVhUUkFDVF9DT0xPUigqYykpOworICAg
ICBpZiAoYyA+PSBibWluKSAKKyAgICAgICAqYyA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLFNMU01H
X0VYVFJBQ1RfQ09MT1IoKmMpKTsKKyAgIH0KKyNlbHNlCiAgICBiID0gdy0+bGluZXNbdy0+X2N1
cnldOwogICAgYm1heCA9IGIgKyB3LT5uY29sczsKICAgIGIgKz0gdy0+X2N1cng7CisjZW5kaWYg
LyogVVRGOCAqLwogCiAgICB3aGlsZSAoYiA8IGJtYXgpICpiKysgPSBibGFuazsKICAgIHJldHVy
biAwOwpAQCAtNjc3LDYgKzgwNiwzNCBAQAogICAgcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBVVEY4
CisvKiBOb3RlOiBpZiBsZW4gaXMgPCAwLCBlbnRpcmUgc3RyaW5nIHdpbGwgYmUgdXNlZC4KKyAq
LworaW50IFNMY3Vyc2VzX3dhZGRuc3RyIChTTGN1cnNlc19XaW5kb3dfVHlwZSAqdywgY2hhciAq
c3RyLCBpbnQgbGVuKQoreworICAgc2l6ZV90IGs7CisgICB3Y2hhcl90IHdjOworICAgbWJzdGF0
ZV90IG1ic3RhdGU7CisKKyAgIGlmICgodyA9PSBOVUxMKQorICAgICAgIHx8IChzdHIgPT0gTlVM
TCkpCisgICAgIHJldHVybiAtMTsKKworICAgaWYgKGxlbiA8IDApCisgICAgIGxlbiA9IChjaGFy
ICopKC0xKSAtIHN0cjsKKworICAgbWVtc2V0ICgmbWJzdGF0ZSwgMCwgc2l6ZW9mIChtYnN0YXRl
KSk7CisgICB3aGlsZSAoKGsgPSBtYnJ0b3djICgmd2MsIHN0ciwgbGVuLCAmbWJzdGF0ZSkpICYm
CisJICBrICE9IChzaXplX3QpKC0xKSAmJgorCSAgayAhPSAoc2l6ZV90KSgtMikpCisgICAgIHsK
KwlTTGN1cnNlc193YWRkY2gxICh3LCB3Yywgdy0+Y29sb3IpOworCXN0ciArPSBrOworCWxlbiAt
PSBrOworICAgICB9CisgICByZXR1cm4gazsKK30KKyNlbHNlCiAvKiBOb3RlOiBpZiBsZW4gaXMg
PCAwLCBlbnRpcmUgc3RyaW5nIHdpbGwgYmUgdXNlZC4KICAqLwogaW50IFNMY3Vyc2VzX3dhZGRu
c3RyIChTTGN1cnNlc19XaW5kb3dfVHlwZSAqdywgY2hhciAqc3RyLCBpbnQgbGVuKQpAQCAtNzU4
LDYgKzkxNSw3IEBACiAKICAgIHJldHVybiAwOwogfQorI2VuZGlmIC8qIFVURjggKi8KIAogLyog
VGhpcyByb3V0aW5lIElTIE5PVCBDT1JSRUNULiAgSXQgbmVlZHMgdG8gY29tcHV0ZSB0aGUgcHJv
cGVyIG92ZXJsYXAKICAqIGFuZCBjb3B5IGFjY29yZGluZ2x5LiAgSGVyZSwgSSBqdXN0IGFzc3Vt
ZSB3aW5kb3dzIGFyZSBzYW1lIHNpemUuCkBAIC04NTIsMTIgKzEwMTAsMzYgQEAKIAogaW50IFNM
Y3Vyc2VzX3dkZWxjaCAoU0xjdXJzZXNfV2luZG93X1R5cGUgKncpCiB7CisjaWZkZWYgVVRGOAor
ICAgU0xzbWdfQ2hhcl9UeXBlICpwLCAqcDEsICpwbWluLCAqcG1heCwgKnE7CisjZWxzZQogICAg
U0xzbWdfQ2hhcl9UeXBlICpwLCAqcDEsICpwbWF4OworI2VuZGlmIC8qIFVURjggKi8KIAorI2lm
ZGVmIFVURjgKKyAgIHBtaW4gPSB3LT5saW5lc1t3LT5fY3VyeV07CisgICBwID0gcG1pbiArIHct
Pl9jdXJ4OworICAgcG1heCA9IHBtaW4gKyB3LT5uY29sczsKKworICAgLyogUmVtb3ZlIG92ZXJ3
cml0dGVuIGNoYXJzIHRvIGxlZnQgKi8KKyAgIGlmIChwIDwgcG1heCAmJiAqcCA9PSBTTFNNR19O
T0NIQVIpIHsKKyAgICAgZm9yIChxID0gcCAtIDE7IHEgPj0gcG1pbiAmJiAqcSA9PSBTTFNNR19O
T0NIQVI7IHEtLSkKKyAgICAgICAqcSA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLFNMU01HX0VYVFJB
Q1RfQ09MT1IoKnEpKTsKKyAgICAgaWYgKHEgPj0gcG1pbikKKyAgICAgICAqcSA9IFNMU01HX0JV
SUxEX0NIQVIoJyAnLFNMU01HX0VYVFJBQ1RfQ09MT1IoKnEpKTsKKyAgIH0KKworICAgLyogUmVt
b3ZlIG92ZXJ3cml0dGVuIGNoYXJzIHRvIHJpZ2h0ICovCisgICBmb3IgKHEgPSBwICsgMTsgcSA8
IHBtYXggJiYgKnEgPT0gU0xTTUdfTk9DSEFSOyBxKyspCisgICAgICpxID0gU0xTTUdfQlVJTERf
Q0hBUignICcsU0xTTUdfRVhUUkFDVF9DT0xPUigqcSkpOworIAorICAgcDEgPSBwICsgMTsKKyNl
bHNlCiAgICBwID0gdy0+bGluZXNbdy0+X2N1cnldOwogICAgcG1heCA9IHAgKyB3LT5uY29sczsK
ICAgIHAgKz0gdy0+X2N1cng7CiAgICBwMSA9IHAgKyAxOworI2VuZGlmIC8qIFVURjggKi8KIAog
ICAgd2hpbGUgKHAxIDwgcG1heCkKICAgICAgewpAQCAtODg0LDEyICsxMDY2LDEyIEBACiAKICAg
IHdoaWxlIChwbWF4ID4gcCkKICAgICAgewotCSpwbWF4ID0gKnAxOworCSpwbWF4ID0gKnAxOyAv
KiBEb2Vzbid0IHRoaXMgYXNzaWduIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBsaW5lPyAqLwogCXBt
YXggPSBwMTsKIAlwMS0tOwogICAgICB9CiAKLSAgIGlmIChwIDwgcG1heCkKKyAgIGlmIChwIDwg
cG1heCkgLyogSG93IGNvdWxkIGl0IGJlPyAqLwogICAgICAqcCA9IFNMU01HX0JVSUxEX0NIQVIo
Y2gsIHctPmNvbG9yKTsKIAogICAgdy0+bW9kaWZpZWQgPSAxOwotLS0gc2xhbmctMS40LjQub3Jp
Zy9zcmMvc2xzbWcuYworKysgc2xhbmctMS40LjQvc3JjL3Nsc21nLmMKQEAgLTIyNSw2ICsyMjUs
MzggQEAKICAgIFNMc21nX3dyaXRlX25jaGFycyAoc3RyLCBzdHJsZW4gKHN0cikpOwogfQogCisj
aWZkZWYgVVRGOAordm9pZCBTTHNtZ193cml0ZV9uc3RyaW5nIChjaGFyICpzdHIsIHVuc2lnbmVk
IGludCBuKQoreworICAgY2hhciBibGFuayA9ICcgJzsKKyAgIG1ic3RhdGVfdCBtYnN0YXRlOwor
CisgICAvKiBBdm9pZCBhIHByb2JsZW0gaWYgYSB1c2VyIGFjY2lkZW50bHkgcGFzc2VzIGEgbmVn
YXRpdmUgdmFsdWUgKi8KKyAgIGlmICgoaW50KSBuIDwgMCkKKyAgICAgcmV0dXJuOworCisgICBp
ZiAoc3RyICE9IE5VTEwpCisgICAgIHsKKwl3Y2hhcl90IHdjOworCXNpemVfdCBrOworCWludCB3
OworCisJbWVtc2V0ICgmbWJzdGF0ZSwgMCwgc2l6ZW9mIChtYnN0YXRlKSk7CisgICAgICAgIHdo
aWxlICgoayA9IG1icnRvd2MgKCZ3Yywgc3RyLCBNQl9MRU5fTUFYLCAmbWJzdGF0ZSkpICYmCisJ
ICAgICAgIGsgIT0gKHNpemVfdCkoLTEpICYmCisJICAgICAgIGsgIT0gKHNpemVfdCkoLTIpKQor
CSAgeworCSAgICAgdyA9IHdjd2lkdGgod2MpOworCSAgICAgaWYgKHcgPCAwIHx8IHcgPiBuKQor
CSAgICAgICBicmVhazsKKwkgICAgIFNMc21nX3dyaXRlX253Y2hhcnMgKCZ3YywgMSk7CisJICAg
ICBzdHIgKz0gazsKKwkgICAgIG4gLT0gdzsKKwkgIH0KKyAgICAgfQorICAgd2hpbGUgKG4tLSA+
IDApIFNMc21nX3dyaXRlX25jaGFycyAoJmJsYW5rLCAxKTsKK30KKyNlbHNlCiB2b2lkIFNMc21n
X3dyaXRlX25zdHJpbmcgKGNoYXIgKnN0ciwgdW5zaWduZWQgaW50IG4pCiB7CiAgICB1bnNpZ25l
ZCBpbnQgd2lkdGg7CkBAIC0yNDMsNyArMjc1LDExIEBACiAgICAgIH0KICAgIHdoaWxlICh3aWR0
aCsrIDwgbikgU0xzbWdfd3JpdGVfbmNoYXJzICgmYmxhbmssIDEpOwogfQorI2VuZGlmIC8qIFVU
RjggKi8KIAorI2lmZGVmIFVURjgKKy8qIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIG5vdCBVVEY4J2Qg
eWV0IC0gRWRtdW5kICovCisjZW5kaWYgLyogVVRGOCAqLwogdm9pZCBTTHNtZ193cml0ZV93cmFw
cGVkX3N0cmluZyAoY2hhciAqcywgaW50IHIsIGludCBjLAogCQkJCSB1bnNpZ25lZCBpbnQgZHIs
IHVuc2lnbmVkIGludCBkYywKIAkJCQkgaW50IGZpbGwpCkBAIC0zMDIsNiArMzM4LDEyMyBAQAog
aW50IFNMc21nX0Rpc3BsYXlfRWlnaHRfQml0ID0gMTI4OwogI2VuZGlmCiAKKyNpZmRlZiBVVEY4
Cit2b2lkIFNMc21nX3dyaXRlX253Y2hhcnMgKHdjaGFyX3QgKnN0ciwgdW5zaWduZWQgaW50IG4p
Cit7CisgIFNMc21nX0NoYXJfVHlwZSAqcCwgKnByZXYsICpxOworICBpbnQgbGVuLCBtYXhfbGVu
LCB3LCBpOworICB3Y2hhcl90IGNoOworCisjaWZuZGVmIElCTVBDX1NZU1RFTQorICAgaW50IGFs
dF9jaGFyX3NldF9mbGFnOworCisgICBhbHRfY2hhcl9zZXRfZmxhZyA9ICgoVGhpc19Db2xvciAm
IEFMVF9DSEFSX0ZMQUcpCisJCQkmJiAoKHR0X1VzZV9CbGlua19Gb3JfQUNTID09IE5VTEwpCisJ
CQkgICAgfHwgKCp0dF9Vc2VfQmxpbmtfRm9yX0FDUyA9PSAwKSkpOworI2VuZGlmCisKKyAgaWYg
KFNtZ19Jbml0ZWQgPT0gMCkKKyAgICByZXR1cm47CisgIGlmIChUaGlzX1JvdyA8IFN0YXJ0X1Jv
dyB8fCBUaGlzX1JvdyA+PSBTdGFydF9Sb3cgKyBTY3JlZW5fUm93cykKKyAgICByZXR1cm47CisK
KyAgbWF4X2xlbiA9IFN0YXJ0X0NvbCArIFNjcmVlbl9Db2xzOworICBsZW4gPSBUaGlzX0NvbDsK
KyAgcCA9IFNMX1NjcmVlbltUaGlzX1JvdyAtIFN0YXJ0X1Jvd10ubmVldyArIGxlbiAtIFN0YXJ0
X0NvbDsKKyAgcHJldiA9IDA7CisKKyAgZm9yIChpID0gMDsgaSA8IG47IGkrKywgc3RyKSB7Cisg
ICAgY2ggPSAqc3RyKys7CisjaWZuZGVmIElCTVBDX1NZU1RFTQorICAgIGlmIChhbHRfY2hhcl9z
ZXRfZmxhZykKKyAgICAgIGNoID0gQWx0X0NoYXJfU2V0W2NoICYgMHg3Rl07CisjZW5kaWYKKyAg
ICB3ID0gd2N3aWR0aChjaCk7CisKKyAgICBpZiAodyA+IDApIHsKKyAgICAgIGlmIChsZW4gKyB3
IDw9IG1heF9sZW4pIHsKKwlpZiAoIXByZXYpIHsKKwkgIGZvciAocSA9IHA7ICpxID09IFNMU01H
X05PQ0hBUjsgcS0tKQorCSAgICAqcSA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLCBTTFNNR19FWFRS
QUNUX0NPTE9SKCpxKSk7CisJICAqcSA9IFNMU01HX0JVSUxEX0NIQVIoJyAnLCBTTFNNR19FWFRS
QUNUX0NPTE9SKCpxKSk7CisJfQorCXByZXYgPSBwOworCSpwKysgPSBTTFNNR19CVUlMRF9DSEFS
KGNoLCBUaGlzX0NvbG9yKSwgKytsZW47CisJZm9yICg7IC0tdzsgbGVuKyssIHArKykKKwkgICpw
ID0gU0xTTUdfTk9DSEFSOworICAgICAgfQorICAgICAgZWxzZSBpZiAobGVuIDwgbWF4X2xlbikg
eworCWZvciAoOyBsZW4gPCBtYXhfbGVuOyBsZW4rKywgcCsrKQorCSAgKnAgPSBTTFNNR19CVUlM
RF9DSEFSKCcgJywgU0xTTUdfRVhUUkFDVF9DT0xPUigqcCkpOworCXByZXYgPSAwOworICAgICAg
fQorICAgIH0KKyAgICBlbHNlIGlmIChjaCA9PSAnXG4nICYmCisJICAgICBTTHNtZ19OZXdsaW5l
X0JlaGF2aW9yICE9IFNMU01HX05FV0xJTkVfUFJJTlRBQkxFKSB7CisgICAgICBTTF9TY3JlZW5b
VGhpc19Sb3cgLSBTdGFydF9Sb3ddLmZsYWdzIHw9IFRPVUNIRUQ7CisgICAgICBmb3IgKDsgbGVu
IDwgbWF4X2xlbiAmJiAqcCA9PSBTTFNNR19OT0NIQVI7IGxlbisrLCBwKyspCisJKnAgPSBTTFNN
R19CVUlMRF9DSEFSKCcgJywgU0xTTUdfRVhUUkFDVF9DT0xPUigqcCkpOworICAgICAgaWYgKCFT
THNtZ19OZXdsaW5lX0JlaGF2aW9yKQorCWJyZWFrOworICAgICAgKytUaGlzX1JvdzsKKyAgICAg
IGxlbiA9IDA7CisgICAgICBpZiAoVGhpc19Sb3cgPT0gU3RhcnRfUm93ICsgU2NyZWVuX1Jvd3Mp
IHsKKwlpZiAoU0xzbWdfTmV3bGluZV9CZWhhdmlvciA9PSBTTFNNR19ORVdMSU5FX1NDUk9MTFMp
CisJICBzY3JvbGxfdXAoKTsKKwllbHNlCisJICBicmVhazsKKyAgICAgIH0KKyAgICAgIHAgPSBT
TF9TY3JlZW5bVGhpc19Sb3cgLSBTdGFydF9Sb3ddLm5lZXc7CisgICAgICBwcmV2ID0gMDsKKyAg
ICB9CisgICAgZWxzZSBpZiAoY2ggPT0gJ1x0JyAmJiAoU0xzbWdfVGFiX1dpZHRoID4gMCkpIHsK
KyAgICAgIHdoaWxlIChsZW4gPCBtYXhfbGVuKSB7CisJKnAgPSBTTFNNR19CVUlMRF9DSEFSKCcg
JywgU0xTTUdfRVhUUkFDVF9DT0xPUigqcCkpOworCSsrcCwgKytsZW47CisJaWYgKGxlbiAlIFNM
c21nX1RhYl9XaWR0aCA9PSAwKQorCSAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIGVsc2Ug
aWYgKChjaCA9PSAweDgpICYmIFNMc21nX0JhY2tzcGFjZV9Nb3ZlcykgeworICAgICAgLyogbm90
IGltcGxlbWVudGVkICovCisgICAgfQorICAgIGVsc2UgaWYgKCF3ICYmIGNoKSB7CisgICAgICAv
KiB3ZSBjb3VsZCBoYW5kbGUgY29tYmluaW5nIGNoYXJhY3RlcnMgaGVyZSwgdXNpbmcgcHJldiAq
LworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIC8qIHdlIHNob3VsZCBjb252ZXJ0IGNvbnRyb2wg
Y2hhcmFjdGVycyB0byBwcmludGFibGUgZm9ybSBoZXJlICovCisgICAgfQorICB9CisgIFRoaXNf
Q29sID0gbGVuOworICBpZiAoaSA9PSBuKSB7CisgICAgU0xfU2NyZWVuW1RoaXNfUm93IC0gU3Rh
cnRfUm93XS5mbGFncyB8PSBUT1VDSEVEOworICAgIGZvciAoOyBsZW4gPCBtYXhfbGVuICYmICpw
ID09IFNMU01HX05PQ0hBUjsgbGVuKyssIHArKykKKyAgICAgICpwID0gU0xTTUdfQlVJTERfQ0hB
UignICcsIFNMU01HX0VYVFJBQ1RfQ09MT1IoKnApKTsKKyAgfQorfQorCit2b2lkIFNMc21nX3dy
aXRlX2NoYXIgKHdjaGFyX3Qgd2MpCit7CisgICBTTHNtZ193cml0ZV9ud2NoYXJzICgmd2MsIDEp
OworfQorCit2b2lkIFNMc21nX3dyaXRlX25jaGFycyAoY2hhciAqc3RyLCB1bnNpZ25lZCBpbnQg
bikKK3sKKyAgIHdjaGFyX3Qgd2M7CisgICBzaXplX3QgazsKKyAgIG1ic3RhdGVfdCBtYnN0YXRl
OworCisgICBtZW1zZXQgKCZtYnN0YXRlLCAwLCBzaXplb2YgKG1ic3RhdGUpKTsKKyAgIHdoaWxl
ICgoayA9IG1icnRvd2MgKCZ3Yywgc3RyLCBuLCAmbWJzdGF0ZSkpICYmCisJICBrICE9IChzaXpl
X3QpKC0xKSAmJgorCSAgayAhPSAoc2l6ZV90KSgtMikpCisgICAgIHsKKyAgICAgICAgU0xzbWdf
d3JpdGVfbndjaGFycyAoJndjLCAxKTsKKwlzdHIgKz0gazsKKwluIC09IGs7CisgICAgIH0KK30K
KyNlbHNlCiB2b2lkIFNMc21nX3dyaXRlX25jaGFycyAoY2hhciAqc3RyLCB1bnNpZ25lZCBpbnQg
bikKIHsKICAgIHJlZ2lzdGVyIFNMc21nX0NoYXJfVHlwZSAqcCwgb2xkLCBuZWV3LCBjb2xvcjsK
QEAgLTQ3NSw2ICs2MjgsNyBAQAogewogICAgU0xzbWdfd3JpdGVfbmNoYXJzICgmY2gsIDEpOwog
fQorI2VuZGlmIC8qIFVURjggKi8KIAogc3RhdGljIGludCBDbHNfRmxhZzsKIApAQCAtODkxLDYg
KzEwNDUsMTAgQEAKIAkgICAgIFRoaXNfQ29sb3IgPSBjb2xvcjsKIAkgIH0KIAorI2lmZGVmIFVU
RjgKKwkvKiBGSVhNRTogV2Ugc2hvdWxkIGNvbnZlcnQgYnJva2VuIHdpZGUgY2hhcmFjdGVycyB0
byBzcGFjZXMKKwkgICBiZWZvcmUgY2FsbGluZyBzbWFydF9wdXRzICovCisjZW5kaWYgLyogVVRG
OCAqLwogCVNMX1NjcmVlbltpXS5vbGRbU2NyZWVuX0NvbHNdID0gMDsKIAlTTF9TY3JlZW5baV0u
bmVld1tTY3JlZW5fQ29sc10gPSAwOwogCkBAIC0xMzM0LDkgKzE0OTIsMTYgQEAKICAgIFRoaXNf
Um93ID0gcjsgVGhpc19Db2wgPSBjOwogfQogCisjaWZkZWYgVVRGOAordm9pZCBTTHNtZ19maWxs
X3JlZ2lvbiAoaW50IHIsIGludCBjLCB1bnNpZ25lZCBpbnQgZHIsIHVuc2lnbmVkIGludCBkYywg
d2NoYXJfdCBjaCkKK3sKKyAgIHN0YXRpYyB3Y2hhcl90IGhidWZbMTZdOworICAgaW50IGk7Cisj
ZWxzZQogdm9pZCBTTHNtZ19maWxsX3JlZ2lvbiAoaW50IHIsIGludCBjLCB1bnNpZ25lZCBpbnQg
ZHIsIHVuc2lnbmVkIGludCBkYywgdW5zaWduZWQgY2hhciBjaCkKIHsKICAgIHN0YXRpYyB1bnNp
Z25lZCBjaGFyIGhidWZbMTZdOworI2VuZGlmIC8qIFVURjggKi8KICAgIGludCBjb3VudDsKICAg
IGludCBkY21heCwgcm1heDsKIApAQCAtMTM1NywxNiArMTUyMiwzMCBAQAogI2lmIDAKICAgIGNo
ID0gQWx0X0NoYXJfU2V0W2NoXTsKICNlbmRpZgorI2lmZGVmIFVURjgKKyAgIGlmIChjaCAhPSBo
YnVmWzBdKQorICAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykKKyAgICAgICBoYnVmW2ldID0g
Y2g7CisjZWxzZQogICAgaWYgKGNoICE9IGhidWZbMF0pIFNMTUVNU0VUICgoY2hhciAqKSBoYnVm
LCAoY2hhcikgY2gsIDE2KTsKKyNlbmRpZiAvKiBVVEY4ICovCiAKICAgIGZvciAoVGhpc19Sb3cg
PSByOyBUaGlzX1JvdyA8IHJtYXg7IFRoaXNfUm93KyspCiAgICAgIHsKIAlUaGlzX0NvbCA9IGM7
CiAJY291bnQgPSBkYyAvIDE2OworI2lmZGVmIFVURjgKKwlTTHNtZ193cml0ZV9ud2NoYXJzICho
YnVmLCBkYyAlIDE2KTsKKyNlbHNlCiAJU0xzbWdfd3JpdGVfbmNoYXJzICgoY2hhciAqKSBoYnVm
LCBkYyAlIDE2KTsKKyNlbmRpZiAvKiBVVEY4ICovCiAJd2hpbGUgKGNvdW50LS0gPiAwKQogCSAg
eworI2lmZGVmIFVURjgKKwkgICAgIFNMc21nX3dyaXRlX253Y2hhcnMgKGhidWYsIDE2KTsKKyNl
bHNlCiAJICAgICBTTHNtZ193cml0ZV9uY2hhcnMgKChjaGFyICopIGhidWYsIDE2KTsKKyNlbmRp
ZiAvKiBVVEY4ICovCiAJICB9CiAgICAgIH0KIApAQCAtMTM4MSwxNCArMTU2MCwyMiBAQAogdm9p
ZCBTTHNtZ193cml0ZV9jb2xvcl9jaGFycyAoU0xzbWdfQ2hhcl9UeXBlICpzLCB1bnNpZ25lZCBp
bnQgbGVuKQogewogICAgU0xzbWdfQ2hhcl9UeXBlICpzbWF4LCBzaDsKKyNpZmRlZiBVVEY4Cisg
ICB3Y2hhcl90IGJ1ZlszMl0sICpiLCAqYm1heDsKKyNlbHNlCiAgICBjaGFyIGJ1ZlszMl0sICpi
LCAqYm1heDsKKyNlbmRpZiAvKiBVVEY4ICovCiAgICBpbnQgY29sb3IsIHNhdmVfY29sb3I7CiAK
ICAgIGlmIChTbWdfSW5pdGVkID09IDApIHJldHVybjsKIAogICAgc21heCA9IHMgKyBsZW47CiAg
ICBiID0gYnVmOworI2lmZGVmIFVURjgKKyAgIGJtYXggPSBiICsgc2l6ZW9mIChidWYpIC8gc2l6
ZW9mIChTTHNtZ19DaGFyX1R5cGUpOworI2Vsc2UKICAgIGJtYXggPSBiICsgc2l6ZW9mIChidWYp
OworI2VuZGlmIC8qIFVURjggKi8KIAogICAgc2F2ZV9jb2xvciA9IFRoaXNfQ29sb3I7CiAKQEAg
LTE0MTIsMTYgKzE1OTksMjggQEAKIAkgIHsKIAkgICAgIGlmIChiICE9IGJ1ZikKIAkgICAgICAg
eworI2lmZGVmIFVURjgKKwkJICBTTHNtZ193cml0ZV9ud2NoYXJzIChidWYsIChpbnQpIChiIC0g
YnVmKSk7CisjZWxzZQogCQkgIFNMc21nX3dyaXRlX25jaGFycyAoYnVmLCAoaW50KSAoYiAtIGJ1
ZikpOworI2VuZGlmIC8qIFVURjggKi8KIAkJICBiID0gYnVmOwogCSAgICAgICB9CiAJICAgICBU
aGlzX0NvbG9yID0gY29sb3I7CiAJICB9CisjaWZkZWYgVVRGOAorCSpiKysgPSBTTFNNR19FWFRS
QUNUX0NIQVIoc2gpOworI2Vsc2UKIAkqYisrID0gKGNoYXIpIFNMU01HX0VYVFJBQ1RfQ0hBUihz
aCk7CisjZW5kaWYgLyogVVRGOCAqLwogICAgICB9CiAKICAgIGlmIChiICE9IGJ1ZikKKyNpZmRl
ZiBVVEY4CisgICAgIFNMc21nX3dyaXRlX253Y2hhcnMgKGJ1ZiwgKHVuc2lnbmVkIGludCkgKGIg
LSBidWYpKTsKKyNlbHNlCiAgICAgIFNMc21nX3dyaXRlX25jaGFycyAoYnVmLCAodW5zaWduZWQg
aW50KSAoYiAtIGJ1ZikpOworI2VuZGlmIC8qIFVURjggKi8KIAogICAgVGhpc19Db2xvciA9IHNh
dmVfY29sb3I7CiB9CkBAIC0xNDczLDcgKzE2NzIsMTEgQEAKIFNMc21nX3NldF9jb2xvcl9pbl9y
ZWdpb24gKGludCBjb2xvciwgaW50IHIsIGludCBjLCB1bnNpZ25lZCBpbnQgZHIsIHVuc2lnbmVk
IGludCBkYykKIHsKICAgIGludCBjbWF4LCBybWF4OworI2lmZGVmIFVURjgKKyAgIGludCBjb2xv
cl9tYXNrOworI2Vsc2UKICAgIFNMc21nX0NoYXJfVHlwZSBjaGFyX21hc2s7CisjZW5kaWYgLyog
VVRGOCAqLwogCiAgICBpZiAoU21nX0luaXRlZCA9PSAwKSByZXR1cm47CiAKQEAgLTE0OTgsMTQg
KzE3MDEsMjIgQEAKIAkgIGNvbG9yID0gKChjb2xvciAmIDB4N0YpICsgQmNlX0NvbG9yX09mZnNl
dCkgJiAweDdGOwogICAgICB9CiAjZW5kaWYKKyNpZmRlZiBVVEY4CisgICBjb2xvcl9tYXNrID0g
MDsKKyNlbHNlCiAgICBjb2xvciA9IGNvbG9yIDw8IDg7CiAKICAgIGNoYXJfbWFzayA9IDB4RkY7
CisjZW5kaWYgLyogVVRGOCAqLwogCiAjaWZuZGVmIElCTVBDX1NZU1RFTQogICAgaWYgKCh0dF9V
c2VfQmxpbmtfRm9yX0FDUyA9PSBOVUxMKQogICAgICAgIHx8ICgwID09ICp0dF9Vc2VfQmxpbmtf
Rm9yX0FDUykpCisjaWZkZWYgVVRGOAorICAgICBjb2xvcl9tYXNrID0gMHg4MDsKKyNlbHNlCiAg
ICAgIGNoYXJfbWFzayA9IDB4ODBGRjsKKyNlbmRpZiAvKiBVVEY4ICovCiAjZW5kaWYKIAogICAg
d2hpbGUgKHIgPCBybWF4KQpAQCAtMTUxOSw3ICsxNzMwLDEzIEBACiAKIAl3aGlsZSAocyA8IHNt
YXgpCiAJICB7CisjaWZkZWYgVVRGOAorCSAgICAgKnMgPSBTTFNNR19CVUlMRF9DSEFSKFNMU01H
X0VYVFJBQ1RfQ0hBUigqcyksCisJCQkJICAgKFNMU01HX0VYVFJBQ1RfQ09MT1IoKnMpICYgY29s
b3JfbWFzaykKKwkJCQkgICB8IGNvbG9yKTsKKyNlbHNlCiAJICAgICAqcyA9ICgqcyAmIGNoYXJf
bWFzaykgfCBjb2xvcjsKKyNlbmRpZiAvKiBVVEY4ICovCiAJICAgICBzKys7CiAJICB9CiAJcisr
OwotLS0gc2xhbmctMS40LjUvc3JjL01ha2VmaWxlLmluLmZvbwkyMDAyLTA2LTEyIDE5OjMwOjA5
LjAwMDAwMDAwMCAtMDQwMAorKysgc2xhbmctMS40LjUvc3JjL01ha2VmaWxlLmluCTIwMDItMDYt
MTIgMTk6MzE6MTMuMDAwMDAwMDAwIC0wNDAwCkBAIC02Nyw3ICs2Nyw3IEBACiAjLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAjIFRoZXJlIHNob3VsZCBiZSBubyBuZWVkIHRvIGNoYW5nZSBhbnl0aGluZyBi
ZWxvdyBoZXJlLgogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotVEhJU19MSUIJCT0gc2xhbmcjCitUSElT
X0xJQgkJPSBzbGFuZy11dGY4IwogT1RIRVJTVFVGRiAJCT0gCiBUSElTX0xJQl9ERUZJTkVTCT0g
LURTTEFORwogRUxGX01BSk9SX1ZFUlNJT04JPSBAc2xhbmdfbWFqb3JfdmVyc2lvbkAjCi0tLSBz
bGFuZy0xLjQuOS9zcmMvc2xkaXNwbHkuYy5vcmlnCTIwMDMtMTAtMjcgMTc6MjQ6MTUuMDAwMDAw
MDAwIC0wNTAwCisrKyBzbGFuZy0xLjQuOS9zcmMvc2xkaXNwbHkuYwkyMDAzLTEwLTI3IDE3OjU2
OjI1LjAwMDAwMDAwMCAtMDUwMApAQCAtOSw2ICs5LDcgQEAKIAogI2luY2x1ZGUgPHRpbWUuaD4K
ICNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogCiAjaWYgIWRlZmluZWQo
Vk1TKSB8fCAoX19WTVNfVkVSID49IDcwMDAwMDAwKQogIyBpbmNsdWRlIDxzeXMvdGltZS5oPgpA
QCAtMTQyNiwxNCArMTQyNywyNSBAQAogCiAvKiBIaWdoZXN0IGJpdCByZXByZXNlbnRzIHRoZSBj
aGFyYWN0ZXIgc2V0LiAqLwogI2RlZmluZSBDT0xPUl9NQVNLIDB4N0YwMAorI2lmZGVmIFVURjgK
KyMgZGVmaW5lIENPTE9SX09GKHgpIChTTFNNR19FWFRSQUNUX0NPTE9SKHgpICYgMHg3RikKKyNl
bHNlCiAjZGVmaW5lIENPTE9SX09GKHgpICgoKHgpJkNPTE9SX01BU0spPj44KQorI2VuZGlmCiAj
ZGVmaW5lIENIQVJfT0YoeCkgKCh4KSYweDgwRkYpCiAKICNpZiBTTFRUX0hBU19OT05fQkNFX1NV
UFBPUlQKKyNpZmRlZiBVVEY4CitzdGF0aWMgaW50IGJjZV9jb2xvcl9lcXMgKFNMc21nX0NoYXJf
VHlwZSBhLCBTTHNtZ19DaGFyX1R5cGUgYikKK3sKKyAgIGEgPSBTTFNNR19FWFRSQUNUX0NPTE9S
KGEpICYgMHg3RjsKKyAgIGIgPSBTTFNNR19FWFRSQUNUX0NPTE9SKGIpICYgMHg3RjsKKyNlbHNl
CiBzdGF0aWMgaW50IGJjZV9jb2xvcl9lcXMgKHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQg
YikKIHsKICAgIGEgPSBDT0xPUl9PRihhKTsKICAgIGIgPSBDT0xPUl9PRihiKTsKKyNlbmRpZgog
ICAgCiAgICBpZiAoYSA9PSBiKQogICAgICByZXR1cm4gMTsKQEAgLTE0NTksOCArMTQ3MSwxNCBA
QAogICAgIDogIChBbnNpX0NvbG9yX01hcFtDT0xPUl9PRihhKV0ubW9ubyA9PSBBbnNpX0NvbG9y
X01hcFtDT0xPUl9PRihiKV0ubW9ubykpCiAjZW5kaWYKIAorI2lmZGVmIFVURjgKKyNkZWZpbmUg
Q0hBUl9FUVMoYSwgYikgKChhKSA9PSAoYilcCisJCQl8fCAoU0xTTUdfRVhUUkFDVF9DSEFSKGEp
ID09IFNMU01HX0VYVFJBQ1RfQ0hBUihiKVwKKwkJCSAgICAmJiBDT0xPUl9FUVMoKGEpLCAoYikp
KSkKKyNlbHNlCiAjZGVmaW5lIENIQVJfRVFTKGEsIGIpICgoKGEpID09IChiKSlcCiAJCQl8fCAo
KENIQVJfT0YoYSk9PUNIQVJfT0YoYikpICYmIENPTE9SX0VRUyhhLGIpKSkKKyNlbmRpZgogCiAv
KiBUaGUgd2hvbGUgcG9pbnQgb2YgdGhpcyByb3V0aW5lIGlzIHRvIHByZXZlbnQgd3JpdGluZyB0
byB0aGUgbGFzdCBjb2x1bW4KICAqIGFuZCBsYXN0IHJvdyBvbiB0ZXJtaW5hbHMgd2l0aCBhdXRv
bWF0aWMgbWFyZ2lucy4KQEAgLTE0ODgsOSArMTUwNiw1OCBAQAogICAgdHRfd3JpdGUgKHN0ciwg
bGVuKTsKIH0KIAorI2lmZGVmIFVURjgKKy8qIEZJWE1FOiBUaGlzIGR1cGxpY2F0ZXMgdGhlIGZ1
bmN0aW9uIGFib3ZlCisgKi8KK3N0YXRpYyB2b2lkIHdyaXRlX3dzdHJpbmdfd2l0aF9jYXJlIChT
THNtZ19DaGFyX1R5cGUgKnN0ciwgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgIG1ic3RhdGVfdCBt
YnN0YXRlOworCisgICBpZiAoc3RyID09IE5VTEwpIHJldHVybjsKKworICAgaWYgKEF1dG9tYXRp
Y19NYXJnaW5zICYmIChDdXJzb3JfciArIDEgPT0gU0x0dF9TY3JlZW5fUm93cykpCisgICAgIHsK
KwlpZiAobGVuICsgKHVuc2lnbmVkIGludCkgQ3Vyc29yX2MgPj0gKHVuc2lnbmVkIGludCkgU0x0
dF9TY3JlZW5fQ29scykKKwkgIHsKKwkgICAgIC8qIEZvciBub3csIGp1c3QgZG8gbm90IHdyaXRl
IHRoZXJlLiAgTGF0ZXIsIHNvbWV0aGluZyBtb3JlCisJICAgICAgKiBzb3BoaXN0aWNhdGVkIHdp
bGwgYmUgaW1wbGVtZW50ZWQuCisJICAgICAgKi8KKwkgICAgIGlmIChTTHR0X1NjcmVlbl9Db2xz
ID4gQ3Vyc29yX2MpCisJICAgICAgIHsKKwkJICBsZW4gPSBTTHR0X1NjcmVlbl9Db2xzIC0gQ3Vy
c29yX2MgLSAxOworCQkgIHdoaWxlIChsZW4gPiAwICYmIHN0cltsZW5dID09IFNMU01HX05PQ0hB
UikKKwkJICAgIC0tbGVuOworCSAgICAgICB9CisJICAgICBlbHNlIGxlbiA9IDA7CisJICB9Cisg
ICAgIH0KKworICAgbWVtc2V0ICgmbWJzdGF0ZSwgMCwgc2l6ZW9mIChtYnN0YXRlKSk7CisgICB3
aGlsZSAobGVuLS0pCisgICAgIHsKKyAgICAgICAgU0xzbWdfQ2hhcl9UeXBlIGMgPSAqc3RyKys7
CisJY2hhciBidWZbTUJfTEVOX01BWF07CisJc2l6ZV90IG47CisKKwlpZiAoYyA9PSBTTFNNR19O
T0NIQVIpCisJICBjb250aW51ZTsKKworCW4gPSB3Y3J0b21iIChidWYsIGMsICZtYnN0YXRlKTsK
KwlpZiAobiA9PSAoc2l6ZV90KSgtMSkpCisJICBicmVhazsKKworCXR0X3dyaXRlKGJ1Ziwgbik7
CisgICAgIH0KK30KKyNlbmRpZiAvKiBVVEY4ICovCisKIHN0YXRpYyB2b2lkIHNlbmRfYXR0cl9z
dHIgKFNMc21nX0NoYXJfVHlwZSAqcykKIHsKKyNpZmRlZiBVVEY4CisgICBTTHNtZ19DaGFyX1R5
cGUgb3V0W1NMVFRfTUFYX1NDUkVFTl9DT0xTXSwgY2gsICpwOworI2Vsc2UKICAgIHVuc2lnbmVk
IGNoYXIgb3V0W1NMVFRfTUFYX1NDUkVFTl9DT0xTXSwgY2gsICpwOworI2VuZGlmIC8qIFVURjgg
Ki8KICAgIHJlZ2lzdGVyIFNMdHRfQ2hhcl9UeXBlIGF0dHI7CiAgICByZWdpc3RlciBTTHNtZ19D
aGFyX1R5cGUgc2g7CiAgICBpbnQgY29sb3IsIGxhc3RfY29sb3IgPSAtMTsKQEAgLTE0OTgsOCAr
MTU2NSwxMyBAQAogICAgcCA9IG91dDsKICAgIHdoaWxlICgwICE9IChzaCA9ICpzKyspKQogICAg
ICB7CisjaWZkZWYgVVRGOAorCWNoID0gU0xTTUdfRVhUUkFDVF9DSEFSKHNoKTsKKwljb2xvciA9
IFNMU01HX0VYVFJBQ1RfQ09MT1Ioc2gpOworI2Vsc2UKIAljaCA9IHNoICYgMHhGRjsKIAljb2xv
ciA9ICgoaW50KSBzaCAmIDB4RkYwMCkgPj4gODsKKyNlbmRpZgogCiAjaWYgU0xUVF9IQVNfTk9O
X0JDRV9TVVBQT1JUCiAJaWYgKEJjZV9Db2xvcl9PZmZzZXQKQEAgLTE1MTEsOCArMTU4MywxMiBA
QAogCSAgewogCSAgICAgaWYgKFNMdHRfVXNlX0Fuc2lfQ29sb3JzKSBhdHRyID0gQW5zaV9Db2xv
cl9NYXBbY29sb3IgJiAweDdGXS5mZ2JnOwogCSAgICAgZWxzZSBhdHRyID0gQW5zaV9Db2xvcl9N
YXBbY29sb3IgJiAweDdGXS5tb25vOwotCisgCisjaWZkZWYgVVRGOAorCSAgICAgaWYgKFNMU01H
X0VYVFJBQ1RfQ09MT1Ioc2gpICYgMHg4MCkgLyogYWx0ZXJuYXRlIGNoYXIgc2V0ICovCisjZWxz
ZQogCSAgICAgaWYgKHNoICYgMHg4MDAwKSAvKiBhbHRlcm5hdGUgY2hhciBzZXQgKi8KKyNlbmRp
ZgogCSAgICAgICB7CiAJCSAgaWYgKFNMdHRfVXNlX0JsaW5rX0Zvcl9BQ1MpCiAJCSAgICB7CkBA
IC0xNTM0LDggKzE2MTAsMTIgQEAKIAkJICAgIHsKIAkJICAgICAgIGlmIChwICE9IG91dCkKIAkJ
CSB7CisjaWZkZWYgVVRGOAorCQkJICAgIHdyaXRlX3dzdHJpbmdfd2l0aF9jYXJlIChvdXQsIHAt
b3V0KTsKKyNlbHNlCiAJCQkgICAgKnAgPSAwOwogCQkJICAgIHdyaXRlX3N0cmluZ193aXRoX2Nh
cmUgKChjaGFyICopIG91dCk7CisjZW5kaWYKIAkJCSAgICBDdXJzb3JfYyArPSAoaW50KSAocCAt
IG91dCk7CiAJCQkgICAgcCA9IG91dDsKIAkJCSB9CkBAIC0xNTU4LDggKzE2MzgsMTIgQEAKIAkg
IH0KIAkqcCsrID0gY2g7CiAgICAgIH0KKyNpZmRlZiBVVEY4CisgICBpZiAocCAhPSBvdXQpIHdy
aXRlX3dzdHJpbmdfd2l0aF9jYXJlIChvdXQsIHAtb3V0KTsKKyNlbHNlCiAgICAqcCA9IDA7CiAg
ICBpZiAocCAhPSBvdXQpIHdyaXRlX3N0cmluZ193aXRoX2NhcmUgKChjaGFyICopIG91dCk7Cisj
ZW5kaWYKICAgIEN1cnNvcl9jICs9IChpbnQpIChwIC0gb3V0KTsKIH0KIApAQCAtMTY4Niw3ICsx
NzcwLDExIEBACiAKIAl3aGlsZSAocXEgPCBxbWF4KQogCSAgeworI2lmZGVmIFVURjgKKwkgICAg
IGlmIChTTFNNR19FWFRSQUNUX0NPTE9SKCpxcSkpCisjZWxzZQogCSAgICAgaWYgKCpxcSAmIDB4
RkYwMCkKKyNlbmRpZgogCSAgICAgICB7CiAJCSAgU0x0dF9ub3JtYWxfdmlkZW8gKCk7CiAJCSAg
U0x0dF9kZWxfZW9sICgpOwpAQCAtMTcwMSw3ICsxNzg5LDExIEBACiAgICAvKiBGaW5kIHdoZXJl
IHRoZSBsYXN0IG5vbi1ibGFuayBjaGFyYWN0ZXIgb24gb2xkL25ldyBzY3JlZW4gaXMgKi8KIAog
ICAgc3BhY2VfY2hhciA9ICcgJzsKKyNpZmRlZiBVVEY4CisgICBpZiAoU0xTTUdfRVhUUkFDVF9D
SEFSKCoocG1heC0xKSkgPT0gJyAnKQorI2Vsc2UKICAgIGlmIChDSEFSX0VRUygqKHBtYXgtMSks
ICcgJykpCisjZW5kaWYKICAgICAgewogCS8qIElmIHdlIGdldCBoZXJlLCB0aGVuIHdlIGNhbiBl
cmFzZSB0byB0aGUgZW5kIG9mIHRoZSBsaW5lIHRvIGNyZWF0ZQogCSAqIHRoZSBmaW5hbCBzcGFj
ZS4gIEhvd2V2ZXIsIHRoaXMgd2lsbCBvbmx5IHdvcmsgX2lmXyBlcmFzaW5nIHdpbGwgCkBAIC0x
NzUyLDcgKzE4NDQsMTEgQEAKICAgICAgewogI2VuZGlmCiAJLyogVHJ5IHVzZSB1c2UgZXJhc2Ug
dG8gYm9sIGlmIHBvc3NpYmxlICovCisjaWZkZWYgVVRGOAorCWlmICgoRGVsX0JvbF9TdHIgIT0g
TlVMTCkgJiYgKFNMU01HX0VYVFJBQ1RfQ0hBUigqbmV3dykgPT0gJyAnKSkKKyNlbHNlCiAJaWYg
KChEZWxfQm9sX1N0ciAhPSBOVUxMKSAmJiAoQ0hBUl9PRigqbmV3dykgPT0gJyAnKSkKKyNlbmRp
ZgogCSAgewogCSAgICAgU0xzbWdfQ2hhcl9UeXBlICpwMTsKIAkgICAgIFNMc21nX0NoYXJfVHlw
ZSBibGFuazsKQEAgLTE3ODEsNyArMTg3NywxMSBAQAogCQkgIHEgPSBvbGRkICsgb2ZzOwogCQkg
IHAgPSBwMTsKIAkJICBTTHR0X2dvdG9fcmMgKHJvdywgb2ZzIC0gMSk7CisjaWZkZWYgVVRGOAor
CQkgIFNMdHRfcmV2ZXJzZV92aWRlbyAoU0xTTUdfRVhUUkFDVF9DT0xPUiAoYmxhbmspKTsKKyNl
bHNlCiAJCSAgU0x0dF9yZXZlcnNlX3ZpZGVvIChDT0xPUl9PRihibGFuaykpOworI2VuZGlmCiAJ
CSAgdHRfd3JpdGVfc3RyaW5nIChEZWxfQm9sX1N0cik7CiAJCSAgdHRfd3JpdGUgKCIgIiwgMSk7
CiAJCSAgQ3Vyc29yX2MgKz0gMTsKQEAgLTE5NzgsNyArMjA3OCwxMSBAQAogCiAgICBpZiAocSA8
IHFtYXgpIAogICAgICB7CisjaWZkZWYgVVRGOAorCVNMdHRfcmV2ZXJzZV92aWRlbyAoU0xTTUdf
RVhUUkFDVF9DT0xPUiAoc3BhY2VfY2hhcikpOworI2Vsc2UKIAlTTHR0X3JldmVyc2VfdmlkZW8g
KENPTE9SX09GKHNwYWNlX2NoYXIpKTsKKyNlbmRpZgogCWRlbF9lb2wgKCk7CiAgICAgIH0KICAg
IAo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29191</attachid>
            <date>2004-04-13 01:02 0000</date>
            <desc>RH patches</desc>
            <filename>slang-utf8-acs.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHNsYW5nLTEuNC41L3NyYy9zbGFuZy5oLmFjcwkyMDAyLTA3LTA5IDAwOjAzOjU3LjAwMDAw
MDAwMCAtMDQwMAorKysgc2xhbmctMS40LjUvc3JjL3NsYW5nLmgJMjAwMi0wNy0wOSAwMDoxMTow
Ni4wMDAwMDAwMDAgLTA0MDAKQEAgLTEyNTUsNiArMTI1NSw4IEBACiAKICNpZmRlZiBVVEY4CiB0
eXBlZGVmIGludCBTTHNtZ19DaGFyX1R5cGU7CitleHRlcm4gU0x0dF9DaGFyX1R5cGUgU0xjdXJz
ZXNfQWNzX01hcCBbMTI4XTsKKyNkZWZpbmUgYWNzX21hcCBTTGN1cnNlc19BY3NfTWFwCiAjZGVm
aW5lIFNMU01HX0VYVFJBQ1RfQ0hBUih4KSAoKHgpICYgMHhGRkZGRkYpCiAjZGVmaW5lIFNMU01H
X0VYVFJBQ1RfQ09MT1IoeCkgKCgoeCk+PjI0KSYweEZGKQogI2RlZmluZSBTTFNNR19CVUlMRF9D
SEFSKGNoLGNvbG9yKSAoKChTTHNtZ19DaGFyX1R5cGUpKHdjaGFyX3QpKGNoKSl8KChjb2xvcik8
PDI0KSkKQEAgLTEzOTYsNyArMTM5OCwxMSBAQAogZXh0ZXJuIHZvaWQgU0xzbWdfc2V0X3NjcmVl
bl9zdGFydCAoaW50ICosIGludCAqKTsKIGV4dGVybiB2b2lkIFNMc21nX2RyYXdfaGxpbmUgKHVu
c2lnbmVkIGludCk7CiBleHRlcm4gdm9pZCBTTHNtZ19kcmF3X3ZsaW5lIChpbnQpOworI2lmZGVm
IFVURjgKK2V4dGVybiB2b2lkIFNMc21nX2RyYXdfb2JqZWN0IChpbnQsIGludCwgU0xzbWdfQ2hh
cl9UeXBlKTsKKyNlbHNlCiBleHRlcm4gdm9pZCBTTHNtZ19kcmF3X29iamVjdCAoaW50LCBpbnQs
IHVuc2lnbmVkIGNoYXIpOworI2VuZGlmCiBleHRlcm4gdm9pZCBTTHNtZ19kcmF3X2JveCAoaW50
LCBpbnQsIHVuc2lnbmVkIGludCwgdW5zaWduZWQgaW50KTsKIGV4dGVybiBpbnQgU0xzbWdfZ2V0
X2NvbHVtbih2b2lkKTsKIGV4dGVybiBpbnQgU0xzbWdfZ2V0X3Jvdyh2b2lkKTsKQEAgLTE0MDgs
NiArMTQxNCw5IEBACiBleHRlcm4gaW50IFNMc21nX0Rpc3BsYXlfRWlnaHRfQml0OwogZXh0ZXJu
IGludCBTTHNtZ19UYWJfV2lkdGg7CiAKK2V4dGVybiBpbnQgU0xzbWdfSXNfVW5pY29kZTsKK2V4
dGVybiBpbnQgU0xzbWdfU2V0bG9jYWxlOworCiAjZGVmaW5lIFNMU01HX05FV0xJTkVfSUdOT1JF
RAkwICAgICAgLyogZGVmYXVsdCAqLwogI2RlZmluZSBTTFNNR19ORVdMSU5FX01PVkVTCTEgICAg
ICAvKiBtb3ZlcyB0byBuZXh0IGxpbmUsIGNvbHVtbiAwICovCiAjZGVmaW5lIFNMU01HX05FV0xJ
TkVfU0NST0xMUwkyICAgICAgLyogbW92ZXMgYnV0IHNjcm9sbHMgYXQgYm90dG9tIG9mIHNjcmVl
biAqLwpAQCAtMTQ2NSwzMSArMTQ3NCw3OSBAQAogIyAgZGVmaW5lIFNMU01HX0JPQVJEX0NIQVIJ
JyMnCiAjICBkZWZpbmUgU0xTTUdfQkxPQ0tfQ0hBUgknIycKICMgZWxzZQotIyAgZGVmaW5lIFNM
U01HX0hMSU5FX0NIQVIJJ3EnCi0jICBkZWZpbmUgU0xTTUdfVkxJTkVfQ0hBUgkneCcKLSMgIGRl
ZmluZSBTTFNNR19VTENPUk5fQ0hBUgknbCcKLSMgIGRlZmluZSBTTFNNR19VUkNPUk5fQ0hBUgkn
aycKLSMgIGRlZmluZSBTTFNNR19MTENPUk5fQ0hBUgknbScKLSMgIGRlZmluZSBTTFNNR19MUkNP
Uk5fQ0hBUgknaicKLSMgIGRlZmluZSBTTFNNR19DS0JSRF9DSEFSCSdhJwotIyAgZGVmaW5lIFNM
U01HX1JURUVfQ0hBUgkndScKLSMgIGRlZmluZSBTTFNNR19MVEVFX0NIQVIJJ3QnCi0jICBkZWZp
bmUgU0xTTUdfVVRFRV9DSEFSCSd3JwotIyAgZGVmaW5lIFNMU01HX0RURUVfQ0hBUgkndicKLSMg
IGRlZmluZSBTTFNNR19QTFVTX0NIQVIJJ24nCi0jICBkZWZpbmUgU0xTTUdfRElBTU9ORF9DSEFS
CSdgJwotIyAgZGVmaW5lIFNMU01HX0RFR1JFRV9DSEFSCSdmJwotIyAgZGVmaW5lIFNMU01HX1BM
TUlOVVNfQ0hBUgknZycKLSMgIGRlZmluZSBTTFNNR19CVUxMRVRfQ0hBUgknficKLSMgIGRlZmlu
ZSBTTFNNR19MQVJST1dfQ0hBUgknLCcKLSMgIGRlZmluZSBTTFNNR19SQVJST1dfQ0hBUgknKycK
LSMgIGRlZmluZSBTTFNNR19EQVJST1dfQ0hBUgknLicKLSMgIGRlZmluZSBTTFNNR19VQVJST1df
Q0hBUgknLScKLSMgIGRlZmluZSBTTFNNR19CT0FSRF9DSEFSCSdoJwotIyAgZGVmaW5lIFNMU01H
X0JMT0NLX0NIQVIJJzAnCisjICBkZWZpbmUgU0xTTUdfSExJTkVfQ0hBUgkoYWNzX21hcFsncSdd
KQorIyAgZGVmaW5lIFNMU01HX1ZMSU5FX0NIQVIJKGFjc19tYXBbJ3gnXSkKKyMgIGRlZmluZSBT
TFNNR19VTENPUk5fQ0hBUgkoYWNzX21hcFsnbCddKQorIyAgZGVmaW5lIFNMU01HX1VSQ09STl9D
SEFSCShhY3NfbWFwWydrJ10pCisjICBkZWZpbmUgU0xTTUdfTExDT1JOX0NIQVIJKGFjc19tYXBb
J20nXSkKKyMgIGRlZmluZSBTTFNNR19MUkNPUk5fQ0hBUgkoYWNzX21hcFsnaiddKQorIyAgZGVm
aW5lIFNMU01HX0NLQlJEX0NIQVIJKGFjc19tYXBbJ2EnXSkKKyMgIGRlZmluZSBTTFNNR19SVEVF
X0NIQVIJKGFjc19tYXBbJ3UnXSkKKyMgIGRlZmluZSBTTFNNR19MVEVFX0NIQVIJKGFjc19tYXBb
J3QnXSkKKyMgIGRlZmluZSBTTFNNR19VVEVFX0NIQVIJKGFjc19tYXBbJ3YnXSkKKyMgIGRlZmlu
ZSBTTFNNR19EVEVFX0NIQVIJKGFjc19tYXBbJ3cnXSkKKyMgIGRlZmluZSBTTFNNR19QTFVTX0NI
QVIJKGFjc19tYXBbJ24nXSkKKyMgIGRlZmluZSBTTFNNR19ESUFNT05EX0NIQVIJKGFjc19tYXBb
J2AnXSkKKyMgIGRlZmluZSBTTFNNR19ERUdSRUVfQ0hBUgkoYWNzX21hcFsnZiddKQorIyAgZGVm
aW5lIFNMU01HX1BMTUlOVVNfQ0hBUgkoYWNzX21hcFsnZyddKQorIyAgZGVmaW5lIFNMU01HX0JV
TExFVF9DSEFSCShhY3NfbWFwWyd+J10pCisjICBkZWZpbmUgU0xTTUdfTEFSUk9XX0NIQVIJKGFj
c19tYXBbJywnXSkKKyMgIGRlZmluZSBTTFNNR19SQVJST1dfQ0hBUgkoYWNzX21hcFsnKyddKQor
IyAgZGVmaW5lIFNMU01HX0RBUlJPV19DSEFSCShhY3NfbWFwWycuJ10pCisjICBkZWZpbmUgU0xT
TUdfVUFSUk9XX0NIQVIJKGFjc19tYXBbJy0nXSkKKyMgIGRlZmluZSBTTFNNR19CT0FSRF9DSEFS
CShhY3NfbWFwWydoJ10pCisjICBkZWZpbmUgU0xTTUdfQkxPQ0tfQ0hBUgkoYWNzX21hcFsnMCdd
KQorIworIyAgZGVmaW5lIFNMU01HX0hMSU5FX0NIQVJfVEVSTQkncScKKyMgIGRlZmluZSBTTFNN
R19WTElORV9DSEFSX1RFUk0JJ3gnCisjICBkZWZpbmUgU0xTTUdfVUxDT1JOX0NIQVJfVEVSTQkn
bCcKKyMgIGRlZmluZSBTTFNNR19VUkNPUk5fQ0hBUl9URVJNCSdrJworIyAgZGVmaW5lIFNMU01H
X0xMQ09STl9DSEFSX1RFUk0JJ20nCisjICBkZWZpbmUgU0xTTUdfTFJDT1JOX0NIQVJfVEVSTQkn
aicKKyMgIGRlZmluZSBTTFNNR19DS0JSRF9DSEFSX1RFUk0JJ2EnCisjICBkZWZpbmUgU0xTTUdf
UlRFRV9DSEFSX1RFUk0JJ3UnCisjICBkZWZpbmUgU0xTTUdfTFRFRV9DSEFSX1RFUk0JJ3QnCisj
ICBkZWZpbmUgU0xTTUdfVVRFRV9DSEFSX1RFUk0JJ3YnCisjICBkZWZpbmUgU0xTTUdfRFRFRV9D
SEFSX1RFUk0JJ3cnCisjICBkZWZpbmUgU0xTTUdfUExVU19DSEFSX1RFUk0JJ24nCisjICBkZWZp
bmUgU0xTTUdfRElBTU9ORF9DSEFSX1RFUk0JJ2AnCisjICBkZWZpbmUgU0xTTUdfREVHUkVFX0NI
QVJfVEVSTQknZicKKyMgIGRlZmluZSBTTFNNR19QTE1JTlVTX0NIQVJfVEVSTQknZycKKyMgIGRl
ZmluZSBTTFNNR19CVUxMRVRfQ0hBUl9URVJNCSd+JworIyAgZGVmaW5lIFNMU01HX0xBUlJPV19D
SEFSX1RFUk0JJywnCisjICBkZWZpbmUgU0xTTUdfUkFSUk9XX0NIQVJfVEVSTQknKycKKyMgIGRl
ZmluZSBTTFNNR19EQVJST1dfQ0hBUl9URVJNCScuJworIyAgZGVmaW5lIFNMU01HX1VBUlJPV19D
SEFSX1RFUk0JJy0nCisjICBkZWZpbmUgU0xTTUdfQk9BUkRfQ0hBUl9URVJNCSdoJworIyAgZGVm
aW5lIFNMU01HX0JMT0NLX0NIQVJfVEVSTQknMCcKICMgZW5kaWYJCQkJICAgICAgIC8qIEFNSUdB
ICovCiAjZW5kaWYJCQkJICAgICAgIC8qIElCTVBDX1NZU1RFTSAqLwogCisjaWZkZWYgVVRGOAor
IyBkZWZpbmUgU0xTTUdfSExJTkVfQ0hBUl9VTklDT0RFCTB4MjUwMAorIyBkZWZpbmUgU0xTTUdf
VkxJTkVfQ0hBUl9VTklDT0RFCTB4MjUwMgorIyBkZWZpbmUgU0xTTUdfVUxDT1JOX0NIQVJfVU5J
Q09ERQkweDI1MGMKKyMgZGVmaW5lIFNMU01HX1VSQ09STl9DSEFSX1VOSUNPREUJMHgyNTEwCisj
IGRlZmluZSBTTFNNR19MTENPUk5fQ0hBUl9VTklDT0RFCTB4MjUxNAorIyBkZWZpbmUgU0xTTUdf
TFJDT1JOX0NIQVJfVU5JQ09ERQkweDI1MTgKKyMgZGVmaW5lIFNMU01HX1JURUVfQ0hBUl9VTklD
T0RFCTB4MjUyNAorIyBkZWZpbmUgU0xTTUdfTFRFRV9DSEFSX1VOSUNPREUJMHgyNTFjCisjIGRl
ZmluZSBTTFNNR19VVEVFX0NIQVJfVU5JQ09ERQkweDI1MzQKKyMgZGVmaW5lIFNMU01HX0RURUVf
Q0hBUl9VTklDT0RFCTB4MjUyYworIyBkZWZpbmUgU0xTTUdfUExVU19DSEFSX1VOSUNPREUJMHgy
NTNjCisjIGRlZmluZSBTTFNNR19DS0JSRF9DSEFSX1VOSUNPREUJMHgyNTkyCisjIGRlZmluZSBT
TFNNR19ESUFNT05EX0NIQVJfVU5JQ09ERQkweDI1YzYKKyMgZGVmaW5lIFNMU01HX0RFR1JFRV9D
SEFSX1VOSUNPREUJMHgwMGIwCisjIGRlZmluZSBTTFNNR19QTE1JTlVTX0NIQVJfVU5JQ09ERQkw
eDAwYjEKKyMgZGVmaW5lIFNMU01HX0JVTExFVF9DSEFSX1VOSUNPREUJMHgwMGI3CisjIGRlZmlu
ZSBTTFNNR19MQVJST1dfQ0hBUl9VTklDT0RFCTB4MjE5MAorIyBkZWZpbmUgU0xTTUdfUkFSUk9X
X0NIQVJfVU5JQ09ERQkweDIxOTIKKyMgZGVmaW5lIFNMU01HX0RBUlJPV19DSEFSX1VOSUNPREUJ
MHgyMTkzCisjIGRlZmluZSBTTFNNR19VQVJST1dfQ0hBUl9VTklDT0RFCTB4MjE5MQorIyBkZWZp
bmUgU0xTTUdfQk9BUkRfQ0hBUl9VTklDT0RFCTB4MjU5MgorIyBkZWZpbmUgU0xTTUdfQkxPQ0tf
Q0hBUl9VTklDT0RFCTB4MjVhZQorI2VuZGlmCisKICNpZm5kZWYgSUJNUENfU1lTVEVNCiAjIGRl
ZmluZSBTTFNNR19DT0xPUl9CTEFDSwkJMHgwMDAwMDAKICMgZGVmaW5lIFNMU01HX0NPTE9SX1JF
RAkJMHgwMDAwMDEKLS0tIHNsYW5nLTEuNC41L3NyYy9zbGN1cnNlcy5jLmFjcwkyMDAyLTA3LTA5
IDAwOjAzOjU3LjAwMDAwMDAwMCAtMDQwMAorKysgc2xhbmctMS40LjUvc3JjL3NsY3Vyc2VzLmMJ
MjAwMi0wNy0wOSAwMDowOTowMy4wMDAwMDAwMDAgLTA0MDAKQEAgLTMzMSw0MCArMzMxLDYzIEBA
CiAgICAvKiBTTHR0X3NldF9tb25vIChBX0JMSU5LID4+IDgsIE5VTEwsIFNMVFRfQkxJTktfTUFT
Syk7ICovCiAgICBTTHR0X3NldF9tb25vICgoQV9CT0xEfEFfVU5ERVJMSU5FKSA+PiA4LCBOVUxM
LCBTTFRUX1VMSU5FX01BU0t8U0xUVF9CT0xEX01BU0spOwogICAgU0x0dF9zZXRfbW9ubyAoKEFf
UkVWRVJTRXxBX1VOREVSTElORSkgPj4gOCwgTlVMTCwgU0xUVF9VTElORV9NQVNLfFNMVFRfUkVW
X01BU0spOworICAgCisgICBTTGN1cnNlc19pbml0X2Fjc19tYXAoKTsKKworICAgcmV0dXJuIFNM
Y3Vyc2VzX1N0ZHNjcjsKK30KIAordm9pZCBTTGN1cnNlc19pbml0X2Fjc19tYXAoKQorewogICAg
aWYgKFNMdHRfSGFzX0FsdF9DaGFyc2V0KQogICAgICB7Ci0gICAgICAgU0xjdXJzZXNfQWNzX01h
cFtTTFNNR19VTENPUk5fQ0hBUl0gPSBTTFNNR19VTENPUk5fQ0hBUiB8IEFfQUxUQ0hBUlNFVDsK
LSAgICAgICBTTGN1cnNlc19BY3NfTWFwW1NMU01HX1VSQ09STl9DSEFSXSA9IFNMU01HX1VSQ09S
Tl9DSEFSIHwgQV9BTFRDSEFSU0VUOwotICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbU0xTTUdfTExD
T1JOX0NIQVJdID0gU0xTTUdfTExDT1JOX0NIQVIgfCBBX0FMVENIQVJTRVQ7Ci0gICAgICAgU0xj
dXJzZXNfQWNzX01hcFtTTFNNR19MUkNPUk5fQ0hBUl0gPSBTTFNNR19MUkNPUk5fQ0hBUiB8IEFf
QUxUQ0hBUlNFVDsKLSAgICAgICBTTGN1cnNlc19BY3NfTWFwW1NMU01HX1VURUVfQ0hBUl0gPSBT
TFNNR19VVEVFX0NIQVIgfCBBX0FMVENIQVJTRVQ7Ci0gICAgICAgU0xjdXJzZXNfQWNzX01hcFtT
TFNNR19EVEVFX0NIQVJdID0gU0xTTUdfRFRFRV9DSEFSIHwgQV9BTFRDSEFSU0VUOwotICAgICAg
IFNMY3Vyc2VzX0Fjc19NYXBbU0xTTUdfTFRFRV9DSEFSXSA9IFNMU01HX0xURUVfQ0hBUiB8IEFf
QUxUQ0hBUlNFVDsKLSAgICAgICBTTGN1cnNlc19BY3NfTWFwW1NMU01HX1JURUVfQ0hBUl0gPSBT
TFNNR19SVEVFX0NIQVIgfCBBX0FMVENIQVJTRVQ7Ci0gICAgICAgU0xjdXJzZXNfQWNzX01hcFtT
TFNNR19WTElORV9DSEFSXSA9IFNMU01HX1ZMSU5FX0NIQVIgfCBBX0FMVENIQVJTRVQ7Ci0gICAg
ICAgU0xjdXJzZXNfQWNzX01hcFtTTFNNR19ITElORV9DSEFSXSA9IFNMU01HX0hMSU5FX0NIQVIg
fCBBX0FMVENIQVJTRVQ7Ci0gICAgICAgU0xjdXJzZXNfQWNzX01hcFtTTFNNR19QTFVTX0NIQVJd
ID0gU0xTTUdfUExVU19DSEFSIHwgQV9BTFRDSEFSU0VUOwotICAgICAgIFNMY3Vyc2VzX0Fjc19N
YXBbU0xTTUdfQ0tCUkRfQ0hBUl0gPSBTTFNNR19DS0JSRF9DSEFSIHwgQV9BTFRDSEFSU0VUOwor
ICAgICAgIGlmIChTTHNtZ19Jc19Vbmljb2RlKQorICAgICAgICAgeworICAgICAgICAgICBTTGN1
cnNlc19BY3NfTWFwWydsJ10gPSBTTFNNR19VTENPUk5fQ0hBUl9VTklDT0RFOworICAgICAgICAg
ICBTTGN1cnNlc19BY3NfTWFwWydrJ10gPSBTTFNNR19VUkNPUk5fQ0hBUl9VTklDT0RFOworICAg
ICAgICAgICBTTGN1cnNlc19BY3NfTWFwWydtJ10gPSBTTFNNR19MTENPUk5fQ0hBUl9VTklDT0RF
OworICAgICAgICAgICBTTGN1cnNlc19BY3NfTWFwWydqJ10gPSBTTFNNR19MUkNPUk5fQ0hBUl9V
TklDT0RFOworICAgICAgICAgICBTTGN1cnNlc19BY3NfTWFwWyd2J10gPSBTTFNNR19VVEVFX0NI
QVJfVU5JQ09ERTsKKyAgICAgICAgICAgU0xjdXJzZXNfQWNzX01hcFsndyddID0gU0xTTUdfRFRF
RV9DSEFSX1VOSUNPREU7CisgICAgICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ3QnXSA9IFNMU01H
X0xURUVfQ0hBUl9VTklDT0RFOworICAgICAgICAgICBTTGN1cnNlc19BY3NfTWFwWyd1J10gPSBT
TFNNR19SVEVFX0NIQVJfVU5JQ09ERTsKKyAgICAgICAgICAgU0xjdXJzZXNfQWNzX01hcFsneCdd
ID0gU0xTTUdfVkxJTkVfQ0hBUl9VTklDT0RFOworICAgICAgICAgICBTTGN1cnNlc19BY3NfTWFw
WydxJ10gPSBTTFNNR19ITElORV9DSEFSX1VOSUNPREU7CisgICAgICAgICAgIFNMY3Vyc2VzX0Fj
c19NYXBbJ24nXSA9IFNMU01HX1BMVVNfQ0hBUl9VTklDT0RFOworICAgICAgICAgICBTTGN1cnNl
c19BY3NfTWFwWydhJ10gPSBTTFNNR19DS0JSRF9DSEFSX1VOSUNPREU7CisgICAgICAgICB9Cisg
ICAgICAgZWxzZQorCSB7CisgICAgICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ2wnXSA9IFNMU01H
X1VMQ09STl9DSEFSX1RFUk0gfCBBX0FMVENIQVJTRVQ7CisgICAgICAgICAgIFNMY3Vyc2VzX0Fj
c19NYXBbJ2snXSA9IFNMU01HX1VSQ09STl9DSEFSX1RFUk0gfCBBX0FMVENIQVJTRVQ7CisgICAg
ICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ20nXSA9IFNMU01HX0xMQ09STl9DSEFSX1RFUk0gfCBB
X0FMVENIQVJTRVQ7CisgICAgICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ2onXSA9IFNMU01HX0xS
Q09STl9DSEFSX1RFUk0gfCBBX0FMVENIQVJTRVQ7CisgICAgICAgICAgIFNMY3Vyc2VzX0Fjc19N
YXBbJ3YnXSA9IFNMU01HX1VURUVfQ0hBUl9URVJNIHwgQV9BTFRDSEFSU0VUOworICAgICAgICAg
ICBTTGN1cnNlc19BY3NfTWFwWyd3J10gPSBTTFNNR19EVEVFX0NIQVJfVEVSTSB8IEFfQUxUQ0hB
UlNFVDsKKyAgICAgICAgICAgU0xjdXJzZXNfQWNzX01hcFsndCddID0gU0xTTUdfTFRFRV9DSEFS
X1RFUk0gfCBBX0FMVENIQVJTRVQ7CisgICAgICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ3UnXSA9
IFNMU01HX1JURUVfQ0hBUl9URVJNIHwgQV9BTFRDSEFSU0VUOworICAgICAgICAgICBTTGN1cnNl
c19BY3NfTWFwWyd4J10gPSBTTFNNR19WTElORV9DSEFSX1RFUk0gfCBBX0FMVENIQVJTRVQ7Cisg
ICAgICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ3EnXSA9IFNMU01HX0hMSU5FX0NIQVJfVEVSTSB8
IEFfQUxUQ0hBUlNFVDsKKyAgICAgICAgICAgU0xjdXJzZXNfQWNzX01hcFsnbiddID0gU0xTTUdf
UExVU19DSEFSX1RFUk0gfCBBX0FMVENIQVJTRVQ7CisgICAgICAgICAgIFNMY3Vyc2VzX0Fjc19N
YXBbJ2EnXSA9IFNMU01HX0NLQlJEX0NIQVJfVEVSTSB8IEFfQUxUQ0hBUlNFVDsKKyAgICAgICAg
IH0KICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICAgLyogdWdseSBkZWZhdWx0cyB0byB1
c2Ugb24gdGVybWluYWxzIHdoaWNoIGRvbid0IHN1cHBvcnQgZ3JhcGhpY3MgKi8KLSAgICAgICBT
TGN1cnNlc19BY3NfTWFwW1NMU01HX1VMQ09STl9DSEFSXSA9ICcrJzsKLSAgICAgICBTTGN1cnNl
c19BY3NfTWFwW1NMU01HX1VSQ09STl9DSEFSXSA9ICcrJzsKLSAgICAgICBTTGN1cnNlc19BY3Nf
TWFwW1NMU01HX0xMQ09STl9DSEFSXSA9ICcrJzsKLSAgICAgICBTTGN1cnNlc19BY3NfTWFwW1NM
U01HX0xSQ09STl9DSEFSXSA9ICcrJzsKLSAgICAgICBTTGN1cnNlc19BY3NfTWFwW1NMU01HX1VU
RUVfQ0hBUl0gPSAnKyc7Ci0gICAgICAgU0xjdXJzZXNfQWNzX01hcFtTTFNNR19EVEVFX0NIQVJd
ID0gJysnOwotICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbU0xTTUdfTFRFRV9DSEFSXSA9ICcrJzsK
LSAgICAgICBTTGN1cnNlc19BY3NfTWFwW1NMU01HX1JURUVfQ0hBUl0gPSAnKyc7Ci0gICAgICAg
U0xjdXJzZXNfQWNzX01hcFtTTFNNR19WTElORV9DSEFSXSA9ICd8JzsKLSAgICAgICBTTGN1cnNl
c19BY3NfTWFwW1NMU01HX0hMSU5FX0NIQVJdID0gJy0nOwotICAgICAgIFNMY3Vyc2VzX0Fjc19N
YXBbU0xTTUdfUExVU19DSEFSXSA9ICcrJzsKLSAgICAgICBTTGN1cnNlc19BY3NfTWFwW1NMU01H
X0NLQlJEX0NIQVJdID0gJyMnOworICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ2wnXSA9ICcrJzsK
KyAgICAgICBTTGN1cnNlc19BY3NfTWFwWydrJ10gPSAnKyc7CisgICAgICAgU0xjdXJzZXNfQWNz
X01hcFsnbSddID0gJysnOworICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ2onXSA9ICcrJzsKKyAg
ICAgICBTTGN1cnNlc19BY3NfTWFwWyd2J10gPSAnKyc7CisgICAgICAgU0xjdXJzZXNfQWNzX01h
cFsndyddID0gJysnOworICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ3QnXSA9ICcrJzsKKyAgICAg
ICBTTGN1cnNlc19BY3NfTWFwWyd1J10gPSAnKyc7CisgICAgICAgU0xjdXJzZXNfQWNzX01hcFsn
eCddID0gJ3wnOworICAgICAgIFNMY3Vyc2VzX0Fjc19NYXBbJ3EnXSA9ICctJzsKKyAgICAgICBT
TGN1cnNlc19BY3NfTWFwWyduJ10gPSAnKyc7CisgICAgICAgU0xjdXJzZXNfQWNzX01hcFsnYSdd
ID0gJyMnOwogICAgICB9Ci0KLSAgIHJldHVybiBTTGN1cnNlc19TdGRzY3I7CiB9CiAKIGludCBT
TGN1cnNlc193YXR0cnNldCAoU0xjdXJzZXNfV2luZG93X1R5cGUgKncsIFNMdHRfQ2hhcl9UeXBl
IGNoKQotLS0gc2xhbmctMS40LjUvc3JjL3NsY3Vyc2VzLmguYWNzCTIwMDItMDItMTAgMDI6Mzk6
MTkuMDAwMDAwMDAwIC0wNTAwCisrKyBzbGFuZy0xLjQuNS9zcmMvc2xjdXJzZXMuaAkyMDAyLTA3
LTA5IDAwOjAzOjU3LjAwMDAwMDAwMCAtMDQwMApAQCAtMTQxLDYgKzE0MSw3IEBACiAKIGV4dGVy
biBpbnQgU0xjdXJzZXNfbm9kZWxheSAoU0xjdXJzZXNfV2luZG93X1R5cGUgKiwgaW50KTsKIGV4
dGVybiBTTGN1cnNlc19XaW5kb3dfVHlwZSAqU0xjdXJzZXNfaW5pdHNjciAodm9pZCk7CitleHRl
cm4gdm9pZCBTTGN1cnNlc19pbml0X2Fjc19tYXAgKHZvaWQpOwogI2RlZmluZSBpbml0c2NyIFNM
Y3Vyc2VzX2luaXRzY3IKIAogZXh0ZXJuIGludCBTTGN1cnNlc19jYnJlYWsgKHZvaWQpOwpAQCAt
MjIyLDIxICsyMjIsMjEgQEAKIGV4dGVybiBTTHR0X0NoYXJfVHlwZSBTTGN1cnNlc19BY3NfTWFw
IFsxMjhdOwogI2RlZmluZSBhY3NfbWFwIFNMY3Vyc2VzX0Fjc19NYXAKIAotI2RlZmluZSBBQ1Nf
VUxDT1JORVIgKGFjc19tYXBbU0xTTUdfVUxDT1JOX0NIQVJdKQotI2RlZmluZSBBQ1NfVVJDT1JO
RVIgKGFjc19tYXBbU0xTTUdfVVJDT1JOX0NIQVJdKQotI2RlZmluZSBBQ1NfTFJDT1JORVIgKGFj
c19tYXBbU0xTTUdfTFJDT1JOX0NIQVJdKQotI2RlZmluZSBBQ1NfTExDT1JORVIgKGFjc19tYXBb
U0xTTUdfTExDT1JOX0NIQVJdKQotI2RlZmluZSBBQ1NfVFRFRSAoYWNzX21hcFtTTFNNR19VVEVF
X0NIQVJdKQotI2RlZmluZSBBQ1NfTFRFRSAoYWNzX21hcFtTTFNNR19MVEVFX0NIQVJdKQotI2Rl
ZmluZSBBQ1NfUlRFRSAoYWNzX21hcFtTTFNNR19SVEVFX0NIQVJdKQotI2RlZmluZSBBQ1NfQlRF
RSAoYWNzX21hcFtTTFNNR19EVEVFX0NIQVJdKQotI2RlZmluZSBBQ1NfUExVUyAoYWNzX21hcFtT
TFNNR19QTFVTX0NIQVJdKQotI2RlZmluZSBBQ1NfVkxJTkUgKGFjc19tYXBbU0xTTUdfVkxJTkVf
Q0hBUl0pCi0jZGVmaW5lIEFDU19ITElORSAoYWNzX21hcFtTTFNNR19ITElORV9DSEFSXSkKKyNk
ZWZpbmUgQUNTX1VMQ09STkVSIFNMU01HX1VMQ09STl9DSEFSCisjZGVmaW5lIEFDU19VUkNPUk5F
UiBTTFNNR19VUkNPUk5fQ0hBUgorI2RlZmluZSBBQ1NfTFJDT1JORVIgU0xTTUdfTFJDT1JOX0NI
QVIKKyNkZWZpbmUgQUNTX0xMQ09STkVSIFNMU01HX0xMQ09STl9DSEFSCisjZGVmaW5lIEFDU19U
VEVFIFNMU01HX1VURUVfQ0hBUgorI2RlZmluZSBBQ1NfTFRFRSBTTFNNR19MVEVFX0NIQVIKKyNk
ZWZpbmUgQUNTX1JURUUgU0xTTUdfUlRFRV9DSEFSCisjZGVmaW5lIEFDU19CVEVFIFNMU01HX0RU
RUVfQ0hBUgorI2RlZmluZSBBQ1NfUExVUyBTTFNNR19QTFVTX0NIQVIKKyNkZWZpbmUgQUNTX1ZM
SU5FIFNMU01HX1ZMSU5FX0NIQVIKKyNkZWZpbmUgQUNTX0hMSU5FIFNMU01HX0hMSU5FX0NIQVIK
ICNkZWZpbmUgQUNTX1MxCQknLScKICNkZWZpbmUgQUNTX1M5CQknLScKICNkZWZpbmUgQUNTX0RJ
QU1PTkQJCScmJwotI2RlZmluZSBBQ1NfQ0tCT0FSRAkJKGFjc19tYXBbU0xTTUdfQ0tCUkRfQ0hB
Ul0pCisjZGVmaW5lIEFDU19DS0JPQVJECQlTTFNNR19DS0JSRF9DSEFSCiAjZGVmaW5lIEFDU19E
RUdSRUUJCSdvJwogI2RlZmluZSBBQ1NfUExNSU5VUwkJJysnCiAjZGVmaW5lIEFDU19CVUxMRVQJ
CScqJwotLS0gc2xhbmctMS40LjUvc3JjL3Nsc21nLmMuYWNzCTIwMDItMDctMDkgMDA6MDM6NTcu
MDAwMDAwMDAwIC0wNDAwCisrKyBzbGFuZy0xLjQuNS9zcmMvc2xzbWcuYwkyMDAyLTA3LTA5IDAw
OjAzOjU3LjAwMDAwMDAwMCAtMDQwMApAQCAtMTAsNiArMTAsOSBAQAogCiAjaW5jbHVkZSAic2xh
bmcuaCIKICNpbmNsdWRlICJfc2xhbmcuaCIKKyNpbmNsdWRlICJzbGN1cnNlcy5oIgorCisjaW5j
bHVkZSA8bG9jYWxlLmg+CiAKIHR5cGVkZWYgc3RydWN0IFNjcmVlbl9UeXBlCiAgIHsKQEAgLTQ0
LDkgKzQ3LDkgQEAKIAkJCQkJKi8KIAogI2lmbmRlZiBJQk1QQ19TWVNURU0KLSNkZWZpbmUgQUxU
X0NIQVJfRkxBRyAweDgwCitzdGF0aWMgaW50IEFMVF9DSEFSX0ZMQUc9MHg4MDsKICNlbHNlCi0j
ZGVmaW5lIEFMVF9DSEFSX0ZMQUcgMHgwMAorc3RhdGljIGludCBBTFRfQ0hBUl9GTEFHPTB4MDA7
CiAjZW5kaWYKIAogI2lmIFNMVFRfSEFTX05PTl9CQ0VfU1VQUE9SVCAmJiAhZGVmaW5lZChJQk1Q
Q19TWVNURU0pCkBAIC01NCw2ICs1Nyw4IEBACiBzdGF0aWMgaW50IEJjZV9Db2xvcl9PZmZzZXQ7
CiAjZW5kaWYKIAoraW50IFNMc21nX0lzX1VuaWNvZGUgPSAwOworaW50IFNMc21nX1NldGxvY2Fs
ZSA9IDE7CiBpbnQgU0xzbWdfTmV3bGluZV9CZWhhdmlvciA9IDA7CiBpbnQgU0xzbWdfQmFja3Nw
YWNlX01vdmVzID0gMDsKIC8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIE5vdCB1c2VkLiAqLwpA
QCAtMTg0LDYgKzE4OSw4IEBACiAgICAgIHJldHVybjsvKiBhbHQgY2hhcnMgbm90IHVzZWQgYW5k
IHRoZSBhbHQgYml0CiAJICAgICAqIGlzIHVzZWQgdG8gaW5kaWNhdGUgYSBibGluay4KIAkgICAg
ICovCisgICBpZiAoU0xzbWdfSXNfVW5pY29kZSkKKyAgICAgICBBTFRfQ0hBUl9GTEFHPTB4MDA7
CiAKICAgIGlmIChpKSBUaGlzX0FsdF9DaGFyID0gQUxUX0NIQVJfRkxBRzsKICAgIGVsc2UgVGhp
c19BbHRfQ2hhciA9IDA7CkBAIC0zNDgsNiArMzU1LDggQEAKICNpZm5kZWYgSUJNUENfU1lTVEVN
CiAgICBpbnQgYWx0X2NoYXJfc2V0X2ZsYWc7CiAKKyAgIGlmIChTTHNtZ19Jc19Vbmljb2RlKQor
ICAgICBBTFRfQ0hBUl9GTEFHID0gMHgwMDsKICAgIGFsdF9jaGFyX3NldF9mbGFnID0gKChUaGlz
X0NvbG9yICYgQUxUX0NIQVJfRkxBRykKIAkJCSYmICgodHRfVXNlX0JsaW5rX0Zvcl9BQ1MgPT0g
TlVMTCkKIAkJCSAgICB8fCAoKnR0X1VzZV9CbGlua19Gb3JfQUNTID09IDApKSk7CkBAIC0xMjIx
LDYgKzEyMzAsMjAgQEAKICAgIFNtZ19Jbml0ZWQgPSAwOwogfQogCitzdGF0aWMgdm9pZCBTTHNt
Z19jaGVja191bmljb2RlKHZvaWQpCit7CisgICAgY2hhciAqcywqdDsKKyAgICAKKyAgICBpZiAo
U0xzbWdfU2V0bG9jYWxlKQorCQlzID0gc2V0bG9jYWxlKExDX0FMTCwgIiIpOworICAgIGVsc2UK
KwkJcyA9IHNldGxvY2FsZShMQ19BTEwsIE5VTEwpOworICAgIGlmIChzICYmIChzdHJzdHIocywi
VVRGLTgiKSB8fCBzdHJzdHIocywidXRmOCIpKSkgeworCSAgICBTTHNtZ19Jc19Vbmljb2RlID0g
MTsKKwkgICAgcmV0dXJuOworICAgIH0KKyAgICBTTHNtZ19Jc19Vbmljb2RlID0gMDsKK30KIAog
c3RhdGljIGludCBpbml0X3NtZyAodm9pZCkKIHsKQEAgLTEyNDIsNiArMTI2NSw4IEBACiAgICBU
aGlzX0NvbCA9IFRoaXNfUm93ID0gU3RhcnRfQ29sID0gU3RhcnRfUm93ID0gMDsKIAogICAgVGhp
c19BbHRfQ2hhciA9IDA7CisgICBTTHNtZ19jaGVja191bmljb2RlICgpOworICAgU0xjdXJzZXNf
aW5pdF9hY3NfbWFwICgpOwogICAgU0xzbWdfc2V0X2NvbG9yICgwKTsKICAgIENsc19GbGFnID0g
MTsKICNpZm5kZWYgSUJNUENfU1lTVEVNCkBAIC0xMzg2LDcgKzE0MTEsMTEgQEAKICAgICAgfQog
fQogCisjaWZkZWYgVVRGOAordm9pZCBTTHNtZ19kcmF3X29iamVjdCAoaW50IHIsIGludCBjLCBT
THNtZ19DaGFyX1R5cGUgb2JqZWN0KQorI2Vsc2UKIHZvaWQgU0xzbWdfZHJhd19vYmplY3QgKGlu
dCByLCBpbnQgYywgdW5zaWduZWQgY2hhciBvYmplY3QpCisjZW5kaWYKIHsKICAgIFRoaXNfUm93
ID0gcjsgIFRoaXNfQ29sID0gYzsKIApAQCAtMTQwNSw3ICsxNDM0LDcgQEAKIAogdm9pZCBTTHNt
Z19kcmF3X2hsaW5lICh1bnNpZ25lZCBpbnQgbikKIHsKLSAgIHN0YXRpYyB1bnNpZ25lZCBjaGFy
IGhidWZbMTZdOworICAgU0xzbWdfQ2hhcl9UeXBlIGNoID0gU0xTTUdfSExJTkVfQ0hBUjsKICAg
IGludCBjb3VudDsKICAgIGludCBjbWluLCBjbWF4OwogICAgaW50IGZpbmFsX2NvbCA9IFRoaXNf
Q29sICsgKGludCkgbjsKQEAgLTE0MjEsMTEgKzE0NTAsNiBAQAogCXJldHVybjsKICAgICAgfQog
Ci0gICBpZiAoaGJ1ZlswXSA9PSAwKQotICAgICB7Ci0JU0xNRU1TRVQgKChjaGFyICopIGhidWYs
IFNMU01HX0hMSU5FX0NIQVIsIDE2KTsKLSAgICAgfQotCiAgICBuID0gKHVuc2lnbmVkIGludCko
Y21heCAtIGNtaW4pOwogICAgY291bnQgPSBuIC8gMTY7CiAKQEAgLTE0MzMsMTAgKzE0NTcsMTAg
QEAKICAgIFRoaXNfQ29sb3IgfD0gQUxUX0NIQVJfRkxBRzsKICAgIFRoaXNfQ29sID0gY21pbjsK
IAotICAgU0xzbWdfd3JpdGVfbmNoYXJzICgoY2hhciAqKSBoYnVmLCBuICUgMTYpOwotICAgd2hp
bGUgKGNvdW50LS0gPiAwKQorICAgU0xzbWdfZHJhd19vYmplY3QoVGhpc19Sb3csIFRoaXNfQ29s
LCBjaCk7CisgICB3aGlsZSAobi0tID4gMCkKICAgICAgewotCVNMc21nX3dyaXRlX25jaGFycyAo
KGNoYXIgKikgaGJ1ZiwgMTYpOworCVNMc21nX2RyYXdfb2JqZWN0KFRoaXNfUm93LCBUaGlzX0Nv
bCwgY2gpOwogICAgICB9CiAKICAgIFRoaXNfQ29sb3IgPSBzYXZlX2NvbG9yOwpAQCAtMTQ0NSw3
ICsxNDY5LDcgQEAKIAogdm9pZCBTTHNtZ19kcmF3X3ZsaW5lIChpbnQgbikKIHsKLSAgIHVuc2ln
bmVkIGNoYXIgY2ggPSBTTFNNR19WTElORV9DSEFSOworICAgU0xzbWdfQ2hhcl9UeXBlIGNoID0g
U0xTTUdfVkxJTkVfQ0hBUjsKICAgIGludCBjID0gVGhpc19Db2wsIHJtaW4sIHJtYXg7CiAgICBp
bnQgZmluYWxfcm93ID0gVGhpc19Sb3cgKyBuOwogICAgaW50IHNhdmVfY29sb3I7CkBAIC0xNDY2
LDcgKzE0OTAsNyBAQAogICAgZm9yIChUaGlzX1JvdyA9IHJtaW47IFRoaXNfUm93IDwgcm1heDsg
VGhpc19Sb3crKykKICAgICAgewogCVRoaXNfQ29sID0gYzsKLQlTTHNtZ193cml0ZV9uY2hhcnMg
KChjaGFyICopICZjaCwgMSk7CisJU0xzbWdfZHJhd19vYmplY3QgKFRoaXNfUm93LCBUaGlzX0Nv
bCwgY2gpOwogICAgICB9CiAKICAgIFRoaXNfQ29sID0gYzsgIFRoaXNfUm93ID0gZmluYWxfcm93
Owo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29192</attachid>
            <date>2004-04-13 01:02 0000</date>
            <desc>RH patches</desc>
            <filename>slang-utf8-fix.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHNsYW5nLTEuNC41L3NyYy9zbHNtZy5jLmpqCTIwMDMtMDItMjEgMTI6MTE6MzcuMDAwMDAw
MDAwIC0wNTAwCisrKyBzbGFuZy0xLjQuNS9zcmMvc2xzbWcuYwkyMDAzLTAyLTIxIDE0OjA5OjI4
LjAwMDAwMDAwMCAtMDUwMApAQCAtMzc4LDggKzM3OCwxMCBAQCB2b2lkIFNMc21nX3dyaXRlX253
Y2hhcnMgKHdjaGFyX3QgKnN0ciwgCiAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyssIHN0cikgewog
ICAgIGNoID0gKnN0cisrOwogI2lmbmRlZiBJQk1QQ19TWVNURU0KLSAgICBpZiAoYWx0X2NoYXJf
c2V0X2ZsYWcpCisgICAgaWYgKGFsdF9jaGFyX3NldF9mbGFnKSB7CiAgICAgICBjaCA9IEFsdF9D
aGFyX1NldFtjaCAmIDB4N0ZdOworICAgICAgdyA9IDE7CisgICAgfSBlbHNlCiAjZW5kaWYKICAg
ICB3ID0gd2N3aWR0aChjaCk7CiAKLS0tIHNsYW5nLTEuNC41L3NyYy9zbGRpc3BseS5jLmpqCTIw
MDMtMDItMjEgMTI6MTE6MzcuMDAwMDAwMDAwIC0wNTAwCisrKyBzbGFuZy0xLjQuNS9zcmMvc2xk
aXNwbHkuYwkyMDAzLTAyLTIxIDE1OjUxOjQzLjAwMDAwMDAwMCAtMDUwMApAQCAtMTQ5OCw2ICsx
NDk4LDE3IEBAIHN0YXRpYyB2b2lkIHdyaXRlX3dzdHJpbmdfd2l0aF9jYXJlIChTTHMKIAkgIH0K
ICAgICAgfQogCisgICBpZiAoQ3VycmVudF9GZ2JnICYgU0xUVF9BTFRDX01BU0spCisgICAgIHsK
KwljaGFyIGM7CisJd2hpbGUgKGxlbi0tKQorCSAgeworCSAgICAgYyA9ICpzdHIrKzsKKwkgICAg
IHR0X3dyaXRlKCZjLCAxKTsKKwkgIH0KKwlyZXR1cm47CisgICAgIH0KKwogICAgbWVtc2V0ICgm
bWJzdGF0ZSwgMCwgc2l6ZW9mIChtYnN0YXRlKSk7CiAgICB3aGlsZSAobGVuLS0pCiAgICAgIHsK
</data>        

          </attachment>
    </bug>

</bugzilla>