From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 497BDC4338F for ; Mon, 2 Aug 2021 18:23:15 +0000 (UTC) Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BC5EE60724 for ; Mon, 2 Aug 2021 18:23:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org BC5EE60724 Authentication-Results: mail.kernel.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=oss.oracle.com Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 172IBS3J031633; Mon, 2 Aug 2021 18:23:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : date : message-id : references : in-reply-to : content-id : mime-version : cc : subject : list-id : list-unsubscribe : list-archive : list-post : list-help : list-subscribe : content-type : content-transfer-encoding : sender; s=corp-2021-07-09; bh=9DJ5quPwQUkxFUIRf24HcTPX/YAiVhrnHueEsiD9IIE=; b=uHU4GeWFSRE2LY8mbOSiRF8wRsdpQg1QBGLyfvYN1VUuYnsKLbQ2vD/nzh+IfgBQFzf3 LGyvj2ne8I2nyOTDv01m54lx7QQw07kztbzOf8WcZh1+S7tiFzF71MmufpaPmWeg4ZxX K7BvitYFkWMjrX92kTZI7URN9yON+u+T4tEBFK05+AgLpwKTAv6jWScDkMoua/EqkpS0 tMUPpIuIor97zlTCfo2IVDRk5E09cqVlGR3HAFgj9uLaSmDHgNPlY1Nj1Di6Huw9yjLn MANwALKD+Lge0kMW3G43o6n20I0D0O5kwJvn77ULDts5Ckw6SjLeiLSgA0szELBtZGjU FQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : date : message-id : references : in-reply-to : content-id : mime-version : cc : subject : list-id : list-unsubscribe : list-archive : list-post : list-help : list-subscribe : content-type : content-transfer-encoding : sender; s=corp-2020-01-29; bh=9DJ5quPwQUkxFUIRf24HcTPX/YAiVhrnHueEsiD9IIE=; b=uu6gLbrBlq5US3u6lgunxugB1bTqBjSIrmDuwYnIOYijR4ZfEEezUNYlZ4GOrd0BKaF7 kvO53tAsA6FvuINbd6zt7DWmxGMM99ofP2SuAThHNFXrn2JNk2grjbnmhU4jv29wfgk8 Ru+qLW5Pa60P4uo3Us3wA4Xu5T+AXpFRbeLozuSSV0mbW/19MU2iwVQKyUFgFRPKPLU7 yyUFxB8ag2dpR4RxRRRGRNLpGE43pK7+JWsSOwd0CC3fNmHO2CTmcyXbAzwItqJqvMeH 6TdK6OCb5Lx2yvSbONkCfCqwuQDr2ojAC65hTibWTHjBOgwX6Wa/4qFSCBGM7DTOBiRI yQ== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3a6cnthfv5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 02 Aug 2021 18:23:13 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 172IFGRh108906; Mon, 2 Aug 2021 18:23:12 GMT Received: from oss.oracle.com (oss-old-reserved.oracle.com [137.254.22.2]) by userp3020.oracle.com with ESMTP id 3a5g9tjvdk-1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Mon, 02 Aug 2021 18:23:12 +0000 Received: from localhost ([127.0.0.1] helo=lb-oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1mAcak-0001YW-OJ; Mon, 02 Aug 2021 11:23:10 -0700 Received: from userp3030.oracle.com ([156.151.31.80]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1mAcaL-0001XY-8z for ocfs2-devel@oss.oracle.com; Mon, 02 Aug 2021 11:22:45 -0700 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 172IFKDw066983 for ; Mon, 2 Aug 2021 18:22:45 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2106.outbound.protection.outlook.com [104.47.70.106]) by userp3030.oracle.com with ESMTP id 3a4umx4ya5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 02 Aug 2021 18:22:44 +0000 Received: from SN6PR10MB2701.namprd10.prod.outlook.com (2603:10b6:805:45::20) by SA2PR10MB4811.namprd10.prod.outlook.com (2603:10b6:806:11f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.17; Mon, 2 Aug 2021 18:22:43 +0000 Received: from SN6PR10MB2701.namprd10.prod.outlook.com ([fe80::fcfe:5758:70ad:ec9b]) by SN6PR10MB2701.namprd10.prod.outlook.com ([fe80::fcfe:5758:70ad:ec9b%3]) with mapi id 15.20.4373.026; Mon, 2 Aug 2021 18:22:42 +0000 From: Wengang Wang To: Gang He Thread-Topic: [Ocfs2-devel] [PATCH] ocfs2: reflink deadlock when clone file to the same directory simultaneously Thread-Index: AQHXhQqCVvhy0lDQBEOnX3Uta/OZNKtbt8MAgAPt2oCAAOcRAA== Date: Mon, 2 Aug 2021 18:22:42 +0000 Message-ID: References: <20210729110230.18983-1-ghe@suse.com> <74425299-19FC-469D-884A-A3BBE1E66EFF@oracle.com> <5670866c-927f-2c27-42c2-0242181522a8@suse.com> In-Reply-To: <5670866c-927f-2c27-42c2-0242181522a8@suse.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3654.60.0.2.21) authentication-results: suse.com; dkim=none (message not signed) header.d=none; suse.com; dmarc=none action=none header.from=oracle.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 75cf1884-259c-4ffa-e5f0-08d955e284d3 x-ms-traffictypediagnostic: SA2PR10MB4811: x-ms-exchange-transport-forked: True x-oracle-tenancy: 1 x-ms-oob-tlc-oobclassifiers: OLM:8273; x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CTbkY9lgf7jP5JvnYniVrg5zLhmFA4nXD8/2f2II79g1V3YWBuQrb8P7qiL0CbUIUz+ogzIWLiP5/anfto+pNJInEONP3Px6fXP98gBV45/mbhrE1Kyajb1G2TpPXQdOLfj0wTNxr9BaiWtCoWrfk39PvjlRwN4VGel8cBjc2S5Mtx6TJ1bOUTOdr+uZ8Ve9os35yGwDlviIvJPwfxcmha763IT5UvRFhiEiLIqy/VfOduuOY4SSnwdUUsktyr+x/GkIrIpx6dnzU+D0SCpkqpVPbmvArWJwMMttA31pQmOzZjjmwL48hCojHYlhsaNAzQlhC07SwUGcOKnUAteOXdoHyA6gGBAhzJoIpDB4eeHJ2cztrxdQ61aRmotmjtIGuSzK/XJjnK61c9Myxt3pFN8mKScDkbq73iv75/b20eeus//PwRYGG26+Q0gH1NGTcJWQN6n+xlMYf4C284wX9VPOjvl81PtupRTamKSakLcc0i5IBogF7DW0tlukhNeu67n2ZT+1tlL30fmJzZOXUw5aPeDGbVVH9lT9ty2w/rBeRXIlYoDOagEgKSINBb6hH3Ct9lpI8lfXBxMUJM0lwDjYpN6niQ62ilJJ/XJ5F3/5mPHCHYF+oEaPODcTC2h5N8AXRFk9lSkj/K1X8EwCoPYjTQB/t5r3ZuajAA6ADkWX2m2TfusG4qdoADahwnKQ x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:-1; SRV:; IPV:NLI; SFV:SKI; H:SN6PR10MB2701.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:; DIR:INB; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Y3JFcWcyZEdtZEV5SkdDcEVPbWQ5b2o5cXFUYVJZTG5RTDgzcTV5cUhvaW91?= =?utf-8?B?WG03Wm1kREtkNzMxWXpobjQrYk9kcEFNWkVDWk1HWW5iL2VRb3c0SWl5R3JY?= =?utf-8?B?YTZ3TldJelMxY3FHOCtQREZ4UVB3QllJUnJjNUxTZGd6WG0wVWZudm5PUlNj?= =?utf-8?B?SVBrYjQ2RlgvMmZuWkJndU5oVGpGWG9zTzVub2h2K2RyM04zNHNoQU40Zk1Y?= =?utf-8?B?ZHgrTDNHVjN6TmlFOTJVdjQ2OVcvc09GaWJ3Y1NpeGZ3Q0RGYm5xMHZTQloy?= =?utf-8?B?anBOdWlxSGVoTkFjWEM1anp3YkJ6WmZmcS9zMm50OUZFRzBCMFZZbWJCU1Fa?= =?utf-8?B?TEk2YlAwN1JXdHFNQ1k5aG15SDlHSlE2SEt5ZnN5YllOODBzTUxaQmdSNXlD?= =?utf-8?B?dk5ZN3lheTR3WnFHUytnMXozdHRuUFZpcTdlQUxmZzJ2QjltY09nR3VEdUZD?= =?utf-8?B?SE1ZOFRiZlpuNkk2RXRIczNvRFFrZ1RNMldGU1FPUXJENmZXem1BbXpoRkh3?= =?utf-8?B?Z3A0S2hpQ2FqWDVINFpYM3lydDZUOFBYZEVhUk41SHdqZXNoK0ZRU2lnM2da?= =?utf-8?B?bWVVQTJLVzZibFcwWXFyQTEwNHBmVmsxdlljYkJmNVNiUjF3RTUzU3k3dTVX?= =?utf-8?B?d21sV1FKNzE0dERVVTlvREQwbWVVVXJYYkpMUk1ZY2VWZ0V3QUhDUHNzT0hY?= =?utf-8?B?N3BsR3BxcUVPUGdYV0VlN3FKejhKdkFZcDBJMHR0N1V6c2pVU3NtWGlyQ0JO?= =?utf-8?B?UEM5bWNoNkE1SEZTbzc5Rkx5emZZQkhoOXlHL1dtK2pxbXZQN2dNeFh0TFR5?= =?utf-8?B?d2hORWsyd29GeUlXRzNxd0U1TGhuSGpoRDNmN25EZUpZQkI4QmtwVFovRGVo?= =?utf-8?B?Ly9UbjFvTXdNWWY4bFB1bFByVnRtQmpIVktuZzdoOTgyZjZRM2xJQVZlMHZQ?= =?utf-8?B?QXFBMXVJUmlTTlhubWVsdmNDY3ZOQnlVVkJwQWRZRWNlbmthMUVnSTZod2Ry?= =?utf-8?B?akhyOXp0b1gzT3ZTWS9UOFBDYXluekNNbDNiM01kTmhHQTl5cEIyZ2xxM0I3?= =?utf-8?B?eHpnTVhTWkJXeGdOTnVlSzB6YXliNjU3bEFkejgvSnRwRDN3QjM0L3lCNjZa?= =?utf-8?B?aE5Fb24xRE1EZFZrUDd2NmhGWXhHYnZjUCt3NTlISEZqNDlXUkwvNkdpZld2?= =?utf-8?B?aHZQQ1QxcER0NjE5cy9oaW9ETStEcE9vSGJaTFNJVFo5KzMvbythZFJLUVlk?= =?utf-8?B?WmF1bStQbUNPay9keGxJcWg0ZzczVk5WN2xYSkFlVkJiNmhmQndkUW5Sc2Nm?= =?utf-8?B?djEzWVpmQS9zdmZIcEVOUmVTbWZuSzBMNjJ1Y2dSbFZJUTZ6SEYyd2tUZ1d1?= =?utf-8?B?bXJZbGxPSHA5SUdzaHJ6YWJZS1BMQm4vbUdZMm9mQUYyazhQZ0paeFJTRlNj?= =?utf-8?B?VUxWemQ0REVLNERxM202TUdmTG83UGFYTDQ5bUZhZFo0RWw2NDFUQlhjdFlW?= =?utf-8?B?YTlRcEI0TGFhRXZ6RERhVkdZbVZwZC91eEpjWTNkM1pGT3FaVFhOSmNsVkha?= =?utf-8?B?S0lOMnhhSlVpMVIxYnh5QkNEM0E3akpDSG9lTURFekRsM1FIV3hGd001NzdG?= =?utf-8?B?aEtiRXlyRUtReksxM3kwN1poMDJLRE9qSk1meTRmOW5NMnNkREI5cUVkdGwx?= =?utf-8?B?SGdqRlV1U1lCdml0VU9TaWZHSHhmL0hRRkZ0cnlNZExnaFk3b0FneVZpT0Y5?= =?utf-8?Q?3XHq2VLTRc1ZkMkYEyZlu33834efu57nU2ZhMhB?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB2701.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75cf1884-259c-4ffa-e5f0-08d955e284d3 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2021 18:22:42.7715 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fU9o891UChnrR8GoUEq22FqNbWzJDADKkxpeRlaRr/TyOlV+gKG/8TggxSd8O9wLKt2drjxn+tt9Zrrz9VWbLgHyG59oU8qa5QbPv/Q3qvs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4811 X-MS-Exchange-CrossPremises-AuthAs: Internal X-MS-Exchange-CrossPremises-AuthMechanism: 04 X-MS-Exchange-CrossPremises-AuthSource: SN6PR10MB2701.namprd10.prod.outlook.com X-MS-Exchange-CrossPremises-TransportTrafficType: Email X-MS-Exchange-CrossPremises-SCL: -1 X-MS-Exchange-CrossPremises-messagesource: StoreDriver X-MS-Exchange-CrossPremises-BCC: X-MS-Exchange-CrossPremises-originalclientipaddress: 71.202.81.58 X-MS-Exchange-CrossPremises-transporttraffictype: Email X-MS-Exchange-CrossPremises-antispam-scancontext: DIR:Originating; SFV:SKI; SKIP:0; X-MS-Exchange-CrossPremises-processed-by-journaling: Journal Agent X-OrganizationHeadersPreserved: SA2PR10MB4811.namprd10.prod.outlook.com X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10064 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 malwarescore=0 suspectscore=0 mlxscore=0 adultscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108020118 Cc: "ocfs2-devel@oss.oracle.com" , "linux-kernel@vger.kernel.org" Subject: Re: [Ocfs2-devel] [PATCH] ocfs2: reflink deadlock when clone file to the same directory simultaneously X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: ocfs2-devel-bounces@oss.oracle.com Errors-To: ocfs2-devel-bounces@oss.oracle.com X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10064 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 phishscore=0 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108020118 X-Proofpoint-ORIG-GUID: XItoRWdD608lrR0lI8enfeElj6Efs2zy X-Proofpoint-GUID: XItoRWdD608lrR0lI8enfeElj6Efs2zy DQoNCj4gT24gQXVnIDEsIDIwMjEsIGF0IDk6MzUgUE0sIEdhbmcgSGUgPGdoZUBzdXNlLmNvbT4g d3JvdGU6DQo+IA0KPiBIaSBXZW5nYW5nLA0KPiANCj4gVGhlIG9jZnMyIGZpbGUgc3lzdGVtIGlz IG1vdW50ZWQgYXQgL21udC9zaGFyZWQsDQo+IFRoZSB0ZXN0IGZpbGUoZS5nLiA0MEcgVk0gaW1h Z2UpIGlzIGxvY2F0ZWQgYXQgL21udC9zaGFyZWQvdGVzdCwgdGhlIHNuYXBzaG90IGRpcmVjb3J5 IGlzIC9tbnQvc2hhcmVkLy5zbmFwc2hvdHMsIHRoZW4gdGhlIHVzZXIgcnVucyBhIHJlZmxpbmsg Y29tbWFuZCBmcm9tIGVhY2ggbm9kZSB0byBnZW5lcmF0ZSBhIGNsb25lIGZpbGUgcmVwZWF0ZWRs eSBsaWtlLA0KPiByZWZsaW5rICIvbW50L3NoYXJlZC90ZXN0IiBcDQo+ICAgIi9tbnQvc2hhcmVk Ly5zbmFwc2hvdHMvdGVzdC5gZGF0ZSArJW0lZCVIJU0lU2AuYGhvc3RuYW1lYCINCj4gDQo+IGFm dGVyIGEgd2hpbGUsIHRoZSByZWZsaW5rIHByb2Nlc3Mgb24gZWFjaCBub2RlIGlzIGh1bmcsIHRo ZSB1c2VyDQo+IGNhbm5vdCBsaXN0IHRoZSBmaWxlIHN5c3RlbSBhZ2Fpbi4NCj4gDQo+IFRoZSBw cm9ibGVtYXRpYyByZWZsaW5rIGNvbW1hbmQgcHJvY2VzcyBpcyBibG9ja2VkIGF0IG9uZSBub2Rl LCBsaWtlDQo+IF9fc2NoZWR1bGUrMHgyZmQvMHg3NTANCj4gc2NoZWR1bGUrMHgyZi8weGEwDQo+ IHNjaGVkdWxlX3RpbWVvdXQrMHgxY2MvMHgzMTANCj4gPyBvY2ZzMl9jb250cm9sX2NmdSsweDUw LzB4NTAgW29jZnMyX3N0YWNrX3VzZXJdDQo+ID8gMHhmZmZmZmZmZmMwZTNlMDAwDQo+IHdhaXRf Zm9yX2NvbXBsZXRpb24rMHhiYS8weDE0MA0KPiA/IHdha2VfdXBfcSsweGEwLzB4YTANCj4gX19v Y2ZzMl9jbHVzdGVyX2xvY2suaXNyYS40MSsweDNiNS8weDgyMCBbb2NmczJdDQo+ID8gb2NmczJf aW5vZGVfbG9ja19mdWxsX25lc3RlZCsweDFmYy8weDk2MCBbb2NmczJdDQo+IG9jZnMyX2lub2Rl X2xvY2tfZnVsbF9uZXN0ZWQrMHgxZmMvMHg5NjAgW29jZnMyXQ0KPiBvY2ZzMl9pbml0X3NlY3Vy aXR5X2FuZF9hY2wrMHhiZS8weDFkMCBbb2NmczJdDQo+IG9jZnMyX3JlZmxpbmsrMHg0MzYvMHg0 YzAgW29jZnMyXQ0KPiA/IG9jZnMyX3JlZmxpbmtfaW9jdGwrMHgyY2EvMHgzNjAgW29jZnMyXQ0K PiBvY2ZzMl9yZWZsaW5rX2lvY3RsKzB4MmNhLzB4MzYwIFtvY2ZzMl0NCj4gb2NmczJfaW9jdGwr MHgyNWUvMHg2NzAgW29jZnMyXQ0KPiBkb192ZnNfaW9jdGwrMHhhMC8weDY4MA0KPiBrc3lzX2lv Y3RsKzB4NzAvMHg4MA0KPiBfX3g2NF9zeXNfaW9jdGwrMHgxNi8weDIwDQo+IA0KPiBJbiBmYWN0 LCB0aGlzIG5vZGUgaGFzIGFjcXVpcmVkIC5zbmFwc2hvdHMgZGlyZWN0b3J5IGlub2RlIGRsbSBs b2NrLA0KPiBidXQgdGhlIHJlZmxpbmsgcHJvY2VzcyBpcyBibG9ja2VkIGF0IG9jZnMyX2luaXRf c2VjdXJpdHlfYW5kX2FjbCsweGJlLzB4MWQwLCB0aGUgcHJvY2VzcyBpcyB3YWl0IGZvciBnZXR0 aW5nDQo+IC5zbmFwc2hvdHMgZGlyZWN0b3J5IGlub2RlIGRsbSBsb2NrLg0KPiBUaGUgcmVmbGlu ayBwcm9jZXNzIG9uIG90aGVyIG5vZGVzIGlzIGFsc28gYmxvY2tlZCBhdCBnZXR0aW5nIC5zbmFw c2hvdHMNCj4gZGlyZWN0b3J5IGlub2RlIGRsbSBsb2NrLCB0aGVuIHRoZSBmaWxlIHN5c3RlbSBj YW5ub3QgYmUgbGlzdGVkIHNpbmNlICJscyAtbCIgY29tbWFuZCBhbHNvIG5lZWQgdG8gZ2V0IC5z bmFwc2hvdCBkaXJlY3RvcnkncyBhdHRyaWJ1dGVzLg0KPiANCg0KSSBzdGlsbCBkaWRu4oCZdCBn ZXQgd2hpY2ggbG9ja3MgYXJlIGludm9sdmVkIGluIHRoZSBkZWFkIGxvY2sgcGFydHkuDQpJZiB0 aGF0IGlzIG5vdCBjbGVhciwgaXTigJlzIGhhcmQgdG8gcmV2aWV3IHlvdXIgcGF0Y2ggZnVydGhl ci4NCg0KDQo+IFdoeSB0aGUgdGhlIHJlZmxpbmsgcHJvY2VzcyBpcyBibG9ja2VkIGF0IG9jZnMy X2luaXRfc2VjdXJpdHlfYW5kX2FjbCsweGJlLzB4MWQwPyBJIGZlZWwgaXQgaXMgY2F1c2VkIGJ5 IG11bHRpcGxlIGFjcXVpcmluZyB0aGUgLnNuYXBzaG90cyBkaXJlY3RvcnkgaW5vZGUgZGxtIGxv Y2sgaW4gb2NmczJfcmVmbGluayBmdW5jdGlvbi4gRm9yIHRoZSBkZWVwZXIgcmVhc29ucywgaXQg aXMgcHJvYmFibHkgcmVsYXRlZCB0byBkbG1nbHVlIGxheWVyIG9yIHRoZXJlIGlzIGFueSBmYWN0 b3Igd2hpY2ggYmxvY2tlZCAuc25hcHNob3RzIGlub2RlIGRsbSBsb2NrIHRvIGRvd25jb252ZXJ0 Lg0KDQpJIHN1Z2dlc3QgeW91IHRha2UgdGNwZHVtcCBpbiB5b3VyIHN5c3RlbSBhbmQgZ2V0IGNs ZWFyIHdoYXQgd2FzIGdvaW5nIG9uLiAgU28geW91IGNhbiByZW1vdmUgdGhlIHdvcmRzIGxpa2Ug 4oCcZmVlbOKAnSBvciDigJxwcm9iYWJseeKAnSBuZXh0IHRpbWUuDQpJZiB0aGUgcHJvYmxlbSBp cyBpbiBkb3duY29udmVydCwgd2Ugc2hvdWxkIGZpeCB0aGF0IGluc3RlYWQuDQoNCnRoYW5rcywN CndlbmdhbmcNCg0KPiANCj4gVGhhbmtzDQo+IEdhbmcNCj4gDQo+IA0KPiANCj4gDQo+IE9uIDIw MjEvNy8zMSAwOjM1LCBXZW5nYW5nIFdhbmcgd3JvdGU6DQo+PiBIaSBHYW5nLA0KPj4+IE9uIEp1 bCAyOSwgMjAyMSwgYXQgMTE6MTYgUE0sIEdhbmcgSGUgPGdoZUBzdXNlLmNvbT4gd3JvdGU6DQo+ Pj4gDQo+Pj4gSGVsbG8gV2VuZ2FuZyBhbmQgYWxsLA0KPj4+IA0KPj4+IFRoaXMgaXNzdWUgY2Fu IGJlIHJlcHJvZHVjZWQgc3RhYmx5IHdoZW4geW91IHJ1biB0aGUgYmVsb3cgcmVmbGluayBjb21t YW5kIGxpbmUobWF5YmUgeW91IGFsc28gY2FuIGZvbGxvdyBhICJybSB0aGlzIGZpbGUiIGNvbW1h bmQgbGluZSBhbmQgIHNsZWVwIHNvbWUgdXNlY3MpIGZyb20gZWFjaCBub2RlIHJlcGVhdGVkbHkg Zm9yIGEgd2hpbGUuDQo+Pj4gQmFzZWQgb24gbXkgb2JzZXJ2YXRpb24sIHRoZSByZWZsaW5rIHBy b2Nlc3NlcyBhcmUgYWx3YXlzIGJsb2NrZWQgYXQgdGhlIGJlbG93IHBvaW50cy4NCj4+PiBGcm9t IGRsbV90b29sIG91dHB1dCBhbmQgY3Jhc2ggYW5hbHlzaXMsIHRoZSBub2RlMSBoYXMgYWNxdWly ZWQgLnNuYXBzaG90cyBkaXJlY3RvcnkgaW5vZGUgRVggZGxtIGxvY2ssIGJ1dCB0aGUgcmVmbGlu ayBwcm9jZXNzIGlzIGJsb2NrZWQgYXQgb2NmczJfaW5pdF9zZWN1cml0eV9hbmRfYWNsKzB4YmUv MHgxZDAgdG8gYWNxdXJlIGl0J3MgaW5vZGUgZGxtIGxvY2sgYWdhaW4uDQo+PiBTbyB0aGUgcmVm bGluayBwYXRoIG9uIG5vZGUgMSBoYXZlIC5zbmFwc2hvdHMgaW5vZGUgbG9jayBncmFudGVkIGFu ZCBpcyBibG9ja2luZyBhdCB0aGUgbmV3IGNyZWF0ZWQgaW5vZGUgdW5kZXIgb3JwaGFuIGRpcmVj dG9yeS4gIEJUVywgd2hhdOKAmXMgLnNuYXBzaG90cyBkaXJlY3Rvcnk/IFdoYXTigJlzIHRoZSBj YWxsIHBhdGggdG8gbG9jayB0aGF0IC5zbmFwc2hvdHMgaW5vZGU/DQo+Pj4gT24gdGhlIG90aGVy IHR3byBub2RlcywgdGhlIHJlZmxpbmsgcHJvY2Vzc2VzIGFyZSBibG9ja2VkIGF0IGFjcXVpcmUg LnNuYXBzaG90cyBkaXJlY3RvcnkgaW5vZGUgZGxtIGxvY2ssIHRoZW4gdGhlIHdob2xlIGZpbGUg c3lzdGVtIGlzIGh1bmcsDQo+Pj4geW91IGNhbiBub3QgbGlzdCB0aGlzIGZpbGUgYWdhaW4uDQo+ PiBTbyB0aGVyZSBhcmUgcmVmbGluayBwYXRocyBvbiB0aGUgb3RoZXIgdHdvIG5vZGVzIGJsb2Nr aW5nIGF0IC5zbmFwc2hvdHMgaW5vZGUuIEJ1dCB3aGF0IGxvY2sgdGhleSBhcmUgZ3JhbnRlZCBh bHJlYWR5Pw0KPj4gRm9yIGEgdHlwaWNhbCBBQkJBIGRlYWRsb2NrLA0KPj4gcGF0aCAxIGdyYW50 ZWQgbG9jayBBIGFuZCBibG9ja3MgYXQgbG9jayBCDQo+PiBwYXRoIDIgZ3JhbnRlZCBsb2NrIEIg YW5kIGJsb2NrcyBhdCBsb2NrIEENCj4+IFBlciB5b3VyIGRlc2NyaXB0aW9uLCBJIHNlZSB0aGlz Og0KPj4gcmVmbGluayBwYXRoIG9uIG5vZGUxICBncmFudGVkIC5zbmFwc2hvdHMgbG9jayBhbmQg YmxvY2tzIGF0IG5ldyBpbm9kZSBsb2NrDQo+PiByZWZsbmsgcGF0aHMgb24gb25kZTIvMyBibG9j ayBhdCAuc25hcHNob3RzIGxvY2suDQo+PiBJIGRvbid0IHNlZSBob3cgZGVhZGxvY2sgZm9ybWVk 4oCmIHRoZSBuZXcgaW5vZGUgbG9jayBpcyBncmFudGVkIHRvIGFueSBvZiB0aGUgcmVmbGluayBw YXRoIG9uIG5vZGUyLzM/IGhvdz8NCj4+IHRoYW5rcywNCj4+IHdlbmdhbmcNCj4+PiANCj4+PiBU aGUgcHJvYmxlbSBsb29rcyBsaWtlIGFjcXVpcmluZyB0aGUgZGVzdGluYXRpb24gZGlyZWNvcnkg bXVsdGlwbGUgZHVyaW5nIG9jZnMyX3JlZmxpbmssIGRsbSBnbHVlIGxheWVyIGNhbm5vdCBkb3du Y29udmVydCBsb2NrIGluIHNvbWUgY2FzZS4NCj4+PiBlLmcuDQo+Pj4ga2VybmVsOiAob2NmczJk Yy1GNTBCMjAzLDE1OTMsMCk6b2NmczJfZG93bmNvbnZlcnRfbG9jazozNjc0IEVSUk9SOiBETE0g ZXJyb3IgLTE2IHdoaWxlIGNhbGxpbmcgb2NmczJfZGxtX2xvY2sgb24gcmVzb3VyY2UgTTAwMDAw MDAwMDAwMDAwMDAwNDY2MWMwMDAwMDAwMA0KPj4+IGtlcm5lbDogKG9jZnMyZGMtRjUwQjIwMywx NTkzLDApOm9jZnMyX3VuYmxvY2tfbG9jazozOTE4IEVSUk9SOiBzdGF0dXMgPSAtMTYNCj4+PiBr ZXJuZWw6IChvY2ZzMmRjLUY1MEIyMDMsMTU5MywwKTpvY2ZzMl9wcm9jZXNzX2Jsb2NrZWRfbG9j azo0MzE3IEVSUk9SOiBzdGF0dXMgPSAtMTYNCj4+PiANCj4+PiBUaGVuLCBJIGNoYW5nZSB0aGUg Y29kZSB0byBhY3F1aXJlIHRoaXMgZGVzdGluYXRpb24gZGlyZWNvcnkgZGxtIGxvY2ssIGFuZCBo b2xkIHRoZSBsb2NrIHVudGlsIHRoZSBlbmQgb2Ygb2NmczJfcmVmbGluayBmdW5jdGlvbi4NCj4+ PiBBZnRlciB0aGlzIGNoYW5nZSwgSSBkaWQgbm90IGVuY291bnRlciB0aGlzIGhhbmcgcHJvYmxl bSBhZ2FpbiBhZnRlciBsb3RzIG9mIHRlc3RpbmcuIFNlY29uZCwgSSBmaW5kIHRoZSBjb2RlIGNo YW5nZSBhbHNvIGltcHJvdmUgcmVmbGluayBwZXJmb3JtYW5jZSwgc2luY2UgdGhlIGNvZGUgYXZv aWRzIHRoZSBwcmV2aW91cyBwaW5nLXBvbmcgZWZmZWN0Lg0KPj4+IA0KPj4+IFRoYW5rcw0KPj4+ IEdhbmcNCj4+PiANCj4+PiANCj4+PiBPbiAyMDIxLzcvMzAgNjowNywgV2VuZ2FuZyBXYW5nIHdy b3RlOg0KPj4+PiBIaSBHYW5nLA0KPj4+PiBJ4oCZZCBzdWdnZXN0IHlvdSBsaXN0IHRoZSBjYWxs IHBhdGhzIG9uIHRoZSByZWxhdGVkIG5vZGVzLCBTYXkgY2FsbCBwYXRoIDEgb24gbm9kZSBvbmUg Z3JhbnRlZCBsb2NrIEEgYW5kIGlzIHJlcXVlc3RpbmcgZm9yIGxvY2sgQiwgYXQgdGhlIHNhbWUg dGltZSwgcGF0aDIgb24gbm9kZSB0d28gZ3JhbnRlZCBsb2NrIEIgYW5kIG5vdyBpcyByZXF1ZXN0 aW5nIGZvciBsb2NrIEEuDQo+Pj4+IFdpdGggdGhhdCwgdGhlIHByb2JsZW0gd291bGQgYmUgZWFz aWVyIHRvIHVuZGVyc3RhbmQuDQo+Pj4+IHRoYW5rcywNCj4+Pj4gd2VuZ2FuZw0KPj4+Pj4gT24g SnVsIDI5LCAyMDIxLCBhdCA0OjAyIEFNLCBHYW5nIEhlIDxnaGVAc3VzZS5jb20+IHdyb3RlOg0K Pj4+Pj4gDQo+Pj4+PiBSdW5uaW5nIHJlZmxpbmsgZnJvbSBtdWx0aXBsZSBub2RlcyBzaW11bHRh bmVvdXNseSB0byBjbG9uZSBhIGZpbGUNCj4+Pj4+IHRvIHRoZSBzYW1lIGRpcmVjdG9yeSBwcm9i YWJseSB0cmlnZ2VycyBhIGRlYWRsb2NrIGlzc3VlLg0KPj4+Pj4gRm9yIGV4YW1wbGUsIHRoZXJl IGlzIGEgdGhyZWUgbm9kZSBvY2ZzMiBjbHVzdGVyLCBlYWNoIG5vZGUgbW91bnRzDQo+Pj4+PiB0 aGUgb2NmczIgZmlsZSBzeXN0ZW0gdG8gL21udC9zaGFyZWQsIGFuZCBydW4gdGhlIHJlZmxpbmsg Y29tbWFuZA0KPj4+Pj4gZnJvbSBlYWNoIG5vZGUgcmVwZWF0ZWRseSwgbGlrZQ0KPj4+Pj4gIHJl ZmxpbmsgIi9tbnQvc2hhcmVkL3Rlc3QiIFwNCj4+Pj4+ICAiL21udC9zaGFyZWQvLnNuYXBzaG90 cy90ZXN0LmBkYXRlICslbSVkJUglTSVTYC5gaG9zdG5hbWVgIg0KPj4+Pj4gdGhlbiwgcmVmbGlu ayBjb21tYW5kIHByb2Nlc3Mgd2lsbCBiZSBodW5nIG9uIGVhY2ggbm9kZSwgYW5kIHlvdQ0KPj4+ Pj4gY2FuJ3QgbGlzdCB0aGlzIGZpbGUgc3lzdGVtIGRpcmVjdG9yeS4NCj4+Pj4+IFRoZSBwcm9i bGVtYXRpYyByZWZsaW5rIGNvbW1hbmQgcHJvY2VzcyBpcyBibG9ja2VkIGF0IG9uZSBub2RlLA0K Pj4+Pj4gdGFzazpyZWZsaW5rICAgICAgICAgc3RhdGU6RCBzdGFjazogICAgMCBwaWQ6IDEyODMg cHBpZDogIDQxNTQNCj4+Pj4+IENhbGwgVHJhY2U6DQo+Pj4+PiAgX19zY2hlZHVsZSsweDJmZC8w eDc1MA0KPj4+Pj4gIHNjaGVkdWxlKzB4MmYvMHhhMA0KPj4+Pj4gIHNjaGVkdWxlX3RpbWVvdXQr MHgxY2MvMHgzMTANCj4+Pj4+ICA/IG9jZnMyX2NvbnRyb2xfY2Z1KzB4NTAvMHg1MCBbb2NmczJf c3RhY2tfdXNlcl0NCj4+Pj4+ICA/IDB4ZmZmZmZmZmZjMGUzZTAwMA0KPj4+Pj4gIHdhaXRfZm9y X2NvbXBsZXRpb24rMHhiYS8weDE0MA0KPj4+Pj4gID8gd2FrZV91cF9xKzB4YTAvMHhhMA0KPj4+ Pj4gIF9fb2NmczJfY2x1c3Rlcl9sb2NrLmlzcmEuNDErMHgzYjUvMHg4MjAgW29jZnMyXQ0KPj4+ Pj4gID8gb2NmczJfaW5vZGVfbG9ja19mdWxsX25lc3RlZCsweDFmYy8weDk2MCBbb2NmczJdDQo+ Pj4+PiAgb2NmczJfaW5vZGVfbG9ja19mdWxsX25lc3RlZCsweDFmYy8weDk2MCBbb2NmczJdDQo+ Pj4+PiAgb2NmczJfaW5pdF9zZWN1cml0eV9hbmRfYWNsKzB4YmUvMHgxZDAgW29jZnMyXQ0KPj4+ Pj4gIG9jZnMyX3JlZmxpbmsrMHg0MzYvMHg0YzAgW29jZnMyXQ0KPj4+Pj4gID8gb2NmczJfcmVm bGlua19pb2N0bCsweDJjYS8weDM2MCBbb2NmczJdDQo+Pj4+PiAgb2NmczJfcmVmbGlua19pb2N0 bCsweDJjYS8weDM2MCBbb2NmczJdDQo+Pj4+PiAgb2NmczJfaW9jdGwrMHgyNWUvMHg2NzAgW29j ZnMyXQ0KPj4+Pj4gIGRvX3Zmc19pb2N0bCsweGEwLzB4NjgwDQo+Pj4+PiAga3N5c19pb2N0bCsw eDcwLzB4ODANCj4+Pj4+ICBfX3g2NF9zeXNfaW9jdGwrMHgxNi8weDIwDQo+Pj4+PiAgZG9fc3lz Y2FsbF82NCsweDViLzB4MWUwDQo+Pj4+PiBUaGUgb3RoZXIgcmVmbGluayBjb21tYW5kIHByb2Nl c3NlcyBhcmUgYmxvY2tlZCBhdCBvdGhlciBub2RlcywNCj4+Pj4+IHRhc2s6cmVmbGluayAgICAg ICAgIHN0YXRlOkQgc3RhY2s6ICAgIDAgcGlkOjI5NzU5IHBwaWQ6ICA0MDg4DQo+Pj4+PiBDYWxs IFRyYWNlOg0KPj4+Pj4gIF9fc2NoZWR1bGUrMHgyZmQvMHg3NTANCj4+Pj4+ICBzY2hlZHVsZSsw eDJmLzB4YTANCj4+Pj4+ICBzY2hlZHVsZV90aW1lb3V0KzB4MWNjLzB4MzEwDQo+Pj4+PiAgPyBv Y2ZzMl9jb250cm9sX2NmdSsweDUwLzB4NTAgW29jZnMyX3N0YWNrX3VzZXJdDQo+Pj4+PiAgPyAw eGZmZmZmZmZmYzBiMTkwMDANCj4+Pj4+ICB3YWl0X2Zvcl9jb21wbGV0aW9uKzB4YmEvMHgxNDAN Cj4+Pj4+ICA/IHdha2VfdXBfcSsweGEwLzB4YTANCj4+Pj4+ICBfX29jZnMyX2NsdXN0ZXJfbG9j ay5pc3JhLjQxKzB4M2I1LzB4ODIwIFtvY2ZzMl0NCj4+Pj4+ICA/IG9jZnMyX2lub2RlX2xvY2tf ZnVsbF9uZXN0ZWQrMHgxZmMvMHg5NjAgW29jZnMyXQ0KPj4+Pj4gIG9jZnMyX2lub2RlX2xvY2tf ZnVsbF9uZXN0ZWQrMHgxZmMvMHg5NjAgW29jZnMyXQ0KPj4+Pj4gIG9jZnMyX212X29ycGhhbmVk X2lub2RlX3RvX25ldysweDg3LzB4N2UwIFtvY2ZzMl0NCj4+Pj4+ICBvY2ZzMl9yZWZsaW5rKzB4 MzM1LzB4NGMwIFtvY2ZzMl0NCj4+Pj4+ICA/IG9jZnMyX3JlZmxpbmtfaW9jdGwrMHgyY2EvMHgz NjAgW29jZnMyXQ0KPj4+Pj4gIG9jZnMyX3JlZmxpbmtfaW9jdGwrMHgyY2EvMHgzNjAgW29jZnMy XQ0KPj4+Pj4gIG9jZnMyX2lvY3RsKzB4MjVlLzB4NjcwIFtvY2ZzMl0NCj4+Pj4+ICBkb192ZnNf aW9jdGwrMHhhMC8weDY4MA0KPj4+Pj4gIGtzeXNfaW9jdGwrMHg3MC8weDgwDQo+Pj4+PiAgX194 NjRfc3lzX2lvY3RsKzB4MTYvMHgyMA0KPj4+Pj4gIGRvX3N5c2NhbGxfNjQrMHg1Yi8weDFlMA0K Pj4+Pj4gb3INCj4+Pj4+IHRhc2s6cmVmbGluayAgICAgICAgIHN0YXRlOkQgc3RhY2s6ICAgIDAg cGlkOjE4NDY1IHBwaWQ6ICA0MTU2DQo+Pj4+PiBDYWxsIFRyYWNlOg0KPj4+Pj4gIF9fc2NoZWR1 bGUrMHgzMDIvMHg5NDANCj4+Pj4+ICA/IHVzbGVlcF9yYW5nZSsweDgwLzB4ODANCj4+Pj4+ICBz Y2hlZHVsZSsweDQ2LzB4YjANCj4+Pj4+ICBzY2hlZHVsZV90aW1lb3V0KzB4ZmYvMHgxNDANCj4+ Pj4+ICA/IG9jZnMyX2NvbnRyb2xfY2Z1KzB4NTAvMHg1MCBbb2NmczJfc3RhY2tfdXNlcl0NCj4+ Pj4+ICA/IDB4ZmZmZmZmZmZjMGMzYjAwMA0KPj4+Pj4gIF9fd2FpdF9mb3JfY29tbW9uKzB4Yjkv MHgxNzANCj4+Pj4+ICBfX29jZnMyX2NsdXN0ZXJfbG9jay5jb25zdHByb3AuMCsweDFkNi8weDg2 MCBbb2NmczJdDQo+Pj4+PiAgPyBvY2ZzMl93YWl0X2Zvcl9yZWNvdmVyeSsweDQ5LzB4ZDAgW29j ZnMyXQ0KPj4+Pj4gID8gb2NmczJfaW5vZGVfbG9ja19mdWxsX25lc3RlZCsweDMwZi8weGE1MCBb b2NmczJdDQo+Pj4+PiAgb2NmczJfaW5vZGVfbG9ja19mdWxsX25lc3RlZCsweDMwZi8weGE1MCBb b2NmczJdDQo+Pj4+PiAgb2NmczJfaW5vZGVfbG9ja190cmFja2VyKzB4ZjIvMHgyYjAgW29jZnMy XQ0KPj4+Pj4gID8gZHB1dCsweDMyLzB4MmYwDQo+Pj4+PiAgb2NmczJfcGVybWlzc2lvbisweDQ1 LzB4ZTAgW29jZnMyXQ0KPj4+Pj4gIGlub2RlX3Blcm1pc3Npb24rMHhjYy8weDE3MA0KPj4+Pj4g IGxpbmtfcGF0aF93YWxrLnBhcnQuMC5jb25zdHByb3AuMCsweDJhMi8weDM4MA0KPj4+Pj4gID8g cGF0aF9pbml0KzB4MmMxLzB4M2YwDQo+Pj4+PiAgcGF0aF9wYXJlbnRhdCsweDNjLzB4OTANCj4+ Pj4+ICBmaWxlbmFtZV9wYXJlbnRhdCsweGMxLzB4MWQwDQo+Pj4+PiAgPyBmaWxlbmFtZV9sb29r dXArMHgxMzgvMHgxYzANCj4+Pj4+ICBmaWxlbmFtZV9jcmVhdGUrMHg0My8weDE2MA0KPj4+Pj4g IG9jZnMyX3JlZmxpbmtfaW9jdGwrMHhlNi8weDM4MCBbb2NmczJdDQo+Pj4+PiAgb2NmczJfaW9j dGwrMHgxZWEvMHgyYzAgW29jZnMyXQ0KPj4+Pj4gID8gZG9fc3lzX29wZW5hdDIrMHg4MS8weDE1 MA0KPj4+Pj4gIF9feDY0X3N5c19pb2N0bCsweDgyLzB4YjANCj4+Pj4+ICBkb19zeXNjYWxsXzY0 KzB4NjEvMHhiMA0KPj4+Pj4gDQo+Pj4+PiBUaGUgZGVhZGxvY2sgaXMgY2F1c2VkIGJ5IG11bHRp cGxlIGFjcXVpcmluZyB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5DQo+Pj4+PiBpbm9kZSBkbG0g bG9jayBpbiBvY2ZzMl9yZWZsaW5rIGZ1bmN0aW9uLCB3ZSBzaG91bGQgYWNxdWlyZSB0aGlzDQo+ Pj4+PiBkaXJlY3RvcnkgaW5vZGUgZGxtIGxvY2sgYXQgdGhlIGJlZ2lubmluZywgYW5kIGhvbGQg dGhpcyBkbG0gbG9jayB1bnRpbA0KPj4+Pj4gZW5kIG9mIHRoZSBmdW5jdGlvbi4NCj4+Pj4+IA0K Pj4+Pj4gU2lnbmVkLW9mZi1ieTogR2FuZyBIZSA8Z2hlQHN1c2UuY29tPg0KPj4+Pj4gLS0tDQo+ Pj4+PiBmcy9vY2ZzMi9uYW1laS5jICAgICAgICB8IDMyICsrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tDQo+Pj4+PiBmcy9vY2ZzMi9uYW1laS5oICAgICAgICB8ICAyICsrDQo+Pj4+PiBm cy9vY2ZzMi9yZWZjb3VudHRyZWUuYyB8IDE1ICsrKysrKysrKysrLS0tLQ0KPj4+Pj4gZnMvb2Nm czIveGF0dHIuYyAgICAgICAgfCAxMiArLS0tLS0tLS0tLS0NCj4+Pj4+IGZzL29jZnMyL3hhdHRy LmggICAgICAgIHwgIDEgKw0KPj4+Pj4gNSBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCsp LCAzNCBkZWxldGlvbnMoLSkNCj4+Pj4+IA0KPj4+Pj4gZGlmZiAtLWdpdCBhL2ZzL29jZnMyL25h bWVpLmMgYi9mcy9vY2ZzMi9uYW1laS5jDQo+Pj4+PiBpbmRleCAyYzQ2ZmY2YmE0ZWEuLmY4YmJi MjJjYzYwYiAxMDA2NDQNCj4+Pj4+IC0tLSBhL2ZzL29jZnMyL25hbWVpLmMNCj4+Pj4+ICsrKyBi L2ZzL29jZnMyL25hbWVpLmMNCj4+Pj4+IEBAIC0yNDg5LDYgKzI0ODksNyBAQCBzdGF0aWMgaW50 IG9jZnMyX3ByZXBfbmV3X29ycGhhbmVkX2ZpbGUoc3RydWN0IGlub2RlICpkaXIsDQo+Pj4+PiB9 DQo+Pj4+PiANCj4+Pj4+IGludCBvY2ZzMl9jcmVhdGVfaW5vZGVfaW5fb3JwaGFuKHN0cnVjdCBp bm9kZSAqZGlyLA0KPj4+Pj4gKwkJCQkgc3RydWN0IGJ1ZmZlcl9oZWFkICoqZGlyX2JoLA0KPj4+ Pj4gCQkJCSBpbnQgbW9kZSwNCj4+Pj4+IAkJCQkgc3RydWN0IGlub2RlICoqbmV3X2lub2RlKQ0K Pj4+Pj4gew0KPj4+Pj4gQEAgLTI1OTcsMTMgKzI1OTgsMTYgQEAgaW50IG9jZnMyX2NyZWF0ZV9p bm9kZV9pbl9vcnBoYW4oc3RydWN0IGlub2RlICpkaXIsDQo+Pj4+PiANCj4+Pj4+IAlicmVsc2Uo bmV3X2RpX2JoKTsNCj4+Pj4+IA0KPj4+Pj4gLQlpZiAoIXN0YXR1cykNCj4+Pj4+IC0JCSpuZXdf aW5vZGUgPSBpbm9kZTsNCj4+Pj4+IC0NCj4+Pj4+IAlvY2ZzMl9mcmVlX2Rpcl9sb29rdXBfcmVz dWx0KCZvcnBoYW5faW5zZXJ0KTsNCj4+Pj4+IA0KPj4+Pj4gLQlvY2ZzMl9pbm9kZV91bmxvY2so ZGlyLCAxKTsNCj4+Pj4+IC0JYnJlbHNlKHBhcmVudF9kaV9iaCk7DQo+Pj4+PiArCWlmICghc3Rh dHVzKSB7DQo+Pj4+PiArCQkqbmV3X2lub2RlID0gaW5vZGU7DQo+Pj4+PiArCQkqZGlyX2JoID0g cGFyZW50X2RpX2JoOw0KPj4+Pj4gKwl9IGVsc2Ugew0KPj4+Pj4gKwkJb2NmczJfaW5vZGVfdW5s b2NrKGRpciwgMSk7DQo+Pj4+PiArCQlicmVsc2UocGFyZW50X2RpX2JoKTsNCj4+Pj4+ICsJfQ0K Pj4+Pj4gKw0KPj4+Pj4gCXJldHVybiBzdGF0dXM7DQo+Pj4+PiB9DQo+Pj4+PiANCj4+Pj4+IEBA IC0yNzYwLDExICsyNzY0LDExIEBAIGludCBvY2ZzMl9kZWxfaW5vZGVfZnJvbV9vcnBoYW4oc3Ry dWN0IG9jZnMyX3N1cGVyICpvc2IsDQo+Pj4+PiB9DQo+Pj4+PiANCj4+Pj4+IGludCBvY2ZzMl9t dl9vcnBoYW5lZF9pbm9kZV90b19uZXcoc3RydWN0IGlub2RlICpkaXIsDQo+Pj4+PiArCQkJCSAg IHN0cnVjdCBidWZmZXJfaGVhZCAqZGlyX2JoLA0KPj4+Pj4gCQkJCSAgIHN0cnVjdCBpbm9kZSAq aW5vZGUsDQo+Pj4+PiAJCQkJICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KPj4+Pj4gew0KPj4+ Pj4gCWludCBzdGF0dXMgPSAwOw0KPj4+Pj4gLQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKnBhcmVudF9k aV9iaCA9IE5VTEw7DQo+Pj4+PiAJaGFuZGxlX3QgKmhhbmRsZSA9IE5VTEw7DQo+Pj4+PiAJc3Ry dWN0IG9jZnMyX3N1cGVyICpvc2IgPSBPQ0ZTMl9TQihkaXItPmlfc2IpOw0KPj4+Pj4gCXN0cnVj dCBvY2ZzMl9kaW5vZGUgKmRpcl9kaSwgKmRpOw0KPj4+Pj4gQEAgLTI3NzgsMTQgKzI3ODIsNyBA QCBpbnQgb2NmczJfbXZfb3JwaGFuZWRfaW5vZGVfdG9fbmV3KHN0cnVjdCBpbm9kZSAqZGlyLA0K Pj4+Pj4gCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpT0NGUzJfSShkaXIpLT5pcF9ibGtubywNCj4+ Pj4+IAkJCQkodW5zaWduZWQgbG9uZyBsb25nKU9DRlMyX0koaW5vZGUpLT5pcF9ibGtubyk7DQo+ Pj4+PiANCj4+Pj4+IC0Jc3RhdHVzID0gb2NmczJfaW5vZGVfbG9jayhkaXIsICZwYXJlbnRfZGlf YmgsIDEpOw0KPj4+Pj4gLQlpZiAoc3RhdHVzIDwgMCkgew0KPj4+Pj4gLQkJaWYgKHN0YXR1cyAh PSAtRU5PRU5UKQ0KPj4+Pj4gLQkJCW1sb2dfZXJybm8oc3RhdHVzKTsNCj4+Pj4+IC0JCXJldHVy biBzdGF0dXM7DQo+Pj4+PiAtCX0NCj4+Pj4+IC0NCj4+Pj4+IC0JZGlyX2RpID0gKHN0cnVjdCBv Y2ZzMl9kaW5vZGUgKikgcGFyZW50X2RpX2JoLT5iX2RhdGE7DQo+Pj4+PiArCWRpcl9kaSA9IChz dHJ1Y3Qgb2NmczJfZGlub2RlICopIGRpcl9iaC0+Yl9kYXRhOw0KPj4+Pj4gCWlmICghZGlyX2Rp LT5pX2xpbmtzX2NvdW50KSB7DQo+Pj4+PiAJCS8qIGNhbid0IG1ha2UgYSBmaWxlIGluIGEgZGVs ZXRlZCBkaXJlY3RvcnkuICovDQo+Pj4+PiAJCXN0YXR1cyA9IC1FTk9FTlQ7DQo+Pj4+PiBAQCAt Mjc5OCw3ICsyNzk1LDcgQEAgaW50IG9jZnMyX212X29ycGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1 Y3QgaW5vZGUgKmRpciwNCj4+Pj4+IAkJZ290byBsZWF2ZTsNCj4+Pj4+IA0KPj4+Pj4gCS8qIGdl dCBhIHNwb3QgaW5zaWRlIHRoZSBkaXIuICovDQo+Pj4+PiAtCXN0YXR1cyA9IG9jZnMyX3ByZXBh cmVfZGlyX2Zvcl9pbnNlcnQob3NiLCBkaXIsIHBhcmVudF9kaV9iaCwNCj4+Pj4+ICsJc3RhdHVz ID0gb2NmczJfcHJlcGFyZV9kaXJfZm9yX2luc2VydChvc2IsIGRpciwgZGlyX2JoLA0KPj4+Pj4g CQkJCQkgICAgICBkZW50cnktPmRfbmFtZS5uYW1lLA0KPj4+Pj4gCQkJCQkgICAgICBkZW50cnkt PmRfbmFtZS5sZW4sICZsb29rdXApOw0KPj4+Pj4gCWlmIChzdGF0dXMgPCAwKSB7DQo+Pj4+PiBA QCAtMjg2Miw3ICsyODU5LDcgQEAgaW50IG9jZnMyX212X29ycGhhbmVkX2lub2RlX3RvX25ldyhz dHJ1Y3QgaW5vZGUgKmRpciwNCj4+Pj4+IAlvY2ZzMl9qb3VybmFsX2RpcnR5KGhhbmRsZSwgZGlf YmgpOw0KPj4+Pj4gDQo+Pj4+PiAJc3RhdHVzID0gb2NmczJfYWRkX2VudHJ5KGhhbmRsZSwgZGVu dHJ5LCBpbm9kZSwNCj4+Pj4+IC0JCQkJIE9DRlMyX0koaW5vZGUpLT5pcF9ibGtubywgcGFyZW50 X2RpX2JoLA0KPj4+Pj4gKwkJCQkgT0NGUzJfSShpbm9kZSktPmlwX2Jsa25vLCBkaXJfYmgsDQo+ Pj4+PiAJCQkJICZsb29rdXApOw0KPj4+Pj4gCWlmIChzdGF0dXMgPCAwKSB7DQo+Pj4+PiAJCW1s b2dfZXJybm8oc3RhdHVzKTsNCj4+Pj4+IEBAIC0yODg2LDEwICsyODgzLDcgQEAgaW50IG9jZnMy X212X29ycGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1Y3QgaW5vZGUgKmRpciwNCj4+Pj4+IAlpcHV0 KG9ycGhhbl9kaXJfaW5vZGUpOw0KPj4+Pj4gbGVhdmU6DQo+Pj4+PiANCj4+Pj4+IC0Jb2NmczJf aW5vZGVfdW5sb2NrKGRpciwgMSk7DQo+Pj4+PiAtDQo+Pj4+PiAJYnJlbHNlKGRpX2JoKTsNCj4+ Pj4+IC0JYnJlbHNlKHBhcmVudF9kaV9iaCk7DQo+Pj4+PiAJYnJlbHNlKG9ycGhhbl9kaXJfYmgp Ow0KPj4+Pj4gDQo+Pj4+PiAJb2NmczJfZnJlZV9kaXJfbG9va3VwX3Jlc3VsdCgmbG9va3VwKTsN Cj4+Pj4+IGRpZmYgLS1naXQgYS9mcy9vY2ZzMi9uYW1laS5oIGIvZnMvb2NmczIvbmFtZWkuaA0K Pj4+Pj4gaW5kZXggOWNjODkxZWI4NzRlLi4wM2EyYzUyNmUyYzEgMTAwNjQ0DQo+Pj4+PiAtLS0g YS9mcy9vY2ZzMi9uYW1laS5oDQo+Pj4+PiArKysgYi9mcy9vY2ZzMi9uYW1laS5oDQo+Pj4+PiBA QCAtMjQsNiArMjQsNyBAQCBpbnQgb2NmczJfb3JwaGFuX2RlbChzdHJ1Y3Qgb2NmczJfc3VwZXIg Km9zYiwNCj4+Pj4+IAkJICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKm9ycGhhbl9kaXJfYmgsDQo+ Pj4+PiAJCSAgICAgYm9vbCBkaW8pOw0KPj4+Pj4gaW50IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9v cnBoYW4oc3RydWN0IGlub2RlICpkaXIsDQo+Pj4+PiArCQkJCSBzdHJ1Y3QgYnVmZmVyX2hlYWQg KipkaXJfYmgsDQo+Pj4+PiAJCQkJIGludCBtb2RlLA0KPj4+Pj4gCQkJCSBzdHJ1Y3QgaW5vZGUg KipuZXdfaW5vZGUpOw0KPj4+Pj4gaW50IG9jZnMyX2FkZF9pbm9kZV90b19vcnBoYW4oc3RydWN0 IG9jZnMyX3N1cGVyICpvc2IsDQo+Pj4+PiBAQCAtMzIsNiArMzMsNyBAQCBpbnQgb2NmczJfZGVs X2lub2RlX2Zyb21fb3JwaGFuKHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiLA0KPj4+Pj4gCQlzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRpX2JoLA0KPj4+Pj4gCQlpbnQg dXBkYXRlX2lzaXplLCBsb2ZmX3QgZW5kKTsNCj4+Pj4+IGludCBvY2ZzMl9tdl9vcnBoYW5lZF9p bm9kZV90b19uZXcoc3RydWN0IGlub2RlICpkaXIsDQo+Pj4+PiArCQkJCSAgIHN0cnVjdCBidWZm ZXJfaGVhZCAqZGlyX2JoLA0KPj4+Pj4gCQkJCSAgIHN0cnVjdCBpbm9kZSAqbmV3X2lub2RlLA0K Pj4+Pj4gCQkJCSAgIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnkpOw0KPj4+Pj4gDQo+Pj4+PiBk aWZmIC0tZ2l0IGEvZnMvb2NmczIvcmVmY291bnR0cmVlLmMgYi9mcy9vY2ZzMi9yZWZjb3VudHRy ZWUuYw0KPj4+Pj4gaW5kZXggN2Y2MzU1Y2JiNTg3Li5hOWEwYzdjMzdlOGUgMTAwNjQ0DQo+Pj4+ PiAtLS0gYS9mcy9vY2ZzMi9yZWZjb3VudHRyZWUuYw0KPj4+Pj4gKysrIGIvZnMvb2NmczIvcmVm Y291bnR0cmVlLmMNCj4+Pj4+IEBAIC00MjUwLDcgKzQyNTAsNyBAQCBzdGF0aWMgaW50IG9jZnMy X3JlZmxpbmsoc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwgc3RydWN0IGlub2RlICpkaXIsDQo+ Pj4+PiB7DQo+Pj4+PiAJaW50IGVycm9yLCBoYWRfbG9jazsNCj4+Pj4+IAlzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gZF9pbm9kZShvbGRfZGVudHJ5KTsNCj4+Pj4+IC0Jc3RydWN0IGJ1ZmZlcl9oZWFk ICpvbGRfYmggPSBOVUxMOw0KPj4+Pj4gKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKm9sZF9iaCA9IE5V TEwsICpkaXJfYmggPSBOVUxMOw0KPj4+Pj4gCXN0cnVjdCBpbm9kZSAqbmV3X29ycGhhbl9pbm9k ZSA9IE5VTEw7DQo+Pj4+PiAJc3RydWN0IG9jZnMyX2xvY2tfaG9sZGVyIG9oOw0KPj4+Pj4gDQo+ Pj4+PiBAQCAtNDI1OCw3ICs0MjU4LDcgQEAgc3RhdGljIGludCBvY2ZzMl9yZWZsaW5rKHN0cnVj dCBkZW50cnkgKm9sZF9kZW50cnksIHN0cnVjdCBpbm9kZSAqZGlyLA0KPj4+Pj4gCQlyZXR1cm4g LUVPUE5PVFNVUFA7DQo+Pj4+PiANCj4+Pj4+IA0KPj4+Pj4gLQllcnJvciA9IG9jZnMyX2NyZWF0 ZV9pbm9kZV9pbl9vcnBoYW4oZGlyLCBpbm9kZS0+aV9tb2RlLA0KPj4+Pj4gKwllcnJvciA9IG9j ZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oZGlyLCAmZGlyX2JoLCBpbm9kZS0+aV9tb2RlLA0K Pj4+Pj4gCQkJCQkgICAgICZuZXdfb3JwaGFuX2lub2RlKTsNCj4+Pj4+IAlpZiAoZXJyb3IpIHsN Cj4+Pj4+IAkJbWxvZ19lcnJubyhlcnJvcik7DQo+Pj4+PiBAQCAtNDMwNCwxMyArNDMwNCwxNSBA QCBzdGF0aWMgaW50IG9jZnMyX3JlZmxpbmsoc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwgc3Ry dWN0IGlub2RlICpkaXIsDQo+Pj4+PiANCj4+Pj4+IAkvKiBJZiB0aGUgc2VjdXJpdHkgaXNuJ3Qg cHJlc2VydmVkLCB3ZSBuZWVkIHRvIHJlLWluaXRpYWxpemUgdGhlbS4gKi8NCj4+Pj4+IAlpZiAo IXByZXNlcnZlKSB7DQo+Pj4+PiAtCQllcnJvciA9IG9jZnMyX2luaXRfc2VjdXJpdHlfYW5kX2Fj bChkaXIsIG5ld19vcnBoYW5faW5vZGUsDQo+Pj4+PiArCQllcnJvciA9IG9jZnMyX2luaXRfc2Vj dXJpdHlfYW5kX2FjbChkaXIsIGRpcl9iaCwNCj4+Pj4+ICsJCQkJCQkgICAgbmV3X29ycGhhbl9p bm9kZSwNCj4+Pj4+IAkJCQkJCSAgICAmbmV3X2RlbnRyeS0+ZF9uYW1lKTsNCj4+Pj4+IAkJaWYg KGVycm9yKQ0KPj4+Pj4gCQkJbWxvZ19lcnJubyhlcnJvcik7DQo+Pj4+PiAJfQ0KPj4+Pj4gCWlm ICghZXJyb3IpIHsNCj4+Pj4+IC0JCWVycm9yID0gb2NmczJfbXZfb3JwaGFuZWRfaW5vZGVfdG9f bmV3KGRpciwgbmV3X29ycGhhbl9pbm9kZSwNCj4+Pj4+ICsJCWVycm9yID0gb2NmczJfbXZfb3Jw aGFuZWRfaW5vZGVfdG9fbmV3KGRpciwgZGlyX2JoLA0KPj4+Pj4gKwkJCQkJCSAgICAgICBuZXdf b3JwaGFuX2lub2RlLA0KPj4+Pj4gCQkJCQkJICAgICAgIG5ld19kZW50cnkpOw0KPj4+Pj4gCQlp ZiAoZXJyb3IpDQo+Pj4+PiAJCQltbG9nX2Vycm5vKGVycm9yKTsNCj4+Pj4+IEBAIC00MzI4LDYg KzQzMzAsMTEgQEAgc3RhdGljIGludCBvY2ZzMl9yZWZsaW5rKHN0cnVjdCBkZW50cnkgKm9sZF9k ZW50cnksIHN0cnVjdCBpbm9kZSAqZGlyLA0KPj4+Pj4gCQkJaXB1dChuZXdfb3JwaGFuX2lub2Rl KTsNCj4+Pj4+IAl9DQo+Pj4+PiANCj4+Pj4+ICsJaWYgKGRpcl9iaCkgew0KPj4+Pj4gKwkJb2Nm czJfaW5vZGVfdW5sb2NrKGRpciwgMSk7DQo+Pj4+PiArCQlicmVsc2UoZGlyX2JoKTsNCj4+Pj4+ ICsJfQ0KPj4+Pj4gKw0KPj4+Pj4gCXJldHVybiBlcnJvcjsNCj4+Pj4+IH0NCj4+Pj4+IA0KPj4+ Pj4gZGlmZiAtLWdpdCBhL2ZzL29jZnMyL3hhdHRyLmMgYi9mcy9vY2ZzMi94YXR0ci5jDQo+Pj4+ PiBpbmRleCBkZDc4NGViMGNkN2MuLjNmMjNlM2E1MDE4YyAxMDA2NDQNCj4+Pj4+IC0tLSBhL2Zz L29jZnMyL3hhdHRyLmMNCj4+Pj4+ICsrKyBiL2ZzL29jZnMyL3hhdHRyLmMNCj4+Pj4+IEBAIC03 MjAzLDE2ICs3MjAzLDEzIEBAIGludCBvY2ZzMl9yZWZsaW5rX3hhdHRycyhzdHJ1Y3QgaW5vZGUg Km9sZF9pbm9kZSwNCj4+Pj4+IC8qDQo+Pj4+PiAgKiBJbml0aWFsaXplIHNlY3VyaXR5IGFuZCBh Y2wgZm9yIGEgYWxyZWFkeSBjcmVhdGVkIGlub2RlLg0KPj4+Pj4gICogVXNlZCBmb3IgcmVmbGlu ayBhIG5vbi1wcmVzZXJ2ZS1zZWN1cml0eSBmaWxlLg0KPj4+Pj4gLSAqDQo+Pj4+PiAtICogSXQg dXNlcyBjb21tb24gYXBpIGxpa2Ugb2NmczJfeGF0dHJfc2V0LCBzbyB0aGUgY2FsbGVyDQo+Pj4+ PiAtICogbXVzdCBub3QgaG9sZCBhbnkgbG9jayBleHBlY3QgaV9tdXRleC4NCj4+Pj4+ICAqLw0K Pj4+Pj4gaW50IG9jZnMyX2luaXRfc2VjdXJpdHlfYW5kX2FjbChzdHJ1Y3QgaW5vZGUgKmRpciwN Cj4+Pj4+ICsJCQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpkaXJfYmgsDQo+Pj4+PiAJCQkJc3RydWN0 IGlub2RlICppbm9kZSwNCj4+Pj4+IAkJCQljb25zdCBzdHJ1Y3QgcXN0ciAqcXN0cikNCj4+Pj4+ IHsNCj4+Pj4+IAlpbnQgcmV0ID0gMDsNCj4+Pj4+IC0Jc3RydWN0IGJ1ZmZlcl9oZWFkICpkaXJf YmggPSBOVUxMOw0KPj4+Pj4gDQo+Pj4+PiAJcmV0ID0gb2NmczJfaW5pdF9zZWN1cml0eV9nZXQo aW5vZGUsIGRpciwgcXN0ciwgTlVMTCk7DQo+Pj4+PiAJaWYgKHJldCkgew0KPj4+Pj4gQEAgLTcy MjAsMTcgKzcyMTcsMTAgQEAgaW50IG9jZnMyX2luaXRfc2VjdXJpdHlfYW5kX2FjbChzdHJ1Y3Qg aW5vZGUgKmRpciwNCj4+Pj4+IAkJZ290byBsZWF2ZTsNCj4+Pj4+IAl9DQo+Pj4+PiANCj4+Pj4+ IC0JcmV0ID0gb2NmczJfaW5vZGVfbG9jayhkaXIsICZkaXJfYmgsIDApOw0KPj4+Pj4gLQlpZiAo cmV0KSB7DQo+Pj4+PiAtCQltbG9nX2Vycm5vKHJldCk7DQo+Pj4+PiAtCQlnb3RvIGxlYXZlOw0K Pj4+Pj4gLQl9DQo+Pj4+PiAJcmV0ID0gb2NmczJfaW5pdF9hY2woTlVMTCwgaW5vZGUsIGRpciwg TlVMTCwgZGlyX2JoLCBOVUxMLCBOVUxMKTsNCj4+Pj4+IAlpZiAocmV0KQ0KPj4+Pj4gCQltbG9n X2Vycm5vKHJldCk7DQo+Pj4+PiANCj4+Pj4+IC0Jb2NmczJfaW5vZGVfdW5sb2NrKGRpciwgMCk7 DQo+Pj4+PiAtCWJyZWxzZShkaXJfYmgpOw0KPj4+Pj4gbGVhdmU6DQo+Pj4+PiAJcmV0dXJuIHJl dDsNCj4+Pj4+IH0NCj4+Pj4+IGRpZmYgLS1naXQgYS9mcy9vY2ZzMi94YXR0ci5oIGIvZnMvb2Nm czIveGF0dHIuaA0KPj4+Pj4gaW5kZXggMDAzMDhiNTdmNjRmLi5iMjdmZDhiYTAwMTkgMTAwNjQ0 DQo+Pj4+PiAtLS0gYS9mcy9vY2ZzMi94YXR0ci5oDQo+Pj4+PiArKysgYi9mcy9vY2ZzMi94YXR0 ci5oDQo+Pj4+PiBAQCAtODMsNiArODMsNyBAQCBpbnQgb2NmczJfcmVmbGlua194YXR0cnMoc3Ry dWN0IGlub2RlICpvbGRfaW5vZGUsDQo+Pj4+PiAJCQkgc3RydWN0IGJ1ZmZlcl9oZWFkICpuZXdf YmgsDQo+Pj4+PiAJCQkgYm9vbCBwcmVzZXJ2ZV9zZWN1cml0eSk7DQo+Pj4+PiBpbnQgb2NmczJf aW5pdF9zZWN1cml0eV9hbmRfYWNsKHN0cnVjdCBpbm9kZSAqZGlyLA0KPj4+Pj4gKwkJCQlzdHJ1 Y3QgYnVmZmVyX2hlYWQgKmRpcl9iaCwNCj4+Pj4+IAkJCQlzdHJ1Y3QgaW5vZGUgKmlub2RlLA0K Pj4+Pj4gCQkJCWNvbnN0IHN0cnVjdCBxc3RyICpxc3RyKTsNCj4+Pj4+ICNlbmRpZiAvKiBPQ0ZT Ml9YQVRUUl9IICovDQo+Pj4+PiAtLSANCj4+Pj4+IDIuMjEuMA0KPj4+Pj4gDQo+Pj4+PiANCj4+ Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pj4+ PiBPY2ZzMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4+Pj4+IE9jZnMyLWRldmVsQG9zcy5vcmFjbGUu Y29tDQo+Pj4+PiBodHRwczovL29zcy5vcmFjbGUuY29tL21haWxtYW4vbGlzdGluZm8vb2NmczIt ZGV2ZWwNCj4+PiANCj4gDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCk9jZnMyLWRldmVsIG1haWxpbmcgbGlzdApPY2ZzMi1kZXZlbEBvc3Mub3JhY2xl LmNvbQpodHRwczovL29zcy5vcmFjbGUuY29tL21haWxtYW4vbGlzdGluZm8vb2NmczItZGV2ZWw=