Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLIWB-00EHQz-3Q for pgsql-hackers@arkaria.postgresql.org; Sun, 23 Jun 2024 08:24:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sLIW9-007Cg9-6P for pgsql-hackers@arkaria.postgresql.org; Sun, 23 Jun 2024 08:24:09 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLIW8-007Cfj-Et for pgsql-hackers@lists.postgresql.org; Sun, 23 Jun 2024 08:24:09 +0000 Received: from mx05.melco.co.jp ([192.218.140.145]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLIW3-0036zI-Ao for pgsql-hackers@postgresql.org; Sun, 23 Jun 2024 08:24:06 +0000 Received: from mr05.melco.co.jp (mr05 [133.141.98.165]) by mx05.melco.co.jp (Postfix) with ESMTP id 4W6PJG68YCzMt2L9; Sun, 23 Jun 2024 17:23:58 +0900 (JST) Received: from mr05.melco.co.jp (unknown [127.0.0.1]) by mr05.imss (Postfix) with ESMTP id 4W6PJG5J9gzN01Jr; Sun, 23 Jun 2024 17:23:58 +0900 (JST) Received: from mf03_second.melco.co.jp (unknown [192.168.20.183]) by mr05.melco.co.jp (Postfix) with ESMTP id 4W6PJG4wwnzMqftp; Sun, 23 Jun 2024 17:23:58 +0900 (JST) Received: from mf03.melco.co.jp (unknown [133.141.98.183]) by mf03_second.melco.co.jp (Postfix) with ESMTP id 4W6PJG4s2hz5lQD; Sun, 23 Jun 2024 17:23:58 +0900 (JST) Received: from JPN01-TYC-obe.outbound.protection.outlook.com (unknown [104.47.23.168]) by mf03.melco.co.jp (Postfix) with ESMTP id 4W6PJG4Xx1zMss91; Sun, 23 Jun 2024 17:23:58 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b21oqE7QdXAfIJ+SgvXxW5DaiZkoh91iLqzfgZES6LJAUM2CbmgeTVR2tK0GKXuVdX2mLMnfXehqfRYPhihstE8HAqOcO3To4Rpm3ucXY+VR3aSgAoGoKhP0sBsVs6PlvMqwR8IWEGIfvXuveJX7lBPchL7+Q92k5Tp831vouZhVVnJhrJL2eqSCQI0kUnixfGdV8nItYonktjyMB5CdcM9LZP58+wfZGV1jqRKgLzQPoxQR123uzZvjUd64i04JdwH/iQKgIvvc2G5+IwMtWhOF53TwCtS8ARK5XU+w0xX/yMwYVPiZ/FYpPojn3jkP5LFwHxPKyfzNmsvzP3p7Jw== 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=A5G4KHFLHQzEavRxj3NclgSxzjVwuAnWX/sQ908F44s=; b=RPKkO3JkWrTBt+7uXZ5eMz6z/DL63IA9S+gpQOErObikLupdrdtPZ6CRg9haW+cOzmZWkWpyRkz/voYQXXFRQlvZ8qvj1Tpf8p6Ng1+LNyq2ATLZV8SMOacy6h9An/J+7grnrRtIWZRYRqQ3Y7qTUAQTtsPcr5bMg0ZUhObcv0S6mROvm3VoNlgbCYvD1ls41wqdEenlx4KiCzNzmuA+iYH5D1+oU3WDtjd2FFr38i5Cg5kS2wx4bPVQkrsIll1k5l86bbH7ijvHzm3ECx+OGMx+N5ig3BgY9RrTWj0WkiyTUV2wa9gdZI+tIW93z+xmcANMmzXMT/3JV+ck3D2+yA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=df.mitsubishielectric.co.jp; dmarc=pass action=none header.from=df.mitsubishielectric.co.jp; dkim=pass header.d=df.mitsubishielectric.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mitsubishielectricgroup.onmicrosoft.com; s=selector2-mitsubishielectricgroup-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A5G4KHFLHQzEavRxj3NclgSxzjVwuAnWX/sQ908F44s=; b=aMBAHqTyTJ5SfjipcS/VJLPlcXYhe77luON8l+eJc+aUiNiP0mFQUNLGCqRm//wb1aGNspXV7ul0oh/88sGRtcwPzJlYJge7STgIggpkPEM6QvUZ+B+R4/w3Y/5VXom/dthG+Fxfe4KBgovZFvEGOSfGfpXd3u73T1GrLPeA2M0= Received: from TY2PR01MB3835.jpnprd01.prod.outlook.com (2603:1096:404:dd::10) by TYYPR01MB6587.jpnprd01.prod.outlook.com (2603:1096:400:e0::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.28; Sun, 23 Jun 2024 08:23:54 +0000 Received: from TY2PR01MB3835.jpnprd01.prod.outlook.com ([fe80::3415:fa3:49b8:5e7e]) by TY2PR01MB3835.jpnprd01.prod.outlook.com ([fe80::3415:fa3:49b8:5e7e%4]) with mapi id 15.20.7698.025; Sun, 23 Jun 2024 08:23:54 +0000 From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" To: Jelte Fennema-Nio , PostgreSQL-development CC: Bruce Momjian , Robert Haas , Tom Lane , Stephen Frost , Andres Freund , Tomas Vondra , Julien Rouhaud , Daniel Gustafsson , vignesh C , Alexander Pyhalov , "Fujii.Yuki@df.MitsubishiElectric.co.jp" Subject: RE: Partial aggregates pushdown Thread-Topic: Partial aggregates pushdown Thread-Index: AQHaZV+FhOOC+4jqD0O6QaSNENpP/LEfzV+AgBnxJJCADnsVgIAB3niAgATs94CAXSjd0IAMTAEAgADLHwCAAJLNgIAJQrjwgAAp5wCAAQFMEIAALTSAgBFC0CA= Date: Sun, 23 Jun 2024 08:23:32 +0000 Deferred-Delivery: Sun, 23 Jun 2024 08:23:31 +0000 Message-ID: References: <31ab8f7b91cef6e837b3e31ea1e35a9a@postgrespro.ru> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-melpop: 1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=df.MitsubishiElectric.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TY2PR01MB3835:EE_|TYYPR01MB6587:EE_ x-ms-office365-filtering-correlation-id: c5d5bc50-3c40-4da3-ed57-08dc935dd1e5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230037|366013|7416011|376011|1800799021|38070700015; x-microsoft-antispam-message-info: =?utf-8?B?dVJ3dGpPakpTcnpxKzZxOHBiNnp1eldkNWRvTEtBd2hDMXZzVGFPTHJLMWVI?= =?utf-8?B?bnJjNmk2TCs1M3BPNHlZaTFaV2xFT2lnYit0eGxuOEZTZzFvVG9NSDJsTXVm?= =?utf-8?B?cHhBOXFWZFNFc25wUHNzZUhiendhRzhteGYyZ0h5UTdmbnZBSzBRNXljWHJK?= =?utf-8?B?K1FFV20xNGFyamlGZWdGaFNsT3FpMXIzM1ZmdXkyQzJ2cEtRTFdLa0lmeUZn?= =?utf-8?B?Szgvc2NaZXVqd0VKRk1ZSS9zN2ExbXAwRlppRkw4eXFaY0V3eUFxUVdlQnNk?= =?utf-8?B?c29VRDF1RXBwd0VVUTdsOE1BVVY0RlNxNFc3L2hnQ0VEbkJNR3Y3U2NIS3N6?= =?utf-8?B?b213TEhCWjVrdmQ1UmQwOFpBZi9oNm5WYjgwVDFaOGF5R2o4a3V4K3g3MU42?= =?utf-8?B?ZS9USmtveVFkNjBaVnFxbm1ZSmViMXpQZEhwdDdjeFNTdWJvSGtzRm9LaHB0?= =?utf-8?B?SFpQQWJtMG8yR1RodWduTW5zcVc5eFhDNzM3ZTQ2OUFFbWhGZXhTN3dETnNE?= =?utf-8?B?cVEvaGNtNVdsbmNkTnlBWDVBb2E3WmNJaFBEVVBheEpKYjVJT1hzRGkyWnE0?= =?utf-8?B?NVNzNGFvMVpOQXRvNG5IOWNJMVpJOFV1dnY4T25FM3B4Tzl6L3I0R2ZXenEz?= =?utf-8?B?TFFuYzhtSGF3alorMmJHYzcxYlFXekRqVE9rV2xKZWpVQ1I0SE1OU2tRek1k?= =?utf-8?B?emJPc0E0c1VlbGJBZ3NQUFpoVlgxb0pjU2prNmkvUUVMN1BUck1GemREdnlZ?= =?utf-8?B?ZHRnUUVtNnJKR3JhNERZU3BkMGxxS2xLbTFRVmkyU0svdWErWGlSZ3ZETmxr?= =?utf-8?B?Tlh0NHVaY25WOFZhMGNnTGQ0amJMVWZGNDZ0TnBxbDZvMitzNjlaZ045aU9T?= =?utf-8?B?SHVCb1RrcEVtNndZc2VRcVlveWpGUUtBMEFiM3grSmlaZmFuNjd0RzR5N3Ru?= =?utf-8?B?UzRlSmJwTWxaZXc3dE9oZjRyNWxQcEp1UFNCS2pHNTI4OHVBQ2Ewa0lna1Zj?= =?utf-8?B?dTFIVnZMQ3FScHk3QWxuTUVYM3JlcHY2MGpRaGkvTlhvUDJ5VXJDMitkVjY3?= =?utf-8?B?bkdVWEFMM1NaeDJkQWIyeTB1M1NmaURVWEpOakR2TmlyamY4QWt2R2NYWSty?= =?utf-8?B?R012MURNVnNaT0duYVdERU8wWFN0ZnBQaGlqR0ZZUVZuNnp4RTFjQk9wR01u?= =?utf-8?B?NjhVS3BRNFN5Z05GZHhHczR3SWhacGd1bk9GNVd2TUp1a0ZveHBmYUIxZmN0?= =?utf-8?B?cEMzOVg5czFOOFZWZFhheXdRRlpvY0JvazBIZkpqUDJNbk12R0N5ZVFUUExh?= =?utf-8?B?MHpuQytKUlJ5NmpvWWFWOVhIeEl1blQ1OTR2dHZhU09KK2lCQ0w1SnorWHgv?= =?utf-8?B?c2NDY090alp6UW9KWFBUM1I0V01hbFhTVGZ4UVE1aUcranZ2MERmU1hQMUcv?= =?utf-8?B?dWhpMlBJd2htSGtpa1Nrcm83clh0UE56Zk1kbmxUb1VYeTZpQXBKbHg1S3dS?= =?utf-8?B?WVZaQnpNQUljRkluK2xwaXRoaklJMVBKazFTVk10VklZQ2s2eXhVVTMrVS9R?= =?utf-8?B?ZEorVzRlTUlHd3dHd05aNFBkY0tMeXA0L3pnMHNHOHBBR08zOE04L0hXeTlM?= =?utf-8?B?TnNnNlJUcThFOHRPUEF2bEY2RWh5enBxb2JScng3VWZCRCs3SGkxS2hvSklM?= =?utf-8?B?bERUY2VlaTByQVk1UVNrSUVHRnNOT1k0bVlScXJCS2g2OVV5SHFVZTlyQXVK?= =?utf-8?Q?ebTEGM5n2nSmmMd0z0argjZw1LSro2PRiZxs4JC?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY2PR01MB3835.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(366013)(7416011)(376011)(1800799021)(38070700015);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?citueHBWd3hWcDZZbFNIR1BoaTNDVSsyS08wQ3BoeHpMdjVURjcvbjg5Z2RS?= =?utf-8?B?UHoycnEyajFZb1dOeTZFNnRVWDY2TngvbHhDZURqY1lGb1RkbkNZaFdxMEVh?= =?utf-8?B?MHZGb1FjREhLVGVrcEtRSGpUOGwzcnl6Q2YrcUNhUVNNTUI1RUJJSzRoZ0lm?= =?utf-8?B?aWE0MEp6UEFGV0VxeDlaQUpLb2VKTU1BcmErK1VSN25QZTZCUU5aYkZRVklw?= =?utf-8?B?ekk5c09xZmpXTVBXb0JqMUh3TWpBUThpaHF2cUVpcUxvQnBUdTg0eGdTWHJW?= =?utf-8?B?VVF1aGJZWEwxZWUvUHQ5Q21LeGRFZi9ZUS84M0VrUnFKN2RYMDJxdXh4RkV6?= =?utf-8?B?dVNvL3JjQnBpQzRoQjVZM2xxaWFFQ21yZWJwSkNxcTI2cXMzaHZlZk1mQzAv?= =?utf-8?B?bzlwWjZlK1A1UmdQZVNVM2dZRzN4bDZaZGcvdGVzM2pLMk1jQzA1ZDNXVFhk?= =?utf-8?B?QXZUcWsvUkUxU1V6UjVocmg2bld2L1VNVGlkZFRMNjRDYjk2NFhFZFcxb3pY?= =?utf-8?B?ZDlYbzhaNVBhYVRpdmZIVXRYRTRMdkJHRlJ6SytpcFl3QWs0a2dXUzZSZ1c2?= =?utf-8?B?eFBKYTJzWENwMUxldDJOclpLNS90ZWttNy9BUGFWekxDdTVocXR6WU50QWZ0?= =?utf-8?B?WHV1VmsxN1FlbmV2OGJpRkFPeWM4V2pob0E4b3pDcVZaZ1dZSXQ4UHp1QmZa?= =?utf-8?B?WTEwRkhLVER0T1psSGczTk5jYm5iLzdlOTh6Mkd0N1d5aTY5cjJza1U1b21K?= =?utf-8?B?d21GV29YNFlvZWJiUndTd2tZdUlCd2ZBYkdNS2VyZm5CbDM0RXFJS1VaTVl6?= =?utf-8?B?dkg0M3F1SFc2eHJGTzlBdEJpdzBWaGRScElVaWJxVXEwcXJyWXdtOUozWjVS?= =?utf-8?B?amFXM2ZRTjZDQ2ZLRFBJWkZVQmNpOVlDcSszcFVQME5rWlhtcUJVMkFZZDc2?= =?utf-8?B?RFNHTHgzdTk3VENnMjFZTWVxc3duS2pUa21KQloxZEpJcHY5b1k4eWhqdE9Z?= =?utf-8?B?TDl4dWpUQnFxbis4SGR3OThaRkp5UUtkVHMrNHhLZ2FFUXo4cXV5UnZ2RXha?= =?utf-8?B?MnU1c1BPa3hPeFplZlB3SVBCUDdmWkxqVXpqQ0l4bFpacXZ5NHVrOThpSUpl?= =?utf-8?B?NktBWEVUcnN6elBHcll5Q3dmZnJJRDhTckZMN1RYa2hqWGdiSzVQOHNueS94?= =?utf-8?B?bnRaOXdqaW5JREZVM3N5V09qYSs2N1QvTWlSdHBWUVVFenhEQTZ2YndnRmtT?= =?utf-8?B?ejFQc2dGWC9FT24zT3dnK1Q0L2dscHR0eHhvblNLeEUzanNtWk82Y1Y1N3pr?= =?utf-8?B?bnl0T0pDK1Y0ZUFIc3duK0VzdUY5VWNHcUt6WVJxU2VwZDh6bjVuYzNOMHhR?= =?utf-8?B?WXduVU43MHZ2dVlHcHYwS1lOK3UyWm1VN0p6aGFnc284a2ZmQWx0SEJxZG1C?= =?utf-8?B?MVlnQUhkOC9iYi93Y3ZmQjRxR0FDcjA1dXIyTE1xckVkZmJTS2hDb1lYSmVV?= =?utf-8?B?L000OG1Ud2xRb2ZPMHVmT0ZqN3FiNFVFWnU0OTc1MUFPMGNxVEE5UTBKQThU?= =?utf-8?B?RG5YNzlzVG9Wc0NzZ2JyWTB2YjdvYWpBeDl0bXBFRDZ0a2IvaFJWenZIWlRl?= =?utf-8?B?L1pON2h5M3Vvb0VPRUxxUUtmcEl4a3ZQajZQOFkwazE2eVV6Vm8weHNtUnBM?= =?utf-8?B?cFhjejNzVDE0SFdnZzUxbTlvdUxZWGVKUzcvK0F4cHA1Nm9hWG5HWnM4Y0t6?= =?utf-8?B?cE9VWTk3UVRXRktEMVE2aWYzci9LTnQrdjZHVkx3dDJwWkhINjl3dzZKaHZC?= =?utf-8?B?ZzE5Vy94TU9UZjhVUU85U0l2ZGc3Y0RiTjcwV1paTm1pWlNrOXpFczFmeFpz?= =?utf-8?B?YWUvQk94cDBuSUk4R3RwUS96Y1NIOHJnaWJkdjh0eWZRdjlMcWpwODlEWDdw?= =?utf-8?B?dlF2MS9CNGJGVXlqS3E2UUl1N1pFbnBVbEsyNjRQeEErWUNaZVV5TDc0eG1V?= =?utf-8?B?WVJuOFZSbUk4QkxXc3M0cTVxNk44ZzR2UHVQNzllbzhxbHZ1aFEwQVZJVzc2?= =?utf-8?B?MGxkamtDMG8zSW5lSWdsWkdHdUxrWGJDbWhmaXNIT2g4cmdvMUlWZVhueWMx?= =?utf-8?Q?0IR0SiD9zqF0wUB0e2Hsuhvqw?= Content-Type: multipart/mixed; boundary="_003_TY2PR01MB383585CACD74F2106A0563C195CB2TY2PR01MB3835jpnp_" MIME-Version: 1.0 X-OriginatorOrg: df.MitsubishiElectric.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY2PR01MB3835.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5d5bc50-3c40-4da3-ed57-08dc935dd1e5 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jun 2024 08:23:54.2308 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c5a75b62-4bff-4c96-a720-6621ce9978e5 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Qxq6Q/5HPSc3YkpXfxXPXCnx4+AWGg1hkITOyIARAVZ4Jn8sbKgWmxKuJJLYimx2a9GO0998AD+j8NYqnX8fHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYPR01MB6587 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_003_TY2PR01MB383585CACD74F2106A0563C195CB2TY2PR01MB3835jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkuIEplbHRlLCBoYWNrZXJzLg0KDQpTb3JyeSBmb3IgdGhlIGxhdGUgcmVzcG9uc2UuDQpUaGFu ayB5b3UgZm9yIGRldGFpbGVkIGFuZCB1c2VmdWwgY29tbWVudHMuDQoNCk9uIFdlZCwgSnVuIDEy LCAyMDI0IGF0IDU6MDLigK9QTSBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PiB3cm90ZToNCj4NCj4gT24gV2VkLCAxMiBKdW4gMjAyNCBhdCAwNzoyNywgRnVqaWkuWXVraUBk Zi5NaXRzdWJpc2hpRWxlY3RyaWMuY28uanANCj4gPEZ1amlpLll1a2lAZGYubWl0c3ViaXNoaWVs ZWN0cmljLmNvLmpwPiB3cm90ZToNCj4gPiBDb3VsZCB5b3UgcGxlYXNlIGNsYXJpZnkgd2hhdCB5 b3UgbWVhbj8NCj4gPiBBcmUgeW91IHJlZmVycmluZyB0bzoNCj4gPiAgIE9wdGlvbiAxOiBNb2Rp ZnlpbmcgZXhpc3RpbmcgYWdncmVnYXRlIGZ1bmN0aW9ucyB0byBtaW5pbWl6ZSB0aGUgdXNlIG9m IGludGVybmFsIHN0YXRlIHZhbHVlcy4NCj4gPiAgIE9wdGlvbiAyOiBOb3Qgc3VwcG9ydGluZyB0 aGUgcHVzaCBkb3duIG9mIHBhcnRpYWwgYWdncmVnYXRlcyBmb3IgZnVuY3Rpb25zIHdpdGggaW50 ZXJuYWwgc3RhdGUgdmFsdWVzLg0KPg0KPiBCYXNpY2FsbHkgSSBtZWFuIGJvdGggT3B0aW9uIDEg YW5kIE9wdGlvbiAyIHRvZ2V0aGVyLiBpLmUuIG9uY2Ugd2UgZG8NCj4gb3B0aW9uIDEsIHN1cHBv cnRpbmcgcGFydGlhbCBhZ2dyZWdhdGUgcHVzaGRvd24gZm9yIGFsbCBpbXBvcnRhbnQNCj4gYWdn cmVnYXRlcyB3aXRoIGludGVybmFsIHN0YXRlIHZhbHVlcywgdGhlbiBzdXBwb3J0aW5nIHB1c2hk b3duIG9mDQo+IGludGVybmFsIHN0YXRlIHZhbHVlcyBiZWNvbWVzIHVubmVjZXNzYXJ5Lg0KVW5k ZXJzdG9vZC4NCkhvd2V2ZXIsIHRoZXJlIGFyZSBwb2ludHMgdGhhdCBJIGFncmVlIHdpdGggYW5k IG90aGVycyB0aGF0IEkgZG9uJ3QgYWdyZWUgd2l0aC4NCg0KSSB3aWxsIHNob3cgbXkgb3Bpbmlv biB1c2luZyBvbmUgYWdncmVnYXRlIGZ1bmN0aW9uIGF2ZyhpbnQ4KSwgd2hvc2UgdHJhbnN0eXBl IGlzIGludGVybmFsLg0KDQpJIGFncmVlIHRoYXQsIGluIGdlbmVyYWwsIGFueSByZW1vdGUgc2Vy dmVyIHNob3VsZCB0cmFuc21pdCB0aGUgc3RhdGUgdmFsdWUgdG8gdGhlIGxvY2FsIHNlcnZlciB1 c2luZyBhIGZvcm1hdCB3aG9zZSBkYXRhIHR5cGUgaXMgYSBuYXRpdmUgZGF0YSB0eXBlIGFuZCBp cyBub3Qgc2VyaWFsaXplZCwgd2hlbmV2ZXIgcG9zc2libGUuIEkgY2FsbCB0aGlzIGZvcm1hdCBz dGFuZGFyZCBmb3JtYXQgYWxvbmcgd2l0aCBbMV0uDQpGb3IgYXZnKGludDgpLCBJIHRoaW5rIHRo YXQgaXQgaXMgcmF0aW9uYWwgdGhhdCBhbnkgcmVtb3RlIHNlcnZlciB0cmFuc21pdCB0aGUgc3Rh dGUgdmFsdWUgdG8gdGhlIGxvY2FsIHNlcnZlciB1c2luZyB0aGUgZm9ybWF0IHdob3NlIGRhdGEg dHlwZSBpcyBfbnVtZXJpYyBvZiBjb3VudCBhbmQgc3VtLg0KQmVmb3JlIHlvdXIgYWR2aWNlLCBJ IHBsYW4gdG8gdXNlIHRoZSBzdGFuZGFyZCBmb3JtYXQgd2hvc2UgZGF0YSB0eXBlIGlzIHRleHQs IGxpa2UgImNvdW50PTUgc3VtPTEzLjMiLiBCdXQgbm93LCBJIHRoaW5rIHRoYXQgaXQgaXMgcmF0 aW9uYWwgdG8gdXNlIF9udW1lcmljLg0KSSBhdHRhY2hlZCB0aGUgUE9DIHBhdGNoKHRoZSBzZWNv bmQgb25lKSB3aGljaCBzdXBwb3J0cyBhdmcoaW50OCkgd2hvc2Ugc3RhbmRhcmQgZm9ybWF0IGlz IF9udW1lcmljIHR5cGUuDQoNCkhvd2V2ZXIsIEkgZG8gbm90IGFncmVlIHRoYXQgSSBtb2RpZnkg dGhlIGludGVybmFsIHRyYW5zdHlwZSB0byB0aGUgbmF0aXZlIGRhdGEgdHlwZS4gVGhlIHJlYXNv bnMgYXJlIHRoZSBmb2xsb3dpbmcgdGhyZWUuDQoxLiBHZW5lcmFsaXR5DQpJIGJlbGlldmUgd2Ug c2hvdWxkIGRldmVsb3AgYSBtZXRob2QgdGhhdCBjYW4gdGhlb3JldGljYWxseSBhcHBseSB0byBh bnkgYWdncmVnYXRlIGZ1bmN0aW9uLCBldmVuIGlmIHdlIGNhbm5vdCBpbXBsZW1lbnQgaXQgaW1t ZWRpYXRlbHkuIEhvd2V2ZXIsIEkgZmluZCBpdCBleGNlcHRpb25hbGx5IGNoYWxsZW5naW5nIHRv IGRlbW9uc3RyYXRlIHRoYXQgYW55IGludGVybmFsIHRyYW5zdHlwZSBjYW4gYmUgdW5pdmVyc2Fs bHkgY29udmVydGVkIHRvIGEgbmF0aXZlIGRhdGEgdHlwZSBmb3IgYWdncmVnYXRlIGZ1bmN0aW9u cyB0aGF0IGFyZSBwYXJhbGxlbC1zYWZlIHVuZGVyIHRoZSBjdXJyZW50IHBhcmFsbGVsIHF1ZXJ5 IGZlYXR1cmUuIFNwZWNpZmljYWxseSwgcHJvdmluZyB0aGlzIGZvciB1c2VyLWRlZmluZWQgYWdn cmVnYXRlIGZ1bmN0aW9ucyBwcmVzZW50cyBhIHNpZ25pZmljYW50IGRpZmZpY3VsdHkgaW4gbXkg dmlldy4gDQpPbiB0aGUgb3RoZXIgaGFuZCwgSSB0aGluayB0aGF0IHRoZSB1c2FnZSBvZiBleHBv cnQgYW5kIGltcG9ydCBmdW5jdGlvbnMgY2FuIHRoZW9yZXRpY2FsbHkgYXBwbHkgdG8gYW55IGFn Z3JlZ2F0ZSBmdW5jdGlvbnMuDQoNCjIuIEFtb3VudCBvZiBjb2Rlcy4NCkl0IGNvdWxkIG5lZWQg bW9yZSBjb2Rlcy4NCg0KMy4gQ29uY2VybiBhYm91dCBwZXJmb3JtYW5jZQ0KSSdtIGNvbmNlcm5l ZCB0aGF0IGFsdGVyaW5nIHRoZSBjdXJyZW50IGludGVybmFsIGRhdGEgdHlwZXMgY291bGQgaW1w YWN0IHBlcmZvcm1hbmNlLg0KDQo+IFNvIEkgYWdyZWUgaXQncyBwcm9iYWJseSBtb3JlIGNvZGUg dGhhbiB5b3VyIGN1cnJlbnQgYXBwcm9hY2guIEF0IHRoZQ0KPiB2ZXJ5IGxlYXN0IGJlY2F1c2Ug eW91IHdvdWxkIG5lZWQgdG8gaW1wbGVtZW50IGluL291dCB0ZXh0DQo+IHNlcmlhbGl6YXRpb24g ZnVuY3Rpb25zIGZvciB0aGVzZSBpbnRlcm5hbCB0eXBlcyB0aGF0IGN1cnJlbnRseSBkb24ndA0K PiBoYXZlIHRoZW0uIEJ1dCBJIGRvIHRoaW5rIGl0IHdvdWxkIGJlIHF1aXRlIGEgZmVhc2libGUg YW1vdW50LiBBbmQgdG8NCj4gY2xhcmlmeSwgSSBzZWUgYSBmZXcgYmVuZWZpdHMgb2YgdXNpbmcg dGhlIGFwcHJvYWNoIHRoYXQgSSdtDQo+IHByb3Bvc2luZzoNCj4NCj4gMS4gU28gZmFyIGFnZ3Nl cmlhbGZuIGFuZCBhZ2dkZXNlcmlhbGZuIGhhdmVuJ3QgYmVlbiByZXF1aXJlZCB0byBiZQ0KPiBu ZXR3b3JrIHNhZmUgYXQgYWxsLiBJbiB0aGVvcnkgZXh0ZW5zaW9ucyBtaWdodCByZWZlcmVuY2Ug c2hhcmVkDQo+IG1lbW9yeSBwb2ludGVycyB3aXRoIGluIHRoZW0sIHRoYXQgYXJlIHZhbGlkIGZv ciBzZXJpYWxpemF0aW9uIHdpdGhpbg0KPiB0aGUgc2FtZSBwb3N0Z3JlcyBwcm9jZXNzIHRyZWUg YnV0IG5vdCBvdXRzaWRlIG9mIGl0LiBPciB0aGV5IG1pZ2h0DQo+IHNlcmlhbGl6ZSB0byBieXRl cyBpbiBhIHdheSB0aGF0IGRvZXMgbm90IHdvcmsgYWNyb3NzIGRpZmZlcmVudA0KPiBiaWdlbmRp YW4vbGl0dGxlZW5kaWFuIHN5c3RlbXMsIHRodXMgY2F1c2luZyB3cm9uZyBhZ2dyZWdhdGlvbg0K PiByZXN1bHRzLiBOZXZlciBzZW5kaW5nIHJlc3VsdHMgb2Ygc2VyaWFsZm4gb3ZlciB0aGUgbmV0 d29yayBzb2x2ZXMNCj4gdGhhdCBpc3N1ZS4NCkkga25vdy4gSW4gbXkgcHJvcG9zYWwsIHRoZSBz dGFuZGFyZCBmb3JtYXQgaXMgbm90IHNlcmlhcml6ZWQgZGF0YSBieSBzZXJpYWxmbiwgaW5zdGVh ZCwgaXMgdGV4dCBvciBvdGhlciBuYXRpdmUgZGF0YSB0eXBlLg0KSnVzdCB0byBjbGFyaWZ5LCBJ J20gd3JpdGluZyB0aGlzIHRvIGF2b2lkIGFueSBwb3RlbnRpYWwgbWlzdW5kZXJzdGFuZGluZy4N Cg0KPiAyLiBQYXJ0aWFsIGFnZ3JlZ2F0ZSBwdXNoZG93biBhY3Jvc3MgZGlmZmVyZW50IHBvc3Rn cmVzIHZlcnNpb24gY291bGQNCj4gYmUgbWFkZSB0byB3b3JrIGJ5IHVzaW5nIHRoZSBpbi9vdXQg ZnVuY3Rpb25zIGluc3RlYWQgb2YgcmVjZWl2ZS9zZW5kDQo+IGZ1bmN0aW9ucywgdG8gdXNlIHRo ZSB0ZXh0IGJhc2VkIHNlcmlhbGl6YXRpb24gZm9ybWF0ICh3aGljaCBzaG91bGQgYmUNCj4gc3Rh YmxlIGFjcm9zcyB2ZXJzaW9ucykNClRoYW5rIHlvdSBmb3IgeW91ciBhZHZpY2UuIEkgYWdyZWUg dGhhdCwgYXMgbWVudGlvbmVkIGVhcmxpZXIsIHN0YW5kYXJkIGZvcm1hdHMgc2hvdWxkIGdlbmVy YWxseSB1c2UgbmF0aXZlIGRhdGEgdHlwZXMgd2hlbmV2ZXIgcG9zc2libGUuDQoNCj4gMy4gSXQg c2VlbXMgbmljZSB0byBiZSBhYmxlIHRvIGdldCB0aGUgdGV4dCByZXByZXNlbnRhdGlvbiBvZiBh bGwNCj4gUEFSVElBTF9BR0dSRUdBVEUgb3V0cHV0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuIFdp dGggeW91ciBhcHByb2FjaCBJDQo+IHRoaW5rIHdoYXQgY3VycmVudGx5IGhhcHBlbnMgaXMgdGhh dCBpdCB3aWxsIHNob3cgYSBieXRlYSBmb3Igd2hlbg0KPiB1c2luZyBQQVJUSUFMX0FHR1JFR0FU RSBmb3IgYXZnKGJpZ2ludCkgZGlyZWN0bHkgZnJvbSBwc3FsLg0KSSBtYXkgaGF2ZSBjYXVzZWQg c29tZSBtaXN1bmRlcnN0YW5kaW5nLg0KVG8gY2xhcmlmeSBhbmQgcHJldmVudCBhbnkgcG90ZW50 aWFsIG1pc3VuZGVyc3RhbmRpbmc6IEluIG15IHByb3Bvc2FsLCB0aGUgc3RhbmRhcmQgZm9ybWF0 IGRvZXMgbm90IGludm9sdmUgc2VyaWFsaXplZCBkYXRhIGJ5IHNlcmlhbGZuOyByYXRoZXIsIGl0 IHV0aWxpemVzIHRleHQgb3Igb3RoZXIgbmF0aXZlIGRhdGEgdHlwZXMuDQoNCj4gNC4gSW4gbXkg ZXhwZXJpZW5jZSBpdCdzIGVhc2llciB0byBnZXQgcGF0Y2hlcyBtZXJnZWQgaWYgdGhleSBkb24n dA0KPiBjaGFuZ2UgYSBsb3QgYXQgb25jZSBhbmQgYXJlIHVzZWZ1bCBieSB0aGVtc2VsdmVzLiBU aGlzIHdheSB5b3UgY291bGQNCj4gc3BsaXQgeW91ciBjdXJyZW50IHBhdGNoIHVwIGludG8gbXVs dGlwbGUgc21hbGxlciBwYXRjaGVzLCBlYWNoIG9mDQo+IHdoaWNoIGNvdWxkIGJlIG1lcmdlZCBz ZXBhcmF0ZWx5IChhcHBhcnQgZnJvbSBiIHJlbHlpbmcgb24gYSkuDQo+IGEuIEludHJvZHVjZSBQ QVJUSUFMX0FHR1JFR0FURSBzeW50YXggZm9yIG5vbi1pbnRlcm5hbCAmIG5vbi1wc2V1ZG8gdHlw ZXMNCj4gYi4gU3RhcnQgdXNpbmcgUEFSVElBTF9BR0dSRUdBVEUgZm9yIEZEVyBwdXNoZG93bg0K PiBjLiBDb252ZXJ0IE51bWVyaWNBZ2dTdGF0ZSB0byBub24taW50ZXJuYWwNCj4gZC4gQ29udmVy dCBQb2x5TnVtQWdnU3RhdGUgdG8gbm9uLWludGVybmFsDQo+IGUuIFVzZSBub24taW50ZXJuYWwg Zm9yIHN0cmluZ19hZ2dfc2VyaWFsaXplIGFnZ3JlZ2F0ZXMNCj4gZi4gVXNlIG5vbi1pbnRlcm5h bCBmb3IgYXJyYXlfYWdnX3NlcmlhbGl6ZQ0KPiBnLiBVc2Ugbm9uLWludGVybmFsIGZvciBhcnJh eV9hZ2dfYXJyYXlfc2VyaWFsaXplDQpJIHVuZGVyc3RhbmQuIFRoYW5rIHlvdSBmb3IgYWR2aWNl Lg0KQmFzaWNhbGx5IHJlc3BvbmRpbmcgdG8geW91ciBhZHZpY2UsDQpmb3Igbm93LCBJIHByZXBh cmUgdHdvIFBPQyBwYXRjaGVzLg0KVGhlIGZpcnN0IHN1cHBvcnRzIGNhc2UgYSwgY3VycmVudGx5 IGNvdmVyaW5nIG9ubHkgYXZnKGludDQpIGFuZCBvdGhlciBhZ2dyZWdhdGUgZnVuY3Rpb25zIHRo YXQgZG8gbm90IHJlcXVpcmUgaW1wb3J0IG9yIGV4cG9ydCBmdW5jdGlvbnMsIHN1Y2ggYXMgbWlu LCBtYXgsIGFuZCBjb3VudC4NClRoZSBzZWNvbmQgc3VwcG9ydHMgY2FzZSBiIGFuZCBjb21tb25s eSB1c2VkIGZ1bmN0aW9ucyBsaWtlIHN1bSBhbmQgYXZnLiBDdXJyZW50bHksIGl0IG9ubHkgaW5j bHVkZXMgYXZnKGludDgpLg0KDQpCZXN0IHJlZ2FyZHMsIFl1a2kgRnVqaWkNCi0tDQpZdWtpIEZ1 amlpDQpJbmZvcm1hdGlvbiBUZWNobm9sb2d5IFImRCBDZW50ZXIsIE1pdHN1YmlzaGkgRWxlY3Ry aWMgQ29ycG9yYXRpb24NCg0KWzFdIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvYXR0YWNobWVudC8xNjA2NTkvUEdDb25mRGV2MjAyNF9QcmVzZW50YXRpb25fQWdncmVnYXRp b25fU2NhbGVvdXRfRkRXX1NoYXJkaW5nXzIwMjQwNTMxLnBkZg0K --_003_TY2PR01MB383585CACD74F2106A0563C195CB2TY2PR01MB3835jpnp_ Content-Type: application/octet-stream; name="0001-POC-Partial-aggregate-pushdown-notinternal-transtype.patch" Content-Description: 0001-POC-Partial-aggregate-pushdown-notinternal-transtype.patch Content-Disposition: attachment; filename="0001-POC-Partial-aggregate-pushdown-notinternal-transtype.patch"; size=123368; creation-date="Sun, 23 Jun 2024 07:38:00 GMT"; modification-date="Sun, 23 Jun 2024 08:23:32 GMT" Content-Transfer-Encoding: base64 RnJvbSAyYTk2NWQ5N2E2YjEyZWE1NzJkMTRkY2I1MWVjZmQ2OGQ2ZmZmNWI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZdWtpIEZ1amlpIDxGdWppaS5ZdWtpQGRmLk1pdHN1YmlzaGlF bGVjdHJpYy5jby5qcD4KRGF0ZTogVGh1LCAyMCBKdW4gMjAyNCAxMTozNToyMyArMDkwMApTdWJq ZWN0OiBbUEFUQ0ggMS8yXSBQT0MgUGFydGlhbCBhZ2dyZWdhdGUgcHVzaGRvd247IG5vdGludGVy bmFsIHRyYW5zdHlwZQoKVGhpcyBpcyBhIFBPQyBwYXRjaC4KQWRkIHRoZSBjYXNlcyBpbiB0aGF0 IHRoZSB0cmFuc3R5cGUgaXMgbm90IGludGVybmFsIGFuZCBub3QgcHNldWRvIHR5cGUuClNvIGZh ciwgb25seSBhdmcoaW50NCkgYW5kIG90aGVyIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgd2hpY2ggZG8g bm90IG5lZWQgaW1wb3J0IG9yIGV4cG9ydCBmdW5jdGlvbnMgbGlrZSBtaW4sIG1heCwgZXRjLgpU aGVyZSBhcmUgdGhlIGZvbGxvd2luZyB0YXNrcyByZW1haW5pbmcuCjEuIEFkZCBzdWZmaWNpZW50 IGRvY3VtZW50cyBhbmQgY29tbWVudHMgYW5kIHRlc3RzLgoyLiBDb25zaWRlciBhcHByb3ByaWF0 ZSBwb3NpdGlvbiBvZiB0aGUgbmV3IGtleXdvcmQgIlBBUlRJQUxfQUdHUkVHQVRFIi4KMy4gQ29u c2lkZXIgdG8gYXZvaWQgdG8gbWFrZSB0aGUgbmV3IGtleXdvcmQgIlBBUlRJQUxfQUdHUkVHQVRF IiBiZWNvbWUgYSByZXNlcnZlZCB3b3JkLgo0LiBTdXBwb3J0IG90aGVyIGJ1aWx0LWluIGFnZ3Jl Z2F0ZSBmdW5jdGlvbnMgbGlrZSBzdW0sIGF2ZywgY291bnQuCjUuIFN1cHBvcnQgdXNlci1kZWZp bmVkIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMuCi0tLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVwYXJz ZS5jICAgICAgICAgICAgICAgIHwgIDgzICsrLQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9w b3N0Z3Jlc19mZHcub3V0ICAgIHwgNTQzICsrKysrKysrKysrKysrKystLQogY29udHJpYi9wb3N0 Z3Jlc19mZHcvb3B0aW9uLmMgICAgICAgICAgICAgICAgIHwgICA0ICstCiBjb250cmliL3Bvc3Rn cmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYyAgICAgICAgICAgfCAyMDIgKysrKysrLQogY29udHJpYi9w b3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmggICAgICAgICAgIHwgIDEyICstCiBjb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCAgICAgfCAxMjMgKysrLQogc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUFnZy5jICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvYmFja2Vu ZC9ub2Rlcy9tYWtlZnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgICAgIHwgMTMzICsrKystCiBzcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3ByZXAvcHJlcGFnZy5jICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAyOSArLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgIDI0ICstCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfY2xhdXNlLmMgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgMjQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmMgICAgICAgICAgICAgICB8ICAyMSArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2FnZ3JlZ2F0ZS5kYXQgICAgICAgICAgfCAyMzAgKysrKy0tLS0KIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYWdncmVnYXRlLmggICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv bm9kZUFnZy5oICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmggICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfYWdnLmgg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0ICAgICAgICB8ICAgMSArCiAyOCBmaWxlcyBjaGFuZ2VkLCAxMjQ2IGluc2VydGlvbnMo KyksIDIzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9k ZXBhcnNlLmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9kZXBhcnNlLmMKaW5kZXggZmI1OTBjODdl Ni4uYWVlZGVmYWY5NyAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVwYXJzZS5j CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2RlcGFyc2UuYwpAQCAtMjA2LDcgKzIwNiw3IEBA IHN0YXRpYyBib29sIGlzX3N1YnF1ZXJ5X3ZhcihWYXIgKm5vZGUsIFJlbE9wdEluZm8gKmZvcmVp Z25yZWwsCiAJCQkJCQkJaW50ICpyZWxubywgaW50ICpjb2xubyk7CiBzdGF0aWMgdm9pZCBnZXRf cmVsYXRpb25fY29sdW1uX2FsaWFzX2lkcyhWYXIgKm5vZGUsIFJlbE9wdEluZm8gKmZvcmVpZ25y ZWwsCiAJCQkJCQkJCQkJICBpbnQgKnJlbG5vLCBpbnQgKmNvbG5vKTsKLQorc3RhdGljIGJvb2wg cGFydGlhbF9hZ2dfb2soQWdncmVmICphZ2csIFBnRmR3UmVsYXRpb25JbmZvICpmcGluZm8pOwog CiAvKgogICogRXhhbWluZSBlYWNoIHF1YWwgY2xhdXNlIGluIGlucHV0X2NvbmRzLCBhbmQgY2xh c3NpZnkgdGhlbSBpbnRvIHR3byBncm91cHMsCkBAIC05MTEsOCArOTExLDkgQEAgZm9yZWlnbl9l eHByX3dhbGtlcihOb2RlICpub2RlLAogCQkJCWlmICghSVNfVVBQRVJfUkVMKGdsb2JfY3h0LT5m b3JlaWducmVsKSkKIAkJCQkJcmV0dXJuIGZhbHNlOwogCi0JCQkJLyogT25seSBub24tc3BsaXQg YWdncmVnYXRlcyBhcmUgcHVzaGFibGUuICovCi0JCQkJaWYgKGFnZy0+YWdnc3BsaXQgIT0gQUdH U1BMSVRfU0lNUExFKQorCQkJCWlmIChhZ2ctPmFnZ3NwbGl0ICE9IEFHR1NQTElUX1NJTVBMRSAm JiBhZ2ctPmFnZ3NwbGl0ICE9IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMKQorCQkJCQlyZXR1cm4g ZmFsc2U7CisJCQkJaWYgKGFnZy0+YWdnc3BsaXQgPT0gQUdHU1BMSVRfSU5JVElBTF9TRVJJQUwg JiYgIXBhcnRpYWxfYWdnX29rKGFnZywgZnBpbmZvKSkKIAkJCQkJcmV0dXJuIGZhbHNlOwogCiAJ CQkJLyogQXMgdXN1YWwsIGl0IG11c3QgYmUgc2hpcHBhYmxlLiAqLwpAQCAtMzY1OSwxOCArMzY2 MCwzNSBAQCBkZXBhcnNlQWdncmVmKEFnZ3JlZiAqbm9kZSwgZGVwYXJzZV9leHByX2N4dCAqY29u dGV4dCkKIAlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKIAlib29sCQl1c2VfdmFyaWFk aWM7CiAKLQkvKiBPbmx5IGJhc2ljLCBub24tc3BsaXQgYWdncmVnYXRpb24gYWNjZXB0ZWQuICov Ci0JQXNzZXJ0KG5vZGUtPmFnZ3NwbGl0ID09IEFHR1NQTElUX1NJTVBMRSk7CisKKwlBc3NlcnQo KG5vZGUtPmFnZ3NwbGl0ID09IEFHR1NQTElUX1NJTVBMRSkgfHwKKwkJICAgKG5vZGUtPmFnZ3Nw bGl0ID09IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMKSk7CiAKIAkvKiBDaGVjayBpZiBuZWVkIHRv IHByaW50IFZBUklBRElDIChjZi4gcnVsZXV0aWxzLmMpICovCiAJdXNlX3ZhcmlhZGljID0gbm9k ZS0+YWdndmFyaWFkaWM7CiAKIAkvKiBGaW5kIGFnZ3JlZ2F0ZSBuYW1lIGZyb20gYWdnZm5vaWQg d2hpY2ggaXMgYSBwZ19wcm9jIGVudHJ5ICovCiAJYXBwZW5kRnVuY3Rpb25OYW1lKG5vZGUtPmFn Z2Zub2lkLCBjb250ZXh0KTsKKwogCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsKIAot CS8qIEFkZCBESVNUSU5DVCAqLwotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAobm9kZS0+ YWdnZGlzdGluY3QgIT0gTklMKSA/ICJESVNUSU5DVCAiIDogIiIpOworCS8qIEFkZCBESVNUSU5D VCBvciBQQVJUSUFMX0FHR1JFR0FURSAqLworCWlmIChub2RlLT5hZ2dkaXN0aW5jdCAhPSBOSUwp IHsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJESVNUSU5DVCAiKTsKKwl9IGVsc2Ug aWYgKG5vZGUtPmFnZ3NwbGl0ID09IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMKSB7CisJCUhlYXBU dXBsZQlhZ2d0dXA7CisJCUZvcm1fcGdfYWdncmVnYXRlIGFnZ2Zvcm07CisKKwkJYWdndHVwID0g U2VhcmNoU3lzQ2FjaGUxKEFHR0ZOT0lELCBPYmplY3RJZEdldERhdHVtKG5vZGUtPmFnZ2Zub2lk KSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZChhZ2d0dXApKQorCQkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGFnZ3JlZ2F0ZSAldSIsIG5vZGUtPmFnZ2Zub2lkKTsKKwkJ YWdnZm9ybSA9IChGb3JtX3BnX2FnZ3JlZ2F0ZSkgR0VUU1RSVUNUKGFnZ3R1cCk7CisKKwkJaWYg KChhZ2dmb3JtLT5hZ2d0cmFuc3R5cGUgPT0gSU5URVJOQUxPSUQpIHx8IE9pZElzVmFsaWQoYWdn Zm9ybS0+YWdnZmluYWxmbikpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIlBBUlRJ QUxfQUdHUkVHQVRFICIpOworCisJCVJlbGVhc2VTeXNDYWNoZShhZ2d0dXApOworCX0KIAogCWlm IChBR0dLSU5EX0lTX09SREVSRURfU0VUKG5vZGUtPmFnZ2tpbmQpKQogCXsKQEAgLTM4NjUsOSAr Mzg4MywxMCBAQCBhcHBlbmRHcm91cEJ5Q2xhdXNlKExpc3QgKnRsaXN0LCBkZXBhcnNlX2V4cHJf Y3h0ICpjb250ZXh0KQogCVF1ZXJ5CSAgICpxdWVyeSA9IGNvbnRleHQtPnJvb3QtPnBhcnNlOwog CUxpc3RDZWxsICAgKmxjOwogCWJvb2wJCWZpcnN0ID0gdHJ1ZTsKKwlQZ0Zkd1JlbGF0aW9uSW5m byAqZnBpbmZvID0gKFBnRmR3UmVsYXRpb25JbmZvICopIGNvbnRleHQtPmZvcmVpZ25yZWwtPmZk d19wcml2YXRlOwogCiAJLyogTm90aGluZyB0byBiZSBkb25lLCBpZiB0aGVyZSdzIG5vIEdST1VQ IEJZIGNsYXVzZSBpbiB0aGUgcXVlcnkuICovCi0JaWYgKCFxdWVyeS0+Z3JvdXBDbGF1c2UpCisJ aWYgKCFmcGluZm8tPmdyb3VwX2NsYXVzZSkKIAkJcmV0dXJuOwogCiAJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhidWYsICIgR1JPVVAgQlkgIik7CkBAIC0zODg1LDcgKzM5MDQsNyBAQCBhcHBlbmRH cm91cEJ5Q2xhdXNlKExpc3QgKnRsaXN0LCBkZXBhcnNlX2V4cHJfY3h0ICpjb250ZXh0KQogCSAq IHRvIGVtcHR5LCBhbmQgaW4gYW55IGNhc2UgdGhlIHJlZHVuZGFuY3kgc2l0dWF0aW9uIG9uIHRo ZSByZW1vdGUgbWlnaHQKIAkgKiBiZSBkaWZmZXJlbnQgdGhhbiB3aGF0IHdlIHRoaW5rIGhlcmUu CiAJICovCi0JZm9yZWFjaChsYywgcXVlcnktPmdyb3VwQ2xhdXNlKQorCWZvcmVhY2gobGMsIGZw aW5mby0+Z3JvdXBfY2xhdXNlKQogCXsKIAkJU29ydEdyb3VwQ2xhdXNlICpncnAgPSAoU29ydEdy b3VwQ2xhdXNlICopIGxmaXJzdChsYyk7CiAKQEAgLTQyMDYsMyArNDIyNSw0OSBAQCBnZXRfcmVs YXRpb25fY29sdW1uX2FsaWFzX2lkcyhWYXIgKm5vZGUsIFJlbE9wdEluZm8gKmZvcmVpZ25yZWws CiAJLyogU2hvdWxkbid0IGdldCBoZXJlICovCiAJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgZXhw cmVzc2lvbiBpbiBzdWJxdWVyeSBvdXRwdXQiKTsKIH0KKworLyoKKyAqIC0tLS0tLS0tLS0KKyAq IENoZWNrIHRoYXQgcGFydGlhbCBhZ2dyZWdhdGUgImFnZyIgaXMgc2FmZSB0byBwdXNoIGRvd24u CisgKgorICogSXQgaXMgcHVzaGRvd24tc2FmZSB3aGVuIGFsbCBvZiB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnMgYXJlIHRydWU6CisgKgorICogICAgKiBhZ2cgaXMgYW4gQUdHS0lORF9OT1JNQUwg YWdncmVnYXRlIHdoaWNoIGNvbnRhaW5zIG5vIERJU1RJTkNUIG9yCisgKiAgICBPUkRFUiBCWSBj bGF1c2VzCisgKiAgICAqIHJlbW90ZSBzZXJ2ZXIgY2FuIHJldHVybiBwYXJ0aWFsIGFnZ3JlZ2F0 ZSByZXN1bHRzCisgKiAtLS0tLS0tLS0tCisgKi8KK3N0YXRpYyBib29sCitwYXJ0aWFsX2FnZ19v ayhBZ2dyZWYgKmFnZywgUGdGZHdSZWxhdGlvbkluZm8gKmZwaW5mbykKK3sKKwlIZWFwVHVwbGUJ YWdndHVwOworCUZvcm1fcGdfYWdncmVnYXRlIGFnZ2Zvcm07CisJYm9vbAkJcGFydGlhbF9hZ2df b2sgPSB0cnVlOworCisJQXNzZXJ0KGFnZy0+YWdnc3BsaXQgPT0gQUdHU1BMSVRfSU5JVElBTF9T RVJJQUwpOworCisJLyogV2UgZG9uJ3Qgc3VwcG9ydCBjb21wbGV4IHBhcnRpYWwgYWdncmVnYXRl cyAqLworCWlmIChhZ2ctPmFnZ2Rpc3RpbmN0IHx8IGFnZy0+YWdna2luZCAhPSBBR0dLSU5EX05P Uk1BTCB8fCBhZ2ctPmFnZ29yZGVyICE9IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCisJYWdndHVw ID0gU2VhcmNoU3lzQ2FjaGUxKEFHR0ZOT0lELCBPYmplY3RJZEdldERhdHVtKGFnZy0+YWdnZm5v aWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQoYWdndHVwKSkKKwkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGFnZ3JlZ2F0ZSAldSIsIGFnZy0+YWdnZm5vaWQpOworCWFn Z2Zvcm0gPSAoRm9ybV9wZ19hZ2dyZWdhdGUpIEdFVFNUUlVDVChhZ2d0dXApOworCisJcGFydGlh bF9hZ2dfb2sgPSBhZ2dmb3JtLT5hZ2dwYXJ0aWFscHVzaGRvd25zYWZlICYmIGZwaW5mby0+cGFy dGlhbF9hZ2dyZWdhdGVfc3VwcG9ydDsKKwlpZihwYXJ0aWFsX2FnZ19vayl7CisJCWlmIChmcGlu Zm8tPnJlbW90ZXZlcnNpb24gPT0gMCkKKwkJeworCQkJUEdjb25uCSAgICpjb25uID0gR2V0Q29u bmVjdGlvbihmcGluZm8tPnVzZXIsIGZhbHNlLCBOVUxMKTsKKworCQkJZnBpbmZvLT5yZW1vdGV2 ZXJzaW9uID0gUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pOworCQl9CisKKwkJaWYgKGZwaW5mby0+cmVt b3RldmVyc2lvbiAhPSBQR19WRVJTSU9OX05VTSkKKwkJCXBhcnRpYWxfYWdnX29rID0gZmFsc2U7 CisJfQorCisJUmVsZWFzZVN5c0NhY2hlKGFnZ3R1cCk7CisJcmV0dXJuIHBhcnRpYWxfYWdnX29r OworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQK aW5kZXggZWE1NjZkNTAzNC4uNGJhOTZiMjgwZSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zk dy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC0xMDA5NSwzNiArMTAwOTUsNTcgQEAgUkVT RVQgZW5hYmxlX3BhcnRpdGlvbndpc2Vfam9pbjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3QgcGFy dGl0aW9ud2lzZSBhZ2dyZWdhdGVzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1DUkVBVEUgVEFCTEUgcGFnZ190 YWIgKGEgaW50LCBiIGludCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkgUkFOR0UoYSk7CitBTFRFUiBT RVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQUREIGZkd190dXBsZV9jb3N0ICcwLjEnKTsKK0NSRUFU RSBUWVBFIG1vb2QgQVMgZW51bSAoJ3NhZCcsICdvaycsICdoYXBweScpOworQUxURVIgRVhURU5T SU9OIHBvc3RncmVzX2ZkdyBBREQgVFlQRSBtb29kOworQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiIChh IGludCwgYiBpbnQsIGMgdGV4dCwgY19zZXJpYWwgaW50NCwKKwkJCQkJY19pbnQ0YXJyYXkgX2lu dDQsIGNfaW50ZXJ2YWwgaW50ZXJ2YWwsCisJCQkJCWNfbW9uZXkgbW9uZXksIGNfMWMgdGV4dCwg Y18xYiBieXRlYSwKKwkJCQkJY19iaXQgYml0KDIpLCBjXzFvcjNpbnQyIGludDIsCisJCQkJCWNf MW9yM2ludDQgaW50NCwgY18xb3IzaW50OCBpbnQ4LAorCQkJCQljX2Jvb2wgYm9vbCwgY19lbnVt IG1vb2QsIGNfcGdfbHNuIHBnX2xzbiwKKwkJCQkJY190aWQgdGlkLCBjX2ludDRyYW5nZSBpbnQ0 cmFuZ2UsCisJCQkJCWNfaW50NG11bHRpcmFuZ2UgaW50NG11bHRpcmFuZ2UsCisJCQkJCWNfdGlt ZSB0aW1lLCBjX3RpbWV0eiB0aW1ldHosCisJCQkJCWNfdGltZXN0YW1wIHRpbWVzdGFtcCwgY190 aW1lc3RhbXB0eiB0aW1lc3RhbXB0eiwKKwkJCQkJY194aWQ4IHhpZDgpCisJUEFSVElUSU9OIEJZ IFJBTkdFKGEpOwogQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiX3AxIChMSUtFIHBhZ2dfdGFiKTsKIENS RUFURSBUQUJMRSBwYWdnX3RhYl9wMiAoTElLRSBwYWdnX3RhYik7CiBDUkVBVEUgVEFCTEUgcGFn Z190YWJfcDMgKExJS0UgcGFnZ190YWIpOwotSU5TRVJUIElOVE8gcGFnZ190YWJfcDEgU0VMRUNU IGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMTA7Ci1JTlNFUlQgSU5UTyBwYWdnX3Rh Yl9wMiBTRUxFQ1QgaSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAyMCBhbmQgKGkgJSAz MCkgPj0gMTA7Ci1JTlNFUlQgSU5UTyBwYWdnX3RhYl9wMyBTRUxFQ1QgaSAlIDMwLCBpICUgNTAs IHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkg V0hFUkUgKGkgJSAzMCkgPCAzMCBhbmQgKGkgJSAzMCkgPj0gMjA7CitTRVQgVGltZVpvbmUgPSAn VVRDJzsKK0lOU0VSVCBJTlRPIHBhZ2dfdGFiX3AxIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9f Y2hhcihpLzMwLCAnRk0wMDAwJyksIGksIGFycmF5WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAn IHNlY29uZHMnKTo6aW50ZXJ2YWwsIChpICUgMik6Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4 dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0KTo6Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0 aGVuIEInMDEnIGVsc2UgQicxMScgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVs c2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3 aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAg dGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5kLCAoY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3Nh ZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1vb2QsICgnMC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8 fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJhbmdlKDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFu Z2UoMCwgaSksIGludDRyYW5nZSgxMDAsIDEwMCArIGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChp IHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzAwOjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBz ZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vj b25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vj b25kcycpOjppbnRlcnZhbCwgKChpICUgMTApOjp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMTA7CitJTlNFUlQgSU5UTyBwYWdnX3Rh Yl9wMiBTRUxFQ1QgaSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpLCBpLCBh cnJheVsoaSAlIDIpLCAwXSwgKChpICUgMikgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAoaSAl IDIpOjptb25leSwgKChpIC0gMSkgJSAxMCk6OnRleHQsICgoKGkgLSAxKSAlIDEwKTo6dGV4dCk6 OmJ5dGVhLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiBCJzAxJyBlbHNlIEInMTEnIGVuZCwg Y2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAy KSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxz ZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gdHJ1ZSBlbHNlIGZhbHNlIGVuZCwg KGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuICdzYWQnIGVsc2UgJ2hhcHB5JyBlbmQpOjptb29k LCAoJzAvJyB8fCBpKTo6cGdfbHNuLCAoJygwLCcgfHwgaSB8fCAnKScpOjp0aWQsIGludDRyYW5n ZSgwLCBpKSwgaW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKDAsIGkpLCBpbnQ0cmFuZ2UoMTAwLCAx MDAgKyBpKSksICcwMDowMDowMCc6OnRpbWUgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWws ICcwMDowMDowMCc6OnRpbWV0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAt MDEtMDEnOjp0aW1lc3RhbXAgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAx LTAxJzo6dGltZXN0YW1wdHogKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICgoaSAlIDEw KTo6dGV4dCk6OnhpZDggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVSRSAoaSAl IDMwKSA8IDIwIGFuZCAoaSAlIDMwKSA+PSAxMDsKK0lOU0VSVCBJTlRPIHBhZ2dfdGFiX3AzIFNF TEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJyksIGksIGFycmF5Wyhp ICUgMiksIDBdLCAoKGkgJSAyKSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsIChpICUgMik6Om1v bmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0KTo6Ynl0ZWEs IGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIEInMDEnIGVsc2UgQicxMScgZW5kLCBjYXNlIHdo ZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0 aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5k LCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5kLCAoY2FzZSB3 aGVuIChpICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1vb2QsICgnMC8n IHx8IGkpOjpwZ19sc24sICgnKDAsJyB8fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJhbmdlKDAsIGkp LCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSksIGludDRyYW5nZSgxMDAsIDEwMCArIGkp KSwgJzAwOjAwOjAwJzo6dGltZSArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzAwOjAw OjAwJzo6dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6 OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0 aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKChpICUgMTApOjp0ZXh0 KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwg MzAgYW5kIChpICUgMzApID49IDIwOwogLS0gQ3JlYXRlIGZvcmVpZ24gcGFydGl0aW9ucwogQ1JF QVRFIEZPUkVJR04gVEFCTEUgZnBhZ2dfdGFiX3AxIFBBUlRJVElPTiBPRiBwYWdnX3RhYiBGT1Ig VkFMVUVTIEZST00gKDApIFRPICgxMCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25h bWUgJ3BhZ2dfdGFiX3AxJyk7CiBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmcGFnZ190YWJfcDIgUEFS VElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCkgU0VSVkVSIGxv b3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ3BhZ2dfdGFiX3AyJyk7CiBDUkVBVEUgRk9SRUlH TiBUQUJMRSBmcGFnZ190YWJfcDMgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJP TSAoMjApIFRPICgzMCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ3BhZ2df dGFiX3AzJyk7CiBBTkFMWVpFIHBhZ2dfdGFiOworQU5BTFlaRSBwYWdnX3RhYl9wMTsKK0FOQUxZ WkUgcGFnZ190YWJfcDI7CitBTkFMWVpFIHBhZ2dfdGFiX3AzOwogQU5BTFlaRSBmcGFnZ190YWJf cDE7CiBBTkFMWVpFIGZwYWdnX3RhYl9wMjsKIEFOQUxZWkUgZnBhZ2dfdGFiX3AzOworU0VUIGV4 dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CiAtLSBXaGVuIEdST1VQIEJZIGNsYXVzZSBtYXRjaGVzIHdp dGggUEFSVElUSU9OIEtFWS4KIC0tIFBsYW4gd2l0aCBwYXJ0aXRpb253aXNlIGFnZ3JlZ2F0ZXMg aXMgZGlzYWJsZWQKIFNFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9hZ2dyZWdhdGUgVE8gZmFsc2U7 CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgYSwgc3VtKGIpLCBtaW4oYiksIGNvdW50KCop IEZST00gcGFnZ190YWIgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIgT1JERVIgQlkgMTsK LSAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEdy b3VwQWdncmVnYXRlCi0gICBHcm91cCBLZXk6IHBhZ2dfdGFiLmEKLSAgIEZpbHRlcjogKGF2Zyhw YWdnX3RhYi5iKSA8ICcyMic6Om51bWVyaWMpCi0gICAtPiAgQXBwZW5kCi0gICAgICAgICAtPiAg Rm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMSBwYWdnX3RhYl8xCi0gICAgICAgICAtPiAgRm9y ZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCi0gICAgICAgICAtPiAgRm9yZWln biBTY2FuIG9uIGZwYWdnX3RhYl9wMyBwYWdnX3RhYl8zCi0oNyByb3dzKQorICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29y dAorICAgU29ydCBLZXk6IHBhZ2dfdGFiLmEKKyAgIC0+ICBIYXNoQWdncmVnYXRlCisgICAgICAg ICBHcm91cCBLZXk6IHBhZ2dfdGFiLmEKKyAgICAgICAgIEZpbHRlcjogKGF2ZyhwYWdnX3RhYi5i KSA8ICcyMic6Om51bWVyaWMpCisgICAgICAgICAtPiAgQXBwZW5kCisgICAgICAgICAgICAgICAt PiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMSBwYWdnX3RhYl8xCisgICAgICAgICAgICAg ICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCisgICAgICAgICAg ICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMyBwYWdnX3RhYl8zCisoOSByb3dz KQogCiAtLSBQbGFuIHdpdGggcGFydGl0aW9ud2lzZSBhZ2dyZWdhdGVzIGlzIGVuYWJsZWQKIFNF VCBlbmFibGVfcGFydGl0aW9ud2lzZV9hZ2dyZWdhdGUgVE8gdHJ1ZTsKQEAgLTEwMTU0LDM2ICsx MDE3NSw2NiBAQCBTRUxFQ1QgYSwgc3VtKGIpLCBtaW4oYiksIGNvdW50KCopIEZST00gcGFnZ190 YWIgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIgTwogIDIxIHwgMjEwMCB8ICAgMSB8ICAg MTAwCiAoNiByb3dzKQogCistLSBDaGVjayBwYXJ0aWFsIGFnZ3JlZ2F0ZSBvdmVyIHBhcnRpdGlv bmVkIHRhYmxlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYXZnKFBBUlRJ QUxfQUdHUkVHQVRFIGEpLCBhdmcoYSkgRlJPTSBwYWdnX3RhYjsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBGaW5hbGl6ZSBBZ2dyZWdhdGUKKyAg IE91dHB1dDogYXZnKFBBUlRJQUxfQUdHUkVHQVRFIHBhZ2dfdGFiLmEpLCBhdmcocGFnZ190YWIu YSkKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAg ICAgIE91dHB1dDogKFBBUlRJQUwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIHBhZ2dfdGFiLmEpKSwg KFBBUlRJQUwgYXZnKHBhZ2dfdGFiLmEpKQorICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dy ZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIpCisgICAgICAgICAgICAgICBS ZW1vdGUgU1FMOiBTRUxFQ1QgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBhdmcoUEFSVElBTF9B R0dSRUdBVEUgYSkgRlJPTSBwdWJsaWMucGFnZ190YWJfcDEKKyAgICAgICAgIC0+ICBGb3JlaWdu IFNjYW4KKyAgICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJQUwgYXZnKFBBUlRJQUxfQUdHUkVH QVRFIHBhZ2dfdGFiXzEuYSkpLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMS5hKSkKKyAgICAgICAg ICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AyIHBhZ2df dGFiXzEpCisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYXZnKFBBUlRJQUxfQUdH UkVHQVRFIGEpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSkgRlJPTSBwdWJsaWMucGFnZ190YWJf cDIKKyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgIE91dHB1dDogKFBB UlRJQUwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIHBhZ2dfdGFiXzIuYSkpLCAoUEFSVElBTCBhdmco cGFnZ190YWJfMi5hKSkKKyAgICAgICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChw dWJsaWMuZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzIpCisgICAgICAgICAgICAgICBSZW1vdGUgU1FM OiBTRUxFQ1QgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUg YSkgRlJPTSBwdWJsaWMucGFnZ190YWJfcDMKKygxNSByb3dzKQorCitTRUxFQ1QgYXZnKFBBUlRJ QUxfQUdHUkVHQVRFIGEpLCBhdmcoYSkgRlJPTSBwYWdnX3RhYjsKKyAgICAgYXZnICAgICAgfCAg ICAgICAgIGF2ZyAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgezMwMDAsNDM1MDB9IHwgMTQuNTAwMDAwMDAwMDAwMDAwMAorKDEgcm93KQorCiAtLSBDaGVj ayB3aXRoIHdob2xlLXJvdyByZWZlcmVuY2UKIC0tIFNob3VsZCBoYXZlIGFsbCB0aGUgY29sdW1u cyBpbiB0aGUgdGFyZ2V0IGxpc3QgZm9yIHRoZSBnaXZlbiByZWxhdGlvbgogRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKQogU0VMRUNUIGEsIGNvdW50KHQxKSBGUk9NIHBhZ2dfdGFiIHQxIEdS T1VQIEJZIGEgSEFWSU5HIGF2ZyhiKSA8IDIyIE9SREVSIEJZIDE7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSBNZXJnZSBBcHBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBPdXRwdXQ6IHQxLmEsIChjb3Vu dCgoKHQxLiopOjpwYWdnX3RhYikpKQogICAgU29ydCBLZXk6IHQxLmEKLSAgIC0+ICBHcm91cEFn Z3JlZ2F0ZQotICAgICAgICAgT3V0cHV0OiB0MS5hLCBjb3VudCgoKHQxLiopOjpwYWdnX3RhYikp Ci0gICAgICAgICBHcm91cCBLZXk6IHQxLmEKLSAgICAgICAgIEZpbHRlcjogKGF2Zyh0MS5iKSA8 ICcyMic6Om51bWVyaWMpCi0gICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFn Z190YWJfcDEgdDEKLSAgICAgICAgICAgICAgIE91dHB1dDogdDEuYSwgdDEuKiwgdDEuYgotICAg ICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGMgRlJPTSBwdWJsaWMucGFnZ190 YWJfcDEgT1JERVIgQlkgYSBBU0MgTlVMTFMgTEFTVAotICAgLT4gIEdyb3VwQWdncmVnYXRlCi0g ICAgICAgICBPdXRwdXQ6IHQxXzEuYSwgY291bnQoKCh0MV8xLiopOjpwYWdnX3RhYikpCi0gICAg ICAgICBHcm91cCBLZXk6IHQxXzEuYQotICAgICAgICAgRmlsdGVyOiAoYXZnKHQxXzEuYikgPCAn MjInOjpudW1lcmljKQotICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2df dGFiX3AyIHQxXzEKLSAgICAgICAgICAgICAgIE91dHB1dDogdDFfMS5hLCB0MV8xLiosIHQxXzEu YgotICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGMgRlJPTSBwdWJsaWMu cGFnZ190YWJfcDIgT1JERVIgQlkgYSBBU0MgTlVMTFMgTEFTVAotICAgLT4gIEdyb3VwQWdncmVn YXRlCi0gICAgICAgICBPdXRwdXQ6IHQxXzIuYSwgY291bnQoKCh0MV8yLiopOjpwYWdnX3RhYikp Ci0gICAgICAgICBHcm91cCBLZXk6IHQxXzIuYQotICAgICAgICAgRmlsdGVyOiAoYXZnKHQxXzIu YikgPCAnMjInOjpudW1lcmljKQotICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu ZnBhZ2dfdGFiX3AzIHQxXzIKLSAgICAgICAgICAgICAgIE91dHB1dDogdDFfMi5hLCB0MV8yLios IHQxXzIuYgotICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGMgRlJPTSBw dWJsaWMucGFnZ190YWJfcDMgT1JERVIgQlkgYSBBU0MgTlVMTFMgTEFTVAotKDIzIHJvd3MpCisg ICAtPiAgQXBwZW5kCisgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZQorICAgICAgICAgICAgICAg T3V0cHV0OiB0MS5hLCBjb3VudCgoKHQxLiopOjpwYWdnX3RhYikpCisgICAgICAgICAgICAgICBH cm91cCBLZXk6IHQxLmEKKyAgICAgICAgICAgICAgIEZpbHRlcjogKGF2Zyh0MS5iKSA8ICcyMic6 Om51bWVyaWMpCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFn Z190YWJfcDEgdDEKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogdDEuYSwgdDEuKiwgdDEu YgorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGMsIGNfc2Vy aWFsLCBjX2ludDRhcnJheSwgY19pbnRlcnZhbCwgY19tb25leSwgY18xYywgY18xYiwgY19iaXQs IGNfMW9yM2ludDIsIGNfMW9yM2ludDQsIGNfMW9yM2ludDgsIGNfYm9vbCwgY19lbnVtLCBjX3Bn X2xzbiwgY190aWQsIGNfaW50NHJhbmdlLCBjX2ludDRtdWx0aXJhbmdlLCBjX3RpbWUsIGNfdGlt ZXR6LCBjX3RpbWVzdGFtcCwgY190aW1lc3RhbXB0eiwgY194aWQ4IEZST00gcHVibGljLnBhZ2df dGFiX3AxCisgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZQorICAgICAgICAgICAgICAgT3V0cHV0 OiB0MV8xLmEsIGNvdW50KCgodDFfMS4qKTo6cGFnZ190YWIpKQorICAgICAgICAgICAgICAgR3Jv dXAgS2V5OiB0MV8xLmEKKyAgICAgICAgICAgICAgIEZpbHRlcjogKGF2Zyh0MV8xLmIpIDwgJzIy Jzo6bnVtZXJpYykKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZw YWdnX3RhYl9wMiB0MV8xCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQxXzEuYSwgdDFf MS4qLCB0MV8xLmIKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBi LCBjLCBjX3NlcmlhbCwgY19pbnQ0YXJyYXksIGNfaW50ZXJ2YWwsIGNfbW9uZXksIGNfMWMsIGNf MWIsIGNfYml0LCBjXzFvcjNpbnQyLCBjXzFvcjNpbnQ0LCBjXzFvcjNpbnQ4LCBjX2Jvb2wsIGNf ZW51bSwgY19wZ19sc24sIGNfdGlkLCBjX2ludDRyYW5nZSwgY19pbnQ0bXVsdGlyYW5nZSwgY190 aW1lLCBjX3RpbWV0eiwgY190aW1lc3RhbXAsIGNfdGltZXN0YW1wdHosIGNfeGlkOCBGUk9NIHB1 YmxpYy5wYWdnX3RhYl9wMgorICAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAg ICAgIE91dHB1dDogdDFfMi5hLCBjb3VudCgoKHQxXzIuKik6OnBhZ2dfdGFiKSkKKyAgICAgICAg ICAgICAgIEdyb3VwIEtleTogdDFfMi5hCisgICAgICAgICAgICAgICBGaWx0ZXI6IChhdmcodDFf Mi5iKSA8ICcyMic6Om51bWVyaWMpCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9u IHB1YmxpYy5mcGFnZ190YWJfcDMgdDFfMgorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0 MV8yLmEsIHQxXzIuKiwgdDFfMi5iCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBT RUxFQ1QgYSwgYiwgYywgY19zZXJpYWwsIGNfaW50NGFycmF5LCBjX2ludGVydmFsLCBjX21vbmV5 LCBjXzFjLCBjXzFiLCBjX2JpdCwgY18xb3IzaW50MiwgY18xb3IzaW50NCwgY18xb3IzaW50OCwg Y19ib29sLCBjX2VudW0sIGNfcGdfbHNuLCBjX3RpZCwgY19pbnQ0cmFuZ2UsIGNfaW50NG11bHRp cmFuZ2UsIGNfdGltZSwgY190aW1ldHosIGNfdGltZXN0YW1wLCBjX3RpbWVzdGFtcHR6LCBjX3hp ZDggRlJPTSBwdWJsaWMucGFnZ190YWJfcDMKKygyNSByb3dzKQogCiBTRUxFQ1QgYSwgY291bnQo dDEpIEZST00gcGFnZ190YWIgdDEgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIgT1JERVIg QlkgMTsKICBhICB8IGNvdW50IApAQCAtMTAxOTYsMjcgKzEwMjQ3LDQxMyBAQCBTRUxFQ1QgYSwg Y291bnQodDEpIEZST00gcGFnZ190YWIgdDEgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIg T1JERVIgQlkgMTsKICAyMSB8ICAgMTAwCiAoNiByb3dzKQogCi0tLSBXaGVuIEdST1VQIEJZIGNs YXVzZSBkb2VzIG5vdCBtYXRjaCB3aXRoIFBBUlRJVElPTiBLRVkuCi1FWFBMQUlOIChDT1NUUyBP RkYpCistLSBQYXJ0aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIHdoZW4gdGhl cmUgaXMgYSBIQVZJTkcgY2xhdXNlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBTRUxF Q1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBI QVZJTkcgc3VtKGEpIDwgNzAwIE9SREVSIEJZIDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgRmluYWxpemUgR3JvdXBB Z2dyZWdhdGUKKyAgIE91dHB1dDogcGFnZ190YWIuYiwgYXZnKHBhZ2dfdGFiLmEpLCBtYXgocGFn Z190YWIuYSksIGNvdW50KCopCiAgICBHcm91cCBLZXk6IHBhZ2dfdGFiLmIKICAgIEZpbHRlcjog KHN1bShwYWdnX3RhYi5hKSA8IDcwMCkKKyAgIC0+ICBTb3J0CisgICAgICAgICBPdXRwdXQ6IHBh Z2dfdGFiLmIsIChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5hKSksIChQQVJUSUFMIG1heChwYWdnX3Rh Yi5hKSksIChQQVJUSUFMIGNvdW50KCopKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFiLmEpKQorICAg ICAgICAgU29ydCBLZXk6IHBhZ2dfdGFiLmIKKyAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAg ICAgICAgIC0+ICBQYXJ0aWFsIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogcGFnZ190YWIuYiwgUEFSVElBTCBhdmcocGFnZ190YWIuYSksIFBBUlRJQUwgbWF4KHBh Z2dfdGFiLmEpLCBQQVJUSUFMIGNvdW50KCopLCBQQVJUSUFMIHN1bShwYWdnX3RhYi5hKQorICAg ICAgICAgICAgICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAgICAgICAg ICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWIuYiwgcGFnZ190YWIuYQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIgRlJPTSBw dWJsaWMucGFnZ190YWJfcDEKKyAgICAgICAgICAgICAgIC0+ICBQYXJ0aWFsIEhhc2hBZ2dyZWdh dGUKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5iLCBQQVJUSUFMIGF2 ZyhwYWdnX3RhYl8xLmEpLCBQQVJUSUFMIG1heChwYWdnX3RhYl8xLmEpLCBQQVJUSUFMIGNvdW50 KCopLCBQQVJUSUFMIHN1bShwYWdnX3RhYl8xLmEpCisgICAgICAgICAgICAgICAgICAgICBHcm91 cCBLZXk6IHBhZ2dfdGFiXzEuYgorICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2Nh biBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzEKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5iLCBwYWdnX3RhYl8xLmEKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiIEZST00gcHVibGljLnBhZ2dfdGFi X3AyCisgICAgICAgICAgICAgICAtPiAgUGFydGlhbCBIYXNoQWdncmVnYXRlCisgICAgICAgICAg ICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYiwgUEFSVElBTCBhdmcocGFnZ190YWJfMi5h KSwgUEFSVElBTCBtYXgocGFnZ190YWJfMi5hKSwgUEFSVElBTCBjb3VudCgqKSwgUEFSVElBTCBz dW0ocGFnZ190YWJfMi5hKQorICAgICAgICAgICAgICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3Rh Yl8yLmIKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZw YWdnX3RhYl9wMyBwYWdnX3RhYl8yCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IHBhZ2dfdGFiXzIuYiwgcGFnZ190YWJfMi5hCisgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMworKDI2IHJvd3Mp CisKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9V UCBCWSBiIEhBVklORyBzdW0oYSkgPCA3MDAgT1JERVIgQlkgMTsKKyBiICB8ICAgICAgICAgYXZn ICAgICAgICAgfCBtYXggfCBjb3VudCAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t Ky0tLS0tLS0KKyAgMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorICAxIHwg MTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMTAgfCAxMC4wMDAwMDAwMDAwMDAw MDAwIHwgIDIwIHwgICAgNjAKKyAxMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2 MAorIDIwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMjEgfCAxMS4wMDAw MDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAzMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAg MjAgfCAgICA2MAorIDMxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgNDAg fCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyA0MSB8IDExLjAwMDAwMDAwMDAw MDAwMDAgfCAgMjEgfCAgICA2MAorKDEwIHJvd3MpCisKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBh cmUgc2FmZSB0byBwdXNoIGRvd24gd2l0aG91dCBoYXZpbmcgY2xhdXNlCitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00g cGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBGaW5hbGl6ZSBHcm91cEFnZ3Jl Z2F0ZQorICAgT3V0cHV0OiBwYWdnX3RhYi5iLCBhdmcocGFnZ190YWIuYSksIG1heChwYWdnX3Rh Yi5hKSwgY291bnQoKikKKyAgIEdyb3VwIEtleTogcGFnZ190YWIuYgorICAgLT4gIFNvcnQKKyAg ICAgICAgIE91dHB1dDogcGFnZ190YWIuYiwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiLmEpKSwgKFBB UlRJQUwgbWF4KHBhZ2dfdGFiLmEpKSwgKFBBUlRJQUwgY291bnQoKikpCisgICAgICAgICBTb3J0 IEtleTogcGFnZ190YWIuYgorICAgICAgICAgLT4gIEFwcGVuZAorICAgICAgICAgICAgICAgLT4g IFBhcnRpYWwgSGFzaEFnZ3JlZ2F0ZQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdn X3RhYi5iLCBQQVJUSUFMIGF2ZyhwYWdnX3RhYi5hKSwgUEFSVElBTCBtYXgocGFnZ190YWIuYSks IFBBUlRJQUwgY291bnQoKikKKyAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEtleTogcGFnZ190 YWIuYgorICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBh Z2dfdGFiX3AxIHBhZ2dfdGFiCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBh Z2dfdGFiLmIsIHBhZ2dfdGFiLmEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBT UUw6IFNFTEVDVCBhLCBiIEZST00gcHVibGljLnBhZ2dfdGFiX3AxCisgICAgICAgICAgICAgICAt PiAgUGFydGlhbCBIYXNoQWdncmVnYXRlCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBh Z2dfdGFiXzEuYiwgUEFSVElBTCBhdmcocGFnZ190YWJfMS5hKSwgUEFSVElBTCBtYXgocGFnZ190 YWJfMS5hKSwgUEFSVElBTCBjb3VudCgqKQorICAgICAgICAgICAgICAgICAgICAgR3JvdXAgS2V5 OiBwYWdnX3RhYl8xLmIKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24g cHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBPdXRwdXQ6IHBhZ2dfdGFiXzEuYiwgcGFnZ190YWJfMS5hCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMgor ICAgICAgICAgICAgICAgLT4gIFBhcnRpYWwgSGFzaEFnZ3JlZ2F0ZQorICAgICAgICAgICAgICAg ICAgICAgT3V0cHV0OiBwYWdnX3RhYl8yLmIsIFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzIuYSksIFBB UlRJQUwgbWF4KHBhZ2dfdGFiXzIuYSksIFBBUlRJQUwgY291bnQoKikKKyAgICAgICAgICAgICAg ICAgICAgIEdyb3VwIEtleTogcGFnZ190YWJfMi5iCisgICAgICAgICAgICAgICAgICAgICAtPiAg Rm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8yLmIsIHBhZ2dfdGFiXzIuYQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIgRlJPTSBwdWJs aWMucGFnZ190YWJfcDMKKygyNSByb3dzKQorCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNv dW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOworIGIgIHwgICAgICAg ICBhdmcgICAgICAgICB8IG1heCB8IGNvdW50IAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0rLS0tLS0tLQorICAwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisg IDEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAgMiB8IDEyLjAwMDAwMDAw MDAwMDAwMDAgfCAgMjIgfCAgICA2MAorICAzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8 ICAgIDYwCisgIDQgfCAxNC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyAgNSB8IDE1 LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgICA2MAorICA2IHwgMTYuMDAwMDAwMDAwMDAwMDAw MCB8ICAyNiB8ICAgIDYwCisgIDcgfCAxNy4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAK KyAgOCB8IDE4LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjggfCAgICA2MAorICA5IHwgMTkuMDAwMDAw MDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYwCisgMTAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIw IHwgICAgNjAKKyAxMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDEyIHwg MTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgMTMgfCAxMy4wMDAwMDAwMDAwMDAw MDAwIHwgIDIzIHwgICAgNjAKKyAxNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2 MAorIDE1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgMTYgfCAxNi4wMDAw MDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAxNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAg MjcgfCAgICA2MAorIDE4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgMTkg fCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyAyMCB8IDEwLjAwMDAwMDAwMDAw MDAwMDAgfCAgMjAgfCAgICA2MAorIDIxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAg IDYwCisgMjIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAyMyB8IDEzLjAw MDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDI0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyNCB8ICAgIDYwCisgMjUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyAy NiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDI3IHwgMTcuMDAwMDAwMDAw MDAwMDAwMCB8ICAyNyB8ICAgIDYwCisgMjggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwg ICAgNjAKKyAyOSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorIDMwIHwgMTAu MDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMzEgfCAxMS4wMDAwMDAwMDAwMDAwMDAw IHwgIDIxIHwgICAgNjAKKyAzMiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2MAor IDMzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisgMzQgfCAxNC4wMDAwMDAw MDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyAzNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUg fCAgICA2MAorIDM2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgMzcgfCAx Ny4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyAzOCB8IDE4LjAwMDAwMDAwMDAwMDAw MDAgfCAgMjggfCAgICA2MAorIDM5IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYw CisgNDAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyA0MSB8IDExLjAwMDAw MDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDQyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAy MiB8ICAgIDYwCisgNDMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyA0NCB8 IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorIDQ1IHwgMTUuMDAwMDAwMDAwMDAw MDAwMCB8ICAyNSB8ICAgIDYwCisgNDYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAg NjAKKyA0NyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDQ4IHwgMTguMDAw MDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgNDkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwg IDI5IHwgICAgNjAKKyg1MCByb3dzKQorCistLSBQYXJ0aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUg dG8gcHVzaCBkb3duIGV2ZW4gaWYgd2UgbmVlZCBib3RoIHZhcmlhYmxlIGFuZCB2YXJpYWJsZS1i YXNlZCBleHByZXNzaW9uCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYXZn KGEpLCBtYXgoYSksIGNvdW50KCopLCAoYi8yKTo6bnVtZXJpYyBGUk9NIHBhZ2dfdGFiIEdST1VQ IEJZIGIvMiBPUkRFUiBCWSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNvcnQKKyAgIE91dHB1dDogKGF2ZyhwYWdnX3RhYi5h KSksIChtYXgocGFnZ190YWIuYSkpLCAoY291bnQoKikpLCAoKCgocGFnZ190YWIuYiAvIDIpKSk6 Om51bWVyaWMpLCAoKHBhZ2dfdGFiLmIgLyAyKSkKKyAgIFNvcnQgS2V5OiAoKCgocGFnZ190YWIu YiAvIDIpKSk6Om51bWVyaWMpCisgICAtPiAgRmluYWxpemUgR3JvdXBBZ2dyZWdhdGUKKyAgICAg ICAgIE91dHB1dDogYXZnKHBhZ2dfdGFiLmEpLCBtYXgocGFnZ190YWIuYSksIGNvdW50KCopLCAo KChwYWdnX3RhYi5iIC8gMikpKTo6bnVtZXJpYywgKChwYWdnX3RhYi5iIC8gMikpCisgICAgICAg ICBHcm91cCBLZXk6ICgocGFnZ190YWIuYiAvIDIpKQorICAgICAgICAgLT4gIFNvcnQKKyAgICAg ICAgICAgICAgIE91dHB1dDogKChwYWdnX3RhYi5iIC8gMikpLCAoUEFSVElBTCBhdmcocGFnZ190 YWIuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuYSkpLCAoUEFSVElBTCBjb3VudCgqKSksIHBh Z2dfdGFiLmIKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiAoKHBhZ2dfdGFiLmIgLyAyKSkKKyAg ICAgICAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBQYXJ0aWFs IEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogKChwYWdn X3RhYi5iIC8gMikpLCBQQVJUSUFMIGF2ZyhwYWdnX3RhYi5hKSwgUEFSVElBTCBtYXgocGFnZ190 YWIuYSksIFBBUlRJQUwgY291bnQoKiksIHBhZ2dfdGFiLmIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdyb3VwIEtleTogKHBhZ2dfdGFiLmIgLyAyKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IChwYWdnX3RhYi5iIC8gMiks IHBhZ2dfdGFiLmEsIHBhZ2dfdGFiLmIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiIEZST00gcHVibGljLnBhZ2dfdGFiX3AxCisgICAgICAg ICAgICAgICAgICAgICAtPiAgUGFydGlhbCBIYXNoQWdncmVnYXRlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBPdXRwdXQ6ICgocGFnZ190YWJfMS5iIC8gMikpLCBQQVJUSUFMIGF2ZyhwYWdn X3RhYl8xLmEpLCBQQVJUSUFMIG1heChwYWdnX3RhYl8xLmEpLCBQQVJUSUFMIGNvdW50KCopLCBw YWdnX3RhYl8xLmIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEtleTogKHBhZ2df dGFiXzEuYiAvIDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2Fu IG9uIHB1YmxpYy5mcGFnZ190YWJfcDIgcGFnZ190YWJfMQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiAocGFnZ190YWJfMS5iIC8gMiksIHBhZ2dfdGFiXzEuYSwgcGFn Z190YWJfMS5iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBT RUxFQ1QgYSwgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMgorICAgICAgICAgICAgICAgICAgICAg LT4gIFBhcnRpYWwgSGFzaEFnZ3JlZ2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiAoKHBhZ2dfdGFiXzIuYiAvIDIpKSwgUEFSVElBTCBhdmcocGFnZ190YWJfMi5hKSwgUEFS VElBTCBtYXgocGFnZ190YWJfMi5hKSwgUEFSVElBTCBjb3VudCgqKSwgcGFnZ190YWJfMi5iCisg ICAgICAgICAgICAgICAgICAgICAgICAgICBHcm91cCBLZXk6IChwYWdnX3RhYl8yLmIgLyAyKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBh Z2dfdGFiX3AzIHBhZ2dfdGFiXzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogKHBhZ2dfdGFiXzIuYiAvIDIpLCBwYWdnX3RhYl8yLmEsIHBhZ2dfdGFiXzIuYgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIgRlJP TSBwdWJsaWMucGFnZ190YWJfcDMKKygyOCByb3dzKQorCitTRUxFQ1QgYXZnKGEpLCBtYXgoYSks IGNvdW50KCopLCAoYi8yKTo6bnVtZXJpYyBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIvMiBPUkRF UiBCWSA0OworICAgICAgICAgYXZnICAgICAgICAgfCBtYXggfCBjb3VudCB8IG51bWVyaWMgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0KKyAxMC41MDAwMDAw MDAwMDAwMDAwIHwgIDIxIHwgICAxMjAgfCAgICAgICAwCisgMTIuNTAwMDAwMDAwMDAwMDAwMCB8 ICAyMyB8ICAgMTIwIHwgICAgICAgMQorIDE0LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgIDEy MCB8ICAgICAgIDIKKyAxNi41MDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAxMjAgfCAgICAgICAz CisgMTguNTAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgMTIwIHwgICAgICAgNAorIDEwLjUwMDAw MDAwMDAwMDAwMDAgfCAgMjEgfCAgIDEyMCB8ICAgICAgIDUKKyAxMi41MDAwMDAwMDAwMDAwMDAw IHwgIDIzIHwgICAxMjAgfCAgICAgICA2CisgMTQuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAg MTIwIHwgICAgICAgNworIDE2LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgIDEyMCB8ICAgICAg IDgKKyAxOC41MDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAxMjAgfCAgICAgICA5CisgMTAuNTAw MDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgMTIwIHwgICAgICAxMAorIDEyLjUwMDAwMDAwMDAwMDAw MDAgfCAgMjMgfCAgIDEyMCB8ICAgICAgMTEKKyAxNC41MDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwg ICAxMjAgfCAgICAgIDEyCisgMTYuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgMTIwIHwgICAg ICAxMworIDE4LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgIDEyMCB8ICAgICAgMTQKKyAxMC41 MDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAxMjAgfCAgICAgIDE1CisgMTIuNTAwMDAwMDAwMDAw MDAwMCB8ICAyMyB8ICAgMTIwIHwgICAgICAxNgorIDE0LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjUg fCAgIDEyMCB8ICAgICAgMTcKKyAxNi41MDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAxMjAgfCAg ICAgIDE4CisgMTguNTAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgMTIwIHwgICAgICAxOQorIDEw LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgIDEyMCB8ICAgICAgMjAKKyAxMi41MDAwMDAwMDAw MDAwMDAwIHwgIDIzIHwgICAxMjAgfCAgICAgIDIxCisgMTQuNTAwMDAwMDAwMDAwMDAwMCB8ICAy NSB8ICAgMTIwIHwgICAgICAyMgorIDE2LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgIDEyMCB8 ICAgICAgMjMKKyAxOC41MDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAxMjAgfCAgICAgIDI0Ciso MjUgcm93cykKKworLS0gUGFydGlhbCBhZ2dyZWdhdGVzIHB1c2hkb3duIGJlaGF2ZXMgc2FuZSB3 aXRoIG5vbi1zaGlwcGVkIGdyb3VwaW5nIGVsZW1lbnRzCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpCitTRUxFQ1QgYXZnKGEpLCAoYi8yKTo6bnVtZXJpYywgJ3Rlc3QnIHRlc3QgRlJPTSBw YWdnX3RhYiBHUk9VUCBCWSAzLCBiLzIgT1JERVIgQlkgMSwgMiBMSU1JVCAxMDsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBMaW1pdAorICAgT3V0cHV0OiAoYXZnKHBhZ2dfdGFiLmEpKSwgKCgoKHBhZ2df dGFiLmIgLyAyKSkpOjpudW1lcmljKSwgJ3Rlc3QnOjp0ZXh0LCAoKHBhZ2dfdGFiLmIgLyAyKSkK KyAgIC0+ICBTb3J0CisgICAgICAgICBPdXRwdXQ6IChhdmcocGFnZ190YWIuYSkpLCAoKCgocGFn Z190YWIuYiAvIDIpKSk6Om51bWVyaWMpLCAndGVzdCc6OnRleHQsICgocGFnZ190YWIuYiAvIDIp KQorICAgICAgICAgU29ydCBLZXk6IChhdmcocGFnZ190YWIuYSkpLCAoKCgocGFnZ190YWIuYiAv IDIpKSk6Om51bWVyaWMpCisgICAgICAgICAtPiAgRmluYWxpemUgSGFzaEFnZ3JlZ2F0ZQorICAg ICAgICAgICAgICAgT3V0cHV0OiBhdmcocGFnZ190YWIuYSksICgoKHBhZ2dfdGFiLmIgLyAyKSkp OjpudW1lcmljLCAndGVzdCc6OnRleHQsICgocGFnZ190YWIuYiAvIDIpKQorICAgICAgICAgICAg ICAgR3JvdXAgS2V5OiAoKHBhZ2dfdGFiLmIgLyAyKSkKKyAgICAgICAgICAgICAgIC0+ICBBcHBl bmQKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogKChwYWdnX3RhYi5iIC8gMikpLCAoUEFSVElBTCBhdmcocGFn Z190YWIuYSkpLCBwYWdnX3RhYi5iCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGlv bnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMSBwYWdnX3RhYikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAoYiAvIDIpLCBiLCBhdmcoUEFS VElBTF9BR0dSRUdBVEUgYSkgRlJPTSBwdWJsaWMucGFnZ190YWJfcDEgR1JPVVAgQlkgMSwgMgor ICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgT3V0cHV0OiAoKHBhZ2dfdGFiXzEuYiAvIDIpKSwgKFBBUlRJQUwgYXZnKHBhZ2df dGFiXzEuYSkpLCBwYWdnX3RhYl8xLmIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0 aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzEpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgKGIgLyAyKSwgYiwgYXZn KFBBUlRJQUxfQUdHUkVHQVRFIGEpIEZST00gcHVibGljLnBhZ2dfdGFiX3AyIEdST1VQIEJZIDEs IDIKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogKChwYWdnX3RhYl8yLmIgLyAyKSksIChQQVJUSUFMIGF2Zyhw YWdnX3RhYl8yLmEpKSwgcGFnZ190YWJfMi5iCisgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMyBwYWdnX3RhYl8yKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIChiIC8gMiksIGIs IGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMyBHUk9VUCBC WSAxLCAyCisoMjEgcm93cykKKworU0VMRUNUIGF2ZyhhKSwgKGIvMik6Om51bWVyaWMsICd0ZXN0 JyB0ZXN0IEZST00gcGFnZ190YWIgR1JPVVAgQlkgMywgYi8yIE9SREVSIEJZIDEsIDIgTElNSVQg MTA7CisgICAgICAgICBhdmcgICAgICAgICB8IG51bWVyaWMgfCB0ZXN0IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0KKyAxMC41MDAwMDAwMDAwMDAwMDAwIHwgICAgICAg MCB8IHRlc3QKKyAxMC41MDAwMDAwMDAwMDAwMDAwIHwgICAgICAgNSB8IHRlc3QKKyAxMC41MDAw MDAwMDAwMDAwMDAwIHwgICAgICAxMCB8IHRlc3QKKyAxMC41MDAwMDAwMDAwMDAwMDAwIHwgICAg ICAxNSB8IHRlc3QKKyAxMC41MDAwMDAwMDAwMDAwMDAwIHwgICAgICAyMCB8IHRlc3QKKyAxMi41 MDAwMDAwMDAwMDAwMDAwIHwgICAgICAgMSB8IHRlc3QKKyAxMi41MDAwMDAwMDAwMDAwMDAwIHwg ICAgICAgNiB8IHRlc3QKKyAxMi41MDAwMDAwMDAwMDAwMDAwIHwgICAgICAxMSB8IHRlc3QKKyAx Mi41MDAwMDAwMDAwMDAwMDAwIHwgICAgICAxNiB8IHRlc3QKKyAxMi41MDAwMDAwMDAwMDAwMDAw IHwgICAgICAyMSB8IHRlc3QKKygxMCByb3dzKQorCistLSBQYXJ0aWFsIGFnZ3JlZ2F0ZXMgYXJl IHNhZmUgdG8gcHVzaCBkb3duIGZvciBhbGwgYnVpbHQtaW4gYWdncmVnYXRlcworRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUCisJLyogVGhlIGNhc2VzIHRoYXQgZG9uJ3QgcmVx dWlyZSBpbXBvcnQgb3IgZXhwb3J0IGZ1bmN0aW9ucyAqLworCWJpdF9hbmQoY19iaXQpLCBiaXRf YW5kKGNfMW9yM2ludDIpLCBiaXRfYW5kKGNfMW9yM2ludDQpLCBiaXRfYW5kKGNfMW9yM2ludDgp LAorCWJpdF9vcihjX2JpdCksIGJpdF9vcihjXzFvcjNpbnQyKSwgYml0X29yKGNfMW9yM2ludDQp LCBiaXRfb3IoY18xb3IzaW50OCksCisJYml0X3hvcihjX2JpdCksIGJpdF94b3IoY18xb3IzaW50 MiksIGJpdF94b3IoY18xb3IzaW50NCksIGJpdF94b3IoY18xb3IzaW50OCksCisJYm9vbF9hbmQo Y19ib29sKSwKKwlib29sX29yKGNfYm9vbCksCisJZXZlcnkoY19ib29sKSwKKwltYXgoY19pbnQ0 YXJyYXkpLCBtYXgoY19lbnVtKSwgbWF4KGNfMWM6OmNoYXIoMSkpLCBtYXgoJzIwMDAtMDEtMDEn OjpkYXRlICsgYiksIG1heCgnMC4wLjAuMCc6OmluZXQgKyBiKSwgbWF4KGI6OmZsb2F0NCksIG1h eChiOjpmbG9hdDgpLCBtYXgoYjo6aW50MiksIG1heChiOjppbnQ0KSwgbWF4KGI6OmludDgpLCBt YXgoY19pbnRlcnZhbCksIG1heChjX21vbmV5KSwgbWF4KGI6Om51bWVyaWMpLCBtYXgoYjo6b2lk KSwgbWF4KGNfcGdfbHNuKSwgbWF4KGNfdGlkKSwgbWF4KGNfMWMpLCBtYXgoY190aW1lKSwgbWF4 KGNfdGltZXR6KSwgbWF4KGNfdGltZXN0YW1wKSwgbWF4KGNfdGltZXN0YW1wdHopLCBtYXgoY194 aWQ4KSwKKwltaW4oY19pbnQ0YXJyYXkpLCBtaW4oY19lbnVtKSwgbWluKGNfMWM6OmNoYXIoMSkp LCBtaW4oJzIwMDAtMDEtMDEnOjpkYXRlICsgYiksIG1pbignMC4wLjAuMCc6OmluZXQgKyBiKSwg bWluKGI6OmZsb2F0NCksIG1pbihiOjpmbG9hdDgpLCBtaW4oYjo6aW50MiksIG1pbihiOjppbnQ0 KSwgbWluKGI6OmludDgpLCBtaW4oY19pbnRlcnZhbCksIG1pbihjX21vbmV5KSwgbWluKGI6Om51 bWVyaWMpLCBtaW4oYjo6b2lkKSwgbWluKGNfcGdfbHNuKSwgbWluKGNfdGlkKSwgbWluKGNfMWMp LCBtaW4oY190aW1lKSwgbWluKGNfdGltZXR6KSwgbWluKGNfdGltZXN0YW1wKSwgbWluKGNfdGlt ZXN0YW1wdHopLCBtaW4oY194aWQ4KSwKKwkvKiBUaGUgY2FzZXMgdGhhdCByZXF1aXJlIG9ubHkg aW1wb3J0IGZ1bmN0aW9ucyAqLworCWF2ZyhiOjppbnQ0KSwKKwkvKiBUaGUgY2FzZXMgdGhhdCBk b24ndCByZXF1aXJlIGltcG9ydCBvciBleHBvcnQgZnVuY3Rpb25zICovCisJYXZnKGI6OmludDgp CisgIEZST00gcGFnZ190YWIgV0hFUkUgY19zZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIE91dHB1dDogYml0X2FuZChw YWdnX3RhYi5jX2JpdCksIGJpdF9hbmQocGFnZ190YWIuY18xb3IzaW50MiksIGJpdF9hbmQocGFn Z190YWIuY18xb3IzaW50NCksIGJpdF9hbmQocGFnZ190YWIuY18xb3IzaW50OCksIGJpdF9vcihw YWdnX3RhYi5jX2JpdCksIGJpdF9vcihwYWdnX3RhYi5jXzFvcjNpbnQyKSwgYml0X29yKHBhZ2df dGFiLmNfMW9yM2ludDQpLCBiaXRfb3IocGFnZ190YWIuY18xb3IzaW50OCksIGJpdF94b3IocGFn Z190YWIuY19iaXQpLCBiaXRfeG9yKHBhZ2dfdGFiLmNfMW9yM2ludDIpLCBiaXRfeG9yKHBhZ2df dGFiLmNfMW9yM2ludDQpLCBiaXRfeG9yKHBhZ2dfdGFiLmNfMW9yM2ludDgpLCBib29sX2FuZChw YWdnX3RhYi5jX2Jvb2wpLCBib29sX29yKHBhZ2dfdGFiLmNfYm9vbCksIGV2ZXJ5KHBhZ2dfdGFi LmNfYm9vbCksIG1heChwYWdnX3RhYi5jX2ludDRhcnJheSksIG1heChwYWdnX3RhYi5jX2VudW0p LCBtYXgoKHBhZ2dfdGFiLmNfMWMpOjpjaGFyYWN0ZXIoMSkpLCBtYXgoKCcwMS0wMS0yMDAwJzo6 ZGF0ZSArIHBhZ2dfdGFiLmIpKSwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWIuYik6 OmJpZ2ludCkpLCBtYXgoKHBhZ2dfdGFiLmIpOjpyZWFsKSwgbWF4KChwYWdnX3RhYi5iKTo6ZG91 YmxlIHByZWNpc2lvbiksIG1heCgocGFnZ190YWIuYik6OnNtYWxsaW50KSwgbWF4KHBhZ2dfdGFi LmIpLCBtYXgoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBtYXgocGFnZ190YWIuY19pbnRlcnZhbCks IG1heChwYWdnX3RhYi5jX21vbmV5KSwgbWF4KChwYWdnX3RhYi5iKTo6bnVtZXJpYyksIG1heCgo cGFnZ190YWIuYik6Om9pZCksIG1heChwYWdnX3RhYi5jX3BnX2xzbiksIG1heChwYWdnX3RhYi5j X3RpZCksIG1heChwYWdnX3RhYi5jXzFjKSwgbWF4KHBhZ2dfdGFiLmNfdGltZSksIG1heChwYWdn X3RhYi5jX3RpbWV0eiksIG1heChwYWdnX3RhYi5jX3RpbWVzdGFtcCksIG1heChwYWdnX3RhYi5j X3RpbWVzdGFtcHR6KSwgbWF4KHBhZ2dfdGFiLmNfeGlkOCksIG1pbihwYWdnX3RhYi5jX2ludDRh cnJheSksIG1pbihwYWdnX3RhYi5jX2VudW0pLCBtaW4oKHBhZ2dfdGFiLmNfMWMpOjpjaGFyYWN0 ZXIoMSkpLCBtaW4oKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiLmIpKSwgbWluKCgnMC4w LjAuMCc6OmluZXQgKyAocGFnZ190YWIuYik6OmJpZ2ludCkpLCBtaW4oKHBhZ2dfdGFiLmIpOjpy ZWFsKSwgbWluKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIG1pbigocGFnZ190YWIu Yik6OnNtYWxsaW50KSwgbWluKHBhZ2dfdGFiLmIpLCBtaW4oKHBhZ2dfdGFiLmIpOjpiaWdpbnQp LCBtaW4ocGFnZ190YWIuY19pbnRlcnZhbCksIG1pbihwYWdnX3RhYi5jX21vbmV5KSwgbWluKChw YWdnX3RhYi5iKTo6bnVtZXJpYyksIG1pbigocGFnZ190YWIuYik6Om9pZCksIG1pbihwYWdnX3Rh Yi5jX3BnX2xzbiksIG1pbihwYWdnX3RhYi5jX3RpZCksIG1pbihwYWdnX3RhYi5jXzFjKSwgbWlu KHBhZ2dfdGFiLmNfdGltZSksIG1pbihwYWdnX3RhYi5jX3RpbWV0eiksIG1pbihwYWdnX3RhYi5j X3RpbWVzdGFtcCksIG1pbihwYWdnX3RhYi5jX3RpbWVzdGFtcHR6KSwgbWluKHBhZ2dfdGFiLmNf eGlkOCksIGF2ZyhwYWdnX3RhYi5iKSwgYXZnKChwYWdnX3RhYi5iKTo6YmlnaW50KQorICAgLT4g IEFwcGVuZAorICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3Ax IHBhZ2dfdGFiXzEKKyAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5jX2JpdCwgcGFn Z190YWJfMS5jXzFvcjNpbnQyLCBwYWdnX3RhYl8xLmNfMW9yM2ludDQsIHBhZ2dfdGFiXzEuY18x b3IzaW50OCwgcGFnZ190YWJfMS5jX2Jvb2wsIHBhZ2dfdGFiXzEuY19pbnQ0YXJyYXksIHBhZ2df dGFiXzEuY19lbnVtLCBwYWdnX3RhYl8xLmNfMWMsIHBhZ2dfdGFiXzEuYiwgcGFnZ190YWJfMS5j X2ludGVydmFsLCBwYWdnX3RhYl8xLmNfbW9uZXksIHBhZ2dfdGFiXzEuY19wZ19sc24sIHBhZ2df dGFiXzEuY190aWQsIHBhZ2dfdGFiXzEuY190aW1lLCBwYWdnX3RhYl8xLmNfdGltZXR6LCBwYWdn X3RhYl8xLmNfdGltZXN0YW1wLCBwYWdnX3RhYl8xLmNfdGltZXN0YW1wdHosIHBhZ2dfdGFiXzEu Y194aWQ4CisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgY19pbnQ0YXJyYXks IGNfaW50ZXJ2YWwsIGNfbW9uZXksIGNfMWMsIGNfYml0LCBjXzFvcjNpbnQyLCBjXzFvcjNpbnQ0 LCBjXzFvcjNpbnQ4LCBjX2Jvb2wsIGNfZW51bSwgY19wZ19sc24sIGNfdGlkLCBjX3RpbWUsIGNf dGltZXR6LCBjX3RpbWVzdGFtcCwgY190aW1lc3RhbXB0eiwgY194aWQ4IEZST00gcHVibGljLnBh Z2dfdGFiX3AxIFdIRVJFICgoY19zZXJpYWwgPj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9IDMwKSkK KyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3Rh Yl8yCisgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuY19iaXQsIHBhZ2dfdGFiXzIu Y18xb3IzaW50MiwgcGFnZ190YWJfMi5jXzFvcjNpbnQ0LCBwYWdnX3RhYl8yLmNfMW9yM2ludDgs IHBhZ2dfdGFiXzIuY19ib29sLCBwYWdnX3RhYl8yLmNfaW50NGFycmF5LCBwYWdnX3RhYl8yLmNf ZW51bSwgcGFnZ190YWJfMi5jXzFjLCBwYWdnX3RhYl8yLmIsIHBhZ2dfdGFiXzIuY19pbnRlcnZh bCwgcGFnZ190YWJfMi5jX21vbmV5LCBwYWdnX3RhYl8yLmNfcGdfbHNuLCBwYWdnX3RhYl8yLmNf dGlkLCBwYWdnX3RhYl8yLmNfdGltZSwgcGFnZ190YWJfMi5jX3RpbWV0eiwgcGFnZ190YWJfMi5j X3RpbWVzdGFtcCwgcGFnZ190YWJfMi5jX3RpbWVzdGFtcHR6LCBwYWdnX3RhYl8yLmNfeGlkOAor ICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGNfaW50NGFycmF5LCBjX2ludGVy dmFsLCBjX21vbmV5LCBjXzFjLCBjX2JpdCwgY18xb3IzaW50MiwgY18xb3IzaW50NCwgY18xb3Iz aW50OCwgY19ib29sLCBjX2VudW0sIGNfcGdfbHNuLCBjX3RpZCwgY190aW1lLCBjX3RpbWV0eiwg Y190aW1lc3RhbXAsIGNfdGltZXN0YW1wdHosIGNfeGlkOCBGUk9NIHB1YmxpYy5wYWdnX3RhYl9w MiBXSEVSRSAoKGNfc2VyaWFsID49IDEpKSBBTkQgKChjX3NlcmlhbCA8PSAzMCkpCisgICAgICAg ICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMworICAg ICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8zLmNfYml0LCBwYWdnX3RhYl8zLmNfMW9yM2lu dDIsIHBhZ2dfdGFiXzMuY18xb3IzaW50NCwgcGFnZ190YWJfMy5jXzFvcjNpbnQ4LCBwYWdnX3Rh Yl8zLmNfYm9vbCwgcGFnZ190YWJfMy5jX2ludDRhcnJheSwgcGFnZ190YWJfMy5jX2VudW0sIHBh Z2dfdGFiXzMuY18xYywgcGFnZ190YWJfMy5iLCBwYWdnX3RhYl8zLmNfaW50ZXJ2YWwsIHBhZ2df dGFiXzMuY19tb25leSwgcGFnZ190YWJfMy5jX3BnX2xzbiwgcGFnZ190YWJfMy5jX3RpZCwgcGFn Z190YWJfMy5jX3RpbWUsIHBhZ2dfdGFiXzMuY190aW1ldHosIHBhZ2dfdGFiXzMuY190aW1lc3Rh bXAsIHBhZ2dfdGFiXzMuY190aW1lc3RhbXB0eiwgcGFnZ190YWJfMy5jX3hpZDgKKyAgICAgICAg ICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiLCBjX2ludDRhcnJheSwgY19pbnRlcnZhbCwgY19t b25leSwgY18xYywgY19iaXQsIGNfMW9yM2ludDIsIGNfMW9yM2ludDQsIGNfMW9yM2ludDgsIGNf Ym9vbCwgY19lbnVtLCBjX3BnX2xzbiwgY190aWQsIGNfdGltZSwgY190aW1ldHosIGNfdGltZXN0 YW1wLCBjX3RpbWVzdGFtcHR6LCBjX3hpZDggRlJPTSBwdWJsaWMucGFnZ190YWJfcDMgV0hFUkUg KChjX3NlcmlhbCA+PSAxKSkgQU5EICgoY19zZXJpYWwgPD0gMzApKQorKDEyIHJvd3MpCisKK1NF TEVDVAorCS8qIFRoZSBjYXNlcyB0aGF0IGRvbid0IHJlcXVpcmUgaW1wb3J0IG9yIGV4cG9ydCBm dW5jdGlvbnMgKi8KKwliaXRfYW5kKGNfYml0KSwgYml0X2FuZChjXzFvcjNpbnQyKSwgYml0X2Fu ZChjXzFvcjNpbnQ0KSwgYml0X2FuZChjXzFvcjNpbnQ4KSwKKwliaXRfb3IoY19iaXQpLCBiaXRf b3IoY18xb3IzaW50MiksIGJpdF9vcihjXzFvcjNpbnQ0KSwgYml0X29yKGNfMW9yM2ludDgpLAor CWJpdF94b3IoY19iaXQpLCBiaXRfeG9yKGNfMW9yM2ludDIpLCBiaXRfeG9yKGNfMW9yM2ludDQp LCBiaXRfeG9yKGNfMW9yM2ludDgpLAorCWJvb2xfYW5kKGNfYm9vbCksCisJYm9vbF9vcihjX2Jv b2wpLAorCWV2ZXJ5KGNfYm9vbCksCisJbWF4KGNfaW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1h eChjXzFjOjpjaGFyKDEpKSwgbWF4KCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtYXgoJzAuMC4w LjAnOjppbmV0ICsgYiksIG1heChiOjpmbG9hdDQpLCBtYXgoYjo6ZmxvYXQ4KSwgbWF4KGI6Omlu dDIpLCBtYXgoYjo6aW50NCksIG1heChiOjppbnQ4KSwgbWF4KGNfaW50ZXJ2YWwpLCBtYXgoY19t b25leSksIG1heChiOjpudW1lcmljKSwgbWF4KGI6Om9pZCksIG1heChjX3BnX2xzbiksIG1heChj X3RpZCksIG1heChjXzFjKSwgbWF4KGNfdGltZSksIG1heChjX3RpbWV0eiksIG1heChjX3RpbWVz dGFtcCksIG1heChjX3RpbWVzdGFtcHR6KSwgbWF4KGNfeGlkOCksCisJbWluKGNfaW50NGFycmF5 KSwgbWluKGNfZW51bSksIG1pbihjXzFjOjpjaGFyKDEpKSwgbWluKCcyMDAwLTAxLTAxJzo6ZGF0 ZSArIGIpLCBtaW4oJzAuMC4wLjAnOjppbmV0ICsgYiksIG1pbihiOjpmbG9hdDQpLCBtaW4oYjo6 ZmxvYXQ4KSwgbWluKGI6OmludDIpLCBtaW4oYjo6aW50NCksIG1pbihiOjppbnQ4KSwgbWluKGNf aW50ZXJ2YWwpLCBtaW4oY19tb25leSksIG1pbihiOjpudW1lcmljKSwgbWluKGI6Om9pZCksIG1p bihjX3BnX2xzbiksIG1pbihjX3RpZCksIG1pbihjXzFjKSwgbWluKGNfdGltZSksIG1pbihjX3Rp bWV0eiksIG1pbihjX3RpbWVzdGFtcCksIG1pbihjX3RpbWVzdGFtcHR6KSwgbWluKGNfeGlkOCks CisJLyogVGhlIGNhc2VzIHRoYXQgcmVxdWlyZSBvbmx5IGltcG9ydCBmdW5jdGlvbnMgKi8KKwlh dmcoYjo6aW50NCksCisJLyogVGhlIGNhc2VzIHRoYXQgZG9uJ3QgcmVxdWlyZSBpbXBvcnQgb3Ig ZXhwb3J0IGZ1bmN0aW9ucyAqLworCWF2ZyhiOjppbnQ4KQorICBGUk9NIHBhZ2dfdGFiIFdIRVJF IGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7CisgYml0X2FuZCB8IGJpdF9hbmQgfCBiaXRfYW5k IHwgYml0X2FuZCB8IGJpdF9vciB8IGJpdF9vciB8IGJpdF9vciB8IGJpdF9vciB8IGJpdF94b3Ig fCBiaXRfeG9yIHwgYml0X3hvciB8IGJpdF94b3IgfCBib29sX2FuZCB8IGJvb2xfb3IgfCBldmVy eSB8ICBtYXggIHwgIG1heCAgfCBtYXggfCAgICBtYXggICAgIHwgICBtYXggICAgfCBtYXggfCBt YXggfCBtYXggfCBtYXggfCBtYXggfCAgIG1heCAgIHwgIG1heCAgfCBtYXggfCBtYXggfCBtYXgg IHwgIG1heCAgIHwgbWF4IHwgICBtYXggICAgfCAgICAgbWF4ICAgICB8ICAgICAgICAgICBtYXgg ICAgICAgICAgICB8ICAgICAgICAgICAgIG1heCAgICAgICAgICAgICAgfCBtYXggfCAgbWluICB8 IG1pbiB8IG1pbiB8ICAgIG1pbiAgICAgfCAgIG1pbiAgIHwgbWluIHwgbWluIHwgbWluIHwgbWlu IHwgbWluIHwgbWluIHwgIG1pbiAgfCBtaW4gfCBtaW4gfCBtaW4gfCAgbWluICB8IG1pbiB8ICAg bWluICAgIHwgICAgIG1pbiAgICAgfCAgICAgICAgICAgbWluICAgICAgICAgICAgfCAgICAgICAg ICAgICBtaW4gICAgICAgICAgICAgIHwgbWluIHwgICAgICAgICBhdmcgICAgICAgICB8ICAgICAg ICAgYXZnICAgICAgICAgCistLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSst LS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t LS0tKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tLSstLS0tLS0tLSst LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0rLS0tLS0rLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0t LSstLS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgMDEgICAgICB8ICAgICAgIDEgfCAgICAgICAxIHwgICAgICAgMSB8IDExICAgICB8ICAg ICAgMyB8ICAgICAgMyB8ICAgICAgMyB8IDEwICAgICAgfCAgICAgICAyIHwgICAgICAgMiB8ICAg ICAgIDIgfCBmICAgICAgICB8IHQgICAgICAgfCBmICAgICB8IHsxLDB9IHwgaGFwcHkgfCA5ICAg fCAwMS0zMS0yMDAwIHwgMC4wLjAuMzAgfCAgMzAgfCAgMzAgfCAgMzAgfCAgMzAgfCAgMzAgfCBA IDEgc2VjIHwgJDEuMDAgfCAgMzAgfCAgMzAgfCAwLzMwIHwgKDAsMzApIHwgOSAgIHwgMDA6MDA6 MzAgfCAwMDowMDozMCswMCB8IFNhdCBKYW4gMDEgMDA6MDA6MzAgMjAwMCB8IFNhdCBKYW4gMDEg MDA6MDA6MzAgMjAwMCBVVEMgfCAgIDkgfCB7MCwwfSB8IHNhZCB8IDAgICB8IDAxLTAyLTIwMDAg fCAwLjAuMC4xIHwgICAxIHwgICAxIHwgICAxIHwgICAxIHwgICAxIHwgQCAwIHwgJDAuMDAgfCAg IDEgfCAgIDEgfCAwLzEgfCAoMCwxKSB8IDAgICB8IDAwOjAwOjAxIHwgMDA6MDA6MDErMDAgfCBT YXQgSmFuIDAxIDAwOjAwOjAxIDIwMDAgfCBTYXQgSmFuIDAxIDAwOjAwOjAxIDIwMDAgVVRDIHwg ICAwIHwgMTUuNTAwMDAwMDAwMDAwMDAwMCB8IDE1LjUwMDAwMDAwMDAwMDAwMDAKKygxIHJvdykK KworLS0gVGVzdHMgZm9yIHBhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQKK0FMVEVSIFNFUlZFUiBs b29wYmFjayBPUFRJT05TIChBREQgcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCAnZmFsc2UnKTsK K0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwg Y291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZpbmFs aXplIEdyb3VwQWdncmVnYXRlCisgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIGF2ZyhwYWdnX3RhYi5h KSwgbWF4KHBhZ2dfdGFiLmEpLCBjb3VudCgqKQorICAgR3JvdXAgS2V5OiBwYWdnX3RhYi5iCisg ICAtPiAgU29ydAorICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYi5iLCAoUEFSVElBTCBhdmcocGFn Z190YWIuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuYSkpLCAoUEFSVElBTCBjb3VudCgqKSkK KyAgICAgICAgIFNvcnQgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAtPiAgQXBwZW5kCisgICAg ICAgICAgICAgICAtPiAgUGFydGlhbCBIYXNoQWdncmVnYXRlCisgICAgICAgICAgICAgICAgICAg ICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIFBBUlRJQUwgYXZnKHBhZ2dfdGFiLmEpLCBQQVJUSUFMIG1h eChwYWdnX3RhYi5hKSwgUEFSVElBTCBjb3VudCgqKQorICAgICAgICAgICAgICAgICAgICAgR3Jv dXAgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2Fu IG9uIHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogcGFnZ190YWIuYiwgcGFnZ190YWIuYQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIgRlJPTSBwdWJsaWMucGFnZ190YWJfcDEKKyAg ICAgICAgICAgICAgIC0+ICBQYXJ0aWFsIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogcGFnZ190YWJfMS5iLCBQQVJUSUFMIGF2ZyhwYWdnX3RhYl8xLmEpLCBQQVJU SUFMIG1heChwYWdnX3RhYl8xLmEpLCBQQVJUSUFMIGNvdW50KCopCisgICAgICAgICAgICAgICAg ICAgICBHcm91cCBLZXk6IHBhZ2dfdGFiXzEuYgorICAgICAgICAgICAgICAgICAgICAgLT4gIEZv cmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzEKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5iLCBwYWdnX3RhYl8xLmEKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiIEZST00gcHVibGlj LnBhZ2dfdGFiX3AyCisgICAgICAgICAgICAgICAtPiAgUGFydGlhbCBIYXNoQWdncmVnYXRlCisg ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYiwgUEFSVElBTCBhdmcocGFn Z190YWJfMi5hKSwgUEFSVElBTCBtYXgocGFnZ190YWJfMi5hKSwgUEFSVElBTCBjb3VudCgqKQor ICAgICAgICAgICAgICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3RhYl8yLmIKKyAgICAgICAgICAg ICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMyBwYWdnX3Rh Yl8yCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYiwgcGFn Z190YWJfMi5hCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1Qg YSwgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMworKDI1IHJvd3MpCisKK1NFTEVDVCBiLCBhdmco YSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7 CitFUlJPUjogIGNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciAibG9vcGJhY2siCitERVRBSUw6 ICBpbnZhbGlkIGNvbm5lY3Rpb24gb3B0aW9uICJwYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0Igor QUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBwYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBw b3J0ICd0cnVlJyk7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYiwgYXZn KGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAx OworRVJST1I6ICBjb3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgImxvb3BiYWNrIgorREVUQUlM OiAgaW52YWxpZCBjb25uZWN0aW9uIG9wdGlvbiAicGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCIK K1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBC WSBiIE9SREVSIEJZIDE7CitFUlJPUjogIGNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciAibG9v cGJhY2siCitERVRBSUw6ICBpbnZhbGlkIGNvbm5lY3Rpb24gb3B0aW9uICJwYXJ0aWFsX2FnZ3Jl Z2F0ZV9zdXBwb3J0IgorQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBmZHdfdHVw bGVfY29zdCAnMS4wJyk7CitTRVQgZW5hYmxlX3BhcnRpdGlvbndpc2Vfam9pbj1vbjsKK0VYUExB SU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBhdmcodDEuYiksIGF2Zyh0MS5iOjppbnQ4 KSBGUk9NIHBhZ2dfdGFiIHQxIEpPSU4gcGFnZ190YWIgdDIgVVNJTkcoYSk7CitFUlJPUjogIGNv dWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciAibG9vcGJhY2siCitERVRBSUw6ICBpbnZhbGlkIGNv bm5lY3Rpb24gb3B0aW9uICJwYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0IgorU0VMRUNUIGF2Zyh0 MS5iKSwgYXZnKHQxLmI6OmludDgpIEZST00gcGFnZ190YWIgdDEgSk9JTiBwYWdnX3RhYiB0MiBV U0lORyhhKTsKK0VSUk9SOiAgY291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyICJsb29wYmFjayIK K0RFVEFJTDogIGludmFsaWQgY29ubmVjdGlvbiBvcHRpb24gInBhcnRpYWxfYWdncmVnYXRlX3N1 cHBvcnQiCitSRVNFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9qb2luOworQUxURVIgU0VSVkVSIGxv b3BiYWNrIE9QVElPTlMgKFNFVCBmZHdfdHVwbGVfY29zdCAnMC4xJyk7CitBTFRFUiBTRVJWRVIg bG9vcGJhY2sgT1BUSU9OUyAoRFJPUCBwYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0KTsKKy0tIEl0 IGlzIHVuc2FmZSB0byBwdXNoIGRvd24gcGFydGlhbCBhZ2dyZWdhdGVzIHdoaWNoIGNvbnRhaW4g RElTVElOQ1QgY2xhdXNlcworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIG1h eChhKSwgY291bnQoZGlzdGluY3QgYikgRlJPTSBwYWdnX3RhYjsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgT3V0cHV0OiBtYXgocGFnZ190YWIuYSksIGNvdW50KERJU1RJTkNUIHBhZ2dfdGFi LmIpCiAgICAtPiAgTWVyZ2UgQXBwZW5kCiAgICAgICAgICBTb3J0IEtleTogcGFnZ190YWIuYgot ICAgICAgICAgLT4gIFBhcnRpYWwgR3JvdXBBZ2dyZWdhdGUKLSAgICAgICAgICAgICAgIEdyb3Vw IEtleTogcGFnZ190YWIuYgotICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBmcGFn Z190YWJfcDEgcGFnZ190YWIKLSAgICAgICAgIC0+ICBQYXJ0aWFsIEdyb3VwQWdncmVnYXRlCi0g ICAgICAgICAgICAgICBHcm91cCBLZXk6IHBhZ2dfdGFiXzEuYgotICAgICAgICAgICAgICAgLT4g IEZvcmVpZ24gU2NhbiBvbiBmcGFnZ190YWJfcDIgcGFnZ190YWJfMQotICAgICAgICAgLT4gIFBh cnRpYWwgR3JvdXBBZ2dyZWdhdGUKLSAgICAgICAgICAgICAgIEdyb3VwIEtleTogcGFnZ190YWJf Mi5iCi0gICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMyBwYWdn X3RhYl8yCi0oMTQgcm93cykKKyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZw YWdnX3RhYl9wMSBwYWdnX3RhYl8xCisgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzEu YSwgcGFnZ190YWJfMS5iCisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiBG Uk9NIHB1YmxpYy5wYWdnX3RhYl9wMSBPUkRFUiBCWSBiIEFTQyBOVUxMUyBMQVNUCisgICAgICAg ICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJfcDIgcGFnZ190YWJfMgorICAg ICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8yLmEsIHBhZ2dfdGFiXzIuYgorICAgICAgICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIgRlJPTSBwdWJsaWMucGFnZ190YWJfcDIgT1JE RVIgQlkgYiBBU0MgTlVMTFMgTEFTVAorICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJs aWMuZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzMKKyAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190 YWJfMy5hLCBwYWdnX3RhYl8zLmIKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBh LCBiIEZST00gcHVibGljLnBhZ2dfdGFiX3AzIE9SREVSIEJZIGIgQVNDIE5VTExTIExBU1QKKygx MyByb3dzKQorCitTRUxFQ1QgbWF4KGEpLCBjb3VudChkaXN0aW5jdCBiKSBGUk9NIHBhZ2dfdGFi OworIG1heCB8IGNvdW50IAorLS0tLS0rLS0tLS0tLQorICAyOSB8ICAgIDUwCisoMSByb3cpCisK Ky0tIEl0IGlzIHVuc2FmZSB0byBwdXNoIGRvd24gcGFydGlhbCBhZ2dyZWdhdGVzIHdoaWNoIGNv bnRhaW4gT1JERVIgQlkgY2xhdXNlcworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxF Q1QgYXJyYXlfYWdnKGIgb3JkZXIgYnkgYikgRlJPTSBwYWdnX3RhYiBXSEVSRSBjX3NlcmlhbCBi ZXR3ZWVuIDEgYW5kIDMwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICBPdXRwdXQ6IGFycmF5X2FnZyhwYWdn X3RhYi5iIE9SREVSIEJZIHBhZ2dfdGFiLmIpCisgICAtPiAgU29ydAorICAgICAgICAgT3V0cHV0 OiBwYWdnX3RhYi5iCisgICAgICAgICBTb3J0IEtleTogcGFnZ190YWIuYgorICAgICAgICAgLT4g IEFwcGVuZAorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2df dGFiX3AxIHBhZ2dfdGFiXzEKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJf MS5iCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiBGUk9NIHB1Ymxp Yy5wYWdnX3RhYl9wMSBXSEVSRSAoKGNfc2VyaWFsID49IDEpKSBBTkQgKChjX3NlcmlhbCA8PSAz MCkpCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJf cDIgcGFnZ190YWJfMgorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8yLmIK KyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiIEZST00gcHVibGljLnBh Z2dfdGFiX3AyIFdIRVJFICgoY19zZXJpYWwgPj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9IDMwKSkK KyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMyBw YWdnX3RhYl8zCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzMuYgorICAg ICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIgRlJPTSBwdWJsaWMucGFnZ190 YWJfcDMgV0hFUkUgKChjX3NlcmlhbCA+PSAxKSkgQU5EICgoY19zZXJpYWwgPD0gMzApKQorKDE1 IHJvd3MpCisKK1NFTEVDVCBhcnJheV9hZ2coYiBvcmRlciBieSBiKSBGUk9NIHBhZ2dfdGFiIFdI RVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJyYXlfYWdnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsxLDIsMyw0LDUsNiw3LDgsOSwxMCwx MSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwz MH0KKygxIHJvdykKIAorQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKERST1AgZmR3X3R1 cGxlX2Nvc3QpOworUkVTRVQgVGltZVpvbmU7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBhY2Nlc3Mgcmln aHRzIGFuZCBzdXBlcnVzZXIKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L29wdGlvbi5jIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKaW5kZXgg NjMwYjMwNDMzOC4uZTQ4NjRmMTQ2NSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcv b3B0aW9uLmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKQEAgLTEyNiw3ICsx MjYsOCBAQCBwb3N0Z3Jlc19mZHdfdmFsaWRhdG9yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlzdHJj bXAoZGVmLT5kZWZuYW1lLCAiYXN5bmNfY2FwYWJsZSIpID09IDAgfHwKIAkJCXN0cmNtcChkZWYt PmRlZm5hbWUsICJwYXJhbGxlbF9jb21taXQiKSA9PSAwIHx8CiAJCQlzdHJjbXAoZGVmLT5kZWZu YW1lLCAicGFyYWxsZWxfYWJvcnQiKSA9PSAwIHx8Ci0JCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAi a2VlcF9jb25uZWN0aW9ucyIpID09IDApCisJCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAia2VlcF9j b25uZWN0aW9ucyIpID09IDAgfHwKKwkJCXN0cmNtcChkZWYtPmRlZm5hbWUsICJwYXJ0aWFsX2Fn Z3JlZ2F0ZV9zdXBwb3J0IikgPT0gMCkKIAkJewogCQkJLyogdGhlc2UgYWNjZXB0IG9ubHkgYm9v bGVhbiB2YWx1ZXMgKi8KIAkJCSh2b2lkKSBkZWZHZXRCb29sZWFuKGRlZik7CkBAIC0yNjgsNiAr MjY5LDcgQEAgSW5pdFBnRmR3T3B0aW9ucyh2b2lkKQogCQkvKiBiYXRjaF9zaXplIGlzIGF2YWls YWJsZSBvbiBib3RoIHNlcnZlciBhbmQgdGFibGUgKi8KIAkJeyJiYXRjaF9zaXplIiwgRm9yZWln blNlcnZlclJlbGF0aW9uSWQsIGZhbHNlfSwKIAkJeyJiYXRjaF9zaXplIiwgRm9yZWlnblRhYmxl UmVsYXRpb25JZCwgZmFsc2V9LAorCQl7InBhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQiLCBGb3Jl aWduU2VydmVyUmVsYXRpb25JZCwgdHJ1ZX0sCiAJCS8qIGFzeW5jX2NhcGFibGUgaXMgYXZhaWxh YmxlIG9uIGJvdGggc2VydmVyIGFuZCB0YWJsZSAqLwogCQl7ImFzeW5jX2NhcGFibGUiLCBGb3Jl aWduU2VydmVyUmVsYXRpb25JZCwgZmFsc2V9LAogCQl7ImFzeW5jX2NhcGFibGUiLCBGb3JlaWdu VGFibGVSZWxhdGlvbklkLCBmYWxzZX0sCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zk dy9wb3N0Z3Jlc19mZHcuYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCmlu ZGV4IDBiYjlhNWFlOGYuLjgwZDM0YTQ5NTAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNf ZmR3L3Bvc3RncmVzX2Zkdy5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zk dy5jCkBAIC0xOCw2ICsxOCw4IEBACiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKICNpbmNs dWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2Mu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZmFtaWx5LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXhwbGFpbi5oIgpAQCAtMzYsNiArMzgsNyBA QAogI2luY2x1ZGUgIm9wdGltaXplci9wYXRobm9kZS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9w YXRocy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wbGFubWFpbi5oIgorI2luY2x1ZGUgIm9wdGlt aXplci9wbGFubmVyLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3ByZXAuaCIKICNpbmNsdWRlICJv cHRpbWl6ZXIvcmVzdHJpY3RpbmZvLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3RsaXN0LmgiCkBA IC01MCw2ICs1Myw3IEBACiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMv c2FtcGxpbmcuaCIKICNpbmNsdWRlICJ1dGlscy9zZWxmdW5jcy5oIgorI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCiAKIFBHX01PRFVMRV9NQUdJQzsKIApAQCAtODMsNiArODcsMTEgQEAgZW51 bSBGZHdTY2FuUHJpdmF0ZUluZGV4CiAJICogb2Ygam9pbiwgYWRkZWQgd2hlbiB0aGUgc2NhbiBp cyBqb2luCiAJICovCiAJRmR3U2NhblByaXZhdGVSZWxhdGlvbnMsCisKKwkvKgorCSAqIExpc3Qg b2YgZnVuY3Rpb25zIHRvIGltcG9ydCBwYXJ0aWFsIGFnZ3JlZ2F0ZSByZXN1bHQKKwkgKi8KKwlG ZHdTY2FuUHJpdmF0ZUltcG9ydGZucwogfTsKIAogLyoKQEAgLTE0NSw2ICsxNTQsNyBAQCB0eXBl ZGVmIHN0cnVjdCBQZ0Zkd1NjYW5TdGF0ZQogCS8qIGV4dHJhY3RlZCBmZHdfcHJpdmF0ZSBkYXRh ICovCiAJY2hhcgkgICAqcXVlcnk7CQkJLyogdGV4dCBvZiBTRUxFQ1QgY29tbWFuZCAqLwogCUxp c3QJICAgKnJldHJpZXZlZF9hdHRyczsJLyogbGlzdCBvZiByZXRyaWV2ZWQgYXR0cmlidXRlIG51 bWJlcnMgKi8KKwlMaXN0CSAgICppbXBvcnRmbl9saXN0OwkJLyogbGlzdCBvZiBjb252ZXJ0ZXJz ICovCiAKIAkvKiBmb3IgcmVtb3RlIHF1ZXJ5IGV4ZWN1dGlvbiAqLwogCVBHY29ubgkgICAqY29u bjsJCQkvKiBjb25uZWN0aW9uIGZvciB0aGUgc2NhbiAqLwpAQCAtNDc2LDYgKzQ4Niw3IEBAIHN0 YXRpYyB2b2lkIHN0b3JlX3JldHVybmluZ19yZXN1bHQoUGdGZHdNb2RpZnlTdGF0ZSAqZm1zdGF0 ZSwKIAkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFBHcmVzdWx0ICpyZXMpOwogc3Rh dGljIHZvaWQgZmluaXNoX2ZvcmVpZ25fbW9kaWZ5KFBnRmR3TW9kaWZ5U3RhdGUgKmZtc3RhdGUp Owogc3RhdGljIHZvaWQgZGVhbGxvY2F0ZV9xdWVyeShQZ0Zkd01vZGlmeVN0YXRlICpmbXN0YXRl KTsKK3N0YXRpYyBMaXN0ICpidWlsZF9pbXBvcnRmbl9saXN0KFJlbE9wdEluZm8gKmZvcmVpZ25y ZWwpOwogc3RhdGljIExpc3QgKmJ1aWxkX3JlbW90ZV9yZXR1cm5pbmcoSW5kZXggcnRpbmRleCwg UmVsYXRpb24gcmVsLAogCQkJCQkJCQkJTGlzdCAqcmV0dXJuaW5nTGlzdCk7CiBzdGF0aWMgdm9p ZCByZWJ1aWxkX2Zkd19zY2FuX3RsaXN0KEZvcmVpZ25TY2FuICpmc2NhbiwgTGlzdCAqdGxpc3Qp OwpAQCAtNTEyLDYgKzUyMyw3IEBAIHN0YXRpYyBIZWFwVHVwbGUgbWFrZV90dXBsZV9mcm9tX3Jl c3VsdF9yb3coUEdyZXN1bHQgKnJlcywKIAkJCQkJCQkJCQkJUmVsYXRpb24gcmVsLAogCQkJCQkJ CQkJCQlBdHRJbk1ldGFkYXRhICphdHRpbm1ldGEsCiAJCQkJCQkJCQkJCUxpc3QgKnJldHJpZXZl ZF9hdHRycywKKwkJCQkJCQkJCQkJTGlzdCAqaW1wb3J0Zm5fbGlzdCwKIAkJCQkJCQkJCQkJRm9y ZWlnblNjYW5TdGF0ZSAqZnNzdGF0ZSwKIAkJCQkJCQkJCQkJTWVtb3J5Q29udGV4dCB0ZW1wX2Nv bnRleHQpOwogc3RhdGljIHZvaWQgY29udmVyc2lvbl9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcp OwpAQCAtNTE5LDcgKzUzMSw3IEBAIHN0YXRpYyBib29sIGZvcmVpZ25fam9pbl9vayhQbGFubmVy SW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqam9pbnJlbCwKIAkJCQkJCQlKb2luVHlwZSBqb2ludHlw ZSwgUmVsT3B0SW5mbyAqb3V0ZXJyZWwsIFJlbE9wdEluZm8gKmlubmVycmVsLAogCQkJCQkJCUpv aW5QYXRoRXh0cmFEYXRhICpleHRyYSk7CiBzdGF0aWMgYm9vbCBmb3JlaWduX2dyb3VwaW5nX29r KFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpncm91cGVkX3JlbCwKLQkJCQkJCQkJTm9k ZSAqaGF2aW5nUXVhbCk7CisJCQkJCQkJCUdyb3VwUGF0aEV4dHJhRGF0YSAqZXh0cmEpOwogc3Rh dGljIExpc3QgKmdldF91c2VmdWxfcGF0aGtleXNfZm9yX3JlbGF0aW9uKFBsYW5uZXJJbmZvICpy b290LAogCQkJCQkJCQkJCQkgIFJlbE9wdEluZm8gKnJlbCk7CiBzdGF0aWMgTGlzdCAqZ2V0X3Vz ZWZ1bF9lY3NfZm9yX3JlbGF0aW9uKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwp OwpAQCAtNjUwLDYgKzY2Miw4IEBAIHBvc3RncmVzR2V0Rm9yZWlnblJlbFNpemUoUGxhbm5lcklu Zm8gKnJvb3QsCiAJZnBpbmZvLT5mZHdfdHVwbGVfY29zdCA9IERFRkFVTFRfRkRXX1RVUExFX0NP U1Q7CiAJZnBpbmZvLT5zaGlwcGFibGVfZXh0ZW5zaW9ucyA9IE5JTDsKIAlmcGluZm8tPmZldGNo X3NpemUgPSAxMDA7CisJZnBpbmZvLT5yZW1vdGV2ZXJzaW9uID0gMDsKKwlmcGluZm8tPnBhcnRp YWxfYWdncmVnYXRlX3N1cHBvcnQgPSB0cnVlOwogCWZwaW5mby0+YXN5bmNfY2FwYWJsZSA9IGZh bHNlOwogCiAJYXBwbHlfc2VydmVyX29wdGlvbnMoZnBpbmZvKTsKQEAgLTY2MSw3ICs2NzUsNyBA QCBwb3N0Z3Jlc0dldEZvcmVpZ25SZWxTaXplKFBsYW5uZXJJbmZvICpyb290LAogCSAqIHNob3Vs ZCBtYXRjaCB3aGF0IEV4ZWNDaGVja1Blcm1pc3Npb25zKCkgZG9lcy4gIElmIHdlIGZhaWwgZHVl IHRvIGxhY2sKIAkgKiBvZiBwZXJtaXNzaW9ucywgdGhlIHF1ZXJ5IHdvdWxkIGhhdmUgZmFpbGVk IGF0IHJ1bnRpbWUgYW55d2F5LgogCSAqLwotCWlmIChmcGluZm8tPnVzZV9yZW1vdGVfZXN0aW1h dGUpCisJaWYgKGZwaW5mby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSB8fCBmcGluZm8tPnBhcnRpYWxf YWdncmVnYXRlX3N1cHBvcnQpCiAJewogCQlPaWQJCQl1c2VyaWQ7CiAKQEAgLTEyMzQsNiArMTI0 OCw3IEBAIHBvc3RncmVzR2V0Rm9yZWlnblBsYW4oUGxhbm5lckluZm8gKnJvb3QsCiAJTGlzdAkg ICAqbG9jYWxfZXhwcnMgPSBOSUw7CiAJTGlzdAkgICAqcGFyYW1zX2xpc3QgPSBOSUw7CiAJTGlz dAkgICAqZmR3X3NjYW5fdGxpc3QgPSBOSUw7CisJTGlzdAkgICAqZmR3X2ltcG9ydGZuX2xpc3Qg PSBOSUw7CiAJTGlzdAkgICAqZmR3X3JlY2hlY2tfcXVhbHMgPSBOSUw7CiAJTGlzdAkgICAqcmV0 cmlldmVkX2F0dHJzOwogCVN0cmluZ0luZm9EYXRhIHNxbDsKQEAgLTEzMzcsNiArMTM1Miw5IEBA IHBvc3RncmVzR2V0Rm9yZWlnblBsYW4oUGxhbm5lckluZm8gKnJvb3QsCiAJCS8qIEJ1aWxkIHRo ZSBsaXN0IG9mIGNvbHVtbnMgdG8gYmUgZmV0Y2hlZCBmcm9tIHRoZSBmb3JlaWduIHNlcnZlci4g Ki8KIAkJZmR3X3NjYW5fdGxpc3QgPSBidWlsZF90bGlzdF90b19kZXBhcnNlKGZvcmVpZ25yZWwp OwogCisJCS8qIEJ1aWxkIHRoZSBsaXN0IG9mIGltcG9ydGZucyBmb3IgcGFydGlhbCBhZ2dyZWdh dGVzLiAqLworCQlmZHdfaW1wb3J0Zm5fbGlzdCA9IGJ1aWxkX2ltcG9ydGZuX2xpc3QoZm9yZWln bnJlbCk7CisKIAkJLyoKIAkJICogRW5zdXJlIHRoYXQgdGhlIG91dGVyIHBsYW4gcHJvZHVjZXMg YSB0dXBsZSB3aG9zZSBkZXNjcmlwdG9yCiAJCSAqIG1hdGNoZXMgb3VyIHNjYW4gdHVwbGUgc2xv dC4gIEFsc28sIHJlbW92ZSB0aGUgbG9jYWwgY29uZGl0aW9ucwpAQCAtMTQxNCw2ICsxNDMyLDgg QEAgcG9zdGdyZXNHZXRGb3JlaWduUGxhbihQbGFubmVySW5mbyAqcm9vdCwKIAlpZiAoSVNfSk9J Tl9SRUwoZm9yZWlnbnJlbCkgfHwgSVNfVVBQRVJfUkVMKGZvcmVpZ25yZWwpKQogCQlmZHdfcHJp dmF0ZSA9IGxhcHBlbmQoZmR3X3ByaXZhdGUsCiAJCQkJCQkJICBtYWtlU3RyaW5nKGZwaW5mby0+ cmVsYXRpb25fbmFtZSkpOworCWlmIChJU19VUFBFUl9SRUwoZm9yZWlnbnJlbCkpCisJCWZkd19w cml2YXRlID0gbGFwcGVuZChmZHdfcHJpdmF0ZSwgZmR3X2ltcG9ydGZuX2xpc3QpOwogCiAJLyoK IAkgKiBDcmVhdGUgdGhlIEZvcmVpZ25TY2FuIG5vZGUgZm9yIHRoZSBnaXZlbiByZWxhdGlvbi4K QEAgLTE0MzIsNiArMTQ1Miw0OSBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25QbGFuKFBsYW5uZXJJbmZv ICpyb290LAogCQkJCQkJCW91dGVyX3BsYW4pOwogfQogCisvKgorICogR2VuZXJhdGUgYXR0aW5t ZXRhIGlmIHRoZXJlIGFyZSBzb21lIGNvbnZlcnRlcnM6CisgKiBjb3JyZXNwb25kaW5nIGF0dHJp YnV0ZSB0eXBlIHNob3VsZCBiZSBjb252ZXJ0ZXIKKyAqIGlucHV0IHR5cGUsIG5vdCBleHBlY3Rl ZCByZXN1bHQgdHlwZSAoQllURUEpLgorICovCitzdGF0aWMgQXR0SW5NZXRhZGF0YSAqCitnZXRf cmN2ZF9hdHRpbm1ldGEoVHVwbGVEZXNjIHR1cGRlc2MsIExpc3QgKmltcG9ydGZuX2xpc3QpCit7 CisJVHVwbGVEZXNjCXJjdmRfdHVwZGVzYzsKKworCUFzc2VydChpbXBvcnRmbl9saXN0ICE9IE5J TCk7CisKKwlyY3ZkX3R1cGRlc2MgPSBDcmVhdGVUdXBsZURlc2NDb3B5KHR1cGRlc2MpOworCWZv ciAoaW50IGkgPSAwOyBpIDwgcmN2ZF90dXBkZXNjLT5uYXR0czsgaSsrKQorCXsKKwkJT2lkCQkJ aW1wb3J0Zm4gPSBJbnZhbGlkT2lkOworCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURl c2NBdHRyKHJjdmRfdHVwZGVzYywgaSk7CisKKwkJaW1wb3J0Zm4gPSBsaXN0X250aF9vaWQoaW1w b3J0Zm5fbGlzdCwgaSk7CisJCWlmIChpbXBvcnRmbiAhPSBJbnZhbGlkT2lkKQorCQl7CisJCQlI ZWFwVHVwbGUJcHJvY3R1cDsKKwkJCUZvcm1fcGdfcHJvYyBwcm9jZm9ybTsKKworCQkJcHJvY3R1 cCA9IFNlYXJjaFN5c0NhY2hlMShQUk9DT0lELCBPYmplY3RJZEdldERhdHVtKGltcG9ydGZuKSk7 CisKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZChwcm9jdHVwKSkKKwkJCQllbG9nKEVSUk9SLCAi Y2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgZnVuY3Rpb24gJXUiLCBpbXBvcnRmbik7CisKKwkJCXBy b2Nmb3JtID0gKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHByb2N0dXApOworCisJCQlpZiAocHJv Y2Zvcm0tPnByb25hcmdzICE9IDEpCisJCQkJZWxvZyhFUlJPUiwgImNvbnZlcnRlciAlcyBpcyBl eHBlY3RlZCB0byBoYXZlIG9uZSBhcmd1bWVudCIsIE5hbWVTdHIocHJvY2Zvcm0tPnByb25hbWUp KTsKKworCQkJYXR0LT5hdHR0eXBpZCA9IHByb2Nmb3JtLT5wcm9hcmd0eXBlcy52YWx1ZXNbMF07 CisKKwkJCVJlbGVhc2VTeXNDYWNoZShwcm9jdHVwKTsKKwkJfQorCX0KKworCXJldHVybiBUdXBs ZURlc2NHZXRBdHRJbk1ldGFkYXRhKHJjdmRfdHVwZGVzYyk7Cit9CisKIC8qCiAgKiBDb25zdHJ1 Y3QgYSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgc2NhbiB0dXBsZXMgaGFuZGxlZCBieSBhIGZv cmVpZ24gam9pbi4KICAqLwpAQCAtMTU0Miw2ICsxNjA1LDkgQEAgcG9zdGdyZXNCZWdpbkZvcmVp Z25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUsIGludCBlZmxhZ3MpCiAJCQkJCQkJCQkgRmR3 U2NhblByaXZhdGVTZWxlY3RTcWwpKTsKIAlmc3N0YXRlLT5yZXRyaWV2ZWRfYXR0cnMgPSAoTGlz dCAqKSBsaXN0X250aChmc3BsYW4tPmZkd19wcml2YXRlLAogCQkJCQkJCQkJCQkJIEZkd1NjYW5Q cml2YXRlUmV0cmlldmVkQXR0cnMpOworCWlmIChsaXN0X2xlbmd0aChmc3BsYW4tPmZkd19wcml2 YXRlKSA+IEZkd1NjYW5Qcml2YXRlSW1wb3J0Zm5zKQorCQlmc3N0YXRlLT5pbXBvcnRmbl9saXN0 ID0gKExpc3QgKikgbGlzdF9udGgoZnNwbGFuLT5mZHdfcHJpdmF0ZSwKKwkJCQkJCQkJCQkJICAg RmR3U2NhblByaXZhdGVJbXBvcnRmbnMpOwogCWZzc3RhdGUtPmZldGNoX3NpemUgPSBpbnRWYWwo bGlzdF9udGgoZnNwbGFuLT5mZHdfcHJpdmF0ZSwKIAkJCQkJCQkJCQkgIEZkd1NjYW5Qcml2YXRl RmV0Y2hTaXplKSk7CiAKQEAgLTE1NjgsNyArMTYzNCwxMCBAQCBwb3N0Z3Jlc0JlZ2luRm9yZWln blNjYW4oRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSwgaW50IGVmbGFncykKIAkJZnNzdGF0ZS0+dHVw ZGVzYyA9IGdldF90dXBkZXNjX2Zvcl9qb2luX3NjYW5fdHVwbGVzKG5vZGUpOwogCX0KIAotCWZz c3RhdGUtPmF0dGlubWV0YSA9IFR1cGxlRGVzY0dldEF0dEluTWV0YWRhdGEoZnNzdGF0ZS0+dHVw ZGVzYyk7CisJaWYgKGZzc3RhdGUtPmltcG9ydGZuX2xpc3QgIT0gTklMKQorCQlmc3N0YXRlLT5h dHRpbm1ldGEgPSBnZXRfcmN2ZF9hdHRpbm1ldGEoZnNzdGF0ZS0+dHVwZGVzYywgZnNzdGF0ZS0+ aW1wb3J0Zm5fbGlzdCk7CisJZWxzZQorCQlmc3N0YXRlLT5hdHRpbm1ldGEgPSBUdXBsZURlc2NH ZXRBdHRJbk1ldGFkYXRhKGZzc3RhdGUtPnR1cGRlc2MpOwogCiAJLyoKIAkgKiBQcmVwYXJlIGZv ciBwcm9jZXNzaW5nIG9mIHBhcmFtZXRlcnMgdXNlZCBpbiByZW1vdGUgcXVlcnksIGlmIGFueS4K QEAgLTM4NDcsNiArMzkxNiw3IEBAIGZldGNoX21vcmVfZGF0YShGb3JlaWduU2NhblN0YXRlICpu b2RlKQogCQkJCQkJCQkJCSAgIGZzc3RhdGUtPnJlbCwKIAkJCQkJCQkJCQkgICBmc3N0YXRlLT5h dHRpbm1ldGEsCiAJCQkJCQkJCQkJICAgZnNzdGF0ZS0+cmV0cmlldmVkX2F0dHJzLAorCQkJCQkJ CQkJCSAgIGZzc3RhdGUtPmltcG9ydGZuX2xpc3QsCiAJCQkJCQkJCQkJICAgbm9kZSwKIAkJCQkJ CQkJCQkgICBmc3N0YXRlLT50ZW1wX2N4dCk7CiAJCX0KQEAgLTQzMzgsNiArNDQwOCw3IEBAIHN0 b3JlX3JldHVybmluZ19yZXN1bHQoUGdGZHdNb2RpZnlTdGF0ZSAqZm1zdGF0ZSwKIAkJCQkJCQkJ CQkJZm1zdGF0ZS0+cmVsLAogCQkJCQkJCQkJCQlmbXN0YXRlLT5hdHRpbm1ldGEsCiAJCQkJCQkJ CQkJCWZtc3RhdGUtPnJldHJpZXZlZF9hdHRycywKKwkJCQkJCQkJCQkJTklMLAogCQkJCQkJCQkJ CQlOVUxMLAogCQkJCQkJCQkJCQlmbXN0YXRlLT50ZW1wX2N4dCk7CiAKQEAgLTQ2MzEsNiArNDcw Miw3IEBAIGdldF9yZXR1cm5pbmdfZGF0YShGb3JlaWduU2NhblN0YXRlICpub2RlKQogCQkJCQkJ CQkJCQkJZG1zdGF0ZS0+cmVsLAogCQkJCQkJCQkJCQkJZG1zdGF0ZS0+YXR0aW5tZXRhLAogCQkJ CQkJCQkJCQkJZG1zdGF0ZS0+cmV0cmlldmVkX2F0dHJzLAorCQkJCQkJCQkJCQkJTklMLAogCQkJ CQkJCQkJCQkJbm9kZSwKIAkJCQkJCQkJCQkJCWRtc3RhdGUtPnRlbXBfY3h0KTsKIAkJCUV4ZWNT dG9yZUhlYXBUdXBsZShuZXd0dXAsIHNsb3QsIGZhbHNlKTsKQEAgLTU0MjEsNiArNTQ5Myw3IEBA IGFuYWx5emVfcm93X3Byb2Nlc3NvcihQR3Jlc3VsdCAqcmVzLCBpbnQgcm93LCBQZ0Zkd0FuYWx5 emVTdGF0ZSAqYXN0YXRlKQogCQkJCQkJCQkJCQkJCSAgIGFzdGF0ZS0+cmVsLAogCQkJCQkJCQkJ CQkJCSAgIGFzdGF0ZS0+YXR0aW5tZXRhLAogCQkJCQkJCQkJCQkJCSAgIGFzdGF0ZS0+cmV0cmll dmVkX2F0dHJzLAorCQkJCQkJCQkJCQkJCSAgIE5JTCwKIAkJCQkJCQkJCQkJCQkgICBOVUxMLAog CQkJCQkJCQkJCQkJCSAgIGFzdGF0ZS0+dGVtcF9jeHQpOwogCkBAIC02MDMxLDkgKzYxMDQsOSBA QCBmb3JlaWduX2pvaW5fb2soUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmpvaW5yZWws IEpvaW5UeXBlIGpvaW50eXBlLAogCWZwaW5mby0+cHVzaGRvd25fc2FmZSA9IHRydWU7CiAKIAkv KiBHZXQgdXNlciBtYXBwaW5nICovCi0JaWYgKGZwaW5mby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSkK KwlpZiAoZnBpbmZvLT51c2VfcmVtb3RlX2VzdGltYXRlIHx8IGZwaW5mby0+cGFydGlhbF9hZ2dy ZWdhdGVfc3VwcG9ydCkKIAl7Ci0JCWlmIChmcGluZm9fby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSkK KwkJaWYgKGZwaW5mb19vLT51c2VfcmVtb3RlX2VzdGltYXRlIHx8IGZwaW5mb19vLT5wYXJ0aWFs X2FnZ3JlZ2F0ZV9zdXBwb3J0KQogCQkJZnBpbmZvLT51c2VyID0gZnBpbmZvX28tPnVzZXI7CiAJ CWVsc2UKIAkJCWZwaW5mby0+dXNlciA9IGZwaW5mb19pLT51c2VyOwpAQCAtNjIwNCw2ICs2Mjc3 LDggQEAgYXBwbHlfc2VydmVyX29wdGlvbnMoUGdGZHdSZWxhdGlvbkluZm8gKmZwaW5mbykKIAog CQlpZiAoc3RyY21wKGRlZi0+ZGVmbmFtZSwgInVzZV9yZW1vdGVfZXN0aW1hdGUiKSA9PSAwKQog CQkJZnBpbmZvLT51c2VfcmVtb3RlX2VzdGltYXRlID0gZGVmR2V0Qm9vbGVhbihkZWYpOworCQll bHNlIGlmIChzdHJjbXAoZGVmLT5kZWZuYW1lLCAicGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCIp ID09IDApCisJCQlmcGluZm8tPnBhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQgPSBkZWZHZXRCb29s ZWFuKGRlZik7CiAJCWVsc2UgaWYgKHN0cmNtcChkZWYtPmRlZm5hbWUsICJmZHdfc3RhcnR1cF9j b3N0IikgPT0gMCkKIAkJCSh2b2lkKSBwYXJzZV9yZWFsKGRlZkdldFN0cmluZyhkZWYpLCAmZnBp bmZvLT5mZHdfc3RhcnR1cF9jb3N0LCAwLAogCQkJCQkJCSAgTlVMTCk7CkBAIC02Mjc0LDYgKzYz NDksOCBAQCBtZXJnZV9mZHdfb3B0aW9ucyhQZ0Zkd1JlbGF0aW9uSW5mbyAqZnBpbmZvLAogCWZw aW5mby0+c2hpcHBhYmxlX2V4dGVuc2lvbnMgPSBmcGluZm9fby0+c2hpcHBhYmxlX2V4dGVuc2lv bnM7CiAJZnBpbmZvLT51c2VfcmVtb3RlX2VzdGltYXRlID0gZnBpbmZvX28tPnVzZV9yZW1vdGVf ZXN0aW1hdGU7CiAJZnBpbmZvLT5mZXRjaF9zaXplID0gZnBpbmZvX28tPmZldGNoX3NpemU7CisJ ZnBpbmZvLT5yZW1vdGV2ZXJzaW9uID0gZnBpbmZvX28tPnJlbW90ZXZlcnNpb247CisJZnBpbmZv LT5wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0ID0gZnBpbmZvX28tPnBhcnRpYWxfYWdncmVnYXRl X3N1cHBvcnQ7CiAJZnBpbmZvLT5hc3luY19jYXBhYmxlID0gZnBpbmZvX28tPmFzeW5jX2NhcGFi bGU7CiAKIAkvKiBNZXJnZSB0aGUgdGFibGUgbGV2ZWwgb3B0aW9ucyBmcm9tIGVpdGhlciBzaWRl IG9mIHRoZSBqb2luLiAqLwpAQCAtNjQ1Niw3ICs2NTMzLDcgQEAgcG9zdGdyZXNHZXRGb3JlaWdu Sm9pblBhdGhzKFBsYW5uZXJJbmZvICpyb290LAogICovCiBzdGF0aWMgYm9vbAogZm9yZWlnbl9n cm91cGluZ19vayhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqZ3JvdXBlZF9yZWwsCi0J CQkJCU5vZGUgKmhhdmluZ1F1YWwpCisJCQkJCUdyb3VwUGF0aEV4dHJhRGF0YSAqZXh0cmEpCiB7 CiAJUXVlcnkJICAgKnF1ZXJ5ID0gcm9vdC0+cGFyc2U7CiAJUGdGZHdSZWxhdGlvbkluZm8gKmZw aW5mbyA9IChQZ0Zkd1JlbGF0aW9uSW5mbyAqKSBncm91cGVkX3JlbC0+ZmR3X3ByaXZhdGU7CkBA IC02NDY1LDYgKzY1NDIsNyBAQCBmb3JlaWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290 LCBSZWxPcHRJbmZvICpncm91cGVkX3JlbCwKIAlMaXN0Q2VsbCAgICpsYzsKIAlpbnQJCQlpOwog CUxpc3QJICAgKnRsaXN0ID0gTklMOworCWJvb2wJCXBhcnRpYWwgPSBleHRyYS0+cGF0eXBlID09 IFBBUlRJVElPTldJU0VfQUdHUkVHQVRFX1BBUlRJQUw7CiAKIAkvKiBXZSBjdXJyZW50bHkgZG9u J3Qgc3VwcG9ydCBwdXNoaW5nIEdyb3VwaW5nIFNldHMuICovCiAJaWYgKHF1ZXJ5LT5ncm91cGlu Z1NldHMpCkBAIC02NDk4LDYgKzY1NzYsMTIgQEAgZm9yZWlnbl9ncm91cGluZ19vayhQbGFubmVy SW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqZ3JvdXBlZF9yZWwsCiAJICogYSBub2RlLCBhcyBsb25n IGFzIGl0J3Mgbm90IGF0IHRvcCBsZXZlbDsgdGhlbiBubyBtYXRjaCBpcyBwb3NzaWJsZS4KIAkg Ki8KIAlpID0gMDsKKwlmcGluZm8tPmdyb3VwX2NsYXVzZSA9IHF1ZXJ5LT5ncm91cENsYXVzZTsK KwlpZiAocGFydGlhbCkKKwl7CisJCWZwaW5mby0+Z3JvdXBfY2xhdXNlID0gZXh0cmEtPmdyb3Vw Q2xhdXNlUGFydGlhbDsKKwkJZ3JvdXBpbmdfdGFyZ2V0ID0gZXh0cmEtPnBhcnRpYWxfdGFyZ2V0 OworCX0KIAlmb3JlYWNoKGxjLCBncm91cGluZ190YXJnZXQtPmV4cHJzKQogCXsKIAkJRXhwcgkg ICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CkBAIC02NTA5LDcgKzY1OTMsNyBAQCBmb3Jl aWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpncm91cGVkX3Jl bCwKIAkJICogY2hlY2sgdGhlIHdob2xlIEdST1VQIEJZIGNsYXVzZSBub3QganVzdCBwcm9jZXNz ZWRfZ3JvdXBDbGF1c2UsCiAJCSAqIGJlY2F1c2Ugd2Ugd2lsbCBzaGlwIGFsbCBvZiBpdCwgY2Yu IGFwcGVuZEdyb3VwQnlDbGF1c2UuCiAJCSAqLwotCQlpZiAoc2dyZWYgJiYgZ2V0X3NvcnRncm91 cHJlZl9jbGF1c2Vfbm9lcnIoc2dyZWYsIHF1ZXJ5LT5ncm91cENsYXVzZSkpCisJCWlmIChzZ3Jl ZiAmJiBnZXRfc29ydGdyb3VwcmVmX2NsYXVzZV9ub2VycihzZ3JlZiwgZnBpbmZvLT5ncm91cF9j bGF1c2UpKQogCQl7CiAJCQlUYXJnZXRFbnRyeSAqdGxlOwogCkBAIC02NTk1LDkgKzY2NzksOSBA QCBmb3JlaWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpncm91 cGVkX3JlbCwKIAkgKiBDbGFzc2lmeSB0aGUgcHVzaGFibGUgYW5kIG5vbi1wdXNoYWJsZSBIQVZJ TkcgY2xhdXNlcyBhbmQgc2F2ZSB0aGVtIGluCiAJICogcmVtb3RlX2NvbmRzIGFuZCBsb2NhbF9j b25kcyBvZiB0aGUgZ3JvdXBlZCByZWwncyBmcGluZm8uCiAJICovCi0JaWYgKGhhdmluZ1F1YWwp CisJaWYgKGV4dHJhLT5oYXZpbmdRdWFsICYmICFwYXJ0aWFsKQogCXsKLQkJZm9yZWFjaChsYywg KExpc3QgKikgaGF2aW5nUXVhbCkKKwkJZm9yZWFjaChsYywgKExpc3QgKikgZXh0cmEtPmhhdmlu Z1F1YWwpCiAJCXsKIAkJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOwogCQkJ UmVzdHJpY3RJbmZvICpyaW5mbzsKQEAgLTY3MTEsNiArNjc5NSw3IEBAIHBvc3RncmVzR2V0Rm9y ZWlnblVwcGVyUGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFVwcGVyUmVsYXRpb25LaW5kIHN0YWdl LAogCiAJLyogSWdub3JlIHN0YWdlcyB3ZSBkb24ndCBzdXBwb3J0OyBhbmQgc2tpcCBhbnkgZHVw bGljYXRlIGNhbGxzLiAqLwogCWlmICgoc3RhZ2UgIT0gVVBQRVJSRUxfR1JPVVBfQUdHICYmCisJ CSBzdGFnZSAhPSBVUFBFUlJFTF9QQVJUSUFMX0dST1VQX0FHRyAmJgogCQkgc3RhZ2UgIT0gVVBQ RVJSRUxfT1JERVJFRCAmJgogCQkgc3RhZ2UgIT0gVVBQRVJSRUxfRklOQUwpIHx8CiAJCW91dHB1 dF9yZWwtPmZkd19wcml2YXRlKQpAQCAtNjcyNyw2ICs2ODEyLDEwIEBAIHBvc3RncmVzR2V0Rm9y ZWlnblVwcGVyUGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFVwcGVyUmVsYXRpb25LaW5kIHN0YWdl LAogCQkJYWRkX2ZvcmVpZ25fZ3JvdXBpbmdfcGF0aHMocm9vdCwgaW5wdXRfcmVsLCBvdXRwdXRf cmVsLAogCQkJCQkJCQkJICAgKEdyb3VwUGF0aEV4dHJhRGF0YSAqKSBleHRyYSk7CiAJCQlicmVh azsKKwkJY2FzZSBVUFBFUlJFTF9QQVJUSUFMX0dST1VQX0FHRzoKKwkJCWFkZF9mb3JlaWduX2dy b3VwaW5nX3BhdGhzKHJvb3QsIGlucHV0X3JlbCwgb3V0cHV0X3JlbCwKKwkJCQkJCQkJCSAgIChH cm91cFBhdGhFeHRyYURhdGEgKikgZXh0cmEpOworCQkJYnJlYWs7CiAJCWNhc2UgVVBQRVJSRUxf T1JERVJFRDoKIAkJCWFkZF9mb3JlaWduX29yZGVyZWRfcGF0aHMocm9vdCwgaW5wdXRfcmVsLCBv dXRwdXRfcmVsKTsKIAkJCWJyZWFrOwpAQCAtNjc2Nyw3ICs2ODU2LDggQEAgYWRkX2ZvcmVpZ25f Z3JvdXBpbmdfcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmlucHV0X3JlbCwK IAkJcmV0dXJuOwogCiAJQXNzZXJ0KGV4dHJhLT5wYXR5cGUgPT0gUEFSVElUSU9OV0lTRV9BR0dS RUdBVEVfTk9ORSB8fAotCQkgICBleHRyYS0+cGF0eXBlID09IFBBUlRJVElPTldJU0VfQUdHUkVH QVRFX0ZVTEwpOworCQkgICBleHRyYS0+cGF0eXBlID09IFBBUlRJVElPTldJU0VfQUdHUkVHQVRF X0ZVTEwgfHwKKwkJICAgZXh0cmEtPnBhdHlwZSA9PSBQQVJUSVRJT05XSVNFX0FHR1JFR0FURV9Q QVJUSUFMKTsKIAogCS8qIHNhdmUgdGhlIGlucHV0X3JlbCBhcyBvdXRlcnJlbCBpbiBmcGluZm8g Ki8KIAlmcGluZm8tPm91dGVycmVsID0gaW5wdXRfcmVsOwpAQCAtNjc4Nyw3ICs2ODc3LDcgQEAg YWRkX2ZvcmVpZ25fZ3JvdXBpbmdfcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8g KmlucHV0X3JlbCwKIAkgKiBVc2UgSEFWSU5HIHF1YWwgZnJvbSBleHRyYS4gSW4gY2FzZSBvZiBj aGlsZCBwYXJ0aXRpb24sIGl0IHdpbGwgaGF2ZQogCSAqIHRyYW5zbGF0ZWQgVmFycy4KIAkgKi8K LQlpZiAoIWZvcmVpZ25fZ3JvdXBpbmdfb2socm9vdCwgZ3JvdXBlZF9yZWwsIGV4dHJhLT5oYXZp bmdRdWFsKSkKKwlpZiAoIWZvcmVpZ25fZ3JvdXBpbmdfb2socm9vdCwgZ3JvdXBlZF9yZWwsIGV4 dHJhKSkKIAkJcmV0dXJuOwogCiAJLyoKQEAgLTczMTgsNiArNzQwOCwzMCBAQCBwb3N0Z3Jlc0Zv cmVpZ25Bc3luY0NvbmZpZ3VyZVdhaXQoQXN5bmNSZXF1ZXN0ICphcmVxKQogCQkJCQkgIE5VTEws IGFyZXEpOwogfQogCisvKgorICogSW50ZXJmYWNlIHRvIGZtZ3IgdG8gY2FsbCBpbXBvcnRmbgor ICovCitzdGF0aWMgRGF0dW0KK2ltcG9ydF9zdGF0ZXZhbHVlKE9pZCBpbXBvcnRmbiwgT2lkIGNv bGxhdGlvbiwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsLCBib29sICpyZXNfaXNudWxsKQorewor CUxPQ0FMX0ZDSU5GTyhmY2luZm8sIDEpOworCUZtZ3JJbmZvCWZsaW5mbzsKKwlEYXR1bQkJcmVz dWx0OworCisJZm1ncl9pbmZvKGltcG9ydGZuLCAmZmxpbmZvKTsKKworCUluaXRGdW5jdGlvbkNh bGxJbmZvRGF0YSgqZmNpbmZvLCAmZmxpbmZvLCAxLCBjb2xsYXRpb24sIE5VTEwsIE5VTEwpOwor CisJZmNpbmZvLT5hcmdzWzBdLnZhbHVlID0gdmFsdWU7CisJZmNpbmZvLT5hcmdzWzBdLmlzbnVs bCA9IGlzbnVsbDsKKworCXJlc3VsdCA9IEZ1bmN0aW9uQ2FsbEludm9rZShmY2luZm8pOworCisJ aWYgKHJlc19pc251bGwpCisJCSpyZXNfaXNudWxsID0gZmNpbmZvLT5pc251bGw7CisJcmV0dXJu IHJlc3VsdDsKK30KKwogLyoKICAqIHBvc3RncmVzRm9yZWlnbkFzeW5jTm90aWZ5CiAgKgkJRmV0 Y2ggc29tZSBtb3JlIHR1cGxlcyBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIHRoYXQgYmVjb21lcyBy ZWFkeSwKQEAgLTc1MzIsNiArNzY0Niw3IEBAIG1ha2VfdHVwbGVfZnJvbV9yZXN1bHRfcm93KFBH cmVzdWx0ICpyZXMsCiAJCQkJCQkgICBSZWxhdGlvbiByZWwsCiAJCQkJCQkgICBBdHRJbk1ldGFk YXRhICphdHRpbm1ldGEsCiAJCQkJCQkgICBMaXN0ICpyZXRyaWV2ZWRfYXR0cnMsCisJCQkJCQkg ICBMaXN0ICppbXBvcnRmbl9saXN0LAogCQkJCQkJICAgRm9yZWlnblNjYW5TdGF0ZSAqZnNzdGF0 ZSwKIAkJCQkJCSAgIE1lbW9yeUNvbnRleHQgdGVtcF9jb250ZXh0KQogewpAQCAtNzYxNCw2ICs3 NzI5LDIwIEBAIG1ha2VfdHVwbGVfZnJvbV9yZXN1bHRfcm93KFBHcmVzdWx0ICpyZXMsCiAJCQkJ CQkJCQkJCSAgdmFsc3RyLAogCQkJCQkJCQkJCQkgIGF0dGlubWV0YS0+YXR0aW9wYXJhbXNbaSAt IDFdLAogCQkJCQkJCQkJCQkgIGF0dGlubWV0YS0+YXR0dHlwbW9kc1tpIC0gMV0pOworCisJCQlp ZiAoaW1wb3J0Zm5fbGlzdCAhPSBOSUwpCisJCQl7CisJCQkJT2lkCQkJaW1wb3J0Zm4gPSBsaXN0 X250aF9vaWQoaW1wb3J0Zm5fbGlzdCwgaSAtIDEpOworCisJCQkJaWYgKGltcG9ydGZuICE9IElu dmFsaWRPaWQpCisJCQkJeworCQkJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NB dHRyKHR1cGRlc2MsIGkpOworCQkJCQlib29sCQlyZXNfaXNudWxsOworCisJCQkJCXZhbHVlc1tp IC0gMV0gPSBpbXBvcnRfc3RhdGV2YWx1ZShpbXBvcnRmbiwgYXR0LT5hdHRjb2xsYXRpb24sIHZh bHVlc1tpIC0gMV0sIG51bGxzW2kgLSAxXSwgJnJlc19pc251bGwpOworCQkJCQludWxsc1tpIC0g MV0gPSByZXNfaXNudWxsOworCQkJCX0KKwkJCX0JCQkJCQkJCQkJCSAgCiAJCX0KIAkJZWxzZSBp ZiAoaSA9PSBTZWxmSXRlbVBvaW50ZXJBdHRyaWJ1dGVOdW1iZXIpCiAJCXsKQEAgLTc5MjQsMyAr ODA1Myw1NCBAQCBnZXRfYmF0Y2hfc2l6ZV9vcHRpb24oUmVsYXRpb24gcmVsKQogCiAJcmV0dXJu IGJhdGNoX3NpemU7CiB9CisKKy8qCisgKiBGb3IgVVBQRVJfUkVMIGJ1aWxkIGEgbGlzdCBvZiBp bXBvcnRmbnMsIGNvcnJlc3BvbmRpbmcgdG8gdGxpc3QgZW50cmllcy4KKyAqLworc3RhdGljIExp c3QgKgorYnVpbGRfaW1wb3J0Zm5fbGlzdChSZWxPcHRJbmZvICpmb3JlaWducmVsKQoreworCUxp c3QJICAgKmltcG9ydGZuX2xpc3QgPSBOSUw7CisJUGdGZHdSZWxhdGlvbkluZm8gKmZwaW5mbyA9 IChQZ0Zkd1JlbGF0aW9uSW5mbyAqKSBmb3JlaWducmVsLT5mZHdfcHJpdmF0ZTsKKwlMaXN0Q2Vs bCAgICpsYzsKKworCWlmICghSVNfVVBQRVJfUkVMKGZvcmVpZ25yZWwpKQorCQlyZXR1cm4gTklM OworCisJLyogRm9yIFVQUEVSX1JFTCB0bGlzdCBtYXRjaGVzIGdyb3VwZWRfdGxpc3QgKi8KKwlm b3JlYWNoKGxjLCBmcGluZm8tPmdyb3VwZWRfdGxpc3QpCisJeworCQlUYXJnZXRFbnRyeSAqdGxl bnRyeSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCQlPaWQJCQlpbXBvcnRmbl9vaWQg PSBJbnZhbGlkT2lkOworCisJCWlmIChJc0EodGxlbnRyeS0+ZXhwciwgQWdncmVmKSkKKwkJewor CQkJQWdncmVmCSAgICphZ2cgPSAoQWdncmVmICopIHRsZW50cnktPmV4cHI7CisKKwkJCWlmIChh Z2ctPmFnZ3NwbGl0ID09IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMICYmIGFnZy0+YWdndHJhbnN0 eXBlID09IElOVEVSTkFMT0lEKQorCQkJeworCQkJCUhlYXBUdXBsZQlhZ2d0dXA7CisJCQkJRm9y bV9wZ19hZ2dyZWdhdGUgYWdnZm9ybTsKKworCQkJCWFnZ3R1cCA9IFNlYXJjaFN5c0NhY2hlMShB R0dGTk9JRCwgT2JqZWN0SWRHZXREYXR1bShhZ2ctPmFnZ2Zub2lkKSk7CisJCQkJaWYgKCFIZWFw VHVwbGVJc1ZhbGlkKGFnZ3R1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciBmdW5jdGlvbiAldSIsIGFnZy0+YWdnZm5vaWQpOworCisJCQkJYWdnZm9ybSA9IChG b3JtX3BnX2FnZ3JlZ2F0ZSkgR0VUU1RSVUNUKGFnZ3R1cCk7CisKKwkJCQlpbXBvcnRmbl9vaWQg PSBhZ2dmb3JtLT5hZ2dwYXJ0aWFsaW1wb3J0Zm47CisJCQkJQXNzZXJ0KGltcG9ydGZuX29pZCAh PSBJbnZhbGlkT2lkKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZShhZ2d0dXApOworCQkJfQorCQl9 CisKKwkJLyoKKwkJICogV2UgYXBwZW5kIEludmFsaWRPaWQgdG8gaW1wb3J0Zm5fbGlzdCB0byBw cmVzZXJ2ZSBvbmUtdG8tb25lIG1hcHBpbmcKKwkJICogYmV0d2VlbiB0bGlzdCBhbmQgaW1wb3J0 Zm5fbGlzdCBtZW1iZXJzLgorCQkgKi8KKwkJaW1wb3J0Zm5fbGlzdCA9IGxhcHBlbmRfb2lkKGlt cG9ydGZuX2xpc3QsIGltcG9ydGZuX29pZCk7CisJfQorCisJcmV0dXJuIGltcG9ydGZuX2xpc3Q7 Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0 Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmggYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19m ZHcuaAppbmRleCAzN2MxNTc1YWY2Li5kZWZlYTcxNGY5IDEwMDY0NAotLS0gYS9jb250cmliL3Bv c3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuaAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0 Z3Jlc19mZHcuaApAQCAtODQsNyArODQsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdGZHdSZWxhdGlv bkluZm8KIAkvKiBDYWNoZWQgY2F0YWxvZyBpbmZvcm1hdGlvbi4gKi8KIAlGb3JlaWduVGFibGUg KnRhYmxlOwogCUZvcmVpZ25TZXJ2ZXIgKnNlcnZlcjsKLQlVc2VyTWFwcGluZyAqdXNlcjsJCQkv KiBvbmx5IHNldCBpbiB1c2VfcmVtb3RlX2VzdGltYXRlIG1vZGUgKi8KKwlVc2VyTWFwcGluZyAq dXNlcjsJCQkvKiBvbmx5IHNldCBpbiB1c2VfcmVtb3RlX2VzdGltYXRlL3BhcnRpYWxfYWdncmVn YXRlX3N1cHBvcnQgbW9kZSAqLworCisJLyogZm9yIHBhcnRpYWwgYWdncmVnYXRlIHB1c2hkb3du ICovCisJYm9vbAkJcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydDsKKworCS8qCisJICogSWYgcmVt b3RldmVyc2lvbiBpcyB6ZXJvLCBpdCBtZWFucyB0aGUgcmVtb3RlIHNlcnZlciB2ZXJzaW9uIGhh cyBub3QKKwkgKiBiZWVuIGFjcXVpcmVkLgorCSAqLworCWludAkJCXJlbW90ZXZlcnNpb247CiAK IAlpbnQJCQlmZXRjaF9zaXplOwkJLyogZmV0Y2ggc2l6ZSBmb3IgdGhpcyByZW1vdGUgdGFibGUg Ki8KIApAQCAtMTEwLDYgKzExOSw3IEBAIHR5cGVkZWYgc3RydWN0IFBnRmR3UmVsYXRpb25JbmZv CiAKIAkvKiBHcm91cGluZyBpbmZvcm1hdGlvbiAqLwogCUxpc3QJICAgKmdyb3VwZWRfdGxpc3Q7 CisJTGlzdAkgICAqZ3JvdXBfY2xhdXNlOwogCiAJLyogU3VicXVlcnkgaW5mb3JtYXRpb24gKi8K IAlib29sCQltYWtlX291dGVycmVsX3N1YnF1ZXJ5OyAvKiBkbyB3ZSBkZXBhcnNlIG91dGVycmVs IGFzIGEKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcu c3FsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5kZXggYjU3 ZjhjZmRhNi4uNDNkY2YwZTc0ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3Fs L3Bvc3RncmVzX2Zkdy5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVz X2Zkdy5zcWwKQEAgLTMxNTAsMTYgKzMxNTAsMzMgQEAgUkVTRVQgZW5hYmxlX3BhcnRpdGlvbndp c2Vfam9pbjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3QgcGFydGl0aW9ud2lzZSBhZ2dyZWdhdGVz CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0KLUNSRUFURSBUQUJMRSBwYWdnX3RhYiAoYSBpbnQsIGIgaW50LCBj IHRleHQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJ T05TIChBREQgZmR3X3R1cGxlX2Nvc3QgJzAuMScpOworCitDUkVBVEUgVFlQRSBtb29kIEFTIGVu dW0gKCdzYWQnLCAnb2snLCAnaGFwcHknKTsKK0FMVEVSIEVYVEVOU0lPTiBwb3N0Z3Jlc19mZHcg QUREIFRZUEUgbW9vZDsKKworQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiIChhIGludCwgYiBpbnQsIGMg dGV4dCwgY19zZXJpYWwgaW50NCwKKwkJCQkJY19pbnQ0YXJyYXkgX2ludDQsIGNfaW50ZXJ2YWwg aW50ZXJ2YWwsCisJCQkJCWNfbW9uZXkgbW9uZXksIGNfMWMgdGV4dCwgY18xYiBieXRlYSwKKwkJ CQkJY19iaXQgYml0KDIpLCBjXzFvcjNpbnQyIGludDIsCisJCQkJCWNfMW9yM2ludDQgaW50NCwg Y18xb3IzaW50OCBpbnQ4LAorCQkJCQljX2Jvb2wgYm9vbCwgY19lbnVtIG1vb2QsIGNfcGdfbHNu IHBnX2xzbiwKKwkJCQkJY190aWQgdGlkLCBjX2ludDRyYW5nZSBpbnQ0cmFuZ2UsCisJCQkJCWNf aW50NG11bHRpcmFuZ2UgaW50NG11bHRpcmFuZ2UsCisJCQkJCWNfdGltZSB0aW1lLCBjX3RpbWV0 eiB0aW1ldHosCisJCQkJCWNfdGltZXN0YW1wIHRpbWVzdGFtcCwgY190aW1lc3RhbXB0eiB0aW1l c3RhbXB0eiwKKwkJCQkJY194aWQ4IHhpZDgpCisJUEFSVElUSU9OIEJZIFJBTkdFKGEpOwogCiBD UkVBVEUgVEFCTEUgcGFnZ190YWJfcDEgKExJS0UgcGFnZ190YWIpOwogQ1JFQVRFIFRBQkxFIHBh Z2dfdGFiX3AyIChMSUtFIHBhZ2dfdGFiKTsKIENSRUFURSBUQUJMRSBwYWdnX3RhYl9wMyAoTElL RSBwYWdnX3RhYik7CiAKLUlOU0VSVCBJTlRPIHBhZ2dfdGFiX3AxIFNFTEVDVCBpICUgMzAsIGkg JSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAw MCkgaSBXSEVSRSAoaSAlIDMwKSA8IDEwOwotSU5TRVJUIElOVE8gcGFnZ190YWJfcDIgU0VMRUNU IGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMjAgYW5kIChpICUgMzApID49IDEwOwot SU5TRVJUIElOVE8gcGFnZ190YWJfcDMgU0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkv MzAsICdGTTAwMDAnKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUg MzApIDwgMzAgYW5kIChpICUgMzApID49IDIwOworU0VUIFRpbWVab25lID0gJ1VUQyc7CisKK0lO U0VSVCBJTlRPIHBhZ2dfdGFiX3AxIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMw LCAnRk0wMDAwJyksIGksIGFycmF5WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAnIHNlY29uZHMn KTo6aW50ZXJ2YWwsIChpICUgMik6Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAt IDEpICUgMTApOjp0ZXh0KTo6Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIEInMDEn IGVsc2UgQicxMScgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQs IGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUg MikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVl IGVsc2UgZmFsc2UgZW5kLCAoY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAn aGFwcHknIGVuZCk6Om1vb2QsICgnMC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8fCBpIHx8ICcp Jyk6OnRpZCwgaW50NHJhbmdlKDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSks IGludDRyYW5nZSgxMDAsIDEwMCArIGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChpIHx8ICcgc2Vj b25kcycpOjppbnRlcnZhbCwgJzAwOjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6 OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vjb25kcycpOjpp bnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vjb25kcycpOjpp bnRlcnZhbCwgKChpICUgMTApOjp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAz MDAwKSBpIFdIRVJFIChpICUgMzApIDwgMTA7CitJTlNFUlQgSU5UTyBwYWdnX3RhYl9wMiBTRUxF Q1QgaSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpLCBpLCBhcnJheVsoaSAl IDIpLCAwXSwgKChpICUgMikgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAoaSAlIDIpOjptb25l eSwgKChpIC0gMSkgJSAxMCk6OnRleHQsICgoKGkgLSAxKSAlIDEwKTo6dGV4dCk6OmJ5dGVhLCBj YXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiBCJzAxJyBlbHNlIEInMTEnIGVuZCwgY2FzZSB3aGVu IChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhl biAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwg Y2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gdHJ1ZSBlbHNlIGZhbHNlIGVuZCwgKGNhc2Ugd2hl biAoaSAlIDIpID0gMCB0aGVuICdzYWQnIGVsc2UgJ2hhcHB5JyBlbmQpOjptb29kLCAoJzAvJyB8 fCBpKTo6cGdfbHNuLCAoJygwLCcgfHwgaSB8fCAnKScpOjp0aWQsIGludDRyYW5nZSgwLCBpKSwg aW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKDAsIGkpLCBpbnQ0cmFuZ2UoMTAwLCAxMDAgKyBpKSks ICcwMDowMDowMCc6OnRpbWUgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcwMDowMDow MCc6OnRpbWV0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0 aW1lc3RhbXAgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAxLTAxJzo6dGlt ZXN0YW1wdHogKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICgoaSAlIDEwKTo6dGV4dCk6 OnhpZDggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVSRSAoaSAlIDMwKSA8IDIw IGFuZCAoaSAlIDMwKSA+PSAxMDsKK0lOU0VSVCBJTlRPIHBhZ2dfdGFiX3AzIFNFTEVDVCBpICUg MzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJyksIGksIGFycmF5WyhpICUgMiksIDBd LCAoKGkgJSAyKSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsIChpICUgMik6Om1vbmV5LCAoKGkg LSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0KTo6Ynl0ZWEsIGNhc2Ugd2hl biAoaSAlIDIpID0gMCB0aGVuIEInMDEnIGVsc2UgQicxMScgZW5kLCBjYXNlIHdoZW4gKGkgJSAy KSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxz ZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdo ZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5kLCAoY2FzZSB3aGVuIChpICUg MikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1vb2QsICgnMC8nIHx8IGkpOjpw Z19sc24sICgnKDAsJyB8fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJhbmdlKDAsIGkpLCBpbnQ0bXVs dGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSksIGludDRyYW5nZSgxMDAsIDEwMCArIGkpKSwgJzAwOjAw OjAwJzo6dGltZSArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzAwOjAwOjAwJzo6dGlt ZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFt cCArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3RhbXB0 eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKChpICUgMTApOjp0ZXh0KTo6eGlkOCBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMzAgYW5kIChp ICUgMzApID49IDIwOwogCiAtLSBDcmVhdGUgZm9yZWlnbiBwYXJ0aXRpb25zCiBDUkVBVEUgRk9S RUlHTiBUQUJMRSBmcGFnZ190YWJfcDEgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMg RlJPTSAoMCkgVE8gKDEwKSBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAodGFibGVfbmFtZSAncGFn Z190YWJfcDEnKTsKQEAgLTMxNjcsOSArMzE4NCwxMyBAQCBDUkVBVEUgRk9SRUlHTiBUQUJMRSBm cGFnZ190YWJfcDIgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRP CiBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmcGFnZ190YWJfcDMgUEFSVElUSU9OIE9GIHBhZ2dfdGFi IEZPUiBWQUxVRVMgRlJPTSAoMjApIFRPICgzMCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRh YmxlX25hbWUgJ3BhZ2dfdGFiX3AzJyk7CiAKIEFOQUxZWkUgcGFnZ190YWI7CitBTkFMWVpFIHBh Z2dfdGFiX3AxOworQU5BTFlaRSBwYWdnX3RhYl9wMjsKK0FOQUxZWkUgcGFnZ190YWJfcDM7CiBB TkFMWVpFIGZwYWdnX3RhYl9wMTsKIEFOQUxZWkUgZnBhZ2dfdGFiX3AyOwogQU5BTFlaRSBmcGFn Z190YWJfcDM7CitTRVQgZXh0cmFfZmxvYXRfZGlnaXRzID0gMDsKIAogLS0gV2hlbiBHUk9VUCBC WSBjbGF1c2UgbWF0Y2hlcyB3aXRoIFBBUlRJVElPTiBLRVkuCiAtLSBQbGFuIHdpdGggcGFydGl0 aW9ud2lzZSBhZ2dyZWdhdGVzIGlzIGRpc2FibGVkCkBAIC0zMTgzLDE2ICszMjA0LDEwNCBAQCBF WFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgYSwgc3VtKGIpLCBtaW4oYiksIGNvdW50KCopIEZS T00gcGFnZ190YWIgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIgT1JERVIgQlkgMTsKIFNF TEVDVCBhLCBzdW0oYiksIG1pbihiKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBh IEhBVklORyBhdmcoYikgPCAyMiBPUkRFUiBCWSAxOwogCistLSBDaGVjayBwYXJ0aWFsIGFnZ3Jl Z2F0ZSBvdmVyIHBhcnRpdGlvbmVkIHRhYmxlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYp CitTRUxFQ1QgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBhdmcoYSkgRlJPTSBwYWdnX3RhYjsK K1NFTEVDVCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIGF2ZyhhKSBGUk9NIHBhZ2dfdGFiOwor CiAtLSBDaGVjayB3aXRoIHdob2xlLXJvdyByZWZlcmVuY2UKIC0tIFNob3VsZCBoYXZlIGFsbCB0 aGUgY29sdW1ucyBpbiB0aGUgdGFyZ2V0IGxpc3QgZm9yIHRoZSBnaXZlbiByZWxhdGlvbgogRVhQ TEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogU0VMRUNUIGEsIGNvdW50KHQxKSBGUk9NIHBhZ2df dGFiIHQxIEdST1VQIEJZIGEgSEFWSU5HIGF2ZyhiKSA8IDIyIE9SREVSIEJZIDE7CiBTRUxFQ1Qg YSwgY291bnQodDEpIEZST00gcGFnZ190YWIgdDEgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwg MjIgT1JERVIgQlkgMTsKIAotLS0gV2hlbiBHUk9VUCBCWSBjbGF1c2UgZG9lcyBub3QgbWF0Y2gg d2l0aCBQQVJUSVRJT04gS0VZLgotRVhQTEFJTiAoQ09TVFMgT0ZGKQorLS0gUGFydGlhbCBhZ2dy ZWdhdGVzIGFyZSBzYWZlIHRvIHB1c2ggZG93biB3aGVuIHRoZXJlIGlzIGEgSEFWSU5HIGNsYXVz ZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEp LCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgSEFWSU5HIHN1bShhKSA8IDcwMCBP UkRFUiBCWSAxOwogU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2df dGFiIEdST1VQIEJZIGIgSEFWSU5HIHN1bShhKSA8IDcwMCBPUkRFUiBCWSAxOwogCistLSBQYXJ0 aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIHdpdGhvdXQgaGF2aW5nIGNsYXVz ZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEp LCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsKK1NFTEVDVCBi LCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVS IEJZIDE7CisKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBhcmUgc2FmZSB0byBwdXNoIGRvd24gZXZl biBpZiB3ZSBuZWVkIGJvdGggdmFyaWFibGUgYW5kIHZhcmlhYmxlLWJhc2VkIGV4cHJlc3Npb24K K0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBhdmcoYSksIG1heChhKSwgY291 bnQoKiksIChiLzIpOjpudW1lcmljIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYi8yIE9SREVSIEJZ IDQ7CitTRUxFQ1QgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopLCAoYi8yKTo6bnVtZXJpYyBGUk9N IHBhZ2dfdGFiIEdST1VQIEJZIGIvMiBPUkRFUiBCWSA0OworCistLSBQYXJ0aWFsIGFnZ3JlZ2F0 ZXMgcHVzaGRvd24gYmVoYXZlcyBzYW5lIHdpdGggbm9uLXNoaXBwZWQgZ3JvdXBpbmcgZWxlbWVu dHMKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBhdmcoYSksIChiLzIpOjpu dW1lcmljLCAndGVzdCcgdGVzdCBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIDMsIGIvMiBPUkRFUiBC WSAxLCAyIExJTUlUIDEwOworU0VMRUNUIGF2ZyhhKSwgKGIvMik6Om51bWVyaWMsICd0ZXN0JyB0 ZXN0IEZST00gcGFnZ190YWIgR1JPVVAgQlkgMywgYi8yIE9SREVSIEJZIDEsIDIgTElNSVQgMTA7 CisKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBhcmUgc2FmZSB0byBwdXNoIGRvd24gZm9yIGFsbCBi dWlsdC1pbiBhZ2dyZWdhdGVzCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QK KwkvKiBUaGUgY2FzZXMgdGhhdCBkb24ndCByZXF1aXJlIGltcG9ydCBvciBleHBvcnQgZnVuY3Rp b25zICovCisJYml0X2FuZChjX2JpdCksIGJpdF9hbmQoY18xb3IzaW50MiksIGJpdF9hbmQoY18x b3IzaW50NCksIGJpdF9hbmQoY18xb3IzaW50OCksCisJYml0X29yKGNfYml0KSwgYml0X29yKGNf MW9yM2ludDIpLCBiaXRfb3IoY18xb3IzaW50NCksIGJpdF9vcihjXzFvcjNpbnQ4KSwKKwliaXRf eG9yKGNfYml0KSwgYml0X3hvcihjXzFvcjNpbnQyKSwgYml0X3hvcihjXzFvcjNpbnQ0KSwgYml0 X3hvcihjXzFvcjNpbnQ4KSwKKwlib29sX2FuZChjX2Jvb2wpLAorCWJvb2xfb3IoY19ib29sKSwK KwlldmVyeShjX2Jvb2wpLAorCW1heChjX2ludDRhcnJheSksIG1heChjX2VudW0pLCBtYXgoY18x Yzo6Y2hhcigxKSksIG1heCgnMjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwgbWF4KCcwLjAuMC4wJzo6 aW5ldCArIGIpLCBtYXgoYjo6ZmxvYXQ0KSwgbWF4KGI6OmZsb2F0OCksIG1heChiOjppbnQyKSwg bWF4KGI6OmludDQpLCBtYXgoYjo6aW50OCksIG1heChjX2ludGVydmFsKSwgbWF4KGNfbW9uZXkp LCBtYXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19wZ19sc24pLCBtYXgoY190aWQp LCBtYXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHopLCBtYXgoY190aW1lc3RhbXAp LCBtYXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLAorCW1pbihjX2ludDRhcnJheSksIG1p bihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcigxKSksIG1pbignMjAwMC0wMS0wMSc6OmRhdGUgKyBi KSwgbWluKCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtaW4oYjo6ZmxvYXQ0KSwgbWluKGI6OmZsb2F0 OCksIG1pbihiOjppbnQyKSwgbWluKGI6OmludDQpLCBtaW4oYjo6aW50OCksIG1pbihjX2ludGVy dmFsKSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJpYyksIG1pbihiOjpvaWQpLCBtaW4oY19w Z19sc24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1pbihjX3RpbWUpLCBtaW4oY190aW1ldHop LCBtaW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3RhbXB0eiksIG1pbihjX3hpZDgpLAorCS8q IFRoZSBjYXNlcyB0aGF0IHJlcXVpcmUgb25seSBpbXBvcnQgZnVuY3Rpb25zICovCisJYXZnKGI6 OmludDQpLAorCS8qIFRoZSBjYXNlcyB0aGF0IGRvbid0IHJlcXVpcmUgaW1wb3J0IG9yIGV4cG9y dCBmdW5jdGlvbnMgKi8KKwlhdmcoYjo6aW50OCkKKyAgRlJPTSBwYWdnX3RhYiBXSEVSRSBjX3Nl cmlhbCBiZXR3ZWVuIDEgYW5kIDMwOworCitTRUxFQ1QKKwkvKiBUaGUgY2FzZXMgdGhhdCBkb24n dCByZXF1aXJlIGltcG9ydCBvciBleHBvcnQgZnVuY3Rpb25zICovCisJYml0X2FuZChjX2JpdCks IGJpdF9hbmQoY18xb3IzaW50MiksIGJpdF9hbmQoY18xb3IzaW50NCksIGJpdF9hbmQoY18xb3Iz aW50OCksCisJYml0X29yKGNfYml0KSwgYml0X29yKGNfMW9yM2ludDIpLCBiaXRfb3IoY18xb3Iz aW50NCksIGJpdF9vcihjXzFvcjNpbnQ4KSwKKwliaXRfeG9yKGNfYml0KSwgYml0X3hvcihjXzFv cjNpbnQyKSwgYml0X3hvcihjXzFvcjNpbnQ0KSwgYml0X3hvcihjXzFvcjNpbnQ4KSwKKwlib29s X2FuZChjX2Jvb2wpLAorCWJvb2xfb3IoY19ib29sKSwKKwlldmVyeShjX2Jvb2wpLAorCW1heChj X2ludDRhcnJheSksIG1heChjX2VudW0pLCBtYXgoY18xYzo6Y2hhcigxKSksIG1heCgnMjAwMC0w MS0wMSc6OmRhdGUgKyBiKSwgbWF4KCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtYXgoYjo6ZmxvYXQ0 KSwgbWF4KGI6OmZsb2F0OCksIG1heChiOjppbnQyKSwgbWF4KGI6OmludDQpLCBtYXgoYjo6aW50 OCksIG1heChjX2ludGVydmFsKSwgbWF4KGNfbW9uZXkpLCBtYXgoYjo6bnVtZXJpYyksIG1heChi OjpvaWQpLCBtYXgoY19wZ19sc24pLCBtYXgoY190aWQpLCBtYXgoY18xYyksIG1heChjX3RpbWUp LCBtYXgoY190aW1ldHopLCBtYXgoY190aW1lc3RhbXApLCBtYXgoY190aW1lc3RhbXB0eiksIG1h eChjX3hpZDgpLAorCW1pbihjX2ludDRhcnJheSksIG1pbihjX2VudW0pLCBtaW4oY18xYzo6Y2hh cigxKSksIG1pbignMjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwgbWluKCcwLjAuMC4wJzo6aW5ldCAr IGIpLCBtaW4oYjo6ZmxvYXQ0KSwgbWluKGI6OmZsb2F0OCksIG1pbihiOjppbnQyKSwgbWluKGI6 OmludDQpLCBtaW4oYjo6aW50OCksIG1pbihjX2ludGVydmFsKSwgbWluKGNfbW9uZXkpLCBtaW4o Yjo6bnVtZXJpYyksIG1pbihiOjpvaWQpLCBtaW4oY19wZ19sc24pLCBtaW4oY190aWQpLCBtaW4o Y18xYyksIG1pbihjX3RpbWUpLCBtaW4oY190aW1ldHopLCBtaW4oY190aW1lc3RhbXApLCBtaW4o Y190aW1lc3RhbXB0eiksIG1pbihjX3hpZDgpLAorCS8qIFRoZSBjYXNlcyB0aGF0IHJlcXVpcmUg b25seSBpbXBvcnQgZnVuY3Rpb25zICovCisJYXZnKGI6OmludDQpLAorCS8qIFRoZSBjYXNlcyB0 aGF0IGRvbid0IHJlcXVpcmUgaW1wb3J0IG9yIGV4cG9ydCBmdW5jdGlvbnMgKi8KKwlhdmcoYjo6 aW50OCkKKyAgRlJPTSBwYWdnX3RhYiBXSEVSRSBjX3NlcmlhbCBiZXR3ZWVuIDEgYW5kIDMwOwor CistLSBUZXN0cyBmb3IgcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydAorQUxURVIgU0VSVkVSIGxv b3BiYWNrIE9QVElPTlMgKEFERCBwYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0ICdmYWxzZScpOwor RVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBj b3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsKK1NFTEVDVCBiLCBh dmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZ IDE7CisKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChTRVQgcGFydGlhbF9hZ2dyZWdh dGVfc3VwcG9ydCAndHJ1ZScpOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNU IGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JE RVIgQlkgMTsKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3Rh YiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CisKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05T IChTRVQgZmR3X3R1cGxlX2Nvc3QgJzEuMCcpOworU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2pv aW49b247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYXZnKHQxLmIpLCBh dmcodDEuYjo6aW50OCkgRlJPTSBwYWdnX3RhYiB0MSBKT0lOIHBhZ2dfdGFiIHQyIFVTSU5HKGEp OworU0VMRUNUIGF2Zyh0MS5iKSwgYXZnKHQxLmI6OmludDgpIEZST00gcGFnZ190YWIgdDEgSk9J TiBwYWdnX3RhYiB0MiBVU0lORyhhKTsKK1JFU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2pvaW47 CitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoU0VUIGZkd190dXBsZV9jb3N0ICcwLjEn KTsKKworQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKERST1AgcGFydGlhbF9hZ2dyZWdh dGVfc3VwcG9ydCk7CisKKy0tIEl0IGlzIHVuc2FmZSB0byBwdXNoIGRvd24gcGFydGlhbCBhZ2dy ZWdhdGVzIHdoaWNoIGNvbnRhaW4gRElTVElOQ1QgY2xhdXNlcworRVhQTEFJTiAoVkVSQk9TRSwg Q09TVFMgT0ZGKQorU0VMRUNUIG1heChhKSwgY291bnQoZGlzdGluY3QgYikgRlJPTSBwYWdnX3Rh YjsKK1NFTEVDVCBtYXgoYSksIGNvdW50KGRpc3RpbmN0IGIpIEZST00gcGFnZ190YWI7CisKKy0t IEl0IGlzIHVuc2FmZSB0byBwdXNoIGRvd24gcGFydGlhbCBhZ2dyZWdhdGVzIHdoaWNoIGNvbnRh aW4gT1JERVIgQlkgY2xhdXNlcworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1Qg YXJyYXlfYWdnKGIgb3JkZXIgYnkgYikgRlJPTSBwYWdnX3RhYiBXSEVSRSBjX3NlcmlhbCBiZXR3 ZWVuIDEgYW5kIDMwOworU0VMRUNUIGFycmF5X2FnZyhiIG9yZGVyIGJ5IGIpIEZST00gcGFnZ190 YWIgV0hFUkUgY19zZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKKworQUxURVIgU0VSVkVSIGxvb3Bi YWNrIE9QVElPTlMgKERST1AgZmR3X3R1cGxlX2Nvc3QpOworUkVTRVQgVGltZVpvbmU7CisKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tIGFjY2VzcyByaWdodHMgYW5kIHN1cGVydXNlcgogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUFnZy5jCmluZGV4IDUzZWFkNzdlY2UuLjZlZDRjNTA4MjQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlQWdnLmMKQEAgLTEwNzYsOSArMTA3NiwxNCBAQCBmaW5hbGl6ZV9hZ2dyZWdh dGUoQWdnU3RhdGUgKmFnZ3N0YXRlLAogCX0KIAogCS8qCi0JICogQXBwbHkgdGhlIGFnZydzIGZp bmFsZm4gaWYgb25lIGlzIHByb3ZpZGVkLCBlbHNlIHJldHVybiB0cmFuc1ZhbHVlLgorCSAqIElm IHRoZSBhZ2cncyBmaW5hbGZuIGlzIHByb3ZpZGVkIGFuZCBQQVJUSUFMX0FHR1JFR0FURSBrZXl3 b3JkIGlzCisJICogbm90IHNwZWNpZmllZCwgYXBwbHkgdGhlIGFnZydzIGZpbmFsZm4uCisJICog SWYgUEFSVElBTF9BR0dSRUdBVEUga2V5d29yZCBpcyBzcGVjaWZpZWQgYW5kIHRoZSB0cmFuc1Zh bHVlIHR5cGUKKwkgKiBpcyBpbnRlcm5hbCwgYXBwbHkgdGhlIGFnZydzIHNlcmlhbGZuLiBJbiB0 aGlzIGNhc2UgdGhlIGFnZydzCisJICogc2VyaWFsZm4gbXVzdCBub3QgYmUgaW52YWxpZC4gT3Ro ZXJ3aXNlIHJldHVybiB0cmFuc1ZhbHVlLgogCSAqLwotCWlmIChPaWRJc1ZhbGlkKHBlcmFnZy0+ ZmluYWxmbl9vaWQpKQorCWlmIChPaWRJc1ZhbGlkKHBlcmFnZy0+ZmluYWxmbl9vaWQpICYmCisJ CShwZXJhZ2ctPmFnZ3JlZi0+YWdnX3BhcnRpYWwgPT0gZmFsc2UpKQogCXsKIAkJaW50CQkJbnVt RmluYWxBcmdzID0gcGVyYWdnLT5udW1GaW5hbEFyZ3M7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL25vZGVzL21ha2VmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKaW5k ZXggNjFhYzE3MmE4NS4uNjdmYmJlMjkxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMv bWFrZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKQEAgLTYxMiw2 ICs2MTIsNyBAQCBtYWtlRnVuY0NhbGwoTGlzdCAqbmFtZSwgTGlzdCAqYXJncywgQ29lcmNpb25G b3JtIGZ1bmNmb3JtYXQsIGludCBsb2NhdGlvbikKIAluLT5hZ2dfd2l0aGluX2dyb3VwID0gZmFs c2U7CiAJbi0+YWdnX3N0YXIgPSBmYWxzZTsKIAluLT5hZ2dfZGlzdGluY3QgPSBmYWxzZTsKKwlu LT5hZ2dfcGFydGlhbCA9IGZhbHNlOwogCW4tPmZ1bmNfdmFyaWFkaWMgPSBmYWxzZTsKIAluLT5m dW5jZm9ybWF0ID0gZnVuY2Zvcm1hdDsKIAluLT5sb2NhdGlvbiA9IGxvY2F0aW9uOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IDQ3MTFmOTEyMzkuLmE4OWNkNmE5MDIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTIwNSw3ICsyMDUsNyBAQCBzdGF0 aWMgUGF0aFRhcmdldCAqbWFrZV9ncm91cF9pbnB1dF90YXJnZXQoUGxhbm5lckluZm8gKnJvb3Qs CiAJCQkJCQkJCQkJICAgUGF0aFRhcmdldCAqZmluYWxfdGFyZ2V0KTsKIHN0YXRpYyBQYXRoVGFy Z2V0ICptYWtlX3BhcnRpYWxfZ3JvdXBpbmdfdGFyZ2V0KFBsYW5uZXJJbmZvICpyb290LAogCQkJ CQkJCQkJCQkJUGF0aFRhcmdldCAqZ3JvdXBpbmdfdGFyZ2V0LAotCQkJCQkJCQkJCQkJTm9kZSAq aGF2aW5nUXVhbCk7CisJCQkJCQkJCQkJCQlHcm91cFBhdGhFeHRyYURhdGEgKmV4dHJhKTsKIHN0 YXRpYyBMaXN0ICpwb3N0cHJvY2Vzc19zZXRvcF90bGlzdChMaXN0ICpuZXdfdGxpc3QsIExpc3Qg Km9yaWdfdGxpc3QpOwogc3RhdGljIHZvaWQgb3B0aW1pemVfd2luZG93X2NsYXVzZXMoUGxhbm5l ckluZm8gKnJvb3QsCiAJCQkJCQkJCQlXaW5kb3dGdW5jTGlzdHMgKndmbGlzdHMpOwpAQCAtNTUx Miw2ICs1NTEyLDk5IEBAIG1ha2VfZ3JvdXBfaW5wdXRfdGFyZ2V0KFBsYW5uZXJJbmZvICpyb290 LCBQYXRoVGFyZ2V0ICpmaW5hbF90YXJnZXQpCiAJcmV0dXJuIHNldF9wYXRodGFyZ2V0X2Nvc3Rf d2lkdGgocm9vdCwgaW5wdXRfdGFyZ2V0KTsKIH0KIAorLyoKKyAqIHNldEdyb3VwQ2xhdXNlUGFy dGlhbAorICoJICBHZW5lcmF0ZSBhIGdyb3VwQ2xhdXNlIGFuZCBhIHBhdGh0YXJnZXQgZm9yIHBh cnRpYWwgYWdncmVnYXRlCisgKgkgIHB1c2hkb3duIGJ5IEZEVyBhbmQgc2V0IHRoZW0gdG8gR3Jv dXBQYXRoRXh0cmFEYXRhLgorICovCitzdGF0aWMgdm9pZAorc2V0R3JvdXBDbGF1c2VQYXJ0aWFs KFBhdGhUYXJnZXQgKnBhcnRpYWxfdGFyZ2V0LCBMaXN0ICpub25fZ3JvdXBfZXhwcnMsCisJCQkJ CSAgTGlzdCAqZ3JvdXBDbGF1c2UsIEdyb3VwUGF0aEV4dHJhRGF0YSAqZXh0cmEpCit7CisJaW50 CQkJZXhwcm5vLAorCQkJCXJlZm5vOworCUxpc3RDZWxsICAgKmxjOworCUluZGV4CQltYXhSZWYg PSAwOworCUxpc3QJICAgKmV4cHJzX3Byb2Nlc3NlZCA9IE5JTDsKKwlpbnQJCQlleHByc19udW0g PSAwOworCisJZm9yZWFjaChsYywgZ3JvdXBDbGF1c2UpCisJeworCQlTb3J0R3JvdXBDbGF1c2Ug KnNnYyA9IChTb3J0R3JvdXBDbGF1c2UgKikgbGZpcnN0KGxjKTsKKworCQlpZiAoc2djLT50bGVT b3J0R3JvdXBSZWYgPiBtYXhSZWYpCisJCQltYXhSZWYgPSBzZ2MtPnRsZVNvcnRHcm91cFJlZjsK Kwl9CisJbWF4UmVmKys7CisKKwlleHRyYS0+Z3JvdXBDbGF1c2VQYXJ0aWFsID0gbGlzdF9jb3B5 X2RlZXAoZ3JvdXBDbGF1c2UpOworCWV4dHJhLT5wYXJ0aWFsX3RhcmdldCA9IGNvcHlfcGF0aHRh cmdldChwYXJ0aWFsX3RhcmdldCk7CisKKwlpZiAocGFydGlhbF90YXJnZXQtPmV4cHJzKQorCQll eHByc19udW0gPSBwYXJ0aWFsX3RhcmdldC0+ZXhwcnMtPmxlbmd0aDsKKworCWZvcmVhY2gobGMs IG5vbl9ncm91cF9leHBycykKKwl7CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3Qo bGMpOworCisJCXJlZm5vID0gLTE7CisJCWlmIChsaXN0X21lbWJlcihleHByc19wcm9jZXNzZWQs IGV4cHIpIHx8CisJCQkoIUlzQShleHByLCBWYXIpICYmICFJc0EoZXhwciwgUGxhY2VIb2xkZXJW YXIpKSkKKwkJCWNvbnRpbnVlOworCQlleHByc19wcm9jZXNzZWQgPSBsYXBwZW5kKGV4cHJzX3By b2Nlc3NlZCwgZXhwcik7CisJCWZvciAoZXhwcm5vID0gMDsgZXhwcm5vIDwgZXhwcnNfbnVtOyBl eHBybm8rKykKKwkJeworCQkJRXhwcgkgICAqdGFyZ2V0X2V4cHIgPSAoRXhwciAqKSBsaXN0X250 aChwYXJ0aWFsX3RhcmdldC0+ZXhwcnMsIGV4cHJubyk7CisKKwkJCWlmIChlcXVhbCh0YXJnZXRf ZXhwciwgZXhwcikpCisJCQl7CisJCQkJcmVmbm8gPSBleHBybm87CisJCQkJYnJlYWs7CisJCQl9 CisJCX0KKwkJaWYgKHJlZm5vIDwgMCkKKwkJeworCQkJU29ydEdyb3VwQ2xhdXNlICpncnBjbCA9 IG1ha2VOb2RlKFNvcnRHcm91cENsYXVzZSk7CisKKwkJCWdycGNsLT50bGVTb3J0R3JvdXBSZWYg PSBtYXhSZWYrKzsKKwkJCWV4dHJhLT5ncm91cENsYXVzZVBhcnRpYWwgPSBsYXBwZW5kKGV4dHJh LT5ncm91cENsYXVzZVBhcnRpYWwsIGdycGNsKTsKKwkJCWFkZF9jb2x1bW5fdG9fcGF0aHRhcmdl dChleHRyYS0+cGFydGlhbF90YXJnZXQsIGV4cHIsIGdycGNsLT50bGVTb3J0R3JvdXBSZWYpOwor CQl9CisJfQorfQorCisvKgorICogYWRqdXN0QWdncmVmRm9yUGFydGlhbAorICogQWRqdXN0IEFn Z3JlZnMgdG8gcHV0IHRoZW0gaW4gcGFydGlhbCBtb2RlCisgKi8KK3N0YXRpYyB2b2lkCithZGp1 c3RBZ2dyZWZGb3JQYXJ0aWFsKExpc3QgKmV4cHJzKQoreworCUxpc3RDZWxsICAgKmxjOworCisJ Zm9yZWFjaChsYywgZXhwcnMpCisJeworCQlBZ2dyZWYJICAgKmFnZ3JlZiA9IChBZ2dyZWYgKikg bGZpcnN0KGxjKTsKKworCQlpZiAoSXNBKGFnZ3JlZiwgQWdncmVmKSkKKwkJeworCQkJQWdncmVm CSAgICpuZXdhZ2dyZWY7CisKKwkJCS8qCisJCQkgKiBXZSBzaG91bGRuJ3QgbmVlZCB0byBjb3B5 IHRoZSBzdWJzdHJ1Y3R1cmUgb2YgdGhlIEFnZ3JlZiBub2RlLAorCQkJICogYnV0IGZsYXQtY29w eSB0aGUgbm9kZSBpdHNlbGYgdG8gYXZvaWQgZGFtYWdpbmcgb3RoZXIgdHJlZXMuCisJCQkgKi8K KwkJCW5ld2FnZ3JlZiA9IG1ha2VOb2RlKEFnZ3JlZik7CisJCQltZW1jcHkobmV3YWdncmVmLCBh Z2dyZWYsIHNpemVvZihBZ2dyZWYpKTsKKworCQkJLyogRm9yIG5vdywgYXNzdW1lIHNlcmlhbGl6 YXRpb24gaXMgcmVxdWlyZWQgKi8KKwkJCW1hcmtfcGFydGlhbF9hZ2dyZWYobmV3YWdncmVmLCBB R0dTUExJVF9JTklUSUFMX1NFUklBTCk7CisKKwkJCWxmaXJzdChsYykgPSBuZXdhZ2dyZWY7CisJ CX0KKwl9Cit9CisKIC8qCiAgKiBtYWtlX3BhcnRpYWxfZ3JvdXBpbmdfdGFyZ2V0CiAgKgkgIEdl bmVyYXRlIGFwcHJvcHJpYXRlIFBhdGhUYXJnZXQgZm9yIG91dHB1dCBvZiBwYXJ0aWFsIGFnZ3Jl Z2F0ZQpAQCAtNTUyNywxMSArNTYyMCwxNSBAQCBtYWtlX2dyb3VwX2lucHV0X3RhcmdldChQbGFu bmVySW5mbyAqcm9vdCwgUGF0aFRhcmdldCAqZmluYWxfdGFyZ2V0KQogICoKICAqIGdyb3VwaW5n X3RhcmdldCBpcyB0aGUgdGxpc3QgdG8gYmUgZW1pdHRlZCBieSB0aGUgdG9wbW9zdCBhZ2dyZWdh dGlvbiBzdGVwLgogICogaGF2aW5nUXVhbCByZXByZXNlbnRzIHRoZSBIQVZJTkcgY2xhdXNlLgor ICoKKyAqIE1vZGlmaWVkIFBhdGhUYXJnZXQgY2Fubm90IGJlIHVzZWQgYnkgRkRXIGFzLWlzIHRv IGRlcGFyc2UgdGhpcyBzdGF0ZW1lbnQuCisgKiBTbywgYmVmb3JlIG1vZGlmeWluZyBQYXRoVGFy Z2V0LCBzZXRHcm91cENsYXVzZVBhcnRpYWwgZ2VuZXJhdGVzCisgKiBhbm90aGVyIFBhdGh0YXJn ZXQgYW5kIGFub3RoZXIgbGlzdCBvZiBTb3J0R3JvdXBDbGF1c2VzLgogICovCiBzdGF0aWMgUGF0 aFRhcmdldCAqCiBtYWtlX3BhcnRpYWxfZ3JvdXBpbmdfdGFyZ2V0KFBsYW5uZXJJbmZvICpyb290 LAogCQkJCQkJCSBQYXRoVGFyZ2V0ICpncm91cGluZ190YXJnZXQsCi0JCQkJCQkJIE5vZGUgKmhh dmluZ1F1YWwpCisJCQkJCQkJIEdyb3VwUGF0aEV4dHJhRGF0YSAqZXh0cmEpCiB7CiAJUGF0aFRh cmdldCAqcGFydGlhbF90YXJnZXQ7CiAJTGlzdAkgICAqbm9uX2dyb3VwX2NvbHM7CkBAIC01NTcz LDggKzU2NzAsOCBAQCBtYWtlX3BhcnRpYWxfZ3JvdXBpbmdfdGFyZ2V0KFBsYW5uZXJJbmZvICpy b290LAogCS8qCiAJICogSWYgdGhlcmUncyBhIEhBVklORyBjbGF1c2UsIHdlJ2xsIG5lZWQgdGhl IFZhcnMvQWdncmVmcyBpdCB1c2VzLCB0b28uCiAJICovCi0JaWYgKGhhdmluZ1F1YWwpCi0JCW5v bl9ncm91cF9jb2xzID0gbGFwcGVuZChub25fZ3JvdXBfY29scywgaGF2aW5nUXVhbCk7CisJaWYg KGV4dHJhLT5oYXZpbmdRdWFsKQorCQlub25fZ3JvdXBfY29scyA9IGxhcHBlbmQobm9uX2dyb3Vw X2NvbHMsIGV4dHJhLT5oYXZpbmdRdWFsKTsKIAogCS8qCiAJICogUHVsbCBvdXQgYWxsIHRoZSBW YXJzLCBQbGFjZUhvbGRlclZhcnMsIGFuZCBBZ2dyZWZzIG1lbnRpb25lZCBpbgpAQCAtNTU4Nywz NSArNTY4NCwxNyBAQCBtYWtlX3BhcnRpYWxfZ3JvdXBpbmdfdGFyZ2V0KFBsYW5uZXJJbmZvICpy b290LAogCQkJCQkJCQkJICBQVkNfSU5DTFVERV9BR0dSRUdBVEVTIHwKIAkJCQkJCQkJCSAgUFZD X1JFQ1VSU0VfV0lORE9XRlVOQ1MgfAogCQkJCQkJCQkJICBQVkNfSU5DTFVERV9QTEFDRUhPTERF UlMpOwotCisJc2V0R3JvdXBDbGF1c2VQYXJ0aWFsKHBhcnRpYWxfdGFyZ2V0LCBub25fZ3JvdXBf ZXhwcnMsIHJvb3QtPnByb2Nlc3NlZF9ncm91cENsYXVzZSwgZXh0cmEpOwogCWFkZF9uZXdfY29s dW1uc190b19wYXRodGFyZ2V0KHBhcnRpYWxfdGFyZ2V0LCBub25fZ3JvdXBfZXhwcnMpOworCWFk ZF9uZXdfY29sdW1uc190b19wYXRodGFyZ2V0KGV4dHJhLT5wYXJ0aWFsX3RhcmdldCwgbm9uX2dy b3VwX2V4cHJzKTsKIAogCS8qCiAJICogQWRqdXN0IEFnZ3JlZnMgdG8gcHV0IHRoZW0gaW4gcGFy dGlhbCBtb2RlLiAgQXQgdGhpcyBwb2ludCBhbGwgQWdncmVmcwogCSAqIGFyZSBhdCB0aGUgdG9w IGxldmVsIG9mIHRoZSB0YXJnZXQgbGlzdCwgc28gd2UgY2FuIGp1c3Qgc2NhbiB0aGUgbGlzdAog CSAqIHJhdGhlciB0aGFuIHJlY3Vyc2luZyB0aHJvdWdoIHRoZSBleHByZXNzaW9uIHRyZWVzLgog CSAqLwotCWZvcmVhY2gobGMsIHBhcnRpYWxfdGFyZ2V0LT5leHBycykKLQl7Ci0JCUFnZ3JlZgkg ICAqYWdncmVmID0gKEFnZ3JlZiAqKSBsZmlyc3QobGMpOwotCi0JCWlmIChJc0EoYWdncmVmLCBB Z2dyZWYpKQotCQl7Ci0JCQlBZ2dyZWYJICAgKm5ld2FnZ3JlZjsKLQotCQkJLyoKLQkJCSAqIFdl IHNob3VsZG4ndCBuZWVkIHRvIGNvcHkgdGhlIHN1YnN0cnVjdHVyZSBvZiB0aGUgQWdncmVmIG5v ZGUsCi0JCQkgKiBidXQgZmxhdC1jb3B5IHRoZSBub2RlIGl0c2VsZiB0byBhdm9pZCBkYW1hZ2lu ZyBvdGhlciB0cmVlcy4KLQkJCSAqLwotCQkJbmV3YWdncmVmID0gbWFrZU5vZGUoQWdncmVmKTsK LQkJCW1lbWNweShuZXdhZ2dyZWYsIGFnZ3JlZiwgc2l6ZW9mKEFnZ3JlZikpOwotCi0JCQkvKiBG b3Igbm93LCBhc3N1bWUgc2VyaWFsaXphdGlvbiBpcyByZXF1aXJlZCAqLwotCQkJbWFya19wYXJ0 aWFsX2FnZ3JlZihuZXdhZ2dyZWYsIEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMKTsKLQotCQkJbGZp cnN0KGxjKSA9IG5ld2FnZ3JlZjsKLQkJfQotCX0KKwlhZGp1c3RBZ2dyZWZGb3JQYXJ0aWFsKHBh cnRpYWxfdGFyZ2V0LT5leHBycyk7CisJYWRqdXN0QWdncmVmRm9yUGFydGlhbChleHRyYS0+cGFy dGlhbF90YXJnZXQtPmV4cHJzKTsKIAogCS8qIGNsZWFuIHVwIGNydWZ0ICovCiAJbGlzdF9mcmVl KG5vbl9ncm91cF9leHBycyk7CkBAIC03MjY5LDcgKzczNDgsNyBAQCBjcmVhdGVfcGFydGlhbF9n cm91cGluZ19wYXRocyhQbGFubmVySW5mbyAqcm9vdCwKIAkgKi8KIAlwYXJ0aWFsbHlfZ3JvdXBl ZF9yZWwtPnJlbHRhcmdldCA9CiAJCW1ha2VfcGFydGlhbF9ncm91cGluZ190YXJnZXQocm9vdCwg Z3JvdXBlZF9yZWwtPnJlbHRhcmdldCwKLQkJCQkJCQkJCSBleHRyYS0+aGF2aW5nUXVhbCk7CisJ CQkJCQkJCQkgZXh0cmEpOwogCiAJaWYgKCFleHRyYS0+cGFydGlhbF9jb3N0c19zZXQpCiAJewpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCmluZGV4IDdhZWQ4NDU4NGMuLjFmMGE3YjAz YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTI1NzIsNiArMjU3Miw3 IEBAIGNvbnZlcnRfY29tYmluaW5nX2FnZ3JlZnMoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkK IAkJcGFyZW50X2FnZyA9IGNvcHlPYmplY3QoY2hpbGRfYWdnKTsKIAkJY2hpbGRfYWdnLT5hcmdz ID0gb3JpZ19hZ2ctPmFyZ3M7CiAJCWNoaWxkX2FnZy0+YWdnZmlsdGVyID0gb3JpZ19hZ2ctPmFn Z2ZpbHRlcjsKKwkJY2hpbGRfYWdnLT5hZ2dfcGFydGlhbCA9IG9yaWdfYWdnLT5hZ2dfcGFydGlh bDsKIAogCQkvKgogCQkgKiBOb3csIHNldCB1cCBjaGlsZF9hZ2cgdG8gcmVwcmVzZW50IHRoZSBm aXJzdCBwaGFzZSBvZiBwYXJ0aWFsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cHJlcC9wcmVwYWdnLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwYWdnLmMKaW5k ZXggNDYwNmRmMzc5YS4uYWNlZDlmN2I1ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3ByZXAvcHJlcGFnZy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBh Z2cuYwpAQCAtNDExLDYgKzQxMSw3IEBAIGZpbmRfY29tcGF0aWJsZV9hZ2coUGxhbm5lckluZm8g KnJvb3QsIEFnZ3JlZiAqbmV3YWdnLAogCQkvKiBhbGwgb2YgdGhlIGZvbGxvd2luZyBtdXN0IGJl IHRoZSBzYW1lIG9yIGl0J3Mgbm8gbWF0Y2ggKi8KIAkJaWYgKG5ld2FnZy0+aW5wdXRjb2xsaWQg IT0gZXhpc3RpbmdSZWYtPmlucHV0Y29sbGlkIHx8CiAJCQluZXdhZ2ctPmFnZ3RyYW5zdHlwZSAh PSBleGlzdGluZ1JlZi0+YWdndHJhbnN0eXBlIHx8CisJCQluZXdhZ2ctPmFnZ19wYXJ0aWFsICE9 IGV4aXN0aW5nUmVmLT5hZ2dfcGFydGlhbCB8fAogCQkJbmV3YWdnLT5hZ2dzdGFyICE9IGV4aXN0 aW5nUmVmLT5hZ2dzdGFyIHx8CiAJCQluZXdhZ2ctPmFnZ3ZhcmlhZGljICE9IGV4aXN0aW5nUmVm LT5hZ2d2YXJpYWRpYyB8fAogCQkJbmV3YWdnLT5hZ2draW5kICE9IGV4aXN0aW5nUmVmLT5hZ2dr aW5kIHx8CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQppbmRleCA0ZDU4Mjk1MGI3Li4yZDBiNTU4M2FkIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKQEAgLTc2Myw3ICs3NjMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCU9SREVSIE9S RElOQUxJVFkgT1RIRVJTIE9VVF9QIE9VVEVSX1AKIAlPVkVSIE9WRVJMQVBTIE9WRVJMQVkgT1ZF UlJJRElORyBPV05FRCBPV05FUgogCi0JUEFSQUxMRUwgUEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFM IFBBUlRJVElPTiBQQVJUSVRJT05TIFBBU1NJTkcgUEFTU1dPUkQgUEFUSAorCVBBUkFMTEVMIFBB UkFNRVRFUiBQQVJTRVIgUEFSVElBTCBQQVJUSUFMX0FHR1JFR0FURSBQQVJUSVRJT04gUEFSVElU SU9OUyBQQVNTSU5HIFBBU1NXT1JEIFBBVEgKIAlQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZCiAJ UE9TSVRJT04gUFJFQ0VESU5HIFBSRUNJU0lPTiBQUkVTRVJWRSBQUkVQQVJFIFBSRVBBUkVEIFBS SU1BUlkKIAlQUklPUiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJFIFBST0NFRFVSRVMg UFJPR1JBTSBQVUJMSUNBVElPTgpAQCAtMTU1ODUsNiArMTU1ODUsMjYgQEAgZnVuY19hcHBsaWNh dGlvbjogZnVuY19uYW1lICcoJyAnKScKIAkJCQkJbi0+YWdnX2Rpc3RpbmN0ID0gdHJ1ZTsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgZnVuY19uYW1lICcoJyBQQVJUSUFMX0FH R1JFR0FURSBmdW5jX2FyZ19saXN0IG9wdF9zb3J0X2NsYXVzZSAnKScKKwkJCQl7CisJCQkJCUZ1 bmNDYWxsICAgKm4gPSBtYWtlRnVuY0NhbGwoJDEsICQ0LAorCQkJCQkJCQkJCQkJIENPRVJDRV9F WFBMSUNJVF9DQUxMLAorCQkJCQkJCQkJCQkJIEAxKTsKKworCQkJCQluLT5hZ2dfb3JkZXIgPSAk NTsKKwkJCQkJbi0+YWdnX3BhcnRpYWwgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJ CQkJfQorCQkJfCBmdW5jX25hbWUgJygnIFBBUlRJQUxfQUdHUkVHQVRFICcqJyAnKScKKwkJCQl7 CisJCQkJCUZ1bmNDYWxsICAgKm4gPSBtYWtlRnVuY0NhbGwoJDEsIE5JTCwKKwkJCQkJCQkJCQkJ CSBDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCQkJCQkJCQkJCSBAMSk7CisKKwkJCQkJbi0+YWdn X3N0YXIgPSB0cnVlOworCQkJCQluLT5hZ2dfcGFydGlhbCA9IHRydWU7CisJCQkJCSQkID0gKE5v ZGUgKikgbjsKKwkJCQl9CiAJCQl8IGZ1bmNfbmFtZSAnKCcgJyonICcpJwogCQkJCXsKIAkJCQkJ LyoKQEAgLTE1NjQwLDYgKzE1NjYwLDExIEBAIGZ1bmNfZXhwcjogZnVuY19hcHBsaWNhdGlvbiB3 aXRoaW5fZ3JvdXBfY2xhdXNlIGZpbHRlcl9jbGF1c2Ugb3Zlcl9jbGF1c2UKIAkJCQkJCQkJCShl cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkJCQkJCSBlcnJtc2coImNhbm5vdCB1 c2UgRElTVElOQ1Qgd2l0aCBXSVRISU4gR1JPVVAiKSwKIAkJCQkJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24oQDIpKSk7CisJCQkJCQlpZiAobi0+YWdnX3BhcnRpYWwpCisJCQkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJ CSBlcnJtc2coImNhbm5vdCB1c2UgUEFSVElBTF9BR0dSRUdBVEUgd2l0aCBXSVRISU4gR1JPVVAi KSwKKwkJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oQDIpKSk7CiAJCQkJCQlpZiAobi0+ZnVu Y192YXJpYWRpYykKIAkJCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLApAQCAtMTgwNjksNiArMTgwOTQsNyBAQCByZXNlcnZlZF9rZXl3 b3JkOgogCQkJfCBPTkxZCiAJCQl8IE9SCiAJCQl8IE9SREVSCisJCQl8IFBBUlRJQUxfQUdHUkVH QVRFCiAJCQl8IFBMQUNJTkcKIAkJCXwgUFJJTUFSWQogCQkJfCBSRUZFUkVOQ0VTCkBAIC0xODM4 Niw2ICsxODQxMiw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUEFSQU1FVEVSCiAJCQl8 IFBBUlNFUgogCQkJfCBQQVJUSUFMCisJCQl8IFBBUlRJQUxfQUdHUkVHQVRFCiAJCQl8IFBBUlRJ VElPTgogCQkJfCBQQVJUSVRJT05TCiAJCQl8IFBBU1NJTkcKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpp bmRleCBiZWU3ZDgzNDZhLi44NDM5ZDBiY2U2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC0x Niw2ICsxNiw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKICNpbmNsdWRlICJjb21tb24vaW50LmgiCkBAIC0xMDEsOCArMTAyLDggQEAgc3Rh dGljIE5vZGUgKm1ha2VfYWdnX2FyZyhPaWQgYXJndHlwZSwgT2lkIGFyZ2NvbGxhdGlvbik7CiAg KiBwc3RhdGUgbGV2ZWwuCiAgKi8KIHZvaWQKLXRyYW5zZm9ybUFnZ3JlZ2F0ZUNhbGwoUGFyc2VT dGF0ZSAqcHN0YXRlLCBBZ2dyZWYgKmFnZywKLQkJCQkJICAgTGlzdCAqYXJncywgTGlzdCAqYWdn b3JkZXIsIGJvb2wgYWdnX2Rpc3RpbmN0KQordHJhbnNmb3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0 YXRlICpwc3RhdGUsIEFnZ3JlZiAqYWdnLCBMaXN0ICphcmdzLAorCQkJCQkgICBMaXN0ICphZ2dv cmRlciwgYm9vbCBhZ2dfZGlzdGluY3QsIGJvb2wgYWdnX3BhcnRpYWwpCiB7CiAJTGlzdAkgICAq YXJndHlwZXMgPSBOSUw7CiAJTGlzdAkgICAqdGxpc3QgPSBOSUw7CkBAIC0xNDcsOCArMTQ4LDgg QEAgdHJhbnNmb3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIEFnZ3JlZiAqYWdn LAogCQkJCQkJCQkJCSB0b3JkZXIsIHRsaXN0LCBzb3J0YnkpOwogCQl9CiAKLQkJLyogTmV2ZXIg YW55IERJU1RJTkNUIGluIGFuIG9yZGVyZWQtc2V0IGFnZyAqLwotCQlBc3NlcnQoIWFnZ19kaXN0 aW5jdCk7CisJCS8qIE5ldmVyIGFueSBESVNUSU5DVCBhbmQgUEFSVElBTF9BR0cgaW4gYW4gb3Jk ZXJlZC1zZXQgYWdnICovCisJCUFzc2VydCghYWdnX2Rpc3RpbmN0IHx8ICFhZ2dfcGFydGlhbCk7 CiAJfQogCWVsc2UKIAl7CkBAIC0yMjIsNiArMjIzLDIxIEBAIHRyYW5zZm9ybUFnZ3JlZ2F0ZUNh bGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBZ2dyZWYgKmFnZywKIAlhZ2ctPmFyZ3MgPSB0bGlzdDsK IAlhZ2ctPmFnZ29yZGVyID0gdG9yZGVyOwogCWFnZy0+YWdnZGlzdGluY3QgPSB0ZGlzdGluY3Q7 CisJYWdnLT5hZ2dfcGFydGlhbCA9IGFnZ19wYXJ0aWFsOworCWlmKGFnZy0+YWdnX3BhcnRpYWwp eworCQlIZWFwVHVwbGUJYWdndHVwOworCQlGb3JtX3BnX2FnZ3JlZ2F0ZSBhZ2dmb3JtOworCisJ CWFnZ3R1cCA9IFNlYXJjaFN5c0NhY2hlMShBR0dGTk9JRCwgT2JqZWN0SWRHZXREYXR1bShhZ2ct PmFnZ2Zub2lkKSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZChhZ2d0dXApKQorCQkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGFnZ3JlZ2F0ZSAldSIsIGFnZy0+YWdnZm5v aWQpOworCQlhZ2dmb3JtID0gKEZvcm1fcGdfYWdncmVnYXRlKSBHRVRTVFJVQ1QoYWdndHVwKTsK KwkJaWYgKCFhZ2dmb3JtLT5hZ2dwYXJ0aWFscHVzaGRvd25zYWZlKQorCQkJZWxvZyhFUlJPUiwg InBhcnRpYWwgYWdncmVnYXRlIGlzIHVuc2FmZSBmb3IgYWdncmVnYXRlICV1IiwKKwkJCQlhZ2ct PmFnZ2Zub2lkKTsKKwkJUmVsZWFzZVN5c0NhY2hlKGFnZ3R1cCk7CisJCWFnZy0+YWdndHlwZSA9 IGFnZ2Zvcm0tPmFnZ3RyYW5zdHlwZTsKKwl9CiAKIAkvKgogCSAqIE5vdyBidWlsZCB0aGUgYWdn YXJndHlwZXMgbGlzdCB3aXRoIHRoZSB0eXBlIE9JRHMgb2YgdGhlIGRpcmVjdCBhbmQKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCA4MTE4MDM2NDk1Li4yN2RhYjNiYTQyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2NsYXVzZS5jCkBAIC01NDEsNiArNTQxLDcgQEAgdHJhbnNmb3JtUmFuZ2VG dW5jdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlRnVuY3Rpb24gKnIpCiAJCQkJZmMtPm92 ZXIgPT0gTlVMTCAmJgogCQkJCSFmYy0+YWdnX3N0YXIgJiYKIAkJCQkhZmMtPmFnZ19kaXN0aW5j dCAmJgorCQkJCSFmYy0+YWdnX3BhcnRpYWwgJiYKIAkJCQkhZmMtPmZ1bmNfdmFyaWFkaWMgJiYK IAkJCQljb2xkZWZsaXN0ID09IE5JTCkKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4 IDAwY2Q3MzU4ZWIuLmI0ZWMyMjEwYzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMzg2 OSw3ICszODY5LDggQEAgdHJhbnNmb3JtSnNvbkFnZ0NvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBz dGF0ZSwgSnNvbkFnZ0NvbnN0cnVjdG9yICphZ2dfY3RvciwKIAkJYWdncmVmLT5hZ2d0cmFuc25v ID0gLTE7CiAJCWFnZ3JlZi0+bG9jYXRpb24gPSBhZ2dfY3Rvci0+bG9jYXRpb247CiAKLQkJdHJh bnNmb3JtQWdncmVnYXRlQ2FsbChwc3RhdGUsIGFnZ3JlZiwgYXJncywgYWdnX2N0b3ItPmFnZ19v cmRlciwgZmFsc2UpOworCQl0cmFuc2Zvcm1BZ2dyZWdhdGVDYWxsKHBzdGF0ZSwgYWdncmVmLCBh cmdzLCBhZ2dfY3Rvci0+YWdnX29yZGVyLCBmYWxzZSwKKwkJCQkJCQkgICBmYWxzZSk7CiAKIAkJ bm9kZSA9IChOb2RlICopIGFnZ3JlZjsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA5 YjIzMzQ0YTNiLi42NWNjN2Y5NWU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTk3LDYg Kzk3LDcgQEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpmdW5j bmFtZSwgTGlzdCAqZmFyZ3MsCiAJYm9vbAkJYWdnX3dpdGhpbl9ncm91cCA9IChmbiA/IGZuLT5h Z2dfd2l0aGluX2dyb3VwIDogZmFsc2UpOwogCWJvb2wJCWFnZ19zdGFyID0gKGZuID8gZm4tPmFn Z19zdGFyIDogZmFsc2UpOwogCWJvb2wJCWFnZ19kaXN0aW5jdCA9IChmbiA/IGZuLT5hZ2dfZGlz dGluY3QgOiBmYWxzZSk7CisJYm9vbAkJYWdnX3BhcnRpYWwgPSAoZm4gPyBmbi0+YWdnX3BhcnRp YWwgOiBmYWxzZSk7CiAJYm9vbAkJZnVuY192YXJpYWRpYyA9IChmbiA/IGZuLT5mdW5jX3Zhcmlh ZGljIDogZmFsc2UpOwogCUNvZXJjaW9uRm9ybSBmdW5jZm9ybWF0ID0gKGZuID8gZm4tPmZ1bmNm b3JtYXQgOiBDT0VSQ0VfRVhQTElDSVRfQ0FMTCk7CiAJYm9vbAkJY291bGRfYmVfcHJvamVjdGlv bjsKQEAgLTIyMiw3ICsyMjMsOCBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3Rh dGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkgKi8KIAljb3VsZF9iZV9wcm9qZWN0 aW9uID0gKG5hcmdzID09IDEgJiYgIXByb2NfY2FsbCAmJgogCQkJCQkJICAgYWdnX29yZGVyID09 IE5JTCAmJiBhZ2dfZmlsdGVyID09IE5VTEwgJiYKLQkJCQkJCSAgICFhZ2dfc3RhciAmJiAhYWdn X2Rpc3RpbmN0ICYmIG92ZXIgPT0gTlVMTCAmJgorCQkJCQkJICAgIWFnZ19zdGFyICYmICFhZ2df ZGlzdGluY3QgJiYKKwkJCQkJCSAgICFhZ2dfcGFydGlhbCAmJiBvdmVyID09IE5VTEwgJiYKIAkJ CQkJCSAgICFmdW5jX3ZhcmlhZGljICYmIGFyZ25hbWVzID09IE5JTCAmJgogCQkJCQkJICAgbGlz dF9sZW5ndGgoZnVuY25hbWUpID09IDEgJiYKIAkJCQkJCSAgIChhY3R1YWxfYXJnX3R5cGVzWzBd ID09IFJFQ09SRE9JRCB8fApAQCAtMzIyLDYgKzMyNCwxMiBAQCBQYXJzZUZ1bmNPckNvbHVtbihQ YXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkJCQkJIGVy cm1zZygiRElTVElOQ1Qgc3BlY2lmaWVkLCBidXQgJXMgaXMgbm90IGFuIGFnZ3JlZ2F0ZSBmdW5j dGlvbiIsCiAJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhmdW5jbmFtZSkpLAogCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJCWlmIChhZ2dfcGFydGlhbCkKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUp LAorCQkJCQkgZXJybXNnKCJQQVJUSUFMX0FHR1JFR0FURSBzcGVjaWZpZWQsIGJ1dCAlcyBpcyBu b3QgYW4gYWdncmVnYXRlIGZ1bmN0aW9uIiwKKwkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGZ1bmNu YW1lKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKIAkJ aWYgKGFnZ193aXRoaW5fZ3JvdXApCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKQEAgLTM5Miw2ICs0MDAsOCBAQCBQYXJzZUZ1bmNP ckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywK IAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKIAkJCS8qIGdy YW0ueSByZWplY3RzIERJU1RJTkNUICsgV0lUSElOIEdST1VQICovCiAJCQlBc3NlcnQoIWFnZ19k aXN0aW5jdCk7CisJCQkvKiBncmFtLnkgcmVqZWN0cyBQQVJUSUFMX0FHR1JFR0FURSAqLworCQkJ QXNzZXJ0KCFhZ2dfcGFydGlhbCk7CiAJCQkvKiBncmFtLnkgcmVqZWN0cyBWQVJJQURJQyArIFdJ VEhJTiBHUk9VUCAqLwogCQkJQXNzZXJ0KCFmdW5jX3ZhcmlhZGljKTsKIApAQCAtODE0LDcgKzgy NCw4IEBAIFBhcnNlRnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25h bWUsIExpc3QgKmZhcmdzLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRp b24pKSk7CiAKIAkJLyogcGFyc2VfYWdnLmMgZG9lcyBhZGRpdGlvbmFsIGFnZ3JlZ2F0ZS1zcGVj aWZpYyBwcm9jZXNzaW5nICovCi0JCXRyYW5zZm9ybUFnZ3JlZ2F0ZUNhbGwocHN0YXRlLCBhZ2dy ZWYsIGZhcmdzLCBhZ2dfb3JkZXIsIGFnZ19kaXN0aW5jdCk7CisJCXRyYW5zZm9ybUFnZ3JlZ2F0 ZUNhbGwocHN0YXRlLCBhZ2dyZWYsIGZhcmdzLCBhZ2dfb3JkZXIsIGFnZ19kaXN0aW5jdCwKKwkJ CQkJCQkgICBhZ2dfcGFydGlhbCk7CiAKIAkJcmV0dmFsID0gKE5vZGUgKikgYWdncmVmOwogCX0K QEAgLTg0Niw2ICs4NTcsMTUgQEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRl LCBMaXN0ICpmdW5jbmFtZSwgTGlzdCAqZmFyZ3MsCiAJCQkJCSBlcnJtc2coIkRJU1RJTkNUIGlz IG5vdCBpbXBsZW1lbnRlZCBmb3Igd2luZG93IGZ1bmN0aW9ucyIpLAogCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAKKwkJLyoKKwkJICogcGFydGlhbCBhZ2dy ZWdhdGVzIG5vdCBhbGxvd2VkIGluIHdpbmRvd3MgeWV0CisJCSAqLworCQlpZiAoYWdnX3BhcnRp YWwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coIlBBUlRJQUxfQUdHUkVHQVRFIGlzIG5vdCBpbXBs ZW1lbnRlZCBmb3Igd2luZG93IGZ1bmN0aW9ucyIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgbG9jYXRpb24pKSk7CisKIAkJLyoKIAkJICogUmVqZWN0IGF0dGVtcHQgdG8gY2Fs bCBhIHBhcmFtZXRlcmxlc3MgYWdncmVnYXRlIHdpdGhvdXQgKCopCiAJCSAqIHN5bnRheC4gIFRo aXMgaXMgbWVyZSBwZWRhbnRyeSBidXQgc29tZSBmb2xrcyBpbnNpc3RlZCAuLi4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvbnVtZXJpYy5jCmluZGV4IDU1MTBhMjAzYjAuLmQwOWUzMDQyY2EgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtNjEwLDcgKzYxMCw2IEBAIHN0YXRpYyB2b2lkIGFjY3VtX3N1bV9maW5h bChOdW1lcmljU3VtQWNjdW0gKmFjY3VtLCBOdW1lcmljVmFyICpyZXN1bHQpOwogc3RhdGljIHZv aWQgYWNjdW1fc3VtX2NvcHkoTnVtZXJpY1N1bUFjY3VtICpkc3QsIE51bWVyaWNTdW1BY2N1bSAq c3JjKTsKIHN0YXRpYyB2b2lkIGFjY3VtX3N1bV9jb21iaW5lKE51bWVyaWNTdW1BY2N1bSAqYWNj dW0sIE51bWVyaWNTdW1BY2N1bSAqYWNjdW0yKTsKIAotCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgog ICogSW5wdXQtLCBvdXRwdXQtIGFuZCByb3VuZGluZy1mdW5jdGlvbnMKQEAgLTU4ODgsNyArNTg4 Nyw2IEBAIGludDhfYXZnX3NlcmlhbGl6ZShQR19GVU5DVElPTl9BUkdTKQogCQllbG9nKEVSUk9S LCAiYWdncmVnYXRlIGZ1bmN0aW9uIGNhbGxlZCBpbiBub24tYWdncmVnYXRlIGNvbnRleHQiKTsK IAogCXN0YXRlID0gKFBvbHlOdW1BZ2dTdGF0ZSAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKLQog CS8qCiAJICogSWYgdGhlIHBsYXRmb3JtIHN1cHBvcnRzIGludDEyOCB0aGVuIHN1bVggd2lsbCBi ZSBhIDEyOCBpbnRlZ2VyIHR5cGUuCiAJICogSGVyZSB3ZSdsbCBjb252ZXJ0IHRoYXQgaW50byBh IG51bWVyaWMgdHlwZSBzbyB0aGF0IHRoZSBjb21iaW5lIHN0YXRlCkBAIC02NzQwLDYgKzY3Mzgs MjUgQEAgaW50NF9hdmdfY29tYmluZShQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9BUlJB WVRZUEVfUCh0cmFuc2FycmF5MSk7CiB9CiAKK0RhdHVtCitpbnQ0X2F2Z19pbXBvcnQoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlBcnJheVR5cGUgICp0cmFuc2FycmF5OworCUludDhUcmFuc1R5cGVE YXRhICp0cmFuc2RhdGE7CisKKwl0cmFuc2FycmF5ID0gUEdfR0VUQVJHX0FSUkFZVFlQRV9QKDAp OworCisJaWYgKEFSUl9IQVNOVUxMKHRyYW5zYXJyYXkpIHx8CisJCUFSUl9TSVpFKHRyYW5zYXJy YXkpICE9IEFSUl9PVkVSSEVBRF9OT05VTExTKDEpICsgc2l6ZW9mKEludDhUcmFuc1R5cGVEYXRh KSkKKwkJZWxvZyhFUlJPUiwgImV4cGVjdGVkIDItZWxlbWVudCBpbnQ4IGFycmF5Iik7CisKKwl0 cmFuc2RhdGEgPSAoSW50OFRyYW5zVHlwZURhdGEgKikgQVJSX0RBVEFfUFRSKHRyYW5zYXJyYXkp OworCWlmICh0cmFuc2RhdGEtPmNvdW50IDw9IDApCisJCWVsb2coRVJST1IsICJjb3VudCBtdXN0 IGJlIHBvc2l0aXZlIik7CisKKwlQR19SRVRVUk5fQVJSQVlUWVBFX1AodHJhbnNhcnJheSk7Cit9 CisKIERhdHVtCiBpbnQyX2F2Z19hY2N1bV9pbnYoUEdfRlVOQ1RJT05fQVJHUykKIHsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA2NTM2ODViZmZjLi43YWFmOGY0MDgyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMDUxMyw3ICsxMDUxMyw4IEBAIGdldF9hZ2dfZXhw cl9oZWxwZXIoQWdncmVmICphZ2dyZWYsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAogCS8q IFByaW50IHRoZSBhZ2dyZWdhdGUgbmFtZSwgc2NoZW1hLXF1YWxpZmllZCBpZiBuZWVkZWQgKi8K IAlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzKCVzIiwgZnVuY25hbWUsCi0JCQkJCSAoYWdncmVm LT5hZ2dkaXN0aW5jdCAhPSBOSUwpID8gIkRJU1RJTkNUICIgOiAiIik7CisJCQkJCSAoYWdncmVm LT5hZ2dkaXN0aW5jdCAhPSBOSUwpID8gIkRJU1RJTkNUICIgOgorCQkJCQkgYWdncmVmLT5hZ2df cGFydGlhbCA/ICJQQVJUSUFMX0FHR1JFR0FURSAiIDogIiIpOwogCiAJaWYgKEFHR0tJTkRfSVNf T1JERVJFRF9TRVQoYWdncmVmLT5hZ2draW5kKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FnZ3Jl Z2F0ZS5kYXQKaW5kZXggNWYxMzUzMmFiYy4uZDAxZmYyYzMyZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19hZ2dyZWdhdGUuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfYWdncmVnYXRlLmRhdApAQCAtMjEsNiArMjEsNyBAQAogICBhZ2d0cmFuc3NwYWNlID0+ICc0 OCcsIGFnZ210cmFuc3R5cGUgPT4gJ2ludGVybmFsJywgYWdnbXRyYW5zc3BhY2UgPT4gJzQ4JyB9 LAogeyBhZ2dmbm9pZCA9PiAnYXZnKGludDQpJywgYWdndHJhbnNmbiA9PiAnaW50NF9hdmdfYWNj dW0nLAogICBhZ2dmaW5hbGZuID0+ICdpbnQ4X2F2ZycsIGFnZ2NvbWJpbmVmbiA9PiAnaW50NF9h dmdfY29tYmluZScsCisgIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLCBhZ2dwYXJ0aWFs aW1wb3J0Zm4gPT4gJ2ludDRfYXZnX2ltcG9ydCcsCiAgIGFnZ210cmFuc2ZuID0+ICdpbnQ0X2F2 Z19hY2N1bScsIGFnZ21pbnZ0cmFuc2ZuID0+ICdpbnQ0X2F2Z19hY2N1bV9pbnYnLAogICBhZ2dt ZmluYWxmbiA9PiAnaW50OF9hdmcnLCBhZ2d0cmFuc3R5cGUgPT4gJ19pbnQ4JywgYWdnbXRyYW5z dHlwZSA9PiAnX2ludDgnLAogICBhZ2dpbml0dmFsID0+ICd7MCwwfScsIGFnZ21pbml0dmFsID0+ ICd7MCwwfScgfSwKQEAgLTkzLDEzOSArOTQsMTM5IEBACiAKICMgbWF4CiB7IGFnZ2Zub2lkID0+ ICdtYXgoaW50OCknLCBhZ2d0cmFuc2ZuID0+ICdpbnQ4bGFyZ2VyJywKLSAgYWdnY29tYmluZWZu ID0+ICdpbnQ4bGFyZ2VyJywgYWdnc29ydG9wID0+ICc+KGludDgsaW50OCknLAotICBhZ2d0cmFu c3R5cGUgPT4gJ2ludDgnIH0sCisgIGFnZ2NvbWJpbmVmbiA9PiAnaW50OGxhcmdlcicsIGFnZ3Bh cnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJz4oaW50OCxpbnQ4KScs IGFnZ3RyYW5zdHlwZSA9PiAnaW50OCcgfSwKIHsgYWdnZm5vaWQgPT4gJ21heChpbnQ0KScsIGFn Z3RyYW5zZm4gPT4gJ2ludDRsYXJnZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ2ludDRsYXJnZXIn LCBhZ2dzb3J0b3AgPT4gJz4oaW50NCxpbnQ0KScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAnaW50NCcg fSwKKyAgYWdnY29tYmluZWZuID0+ICdpbnQ0bGFyZ2VyJywgYWdncGFydGlhbHB1c2hkb3duc2Fm ZSA9PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPihpbnQ0LGludDQpJywgYWdndHJhbnN0eXBlID0+ ICdpbnQ0JyB9LAogeyBhZ2dmbm9pZCA9PiAnbWF4KGludDIpJywgYWdndHJhbnNmbiA9PiAnaW50 MmxhcmdlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnaW50MmxhcmdlcicsIGFnZ3NvcnRvcCA9PiAn PihpbnQyLGludDIpJywKLSAgYWdndHJhbnN0eXBlID0+ICdpbnQyJyB9LAorICBhZ2djb21iaW5l Zm4gPT4gJ2ludDJsYXJnZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdn c29ydG9wID0+ICc+KGludDIsaW50MiknLCBhZ2d0cmFuc3R5cGUgPT4gJ2ludDInIH0sCiB7IGFn Z2Zub2lkID0+ICdtYXgob2lkKScsIGFnZ3RyYW5zZm4gPT4gJ29pZGxhcmdlcicsCi0gIGFnZ2Nv bWJpbmVmbiA9PiAnb2lkbGFyZ2VyJywgYWdnc29ydG9wID0+ICc+KG9pZCxvaWQpJywKLSAgYWdn dHJhbnN0eXBlID0+ICdvaWQnIH0sCisgIGFnZ2NvbWJpbmVmbiA9PiAnb2lkbGFyZ2VyJywgYWdn cGFydGlhbHB1c2hkb3duc2FmZSA9PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPihvaWQsb2lkKScs IGFnZ3RyYW5zdHlwZSA9PiAnb2lkJyB9LAogeyBhZ2dmbm9pZCA9PiAnbWF4KGZsb2F0NCknLCBh Z2d0cmFuc2ZuID0+ICdmbG9hdDRsYXJnZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ2Zsb2F0NGxh cmdlcicsIGFnZ3NvcnRvcCA9PiAnPihmbG9hdDQsZmxvYXQ0KScsCi0gIGFnZ3RyYW5zdHlwZSA9 PiAnZmxvYXQ0JyB9LAorICBhZ2djb21iaW5lZm4gPT4gJ2Zsb2F0NGxhcmdlcicsIGFnZ3BhcnRp YWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJz4oZmxvYXQ0LGZsb2F0NCkn LCBhZ2d0cmFuc3R5cGUgPT4gJ2Zsb2F0NCcgfSwKIHsgYWdnZm5vaWQgPT4gJ21heChmbG9hdDgp JywgYWdndHJhbnNmbiA9PiAnZmxvYXQ4bGFyZ2VyJywKLSAgYWdnY29tYmluZWZuID0+ICdmbG9h dDhsYXJnZXInLCBhZ2dzb3J0b3AgPT4gJz4oZmxvYXQ4LGZsb2F0OCknLAotICBhZ2d0cmFuc3R5 cGUgPT4gJ2Zsb2F0OCcgfSwKKyAgYWdnY29tYmluZWZuID0+ICdmbG9hdDhsYXJnZXInLCBhZ2dw YXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdnc29ydG9wID0+ICc+KGZsb2F0OCxmbG9h dDgpJywgYWdndHJhbnN0eXBlID0+ICdmbG9hdDgnIH0sCiB7IGFnZ2Zub2lkID0+ICdtYXgoZGF0 ZSknLCBhZ2d0cmFuc2ZuID0+ICdkYXRlX2xhcmdlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnZGF0 ZV9sYXJnZXInLCBhZ2dzb3J0b3AgPT4gJz4oZGF0ZSxkYXRlKScsCi0gIGFnZ3RyYW5zdHlwZSA9 PiAnZGF0ZScgfSwKKyAgYWdnY29tYmluZWZuID0+ICdkYXRlX2xhcmdlcicsIGFnZ3BhcnRpYWxw dXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJz4oZGF0ZSxkYXRlKScsIGFnZ3Ry YW5zdHlwZSA9PiAnZGF0ZScgfSwKIHsgYWdnZm5vaWQgPT4gJ21heCh0aW1lKScsIGFnZ3RyYW5z Zm4gPT4gJ3RpbWVfbGFyZ2VyJywKLSAgYWdnY29tYmluZWZuID0+ICd0aW1lX2xhcmdlcicsIGFn Z3NvcnRvcCA9PiAnPih0aW1lLHRpbWUpJywKLSAgYWdndHJhbnN0eXBlID0+ICd0aW1lJyB9LAor ICBhZ2djb21iaW5lZm4gPT4gJ3RpbWVfbGFyZ2VyJywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9 PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPih0aW1lLHRpbWUpJywgYWdndHJhbnN0eXBlID0+ICd0 aW1lJyB9LAogeyBhZ2dmbm9pZCA9PiAnbWF4KHRpbWV0eiknLCBhZ2d0cmFuc2ZuID0+ICd0aW1l dHpfbGFyZ2VyJywKLSAgYWdnY29tYmluZWZuID0+ICd0aW1ldHpfbGFyZ2VyJywgYWdnc29ydG9w ID0+ICc+KHRpbWV0eix0aW1ldHopJywKLSAgYWdndHJhbnN0eXBlID0+ICd0aW1ldHonIH0sCisg IGFnZ2NvbWJpbmVmbiA9PiAndGltZXR6X2xhcmdlcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUg PT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJz4odGltZXR6LHRpbWV0eiknLCBhZ2d0cmFuc3R5cGUg PT4gJ3RpbWV0eicgfSwKIHsgYWdnZm5vaWQgPT4gJ21heChtb25leSknLCBhZ2d0cmFuc2ZuID0+ ICdjYXNobGFyZ2VyJywKLSAgYWdnY29tYmluZWZuID0+ICdjYXNobGFyZ2VyJywgYWdnc29ydG9w ID0+ICc+KG1vbmV5LG1vbmV5KScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAnbW9uZXknIH0sCisgIGFn Z2NvbWJpbmVmbiA9PiAnY2FzaGxhcmdlcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3Qn LAorICBhZ2dzb3J0b3AgPT4gJz4obW9uZXksbW9uZXkpJywgYWdndHJhbnN0eXBlID0+ICdtb25l eScgfSwKIHsgYWdnZm5vaWQgPT4gJ21heCh0aW1lc3RhbXApJywgYWdndHJhbnNmbiA9PiAndGlt ZXN0YW1wX2xhcmdlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAndGltZXN0YW1wX2xhcmdlcicsIGFn Z3NvcnRvcCA9PiAnPih0aW1lc3RhbXAsdGltZXN0YW1wKScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAn dGltZXN0YW1wJyB9LAorICBhZ2djb21iaW5lZm4gPT4gJ3RpbWVzdGFtcF9sYXJnZXInLCBhZ2dw YXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdnc29ydG9wID0+ICc+KHRpbWVzdGFtcCx0 aW1lc3RhbXApJywgYWdndHJhbnN0eXBlID0+ICd0aW1lc3RhbXAnIH0sCiB7IGFnZ2Zub2lkID0+ ICdtYXgodGltZXN0YW1wdHopJywgYWdndHJhbnNmbiA9PiAndGltZXN0YW1wdHpfbGFyZ2VyJywK LSAgYWdnY29tYmluZWZuID0+ICd0aW1lc3RhbXB0el9sYXJnZXInLAorICBhZ2djb21iaW5lZm4g PT4gJ3RpbWVzdGFtcHR6X2xhcmdlcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAog ICBhZ2dzb3J0b3AgPT4gJz4odGltZXN0YW1wdHosdGltZXN0YW1wdHopJywgYWdndHJhbnN0eXBl ID0+ICd0aW1lc3RhbXB0eicgfSwKIHsgYWdnZm5vaWQgPT4gJ21heChpbnRlcnZhbCknLCBhZ2d0 cmFuc2ZuID0+ICdpbnRlcnZhbF9sYXJnZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ2ludGVydmFs X2xhcmdlcicsIGFnZ3NvcnRvcCA9PiAnPihpbnRlcnZhbCxpbnRlcnZhbCknLAotICBhZ2d0cmFu c3R5cGUgPT4gJ2ludGVydmFsJyB9LAorICBhZ2djb21iaW5lZm4gPT4gJ2ludGVydmFsX2xhcmdl cicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJz4oaW50 ZXJ2YWwsaW50ZXJ2YWwpJywgYWdndHJhbnN0eXBlID0+ICdpbnRlcnZhbCcgfSwKIHsgYWdnZm5v aWQgPT4gJ21heCh0ZXh0KScsIGFnZ3RyYW5zZm4gPT4gJ3RleHRfbGFyZ2VyJywKLSAgYWdnY29t YmluZWZuID0+ICd0ZXh0X2xhcmdlcicsIGFnZ3NvcnRvcCA9PiAnPih0ZXh0LHRleHQpJywKLSAg YWdndHJhbnN0eXBlID0+ICd0ZXh0JyB9LAorICBhZ2djb21iaW5lZm4gPT4gJ3RleHRfbGFyZ2Vy JywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPih0ZXh0 LHRleHQpJywgYWdndHJhbnN0eXBlID0+ICd0ZXh0JyB9LAogeyBhZ2dmbm9pZCA9PiAnbWF4KG51 bWVyaWMpJywgYWdndHJhbnNmbiA9PiAnbnVtZXJpY19sYXJnZXInLAotICBhZ2djb21iaW5lZm4g PT4gJ251bWVyaWNfbGFyZ2VyJywgYWdnc29ydG9wID0+ICc+KG51bWVyaWMsbnVtZXJpYyknLAot ICBhZ2d0cmFuc3R5cGUgPT4gJ251bWVyaWMnIH0sCisgIGFnZ2NvbWJpbmVmbiA9PiAnbnVtZXJp Y19sYXJnZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdnc29ydG9wID0+ ICc+KG51bWVyaWMsbnVtZXJpYyknLCBhZ2d0cmFuc3R5cGUgPT4gJ251bWVyaWMnIH0sCiB7IGFn Z2Zub2lkID0+ICdtYXgoYW55YXJyYXkpJywgYWdndHJhbnNmbiA9PiAnYXJyYXlfbGFyZ2VyJywK LSAgYWdnY29tYmluZWZuID0+ICdhcnJheV9sYXJnZXInLCBhZ2dzb3J0b3AgPT4gJz4oYW55YXJy YXksYW55YXJyYXkpJywKLSAgYWdndHJhbnN0eXBlID0+ICdhbnlhcnJheScgfSwKKyAgYWdnY29t YmluZWZuID0+ICdhcnJheV9sYXJnZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywK KyAgYWdnc29ydG9wID0+ICc+KGFueWFycmF5LGFueWFycmF5KScsIGFnZ3RyYW5zdHlwZSA9PiAn YW55YXJyYXknIH0sCiB7IGFnZ2Zub2lkID0+ICdtYXgoYnBjaGFyKScsIGFnZ3RyYW5zZm4gPT4g J2JwY2hhcl9sYXJnZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ2JwY2hhcl9sYXJnZXInLCBhZ2dz b3J0b3AgPT4gJz4oYnBjaGFyLGJwY2hhciknLAotICBhZ2d0cmFuc3R5cGUgPT4gJ2JwY2hhcicg fSwKKyAgYWdnY29tYmluZWZuID0+ICdicGNoYXJfbGFyZ2VyJywgYWdncGFydGlhbHB1c2hkb3du c2FmZSA9PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPihicGNoYXIsYnBjaGFyKScsIGFnZ3RyYW5z dHlwZSA9PiAnYnBjaGFyJyB9LAogeyBhZ2dmbm9pZCA9PiAnbWF4KHRpZCknLCBhZ2d0cmFuc2Zu ID0+ICd0aWRsYXJnZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ3RpZGxhcmdlcicsIGFnZ3NvcnRv cCA9PiAnPih0aWQsdGlkKScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAndGlkJyB9LAorICBhZ2djb21i aW5lZm4gPT4gJ3RpZGxhcmdlcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBh Z2dzb3J0b3AgPT4gJz4odGlkLHRpZCknLCBhZ2d0cmFuc3R5cGUgPT4gJ3RpZCcgfSwKIHsgYWdn Zm5vaWQgPT4gJ21heChhbnllbnVtKScsIGFnZ3RyYW5zZm4gPT4gJ2VudW1fbGFyZ2VyJywKLSAg YWdnY29tYmluZWZuID0+ICdlbnVtX2xhcmdlcicsIGFnZ3NvcnRvcCA9PiAnPihhbnllbnVtLGFu eWVudW0pJywKLSAgYWdndHJhbnN0eXBlID0+ICdhbnllbnVtJyB9LAorICBhZ2djb21iaW5lZm4g PT4gJ2VudW1fbGFyZ2VyJywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9PiAndCcsCisgIGFnZ3Nv cnRvcCA9PiAnPihhbnllbnVtLGFueWVudW0pJywgYWdndHJhbnN0eXBlID0+ICdhbnllbnVtJyB9 LAogeyBhZ2dmbm9pZCA9PiAnbWF4KGluZXQpJywgYWdndHJhbnNmbiA9PiAnbmV0d29ya19sYXJn ZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ25ldHdvcmtfbGFyZ2VyJywgYWdnc29ydG9wID0+ICc+ KGluZXQsaW5ldCknLAotICBhZ2d0cmFuc3R5cGUgPT4gJ2luZXQnIH0sCisgIGFnZ2NvbWJpbmVm biA9PiAnbmV0d29ya19sYXJnZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAg YWdnc29ydG9wID0+ICc+KGluZXQsaW5ldCknLCBhZ2d0cmFuc3R5cGUgPT4gJ2luZXQnIH0sCiB7 IGFnZ2Zub2lkID0+ICdtYXgocGdfbHNuKScsIGFnZ3RyYW5zZm4gPT4gJ3BnX2xzbl9sYXJnZXIn LAotICBhZ2djb21iaW5lZm4gPT4gJ3BnX2xzbl9sYXJnZXInLCBhZ2dzb3J0b3AgPT4gJz4ocGdf bHNuLHBnX2xzbiknLAotICBhZ2d0cmFuc3R5cGUgPT4gJ3BnX2xzbicgfSwKKyAgYWdnY29tYmlu ZWZuID0+ICdwZ19sc25fbGFyZ2VyJywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9PiAndCcsCisg IGFnZ3NvcnRvcCA9PiAnPihwZ19sc24scGdfbHNuKScsIGFnZ3RyYW5zdHlwZSA9PiAncGdfbHNu JyB9LAogeyBhZ2dmbm9pZCA9PiAnbWF4KHhpZDgpJywgYWdndHJhbnNmbiA9PiAneGlkOF9sYXJn ZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ3hpZDhfbGFyZ2VyJywgYWdnc29ydG9wID0+ICc+KHhp ZDgseGlkOCknLAotICBhZ2d0cmFuc3R5cGUgPT4gJ3hpZDgnIH0sCisgIGFnZ2NvbWJpbmVmbiA9 PiAneGlkOF9sYXJnZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdnc29y dG9wID0+ICc+KHhpZDgseGlkOCknLCBhZ2d0cmFuc3R5cGUgPT4gJ3hpZDgnIH0sCiAKICMgbWlu CiB7IGFnZ2Zub2lkID0+ICdtaW4oaW50OCknLCBhZ2d0cmFuc2ZuID0+ICdpbnQ4c21hbGxlcics Ci0gIGFnZ2NvbWJpbmVmbiA9PiAnaW50OHNtYWxsZXInLCBhZ2dzb3J0b3AgPT4gJzwoaW50OCxp bnQ4KScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAnaW50OCcgfSwKKyAgYWdnY29tYmluZWZuID0+ICdp bnQ4c21hbGxlcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3Ag PT4gJzwoaW50OCxpbnQ4KScsICBhZ2d0cmFuc3R5cGUgPT4gJ2ludDgnIH0sCiB7IGFnZ2Zub2lk ID0+ICdtaW4oaW50NCknLCBhZ2d0cmFuc2ZuID0+ICdpbnQ0c21hbGxlcicsCi0gIGFnZ2NvbWJp bmVmbiA9PiAnaW50NHNtYWxsZXInLCBhZ2dzb3J0b3AgPT4gJzwoaW50NCxpbnQ0KScsCi0gIGFn Z3RyYW5zdHlwZSA9PiAnaW50NCcgfSwKKyAgYWdnY29tYmluZWZuID0+ICdpbnQ0c21hbGxlcics IGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJzwoaW50NCxp bnQ0KScsIGFnZ3RyYW5zdHlwZSA9PiAnaW50NCcgfSwKIHsgYWdnZm5vaWQgPT4gJ21pbihpbnQy KScsIGFnZ3RyYW5zZm4gPT4gJ2ludDJzbWFsbGVyJywKLSAgYWdnY29tYmluZWZuID0+ICdpbnQy c21hbGxlcicsIGFnZ3NvcnRvcCA9PiAnPChpbnQyLGludDIpJywKLSAgYWdndHJhbnN0eXBlID0+ ICdpbnQyJyB9LAorICBhZ2djb21iaW5lZm4gPT4gJ2ludDJzbWFsbGVyJywgYWdncGFydGlhbHB1 c2hkb3duc2FmZSA9PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPChpbnQyLGludDIpJywgYWdndHJh bnN0eXBlID0+ICdpbnQyJyB9LAogeyBhZ2dmbm9pZCA9PiAnbWluKG9pZCknLCBhZ2d0cmFuc2Zu ID0+ICdvaWRzbWFsbGVyJywKLSAgYWdnY29tYmluZWZuID0+ICdvaWRzbWFsbGVyJywgYWdnc29y dG9wID0+ICc8KG9pZCxvaWQpJywKLSAgYWdndHJhbnN0eXBlID0+ICdvaWQnIH0sCisgIGFnZ2Nv bWJpbmVmbiA9PiAnb2lkc21hbGxlcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAor ICBhZ2dzb3J0b3AgPT4gJzwob2lkLG9pZCknLCBhZ2d0cmFuc3R5cGUgPT4gJ29pZCcgfSwKIHsg YWdnZm5vaWQgPT4gJ21pbihmbG9hdDQpJywgYWdndHJhbnNmbiA9PiAnZmxvYXQ0c21hbGxlcics Ci0gIGFnZ2NvbWJpbmVmbiA9PiAnZmxvYXQ0c21hbGxlcicsIGFnZ3NvcnRvcCA9PiAnPChmbG9h dDQsZmxvYXQ0KScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAnZmxvYXQ0JyB9LAorICBhZ2djb21iaW5l Zm4gPT4gJ2Zsb2F0NHNtYWxsZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAg YWdnc29ydG9wID0+ICc8KGZsb2F0NCxmbG9hdDQpJywgYWdndHJhbnN0eXBlID0+ICdmbG9hdDQn IH0sCiB7IGFnZ2Zub2lkID0+ICdtaW4oZmxvYXQ4KScsIGFnZ3RyYW5zZm4gPT4gJ2Zsb2F0OHNt YWxsZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ2Zsb2F0OHNtYWxsZXInLCBhZ2dzb3J0b3AgPT4g JzwoZmxvYXQ4LGZsb2F0OCknLAotICBhZ2d0cmFuc3R5cGUgPT4gJ2Zsb2F0OCcgfSwKKyAgYWdn Y29tYmluZWZuID0+ICdmbG9hdDhzbWFsbGVyJywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9PiAn dCcsCisgIGFnZ3NvcnRvcCA9PiAnPChmbG9hdDgsZmxvYXQ4KScsIGFnZ3RyYW5zdHlwZSA9PiAn ZmxvYXQ4JyB9LAogeyBhZ2dmbm9pZCA9PiAnbWluKGRhdGUpJywgYWdndHJhbnNmbiA9PiAnZGF0 ZV9zbWFsbGVyJywKLSAgYWdnY29tYmluZWZuID0+ICdkYXRlX3NtYWxsZXInLCBhZ2dzb3J0b3Ag PT4gJzwoZGF0ZSxkYXRlKScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAnZGF0ZScgfSwKKyAgYWdnY29t YmluZWZuID0+ICdkYXRlX3NtYWxsZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywK KyAgYWdnc29ydG9wID0+ICc8KGRhdGUsZGF0ZSknLCBhZ2d0cmFuc3R5cGUgPT4gJ2RhdGUnIH0s CiB7IGFnZ2Zub2lkID0+ICdtaW4odGltZSknLCBhZ2d0cmFuc2ZuID0+ICd0aW1lX3NtYWxsZXIn LAotICBhZ2djb21iaW5lZm4gPT4gJ3RpbWVfc21hbGxlcicsIGFnZ3NvcnRvcCA9PiAnPCh0aW1l LHRpbWUpJywKLSAgYWdndHJhbnN0eXBlID0+ICd0aW1lJyB9LAorICBhZ2djb21iaW5lZm4gPT4g J3RpbWVfc21hbGxlcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0 b3AgPT4gJzwodGltZSx0aW1lKScsIGFnZ3RyYW5zdHlwZSA9PiAndGltZScgfSwKIHsgYWdnZm5v aWQgPT4gJ21pbih0aW1ldHopJywgYWdndHJhbnNmbiA9PiAndGltZXR6X3NtYWxsZXInLAotICBh Z2djb21iaW5lZm4gPT4gJ3RpbWV0el9zbWFsbGVyJywgYWdnc29ydG9wID0+ICc8KHRpbWV0eix0 aW1ldHopJywKLSAgYWdndHJhbnN0eXBlID0+ICd0aW1ldHonIH0sCisgIGFnZ2NvbWJpbmVmbiA9 PiAndGltZXR6X3NtYWxsZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdn c29ydG9wID0+ICc8KHRpbWV0eix0aW1ldHopJywgYWdndHJhbnN0eXBlID0+ICd0aW1ldHonIH0s CiB7IGFnZ2Zub2lkID0+ICdtaW4obW9uZXkpJywgYWdndHJhbnNmbiA9PiAnY2FzaHNtYWxsZXIn LAotICBhZ2djb21iaW5lZm4gPT4gJ2Nhc2hzbWFsbGVyJywgYWdnc29ydG9wID0+ICc8KG1vbmV5 LG1vbmV5KScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAnbW9uZXknIH0sCisgIGFnZ2NvbWJpbmVmbiA9 PiAnY2FzaHNtYWxsZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdnc29y dG9wID0+ICc8KG1vbmV5LG1vbmV5KScsIGFnZ3RyYW5zdHlwZSA9PiAnbW9uZXknIH0sCiB7IGFn Z2Zub2lkID0+ICdtaW4odGltZXN0YW1wKScsIGFnZ3RyYW5zZm4gPT4gJ3RpbWVzdGFtcF9zbWFs bGVyJywKLSAgYWdnY29tYmluZWZuID0+ICd0aW1lc3RhbXBfc21hbGxlcicsIGFnZ3NvcnRvcCA9 PiAnPCh0aW1lc3RhbXAsdGltZXN0YW1wKScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAndGltZXN0YW1w JyB9LAorICBhZ2djb21iaW5lZm4gPT4gJ3RpbWVzdGFtcF9zbWFsbGVyJywgYWdncGFydGlhbHB1 c2hkb3duc2FmZSA9PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPCh0aW1lc3RhbXAsdGltZXN0YW1w KScsIGFnZ3RyYW5zdHlwZSA9PiAndGltZXN0YW1wJyB9LAogeyBhZ2dmbm9pZCA9PiAnbWluKHRp bWVzdGFtcHR6KScsIGFnZ3RyYW5zZm4gPT4gJ3RpbWVzdGFtcHR6X3NtYWxsZXInLAotICBhZ2dj b21iaW5lZm4gPT4gJ3RpbWVzdGFtcHR6X3NtYWxsZXInLAorICBhZ2djb21iaW5lZm4gPT4gJ3Rp bWVzdGFtcHR6X3NtYWxsZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKICAgYWdn c29ydG9wID0+ICc8KHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6KScsIGFnZ3RyYW5zdHlwZSA9PiAn dGltZXN0YW1wdHonIH0sCiB7IGFnZ2Zub2lkID0+ICdtaW4oaW50ZXJ2YWwpJywgYWdndHJhbnNm biA9PiAnaW50ZXJ2YWxfc21hbGxlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnaW50ZXJ2YWxfc21h bGxlcicsIGFnZ3NvcnRvcCA9PiAnPChpbnRlcnZhbCxpbnRlcnZhbCknLAotICBhZ2d0cmFuc3R5 cGUgPT4gJ2ludGVydmFsJyB9LAorICBhZ2djb21iaW5lZm4gPT4gJ2ludGVydmFsX3NtYWxsZXIn LCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdnc29ydG9wID0+ICc8KGludGVy dmFsLGludGVydmFsKScsIGFnZ3RyYW5zdHlwZSA9PiAnaW50ZXJ2YWwnIH0sCiB7IGFnZ2Zub2lk ID0+ICdtaW4odGV4dCknLCBhZ2d0cmFuc2ZuID0+ICd0ZXh0X3NtYWxsZXInLAotICBhZ2djb21i aW5lZm4gPT4gJ3RleHRfc21hbGxlcicsIGFnZ3NvcnRvcCA9PiAnPCh0ZXh0LHRleHQpJywKLSAg YWdndHJhbnN0eXBlID0+ICd0ZXh0JyB9LAorICBhZ2djb21iaW5lZm4gPT4gJ3RleHRfc21hbGxl cicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJzwodGV4 dCx0ZXh0KScsIGFnZ3RyYW5zdHlwZSA9PiAndGV4dCcgfSwKIHsgYWdnZm5vaWQgPT4gJ21pbihu dW1lcmljKScsIGFnZ3RyYW5zZm4gPT4gJ251bWVyaWNfc21hbGxlcicsCi0gIGFnZ2NvbWJpbmVm biA9PiAnbnVtZXJpY19zbWFsbGVyJywgYWdnc29ydG9wID0+ICc8KG51bWVyaWMsbnVtZXJpYykn LAotICBhZ2d0cmFuc3R5cGUgPT4gJ251bWVyaWMnIH0sCisgIGFnZ2NvbWJpbmVmbiA9PiAnbnVt ZXJpY19zbWFsbGVyJywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9PiAndCcsCisgIGFnZ3NvcnRv cCA9PiAnPChudW1lcmljLG51bWVyaWMpJywgYWdndHJhbnN0eXBlID0+ICdudW1lcmljJyB9LAog eyBhZ2dmbm9pZCA9PiAnbWluKGFueWFycmF5KScsIGFnZ3RyYW5zZm4gPT4gJ2FycmF5X3NtYWxs ZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ2FycmF5X3NtYWxsZXInLCBhZ2dzb3J0b3AgPT4gJzwo YW55YXJyYXksYW55YXJyYXkpJywKLSAgYWdndHJhbnN0eXBlID0+ICdhbnlhcnJheScgfSwKKyAg YWdnY29tYmluZWZuID0+ICdhcnJheV9zbWFsbGVyJywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9 PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPChhbnlhcnJheSxhbnlhcnJheSknLCBhZ2d0cmFuc3R5 cGUgPT4gJ2FueWFycmF5JyB9LAogeyBhZ2dmbm9pZCA9PiAnbWluKGJwY2hhciknLCBhZ2d0cmFu c2ZuID0+ICdicGNoYXJfc21hbGxlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnYnBjaGFyX3NtYWxs ZXInLCBhZ2dzb3J0b3AgPT4gJzwoYnBjaGFyLGJwY2hhciknLAotICBhZ2d0cmFuc3R5cGUgPT4g J2JwY2hhcicgfSwKKyAgYWdnY29tYmluZWZuID0+ICdicGNoYXJfc21hbGxlcicsIGFnZ3BhcnRp YWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJzwoYnBjaGFyLGJwY2hhcikn LCBhZ2d0cmFuc3R5cGUgPT4gJ2JwY2hhcicgfSwKIHsgYWdnZm5vaWQgPT4gJ21pbih0aWQpJywg YWdndHJhbnNmbiA9PiAndGlkc21hbGxlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAndGlkc21hbGxl cicsIGFnZ3NvcnRvcCA9PiAnPCh0aWQsdGlkKScsCi0gIGFnZ3RyYW5zdHlwZSA9PiAndGlkJyB9 LAorICBhZ2djb21iaW5lZm4gPT4gJ3RpZHNtYWxsZXInLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZl ID0+ICd0JywKKyAgYWdnc29ydG9wID0+ICc8KHRpZCx0aWQpJywgYWdndHJhbnN0eXBlID0+ICd0 aWQnIH0sCiB7IGFnZ2Zub2lkID0+ICdtaW4oYW55ZW51bSknLCBhZ2d0cmFuc2ZuID0+ICdlbnVt X3NtYWxsZXInLAotICBhZ2djb21iaW5lZm4gPT4gJ2VudW1fc21hbGxlcicsIGFnZ3NvcnRvcCA9 PiAnPChhbnllbnVtLGFueWVudW0pJywKLSAgYWdndHJhbnN0eXBlID0+ICdhbnllbnVtJyB9LAor ICBhZ2djb21iaW5lZm4gPT4gJ2VudW1fc21hbGxlcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUg PT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJzwoYW55ZW51bSxhbnllbnVtKScsIGFnZ3RyYW5zdHlw ZSA9PiAnYW55ZW51bScgfSwKIHsgYWdnZm5vaWQgPT4gJ21pbihpbmV0KScsIGFnZ3RyYW5zZm4g PT4gJ25ldHdvcmtfc21hbGxlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnbmV0d29ya19zbWFsbGVy JywgYWdnc29ydG9wID0+ICc8KGluZXQsaW5ldCknLAotICBhZ2d0cmFuc3R5cGUgPT4gJ2luZXQn IH0sCisgIGFnZ2NvbWJpbmVmbiA9PiAnbmV0d29ya19zbWFsbGVyJywgYWdncGFydGlhbHB1c2hk b3duc2FmZSA9PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPChpbmV0LGluZXQpJywgYWdndHJhbnN0 eXBlID0+ICdpbmV0JyB9LAogeyBhZ2dmbm9pZCA9PiAnbWluKHBnX2xzbiknLCBhZ2d0cmFuc2Zu ID0+ICdwZ19sc25fc21hbGxlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAncGdfbHNuX3NtYWxsZXIn LCBhZ2dzb3J0b3AgPT4gJzwocGdfbHNuLHBnX2xzbiknLAotICBhZ2d0cmFuc3R5cGUgPT4gJ3Bn X2xzbicgfSwKKyAgYWdnY29tYmluZWZuID0+ICdwZ19sc25fc21hbGxlcicsIGFnZ3BhcnRpYWxw dXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dzb3J0b3AgPT4gJzwocGdfbHNuLHBnX2xzbiknLCBh Z2d0cmFuc3R5cGUgPT4gJ3BnX2xzbicgfSwKIHsgYWdnZm5vaWQgPT4gJ21pbih4aWQ4KScsIGFn Z3RyYW5zZm4gPT4gJ3hpZDhfc21hbGxlcicsCi0gIGFnZ2NvbWJpbmVmbiA9PiAneGlkOF9zbWFs bGVyJywgYWdnc29ydG9wID0+ICc8KHhpZDgseGlkOCknLAotICBhZ2d0cmFuc3R5cGUgPT4gJ3hp ZDgnIH0sCisgIGFnZ2NvbWJpbmVmbiA9PiAneGlkOF9zbWFsbGVyJywgYWdncGFydGlhbHB1c2hk b3duc2FmZSA9PiAndCcsCisgIGFnZ3NvcnRvcCA9PiAnPCh4aWQ4LHhpZDgpJywgYWdndHJhbnN0 eXBlID0+ICd4aWQ4JyB9LAogCiAjIGNvdW50CiB7IGFnZ2Zub2lkID0+ICdjb3VudChhbnkpJywg YWdndHJhbnNmbiA9PiAnaW50OGluY19hbnknLApAQCAtNDk3LDQ2ICs0OTgsNTUgQEAKIAogIyBi b29sZWFuLWFuZCBhbmQgYm9vbGVhbi1vcgogeyBhZ2dmbm9pZCA9PiAnYm9vbF9hbmQnLCBhZ2d0 cmFuc2ZuID0+ICdib29sYW5kX3N0YXRlZnVuYycsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnYm9vbGFu ZF9zdGF0ZWZ1bmMnLCBhZ2dtdHJhbnNmbiA9PiAnYm9vbF9hY2N1bScsCi0gIGFnZ21pbnZ0cmFu c2ZuID0+ICdib29sX2FjY3VtX2ludicsIGFnZ21maW5hbGZuID0+ICdib29sX2FsbHRydWUnLAot ICBhZ2dzb3J0b3AgPT4gJzwoYm9vbCxib29sKScsIGFnZ3RyYW5zdHlwZSA9PiAnYm9vbCcsCi0g IGFnZ210cmFuc3R5cGUgPT4gJ2ludGVybmFsJywgYWdnbXRyYW5zc3BhY2UgPT4gJzE2JyB9LAor ICBhZ2djb21iaW5lZm4gPT4gJ2Jvb2xhbmRfc3RhdGVmdW5jJywgYWdncGFydGlhbHB1c2hkb3du c2FmZSA9PiAndCcsCisgIGFnZ210cmFuc2ZuID0+ICdib29sX2FjY3VtJywgYWdnbWludnRyYW5z Zm4gPT4gJ2Jvb2xfYWNjdW1faW52JywKKyAgYWdnbWZpbmFsZm4gPT4gJ2Jvb2xfYWxsdHJ1ZScs IGFnZ3NvcnRvcCA9PiAnPChib29sLGJvb2wpJywKKyAgYWdndHJhbnN0eXBlID0+ICdib29sJywg YWdnbXRyYW5zdHlwZSA9PiAnaW50ZXJuYWwnLAorICBhZ2dtdHJhbnNzcGFjZSA9PiAnMTYnIH0s CiB7IGFnZ2Zub2lkID0+ICdib29sX29yJywgYWdndHJhbnNmbiA9PiAnYm9vbG9yX3N0YXRlZnVu YycsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnYm9vbG9yX3N0YXRlZnVuYycsIGFnZ210cmFuc2ZuID0+ ICdib29sX2FjY3VtJywKLSAgYWdnbWludnRyYW5zZm4gPT4gJ2Jvb2xfYWNjdW1faW52JywgYWdn bWZpbmFsZm4gPT4gJ2Jvb2xfYW55dHJ1ZScsCi0gIGFnZ3NvcnRvcCA9PiAnPihib29sLGJvb2wp JywgYWdndHJhbnN0eXBlID0+ICdib29sJywKLSAgYWdnbXRyYW5zdHlwZSA9PiAnaW50ZXJuYWwn LCBhZ2dtdHJhbnNzcGFjZSA9PiAnMTYnIH0sCisgIGFnZ2NvbWJpbmVmbiA9PiAnYm9vbG9yX3N0 YXRlZnVuYycsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBhZ2dtdHJhbnNmbiA9 PiAnYm9vbF9hY2N1bScsIGFnZ21pbnZ0cmFuc2ZuID0+ICdib29sX2FjY3VtX2ludicsCisgIGFn Z21maW5hbGZuID0+ICdib29sX2FueXRydWUnLCBhZ2dzb3J0b3AgPT4gJz4oYm9vbCxib29sKScs CisgIGFnZ3RyYW5zdHlwZSA9PiAnYm9vbCcsIGFnZ210cmFuc3R5cGUgPT4gJ2ludGVybmFsJywK KyAgYWdnbXRyYW5zc3BhY2UgPT4gJzE2JyB9LAogeyBhZ2dmbm9pZCA9PiAnZXZlcnknLCBhZ2d0 cmFuc2ZuID0+ICdib29sYW5kX3N0YXRlZnVuYycsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnYm9vbGFu ZF9zdGF0ZWZ1bmMnLCBhZ2dtdHJhbnNmbiA9PiAnYm9vbF9hY2N1bScsCi0gIGFnZ21pbnZ0cmFu c2ZuID0+ICdib29sX2FjY3VtX2ludicsIGFnZ21maW5hbGZuID0+ICdib29sX2FsbHRydWUnLAot ICBhZ2dzb3J0b3AgPT4gJzwoYm9vbCxib29sKScsIGFnZ3RyYW5zdHlwZSA9PiAnYm9vbCcsCi0g IGFnZ210cmFuc3R5cGUgPT4gJ2ludGVybmFsJywgYWdnbXRyYW5zc3BhY2UgPT4gJzE2JyB9LAor ICBhZ2djb21iaW5lZm4gPT4gJ2Jvb2xhbmRfc3RhdGVmdW5jJywgYWdncGFydGlhbHB1c2hkb3du c2FmZSA9PiAndCcsCisgIGFnZ210cmFuc2ZuID0+ICdib29sX2FjY3VtJywgYWdnbWludnRyYW5z Zm4gPT4gJ2Jvb2xfYWNjdW1faW52JywKKyAgYWdnbWZpbmFsZm4gPT4gJ2Jvb2xfYWxsdHJ1ZScs IGFnZ3NvcnRvcCA9PiAnPChib29sLGJvb2wpJywKKyAgYWdndHJhbnN0eXBlID0+ICdib29sJywg YWdnbXRyYW5zdHlwZSA9PiAnaW50ZXJuYWwnLAorICBhZ2dtdHJhbnNzcGFjZSA9PiAnMTYnIH0s CiAKICMgYml0d2lzZSBpbnRlZ2VyCiB7IGFnZ2Zub2lkID0+ICdiaXRfYW5kKGludDIpJywgYWdn dHJhbnNmbiA9PiAnaW50MmFuZCcsCi0gIGFnZ2NvbWJpbmVmbiA9PiAnaW50MmFuZCcsIGFnZ3Ry YW5zdHlwZSA9PiAnaW50MicgfSwKLXsgYWdnZm5vaWQgPT4gJ2JpdF9vcihpbnQyKScsIGFnZ3Ry YW5zZm4gPT4gJ2ludDJvcicsIGFnZ2NvbWJpbmVmbiA9PiAnaW50Mm9yJywKKyAgYWdnY29tYmlu ZWZuID0+ICdpbnQyYW5kJywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9PiAndCcsCiAgIGFnZ3Ry YW5zdHlwZSA9PiAnaW50MicgfSwKK3sgYWdnZm5vaWQgPT4gJ2JpdF9vcihpbnQyKScsIGFnZ3Ry YW5zZm4gPT4gJ2ludDJvcicsIGFnZ2NvbWJpbmVmbiA9PiAnaW50Mm9yJywKKyAgYWdncGFydGlh bHB1c2hkb3duc2FmZSA9PiAndCcsIGFnZ3RyYW5zdHlwZSA9PiAnaW50MicgfSwKIHsgYWdnZm5v aWQgPT4gJ2JpdF94b3IoaW50MiknLCBhZ2d0cmFuc2ZuID0+ICdpbnQyeG9yJywKLSAgYWdnY29t YmluZWZuID0+ICdpbnQyeG9yJywgYWdndHJhbnN0eXBlID0+ICdpbnQyJyB9LAorICBhZ2djb21i aW5lZm4gPT4gJ2ludDJ4b3InLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKKyAgYWdn dHJhbnN0eXBlID0+ICdpbnQyJyB9LAogeyBhZ2dmbm9pZCA9PiAnYml0X2FuZChpbnQ0KScsIGFn Z3RyYW5zZm4gPT4gJ2ludDRhbmQnLAotICBhZ2djb21iaW5lZm4gPT4gJ2ludDRhbmQnLCBhZ2d0 cmFuc3R5cGUgPT4gJ2ludDQnIH0sCi17IGFnZ2Zub2lkID0+ICdiaXRfb3IoaW50NCknLCBhZ2d0 cmFuc2ZuID0+ICdpbnQ0b3InLCBhZ2djb21iaW5lZm4gPT4gJ2ludDRvcicsCisgIGFnZ2NvbWJp bmVmbiA9PiAnaW50NGFuZCcsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAogICBhZ2d0 cmFuc3R5cGUgPT4gJ2ludDQnIH0sCit7IGFnZ2Zub2lkID0+ICdiaXRfb3IoaW50NCknLCBhZ2d0 cmFuc2ZuID0+ICdpbnQ0b3InLCBhZ2djb21iaW5lZm4gPT4gJ2ludDRvcicsCisgIGFnZ3BhcnRp YWxwdXNoZG93bnNhZmUgPT4gJ3QnLCBhZ2d0cmFuc3R5cGUgPT4gJ2ludDQnIH0sCiB7IGFnZ2Zu b2lkID0+ICdiaXRfeG9yKGludDQpJywgYWdndHJhbnNmbiA9PiAnaW50NHhvcicsCi0gIGFnZ2Nv bWJpbmVmbiA9PiAnaW50NHhvcicsIGFnZ3RyYW5zdHlwZSA9PiAnaW50NCcgfSwKKyAgYWdnY29t YmluZWZuID0+ICdpbnQ0eG9yJywgYWdncGFydGlhbHB1c2hkb3duc2FmZSA9PiAndCcsCisgIGFn Z3RyYW5zdHlwZSA9PiAnaW50NCcgfSwKIHsgYWdnZm5vaWQgPT4gJ2JpdF9hbmQoaW50OCknLCBh Z2d0cmFuc2ZuID0+ICdpbnQ4YW5kJywKLSAgYWdnY29tYmluZWZuID0+ICdpbnQ4YW5kJywgYWdn dHJhbnN0eXBlID0+ICdpbnQ4JyB9LAoteyBhZ2dmbm9pZCA9PiAnYml0X29yKGludDgpJywgYWdn dHJhbnNmbiA9PiAnaW50OG9yJywgYWdnY29tYmluZWZuID0+ICdpbnQ4b3InLAorICBhZ2djb21i aW5lZm4gPT4gJ2ludDhhbmQnLCBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywKICAgYWdn dHJhbnN0eXBlID0+ICdpbnQ4JyB9LAoreyBhZ2dmbm9pZCA9PiAnYml0X29yKGludDgpJywgYWdn dHJhbnNmbiA9PiAnaW50OG9yJywgYWdnY29tYmluZWZuID0+ICdpbnQ4b3InLAorICBhZ2dwYXJ0 aWFscHVzaGRvd25zYWZlID0+ICd0JywgYWdndHJhbnN0eXBlID0+ICdpbnQ4JyB9LAogeyBhZ2dm bm9pZCA9PiAnYml0X3hvcihpbnQ4KScsIGFnZ3RyYW5zZm4gPT4gJ2ludDh4b3InLAotICBhZ2dj b21iaW5lZm4gPT4gJ2ludDh4b3InLCBhZ2d0cmFuc3R5cGUgPT4gJ2ludDgnIH0sCisgIGFnZ2Nv bWJpbmVmbiA9PiAnaW50OHhvcicsIGFnZ3BhcnRpYWxwdXNoZG93bnNhZmUgPT4gJ3QnLAorICBh Z2d0cmFuc3R5cGUgPT4gJ2ludDgnIH0sCiB7IGFnZ2Zub2lkID0+ICdiaXRfYW5kKGJpdCknLCBh Z2d0cmFuc2ZuID0+ICdiaXRhbmQnLCBhZ2djb21iaW5lZm4gPT4gJ2JpdGFuZCcsCi0gIGFnZ3Ry YW5zdHlwZSA9PiAnYml0JyB9LAorICBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywgYWdn dHJhbnN0eXBlID0+ICdiaXQnIH0sCiB7IGFnZ2Zub2lkID0+ICdiaXRfb3IoYml0KScsIGFnZ3Ry YW5zZm4gPT4gJ2JpdG9yJywgYWdnY29tYmluZWZuID0+ICdiaXRvcicsCi0gIGFnZ3RyYW5zdHlw ZSA9PiAnYml0JyB9LAorICBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywgYWdndHJhbnN0 eXBlID0+ICdiaXQnIH0sCiB7IGFnZ2Zub2lkID0+ICdiaXRfeG9yKGJpdCknLCBhZ2d0cmFuc2Zu ID0+ICdiaXR4b3InLCBhZ2djb21iaW5lZm4gPT4gJ2JpdHhvcicsCi0gIGFnZ3RyYW5zdHlwZSA9 PiAnYml0JyB9LAorICBhZ2dwYXJ0aWFscHVzaGRvd25zYWZlID0+ICd0JywgYWdndHJhbnN0eXBl ID0+ICdiaXQnIH0sCiAKICMgeG1sCiB7IGFnZ2Zub2lkID0+ICd4bWxhZ2cnLCBhZ2d0cmFuc2Zu ID0+ICd4bWxjb25jYXQyJywgYWdndHJhbnN0eXBlID0+ICd4bWwnIH0sCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19hZ2dyZWdhdGUuaAppbmRleCA0OTBmNjQ1NDY5Li44Mzk0MjFjNGRjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYWdncmVnYXRlLmgKQEAgLTU1LDYgKzU1LDEzIEBAIENBVEFMT0cocGdfYWdncmVnYXRl LDI2MDAsQWdncmVnYXRlUmVsYXRpb25JZCkKIAkvKiBmdW5jdGlvbiB0byBjb252ZXJ0IGJ5dGVh IHRvIHRyYW5zdHlwZSAoMCBpZiBub25lKSAqLwogCXJlZ3Byb2MJCWFnZ2Rlc2VyaWFsZm4gQktJ X0RFRkFVTFQoLSkgQktJX0xPT0tVUF9PUFQocGdfcHJvYyk7CiAKKwkvKiB0cnVlIGlmIHBhcnRp YWwgYWdncmVnYXRlIGlzIGZpbmUgdG8gcHVzaCBkb3duICovCisJYm9vbAkJYWdncGFydGlhbHB1 c2hkb3duc2FmZSBCS0lfREVGQVVMVChmKTsKKworCS8qIGZ1bmN0aW9uIHRvIGNoZWNrIHZhbGlk aXR5IG9mIGFnZ3JlZ2F0ZSdzIHRyYW5zaXRpb24gKHN0YXRlKQorCSAgIGRhdGEgYW5kIHRvIGNv bnZlcnQgaXQgZnJvbSBzdGFuZGFyZCBmb3JtYXQgdG8gbG9jYWwgZm9ybWF0ICgwIGlmIG5vbmUp ICovCisJcmVncHJvYwkJYWdncGFydGlhbGltcG9ydGZuIEJLSV9ERUZBVUxUKC0pIEJLSV9MT09L VVBfT1BUKHBnX3Byb2MpOworCiAJLyogZm9yd2FyZCBmdW5jdGlvbiBmb3IgbW92aW5nLWFnZ3Jl Z2F0ZSBtb2RlICgwIGlmIG5vbmUpICovCiAJcmVncHJvYwkJYWdnbXRyYW5zZm4gQktJX0RFRkFV TFQoLSkgQktJX0xPT0tVUF9PUFQocGdfcHJvYyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cmlu ZGV4IDZhNTQ3NmQzYzQuLmRiOGMyOTNiN2MgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt NDk2OSw2ICs0OTY5LDkgQEAKIHsgb2lkID0+ICcxOTY0JywgZGVzY3IgPT4gJ2FnZ3JlZ2F0ZSBm aW5hbCBmdW5jdGlvbicsCiAgIHByb25hbWUgPT4gJ2ludDhfYXZnJywgcHJvcmV0dHlwZSA9PiAn bnVtZXJpYycsIHByb2FyZ3R5cGVzID0+ICdfaW50OCcsCiAgIHByb3NyYyA9PiAnaW50OF9hdmcn IH0sCit7IG9pZCA9PiAnNjQwMCcsIGRlc2NyID0+ICdhZ2dyZWdhdGUgaW1wb3J0IGZ1bmN0aW9u JywKKyAgcHJvbmFtZSA9PiAnaW50NF9hdmdfaW1wb3J0JywgcHJvcmV0dHlwZSA9PiAnX2ludDgn LAorICBwcm9hcmd0eXBlcyA9PiAnX2ludDgnLCBwcm9zcmMgPT4gJ2ludDRfYXZnX2ltcG9ydCcg fSwKIHsgb2lkID0+ICczNTcyJywgZGVzY3IgPT4gJ2FnZ3JlZ2F0ZSBmaW5hbCBmdW5jdGlvbics CiAgIHByb25hbWUgPT4gJ2ludDJpbnQ0X3N1bScsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9h cmd0eXBlcyA9PiAnX2ludDgnLAogICBwcm9zcmMgPT4gJ2ludDJpbnQ0X3N1bScgfSwKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVBZ2cuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL25vZGVBZ2cuaAppbmRleCA2ODQ3NzlhNmEzLi4wNzkzNjBjMTUzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9leGVjdXRvci9ub2RlQWdnLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv bm9kZUFnZy5oCkBAIC0yMDYsNiArMjA2LDE1IEBAIHR5cGVkZWYgc3RydWN0IEFnZ1N0YXRlUGVy QWdnRGF0YQogCSAqLwogCUZtZ3JJbmZvCWZpbmFsZm47CiAKKwkvKiBPcHRpb25hbCBPaWQgb2Yg c2VyaWFsIGZ1bmN0aW9uIChtYXkgYmUgSW52YWxpZE9pZCkgKi8KKwlPaWQJCQlzZXJpYWxmbl9v aWQ7CisKKwkvKgorCSAqIGZtZ3IgbG9va3VwIGRhdGEgZm9yIHNlcmlhbCBmdW5jdGlvbiAtLS0g b25seSB2YWxpZCB3aGVuIHNlcmlhbGZuX29pZCBpcworCSAqIG5vdCBJbnZhbGlkT2lkLgorCSAq LworCUZtZ3JJbmZvCXNlcmlhbGZuOworCiAJLyoKIAkgKiBOdW1iZXIgb2YgYXJndW1lbnRzIHRv IHBhc3MgdG8gdGhlIGZpbmFsZm4uICBUaGlzIGlzIGFsd2F5cyBhdCBsZWFzdCAxCiAJICogKHRo ZSB0cmFuc2l0aW9uIHN0YXRlIHZhbHVlKSBwbHVzIGFueSBvcmRlcmVkLXNldCBkaXJlY3QgYXJn cy4gSWYgdGhlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggODVhNjJiNTM4ZS4uOWUzMjUzMTY4 MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDMxLDYgKzQzMSw3IEBAIHR5cGVkZWYgc3Ry dWN0IEZ1bmNDYWxsCiAJYm9vbAkJYWdnX3dpdGhpbl9ncm91cDsJLyogT1JERVIgQlkgYXBwZWFy ZWQgaW4gV0lUSElOIEdST1VQICovCiAJYm9vbAkJYWdnX3N0YXI7CQkvKiBhcmd1bWVudCB3YXMg cmVhbGx5ICcqJyAqLwogCWJvb2wJCWFnZ19kaXN0aW5jdDsJLyogYXJndW1lbnRzIHdlcmUgbGFi ZWxlZCBESVNUSU5DVCAqLworCWJvb2wJCWFnZ19wYXJ0aWFsOwkvKiBhcmd1bWVudHMgd2VyZSBs YWJlbGVkIFBBUlRJQUxfQUdHUkVHQVRFICovCiAJYm9vbAkJZnVuY192YXJpYWRpYzsJLyogbGFz dCBhcmd1bWVudCB3YXMgbGFiZWxlZCBWQVJJQURJQyAqLwogCUNvZXJjaW9uRm9ybSBmdW5jZm9y bWF0OwkvKiBob3cgdG8gZGlzcGxheSB0aGlzIG5vZGUgKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsJ CS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o CmluZGV4IDJiYTI5N2MxMTcuLmJhMTY0YjM5Y2MgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0z Mjg0LDYgKzMyODQsOSBAQCB0eXBlZGVmIGVudW0KICAqIGhhdmluZ1F1YWwgZ2l2ZXMgbGlzdCBv ZiBxdWFscyB0byBiZSBhcHBsaWVkIGFmdGVyIGFnZ3JlZ2F0aW9uLgogICogdGFyZ2V0TGlzdCBn aXZlcyBsaXN0IG9mIGNvbHVtbnMgdG8gYmUgcHJvamVjdGVkLgogICogcGF0eXBlIGlzIHRoZSB0 eXBlIG9mIHBhcnRpdGlvbndpc2UgYWdncmVnYXRpb24gdGhhdCBpcyBiZWluZyBwZXJmb3JtZWQu CisgKiBncm91cENsYXVzZVBhcnRpYWwgaXMgTGlzdCBvZiBTb3J0R3JvdXBDbGF1c2VzIGZvciBw YXJ0aWFsIGFnZ3JlZ2F0ZQorICogCQlwdXNoZG93biBieSBGRFcKKyAqIHBhcnRpYWxfdGFyZ2V0 IGlzIFBhdGhUYXJnZXQgZm9yIHBhcnRpYWwgYWdncmVnYXRlIHB1c2hkb3duIGJ5IEZEVwogICov CiB0eXBlZGVmIHN0cnVjdAogewpAQCAtMzI5OCw2ICszMzAxLDggQEAgdHlwZWRlZiBzdHJ1Y3QK IAlOb2RlCSAgICpoYXZpbmdRdWFsOwogCUxpc3QJICAgKnRhcmdldExpc3Q7CiAJUGFydGl0aW9u d2lzZUFnZ3JlZ2F0ZVR5cGUgcGF0eXBlOworCUxpc3QJICAgKmdyb3VwQ2xhdXNlUGFydGlhbDsK KwlQYXRoVGFyZ2V0ICpwYXJ0aWFsX3RhcmdldDsKIH0gR3JvdXBQYXRoRXh0cmFEYXRhOwogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA0ODMwZWZjNTczLi45MGIyMjM0YjQyIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wcmltbm9kZXMuaApAQCAtNDczLDYgKzQ3Myw5IEBAIHR5cGVkZWYgc3RydWN0IEFnZ3JlZgog CS8qIERJU1RJTkNUIChsaXN0IG9mIFNvcnRHcm91cENsYXVzZSkgKi8KIAlMaXN0CSAgICphZ2dk aXN0aW5jdDsKIAorCS8qIHRydWUgaWYgdGhlcmUgaXMgUEFSVElBTF9BR0dSRUdBVEUga2V5d29y ZCAqLworCWJvb2wgICAgICAgIGFnZ19wYXJ0aWFsOworCiAJLyogRklMVEVSIGV4cHJlc3Npb24s IGlmIGFueSAqLwogCUV4cHIJICAgKmFnZ2ZpbHRlcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGY3 ZmU4MzRjZjQuLjRlMDFiYWM4ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTMzNCw2ICszMzQsNyBA QCBQR19LRVlXT1JEKCJwYXJhbGxlbCIsIFBBUkFMTEVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXJhbWV0ZXIiLCBQQVJBTUVURVIsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnNlciIsIFBBUlNFUiwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFydGlhbCIsIFBBUlRJQUws IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInBhcnRpYWxfYWdn cmVnYXRlIiwgUEFSVElBTF9BR0dSRUdBVEUsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJwYXJ0aXRpb24iLCBQQVJUSVRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnRpdGlvbnMiLCBQQVJUSVRJT05TLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzaW5nIiwgUEFTU0lORywg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX2FnZy5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2FnZy5oCmluZGV4 IDRkZjliMzdlNmQuLjU4Y2JhZDc1MjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9hZ2cuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfYWdnLmgKQEAgLTE3LDcg KzE3LDcgQEAKIAogZXh0ZXJuIHZvaWQgdHJhbnNmb3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0YXRl ICpwc3RhdGUsIEFnZ3JlZiAqYWdnLAogCQkJCQkJCQkgICBMaXN0ICphcmdzLCBMaXN0ICphZ2dv cmRlciwKLQkJCQkJCQkJICAgYm9vbCBhZ2dfZGlzdGluY3QpOworCQkJCQkJCQkgICBib29sIGFn Z19kaXN0aW5jdCwgYm9vbCBhZ2dfcGFydGlhbCk7CiAKIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1H cm91cGluZ0Z1bmMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBHcm91cGluZ0Z1bmMgKnApOwogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDIxNWViODk5YmUuLmRhMGNkODFj MDggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBAIC0xNDUsNiArMTQ1 LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfYWdncmVnYXRlIHthZ2dmaW5hbGZufSA9PiBwZ19w cm9jIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19hZ2dyZWdhdGUge2FnZ2NvbWJpbmVmbn0g PT4gcGdfcHJvYyB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYWdncmVnYXRlIHthZ2dzZXJp YWxmbn0gPT4gcGdfcHJvYyB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYWdncmVnYXRlIHth Z2dkZXNlcmlhbGZufSA9PiBwZ19wcm9jIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19hZ2dy ZWdhdGUge2FnZ3BhcnRpYWxpbXBvcnRmbn0gPT4gcGdfcHJvYyB7b2lkfQogTk9USUNFOiAgY2hl Y2tpbmcgcGdfYWdncmVnYXRlIHthZ2dtdHJhbnNmbn0gPT4gcGdfcHJvYyB7b2lkfQogTk9USUNF OiAgY2hlY2tpbmcgcGdfYWdncmVnYXRlIHthZ2dtaW52dHJhbnNmbn0gPT4gcGdfcHJvYyB7b2lk fQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYWdncmVnYXRlIHthZ2dtZmluYWxmbn0gPT4gcGdfcHJv YyB7b2lkfQotLSAKMi4zMS4xCgo= --_003_TY2PR01MB383585CACD74F2106A0563C195CB2TY2PR01MB3835jpnp_ Content-Type: application/octet-stream; name="0002-POC-Partial-aggregate-pushdown-internal-transtype.patch" Content-Description: 0002-POC-Partial-aggregate-pushdown-internal-transtype.patch Content-Disposition: attachment; filename="0002-POC-Partial-aggregate-pushdown-internal-transtype.patch"; size=41278; creation-date="Sun, 23 Jun 2024 07:38:00 GMT"; modification-date="Sun, 23 Jun 2024 08:23:32 GMT" Content-Transfer-Encoding: base64 RnJvbSA0OWFmNGZiMGM0MTBiYzk2OTc0MWRlOTVlM2E2N2UwMjk0MjczZjk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZdWtpIEZ1amlpIDxGdWppaS5ZdWtpQGRmLk1pdHN1YmlzaGlF bGVjdHJpYy5jby5qcD4KRGF0ZTogRnJpLCAyMSBKdW4gMjAyNCAwOTowMDoxNiArMDkwMApTdWJq ZWN0OiBbUEFUQ0ggMi8yXSBQT0MgUGFydGlhbCBhZ2dyZWdhdGUgcHVzaGRvd247IGludGVybmFs IHRyYW5zdHlwZQoKVGhpcyBpcyBhIFBPQyBwYXRjaC4KQWRkIHRoZSBjYXNlcyBpbiB0aGF0IHRo ZSB0cmFuc3R5cGUgaXMgaW50ZXJuYWwgYW5kIG5vdCBwc2V1ZG8gdHlwZS4KU28gZmFyLCBvbmx5 IHN1cHBvcnQgYXZnKGludDgpLgpUaGVyZSBhcmUgdGhlIGZvbGxvd2luZyB0YXNrcyByZW1haW5p bmcuCiAgMS4gQWRkIHN1ZmZpY2llbnQgZG9jdW1lbnRzIGFuZCBjb21tZW50cyBhbmQgdGVzdHMu CiAgMi4gU3VwcG9ydCBvdGhlciBidWlsdC1pbiBhZ2dyZWdhdGUgZnVuY3Rpb25zIGxpa2Ugc3Vt LCBhdmcsIGNvdW50LgogIDMuIFN1cHBvcnQgdXNlci1kZWZpbmVkIGFnZ3JlZ2F0ZSBmdW5jdGlv bnMuCi0tLQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwg IDI5ICsrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYyAgICAgICAgICAgICAgICB8 ICA3NiArKysrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAg ICAgICAgIHwgIDQzICsrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYyAg ICAgICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgICAgICAg ICAgICAgICB8IDEyNiArKysrKysrKysrKysrKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YWdncmVnYXRlLmRhdCAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Fn Z3JlZ2F0ZS5oICAgICAgICAgICAgfCAgIDQgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdCAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVBZ2cu aCAgICAgICAgICAgICAgICB8ICAgOSArKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2FnZy5o ICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0ICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5p dHkub3V0ICAgICAgfCAgIDcgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDI4NCBpbnNlcnRpb25zKCsp LCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBl Y3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dAppbmRleCA0YmE5NmIyODBlLi4wZWJhYjg2NjVkIDEwMDY0NAotLS0gYS9j b250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTEwNTA3LDIxICsx MDUwNywyNCBAQCBTRUxFQ1QKIAkvKiBUaGUgY2FzZXMgdGhhdCBkb24ndCByZXF1aXJlIGltcG9y dCBvciBleHBvcnQgZnVuY3Rpb25zICovCiAJYXZnKGI6OmludDgpCiAgIEZST00gcGFnZ190YWIg V0hFUkUgY19zZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSBBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBG aW5hbGl6ZSBBZ2dyZWdhdGUKICAgIE91dHB1dDogYml0X2FuZChwYWdnX3RhYi5jX2JpdCksIGJp dF9hbmQocGFnZ190YWIuY18xb3IzaW50MiksIGJpdF9hbmQocGFnZ190YWIuY18xb3IzaW50NCks IGJpdF9hbmQocGFnZ190YWIuY18xb3IzaW50OCksIGJpdF9vcihwYWdnX3RhYi5jX2JpdCksIGJp dF9vcihwYWdnX3RhYi5jXzFvcjNpbnQyKSwgYml0X29yKHBhZ2dfdGFiLmNfMW9yM2ludDQpLCBi aXRfb3IocGFnZ190YWIuY18xb3IzaW50OCksIGJpdF94b3IocGFnZ190YWIuY19iaXQpLCBiaXRf eG9yKHBhZ2dfdGFiLmNfMW9yM2ludDIpLCBiaXRfeG9yKHBhZ2dfdGFiLmNfMW9yM2ludDQpLCBi aXRfeG9yKHBhZ2dfdGFiLmNfMW9yM2ludDgpLCBib29sX2FuZChwYWdnX3RhYi5jX2Jvb2wpLCBi b29sX29yKHBhZ2dfdGFiLmNfYm9vbCksIGV2ZXJ5KHBhZ2dfdGFiLmNfYm9vbCksIG1heChwYWdn X3RhYi5jX2ludDRhcnJheSksIG1heChwYWdnX3RhYi5jX2VudW0pLCBtYXgoKHBhZ2dfdGFiLmNf MWMpOjpjaGFyYWN0ZXIoMSkpLCBtYXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiLmIp KSwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWIuYik6OmJpZ2ludCkpLCBtYXgoKHBh Z2dfdGFiLmIpOjpyZWFsKSwgbWF4KChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIG1h eCgocGFnZ190YWIuYik6OnNtYWxsaW50KSwgbWF4KHBhZ2dfdGFiLmIpLCBtYXgoKHBhZ2dfdGFi LmIpOjpiaWdpbnQpLCBtYXgocGFnZ190YWIuY19pbnRlcnZhbCksIG1heChwYWdnX3RhYi5jX21v bmV5KSwgbWF4KChwYWdnX3RhYi5iKTo6bnVtZXJpYyksIG1heCgocGFnZ190YWIuYik6Om9pZCks IG1heChwYWdnX3RhYi5jX3BnX2xzbiksIG1heChwYWdnX3RhYi5jX3RpZCksIG1heChwYWdnX3Rh Yi5jXzFjKSwgbWF4KHBhZ2dfdGFiLmNfdGltZSksIG1heChwYWdnX3RhYi5jX3RpbWV0eiksIG1h eChwYWdnX3RhYi5jX3RpbWVzdGFtcCksIG1heChwYWdnX3RhYi5jX3RpbWVzdGFtcHR6KSwgbWF4 KHBhZ2dfdGFiLmNfeGlkOCksIG1pbihwYWdnX3RhYi5jX2ludDRhcnJheSksIG1pbihwYWdnX3Rh Yi5jX2VudW0pLCBtaW4oKHBhZ2dfdGFiLmNfMWMpOjpjaGFyYWN0ZXIoMSkpLCBtaW4oKCcwMS0w MS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiLmIpKSwgbWluKCgnMC4wLjAuMCc6OmluZXQgKyAocGFn Z190YWIuYik6OmJpZ2ludCkpLCBtaW4oKHBhZ2dfdGFiLmIpOjpyZWFsKSwgbWluKChwYWdnX3Rh Yi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIG1pbigocGFnZ190YWIuYik6OnNtYWxsaW50KSwgbWlu KHBhZ2dfdGFiLmIpLCBtaW4oKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBtaW4ocGFnZ190YWIuY19p bnRlcnZhbCksIG1pbihwYWdnX3RhYi5jX21vbmV5KSwgbWluKChwYWdnX3RhYi5iKTo6bnVtZXJp YyksIG1pbigocGFnZ190YWIuYik6Om9pZCksIG1pbihwYWdnX3RhYi5jX3BnX2xzbiksIG1pbihw YWdnX3RhYi5jX3RpZCksIG1pbihwYWdnX3RhYi5jXzFjKSwgbWluKHBhZ2dfdGFiLmNfdGltZSks IG1pbihwYWdnX3RhYi5jX3RpbWV0eiksIG1pbihwYWdnX3RhYi5jX3RpbWVzdGFtcCksIG1pbihw YWdnX3RhYi5jX3RpbWVzdGFtcHR6KSwgbWluKHBhZ2dfdGFiLmNfeGlkOCksIGF2ZyhwYWdnX3Rh Yi5iKSwgYXZnKChwYWdnX3RhYi5iKTo6YmlnaW50KQogICAgLT4gIEFwcGVuZAotICAgICAgICAg LT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiXzEKLSAgICAg ICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5jX2JpdCwgcGFnZ190YWJfMS5jXzFvcjNpbnQy LCBwYWdnX3RhYl8xLmNfMW9yM2ludDQsIHBhZ2dfdGFiXzEuY18xb3IzaW50OCwgcGFnZ190YWJf MS5jX2Jvb2wsIHBhZ2dfdGFiXzEuY19pbnQ0YXJyYXksIHBhZ2dfdGFiXzEuY19lbnVtLCBwYWdn X3RhYl8xLmNfMWMsIHBhZ2dfdGFiXzEuYiwgcGFnZ190YWJfMS5jX2ludGVydmFsLCBwYWdnX3Rh Yl8xLmNfbW9uZXksIHBhZ2dfdGFiXzEuY19wZ19sc24sIHBhZ2dfdGFiXzEuY190aWQsIHBhZ2df dGFiXzEuY190aW1lLCBwYWdnX3RhYl8xLmNfdGltZXR6LCBwYWdnX3RhYl8xLmNfdGltZXN0YW1w LCBwYWdnX3RhYl8xLmNfdGltZXN0YW1wdHosIHBhZ2dfdGFiXzEuY194aWQ4Ci0gICAgICAgICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgY19pbnQ0YXJyYXksIGNfaW50ZXJ2YWwsIGNfbW9u ZXksIGNfMWMsIGNfYml0LCBjXzFvcjNpbnQyLCBjXzFvcjNpbnQ0LCBjXzFvcjNpbnQ4LCBjX2Jv b2wsIGNfZW51bSwgY19wZ19sc24sIGNfdGlkLCBjX3RpbWUsIGNfdGltZXR6LCBjX3RpbWVzdGFt cCwgY190aW1lc3RhbXB0eiwgY194aWQ4IEZST00gcHVibGljLnBhZ2dfdGFiX3AxIFdIRVJFICgo Y19zZXJpYWwgPj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9IDMwKSkKLSAgICAgICAgIC0+ICBGb3Jl aWduIFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCi0gICAgICAgICAgICAg ICBPdXRwdXQ6IHBhZ2dfdGFiXzIuY19iaXQsIHBhZ2dfdGFiXzIuY18xb3IzaW50MiwgcGFnZ190 YWJfMi5jXzFvcjNpbnQ0LCBwYWdnX3RhYl8yLmNfMW9yM2ludDgsIHBhZ2dfdGFiXzIuY19ib29s LCBwYWdnX3RhYl8yLmNfaW50NGFycmF5LCBwYWdnX3RhYl8yLmNfZW51bSwgcGFnZ190YWJfMi5j XzFjLCBwYWdnX3RhYl8yLmIsIHBhZ2dfdGFiXzIuY19pbnRlcnZhbCwgcGFnZ190YWJfMi5jX21v bmV5LCBwYWdnX3RhYl8yLmNfcGdfbHNuLCBwYWdnX3RhYl8yLmNfdGlkLCBwYWdnX3RhYl8yLmNf dGltZSwgcGFnZ190YWJfMi5jX3RpbWV0eiwgcGFnZ190YWJfMi5jX3RpbWVzdGFtcCwgcGFnZ190 YWJfMi5jX3RpbWVzdGFtcHR6LCBwYWdnX3RhYl8yLmNfeGlkOAotICAgICAgICAgICAgICAgUmVt b3RlIFNRTDogU0VMRUNUIGIsIGNfaW50NGFycmF5LCBjX2ludGVydmFsLCBjX21vbmV5LCBjXzFj LCBjX2JpdCwgY18xb3IzaW50MiwgY18xb3IzaW50NCwgY18xb3IzaW50OCwgY19ib29sLCBjX2Vu dW0sIGNfcGdfbHNuLCBjX3RpZCwgY190aW1lLCBjX3RpbWV0eiwgY190aW1lc3RhbXAsIGNfdGlt ZXN0YW1wdHosIGNfeGlkOCBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBXSEVSRSAoKGNfc2VyaWFs ID49IDEpKSBBTkQgKChjX3NlcmlhbCA8PSAzMCkpCi0gICAgICAgICAtPiAgRm9yZWlnbiBTY2Fu IG9uIHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMwotICAgICAgICAgICAgICAgT3V0cHV0 OiBwYWdnX3RhYl8zLmNfYml0LCBwYWdnX3RhYl8zLmNfMW9yM2ludDIsIHBhZ2dfdGFiXzMuY18x b3IzaW50NCwgcGFnZ190YWJfMy5jXzFvcjNpbnQ4LCBwYWdnX3RhYl8zLmNfYm9vbCwgcGFnZ190 YWJfMy5jX2ludDRhcnJheSwgcGFnZ190YWJfMy5jX2VudW0sIHBhZ2dfdGFiXzMuY18xYywgcGFn Z190YWJfMy5iLCBwYWdnX3RhYl8zLmNfaW50ZXJ2YWwsIHBhZ2dfdGFiXzMuY19tb25leSwgcGFn Z190YWJfMy5jX3BnX2xzbiwgcGFnZ190YWJfMy5jX3RpZCwgcGFnZ190YWJfMy5jX3RpbWUsIHBh Z2dfdGFiXzMuY190aW1ldHosIHBhZ2dfdGFiXzMuY190aW1lc3RhbXAsIHBhZ2dfdGFiXzMuY190 aW1lc3RhbXB0eiwgcGFnZ190YWJfMy5jX3hpZDgKLSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6 IFNFTEVDVCBiLCBjX2ludDRhcnJheSwgY19pbnRlcnZhbCwgY19tb25leSwgY18xYywgY19iaXQs IGNfMW9yM2ludDIsIGNfMW9yM2ludDQsIGNfMW9yM2ludDgsIGNfYm9vbCwgY19lbnVtLCBjX3Bn X2xzbiwgY190aWQsIGNfdGltZSwgY190aW1ldHosIGNfdGltZXN0YW1wLCBjX3RpbWVzdGFtcHR6 LCBjX3hpZDggRlJPTSBwdWJsaWMucGFnZ190YWJfcDMgV0hFUkUgKChjX3NlcmlhbCA+PSAxKSkg QU5EICgoY19zZXJpYWwgPD0gMzApKQotKDEyIHJvd3MpCisgICAgICAgICAtPiAgRm9yZWlnbiBT Y2FuCisgICAgICAgICAgICAgICBPdXRwdXQ6IChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWIuY19i aXQpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYi5jXzFvcjNpbnQyKSksIChQQVJUSUFMIGJp dF9hbmQocGFnZ190YWIuY18xb3IzaW50NCkpLCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiLmNf MW9yM2ludDgpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiLmNfYml0KSksIChQQVJUSUFMIGJp dF9vcihwYWdnX3RhYi5jXzFvcjNpbnQyKSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYi5jXzFv cjNpbnQ0KSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYi5jXzFvcjNpbnQ4KSksIChQQVJUSUFM IGJpdF94b3IocGFnZ190YWIuY19iaXQpKSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYi5jXzFv cjNpbnQyKSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWIuY18xb3IzaW50NCkpLCAoUEFSVElB TCBiaXRfeG9yKHBhZ2dfdGFiLmNfMW9yM2ludDgpKSwgKFBBUlRJQUwgYm9vbF9hbmQocGFnZ190 YWIuY19ib29sKSksIChQQVJUSUFMIGJvb2xfb3IocGFnZ190YWIuY19ib29sKSksIChQQVJUSUFM IGV2ZXJ5KHBhZ2dfdGFiLmNfYm9vbCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuY19pbnQ0YXJy YXkpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfZW51bSkpLCAoUEFSVElBTCBtYXgoKHBhZ2df dGFiLmNfMWMpOjpjaGFyYWN0ZXIoMSkpKSwgKFBBUlRJQUwgbWF4KCgnMDEtMDEtMjAwMCc6OmRh dGUgKyBwYWdnX3RhYi5iKSkpLCAoUEFSVElBTCBtYXgoKCcwLjAuMC4wJzo6aW5ldCArIChwYWdn X3RhYi5iKTo6YmlnaW50KSkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQ QVJUSUFMIG1heCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgbWF4 KChwYWdnX3RhYi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmIpKSwgKFBB UlRJQUwgbWF4KChwYWdnX3RhYi5iKTo6YmlnaW50KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5j X2ludGVydmFsKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX21vbmV5KSksIChQQVJUSUFMIG1h eCgocGFnZ190YWIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYi5iKTo6b2lk KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3BnX2xzbikpLCAoUEFSVElBTCBtYXgocGFnZ190 YWIuY190aWQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfMWMpKSwgKFBBUlRJQUwgbWF4KHBh Z2dfdGFiLmNfdGltZSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuY190aW1ldHopKSwgKFBBUlRJ QUwgbWF4KHBhZ2dfdGFiLmNfdGltZXN0YW1wKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3Rp bWVzdGFtcHR6KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3hpZDgpKSwgKFBBUlRJQUwgbWlu KHBhZ2dfdGFiLmNfaW50NGFycmF5KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX2VudW0pKSwg KFBBUlRJQUwgbWluKChwYWdnX3RhYi5jXzFjKTo6Y2hhcmFjdGVyKDEpKSksIChQQVJUSUFMIG1p bigoJzAxLTAxLTIwMDAnOjpkYXRlICsgcGFnZ190YWIuYikpKSwgKFBBUlRJQUwgbWluKCgnMC4w LjAuMCc6OmluZXQgKyAocGFnZ190YWIuYik6OmJpZ2ludCkpKSwgKFBBUlRJQUwgbWluKChwYWdn X3RhYi5iKTo6cmVhbCkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lz aW9uKSksIChQQVJUSUFMIG1pbigocGFnZ190YWIuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIG1p bihwYWdnX3RhYi5iKSksIChQQVJUSUFMIG1pbigocGFnZ190YWIuYik6OmJpZ2ludCkpLCAoUEFS VElBTCBtaW4ocGFnZ190YWIuY19pbnRlcnZhbCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY19t b25leSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiLmIpOjpudW1lcmljKSksIChQQVJUSUFMIG1p bigocGFnZ190YWIuYik6Om9pZCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY19wZ19sc24pKSwg KFBBUlRJQUwgbWluKHBhZ2dfdGFiLmNfdGlkKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jXzFj KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX3RpbWUpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFi LmNfdGltZXR6KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX3RpbWVzdGFtcCkpLCAoUEFSVElB TCBtaW4ocGFnZ190YWIuY190aW1lc3RhbXB0eikpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY194 aWQ4KSksIChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5iKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWIu Yik6OmJpZ2ludCkpCisgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVi bGljLmZwYWdnX3RhYl9wMSBwYWdnX3RhYikKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNF TEVDVCBiaXRfYW5kKGNfYml0KSwgYml0X2FuZChjXzFvcjNpbnQyKSwgYml0X2FuZChjXzFvcjNp bnQ0KSwgYml0X2FuZChjXzFvcjNpbnQ4KSwgYml0X29yKGNfYml0KSwgYml0X29yKGNfMW9yM2lu dDIpLCBiaXRfb3IoY18xb3IzaW50NCksIGJpdF9vcihjXzFvcjNpbnQ4KSwgYml0X3hvcihjX2Jp dCksIGJpdF94b3IoY18xb3IzaW50MiksIGJpdF94b3IoY18xb3IzaW50NCksIGJpdF94b3IoY18x b3IzaW50OCksIGJvb2xfYW5kKGNfYm9vbCksIGJvb2xfb3IoY19ib29sKSwgZXZlcnkoY19ib29s KSwgbWF4KGNfaW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1heChjXzFjOjpjaGFyYWN0ZXIoMSkp LCBtYXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIGIpKSwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyBi KSksIG1heChiOjpyZWFsKSwgbWF4KGI6OmRvdWJsZSBwcmVjaXNpb24pLCBtYXgoYjo6c21hbGxp bnQpLCBtYXgoYiksIG1heChiOjpiaWdpbnQpLCBtYXgoY19pbnRlcnZhbCksIG1heChjX21vbmV5 KSwgbWF4KGI6Om51bWVyaWMpLCBtYXgoYjo6b2lkKSwgbWF4KGNfcGdfbHNuKSwgbWF4KGNfdGlk KSwgbWF4KGNfMWMpLCBtYXgoY190aW1lKSwgbWF4KGNfdGltZXR6KSwgbWF4KGNfdGltZXN0YW1w KSwgbWF4KGNfdGltZXN0YW1wdHopLCBtYXgoY194aWQ4KSwgbWluKGNfaW50NGFycmF5KSwgbWlu KGNfZW51bSksIG1pbihjXzFjOjpjaGFyYWN0ZXIoMSkpLCBtaW4oKCcwMS0wMS0yMDAwJzo6ZGF0 ZSArIGIpKSwgbWluKCgnMC4wLjAuMCc6OmluZXQgKyBiKSksIG1pbihiOjpyZWFsKSwgbWluKGI6 OmRvdWJsZSBwcmVjaXNpb24pLCBtaW4oYjo6c21hbGxpbnQpLCBtaW4oYiksIG1pbihiOjpiaWdp bnQpLCBtaW4oY19pbnRlcnZhbCksIG1pbihjX21vbmV5KSwgbWluKGI6Om51bWVyaWMpLCBtaW4o Yjo6b2lkKSwgbWluKGNfcGdfbHNuKSwgbWluKGNfdGlkKSwgbWluKGNfMWMpLCBtaW4oY190aW1l KSwgbWluKGNfdGltZXR6KSwgbWluKGNfdGltZXN0YW1wKSwgbWluKGNfdGltZXN0YW1wdHopLCBt aW4oY194aWQ4KSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBhdmcoUEFSVElBTF9BR0dSRUdB VEUgYjo6YmlnaW50KSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMSBXSEVSRSAoKGNfc2VyaWFsID49 IDEpKSBBTkQgKChjX3NlcmlhbCA8PSAzMCkpCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisg ICAgICAgICAgICAgICBPdXRwdXQ6IChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWJfMS5jX2JpdCkp LCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiXzEuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRf YW5kKHBhZ2dfdGFiXzEuY18xb3IzaW50NCkpLCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiXzEu Y18xb3IzaW50OCkpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWJfMS5jX2JpdCkpLCAoUEFSVElB TCBiaXRfb3IocGFnZ190YWJfMS5jXzFvcjNpbnQyKSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3Rh Yl8xLmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiXzEuY18xb3IzaW50OCkp LCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFiXzEuY19iaXQpKSwgKFBBUlRJQUwgYml0X3hvcihw YWdnX3RhYl8xLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYl8xLmNfMW9y M2ludDQpKSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYl8xLmNfMW9yM2ludDgpKSwgKFBBUlRJ QUwgYm9vbF9hbmQocGFnZ190YWJfMS5jX2Jvb2wpKSwgKFBBUlRJQUwgYm9vbF9vcihwYWdnX3Rh Yl8xLmNfYm9vbCkpLCAoUEFSVElBTCBldmVyeShwYWdnX3RhYl8xLmNfYm9vbCkpLCAoUEFSVElB TCBtYXgocGFnZ190YWJfMS5jX2ludDRhcnJheSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5j X2VudW0pKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8xLmNfMWMpOjpjaGFyYWN0ZXIoMSkpKSwg KFBBUlRJQUwgbWF4KCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBwYWdnX3RhYl8xLmIpKSksIChQQVJU SUFMIG1heCgoJzAuMC4wLjAnOjppbmV0ICsgKHBhZ2dfdGFiXzEuYik6OmJpZ2ludCkpKSwgKFBB UlRJQUwgbWF4KChwYWdnX3RhYl8xLmIpOjpyZWFsKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJf MS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzEuYik6OnNt YWxsaW50KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmIpKSwgKFBBUlRJQUwgbWF4KChwYWdn X3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY19pbnRlcnZhbCkp LCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5jX21vbmV5KSksIChQQVJUSUFMIG1heCgocGFnZ190 YWJfMS5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzEuYik6Om9pZCkpLCAo UEFSVElBTCBtYXgocGFnZ190YWJfMS5jX3BnX2xzbikpLCAoUEFSVElBTCBtYXgocGFnZ190YWJf MS5jX3RpZCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5jXzFjKSksIChQQVJUSUFMIG1heChw YWdnX3RhYl8xLmNfdGltZSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5jX3RpbWV0eikpLCAo UEFSVElBTCBtYXgocGFnZ190YWJfMS5jX3RpbWVzdGFtcCkpLCAoUEFSVElBTCBtYXgocGFnZ190 YWJfMS5jX3RpbWVzdGFtcHR6KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmNfeGlkOCkpLCAo UEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX2ludDRhcnJheSkpLCAoUEFSVElBTCBtaW4ocGFnZ190 YWJfMS5jX2VudW0pKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8xLmNfMWMpOjpjaGFyYWN0ZXIo MSkpKSwgKFBBUlRJQUwgbWluKCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBwYWdnX3RhYl8xLmIpKSks IChQQVJUSUFMIG1pbigoJzAuMC4wLjAnOjppbmV0ICsgKHBhZ2dfdGFiXzEuYik6OmJpZ2ludCkp KSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8xLmIpOjpyZWFsKSksIChQQVJUSUFMIG1pbigocGFn Z190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzEu Yik6OnNtYWxsaW50KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8xLmIpKSwgKFBBUlRJQUwgbWlu KChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY19pbnRl cnZhbCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX21vbmV5KSksIChQQVJUSUFMIG1pbigo cGFnZ190YWJfMS5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzEuYik6Om9p ZCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX3BnX2xzbikpLCAoUEFSVElBTCBtaW4ocGFn Z190YWJfMS5jX3RpZCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jXzFjKSksIChQQVJUSUFM IG1pbihwYWdnX3RhYl8xLmNfdGltZSkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX3RpbWV0 eikpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX3RpbWVzdGFtcCkpLCAoUEFSVElBTCBtaW4o cGFnZ190YWJfMS5jX3RpbWVzdGFtcHR6KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8xLmNfeGlk OCkpLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWJf MS5iKTo6YmlnaW50KSkKKyAgICAgICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChw dWJsaWMuZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzEpCisgICAgICAgICAgICAgICBSZW1vdGUgU1FM OiBTRUxFQ1QgYml0X2FuZChjX2JpdCksIGJpdF9hbmQoY18xb3IzaW50MiksIGJpdF9hbmQoY18x b3IzaW50NCksIGJpdF9hbmQoY18xb3IzaW50OCksIGJpdF9vcihjX2JpdCksIGJpdF9vcihjXzFv cjNpbnQyKSwgYml0X29yKGNfMW9yM2ludDQpLCBiaXRfb3IoY18xb3IzaW50OCksIGJpdF94b3Io Y19iaXQpLCBiaXRfeG9yKGNfMW9yM2ludDIpLCBiaXRfeG9yKGNfMW9yM2ludDQpLCBiaXRfeG9y KGNfMW9yM2ludDgpLCBib29sX2FuZChjX2Jvb2wpLCBib29sX29yKGNfYm9vbCksIGV2ZXJ5KGNf Ym9vbCksIG1heChjX2ludDRhcnJheSksIG1heChjX2VudW0pLCBtYXgoY18xYzo6Y2hhcmFjdGVy KDEpKSwgbWF4KCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBiKSksIG1heCgoJzAuMC4wLjAnOjppbmV0 ICsgYikpLCBtYXgoYjo6cmVhbCksIG1heChiOjpkb3VibGUgcHJlY2lzaW9uKSwgbWF4KGI6OnNt YWxsaW50KSwgbWF4KGIpLCBtYXgoYjo6YmlnaW50KSwgbWF4KGNfaW50ZXJ2YWwpLCBtYXgoY19t b25leSksIG1heChiOjpudW1lcmljKSwgbWF4KGI6Om9pZCksIG1heChjX3BnX2xzbiksIG1heChj X3RpZCksIG1heChjXzFjKSwgbWF4KGNfdGltZSksIG1heChjX3RpbWV0eiksIG1heChjX3RpbWVz dGFtcCksIG1heChjX3RpbWVzdGFtcHR6KSwgbWF4KGNfeGlkOCksIG1pbihjX2ludDRhcnJheSks IG1pbihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcmFjdGVyKDEpKSwgbWluKCgnMDEtMDEtMjAwMCc6 OmRhdGUgKyBiKSksIG1pbigoJzAuMC4wLjAnOjppbmV0ICsgYikpLCBtaW4oYjo6cmVhbCksIG1p bihiOjpkb3VibGUgcHJlY2lzaW9uKSwgbWluKGI6OnNtYWxsaW50KSwgbWluKGIpLCBtaW4oYjo6 YmlnaW50KSwgbWluKGNfaW50ZXJ2YWwpLCBtaW4oY19tb25leSksIG1pbihiOjpudW1lcmljKSwg bWluKGI6Om9pZCksIG1pbihjX3BnX2xzbiksIG1pbihjX3RpZCksIG1pbihjXzFjKSwgbWluKGNf dGltZSksIG1pbihjX3RpbWV0eiksIG1pbihjX3RpbWVzdGFtcCksIG1pbihjX3RpbWVzdGFtcHR6 KSwgbWluKGNfeGlkOCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiKSwgYXZnKFBBUlRJQUxfQUdH UkVHQVRFIGI6OmJpZ2ludCkgRlJPTSBwdWJsaWMucGFnZ190YWJfcDIgV0hFUkUgKChjX3Nlcmlh bCA+PSAxKSkgQU5EICgoY19zZXJpYWwgPD0gMzApKQorICAgICAgICAgLT4gIEZvcmVpZ24gU2Nh bgorICAgICAgICAgICAgICAgT3V0cHV0OiAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiXzIuY19i aXQpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYl8yLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwg Yml0X2FuZChwYWdnX3RhYl8yLmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3Rh Yl8yLmNfMW9yM2ludDgpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiXzIuY19iaXQpKSwgKFBB UlRJQUwgYml0X29yKHBhZ2dfdGFiXzIuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfb3IocGFn Z190YWJfMi5jXzFvcjNpbnQ0KSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYl8yLmNfMW9yM2lu dDgpKSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYl8yLmNfYml0KSksIChQQVJUSUFMIGJpdF94 b3IocGFnZ190YWJfMi5jXzFvcjNpbnQyKSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWJfMi5j XzFvcjNpbnQ0KSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWJfMi5jXzFvcjNpbnQ4KSksIChQ QVJUSUFMIGJvb2xfYW5kKHBhZ2dfdGFiXzIuY19ib29sKSksIChQQVJUSUFMIGJvb2xfb3IocGFn Z190YWJfMi5jX2Jvb2wpKSwgKFBBUlRJQUwgZXZlcnkocGFnZ190YWJfMi5jX2Jvb2wpKSwgKFBB UlRJQUwgbWF4KHBhZ2dfdGFiXzIuY19pbnQ0YXJyYXkpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFi XzIuY19lbnVtKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJfMi5jXzFjKTo6Y2hhcmFjdGVyKDEp KSksIChQQVJUSUFMIG1heCgoJzAxLTAxLTIwMDAnOjpkYXRlICsgcGFnZ190YWJfMi5iKSkpLCAo UEFSVElBTCBtYXgoKCcwLjAuMC4wJzo6aW5ldCArIChwYWdnX3RhYl8yLmIpOjpiaWdpbnQpKSks IChQQVJUSUFMIG1heCgocGFnZ190YWJfMi5iKTo6cmVhbCkpLCAoUEFSVElBTCBtYXgoKHBhZ2df dGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8yLmIp OjpzbWFsbGludCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5iKSksIChQQVJUSUFMIG1heCgo cGFnZ190YWJfMi5iKTo6YmlnaW50KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfaW50ZXJ2 YWwpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuY19tb25leSkpLCAoUEFSVElBTCBtYXgoKHBh Z2dfdGFiXzIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8yLmIpOjpvaWQp KSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuY19wZ19sc24pKSwgKFBBUlRJQUwgbWF4KHBhZ2df dGFiXzIuY190aWQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuY18xYykpLCAoUEFSVElBTCBt YXgocGFnZ190YWJfMi5jX3RpbWUpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuY190aW1ldHop KSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuY190aW1lc3RhbXApKSwgKFBBUlRJQUwgbWF4KHBh Z2dfdGFiXzIuY190aW1lc3RhbXB0eikpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5jX3hpZDgp KSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY19pbnQ0YXJyYXkpKSwgKFBBUlRJQUwgbWluKHBh Z2dfdGFiXzIuY19lbnVtKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJfMi5jXzFjKTo6Y2hhcmFj dGVyKDEpKSksIChQQVJUSUFMIG1pbigoJzAxLTAxLTIwMDAnOjpkYXRlICsgcGFnZ190YWJfMi5i KSkpLCAoUEFSVElBTCBtaW4oKCcwLjAuMC4wJzo6aW5ldCArIChwYWdnX3RhYl8yLmIpOjpiaWdp bnQpKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJfMi5iKTo6cmVhbCkpLCAoUEFSVElBTCBtaW4o KHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgbWluKChwYWdnX3Rh Yl8yLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMi5iKSksIChQQVJUSUFM IG1pbigocGFnZ190YWJfMi5iKTo6YmlnaW50KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNf aW50ZXJ2YWwpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY19tb25leSkpLCAoUEFSVElBTCBt aW4oKHBhZ2dfdGFiXzIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8yLmIp OjpvaWQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY19wZ19sc24pKSwgKFBBUlRJQUwgbWlu KHBhZ2dfdGFiXzIuY190aWQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY18xYykpLCAoUEFS VElBTCBtaW4ocGFnZ190YWJfMi5jX3RpbWUpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY190 aW1ldHopKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY190aW1lc3RhbXApKSwgKFBBUlRJQUwg bWluKHBhZ2dfdGFiXzIuY190aW1lc3RhbXB0eikpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMi5j X3hpZDgpKSwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCBhdmcoKHBhZ2df dGFiXzIuYik6OmJpZ2ludCkpCisgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBv biAocHVibGljLmZwYWdnX3RhYl9wMyBwYWdnX3RhYl8yKQorICAgICAgICAgICAgICAgUmVtb3Rl IFNRTDogU0VMRUNUIGJpdF9hbmQoY19iaXQpLCBiaXRfYW5kKGNfMW9yM2ludDIpLCBiaXRfYW5k KGNfMW9yM2ludDQpLCBiaXRfYW5kKGNfMW9yM2ludDgpLCBiaXRfb3IoY19iaXQpLCBiaXRfb3Io Y18xb3IzaW50MiksIGJpdF9vcihjXzFvcjNpbnQ0KSwgYml0X29yKGNfMW9yM2ludDgpLCBiaXRf eG9yKGNfYml0KSwgYml0X3hvcihjXzFvcjNpbnQyKSwgYml0X3hvcihjXzFvcjNpbnQ0KSwgYml0 X3hvcihjXzFvcjNpbnQ4KSwgYm9vbF9hbmQoY19ib29sKSwgYm9vbF9vcihjX2Jvb2wpLCBldmVy eShjX2Jvb2wpLCBtYXgoY19pbnQ0YXJyYXkpLCBtYXgoY19lbnVtKSwgbWF4KGNfMWM6OmNoYXJh Y3RlcigxKSksIG1heCgoJzAxLTAxLTIwMDAnOjpkYXRlICsgYikpLCBtYXgoKCcwLjAuMC4wJzo6 aW5ldCArIGIpKSwgbWF4KGI6OnJlYWwpLCBtYXgoYjo6ZG91YmxlIHByZWNpc2lvbiksIG1heChi OjpzbWFsbGludCksIG1heChiKSwgbWF4KGI6OmJpZ2ludCksIG1heChjX2ludGVydmFsKSwgbWF4 KGNfbW9uZXkpLCBtYXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19wZ19sc24pLCBt YXgoY190aWQpLCBtYXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHopLCBtYXgoY190 aW1lc3RhbXApLCBtYXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLCBtaW4oY19pbnQ0YXJy YXkpLCBtaW4oY19lbnVtKSwgbWluKGNfMWM6OmNoYXJhY3RlcigxKSksIG1pbigoJzAxLTAxLTIw MDAnOjpkYXRlICsgYikpLCBtaW4oKCcwLjAuMC4wJzo6aW5ldCArIGIpKSwgbWluKGI6OnJlYWwp LCBtaW4oYjo6ZG91YmxlIHByZWNpc2lvbiksIG1pbihiOjpzbWFsbGludCksIG1pbihiKSwgbWlu KGI6OmJpZ2ludCksIG1pbihjX2ludGVydmFsKSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJp YyksIG1pbihiOjpvaWQpLCBtaW4oY19wZ19sc24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1p bihjX3RpbWUpLCBtaW4oY190aW1ldHopLCBtaW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3Rh bXB0eiksIG1pbihjX3hpZDgpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYiksIGF2ZyhQQVJUSUFM X0FHR1JFR0FURSBiOjpiaWdpbnQpIEZST00gcHVibGljLnBhZ2dfdGFiX3AzIFdIRVJFICgoY19z ZXJpYWwgPj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9IDMwKSkKKygxNSByb3dzKQogCiBTRUxFQ1QK IAkvKiBUaGUgY2FzZXMgdGhhdCBkb24ndCByZXF1aXJlIGltcG9ydCBvciBleHBvcnQgZnVuY3Rp b25zICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQWdnLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlQWdnLmMKaW5kZXggNmVkNGM1MDgyNC4uMGVkYzdjZTc4MSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYwpAQCAtMTEyOSw2ICsxMTI5LDQwIEBAIGZpbmFsaXplX2Fn Z3JlZ2F0ZShBZ2dTdGF0ZSAqYWdnc3RhdGUsCiAJCX0KIAkJYWdnc3RhdGUtPmN1cnBlcmFnZyA9 IE5VTEw7CiAJfQorCWVsc2UgaWYgKHBlcmFnZy0+YWdncmVmLT5hZ2dfcGFydGlhbCAmJiBPaWRJ c1ZhbGlkKHBlcmFnZy0+ZXhwb3J0Zm5fb2lkKSkKKwl7CisJCS8qIHNldCB1cCBhZ2dzdGF0ZS0+ Y3VycGVyYWdnIGZvciBBZ2dHZXRBZ2dyZWYoKSAqLworCQlhZ2dzdGF0ZS0+Y3VycGVyYWdnID0g cGVyYWdnOworCisJCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZvLCAmcGVyYWdnLT5l eHBvcnRmbiwgMSwKKwkJCQkJCQkJIEludmFsaWRPaWQsICh2b2lkICopIGFnZ3N0YXRlLCBOVUxM KTsKKworCQkvKiBGaWxsIGluIHRoZSB0cmFuc2l0aW9uIHN0YXRlIHZhbHVlICovCisJCWZjaW5m by0+YXJnc1swXS52YWx1ZSA9CisJCQlNYWtlRXhwYW5kZWRPYmplY3RSZWFkT25seShwZXJncm91 cHN0YXRlLT50cmFuc1ZhbHVlLAorCQkJCQkJCQkJICAgcGVyZ3JvdXBzdGF0ZS0+dHJhbnNWYWx1 ZUlzTnVsbCwKKwkJCQkJCQkJCSAgIHBlcnRyYW5zLT50cmFuc3R5cGVMZW4pOworCQlmY2luZm8t PmFyZ3NbMF0uaXNudWxsID0gcGVyZ3JvdXBzdGF0ZS0+dHJhbnNWYWx1ZUlzTnVsbDsKKwkJYW55 bnVsbCB8PSBwZXJncm91cHN0YXRlLT50cmFuc1ZhbHVlSXNOdWxsOworCisJCWlmIChmY2luZm8t PmZsaW5mby0+Zm5fc3RyaWN0ICYmIGFueW51bGwpCisJCXsKKwkJCS8qIGRvbid0IGNhbGwgYSBz dHJpY3QgZnVuY3Rpb24gd2l0aCBOVUxMIGlucHV0cyAqLworCQkJKnJlc3VsdFZhbCA9IChEYXR1 bSkgMDsKKwkJCSpyZXN1bHRJc051bGwgPSB0cnVlOworCQl9CisJCWVsc2UKKwkJeworCQkJRGF0 dW0JCXJlc3VsdDsKKworCQkJcmVzdWx0ID0gRnVuY3Rpb25DYWxsSW52b2tlKGZjaW5mbyk7CisJ CQkqcmVzdWx0SXNOdWxsID0gZmNpbmZvLT5pc251bGw7CisJCQkqcmVzdWx0VmFsID0gTWFrZUV4 cGFuZGVkT2JqZWN0UmVhZE9ubHkocmVzdWx0LAorCQkJCQkJCQkJCQkJCWZjaW5mby0+aXNudWxs LAorCQkJCQkJCQkJCQkJCXBlcmFnZy0+cmVzdWx0dHlwZUxlbik7CisJCX0KKwkJYWdnc3RhdGUt PmN1cnBlcmFnZyA9IE5VTEw7CisJfQogCWVsc2UKIAl7CiAJCSpyZXN1bHRWYWwgPQpAQCAtMzY2 Nyw3ICszNzAxLDcgQEAgRXhlY0luaXRBZ2coQWdnICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50 IGVmbGFncykKIAkJT2lkCQkJc2VyaWFsZm5fb2lkLAogCQkJCQlkZXNlcmlhbGZuX29pZDsKIAkJ T2lkCQkJYWdnT3duZXI7Ci0JCUV4cHIJICAgKmZpbmFsZm5leHByOworCQlFeHByCSAgICpmaW5h bGZuZXhwciwgKnNlcmlhbGZuZXhwciwgKmV4cG9ydGZuZXhwcjsKIAkJT2lkCQkJYWdndHJhbnN0 eXBlOwogCiAJCS8qIFBsYW5uZXIgc2hvdWxkIGhhdmUgYXNzaWduZWQgYWdncmVnYXRlIHRvIGNv cnJlY3QgbGV2ZWwgKi8KQEAgLTM3MDUsOCArMzczOSwxMCBAQCBFeGVjSW5pdEFnZyhBZ2cgKm5v ZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQlBc3NlcnQoT2lkSXNWYWxpZChhZ2d0 cmFuc3R5cGUpKTsKIAogCQkvKiBGaW5hbCBmdW5jdGlvbiBvbmx5IHJlcXVpcmVkIGlmIHdlJ3Jl IGZpbmFsaXppbmcgdGhlIGFnZ3JlZ2F0ZXMgKi8KLQkJaWYgKERPX0FHR1NQTElUX1NLSVBGSU5B TChhZ2dzdGF0ZS0+YWdnc3BsaXQpKQorCQlpZiAoRE9fQUdHU1BMSVRfU0tJUEZJTkFMKGFnZ3N0 YXRlLT5hZ2dzcGxpdCkpewogCQkJcGVyYWdnLT5maW5hbGZuX29pZCA9IGZpbmFsZm5fb2lkID0g SW52YWxpZE9pZDsKKwkJCXBlcmFnZy0+ZXhwb3J0Zm5fb2lkID0gYWdnZm9ybS0+YWdncGFydGlh bGV4cG9ydGZuOworCQl9CiAJCWVsc2UKIAkJCXBlcmFnZy0+ZmluYWxmbl9vaWQgPSBmaW5hbGZu X29pZCA9IGFnZ2Zvcm0tPmFnZ2ZpbmFsZm47CiAKQEAgLTM4MjQsNiArMzg2MCw0MiBAQCBFeGVj SW5pdEFnZyhBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQkJZm1ncl9p bmZvKGZpbmFsZm5fb2lkLCAmcGVyYWdnLT5maW5hbGZuKTsKIAkJCWZtZ3JfaW5mb19zZXRfZXhw cigoTm9kZSAqKSBmaW5hbGZuZXhwciwgJnBlcmFnZy0+ZmluYWxmbik7CiAJCX0KKwkJLyoKKwkJ ICogYnVpbGQgZXhwcmVzc2lvbiB0cmVlcyBmb3IgdGhlIHNlcmlhbGZuLCBpZiBpdCBleGlzdHMg YW5kIGlzIHJlcXVpcmVkLgorCQkgKi8KKwkJaWYgKE9pZElzVmFsaWQoYWdnZm9ybS0+YWdnc2Vy aWFsZm4pKQorCQl7CisJCQlidWlsZF9hZ2dyZWdhdGVfc2VyaWFsZm5fZXhwcihhZ2dmb3JtLT5h Z2dzZXJpYWxmbiwKKwkJCQkJCQkJCQkgJnNlcmlhbGZuZXhwcik7CisJCQlwZXJhZ2ctPnNlcmlh bGZuX29pZCA9IGFnZ2Zvcm0tPmFnZ3NlcmlhbGZuOworCQkJZm1ncl9pbmZvKGFnZ2Zvcm0tPmFn Z3NlcmlhbGZuLCAmcGVyYWdnLT5zZXJpYWxmbik7CisJCQlmbWdyX2luZm9fc2V0X2V4cHIoKE5v ZGUgKikgc2VyaWFsZm5leHByLCAmcGVyYWdnLT5zZXJpYWxmbik7CisJCX0KKwkJLyoKKwkJICog YnVpbGQgZXhwcmVzc2lvbiB0cmVlcyBmb3IgdGhlIGV4cG9ydGZuLCBpZiBpdCBleGlzdHMgYW5k IGlzIHJlcXVpcmVkLgorCQkgKi8KKwkJaWYgKE9pZElzVmFsaWQoYWdnZm9ybS0+YWdncGFydGlh bGV4cG9ydGZuKSAmJiBwZXJhZ2ctPmFnZ3JlZi0+YWdnX3BhcnRpYWwpCisJCXsKKwkJCUhlYXBU dXBsZQlwcm9jVHVwbGU7CisJCQlGb3JtX3BnX3Byb2MgcHJvY2Zvcm07CisKKwkJCXByb2NUdXBs ZSA9IFNlYXJjaFN5c0NhY2hlMShQUk9DT0lELAorCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0o YWdnZm9ybS0+YWdncGFydGlhbGV4cG9ydGZuKSk7CisJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQo cHJvY1R1cGxlKSkKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgZnVu Y3Rpb24gJXUiLAorCQkJCQkgYWdnZm9ybS0+YWdncGFydGlhbGV4cG9ydGZuKTsKKwkJCXByb2Nm b3JtID0gKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHByb2NUdXBsZSk7CisJCQlSZWxlYXNlU3lz Q2FjaGUocHJvY1R1cGxlKTsKKworCQkJYnVpbGRfYWdncmVnYXRlX2V4cG9ydGZuX2V4cHIoYWdn Zm9ybS0+YWdncGFydGlhbGV4cG9ydGZuLAorCQkJCQkJCQkJCSBhZ2d0cmFuc3R5cGUsCisJCQkJ CQkJCQkJIHByb2Nmb3JtLT5wcm9yZXR0eXBlLAorCQkJCQkJCQkJCSBhZ2dyZWYtPmlucHV0Y29s bGlkLAorCQkJCQkJCQkJCSAmZXhwb3J0Zm5leHByKTsKKwkJCXBlcmFnZy0+ZXhwb3J0Zm5fb2lk ID0gYWdnZm9ybS0+YWdncGFydGlhbGV4cG9ydGZuOworCQkJZm1ncl9pbmZvKGFnZ2Zvcm0tPmFn Z3BhcnRpYWxleHBvcnRmbiwgJnBlcmFnZy0+ZXhwb3J0Zm4pOworCQkJZm1ncl9pbmZvX3NldF9l eHByKChOb2RlICopIGV4cG9ydGZuZXhwciwgJnBlcmFnZy0+ZXhwb3J0Zm4pOworCQl9CiAKIAkJ LyogZ2V0IGluZm8gYWJvdXQgdGhlIG91dHB1dCB2YWx1ZSdzIGRhdGF0eXBlICovCiAJCWdldF90 eXBsZW5ieXZhbChhZ2dyZWYtPmFnZ3R5cGUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggODQz OWQwYmNlNi4uZTUyZWNmZDEyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtMjI3LDYgKzIy Nyw4IEBAIHRyYW5zZm9ybUFnZ3JlZ2F0ZUNhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBZ2dyZWYg KmFnZywgTGlzdCAqYXJncywKIAlpZihhZ2ctPmFnZ19wYXJ0aWFsKXsKIAkJSGVhcFR1cGxlCWFn Z3R1cDsKIAkJRm9ybV9wZ19hZ2dyZWdhdGUgYWdnZm9ybTsKKwkJSGVhcFR1cGxlCXByb2N0dXA7 CisJCUZvcm1fcGdfcHJvYyBwcm9jZm9ybTsKIAogCQlhZ2d0dXAgPSBTZWFyY2hTeXNDYWNoZTEo QUdHRk5PSUQsIE9iamVjdElkR2V0RGF0dW0oYWdnLT5hZ2dmbm9pZCkpOwogCQlpZiAoIUhlYXBU dXBsZUlzVmFsaWQoYWdndHVwKSkKQEAgLTIzNSw4ICsyMzcsMjEgQEAgdHJhbnNmb3JtQWdncmVn YXRlQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIEFnZ3JlZiAqYWdnLCBMaXN0ICphcmdzLAogCQlp ZiAoIWFnZ2Zvcm0tPmFnZ3BhcnRpYWxwdXNoZG93bnNhZmUpCiAJCQllbG9nKEVSUk9SLCAicGFy dGlhbCBhZ2dyZWdhdGUgaXMgdW5zYWZlIGZvciBhZ2dyZWdhdGUgJXUiLAogCQkJCWFnZy0+YWdn Zm5vaWQpOworCQlpZiAoYWdnZm9ybS0+YWdndHJhbnN0eXBlID09IElOVEVSTkFMT0lEICYmCisJ CQlhZ2dmb3JtLT5hZ2dwYXJ0aWFsZXhwb3J0Zm4gPT0gSW52YWxpZE9pZCkKKwkJCWVsb2coRVJS T1IsICJkZWZpbml0aW9uIG9mIGFnZ3JlZ2F0ZSAldSBpcyBpbnZhbGlkIiwKKwkJCQlhZ2ctPmFn Z2Zub2lkKTsKIAkJUmVsZWFzZVN5c0NhY2hlKGFnZ3R1cCk7Ci0JCWFnZy0+YWdndHlwZSA9IGFn Z2Zvcm0tPmFnZ3RyYW5zdHlwZTsKKwkJaWYoYWdnZm9ybS0+YWdncGFydGlhbGV4cG9ydGZuICE9 IEludmFsaWRPaWQpeworCQkJcHJvY3R1cCA9IFNlYXJjaFN5c0NhY2hlMShQUk9DT0lELAorCQkJ CU9iamVjdElkR2V0RGF0dW0oYWdnZm9ybS0+YWdncGFydGlhbGV4cG9ydGZuKSk7CisJCQlpZiAo IUhlYXBUdXBsZUlzVmFsaWQocHJvY3R1cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIGV4cG9ydCBmdW5jdGlvbiAldSIsCisJCQkJCWFnZ2Zvcm0tPmFnZ3BhcnRp YWxleHBvcnRmbik7CisJCQlwcm9jZm9ybSA9IChGb3JtX3BnX3Byb2MpIEdFVFNUUlVDVChwcm9j dHVwKTsKKwkJCWFnZy0+YWdndHlwZSA9IHByb2Nmb3JtLT5wcm9yZXR0eXBlOworCQl9IGVsc2UK KwkJCWFnZy0+YWdndHlwZSA9IGFnZ2Zvcm0tPmFnZ3RyYW5zdHlwZTsKIAl9CiAKIAkvKgpAQCAt MjE4MSw2ICsyMTk2LDMyIEBAIGJ1aWxkX2FnZ3JlZ2F0ZV9maW5hbGZuX2V4cHIoT2lkICphZ2df aW5wdXRfdHlwZXMsCiAJLyogZmluYWxmbiBpcyBjdXJyZW50bHkgbmV2ZXIgdHJlYXRlZCBhcyB2 YXJpYWRpYyAqLwogfQogCisvKgorICogTGlrZSBidWlsZF9hZ2dyZWdhdGVfdHJhbnNmbl9leHBy LCBidXQgY3JlYXRlcyBhbiBleHByZXNzaW9uIHRyZWUgZm9yIHRoZQorICogZXhwb3J0IGZ1bmN0 aW9uIG9mIGFuIGFnZ3JlZ2F0ZS4KKyAqLwordm9pZAorYnVpbGRfYWdncmVnYXRlX2V4cG9ydGZu X2V4cHIoT2lkIGV4cG9ydGZuX29pZCwKKwkJCQkJCQkgIE9pZCBhZ2dfc3RhdGVfdHlwZSwKKwkJ CQkJCQkgIE9pZCBhZ2dfcmVzdWx0X3R5cGUsCisJCQkJCQkJICBPaWQgYWdnX2lucHV0X2NvbGxh dGlvbiwKKwkJCQkJCQkgIEV4cHIgKipleHBvcnRmbmV4cHIpCit7CisJTGlzdAkgICAqYXJnczsK KwlGdW5jRXhwciAgICpmZXhwcjsKKworCS8qIEJ1aWxkIGV4cHIgdHJlZSBmb3IgZXhwb3J0IGZ1 bmN0aW9uICovCisJYXJncyA9IGxpc3RfbWFrZTEobWFrZV9hZ2dfYXJnKGFnZ19zdGF0ZV90eXBl LCBhZ2dfaW5wdXRfY29sbGF0aW9uKSk7CisKKwlmZXhwciA9IG1ha2VGdW5jRXhwcihleHBvcnRm bl9vaWQsCisJCQkJCQkgYWdnX3Jlc3VsdF90eXBlLAorCQkJCQkJIGFyZ3MsCisJCQkJCQkgSW52 YWxpZE9pZCwKKwkJCQkJCSBhZ2dfaW5wdXRfY29sbGF0aW9uLAorCQkJCQkJIENPRVJDRV9FWFBM SUNJVF9DQUxMKTsKKwkqZXhwb3J0Zm5leHByID0gKEV4cHIgKikgZmV4cHI7Cit9CisKIC8qCiAg KiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBidWlsZCBkdW1teSBhcmd1bWVudCBleHByZXNzaW9u cyBmb3IgYWdncmVnYXRlcy4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv YXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYwppbmRleCBk NjY0MWI1NzBkLi44M2M5ZDUzYjUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv YXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKQEAg LTM3MjcsNiArMzcyNywxMiBAQCBkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKEFycmF5VHlwZSAq YXJyYXksCiAJCQllbG1hbGlnbiA9IFRZUEFMSUdOX1NIT1JUOwogCQkJYnJlYWs7CiAKKwkJY2Fz ZSBOVU1FUklDT0lEOgorCQkJZWxtbGVuID0gLTE7CisJCQllbG1ieXZhbCA9IGZhbHNlOworCQkJ ZWxtYWxpZ24gPSBUWVBBTElHTl9JTlQ7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxv ZyhFUlJPUiwgInR5cGUgJXUgbm90IHN1cHBvcnRlZCBieSBkZWNvbnN0cnVjdF9hcnJheV9idWls dGluKCkiLCBlbG10eXBlKTsKIAkJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvbnVtZXJpYy5jCmluZGV4IGQwOWUzMDQyY2EuLjEwNDZjMzU0ODcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtNTU0NCw2ICs1NTQ0LDcgQEAgdHlwZWRlZiBOdW1lcmljQWdnU3RhdGUg UG9seU51bUFnZ1N0YXRlOwogI2RlZmluZSBtYWtlUG9seU51bUFnZ1N0YXRlIG1ha2VOdW1lcmlj QWdnU3RhdGUKICNkZWZpbmUgbWFrZVBvbHlOdW1BZ2dTdGF0ZUN1cnJlbnRDb250ZXh0IG1ha2VO dW1lcmljQWdnU3RhdGVDdXJyZW50Q29udGV4dAogI2VuZGlmCitzdGF0aWMgYnl0ZWEqIGludDhf YXZnX3NlcmlhbGl6ZV9pbnRlcm5hbChQb2x5TnVtQWdnU3RhdGUgKnN0YXRlKTsKIAogRGF0dW0K IGludDJfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKQEAgLTU4NzAsMjMgKzU4NzEsMTUgQEAgaW50 OF9hdmdfY29tYmluZShQR19GVU5DVElPTl9BUkdTKQogfQogCiAvKgotICogaW50OF9hdmdfc2Vy aWFsaXplCi0gKgkJU2VyaWFsaXplIFBvbHlOdW1BZ2dTdGF0ZSBpbnRvIGJ5dGVhIHVzaW5nIHRo ZSBzdGFuZGFyZAotICoJCXJlY3YtZnVuY3Rpb24gaW5mcmFzdHJ1Y3R1cmUuCisgKiBjb3JlIG9m IGludDhfYXZnX3NlcmlhbGl6ZQogICovCi1EYXR1bQotaW50OF9hdmdfc2VyaWFsaXplKFBHX0ZV TkNUSU9OX0FSR1MpCitieXRlYSoKK2ludDhfYXZnX3NlcmlhbGl6ZV9pbnRlcm5hbChQb2x5TnVt QWdnU3RhdGUgKnN0YXRlKQogewotCVBvbHlOdW1BZ2dTdGF0ZSAqc3RhdGU7CiAJU3RyaW5nSW5m b0RhdGEgYnVmOwogCWJ5dGVhCSAgICpyZXN1bHQ7CiAJTnVtZXJpY1Zhcgl0bXBfdmFyOwogCi0J LyogRW5zdXJlIHdlIGRpc2FsbG93IGNhbGxpbmcgd2hlbiBub3QgaW4gYWdncmVnYXRlIGNvbnRl eHQgKi8KLQlpZiAoIUFnZ0NoZWNrQ2FsbENvbnRleHQoZmNpbmZvLCBOVUxMKSkKLQkJZWxvZyhF UlJPUiwgImFnZ3JlZ2F0ZSBmdW5jdGlvbiBjYWxsZWQgaW4gbm9uLWFnZ3JlZ2F0ZSBjb250ZXh0 Iik7Ci0KLQlzdGF0ZSA9IChQb2x5TnVtQWdnU3RhdGUgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7 CiAJLyoKIAkgKiBJZiB0aGUgcGxhdGZvcm0gc3VwcG9ydHMgaW50MTI4IHRoZW4gc3VtWCB3aWxs IGJlIGEgMTI4IGludGVnZXIgdHlwZS4KIAkgKiBIZXJlIHdlJ2xsIGNvbnZlcnQgdGhhdCBpbnRv IGEgbnVtZXJpYyB0eXBlIHNvIHRoYXQgdGhlIGNvbWJpbmUgc3RhdGUKQEAgLTU5MTUsNyArNTkw OCwyNSBAQCBpbnQ4X2F2Z19zZXJpYWxpemUoUEdfRlVOQ1RJT05fQVJHUykKIAogCWZyZWVfdmFy KCZ0bXBfdmFyKTsKIAotCVBHX1JFVFVSTl9CWVRFQV9QKHJlc3VsdCk7CisJcmV0dXJuIHJlc3Vs dDsKK30KKworLyoKKyAqIGludDhfYXZnX3NlcmlhbGl6ZQorICoJCVNlcmlhbGl6ZSBQb2x5TnVt QWdnU3RhdGUgaW50byBieXRlYSB1c2luZyB0aGUgc3RhbmRhcmQKKyAqCQlyZWN2LWZ1bmN0aW9u IGluZnJhc3RydWN0dXJlLgorICovCitEYXR1bQoraW50OF9hdmdfc2VyaWFsaXplKFBHX0ZVTkNU SU9OX0FSR1MpCit7CisJUG9seU51bUFnZ1N0YXRlICpzdGF0ZTsKKworCS8qIEVuc3VyZSB3ZSBk aXNhbGxvdyBjYWxsaW5nIHdoZW4gbm90IGluIGFnZ3JlZ2F0ZSBjb250ZXh0ICovCisJaWYgKCFB Z2dDaGVja0NhbGxDb250ZXh0KGZjaW5mbywgTlVMTCkpCisJCWVsb2coRVJST1IsICJhZ2dyZWdh dGUgZnVuY3Rpb24gY2FsbGVkIGluIG5vbi1hZ2dyZWdhdGUgY29udGV4dCIpOworCisJc3RhdGUg PSAoUG9seU51bUFnZ1N0YXRlICopIFBHX0dFVEFSR19QT0lOVEVSKDApOworCVBHX1JFVFVSTl9C WVRFQV9QKGludDhfYXZnX3NlcmlhbGl6ZV9pbnRlcm5hbChzdGF0ZSkpOwogfQogCiAvKgpAQCAt NTk2NCw2ICs1OTc1LDk3IEBAIGludDhfYXZnX2Rlc2VyaWFsaXplKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJUEdfUkVUVVJOX1BPSU5URVIocmVzdWx0KTsKIH0KIAorLyoKKyAqIGludDhfYXZnX2V4cG9y dAorICoJCUNvbnZlcnQgUG9seU51bUFnZ1N0YXRlIGludG8gX251bWVyaWMgb2YgY291bnQgYW5k IHN1bS4KKyAqLworRGF0dW0KK2ludDhfYXZnX2V4cG9ydChQR19GVU5DVElPTl9BUkdTKQorewor CVBvbHlOdW1BZ2dTdGF0ZSAqc3RhdGU7CisJTnVtZXJpY1ZhcglOX3Zhciwgc3VtWF92YXI7CisJ QXJyYXlCdWlsZFN0YXRlICphc3RhdGU7CisKKwkvKiBFbnN1cmUgd2UgZGlzYWxsb3cgY2FsbGlu ZyB3aGVuIG5vdCBpbiBhZ2dyZWdhdGUgY29udGV4dCAqLworCWlmICghQWdnQ2hlY2tDYWxsQ29u dGV4dChmY2luZm8sIE5VTEwpKQorCQllbG9nKEVSUk9SLCAiYWdncmVnYXRlIGZ1bmN0aW9uIGNh bGxlZCBpbiBub24tYWdncmVnYXRlIGNvbnRleHQiKTsKKworCXN0YXRlID0gKFBvbHlOdW1BZ2dT dGF0ZSAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKKworCWluaXRfdmFyKCZOX3Zhcik7CisJaW5p dF92YXIoJnN1bVhfdmFyKTsKKworCWFzdGF0ZSA9IGluaXRBcnJheVJlc3VsdChOVU1FUklDT0lE LCBDdXJyZW50TWVtb3J5Q29udGV4dCwgZmFsc2UpOworCisJLyogTiAqLworCWludDY0X3RvX251 bWVyaWN2YXIoc3RhdGUtPk4sICZOX3Zhcik7CisJYWNjdW1BcnJheVJlc3VsdChhc3RhdGUsIE51 bWVyaWNHZXREYXR1bShtYWtlX3Jlc3VsdCgmTl92YXIpKSwgZmFsc2UsCisJCU5VTUVSSUNPSUQs CUN1cnJlbnRNZW1vcnlDb250ZXh0KTsKKworCS8qIHN1bVggKi8KKyNpZmRlZiBIQVZFX0lOVDEy OAorCWludDEyOF90b19udW1lcmljdmFyKHN0YXRlLT5zdW1YLCAmc3VtWF92YXIpOworI2Vsc2UK KwlhY2N1bV9zdW1fZmluYWwoJnN0YXRlLT5zdW1YLCAmc3VtWF92YXIpOworI2VuZGlmCisJYWNj dW1BcnJheVJlc3VsdChhc3RhdGUsIE51bWVyaWNHZXREYXR1bShtYWtlX3Jlc3VsdCgmc3VtWF92 YXIpKSwgZmFsc2UsCisJCU5VTUVSSUNPSUQsCUN1cnJlbnRNZW1vcnlDb250ZXh0KTsKKworCVBH X1JFVFVSTl9EQVRVTShtYWtlQXJyYXlSZXN1bHQoYXN0YXRlLCBDdXJyZW50TWVtb3J5Q29udGV4 dCkpOworfQorCisvKgorICogaW50OF9hdmdfaW1wb3J0CisgKgkJQ29udmVydCBfbnVtZXJpYyBv ZiBjb3VudCBhbmQgc3VtIGludG8gUG9seU51bUFnZ1N0YXRlLgorICovCitEYXR1bQoraW50OF9h dmdfaW1wb3J0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJUG9seU51bUFnZ1N0YXRlICpzdGF0ZTsK KwlOdW1lcmljCU5fbnVtZXJpYywgc3VtWF9udW1lcmljOworCU51bWVyaWNWYXIJTl92YXIsIHN1 bVhfdmFyOworCUFycmF5VHlwZSAgKnRyYW5zYXJyYXk7CisKKwlEYXR1bQkgICAqZGF0dW1zOwor CWJvb2wJICAgKm51bGxzOworCWludAkJCW5kYXR1bTsKKworCXRyYW5zYXJyYXkgPSBQR19HRVRB UkdfQVJSQVlUWVBFX1AoMCk7CisKKwlpZiAoQVJSX0hBU05VTEwodHJhbnNhcnJheSkKKwkgICAg fHwgQXJyYXlHZXROSXRlbXMoQVJSX05ESU0odHJhbnNhcnJheSksIEFSUl9ESU1TKHRyYW5zYXJy YXkpKSAhPSAyCisJCXx8IEFSUl9ORElNKHRyYW5zYXJyYXkpICE9IDEKKwkJfHwgQVJSX0VMRU1U WVBFKHRyYW5zYXJyYXkpICE9IE5VTUVSSUNPSUQpCisJCWVsb2coRVJST1IsICJleHBlY3RlZCAy LWVsZW1lbnQgbnVtZXJpYyBhcnJheSIpOworCisJZGVjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0 cmFuc2FycmF5LCBOVU1FUklDT0lELCAmZGF0dW1zLCAmbnVsbHMsICZuZGF0dW0pOworCU5fbnVt ZXJpYyA9IERhdHVtR2V0TnVtZXJpYyhkYXR1bXNbMF0pOworCXN1bVhfbnVtZXJpYyA9IERhdHVt R2V0TnVtZXJpYyhkYXR1bXNbMV0pOworCQorCWlmKE5VTUVSSUNfSVNfU1BFQ0lBTChOX251bWVy aWMpIHx8IE5VTUVSSUNfSVNfU1BFQ0lBTChzdW1YX251bWVyaWMpKQorCQllbG9nKEVSUk9SLCAi Ym90aCBvZiBjb3VudCBhbmQgc3VtIG11c3QgYmUgbm90IHNwZWNpYWwgdmFsdWUgb2YgbnVtZXJp Yy4iKTsKKwkKKwlpZihjbXBfbnVtZXJpY3MoTl9udW1lcmljLCBpbnQ2NF90b19udW1lcmljKDAp KSA8PSAwKQorCQllbG9nKEVSUk9SLCAiY291bnQgbXVzdCBiZSBwb3NpdGl2ZSIpOworCQorCXN0 YXRlID0gbWFrZVBvbHlOdW1BZ2dTdGF0ZUN1cnJlbnRDb250ZXh0KGZhbHNlKTsKKworCS8qIE4g Ki8KKwlpbml0X3Zhcl9mcm9tX251bShOX251bWVyaWMsICZOX3Zhcik7CisJaWYgKCFudW1lcmlj dmFyX3RvX2ludDY0KCZOX3ZhciwgJnN0YXRlLT5OKSkKKwkJZWxvZyhFUlJPUiwgImNvdW50IG11 c3QgYmUgaW4gcmFuZ2UgaW4gYmlnaW50Iik7CisJCisJLyogc3VtWCAqLworCWluaXRfdmFyX2Zy b21fbnVtKHN1bVhfbnVtZXJpYywgJnN1bVhfdmFyKTsKKwkjaWZkZWYgSEFWRV9JTlQxMjgKKwkJ bnVtZXJpY3Zhcl90b19pbnQxMjgoJnN1bVhfdmFyLCAmc3RhdGUtPnN1bVgpOworCSNlbHNlCisJ CWFjY3VtX3N1bV9hZGQoJnN0YXRlLT5zdW1YLCAmc3VtWF92YXIpOworCSNlbmRpZgorCVBHX1JF VFVSTl9CWVRFQV9QKGludDhfYXZnX3NlcmlhbGl6ZV9pbnRlcm5hbChzdGF0ZSkpOworfQorCisK IC8qCiAgKiBJbnZlcnNlIHRyYW5zaXRpb24gZnVuY3Rpb25zIHRvIGdvIHdpdGggdGhlIGFib3Zl LgogICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5kYXQg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5kYXQKaW5kZXggZDAxZmYyYzMyZi4u MzljZTlmYTAwNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hZ2dyZWdhdGUu ZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYWdncmVnYXRlLmRhdApAQCAtMTYsNiAr MTYsOCBAQAogeyBhZ2dmbm9pZCA9PiAnYXZnKGludDgpJywgYWdndHJhbnNmbiA9PiAnaW50OF9h dmdfYWNjdW0nLAogICBhZ2dmaW5hbGZuID0+ICdudW1lcmljX3BvbHlfYXZnJywgYWdnY29tYmlu ZWZuID0+ICdpbnQ4X2F2Z19jb21iaW5lJywKICAgYWdnc2VyaWFsZm4gPT4gJ2ludDhfYXZnX3Nl cmlhbGl6ZScsIGFnZ2Rlc2VyaWFsZm4gPT4gJ2ludDhfYXZnX2Rlc2VyaWFsaXplJywKKyAgYWdn cGFydGlhbHB1c2hkb3duc2FmZSA9PiAndCcsIGFnZ3BhcnRpYWxleHBvcnRmbiA9PiAnaW50OF9h dmdfZXhwb3J0JywKKyAgYWdncGFydGlhbGltcG9ydGZuID0+ICdpbnQ4X2F2Z19pbXBvcnQnLAog ICBhZ2dtdHJhbnNmbiA9PiAnaW50OF9hdmdfYWNjdW0nLCBhZ2dtaW52dHJhbnNmbiA9PiAnaW50 OF9hdmdfYWNjdW1faW52JywKICAgYWdnbWZpbmFsZm4gPT4gJ251bWVyaWNfcG9seV9hdmcnLCBh Z2d0cmFuc3R5cGUgPT4gJ2ludGVybmFsJywKICAgYWdndHJhbnNzcGFjZSA9PiAnNDgnLCBhZ2dt dHJhbnN0eXBlID0+ICdpbnRlcm5hbCcsIGFnZ210cmFuc3NwYWNlID0+ICc0OCcgfSwKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYWdncmVnYXRlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oCmluZGV4IDgzOTQyMWM0ZGMuLjY4YmJjMzlhOTMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYWdncmVnYXRlLmgKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaApAQCAtNTgsNiArNTgsMTAgQEAgQ0FUQUxPRyhwZ19h Z2dyZWdhdGUsMjYwMCxBZ2dyZWdhdGVSZWxhdGlvbklkKQogCS8qIHRydWUgaWYgcGFydGlhbCBh Z2dyZWdhdGUgaXMgZmluZSB0byBwdXNoIGRvd24gKi8KIAlib29sCQlhZ2dwYXJ0aWFscHVzaGRv d25zYWZlIEJLSV9ERUZBVUxUKGYpOwogCisJLyogZnVuY3Rpb24gdG8gY29udmVydCBhZ2dyZWdh dGUncyB0cmFuc2l0aW9uIChzdGF0ZSkgZGF0YSBmcm9tIGxvY2FsCisJICAgZm9ybWF0IHRvIHN0 YW5kYXJkIGZvcm1hdCAoMCBpZiBub25lKS4gKi8KKwlyZWdwcm9jCQlhZ2dwYXJ0aWFsZXhwb3J0 Zm4gQktJX0RFRkFVTFQoLSkgQktJX0xPT0tVUF9PUFQocGdfcHJvYyk7CisKIAkvKiBmdW5jdGlv biB0byBjaGVjayB2YWxpZGl0eSBvZiBhZ2dyZWdhdGUncyB0cmFuc2l0aW9uIChzdGF0ZSkKIAkg ICBkYXRhIGFuZCB0byBjb252ZXJ0IGl0IGZyb20gc3RhbmRhcmQgZm9ybWF0IHRvIGxvY2FsIGZv cm1hdCAoMCBpZiBub25lKSAqLwogCXJlZ3Byb2MJCWFnZ3BhcnRpYWxpbXBvcnRmbiBCS0lfREVG QVVMVCgtKSBCS0lfTE9PS1VQX09QVChwZ19wcm9jKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cmlu ZGV4IGRiOGMyOTNiN2MuLmRlYWRjZGI2ZDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt NDg3OCw2ICs0ODc4LDEyIEBACiB7IG9pZCA9PiAnMjc4NycsIGRlc2NyID0+ICdhZ2dyZWdhdGUg ZGVzZXJpYWwgZnVuY3Rpb24nLAogICBwcm9uYW1lID0+ICdpbnQ4X2F2Z19kZXNlcmlhbGl6ZScs IHByb3JldHR5cGUgPT4gJ2ludGVybmFsJywKICAgcHJvYXJndHlwZXMgPT4gJ2J5dGVhIGludGVy bmFsJywgcHJvc3JjID0+ICdpbnQ4X2F2Z19kZXNlcmlhbGl6ZScgfSwKK3sgb2lkID0+ICc2NDAx JywgZGVzY3IgPT4gJ2FnZ3JlZ2F0ZSBleHBvcnQgZnVuY3Rpb24nLAorICBwcm9uYW1lID0+ICdp bnQ4X2F2Z19leHBvcnQnLCBwcm9yZXR0eXBlID0+ICdfbnVtZXJpYycsCisgIHByb2FyZ3R5cGVz ID0+ICdpbnRlcm5hbCcsIHByb3NyYyA9PiAnaW50OF9hdmdfZXhwb3J0JyB9LAoreyBvaWQgPT4g JzY0MDInLCBkZXNjciA9PiAnYWdncmVnYXRlIGltcG9ydCBmdW5jdGlvbicsCisgIHByb25hbWUg PT4gJ2ludDhfYXZnX2ltcG9ydCcsIHByb3JldHR5cGUgPT4gJ2ludGVybmFsJywKKyAgcHJvYXJn dHlwZXMgPT4gJ19udW1lcmljJywgcHJvc3JjID0+ICdpbnQ4X2F2Z19pbXBvcnQnIH0sCiB7IG9p ZCA9PiAnMzMyNCcsIGRlc2NyID0+ICdhZ2dyZWdhdGUgY29tYmluZSBmdW5jdGlvbicsCiAgIHBy b25hbWUgPT4gJ2ludDRfYXZnX2NvbWJpbmUnLCBwcm9yZXR0eXBlID0+ICdfaW50OCcsCiAgIHBy b2FyZ3R5cGVzID0+ICdfaW50OCBfaW50OCcsIHByb3NyYyA9PiAnaW50NF9hdmdfY29tYmluZScg fSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVBZ2cuaCBiL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL25vZGVBZ2cuaAppbmRleCAwNzkzNjBjMTUzLi5iYWM3OTViODQ3IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlQWdnLmgKKysrIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3Ivbm9kZUFnZy5oCkBAIC0yMTUsNiArMjE1LDE1IEBAIHR5cGVkZWYgc3RydWN0IEFn Z1N0YXRlUGVyQWdnRGF0YQogCSAqLwogCUZtZ3JJbmZvCXNlcmlhbGZuOwogCisJLyogT3B0aW9u YWwgT2lkIG9mIGV4cG9ydCBmdW5jdGlvbiAobWF5IGJlIEludmFsaWRPaWQpICovCisJT2lkCQkJ ZXhwb3J0Zm5fb2lkOworCisJLyoKKwkgKiBmbWdyIGxvb2t1cCBkYXRhIGZvciBleHBvcnQgZnVu Y3Rpb24gLS0tIG9ubHkgdmFsaWQgd2hlbiBleHBvcnRmbl9vaWQgaXMKKwkgKiBub3QgSW52YWxp ZE9pZC4KKwkgKi8KKwlGbWdySW5mbwlleHBvcnRmbjsKKwogCS8qCiAJICogTnVtYmVyIG9mIGFy Z3VtZW50cyB0byBwYXNzIHRvIHRoZSBmaW5hbGZuLiAgVGhpcyBpcyBhbHdheXMgYXQgbGVhc3Qg MQogCSAqICh0aGUgdHJhbnNpdGlvbiBzdGF0ZSB2YWx1ZSkgcGx1cyBhbnkgb3JkZXJlZC1zZXQg ZGlyZWN0IGFyZ3MuIElmIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2FnZy5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2FnZy5oCmluZGV4IDU4Y2JhZDc1MjQu LmVlNzRkMjViNDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9hZ2cuaAor KysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfYWdnLmgKQEAgLTYyLDQgKzYyLDEwIEBAIGV4 dGVybiB2b2lkIGJ1aWxkX2FnZ3JlZ2F0ZV9maW5hbGZuX2V4cHIoT2lkICphZ2dfaW5wdXRfdHlw ZXMsCiAJCQkJCQkJCQkJIE9pZCBmaW5hbGZuX29pZCwKIAkJCQkJCQkJCQkgRXhwciAqKmZpbmFs Zm5leHByKTsKIAorZXh0ZXJuIHZvaWQgYnVpbGRfYWdncmVnYXRlX2V4cG9ydGZuX2V4cHIoT2lk IGV4cG9ydGZuX29pZCwKKwkJCQkJCQkJCQkgT2lkIGFnZ19zdGF0ZV90eXBlLAorCQkJCQkJCQkJ CSBPaWQgYWdnX3Jlc3VsdF90eXBlLAorCQkJCQkJCQkJCSBPaWQgYWdnX2lucHV0X2NvbGxhdGlv biwKKwkJCQkJCQkJCQkgRXhwciAqKmV4cG9ydGZuZXhwcik7CisKICNlbmRpZgkJCQkJCQkvKiBQ QVJTRV9BR0dfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCBk YTBjZDgxYzA4Li5lYmZlMDY2ZmU2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5z Lm91dApAQCAtMTQ1LDYgKzE0NSw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX2FnZ3JlZ2F0ZSB7 YWdnZmluYWxmbn0gPT4gcGdfcHJvYyB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYWdncmVn YXRlIHthZ2djb21iaW5lZm59ID0+IHBnX3Byb2Mge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBn X2FnZ3JlZ2F0ZSB7YWdnc2VyaWFsZm59ID0+IHBnX3Byb2Mge29pZH0KIE5PVElDRTogIGNoZWNr aW5nIHBnX2FnZ3JlZ2F0ZSB7YWdnZGVzZXJpYWxmbn0gPT4gcGdfcHJvYyB7b2lkfQorTk9USUNF OiAgY2hlY2tpbmcgcGdfYWdncmVnYXRlIHthZ2dwYXJ0aWFsZXhwb3J0Zm59ID0+IHBnX3Byb2Mg e29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2FnZ3JlZ2F0ZSB7YWdncGFydGlhbGltcG9ydGZu fSA9PiBwZ19wcm9jIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19hZ2dyZWdhdGUge2FnZ210 cmFuc2ZufSA9PiBwZ19wcm9jIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19hZ2dyZWdhdGUg e2FnZ21pbnZ0cmFuc2ZufSA9PiBwZ19wcm9jIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vcHJfc2FuaXR5Lm91dAppbmRleCA5ZDA0N2IyMWI4Li5jODJhNTU2MmZiIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTI4NywxMCArMjg3LDExIEBAIFNF TEVDVCBwMS5vaWQsIHAxLnByb25hbWUKIEZST00gcGdfcHJvYyBhcyBwMQogV0hFUkUgcDEucHJv cmV0dHlwZSA9ICdpbnRlcm5hbCc6OnJlZ3R5cGUgQU5EIE5PVAogICAgICdpbnRlcm5hbCc6OnJl Z3R5cGUgPSBBTlkgKHAxLnByb2FyZ3R5cGVzKTsKLSBvaWQgIHwgICBwcm9uYW1lICAgCi0tLS0t LS0rLS0tLS0tLS0tLS0tLQorIG9pZCAgfCAgICAgcHJvbmFtZSAgICAgCistLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0KKyA2NDAyIHwgaW50OF9hdmdfaW1wb3J0CiAgMjMwNCB8IGludGVybmFsX2lu Ci0oMSByb3cpCisoMiByb3dzKQogCiAtLSBMb29rIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4g YSBwb2x5bW9ycGhpYyB0eXBlIGFuZCBkbyBub3QgaGF2ZSBhbnkKIC0tIHBvbHltb3JwaGljIGFy Z3VtZW50LiAgQ2FsbHMgb2Ygc3VjaCBmdW5jdGlvbnMgd291bGQgYmUgdW5yZXNvbHZhYmxlCi0t IAoyLjMxLjEKCg== --_003_TY2PR01MB383585CACD74F2106A0563C195CB2TY2PR01MB3835jpnp_--