From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id E86A63858C2C for ; Fri, 1 Dec 2023 19:14:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E86A63858C2C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E86A63858C2C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701458100; cv=none; b=Ab2LiSujeS3X3GiefFKZ+QvUGRC3u6Meu+MyypTYKg67o1uqXjkjKOq4UBSKBpAQTkIhcNeqwawxf0iIxRuktYtl5Zjm2AIsF65nPchL7FnVUk5KD1Wv4NQ3PA9Qkcne/NIPkf8MaLkPBA2tX9QAnY5IEalekRyb05FkSodzqbk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701458100; c=relaxed/simple; bh=RA81jk2ZV4rqfQKAyAaD+fXx55uXOOGYvsHSeENRV8E=; h=DKIM-Signature:Message-ID:Date:MIME-Version:From:To:Subject; b=iHKncebdfNsfqX4PEkCO2VazSjAAOGImTWMwMuFc6Nh0b7v8MierIUxkuehwYqa9YCD8A/VxoK3/UV3rjkfTfwgK6wyeVUQ0m9blPG9hhMbN08KSTI8pV4nmt2hs2CtmjrYcJg5IxHQEJuQmArgmWwXIVqWpVo24C10VD8x7hkg= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1701458097; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=chNA8SmHOqkyJuUKzw87Rllx8buXglL1n2kYTphwVuA=; b=FNRCt+4Fyb13nbhnQCDMoeIZqvLxYe1VAs0KTahkZkyibxivHyqO75BDCRrLKQsLahcmoM XE9NzWW/mgNZuOkciS1dNm6wwnLoV0YUrw8amktc5b+SyJvKef1ps7TP7hH+Un/w7fI4Lo o9ex/QpEOQDPIdUkpNkFHZb5M8LyXCs= Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-323-I2x_OmlkM9G2CjEDg9vKuw-1; Fri, 01 Dec 2023 14:14:51 -0500 X-MC-Unique: I2x_OmlkM9G2CjEDg9vKuw-1 Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-4646512b20bso346731137.3 for ; Fri, 01 Dec 2023 11:14:51 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701458090; x=1702062890; h=subject:cc:to:from:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=CgWqb4KW7dAWRISolzq61hlGzH7E11OUQ9h6Q+mosRs=; b=pbkL6GsNpsjHfbo78Gzg/7PO3oAEWz1K0yeP3A8Jqb0sbRxOU92thZmUhT3cYGQqIm vpVZBPe6nzA94CI9KRTUnO3WQOl7a7w+8cJflY/Ctu2hLmNkvwzvtVaSF4DVVmmefn7x g7TJbEXXppW6OzByzhtXTdBMlivR2tvB866Tfp6/ripYELdpGCIoeM7GaAGXhU6lKJGq YP0qZCsF8xIMyQfpCDfRDciBiHol72kgPVaDPp1arsoTVQjJbuSEE49OevjLzOV+utVQ K9LcWTkky4UJJyl6gsX1kpioeY1XVKCpOJWkHoL5HRiure6fx64/RrKcb+G7+cZkmOQ3 dJYQ== X-Gm-Message-State: AOJu0Yw6KYG3NR5r3XvDvKkMDQUWK8wszykfa1k+Wb2mfXcyOZ4VeeWF 7l79Mm9Z37Xnnx1N8MPZX0LKg17Hvj1n6pbJSMGAZuR+UoP4cWthcEOv52fMThUAZkyC/oTgXw4 kPeRV5TpOCUupeO7cJVtdzY7gP8lyeApwcTuAKZFUIl7zY3SzLtbI4CSOpody3aY7W2WeErSkq7 HDVg== X-Received: by 2002:ac8:5c43:0:b0:421:b785:1b82 with SMTP id j3-20020ac85c43000000b00421b7851b82mr22396qtj.52.1701458038198; Fri, 01 Dec 2023 11:13:58 -0800 (PST) X-Google-Smtp-Source: AGHT+IFZ81lNihu6E0ysEsF9PloB+dWlJOscH5EDhxwGynuFRxnBt4ZQeMg3JF+wAcPM0Ux/1q+U8Q== X-Received: by 2002:ac8:5c43:0:b0:421:b785:1b82 with SMTP id j3-20020ac85c43000000b00421b7851b82mr22088qtj.52.1701458035921; Fri, 01 Dec 2023 11:13:55 -0800 (PST) Received: from ?IPV6:2607:fea8:51dd:2b00::115f? ([2607:fea8:51dd:2b00::115f]) by smtp.gmail.com with ESMTPSA id c4-20020ac85184000000b004194c21ee85sm1726621qtn.79.2023.12.01.11.13.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 01 Dec 2023 11:13:55 -0800 (PST) Message-ID: <6899d17b-14c3-4ce4-b2bf-ed11afce1e01@redhat.com> Date: Fri, 1 Dec 2023 14:13:53 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Andrew MacLeod To: gcc-patches Cc: "hernandez, aldy" , linkw@gcc.gnu.org Subject: [COMMITTED] Use range_compatible_p in check_operands_p. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------yZCpWnw8JEVj6yHjxV00iBT0" Content-Language: en-US X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_FILL_THIS_FORM_FRAUD_PHISH,T_FILL_THIS_FORM_SHORT,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: This is a multi-part message in MIME format. --------------yZCpWnw8JEVj6yHjxV00iBT0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Comments in PR 112788 correctly brought up that the new check_operands_p() routine is directly checking precision rather than calling range_compatible_p(). Most earlier iterations of the original patch had ranges as arguments, and it wasn't primarily a CHECKING_P only call then...   Regardless, it makes total sense to call range_compatible_p so this patch does exactly that.  It required moving range_compatible_p() into value-range.h and then adjusting each check_operands_p() routine. Now range type compatibility is centralized again :-P Bootstraps on x86_64-pc-linux-gnu with no new regressions. Andrew --------------yZCpWnw8JEVj6yHjxV00iBT0 Content-Type: text/x-patch; charset=UTF-8; name="0001-Use-range_compatible_p-in-check_operands_p.patch" Content-Disposition: attachment; filename="0001-Use-range_compatible_p-in-check_operands_p.patch" Content-Transfer-Encoding: base64 RnJvbSBjNmJiNDEzZWViOWQxMzQxMmU4MTAxZTMwMjkwOTlkN2ZkNzQ2NzA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogRnJpLCAxIERlYyAyMDIzIDExOjE1OjMzIC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gVXNl IHJhbmdlX2NvbXBhdGlibGVfcCBpbiBjaGVja19vcGVyYW5kc19wLgoKSW5zdGVhZCBvZiBkaXJl Y3RseSBjaGVja2luZyB0eXBlIHByZWNpc2lvbiwgY2hlY2tfb3BlcmFuZHNfcCBzaG91bGQKaW52 b2tlIHJhbmdlX2NvbXBhdGlibGVfcCB0byBrZWVwIHRoZSByYW5nZSBjaGVja2luZyBjZW50cmFs aXplZC4KCgkqIGdpbXBsZS1yYW5nZS1mb2xkLmggKHJhbmdlX2NvbXBhdGlibGVfcCk6IFJlbG9j YXRlLgoJKiB2YWx1ZS1yYW5nZS5oIChyYW5nZV9jb21wYXRpYmxlX3ApOiBIZXJlLgoJKiByYW5n ZS1vcC1taXhlZC5oIChvcGVyYW5kX2VxdWFsOjpvcGVyYW5kX2NoZWNrX3ApOiBDYWxsCglyYW5n ZV9jb21wYXRpYmxlX3AgcmF0aGVyIHRoYW4gY29tcGFyaW5nIHByZWNpc2lvbi4KCShvcGVyYW5k X25vdF9lcXVhbDo6b3BlcmFuZF9jaGVja19wKTogRGl0dG8uCgkob3BlcmFuZF9ub3RfbHQ6Om9w ZXJhbmRfY2hlY2tfcCk6IERpdHRvLgoJKG9wZXJhbmRfbm90X2xlOjpvcGVyYW5kX2NoZWNrX3Ap OiBEaXR0by4KCShvcGVyYW5kX25vdF9ndDo6b3BlcmFuZF9jaGVja19wKTogRGl0dG8uCgkob3Bl cmFuZF9ub3RfZ2U6Om9wZXJhbmRfY2hlY2tfcCk6IERpdHRvLgoJKG9wZXJhbmRfcGx1czo6b3Bl cmFuZF9jaGVja19wKTogRGl0dG8uCgkob3BlcmFuZF9hYnM6Om9wZXJhbmRfY2hlY2tfcCk6IERp dHRvLgoJKG9wZXJhbmRfbWludXM6Om9wZXJhbmRfY2hlY2tfcCk6IERpdHRvLgoJKG9wZXJhbmRf bmVnYXRlOjpvcGVyYW5kX2NoZWNrX3ApOiBEaXR0by4KCShvcGVyYW5kX211bHQ6Om9wZXJhbmRf Y2hlY2tfcCk6IERpdHRvLgoJKG9wZXJhbmRfYml0d2lzZV9ub3Q6Om9wZXJhbmRfY2hlY2tfcCk6 IERpdHRvLgoJKG9wZXJhbmRfYml0d2lzZV94b3I6Om9wZXJhbmRfY2hlY2tfcCk6IERpdHRvLgoJ KG9wZXJhbmRfYml0d2lzZV9hbmQ6Om9wZXJhbmRfY2hlY2tfcCk6IERpdHRvLgoJKG9wZXJhbmRf Yml0d2lzZV9vcjo6b3BlcmFuZF9jaGVja19wKTogRGl0dG8uCgkob3BlcmFuZF9taW46Om9wZXJh bmRfY2hlY2tfcCk6IERpdHRvLgoJKG9wZXJhbmRfbWF4OjpvcGVyYW5kX2NoZWNrX3ApOiBEaXR0 by4KCSogcmFuZ2Utb3AuY2MgKG9wZXJhbmRfbHNoaWZ0OjpvcGVyYW5kX2NoZWNrX3ApOiBEaXR0 by4KCShvcGVyYW5kX3JzaGlmdDo6b3BlcmFuZF9jaGVja19wKTogRGl0dG8uCgkob3BlcmFuZF9s b2dpY2FsX2FuZDo6b3BlcmFuZF9jaGVja19wKTogRGl0dG8uCgkob3BlcmFuZF9sb2dpY2FsX29y OjpvcGVyYW5kX2NoZWNrX3ApOiBEaXR0by4KCShvcGVyYW5kX2xvZ2ljYWxfbm90OjpvcGVyYW5k X2NoZWNrX3ApOiBEaXR0by4KLS0tCiBnY2MvZ2ltcGxlLXJhbmdlLWZvbGQuaCB8IDEyIC0tLS0t LS0tLS0tLQogZ2NjL3JhbmdlLW9wLW1peGVkLmggICAgfCA0MyArKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZ2NjL3JhbmdlLW9wLmNjICAgICAgICAgfCAxMiArKysr Ky0tLS0tLS0KIGdjYy92YWx1ZS1yYW5nZS5oICAgICAgIHwgMTEgKysrKysrKysrKysKIDQgZmls ZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZ2NjL2dpbXBsZS1yYW5nZS1mb2xkLmggYi9nY2MvZ2ltcGxlLXJhbmdlLWZvbGQuaAppbmRl eCBmY2JlMTYyNjc5MC4uMDA5NGI0ZTNmMzUgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUtcmFuZ2Ut Zm9sZC5oCisrKyBiL2djYy9naW1wbGUtcmFuZ2UtZm9sZC5oCkBAIC04OSwxOCArODksNiBAQCBn aW1wbGVfcmFuZ2Vfc3NhX3AgKHRyZWUgZXhwKQogICByZXR1cm4gTlVMTF9UUkVFOwogfQogCi0v LyBSZXR1cm4gdHJ1ZSBpZiBUWVBFMSBhbmQgVFlQRTIgYXJlIGNvbXBhdGlibGUgcmFuZ2UgdHlw ZXMuCi0KLWlubGluZSBib29sCi1yYW5nZV9jb21wYXRpYmxlX3AgKHRyZWUgdHlwZTEsIHRyZWUg dHlwZTIpCi17Ci0gIC8vIHR5cGVzX2NvbXBhdGlibGVfcCByZXF1aXJlcyBjb252ZXJzaW9uIGlu IGJvdGggZGlyZWN0aW9ucyB0byBiZSB1c2VsZXNzLgotICAvLyBHSU1QTEUgb25seSByZXF1aXJl cyBhIGNhc3Qgb25lIHdheSBpbiBvcmRlciB0byBiZSBjb21wYXRpYmxlLgotICAvLyBSYW5nZXMg cmVhbGx5IG9ubHkgbmVlZCB0aGUgc2lnbiBhbmQgcHJlY2lzaW9uIHRvIGJlIHRoZSBzYW1lLgot ICByZXR1cm4gKFRZUEVfUFJFQ0lTSU9OICh0eXBlMSkgPT0gVFlQRV9QUkVDSVNJT04gKHR5cGUy KQotCSAgJiYgVFlQRV9TSUdOICh0eXBlMSkgPT0gVFlQRV9TSUdOICh0eXBlMikpOwotfQotCiAv LyBTb3VyY2Ugb2YgYWxsIG9wZXJhbmRzIGZvciBmb2xkX3VzaW5nX3JhbmdlIGFuZCBnb3JpX2Nv bXB1dGUuCiAvLyBJdCBhYnN0cmFjdHMgb3V0IHRoZSBzb3VyY2Ugb2YgYW4gb3BlcmFuZCBzbyBp dCBjYW4gY29tZSBmcm9tIGEgc3RtdCBvcgogLy8gYW5kIGVkZ2Ugb3IgYW55d2hlcmUgYSBkZXJp dmVkIGNsYXNzIG9mIGZ1cl9zb3VyY2Ugd2FudHMuCmRpZmYgLS1naXQgYS9nY2MvcmFuZ2Utb3At bWl4ZWQuaCBiL2djYy9yYW5nZS1vcC1taXhlZC5oCmluZGV4IDQzODZhNjhlOTQ2Li43ZTNlZTE3 Y2NiZCAxMDA2NDQKLS0tIGEvZ2NjL3JhbmdlLW9wLW1peGVkLmgKKysrIGIvZ2NjL3JhbmdlLW9w LW1peGVkLmgKQEAgLTE0MCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAJCSAgICAgICBjb25zdCBpcmFu Z2UgJnJoKSBjb25zdCBmaW5hbCBvdmVycmlkZTsKICAgLy8gQ2hlY2sgb3AxIGFuZCBvcDIgZm9y IGNvbXBhdGliaWxpdHkuCiAgIGJvb2wgb3BlcmFuZF9jaGVja19wICh0cmVlLCB0cmVlIHQxLCB0 cmVlIHQyKSBjb25zdCBmaW5hbCBvdmVycmlkZQotICAgIHsgcmV0dXJuIFRZUEVfUFJFQ0lTSU9O ICh0MSkgPT0gVFlQRV9QUkVDSVNJT04gKHQyKTsgfQorICAgIHsgcmV0dXJuIHJhbmdlX2NvbXBh dGlibGVfcCAodDEsIHQyKTsgfQogfTsKIAogY2xhc3Mgb3BlcmF0b3Jfbm90X2VxdWFsIDogcHVi bGljIHJhbmdlX29wZXJhdG9yCkBAIC0xNzksNyArMTc5LDcgQEAgcHVibGljOgogCQkgICAgICAg Y29uc3QgaXJhbmdlICZyaCkgY29uc3QgZmluYWwgb3ZlcnJpZGU7CiAgIC8vIENoZWNrIG9wMSBh bmQgb3AyIGZvciBjb21wYXRpYmlsaXR5LgogICBib29sIG9wZXJhbmRfY2hlY2tfcCAodHJlZSwg dHJlZSB0MSwgdHJlZSB0MikgY29uc3QgZmluYWwgb3ZlcnJpZGUKLSAgICB7IHJldHVybiBUWVBF X1BSRUNJU0lPTiAodDEpID09IFRZUEVfUFJFQ0lTSU9OICh0Mik7IH0KKyAgICB7IHJldHVybiBy YW5nZV9jb21wYXRpYmxlX3AgKHQxLCB0Mik7IH0KIH07CiAKIGNsYXNzIG9wZXJhdG9yX2x0IDog IHB1YmxpYyByYW5nZV9vcGVyYXRvcgpAQCAtMjE1LDcgKzIxNSw3IEBAIHB1YmxpYzoKIAkJICAg ICAgIGNvbnN0IGlyYW5nZSAmcmgpIGNvbnN0IGZpbmFsIG92ZXJyaWRlOwogICAvLyBDaGVjayBv cDEgYW5kIG9wMiBmb3IgY29tcGF0aWJpbGl0eS4KICAgYm9vbCBvcGVyYW5kX2NoZWNrX3AgKHRy ZWUsIHRyZWUgdDEsIHRyZWUgdDIpIGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0gICAgeyByZXR1cm4g VFlQRV9QUkVDSVNJT04gKHQxKSA9PSBUWVBFX1BSRUNJU0lPTiAodDIpOyB9CisgICAgeyByZXR1 cm4gcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDIpOyB9CiB9OwogCiBjbGFzcyBvcGVyYXRvcl9s ZSA6ICBwdWJsaWMgcmFuZ2Vfb3BlcmF0b3IKQEAgLTI1NCw3ICsyNTQsNyBAQCBwdWJsaWM6CiAJ CSAgICAgICBjb25zdCBpcmFuZ2UgJnJoKSBjb25zdCBmaW5hbCBvdmVycmlkZTsKICAgLy8gQ2hl Y2sgb3AxIGFuZCBvcDIgZm9yIGNvbXBhdGliaWxpdHkuCiAgIGJvb2wgb3BlcmFuZF9jaGVja19w ICh0cmVlLCB0cmVlIHQxLCB0cmVlIHQyKSBjb25zdCBmaW5hbCBvdmVycmlkZQotICAgIHsgcmV0 dXJuIFRZUEVfUFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVDSVNJT04gKHQyKTsgfQorICAgIHsg cmV0dXJuIHJhbmdlX2NvbXBhdGlibGVfcCAodDEsIHQyKTsgfQogfTsKIAogY2xhc3Mgb3BlcmF0 b3JfZ3QgOiAgcHVibGljIHJhbmdlX29wZXJhdG9yCkBAIC0yOTIsNyArMjkyLDcgQEAgcHVibGlj OgogCQkgICAgICAgY29uc3QgaXJhbmdlICZyaCkgY29uc3QgZmluYWwgb3ZlcnJpZGU7CiAgIC8v IENoZWNrIG9wMSBhbmQgb3AyIGZvciBjb21wYXRpYmlsaXR5LgogICBib29sIG9wZXJhbmRfY2hl Y2tfcCAodHJlZSwgdHJlZSB0MSwgdHJlZSB0MikgY29uc3QgZmluYWwgb3ZlcnJpZGUKLSAgICB7 IHJldHVybiBUWVBFX1BSRUNJU0lPTiAodDEpID09IFRZUEVfUFJFQ0lTSU9OICh0Mik7IH0KKyAg ICB7IHJldHVybiByYW5nZV9jb21wYXRpYmxlX3AgKHQxLCB0Mik7IH0KIH07CiAKIGNsYXNzIG9w ZXJhdG9yX2dlIDogIHB1YmxpYyByYW5nZV9vcGVyYXRvcgpAQCAtMzMxLDcgKzMzMSw3IEBAIHB1 YmxpYzoKIAkJICAgICAgIGNvbnN0IGlyYW5nZSAmcmgpIGNvbnN0IGZpbmFsIG92ZXJyaWRlOwog ICAvLyBDaGVjayBvcDEgYW5kIG9wMiBmb3IgY29tcGF0aWJpbGl0eS4KICAgYm9vbCBvcGVyYW5k X2NoZWNrX3AgKHRyZWUsIHRyZWUgdDEsIHRyZWUgdDIpIGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0g ICAgeyByZXR1cm4gVFlQRV9QUkVDSVNJT04gKHQxKSA9PSBUWVBFX1BSRUNJU0lPTiAodDIpOyB9 CisgICAgeyByZXR1cm4gcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDIpOyB9CiB9OwogCiBjbGFz cyBvcGVyYXRvcl9pZGVudGl0eSA6IHB1YmxpYyByYW5nZV9vcGVyYXRvcgpAQCAtNDI5LDggKzQy OSw3IEBAIHB1YmxpYzoKIAkJCQlyZWxhdGlvbl90cmlvID0gVFJJT19WQVJZSU5HKSBjb25zdDsK ICAgLy8gQ2hlY2sgY29tcGF0aWJpbGl0eSBvZiBhbGwgb3BlcmFuZHMuCiAgIGJvb2wgb3BlcmFu ZF9jaGVja19wICh0cmVlIHQxLCB0cmVlIHQyLCB0cmVlIHQzKSBjb25zdCBmaW5hbCBvdmVycmlk ZQotICAgIHsgcmV0dXJuIChUWVBFX1BSRUNJU0lPTiAodDEpID09IFRZUEVfUFJFQ0lTSU9OICh0 MikKLQkgICAgICAmJiBUWVBFX1BSRUNJU0lPTiAodDEpID09IFRZUEVfUFJFQ0lTSU9OICh0Mykp OyB9CisgICAgeyByZXR1cm4gcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDIpICYmIHJhbmdlX2Nv bXBhdGlibGVfcCAodDEsIHQzKTsgfQogcHJpdmF0ZToKICAgdm9pZCB3aV9mb2xkIChpcmFuZ2Ug JnIsIHRyZWUgdHlwZSwgY29uc3Qgd2lkZV9pbnQgJmxoX2xiLAogCQljb25zdCB3aWRlX2ludCAm bGhfdWIsIGNvbnN0IHdpZGVfaW50ICZyaF9sYiwKQEAgLTQ1OSw3ICs0NTgsNyBAQCBjbGFzcyBv cGVyYXRvcl9hYnMgOiBwdWJsaWMgcmFuZ2Vfb3BlcmF0b3IKIAkJICAgICAgIGNvbnN0IGlyYW5n ZSAmcmgpIGNvbnN0IGZpbmFsIG92ZXJyaWRlOwogICAvLyBDaGVjayBjb21wYXRpYmlsaXR5IG9m IExIUyBhbmQgb3AxLgogICBib29sIG9wZXJhbmRfY2hlY2tfcCAodHJlZSB0MSwgdHJlZSB0Miwg dHJlZSkgY29uc3QgZmluYWwgb3ZlcnJpZGUKLSAgICB7IHJldHVybiBUWVBFX1BSRUNJU0lPTiAo dDEpID09IFRZUEVfUFJFQ0lTSU9OICh0Mik7IH0KKyAgICB7IHJldHVybiByYW5nZV9jb21wYXRp YmxlX3AgKHQxLCB0Mik7IH0KIHByaXZhdGU6CiAgIHZvaWQgd2lfZm9sZCAoaXJhbmdlICZyLCB0 cmVlIHR5cGUsIGNvbnN0IHdpZGVfaW50ICZsaF9sYiwKIAkJY29uc3Qgd2lkZV9pbnQgJmxoX3Vi LCBjb25zdCB3aWRlX2ludCAmcmhfbGIsCkBAIC01MDMsOCArNTAyLDcgQEAgcHVibGljOgogCQkJ CXJlbGF0aW9uX3RyaW8gPSBUUklPX1ZBUllJTkcpIGNvbnN0OwogICAvLyBDaGVjayBjb21wYXRp YmlsaXR5IG9mIGFsbCBvcGVyYW5kcy4KICAgYm9vbCBvcGVyYW5kX2NoZWNrX3AgKHRyZWUgdDEs IHRyZWUgdDIsIHRyZWUgdDMpIGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0gICAgeyByZXR1cm4gKFRZ UEVfUFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVDSVNJT04gKHQyKQotCSAgICAgICYmIFRZUEVf UFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVDSVNJT04gKHQzKSk7IH0KKyAgICB7IHJldHVybiBy YW5nZV9jb21wYXRpYmxlX3AgKHQxLCB0MikgJiYgcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDMp OyB9CiBwcml2YXRlOgogICB2b2lkIHdpX2ZvbGQgKGlyYW5nZSAmciwgdHJlZSB0eXBlLCBjb25z dCB3aWRlX2ludCAmbGhfbGIsCiAJCWNvbnN0IHdpZGVfaW50ICZsaF91YiwgY29uc3Qgd2lkZV9p bnQgJnJoX2xiLApAQCAtNTM1LDcgKzUzMyw3IEBAIGNsYXNzIG9wZXJhdG9yX25lZ2F0ZSA6IHB1 YmxpYyByYW5nZV9vcGVyYXRvcgogCQkgIHJlbGF0aW9uX3RyaW8gcmVsID0gVFJJT19WQVJZSU5H KSBjb25zdCBmaW5hbCBvdmVycmlkZTsKICAgLy8gQ2hlY2sgY29tcGF0aWJpbGl0eSBvZiBMSFMg YW5kIG9wMS4KICAgYm9vbCBvcGVyYW5kX2NoZWNrX3AgKHRyZWUgdDEsIHRyZWUgdDIsIHRyZWUp IGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0gICAgeyByZXR1cm4gVFlQRV9QUkVDSVNJT04gKHQxKSA9 PSBUWVBFX1BSRUNJU0lPTiAodDIpOyB9CisgICAgeyByZXR1cm4gcmFuZ2VfY29tcGF0aWJsZV9w ICh0MSwgdDIpOyB9CiB9OwogCiAKQEAgLTU4OSw4ICs1ODcsNyBAQCBwdWJsaWM6CiAJCQkJcmVs YXRpb25fdHJpbyA9IFRSSU9fVkFSWUlORykgY29uc3Q7CiAgIC8vIENoZWNrIGNvbXBhdGliaWxp dHkgb2YgYWxsIG9wZXJhbmRzLgogICBib29sIG9wZXJhbmRfY2hlY2tfcCAodHJlZSB0MSwgdHJl ZSB0MiwgdHJlZSB0MykgY29uc3QgZmluYWwgb3ZlcnJpZGUKLSAgICB7IHJldHVybiAoVFlQRV9Q UkVDSVNJT04gKHQxKSA9PSBUWVBFX1BSRUNJU0lPTiAodDIpCi0JICAgICAgJiYgVFlQRV9QUkVD SVNJT04gKHQxKSA9PSBUWVBFX1BSRUNJU0lPTiAodDMpKTsgfQorICAgIHsgcmV0dXJuIHJhbmdl X2NvbXBhdGlibGVfcCAodDEsIHQyKSAmJiByYW5nZV9jb21wYXRpYmxlX3AgKHQxLCB0Myk7IH0K IH07CiAKIGNsYXNzIG9wZXJhdG9yX2FkZHJfZXhwciA6IHB1YmxpYyByYW5nZV9vcGVyYXRvcgpA QCAtNjIxLDggKzYxOCw3IEBAIHB1YmxpYzoKIAkJICAgICAgIGNvbnN0IGlyYW5nZSAmcmgpIGNv bnN0IGZpbmFsIG92ZXJyaWRlOwogICAvLyBDaGVjayBjb21wYXRpYmlsaXR5IG9mIGFsbCBvcGVy YW5kcy4KICAgYm9vbCBvcGVyYW5kX2NoZWNrX3AgKHRyZWUgdDEsIHRyZWUgdDIsIHRyZWUgdDMp IGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0gICAgeyByZXR1cm4gKFRZUEVfUFJFQ0lTSU9OICh0MSkg PT0gVFlQRV9QUkVDSVNJT04gKHQyKQotCSAgICAgICYmIFRZUEVfUFJFQ0lTSU9OICh0MSkgPT0g VFlQRV9QUkVDSVNJT04gKHQzKSk7IH0KKyAgICB7IHJldHVybiByYW5nZV9jb21wYXRpYmxlX3Ag KHQxLCB0MikgJiYgcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDMpOyB9CiB9OwogCiBjbGFzcyBv cGVyYXRvcl9iaXR3aXNlX3hvciA6IHB1YmxpYyByYW5nZV9vcGVyYXRvcgpAQCAtNjQ1LDggKzY0 MSw3IEBAIHB1YmxpYzoKIAkJICAgICAgIGNvbnN0IGlyYW5nZSAmcmgpIGNvbnN0IGZpbmFsIG92 ZXJyaWRlOwogICAvLyBDaGVjayBjb21wYXRpYmlsaXR5IG9mIGFsbCBvcGVyYW5kcy4KICAgYm9v bCBvcGVyYW5kX2NoZWNrX3AgKHRyZWUgdDEsIHRyZWUgdDIsIHRyZWUgdDMpIGNvbnN0IGZpbmFs IG92ZXJyaWRlCi0gICAgeyByZXR1cm4gKFRZUEVfUFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVD SVNJT04gKHQyKQotCSAgICAgICYmIFRZUEVfUFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVDSVNJ T04gKHQzKSk7IH0KKyAgICB7IHJldHVybiByYW5nZV9jb21wYXRpYmxlX3AgKHQxLCB0MikgJiYg cmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDMpOyB9CiBwcml2YXRlOgogICB2b2lkIHdpX2ZvbGQg KGlyYW5nZSAmciwgdHJlZSB0eXBlLCBjb25zdCB3aWRlX2ludCAmbGhfbGIsCiAJCWNvbnN0IHdp ZGVfaW50ICZsaF91YiwgY29uc3Qgd2lkZV9pbnQgJnJoX2xiLApAQCAtNjcyLDggKzY2Nyw3IEBA IHB1YmxpYzoKIAkJICAgICAgIGNvbnN0IGlyYW5nZSAmcmgpIGNvbnN0IG92ZXJyaWRlOwogICAv LyBDaGVjayBjb21wYXRpYmlsaXR5IG9mIGFsbCBvcGVyYW5kcy4KICAgYm9vbCBvcGVyYW5kX2No ZWNrX3AgKHRyZWUgdDEsIHRyZWUgdDIsIHRyZWUgdDMpIGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0g ICAgeyByZXR1cm4gKFRZUEVfUFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVDSVNJT04gKHQyKQot CSAgICAgICYmIFRZUEVfUFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVDSVNJT04gKHQzKSk7IH0K KyAgICB7IHJldHVybiByYW5nZV9jb21wYXRpYmxlX3AgKHQxLCB0MikgJiYgcmFuZ2VfY29tcGF0 aWJsZV9wICh0MSwgdDMpOyB9CiBwcm90ZWN0ZWQ6CiAgIHZvaWQgd2lfZm9sZCAoaXJhbmdlICZy LCB0cmVlIHR5cGUsIGNvbnN0IHdpZGVfaW50ICZsaF9sYiwKIAkJY29uc3Qgd2lkZV9pbnQgJmxo X3ViLCBjb25zdCB3aWRlX2ludCAmcmhfbGIsCkBAIC02OTgsOCArNjkyLDcgQEAgcHVibGljOgog CQkgICAgICAgY29uc3QgaXJhbmdlICZyaCkgY29uc3Qgb3ZlcnJpZGU7CiAgIC8vIENoZWNrIGNv bXBhdGliaWxpdHkgb2YgYWxsIG9wZXJhbmRzLgogICBib29sIG9wZXJhbmRfY2hlY2tfcCAodHJl ZSB0MSwgdHJlZSB0MiwgdHJlZSB0MykgY29uc3QgZmluYWwgb3ZlcnJpZGUKLSAgICB7IHJldHVy biAoVFlQRV9QUkVDSVNJT04gKHQxKSA9PSBUWVBFX1BSRUNJU0lPTiAodDIpCi0JICAgICAgJiYg VFlQRV9QUkVDSVNJT04gKHQxKSA9PSBUWVBFX1BSRUNJU0lPTiAodDMpKTsgfQorICAgIHsgcmV0 dXJuIHJhbmdlX2NvbXBhdGlibGVfcCAodDEsIHQyKSAmJiByYW5nZV9jb21wYXRpYmxlX3AgKHQx LCB0Myk7IH0KIHByb3RlY3RlZDoKICAgdm9pZCB3aV9mb2xkIChpcmFuZ2UgJnIsIHRyZWUgdHlw ZSwgY29uc3Qgd2lkZV9pbnQgJmxoX2xiLAogCQljb25zdCB3aWRlX2ludCAmbGhfdWIsIGNvbnN0 IHdpZGVfaW50ICZyaF9sYiwKQEAgLTcxMyw4ICs3MDYsNyBAQCBwdWJsaWM6CiAJCSAgICAgICBj b25zdCBpcmFuZ2UgJnJoKSBjb25zdCBvdmVycmlkZTsKICAgLy8gQ2hlY2sgY29tcGF0aWJpbGl0 eSBvZiBhbGwgb3BlcmFuZHMuCiAgIGJvb2wgb3BlcmFuZF9jaGVja19wICh0cmVlIHQxLCB0cmVl IHQyLCB0cmVlIHQzKSBjb25zdCBmaW5hbCBvdmVycmlkZQotICAgIHsgcmV0dXJuIChUWVBFX1BS RUNJU0lPTiAodDEpID09IFRZUEVfUFJFQ0lTSU9OICh0MikKLQkgICAgICAmJiBUWVBFX1BSRUNJ U0lPTiAodDEpID09IFRZUEVfUFJFQ0lTSU9OICh0MykpOyB9CisgICAgeyByZXR1cm4gcmFuZ2Vf Y29tcGF0aWJsZV9wICh0MSwgdDIpICYmIHJhbmdlX2NvbXBhdGlibGVfcCAodDEsIHQzKTsgfQog cHJvdGVjdGVkOgogICB2b2lkIHdpX2ZvbGQgKGlyYW5nZSAmciwgdHJlZSB0eXBlLCBjb25zdCB3 aWRlX2ludCAmbGhfbGIsCiAJCWNvbnN0IHdpZGVfaW50ICZsaF91YiwgY29uc3Qgd2lkZV9pbnQg JnJoX2xiLApAQCAtNzI4LDggKzcyMCw3IEBAIHB1YmxpYzoKICAgICAgIGNvbnN0IGlyYW5nZSAm cmgpIGNvbnN0IG92ZXJyaWRlOwogICAvLyBDaGVjayBjb21wYXRpYmlsaXR5IG9mIGFsbCBvcGVy YW5kcy4KICAgYm9vbCBvcGVyYW5kX2NoZWNrX3AgKHRyZWUgdDEsIHRyZWUgdDIsIHRyZWUgdDMp IGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0gICAgeyByZXR1cm4gKFRZUEVfUFJFQ0lTSU9OICh0MSkg PT0gVFlQRV9QUkVDSVNJT04gKHQyKQotCSAgICAgICYmIFRZUEVfUFJFQ0lTSU9OICh0MSkgPT0g VFlQRV9QUkVDSVNJT04gKHQzKSk7IH0KKyAgICB7IHJldHVybiByYW5nZV9jb21wYXRpYmxlX3Ag KHQxLCB0MikgJiYgcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDMpOyB9CiBwcm90ZWN0ZWQ6CiAg IHZvaWQgd2lfZm9sZCAoaXJhbmdlICZyLCB0cmVlIHR5cGUsIGNvbnN0IHdpZGVfaW50ICZsaF9s YiwKIAkJY29uc3Qgd2lkZV9pbnQgJmxoX3ViLCBjb25zdCB3aWRlX2ludCAmcmhfbGIsCmRpZmYg LS1naXQgYS9nY2MvcmFuZ2Utb3AuY2MgYi9nY2MvcmFuZ2Utb3AuY2MKaW5kZXggYTA5MTgxNTk5 N2QuLjVkYmM0YmJiNDJlIDEwMDY0NAotLS0gYS9nY2MvcmFuZ2Utb3AuY2MKKysrIGIvZ2NjL3Jh bmdlLW9wLmNjCkBAIC0yNDkzLDcgKzI0OTMsNyBAQCBwdWJsaWM6CiAgICAgeyB1cGRhdGVfa25v d25fYml0bWFzayAociwgTFNISUZUX0VYUFIsIGxoLCByaCk7IH0KICAgLy8gQ2hlY2sgY29tcGF0 aWJpbGl0eSBvZiBMSFMgYW5kIG9wMS4KICAgYm9vbCBvcGVyYW5kX2NoZWNrX3AgKHRyZWUgdDEs IHRyZWUgdDIsIHRyZWUpIGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0gICAgeyByZXR1cm4gVFlQRV9Q UkVDSVNJT04gKHQxKSA9PSBUWVBFX1BSRUNJU0lPTiAodDIpOyB9CisgICAgeyByZXR1cm4gcmFu Z2VfY29tcGF0aWJsZV9wICh0MSwgdDIpOyB9CiB9IG9wX2xzaGlmdDsKIAogY2xhc3Mgb3BlcmF0 b3JfcnNoaWZ0IDogcHVibGljIGNyb3NzX3Byb2R1Y3Rfb3BlcmF0b3IKQEAgLTI1MjUsNyArMjUy NSw3IEBAIHB1YmxpYzoKICAgICB7IHVwZGF0ZV9rbm93bl9iaXRtYXNrIChyLCBSU0hJRlRfRVhQ UiwgbGgsIHJoKTsgfQogICAvLyBDaGVjayBjb21wYXRpYmlsaXR5IG9mIExIUyBhbmQgb3AxLgog ICBib29sIG9wZXJhbmRfY2hlY2tfcCAodHJlZSB0MSwgdHJlZSB0MiwgdHJlZSkgY29uc3QgZmlu YWwgb3ZlcnJpZGUKLSAgICB7IHJldHVybiBUWVBFX1BSRUNJU0lPTiAodDEpID09IFRZUEVfUFJF Q0lTSU9OICh0Mik7IH0KKyAgICB7IHJldHVybiByYW5nZV9jb21wYXRpYmxlX3AgKHQxLCB0Mik7 IH0KIH0gb3BfcnNoaWZ0OwogCiAKQEAgLTMxMDMsOCArMzEwMyw3IEBAIHB1YmxpYzoKIAkJCSAg cmVsYXRpb25fdHJpbyByZWwgPSBUUklPX1ZBUllJTkcpIGNvbnN0OwogICAvLyBDaGVjayBjb21w YXRpYmlsaXR5IG9mIGFsbCBvcGVyYW5kcy4KICAgYm9vbCBvcGVyYW5kX2NoZWNrX3AgKHRyZWUg dDEsIHRyZWUgdDIsIHRyZWUgdDMpIGNvbnN0IGZpbmFsIG92ZXJyaWRlCi0gICAgeyByZXR1cm4g KFRZUEVfUFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVDSVNJT04gKHQyKQotCSAgICAgICYmIFRZ UEVfUFJFQ0lTSU9OICh0MSkgPT0gVFlQRV9QUkVDSVNJT04gKHQzKSk7IH0KKyAgICB7IHJldHVy biByYW5nZV9jb21wYXRpYmxlX3AgKHQxLCB0MikgJiYgcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwg dDMpOyB9CiB9IG9wX2xvZ2ljYWxfYW5kOwogCiBib29sCkBAIC0zNjA4LDggKzM2MDcsNyBAQCBw dWJsaWM6CiAJCQkgIHJlbGF0aW9uX3RyaW8gcmVsID0gVFJJT19WQVJZSU5HKSBjb25zdDsKICAg Ly8gQ2hlY2sgY29tcGF0aWJpbGl0eSBvZiBhbGwgb3BlcmFuZHMuCiAgIGJvb2wgb3BlcmFuZF9j aGVja19wICh0cmVlIHQxLCB0cmVlIHQyLCB0cmVlIHQzKSBjb25zdCBmaW5hbCBvdmVycmlkZQot ICAgIHsgcmV0dXJuIChUWVBFX1BSRUNJU0lPTiAodDEpID09IFRZUEVfUFJFQ0lTSU9OICh0MikK LQkgICAgICAmJiBUWVBFX1BSRUNJU0lPTiAodDEpID09IFRZUEVfUFJFQ0lTSU9OICh0MykpOyB9 CisgICAgeyByZXR1cm4gcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDIpICYmIHJhbmdlX2NvbXBh dGlibGVfcCAodDEsIHQzKTsgfQogfSBvcF9sb2dpY2FsX29yOwogCiBib29sCkBAIC00MDM4LDcg KzQwMzYsNyBAQCBwdWJsaWM6CiAJCQkgIHJlbGF0aW9uX3RyaW8gcmVsID0gVFJJT19WQVJZSU5H KSBjb25zdDsKICAgLy8gQ2hlY2sgY29tcGF0aWJpbGl0eSBvZiBMSFMgYW5kIG9wMS4KICAgYm9v bCBvcGVyYW5kX2NoZWNrX3AgKHRyZWUgdDEsIHRyZWUgdDIsIHRyZWUpIGNvbnN0IGZpbmFsIG92 ZXJyaWRlCi0gICAgeyByZXR1cm4gVFlQRV9QUkVDSVNJT04gKHQxKSA9PSBUWVBFX1BSRUNJU0lP TiAodDIpOyB9CisgICAgeyByZXR1cm4gcmFuZ2VfY29tcGF0aWJsZV9wICh0MSwgdDIpOyB9CiB9 IG9wX2xvZ2ljYWxfbm90OwogCiAvLyBGb2xkaW5nIGEgbG9naWNhbCBOT1QsIG9kZGx5IGVub3Vn aCwgaW52b2x2ZXMgZG9pbmcgbm90aGluZyBvbiB0aGUKZGlmZiAtLWdpdCBhL2djYy92YWx1ZS1y YW5nZS5oIGIvZ2NjL3ZhbHVlLXJhbmdlLmgKaW5kZXggMzMwZTZmNzBjNmIuLjMzZjIwNGE3MTcx IDEwMDY0NAotLS0gYS9nY2MvdmFsdWUtcmFuZ2UuaAorKysgYi9nY2MvdmFsdWUtcmFuZ2UuaApA QCAtMTU1MCw0ICsxNTUwLDE1IEBAIHZvaWQgZnJhbmdlX2FyaXRobWV0aWMgKGVudW0gdHJlZV9j b2RlLCB0cmVlLCBSRUFMX1ZBTFVFX1RZUEUgJiwKIAkJCWNvbnN0IFJFQUxfVkFMVUVfVFlQRSAm LCBjb25zdCBSRUFMX1ZBTFVFX1RZUEUgJiwKIAkJCWNvbnN0IFJFQUxfVkFMVUVfVFlQRSAmKTsK IAorLy8gUmV0dXJuIHRydWUgaWYgVFlQRTEgYW5kIFRZUEUyIGFyZSBjb21wYXRpYmxlIHJhbmdl IHR5cGVzLgorCitpbmxpbmUgYm9vbAorcmFuZ2VfY29tcGF0aWJsZV9wICh0cmVlIHR5cGUxLCB0 cmVlIHR5cGUyKQoreworICAvLyB0eXBlc19jb21wYXRpYmxlX3AgcmVxdWlyZXMgY29udmVyc2lv biBpbiBib3RoIGRpcmVjdGlvbnMgdG8gYmUgdXNlbGVzcy4KKyAgLy8gR0lNUExFIG9ubHkgcmVx dWlyZXMgYSBjYXN0IG9uZSB3YXkgaW4gb3JkZXIgdG8gYmUgY29tcGF0aWJsZS4KKyAgLy8gUmFu Z2VzIHJlYWxseSBvbmx5IG5lZWQgdGhlIHNpZ24gYW5kIHByZWNpc2lvbiB0byBiZSB0aGUgc2Ft ZS4KKyAgcmV0dXJuIChUWVBFX1BSRUNJU0lPTiAodHlwZTEpID09IFRZUEVfUFJFQ0lTSU9OICh0 eXBlMikKKwkgICYmIFRZUEVfU0lHTiAodHlwZTEpID09IFRZUEVfU0lHTiAodHlwZTIpKTsKK30K ICNlbmRpZiAvLyBHQ0NfVkFMVUVfUkFOR0VfSAotLSAKMi40MS4wCgo= --------------yZCpWnw8JEVj6yHjxV00iBT0--