From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id 3A8F13858D39 for ; Wed, 17 May 2023 15:15:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3A8F13858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684336500; x=1715872500; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=0zZyYLUZ0NGSoWG/Hod3gVxEbNOmjiVxLxVufxBTPt8=; b=joq7UeP/z/ZXsasm/lNFYFaMefQitpzJbc6ckhptDE/pl/OdQI5WDi4s kSQXiNmTe6LiVjwlOli+EHCfIEHfuVl6dgncOhZk5Ye+6DeJgxhIiJZea a/PuXhdRO1NXe6cQWJnNdTe+ZfNaWVt2qx8ksJFjD5tRmtk1jjQQ2PskC IAw8dUiMiGA9YJwp+ZuxvP5SjadRpJ5odAjwdS1qdHeJqbD7uNalQCKWH z0gyQPVJIf5SIKycTsqephoFILqgYzFMW6+Uqgu3LhHldBgJrCcUWmt7S wyl9dMK5FN0MOds69QV89GWTd8nAEUpfLkRm8DFmrt+3PRC4RsrOEd1pX Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10713"; a="438129887" X-IronPort-AV: E=Sophos;i="5.99,282,1677571200"; d="scan'208";a="438129887" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 May 2023 08:14:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10713"; a="846127914" X-IronPort-AV: E=Sophos;i="5.99,282,1677571200"; d="scan'208";a="846127914" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 17 May 2023 08:14:58 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 17 May 2023 08:14:57 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 17 May 2023 08:14:57 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 17 May 2023 08:14:57 -0700 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.42) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 17 May 2023 08:14:56 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ctuev/WHoXoerot7kIy7u4jW8VMGMvE4voeaRmGqYyM+v+VnytW3lAbIX+msDckTyDHB5hTfXLpmVNqb5EtfiBjPoGj9/xNiAS7ilwuD55ejy6V/m3KexqCE07COTSLZNAFoqW1oS30TlpAyxYrZWGx382G/ckrUldhfrmLiSudmSUrZQTAImRHyqOAVNx7FKS8Bbc+Wlsc0eZ/2o4m+ABsjKsl79PhEYR8w6TZEmXMGzNREncRO9mRN3OeBfkC77tAsGKQF4D5B0x7uBs/HjxeXk9MOXgLw/v8YZExBZ1Q5MV6rMX5U8AWb1J4QPwYE3ilpEkRH9SADL9geNbUa8w== 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=0zZyYLUZ0NGSoWG/Hod3gVxEbNOmjiVxLxVufxBTPt8=; b=eT8KOorZ8A+/6L+EqW4UTZvWZWo70bAszcYwbO6DeLgLy/qu3zFc+9FzQJHX2v76f/Zyb+fUd3GfMwFro5u1yWl7iU3p2ufT/KPvg68keJ1/lpJUrUUQqxAjW3mHvFMRoIJztxxyt7NniNLclegaOD1SR+wMuYk9rKO1YMUvKH3+5tzwwP05p0mRhG1nTEKIIysXh0rHK6X4zBbOiwQtbodyIyFHqsCjGU6egBAE8DHN1jGP+eAxRaXRgUnf/7jR22wma9qxwH3k4h8+xysbp3JrxpuK/UuEJsKNXgGcVSwKdaN9GLv0IeA/fFXCEwJMOrSl9X6l2m2xg+3ZxgiTTA== 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 IA0PR11MB7816.namprd11.prod.outlook.com (2603:10b6:208:407::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.17; Wed, 17 May 2023 15:14:52 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::bbc5:f013:1f53:10a9]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::bbc5:f013:1f53:10a9%3]) with mapi id 15.20.6411.017; Wed, 17 May 2023 15:14:52 +0000 From: "Li, Pan2" To: Kito Cheng , =?utf-8?B?6ZKf5bGF5ZOy?= CC: Jeff Law , gcc-patches , kito.cheng , palmer , palmer , rdapp.gcc Subject: RE: [PATCH] RISC-V: Introduce rounding mode operand into fixed-point intrinsics Thread-Topic: [PATCH] RISC-V: Introduce rounding mode operand into fixed-point intrinsics Thread-Index: AQHZiIAUUMIZzcv37kGCU/GA78LwTa9ekCmUgAAA0YCAAAKZ8A== Date: Wed, 17 May 2023 15:14:52 +0000 Message-ID: References: <20230517052521.405836-1-juzhe.zhong@rivai.ai> <3CAB52782B09DB03+2023051723013117499441@rivai.ai> 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_|IA0PR11MB7816:EE_ x-ms-office365-filtering-correlation-id: ea581545-cc86-4b0e-f6da-08db56e976e2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0nknbUdhvyhVTyNars3uYWARsDhbL+2AAXlDMiVcYylsNsFsR6FRHrM1Rt1q2Yw56EEJK71677rjZNTBMCVUSyO5PFw2nPVWkwXjM5p7CZq0GZUuQX5JJ3t5YiCnwY40uJALopOmyN1ui14V3FJ7dmeLmijbNVQlGAse7JQQreTUwf4h1PeV/oPWV2AsaK597WQo4y+uQRxJ/ijufOmdboX8EkKRJ09ovELPYUlz/Xkq4eje/KxJ/Mcza0Is8IXPn83cZudgfPfdopAe0VvbnDd2bKWJ5ohLS4JbsZ8YZRN5ILSIq8iRKUT4pJAdjE3hn70O1MxbKc8SLbX1o/oXjtPn+yOMtH6X8SIMuFJ6GCBmbITUne8Z39pI645pgin6Zja2HD1R2uwUnXVIEOjpPcsGhd9TT8r4WB5OkZnQ9mq9BkLb6U5tbwcvRcQDzFVvCsqvIBSXCpktuOKpzJEceKMw2PAHoz7jIOayDO+a42NFr1oAkH6y2ELZj0ogZzXILOgA42+BnGbl4HJhavZY8ZqBZuIpiIbSwVkojASzipcU9VpN3tLPKJPev6HnyOmCTdUFJr1AdGgfu1L72RH6giftO65Ol4FqLDLbr381rvE= 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:(13230028)(346002)(376002)(39860400002)(136003)(366004)(396003)(451199021)(86362001)(38070700005)(33656002)(110136005)(54906003)(76116006)(66946007)(66556008)(66446008)(64756008)(4326008)(66476007)(316002)(966005)(478600001)(55016003)(8676002)(8936002)(5660300002)(41300700001)(30864003)(2906002)(52536014)(122000001)(38100700002)(82960400001)(6506007)(26005)(186003)(9686003)(53546011)(83380400001)(71200400001)(7696005)(84970400001)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UEtXa0Z1dXRrYmI0dHJDRGNxYlFsZ0hobVZrTld5cytqdEN6b2Z2NTB5aHZo?= =?utf-8?B?ck9XOEJONittL0FFNkFHUjdCaWRHSnh5MSt1ayttcm9DODN5WkRlbWtNYitq?= =?utf-8?B?aTJiLzVadU5zTUp6bjRwMTBLWGZoMGd2TStHQ25CNUtuNWtoaG1MMTZ2RWlE?= =?utf-8?B?SmpoSVJRdTh3T0haSG9mWHdHd0VDOEsvcUIxTURQUkZQbm9RK2lVQmV3TmVi?= =?utf-8?B?aldoZkRwcU04bzE3bTNuUWlwSVQ5eXl4TnlqK2pIdmduQVRmc1I5WDlxUjMv?= =?utf-8?B?WTlTbksvNkEwdDBtSHppNm5BS05zUEEyQlJOODBjT0NlSm1tY1l1U1ZVRnVv?= =?utf-8?B?SWorZkxCZWFaaTJLQVN1YXdKSTJodDlDZHZGV3Jnb01wNU9ZaVBrUXF5VDNi?= =?utf-8?B?ZHdYU2k1c1VHWVBVcmhWc0s3ay92emxKbjlWVk5HZVd4RnFWNFBHcmZHaW1R?= =?utf-8?B?VlBCQVlpdDJlcG1YaFRYdFRDOGpjVlVjS0JldzFUcDBQTW1LSEZFSm9ocVBE?= =?utf-8?B?MFJEZUhtWS9xVzE4Vm1vc1h4eUxxVC9nWXJvTTdGWnBvT1E0VUYvR2p2dHQx?= =?utf-8?B?ZzE0MENSVzBOMk9Ed3BUVnB5ZmVmVnpFWTdGVFdHaldJSXpZUlU2bHR5QWRL?= =?utf-8?B?Tjh6WmJMWnIweEtKMUlRTEcvWTE1U3V5ZmgwSnpIWUVVRkZEaFVUOC84M3lh?= =?utf-8?B?UVAzUUJ0aFBIZ0I4YStId3NKYit0MjE0U2lVZkNsbmY0dU56QjFKS0tmVGFu?= =?utf-8?B?OUJBS1dTTzB0SkpKYWozb3lwZnptMENRQm5GeURuTkV4ZVhRcjdzT0JFNmEr?= =?utf-8?B?VG9LRlV4Wm85VTZJVTFWcy9hWDNKYkp6RWhHUGY3dlVyUFBHeC84dFI5MU45?= =?utf-8?B?NzdPMSt3Wk5Tb05aaUQzZGsreVF4Z2RRTjMwbXBBaEhCYjNBZERLTEkyYTlK?= =?utf-8?B?WHMwMXBndUZtTDNRWkdBbUxRc3k3K2lIcWtWZlRva1VGM3ord3VZVEw1TTJZ?= =?utf-8?B?eXoyUWxUTXZZZktjbFhmZkZsUnd6b1kvRERXUUlXQ0lPTHA1NTJNS3gzeHI3?= =?utf-8?B?aFM0dWNFUHpMQXZaUUxCZUJrQ0xTTkxuQ2U3QndMdjVNL2loenA1WHhjUFZk?= =?utf-8?B?enlYeWV1NWp3dVIyRmxLdFhxWUlVRXoraFU4RWFNVmdoWDg3UTRyaFMzOHpR?= =?utf-8?B?NndKNGdDSzlITzFMamRHanZMV0hkaG04Y2Z0MGI3bmljbHJoT1NjR29iTzBy?= =?utf-8?B?MU9mb2dNZjVKSEZqalBIQnNVQmoyMTdsSnJRWGpQejdsN0ZlY0dld2oyTkdq?= =?utf-8?B?aVVadDJxV2MvejRjNWFxajU2Ym1UdnNGcE51MmlDREhBTnRxNWtJN3U5T0pz?= =?utf-8?B?U3BFQmNrS3FkT2d3aTl6VEVla1pCUFVMdWlhWGtHSmU4N210L1k2eFFhNjRz?= =?utf-8?B?VUxmTzlZWldNM2lUbFRWdHVvbHFKZk5jZ01sOWdwUkVBKzJDendrbW5NenFZ?= =?utf-8?B?UUFhb1ZWOEdjbWI5SnZiWnF5cFB1WnRhdlRVVHRTbDI0eHNXUFlvRWNjQTMy?= =?utf-8?B?WXEvRmVjekQzbHZRQXZGckdUeStFTy82THdpbm5jbFdpZGh1ZUJpSVRhNTh5?= =?utf-8?B?b1hzdi9xVFZSR1oxYjk3S2hhQzhkTytFWU9ZSWxyRmNkSC9RTXZhNndSeVRi?= =?utf-8?B?dmFHV2pVc0ZGM0VWNmZDMlJzN1hNRmk2MnBkNlllUWkxdjdSbGgrSHMybUk1?= =?utf-8?B?MTJudWx1WlBtUnphNWxxOWhGRHN4Q2xsRCszS055UE5kUmFPN2FSL05jMTRS?= =?utf-8?B?ejRDbVR5RFNWQTNIMGhGY2NqTHlOdGZWQU5HbzR0K3kzeE0xZUxoQkFUaVho?= =?utf-8?B?VjE2Z0ZKQXpzcFpvUzNFdmpqTzgwdkl1UU5rWlVBQXFvVk0yN3U2VjRsU0hj?= =?utf-8?B?VnVpZnNGTllUV1BlcklwcHhXanllZEZCZXZKUVJqNjFCdldTRUg2bW1UVHFm?= =?utf-8?B?MjR5dzV6alh0OHpuMTFPcE1MdHEzVUowMitiTXh2VkU1MVhmRzhXTXgyZGJn?= =?utf-8?B?M01nN3VFMCsyVlZab1ZHMjNwMFVRcU5kZ05kenNGRUgvRkI3QldpekdtdEtw?= =?utf-8?Q?tVsM=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: ea581545-cc86-4b0e-f6da-08db56e976e2 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 May 2023 15:14:52.4834 (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: s5/SlWTHtc5QZH2It0kb3RH71SAhb4UW2+MVPPjgL+VKB8nIGU+NdTTh6HMEQ4x4xs4bUlAuQRKNGTdCeTkfYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR11MB7816 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,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: Q29tbWl0dGVkLCB0aGFua3Mga2l0by4NCg0KUGFuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQpGcm9tOiBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXMtYm91bmNlcytwYW4yLmxpPWludGVs LmNvbUBnY2MuZ251Lm9yZz4gT24gQmVoYWxmIE9mIEtpdG8gQ2hlbmcgdmlhIEdjYy1wYXRjaGVz DQpTZW50OiBXZWRuZXNkYXksIE1heSAxNywgMjAyMyAxMTowNSBQTQ0KVG86IOmSn+WxheWTsiA8 anV6aGUuemhvbmdAcml2YWkuYWk+DQpDYzogSmVmZiBMYXcgPGplZmZyZXlhbGF3QGdtYWlsLmNv bT47IGdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz47IGtpdG8uY2hlbmcgPGtp dG8uY2hlbmdAZ21haWwuY29tPjsgcGFsbWVyIDxwYWxtZXJAZGFiYmVsdC5jb20+OyBwYWxtZXIg PHBhbG1lckByaXZvc2luYy5jb20+OyByZGFwcC5nY2MgPHJkYXBwLmdjY0BnbWFpbC5jb20+DQpT dWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IEludHJvZHVjZSByb3VuZGluZyBtb2RlIG9wZXJh bmQgaW50byBmaXhlZC1wb2ludCBpbnRyaW5zaWNzDQoNCkxHVE0sIHRoYW5rcyENCg0K6ZKf5bGF 5ZOyIDxqdXpoZS56aG9uZ0ByaXZhaS5haT7mlrwgMjAyM+W5tDXmnIgxN+aXpSDpgLHkuInvvIwy MzowMuWvq+mBk++8mg0KDQo+IFBpbmcgdGhpcyBwYXRjaCB3aGljaCBpcyB0aGUgcHJlcmVxdWlz aXRlIG9mIHRoaXMgcGF0Y2g6DQo+DQo+IGh0dHBzOi8vcGF0Y2h3b3JrLnNvdXJjZXdhcmUub3Jn L3Byb2plY3QvZ2NjL3BhdGNoLzIwMjMwNTE3MDk1ODE4LjEyODUxODgtMS1qdXpoZS56aG9uZ0By aXZhaS5haS8NCj4NCj4gd2hpY2ggaGFzIGJlZW4gYXBwcm92ZWQgYnkga2l0by4NCj4NCj4gSXMg dGhpcyBwYXRjaCBhbHNvIG9rIGZvciB0cnVuayA/DQo+DQo+IFRoYW5rcy4NCj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IGp1emhlLnpob25nQHJpdmFpLmFpDQo+DQo+DQo+ICpG cm9tOioganV6aGUuemhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KPiAqRGF0ZToqIDIwMjMt MDUtMTcgMTM6MjUNCj4gKlRvOiogZ2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3Jn Pg0KPiAqQ0M6KiBraXRvLmNoZW5nIDxraXRvLmNoZW5nQGdtYWlsLmNvbT47IGtpdG8uY2hlbmcN Cj4gPGtpdG8uY2hlbmdAc2lmaXZlLmNvbT47IHBhbG1lciA8cGFsbWVyQGRhYmJlbHQuY29tPjsg cGFsbWVyDQo+IDxwYWxtZXJAcml2b3NpbmMuY29tPjsgamVmZnJleWFsYXcgPGplZmZyZXlhbGF3 QGdtYWlsLmNvbT47IHJkYXBwLmdjYw0KPiA8cmRhcHAuZ2NjQGdtYWlsLmNvbT47IEp1emhlLVpo b25nIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCj4gKlN1YmplY3Q6KiBbUEFUQ0hdIFJJU0MtVjog SW50cm9kdWNlIHJvdW5kaW5nIG1vZGUgb3BlcmFuZCBpbnRvDQo+IGZpeGVkLXBvaW50IGludHJp bnNpY3MNCj4gRnJvbTogSnV6aGUtWmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KPg0KPiBB Y2NvcmRpbmcgdG8gbmV3IGNvbW1pbmcgZml4ZWQtcG9pbnQgQVBJOg0KPiBodHRwczovL2dpdGh1 Yi5jb20vcmlzY3Ytbm9uLWlzYS9ydnYtaW50cmluc2ljLWRvYy9wdWxsLzIyMg0KPg0KPiBJbnRy b2R1Y2UgdnhybSBhcmd1bWVudDoNCj4gLSB2aW50MzJtMV90IF9fcmlzY3ZfdnNhZGRfdnZfaTMy bTEgKHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwNCj4gc2l6ZV90IHZsKTsNCj4gKyB2 aW50MzJtMV90IF9fcmlzY3ZfdnNhZGRfdnZfaTMybTEgKHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJt MV90IG9wMiwNCj4gc2l6ZV90IHZ4cm0sIHNpemVfdCB2bCk7DQo+DQo+IFRoaXMgcGF0Y2ggZG9l c24ndCBpbnNlcnQgdnhybSBjc3J3IGNvbmZpZ3VyYXRpb24gaW5zdHJ1Y3Rpb24geWV0Lg0KPiBX aWxsIHN1cHBvcnQgYXV0b21hdGljYWxseSBpbnNlcnQgY3NydyB2eHJtIGluc3RydWN0aW9uIGlu IHRoZSBuZXh0IHBhdGNoLg0KPg0KPiBUaGlzIHBhdGNoIGRvZXMgdGhpcyBmb2xsb3dpbmc6DQo+ IDEuIE9ubHkgZXh0ZW5kIHRoZSB2eHJtIGFyZ3VtZW50Lg0KPiAyLiBDaGVjayB2eHJtIGFyZ3Vt ZW50IGlzIGludmFsaWQgaW1tZWRpYXRlIGFuZCByZXBvcnQgZXJyb3IgbWVzc2FnZSBpZiBpdA0K PiBpcyBpbnZhbGlkLg0KPg0KPiBnY2MvQ2hhbmdlTG9nOg0KPg0KPiAgICAgICAgICogY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYzogSW50cm9kdWNlIHJvdW5kaW5n DQo+IG1vZGUuDQo+ICAgICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LXNoYXBlcy5jYyAoc3RydWN0IGFsdV9kZWYpOg0KPiBEaXR0by4NCj4gICAgICAgICAoc3RydWN0 IG5hcnJvd19hbHVfZGVmKTogRGl0dG8uDQo+ICAgICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLmNjDQo+IChmdW5jdGlvbl9idWlsZGVyOjphcHBseV9wcmVkaWNhdGlv bik6IERpdHRvLg0KPiAgICAgICAgIChmdW5jdGlvbl9leHBhbmRlcjo6dXNlX2V4YWN0X2luc24p OiBEaXR0by4NCj4gICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu aA0KPiAoZnVuY3Rpb25fY2hlY2tlcjo6YXJnX251bSk6IE5ldyBmdW5jdGlvbi4NCj4gICAgICAg ICAoZnVuY3Rpb25fYmFzZTo6aGFzX3JvdW5kaW5nX21vZGVfb3BlcmFuZF9wKTogTmV3IGZ1bmN0 aW9uLg0KPg0KPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4NCj4gICAgICAgICAqIGcrKy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTExLkM6IEFkYXB0IHRlc3RjYXNlLg0KPiAgICAgICAg ICogZysrLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctMTIuQzogRGl0dG8uDQo+ICAgICAgICAg KiBnKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xNC5DOiBEaXR0by4NCj4gICAgICAgICAq IGcrKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE1LkM6IERpdHRvLg0KPiAgICAgICAgICog ZysrLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctMTYuQzogRGl0dG8uDQo+ICAgICAgICAgKiBn KysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xNy5DOiBEaXR0by4NCj4gICAgICAgICAqIGcr Ky50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE4LkM6IERpdHRvLg0KPiAgICAgICAgICogZysr LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctMTkuQzogRGl0dG8uDQo+ICAgICAgICAgKiBnKysu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0yMC5DOiBEaXR0by4NCj4gICAgICAgICAqIGcrKy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTIxLkM6IERpdHRvLg0KPiAgICAgICAgICogZysrLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9idWctMjIuQzogRGl0dG8uDQo+ICAgICAgICAgKiBnKysudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0yMy5DOiBEaXR0by4NCj4gICAgICAgICAqIGcrKy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTMuQzogRGl0dG8uDQo+ICAgICAgICAgKiBnKysudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2J1Zy01LkM6IERpdHRvLg0KPiAgICAgICAgICogZysrLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9idWctNi5DOiBEaXR0by4NCj4gICAgICAgICAqIGcrKy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvYnVnLTguQzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAwLmM6IERpdHRvLg0KPiAgICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwMS5jOiBEaXR0 by4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3Ry YWludC0xMDIuYzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAzLmM6IERpdHRvLg0KPiAgICAgICAgICogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwNC5jOiBEaXR0by4NCj4gICAg ICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMDUu YzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4 X2NvbnN0cmFpbnQtMTA2LmM6IERpdHRvLg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwNy5jOiBEaXR0by4NCj4gICAgICAgICAqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMDguYzogRGl0dG8u DQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFp bnQtMTA5LmM6IERpdHRvLg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9i aW5vcF92eF9jb25zdHJhaW50LTExMC5jOiBEaXR0by4NCj4gICAgICAgICAqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTEuYzogRGl0dG8uDQo+ICAgICAg ICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTEyLmM6 IERpdHRvLg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9j b25zdHJhaW50LTExMy5jOiBEaXR0by4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTQuYzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE1LmM6IERpdHRvLg0K PiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50 LTExNi5jOiBEaXR0by4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlu b3BfdnhfY29uc3RyYWludC0xMTcuYzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE4LmM6IERpdHRvLg0KPiAgICAgICAg ICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExOS5jOiBE aXR0by4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29u c3RyYWludC0xMjIuYzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtOTcuYzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtOTguYzogRGl0dG8uDQo+ICAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL21lcmdlX2NvbnN0cmFpbnQtMS5jOiBE aXR0by4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvbmFycm93X2NvbnN0 cmFpbnQtNi5jOiBEaXR0by4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv bmFycm93X2NvbnN0cmFpbnQtNy5jOiBEaXR0by4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvbmFycm93X2NvbnN0cmFpbnQtOC5jOiBEaXR0by4NCj4gICAgICAgICAqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvbmFycm93X2NvbnN0cmFpbnQtOS5jOiBEaXR0by4NCj4g ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvdnhybS0yLmM6IE5ldyB0ZXN0Lg0K PiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS92eHJtLTMuYzogTmV3IHRlc3Qu DQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3Z4cm0tNC5jOiBOZXcgdGVz dC4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvdnhybS01LmM6IE5ldyB0 ZXN0Lg0KPg0KPiAtLS0NCj4gLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5j YyAgICAgIHwgIDEwICsrDQo+IC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmNjICAgICB8ICAyNiArKysNCj4gZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuY2MgICAgIHwgIDE5ICstDQo+IGdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmggICAgICB8ICAxOCArKw0KPiAuLi4vZysrLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWct MTEuQyAgICAgICAgfCAgIDIgKy0NCj4gLi4uL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVn LTEyLkMgICAgICAgIHwgICA4ICstDQo+IC4uLi9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1 Zy0xNC5DICAgICAgICB8ICAgNCArLQ0KPiAuLi4vZysrLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9i dWctMTUuQyAgICAgICAgfCAgIDIgKy0NCj4gLi4uL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv YnVnLTE2LkMgICAgICAgIHwgICA4ICstDQo+IC4uLi9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2J1Zy0xNy5DICAgICAgICB8ICAgMiArLQ0KPiAuLi4vZysrLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9idWctMTguQyAgICAgICAgfCAgIDIgKy0NCj4gLi4uL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvYnVnLTE5LkMgICAgICAgIHwgICAyICstDQo+IC4uLi9nKysudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2J1Zy0yMC5DICAgICAgICB8ICAgMiArLQ0KPiAuLi4vZysrLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9idWctMjEuQyAgICAgICAgfCAgIDIgKy0NCj4gLi4uL2crKy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvYnVnLTIyLkMgICAgICAgIHwgICAyICstDQo+IC4uLi9nKysudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2J1Zy0yMy5DICAgICAgICB8ICAgMiArLQ0KPiAuLi4vZysrLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9idWctMy5DICAgICAgICAgfCAgIDYgKy0NCj4gLi4uL2crKy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvYnVnLTUuQyAgICAgICAgIHwgICA0ICstDQo+IC4uLi9nKysudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2J1Zy02LkMgICAgICAgICB8ICAgMiArLQ0KPiAuLi4vZysrLnRhcmdldC9yaXNj di9ydnYvYmFzZS9idWctOC5DICAgICAgICAgfCAgIDIgKy0NCj4gLi4uL3Jpc2N2L3J2di9iYXNl L2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAwLmMgIHwgICA0ICstDQo+IC4uLi9yaXNjdi9ydnYvYmFz ZS9iaW5vcF92eF9jb25zdHJhaW50LTEwMS5jICB8ICAgNCArLQ0KPiAuLi4vcmlzY3YvcnZ2L2Jh c2UvYmlub3BfdnhfY29uc3RyYWludC0xMDIuYyAgfCAgIDQgKy0NCj4gLi4uL3Jpc2N2L3J2di9i YXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAzLmMgIHwgIDI4ICstLQ0KPiAuLi4vcmlzY3YvcnZ2 L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMDQuYyAgfCAgMTYgKy0NCj4gLi4uL3Jpc2N2L3J2 di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTA1LmMgIHwgICA0ICstDQo+IC4uLi9yaXNjdi9y dnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwNi5jICB8ICAgNCArLQ0KPiAuLi4vcmlzY3Yv cnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMDcuYyAgfCAgIDQgKy0NCj4gLi4uL3Jpc2N2 L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTA4LmMgIHwgICA0ICstDQo+IC4uLi9yaXNj di9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwOS5jICB8ICAyOCArLS0NCj4gLi4uL3Jp c2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTEwLmMgIHwgIDE2ICstDQo+IC4uLi9y aXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExMS5jICB8ICAgNCArLQ0KPiAuLi4v cmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTIuYyAgfCAgIDQgKy0NCj4gLi4u L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTEzLmMgIHwgICA0ICstDQo+IC4u Li9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExNC5jICB8ICAgNCArLQ0KPiAu Li4vcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTUuYyAgfCAgMTYgKy0NCj4g Li4uL3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE2LmMgIHwgICA0ICstDQo+ IC4uLi9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExNy5jICB8ICAgNCArLQ0K PiAuLi4vcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTguYyAgfCAgIDQgKy0N Cj4gLi4uL3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE5LmMgIHwgICA0ICst DQo+IC4uLi9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEyMi5jICB8ICAgNCAr LQ0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC05Ny5jICAgfCAgMjgg Ky0tDQo+IC4uLi9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTk4LmMgICB8ICAx NiArLQ0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2UvbWVyZ2VfY29uc3RyYWludC0xLmMgICAgICAgfCAg IDggKy0NCj4gLi4uL3Jpc2N2L3J2di9iYXNlL25hcnJvd19jb25zdHJhaW50LTYuYyAgICAgIHwg MTY0ICsrKysrKysrLS0tLS0tLS0tDQo+IC4uLi9yaXNjdi9ydnYvYmFzZS9uYXJyb3dfY29uc3Ry YWludC03LmMgICAgICB8IDE2NiArKysrKysrKystLS0tLS0tLS0NCj4gLi4uL3Jpc2N2L3J2di9i YXNlL25hcnJvd19jb25zdHJhaW50LTguYyAgICAgIHwgMTI0ICsrKysrKy0tLS0tLS0NCj4gLi4u L3Jpc2N2L3J2di9iYXNlL25hcnJvd19jb25zdHJhaW50LTkuYyAgICAgIHwgMTI0ICsrKysrKy0t LS0tLS0NCj4gLi4uL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvdnhybS0yLmMgICAgICAgIHwg IDEyICsrDQo+IC4uLi9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3Z4cm0tMy5jICAgICAgICB8 ICAxMiArKw0KPiAuLi4vZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS92eHJtLTQuYyAgICAgICAg fCAgMTEgKysNCj4gLi4uL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvdnhybS01LmMgICAgICAg IHwgIDExICsrDQo+IDUyIGZpbGVzIGNoYW5nZWQsIDU0MyBpbnNlcnRpb25zKCspLCA0MjYgZGVs ZXRpb25zKC0pDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvdnhybS0yLmMNCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS92eHJtLTMuYw0KPiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3Z4cm0tNC5jDQo+IGNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv dnhybS01LmMNCj4NCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLWJhc2VzLmNjDQo+IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtYmFzZXMuY2MNCj4gaW5kZXggYWI1YjRkYzk1MTUuLmE4MTEzZjY2MDJiIDEwMDY0NA0K PiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0K PiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0K PiBAQCAtMjYwLDYgKzI2MCwxMiBAQCB0ZW1wbGF0ZTxydHhfY29kZSBDT0RFPg0KPiBjbGFzcyBi aW5vcCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQo+IHsNCj4gcHVibGljOg0KPiArICBib29sIGhh c19yb3VuZGluZ19tb2RlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZQ0KPiArICB7DQo+ICsg ICAgcmV0dXJuIENPREUgPT0gU1NfUExVUyB8fCBDT0RFID09IFNTX01JTlVTIHx8IENPREUgPT0g VVNfUExVUw0KPiArICAgIHx8IENPREUgPT0gVVNfTUlOVVM7DQo+ICsgIH0NCj4gKw0KPiAgICBy dHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gICAgew0K PiAgICAgIHN3aXRjaCAoZS5vcF9pbmZvLT5vcCkNCj4gQEAgLTU5Niw2ICs2MDIsOCBAQCB0ZW1w bGF0ZTxpbnQgVU5TUEVDPg0KPiBjbGFzcyBzYXRfb3AgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0K PiB7DQo+IHB1YmxpYzoNCj4gKyAgYm9vbCBoYXNfcm91bmRpbmdfbW9kZV9vcGVyYW5kX3AgKCkg Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIHJ0eCBleHBhbmQgKGZ1 bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KPiAgICB7DQo+ICAgICAgc3dpdGNo IChlLm9wX2luZm8tPm9wKQ0KPiBAQCAtNjE2LDYgKzYyNCw4IEBAIHRlbXBsYXRlPGludCBVTlNQ RUM+DQo+IGNsYXNzIHZuY2xpcCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQo+IHsNCj4gcHVibGlj Og0KPiArICBib29sIGhhc19yb3VuZGluZ19tb2RlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlk ZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5k ZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+ICAgIHsNCj4gICAgICBzd2l0Y2ggKGUub3BfaW5mby0+ b3ApDQo+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1zaGFwZXMuY2MNCj4gYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuY2MNCj4gaW5kZXggODIyNTg4YzdiNmUuLjc2MjYyZjA3Y2U0IDEwMDY0NA0KPiAtLS0g YS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCj4gKysr IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQo+IEBA IC0yMTEsNiArMjExLDE5IEBAIHN0cnVjdCBhbHVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCj4g ICAgICBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tpbnN0YW5jZS5wcmVkXSk7 DQo+ICAgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQo+ICAgIH0NCj4gKw0KPiArICBib29s IGNoZWNrIChmdW5jdGlvbl9jaGVja2VyICZjKSBjb25zdCBvdmVycmlkZQ0KPiArICB7DQo+ICsg ICAgLyogQ2hlY2sgd2hldGhlciByb3VuZGluZyBtb2RlIGFyZ3VtZW50IGlzIGEgdmFsaWQgaW1t ZWRpYXRlLiAgKi8NCj4gKyAgICBpZiAoYy5iYXNlLT5oYXNfcm91bmRpbmdfbW9kZV9vcGVyYW5k X3AgKCkpDQo+ICsgICAgICB7DQo+ICsgaWYgKCFjLmFueV90eXBlX2Zsb2F0X3AgKCkpDQo+ICsg ICByZXR1cm4gYy5yZXF1aXJlX2ltbWVkaWF0ZSAoYy5hcmdfbnVtICgpIC0gMiwgVlhSTV9STlUs IFZYUk1fUk9EKTsNCj4gKyAvKiBUT0RPOiBXZSB3aWxsIHN1cHBvcnQgZmxvYXRpbmctcG9pbnQg aW50cmluc2ljIG1vZGVsaW5nDQo+ICsgICAgcm91bmRpbmcgbW9kZSBpbiB0aGUgZnV0dXJlLiAg Ki8NCj4gKyAgICAgIH0NCj4gKyAgICByZXR1cm4gdHJ1ZTsNCj4gKyAgfQ0KPiB9Ow0KPiAvKiB3 aWRlbl9hbHVfZGVmIGNsYXNzLiBIYW5kbGUgdndhZGQvdndzdWIuIFVubGlrZQ0KPiBAQCAtMzEz LDYgKzMyNiwxOSBAQCBzdHJ1Y3QgbmFycm93X2FsdV9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0K PiAgICAgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2luc3RhbmNlLnByZWRd KTsNCj4gICAgICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCj4gICAgfQ0KPiArDQo+ICsgIGJv b2wgY2hlY2sgKGZ1bmN0aW9uX2NoZWNrZXIgJmMpIGNvbnN0IG92ZXJyaWRlDQo+ICsgIHsNCj4g KyAgICAvKiBDaGVjayB3aGV0aGVyIHJvdW5kaW5nIG1vZGUgYXJndW1lbnQgaXMgYSB2YWxpZCBp bW1lZGlhdGUuICAqLw0KPiArICAgIGlmIChjLmJhc2UtPmhhc19yb3VuZGluZ19tb2RlX29wZXJh bmRfcCAoKSkNCj4gKyAgICAgIHsNCj4gKyBpZiAoIWMuYW55X3R5cGVfZmxvYXRfcCAoKSkNCj4g KyAgIHJldHVybiBjLnJlcXVpcmVfaW1tZWRpYXRlIChjLmFyZ19udW0gKCkgLSAyLCBWWFJNX1JO VSwgVlhSTV9ST0QpOw0KPiArIC8qIFRPRE86IFdlIHdpbGwgc3VwcG9ydCBmbG9hdGluZy1wb2lu dCBpbnRyaW5zaWMgbW9kZWxpbmcNCj4gKyAgICByb3VuZGluZyBtb2RlIGluIHRoZSBmdXR1cmUu ICAqLw0KPiArICAgICAgfQ0KPiArICAgIHJldHVybiB0cnVlOw0KPiArICB9DQo+IH07DQo+IC8q IG1vdmVfZGVmIGNsYXNzLiBIYW5kbGUgdm12LnYudi92bXYudi54LiAgKi8NCj4gZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQo+IGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MNCj4gaW5kZXggYmNhYmYxZWExYTYu LmIxZDE4Zjk2MzI2IDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5jYw0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy5jYw0KPiBAQCAtMjk4MCw2ICsyOTgwLDEwIEBAIGZ1bmN0aW9uX2J1aWxkZXI6OmFwcGx5 X3ByZWRpY2F0aW9uIChjb25zdA0KPiBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQo+ICAg ICAgICB8fCBpbnN0YW5jZS5wcmVkID09IFBSRURfVFlQRV90dW11IHx8IGluc3RhbmNlLnByZWQg PT0gUFJFRF9UWVBFX211KQ0KPiAgICAgIGFyZ3VtZW50X3R5cGVzLnF1aWNrX2luc2VydCAoMCwg bWFza190eXBlKTsNCj4gKyAgLyogY2hlY2sgaWYgcm91bmRpbmcgbW9kZSBwYXJhbWV0ZXIgbmVl ZCAgKi8NCj4gKyAgaWYgKGluc3RhbmNlLmJhc2UtPmhhc19yb3VuZGluZ19tb2RlX29wZXJhbmRf cCAoKSkNCj4gKyAgICBhcmd1bWVudF90eXBlcy5xdWlja19wdXNoICh1bnNpZ25lZF90eXBlX25v ZGUpOw0KPiArDQo+ICAgIC8qIGNoZWNrIGlmIHZsIHBhcmFtZXRlciBuZWVkICAqLw0KPiAgICBp ZiAoaW5zdGFuY2UuYmFzZS0+YXBwbHlfdmxfcCAoKSkNCj4gICAgICBhcmd1bWVudF90eXBlcy5x dWlja19wdXNoIChzaXplX3R5cGVfbm9kZSk7DQo+IEBAIC0zMjc5LDcgKzMyODMsMTcgQEAgZnVu Y3Rpb25fZXhwYW5kZXI6OnVzZV9leGFjdF9pbnNuIChpbnNuX2NvZGUgaWNvZGUpDQo+ICAgICAg fQ0KPiAgICBmb3IgKGludCBhcmdubyA9IGFyZ19vZmZzZXQ7IGFyZ25vIDwgY2FsbF9leHByX25h cmdzIChleHApOyBhcmdubysrKQ0KPiAtICAgIGFkZF9pbnB1dF9vcGVyYW5kIChhcmdubyk7DQo+ ICsgICAgew0KPiArICAgICAgaWYgKGJhc2UtPmhhc19yb3VuZGluZ19tb2RlX29wZXJhbmRfcCAo KQ0KPiArICAgJiYgYXJnbm8gPT0gY2FsbF9leHByX25hcmdzIChleHApIC0gMikNCj4gKyB7DQo+ ICsgICAvKiBTaW5jZSB0aGUgcm91bmRpbmcgbW9kZSBhcmd1bWVudCBwb3NpdGlvbiBpcyBub3Qg Y29uc2lzdGVudCB3aXRoDQo+ICsgICAgICB0aGUgaW5zdHJ1Y3Rpb24gcGF0dGVybiwgd2UgbmVl ZCB0byBza2lwIHJvdW5kaW5nIG1vZGUgYXJndW1lbnQNCj4gKyAgICAgIGhlcmUuICAqLw0KPiAr ICAgY29udGludWU7DQo+ICsgfQ0KPiArICAgICAgYWRkX2lucHV0X29wZXJhbmQgKGFyZ25vKTsN Cj4gKyAgICB9DQo+ICAgIGlmIChiYXNlLT5hcHBseV90YWlsX3BvbGljeV9wICgpKQ0KPiAgICAg IGFkZF9pbnB1dF9vcGVyYW5kIChQbW9kZSwgZ2V0X3RhaWxfcG9saWN5X2Zvcl9wcmVkIChwcmVk KSk7DQo+IEBAIC0zMjg5LDYgKzMzMDMsOSBAQCBmdW5jdGlvbl9leHBhbmRlcjo6dXNlX2V4YWN0 X2luc24gKGluc25fY29kZSBpY29kZSkNCj4gICAgaWYgKGJhc2UtPmFwcGx5X3ZsX3AgKCkpDQo+ ICAgICAgYWRkX2lucHV0X29wZXJhbmQgKFBtb2RlLCBnZXRfYXZsX3R5cGVfcnR4IChhdmxfdHlw ZTo6Tk9OVkxNQVgpKTsNCj4gKyAgaWYgKGJhc2UtPmhhc19yb3VuZGluZ19tb2RlX29wZXJhbmRf cCAoKSkNCj4gKyAgICBhZGRfaW5wdXRfb3BlcmFuZCAoY2FsbF9leHByX25hcmdzIChleHApIC0g Mik7DQo+ICsNCj4gICAgLyogVE9ETzogQ3VycmVudGx5LCB3ZSBkb24ndCBzdXBwb3J0IGludHJp bnNpYyB0aGF0IGlzIG1vZGVsaW5nDQo+IHJvdW5kaW5nIG1vZGUuDQo+ICAgICAgIFdlIGFkZCBk ZWZhdWx0IHJvdW5kaW5nIG1vZGUgZm9yIHRoZSBpbnRyaW5zaWNzIHRoYXQgZGlkbid0IG1vZGVs DQo+IHJvdW5kaW5nDQo+ICAgICAgIG1vZGUgeWV0LiAgKi8NCj4gZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgNCj4gYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQo+IGluZGV4IGIwMjQ3MzFlMzdhLi41ZDQzNDU3OTEz MSAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu aA0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQo+IEBA IC00MTMsNiArNDEzLDkgQEAgcHVibGljOg0KPiAgICAvKiBSZXR1cm4gdHJ1ZSBpZiBpbnRyaW5z aWNzIGhhcyBtZXJnZSBvcGVyYW5kLiAgKi8NCj4gICAgdmlydHVhbCBib29sIGhhc19tZXJnZV9v cGVyYW5kX3AgKCkgY29uc3Q7DQo+ICsgIC8qIFJldHVybiB0cnVlIGlmIGludHJpbnNpY3MgaGFz IHJvdW5kaW5nIG1vZGUgb3BlcmFuZC4gICovDQo+ICsgIHZpcnR1YWwgYm9vbCBoYXNfcm91bmRp bmdfbW9kZV9vcGVyYW5kX3AgKCkgY29uc3Q7DQo+ICsNCj4gICAgLyogVHJ5IHRvIGZvbGQgdGhl IGdpdmVuIGdpbXBsZSBjYWxsLiAgUmV0dXJuIHRoZSBuZXcgZ2ltcGxlIHN0YXRlbWVudA0KPiAg ICAgICBvbiBzdWNjZXNzLCBvdGhlcndpc2UgcmV0dXJuIG51bGwuICAqLw0KPiAgICB2aXJ0dWFs IGdpbXBsZSAqZm9sZCAoZ2ltcGxlX2ZvbGRlciAmKSBjb25zdCB7IHJldHVybiBOVUxMOyB9DQo+ IEBAIC00MzQsNiArNDM3LDcgQEAgcHVibGljOg0KPiAgICBtYWNoaW5lX21vZGUgYXJnX21vZGUg KHVuc2lnbmVkIGludCkgY29uc3Q7DQo+ICAgIG1hY2hpbmVfbW9kZSByZXRfbW9kZSAodm9pZCkg Y29uc3Q7DQo+ICsgIHVuc2lnbmVkIGludCBhcmdfbnVtICh2b2lkKSBjb25zdDsNCj4gICAgYm9v bCBjaGVjayAodm9pZCk7DQo+ICAgIGJvb2wgcmVxdWlyZV9pbW1lZGlhdGUgKHVuc2lnbmVkIGlu dCwgSE9TVF9XSURFX0lOVCwgSE9TVF9XSURFX0lOVCkNCj4gY29uc3Q7DQo+IEBAIC02MDAsNiAr NjA0LDEyIEBAIGZ1bmN0aW9uX2NoZWNrZXI6OnJldF9tb2RlICgpIGNvbnN0DQo+ICAgIHJldHVy biBUWVBFX01PREUgKFRSRUVfVFlQRSAoVFJFRV9UWVBFIChmbmRlY2wpKSk7DQo+IH0NCj4gK2lu bGluZSB1bnNpZ25lZCBpbnQNCj4gK2Z1bmN0aW9uX2NoZWNrZXI6OmFyZ19udW0gKCkgY29uc3QN Cj4gK3sNCj4gKyAgcmV0dXJuIG1fbmFyZ3M7DQo+ICt9DQo+ICsNCj4gLyogRGVmYXVsdCBpbXBs ZW1lbnRhdGlvbiBvZiBmdW5jdGlvbl9iYXNlOjpjYWxsX3Byb3BlcnRpZXMsIHdpdGgNCj4gY29u c2VydmF0aXZlbHkNCj4gICAgIGNvcnJlY3QgYmVoYXZpb3IgZm9yIGZsb2F0aW5nLXBvaW50IGlu c3RydWN0aW9ucy4gICovDQo+IGlubGluZSB1bnNpZ25lZCBpbnQNCj4gQEAgLTY1MSw2ICs2NjEs MTQgQEAgZnVuY3Rpb25fYmFzZTo6aGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdA0KPiAgICBy ZXR1cm4gdHJ1ZTsNCj4gfQ0KPiArLyogV2UgY2hvb3NlIHRvIHJldHVybiBmYWxzZSBieSBkZWZh dWx0IHNpbmNlIG1vc3Qgb2YgdGhlIGludHJpbnNpY3MgZG9lcw0KPiArICAgbm90IGhhdmUgcm91 bmRpbmcgbW9kZSBvcGVyYW5kLiAgKi8NCj4gK2lubGluZSBib29sDQo+ICtmdW5jdGlvbl9iYXNl OjpoYXNfcm91bmRpbmdfbW9kZV9vcGVyYW5kX3AgKCkgY29uc3QNCj4gK3sNCj4gKyAgcmV0dXJu IGZhbHNlOw0KPiArfQ0KPiArDQo+IC8qIFNpbmNlIG1vc3Qgb2YgaW50cmluc2ljcyBjYW4gYmUg b3ZlcmxvYWRlZCwgd2Ugc2V0IGl0IHRydWUgYnkgZGVmYXVsdC4NCj4gKi8NCj4gaW5saW5lIGJv b2wNCj4gZnVuY3Rpb25fYmFzZTo6Y2FuX2JlX292ZXJsb2FkZWRfcCAoZW51bSBwcmVkaWNhdGlv bl90eXBlX2luZGV4KSBjb25zdA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xMS5DDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2J1Zy0xMS5DDQo+IGluZGV4IDEzZGQyNjQwNDZjLi4xNTFkNzM2NGFh MCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2J1Zy0xMS5DDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZysrLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9idWctMTEuQw0KPiBAQCAtNDEwLDcgKzQxMCw3IEBAIHZpbnQ4bWY4X3QgdmFyXzEwID0gX19y aXNjdl92c3JhX3Z2X2k4bWY4X211KHZhcl81MywNCj4gdmFyXzExLCB2YXJfMTMsIHZhcl81NCwg MSk7DQo+IHZpbnQ4bWY4X3QgdmFyXzEgPSBfX3Jpc2N2X3ZtYXhfdnhfaThtZjhfbXUodmFyXzcy LCB2YXJfMTAsIHZhcl8xMCwgdmFyXzksDQo+IDEpOw0KPiAvLyA1LCAxDQo+IC12aW50OG1mOF90 IHZhcl8wID0gX19yaXNjdl92c3NyYV92eF9pOG1mOCh2YXJfMSwgdmFyXzg1LCAxKTsNCj4gK3Zp bnQ4bWY4X3QgdmFyXzAgPSBfX3Jpc2N2X3Zzc3JhX3Z4X2k4bWY4KHZhcl8xLCB2YXJfODUsIDAs IDEpOw0KPiAvLyA1DQo+IHZib29sNjRfdCB2YXJfMiA9IF9fcmlzY3Zfdm1zYmNfdnhfaThtZjhf YjY0KHZhcl8wLCB2YXJfMywgMSk7DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTEyLkMNCj4gYi9nY2MvdGVzdHN1aXRlL2crKy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTEyLkMNCj4gaW5kZXggOGM2YWQxMmQ3MjkuLmVhOTkyMzI3 MjAyIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvYnVnLTEyLkMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2J1Zy0xMi5DDQo+IEBAIC0zMzUsNyArMzM1LDcgQEAgdmJvb2wzMl90IHZhcl8xNCA9DQo+ IF9fcmlzY3Zfdm1zZXFfdnZfdTMybTFfYjMyX211KHZhcl8zOSwgdmFyXzQwLCB2YXJfNDEsIHZh cl80MiwNCj4gLy8gMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwNCj4gMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwNCj4gMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwNCj4gMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMA0KPiBfX3Jpc2N2X3ZzZXR2bF9lMzJtOCgyNyk7DQo+IC12 aW50MzJtOF90IHZhcl8wID0gX19yaXNjdl92c3N1Yl92eF9pMzJtOCh2YXJfNTksIHZhcl8xLCAy Nyk7DQo+ICt2aW50MzJtOF90IHZhcl8wID0gX19yaXNjdl92c3N1Yl92eF9pMzJtOCh2YXJfNTks IHZhcl8xLCAwLCAyNyk7DQo+IC8vIC0xMDYxMDY4NDEyLCAtMTc3NjU4MDM1NCwgLTEwMDkzNTcz MywgMTExMTgxMjEyMywgODQwODQ5MzY3LA0KPiAxNDU0Njg5Nzc4LCAtMTQxNjk2MTU4NiwgMjg2 ODQ3MzA2LCAyMTE4MDcwNTY1LCAxOTY1MjMwNDA2LCAtMTA0MDY1ODAzNiwNCj4gNTg3MDQ4OTA5 LCAxNjY3NDcxMTc3LCAtMTQ1Mjk5NTM1OSwgMTU0OTg2NDI4OCwgMTk1NTY0ODYwNiwgLTExNTM2 ODk0NjEsDQo+IC0xMDUyNTMxMDgsIDE3OTIxOTQ1MDIsIC0zNDExNDg2MjUsIDYzMDcxMjY4NSwg LTEzNjcxOTYwNDcsIDE1NjEwMjgwMjIsDQo+IC01OTk3NzY2NjcsIDE0NDcxMzY5MzAsIC00ODA4 Mzk5NjcsIC0xOTYwNjI0NDE5DQo+IF9fcmlzY3ZfdnNldHZsX2UzMm04KDE5KTsNCj4gQEAgLTM1 OSw3ICszNTksNyBAQCBfX3Jpc2N2X3ZzZTMyX3ZfaTMybTgodmFyXzcwLCB2YXJfNCwgMTApOw0K PiBfX3Jpc2N2X3ZzZXR2bF9lMzJtOCgyNyk7DQo+IF9fcmlzY3ZfdnNlMzJfdl9pMzJtOCh2YXJf NzQsIHZhcl8xMCwgMjcpOw0KPiBfX3Jpc2N2X3ZzZXR2bF9lMzJtOCgxOSk7DQo+IC12aW50MzJt OF90IHZhcl8yID0gX19yaXNjdl92YWFkZF92eF9pMzJtOF9tdSh2YXJfOCwgdmFyXzAsIHZhcl81 NywNCj4gdmFyXzExLCAxOSk7DQo+ICt2aW50MzJtOF90IHZhcl8yID0gX19yaXNjdl92YWFkZF92 eF9pMzJtOF9tdSh2YXJfOCwgdmFyXzAsIHZhcl81NywNCj4gdmFyXzExLCAwLCAxOSk7DQo+IC8v IDM1OTU1Nzk1MywgMTk3NDMxNDU0LCAyMDQzMTUxMiwgLTExMjI2ODM0NDAsIDQzNDkwNzIxMSwg LTcxOTg4MzgyNCwNCj4gMzc2NTc2MDIsIC03ODI1MzcxMjUsIC0xMDY1NjY0NTksIC0xMDg0NDQ4 NzQ1LCAtOTQ1ODc4MDM2LCAtNjI2NzEyMjcwLA0KPiA3NzgzMzU1NDQsIC03NTU0MTI5MDUsIC01 NzQwMjA5NTYsIC0xMDI4NTIzOTEyLCA0NTgwNTIyMTksIC0xMTY2ODg1MDc0LA0KPiA3MzI0NDkz ODksIC0zNDExNDg2MjUsIDYzMDcxMjY4NSwgLTEzNjcxOTYwNDcsIDE1NjEwMjgwMjIsIC01OTk3 NzY2NjcsDQo+IDE0NDcxMzY5MzAsIC00ODA4Mzk5NjcsIC0xOTYwNjI0NDE5DQo+IGlmKCFjaGVj ayh2YXJfNzAsIHZhcl8xMTQsIHZhcl8xMTUpKSB7Y2VyciA8PCAiY2hlY2sgMTEzIGZhaWxzIiA8 PCBlbmRsOw0KPiByZXR1cm5fdmFsdWUgPSAxO30NCj4gQEAgLTM3Miw3ICszNzIsNyBAQCB2aW50 MzJtMV90IHZhcl82ID0NCj4gX19yaXNjdl92cmVkbWluX3ZzX2kzMm04X2kzMm0xX3R1KHZhcl8x OCwgdmFyXzIsIHZhcl8xOCwgMyk7DQo+IC8vIDIwNDMxNTEyDQo+IF9fcmlzY3ZfdnNldHZsX2Uz Mm04KDEwKTsNCj4gLXZpbnQzMm04X3QgdmFyXzkgPSBfX3Jpc2N2X3Zhc3ViX3Z2X2kzMm04KHZh cl8yLCB2YXJfNTMsIDEwKTsNCj4gK3ZpbnQzMm04X3QgdmFyXzkgPSBfX3Jpc2N2X3Zhc3ViX3Z2 X2kzMm04KHZhcl8yLCB2YXJfNTMsIDAsIDEwKTsNCj4gLy8gNjc5OTM2MTQ0LCAxMjk1Nzk4Nzks IC0zNzc2NTc3NzAsIC0zMDQwNzA1MzYsIDE3Mzc1ODY5MywgMzcxOTY5NzU1LA0KPiAtOTk0NDQ2 MjE1LCAtNDcxNzk1ODk3LCAzMTQ5NDc2MDIsIDQ4OTYyMjE1Ng0KPiBfX3Jpc2N2X3ZzZXR2bF9l MzJtOCgxOSk7DQo+IEBAIC0zOTQsNyArMzk0LDcgQEAgdmludDMybTFfdCB2YXJfMTIgPQ0KPiBf X3Jpc2N2X3ZyZWR4b3JfdnNfaTMybTJfaTMybTFfdHVtKHZhcl80NiwgdmFyXzcsIHZhcl80Nywg dmENCj4gLy8gNjExMzkwMjYwDQo+IF9fcmlzY3ZfdnNldHZsX2UzMm04KDEwKTsNCj4gLXZpbnQz Mm04X3QgdmFyXzE5ID0gX19yaXNjdl92c3NyYV92dl9pMzJtOF9tdSh2YXJfMTMsIHZhcl8yMCwg dmFyXzIxLA0KPiB2YXJfMjIsIDEwKTsNCj4gK3ZpbnQzMm04X3QgdmFyXzE5ID0gX19yaXNjdl92 c3NyYV92dl9pMzJtOF9tdSh2YXJfMTMsIHZhcl8yMCwgdmFyXzIxLA0KPiB2YXJfMjIsIDAsIDEw KTsNCj4gLy8gLTgxNjU0MDg4NywgMTA3NDU0MTQ5OCwgLTE0NjcyMzY0ODMsIC0yMzA5MTMzMSwg LTM4Nzg3LCAxOTQzNDc5MzQyLA0KPiAxMTU4OTI5NDM5LCAzNjAxNzIsIC0yMTgsIDIwMzQyNzg3 NzUNCj4gaWYoIWNoZWNrKHZhcl84NSwgdmFyXzEwNSwgdmFyXzEwNikpIHtjZXJyIDw8ICJjaGVj ayAxMDQgZmFpbHMiIDw8IGVuZGw7DQo+IHJldHVybl92YWx1ZSA9IDE7fQ0KPiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xNC5DDQo+IGIv Z2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xNC5DDQo+IGluZGV4 IGQ1ZTc4ZDI5MjJmLi5kODMzZDRkODBjNSAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9n KysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xNC5DDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUv ZysrLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctMTQuQw0KPiBAQCAtMzgyLDcgKzM4Miw3IEBA IHZ1aW50MTZtMl90IHZhcl8xOCA9DQo+IF9fcmlzY3ZfdndtdWx1X3Z2X3UxNm0yX211KHZhcl8y NCwgdmFyXzI1LCB2YXJfMjYsIHZhcl8yNywNCj4gaWYoIWNoZWNrKHZhcl85MSwgdmFyXzE0Miwg dmFyXzE0MykpIHtjZXJyIDw8ICJjaGVjayAxNDEgZmFpbHMiIDw8IGVuZGw7DQo+IHJldHVybl92 YWx1ZSA9IDE7fQ0KPiBpZighY2hlY2sodmFyXzkwLCB2YXJfMTM5LCB2YXJfMTQwKSkge2NlcnIg PDwgImNoZWNrIDEzOCBmYWlscyIgPDwgZW5kbDsNCj4gcmV0dXJuX3ZhbHVlID0gMTt9DQo+IF9f cmlzY3ZfdnNldHZsX2U2NG0xKDIpOw0KPiAtdnVpbnQ2NG0xX3QgdmFyXzcgPSBfX3Jpc2N2X3Zh c3VidV92eF91NjRtMSh2YXJfNDIsIHZhcl8xNSwgMik7DQo+ICt2dWludDY0bTFfdCB2YXJfNyA9 IF9fcmlzY3ZfdmFzdWJ1X3Z4X3U2NG0xKHZhcl80MiwgdmFyXzE1LCAwLCAyKTsNCj4gLy8gMTM1 NzgwMzk1NjA3ODIwNzEzMzYsIDE0ODQ2MjE2MDIzNTEyMTA2NDQNCj4gaWYoIWNoZWNrKHZhcl85 NCwgdmFyXzEzNiwgdmFyXzEzNykpIHtjZXJyIDw8ICJjaGVjayAxMzUgZmFpbHMiIDw8IGVuZGw7 DQo+IHJldHVybl92YWx1ZSA9IDE7fQ0KPiBAQCAtNDE1LDcgKzQxNSw3IEBAIGludDMyX3QgdmFy XzkgPSBfX3Jpc2N2X3Ztdl94X3NfaTMybTRfaTMyKHZhcl8xMCk7DQo+IC8vIDANCj4gX19yaXNj dl92c2V0dmxfZTMybWYyKDIpOw0KPiAtdmludDMybWYyX3QgdmFyXzIgPSBfX3Jpc2N2X3ZzYWRk X3Z4X2kzMm1mMl9tdSh2YXJfNDcsIHZhcl80OCwgdmFyXzQ5LA0KPiB2YXJfOSwgMik7DQo+ICt2 aW50MzJtZjJfdCB2YXJfMiA9IF9fcmlzY3ZfdnNhZGRfdnhfaTMybWYyX211KHZhcl80NywgdmFy XzQ4LCB2YXJfNDksDQo+IHZhcl85LCAwLCAyKTsNCj4gLy8gNDcwNTU5OTM5LCAxOTYxMTM5OTIz DQo+IF9fcmlzY3ZfdnN1eGVpNjRfdl9pMzJtZjIodmFyXzExNSwgdmFyXzExMiwgdmFyXzIsIDIp Ow0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2J1Zy0xNS5DDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1 Zy0xNS5DDQo+IGluZGV4IDE5M2I2ZmVkZGIxLi42MjdhYTkyOTBmOSAxMDA2NDQNCj4gLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xNS5DDQo+ICsrKyBi L2djYy90ZXN0c3VpdGUvZysrLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctMTUuQw0KPiBAQCAt MzQxLDcgKzM0MSw3IEBAIHZ1aW50MzJtNF90IHZhcl82ID0gX19yaXNjdl92bXZfc194X3UzMm00 X3R1KHZhcl8wLA0KPiB2YXJfNTgsIDEwKTsNCj4gLy8gMTIwNzMxMzAzMCwgMzAxNDYwMzg0MSwg MjM0ODI3ODczLCAzNTkxOTczMTc3LCA3NzQ2MjA4ODUsIDEzOTQzNzIxOTEsDQo+IDY0MzgyNzA2 NSwgNDA0NTA4Mzg2MywgMTY3NDkzMjc2OSwgMjIwNjkzOTQwNywgMTE5MzczNTUwMSwgMTcwNDk2 NTY2MiwNCj4gMzM5NzY5MDY5MywgMzQ1NTQzMjE2MiwgMjc4MjM0NzA4Mw0KPiBfX3Jpc2N2X3Zz ZXR2bF9lOG0xKDE1KTsNCj4gLXZ1aW50OG0xX3QgdmFyXzE2ID0gX19yaXNjdl92bmNsaXB1X3d4 X3U4bTFfbXUodmFyXzI1LCB2YXJfMjYsIHZhcl8xLA0KPiB2YXJfNTYsIDE1KTsNCj4gK3Z1aW50 OG0xX3QgdmFyXzE2ID0gX19yaXNjdl92bmNsaXB1X3d4X3U4bTFfbXUodmFyXzI1LCB2YXJfMjYs IHZhcl8xLA0KPiB2YXJfNTYsIDAsIDE1KTsNCj4gLy8gMTQzLCAxNDgsIDIwMiwgMjU1LCAxODgs IDI1NSwgMCwgMjU1LCA2LCAxODAsIDIxMSwgMjIwLCA3NCwgMjU1LCAyNTUNCj4gX19yaXNjdl92 c2V0dmxfZTE2bTIoMyk7DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvYnVnLTE2LkMNCj4gYi9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvYnVnLTE2LkMNCj4gaW5kZXggYzE5ZDYwNjI0ODMuLmQ5MGQyZDRkYzAxIDEw MDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVn LTE2LkMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1 Zy0xNi5DDQo+IEBAIC0zNTEsNyArMzUxLDcgQEAgdmJvb2wxX3QgdmFyXzY2ID0gX19yaXNjdl92 bXNlcV92eF9pOG04X2IxKHZhcl82OCwNCj4gdmFyXzY5LCA5OCk7DQo+IC8vIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsDQo+IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsDQo+IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsDQo+IDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDANCj4gX19yaXNjdl92c2V0dmxfZThtZjIoOCk7DQo+IC12dWludDhtZjJfdCB2YXJfMTkg PSBfX3Jpc2N2X3Zhc3VidV92eF91OG1mMl90dW11KHZhcl8yMCwgdmFyXzIxLCB2YXJfMjIsDQo+ IHZhcl83NSwgOCk7DQo+ICt2dWludDhtZjJfdCB2YXJfMTkgPSBfX3Jpc2N2X3Zhc3VidV92eF91 OG1mMl90dW11KHZhcl8yMCwgdmFyXzIxLCB2YXJfMjIsDQo+IHZhcl83NSwgMCwgOCk7DQo+IC8v IDE5NywgMjA2LCA0MiwgMjI4LCAxMDQsIDI1MCwgMjU1LCAxODYNCj4gdmJvb2wxNl90IHZhcl8x OCA9IF9fcmlzY3Zfdm1mbGVfdnZfZjY0bTRfYjE2X211KHZhcl8yNCwgdmFyXzI1LCB2YXJfMjYs DQo+IHZhcl8yNywgOCk7DQo+IEBAIC0zOTUsMTEgKzM5NSwxMSBAQCBfX3Jpc2N2X3ZzZXR2bF9l OG04KDEyMCk7DQo+IHZpbnQ4bThfdCB2YXJfMSA9IF9fcmlzY3Zfdnhvcl92dl9pOG04X3R1bXUo dmFyXzExLCB2YXJfMCwgdmFyXzIsIHZhcl8yLA0KPiAxMjApOw0KPiAvLyAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LA0KPiAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLA0KPiAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLA0KPiAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLA0KPiAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwDQo+IC12dWludDhtOF90IHZhcl84ID0gX19yaXNjdl92YXN1YnVfdnhf dThtOCh2YXJfNTksIHZhcl8xMywgMTIwKTsNCj4gK3Z1aW50OG04X3QgdmFyXzggPSBfX3Jpc2N2 X3Zhc3VidV92eF91OG04KHZhcl81OSwgdmFyXzEzLCAwLCAxMjApOw0KPiAvLyAyMTgsIDI0Niwg MjM5LCAyNDYsIDIzOCwgMTY2LCAxOSwgMTQsIDI0MiwgMSwgMjQxLCAyMTgsIDI0OSwgMTc5LCAy MTQsDQo+IDIwNCwgMTY2LCAyMTksIDI0NSwgMTc5LCAxNzksIDQsIDIyNCwgMTc4LCAyMDIsIDI1 MywgMjA2LCAxNjMsIDIzMCwgMjUxLA0KPiAyMTMsIDI1LCAxOSwgMTk1LCAyMzksIDE2OCwgMjM5 LCAxNywgMjM5LCAyMDUsIDE3MywgMjUxLCAyNDEsIDIwMiwgMjE5LA0KPiAyMjMsIDE3LCAxNjIs IDMsIDYsIDEzLCAxNywgMTcwLCAyMjksIDE3OCwgMjQ2LCAxODAsIDI0OSwgMTk1LCAyNTAsIDI0 MSwNCj4gMjI5LCAyMCwgMjQ5LCAxOSwgMTc0LCAxOTgsIDIyMSwgMjAwLCAxMSwgMTc3LCAxNjAs IDE4MCwgMjE2LCAxMSwgMTksIDE2MywNCj4gMTcsIDIwOSwgMTc0LCAxLCA5LCAyMDgsIDI0MSwg MTY5LCAxOTAsIDE3NiwgMTksIDE4NywgMTk4LCAyMTMsIDIwOCwgMjIsIDQsDQo+IDIzNywgMTgw LCAwLCAxODgsIDIwNCwgMjAzLCAxNzMsIDE4OCwgMjgsIDE4MCwgMTYyLCAyMTgsIDIyNywgMTYw LCAyMzAsDQo+IDIxNCwgMTc3LCAxNzIsIDI1NSwgMTUsIDIwNywgMTk5LCAyMCwgMTY1LCAxODAs IDIwNg0KPiBfX3Jpc2N2X3ZzZXR2bF9lOG04KDMxKTsNCj4gLXZpbnQ4bThfdCB2YXJfMTcgPSBf X3Jpc2N2X3Zzc3JhX3Z4X2k4bThfdHVtdSh2YXJfMzEsIHZhcl8xMiwgdmFyXzMyLA0KPiB2YXJf NzYsIDMxKTsNCj4gK3ZpbnQ4bThfdCB2YXJfMTcgPSBfX3Jpc2N2X3Zzc3JhX3Z4X2k4bThfdHVt dSh2YXJfMzEsIHZhcl8xMiwgdmFyXzMyLA0KPiB2YXJfNzYsIDAsIDMxKTsNCj4gLy8gNDEsIDY5 LCAtNTcsIDEwMiwgODYsIDEwMywgLTEyOCwgNCwgLTExOCwgLTEsIDEwOSwgNDAsIDcsIDI3LCA3 OSwgLTYzLA0KPiAzNSwgNzMsIDEsIDQyLCAtODUsIDEyNiwgMTA3LCA1MywgLTExNCwgMzksIDUz LCAxMCwgLTk0LCAtMjAsIDEyNSwgLTQ2LA0KPiAtNTIsIDk0LCAxNCwgLTc0LCAtOTcsIDI1LCAt NTksIDMsIDY4LCAtMTUsIC02MCwgODMsIDgwLCAtMTEzLCAtOTAsIC0xMTgsDQo+IDcsIC0zOCwg LTU3LCAtMTE0LCA4OCwgLTc2LCA4LCA0NCwgNDUsIDEyLCAtMjcsIDgzLCA0MywgNzcsIC05Mywg NzksIDYsDQo+IC0xNywgOTMsIDMzLCAyMiwgNiwgMTEzLCAtNSwgLTEzLCAyMCwgLTEwNiwgLTM2 LCAtNTcsIC0yMSwgLTEyNywgLTg5LCAxMDIsDQo+IC02MiwgLTkyLCAtMTI0LCA3MywgMTE4LCA0 MSwgLTEyMCwgOTQsIC0xMDAsIDEzLCAtMzQsIC04NiwgLTEwMywgMjYsIC01NywNCj4gLTE2LCAy MiwgLTQ4LCAtNzEsIDE1LCA0MCwgMjcsIC0xMjUsIC05NCwgLTkzLCAtOTMsIC0zLCAtMzMsIDYw LCAxNSwgLTI5LA0KPiAtMTYsIDcwLCAtMTUsIDMwLCAxMDgsIC0xMDUsIDMwLCAtNjUNCj4gX19y aXNjdl92c2V0dmxfZThtOCg5OCk7DQo+IEBAIC00MDcsNyArNDA3LDcgQEAgdmJvb2wxX3QgdmFy XzYgPSBfX3Jpc2N2X3Ztc2VxX3Z2X2k4bThfYjEodmFyXzUsDQo+IHZhcl8xMCwgOTgpOw0KPiAv LyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLA0KPiAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLA0KPiAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LA0KPiAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwDQo+IF9fcmlzY3ZfdnNldHZsX2U4bTgoMTIwKTsNCj4gLXZpbnQ4 bThfdCB2YXJfNCA9IF9fcmlzY3ZfdnNzcmFfdnZfaThtOF90dW11KHZhcl82MywgdmFyXzEsIHZh cl8xMCwNCj4gdmFyXzgsIDEyMCk7DQo+ICt2aW50OG04X3QgdmFyXzQgPSBfX3Jpc2N2X3Zzc3Jh X3Z2X2k4bThfdHVtdSh2YXJfNjMsIHZhcl8xLCB2YXJfMTAsDQo+IHZhcl84LCAwLCAxMjApOw0K PiAvLyAxNSwgLTIsIDAsIDAsIC0xLCAwLCAwLCAtMiwgMTgsIDAsIDEsIDAsIDIsIDEwLCAyLCAw LCAwLCAtOSwgMCwgMCwgMCwNCj4gMCwgMSwgMCwgMzEsIDIsIDAsIC01LCAwLCAzLCAtMiwgLTE3 LCAtMTIsIDAsIDAsIC0xLCAxLCA0NywgLTEsIDAsIDAsIC0xLA0KPiAzMywgMCwgMCwgMSwgMCwg MCwgLTEwLCAwLCAwLCA2MSwgMTgsIC0zLCAwLCAtMSwgMCwgMCwgMCwgMTQsIDAsIDMsIDAsIDAs DQo+IDAsIDAsIDAsIDAsIC01OSwgMCwgMCwgNTUsIDAsIDExLCAxNCwgMCwgMCwgMCwgMSwgMCwg MCwgMCwgLTEsIDE3LCAwLCAyLCAwLA0KPiAwLCAtNSwgLTEsIDEsIDAsIDEsIDYsIDAsIDAsIDEw NywgMCwgNywgMCwgMCwgMCwgNSwgNywgMCwgMCwgMCwgLTEsIDAsIDAsDQo+IC04LCAwLCAwLCAw LCAtMSwgMCwgLTgsIDEsIDAsIDANCj4gX19yaXNjdl92c2V0dmxfZThtOCgzMSk7DQo+IGRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE3LkMN Cj4gYi9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE3LkMNCj4g aW5kZXggY2RkM2NjM2UwYjguLmMyOWQ2Mzc5YWI1IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1 aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE3LkMNCj4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xNy5DDQo+IEBAIC0zNzUsNyArMzc1 LDcgQEAgdnVpbnQxNm0xX3QgdmFyXzggPSBfX3Jpc2N2X3Zvcl92dl91MTZtMV90dW11KHZhcl8x LA0KPiB2YXJfNDMsIHZhcl80NCwgdmFyXzQ1LCAxKTsNCj4gdmZsb2F0MzJtMl90IHZhcl8xMiA9 IF9fcmlzY3ZfdmZkaXZfdnZfZjMybTJfdHVtdSh2YXJfMSwgdmFyXzE2LCB2YXJfMTYsDQo+IHZh cl8xOCwgMSk7DQo+IC8vIDQuODQxMjc1MTAxMzQxODE4ZS0yOSwgNC44NDEyNzUxMDEzNDE4MThl LTI5LCA0Ljg0MTI3NTEwMTM0MTgxOGUtMjksDQo+IDQuODQxMjc1MTAxMzQxODE4ZS0yOSwgNC44 NDEyNzUxMDEzNDE4MThlLTI5DQo+IC12aW50OG1mMl90IHZhcl8xOSA9IF9fcmlzY3ZfdmFhZGRf dnZfaThtZjJfdHVtdSh2YXJfMSwgdmFyXzIwLCB2YXJfMjEsDQo+IHZhcl8yMiwgMSk7DQo+ICt2 aW50OG1mMl90IHZhcl8xOSA9IF9fcmlzY3ZfdmFhZGRfdnZfaThtZjJfdHVtdSh2YXJfMSwgdmFy XzIwLCB2YXJfMjEsDQo+IHZhcl8yMiwgMCwgMSk7DQo+IC8vIC0xMDgsIDM3LCAtMzQNCj4gX19y aXNjdl92c2U4X3ZfaThtZjIodmFyXzY2LCB2YXJfNiwgMSk7DQo+IGRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE4LkMNCj4gYi9nY2MvdGVz dHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE4LkMNCj4gaW5kZXggODY4ZWMx ZWY5MGYuLjcxZGVjOWYyMWM4IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2crKy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE4LkMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0xOC5DDQo+IEBAIC0xMjEsNyArMTIxLDcgQEAgYXNtIHZv bGF0aWxlICgidHR0Ijo6OiJtZW1vcnkiKTsNCj4gICAgaWYgKGNoZWNrKGssIGFiLCBhYSkpDQo+ ICAgICAgY2VyciA8PCAiY2hlY2sgOCBmYWlscyIgPDwgZW5kbDsNCj4gICAgdmJvb2w2NF90IHZh cl8yID0gX19yaXNjdl92bXNuZV92eF91MzJtZjJfYjY0X211KHZhcl81NSwgdmFyXzU2LCB2YXJf MywNCj4gYXUsIDIpOw0KPiAtICB2aW50MTZtZjRfdCB2YXJfMSA9IF9fcmlzY3ZfdnNzdWJfdnZf aTE2bWY0X211KHZhcl8yLCB2YXJfMCwgdmFyXzQsIGNnLA0KPiAyKTsNCj4gKyAgdmludDE2bWY0 X3QgdmFyXzEgPSBfX3Jpc2N2X3Zzc3ViX3Z2X2kxNm1mNF9tdSh2YXJfMiwgdmFyXzAsIHZhcl80 LCBjZywNCj4gMCwgMik7DQo+ICAgIHZpbnQxNm1mNF90IHZhcl81ID0gX19yaXNjdl92eG9yX3Z2 X2kxNm1mNF9tdSh2YXJfNDYsIHZhcl8xLCBidywgYngsIDIpOw0KPiAgICB2aW50MzJtZjJfdCB2 YXJfMTggPSBfX3Jpc2N2X3Z3bWFjY3N1X3Z2X2kzMm1mMihiZiwgdmFyXzEsIGJnLCAyKTsNCj4g ICAgdmludDhtZjhfdCB2YXJfNiA9IF9fcmlzY3Zfdm5jdnRfeF94X3dfaThtZjhfbXUodmFyXzgs IHZhcl83LCB2YXJfNSwgMSk7DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTE5LkMNCj4gYi9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvYnVnLTE5LkMNCj4gaW5kZXggYTZiYTk1ODA0MTYuLmZjNWUwOWI4OWZj IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv YnVnLTE5LkMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2J1Zy0xOS5DDQo+IEBAIC0xMzEsNyArMTMxLDcgQEANCj4gICB2dWludDY0bTFfdCB2YXJfOCA9 IF9fcmlzY3ZfdnJlZGFuZF92c191NjRtOF91NjRtMV90dW0odmFyXzEzLCB2YXJfNTgsDQo+IHZh cl8wLCB2YXJfNTksIDEpOw0KPiAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtOCh2YXJfNzQsIHZhcl8z LCAyKTsNCj4gICB2dWludDY0bThfdCB2YXJfMTAgPSBfX3Jpc2N2X3ZtYWRkX3Z2X3U2NG04X211 KHZhcl8xMywgdmFyXzYsIHZhcl81MSwNCj4gdmFyXzUyLCAxMyk7DQo+IC0gdnVpbnQ2NG04X3Qg dmFyXzE1ID0gX19yaXNjdl92c3N1YnVfdnZfdTY0bThfbXUodmFyXzMzLCB2YXJfNiwgdmFyXzM0 LA0KPiB2YXJfMzUsIDEzKTsNCj4gKyB2dWludDY0bThfdCB2YXJfMTUgPSBfX3Jpc2N2X3Zzc3Vi dV92dl91NjRtOF9tdSh2YXJfMzMsIHZhcl82LCB2YXJfMzQsDQo+IHZhcl8zNSwgMCwgMTMpOw0K PiAgIHZ1aW50NjRtMV90IHZhcl85ID0gX19yaXNjdl92YWRkX3Z2X3U2NG0xX211KHZhcl81NCwg dmFyXzgsIHZhcl81NSwNCj4gdmFyXzU2LCAxKTsNCj4gICB2dWludDY0bTFfdCB2YXJfMTEgPSBf X3Jpc2N2X3ZyZWR4b3JfdnNfdTY0bTRfdTY0bTFfdHVtKHZhcl80NiwgdmFyXzgsDQo+IHZhcl80 NywgdmFyXzQ4LCAxKTsNCj4gICBpZighY2hlY2sodmFyXzc0LCB2YXJfMTI5LCB2YXJfMTMwKSkg e2NlcnIgPDwgImNoZWNrIDEyOCBmYWlscyIgPDwgZW5kbDsNCj4gcmV0dXJuX3ZhbHVlID0gMTt9 DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv YnVnLTIwLkMNCj4gYi9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVn LTIwLkMNCj4gaW5kZXggMmE4NTkxZjFkM2UuLjgxZDBjZDc0NDY1IDEwMDY0NA0KPiAtLS0gYS9n Y2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTIwLkMNCj4gKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0yMC5DDQo+IEBAIC0x MzEsNyArMTMxLDcgQEANCj4gICB2dWludDY0bTFfdCB2YXJfOCA9IF9fcmlzY3ZfdnJlZGFuZF92 c191NjRtOF91NjRtMV90dW0odmFyXzEzLCB2YXJfNTgsDQo+IHZhcl8wLCB2YXJfNTksIDEpOw0K PiAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtOCh2YXJfNzQsIHZhcl8zLCAyKTsNCj4gICB2dWludDY0 bThfdCB2YXJfMTAgPSBfX3Jpc2N2X3ZtYWNjX3Z2X3U2NG04X211KHZhcl8xMywgdmFyXzYsIHZh cl81MSwNCj4gdmFyXzUyLCAxMyk7DQo+IC0gdnVpbnQ2NG04X3QgdmFyXzE1ID0gX19yaXNjdl92 c3N1YnVfdnZfdTY0bThfbXUodmFyXzMzLCB2YXJfNiwgdmFyXzM0LA0KPiB2YXJfMzUsIDEzKTsN Cj4gKyB2dWludDY0bThfdCB2YXJfMTUgPSBfX3Jpc2N2X3Zzc3VidV92dl91NjRtOF9tdSh2YXJf MzMsIHZhcl82LCB2YXJfMzQsDQo+IHZhcl8zNSwgMCwgMTMpOw0KPiAgIHZ1aW50NjRtMV90IHZh cl85ID0gX19yaXNjdl92YWRkX3Z2X3U2NG0xX211KHZhcl81NCwgdmFyXzgsIHZhcl81NSwNCj4g dmFyXzU2LCAxKTsNCj4gICB2dWludDY0bTFfdCB2YXJfMTEgPSBfX3Jpc2N2X3ZyZWR4b3JfdnNf dTY0bTRfdTY0bTFfdHVtKHZhcl80NiwgdmFyXzgsDQo+IHZhcl80NywgdmFyXzQ4LCAxKTsNCj4g ICBpZighY2hlY2sodmFyXzc0LCB2YXJfMTI5LCB2YXJfMTMwKSkge2NlcnIgPDwgImNoZWNrIDEy OCBmYWlscyIgPDwgZW5kbDsNCj4gcmV0dXJuX3ZhbHVlID0gMTt9DQo+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTIxLkMNCj4gYi9nY2Mv dGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTIxLkMNCj4gaW5kZXggNzdl MDZiZjFmMTAuLjVjNmU4MjgzYzQ4IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2crKy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTIxLkMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0yMS5DDQo+IEBAIC0xMzEsNyArMTMxLDcgQEANCj4g ICB2dWludDY0bTFfdCB2YXJfOCA9IF9fcmlzY3ZfdnJlZGFuZF92c191NjRtOF91NjRtMV90dW0o dmFyXzEzLCB2YXJfNTgsDQo+IHZhcl8wLCB2YXJfNTksIDEpOw0KPiAgIF9fcmlzY3ZfdnNlNjRf dl9pNjRtOCh2YXJfNzQsIHZhcl8zLCAyKTsNCj4gICB2dWludDY0bThfdCB2YXJfMTAgPSBfX3Jp c2N2X3ZubXN1Yl92dl91NjRtOF9tdSh2YXJfMTMsIHZhcl82LCB2YXJfNTEsDQo+IHZhcl81Miwg MTMpOw0KPiAtIHZ1aW50NjRtOF90IHZhcl8xNSA9IF9fcmlzY3ZfdnNzdWJ1X3Z2X3U2NG04X211 KHZhcl8zMywgdmFyXzYsIHZhcl8zNCwNCj4gdmFyXzM1LCAxMyk7DQo+ICsgdnVpbnQ2NG04X3Qg dmFyXzE1ID0gX19yaXNjdl92c3N1YnVfdnZfdTY0bThfbXUodmFyXzMzLCB2YXJfNiwgdmFyXzM0 LA0KPiB2YXJfMzUsIDAsIDEzKTsNCj4gICB2dWludDY0bTFfdCB2YXJfOSA9IF9fcmlzY3ZfdmFk ZF92dl91NjRtMV9tdSh2YXJfNTQsIHZhcl84LCB2YXJfNTUsDQo+IHZhcl81NiwgMSk7DQo+ICAg dnVpbnQ2NG0xX3QgdmFyXzExID0gX19yaXNjdl92cmVkeG9yX3ZzX3U2NG00X3U2NG0xX3R1bSh2 YXJfNDYsIHZhcl84LA0KPiB2YXJfNDcsIHZhcl80OCwgMSk7DQo+ICAgaWYoIWNoZWNrKHZhcl83 NCwgdmFyXzEyOSwgdmFyXzEzMCkpIHtjZXJyIDw8ICJjaGVjayAxMjggZmFpbHMiIDw8IGVuZGw7 DQo+IHJldHVybl92YWx1ZSA9IDE7fQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nKysu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0yMi5DDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0yMi5DDQo+IGluZGV4IDhiYTE4YTAyYjgzLi5hYWFjYjMy MGUwYSAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2J1Zy0yMi5DDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZysrLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9idWctMjIuQw0KPiBAQCAtMTMxLDcgKzEzMSw3IEBADQo+ICAgdnVpbnQ2NG0xX3QgdmFy XzggPSBfX3Jpc2N2X3ZyZWRhbmRfdnNfdTY0bThfdTY0bTFfdHVtKHZhcl8xMywgdmFyXzU4LA0K PiB2YXJfMCwgdmFyXzU5LCAxKTsNCj4gICBfX3Jpc2N2X3ZzZTY0X3ZfaTY0bTgodmFyXzc0LCB2 YXJfMywgMik7DQo+ICAgdnVpbnQ2NG04X3QgdmFyXzEwID0gX19yaXNjdl92bm1zYWNfdnZfdTY0 bThfbXUodmFyXzEzLCB2YXJfNiwgdmFyXzUxLA0KPiB2YXJfNTIsIDEzKTsNCj4gLSB2dWludDY0 bThfdCB2YXJfMTUgPSBfX3Jpc2N2X3Zzc3VidV92dl91NjRtOF9tdSh2YXJfMzMsIHZhcl82LCB2 YXJfMzQsDQo+IHZhcl8zNSwgMTMpOw0KPiArIHZ1aW50NjRtOF90IHZhcl8xNSA9IF9fcmlzY3Zf dnNzdWJ1X3Z2X3U2NG04X211KHZhcl8zMywgdmFyXzYsIHZhcl8zNCwNCj4gdmFyXzM1LCAwLCAx Myk7DQo+ICAgdnVpbnQ2NG0xX3QgdmFyXzkgPSBfX3Jpc2N2X3ZhZGRfdnZfdTY0bTFfbXUodmFy XzU0LCB2YXJfOCwgdmFyXzU1LA0KPiB2YXJfNTYsIDEpOw0KPiAgIHZ1aW50NjRtMV90IHZhcl8x MSA9IF9fcmlzY3ZfdnJlZHhvcl92c191NjRtNF91NjRtMV90dW0odmFyXzQ2LCB2YXJfOCwNCj4g dmFyXzQ3LCB2YXJfNDgsIDEpOw0KPiAgIGlmKCFjaGVjayh2YXJfNzQsIHZhcl8xMjksIHZhcl8x MzApKSB7Y2VyciA8PCAiY2hlY2sgMTI4IGZhaWxzIiA8PCBlbmRsOw0KPiByZXR1cm5fdmFsdWUg PSAxO30NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9idWctMjMuQw0KPiBiL2djYy90ZXN0c3VpdGUvZysrLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9idWctMjMuQw0KPiBpbmRleCAwNjEwNjNiZjQ0ZC4uZDc1MGE3N2JkNzcgMTAwNjQ0DQo+IC0t LSBhL2djYy90ZXN0c3VpdGUvZysrLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctMjMuQw0KPiAr KysgYi9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTIzLkMNCj4g QEAgLTM1NCw3ICszNTQsNyBAQCB2Ym9vbDY0X3QgdmFyXzYzID0gX19yaXNjdl92bXNlcV92eF91 OG1mOF9iNjQodmFyXzY5LA0KPiB2YXJfNzAsIDIpOw0KPiB2dWludDhtZjhfdCB2YXJfMTkgPSBf X3Jpc2N2X3ZzdWJfdnhfdThtZjhfdHVtdSh2YXJfMjAsIHZhcl8yMSwgdmFyXzIyLA0KPiB2YXJf NzMsIDIpOw0KPiAvLyAyMjUsIDk2DQo+IC12dWludDMybWYyX3QgdmFyXzE2ID0gX19yaXNjdl92 c3N1YnVfdnhfdTMybWYyX3R1bXUodmFyXzMzLCB2YXJfMzQsDQo+IHZhcl8zNSwgdmFyXzc0LCAy KTsNCj4gK3Z1aW50MzJtZjJfdCB2YXJfMTYgPSBfX3Jpc2N2X3Zzc3VidV92eF91MzJtZjJfdHVt dSh2YXJfMzMsIHZhcl8zNCwNCj4gdmFyXzM1LCB2YXJfNzQsIDAsIDIpOw0KPiAvLyAzMDc3NTU3 MDQyLCA0MTg2MTM5ODczDQo+IF9fcmlzY3ZfdnNldHZsX2U2NG00KDIpOw0KPiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy0zLkMNCj4gYi9n Y2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTMuQw0KPiBpbmRleCA4 MTRhNjA4NGVjZC4uMWM3ZTAxODFmNGEgMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZysr LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctMy5DDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZysr LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctMy5DDQo+IEBAIC0zMDksNyArMzA5LDcgQEAgX19y aXNjdl92c2V0dmxfZTMybTIoOCk7DQo+IHZib29sMTZfdCB2YXJfNDkgPSBfX3Jpc2N2X3Ztc2Vx X3Z2X2kzMm0yX2IxNih2YXJfNTAsIHZhcl81MSwgOCk7DQo+IC8vIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsDQo+ IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsDQo+IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsDQo+IDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsDQo+IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsDQo+IDAsIDAsIDAsIDANCj4gLXZpbnQxNm0xX3QgdmFy XzEzID0gX19yaXNjdl92c2FkZF92eF9pMTZtMSh2YXJfMCwgdmFyXzYwLCA4KTsNCj4gK3ZpbnQx Nm0xX3QgdmFyXzEzID0gX19yaXNjdl92c2FkZF92eF9pMTZtMSh2YXJfMCwgdmFyXzYwLCAwLCA4 KTsNCj4gLy8gLTkzNjQsIDMyNzY3LCAxMTUzOCwgLTEwNTM2LCAzMjc2NywgMzA5MDYsIDMwOTA2 LCA0OTc3DQo+IF9fcmlzY3ZfdnNldHZsX2UxNm04KDcpOw0KPiBAQCAtMzI4LDcgKzMyOCw3IEBA IHZ1aW50MzJtMl90IHZhcl8xMiA9DQo+IF9fcmlzY3ZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtMl9t dSh2YXJfMzUsIHZhcl8zNiwgdmFyXzM3LCA4DQo+IF9fcmlzY3ZfdnNlMTZfdl9pMTZtMSh2YXJf NzksIHZhcl8xMywgOCk7DQo+IF9fcmlzY3ZfdnNldHZsX2UxNm04KDcpOw0KPiAtdmludDE2bThf dCB2YXJfOSA9IF9fcmlzY3ZfdmFhZGRfdnhfaTE2bThfbXUodmFyXzE1LCB2YXJfNDMsIHZhcl80 NCwNCj4gdmFyXzYzLCA3KTsNCj4gK3ZpbnQxNm04X3QgdmFyXzkgPSBfX3Jpc2N2X3ZhYWRkX3Z4 X2kxNm04X211KHZhcl8xNSwgdmFyXzQzLCB2YXJfNDQsDQo+IHZhcl82MywgMCwgNyk7DQo+IC8v IC02NDQyLCAyNzU3LCAxNDM3LCAtMTgzNDAsIC0xMjY2OCwgLTI3NTUxLCAyOTY0OA0KPiBfX3Jp c2N2X3ZzZXR2bF9lMzJtMig4KTsNCj4gQEAgLTM0Nyw3ICszNDcsNyBAQCB2aW50MTZtOF90IHZh cl80ID0gX19yaXNjdl92bWVyZ2VfdnhtX2kxNm04KHZhcl80OCwNCj4gdmFyXzgsIHZhcl8xMSwg Nyk7DQo+IC8vIC02NDQyLCAtNjQ0MiwgLTY0NDIsIC02NDQyLCAtNjQ0MiwgLTY0NDIsIC02NDQy DQo+IF9fcmlzY3ZfdnNldHZsX2UxNm0xKDEpOw0KPiAtdmludDE2bTFfdCB2YXJfNiA9IF9fcmlz Y3ZfdmFhZGRfdnhfaTE2bTEodmFyXzE0LCB2YXJfOCwgMSk7DQo+ICt2aW50MTZtMV90IHZhcl82 ID0gX19yaXNjdl92YWFkZF92eF9pMTZtMSh2YXJfMTQsIHZhcl84LCAwLCAxKTsNCj4gLy8gLTY1 NTQNCj4gaWYoIWNoZWNrKHZhcl85NiwgdmFyXzEwNywgdmFyXzEwOCkpIHtjZXJyIDw8ICJjaGVj ayAxMDYgZmFpbHMiIDw8IGVuZGw7DQo+IHJldHVybl92YWx1ZSA9IDE7fQ0KPiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy01LkMNCj4gYi9n Y2MvdGVzdHN1aXRlL2crKy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTUuQw0KPiBpbmRleCA1 OTFmZGE1NzYyYi4uY2FhODI2YTU1ODcgMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZysr LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctNS5DDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZysr LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctNS5DDQo+IEBAIC0zMDQsNyArMzA0LDcgQEAgdnVp bnQ4bWY4X3QgdmFyXzU5ID0gX19yaXNjdl92bGU4X3ZfdThtZjgodmFyXzY2LCAxKTsNCj4gLy8g NTQNCj4gX19yaXNjdl92c2V0dmxfZThtZjgoMik7DQo+IC12aW50OG1mOF90IHZhcl8xOSA9IF9f cmlzY3ZfdnNtdWxfdnhfaThtZjgodmFyXzIwLCB2YXJfNjMsIDIpOw0KPiArdmludDhtZjhfdCB2 YXJfMTkgPSBfX3Jpc2N2X3ZzbXVsX3Z4X2k4bWY4KHZhcl8yMCwgdmFyXzYzLCAwLDIpOw0KPiAv LyA3OSwgMjgNCj4gX19yaXNjdl92c2V0dmxfZTE2bWYyKDIpOw0KPiBAQCAtMzU4LDcgKzM1OCw3 IEBAIHZib29sNjRfdCB2YXJfMCA9IF9fcmlzY3Zfdm1zbmVfdnhfaTE2bWY0X2I2NCh2YXJfOSwN Cj4gdmFyXzE2LCAyKTsNCj4gLy8gMSwgMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwNCj4gMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwN Cj4gMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwNCj4gMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwNCj4gMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwNCj4gMCwgMCwgMCwgMA0KPiBfX3Jpc2N2X3ZzZXR2bF9lOG1mOCgxKTsNCj4gLXZ1aW50 OG1mOF90IHZhcl8xID0gX19yaXNjdl92bmNsaXB1X3d4X3U4bWY4X211KHZhcl8wLCB2YXJfNTks IHZhcl8yLA0KPiB2YXJfNjUsIDEpOw0KPiArdnVpbnQ4bWY4X3QgdmFyXzEgPSBfX3Jpc2N2X3Zu Y2xpcHVfd3hfdThtZjhfbXUodmFyXzAsIHZhcl81OSwgdmFyXzIsDQo+IHZhcl82NSwgMCwgMSk7 DQo+IC8vIDI1NQ0KPiBfX3Jpc2N2X3ZzZXR2bF9lOG1mOCgyKTsNCj4gZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZysrLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9idWctNi5DDQo+IGIvZ2NjL3Rl c3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2J1Zy02LkMNCj4gaW5kZXggMmRjMDVh YjkyMTEuLmVjNmUyOTAzODg0IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2crKy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTYuQw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2crKy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTYuQw0KPiBAQCAtMjkyLDcgKzI5Miw3IEBAIHZpbnQ4bThf dCB2YXJfMTAgPSBfX3Jpc2N2X3ZtdWxoX3Z2X2k4bTgodmFyXzExLA0KPiB2YXJfMzgsIDQ1KTsN Cj4gLy8gLTksIC0zLCA5LCAtMywgMywgLTM1LCA1LCAzLCAwLCAxNywgLTEsIC0xMCwgNiwgLTEw LCAyMSwgLTE4LCAzNywgMjQsDQo+IDE1LCAtOCwgLTI5LCAxOCwgMCwgLTcsIC02LCAtMiwgLTQ2 LCA0NCwgMywgLTUsIC02LCAtOSwgMjEsIC0zLCAtNDIsIC05LCA5LA0KPiAtMTIsIC0yLCAtMTgs IDcsIDQsIC0xLCAtMSwgMzkNCj4gaWYoIWNoZWNrKHZhcl82MiwgdmFyXzgwLCB2YXJfODEpKSB7 Y2VyciA8PCAiY2hlY2sgNzkgZmFpbHMiIDw8IGVuZGw7DQo+IHJldHVybl92YWx1ZSA9IDE7fQ0K PiAtdmludDhtOF90IHZhcl84ID0gX19yaXNjdl92YXN1Yl92eF9pOG04KHZhcl8xMCwgdmFyXzEy LCA0NSk7DQo+ICt2aW50OG04X3QgdmFyXzggPSBfX3Jpc2N2X3Zhc3ViX3Z4X2k4bTgodmFyXzEw LCB2YXJfMTIsIDAsIDQ1KTsNCj4gLy8gLTMyLCAtMjksIC0yMywgLTI5LCAtMjYsIC00NSwgLTI1 LCAtMjYsIC0yOCwgLTE5LCAtMjgsIC0zMywgLTI1LCAtMzMsDQo+IC0xNywgLTM3LCAtOSwgLTE2 LCAtMjAsIC0zMiwgLTQyLCAtMTksIC0yOCwgLTMxLCAtMzEsIC0yOSwgLTUxLCAtNiwgLTI2LA0K PiAtMzAsIC0zMSwgLTMyLCAtMTcsIC0yOSwgLTQ5LCAtMzIsIC0yMywgLTM0LCAtMjksIC0zNywg LTI0LCAtMjYsIC0yOCwgLTI4LA0KPiAtOA0KPiBfX3Jpc2N2X3ZzZThfdl9pOG04X20odmFyXzE1 LCB2YXJfNjMsIHZhcl84LCA0NSk7DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYnVnLTguQw0KPiBiL2djYy90ZXN0c3VpdGUvZysrLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9idWctOC5DDQo+IGluZGV4IDdlMWQ2ZGJhYzdjLi45NzQ1OWM2YjY2 NiAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2J1Zy04LkMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2J1Zy04LkMNCj4gQEAgLTM3OSw3ICszNzksNyBAQCBpZighY2hlY2sodmFyXzg3LCB2YXJfMTIy LCB2YXJfMTIzKSkge2NlcnIgPDwgImNoZWNrDQo+IDEyMSBmYWlscyIgPDwgZW5kbDsgcmV0dXJu Xw0KPiB2aW50OG00X3QgdmFyXzUgPSBfX3Jpc2N2X3Zuc3JhX3d2X2k4bTQodmFyXzEyLCB2YXJf NDgsIDQzKTsNCj4gLy8gMCwgLTIsIC01LCAtNywgMCwgLTMsIC0xLCAtMSwgMCwgMCwgLTUsIC05 MCwgLTEsIDAsIC0xNSwgLTEsIDAsIDAsIDAsDQo+IDAsIDAsIDAsIC0zLCAtMSwgLTMsIDAsIDAs IC0xMywgMCwgLTEsIC0xLCAtMSwgMCwgLTEsIDM5LCAwLCAwLCAtMiwgMCwgMCwNCj4gLTI0LCAt NDUsIDENCj4gLXZpbnQxNm04X3QgdmFyXzQgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2kxNm04X211KHZh cl82LCB2YXJfMTIsIHZhcl80OSwNCj4gdmFyXzEwLCA0Myk7DQo+ICt2aW50MTZtOF90IHZhcl80 ID0gX19yaXNjdl92c3N1Yl92eF9pMTZtOF9tdSh2YXJfNiwgdmFyXzEyLCB2YXJfNDksDQo+IHZh cl8xMCwgMCwgNDMpOw0KPiAvLyAtMjc5MjEsIC0yNTA1MiwgLTE3LCAtMjAzMzcsIDE1MDU0LCAx MzgyLCAtMTIsIC0xNiwgMTYxNTksIC0zMjc2OCwNCj4gMTc4MzIsIC0xMjY0NiwgMTY3NDYsIDIw LCAtMTUsIC0xNiwgNCwgNzc5OCwgMTQ5NjcsIDMsIC0yOTkxNiwgMTEsIC02MTY4LA0KPiAtMzI3 NjgsIDE0MzYxLCAtMTQwMjMsIC0zMjc2OCwgLTEyNjQ2LCAxMCwgLTEyNjQ2LCAxODc0OCwgLTEy NjQ2LCA4NDczLA0KPiAtMzI3NjgsIC0zMjc2OCwgMTYsIC0zMjc2OCwgLTE0NzIwLCAtMTE0Nzks IDY5ODUsIC0yNDU5MSwgLTI4MjQzLCAxMQ0KPiBfX3Jpc2N2X3ZzZXR2bF9lMTZtOCgxNik7DQo+ IGRpZmYgLS1naXQNCj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv Ymlub3BfdnhfY29uc3RyYWludC0xMDAuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwMC5jDQo+IGluZGV4IDY2N2E3NjU2 Y2UxLi5jNzI2N2ZjYmZjZSAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAwLmMNCj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAw LmMNCj4gQEAgLTYsOCArNiw4IEBAIHZvaWQgZiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0 X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdmludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2NF92X2k2 NG0xIChpbiArIDEsIDQpOw0KPiAgICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X2k2 NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c2Fk ZF92eF9pNjRtMSAodjIsIDB4QUFBQUFBQUFBQUFBQUFBQSwgNCk7DQo+IC0gIHZpbnQ2NG0xX3Qg djQgPSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xX3R1ICh2MywgdjIsIDB4QUFBQUFBQUFBQUFBQUFB QSwNCj4gNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2 MiwgMHhBQUFBQUFBQUFBQUFBQUFBLCAwLDQpOw0KPiArICB2aW50NjRtMV90IHY0ID0gX19yaXNj dl92c2FkZF92eF9pNjRtMV90dSAodjMsIHYyLCAweEFBQUFBQUFBQUFBQUFBQUEsDQo+IDAsNCk7 DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IGRp ZmYgLS1naXQNCj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlu b3BfdnhfY29uc3RyYWludC0xMDEuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwMS5jDQo+IGluZGV4IGVlZmRmNDU1YmNh Li4zNjk0YTk1ZWQyNCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAxLmMNCj4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAxLmMN Cj4gQEAgLTYsOCArNiw4IEBAIHZvaWQgZiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0X3Qg eCwgaW50IG4pDQo+IHsNCj4gICAgdmludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2NF92X2k2NG0x IChpbiArIDEsIDQpOw0KPiAgICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X2k2NG0x X3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZF92 eF9pNjRtMSAodjIsIHgsIDQpOw0KPiAtICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZF92 eF9pNjRtMV90dSAodjMsIHYyLCB4LCA0KTsNCj4gKyAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3Zf dnNhZGRfdnhfaTY0bTEgKHYyLCB4LCAwLDQpOw0KPiArICB2aW50NjRtMV90IHY0ID0gX19yaXNj dl92c2FkZF92eF9pNjRtMV90dSAodjMsIHYyLCB4LCAwLDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0 X3ZfaTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAy LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3Bfdnhf Y29uc3RyYWludC0xMDIuYw0KPiBpbmRleCA0YjI0Yjk3MWNiYS4uYjY1Zjk5MzU2OTIgMTAwNjQ0 DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92 eF9jb25zdHJhaW50LTEwMi5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwMi5jDQo+IEBAIC03LDggKzcsOCBAQCB2 b2lkIGYgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgsIGludCBuKQ0KPiAgICBmb3Ig KGludCBpID0gMDsgaSA8IG47IGkrKykgew0KPiAgICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3Zf dmxlNjRfdl9pNjRtMSAoaW4gKyBpICsgMSwgNCk7DQo+ICAgICAgdmludDY0bTFfdCB2MiA9IF9f cmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwgaW4gKyBpICsgMiwgNCk7DQo+IC0gICAgdmludDY0 bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYyLCB4LCA0KTsNCj4gLSAgICB2aW50 NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZF92eF9pNjRtMV90dSAodjMsIHYyLCB4LCA0KTsNCj4g KyAgICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAodjIsIHgsIDAsNCk7 DQo+ICsgICAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTFfdHUgKHYzLCB2 MiwgeCwgMCw0KTsNCj4gICAgICBfX3Jpc2N2X3ZzZTY0X3ZfaTY0bTEgKG91dCArIGkgKyAyLCB2 NCwgNCk7DQo+ICAgIH0NCj4gfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTAzLmMNCj4gYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0x MDMuYw0KPiBpbmRleCA3ZmZlZGQ1Y2ViOS4uZmI0MDFiZDE5NzggMTAwNjQ0DQo+IC0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50 LTEwMy5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9i aW5vcF92eF9jb25zdHJhaW50LTEwMy5jDQo+IEBAIC0xNSw4ICsxNSw4IEBAIHZvaWQgZjAgKHZv aWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZ1aW50NjRt MV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZ1aW50NjRt MV90IHYyID0gX19yaXNjdl92bGU2NF92X3U2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2 dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MiwgLTE2LCA0KTsNCj4g LSAgdnVpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjMsIC0xNiwgNCk7 DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYyLCAtMTYs IDAsNCk7DQo+ICsgIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYz LCAtMTYsIDAsNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl91NjRtMSAob3V0ICsgMiwgdjQsIDQp Ow0KPiB9DQo+IEBAIC0zMiw4ICszMiw4IEBAIHZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0 LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZ1aW50NjRtMV90IHYgPSBfX3Jpc2N2X3Zs ZTY0X3ZfdTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZ1aW50NjRtMV90IHYyID0gX19yaXNjdl92 bGU2NF92X3U2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2MyA9IF9f cmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MiwgMTUsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2NCA9 IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MywgMTUsIDQpOw0KPiArICB2dWludDY0bTFfdCB2 MyA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MiwgMTUsIDAsNCk7DQo+ICsgIHZ1aW50NjRt MV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYzLCAxNSwgMCw0KTsNCj4gICAgX19y aXNjdl92c2U2NF92X3U2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gQEAgLTQ5LDggKzQ5 LDggQEAgdm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0X3QgeCwgaW50IG4pDQo+ IHsNCj4gICAgdnVpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMSAoaW4gKyAxLCA0 KTsNCj4gICAgdnVpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTFfdHUgKHYsIGlu ICsgMiwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEg KHYyLCAxNiwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0 bTEgKHYzLCAxNiwgNCk7DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZHVfdnhf dTY0bTEgKHYyLCAxNiwgMCw0KTsNCj4gKyAgdnVpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3ZzYWRk dV92eF91NjRtMSAodjMsIDE2LCAwLDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0X3ZfdTY0bTEgKG91 dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBAQCAtNjYsOCArNjYsOCBAQCB2b2lkIGYzICh2b2lkICog aW4sIHZvaWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2dWludDY0bTFfdCB2 ID0gX19yaXNjdl92bGU2NF92X3U2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2dWludDY0bTFfdCB2 MiA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdnVpbnQ2 NG0xX3QgdjMgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjIsIDB4QUFBQUFBQUEsIDQpOw0K PiAtICB2dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MywgMHhBQUFB QUFBQSwgNCk7DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEg KHYyLCAweEFBQUFBQUFBLCAwLDQpOw0KPiArICB2dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNh ZGR1X3Z4X3U2NG0xICh2MywgMHhBQUFBQUFBQSwgMCw0KTsNCj4gICAgX19yaXNjdl92c2U2NF92 X3U2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gQEAgLTgzLDggKzgzLDggQEAgdm9pZCBm NCAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdnVp bnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMSAoaW4gKyAxLCA0KTsNCj4gICAgdnVp bnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+ IC0gIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYyLCAweEFBQUFB QUFBQUFBQUFBQUEsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGR1X3Z4 X3U2NG0xICh2MywgMHhBQUFBQUFBQUFBQUFBQUFBLCA0KTsNCj4gKyAgdnVpbnQ2NG0xX3QgdjMg PSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjIsIDB4QUFBQUFBQUFBQUFBQUFBQSwgMCw0KTsN Cj4gKyAgdnVpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjMsIDB4QUFB QUFBQUFBQUFBQUFBQSwgMCw0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X3U2NG0xIChvdXQgKyAy LCB2NCwgNCk7DQo+IH0NCj4gQEAgLTEwMCw4ICsxMDAsOCBAQCB2b2lkIGY1ICh2b2lkICogaW4s IHZvaWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2dWludDY0bTFfdCB2ID0g X19yaXNjdl92bGU2NF92X3U2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2dWludDY0bTFfdCB2MiA9 IF9fcmlzY3ZfdmxlNjRfdl91NjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdnVpbnQ2NG0x X3QgdjMgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjIsIDB4QUFBQUFBQUFBQUFBQUFBQSwg NCk7DQo+IC0gIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYzLCAw eEFBQUFBQUFBQUFBQUFBQUEsIDQpOw0KPiArICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNh ZGR1X3Z4X3U2NG0xICh2MiwgMHhBQUFBQUFBQUFBQUFBQUFBLCAwLDQpOw0KPiArICB2dWludDY0 bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MywgMHhBQUFBQUFBQUFBQUFBQUFB LCAwLDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0X3ZfdTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4g fQ0KPiBAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgZjYgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBp bnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZ1aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0 X3ZfdTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZ1aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2 NF92X3U2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2MyA9IF9fcmlz Y3ZfdnNhZGR1X3Z4X3U2NG0xICh2MiwgeCwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHY0ID0gX19y aXNjdl92c2FkZHVfdnhfdTY0bTEgKHYzLCB4LCA0KTsNCj4gKyAgdnVpbnQ2NG0xX3QgdjMgPSBf X3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjIsIHgsIDAsNCk7DQo+ICsgIHZ1aW50NjRtMV90IHY0 ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYzLCB4LCAwLDQpOw0KPiAgICBfX3Jpc2N2X3Zz ZTY0X3ZfdTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQt MTA0LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3Bf dnhfY29uc3RyYWludC0xMDQuYw0KPiBpbmRleCA2MTIyMTNhNjAzNi4uNDA4MzU5ZjI5YzQgMTAw NjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5v cF92eF9jb25zdHJhaW50LTEwNC5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwNC5jDQo+IEBAIC0xNSw4ICsxNSw4 IEBAIHZvaWQgZjAgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7 DQo+ICAgIHZ1aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTEgKGluICsgMSwgNCk7 DQo+ICAgIHZ1aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X3U2NG0xX3R1ICh2LCBpbiAr IDIsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2 MiwgLTE2LCA0KTsNCj4gLSAgdnVpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRt MSAodjMsIC0xNiwgNCk7DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZHVfdnhf dTY0bTEgKHYyLCAtMTYsIDAsNCk7DQo+ICsgIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2Fk ZHVfdnhfdTY0bTEgKHYzLCAtMTYsIDAsNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl91NjRtMSAo b3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IEBAIC0zMiw4ICszMiw4IEBAIHZvaWQgZjEgKHZvaWQg KiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZ1aW50NjRtMV90 IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZ1aW50NjRtMV90 IHYyID0gX19yaXNjdl92bGU2NF92X3U2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2dWlu dDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MiwgMTUsIDQpOw0KPiAtICB2 dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MywgMTUsIDQpOw0KPiAr ICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MiwgMTUsIDAsNCk7 DQo+ICsgIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYzLCAxNSwg MCw0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X3U2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+IH0N Cj4gQEAgLTQ5LDggKzQ5LDggQEAgdm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0 X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdnVpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl91 NjRtMSAoaW4gKyAxLCA0KTsNCj4gICAgdnVpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3Zf dTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92 c2FkZHVfdnhfdTY0bTEgKHYyLCAxNiwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHY0ID0gX19yaXNj dl92c2FkZHVfdnhfdTY0bTEgKHYzLCAxNiwgNCk7DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19y aXNjdl92c2FkZHVfdnhfdTY0bTEgKHYyLCAxNiwgMCw0KTsNCj4gKyAgdnVpbnQ2NG0xX3QgdjQg PSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjMsIDE2LCAwLDQpOw0KPiAgICBfX3Jpc2N2X3Zz ZTY0X3ZfdTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBAQCAtNjYsNyArNjYsNyBAQCB2 b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAg ICB2dWludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2NF92X3U2NG0xIChpbiArIDEsIDQpOw0KPiAg ICB2dWludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMV90dSAodiwgaW4gKyAyLCA0 KTsNCj4gLSAgdnVpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjIsIDB4 QUFBQUFBQSwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0 bTEgKHYzLCAweEFBQUFBQUEsIDQpOw0KPiArICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNh ZGR1X3Z4X3U2NG0xICh2MiwgMHhBQUFBQUFBLCAwLDQpOw0KPiArICB2dWludDY0bTFfdCB2NCA9 IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MywgMHhBQUFBQUFBLCAwLDQpOw0KPiAgICBfX3Jp c2N2X3ZzZTY0X3ZfdTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBkaWZmIC0tZ2l0DQo+ IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0 cmFpbnQtMTA1LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv Ymlub3BfdnhfY29uc3RyYWludC0xMDUuYw0KPiBpbmRleCA4NjgyNWMwODhiMS4uYzZkMzk4MWZk ODMgMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9iaW5vcF92eF9jb25zdHJhaW50LTEwNS5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwNS5jDQo+IEBAIC02LDgg KzYsOCBAQCB2b2lkIGYgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0K PiB7DQo+ICAgIHZ1aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTEgKGluICsgMSwg NCk7DQo+ICAgIHZ1aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X3U2NG0xX3R1ICh2LCBp biArIDIsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0x ICh2MiwgMHhBQUFBQUFBQSwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2Fk ZHVfdnhfdTY0bTFfdHUgKHYzLCB2MiwgMHhBQUFBQUFBQSwgNCk7DQo+ICsgIHZ1aW50NjRtMV90 IHYzID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYyLCAweEFBQUFBQUFBLCAwLCA0KTsNCj4g KyAgdnVpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMV90dSAodjMsIHYyLCAw eEFBQUFBQUFBLCAwLCA0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X3U2NG0xIChvdXQgKyAyLCB2 NCwgNCk7DQo+IH0NCj4gZGlmZiAtLWdpdA0KPiBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwNi5jDQo+IGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTA2LmMNCj4g aW5kZXggOTRiZmY2OGJhNWUuLjk2M2ExNTc5NTA0IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMDYuYw0K PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3Bfdnhf Y29uc3RyYWludC0xMDYuYw0KPiBAQCAtNiw4ICs2LDggQEAgdm9pZCBmICh2b2lkICogaW4sIHZv aWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2dWludDY0bTFfdCB2ID0gX19y aXNjdl92bGU2NF92X3U2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2dWludDY0bTFfdCB2MiA9IF9f cmlzY3ZfdmxlNjRfdl91NjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdnVpbnQ2NG0xX3Qg djMgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjIsIDB4QUFBQUFBQUFBQUFBQUFBQSwgNCk7 DQo+IC0gIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTFfdHUgKHYzLCB2 MiwNCj4gMHhBQUFBQUFBQUFBQUFBQUFBLCA0KTsNCj4gKyAgdnVpbnQ2NG0xX3QgdjMgPSBfX3Jp c2N2X3ZzYWRkdV92eF91NjRtMSAodjIsIDB4QUFBQUFBQUFBQUFBQUFBQSwgMCwgNCk7DQo+ICsg IHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTFfdHUgKHYzLCB2MiwNCj4g MHhBQUFBQUFBQUFBQUFBQUFBLCAwLCA0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X3U2NG0xIChv dXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gZGlmZiAtLWdpdA0KPiBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwNy5jDQo+IGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQt MTA3LmMNCj4gaW5kZXggYTNkMDhkZTA2YzQuLmIwNGUwM2I1ODk0IDEwMDY0NA0KPiAtLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWlu dC0xMDcuYw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv Ymlub3BfdnhfY29uc3RyYWludC0xMDcuYw0KPiBAQCAtNiw4ICs2LDggQEAgdm9pZCBmICh2b2lk ICogaW4sIHZvaWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2dWludDY0bTFf dCB2ID0gX19yaXNjdl92bGU2NF92X3U2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2dWludDY0bTFf dCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdnVp bnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3ZzYWRkdV92eF91NjRtMSAodjIsIHgsIDQpOw0KPiAtICB2 dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xX3R1ICh2MywgdjIsIHgsIDQp Ow0KPiArICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xICh2MiwgeCwg MCwgNCk7DQo+ICsgIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTFfdHUg KHYzLCB2MiwgeCwgMCwgNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl91NjRtMSAob3V0ICsgMiwg djQsIDQpOw0KPiB9DQo+IGRpZmYgLS1naXQNCj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMDguYw0KPiBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwOC5jDQo+ IGluZGV4IDk5YWNjNTFiNGZmLi4zZGY0NWI2NDQ4MCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTA4LmMN Cj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4 X2NvbnN0cmFpbnQtMTA4LmMNCj4gQEAgLTcsOCArNyw4IEBAIHZvaWQgZiAodm9pZCAqIGluLCB2 b2lkICpvdXQsIGludDMyX3QgeCwgaW50IG4pDQo+ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsg aSsrKSB7DQo+ICAgICAgdnVpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMSAoaW4g KyBpICsgMSwgNCk7DQo+ICAgICAgdnVpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0 bTFfdHUgKHYsIGluICsgaSArIDIsIDQpOw0KPiAtICAgIHZ1aW50NjRtMV90IHYzID0gX19yaXNj dl92c2FkZHVfdnhfdTY0bTEgKHYyLCB4LCA0KTsNCj4gLSAgICB2dWludDY0bTFfdCB2NCA9IF9f cmlzY3ZfdnNhZGR1X3Z4X3U2NG0xX3R1ICh2MywgdjIsIHgsIDQpOw0KPiArICAgIHZ1aW50NjRt MV90IHYzID0gX19yaXNjdl92c2FkZHVfdnhfdTY0bTEgKHYyLCB4LCAwLCA0KTsNCj4gKyAgICB2 dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGR1X3Z4X3U2NG0xX3R1ICh2MywgdjIsIHgsIDAs IDQpOw0KPiAgICAgIF9fcmlzY3ZfdnNlNjRfdl91NjRtMSAob3V0ICsgaSArIDIsIHY0LCA0KTsN Cj4gICAgfQ0KPiB9DQo+IGRpZmYgLS1naXQNCj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMDkuYw0KPiBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTEwOS5jDQo+ IGluZGV4IDkxMjdiODY5ZjUzLi4xMWI2YjE4NjJhZiAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTA5LmMN Cj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4 X2NvbnN0cmFpbnQtMTA5LmMNCj4gQEAgLTE1LDggKzE1LDggQEAgdm9pZCBmMCAodm9pZCAqIGlu LCB2b2lkICpvdXQsIGludDY0X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdmludDY0bTFfdCB2ID0g X19yaXNjdl92bGU2NF92X2k2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2aW50NjRtMV90IHYyID0g X19yaXNjdl92bGU2NF92X2k2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2aW50NjRtMV90 IHYzID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjIsIC0xNSwgNCk7DQo+IC0gIHZpbnQ2NG0x X3QgdjQgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2MywgLTE1LCA0KTsNCj4gKyAgdmludDY0 bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCAtMTUsIDAsIDQpOw0KPiArICB2 aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjMsIC0xNSwgMCwgNCk7DQo+ ICAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IEBAIC0z Miw4ICszMiw4IEBAIHZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGlu dCBuKQ0KPiB7DQo+ICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4g KyAxLCA0KTsNCj4gICAgdmludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAo diwgaW4gKyAyLCA0KTsNCj4gLSAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0 bTEgKHYyLCAxNiwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2 NG0xICh2MywgMTYsIDQpOw0KPiArICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1Yl92eF9p NjRtMSAodjIsIDE2LCAwLCA0KTsNCj4gKyAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJf dnhfaTY0bTEgKHYzLCAxNiwgMCwgNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0 ICsgMiwgdjQsIDQpOw0KPiB9DQo+IEBAIC00OSw4ICs0OSw4IEBAIHZvaWQgZjIgKHZvaWQgKiBp biwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZpbnQ2NG0xX3QgdiA9 IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyAxLCA0KTsNCj4gICAgdmludDY0bTFfdCB2MiA9 IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdmludDY0bTFf dCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCAxNywgNCk7DQo+IC0gIHZpbnQ2NG0x X3QgdjQgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2MywgMTcsIDQpOw0KPiArICB2aW50NjRt MV90IHYzID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjIsIDE3LCAwLCA0KTsNCj4gKyAgdmlu dDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYzLCAxNywgMCwgNCk7DQo+ICAg IF9fcmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IEBAIC02Niw4 ICs2Niw4IEBAIHZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBu KQ0KPiB7DQo+ICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyAx LCA0KTsNCj4gICAgdmludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwg aW4gKyAyLCA0KTsNCj4gLSAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEg KHYyLCAweEFBQUFBQUFBLCA0KTsNCj4gLSAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJf dnhfaTY0bTEgKHYzLCAweEFBQUFBQUFBLCA0KTsNCj4gKyAgdmludDY0bTFfdCB2MyA9IF9fcmlz Y3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCAweEFBQUFBQUFBLCAwLCA0KTsNCj4gKyAgdmludDY0bTFf dCB2NCA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYzLCAweEFBQUFBQUFBLCAwLCA0KTsNCj4g ICAgX19yaXNjdl92c2U2NF92X2k2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gQEAgLTgz LDggKzgzLDggQEAgdm9pZCBmNCAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0X3QgeCwgaW50 IG4pDQo+IHsNCj4gICAgdmludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2NF92X2k2NG0xIChpbiAr IDEsIDQpOw0KPiAgICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X2k2NG0xX3R1ICh2 LCBpbiArIDIsIDQpOw0KPiAtICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1Yl92eF9pNjRt MSAodjIsIDB4QUFBQUFBQUFBQUFBQUFBQSwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjQgPSBfX3Jp c2N2X3Zzc3ViX3Z4X2k2NG0xICh2MywgMHhBQUFBQUFBQUFBQUFBQUFBLCA0KTsNCj4gKyAgdmlu dDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCAweEFBQUFBQUFBQUFBQUFB QUEsIDAsIDQpOw0KPiArICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAo djMsIDB4QUFBQUFBQUFBQUFBQUFBQSwgMCwgNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRt MSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IEBAIC0xMDAsOCArMTAwLDggQEAgdm9pZCBmNSAo dm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdmludDY0 bTFfdCB2ID0gX19yaXNjdl92bGU2NF92X2k2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2aW50NjRt MV90IHYyID0gX19yaXNjdl92bGU2NF92X2k2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2 aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjIsIDB4QUFBQUFBQUFBQUFB QUFBQSwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2 MywgMHhBQUFBQUFBQUFBQUFBQUFBLCA0KTsNCj4gKyAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3Zf dnNzdWJfdnhfaTY0bTEgKHYyLCAweEFBQUFBQUFBQUFBQUFBQUEsIDAsIDQpOw0KPiArICB2aW50 NjRtMV90IHY0ID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjMsIDB4QUFBQUFBQUFBQUFBQUFB QSwgMCwgNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0ICsgMiwgdjQsIDQpOw0K PiB9DQo+IEBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBmNiAodm9pZCAqIGluLCB2b2lkICpvdXQs IGludDY0X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdmludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2 NF92X2k2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2 NF92X2k2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2aW50NjRtMV90IHYzID0gX19yaXNj dl92c3N1Yl92eF9pNjRtMSAodjIsIHgsIDQpOw0KPiAtICB2aW50NjRtMV90IHY0ID0gX19yaXNj dl92c3N1Yl92eF9pNjRtMSAodjMsIHgsIDQpOw0KPiArICB2aW50NjRtMV90IHYzID0gX19yaXNj dl92c3N1Yl92eF9pNjRtMSAodjIsIHgsIDAsIDQpOw0KPiArICB2aW50NjRtMV90IHY0ID0gX19y aXNjdl92c3N1Yl92eF9pNjRtMSAodjMsIHgsIDAsIDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0X3Zf aTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTEwLmMN Cj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29u c3RyYWludC0xMTAuYw0KPiBpbmRleCBkNzA3ODllMTgxMC4uMTFiNmY3MjQzNTkgMTAwNjQ0DQo+ IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9j b25zdHJhaW50LTExMC5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExMC5jDQo+IEBAIC0xNSw4ICsxNSw4IEBAIHZv aWQgZjAgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAg IHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyAxLCA0KTsNCj4gICAg dmludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsN Cj4gLSAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCAtMTUsIDQp Ow0KPiAtICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjMsIC0xNSwg NCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2MiwgLTE1 LCAwLCA0KTsNCj4gKyAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYz LCAtMTUsIDAsIDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0X3ZfaTY0bTEgKG91dCArIDIsIHY0LCA0 KTsNCj4gfQ0KPiBAQCAtMzIsOCArMzIsOCBAQCB2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91 dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2aW50NjRtMV90IHYgPSBfX3Jpc2N2X3Zs ZTY0X3ZfaTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3Zs ZTY0X3ZfaTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjMgPSBfX3Jp c2N2X3Zzc3ViX3Z4X2k2NG0xICh2MiwgMTYsIDQpOw0KPiAtICB2aW50NjRtMV90IHY0ID0gX19y aXNjdl92c3N1Yl92eF9pNjRtMSAodjMsIDE2LCA0KTsNCj4gKyAgdmludDY0bTFfdCB2MyA9IF9f cmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCAxNiwgMCwgNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjQg PSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2MywgMTYsIDAsIDQpOw0KPiAgICBfX3Jpc2N2X3Zz ZTY0X3ZfaTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBAQCAtNDksOCArNDksOCBAQCB2 b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAg ICB2aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTEgKGluICsgMSwgNCk7DQo+ICAg IHZpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTFfdHUgKHYsIGluICsgMiwgNCk7 DQo+IC0gIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2MiwgMTcsIDQp Ow0KPiAtICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjMsIDE3LCA0 KTsNCj4gKyAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCAxNywg MCwgNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2Mywg MTcsIDAsIDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0X3ZfaTY0bTEgKG91dCArIDIsIHY0LCA0KTsN Cj4gfQ0KPiBAQCAtNjYsNyArNjYsNyBAQCB2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwg aW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0 X3ZfaTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0 X3ZfaTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2 X3Zzc3ViX3Z4X2k2NG0xICh2MiwgMHhBQUFBQUFBLCA0KTsNCj4gLSAgdmludDY0bTFfdCB2NCA9 IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYzLCAweEFBQUFBQUEsIDQpOw0KPiArICB2aW50NjRt MV90IHYzID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjIsIDB4QUFBQUFBQSwgMCwgNCk7DQo+ ICsgIHZpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2MywgMHhBQUFBQUFB LCAwLCA0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X2k2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+ IH0NCj4gZGlmZiAtLWdpdA0KPiBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExMS5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTExLmMNCj4gaW5kZXggZTAy YjIxNTU0YTguLmJkMWZkMjdhZDkzIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTEuYw0KPiArKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWlu dC0xMTEuYw0KPiBAQCAtNiw4ICs2LDggQEAgdm9pZCBmICh2b2lkICogaW4sIHZvaWQgKm91dCwg aW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0 X3ZfaTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0 X3ZfaTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2 X3Zzc3ViX3Z4X2k2NG0xICh2MiwgMHhBQUFBQUFBQSwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjQg PSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xX3R1ICh2MywgdjIsIDB4QUFBQUFBQUEsIDQpOw0KPiAr ICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMSAodjIsIDB4QUFBQUFBQUEs IDAsIDQpOw0KPiArICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMV90dSAo djMsIHYyLCAweEFBQUFBQUFBLCAwLCA0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X2k2NG0xIChv dXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gZGlmZiAtLWdpdA0KPiBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExMi5jDQo+IGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQt MTEyLmMNCj4gaW5kZXggOGNkOWM0ZDA5YmEuLjY2OTZkNGMxODY3IDEwMDY0NA0KPiAtLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWlu dC0xMTIuYw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv Ymlub3BfdnhfY29uc3RyYWludC0xMTIuYw0KPiBAQCAtNiw4ICs2LDggQEAgdm9pZCBmICh2b2lk ICogaW4sIHZvaWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2aW50NjRtMV90 IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZpbnQ2NG0xX3Qg djIgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+IC0gIHZpbnQ2 NG0xX3QgdjMgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2MiwgMHhBQUFBQUFBQUFBQUFBQUFB LCA0KTsNCj4gLSAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTFfdHUgKHYz LCB2MiwgMHhBQUFBQUFBQUFBQUFBQUFBLA0KPiA0KTsNCj4gKyAgdmludDY0bTFfdCB2MyA9IF9f cmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCAweEFBQUFBQUFBQUFBQUFBQUEsIDAsIDQpOw0KPiAr ICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1Yl92eF9pNjRtMV90dSAodjMsIHYyLCAweEFB QUFBQUFBQUFBQUFBQUEsDQo+IDAsIDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0X3ZfaTY0bTEgKG91 dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTEzLmMNCj4gYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0x MTMuYw0KPiBpbmRleCA2MDkwYTFkYTY5ZC4uODBiYmEyYWU3OTYgMTAwNjQ0DQo+IC0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50 LTExMy5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9i aW5vcF92eF9jb25zdHJhaW50LTExMy5jDQo+IEBAIC02LDggKzYsOCBAQCB2b2lkIGYgKHZvaWQg KiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZpbnQ2NG0xX3Qg diA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyAxLCA0KTsNCj4gICAgdmludDY0bTFfdCB2 MiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdmludDY0 bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTEgKHYyLCB4LCA0KTsNCj4gLSAgdmludDY0 bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0bTFfdHUgKHYzLCB2MiwgeCwgNCk7DQo+ICsg IHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xICh2MiwgeCwgMCwgNCk7DQo+ ICsgIHZpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3Zzc3ViX3Z4X2k2NG0xX3R1ICh2MywgdjIsIHgs IDAsIDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0X3ZfaTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4g fQ0KPiBkaWZmIC0tZ2l0DQo+IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE0LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTQuYw0KPiBpbmRleCBkNTk1 YzQ0NjUwMy4uZWNiYjNlM2QzODYgMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExNC5jDQo+ICsrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50 LTExNC5jDQo+IEBAIC03LDggKzcsOCBAQCB2b2lkIGYgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBp bnQzMl90IHgsIGludCBuKQ0KPiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgew0KPiAg ICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyBpICsgMSwgNCk7 DQo+ICAgICAgdmludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwgaW4g KyBpICsgMiwgNCk7DQo+IC0gICAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJfdnhfaTY0 bTEgKHYyLCB4LCA0KTsNCj4gLSAgICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1Yl92eF9p NjRtMV90dSAodjMsIHYyLCB4LCA0KTsNCj4gKyAgICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92 c3N1Yl92eF9pNjRtMSAodjIsIHgsIDAsIDQpOw0KPiArICAgIHZpbnQ2NG0xX3QgdjQgPSBfX3Jp c2N2X3Zzc3ViX3Z4X2k2NG0xX3R1ICh2MywgdjIsIHgsIDAsIDQpOw0KPiAgICAgIF9fcmlzY3Zf dnNlNjRfdl9pNjRtMSAob3V0ICsgaSArIDIsIHY0LCA0KTsNCj4gICAgfQ0KPiB9DQo+IGRpZmYg LS1naXQNCj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3Bf dnhfY29uc3RyYWludC0xMTUuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExNS5jDQo+IGluZGV4IDk3MjJmNWU2MTE4Li5k N2VjMjY4OGU2NCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE1LmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE1LmMNCj4g QEAgLTE1LDggKzE1LDggQEAgdm9pZCBmMCAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQ2NF90 IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZ1aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0 bTEgKGluICsgMSwgNCk7DQo+ICAgIHZ1aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X3U2 NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNz dWJ1X3Z4X3U2NG0xICh2MiwgLTE2LCA0KTsNCj4gLSAgdnVpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2 X3Zzc3VidV92eF91NjRtMSAodjMsIC0xNiwgNCk7DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19y aXNjdl92c3N1YnVfdnhfdTY0bTEgKHYyLCAtMTYsIDAsIDQpOw0KPiArICB2dWludDY0bTFfdCB2 NCA9IF9fcmlzY3ZfdnNzdWJ1X3Z4X3U2NG0xICh2MywgLTE2LCAwLCA0KTsNCj4gICAgX19yaXNj dl92c2U2NF92X3U2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gQEAgLTMyLDggKzMyLDgg QEAgdm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQ2NF90IHgsIGludCBuKQ0KPiB7 DQo+ICAgIHZ1aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTEgKGluICsgMSwgNCk7 DQo+ICAgIHZ1aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X3U2NG0xX3R1ICh2LCBpbiAr IDIsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJ1X3Z4X3U2NG0xICh2 MiwgMTUsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJ1X3Z4X3U2NG0x ICh2MywgMTUsIDQpOw0KPiArICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJ1X3Z4X3U2 NG0xICh2MiwgMTUsIDAsIDQpOw0KPiArICB2dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJ1 X3Z4X3U2NG0xICh2MywgMTUsIDAsIDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0X3ZfdTY0bTEgKG91 dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBAQCAtNDksOCArNDksOCBAQCB2b2lkIGYyICh2b2lkICog aW4sIHZvaWQgKm91dCwgdWludDY0X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdnVpbnQ2NG0xX3Qg diA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMSAoaW4gKyAxLCA0KTsNCj4gICAgdnVpbnQ2NG0xX3Qg djIgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+IC0gIHZ1aW50 NjRtMV90IHYzID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEgKHYyLCAxNiwgNCk7DQo+IC0gIHZ1 aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEgKHYzLCAxNiwgNCk7DQo+ICsg IHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEgKHYyLCAxNiwgMCwgNCk7 DQo+ICsgIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEgKHYzLCAxNiwg MCwgNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl91NjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9 DQo+IEBAIC02Niw3ICs2Niw3IEBAIHZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50 NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2dWludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2NF92 X3U2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2dWludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRf dl91NjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdnVpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2 X3Zzc3VidV92eF91NjRtMSAodjIsIDB4QUFBQUFBQSwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHY0 ID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEgKHYzLCAweEFBQUFBQUEsIDQpOw0KPiArICB2dWlu dDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJ1X3Z4X3U2NG0xICh2MiwgMHhBQUFBQUFBLCAwLCA0 KTsNCj4gKyAgdnVpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3Zzc3VidV92eF91NjRtMSAodjMsIDB4 QUFBQUFBQSwgMCwgNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl91NjRtMSAob3V0ICsgMiwgdjQs IDQpOw0KPiB9DQo+IGRpZmYgLS1naXQNCj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTYuYw0KPiBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExNi5jDQo+IGlu ZGV4IDA2NjM2NWRjNzQ0Li5hZTZhNDA1NDBlNiAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE2LmMNCj4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2Nv bnN0cmFpbnQtMTE2LmMNCj4gQEAgLTYsOCArNiw4IEBAIHZvaWQgZiAodm9pZCAqIGluLCB2b2lk ICpvdXQsIHVpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZ1aW50NjRtMV90IHYgPSBfX3Jp c2N2X3ZsZTY0X3ZfdTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZ1aW50NjRtMV90IHYyID0gX19y aXNjdl92bGU2NF92X3U2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2 MyA9IF9fcmlzY3ZfdnNzdWJ1X3Z4X3U2NG0xICh2MiwgMHhBQUFBQUFBQSwgNCk7DQo+IC0gIHZ1 aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTFfdHUgKHYzLCB2MiwgMHhBQUFB QUFBQSwgNCk7DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEg KHYyLCAweEFBQUFBQUFBLCAwLCA0KTsNCj4gKyAgdnVpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3Zz c3VidV92eF91NjRtMV90dSAodjMsIHYyLCAweEFBQUFBQUFBLCAwLCA0KTsNCj4gICAgX19yaXNj dl92c2U2NF92X3U2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gZGlmZiAtLWdpdA0KPiBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJh aW50LTExNy5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jp bm9wX3Z4X2NvbnN0cmFpbnQtMTE3LmMNCj4gaW5kZXggYmZjNjc3M2YxOTguLjYwNDYxZjg2YTI4 IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv Ymlub3BfdnhfY29uc3RyYWludC0xMTcuYw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTcuYw0KPiBAQCAtNiw4ICs2 LDggQEAgdm9pZCBmICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDY0X3QgeCwgaW50IG4pDQo+ IHsNCj4gICAgdnVpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMSAoaW4gKyAxLCA0 KTsNCj4gICAgdnVpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTFfdHUgKHYsIGlu ICsgMiwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEg KHYyLCAweEFBQUFBQUFBQUFBQUFBQUEsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2NCA9IF9fcmlz Y3ZfdnNzdWJ1X3Z4X3U2NG0xX3R1ICh2MywgdjIsDQo+IDB4QUFBQUFBQUFBQUFBQUFBQSwgNCk7 DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEgKHYyLCAweEFB QUFBQUFBQUFBQUFBQUEsIDAsIDQpOw0KPiArICB2dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNz dWJ1X3Z4X3U2NG0xX3R1ICh2MywgdjIsDQo+IDB4QUFBQUFBQUFBQUFBQUFBQSwgMCwgNCk7DQo+ ICAgIF9fcmlzY3ZfdnNlNjRfdl91NjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IGRpZmYg LS1naXQNCj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3Bf dnhfY29uc3RyYWludC0xMTguYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTExOC5jDQo+IGluZGV4IDA1YTdhMWQ5ZTY1Li4w ODhkNzk3ZGM5ZiAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE4LmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE4LmMNCj4g QEAgLTYsOCArNiw4IEBAIHZvaWQgZiAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQ2NF90IHgs IGludCBuKQ0KPiB7DQo+ICAgIHZ1aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTEg KGluICsgMSwgNCk7DQo+ICAgIHZ1aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X3U2NG0x X3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2dWludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNzdWJ1 X3Z4X3U2NG0xICh2MiwgeCwgNCk7DQo+IC0gIHZ1aW50NjRtMV90IHY0ID0gX19yaXNjdl92c3N1 YnVfdnhfdTY0bTFfdHUgKHYzLCB2MiwgeCwgNCk7DQo+ICsgIHZ1aW50NjRtMV90IHYzID0gX19y aXNjdl92c3N1YnVfdnhfdTY0bTEgKHYyLCB4LCAwLCA0KTsNCj4gKyAgdnVpbnQ2NG0xX3QgdjQg PSBfX3Jpc2N2X3Zzc3VidV92eF91NjRtMV90dSAodjMsIHYyLCB4LCAwLCA0KTsNCj4gICAgX19y aXNjdl92c2U2NF92X3U2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gZGlmZiAtLWdpdA0K PiBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25z dHJhaW50LTExOS5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTE5LmMNCj4gaW5kZXggMGI1MTE3NWY2NmMuLjdkMDBiODQ5 OWVmIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvYmlub3BfdnhfY29uc3RyYWludC0xMTkuYw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC0xMTkuYw0KPiBAQCAtNyw4 ICs3LDggQEAgdm9pZCBmICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDY0X3QgeCwgaW50IG4p DQo+ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7DQo+ICAgICAgdnVpbnQ2NG0xX3Qg diA9IF9fcmlzY3ZfdmxlNjRfdl91NjRtMSAoaW4gKyBpICsgMSwgNCk7DQo+ICAgICAgdnVpbnQ2 NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfdTY0bTFfdHUgKHYsIGluICsgaSArIDIsIDQpOw0K PiAtICAgIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1YnVfdnhfdTY0bTEgKHYyLCB4LCA0 KTsNCj4gLSAgICB2dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNzdWJ1X3Z4X3U2NG0xX3R1ICh2 MywgdjIsIHgsIDQpOw0KPiArICAgIHZ1aW50NjRtMV90IHYzID0gX19yaXNjdl92c3N1YnVfdnhf dTY0bTEgKHYyLCB4LCAwLCA0KTsNCj4gKyAgICB2dWludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNz dWJ1X3Z4X3U2NG0xX3R1ICh2MywgdjIsIHgsIDAsIDQpOw0KPiAgICAgIF9fcmlzY3ZfdnNlNjRf dl91NjRtMSAob3V0ICsgaSArIDIsIHY0LCA0KTsNCj4gICAgfQ0KPiB9DQo+IGRpZmYgLS1naXQN Cj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29u c3RyYWludC0xMjIuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9iaW5vcF92eF9jb25zdHJhaW50LTEyMi5jDQo+IGluZGV4IGM1ZmQ0NzAxZGVjLi40OTVmOGNh ZDNiOCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTIyLmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTIyLmMNCj4gQEAgLTYs NyArNiw3IEBAIHZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQo+IHsN Cj4gICAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3ZsZTMyX3ZfaTMybTEgKGluLCA0KTsNCj4g ICAgICB2aW50MzJtMV90IHYyID0gX19yaXNjdl92bGUzMl92X2kzMm0xX3R1ICh2LCBpbiwgNCk7 DQo+IC0gICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFhZGRfdnhfaTMybTEgKHYyLCAwLCA0 KTsNCj4gKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWFkZF92eF9pMzJtMSAodjIsIDAs IDAsIDQpOw0KPiAgICAgIF9fcmlzY3ZfdnNlMzJfdl9pMzJtMSAob3V0LCB2MywgNCk7DQo+IH0N Cj4gQEAgLTE0LDcgKzE0LDcgQEAgdm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMy X3QgeCkNCj4gew0KPiAgICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAo aW4sIDQpOw0KPiAgICAgIHZpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTFfdHUg KHYsIGluLCA0KTsNCj4gLSAgICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92YWFkZF92eF9pNjRt MSAodjIsIDAsIDQpOw0KPiArICAgIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3ZhYWRkX3Z4X2k2 NG0xICh2MiwgMCwgMCwgNCk7DQo+ICAgICAgX19yaXNjdl92c2U2NF92X2k2NG0xIChvdXQsIHYz LCA0KTsNCj4gfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtOTcuYw0KPiBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTk3LmMNCj4gaW5k ZXggZDEyODNkODlhOTMuLmMxM2VkNjc0YzY3IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC05Ny5jDQo+ICsr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9iaW5vcF92eF9jb25z dHJhaW50LTk3LmMNCj4gQEAgLTE1LDggKzE1LDggQEAgdm9pZCBmMCAodm9pZCAqIGluLCB2b2lk ICpvdXQsIGludDY0X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdmludDY0bTFfdCB2ID0gX19yaXNj dl92bGU2NF92X2k2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2aW50NjRtMV90IHYyID0gX19yaXNj dl92bGU2NF92X2k2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2aW50NjRtMV90IHYzID0g X19yaXNjdl92c2FkZF92eF9pNjRtMSAodjIsIC0xNiwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjQg PSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2MywgLTE2LCA0KTsNCj4gKyAgdmludDY0bTFfdCB2 MyA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYyLCAtMTYsIDAsNCk7DQo+ICsgIHZpbnQ2NG0x X3QgdjQgPSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2MywgLTE2LCAwLDQpOw0KPiAgICBfX3Jp c2N2X3ZzZTY0X3ZfaTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBAQCAtMzIsOCArMzIs OCBAQCB2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4g ew0KPiAgICB2aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTEgKGluICsgMSwgNCk7 DQo+ICAgIHZpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTFfdHUgKHYsIGluICsg MiwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2Miwg MTUsIDQpOw0KPiAtICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAodjMs IDE1LCA0KTsNCj4gKyAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYy LCAxNSwgMCw0KTsNCj4gKyAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEg KHYzLCAxNSwgMCw0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X2k2NG0xIChvdXQgKyAyLCB2NCwg NCk7DQo+IH0NCj4gQEAgLTQ5LDggKzQ5LDggQEAgdm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpv dXQsIGludDY0X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgdmludDY0bTFfdCB2ID0gX19yaXNjdl92 bGU2NF92X2k2NG0xIChpbiArIDEsIDQpOw0KPiAgICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92 bGU2NF92X2k2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiAtICB2aW50NjRtMV90IHYzID0gX19y aXNjdl92c2FkZF92eF9pNjRtMSAodjIsIDE2LCA0KTsNCj4gLSAgdmludDY0bTFfdCB2NCA9IF9f cmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYzLCAxNiwgNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjMgPSBf X3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2MiwgMTYsIDAsNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjQg PSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2MywgMTYsIDAsNCk7DQo+ICAgIF9fcmlzY3ZfdnNl NjRfdl9pNjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IEBAIC02Niw4ICs2Niw4IEBAIHZv aWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAg IHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyAxLCA0KTsNCj4gICAg dmludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsN Cj4gLSAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYyLCAweEFBQUFB QUFBLCA0KTsNCj4gLSAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYz LCAweEFBQUFBQUFBLCA0KTsNCj4gKyAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGRfdnhf aTY0bTEgKHYyLCAweEFBQUFBQUFBLCAwLDQpOw0KPiArICB2aW50NjRtMV90IHY0ID0gX19yaXNj dl92c2FkZF92eF9pNjRtMSAodjMsIDB4QUFBQUFBQUEsIDAsNCk7DQo+ICAgIF9fcmlzY3ZfdnNl NjRfdl9pNjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IEBAIC04Myw4ICs4Myw4IEBAIHZv aWQgZjQgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAg IHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyAxLCA0KTsNCj4gICAg dmludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsN Cj4gLSAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYyLCAweEFBQUFB QUFBQUFBQUFBQUEsIDQpOw0KPiAtICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZF92eF9p NjRtMSAodjMsIDB4QUFBQUFBQUFBQUFBQUFBQSwgNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjMgPSBf X3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2MiwgMHhBQUFBQUFBQUFBQUFBQUFBLCAwLDQpOw0KPiAr ICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAodjMsIDB4QUFBQUFBQUFB QUFBQUFBQSwgMCw0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X2k2NG0xIChvdXQgKyAyLCB2NCwg NCk7DQo+IH0NCj4gQEAgLTEwMCw4ICsxMDAsOCBAQCB2b2lkIGY1ICh2b2lkICogaW4sIHZvaWQg Km91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2aW50NjRtMV90IHYgPSBfX3Jpc2N2 X3ZsZTY0X3ZfaTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2 X3ZsZTY0X3ZfaTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjMgPSBf X3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2MiwgMHhBQUFBQUFBQUFBQUFBQUFBLCA0KTsNCj4gLSAg dmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYzLCAweEFBQUFBQUFBQUFB QUFBQUEsIDQpOw0KPiArICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAo djIsIDB4QUFBQUFBQUFBQUFBQUFBQSwgMCw0KTsNCj4gKyAgdmludDY0bTFfdCB2NCA9IF9fcmlz Y3ZfdnNhZGRfdnhfaTY0bTEgKHYzLCAweEFBQUFBQUFBQUFBQUFBQUEsIDAsNCk7DQo+ICAgIF9f cmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IEBAIC0xMTcsNyAr MTE3LDcgQEAgdm9pZCBmNiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0X3QgeCwgaW50IG4p DQo+IHsNCj4gICAgdmludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2NF92X2k2NG0xIChpbiArIDEs IDQpOw0KPiAgICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X2k2NG0xX3R1ICh2LCBp biArIDIsIDQpOw0KPiAtICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAo djIsIHgsIDQpOw0KPiAtICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAo djMsIHgsIDQpOw0KPiArICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAo djIsIHgsIDAsNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0x ICh2MywgeCwgMCw0KTsNCj4gICAgX19yaXNjdl92c2U2NF92X2k2NG0xIChvdXQgKyAyLCB2NCwg NCk7DQo+IH0NCj4gZGlmZiAtLWdpdA0KPiBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9iaW5vcF92eF9jb25zdHJhaW50LTk4LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3RyYWludC05OC5jDQo+IGluZGV4 IGVkNzQ3N2IzY2E4Li4zMjhkMWQ2MmE3MCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtOTguYw0KPiArKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYmlub3BfdnhfY29uc3Ry YWludC05OC5jDQo+IEBAIC0xNSw4ICsxNSw4IEBAIHZvaWQgZjAgKHZvaWQgKiBpbiwgdm9pZCAq b3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3Zf dmxlNjRfdl9pNjRtMSAoaW4gKyAxLCA0KTsNCj4gICAgdmludDY0bTFfdCB2MiA9IF9fcmlzY3Zf dmxlNjRfdl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdmludDY0bTFfdCB2MyA9IF9f cmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYyLCAtMTYsIDQpOw0KPiAtICB2aW50NjRtMV90IHY0ID0g X19yaXNjdl92c2FkZF92eF9pNjRtMSAodjMsIC0xNiwgNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjMg PSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2MiwgLTE2LCAwLDQpOw0KPiArICB2aW50NjRtMV90 IHY0ID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAodjMsIC0xNiwgMCw0KTsNCj4gICAgX19yaXNj dl92c2U2NF92X2k2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+IH0NCj4gQEAgLTMyLDggKzMyLDgg QEAgdm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0X3QgeCwgaW50IG4pDQo+IHsN Cj4gICAgdmludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2NF92X2k2NG0xIChpbiArIDEsIDQpOw0K PiAgICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X2k2NG0xX3R1ICh2LCBpbiArIDIs IDQpOw0KPiAtICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZF92eF9pNjRtMSAodjIsIDE1 LCA0KTsNCj4gLSAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYzLCAx NSwgNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2Miwg MTUsIDAsNCk7DQo+ICsgIHZpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2 MywgMTUsIDAsNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0ICsgMiwgdjQsIDQp Ow0KPiB9DQo+IEBAIC00OSw4ICs0OSw4IEBAIHZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0 LCBpbnQ2NF90IHgsIGludCBuKQ0KPiB7DQo+ICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3Zfdmxl NjRfdl9pNjRtMSAoaW4gKyAxLCA0KTsNCj4gICAgdmludDY0bTFfdCB2MiA9IF9fcmlzY3Zfdmxl NjRfdl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gLSAgdmludDY0bTFfdCB2MyA9IF9fcmlz Y3ZfdnNhZGRfdnhfaTY0bTEgKHYyLCAxNiwgNCk7DQo+IC0gIHZpbnQ2NG0xX3QgdjQgPSBfX3Jp c2N2X3ZzYWRkX3Z4X2k2NG0xICh2MywgMTYsIDQpOw0KPiArICB2aW50NjRtMV90IHYzID0gX19y aXNjdl92c2FkZF92eF9pNjRtMSAodjIsIDE2LCAwLDQpOw0KPiArICB2aW50NjRtMV90IHY0ID0g X19yaXNjdl92c2FkZF92eF9pNjRtMSAodjMsIDE2LCAwLDQpOw0KPiAgICBfX3Jpc2N2X3ZzZTY0 X3ZfaTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gfQ0KPiBAQCAtNjYsNyArNjYsNyBAQCB2b2lk IGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50NjRfdCB4LCBpbnQgbikNCj4gew0KPiAgICB2 aW50NjRtMV90IHYgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTEgKGluICsgMSwgNCk7DQo+ICAgIHZp bnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+ IC0gIHZpbnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3ZzYWRkX3Z4X2k2NG0xICh2MiwgMHhBQUFBQUFB LCA0KTsNCj4gLSAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNhZGRfdnhfaTY0bTEgKHYzLCAw eEFBQUFBQUEsIDQpOw0KPiArICB2aW50NjRtMV90IHYzID0gX19yaXNjdl92c2FkZF92eF9pNjRt MSAodjIsIDB4QUFBQUFBQSwgMCw0KTsNCj4gKyAgdmludDY0bTFfdCB2NCA9IF9fcmlzY3ZfdnNh ZGRfdnhfaTY0bTEgKHYzLCAweEFBQUFBQUEsIDAsNCk7DQo+ICAgIF9fcmlzY3ZfdnNlNjRfdl9p NjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiB9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvbWVyZ2VfY29uc3RyYWludC0xLmMNCj4gYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvbWVyZ2VfY29uc3RyYWludC0xLmMN Cj4gaW5kZXggMzgwZDY3ZmFiNTMuLjFiNDE4YjgyZjM2IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvbWVyZ2VfY29uc3RyYWludC0xLmMNCj4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL21lcmdlX2NvbnN0 cmFpbnQtMS5jDQo+IEBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBmMTYgKGludDhfdCogYmFzZTEs aW50OF90KiBiYXNlMixpbnQ4X3QqIG91dCxpbnQNCj4gbikNCj4gew0KPiAgICB2aW50OG1mNF90 IHYgPSBfX3Jpc2N2X3ZsZThfdl9pOG1mNCAoYmFzZTEsIDMyKTsNCj4gICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuOyBpKyspew0KPiAtICAgIHYgPSBfX3Jpc2N2X3ZzYWRkX3Z2X2k4bWY0ICh2LCB2 LCAzMik7DQo+ICsgICAgdiA9IF9fcmlzY3ZfdnNhZGRfdnZfaThtZjQgKHYsIHYsIDAsIDMyKTsN Cj4gICAgICB2ID0gX19yaXNjdl92bGU4X3ZfaThtZjRfdHUgKHYsIGJhc2UyLCAzMik7DQo+ICAg IH0NCj4gICAgX19yaXNjdl92c2U4X3ZfaThtZjQgKG91dCwgdiwgMzIpOw0KPiBAQCAtMTc1LDcg KzE3NSw3IEBAIHZvaWQgZjE3IChpbnQ4X3QqIGJhc2UxLGludDhfdCogYmFzZTIsaW50OF90KiBv dXQsaW50DQo+IG4pDQo+IHsNCj4gICAgdmludDhtZjRfdCB2ID0gX19yaXNjdl92bGU4X3ZfaTht ZjQgKGJhc2UxLCAzMik7DQo+ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsNCj4gLSAg ICB2ID0gX19yaXNjdl92c2FkZF92eF9pOG1mNCAodiwgMTAwLCAzMik7DQo+ICsgICAgdiA9IF9f cmlzY3ZfdnNhZGRfdnhfaThtZjQgKHYsIDEwMCwgMCwgMzIpOw0KPiAgICAgIHYgPSBfX3Jpc2N2 X3ZsZThfdl9pOG1mNF90dSAodiwgYmFzZTIsIDMyKTsNCj4gICAgfQ0KPiAgICBfX3Jpc2N2X3Zz ZThfdl9pOG1mNCAob3V0LCB2LCAzMik7DQo+IEBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBmMTgg KGludDhfdCogYmFzZTEsaW50OF90KiBiYXNlMixpbnQ4X3QqIG91dCxpbnQNCj4gbikNCj4gew0K PiAgICB2aW50OG1mNF90IHYgPSBfX3Jpc2N2X3ZsZThfdl9pOG1mNCAoYmFzZTEsIDMyKTsNCj4g ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspew0KPiAtICAgIHYgPSBfX3Jpc2N2X3ZhYWRk X3Z2X2k4bWY0ICh2LCB2LCAzMik7DQo+ICsgICAgdiA9IF9fcmlzY3ZfdmFhZGRfdnZfaThtZjQg KHYsIHYsIDAsIDMyKTsNCj4gICAgICB2ID0gX19yaXNjdl92bGU4X3ZfaThtZjRfdHUgKHYsIGJh c2UyLCAzMik7DQo+ICAgIH0NCj4gICAgX19yaXNjdl92c2U4X3ZfaThtZjQgKG91dCwgdiwgMzIp Ow0KPiBAQCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQgZjE5IChpbnQ4X3QqIGJhc2UxLGludDhfdCog YmFzZTIsaW50OF90KiBvdXQsaW50DQo+IG4pDQo+IHsNCj4gICAgdmludDhtZjRfdCB2ID0gX19y aXNjdl92bGU4X3ZfaThtZjQgKGJhc2UxLCAzMik7DQo+ICAgIGZvciAoaW50IGkgPSAwOyBpIDwg bjsgaSsrKXsNCj4gLSAgICB2ID0gX19yaXNjdl92YWFkZF92eF9pOG1mNCAodiwgMTAwLCAzMik7 DQo+ICsgICAgdiA9IF9fcmlzY3ZfdmFhZGRfdnhfaThtZjQgKHYsIDEwMCwgMCwgMzIpOw0KPiAg ICAgIHYgPSBfX3Jpc2N2X3ZsZThfdl9pOG1mNF90dSAodiwgYmFzZTIsIDMyKTsNCj4gICAgfQ0K PiAgICBfX3Jpc2N2X3ZzZThfdl9pOG1mNCAob3V0LCB2LCAzMik7DQo+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvbmFycm93X2NvbnN0cmFpbnQt Ni5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL25hcnJvd19j b25zdHJhaW50LTYuYw0KPiBpbmRleCBmZDdmZmQzYzk3Yi4uOTY1OWIyNWE2YzMgMTAwNjQ0DQo+ IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9uYXJyb3dfY29u c3RyYWludC02LmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL25hcnJvd19jb25zdHJhaW50LTYuYw0KPiBAQCAtNiwyNCArNiwyNCBAQA0KPiB2b2lkIGYw ICh1aW50MTZfdCAqYmFzZSx1aW50OF90ICpvdXQsc2l6ZV90IHZsLCBzaXplX3Qgc2hpZnQpDQo+ IHsNCj4gICAgICB2dWludDE2bWY0X3Qgc3JjID0gX19yaXNjdl92bGUxNl92X3UxNm1mNCAoYmFz ZSwgdmwpOw0KPiAtICAgIHZ1aW50OG1mOF90IHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3hfdThtZjgo c3JjLHNoaWZ0LHZsKTsNCj4gLSAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4KHNyYyx2 LHZsKTsNCj4gKyAgICB2dWludDhtZjhfdCB2ID0gX19yaXNjdl92bmNsaXB1X3d4X3U4bWY4KHNy YyxzaGlmdCwwLHZsKTsNCj4gKyAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4KHNyYyx2 LDAsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlOF92X3U4bWY4IChvdXQsdix2bCk7DQo+IH0NCj4g dm9pZCBmMSAodWludDE2X3QgKmJhc2UsdWludDhfdCAqb3V0LHNpemVfdCB2bCwgc2l6ZV90IHNo aWZ0KQ0KPiB7DQo+ICAgICAgdnVpbnQxNm1mNF90IHNyYyA9IF9fcmlzY3ZfdmxlMTZfdl91MTZt ZjQgKGJhc2UsIHZsKTsNCj4gLSAgICB2dWludDhtZjhfdCB2ID0gX19yaXNjdl92bmNsaXB1X3d4 X3U4bWY4KHNyYyxzaGlmdCx2bCk7DQo+IC0gICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1m OChzcmMsdix2bCk7DQo+ICsgICAgdnVpbnQ4bWY4X3QgdiA9IF9fcmlzY3Zfdm5jbGlwdV93eF91 OG1mOChzcmMsc2hpZnQsMCx2bCk7DQo+ICsgICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1m OChzcmMsdiwwLHZsKTsNCj4gICAgICBfX3Jpc2N2X3ZzZThfdl91OG1mOCAob3V0LHYsdmwpOw0K PiB9DQo+IHZvaWQgZjIgKHZvaWQgKmJhc2Usdm9pZCAqb3V0LHNpemVfdCB2bCwgc2l6ZV90IHNo aWZ0KQ0KPiB7DQo+ICAgICAgdnVpbnQxNm1mNF90IHNyYyA9IF9fcmlzY3ZfdmxlMTZfdl91MTZt ZjQgKGJhc2UsIHZsKTsNCj4gLSAgICB2dWludDhtZjhfdCB2ID0gX19yaXNjdl92bmNsaXB1X3d4 X3U4bWY4KHNyYyxzaGlmdCx2bCk7DQo+IC0gICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1m OF90dSh2LHNyYyx2LHZsKTsNCj4gKyAgICB2dWludDhtZjhfdCB2ID0gX19yaXNjdl92bmNsaXB1 X3d4X3U4bWY4KHNyYyxzaGlmdCwwLHZsKTsNCj4gKyAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2 X3U4bWY4X3R1KHYsc3JjLHYsMCx2bCk7DQo+ICAgICAgX19yaXNjdl92c2U4X3ZfdThtZjggKG91 dCx2LHZsKTsNCj4gICAgICBfX3Jpc2N2X3ZzZTE2X3ZfdTE2bWY0IChvdXQrMTAwLHNyYyx2bCk7 DQo+IH0NCj4gQEAgLTMxLDggKzMxLDggQEAgdm9pZCBmMiAodm9pZCAqYmFzZSx2b2lkICpvdXQs c2l6ZV90IHZsLCBzaXplX3Qgc2hpZnQpDQo+IHZvaWQgZjMgKHZvaWQgKmJhc2Usdm9pZCAqb3V0 LHNpemVfdCB2bCwgc2l6ZV90IHNoaWZ0KQ0KPiB7DQo+ICAgICAgdnVpbnQxNm1mNF90IHNyYyA9 IF9fcmlzY3ZfdmxlMTZfdl91MTZtZjQgKGJhc2UsIHZsKTsNCj4gLSAgICB2dWludDhtZjhfdCB2 ID0gX19yaXNjdl92bmNsaXB1X3d4X3U4bWY4KHNyYyxzaGlmdCx2bCk7DQo+IC0gICAgdiA9IF9f cmlzY3Zfdm5jbGlwdV93dl91OG1mOChzcmMsdix2bCk7DQo+ICsgICAgdnVpbnQ4bWY4X3QgdiA9 IF9fcmlzY3Zfdm5jbGlwdV93eF91OG1mOChzcmMsc2hpZnQsMCx2bCk7DQo+ICsgICAgdiA9IF9f cmlzY3Zfdm5jbGlwdV93dl91OG1mOChzcmMsdiwwLHZsKTsNCj4gICAgICBfX3Jpc2N2X3ZzZThf dl91OG1mOCAob3V0LHYsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlMTZfdl91MTZtZjQgKG91dCsx MDAsc3JjLHZsKTsNCj4gfQ0KPiBAQCAtNDEsOCArNDEsOCBAQCB2b2lkIGY0ICh2b2lkICpiYXNl LHZvaWQgKm91dCxzaXplX3QgdmwsIHNpemVfdCBzaGlmdCkNCj4gew0KPiAgICAgIHZib29sNjRf dCBtID0gX19yaXNjdl92bG1fdl9iNjQgKGJhc2UgKyA1MDAsIHZsKTsNCj4gICAgICB2dWludDE2 bWY0X3Qgc3JjID0gX19yaXNjdl92bGUxNl92X3UxNm1mNCAoYmFzZSwgdmwpOw0KPiAtICAgIHZ1 aW50OG1mOF90IHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3hfdThtZjgoc3JjLHNoaWZ0LHZsKTsNCj4g LSAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4X3R1bXUobSx2LHNyYyx2LHZsKTsNCj4g KyAgICB2dWludDhtZjhfdCB2ID0gX19yaXNjdl92bmNsaXB1X3d4X3U4bWY4KHNyYyxzaGlmdCww LHZsKTsNCj4gKyAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4X3R1bXUobSx2LHNyYyx2 LDAsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlOF92X3U4bWY4IChvdXQsdix2bCk7DQo+ICAgICAg X19yaXNjdl92c2UxNl92X3UxNm1mNCAob3V0KzEwMCxzcmMsdmwpOw0KPiB9DQo+IEBAIC01MSw4 ICs1MSw4IEBAIHZvaWQgZjUgKHZvaWQgKmJhc2Usdm9pZCAqb3V0LHNpemVfdCB2bCwgc2l6ZV90 IHNoaWZ0KQ0KPiB7DQo+ICAgICAgdmJvb2w2NF90IG0gPSBfX3Jpc2N2X3ZsbV92X2I2NCAoYmFz ZSArIDUwMCwgdmwpOw0KPiAgICAgIHZ1aW50MTZtZjRfdCBzcmMgPSBfX3Jpc2N2X3ZsZTE2X3Zf dTE2bWY0IChiYXNlLCB2bCk7DQo+IC0gICAgdnVpbnQ4bWY4X3QgdiA9IF9fcmlzY3Zfdm5jbGlw dV93eF91OG1mOChzcmMsc2hpZnQsdmwpOw0KPiAtICAgIHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3Zf dThtZjhfbShtLHNyYyx2LHZsKTsNCj4gKyAgICB2dWludDhtZjhfdCB2ID0gX19yaXNjdl92bmNs aXB1X3d4X3U4bWY4KHNyYyxzaGlmdCwwLHZsKTsNCj4gKyAgICB2ID0gX19yaXNjdl92bmNsaXB1 X3d2X3U4bWY4X20obSxzcmMsdiwwLHZsKTsNCj4gICAgICBfX3Jpc2N2X3ZzZThfdl91OG1mOCAo b3V0LHYsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlMTZfdl91MTZtZjQgKG91dCsxMDAsc3JjLHZs KTsNCj4gfQ0KPiBAQCAtNjIsNyArNjIsNyBAQCB2b2lkIGY2ICh2b2lkICpiYXNlLHZvaWQgKm91 dCxzaXplX3QgdmwsIHNpemVfdCBzaGlmdCkNCj4gICAgICB2Ym9vbDY0X3QgbSA9IF9fcmlzY3Zf dmxtX3ZfYjY0IChiYXNlICsgNTAwLCB2bCk7DQo+ICAgICAgdnVpbnQ4bWY4X3QgdiA9IF9fcmlz Y3ZfdmxlOF92X3U4bWY4IChiYXNlICsgNjAwLCB2bCk7DQo+ICAgICAgdnVpbnQxNm1mNF90IHNy YyA9IF9fcmlzY3ZfdmxlMTZfdl91MTZtZjQgKGJhc2UsIHZsKTsNCj4gLSAgICB2dWludDhtZjhf dCB2MiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1mOF9tKG0sc3JjLHYsdmwpOw0KPiArICAgIHZ1 aW50OG1mOF90IHYyID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4X20obSxzcmMsdiwwLHZsKTsN Cj4gICAgICBfX3Jpc2N2X3ZzZThfdl91OG1mOCAob3V0LHYyLHZsKTsNCj4gICAgICBfX3Jpc2N2 X3ZzZThfdl91OG1mOCAob3V0KzEwMCx2LHZsKTsNCj4gfQ0KPiBAQCAtNzEsOCArNzEsOCBAQCB2 b2lkIGY3ICh2b2lkICpiYXNlLHZvaWQgKm91dCxzaXplX3QgdmwsIHNpemVfdCBzaGlmdCkNCj4g ew0KPiAgICAgIHZ1aW50OG1mOF90IHYgPSBfX3Jpc2N2X3ZsZThfdl91OG1mOCAoYmFzZSArIDYw MCwgdmwpOw0KPiAgICAgIHZ1aW50MTZtZjRfdCBzcmMgPSBfX3Jpc2N2X3ZsZTE2X3ZfdTE2bWY0 IChiYXNlLCB2bCk7DQo+IC0gICAgdnVpbnQ4bWY4X3QgdjIgPSBfX3Jpc2N2X3ZuY2xpcHVfd3hf dThtZjgoc3JjLHNoaWZ0LHZsKTsNCj4gLSAgICB2MiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1m OCAoc3JjLHYsdmwpOw0KPiArICAgIHZ1aW50OG1mOF90IHYyID0gX19yaXNjdl92bmNsaXB1X3d4 X3U4bWY4KHNyYyxzaGlmdCwwLHZsKTsNCj4gKyAgICB2MiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91 OG1mOCAoc3JjLHYsMCx2bCk7DQo+ICAgICAgX19yaXNjdl92c2U4X3ZfdThtZjggKG91dCx2Mix2 bCk7DQo+ICAgICAgX19yaXNjdl92c2U4X3ZfdThtZjggKG91dCsxMDAsdix2bCk7DQo+IH0NCj4g QEAgLTgxLDggKzgxLDggQEAgdm9pZCBmOCAodm9pZCAqYmFzZSx2b2lkICpvdXQsc2l6ZV90IHZs LCBzaXplX3Qgc2hpZnQpDQo+IHsNCj4gICAgICB2dWludDhtZjhfdCB2ID0gX19yaXNjdl92bGU4 X3ZfdThtZjggKGJhc2UgKyA2MDAsIHZsKTsNCj4gICAgICB2dWludDE2bWY0X3Qgc3JjID0gX19y aXNjdl92bGUxNl92X3UxNm1mNCAoYmFzZSwgdmwpOw0KPiAtICAgIHZ1aW50OG1mOF90IHYyID0g X19yaXNjdl92bmNsaXB1X3d4X3U4bWY4KHNyYyxzaGlmdCx2bCk7DQo+IC0gICAgdjIgPSBfX3Jp c2N2X3ZuY2xpcHVfd3ZfdThtZjggKHNyYyx2LHZsKTsNCj4gKyAgICB2dWludDhtZjhfdCB2MiA9 IF9fcmlzY3Zfdm5jbGlwdV93eF91OG1mOChzcmMsc2hpZnQsMCx2bCk7DQo+ICsgICAgdjIgPSBf X3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjggKHNyYyx2LDAsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNl OF92X3U4bWY4IChvdXQsdjIsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlOF92X3U4bWY4IChvdXQr MTAwLHYsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlMTZfdl91MTZtZjQgKG91dCsyMDAsc3JjLHZs KTsNCj4gQEAgLTkyLDggKzkyLDggQEAgdm9pZCBmOSAodm9pZCAqYmFzZSx2b2lkICpvdXQsc2l6 ZV90IHZsLCBzaXplX3Qgc2hpZnQpDQo+IHsNCj4gICAgICB2dWludDhtZjhfdCB2ID0gX19yaXNj dl92bGU4X3ZfdThtZjggKGJhc2UgKyA2MDAsIHZsKTsNCj4gICAgICB2dWludDE2bWY0X3Qgc3Jj ID0gX19yaXNjdl92bGUxNl92X3UxNm1mNCAoYmFzZSwgdmwpOw0KPiAtICAgIHZ1aW50OG1mOF90 IHYyID0gX19yaXNjdl92bmNsaXB1X3d4X3U4bWY4KHNyYyxzaGlmdCx2bCk7DQo+IC0gICAgdjIg PSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjhfdHUgKHYyLHNyYyx2LHZsKTsNCj4gKyAgICB2dWlu dDhtZjhfdCB2MiA9IF9fcmlzY3Zfdm5jbGlwdV93eF91OG1mOChzcmMsc2hpZnQsMCx2bCk7DQo+ ICsgICAgdjIgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjhfdHUgKHYyLHNyYyx2LDAsdmwpOw0K PiAgICAgIF9fcmlzY3ZfdnNlOF92X3U4bWY4IChvdXQsdjIsdmwpOw0KPiAgICAgIF9fcmlzY3Zf dnNlOF92X3U4bWY4IChvdXQrMTAwLHYsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlMTZfdl91MTZt ZjQgKG91dCsyMDAsc3JjLHZsKTsNCj4gQEAgLTEwMiwxMSArMTAyLDExIEBAIHZvaWQgZjkgKHZv aWQgKmJhc2Usdm9pZCAqb3V0LHNpemVfdCB2bCwgc2l6ZV90DQo+IHNoaWZ0KQ0KPiB2b2lkIGYx MCAodm9pZCAqYmFzZSx2b2lkICpvdXQsc2l6ZV90IHZsLCBzaXplX3Qgc2hpZnQpDQo+IHsNCj4g ICAgICB2dWludDE2bWY0X3Qgc3JjID0gX19yaXNjdl92bGUxNl92X3UxNm1mNCAoYmFzZSwgdmwp Ow0KPiAtICAgIHZ1aW50OG1mOF90IHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3hfdThtZjgoc3JjLHNo aWZ0LHZsKTsNCj4gLSAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4X3R1KHYsc3JjLHYs dmwpOw0KPiAtICAgIHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjhfdHUodixzcmMsdix2bCk7 DQo+IC0gICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1mOF90dSh2LHNyYyx2LHZsKTsNCj4g LSAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4X3R1KHYsc3JjLHYsdmwpOw0KPiArICAg IHZ1aW50OG1mOF90IHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3hfdThtZjgoc3JjLHNoaWZ0LDAsdmwp Ow0KPiArICAgIHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjhfdHUodixzcmMsdiwwLHZsKTsN Cj4gKyAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4X3R1KHYsc3JjLHYsMCx2bCk7DQo+ ICsgICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1mOF90dSh2LHNyYyx2LDAsdmwpOw0KPiAr ICAgIHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjhfdHUodixzcmMsdiwwLHZsKTsNCj4gICAg ICBfX3Jpc2N2X3ZzZThfdl91OG1mOCAob3V0LHYsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlMTZf dl91MTZtZjQgKG91dCsxMDAsc3JjLHZsKTsNCj4gfQ0KPiBAQCAtMTE1LDEyICsxMTUsMTIgQEAg dm9pZCBmMTEgKHZvaWQgKmJhc2Usdm9pZCAqb3V0LHNpemVfdCB2bCwgc2l6ZV90DQo+IHNoaWZ0 KQ0KPiB7DQo+ICAgICAgdnVpbnQ4bWY4X3QgdiA9IF9fcmlzY3ZfdmxlOF92X3U4bWY4IChiYXNl ICsgNjAwLCB2bCk7DQo+ICAgICAgdnVpbnQxNm1mNF90IHNyYyA9IF9fcmlzY3ZfdmxlMTZfdl91 MTZtZjQgKGJhc2UsIHZsKTsNCj4gLSAgICB2dWludDhtZjhfdCB2MiA9IF9fcmlzY3Zfdm5jbGlw dV93eF91OG1mOChzcmMsc2hpZnQsdmwpOw0KPiAtICAgIHYyID0gX19yaXNjdl92bmNsaXB1X3d2 X3U4bWY4X3R1ICh2MixzcmMsdix2bCk7DQo+IC0gICAgdjIgPSBfX3Jpc2N2X3ZuY2xpcHVfd3Zf dThtZjhfdHUgKHYyLHNyYyx2LHZsKTsNCj4gLSAgICB2MiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91 OG1mOF90dSAodjIsc3JjLHYsdmwpOw0KPiAtICAgIHYyID0gX19yaXNjdl92bmNsaXB1X3d2X3U4 bWY4X3R1ICh2MixzcmMsdix2bCk7DQo+IC0gICAgdjIgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdTht ZjhfdHUgKHYyLHNyYyx2LHZsKTsNCj4gKyAgICB2dWludDhtZjhfdCB2MiA9IF9fcmlzY3Zfdm5j bGlwdV93eF91OG1mOChzcmMsc2hpZnQsMCx2bCk7DQo+ICsgICAgdjIgPSBfX3Jpc2N2X3ZuY2xp cHVfd3ZfdThtZjhfdHUgKHYyLHNyYyx2LDAsdmwpOw0KPiArICAgIHYyID0gX19yaXNjdl92bmNs aXB1X3d2X3U4bWY4X3R1ICh2MixzcmMsdiwwLHZsKTsNCj4gKyAgICB2MiA9IF9fcmlzY3Zfdm5j bGlwdV93dl91OG1mOF90dSAodjIsc3JjLHYsMCx2bCk7DQo+ICsgICAgdjIgPSBfX3Jpc2N2X3Zu Y2xpcHVfd3ZfdThtZjhfdHUgKHYyLHNyYyx2LDAsdmwpOw0KPiArICAgIHYyID0gX19yaXNjdl92 bmNsaXB1X3d2X3U4bWY4X3R1ICh2MixzcmMsdiwwLHZsKTsNCj4gICAgICBfX3Jpc2N2X3ZzZThf dl91OG1mOCAob3V0LHYyLHZsKTsNCj4gICAgICBfX3Jpc2N2X3ZzZThfdl91OG1mOCAob3V0KzEw MCx2LHZsKTsNCj4gICAgICBfX3Jpc2N2X3ZzZTE2X3ZfdTE2bWY0IChvdXQrMjAwLHNyYyx2bCk7 DQo+IEBAIC0xMzAsMTEgKzEzMCwxMSBAQCB2b2lkIGYxMiAodm9pZCAqYmFzZSx2b2lkICpvdXQs c2l6ZV90IHZsLCBzaXplX3QNCj4gc2hpZnQpDQo+IHsNCj4gICAgICB2dWludDhtZjhfdCB2ID0g X19yaXNjdl92bGU4X3ZfdThtZjggKGJhc2UgKyA2MDAsIHZsKTsNCj4gICAgICB2dWludDE2bWY0 X3Qgc3JjID0gX19yaXNjdl92bGUxNl92X3UxNm1mNCAoYmFzZSwgdmwpOw0KPiAtICAgIHZ1aW50 OG1mOF90IHYyID0gX19yaXNjdl92bmNsaXB1X3d4X3U4bWY4KHNyYyxzaGlmdCx2bCk7DQo+IC0g ICAgdjIgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjgoc3JjLHYyLHZsKTsNCj4gLSAgICB2MiA9 IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1mOChzcmMsdjIsdmwpOw0KPiAtICAgIHYyID0gX19yaXNj dl92bmNsaXB1X3d2X3U4bWY4KHNyYyx2Mix2bCk7DQo+IC0gICAgdjIgPSBfX3Jpc2N2X3ZuY2xp cHVfd3ZfdThtZjggKHNyYyx2Mix2bCk7DQo+ICsgICAgdnVpbnQ4bWY4X3QgdjIgPSBfX3Jpc2N2 X3ZuY2xpcHVfd3hfdThtZjgoc3JjLHNoaWZ0LDAsdmwpOw0KPiArICAgIHYyID0gX19yaXNjdl92 bmNsaXB1X3d2X3U4bWY4KHNyYyx2MiwwLHZsKTsNCj4gKyAgICB2MiA9IF9fcmlzY3Zfdm5jbGlw dV93dl91OG1mOChzcmMsdjIsMCx2bCk7DQo+ICsgICAgdjIgPSBfX3Jpc2N2X3ZuY2xpcHVfd3Zf dThtZjgoc3JjLHYyLDAsdmwpOw0KPiArICAgIHYyID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4 IChzcmMsdjIsMCx2bCk7DQo+ICAgICAgX19yaXNjdl92c2U4X3ZfdThtZjggKG91dCx2Mix2bCk7 DQo+ICAgICAgX19yaXNjdl92c2U4X3ZfdThtZjggKG91dCsxMDAsdix2bCk7DQo+IH0NCj4gQEAg LTE0NCw4ICsxNDQsOCBAQCB2b2lkIGYxMyAodm9pZCAqYmFzZSx2b2lkICpiYXNlMix2b2lkICpv dXQsc2l6ZV90IHZsLA0KPiBpbnQgbikNCj4gICAgICB2dWludDE2bWY0X3Qgc3JjID0gX19yaXNj dl92bGUxNl92X3UxNm1mNCAoYmFzZSArIDEwMCwgdmwpOw0KPiAgICAgIGZvciAoaW50IGkgPSAw OyBpIDwgbjsgaSsrKXsNCj4gICAgICAgIHZib29sNjRfdCBtID0gX19yaXNjdl92bG1fdl9iNjQg KGJhc2UgKyBpLCB2bCk7DQo+IC0gICAgICB2dWludDhtZjhfdCB2ID0gX19yaXNjdl92bmNsaXB1 X3d4X3U4bWY4X20obSxzcmMsdmwsdmwpOw0KPiAtICAgICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93 dl91OG1mOF90dSh2LHNyYyx2LHZsKTsNCj4gKyAgICAgIHZ1aW50OG1mOF90IHYgPSBfX3Jpc2N2 X3ZuY2xpcHVfd3hfdThtZjhfbShtLHNyYyx2bCwwLHZsKTsNCj4gKyAgICAgIHYgPSBfX3Jpc2N2 X3ZuY2xpcHVfd3ZfdThtZjhfdHUodixzcmMsdiwwLHZsKTsNCj4gICAgICAgIHYgPSBfX3Jpc2N2 X3ZsZThfdl91OG1mOF90dSAodiwgYmFzZTIsIHZsKTsNCj4gICAgICAgIF9fcmlzY3ZfdnNlOF92 X3U4bWY4IChvdXQgKyAxMDAqaSx2LHZsKTsNCj4gICAgICB9DQo+IEBAIC0xNTcsNyArMTU3LDcg QEAgdm9pZCBmMTQgKHZvaWQgKmJhc2Usdm9pZCAqYmFzZTIsdm9pZCAqb3V0LHNpemVfdCB2bCwN Cj4gaW50IG4pDQo+ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspew0KPiAgICAgICAg dmJvb2w2NF90IG0gPSBfX3Jpc2N2X3ZsbV92X2I2NCAoYmFzZSArIGksIHZsKTsNCj4gICAgICAg IHZ1aW50OG1mOF90IHYgPSBfX3Jpc2N2X3ZsZThfdl91OG1mOCAoYmFzZSArIDYwMCwgdmwpOw0K PiAtICAgICAgdnVpbnQ4bWY4X3QgdjIgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjgoc3JjLHYs dmwpOw0KPiArICAgICAgdnVpbnQ4bWY4X3QgdjIgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjgo c3JjLHYsMCx2bCk7DQo+ICAgICAgICB2ID0gX19yaXNjdl92bGU4X3ZfdThtZjhfdHUgKHYsIGJh c2UyLCB2bCk7DQo+ICAgICAgICBfX3Jpc2N2X3ZzZThfdl91OG1mOCAob3V0ICsgMTAwKmksdix2 bCk7DQo+ICAgICAgICBfX3Jpc2N2X3ZzZThfdl91OG1mOCAob3V0ICsgMTAwKmksdjIsdmwpOw0K PiBAQCAtMTcwLDExICsxNzAsMTEgQEAgdm9pZCBmMTUgKHZvaWQgKmJhc2Usdm9pZCAqYmFzZTIs dm9pZCAqb3V0LHNpemVfdA0KPiB2bCwgaW50IG4pDQo+ICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBuOyBpKyspew0KPiAgICAgICAgdmJvb2w2NF90IG0gPSBfX3Jpc2N2X3ZsbV92X2I2NCAoYmFz ZSArIGksIHZsKTsNCj4gICAgICAgIHZ1aW50OG1mOF90IHYgPSBfX3Jpc2N2X3ZsZThfdl91OG1m OCAoYmFzZSArIDYwMCwgdmwpOw0KPiAtICAgICAgdnVpbnQ4bWY4X3QgdjIgPSBfX3Jpc2N2X3Zu Y2xpcHVfd3ZfdThtZjgoc3JjLHYsdmwpOw0KPiAtICAgICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93 dl91OG1mOChzcmMsdix2bCk7DQo+IC0gICAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4 KHNyYyx2LHZsKTsNCj4gLSAgICAgIHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjgoc3JjLHYs dmwpOw0KPiAtICAgICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1mOChzcmMsdix2bCk7DQo+ ICsgICAgICB2dWludDhtZjhfdCB2MiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1mOChzcmMsdiww LHZsKTsNCj4gKyAgICAgIHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjgoc3JjLHYsMCx2bCk7 DQo+ICsgICAgICB2ID0gX19yaXNjdl92bmNsaXB1X3d2X3U4bWY4KHNyYyx2LDAsdmwpOw0KPiAr ICAgICAgdiA9IF9fcmlzY3Zfdm5jbGlwdV93dl91OG1mOChzcmMsdiwwLHZsKTsNCj4gKyAgICAg IHYgPSBfX3Jpc2N2X3ZuY2xpcHVfd3ZfdThtZjgoc3JjLHYsMCx2bCk7DQo+ICAgICAgICB2ID0g X19yaXNjdl92bGU4X3ZfdThtZjhfdHUgKHYsIGJhc2UyLCB2bCk7DQo+ICAgICAgICBfX3Jpc2N2 X3ZzZThfdl91OG1mOCAob3V0ICsgMTAwKmksdix2bCk7DQo+ICAgICAgICBfX3Jpc2N2X3ZzZThf dl91OG1mOCAob3V0ICsgMTAwKmksdjIsdmwpOw0KPiBAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQg ZjE2ICh1aW50MTZfdCAqYmFzZSx1aW50OF90ICpvdXQsc2l6ZV90IHZsLA0KPiBzaXplX3Qgc2hp ZnQpDQo+IHsNCj4gICAgICB2dWludDE2bWY0X3Qgc3JjID0gX19yaXNjdl92bGUxNl92X3UxNm1m NCAoYmFzZSwgdmwpOw0KPiAgICAgIHZ1aW50OG1mOF90IHYgPSBfX3Jpc2N2X3ZuY3Z0X3hfeF93 X3U4bWY4KHNyYyx2bCk7DQo+IC0gICAgdnVpbnQ4bWY4X3QgdjMgPSBfX3Jpc2N2X3ZuY2xpcHVf d3ZfdThtZjgoc3JjLHYsdmwpOw0KPiArICAgIHZ1aW50OG1mOF90IHYzID0gX19yaXNjdl92bmNs aXB1X3d2X3U4bWY4KHNyYyx2LDAsdmwpOw0KPiAgICAgIF9fcmlzY3ZfdnNlOF92X3U4bWY4IChv dXQsdix2bCk7DQo+ICAgICAgX19yaXNjdl92c2U4X3ZfdThtZjggKG91dCArIDEwMCx2Myx2bCk7 DQo+IH0NCj4NCj4NCg==