<?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>86705</bug_id>
          
          <creation_ts>2005-03-25 14:20 0000</creation_ts>
          <short_desc>gamin 0.0.26 doesn&apos;t work with inotify-0.21 backend</short_desc>
          <delta_ts>2005-05-23 08:27:51 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>GNOME</component>
          <version>2004.3</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>tpenev@gmail.com</reporter>
          <assigned_to>azarah@gentoo.org</assigned_to>
          <cc>cyril.jaquier@jaqpot.net</cc>
    
    <cc>gad.kadosh@gmail.com</cc>
    
    <cc>guillaume.ramelet@laposte.net</cc>

      

      
          <long_desc isprivate="0">
            <who>tpenev@gmail.com</who>
            <bug_when>2005-03-25 14:20:05 0000</bug_when>
            <thetext>gamin fails to capture inotify events correctly when using a newer inotify kernel
patch in gnome-cvs does not fix the problem

Reproducible: Always
Steps to Reproduce:
1. start nautilus
2. use a term window to add/change a file
3. nautilus does not update



Expected Results:  
automatic refresh

Portage 2.0.51.19 (default-linux/amd64/2005.0, gcc-3.4.3-20050110,
glibc-2.3.4.20050125-r1, 2.6.11-morph4 x86_64)
=================================================================
System uname: 2.6.11-morph4 x86_64 AMD Athlon(tm) 64 Processor 3000+
Gentoo Base System version 1.6.10
Python:              dev-lang/python-2.4-r3,dev-lang/python-2.3.5 [2.4 (#1, Mar
24 2005, 20:43:22)]
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [enabled]
dev-lang/python:     2.4-r3, 2.3.5
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.7.9-r1, 1.8.5-r3, 1.6.3, 1.5, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r7
sys-devel/libtool:   1.5.14
virtual/os-headers:  2.6.8.1-r4
ACCEPT_KEYWORDS=&quot;amd64 ~amd64&quot;
AUTOCLEAN=&quot;yes&quot;
CFLAGS=&quot;-O2 -march=athlon64 -pipe&quot;
CHOST=&quot;x86_64-pc-linux-gnu&quot;
CONFIG_PROTECT=&quot;/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control&quot;
CONFIG_PROTECT_MASK=&quot;/etc/gconf /etc/terminfo /etc/env.d&quot;
CXXFLAGS=&quot;-O2 -march=athlon64 -pipe&quot;
DISTDIR=&quot;/usr/portage/distfiles&quot;
FEATURES=&quot;autoaddcvs autoconfig ccache distlocks sandbox&quot;
GENTOO_MIRRORS=&quot;http://gentoo.chem.wisc.edu/gentoo/&quot;
MAKEOPTS=&quot;-j2&quot;
PKGDIR=&quot;/usr/portage/packages&quot;
PORTAGE_TMPDIR=&quot;/var/tmp&quot;
PORTDIR=&quot;/usr/portage&quot;
PORTDIR_OVERLAY=&quot;/usr/port_ovr&quot;
SYNC=&quot;rsync://rsync.gentoo.org/gentoo-portage&quot;
USE=&quot;amd64 X acpi alsa apache2 berkdb bitmap-fonts cdr crypt cups curl flac
font-server foomaticdb fortran gif gimpprint gnome gpm gstreamer gtk gtk2
gtkhtml hal howl imagemagick imlib ipv6 jp2 jpeg ldap lzw lzw-tiff mad mng mp3
mpeg ncurses nls nptl nptlonly offensive oggvorbis opengl oss pam perl png
python readline samba slang spell ssl svg tcpd threads tiff truetype
truetype-fonts type1-fonts unicode usb userlocales wmf xml xml2 xpm xrandr xv zlib&quot;
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tpenev@gmail.com</who>
            <bug_when>2005-03-25 14:20:56 0000</bug_when>
            <thetext>Created an attachment (id=54477)
corrects inotify problem, updates to latest gamin from gnome cvs
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tpenev@gmail.com</who>
            <bug_when>2005-03-25 14:21:43 0000</bug_when>
            <thetext>Created an attachment (id=54478)
new ebuild
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gad.kadosh@gmail.com</who>
            <bug_when>2005-03-28 00:07:29 0000</bug_when>
            <thetext>gamin-0.0.26-r5 ebuild in portage does not work with inotify-0.21, but the ebuild from this bug report does. I don&apos;t know if it should be added to portage since it&apos;s cvs, but -r5 doesn&apos;t serve anything so it can be removed.
What this ebuild does not fix is the bug of updating removable media presence in gnome:
http://bugs.gentoo.org/show_bug.cgi?id=74285
http://bugzilla.gnome.org/show_bug.cgi?id=171201</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gad.kadosh@gmail.com</who>
            <bug_when>2005-03-29 08:52:44 0000</bug_when>
            <thetext>Actually this doesn&apos;t work so well, after one time or something it stops showing changes in nautilus in realtime, and I have to kill the gam_server
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>carlo@gentoo.org</who>
            <bug_when>2005-03-29 17:12:53 0000</bug_when>
            <thetext>Please use &quot;New -&gt; Gentoo Linux -&gt; Component: Ebuilds&quot; in future. Infrastructure is not the correct addressee.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2005-04-02 14:50:56 0000</bug_when>
            <thetext>Don&apos;t want to apply a big evil patch like this, so I fixed the patch included in 0.0.26-r5 and bumped it to 0.0.26-r6.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>azarah@gentoo.org</who>
            <bug_when>2005-04-02 15:25:38 0000</bug_when>
            <thetext>Todor, where did you get the actual fixes that fixes it?  It still appears broken in their cvs .. ?
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>azarah@gentoo.org</who>
            <bug_when>2005-04-02 15:28:19 0000</bug_when>
            <thetext>Todor, basically making sure the patch is yours - want to get my facts straight for mailing upstream .... =)
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gad.kadosh@gmail.com</who>
            <bug_when>2005-04-02 20:09:02 0000</bug_when>
            <thetext>dsd: well done! so far it works perfectly. The nautilus/media problem is also fixed?

fuoco</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tpenev@gmail.com</who>
            <bug_when>2005-04-03 01:15:45 0000</bug_when>
            <thetext>yeah, the gnome cvs is still broken. i used the inotify-utils-0.21 source to figure out what the proper way of calling inotify is, so the patch that applies to gam_inotify.c has been slighly modified by me and is not the cvs version. the usb drive problem sounds like a HAL issue</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>azarah@gentoo.org</who>
            <bug_when>2005-04-03 05:25:16 0000</bug_when>
            <thetext>Well, the volume-manager thing seems like its a gamin/inotify issue (cant remember exact details).  Check bug #74285 for more on it.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>azarah@gentoo.org</who>
            <bug_when>2005-04-03 15:15:20 0000</bug_when>
            <thetext>Ok, patch should be upstream in a bit, thanks.
</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54477</attachid>
            <date>2005-03-25 14:20 0000</date>
            <desc>corrects inotify problem, updates to latest gamin from gnome cvs</desc>
            <filename>gamin-0.0.26-cvs_update.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">SW5kZXg6IHNlcnZlci9nYW1faW5vdGlmeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvZ25v
