From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 38971 invoked by alias); 18 May 2017 18:05:02 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 38831 invoked by uid 89); 18 May 2017 18:05:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy=inter, indicating X-HELO: mail-oi0-f44.google.com Received: from mail-oi0-f44.google.com (HELO mail-oi0-f44.google.com) (209.85.218.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 18 May 2017 18:04:56 +0000 Received: by mail-oi0-f44.google.com with SMTP id b204so64423313oii.1 for ; Thu, 18 May 2017 11:04:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=awePvUGew5G8O1pKEfBV/pLJOYJCnADSjZX++Ui7eLo=; b=jB98BdBAXmXfleHhSk0SVYSNlKw40Ib79ymmHJEBK6Wq2HS3Yq9DMPHk6rmJNMIn36 tsl+mhW3aH1ZWF6hal9272rNeI1fJLGHuTzTaC2En+U8O35ubBbc4r8m+sxNvTgvAaH/ EgWix3YgIy7+51/ewZ/E0SrDPb2rFOtvxkKm2OIH5SCFg7sByNuHL+d9cYushaXz8ApS 1c9XiawYBjCU5PhGAi+q3cL2g3yfl1VKaA1zXGi+UhG1hVu95QCQNI94JNnryrjNAElo k1xvt85VQ9R8KTK5XpLPRTCd5QtF5mPosrFrKNMhGKASv0nYvXUCOlBXfdifyKCk0/VZ Ubug== X-Gm-Message-State: AODbwcBa2HnsuPh8lnezaretrHwI3gLTKbQ1kkc2ue8SW+EyZ0rTVA8x lXvaVoDrnAC93KLTLvBtG7++mihiO8oJ X-Received: by 10.157.49.68 with SMTP id v4mr2985699otd.131.1495130697621; Thu, 18 May 2017 11:04:57 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.102.11 with HTTP; Thu, 18 May 2017 11:04:57 -0700 (PDT) From: Ian Lance Taylor Date: Thu, 18 May 2017 18:13:00 -0000 Message-ID: Subject: Go patch committed: Ignore struct field tags for type conversion To: gcc-patches , "gofrontend-dev@googlegroups.com" Content-Type: multipart/mixed; boundary="001a113d164e201c88054fd03ec7" X-SW-Source: 2017-05/txt/msg01491.txt.bz2 --001a113d164e201c88054fd03ec7 Content-Type: text/plain; charset="UTF-8" Content-length: 434 Go 1.8 includes a language change (https://golang.org/doc/go1.8#language): in an explicit conversion from one struct type to another, any field tags are ignored. This CL implements this language change in the gofrontend. The tests for this are in the gc testsuite, which will be copied into the gccgo repository in due course. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline and GCC 7 branch. Ian --001a113d164e201c88054fd03ec7 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j2uq77kt0 Content-length: 18073 SW5kZXg6IGdjYy9nby9nb2Zyb250ZW5kL01FUkdFCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGdjYy9nby9nb2Zyb250ZW5kL01FUkdFCShyZXZpc2lv biAyNDgxNjgpCisrKyBnY2MvZ28vZ29mcm9udGVuZC9NRVJHRQkod29ya2lu ZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLWJhNjhhNDI2MThkMWU4NTE2ZTM4 ZGEwOTNkM2FmNzMxZDdmZDRmMDYKKzM2OWUxZWZlMTlhZGZjNTM5M2QyMjM1 OTkyMzI3ZjM5MzYwZTA1NTQKIAogVGhlIGZpcnN0IGxpbmUgb2YgdGhpcyBm aWxlIGhvbGRzIHRoZSBnaXQgcmV2aXNpb24gbnVtYmVyIG9mIHRoZSBsYXN0 CiBtZXJnZSBkb25lIGZyb20gdGhlIGdvZnJvbnRlbmQgcmVwb3NpdG9yeS4K SW5kZXg6IGdjYy9nby9nb2Zyb250ZW5kL3R5cGVzLmNjCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGdjYy9nby9nb2Zyb250ZW5kL3R5cGVzLmNjCShy ZXZpc2lvbiAyNDgwODEpCisrKyBnY2MvZ28vZ29mcm9udGVuZC90eXBlcy5j Ywkod29ya2luZyBjb3B5KQpAQCAtMzE3LDYgKzMxNywxNiBAQCBib29sCiBU eXBlOjphcmVfaWRlbnRpY2FsKGNvbnN0IFR5cGUqIHQxLCBjb25zdCBUeXBl KiB0MiwgYm9vbCBlcnJvcnNfYXJlX2lkZW50aWNhbCwKIAkJICAgIHN0ZDo6 c3RyaW5nKiByZWFzb24pCiB7CisgIHJldHVybiBUeXBlOjphcmVfaWRlbnRp Y2FsX2NtcF90YWdzKHQxLCB0MiwgQ09NUEFSRV9UQUdTLAorCQkJCSAgICAg IGVycm9yc19hcmVfaWRlbnRpY2FsLCByZWFzb24pOworfQorCisvLyBMaWtl IGFyZV9pZGVudGljYWwsIGJ1dCB3aXRoIGEgQ01QX1RBR1MgcGFyYW1ldGVy LgorCitib29sCitUeXBlOjphcmVfaWRlbnRpY2FsX2NtcF90YWdzKGNvbnN0 IFR5cGUqIHQxLCBjb25zdCBUeXBlKiB0MiwgQ21wX3RhZ3MgY21wX3RhZ3Ms CisJCQkgICAgIGJvb2wgZXJyb3JzX2FyZV9pZGVudGljYWwsIHN0ZDo6c3Ry aW5nKiByZWFzb24pCit7CiAgIGlmICh0MSA9PSBOVUxMIHx8IHQyID09IE5V TEwpCiAgICAgewogICAgICAgLy8gU29tZXRoaW5nIGlzIHdyb25nLgpAQCAt Mzg3LDMxICszOTcsMzMgQEAgVHlwZTo6YXJlX2lkZW50aWNhbChjb25zdCBU eXBlKiB0MSwgY29ucwogICAgIGNhc2UgVFlQRV9GVU5DVElPTjoKICAgICAg IHJldHVybiB0MS0+ZnVuY3Rpb25fdHlwZSgpLT5pc19pZGVudGljYWwodDIt PmZ1bmN0aW9uX3R5cGUoKSwKIAkJCQkJICAgICAgIGZhbHNlLAorCQkJCQkg ICAgICAgY21wX3RhZ3MsCiAJCQkJCSAgICAgICBlcnJvcnNfYXJlX2lkZW50 aWNhbCwKIAkJCQkJICAgICAgIHJlYXNvbik7CiAKICAgICBjYXNlIFRZUEVf UE9JTlRFUjoKLSAgICAgIHJldHVybiBUeXBlOjphcmVfaWRlbnRpY2FsKHQx LT5wb2ludHNfdG8oKSwgdDItPnBvaW50c190bygpLAotCQkJCSBlcnJvcnNf YXJlX2lkZW50aWNhbCwgcmVhc29uKTsKKyAgICAgIHJldHVybiBUeXBlOjph cmVfaWRlbnRpY2FsX2NtcF90YWdzKHQxLT5wb2ludHNfdG8oKSwgdDItPnBv aW50c190bygpLAorCQkJCQkgIGNtcF90YWdzLCBlcnJvcnNfYXJlX2lkZW50 aWNhbCwKKwkJCQkJICByZWFzb24pOwogCiAgICAgY2FzZSBUWVBFX1NUUlVD VDoKLSAgICAgIHJldHVybiB0MS0+c3RydWN0X3R5cGUoKS0+aXNfaWRlbnRp Y2FsKHQyLT5zdHJ1Y3RfdHlwZSgpLAorICAgICAgcmV0dXJuIHQxLT5zdHJ1 Y3RfdHlwZSgpLT5pc19pZGVudGljYWwodDItPnN0cnVjdF90eXBlKCksIGNt cF90YWdzLAogCQkJCQkgICAgIGVycm9yc19hcmVfaWRlbnRpY2FsKTsKIAog ICAgIGNhc2UgVFlQRV9BUlJBWToKLSAgICAgIHJldHVybiB0MS0+YXJyYXlf dHlwZSgpLT5pc19pZGVudGljYWwodDItPmFycmF5X3R5cGUoKSwKKyAgICAg IHJldHVybiB0MS0+YXJyYXlfdHlwZSgpLT5pc19pZGVudGljYWwodDItPmFy cmF5X3R5cGUoKSwgY21wX3RhZ3MsCiAJCQkJCSAgICBlcnJvcnNfYXJlX2lk ZW50aWNhbCk7CiAKICAgICBjYXNlIFRZUEVfTUFQOgotICAgICAgcmV0dXJu IHQxLT5tYXBfdHlwZSgpLT5pc19pZGVudGljYWwodDItPm1hcF90eXBlKCks CisgICAgICByZXR1cm4gdDEtPm1hcF90eXBlKCktPmlzX2lkZW50aWNhbCh0 Mi0+bWFwX3R5cGUoKSwgY21wX3RhZ3MsCiAJCQkJCSAgZXJyb3JzX2FyZV9p ZGVudGljYWwpOwogCiAgICAgY2FzZSBUWVBFX0NIQU5ORUw6Ci0gICAgICBy ZXR1cm4gdDEtPmNoYW5uZWxfdHlwZSgpLT5pc19pZGVudGljYWwodDItPmNo YW5uZWxfdHlwZSgpLAorICAgICAgcmV0dXJuIHQxLT5jaGFubmVsX3R5cGUo KS0+aXNfaWRlbnRpY2FsKHQyLT5jaGFubmVsX3R5cGUoKSwgY21wX3RhZ3Ms CiAJCQkJCSAgICAgIGVycm9yc19hcmVfaWRlbnRpY2FsKTsKIAogICAgIGNh c2UgVFlQRV9JTlRFUkZBQ0U6Ci0gICAgICByZXR1cm4gdDEtPmludGVyZmFj ZV90eXBlKCktPmlzX2lkZW50aWNhbCh0Mi0+aW50ZXJmYWNlX3R5cGUoKSwK KyAgICAgIHJldHVybiB0MS0+aW50ZXJmYWNlX3R5cGUoKS0+aXNfaWRlbnRp Y2FsKHQyLT5pbnRlcmZhY2VfdHlwZSgpLCBjbXBfdGFncywKIAkJCQkJCWVy cm9yc19hcmVfaWRlbnRpY2FsKTsKIAogICAgIGNhc2UgVFlQRV9DQUxMX01V TFRJUExFX1JFU1VMVDoKQEAgLTczNSwyMyArNzQ3LDI2IEBAIFR5cGU6OmFy ZV9jb252ZXJ0aWJsZShjb25zdCBUeXBlKiBsaHMsIGMKICAgICByZXR1cm4g dHJ1ZTsKIAogICAvLyBUaGUgdHlwZXMgYXJlIGNvbnZlcnRpYmxlIGlmIHRo ZXkgaGF2ZSBpZGVudGljYWwgdW5kZXJseWluZwotICAvLyB0eXBlcy4KKyAg Ly8gdHlwZXMsIGlnbm9yaW5nIHN0cnVjdCBmaWVsZCB0YWdzLgogICBpZiAo KGxocy0+bmFtZWRfdHlwZSgpICE9IE5VTEwgfHwgcmhzLT5uYW1lZF90eXBl KCkgIT0gTlVMTCkKLSAgICAgICYmIFR5cGU6OmFyZV9pZGVudGljYWwobGhz LT5iYXNlKCksIHJocy0+YmFzZSgpLCB0cnVlLCByZWFzb24pKQorICAgICAg JiYgVHlwZTo6YXJlX2lkZW50aWNhbF9jbXBfdGFncyhsaHMtPmJhc2UoKSwg cmhzLT5iYXNlKCksIElHTk9SRV9UQUdTLAorCQkJCSAgICAgIHRydWUsIHJl YXNvbikpCiAgICAgcmV0dXJuIHRydWU7CiAKICAgLy8gVGhlIHR5cGVzIGFy ZSBjb252ZXJ0aWJsZSBpZiB0aGV5IGFyZSBib3RoIHVubmFtZWQgcG9pbnRl ciB0eXBlcwotICAvLyBhbmQgdGhlaXIgcG9pbnRlciBiYXNlIHR5cGVzIGhh dmUgaWRlbnRpY2FsIHVuZGVybHlpbmcgdHlwZXMuCisgIC8vIGFuZCB0aGVp ciBwb2ludGVyIGJhc2UgdHlwZXMgaGF2ZSBpZGVudGljYWwgdW5kZXJseWlu ZyB0eXBlcywKKyAgLy8gaWdub3Jpbmcgc3RydWN0IGZpZWxkIHRhZ3MuCiAg IGlmIChsaHMtPm5hbWVkX3R5cGUoKSA9PSBOVUxMCiAgICAgICAmJiByaHMt Pm5hbWVkX3R5cGUoKSA9PSBOVUxMCiAgICAgICAmJiBsaHMtPnBvaW50c190 bygpICE9IE5VTEwKICAgICAgICYmIHJocy0+cG9pbnRzX3RvKCkgIT0gTlVM TAogICAgICAgJiYgKGxocy0+cG9pbnRzX3RvKCktPm5hbWVkX3R5cGUoKSAh PSBOVUxMCiAJICB8fCByaHMtPnBvaW50c190bygpLT5uYW1lZF90eXBlKCkg IT0gTlVMTCkKLSAgICAgICYmIFR5cGU6OmFyZV9pZGVudGljYWwobGhzLT5w b2ludHNfdG8oKS0+YmFzZSgpLAotCQkJICAgICByaHMtPnBvaW50c190bygp LT5iYXNlKCksCi0JCQkgICAgIHRydWUsCi0JCQkgICAgIHJlYXNvbikpCisg ICAgICAmJiBUeXBlOjphcmVfaWRlbnRpY2FsX2NtcF90YWdzKGxocy0+cG9p bnRzX3RvKCktPmJhc2UoKSwKKwkJCQkgICAgICByaHMtPnBvaW50c190bygp LT5iYXNlKCksCisJCQkJICAgICAgSUdOT1JFX1RBR1MsCisJCQkJICAgICAg dHJ1ZSwKKwkJCQkgICAgICByZWFzb24pKQogICAgIHJldHVybiB0cnVlOwog CiAgIC8vIEludGVnZXIgYW5kIGZsb2F0aW5nIHBvaW50IHR5cGVzIGFyZSBj b252ZXJ0aWJsZSB0byBlYWNoIG90aGVyLgpAQCAtNDUwMiw3ICs0NTE3LDcg QEAgYm9vbAogRnVuY3Rpb25fdHlwZTo6aXNfdmFsaWRfcmVkZWNsYXJhdGlv bihjb25zdCBGdW5jdGlvbl90eXBlKiB0LAogCQkJCSAgICAgIHN0ZDo6c3Ry aW5nKiByZWFzb24pIGNvbnN0CiB7Ci0gIGlmICghdGhpcy0+aXNfaWRlbnRp Y2FsKHQsIGZhbHNlLCB0cnVlLCByZWFzb24pKQorICBpZiAoIXRoaXMtPmlz X2lkZW50aWNhbCh0LCBmYWxzZSwgQ09NUEFSRV9UQUdTLCB0cnVlLCByZWFz b24pKQogICAgIHJldHVybiBmYWxzZTsKIAogICAvLyBBIHJlZGVjbGFyYXRp b24gb2YgYSBmdW5jdGlvbiBpcyByZXF1aXJlZCB0byB1c2UgdGhlIHNhbWUg bmFtZXMKQEAgLTQ1ODAsNyArNDU5NSw3IEBAIEZ1bmN0aW9uX3R5cGU6Omlz X3ZhbGlkX3JlZGVjbGFyYXRpb24oY28KIAogYm9vbAogRnVuY3Rpb25fdHlw ZTo6aXNfaWRlbnRpY2FsKGNvbnN0IEZ1bmN0aW9uX3R5cGUqIHQsIGJvb2wg aWdub3JlX3JlY2VpdmVyLAotCQkJICAgIGJvb2wgZXJyb3JzX2FyZV9pZGVu dGljYWwsCisJCQkgICAgQ21wX3RhZ3MgY21wX3RhZ3MsIGJvb2wgZXJyb3Jz X2FyZV9pZGVudGljYWwsCiAJCQkgICAgc3RkOjpzdHJpbmcqIHJlYXNvbikg Y29uc3QKIHsKICAgaWYgKCFpZ25vcmVfcmVjZWl2ZXIpCkBAIC00NTk1LDgg KzQ2MTAsOCBAQCBGdW5jdGlvbl90eXBlOjppc19pZGVudGljYWwoY29uc3Qg RnVuY3RpCiAJfQogICAgICAgaWYgKHIxICE9IE5VTEwpCiAJewotCSAgaWYg KCFUeXBlOjphcmVfaWRlbnRpY2FsKHIxLT50eXBlKCksIHIyLT50eXBlKCks IGVycm9yc19hcmVfaWRlbnRpY2FsLAotCQkJCSAgIHJlYXNvbikpCisJICBp ZiAoIVR5cGU6OmFyZV9pZGVudGljYWxfY21wX3RhZ3MocjEtPnR5cGUoKSwg cjItPnR5cGUoKSwgY21wX3RhZ3MsCisJCQkJCSAgICBlcnJvcnNfYXJlX2lk ZW50aWNhbCwgcmVhc29uKSkKIAkgICAgewogCSAgICAgIGlmIChyZWFzb24g IT0gTlVMTCAmJiAhcmVhc29uLT5lbXB0eSgpKQogCQkqcmVhc29uID0gInJl Y2VpdmVyOiAiICsgKnJlYXNvbjsKQEAgLTQ2MjcsOCArNDY0Miw4IEBAIEZ1 bmN0aW9uX3R5cGU6OmlzX2lkZW50aWNhbChjb25zdCBGdW5jdGkKIAkgICAg ICByZXR1cm4gZmFsc2U7CiAJICAgIH0KIAotCSAgaWYgKCFUeXBlOjphcmVf aWRlbnRpY2FsKHAxLT50eXBlKCksIHAyLT50eXBlKCksCi0JCQkJICAgZXJy b3JzX2FyZV9pZGVudGljYWwsIE5VTEwpKQorCSAgaWYgKCFUeXBlOjphcmVf aWRlbnRpY2FsX2NtcF90YWdzKHAxLT50eXBlKCksIHAyLT50eXBlKCksIGNt cF90YWdzLAorCQkJCQkgICAgZXJyb3JzX2FyZV9pZGVudGljYWwsIE5VTEwp KQogCSAgICB7CiAJICAgICAgaWYgKHJlYXNvbiAhPSBOVUxMKQogCQkqcmVh c29uID0gXygiZGlmZmVyZW50IHBhcmFtZXRlciB0eXBlcyIpOwpAQCAtNDY3 Miw4ICs0Njg3LDkgQEAgRnVuY3Rpb25fdHlwZTo6aXNfaWRlbnRpY2FsKGNv bnN0IEZ1bmN0aQogCSAgICAgIHJldHVybiBmYWxzZTsKIAkgICAgfQogCi0J ICBpZiAoIVR5cGU6OmFyZV9pZGVudGljYWwocmVzMS0+dHlwZSgpLCByZXMy LT50eXBlKCksCi0JCQkJICAgZXJyb3JzX2FyZV9pZGVudGljYWwsIE5VTEwp KQorCSAgaWYgKCFUeXBlOjphcmVfaWRlbnRpY2FsX2NtcF90YWdzKHJlczEt PnR5cGUoKSwgcmVzMi0+dHlwZSgpLAorCQkJCQkgICAgY21wX3RhZ3MsIGVy cm9yc19hcmVfaWRlbnRpY2FsLAorCQkJCQkgICAgTlVMTCkpCiAJICAgIHsK IAkgICAgICBpZiAocmVhc29uICE9IE5VTEwpCiAJCSpyZWFzb24gPSBfKCJk aWZmZXJlbnQgcmVzdWx0IHR5cGVzIik7CkBAIC01ODAzLDcgKzU4MTksNyBA QCBTdHJ1Y3RfdHlwZTo6ZG9faGFzX3BvaW50ZXIoKSBjb25zdAogLy8gV2hl dGhlciB0aGlzIHR5cGUgaXMgaWRlbnRpY2FsIHRvIFQuCiAKIGJvb2wKLVN0 cnVjdF90eXBlOjppc19pZGVudGljYWwoY29uc3QgU3RydWN0X3R5cGUqIHQs CitTdHJ1Y3RfdHlwZTo6aXNfaWRlbnRpY2FsKGNvbnN0IFN0cnVjdF90eXBl KiB0LCBDbXBfdGFncyBjbXBfdGFncywKIAkJCSAgYm9vbCBlcnJvcnNfYXJl X2lkZW50aWNhbCkgY29uc3QKIHsKICAgaWYgKHRoaXMtPmlzX3N0cnVjdF9p bmNvbXBhcmFibGVfICE9IHQtPmlzX3N0cnVjdF9pbmNvbXBhcmFibGVfKQpA QCAtNTgyMiwyMCArNTgzOCwyMyBAQCBTdHJ1Y3RfdHlwZTo6aXNfaWRlbnRp Y2FsKGNvbnN0IFN0cnVjdF90CiAgICAgICBpZiAocGYxLT5maWVsZF9uYW1l KCkgIT0gcGYyLT5maWVsZF9uYW1lKCkpCiAJcmV0dXJuIGZhbHNlOwogICAg ICAgaWYgKHBmMS0+aXNfYW5vbnltb3VzKCkgIT0gcGYyLT5pc19hbm9ueW1v dXMoKQotCSAgfHwgIVR5cGU6OmFyZV9pZGVudGljYWwocGYxLT50eXBlKCks IHBmMi0+dHlwZSgpLAotCQkJCSAgZXJyb3JzX2FyZV9pZGVudGljYWwsIE5V TEwpKQorCSAgfHwgIVR5cGU6OmFyZV9pZGVudGljYWxfY21wX3RhZ3MocGYx LT50eXBlKCksIHBmMi0+dHlwZSgpLCBjbXBfdGFncywKKwkJCQkJICAgZXJy b3JzX2FyZV9pZGVudGljYWwsIE5VTEwpKQogCXJldHVybiBmYWxzZTsKLSAg ICAgIGlmICghcGYxLT5oYXNfdGFnKCkpCisgICAgICBpZiAoY21wX3RhZ3Mg PT0gQ09NUEFSRV9UQUdTKQogCXsKLQkgIGlmIChwZjItPmhhc190YWcoKSkK LQkgICAgcmV0dXJuIGZhbHNlOwotCX0KLSAgICAgIGVsc2UKLQl7Ci0JICBp ZiAoIXBmMi0+aGFzX3RhZygpKQotCSAgICByZXR1cm4gZmFsc2U7Ci0JICBp ZiAocGYxLT50YWcoKSAhPSBwZjItPnRhZygpKQotCSAgICByZXR1cm4gZmFs c2U7CisJICBpZiAoIXBmMS0+aGFzX3RhZygpKQorCSAgICB7CisJICAgICAg aWYgKHBmMi0+aGFzX3RhZygpKQorCQlyZXR1cm4gZmFsc2U7CisJICAgIH0K KwkgIGVsc2UKKwkgICAgeworCSAgICAgIGlmICghcGYyLT5oYXNfdGFnKCkp CisJCXJldHVybiBmYWxzZTsKKwkgICAgICBpZiAocGYxLT50YWcoKSAhPSBw ZjItPnRhZygpKQorCQlyZXR1cm4gZmFsc2U7CisJICAgIH0KIAl9CiAgICAg fQogICBpZiAocGYyICE9IGZpZWxkczItPmVuZCgpKQpAQCAtNzA2MSwxMCAr NzA4MCwxMSBAQCBBcnJheV90eXBlOjppbnRfbGVuZ3RoKGludDY0X3QqIHBs ZW4pCiAvLyBXaGV0aGVyIHR3byBhcnJheSB0eXBlcyBhcmUgaWRlbnRpY2Fs LgogCiBib29sCi1BcnJheV90eXBlOjppc19pZGVudGljYWwoY29uc3QgQXJy YXlfdHlwZSogdCwgYm9vbCBlcnJvcnNfYXJlX2lkZW50aWNhbCkgY29uc3QK K0FycmF5X3R5cGU6OmlzX2lkZW50aWNhbChjb25zdCBBcnJheV90eXBlKiB0 LCBDbXBfdGFncyBjbXBfdGFncywKKwkJCSBib29sIGVycm9yc19hcmVfaWRl bnRpY2FsKSBjb25zdAogewotICBpZiAoIVR5cGU6OmFyZV9pZGVudGljYWwo dGhpcy0+ZWxlbWVudF90eXBlKCksIHQtPmVsZW1lbnRfdHlwZSgpLAotCQkJ ICAgZXJyb3JzX2FyZV9pZGVudGljYWwsIE5VTEwpKQorICBpZiAoIVR5cGU6 OmFyZV9pZGVudGljYWxfY21wX3RhZ3ModGhpcy0+ZWxlbWVudF90eXBlKCks IHQtPmVsZW1lbnRfdHlwZSgpLAorCQkJCSAgICBjbXBfdGFncywgZXJyb3Jz X2FyZV9pZGVudGljYWwsIE5VTEwpKQogICAgIHJldHVybiBmYWxzZTsKIAog ICBpZiAodGhpcy0+aXNfYXJyYXlfaW5jb21wYXJhYmxlXyAhPSB0LT5pc19h cnJheV9pbmNvbXBhcmFibGVfKQpAQCAtNzk4NiwxMiArODAwNiwxNCBAQCBN YXBfdHlwZTo6ZG9fdmVyaWZ5KCkKIC8vIFdoZXRoZXIgdHdvIG1hcCB0eXBl cyBhcmUgaWRlbnRpY2FsLgogCiBib29sCi1NYXBfdHlwZTo6aXNfaWRlbnRp Y2FsKGNvbnN0IE1hcF90eXBlKiB0LCBib29sIGVycm9yc19hcmVfaWRlbnRp Y2FsKSBjb25zdAorTWFwX3R5cGU6OmlzX2lkZW50aWNhbChjb25zdCBNYXBf dHlwZSogdCwgQ21wX3RhZ3MgY21wX3RhZ3MsCisJCSAgICAgICBib29sIGVy cm9yc19hcmVfaWRlbnRpY2FsKSBjb25zdAogewotICByZXR1cm4gKFR5cGU6 OmFyZV9pZGVudGljYWwodGhpcy0+a2V5X3R5cGUoKSwgdC0+a2V5X3R5cGUo KSwKLQkJCSAgICAgIGVycm9yc19hcmVfaWRlbnRpY2FsLCBOVUxMKQotCSAg JiYgVHlwZTo6YXJlX2lkZW50aWNhbCh0aGlzLT52YWxfdHlwZSgpLCB0LT52 YWxfdHlwZSgpLAotCQkJCSBlcnJvcnNfYXJlX2lkZW50aWNhbCwgTlVMTCkp OworICByZXR1cm4gKFR5cGU6OmFyZV9pZGVudGljYWxfY21wX3RhZ3ModGhp cy0+a2V5X3R5cGUoKSwgdC0+a2V5X3R5cGUoKSwKKwkJCQkgICAgICAgY21w X3RhZ3MsIGVycm9yc19hcmVfaWRlbnRpY2FsLCBOVUxMKQorCSAgJiYgVHlw ZTo6YXJlX2lkZW50aWNhbF9jbXBfdGFncyh0aGlzLT52YWxfdHlwZSgpLCB0 LT52YWxfdHlwZSgpLAorCQkJCQkgIGNtcF90YWdzLCBlcnJvcnNfYXJlX2lk ZW50aWNhbCwKKwkJCQkJICBOVUxMKSk7CiB9CiAKIC8vIEhhc2ggY29kZS4K QEAgLTg1MTAsMTEgKzg1MzIsMTEgQEAgQ2hhbm5lbF90eXBlOjpkb19oYXNo X2Zvcl9tZXRob2QoR29nbyogZwogLy8gV2hldGhlciB0aGlzIHR5cGUgaXMg dGhlIHNhbWUgYXMgVC4KIAogYm9vbAotQ2hhbm5lbF90eXBlOjppc19pZGVu dGljYWwoY29uc3QgQ2hhbm5lbF90eXBlKiB0LAorQ2hhbm5lbF90eXBlOjpp c19pZGVudGljYWwoY29uc3QgQ2hhbm5lbF90eXBlKiB0LCBDbXBfdGFncyBj bXBfdGFncywKIAkJCSAgIGJvb2wgZXJyb3JzX2FyZV9pZGVudGljYWwpIGNv bnN0CiB7Ci0gIGlmICghVHlwZTo6YXJlX2lkZW50aWNhbCh0aGlzLT5lbGVt ZW50X3R5cGUoKSwgdC0+ZWxlbWVudF90eXBlKCksCi0JCQkgICBlcnJvcnNf YXJlX2lkZW50aWNhbCwgTlVMTCkpCisgIGlmICghVHlwZTo6YXJlX2lkZW50 aWNhbF9jbXBfdGFncyh0aGlzLT5lbGVtZW50X3R5cGUoKSwgdC0+ZWxlbWVu dF90eXBlKCksCisJCQkJICAgIGNtcF90YWdzLCBlcnJvcnNfYXJlX2lkZW50 aWNhbCwgTlVMTCkpCiAgICAgcmV0dXJuIGZhbHNlOwogICByZXR1cm4gKHRo aXMtPm1heV9zZW5kXyA9PSB0LT5tYXlfc2VuZF8KIAkgICYmIHRoaXMtPm1h eV9yZWNlaXZlXyA9PSB0LT5tYXlfcmVjZWl2ZV8pOwpAQCAtODkyMCw3ICs4 OTQyLDcgQEAgSW50ZXJmYWNlX3R5cGU6OmlzX3VuZXhwb3J0ZWRfbWV0aG9k KEdvZwogLy8gV2hldGhlciB0aGlzIHR5cGUgaXMgaWRlbnRpY2FsIHdpdGgg VC4KIAogYm9vbAotSW50ZXJmYWNlX3R5cGU6OmlzX2lkZW50aWNhbChjb25z dCBJbnRlcmZhY2VfdHlwZSogdCwKK0ludGVyZmFjZV90eXBlOjppc19pZGVu dGljYWwoY29uc3QgSW50ZXJmYWNlX3R5cGUqIHQsIENtcF90YWdzIGNtcF90 YWdzLAogCQkJICAgICBib29sIGVycm9yc19hcmVfaWRlbnRpY2FsKSBjb25z dAogewogICAvLyBJZiBtZXRob2RzIGhhdmUgbm90IGJlZW4gZmluYWxpemVk LCB0aGVuIHdlIGFyZSBhc2tpbmcgd2hldGhlcgpAQCAtODk1MSw4ICs4OTcz LDggQEAgSW50ZXJmYWNlX3R5cGU6OmlzX2lkZW50aWNhbChjb25zdCBJbnRl cgogICAgICAgaWYgKHAxID09IHRoaXMtPmFsbF9tZXRob2RzXy0+ZW5kKCkp CiAJYnJlYWs7CiAgICAgICBpZiAocDEtPm5hbWUoKSAhPSBwMi0+bmFtZSgp Ci0JICB8fCAhVHlwZTo6YXJlX2lkZW50aWNhbChwMS0+dHlwZSgpLCBwMi0+ dHlwZSgpLAotCQkJCSAgZXJyb3JzX2FyZV9pZGVudGljYWwsIE5VTEwpKQor CSAgfHwgIVR5cGU6OmFyZV9pZGVudGljYWxfY21wX3RhZ3MocDEtPnR5cGUo KSwgcDItPnR5cGUoKSwgY21wX3RhZ3MsCisJCQkJCSAgIGVycm9yc19hcmVf aWRlbnRpY2FsLCBOVUxMKSkKIAlicmVhazsKICAgICB9CiAKQEAgLTkxNTAs NyArOTE3Miw4IEBAIEludGVyZmFjZV90eXBlOjppbXBsZW1lbnRzX2ludGVy ZmFjZShjb24KICAgICAgIEZ1bmN0aW9uX3R5cGUqIG1fZm5fdHlwZSA9IG0t PnR5cGUoKS0+ZnVuY3Rpb25fdHlwZSgpOwogICAgICAgZ29fYXNzZXJ0KHBf Zm5fdHlwZSAhPSBOVUxMICYmIG1fZm5fdHlwZSAhPSBOVUxMKTsKICAgICAg IHN0ZDo6c3RyaW5nIHN1YnJlYXNvbjsKLSAgICAgIGlmICghcF9mbl90eXBl LT5pc19pZGVudGljYWwobV9mbl90eXBlLCB0cnVlLCB0cnVlLCAmc3VicmVh c29uKSkKKyAgICAgIGlmICghcF9mbl90eXBlLT5pc19pZGVudGljYWwobV9m bl90eXBlLCB0cnVlLCBDT01QQVJFX1RBR1MsIHRydWUsCisJCQkJICAgJnN1 YnJlYXNvbikpCiAJewogCSAgaWYgKHJlYXNvbiAhPSBOVUxMKQogCSAgICB7 CkluZGV4OiBnY2MvZ28vZ29mcm9udGVuZC90eXBlcy5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGdjYy9nby9nb2Zyb250ZW5kL3R5cGVzLmgJKHJl dmlzaW9uIDI0ODA4MSkKKysrIGdjYy9nby9nb2Zyb250ZW5kL3R5cGVzLmgJ KHdvcmtpbmcgY29weSkKQEAgLTU2OCw2ICs1NjgsMjIgQEAgY2xhc3MgVHlw ZQogICBhcmVfaWRlbnRpY2FsKGNvbnN0IFR5cGUqIGxocywgY29uc3QgVHlw ZSogcmhzLCBib29sIGVycm9yc19hcmVfaWRlbnRpY2FsLAogCQlzdGQ6OnN0 cmluZyogcmVhc29uKTsKIAorICAvLyBBbiBhcmd1bWVudCB0byBhcmVfaWRl bnRpY2FsX2NtcF90YWdzLCBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90Cisg IC8vIHRvIGNvbXBhcmUgc3RydWN0IGZpZWxkIHRhZ3MuCisgIGVudW0gQ21w X3RhZ3MgeworICAgIENPTVBBUkVfVEFHUywKKyAgICBJR05PUkVfVEFHUwor ICB9OworCisgIC8vIFJldHVybiB0cnVlIGlmIHR3byB0eXBlcyBhcmUgaWRl bnRpY2FsLiAgVGhpcyBpcyBsaWtlIHRoZQorICAvLyBhcmVfaWRlbnRpY2Fs IGZ1bmN0aW9uLCBidXQgYWxzbyB0YWtlcyBhIENNUF9UQUdTIGFyZ3VtZW50 CisgIC8vIGluZGljYXRpbmcgd2hldGhlciB0byBjb21wYXJlIHN0cnVjdCB0 YWdzLiAgT3RoZXJ3aXNlIHRoZQorICAvLyBwYXJhbWV0ZXJzIGFyZSBhcyBm b3IgYXJlX2lkZW50aWNhbC4KKyAgc3RhdGljIGJvb2wKKyAgYXJlX2lkZW50 aWNhbF9jbXBfdGFncyhjb25zdCBUeXBlKiBsaHMsIGNvbnN0IFR5cGUqIHJo cywKKwkJCSBDbXBfdGFncywgYm9vbCBlcnJvcnNfYXJlX2lkZW50aWNhbCwK KwkJCSBzdGQ6OnN0cmluZyogcmVhc29uKTsKKwogICAvLyBSZXR1cm4gdHJ1 ZSBpZiB0d28gdHlwZXMgYXJlIGNvbXBhdGlibGUgZm9yIHVzZSBpbiBhIGJp bmFyeQogICAvLyBvcGVyYXRpb24sIG90aGVyIHRoYW4gYSBzaGlmdCwgY29t cGFyaXNvbiwgb3IgY2hhbm5lbCBzZW5kLiAgVGhpcwogICAvLyBpcyBhbiBl cXVpdmFsZW5jZSByZWxhdGlvbi4KQEAgLTE4OTksNyArMTkxNSw3IEBAIGNs YXNzIEZ1bmN0aW9uX3R5cGUgOiBwdWJsaWMgVHlwZQogICAvLyBXaGV0aGVy IHRoaXMgdHlwZSBpcyB0aGUgc2FtZSBhcyBULgogICBib29sCiAgIGlzX2lk ZW50aWNhbChjb25zdCBGdW5jdGlvbl90eXBlKiB0LCBib29sIGlnbm9yZV9y ZWNlaXZlciwKLQkgICAgICAgYm9vbCBlcnJvcnNfYXJlX2lkZW50aWNhbCwg c3RkOjpzdHJpbmcqKSBjb25zdDsKKwkgICAgICAgQ21wX3RhZ3MsIGJvb2wg ZXJyb3JzX2FyZV9pZGVudGljYWwsIHN0ZDo6c3RyaW5nKikgY29uc3Q7CiAK ICAgLy8gUmVjb3JkIHRoYXQgdGhpcyBpcyBhIHZhcmFyZ3MgZnVuY3Rpb24u CiAgIHZvaWQKQEAgLTIyOTMsNyArMjMwOSw4IEBAIGNsYXNzIFN0cnVjdF90 eXBlIDogcHVibGljIFR5cGUKIAogICAvLyBXaGV0aGVyIHRoaXMgdHlwZSBp cyBpZGVudGljYWwgd2l0aCBULgogICBib29sCi0gIGlzX2lkZW50aWNhbChj b25zdCBTdHJ1Y3RfdHlwZSogdCwgYm9vbCBlcnJvcnNfYXJlX2lkZW50aWNh bCkgY29uc3Q7CisgIGlzX2lkZW50aWNhbChjb25zdCBTdHJ1Y3RfdHlwZSog dCwgQ21wX3RhZ3MsCisJICAgICAgIGJvb2wgZXJyb3JzX2FyZV9pZGVudGlj YWwpIGNvbnN0OwogCiAgIC8vIFJldHVybiB3aGV0aGVyIE5BTUUgaXMgYSBs b2NhbCBmaWVsZCB3aGljaCBpcyBub3QgZXhwb3J0ZWQuICBUaGlzCiAgIC8v IGlzIG9ubHkgdXNlZCBmb3IgYmV0dGVyIGVycm9yIHJlcG9ydGluZy4KQEAg LTI0OTUsNyArMjUxMiw4IEBAIGNsYXNzIEFycmF5X3R5cGUgOiBwdWJsaWMg VHlwZQogCiAgIC8vIFdoZXRoZXIgdGhpcyB0eXBlIGlzIGlkZW50aWNhbCB3 aXRoIFQuCiAgIGJvb2wKLSAgaXNfaWRlbnRpY2FsKGNvbnN0IEFycmF5X3R5 cGUqIHQsIGJvb2wgZXJyb3JzX2FyZV9pZGVudGljYWwpIGNvbnN0OworICBp c19pZGVudGljYWwoY29uc3QgQXJyYXlfdHlwZSogdCwgQ21wX3RhZ3MsCisJ ICAgICAgIGJvb2wgZXJyb3JzX2FyZV9pZGVudGljYWwpIGNvbnN0OwogCiAg IC8vIFJldHVybiBhbiBleHByZXNzaW9uIGZvciB0aGUgcG9pbnRlciB0byB0 aGUgdmFsdWVzIGluIGFuIGFycmF5LgogICBFeHByZXNzaW9uKgpAQCAtMjY1 Niw3ICsyNjc0LDggQEAgY2xhc3MgTWFwX3R5cGUgOiBwdWJsaWMgVHlwZQog CiAgIC8vIFdoZXRoZXIgdGhpcyB0eXBlIGlzIGlkZW50aWNhbCB3aXRoIFQu CiAgIGJvb2wKLSAgaXNfaWRlbnRpY2FsKGNvbnN0IE1hcF90eXBlKiB0LCBi b29sIGVycm9yc19hcmVfaWRlbnRpY2FsKSBjb25zdDsKKyAgaXNfaWRlbnRp Y2FsKGNvbnN0IE1hcF90eXBlKiB0LCBDbXBfdGFncywKKwkgICAgICAgYm9v bCBlcnJvcnNfYXJlX2lkZW50aWNhbCkgY29uc3Q7CiAKICAgLy8gSW1wb3J0 IGEgbWFwIHR5cGUuCiAgIHN0YXRpYyBNYXBfdHlwZSoKQEAgLTI3NzMsNyAr Mjc5Miw4IEBAIGNsYXNzIENoYW5uZWxfdHlwZSA6IHB1YmxpYyBUeXBlCiAK ICAgLy8gV2hldGhlciB0aGlzIHR5cGUgaXMgaWRlbnRpY2FsIHdpdGggVC4K ICAgYm9vbAotICBpc19pZGVudGljYWwoY29uc3QgQ2hhbm5lbF90eXBlKiB0 LCBib29sIGVycm9yc19hcmVfaWRlbnRpY2FsKSBjb25zdDsKKyAgaXNfaWRl bnRpY2FsKGNvbnN0IENoYW5uZWxfdHlwZSogdCwgQ21wX3RhZ3MsCisJICAg ICAgIGJvb2wgZXJyb3JzX2FyZV9pZGVudGljYWwpIGNvbnN0OwogCiAgIC8v IEltcG9ydCBhIGNoYW5uZWwgdHlwZS4KICAgc3RhdGljIENoYW5uZWxfdHlw ZSoKQEAgLTI4ODMsNyArMjkwMyw4IEBAIGNsYXNzIEludGVyZmFjZV90eXBl IDogcHVibGljIFR5cGUKICAgLy8gV2hldGhlciB0aGlzIHR5cGUgaXMgaWRl bnRpY2FsIHdpdGggVC4gIFJFQVNPTiBpcyBhcyBpbgogICAvLyBpbXBsZW1l bnRzX2ludGVyZmFjZS4KICAgYm9vbAotICBpc19pZGVudGljYWwoY29uc3Qg SW50ZXJmYWNlX3R5cGUqIHQsIGJvb2wgZXJyb3JzX2FyZV9pZGVudGljYWwp IGNvbnN0OworICBpc19pZGVudGljYWwoY29uc3QgSW50ZXJmYWNlX3R5cGUq IHQsIENtcF90YWdzLAorCSAgICAgICBib29sIGVycm9yc19hcmVfaWRlbnRp Y2FsKSBjb25zdDsKIAogICAvLyBXaGV0aGVyIHdlIGNhbiBhc3NpZ24gVCB0 byB0aGlzIHR5cGUuICBpc19pZGVudGljYWwgaXMga25vd24gdG8KICAgLy8g YmUgZmFsc2UuCg== --001a113d164e201c88054fd03ec7--