From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 1AA03385222A; Fri, 16 Dec 2022 17:47:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1AA03385222A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BGGhoGn016762; Fri, 16 Dec 2022 17:47:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=PjiDnh2df+TaSDSZheQ3KNg0K5zKT1IQb9pug80U4nk=; b=q3DlEplIciwaLi6pSr/rA6hMKg4/SC3Z7A2HLSQlpjqAABimQGw3wxqfY1XpTWHIMBIp JBuoukm9DWUTKdh41CX+aqvMqfUeeC0WaHBoohuZHJFJlnE/Hxbaie+9bnPsbLgtRbIf PnnykSa2zlltCJbSh7UaYq0XMIoMa55W35VtVi+T5Jz+NiiFPvwjMBnXgkJqYzJNLXfl sqhzvRoPxEnF9YwK2llQYHjGAtb6Tmsl7ONc+UfeNWwR2gw5XwuzQO9qsZLNaksGESRI pAb0JulV4M4EYIMNNgoJ5g5hgM0G5Tm1jrlmWSpss42vLbpDhr42e5QAWRpQWf289R+7 pA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3meyewg0r1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Dec 2022 17:47:29 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2BGGq2pw039955; Fri, 16 Dec 2022 17:47:28 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2174.outbound.protection.outlook.com [104.47.55.174]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3meyexnj1r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Dec 2022 17:47:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YUE48PXTM53NeclE1Nakh0cvjFFtAgcjyMI37Pk7pTD0hanaPEqiHtr4K0AeE60p+TmyTaj7Sbp3FbcX7xmnrwJes5nG+vqNExIzS8QvgO7q91sPjgNR/J6C+phSW6vyjar1/U1p2m8wpeUkajMxS51HbxVsvxttosdSfYTYFZlIo7vcXYic8A0KKdz1+9QLbFohZobG+rfdlv/vpX8vEGUiMI/+X32u1rBeTewN2B7wCKbmUnpwRbadIR9JSEH++qnsf8KOzG7Pa7hA0hhIyZ+ORrIfsvm2mawOrcZ3IGMI/596ALI0l8wOtJDmD+oDpPZRKtZffbeyugs1GaYn+A== 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=PjiDnh2df+TaSDSZheQ3KNg0K5zKT1IQb9pug80U4nk=; b=OjEXW4P8XyWEyuq8nMJWB11DTrlVY201aeH4+RtEVuJ5WQ6HVGZGBu/hS9Gr5C3l0+41OBOcpy+bia+rYekFfCcPn733NJ/DQ7id0y5QXsu5BuSQ2ZXrDjEimfoiU4q7MGgwfxn9pbQLNodIWqP14MQJhO6sNUuAxBVQYQQhLPD6mUm1NWa79YDK/1ML40mfdjdqsnycwPoGlEstFpBGFqtpfKcA763csG4slTFLZKAXgbS3DQtQKBRTmOG10ou7/2vV82R1lIRMJL8Y5KB40RBfbUOjqr5wwWh/NY33AyUJpuZUu1t2dPXpFbYLoOnpUAWvzDl+3y815GtTxuxznw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PjiDnh2df+TaSDSZheQ3KNg0K5zKT1IQb9pug80U4nk=; b=KQnhtpudSxd62mPMEBETelb6UxCyJp5H43eAO3sRYBAWUBt1eYU/FnHYIQhKmM/kicy2BmSHzLB9jzMspnPvng7Yyclm0eEV3lyD5etS2ZvJRtlvCr3Vt8bib7h+MAVmgzR4FGG7WyNqJqjX2RCghDGUPRrr2mpDPJw5nmuOiPQ= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by MW4PR10MB6488.namprd10.prod.outlook.com (2603:10b6:303:222::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.19; Fri, 16 Dec 2022 17:47:25 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::9423:79b3:c0dc:1113]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::9423:79b3:c0dc:1113%9]) with mapi id 15.20.5924.015; Fri, 16 Dec 2022 17:47:24 +0000 From: Qing Zhao To: Richard Biener CC: "joseph@codesourcery.com" , "gcc-patches@gcc.gnu.org" , "keescook@chromium.org" , "siddhesh@gcc.gnu.org" Subject: Re: Ping---[V3][PATCH 2/2] Add a new warning option -Wstrict-flex-arrays. Thread-Topic: Ping---[V3][PATCH 2/2] Add a new warning option -Wstrict-flex-arrays. Thread-Index: AQHZCY5sSXlMD9UupU2COKrkmjhESK5r+8aAgAEnFgCAAH+DgIAA/WyAgACAs4CAASragIAAXNAAgAAxooA= Date: Fri, 16 Dec 2022 17:47:24 +0000 Message-ID: References: <20221206161844.2397151-1-qing.zhao@oracle.com> <71748F0C-F789-4036-AC79-54BDCCE75135@oracle.com> <28FB1593-21AF-47B7-B368-3734B994E23D@oracle.com> In-Reply-To: <28FB1593-21AF-47B7-B368-3734B994E23D@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.120.41.1.1) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|MW4PR10MB6488:EE_ x-ms-office365-filtering-correlation-id: 0eecee9a-c8f0-4002-03c4-08dadf8d974e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +StLd3SLnk0GLNqZ763xSdk/bfWqA4m9pHFd11MnTRNC9ux7eHDFq3U0klru3L/QVgcQ00gPlKbQhiGhHFjViywsgJ/mwqOugHoWj66FNj4FYst31MXm3c7mYBum/1KcmzaICdbdrdDmKLugsXsKizyz9EbbFnBEd7d2Mjy9FIVnObvse4un4FL7Ceo1NGxWGrsvWf/UYPawKt3U12QBGpZwEnG4/SXSHCn9bV7YOTEhCqjIJBH45mdO5e55Uv2KxyTHb9lxMNdyJRDnIuoP+mLJAdATLBy7YpzSv32llgSREaEkiFoOl9OAi7XlU/2TVEfFsufUmpCHbXShd3CvortuO5v5UnmjkgtfVa01A3NPQ+iCDveOvQM/PCxZMimxpR017iE05/5l6ikOnOg0HMSUHqsmA3krFl6ZtHCkDVSOyBtZ+yrS2f+xY4Gjac6PdhQwWfh7qBm7sAYObJ3SKIzCdbnCglwQO2cishhakfftHHbh6P0gwOHK178qaN3ABU9/3XMs9qCI2tE4R/fiO0cPAwnNtSaq83x3bX5b6Ki4BtuZlc7ymZr0MNcTXYSpPUo4RWmXJb1yrITBbKBNY3R91YLoaEySriFX75/pDnmu4TDbEEyQxfZxRvkL5DX0weLF0Yi4rXRJN2i0Tm2SME8OyYmM9PMF8jQQBvPFJqHSM6ff3WynFqlWjwAhSrc162/8s9z0zfF8QjSYIsxlb/OR3bTPGQ0LBOnQbnsjrEoSGyfEJCI+ACs3vWnXrwzWGXORbem5ley5ZaDq9YVCFOixvp3lWhqpEvFyTP2v9ydsSPK2LSgO7r7n/FcEf777 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR10MB4344.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(346002)(366004)(376002)(39860400002)(396003)(451199015)(64756008)(2906002)(8936002)(5660300002)(30864003)(8676002)(316002)(41300700001)(4326008)(66556008)(91956017)(66946007)(76116006)(66446008)(66476007)(84970400001)(186003)(26005)(36756003)(6506007)(53546011)(2616005)(6916009)(54906003)(6512007)(71200400001)(6486002)(966005)(478600001)(33656002)(44832011)(122000001)(86362001)(38070700005)(38100700002)(83380400001)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N2pqcHd0OEtpclFwUGZHWnZqYmJUK2JkUUtFdUNwbDVqKzUwbUlYdGs3TVZ4?= =?utf-8?B?QTNSajI4R3QrZWpEY1dSd21mZW1lU1ZodDRuSUNsKzc0b1dOK1FKZXFraGh0?= =?utf-8?B?akU2OXFWNkhES2NtdmwxbXBSN3ZGdnJqaVhVTGI2eEhuUzBvU1Z4b29PZGtX?= =?utf-8?B?R3ViZmdEMEVYdXNvUWw1bWtCQkNSZkpEeVBXdVJxZVk2NmRuckxhK0JwZlRK?= =?utf-8?B?MDc4cVZBZnhzVXFzeTJZVHhHRm40RHA0K1ZMSXUxWlg4cmM4Zk90bXNNeExU?= =?utf-8?B?UXZ2OHhHdmpCVmN0eXcxd0N5dEYzMEgvQXgwYVdraFFVY3IvV082SHlhVEJ5?= =?utf-8?B?T29Xa1pwZm5EUVQ5bGxyNEdlQVRjaDY5U244NmNtMGkwejd2WFhCMjI4TjV5?= =?utf-8?B?cEZscTlKTncxa0FEK1Q0dWxRdDd4VW45R255Y3pTbytPcWFHMGpraHdUNTV3?= =?utf-8?B?b2xkbm5MemtySHJOTFpjVHU0a2c2QmxRMTRzTHpFakFZazkva1AyWXp0R0wr?= =?utf-8?B?YS9BV0d0Q2hiNFlPcnRtUDlsQXMxaEN1bnVPeHJHK0NqVlJIcWVYcDc1cmp3?= =?utf-8?B?WmJDOUgwZ1gvMWZqVE1ab2RMK1YvcDNkcVR1Q1g3UkcxazAwc3VXTVZxblcx?= =?utf-8?B?b0V6RDhhRmxxWFJzU25KcU5yeS9KWnk4eUZ4aytGa3p1ZWl3SVBkN0l0b0xN?= =?utf-8?B?VzloS1ZlMU9PV3o0ODUrVzlpRWhnczJtdW5mcFVGL0RiN2J5TzdINzlSQi9U?= =?utf-8?B?MTdaMzFNRktGbFNtWVRxMXpwVm5obFJZT0oyRkFsYmRIZTU4UXNlK2s0ZTYy?= =?utf-8?B?TDN1ODRSSFRUeXU0NGwveHR5UW9DK0h0Ri9KaW9XbmlXWFYxTkozYXExSko4?= =?utf-8?B?cVl5RVR5VzhrYUo2elVKeXVnMmZackFPY3cvakxCcHBTUUNMUjJPQ3ZIUS9s?= =?utf-8?B?UVFvZ3lhdS9qRCs1YnBkQWFOOUFaZStadDZnNkcrSnlkOGlySitJOFZ2V3JT?= =?utf-8?B?WFkwTDlCWHNFU0g4OFdVK0RFaWRXV0VCaEpRUlpaOCtiVjR4UHR6UjFrcVJY?= =?utf-8?B?UEhMOERrOSttRXdHa1VOcFlMM0E0K1dWMEpscGNCMUlzZmh6MmdPa1ZNeUlB?= =?utf-8?B?S0tCY0t6aGxOZW1YZUZMMlhFOVJ0VEgzbDhpb0laS29hY3I4UG4ybEI3K2pa?= =?utf-8?B?VkphTE5XQjIrcHEreFBkcFpjR1FGYW9qK2xwN01MdlpFRkFaejJkdGcvc0lI?= =?utf-8?B?T0lFWURUdDI0NG80TVhWbnNVdEs1bWtjRktUYllEdGpBUDBCT0w5MjhTT0Y0?= =?utf-8?B?TVB2bDFsQlJDaVIwYkNEekQzQ2xCd3JOQlhNR3A4MlhrSTdPWk1CNm1UVG5Z?= =?utf-8?B?THBKQ0VlNElaUndnR2FDVEdkMFNmODNySkN4S09pSXRsRXdubDBmOW5keXlz?= =?utf-8?B?MGNFRThjVWE3UzlWZVFBU29SeVNOUjJpMnBRR2hSV0t6NWszQmFOUDRNMGFH?= =?utf-8?B?Y0ppUWQ3OUtnN3I5V09nbS9XdFdobS95djJLQ2FlRnF2am9FcWhFdWVuVElO?= =?utf-8?B?UGx6eWROVm5SUmIyenNrRENoWE5QUUlmbERnT3N3RFdtUm1BNHFRVlFvUUxZ?= =?utf-8?B?UjVPN3hER0dVaWVoWEY2OGdyeHFMWGUxYmV0ZkVuSlVSbzhVQnMxVHNrV1RJ?= =?utf-8?B?cHI0TktPVmk2ZHhIcldRMEZmRCt0WnBiaFRtcjFsVjVNUzh2UldyZ3FRQk1p?= =?utf-8?B?WGs5c2l0bkRWSE1ZYUlIK2ltZ0l1bk5rTkI2LzAvM3hoNHYyTDRkMDMxY1Ix?= =?utf-8?B?aE5POGxzNjNjQ1R1WDBDUzk1QllLNExhUEFGY0ViM2lCU0IvQzF6dUJhNnNh?= =?utf-8?B?SjdOTWdSYzMvbUFTTStYVXNsODFtUDAvQytIamJIV01NWkdlTnVuc1d0ald1?= =?utf-8?B?YkY2eFU4Ky90S0JRZjNIeThwSlJPUnBic0pOR1MxYzNtTTNmMUdMdmQ1OE9p?= =?utf-8?B?V0FNRGVlZ01PUDQ3Ym5IaVFjMS9ycWMwaXcyMDRpNmZ2RWZ2UC9mOTlLYjhH?= =?utf-8?B?VlVaRDBkWHpOcjZWaVluVEFiME1hQW9tSGVhOVBZMmVLb25rekZ3c0owMHNx?= =?utf-8?B?VHhSeFY5eW51Q25NOTYwNVlxKzVpQ0U0bytKaGptRFdmdEdwR0htR20rL3Z6?= =?utf-8?B?b1E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <29039CAAAA143643A0ACDDAB41EFF3D0@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0eecee9a-c8f0-4002-03c4-08dadf8d974e X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2022 17:47:24.8045 (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: dXg8UdzhjhIzMjJMyP4vx84mC62iKE/+SfJRMpi7lFTTh0FDl8YY08ChGk33bC3zeMNjvNH67D78v3bl+L49gQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB6488 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-16_12,2022-12-15_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2212160154 X-Proofpoint-GUID: XzitoxHmf72YtMsT0dJk4u8vDt3V0AhK X-Proofpoint-ORIG-GUID: XzitoxHmf72YtMsT0dJk4u8vDt3V0AhK X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: RllJLg0KDQpDb21taXR0ZWQgdGhpcyBsYXN0IHBhdGNoIGFzOg0KaHR0cHM6Ly9qaXJhLm9jaS5v cmFjbGVjb3JwLmNvbS9icm93c2UvT0xESVMtMjEwOTUNCg0KSSB3aWxsIGNvbWUgdXAgd2l0aCB0 aGUgdXBkYXRlIHRvIGdjYy0xMy9jaGFuZ2VzLmh0bWwgZm9yIC1mc3RyaWN0LWZsZXgtYXJyYXlz IHZlcnkgc29vbi4NCg0KVGhhbmtzLg0KDQpRaW5nDQo+IE9uIERlYyAxNiwgMjAyMiwgYXQgOTo0 OSBBTSwgUWluZyBaaGFvIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+ IHdyb3RlOg0KPiANCj4gDQo+IA0KPj4gT24gRGVjIDE2LCAyMDIyLCBhdCA0OjE3IEFNLCBSaWNo YXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+IHdyb3RlOg0KPj4gDQo+PiBPbiBUaHUsIDE1 IERlYyAyMDIyLCBRaW5nIFpoYW8gd3JvdGU6DQo+PiANCj4+PiANCj4+PiANCj4+Pj4gT24gRGVj IDE1LCAyMDIyLCBhdCAyOjQ3IEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+ IHdyb3RlOg0KPj4+PiANCj4+Pj4gT24gV2VkLCAxNCBEZWMgMjAyMiwgUWluZyBaaGFvIHdyb3Rl Og0KPj4+PiANCj4+Pj4+IEhpLCBSaWNoYXJkLA0KPj4+Pj4gDQo+Pj4+PiBJIGd1ZXNzIHRoYXQg d2Ugbm93IGFncmVlZCBvbiB0aGUgZm9sbG93aW5nOg0KPj4+Pj4gDQo+Pj4+PiDigJwgdGhlIGlu Zm9ybWF0aW9uIHRoYXQgd2UgcmFuIGludG8gYSB0cmFpbGluZyBhcnJheSBidXQgZGlkbid0IGNv bnNpZGVyIA0KPj4+Pj4gaXQgYSBmbGV4IGFycmF5IGJlY2F1c2Ugb2YgLWZzdHJpY3QtZmxleC1h cnJheXMgaXMgYWx3YXlzIGEgdXNlZnVsIGluZm9ybWF0aW9u4oCdDQo+Pj4+PiANCj4+Pj4+IFRo ZSBvbmx5IHRoaW5nIHdlIGRpZG7igJl0IGRlY2lkZSBpczoNCj4+Pj4+IA0KPj4+Pj4gQS4gQW1l bmQgc3VjaCBuZXcgaW5mb3JtYXRpb24gdG8gLVdhcnJheS1ib3VuZHMgd2hlbiAtZnN0cmljdC1m bGV4LWFycmF5cz1OIChOPjApIHNwZWNpZmllZC4NCj4+Pj4+IA0KPj4+Pj4gT1INCj4+Pj4+IA0K Pj4+Pj4gQi4gSXNzdWUgc3VjaCBuZXcgaW5mb3JtYXRpb24gd2l0aCBhIG5ldyB3YXJuaW5nIG9w dGlvbiAtV3N0cmljdC1mbGV4LWFycmF5cyB3aGVuIC1mc3RyaWN0LWZsZXgtYXJyYXlzPU4gKE4+ MCkgc3BlY2lmaWVkLg0KPj4+Pj4gDQo+Pj4+PiBNeSBjdXJyZW50IHBhdGNoIGltcGxlbWVudGVk IEIuIA0KPj4+PiANCj4+Pj4gUGx1cyBpdCBpbXBsZW1lbnRzIGl0IHRvIHNwZWNpZnkgYSBkaWZm ZXJlbnQgZmxleC1hcnJheSB2YXJpYW50IGZvcg0KPj4+PiB0aGUgZXh0cmEgZGlhZ25vc3RpYy4N Cj4+PiBDb3VsZCB5b3UgY2xhcmlmeSBhIGxpdHRsZSBiaXQgb24gdGhpcz8gKERvbuKAmXQgcXVp dGUgdW5kZXJzdGFuZOKApikNCj4+Pj4gDQo+Pj4+PiBJZiB5b3UgdGhpbmsgQSBpcyBiZXR0ZXIs IEkgd2lsbCBjaGFuZ2UgdGhlIHBhdGNoIGFzIEEuIA0KPj4+PiANCj4+Pj4gSSB3b3VsZCB0ZW5k IHRvIEEgc2luY2UsIGFzIEkgc2FpZCwgaXQncyB1c2VmdWwgaW5mb3JtYXRpb24gdGhhdA0KPj4+ PiBzaG91bGRuJ3QgYmUgaGlkZGVuIGFuZCBub3QgYWRkaW5nIGFuIG9wdGlvbiByZW1vdmVzIG9k ZCBjb21iaW5hdGlvbg0KPj4+PiBwb3NzaWJpbGl0aWVzIHN1Y2ggYXMgLVduby1hcnJheS1ib3Vu ZHMgLVdzdHJpY3QtZmxleC1hcnJheXMuDQo+Pj4gDQo+Pj4gV2l0aCBjdXJyZW50IGltcGxlbWVu dGF0aW9uLCB0aGUgYWJvdmUgY29tYmluYXRpb24gd2lsbCBPTkxZIHJlcG9ydCB0aGUgDQo+Pj4g bWlzdXNlIG9mIHRyYWlsaW5nIGFycmF5IGFzIGZsZXgtYXJyYXkuICBObyBvdXQtb2YtYm91bmRz IHdhcm5pbmdzIA0KPj4+IGlzc3VlZC4NCj4+PiANCj4+Pj4gSW4gcGFydGljdWxhciBJIGZpbmQs IHNheSwgLWZzdHJpY3QtZmxleC1hcnJheXM9MiAtV3N0cmljdC1mbGV4LWFycmF5cz0xDQo+Pj4+ IGhhcmRseSB1c2VmdWwuDQo+Pj4gDQo+Pj4gVGhlIGFib3ZlIGNvbWJpbmF0aW9uIHdpbGwgTk9U IGhhcHBlbiwgYmVjYXVzZSB0aGVyZSBpcyBOTyBsZXZlbCBhcmd1bWVudCBmb3IgLVdzdHJpY3Qt ZmxleC1hcnJheXMuDQo+Pj4gDQo+Pj4gVGhlIG9ubHkgY29tYmluYXRpb24gd2lsbCBiZTogICAg LWZzdHJpY3QtZmxleC1hcnJheXM9TiAtV3N0cmljdC1mbGV4LWFycmF5cw0KPj4+IA0KPj4+IFdo ZW4gTiA+IDAsIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIHdpbGwgcmVwb3J0IGFueSBtaXN1c2Ugb2Yg dHJhaWxpbmcgYXJyYXlzIGFzIGZsZXhpYmxlIGFycmF5IHBlciB0aGUgdmFsdWUgb2YgTi4NCj4+ Pj4gDQo+Pj4+IEJ1dCBJJ20gaW50ZXJlc3RlZCBpbiBvdGhlciBvcGluaW9ucy4NCj4+PiANCj4+ PiBBZGRpbmcgYSBzZXBhcmF0ZSAtV3N0cmljdC1mbGV4LWFycmF5cyB3aWxsIHByb3ZpZGUgdXNl cnMgYSBjaG9pY2UgdG8gT05MWSBsb29rIGF0IHRoZSBtaXMtdXNlIG9mIHRyYWlsaW5nIGFycmF5 cyBhcyBmbGV4LWFycmF5cy4gIFdpdGhvdXQgdGhpcyBuZXcgb3B0aW9uLCBzdWNoIGluZm9ybWF0 aW9uIHdpbGwgYmUgYnVyaWVkIGludG8gdG9ucyBvZiBvdXQtb2YtYm91bmRzIG1lc3NnZXMuIA0K Pj4+IA0KPj4+IEkgdGhpbmsgdGhpcyBpcyB0aGUgbWFqb3IgYmVuZWZpdCB0byBoYXZlIG9uZSBz ZXBhcmF0ZSBuZXcgd2FybmluZyAtV3N0cmljdC1mbGV4LWFycmF5cy4gDQo+Pj4gDQo+Pj4gRG8g d2UgbmVlZCB0byBwcm92aWRlIHRoZSB1c2VycyB0aGlzIGNob2ljZT8NCj4+IA0KPj4gQWgsIE9L IC0gSSBjYW4gc2VlIHRoZSB2YWx1ZSBvZiBhdWRpdGluZyBjb2RlIHRoaXMgd2F5IGJlZm9yZQ0K Pj4gZW5hYmxpbmcgLWZzdHJpY3QtZmxleC1hcnJheXMuDQo+IFllcywgSSB0aGluayB0aGUgbWFq b3IgYmVuZWZpdCBvZiB0aGlzIG9wdGlvbiBpcyB0byBoZWxwIHVzZXJzIHRvIGlkZW50aWZ5IGFs bCB0aGUgcGxhY2VzIHdoZXJlIHRoZSB0cmFpbGluZyBhcnJheXMgYXJlIG1pc3VzZWQgYXMgZmxl eC1hcnJheXMgYXQgZGlmZmVyZW50IGxldmVsIG9mIC1mc3RyaWN0LWZsZXgtYXJyYXlzPU4sIHRo ZW4gdXBkYXRlIHRoZWlyIHNvdXJjZSBjb2RlIGFjY29yZGluZ2x5LiBBbmQgZmluYWxseSBjYW4g ZW5hYmxlIC1mc3RyaWN0LWZsZXgtYXJyYXlzIGJ5IGRlZmF1bHQuDQo+PiANCj4+PiArICBpZiAo b3B0cy0+eF93YXJuX3N0cmljdF9mbGV4X2FycmF5cykNCj4+PiArICAgIGlmIChvcHRzLT54X2Zs YWdfc3RyaWN0X2ZsZXhfYXJyYXlzID09IDApDQo+Pj4gKyAgICAgIHsNCj4+PiArICAgICBvcHRz LT54X3dhcm5fc3RyaWN0X2ZsZXhfYXJyYXlzID0gMDsNCj4+PiArICAgICB3YXJuaW5nX2F0IChV TktOT1dOX0xPQ0FUSU9OLCAwLA0KPj4+ICsgICAgICAgICAgICAgICAgICIlPC1Xc3RyaWN0LWZs ZXgtYXJyYXlzJT4gaXMgaWdub3JlZCB3aGVuIg0KPj4+ICsgICAgICAgICAgICAgICAgICIgJTwt ZnN0cmljdC1mbGV4LWFycmF5cyU+IGRvZXMgbm90IHByZXNlbnQiKTsNCj4+IA0KPj4gImlzIG5v dCBwcmVzZW504oCdLg0KPiBPa2F5Lg0KPj4gDQo+PiBUaGUgcGF0Y2ggaXMgT0sgd2l0aCB0aGF0 IGNoYW5nZS4NCj4gVGhhbmtzISBXaWxsIGNvbW1pdCB0aGUgcGF0Y2ggYWZ0ZXIgdGhlIGNoYW5n ZS4NCj4+IA0KPj4gVGhhbmtzIGFuZCBzb3JyeSBmb3IgdGhlIHNsb3cgcHJvY2VzcyAuLi4NCj4g DQo+IFRoYW5rIHlvdSBmb3IgeW91ciBwYXRpZW5jZSBhbmQgcXVlc3Rpb25zLg0KPiBUaGUgZGlz Y3Vzc2lvbiBpcyB2ZXJ5IGhlbHBmdWwgc2luY2UgSSB3YXMgbm90IDEwMCUgc3VyZSB3aGV0aGVy IHRoaXMgbmV3IHdhcm5pbmcgaXMgbmVjZXNzYXJ5IG9yIG5vdCBpbiB0aGUgYmVnaW5uaW5nLCBi dXQgbm93IGFmdGVyIHRoaXMgZGlzY3Vzc2lvbiBJIGZlZWwgY29uZmlkZW50IHRoYXQgaXTigJlz IGEgbmVjZXNzYXJ5IG9wdGlvbiB0byBiZSBhZGRlZC4NCj4gDQo+IFFpbmcNCj4gDQo+PiANCj4+ IFJpY2hhcmQuDQo+PiANCj4+PiBUaGFua3MuDQo+Pj4gDQo+Pj4gUWluZw0KPj4+PiANCj4+Pj4g VGhhbmtzLA0KPj4+PiBSaWNoYXJkLg0KPj4+PiANCj4+Pj4+IExldCBtZSBrbm93IHlvdXIgb3Bp bmlvbi4NCj4+Pj4+IA0KPj4+Pj4gdGhhbmtzLg0KPj4+Pj4gDQo+Pj4+PiBRaW5nDQo+Pj4+PiAN Cj4+Pj4+IA0KPj4+Pj4+IE9uIERlYyAxNCwgMjAyMiwgYXQgNDowMyBBTSwgUmljaGFyZCBCaWVu ZXIgPHJndWVudGhlckBzdXNlLmRlPiB3cm90ZToNCj4+Pj4+PiANCj4+Pj4+PiBPbiBUdWUsIDEz IERlYyAyMDIyLCBRaW5nIFpoYW8gd3JvdGU6DQo+Pj4+Pj4gDQo+Pj4+Pj4+IFJpY2hhcmQsIA0K Pj4+Pj4+PiANCj4+Pj4+Pj4gRG8geW91IGhhdmUgYW55IGRlY2lzaW9uIG9uIHRoaXMgb25lPyAN Cj4+Pj4+Pj4gRG8gd2UgbmVlZCB0aGlzIHdhcm5pbmcgb3B0aW9uIEZvciBHQ0M/IA0KPj4+Pj4+ IA0KPj4+Pj4+IExvb2tpbmcgYXQgdGhlIHRlc3RjYXNlcyBpdCBzZWVtcyB0aGF0IHRoZSBkaWFn bm9zdGljIGFtZW5kcw0KPj4+Pj4+IC1XYXJyYXktYm91bmRzIGRpYWdub3N0aWNzIGZvciB0cmFp bGluZyBidXQgbm90IGZsZXhpYmxlIGFycmF5cz8NCj4+Pj4+PiBXb3VsZG4ndCBpdCBiZSBiZXR0 ZXIgdG8gZ2VuZXJhbGx5IGRpYWdub3NlIHRoaXMsIHNvIGhhdmUNCj4+Pj4+PiAtV2FycmF5LWJv dW5kcywgd2l0aCAtZnN0cmljdC1mbGV4LWFycmF5cywgZm9yDQo+Pj4+Pj4gDQo+Pj4+Pj4gc3Ry dWN0IFggeyBpbnQgYVsxXTsgfTsNCj4+Pj4+PiBpbnQgZm9vIChzdHJ1Y3QgWCAqcCkNCj4+Pj4+ PiB7DQo+Pj4+Pj4gcmV0dXJuIHAtPmFbMV07DQo+Pj4+Pj4gfQ0KPj4+Pj4+IA0KPj4+Pj4+IGVt aXQNCj4+Pj4+PiANCj4+Pj4+PiB3YXJuaW5nOiBhcnJheSBzdWJzY3JpcHQgMSBpcyBhYm92ZSBh cnJheSBib3VuZHMgLi4uDQo+Pj4+Pj4gbm90ZTogdGhlIHRyYWlsaW5nIGFycmF5IGlzIG9ubHkg YSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgd2l0aCANCj4+Pj4+PiAtZm5vLXN0cmljdC1mbGV4LWFy cmF5cw0KPj4+Pj4+IA0KPj4+Pj4+ID8gIEhhdmluZyAtV3N0cmljdC1mbGV4LWFycmF5cz1OIGFu ZCBOIG5vdCBhZ3JlZSB3aXRoIHRoZQ0KPj4+Pj4+IC1mc3RyaWN0LWZsZXgtYXJyYXlzIGxldmVs IHNvdW5kcyBoYXJkbHkgdXNlZnVsIHRvIG1lIGJ1dCB0aGUNCj4+Pj4+PiBpbmZvcm1hdGlvbiB0 aGF0IHdlIHJhbiBpbnRvIGEgdHJhaWxpbmcgYXJyYXkgYnV0IGRpZG4ndCBjb25zaWRlcg0KPj4+ Pj4+IGl0IGEgZmxleCBhcnJheSBiZWNhdXNlIG9mIC1mc3RyaWN0LWZsZXgtYXJyYXlzIGlzIGFs d2F5cyBhDQo+Pj4+Pj4gdXNlZnVsIGluZm9ybWF0aW9uPw0KPj4+Pj4+IA0KPj4+Pj4+IEJ1dCBt YXliZSBJIG1pc3VuZGVyc3Rvb2QgdGhpcyBuZXcgZGlhZ25vc3RpYz8NCj4+Pj4+PiANCj4+Pj4+ PiBUaGFua3MsDQo+Pj4+Pj4gUmljaGFyZC4NCj4+Pj4+PiANCj4+Pj4+PiANCj4+Pj4+Pj4gdGhh bmtzLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gUWluZw0KPj4+Pj4+PiANCj4+Pj4+Pj4+IE9uIERlYyA2 LCAyMDIyLCBhdCAxMToxOCBBTSwgUWluZyBaaGFvIDxxaW5nLnpoYW9Ab3JhY2xlLmNvbT4gd3Jv dGU6DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+ICctV3N0cmljdC1mbGV4LWFycmF5cycNCj4+Pj4+Pj4+ IFdhcm4gYWJvdXQgaW5wcm9wZXIgdXNhZ2VzIG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMgYWNj b3JkaW5nIHRvDQo+Pj4+Pj4+PiB0aGUgTEVWRUwgb2YgdGhlICdzdHJpY3RfZmxleF9hcnJheSAo TEVWRUwpJyBhdHRyaWJ1dGUgYXR0YWNoZWQgdG8NCj4+Pj4+Pj4+IHRoZSB0cmFpbGluZyBhcnJh eSBmaWVsZCBvZiBhIHN0cnVjdHVyZSBpZiBpdCdzIGF2YWlsYWJsZSwNCj4+Pj4+Pj4+IG90aGVy d2lzZSBhY2NvcmRpbmcgdG8gdGhlIExFVkVMIG9mIHRoZSBvcHRpb24NCj4+Pj4+Pj4+ICctZnN0 cmljdC1mbGV4LWFycmF5cz1MRVZFTCcuDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IFRoaXMgb3B0aW9u IGlzIGVmZmVjdGl2ZSBvbmx5IHdoZW4gTEVWRUwgaXMgYmlnZ2VyIHRoYW4gMC4NCj4+Pj4+Pj4+ IE90aGVyd2lzZSwgaXQgd2lsbCBiZSBpZ25vcmVkIHdpdGggYSB3YXJuaW5nLg0KPj4+Pj4+Pj4g DQo+Pj4+Pj4+PiB3aGVuIExFVkVMPTEsIHdhcm5pbmdzIHdpbGwgYmUgaXNzdWVkIGZvciBhIHRy YWlsaW5nIGFycmF5DQo+Pj4+Pj4+PiByZWZlcmVuY2Ugb2YgYSBzdHJ1Y3R1cmUgdGhhdCBoYXZl IDIgb3IgbW9yZSBlbGVtZW50cyBpZiB0aGUNCj4+Pj4+Pj4+IHRyYWlsaW5nIGFycmF5IGlzIHJl ZmVyZW5jZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIuDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+ IHdoZW4gTEVWRUw9MiwgaW4gYWRkaXRpb24gdG8gTEVWRUw9MSwgYWRkaXRpb25hbCB3YXJuaW5n cyB3aWxsIGJlDQo+Pj4+Pj4+PiBpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgb25lLWVsZW1lbnQgYXJy YXkgcmVmZXJlbmNlIG9mIGEgc3RydWN0dXJlIGlmDQo+Pj4+Pj4+PiB0aGUgYXJyYXkgaXMgcmVm ZXJlbmNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlci4NCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4g d2hlbiBMRVZFTD0zLCBpbiBhZGRpdGlvbiB0byBMRVZFTD0yLCBhZGRpdGlvbmFsIHdhcm5pbmdz IHdpbGwgYmUNCj4+Pj4+Pj4+IGlzc3VlZCBmb3IgYSB0cmFpbGluZyB6ZXJvLWxlbmd0aCBhcnJh eSByZWZlcmVuY2Ugb2YgYSBzdHJ1Y3R1cmUgaWYNCj4+Pj4+Pj4+IHRoZSBhcnJheSBpcyByZWZl cmVuY2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBn Y2MvQ2hhbmdlTG9nOg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiAJKiBkb2MvaW52b2tlLnRleGk6IERv Y3VtZW50IC1Xc3RyaWN0LWZsZXgtYXJyYXlzIG9wdGlvbi4NCj4+Pj4+Pj4+IAkqIGdpbXBsZS1h cnJheS1ib3VuZHMuY2MgKGNoZWNrX291dF9vZl9ib3VuZHNfYW5kX3dhcm4pOiBBZGQgdHdvIG1v cmUNCj4+Pj4+Pj4+IAlhcmd1bWVudHMuDQo+Pj4+Pj4+PiAJKGFycmF5X2JvdW5kc19jaGVja2Vy OjpjaGVja19hcnJheV9yZWYpOiBJc3N1ZSB3YXJuaW5ncyBmb3INCj4+Pj4+Pj4+IAktV3N0cmlj dC1mbGV4LWFycmF5cy4NCj4+Pj4+Pj4+IAkqIG9wdHMuY2MgKGZpbmlzaF9vcHRpb25zKTogSXNz dWUgd2FybmluZyBmb3IgdW5zdXBwb3J0ZWQgY29tYmluYXRpb24NCj4+Pj4+Pj4+IAlvZiAtV3N0 cmljdF9mbGV4X2FycmF5cyBhbmQgLWZzdHJpY3QtZmxleC1hcnJheS4NCj4+Pj4+Pj4+IAkqIHRy ZWUtdnJwLmNjIChleGVjdXRlX3Jhbmdlcl92cnApOiBFbmFibGUgdGhlIHBhc3Mgd2hlbg0KPj4+ Pj4+Pj4gCXdhcm5fc3RyaWN0X2ZsZXhfYXJyYXkgaXMgdHJ1ZS4NCj4+Pj4+Pj4+IA0KPj4+Pj4+ Pj4gZ2NjL2MtZmFtaWx5L0NoYW5nZUxvZzoNCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gCSogYy5vcHQg KFdzdHJpY3QtZmxleC1hcnJheXMpOiBOZXcgb3B0aW9uLg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBn Y2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gCSogZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jOiBVcGRhdGUgdGVzdGluZyBjYXNlIHdpdGgNCj4+ Pj4+Pj4+IAktV3N0cmljdC1mbGV4LWFycmF5cy4NCj4+Pj4+Pj4+IAkqIGdjYy5kZy9XYXJyYXkt Ym91bmRzLWZsZXgtYXJyYXlzLTIuYzogTGlrZXdpc2UuDQo+Pj4+Pj4+PiAJKiBnY2MuZGcvV2Fy cmF5LWJvdW5kcy1mbGV4LWFycmF5cy0zLmM6IExpa2V3aXNlLg0KPj4+Pj4+Pj4gCSogZ2NjLmRn L1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtNC5jOiBMaWtld2lzZS4NCj4+Pj4+Pj4+IAkqIGdj Yy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTUuYzogTGlrZXdpc2UuDQo+Pj4+Pj4+PiAJ KiBnY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy02LmM6IExpa2V3aXNlLg0KPj4+Pj4+ Pj4gCSogYy1jKystY29tbW9uL1dzdHJpY3QtZmxleC1hcnJheXMuYzogTmV3IHRlc3QuDQo+Pj4+ Pj4+PiAJKiBnY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmM6IE5ldyB0ZXN0Lg0KPj4+Pj4+ Pj4gCSogZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMy5jOiBOZXcgdGVzdC4NCj4+Pj4+Pj4+ IAkqIGdjYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLmM6IE5ldyB0ZXN0Lg0KPj4+Pj4+Pj4gLS0t DQo+Pj4+Pj4+PiBnY2MvYy1mYW1pbHkvYy5vcHQgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDUgKw0KPj4+Pj4+Pj4gZ2NjL2RvYy9pbnZva2UudGV4aSAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDI3ICsrKystDQo+Pj4+Pj4+PiBnY2MvZ2ltcGxlLWFycmF5LWJvdW5kcy5jYyAg ICAgICAgICAgICAgICAgICAgfCAxMDMgKysrKysrKysrKysrKystLS0tDQo+Pj4+Pj4+PiBnY2Mv b3B0cy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKysNCj4+Pj4+ Pj4+IC4uLi9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5jICAgICAgICB8ICAgOSAr Kw0KPj4+Pj4+Pj4gLi4uL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEuYyAgICAg IHwgICA1ICstDQo+Pj4+Pj4+PiAuLi4vZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMt Mi5jICAgICAgfCAgIDYgKy0NCj4+Pj4+Pj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4 LWFycmF5cy0zLmMgICAgICB8ICAgNyArLQ0KPj4+Pj4+Pj4gLi4uL2djYy5kZy9XYXJyYXktYm91 bmRzLWZsZXgtYXJyYXlzLTQuYyAgICAgIHwgICA1ICstDQo+Pj4+Pj4+PiAuLi4vZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtNS5jICAgICAgfCAgIDYgKy0NCj4+Pj4+Pj4+IC4uLi9n Y2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy02LmMgICAgICB8ICAgNyArLQ0KPj4+Pj4+ Pj4gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmMgIHwgIDM5ICsr KysrKysNCj4+Pj4+Pj4+IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMt My5jICB8ICAzOSArKysrKysrDQo+Pj4+Pj4+PiBnY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0 LWZsZXgtYXJyYXlzLmMgICAgfCAgMzkgKysrKysrKw0KPj4+Pj4+Pj4gZ2NjL3RyZWUtdnJwLmNj ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstDQo+Pj4+Pj4+PiAxNSBmaWxl cyBjaGFuZ2VkLCAyNzMgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pDQo+Pj4+Pj4+PiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4 LWFycmF5cy5jDQo+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmMNCj4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTMuYw0KPj4+Pj4+Pj4gY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMu Yw0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2MtZmFtaWx5L2Mub3B0IGIv Z2NjL2MtZmFtaWx5L2Mub3B0DQo+Pj4+Pj4+PiBpbmRleCAwZDBhZDBhNjM3NC4uMzNlZGVlZmQy ODUgMTAwNjQ0DQo+Pj4+Pj4+PiAtLS0gYS9nY2MvYy1mYW1pbHkvYy5vcHQNCj4+Pj4+Pj4+ICsr KyBiL2djYy9jLWZhbWlseS9jLm9wdA0KPj4+Pj4+Pj4gQEAgLTk3Niw2ICs5NzYsMTEgQEAgV3N0 cmluZ29wLXRydW5jYXRpb24NCj4+Pj4+Pj4+IEMgT2JqQyBDKysgTFRPIE9iakMrKyBWYXIod2Fy bl9zdHJpbmdvcF90cnVuY2F0aW9uKSBXYXJuaW5nIEluaXQgKDEpIExhbmdFbmFibGVkQnkoQyBP YmpDIEMrKyBMVE8gT2JqQysrLCBXYWxsKQ0KPj4+Pj4+Pj4gV2FybiBhYm91dCB0cnVuY2F0aW9u IGluIHN0cmluZyBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGxpa2Ugc3RybmNhdCBhbmQgc3RybmNw eS4NCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gK1dzdHJpY3QtZmxleC1hcnJheXMNCj4+Pj4+Pj4+ICtD IEMrKyBWYXIod2Fybl9zdHJpY3RfZmxleF9hcnJheXMpIFdhcm5pbmcNCj4+Pj4+Pj4+ICtXYXJu IGFib3V0IGlucHJvcGVyIHVzYWdlcyBvZiBmbGV4aWJsZSBhcnJheSBtZW1iZXJzDQo+Pj4+Pj4+ PiArYWNjb3JkaW5nIHRvIHRoZSBsZXZlbCBvZiAtZnN0cmljdC1mbGV4LWFycmF5cy4NCj4+Pj4+ Pj4+ICsNCj4+Pj4+Pj4+IFdzdWdnZXN0LWF0dHJpYnV0ZT1mb3JtYXQNCj4+Pj4+Pj4+IEMgT2Jq QyBDKysgT2JqQysrIFZhcih3YXJuX3N1Z2dlc3RfYXR0cmlidXRlX2Zvcm1hdCkgV2FybmluZw0K Pj4+Pj4+Pj4gV2FybiBhYm91dCBmdW5jdGlvbnMgd2hpY2ggbWlnaHQgYmUgY2FuZGlkYXRlcyBm b3IgZm9ybWF0IGF0dHJpYnV0ZXMuDQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9pbnZv a2UudGV4aSBiL2djYy9kb2MvaW52b2tlLnRleGkNCj4+Pj4+Pj4+IGluZGV4IDcyNjM5MjQwOWI2 Li40NDAyYjA0MjdlZiAxMDA2NDQNCj4+Pj4+Pj4+IC0tLSBhL2djYy9kb2MvaW52b2tlLnRleGkN Cj4+Pj4+Pj4+ICsrKyBiL2djYy9kb2MvaW52b2tlLnRleGkNCj4+Pj4+Pj4+IEBAIC0zOTgsNyAr Mzk4LDcgQEAgT2JqZWN0aXZlLUMgYW5kIE9iamVjdGl2ZS1DKysgRGlhbGVjdHN9Lg0KPj4+Pj4+ Pj4gLVdzdHJpY3QtYWxpYXNpbmc9biAgLVdzdHJpY3Qtb3ZlcmZsb3cgIC1Xc3RyaWN0LW92ZXJm bG93PUB2YXJ7bn0gQGdvbA0KPj4+Pj4+Pj4gLVdzdHJpbmctY29tcGFyZSBAZ29sDQo+Pj4+Pj4+ PiAtV25vLXN0cmluZ29wLW92ZXJmbG93IC1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQgQGdvbA0KPj4+ Pj4+Pj4gLS1Xbm8tc3RyaW5nb3AtdHJ1bmNhdGlvbiBAZ29sDQo+Pj4+Pj4+PiArLVduby1zdHJp bmdvcC10cnVuY2F0aW9uIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIEBnb2wNCj4+Pj4+Pj4+IC1Xc3Vn Z2VzdC1hdHRyaWJ1dGU9QHJ7W31wdXJlQHJ7fH1jb25zdEBye3x9bm9yZXR1cm5Acnt8fWZvcm1h dEBye3x9bWFsbG9jQHJ7XX0gQGdvbA0KPj4+Pj4+Pj4gLVdzd2l0Y2ggIC1Xbm8tc3dpdGNoLWJv b2wgIC1Xc3dpdGNoLWRlZmF1bHQgIC1Xc3dpdGNoLWVudW0gQGdvbA0KPj4+Pj4+Pj4gLVduby1z d2l0Y2gtb3V0c2lkZS1yYW5nZSAgLVduby1zd2l0Y2gtdW5yZWFjaGFibGUgIC1Xc3luYy1uYW5k IEBnb2wNCj4+Pj4+Pj4+IEBAIC03ODM1LDYgKzc4MzUsMzEgQEAgaG93ZXZlciwgYXJlIG5vdCBz dWl0YWJsZSBhcmd1bWVudHMgdG8gZnVuY3Rpb25zIHRoYXQgZXhwZWN0DQo+Pj4+Pj4+PiBzdWNo IGFycmF5cyBHQ0MgaXNzdWVzIHdhcm5pbmdzIHVubGVzcyBpdCBjYW4gcHJvdmUgdGhhdCB0aGUg dXNlIGlzDQo+Pj4+Pj4+PiBzYWZlLiAgQHhyZWZ7Q29tbW9uIFZhcmlhYmxlIEF0dHJpYnV0ZXN9 Lg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiArQGl0ZW0gLVdzdHJpY3QtZmxleC1hcnJheXMNCj4+Pj4+ Pj4+ICtAb3BpbmRleCBXc3RyaWN0LWZsZXgtYXJyYXlzDQo+Pj4+Pj4+PiArQG9waW5kZXggV25v LXN0cmljdC1mbGV4LWFycmF5cw0KPj4+Pj4+Pj4gK1dhcm4gYWJvdXQgaW5wcm9wZXIgdXNhZ2Vz IG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMNCj4+Pj4+Pj4+ICthY2NvcmRpbmcgdG8gdGhlIEB2 YXJ7bGV2ZWx9IG9mIHRoZSBAY29kZXtzdHJpY3RfZmxleF9hcnJheSAoQHZhcntsZXZlbH0pfQ0K Pj4+Pj4+Pj4gK2F0dHJpYnV0ZSBhdHRhY2hlZCB0byB0aGUgdHJhaWxpbmcgYXJyYXkgZmllbGQg b2YgYSBzdHJ1Y3R1cmUgaWYgaXQncw0KPj4+Pj4+Pj4gK2F2YWlsYWJsZSwgb3RoZXJ3aXNlIGFj Y29yZGluZyB0byB0aGUgQHZhcntsZXZlbH0gb2YgdGhlIG9wdGlvbg0KPj4+Pj4+Pj4gK0BvcHRp b257LWZzdHJpY3QtZmxleC1hcnJheXM9QHZhcntsZXZlbH19Lg0KPj4+Pj4+Pj4gKw0KPj4+Pj4+ Pj4gK1RoaXMgb3B0aW9uIGlzIGVmZmVjdGl2ZSBvbmx5IHdoZW4gQHZhcntsZXZlbH0gaXMgYmln Z2VyIHRoYW4gMC4gIE90aGVyd2lzZSwNCj4+Pj4+Pj4+ICtpdCB3aWxsIGJlIGlnbm9yZWQgd2l0 aCBhIHdhcm5pbmcuDQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArd2hlbiBAdmFye2xldmVsfT0xLCB3 YXJuaW5ncyB3aWxsIGJlIGlzc3VlZCBmb3IgYSB0cmFpbGluZyBhcnJheSByZWZlcmVuY2UNCj4+ Pj4+Pj4+ICtvZiBhIHN0cnVjdHVyZSB0aGF0IGhhdmUgMiBvciBtb3JlIGVsZW1lbnRzIGlmIHRo ZSB0cmFpbGluZyBhcnJheSBpcyByZWZlcmVuY2VkDQo+Pj4+Pj4+PiArYXMgYSBmbGV4aWJsZSBh cnJheSBtZW1iZXIuDQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArd2hlbiBAdmFye2xldmVsfT0yLCBp biBhZGRpdGlvbiB0byBAdmFye2xldmVsfT0xLCBhZGRpdGlvbmFsIHdhcm5pbmdzIHdpbGwgYmUN Cj4+Pj4+Pj4+ICtpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgb25lLWVsZW1lbnQgYXJyYXkgcmVmZXJl bmNlIG9mIGEgc3RydWN0dXJlDQo+Pj4+Pj4+PiAraWYgdGhlIGFycmF5IGlzIHJlZmVyZW5jZWQg YXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIuDQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArd2hlbiBA dmFye2xldmVsfT0zLCBpbiBhZGRpdGlvbiB0byBAdmFye2xldmVsfT0yLCBhZGRpdGlvbmFsIHdh cm5pbmdzIHdpbGwgYmUNCj4+Pj4+Pj4+ICtpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgemVyby1sZW5n dGggYXJyYXkgcmVmZXJlbmNlIG9mIGEgc3RydWN0dXJlDQo+Pj4+Pj4+PiAraWYgdGhlIGFycmF5 IGlzIHJlZmVyZW5jZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIuDQo+Pj4+Pj4+PiArDQo+ Pj4+Pj4+PiArDQo+Pj4+Pj4+PiBAaXRlbSAtV3N1Z2dlc3QtYXR0cmlidXRlPUBye1t9cHVyZUBy e3x9Y29uc3RAcnt8fW5vcmV0dXJuQHJ7fH1mb3JtYXRAcnt8fWNvbGRAcnt8fW1hbGxvY0Bye119 DQo+Pj4+Pj4+PiBAb3BpbmRleCBXc3VnZ2VzdC1hdHRyaWJ1dGU9DQo+Pj4+Pj4+PiBAb3BpbmRl eCBXbm8tc3VnZ2VzdC1hdHRyaWJ1dGU9DQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBs ZS1hcnJheS1ib3VuZHMuY2MgYi9nY2MvZ2ltcGxlLWFycmF5LWJvdW5kcy5jYw0KPj4+Pj4+Pj4g aW5kZXggZGIzNDU5YWYzMjUuLjgyNWYxMTMzMWI1IDEwMDY0NA0KPj4+Pj4+Pj4gLS0tIGEvZ2Nj L2dpbXBsZS1hcnJheS1ib3VuZHMuY2MNCj4+Pj4+Pj4+ICsrKyBiL2djYy9naW1wbGUtYXJyYXkt Ym91bmRzLmNjDQo+Pj4+Pj4+PiBAQCAtMjUyLDI1ICsyNTIsMzQgQEAgZ2V0X3VwX2JvdW5kc19m b3JfYXJyYXlfcmVmICh0cmVlIHJlZiwgdHJlZSAqZGVjbCwNCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4g LyogR2l2ZW4gdGhlIExPV19TVUJfT1JHLCBMT1dfU1VCIGFuZCBVUF9TVUIsIGFuZCB0aGUgY29t cHV0ZWQgVVBfQk9VTkQNCj4+Pj4+Pj4+IGFuZCBVUF9CT1VORF9QMSwgY2hlY2sgd2hldGhlciB0 aGUgYXJyYXkgcmVmZXJlbmNlIFJFRiBpcyBvdXQgb2YgYm91bmQuDQo+Pj4+Pj4+PiAtICAgSXNz dWUgd2FybmluZ3MgaWYgb3V0IG9mIGJvdW5kLCByZXR1cm4gVFJVRSBpZiB3YXJuaW5ncyBhcmUg aXNzdWVkLiAgKi8gDQo+Pj4+Pj4+PiArICAgV2hlbiBvdXQgb2YgYm91bmRzLCBzZXQgT1VUX09G X0JPVU5EIHRvIHRydWUuDQo+Pj4+Pj4+PiArICAgSXNzdWUgd2FybmluZ3MgaWYgRk9SX0FSUkFZ X0JPVU5EIGlzIHRydWUuDQo+Pj4+Pj4+PiArICAgcmV0dXJuIFRSVUUgaWYgd2FybmluZ3MgYXJl IGlzc3VlZC4gICovDQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IHN0YXRpYyBib29s DQo+Pj4+Pj4+PiBjaGVja19vdXRfb2ZfYm91bmRzX2FuZF93YXJuIChsb2NhdGlvbl90IGxvY2F0 aW9uLCB0cmVlIHJlZiwNCj4+Pj4+Pj4+IAkJCSAgICAgIHRyZWUgbG93X3N1Yl9vcmcsIHRyZWUg bG93X3N1YiwgdHJlZSB1cF9zdWIsDQo+Pj4+Pj4+PiAJCQkgICAgICB0cmVlIHVwX2JvdW5kLCB0 cmVlIHVwX2JvdW5kX3AxLA0KPj4+Pj4+Pj4gCQkJICAgICAgY29uc3QgdmFsdWVfcmFuZ2UgKnZy LA0KPj4+Pj4+Pj4gLQkJCSAgICAgIGJvb2wgaWdub3JlX29mZl9ieV9vbmUpDQo+Pj4+Pj4+PiAr CQkJICAgICAgYm9vbCBpZ25vcmVfb2ZmX2J5X29uZSwgYm9vbCBmb3JfYXJyYXlfYm91bmQsDQo+ Pj4+Pj4+PiArCQkJICAgICAgYm9vbCAqb3V0X29mX2JvdW5kKQ0KPj4+Pj4+Pj4gew0KPj4+Pj4+ Pj4gdHJlZSBsb3dfYm91bmQgPSBhcnJheV9yZWZfbG93X2JvdW5kIChyZWYpOw0KPj4+Pj4+Pj4g dHJlZSBhcnR5cGUgPSBUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAocmVmLCAwKSk7DQo+Pj4+Pj4+ PiANCj4+Pj4+Pj4+IGJvb2wgd2FybmVkID0gZmFsc2U7DQo+Pj4+Pj4+PiArICAqb3V0X29mX2Jv dW5kID0gZmFsc2U7DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IC8qIEVtcHR5IGFycmF5LiAgKi8NCj4+ Pj4+Pj4+IGlmICh1cF9ib3VuZCAmJiB0cmVlX2ludF9jc3RfZXF1YWwgKGxvd19ib3VuZCwgdXBf Ym91bmRfcDEpKQ0KPj4+Pj4+Pj4gLSAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwg T1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+Pj4+Pj4gLQkJCSAiYXJyYXkgc3Vic2NyaXB0ICVFIGlz IG91dHNpZGUgYXJyYXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+Pj4+PiAtCQkJIGxvd19zdWJfb3Jn LCBhcnR5cGUpOw0KPj4+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4+PiArICAgICAgKm91dF9vZl9ib3Vu ZCA9IHRydWU7DQo+Pj4+Pj4+PiArICAgICAgaWYgKGZvcl9hcnJheV9ib3VuZCkNCj4+Pj4+Pj4+ ICsJd2FybmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+ Pj4+Pj4+ICsJCQkgICAgICJhcnJheSBzdWJzY3JpcHQgJUUgaXMgb3V0c2lkZSBhcnJheSINCj4+ Pj4+Pj4+ICsJCQkgICAgICIgYm91bmRzIG9mICVxVCIsIGxvd19zdWJfb3JnLCBhcnR5cGUpOw0K Pj4+Pj4+Pj4gKyAgICB9DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IGlmICh3YXJuZWQpDQo+Pj4+Pj4+ PiA7IC8qIERvIG5vdGhpbmcuICAqLw0KPj4+Pj4+Pj4gQEAgLTI4MywyNCArMjkyLDMzIEBAIGNo ZWNrX291dF9vZl9ib3VuZHNfYW5kX3dhcm4gKGxvY2F0aW9uX3QgbG9jYXRpb24sIHRyZWUgcmVm LA0KPj4+Pj4+Pj4gCSAgICAgIDogdHJlZV9pbnRfY3N0X2xlICh1cF9ib3VuZCwgdXBfc3ViKSkN Cj4+Pj4+Pj4+IAkgICYmIFRSRUVfQ09ERSAobG93X3N1YikgPT0gSU5URUdFUl9DU1QNCj4+Pj4+ Pj4+IAkgICYmIHRyZWVfaW50X2NzdF9sZSAobG93X3N1YiwgbG93X2JvdW5kKSkNCj4+Pj4+Pj4+ IC0Jd2FybmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+ Pj4+Pj4+IC0JCQkgICAgICJhcnJheSBzdWJzY3JpcHQgWyVFLCAlRV0gaXMgb3V0c2lkZSAiDQo+ Pj4+Pj4+PiAtCQkJICAgICAiYXJyYXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+Pj4+PiAtCQkJICAg ICBsb3dfc3ViLCB1cF9zdWIsIGFydHlwZSk7DQo+Pj4+Pj4+PiArCXsNCj4+Pj4+Pj4+ICsJICAq b3V0X29mX2JvdW5kID0gdHJ1ZTsNCj4+Pj4+Pj4+ICsJICB3YXJuZWQgPSB3YXJuaW5nX2F0IChs b2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+Pj4+Pj4gKwkJCSAgICAgICAiYXJyYXkg c3Vic2NyaXB0IFslRSwgJUVdIGlzIG91dHNpZGUgIg0KPj4+Pj4+Pj4gKwkJCSAgICAgICAiYXJy YXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+Pj4+PiArCQkJICAgICAgIGxvd19zdWIsIHVwX3N1Yiwg YXJ0eXBlKTsNCj4+Pj4+Pj4+ICsJfQ0KPj4+Pj4+Pj4gfQ0KPj4+Pj4+Pj4gZWxzZSBpZiAodXBf Ym91bmQNCj4+Pj4+Pj4+IAkgICAmJiBUUkVFX0NPREUgKHVwX3N1YikgPT0gSU5URUdFUl9DU1QN Cj4+Pj4+Pj4+IAkgICAmJiAoaWdub3JlX29mZl9ieV9vbmUNCj4+Pj4+Pj4+IAkgICAgICAgPyAh dHJlZV9pbnRfY3N0X2xlICh1cF9zdWIsIHVwX2JvdW5kX3AxKQ0KPj4+Pj4+Pj4gCSAgICAgICA6 ICF0cmVlX2ludF9jc3RfbGUgKHVwX3N1YiwgdXBfYm91bmQpKSkNCj4+Pj4+Pj4+IC0gICAgd2Fy bmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+Pj4+ IC0JCQkgImFycmF5IHN1YnNjcmlwdCAlRSBpcyBhYm92ZSBhcnJheSBib3VuZHMgb2YgJXFUIiwN Cj4+Pj4+Pj4+IC0JCQkgdXBfc3ViLCBhcnR5cGUpOw0KPj4+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4+ PiArICAgICAgKm91dF9vZl9ib3VuZCA9IHRydWU7DQo+Pj4+Pj4+PiArICAgICAgd2FybmVkID0g d2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+Pj4+ICsJCQkg ICAiYXJyYXkgc3Vic2NyaXB0ICVFIGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+ Pj4+Pj4gKwkJCSAgIHVwX3N1YiwgYXJ0eXBlKTsNCj4+Pj4+Pj4+ICsgICAgfQ0KPj4+Pj4+Pj4g ZWxzZSBpZiAoVFJFRV9DT0RFIChsb3dfc3ViKSA9PSBJTlRFR0VSX0NTVA0KPj4+Pj4+Pj4gCSAg ICYmIHRyZWVfaW50X2NzdF9sdCAobG93X3N1YiwgbG93X2JvdW5kKSkNCj4+Pj4+Pj4+IC0gICAg d2FybmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+ Pj4+IC0JCQkgImFycmF5IHN1YnNjcmlwdCAlRSBpcyBiZWxvdyBhcnJheSBib3VuZHMgb2YgJXFU IiwNCj4+Pj4+Pj4+IC0JCQkgbG93X3N1YiwgYXJ0eXBlKTsNCj4+Pj4+Pj4+ICsgICAgew0KPj4+ Pj4+Pj4gKyAgICAgICpvdXRfb2ZfYm91bmQgPSB0cnVlOw0KPj4+Pj4+Pj4gKyAgICAgIHdhcm5l ZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV2FycmF5X2JvdW5kc18sDQo+Pj4+Pj4+PiAr CQkJICAgImFycmF5IHN1YnNjcmlwdCAlRSBpcyBiZWxvdyBhcnJheSBib3VuZHMgb2YgJXFUIiwN Cj4+Pj4+Pj4+ICsJCQkgICBsb3dfc3ViLCBhcnR5cGUpOw0KPj4+Pj4+Pj4gKyAgICB9DQo+Pj4+ Pj4+PiByZXR1cm4gd2FybmVkOw0KPj4+Pj4+Pj4gfQ0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBAQCAt MzMzLDE0ICszNTEsMjEgQEAgYXJyYXlfYm91bmRzX2NoZWNrZXI6OmNoZWNrX2FycmF5X3JlZiAo bG9jYXRpb25fdCBsb2NhdGlvbiwgdHJlZSByZWYsDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IHRyZWUg YXJnID0gVFJFRV9PUEVSQU5EIChyZWYsIDApOw0KPj4+Pj4+Pj4gY29uc3QgYm9vbCBjb21wcmVm ID0gVFJFRV9DT0RFIChhcmcpID09IENPTVBPTkVOVF9SRUY7DQo+Pj4+Pj4+PiArICB1bnNpZ25l ZCBpbnQgc3RyaWN0X2ZsZXhfYXJyYXlfbGV2ZWwgPSBmbGFnX3N0cmljdF9mbGV4X2FycmF5czsN Cj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gaWYgKGNvbXByZWYpDQo+Pj4+Pj4+PiAtICAgIC8qIFRyeSB0 byBkZXRlcm1pbmUgc3BlY2lhbCBhcnJheSBtZW1iZXIgdHlwZSBmb3IgdGhpcyBDT01QT05FTlRf UkVGLiAgKi8NCj4+Pj4+Pj4+IC0gICAgc2FtID0gY29tcG9uZW50X3JlZl9zYW1fdHlwZSAoYXJn KTsNCj4+Pj4+Pj4+ICsgICAgew0KPj4+Pj4+Pj4gKyAgICAgIC8qIFRyeSB0byBkZXRlcm1pbmUg c3BlY2lhbCBhcnJheSBtZW1iZXIgdHlwZSBmb3IgdGhpcyBDT01QT05FTlRfUkVGLiAgKi8NCj4+ Pj4+Pj4+ICsgICAgICBzYW0gPSBjb21wb25lbnRfcmVmX3NhbV90eXBlIChhcmcpOw0KPj4+Pj4+ Pj4gKyAgICAgIC8qIEdldCB0aGUgbGV2ZWwgb2Ygc3RyaWN0X2ZsZXhfYXJyYXkgZm9yIHRoaXMg YXJyYXkgZmllbGQuICAqLw0KPj4+Pj4+Pj4gKyAgICAgIHRyZWUgYWZpZWxkX2RlY2wgPSBUUkVF X09QRVJBTkQgKGFyZywgMSk7DQo+Pj4+Pj4+PiArICAgICAgc3RyaWN0X2ZsZXhfYXJyYXlfbGV2 ZWwgPSBzdHJpY3RfZmxleF9hcnJheV9sZXZlbF9vZiAoYWZpZWxkX2RlY2wpOw0KPj4+Pj4+Pj4g KyAgICB9DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IGdldF91cF9ib3VuZHNfZm9yX2FycmF5X3JlZiAo cmVmLCAmZGVjbCwgJnVwX2JvdW5kLCAmdXBfYm91bmRfcDEpOw0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+ PiBib29sIHdhcm5lZCA9IGZhbHNlOw0KPj4+Pj4+Pj4gKyAgYm9vbCBvdXRfb2ZfYm91bmQgPSBm YWxzZTsNCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gdHJlZSBhcnR5cGUgPSBUUkVFX1RZUEUgKFRSRUVf T1BFUkFORCAocmVmLCAwKSk7DQo+Pj4+Pj4+PiB0cmVlIGxvd19zdWJfb3JnID0gVFJFRV9PUEVS QU5EIChyZWYsIDEpOw0KPj4+Pj4+Pj4gQEAgLTM2MSw3ICszODYsOCBAQCBhcnJheV9ib3VuZHNf Y2hlY2tlcjo6Y2hlY2tfYXJyYXlfcmVmIChsb2NhdGlvbl90IGxvY2F0aW9uLCB0cmVlIHJlZiwN Cj4+Pj4+Pj4+IHdhcm5lZCA9IGNoZWNrX291dF9vZl9ib3VuZHNfYW5kX3dhcm4gKGxvY2F0aW9u LCByZWYsDQo+Pj4+Pj4+PiAJCQkJCSBsb3dfc3ViX29yZywgbG93X3N1YiwgdXBfc3ViLA0KPj4+ Pj4+Pj4gCQkJCQkgdXBfYm91bmQsIHVwX2JvdW5kX3AxLCB2ciwNCj4+Pj4+Pj4+IC0JCQkJCSBp Z25vcmVfb2ZmX2J5X29uZSk7DQo+Pj4+Pj4+PiArCQkJCQkgaWdub3JlX29mZl9ieV9vbmUsIHdh cm5fYXJyYXlfYm91bmRzLA0KPj4+Pj4+Pj4gKwkJCQkJICZvdXRfb2ZfYm91bmQpOw0KPj4+Pj4+ Pj4gDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IGlmICghd2FybmVkICYmIHNhbSA9PSBzcGVjaWFsX2Fy cmF5X21lbWJlcjo6aW50XzApDQo+Pj4+Pj4+PiBAQCAtMzczLDE5ICszOTksNTYgQEAgYXJyYXlf Ym91bmRzX2NoZWNrZXI6OmNoZWNrX2FycmF5X3JlZiAobG9jYXRpb25fdCBsb2NhdGlvbiwgdHJl ZSByZWYsDQo+Pj4+Pj4+PiAJCQkgICAgICAgIm9mIGFuIGludGVyaW9yIHplcm8tbGVuZ3RoIGFy cmF5ICVxVCIpKSwNCj4+Pj4+Pj4+IAkJCSBsb3dfc3ViLCBhcnR5cGUpOw0KPj4+Pj4+Pj4gDQo+ Pj4+Pj4+PiAtICBpZiAod2FybmVkKQ0KPj4+Pj4+Pj4gKyAgaWYgKHdhcm5lZCB8fCBvdXRfb2Zf Ym91bmQpDQo+Pj4+Pj4+PiB7DQo+Pj4+Pj4+PiAtICAgICAgaWYgKGR1bXBfZmlsZSAmJiAoZHVt cF9mbGFncyAmIFRERl9ERVRBSUxTKSkNCj4+Pj4+Pj4+ICsgICAgICBpZiAod2FybmVkICYmIGR1 bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRERl9ERVRBSUxTKSkNCj4+Pj4+Pj4+IAl7DQo+Pj4+ Pj4+PiAJICBmcHJpbnRmIChkdW1wX2ZpbGUsICJBcnJheSBib3VuZCB3YXJuaW5nIGZvciAiKTsN Cj4+Pj4+Pj4+IAkgIGR1bXBfZ2VuZXJpY19leHByIChNU0dfTk9URSwgVERGX1NMSU0sIHJlZik7 DQo+Pj4+Pj4+PiAJICBmcHJpbnRmIChkdW1wX2ZpbGUsICJcbiIpOw0KPj4+Pj4+Pj4gCX0NCj4+ Pj4+Pj4+IA0KPj4+Pj4+Pj4gKyAgICAgIC8qIGlzc3VlIHdhcm5pbmdzIGZvciAtV3N0cmljdC1m bGV4LWFycmF5cyBhY2NvcmRpbmcgdG8gdGhlIGxldmVsIG9mDQo+Pj4+Pj4+PiArCSBmbGFnX3N0 cmljdF9mbGV4X2FycmF5cy4gICovDQo+Pj4+Pj4+PiArICAgICAgaWYgKG91dF9vZl9ib3VuZCAm JiB3YXJuX3N0cmljdF9mbGV4X2FycmF5cykNCj4+Pj4+Pj4+ICsgICAgICBzd2l0Y2ggKHN0cmlj dF9mbGV4X2FycmF5X2xldmVsKQ0KPj4+Pj4+Pj4gKwl7DQo+Pj4+Pj4+PiArCSAgY2FzZSAzOg0K Pj4+Pj4+Pj4gKwkgICAgLyogSXNzdWUgYWRkaXRpb25hbCB3YXJuaW5ncyBmb3IgdHJhaWxpbmcg YXJyYXlzIFswXS4gICovDQo+Pj4+Pj4+PiArCSAgICBpZiAoc2FtID09IHNwZWNpYWxfYXJyYXlf bWVtYmVyOjp0cmFpbF8wKQ0KPj4+Pj4+Pj4gKwkgICAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChs b2NhdGlvbiwgT1BUX1dzdHJpY3RfZmxleF9hcnJheXMsDQo+Pj4+Pj4+PiArCQkJCSAgICJ0cmFp bGluZyBhcnJheSAlcVQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzICINCj4+Pj4+Pj4+ICsJCQkJICAg ImEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAzIiwNCj4+Pj4+Pj4+ICsJCQkJICAg YXJ0eXBlKTsNCj4+Pj4+Pj4+ICsJICAgIC8qIEZBTExUSFJPVUdILiAgKi8NCj4+Pj4+Pj4+ICsJ ICBjYXNlIDI6DQo+Pj4+Pj4+PiArCSAgICAvKiBJc3N1ZSBhZGRpdGlvbmFsIHdhcm5pbmdzIGZv ciB0cmFpbGluZyBhcnJheXMgWzFdLiAgKi8NCj4+Pj4+Pj4+ICsJICAgIGlmIChzYW0gPT0gc3Bl Y2lhbF9hcnJheV9tZW1iZXI6OnRyYWlsXzEpDQo+Pj4+Pj4+PiArCSAgICAgIHdhcm5lZCA9IHdh cm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV3N0cmljdF9mbGV4X2FycmF5cywNCj4+Pj4+Pj4+ICsJ CQkJICAgInRyYWlsaW5nIGFycmF5ICVxVCBzaG91bGQgbm90IGJlIHVzZWQgYXMgIg0KPj4+Pj4+ Pj4gKwkJCQkgICAiYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5kICINCj4+ Pj4+Pj4+ICsJCQkJICAgImFib3ZlIiwgYXJ0eXBlKTsNCj4+Pj4+Pj4+ICsJICAgIC8qIEZBTExU SFJPVUdILiAgKi8NCj4+Pj4+Pj4+ICsJICBjYXNlIDE6DQo+Pj4+Pj4+PiArCSAgICAvKiBJc3N1 ZSB3YXJuaW5ncyBmb3IgdHJhaWxpbmcgYXJyYXlzIFtuXS4gICovDQo+Pj4+Pj4+PiArCSAgICBp ZiAoc2FtID09IHNwZWNpYWxfYXJyYXlfbWVtYmVyOjp0cmFpbF9uKQ0KPj4+Pj4+Pj4gKwkgICAg ICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dzdHJpY3RfZmxleF9hcnJheXMs DQo+Pj4+Pj4+PiArCQkJCSAgICJ0cmFpbGluZyBhcnJheSAlcVQgc2hvdWxkIG5vdCBiZSB1c2Vk IGFzICINCj4+Pj4+Pj4+ICsJCQkJICAgImEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZl bCAxIGFuZCAiDQo+Pj4+Pj4+PiArCQkJCSAgICJhYm92ZSIsIGFydHlwZSk7DQo+Pj4+Pj4+PiAr CSAgICBicmVhazsNCj4+Pj4+Pj4+ICsJICBjYXNlIDA6DQo+Pj4+Pj4+PiArCSAgICAvKiBEbyBu b3RoaW5nLiAgKi8NCj4+Pj4+Pj4+ICsJICAgIGJyZWFrOw0KPj4+Pj4+Pj4gKwkgIGRlZmF1bHQ6 DQo+Pj4+Pj4+PiArCSAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQo+Pj4+Pj4+PiArCX0NCj4+Pj4+ Pj4+ICsNCj4+Pj4+Pj4+ICAgLyogQXZvaWQgbW9yZSB3YXJuaW5ncyB3aGVuIGNoZWNraW5nIG1v cmUgc2lnbmlmaWNhbnQgc3Vic2NyaXB0cw0KPj4+Pj4+Pj4gCSBvZiB0aGUgc2FtZSBleHByZXNz aW9uLiAgKi8NCj4+Pj4+Pj4+ICAgcmVmID0gVFJFRV9PUEVSQU5EIChyZWYsIDApOw0KPj4+Pj4+ Pj4gICBzdXBwcmVzc193YXJuaW5nIChyZWYsIE9QVF9XYXJyYXlfYm91bmRzXyk7DQo+Pj4+Pj4+ PiArICAgICAgc3VwcHJlc3Nfd2FybmluZyAocmVmLCBPUFRfV3N0cmljdF9mbGV4X2FycmF5cyk7 DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+ICAgaWYgKGRlY2wpDQo+Pj4+Pj4+PiAJcmVmID0gZGVjbDsN Cj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9nY2Mvb3B0cy5jYyBiL2djYy9vcHRzLmNjDQo+Pj4+Pj4+ PiBpbmRleCA3M2ZjOTc3NTZlNC4uOGRiNTNhZDZjNzcgMTAwNjQ0DQo+Pj4+Pj4+PiAtLS0gYS9n Y2Mvb3B0cy5jYw0KPj4+Pj4+Pj4gKysrIGIvZ2NjL29wdHMuY2MNCj4+Pj4+Pj4+IEBAIC0xNDEx LDYgKzE0MTEsMTQgQEAgZmluaXNoX29wdGlvbnMgKHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0cywg c3RydWN0IGdjY19vcHRpb25zICpvcHRzX3NldCwNCj4+Pj4+Pj4+ICAgb3B0cy0+eF9wcm9maWxl X2ZsYWcgPSAwOw0KPj4+Pj4+Pj4gfQ0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiArICBpZiAob3B0cy0+ eF93YXJuX3N0cmljdF9mbGV4X2FycmF5cykNCj4+Pj4+Pj4+ICsgICAgaWYgKG9wdHMtPnhfZmxh Z19zdHJpY3RfZmxleF9hcnJheXMgPT0gMCkNCj4+Pj4+Pj4+ICsgICAgICB7DQo+Pj4+Pj4+PiAr CW9wdHMtPnhfd2Fybl9zdHJpY3RfZmxleF9hcnJheXMgPSAwOw0KPj4+Pj4+Pj4gKwl3YXJuaW5n X2F0IChVTktOT1dOX0xPQ0FUSU9OLCAwLA0KPj4+Pj4+Pj4gKwkJICAgICIlPC1Xc3RyaWN0LWZs ZXgtYXJyYXlzJT4gaXMgaWdub3JlZCB3aGVuIg0KPj4+Pj4+Pj4gKwkJICAgICIgJTwtZnN0cmlj dC1mbGV4LWFycmF5cyU+IGRvZXMgbm90IHByZXNlbnQiKTsNCj4+Pj4+Pj4+ICsgICAgICB9DQo+ Pj4+Pj4+PiANCj4+Pj4+Pj4+IGRpYWdub3NlX29wdGlvbnMgKG9wdHMsIG9wdHNfc2V0LCBsb2Mp Ow0KPj4+Pj4+Pj4gfQ0KPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKyst Y29tbW9uL1dzdHJpY3QtZmxleC1hcnJheXMuYyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9u L1dzdHJpY3QtZmxleC1hcnJheXMuYw0KPj4+Pj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+ Pj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi43MmI0YjdjNjQwNg0KPj4+Pj4+Pj4gLS0tIC9kZXYv bnVsbA0KPj4+Pj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vV3N0cmljdC1m bGV4LWFycmF5cy5jDQo+Pj4+Pj4+PiBAQCAtMCwwICsxLDkgQEANCj4+Pj4+Pj4+ICsvKiBUZXN0 IHRoZSB1c2FnZSBvZiBvcHRpb24gLVdzdHJpY3QtZmxleC1hcnJheXMuICAqLw0KPj4+Pj4+Pj4g Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+Pj4+PiArLyogeyBkZy1vcHRpb25zICItTzIg LVdzdHJpY3QtZmxleC1hcnJheXMiIH0gKi8NCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICtpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KPj4+Pj4+Pj4gK3sNCj4+Pj4+Pj4+ICsgICAgcmV0 dXJuIDA7DQo+Pj4+Pj4+PiArfQ0KPj4+Pj4+Pj4gKy8qIHsgZGctd2FybmluZyAiaXMgaWdub3Jl ZCB3aGVuIFwnLWZzdHJpY3QtZmxleC1hcnJheXNcJyBkb2VzIG5vdCBwcmVzZW50IiAiIiB7IHRh cmdldCAqLSotKiB9IDAgfSAqLw0KPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0xLmMNCj4+Pj4+Pj4+IGluZGV4IGQzNmJhNGQ4 NmNiLi42NWM5ZmVjNDNhZiAxMDA2NDQNCj4+Pj4+Pj4+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jDQo+Pj4+Pj4+PiArKysgYi9nY2MvdGVz dHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEuYw0KPj4+Pj4+Pj4gQEAg LTEsNiArMSw2IEBADQo+Pj4+Pj4+PiAtLyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1X YXJyYXktYm91bmRzLiAgKi8NCj4+Pj4+Pj4+ICsvKiBUZXN0IC1mc3RyaWN0LWZsZXgtYXJyYXlz ICsgLVdhcnJheS1ib3VuZHMgKyAtV3N0cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4+Pj4+PiAv KiB7IGRnLWRvIGNvbXBpbGV9ICovDQo+Pj4+Pj4+PiAtLyogeyBkZy1vcHRpb25zICItTzIgLWZz dHJpY3QtZmxleC1hcnJheXM9MSAtV2FycmF5LWJvdW5kcyIgfSAqLw0KPj4+Pj4+Pj4gKy8qIHsg ZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1mc3RyaWN0LWZsZXgtYXJyYXlz PTEgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gc3RydWN0IHRyYWls aW5nX2FycmF5XzEgew0KPj4+Pj4+Pj4gaW50IGE7DQo+Pj4+Pj4+PiBAQCAtMzIsNiArMzIsNyBA QCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+Pj4+Pj4gc3Ry dWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+Pj4+PiB7DQo+Pj4+Pj4+ PiBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlz IGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0KPj4+Pj4+Pj4gKyAgICAJCQkvKnsgZGctd2Fy bmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBs ZXZlbCAxIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+Pj4+Pj4g dHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0g Ki8NCj4+Pj4+Pj4+IHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBz dWJzY3JpcHQgIiB9ICovDQo+Pj4+Pj4+PiB0cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7 IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTIuYw0KPj4+Pj4+Pj4g aW5kZXggZjYzMjA2ZTE5NDguLjJiNWE4OTVjNTk4IDEwMDY0NA0KPj4+Pj4+Pj4gLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmMNCj4+Pj4+Pj4+ ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMi5j DQo+Pj4+Pj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+Pj4+Pj4+IC0vKiBUZXN0IC1mc3RyaWN0LWZs ZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHMuICAqLw0KPj4+Pj4+Pj4gKy8qIFRlc3QgLWZzdHJp Y3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcyArIC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAg Ki8NCj4+Pj4+Pj4+IC8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+Pj4+PiAtLyogeyBkZy1v cHRpb25zICItTzIgLWZzdHJpY3QtZmxleC1hcnJheXM9MiAtV2FycmF5LWJvdW5kcyIgfSAqLw0K Pj4+Pj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1mc3Ry aWN0LWZsZXgtYXJyYXlzPTIgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+Pj4+IA0KPj4+Pj4+ Pj4gc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgew0KPj4+Pj4+Pj4gaW50IGE7DQo+Pj4+Pj4+PiBA QCAtMzIsNyArMzIsOSBAQCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZm KA0KPj4+Pj4+Pj4gc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+ Pj4+PiB7DQo+Pj4+Pj4+PiBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5 IHN1YnNjcmlwdCA1IGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0KPj4+Pj4+Pj4gKyAg ICAJCQkvKnsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJy YXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEg fSAqLw0KPj4+Pj4+Pj4gdHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctd2FybmluZyAiYXJy YXkgc3Vic2NyaXB0IDIgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiAgfSAqLw0KPj4+Pj4+Pj4g KyAgICAJCQkgIC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGli bGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSog fSAuLTEgfSAqLw0KPj4+Pj4+Pj4gdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGctYm9ndXMg ImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4+Pj4+IHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0g MTA7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxl eC1hcnJheXMtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFy cmF5cy0zLmMNCj4+Pj4+Pj4+IGluZGV4IGUzMjczNzE0ZThiLi4yNWI5MDNmMjYxNSAxMDA2NDQN Cj4+Pj4+Pj4+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1h cnJheXMtMy5jDQo+Pj4+Pj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91 bmRzLWZsZXgtYXJyYXlzLTMuYw0KPj4+Pj4+Pj4gQEAgLTEsNiArMSw2IEBADQo+Pj4+Pj4+PiAt LyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzLiAgKi8NCj4+Pj4+ Pj4+ICsvKiBUZXN0IC1mc3RyaWN0LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHMgKyAtV3N0 cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4+Pj4+PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Pj4+Pj4+Pj4gLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTMgLVdh cnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmlj dC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0zIC1XYXJyYXktYm91bmRzIiB9ICov DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IHN0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+Pj4+ IGludCBhOw0KPj4+Pj4+Pj4gQEAgLTMyLDggKzMyLDExIEBAIHZvaWQgX19hdHRyaWJ1dGVfXygo X19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+Pj4+PiBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAq dHJhaWxpbmdfZmxleCkNCj4+Pj4+Pj4+IHsNCj4+Pj4+Pj4+IG5vcm1hbC0+Y1s1XSA9IDU7IAkv KnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9m IiB9ICovIA0KPj4+Pj4+Pj4gKyAgICAJCQkvKnsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1 c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgIiIg eyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+Pj4+Pj4gdHJhaWxpbmdfMS0+Y1syXSA9IDI7 IC8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJzY3JpcHQgMiBpcyBhYm92ZSBhcnJheSBib3VuZHMg b2YiIH0gKi8gDQo+Pj4+Pj4+PiArICAgIAkJCSAgLyogeyBkZy13YXJuaW5nICJzaG91bGQgbm90 IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5kIGFib3Zl IiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+Pj4+PiB0cmFpbGluZ18wLT5jWzFd ID0gMTsgLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCAxIGlzIG91dHNpZGUgYXJyYXkg Ym91bmRzIG9mIiB9ICovIA0KPj4+Pj4+Pj4gKyAgICAJCQkgIC8qIHsgZGctd2FybmluZyAic2hv dWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAzIiAi IiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+Pj4+PiB0cmFpbGluZ19mbGV4LT5jWzEw XSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQiIH0gKi8NCj4+Pj4+Pj4+IA0K Pj4+Pj4+Pj4gfQ0KPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5 LWJvdW5kcy1mbGV4LWFycmF5cy00LmMNCj4+Pj4+Pj4+IGluZGV4IGNhYmFlYTc3ZGMyLi41ZmM1 MDBhMTljYSAxMDA2NDQNCj4+Pj4+Pj4+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJh eS1ib3VuZHMtZmxleC1hcnJheXMtNC5jDQo+Pj4+Pj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTQuYw0KPj4+Pj4+Pj4gQEAgLTEsNiArMSw2 IEBADQo+Pj4+Pj4+PiAtLyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91 bmRzPTIuICAqLw0KPj4+Pj4+Pj4gKy8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2Fy cmF5LWJvdW5kcz0yICsgLVdzdHJpY3QtZmxleC1hcnJheXMuICAqLw0KPj4+Pj4+Pj4gLyogeyBk Zy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+Pj4+IC0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnN0cmlj dC1mbGV4LWFycmF5cz0xIC1XYXJyYXktYm91bmRzPTIiIH0gKi8NCj4+Pj4+Pj4+ICsvKiB7IGRn LW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0x IC1XYXJyYXktYm91bmRzPTIiIH0gKi8NCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gc3RydWN0IHRyYWls aW5nX2FycmF5XzEgew0KPj4+Pj4+Pj4gaW50IGE7DQo+Pj4+Pj4+PiBAQCAtMzIsNiArMzIsNyBA QCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+Pj4+Pj4gc3Ry dWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+Pj4+PiB7DQo+Pj4+Pj4+ PiBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlz IGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0KPj4+Pj4+Pj4gKyAgICAJCQkvKnsgZGctd2Fy bmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBs ZXZlbCAxIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+Pj4+Pj4g dHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0g Ki8NCj4+Pj4+Pj4+IHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBz dWJzY3JpcHQgIiB9ICovDQo+Pj4+Pj4+PiB0cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7 IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy01LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTUuYw0KPj4+Pj4+Pj4g aW5kZXggOGI3ZGI2ZTRmMzkuLjMwYmI0Y2E4ODMyIDEwMDY0NA0KPj4+Pj4+Pj4gLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy01LmMNCj4+Pj4+Pj4+ ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtNS5j DQo+Pj4+Pj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+Pj4+Pj4+IC0vKiBUZXN0IC1mc3RyaWN0LWZs ZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHM9Mi4gICovDQo+Pj4+Pj4+PiArLyogVGVzdCAtZnN0 cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzPTIgKyAtV3N0cmljdC1mbGV4LWFycmF5 cy4gICovDQo+Pj4+Pj4+PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+Pj4+Pj4gLS8qIHsg ZGctb3B0aW9ucyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTIgLVdhcnJheS1ib3VuZHM9MiIg fSAqLw0KPj4+Pj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlz IC1mc3RyaWN0LWZsZXgtYXJyYXlzPTIgLVdhcnJheS1ib3VuZHM9MiIgfSAqLw0KPj4+Pj4+Pj4g DQo+Pj4+Pj4+PiBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+Pj4+PiBpbnQgYTsNCj4+ Pj4+Pj4+IEBAIC0zMiw3ICszMiw5IEBAIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9f KSkgc3R1ZmYoDQo+Pj4+Pj4+PiBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxl eCkNCj4+Pj4+Pj4+IHsNCj4+Pj4+Pj4+IG5vcm1hbC0+Y1s1XSA9IDU7ICAgLyp7IGRnLXdhcm5p bmcgImFycmF5IHN1YnNjcmlwdCA1IGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0KPj4+ Pj4+Pj4gKyAgICAJCQkvKnsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxl eGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0q LSogfSAuLTEgfSAqLw0KPj4+Pj4+Pj4gdHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qeyBkZy13YXJu aW5nICJhcnJheSBzdWJzY3JpcHQgMiBpcyBhYm92ZSBhcnJheSBib3VuZHMgb2YiIH0gKi8NCj4+ Pj4+Pj4+ICsgICAgCQkJICAvKiB7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBh IGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMiBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0 ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+Pj4+IHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKiB7IGRn LWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4+Pj4+PiB0cmFpbGluZ19mbGV4LT5j WzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4+Pj4+ PiANCj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91 bmRzLWZsZXgtYXJyYXlzLTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMt ZmxleC1hcnJheXMtNi5jDQo+Pj4+Pj4+PiBpbmRleCAwMzViZjQ4MTM5Ni4uZTg0N2E0NDUxNmUg MTAwNjQ0DQo+Pj4+Pj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRz LWZsZXgtYXJyYXlzLTYuYw0KPj4+Pj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2Fy cmF5LWJvdW5kcy1mbGV4LWFycmF5cy02LmMNCj4+Pj4+Pj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4+ Pj4+Pj4gLS8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yLiAg Ki8NCj4+Pj4+Pj4+ICsvKiBUZXN0IC1mc3RyaWN0LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3Vu ZHM9MiArIC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4+Pj4+IC8qIHsgZGctZG8gY29t cGlsZSB9ICovDQo+Pj4+Pj4+PiAtLyogeyBkZy1vcHRpb25zICItTzIgLWZzdHJpY3QtZmxleC1h cnJheXM9MyAtV2FycmF5LWJvdW5kcz0yIiB9ICovDQo+Pj4+Pj4+PiArLyogeyBkZy1vcHRpb25z ICItTzIgLVdzdHJpY3QtZmxleC1hcnJheXMgLWZzdHJpY3QtZmxleC1hcnJheXM9MyAtV2FycmF5 LWJvdW5kcz0yIiB9ICovDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IHN0cnVjdCB0cmFpbGluZ19hcnJh eV8xIHsNCj4+Pj4+Pj4+IGludCBhOw0KPj4+Pj4+Pj4gQEAgLTMyLDggKzMyLDExIEBAIHZvaWQg X19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+Pj4+PiBzdHJ1Y3QgdHJh aWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+Pj4+Pj4+IHsNCj4+Pj4+Pj4+IG5vcm1h bC0+Y1s1XSA9IDU7IAkvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDUgaXMgYWJvdmUg YXJyYXkgYm91bmRzIG9mIiB9ICovIA0KPj4+Pj4+Pj4gKyAgICAJCQkvKnsgZGctd2FybmluZyAi c2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAx IGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+Pj4+Pj4gdHJhaWxp bmdfMS0+Y1syXSA9IDI7IC8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJzY3JpcHQgMiBpcyBhYm92 ZSBhcnJheSBib3VuZHMgb2YiIH0gKi8NCj4+Pj4+Pj4+ICsgICAgCQkJICAvKiB7IGRnLXdhcm5p bmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2 ZWwgMiBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+Pj4+IHRy YWlsaW5nXzAtPmNbMV0gPSAxOyAvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDEgaXMg b3V0c2lkZSBhcnJheSBib3VuZHMgb2YiIH0gKi8NCj4+Pj4+Pj4+ICsgICAgCQkJICAvKiB7IGRn LXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBm b3IgbGV2ZWwgMyIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+Pj4+Pj4gdHJhaWxp bmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAq Lw0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiB9DQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTIuYw0KPj4+Pj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4+Pj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi4yZTI0MWY5NjIwOA0KPj4+Pj4+Pj4gLS0tIC9k ZXYvbnVsbA0KPj4+Pj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4 LWFycmF5cy0yLmMNCj4+Pj4+Pj4+IEBAIC0wLDAgKzEsMzkgQEANCj4+Pj4+Pj4+ICsvKiBUZXN0 IC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KPj4+Pj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlz IC1mc3RyaWN0LWZsZXgtYXJyYXlzPTIiIH0gKi8NCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICtzdHJ1 Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+Pj4+PiArICAgIGludCBhOw0KPj4+Pj4+Pj4gKyAg ICBpbnQgYjsNCj4+Pj4+Pj4+ICsgICAgaW50IGNbNF07IA0KPj4+Pj4+Pj4gK307DQo+Pj4+Pj4+ PiArDQo+Pj4+Pj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzIgew0KPj4+Pj4+Pj4gKyAgICBp bnQgYTsNCj4+Pj4+Pj4+ICsgICAgaW50IGI7DQo+Pj4+Pj4+PiArICAgIGludCBjWzFdOyANCj4+ Pj4+Pj4+ICt9Ow0KPj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8z IHsNCj4+Pj4+Pj4+ICsgICAgaW50IGE7DQo+Pj4+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4+Pj4g KyAgICBpbnQgY1swXTsNCj4+Pj4+Pj4+ICt9Ow0KPj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19h cnJheV80IHsNCj4+Pj4+Pj4+ICsgICAgaW50IGE7DQo+Pj4+Pj4+PiArICAgIGludCBiOw0KPj4+ Pj4+Pj4gKyAgICBpbnQgY1tdOw0KPj4+Pj4+Pj4gK307DQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiAr dm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKSBzdHVmZigNCj4+Pj4+Pj4+ICsgICAg c3RydWN0IHRyYWlsaW5nX2FycmF5XzEgKm5vcm1hbCwNCj4+Pj4+Pj4+ICsgICAgc3RydWN0IHRy YWlsaW5nX2FycmF5XzIgKnRyYWlsaW5nXzEsDQo+Pj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGlu Z19hcnJheV8zICp0cmFpbGluZ18wLA0KPj4+Pj4+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJy YXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+Pj4+Pj4+ICt7DQo+Pj4+Pj4+PiArICAgIG5vcm1hbC0+ Y1s1XSA9IDU7IAkvKnsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGli bGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgfSAqLw0KPj4+Pj4+Pj4gKyAg ICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyogeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVz ZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5kIGFib3ZlIiB9ICov DQo+Pj4+Pj4+PiArICAgIHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKiB7IGRnLWJvZ3VzICJzaG91 bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5k IGFib3ZlIiB9ICovDQo+Pj4+Pj4+PiArICAgIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0gMTA7IC8q IHsgZGctYm9ndXMgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJl ciBmb3IgbGV2ZWwgMiBhbmQgYWJvdmUiIH0gKi8NCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICt9DQo+ Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFy cmF5cy0zLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTMuYw0K Pj4+Pj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAw Li45N2ViNjViYTBhOQ0KPj4+Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4+Pj4gKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0zLmMNCj4+Pj4+Pj4+IEBAIC0w LDAgKzEsMzkgQEANCj4+Pj4+Pj4+ICsvKiBUZXN0IC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8N Cj4+Pj4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+Pj4+Pj4gKy8qIHsgZGctb3B0 aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTMiIH0g Ki8NCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+ Pj4+PiArICAgIGludCBhOw0KPj4+Pj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+Pj4+ICsgICAgaW50 IGNbNF07IA0KPj4+Pj4+Pj4gK307DQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArc3RydWN0IHRyYWls aW5nX2FycmF5XzIgew0KPj4+Pj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4+Pj4+ICsgICAgaW50IGI7 DQo+Pj4+Pj4+PiArICAgIGludCBjWzFdOyANCj4+Pj4+Pj4+ICt9Ow0KPj4+Pj4+Pj4gKw0KPj4+ Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8zIHsNCj4+Pj4+Pj4+ICsgICAgaW50IGE7DQo+ Pj4+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4+Pj4gKyAgICBpbnQgY1swXTsNCj4+Pj4+Pj4+ICt9 Ow0KPj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV80IHsNCj4+Pj4+Pj4+ICsgICAgaW50 IGE7DQo+Pj4+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4+Pj4gKyAgICBpbnQgY1tdOw0KPj4+Pj4+ Pj4gK307DQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArdm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vaW5s aW5lX18pKSBzdHVmZigNCj4+Pj4+Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgKm5v cm1hbCwNCj4+Pj4+Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzIgKnRyYWlsaW5nXzEs DQo+Pj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8zICp0cmFpbGluZ18wLA0KPj4+ Pj4+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+Pj4+ Pj4+ICt7DQo+Pj4+Pj4+PiArICAgIG5vcm1hbC0+Y1s1XSA9IDU7IAkvKnsgZGctd2FybmluZyAi c2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAx IGFuZCBhYm92ZSIgfSAqLw0KPj4+Pj4+Pj4gKyAgICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyog eyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1i ZXIgZm9yIGxldmVsIDIgYW5kIGFib3ZlIiB9ICovDQo+Pj4+Pj4+PiArICAgIHRyYWlsaW5nXzAt PmNbMV0gPSAxOyAvKiB7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhp YmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMyIgfSAqLw0KPj4+Pj4+Pj4gKyAgICB0cmFpbGlu Z19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJzaG91bGQgbm90IGJlIHVzZWQgYXMg YSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDMiIH0gKi8NCj4+Pj4+Pj4+ICsNCj4+ Pj4+Pj4+ICt9DQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0 cmljdC1mbGV4LWFycmF5cy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFy cmF5cy5jDQo+Pj4+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+Pj4+Pj4gaW5kZXggMDAw MDAwMDAwMDAuLjExMGZkYzcyNzc4DQo+Pj4+Pj4+PiAtLS0gL2Rldi9udWxsDQo+Pj4+Pj4+PiAr KysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMNCj4+Pj4+Pj4+ IEBAIC0wLDAgKzEsMzkgQEANCj4+Pj4+Pj4+ICsvKiBUZXN0IC1Xc3RyaWN0LWZsZXgtYXJyYXlz LiAgKi8NCj4+Pj4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+Pj4+Pj4gKy8qIHsg ZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1mc3RyaWN0LWZsZXgtYXJyYXlz PTEiIH0gKi8NCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7 DQo+Pj4+Pj4+PiArICAgIGludCBhOw0KPj4+Pj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+Pj4+ICsg ICAgaW50IGNbNF07IA0KPj4+Pj4+Pj4gK307DQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArc3RydWN0 IHRyYWlsaW5nX2FycmF5XzIgew0KPj4+Pj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4+Pj4+ICsgICAg aW50IGI7DQo+Pj4+Pj4+PiArICAgIGludCBjWzFdOyANCj4+Pj4+Pj4+ICt9Ow0KPj4+Pj4+Pj4g Kw0KPj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8zIHsNCj4+Pj4+Pj4+ICsgICAgaW50 IGE7DQo+Pj4+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4+Pj4gKyAgICBpbnQgY1swXTsNCj4+Pj4+ Pj4+ICt9Ow0KPj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV80IHsNCj4+Pj4+Pj4+ICsg ICAgaW50IGE7DQo+Pj4+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4+Pj4gKyAgICBpbnQgY1tdOw0K Pj4+Pj4+Pj4gK307DQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArdm9pZCBfX2F0dHJpYnV0ZV9fKChf X25vaW5saW5lX18pKSBzdHVmZigNCj4+Pj4+Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5 XzEgKm5vcm1hbCwNCj4+Pj4+Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzIgKnRyYWls aW5nXzEsDQo+Pj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8zICp0cmFpbGluZ18w LA0KPj4+Pj4+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkN Cj4+Pj4+Pj4+ICt7DQo+Pj4+Pj4+PiArICAgIG5vcm1hbC0+Y1s1XSA9IDU7IAkvKnsgZGctd2Fy bmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBs ZXZlbCAxIGFuZCBhYm92ZSIgfSAqLw0KPj4+Pj4+Pj4gKyAgICB0cmFpbGluZ18xLT5jWzJdID0g MjsgLyogeyBkZy1ib2d1cyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkg bWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgfSAqLw0KPj4+Pj4+Pj4gKyAgICB0cmFpbGlu Z18wLT5jWzFdID0gMTsgLyogeyBkZy1ib2d1cyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxl eGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgfSAqLw0KPj4+Pj4+Pj4g KyAgICB0cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJzaG91bGQgbm90 IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5kIGFib3Zl IiB9ICovDQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArfQ0KPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2dj Yy90cmVlLXZycC5jYyBiL2djYy90cmVlLXZycC5jYw0KPj4+Pj4+Pj4gaW5kZXggMzg0NmRjMWQ4 NDkuLmU2YzZjNWEzMDFkIDEwMDY0NA0KPj4+Pj4+Pj4gLS0tIGEvZ2NjL3RyZWUtdnJwLmNjDQo+ Pj4+Pj4+PiArKysgYi9nY2MvdHJlZS12cnAuY2MNCj4+Pj4+Pj4+IEBAIC0xMDg3LDcgKzEwODcs NyBAQCBleGVjdXRlX3Jhbmdlcl92cnAgKHN0cnVjdCBmdW5jdGlvbiAqZnVuLCBib29sIHdhcm5f YXJyYXlfYm91bmRzX3AsDQo+Pj4+Pj4+PiBpZiAoZHVtcF9maWxlICYmIChkdW1wX2ZsYWdzICYg VERGX0RFVEFJTFMpKQ0KPj4+Pj4+Pj4gcmFuZ2VyLT5kdW1wIChkdW1wX2ZpbGUpOw0KPj4+Pj4+ Pj4gDQo+Pj4+Pj4+PiAtICBpZiAod2Fybl9hcnJheV9ib3VuZHMgJiYgd2Fybl9hcnJheV9ib3Vu ZHNfcCkNCj4+Pj4+Pj4+ICsgIGlmICgod2Fybl9hcnJheV9ib3VuZHMgfHwgd2Fybl9zdHJpY3Rf ZmxleF9hcnJheXMpICYmIHdhcm5fYXJyYXlfYm91bmRzX3ApDQo+Pj4+Pj4+PiB7DQo+Pj4+Pj4+ PiAgIC8vIFNldCBhbGwgZWRnZXMgYXMgZXhlY3V0YWJsZSwgZXhjZXB0IHRob3NlIHJhbmdlciBz YXlzIGFyZW4ndC4NCj4+Pj4+Pj4+ICAgaW50IG5vbl9leGVjX2ZsYWcgPSByYW5nZXItPm5vbl9l eGVjdXRhYmxlX2VkZ2VfZmxhZzsNCj4+Pj4+Pj4+IC0tIA0KPj4+Pj4+Pj4gMi4zMS4xDQo+Pj4+ Pj4+PiANCj4+Pj4+Pj4gDQo+Pj4+Pj4+IA0KPj4+Pj4+IA0KPj4+Pj4+IC0tIA0KPj4+Pj4+IFJp Y2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NCj4+Pj4+PiBTVVNFIFNvZnR3YXJlIFNv bHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJn LA0KPj4+Pj4+IEdlcm1hbnk7IEdGOiBJdm8gVG90ZXYsIEFuZHJldyBNeWVycywgQW5kcmV3IE1j RG9uYWxkLCBCb3VkaWVuIE1vZXJtYW47DQo+Pj4+Pj4gSFJCIDM2ODA5IChBRyBOdWVybmJlcmcp DQo+Pj4+PiANCj4+Pj4+IA0KPj4+PiANCj4+Pj4gLS0gDQo+Pj4+IFJpY2hhcmQgQmllbmVyIDxy Z3VlbnRoZXJAc3VzZS5kZT4NCj4+Pj4gU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBH bWJILCBGcmFua2Vuc3RyYXNzZSAxNDYsIDkwNDYxIE51ZXJuYmVyZywNCj4+Pj4gR2VybWFueTsg R0Y6IEl2byBUb3RldiwgQW5kcmV3IE15ZXJzLCBBbmRyZXcgTWNEb25hbGQsIEJvdWRpZW4gTW9l cm1hbjsNCj4+Pj4gSFJCIDM2ODA5IChBRyBOdWVybmJlcmcpDQo+Pj4gDQo+Pj4gDQo+PiANCj4+ IC0tIA0KPj4gUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPj4gU1VTRSBTb2Z0 d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBGcmFua2Vuc3RyYXNzZSAxNDYsIDkwNDYxIE51 ZXJuYmVyZywNCj4+IEdlcm1hbnk7IEdGOiBJdm8gVG90ZXYsIEFuZHJldyBNeWVycywgQW5kcmV3 IE1jRG9uYWxkLCBCb3VkaWVuIE1vZXJtYW47DQo+PiBIUkIgMzY4MDkgKEFHIE51ZXJuYmVyZykN Cg0K