From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 912A2385782A for ; Thu, 16 Sep 2021 10:00:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 912A2385782A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 8F7392237B; Thu, 16 Sep 2021 10:00:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1631786402; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8XcJGBvcMehaDUbr6ukgNGrWIzZKUx+fgjxoiy2HeIs=; b=g5qhyzg2dlkEf2BSrH8FJLqRgo/bAGrI94ds+xNKE2Fwa77TINwHkInrgIp62lmmJiGPcQ hMEwB6ZVvQ/sr4vYvdR5kOfab+ltCbQFbimeCaEGEYP7K75qY8dx4EbFiZ88j4Qgh6VXNy i/e22GzKo8yb/f3cUgv5JkDju0Pv+NE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1631786402; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8XcJGBvcMehaDUbr6ukgNGrWIzZKUx+fgjxoiy2HeIs=; b=VzHgz0X51IMXWQB9xLTqjC/SrW+5YQaL5wMTV7jwYe4c2pgJtao4S37UUIXgN5Q3dqThb/ HgbP+k/eO1cL+QCg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 776F613A23; Thu, 16 Sep 2021 10:00:02 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id faaLGqIVQ2FSZgAAMHmgww (envelope-from ); Thu, 16 Sep 2021 10:00:02 +0000 Content-Type: multipart/mixed; boundary="------------ZFCqK3100XT89fASd92D009f" Message-ID: Date: Thu, 16 Sep 2021 12:00:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.1 Subject: [PATCH 1/N] Rename asm_out_file function arguments. Content-Language: en-US From: =?UTF-8?Q?Martin_Li=c5=a1ka?= To: GCC Patches References: <8aa1fb10-334d-aa62-13e4-2ebc24d4ea16@suse.cz> In-Reply-To: <8aa1fb10-334d-aa62-13e4-2ebc24d4ea16@suse.cz> X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_STOCKGEN, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Sep 2021 10:00:07 -0000 This is a multi-part message in MIME format. --------------ZFCqK3100XT89fASd92D009f Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit As preparation for a new global object that will encapsulate asm_out_file, we would need to live with a macro that will define asm_out_file as casm->out_file and thus the name can't be used in function arguments. I've built all cross compilers with the change and can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin --------------ZFCqK3100XT89fASd92D009f Content-Type: text/x-patch; charset=UTF-8; name="0001-Rename-asm_out_file-function-arguments.patch" Content-Disposition: attachment; filename="0001-Rename-asm_out_file-function-arguments.patch" Content-Transfer-Encoding: base64 RnJvbSA1OGM3YzdmNWVjZjQ1ZjJmMjI3ZjA3OTJjOWZkZDI0ZDRhN2I1OWE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBXZWQsIDE1IFNlcCAyMDIxIDE1OjQ5OjAyICswMjAwClN1YmplY3Q6IFtQQVRDSCAx LzNdIFJlbmFtZSBhc21fb3V0X2ZpbGUgZnVuY3Rpb24gYXJndW1lbnRzLgoKQXMgcHJlcGFy YXRpb24gZm9yIGEgbmV3IGdsb2JhbCBvYmplY3QgdGhhdCB3aWxsIGVuY2Fwc3VsYXRlCmFz bV9vdXRfZmlsZSwgd2Ugd291bGQgbmVlZCB0byBsaXZlIHdpdGggYSBtYWNybyB0aGF0IHdp bGwKZGVmaW5lIGFzbV9vdXRfZmlsZSBhcyBjYXNtLT5vdXRfZmlsZSBhbmQgdGh1cyB0aGUg bmFtZQpjYW4ndCBiZSB1c2VkIGluIGZ1bmN0aW9uIGFyZ3VtZW50cy4KCmdjYy9DaGFuZ2VM b2c6CgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fdW53aW5kX2VtaXRfc2VxdWVuY2UpOiBE byBub3QgZGVjbGFyZQoJYWxyZWFkeSBkZWNsYXJlZCBnbG9iYWwgdmFyaWFibGUuCgkoYXJt X3Vud2luZF9lbWl0X3NldCk6IFVzZSBvdXRfZmlsZSBhcyBmdW5jdGlvbiBhcmd1bWVudC4K CShhcm1fdW53aW5kX2VtaXQpOiBMaWtld2lzZS4KCSogY29uZmlnL2Rhcndpbi5jIChtYWNo b3BpY19vdXRwdXRfZGF0YV9zZWN0aW9uX2luZGlyZWN0aW9uKTogTGlrZXdpc2UuCgkobWFj aG9waWNfb3V0cHV0X3N0dWJfaW5kaXJlY3Rpb24pOiBMaWtld2lzZS4KCShtYWNob3BpY19v dXRwdXRfaW5kaXJlY3Rpb24pOiBMaWtld2lzZS4KCShtYWNob3BpY19maW5pc2gpOiBMaWtl d2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2FzbV9vdXRwdXRfZnVuY3Rpb25f bGFiZWwpOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvd2lubnQuYyAoaTM4Nl9wZV9zZWhf dW53aW5kX2VtaXQpOiBMaWtld2lzZS4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChwcm9jZXNz X2VwaWxvZ3VlKTogTGlrZXdpc2UuCgkocHJvY2Vzc19jZmFfYWRqdXN0X2NmYSk6IExpa2V3 aXNlLgoJKHByb2Nlc3NfY2ZhX3JlZ2lzdGVyKTogTGlrZXdpc2UuCgkocHJvY2Vzc19jZmFf b2Zmc2V0KTogTGlrZXdpc2UuCgkoaWE2NF9hc21fdW53aW5kX2VtaXQpOiBMaWtld2lzZS4K CSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2FzbV9vdXRwdXRfZnVuY3Rpb25fbGFiZWwp OiBMaWtld2lzZS4KLS0tCiBnY2MvY29uZmlnL2FybS9hcm0uYyAgICB8IDQ2ICsrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tCiBnY2MvY29uZmlnL2Rhcndpbi5jICAgICB8IDM0ICsr KysrKysrKysrLS0tLS0tLS0tLS0KIGdjYy9jb25maWcvaTM4Ni9pMzg2LmMgIHwgMTIgKysr Ky0tLS0KIGdjYy9jb25maWcvaTM4Ni93aW5udC5jIHwgMTIgKysrKy0tLS0KIGdjYy9jb25m aWcvaWE2NC9pYTY0LmMgIHwgNjQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0KIGdjYy9jb25maWcvczM5MC9zMzkwLmMgIHwgNDYgKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDEw OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0uYyBiL2dj Yy9jb25maWcvYXJtL2FybS5jCmluZGV4IDZjNmU3N2ZhYjY2Li4xYTdiNDdkMjM2ZSAxMDA2 NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmMKKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJt LmMKQEAgLTg0NCw4ICs4NDQsNiBAQCBzdGF0aWMgY2hhciAqICAgICAgICAgbWluaXBvb2xf c3RhcnRvYmo7CiAgICB3aWxsIGJlIGNvbmRpdGlvbmFsaXNlZCBpZiBwb3NzaWJsZS4gICov CiBzdGF0aWMgaW50IG1heF9pbnNuc19za2lwcGVkID0gNTsKIAotZXh0ZXJuIEZJTEUgKiBh c21fb3V0X2ZpbGU7Ci0KIC8qIFRydWUgaWYgd2UgYXJlIGN1cnJlbnRseSBidWlsZGluZyBh IGNvbnN0YW50IHRhYmxlLiAgKi8KIGludCBtYWtpbmdfY29uc3RfdGFibGU7CiAKQEAgLTI5 NDUyLDcgKzI5NDUwLDcgQEAgYXJtX2R3YXJmX3JlZ2lzdGVyX3NwYW4gKHJ0eCBydGwpCiAg ICBlcGlsb2d1ZS4gICovCiAKIHN0YXRpYyB2b2lkCi1hcm1fdW53aW5kX2VtaXRfc2VxdWVu Y2UgKEZJTEUgKiBhc21fb3V0X2ZpbGUsIHJ0eCBwKQorYXJtX3Vud2luZF9lbWl0X3NlcXVl bmNlIChGSUxFICogb3V0X2ZpbGUsIHJ0eCBwKQogewogICBpbnQgaTsKICAgSE9TVF9XSURF X0lOVCBvZmZzZXQ7CkBAIC0yOTQ5NiwxNCArMjk0OTQsMTQgQEAgYXJtX3Vud2luZF9lbWl0 X3NlcXVlbmNlIChGSUxFICogYXNtX291dF9maWxlLCBydHggcCkKIAlwYWRsYXN0ID0gb2Zm c2V0IC0gNDsKICAgICAgIGdjY19hc3NlcnQgKHBhZGxhc3QgPT0gMCB8fCBwYWRsYXN0ID09 IDQpOwogICAgICAgaWYgKHBhZGxhc3QgPT0gNCkKLQlmcHJpbnRmIChhc21fb3V0X2ZpbGUs ICJcdC5wYWQgIzRcbiIpOworCWZwcmludGYgKG91dF9maWxlLCAiXHQucGFkICM0XG4iKTsK ICAgICAgIHJlZ19zaXplID0gNDsKLSAgICAgIGZwcmludGYgKGFzbV9vdXRfZmlsZSwgIlx0 LnNhdmUgeyIpOworICAgICAgZnByaW50ZiAob3V0X2ZpbGUsICJcdC5zYXZlIHsiKTsKICAg ICB9CiAgIGVsc2UgaWYgKElTX1ZGUF9SRUdOVU0gKHJlZykpCiAgICAgewogICAgICAgcmVn X3NpemUgPSA4OwotICAgICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQudnNhdmUgeyIp OworICAgICAgZnByaW50ZiAob3V0X2ZpbGUsICJcdC52c2F2ZSB7Iik7CiAgICAgfQogICBl bHNlCiAgICAgLyogVW5rbm93biByZWdpc3RlciB0eXBlLiAgKi8KQEAgLTI5NTI5LDEzICsy OTUyNywxMyBAQCBhcm1fdW53aW5kX2VtaXRfc2VxdWVuY2UgKEZJTEUgKiBhc21fb3V0X2Zp bGUsIHJ0eCBwKQogICAgICAgZ2NjX2Fzc2VydCAocmVnID49IGxhc3RyZWcpOwogCiAgICAg ICBpZiAoaSAhPSAxKQotCWZwcmludGYgKGFzbV9vdXRfZmlsZSwgIiwgIik7CisJZnByaW50 ZiAob3V0X2ZpbGUsICIsICIpOwogICAgICAgLyogV2UgY2FuJ3QgdXNlICVyIGZvciB2ZnAg YmVjYXVzZSB3ZSBuZWVkIHRvIHVzZSB0aGUKIAkgZG91YmxlIHByZWNpc2lvbiByZWdpc3Rl ciBuYW1lcy4gICovCiAgICAgICBpZiAoSVNfVkZQX1JFR05VTSAocmVnKSkKLQlhc21fZnBy aW50ZiAoYXNtX291dF9maWxlLCAiZCVkIiwgKHJlZyAtIEZJUlNUX1ZGUF9SRUdOVU0pIC8g Mik7CisJYXNtX2ZwcmludGYgKG91dF9maWxlLCAiZCVkIiwgKHJlZyAtIEZJUlNUX1ZGUF9S RUdOVU0pIC8gMik7CiAgICAgICBlbHNlCi0JYXNtX2ZwcmludGYgKGFzbV9vdXRfZmlsZSwg IiVyIiwgcmVnKTsKKwlhc21fZnByaW50ZiAob3V0X2ZpbGUsICIlciIsIHJlZyk7CiAKICAg ICAgIGlmIChmbGFnX2NoZWNraW5nKQogCXsKQEAgLTI5NTUzLDE1ICsyOTU1MSwxNSBAQCBh cm1fdW53aW5kX2VtaXRfc2VxdWVuY2UgKEZJTEUgKiBhc21fb3V0X2ZpbGUsIHJ0eCBwKQog CSAgb2Zmc2V0ICs9IHJlZ19zaXplOwogCX0KICAgICB9Ci0gIGZwcmludGYgKGFzbV9vdXRf ZmlsZSwgIn1cbiIpOworICBmcHJpbnRmIChvdXRfZmlsZSwgIn1cbiIpOwogICBpZiAocGFk Zmlyc3QpCi0gICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQucGFkICMlZFxuIiwgcGFk Zmlyc3QpOworICAgIGZwcmludGYgKG91dF9maWxlLCAiXHQucGFkICMlZFxuIiwgcGFkZmly c3QpOwogfQogCiAvKiAgRW1pdCB1bndpbmQgZGlyZWN0aXZlcyBmb3IgYSBTRVQuICAqLwog CiBzdGF0aWMgdm9pZAotYXJtX3Vud2luZF9lbWl0X3NldCAoRklMRSAqIGFzbV9vdXRfZmls ZSwgcnR4IHApCithcm1fdW53aW5kX2VtaXRfc2V0IChGSUxFICogb3V0X2ZpbGUsIHJ0eCBw KQogewogICBydHggZTA7CiAgIHJ0eCBlMTsKQEAgLTI5NTc4LDEyICsyOTU3NiwxMiBAQCBh cm1fdW53aW5kX2VtaXRfc2V0IChGSUxFICogYXNtX291dF9maWxlLCBydHggcCkKIAkgIHx8 IFJFR05PIChYRVhQIChYRVhQIChlMCwgMCksIDApKSAhPSBTUF9SRUdOVU0pCiAJYWJvcnQg KCk7CiAKLSAgICAgIGFzbV9mcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdC5zYXZlICIpOwor ICAgICAgYXNtX2ZwcmludGYgKG91dF9maWxlLCAiXHQuc2F2ZSAiKTsKICAgICAgIGlmIChJ U19WRlBfUkVHTlVNIChSRUdOTyAoZTEpKSkKLQlhc21fZnByaW50Zihhc21fb3V0X2ZpbGUs ICJ7ZCVkfVxuIiwKKwlhc21fZnByaW50ZihvdXRfZmlsZSwgIntkJWR9XG4iLAogCQkgICAg KFJFR05PIChlMSkgLSBGSVJTVF9WRlBfUkVHTlVNKSAvIDIpOwogICAgICAgZWxzZQotCWFz bV9mcHJpbnRmKGFzbV9vdXRfZmlsZSwgInslcn1cbiIsIFJFR05PIChlMSkpOworCWFzbV9m cHJpbnRmKG91dF9maWxlLCAieyVyfVxuIiwgUkVHTk8gKGUxKSk7CiAgICAgICBicmVhazsK IAogICAgIGNhc2UgUkVHOgpAQCAtMjk1OTYsNyArMjk1OTQsNyBAQCBhcm1fdW53aW5kX2Vt aXRfc2V0IChGSUxFICogYXNtX291dF9maWxlLCBydHggcCkKIAkgICAgICB8fCAhQ09OU1Rf SU5UX1AgKFhFWFAgKGUxLCAxKSkpCiAJICAgIGFib3J0ICgpOwogCi0JICBhc21fZnByaW50 ZiAoYXNtX291dF9maWxlLCAiXHQucGFkICMld2RcbiIsCisJICBhc21fZnByaW50ZiAob3V0 X2ZpbGUsICJcdC5wYWQgIyV3ZFxuIiwKIAkJICAgICAgIC1JTlRWQUwgKFhFWFAgKGUxLCAx KSkpOwogCX0KICAgICAgIGVsc2UgaWYgKFJFR05PIChlMCkgPT0gSEFSRF9GUkFNRV9QT0lO VEVSX1JFR05VTSkKQEAgLTI5NjEwLDE0ICsyOTYwOCwxNCBAQCBhcm1fdW53aW5kX2VtaXRf c2V0IChGSUxFICogYXNtX291dF9maWxlLCBydHggcCkKIAkJYWJvcnQgKCk7CiAJICAgICAg cmVnID0gUkVHTk8gKFhFWFAgKGUxLCAwKSk7CiAJICAgICAgb2Zmc2V0ID0gSU5UVkFMIChY RVhQIChlMSwgMSkpOwotCSAgICAgIGFzbV9mcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdC5z ZXRmcCAlciwgJXIsICMld2RcbiIsCisJICAgICAgYXNtX2ZwcmludGYgKG91dF9maWxlLCAi XHQuc2V0ZnAgJXIsICVyLCAjJXdkXG4iLAogCQkJICAgSEFSRF9GUkFNRV9QT0lOVEVSX1JF R05VTSwgcmVnLAogCQkJICAgb2Zmc2V0KTsKIAkgICAgfQogCSAgZWxzZSBpZiAoUkVHX1Ag KGUxKSkKIAkgICAgewogCSAgICAgIHJlZyA9IFJFR05PIChlMSk7Ci0JICAgICAgYXNtX2Zw cmludGYgKGFzbV9vdXRfZmlsZSwgIlx0LnNldGZwICVyLCAlclxuIiwKKwkgICAgICBhc21f ZnByaW50ZiAob3V0X2ZpbGUsICJcdC5zZXRmcCAlciwgJXJcbiIsCiAJCQkgICBIQVJEX0ZS QU1FX1BPSU5URVJfUkVHTlVNLCByZWcpOwogCSAgICB9CiAJICBlbHNlCkBAIC0yOTYyNiw3 ICsyOTYyNCw3IEBAIGFybV91bndpbmRfZW1pdF9zZXQgKEZJTEUgKiBhc21fb3V0X2ZpbGUs IHJ0eCBwKQogICAgICAgZWxzZSBpZiAoUkVHX1AgKGUxKSAmJiBSRUdOTyAoZTEpID09IFNQ X1JFR05VTSkKIAl7CiAJICAvKiBNb3ZlIGZyb20gc3AgdG8gcmVnLiAgKi8KLQkgIGFzbV9m cHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdC5tb3ZzcCAlclxuIiwgUkVHTk8gKGUwKSk7CisJ ICBhc21fZnByaW50ZiAob3V0X2ZpbGUsICJcdC5tb3ZzcCAlclxuIiwgUkVHTk8gKGUwKSk7 CiAJfQogICAgICBlbHNlIGlmIChHRVRfQ09ERSAoZTEpID09IFBMVVMKIAkgICAgICAmJiBS RUdfUCAoWEVYUCAoZTEsIDApKQpAQCAtMjk2MzQsNyArMjk2MzIsNyBAQCBhcm1fdW53aW5k X2VtaXRfc2V0IChGSUxFICogYXNtX291dF9maWxlLCBydHggcCkKIAkgICAgICAmJiBDT05T VF9JTlRfUCAoWEVYUCAoZTEsIDEpKSkKIAl7CiAJICAvKiBTZXQgcmVnIHRvIG9mZnNldCBm cm9tIHNwLiAgKi8KLQkgIGFzbV9mcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdC5tb3ZzcCAl ciwgIyVkXG4iLAorCSAgYXNtX2ZwcmludGYgKG91dF9maWxlLCAiXHQubW92c3AgJXIsICMl ZFxuIiwKIAkJICAgICAgIFJFR05PIChlMCksIChpbnQpSU5UVkFMKFhFWFAgKGUxLCAxKSkp OwogCX0KICAgICAgIGVsc2UKQEAgLTI5NjUwLDcgKzI5NjQ4LDcgQEAgYXJtX3Vud2luZF9l bWl0X3NldCAoRklMRSAqIGFzbV9vdXRfZmlsZSwgcnR4IHApCiAvKiBFbWl0IHVud2luZCBk aXJlY3RpdmVzIGZvciB0aGUgZ2l2ZW4gaW5zbi4gICovCiAKIHN0YXRpYyB2b2lkCi1hcm1f dW53aW5kX2VtaXQgKEZJTEUgKiBhc21fb3V0X2ZpbGUsIHJ0eF9pbnNuICppbnNuKQorYXJt X3Vud2luZF9lbWl0IChGSUxFICogb3V0X2ZpbGUsIHJ0eF9pbnNuICppbnNuKQogewogICBy dHggbm90ZSwgcGF0OwogICBib29sIGhhbmRsZWRfb25lID0gZmFsc2U7CkBAIC0yOTY5Myw3 ICsyOTY5MSw3IEBAIGFybV91bndpbmRfZW1pdCAoRklMRSAqIGFzbV9vdXRfZmlsZSwgcnR4 X2luc24gKmluc24pCiAKIAkgICAgZ2NjX2Fzc2VydCAoc3JjID09IHN0YWNrX3BvaW50ZXJf cnR4KTsKIAkgICAgcmVnID0gUkVHTk8gKGRlc3QpOwotCSAgICBhc21fZnByaW50ZiAoYXNt X291dF9maWxlLCAiXHQudW53aW5kX3JhdyAwLCAweCV4IEAgdnNwID0gciVkXG4iLAorCSAg ICBhc21fZnByaW50ZiAob3V0X2ZpbGUsICJcdC51bndpbmRfcmF3IDAsIDB4JXggQCB2c3Ag PSByJWRcbiIsCiAJCQkgcmVnICsgMHg5MCwgcmVnKTsKIAkgIH0KIAkgIGhhbmRsZWRfb25l ID0gdHJ1ZTsKQEAgLTI5NzI2LDEyICsyOTcyNCwxMiBAQCBhcm1fdW53aW5kX2VtaXQgKEZJ TEUgKiBhc21fb3V0X2ZpbGUsIHJ0eF9pbnNuICppbnNuKQogICBzd2l0Y2ggKEdFVF9DT0RF IChwYXQpKQogICAgIHsKICAgICBjYXNlIFNFVDoKLSAgICAgIGFybV91bndpbmRfZW1pdF9z ZXQgKGFzbV9vdXRfZmlsZSwgcGF0KTsKKyAgICAgIGFybV91bndpbmRfZW1pdF9zZXQgKG91 dF9maWxlLCBwYXQpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFNFUVVFTkNFOgogICAg ICAgLyogU3RvcmUgbXVsdGlwbGUuICAqLwotICAgICAgYXJtX3Vud2luZF9lbWl0X3NlcXVl bmNlIChhc21fb3V0X2ZpbGUsIHBhdCk7CisgICAgICBhcm1fdW53aW5kX2VtaXRfc2VxdWVu Y2UgKG91dF9maWxlLCBwYXQpOwogICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9kYXJ3aW4uYyBiL2djYy9jb25maWcvZGFyd2luLmMKaW5k ZXggNzgxNzQyZmU0NmYuLmFiY2JkYjFlMDI4IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2Rh cndpbi5jCisrKyBiL2djYy9jb25maWcvZGFyd2luLmMKQEAgLTEwNTgsNyArMTA1OCw3IEBA IG1hY2hvcGljX2xlZ2l0aW1pemVfcGljX2FkZHJlc3MgKHJ0eCBvcmlnLCBtYWNoaW5lX21v ZGUgbW9kZSwgcnR4IHJlZykKIAogaW50CiBtYWNob3BpY19vdXRwdXRfZGF0YV9zZWN0aW9u X2luZGlyZWN0aW9uIChtYWNob3BpY19pbmRpcmVjdGlvbiAqKnNsb3QsCi0JCQkJCSAgRklM RSAqYXNtX291dF9maWxlKQorCQkJCQkgIEZJTEUgKm91dF9maWxlKQogewogICBtYWNob3Bp Y19pbmRpcmVjdGlvbiAqcCA9ICpzbG90OwogCkBAIC0xMDczLDcgKzEwNzMsNyBAQCBtYWNo b3BpY19vdXRwdXRfZGF0YV9zZWN0aW9uX2luZGlyZWN0aW9uIChtYWNob3BpY19pbmRpcmVj dGlvbiAqKnNsb3QsCiAKICAgc3dpdGNoX3RvX3NlY3Rpb24gKGRhdGFfc2VjdGlvbik7CiAg IGFzc2VtYmxlX2FsaWduIChHRVRfTU9ERV9BTElHTk1FTlQgKFBtb2RlKSk7Ci0gIGFzc2Vt YmxlX2xhYmVsIChhc21fb3V0X2ZpbGUsIHB0cl9uYW1lKTsKKyAgYXNzZW1ibGVfbGFiZWwg KG91dF9maWxlLCBwdHJfbmFtZSk7CiAgIGFzc2VtYmxlX2ludGVnZXIgKGdlbl9ydHhfU1lN Qk9MX1JFRiAoUG1vZGUsIHN5bV9uYW1lKSwKIAkJICAgIEdFVF9NT0RFX1NJWkUgKFBtb2Rl KSwKIAkJICAgIEdFVF9NT0RFX0FMSUdOTUVOVCAoUG1vZGUpLCAxKTsKQEAgLTEwODMsNyAr MTA4Myw3IEBAIG1hY2hvcGljX291dHB1dF9kYXRhX3NlY3Rpb25faW5kaXJlY3Rpb24gKG1h Y2hvcGljX2luZGlyZWN0aW9uICoqc2xvdCwKIAogaW50CiBtYWNob3BpY19vdXRwdXRfc3R1 Yl9pbmRpcmVjdGlvbiAobWFjaG9waWNfaW5kaXJlY3Rpb24gKipzbG90LAotCQkJCSAgRklM RSAqYXNtX291dF9maWxlKQorCQkJCSAgRklMRSAqb3V0X2ZpbGUpCiB7CiAgIG1hY2hvcGlj X2luZGlyZWN0aW9uICpwID0gKnNsb3Q7CiAKQEAgLTExMjEsMTMgKzExMjEsMTMgQEAgbWFj aG9waWNfb3V0cHV0X3N0dWJfaW5kaXJlY3Rpb24gKG1hY2hvcGljX2luZGlyZWN0aW9uICoq c2xvdCwKICAgZWxzZQogICAgIHNwcmludGYgKHN0dWIsICIlcyVzIiwgdXNlcl9sYWJlbF9w cmVmaXgsIHB0cl9uYW1lKTsKIAotICBtYWNob3BpY19vdXRwdXRfc3R1YiAoYXNtX291dF9m aWxlLCBzeW0sIHN0dWIpOworICBtYWNob3BpY19vdXRwdXRfc3R1YiAob3V0X2ZpbGUsIHN5 bSwgc3R1Yik7CiAKICAgcmV0dXJuIDE7CiB9CiAKIGludAotbWFjaG9waWNfb3V0cHV0X2lu ZGlyZWN0aW9uIChtYWNob3BpY19pbmRpcmVjdGlvbiAqKnNsb3QsIEZJTEUgKmFzbV9vdXRf ZmlsZSkKK21hY2hvcGljX291dHB1dF9pbmRpcmVjdGlvbiAobWFjaG9waWNfaW5kaXJlY3Rp b24gKipzbG90LCBGSUxFICpvdXRfZmlsZSkKIHsKICAgbWFjaG9waWNfaW5kaXJlY3Rpb24g KnAgPSAqc2xvdDsKIApAQCAtMTE1OSwxOCArMTE1OSwxOCBAQCBtYWNob3BpY19vdXRwdXRf aW5kaXJlY3Rpb24gKG1hY2hvcGljX2luZGlyZWN0aW9uICoqc2xvdCwgRklMRSAqYXNtX291 dF9maWxlKQogCSAgICAgc3RvcmFnZSBoYXMgYmVlbiBhbGxvY2F0ZWQuICAqLwogCSAgJiYg IVRSRUVfU1RBVElDIChkZWNsKSkKIAl7Ci0JICBmcHV0cyAoIlx0LndlYWtfcmVmZXJlbmNl ICIsIGFzbV9vdXRfZmlsZSk7Ci0JICBhc3NlbWJsZV9uYW1lIChhc21fb3V0X2ZpbGUsIHN5 bV9uYW1lKTsKLQkgIGZwdXRjICgnXG4nLCBhc21fb3V0X2ZpbGUpOworCSAgZnB1dHMgKCJc dC53ZWFrX3JlZmVyZW5jZSAiLCBvdXRfZmlsZSk7CisJICBhc3NlbWJsZV9uYW1lIChvdXRf ZmlsZSwgc3ltX25hbWUpOworCSAgZnB1dGMgKCdcbicsIG91dF9maWxlKTsKIAl9CiAgICAg fQogCi0gIGFzc2VtYmxlX25hbWUgKGFzbV9vdXRfZmlsZSwgcHRyX25hbWUpOwotICBmcHJp bnRmIChhc21fb3V0X2ZpbGUsICI6XG4iKTsKKyAgYXNzZW1ibGVfbmFtZSAob3V0X2ZpbGUs IHB0cl9uYW1lKTsKKyAgZnByaW50ZiAob3V0X2ZpbGUsICI6XG4iKTsKIAotICBmcHJpbnRm IChhc21fb3V0X2ZpbGUsICJcdC5pbmRpcmVjdF9zeW1ib2wgIik7Ci0gIGFzc2VtYmxlX25h bWUgKGFzbV9vdXRfZmlsZSwgc3ltX25hbWUpOwotICBmcHJpbnRmIChhc21fb3V0X2ZpbGUs ICJcbiIpOworICBmcHJpbnRmIChvdXRfZmlsZSwgIlx0LmluZGlyZWN0X3N5bWJvbCAiKTsK KyAgYXNzZW1ibGVfbmFtZSAob3V0X2ZpbGUsIHN5bV9uYW1lKTsKKyAgZnByaW50ZiAob3V0 X2ZpbGUsICJcbiIpOwogCiAgIC8qIFZhcmlhYmxlcyB0aGF0IGFyZSBtYXJrZWQgd2l0aCBN QUNIT19TWU1CT0xfRkxBR19TVEFUSUMgbmVlZCB0bwogICAgICBoYXZlIHRoZWlyIHN5bWJv bCBuYW1lIGluc3RlYWQgb2YgMCBpbiB0aGUgc2Vjb25kIGVudHJ5IG9mCkBAIC0xMTkwLDcg KzExOTAsNyBAQCBtYWNob3BpY19vdXRwdXRfaW5kaXJlY3Rpb24gKG1hY2hvcGljX2luZGly ZWN0aW9uICoqc2xvdCwgRklMRSAqYXNtX291dF9maWxlKQogfQogCiBzdGF0aWMgdm9pZAot bWFjaG9waWNfZmluaXNoIChGSUxFICphc21fb3V0X2ZpbGUpCittYWNob3BpY19maW5pc2gg KEZJTEUgKm91dF9maWxlKQogewogICBpZiAoIW1hY2hvcGljX2luZGlyZWN0aW9ucykKICAg ICByZXR1cm47CkBAIC0xMTk4LDEzICsxMTk4LDEzIEBAIG1hY2hvcGljX2ZpbmlzaCAoRklM RSAqYXNtX291dF9maWxlKQogICAvKiBGaXJzdCBvdXRwdXQgYW4gc3ltYm9sIGluZGlyZWN0 aW9ucyB0aGF0IGhhdmUgYmVlbiBwbGFjZWQgaW50byAuZGF0YQogICAgICAod2UgZG9uJ3Qg ZXhwZWN0IHRoZXNlIG5vdykuICAqLwogICBtYWNob3BpY19pbmRpcmVjdGlvbnMtPnRyYXZl cnNlX25vcmVzaXplCi0gICAgPEZJTEUgKiwgbWFjaG9waWNfb3V0cHV0X2RhdGFfc2VjdGlv bl9pbmRpcmVjdGlvbj4gKGFzbV9vdXRfZmlsZSk7CisgICAgPEZJTEUgKiwgbWFjaG9waWNf b3V0cHV0X2RhdGFfc2VjdGlvbl9pbmRpcmVjdGlvbj4gKG91dF9maWxlKTsKIAogICBtYWNo b3BpY19pbmRpcmVjdGlvbnMtPnRyYXZlcnNlX25vcmVzaXplCi0gICAgPEZJTEUgKiwgbWFj aG9waWNfb3V0cHV0X3N0dWJfaW5kaXJlY3Rpb24+IChhc21fb3V0X2ZpbGUpOworICAgIDxG SUxFICosIG1hY2hvcGljX291dHB1dF9zdHViX2luZGlyZWN0aW9uPiAob3V0X2ZpbGUpOwog CiAgIG1hY2hvcGljX2luZGlyZWN0aW9ucy0+dHJhdmVyc2Vfbm9yZXNpemUKLSAgICA8RklM RSAqLCBtYWNob3BpY19vdXRwdXRfaW5kaXJlY3Rpb24+IChhc21fb3V0X2ZpbGUpOworICAg IDxGSUxFICosIG1hY2hvcGljX291dHB1dF9pbmRpcmVjdGlvbj4gKG91dF9maWxlKTsKIH0K IAogaW50CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jIGIvZ2NjL2NvbmZp Zy9pMzg2L2kzODYuYwppbmRleCBkN2FiZmYwZjM5Ni4uYTVjNGZhODU3YTcgMTAwNjQ0Ci0t LSBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmMKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYu YwpAQCAtMTU2Nyw3ICsxNTY3LDcgQEAgaXg4Nl9mdW5jdGlvbl9uYWtlZCAoY29uc3RfdHJl ZSBmbikKIC8qIFdyaXRlIHRoZSBleHRyYSBhc3NlbWJsZXIgY29kZSBuZWVkZWQgdG8gZGVj bGFyZSBhIGZ1bmN0aW9uIHByb3Blcmx5LiAgKi8KIAogdm9pZAotaXg4Nl9hc21fb3V0cHV0 X2Z1bmN0aW9uX2xhYmVsIChGSUxFICphc21fb3V0X2ZpbGUsIGNvbnN0IGNoYXIgKmZuYW1l LAoraXg4Nl9hc21fb3V0cHV0X2Z1bmN0aW9uX2xhYmVsIChGSUxFICpvdXRfZmlsZSwgY29u c3QgY2hhciAqZm5hbWUsCiAJCQkJdHJlZSBkZWNsKQogewogICBib29sIGlzX21zX2hvb2sg PSBpeDg2X2Z1bmN0aW9uX21zX2hvb2tfcHJvbG9ndWUgKGRlY2wpOwpAQCAtMTU4MSwxNCAr MTU4MSwxNCBAQCBpeDg2X2FzbV9vdXRwdXRfZnVuY3Rpb25fbGFiZWwgKEZJTEUgKmFzbV9v dXRfZmlsZSwgY29uc3QgY2hhciAqZm5hbWUsCiAgICAgICB1bnNpZ25lZCBpbnQgZmlsbGVy X2NjID0gMHhjY2NjY2NjYzsKIAogICAgICAgZm9yIChpID0gMDsgaSA8IGZpbGxlcl9jb3Vu dDsgaSArPSA0KQotICAgICAgICBmcHJpbnRmIChhc21fb3V0X2ZpbGUsIEFTTV9MT05HICIg JSN4XG4iLCBmaWxsZXJfY2MpOworCWZwcmludGYgKG91dF9maWxlLCBBU01fTE9ORyAiICUj eFxuIiwgZmlsbGVyX2NjKTsKICAgICB9CiAKICNpZmRlZiBTVUJUQVJHRVRfQVNNX1VOV0lO RF9JTklUCi0gIFNVQlRBUkdFVF9BU01fVU5XSU5EX0lOSVQgKGFzbV9vdXRfZmlsZSk7Cisg IFNVQlRBUkdFVF9BU01fVU5XSU5EX0lOSVQgKG91dF9maWxlKTsKICNlbmRpZgogCi0gIEFT TV9PVVRQVVRfTEFCRUwgKGFzbV9vdXRfZmlsZSwgZm5hbWUpOworICBBU01fT1VUUFVUX0xB QkVMIChvdXRfZmlsZSwgZm5hbWUpOwogCiAgIC8qIE91dHB1dCBtYWdpYyBieXRlIG1hcmtl ciwgaWYgaG90LXBhdGNoIGF0dHJpYnV0ZSBpcyBzZXQuICAqLwogICBpZiAoaXNfbXNfaG9v aykKQEAgLTE1OTcsMTQgKzE1OTcsMTQgQEAgaXg4Nl9hc21fb3V0cHV0X2Z1bmN0aW9uX2xh YmVsIChGSUxFICphc21fb3V0X2ZpbGUsIGNvbnN0IGNoYXIgKmZuYW1lLAogCXsKIAkgIC8q IGxlYXEgWyVyc3AgKyAwXSwgJXJzcCAgKi8KIAkgIGZwdXRzIChBU01fQllURSAiMHg0OCwg MHg4ZCwgMHhhNCwgMHgyNCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMFxuIiwKLQkJIGFzbV9v dXRfZmlsZSk7CisJCSBvdXRfZmlsZSk7CiAJfQogICAgICAgZWxzZQogCXsKICAgICAgICAg ICAvKiBtb3ZsLnMgJWVkaSwgJWVkaQogCSAgICAgcHVzaCAgICVlYnAKIAkgICAgIG1vdmwu cyAlZXNwLCAlZWJwICovCi0JICBmcHV0cyAoQVNNX0JZVEUgIjB4OGIsIDB4ZmYsIDB4NTUs IDB4OGIsIDB4ZWNcbiIsIGFzbV9vdXRfZmlsZSk7CisJICBmcHV0cyAoQVNNX0JZVEUgIjB4 OGIsIDB4ZmYsIDB4NTUsIDB4OGIsIDB4ZWNcbiIsIG91dF9maWxlKTsKIAl9CiAgICAgfQog fQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L3dpbm50LmMgYi9nY2MvY29uZmlnL2kz ODYvd2lubnQuYwppbmRleCA0MTU4YTQ1YWMzMS4uN2MwZWE0ZjczMWMgMTAwNjQ0Ci0tLSBh L2djYy9jb25maWcvaTM4Ni93aW5udC5jCisrKyBiL2djYy9jb25maWcvaTM4Ni93aW5udC5j CkBAIC0xMjMxLDcgKzEyMzEsNyBAQCBzZWhfZnJhbWVfcmVsYXRlZF9leHByIChGSUxFICpm LCBzdHJ1Y3Qgc2VoX2ZyYW1lX3N0YXRlICpzZWgsIHJ0eCBwYXQpCiAgICByZXF1aXJlZCBm b3IgdW53aW5kIG9mIHRoaXMgaW5zbi4gICovCiAKIHZvaWQKLWkzODZfcGVfc2VoX3Vud2lu ZF9lbWl0IChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eF9pbnNuICppbnNuKQoraTM4Nl9wZV9z ZWhfdW53aW5kX2VtaXQgKEZJTEUgKm91dF9maWxlLCBydHhfaW5zbiAqaW5zbikKIHsKICAg cnR4IG5vdGUsIHBhdDsKICAgYm9vbCBoYW5kbGVkX29uZSA9IGZhbHNlOwpAQCAtMTI0Niw4 ICsxMjQ2LDggQEAgaTM4Nl9wZV9zZWhfdW53aW5kX2VtaXQgKEZJTEUgKmFzbV9vdXRfZmls ZSwgcnR4X2luc24gKmluc24pCiAgICAgICAvKiBTZWUgaXg4Nl9zZWhfZml4dXBfZWhfZmFs bHRocnUgZm9yIHRoZSByYXRpb25hbGUuICAqLwogICAgICAgcnR4X2luc24gKnByZXYgPSBw cmV2X2FjdGl2ZV9pbnNuIChpbnNuKTsKICAgICAgIGlmIChwcmV2ICYmICFpbnNuX25vdGhy b3dfcCAocHJldikpCi0JZnB1dHMgKCJcdG5vcFxuIiwgYXNtX291dF9maWxlKTsKLSAgICAg IGZwdXRzICgiXHQuc2VoX2VuZHByb2NcbiIsIGFzbV9vdXRfZmlsZSk7CisJZnB1dHMgKCJc dG5vcFxuIiwgb3V0X2ZpbGUpOworICAgICAgZnB1dHMgKCJcdC5zZWhfZW5kcHJvY1xuIiwg b3V0X2ZpbGUpOwogICAgICAgc2VoLT5pbl9jb2xkX3NlY3Rpb24gPSB0cnVlOwogICAgICAg cmV0dXJuOwogICAgIH0KQEAgLTEyODYsNyArMTI4Niw3IEBAIGkzODZfcGVfc2VoX3Vud2lu ZF9lbWl0IChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eF9pbnNuICppbnNuKQogCSAgICAgIGlm IChHRVRfQ09ERSAocGF0KSA9PSBQQVJBTExFTCkKIAkJcGF0ID0gWFZFQ0VYUCAocGF0LCAw LCAwKTsKIAkgICAgfQotCSAgc2VoX2NmYV9hZGp1c3RfY2ZhIChhc21fb3V0X2ZpbGUsIHNl aCwgcGF0KTsKKwkgIHNlaF9jZmFfYWRqdXN0X2NmYSAob3V0X2ZpbGUsIHNlaCwgcGF0KTsK IAkgIGhhbmRsZWRfb25lID0gdHJ1ZTsKIAkgIGJyZWFrOwogCkBAIC0xMjk0LDcgKzEyOTQs NyBAQCBpMzg2X3BlX3NlaF91bndpbmRfZW1pdCAoRklMRSAqYXNtX291dF9maWxlLCBydHhf aW5zbiAqaW5zbikKIAkgIHBhdCA9IFhFWFAgKG5vdGUsIDApOwogCSAgaWYgKHBhdCA9PSBO VUxMKQogCSAgICBwYXQgPSBzaW5nbGVfc2V0IChpbnNuKTsKLQkgIHNlaF9jZmFfb2Zmc2V0 IChhc21fb3V0X2ZpbGUsIHNlaCwgcGF0KTsKKwkgIHNlaF9jZmFfb2Zmc2V0IChvdXRfZmls ZSwgc2VoLCBwYXQpOwogCSAgaGFuZGxlZF9vbmUgPSB0cnVlOwogCSAgYnJlYWs7CiAKQEAg LTEzMDYsNyArMTMwNiw3IEBAIGkzODZfcGVfc2VoX3Vud2luZF9lbWl0IChGSUxFICphc21f b3V0X2ZpbGUsIHJ0eF9pbnNuICppbnNuKQogICAgIHJldHVybjsKICAgcGF0ID0gUEFUVEVS TiAoaW5zbik7CiAgZm91bmQ6Ci0gIHNlaF9mcmFtZV9yZWxhdGVkX2V4cHIgKGFzbV9vdXRf ZmlsZSwgc2VoLCBwYXQpOworICBzZWhfZnJhbWVfcmVsYXRlZF9leHByIChvdXRfZmlsZSwg c2VoLCBwYXQpOwogfQogCiB2b2lkCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2lhNjQvaWE2 NC5jIGIvZ2NjL2NvbmZpZy9pYTY0L2lhNjQuYwppbmRleCA2MzJiOWRmMTc2MS4uY2RmNzhj ZGM1MTggMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaWE2NC9pYTY0LmMKKysrIGIvZ2NjL2Nv bmZpZy9pYTY0L2lhNjQuYwpAQCAtMTAwNDQsNyArMTAwNDQsNyBAQCBzdGF0aWMgYm9vbCBu ZWVkX2NvcHlfc3RhdGU7CiAvKiBUaGUgZnVuY3Rpb24gZW1pdHMgdW53aW5kIGRpcmVjdGl2 ZXMgZm9yIHRoZSBzdGFydCBvZiBhbiBlcGlsb2d1ZS4gICovCiAKIHN0YXRpYyB2b2lkCi1w cm9jZXNzX2VwaWxvZ3VlIChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eCBpbnNuIEFUVFJJQlVU RV9VTlVTRUQsCitwcm9jZXNzX2VwaWxvZ3VlIChGSUxFICpvdXRfZmlsZSwgcnR4IGluc24g QVRUUklCVVRFX1VOVVNFRCwKIAkJICBib29sIHVud2luZCwgYm9vbCBmcmFtZSBBVFRSSUJV VEVfVU5VU0VEKQogewogICAvKiBJZiB0aGlzIGlzbid0IHRoZSBsYXN0IGJsb2NrIG9mIHRo ZSBmdW5jdGlvbiwgdGhlbiB3ZSBuZWVkIHRvIGxhYmVsIHRoZQpAQCAtMTAwNTMsMTkgKzEw MDUzLDE5IEBAIHByb2Nlc3NfZXBpbG9ndWUgKEZJTEUgKmFzbV9vdXRfZmlsZSwgcnR4IGlu c24gQVRUUklCVVRFX1VOVVNFRCwKICAgaWYgKCFsYXN0X2Jsb2NrKQogICAgIHsKICAgICAg IGlmICh1bndpbmQpCi0JZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQubGFiZWxfc3RhdGUg JWRcbiIsCisJZnByaW50ZiAob3V0X2ZpbGUsICJcdC5sYWJlbF9zdGF0ZSAlZFxuIiwKIAkJ ICsrY2Z1bi0+bWFjaGluZS0+c3RhdGVfbnVtKTsKICAgICAgIG5lZWRfY29weV9zdGF0ZSA9 IHRydWU7CiAgICAgfQogCiAgIGlmICh1bndpbmQpCi0gICAgZnByaW50ZiAoYXNtX291dF9m aWxlLCAiXHQucmVzdG9yZSBzcFxuIik7CisgICAgZnByaW50ZiAob3V0X2ZpbGUsICJcdC5y ZXN0b3JlIHNwXG4iKTsKIH0KIAogLyogVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgYSBTRVQg cGF0dGVybiBmb3IgUkVHX0NGQV9BREpVU1RfQ0ZBLiAgKi8KIAogc3RhdGljIHZvaWQKLXBy b2Nlc3NfY2ZhX2FkanVzdF9jZmEgKEZJTEUgKmFzbV9vdXRfZmlsZSwgcnR4IHBhdCwgcnR4 IGluc24sCitwcm9jZXNzX2NmYV9hZGp1c3RfY2ZhIChGSUxFICpvdXRfZmlsZSwgcnR4IHBh dCwgcnR4IGluc24sCiAJCQlib29sIHVud2luZCwgYm9vbCBmcmFtZSkKIHsKICAgcnR4IGRl c3QgPSBTRVRfREVTVCAocGF0KTsKQEAgLTEwMDg0LDE3ICsxMDA4NCwxNyBAQCBwcm9jZXNz X2NmYV9hZGp1c3RfY2ZhIChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eCBwYXQsIHJ0eCBpbnNu LAogCSAgICB7CiAJICAgICAgZ2NjX2Fzc2VydCAoIWZyYW1lX3BvaW50ZXJfbmVlZGVkKTsK IAkgICAgICBpZiAodW53aW5kKQotCQlmcHJpbnRmIChhc21fb3V0X2ZpbGUsCisJCWZwcmlu dGYgKG91dF9maWxlLAogCQkJICJcdC5mZnJhbWUgIiBIT1NUX1dJREVfSU5UX1BSSU5UX0RF QyJcbiIsCiAJCQkgLUlOVFZBTCAob3AxKSk7CiAJICAgIH0KIAkgIGVsc2UKLQkgICAgcHJv Y2Vzc19lcGlsb2d1ZSAoYXNtX291dF9maWxlLCBpbnNuLCB1bndpbmQsIGZyYW1lKTsKKwkg ICAgcHJvY2Vzc19lcGlsb2d1ZSAob3V0X2ZpbGUsIGluc24sIHVud2luZCwgZnJhbWUpOwog CX0KICAgICAgIGVsc2UKIAl7CiAJICBnY2NfYXNzZXJ0IChzcmMgPT0gaGFyZF9mcmFtZV9w b2ludGVyX3J0eCk7Ci0JICBwcm9jZXNzX2VwaWxvZ3VlIChhc21fb3V0X2ZpbGUsIGluc24s IHVud2luZCwgZnJhbWUpOworCSAgcHJvY2Vzc19lcGlsb2d1ZSAob3V0X2ZpbGUsIGluc24s IHVud2luZCwgZnJhbWUpOwogCX0KICAgICB9CiAgIGVsc2UgaWYgKGRlc3QgPT0gaGFyZF9m cmFtZV9wb2ludGVyX3J0eCkKQEAgLTEwMTAzLDcgKzEwMTAzLDcgQEAgcHJvY2Vzc19jZmFf YWRqdXN0X2NmYSAoRklMRSAqYXNtX291dF9maWxlLCBydHggcGF0LCBydHggaW5zbiwKICAg ICAgIGdjY19hc3NlcnQgKGZyYW1lX3BvaW50ZXJfbmVlZGVkKTsKIAogICAgICAgaWYgKHVu d2luZCkKLQlmcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdC52ZnJhbWUgciVkXG4iLAorCWZw cmludGYgKG91dF9maWxlLCAiXHQudmZyYW1lIHIlZFxuIiwKIAkJIGlhNjRfZGJ4X3JlZ2lz dGVyX251bWJlciAoUkVHTk8gKGRlc3QpKSk7CiAgICAgfQogICBlbHNlCkBAIC0xMDExMyw3 ICsxMDExMyw3IEBAIHByb2Nlc3NfY2ZhX2FkanVzdF9jZmEgKEZJTEUgKmFzbV9vdXRfZmls ZSwgcnR4IHBhdCwgcnR4IGluc24sCiAvKiBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyBhIFNF VCBwYXR0ZXJuIGZvciBSRUdfQ0ZBX1JFR0lTVEVSLiAgKi8KIAogc3RhdGljIHZvaWQKLXBy b2Nlc3NfY2ZhX3JlZ2lzdGVyIChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eCBwYXQsIGJvb2wg dW53aW5kKQorcHJvY2Vzc19jZmFfcmVnaXN0ZXIgKEZJTEUgKm91dF9maWxlLCBydHggcGF0 LCBib29sIHVud2luZCkKIHsKICAgcnR4IGRlc3QgPSBTRVRfREVTVCAocGF0KTsKICAgcnR4 IHNyYyA9IFNFVF9TUkMgKHBhdCk7CkBAIC0xMDEyNCw3ICsxMDEyNCw3IEBAIHByb2Nlc3Nf Y2ZhX3JlZ2lzdGVyIChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eCBwYXQsIGJvb2wgdW53aW5k KQogICAgIHsKICAgICAgIC8qIFNhdmluZyByZXR1cm4gYWRkcmVzcyBwb2ludGVyLiAgKi8K ICAgICAgIGlmICh1bndpbmQpCi0JZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuc2F2ZSBy cCwgciVkXG4iLAorCWZwcmludGYgKG91dF9maWxlLCAiXHQuc2F2ZSBycCwgciVkXG4iLAog CQkgaWE2NF9kYnhfcmVnaXN0ZXJfbnVtYmVyIChkZXN0X3JlZ25vKSk7CiAgICAgICByZXR1 cm47CiAgICAgfQpAQCAtMTAxMzYsMjEgKzEwMTM2LDIxIEBAIHByb2Nlc3NfY2ZhX3JlZ2lz dGVyIChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eCBwYXQsIGJvb2wgdW53aW5kKQogICAgIGNh c2UgUFJfUkVHICgwKToKICAgICAgIGdjY19hc3NlcnQgKGRlc3RfcmVnbm8gPT0gY3VycmVu dF9mcmFtZV9pbmZvLnJbcmVnX3NhdmVfcHJdKTsKICAgICAgIGlmICh1bndpbmQpCi0JZnBy aW50ZiAoYXNtX291dF9maWxlLCAiXHQuc2F2ZSBwciwgciVkXG4iLAorCWZwcmludGYgKG91 dF9maWxlLCAiXHQuc2F2ZSBwciwgciVkXG4iLAogCQkgaWE2NF9kYnhfcmVnaXN0ZXJfbnVt YmVyIChkZXN0X3JlZ25vKSk7CiAgICAgICBicmVhazsKIAogICAgIGNhc2UgQVJfVU5BVF9S RUdOVU06CiAgICAgICBnY2NfYXNzZXJ0IChkZXN0X3JlZ25vID09IGN1cnJlbnRfZnJhbWVf aW5mby5yW3JlZ19zYXZlX2FyX3VuYXRdKTsKICAgICAgIGlmICh1bndpbmQpCi0JZnByaW50 ZiAoYXNtX291dF9maWxlLCAiXHQuc2F2ZSBhci51bmF0LCByJWRcbiIsCisJZnByaW50ZiAo b3V0X2ZpbGUsICJcdC5zYXZlIGFyLnVuYXQsIHIlZFxuIiwKIAkJIGlhNjRfZGJ4X3JlZ2lz dGVyX251bWJlciAoZGVzdF9yZWdubykpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFS X0xDX1JFR05VTToKICAgICAgIGdjY19hc3NlcnQgKGRlc3RfcmVnbm8gPT0gY3VycmVudF9m cmFtZV9pbmZvLnJbcmVnX3NhdmVfYXJfbGNdKTsKICAgICAgIGlmICh1bndpbmQpCi0JZnBy aW50ZiAoYXNtX291dF9maWxlLCAiXHQuc2F2ZSBhci5sYywgciVkXG4iLAorCWZwcmludGYg KG91dF9maWxlLCAiXHQuc2F2ZSBhci5sYywgciVkXG4iLAogCQkgaWE2NF9kYnhfcmVnaXN0 ZXJfbnVtYmVyIChkZXN0X3JlZ25vKSk7CiAgICAgICBicmVhazsKIApAQCAtMTAxNjMsNyAr MTAxNjMsNyBAQCBwcm9jZXNzX2NmYV9yZWdpc3RlciAoRklMRSAqYXNtX291dF9maWxlLCBy dHggcGF0LCBib29sIHVud2luZCkKIC8qIFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIGEgU0VU IHBhdHRlcm4gZm9yIFJFR19DRkFfT0ZGU0VULiAgKi8KIAogc3RhdGljIHZvaWQKLXByb2Nl c3NfY2ZhX29mZnNldCAoRklMRSAqYXNtX291dF9maWxlLCBydHggcGF0LCBib29sIHVud2lu ZCkKK3Byb2Nlc3NfY2ZhX29mZnNldCAoRklMRSAqb3V0X2ZpbGUsIHJ0eCBwYXQsIGJvb2wg dW53aW5kKQogewogICBydHggZGVzdCA9IFNFVF9ERVNUIChwYXQpOwogICBydHggc3JjID0g U0VUX1NSQyAocGF0KTsKQEAgLTEwMjAzLDM1ICsxMDIwMywzNSBAQCBwcm9jZXNzX2NmYV9v ZmZzZXQgKEZJTEUgKmFzbV9vdXRfZmlsZSwgcnR4IHBhdCwgYm9vbCB1bndpbmQpCiAgICAg Y2FzZSBCUl9SRUcgKDApOgogICAgICAgZ2NjX2Fzc2VydCAoIWN1cnJlbnRfZnJhbWVfaW5m by5yW3JlZ19zYXZlX2IwXSk7CiAgICAgICBpZiAodW53aW5kKQotCWZwcmludGYgKGFzbV9v dXRfZmlsZSwgIlx0JXMgcnAsICIgSE9TVF9XSURFX0lOVF9QUklOVF9ERUMgIlxuIiwKKwlm cHJpbnRmIChvdXRfZmlsZSwgIlx0JXMgcnAsICIgSE9TVF9XSURFX0lOVF9QUklOVF9ERUMg IlxuIiwKIAkJIHNhdmVvcCwgb2ZmKTsKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBQUl9S RUcgKDApOgogICAgICAgZ2NjX2Fzc2VydCAoIWN1cnJlbnRfZnJhbWVfaW5mby5yW3JlZ19z YXZlX3ByXSk7CiAgICAgICBpZiAodW53aW5kKQotCWZwcmludGYgKGFzbV9vdXRfZmlsZSwg Ilx0JXMgcHIsICIgSE9TVF9XSURFX0lOVF9QUklOVF9ERUMgIlxuIiwKKwlmcHJpbnRmIChv dXRfZmlsZSwgIlx0JXMgcHIsICIgSE9TVF9XSURFX0lOVF9QUklOVF9ERUMgIlxuIiwKIAkJ IHNhdmVvcCwgb2ZmKTsKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBUl9MQ19SRUdOVU06 CiAgICAgICBnY2NfYXNzZXJ0ICghY3VycmVudF9mcmFtZV9pbmZvLnJbcmVnX3NhdmVfYXJf bGNdKTsKICAgICAgIGlmICh1bndpbmQpCi0JZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQl cyBhci5sYywgIiBIT1NUX1dJREVfSU5UX1BSSU5UX0RFQyAiXG4iLAorCWZwcmludGYgKG91 dF9maWxlLCAiXHQlcyBhci5sYywgIiBIT1NUX1dJREVfSU5UX1BSSU5UX0RFQyAiXG4iLAog CQkgc2F2ZW9wLCBvZmYpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFSX1BGU19SRUdO VU06CiAgICAgICBnY2NfYXNzZXJ0ICghY3VycmVudF9mcmFtZV9pbmZvLnJbcmVnX3NhdmVf YXJfcGZzXSk7CiAgICAgICBpZiAodW53aW5kKQotCWZwcmludGYgKGFzbV9vdXRfZmlsZSwg Ilx0JXMgYXIucGZzLCAiIEhPU1RfV0lERV9JTlRfUFJJTlRfREVDICJcbiIsCisJZnByaW50 ZiAob3V0X2ZpbGUsICJcdCVzIGFyLnBmcywgIiBIT1NUX1dJREVfSU5UX1BSSU5UX0RFQyAi XG4iLAogCQkgc2F2ZW9wLCBvZmYpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFSX1VO QVRfUkVHTlVNOgogICAgICAgZ2NjX2Fzc2VydCAoIWN1cnJlbnRfZnJhbWVfaW5mby5yW3Jl Z19zYXZlX2FyX3VuYXRdKTsKICAgICAgIGlmICh1bndpbmQpCi0JZnByaW50ZiAoYXNtX291 dF9maWxlLCAiXHQlcyBhci51bmF0LCAiIEhPU1RfV0lERV9JTlRfUFJJTlRfREVDICJcbiIs CisJZnByaW50ZiAob3V0X2ZpbGUsICJcdCVzIGFyLnVuYXQsICIgSE9TVF9XSURFX0lOVF9Q UklOVF9ERUMgIlxuIiwKIAkJIHNhdmVvcCwgb2ZmKTsKICAgICAgIGJyZWFrOwogCkBAIC0x MDI0MCw3ICsxMDI0MCw3IEBAIHByb2Nlc3NfY2ZhX29mZnNldCAoRklMRSAqYXNtX291dF9m aWxlLCBydHggcGF0LCBib29sIHVud2luZCkKICAgICBjYXNlIEdSX1JFRyAoNik6CiAgICAg Y2FzZSBHUl9SRUcgKDcpOgogICAgICAgaWYgKHVud2luZCkKLQlmcHJpbnRmIChhc21fb3V0 X2ZpbGUsICJcdC5zYXZlLmcgMHgleFxuIiwKKwlmcHJpbnRmIChvdXRfZmlsZSwgIlx0LnNh dmUuZyAweCV4XG4iLAogCQkgMSA8PCAoc3JjX3JlZ25vIC0gR1JfUkVHICg0KSkpOwogICAg ICAgYnJlYWs7CiAKQEAgLTEwMjUwLDcgKzEwMjUwLDcgQEAgcHJvY2Vzc19jZmFfb2Zmc2V0 IChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eCBwYXQsIGJvb2wgdW53aW5kKQogICAgIGNhc2Ug QlJfUkVHICg0KToKICAgICBjYXNlIEJSX1JFRyAoNSk6CiAgICAgICBpZiAodW53aW5kKQot CWZwcmludGYgKGFzbV9vdXRfZmlsZSwgIlx0LnNhdmUuYiAweCV4XG4iLAorCWZwcmludGYg KG91dF9maWxlLCAiXHQuc2F2ZS5iIDB4JXhcbiIsCiAJCSAxIDw8IChzcmNfcmVnbm8gLSBC Ul9SRUcgKDEpKSk7CiAgICAgICBicmVhazsKIApAQCAtMTAyNTksNyArMTAyNTksNyBAQCBw cm9jZXNzX2NmYV9vZmZzZXQgKEZJTEUgKmFzbV9vdXRfZmlsZSwgcnR4IHBhdCwgYm9vbCB1 bndpbmQpCiAgICAgY2FzZSBGUl9SRUcgKDQpOgogICAgIGNhc2UgRlJfUkVHICg1KToKICAg ICAgIGlmICh1bndpbmQpCi0JZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuc2F2ZS5mIDB4 JXhcbiIsCisJZnByaW50ZiAob3V0X2ZpbGUsICJcdC5zYXZlLmYgMHgleFxuIiwKIAkJIDEg PDwgKHNyY19yZWdubyAtIEZSX1JFRyAoMikpKTsKICAgICAgIGJyZWFrOwogCkBAIC0xMDI2 OCw3ICsxMDI2OCw3IEBAIHByb2Nlc3NfY2ZhX29mZnNldCAoRklMRSAqYXNtX291dF9maWxl LCBydHggcGF0LCBib29sIHVud2luZCkKICAgICBjYXNlIEZSX1JFRyAoMjQpOiBjYXNlIEZS X1JFRyAoMjUpOiBjYXNlIEZSX1JFRyAoMjYpOiBjYXNlIEZSX1JFRyAoMjcpOgogICAgIGNh c2UgRlJfUkVHICgyOCk6IGNhc2UgRlJfUkVHICgyOSk6IGNhc2UgRlJfUkVHICgzMCk6IGNh c2UgRlJfUkVHICgzMSk6CiAgICAgICBpZiAodW53aW5kKQotCWZwcmludGYgKGFzbV9vdXRf ZmlsZSwgIlx0LnNhdmUuZ2YgMHgwLCAweCV4XG4iLAorCWZwcmludGYgKG91dF9maWxlLCAi XHQuc2F2ZS5nZiAweDAsIDB4JXhcbiIsCiAJCSAxIDw8IChzcmNfcmVnbm8gLSBGUl9SRUcg KDEyKSkpOwogICAgICAgYnJlYWs7CiAKQEAgLTEwMjgzLDcgKzEwMjgzLDcgQEAgcHJvY2Vz c19jZmFfb2Zmc2V0IChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eCBwYXQsIGJvb2wgdW53aW5k KQogICAgcmVxdWlyZWQgdG8gdW53aW5kIHRoaXMgaW5zbi4gICovCiAKIHN0YXRpYyB2b2lk Ci1pYTY0X2FzbV91bndpbmRfZW1pdCAoRklMRSAqYXNtX291dF9maWxlLCBydHhfaW5zbiAq aW5zbikKK2lhNjRfYXNtX3Vud2luZF9lbWl0IChGSUxFICpvdXRfZmlsZSwgcnR4X2luc24g Kmluc24pCiB7CiAgIGJvb2wgdW53aW5kID0gaWE2NF9leGNlcHRfdW53aW5kX2luZm8gKCZn bG9iYWxfb3B0aW9ucykgPT0gVUlfVEFSR0VUOwogICBib29sIGZyYW1lID0gZHdhcmYyb3V0 X2RvX2ZyYW1lICgpOwpAQCAtMTAzMDMsOCArMTAzMDMsOCBAQCBpYTY0X2FzbV91bndpbmRf ZW1pdCAoRklMRSAqYXNtX291dF9maWxlLCBydHhfaW5zbiAqaW5zbikKIAl7CiAJICBpZiAo dW53aW5kKQogCSAgICB7Ci0JICAgICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuYm9k eVxuIik7Ci0JICAgICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuY29weV9zdGF0ZSAl ZFxuIiwKKwkgICAgICBmcHJpbnRmIChvdXRfZmlsZSwgIlx0LmJvZHlcbiIpOworCSAgICAg IGZwcmludGYgKG91dF9maWxlLCAiXHQuY29weV9zdGF0ZSAlZFxuIiwKIAkJICAgICAgIGNm dW4tPm1hY2hpbmUtPnN0YXRlX251bSk7CiAJICAgIH0KIAkgIG5lZWRfY29weV9zdGF0ZSA9 IGZhbHNlOwpAQCAtMTAzMjUsNyArMTAzMjUsNyBAQCBpYTY0X2FzbV91bndpbmRfZW1pdCAo RklMRSAqYXNtX291dF9maWxlLCBydHhfaW5zbiAqaW5zbikKICAgICAgIGlmIChkZXN0X3Jl Z25vID09IGN1cnJlbnRfZnJhbWVfaW5mby5yW3JlZ19zYXZlX2FyX3Bmc10pCiAJewogCSAg aWYgKHVud2luZCkKLQkgICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuc2F2ZSBhci5w ZnMsIHIlZFxuIiwKKwkgICAgZnByaW50ZiAob3V0X2ZpbGUsICJcdC5zYXZlIGFyLnBmcywg ciVkXG4iLAogCQkgICAgIGlhNjRfZGJ4X3JlZ2lzdGVyX251bWJlciAoZGVzdF9yZWdubykp OwogCX0KICAgICAgIGVsc2UKQEAgLTEwMzM4LDkgKzEwMzM4LDkgQEAgaWE2NF9hc21fdW53 aW5kX2VtaXQgKEZJTEUgKmFzbV9vdXRfZmlsZSwgcnR4X2luc24gKmluc24pCiAJICAgICBz cCIgbm93LiAgKi8KIAkgIGlmIChjdXJyZW50X2ZyYW1lX2luZm8udG90YWxfc2l6ZSA9PSAw ICYmICFmcmFtZV9wb2ludGVyX25lZWRlZCkKIAkgICAgLyogaWYgaGF2ZW4ndCBkb25lIHBy b2Nlc3NfZXBpbG9ndWUoKSB5ZXQsIGRvIGl0IG5vdyAqLwotCSAgICBwcm9jZXNzX2VwaWxv Z3VlIChhc21fb3V0X2ZpbGUsIGluc24sIHVud2luZCwgZnJhbWUpOworCSAgICBwcm9jZXNz X2VwaWxvZ3VlIChvdXRfZmlsZSwgaW5zbiwgdW53aW5kLCBmcmFtZSk7CiAJICBpZiAodW53 aW5kKQotCSAgICBmcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdC5wcm9sb2d1ZVxuIik7CisJ ICAgIGZwcmludGYgKG91dF9maWxlLCAiXHQucHJvbG9ndWVcbiIpOwogCX0KICAgICAgIHJl dHVybjsKICAgICB9CkBAIC0xMDM1Myw3ICsxMDM1Myw3IEBAIGlhNjRfYXNtX3Vud2luZF9l bWl0IChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eF9pbnNuICppbnNuKQogCXBhdCA9IFhFWFAg KG5vdGUsIDApOwogCWlmIChwYXQgPT0gTlVMTCkKIAkgIHBhdCA9IFBBVFRFUk4gKGluc24p OwotCXByb2Nlc3NfY2ZhX2FkanVzdF9jZmEgKGFzbV9vdXRfZmlsZSwgcGF0LCBpbnNuLCB1 bndpbmQsIGZyYW1lKTsKKwlwcm9jZXNzX2NmYV9hZGp1c3RfY2ZhIChvdXRfZmlsZSwgcGF0 LCBpbnNuLCB1bndpbmQsIGZyYW1lKTsKIAloYW5kbGVkX29uZSA9IHRydWU7CiAJYnJlYWs7 CiAKQEAgLTEwMzYxLDcgKzEwMzYxLDcgQEAgaWE2NF9hc21fdW53aW5kX2VtaXQgKEZJTEUg KmFzbV9vdXRfZmlsZSwgcnR4X2luc24gKmluc24pCiAJcGF0ID0gWEVYUCAobm90ZSwgMCk7 CiAJaWYgKHBhdCA9PSBOVUxMKQogCSAgcGF0ID0gUEFUVEVSTiAoaW5zbik7Ci0JcHJvY2Vz c19jZmFfb2Zmc2V0IChhc21fb3V0X2ZpbGUsIHBhdCwgdW53aW5kKTsKKwlwcm9jZXNzX2Nm YV9vZmZzZXQgKG91dF9maWxlLCBwYXQsIHVud2luZCk7CiAJaGFuZGxlZF9vbmUgPSB0cnVl OwogCWJyZWFrOwogCkBAIC0xMDM2OSw3ICsxMDM2OSw3IEBAIGlhNjRfYXNtX3Vud2luZF9l bWl0IChGSUxFICphc21fb3V0X2ZpbGUsIHJ0eF9pbnNuICppbnNuKQogCXBhdCA9IFhFWFAg KG5vdGUsIDApOwogCWlmIChwYXQgPT0gTlVMTCkKIAkgIHBhdCA9IFBBVFRFUk4gKGluc24p OwotCXByb2Nlc3NfY2ZhX3JlZ2lzdGVyIChhc21fb3V0X2ZpbGUsIHBhdCwgdW53aW5kKTsK Kwlwcm9jZXNzX2NmYV9yZWdpc3RlciAob3V0X2ZpbGUsIHBhdCwgdW53aW5kKTsKIAloYW5k bGVkX29uZSA9IHRydWU7CiAJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvczM5 MC9zMzkwLmMgYi9nY2MvY29uZmlnL3MzOTAvczM5MC5jCmluZGV4IDU0ZGQ2MzMyYzNhLi4z ZTQyMmYwNDVjOSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9zMzkwL3MzOTAuYworKysgYi9n Y2MvY29uZmlnL3MzOTAvczM5MC5jCkBAIC03Nzk4LDcgKzc3OTgsNyBAQCBzMzkwX2FzbV9k ZWNsYXJlX2Z1bmN0aW9uX3NpemUgKEZJTEUgKmFzbV9vdXRfZmlsZSwKIC8qIFdyaXRlIHRo ZSBleHRyYSBhc3NlbWJsZXIgY29kZSBuZWVkZWQgdG8gZGVjbGFyZSBhIGZ1bmN0aW9uIHBy b3Blcmx5LiAgKi8KIAogdm9pZAotczM5MF9hc21fb3V0cHV0X2Z1bmN0aW9uX2xhYmVsIChG SUxFICphc21fb3V0X2ZpbGUsIGNvbnN0IGNoYXIgKmZuYW1lLAorczM5MF9hc21fb3V0cHV0 X2Z1bmN0aW9uX2xhYmVsIChGSUxFICpvdXRfZmlsZSwgY29uc3QgY2hhciAqZm5hbWUsCiAJ CQkJdHJlZSBkZWNsKQogewogICBpbnQgaHdfYmVmb3JlLCBod19hZnRlcjsKQEAgLTc4MTIs MTEgKzc4MTIsMTEgQEAgczM5MF9hc21fb3V0cHV0X2Z1bmN0aW9uX2xhYmVsIChGSUxFICph c21fb3V0X2ZpbGUsIGNvbnN0IGNoYXIgKmZuYW1lLAogICAgICAgLyogQWRkIGEgdHJhbXBv bGluZSBjb2RlIGFyZWEgYmVmb3JlIHRoZSBmdW5jdGlvbiBsYWJlbCBhbmQgaW5pdGlhbGl6 ZSBpdAogCSB3aXRoIHR3by1ieXRlIG5vcCBpbnN0cnVjdGlvbnMuICBUaGlzIGFyZWEgY2Fu IGJlIG92ZXJ3cml0dGVuIHdpdGggY29kZQogCSB0aGF0IGp1bXBzIHRvIGEgcGF0Y2hlZCB2 ZXJzaW9uIG9mIHRoZSBmdW5jdGlvbi4gICovCi0gICAgICBhc21fZnByaW50ZiAoYXNtX291 dF9maWxlLCAiXHRub3ByXHQlJXIwIgorICAgICAgYXNtX2ZwcmludGYgKG91dF9maWxlLCAi XHRub3ByXHQlJXIwIgogCQkgICAiXHQjIHByZS1sYWJlbCBOT1BzIGZvciBob3RwYXRjaCAo JWQgaGFsZndvcmRzKVxuIiwKIAkJICAgaHdfYmVmb3JlKTsKICAgICAgIGZvciAoaSA9IDE7 IGkgPCBod19iZWZvcmU7IGkrKykKLQlmcHV0cyAoIlx0bm9wclx0JXIwXG4iLCBhc21fb3V0 X2ZpbGUpOworCWZwdXRzICgiXHRub3ByXHQlcjBcbiIsIG91dF9maWxlKTsKIAogICAgICAg LyogTm90ZTogIFRoZSBmdW5jdGlvbiBsYWJlbCBtdXN0IGJlIGFsaWduZWQgc28gdGhhdCAo YSkgdGhlIGJ5dGVzIG9mIHRoZQogCSBmb2xsb3dpbmcgbm9wIGRvIG5vdCBjcm9zcyBhIGNh Y2hlbGluZSBib3VuZGFyeSwgYW5kIChiKSBhIGp1bXAgYWRkcmVzcwpAQCAtNzgzMywzNSAr NzgzMywzNSBAQCBzMzkwX2FzbV9vdXRwdXRfZnVuY3Rpb25fbGFiZWwgKEZJTEUgKmFzbV9v dXRfZmlsZSwgY29uc3QgY2hhciAqZm5hbWUsCiAJZnVuY3Rpb25fYWxpZ25tZW50CiAJICA9 IE1BWCAoZnVuY3Rpb25fYWxpZ25tZW50LAogCQkgKHVuc2lnbmVkIGludCkgYWxpZ25fZnVu Y3Rpb25zLmxldmVsc1swXS5nZXRfdmFsdWUgKCkpOwotICAgICAgZnB1dHMgKCJcdCMgYWxp Z25tZW50IGZvciBob3RwYXRjaFxuIiwgYXNtX291dF9maWxlKTsKLSAgICAgIEFTTV9PVVRQ VVRfQUxJR04gKGFzbV9vdXRfZmlsZSwgYWxpZ25fZnVuY3Rpb25zLmxldmVsc1swXS5sb2cp OworICAgICAgZnB1dHMgKCJcdCMgYWxpZ25tZW50IGZvciBob3RwYXRjaFxuIiwgb3V0X2Zp bGUpOworICAgICAgQVNNX09VVFBVVF9BTElHTiAob3V0X2ZpbGUsIGFsaWduX2Z1bmN0aW9u cy5sZXZlbHNbMF0ubG9nKTsKICAgICB9CiAKICAgaWYgKFMzOTBfVVNFX1RBUkdFVF9BVFRS SUJVVEUgJiYgVEFSR0VUX0RFQlVHX0FSRykKICAgICB7Ci0gICAgICBhc21fZnByaW50ZiAo YXNtX291dF9maWxlLCAiXHQjIGZuOiVzIGFyJWRcbiIsIGZuYW1lLCBzMzkwX2FyY2gpOwot ICAgICAgYXNtX2ZwcmludGYgKGFzbV9vdXRfZmlsZSwgIlx0IyBmbjolcyB0dSVkXG4iLCBm bmFtZSwgczM5MF90dW5lKTsKLSAgICAgIGFzbV9mcHJpbnRmIChhc21fb3V0X2ZpbGUsICJc dCMgZm46JXMgc2clZFxuIiwgZm5hbWUsIHMzOTBfc3RhY2tfZ3VhcmQpOwotICAgICAgYXNt X2ZwcmludGYgKGFzbV9vdXRfZmlsZSwgIlx0IyBmbjolcyBzcyVkXG4iLCBmbmFtZSwgczM5 MF9zdGFja19zaXplKTsKLSAgICAgIGFzbV9mcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdCMg Zm46JXMgYmMlZFxuIiwgZm5hbWUsIHMzOTBfYnJhbmNoX2Nvc3QpOwotICAgICAgYXNtX2Zw cmludGYgKGFzbV9vdXRfZmlsZSwgIlx0IyBmbjolcyB3ZiVkXG4iLCBmbmFtZSwKKyAgICAg IGFzbV9mcHJpbnRmIChvdXRfZmlsZSwgIlx0IyBmbjolcyBhciVkXG4iLCBmbmFtZSwgczM5 MF9hcmNoKTsKKyAgICAgIGFzbV9mcHJpbnRmIChvdXRfZmlsZSwgIlx0IyBmbjolcyB0dSVk XG4iLCBmbmFtZSwgczM5MF90dW5lKTsKKyAgICAgIGFzbV9mcHJpbnRmIChvdXRfZmlsZSwg Ilx0IyBmbjolcyBzZyVkXG4iLCBmbmFtZSwgczM5MF9zdGFja19ndWFyZCk7CisgICAgICBh c21fZnByaW50ZiAob3V0X2ZpbGUsICJcdCMgZm46JXMgc3MlZFxuIiwgZm5hbWUsIHMzOTBf c3RhY2tfc2l6ZSk7CisgICAgICBhc21fZnByaW50ZiAob3V0X2ZpbGUsICJcdCMgZm46JXMg YmMlZFxuIiwgZm5hbWUsIHMzOTBfYnJhbmNoX2Nvc3QpOworICAgICAgYXNtX2ZwcmludGYg KG91dF9maWxlLCAiXHQjIGZuOiVzIHdmJWRcbiIsIGZuYW1lLAogCQkgICBzMzkwX3dhcm5f ZnJhbWVzaXplKTsKLSAgICAgIGFzbV9mcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdCMgZm46 JXMgYmElZFxuIiwgZm5hbWUsIFRBUkdFVF9CQUNLQ0hBSU4pOwotICAgICAgYXNtX2Zwcmlu dGYgKGFzbV9vdXRfZmlsZSwgIlx0IyBmbjolcyBoZCVkXG4iLCBmbmFtZSwgVEFSR0VUX0hB UkRfREZQKTsKLSAgICAgIGFzbV9mcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdCMgZm46JXMg aGYlZFxuIiwgZm5hbWUsICFUQVJHRVRfU09GVF9GTE9BVCk7Ci0gICAgICBhc21fZnByaW50 ZiAoYXNtX291dF9maWxlLCAiXHQjIGZuOiVzIGh0JWRcbiIsIGZuYW1lLCBUQVJHRVRfT1BU X0hUTSk7Ci0gICAgICBhc21fZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQjIGZuOiVzIHZ4 JWRcbiIsIGZuYW1lLCBUQVJHRVRfT1BUX1ZYKTsKLSAgICAgIGFzbV9mcHJpbnRmIChhc21f b3V0X2ZpbGUsICJcdCMgZm46JXMgcHMlZFxuIiwgZm5hbWUsCisgICAgICBhc21fZnByaW50 ZiAob3V0X2ZpbGUsICJcdCMgZm46JXMgYmElZFxuIiwgZm5hbWUsIFRBUkdFVF9CQUNLQ0hB SU4pOworICAgICAgYXNtX2ZwcmludGYgKG91dF9maWxlLCAiXHQjIGZuOiVzIGhkJWRcbiIs IGZuYW1lLCBUQVJHRVRfSEFSRF9ERlApOworICAgICAgYXNtX2ZwcmludGYgKG91dF9maWxl LCAiXHQjIGZuOiVzIGhmJWRcbiIsIGZuYW1lLCAhVEFSR0VUX1NPRlRfRkxPQVQpOworICAg ICAgYXNtX2ZwcmludGYgKG91dF9maWxlLCAiXHQjIGZuOiVzIGh0JWRcbiIsIGZuYW1lLCBU QVJHRVRfT1BUX0hUTSk7CisgICAgICBhc21fZnByaW50ZiAob3V0X2ZpbGUsICJcdCMgZm46 JXMgdnglZFxuIiwgZm5hbWUsIFRBUkdFVF9PUFRfVlgpOworICAgICAgYXNtX2ZwcmludGYg KG91dF9maWxlLCAiXHQjIGZuOiVzIHBzJWRcbiIsIGZuYW1lLAogCQkgICBUQVJHRVRfUEFD S0VEX1NUQUNLKTsKLSAgICAgIGFzbV9mcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdCMgZm46 JXMgc2UlZFxuIiwgZm5hbWUsIFRBUkdFVF9TTUFMTF9FWEVDKTsKLSAgICAgIGFzbV9mcHJp bnRmIChhc21fb3V0X2ZpbGUsICJcdCMgZm46JXMgbXYlZFxuIiwgZm5hbWUsIFRBUkdFVF9N VkNMRSk7Ci0gICAgICBhc21fZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQjIGZuOiVzIHp2 JWRcbiIsIGZuYW1lLCBUQVJHRVRfWlZFQ1RPUik7Ci0gICAgICBhc21fZnByaW50ZiAoYXNt X291dF9maWxlLCAiXHQjIGZuOiVzIHdkJWRcbiIsIGZuYW1lLAorICAgICAgYXNtX2Zwcmlu dGYgKG91dF9maWxlLCAiXHQjIGZuOiVzIHNlJWRcbiIsIGZuYW1lLCBUQVJHRVRfU01BTExf RVhFQyk7CisgICAgICBhc21fZnByaW50ZiAob3V0X2ZpbGUsICJcdCMgZm46JXMgbXYlZFxu IiwgZm5hbWUsIFRBUkdFVF9NVkNMRSk7CisgICAgICBhc21fZnByaW50ZiAob3V0X2ZpbGUs ICJcdCMgZm46JXMgenYlZFxuIiwgZm5hbWUsIFRBUkdFVF9aVkVDVE9SKTsKKyAgICAgIGFz bV9mcHJpbnRmIChvdXRfZmlsZSwgIlx0IyBmbjolcyB3ZCVkXG4iLCBmbmFtZSwKIAkJICAg czM5MF93YXJuX2R5bmFtaWNzdGFja19wKTsKICAgICB9Ci0gIEFTTV9PVVRQVVRfTEFCRUwg KGFzbV9vdXRfZmlsZSwgZm5hbWUpOworICBBU01fT1VUUFVUX0xBQkVMIChvdXRfZmlsZSwg Zm5hbWUpOwogICBpZiAoaHdfYWZ0ZXIgPiAwKQotICAgIGFzbV9mcHJpbnRmIChhc21fb3V0 X2ZpbGUsCisgICAgYXNtX2ZwcmludGYgKG91dF9maWxlLAogCQkgIlx0IyBwb3N0LWxhYmVs IE5PUHMgZm9yIGhvdHBhdGNoICglZCBoYWxmd29yZHMpXG4iLAogCQkgaHdfYWZ0ZXIpOwog fQotLSAKMi4zMy4wCgo= --------------ZFCqK3100XT89fASd92D009f--