bWUvZ2FtaW4vc2VydmVyL2dhbV9pbm90aWZ5LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMK
cmV0cmlldmluZyByZXZpc2lvbiAxLjE1CmRpZmYgLXUgLXIxLjEzIC1yMS4xNQotLS0gc2VydmVy
L2dhbV9pbm90aWZ5LmMJMjAwNS8wMi8xMCAyMjo1MTowMAkxLjEzCisrKyBzZXJ2ZXIvZ2FtX2lu
b3RpZnkuYwkyMDA1LzAzLzIyIDE0OjIzOjI1CTEuMTUKQEAgLTg4LDcgKzg4LDggQEAKIH0KIAog
c3RhdGljIHZvaWQKLWdhbV9pbm90aWZ5X2FkZF9ybV9oYW5kbGVyKGNvbnN0IGNoYXIgKnBhdGgs
IEdhbVN1YnNjcmlwdGlvbiAqc3ViLCBnYm9vbGVhbiBhZGRlZCkKK2dhbV9pbm90aWZ5X2FkZF9y
bV9oYW5kbGVyKGNvbnN0IGNoYXIgKnBhdGgsIEdhbVN1YnNjcmlwdGlvbiAqc3ViLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9sbEhhbmRsZXJNb2RlIG1vZGUpCiB7CiAgICAgSU5vdGlm
eURhdGEgKmRhdGE7CiAgICAgc3RydWN0IGlub3RpZnlfd2F0Y2hfcmVxdWVzdCBpd3I7CkBAIC05
Niw3ICs5Nyw3IEBACiAKICAgICBHX0xPQ0soaW5vdGlmeSk7CiAKLSAgICBpZiAoYWRkZWQpIHsK
KyAgICBpZiAobW9kZSA9PSBHQU1JTl9BQ1RJVkFURSkgewogCUdMaXN0ICpzdWJzOwogCiAJc3Vi
cyA9IE5VTEw7CkBAIC0xMTYsMTEgKzExNywxOSBAQAogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLQlpd3IubmFtZSA9IGdfc3RyZHVwKHBhdGgpOwotCWl3ci5tYXNrID0gMHhmZmZm
ZmZmZjsgLy8gYWxsIGV2ZW50cworCXsKKwkgICAgaW50IGZpbGUgPSBvcGVuKHBhdGgsIE9fUkRP
TkxZKTsKIAotICAgICAgICB3ZCA9IGlvY3RsKGZkLCBJTk9USUZZX1dBVENILCAmaXdyKTsKLSAg
ICAgICAgZ19mcmVlKGl3ci5uYW1lKTsKKwkgICAgaWYgKGZpbGUgPCAwKSB7CisJCUdfVU5MT0NL
KGlub3RpZnkpOworCQlyZXR1cm47CisJICAgIH0KKworCSAgICBpd3IuZmQgPSBmaWxlOworCSAg
ICBpd3IubWFzayA9IDB4ZmZmZmZmZmY7IC8vIGFsbCBldmVudHMKKwkgICAgd2QgPSBpb2N0bChm
ZCwgSU5PVElGWV9XQVRDSCwgJml3cik7CisJICAgIGNsb3NlIChmaWxlKTsKKwl9CiAKICAgICAg
ICAgaWYgKHdkIDwgMCkgewogICAgICAgICAgICAgR19VTkxPQ0soaW5vdGlmeSk7CkBAIC0xMzYs
NyArMTQ1LDcgQEAKIAogCWdhbV9zZXJ2ZXJfZW1pdF9ldmVudCAocGF0aCwgMCwgR0FNSU5fRVZF
TlRfRVhJU1RTLCBzdWJzLCAxKTsKIAlnYW1fc2VydmVyX2VtaXRfZXZlbnQgKHBhdGgsIDAsIEdB
TUlOX0VWRU5UX0VOREVYSVNUUywgc3VicywgMSk7Ci0gICAgfSBlbHNlIHsKKyAgICB9IGVsc2Ug
aWYgKG1vZGUgPT0gR0FNSU5fREVTQUNUSVZBVEUpIHsKICAgICAgICAgZGF0YSA9IGdfaGFzaF90
YWJsZV9sb29rdXAocGF0aF9oYXNoLCBwYXRoKTsKIAogICAgICAgICBpZiAoIWRhdGEpIHsKQEAg
LTE2MCw2ICsxNjksOCBAQAogICAgICAgICAgICAgZ19oYXNoX3RhYmxlX3JlbW92ZSh3ZF9oYXNo
LCBHSU5UX1RPX1BPSU5URVIoZGF0YS0+d2QpKTsKICAgICAgICAgICAgIGdhbV9pbm90aWZ5X2Rh
dGFfZnJlZShkYXRhKTsKICAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEdBTV9ERUJV
RyhERUJVR19JTkZPLCAiSW5vdGlmeTogdW5pbXBsZW1lbnRlZCBtb2RlIHJlcXVlc3QgJWRcbiIs
IG1vZGUpOwogICAgIH0KICAgICBHX1VOTE9DSyhpbm90aWZ5KTsKIH0KSW5kZXg6IHNlcnZlci9s
b2NhbF9pbm90aWZ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9nbm9tZS9nYW1pbi9zZXJ2
ZXIvbG9jYWxfaW5vdGlmeS5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtdSAtcjEu
NSBsb2NhbF9pbm90aWZ5LmgKLS0tIHNlcnZlci9sb2NhbF9pbm90aWZ5LmgJMTAgRmViIDIwMDUg
MjI6NTE6MDAgLTAwMDAJMS41CisrKyBzZXJ2ZXIvbG9jYWxfaW5vdGlmeS5oCTE2IE1hciAyMDA1
IDIxOjIyOjMyIC0wMDAwCkBAIC0xNywxMSArMTcsMTEgQEAKICAqIHN1Y2ggYXMgSU5fQ1JFQVRF
LCBJTl9ERUxFVEUsIElOX09QRU4sIElOX0NMT1NFLCAuLi4sIHJlbGF0aXZlIHRvIHRoZSB3ZC4K
ICAqLwogc3RydWN0IGlub3RpZnlfZXZlbnQgewotCV9fczMyIHdkOwkvKiB3YXRjaCBkZXNjcmlw
dG9yICovCi0JX191MzIgbWFzazsJLyogd2F0Y2ggbWFzayAqLwotCV9fdTMyIGNvb2tpZTsJLyog
Y29va2llIHVzZWQgZm9yIHN5bmNocm9uaXppbmcgdHdvIGV2ZW50cyAqLwotCXNpemVfdCBsZW47
CS8qIGxlbmd0aCAoaW5jbHVkaW5nIG51bGxzKSBvZiBuYW1lICovCi0JY2hhciBuYW1lWzBdOwkv
KiBzdHViIGZvciBwb3NzaWJsZSBuYW1lICovCisJX19zMzIJCXdkOwkJLyogd2F0Y2ggZGVzY3Jp
cHRvciAqLworCV9fdTMyCQltYXNrOwkJLyogd2F0Y2ggbWFzayAqLworCV9fdTMyCQljb29raWU7
CQkvKiBjb29raWUgdG8gc3luY2hyb25pemUgdHdvIGV2ZW50cyAqLworCV9fdTMyCQlsZW47CQkv
KiBsZW5ndGggKGluY2x1ZGluZyBudWxscykgb2YgbmFtZSAqLworCWNoYXIJCW5hbWVbMF07CS8q
IHN0dWIgZm9yIHBvc3NpYmxlIG5hbWUgKi8KIH07CiAKIC8qCkBAIC0zMCw4ICszMCw4IEBACiAg
KiBQYXNzIHRvIHRoZSBpbm90aWZ5IGRldmljZSB2aWEgdGhlIElOT1RJRllfV0FUQ0ggaW9jdGwK
ICAqLwogc3RydWN0IGlub3RpZnlfd2F0Y2hfcmVxdWVzdCB7Ci0JY2hhciAqbmFtZTsJCS8qIGRp
cmVjdG9yeSBuYW1lICovCi0JX191MzIgbWFzazsJCS8qIGV2ZW50IG1hc2sgKi8KKwlpbnQJCWZk
OwkJLyogZmQgb2YgZmlsZW5hbWUgdG8gd2F0Y2ggKi8KKwlfX3UzMgkJbWFzazsJCS8qIGV2ZW50
IG1hc2sgKi8KIH07CiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGxlZ2FsLCBpbXBsZW1lbnRlZCBl
dmVudHMgKi8KQEAgLTY3LDEyICs2Nyw3IEBACiAjaW5jbHVkZSA8bGludXgvZGNhY2hlLmg+CiAj
aW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KLQotc3RydWN0
IGlub3RpZnlfaW5vZGVfZGF0YSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCB3YXRjaGVzOwkvKiBsaXN0
IG9mIHdhdGNoZXMgb24gdGhpcyBpbm9kZSAqLwotCXNwaW5sb2NrX3QgbG9jazsJCS8qIGxvY2sg
cHJvdGVjdGluZyB0aGUgc3RydWN0ICovCi0JYXRvbWljX3QgY291bnQ7CQkJLyogcmVmIGNvdW50
ICovCi19OworI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KIAogI2lmZGVmIENPTkZJR19JTk9USUZZ
CiAKQEAgLTgyLDcgKzc3LDcgQEAKIAkJCQkJICAgICAgY29uc3QgY2hhciAqKTsKIGV4dGVybiB2
b2lkIGlub3RpZnlfc3VwZXJfYmxvY2tfdW1vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIGV4
dGVybiB2b2lkIGlub3RpZnlfaW5vZGVfaXNfZGVhZChzdHJ1Y3QgaW5vZGUgKik7Ci1leHRlcm4g
X191MzIgaW5vdGlmeV9nZXRfY29va2llKHZvaWQpOworZXh0ZXJuIHUzMiBpbm90aWZ5X2dldF9j
b29raWUodm9pZCk7CiAKICNlbHNlCiAKQEAgLTEwNiw3ICsxMDEsNyBAQAogewogfQogCi1zdGF0
aWMgaW5saW5lIF9fdTMyIGlub3RpZnlfZ2V0X2Nvb2tpZSh2b2lkKQorc3RhdGljIGlubGluZSB1
MzIgaW5vdGlmeV9nZXRfY29va2llKHZvaWQpCiB7CiAJcmV0dXJuIDA7CiB9CkluZGV4OiBzZXJ2
ZXIvZ2FtX3BvbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL2dub21lL2dhbWluL3NlcnZl
ci9nYW1fcG9sbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMKcmV0cmlldmluZyByZXZpc2lv
biAxLjUKZGlmZiAtdSAtcjEuMyAtcjEuNQotLS0gc2VydmVyL2dhbV9wb2xsLmgJMjAwNS8wMS8y
NyAyMzowMDozMQkxLjMKKysrIHNlcnZlci9nYW1fcG9sbC5oCTIwMDUvMDMvMjIgMTQ6MjM6MjUJ
MS41CkBAIC04LDcgKzgsMTYgQEAKIAogR19CRUdJTl9ERUNMUwogCi10eXBlZGVmIHZvaWQgKCpH
YW1Qb2xsSGFuZGxlcikgKGNvbnN0IGNoYXIgKnBhdGgsIGdib29sZWFuIGFkZGVkKTsKK2VudW0g
cG9sbEhhbmRsZXJNb2RlIHsKKyAgICBHQU1JTl9BQ1RJVkFURSA9IDEsCQkvKiBBY3RpdmF0ZSBr
ZXJuZWwgbW9uaXRvcmluZyAqLworICAgIEdBTUlOX0RFU0FDVElWQVRFID0gMiwJLyogRGVzYWN0
aXZhdGUga2VybmVsIG1vbml0b3JpbmcgKi8KKyAgICBHQU1JTl9GTE9XQ09OVFJPTFNUQVJUID0g
MywJLyogUmVxdWVzdCBmbG93IGNvbnRyb2wgc3RhcnQgKi8KKyAgICBHQU1JTl9GTE9XQ09OVFJP
TFNUT1AgPSA0CS8qIFJlcXVlc3QgZmxvdyBjb250cm9sIHN0b3AgKi8KK307Cit0eXBlZGVmIGVu
dW0gcG9sbEhhbmRsZXJNb2RlIHBvbGxIYW5kbGVyTW9kZTsKKwordHlwZWRlZiB2b2lkICgqR2Ft
UG9sbEhhbmRsZXIpIChjb25zdCBjaGFyICpwYXRoLAorCQkJCXBvbGxIYW5kbGVyTW9kZSBtb2Rl
KTsKIAogZ2Jvb2xlYW4gICBnYW1fcG9sbF9pbml0X2Z1bGwgICAgICAgICAgICAgKGdib29sZWFu
IHN0YXJ0X3NjYW5fdGhyZWFkKTsKIApAQCAtMjUsOCArMzQsNiBAQAogCiB2b2lkICAgICAgIGdh
bV9wb2xsX3NjYW5fZGlyZWN0b3J5ICAgICAgICAoY29uc3QgY2hhciAqcGF0aCk7CiAKLXZvaWQg
ICAgICAgZ2FtX3BvbGxfYWRkX21pc3NpbmcJCSAgKEdhbU5vZGUgKm5vZGUpOwotdm9pZCAgICAg
ICBnYW1fcG9sbF9yZW1vdmVfbWlzc2luZyAgICAgICAgKEdhbU5vZGUgKm5vZGUpOwogdm9pZCAg
ICAgICBnYW1fcG9sbF9jb25zdW1lX3N1YnNjcmlwdGlvbnMgKHZvaWQpOwogCQkJCQkJIAogR19F
TkRfREVDTFMKSW5kZXg6IHNlcnZlci9nYW1fcG9sbC5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvZ25vbWUvZ2FtaW4vc2VydmVyL2dhbV9wb2xsLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NDIKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ2CmRpZmYgLXUgLXIxLjQyIC1yMS40NgotLS0gc2Vy
dmVyL2dhbV9wb2xsLmMJMjAwNS8wMy8xNSAxMTo0OTo1NAkxLjQyCisrKyBzZXJ2ZXIvZ2FtX3Bv
bGwuYwkyMDA1LzAzLzIzIDExOjAxOjQ3CTEuNDYKQEAgLTYzLDYgKzYzLDcgQEAKIHN0YXRpYyBH
YW1UcmVlICp0cmVlID0gTlVMTDsKIHN0YXRpYyBHTGlzdCAqbmV3X3N1YnMgPSBOVUxMOwogc3Rh
dGljIEdMaXN0ICptaXNzaW5nX3Jlc291cmNlcyA9IE5VTEw7CitzdGF0aWMgR0xpc3QgKmJ1c3lf
cmVzb3VyY2VzID0gTlVMTDsKIHN0YXRpYyBHTGlzdCAqYWxsX3Jlc291cmNlcyA9IE5VTEw7CiBz
dGF0aWMgR2FtUG9sbEhhbmRsZXIgZGlyX2hhbmRsZXIgPSBOVUxMOwogc3RhdGljIEdhbVBvbGxI
YW5kbGVyIGZpbGVfaGFuZGxlciA9IE5VTEw7CkBAIC03OCwyMCArNzksMTA0IEBACiAgICAgcmV0
dXJuKGVycm5vKTsKIH0KIAorLyoqCisgKiBnYW1fcG9sbF9hZGRfbWlzc2luZzoKKyAqIEBub2Rl
OiBhIG1pc3Npbmcgbm9kZQorICoKKyAqIEFkZCBhIG1pc3Npbmcgbm9kZSB0byB0aGUgbGlzdCBm
b3IgcG9sbGluZyBpdHMgY3JlYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitnYW1fcG9sbF9hZGRf
bWlzc2luZyhHYW1Ob2RlICpub2RlKSB7CisgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sICJQb2xs
IGFkZGluZyBtaXNzaW5nIG5vZGUgJXNcbiIsCisgICAgICAgICAgICAgIGdhbV9ub2RlX2dldF9w
YXRoKG5vZGUpKTsKKyAgICBpZiAoZ19saXN0X2ZpbmQobWlzc2luZ19yZXNvdXJjZXMsIG5vZGUp
ID09IE5VTEwpIHsKKwltaXNzaW5nX3Jlc291cmNlcyA9IGdfbGlzdF9wcmVwZW5kKG1pc3Npbmdf
cmVzb3VyY2VzLCBub2RlKTsKKyAgICB9IGVsc2UgeworCUdBTV9ERUJVRyhERUJVR19JTkZPLCAi
ICBhbHJlYWR5IHJlZ2lzdGVyZWRcbiIpOworICAgIH0KK30KKworLyoqCisgKiBnYW1fcG9sbF9y
ZW1vdmVfbWlzc2luZzoKKyAqIEBub2RlOiBhIG1pc3Npbmcgbm9kZQorICoKKyAqIFJlbW92ZSBh
IG1pc3Npbmcgbm9kZSBmcm9tIHRoZSBsaXN0LgorICovCitzdGF0aWMgdm9pZAorZ2FtX3BvbGxf
cmVtb3ZlX21pc3NpbmcoR2FtTm9kZSAqbm9kZSkgeworICAgIEdBTV9ERUJVRyhERUJVR19JTkZP
LCAiUG9sbCByZW1vdmluZyBtaXNzaW5nIG5vZGUgJXNcbiIsCisgICAgICAgICAgICAgIGdhbV9u
b2RlX2dldF9wYXRoKG5vZGUpKTsKKyAgICBtaXNzaW5nX3Jlc291cmNlcyA9IGdfbGlzdF9yZW1v
dmVfYWxsKG1pc3NpbmdfcmVzb3VyY2VzLCBub2RlKTsKK30KKworLyoqCisgKiBnYW1fcG9sbF9h
ZGRfYnVzeToKKyAqIEBub2RlOiBhIGJ1c3kgbm9kZQorICoKKyAqIEFkZCBhIGJ1c3kgbm9kZSB0
byB0aGUgbGlzdCBmb3IgcG9sbGluZyBpdHMgY3JlYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitn
YW1fcG9sbF9hZGRfYnVzeShHYW1Ob2RlICpub2RlKSB7CisgICAgR0FNX0RFQlVHKERFQlVHX0lO
Rk8sICJQb2xsIGFkZGluZyBidXN5IG5vZGUgJXNcbiIsCisgICAgICAgICAgICAgIGdhbV9ub2Rl
X2dldF9wYXRoKG5vZGUpKTsKKyAgICBpZiAoZ19saXN0X2ZpbmQoYnVzeV9yZXNvdXJjZXMsIG5v
ZGUpID09IE5VTEwpIHsKKwlidXN5X3Jlc291cmNlcyA9IGdfbGlzdF9wcmVwZW5kKGJ1c3lfcmVz
b3VyY2VzLCBub2RlKTsKKyAgICB9IGVsc2UgeworCUdBTV9ERUJVRyhERUJVR19JTkZPLCAiICBh
bHJlYWR5IHJlZ2lzdGVyZWRcbiIpOworICAgIH0KK30KKworLyoqCisgKiBnYW1fcG9sbF9yZW1v
dmVfYnVzeToKKyAqIEBub2RlOiBhIGJ1c3kgbm9kZQorICoKKyAqIFJlbW92ZSBhIGJ1c3kgbm9k
ZSBmcm9tIHRoZSBsaXN0LgorICovCitzdGF0aWMgdm9pZAorZ2FtX3BvbGxfcmVtb3ZlX2J1c3ko
R2FtTm9kZSAqbm9kZSkgeworICAgIEdBTV9ERUJVRyhERUJVR19JTkZPLCAiUG9sbCByZW1vdmlu
ZyBidXN5IG5vZGUgJXNcbiIsCisgICAgICAgICAgICAgIGdhbV9ub2RlX2dldF9wYXRoKG5vZGUp
KTsKKyAgICBidXN5X3Jlc291cmNlcyA9IGdfbGlzdF9yZW1vdmVfYWxsKGJ1c3lfcmVzb3VyY2Vz
LCBub2RlKTsKK30KKworLyoqCisgKiB0cmlnZ2VyX2Rpcl9oYW5kbGVyOgorICogQHBhdGg6IHBh
dGggdG8gdGhlIGRpcmVjdG9yeQorICogQG1vZGU6IHR5cGUgb2Yga2VybmVsIG1vbml0b3Jpbmcg
YWN0aW9uCisgKgorICogSW50ZXJmYWNlIHRvIHRoZSBrZXJuZWwgbW9uaXRvcmluZyBsYXllciBm
b3IgZGlyZWN0b3JpZXMKKyAqLwogc3RhdGljIHZvaWQKLXRyaWdnZXJfZGlyX2hhbmRsZXIoY29u
c3QgY2hhciAqcGF0aCwgZ2Jvb2xlYW4gYWRkZWQpCit0cmlnZ2VyX2Rpcl9oYW5kbGVyKGNvbnN0
IGNoYXIgKnBhdGgsIHBvbGxIYW5kbGVyTW9kZSBtb2RlKQogewogICAgIGlmIChkaXJfaGFuZGxl
ciAhPSBOVUxMKQotICAgICAgICAoKmRpcl9oYW5kbGVyKSAocGF0aCwgYWRkZWQpOworICAgICAg
ICAoKmRpcl9oYW5kbGVyKSAocGF0aCwgbW9kZSk7CiB9CiAKKy8qKgorICogdHJpZ2dlcl9maWxl
X2hhbmRsZXI6CisgKiBAcGF0aDogcGF0aCB0byB0aGUgZmlsZQorICogQG1vZGU6IHR5cGUgb2Yg
a2VybmVsIG1vbml0b3JpbmcgYWN0aW9uCisgKgorICogSW50ZXJmYWNlIHRvIHRoZSBrZXJuZWwg
bW9uaXRvcmluZyBsYXllciBmb3IgZmlsZXMKKyAqLwogc3RhdGljIHZvaWQKLXRyaWdnZXJfZmls
ZV9oYW5kbGVyKGNvbnN0IGNoYXIgKnBhdGgsIGdib29sZWFuIGFkZGVkKQordHJpZ2dlcl9maWxl
X2hhbmRsZXIoY29uc3QgY2hhciAqcGF0aCwgcG9sbEhhbmRsZXJNb2RlIG1vZGUpCiB7CiAgICAg
aWYgKGZpbGVfaGFuZGxlciAhPSBOVUxMKQotICAgICAgICAoKmZpbGVfaGFuZGxlcikgKHBhdGgs
IGFkZGVkKTsKKyAgICAgICAgKCpmaWxlX2hhbmRsZXIpIChwYXRoLCBtb2RlKTsKIH0KIAorLyoq
CisgKiBub2RlX2FkZF9zdWJzY3JpcHRpb246CisgKiBAbm9kZTogdGhlIG5vZGUgdHJlZSBwb2lu
dGVyCisgKiBAc3ViOiB0aGUgcG9pbnRlciB0byB0aGUgc3Vic2NyaXB0aW9uCisgKgorICogcmVn
aXN0ZXIgYSBzdWJzY3JpcHRpb24gZm9yIHRoaXMgbm9kZQorICoKKyAqIFJldHVybnMgMCBpbiBj
YXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZQorICovCisKIHN0YXRpYyBp
bnQKIG5vZGVfYWRkX3N1YnNjcmlwdGlvbihHYW1Ob2RlICogbm9kZSwgR2FtU3Vic2NyaXB0aW9u
ICogc3ViKQogewpAQCAtMTE0LDEzICsxOTksMjMgQEAKICAgICB9CiAKICAgICBpZiAoZ2FtX25v
ZGVfaXNfZGlyKG5vZGUpKQotICAgICAgICB0cmlnZ2VyX2Rpcl9oYW5kbGVyKG5vZGUtPnBhdGgs
IFRSVUUpOworICAgICAgICB0cmlnZ2VyX2Rpcl9oYW5kbGVyKG5vZGUtPnBhdGgsIEdBTUlOX0FD
VElWQVRFKTsKICAgICBlbHNlCi0gICAgICAgIHRyaWdnZXJfZmlsZV9oYW5kbGVyKG5vZGUtPnBh
dGgsIFRSVUUpOworICAgICAgICB0cmlnZ2VyX2ZpbGVfaGFuZGxlcihub2RlLT5wYXRoLCBHQU1J
Tl9BQ1RJVkFURSk7CiAKICAgICByZXR1cm4oMCk7CiB9CiAKKy8qKgorICogbm9kZV9yZW1vdmVf
c3Vic2NyaXB0aW9uOgorICogQG5vZGU6IHRoZSBub2RlIHRyZWUgcG9pbnRlcgorICogQHN1Yjog
dGhlIHBvaW50ZXIgdG8gdGhlIHN1YnNjcmlwdGlvbgorICoKKyAqIFJlbW92ZXMgYSBzdWJzY3Jp
cHRpb24gZm9yIHRoaXMgbm9kZQorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3Mg
YW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZQorICovCisKIHN0YXRpYyBpbnQKIG5vZGVfcmVtb3Zl
X3N1YnNjcmlwdGlvbihHYW1Ob2RlICogbm9kZSwgR2FtU3Vic2NyaXB0aW9uICogc3ViKQogewpA
QCAtMTQ1LDI0ICsyNDAsMzMgQEAKICAgICAvKiBETm90aWZ5IG1ha2VzIG91ciBsaWZlIG1pc2Vy
YWJsZSBoZXJlICovCiAgICAgaWYgKGdhbV9zdWJzY3JpcHRpb25faXNfZGlyKHN1YikpIHsKIAlp
ZiAoZ2FtX25vZGVfaXNfZGlyKG5vZGUpKQotCSAgICB0cmlnZ2VyX2Rpcl9oYW5kbGVyKHBhdGgs
IEZBTFNFKTsKKwkgICAgdHJpZ2dlcl9kaXJfaGFuZGxlcihwYXRoLCBHQU1JTl9ERVNBQ1RJVkFU
RSk7CiAJZWxzZSB7CiAJICAgIGNoYXIgKmRpcjsKIAogCSAgICBkaXIgPSBnX3BhdGhfZ2V0X2Rp
cm5hbWUocGF0aCk7Ci0JICAgIHRyaWdnZXJfZmlsZV9oYW5kbGVyKGRpciwgRkFMU0UpOworCSAg
ICB0cmlnZ2VyX2ZpbGVfaGFuZGxlcihkaXIsIEdBTUlOX0RFU0FDVElWQVRFKTsKIAkgICAgZ19m
cmVlKGRpcik7CiAJfQogICAgIH0gZWxzZSB7CiAJaWYgKGdhbV9ub2RlX2lzX2Rpcihub2RlKSkK
LQkgICAgdHJpZ2dlcl9kaXJfaGFuZGxlcihwYXRoLCBGQUxTRSk7CisJICAgIHRyaWdnZXJfZGly
X2hhbmRsZXIocGF0aCwgR0FNSU5fREVTQUNUSVZBVEUpOwogCWVsc2UKLQkgICAgdHJpZ2dlcl9m
aWxlX2hhbmRsZXIocGF0aCwgRkFMU0UpOworCSAgICB0cmlnZ2VyX2ZpbGVfaGFuZGxlcihwYXRo
LCBHQU1JTl9ERVNBQ1RJVkFURSk7CiAgICAgfQogCiAgICAgcmV0dXJuKDApOwogfQogCisvKioK
KyAqIGdhbV9wb2xsX2RhdGFfbmV3OgorICogQHBhdGg6IHRoZSBwYXRoCisgKgorICogQ3JlYXRl
cyBhIG5ldyBkYXRhIGJsb2NrIGZvciB0aGF0IHBhdGgKKyAqCisgKiBSZXR1cm5zIHRoZSBwb2lu
dGVyIHRvIHRoZSBibG9jayBvciBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZQorICovCisKIHN0YXRp
YyBHYW1Qb2xsRGF0YSAqCiBnYW1fcG9sbF9kYXRhX25ldyhjb25zdCBjaGFyICpwYXRoKQogewpA
QCAtMTg5LDEzICsyOTMsMjggQEAKICAgICByZXR1cm4gZGF0YTsKIH0KIAorLyoqCisgKiBnYW1f
cG9sbF9kYXRhX2Rlc3Ryb3k6CisgKiBAZGF0YTogcG9pbnRlciB0byB0aGUgZGF0YSBibG9jawor
ICoKKyAqIERlc3Ryb3lzIGEgZGF0YSBibG9jay4KKyAqLworCitzdGF0aWMgdm9pZAorZ2FtX3Bv
bGxfZGF0YV9kZXN0cm95KEdhbVBvbGxEYXRhICogZGF0YSkKK3sKKyAgICBpZiAoZGF0YSAhPSBO
VUxMKSB7CisJaWYgKGRhdGEtPnBhdGggIT0gTlVMTCkKKwkgICAgZ19mcmVlKGRhdGEtPnBhdGgp
OworCWdfZnJlZShkYXRhKTsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkCi1nYW1fcG9sbF9lbWl0
X2V2ZW50KEdhbU5vZGUgKiBub2RlLCBHYW1pbkV2ZW50VHlwZSBldmVudCwKLSAgICAgICAgICAg
ICAgICAgICAgR0xpc3QgKiBleGlzdF9zdWJzKQorZ2FtX3BvbGxfZW1pdF9ldmVudChHYW1Ob2Rl
ICogbm9kZSwgR2FtaW5FdmVudFR5cGUgZXZlbnQpCiB7CiAgICAgR0xpc3QgKmw7CiAgICAgR2Ft
Tm9kZSAqcGFyZW50OwotICAgIEdhbVBvbGxEYXRhICpkYXRhOwogICAgIEdMaXN0ICpzdWJzOwog
ICAgIGludCBpc19kaXJfbm9kZSA9IGdhbV9ub2RlX2lzX2Rpcihub2RlKTsKIApAQCAtMjE1LDQ0
ICszMzQsMTEgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChleGlzdF9zdWJzKSB7Ci0K
LSAgICAgICAgZGF0YSA9IGdhbV9ub2RlX2dldF9kYXRhKG5vZGUpOwotCi0gICAgICAgIGZvciAo
bCA9IHN1YnM7IGw7IGwgPSBsLT5uZXh0KSB7Ci0gICAgICAgICAgICBHYW1TdWJzY3JpcHRpb24g
KnN1YiA9IGwtPmRhdGE7Ci0gICAgICAgICAgICBHYW1pbkV2ZW50VHlwZSBuZXdfZXZlbnQgPSBl
dmVudDsKLQkgICAgR0xpc3QgKnRtcDsKLQotICAgICAgICAgICAgaWYgKGdfbGlzdF9maW5kKGV4
aXN0X3N1YnMsIHN1YikpIHsKLSAgICAgICAgICAgICAgICBpZiAoKGRhdGEpICYmICghKGRhdGEt
PmZsYWdzICYgTU9OX01JU1NJTkcpKSkKLSAgICAgICAgICAgICAgICAgICAgbmV3X2V2ZW50ID0g
R0FNSU5fRVZFTlRfRVhJU1RTOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRtcCA9IGdfbGlz
dF9wcmVwZW5kKE5VTEwsIHN1Yik7Ci0gICAgICAgICAgICBnYW1fc2VydmVyX2VtaXRfZXZlbnQo
Z2FtX25vZGVfZ2V0X3BhdGgobm9kZSksIGlzX2Rpcl9ub2RlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld19ldmVudCwgdG1wLCAwKTsKLQkgICAgZ19saXN0X2ZyZWUodG1w
KTsKLQotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgCi0gICAgICAgIGdhbV9zZXJ2
ZXJfZW1pdF9ldmVudChnYW1fbm9kZV9nZXRfcGF0aChub2RlKSwgaXNfZGlyX25vZGUsIGV2ZW50
LAotCSAgICAgICAgICAgICAgICAgICAgICBzdWJzLCAwKTsKLSAgICB9CisgICAgZ2FtX3NlcnZl
cl9lbWl0X2V2ZW50KGdhbV9ub2RlX2dldF9wYXRoKG5vZGUpLCBpc19kaXJfbm9kZSwgZXZlbnQs
IHN1YnMsIDApOwogCiAgICAgZ19saXN0X2ZyZWUoc3Vicyk7CiB9CiAKLXN0YXRpYyB2b2lkCi1n
YW1fcG9sbF9kYXRhX2Rlc3Ryb3koR2FtUG9sbERhdGEgKiBkYXRhKQotewotICAgIGdfZnJlZShk
YXRhLT5wYXRoKTsKLSAgICBnX2ZyZWUoZGF0YSk7Ci19Ci0KIC8qKgogICogZ2FtX3BvbGxfZGVs
aXN0X25vZGU6CiAgKiBAbm9kZTogdGhlIG5vZGUgdG8gZGVsaXN0CkBAIC0yNjMsMTYgKzM0OSwy
MCBAQAogc3RhdGljIHZvaWQKIGdhbV9wb2xsX2RlbGlzdF9ub2RlKEdhbU5vZGUgKiBub2RlKSB7
CiAgICAgR0xpc3QgKnN1YnM7CisgICAgY29uc3QgY2hhciAqcGF0aDsKIAotICAgIEdBTV9ERUJV
RyhERUJVR19JTkZPLCAiZ2FtX3BvbGxfZGVsaXN0X25vZGUgJXNcbiIsCi0gICAgICAgICAgICAg
IGdhbV9ub2RlX2dldF9wYXRoKG5vZGUpKTsKKyAgICBwYXRoID0gZ2FtX25vZGVfZ2V0X3BhdGgo
bm9kZSk7CisgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sICJnYW1fcG9sbF9kZWxpc3Rfbm9kZSAl
c1xuIiwgcGF0aCk7CisKKyAgICBpZiAoZ2FtX2V4Y2x1ZGVfY2hlY2socGF0aCkpCisgICAgICAg
IHJldHVybjsKICAgICBzdWJzID0gZ2FtX25vZGVfZ2V0X3N1YnNjcmlwdGlvbnMobm9kZSk7CiAK
ICAgICB3aGlsZSAoc3VicyAhPSBOVUxMKSB7CiAJaWYgKGdhbV9ub2RlX2lzX2Rpcihub2RlKSkK
LQkgICAgdHJpZ2dlcl9kaXJfaGFuZGxlcihnYW1fbm9kZV9nZXRfcGF0aChub2RlKSwgRkFMU0Up
OworCSAgICB0cmlnZ2VyX2Rpcl9oYW5kbGVyKHBhdGgsIEdBTUlOX0RFU0FDVElWQVRFKTsKIAll
bHNlCi0JICAgIHRyaWdnZXJfZmlsZV9oYW5kbGVyKGdhbV9ub2RlX2dldF9wYXRoKG5vZGUpLCBG
QUxTRSk7CisJICAgIHRyaWdnZXJfZmlsZV9oYW5kbGVyKHBhdGgsIEdBTUlOX0RFU0FDVElWQVRF
KTsKIAlzdWJzID0gc3Vicy0+bmV4dDsKICAgICB9CiB9CkBAIC0yODcsMjAgKzM3Nyw2OCBAQAog
c3RhdGljIHZvaWQKIGdhbV9wb2xsX3JlbGlzdF9ub2RlKEdhbU5vZGUgKiBub2RlKSB7CiAgICAg
R0xpc3QgKnN1YnM7CisgICAgY29uc3QgY2hhciAqcGF0aDsKIAotICAgIEdBTV9ERUJVRyhERUJV
R19JTkZPLCAiZ2FtX3BvbGxfcmVsaXN0X25vZGUgJXNcbiIsCi0gICAgICAgICAgICAgIGdhbV9u
b2RlX2dldF9wYXRoKG5vZGUpKTsKKyAgICBwYXRoID0gZ2FtX25vZGVfZ2V0X3BhdGgobm9kZSk7
CisgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sICJnYW1fcG9sbF9yZWxpc3Rfbm9kZSAlc1xuIiwg
cGF0aCk7CisKKyAgICBpZiAoZ2FtX2V4Y2x1ZGVfY2hlY2socGF0aCkpCisgICAgICAgIHJldHVy
bjsKICAgICBzdWJzID0gZ2FtX25vZGVfZ2V0X3N1YnNjcmlwdGlvbnMobm9kZSk7CiAKICAgICB3
aGlsZSAoc3VicyAhPSBOVUxMKSB7CiAJaWYgKGdhbV9ub2RlX2lzX2Rpcihub2RlKSkKLQkgICAg
dHJpZ2dlcl9kaXJfaGFuZGxlcihnYW1fbm9kZV9nZXRfcGF0aChub2RlKSwgVFJVRSk7CisJICAg
IHRyaWdnZXJfZGlyX2hhbmRsZXIocGF0aCwgR0FNSU5fQUNUSVZBVEUpOwogCWVsc2UKLQkgICAg
dHJpZ2dlcl9maWxlX2hhbmRsZXIoZ2FtX25vZGVfZ2V0X3BhdGgobm9kZSksIFRSVUUpOworCSAg
ICB0cmlnZ2VyX2ZpbGVfaGFuZGxlcihwYXRoLCBHQU1JTl9BQ1RJVkFURSk7CiAJc3VicyA9IHN1
YnMtPm5leHQ7CiAgICAgfQogfQogCisvKioKKyAqIGdhbV9wb2xsX2Zsb3dvbl9ub2RlOgorICog
QG5vZGU6IHRoZSBub2RlIHRvIGRlbGlzdAorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IHdoZW4ga2VybmVsIG1vbml0b3JpbmcgZmxvdyBjb250cm9sIGZvciBhCisgKiBub2RlIHNob3Vs
ZCBiZSBzdGFydGVkCisgKi8KK3N0YXRpYyB2b2lkCitnYW1fcG9sbF9mbG93b25fbm9kZShHYW1O
b2RlICogbm9kZSkgeworICAgIGNvbnN0IGNoYXIgKnBhdGg7CisKKyAgICBwYXRoID0gZ2FtX25v
ZGVfZ2V0X3BhdGgobm9kZSk7CisgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sICJnYW1fcG9sbF9m
bG93b25fbm9kZSAlc1xuIixwYXRoKTsKKworICAgIGlmIChnYW1fZXhjbHVkZV9jaGVjayhwYXRo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdhbV9ub2RlX2lzX2Rpcihub2RlKSkKKwl0
cmlnZ2VyX2Rpcl9oYW5kbGVyKHBhdGgsIEdBTUlOX0ZMT1dDT05UUk9MU1RBUlQpOworICAgIGVs
c2UKKwl0cmlnZ2VyX2ZpbGVfaGFuZGxlcihwYXRoLCBHQU1JTl9GTE9XQ09OVFJPTFNUQVJUKTsK
K30KKworLyoqCisgKiBnYW1fcG9sbF9mbG93b2ZmX25vZGU6CisgKiBAbm9kZTogdGhlIG5vZGUg
dG8gZGVsaXN0CisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBrZXJuZWwgbW9u
aXRvcmluZyBmbG93IGNvbnRyb2wgZm9yIGEKKyAqIG5vZGUgc2hvdWxkIGJlIHN0YXJ0ZWQKKyAq
Lworc3RhdGljIHZvaWQKK2dhbV9wb2xsX2Zsb3dvZmZfbm9kZShHYW1Ob2RlICogbm9kZSkgewor
ICAgIGNvbnN0IGNoYXIgKnBhdGg7CisKKyAgICBwYXRoID0gZ2FtX25vZGVfZ2V0X3BhdGgobm9k
ZSk7CisgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sICJnYW1fcG9sbF9mbG93b2ZmX25vZGUgJXNc
biIsIHBhdGgpOworICAgIGlmIChnYW1fZXhjbHVkZV9jaGVjayhwYXRoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKGdhbV9ub2RlX2lzX2Rpcihub2RlKSkKKwl0cmlnZ2VyX2Rpcl9oYW5k
bGVyKHBhdGgsIEdBTUlOX0ZMT1dDT05UUk9MU1RPUCk7CisgICAgZWxzZQorCXRyaWdnZXJfZmls
ZV9oYW5kbGVyKHBhdGgsIEdBTUlOX0ZMT1dDT05UUk9MU1RPUCk7Cit9CiAKIHN0YXRpYyBHYW1p
bkV2ZW50VHlwZQogcG9sbF9maWxlKEdhbU5vZGUgKiBub2RlKQpAQCAtMzUwLDYgKzQ4OCw3IEBA
CiAgICAgICAgICAgICAvKiBkZWxldGVkICovCiAgICAgICAgICAgICBkYXRhLT5mbGFncyA9IE1P
Tl9NSVNTSU5HOwogCisJICAgIGdhbV9wb2xsX3JlbW92ZV9idXN5KG5vZGUpOwogCSAgICBpZiAo
Z2FtX25vZGVfZ2V0X3N1YnNjcmlwdGlvbnMobm9kZSkgIT0gTlVMTCkgewogCQlnYW1fcG9sbF9k
ZWxpc3Rfbm9kZShub2RlKTsKIAkgICAgICAgIGdhbV9wb2xsX2FkZF9taXNzaW5nKG5vZGUpOwpA
QCAtMzk4LDcgKzUzNyw3IEBACiAKICAgICAvKgogICAgICAqIGxvYWQgY29udHJvbCwgc3dpdGNo
IGJhY2sgdG8gcG9sbCBvbiB2ZXJ5IGJ1c3kgcmVzb3VyY2VzCi0gICAgICogYW5kIGJhY2sgd2hl
biBubyB1cGRhdGUgaGFzIGhhcHBlbmVkIGluIDEwIHNlY29uZHMKKyAgICAgKiBhbmQgYmFjayB3
aGVuIG5vIHVwZGF0ZSBoYXMgaGFwcGVuZWQgaW4gNSBzZWNvbmRzCiAgICAgICovCiAgICAgaWYg
KGN1cnJlbnRfdGltZSA9PSBkYXRhLT5sYXN0dGltZSkgewogCWlmICghKGRhdGEtPmZsYWdzICYg
TU9OX0JVU1kpKSB7CkBAIC00MTYsMjQgKzU1NSwzOCBAQAogICAgIH0KIAogICAgIGlmICgoZGF0
YS0+Y2hlY2tzID49IDQpICYmICghKGRhdGEtPmZsYWdzICYgTU9OX0JVU1kpKSkgewotCWlmIChn
YW1fbm9kZV9nZXRfc3Vic2NyaXB0aW9ucyhub2RlKSAhPSBOVUxMKSB7CisJaWYgKChnYW1fbm9k
ZV9nZXRfc3Vic2NyaXB0aW9ucyhub2RlKSAhPSBOVUxMKSAmJgorCSAgICAoIWdhbV9leGNsdWRl
X2NoZWNrKGRhdGEtPnBhdGgpKSkgewogCSAgICBHQU1fREVCVUcoREVCVUdfSU5GTywgInN3aXRj
aGluZyAlcyBiYWNrIHRvIHBvbGxpbmdcbiIsIHBhdGgpOwogCSAgICBkYXRhLT5mbGFncyB8PSBN
T05fQlVTWTsKIAkgICAgZGF0YS0+Y2hlY2tzID0gMDsKLQkgICAgZ2FtX3BvbGxfYWRkX21pc3Np
bmcobm9kZSk7Ci0JICAgIGdhbV9wb2xsX2RlbGlzdF9ub2RlKG5vZGUpOworCSAgICBnYW1fcG9s
bF9hZGRfYnVzeShub2RlKTsKKwkgICAgZ2FtX3BvbGxfZmxvd29uX25vZGUobm9kZSk7CisJICAg
IC8qCisJICAgICAqIEROb3RpZnkgY2FuIGJlIG5hc3R5IGhlcmUsIHdlIHdpbGwgbWlzcyBldmVu
dHMgZm9yIHBhcmVudCBkaXIKKwkgICAgICogaWYgd2UgYXJlIG5vdCBjYXJlZnVsIGFib3V0IGl0
CisJICAgICAqLworCSAgICBpZiAoIWdhbV9ub2RlX2lzX2Rpcihub2RlKSkgeworCSAgICAgICAg
R2FtTm9kZSAqcGFyZW50ID0gZ2FtX25vZGVfcGFyZW50KG5vZGUpOworCisJCWlmICgocGFyZW50
ICE9IE5VTEwpICYmCisJCSAgICAoZ2FtX25vZGVfZ2V0X3N1YnNjcmlwdGlvbnMocGFyZW50KSAh
PSBOVUxMKSkgeworCQkgICAgZ2FtX3BvbGxfYWRkX2J1c3kocGFyZW50KTsKKwkJICAgIC8qIGdh
bV9wb2xsX2Zsb3dvbl9ub2RlKHBhcmVudCk7ICovCisJCX0KKwkgICAgfQogCX0KICAgICB9CiAK
LSAgICBpZiAoKGV2ZW50ID09IDApICYmIChkYXRhLT5mbGFncyAmIE1PTl9CVVNZKSAmJiAoZGF0
YS0+Y2hlY2tzID4gMTApKSB7CisgICAgaWYgKChldmVudCA9PSAwKSAmJiAoZGF0YS0+ZmxhZ3Mg
JiBNT05fQlVTWSkgJiYgKGRhdGEtPmNoZWNrcyA+IDUpKSB7CiAJaWYgKChnYW1fbm9kZV9nZXRf
c3Vic2NyaXB0aW9ucyhub2RlKSAhPSBOVUxMKSAmJgogCSAgICAoIWdhbV9leGNsdWRlX2NoZWNr
KGRhdGEtPnBhdGgpKSkgewogCSAgICBHQU1fREVCVUcoREVCVUdfSU5GTywgInN3aXRjaGluZyAl
cyBiYWNrIHRvIGtlcm5lbCBtb25pdG9yaW5nXG4iLAogCSAgICAgICAgICAgICAgcGF0aCk7CiAJ
ICAgIGRhdGEtPmZsYWdzICY9IH5NT05fQlVTWTsKIAkgICAgZGF0YS0+Y2hlY2tzID0gMDsKLQkg
ICAgZ2FtX3BvbGxfcmVtb3ZlX21pc3Npbmcobm9kZSk7Ci0JICAgIGdhbV9wb2xsX3JlbGlzdF9u
b2RlKG5vZGUpOworCSAgICBnYW1fcG9sbF9yZW1vdmVfYnVzeShub2RlKTsKKwkgICAgZ2FtX3Bv
bGxfZmxvd29mZl9ub2RlKG5vZGUpOwogCX0KICAgICB9CiAKQEAgLTQ2Niw3ICs2MTksNyBAQAog
ICAgIGV2ZW50ID0gcG9sbF9maWxlKGRpcl9ub2RlKTsKIAogICAgIGlmIChldmVudCAhPSAwKQot
CWdhbV9wb2xsX2VtaXRfZXZlbnQoZGlyX25vZGUsIGV2ZW50LCBOVUxMKTsKKwlnYW1fcG9sbF9l
bWl0X2V2ZW50KGRpcl9ub2RlLCBldmVudCk7CiAKICAgICBkaXIgPSBnX2Rpcl9vcGVuKGRwYXRo
LCAwLCBOVUxMKTsKIApAQCAtNTIzLDcgKzY3Niw3IEBACiAJfQogCiAgICAgICAgIGlmIChmZXZl
bnQgIT0gMCkgewotICAgICAgICAgICAgZ2FtX3BvbGxfZW1pdF9ldmVudChub2RlLCBmZXZlbnQs
IE5VTEwpOworICAgICAgICAgICAgZ2FtX3BvbGxfZW1pdF9ldmVudChub2RlLCBmZXZlbnQpOwog
ICAgICAgICB9IGVsc2UgewogCSAgICBHYW1Qb2xsRGF0YSAqZGF0YTsKIApAQCAtNTYyLDYgKzcx
NSw5IEBACiAJICAgIGlmIChtaXNzaW5nX3Jlc291cmNlcyAhPSBOVUxMKSB7CiAJCWdhbV9wb2xs
X3JlbW92ZV9taXNzaW5nIChjaGlsZCk7CiAJICAgIH0KKwkgICAgaWYgKGJ1c3lfcmVzb3VyY2Vz
ICE9IE5VTEwpIHsKKwkJZ2FtX3BvbGxfcmVtb3ZlX2J1c3kgKGNoaWxkKTsKKwkgICAgfQogCSAg
ICBnYW1fdHJlZV9yZW1vdmUodHJlZSwgY2hpbGQpOwogCX0gZWxzZSB7CiAJICAgIHJlbW92ZV9k
aXIgPSBGQUxTRTsKQEAgLTU3OSw4ICs3MzUsOSBAQAogICAgIHN0YXRpYyBpbnQgaW5fcG9sbF9j
YWxsYmFjayA9IDA7CiAKICNpZmRlZiBWRVJCT1NFX1BPTEwKLSAgICBHQU1fREVCVUcoREVCVUdf
SU5GTywgImdhbV9wb2xsX3NjYW5fY2FsbGJhY2soKTogJWQsICVkIGl0ZW1zXG4iLAotICAgICAg
ICAgICAgICBpbl9wb2xsX2NhbGxiYWNrLCBnX2xpc3RfbGVuZ3RoKG1pc3NpbmdfcmVzb3VyY2Vz
KSk7CisgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sICJnYW1fcG9sbF9zY2FuX2NhbGxiYWNrKCk6
ICVkLCAlZCBtaXNzaW5nLCAlZCBidXN5XG4iLAorICAgICAgICAgICAgICBpbl9wb2xsX2NhbGxi
YWNrLCBnX2xpc3RfbGVuZ3RoKG1pc3NpbmdfcmVzb3VyY2VzKSwKKwkgICAgICBnX2xpc3RfbGVu
Z3RoKGJ1c3lfcmVzb3VyY2VzKSk7CiAjZW5kaWYKICAgICBpZiAoaW5fcG9sbF9jYWxsYmFjaykK
IAlyZXR1cm4oVFJVRSk7CkBAIC02MjAsNyArNzc3LDcgQEAKIAkgICAgR2FtaW5FdmVudFR5cGUg
ZXZlbnQ7CiAKIAkgICAgZXZlbnQgPSBwb2xsX2ZpbGUobm9kZSk7Ci0JICAgIGdhbV9wb2xsX2Vt
aXRfZXZlbnQobm9kZSwgZXZlbnQsIE5VTEwpOworCSAgICBnYW1fcG9sbF9lbWl0X2V2ZW50KG5v
ZGUsIGV2ZW50KTsKIAl9CiAKIAkvKgpAQCAtNjM1LDYgKzc5Miw1MiBAQAogCX0KICAgICB9CiAK
KyAgICBmb3IgKGlkeCA9IDA7O2lkeCsrKSB7CisJR2FtUG9sbERhdGEgKmRhdGE7CisJR2FtTm9k
ZSAqbm9kZTsKKwkKKwkvKgorCSAqIGRvIG5vdCBzaW1wbHkgd2FsayB0aGUgbGlzdCBhcyBpdCBt
YXkgYmUgbW9kaWZpZWQgaW4gdGhlIGNhbGxiYWNrCisJICovCisJbm9kZSA9IChHYW1Ob2RlICop
IGdfbGlzdF9udGhfZGF0YShidXN5X3Jlc291cmNlcywgaWR4KTsKKwkKKwlpZiAobm9kZSA9PSBO
VUxMKSB7CisjaWZkZWYgVkVSQk9TRV9QT0xMCisJICAgIEdBTV9ERUJVRyhERUJVR19JTkZPLCAi
ICBub2RlICVkID09IE5VTExcbiIsIGlkeCk7CisjZW5kaWYKKwkgICAgYnJlYWs7CisJfSAKKwlk
YXRhID0gZ2FtX25vZGVfZ2V0X2RhdGEobm9kZSk7CisJaWYgKGRhdGEgPT0gTlVMTCkgeworI2lm
ZGVmIFZFUkJPU0VfUE9MTAorCSAgICBHQU1fREVCVUcoREVCVUdfSU5GTywgIiAgZGF0YSAlZCA9
PSBOVUxMXG4iLCBpZHgpOworI2VuZGlmCisJICAgIGJyZWFrOworCX0gCisKKyNpZmRlZiBWRVJC
T1NFX1BPTEwKKwlHQU1fREVCVUcoREVCVUdfSU5GTywgIkNoZWNraW5nIGJ1c3kgZmlsZSAlcyIs
IGRhdGEtPnBhdGgpOworI2VuZGlmCisJaWYgKG5vZGUtPmlzX2RpcikgeworCSAgICBnYW1fcG9s
bF9zY2FuX2RpcmVjdG9yeV9pbnRlcm5hbChub2RlKTsKKwl9IGVsc2UgeworCSAgICBHYW1pbkV2
ZW50VHlwZSBldmVudDsKKworCSAgICBldmVudCA9IHBvbGxfZmlsZShub2RlKTsKKwkgICAgZ2Ft
X3BvbGxfZW1pdF9ldmVudChub2RlLCBldmVudCk7CisJfQorCisJLyoKKwkgKiBpZiB0aGUgcmVz
b3VyY2UgZXhpc3RzIGFnYWluIGFuZCBpcyBub3QgaW4gYSBzcGVjaWFsIG1vbml0b3JpbmcKKwkg
KiBtb2RlIHRoZW4gc3dpdGNoIGJhY2sgdG8gZG5vdGlmeSBmb3IgbW9uaXRvcmluZy4KKwkgKi8K
KwlpZiAoKGRhdGEtPmZsYWdzID09IDApICYmICghZ2FtX2V4Y2x1ZGVfY2hlY2soZGF0YS0+cGF0
aCkpKSB7CisJICAgIGdhbV9wb2xsX3JlbW92ZV9idXN5KG5vZGUpOworCSAgICBpZiAoZ2FtX25v
ZGVfZ2V0X3N1YnNjcmlwdGlvbnMobm9kZSkgIT0gTlVMTCkgeworCQlnYW1fcG9sbF9mbG93b2Zm
X25vZGUobm9kZSk7CisJICAgIH0KKwl9CisgICAgfQogICAgIGluX3BvbGxfY2FsbGJhY2sgPSAw
OwogICAgIHJldHVybihUUlVFKTsKIH0KQEAgLTY1NiwxMCArODU5LDEzIEBACiAKICAgICAgICAg
cGFyZW50ID0gZ2FtX25vZGVfcGFyZW50KG5vZGUpOwogICAgICAgICBpZiAobWlzc2luZ19yZXNv
dXJjZXMgIT0gTlVMTCkgewotCQlnYW1fcG9sbF9yZW1vdmVfbWlzc2luZyhub2RlKTsKKwkgICAg
Z2FtX3BvbGxfcmVtb3ZlX21pc3Npbmcobm9kZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJ1
c3lfcmVzb3VyY2VzICE9IE5VTEwpIHsKKwkgICAgZ2FtX3BvbGxfcmVtb3ZlX2J1c3kobm9kZSk7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKGFsbF9yZXNvdXJjZXMgIT0gTlVMTCkgewotICAgICAg
ICAgICAgICAgIGFsbF9yZXNvdXJjZXMgPSBnX2xpc3RfcmVtb3ZlIChhbGxfcmVzb3VyY2VzLCBu
b2RlKTsKKwkgICAgYWxsX3Jlc291cmNlcyA9IGdfbGlzdF9yZW1vdmUgKGFsbF9yZXNvdXJjZXMs
IG5vZGUpOwogICAgICAgICB9CiAJZ2FtX3RyZWVfcmVtb3ZlKHRyZWUsIG5vZGUpOwogICAgICAg
ICBwcnVuZV90cmVlKHBhcmVudCk7CkBAIC03NDEsNTcgKzk0Nyw2IEBACiAgICAgcmV0dXJuKFRS
VUUpOwogfQogCi0KLS8qKgotICogQGRlZmdyb3VwIFBvbGxpbmcgUG9sbGluZyBCYWNrZW5kCi0g
KiBAaW5ncm91cCBCYWNrZW5kcwotICogQGJyaWVmIFBvbGxpbmcgYmFja2VuZCBBUEkKLSAqCi0g
KiBUaGlzIGlzIHRoZSBkZWZhdWx0IGJhY2tlbmQgdXNlZCBpbiBHYW1pbi4gIEl0IGJhc2ljYWxs
eSBqdXN0IGNhbGxzCi0gKiBzdGF0KCkgb24gZmlsZXMvZGlyZWN0b3JpZXMgZXZlcnkgc28gb2Z0
ZW4gdG8gc2VlIHdoZW4gdGhpbmdzIGNoYW5nZS4gIFRoZQotICogc3RhdHRpbmcgaGFwcGVucyBp
biBhIHNlcGFyYXRlIHRocmVhZCwgY29udHJvbGxhYmxlIHdpdGggYXJndW1lbnRzIHRvCi0gKiAj
Z2FtX3BvbGxfaW5pdF9mdWxsKCkuCi0gKgotICogQHsKLSAqLwotCi0KLS8qKgotICogZ2FtX3Bv
bGxfYWRkX21pc3Npbmc6Ci0gKiBAbm9kZTogYSBtaXNzaW5nIG5vZGUKLSAqCi0gKiBBZGQgYSBt
aXNzaW5nIG5vZGUgdG8gdGhlIGxpc3QgZm9yIHBvbGxpbmcgaXRzIGNyZWF0aW9uLgotICovCi12
b2lkCi1nYW1fcG9sbF9hZGRfbWlzc2luZyhHYW1Ob2RlICpub2RlKSB7Ci0jaWYgMAotICAgIGZw
cmludGYoc3RkZXJyLCAiQWRkaW5nICVzIHRvIHBvbGxpbmdcbiIsIGdhbV9ub2RlX2dldF9wYXRo
KG5vZGUpKTsKLSNlbmRpZgotICAgIEdBTV9ERUJVRyhERUJVR19JTkZPLCAiUG9sbCBhZGRpbmcg
bWlzc2luZyBub2RlICVzXG4iLAotICAgICAgICAgICAgICBnYW1fbm9kZV9nZXRfcGF0aChub2Rl
KSk7Ci0gICAgaWYgKGdfbGlzdF9maW5kKG1pc3NpbmdfcmVzb3VyY2VzLCBub2RlKSA9PSBOVUxM
KSB7Ci0JbWlzc2luZ19yZXNvdXJjZXMgPSBnX2xpc3RfcHJlcGVuZChtaXNzaW5nX3Jlc291cmNl
cywgbm9kZSk7Ci0gICAgfSBlbHNlIHsKLQlHQU1fREVCVUcoREVCVUdfSU5GTywgIiAgYWxyZWFk
eSByZWdpc3RlcmVkXG4iKTsKLSAgICB9Ci19Ci0KLS8qKgotICogZ2FtX3BvbGxfcmVtb3ZlX21p
c3Npbmc6Ci0gKiBAbm9kZTogYSBtaXNzaW5nIG5vZGUKLSAqCi0gKiBSZW1vdmUgYSBtaXNzaW5n
IG5vZGUgZnJvbSB0aGUgbGlzdC4KLSAqLwotdm9pZAotZ2FtX3BvbGxfcmVtb3ZlX21pc3Npbmco
R2FtTm9kZSAqbm9kZSkgewotI2lmIDAKLSAgICBmcHJpbnRmKHN0ZGVyciwgIlJlbW92aW5nICVz
IGZyb20gcG9sbGluZ1xuIiwgZ2FtX25vZGVfZ2V0X3BhdGgobm9kZSkpOwotI2VuZGlmCi0gICAg
R0FNX0RFQlVHKERFQlVHX0lORk8sICJQb2xsIHJlbW92aW5nIG1pc3Npbmcgbm9kZSAlc1xuIiwK
LSAgICAgICAgICAgICAgZ2FtX25vZGVfZ2V0X3BhdGgobm9kZSkpOwotICAgIG1pc3NpbmdfcmVz
b3VyY2VzID0gZ19saXN0X3JlbW92ZV9hbGwobWlzc2luZ19yZXNvdXJjZXMsIG5vZGUpOwotfQot
CiAvKioKICAqIEluaXRpYWxpemVzIHRoZSBwb2xsaW5nIHN5c3RlbS4gIFRoaXMgbXVzdCBiZSBj
YWxsZWQgYmVmb3JlCiAgKiBhbnkgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlLgpAQCAt
ODg5LDYgKzEwNDQsOSBAQAogICAgICAgICAgICAgICAgIGlmIChtaXNzaW5nX3Jlc291cmNlcyAh
PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgIGdhbV9wb2xsX3JlbW92ZV9taXNzaW5nKG5v
ZGUpOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYnVzeV9yZXNvdXJj
ZXMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBnYW1fcG9sbF9yZW1vdmVfYnVzeShu
b2RlKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKGFsbF9yZXNvdXJj
ZXMgIT0gTlVMTCkgewogICAgICAgICAgICAgICAgICAgICBhbGxfcmVzb3VyY2VzID0gZ19saXN0
X3JlbW92ZShhbGxfcmVzb3VyY2VzLCBub2RlKTsKICAgICAgICAgICAgICAgICB9CkBAIC05MTIs
NiArMTA3MCw5IEBACiAgICAgICAgICAgICAgICAgaWYgKG1pc3NpbmdfcmVzb3VyY2VzICE9IE5V
TEwpIHsKICAgICAgICAgICAgICAgICAgICAgZ2FtX3BvbGxfcmVtb3ZlX21pc3Npbmcobm9kZSk7
CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChidXN5X3Jlc291cmNlcyAh
PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGdhbV9wb2xsX3JlbW92ZV9idXN5KG5vZGUp
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoYWxsX3Jlc291cmNlcyAh
PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgIGFsbF9yZXNvdXJjZXMgPSBnX2xpc3RfcmVt
b3ZlKGFsbF9yZXNvdXJjZXMsIG5vZGUpOwogICAgICAgICAgICAgICAgIH0KSW5kZXg6IHNlcnZl
ci9nYW1fZG5vdGlmeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvZ25vbWUvZ2FtaW4vc2Vy
dmVyL2dhbV9kbm90aWZ5LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjE2CmRpZmYgLXUgLXIxLjEzIC1yMS4xNgotLS0gc2VydmVyL2dhbV9kbm90aWZ5
LmMJMjAwNS8wMi8xNyAxNjoxOTo0NQkxLjEzCisrKyBzZXJ2ZXIvZ2FtX2Rub3RpZnkuYwkyMDA1
LzAzLzIzIDA5OjUwOjExCTEuMTYKQEAgLTQyLDYgKzQyLDcgQEAKICAgICBjaGFyICpwYXRoOwog
ICAgIGludCBmZDsKICAgICBpbnQgcmVmY291bnQ7CisgICAgaW50IGJ1c3k7CiB9IEROb3RpZnlE
YXRhOwogCiBzdGF0aWMgR0hhc2hUYWJsZSAqcGF0aF9oYXNoID0gTlVMTDsKQEAgLTY1LDYgKzY2
LDcgQEAKICAgICBkYXRhID0gZ19uZXcwKEROb3RpZnlEYXRhLCAxKTsKICAgICBkYXRhLT5wYXRo
ID0gZ19zdHJkdXAocGF0aCk7CiAgICAgZGF0YS0+ZmQgPSBmZDsKKyAgICBkYXRhLT5idXN5ID0g
MDsKICAgICBkYXRhLT5yZWZjb3VudCA9IDE7CiAKICAgICByZXR1cm4gZGF0YTsKQEAgLTc4LDIw
ICs4MCwzMyBAQAogfQogCiBzdGF0aWMgdm9pZAotZ2FtX2Rub3RpZnlfZGlyZWN0b3J5X2hhbmRs
ZXJfaW50ZXJuYWwoY29uc3QgY2hhciAqcGF0aCwgZ2Jvb2xlYW4gYWRkZWQpCitnYW1fZG5vdGlm
eV9kaXJlY3RvcnlfaGFuZGxlcl9pbnRlcm5hbChjb25zdCBjaGFyICpwYXRoLCBwb2xsSGFuZGxl
ck1vZGUgbW9kZSkKIHsKICAgICBETm90aWZ5RGF0YSAqZGF0YTsKICAgICBpbnQgZmQ7CiAKLSAg
ICBpZiAoYWRkZWQpIHsKLQlHQU1fREVCVUcoREVCVUdfSU5GTywgIkFkZGluZyAlcyB0byBkbm90
aWZ5XG4iLCBwYXRoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBHQU1fREVCVUcoREVCVUdfSU5G
TywgIlJlbW92aW5nICVzIGZyb20gZG5vdGlmeVxuIiwgcGF0aCk7CisgICAgc3dpdGNoIChtb2Rl
KSB7CisgICAgICAgIGNhc2UgR0FNSU5fQUNUSVZBVEU6CisJICAgIEdBTV9ERUJVRyhERUJVR19J
TkZPLCAiQWRkaW5nICVzIHRvIGRub3RpZnlcbiIsIHBhdGgpOworCSAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBHQU1JTl9ERVNBQ1RJVkFURToKKwkgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sICJS
ZW1vdmluZyAlcyBmcm9tIGRub3RpZnlcbiIsIHBhdGgpOworCSAgICBicmVhazsKKwljYXNlIEdB
TUlOX0ZMT1dDT05UUk9MU1RBUlQ6CisJICAgIEdBTV9ERUJVRyhERUJVR19JTkZPLCAiU3RhcnQg
ZmxvdyBjb250cm9sIGZvciAlc1xuIiwgcGF0aCk7CisJICAgIGJyZWFrOworCWNhc2UgR0FNSU5f
RkxPV0NPTlRST0xTVE9QOgorCSAgICBHQU1fREVCVUcoREVCVUdfSU5GTywgIlN0b3AgZmxvdyBj
b250cm9sIGZvciAlc1xuIiwgcGF0aCk7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIGdh
bV9lcnJvcihERUJVR19JTkZPLCAiVW5rbm93biBETm90aWZ5IG9wZXJhdGlvbiAlZCBmb3IgJXNc
biIsCisJICAgICAgICAgICAgICBtb2RlLCBwYXRoKTsKKwkgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIEdfTE9DSyhkbm90aWZ5KTsKIAotICAgIGlmIChhZGRlZCkgeworICAgIGlmIChtb2RlID09
IEdBTUlOX0FDVElWQVRFKSB7CiAKICAgICAgICAgaWYgKChkYXRhID0gZ19oYXNoX3RhYmxlX2xv
b2t1cChwYXRoX2hhc2gsIHBhdGgpKSAhPSBOVUxMKSB7CiAgICAgICAgICAgICBkYXRhLT5yZWZj
b3VudCsrOwpAQCAtMTIzLDggKzEzOCw4IEBACiAjaWZkZWYgR0FNSU5fREVCVUdfQVBJCiAgICAg
ICAgIGdhbV9kZWJ1Z19yZXBvcnQoR0FNRG5vdGlmeUNyZWF0ZSwgcGF0aCwgMCk7CiAjZW5kaWYK
LSAgICB9IGVsc2UgewotCWNoYXIgKmRpciA9IHBhdGg7CisgICAgfSBlbHNlIGlmIChtb2RlID09
IEdBTUlOX0RFU0FDVElWQVRFKSB7CisJY2hhciAqZGlyID0gKGNoYXIgKikgcGF0aDsKIAogICAg
ICAgICBkYXRhID0gZ19oYXNoX3RhYmxlX2xvb2t1cChwYXRoX2hhc2gsIHBhdGgpOwogCkBAIC0x
NjUsNDIgKzE4MCwxMDkgQEAKIAl9CiAJaWYgKChkaXIgIT0gcGF0aCkgJiYgKGRpciAhPSBOVUxM
KSkKIAkgICAgZ19mcmVlKGRpcik7CisgICAgfSBlbHNlIGlmICgobW9kZSA9PSBHQU1JTl9GTE9X
Q09OVFJPTFNUQVJUKSB8fAorICAgICAgICAgICAgICAgKG1vZGUgPT0gR0FNSU5fRkxPV0NPTlRS
T0xTVE9QKSkgeworCWNoYXIgKmRpciA9IChjaGFyICopIHBhdGg7CisKKwlkYXRhID0gZ19oYXNo
X3RhYmxlX2xvb2t1cChwYXRoX2hhc2gsIHBhdGgpOworCWlmICghZGF0YSkgeworCSAgICBkaXIg
PSBnX3BhdGhfZ2V0X2Rpcm5hbWUocGF0aCk7CisJICAgIGRhdGEgPSBnX2hhc2hfdGFibGVfbG9v
a3VwKHBhdGhfaGFzaCwgZGlyKTsKKworICAgICAgICAgICAgaWYgKCFkYXRhKSB7CisJCUdBTV9E
RUJVRyhERUJVR19JTkZPLCAiICBub3QgZm91bmQgISEhXG4iKTsKKworCQlpZiAoZGlyICE9IE5V
TEwpCisJCSAgICBnX2ZyZWUoZGlyKTsKKwkJR19VTkxPQ0soZG5vdGlmeSk7CisJCXJldHVybjsK
KwkgICAgfQorCSAgICBHQU1fREVCVUcoREVCVUdfSU5GTywgIiAgbm90IGZvdW5kIHVzaW5nIHBh
cmVudFxuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRhdGEgIT0gTlVMTCkgeworCSAgICBp
ZiAobW9kZSA9PSBHQU1JTl9GTE9XQ09OVFJPTFNUQVJUKSB7CisJCWlmIChkYXRhLT5mZCA+PSAw
KSB7CisJCSAgICBjbG9zZShkYXRhLT5mZCk7CisJCSAgICBnX2hhc2hfdGFibGVfcmVtb3ZlKGZk
X2hhc2gsIEdJTlRfVE9fUE9JTlRFUihkYXRhLT5mZCkpOworCQkgICAgZGF0YS0+ZmQgPSAtMTsK
KwkJICAgIEdBTV9ERUJVRyhERUJVR19JTkZPLCAiZGVhY3RpdmF0ZWQgRE5vdGlmeSBmb3IgJXNc
biIsCisJCQkgICAgICBkYXRhLT5wYXRoKTsKKyNpZmRlZiBHQU1JTl9ERUJVR19BUEkKKwkJICAg
IGdhbV9kZWJ1Z19yZXBvcnQoR0FNRG5vdGlmeUZsb3dPbiwgZGlyLCAwKTsKKyNlbmRpZgorCQl9
CisJCWRhdGEtPmJ1c3krKzsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGlmIChkYXRhLT5idXN5
ID4gMCkgeworCQkgICAgZGF0YS0+YnVzeS0tOworCQkgICAgaWYgKGRhdGEtPmJ1c3kgPT0gMCkg
eworCQkJZmQgPSBvcGVuKGRhdGEtPnBhdGgsIE9fUkRPTkxZKTsKKwkJCWlmIChmZCA8IDApIHsK
KwkJCSAgICBHX1VOTE9DSyhkbm90aWZ5KTsKKwkJCSAgICBHQU1fREVCVUcoREVCVUdfSU5GTywK
KwkJCSAgICAgICAgICAgICAgIkZhaWxlZCB0byByZWFjdGl2YXRlIEROb3RpZnkgZm9yICVzXG4i
LAorCQkJCSAgICAgIGRhdGEtPnBhdGgpOworCQkJICAgIGlmICgoZGlyICE9IHBhdGgpICYmIChk
aXIgIT0gTlVMTCkpCisJCQkJZ19mcmVlKGRpcik7CisJCQkgICAgcmV0dXJuOworCQkJfQorCQkJ
ZGF0YS0+ZmQgPSBmZDsKKwkJCWdfaGFzaF90YWJsZV9pbnNlcnQoZmRfaGFzaCwgR0lOVF9UT19Q
T0lOVEVSKGRhdGEtPmZkKSwKKwkJCSAgICAgICAgICAgICAgICAgICAgZGF0YSk7CisJCQlmY250
bChmZCwgRl9TRVRTSUcsIFNJR1JUTUlOKTsKKwkJCWZjbnRsKGZkLCBGX05PVElGWSwKKwkJCSAg
ICAgIEROX01PRElGWSB8IEROX0NSRUFURSB8IEROX0RFTEVURSB8IEROX1JFTkFNRSB8CisJCQkg
ICAgICBETl9BVFRSSUIgfCBETl9NVUxUSVNIT1QpOworCQkJR0FNX0RFQlVHKERFQlVHX0lORk8s
ICJSZWFjdGl2YXRlZCBETm90aWZ5IGZvciAlc1xuIiwKKwkJCSAgICAgICAgICBkYXRhLT5wYXRo
KTsKKyNpZmRlZiBHQU1JTl9ERUJVR19BUEkKKwkJCWdhbV9kZWJ1Z19yZXBvcnQoR0FNRG5vdGlm
eUZsb3dPZmYsIHBhdGgsIDApOworI2VuZGlmCisJCSAgICB9CisJCX0KKwkgICAgfQorCX0KKwlp
ZiAoKGRpciAhPSBwYXRoKSAmJiAoZGlyICE9IE5VTEwpKQorCSAgICBnX2ZyZWUoZGlyKTsKKyAg
ICB9IGVsc2UgeworCUdBTV9ERUJVRyhERUJVR19JTkZPLCAiVW5pbXBsZW1lbnRlZCBvcGVyYXRp
b25cbiIpOwogICAgIH0KIAogICAgIEdfVU5MT0NLKGRub3RpZnkpOwogfQogCiBzdGF0aWMgdm9p
ZAotZ2FtX2Rub3RpZnlfZGlyZWN0b3J5X2hhbmRsZXIoY29uc3QgY2hhciAqcGF0aCwgZ2Jvb2xl
YW4gYWRkZWQpCitnYW1fZG5vdGlmeV9kaXJlY3RvcnlfaGFuZGxlcihjb25zdCBjaGFyICpwYXRo
LCBwb2xsSGFuZGxlck1vZGUgbW9kZSkKIHsKICAgICBHQU1fREVCVUcoREVCVUdfSU5GTywgImdh
bV9kbm90aWZ5X2RpcmVjdG9yeV9oYW5kbGVyICVzIDogJWRcbiIsCi0gICAgICAgICAgICAgIHBh
dGgsIGFkZGVkKTsKKyAgICAgICAgICAgICAgcGF0aCwgbW9kZSk7CiAKLSAgICBpZiAoKCFhZGRl
ZCkgfHwgKGdfZmlsZV90ZXN0KHBhdGgsIEdfRklMRV9URVNUX0lTX0RJUikpKSB7Ci0JZ2FtX2Ru
b3RpZnlfZGlyZWN0b3J5X2hhbmRsZXJfaW50ZXJuYWwocGF0aCwgYWRkZWQpOworICAgIGlmICgo
bW9kZSA9PSBHQU1JTl9ERVNBQ1RJVkFURSkgfHwKKyAgICAgICAgKGdfZmlsZV90ZXN0KHBhdGgs
IEdfRklMRV9URVNUX0lTX0RJUikpKSB7CisJZ2FtX2Rub3RpZnlfZGlyZWN0b3J5X2hhbmRsZXJf
aW50ZXJuYWwocGF0aCwgbW9kZSk7CiAgICAgfSBlbHNlIHsKIAljaGFyICpkaXI7CiAKIAlkaXIg
PSBnX3BhdGhfZ2V0X2Rpcm5hbWUocGF0aCk7CiAJR0FNX0RFQlVHKERFQlVHX0lORk8sICIgbm90
IGEgZGlyIHVzaW5nIHBhcmVudCAlc1xuIiwgZGlyKTsKLQlnYW1fZG5vdGlmeV9kaXJlY3Rvcnlf
aGFuZGxlcl9pbnRlcm5hbChkaXIsIGFkZGVkKTsKKwlnYW1fZG5vdGlmeV9kaXJlY3RvcnlfaGFu
ZGxlcl9pbnRlcm5hbChkaXIsIG1vZGUpOwogCWdfZnJlZShkaXIpOwogICAgIH0KIH0KIAogc3Rh
dGljIHZvaWQKLWdhbV9kbm90aWZ5X2ZpbGVfaGFuZGxlcihjb25zdCBjaGFyICpwYXRoLCBnYm9v
bGVhbiBhZGRlZCkKK2dhbV9kbm90aWZ5X2ZpbGVfaGFuZGxlcihjb25zdCBjaGFyICpwYXRoLCBw
b2xsSGFuZGxlck1vZGUgbW9kZSkKIHsKLSAgICBHQU1fREVCVUcoREVCVUdfSU5GTywgImdhbV9k
bm90aWZ5X2ZpbGVfaGFuZGxlciAlcyA6ICVkXG4iLCBwYXRoLCBhZGRlZCk7CisgICAgR0FNX0RF
QlVHKERFQlVHX0lORk8sICJnYW1fZG5vdGlmeV9maWxlX2hhbmRsZXIgJXMgOiAlZFxuIiwgcGF0
aCwgbW9kZSk7CiAgICAgCiAgICAgaWYgKGdfZmlsZV90ZXN0KHBhdGgsIEdfRklMRV9URVNUX0lT
X0RJUikpIHsKLQlnYW1fZG5vdGlmeV9kaXJlY3RvcnlfaGFuZGxlcl9pbnRlcm5hbChwYXRoLCBh
ZGRlZCk7CisJZ2FtX2Rub3RpZnlfZGlyZWN0b3J5X2hhbmRsZXJfaW50ZXJuYWwocGF0aCwgbW9k
ZSk7CiAgICAgfSBlbHNlIHsKIAljaGFyICpkaXI7CiAKIAlkaXIgPSBnX3BhdGhfZ2V0X2Rpcm5h
bWUocGF0aCk7CiAJR0FNX0RFQlVHKERFQlVHX0lORk8sICIgbm90IGEgZGlyIHVzaW5nIHBhcmVu
dCAlc1xuIiwgZGlyKTsKLQlnYW1fZG5vdGlmeV9kaXJlY3RvcnlfaGFuZGxlcl9pbnRlcm5hbChk
aXIsIGFkZGVkKTsKKwlnYW1fZG5vdGlmeV9kaXJlY3RvcnlfaGFuZGxlcl9pbnRlcm5hbChkaXIs
IG1vZGUpOwogCWdfZnJlZShkaXIpOwogICAgIH0KIH0KSW5kZXg6IHNlcnZlci9nYW1fZGVidWdn
aW5nLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9nbm9tZS9nYW1pbi9zZXJ2ZXIvZ2FtX2Rl
YnVnZ2luZy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKcmV0cmlldmluZyByZXZpc2lvbiAx
LjIKZGlmZiAtdSAtcjEuMSAtcjEuMgotLS0gc2VydmVyL2dhbV9kZWJ1Z2dpbmcuYwkyMDA1LzAy
LzE3IDExOjUxOjM5CTEuMQorKysgc2VydmVyL2dhbV9kZWJ1Z2dpbmcuYwkyMDA1LzAzLzIzIDA5
OjUwOjExCTEuMgpAQCAtNTMsNiArNTMsOCBAQAogICAgICAgICBjYXNlIEdBTURub3RpZnlDcmVh
dGU6CiAgICAgICAgIGNhc2UgR0FNRG5vdGlmeURlbGV0ZToKICAgICAgICAgY2FzZSBHQU1Ebm90
aWZ5Q2hhbmdlOgorICAgICAgICBjYXNlIEdBTURub3RpZnlGbG93T246CisgICAgICAgIGNhc2Ug
R0FNRG5vdGlmeUZsb3dPZmY6CiAJICAgIGNvbm5saXN0ID0gZ2FtRGVidWdOb3RpZnk7CiAJICAg
IGJyZWFrOwogICAgIH0KSW5kZXg6IHNlcnZlci9nYW1fZGVidWdnaW5nLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9nbm9tZS9nYW1pbi9zZXJ2ZXIvZ2FtX2RlYnVnZ2luZy5oLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjEKcmV0cmlldmluZyByZXZpc2lvbiAxLjIKZGlmZiAtdSAtcjEuMSAt
cjEuMgotLS0gc2VydmVyL2dhbV9kZWJ1Z2dpbmcuaAkyMDA1LzAyLzE3IDExOjUxOjM5CTEuMQor
Kysgc2VydmVyL2dhbV9kZWJ1Z2dpbmcuaAkyMDA1LzAzLzIzIDA5OjUwOjExCTEuMgpAQCAtMTAs
NyArMTAsOSBAQAogdHlwZWRlZiBlbnVtIHsKICAgICBHQU1Ebm90aWZ5Q3JlYXRlPTEsCiAgICAg
R0FNRG5vdGlmeURlbGV0ZT0yLAotICAgIEdBTURub3RpZnlDaGFuZ2U9MworICAgIEdBTURub3Rp
ZnlDaGFuZ2U9MywKKyAgICBHQU1Ebm90aWZ5Rmxvd09uPTQsCisgICAgR0FNRG5vdGlmeUZsb3dP
ZmY9NQogfSBHQU1EZWJ1Z0V2ZW50OwogCiB2b2lkIGdhbV9kZWJ1Z19hZGQoR2FtQ29ubkRhdGFQ
dHIgY29ubiwgY29uc3QgY2hhciAqdmFsdWUsIGludCBvcHRpb25zKTsKSW5kZXg6IGxpYmdhbWlu
L2dhbV9hcGkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL2dub21lL2dhbWluL2xpYmdhbWlu
L2dhbV9hcGkuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMApyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMzIKZGlmZiAtdSAtcjEuMzAgLXIxLjMyCi0tLSBsaWJnYW1pbi9nYW1fYXBpLmMJMjAwNS8w
Mi8xNyAxMTo1MTozOAkxLjMwCisrKyBsaWJnYW1pbi9nYW1fYXBpLmMJMjAwNS8wMy8yNSAxMDow
Nzo0NgkxLjMyCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNs
dWRlIDxzeXMvc29ja2V0Lmg+CiAjaW5jbHVkZSA8c3lzL3VuLmg+CisjaW5jbHVkZSA8c3lzL3Vp
by5oPgogI2luY2x1ZGUgImZhbS5oIgogI2luY2x1ZGUgImdhbV9wcm90b2NvbC5oIgogI2luY2x1
ZGUgImdhbV9kYXRhLmgiCkBAIC0xODEsNyArMTgyLDYgQEAKICAgICBzbnByaW50ZihwYXRoLCBN
QVhQQVRITEVOLCAiL3RtcC9mYW0tJXMiLCB1c2VyKTsKICAgICBwYXRoW01BWFBBVEhMRU5dID0g
MDsKICAgICByZXQgPSBzdHJkdXAocGF0aCk7Ci0gICAgZnJlZSh1c2VyKTsKICAgICByZXR1cm4g
KHJldCk7CiB9CiAKQEAgLTQyMSw5ICs0MjEsMzUgQEAKIHsKICAgICBjaGFyIGRhdGFbMl0gPSB7
IDAsIDAgfTsKICAgICBpbnQgd3JpdHRlbjsKKyNpZiBkZWZpbmVkKEhBVkVfQ01TR0NSRUQpICYm
ICFkZWZpbmVkKExPQ0FMX0NSRURTKQorICAgIHN0cnVjdCB7CisJICAgIHN0cnVjdCBjbXNnaGRy
IGhkcjsKKwkgICAgc3RydWN0IGNtc2djcmVkIGNyZWQ7CisgICAgfSBjbXNnOworICAgIHN0cnVj
dCBpb3ZlYyBpb3Y7CisgICAgc3RydWN0IG1zZ2hkciBtc2c7CisKKyAgICBpb3YuaW92X2Jhc2Ug
PSAmZGF0YVswXTsKKyAgICBpb3YuaW92X2xlbiA9IDE7CisKKyAgICBtZW1zZXQgKCZtc2csIDAs
IHNpemVvZiAobXNnKSk7CisgICAgbXNnLm1zZ19pb3YgPSAmaW92OworICAgIG1zZy5tc2dfaW92
bGVuID0gMTsKKworICAgIG1zZy5tc2dfY29udHJvbCA9ICZjbXNnOworICAgIG1zZy5tc2dfY29u
dHJvbGxlbiA9IHNpemVvZiAoY21zZyk7CisgICAgbWVtc2V0ICgmY21zZywgMCwgc2l6ZW9mIChj
bXNnKSk7CisgICAgY21zZy5oZHIuY21zZ19sZW4gPSBzaXplb2YgKGNtc2cpOworICAgIGNtc2cu
aGRyLmNtc2dfbGV2ZWwgPSBTT0xfU09DS0VUOworICAgIGNtc2cuaGRyLmNtc2dfdHlwZSA9IFND
TV9DUkVEUzsKKyNlbmRpZgogCiByZXRyeToKKyNpZiBkZWZpbmVkKEhBVkVfQ01TR0NSRUQpICYm
ICFkZWZpbmVkKExPQ0FMX0NSRURTKQorICAgIHdyaXR0ZW4gPSBzZW5kbXNnKGZkLCAmbXNnLCAw
KTsKKyNlbHNlCiAgICAgd3JpdHRlbiA9IHdyaXRlKGZkLCAmZGF0YVswXSwgMSk7CisjZW5kaWYK
ICAgICBpZiAod3JpdHRlbiA8IDApIHsKICAgICAgICAgaWYgKGVycm5vID09IEVJTlRSKQogICAg
ICAgICAgICAgZ290byByZXRyeTsKQEAgLTYxNiw4ICs2NDIsMTAgQEAKICAgICBnaWRfdCBjX2dp
ZDsKIAogI2lmZGVmIEhBVkVfQ01TR0NSRUQKLSAgICBjaGFyIGNtc2dtZW1bQ01TR19TUEFDRShz
aXplb2Yoc3RydWN0IGNtc2djcmVkKSldOwotICAgIHN0cnVjdCBjbXNnaGRyICpjbXNnID0gKHN0
cnVjdCBjbXNnaGRyICopIGNtc2dtZW07CisgICAgc3RydWN0IHsKKwkgICAgc3RydWN0IGNtc2do
ZHIgaGRyOworCSAgICBzdHJ1Y3QgY21zZ2NyZWQgY3JlZDsKKyAgICB9IGNtc2c7CiAjZW5kaWYK
IAogICAgIHNfdWlkID0gZ2V0dWlkKCk7CkBAIC02NDIsOSArNjcwLDkgQEAKICAgICBtc2cubXNn
X2lvdmxlbiA9IDE7CiAKICNpZmRlZiBIQVZFX0NNU0dDUkVECi0gICAgbWVtc2V0KGNtc2dtZW0s
IDAsIHNpemVvZihjbXNnbWVtKSk7Ci0gICAgbXNnLm1zZ19jb250cm9sID0gY21zZ21lbTsKLSAg
ICBtc2cubXNnX2NvbnRyb2xsZW4gPSBzaXplb2YoY21zZ21lbSk7CisgICAgbWVtc2V0KCZjbXNn
LCAwLCBzaXplb2YoY21zZykpOworICAgIG1zZy5tc2dfY29udHJvbCA9ICZjbXNnOworICAgIG1z
Zy5tc2dfY29udHJvbGxlbiA9IHNpemVvZihjbXNnKTsKICNlbmRpZgogCiByZXRyeToKQEAgLTY2
MSw3ICs2ODksNyBAQAogICAgICAgICBnb3RvIGZhaWxlZDsKICAgICB9CiAjaWZkZWYgSEFWRV9D
TVNHQ1JFRAotICAgIGlmIChjbXNnLT5jbXNnX2xlbiA8IHNpemVvZihjbXNnbWVtKSB8fCBjbXNn
LT5jbXNnX3R5cGUgIT0gU0NNX0NSRURTKSB7CisgICAgaWYgKGNtc2cuaGRyLmNtc2dfbGVuIDwg
c2l6ZW9mKGNtc2cpIHx8IGNtc2cuaGRyLmNtc2dfdHlwZSAhPSBTQ01fQ1JFRFMpIHsKICAgICAg
ICAgR0FNX0RFQlVHKERFQlVHX0lORk8sCiAgICAgICAgICAgICAgICAgICAiTWVzc2FnZSBmcm9t
IHJlY3Ztc2coKSB3YXMgbm90IFNDTV9DUkVEU1xuIik7CiAgICAgICAgIGdvdG8gZmFpbGVkOwpA
QCAtNjg3LDEzICs3MTUsOSBAQAogICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIH0K
ICNlbGlmIGRlZmluZWQoSEFWRV9DTVNHQ1JFRCkKLSAgICAgICAgc3RydWN0IGNtc2djcmVkICpj
cmVkOwotCi0gICAgICAgIGNyZWQgPSAoc3RydWN0IGNtc2djcmVkICopIENNU0dfREFUQShjbXNn
KTsKLQotICAgICAgICBjX3BpZCA9IGNyZWQtPmNtY3JlZF9waWQ7Ci0gICAgICAgIGNfdWlkID0g
Y3JlZC0+Y21jcmVkX2V1aWQ7Ci0gICAgICAgIGNfZ2lkID0gY3JlZC0+Y21jcmVkX2dyb3Vwc1sw
XTsKKyAgICAgICAgY19waWQgPSBjbXNnLmNyZWQuY21jcmVkX3BpZDsKKyAgICAgICAgY191aWQg
PSBjbXNnLmNyZWQuY21jcmVkX2V1aWQ7CisgICAgICAgIGNfZ2lkID0gY21zZy5jcmVkLmNtY3Jl
ZF9ncm91cHNbMF07CiAjZWxzZSAvKiAhU09fUEVFUkNSRUQgJiYgIUhBVkVfQ01TR0NSRUQgKi8K
ICAgICAgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sCiAgICAgICAgICAgICAgICAgICAiU29ja2V0
IGNyZWRlbnRpYWxzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBPU1xuIik7CkluZGV4OiBzZXJ2ZXIv
Z2FtX2NoYW5uZWwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL2dub21lL2dhbWluL3NlcnZl
ci9nYW1fY2hhbm5lbC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwCnJldHJpZXZpbmcgcmV2
aXNpb24gMS4xMgpkaWZmIC11IC1yMS4xMCAtcjEuMTIKLS0tIHNlcnZlci9nYW1fY2hhbm5lbC5j
CTIwMDUvMDEvMjggMTU6NTg6MjIJMS4xMAorKysgc2VydmVyL2dhbV9jaGFubmVsLmMJMjAwNS8w
My8yNSAxMDowNzo0NwkxLjEyCkBAIC02LDYgKzYsNyBAQAogI2luY2x1ZGUgPHN5cy9zb2NrZXQu
aD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHN5cy91bi5oPgorI2luY2x1ZGUg
PHN5cy91aW8uaD4KICNpbmNsdWRlICJnYW1fZXJyb3IuaCIKICNpbmNsdWRlICJnYW1fY29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgImdhbV9jaGFubmVsLmgiCkBAIC00OSw4ICs1MCwxMCBAQAogICAg
IGdpZF90IGNfZ2lkOwogCiAjaWZkZWYgSEFWRV9DTVNHQ1JFRAotICAgIGNoYXIgY21zZ21lbVtD
TVNHX1NQQUNFKHNpemVvZihzdHJ1Y3QgY21zZ2NyZWQpKV07Ci0gICAgc3RydWN0IGNtc2doZHIg
KmNtc2cgPSAoc3RydWN0IGNtc2doZHIgKikgY21zZ21lbTsKKyAgICBzdHJ1Y3QgeworCSAgICBz
dHJ1Y3QgY21zZ2hkciBoZHI7CisJICAgIHN0cnVjdCBjbXNnY3JlZCBjcmVkOworICAgIH0gY21z
ZzsKICNlbmRpZgogCiAgICAgc191aWQgPSBnZXR1aWQoKTsKQEAgLTc1LDkgKzc4LDkgQEAKICAg
ICBtc2cubXNnX2lvdmxlbiA9IDE7CiAKICNpZmRlZiBIQVZFX0NNU0dDUkVECi0gICAgbWVtc2V0
KGNtc2dtZW0sIDAsIHNpemVvZihjbXNnbWVtKSk7Ci0gICAgbXNnLm1zZ19jb250cm9sID0gY21z
Z21lbTsKLSAgICBtc2cubXNnX2NvbnRyb2xsZW4gPSBzaXplb2YoY21zZ21lbSk7CisgICAgbWVt
c2V0KCZjbXNnLCAwLCBzaXplb2YoY21zZykpOworICAgIG1zZy5tc2dfY29udHJvbCA9ICZjbXNn
OworICAgIG1zZy5tc2dfY29udHJvbGxlbiA9IHNpemVvZihjbXNnKTsKICNlbmRpZgogCiAgIHJl
dHJ5OgpAQCAtOTQsNyArOTcsNyBAQAogICAgICAgICBnb3RvIGZhaWxlZDsKICAgICB9CiAjaWZk
ZWYgSEFWRV9DTVNHQ1JFRAotICAgIGlmIChjbXNnLT5jbXNnX2xlbiA8IHNpemVvZihjbXNnbWVt
KSB8fCBjbXNnLT5jbXNnX3R5cGUgIT0gU0NNX0NSRURTKSB7CisgICAgaWYgKGNtc2cuaGRyLmNt
c2dfbGVuIDwgc2l6ZW9mKGNtc2cpIHx8IGNtc2cuaGRyLmNtc2dfdHlwZSAhPSBTQ01fQ1JFRFMp
IHsKICAgICAgICAgR0FNX0RFQlVHKERFQlVHX0lORk8sCiAgICAgICAgICAgICAgICAgICAiTWVz
c2FnZSBmcm9tIHJlY3Ztc2coKSB3YXMgbm90IFNDTV9DUkVEU1xuIik7CiAgICAgICAgIGdvdG8g
ZmFpbGVkOwpAQCAtMTIwLDEzICsxMjMsOSBAQAogICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAg
ICAgICAgIH0KICNlbGlmIGRlZmluZWQoSEFWRV9DTVNHQ1JFRCkKLSAgICAgICAgc3RydWN0IGNt
c2djcmVkICpjcmVkOwotCi0gICAgICAgIGNyZWQgPSAoc3RydWN0IGNtc2djcmVkICopIENNU0df
REFUQShjbXNnKTsKLQotICAgICAgICBjX3BpZCA9IGNyZWQtPmNtY3JlZF9waWQ7Ci0gICAgICAg
IGNfdWlkID0gY3JlZC0+Y21jcmVkX2V1aWQ7Ci0gICAgICAgIGNfZ2lkID0gY3JlZC0+Y21jcmVk
X2dyb3Vwc1swXTsKKwljX3BpZCA9IGNtc2cuY3JlZC5jbWNyZWRfcGlkOworCWNfdWlkID0gY21z
Zy5jcmVkLmNtY3JlZF9ldWlkOworCWNfZ2lkID0gY21zZy5jcmVkLmNtY3JlZF9ncm91cHNbMF07
CiAjZWxzZSAvKiAhU09fUEVFUkNSRUQgJiYgIUhBVkVfQ01TR0NSRUQgKi8KICAgICAgICAgR0FN
X0RFQlVHKERFQlVHX0lORk8sCiAgICAgICAgICAgICAgICAgICAiU29ja2V0IGNyZWRlbnRpYWxz
IG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBPU1xuIik7CkBAIC0zMDUsNiArMzA0LDcgQEAKICAgICAg
ICAgZ2FtX2NsaWVudF9pZCA9IGdfZ2V0ZW52KCJHQU1fQ0xJRU5UX0lEIik7CiAgICAgICAgIGlm
IChnYW1fY2xpZW50X2lkID09IE5VTEwpIHsKICAgICAgICAgICAgIEdBTV9ERUJVRyhERUJVR19J
TkZPLCAiRXJyb3IgZ2V0dGluZyBHQU1fQ0xJRU5UX0lEXG4iKTsKKwkgICAgZ2FtX2NsaWVudF9p
ZCA9ICIiOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgZ2FtX2NsaWVudF9pZCA9
IHNlc3Npb247CkluZGV4OiBjb25maWd1cmUuaW4gCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
Z25vbWUvZ2FtaW4vY29uZmlndXJlLmluLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQxCnJldHJp
ZXZpbmcgcmV2aXNpb24gMS40MgpkaWZmIC11IC1yMS40MSAtcjEuNDIKLS0tIGNvbmZpZ3VyZS5p
bgkyMDA1LzAzLzE1IDEyOjQ3OjI1CTEuNDEKKysrIGNvbmZpZ3VyZS5pbgkyMDA1LzAzLzI1IDEw
OjA3OjQ2CTEuNDIKQEAgLTE0OSw3ICsxNDksNyBAQAogQU1fQ09ORElUSU9OQUwoR0FNSU5fREVC
VUcsIHRlc3QgeCRkZWJ1ZyA9IHh5ZXMpCiAKIGRlYnVnX2FwaT1ubwotaWYgdGVzdCAiYGhvc3Ru
YW1lYCIgPT0gInBhcGhpbyIgLWEgImBwd2RgIiA9PSAiL3UvdmVpbGxhcmQvZ2FtaW4iCitpZiB0
ZXN0ICJgaG9zdG5hbWVgIiA9ICJwYXBoaW8iIC1hICJgcHdkYCIgPSAiL3UvdmVpbGxhcmQvZ2Ft
aW4iCiB0aGVuCiAgICAgZGVidWdfYXBpPXllcwogZmkKQEAgLTQwMyw3ICs0MDMsNyBAQAogQUNf
U1VCU1QoUFlUSE9OX1ZFUlNJT04pCiBBQ19TVUJTVChQWVRIT05fU1VCRElSKQogQUNfU1VCU1Qo
UFlUSE9OX0lOQ0xVREVTKQotQUNfU1VCU1QoUFlUSE9OX1BZVEhPTl9TSVRFX1BBQ0tBR0VTKQor
QUNfU1VCU1QoUFlUSE9OX1NJVEVfUEFDS0FHRVMpCiAKIGRubCA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>54478</attachid>
            <date>2005-03-25 14:21 0000</date>
            <desc>new ebuild</desc>
            <filename>gamin-0.0.26-r6.ebuild</filename>
            <type>application/octet-stream</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA1IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L2FwcC1hZG1pbi9nYW1pbi9nYW1pbi0wLjAuMjYt
