From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10065.outbound.protection.outlook.com [40.107.1.65]) by sourceware.org (Postfix) with ESMTPS id 9708A385C423 for ; Tue, 5 Oct 2021 12:55:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9708A385C423 Received: from DB6PR0301CA0057.eurprd03.prod.outlook.com (2603:10a6:4:54::25) by AM6PR08MB4167.eurprd08.prod.outlook.com (2603:10a6:20b:ad::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Tue, 5 Oct 2021 12:55:48 +0000 Received: from DB5EUR03FT033.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:54:cafe::74) by DB6PR0301CA0057.outlook.office365.com (2603:10a6:4:54::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Tue, 5 Oct 2021 12:55:48 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT033.mail.protection.outlook.com (10.152.20.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Tue, 5 Oct 2021 12:55:47 +0000 Received: ("Tessian outbound e27daf245730:v103"); Tue, 05 Oct 2021 12:55:47 +0000 X-CR-MTA-TID: 64aa7808 Received: from fac516b8894b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id CF82027A-9EFE-4071-9B0F-32DD588E4671.1; Tue, 05 Oct 2021 12:55:42 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fac516b8894b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 05 Oct 2021 12:55:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BZMe1Co0KSqU300g+FCvhGIsCbYnJHcV1iraQOosAsfNW0Yv3bgJp/6lghyCNl6jfb5Hxe5/B4ac52yT5T+oXjWr6XJs+ejhUMy4/MpSIVC/bSxHxQFSFVfqzA3WD9dqVO1Fj30lMhRhZHLbVFG4sV9SMFUCLRfzvCucsx81oUnlAoDliAC2L95pT9IwBN77OKu8ezGUM1h/3vuUx+qPuY6W21NBtJjsemEGE7WGE5hc992UO95g5fDOEX51PCXSsP+XzVz1W+YIM7R2lQRtnmF4RY9EUvjEZD950dn+JTFl2yTBTQ+YmA29xGgaPssEshPluugPlUqhfX2fQ5DjRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=852unWRC3a+aT+VLrAP8nIJbb5tqRcoWorUvqvmUuUc=; b=KnEFaR2p2Ht7PULZFdj73BgXpU19J8DDXrKg04VbChXDifmoSGvXS0fN5Q/SZFWLQTDH+CtutiJrYsX5tZh2ZnCWt7mHWFH/sWOJQB36sCK1pSlU5OfvAhsdtG1No5xrDhvLnRQqsQcshGEys1BFJuqcoQwQsPLEI6gz9Xjb/YBcJQRh11Mxsg+wH3HRDip7ot00cDomkiRxkQ2l5obxt5Crmji3PZxfHQfSi1BxeSP/w6Ak/8kKmpzvotBJsEpU6cU+xMgxwykqKtfpKZ3dWE2Un6AiIQ9Kfg24a8c3Lcs1wiZlpg3ewpOQ0JGBXYCY348eyAXPNrciaAMpI0crZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM0PR08MB5316.eurprd08.prod.outlook.com (2603:10a6:208:185::14) by AM8PR08MB5556.eurprd08.prod.outlook.com (2603:10a6:20b:1db::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14; Tue, 5 Oct 2021 12:55:38 +0000 Received: from AM0PR08MB5316.eurprd08.prod.outlook.com ([fe80::9c40:c69a:3ec5:88cc]) by AM0PR08MB5316.eurprd08.prod.outlook.com ([fe80::9c40:c69a:3ec5:88cc%6]) with mapi id 15.20.4566.022; Tue, 5 Oct 2021 12:55:38 +0000 From: Tamar Christina To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , nd Subject: RE: [PATCH 5/7]middle-end Convert bitclear + cmp #0 into cm Thread-Topic: [PATCH 5/7]middle-end Convert bitclear + cmp #0 into cm Thread-Index: AQHXtU4Cr64N+y8IjEqGo7Pasjs07qu8GyYAgAA7+bCAAAmpgIAIBAkg Date: Tue, 5 Oct 2021 12:55:38 +0000 Message-ID: References: <20210929162106.GA5336@arm.com> <81r597qr-192o-q9p-6r5o-37nn6r48n538@fhfr.qr> <58723299-qp53-6s88-o9o1-891o5r1s647n@fhfr.qr> In-Reply-To: <58723299-qp53-6s88-o9o1-891o5r1s647n@fhfr.qr> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 67F06DFE0DA3B94BB01A8EBB13F839EF.0 x-checkrecipientchecked: true Authentication-Results-Original: suse.de; dkim=none (message not signed) header.d=none;suse.de; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 7de06223-fbd6-4469-f2cd-08d987ff73a8 x-ms-traffictypediagnostic: AM8PR08MB5556:|AM6PR08MB4167: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:1824;OLM:1824; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: FaZVXxwkpGqsQVvjIRukxVmz7zhCqV94dqfs3Bi1wmrFM8BUsRSvt8FjoUlmLfzxZCHIetirBy34VgZDgUrzYKkjhMDLm7i8G8V9u2UoduILyBLa4xQ77012QNWxdkHl0cXbsdlBdpdNHjsHMviidc29ONQrKr8RVwHK/q9dv3maxnoWKhUK5FUW9MDi1qsfUd8nVPff/9xOWJd1Ti0m8kDykj+d4ELQmhkZ+NYBk2x9LJyjItiDtC8gWhMtDkdyrDAKU+fM3S0gjYIPRJb3Y1tCGy0ZB+wPWc9O6jI3H7+TMHa8OnyM/nHvzPF0FB/PoAw2IPynYiMHLYo5EPXCPs8HfBiQuOBTPdzf7XEEMuwbgH+VrnrVtT+CsNF9/hIAWl/Cv/QPq2WZyjOlpPkr+6E1RAZh5Uk8sbMSGgK5pGAokU5ORq+etcOMfPu656STOqQcjx0/3IE5xRH0CTvSII21DWL2UrlG/2JUJ4ztQSOoZQYUjnEm/hR4oKDkboFPtShoSykd2vYOHVoM6KnNRmmqYweO8FoNGxp7kc1kLdeibWplvoS3mvZ67s+HHsewWJ+JjKyX8fIzGVI0k598fHMx1FpKT+M/wlNM9kitZ9qmHeJXrU4AilSbVSZ2zrfeG3DGZOPH2ZEmoaKjv04NO5SyqT27pUulXZzgREuFW2QjZB5N2XwDhFyFRrRMfQOEikvn40Twzq4Ydts2/Z97zd5LGROehaxTzwNZHoPqtw3aijZBiILh9mRGDGrTyrs4kworHadfRXPPN/kKcySTLPfS97IDZ5Ws7HUtccRcxaimn8k6NsrltAxafgJkZ4n/bAorlDd6abGjBehygQiSfw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR08MB5316.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(66556008)(64756008)(52536014)(8936002)(83380400001)(2906002)(6916009)(71200400001)(99936003)(66946007)(66476007)(38070700005)(8676002)(508600001)(122000001)(76116006)(186003)(54906003)(86362001)(66446008)(55016002)(316002)(5660300002)(7696005)(9686003)(33656002)(38100700002)(4326008)(6506007)(26005)(30864003)(559001)(579004); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_AM0PR08MB5316A3C69CD03AF9A77E6730FFAF9AM0PR08MB5316eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5556 Original-Authentication-Results: suse.de; dkim=none (message not signed) header.d=none;suse.de; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT033.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 2dee65e5-107b-42d0-1170-08d987ff6e18 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fGF1CkLu4GP/JzWJI6XtW+A+hcr/godC/Pzcs0iWZtMS+X5igllHIesQaRlq9R22LYpRJB2h6W4K2SEbwUEkWRrtAUbVaJODLqdwRI3QdtZfF5OPeCZ28Cw/bo4pfu4uNq4Gjo3w1IMl4IL6HQWCzO8Rl2gj5b8b65MWetPrCqAF31EfOIJTWsTVzX4GFIBvA9XkD6nvNdJsniAYPjT7+BEHkLaeQu/Za28Lb/VWNRyIQOFpgAYtmIepabe2P0X3NKgwfqQpUyKhHO5+SC3PlsiVr/4lHqv0+Oc1ZsvAobrjye09GUMyTb60dhgvXHQABT3M7P9dxVwYxABfWKi2xZAkHNXzSvpNX6V6VOZJcisk4KTml7dvk45TwS+zQC3HVWvu4l8s7XOLWW2lZscXrflBb7SOOF+cdPHLm4GHdaBOQPhopAqbSmz4eLdE+fs6Ac4O3WxmHT7etDjHiUrvg/vfB2jS7js6T0UjbkuleZG6AwFym0Y7+bAA8GLeuvTGtwZwngdjUw5cfXvvIJAlWAGdTNCJAENTxtMiH7mPY/GbU68FqWMLOn1YRc0Y26fT8QAxTzPqptMxDBaEdECaFhXEnnBeON0ct3FILw7fdXyNralRBLZBH4nuPLF6Gr61sWAAHJJkQX11pL5vdGTFUzSIlA6JW8NToQcrcYVXP+2LxAOdPf9GMELjFTULM316+z3UH2ln/Xa3QrxjvPR8u6PEQd51lwh8MbMj1NqmzDjQeNWdgbWs/w/fyawZt8pLVnifwxbmRkT3KnxSl+fiprumg97Rv/mUWXf/W9j0i3WY9HBgOS17fGUF5MPr9S+DNcl66dlX0w9c4YnOpKgZ+Q== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(36840700001)(46966006)(186003)(508600001)(6506007)(30864003)(47076005)(83380400001)(26005)(8936002)(70206006)(33656002)(82310400003)(4326008)(7696005)(36860700001)(8676002)(5660300002)(235185007)(55016002)(6862004)(9686003)(336012)(81166007)(70586007)(86362001)(356005)(52536014)(54906003)(2906002)(316002)(33964004)(99936003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2021 12:55:47.6418 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7de06223-fbd6-4469-f2cd-08d987ff73a8 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT033.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4167 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY 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: Tue, 05 Oct 2021 12:55:55 -0000 --_002_AM0PR08MB5316A3C69CD03AF9A77E6730FFAF9AM0PR08MB5316eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQWxsLA0KDQpIZXJlJ3MgYSBuZXcgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggaGFuZGxpbmcgYm90 aCBzY2FsYXIgYW5kIHZlY3RvciBtb2Rlcw0KYW5kIG5vbi11bmlmb3JtIGNvbnN0YW50IHZlY3Rv cnMuDQoNCkJvb3RzdHJhcHBlZCBSZWd0ZXN0ZWQgb24gYWFyY2g2NC1ub25lLWxpbnV4LWdudSwN Cng4Nl82NC1wYy1saW51eC1nbnUgYW5kIG5vIHJlZ3Jlc3Npb25zLg0KDQpJbiBvcmRlciB0byBu b3QgYnJlYWsgSVZvcHRzIGFuZCBDU0UgSSBoYXZlIGFkZGVkIGENCnJlcXVpcmVtZW50IGZvciB0 aGUgc2NhbGFyIHZlcnNpb24gdG8gYmUgc2luZ2xlIHVzZS4NCg0KVGhhbmtzLA0KVGFtYXINCg0K Z2NjL0NoYW5nZUxvZzoNCg0KCSogdHJlZS5jIChiaXRtYXNrX2ludl9jc3RfdmVjdG9yX3ApOiBO ZXcuDQoJKiB0cmVlLmggKGJpdG1hc2tfaW52X2NzdF92ZWN0b3JfcCk6IE5ldy4NCgkqIG1hdGNo LnBkOiBVc2UgaXQgaW4gbmV3IGJpdG1hc2sgY29tcGFyZSBwYXR0ZXJuLg0KDQpnY2MvdGVzdHN1 aXRlL0NoYW5nZUxvZzoNCg0KCSogZ2NjLmRnL2JpYy1iaXRtYXNrLTEwLmM6IE5ldyB0ZXN0Lg0K CSogZ2NjLmRnL2JpYy1iaXRtYXNrLTExLmM6IE5ldyB0ZXN0Lg0KCSogZ2NjLmRnL2JpYy1iaXRt YXNrLTEyLmM6IE5ldyB0ZXN0Lg0KCSogZ2NjLmRnL2JpYy1iaXRtYXNrLTEzLmM6IE5ldyB0ZXN0 Lg0KCSogZ2NjLmRnL2JpYy1iaXRtYXNrLTE0LmM6IE5ldyB0ZXN0Lg0KCSogZ2NjLmRnL2JpYy1i aXRtYXNrLTE1LmM6IE5ldyB0ZXN0Lg0KCSogZ2NjLmRnL2JpYy1iaXRtYXNrLTE2LmM6IE5ldyB0 ZXN0Lg0KCSogZ2NjLmRnL2JpYy1iaXRtYXNrLTE3LmM6IE5ldyB0ZXN0Lg0KCSogZ2NjLmRnL2Jp Yy1iaXRtYXNrLTE4LmM6IE5ldyB0ZXN0Lg0KCSogZ2NjLmRnL2JpYy1iaXRtYXNrLTE5LmM6IE5l dyB0ZXN0Lg0KCSogZ2NjLmRnL2JpYy1iaXRtYXNrLTIuYzogTmV3IHRlc3QuDQoJKiBnY2MuZGcv YmljLWJpdG1hc2stMjAuYzogTmV3IHRlc3QuDQoJKiBnY2MuZGcvYmljLWJpdG1hc2stMjEuYzog TmV3IHRlc3QuDQoJKiBnY2MuZGcvYmljLWJpdG1hc2stMjIuYzogTmV3IHRlc3QuDQoJKiBnY2Mu ZGcvYmljLWJpdG1hc2stMjMuYzogTmV3IHRlc3QuDQoJKiBnY2MuZGcvYmljLWJpdG1hc2stMy5j OiBOZXcgdGVzdC4NCgkqIGdjYy5kZy9iaWMtYml0bWFzay00LmM6IE5ldyB0ZXN0Lg0KCSogZ2Nj LmRnL2JpYy1iaXRtYXNrLTUuYzogTmV3IHRlc3QuDQoJKiBnY2MuZGcvYmljLWJpdG1hc2stNi5j OiBOZXcgdGVzdC4NCgkqIGdjYy5kZy9iaWMtYml0bWFzay03LmM6IE5ldyB0ZXN0Lg0KCSogZ2Nj LmRnL2JpYy1iaXRtYXNrLTguYzogTmV3IHRlc3QuDQoJKiBnY2MuZGcvYmljLWJpdG1hc2stOS5j OiBOZXcgdGVzdC4NCgkqIGdjYy5kZy9iaWMtYml0bWFzay5oOiBOZXcgdGVzdC4NCgkqIGdjYy50 YXJnZXQvYWFyY2g2NC9iaWMtYml0bWFzay0xLmM6IE5ldyB0ZXN0Lg0KDQotLS0gaW5saW5lIGNv cHkgb2YgcGF0Y2ggLS0NCg0KZGlmZiAtLWdpdCBhL2djYy9tYXRjaC5wZCBiL2djYy9tYXRjaC5w ZA0KaW5kZXggMGZjZmQwZWE2MmMwNDNkYzIxN2QwZDU2MGNlNWI3ZTU2OWI3MGU3ZC4uN2QyYTI0 ZGJjNWU5NjQ0YTA5OTY4Zjg3N2UxMmE4MjRkOGJhMWNhYSAxMDA2NDQNCi0tLSBhL2djYy9tYXRj aC5wZA0KKysrIGIvZ2NjL21hdGNoLnBkDQpAQCAtMzcsNyArMzcsOCBAQCBhbG9uZyB3aXRoIEdD Qzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQ0KICAgIGludGVnZXJfcG93MnAN CiAgICB1bmlmb3JtX2ludGVnZXJfY3N0X3ANCiAgICBIT05PUl9OQU5TDQotICAgdW5pZm9ybV92 ZWN0b3JfcCkNCisgICB1bmlmb3JtX3ZlY3Rvcl9wDQorICAgYml0bWFza19pbnZfY3N0X3ZlY3Rv cl9wKQ0KIA0KIC8qIE9wZXJhdG9yIGxpc3RzLiAgKi8NCiAoZGVmaW5lX29wZXJhdG9yX2xpc3Qg dGNjX2NvbXBhcmlzb24NCkBAIC00OTAwLDYgKzQ5MDEsMjQgQEAgREVGSU5FX0lOVF9BTkRfRkxP QVRfUk9VTkRfRk4gKFJJTlQpDQogICAgICAgKGVxY21wIChiaXRfYW5kIEAxIHsgd2lkZV9pbnRf dG9fdHJlZSAodHksIG1hc2sgLSByaHMpOyB9KQ0KIAkgICAgIHsgYnVpbGRfemVyb19jc3QgKHR5 KTsgfSkpKSkpKQ0KIA0KKy8qIFRyYW5zZm9ybSBjb21wYXJpc29ucyBvZiB0aGUgZm9ybSAoWCAm IFkpIENNUCAwIHRvIFggQ01QMiBaDQorICAgd2hlcmUgflkgKyAxID09IHBvdzIgYW5kIFogPSB+ WS4gICovDQorKGZvciBjc3QgKFZFQ1RPUl9DU1QgSU5URUdFUl9DU1QpDQorIChmb3IgY21wIChs ZSBlcSBuZSBnZSBndCkNCisgICAgICBpY21wIChsZSBsZSBndCBsZSBndCkNCisgKHNpbXBsaWZ5 DQorICAoY21wIChiaXRfYW5kOmNAMiBAMCBjc3RAMSkgaW50ZWdlcl96ZXJvcCkNCisgICAod2l0 aCB7IHRyZWUgY3N0cyA9IGJpdG1hc2tfaW52X2NzdF92ZWN0b3JfcCAoQDEpOyB9DQorICAgICAo c3dpdGNoDQorICAgICAgKGlmIChjc3RzICYmIFRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAoQDEp KQ0KKwkgICAmJiAoVkVDVE9SX1RZUEVfUCAoVFJFRV9UWVBFIChAMSkpIHx8IHNpbmdsZV91c2Ug KEAyKSkpDQorICAgICAgIChpY21wIEAwIHsgY3N0czsgfSkpDQorICAgICAgKGlmIChjc3RzICYm ICFUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKEAxKSkNCisJICAgJiYgKGNtcCA9PSBFUV9FWFBS IHx8IGNtcCA9PSBORV9FWFBSKQ0KKwkgICAmJiAoVkVDVE9SX1RZUEVfUCAoVFJFRV9UWVBFIChA MSkpIHx8IHNpbmdsZV91c2UgKEAyKSkpDQorICAgICAgICh3aXRoIHsgdHJlZSB1dHlwZSA9IHVu c2lnbmVkX3R5cGVfZm9yIChUUkVFX1RZUEUgKEAxKSk7IH0NCisJKGljbXAgKGNvbnZlcnQ6dXR5 cGUgQDApIHsgY3N0czsgfSkpKSkpKSkpDQorDQogLyogLUEgQ01QIC1CIC0+IEIgQ01QIEEuICAq Lw0KIChmb3IgY21wICh0Y2NfY29tcGFyaXNvbikNCiAgICAgIHNjbXAgKHN3YXBwZWRfdGNjX2Nv bXBhcmlzb24pDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2st MTAuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTEwLmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw Li43NmEyMmEyMzEzMTM3YTJhNzVkZDcxMWMyYzE1YzJkM2EzNGUxNWFhDQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0xMC5jDQpAQCAtMCwwICsx LDI2IEBADQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1zYXZl LXRlbXBzIC1mZHVtcC10cmVlLWRjZSIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisN CitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQ0KK3ZvaWQgZnVuMShpbnQzMl90ICp4 LCBpbnQgbikNCit7DQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQor ICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPT0gMDsNCit9DQorDQorX19hdHRyaWJ1dGVfXygo bm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzEiKSkpDQordm9pZCBmdW4yKGludDMyX3QgKngs IGludCBuKQ0KK3sNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisg ICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSA9PSAwOw0KK30NCisNCisjZGVmaW5lIFRZUEUgaW50 MzJfdA0KKyNpbmNsdWRlICJiaWMtYml0bWFzay5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LXRyZWUtZHVtcCB7PD1ccyouK1x7IDI1NSwuK1x9fSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZccyouK1x7IDQyOTQ5NjcyOTAsLitcfX0gZGNlNyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHtccytiaWNccyt9IGRj ZTcgeyB0YXJnZXQgeyBhYXJjaDY0Ki0qLSogfSB9IH0gfSAqLw0KKw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTExLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9iaWMtYml0bWFzay0xMS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI1NTNkN2JhMmY4MjNmN2EyMTIzNzQ1 MTk5MGQwYTIxNmQyZjkxMg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvYmljLWJpdG1hc2stMTEuYw0KQEAgLTAsMCArMSwyNSBAQA0KKy8qIHsgZGctZG8gcnVuIH0g Ki8NCisvKiB7IGRnLW9wdGlvbnMgIi1PMyAtc2F2ZS10ZW1wcyAtZmR1bXAtdHJlZS1kY2UiIH0g Ki8NCisNCisjaW5jbHVkZSA8c3RkaW50Lmg+DQorDQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUs IG5vaXBhKSkNCit2b2lkIGZ1bjEodWludDMyX3QgKngsIGludCBuKQ0KK3sNCisgICAgZm9yIChp bnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUp KSAhPSAwOw0KK30NCisNCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEsIG9wdGltaXpl KCJPMSIpKSkNCit2b2lkIGZ1bjIodWludDMyX3QgKngsIGludCBuKQ0KK3sNCisgICAgZm9yIChp bnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUp KSAhPSAwOw0KK30NCisNCisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCINCisNCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAgez5ccyouK1x7IDI1NSwuK1x9fSBkY2U3IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZccyouK1x7IDQyOTQ5NjcyOTAsLitc fX0gZGNlNyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHtccyti aWNccyt9IGRjZTcgeyB0YXJnZXQgeyBhYXJjaDY0Ki0qLSogfSB9IH0gfSAqLw0KKw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTEyLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy5kZy9iaWMtYml0bWFzay0xMi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTEwY2JmN2ZhYmUyZGJm N2NlNDM2Y2RmMzdiMGY4YjIwN2M1ODQwOA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTIuYw0KQEAgLTAsMCArMSwxNyBAQA0KKy8qIHsgZGct ZG8gYXNzZW1ibGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1mZHVtcC10cmVlLWRjZSIg fSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisNCit0eXBlZGVmIHVuc2lnbmVkIGludCB2 NHNpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMTYpKSk7DQorDQorX19hdHRyaWJ1dGVf Xygobm9pbmxpbmUsIG5vaXBhKSkNCit2b2lkIGZ1bih2NHNpICp4LCBpbnQgbikNCit7DQorICAg IGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ld Jih+MjU1KSkgPT0gMDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wIHs8 PVxzKi4rXHsgMjU1LC4rXH19IGRjZTcgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLW5vdCB7JlxzKi4rXHsgNDI5NDk2NzI5MCwuK1x9fSBkY2U3IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge1xzK2JpY1xzK30gZGNlNyB7IHRhcmdldCB7 IGFhcmNoNjQqLSotKiB9IH0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvYmljLWJpdG1hc2stMTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTEz LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi44ZWJhYTMwMjM4Yzc2MWI4ODMxNjg1MjA5YTc0OTBmMDY1OTFjMDAw DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0x My5jDQpAQCAtMCwwICsxLDI0IEBADQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLU8wIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRjZSIgfSAqLw0KKw0KKyNpbmNsdWRl IDxzdGRpbnQuaD4NCisNCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQ0KK3ZvaWQg ZnVuMSh1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChu ICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID09IDA7DQorfQ0KKw0K K19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSwgb3B0aW1pemUoIk8xIikpKQ0KK3ZvaWQg ZnVuMih1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChu ICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID09IDA7DQorfQ0KKw0K KyNpbmNsdWRlICJiaWMtYml0bWFzay5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyB7PD1ccyogMjU1fSAxIGRjZTcgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLW5vdCB7JlxzKiA0Mjk0OTY3MDQwfSBkY2U3IH0gfSAqLw0KKw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTE0LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy5kZy9iaWMtYml0bWFzay0xNC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGEyNzg5NDMzZjhiYzQ1 YTU5MGQxMzYxNzliOGVlNGVjNWNkYTFjMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTQuYw0KQEAgLTAsMCArMSwyNCBAQA0KKy8qIHsgZGct ZG8gcnVuIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1PMSAtc2F2ZS10ZW1wcyAtZmR1bXAtdHJl ZS1kY2UiIH0gKi8NCisNCisjaW5jbHVkZSA8c3RkaW50Lmg+DQorDQorX19hdHRyaWJ1dGVfXygo bm9pbmxpbmUsIG5vaXBhKSkNCit2b2lkIGZ1bjEodWludDMyX3QgKngsIGludCBuKQ0KK3sNCisg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAgICB4W2ldID0gKHhb aV0mKH4yNTUpKSA9PSAwOw0KK30NCisNCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEs IG9wdGltaXplKCJPMCIpKSkNCit2b2lkIGZ1bjIodWludDMyX3QgKngsIGludCBuKQ0KK3sNCisg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAgICB4W2ldID0gKHhb aV0mKH4yNTUpKSA9PSAwOw0KK30NCisNCisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCINCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgezw9XHMqIDI1NX0gMSBkY2U3IH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZccyogNDI5NDk2NzA0 MH0gZGNlNyB9IH0gKi8NCisNCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMt Yml0bWFzay0xNS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTUuYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLjUzYTJjOTg2YjAwZjE1OWFlNWZhODM5Nzk4ODUwYWM0MmU5Yjk1MDQNCi0tLSAv ZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTE1LmMNCkBA IC0wLDAgKzEsMjQgQEANCisvKiB7IGRnLWRvIHJ1biB9ICovDQorLyogeyBkZy1vcHRpb25zICIt TzEgLXNhdmUtdGVtcHMgLWZkdW1wLXRyZWUtZGNlIiB9ICovDQorDQorI2luY2x1ZGUgPHN0ZGlu dC5oPg0KKw0KK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSkpDQordm9pZCBmdW4xKHVp bnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYp OyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPj0gMDsNCit9DQorDQorX19hdHRy aWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzAiKSkpDQordm9pZCBmdW4yKHVp bnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYp OyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPj0gMDsNCit9DQorDQorI2luY2x1 ZGUgImJpYy1iaXRtYXNrLmgiDQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRp bWVzIHs9XHMqIDF9IDEgZGNlNyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtbm90IHsmXHMqIDQyOTQ5NjcwNDB9IGRjZTcgfSB9ICovDQorDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRn L2JpYy1iaXRtYXNrLTE2LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmY0NjcwZTJhNDcxMDZjNjE0YzEyMjRi OGU4YWFjMDkxZDZlODIxDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9iaWMtYml0bWFzay0xNi5jDQpAQCAtMCwwICsxLDI0IEBADQorLyogeyBkZy1kbyBydW4gfSAq Lw0KKy8qIHsgZGctb3B0aW9ucyAiLU8xIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRjZSIgfSAq Lw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisNCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwg bm9pcGEpKQ0KK3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkp ID4gMDsNCit9DQorDQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgi TzAiKSkpDQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkg PiAwOw0KK30NCisNCisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCINCisNCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgez5ccyogMjU1fSAxIGRjZTcgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7JlxzKiA0Mjk0OTY3MDQwfSBkY2U3IH0gfSAq Lw0KKw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTE3LmMg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0xNy5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I4 NzdmZGUwMTdkZTBmYjdhZWFiZDQxNTJhMTU5M2YwN2Q1MmU3MQ0KLS0tIC9kZXYvbnVsbA0KKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTcuYw0KQEAgLTAsMCArMSwyNCBA QA0KKy8qIHsgZGctZG8gcnVuIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1PMSAtc2F2ZS10ZW1w cyAtZmR1bXAtdHJlZS1kY2UiIH0gKi8NCisNCisjaW5jbHVkZSA8c3RkaW50Lmg+DQorDQorX19h dHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhKSkNCit2b2lkIGZ1bjEodWludDMyX3QgKngsIGlu dCBuKQ0KK3sNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAg ICB4W2ldID0gKHhbaV0mKH4yNTUpKSA8PSAwOw0KK30NCisNCitfX2F0dHJpYnV0ZV9fKChub2lu bGluZSwgbm9pcGEsIG9wdGltaXplKCJPMCIpKSkNCit2b2lkIGZ1bjIodWludDMyX3QgKngsIGlu dCBuKQ0KK3sNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAg ICB4W2ldID0gKHhbaV0mKH4yNTUpKSA8PSAwOw0KK30NCisNCisjaW5jbHVkZSAiYmljLWJpdG1h c2suaCINCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgezw9XHMqIDI1 NX0gMSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZc cyogNDI5NDk2NzA0MH0gZGNlNyB9IH0gKi8NCisNCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy5kZy9iaWMtYml0bWFzay0xOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1h c2stMTguYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0NTViZjUyODZhN2NjOWYwODcxMzQ4OWUyOWI1ZjJiNmY2 ZmMwMTINCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRt YXNrLTE4LmMNCkBAIC0wLDAgKzEsMjQgQEANCisvKiB7IGRnLWRvIHJ1biB9ICovDQorLyogeyBk Zy1vcHRpb25zICItTzEgLXNhdmUtdGVtcHMgLWZkdW1wLXRyZWUtZGNlIiB9ICovDQorDQorI2lu Y2x1ZGUgPHN0ZGludC5oPg0KKw0KK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSkpDQor dm9pZCBmdW4xKHVpbnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAoaW50IGkgPSAwOyBp IDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+MSkpIDwgMDsNCit9DQor DQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzAiKSkpDQordm9p ZCBmdW4yKHVpbnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwg KG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+MSkpIDwgMDsNCit9DQorDQor I2luY2x1ZGUgImJpYy1iaXRtYXNrLmgiDQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLXRpbWVzIHs9IDB9IDEgZGNlNyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtbm90IHtccytiaWNccyt9IGRjZTcgeyB0YXJnZXQgeyBhYXJjaDY0Ki0qLSogfSB9IH0g fSAqLw0KKw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTE5 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0xOS5jDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u YWQyNjZjZWMwZDEwYTFhZmMwYmRhY2Q4NzYyZDMyOGJmZjFmNmVhNA0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTkuYw0KQEAgLTAsMCArMSwy NCBAQA0KKy8qIHsgZGctZG8gcnVuIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1PMSAtc2F2ZS10 ZW1wcyAtZmR1bXAtdHJlZS1kY2UiIH0gKi8NCisNCisjaW5jbHVkZSA8c3RkaW50Lmg+DQorDQor X19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhKSkNCit2b2lkIGZ1bjEodWludDMyX3QgKngs IGludCBuKQ0KK3sNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisg ICAgICB4W2ldID0gKHhbaV0mKH4xKSkgIT0gMDsNCit9DQorDQorX19hdHRyaWJ1dGVfXygobm9p bmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzAiKSkpDQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBp bnQgbikNCit7DQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAg ICAgeFtpXSA9ICh4W2ldJih+MSkpICE9IDA7DQorfQ0KKw0KKyNpbmNsdWRlICJiaWMtYml0bWFz ay5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7PlxzKiAxfSAx IGRjZTcgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7JlxzKiA0 Mjk0OTY3Mjk0fSBkY2U3IH0gfSAqLw0KKw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL2JpYy1iaXRtYXNrLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTIu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLmRhMzBmYWQ4OWY2YzgyMzliYWE0Mzk1YjNmZmFlYzBiZTU3N2UxM2YN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTIu Yw0KQEAgLTAsMCArMSwyNSBAQA0KKy8qIHsgZGctZG8gcnVuIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1PMyAtc2F2ZS10ZW1wcyAtZmR1bXAtdHJlZS1kY2UiIH0gKi8NCisNCisjaW5jbHVkZSA8 c3RkaW50Lmg+DQorDQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhKSkNCit2b2lkIGZ1 bjEodWludDMyX3QgKngsIGludCBuKQ0KK3sNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAm IC0xNik7IGkrKykNCisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSA9PSAwOw0KK30NCisNCitf X2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEsIG9wdGltaXplKCJPMSIpKSkNCit2b2lkIGZ1 bjIodWludDMyX3QgKngsIGludCBuKQ0KK3sNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAm IC0xNik7IGkrKykNCisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSA9PSAwOw0KK30NCisNCisj aW5jbHVkZSAiYmljLWJpdG1hc2suaCINCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtdGltZXMgezw9XHMqLitceyAyNTUsLitcfX0gMSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZccyouK1x7IDQyOTQ5NjcwNDAsLitcfX0gZGNlNyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHtccytiaWNccyt9IGRj ZTcgeyB0YXJnZXQgeyBhYXJjaDY0Ki0qLSogfSB9IH0gfSAqLw0KKw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTIwLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9iaWMtYml0bWFzay0yMC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmVmZDI1Y2I0YWFjNmZlMjA2MTEwZTdj YTgwODE2ZGQ2ZmMwZWQ5NA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvYmljLWJpdG1hc2stMjAuYw0KQEAgLTAsMCArMSwyNCBAQA0KKy8qIHsgZGctZG8gcnVuIH0g Ki8NCisvKiB7IGRnLW9wdGlvbnMgIi1PMSAtc2F2ZS10ZW1wcyAtZmR1bXAtdHJlZS1kY2UiIH0g Ki8NCisNCisjaW5jbHVkZSA8c3RkaW50Lmg+DQorDQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUs IG5vaXBhKSkNCit2b2lkIGZ1bjEodWludDMyX3QgKngsIGludCBuKQ0KK3sNCisgICAgZm9yIChp bnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAgICB4W2ldID0gKHhbaV0mKH41KSkg PT0gMDsNCit9DQorDQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgi TzAiKSkpDQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+NSkpID09 IDA7DQorfQ0KKw0KKyNpbmNsdWRlICJiaWMtYml0bWFzay5oIg0KKw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC1ub3Qgezw9XHMqIDQyOTQ5NjcyODl9IGRjZTcgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wIHsmXHMqIDQyOTQ5NjcyOTB9IGRjZTcgfSB9ICov DQorDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMjEuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTIxLmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDM3 ZmZjMjQ4ZWVmMTUwOWM2NDJhYmIwMDg3Yjc3ODgyNjc5MTUwDQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0yMS5jDQpAQCAtMCwwICsxLDI1IEBA DQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8xIC1zYXZlLXRlbXBz IC1mZHVtcC10cmVlLWRjZSIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisNCitfX2F0 dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQ0KK3ZvaWQgZnVuMShpbnQzMl90ICp4LCBpbnQg bikNCit7DQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAg eFtpXSA9ICh4W2ldJih+MjU1KSkgPT0gMDsNCit9DQorDQorX19hdHRyaWJ1dGVfXygobm9pbmxp bmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzAiKSkpDQordm9pZCBmdW4yKGludDMyX3QgKngsIGludCBu KQ0KK3sNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAgICB4 W2ldID0gKHhbaV0mKH4yNTUpKSA9PSAwOw0KK30NCisNCisjZGVmaW5lIFRZUEUgaW50MzJfdA0K KyNpbmNsdWRlICJiaWMtYml0bWFzay5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCB7PD1ccyogMjU1fSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC1ub3QgeyZccyogNDI5NDk2NzI5MH0gZGNlNyB9IH0gKi8NCisNCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0yMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvYmljLWJpdG1hc2stMjIuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMDI3YTYzNjdhMWRjZWMxMjQ5MjQz NWYyNjAyNTBhN2I1NGFjYTENCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL2JpYy1iaXRtYXNrLTIyLmMNCkBAIC0wLDAgKzEsMjQgQEANCisvKiB7IGRnLWRvIHJ1biB9 ICovDQorLyogeyBkZy1vcHRpb25zICItTzEgLXNhdmUtdGVtcHMgLWZkdW1wLXRyZWUtZGNlIiB9 ICovDQorDQorI2luY2x1ZGUgPHN0ZGludC5oPg0KKw0KK19fYXR0cmlidXRlX18oKG5vaW5saW5l LCBub2lwYSkpDQordm9pZCBmdW4xKHVpbnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAo aW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1 KSkgIT0gMDsNCit9DQorDQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6 ZSgiTzAiKSkpDQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAo aW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1 KSkgIT0gMDsNCit9DQorDQorI2luY2x1ZGUgImJpYy1iaXRtYXNrLmgiDQorDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wIHs+XHMqIDI1NX0gZGNlNyB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHsmXHMqIDQyOTQ5NjcyOTB9IGRjZTcgfSB9ICovDQor DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMjMuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTIzLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWVmNGJh ZWQ3OTZjZjdiZjQ5OThkMWI0ZjRkZGZiYzQ1N2FkZDI5DQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0yMy5jDQpAQCAtMCwwICsxLDE2IEBADQor LyogeyBkZy1kbyBhc3NlbWJsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItTzEgLWZkdW1wLXRy ZWUtZGNlIiB9ICovDQorDQorI2luY2x1ZGUgPHN0ZGludC5oPg0KKw0KK3R5cGVkZWYgdW5zaWdu ZWQgaW50IHY0c2kgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxNikpKTsNCisNCitfX2F0 dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQ0KK3Y0c2kgZnVuKHY0c2kgeCkNCit7DQorICAg IHY0c2kgbWFzayA9IHsgMjU1LCAxNSwgMSwgMHhGRkZGIH07DQorICAgIHY0c2kgemVyb3MgPSB7 MH07DQorICAgIHJldHVybiAoeCAmIH5tYXNrKSA9PSB6ZXJvczsNCit9DQorDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wIHs8PVxzKi4rXHsgMjU1LCAxNSwgMSwgNjU1MzUgXH19IGRj ZTcgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2st My5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMy5jDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u ZGEzMGZhZDg5ZjZjODIzOWJhYTQzOTViM2ZmYWVjMGJlNTc3ZTEzZg0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMy5jDQpAQCAtMCwwICsxLDI1 IEBADQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1zYXZlLXRl bXBzIC1mZHVtcC10cmVlLWRjZSIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisNCitf X2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQ0KK3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwg aW50IG4pDQorew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAg ICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID09IDA7DQorfQ0KKw0KK19fYXR0cmlidXRlX18oKG5v aW5saW5lLCBub2lwYSwgb3B0aW1pemUoIk8xIikpKQ0KK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwg aW50IG4pDQorew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAg ICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID09IDA7DQorfQ0KKw0KKyNpbmNsdWRlICJiaWMtYml0 bWFzay5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7PD1ccyou K1x7IDI1NSwuK1x9fSAxIGRjZTcgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLW5vdCB7JlxzKi4rXHsgNDI5NDk2NzA0MCwuK1x9fSBkY2U3IH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge1xzK2JpY1xzK30gZGNlNyB7IHRhcmdldCB7IGFh cmNoNjQqLSotKiB9IH0gfSB9ICovDQorDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvYmljLWJpdG1hc2stNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNC5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMC4uMWJjZjIzY2NmMTQ0N2Q2YzhjOTk5ZWQxZWIyNWJhMGE0NTAwMjhlMQ0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNC5j DQpAQCAtMCwwICsxLDI1IEBADQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8qIHsgZGctb3B0aW9u cyAiLU8zIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRjZSIgfSAqLw0KKw0KKyNpbmNsdWRlIDxz dGRpbnQuaD4NCisNCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQ0KK3ZvaWQgZnVu MSh1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYg LTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID49IDA7DQorfQ0KKw0KK19f YXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSwgb3B0aW1pemUoIk8xIikpKQ0KK3ZvaWQgZnVu Mih1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYg LTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID49IDA7DQorfQ0KKw0KKyNp bmNsdWRlICJiaWMtYml0bWFzay5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cC10aW1lcyB7PVxzKi4rXHsgMSwuK1x9fSAxIGRjZTcgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLW5vdCB7JlxzKi4rXHsgNDI5NDk2NzA0MCwuK1x9fSBkY2U3IH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge1xzK2JpY1xzK30gZGNlNyB7 IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9ICovDQorDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmlj LWJpdG1hc2stNS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA1MzcyNzA3NmFiZWRlZmRlY2ZkYTdjNGZlYTZm OTJkNTRhOTRhNQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmlj LWJpdG1hc2stNS5jDQpAQCAtMCwwICsxLDI1IEBADQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLU8zIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRjZSIgfSAqLw0KKw0K KyNpbmNsdWRlIDxzdGRpbnQuaD4NCisNCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEp KQ0KK3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAgICBmb3IgKGludCBpID0g MDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID4gMDsN Cit9DQorDQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzEiKSkp DQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBpbnQgbikNCit7DQorICAgIGZvciAoaW50IGkgPSAw OyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPiAwOw0K K30NCisNCisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCINCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgez5ccyouK1x7IDI1NSwuK1x9fSAxIGRjZTcgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7JlxzKi4rXHsgNDI5NDk2NzA0MCwuK1x9 fSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge1xzK2Jp Y1xzK30gZGNlNyB7IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9ICovDQorDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNi5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvYmljLWJpdG1hc2stNi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE4ZTdhNDM0OGM5ZmM0NjEx MDZjM2Q5ZDAxMjkxMzI1ZDM0MDZjMg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvYmljLWJpdG1hc2stNi5jDQpAQCAtMCwwICsxLDI1IEBADQorLyogeyBkZy1kbyBy dW4gfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRj ZSIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisNCitfX2F0dHJpYnV0ZV9fKChub2lu bGluZSwgbm9pcGEpKQ0KK3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAgICBm b3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtpXSYo fjI1NSkpIDw9IDA7DQorfQ0KKw0KK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSwgb3B0 aW1pemUoIk8xIikpKQ0KK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAgICBm b3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtpXSYo fjI1NSkpIDw9IDA7DQorfQ0KKw0KKyNpbmNsdWRlICJiaWMtYml0bWFzay5oIg0KKw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7PD1ccyouK1x7IDI1NSwuK1x9fSAxIGRj ZTcgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7JlxzKi4rXHsg NDI5NDk2NzA0MCwuK1x9fSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC1ub3Qge1xzK2JpY1xzK30gZGNlNyB7IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9 ICovDQorDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNy5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNy5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk4 Njc4ZmI3NTU1MDUyYzkzYWJjNGNhMzRmNjE3ZDY0MGY3M2JiNA0KLS0tIC9kZXYvbnVsbA0KKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNy5jDQpAQCAtMCwwICsxLDI0IEBA DQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1zYXZlLXRlbXBz IC1mZHVtcC10cmVlLWRjZSIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisNCitfX2F0 dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQ0KK3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwgaW50 IG4pDQorew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAgICAg IHhbaV0gPSAoeFtpXSYofjEpKSA8IDA7DQorfQ0KKw0KK19fYXR0cmlidXRlX18oKG5vaW5saW5l LCBub2lwYSwgb3B0aW1pemUoIk8xIikpKQ0KK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwgaW50IG4p DQorew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhb aV0gPSAoeFtpXSYofjEpKSA8IDA7DQorfQ0KKw0KKyNpbmNsdWRlICJiaWMtYml0bWFzay5oIg0K Kw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7X19idWlsdGluX21lbXNl dH0gMSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge1xz K2JpY1xzK30gZGNlNyB7IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9ICovDQorDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stOC5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stOC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRhYmU4MzRlZDU3ZGZh MGJlNDhjMWRjM2RiYjIyNjA5MmM3OWExYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stOC5jDQpAQCAtMCwwICsxLDI1IEBADQorLyogeyBkZy1k byBydW4gfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVl LWRjZSIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisNCitfX2F0dHJpYnV0ZV9fKChu b2lubGluZSwgbm9pcGEpKQ0KK3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwgaW50IG4pDQorew0KKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0gPSAoeFtp XSYofjEpKSAhPSAwOw0KK30NCisNCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEsIG9w dGltaXplKCJPMSIpKSkNCit2b2lkIGZ1bjIodWludDMyX3QgKngsIGludCBuKQ0KK3sNCisgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCisgICAgICB4W2ldID0gKHhbaV0m KH4xKSkgIT0gMDsNCit9DQorDQorI2luY2x1ZGUgImJpYy1iaXRtYXNrLmgiDQorDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHs+XHMqLitceyAxLC4rXH19IDEgZGNlNyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHsmXHMqLitceyA0Mjk0 OTY3Mjk0LC4rXH19IGRjZTcgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1w LW5vdCB7XHMrYmljXHMrfSBkY2U3IHsgdGFyZ2V0IHsgYWFyY2g2NCotKi0qIH0gfSB9IH0gKi8N CisNCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay05LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay05LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzFmOGVl MGFkZmM0NWQxYjlmYzIxMjEzOGVhMjZiYjZiNjkzZTQ5DQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay05LmMNCkBAIC0wLDAgKzEsMjUgQEANCisv KiB7IGRnLWRvIHJ1biB9ICovDQorLyogeyBkZy1vcHRpb25zICItTzMgLXNhdmUtdGVtcHMgLWZk dW1wLXRyZWUtZGNlIiB9ICovDQorDQorI2luY2x1ZGUgPHN0ZGludC5oPg0KKw0KK19fYXR0cmli dXRlX18oKG5vaW5saW5lLCBub2lwYSkpDQordm9pZCBmdW4xKHVpbnQzMl90ICp4LCBpbnQgbikN Cit7DQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspDQorICAgICAgeFtp XSA9ICh4W2ldJih+NSkpID09IDA7DQorfQ0KKw0KK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBu b2lwYSwgb3B0aW1pemUoIk8xIikpKQ0KK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwgaW50IG4pDQor ew0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KKyAgICAgIHhbaV0g PSAoeFtpXSYofjUpKSA9PSAwOw0KK30NCisNCisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCINCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHs8PVxzKi4rXHsgNDI5NDk2NzI4 OSwuK1x9fSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCB7Jlxz Ki4rXHsgNDI5NDk2NzI5MCwuK1x9fSBkY2U3IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LXRyZWUtZHVtcC1ub3Qge1xzK2JpY1xzK30gZGNlNyB7IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9 IH0gfSB9ICovDQorDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1h c2suaCBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLmgNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m YWY4MGI5NzRkYjA3YTdkODE3YTYxNWNjNjRhMzVmMTAyMGU5NzY0DQotLS0gL2Rldi9udWxsDQor KysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay5oDQpAQCAtMCwwICsxLDQzIEBA DQorI2luY2x1ZGUgPHN0ZGlvLmg+DQorDQorI2lmbmRlZiBODQorI2RlZmluZSBOIDY1DQorI2Vu ZGlmDQorDQorI2lmbmRlZiBUWVBFDQorI2RlZmluZSBUWVBFIHVpbnQzMl90DQorI2VuZGlmDQor DQorI2lmbmRlZiBERUJVRw0KKyNkZWZpbmUgREVCVUcgMA0KKyNlbmRpZg0KKw0KKyNkZWZpbmUg QkFTRSAoKFRZUEUpIC0xIDwgMCA/IC0xMjYgOiA0KQ0KKw0KK2ludCBtYWluICgpDQorew0KKyAg VFlQRSBhW05dOw0KKyAgVFlQRSBiW05dOw0KKw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyAr K2kpDQorICAgIHsNCisgICAgICBhW2ldID0gQkFTRSArIGkgKiAxMzsNCisgICAgICBiW2ldID0g QkFTRSArIGkgKiAxMzsNCisgICAgICBpZiAoREVCVUcpDQorICAgICAgICBwcmludGYgKCIlZDog MHgleFxuIiwgaSwgYVtpXSk7DQorICAgIH0NCisNCisgIGZ1bjEgKGEsIE4pOw0KKyAgZnVuMiAo YiwgTik7DQorDQorICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkNCisgICAgew0KKyAgICAg IGlmIChERUJVRykNCisgICAgICAgIHByaW50ZiAoIiVkID0gMHgleCA9PSAweCV4XG4iLCBpLCBh W2ldLCBiW2ldKTsNCisNCisgICAgICBpZiAoYVtpXSAhPSBiW2ldKQ0KKyAgICAgICAgX19idWls dGluX2Fib3J0ICgpOw0KKyAgICB9DQorICByZXR1cm4gMDsNCit9DQorDQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYmljLWJpdG1hc2stMS5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYmljLWJpdG1hc2stMS5jDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u NTY4YzFmZmM4YmM0MTQ4ZWZhZWViYTdhNDVhNzVlY2JkM2E3YTNkZA0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYmljLWJpdG1hc2stMS5jDQpA QCAtMCwwICsxLDEzIEBADQorLyogeyBkZy1kbyBhc3NlbWJsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItTzIgLXNhdmUtdGVtcHMiIH0gKi8NCisNCisjaW5jbHVkZSA8YXJtX25lb24uaD4NCisN Cit1aW50MzJ4NF90IGZvbyAoaW50MzJ4NF90IGEpDQorew0KKyAgaW50MzJ4NF90IGNzdCA9IHZk dXBxX25fczMyICgyNTUpOw0KKyAgaW50MzJ4NF90IHplcm8gPSB2ZHVwcV9uX3MzMiAoMCk7DQor ICByZXR1cm4gdmNlcXFfczMyICh2YmljcV9zMzIgKGEsIGNzdCksIHplcm8pOw0KK30NCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdGJpY1x0fSB7IHhmYWlsIHsgYWFy Y2g2NCotKi0qIH0gfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdHJlZS5oIGIvZ2NjL3RyZWUu aA0KaW5kZXggOTA1NDE3ZmQxN2IxNzIxZjZjNjVkM2NkZjY2YTVmZDVmOTIwZGU3Zi4uMzU4M2Q1 MTQwOWNhZDk0NzFmZTQ1ZGU2NDgwNmU3OGQ4NTViZDk3YyAxMDA2NDQNCi0tLSBhL2djYy90cmVl LmgNCisrKyBiL2djYy90cmVlLmgNCkBAIC00ODYyLDYgKzQ4NjIsMTEgQEAgZXh0ZXJuIGJvb2wg aW50ZWdlcl9taW51c19vbmVwIChjb25zdF90cmVlKTsNCiANCiBleHRlcm4gYm9vbCBpbnRlZ2Vy X3BvdzJwIChjb25zdF90cmVlKTsNCiANCisvKiBDaGVja3MgdG8gc2VlIGlmIFQgaXMgYSBjb25z dGFudCBvciBhIGNvbnN0YW50IHZlY3RvciBhbmQgaWYgZWFjaCBlbGVtZW50IEUNCisgICBhZGhl cmVzIHRvIH5FICsgMSA9PSBwb3cyIHRoZW4gcmV0dXJuIH5FIG90aGVyd2lzZSBOVUxMX1RSRUUu ICAqLw0KKw0KK2V4dGVybiB0cmVlIGJpdG1hc2tfaW52X2NzdF92ZWN0b3JfcCAodHJlZSk7DQor DQogLyogaW50ZWdlcl9ub256ZXJvcCAodHJlZSB4KSBpcyBub256ZXJvIGlmIFggaXMgYW4gaW50 ZWdlciBjb25zdGFudA0KICAgIHdpdGggYSBub256ZXJvIHZhbHVlLiAgKi8NCiANCmRpZmYgLS1n aXQgYS9nY2MvdHJlZS5jIGIvZ2NjL3RyZWUuYw0KaW5kZXggY2JhM2JjYTQxYjNhNTA1NTc5Mzky NjdiN2EwNmRmMDRiNWQwNDJiNy4uODAxZjEyMWEzNjhiMDg4ZDBmNzY5ZjE2ZjJlZDI5ZTMyMGU3 MTU1NiAxMDA2NDQNCi0tLSBhL2djYy90cmVlLmMNCisrKyBiL2djYy90cmVlLmMNCkBAIC0xMDI0 Niw2ICsxMDI0Niw1OSBAQCB1bmlmb3JtX2ludGVnZXJfY3N0X3AgKHRyZWUgdCkNCiAgIHJldHVy biBOVUxMX1RSRUU7DQogfQ0KIA0KKy8qIENoZWNrcyB0byBzZWUgaWYgVCBpcyBhIGNvbnN0YW50 IG9yIGEgY29uc3RhbnQgdmVjdG9yIGFuZCBpZiBlYWNoIGVsZW1lbnQgRQ0KKyAgIGFkaGVyZXMg dG8gfkUgKyAxID09IHBvdzIgdGhlbiByZXR1cm4gfkUgb3RoZXJ3aXNlIE5VTExfVFJFRS4gICov DQorDQordHJlZQ0KK2JpdG1hc2tfaW52X2NzdF92ZWN0b3JfcCAodHJlZSB0KQ0KK3sNCisNCisg IHRyZWVfY29kZSBjb2RlID0gVFJFRV9DT0RFICh0KTsNCisgIHRyZWUgdHlwZSA9IFRSRUVfVFlQ RSAodCk7DQorDQorICBpZiAoIUlOVEVHUkFMX1RZUEVfUCAodHlwZSkNCisgICAgICAmJiAhVkVD VE9SX0lOVEVHRVJfVFlQRV9QICh0eXBlKSkNCisgICAgcmV0dXJuIE5VTExfVFJFRTsNCisNCisg IHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgbmVsdHMgPSAxOw0KKyAgdHJlZSBjc3Q7DQorICB1bnNp Z25lZCBpbnQgaWR4ID0gMDsNCisgIGJvb2wgdW5pZm9ybSA9IHVuaWZvcm1faW50ZWdlcl9jc3Rf cCAodCk7DQorICB0cmVlIG5ld3R5cGUgPSB1bnNpZ25lZF90eXBlX2ZvciAodHlwZSk7DQorICB0 cmVlX3ZlY3Rvcl9idWlsZGVyIGJ1aWxkZXI7DQorICBpZiAoY29kZSA9PSBJTlRFR0VSX0NTVCkN CisgICAgY3N0ID0gdDsNCisgIGVsc2UNCisgICAgew0KKyAgICAgIGlmICghVkVDVE9SX0NTVF9O RUxUUyAodCkuaXNfY29uc3RhbnQgKCZuZWx0cykpDQorCXJldHVybiBOVUxMX1RSRUU7DQorDQor ICAgICAgY3N0ID0gdmVjdG9yX2NzdF9lbHQgKHQsIDApOw0KKyAgICAgIGJ1aWxkZXIubmV3X3Zl Y3RvciAobmV3dHlwZSwgbmVsdHMsIDEpOw0KKyAgICB9DQorDQorICB0cmVlIHR5ID0gdW5zaWdu ZWRfdHlwZV9mb3IgKFRSRUVfVFlQRSAoY3N0KSk7DQorDQorICBkbyB7DQorICAgIGlmIChpZHgg PiAwKQ0KKyAgICAgIGNzdCA9IHZlY3Rvcl9jc3RfZWx0ICh0LCBpZHgpOw0KKyAgICB3aWRlX2lu dCBpY3N0ID0gd2k6OnRvX3dpZGUgKGNzdCk7DQorICAgIHdpZGVfaW50IGludiA9ICB3aTo6Yml0 X25vdCAoaWNzdCk7DQorICAgIGljc3QgPSB3aTo6YWRkICgxLCBpbnYpOw0KKyAgICBpZiAod2k6 OnBvcGNvdW50IChpY3N0KSAhPSAxKQ0KKyAgICAgIHJldHVybiBOVUxMX1RSRUU7DQorDQorICAg IHRyZWUgbmV3Y3N0ID0gd2lkZV9pbnRfdG9fdHJlZSAodHksIGludik7DQorDQorICAgIGlmICh1 bmlmb3JtKQ0KKyAgICAgIHJldHVybiBidWlsZF91bmlmb3JtX2NzdCAobmV3dHlwZSwgbmV3Y3N0 KTsNCisNCisgICAgYnVpbGRlci5xdWlja19wdXNoIChuZXdjc3QpOw0KKyAgfSB3aGlsZSAoKytp ZHggPCBuZWx0cyk7DQorDQorICByZXR1cm4gYnVpbGRlci5idWlsZCAoKTsNCit9DQorDQogLyog SWYgVkVDVE9SX0NTVCBUIGhhcyBhIHNpbmdsZSBub256ZXJvIGVsZW1lbnQsIHJldHVybiB0aGUg aW5kZXggb2YgdGhhdA0KICAgIGVsZW1lbnQsIG90aGVyd2lzZSByZXR1cm4gLTEuICAqLw0KDQo= --_002_AM0PR08MB5316A3C69CD03AF9A77E6730FFAF9AM0PR08MB5316eurp_ Content-Type: application/octet-stream; name="rb14896.patch" Content-Description: rb14896.patch Content-Disposition: attachment; filename="rb14896.patch"; size=24618; creation-date="Tue, 05 Oct 2021 12:54:46 GMT"; modification-date="Tue, 05 Oct 2021 12:54:27 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9tYXRjaC5wZCBiL2djYy9tYXRjaC5wZAppbmRleCAwZmNmZDBlYTYy YzA0M2RjMjE3ZDBkNTYwY2U1YjdlNTY5YjcwZTdkLi43ZDJhMjRkYmM1ZTk2NDRhMDk5NjhmODc3 ZTEyYTgyNGQ4YmExY2FhIDEwMDY0NAotLS0gYS9nY2MvbWF0Y2gucGQKKysrIGIvZ2NjL21hdGNo LnBkCkBAIC0zNyw3ICszNyw4IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlO RzMuICBJZiBub3Qgc2VlCiAgICBpbnRlZ2VyX3BvdzJwCiAgICB1bmlmb3JtX2ludGVnZXJfY3N0 X3AKICAgIEhPTk9SX05BTlMKLSAgIHVuaWZvcm1fdmVjdG9yX3ApCisgICB1bmlmb3JtX3ZlY3Rv cl9wCisgICBiaXRtYXNrX2ludl9jc3RfdmVjdG9yX3ApCiAKIC8qIE9wZXJhdG9yIGxpc3RzLiAg Ki8KIChkZWZpbmVfb3BlcmF0b3JfbGlzdCB0Y2NfY29tcGFyaXNvbgpAQCAtNDkwMCw2ICs0OTAx LDI0IEBAIERFRklORV9JTlRfQU5EX0ZMT0FUX1JPVU5EX0ZOIChSSU5UKQogICAgICAgKGVxY21w IChiaXRfYW5kIEAxIHsgd2lkZV9pbnRfdG9fdHJlZSAodHksIG1hc2sgLSByaHMpOyB9KQogCSAg ICAgeyBidWlsZF96ZXJvX2NzdCAodHkpOyB9KSkpKSkpCiAKKy8qIFRyYW5zZm9ybSBjb21wYXJp c29ucyBvZiB0aGUgZm9ybSAoWCAmIFkpIENNUCAwIHRvIFggQ01QMiBaCisgICB3aGVyZSB+WSAr IDEgPT0gcG93MiBhbmQgWiA9IH5ZLiAgKi8KKyhmb3IgY3N0IChWRUNUT1JfQ1NUIElOVEVHRVJf Q1NUKQorIChmb3IgY21wIChsZSBlcSBuZSBnZSBndCkKKyAgICAgIGljbXAgKGxlIGxlIGd0IGxl IGd0KQorIChzaW1wbGlmeQorICAoY21wIChiaXRfYW5kOmNAMiBAMCBjc3RAMSkgaW50ZWdlcl96 ZXJvcCkKKyAgICh3aXRoIHsgdHJlZSBjc3RzID0gYml0bWFza19pbnZfY3N0X3ZlY3Rvcl9wIChA MSk7IH0KKyAgICAgKHN3aXRjaAorICAgICAgKGlmIChjc3RzICYmIFRZUEVfVU5TSUdORUQgKFRS RUVfVFlQRSAoQDEpKQorCSAgICYmIChWRUNUT1JfVFlQRV9QIChUUkVFX1RZUEUgKEAxKSkgfHwg c2luZ2xlX3VzZSAoQDIpKSkKKyAgICAgICAoaWNtcCBAMCB7IGNzdHM7IH0pKQorICAgICAgKGlm IChjc3RzICYmICFUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKEAxKSkKKwkgICAmJiAoY21wID09 IEVRX0VYUFIgfHwgY21wID09IE5FX0VYUFIpCisJICAgJiYgKFZFQ1RPUl9UWVBFX1AgKFRSRUVf VFlQRSAoQDEpKSB8fCBzaW5nbGVfdXNlIChAMikpKQorICAgICAgICh3aXRoIHsgdHJlZSB1dHlw ZSA9IHVuc2lnbmVkX3R5cGVfZm9yIChUUkVFX1RZUEUgKEAxKSk7IH0KKwkoaWNtcCAoY29udmVy dDp1dHlwZSBAMCkgeyBjc3RzOyB9KSkpKSkpKSkKKwogLyogLUEgQ01QIC1CIC0+IEIgQ01QIEEu ICAqLwogKGZvciBjbXAgKHRjY19jb21wYXJpc29uKQogICAgICBzY21wIChzd2FwcGVkX3RjY19j b21wYXJpc29uKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2st MTAuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTEwLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u NzZhMjJhMjMxMzEzN2EyYTc1ZGQ3MTFjMmMxNWMyZDNhMzRlMTVhYQotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTEwLmMKQEAgLTAsMCArMSwyNiBA QAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzMgLXNhdmUtdGVtcHMg LWZkdW1wLXRyZWUtZGNlIiB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworX19hdHRyaWJ1 dGVfXygobm9pbmxpbmUsIG5vaXBhKSkKK3ZvaWQgZnVuMShpbnQzMl90ICp4LCBpbnQgbikKK3sK KyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9ICh4 W2ldJih+MjU1KSkgPT0gMDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBv cHRpbWl6ZSgiTzEiKSkpCit2b2lkIGZ1bjIoaW50MzJfdCAqeCwgaW50IG4pCit7CisgICAgZm9y IChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1 NSkpID09IDA7Cit9CisKKyNkZWZpbmUgVFlQRSBpbnQzMl90CisjaW5jbHVkZSAiYmljLWJpdG1h c2suaCIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wIHs8PVxzKi4rXHsgMjU1LC4r XH19IGRjZTcgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHsmXHMq LitceyA0Mjk0OTY3MjkwLC4rXH19IGRjZTcgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtbm90IHtccytiaWNccyt9IGRjZTcgeyB0YXJnZXQgeyBhYXJjaDY0Ki0qLSogfSB9 IH0gfSAqLworCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0x MS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTEuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z MjU1M2Q3YmEyZjgyM2Y3YTIxMjM3NDUxOTkwZDBhMjE2ZDJmOTEyCi0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTEuYwpAQCAtMCwwICsxLDI1IEBA CisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMyAtc2F2ZS10ZW1wcyAt ZmR1bXAtdHJlZS1kY2UiIH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCitfX2F0dHJpYnV0 ZV9fKChub2lubGluZSwgbm9pcGEpKQordm9pZCBmdW4xKHVpbnQzMl90ICp4LCBpbnQgbikKK3sK KyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9ICh4 W2ldJih+MjU1KSkgIT0gMDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBv cHRpbWl6ZSgiTzEiKSkpCit2b2lkIGZ1bjIodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH4y NTUpKSAhPSAwOworfQorCisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCIKKworLyogeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wIHs+XHMqLitceyAyNTUsLitcfX0gZGNlNyB9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZccyouK1x7IDQyOTQ5NjcyOTAsLitcfX0g ZGNlNyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge1xzK2JpY1xz K30gZGNlNyB7IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9ICovCisKZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTEyLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy5kZy9iaWMtYml0bWFzay0xMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMGNiZjdmYWJlMmRiZjdjZTQzNmNk ZjM3YjBmOGIyMDdjNTg0MDgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9iaWMtYml0bWFzay0xMi5jCkBAIC0wLDAgKzEsMTcgQEAKKy8qIHsgZGctZG8gYXNzZW1ibGUg fSAqLworLyogeyBkZy1vcHRpb25zICItTzMgLWZkdW1wLXRyZWUtZGNlIiB9ICovCisKKyNpbmNs dWRlIDxzdGRpbnQuaD4KKwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdjRzaSBfX2F0dHJpYnV0ZV9f ICgodmVjdG9yX3NpemUgKDE2KSkpOworCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEp KQordm9pZCBmdW4odjRzaSAqeCwgaW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAo biAmIC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID09IDA7Cit9CisKKy8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCB7PD1ccyouK1x7IDI1NSwuK1x9fSBkY2U3IH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7JlxzKi4rXHsgNDI5NDk2 NzI5MCwuK1x9fSBkY2U3IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5v dCB7XHMrYmljXHMrfSBkY2U3IHsgdGFyZ2V0IHsgYWFyY2g2NCotKi0qIH0gfSB9IH0gKi8KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTEzLmMgYi9nY2MvdGVz dHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0xMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlYmFhMzAyMzhjNzYx Yjg4MzE2ODUyMDlhNzQ5MGYwNjU5MWMwMDAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy5kZy9iaWMtYml0bWFzay0xMy5jCkBAIC0wLDAgKzEsMjQgQEAKKy8qIHsgZGctZG8g cnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8wIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRj ZSIgfSAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5l LCBub2lwYSkpCit2b2lkIGZ1bjEodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSA9 PSAwOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEsIG9wdGltaXplKCJPMSIp KSkKK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwgaW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCAobiAmIC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID09IDA7Cit9 CisKKyNpbmNsdWRlICJiaWMtYml0bWFzay5oIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgezw9XHMqIDI1NX0gMSBkY2U3IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLW5vdCB7JlxzKiA0Mjk0OTY3MDQwfSBkY2U3IH0gfSAqLworCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0xNC5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvYmljLWJpdG1hc2stMTQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTI3ODk0MzNmOGJjNDVhNTkw ZDEzNjE3OWI4ZWU0ZWM1Y2RhMWMxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvYmljLWJpdG1hc2stMTQuYwpAQCAtMCwwICsxLDI0IEBACisvKiB7IGRnLWRvIHJ1biB9 ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMSAtc2F2ZS10ZW1wcyAtZmR1bXAtdHJlZS1kY2UiIH0g Ki8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9p cGEpKQordm9pZCBmdW4xKHVpbnQzMl90ICp4LCBpbnQgbikKK3sKKyAgICBmb3IgKGludCBpID0g MDsgaSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPT0gMDsK K30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzAiKSkpCit2 b2lkIGZ1bjIodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg KG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSA9PSAwOworfQorCisj aW5jbHVkZSAiYmljLWJpdG1hc2suaCIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1w LXRpbWVzIHs8PVxzKiAyNTV9IDEgZGNlNyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC1ub3QgeyZccyogNDI5NDk2NzA0MH0gZGNlNyB9IH0gKi8KKwpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTUuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL2JpYy1iaXRtYXNrLTE1LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNhMmM5ODZiMDBmMTU5YWU1ZmE4Mzk3 OTg4NTBhYzQyZTliOTUwNAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRn L2JpYy1iaXRtYXNrLTE1LmMKQEAgLTAsMCArMSwyNCBAQAorLyogeyBkZy1kbyBydW4gfSAqLwor LyogeyBkZy1vcHRpb25zICItTzEgLXNhdmUtdGVtcHMgLWZkdW1wLXRyZWUtZGNlIiB9ICovCisK KyNpbmNsdWRlIDxzdGRpbnQuaD4KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhKSkK K3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwgaW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkg PCAobiAmIC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID49IDA7Cit9CisK K19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSwgb3B0aW1pemUoIk8wIikpKQordm9pZCBm dW4yKHVpbnQzMl90ICp4LCBpbnQgbikKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYg LTE2KTsgaSsrKQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPj0gMDsKK30KKworI2luY2x1 ZGUgImJpYy1iaXRtYXNrLmgiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyB7PVxzKiAxfSAxIGRjZTcgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt bm90IHsmXHMqIDQyOTQ5NjcwNDB9IGRjZTcgfSB9ICovCisKZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTE2LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMt Yml0bWFzay0xNi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmZjQ2NzBlMmE0NzEwNmM2MTRjMTIyNGI4ZThhYWMw OTFkNmU4MjEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0 bWFzay0xNi5jCkBAIC0wLDAgKzEsMjQgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8xIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRjZSIgfSAqLworCisjaW5jbHVk ZSA8c3RkaW50Lmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSkpCit2b2lkIGZ1 bjEodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAt MTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSA+IDA7Cit9CisKK19fYXR0cmli dXRlX18oKG5vaW5saW5lLCBub2lwYSwgb3B0aW1pemUoIk8wIikpKQordm9pZCBmdW4yKHVpbnQz Ml90ICp4LCBpbnQgbikKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsr KQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPiAwOworfQorCisjaW5jbHVkZSAiYmljLWJp dG1hc2suaCIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHs+XHMqIDI1 NX0gMSBkY2U3IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7Jlxz KiA0Mjk0OTY3MDQwfSBkY2U3IH0gfSAqLworCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy5kZy9iaWMtYml0bWFzay0xNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2st MTcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi43Yjg3N2ZkZTAxN2RlMGZiN2FlYWJkNDE1MmExNTkzZjA3ZDUyZTcx Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTcu YwpAQCAtMCwwICsxLDI0IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMSAtc2F2ZS10ZW1wcyAtZmR1bXAtdHJlZS1kY2UiIH0gKi8KKworI2luY2x1ZGUgPHN0ZGlu dC5oPgorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQordm9pZCBmdW4xKHVpbnQz Ml90ICp4LCBpbnQgbikKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsr KQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPD0gMDsKK30KKworX19hdHRyaWJ1dGVfXygo bm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzAiKSkpCit2b2lkIGZ1bjIodWludDMyX3QgKngs IGludCBuKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAg ICB4W2ldID0gKHhbaV0mKH4yNTUpKSA8PSAwOworfQorCisjaW5jbHVkZSAiYmljLWJpdG1hc2su aCIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHs8PVxzKiAyNTV9IDEg ZGNlNyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZccyogNDI5 NDk2NzA0MH0gZGNlNyB9IH0gKi8KKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv YmljLWJpdG1hc2stMTguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTE4LmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMC4uODQ1NWJmNTI4NmE3Y2M5ZjA4NzEzNDg5ZTI5YjVmMmI2ZjZmYzAxMgotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTE4LmMKQEAg LTAsMCArMSwyNCBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzEg LXNhdmUtdGVtcHMgLWZkdW1wLXRyZWUtZGNlIiB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4K KworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhKSkKK3ZvaWQgZnVuMSh1aW50MzJfdCAq eCwgaW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykKKyAg ICAgIHhbaV0gPSAoeFtpXSYofjEpKSA8IDA7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5l LCBub2lwYSwgb3B0aW1pemUoIk8wIikpKQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBpbnQgbikK K3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9 ICh4W2ldJih+MSkpIDwgMDsKK30KKworI2luY2x1ZGUgImJpYy1iaXRtYXNrLmgiCisKKy8qIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7PSAwfSAxIGRjZTcgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHtccytiaWNccyt9IGRjZTcgeyB0YXJnZXQg eyBhYXJjaDY0Ki0qLSogfSB9IH0gfSAqLworCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy5kZy9iaWMtYml0bWFzay0xOS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2st MTkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi5hZDI2NmNlYzBkMTBhMWFmYzBiZGFjZDg3NjJkMzI4YmZmMWY2ZWE0 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMTku YwpAQCAtMCwwICsxLDI0IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMSAtc2F2ZS10ZW1wcyAtZmR1bXAtdHJlZS1kY2UiIH0gKi8KKworI2luY2x1ZGUgPHN0ZGlu dC5oPgorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQordm9pZCBmdW4xKHVpbnQz Ml90ICp4LCBpbnQgbikKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsr KQorICAgICAgeFtpXSA9ICh4W2ldJih+MSkpICE9IDA7Cit9CisKK19fYXR0cmlidXRlX18oKG5v aW5saW5lLCBub2lwYSwgb3B0aW1pemUoIk8wIikpKQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBp bnQgbikKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQorICAgICAg eFtpXSA9ICh4W2ldJih+MSkpICE9IDA7Cit9CisKKyNpbmNsdWRlICJiaWMtYml0bWFzay5oIgor CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgez5ccyogMX0gMSBkY2U3IH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7JlxzKiA0Mjk0OTY3Mjk0 fSBkY2U3IH0gfSAqLworCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0 bWFzay0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0yLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MC4uZGEzMGZhZDg5ZjZjODIzOWJhYTQzOTViM2ZmYWVjMGJlNTc3ZTEzZgotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTIuYwpAQCAtMCwwICsxLDI1 IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMyAtc2F2ZS10ZW1w cyAtZmR1bXAtdHJlZS1kY2UiIH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCitfX2F0dHJp YnV0ZV9fKChub2lubGluZSwgbm9pcGEpKQordm9pZCBmdW4xKHVpbnQzMl90ICp4LCBpbnQgbikK K3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9 ICh4W2ldJih+MjU1KSkgPT0gMDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBh LCBvcHRpbWl6ZSgiTzEiKSkpCit2b2lkIGZ1bjIodWludDMyX3QgKngsIGludCBuKQoreworICAg IGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0m KH4yNTUpKSA9PSAwOworfQorCisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCIKKworLyogeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHs8PVxzKi4rXHsgMjU1LC4rXH19IDEgZGNlNyB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZccyouK1x7IDQyOTQ5 NjcwNDAsLitcfX0gZGNlNyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1u b3Qge1xzK2JpY1xzK30gZGNlNyB7IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9ICovCisK ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTIwLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0yMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZmQyNWNiNGFh YzZmZTIwNjExMGU3Y2E4MDgxNmRkNmZjMGVkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0yMC5jCkBAIC0wLDAgKzEsMjQgQEAKKy8qIHsgZGct ZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8xIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVl LWRjZSIgfSAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5s aW5lLCBub2lwYSkpCit2b2lkIGZ1bjEodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZvciAo aW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH41KSkg PT0gMDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzAi KSkpCit2b2lkIGZ1bjIodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZvciAoaW50IGkgPSAw OyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH41KSkgPT0gMDsKK30K KworI2luY2x1ZGUgImJpYy1iaXRtYXNrLmgiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC1ub3Qgezw9XHMqIDQyOTQ5NjcyODl9IGRjZTcgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAgeyZccyogNDI5NDk2NzI5MH0gZGNlNyB9IH0gKi8KKwpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMjEuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLmRnL2JpYy1iaXRtYXNrLTIxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAzN2ZmYzI0OGVlZjE1MDljNjQy YWJiMDA4N2I3Nzg4MjY3OTE1MAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL2JpYy1iaXRtYXNrLTIxLmMKQEAgLTAsMCArMSwyNSBAQAorLyogeyBkZy1kbyBydW4gfSAq LworLyogeyBkZy1vcHRpb25zICItTzEgLXNhdmUtdGVtcHMgLWZkdW1wLXRyZWUtZGNlIiB9ICov CisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBh KSkKK3ZvaWQgZnVuMShpbnQzMl90ICp4LCBpbnQgbikKK3sKKyAgICBmb3IgKGludCBpID0gMDsg aSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPT0gMDsKK30K KworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgiTzAiKSkpCit2b2lk IGZ1bjIoaW50MzJfdCAqeCwgaW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAm IC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID09IDA7Cit9CisKKyNkZWZp bmUgVFlQRSBpbnQzMl90CisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCIKKworLyogeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wIHs8PVxzKiAyNTV9IGRjZTcgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtbm90IHsmXHMqIDQyOTQ5NjcyOTB9IGRjZTcgfSB9ICovCisKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTIyLmMgYi9nY2MvdGVz dHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0yMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMDI3YTYzNjdhMWRj ZWMxMjQ5MjQzNWYyNjAyNTBhN2I1NGFjYTEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy5kZy9iaWMtYml0bWFzay0yMi5jCkBAIC0wLDAgKzEsMjQgQEAKKy8qIHsgZGctZG8g cnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8xIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRj ZSIgfSAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5l LCBub2lwYSkpCit2b2lkIGZ1bjEodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSAh PSAwOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEsIG9wdGltaXplKCJPMCIp KSkKK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwgaW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCAobiAmIC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpICE9IDA7Cit9 CisKKyNpbmNsdWRlICJiaWMtYml0bWFzay5oIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAgez5ccyogMjU1fSBkY2U3IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLW5vdCB7JlxzKiA0Mjk0OTY3MjkwfSBkY2U3IH0gfSAqLworCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay0yMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv YmljLWJpdG1hc2stMjMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWVmNGJhZWQ3OTZjZjdiZjQ5OThkMWI0ZjRk ZGZiYzQ1N2FkZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmlj LWJpdG1hc2stMjMuYwpAQCAtMCwwICsxLDE2IEBACisvKiB7IGRnLWRvIGFzc2VtYmxlIH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLU8xIC1mZHVtcC10cmVlLWRjZSIgfSAqLworCisjaW5jbHVkZSA8 c3RkaW50Lmg+CisKK3R5cGVkZWYgdW5zaWduZWQgaW50IHY0c2kgX19hdHRyaWJ1dGVfXyAoKHZl Y3Rvcl9zaXplICgxNikpKTsKKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhKSkKK3Y0 c2kgZnVuKHY0c2kgeCkKK3sKKyAgICB2NHNpIG1hc2sgPSB7IDI1NSwgMTUsIDEsIDB4RkZGRiB9 OworICAgIHY0c2kgemVyb3MgPSB7MH07CisgICAgcmV0dXJuICh4ICYgfm1hc2spID09IHplcm9z OworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgezw9XHMqLitceyAyNTUsIDE1 LCAxLCA2NTUzNSBcfX0gZGNlNyB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL2JpYy1iaXRtYXNrLTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTMu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi5kYTMwZmFkODlmNmM4MjM5YmFhNDM5NWIzZmZhZWMwYmU1NzdlMTNmCi0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stMy5jCkBA IC0wLDAgKzEsMjUgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8z IC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRjZSIgfSAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+ CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSkpCit2b2lkIGZ1bjEodWludDMyX3Qg KngsIGludCBuKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisg ICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSA9PSAwOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lu bGluZSwgbm9pcGEsIG9wdGltaXplKCJPMSIpKSkKK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwgaW50 IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykKKyAgICAgIHhb aV0gPSAoeFtpXSYofjI1NSkpID09IDA7Cit9CisKKyNpbmNsdWRlICJiaWMtYml0bWFzay5oIgor CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgezw9XHMqLitceyAyNTUsLitc fX0gMSBkY2U3IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7Jlxz Ki4rXHsgNDI5NDk2NzA0MCwuK1x9fSBkY2U3IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLW5vdCB7XHMrYmljXHMrfSBkY2U3IHsgdGFyZ2V0IHsgYWFyY2g2NCotKi0qIH0g fSB9IH0gKi8KKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2st NC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNC5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFi Y2YyM2NjZjE0NDdkNmM4Yzk5OWVkMWViMjViYTBhNDUwMDI4ZTEKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay00LmMKQEAgLTAsMCArMSwyNSBAQAor LyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzMgLXNhdmUtdGVtcHMgLWZk dW1wLXRyZWUtZGNlIiB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworX19hdHRyaWJ1dGVf Xygobm9pbmxpbmUsIG5vaXBhKSkKK3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwgaW50IG4pCit7Cisg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAoeFtp XSYofjI1NSkpID49IDA7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSwgb3B0 aW1pemUoIk8xIikpKQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBpbnQgbikKK3sKKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1 KSkgPj0gMDsKK30KKworI2luY2x1ZGUgImJpYy1iaXRtYXNrLmgiCisKKy8qIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7PVxzKi4rXHsgMSwuK1x9fSAxIGRjZTcgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHsmXHMqLitceyA0Mjk0OTY3MDQwLC4r XH19IGRjZTcgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHtccyti aWNccyt9IGRjZTcgeyB0YXJnZXQgeyBhYXJjaDY0Ki0qLSogfSB9IH0gfSAqLworCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay01LmMgYi9nY2MvdGVzdHN1aXRl L2djYy5kZy9iaWMtYml0bWFzay01LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA1MzcyNzA3NmFiZWRlZmRlY2Zk YTdjNGZlYTZmOTJkNTRhOTRhNQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL2JpYy1iaXRtYXNrLTUuYwpAQCAtMCwwICsxLDI1IEBACisvKiB7IGRnLWRvIHJ1biB9ICov CisvKiB7IGRnLW9wdGlvbnMgIi1PMyAtc2F2ZS10ZW1wcyAtZmR1bXAtdHJlZS1kY2UiIH0gKi8K KworI2luY2x1ZGUgPHN0ZGludC5oPgorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEp KQordm9pZCBmdW4xKHVpbnQzMl90ICp4LCBpbnQgbikKK3sKKyAgICBmb3IgKGludCBpID0gMDsg aSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9ICh4W2ldJih+MjU1KSkgPiAwOworfQor CitfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9pcGEsIG9wdGltaXplKCJPMSIpKSkKK3ZvaWQg ZnVuMih1aW50MzJfdCAqeCwgaW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAm IC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAoeFtpXSYofjI1NSkpID4gMDsKK30KKworI2luY2x1 ZGUgImJpYy1iaXRtYXNrLmgiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyB7PlxzKi4rXHsgMjU1LC4rXH19IDEgZGNlNyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2Fu LXRyZWUtZHVtcC1ub3QgeyZccyouK1x7IDQyOTQ5NjcwNDAsLitcfX0gZGNlNyB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge1xzK2JpY1xzK30gZGNlNyB7IHRhcmdl dCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9ICovCisKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLmRnL2JpYy1iaXRtYXNrLTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNr LTYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi4wMThlN2E0MzQ4YzlmYzQ2MTEwNmMzZDlkMDEyOTEzMjVkMzQwNmMy Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNi5j CkBAIC0wLDAgKzEsMjUgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi LU8zIC1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLWRjZSIgfSAqLworCisjaW5jbHVkZSA8c3RkaW50 Lmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSkpCit2b2lkIGZ1bjEodWludDMy X3QgKngsIGludCBuKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKysp CisgICAgICB4W2ldID0gKHhbaV0mKH4yNTUpKSA8PSAwOworfQorCitfX2F0dHJpYnV0ZV9fKChu b2lubGluZSwgbm9pcGEsIG9wdGltaXplKCJPMSIpKSkKK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwg aW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykKKyAgICAg IHhbaV0gPSAoeFtpXSYofjI1NSkpIDw9IDA7Cit9CisKKyNpbmNsdWRlICJiaWMtYml0bWFzay5o IgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgezw9XHMqLitceyAyNTUs LitcfX0gMSBkY2U3IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7 JlxzKi4rXHsgNDI5NDk2NzA0MCwuK1x9fSBkY2U3IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLW5vdCB7XHMrYmljXHMrfSBkY2U3IHsgdGFyZ2V0IHsgYWFyY2g2NCotKi0q IH0gfSB9IH0gKi8KKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1h c2stNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stNy5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu Ljc5ODY3OGZiNzU1NTA1MmM5M2FiYzRjYTM0ZjYxN2Q2NDBmNzNiYjQKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay03LmMKQEAgLTAsMCArMSwyNCBA QAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzMgLXNhdmUtdGVtcHMg LWZkdW1wLXRyZWUtZGNlIiB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworX19hdHRyaWJ1 dGVfXygobm9pbmxpbmUsIG5vaXBhKSkKK3ZvaWQgZnVuMSh1aW50MzJfdCAqeCwgaW50IG4pCit7 CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykKKyAgICAgIHhbaV0gPSAo eFtpXSYofjEpKSA8IDA7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2lwYSwgb3B0 aW1pemUoIk8xIikpKQordm9pZCBmdW4yKHVpbnQzMl90ICp4LCBpbnQgbikKK3sKKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQorICAgICAgeFtpXSA9ICh4W2ldJih+MSkp IDwgMDsKK30KKworI2luY2x1ZGUgImJpYy1iaXRtYXNrLmgiCisKKy8qIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyB7X19idWlsdGluX21lbXNldH0gMSBkY2U3IH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7XHMrYmljXHMrfSBkY2U3IHsgdGFyZ2V0 IHsgYWFyY2g2NCotKi0qIH0gfSB9IH0gKi8KKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvYmljLWJpdG1hc2stOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2st OC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLjFkYWJlODM0ZWQ1N2RmYTBiZTQ4YzFkYzNkYmIyMjYwOTJjNzlhMWEK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0bWFzay04LmMK QEAgLTAsMCArMSwyNSBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICIt TzMgLXNhdmUtdGVtcHMgLWZkdW1wLXRyZWUtZGNlIiB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQu aD4KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhKSkKK3ZvaWQgZnVuMSh1aW50MzJf dCAqeCwgaW50IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykK KyAgICAgIHhbaV0gPSAoeFtpXSYofjEpKSAhPSAwOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lu bGluZSwgbm9pcGEsIG9wdGltaXplKCJPMSIpKSkKK3ZvaWQgZnVuMih1aW50MzJfdCAqeCwgaW50 IG4pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykKKyAgICAgIHhb aV0gPSAoeFtpXSYofjEpKSAhPSAwOworfQorCisjaW5jbHVkZSAiYmljLWJpdG1hc2suaCIKKwor LyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHs+XHMqLitceyAxLC4rXH19IDEg ZGNlNyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgeyZccyouK1x7 IDQyOTQ5NjcyOTQsLitcfX0gZGNlNyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC1ub3Qge1xzK2JpY1xzK30gZGNlNyB7IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9 ICovCisKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTkuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLTkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzFmOGVl MGFkZmM0NWQxYjlmYzIxMjEzOGVhMjZiYjZiNjkzZTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvYmljLWJpdG1hc2stOS5jCkBAIC0wLDAgKzEsMjUgQEAKKy8qIHsg ZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1zYXZlLXRlbXBzIC1mZHVtcC10 cmVlLWRjZSIgfSAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK19fYXR0cmlidXRlX18oKG5v aW5saW5lLCBub2lwYSkpCit2b2lkIGZ1bjEodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH41 KSkgPT0gMDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vaXBhLCBvcHRpbWl6ZSgi TzEiKSkpCit2b2lkIGZ1bjIodWludDMyX3QgKngsIGludCBuKQoreworICAgIGZvciAoaW50IGkg PSAwOyBpIDwgKG4gJiAtMTYpOyBpKyspCisgICAgICB4W2ldID0gKHhbaV0mKH41KSkgPT0gMDsK K30KKworI2luY2x1ZGUgImJpYy1iaXRtYXNrLmgiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC1ub3Qgezw9XHMqLitceyA0Mjk0OTY3Mjg5LC4rXH19IGRjZTcgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgeyZccyouK1x7IDQyOTQ5NjcyOTAsLitcfX0gZGNl NyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge1xzK2JpY1xzK30g ZGNlNyB7IHRhcmdldCB7IGFhcmNoNjQqLSotKiB9IH0gfSB9ICovCisKZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL2JpYy1iaXRtYXNrLmggYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9i aWMtYml0bWFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZjgwYjk3NGRiMDdhN2Q4MTdhNjE1Y2M2NGEzNWYx MDIwZTk3NjQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9iaWMtYml0 bWFzay5oCkBAIC0wLDAgKzEsNDMgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaWZuZGVmIE4K KyNkZWZpbmUgTiA2NQorI2VuZGlmCisKKyNpZm5kZWYgVFlQRQorI2RlZmluZSBUWVBFIHVpbnQz Ml90CisjZW5kaWYKKworI2lmbmRlZiBERUJVRworI2RlZmluZSBERUJVRyAwCisjZW5kaWYKKwor I2RlZmluZSBCQVNFICgoVFlQRSkgLTEgPCAwID8gLTEyNiA6IDQpCisKK2ludCBtYWluICgpCit7 CisgIFRZUEUgYVtOXTsKKyAgVFlQRSBiW05dOworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsg KytpKQorICAgIHsKKyAgICAgIGFbaV0gPSBCQVNFICsgaSAqIDEzOworICAgICAgYltpXSA9IEJB U0UgKyBpICogMTM7CisgICAgICBpZiAoREVCVUcpCisgICAgICAgIHByaW50ZiAoIiVkOiAweCV4 XG4iLCBpLCBhW2ldKTsKKyAgICB9CisKKyAgZnVuMSAoYSwgTik7CisgIGZ1bjIgKGIsIE4pOwor CisgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQorICAgIHsKKyAgICAgIGlmIChERUJVRykK KyAgICAgICAgcHJpbnRmICgiJWQgPSAweCV4ID09IDB4JXhcbiIsIGksIGFbaV0sIGJbaV0pOwor CisgICAgICBpZiAoYVtpXSAhPSBiW2ldKQorICAgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7Cisg ICAgfQorICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvYmljLWJpdG1hc2stMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvYmljLWJpdG1hc2stMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2OGMxZmZjOGJjNDE0OGVmYWVlYmE3 YTQ1YTc1ZWNiZDNhN2EzZGQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9iaWMtYml0bWFzay0xLmMKQEAgLTAsMCArMSwxMyBAQAorLyogeyBkZy1k byBhc3NlbWJsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtc2F2ZS10ZW1wcyIgfSAqLwor CisjaW5jbHVkZSA8YXJtX25lb24uaD4KKwordWludDMyeDRfdCBmb28gKGludDMyeDRfdCBhKQor eworICBpbnQzMng0X3QgY3N0ID0gdmR1cHFfbl9zMzIgKDI1NSk7CisgIGludDMyeDRfdCB6ZXJv ID0gdmR1cHFfbl9zMzIgKDApOworICByZXR1cm4gdmNlcXFfczMyICh2YmljcV9zMzIgKGEsIGNz dCksIHplcm8pOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdGJp Y1x0fSB7IHhmYWlsIHsgYWFyY2g2NCotKi0qIH0gfSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90 cmVlLmggYi9nY2MvdHJlZS5oCmluZGV4IDkwNTQxN2ZkMTdiMTcyMWY2YzY1ZDNjZGY2NmE1ZmQ1 ZjkyMGRlN2YuLjM1ODNkNTE0MDljYWQ5NDcxZmU0NWRlNjQ4MDZlNzhkODU1YmQ5N2MgMTAwNjQ0 Ci0tLSBhL2djYy90cmVlLmgKKysrIGIvZ2NjL3RyZWUuaApAQCAtNDg2Miw2ICs0ODYyLDExIEBA IGV4dGVybiBib29sIGludGVnZXJfbWludXNfb25lcCAoY29uc3RfdHJlZSk7CiAKIGV4dGVybiBi b29sIGludGVnZXJfcG93MnAgKGNvbnN0X3RyZWUpOwogCisvKiBDaGVja3MgdG8gc2VlIGlmIFQg aXMgYSBjb25zdGFudCBvciBhIGNvbnN0YW50IHZlY3RvciBhbmQgaWYgZWFjaCBlbGVtZW50IEUK KyAgIGFkaGVyZXMgdG8gfkUgKyAxID09IHBvdzIgdGhlbiByZXR1cm4gfkUgb3RoZXJ3aXNlIE5V TExfVFJFRS4gICovCisKK2V4dGVybiB0cmVlIGJpdG1hc2tfaW52X2NzdF92ZWN0b3JfcCAodHJl ZSk7CisKIC8qIGludGVnZXJfbm9uemVyb3AgKHRyZWUgeCkgaXMgbm9uemVybyBpZiBYIGlzIGFu IGludGVnZXIgY29uc3RhbnQKICAgIHdpdGggYSBub256ZXJvIHZhbHVlLiAgKi8KIApkaWZmIC0t Z2l0IGEvZ2NjL3RyZWUuYyBiL2djYy90cmVlLmMKaW5kZXggY2JhM2JjYTQxYjNhNTA1NTc5Mzky NjdiN2EwNmRmMDRiNWQwNDJiNy4uODAxZjEyMWEzNjhiMDg4ZDBmNzY5ZjE2ZjJlZDI5ZTMyMGU3 MTU1NiAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUuYworKysgYi9nY2MvdHJlZS5jCkBAIC0xMDI0Niw2 ICsxMDI0Niw1OSBAQCB1bmlmb3JtX2ludGVnZXJfY3N0X3AgKHRyZWUgdCkKICAgcmV0dXJuIE5V TExfVFJFRTsKIH0KIAorLyogQ2hlY2tzIHRvIHNlZSBpZiBUIGlzIGEgY29uc3RhbnQgb3IgYSBj b25zdGFudCB2ZWN0b3IgYW5kIGlmIGVhY2ggZWxlbWVudCBFCisgICBhZGhlcmVzIHRvIH5FICsg MSA9PSBwb3cyIHRoZW4gcmV0dXJuIH5FIG90aGVyd2lzZSBOVUxMX1RSRUUuICAqLworCit0cmVl CitiaXRtYXNrX2ludl9jc3RfdmVjdG9yX3AgKHRyZWUgdCkKK3sKKworICB0cmVlX2NvZGUgY29k ZSA9IFRSRUVfQ09ERSAodCk7CisgIHRyZWUgdHlwZSA9IFRSRUVfVFlQRSAodCk7CisKKyAgaWYg KCFJTlRFR1JBTF9UWVBFX1AgKHR5cGUpCisgICAgICAmJiAhVkVDVE9SX0lOVEVHRVJfVFlQRV9Q ICh0eXBlKSkKKyAgICByZXR1cm4gTlVMTF9UUkVFOworCisgIHVuc2lnbmVkIEhPU1RfV0lERV9J TlQgbmVsdHMgPSAxOworICB0cmVlIGNzdDsKKyAgdW5zaWduZWQgaW50IGlkeCA9IDA7CisgIGJv b2wgdW5pZm9ybSA9IHVuaWZvcm1faW50ZWdlcl9jc3RfcCAodCk7CisgIHRyZWUgbmV3dHlwZSA9 IHVuc2lnbmVkX3R5cGVfZm9yICh0eXBlKTsKKyAgdHJlZV92ZWN0b3JfYnVpbGRlciBidWlsZGVy OworICBpZiAoY29kZSA9PSBJTlRFR0VSX0NTVCkKKyAgICBjc3QgPSB0OworICBlbHNlCisgICAg eworICAgICAgaWYgKCFWRUNUT1JfQ1NUX05FTFRTICh0KS5pc19jb25zdGFudCAoJm5lbHRzKSkK KwlyZXR1cm4gTlVMTF9UUkVFOworCisgICAgICBjc3QgPSB2ZWN0b3JfY3N0X2VsdCAodCwgMCk7 CisgICAgICBidWlsZGVyLm5ld192ZWN0b3IgKG5ld3R5cGUsIG5lbHRzLCAxKTsKKyAgICB9CisK KyAgdHJlZSB0eSA9IHVuc2lnbmVkX3R5cGVfZm9yIChUUkVFX1RZUEUgKGNzdCkpOworCisgIGRv IHsKKyAgICBpZiAoaWR4ID4gMCkKKyAgICAgIGNzdCA9IHZlY3Rvcl9jc3RfZWx0ICh0LCBpZHgp OworICAgIHdpZGVfaW50IGljc3QgPSB3aTo6dG9fd2lkZSAoY3N0KTsKKyAgICB3aWRlX2ludCBp bnYgPSAgd2k6OmJpdF9ub3QgKGljc3QpOworICAgIGljc3QgPSB3aTo6YWRkICgxLCBpbnYpOwor ICAgIGlmICh3aTo6cG9wY291bnQgKGljc3QpICE9IDEpCisgICAgICByZXR1cm4gTlVMTF9UUkVF OworCisgICAgdHJlZSBuZXdjc3QgPSB3aWRlX2ludF90b190cmVlICh0eSwgaW52KTsKKworICAg IGlmICh1bmlmb3JtKQorICAgICAgcmV0dXJuIGJ1aWxkX3VuaWZvcm1fY3N0IChuZXd0eXBlLCBu ZXdjc3QpOworCisgICAgYnVpbGRlci5xdWlja19wdXNoIChuZXdjc3QpOworICB9IHdoaWxlICgr K2lkeCA8IG5lbHRzKTsKKworICByZXR1cm4gYnVpbGRlci5idWlsZCAoKTsKK30KKwogLyogSWYg VkVDVE9SX0NTVCBUIGhhcyBhIHNpbmdsZSBub256ZXJvIGVsZW1lbnQsIHJldHVybiB0aGUgaW5k ZXggb2YgdGhhdAogICAgZWxlbWVudCwgb3RoZXJ3aXNlIHJldHVybiAtMS4gICovCiAK --_002_AM0PR08MB5316A3C69CD03AF9A77E6730FFAF9AM0PR08MB5316eurp_--