From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) by sourceware.org (Postfix) with ESMTPS id 9D15C3858D35 for ; Wed, 28 Jun 2023 14:34:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9D15C3858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-51a52a7d859so1867418a12.0 for ; Wed, 28 Jun 2023 07:34:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687962862; x=1690554862; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=OKEzsnI2STKdaptztGXFh2IEFGVQNd42ctt20u7Eo2w=; b=CYbzaw3SH9j61ywal5MmZ8jTaETZMlWebhp0tuelDjDrWfZSiqLpAvdu8NK9vtiMs6 Zm2vEjnuSQwycr5+/01egmlrsnLUHVwCSm5W1u+3Q4My5K8BxW07wVIQ66750bdon5YA yxPJT5QPt6zBLema2t9n3JKqrqbvCs09VXkR7e/kACgAnm/Kvm593L3CQx7zFzPCyQZ8 1nMrgNknodiLCRCAtVkfcLQkdPQmRnNDcqezcv4XQyvVxcCFL+olZgsfpJFRfF93RxUm fa2+Tg+WPNZ2mOQCJZE5Iye2g2xbYZ67HHYKqNNuXiNeykBD5XDKEzkWGT+OJNWlwS06 qtKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687962862; x=1690554862; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=OKEzsnI2STKdaptztGXFh2IEFGVQNd42ctt20u7Eo2w=; b=dyzMH7hZxIXuogbIntOQPRrtKAfMNjSb4WosEC47vj1fo+Y9VSG8G7uJ9N6I55zWEz Pi6H76kc6ky2hKUlosIzcXxpxXPELWfH75C1UWZI/gDj67uHJTLZzXh7FQAkfoPp1yxB YMB75DCwzGUaRtBx+vpN3jm7vK6ReXDg4kelIPb9yVyD/aMZQDlaM1ga5h6fFyrCdYsJ 4x4df3GR6griDnKW3GgNkd0tQ+lXX7AyJSWCwCf2f1V2TafN5zg0rdwJaa5PmrOGZyOO KuXFQkwCrBu7Jew97SITD4/GjnA6mCIYSSYmjArkkKfKCvHNP5bEJOW/jyqdmbWPxEJ7 66DA== X-Gm-Message-State: AC+VfDyUnJPX50vi3tUH8z6rrfCsvBhhsJBrMmDc2NEkHIdy8V36ddu8 n5gl3VIKH9xMF6KaGntaQ+aw2KBrr8n2/bkzEVHmruD5BRw1ag== X-Google-Smtp-Source: ACHHUZ5Fd3UBp2RvV96X9/IG5PRRSKH68+TgK/JyxlR2ZsS7pHcvPALoUyyolGh5QUnBhiKsY80UzGdwgodq35NBzso= X-Received: by 2002:aa7:c313:0:b0:51b:d59f:8518 with SMTP id l19-20020aa7c313000000b0051bd59f8518mr1460291edq.16.1687962862012; Wed, 28 Jun 2023 07:34:22 -0700 (PDT) MIME-Version: 1.0 From: Uros Bizjak Date: Wed, 28 Jun 2023 16:34:10 +0200 Message-ID: Subject: [committed] final+varasm: Change return type of predicate functions from int to bool To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="000000000000c8e78f05ff317afd" X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000c8e78f05ff317afd Content-Type: text/plain; charset="UTF-8" Also change some internal variables to bool and change return type of compute_alignments to void. gcc/ChangeLog: * output.h (leaf_function_p): Change return type from int to bool. (final_forward_branch_p): Ditto. (only_leaf_regs_used): Ditto. (maybe_assemble_visibility): Ditto. * varasm.h (supports_one_only): Ditto. * rtl.h (compute_alignments): Change return type from int to void. * final.cc (app_on): Change return type from int to bool. (compute_alignments): Change return type from int to void and adjust function body accordingly. (shorten_branches): Change "something_changed" variable type from int to bool. (leaf_function_p): Change return type from int to bool and adjust function body accordingly. (final_forward_branch_p): Ditto. (only_leaf_regs_used): Ditto. * varasm.cc (contains_pointers_p): Change return type from int to bool and adjust function body accordingly. (compare_constant): Ditto. (maybe_assemble_visibility): Ditto. (supports_one_only): Ditto. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Uros. --000000000000c8e78f05ff317afd Content-Type: text/plain; charset="US-ASCII"; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ljftgq8l0 ZGlmZiAtLWdpdCBhL2djYy9maW5hbC5jYyBiL2djYy9maW5hbC5jYwppbmRleCBlNjE0NDkxYTY5 YS4uZGQzZTIyNTQ3YWMgMTAwNjQ0Ci0tLSBhL2djYy9maW5hbC5jYworKysgYi9nY2MvZmluYWwu Y2MKQEAgLTE2Myw5ICsxNjMsOSBAQCBzdGF0aWMgaW50IGluc25fY291bnRlciA9IDA7CiAKIHN0 YXRpYyBpbnQgYmxvY2tfZGVwdGg7CiAKLS8qIE5vbnplcm8gaWYgaGF2ZSBlbmFibGVkIEFQUCBw cm9jZXNzaW5nIG9mIG91ciBhc3NlbWJsZXIgb3V0cHV0LiAgKi8KKy8qIFRydWUgaWYgaGF2ZSBl bmFibGVkIEFQUCBwcm9jZXNzaW5nIG9mIG91ciBhc3NlbWJsZXIgb3V0cHV0LiAgKi8KIAotc3Rh dGljIGludCBhcHBfb247CitzdGF0aWMgYm9vbCBhcHBfb247CiAKIC8qIElmIHdlIGFyZSBvdXRw dXR0aW5nIGFuIGluc24gc2VxdWVuY2UsIHRoaXMgY29udGFpbnMgdGhlIHNlcXVlbmNlIHJ0eC4K ICAgIFplcm8gb3RoZXJ3aXNlLiAgKi8KQEAgLTYwMyw3ICs2MDMsNyBAQCBpbnNuX2N1cnJlbnRf cmVmZXJlbmNlX2FkZHJlc3MgKHJ0eF9pbnNuICpicmFuY2gpCiAMCiAvKiBDb21wdXRlIGJyYW5j aCBhbGlnbm1lbnRzIGJhc2VkIG9uIENGRyBwcm9maWxlLiAgKi8KIAotdW5zaWduZWQgaW50Cit2 b2lkCiBjb21wdXRlX2FsaWdubWVudHMgKHZvaWQpCiB7CiAgIGJhc2ljX2Jsb2NrIGJiOwpAQCAt NjE3LDcgKzYxNyw3IEBAIGNvbXB1dGVfYWxpZ25tZW50cyAodm9pZCkKIAogICAvKiBJZiBub3Qg b3B0aW1pemluZyBvciBvcHRpbWl6aW5nIGZvciBzaXplLCBkb24ndCBhc3NpZ24gYW55IGFsaWdu bWVudHMuICAqLwogICBpZiAoISBvcHRpbWl6ZSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6 ZV9wIChjZnVuKSkKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm47CiAKICAgaWYgKGR1bXBfZmls ZSkKICAgICB7CkBAIC03MjEsNyArNzIxLDYgQEAgY29tcHV0ZV9hbGlnbm1lbnRzICh2b2lkKQog CiAgIGxvb3Bfb3B0aW1pemVyX2ZpbmFsaXplICgpOwogICBmcmVlX2RvbWluYW5jZV9pbmZvIChD RElfRE9NSU5BVE9SUyk7Ci0gIHJldHVybiAwOwogfQogCiAvKiBHcm93IHRoZSBMQUJFTF9BTElH TiBhcnJheSBhZnRlciBuZXcgbGFiZWxzIGFyZSBjcmVhdGVkLiAgKi8KQEAgLTc5MCw3ICs3ODks OCBAQCBwdWJsaWM6CiAgIC8qIG9wdF9wYXNzIG1ldGhvZHM6ICovCiAgIHVuc2lnbmVkIGludCBl eGVjdXRlIChmdW5jdGlvbiAqKSBmaW5hbCBvdmVycmlkZQogICB7Ci0gICAgcmV0dXJuIGNvbXB1 dGVfYWxpZ25tZW50cyAoKTsKKyAgICBjb21wdXRlX2FsaWdubWVudHMgKCk7CisgICAgcmV0dXJu IDA7CiAgIH0KIAogfTsgLy8gY2xhc3MgcGFzc19jb21wdXRlX2FsaWdubWVudHMKQEAgLTgyMiw3 ICs4MjIsNyBAQCBzaG9ydGVuX2JyYW5jaGVzIChydHhfaW5zbiAqZmlyc3QpCiAgIGludCBtYXhf dWlkOwogICBpbnQgaTsKICAgcnR4X2luc24gKnNlcTsKLSAgaW50IHNvbWV0aGluZ19jaGFuZ2Vk ID0gMTsKKyAgYm9vbCBzb21ldGhpbmdfY2hhbmdlZCA9IHRydWU7CiAgIGNoYXIgKnZhcnlpbmdf bGVuZ3RoOwogICBydHggYm9keTsKICAgaW50IHVpZDsKQEAgLTExMDMsNyArMTEwMyw3IEBAIHNo b3J0ZW5fYnJhbmNoZXMgKHJ0eF9pbnNuICpmaXJzdCkKIAogICB3aGlsZSAoc29tZXRoaW5nX2No YW5nZWQpCiAgICAgewotICAgICAgc29tZXRoaW5nX2NoYW5nZWQgPSAwOworICAgICAgc29tZXRo aW5nX2NoYW5nZWQgPSBmYWxzZTsKICAgICAgIGluc25fY3VycmVudF9hbGlnbiA9IE1BWF9DT0RF X0FMSUdOIC0gMTsKICAgICAgIGZvciAoaW5zbl9jdXJyZW50X2FkZHJlc3MgPSAwLCBpbnNuID0g Zmlyc3Q7CiAJICAgaW5zbiAhPSAwOwpAQCAtMTEzNiw3ICsxMTM2LDcgQEAgc2hvcnRlbl9icmFu Y2hlcyAocnR4X2luc24gKmZpcnN0KQogCQkJewogCQkJICBsb2cgPSBuZXdsb2c7CiAJCQkgIExB QkVMX1RPX0FMSUdOTUVOVCAoaW5zbikgPSBsb2c7Ci0JCQkgIHNvbWV0aGluZ19jaGFuZ2VkID0g MTsKKwkJCSAgc29tZXRoaW5nX2NoYW5nZWQgPSB0cnVlOwogCQkJfQogCQkgICAgfQogCQl9CkBA IC0xMjc0LDcgKzEyNzQsNyBAQCBzaG9ydGVuX2JyYW5jaGVzIChydHhfaW5zbiAqZmlyc3QpCiAJ CSAgICAgICAqIEdFVF9NT0RFX1NJWkUgKHRhYmxlLT5nZXRfZGF0YV9tb2RlICgpKSk7CiAJCSAg aW5zbl9jdXJyZW50X2FkZHJlc3MgKz0gaW5zbl9sZW5ndGhzW3VpZF07CiAJCSAgaWYgKGluc25f bGVuZ3Roc1t1aWRdICE9IG9sZF9sZW5ndGgpCi0JCSAgICBzb21ldGhpbmdfY2hhbmdlZCA9IDE7 CisJCSAgICBzb21ldGhpbmdfY2hhbmdlZCA9IHRydWU7CiAJCX0KIAogCSAgICAgIGNvbnRpbnVl OwpAQCAtMTMzMiw3ICsxMzMyLDcgQEAgc2hvcnRlbl9icmFuY2hlcyAocnR4X2luc24gKmZpcnN0 KQogCQkgICAgICBpZiAoIWluY3JlYXNpbmcgfHwgaW5uZXJfbGVuZ3RoID4gaW5zbl9sZW5ndGhz W2lubmVyX3VpZF0pCiAJCQl7CiAJCQkgIGluc25fbGVuZ3Roc1tpbm5lcl91aWRdID0gaW5uZXJf bGVuZ3RoOwotCQkJICBzb21ldGhpbmdfY2hhbmdlZCA9IDE7CisJCQkgIHNvbWV0aGluZ19jaGFu Z2VkID0gdHJ1ZTsKIAkJCX0KIAkJICAgICAgZWxzZQogCQkJaW5uZXJfbGVuZ3RoID0gaW5zbl9s ZW5ndGhzW2lubmVyX3VpZF07CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBzaG9ydGVuX2JyYW5jaGVz IChydHhfaW5zbiAqZmlyc3QpCiAJICAgICAgJiYgKCFpbmNyZWFzaW5nIHx8IG5ld19sZW5ndGgg PiBpbnNuX2xlbmd0aHNbdWlkXSkpCiAJICAgIHsKIAkgICAgICBpbnNuX2xlbmd0aHNbdWlkXSA9 IG5ld19sZW5ndGg7Ci0JICAgICAgc29tZXRoaW5nX2NoYW5nZWQgPSAxOworCSAgICAgIHNvbWV0 aGluZ19jaGFuZ2VkID0gdHJ1ZTsKIAkgICAgfQogCSAgZWxzZQogCSAgICBpbnNuX2N1cnJlbnRf YWRkcmVzcyArPSBpbnNuX2xlbmd0aHNbdWlkXSAtIG5ld19sZW5ndGg7CkBAIC00MDQzLDkgKzQw NDMsOSBAQCBhc21fZnByaW50ZiAoRklMRSAqZmlsZSwgY29uc3QgY2hhciAqcCwgLi4uKQogICB2 YV9lbmQgKGFyZ3B0cik7CiB9CiAMCi0vKiBSZXR1cm4gbm9uemVybyBpZiB0aGlzIGZ1bmN0aW9u IGhhcyBubyBmdW5jdGlvbiBjYWxscy4gICovCisvKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGZ1bmN0 aW9uIGhhcyBubyBmdW5jdGlvbiBjYWxscy4gICovCiAKLWludAorYm9vbAogbGVhZl9mdW5jdGlv bl9wICh2b2lkKQogewogICBydHhfaW5zbiAqaW5zbjsKQEAgLTQwNTYsMjkgKzQwNTYsMjkgQEAg bGVhZl9mdW5jdGlvbl9wICh2b2lkKQogICAvKiBTb21lIGJhY2stZW5kcyAoZS5nLiBzMzkwKSB3 YW50IGxlYWYgZnVuY3Rpb25zIHRvIHN0YXkgbGVhZgogICAgICBmdW5jdGlvbnMgZXZlbiBpZiB0 aGV5IGNhbGwgbWNvdW50LiAgKi8KICAgaWYgKGNydGwtPnByb2ZpbGUgJiYgIXRhcmdldG0ua2Vl cF9sZWFmX3doZW5fcHJvZmlsZWQgKCkpCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNl OwogCiAgIGZvciAoaW5zbiA9IGdldF9pbnNucyAoKTsgaW5zbjsgaW5zbiA9IE5FWFRfSU5TTiAo aW5zbikpCiAgICAgewogICAgICAgaWYgKENBTExfUCAoaW5zbikKIAkgICYmICEgU0lCTElOR19D QUxMX1AgKGluc24pCiAJICAmJiAhIEZBS0VfQ0FMTF9QIChpbnNuKSkKLQlyZXR1cm4gMDsKKwly ZXR1cm4gZmFsc2U7CiAgICAgICBpZiAoTk9OSlVNUF9JTlNOX1AgKGluc24pCiAJICAmJiBHRVRf Q09ERSAoUEFUVEVSTiAoaW5zbikpID09IFNFUVVFTkNFCiAJICAmJiBDQUxMX1AgKFhWRUNFWFAg KFBBVFRFUk4gKGluc24pLCAwLCAwKSkKIAkgICYmICEgU0lCTElOR19DQUxMX1AgKFhWRUNFWFAg KFBBVFRFUk4gKGluc24pLCAwLCAwKSkpCi0JcmV0dXJuIDA7CisJcmV0dXJuIGZhbHNlOwogICAg IH0KIAotICByZXR1cm4gMTsKKyAgcmV0dXJuIHRydWU7CiB9CiAKLS8qIFJldHVybiAxIGlmIGJy YW5jaCBpcyBhIGZvcndhcmQgYnJhbmNoLgorLyogUmV0dXJuIHRydWUgaWYgYnJhbmNoIGlzIGEg Zm9yd2FyZCBicmFuY2guCiAgICBVc2VzIGluc25fc2h1aWQgYXJyYXksIHNvIGl0IHdvcmtzIG9u bHkgaW4gdGhlIGZpbmFsIHBhc3MuICBNYXkgYmUgdXNlZCBieQogICAgb3V0cHV0IHRlbXBsYXRl cyB0byBjdXN0b21hcnkgYWRkIGJyYW5jaCBwcmVkaWN0aW9uIGhpbnRzLgogICovCi1pbnQKK2Jv b2wKIGZpbmFsX2ZvcndhcmRfYnJhbmNoX3AgKHJ0eF9pbnNuICppbnNuKQogewogICBpbnQgaW5z bl9pZCwgbGFiZWxfaWQ7CkBAIC00MTAyLDEwICs0MTAyLDEwIEBAIGZpbmFsX2ZvcndhcmRfYnJh bmNoX3AgKHJ0eF9pbnNuICppbnNuKQogCiAjaWZkZWYgTEVBRl9SRUdJU1RFUlMKIAotLyogUmV0 dXJuIDEgaWYgdGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHJlZ2lzdGVycyB0aGF0IGNhbiBi ZQorLyogUmV0dXJuIGJvb2wgaWYgdGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHJlZ2lzdGVy cyB0aGF0IGNhbiBiZQogICAgc2FmZWx5IHJlbnVtYmVyZWQuICAqLwogCi1pbnQKK2Jvb2wKIG9u bHlfbGVhZl9yZWdzX3VzZWQgKHZvaWQpCiB7CiAgIGludCBpOwpAQCAtNDExNCwxNSArNDExNCwx NSBAQCBvbmx5X2xlYWZfcmVnc191c2VkICh2b2lkKQogICBmb3IgKGkgPSAwOyBpIDwgRklSU1Rf UFNFVURPX1JFR0lTVEVSOyBpKyspCiAgICAgaWYgKChkZl9yZWdzX2V2ZXJfbGl2ZV9wIChpKSB8 fCBnbG9iYWxfcmVnc1tpXSkKIAkmJiAhIHBlcm1pdHRlZF9yZWdfaW5fbGVhZl9mdW5jdGlvbnNb aV0pCi0gICAgICByZXR1cm4gMDsKKyAgICAgIHJldHVybiBmYWxzZTsKIAogICBpZiAoY3J0bC0+ dXNlc19waWNfb2Zmc2V0X3RhYmxlCiAgICAgICAmJiBwaWNfb2Zmc2V0X3RhYmxlX3J0eCAhPSAw CiAgICAgICAmJiBSRUdfUCAocGljX29mZnNldF90YWJsZV9ydHgpCiAgICAgICAmJiAhIHBlcm1p dHRlZF9yZWdfaW5fbGVhZl9mdW5jdGlvbnNbUkVHTk8gKHBpY19vZmZzZXRfdGFibGVfcnR4KV0p Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNlOwogCi0gIHJldHVybiAxOworICByZXR1 cm4gdHJ1ZTsKIH0KIAogLyogU2NhbiBhbGwgaW5zdHJ1Y3Rpb25zIGFuZCByZW51bWJlciBhbGwg cmVnaXN0ZXJzIGludG8gdGhvc2UKZGlmZiAtLWdpdCBhL2djYy9vdXRwdXQuaCBiL2djYy9vdXRw dXQuaAppbmRleCA4NzdkMmFmYTU1Yi4uNzZjZmQ1OGMxZTYgMTAwNjQ0Ci0tLSBhL2djYy9vdXRw dXQuaAorKysgYi9nY2Mvb3V0cHV0LmgKQEAgLTEyOCwxNyArMTI4LDE3IEBAIGV4dGVybiBpbnQg c3ByaW50X3VsIChjaGFyICosIHVuc2lnbmVkIGxvbmcpOwogZXh0ZXJuIHZvaWQgYXNtX2Zwcmlu dGYgKEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIgKnAsIC4uLikKICAgICAgQVRUUklCVVRFX0FTTV9G UFJJTlRGKDIsIDMpOwogCi0vKiBSZXR1cm4gbm9uemVybyBpZiB0aGlzIGZ1bmN0aW9uIGhhcyBu byBmdW5jdGlvbiBjYWxscy4gICovCi1leHRlcm4gaW50IGxlYWZfZnVuY3Rpb25fcCAodm9pZCk7 CisvKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGZ1bmN0aW9uIGhhcyBubyBmdW5jdGlvbiBjYWxscy4g ICovCitleHRlcm4gYm9vbCBsZWFmX2Z1bmN0aW9uX3AgKHZvaWQpOwogCi0vKiBSZXR1cm4gMSBp ZiBicmFuY2ggaXMgYSBmb3J3YXJkIGJyYW5jaC4KKy8qIFJldHVybiB0cnVlIGlmIGJyYW5jaCBp cyBhIGZvcndhcmQgYnJhbmNoLgogICAgVXNlcyBpbnNuX3NodWlkIGFycmF5LCBzbyBpdCB3b3Jr cyBvbmx5IGluIHRoZSBmaW5hbCBwYXNzLiAgTWF5IGJlIHVzZWQgYnkKICAgIG91dHB1dCB0ZW1w bGF0ZXMgdG8gYWRkIGJyYW5jaCBwcmVkaWN0aW9uIGhpbnRzLCBmb3IgZXhhbXBsZS4gICovCi1l eHRlcm4gaW50IGZpbmFsX2ZvcndhcmRfYnJhbmNoX3AgKHJ0eF9pbnNuICopOworZXh0ZXJuIGJv b2wgZmluYWxfZm9yd2FyZF9icmFuY2hfcCAocnR4X2luc24gKik7CiAKLS8qIFJldHVybiAxIGlm IHRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSByZWdpc3RlcnMgdGhhdCBjYW4gYmUKKy8qIFJl dHVybiB0cnVlIGlmIHRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSByZWdpc3RlcnMgdGhhdCBj YW4gYmUKICAgIHNhZmVseSByZW51bWJlcmVkLiAgKi8KLWV4dGVybiBpbnQgb25seV9sZWFmX3Jl Z3NfdXNlZCAodm9pZCk7CitleHRlcm4gYm9vbCBvbmx5X2xlYWZfcmVnc191c2VkICh2b2lkKTsK IAogLyogU2NhbiBJTl9SVFggYW5kIGl0cyBzdWJleHByZXNzaW9ucywgYW5kIHJlbnVtYmVyIGFs bCByZWdzIGludG8gdGhvc2UKICAgIGF2YWlsYWJsZSBpbiBsZWFmIGZ1bmN0aW9ucy4gICovCkBA IC02MjEsNyArNjIxLDcgQEAgZXh0ZXJuIHZvaWQgZGVmYXVsdF9lbGZfaW50ZXJuYWxfbGFiZWwg KEZJTEUgKiwgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBsb25nKTsKIAogZXh0ZXJuIHZvaWQgZGVm YXVsdF9lbGZfaW5pdF9hcnJheV9hc21fb3V0X2NvbnN0cnVjdG9yIChydHgsIGludCk7CiBleHRl cm4gdm9pZCBkZWZhdWx0X2VsZl9maW5pX2FycmF5X2FzbV9vdXRfZGVzdHJ1Y3RvciAocnR4LCBp bnQpOwotZXh0ZXJuIGludCBtYXliZV9hc3NlbWJsZV92aXNpYmlsaXR5ICh0cmVlKTsKK2V4dGVy biBib29sIG1heWJlX2Fzc2VtYmxlX3Zpc2liaWxpdHkgKHRyZWUpOwogCiBleHRlcm4gaW50IGRl ZmF1bHRfYWRkcmVzc19jb3N0IChydHgsIG1hY2hpbmVfbW9kZSwgYWRkcl9zcGFjZV90LCBib29s KTsKIApkaWZmIC0tZ2l0IGEvZ2NjL3J0bC5oIGIvZ2NjL3J0bC5oCmluZGV4IDljNjgwM2YwNDNl Li4wOThkYzRjY2MxYyAxMDA2NDQKLS0tIGEvZ2NjL3J0bC5oCisrKyBiL2djYy9ydGwuaApAQCAt NDUwOCw3ICs0NTA4LDcgQEAgZXh0ZXJuIHJ0eCBjYW5vbl9jb25kaXRpb24gKHJ0eCk7CiBleHRl cm4gdm9pZCBzaW1wbGlmeV91c2luZ19jb25kaXRpb24gKHJ0eCwgcnR4ICosIGJpdG1hcCk7CiAK IC8qIEluIGZpbmFsLmNjICAqLwotZXh0ZXJuIHVuc2lnbmVkIGludCBjb21wdXRlX2FsaWdubWVu dHMgKHZvaWQpOworZXh0ZXJuIHZvaWQgY29tcHV0ZV9hbGlnbm1lbnRzICh2b2lkKTsKIGV4dGVy biB2b2lkIHVwZGF0ZV9hbGlnbm1lbnRzICh2ZWM8cnR4PiAmKTsKIGV4dGVybiBpbnQgYXNtX3N0 cl9jb3VudCAoY29uc3QgY2hhciAqdGVtcGwpOwogDApkaWZmIC0tZ2l0IGEvZ2NjL3ZhcmFzbS5j YyBiL2djYy92YXJhc20uY2MKaW5kZXggNTQyMzE1Zjg4Y2QuLjhhZTBhMjU1NWNkIDEwMDY0NAot LS0gYS9nY2MvdmFyYXNtLmNjCisrKyBiL2djYy92YXJhc20uY2MKQEAgLTEwMiwxMyArMTAyLDEz IEBAIGJvb2wgZmlyc3RfZnVuY3Rpb25fYmxvY2tfaXNfY29sZDsKIHN0YXRpYyBib29sIHNhd19u b19zcGxpdF9zdGFjazsKIAogc3RhdGljIGNvbnN0IGNoYXIgKnN0cmlwX3JlZ19uYW1lIChjb25z dCBjaGFyICopOwotc3RhdGljIGludCBjb250YWluc19wb2ludGVyc19wICh0cmVlKTsKK3N0YXRp YyBib29sIGNvbnRhaW5zX3BvaW50ZXJzX3AgKHRyZWUpOwogI2lmZGVmIEFTTV9PVVRQVVRfRVhU RVJOQUwKIHN0YXRpYyBib29sIGluY29ycG9yZWFsX2Z1bmN0aW9uX3AgKHRyZWUpOwogI2VuZGlm CiBzdGF0aWMgdm9pZCBkZWNvZGVfYWRkcl9jb25zdCAodHJlZSwgY2xhc3MgYWRkcl9jb25zdCAq KTsKIHN0YXRpYyBoYXNodmFsX3QgY29uc3RfaGFzaF8xIChjb25zdCB0cmVlKTsKLXN0YXRpYyBp bnQgY29tcGFyZV9jb25zdGFudCAoY29uc3QgdHJlZSwgY29uc3QgdHJlZSk7CitzdGF0aWMgYm9v bCBjb21wYXJlX2NvbnN0YW50IChjb25zdCB0cmVlLCBjb25zdCB0cmVlKTsKIHN0YXRpYyB2b2lk IG91dHB1dF9jb25zdGFudF9kZWZfY29udGVudHMgKHJ0eCk7CiBzdGF0aWMgdm9pZCBvdXRwdXRf YWRkcmVzc2VkX2NvbnN0YW50cyAodHJlZSwgaW50KTsKIHN0YXRpYyB1bnNpZ25lZCBIT1NUX1dJ REVfSU5UIG91dHB1dF9jb25zdGFudCAodHJlZSwgdW5zaWduZWQgSE9TVF9XSURFX0lOVCwKQEAg LTI0MTksOSArMjQxOSw5IEBAIGFzc2VtYmxlX3ZhcmlhYmxlICh0cmVlIGRlY2wsIGludCB0b3Bf bGV2ZWwgQVRUUklCVVRFX1VOVVNFRCwKICAgICB9CiB9CiAKLS8qIFJldHVybiAxIGlmIHR5cGUg VFlQRSBjb250YWlucyBhbnkgcG9pbnRlcnMuICAqLworLyogUmV0dXJuIHRydWUgaWYgdHlwZSBU WVBFIGNvbnRhaW5zIGFueSBwb2ludGVycy4gICovCiAKLXN0YXRpYyBpbnQKK3N0YXRpYyBib29s CiBjb250YWluc19wb2ludGVyc19wICh0cmVlIHR5cGUpCiB7CiAgIHN3aXRjaCAoVFJFRV9DT0RF ICh0eXBlKSkKQEAgLTI0MzEsNyArMjQzMSw3IEBAIGNvbnRhaW5zX3BvaW50ZXJzX3AgKHRyZWUg dHlwZSkKICAgICAgIC8qIEknbSBub3Qgc3VyZSB3aGV0aGVyIE9GRlNFVF9UWVBFIG5lZWRzIHRo aXMgdHJlYXRtZW50LAogCSBzbyBJJ2xsIHBsYXkgc2FmZSBhbmQgcmV0dXJuIDEuICAqLwogICAg IGNhc2UgT0ZGU0VUX1RZUEU6Ci0gICAgICByZXR1cm4gMTsKKyAgICAgIHJldHVybiB0cnVlOwog CiAgICAgY2FzZSBSRUNPUkRfVFlQRToKICAgICBjYXNlIFVOSU9OX1RZUEU6CkBAIC0yNDQyLDgg KzI0NDIsOCBAQCBjb250YWluc19wb2ludGVyc19wICh0cmVlIHR5cGUpCiAJZm9yIChmaWVsZHMg PSBUWVBFX0ZJRUxEUyAodHlwZSk7IGZpZWxkczsgZmllbGRzID0gREVDTF9DSEFJTiAoZmllbGRz KSkKIAkgIGlmIChUUkVFX0NPREUgKGZpZWxkcykgPT0gRklFTERfREVDTAogCSAgICAgICYmIGNv bnRhaW5zX3BvaW50ZXJzX3AgKFRSRUVfVFlQRSAoZmllbGRzKSkpCi0JICAgIHJldHVybiAxOwot CXJldHVybiAwOworCSAgICByZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gZmFsc2U7CiAgICAgICB9CiAK ICAgICBjYXNlIEFSUkFZX1RZUEU6CkBAIC0yNDUxLDcgKzI0NTEsNyBAQCBjb250YWluc19wb2lu dGVyc19wICh0cmVlIHR5cGUpCiAgICAgICByZXR1cm4gY29udGFpbnNfcG9pbnRlcnNfcCAoVFJF RV9UWVBFICh0eXBlKSk7CiAKICAgICBkZWZhdWx0OgotICAgICAgcmV0dXJuIDA7CisgICAgICBy ZXR1cm4gZmFsc2U7CiAgICAgfQogfQogCkBAIC0zMjA2LDE0ICszMjA2LDE0IEBAIHRyZWVfZGVz Y3JpcHRvcl9oYXNoZXI6OmVxdWFsIChjb25zdGFudF9kZXNjcmlwdG9yX3RyZWUgKmMxLAogCQkJ ICAgICAgIGNvbnN0YW50X2Rlc2NyaXB0b3JfdHJlZSAqYzIpCiB7CiAgIGlmIChjMS0+aGFzaCAh PSBjMi0+aGFzaCkKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZmFsc2U7CiAgIHJldHVybiBj b21wYXJlX2NvbnN0YW50IChjMS0+dmFsdWUsIGMyLT52YWx1ZSk7CiB9CiAKLS8qIENvbXBhcmUg dDEgYW5kIHQyLCBhbmQgcmV0dXJuIDEgb25seSBpZiB0aGV5IGFyZSBrbm93biB0byByZXN1bHQg aW4KKy8qIENvbXBhcmUgdDEgYW5kIHQyLCBhbmQgcmV0dXJuIHRydWUgb25seSBpZiB0aGV5IGFy ZSBrbm93biB0byByZXN1bHQgaW4KICAgIHRoZSBzYW1lIGJpdCBwYXR0ZXJuIG9uIG91dHB1dC4g ICovCiAKLXN0YXRpYyBpbnQKK3N0YXRpYyBib29sCiBjb21wYXJlX2NvbnN0YW50IChjb25zdCB0 cmVlIHQxLCBjb25zdCB0cmVlIHQyKQogewogICBlbnVtIHRyZWVfY29kZSB0eXBlY29kZTsKQEAg LTMyMjEsMTkgKzMyMjEsMTkgQEAgY29tcGFyZV9jb25zdGFudCAoY29uc3QgdHJlZSB0MSwgY29u c3QgdHJlZSB0MikKICAgaWYgKHQxID09IE5VTExfVFJFRSkKICAgICByZXR1cm4gdDIgPT0gTlVM TF9UUkVFOwogICBpZiAodDIgPT0gTlVMTF9UUkVFKQotICAgIHJldHVybiAwOworICAgIHJldHVy biBmYWxzZTsKIAogICBpZiAoVFJFRV9DT0RFICh0MSkgIT0gVFJFRV9DT0RFICh0MikpCi0gICAg cmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNlOwogCiAgIHN3aXRjaCAoVFJFRV9DT0RFICh0MSkp CiAgICAgewogICAgIGNhc2UgSU5URUdFUl9DU1Q6CiAgICAgICAvKiBJbnRlZ2VyIGNvbnN0YW50 cyBhcmUgdGhlIHNhbWUgb25seSBpZiB0aGUgc2FtZSB3aWR0aCBvZiB0eXBlLiAgKi8KICAgICAg IGlmIChUWVBFX1BSRUNJU0lPTiAoVFJFRV9UWVBFICh0MSkpICE9IFRZUEVfUFJFQ0lTSU9OIChU UkVFX1RZUEUgKHQyKSkpCi0JcmV0dXJuIDA7CisJcmV0dXJuIGZhbHNlOwogICAgICAgaWYgKFRZ UEVfTU9ERSAoVFJFRV9UWVBFICh0MSkpICE9IFRZUEVfTU9ERSAoVFJFRV9UWVBFICh0MikpKQot CXJldHVybiAwOworCXJldHVybiBmYWxzZTsKICAgICAgIHJldHVybiB0cmVlX2ludF9jc3RfZXF1 YWwgKHQxLCB0Mik7CiAKICAgICBjYXNlIFJFQUxfQ1NUOgpAQCAtMzI0NCwxNSArMzI0NCwxNSBA QCBjb21wYXJlX2NvbnN0YW50IChjb25zdCB0cmVlIHQxLCBjb25zdCB0cmVlIHQyKQogCSBkaWZm ZXJlbnQgMTI4LWJpdCBmbG9hdGluZyBwb2ludCB0eXBlcyAoSUJNIGV4dGVuZGVkIGRvdWJsZSBh bmQgSUVFRQogCSAxMjgtYml0IGZsb2F0aW5nIHBvaW50KS4gICovCiAgICAgICBpZiAoVFlQRV9Q UkVDSVNJT04gKFRSRUVfVFlQRSAodDEpKSAhPSBUWVBFX1BSRUNJU0lPTiAoVFJFRV9UWVBFICh0 MikpKQotCXJldHVybiAwOworCXJldHVybiBmYWxzZTsKICAgICAgIGlmIChUWVBFX01PREUgKFRS RUVfVFlQRSAodDEpKSAhPSBUWVBFX01PREUgKFRSRUVfVFlQRSAodDIpKSkKLQlyZXR1cm4gMDsK KwlyZXR1cm4gZmFsc2U7CiAgICAgICByZXR1cm4gcmVhbF9pZGVudGljYWwgKCZUUkVFX1JFQUxf Q1NUICh0MSksICZUUkVFX1JFQUxfQ1NUICh0MikpOwogCiAgICAgY2FzZSBGSVhFRF9DU1Q6CiAg ICAgICAvKiBGaXhlZCBjb25zdGFudHMgYXJlIHRoZSBzYW1lIG9ubHkgaWYgdGhlIHNhbWUgd2lk dGggb2YgdHlwZS4gICovCiAgICAgICBpZiAoVFlQRV9QUkVDSVNJT04gKFRSRUVfVFlQRSAodDEp KSAhPSBUWVBFX1BSRUNJU0lPTiAoVFJFRV9UWVBFICh0MikpKQotCXJldHVybiAwOworCXJldHVy biBmYWxzZTsKIAogICAgICAgcmV0dXJuIEZJWEVEX1ZBTFVFU19JREVOVElDQUwgKFRSRUVfRklY RURfQ1NUICh0MSksIFRSRUVfRklYRURfQ1NUICh0MikpOwogCkBAIC0zMjYwLDcgKzMyNjAsNyBA QCBjb21wYXJlX2NvbnN0YW50IChjb25zdCB0cmVlIHQxLCBjb25zdCB0cmVlIHQyKQogICAgICAg aWYgKFRZUEVfTU9ERSAoVFJFRV9UWVBFICh0MSkpICE9IFRZUEVfTU9ERSAoVFJFRV9UWVBFICh0 MikpCiAJICB8fCBpbnRfc2l6ZV9pbl9ieXRlcyAoVFJFRV9UWVBFICh0MSkpCiAJICAgICAhPSBp bnRfc2l6ZV9pbl9ieXRlcyAoVFJFRV9UWVBFICh0MikpKQotCXJldHVybiAwOworCXJldHVybiBm YWxzZTsKIAogICAgICAgcmV0dXJuIChUUkVFX1NUUklOR19MRU5HVEggKHQxKSA9PSBUUkVFX1NU UklOR19MRU5HVEggKHQyKQogCSAgICAgICYmICEgbWVtY21wIChUUkVFX1NUUklOR19QT0lOVEVS ICh0MSksIFRSRUVfU1RSSU5HX1BPSU5URVIgKHQyKSwKQEAgLTMyNzQsMTkgKzMyNzQsMTkgQEAg Y29tcGFyZV9jb25zdGFudCAoY29uc3QgdHJlZSB0MSwgY29uc3QgdHJlZSB0MikKICAgICAgIHsK IAlpZiAoVkVDVE9SX0NTVF9OUEFUVEVSTlMgKHQxKQogCSAgICAhPSBWRUNUT1JfQ1NUX05QQVRU RVJOUyAodDIpKQotCSAgcmV0dXJuIDA7CisJICByZXR1cm4gZmFsc2U7CiAKIAlpZiAoVkVDVE9S X0NTVF9ORUxUU19QRVJfUEFUVEVSTiAodDEpCiAJICAgICE9IFZFQ1RPUl9DU1RfTkVMVFNfUEVS X1BBVFRFUk4gKHQyKSkKLQkgIHJldHVybiAwOworCSAgcmV0dXJuIGZhbHNlOwogCiAJdW5zaWdu ZWQgaW50IGNvdW50ID0gdmVjdG9yX2NzdF9lbmNvZGVkX25lbHRzICh0MSk7CiAJZm9yICh1bnNp Z25lZCBpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQogCSAgaWYgKCFjb21wYXJlX2NvbnN0YW50 IChWRUNUT1JfQ1NUX0VOQ09ERURfRUxUICh0MSwgaSksCiAJCQkJIFZFQ1RPUl9DU1RfRU5DT0RF RF9FTFQgKHQyLCBpKSkpCi0JICAgIHJldHVybiAwOworCSAgICByZXR1cm4gZmFsc2U7CiAKLQly ZXR1cm4gMTsKKwlyZXR1cm4gdHJ1ZTsKICAgICAgIH0KIAogICAgIGNhc2UgQ09OU1RSVUNUT1I6 CkBAIC0zMjk2LDcgKzMyOTYsNyBAQCBjb21wYXJlX2NvbnN0YW50IChjb25zdCB0cmVlIHQxLCBj b25zdCB0cmVlIHQyKQogCiAJdHlwZWNvZGUgPSBUUkVFX0NPREUgKFRSRUVfVFlQRSAodDEpKTsK IAlpZiAodHlwZWNvZGUgIT0gVFJFRV9DT0RFIChUUkVFX1RZUEUgKHQyKSkpCi0JICByZXR1cm4g MDsKKwkgIHJldHVybiBmYWxzZTsKIAogCWlmICh0eXBlY29kZSA9PSBBUlJBWV9UWVBFKQogCSAg ewpAQCAtMzMwNywyMCArMzMwNywyMCBAQCBjb21wYXJlX2NvbnN0YW50IChjb25zdCB0cmVlIHQx LCBjb25zdCB0cmVlIHQyKQogCQl8fCBzaXplXzEgIT0gaW50X3NpemVfaW5fYnl0ZXMgKFRSRUVf VFlQRSAodDIpKQogCQl8fCBUWVBFX1JFVkVSU0VfU1RPUkFHRV9PUkRFUiAoVFJFRV9UWVBFICh0 MSkpCiAJCSAgICE9IFRZUEVfUkVWRVJTRV9TVE9SQUdFX09SREVSIChUUkVFX1RZUEUgKHQyKSkp Ci0JICAgICAgcmV0dXJuIDA7CisJICAgICAgcmV0dXJuIGZhbHNlOwogCSAgfQogCWVsc2UKIAkg IHsKIAkgICAgLyogRm9yIHJlY29yZCBhbmQgdW5pb24gY29uc3RydWN0b3JzLCByZXF1aXJlIGV4 YWN0IHR5cGUKICAgICAgICAgICAgICAgIGVxdWFsaXR5LiAgKi8KIAkgICAgaWYgKFRSRUVfVFlQ RSAodDEpICE9IFRSRUVfVFlQRSAodDIpKQotCSAgICAgIHJldHVybiAwOworCSAgICAgIHJldHVy biBmYWxzZTsKIAkgIH0KIAogCXYxID0gQ09OU1RSVUNUT1JfRUxUUyAodDEpOwogCXYyID0gQ09O U1RSVUNUT1JfRUxUUyAodDIpOwogCWlmICh2ZWNfc2FmZV9sZW5ndGggKHYxKSAhPSB2ZWNfc2Fm ZV9sZW5ndGggKHYyKSkKLQkgIHJldHVybiAwOworCSAgcmV0dXJuIGZhbHNlOwogCiAJZm9yIChp ZHggPSAwOyBpZHggPCB2ZWNfc2FmZV9sZW5ndGggKHYxKTsgKytpZHgpCiAJICB7CkBAIC0zMzI5 LDIxICszMzI5LDIxIEBAIGNvbXBhcmVfY29uc3RhbnQgKGNvbnN0IHRyZWUgdDEsIGNvbnN0IHRy ZWUgdDIpCiAKIAkgICAgLyogQ2hlY2sgdGhhdCBlYWNoIHZhbHVlIGlzIHRoZSBzYW1lLi4uICAq LwogCSAgICBpZiAoIWNvbXBhcmVfY29uc3RhbnQgKGMxLT52YWx1ZSwgYzItPnZhbHVlKSkKLQkg ICAgICByZXR1cm4gMDsKKwkgICAgICByZXR1cm4gZmFsc2U7CiAJICAgIC8qIC4uLiBhbmQgdGhh dCB0aGV5IGFwcGx5IHRvIHRoZSBzYW1lIGZpZWxkcyEgICovCiAJICAgIGlmICh0eXBlY29kZSA9 PSBBUlJBWV9UWVBFKQogCSAgICAgIHsKIAkJaWYgKCFjb21wYXJlX2NvbnN0YW50IChjMS0+aW5k ZXgsIGMyLT5pbmRleCkpCi0JCSAgcmV0dXJuIDA7CisJCSAgcmV0dXJuIGZhbHNlOwogCSAgICAg IH0KIAkgICAgZWxzZQogCSAgICAgIHsKIAkJaWYgKGMxLT5pbmRleCAhPSBjMi0+aW5kZXgpCi0J CSAgcmV0dXJuIDA7CisJCSAgcmV0dXJuIGZhbHNlOwogCSAgICAgIH0KIAkgIH0KIAotCXJldHVy biAxOworCXJldHVybiB0cnVlOwogICAgICAgfQogCiAgICAgY2FzZSBBRERSX0VYUFI6CkBAIC0z MzUxLDE3ICszMzUxLDE3IEBAIGNvbXBhcmVfY29uc3RhbnQgKGNvbnN0IHRyZWUgdDEsIGNvbnN0 IHRyZWUgdDIpCiAgICAgICB7CiAJY2xhc3MgYWRkcl9jb25zdCB2YWx1ZTEsIHZhbHVlMjsKIAll bnVtIHJ0eF9jb2RlIGNvZGU7Ci0JaW50IHJldDsKKwlib29sIHJldDsKIAogCWRlY29kZV9hZGRy X2NvbnN0ICh0MSwgJnZhbHVlMSk7CiAJZGVjb2RlX2FkZHJfY29uc3QgKHQyLCAmdmFsdWUyKTsK IAogCWlmIChtYXliZV9uZSAodmFsdWUxLm9mZnNldCwgdmFsdWUyLm9mZnNldCkpCi0JICByZXR1 cm4gMDsKKwkgIHJldHVybiBmYWxzZTsKIAogCWNvZGUgPSBHRVRfQ09ERSAodmFsdWUxLmJhc2Up OwogCWlmIChjb2RlICE9IEdFVF9DT0RFICh2YWx1ZTIuYmFzZSkpCi0JICByZXR1cm4gMDsKKwkg IHJldHVybiBmYWxzZTsKIAogCXN3aXRjaCAoY29kZSkKIAkgIHsKQEAgLTMzOTIsNyArMzM5Miw3 IEBAIGNvbXBhcmVfY29uc3RhbnQgKGNvbnN0IHRyZWUgdDEsIGNvbnN0IHRyZWUgdDIpCiAgICAg ICByZXR1cm4gY29tcGFyZV9jb25zdGFudCAoVFJFRV9PUEVSQU5EICh0MSwgMCksIFRSRUVfT1BF UkFORCAodDIsIDApKTsKIAogICAgIGRlZmF1bHQ6Ci0gICAgICByZXR1cm4gMDsKKyAgICAgIHJl dHVybiBmYWxzZTsKICAgICB9CiB9CiAMCkBAIC0zNzYwLDcgKzM3NjAsNyBAQCBjb25zdF9ydHhf ZGVzY19oYXNoZXI6OmVxdWFsIChjb25zdGFudF9kZXNjcmlwdG9yX3J0eCAqeCwKIAkJCSAgICAg IGNvbnN0YW50X2Rlc2NyaXB0b3JfcnR4ICp5KQogewogICBpZiAoeC0+bW9kZSAhPSB5LT5tb2Rl KQotICAgIHJldHVybiAwOworICAgIHJldHVybiBmYWxzZTsKICAgcmV0dXJuIHJ0eF9lcXVhbF9w ICh4LT5jb25zdGFudCwgeS0+Y29uc3RhbnQpOwogfQogCkBAIC00Mzc3LDcgKzQzNzcsNyBAQCBj b25zdF9ydHhfZGF0YV9oYXNoZXI6OmVxdWFsIChjb25zdGFudF9kZXNjcmlwdG9yX3J0eF9kYXRh ICp4LAogCQkJICAgICAgY29uc3RhbnRfZGVzY3JpcHRvcl9ydHhfZGF0YSAqeSkKIHsKICAgaWYg KHgtPmhhc2ggIT0geS0+aGFzaCB8fCB4LT5zaXplICE9IHktPnNpemUpCi0gICAgcmV0dXJuIDA7 CisgICAgcmV0dXJuIGZhbHNlOwogICB1bnNpZ25lZCBpbnQgYWxpZ24xID0geC0+ZGVzYy0+YWxp Z247CiAgIHVuc2lnbmVkIGludCBhbGlnbjIgPSB5LT5kZXNjLT5hbGlnbjsKICAgdW5zaWduZWQg aW50IG9mZnNldDEgPSAoeC0+b2Zmc2V0ICogQklUU19QRVJfVU5JVCkgJiAoYWxpZ24xIC0gMSk7 CkBAIC00Mzg3LDEwICs0Mzg3LDEwIEBAIGNvbnN0X3J0eF9kYXRhX2hhc2hlcjo6ZXF1YWwgKGNv bnN0YW50X2Rlc2NyaXB0b3JfcnR4X2RhdGEgKngsCiAgIGlmIChvZmZzZXQyKQogICAgIGFsaWdu MiA9IGxlYXN0X2JpdF9od2kgKG9mZnNldDIpOwogICBpZiAoYWxpZ24yID4gYWxpZ24xKQotICAg IHJldHVybiAwOworICAgIHJldHVybiBmYWxzZTsKICAgaWYgKG1lbWNtcCAoeC0+Ynl0ZXMsIHkt PmJ5dGVzLCB4LT5zaXplICogc2l6ZW9mICh0YXJnZXRfdW5pdCkpICE9IDApCi0gICAgcmV0dXJu IDA7Ci0gIHJldHVybiAxOworICAgIHJldHVybiBmYWxzZTsKKyAgcmV0dXJuIHRydWU7CiB9CiAK IC8qIEF0dGVtcHQgdG8gb3B0aW1pemUgY29uc3RhbnQgcG9vbCBQT09MLiAgSWYgaXQgY29udGFp bnMgYm90aCBDT05TVF9WRUNUT1IKQEAgLTY1MjgsMzAgKzY1MjgsMzIgQEAgZGVmYXVsdF9hc3Nl bWJsZV92aXNpYmlsaXR5ICh0cmVlIGRlY2wgQVRUUklCVVRFX1VOVVNFRCwKIAogLyogQSBoZWxw ZXIgZnVuY3Rpb24gdG8gY2FsbCBhc3NlbWJsZV92aXNpYmlsaXR5IHdoZW4gbmVlZGVkIGZvciBh IGRlY2wuICAqLwogCi1pbnQKK2Jvb2wKIG1heWJlX2Fzc2VtYmxlX3Zpc2liaWxpdHkgKHRyZWUg ZGVjbCkKIHsKICAgZW51bSBzeW1ib2xfdmlzaWJpbGl0eSB2aXMgPSBERUNMX1ZJU0lCSUxJVFkg KGRlY2wpOwogICBpZiAodmlzICE9IFZJU0lCSUxJVFlfREVGQVVMVCkKICAgICB7CiAgICAgICB0 YXJnZXRtLmFzbV9vdXQuYXNzZW1ibGVfdmlzaWJpbGl0eSAoZGVjbCwgdmlzKTsKLSAgICAgIHJl dHVybiAxOworICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICBlbHNlCi0gICAgcmV0dXJuIDA7 CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi0vKiBSZXR1cm5zIDEgaWYgdGhlIHRhcmdldCBjb25m aWd1cmF0aW9uIHN1cHBvcnRzIGRlZmluaW5nIHB1YmxpYyBzeW1ib2xzCisvKiBSZXR1cm5zIHRy dWUgaWYgdGhlIHRhcmdldCBjb25maWd1cmF0aW9uIHN1cHBvcnRzIGRlZmluaW5nIHB1YmxpYyBz eW1ib2xzCiAgICBzbyB0aGF0IG9uZSBvZiB0aGVtIHdpbGwgYmUgY2hvc2VuIGF0IGxpbmsgdGlt ZSBpbnN0ZWFkIG9mIGdlbmVyYXRpbmcgYQogICAgbXVsdGlwbHktZGVmaW5lZCBzeW1ib2wgZXJy b3IsIHdoZXRoZXIgdGhyb3VnaCB0aGUgdXNlIG9mIHdlYWsgc3ltYm9scyBvcgogICAgYSB0YXJn ZXQtc3BlY2lmaWMgbWVjaGFuaXNtIGZvciBoYXZpbmcgZHVwbGljYXRlcyBkaXNjYXJkZWQuICAq LwogCi1pbnQKK2Jvb2wKIHN1cHBvcnRzX29uZV9vbmx5ICh2b2lkKQogewogICBpZiAoU1VQUE9S VFNfT05FX09OTFkpCi0gICAgcmV0dXJuIDE7Ci0gIHJldHVybiBUQVJHRVRfU1VQUE9SVFNfV0VB SzsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgaWYgKFRBUkdFVF9TVVBQT1JUU19XRUFLKQorICAgIHJl dHVybiB0cnVlOworICByZXR1cm4gZmFsc2U7CiB9CiAKIC8qIFNldCB1cCBERUNMIGFzIGEgcHVi bGljIHN5bWJvbCB0aGF0IGNhbiBiZSBkZWZpbmVkIGluIG11bHRpcGxlCmRpZmYgLS1naXQgYS9n Y2MvdmFyYXNtLmggYi9nY2MvdmFyYXNtLmgKaW5kZXggZTYxOTBjYWUwZjguLmZmMzAyZThiNmY0 IDEwMDY0NAotLS0gYS9nY2MvdmFyYXNtLmgKKysrIGIvZ2NjL3ZhcmFzbS5oCkBAIC0zMSw3ICsz MSw3IEBAIGV4dGVybiB0cmVlIHRyZWVfb3V0cHV0X2NvbnN0YW50X2RlZiAodHJlZSk7CiBleHRl cm4gdm9pZCBtYWtlX2RlY2xfcnRsICh0cmVlKTsKIGV4dGVybiBydHggbWFrZV9kZWNsX3J0bF9m b3JfZGVidWcgKHRyZWUpOwogZXh0ZXJuIHZvaWQgbWFrZV9kZWNsX29uZV9vbmx5ICh0cmVlLCB0 cmVlKTsKLWV4dGVybiBpbnQgc3VwcG9ydHNfb25lX29ubHkgKHZvaWQpOworZXh0ZXJuIGJvb2wg c3VwcG9ydHNfb25lX29ubHkgKHZvaWQpOwogZXh0ZXJuIHZvaWQgcmVzb2x2ZV91bmlxdWVfc2Vj dGlvbiAodHJlZSwgaW50LCBpbnQpOwogZXh0ZXJuIHZvaWQgbWFya19yZWZlcmVuY2VkICh0cmVl KTsKIGV4dGVybiB2b2lkIG1hcmtfZGVjbF9yZWZlcmVuY2VkICh0cmVlKTsK --000000000000c8e78f05ff317afd--