From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by sourceware.org (Postfix) with ESMTPS id 25BE23858D38 for ; Tue, 9 Jan 2024 01:22:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 25BE23858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 25BE23858D38 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=134.134.136.100 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1704763336; cv=pass; b=EqbgtrrE4oyc38wEcwNVHFalRKHt/SdcKqHfS1E++8mae5dIngvaWh/1MGXbFfZ6nX0eWPsMn9xsN5HMP91NQD1vsTBb6BHdp864RzpGln9T45EGB9phf6eYKeXDrnh3zcoaVhBS9mluG/vRoMclq36Jhhcxj6WeTrZpDOMsQP4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1704763336; c=relaxed/simple; bh=M8guyd4a1Scvr7Qj5s+Z/oG4YeH80woHDOL0FpQhU3w=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Ffo9fDWjGTEZgCQilN0ahkqzvBfm76YEbEXLIvgghkVvBCsd39tYxDLLLFrfCdkSHP8BPH3/bNutqivbemVVEHtNzUsLPL4B5BXDvYPS1XBlnUKhrRoDKclDNNIinach2S20BwDSC8WKWGnWIv0xtc/DTbeaAaOar+GwdocyWew= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1704763333; x=1736299333; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=M8guyd4a1Scvr7Qj5s+Z/oG4YeH80woHDOL0FpQhU3w=; b=EhX3V+F97zYs5eQfDIbuMmzhB9+IL7q43kQpSFchRsjwOjBNmjrWFcTd P1xduEwb06ZxMihXqNxivumIxQuwGWBkeMlhcmCNocf0BktgWI4E4AXnS qH0ajNz/5YhYrdLGHgTIcqitXsggcl5kSWlR02pPirNRoUfSlbC7ANLsO t8E6yi2bkUIa3ToexUAr657kWa8Ds1nWSyq8yJ7nh3LAUg95IeY5XgjF2 klVlSwxBUfxqRV197ULU5JaRFlcYOKiGs3D1W/yD/GFX/pdwn1qDJhzvu 42z+Cff3J0RD9veZtjeiTdNdnm4O/NPYflcK3FnXW2wyAjiOsCCu8RHml g==; X-IronPort-AV: E=McAfee;i="6600,9927,10947"; a="464446336" X-IronPort-AV: E=Sophos;i="6.04,181,1695711600"; d="scan'208";a="464446336" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jan 2024 17:22:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10947"; a="900560737" X-IronPort-AV: E=Sophos;i="6.04,181,1695711600"; d="scan'208";a="900560737" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 08 Jan 2024 17:22:10 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 8 Jan 2024 17:22:10 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.2507.35; Mon, 8 Jan 2024 17:22:09 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Mon, 8 Jan 2024 17:22:09 -0800 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.40) 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.2507.35; Mon, 8 Jan 2024 17:22:08 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Atgtu7x99pGQf+lCukHg5jFnYSVceilPZHR47Lnse3/hncUdhCJ7OiqtgqO9Os2DgpYaXG4AquKDj5DFBPRAQWnEEqr5m05HII53oZ/kvnH2A6LLsNPBBnBYbRK8cXsqVuPu0H/32i4Donu6W3lr7Z1Lp/0YQumet8l3iuRwRkfSalaoA54Bt6ekCZ5rVk1N115cVmEiYAqPhCK9IzohaTsliUjQPO3WSgjSK5kfPiPHwfW3cxkz1sMaal3+ONjQXSaQG6QH6s6WWkC7w+5khV7B2ynopAMkXVXKzczD5ouUgb1dKnaBaYMCpnfB9GckU2j1r9qFticIMv6fu1hQ7Q== 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=M8guyd4a1Scvr7Qj5s+Z/oG4YeH80woHDOL0FpQhU3w=; b=QPNAg/XJy3f1S291qrCUHN+JpER3cQ433X8hsdvR0wtloPYYy0TucN1TpOhSdzYqadJcndHXrzz3TeMjN6u3oW+MCgf3Yoc4AISpDXF0BRf+GSid+Yg2739ZMrv5r2cfI5qoaRgCCqoWZCyCfmUAsBtfFwpM1TGrv3kE/CW70j+1gu0CVZI8XY0I6fwAjfz0pKlVv07Pc3L5TWnitWMAyBelap4EjoRaZIwPML55DvHqISOjBFzq2keX/OojQefqWoXGLkqu5tg9iV+WUMO6Yt9rEZ3+K6FrWHVkFN6F0O/eCgWRD1JG21eB90gqaDxxhyqal3KNAxfHmnGca1xVCA== 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 MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by MW4PR11MB6863.namprd11.prod.outlook.com (2603:10b6:303:222::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.23; Tue, 9 Jan 2024 01:22:06 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::b976:c625:8249:e34e]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::b976:c625:8249:e34e%7]) with mapi id 15.20.7159.020; Tue, 9 Jan 2024 01:22:06 +0000 From: "Li, Pan2" To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , "juzhe.zhong@rivai.ai" , "Wang, Yanzhang" , "kito.cheng@gmail.com" , "jeffreyalaw@gmail.com" Subject: RE: [PATCH v3] RISC-V: Bugfix for doesn't honor no-signed-zeros option Thread-Topic: [PATCH v3] RISC-V: Bugfix for doesn't honor no-signed-zeros option Thread-Index: AQHaPYDO7GmzHn2N+EGz581loGG72LDPxH8AgAAJioA= Date: Tue, 9 Jan 2024 01:22:06 +0000 Message-ID: References: <20231223110733.2565292-1-pan2.li@intel.com> <20240102115538.1471137-1-pan2.li@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW5PR11MB5908:EE_|MW4PR11MB6863:EE_ x-ms-office365-filtering-correlation-id: 4023974f-ba10-40e6-4092-08dc10b1649c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: i5r6LrDWMs+VU16XrVqsMn6beZ3rMNxT0qMItaNTXsU2Fupmpt5xvrEskTwNRfUA1fJmDo1+3C5uqnqI79C8T/BvsOq+x6ZRYVcwcVTWEOT3mlCyLFv7TYMcx1DmeV+q5jcRRQdQpRh6Pi0lfRw8kvguwmnBQMhuXhNwL8FeM7ep9yxgtHZs2y8GrCpcX1gOwCrcaDwryivxloE5bC6mIqNg3XRNVeM1akXcklaCHUfxf1s2xlX2vMV22Hw/CiFrPfT6t64BXlgvynphvEtbagGlSwyTBPPMt628KcyQeCdStbn1R17u/hsVVVknIA20Do54gxNnFArK54UXPRMiUD8zlGrVbAUCiqB0Zr5hqTFplez1bTGK2ihsxpHrgwNB63OUtt9UDNsU69yl7/0QnVjz/1YNSIx+/Yb6EjHRIJalLTDnDpn2LK6XGUMhJjsrnkbnsnoZtgMVTkPMNkQHD9TCnWWTOzbfRU6LfQZGbd3guS/UjntRV8V8WURsZQ3K/wFYPkF1tR/xIgQQxKiym0aNOly7exNLqHly8FYDB+7TZO9heg+WUg79fl/KjwVI0Xs+/pHJTPu41x+82nEoF4IYdl49SVFRNAk+TQ73lm9fStpVVAh8GbEtgmW2PBrs3Zf+PMlzyLYzAjBKVmC3gQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(346002)(376002)(39860400002)(136003)(366004)(230173577357003)(230922051799003)(230273577357003)(1800799012)(451199024)(64100799003)(186009)(84970400001)(55016003)(83380400001)(41300700001)(66946007)(76116006)(33656002)(38070700009)(82960400001)(86362001)(38100700002)(122000001)(26005)(53546011)(9686003)(2906002)(5660300002)(66556008)(66476007)(66446008)(64756008)(6916009)(54906003)(316002)(7696005)(6506007)(478600001)(71200400001)(8936002)(8676002)(4326008)(30864003)(52536014)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MGtNSytXTitPQ2RTVFQrTVM2MC9uSEtNM2FVcFNxQ1ZjSjhrdjRzeVVkMUFu?= =?utf-8?B?d0RmbGN3QjhTQWlaMU41cmRsc3BoQ053dWQ2WjJzVmZ3Q2E1SXRMMU0wS2pu?= =?utf-8?B?bDNwaytETEw3bnpvNWx2ZnRXanJxeHU5THo1aFB3Qy9tRmVTQ0FacXpLV1B5?= =?utf-8?B?RnRkbXc2OFhzNGhYeGUwcW9CUVBTbFhzZ1IvcVJKMEI0WGtTcUpSTVhKVzFw?= =?utf-8?B?KzhzbUVHeDZsRkQzTmM1VXRDWkZKd0loTE9KUSs3U1VCZlhCVkM3MDlGM1Qr?= =?utf-8?B?ODFjUGl1a3UraVNOTGNGbDBqU2hzR2cxbC92WVRYVlJrZ1MvbTVxSk9RNVUx?= =?utf-8?B?RDQvOWMzc1ozK0Njb1M0ZmEwWkpZbEtBdWRHd21jNEcyNXo4cVZxL2trVDU1?= =?utf-8?B?Y1FkS1h0aHgwMnArZFl0WWh1eUc5Q1J6Umttckg0WGZVV09oK1hzOTZJaEgy?= =?utf-8?B?TnllanZFQTk2OHY0NTFOcDlsbW1GWFV0M2FKRXN4ODIvV0hDdTFDa2Z3Rkdx?= =?utf-8?B?aDZwK0VPOEkwQUgyY3Z0NVNoeENKTWJuQTBCL1VSb014UkFET1J3RkJHd1k1?= =?utf-8?B?UDl3Yy9pc2pod3lvQ2ZHSk9qZUJLSXNjNkh5dDlaQXd2ZnNFQncrLzUwdktF?= =?utf-8?B?SmQvdGFPenNPbEZWVVQ5akkvTGw1UmVndFFKMWwvR0pSVkJGV0Q1U1dCeFYz?= =?utf-8?B?Y055djZxVGVhY1VGTmNURWtxQ2VvdCtITmFLNDdqNlg4M3VwNnZIdW1vekUy?= =?utf-8?B?L0pLTHNRaVd5b2tGaGxROVdMRTRGdXhVMWEwU1dZS3BIR1VlSmYxdVBWMmlS?= =?utf-8?B?dmE4NDFlRkZpcmJlUklhUktZLzYwQ2s5Sy9DNXdjNTNKTG84N1MzSzFmblUy?= =?utf-8?B?Zk5POU84UENUUllWQXB5UHVjMDhTSFNKUUlEajdoR3VYOFlMMXZnZjJteGJh?= =?utf-8?B?dHhmTTRGZWorcmluMXBOMk54ckk4bUpCTjcxZVhicGg3R3UwNmdNUUxRanZz?= =?utf-8?B?d0lzUjJCbDAzRllEWVk0bTNRV001N1FVY1hVRGo4M0QyaEZ1eC85SXI1aXVE?= =?utf-8?B?YWpHUGlRU0NVbVIyZjhXdlNQaGJwTVFobDcvRDAxNUxPT25zUmNUS0RBcmtN?= =?utf-8?B?clNpYVZmV0FDMnhkU3NzbjFEMCtVL3NoMy96NG1pL0lIZkdraG5UVU9xbVFj?= =?utf-8?B?Z2VtbWR0RWhLcStzaHFRekh4WWs4VGhHZmR1djIyR1pBU3p2akt2L2krbVR6?= =?utf-8?B?UGFJZ3hWVWl5VytUQjJsRTdqeDBIWVNHaHVRL04ralhOYmEyR2FVZDliQlNw?= =?utf-8?B?QUtEc21hdzQ1WURnSGpIUjBpMjJGRlN6c256NmJucUU0NXpGRVdQbjBxbys5?= =?utf-8?B?eGFzd0lWMWg3QzdjWlBVNXBkK3Y4N2NKYWtiU3ZBY0hVUEJzM21LZnZSaEpT?= =?utf-8?B?dUc5WklwZzhwOVhzb2w4MHo3MEdsUHR1VS9RaE5rT3B2VjhGeHV0NnVXY0xi?= =?utf-8?B?eU5qY294Rkc0aWN1NzJVVFJGVk91OFhxSjkzZjVPM3RGeVpoVzNQL005SWZ2?= =?utf-8?B?ZXQzelplNWtlbGxTa1p6bEcrMUV4dzRLVjROb3JxQVg5Y1BJUUEvZ094L21t?= =?utf-8?B?bVZUTnBvaTRZMVRzcTViOTZGdHByMEFZZXo1WGpKSzVKVmpjRG0vT1U3Tjc2?= =?utf-8?B?SFQ0TG42TTBqaTRZbXJkK3FIa1hmS2xmYmtSbEJhcHYzcElRVUVYT2VEVmJ6?= =?utf-8?B?U0ppeXBXNkZURGdpWm5iOFV2SnJQcGRMUzlQb3lZcnVjbHh2ZzVPK0EzVjB6?= =?utf-8?B?Z0ZkaWN0M3Q4L1JCZVh0eVBoaFFoLzcrYklqSXNEWlhoZ0kzQmFXL3B1Yml5?= =?utf-8?B?azRidzVEclN3QS9Ka3lhRWRXZkdCVHB0ZmpxSzdUYlZWOTVIb1kvS2hQMno2?= =?utf-8?B?MVJ4aCtweXhOL25JWUlHa21CQ0pGRldJVVI3QmpYMWZRZ245MjJmNkVvNGJX?= =?utf-8?B?Ujk4dEg4V1VDTEhmN01wMmk5dUhSQUFkTkFwNy82eTg4UHA3T25QZWhuNlM0?= =?utf-8?B?Q0lrbTJKY0xEZ3htV1F3NkhzcWRYcW9CZHQxU21pRDZaNVFxU0hDRmJXUm9m?= =?utf-8?Q?NXdk=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4023974f-ba10-40e6-4092-08dc10b1649c X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2024 01:22:06.2967 (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: EvRyHqs6T+KiKzoI1ZcGuwfuI8PzXe+B5mB4MVXhjS8WgAHxQDsTvhnvkt5lducGbTwp3Kcz2BWlWh+1z7lnDg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB6863 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: VGhhbmtzIFJpY2hhcmQgQiBmb3IgY29tbWVudHMuDQoNCj4gV2UgZG9uJ3QgcmVhbGx5IGV4cGVj dCB0YXJnZXRzIHRvIGRvIHRoaXMuICBUaGUgc21hbGwgdGVzdGNhc2UgYWJvdmUNCj4gaXMgc29t ZXdoYXQgaWxsLWZvcm1lZCB3aXRoIC1mbm8tc2lnbmVkLXplcm9zLiAgTm90ZSB0aGVyZSdzIG5v DQo+IC0wLjAgaW4gcHIzMDk1Ny0xLmMgc28gd2h5IGRvZXMgdGhhdCBvbmUgZmFpbCBmb3IgeW91 PyAgRG9lcw0KPiB0aGUgLWZ2YXJpYWJsZS1leHBhbnNpb24taW4tdW5yb2xsZXIgY29kZSBtYXli ZSBub3QgdHJpZ2dlciBmb3INCj4gcmlzY3Y/DQoNClNvcnJ5IHRoaXMgY29uZnVzZWQgbWUgYSBs aXR0bGUgYWJvdXQgdGhlIHNlbWF0aWNzIG9mIHRoZSBvcHRpb24gLWZuby1zaWduZWQtemVyb3Mu DQpJIHdvbmRlciB3aGF0IHRoZSB0YXJnZXQvYmFja2VuZCBuZWVkIHRvIGRvIGZvciB0aGlzIG9w dGlvbi4NCg0KQWJvdXQgdGhlIGZhaWx1cmUsIGl0IGNvbWVzIGZyb20gYmVsb3cgY29kZSBpbiBw cjMwOTU3LTEuYy4gVGhlIDAuMCAvIC01LjAgaXMgaW5pdGlhbGl6ZWQgdG8gLTAuMCBpbiByaXNj diBidXQgKzAuMCBpbiBhYXJjaDY0Lg0KDQogIGlmIChfX2J1aWx0aW5fY29weXNpZ25mICgxLjAs IGZvbyAoMC4wIC8gLTUuMCwgMTApKSAhPSAxLjApDQogICAgYWJvcnQgKCk7DQoNCklmIG15IHVu ZGVyc3RhbmRpbmcgaXMgY29ycmVjdCwgdGhlIGxvb3Agd2lsbCBiZSB2ZWN0b3JpemVkIGR1cmlu ZyB2ZWN0X3RyYW5zZm9ybV9sb29wIHdpdGggYSB2YXJpYWJsZSBmYWN0b3IuDQpJdCB3b24ndCBi ZW5lZml0IGZyb20gdW5yb2xsaW5nL3BlZWxpbmcgYW5kIG1hcmsgdGhlIGxvb3AtPnVucm9sbCBh cyAxLCBhbmQgdGhlbiB3ZSBoYXZlIHRyZWUtdmVjdCBsb2cgc2ltaWxhciB0byBiZWxvdzoNCg0K RGlzYWJsaW5nIHVucm9sbGluZyBkdWUgdG8gdmFyaWFibGUtbGVuZ3RoIHZlY3Rvcml6YXRpb24g ZmFjdG9yLg0KDQo+IEkgdGhpbmsgd2Ugc2hvdWxkIGdvIHRvIFBSMzA5NTcgYW5kIHNlZSB3aGF0 IHRoYXQgd2FzIGZpbGVkIG9yaWdpbmFsbHkNCj4gZm9yLCB0aGUgdGVzdGNhc2UgZG9lc24ndCBt YWtlIG11Y2ggc2Vuc2UgdG8gbWUuDQoNClN1cmUgdGhpbmcsIHdpbGwgdGFrZSBhIGxvb2sgYW5k IGJhY2sgdG8geW91IGxhdGVyLg0KDQpQYW4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N CkZyb206IFJpY2hhcmQgQmllbmVyIDxyaWNoYXJkLmd1ZW50aGVyQGdtYWlsLmNvbT4gDQpTZW50 OiBNb25kYXksIEphbnVhcnkgOCwgMjAyNCA2OjQ1IFBNDQpUbzogTGksIFBhbjIgPHBhbjIubGlA aW50ZWwuY29tPg0KQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBqdXpoZS56aG9uZ0ByaXZh aS5haTsgV2FuZywgWWFuemhhbmcgPHlhbnpoYW5nLndhbmdAaW50ZWwuY29tPjsga2l0by5jaGVu Z0BnbWFpbC5jb207IGplZmZyZXlhbGF3QGdtYWlsLmNvbQ0KU3ViamVjdDogUmU6IFtQQVRDSCB2 M10gUklTQy1WOiBCdWdmaXggZm9yIGRvZXNuJ3QgaG9ub3Igbm8tc2lnbmVkLXplcm9zIG9wdGlv bg0KDQpPbiBUdWUsIEphbiAyLCAyMDI0IGF0IDI6MzfigK9QTSA8cGFuMi5saUBpbnRlbC5jb20+ IHdyb3RlOg0KPg0KPiBGcm9tOiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29tPg0KPg0KPiBBY2Nv cmRpbmcgdG8gdGhlIHNlbWF0aWNzIG9mIG5vLXNpZ25lZC16ZXJvcyBvcHRpb24sIHRoZSBiYWNr ZW5kDQo+IGxpa2UgUklTQy1WIHNob3VsZCB0cmVhdCB0aGUgbWludXMgemVybyAtMC4wZiBhcyBw bHVzIHplcm8gMC4wZi4NCj4NCj4gQ29uc2lkZXIgYmVsb3cgZXhhbXBsZSB3aXRoIG9wdGlvbiAt Zm5vLXNpZ25lZC16ZXJvcy4NCj4NCj4gdm9pZA0KPiB0ZXN0IChmbG9hdCAqYSkNCj4gew0KPiAg ICphID0gLTAuMDsNCj4gfQ0KPg0KPiBXZSB3aWxsIGdlbmVyYXRlIGNvZGUgYXMgYmVsb3csIHdo aWNoIGRvZXNuJ3QgdHJlYXQgdGhlIG1pbnVzIHplcm8NCj4gYXMgcGx1cyB6ZXJvLg0KPg0KPiB0 ZXN0Og0KPiAgIGx1aSAgYTUsJWhpKC5MQzApDQo+ICAgZmx3ICBmYTUsJWxvKC5MQzApKGE1KQ0K PiAgIGZzdyAgZmE1LDAoYTApDQo+ICAgcmV0DQo+DQo+IC5MQzA6DQo+ICAgLndvcmQgLTIxNDc0 ODM2NDggLy8gYWthIC0wLjAgKDB4ODAwMDAwMDAgaW4gaGV4KQ0KPg0KPiBUaGlzIHBhdGNoIHdv dWxkIGxpa2UgdG8gZml4IHRoZSBidWcgYW5kIHRyZWF0IHRoZSBtaW51cyB6ZXJvIC0wLjANCj4g YXMgcGx1cyB6ZXJvLCBha2EgKzAuMC4gVGh1cyBhZnRlciB0aGlzIHBhdGNoIHdlIHdpbGwgaGF2 ZSBhc20gY29kZQ0KPiBhcyBiZWxvdyBmb3IgdGhlIGFib3ZlIHNhbXBlIGNvZGUuDQo+DQo+IHRl c3Q6DQo+ICAgc3cgemVybywwKGEwKQ0KPiAgIHJldA0KPg0KPiBUaGlzIHBhdGNoIGFsc28gZml4 IHRoZSBydW4gZmFpbHVyZSBvZiB0aGUgdGVzdCBjYXNlIHByMzA5NTctMS5jLiBUaGUNCj4gYmVs b3cgdGVzdHMgYXJlIHBhc3NlZCBmb3IgdGhpcyBwYXRjaC4NCg0KV2UgZG9uJ3QgcmVhbGx5IGV4 cGVjdCB0YXJnZXRzIHRvIGRvIHRoaXMuICBUaGUgc21hbGwgdGVzdGNhc2UgYWJvdmUNCmlzIHNv bWV3aGF0IGlsbC1mb3JtZWQgd2l0aCAtZm5vLXNpZ25lZC16ZXJvcy4gIE5vdGUgdGhlcmUncyBu bw0KLTAuMCBpbiBwcjMwOTU3LTEuYyBzbyB3aHkgZG9lcyB0aGF0IG9uZSBmYWlsIGZvciB5b3U/ ICBEb2VzDQp0aGUgLWZ2YXJpYWJsZS1leHBhbnNpb24taW4tdW5yb2xsZXIgY29kZSBtYXliZSBu b3QgdHJpZ2dlciBmb3INCnJpc2N2Pw0KDQpJIHRoaW5rIHdlIHNob3VsZCBnbyB0byBQUjMwOTU3 IGFuZCBzZWUgd2hhdCB0aGF0IHdhcyBmaWxlZCBvcmlnaW5hbGx5DQpmb3IsIHRoZSB0ZXN0Y2Fz ZSBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSB0byBtZS4NCg0KPiAqIFRoZSByaXNjdiByZWdyZXNz aW9uIHRlc3RzLg0KPiAqIFRoZSBwcjMwOTU3LTEuYyBydW4gdGVzdHMuDQo+DQo+IGdjYy9DaGFu Z2VMb2c6DQo+DQo+ICAgICAgICAgKiBjb25maWcvcmlzY3YvY29uc3RyYWludHMubWQ6IExldmVy YWdlIGZ1bmMgcmlzY3ZfZmxvYXRfY29uc3RfemVyb19ydHhfcA0KPiAgICAgICAgIGZvciBwcmVk aWNhdGluZyB0aGUgcnR4IGlzIGNvbnN0IHplcm8gZmxvYXQgb3Igbm90Lg0KPiAgICAgICAgICog Y29uZmlnL3Jpc2N2L3ByZWRpY2F0ZXMubWQ6IERpdHRvLg0KPiAgICAgICAgICogY29uZmlnL3Jp c2N2L3Jpc2N2LmNjIChyaXNjdl9jb25zdF9pbnNucyk6IERpdHRvLg0KPiAgICAgICAgIChyaXNj dl9mbG9hdF9jb25zdF96ZXJvX3J0eF9wKTogTmV3IGZ1bmMgaW1wbCBmb3IgcHJlZGljYXRpbmcg dGhlIHJ0eCBpcw0KPiAgICAgICAgIGNvbnN0IHplcm8gZmxvYXQgb3Igbm90Lg0KPiAgICAgICAg IChyaXNjdl9jb25zdF96ZXJvX3J0eF9wKTogTmV3IGZ1bmMgaW1wbCBmb3IgcHJlZGljYXRpbmcg dGhlIHJ0eA0KPiAgICAgICAgIGlzIGNvbnN0IHplcm8gKGJvdGggaW50IGFuZCBmcCkgb3Igbm90 Lg0KPiAgICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIChyaXNjdl9mbG9hdF9j b25zdF96ZXJvX3J0eF9wKToNCj4gICAgICAgICBOZXcgZnVuYyBkZWNsLg0KPiAgICAgICAgIChy aXNjdl9jb25zdF96ZXJvX3J0eF9wKTogRGl0dG8uDQo+ICAgICAgICAgKiBjb25maWcvcmlzY3Yv cmlzY3YubWQ6IE1ha2luZyBzdXJlIHRoZSBvcGVyYW5kWzFdIG9mIG1vdmZwIGlzDQo+ICAgICAg ICAgQ09OU1QwX1JUWCB3aGVuIHRoZSBvcGVyYW5kWzFdIGlzIGNvbnN0IHplcm8gZmxvYXQuDQo+ DQo+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9y aXNjdi9uby1zaWduZWQtemVyb3MtMC5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJn ZXQvcmlzY3Yvbm8tc2lnbmVkLXplcm9zLTEuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2Mu dGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy0yLmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtMy5jOiBOZXcgdGVzdC4NCj4gICAgICAg ICAqIGdjYy50YXJnZXQvcmlzY3Yvbm8tc2lnbmVkLXplcm9zLTQuYzogTmV3IHRlc3QuDQo+ICAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy01LmM6IE5ldyB0ZXN0Lg0K PiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtcnVuLTAuYzogTmV3 IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy1ydW4t MS5jOiBOZXcgdGVzdC4NCj4NCj4gU2lnbmVkLW9mZi1ieTogUGFuIExpIDxwYW4yLmxpQGludGVs LmNvbT4NCj4gLS0tDQo+ICBnY2MvY29uZmlnL3Jpc2N2L2NvbnN0cmFpbnRzLm1kICAgICAgICAg ICAgICAgfCAgMiArLQ0KPiAgZ2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kICAgICAgICAg ICAgICAgIHwgIDIgKy0NCj4gIGdjYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggICAgICAg ICAgICAgICB8ICAyICsNCj4gIGdjYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgICAgICAgICAgICAg ICAgICAgICB8IDM1ICsrKysrKysrKysrKy0NCj4gIGdjYy9jb25maWcvcmlzY3YvcmlzY3YubWQg ICAgICAgICAgICAgICAgICAgICB8IDQ5ICsrKysrKysrKysrKysrKystLS0NCj4gIC4uLi9nY2Mu dGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy0wLmMgICAgICB8IDI2ICsrKysrKysrKysNCj4g IC4uLi9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy0xLmMgICAgICB8IDI4ICsrKysr KysrKysrDQo+ICAuLi4vZ2NjLnRhcmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtMi5jICAgICAg fCAyNiArKysrKysrKysrDQo+ICAuLi4vZ2NjLnRhcmdldC9yaXNjdi9uby1zaWduZWQtemVyb3Mt My5jICAgICAgfCAyOCArKysrKysrKysrKw0KPiAgLi4uL2djYy50YXJnZXQvcmlzY3Yvbm8tc2ln bmVkLXplcm9zLTQuYyAgICAgIHwgMjYgKysrKysrKysrKw0KPiAgLi4uL2djYy50YXJnZXQvcmlz Y3Yvbm8tc2lnbmVkLXplcm9zLTUuYyAgICAgIHwgMjggKysrKysrKysrKysNCj4gIC4uLi9nY2Mu dGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy1ydW4tMC5jICB8IDM2ICsrKysrKysrKysrKysr DQo+ICAuLi4vZ2NjLnRhcmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtcnVuLTEuYyAgfCAzNiAr KysrKysrKysrKysrKw0KPiAgMTMgZmlsZXMgY2hhbmdlZCwgMzE0IGluc2VydGlvbnMoKyksIDEw IGRlbGV0aW9ucygtKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtMC5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy0xLmMNCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yvbm8tc2lnbmVkLXpl cm9zLTIuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9uby1zaWduZWQtemVyb3MtMy5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy00LmMNCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yvbm8tc2lnbmVkLXplcm9zLTUu Yw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9u by1zaWduZWQtemVyb3MtcnVuLTAuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtcnVuLTEuYw0KPg0KPiBkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9jb25zdHJhaW50cy5tZCBiL2djYy9jb25maWcvcmlzY3Yv Y29uc3RyYWludHMubWQNCj4gaW5kZXggZGU0MzU5YWYwMGQuLmRiMWQ1ZTEzODVmIDEwMDY0NA0K PiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L2NvbnN0cmFpbnRzLm1kDQo+ICsrKyBiL2djYy9jb25m aWcvcmlzY3YvY29uc3RyYWludHMubWQNCj4gQEAgLTEwOCw3ICsxMDgsNyBAQCAoZGVmaW5lX2Nv bnN0cmFpbnQgIkRuUyINCj4gIChkZWZpbmVfY29uc3RyYWludCAiRyINCj4gICAgIkBpbnRlcm5h bCINCj4gICAgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfZG91YmxlIikNCj4gLSAgICAgICAobWF0 Y2hfdGVzdCAib3AgPT0gQ09OU1QwX1JUWCAobW9kZSkiKSkpDQo+ICsgICAgICAgKG1hdGNoX3Rl c3QgInJpc2N2X2Zsb2F0X2NvbnN0X3plcm9fcnR4X3AgKG9wKSIpKSkNCj4NCj4gIChkZWZpbmVf bWVtb3J5X2NvbnN0cmFpbnQgIkEiDQo+ICAgICJBbiBhZGRyZXNzIHRoYXQgaXMgaGVsZCBpbiBh IGdlbmVyYWwtcHVycG9zZSByZWdpc3Rlci4iDQo+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jp c2N2L3ByZWRpY2F0ZXMubWQgYi9nY2MvY29uZmlnL3Jpc2N2L3ByZWRpY2F0ZXMubWQNCj4gaW5k ZXggYjg3YTY5MDA4NDEuLmI0MjhkODQyMTAxIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jp c2N2L3ByZWRpY2F0ZXMubWQNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1k DQo+IEBAIC03OCw3ICs3OCw3IEBAIChkZWZpbmVfcHJlZGljYXRlICJzbGV1X29wZXJhbmQiDQo+ DQo+ICAoZGVmaW5lX3ByZWRpY2F0ZSAiY29uc3RfMF9vcGVyYW5kIg0KPiAgICAoYW5kIChtYXRj aF9jb2RlICJjb25zdF9pbnQsY29uc3Rfd2lkZV9pbnQsY29uc3RfZG91YmxlLGNvbnN0X3ZlY3Rv ciIpDQo+IC0gICAgICAgKG1hdGNoX3Rlc3QgIm9wID09IENPTlNUMF9SVFggKEdFVF9NT0RFIChv cCkpIikpKQ0KPiArICAgICAgIChtYXRjaF90ZXN0ICJyaXNjdl9jb25zdF96ZXJvX3J0eF9wIChv cCkiKSkpDQo+DQo+ICAoZGVmaW5lX3ByZWRpY2F0ZSAiY29uc3RfMV9vcGVyYW5kIg0KPiAgICAo YW5kIChtYXRjaF9jb2RlICJjb25zdF9pbnQsY29uc3Rfd2lkZV9pbnQsY29uc3RfdmVjdG9yIikN Cj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQo+IGluZGV4IDMxMDQ5ZWY3NTIzLi5mY2YzMGUwODRh MyAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KPiArKysg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQo+IEBAIC0xMzEsNiArMTMxLDggQEAg ZXh0ZXJuIHZvaWQgcmlzY3ZfYXNtX291dHB1dF9leHRlcm5hbCAoRklMRSAqLCBjb25zdCB0cmVl LCBjb25zdCBjaGFyICopOw0KPiAgZXh0ZXJuIGJvb2wNCj4gIHJpc2N2X3pjbXBfdmFsaWRfc3Rh Y2tfYWRqX2J5dGVzX3AgKEhPU1RfV0lERV9JTlQsIGludCk7DQo+ICBleHRlcm4gdm9pZCByaXNj dl9sZWdpdGltaXplX3BvbHlfbW92ZSAobWFjaGluZV9tb2RlLCBydHgsIHJ0eCwgcnR4KTsNCj4g K2V4dGVybiBib29sIHJpc2N2X2Zsb2F0X2NvbnN0X3plcm9fcnR4X3AgKHJ0eCk7DQo+ICtleHRl cm4gYm9vbCByaXNjdl9jb25zdF96ZXJvX3J0eF9wIChydHgpOw0KPg0KPiAgI2lmZGVmIFJUWF9D T0RFDQo+ICBleHRlcm4gdm9pZCByaXNjdl9leHBhbmRfaW50X3NjYyAocnR4LCBlbnVtIHJ0eF9j b2RlLCBydHgsIHJ0eCwgYm9vbCAqaW52ZXJ0X3B0ciA9IDApOw0KPiBkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCj4gaW5k ZXggMGQxY2JjNWNiNWYuLmE4YWQ4NmI3MDY4IDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LmNjDQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCj4gQEAgLTE2 MzUsNyArMTYzNSw3IEBAIHJpc2N2X2NvbnN0X2luc25zIChydHggeCkNCj4gICAgICAgICByZXR1 cm4gMTsNCj4NCj4gICAgICAgIC8qIFdlIGNhbiB1c2UgeDAgdG8gbG9hZCBmbG9hdGluZy1wb2lu dCB6ZXJvLiAgKi8NCj4gLSAgICAgIHJldHVybiB4ID09IENPTlNUMF9SVFggKEdFVF9NT0RFICh4 KSkgPyAxIDogMDsNCj4gKyAgICAgIHJldHVybiByaXNjdl9mbG9hdF9jb25zdF96ZXJvX3J0eF9w ICh4KSA/IDEgOiAwOw0KPiAgICAgIGNhc2UgQ09OU1RfVkVDVE9SOg0KPiAgICAgICAgew0KPiAg ICAgICAgIC8qIFRPRE86IFRoaXMgaXMgbm90IGFjY3VyYXRlLCB3ZSB3aWxsIG5lZWQgdG8NCj4g QEAgLTk0ODEsNiArOTQ4MSwzOSBAQCByaXNjdl96Y21wX3ZhbGlkX3N0YWNrX2Fkal9ieXRlc19w IChIT1NUX1dJREVfSU5UIHRvdGFsLCBpbnQgcmVnc19udW0pDQo+ICAgICAgICAgIHx8IGFkZGl0 aW9hbmxfYnl0ZXMgPT0gWkNNUF9NQVhfU1BJTU0gKiBaQ01QX1NQX0lOQ19TVEVQOw0KPiAgfQ0K Pg0KPiArLyogUmV0dXJuIHRydWUgaWYgcnR4IG9wIGlzIGNvbnN0IHplcm8gb2YgdGhlIGZsb2F0 aW5nLXBvaW50LiAgKi8NCj4gK2Jvb2wNCj4gK3Jpc2N2X2Zsb2F0X2NvbnN0X3plcm9fcnR4X3Ag KHJ0eCBvcCkNCj4gK3sNCj4gKyAgbWFjaGluZV9tb2RlIG1vZGUgPSBHRVRfTU9ERSAob3ApOw0K PiArDQo+ICsgIGlmIChHRVRfTU9ERV9DTEFTUyAobW9kZSkgIT0gTU9ERV9GTE9BVCkNCj4gKyAg ICByZXR1cm4gZmFsc2U7DQo+ICsNCj4gKyAgaWYgKEdFVF9DT0RFIChvcCkgIT0gQ09OU1RfRE9V QkxFKQ0KPiArICAgIHJldHVybiBmYWxzZTsNCj4gKw0KPiArICBjb25zdCBzdHJ1Y3QgcmVhbF92 YWx1ZSAqb3BfcnZhbHVlID0gQ09OU1RfRE9VQkxFX1JFQUxfVkFMVUUgKG9wKTsNCj4gKw0KPiAr ICBpZiAoUkVBTF9WQUxVRV9NSU5VU19aRVJPICgqb3BfcnZhbHVlKSkNCj4gKyAgICByZXR1cm4g IUhPTk9SX1NJR05FRF9aRVJPUyAobW9kZSk7DQo+ICsNCj4gKyAgcmV0dXJuIHJlYWxfZXF1YWwg KG9wX3J2YWx1ZSwgJmRjb25zdDApOw0KPiArfQ0KPiArDQo+ICsvKiBSZXR1cm4gdHJ1ZSBpZiBy dHggb3AgaXMgY29uc3QgemVybywgaW5jbHVkZSBib3RoIHRoZSBpbnRlZ2VyDQo+ICsgICBhbmQg ZmxvYXRpbmctcG9pbnQuICAqLw0KPiArYm9vbA0KPiArcmlzY3ZfY29uc3RfemVyb19ydHhfcCAo cnR4IG9wKQ0KPiArew0KPiArICBtYWNoaW5lX21vZGUgbW9kZSA9IEdFVF9NT0RFIChvcCk7DQo+ ICsNCj4gKyAgaWYgKEdFVF9NT0RFX0NMQVNTIChtb2RlKSA9PSBNT0RFX0ZMT0FUKQ0KPiArICAg IHJldHVybiByaXNjdl9mbG9hdF9jb25zdF96ZXJvX3J0eF9wIChvcCk7DQo+ICsNCj4gKyAgcmV0 dXJuIG9wID09IENPTlNUMF9SVFggKG1vZGUpOw0KPiArfQ0KPiArDQo+ICAvKiBSZXR1cm4gdHJ1 ZSBpZiBpdCdzIHZhbGlkIGdwcl9zYXZlIHBhdHRlcm4uICAqLw0KPg0KPiAgYm9vbA0KPiBkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5tZCBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YubWQNCj4gaW5kZXggNjhmNzIwM2I2NzYuLmNkNDI5ZjZkY2RkIDEwMDY0NA0KPiAtLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kDQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yu bWQNCj4gQEAgLTE4NzgsNyArMTg3OCwxMiBAQCAoZGVmaW5lX2luc24gIiptb3ZoZl9oYXJkZmxv YXQiDQo+ICAgICJUQVJHRVRfWkZITUlODQo+ICAgICAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3Bl cmFuZHNbMF0sIEhGbW9kZSkNCj4gICAgICAgICB8fCByZWdfb3JfMF9vcGVyYW5kIChvcGVyYW5k c1sxXSwgSEZtb2RlKSkiDQo+IC0gIHsgcmV0dXJuIHJpc2N2X291dHB1dF9tb3ZlIChvcGVyYW5k c1swXSwgb3BlcmFuZHNbMV0pOyB9DQo+ICsgIHsNCj4gKyAgICBpZiAocmlzY3ZfZmxvYXRfY29u c3RfemVyb19ydHhfcCAob3BlcmFuZHNbMV0pKQ0KPiArICAgICAgb3BlcmFuZHNbMV0gPSBDT05T VDBfUlRYIChHRVRfTU9ERSAob3BlcmFuZHNbMV0pKTsNCj4gKw0KPiArICAgIHJldHVybiByaXNj dl9vdXRwdXRfbW92ZSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsNCj4gKyAgfQ0KPiAgICBb KHNldF9hdHRyICJtb3ZlX3R5cGUiICJmbW92ZSxmbW92ZSxtdGMsZnBsb2FkLGZwc3RvcmUsc3Rv cmUsbXRjLG1mYyxtb3ZlLGxvYWQsc3RvcmUiKQ0KPiAgICAgKHNldF9hdHRyICJ0eXBlIiAiZm1v dmUiKQ0KPiAgICAgKHNldF9hdHRyICJtb2RlIiAiSEYiKV0pDQo+IEBAIC0xODg5LDcgKzE4OTQs MTIgQEAgKGRlZmluZV9pbnNuICIqbW92aGZfc29mdGZsb2F0Ig0KPiAgICAiIVRBUkdFVF9aRkhN SU4NCj4gICAgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgSEZtb2RlKQ0KPiAg ICAgICAgIHx8IHJlZ19vcl8wX29wZXJhbmQgKG9wZXJhbmRzWzFdLCBIRm1vZGUpKSINCj4gLSAg eyByZXR1cm4gcmlzY3Zfb3V0cHV0X21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7IH0N Cj4gKyAgew0KPiArICAgIGlmIChyaXNjdl9mbG9hdF9jb25zdF96ZXJvX3J0eF9wIChvcGVyYW5k c1sxXSkpDQo+ICsgICAgICBvcGVyYW5kc1sxXSA9IENPTlNUMF9SVFggKEdFVF9NT0RFIChvcGVy YW5kc1sxXSkpOw0KPiArDQo+ICsgICAgcmV0dXJuIHJpc2N2X291dHB1dF9tb3ZlIChvcGVyYW5k c1swXSwgb3BlcmFuZHNbMV0pOw0KPiArICB9DQo+ICAgIFsoc2V0X2F0dHIgIm1vdmVfdHlwZSIg ImZtb3ZlLG1vdmUsbG9hZCxzdG9yZSxtdGMsbWZjIikNCj4gICAgIChzZXRfYXR0ciAidHlwZSIg ImZtb3ZlIikNCj4gICAgIChzZXRfYXR0ciAibW9kZSIgIkhGIildKQ0KPiBAQCAtMjI0Myw3ICsy MjUzLDEyIEBAIChkZWZpbmVfaW5zbiAiKm1vdnNmX2hhcmRmbG9hdCINCj4gICAgIlRBUkdFVF9I QVJEX0ZMT0FUDQo+ICAgICAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIFNGbW9k ZSkNCj4gICAgICAgICB8fCByZWdfb3JfMF9vcGVyYW5kIChvcGVyYW5kc1sxXSwgU0Ztb2RlKSki DQo+IC0gIHsgcmV0dXJuIHJpc2N2X291dHB1dF9tb3ZlIChvcGVyYW5kc1swXSwgb3BlcmFuZHNb MV0pOyB9DQo+ICsgIHsNCj4gKyAgICBpZiAocmlzY3ZfZmxvYXRfY29uc3RfemVyb19ydHhfcCAo b3BlcmFuZHNbMV0pKQ0KPiArICAgICAgb3BlcmFuZHNbMV0gPSBDT05TVDBfUlRYIChHRVRfTU9E RSAob3BlcmFuZHNbMV0pKTsNCj4gKw0KPiArICAgIHJldHVybiByaXNjdl9vdXRwdXRfbW92ZSAo b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsNCj4gKyAgfQ0KPiAgICBbKHNldF9hdHRyICJtb3Zl X3R5cGUiICJmbW92ZSxmbW92ZSxtdGMsZnBsb2FkLGZwc3RvcmUsc3RvcmUsbXRjLG1mYyxtb3Zl LGxvYWQsc3RvcmUiKQ0KPiAgICAgKHNldF9hdHRyICJ0eXBlIiAiZm1vdmUiKQ0KPiAgICAgKHNl dF9hdHRyICJtb2RlIiAiU0YiKV0pDQo+IEBAIC0yMjU0LDcgKzIyNjksMTIgQEAgKGRlZmluZV9p bnNuICIqbW92c2Zfc29mdGZsb2F0Ig0KPiAgICAiIVRBUkdFVF9IQVJEX0ZMT0FUDQo+ICAgICAm JiAocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIFNGbW9kZSkNCj4gICAgICAgICB8fCBy ZWdfb3JfMF9vcGVyYW5kIChvcGVyYW5kc1sxXSwgU0Ztb2RlKSkiDQo+IC0gIHsgcmV0dXJuIHJp c2N2X291dHB1dF9tb3ZlIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pOyB9DQo+ICsgIHsNCj4g KyAgICBpZiAocmlzY3ZfZmxvYXRfY29uc3RfemVyb19ydHhfcCAob3BlcmFuZHNbMV0pKQ0KPiAr ICAgICAgb3BlcmFuZHNbMV0gPSBDT05TVDBfUlRYIChHRVRfTU9ERSAob3BlcmFuZHNbMV0pKTsN Cj4gKw0KPiArICAgIHJldHVybiByaXNjdl9vdXRwdXRfbW92ZSAob3BlcmFuZHNbMF0sIG9wZXJh bmRzWzFdKTsNCj4gKyAgfQ0KPiAgICBbKHNldF9hdHRyICJtb3ZlX3R5cGUiICJtb3ZlLGxvYWQs c3RvcmUiKQ0KPiAgICAgKHNldF9hdHRyICJ0eXBlIiAiZm1vdmUiKQ0KPiAgICAgKHNldF9hdHRy ICJtb2RlIiAiU0YiKV0pDQo+IEBAIC0yMjc5LDcgKzIyOTksMTIgQEAgKGRlZmluZV9pbnNuICIq bW92ZGZfaGFyZGZsb2F0X3J2MzIiDQo+ICAgICIhVEFSR0VUXzY0QklUICYmIFRBUkdFVF9ET1VC TEVfRkxPQVQNCj4gICAgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgREZtb2Rl KQ0KPiAgICAgICAgIHx8IHJlZ19vcl8wX29wZXJhbmQgKG9wZXJhbmRzWzFdLCBERm1vZGUpKSIN Cj4gLSAgeyByZXR1cm4gcmlzY3Zfb3V0cHV0X21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sx XSk7IH0NCj4gKyAgew0KPiArICAgIGlmIChyaXNjdl9mbG9hdF9jb25zdF96ZXJvX3J0eF9wIChv cGVyYW5kc1sxXSkpDQo+ICsgICAgICBvcGVyYW5kc1sxXSA9IENPTlNUMF9SVFggKEdFVF9NT0RF IChvcGVyYW5kc1sxXSkpOw0KPiArDQo+ICsgICAgcmV0dXJuIHJpc2N2X291dHB1dF9tb3ZlIChv cGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pOw0KPiArICB9DQo+ICAgIFsoc2V0X2F0dHIgIm1vdmVf dHlwZSIgImZtb3ZlLGZtb3ZlLG10YyxmcGxvYWQsZnBzdG9yZSxzdG9yZSxtdGMsbWZjLG1vdmUs bG9hZCxzdG9yZSIpDQo+ICAgICAoc2V0X2F0dHIgInR5cGUiICJmbW92ZSIpDQo+ICAgICAoc2V0 X2F0dHIgIm1vZGUiICJERiIpXSkNCj4gQEAgLTIyOTAsNyArMjMxNSwxMiBAQCAoZGVmaW5lX2lu c24gIiptb3ZkZl9oYXJkZmxvYXRfcnY2NCINCj4gICAgIlRBUkdFVF82NEJJVCAmJiBUQVJHRVRf RE9VQkxFX0ZMT0FUDQo+ICAgICAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIERG bW9kZSkNCj4gICAgICAgICB8fCByZWdfb3JfMF9vcGVyYW5kIChvcGVyYW5kc1sxXSwgREZtb2Rl KSkiDQo+IC0gIHsgcmV0dXJuIHJpc2N2X291dHB1dF9tb3ZlIChvcGVyYW5kc1swXSwgb3BlcmFu ZHNbMV0pOyB9DQo+ICsgIHsNCj4gKyAgICBpZiAocmlzY3ZfZmxvYXRfY29uc3RfemVyb19ydHhf cCAob3BlcmFuZHNbMV0pKQ0KPiArICAgICAgb3BlcmFuZHNbMV0gPSBDT05TVDBfUlRYIChHRVRf TU9ERSAob3BlcmFuZHNbMV0pKTsNCj4gKw0KPiArICAgIHJldHVybiByaXNjdl9vdXRwdXRfbW92 ZSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsNCj4gKyAgfQ0KPiAgICBbKHNldF9hdHRyICJt b3ZlX3R5cGUiICJmbW92ZSxmbW92ZSxtdGMsZnBsb2FkLGZwc3RvcmUsc3RvcmUsbXRjLG1mYyxt b3ZlLGxvYWQsc3RvcmUiKQ0KPiAgICAgKHNldF9hdHRyICJ0eXBlIiAiZm1vdmUiKQ0KPiAgICAg KHNldF9hdHRyICJtb2RlIiAiREYiKV0pDQo+IEBAIC0yMzAxLDcgKzIzMzEsMTIgQEAgKGRlZmlu ZV9pbnNuICIqbW92ZGZfc29mdGZsb2F0Ig0KPiAgICAiIVRBUkdFVF9ET1VCTEVfRkxPQVQNCj4g ICAgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgREZtb2RlKQ0KPiAgICAgICAg IHx8IHJlZ19vcl8wX29wZXJhbmQgKG9wZXJhbmRzWzFdLCBERm1vZGUpKSINCj4gLSAgeyByZXR1 cm4gcmlzY3Zfb3V0cHV0X21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7IH0NCj4gKyAg ew0KPiArICAgIGlmIChyaXNjdl9mbG9hdF9jb25zdF96ZXJvX3J0eF9wIChvcGVyYW5kc1sxXSkp DQo+ICsgICAgICBvcGVyYW5kc1sxXSA9IENPTlNUMF9SVFggKEdFVF9NT0RFIChvcGVyYW5kc1sx XSkpOw0KPiArDQo+ICsgICAgcmV0dXJuIHJpc2N2X291dHB1dF9tb3ZlIChvcGVyYW5kc1swXSwg b3BlcmFuZHNbMV0pOw0KPiArICB9DQo+ICAgIFsoc2V0X2F0dHIgIm1vdmVfdHlwZSIgIm1vdmUs bG9hZCxzdG9yZSIpDQo+ICAgICAoc2V0X2F0dHIgInR5cGUiICJmbW92ZSIpDQo+ICAgICAoc2V0 X2F0dHIgIm1vZGUiICJERiIpXSkNCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtMC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy0wLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMDAuLjFlZGExM2EzNDA2DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy0wLmMNCj4gQEAgLTAs MCArMSwyNiBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NGQgLU8zIC1mbm8tc2lnbmVkLXplcm9zIC1mbm8t c2NoZWR1bGUtaW5zbnMgLWZuby1zY2hlZHVsZS1pbnNuczIiIH0gKi8NCj4gKy8qIHsgZGctc2tp cC1pZiAiIiB7ICotKi0qIH0geyAiLWZsdG8iIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNo ZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiArDQo+ICsvKg0KPiArKiogdGVz dF9mbG9hdF9wbHVzX3plcm9fYXNzaWduOg0KPiArKiogc3dccyt6ZXJvLDBcKFthdHhdWzAtOV0r XCkNCj4gKyoqIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK3Rlc3RfZmxvYXRfcGx1c196ZXJvX2Fz c2lnbiAoZmxvYXQgKmEpDQo+ICt7DQo+ICsgICphID0gKzAuMDsNCj4gK30NCj4gKw0KPiArLyoN Cj4gKyoqIHRlc3RfZmxvYXRfcGx1c196ZXJvX2Fzc2lnbjoNCj4gKyoqIHN3XHMremVybywwXChb YXR4XVswLTldK1wpDQo+ICsqKiByZXQNCj4gKyovDQo+ICt2b2lkDQo+ICt0ZXN0X2Zsb2F0X21p bnVzX3plcm9fYXNzaWduIChmbG9hdCAqYSkNCj4gK3sNCj4gKyAgKmEgPSAtMC4wOw0KPiArfQ0K PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16 ZXJvcy0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yvbm8tc2lnbmVkLXplcm9z LTEuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uODA0MWVj M2VhOTUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3Yvbm8tc2lnbmVkLXplcm9zLTEuYw0KPiBAQCAtMCwwICsxLDI4IEBADQo+ICsvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFi aT1scDY0ZCAtTzMgLWZuby1zaWduZWQtemVyb3MgLWZuby1zY2hlZHVsZS1pbnNucyAtZm5vLXNj aGVkdWxlLWluc25zMiIgfSAqLw0KPiArLyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSogfSB7ICIt Zmx0byIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIq KiIgIiIgfSB9ICovDQo+ICsNCj4gK2V4dGVybiB2b2lkIGZsb2F0X2Fzc2lnbiAoZmxvYXQgKmEs IGZsb2F0IGIpOw0KPiArDQo+ICsvKg0KPiArKiogdGVzdF9mbG9hdF9wbHVzX3plcm9fYXNzaWdu Og0KPiArKiogZm12XC5zXC54XHMrZmFbMC05XSssXHMqemVybw0KPiArKiogdGFpbFxzK2Zsb2F0 X2Fzc2lnbg0KPiArKi8NCj4gK3ZvaWQNCj4gK3Rlc3RfZmxvYXRfcGx1c196ZXJvX2Fzc2lnbiAo ZmxvYXQgKmEpDQo+ICt7DQo+ICsgIGZsb2F0X2Fzc2lnbiAoYSwgKzAuMCk7DQo+ICt9DQo+ICsN Cj4gKy8qDQo+ICsqKiB0ZXN0X2Zsb2F0X21pbnVzX3plcm9fYXNzaWduOg0KPiArKiogZm12XC5z XC54XHMrZmFbMC05XSssXHMqemVybw0KPiArKiogdGFpbFxzK2Zsb2F0X2Fzc2lnbg0KPiArKi8N Cj4gK3ZvaWQNCj4gK3Rlc3RfZmxvYXRfbWludXNfemVyb19hc3NpZ24gKGZsb2F0ICphKQ0KPiAr ew0KPiArICBmbG9hdF9hc3NpZ24gKGEsIC0wLjApOw0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy0yLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3Yvbm8tc2lnbmVkLXplcm9zLTIuYw0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uYTY5OTZkYWU0ZGUNCj4gLS0tIC9kZXYv bnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yvbm8tc2lnbmVkLXpl cm9zLTIuYw0KPiBAQCAtMCwwICsxLDI2IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K PiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0ZCAtTzMgLWZuby1z aWduZWQtemVyb3MgLWZuby1zY2hlZHVsZS1pbnNucyAtZm5vLXNjaGVkdWxlLWluc25zMiIgfSAq Lw0KPiArLyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSogfSB7ICItZmx0byIgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQo+ICsN Cj4gKy8qDQo+ICsqKiB0ZXN0X2Zsb2F0X3BsdXNfemVyb19hc3NpZ246DQo+ICsqKiBzZFxzK3pl cm8sMFwoW2F0eF1bMC05XStcKQ0KPiArKiogcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArdGVzdF9m bG9hdF9wbHVzX3plcm9fYXNzaWduIChkb3VibGUgKmEpDQo+ICt7DQo+ICsgICphID0gKzAuMDsN Cj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIHRlc3RfZmxvYXRfcGx1c196ZXJvX2Fzc2lnbjoNCj4g KyoqIHNkXHMremVybywwXChbYXR4XVswLTldK1wpDQo+ICsqKiByZXQNCj4gKyovDQo+ICt2b2lk DQo+ICt0ZXN0X2Zsb2F0X21pbnVzX3plcm9fYXNzaWduIChkb3VibGUgKmEpDQo+ICt7DQo+ICsg ICphID0gLTAuMDsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9uby1zaWduZWQtemVyb3MtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L25vLXNpZ25lZC16ZXJvcy0zLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMDAuLmI0YmE4YTI0N2RmDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy0zLmMNCj4gQEAgLTAsMCAr MSwyOCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NGQgLU8zIC1mbm8tc2lnbmVkLXplcm9zIC1mbm8tc2No ZWR1bGUtaW5zbnMgLWZuby1zY2hlZHVsZS1pbnNuczIiIH0gKi8NCj4gKy8qIHsgZGctc2tpcC1p ZiAiIiB7ICotKi0qIH0geyAiLWZsdG8iIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNr LWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiArDQo+ICtleHRlcm4gdm9pZCBmbG9h dF9hc3NpZ24gKGRvdWJsZSAqYSwgZG91YmxlIGIpOw0KPiArDQo+ICsvKg0KPiArKiogdGVzdF9m bG9hdF9wbHVzX3plcm9fYXNzaWduOg0KPiArKiogZm12XC5kXC54XHMrZmFbMC05XSssXHMqemVy bw0KPiArKiogdGFpbFxzK2Zsb2F0X2Fzc2lnbg0KPiArKi8NCj4gK3ZvaWQNCj4gK3Rlc3RfZmxv YXRfcGx1c196ZXJvX2Fzc2lnbiAoZG91YmxlICphKQ0KPiArew0KPiArICBmbG9hdF9hc3NpZ24g KGEsICswLjApOw0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogdGVzdF9mbG9hdF9taW51c196ZXJv X2Fzc2lnbjoNCj4gKyoqIGZtdlwuZFwueFxzK2ZhWzAtOV0rLFxzKnplcm8NCj4gKyoqIHRhaWxc cytmbG9hdF9hc3NpZ24NCj4gKyovDQo+ICt2b2lkDQo+ICt0ZXN0X2Zsb2F0X21pbnVzX3plcm9f YXNzaWduIChkb3VibGUgKmEpDQo+ICt7DQo+ICsgIGZsb2F0X2Fzc2lnbiAoYSwgLTAuMCk7DQo+ ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yvbm8tc2ln bmVkLXplcm9zLTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9uby1zaWduZWQt emVyb3MtNC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi42 MGFjZjcxNTVkMw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtNC5jDQo+IEBAIC0wLDAgKzEsMjYgQEANCj4gKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 X3pmaCAtbWFiaT1scDY0ZCAtTzMgLWZuby1zaWduZWQtemVyb3MgLWZuby1zY2hlZHVsZS1pbnNu cyAtZm5vLXNjaGVkdWxlLWluc25zMiIgfSAqLw0KPiArLyogeyBkZy1za2lwLWlmICIiIHsgKi0q LSogfSB7ICItZmx0byIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24t Ym9kaWVzICIqKiIgIiIgfSB9ICovDQo+ICsNCj4gKy8qDQo+ICsqKiB0ZXN0X2Zsb2F0X3BsdXNf emVyb19hc3NpZ246DQo+ICsqKiBzaFxzK3plcm8sMFwoW2F0eF1bMC05XStcKQ0KPiArKiogcmV0 DQo+ICsqLw0KPiArdm9pZA0KPiArdGVzdF9mbG9hdF9wbHVzX3plcm9fYXNzaWduIChfRmxvYXQx NiAqYSkNCj4gK3sNCj4gKyAgKmEgPSArMC4wOw0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogdGVz dF9mbG9hdF9wbHVzX3plcm9fYXNzaWduOg0KPiArKiogc2hccyt6ZXJvLDBcKFthdHhdWzAtOV0r XCkNCj4gKyoqIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK3Rlc3RfZmxvYXRfbWludXNfemVyb19h c3NpZ24gKF9GbG9hdDE2ICphKQ0KPiArew0KPiArICAqYSA9IC0wLjA7DQo+ICt9DQo+IGRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yvbm8tc2lnbmVkLXplcm9zLTUu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9uby1zaWduZWQtemVyb3MtNS5jDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5kMTBlZmJlYjM3Yg0K PiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9u by1zaWduZWQtemVyb3MtNS5jDQo+IEBAIC0wLDAgKzEsMjggQEANCj4gKy8qIHsgZGctZG8gY29t cGlsZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3pmaCAtbWFiaT1s cDY0ZCAtTzMgLWZuby1zaWduZWQtemVyb3MgLWZuby1zY2hlZHVsZS1pbnNucyAtZm5vLXNjaGVk dWxlLWluc25zMiIgfSAqLw0KPiArLyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSogfSB7ICItZmx0 byIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIg IiIgfSB9ICovDQo+ICsNCj4gK2V4dGVybiB2b2lkIGZsb2F0X2Fzc2lnbiAoX0Zsb2F0MTYgKmEs IF9GbG9hdDE2IGIpOw0KPiArDQo+ICsvKg0KPiArKiogdGVzdF9mbG9hdF9wbHVzX3plcm9fYXNz aWduOg0KPiArKiogZm12XC5oXC54XHMrZmFbMC05XSssXHMqemVybw0KPiArKiogdGFpbFxzK2Zs b2F0X2Fzc2lnbg0KPiArKi8NCj4gK3ZvaWQNCj4gK3Rlc3RfZmxvYXRfcGx1c196ZXJvX2Fzc2ln biAoX0Zsb2F0MTYgKmEpDQo+ICt7DQo+ICsgIGZsb2F0X2Fzc2lnbiAoYSwgKzAuMCk7DQo+ICt9 DQo+ICsNCj4gKy8qDQo+ICsqKiB0ZXN0X2Zsb2F0X21pbnVzX3plcm9fYXNzaWduOg0KPiArKiog Zm12XC5oXC54XHMrZmFbMC05XSssXHMqemVybw0KPiArKiogdGFpbFxzK2Zsb2F0X2Fzc2lnbg0K PiArKi8NCj4gK3ZvaWQNCj4gK3Rlc3RfZmxvYXRfbWludXNfemVyb19hc3NpZ24gKF9GbG9hdDE2 ICphKQ0KPiArew0KPiArICBmbG9hdF9hc3NpZ24gKGEsIC0wLjApOw0KPiArfQ0KPiBkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy1ydW4t MC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy1ydW4t MC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi4zNDdlNGIw ZmY3NA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9uby1zaWduZWQtemVyb3MtcnVuLTAuYw0KPiBAQCAtMCwwICsxLDM2IEBADQo+ICsvKiB7 IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3YgfSB9IH0gKi8NCj4gKy8qIHsgZGctYWRkaXRp b25hbC1vcHRpb25zICItc3RkPWM5OSAtTzMgLWZuby1zaWduZWQtemVyb3MiIH0gKi8NCj4gKw0K PiArZmxvYXQgZl92YWw7DQo+ICsNCj4gK3ZvaWQNCj4gK19fYXR0cmlidXRlX18gKChub2lubGlu ZSkpDQo+ICt0ZXN0X2Zsb2F0X3BsdXNfemVyb19hc3NpZ24gKGZsb2F0ICphKQ0KPiArew0KPiAr ICAqYSA9ICswLjA7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK19fYXR0cmlidXRlX18gKChub2lu bGluZSkpDQo+ICt0ZXN0X2Zsb2F0X21pbnVzX3plcm9fYXNzaWduIChmbG9hdCAqYSkNCj4gK3sN Cj4gKyAgKmEgPSAtMC4wOw0KPiArfQ0KPiArDQo+ICtpbnQNCj4gK21haW4gKCkNCj4gK3sNCj4g KyAgZl92YWwgPSAtMS4wOw0KPiArICB0ZXN0X2Zsb2F0X3BsdXNfemVyb19hc3NpZ24gKCZmX3Zh bCk7DQo+ICsNCj4gKyAgaWYgKF9fYnVpbHRpbl9jb3B5c2lnbmYgKDEuMCwgZl92YWwpICE9IDEu MCkNCj4gKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7DQo+ICsNCj4gKyAgZl92YWwgPSAtMS4wOw0K PiArICB0ZXN0X2Zsb2F0X21pbnVzX3plcm9fYXNzaWduICgmZl92YWwpOw0KPiArDQo+ICsgIGlm IChfX2J1aWx0aW5fY29weXNpZ25mICgxLjAsIGZfdmFsKSAhPSAxLjApDQo+ICsgICAgX19idWls dGluX2Fib3J0ICgpOw0KPiArDQo+ICsgIHJldHVybiAwOw0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy1ydW4tMS5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L25vLXNpZ25lZC16ZXJvcy1ydW4tMS5jDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi4xZWIxZWRiYTQ1Nw0K PiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9u by1zaWduZWQtemVyb3MtcnVuLTEuYw0KPiBAQCAtMCwwICsxLDM2IEBADQo+ICsvKiB7IGRnLWRv IHJ1biB7IHRhcmdldCB7IHJpc2N2X3YgfSB9IH0gKi8NCj4gKy8qIHsgZGctYWRkaXRpb25hbC1v cHRpb25zICItc3RkPWM5OSAtTzMgLWZuby1zaWduZWQtemVyb3MiIH0gKi8NCj4gKw0KPiArZG91 YmxlIGZfdmFsOw0KPiArDQo+ICt2b2lkDQo+ICtfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0K PiArdGVzdF9mbG9hdF9wbHVzX3plcm9fYXNzaWduIChkb3VibGUgKmEpDQo+ICt7DQo+ICsgICph ID0gKzAuMDsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5l KSkNCj4gK3Rlc3RfZmxvYXRfbWludXNfemVyb19hc3NpZ24gKGRvdWJsZSAqYSkNCj4gK3sNCj4g KyAgKmEgPSAtMC4wOw0KPiArfQ0KPiArDQo+ICtpbnQNCj4gK21haW4gKCkNCj4gK3sNCj4gKyAg Zl92YWwgPSAtMS4wOw0KPiArICB0ZXN0X2Zsb2F0X3BsdXNfemVyb19hc3NpZ24gKCZmX3ZhbCk7 DQo+ICsNCj4gKyAgaWYgKF9fYnVpbHRpbl9jb3B5c2lnbmYgKDEuMCwgZl92YWwpICE9IDEuMCkN Cj4gKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7DQo+ICsNCj4gKyAgZl92YWwgPSAtMS4wOw0KPiAr ICB0ZXN0X2Zsb2F0X21pbnVzX3plcm9fYXNzaWduICgmZl92YWwpOw0KPiArDQo+ICsgIGlmIChf X2J1aWx0aW5fY29weXNpZ25mICgxLjAsIGZfdmFsKSAhPSAxLjApDQo+ICsgICAgX19idWlsdGlu X2Fib3J0ICgpOw0KPiArDQo+ICsgIHJldHVybiAwOw0KPiArfQ0KPiAtLQ0KPiAyLjM0LjENCj4N Cg==