From owner-freebsd-gnome@FreeBSD.ORG Mon Oct 27 19:42:24 2003 Return-Path: Delivered-To: freebsd-gnome@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C385116A4CE for ; Mon, 27 Oct 2003 19:42:24 -0800 (PST) Received: from smtp.uol.com.br (smtp.uol.com.br [200.221.11.52]) by mx1.FreeBSD.org (Postfix) with ESMTP id 47D8743FD7 for ; Mon, 27 Oct 2003 19:42:23 -0800 (PST) (envelope-from fallenbr@uol.com.br) Received: from localhost (200-161-255-54.dsl.telesp.net.br [200.161.255.54]) by toole.uol.com.br (Postfix) with ESMTP id 1D3F3149E4C for ; Tue, 28 Oct 2003 01:42:34 -0200 (BRST) Date: Tue, 28 Oct 2003 00:45:37 -0200 From: Konrad Scorciapino To: gnome@freebsd.org Message-Id: <20031028004537.560aa8c7.fallenbr@uol.com.br> Organization: X-Mailer: Sylpheed version 0.9.5-gtk2-20030906 (GTK+ 2.2.4; i386-portbld-freebsd4.8) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Tue__28_Oct_2003_00_45_37_-0200_08340a00" Subject: Cannot compile GNUCASH X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Oct 2003 03:42:24 -0000 This is a multi-part message in MIME format. --Multipart_Tue__28_Oct_2003_00_45_37_-0200_08340a00 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hello, I am not being able to `make` GNUCASH... Here is the output: ... checking for ltdl.h... no configure: error: Cannot find ltdl.h -- libtool-devel not installed? ===> Script "configure" failed unexpectedly. Please report the problem to gnome@FreeBSD.org [maintainer] and attach the "/usr/ports/finance/gnucash/work/gnucash-1.8.7/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. an `ls /var/db/pkg`). *** Error code 1 Stop in /usr/ports/finance/gnucash. konrad@localhost /usr/ports/finance/gnucash # --Multipart_Tue__28_Oct_2003_00_45_37_-0200_08340a00 Content-Type: application/octet-stream; name="config.log" Content-Disposition: attachment; filename="config.log" Content-Transfer-Encoding: base64 VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCmNvbmZpZ3VyZTo4NDE6IGNoZWNraW5nIGZvciBub24tR05VIGxkCmNvbmZp Z3VyZTo4NzY6IGNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKC91c3IvYmluL2xkKSBpcyBHTlUgbGQK R05VIGxkIHZlcnNpb24gMi4xMi4xIFtGcmVlQlNEXSAyMDAyLTA3LTIwCmNvbmZpZ3VyZTo4OTc6 IGNoZWNraW5nIGZvciBnY2MKY29uZmlndXJlOjEwMTA6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMg Y29tcGlsZXIgKGNjIC1PIC1waXBlICApIHdvcmtzCmNvbmZpZ3VyZToxMDI2OiBjYyAtbyBjb25m dGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUg IGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1 CmNvbmZpZ3VyZToxMDUyOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIChjYyAtTyAt cGlwZSAgKSBpcyBhIGNyb3NzLWNvbXBpbGVyCmNvbmZpZ3VyZToxMDU3OiBjaGVja2luZyB3aGV0 aGVyIHdlIGFyZSB1c2luZyBHTlUgQwpjb25maWd1cmU6MTA2NjogY2MgLUUgY29uZnRlc3QuYwpj b25maWd1cmU6MTA4NTogY2hlY2tpbmcgd2hldGhlciBjYyBhY2NlcHRzIC1nCmNvbmZpZ3VyZTox MTU3OiBjaGVja2luZyBmb3IgYSBCU0QgY29tcGF0aWJsZSBpbnN0YWxsCmNvbmZpZ3VyZToxMjEw OiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUKY29uZmlndXJlOjEy Njc6IGNoZWNraW5nIHdoZXRoZXIgZ21ha2Ugc2V0cyAke01BS0V9CmNvbmZpZ3VyZToxMzEzOiBj aGVja2luZyBmb3Igd29ya2luZyBhY2xvY2FsCmNvbmZpZ3VyZToxMzI2OiBjaGVja2luZyBmb3Ig d29ya2luZyBhdXRvY29uZgpjb25maWd1cmU6MTMzOTogY2hlY2tpbmcgZm9yIHdvcmtpbmcgYXV0 b21ha2UKY29uZmlndXJlOjEzNTI6IGNoZWNraW5nIGZvciB3b3JraW5nIGF1dG9oZWFkZXIKY29u ZmlndXJlOjEzNjU6IGNoZWNraW5nIGZvciB3b3JraW5nIG1ha2VpbmZvCmNvbmZpZ3VyZToxNDM2 OiBjaGVja2luZyBmb3IgcGVybApjb25maWd1cmU6MTUwNjogY2hlY2tpbmcgaG93IHRvIHJ1biB0 aGUgQyBwcmVwcm9jZXNzb3IKY29uZmlndXJlOjE1Mjc6IGNjIC1FIC1JL3Vzci9sb2NhbC9pbmNs dWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0 Lm91dApjb25maWd1cmU6MTU4NzogY2hlY2tpbmcgZm9yIGludHR5cGVzLmgKY29uZmlndXJlOjE2 MDA6IGNjIC1jIC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5j bHVkZSBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZp Z3VyZToxNTk2OiBzeW50YXggZXJyb3IgYmVmb3JlIGBpJwpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKI2xpbmUgMTU5MiAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8aW50dHlwZXMuaD4KaW50IG1haW4oKSB7CnVp bnRtYXhfdCBpID0gKHVpbnRtYXhfdCkgLTE7CjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjE2MjI6 IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6MTYzNTogY2MgLWMgLU8gLXBpcGUgIC1J L3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpj b25maWd1cmU6MTYyOTogc3RkaW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmln dXJlOiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZpZ3VyZToxNjMxOiBzeW50YXggZXJyb3IgYmVm b3JlIGBpJwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMTYyNyAiY29uZmln dXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVk ZSA8c3RkaW50Lmg+CmludCBtYWluKCkgewp1aW50bWF4X3QgaSA9ICh1aW50bWF4X3QpIC0xOwo7 IHJldHVybiAwOyB9CmNvbmZpZ3VyZToxNjU3OiBjaGVja2luZyBmb3IgdW5zaWduZWQgbG9uZyBs b25nCmNvbmZpZ3VyZToxNjcwOiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2Fs L2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xp YiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZToxNzA4OiBjaGVja2luZyBm b3Igc2hhcmVkIGxpYnJhcnkgcnVuIHBhdGggb3JpZ2luCmNvbmZpZ3VyZToxNzU3OiBjaGVja2lu ZyBob3N0IHN5c3RlbSB0eXBlCmNvbmZpZ3VyZToxNzgwOiBjaGVja2luZyBmb3IgcmFubGliCmNv bmZpZ3VyZToxODA5OiBjaGVja2luZyBmb3Igc3RyZXJyb3IgaW4gLWxjcG9zaXgKY29uZmlndXJl OjE4Mjg6IGNjIC1vIGNvbmZ0ZXN0IC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91 c3IvWDExUjYvaW5jbHVkZSAgY29uZnRlc3QuYyAtbGNwb3NpeCAgLUwvdXNyL2xvY2FsL2xpYiAt TC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1Ci91c3IvbGliZXhlYy9lbGYvbGQ6IGNhbm5vdCBm aW5kIC1sY3Bvc2l4CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxODE3ICJj b25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpj aGFyIHN0cmVycm9yKCk7CgppbnQgbWFpbigpIHsKc3RyZXJyb3IoKQo7IHJldHVybiAwOyB9CmNv bmZpZ3VyZToxODUxOiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcwpjb25maWd1cmU6 MTg2NDogY2MgLUUgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29u ZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxOTMxOiBjYyAtbyBj b25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1 ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAx PiY1CmNvbmZpZ3VyZToxOTU1OiBjaGVja2luZyBmb3Igd29ya2luZyBjb25zdApjb25maWd1cmU6 MjAwOTogY2MgLWMgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9p bmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6MjAzMDogY2hlY2tpbmcgZm9yIGlubGlu ZQpjb25maWd1cmU6MjA0NDogY2MgLWMgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1J L3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6MjA3MDogY2hlY2tp bmcgZm9yIG9mZl90CmNvbmZpZ3VyZToyMTAzOiBjaGVja2luZyBmb3Igc2l6ZV90CmNvbmZpZ3Vy ZToyMTM4OiBjaGVja2luZyBmb3Igd29ya2luZyBhbGxvY2EuaApjb25maWd1cmU6MjE1MDogY2Mg LW8gY29uZnRlc3QgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9p bmNsdWRlICBjb25mdGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGlu dGwgMT4mNQpjb25maWd1cmU6MjE0NDogYWxsb2NhLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDIxNDMgImNvbmZpZ3VyZSIK I2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNsdWRlIDxhbGxvY2EuaD4KaW50IG1haW4oKSB7CmNo YXIgKnAgPSBhbGxvY2EoMiAqIHNpemVvZihpbnQpKTsKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6 MjE3MTogY2hlY2tpbmcgZm9yIGFsbG9jYQpjb25maWd1cmU6MjIwNDogY2MgLW8gY29uZnRlc3Qg LU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlICBjb25m dGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGludGwgMT4mNQpjb25m aWd1cmU6MjM3MzogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oCmNvbmZpZ3VyZToyMzgzOiBjYyAtRSAt SS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jID4vZGV2 L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjIzNzM6IGNoZWNraW5nIGZvciB1bmlzdGQu aApjb25maWd1cmU6MjM4MzogY2MgLUUgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2 L2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToy MzczOiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6MjM4MzogY2MgLUUgLUkvdXNy L2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxs IDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToyMzczOiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgK Y29uZmlndXJlOjIzODM6IGNjIC1FIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9p bmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MjQx MjogY2hlY2tpbmcgZm9yIGdldHBhZ2VzaXplCmNvbmZpZ3VyZToyNDQwOiBjYyAtbyBjb25mdGVz dCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNv bmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNv bmZpZ3VyZToyNDY1OiBjaGVja2luZyBmb3Igd29ya2luZyBtbWFwCmNvbmZpZ3VyZToyNjI2OiBj YyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2 L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1s aW50bCAxPiY1CmNvbmZpZ3VyZToyNTU3OiBjb25mbGljdGluZyB0eXBlcyBmb3IgYG1hbGxvYycK L3Vzci9pbmNsdWRlL3N0ZGxpYi5oOjEwMTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgYG1hbGxv YycKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI0NzMgImNvbmZpZ3VyZSIK I2luY2x1ZGUgImNvbmZkZWZzLmgiCgovKiBUaGFua3MgdG8gTWlrZSBIYWVydGVsIGFuZCBKaW0g QXZlcmEgZm9yIHRoaXMgdGVzdC4KICAgSGVyZSBpcyBhIG1hdHJpeCBvZiBtbWFwIHBvc3NpYmls aXRpZXM6CgltbWFwIHByaXZhdGUgbm90IGZpeGVkCgltbWFwIHByaXZhdGUgZml4ZWQgYXQgc29t ZXdoZXJlIGN1cnJlbnRseSB1bm1hcHBlZAoJbW1hcCBwcml2YXRlIGZpeGVkIGF0IHNvbWV3aGVy ZSBhbHJlYWR5IG1hcHBlZAoJbW1hcCBzaGFyZWQgbm90IGZpeGVkCgltbWFwIHNoYXJlZCBmaXhl ZCBhdCBzb21ld2hlcmUgY3VycmVudGx5IHVubWFwcGVkCgltbWFwIHNoYXJlZCBmaXhlZCBhdCBz b21ld2hlcmUgYWxyZWFkeSBtYXBwZWQKICAgRm9yIHByaXZhdGUgbWFwcGluZ3MsIHdlIHNob3Vs ZCB2ZXJpZnkgdGhhdCBjaGFuZ2VzIGNhbm5vdCBiZSByZWFkKCkKICAgYmFjayBmcm9tIHRoZSBm aWxlLCBub3IgbW1hcCdzIGJhY2sgZnJvbSB0aGUgZmlsZSBhdCBhIGRpZmZlcmVudAogICBhZGRy ZXNzLiAgKFRoZXJlIGhhdmUgYmVlbiBzeXN0ZW1zIHdoZXJlIHByaXZhdGUgd2FzIG5vdCBjb3Jy ZWN0bHkKICAgaW1wbGVtZW50ZWQgbGlrZSB0aGUgaW5mYW1vdXMgaTM4NiBzdnI0LjAsIGFuZCBz eXN0ZW1zIHdoZXJlIHRoZQogICBWTSBwYWdlIGNhY2hlIHdhcyBub3QgY29oZXJlbnQgd2l0aCB0 aGUgZmlsZXN5c3RlbSBidWZmZXIgY2FjaGUKICAgbGlrZSBlYXJseSB2ZXJzaW9ucyBvZiBGcmVl QlNEIGFuZCBwb3NzaWJseSBjb250ZW1wb3JhcnkgTmV0QlNELikKICAgRm9yIHNoYXJlZCBtYXBw aW5ncywgd2Ugc2hvdWxkIGNvbnZlcnNlbHkgdmVyaWZ5IHRoYXQgY2hhbmdlcyBnZXQKICAgcHJv cG9nYXRlZCBiYWNrIHRvIGFsbCB0aGUgcGxhY2VzIHRoZXkncmUgc3VwcG9zZWQgdG8gYmUuCgog ICBHcmVwIHdhbnRzIHByaXZhdGUgZml4ZWQgYWxyZWFkeSBtYXBwZWQuCiAgIFRoZSBtYWluIHRo aW5ncyBncmVwIG5lZWRzIHRvIGtub3cgYWJvdXQgbW1hcCBhcmU6CiAgICogZG9lcyBpdCBleGlz dCBhbmQgaXMgaXQgc2FmZSB0byB3cml0ZSBpbnRvIHRoZSBtbWFwJ2QgYXJlYQogICAqIGhvdyB0 byB1c2UgaXQgKEJTRCB2YXJpYW50cykgICovCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1 ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDxzeXMvbW1hbi5oPgoKI2lmIEhBVkVfU1lTX1RZUEVTX0gK IyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2VuZGlmCgojaWYgSEFWRV9TVERMSUJfSAojIGluY2x1 ZGUgPHN0ZGxpYi5oPgojZW5kaWYKCiNpZiBIQVZFX1NZU19TVEFUX0gKIyBpbmNsdWRlIDxzeXMv c3RhdC5oPgojZW5kaWYKCiNpZiBIQVZFX1VOSVNURF9ICiMgaW5jbHVkZSA8dW5pc3RkLmg+CiNl bmRpZgoKLyogVGhpcyBtZXNzIHdhcyBjb3BpZWQgZnJvbSB0aGUgR05VIGdldHBhZ2VzaXplLmgu ICAqLwojaWZuZGVmIEhBVkVfR0VUUEFHRVNJWkUKCi8qIEFzc3VtZSB0aGF0IGFsbCBzeXN0ZW1z IHRoYXQgY2FuIHJ1biBjb25maWd1cmUgaGF2ZSBzeXMvcGFyYW0uaC4gICovCiMgaWZuZGVmIEhB VkVfU1lTX1BBUkFNX0gKIyAgZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQojIGVuZGlmCgojIGlm ZGVmIF9TQ19QQUdFU0laRQojICBkZWZpbmUgZ2V0cGFnZXNpemUoKSBzeXNjb25mKF9TQ19QQUdF U0laRSkKIyBlbHNlIC8qIG5vIF9TQ19QQUdFU0laRSAqLwojICBpZmRlZiBIQVZFX1NZU19QQVJB TV9ICiMgICBpbmNsdWRlIDxzeXMvcGFyYW0uaD4KIyAgIGlmZGVmIEVYRUNfUEFHRVNJWkUKIyAg ICBkZWZpbmUgZ2V0cGFnZXNpemUoKSBFWEVDX1BBR0VTSVpFCiMgICBlbHNlIC8qIG5vIEVYRUNf UEFHRVNJWkUgKi8KIyAgICBpZmRlZiBOQlBHCiMgICAgIGRlZmluZSBnZXRwYWdlc2l6ZSgpIE5C UEcgKiBDTFNJWkUKIyAgICAgaWZuZGVmIENMU0laRQojICAgICAgZGVmaW5lIENMU0laRSAxCiMg ICAgIGVuZGlmIC8qIG5vIENMU0laRSAqLwojICAgIGVsc2UgLyogbm8gTkJQRyAqLwojICAgICBp ZmRlZiBOQlBDCiMgICAgICBkZWZpbmUgZ2V0cGFnZXNpemUoKSBOQlBDCiMgICAgIGVsc2UgLyog bm8gTkJQQyAqLwojICAgICAgaWZkZWYgUEFHRVNJWkUKIyAgICAgICBkZWZpbmUgZ2V0cGFnZXNp emUoKSBQQUdFU0laRQojICAgICAgZW5kaWYgLyogUEFHRVNJWkUgKi8KIyAgICAgZW5kaWYgLyog bm8gTkJQQyAqLwojICAgIGVuZGlmIC8qIG5vIE5CUEcgKi8KIyAgIGVuZGlmIC8qIG5vIEVYRUNf UEFHRVNJWkUgKi8KIyAgZWxzZSAvKiBubyBIQVZFX1NZU19QQVJBTV9IICovCiMgICBkZWZpbmUg Z2V0cGFnZXNpemUoKSA4MTkyCS8qIHB1bnQgdG90YWxseSAqLwojICBlbmRpZiAvKiBubyBIQVZF X1NZU19QQVJBTV9IICovCiMgZW5kaWYgLyogbm8gX1NDX1BBR0VTSVpFICovCgojZW5kaWYgLyog bm8gSEFWRV9HRVRQQUdFU0laRSAqLwoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgeyB2 b2lkICptYWxsb2ModW5zaWduZWQpOyB9CiNlbHNlCmNoYXIgKm1hbGxvYygpOwojZW5kaWYKCmlu dAptYWluKCkKewoJY2hhciAqZGF0YSwgKmRhdGEyLCAqZGF0YTM7CglpbnQgaSwgcGFnZXNpemU7 CglpbnQgZmQ7CgoJcGFnZXNpemUgPSBnZXRwYWdlc2l6ZSgpOwoKCS8qCgkgKiBGaXJzdCwgbWFr ZSBhIGZpbGUgd2l0aCBzb21lIGtub3duIGdhcmJhZ2UgaW4gaXQuCgkgKi8KCWRhdGEgPSBtYWxs b2MocGFnZXNpemUpOwoJaWYgKCFkYXRhKQoJCWV4aXQoMSk7Cglmb3IgKGkgPSAwOyBpIDwgcGFn ZXNpemU7ICsraSkKCQkqKGRhdGEgKyBpKSA9IHJhbmQoKTsKCXVtYXNrKDApOwoJZmQgPSBjcmVh dCgiY29uZnRlc3RtbWFwIiwgMDYwMCk7CglpZiAoZmQgPCAwKQoJCWV4aXQoMSk7CglpZiAod3Jp dGUoZmQsIGRhdGEsIHBhZ2VzaXplKSAhPSBwYWdlc2l6ZSkKCQlleGl0KDEpOwoJY2xvc2UoZmQp OwoKCS8qCgkgKiBOZXh0LCB0cnkgdG8gbW1hcCB0aGUgZmlsZSBhdCBhIGZpeGVkIGFkZHJlc3Mg d2hpY2gKCSAqIGFscmVhZHkgaGFzIHNvbWV0aGluZyBlbHNlIGFsbG9jYXRlZCBhdCBpdC4gIElm IHdlIGNhbiwKCSAqIGFsc28gbWFrZSBzdXJlIHRoYXQgd2Ugc2VlIHRoZSBzYW1lIGdhcmJhZ2Uu CgkgKi8KCWZkID0gb3BlbigiY29uZnRlc3RtbWFwIiwgT19SRFdSKTsKCWlmIChmZCA8IDApCgkJ ZXhpdCgxKTsKCWRhdGEyID0gbWFsbG9jKDIgKiBwYWdlc2l6ZSk7CglpZiAoIWRhdGEyKQoJCWV4 aXQoMSk7CglkYXRhMiArPSAocGFnZXNpemUgLSAoKGludCkgZGF0YTIgJiAocGFnZXNpemUgLSAx KSkpICYgKHBhZ2VzaXplIC0gMSk7CglpZiAoZGF0YTIgIT0gbW1hcChkYXRhMiwgcGFnZXNpemUs IFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCgkgICAgTUFQX1BSSVZBVEUgfCBNQVBfRklYRUQsIGZk LCAwTCkpCgkJZXhpdCgxKTsKCWZvciAoaSA9IDA7IGkgPCBwYWdlc2l6ZTsgKytpKQoJCWlmICgq KGRhdGEgKyBpKSAhPSAqKGRhdGEyICsgaSkpCgkJCWV4aXQoMSk7CgoJLyoKCSAqIEZpbmFsbHks IG1ha2Ugc3VyZSB0aGF0IGNoYW5nZXMgdG8gdGhlIG1hcHBlZCBhcmVhCgkgKiBkbyBub3QgcGVy Y29sYXRlIGJhY2sgdG8gdGhlIGZpbGUgYXMgc2VlbiBieSByZWFkKCkuCgkgKiAoVGhpcyBpcyBh IGJ1ZyBvbiBzb21lIHZhcmlhbnRzIG9mIGkzODYgc3ZyNC4wLikKCSAqLwoJZm9yIChpID0gMDsg aSA8IHBhZ2VzaXplOyArK2kpCgkJKihkYXRhMiArIGkpID0gKihkYXRhMiArIGkpICsgMTsKCWRh dGEzID0gbWFsbG9jKHBhZ2VzaXplKTsKCWlmICghZGF0YTMpCgkJZXhpdCgxKTsKCWlmIChyZWFk KGZkLCBkYXRhMywgcGFnZXNpemUpICE9IHBhZ2VzaXplKQoJCWV4aXQoMSk7Cglmb3IgKGkgPSAw OyBpIDwgcGFnZXNpemU7ICsraSkKCQlpZiAoKihkYXRhICsgaSkgIT0gKihkYXRhMyArIGkpKQoJ CQlleGl0KDEpOwoJY2xvc2UoZmQpOwoJdW5saW5rKCJjb25mdGVzdG1tYXAiKTsKCWV4aXQoMCk7 Cn0KCmNvbmZpZ3VyZToyNjUwOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05V IEMgTGlicmFyeSAyLjEgb3IgbmV3ZXIKY29uZmlndXJlOjI2NTc6IGZlYXR1cmVzLmg6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjI2ODg6IGNoZWNraW5nIHdoZXRoZXIgaW50 ZWdlciBkaXZpc2lvbiBieSB6ZXJvIHJhaXNlcyBTSUdGUEUKY29uZmlndXJlOjI3NDU6IGNjIC1v IGNvbmZ0ZXN0IC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5j bHVkZSAgY29uZnRlc3QuYyAtTC91c3IvbG9jYWwvbGliIC1ML3Vzci9YMTFSNi9saWIgLWxpbnRs IDE+JjUKY29uZmlndXJlOjI3ODY6IGNoZWNraW5nIGZvciBpbnR0eXBlcy5oCmNvbmZpZ3VyZToy ODAwOiBjYyAtYyAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2lu Y2x1ZGUgY29uZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZToyODI1OiBjaGVja2luZyB3aGV0aGVyIHRo ZSBpbnR0eXBlcy5oIFBSSXhOTiBtYWNyb3MgYXJlIGJyb2tlbgpjb25maWd1cmU6Mjg0MjogY2Mg LWMgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNv bmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6MzI1MzogY2hlY2tpbmcgZm9yIG1zZ2ZtdApjb25maWd1 cmU6MzI4ODogY2hlY2tpbmcgZm9yIGdtc2dmbXQKY29uZmlndXJlOjMzMjU6IGNoZWNraW5nIGZv ciB4Z2V0dGV4dApjb25maWd1cmU6MzM2MjogY2hlY2tpbmcgZm9yIG1zZ21lcmdlCmNvbmZpZ3Vy ZTozNDI1OiBjaGVja2luZyBmb3IgYXJnei5oCmNvbmZpZ3VyZTozNDM1OiBjYyAtRSAtSS91c3Iv bG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jID4vZGV2L251bGwg Mj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjM0MzE6IGFyZ3ouaDogTm8gc3VjaCBmaWxlIG9yIGRp cmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzQzMCAiY29uZmln dXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPGFyZ3ouaD4KY29uZmlndXJlOjM0 MjU6IGNoZWNraW5nIGZvciBsaW1pdHMuaApjb25maWd1cmU6MzQzNTogY2MgLUUgLUkvdXNyL2xv Y2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+ Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZTozNDI1OiBjaGVja2luZyBmb3IgbG9jYWxlLmgKY29uZmln dXJlOjM0MzU6IGNjIC1FIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRl IGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MzQyNTogY2hl Y2tpbmcgZm9yIG5sX3R5cGVzLmgKY29uZmlndXJlOjM0MzU6IGNjIC1FIC1JL3Vzci9sb2NhbC9p bmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0 ZXN0Lm91dApjb25maWd1cmU6MzQyNTogY2hlY2tpbmcgZm9yIG1hbGxvYy5oCmNvbmZpZ3VyZToz NDM1OiBjYyAtRSAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25m dGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNv bmZpZ3VyZTozNDMxOgovdXNyL2luY2x1ZGUvbWFsbG9jLmg6Mjogd2FybmluZzogI3dhcm5pbmcg InRoaXMgZmlsZSBpbmNsdWRlcyA8bWFsbG9jLmg+IHdoaWNoIGlzIGRlcHJlY2F0ZWQsIHVzZSA8 c3RkbGliLmg+IGluc3RlYWQiCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAz NDMwICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgojaW5jbHVkZSA8bWFsbG9jLmg+ CmNvbmZpZ3VyZTozNDI1OiBjaGVja2luZyBmb3Igc3RkZGVmLmgKY29uZmlndXJlOjM0MzU6IGNj IC1FIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMg Pi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MzQyNTogY2hlY2tpbmcgZm9yIHN0 ZGxpYi5oCmNvbmZpZ3VyZTozNDI1OiBjaGVja2luZyBmb3Igc3RyaW5nLmgKY29uZmlndXJlOjM0 MzU6IGNjIC1FIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0 ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MzQyNTogY2hlY2tpbmcg Zm9yIHVuaXN0ZC5oCmNvbmZpZ3VyZTozNDI1OiBjaGVja2luZyBmb3Igc3lzL3BhcmFtLmgKY29u ZmlndXJlOjM0MzU6IGNjIC1FIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNs dWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MzQ2Njog Y2hlY2tpbmcgZm9yIGZlb2ZfdW5sb2NrZWQKY29uZmlndXJlOjM0OTQ6IGNjIC1vIGNvbmZ0ZXN0 IC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSAgY29u ZnRlc3QuYyAtTC91c3IvbG9jYWwvbGliIC1ML3Vzci9YMTFSNi9saWIgLWxpbnRsIDE+JjUKL3Rt cC9jY3hBaWJDMS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvY2N4QWliQzEubygudGV4dCsw eDcpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBmZW9mX3VubG9ja2VkJwpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzQ3MSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRl ZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBmZW9m X3VubG9ja2VkKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBh bnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1 c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2My CiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg YXBwbHkuICAqLwpjaGFyIGZlb2ZfdW5sb2NrZWQoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0 dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFs IG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2Zlb2ZfdW5sb2NrZWQp IHx8IGRlZmluZWQgKF9fc3R1Yl9fX2Zlb2ZfdW5sb2NrZWQpCmNob2tlIG1lCiNlbHNlCmZlb2Zf dW5sb2NrZWQoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTozNDY2OiBjaGVja2lu ZyBmb3IgZmdldHNfdW5sb2NrZWQKY29uZmlndXJlOjM0OTQ6IGNjIC1vIGNvbmZ0ZXN0IC1PIC1w aXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSAgY29uZnRlc3Qu YyAtTC91c3IvbG9jYWwvbGliIC1ML3Vzci9YMTFSNi9saWIgLWxpbnRsIDE+JjUKL3RtcC9jY2dp QXBiVC5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvY2NnaUFwYlQubygudGV4dCsweDcpOiB1 bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBmZ2V0c191bmxvY2tlZCcKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CiNsaW5lIDM0NzEgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgi Ci8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBm ZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZmdldHNfdW5s b2NrZWQoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBn Y2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBj aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAg IGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBs eS4gICovCmNoYXIgZmdldHNfdW5sb2NrZWQoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBD IGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwog ICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5h bWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2ZnZXRzX3VubG9ja2VkKSB8 fCBkZWZpbmVkIChfX3N0dWJfX19mZ2V0c191bmxvY2tlZCkKY2hva2UgbWUKI2Vsc2UKZmdldHNf dW5sb2NrZWQoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTozNDY2OiBjaGVja2lu ZyBmb3IgZ2V0Y191bmxvY2tlZApjb25maWd1cmU6MzQ5NDogY2MgLW8gY29uZnRlc3QgLU8gLXBp cGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlICBjb25mdGVzdC5j IC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGludGwgMT4mNQovdG1wL2NjYzBU S2lYLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9jY2MwVEtpWC5vKC50ZXh0KzB4Nyk6IHVu ZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldGNfdW5sb2NrZWQnCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgojbGluZSAzNDcxICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgov KiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3 IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdldGNfdW5sb2Nr ZWQoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2My IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1 aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCmNoYXIgZ2V0Y191bmxvY2tlZCgpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGli cmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0 byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBu YW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBp cyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfZ2V0Y191bmxvY2tlZCkgfHwgZGVm aW5lZCAoX19zdHViX19fZ2V0Y191bmxvY2tlZCkKY2hva2UgbWUKI2Vsc2UKZ2V0Y191bmxvY2tl ZCgpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjM0NjY6IGNoZWNraW5nIGZvciBn ZXRjd2QKY29uZmlndXJlOjM0OTQ6IGNjIC1vIGNvbmZ0ZXN0IC1PIC1waXBlICAtSS91c3IvbG9j YWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSAgY29uZnRlc3QuYyAtTC91c3IvbG9jYWwv bGliIC1ML3Vzci9YMTFSNi9saWIgLWxpbnRsIDE+JjUKY29uZmlndXJlOjM0NjY6IGNoZWNraW5n IGZvciBnZXRlZ2lkCmNvbmZpZ3VyZTozNDk0OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkv dXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNy L2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZTozNDY2OiBj aGVja2luZyBmb3IgZ2V0ZXVpZApjb25maWd1cmU6MzQ5NDogY2MgLW8gY29uZnRlc3QgLU8gLXBp cGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlICBjb25mdGVzdC5j IC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGludGwgMT4mNQpjb25maWd1cmU6 MzQ2NjogY2hlY2tpbmcgZm9yIGdldGdpZApjb25maWd1cmU6MzQ5NDogY2MgLW8gY29uZnRlc3Qg LU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlICBjb25m dGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGludGwgMT4mNQpjb25m aWd1cmU6MzQ2NjogY2hlY2tpbmcgZm9yIGdldHVpZApjb25maWd1cmU6MzQ5NDogY2MgLW8gY29u ZnRlc3QgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRl ICBjb25mdGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGludGwgMT4m NQpjb25maWd1cmU6MzQ2NjogY2hlY2tpbmcgZm9yIG1lbXBjcHkKY29uZmlndXJlOjM0OTQ6IGNj IC1vIGNvbmZ0ZXN0IC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYv aW5jbHVkZSAgY29uZnRlc3QuYyAtTC91c3IvbG9jYWwvbGliIC1ML3Vzci9YMTFSNi9saWIgLWxp bnRsIDE+JjUKL3RtcC9jYzl2eldEMy5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvY2M5dnpX RDMubygudGV4dCsweDcpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBtZW1wY3B5Jwpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzQ3MSAiY29uZmlndXJlIgojaW5jbHVkZSAi Y29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQg aG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hh ciBtZW1wY3B5KCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBh bnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1 c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2My CiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg YXBwbHkuICAqLwpjaGFyIG1lbXBjcHkoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxp YnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAg dG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkg bmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUg aXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX21lbXBjcHkpIHx8IGRlZmluZWQg KF9fc3R1Yl9fX21lbXBjcHkpCmNob2tlIG1lCiNlbHNlCm1lbXBjcHkoKTsKI2VuZGlmCgo7IHJl dHVybiAwOyB9CmNvbmZpZ3VyZTozNDY2OiBjaGVja2luZyBmb3IgbXVubWFwCmNvbmZpZ3VyZToz NDk0OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNy L1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYv bGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZTozNDY2OiBjaGVja2luZyBmb3IgcHV0ZW52CmNvbmZp Z3VyZTozNDk0OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUg LUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3Iv WDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZTozNDY2OiBjaGVja2luZyBmb3Igc2V0ZW52 CmNvbmZpZ3VyZTozNDk0OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2lu Y2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAt TC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZTozNDY2OiBjaGVja2luZyBmb3Ig c2V0bG9jYWxlCmNvbmZpZ3VyZTozNDk0OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNy L2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xv Y2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZTozNDY2OiBjaGVj a2luZyBmb3Igc3RwY3B5CmNvbmZpZ3VyZTozNDk0OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAg LUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwv dXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1Ci90bXAvY2NrY2MzbXcu bzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2Nja2NjM213Lm8oLnRleHQrMHg3KTogdW5kZWZp bmVkIHJlZmVyZW5jZSB0byBgc3RwY3B5Jwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK I2xpbmUgMzQ3MSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhl YWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVz LAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzdHBjcHkoKTsgYmVsb3cuICAqLwoj aW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlw ZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0 IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgc3RwY3B5KCk7 CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVu Y3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lT LiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRp bmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmlu ZWQgKF9fc3R1Yl9zdHBjcHkpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3N0cGNweSkKY2hva2UgbWUK I2Vsc2UKc3RwY3B5KCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzQ2NjogY2hl Y2tpbmcgZm9yIHN0cmNhc2VjbXAKY29uZmlndXJlOjM0OTQ6IGNjIC1vIGNvbmZ0ZXN0IC1PIC1w aXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSAgY29uZnRlc3Qu YyAtTC91c3IvbG9jYWwvbGliIC1ML3Vzci9YMTFSNi9saWIgLWxpbnRsIDE+JjUKY29uZmlndXJl OjM0NjY6IGNoZWNraW5nIGZvciBzdHJkdXAKY29uZmlndXJlOjM0OTQ6IGNjIC1vIGNvbmZ0ZXN0 IC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSAgY29u ZnRlc3QuYyAtTC91c3IvbG9jYWwvbGliIC1ML3Vzci9YMTFSNi9saWIgLWxpbnRsIDE+JjUKY29u ZmlndXJlOjM0NjY6IGNoZWNraW5nIGZvciBzdHJ0b3VsCmNvbmZpZ3VyZTozNDk0OiBjYyAtbyBj b25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1 ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAx PiY1CmNvbmZpZ3VyZTozNDY2OiBjaGVja2luZyBmb3IgdHNlYXJjaApjb25maWd1cmU6MzQ5NDog Y2MgLW8gY29uZnRlc3QgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFS Ni9pbmNsdWRlICBjb25mdGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAt bGludGwgMT4mNQpjb25maWd1cmU6MzQ2NjogY2hlY2tpbmcgZm9yIF9fYXJnel9jb3VudApjb25m aWd1cmU6MzQ5NDogY2MgLW8gY29uZnRlc3QgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRl IC1JL3Vzci9YMTFSNi9pbmNsdWRlICBjb25mdGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNy L1gxMVI2L2xpYiAtbGludGwgMT4mNQovdG1wL2NjVU9pU00xLm86IEluIGZ1bmN0aW9uIGBtYWlu JzoKL3RtcC9jY1VPaVNNMS5vKC50ZXh0KzB4Nyk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9f YXJnel9jb3VudCcKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDM0NzEgImNv bmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5l IF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNh biBjb25mbGljdCB3aXRoIGNoYXIgX19hcmd6X2NvdW50KCk7IGJlbG93LiAgKi8KI2luY2x1ZGUg PGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv aWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9fYXJnel9jb3VudCgpOwoK aW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0 aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4g IFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5n IHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVk IChfX3N0dWJfX19hcmd6X2NvdW50KSB8fCBkZWZpbmVkIChfX3N0dWJfX19fX2FyZ3pfY291bnQp CmNob2tlIG1lCiNlbHNlCl9fYXJnel9jb3VudCgpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29u ZmlndXJlOjM0NjY6IGNoZWNraW5nIGZvciBfX2FyZ3pfc3RyaW5naWZ5CmNvbmZpZ3VyZTozNDk0 OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gx MVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGli IC1saW50bCAxPiY1Ci90bXAvY2NVTDM4cVkubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2Nj VUwzOHFZLm8oLnRleHQrMHg3KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19hcmd6X3N0cmlu Z2lmeScKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDM0NzEgImNvbmZpZ3Vy ZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1 YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25m bGljdCB3aXRoIGNoYXIgX19hcmd6X3N0cmluZ2lmeSgpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxh c3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk IGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl IHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBfX2FyZ3pfc3RyaW5naWZ5KCk7 CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVu Y3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lT LiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRp bmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmlu ZWQgKF9fc3R1Yl9fX2FyZ3pfc3RyaW5naWZ5KSB8fCBkZWZpbmVkIChfX3N0dWJfX19fX2FyZ3pf c3RyaW5naWZ5KQpjaG9rZSBtZQojZWxzZQpfX2FyZ3pfc3RyaW5naWZ5KCk7CiNlbmRpZgoKOyBy ZXR1cm4gMDsgfQpjb25maWd1cmU6MzQ2NjogY2hlY2tpbmcgZm9yIF9fYXJnel9uZXh0CmNvbmZp Z3VyZTozNDk0OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUg LUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3Iv WDExUjYvbGliIC1saW50bCAxPiY1Ci90bXAvY2NFRlRvTUEubzogSW4gZnVuY3Rpb24gYG1haW4n OgovdG1wL2NjRUZUb01BLm8oLnRleHQrMHg3KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19h cmd6X25leHQnCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzNDcxICJjb25m aWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBf X3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4g Y29uZmxpY3Qgd2l0aCBjaGFyIF9fYXJnel9uZXh0KCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFz c2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg YW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg cmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9fYXJnel9uZXh0KCk7CgppbnQg bWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z IHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0 aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9f c3R1Yl9fX2FyZ3pfbmV4dCkgfHwgZGVmaW5lZCAoX19zdHViX19fX19hcmd6X25leHQpCmNob2tl IG1lCiNlbHNlCl9fYXJnel9uZXh0KCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6 MzU1MDogY2hlY2tpbmcgZm9yIGljb252CmNvbmZpZ3VyZTozNTY4OiBjYyAtbyBjb25mdGVzdCAt TyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0 ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZp Z3VyZTozNjI1OiBjaGVja2luZyBmb3IgaWNvbnYgZGVjbGFyYXRpb24KY29uZmlndXJlOjM2NTA6 IGNjIC1jIC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVk ZSBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjM2NDA6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBg bGliaWNvbnYnCi91c3IvbG9jYWwvaW5jbHVkZS9pY29udi5oOjgyOiBwcmV2aW91cyBkZWNsYXJh dGlvbiBvZiBgbGliaWNvbnYnCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAz NjMxICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgoKI2luY2x1ZGUgPHN0ZGxpYi5o PgojaW5jbHVkZSA8aWNvbnYuaD4KZXh0ZXJuCiNpZmRlZiBfX2NwbHVzcGx1cwoiQyIKI2VuZGlm CiNpZiBkZWZpbmVkKF9fU1REQ19fKSB8fCBkZWZpbmVkKF9fY3BsdXNwbHVzKQpzaXplX3QgaWNv bnYgKGljb252X3QgY2QsIGNoYXIgKiAqaW5idWYsIHNpemVfdCAqaW5ieXRlc2xlZnQsIGNoYXIg KiAqb3V0YnVmLCBzaXplX3QgKm91dGJ5dGVzbGVmdCk7CiNlbHNlCnNpemVfdCBpY29udigpOwoj ZW5kaWYKCmludCBtYWluKCkgewoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzY3NDogY2hlY2tp bmcgZm9yIG5sX2xhbmdpbmZvIGFuZCBDT0RFU0VUCmNvbmZpZ3VyZTozNjg2OiBjYyAtbyBjb25m dGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUg IGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1 CmNvbmZpZ3VyZTozNzEwOiBjaGVja2luZyBmb3IgTENfTUVTU0FHRVMKY29uZmlndXJlOjM3MjI6 IGNjIC1vIGNvbmZ0ZXN0IC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDEx UjYvaW5jbHVkZSAgY29uZnRlc3QuYyAtTC91c3IvbG9jYWwvbGliIC1ML3Vzci9YMTFSNi9saWIg LWxpbnRsIDE+JjUKY29uZmlndXJlOjM3NDk6IGNoZWNraW5nIGZvciBiaXNvbgpjb25maWd1cmU6 Mzc4MjogY2hlY2tpbmcgdmVyc2lvbiBvZiBiaXNvbgpjb25maWd1cmU6MzgxMTogY2hlY2tpbmcg d2hldGhlciBOTFMgaXMgcmVxdWVzdGVkCmNvbmZpZ3VyZTozODM1OiBjaGVja2luZyB3aGV0aGVy IGluY2x1ZGVkIGdldHRleHQgaXMgcmVxdWVzdGVkCmNvbmZpZ3VyZTozODU1OiBjaGVja2luZyBm b3IgR05VIGdldHRleHQgaW4gbGliYwpjb25maWd1cmU6Mzg3MDogY2MgLW8gY29uZnRlc3QgLU8g LXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlICBjb25mdGVz dC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGludGwgMT4mNQpjb25maWd1 cmU6NDQ1NzogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBw b3J0aW9ucyBvZiBNYWtlZmlsZXMKY29uZmlndXJlOjQ1MDc6IGNoZWNraW5nIGZvciBhIEJTRCBj b21wYXRpYmxlIGluc3RhbGwKY29uZmlndXJlOjQ1OTY6IGNoZWNraW5nIGZvciBDeWd3aW4gZW52 aXJvbm1lbnQKY29uZmlndXJlOjQ2MTI6IGNjIC1jIC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5j bHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOiBJbiBm dW5jdGlvbiBgbWFpbic6CmNvbmZpZ3VyZTo0NjA4OiBgX19DWUdXSU4zMl9fJyB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKY29uZmlndXJlOjQ2MDg6IChFYWNoIHVuZGVj bGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKY29uZmlndXJlOjQ2MDg6IGZv ciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKI2xpbmUgNDYwMSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCmludCBt YWluKCkgewoKI2lmbmRlZiBfX0NZR1dJTl9fCiNkZWZpbmUgX19DWUdXSU5fXyBfX0NZR1dJTjMy X18KI2VuZGlmCnJldHVybiBfX0NZR1dJTl9fOwo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTo0NjI5 OiBjaGVja2luZyBmb3IgbWluZ3czMiBlbnZpcm9ubWVudApjb25maWd1cmU6NDY0MTogY2MgLWMg LU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0 ZXN0LmMgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZmlndXJlOjQ2Mzc6 IGBfX01JTkdXMzJfXycgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNv bmZpZ3VyZTo0NjM3OiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25s eSBvbmNlCmNvbmZpZ3VyZTo0NjM3OiBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluLikK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDQ2MzQgImNvbmZpZ3VyZSIKI2lu Y2x1ZGUgImNvbmZkZWZzLmgiCgppbnQgbWFpbigpIHsKcmV0dXJuIF9fTUlOR1czMl9fOwo7IHJl dHVybiAwOyB9CmNvbmZpZ3VyZTo0NzA0OiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZQpjb25m aWd1cmU6NDczMzogY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgR0NDCmNvbmZpZ3VyZTo0ODAxOiBj aGVja2luZyBpZiB0aGUgbGlua2VyICgvdXNyL2Jpbi9sZCkgaXMgR05VIGxkCkdOVSBsZCB2ZXJz aW9uIDIuMTIuMSBbRnJlZUJTRF0gMjAwMi0wNy0yMApjb25maWd1cmU6NDgxODogY2hlY2tpbmcg Zm9yIC91c3IvYmluL2xkIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTo0 ODMwOiBjaGVja2luZyBmb3IgQlNELWNvbXBhdGlibGUgbm0KY29uZmlndXJlOjQ4Njg6IGNoZWNr aW5nIHdoZXRoZXIgbG4gLXMgd29ya3MKY29uZmlndXJlOjQ4ODk6IGNoZWNraW5nIGhvdyB0byBy ZWNvZ25pc2UgZGVwZW5kYW50IGxpYnJhcmllcwpjb25maWd1cmU6NTA3MjogY2hlY2tpbmcgZm9y IG9iamVjdCBzdWZmaXgKY29uZmlndXJlOjUwNzg6IGNjIC1jIC1PIC1waXBlICAtSS91c3IvbG9j YWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJl OjUwOTg6IGNoZWNraW5nIGZvciBleGVjdXRhYmxlIHN1ZmZpeApjb25maWd1cmU6NTEwODogY2Mg LW8gY29uZnRlc3QgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9p bmNsdWRlICBjb25mdGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGlu dGwgMT4mNQpjb25maWd1cmU6NTEzOTogY2hlY2tpbmcgY29tbWFuZCB0byBwYXJzZSAvdXNyL2Jp bi9ubSAtQiBvdXRwdXQKY29uZmlndXJlOjUyMTk6IGNjIC1jIC1PIC1waXBlICAtSS91c3IvbG9j YWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJl OjUyMjI6IC91c3IvYmluL25tIC1CIGNvbmZ0ZXN0Lm8gfCBzZWQgLW4gLWUgJ3MvXi4qWyBdXChb QUJDREdJU1RXXVtBQkNER0lTVFddKlwpWyBdWyBdKlwoXClcKFtfQS1aYS16XVtfQS1aYS16MC05 XSpcKSQvXDEgXDJcMyBcMy9wJyA+IGNvbmZ0ZXN0Lm5tCmNvbmZpZ3VyZTo1MjczOiBjYyAtbyBj b25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1 ZGUgIGNvbmZ0ZXN0LmMgY29uZnRzdG0ubyAxPiY1CmNvbmZpZ3VyZTo1MzIyOiBjaGVja2luZyBm b3IgZGxmY24uaApjb25maWd1cmU6NTMzMjogY2MgLUUgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkv dXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNv bmZpZ3VyZTo1NTAwOiBjaGVja2luZyBmb3IgcmFubGliCmNvbmZpZ3VyZTo1NTY3OiBjaGVja2lu ZyBmb3Igc3RyaXAKY29uZmlndXJlOjU4MTA6IGNoZWNraW5nIGZvciBvYmpkaXIKY29uZmlndXJl OjU4Mzc6IGNoZWNraW5nIGZvciBjYyBvcHRpb24gdG8gcHJvZHVjZSBQSUMKY29uZmlndXJlOjU5 ODk6IGNoZWNraW5nIGlmIGNjIFBJQyBmbGFnIC1mUElDIHdvcmtzCmNvbmZpZ3VyZTo2MDAzOiBj YyAtYyAtTyAtcGlwZSAgLWZQSUMgLURQSUMgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gx MVI2L2luY2x1ZGUgY29uZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZTo2MDU1OiBjaGVja2luZyBpZiBj YyBzdGF0aWMgZmxhZyAtc3RhdGljIHdvcmtzCmNvbmZpZ3VyZTo2MDcwOiBjYyAtbyBjb25mdGVz dCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIC1z dGF0aWMgY29uZnRlc3QuYyAtTC91c3IvbG9jYWwvbGliIC1ML3Vzci9YMTFSNi9saWIgLWxpbnRs IDE+JjUKY29uZmlndXJlOjYwOTc6IGNoZWNraW5nIGlmIGNjIHN1cHBvcnRzIC1jIC1vIGZpbGUu bwpjb25maWd1cmU6NjExNjogY2MgLWMgLU8gLXBpcGUgIC1vIG91dC9jb25mdGVzdDIubyAtSS91 c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jIDE+JjUKY29u ZmlndXJlOjYxNDU6IGNoZWNraW5nIGlmIGNjIHN1cHBvcnRzIC1jIC1vIGZpbGUubG8KY29uZmln dXJlOjYxNjM6IGNjIC1jIC1PIC1waXBlICAtYyAtbyBjb25mdGVzdC5sbyAtSS91c3IvbG9jYWwv aW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjYy MTM6IGNoZWNraW5nIGlmIGNjIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMKY29u ZmlndXJlOjYyMjY6IGNjIC1jIC1PIC1waXBlICAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIC1j IGNvbmZ0ZXN0LmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29u ZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZTo2MjUzOiBjaGVja2luZyB3aGV0aGVyIHRoZSBsaW5rZXIg KC91c3IvYmluL2xkKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzCmNvbmZpZ3VyZTo2OTM3OiBj aGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zCmNvbmZp Z3VyZTo2OTY1OiBjaGVja2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2li bGUKY29uZmlndXJlOjY5Nzk6IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGlj cwpjb25maWd1cmU6NzM3NjogY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzCmNvbmZpZ3VyZTo3MzgwOiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBs aWJyYXJpZXMKY29uZmlndXJlOjc0MDM6IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGlj IGxpYnJhcmllcwpjb25maWd1cmU6NzQ0NDogY2hlY2tpbmcgZm9yIHNobF9sb2FkCmNvbmZpZ3Vy ZTo3NDcyOiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkv dXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDEx UjYvbGliIC1saW50bCAxPiY1Ci90bXAvY2NNNkhrbGQubzogSW4gZnVuY3Rpb24gYG1haW4nOgov dG1wL2NjTTZIa2xkLm8oLnRleHQrMHg3KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc2hsX2xv YWQnCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSA3NDQ5ICJjb25maWd1cmUi CiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxp Y3Qgd2l0aCBjaGFyIHNobF9sb2FkKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgov KiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu ICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIHNobF9sb2FkKCk7CgppbnQgbWFpbigpIHsKCi8q IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt cGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMg YXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9zaGxfbG9h ZCkgfHwgZGVmaW5lZCAoX19zdHViX19fc2hsX2xvYWQpCmNob2tlIG1lCiNlbHNlCnNobF9sb2Fk KCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6NzQ5MDogY2hlY2tpbmcgZm9yIHNo bF9sb2FkIGluIC1sZGxkCmNvbmZpZ3VyZTo3NTA5OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAg LUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLWxk bGQgIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGludGwgMT4mNQovdXNyL2xp YmV4ZWMvZWxmL2xkOiBjYW5ub3QgZmluZCAtbGRsZApjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKI2xpbmUgNzQ5OCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogT3Zl cnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8K LyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KY2hhciBzaGxfbG9hZCgpOwoKaW50IG1haW4oKSB7CnNobF9sb2Fk KCkKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6NzUyODogY2hlY2tpbmcgZm9yIGRsb3Blbgpjb25m aWd1cmU6NzU1NjogY2MgLW8gY29uZnRlc3QgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRl IC1JL3Vzci9YMTFSNi9pbmNsdWRlICBjb25mdGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNy L1gxMVI2L2xpYiAtbGludGwgMT4mNQpjb25maWd1cmU6NzcyNTogY2hlY2tpbmcgd2hldGhlciBh IHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYKY29uZmlndXJlOjc3OTY6IGNjIC1vIGNvbmZ0ZXN0 IC1PIC1waXBlICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSAtREhB VkVfRExGQ05fSCAgLVdsLC0tZXhwb3J0LWR5bmFtaWMgY29uZnRlc3QuYyAgLUwvdXNyL2xvY2Fs L2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZTo3ODE5OiBjaGVja2lu ZyB3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZgpj b25maWd1cmU6Nzg5MDogY2MgLW8gY29uZnRlc3QgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNs dWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIC1ESEFWRV9ETEZDTl9IICAtV2wsLS1leHBvcnQtZHlu YW1pYyAtc3RhdGljIGNvbmZ0ZXN0LmMgIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xp YiAtbGludGwgMT4mNQpjb25maWd1cmU6NzkzOTogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxk IGJlIGV4cGxpY2l0bHkgbGlua2VkIGluCmNvbmZpZ3VyZTo3OTQ2OiBjYyAtYyAtTyAtcGlwZSAg LUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyAxPiY1 CmNvbmZpZ3VyZTo3OTU5OiBjYyAtc2hhcmVkIGNvbmZ0ZXN0Lm8gIC12IC1XbCwtc29uYW1lIC1X bCxjb25mdGVzdCAtbyBjb25mdGVzdCAyPiYxIHwgZ3JlcCAgLWxjICA+L2Rldi9udWxsIDI+JjEK Y29uZmlndXJlOjg1NDU6IGNoZWNraW5nIGZvciBzdHJlcnJvciBpbiAtbGNwb3NpeApjb25maWd1 cmU6ODU4NzogY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJpZ2VuZGlhbgpjb25m aWd1cmU6ODYwNTogY2MgLWMgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9Y MTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6ODYyMDogY2MgLWMgLU8gLXBp cGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMg MT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZmlndXJlOjg2MTU6IHN5bnRh eCBlcnJvciBiZWZvcmUgYGJpZycKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5l IDg2MDkgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNsdWRlIDxzeXMvdHlw ZXMuaD4KI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgppbnQgbWFpbigpIHsKCiNpZiBCWVRFX09SREVS ICE9IEJJR19FTkRJQU4KIG5vdCBiaWcgZW5kaWFuCiNlbmRpZgo7IHJldHVybiAwOyB9CmNvbmZp Z3VyZTo4Njc3OiBjaGVja2luZyB3aGV0aGVyIGdtYWtlIHNldHMgJHtNQUtFfQpjb25maWd1cmU6 ODcwNDogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMKY29uZmlndXJlOjg4MTI6IGNo ZWNraW5nIGZvciBsaW1pdHMuaApjb25maWd1cmU6ODg1MTogY2hlY2tpbmcgZm9yIHN0cGNweQpj b25maWd1cmU6ODg1MTogY2hlY2tpbmcgZm9yIG1lbWNweQpjb25maWd1cmU6ODg3OTogY2MgLW8g Y29uZnRlc3QgLU8gLXBpcGUgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vzci9YMTFSNi9pbmNs dWRlICBjb25mdGVzdC5jIC1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL1gxMVI2L2xpYiAtbGludGwg MT4mNQpjb25maWd1cmU6ODg2Mzogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0 LWluIGZ1bmN0aW9uIGBtZW1jcHknCmNvbmZpZ3VyZTo4ODUxOiBjaGVja2luZyBmb3IgdGltZWdt CmNvbmZpZ3VyZTo4ODc5OiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2lu Y2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAt TC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZTo4ODUxOiBjaGVja2luZyBmb3Ig dG93dXBwZXIKY29uZmlndXJlOjg4Nzk6IGNjIC1vIGNvbmZ0ZXN0IC1PIC1waXBlICAtSS91c3Iv bG9jYWwvaW5jbHVkZSAtSS91c3IvWDExUjYvaW5jbHVkZSAgY29uZnRlc3QuYyAtTC91c3IvbG9j YWwvbGliIC1ML3Vzci9YMTFSNi9saWIgLWxpbnRsIDE+JjUKL3RtcC9jY2ZMaUwzYy5vOiBJbiBm dW5jdGlvbiBgbWFpbic6Ci90bXAvY2NmTGlMM2MubygudGV4dCsweDcpOiB1bmRlZmluZWQgcmVm ZXJlbmNlIHRvIGB0b3d1cHBlcicKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5l IDg4NTYgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIg dG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAg IHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgdG93dXBwZXIoKTsgYmVsb3cuICAqLwojaW5j bHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgdG93dXBwZXIoKTsK CmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5j dGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGlu ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5l ZCAoX19zdHViX3Rvd3VwcGVyKSB8fCBkZWZpbmVkIChfX3N0dWJfX190b3d1cHBlcikKY2hva2Ug bWUKI2Vsc2UKdG93dXBwZXIoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTo4OTA2 OiBjaGVja2luZyBmb3IgdGhlIHRtX2dtdG9mZiBtZW1iZXIgb2Ygc3RydWN0IHRtCmNvbmZpZ3Vy ZTo4OTIzOiBjYyAtbyBjb25mdGVzdCAtTyAtcGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkv dXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDEx UjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3VyZTo4OTQ2OiBjaGVja2luZyBpZiBzY2FuZiBzdXBw b3J0cyAlbGxkIGNvbnZlcnNpb25zCmNvbmZpZ3VyZTo4OTcyOiBjYyAtbyBjb25mdGVzdCAtTyAt cGlwZSAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL1gxMVI2L2luY2x1ZGUgIGNvbmZ0ZXN0 LmMgLUwvdXNyL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIC1saW50bCAxPiY1CmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSA4OTU0ICJjb25maWd1cmUiCiNpbmNsdWRlICJj b25mZGVmcy5oIgoKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBt YWluICgpCnsKICBsb25nIGxvbmcgaW50IGQ7CgogIGQgPSAwOwogIGlmICgoc3NjYW5mICgiMTAw MDAwMDAwMDAiLCAiJWxsZCIsICZkKSAhPSAxKSB8fCAoZCAhPSAxMDAwMDAwMDAwMCkpCiAgICBl eGl0ICgxKTsKCiAgZXhpdCAoMCk7Cn0KCmNvbmZpZ3VyZTo4OTk5OiBjaGVja2luZyBmb3IgbHRk bC5oCmNvbmZpZ3VyZTo5MDA5OiBjYyAtRSAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvWDEx UjYvaW5jbHVkZSBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJl OjkwMDU6IGx0ZGwuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKI2xpbmUgOTAwNCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMu aCIKI2luY2x1ZGUgPGx0ZGwuaD4K --Multipart_Tue__28_Oct_2003_00_45_37_-0200_08340a00 Content-Type: application/octet-stream; name="temp1" Content-Disposition: attachment; filename="temp1" Content-Transfer-Encoding: base64 SGVybWVzLTEuMy4zCkltYWdlTWFnaWNrLTUuNS43LjExXzEKTWVzYS0zLjQuMl8yCk9SQml0LTAu NS4xN18xCk9SQml0Mi0yLjguMgpPcGVuU1AtMS41XzIKWEZyZWU4Ni00LjMuMCwxClhGcmVlODYt Rm9udFNlcnZlci00LjMuMF8yClhGcmVlODYtU2VydmVyLTQuMy4wXzExClhGcmVlODYtY2xpZW50 cy00LjMuMF8zClhGcmVlODYtZG9jdW1lbnRzLTQuMy4wClhGcmVlODYtZm9udDEwMGRwaS00LjMu MApYRnJlZTg2LWZvbnQ3NWRwaS00LjMuMApYRnJlZTg2LWZvbnRDeXJpbGxpYy00LjMuMApYRnJl ZTg2LWZvbnREZWZhdWx0Qml0bWFwcy00LjMuMApYRnJlZTg2LWZvbnRFbmNvZGluZ3MtNC4zLjAK WEZyZWU4Ni1mb250U2NhbGFibGUtNC4zLjAKWEZyZWU4Ni1saWJyYXJpZXMtNC4zLjBfNgpYTmFw LTIuNS5wMQpYZnQtMi4xLjIKYWFsaWItMS40LnI1XzEKYWNyb3JlYWQtNS4wOAphcnRzLTEuMS40 LDEKYXNwZWxsLTAuNTAuNC4xCmF0ZXJtLTAuNC4yCmF0ay0xLjQuMQphdXRvY29uZi0yLjEzLjAw MDIyN181CmF1dG9jb25mLTIuNTNfMQphdXRvbWFrZS0xLjQuNV85CmF1dG9tYWtlLTEuNSwxCmF1 dG90cmFjZS0wLjMxLjFfMQpiaXNvbi0xLjc1XzEKYm9ub2JvLTEuMC4yMgpib3h0b29scy0wLjY1 LjAKY2FiZXh0cmFjdC0wLjZfMQpjZGJha2VvdmVuLTEuOC45XzMKY2RwYXJhbm9pYS0zLjkuOF81 CmNkcnRvb2xzLTIuMC4zCmNzY29wZS0xNS41CmN1cHMtYmFzZS0xLjEuMTkuMApjdXBzLXBzdG9y YXN0ZXItNy4wNwpjdXJsLTcuMTAuNwpjdnN1cC0xNi4xaApkYjQtNC4wLjE0XzEsMQpkYjQxLTQu MS4yNV8xCmRiaC0xLjAuMTUKZG9jYm9vay1zay00LjEuMgpkb2Nib29rLXhtbC00LjJfMQpkb2Ni b29rLXhzbC0xLjYyLjMKZWRvbmtleS1ndWktZ3RrLTAuNS4wCmVkb25rZXktZ3VpLWphdmEtMS4x LjIKZWRvbmtleS10b29sLXNsaXN0LTAuMgplc291bmQtMC4yLjMyXzEKZXhwYXQtMS45NS42XzEK ZXptMy0xLjEKZmFtLTIuNi45XzMKZmV0Y2htYWlsLTYuMi41CmZsYXNocGx1Z2lud3JhcHBlci0w LjIwMDIxMTEzCmZsdXhib3gtMC4xLjE0XzIKZmx1eHRlci0wLjEuMApmb250Y29uZmlnLTIuMi45 MF8zCmZyZWVmb250cy0wLjEwXzIKZnJlZXR5cGUtMS4zLjFfMgpmcmVldHlwZTItMi4xLjVfMQpn LXdyYXAtMS4zLjRfNApnYWwtMC4yNApnY2MtMy4zLjIKZ2NvbmYtMS4wLjlfNgpnY29uZjItMi40 LjAuMQpnZGJtLTEuOC4zCmdkay1waXhidWYtMC4yMi4wCmdlZy0xLjAuMgpnZXR0ZXh0LTAuMTIu MQpnaG9zdHNjcmlwdC1nbnUtNy4wN180CmdpbXAtMS4zLjIxLDEKZ2ltcC1wcmludC00LjIuNV8x CmdrcmVsbG0tMi4xLjIxCmdsaWItMS4yLjEwXzEwCmdsaWItMi4yLjMKZ2xpYnd3dy0wLjJfMQpn bWFrZS0zLjgwXzEKZ25ldC0xLjEuNApnbm9tZWNhbnZhcy0wLjIyLjAKZ25vbWVkYi0wLjIuOTZf MQpnbm9tZWhpZXItMS4wXzEwCmdub21lbGlicy0xLjQuMl8xCmdub21lbWltZWRhdGEtMi40LjAK Z25vbWVwcmludC0wLjM3Cmdub21ldmZzLTEuMC41XzQKZ25vbWV2ZnMyLTIuNC4xXzEKZ251Y2Fz aC1kb2NzLTEuOC4zCmdudWNoZXNzLTUuMDZfMQpndGstMS4yLjEwXzEwCmd0ay0yLjIuNF8xCmd0 ay1lbmdpbmVzMi0yLjIuMApndGstZ251dGVsbGEtMC45MS4xCmd0ay10aGVtZS1zd2l0Y2gtMS4w LjFfMQpndGsteGZjZS1lbmdpbmUtMi4xLjYKZ3RrZ2xhcmVhLTEuMi4yXzEKZ3RraHRtbC0xLjEu MTBfMgpndWlsZS0xLjYuNF8yCmd1aWxlLWd0ay0wLjMxCmd1cHBpLTAuNDAuM18zCmhkZi00LjFy NQpoZWxwMm1hbi0xLjI5Cmh0dHJhY2stMy4yMC4yCmltYWtlLTQuMy4wXzEKaW1saWItMS45LjE0 XzEKaW50bHRvb2wtMC4yNy4yCmlzcGVsbC0zLjIuMDZfMwpqYS1ua2YtMi4wMgpqYXNwZXItMS43 MDAuMgpqYXZhdm13cmFwcGVyLTEuNApqYmlna2l0LTEuNQpqcGVnLTZiXzEKa2RlLTMuMS40Cmtk ZWFkZG9ucy0zLjEuNAprZGVhZG1pbi0zLjEuNAprZGVhcnR3b3JrLTMuMS40XzEKa2RlYmFzZS0z LjEuNAprZGVlZHUtMy4xLjQKa2RlZ2FtZXMtMy4xLjQKa2RlZ3JhcGhpY3MtMy4xLjQKa2RlbGli cy0zLjEuNAprZGVtdWx0aW1lZGlhLTMuMS40CmtkZW5ldHdvcmstMy4xLjQKa2RlcGltLTMuMS40 CmtkZXNkay0zLjEuNAprZGV0b3lzLTMuMS40CmtkZXV0aWxzLTMuMS40CmtkZXZlbG9wLTIuMS41 CmtvZmZpY2UtMS4yLjFfMSwxCmxhbWUtMy45My4xCmxjbXMtMS4wOSwxCmxpYklETC0wLjguMgps aWJhby1lc291bmQtMC44LjRfMQpsaWJhcnRfbGdwbDItMi4zLjE2CmxpYmF1ZGlvZmlsZS0wLjIu NApsaWJib25vYm8tMi40LjEKbGliY2FwcGxldC0xLjQuMC41XzEKbGliZXhpZi0wLjUuMTJfMQps aWJmbGFzaC0wLjQuMTAKbGliZnB4LTEuMi4wLjkKbGliZ2RhLTAuMi45Nl8xCmxpYmdodHRwLTEu MC45CmxpYmdsYWRlLTAuMTdfMgpsaWJnbnVnZXRvcHQtMS4yCmxpYmdzZi0xLjguMgpsaWJpY29u di0xLjkuMV8zCmxpYmlqcy0wLjM0CmxpYmx0ZGwtMS41CmxpYm1pa21vZC1lc291bmQtMy4xLjEw XzEKbGlibW5nLTEuMC41XzEKbGlibXBlZzItMC4zLjFfMQpsaWJvZngtMC42LjQKbGlib2dnLTEu MF8xLDMKbGlicnN2ZzItMi40LjAKbGlidG9vbC0xLjMuNV8xCmxpYnRvb2wtMS40LjNfMgpsaWJ0 b29sLTEuNQpsaWJ1bmdpZi00LjEuMGIxXzEKbGlidW5pY29kZS0wLjRfMwpsaWJ2b3JiaXMtMS4w XzEsMwpsaWJ3bWYtMC4yLjgKbGlid3d3LTUuNC4wCmxpYnhmY2U0Z3VpLTQuMC4wXzEKbGlieGZj ZTRtY3MtNC4wLjAKbGlieGZjZTR1dGlsLTQuMC4wCmxpYnhtbC0xLjguMTdfMQpsaWJ4bWwyLTIu Ni4wCmxpYnhzbHQtMS4wLjMzCmxpY3EtYmFzZS0xLjIuNwpsaWNxLXF0LWd1aS0xLjIuN18xCmxp bmMtMS4wLjMKbGlua3MtMi4xLnAxMSwxCmxpbnV4LWVkb25rZXktY29yZS0wLjUwLjEsMQpsaW51 eC1lc291bmQtMC4yLjIyXzEKbGludXgtZmxhc2hwbHVnaW4tNS4wcjUxCmxpbnV4LWZsYXNocGx1 Z2luLTYuMHI3OQpsaW51eC1saWJhdWRpb2ZpbGUtMC4xLjExXzIKbGludXgtcmVhbHBsYXllci04 LmNzMl80CmxpbnV4X2Jhc2UtNy4xXzUKbHl4LTEuMy4yXzEKbTQtMS40XzEKbWZ0cmFjZS0xLjAu MTkKbWluZy0wLjJhXzEKbWtpc29mcy0yLjAuMwptb3ppbGxhLWZpcmViaXJkLTAuN18xCm1wZzEy My1lc291bmQtMC41OXJfOQptcGxheWVyLWZvbnRzLTAuNTAKbXBsYXllci1za2lucy0xLjEuMApt cGxheWVyeHAtMC4xLjlfMQptdXRlbGxhLTAuNC4zLDEKbmFzbS0wLjk4LjM1LDEKbnNwci00LjNf MgpudmlkaWEtZHJpdmVyLTEuMC40MzY1Cm9hZi0wLjYuMTBfMQpvY2FtbC0zLjA2Cm9jYW1sLWNy eXB0b2tpdC0xLjEKb2NhbWwtamFiYnItMC4wLjIwMDIxMTI0Cm9jYW1sLWxhYmxnbC0wLjk5Cm9j YW1sLWxhYmxndGstMS4yLjUKb2NhbWwteWF4cG8tMC4wLjIwMDIwODE2Cm9uZWtvLTIuMGJfMgpv cGVuLW1vdGlmLTIuMi4yXzEKb3BlbmxkYXAtY2xpZW50LTIuMS4yMgpwNS1BdXRoZW4tU0FTTC0y LjA0CnA1LURhdGUtTWFuaXAtNS40MgpwNS1EaWdlc3QtTUQ1LTIuMjcKcDUtRmluYW5jZS1RdW90 ZS0xLjA3CnA1LUZpbmFuY2UtUXVvdGVIaXN0LTAuMzEKcDUtSFRNTC0wLjYKcDUtSFRNTC1QYXJz ZXItMy4zMQpwNS1IVE1MLVRhYmxlRXh0cmFjdC0xLjA4CnA1LUhUTUwtVGFnc2V0LTMuMDMKcDUt TUlNRS1CYXNlNjQtMi4yMApwNS1OZXQtMS4xNiwxCnA1LU9wZW5HTC0wLjU0CnA1LVRpbWUtSGlS ZXMtMS41MSwxCnA1LVVSSS0xLjI1CnA1LWxpYnd3dy01LjY5CnA1LXR5cGUxaW5zdC0wLjYuMQpw YW5nby0xLjIuNQpwY3JlLTQuNApwZmFlZGl0LTIwMDMwOTA0CnBpbG90LWxpbmstMC4xMS43XzIK cGtnY29uZmlnLTAuMTUuMApwbG90dXRpbHMtMi40LjEKcG5nLTEuMi41XzIKcG9wdC0xLjYuNF8x CnBzdG9lZGl0LTMuMzNfMQpweTIzLXRraW50ZXItMi4zLjJfMQpweXRob24tMi4zLjIKcXQtMy4y LjEKcXVhbnRhLTMuMS40LDIKcmNfc3Vici0xLjE2CnJwbS0zLjAuNl84CnNhbWJhLWxpYnNtYmNs aWVudC0zLjAuMApzY3JvbGxrZWVwZXItMC4zLjEyXzIsMQpzZGwtMS4yLjVfMgpzZG9jYm9vay14 bWwtNC4xLjIuNV8xCnNsaWItMmQ1XzEKc291cC0wLjcuMTEKc3RhcnR1cC1ub3RpZmljYXRpb24t MC41XzEKc3ZnYWxpYi0xLjQuM18xCnN5bHBoZWVkLWd0azItMC45LjUuMjAwMzA5MDYKdDFsaWIt NS4wLjAKdDF1dGlscy0xLjI1CnRjbC04LjMuNV8yCnRjbC04LjQuNF8xLDEKdGVUZVgtMi4wLjJf Mgp0aWZmLTMuNi4wCnRpbWlkaXR5KystZ3RrLTIuMTEuMwp0aW1pZGl0eS0wLjJpCnRrLTguMy41 XzIKdGstOC40LjQsMQp0dG1rZmRpci0wLjBfMQp1bnJhci0zLjIwLDIKdW56aXAtNS41MF8yCnV1 bGliLTAuNS4xOAp2aW0tNi4yLjcyCnZvcmJpcy10b29scy0xLjBfNCwzCndhdnBsYXktMS40Cndl YmZvbnRzLTAuMjFfMQp3Z2V0LTEuOC4yXzUKd2luMzItY29kZWNzLTIuMC45MCwxCndpbmRvd21h a2VyLTAuODAuMl8xCndpbmUtMjAwMzEwMTYKd21jbGlwaGlzdC0wLjUKd21pY29ucy0xLjAKd21t aW5pY2hlc3MtMC44CndyYXBwZXItMS4wXzMKd3hndGstMi40LjJfMQp4YW5pbS0yLjkyLjAKeGNk cm9hc3QtMC45OC5hLjE0CnhjaGF0Mi0yLjAuNV8xCnhmY2UtNC4wLjAKeGZjZTQtZGVza3RvcC00 LjAuMF8xCnhmY2U0LWZtLTQuMC4wXzEKeGZjZTQtZm0taWNvbnMtNC4wLjAKeGZjZTQtaWNvbmJv eC00LjAuMF8xCnhmY2U0LW1jcy1tYW5hZ2VyLTQuMC4wXzEKeGZjZTQtbWNzLXBsdWdpbnMtNC4w LjBfMQp4ZmNlNC1taXhlci00LjAuMF8xCnhmY2U0LXBhbmVsLTQuMC4wXzEKeGZjZTQtcGFuZWwt dGhlbWVzLTQuMC4wCnhmY2U0LXByaW50LTQuMC4wXzEKeGZjZTQtc3lzdHJheS00LjAuMF8xCnhm Y2U0LXRveXMtNC4wLjBfMQp4ZmNlNC11dGlscy00LjAuMF8xCnhmY2U0LXdtLTQuMC4wXzEKeGZj ZTQtd20tdGhlbWVzLTQuMC4wCnhmb3Jtcy0xLjBfMywxCnhtbGNhdG1nci0xLjEKeG1tcy1hdmkt MS4yLjMKeG1tcy1jZHJlYWQtMC4xNGEKeG1tcy1lc291bmQtMS4yLjhfMQp4bW1zLW11c2VwYWNr LTEuOC4wCnhtbXMtc25kc3RyZXRjaC0wLjUKeG11bGUtMS42LjAKemlwLTIuM18xCg== --Multipart_Tue__28_Oct_2003_00_45_37_-0200_08340a00--