From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15027 invoked by alias); 9 Mar 2003 21:06:00 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 15005 invoked by uid 71); 9 Mar 2003 21:06:00 -0000 Resent-Date: 9 Mar 2003 21:06:00 -0000 Resent-Message-ID: <20030309210600.15004.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, ciottick@mars.cc.umb.edu Received: (qmail 13747 invoked by uid 48); 9 Mar 2003 20:58:06 -0000 Message-Id: <20030309205806.13746.qmail@sources.redhat.com> Date: Sun, 09 Mar 2003 21:06:00 -0000 From: ciottick@mars.cc.umb.edu Reply-To: ciottick@mars.cc.umb.edu To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c/10012: Internal compiler error in instantiate_virtual_regs_1, at function.c:3972 X-SW-Source: 2003-03/txt/msg00438.txt.bz2 List-Id: >Number: 10012 >Category: c >Synopsis: Internal compiler error in instantiate_virtual_regs_1, at function.c:3972 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Sun Mar 09 21:06:00 UTC 2003 >Closed-Date: >Last-Modified: >Originator: ciottick@mars.cc.umb.edu >Release: gcc version 3.2 20020927 (prerelease) >Organization: >Environment: Windows XP Pro, Cygwin release (using dll v.1003.20.0.0) >Description: gcc generates the following error: inline1.c:14: Internal compiler error in instantiate_virtual_regs_1, at function.c:3972 while compiling inline1.c The preprocessed file is attached. >How-To-Repeat: cmd line: gcc -v -save-temps -W -Wall inline1.c >Fix: no :-( >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="inline1.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="inline1.i" IyAxICJpbmxpbmUxLmMiCiMgMSAiPGJ1aWx0LWluPiIKIyAxICI8Y29tbWFuZCBsaW5lPiIKIyAx ICJpbmxpbmUxLmMiCiMgMSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDEgMwojIDI5ICIvdXNyL2lu Y2x1ZGUvc3RkaW8uaCIgMwojIDEgIi91c3IvaW5jbHVkZS9fYW5zaS5oIiAxIDMKIyAxNSAiL3Vz ci9pbmNsdWRlL19hbnNpLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvbmV3bGliLmgiIDEgMwojIDE2 ICIvdXNyL2luY2x1ZGUvX2Fuc2kuaCIgMiAzCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9jb25maWcu aCIgMSAzCgoKCiMgMSAiL3Vzci9pbmNsdWRlL21hY2hpbmUvaWVlZWZwLmgiIDEgMwojIDUgIi91 c3IvaW5jbHVkZS9zeXMvY29uZmlnLmgiIDIgMwojIDE3ICIvdXNyL2luY2x1ZGUvX2Fuc2kuaCIg MiAzCiMgMzAgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMKCgoKCiMgMSAiL3Vzci9saWIvZ2Nj LWxpYi9pNjg2LXBjLWN5Z3dpbi8zLjIvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMjAzICIvdXNy L2xpYi9nY2MtbGliL2k2ODYtcGMtY3lnd2luLzMuMi9pbmNsdWRlL3N0ZGRlZi5oIiAzCnR5cGVk ZWYgdW5zaWduZWQgaW50IHNpemVfdDsKIyAzNSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoK CiMgMSAiL3Vzci9saWIvZ2NjLWxpYi9pNjg2LXBjLWN5Z3dpbi8zLjIvaW5jbHVkZS9zdGRhcmcu aCIgMSAzCiMgNDQgIi91c3IvbGliL2djYy1saWIvaTY4Ni1wYy1jeWd3aW4vMy4yL2luY2x1ZGUv c3RkYXJnLmgiIDMKdHlwZWRlZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyAz OCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvc3lz L3JlZW50LmgiIDEgMwojIDE0ICIvdXNyL2luY2x1ZGUvc3lzL3JlZW50LmgiIDMKIyAxICIvdXNy L2luY2x1ZGUvc3lzL190eXBlcy5oIiAxIDMKIyAxMiAiL3Vzci9pbmNsdWRlL3N5cy9fdHlwZXMu aCIgMwp0eXBlZGVmIGxvbmcgX29mZl90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25n IF9vZmY2NF90OwoKCnR5cGVkZWYgaW50IF9zc2l6ZV90OwoKCgoKCiMgMSAiL3Vzci9saWIvZ2Nj LWxpYi9pNjg2LXBjLWN5Z3dpbi8zLjIvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMzIzICIvdXNy L2xpYi9nY2MtbGliL2k2ODYtcGMtY3lnd2luLzMuMi9pbmNsdWRlL3N0ZGRlZi5oIiAzCnR5cGVk ZWYgdW5zaWduZWQgaW50IHdpbnRfdDsKIyAyMyAiL3Vzci9pbmNsdWRlL3N5cy9fdHlwZXMuaCIg MiAzCgoKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX2NvdW50OwogIHVuaW9uCiAgewogICAgd2lu dF90IF9fd2NoOwogICAgdW5zaWduZWQgY2hhciBfX3djaGJbNF07CiAgfSBfX3ZhbHVlOwp9IF9t YnN0YXRlX3Q7Cgp0eXBlZGVmIGludCBfZmxvY2tfdDsKIyAxNSAiL3Vzci9pbmNsdWRlL3N5cy9y ZWVudC5oIiAyIDMKCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBfX1VMb25nOwojIDQwICIvdXNy L2luY2x1ZGUvc3lzL3JlZW50LmgiIDMKc3RydWN0IF9CaWdpbnQKewogIHN0cnVjdCBfQmlnaW50 ICpfbmV4dDsKICBpbnQgX2ssIF9tYXh3ZHMsIF9zaWduLCBfd2RzOwogIF9fVUxvbmcgX3hbMV07 Cn07CgoKc3RydWN0IF9fdG0KewogIGludCBfX3RtX3NlYzsKICBpbnQgX190bV9taW47CiAgaW50 IF9fdG1faG91cjsKICBpbnQgX190bV9tZGF5OwogIGludCBfX3RtX21vbjsKICBpbnQgX190bV95 ZWFyOwogIGludCBfX3RtX3dkYXk7CiAgaW50IF9fdG1feWRheTsKICBpbnQgX190bV9pc2RzdDsK fTsKIyA2OCAiL3Vzci9pbmNsdWRlL3N5cy9yZWVudC5oIiAzCnN0cnVjdCBfYXRleGl0IHsKICAg ICAgICBzdHJ1Y3QgX2F0ZXhpdCAqX25leHQ7CiAgICAgICAgaW50IF9pbmQ7CiAgICAgICAgdm9p ZCAoKl9mbnNbMzJdKSh2b2lkKTsKICAgICAgICB2b2lkICpfZm5hcmdzWzMyXTsKICAgICAgICBf X1VMb25nIF9mbnR5cGVzOwp9OwojIDkxICIvdXNyL2luY2x1ZGUvc3lzL3JlZW50LmgiIDMKc3Ry dWN0IF9fc2J1ZiB7CiAgICAgICAgdW5zaWduZWQgY2hhciAqX2Jhc2U7CiAgICAgICAgaW50IF9z aXplOwp9OwoKCgoKCgp0eXBlZGVmIGxvbmcgX2Zwb3NfdDsKIyAxNTYgIi91c3IvaW5jbHVkZS9z eXMvcmVlbnQuaCIgMwpzdHJ1Y3QgX19zRklMRSB7CiAgdW5zaWduZWQgY2hhciAqX3A7CiAgaW50 IF9yOwogIGludCBfdzsKICBzaG9ydCBfZmxhZ3M7CiAgc2hvcnQgX2ZpbGU7CiAgc3RydWN0IF9f c2J1ZiBfYmY7CiAgaW50IF9sYmZzaXplOwoKCgoKCgogIHZvaWQgKiBfY29va2llOwoKICBfc3Np emVfdCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSAoKl9yZWFkKSAodm9pZCAqIF9jb29raWUs IGNoYXIgKl9idWYsIGludCBfbik7CiAgX3NzaXplX3QgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9f KSkgKCpfd3JpdGUpICh2b2lkICogX2Nvb2tpZSwgY29uc3QgY2hhciAqX2J1ZiwgaW50IF9uKTsK CiAgX2Zwb3NfdCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSAoKl9zZWVrKSAodm9pZCAqIF9j b29raWUsIF9mcG9zX3QgX29mZnNldCwgaW50IF93aGVuY2UpOwogIGludCBfX2F0dHJpYnV0ZV9f KChfX2NkZWNsX18pKSAoKl9jbG9zZSkgKHZvaWQgKiBfY29va2llKTsKCgogIHN0cnVjdCBfX3Ni dWYgX3ViOwogIHVuc2lnbmVkIGNoYXIgKl91cDsKICBpbnQgX3VyOwoKCiAgdW5zaWduZWQgY2hh ciBfdWJ1ZlszXTsKICB1bnNpZ25lZCBjaGFyIF9uYnVmWzFdOwoKCiAgc3RydWN0IF9fc2J1ZiBf bGI7CgoKICBpbnQgX2Jsa3NpemU7CiAgaW50IF9vZmZzZXQ7CgoKICBzdHJ1Y3QgX3JlZW50ICpf ZGF0YTsKCgoKICBfZmxvY2tfdCBfbG9jazsKCn07CiMgMjQ5ICIvdXNyL2luY2x1ZGUvc3lzL3Jl ZW50LmgiIDMKdHlwZWRlZiBzdHJ1Y3QgX19zRklMRSBfX0ZJTEU7CgoKc3RydWN0IF9nbHVlCnsK ICBzdHJ1Y3QgX2dsdWUgKl9uZXh0OwogIGludCBfbmlvYnM7CiAgX19GSUxFICpfaW9iczsKfTsK IyAyODAgIi91c3IvaW5jbHVkZS9zeXMvcmVlbnQuaCIgMwpzdHJ1Y3QgX3JhbmQ0OCB7CiAgdW5z aWduZWQgc2hvcnQgX3NlZWRbM107CiAgdW5zaWduZWQgc2hvcnQgX211bHRbM107CiAgdW5zaWdu ZWQgc2hvcnQgX2FkZDsKCgoKCn07CiMgNTMyICIvdXNyL2luY2x1ZGUvc3lzL3JlZW50LmgiIDMK c3RydWN0IF9yZWVudAp7CiAgaW50IF9lcnJubzsKCgoKCiAgX19GSUxFICpfc3RkaW4sICpfc3Rk b3V0LCAqX3N0ZGVycjsKCiAgaW50IF9pbmM7CiAgY2hhciBfZW1lcmdlbmN5WzI1XTsKCiAgaW50 IF9jdXJyZW50X2NhdGVnb3J5OwogIGNvbnN0IGNoYXIgKl9jdXJyZW50X2xvY2FsZTsKCiAgaW50 IF9fc2RpZGluaXQ7CgogIHZvaWQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgKCpfX2NsZWFu dXApIChzdHJ1Y3QgX3JlZW50ICopOwoKCiAgc3RydWN0IF9CaWdpbnQgKl9yZXN1bHQ7CiAgaW50 IF9yZXN1bHRfazsKICBzdHJ1Y3QgX0JpZ2ludCAqX3A1czsKICBzdHJ1Y3QgX0JpZ2ludCAqKl9m cmVlbGlzdDsKCgogIGludCBfY3Z0bGVuOwogIGNoYXIgKl9jdnRidWY7CgogIHVuaW9uCiAgICB7 CiAgICAgIHN0cnVjdAogICAgICAgIHsKICAgICAgICAgIHVuc2lnbmVkIGludCBfdW51c2VkX3Jh bmQ7CiAgICAgICAgICBjaGFyICogX3N0cnRva19sYXN0OwogICAgICAgICAgY2hhciBfYXNjdGlt ZV9idWZbMjZdOwogICAgICAgICAgc3RydWN0IF9fdG0gX2xvY2FsdGltZV9idWY7CiAgICAgICAg ICBpbnQgX2dhbW1hX3NpZ25nYW07CiAgICAgICAgICBfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIGxv bmcgbG9uZyBfcmFuZF9uZXh0OwogICAgICAgICAgc3RydWN0IF9yYW5kNDggX3I0ODsKICAgICAg ICAgIF9tYnN0YXRlX3QgX21ibGVuX3N0YXRlOwogICAgICAgICAgX21ic3RhdGVfdCBfbWJ0b3dj X3N0YXRlOwogICAgICAgICAgX21ic3RhdGVfdCBfd2N0b21iX3N0YXRlOwogICAgICAgICAgY2hh ciBfbDY0YV9idWZbOF07CiAgICAgICAgICBjaGFyIF9zaWduYWxfYnVmWzI0XTsKICAgICAgICAg IGludCBfZ2V0ZGF0ZV9lcnI7CiAgICAgICAgICBfbWJzdGF0ZV90IF9tYnJsZW5fc3RhdGU7CiAg ICAgICAgICBfbWJzdGF0ZV90IF9tYnJ0b3djX3N0YXRlOwogICAgICAgICAgX21ic3RhdGVfdCBf bWJzcnRvd2NzX3N0YXRlOwogICAgICAgICAgX21ic3RhdGVfdCBfd2NydG9tYl9zdGF0ZTsKICAg ICAgICAgIF9tYnN0YXRlX3QgX3djc3J0b21ic19zdGF0ZTsKICAgICAgICB9IF9yZWVudDsKCgoK ICAgICAgc3RydWN0CiAgICAgICAgewoKICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiBfbmV4dGZb MzBdOwogICAgICAgICAgdW5zaWduZWQgaW50IF9ubWFsbG9jWzMwXTsKICAgICAgICB9IF91bnVz ZWQ7CiAgICB9IF9uZXc7CgoKICBzdHJ1Y3QgX2F0ZXhpdCAqX2F0ZXhpdDsKICBzdHJ1Y3QgX2F0 ZXhpdCBfYXRleGl0MDsKCgogIHZvaWQgKCoqKF9zaWdfZnVuYykpKGludCk7CgoKCgogIHN0cnVj dCBfZ2x1ZSBfX3NnbHVlOwogIF9fRklMRSBfX3NmWzNdOwp9OwojIDcyOCAiL3Vzci9pbmNsdWRl L3N5cy9yZWVudC5oIiAzCmV4dGVybiBzdHJ1Y3QgX3JlZW50ICpfaW1wdXJlX3B0ciA7Cgp2b2lk IF9yZWNsYWltX3JlZW50IChzdHJ1Y3QgX3JlZW50ICopOwojIDQ2ICIvdXNyL2luY2x1ZGUvc3Rk aW8uaCIgMiAzCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAxIDMKIyAyNCAiL3Vzci9p bmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgc2hvcnQgaW50IF9faW50MTZfdDsKdHlwZWRl ZiB1bnNpZ25lZCBzaG9ydCBpbnQgX191aW50MTZfdDsKCgoKCgp0eXBlZGVmIGludCBfX2ludDMy X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdWludDMyX3Q7CgoKCgoKCl9fZXh0ZW5zaW9uX18g dHlwZWRlZiBsb25nIGxvbmcgX19pbnQ2NF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWdu ZWQgbG9uZyBsb25nIF9fdWludDY0X3Q7CiMgNTkgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIg MwojIDEgIi91c3IvbGliL2djYy1saWIvaTY4Ni1wYy1jeWd3aW4vMy4yL2luY2x1ZGUvc3RkZGVm LmgiIDEgMwojIDE0OSAiL3Vzci9saWIvZ2NjLWxpYi9pNjg2LXBjLWN5Z3dpbi8zLjIvaW5jbHVk ZS9zdGRkZWYuaCIgMwp0eXBlZGVmIGludCBwdHJkaWZmX3Q7CiMgMjk2ICIvdXNyL2xpYi9nY2Mt bGliL2k2ODYtcGMtY3lnd2luLzMuMi9pbmNsdWRlL3N0ZGRlZi5oIiAzCnR5cGVkZWYgc2hvcnQg dW5zaWduZWQgaW50IHdjaGFyX3Q7CiMgNjAgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAz CiMgMSAiL3Vzci9pbmNsdWRlL21hY2hpbmUvdHlwZXMuaCIgMSAzCiMgMzYgIi91c3IvaW5jbHVk ZS9tYWNoaW5lL3R5cGVzLmgiIDMKdHlwZWRlZiBsb25nIGludCBfX29mZl90Owp0eXBlZGVmIGlu dCBfX3BpZF90OwoKX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgbG9uZyBpbnQgX19sb2ZmX3Q7 CiMgNjEgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzCiMgODIgIi91c3IvaW5jbHVkZS9z eXMvdHlwZXMuaCIgMwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdV9jaGFyOwp0eXBlZGVmIHVuc2ln bmVkIHNob3J0IHVfc2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50Owp0eXBlZGVmIHVu c2lnbmVkIGxvbmcgdV9sb25nOwoKCgp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVzaG9ydDsKdHlw ZWRlZiB1bnNpZ25lZCBpbnQgdWludDsKCgoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGNsb2NrX3Q7 CgoKCgp0eXBlZGVmIGxvbmcgdGltZV90OwoKCgoKc3RydWN0IHRpbWVzcGVjIHsKICB0aW1lX3Qg dHZfc2VjOwogIGxvbmcgdHZfbnNlYzsKfTsKCnN0cnVjdCBpdGltZXJzcGVjIHsKICBzdHJ1Y3Qg dGltZXNwZWMgaXRfaW50ZXJ2YWw7CiAgc3RydWN0IHRpbWVzcGVjIGl0X3ZhbHVlOwp9OwoKCnR5 cGVkZWYgbG9uZyBkYWRkcl90Owp0eXBlZGVmIGNoYXIgKiBjYWRkcl90OwoKCnR5cGVkZWYgdW5z aWduZWQgbG9uZyBpbm9fdDsKIyAxMzAgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0eXBl ZGVmIHVuc2lnbmVkIGxvbmcgdm1fb2Zmc2V0X3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyB2bV9z aXplX3Q7CgoKCnR5cGVkZWYgY2hhciBpbnQ4X3Q7CnR5cGVkZWYgdW5zaWduZWQgY2hhciB1X2lu dDhfdDsKdHlwZWRlZiBzaG9ydCBpbnQxNl90Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfaW50 MTZfdDsKdHlwZWRlZiBpbnQgaW50MzJfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQzMl90 Owp0eXBlZGVmIGxvbmcgbG9uZyBpbnQ2NF90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1 X2ludDY0X3Q7CnR5cGVkZWYgaW50MzJfdCByZWdpc3Rlcl90OwojIDE2OSAiL3Vzci9pbmNsdWRl L3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgaW50IHBpZF90Owp0eXBlZGVmIGxvbmcga2V5X3Q7CnR5 cGVkZWYgX3NzaXplX3Qgc3NpemVfdDsKCgp0eXBlZGVmIGNoYXIgKiBhZGRyX3Q7CnR5cGVkZWYg aW50IG1vZGVfdDsKIyAxODggIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0eXBlZGVmIHVu c2lnbmVkIHNob3J0IG5saW5rX3Q7CiMgMjEwICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMK dHlwZWRlZiBsb25nIGZkX21hc2s7CgoKCgoKCgp0eXBlZGVmIHN0cnVjdCBfdHlwZXNfZmRfc2V0 IHsKICAgICAgICBmZF9tYXNrIGZkc19iaXRzWygoKDY0KSsoKChzaXplb2YgKGZkX21hc2spICog OCkpLTEpKS8oKHNpemVvZiAoZmRfbWFzaykgKiA4KSkpXTsKfSBfdHlwZXNfZmRfc2V0OwojIDI0 NiAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBjbG9j a2lkX3Q7CgoKCgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdGltZXJfdDsKCgoKCnR5cGVkZWYgbG9u ZyB1c2Vjb25kc190OwoKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlcy5oIiAxIDMKIyAy NjAgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzCiMgMzY0ICIvdXNyL2luY2x1ZGUvc3lz L3R5cGVzLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvY3lnd2luL3R5cGVzLmgiIDEgMwojIDIwICIv dXNyL2luY2x1ZGUvY3lnd2luL3R5cGVzLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvc3lzL3N5c21h Y3Jvcy5oIiAxIDMKIyAyMSAiL3Vzci9pbmNsdWRlL2N5Z3dpbi90eXBlcy5oIiAyIDMKCnR5cGVk ZWYgc3RydWN0IHRpbWVzcGVjIHRpbWVzcGVjX3QsIHRpbWVzdHJ1Y190OwoKdHlwZWRlZiBsb25n IF9fb2ZmMzJfdDsKdHlwZWRlZiBsb25nIGxvbmcgX19vZmY2NF90OwoKCgp0eXBlZGVmIF9fb2Zm MzJfdCBvZmZfdDsKCgp0eXBlZGVmIHNob3J0IF9fZGV2MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBs b25nIF9fZGV2MzJfdDsKCgoKdHlwZWRlZiBfX2RldjE2X3QgZGV2X3Q7CgoKdHlwZWRlZiBsb25n IGJsa3NpemVfdDsKCnR5cGVkZWYgbG9uZyBfX2Jsa2NudDMyX3Q7CnR5cGVkZWYgbG9uZyBsb25n IF9fYmxrY250NjRfdDsKCgoKdHlwZWRlZiBfX2Jsa2NudDMyX3QgYmxrY250X3Q7CgoKdHlwZWRl ZiB1bnNpZ25lZCBzaG9ydCBfX3VpZDE2X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19naWQx Nl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX191aWQzMl90Owp0eXBlZGVmIHVuc2lnbmVkIGxv bmcgX19naWQzMl90OwoKCgoKdHlwZWRlZiBfX3VpZDE2X3QgdWlkX3Q7CnR5cGVkZWYgX19naWQx Nl90IGdpZF90OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX19wdGhyZWFkX3Qge2NoYXIgX19kdW1teTt9 ICpwdGhyZWFkX3Q7CnR5cGVkZWYgc3RydWN0IF9fcHRocmVhZF9tdXRleF90IHtjaGFyIF9fZHVt bXk7fSAqcHRocmVhZF9tdXRleF90OwoKdHlwZWRlZiBzdHJ1Y3QgX19wdGhyZWFkX2tleV90IHtj aGFyIF9fZHVtbXk7fSAqcHRocmVhZF9rZXlfdDsKdHlwZWRlZiBzdHJ1Y3QgX19wdGhyZWFkX2F0 dHJfdCB7Y2hhciBfX2R1bW15O30gKnB0aHJlYWRfYXR0cl90Owp0eXBlZGVmIHN0cnVjdCBfX3B0 aHJlYWRfbXV0ZXhhdHRyX3Qge2NoYXIgX19kdW1teTt9ICpwdGhyZWFkX211dGV4YXR0cl90Owp0 eXBlZGVmIHN0cnVjdCBfX3B0aHJlYWRfY29uZGF0dHJfdCB7Y2hhciBfX2R1bW15O30gKnB0aHJl YWRfY29uZGF0dHJfdDsKdHlwZWRlZiBzdHJ1Y3QgX19wdGhyZWFkX2NvbmRfdCB7Y2hhciBfX2R1 bW15O30gKnB0aHJlYWRfY29uZF90OwoKCnR5cGVkZWYgc3RydWN0CnsKICBwdGhyZWFkX211dGV4 X3QgbXV0ZXg7CiAgaW50IHN0YXRlOwp9CnB0aHJlYWRfb25jZV90Owp0eXBlZGVmIHN0cnVjdCBf X3B0aHJlYWRfcndsb2NrX3Qge2NoYXIgX19kdW1teTt9ICpwdGhyZWFkX3J3bG9ja190Owp0eXBl ZGVmIHN0cnVjdCBfX3B0aHJlYWRfcndsb2NrYXR0cl90IHtjaGFyIF9fZHVtbXk7fSAqcHRocmVh ZF9yd2xvY2thdHRyX3Q7CiMgMzY1ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMwojIDQ3 ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzCgoKCnR5cGVkZWYgX2Zwb3NfdCBmcG9zX3Q7CnR5 cGVkZWYgX19GSUxFIEZJTEU7CgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL3N0ZGlvLmgiIDEg MwojIDU4ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzCiMgMTYyICIvdXNyL2luY2x1ZGUvc3Rk aW8uaCIgMwpGSUxFICogX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgdG1wZmlsZSAodm9pZCk7 CmNoYXIgKiBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSB0bXBuYW0gKGNoYXIgKik7CmludCBf X2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBmY2xvc2UgKEZJTEUgKik7CmludCBfX2F0dHJpYnV0 ZV9fKChfX2NkZWNsX18pKSBmZmx1c2ggKEZJTEUgKik7CkZJTEUgKiBfX2F0dHJpYnV0ZV9fKChf X2NkZWNsX18pKSBmcmVvcGVuIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgRklMRSAqKTsK dm9pZCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBzZXRidWYgKEZJTEUgKiwgY2hhciAqKTsK aW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHNldHZidWYgKEZJTEUgKiwgY2hhciAqLCBp bnQsIHNpemVfdCk7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBmcHJpbnRmIChGSUxF ICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIGZz Y2FuZiAoRklMRSAqLCBjb25zdCBjaGFyICosIC4uLik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2Nk ZWNsX18pKSBwcmludGYgKGNvbnN0IGNoYXIgKiwgLi4uKTsKaW50IF9fYXR0cmlidXRlX18oKF9f Y2RlY2xfXykpIHNjYW5mIChjb25zdCBjaGFyICosIC4uLik7CmludCBfX2F0dHJpYnV0ZV9fKChf X2NkZWNsX18pKSBzc2NhbmYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOwppbnQg X19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgdmZwcmludGYgKEZJTEUgKiwgY29uc3QgY2hhciAq LCBfX2dudWNfdmFfbGlzdCk7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSB2cHJpbnRm IChjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2Rl Y2xfXykpIHZzcHJpbnRmIChjaGFyICosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwpp bnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZmdldGMgKEZJTEUgKik7CmNoYXIgKiBfX2F0 dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBmZ2V0cyAoY2hhciAqLCBpbnQsIEZJTEUgKik7CmludCBf X2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBmcHV0YyAoaW50LCBGSUxFICopOwppbnQgX19hdHRy aWJ1dGVfXygoX19jZGVjbF9fKSkgZnB1dHMgKGNvbnN0IGNoYXIgKiwgRklMRSAqKTsKaW50IF9f YXR0cmlidXRlX18oKF9fY2RlY2xfXykpIGdldGMgKEZJTEUgKik7CmludCBfX2F0dHJpYnV0ZV9f KChfX2NkZWNsX18pKSBnZXRjaGFyICh2b2lkKTsKY2hhciAqIF9fYXR0cmlidXRlX18oKF9fY2Rl Y2xfXykpIGdldHMgKGNoYXIgKik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBwdXRj IChpbnQsIEZJTEUgKik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBwdXRjaGFyIChp bnQpOwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgcHV0cyAoY29uc3QgY2hhciAqKTsK aW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHVuZ2V0YyAoaW50LCBGSUxFICopOwpzaXpl X3QgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZnJlYWQgKHZvaWQgKiwgc2l6ZV90IF9zaXpl LCBzaXplX3QgX24sIEZJTEUgKik7CnNpemVfdCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBm d3JpdGUgKGNvbnN0IHZvaWQgKiAsIHNpemVfdCBfc2l6ZSwgc2l6ZV90IF9uLCBGSUxFICopOwpp bnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZmdldHBvcyAoRklMRSAqLCBmcG9zX3QgKik7 CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBmc2VlayAoRklMRSAqLCBsb25nLCBpbnQp OwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZnNldHBvcyAoRklMRSAqLCBjb25zdCBm cG9zX3QgKik7CmxvbmcgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZnRlbGwgKCBGSUxFICop Owp2b2lkIF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHJld2luZCAoRklMRSAqKTsKdm9pZCBf X2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBjbGVhcmVyciAoRklMRSAqKTsKaW50IF9fYXR0cmli dXRlX18oKF9fY2RlY2xfXykpIGZlb2YgKEZJTEUgKik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2Nk ZWNsX18pKSBmZXJyb3IgKEZJTEUgKik7CnZvaWQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkg cGVycm9yIChjb25zdCBjaGFyICopOwoKRklMRSAqIF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykp IGZvcGVuIChjb25zdCBjaGFyICpfbmFtZSwgY29uc3QgY2hhciAqX3R5cGUpOwppbnQgX19hdHRy aWJ1dGVfXygoX19jZGVjbF9fKSkgc3ByaW50ZiAoY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7 CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSByZW1vdmUgKGNvbnN0IGNoYXIgKik7Cmlu dCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSByZW5hbWUgKGNvbnN0IGNoYXIgKiwgY29uc3Qg Y2hhciAqKTsKCgppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgYXNwcmludGYgKGNoYXIg KiosIGNvbnN0IGNoYXIgKiwgLi4uKTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIGZz ZWVrbyAoRklMRSAqLCBvZmZfdCwgaW50KTsKb2ZmX3QgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9f KSkgZnRlbGxvICggRklMRSAqKTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHZmaXBy aW50ZiAoRklMRSAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKaW50IF9fYXR0cmli dXRlX18oKF9fY2RlY2xfXykpIGlwcmludGYgKGNvbnN0IGNoYXIgKiwgLi4uKTsKaW50IF9fYXR0 cmlidXRlX18oKF9fY2RlY2xfXykpIGZpcHJpbnRmIChGSUxFICosIGNvbnN0IGNoYXIgKiwgLi4u KTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHNpcHJpbnRmIChjaGFyICosIGNvbnN0 IGNoYXIgKiwgLi4uKTsKY2hhciAqIF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHRlbXBuYW0g KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xf XykpIHZhc3ByaW50ZiAoY2hhciAqKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7Cmlu dCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSB2c25wcmludGYgKGNoYXIgKiwgc2l6ZV90LCBj b25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xf XykpIHZmc2NhbmYgKEZJTEUgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7CmludCBf X2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSB2c2NhbmYgKGNvbnN0IGNoYXIgKiwgX19nbnVjX3Zh X2xpc3QpOwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgdnNzY2FuZiAoY29uc3QgY2hh ciAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKCmludCBfX2F0dHJpYnV0ZV9fKChf X2NkZWNsX18pKSBmY2xvc2VhbGwgKHZvaWQpOwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9f KSkgc25wcmludGYgKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIC4uLik7CiMgMjMxICIv dXNyL2luY2x1ZGUvc3RkaW8uaCIgMwpGSUxFICogX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkg ZmRvcGVuIChpbnQsIGNvbnN0IGNoYXIgKik7CgppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9f KSkgZmlsZW5vIChGSUxFICopOwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZ2V0dyAo RklMRSAqKTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHBjbG9zZSAoRklMRSAqKTsK RklMRSAqIF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHBvcGVuIChjb25zdCBjaGFyICosIGNv bnN0IGNoYXIgKik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBwdXR3IChpbnQsIEZJ TEUgKik7CnZvaWQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgc2V0YnVmZmVyIChGSUxFICos IGNoYXIgKiwgaW50KTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIHNldGxpbmVidWYg KEZJTEUgKik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBnZXRjX3VubG9ja2VkIChG SUxFICopOwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZ2V0Y2hhcl91bmxvY2tlZCAo dm9pZCk7CnZvaWQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZmxvY2tmaWxlIChGSUxFICop OwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgZnRyeWxvY2tmaWxlIChGSUxFICopOwp2 b2lkIF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIGZ1bmxvY2tmaWxlIChGSUxFICopOwppbnQg X19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgcHV0Y191bmxvY2tlZCAoaW50LCBGSUxFICopOwpp bnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgcHV0Y2hhcl91bmxvY2tlZCAoaW50KTsKCgoK CgoKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIF9hc3ByaW50Zl9yIChzdHJ1Y3QgX3Jl ZW50ICosIGNoYXIgKiosIGNvbnN0IGNoYXIgKiwgLi4uKTsKaW50IF9fYXR0cmlidXRlX18oKF9f Y2RlY2xfXykpIF9mY2xvc2VhbGxfciAoc3RydWN0IF9yZWVudCAqKTsKRklMRSAqIF9fYXR0cmli dXRlX18oKF9fY2RlY2xfXykpIF9mZG9wZW5fciAoc3RydWN0IF9yZWVudCAqLCBpbnQsIGNvbnN0 IGNoYXIgKik7CkZJTEUgKiBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfZm9wZW5fciAoc3Ry dWN0IF9yZWVudCAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmludCBfX2F0dHJpYnV0 ZV9fKChfX2NkZWNsX18pKSBfZnNjYW5mX3IgKHN0cnVjdCBfcmVlbnQgKiwgRklMRSAqLCBjb25z dCBjaGFyICosIC4uLik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfZ2V0Y2hhcl9y IChzdHJ1Y3QgX3JlZW50ICopOwpjaGFyICogX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkgX2dl dHNfciAoc3RydWN0IF9yZWVudCAqLCBjaGFyICopOwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVj bF9fKSkgX2lwcmludGZfciAoc3RydWN0IF9yZWVudCAqLCBjb25zdCBjaGFyICosIC4uLik7Cmlu dCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfbWtzdGVtcF9yIChzdHJ1Y3QgX3JlZW50ICos IGNoYXIgKik7CmNoYXIgKiBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfbWt0ZW1wX3IgKHN0 cnVjdCBfcmVlbnQgKiwgY2hhciAqKTsKdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBf cGVycm9yX3IgKHN0cnVjdCBfcmVlbnQgKiwgY29uc3QgY2hhciAqKTsKaW50IF9fYXR0cmlidXRl X18oKF9fY2RlY2xfXykpIF9wcmludGZfciAoc3RydWN0IF9yZWVudCAqLCBjb25zdCBjaGFyICos IC4uLik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfcHV0Y2hhcl9yIChzdHJ1Y3Qg X3JlZW50ICosIGludCk7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfcHV0c19yIChz dHJ1Y3QgX3JlZW50ICosIGNvbnN0IGNoYXIgKik7CmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNs X18pKSBfcmVtb3ZlX3IgKHN0cnVjdCBfcmVlbnQgKiwgY29uc3QgY2hhciAqKTsKaW50IF9fYXR0 cmlidXRlX18oKF9fY2RlY2xfXykpIF9yZW5hbWVfciAoc3RydWN0IF9yZWVudCAqLCBjb25zdCBj aGFyICpfb2xkLCBjb25zdCBjaGFyICpfbmV3KTsKCmludCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNs X18pKSBfc2NhbmZfciAoc3RydWN0IF9yZWVudCAqLCBjb25zdCBjaGFyICosIC4uLik7CmludCBf X2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfc3ByaW50Zl9yIChzdHJ1Y3QgX3JlZW50ICosIGNo YXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkg X3NucHJpbnRmX3IgKHN0cnVjdCBfcmVlbnQgKiwgY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIg KiwgLi4uKTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIF9zc2NhbmZfciAoc3RydWN0 IF9yZWVudCAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKY2hhciAqIF9fYXR0 cmlidXRlX18oKF9fY2RlY2xfXykpIF90ZW1wbmFtX3IgKHN0cnVjdCBfcmVlbnQgKiwgY29uc3Qg Y2hhciAqLCBjb25zdCBjaGFyICopOwpGSUxFICogX19hdHRyaWJ1dGVfXygoX19jZGVjbF9fKSkg X3RtcGZpbGVfciAoc3RydWN0IF9yZWVudCAqKTsKY2hhciAqIF9fYXR0cmlidXRlX18oKF9fY2Rl Y2xfXykpIF90bXBuYW1fciAoc3RydWN0IF9yZWVudCAqLCBjaGFyICopOwppbnQgX19hdHRyaWJ1 dGVfXygoX19jZGVjbF9fKSkgX3Zhc3ByaW50Zl9yIChzdHJ1Y3QgX3JlZW50ICosIGNoYXIgKios IGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwppbnQgX19hdHRyaWJ1dGVfXygoX19jZGVj bF9fKSkgX3ZmcHJpbnRmX3IgKHN0cnVjdCBfcmVlbnQgKiwgRklMRSAqLCBjb25zdCBjaGFyICos IF9fZ251Y192YV9saXN0KTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIF92cHJpbnRm X3IgKHN0cnVjdCBfcmVlbnQgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7CmludCBf X2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfdnNwcmludGZfciAoc3RydWN0IF9yZWVudCAqLCBj aGFyICosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwppbnQgX19hdHRyaWJ1dGVfXygo X19jZGVjbF9fKSkgX3ZzbnByaW50Zl9yIChzdHJ1Y3QgX3JlZW50ICosIGNoYXIgKiwgc2l6ZV90 LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2Rl Y2xfXykpIF92ZnNjYW5mX3IgKHN0cnVjdCBfcmVlbnQgKiwgRklMRSAqLCBjb25zdCBjaGFyICos IF9fZ251Y192YV9saXN0KTsKaW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIF92c2NhbmZf ciAoc3RydWN0IF9yZWVudCAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKaW50IF9f YXR0cmlidXRlX18oKF9fY2RlY2xfXykpIF92c3NjYW5mX3IgKHN0cnVjdCBfcmVlbnQgKiwgY29u c3QgY2hhciAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKCnNzaXplX3QgX19hdHRy aWJ1dGVfXygoX19jZGVjbF9fKSkgX19nZXRkZWxpbSAoY2hhciAqKiwgc2l6ZV90ICosIGludCwg RklMRSAqKTsKc3NpemVfdCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfX2dldGxpbmUgKGNo YXIgKiosIHNpemVfdCAqLCBGSUxFICopOwojIDMwOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMK aW50IF9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIF9fc3JnZXQgKEZJTEUgKik7CmludCBfX2F0 dHJpYnV0ZV9fKChfX2NkZWNsX18pKSBfX3N3YnVmIChpbnQsIEZJTEUgKik7CgoKCgoKCkZJTEUg Kl9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIGZ1bm9wZW4gKGNvbnN0IHZvaWQgKiBfY29va2ll LCBpbnQgKCpyZWFkZm4pKHZvaWQgKiBfY29va2llLCBjaGFyICpfYnVmLCBpbnQgX24pLCBpbnQg KCp3cml0ZWZuKSh2b2lkICogX2Nvb2tpZSwgY29uc3QgY2hhciAqX2J1ZiwgaW50IF9uKSwgZnBv c190ICgqc2Vla2ZuKSh2b2lkICogX2Nvb2tpZSwgZnBvc190IF9vZmYsIGludCBfd2hlbmNlKSwg aW50ICgqY2xvc2Vmbikodm9pZCAqIF9jb29raWUpKTsKIyAzMzQgIi91c3IvaW5jbHVkZS9zdGRp by5oIiAzCnN0YXRpYyBfX2lubGluZV9fIGludCBfX3NnZXRjKEZJTEUgKl9fcCkKICB7CiAgICBp bnQgX19jID0gKC0tKF9fcCktPl9yIDwgMCA/IF9fc3JnZXQoX19wKSA6IChpbnQpKCooX19wKS0+ X3ArKykpOwogICAgaWYgKChfX3AtPl9mbGFncyAmIDB4NDAwMCkgJiYgKF9fYyA9PSAnXHInKSkK ICAgICAgewogICAgICBpbnQgX19jMiA9ICgtLShfX3ApLT5fciA8IDAgPyBfX3NyZ2V0KF9fcCkg OiAoaW50KSgqKF9fcCktPl9wKyspKTsKICAgICAgaWYgKF9fYzIgPT0gJ1xuJykKICAgICAgICBf X2MgPSBfX2MyOwogICAgICBlbHNlCiAgICAgICAgdW5nZXRjKF9fYzIsIF9fcCk7CiAgICAgIH0K ICAgIHJldHVybiBfX2M7CiAgfQojIDQxNiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKCiMgMiAi aW5saW5lMS5jIiAyCgppbnQgbWFpbih2b2lkKSB7CgogIGludCBmb289MTAsYmFyPTE1OwoKICBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoImFkZGwgJSVlYnh4LCUlZWF4IgogICAgICAgICAgICAgICAg ICAgICAgICA6ICI9ZWF4Iihmb28pCiAgICAgICAgICAgICAgICAgICAgICAgIDogImVheCIoZm9v KSwgImVieCIoYmFyKQogICAgICAgICAgICAgICAgICAgICAgICA6ICJlYXgiCiAgICAgICAgICAg ICAgICAgICAgICAgICk7CiAgcHJpbnRmKCJmb28rYmFyPSVkXG4iLCBmb28pOwogIHJldHVybiAw Owp9Cg==