public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: rggammon@alumni.uwaterloo.ca To: gcc-gnats@gcc.gnu.org Subject: target/7627: avr target: unrecognizable insn Date: Sun, 18 Aug 2002 16:26:00 -0000 [thread overview] Message-ID: <20020818230207.27984.qmail@sources.redhat.com> (raw) >Number: 7627 >Category: target >Synopsis: avr target: unrecognizable insn >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Aug 18 16:06:00 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Ryan Gammon >Release: 3.3 20020818 (experimental) (and earlier) >Organization: >Environment: avr-gcc (GCC) 3.3 20020818 (experimental) GNU assembler 2.13.90 20020818 --or-- avr-gcc (GCC) 3.1 GNU assembler 2.12.1 i686 host >Description: avr-gcc -c -Os --save-temps ppp.c -DAVR -o ppp.o -I.. -I../../avr-libc/include -mmcu=atmega103 ppp.c: In function `PPPEntry': ppp.c:594: error: unrecognizable insn: (insn 90 89 91 21 (nil) (set (reg:QI 56) (const_int 180 [0xb4])) -1 (nil) (expr_list:REG_EQUAL (const_int 180 [0xb4]) (nil))) ppp.c:594: internal compiler error: Internal compiler error in extract_insn, at recog.c:2175 Note: optimizing for size. This file comes from motorola's application note on ppp (AN2120). configure options (gcc): --prefix=/usr/local/avr-cvs --target=avr --program-prefix=avr- --disable-nls --enable-languages=c configure options (binutils): --prefix=/usr/local/avr-cvs --program-prefix=avr- --target=avr >How-To-Repeat: ppp.i is supplied. ppp.c and the relevant includes are available upon request. ppp.c:594 is the end of the PPPEntry function. Thanks for working on avr-gcc! >Fix: Compiles if -Os (optimize for size) is not specified. >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="ppp.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ppp.i" IyAxICJwcHAuYyIKIyAxICI8YnVpbHQtaW4+IgojIDEgIjxjb21tYW5kIGxpbmU+IgojIDEgInBw cC5jIgojIDE0ICJwcHAuYyIKIyAxICIuLi8uLi9hdnItbGliYy9pbmNsdWRlL3N0cmluZy5oIiAx CiMgMjMgIi4uLy4uL2F2ci1saWJjL2luY2x1ZGUvc3RyaW5nLmgiCiMgMSAiL3Vzci9sb2NhbC9h dnItY3ZzL2xpYi9nY2MtbGliL2F2ci8zLjMvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAyMDMg Ii91c3IvbG9jYWwvYXZyLWN2cy9saWIvZ2NjLWxpYi9hdnIvMy4zL2luY2x1ZGUvc3RkZGVmLmgi IDMgNAp0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CiMgMjQgIi4uLy4uL2F2ci1saWJjL2lu Y2x1ZGUvc3RyaW5nLmgiIDIKIyAzMyAiLi4vLi4vYXZyLWxpYmMvaW5jbHVkZS9zdHJpbmcuaCIK ZXh0ZXJuIHZvaWQgKm1lbWNjcHkodm9pZCAqLCBjb25zdCB2b2lkICosIGludCwgc2l6ZV90KTsK ZXh0ZXJuIHZvaWQgKm1lbWNocihjb25zdCB2b2lkICosIGludCwgc2l6ZV90KSBfX2F0dHJpYnV0 ZV9fKChfX3B1cmVfXykpOwpleHRlcm4gaW50IG1lbWNtcChjb25zdCB2b2lkICosIGNvbnN0IHZv aWQgKiwgc2l6ZV90KSBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpOwpleHRlcm4gdm9pZCAqbWVt Y3B5KHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtbW92ZSh2 b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90KTsKZXh0ZXJuIHZvaWQgKm1lbXNldCh2b2lkICos IGludCwgc2l6ZV90KTsKZXh0ZXJuIGNoYXIgKnN0cmNhdChjaGFyICosIGNvbnN0IGNoYXIgKik7 CmV4dGVybiBjaGFyICpzdHJjaHIoY29uc3QgY2hhciAqLCBpbnQpIF9fYXR0cmlidXRlX18oKF9f cHVyZV9fKSk7CmV4dGVybiBpbnQgc3RyY21wKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKSBf X2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpOwpleHRlcm4gY2hhciAqc3RyY3B5KGNoYXIgKiwgY29u c3QgY2hhciAqKTsKZXh0ZXJuIGludCBzdHJjYXNlY21wKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh ciAqKSBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpOwpleHRlcm4gc2l6ZV90IHN0cmxlbihjb25z dCBjaGFyICopIF9fYXR0cmlidXRlX18oKF9fcHVyZV9fKSk7CmV4dGVybiBjaGFyICpzdHJsd3Io Y2hhciAqKTsKZXh0ZXJuIGNoYXIgKnN0cm5jYXQoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVf dCk7CmV4dGVybiBpbnQgc3RybmNtcChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90 KTsKZXh0ZXJuIGNoYXIgKnN0cm5jcHkoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CmV4 dGVybiBpbnQgc3RybmNhc2VjbXAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCkg X19hdHRyaWJ1dGVfXygoX19wdXJlX18pKTsKZXh0ZXJuIHNpemVfdCBzdHJubGVuKGNvbnN0IGNo YXIgKiwgc2l6ZV90KSBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpOwpleHRlcm4gY2hhciAqc3Ry cmNocihjb25zdCBjaGFyICosIGludCkgX19hdHRyaWJ1dGVfXygoX19wdXJlX18pKTsKZXh0ZXJu IGNoYXIgKnN0cnJldihjaGFyICopOwpleHRlcm4gY2hhciAqc3Ryc3RyKGNvbnN0IGNoYXIgKiwg Y29uc3QgY2hhciAqKSBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpOwpleHRlcm4gY2hhciAqc3Ry dXByKGNoYXIgKik7CiMgMTUgInBwcC5jIiAyCiMgMSAiY29tbWRydi5oIiAxCiMgMTEgImNvbW1k cnYuaCIKIyAxICJub3RhdGlvbi5oIiAxCiMgOSAibm90YXRpb24uaCIKdHlwZWRlZiB2b2lkICgq RXZlbnRQcm9jKSh1bnNpZ25lZCBjaGFyIGMpOwojIDEyICJjb21tZHJ2LmgiIDIKCgoKCnR5cGVk ZWYgZW51bSB7CiAgICBFTkFCTEVfUlggPSAweDA0LAogICAgRU5BQkxFX1RYID0gMHgwOCwKICAg IEVOQUJMRV9SWF9FVkVOVFMgPSAweDIwLAogICAgRU5BQkxFX1RYX0VWRU5UUyA9IDB4ODAKfSBD b21tT3B0aW9uczsKCgoKCgoKCnZvaWQgT3BlbkNvbW0gKHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIg QmF1ZFJhdGUsIHJlZ2lzdGVyIENvbW1PcHRpb25zIE9wdGlvbnMpOwp2b2lkIENsb3NlQ29tbSAo dm9pZCk7CnZvaWQgQ29tbUV2ZW50UHJvYyAoRXZlbnRQcm9jIFByb2MpOwp2b2lkIFdyaXRlQ29t bSAodW5zaWduZWQgY2hhciBjKTsKdm9pZCBXcml0ZUNvbW1TdHIgKGNoYXIqIHN0cmluZyk7CnVu c2lnbmVkIGNoYXIgUmVhZENvbW0gKHZvaWQpOwp2b2lkIFVzZURlZmF1bHRDb21tUHJvYyAodm9p ZCk7CiMgMTYgInBwcC5jIiAyCiMgMSAicHBwLmgiIDEKIyAxMyAicHBwLmgiCiMgMSAiLi4vdWlw L3VpcC5oIiAxCiMgNDEgIi4uL3VpcC91aXAuaCIKIyAxICIuLi91aXAvdWlwb3B0LmgiIDEKIyA0 MSAiLi4vdWlwL3VpcG9wdC5oIgojIDEgIi4uL21vdC1wcHAvaXAuaCIgMQojIDExICIuLi9tb3Qt cHBwL2lwLmgiCiMgMSAiLi4vbW90LXBwcC9ub3RhdGlvbi5oIiAxCiMgMTIgIi4uL21vdC1wcHAv aXAuaCIgMgp0eXBlZGVmIHN0cnVjdCB7CiAgICB1bnNpZ25lZCBjaGFyIFZlcnNpb25fSExlbjsK ICAgIHVuc2lnbmVkIGNoYXIgU2VydmljZTsKICAgIHVuc2lnbmVkIGNoYXIgTGVuZ3RoVXBwZXI7 CiAgICB1bnNpZ25lZCBjaGFyIExlbmd0aDsKICAgIHVuc2lnbmVkIHNob3J0IElEOwogICAgdW5z aWduZWQgc2hvcnQgRnJhZzsKICAgIHVuc2lnbmVkIGNoYXIgVFRMOwogICAgdW5zaWduZWQgY2hh ciBQcm90b2NvbDsKICAgIHVuc2lnbmVkIHNob3J0IENoZWNrc3VtOwogICAgdW5zaWduZWQgY2hh ciBTb3VyY2VBZGRyZXNzIFs0XTsKICAgIHVuc2lnbmVkIGNoYXIgRGVzdEFkZHJlc3MgWzRdOwog ICAgdW5zaWduZWQgY2hhciBQYXlsb2FkIFs2NF07Cn0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkg SVBEYXRhZ3JhbTsKZXh0ZXJuIElQRGF0YWdyYW0gKmlwX2luOwpleHRlcm4gSVBEYXRhZ3JhbSAq aXBfb3V0Owp0eXBlZGVmIGVudW0geyBSQVdfU0VSSUFMID0gMSwgU0xJUCwgUFBQLCBQQVJBTExF TCwgRVRIRVJORVQgfSBJTlRFUkZBQ0U7CgoKCmV4dGVybiB1bnNpZ25lZCBjaGFyIElQQWRkcmVz c1s0XTsKCgoKCnVuc2lnbmVkIGNoYXIgSVBDb21wYXJlICh1bnNpZ25lZCBjaGFyICpJUE9uZSk7 CnVuc2lnbmVkIGxvbmcgSVBDaGVja1N1bSAodW5zaWduZWQgY2hhciAqRGF0YSwgdW5zaWduZWQg c2hvcnQgU2l6ZSk7CnZvaWQgSVBCaW5kQWRhcHRlciAoSU5URVJGQUNFIEludGVyZmFjZSk7CnZv aWQgSVBJbml0ICh2b2lkKTsKCgp2b2lkIElQTmV0U2VuZCAoICk7CiMgNDIgIi4uL3VpcC91aXBv cHQuaCIgMgojIDQyICIuLi91aXAvdWlwLmgiIDIKIyAxICIuLi9tYWluL21haW4uaCIgMQoKCgp0 eXBlZGVmIHVuc2lnbmVkIGNoYXIgdThfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1MTZfdDsK dHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMl90Owp0eXBlZGVmIHNpZ25lZCBjaGFyIHM4X3Q7CnR5 cGVkZWYgc2lnbmVkIHNob3J0IHMxNl90Owp0eXBlZGVmIHNpZ25lZCBsb25nIHMzMl90OwoKdm9p ZCBydW5fdGFza3Modm9pZCk7CiMgNDMgIi4uL3VpcC91aXAuaCIgMgojIDUzICIuLi91aXAvdWlw LmgiCnZvaWQgdWlwX2luaXQodm9pZCk7CiMgNzkgIi4uL3VpcC91aXAuaCIKdm9pZCB1aXBfbGlz dGVuKHUxNl90IHBvcnQpOwojIDg5ICIuLi91aXAvdWlwLmgiCnN0cnVjdCB1aXBfY29ubiAqdWlw X2Nvbm5lY3QodTE2X3QgKnJpcGFkZHIsIHUxNl90IHBvcnQpOwojIDI3MyAiLi4vdWlwL3VpcC5o IgpleHRlcm4gdThfdCB1aXBfYnVmWzE4MF07CiMgMjgyICIuLi91aXAvdWlwLmgiCmV4dGVybiB2 b2xhdGlsZSB1OF90ICp1aXBfYXBwZGF0YTsKIyAyOTYgIi4uL3VpcC91aXAuaCIKZXh0ZXJuIHZv bGF0aWxlIHU4X3QgdWlwX2xlbjsKIyAzMDYgIi4uL3VpcC91aXAuaCIKZXh0ZXJuIHN0cnVjdCB1 aXBfY29ubiAqdWlwX2Nvbm47CmV4dGVybiBzdHJ1Y3QgdWlwX2Nvbm4gdWlwX2Nvbm5zWzEwXTsK IyAzMTggIi4uL3VpcC91aXAuaCIKc3RydWN0IHVpcF9jb25uIHsKICB1OF90IHRjcHN0YXRlZmxh Z3M7CiAgdTE2X3QgbHBvcnQsIHJwb3J0OwogIHUxNl90IHJpcGFkZHJbMl07CiAgdThfdCByY3Zf bnh0WzRdOwoKICB1OF90IHNuZF9ueHRbNF07CgogIHU4X3QgYWNrX254dFs0XTsKCgoKCiAgdThf dCBtc3M7CgogIHU4X3QgdGltZXI7CiAgdThfdCBucnR4OwoKCiAgdThfdCBhcHBzdGF0ZVswXTsK fTsKCgoKCgpzdHJ1Y3QgdWlwX3N0YXRzIHsKICBzdHJ1Y3QgewogICAgdTE2X3QgZHJvcDsKICAg IHUxNl90IHJlY3Y7CiAgICB1MTZfdCBzZW50OwogICAgdTE2X3QgdmhsZXJyOwoKICAgIHUxNl90 IGhibGVuZXJyOwoKICAgIHUxNl90IGxibGVuZXJyOwoKICAgIHUxNl90IGZyYWdlcnI7CgogICAg dTE2X3QgY2hrZXJyOwogICAgdTE2X3QgcHJvdG9lcnI7CgogIH0gaXA7CiAgc3RydWN0IHsKICAg IHUxNl90IGRyb3A7CiAgICB1MTZfdCByZWN2OwogICAgdTE2X3Qgc2VudDsKICAgIHUxNl90IHR5 cGVlcnI7CiAgfSBpY21wOwogIHN0cnVjdCB7CiAgICB1MTZfdCBkcm9wOwogICAgdTE2X3QgcmVj djsKICAgIHUxNl90IHNlbnQ7CiAgICB1MTZfdCBjaGtlcnI7CiAgICB1MTZfdCBhY2tlcnI7CiAg ICB1MTZfdCByc3Q7CiAgICB1MTZfdCByZXhtaXQ7CiAgICB1MTZfdCBzeW5kcm9wOwoKICAgIHUx Nl90IHN5bnJzdDsKCiAgfSB0Y3A7Cn07CgpleHRlcm4gc3RydWN0IHVpcF9zdGF0cyB1aXBfc3Rh dDsKIyAzOTYgIi4uL3VpcC91aXAuaCIKZXh0ZXJuIHZvbGF0aWxlIHU4X3QgdWlwX2ZsYWdzOwoj IDQzOSAiLi4vdWlwL3VpcC5oIgp2b2lkIHVpcF9wcm9jZXNzKHU4X3QgZmxhZyk7CiMgNDcwICIu Li91aXAvdWlwLmgiCnR5cGVkZWYgc3RydWN0IHsKCiAgdThfdCB2aGwsCiAgICB0b3MsCiAgICBs ZW5bMl0sCiAgICBpcGlkWzJdLAogICAgaXBvZmZzZXRbMl0sCiAgICB0dGwsCiAgICBwcm90bzsK ICB1MTZfdCBpcGNoa3N1bTsKICB1MTZfdCBzcmNpcGFkZHJbMl0sCiAgICBkZXN0aXBhZGRyWzJd OwoKICB1MTZfdCBzcmNwb3J0LAogICAgZGVzdHBvcnQ7CiAgdThfdCBzZXFub1s0XSwKICAgIGFj a25vWzRdLAogICAgdGNwb2Zmc2V0LAogICAgZmxhZ3MsCiAgICB3bmRbMl07CiAgdTE2X3QgdGNw Y2hrc3VtLAogICAgdXJncDsKICB1OF90IG9wdGRhdGFbNF07Cn0gX19hdHRyaWJ1dGVfXygocGFj a2VkKSkgdWlwX3RjcGlwX2hkcjsKIyAxNCAicHBwLmgiIDIKIyAzNCAicHBwLmgiCnR5cGVkZWYg c3RydWN0IHsKICAgIHVuc2lnbmVkIHNob3J0IEZyYW1pbmc7CiAgICB1bnNpZ25lZCBzaG9ydCBQ cm90b2NvbDsKICAgIHVuc2lnbmVkIGNoYXIgUmVxdWVzdDsKICAgIHVuc2lnbmVkIGNoYXIgSWQ7 CiAgICB1bnNpZ25lZCBjaGFyIExlbmd0aEhpZ2g7CiAgICB1bnNpZ25lZCBjaGFyIExlbmd0aDsK ICAgIHVuc2lnbmVkIGNoYXIgRmlyc3RPcHRpb247CiAgICB1bnNpZ25lZCBjaGFyIEZpcnN0T3B0 aW9uTGVuZ3RoOwogICAgdW5zaWduZWQgY2hhciBQYXJhbTsKICAgIHVuc2lnbmVkIGNoYXIgRGF0 YTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBQUFBGcmFtZTsKCgoKCgoKdm9pZCBQUFBJbml0 ICh2b2lkKTsKdW5zaWduZWQgY2hhciAqUFBQR2V0SW5wdXRCdWZmZXIgKHZvaWQpOwp1bnNpZ25l ZCBjaGFyICpQUFBHZXRPdXRwdXRCdWZmZXIgKHZvaWQpOwp2b2lkIFByb2NQUFBSZWNlaXZlIChy ZWdpc3RlciB1bnNpZ25lZCBjaGFyIGMpOwp2b2lkIFByb2NQUFBTZW5kICh1bnNpZ25lZCBjaGFy ICpCdWZmZXIsIHVuc2lnbmVkIGNoYXIgbGVuKTsKdW5zaWduZWQgc2hvcnQgUFBQR2V0Q2hlY2tz dW0gKHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgKmNwLCByZWdpc3RlciBpbnQgbGVuKTsKdm9pZCBT ZW5kUEFQUGFja2V0ICh1bnNpZ25lZCBjaGFyIEFjdGlvbiwgdW5zaWduZWQgY2hhciBJRCwgY29u c3QgY2hhciogdXNlciwgY29uc3QgY2hhciogcGFzc3dvcmQpOwp2b2lkIFBQUEVudHJ5ICh2b2lk KTsKdm9pZCBQUFBUZXJtaW5hdGUgKHZvaWQpOwp2b2lkIFBQUFNlbmRWb2lkTENQICh2b2lkKTsK CmV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIFBQUFN0YXR1czsKZXh0ZXJuIHVuc2lnbmVk IGNoYXIgKkluQnVmZmVyOwpleHRlcm4gdW5zaWduZWQgY2hhciBPdXRCdWZmZXJbKDE4MCArIDUp ICsgMV07CiMgMTcgInBwcC5jIiAyCiMgMSAiaXAuaCIgMQojIDE4ICJwcHAuYyIgMgojIDEgInVk cC5oIiAxCiMgMTIgInVkcC5oIgp0eXBlZGVmIHN0cnVjdCB7CiAgICB1bnNpZ25lZCBjaGFyIFNv dXJjZUlQIFs0XTsKICAgIHVuc2lnbmVkIGNoYXIgRGVzdGluYXRpb25JUCBbNF07CiAgICB1bnNp Z25lZCBzaG9ydCBTb3VyY2VQb3J0OwogICAgdW5zaWduZWQgc2hvcnQgRGVzdFBvcnQ7CiAgICB1 bnNpZ25lZCBjaGFyIExlbmd0aFVwcGVyOwogICAgdW5zaWduZWQgY2hhciBMZW5ndGg7CiAgICB1 bnNpZ25lZCBzaG9ydCBDaGVja3N1bTsKICAgIHVuc2lnbmVkIGNoYXIgUGF5bG9hZFs1NF07Cn0g X19hdHRyaWJ1dGVfXygocGFja2VkKSkgVURQRGF0YWdyYW07CmV4dGVybiBVRFBEYXRhZ3JhbSAq dWRwX291dDsKdHlwZWRlZiB2b2lkICgqIFVEUENBTExCQUNLKSh1bnNpZ25lZCBjaGFyICpkYXRh LCB1bnNpZ25lZCBjaGFyIHNpemUsIHVuc2lnbmVkIGxvbmcgUmVtb3RlSVAsIHVuc2lnbmVkIHNo b3J0IFBvcnQpOwp2b2lkIFVEUFNldENBTExCQUNLIChVRFBDQUxMQkFDSyBQcm9jKTsKdm9pZCBV RFBfSGFuZGxlciAoVURQRGF0YWdyYW0gKnVkcCk7CnVuc2lnbmVkIHNob3J0IFVEUF9DaGVja3N1 bSAodW5zaWduZWQgY2hhciogdWRwKTsKdm9pZCBVRFBCaW5kICh1bnNpZ25lZCBzaG9ydCBQb3J0 KTsKdm9pZCBVRFBTZW5kRGF0YSAodW5zaWduZWQgY2hhciBJcFtdLCB1bnNpZ25lZCBzaG9ydCBQ b3J0LCB1bnNpZ25lZCBjaGFyKiBQYXlsb2FkLCB1bnNpZ25lZCBjaGFyIHNpemUpOwojIDE5ICJw cHAuYyIgMgojIDEgImljbXAuaCIgMQojIDEzICJpY21wLmgiCnR5cGVkZWYgc3RydWN0IHsKICAg ICAgICB1bnNpZ25lZCBjaGFyIFR5cGU7CiAgICAgICAgdW5zaWduZWQgY2hhciBDb2RlOwogICAg ICAgIHVuc2lnbmVkIHNob3J0IENoZWNrc3VtOwogICAgICAgIHVuc2lnbmVkIHNob3J0IElkZW50 aWZpZXI7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgU2VxTnVtYmVyOwp9IF9fYXR0cmlidXRlKChw YWNrZWQpKSBJQ01QRGF0YWdyYW07CgoKCnZvaWQgSWNtcEhhbmRsZXIgKElQRGF0YWdyYW0gKmlw KTsKdm9pZCBJY21wUGluZyAodW5zaWduZWQgY2hhciBJcFtdKTsKIyAyMCAicHBwLmMiIDIKCiMg MSAiY29tbW9uLmgiIDEKCgoKCgoKdm9pZCBNb3ZlIChjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMs IHVuc2lnbmVkIGNoYXIgKmRlc3QsIGludCBudW1CWVRFcyk7CiMgMjIgInBwcC5jIiAyCgojIDEg Im1haW4uaCIgMQoKCgoKCnZvaWQgTW90UFBQSW5pdCh2b2lkKTsKdm9pZCBMaW5rVGFzayAodm9p ZCk7CnZvaWQgZG9fdWlwX3BlcmlvZGljKHU4X3QgZm9yY2UpOwp2b2lkIHBwcF9zZW5kKHZvaWQp OwojIDI0ICJwcHAuYyIgMgojIDEgIi4uL21haW4vcHJpbnRmLmgiIDEKCgoKaW50IGNjX3ByaW50 Zihjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7CmludCBjY19zcHJpbnRmKGNoYXIgKm91dCwgY29u c3QgY2hhciAqZm9ybWF0LCAuLi4pOwojIDI1ICJwcHAuYyIgMgojIDEgIi4uL21haW4vZGJnX2Fz c2VydC5oIiAxCgoKCnZvaWQgZGJnX2Fzc2VydChpbnQgY29uZGl0aW9uKTsKIyAyNiAicHBwLmMi IDIKCmNvbnN0IGNoYXIgKiBVc2VyID0gIk15TmFtZSI7CmNvbnN0IGNoYXIgKiBQYXNzd29yZCA9 ICJNeVBhc3N3b3JkIjsKCnN0YXRpYyB2b2lkIEhhbmRsZUxDUE9wdGlvbnMgKHZvaWQpOwpzdGF0 aWMgdm9pZCBIYW5kbGVJUENQT3B0aW9ucyAodm9pZCk7CnN0YXRpYyB1bnNpZ25lZCBzaG9ydCBQ UFBmY3MxNiAodW5zaWduZWQgc2hvcnQgZmNzLCB1bnNpZ25lZCBjaGFyICpjcCwgaW50IGxlbik7 CnN0YXRpYyB2b2lkIFJlamVjdFByb3RvY29sICh1bnNpZ25lZCBjaGFyICpJbkJ1ZmZlcik7Cgpz dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBQUFBEYXRhIFtdID0gewogICAgMHhmZiwweDAzLDB4 YzAsMHgyMSwweDAyLDB4MDEsMHgwMCwweDA0LDB4MDAsMHgwMAp9OwpzdGF0aWMgY29uc3QgdW5z aWduZWQgY2hhciBMQ1BUZXJtaW5hdGVbXSA9IHsKICAgIDB4ZmYsMHgwMywweGMwLDB4MjEsMHgw NSwweDA0LDB4MDAsMHgwNCwweDgwLDB4ZmUKfTsKc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0 IGZjc3RhYlsyNTZdID0gewogICAgMHgwMDAwLCAweDExODksIDB4MjMxMiwgMHgzMjliLCAweDQ2 MjQsIDB4NTdhZCwgMHg2NTM2LCAweDc0YmYsCiAgICAweDhjNDgsIDB4OWRjMSwgMHhhZjVhLCAw eGJlZDMsIDB4Y2E2YywgMHhkYmU1LCAweGU5N2UsIDB4ZjhmNywKICAgIDB4MTA4MSwgMHgwMTA4 LCAweDMzOTMsIDB4MjIxYSwgMHg1NmE1LCAweDQ3MmMsIDB4NzViNywgMHg2NDNlLAogICAgMHg5 Y2M5LCAweDhkNDAsIDB4YmZkYiwgMHhhZTUyLCAweGRhZWQsIDB4Y2I2NCwgMHhmOWZmLCAweGU4 NzYsCiAgICAweDIxMDIsIDB4MzA4YiwgMHgwMjEwLCAweDEzOTksIDB4NjcyNiwgMHg3NmFmLCAw eDQ0MzQsIDB4NTViZCwKICAgIDB4YWQ0YSwgMHhiY2MzLCAweDhlNTgsIDB4OWZkMSwgMHhlYjZl LCAweGZhZTcsIDB4Yzg3YywgMHhkOWY1LAogICAgMHgzMTgzLCAweDIwMGEsIDB4MTI5MSwgMHgw MzE4LCAweDc3YTcsIDB4NjYyZSwgMHg1NGI1LCAweDQ1M2MsCiAgICAweGJkY2IsIDB4YWM0Miwg MHg5ZWQ5LCAweDhmNTAsIDB4ZmJlZiwgMHhlYTY2LCAweGQ4ZmQsIDB4Yzk3NCwKICAgIDB4NDIw NCwgMHg1MzhkLCAweDYxMTYsIDB4NzA5ZiwgMHgwNDIwLCAweDE1YTksIDB4MjczMiwgMHgzNmJi LAogICAgMHhjZTRjLCAweGRmYzUsIDB4ZWQ1ZSwgMHhmY2Q3LCAweDg4NjgsIDB4OTllMSwgMHhh YjdhLCAweGJhZjMsCiAgICAweDUyODUsIDB4NDMwYywgMHg3MTk3LCAweDYwMWUsIDB4MTRhMSwg MHgwNTI4LCAweDM3YjMsIDB4MjYzYSwKICAgIDB4ZGVjZCwgMHhjZjQ0LCAweGZkZGYsIDB4ZWM1 NiwgMHg5OGU5LCAweDg5NjAsIDB4YmJmYiwgMHhhYTcyLAogICAgMHg2MzA2LCAweDcyOGYsIDB4 NDAxNCwgMHg1MTlkLCAweDI1MjIsIDB4MzRhYiwgMHgwNjMwLCAweDE3YjksCiAgICAweGVmNGUs IDB4ZmVjNywgMHhjYzVjLCAweGRkZDUsIDB4YTk2YSwgMHhiOGUzLCAweDhhNzgsIDB4OWJmMSwK ICAgIDB4NzM4NywgMHg2MjBlLCAweDUwOTUsIDB4NDExYywgMHgzNWEzLCAweDI0MmEsIDB4MTZi MSwgMHgwNzM4LAogICAgMHhmZmNmLCAweGVlNDYsIDB4ZGNkZCwgMHhjZDU0LCAweGI5ZWIsIDB4 YTg2MiwgMHg5YWY5LCAweDhiNzAsCiAgICAweDg0MDgsIDB4OTU4MSwgMHhhNzFhLCAweGI2OTMs IDB4YzIyYywgMHhkM2E1LCAweGUxM2UsIDB4ZjBiNywKICAgIDB4MDg0MCwgMHgxOWM5LCAweDJi NTIsIDB4M2FkYiwgMHg0ZTY0LCAweDVmZWQsIDB4NmQ3NiwgMHg3Y2ZmLAogICAgMHg5NDg5LCAw eDg1MDAsIDB4Yjc5YiwgMHhhNjEyLCAweGQyYWQsIDB4YzMyNCwgMHhmMWJmLCAweGUwMzYsCiAg ICAweDE4YzEsIDB4MDk0OCwgMHgzYmQzLCAweDJhNWEsIDB4NWVlNSwgMHg0ZjZjLCAweDdkZjcs IDB4NmM3ZSwKICAgIDB4YTUwYSwgMHhiNDgzLCAweDg2MTgsIDB4OTc5MSwgMHhlMzJlLCAweGYy YTcsIDB4YzAzYywgMHhkMWI1LAogICAgMHgyOTQyLCAweDM4Y2IsIDB4MGE1MCwgMHgxYmQ5LCAw eDZmNjYsIDB4N2VlZiwgMHg0Yzc0LCAweDVkZmQsCiAgICAweGI1OGIsIDB4YTQwMiwgMHg5Njk5 LCAweDg3MTAsIDB4ZjNhZiwgMHhlMjI2LCAweGQwYmQsIDB4YzEzNCwKICAgIDB4MzljMywgMHgy ODRhLCAweDFhZDEsIDB4MGI1OCwgMHg3ZmU3LCAweDZlNmUsIDB4NWNmNSwgMHg0ZDdjLAogICAg MHhjNjBjLCAweGQ3ODUsIDB4ZTUxZSwgMHhmNDk3LCAweDgwMjgsIDB4OTFhMSwgMHhhMzNhLCAw eGIyYjMsCiAgICAweDRhNDQsIDB4NWJjZCwgMHg2OTU2LCAweDc4ZGYsIDB4MGM2MCwgMHgxZGU5 LCAweDJmNzIsIDB4M2VmYiwKICAgIDB4ZDY4ZCwgMHhjNzA0LCAweGY1OWYsIDB4ZTQxNiwgMHg5 MGE5LCAweDgxMjAsIDB4YjNiYiwgMHhhMjMyLAogICAgMHg1YWM1LCAweDRiNGMsIDB4NzlkNywg MHg2ODVlLCAweDFjZTEsIDB4MGQ2OCwgMHgzZmYzLCAweDJlN2EsCiAgICAweGU3MGUsIDB4ZjY4 NywgMHhjNDFjLCAweGQ1OTUsIDB4YTEyYSwgMHhiMGEzLCAweDgyMzgsIDB4OTNiMSwKICAgIDB4 NmI0NiwgMHg3YWNmLCAweDQ4NTQsIDB4NTlkZCwgMHgyZDYyLCAweDNjZWIsIDB4MGU3MCwgMHgx ZmY5LAogICAgMHhmNzhmLCAweGU2MDYsIDB4ZDQ5ZCwgMHhjNTE0LCAweGIxYWIsIDB4YTAyMiwg MHg5MmI5LCAweDgzMzAsCiAgICAweDdiYzcsIDB4NmE0ZSwgMHg1OGQ1LCAweDQ5NWMsIDB4M2Rl MywgMHgyYzZhLCAweDFlZjEsIDB4MGY3OAp9OwoKdm9sYXRpbGUgdW5zaWduZWQgY2hhciBQUFBT dGF0dXMgPSAwOwoKCgp1bnNpZ25lZCBjaGFyICpJbkJ1ZmZlcjsKdW5zaWduZWQgY2hhciBPdXRC dWZmZXJbKDE4MCArIDUpICsgMV07CgoKCgoKCgp2b2lkIFBQUEluaXQgKHZvaWQpIHsKICAgIFBQ UFN0YXR1cyB8PSAweDA0Owp9CgoKCgoKCnVuc2lnbmVkIGNoYXIgKlBQUEdldElucHV0QnVmZmVy ICh2b2lkKSB7CiAgICByZXR1cm4gJkluQnVmZmVyWzBdOwp9CgoKCgoKCnVuc2lnbmVkIGNoYXIg KlBQUEdldE91dHB1dEJ1ZmZlciAodm9pZCkgewogICAgcmV0dXJuICZPdXRCdWZmZXJbMF07Cn0K IyAxMTggInBwcC5jIgpzdGF0aWMgdW5zaWduZWQgc2hvcnQgUFBQZmNzMTYgKHVuc2lnbmVkIHNo b3J0IGZjcywgdW5zaWduZWQgY2hhciAqY3AsIGludCBsZW4pIHsKICAgICAgICB3aGlsZSAobGVu LS0pCiAgICAgICAgICAgIGZjcyA9IChmY3MgPj4gOCkgXiBmY3N0YWJbKGZjcyBeICpjcCsrKSAm IDB4ZmZdOwogICAgICAgIHJldHVybiAoZmNzKTsKfQoKCgoKCgoKdW5zaWduZWQgc2hvcnQgUFBQ R2V0Q2hlY2tzdW0gKHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgKmNwLCByZWdpc3RlciBpbnQgbGVu KSB7CiAgICByZXR1cm4gflBQUGZjczE2KCAweGZmZmYsIGNwLCBsZW4gKTsKfQojIDE0MSAicHBw LmMiCnZvaWQgUHJvY1BQUFJlY2VpdmUgKHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgYykgewogICAg c3RhdGljIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgRnJhbWVTaXplID0gMDsKICAgIHN0YXRpYyB1 bnNpZ25lZCBjaGFyIEJ1ZmZlclsyXVsoMTgwICsgNSkgKyAxXTsKICAgIHN0YXRpYyB1bnNpZ25l ZCBjaGFyIFdvcmtpbmdCdWZmZXIgPSAwOwoKICAgIHVuc2lnbmVkIGNoYXIgKlBQUF9QYWNrZXQg PSBCdWZmZXJbV29ya2luZ0J1ZmZlcj8gMTogMF07CgogICAgUFBQU3RhdHVzIHw9IDB4MTA7Cgog ICAgaWYgKFBQUFN0YXR1cyAmIDB4MDQpIHsKICAgICAgICBpZiAoYyAhPSAweDdFKSB7CiAgICAg ICAgICAgIGNjX3ByaW50ZigicmVzeW5jXG4iKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAg IH0KICAgICAgICBQUFBTdGF0dXMgJj0gfjB4MDQ7CiAgICAgICAgRnJhbWVTaXplID0gMDsKICAg IH0KICAgIGlmIChQUFBTdGF0dXMgJiAweDAxKSB7CiAgICAgICAgUFBQX1BhY2tldCBbRnJhbWVT aXplKytdID0gMHgyMCBeIGM7CiAgICAgICAgUFBQU3RhdHVzICY9IH4weDAxOwogICAgfQogICAg ZWxzZSB7CiAgICAgICAgc3dpdGNoIChjKSB7CiAgICAgICAgICAgIGNhc2UgMHg3RDoKICAgICAg ICAgICAgUFBQU3RhdHVzIHw9IDB4MDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBj YXNlIDB4N0U6CgoKICAgICAgICAgICAgaWYgKEZyYW1lU2l6ZSA+IDApIHsKICAgICAgICAgICAg ICAgIFBQUF9QYWNrZXQgW0ZyYW1lU2l6ZV0gPSAwOwoKICAgICAgICAgICAgICAgIGlmIChQUFBT dGF0dXMgJiAweDA4KSB7CiAgICAgICAgICAgICAgICAgICAgY2NfcHJpbnRmKCJEcm9wcGluZyBm cmFtZSEhIVxuIik7CiAgICAgICAgICAgICAgICAgICAgUFBQU3RhdHVzIHw9IDB4MDQ7CiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBQ UFBTdGF0dXMgfD0gMHgwODsKICAgICAgICAgICAgICAgICAgICBXb3JraW5nQnVmZmVyID0gV29y a2luZ0J1ZmZlcj8gMDogMTsKICAgICAgICAgICAgICAgICAgICBGcmFtZVNpemUgPSAwOwogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICBkZWZhdWx0OgogICAgICAgICAgICBQUFBfUGFja2V0IFtGcmFtZVNpemUrK10gPSBjOwoKICAg ICAgICAgICAgaWYgKEZyYW1lU2l6ZSA+ICgoMTgwICsgNSkgLSA2KSkgewogICAgICAgICAgICAg ICAgRnJhbWVTaXplID0gMDsKICAgICAgICAgICAgICAgIFBQUFN0YXR1cyB8PSAweDA0OwogICAg ICAgICAgICAgICAgY2NfcHJpbnRmKCJQYWNrZXQgYmlnZ2VyIHRoYW4gYnVmZmVyIVxuIik7CiAg ICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIEluQnVm ZmVyID0gQnVmZmVyW1dvcmtpbmdCdWZmZXI/IDA6IDFdOwp9CgoKCgoKCgp2b2lkIFByb2NQUFBT ZW5kICh1bnNpZ25lZCBjaGFyICpCdWZmZXIsIHVuc2lnbmVkIGNoYXIgbGVuKSB7CiAgICB1bnNp Z25lZCBzaG9ydCBDaGVja3N1bSA9IDA7CiAgICBDaGVja3N1bSA9IFBQUEdldENoZWNrc3VtIChC dWZmZXIsIEJ1ZmZlcls3XSArIDQpOwogICAgQnVmZmVyIFtCdWZmZXJbN10rNF0gPSBDaGVja3N1 bSAmIDB4RkY7CiAgICBCdWZmZXIgW0J1ZmZlcls3XSs1XSA9IChDaGVja3N1bSA+PiA4KSAmIDB4 RkY7CiAgICBXcml0ZUNvbW0gKDB4N0UpOwogICAgd2hpbGUgKGxlbi0tKSB7CiAgICAgICAgaWYg KChzaWduZWQgY2hhcikqQnVmZmVyIDwgKHNpZ25lZCBjaGFyKTB4MjApIHsKICAgICAgICAgICAg V3JpdGVDb21tICgweDdEKTsKICAgICAgICAgICAgV3JpdGVDb21tICgqQnVmZmVyIF4gMHgyMCk7 CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3dpdGNoICgqQnVmZmVyKSB7CiAgICAgICAg ICAgIGNhc2UgMHg3RToKICAgICAgICAgICAgICAgIFdyaXRlQ29tbSAoMHg3RCk7CiAgICAgICAg ICAgICAgICBXcml0ZUNvbW0gKDB4NUUpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgIGNhc2UgMHg3RDoKICAgICAgICAgICAgICAgIFdyaXRlQ29tbSAoMHg3RCk7CiAgICAgICAg ICAgICAgICBXcml0ZUNvbW0gKDB4NUQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBXcml0ZUNvbW0gKCpCdWZmZXIpOwogICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgQnVmZmVyKys7 CiAgICB9CiAgICBXcml0ZUNvbW0gKDB4N0UpOwp9CgoKCgoKCnN0YXRpYyB2b2lkIEhhbmRsZUxD UE9wdGlvbnMgKHZvaWQpIHsKICAgIHVuc2lnbmVkIGNoYXIgKmRlc3QgPSBPdXRCdWZmZXI7CiAg ICB1bnNpZ25lZCBjaGFyICpwdHIgPSAodW5zaWduZWQgY2hhciAqKSZJbkJ1ZmZlcls4XTsKCiAg ICBzdGF0aWMgY2hhciBVc2VQQVAgPSAwOwoKICAgIHN3aXRjaCAoSW5CdWZmZXIgWzRdICkKICAg IHsKICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIE1vdmUgKEluQnVmZmVyLCBPdXRCdWZmZXIs IEluQnVmZmVyWzddKzYpOwogICAgICAgICAgICBPdXRCdWZmZXIgWzRdID0gNjsKICAgICAgICAg ICAgUHJvY1BQUFNlbmQgKCh1bnNpZ25lZCBjaGFyICopT3V0QnVmZmVyLCBPdXRCdWZmZXJbN10g KyA2KTsKICAgICAgICAgICAgUFBQU3RhdHVzICY9IH4weDIwOwogICAgICAgICAgICBicmVhazsK ICAgICAgICBjYXNlIDE6CgoKCiAgICAgICAgICAgIGlmICgoSW5CdWZmZXIgWzhdID09IDB4MDIp ICYmIChJbkJ1ZmZlciBbN10gPD0gMHgwQSkpCiAgICAgICAgewogICAgICAgICAgICBpZiAoKElu QnVmZmVyIFsxMF0gPT0gMHhGRikgJiYKICAgICAgICAgICAgICAgIChJbkJ1ZmZlciBbMTFdID09 IDB4RkYpICYmCiAgICAgICAgICAgICAgICAoSW5CdWZmZXIgWzEyXSA9PSAweEZGKSAmJgogICAg ICAgICAgICAgICAgKEluQnVmZmVyIFsxM10gPT0gMHhGRikpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIEluQnVmZmVyIFs0XSA9IDI7CiAgICAgICAgICAgICAgICBQcm9jUFBQU2VuZCAo SW5CdWZmZXIsIEluQnVmZmVyIFs3XSArIDYpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICBlbHNlIGlmICgoSW5CdWZmZXIgWzhdICE9 IDB4MDMpICYmIChJbkJ1ZmZlciBbN10gPiA5KSkKICAgICAgICB7CgoKCgogICAgICAgICAgICB1 bnNpZ25lZCBjaGFyIE9wdGlvbnNTaXplOwogICAgICAgICAgICB1bnNpZ25lZCBjaGFyIE9wdGlv bjsKICAgICAgICAgICAgdW5zaWduZWQgY2hhciBTaXplOwogICAgICAgICAgICBNb3ZlIChJbkJ1 ZmZlciwgT3V0QnVmZmVyLCA4KTsKICAgICAgICAgICAgT3V0QnVmZmVyIFs0XSA9IDQ7CiAgICAg ICAgICAgIGRlc3QgKz0gODsKICAgICAgICAgICAgT3B0aW9uc1NpemUgPSBJbkJ1ZmZlcls3XSAt IDQ7CiAgICAgICAgICAgIHdoaWxlIChPcHRpb25zU2l6ZSA+IDApCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE9wdGlvbiA9ICpwdHI7CiAgICAgICAgICAgICAgICBTaXplID0gKihwdHIg KyAxKTsKICAgICAgICAgICAgICAgIE9wdGlvbnNTaXplIC09IFNpemU7CgogICAgICAgICAgICAg ICAgaWYgKE9wdGlvbiA9PSAzKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAg ICBwdHIgKz0gU2l6ZTsKCgogICAgICAgICAgICAgICAgICAgIE91dEJ1ZmZlciBbN10gPSBPdXRC dWZmZXIgWzddIC0gU2l6ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UK ICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFNpemUtLSApCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAqZGVzdCsrID0gKnB0 cisrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQogICAgICAgIH0KICAgICAgICBlbHNlIGlmICgoSW5CdWZmZXIgWzhdID09IDB4MDMpICYmIChJ bkJ1ZmZlciBbMTBdID09IDB4QzIpKQogICAgICAgIHsKCgoKCgogICAgICAgICAgICBJbkJ1ZmZl ciBbNF0gPSAzOwogICAgICAgICAgICBJbkJ1ZmZlciBbMTBdID0gMHhDMDsKCiAgICAgICAgICAg IFByb2NQUFBTZW5kIChJbkJ1ZmZlciwgSW5CdWZmZXJbN10rNik7CiAgICAgICAgICAgIHJldHVy bjsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoKChJbkJ1ZmZlciBbOF0gPT0gMHgwMykgJiYg KEluQnVmZmVyIFsxMF0gPT0gMHhDMCkpCiAgICAgICAgICAgICAgICAgfHwgKEluQnVmZmVyWzdd IDw9IDB4MDQpCiAgICAgICAgICAgICkKICAgICAgICB7CgoKCgoKCiAgICAgICAgICAgIFVzZVBB UCA9IChJbkJ1ZmZlcls4XSA9PSAweDAzKTsKCgogICAgICAgICAgICBNb3ZlIChJbkJ1ZmZlciwg T3V0QnVmZmVyLCBJbkJ1ZmZlcls3XSs2KTsKICAgICAgICAgICAgT3V0QnVmZmVyWzRdID0gMjsK ICAgICAgICAgICAgUHJvY1BQUFNlbmQgKCh1bnNpZ25lZCBjaGFyICopT3V0QnVmZmVyLCBPdXRC dWZmZXJbN10gKyA2KTsKICAgICAgICAgICAgT3V0QnVmZmVyWzRdID0gMTsKICAgICAgICAgICAg T3V0QnVmZmVyWzVdID0gT3V0QnVmZmVyIFs1XSArIDE7CiAgICAgICAgICAgIE91dEJ1ZmZlcls3 XSA9IDB4MEE7CiAgICAgICAgICAgIE91dEJ1ZmZlcls4XSA9IDB4MDI7CiAgICAgICAgICAgIE91 dEJ1ZmZlcls5XSA9IDB4MDY7CiAgICAgICAgICAgIE91dEJ1ZmZlclsxMF0gPSAweEZGOwogICAg ICAgICAgICBPdXRCdWZmZXJbMTFdID0gMHhGRjsKICAgICAgICAgICAgT3V0QnVmZmVyWzEyXSA9 IDB4RkY7CiAgICAgICAgICAgIE91dEJ1ZmZlclsxM10gPSAweEZGOwogICAgICAgIH0KICAgICAg ICBQcm9jUFBQU2VuZCAoKHVuc2lnbmVkIGNoYXIgKilPdXRCdWZmZXIsIE91dEJ1ZmZlcls3XSAr IDYpOwogICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDI6CgoKCiAgICAgICAgaWYgKChJbkJ1 ZmZlciBbOF0gPT0gMHgwMikgJiYgVXNlUEFQKQogICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgU2VuZFBBUFBhY2tldCAoMSwgSW5CdWZmZXJbNV0gKyAxLCBVc2VyLCBQYXNzd29yZCk7 CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDM6CiAgICAgICAgYnJlYWs7 CgogICAgICAgIGNhc2UgNDoKICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA2OgogICAgICAg IFBQUFN0YXR1cyAmPSB+MHgyMDsKICAgICAgICBicmVhazsKICAgIGNhc2UgOToKICAgICAgICBJ bkJ1ZmZlciBbNF0gPSAxMDsKICAgICAgICBQcm9jUFBQU2VuZCAoSW5CdWZmZXIsIEluQnVmZmVy IFs3XSArIDYpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICBjY19wcmludGYo Iklnbm9yaW5nIExDUCBjb2RlIDB4JTAyWFxuIiwgSW5CdWZmZXIgWzRdKTsKICAgICAgICBicmVh azsKICAgIH0KICAgIHJldHVybjsKfQoKCgoKCgoKc3RhdGljIHZvaWQgSGFuZGxlSVBDUE9wdGlv bnMgKHZvaWQpIHsKICAgIHVuc2lnbmVkIGNoYXIgKmRlc3QgPSAodW5zaWduZWQgY2hhciAqKSZP dXRCdWZmZXJbOF07CiAgICB1bnNpZ25lZCBjaGFyICpwdHIgPSAodW5zaWduZWQgY2hhciAqKSZJ bkJ1ZmZlcls4XTsKICAgIHVuc2lnbmVkIGNoYXIgRnJhbWVTaXplOwogICAgdW5zaWduZWQgY2hh ciBPcHRpb247CiAgICB1bnNpZ25lZCBjaGFyIFNpemU7CiAgICBzd2l0Y2ggKEluQnVmZmVyIFs0 XSApIHsKICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIGlmICgoSW5CdWZmZXIgWzhdICE9IDB4 MDMpIHx8IChJbkJ1ZmZlciBbN10gPiAweDBBKSkgewogICAgICAgICAgICBPdXRCdWZmZXIgWzBd ID0gMHhGRjsKICAgICAgICAgICAgT3V0QnVmZmVyIFsxXSA9IDB4MDM7CiAgICAgICAgICAgIE91 dEJ1ZmZlciBbMl0gPSAweDgwOwogICAgICAgICAgICBPdXRCdWZmZXIgWzNdID0gMHgyMTsKICAg ICAgICAgICAgT3V0QnVmZmVyIFs0XSA9IDQ7CiAgICAgICAgICAgIE91dEJ1ZmZlciBbNV0gPSBJ bkJ1ZmZlciBbNV07CiAgICAgICAgICAgIEZyYW1lU2l6ZSA9IEluQnVmZmVyWzddIC0gNDsKCiAg ICAgICAgICAgIHdoaWxlIChGcmFtZVNpemUgPiAwKSB7CiAgICAgICAgICAgICAgICBPcHRpb24g PSAqcHRyOwogICAgICAgICAgICAgICAgU2l6ZSA9ICoocHRyICsgMSk7CiAgICAgICAgICAgICAg ICBGcmFtZVNpemUgLT0gU2l6ZTsKICAgICAgICAgICAgICAgIGlmIChPcHRpb24gPT0gMykgewog ICAgICAgICAgICAgICAgICAgIHB0ciArPSBTaXplOwoKICAgICAgICAgICAgICAgICAgICBPdXRC dWZmZXIgWzddID0gSW5CdWZmZXIgWzddIC0gU2l6ZTsKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHdoaWxlIChTaXplLS0gKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICpkZXN0KysgPSAqcHRyKys7CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg ICAgICAgZWxzZSB7CgogICAgICAgICAgICBNb3ZlIChJbkJ1ZmZlciwgT3V0QnVmZmVyLCBJbkJ1 ZmZlcls3XSs2KTsKICAgICAgICAgICAgT3V0QnVmZmVyIFs0XSA9IDI7CiAgICAgICAgICAgIFBy b2NQUFBTZW5kICgodW5zaWduZWQgY2hhciAqKU91dEJ1ZmZlciwgT3V0QnVmZmVyWzddICsgNik7 CgogICAgICAgICAgICBPdXRCdWZmZXIgWzRdID0gMTsKICAgICAgICAgICAgT3V0QnVmZmVyIFs1 XSA9IE91dEJ1ZmZlciBbNV0gKyAxOwogICAgICAgICAgICBPdXRCdWZmZXIgWzEwXSA9IDA7CiAg ICAgICAgICAgIE91dEJ1ZmZlciBbMTFdID0gMDsKICAgICAgICAgICAgT3V0QnVmZmVyIFsxMl0g PSAwOwogICAgICAgICAgICBPdXRCdWZmZXIgWzEzXSA9IDA7CiAgICAgICAgICAgIH0KICAgICAg ICAgICAgUHJvY1BQUFNlbmQgKCh1bnNpZ25lZCBjaGFyICopT3V0QnVmZmVyLCBPdXRCdWZmZXJb N10gKyA2KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyOgogICAgICAgICAgICBp ZiAoSW5CdWZmZXIgWzhdID09IDMpIHsKCiAgICAgICAgICAgIElQQWRkcmVzcyBbMF0gPSBJbkJ1 ZmZlciBbMTBdOwogICAgICAgICAgICBJUEFkZHJlc3MgWzFdID0gSW5CdWZmZXIgWzExXTsKICAg ICAgICAgICAgSVBBZGRyZXNzIFsyXSA9IEluQnVmZmVyIFsxMl07CiAgICAgICAgICAgIElQQWRk cmVzcyBbM10gPSBJbkJ1ZmZlciBbMTNdOwoKICAgICAgICAgICAgUFBQU3RhdHVzIHw9IDB4MjA7 CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAzOgogICAgICAg ICAgICBpZiAoKEluQnVmZmVyIFs4XSA9PSAweDAzKSAmJiAoSW5CdWZmZXIgWzddIDw9IDB4MEEp KSB7CgogICAgICAgICAgICBNb3ZlIChJbkJ1ZmZlciwgT3V0QnVmZmVyLCBJbkJ1ZmZlcls3XSs2 KTsKICAgICAgICAgICAgT3V0QnVmZmVyIFs0XSA9IDB4MDE7CiAgICAgICAgICAgIFByb2NQUFBT ZW5kICgodW5zaWduZWQgY2hhciAqKU91dEJ1ZmZlciwgT3V0QnVmZmVyWzddICsgNik7CiAgICAg ICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBi cmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgY2NfcHJpbnRmKCJJZ25vcmluZyBMQ1AgY29kZSAw eCUwMlhcbiIsIEluQnVmZmVyIFs0XSk7CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KIyA0NzAgInBw cC5jIgp2b2lkIFNlbmRQQVBQYWNrZXQgKHVuc2lnbmVkIGNoYXIgQWN0aW9uLCB1bnNpZ25lZCBj aGFyIElELCBjb25zdCBjaGFyKiB1c2VyLCBjb25zdCBjaGFyKiBwYXNzd29yZCkgewogICAgT3V0 QnVmZmVyIFswXSA9IDB4RkY7CiAgICBPdXRCdWZmZXIgWzFdID0gMHgwMzsKICAgIE91dEJ1ZmZl ciBbMl0gPSAweEMwOwogICAgT3V0QnVmZmVyIFszXSA9IDB4MjM7CiAgICBPdXRCdWZmZXIgWzRd ID0gQWN0aW9uOwogICAgT3V0QnVmZmVyIFs1XSA9IEluQnVmZmVyIFs1XSArIDE7CiAgICBPdXRC dWZmZXIgWzZdID0gMDsKICAgIE91dEJ1ZmZlciBbN10gPSBzdHJsZW4gKHVzZXIpICsgc3RybGVu IChwYXNzd29yZCkgKyA2OwogICAgT3V0QnVmZmVyIFs4XSA9IHN0cmxlbiAodXNlcik7CgogICAg TW92ZSAodXNlciwgJk91dEJ1ZmZlciBbOV0sIHN0cmxlbiAodXNlcikpOwogICAgT3V0QnVmZmVy IFs5ICsgc3RybGVuICh1c2VyKV0gPSBzdHJsZW4gKHBhc3N3b3JkKTsKCiAgICBNb3ZlIChwYXNz d29yZCwgJk91dEJ1ZmZlciBbMTAgKyBzdHJsZW4gKHVzZXIpXSwgc3RybGVuIChwYXNzd29yZCkp OwogICAgUHJvY1BQUFNlbmQgKCh1bnNpZ25lZCBjaGFyICopT3V0QnVmZmVyLCBPdXRCdWZmZXJb N10gKyA2KTsKfQojIDQ5NSAicHBwLmMiCnN0YXRpYyB2b2lkIFJlamVjdFByb3RvY29sICh1bnNp Z25lZCBjaGFyICpJbkJ1ZmZlcikgewogICAgT3V0QnVmZmVyIFswXSA9IDB4RkY7CiAgICBPdXRC dWZmZXIgWzFdID0gMHgwMzsKICAgIE91dEJ1ZmZlciBbMl0gPSAweEMwOwogICAgT3V0QnVmZmVy IFszXSA9IDB4MjE7CiAgICBPdXRCdWZmZXIgWzRdID0gMHgwODsKICAgIE91dEJ1ZmZlciBbNV0g PSAyMDsKICAgIE91dEJ1ZmZlciBbNl0gPSAwOwogICAgT3V0QnVmZmVyIFs3XSA9IEluQnVmZmVy WzddICsgNjsKICAgIE1vdmUgKCZJbkJ1ZmZlclsyXSwgJk91dEJ1ZmZlcls4XSwgSW5CdWZmZXIg WzddICsgMik7CiAgICBQcm9jUFBQU2VuZCAoKHVuc2lnbmVkIGNoYXIgKilPdXRCdWZmZXIsIE91 dEJ1ZmZlcls3XSArIDYpOwp9CiMgNTE2ICJwcHAuYyIKdm9pZCBQUFBTZW5kVm9pZExDUCAodm9p ZCkgewogICAgTW92ZSAoUFBQRGF0YSwgT3V0QnVmZmVyLCBQUFBEYXRhWzddICsgNik7CiAgICBQ cm9jUFBQU2VuZCAoKHVuc2lnbmVkIGNoYXIgKilPdXRCdWZmZXIsIE91dEJ1ZmZlcls3XSArIDYp Owp9CgoKCgoKCnZvaWQgUFBQVGVybWluYXRlICh2b2lkKSB7CiAgICBNb3ZlICgodW5zaWduZWQg Y2hhciAqKUxDUFRlcm1pbmF0ZSwgT3V0QnVmZmVyLCAxMCk7CiAgICBQcm9jUFBQU2VuZCAoT3V0 QnVmZmVyLCAxMCk7Cn0KIyA1MzggInBwcC5jIgp2b2lkIFBQUEVudHJ5ICh2b2lkKSB7CiAgICBp ZiAoUFBQU3RhdHVzICYgMHgwOCkgewogICAgICAgIHN3aXRjaCAoKEluQnVmZmVyWzJdIDw8IDgp IHwgSW5CdWZmZXJbM10pIHsKICAgICAgICAgICAgY2FzZSAweEMwMjE6CiAgICAgICAgICAgIEhh bmRsZUxDUE9wdGlvbnMgKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDB4 QzAyMzoKICAgICAgICAgICAgaWYgKEluQnVmZmVyIFs0XSA9PSAweDAyKSB7CiAgICAgICAgICAg ICAgICA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2Ug MHg4MDIxOgogICAgICAgICAgICBIYW5kbGVJUENQT3B0aW9ucyAoKTsKICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgIGNhc2UgMHgwMDIxOgogICAgICAgICAgICBpZiAoIUlQQ29tcGFyZSAo KHVuc2lnbmVkIGNoYXIgKikmSW5CdWZmZXIgWzIwXSkpIHsKCgogICAgICAgICAgICB9CiAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHN3aXRjaCAoSW5CdWZmZXIgWzEzXSkgewogICAg ICAgICAgICAgICAgY2FzZSAweDExOgogICAgICAgICAgICAgICAgICAgIFVEUF9IYW5kbGVyICgo VURQRGF0YWdyYW0gKikmSW5CdWZmZXJbMTZdKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgICAgIGNhc2UgMHgwNjoKICAgICAgICAgICAgICAgIGNhc2UgMHgwMToKICAg ICAgICAgICAgICAgICAgICBpZih1aXBfbGVuID4gMCkgewoKICAgICAgICAgICAgICAgICAgICAg ICAgZG9fdWlwX3BlcmlvZGljKDEpOwogICAgICAgICAgICAgICAgICAgICAgICBkYmdfYXNzZXJ0 KHVpcF9sZW4gPT0gMCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IG1lbWNweSh1aXBfYnVmLCAmSW5CdWZmZXJbNF0sIHNpemVvZih1aXBfYnVmKSk7CiAgICAgICAg ICAgICAgICAgICAgdWlwX2xlbiA9IHVpcF9idWZbM107CiAgICAgICAgICAgICAgICAgICAgdWlw X3Byb2Nlc3MoMSk7CiAgICAgICAgICAgICAgICAgICAgaWYodWlwX2xlbiA+IDApCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBwcHBfc2VuZCgpOwogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgoKCgoKICAgICAgICAg ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBS ZWplY3RQcm90b2NvbCAoSW5CdWZmZXIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9Cgog ICAgICAgIFBQUFN0YXR1cyAmPSB+MHgwODsKICAgIH0KfQo=
reply other threads:[~2002-08-18 23:06 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20020818230207.27984.qmail@sources.redhat.com \ --to=rggammon@alumni.uwaterloo.ca \ --cc=gcc-gnats@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).