From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id tA3GIO1gI2EWKAAAWB0awg (envelope-from ) for ; Mon, 23 Aug 2021 04:48:45 -0400 Received: by simark.ca (Postfix, from userid 112) id 69C3F1EE18; Mon, 23 Aug 2021 04:48:45 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id EF6191E813 for ; Mon, 23 Aug 2021 04:48:42 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 32294385AC2F for ; Mon, 23 Aug 2021 08:48:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 32294385AC2F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1629708522; bh=KZ21+YuoGN4mjSnNcs3wAxFV/8iM/PW2ktvwZXcTF+o=; h=To:Subject:Date:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=jJc4An79KvR+2i8MEslUodHvRkaVKRa/FKv5t87lQdOWB31AqTBlslD9Jqe0xFHf7 MQ8QrIjrT6+fzfOMFnIJcd4MfXO0t+rmOtFAeRwrXs6OOSbubvpHufBGVFTnvxFaal 3hlcDbO/49d+Vmtw/XHmXgLhH8pegLonOllZE4wo= Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by sourceware.org (Postfix) with ESMTPS id C8064385782D for ; Mon, 23 Aug 2021 08:47:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C8064385782D X-IronPort-AV: E=McAfee;i="6200,9189,10084"; a="239196176" X-IronPort-AV: E=Sophos;i="5.84,344,1620716400"; d="scan'208";a="239196176" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Aug 2021 01:47:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,344,1620716400"; d="scan'208";a="514715089" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga004.fm.intel.com with ESMTP; 23 Aug 2021 01:47:48 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Mon, 23 Aug 2021 01:47:47 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Mon, 23 Aug 2021 01:47:47 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Mon, 23 Aug 2021 01:47:47 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Mon, 23 Aug 2021 01:47:47 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QNVCjT+bSOZZnvX5U6nlwDyJa1Wsr4gMLuZCBnBV0+bXKR0UTVbM2sMRuP/4YseAM4rzBSzKCchviow/KyEa4us0DxLJ1Lz4K5rfQpKvhGoy5zsH92+7BUwnqLowujROIsx1WcRUWClAmdTGAuMTJsj5Imp6F78bOh8u0XzRYDDRfIj2R2P4ona8GOII7iaCbhD+nVu1i4OMEmpnl5QMaF77fzHovjyus38N9SIgWl9fZ4G7L54dqnNHpX0nTaUKHQ2l7soKiiPNiOYAiZZ3fuRAK5xFP55AgaMzzm8ubfEcZfPZ3PdZHq8vJiC1VCaqwbB2w3te2cbXCM2WbF5U1g== 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-SenderADCheck; bh=Z0BrYt9IMnsKq6PXbXNzJaz7B3aGubYdaeTREU+dLbM=; b=bes+29bkSWFPFhwPrBza/TOP/JCZiPGjSTGnFP0yZoqUu9apylEbgu1HhZWzHtREWhuxKATH8TPraebiOcLQmQgBXDES0seP9y5kbe01T6GSQsm9vuURp4ufl47gAAy8p6aakatTPkx+IN+3YNDpERO/lsj9+YOD5aL5EiI8Vl17IAUNyAX6VYCWesmroZ48qYhYsvPWbcnfIU3cp1P7b0DxbGjWjney/L9Ub2Oh4BEvV1S6TtwW05kNyCaDbBT3oIhEmUMlll+wCsrMUsAPu8UFH8UArkHnHdLSo6phfo5qaNtkINaviNn4tqLO2D1IkzM4ALJNNFAtBpD+YbhVhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4788.namprd11.prod.outlook.com (2603:10b6:303:97::11) by CO1PR11MB4850.namprd11.prod.outlook.com (2603:10b6:303:9c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Mon, 23 Aug 2021 08:47:46 +0000 Received: from CO1PR11MB4788.namprd11.prod.outlook.com ([fe80::d8d4:f446:4549:4da5]) by CO1PR11MB4788.namprd11.prod.outlook.com ([fe80::d8d4:f446:4549:4da5%8]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 08:47:46 +0000 To: Andrew Burgess , abdul.b.ijaz Subject: RE: [PATCH 1/1] gdb: Fix arrays of variable length strings for FORTRAN Thread-Topic: [PATCH 1/1] gdb: Fix arrays of variable length strings for FORTRAN Thread-Index: AQHXlbN/Z/p+2KKqekqs58lyumkhyKt8i3CAgAQ5qMA= Date: Mon, 23 Aug 2021 08:47:46 +0000 Message-ID: References: <20210820110638.26648-1-abdul.b.ijaz@intel.com> <20210820110638.26648-2-abdul.b.ijaz@intel.com> <20210820155247.GA2581@embecosm.com> In-Reply-To: <20210820155247.GA2581@embecosm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c882e399-03c7-4f8f-d00b-08d96612adcc x-ms-traffictypediagnostic: CO1PR11MB4850: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CUv3Krbzee1ZMle6RbGr84oDnHQ2VonaIWdxhLX+gE+FIvx06sOmrc+i+o3HpTVxw5iX1ON/OQwIstsjehas2fkbJiGCSsdi5WJBofrQPAF3SXNvPJNk+3TGZtvYydXRBi62tVpeB7zVukNRAFa57hcYeMQVefpDZvaSdiECJ7HzCgid/VsQ6pPMw1m9AkElvlqEjiZdzwgmtsBimunAjdj6FMP4dVWLE23MR3ag1i1JEoDDOLVy1C0mRiBqX1oEwh2hgMTa1LttXXO8d5IoD30nyfzobGbAilGjcvy3eGF23rKJIGe24/OAcpi+0r+me9N93T/ydlmUkeQSbE6zPORvobQvfbgzikKCJqG0XEbgyDyMZn85TbhEg/NMLrW4X9NvyU2RkRBL1RJ0pqCbYYFvhzHAVfIZ/fYarFLMiOxa91eccvZqc+RW8vAMzPhv7lVD/ztzu4sCUcbmLb4bLvLKCG5hp/mlge/SLvb8UdzNP3HIUOKiUFGFgVqeUD7F6mHk4XBmnBnlnHVmYqAdOk6PJZCdQrff+Vc7fK6KyVwcRrnZ6vL+u4UKuAClPndz/KkVynwFaKJ9U6TYGYAJdVZ8oMPDo7kNIAY4vfd3mWaSfps7SWURhq7KjY8Pj5wyf7snqH/lkOuSQWeOUWYAaeXIauE/96naGbBbToJLK9/M/Wkr3wwZlkl9VkYsAqwoC6IpfKLD8tDDoJBAs5tep1/Wz3RJAc9hYYmgtyo39vfPXBw3WUMvNML7/3DD2wXgEB3l5yOIIg0CXTFrkc+IuOQYBtk8rBmFC7laUIqB1duPkTmsIC1YHrHAWRk6znHr x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR11MB4788.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(376002)(346002)(136003)(366004)(39860400002)(52536014)(83380400001)(8676002)(33656002)(9686003)(8936002)(55016002)(2906002)(478600001)(316002)(86362001)(186003)(110136005)(38100700002)(71200400001)(5660300002)(122000001)(66476007)(66556008)(38070700005)(64756008)(66946007)(76116006)(66446008)(6506007)(7696005)(30864003)(4326008)(2004002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bitHeFRRbGVwa1ZDQzNFcHE3cWxBbDJnbTFqYXhTUWJVblFxQWNqcWNDQXVp?= =?utf-8?B?czIxK1I4M1A4SHRaQUJJRnBYSklmL1JjYmhQSUJHdW04NEdCbTB5WVRYQ3ZR?= =?utf-8?B?eHp3R2xXb0FZNm9nSnZ1T1NBV2xvaGJCWG9IZ2dTNGVVOUlLbnlLamRqT1p2?= =?utf-8?B?WDFTRkJnRkZEUmV3VTBrenp6bUJkOGlrb2RlbE51RXdvVk9VNDlDKytFTnd0?= =?utf-8?B?MzR6UW41d0JaaUpPeDBMVmRFV1czSmVtOHBUQWVpTHBqM21CakIwT3l3emxJ?= =?utf-8?B?dWIyOFgzaXJRVyt4WnQ0TTBzV01FQ21QcFVJV2t4cFV1ZDVsNlluamFGMWw1?= =?utf-8?B?ZnJTRGtwZ1FVY0VJTitUdDJuRTU4aExSbmc1Mm9sTmxKekRmYUxCUUFQZk41?= =?utf-8?B?RjFxZkorK3UwcHFQanRPMW1mdGFxOWFoWkNlMHpEd2ZLekluTWJLWUE2ZmJ6?= =?utf-8?B?ZUlwN3FwWTE0RmpCcmRLRzRYU0JOaC92dXJrZHVIMjQ3bFEzOVlVNklNT1k2?= =?utf-8?B?S3RnR2dDeTFKMHpVTVRSKzIrQS9NRzYxTmV2Zmlna0VMRVhRNlBJMWY4TDdB?= =?utf-8?B?OGtzaDFxdm56MCtSV0VmaE9nbGp0TEM5K0hvWWlSbU5qUmxWdk9wZUtKMWl1?= =?utf-8?B?WHRsUEM3RkJpWlFVeWtveVp0cTRlRVlKWkkyb1hpakM2elc5aDBSTnlqN1VW?= =?utf-8?B?RkMrZXVReEh6N2l0czk4cjJ2SEliTjFFblE1bjFCVWNvWGE5dkRoTlNsYWp3?= =?utf-8?B?cVgxTC83T2p1dmFSaUprRW1jaFJ1OCt2MVJKZzU4VFRaQW0rVXlNbEVpbHhj?= =?utf-8?B?UG5RSVUxeTNWM3NsOS9JTmxjcnN5SGRSM25BUVNFK2cxc1h2SlVreVJwZkRx?= =?utf-8?B?WDNBcmxoN2sxcFZFaEd0eGQ4OVphd1NyZmFNcjZsRE1SUEhYY01WTDc0ZVph?= =?utf-8?B?ZmVHOEI5RWdteVRRaGl4RGVYb2JKaWErVldxQkFwSksyNTYvZ29hTk9wZXJ0?= =?utf-8?B?b001akRiMkx4Tm9zTVZPT0R0TGVLaWQvT29HVm40S0RUZUFhQUM2RnI2K1ZS?= =?utf-8?B?Lzltd0YrOVJuMXZ1VXFLRXQwMjF3cFFDSkFTN1YxSFkzRjUvWGZmNDEwNWFV?= =?utf-8?B?N0xqNDU0aWhXVDI3c0IvUTNhRVBkSXhlbmNSMmduVDlFVzVocnBIRGhrY1hD?= =?utf-8?B?cGN1OXA3dkRvOFhnOTVMNm96Q2NVRDhBbStHTjJoNmEwbTRES3pvdXpNWjRX?= =?utf-8?B?Mm1iaU1kbzd3amFiVGcyWTdNSGFMODNUQ3pSVThYWU9MZUdhRjZ3R0I4SHdo?= =?utf-8?B?SDFCTzFDWHQzcFVScm1ObENIM0VBQU1EZXBuaGFITVZ1N1A1Z0FlaTVDT0Ri?= =?utf-8?B?RDIwMUtJM2d5ckhva2RKVFRvVncrOFQ4QUZOWlFWRjYyalBYVExCU2dzb1lw?= =?utf-8?B?QTF3N05zVzlXSW9nTDI5Q2xTb0tOYkdrZW55b051TjJqVUY3WjE1ZFlrOHR3?= =?utf-8?B?aDJ1RllpZjYyQ0NlWUpRa2p1RmdXeVpMMjVmRWJIaXJVenhHVGxURzloWHJH?= =?utf-8?B?Vlp1YzZaNVJmOHFuQ1FuQUFsVEtYaUxtcGhNVlV3dGl2UDlXaTJlcC8yQ3M3?= =?utf-8?B?Q1p4bWloMmdYN251ZWxCV3ZicUtQZmRQUHpMNEN1U2ZtcnV1aCtHRElOVW5j?= =?utf-8?B?Sk51V25OMWgwMzBkMzlqSWpZdFNwL1pZamcrS1VPelVYaXZYSVFZcVR3WWFj?= =?utf-8?B?OEhGWkdZMzdyMEs2WnpRdm1tc1dUS0p2bm9EY0NYY2tGaVFwZzNVeEhiaC9l?= =?utf-8?B?amdZOTA0ZHpEaXU3dUErd3A1a2ttUm9sVWVyTEtGaUJubDZua3hWL2lHbHZL?= =?utf-8?Q?XEJ0UbqOKvqyA?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4788.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c882e399-03c7-4f8f-d00b-08d96612adcc X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2021 08:47:46.0622 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TJpsENxKucgkbv83y+ec18yUixUA94f386aK9nw8pyHR3SD/fQqqn9ZTLlG00ghauenyL/EszA4QL+djArJNHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4850 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: "Ijaz, Abdul B via Gdb-patches" Reply-To: "Ijaz, Abdul B" Cc: "gdb-patches@sourceware.org" Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" PiBHREIgaXMgbm90IGFibGUgdG8gcHJpbnQgYXJyYXlzIG9mIEZPUlRSQU4gdmFyaWFibGUgbGVu Z3RoIHN0cmluZ3MgDQo+IHdoZW4gZHdhcmYgaW5mbyBjb250YWlucyBEV19BVF9zdHJpbmdfbGVu Z3RoIG9ubHkgcmVnYXJkaW5nIHRoZSBzdHJpbmcgDQo+IGxlbmd0aCBpbmZvcm1hdGlvbi4gIFNv IGhhbmRpbmcgb2YgZHluYW1pYyBhcnJheSBpcyB1cGRhdGVkIHRvIGhhbmRsZSANCj4gc3VjaCBj YXNlcy4NCg0KVGhhbmtzIGZvciB3b3JraW5nIG9uIHRoaXMuICBJIGhhdmUgc29tZSBmZWVkYmFj aywgc2VlIGJlbG93Li4uDQo+PiBUaGFua3MgQW5kcmV3IGZvciB0aGUgZmVlZGJhY2suIEkgYWRk ZWQgbXkgcmVzcG9uc2UgYmVsb3cuIENhbiB5b3UgcGxlYXNlIHJldmlldyBpZiBpdCBsb29rcyBm aW5lIHRvIHlvdSBzbyBJIHdpbGwgdXBkYXRlIGl0IGFjY29yZGluZ2x5LiANCg0KPiANCj4gU3Vw cG9zZSB3ZSBoYXZlDQo+IA0KPiBzdWJyb3V0aW5lIHZsYV9hcnJheSAoYXJyMSwgYXJyMikNCj4g ICBjaGFyYWN0ZXIgKGxlbj0qKTo6IGFycjEgKDopDQo+ICAgY2hhcmFjdGVyIChsZW49NSk6OiBh cnIyICg6KQ0KPiANCj4gICBwcmludCAqLCBhcnIxICEgYnJlYWstaGVyZQ0KPiAgIHByaW50ICos IGFycjINCj4gZW5kIHN1YnJvdXRpbmUgdmxhX2FycmF5DQo+IA0KPiBUaGUgInByaW50IGFycjEi IGFuZCAicHJpbnQgYXJyMiIgY29tbWFuZCBhdCB0aGUgImJyZWFrLWhlcmUiIGxpbmUgDQo+IGdp dmVzIHRoZSBmb2xsb3dpbmcgb3V0cHV0Og0KPiANCj4gKGdkYikgcHJpbnQgYXJyMQ0KPiAkMSA9 ICg8ZXJyb3IgcmVhZGluZyB2YXJpYWJsZT4NCj4gKGdkYikgcHJpbnQgYXJyMg0KPiAkMiA9ICgn YWJjZGUnLCAnYWJjZGUnLCAnYWJjZGUnKQ0KPiAoZ2RiKSBwdHlwZSBhcnIxDQo+IHR5cGUgPSBj aGFyYWN0ZXIqKCopICg1KQ0KPiAoZ2RiKSBwdHlwZSBhcnIyDQo+IHR5cGUgPSBjaGFyYWN0ZXIq NSAoMykNCj4gDQo+IFNvIEdEQiBpcyBhYmxlIHRvIHByaW50IHRoZSBhcnJheSBvZiBzdHJpbmcg d2l0aCBzdGF0aWMgbGVuZ3RoIGJ1dCBmb3IgDQo+IHZhcmlhYmxlIGxlbmd0aCBpdCBmYWlsIHRv IGRvIHNvLiAgRm9yIHRoaXMgY2FzZSBub3cgaW1wcm92ZSBoYW5kbGluZyANCj4gb2YgdGhlIFRZ UEVfQ09ERV9TVFJJTkcgY29kZSBpbiBkeW5hbWljIGFycmF5IGxlbmd0aCByZXNvbHZpbmcgDQo+ IGZ1bmN0aW9uIHRvIHNldCB0aGUgc3RhdGljIGxlbmd0aCBvZiBzdHJpbmdzIGFzIHdlbGwgd2hl biBvbmx5IA0KPiBEV19BVF9zdHJpbmdfbGVuZ3RoIGlzIGdpdmVuIGluIHRoZSBkd2FyZiBpbmZv Lg0KPiANCj4gRHdhcmYgaW5mbyB1c2luZyBJbnRlbMKuIEZvcnRyYW4gQ29tcGlsZXIgZm9yIHN1 Y2ggY2FzZSBjb250YWlucyBmb2xsb3dpbmc6DQo+ICA8MT48ZmQ+OiBBYmJyZXYgTnVtYmVyOiAx MiAoRFdfVEFHX3N0cmluZ190eXBlKQ0KPiAgICAgPGZlPiAgIERXX0FUX25hbWUgICAgICAgIDog KGluZGlyZWN0IHN0cmluZywgb2Zmc2V0OiAweGQyKTogLnN0ci5BUlIxDQo+ICAgICA8MTAyPiAg IERXX0FUX3N0cmluZ19sZW5ndGg6IDMgYnl0ZSBibG9jazogOTcgMjMgOCAJKERXX09QX3B1c2hf b2JqZWN0X2FkZHJlc3M7IERXX09QX3BsdXNfdWNvbnN0OiA4KQ0KDQpJIGRvbid0IHRoaW5rIHRo ZSBleHRyYSBpbmRlbnRhdGlvbiBiZWZvcmUgIkRXX0FUX3N0cmluZ19sZW5ndGgiIGlzIGNvcnJl Y3QgaGVyZSwgdGhpcyBhdHRyaWJ1dGUgaXMgYSBjaGlsZCBvZiB0aGUgRFdfVEFHX3N0cmluZ190 eXBlLCByaWdodD8gIE5vdCBhIGNoaWxkIG9mIHRoZSBEV19BVF9uYW1lLg0KDQo+PiBUaGlzIGlz IG91dHB1dCBvZiByZWFkZWxmIGFsc28gdGhlcmUgaXMgbm8gZXh0cmEgaW5kZW50YXRpb24gYmVm b3JlICJEV19BVF9zdHJpbmdfbGVuZ3RoIi4gRFdfQVRfbmFtZSBoYXMgMiBkaWdpdHMgaW4gZnJv bnQgPGZlPiB3aGlsZSBEV19BVF9zdHJpbmdfbGVuZ3QgaGFzIDMgIjwxMDI+IiBzbyB0aGlzIGlz IDEgbW9yZSB0byByaWdodC4gWWVzICJEV19BVF9zdHJpbmdfbGVuZ3RoIiBpcyBhIGNoaWxkIG9m IHRoZSBEV19UQUdfc3RyaW5nX3R5cGUuDQoNCg0KPiANCj4gQWZ0ZXIgZml4aW5nIGl0IGFuZCBj b21waWxpbmcgdXNpbmcgSW50ZWzCriBGb3J0cmFuIENvbXBpbGVyIG5vdyBnZGIgDQo+IHNob3dz DQo+IGZvbGxvd2luZzoNCj4gDQo+IChnZGIpIHAgYXJyMQ0KPiAkMSA9ICgnYWJkZGVmZ2hpaics ICdhYmRkZWZnaGlqJywgJ2FiZGRlZmdoaWonLCAnYWJkZGVmZ2hpaicsIA0KPiAnYWJkZGVmZ2hp aicpDQo+IChnZGIpIHAgYXJyMg0KPiAkMiA9ICgnYWJjZGUnLCAnYWJjZGUnLCAnYWJjZGUnKQ0K PiAoZ2RiKSBwdHlwZSBhcnIxDQo+IHR5cGUgPSBjaGFyYWN0ZXIqMTAgKDUpDQo+IChnZGIpIHB0 eXBlIGFycjINCj4gdHlwZSA9IGNoYXJhY3Rlcio1ICgzKQ0KPiANCj4gZ2RiL0NoYW5nZUxvZzoN Cj4gMjAyMS0wOC0yMCAgQWJkdWwgQmFzaXQgSWpheiAgPGFiZHVsLmIuaWphekBpbnRlbC5jb20+ DQo+IA0KPiAJKiBnZGJ0eXBlcy5jIChyZXNvbHZlX2R5bmFtaWNfYXJyYXlfb3Jfc3RyaW5nKTog SW1wcm92ZSBoYW5kbGluZw0KPiAJb2YgVFlQRV9DT0RFX1NUUklORyBjb2RlIHRvIHVzZSByZXR1 cm4gdmFsdWUgb2YgY3JlYXRlX3N0cmluZ190eXBlDQo+IAlvdXRjb21lIGZvciB0aGlzIGNhc2Uu DQo+IAkqIGMtdmFscHJpbnQuYyAoY192YWx1ZV9wcmludF9pbm5lcik6IEhhbmRsZSBTdHJpbmcg dHlwZSBjb2RlDQo+IAlpbiB0aGUgc2FtZSB3YXkgYXMgdGhlIEFycmF5IHR5cGUgY29kZS4NCj4g DQo+IGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPiAyMDIxLTA4LTIwICBBYmR1bCBCYXNpdCBJ amF6ICA8YWJkdWwuYi5pamF6QGludGVsLmNvbT4NCj4gDQo+IAkqIGdkYi5mb3J0cmFuL3ZsYS1h cnJheS5mOTA6IE5ldyBmaWUuDQo+IAkqIGdkYi5mb3J0cmFuL3ZsYS1hcnJheS5leHA6IE5ldyBm aWUuDQo+IA0KPiAyMDIxLTA4LTIwIEFiZHVsIEJhc2l0IElqYXogPGFiZHVsLmIuaWphekBpbnRl bC5jb20+DQo+IC0tLQ0KPiAgZ2RiL2MtdmFscHJpbnQuYyAgICAgICAgICAgICAgICAgICAgICAg IHwgIDEgKw0KPiAgZ2RiL2dkYnR5cGVzLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIg KysrKy0tDQo+ICBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1hcnJheS5leHAgfCA1NyAN Cj4gKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtYXJyYXkuZjkwIHwgNDQgKysrKysrKysrKysrKysrKysrKw0KPiAgNCBmaWxlcyBjaGFu Z2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlIA0KPiAx MDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYXJyYXkuZXhwDQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYXJyYXkuZjkwDQo+IA0K PiBkaWZmIC0tZ2l0IGEvZ2RiL2MtdmFscHJpbnQuYyBiL2dkYi9jLXZhbHByaW50LmMgaW5kZXgg DQo+IDljODI4Njk1MjVmLi5lNWE4ZTEyMjY3NiAxMDA2NDQNCj4gLS0tIGEvZ2RiL2MtdmFscHJp bnQuYw0KPiArKysgYi9nZGIvYy12YWxwcmludC5jDQo+IEBAIC00MjYsNiArNDI2LDcgQEAgY192 YWx1ZV9wcmludF9pbm5lciAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLA0KPiAgICBzd2l0Y2ggKHR5cGUtPmNvZGUgKCkpDQo+ICAgICAgew0K PiAgICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOg0KPiArICAgIGNhc2UgVFlQRV9DT0RFX1NUUklO RzoNCj4gICAgICAgIGNfdmFsdWVfcHJpbnRfYXJyYXkgKHZhbCwgc3RyZWFtLCByZWN1cnNlLCBv cHRpb25zKTsNCj4gICAgICAgIGJyZWFrOw0KDQpJIGRvbid0IHVuZGVyc3RhbmQgd2hhdCBwYXJ0 IHRoaXMgY2hhbmdlIHBsYXlzIGluIHRoaXMgcGF0Y2guICBJIGNhbiBzZWUgYmVsb3cgaG93IHlv dSdyZSBub3cgY3JlYXRpbmcgdmFsdWVzIHdpdGggVFlQRV9DT0RFX1NUUklORyBpbnN0ZWFkIG9m IFRZUEVfQ09ERV9BUlJBWSwgYnV0IHRoZW4gSSdkIGV4cGVjdCB0aGVzZSB0byBiZSBjb3ZlcmVk IGJ5IHRoZSBleGlzdGluZyBoYW5kbGluZyBvZiBUWVBFX0NPREVfU1RSSU5HIGluIGZfbGFuZ3Vh Z2U6OnZhbHVlX3ByaW50X2lubmVyLg0KDQpPZiBjb3Vyc2UsIGlmIHlvdSBmb3JjZWQgdGhlIGxh bmd1YWdlIHRvIEMgd2hpbGUgaW5zaWRlIHRoZSBGb3J0cmFuIGZyYW1lIGFuZCB0cmllZCB0byBw cmludCB0aGUgc3RyaW5nIHZhbHVlIHRoZW4gSSBndWVzcyBtYXliZSB5b3UnZCBoaXQgdGhpcyBj YXNlLCBidXQgSSBkb24ndCB0aGluayB5b3VyIHRlc3QgZG9lcyB0aGlzLCBhbmQgaWYgdGhhdCBp cyB0aGUgY2FzZSB5b3UncmUgY292ZXJpbmcgaGVyZSBpdCBtaWdodCBiZSB3b3J0aCBzcGxpdHRp bmcgdGhpcyBpbnRvIGEgc2VwYXJhdGUgY29tbWl0IHRvIG1ha2UgdGhlIHNwbGl0IGNyeXN0YWwg Y2xlYXIuDQoNCj4+IEFjdHVhbGx5IHRoaXMgcGFydCB3YXMgb25seSBtb2RpZmllZCBzaW5jZSBh ZnRlciBmaXhpZyB0aGUgaXNzdWUgdGVzdCAiZ2RiLmZvcnRyYW4vbWl4ZWQtbGFuZy1zdGFjay5l eHAiIGhhcyBzaG93biByZWdyZXNzaW9uIGZvciBleGFjdGx5IHRoZSBzYW1lIHNjZW5hcmlvIHlv dSBtZW50aW9uZWQgImZvcmNlZCB0aGUgbGFuZ3VhZ2UgdG8gQyB3aGlsZSBpbnNpZGUgdGhlIEZv cnRyYW4gZnJhbWUiIHNvIHRoYXQgaXMgd2h5IGl0IHdhcyB1cGRhdGVkIGluIHRoZSBzYW1lIHBh dGNoIGFuZCB0aGlzIGNoYW5nZSBpcyBjb3ZlciBieSB0aGlzIHRlc3QgImdkYi5mb3J0cmFuL21p eGVkLWxhbmctc3RhY2suZXhwIiAgYWxyZWFkeS4gIFNvIHBsZWFzZSBsZXQgbWUga25vdyBzaGFs bCB3ZSBtb3ZlIGl0IHRvIHNlcGFyYXRlIHBhdGNoLg0KDQoNCg0KPiAgDQo+IGRpZmYgLS1naXQg YS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jIGluZGV4IA0KPiA3NGFkNWQ2ZjdmZS4u MTQ0NGM1ZmViNmMgMTAwNjQ0DQo+IC0tLSBhL2dkYi9nZGJ0eXBlcy5jDQo+ICsrKyBiL2dkYi9n ZGJ0eXBlcy5jDQo+IEBAIC0yMzEyLDggKzIzMTIsOSBAQCByZXNvbHZlX2R5bmFtaWNfYXJyYXlf b3Jfc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSwNCj4gICAgcmFuZ2VfdHlwZSA9IHJlc29sdmVf ZHluYW1pY19yYW5nZSAocmFuZ2VfdHlwZSwgYWRkcl9zdGFjaywgDQo+IHJlc29sdmVfcCk7DQo+ ICANCj4gICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp KTsNCj4gLSAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiBhcnlfZGltLT5jb2RlICgpID09IFRZUEVf Q09ERV9BUlJBWSkNCj4gLSAgICBlbHRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheV9vcl9z dHJpbmcgKGFyeV9kaW0sIGFkZHJfc3RhY2ssIHJlc29sdmVfcCk7DQo+ICsgIGlmIChhcnlfZGlt ICE9IE5VTEwgJiYgKGFyeV9kaW0tPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZDQo+ICsgICAg ICB8fCBhcnlfZGltLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcpKQ0KDQo+PiBXaWxsIHVw ZGF0ZSB0aGUgaW5kZW50YXRpb24gbGlrZSB5b3UgcG9pbnRlZCBvdXQgaW4gc2Vjb25kIGVtYWls Lg0KDQoNCj4gKyAgICBlbHRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheV9vcl9zdHJpbmcg KGFyeV9kaW0sIGFkZHJfc3RhY2spOw0KPiAgICBlbHNlDQo+ICAgICAgZWx0X3R5cGUgPSBUWVBF X1RBUkdFVF9UWVBFICh0eXBlKTsNCj4gIA0KPiBAQCAtMjMzNyw4ICsyMzM4LDExIEBAIHJlc29s dmVfZHluYW1pY19hcnJheV9vcl9zdHJpbmcgKHN0cnVjdCB0eXBlICp0eXBlLA0KPiAgICBlbHNl DQo+ICAgICAgYml0X3N0cmlkZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCk7DQo+ICAN Cj4gLSAgcmV0dXJuIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlICh0eXBlLCBlbHRfdHlw ZSwgcmFuZ2VfdHlwZSwgTlVMTCwNCj4gLQkJCQkJYml0X3N0cmlkZSk7DQo+ICsgIGlmICh0eXBl LT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcpDQo+ICsgICAgcmV0dXJuIGNyZWF0ZV9zdHJp bmdfdHlwZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUpOw0KDQpJIHdvbmRlciBpZiB3ZSBz aG91bGQgYmUgZG9pbmcgYW55dGhpbmcgd2l0aCB0aGUgYml0X3N0cmlkZSBoZXJlPyAgSSdtIG5v dCBzdXJlIGlmIGl0IG1ha2VzIHNlbnNlIGZvciB0aGUgYml0X3N0cmlkZSB0byBiZSBhbnl0aGlu ZyBvdGhlciB0aGFuIHplcm8sIGJ1dCBhdCB0aGUgdmVyeSBsZWFzdCBpdCBmZWVscyBsaWtlIHdl IHNob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc3RyaWRlIGlzIG5vdCB6ZXJvIC4uLi4NCg0K Pj4gUmVnYXJkaW5nIGJpdF9zdHJpZGUgaXQgaXMgbm90IG5lZWRlZCBmb3Igc3RyaW5nIHR5cGUu ICBTbyBzaGFsbCB3ZSBjYW4gcHV0IGEgY2hlY2sgdG8gdHJ5IHJlYWRpbmcgaXQgb25seSBmb3Ig YXJyYXkgdHlwZSBvbmx5IHNpbmNlIGl0IHdpbGwgbm90IGJlIG5lZWRlZCBmb3Igc3RyaW5nIHR5 cGUgaW5zdGVhZCBvZiB0aHJvd2luZyBlcnJvci4gDQoNCg0KPiArICBlbHNlDQo+ICsgICAgcmV0 dXJuIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlICh0eXBlLCBlbHRfdHlwZSwgcmFuZ2Vf dHlwZSwgTlVMTCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi aXRfc3RyaWRlKTsNCj4gIH0NCj4gIA0KPiAgLyogUmVzb2x2ZSBkeW5hbWljIGJvdW5kcyBvZiBt ZW1iZXJzIG9mIHRoZSB1bmlvbiBUWVBFIHRvIHN0YXRpYyBkaWZmIA0KPiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFycmF5LmV4cCANCj4gYi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1hcnJheS5leHANCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMDAuLmE5MjIzNTc2YmJkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYXJyYXkuZXhwDQo+IEBAIC0wLDAgKzEsNTcgQEANCj4g KyMgQ29weXJpZ2h0IDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ICsNCj4g KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciANCj4gK21vZGlmeSAjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgDQo+ICtwdWJsaXNoZWQgYnkgIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSANCj4gK0xpY2Vuc2UsIG9yICMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gKyMNCj4gKyMgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICMg DQo+ICtidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiAjIA0KPiArTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAjIEdOVSANCj4gK0dlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4NCj4gKyMNCj4gKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgIyANCj4gK2Fsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ Lg0KPiArDQo+ICtzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCINCj4gK2xvYWRfbGliICJmb3J0cmFu LmV4cCINCj4gKw0KPiAraWYge1tza2lwX2ZvcnRyYW5fdGVzdHNdfSB7IHJldHVybiAtMSB9DQo+ ICsNCj4gK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAke3Rl c3RmaWxlfSAke3NyY2ZpbGV9IFwNCj4gKyAgICAge2RlYnVnIGY5MCBxdWlldH1dIH0gew0KPiAr ICAgIHJldHVybiAtMQ0KPiArfQ0KPiArDQo+ICtpZiAhW2ZvcnRyYW5fcnVudG9fbWFpbl0gew0K PiArICAgIHVudGVzdGVkICJjb3VsZCBub3QgcnVuIHRvIG1haW4iDQo+ICsgICAgcmV0dXJuIC0x DQo+ICt9DQo+ICsNCj4gKyMgVHJ5IHRvIGFjY2VzcyB2bGEgc3RyaW5nIC8gdmxhIHN0cmluZyBh cnJheSAvIHN0cmluZyBhcnJheSB2YWx1ZXMNCg0KRnVsbCBzdG9wIGF0IHRoZSBlbmQgb2YgdGhl IGNvbW1lbnQuDQo+PiBXaWxsIGRvDQoNClRoYW5rcyAmIEJlc3QgUmVnYXJkcywNCkFiZHVsIEJh c2l0DQoNCg0KPiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImFycl92bGEx LXByaW50Il0gDQo+ICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYXJyX3ZsYTEtcHJpbnQi DQo+ICsNCj4gKyMgR0ZvcnRyYW4gZG9lcyBub3QgZW1pdCBEV19UQUdfc3RyaW5nX3R5cGUgZm9y IGFycmF5IG9mIHZhcmlhYmxlIA0KPiArbGVuZ3RoICMgc3RyaW5nLg0KPiAraWYgW3Rlc3RfY29t cGlsZXJfaW5mbyAiZ2NjKiJdIHsgc2V0dXBfeGZhaWwgKi0qLSogZ2NjLzEwMTgyNiB9IA0KPiAr Z2RiX3Rlc3QgInByaW50IGFycl92bGExIiAgXA0KPiArICAgICIgPSBcXFwoJ3ZsYWFyeXZsYWFy eScsICd2bGFhcnl2bGFhcnknLCAndmxhYXJ5dmxhYXJ5JywgJ3ZsYWFyeXZsYWFyeScsICd2bGFh cnl2bGFhcnknXFxcKSIgIFwNCj4gKyAgICAicHJpbnQgdmxhIHN0cmluZyBhcnJheSINCj4gKw0K PiAraWYgW3Rlc3RfY29tcGlsZXJfaW5mbyAiZ2NjKiJdIHsgc2V0dXBfeGZhaWwgKi0qLSogZ2Nj LzEwMTgyNiB9IA0KPiArZ2RiX3Rlc3QgInB0eXBlIGFycl92bGExIiAgXA0KPiArICAgICJ0eXBl ID0gY2hhcmFjdGVyXFwqMTIgXFwoNVxcKSIgIFwNCj4gKyAgICAicHJpbnQgdmFyaWFibGUgbGVu Z3RoIHN0cmluZyBhcnJheSB0eXBlIg0KPiArZ2RiX3Rlc3QgInByaW50IGFycl92bGEyIiAgXA0K PiArICAgICIgPSAndmxhYXJ5JyIgIFwNCj4gKyAgICAicHJpbnQgdmFyaWFibGUgbGVuZ3RoIHN0 cmluZyINCj4gK2dkYl90ZXN0ICJwdHlwZSBhcnJfdmxhMiIgIFwNCj4gKyAgICAidHlwZSA9IGNo YXJhY3RlclxcKjYiICBcDQo+ICsgICAgInByaW50IHZhcmlhYmxlIGxlbmd0aCBzdHJpbmcgdHlw ZSINCj4gK2dkYl90ZXN0ICJwcmludCBhcnIyIiAgXA0KPiArICAgICIgPSBcXFwoJ3ZsYWFyeXZs YScsICd2bGFhcnl2bGEnLCAndmxhYXJ5dmxhJ1xcXCkiICBcDQo+ICsgICAgInByaW50IHN0cmlu ZyBhcnJheSINCj4gK2dkYl90ZXN0ICJwdHlwZSBhcnIyIiAgXA0KPiArICAgICJ0eXBlID0gY2hh cmFjdGVyXFwqOSBcXCgzXFwpIiAgXA0KPiArICAgICJwcmludCBzdHJpbmcgYXJyYXkgdHlwZSIN Cj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFycmF5LmY5MCAN Cj4gYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1hcnJheS5mOTANCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjYxMmU4NGZlMjEzDQo+IC0tLSAvZGV2 L251bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYXJyYXkuZjkwDQo+ IEBAIC0wLDAgKzEsNDQgQEANCj4gKyEgQ29weXJpZ2h0IDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuDQo+ICshDQo+ICshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgDQo+ICttb2RpZnkgISBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIA0KPiArcHVibGlzaGVk IGJ5ICEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgDQo+ICtMaWNlbnNlLCBvciAhIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u DQo+ICshDQo+ICshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCAhIA0KPiArYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgISANCj4gK01FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgISBHTlUgDQo+ICtH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ICshDQo+ICshIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlICEgDQo+ICthbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gKw0KPiArc3Vicm91dGluZSB2bGFfYXJyYXlfZnVu YyAoYXJyX3ZsYTEsIGFycl92bGEyLCBhcnIyKQ0KPiArICBjaGFyYWN0ZXIgKGxlbj0qKTo6IGFy cl92bGExICg6KQ0KPiArICBjaGFyYWN0ZXIgKGxlbj0qKTo6IGFycl92bGEyDQo+ICsgIGNoYXJh Y3RlciAobGVuPTkpOjogYXJyMiAoOikNCj4gKw0KPiArICBwcmludCAqLCBhcnJfdmxhMSAgICAh IGFycl92bGExLXByaW50DQo+ICsgIHByaW50ICosIGFycl92bGEyDQo+ICsgIHByaW50ICosIGFy cjINCj4gK2VuZCBzdWJyb3V0aW5lIHZsYV9hcnJheV9mdW5jDQo+ICsNCj4gK3Byb2dyYW0gdmxh X2FycmF5X21haW4NCj4gK2ludGVyZmFjZQ0KPiArICBzdWJyb3V0aW5lIHZsYV9hcnJheV9mdW5j IChhcnJfdmxhMSwgYXJyX3ZsYTIsIGFycjIpDQo+ICsgICAgY2hhcmFjdGVyIChsZW49Kik6OiBh cnJfdmxhMSAoOikNCj4gKyAgICBjaGFyYWN0ZXIgKGxlbj0qKTo6IGFycl92bGEyDQo+ICsgICAg Y2hhcmFjdGVyIChsZW49OSk6OiBhcnIyICg6KQ0KPiArICBlbmQgc3Vicm91dGluZSB2bGFfYXJy YXlfZnVuYw0KPiArZW5kIGludGVyZmFjZQ0KPiArICBjaGFyYWN0ZXIgKGxlbj05KSA6OiBhcnIx ICgzKQ0KPiArICBjaGFyYWN0ZXIgKGxlbj02KSA6OiBhcnIyDQo+ICsgIGNoYXJhY3RlciAobGVu PTEyKSA6OiBhcnIzICg1KQ0KPiArDQo+ICsgIGFycjEgPSAndmxhYXJ5dmxhJw0KPiArICBhcnIy ID0gJ3ZsYWFyeScNCj4gKyAgYXJyMyA9ICd2bGFhcnl2bGFhcnknDQo+ICsNCj4gKyAgY2FsbCB2 bGFfYXJyYXlfZnVuYyAoYXJyMywgYXJyMiwgYXJyMSkNCj4gKw0KPiArZW5kIHByb2dyYW0gdmxh X2FycmF5X21haW4NCj4gLS0NCj4gMi4zMS4xDQo+DQogDQpJbnRlbCBEZXV0c2NobGFuZCBHbWJI ClJlZ2lzdGVyZWQgQWRkcmVzczogQW0gQ2FtcGVvbiAxMCwgODU1NzkgTmV1YmliZXJnLCBHZXJt YW55ClRlbDogKzQ5IDg5IDk5IDg4NTMtMCwgd3d3LmludGVsLmRlIDxodHRwOi8vd3d3LmludGVs LmRlPgpNYW5hZ2luZyBEaXJlY3RvcnM6IENocmlzdGluIEVpc2Vuc2NobWlkLCBTaGFyb24gSGVj aywgVGlmZmFueSBEb29uIFNpbHZhICAKQ2hhaXJwZXJzb24gb2YgdGhlIFN1cGVydmlzb3J5IEJv YXJkOiBOaWNvbGUgTGF1ClJlZ2lzdGVyZWQgT2ZmaWNlOiBNdW5pY2gKQ29tbWVyY2lhbCBSZWdp c3RlcjogQW10c2dlcmljaHQgTXVlbmNoZW4gSFJCIDE4NjkyOAo=