cjUuZWJ1aWxkLHYgMS4xIDIwMDUvMDMvMjEgMjE6NTE6MDYgZm9zZXIgRXhwICQKCmluaGVyaXQg
ZXV0aWxzCgpERVNDUklQVElPTj0iTGlicmFyeSBwcm92aWRpbmcgdGhlIEZBTSBGaWxlIEFsdGVy
YXRpb24gTW9uaXRvciBBUEkiCkhPTUVQQUdFPSJodHRwOi8vd3d3Lmdub21lLm9yZy9+dmVpbGxh
cmQvZ2FtaW4vIgpTUkNfVVJJPSJodHRwOi8vd3d3Lmdub21lLm9yZy9+dmVpbGxhcmQvZ2FtaW4v
c291cmNlcy8ke1B9LnRhci5neiIKCkxJQ0VOU0U9IkxHUEwtMiIKU0xPVD0iMCIKS0VZV09SRFM9
In54ODYgfmFtZDY0IH5hcm0gfmhwcGEgfmlhNjQgfnBwYyB+czM5MCIKSVVTRT0iZGVidWcgZG9j
IgoKUkRFUEVORD0idmlydHVhbC9saWJjCgk+PWRldi1saWJzL2dsaWItMgoJIWFwcC1hZG1pbi9m
YW0iCgpERVBFTkQ9IiR7UkRFUEVORH0KCWRldi11dGlsL3BrZ2NvbmZpZyIKClBST1ZJREU9InZp
cnR1YWwvZmFtIgoKc3JjX3VucGFjaygpIHsKCgl1bnBhY2sgJHtBfQoKCWNkICR7U30KCSMgcGF0
Y2ggdG8gd29yayB3aXRoIGlub3RpZnkgMC4yMQoJZXBhdGNoICR7RklMRVNESVJ9LyR7UH0tY3Zz
X3VwZGF0ZS5wYXRjaAoKfQoKc3JjX2NvbXBpbGUoKSB7CglsaWJ0b29saXplIC0tY29weSAtLWZv
cmNlCgllY29uZiBcCgkJLS1lbmFibGUtaW5vdGlmeSBcCgkJYHVzZV9lbmFibGUgZGVidWdgIFwK
CQlgdXNlX2VuYWJsZSBkZWJ1ZyBkZWJ1Zy1hcGlgIFwKCQl8fCBkaWUKCgllbWFrZSB8fCBkaWUg
ImVtYWtlIGZhaWxlZCIKCn0KCnNyY19pbnN0YWxsKCkgewoKCW1ha2UgREVTVERJUj0iJHtEfSIg
aW5zdGFsbCB8fCBkaWUKCglkb2RvYyBBVVRIT1JTIENoYW5nZUxvZyBSRUFETUUgVE9ETyBORVdT
IGRvYy8qdHh0CgoJdXNlIGRvYyAmJiBkb2h0bWwgZG9jLyoKCn0KCnBrZ19wb3N0aW5zdCgpIHsK
CgllaW5mbyAiSXQgaXMgc3Ryb25nbHkgc3VnZ2VzdGVkIHlvdSB1c2UgR2FtaW4gd2l0aCBhbiBp
bm90aWZ5IGVuYWJsZWQiCgllaW5mbyAia2VybmVsIGZvciBiZXN0IHBlcmZvcm1hbmNlLiBGb3Ig
dGhpcyByZWxlYXNlIG9mIGdhbWluIHlvdSBuZWVkIgoJZWluZm8gImF0IGxlYXN0IGFuIGlub3Rp
ZnktMC4yMSBwYXRjaGVkIGtlcm5lbC4iCgp9Cg==
</data>        

          </attachment>
    </bug>

</bugzilla>