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 CE4D03858C60 for ; Thu, 2 Feb 2023 13:52:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CE4D03858C60 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 (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312Djqpc005814; Thu, 2 Feb 2023 13:52:50 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=vU3mtOfxsJHMRrEzNqeGZ05+RBTT7xYNRikWui7k2I8=; b=k94U+E9e1I+HoT7yFMBQuqMA/BFpAsBS2IJxbuntnyjXGF9mkxTp005BeHYTVPEIxeUG lPcyhLRFHfl9EpexX6pP3g9JAhrPQakvKoG44UjgL5PtLzmTjmfsHFyfHhaWgUl49Pi/ jHSY+rTELVCfhFw9ylxMmRUBwfVlZChr2X6r/KCjF/+2UMyH7u1FjdI9zkjl8sq2KsNO NnodH3FDOyhP4V+PEqyEz+qg6RBX1XfMwmLI8x7JcwXM+ZmLvhlMrQZEDYDv9yySDYya dQ5vvf/+5pQ5j6Yb46EHhGMvu7vDXVV5ASqnP4OuWKJRK25gaCg+t99NAvv8KHzPgJvn xQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfpywjus4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 13:52:48 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312CRMaC040627; Thu, 2 Feb 2023 13:52:48 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2043.outbound.protection.outlook.com [104.47.73.43]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3nct592jbw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 13:52:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lbs4ZHUEnBUSmMfT9wI8duRl2HDkOFDGeAdFF2VDm82fINsoP3jy3Yf3RDgnVYVOSj8k5tphLaeuUa3Kfp7Ze1o41B8iu6E3lOp/gTia7JC4TU3sGVBQMiAS54fy83aI+p48rknfnSv5k7CWhjldHWEhcNgY6tNA0L90zbR6hwFJt7RFY7FXMA7OIZd8+X/C61n++npEa2WjqpU57gCBAO6+SdCKG6sc6EDAcsxvpnXFT6Bpq/tVM8nTJBOcVtMZEAhKNQ8cW3rwZvWmJUPdgZ33K6VExNxA30SqxGOVuWgqM3N38k0+P4HRd/sPDb6qSIUJ1etrf3I9auiq3ljsmg== 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=vU3mtOfxsJHMRrEzNqeGZ05+RBTT7xYNRikWui7k2I8=; b=WywjRd07tDBD7YrZ7Y2464iA2C2WStAZo5Ly8nr9b32TEUgtsgTI9N+6pgrKC/tIeUaoMcdWT0bqEAlGa2i9n/b822tnI/4K2a0CGarGk6ZX1PT+/xf2Oa5BJdBlsOQIloY2aiEi1AyAFJYDrsrcURE4wev+SbYyLrmfU1EcZcNttZIQDMfCblnjfA1+sKY1WpnHv7Mmwln8Yh3zdOmCxyKd+8CsdVw8mNNF8KxwBlZI9FLw0mV8IXMQNKSU/hobOdtjrlE5BH87x2g2sNlbtiSIWjgTh4xYa4afwJV3YJG0UL0ozYcgcOLbu84WJx1yvOXkrex1mos3b2CzyvavTg== 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=vU3mtOfxsJHMRrEzNqeGZ05+RBTT7xYNRikWui7k2I8=; b=ynbJdqSkEDiXSMfRNZkplUOTlun96kgLKHRSKuqXcuJQv2ZdQo/XQjuWDrH9uJ8isoHYuuUoxJ3cCKQ3Tcou0JzTBE7A2PifwwgKbPIG4CXKF3Gvbt8N3gsmTK0QN1Ac2MV/aYAkFL8y8eIZs+weEwTh9CVz+uDbg0p2BuATclI= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by CH0PR10MB4889.namprd10.prod.outlook.com (2603:10b6:610:d9::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.7; Thu, 2 Feb 2023 13:52:40 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::c96c:cb50:dea2:2cd2]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::c96c:cb50:dea2:2cd2%5]) with mapi id 15.20.6086.007; Thu, 2 Feb 2023 13:52:39 +0000 From: Qing Zhao To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , "siddhesh@gotplt.org" , "keescook@chromium.org" Subject: Re: [PATCH 1/2] Handle component_ref to a structre/union field including flexible array member [PR101832] Thread-Topic: [PATCH 1/2] Handle component_ref to a structre/union field including flexible array member [PR101832] Thread-Index: AQHZNX31Ed6QQ1+7j0WzPTRpR3Dia665+UIAgAAsBICAASqFgIAAYHEA Date: Thu, 2 Feb 2023 13:52:38 +0000 Message-ID: References: <20230131141140.3610133-1-qing.zhao@oracle.com> <20230131141140.3610133-2-qing.zhao@oracle.com> <812910BC-870E-4432-870D-538024F1A510@oracle.com> In-Reply-To: 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_|CH0PR10MB4889:EE_ x-ms-office365-filtering-correlation-id: 6a920314-9e17-4949-f841-08db0524bf58 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0rTmRudatmO3IDVYnp1TjBi+100kRHT0vL40sgzmVvZO7iQYNcmvWpqIqtqezOlcVy3Ocy72kG2gdzPaf0m38bRHBw/INgQjUGRzyOloGHHZmMMqH8nSateiuApT2uc5VweUkO+QLyghjNjwroECdmy13oN3v8VNObjNuoL0oPR0Lkr6pZTdEnUerrR6nU320KUbuRuubgHcDCc2SJwgnHBmCr1ceG6cGcOsy2dclGAKptRNP5Fi4PHF6uT4pwv6D7C7MkaFYpYhAdQDjbfjPOKhxYmyY/kfIXa8SRhQUHlsXqrtf9bHh1sMJ4HiQrJS4kGoZDV5XBLAikZu0lzGrRlS8+YXz9KCVWigsxl9XoDaQwIKGJndfZL5UN5Er5My1rxNLfmKTrrUtM0eKZjUrmdOSX9XoyO9v5CWb5M0wsSSWijnHfDgAMN7KIyWxAX4IgljzD3S+377GypgWaBPnCfGH8RtphhRwOXdAQMvreZma/wvfoCqVVaY1Yfpg5F12t9Jb/1MUra71con3se+doeJ9c+b4gM6ilR8E5D9wJjBkK1mJQ6T0GdR8Zqvu8SEEjmrdRhaaPhq/LN1aUnv1TYk7yCWNEM0omhlqvAj5R0Ca8RFJOlt+SzwW/9lUgFAXenUx0bwgNgas2wxIhaQ44U/Bjh3i8i16zR/lT3xEVPOCaKe/7fFunIC9MEaZTl89ZTH054jsUjek01CrpLtu9s8YE86CUdBssuCxJMWq0ddmo6bWY0wZk68VvVi+dUfOCSmFs8uWkhssAIlslsSiQ== 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:(13230025)(366004)(39860400002)(376002)(346002)(396003)(136003)(451199018)(84970400001)(2906002)(76116006)(36756003)(44832011)(30864003)(6506007)(33656002)(53546011)(26005)(186003)(6512007)(478600001)(71200400001)(38070700005)(2616005)(8936002)(86362001)(6486002)(5660300002)(41300700001)(83380400001)(6916009)(64756008)(8676002)(66476007)(66946007)(38100700002)(66446008)(66556008)(4326008)(91956017)(316002)(122000001)(54906003)(45980500001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MTJUR3VkMFFreERvOFdZdFJjQk5UN1hCM2ZOZW52WjhrZGNvM3h2T21jNFpj?= =?utf-8?B?ajFwS09YTitCYXhIc3NHazB1Nnl4L0d6cFZJbU1KWFZiUkt5UnlleU5iRUZV?= =?utf-8?B?Vk45Y2p2b0ZoaVdJRDl4TWZ5S211VW9CWkxMdCtTdHZVUTRkWmVtbEpHSGdF?= =?utf-8?B?UXZQN3hoSFRHalp6bjJWZy9vRUtYVDcwek9iU0ZlYVNJWGdRZUUyT0ZBYkhq?= =?utf-8?B?Wm1sanlhUlI0MWREWFV3MlFlbGwweVA1NVRwQ1Z3OGEzTGQxOWc0Tk9tQk5S?= =?utf-8?B?ME9YTkxoOTRTcm5FUWtwMjVOc2lwcWpuWW10VVZDbEQ0OHBQZSsvZC9oY3FM?= =?utf-8?B?WDM3MVUvMGNyMVVaZXNVZEhEcFBCNEFmRGRMSFFJa2hoczB3RU9BdUIvbkt3?= =?utf-8?B?QWlwSEFsYTExbVNZQmo5QUtjRGRLQkwvN3JKay9Hd3MvRHhUVlRkRFNOUnFi?= =?utf-8?B?TWovUFB3Z3RIdXBlWDJhWnVzZHVHTHhPS1lQamd3NzFIVXRrRXFRNUF2L2ZI?= =?utf-8?B?ZkU3NTdLQkN4ZkRuZDdibDJmRmdEKzVLYy9SSDBkOXozTXF3TmlzYllTU0My?= =?utf-8?B?ZTA3c09zNUdpMnBrT0hKYXU5S1cyTGhHZ05xZTF3STJna2RNOUVzSThHU0tm?= =?utf-8?B?cXJwZFY0cDFzY3VKcmd3cHV0a0lJZ1hISFd1SnlmVzFFcGk3Y2xTS1RNQWxK?= =?utf-8?B?V0F3V2hZUGo5cTlJNWc1TFI1clZPeTRPZ04vdVNucWl6THBzZENNRUY1K3Qz?= =?utf-8?B?TWJabGRvQnhXUXU3SktocGI1dWxFM2dIc3BscmVBWnpKYTI0ZUVaUGJaWTdL?= =?utf-8?B?WEJmdGIvNGpLclo3Y1h4K3IwN2JBNWtLWTBlVTNCSG84OVhYLzkxb0Y3cEgy?= =?utf-8?B?NTEvczRxcWlYUkUxdENWdjhFYUQrYVZVMnByaFVzL2dqZG5temVzcVhBQ3dh?= =?utf-8?B?SkxRYlI1NnJGNU50Unc1U0VMZ0NVNmNaSi9RMzlTZXd5RytDUWVTV0tUVXpq?= =?utf-8?B?Z1FPV1ZTcDJ0U3ZodzJOT0d2bVRiN0tCRU5TeWMzd1dHTmUzUDdNS294bHVP?= =?utf-8?B?dFdlbjBzMWZ5STRYbDJYYmpFQmZuMTZJT2o3MGkzM3dYbDV1UmJJZWNvQU5I?= =?utf-8?B?WVk4T3Bsa2FHWUZGbW4yeXZQVHFGNFg5eVgvNGhsVGluVU1MMFBGK1plcmRk?= =?utf-8?B?SFo1OEtmdU9iOGFoclY4Q1FUQWljZG4rNTdwNTF3RWtNQWdFMG5yR2s1bVBF?= =?utf-8?B?Qi9SOHhJK2pCMzJSWnE1K0pGcVI2UDhVVml2dFdodFRBcGxaYlhiczl3Mllv?= =?utf-8?B?Sks0amNNRXFqclA4Q0FSVW9qZ2R5MCtrWE5KUjFUZ2xJRDBHK1dCNGc4RGhv?= =?utf-8?B?c0VleDM0N0JPcTRrWDdveDhaeFVya3M1eExCd0hUN0R4MkJLQmJxcVpPdnpV?= =?utf-8?B?cWtYYVg5SDZwYXo1RHNsRDRGVU5ZTURROVRFNXEvZGN6bWtIazUyUFpCUWRp?= =?utf-8?B?aDNpMkszMjRwZXJZdksvQjMvYWZnV2tDcUNRUVpNOHVTNndFQnVCWnV6dHZ4?= =?utf-8?B?U0pKdjZpeTcvNmVyYVZnVk9ZK1dBb0l0cWxjNFl0ZFpDN0JKRmpzbEhEZEQ4?= =?utf-8?B?S1NtQWZnOVlEMFN0VmYramE1Q0FPNzFsZktBTVdibFY3c0Vpam51cWRZcy9q?= =?utf-8?B?UmRLcmphaUhQcGVXU1lEZE9kbmg1ejFWUzJTR3FneStWZStIdWY3bGs1S0RI?= =?utf-8?B?V0hNRFBqWUt5U2lUY0d3b1QrQVhDYmx0NzcvV0lHMktsUHFnVmNVYmZtKzFs?= =?utf-8?B?M29UbVB1YnBTeW1wckY0cnJQMEdUaVBPdnZUSGFMOVZzdEJvVmJlQUR2QXgv?= =?utf-8?B?WVluTU9XTW1OM2M0cU9rNldaazFmKy9sdkJ2QXduTHU3ZCtyaFVnYmJrZkNk?= =?utf-8?B?S3hLd1ZPY0xEUG5lem1qd2FQVmFNWHJzWFFQZE9RU1NnOFlWRnFCVUY5QllY?= =?utf-8?B?Zmxyc21VSGF5OUZRaGcvTitiT0xMdFJjMGVpdHlSSmpheTBNcUNobHF3NWZk?= =?utf-8?B?Q1lGajlIb0RDMHNxSVZYY3pvRTBBaGhiVDRCSVdVN2lHYVpkSTdMZDZwb2Nx?= =?utf-8?B?RHA4cUE4SUtlOHdhVDNjMTBpQ2lJcGd0dWJpbTBadyt5bDZKZTFTUnJ5bzlG?= =?utf-8?B?Z1E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: XirvstPk4UbEd/z6PFRBHBtD1PojMFJ7OfEqo9uKIY+PyWrAQo9GtOfKrpdtIU2gqyAU7qwlhXidOZuuVmtwqb3Nm6LYcPUwF/jnrZAPwmuDKVAeZg5S1MiUnTYQwyVl3RpqQE9tZdtRjGD5bxkqoTmMPLEehiJNHNZSbXFhkhmK/hjRN3kZ6D0oOvXCDqGrgWDog77IQrT+1mbj781CTX22e2rlEiLitAgT+rVFDiJrgjeB9QpXGgiftoipZbBkf++ahlKtMU798Z/9iRVwJuSRGQyMoLR2V8L5kwLwf08kl0k0chkyWcYyW+o4O/hEfDzCpMm+2tzTrX/sJiYcX40UG0uzz0BzFVOMsOyZsmk2lQxrR+eQH4c8iMnkIbMgk9ZztnmPLenA17zyTJu++OZ353gvjEK61KVRfL+sDopH7iDnAIwx6v+IgeqEg95nBIQ6GUpRT24RaLBxeLoJRfxiByNtAie9q2jU9mC03DuU37/H/9/9ph0czlQaDmj8sbIN3FhUnUmsqf9lmg+rx2nsW6fGEelPHvljjdHl8GiCAsy6XlcHA80Ab0dvEZVzXDXTHYXfP1z8Cyo/zFjLH6+M5fiidE2VffK9IMKXVy7fzu50j9nM6928fuFEnGMsanOws/pb3OxB3tiRjXKjq+CHoXGdGJVkjoHb601k8mkGyombszC204LCzYOWthVL2fgSrG09jqMMhC00jXal44cF7iJme1vsgpPQ/TPep7jNWfIIPcvVFKyqCPbpMoIVZT1R7RVi8w3G4JVVcTXH2Y8tPZ1ouHUBA0xfYUkmRvO1vz5p/iAJDcWNjtRfBMzsmcog72Ds67Evj1Tnr/lA5g== 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: 6a920314-9e17-4949-f841-08db0524bf58 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2023 13:52:38.9672 (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: kN0FRhQNOuGy/ux2xvDqg9XsepZdTNfdS8WocDekMBaJ/z1+Zo0T2oC+4t6X+aQ+7JZ3J/pab3mONozbXcgVfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB4889 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_04,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020123 X-Proofpoint-GUID: 6rzuR-wBQxwzbDfnYe9dO-KEn1Q7WS_M X-Proofpoint-ORIG-GUID: 6rzuR-wBQxwzbDfnYe9dO-KEn1Q7WS_M X-Spam-Status: No, score=-11.5 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: DQoNCj4gT24gRmViIDIsIDIwMjMsIGF0IDM6MDcgQU0sIFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRo ZXJAc3VzZS5kZT4gd3JvdGU6DQo+IA0KPiBPbiBXZWQsIDEgRmViIDIwMjMsIFFpbmcgWmhhbyB3 cm90ZToNCj4gDQo+PiANCj4+IA0KPj4+IE9uIEZlYiAxLCAyMDIzLCBhdCA2OjQxIEFNLCBSaWNo YXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+IHdyb3RlOg0KPj4+IA0KPj4+IE9uIFR1ZSwg MzEgSmFuIDIwMjMsIFFpbmcgWmhhbyB3cm90ZToNCj4+PiANCj4+Pj4gR0NDIGV4dGVuc2lvbiBh Y2NlcHRzIHRoZSBjYXNlIHdoZW4gYSBzdHJ1Y3Qgd2l0aCBhIGZsZXhpYmxlIGFycmF5IG1lbWJl cg0KPj4+PiBpcyBlbWJlZGRlZCBpbnRvIGFub3RoZXIgc3RydWN0IChwb3NzaWJseSByZWN1cnNp dmVseSkuDQo+Pj4+IF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSBzaG91bGQgdHJlYXQgc3VjaCBzdHJ1 Y3QgYXMgZmxleGlibGUgc2l6ZSBwZXINCj4+Pj4gLWZzdHJpY3QtZmxleC1hcnJheXMuDQo+Pj4+ IA0KPj4+PiAJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTAxODMyDQo+Pj4+IA0KPj4+PiBnY2MvQ2hh bmdlTG9nOg0KPj4+PiANCj4+Pj4gCVBSIHRyZWUtb3B0aW1pemF0aW9uLzEwMTgzMg0KPj4+PiAJ KiB0cmVlLW9iamVjdC1zaXplLmNjIChmbGV4aWJsZV9zaXplX3R5cGVfcCk6IE5ldyBmdW5jdGlv bi4NCj4+Pj4gCShhZGRyX29iamVjdF9zaXplKTogSGFuZGxlIHN0cnVjdHVyZS91bmlvbiB0eXBl IHdoZW4gaXQgaGFzDQo+Pj4+IAlmbGV4aWJsZSBzaXplLg0KPj4+PiANCj4+Pj4gZ2NjL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2c6DQo+Pj4+IA0KPj4+PiAJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTAxODMy DQo+Pj4+IAkqIGdjYy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLTIuYzogTmV3IHRl c3QuDQo+Pj4+IAkqIGdjYy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLTMuYzogTmV3 IHRlc3QuDQo+Pj4+IAkqIGdjYy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLTQuYzog TmV3IHRlc3QuDQo+Pj4+IAkqIGdjYy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLmM6 IE5ldyB0ZXN0Lg0KPj4+PiAtLS0NCj4+Pj4gLi4uL2djYy5kZy9idWlsdGluLW9iamVjdC1zaXpl LXByMTAxODMyLTIuYyAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKw0KPj4+PiAuLi4vZ2NjLmRn L2J1aWx0aW4tb2JqZWN0LXNpemUtcHIxMDE4MzItMy5jICAgfCAxMzUgKysrKysrKysrKysrKysr KysrDQo+Pj4+IC4uLi9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS1wcjEwMTgzMi00LmMgICB8 IDEzNSArKysrKysrKysrKysrKysrKysNCj4+Pj4gLi4uL2djYy5kZy9idWlsdGluLW9iamVjdC1z aXplLXByMTAxODMyLmMgICAgIHwgMTE5ICsrKysrKysrKysrKysrKw0KPj4+PiBnY2MvdHJlZS1v YmplY3Qtc2l6ZS5jYyAgICAgICAgICAgICAgICAgICAgICAgfCAxMTUgKysrKysrKysrKystLS0t DQo+Pj4+IDUgZmlsZXMgY2hhbmdlZCwgNjExIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygt KQ0KPj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1v YmplY3Qtc2l6ZS1wcjEwMTgzMi0yLmMNCj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtcHIxMDE4MzItMy5jDQo+Pj4+IGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy5kZy9idWlsdGluLW9iamVjdC1zaXplLXBy MTAxODMyLTQuYw0KPj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv YnVpbHRpbi1vYmplY3Qtc2l6ZS1wcjEwMTgzMi5jDQo+Pj4+IA0KPj4+PiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS1wcjEwMTgzMi0yLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLTIuYw0KPj4+ PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uZjM4YmFiYzU0 MTUNCj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9i dWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLTIuYw0KPj4+PiBAQCAtMCwwICsxLDEzNSBAQA0K Pj4+PiArLyogUFIgMTAxODMyOiANCj4+Pj4gKyAgIEdDQyBleHRlbnNpb24gYWNjZXB0cyB0aGUg Y2FzZSB3aGVuIGEgc3RydWN0IHdpdGggYSBmbGV4aWJsZSBhcnJheSBtZW1iZXINCj4+Pj4gKyAg IGlzIGVtYmVkZGVkIGludG8gYW5vdGhlciBzdHJ1Y3QgKHBvc3NpYmx5IHJlY3Vyc2l2ZWx5KS4N Cj4+Pj4gKyAgIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSB3aWxsIHRyZWF0IHN1Y2ggc3RydWN0IGFz IGZsZXhpYmxlIHNpemUgcGVyDQo+Pj4+ICsgICAtZnN0cmljdC1mbGV4LWFycmF5cy4gICovIA0K Pj4+PiArLyogeyBkZy1kbyBydW4gfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLWZz dHJpY3QtZmxleC1hcnJheXM9MSIgfSAqLw0KPj4+PiArDQo+Pj4+ICsjaW5jbHVkZSA8c3RkaW8u aD4NCj4+Pj4gKw0KPj4+PiArdW5zaWduZWQgbl9mYWlscyA9IDA7DQo+Pj4+ICsNCj4+Pj4gKyNk ZWZpbmUgZXhwZWN0KHAsIF92KSBkbyB7IFwNCj4+Pj4gKyAgc2l6ZV90IHYgPSBfdjsgXA0KPj4+ PiArICBpZiAocCA9PSB2KSBcDQo+Pj4+ICsgICAgcHJpbnRmKCJvazogICVzID09ICV6ZFxuIiwg I3AsIHApOyBcDQo+Pj4+ICsgIGVsc2Uge1wNCj4+Pj4gKyAgICBwcmludGYoIldBVDogJXMgPT0g JXpkIChleHBlY3RlZCAlemQpXG4iLCAjcCwgcCwgdik7IFwNCj4+Pj4gKyAgICBuX2ZhaWxzKys7 IFwNCj4+Pj4gKyAgfSBcDQo+Pj4+ICt9IHdoaWxlICgwKTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0 IEEgew0KPj4+PiArICBpbnQgbjsNCj4+Pj4gKyAgY2hhciBkYXRhW107LyogQ29udGVudCBmb2xs b3dpbmcgaGVhZGVyICovDQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQiB7DQo+Pj4+ ICsgIGludCBtOw0KPj4+PiArICBzdHJ1Y3QgQSBhOw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiAr c3RydWN0IEMgew0KPj4+PiArICBpbnQgcTsNCj4+Pj4gKyAgc3RydWN0IEIgYjsNCj4+Pj4gK307 DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBBMCB7DQo+Pj4+ICsgIGludCBuOw0KPj4+PiArICBjaGFy IGRhdGFbMF07LyogQ29udGVudCBmb2xsb3dpbmcgaGVhZGVyICovDQo+Pj4+ICt9Ow0KPj4+PiAr DQo+Pj4+ICtzdHJ1Y3QgQjAgew0KPj4+PiArICBpbnQgbTsNCj4+Pj4gKyAgc3RydWN0IEEwIGE7 DQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQzAgew0KPj4+PiArICBpbnQgcTsNCj4+ Pj4gKyAgc3RydWN0IEIwIGI7DQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQTEgew0K Pj4+PiArICBpbnQgbjsNCj4+Pj4gKyAgY2hhciBkYXRhWzFdOy8qIENvbnRlbnQgZm9sbG93aW5n IGhlYWRlciAqLw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IEIxIHsNCj4+Pj4gKyAg aW50IG07DQo+Pj4+ICsgIHN0cnVjdCBBMSBhOw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3Ry dWN0IEMxIHsNCj4+Pj4gKyAgaW50IHE7DQo+Pj4+ICsgIHN0cnVjdCBCMSBiOw0KPj4+PiArfTsN Cj4+Pj4gKw0KPj4+PiArc3RydWN0IEFuIHsNCj4+Pj4gKyAgaW50IG47DQo+Pj4+ICsgIGNoYXIg ZGF0YVs4XTsvKiBDb250ZW50IGZvbGxvd2luZyBoZWFkZXIgKi8NCj4+Pj4gK307DQo+Pj4+ICsN Cj4+Pj4gK3N0cnVjdCBCbiB7DQo+Pj4+ICsgIGludCBtOw0KPj4+PiArICBzdHJ1Y3QgQW4gYTsN Cj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBDbiB7DQo+Pj4+ICsgIGludCBxOw0KPj4+ PiArICBzdHJ1Y3QgQm4gYjsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3ZvbGF0aWxlIHZvaWQg Km1hZ2ljMSwgKm1hZ2ljMjsNCj4+Pj4gKw0KPj4+PiAraW50IG1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkNCj4+Pj4gK3sNCj4+Pj4gKyAgICBzdHJ1Y3QgQiAqb3V0ZXI7DQo+Pj4+ICsgICAg c3RydWN0IEMgKm91dGVzdDsNCj4+Pj4gKw0KPj4+PiArICAgIC8qIE1ha2Ugc3VyZSBvcHRpbWl6 YXRpb24gY2FuJ3QgZmluZCBzb21lIG90aGVyIG9iamVjdCBzaXplLiAqLw0KPj4+PiArICAgIG91 dGVyID0gKHZvaWQgKiltYWdpYzE7DQo+Pj4+ICsgICAgb3V0ZXN0ID0gKHZvaWQgKiltYWdpYzI7 DQo+Pj4+ICsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRlci0+ YSwgMSksIC0xKTsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRl c3QtPmIsIDEpLCAtMSk7DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgm b3V0ZXN0LT5iLmEsIDEpLCAtMSk7DQo+Pj4+ICsNCj4+Pj4gKyAgICBzdHJ1Y3QgQjAgKm91dGVy MDsNCj4+Pj4gKyAgICBzdHJ1Y3QgQzAgKm91dGVzdDA7DQo+Pj4+ICsNCj4+Pj4gKyAgICAvKiBN YWtlIHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZpbmQgc29tZSBvdGhlciBvYmplY3Qgc2l6ZS4g Ki8NCj4+Pj4gKyAgICBvdXRlcjAgPSAodm9pZCAqKW1hZ2ljMTsNCj4+Pj4gKyAgICBvdXRlc3Qw ID0gKHZvaWQgKiltYWdpYzI7DQo+Pj4+ICsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29i amVjdF9zaXplKCZvdXRlcjAtPmEsIDEpLCAtMSk7DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRp bl9vYmplY3Rfc2l6ZSgmb3V0ZXN0MC0+YiwgMSksIC0xKTsNCj4+Pj4gKyAgICBleHBlY3QoX19i dWlsdGluX29iamVjdF9zaXplKCZvdXRlc3QwLT5iLmEsIDEpLCAtMSk7DQo+Pj4+ICsNCj4+Pj4g KyAgICBzdHJ1Y3QgQjEgKm91dGVyMTsNCj4+Pj4gKyAgICBzdHJ1Y3QgQzEgKm91dGVzdDE7DQo+ Pj4+ICsNCj4+Pj4gKyAgICAvKiBNYWtlIHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZpbmQgc29t ZSBvdGhlciBvYmplY3Qgc2l6ZS4gKi8NCj4+Pj4gKyAgICBvdXRlcjEgPSAodm9pZCAqKW1hZ2lj MTsNCj4+Pj4gKyAgICBvdXRlc3QxID0gKHZvaWQgKiltYWdpYzI7DQo+Pj4+ICsNCj4+Pj4gKyAg ICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRlcjEtPmEsIDEpLCAtMSk7DQo+Pj4+ ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXN0MS0+YiwgMSksIC0xKTsN Cj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRlc3QxLT5iLmEsIDEp LCAtMSk7DQo+Pj4+ICsNCj4+Pj4gKyAgICBzdHJ1Y3QgQm4gKm91dGVybjsNCj4+Pj4gKyAgICBz dHJ1Y3QgQ24gKm91dGVzdG47DQo+Pj4+ICsNCj4+Pj4gKyAgICAvKiBNYWtlIHN1cmUgb3B0aW1p emF0aW9uIGNhbid0IGZpbmQgc29tZSBvdGhlciBvYmplY3Qgc2l6ZS4gKi8NCj4+Pj4gKyAgICBv dXRlcm4gPSAodm9pZCAqKW1hZ2ljMTsNCj4+Pj4gKyAgICBvdXRlc3RuID0gKHZvaWQgKiltYWdp YzI7DQo+Pj4+ICsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRl cm4tPmEsIDEpLCBzaXplb2Yob3V0ZXJuLT5hKSk7DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRp bl9vYmplY3Rfc2l6ZSgmb3V0ZXN0bi0+YiwgMSksIHNpemVvZihvdXRlc3RuLT5iKSk7DQo+Pj4+ ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXN0bi0+Yi5hLCAxKSwgc2l6 ZW9mKG91dGVzdG4tPmIuYSkpOw0KPj4+PiArDQo+Pj4+ICsgICAgaWYgKG5fZmFpbHMgPiAwKQ0K Pj4+PiArICAgICAgX19idWlsdGluX2Fib3J0ICgpOw0KPj4+PiArDQo+Pj4+ICsgICAgcmV0dXJu IDA7DQo+Pj4+ICt9DQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9idWls dGluLW9iamVjdC1zaXplLXByMTAxODMyLTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0 aW4tb2JqZWN0LXNpemUtcHIxMDE4MzItMy5jDQo+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi5hYWFlOTliOGQ2Nw0KPj4+PiAtLS0gL2Rldi9udWxsDQo+ Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtcHIxMDE4 MzItMy5jDQo+Pj4+IEBAIC0wLDAgKzEsMTM1IEBADQo+Pj4+ICsvKiBQUiAxMDE4MzI6IA0KPj4+ PiArICAgR0NDIGV4dGVuc2lvbiBhY2NlcHRzIHRoZSBjYXNlIHdoZW4gYSBzdHJ1Y3Qgd2l0aCBh IGZsZXhpYmxlIGFycmF5IG1lbWJlcg0KPj4+PiArICAgaXMgZW1iZWRkZWQgaW50byBhbm90aGVy IHN0cnVjdCAocG9zc2libHkgcmVjdXJzaXZlbHkpLg0KPj4+PiArICAgX19idWlsdGluX29iamVj dF9zaXplIHdpbGwgdHJlYXQgc3VjaCBzdHJ1Y3QgYXMgZmxleGlibGUgc2l6ZSBwZXINCj4+Pj4g KyAgIC1mc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4gKy8qIHsgZGctZG8gcnVuIH0gKi8N Cj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTIiIH0gKi8N Cj4+Pj4gKw0KPj4+PiArI2luY2x1ZGUgPHN0ZGlvLmg+DQo+Pj4+ICsNCj4+Pj4gK3Vuc2lnbmVk IG5fZmFpbHMgPSAwOw0KPj4+PiArDQo+Pj4+ICsjZGVmaW5lIGV4cGVjdChwLCBfdikgZG8geyBc DQo+Pj4+ICsgIHNpemVfdCB2ID0gX3Y7IFwNCj4+Pj4gKyAgaWYgKHAgPT0gdikgXA0KPj4+PiAr ICAgIHByaW50Zigib2s6ICAlcyA9PSAlemRcbiIsICNwLCBwKTsgXA0KPj4+PiArICBlbHNlIHtc DQo+Pj4+ICsgICAgcHJpbnRmKCJXQVQ6ICVzID09ICV6ZCAoZXhwZWN0ZWQgJXpkKVxuIiwgI3As IHAsIHYpOyBcDQo+Pj4+ICsgICAgbl9mYWlscysrOyBcDQo+Pj4+ICsgIH0gXA0KPj4+PiArfSB3 aGlsZSAoMCk7DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBBIHsNCj4+Pj4gKyAgaW50IG47DQo+Pj4+ ICsgIGNoYXIgZGF0YVtdOy8qIENvbnRlbnQgZm9sbG93aW5nIGhlYWRlciAqLw0KPj4+PiArfTsN Cj4+Pj4gKw0KPj4+PiArc3RydWN0IEIgew0KPj4+PiArICBpbnQgbTsNCj4+Pj4gKyAgc3RydWN0 IEEgYTsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBDIHsNCj4+Pj4gKyAgaW50IHE7 DQo+Pj4+ICsgIHN0cnVjdCBCIGI7DQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQTAg ew0KPj4+PiArICBpbnQgbjsNCj4+Pj4gKyAgY2hhciBkYXRhWzBdOy8qIENvbnRlbnQgZm9sbG93 aW5nIGhlYWRlciAqLw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IEIwIHsNCj4+Pj4g KyAgaW50IG07DQo+Pj4+ICsgIHN0cnVjdCBBMCBhOw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiAr c3RydWN0IEMwIHsNCj4+Pj4gKyAgaW50IHE7DQo+Pj4+ICsgIHN0cnVjdCBCMCBiOw0KPj4+PiAr fTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IEExIHsNCj4+Pj4gKyAgaW50IG47DQo+Pj4+ICsgIGNo YXIgZGF0YVsxXTsvKiBDb250ZW50IGZvbGxvd2luZyBoZWFkZXIgKi8NCj4+Pj4gK307DQo+Pj4+ ICsNCj4+Pj4gK3N0cnVjdCBCMSB7DQo+Pj4+ICsgIGludCBtOw0KPj4+PiArICBzdHJ1Y3QgQTEg YTsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBDMSB7DQo+Pj4+ICsgIGludCBxOw0K Pj4+PiArICBzdHJ1Y3QgQjEgYjsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBBbiB7 DQo+Pj4+ICsgIGludCBuOw0KPj4+PiArICBjaGFyIGRhdGFbOF07LyogQ29udGVudCBmb2xsb3dp bmcgaGVhZGVyICovDQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQm4gew0KPj4+PiAr ICBpbnQgbTsNCj4+Pj4gKyAgc3RydWN0IEFuIGE7DQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtz dHJ1Y3QgQ24gew0KPj4+PiArICBpbnQgcTsNCj4+Pj4gKyAgc3RydWN0IEJuIGI7DQo+Pj4+ICt9 Ow0KPj4+PiArDQo+Pj4+ICt2b2xhdGlsZSB2b2lkICptYWdpYzEsICptYWdpYzI7DQo+Pj4+ICsN Cj4+Pj4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQo+Pj4+ICt7DQo+Pj4+ICsg ICAgc3RydWN0IEIgKm91dGVyOw0KPj4+PiArICAgIHN0cnVjdCBDICpvdXRlc3Q7DQo+Pj4+ICsN Cj4+Pj4gKyAgICAvKiBNYWtlIHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZpbmQgc29tZSBvdGhl ciBvYmplY3Qgc2l6ZS4gKi8NCj4+Pj4gKyAgICBvdXRlciA9ICh2b2lkICopbWFnaWMxOw0KPj4+ PiArICAgIG91dGVzdCA9ICh2b2lkICopbWFnaWMyOw0KPj4+PiArDQo+Pj4+ICsgICAgZXhwZWN0 KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXItPmEsIDEpLCAtMSk7DQo+Pj4+ICsgICAgZXhw ZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXN0LT5iLCAxKSwgLTEpOw0KPj4+PiArICAg IGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVzdC0+Yi5hLCAxKSwgLTEpOw0KPj4+ PiArDQo+Pj4+ICsgICAgc3RydWN0IEIwICpvdXRlcjA7DQo+Pj4+ICsgICAgc3RydWN0IEMwICpv dXRlc3QwOw0KPj4+PiArDQo+Pj4+ICsgICAgLyogTWFrZSBzdXJlIG9wdGltaXphdGlvbiBjYW4n dCBmaW5kIHNvbWUgb3RoZXIgb2JqZWN0IHNpemUuICovDQo+Pj4+ICsgICAgb3V0ZXIwID0gKHZv aWQgKiltYWdpYzE7DQo+Pj4+ICsgICAgb3V0ZXN0MCA9ICh2b2lkICopbWFnaWMyOw0KPj4+PiAr DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXIwLT5hLCAxKSwg LTEpOw0KPj4+PiArICAgIGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVzdDAtPmIs IDEpLCAtMSk7DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXN0 MC0+Yi5hLCAxKSwgLTEpOw0KPj4+PiArDQo+Pj4+ICsgICAgc3RydWN0IEIxICpvdXRlcjE7DQo+ Pj4+ICsgICAgc3RydWN0IEMxICpvdXRlc3QxOw0KPj4+PiArDQo+Pj4+ICsgICAgLyogTWFrZSBz dXJlIG9wdGltaXphdGlvbiBjYW4ndCBmaW5kIHNvbWUgb3RoZXIgb2JqZWN0IHNpemUuICovDQo+ Pj4+ICsgICAgb3V0ZXIxID0gKHZvaWQgKiltYWdpYzE7DQo+Pj4+ICsgICAgb3V0ZXN0MSA9ICh2 b2lkICopbWFnaWMyOw0KPj4+PiArDQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSgmb3V0ZXIxLT5hLCAxKSwgc2l6ZW9mKG91dGVyMS0+YSkpOw0KPj4+PiArICAgIGV4cGVj dChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVzdDEtPmIsIDEpLCBzaXplb2Yob3V0ZXN0MS0+ YikpOw0KPj4+PiArICAgIGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVzdDEtPmIu YSwgMSksIHNpemVvZihvdXRlc3QxLT5iLmEpKTsNCj4+Pj4gKw0KPj4+PiArICAgIHN0cnVjdCBC biAqb3V0ZXJuOw0KPj4+PiArICAgIHN0cnVjdCBDbiAqb3V0ZXN0bjsNCj4+Pj4gKw0KPj4+PiAr ICAgIC8qIE1ha2Ugc3VyZSBvcHRpbWl6YXRpb24gY2FuJ3QgZmluZCBzb21lIG90aGVyIG9iamVj dCBzaXplLiAqLw0KPj4+PiArICAgIG91dGVybiA9ICh2b2lkICopbWFnaWMxOw0KPj4+PiArICAg IG91dGVzdG4gPSAodm9pZCAqKW1hZ2ljMjsNCj4+Pj4gKw0KPj4+PiArICAgIGV4cGVjdChfX2J1 aWx0aW5fb2JqZWN0X3NpemUoJm91dGVybi0+YSwgMSksIHNpemVvZihvdXRlcm4tPmEpKTsNCj4+ Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRlc3RuLT5iLCAxKSwgc2l6 ZW9mKG91dGVzdG4tPmIpKTsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXpl KCZvdXRlc3RuLT5iLmEsIDEpLCBzaXplb2Yob3V0ZXN0bi0+Yi5hKSk7DQo+Pj4+ICsNCj4+Pj4g KyAgICBpZiAobl9mYWlscyA+IDApDQo+Pj4+ICsgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7DQo+ Pj4+ICsNCj4+Pj4gKyAgICByZXR1cm4gMDsNCj4+Pj4gK30NCj4+Pj4gZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtcHIxMDE4MzItNC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS1wcjEwMTgzMi00LmMNCj4+Pj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAuLjQyNDI2NGUyYWNk DQo+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVp bHRpbi1vYmplY3Qtc2l6ZS1wcjEwMTgzMi00LmMNCj4+Pj4gQEAgLTAsMCArMSwxMzUgQEANCj4+ Pj4gKy8qIFBSIDEwMTgzMjogDQo+Pj4+ICsgICBHQ0MgZXh0ZW5zaW9uIGFjY2VwdHMgdGhlIGNh c2Ugd2hlbiBhIHN0cnVjdCB3aXRoIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyDQo+Pj4+ICsgICBp cyBlbWJlZGRlZCBpbnRvIGFub3RoZXIgc3RydWN0IChwb3NzaWJseSByZWN1cnNpdmVseSkuDQo+ Pj4+ICsgICBfX2J1aWx0aW5fb2JqZWN0X3NpemUgd2lsbCB0cmVhdCBzdWNoIHN0cnVjdCBhcyBm bGV4aWJsZSBzaXplIHBlcg0KPj4+PiArICAgLWZzdHJpY3QtZmxleC1hcnJheXMuICAqLw0KPj4+ PiArLyogeyBkZy1kbyBydW4gfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLWZzdHJp Y3QtZmxleC1hcnJheXM9MyIgfSAqLw0KPj4+PiArDQo+Pj4+ICsjaW5jbHVkZSA8c3RkaW8uaD4N Cj4+Pj4gKw0KPj4+PiArdW5zaWduZWQgbl9mYWlscyA9IDA7DQo+Pj4+ICsNCj4+Pj4gKyNkZWZp bmUgZXhwZWN0KHAsIF92KSBkbyB7IFwNCj4+Pj4gKyAgc2l6ZV90IHYgPSBfdjsgXA0KPj4+PiAr ICBpZiAocCA9PSB2KSBcDQo+Pj4+ICsgICAgcHJpbnRmKCJvazogICVzID09ICV6ZFxuIiwgI3As IHApOyBcDQo+Pj4+ICsgIGVsc2Uge1wNCj4+Pj4gKyAgICBwcmludGYoIldBVDogJXMgPT0gJXpk IChleHBlY3RlZCAlemQpXG4iLCAjcCwgcCwgdik7IFwNCj4+Pj4gKyAgICBuX2ZhaWxzKys7IFwN Cj4+Pj4gKyAgfSBcDQo+Pj4+ICt9IHdoaWxlICgwKTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IEEg ew0KPj4+PiArICBpbnQgbjsNCj4+Pj4gKyAgY2hhciBkYXRhW107LyogQ29udGVudCBmb2xsb3dp bmcgaGVhZGVyICovDQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQiB7DQo+Pj4+ICsg IGludCBtOw0KPj4+PiArICBzdHJ1Y3QgQSBhOw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3Ry dWN0IEMgew0KPj4+PiArICBpbnQgcTsNCj4+Pj4gKyAgc3RydWN0IEIgYjsNCj4+Pj4gK307DQo+ Pj4+ICsNCj4+Pj4gK3N0cnVjdCBBMCB7DQo+Pj4+ICsgIGludCBuOw0KPj4+PiArICBjaGFyIGRh dGFbMF07LyogQ29udGVudCBmb2xsb3dpbmcgaGVhZGVyICovDQo+Pj4+ICt9Ow0KPj4+PiArDQo+ Pj4+ICtzdHJ1Y3QgQjAgew0KPj4+PiArICBpbnQgbTsNCj4+Pj4gKyAgc3RydWN0IEEwIGE7DQo+ Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQzAgew0KPj4+PiArICBpbnQgcTsNCj4+Pj4g KyAgc3RydWN0IEIwIGI7DQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQTEgew0KPj4+ PiArICBpbnQgbjsNCj4+Pj4gKyAgY2hhciBkYXRhWzFdOy8qIENvbnRlbnQgZm9sbG93aW5nIGhl YWRlciAqLw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IEIxIHsNCj4+Pj4gKyAgaW50 IG07DQo+Pj4+ICsgIHN0cnVjdCBBMSBhOw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0 IEMxIHsNCj4+Pj4gKyAgaW50IHE7DQo+Pj4+ICsgIHN0cnVjdCBCMSBiOw0KPj4+PiArfTsNCj4+ Pj4gKw0KPj4+PiArc3RydWN0IEFuIHsNCj4+Pj4gKyAgaW50IG47DQo+Pj4+ICsgIGNoYXIgZGF0 YVs4XTsvKiBDb250ZW50IGZvbGxvd2luZyBoZWFkZXIgKi8NCj4+Pj4gK307DQo+Pj4+ICsNCj4+ Pj4gK3N0cnVjdCBCbiB7DQo+Pj4+ICsgIGludCBtOw0KPj4+PiArICBzdHJ1Y3QgQW4gYTsNCj4+ Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBDbiB7DQo+Pj4+ICsgIGludCBxOw0KPj4+PiAr ICBzdHJ1Y3QgQm4gYjsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3ZvbGF0aWxlIHZvaWQgKm1h Z2ljMSwgKm1hZ2ljMjsNCj4+Pj4gKw0KPj4+PiAraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkNCj4+Pj4gK3sNCj4+Pj4gKyAgICBzdHJ1Y3QgQiAqb3V0ZXI7DQo+Pj4+ICsgICAgc3Ry dWN0IEMgKm91dGVzdDsNCj4+Pj4gKw0KPj4+PiArICAgIC8qIE1ha2Ugc3VyZSBvcHRpbWl6YXRp b24gY2FuJ3QgZmluZCBzb21lIG90aGVyIG9iamVjdCBzaXplLiAqLw0KPj4+PiArICAgIG91dGVy ID0gKHZvaWQgKiltYWdpYzE7DQo+Pj4+ICsgICAgb3V0ZXN0ID0gKHZvaWQgKiltYWdpYzI7DQo+ Pj4+ICsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRlci0+YSwg MSksIC0xKTsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRlc3Qt PmIsIDEpLCAtMSk7DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0 ZXN0LT5iLmEsIDEpLCAtMSk7DQo+Pj4+ICsNCj4+Pj4gKyAgICBzdHJ1Y3QgQjAgKm91dGVyMDsN Cj4+Pj4gKyAgICBzdHJ1Y3QgQzAgKm91dGVzdDA7DQo+Pj4+ICsNCj4+Pj4gKyAgICAvKiBNYWtl IHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZpbmQgc29tZSBvdGhlciBvYmplY3Qgc2l6ZS4gKi8N Cj4+Pj4gKyAgICBvdXRlcjAgPSAodm9pZCAqKW1hZ2ljMTsNCj4+Pj4gKyAgICBvdXRlc3QwID0g KHZvaWQgKiltYWdpYzI7DQo+Pj4+ICsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVj dF9zaXplKCZvdXRlcjAtPmEsIDEpLCBzaXplb2Yob3V0ZXIwLT5hKSk7DQo+Pj4+ICsgICAgZXhw ZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXN0MC0+YiwgMSksIHNpemVvZihvdXRlc3Qw LT5iKSk7DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXN0MC0+ Yi5hLCAxKSwgc2l6ZW9mKG91dGVzdDAtPmIuYSkpOw0KPj4+PiArDQo+Pj4+ICsgICAgc3RydWN0 IEIxICpvdXRlcjE7DQo+Pj4+ICsgICAgc3RydWN0IEMxICpvdXRlc3QxOw0KPj4+PiArDQo+Pj4+ ICsgICAgLyogTWFrZSBzdXJlIG9wdGltaXphdGlvbiBjYW4ndCBmaW5kIHNvbWUgb3RoZXIgb2Jq ZWN0IHNpemUuICovDQo+Pj4+ICsgICAgb3V0ZXIxID0gKHZvaWQgKiltYWdpYzE7DQo+Pj4+ICsg ICAgb3V0ZXN0MSA9ICh2b2lkICopbWFnaWMyOw0KPj4+PiArDQo+Pj4+ICsgICAgZXhwZWN0KF9f YnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXIxLT5hLCAxKSwgc2l6ZW9mKG91dGVyMS0+YSkpOw0K Pj4+PiArICAgIGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVzdDEtPmIsIDEpLCBz aXplb2Yob3V0ZXN0MS0+YikpOw0KPj4+PiArICAgIGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3Np emUoJm91dGVzdDEtPmIuYSwgMSksIHNpemVvZihvdXRlc3QxLT5iLmEpKTsNCj4+Pj4gKw0KPj4+ PiArICAgIHN0cnVjdCBCbiAqb3V0ZXJuOw0KPj4+PiArICAgIHN0cnVjdCBDbiAqb3V0ZXN0bjsN Cj4+Pj4gKw0KPj4+PiArICAgIC8qIE1ha2Ugc3VyZSBvcHRpbWl6YXRpb24gY2FuJ3QgZmluZCBz b21lIG90aGVyIG9iamVjdCBzaXplLiAqLw0KPj4+PiArICAgIG91dGVybiA9ICh2b2lkICopbWFn aWMxOw0KPj4+PiArICAgIG91dGVzdG4gPSAodm9pZCAqKW1hZ2ljMjsNCj4+Pj4gKw0KPj4+PiAr ICAgIGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVybi0+YSwgMSksIHNpemVvZihv dXRlcm4tPmEpKTsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRl c3RuLT5iLCAxKSwgc2l6ZW9mKG91dGVzdG4tPmIpKTsNCj4+Pj4gKyAgICBleHBlY3QoX19idWls dGluX29iamVjdF9zaXplKCZvdXRlc3RuLT5iLmEsIDEpLCBzaXplb2Yob3V0ZXN0bi0+Yi5hKSk7 DQo+Pj4+ICsNCj4+Pj4gKyAgICBpZiAobl9mYWlscyA+IDApDQo+Pj4+ICsgICAgICBfX2J1aWx0 aW5fYWJvcnQgKCk7DQo+Pj4+ICsNCj4+Pj4gKyAgICByZXR1cm4gMDsNCj4+Pj4gK30NCj4+Pj4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtcHIx MDE4MzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtcHIxMDE4 MzIuYw0KPj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+PiBpbmRleCAwMDAwMDAwMDAwMC4u OGVkNjk4MGVkZjANCj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+PiArKysgYi9nY2MvdGVzdHN1aXRl L2djYy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLmMNCj4+Pj4gQEAgLTAsMCArMSwx MTkgQEANCj4+Pj4gKy8qIFBSIDEwMTgzMjogDQo+Pj4+ICsgICBHQ0MgZXh0ZW5zaW9uIGFjY2Vw dHMgdGhlIGNhc2Ugd2hlbiBhIHN0cnVjdCB3aXRoIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyDQo+ Pj4+ICsgICBpcyBlbWJlZGRlZCBpbnRvIGFub3RoZXIgc3RydWN0IChwb3NzaWJseSByZWN1cnNp dmVseSkuDQo+Pj4+ICsgICBfX2J1aWx0aW5fb2JqZWN0X3NpemUgd2lsbCB0cmVhdCBzdWNoIHN0 cnVjdCBhcyBmbGV4aWJsZSBzaXplIHBlcg0KPj4+PiArICAgLWZzdHJpY3QtZmxleC1hcnJheXMu ICAqLw0KPj4+PiArLyogeyBkZy1kbyBydW4gfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICIt TzIiIH0gKi8NCj4+Pj4gKw0KPj4+PiArI2luY2x1ZGUgPHN0ZGlvLmg+DQo+Pj4+ICsNCj4+Pj4g K3Vuc2lnbmVkIG5fZmFpbHMgPSAwOw0KPj4+PiArDQo+Pj4+ICsjZGVmaW5lIGV4cGVjdChwLCBf dikgZG8geyBcDQo+Pj4+ICsgIHNpemVfdCB2ID0gX3Y7IFwNCj4+Pj4gKyAgaWYgKHAgPT0gdikg XA0KPj4+PiArICAgIHByaW50Zigib2s6ICAlcyA9PSAlemRcbiIsICNwLCBwKTsgXA0KPj4+PiAr ICBlbHNlIHtcDQo+Pj4+ICsgICAgcHJpbnRmKCJXQVQ6ICVzID09ICV6ZCAoZXhwZWN0ZWQgJXpk KVxuIiwgI3AsIHAsIHYpOyBcDQo+Pj4+ICsgICAgbl9mYWlscysrOyBcDQo+Pj4+ICsgIH0gXA0K Pj4+PiArfSB3aGlsZSAoMCk7DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBBIHsNCj4+Pj4gKyAgaW50 IG47DQo+Pj4+ICsgIGNoYXIgZGF0YVtdOy8qIENvbnRlbnQgZm9sbG93aW5nIGhlYWRlciAqLw0K Pj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IEIgew0KPj4+PiArICBpbnQgbTsNCj4+Pj4g KyAgc3RydWN0IEEgYTsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBDIHsNCj4+Pj4g KyAgaW50IHE7DQo+Pj4+ICsgIHN0cnVjdCBCIGI7DQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtz dHJ1Y3QgQTAgew0KPj4+PiArICBpbnQgbjsNCj4+Pj4gKyAgY2hhciBkYXRhWzBdOy8qIENvbnRl bnQgZm9sbG93aW5nIGhlYWRlciAqLw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IEIw IHsNCj4+Pj4gKyAgaW50IG07DQo+Pj4+ICsgIHN0cnVjdCBBMCBhOw0KPj4+PiArfTsNCj4+Pj4g Kw0KPj4+PiArc3RydWN0IEMwIHsNCj4+Pj4gKyAgaW50IHE7DQo+Pj4+ICsgIHN0cnVjdCBCMCBi Ow0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IEExIHsNCj4+Pj4gKyAgaW50IG47DQo+ Pj4+ICsgIGNoYXIgZGF0YVsxXTsvKiBDb250ZW50IGZvbGxvd2luZyBoZWFkZXIgKi8NCj4+Pj4g K307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBCMSB7DQo+Pj4+ICsgIGludCBtOw0KPj4+PiArICBz dHJ1Y3QgQTEgYTsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBDMSB7DQo+Pj4+ICsg IGludCBxOw0KPj4+PiArICBzdHJ1Y3QgQjEgYjsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0 cnVjdCBBbiB7DQo+Pj4+ICsgIGludCBuOw0KPj4+PiArICBjaGFyIGRhdGFbOF07LyogQ29udGVu dCBmb2xsb3dpbmcgaGVhZGVyICovDQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgQm4g ew0KPj4+PiArICBpbnQgbTsNCj4+Pj4gKyAgc3RydWN0IEFuIGE7DQo+Pj4+ICt9Ow0KPj4+PiAr DQo+Pj4+ICtzdHJ1Y3QgQ24gew0KPj4+PiArICBpbnQgcTsNCj4+Pj4gKyAgc3RydWN0IEJuIGI7 DQo+Pj4+ICt9Ow0KPj4+PiArDQo+Pj4+ICt2b2xhdGlsZSB2b2lkICptYWdpYzEsICptYWdpYzI7 DQo+Pj4+ICsNCj4+Pj4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQo+Pj4+ICt7 DQo+Pj4+ICsgICAgc3RydWN0IEIgKm91dGVyID0gKHZvaWQgKiltYWdpYzE7DQo+Pj4+ICsgICAg c3RydWN0IEMgKm91dGVzdCA9ICh2b2lkICopbWFnaWMyOw0KPj4+PiArDQo+Pj4+ICsgICAgZXhw ZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXItPmEsIDEpLCAtMSk7DQo+Pj4+ICsgICAg ZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0ZXN0LT5iLCAxKSwgLTEpOw0KPj4+PiAr ICAgIGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVzdC0+Yi5hLCAxKSwgLTEpOw0K Pj4+PiArDQo+Pj4+ICsgICAgc3RydWN0IEIwICpvdXRlcjAgPSAodm9pZCAqKW1hZ2ljMTsNCj4+ Pj4gKyAgICBzdHJ1Y3QgQzAgKm91dGVzdDAgPSAodm9pZCAqKW1hZ2ljMjsNCj4+Pj4gKw0KPj4+ PiArICAgIGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVyMC0+YSwgMSksIC0xKTsN Cj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRlc3QwLT5iLCAxKSwg LTEpOw0KPj4+PiArICAgIGV4cGVjdChfX2J1aWx0aW5fb2JqZWN0X3NpemUoJm91dGVzdDAtPmIu YSwgMSksIC0xKTsNCj4+Pj4gKw0KPj4+PiArICAgIHN0cnVjdCBCMSAqb3V0ZXIxID0gKHZvaWQg KiltYWdpYzE7DQo+Pj4+ICsgICAgc3RydWN0IEMxICpvdXRlc3QxID0gKHZvaWQgKiltYWdpYzI7 DQo+Pj4+ICsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXplKCZvdXRlcjEt PmEsIDEpLCAtMSk7DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSgmb3V0 ZXN0MS0+YiwgMSksIC0xKTsNCj4+Pj4gKyAgICBleHBlY3QoX19idWlsdGluX29iamVjdF9zaXpl KCZvdXRlc3QxLT5iLmEsIDEpLCAtMSk7DQo+Pj4+ICsNCj4+Pj4gKyAgICBzdHJ1Y3QgQm4gKm91 dGVybiA9ICh2b2lkICopbWFnaWMxOw0KPj4+PiArICAgIHN0cnVjdCBDbiAqb3V0ZXN0biA9ICh2 b2lkICopbWFnaWMyOw0KPj4+PiArDQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSgmb3V0ZXJuLT5hLCAxKSwgLTEpOw0KPj4+PiArICAgIGV4cGVjdChfX2J1aWx0aW5fb2Jq ZWN0X3NpemUoJm91dGVzdG4tPmIsIDEpLCAtMSk7DQo+Pj4+ICsgICAgZXhwZWN0KF9fYnVpbHRp bl9vYmplY3Rfc2l6ZSgmb3V0ZXN0bi0+Yi5hLCAxKSwgLTEpOw0KPj4+PiArDQo+Pj4+ICsgICAg aWYgKG5fZmFpbHMgPiAwKQ0KPj4+PiArICAgICAgX19idWlsdGluX2Fib3J0ICgpOw0KPj4+PiAr DQo+Pj4+ICsgICAgcmV0dXJuIDA7DQo+Pj4+ICt9DQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdHJl ZS1vYmplY3Qtc2l6ZS5jYyBiL2djYy90cmVlLW9iamVjdC1zaXplLmNjDQo+Pj4+IGluZGV4IDlh OTM2YTkxOTgzLi41NmI3OGNhMmE4YyAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2NjL3RyZWUtb2JqZWN0 LXNpemUuY2MNCj4+Pj4gKysrIGIvZ2NjL3RyZWUtb2JqZWN0LXNpemUuY2MNCj4+Pj4gQEAgLTUw MCw2ICs1MDAsNDIgQEAgZGVjbF9pbml0X3NpemUgKHRyZWUgZGVjbCwgYm9vbCBtaW4pDQo+Pj4+ ICByZXR1cm4gc2l6ZTsNCj4+Pj4gfQ0KPj4+PiANCj4+Pj4gKy8qIERldGVybWluZSB3aGV0aGVy IFRZUEUgaXMgYSBzdHJ1Y3R1cmUgd2l0aCBhIGZsZXhpYmxlIGFycmF5IG1lbWJlcg0KPj4+PiAr ICAgcGVyIC1mc3RyaWN0LWZsZXgtYXJyYXkgb3IgYSB1bmlvbiBjb250YWluaW5nIHN1Y2ggYSBz dHJ1Y3R1cmUNCj4+Pj4gKyAgIChwb3NzaWJseSByZWN1cnNpdmVseSkuICAqLw0KPj4+PiArc3Rh dGljIGJvb2wNCj4+Pj4gK2ZsZXhpYmxlX3NpemVfdHlwZV9wIChjb25zdF90cmVlIHR5cGUpDQo+ Pj4+ICt7DQo+Pj4+ICsgIHRyZWUgeCA9IE5VTExfVFJFRTsNCj4+Pj4gKyAgdHJlZSBsYXN0ID0g TlVMTF9UUkVFOw0KPj4+PiArICBzd2l0Y2ggKFRSRUVfQ09ERSAodHlwZSkpDQo+Pj4+ICsgICAg ew0KPj4+PiArICAgIGNhc2UgUkVDT1JEX1RZUEU6DQo+Pj4+ICsgICAgICBmb3IgKHggPSBUWVBF X0ZJRUxEUyAodHlwZSk7IHggIT0gTlVMTF9UUkVFOyB4ID0gREVDTF9DSEFJTiAoeCkpDQo+Pj4+ ICsJaWYgKFRSRUVfQ09ERSAoeCkgPT0gRklFTERfREVDTCkNCj4+Pj4gKwkgIGxhc3QgPSB4Ow0K Pj4+PiArICAgICAgaWYgKGxhc3QgPT0gTlVMTF9UUkVFKQ0KPj4+PiArCXJldHVybiBmYWxzZTsN Cj4+Pj4gKyAgICAgIGlmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAobGFzdCkpID09IEFSUkFZX1RZ UEUNCj4+Pj4gKwkgICYmICFERUNMX05PVF9GTEVYQVJSQVkgKGxhc3QpKQ0KPj4+PiArCXJldHVy biB0cnVlOw0KPj4+PiArICAgICAgZWxzZSBpZiAoVFJFRV9DT0RFIChUUkVFX1RZUEUgKGxhc3Qp KSA9PSBSRUNPUkRfVFlQRQ0KPj4+PiArCSAgICAgICB8fCBUUkVFX0NPREUgKFRSRUVfVFlQRSAo bGFzdCkpID09IFVOSU9OX1RZUEUpDQo+Pj4+ICsJcmV0dXJuIGZsZXhpYmxlX3NpemVfdHlwZV9w IChUUkVFX1RZUEUgKGxhc3QpKTsNCj4+PiANCj4+PiBGb3IgdHlwZXMgd2l0aCBtYW55IG1lbWJl cnMgdGhpcyBjYW4gYmVjb21lIHF1aXRlIHNsb3cgKElJUkMgd2UgaGFkDQo+Pj4gYnVncyBhYm91 dCBzaW1pbGFyIHdhbGtzIG9mIGFsbCBmaWVsZHMgaW4gdHlwZXMpLCBhbmQgdGhpcyBmdW5jdGlv bg0KPj4+IGxvb2tzIGxpa2UgaXQncyBpbnZva2VkIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1l IHR5cGUgcGVyIFRVLg0KPj4+IA0KPj4+IEluIHByaW5jaXBsZSB0aGUgcHJvcGVydHkgaXMgZml4 ZWQgYXQgdGhlIHRpbWUgd2UgbGF5IG91dCBhIHJlY29yZA0KPj4+IHR5cGUsIHNvIHdlIG1pZ2h0 IHdhbnQgdG8gY29tcHV0ZSBpdCBhdCB0aGF0IHRpbWUgYW5kIHJlY29yZCB0aGUNCj4+PiByZXN1 bHQuDQo+PiANCj4+IFlvdSBtZWFuIGluIEZFPyANCj4gDQo+IFllcywgZWl0aGVyIGluIHRoZSBm cm9udGVuZCBvciBpbiB0aGUgbWlkZGxlLWVuZHMgbGF5b3V0X3R5cGUuDQo+IA0KPj4gWWVzLCB0 aGF0P3MgYmV0dGVyIGFuZCBjbGVhbmVyLg0KPj4gDQo+PiBJIHdpbGwgYWRkIG9uZSBtb3JlIGZp ZWxkIGluIHRoZSBUWVBFIHN0cnVjdHVyZSB0byByZWNvcmQgdGhpcyBpbmZvcm1hdGlvbiBhbmQg Y2hlY2sgdGhpcyBmaWVsZCBkdXJpbmcgbWlkZGxlIGVuZC4NCj4+IA0KPj4gSSBoYWQgdGhlIHNh bWUgdGhvdWdodCBpbiB0aGUgYmVnaW5uaW5nLCBidXQgbm90IHN1cmUgd2hldGhlciBhZGRpbmcg YSANCj4+IG5ldyBmaWVsZCBpbiBJUiBpcyBuZWNlc3Nhcnkgb3Igbm90LCBvdGhlciBwbGFjZXMg aW4gbWlkZGxlIGVuZCBtaWdodCANCj4+IG5vdCB1c2UgdGhpcyBuZXcgZmllbGQuDQo+IA0KPiBJ dCBtaWdodCBiZSBpbnRlcmVzdGluZyB0byBzZWFyY2ggZm9yIG90aGVyIGNvZGUgd2Fsa2luZyBh bGwgZmllbGRzIG9mDQo+IGEgdHlwZSB0byBkZXRlcm1pbmUgdGhpcyBvciBzaW1pbGFyIGluZm8u DQoNClRoZXJlIGlzIG9uZSB3aGljaCBpcyBkZWZpbmVkIGluIHRyZWUuY2MgYnV0IG9ubHkgaXMg cmVmZXJlbmNlZCBpbiBjL2MtZGVjbC5jYzoNCg0KLyogRGV0ZXJtaW5lIHdoZXRoZXIgVFlQRSBp cyBhIHN0cnVjdHVyZSB3aXRoIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLA0KICAgb3IgYSB1bmlv biBjb250YWluaW5nIHN1Y2ggYSBzdHJ1Y3R1cmUgKHBvc3NpYmx5IHJlY3Vyc2l2ZWx5KS4gICov DQpmbGV4aWJsZV9hcnJheV90eXBlX3ANCg0KSG93ZXZlciwgdGhpcyByb3V0aW5lIGlzIGEgbGl0 dGxlIGRpZmZlcmVudCB0aGFuIHRoZSBvbmUgSSB0cmllZCB0byBhZGQ6DQoNCkluIHRoZSBjdXJy ZW50IHJvdXRpbmUg4oCcZmxleGlibGVfYXJyYXlfdHlwZV9w4oCdLCAgb25seSBvbmUgbGV2ZWwg bmVzdGluZyBpbiB0aGUgc3RydWN0dXJlIGlzIGFjY2VwdGVkLCBtdWx0aXBsZSBuZXN0aW5nIGlu IHN0cnVjdHVyZSBpcyBub3QgcGVybWl0dGVkLg0KDQpTbywgbXkgcXVlc3Rpb24gaXM6ICBzaGFs bCB3ZSBhY2NlcHQgbXVsdGlwbGUgbmVzdGluZyBpbiBzdHJ1Y3R1cmU/IGkuZS4NCg0Kc3RydWN0 IEEgew0KICBpbnQgbjsNCiAgY2hhciBkYXRhW107LyogQ29udGVudCBmb2xsb3dpbmcgaGVhZGVy ICovDQp9Ow0KDQpzdHJ1Y3QgQiB7DQogIGludCBtOw0KICBzdHJ1Y3QgQSBhOw0KfTsNCg0Kc3Ry dWN0IEMgew0KICBpbnQgcTsNCiAgc3RydWN0IEIgYjsNCn07DQoNClFpbmcNCj4gDQo+PiB0aGFu a3MuDQo+PiANCj4+IFFpbmcNCj4+IA0KPj4+IA0KPj4+PiArICAgICAgcmV0dXJuIGZhbHNlOw0K Pj4+PiArICAgIGNhc2UgVU5JT05fVFlQRToNCj4+Pj4gKyAgICAgIGZvciAoeCA9IFRZUEVfRklF TERTICh0eXBlKTsgeCAhPSBOVUxMX1RSRUU7IHggPSBERUNMX0NIQUlOICh4KSkNCj4+Pj4gKwl7 DQo+Pj4+ICsJICBpZiAoVFJFRV9DT0RFICh4KSA9PSBGSUVMRF9ERUNMDQo+Pj4+ICsJICAgICAg JiYgZmxleGlibGVfYXJyYXlfdHlwZV9wIChUUkVFX1RZUEUgKHgpKSkNCj4+Pj4gKwkgICAgcmV0 dXJuIHRydWU7DQo+Pj4+ICsJfQ0KPj4+PiArICAgICAgcmV0dXJuIGZhbHNlOw0KPj4+PiArICAg IGRlZmF1bHQ6DQo+Pj4+ICsgICAgICByZXR1cm4gZmFsc2U7DQo+Pj4+ICsgIH0NCj4+Pj4gK30N Cj4+Pj4gKw0KPj4+PiAvKiBDb21wdXRlIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSBmb3IgUFRSLCB3 aGljaCBpcyBhIEFERFJfRVhQUi4NCj4+Pj4gICBPQkpFQ1RfU0laRV9UWVBFIGlzIHRoZSBzZWNv bmQgYXJndW1lbnQgZnJvbSBfX2J1aWx0aW5fb2JqZWN0X3NpemUuDQo+Pj4+ICAgSWYgdW5rbm93 biwgcmV0dXJuIHNpemVfdW5rbm93biAob2JqZWN0X3NpemVfdHlwZSkuICAqLw0KPj4+PiBAQCAt NjMzLDQ1ICs2NjksNjggQEAgYWRkcl9vYmplY3Rfc2l6ZSAoc3RydWN0IG9iamVjdF9zaXplX2lu Zm8gKm9zaSwgY29uc3RfdHJlZSBwdHIsDQo+Pj4+IAkJICAgIHYgPSBOVUxMX1RSRUU7DQo+Pj4+ IAkJICAgIGJyZWFrOw0KPj4+PiAJCSAgY2FzZSBDT01QT05FTlRfUkVGOg0KPj4+PiAtCQkgICAg aWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFICh2KSkgIT0gQVJSQVlfVFlQRSkNCj4+Pj4gKwkJICAg IC8qIFdoZW4gdGhlIHJlZiBpcyBub3QgdG8gYW4gYXJyYXksIGEgcmVjb3JkIG9yIGEgdW5pb24s IGl0DQo+Pj4+ICsJCSAgICAgICB3aWxsIG5vdCBoYXZlIGZsZXhpYmxlIHNpemUsIGNvbXB1dGUg dGhlIG9iamVjdCBzaXplDQo+Pj4+ICsJCSAgICAgICBkaXJlY3RseS4gICovDQo+Pj4+ICsJCSAg ICBpZiAoKFRSRUVfQ09ERSAoVFJFRV9UWVBFICh2KSkgIT0gQVJSQVlfVFlQRSkNCj4+Pj4gKwkJ CSYmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAodikpICE9IFJFQ09SRF9UWVBFKQ0KPj4+PiArCQkJ JiYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFICh2KSkgIT0gVU5JT05fVFlQRSkpDQo+Pj4+IAkJICAg ICAgew0KPj4+PiAJCQl2ID0gTlVMTF9UUkVFOw0KPj4+PiAJCQlicmVhazsNCj4+Pj4gCQkgICAg ICB9DQo+Pj4+IC0JCSAgICBpc19mbGV4aWJsZV9hcnJheV9tZW1fcmVmID0gYXJyYXlfcmVmX2Zs ZXhpYmxlX3NpemVfcCAodik7DQo+Pj4+IC0JCSAgICB3aGlsZSAodiAhPSBwdF92YXIgJiYgVFJF RV9DT0RFICh2KSA9PSBDT01QT05FTlRfUkVGKQ0KPj4+PiAtCQkgICAgICBpZiAoVFJFRV9DT0RF IChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQ0KPj4+PiAtCQkJICAhPSBVTklPTl9U WVBFDQo+Pj4+IC0JCQkgICYmIFRSRUVfQ09ERSAoVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHYs IDApKSkNCj4+Pj4gLQkJCSAgIT0gUVVBTF9VTklPTl9UWVBFKQ0KPj4+PiAtCQkJYnJlYWs7DQo+ Pj4+IC0JCSAgICAgIGVsc2UNCj4+Pj4gLQkJCXYgPSBUUkVFX09QRVJBTkQgKHYsIDApOw0KPj4+ PiAtCQkgICAgaWYgKFRSRUVfQ09ERSAodikgPT0gQ09NUE9ORU5UX1JFRg0KPj4+PiAtCQkJJiYg VFJFRV9DT0RFIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQ0KPj4+PiAtCQkJICAg PT0gUkVDT1JEX1RZUEUpDQo+Pj4+ICsJCSAgICAvKiBpZiB0aGUgcmVjb3JkIG9yIHVuaW9uIGRv ZXMgbm90IGhhdmUgZmxleGlibGUgc2l6ZQ0KPj4+PiArCQkgICAgICAgY29tcHV0ZSB0aGUgb2Jq ZWN0IHNpemUgZGlyZWN0bHkuICAqLw0KPj4+PiArCQkgICAgaWYgKFRSRUVfQ09ERSAoVFJFRV9U WVBFICh2KSkgPT0gUkVDT1JEX1RZUEUNCj4+Pj4gKwkJCXx8IFRSRUVfQ09ERSAoVFJFRV9UWVBF ICh2KSkgPT0gVU5JT05fVFlQRSkNCj4+Pj4gCQkgICAgICB7DQo+Pj4+IC0JCQkvKiBjb21wdXRl IG9iamVjdCBzaXplIG9ubHkgaWYgdiBpcyBub3QgYQ0KPj4+PiAtCQkJICAgZmxleGlibGUgYXJy YXkgbWVtYmVyLiAgKi8NCj4+Pj4gLQkJCWlmICghaXNfZmxleGlibGVfYXJyYXlfbWVtX3JlZikN Cj4+Pj4gKwkJCWlmICghZmxleGlibGVfc2l6ZV90eXBlX3AgKFRSRUVfVFlQRSAodikpKQ0KPj4+ PiAJCQkgIHsNCj4+Pj4gCQkJICAgIHYgPSBOVUxMX1RSRUU7DQo+Pj4+IAkJCSAgICBicmVhazsN Cj4+Pj4gCQkJICB9DQo+Pj4+IC0JCQl2ID0gVFJFRV9PUEVSQU5EICh2LCAwKTsNCj4+Pj4gKwkJ CWVsc2UNCj4+Pj4gKwkJCSAgdiA9IFRSRUVfT1BFUkFORCAodiwgMCk7DQo+Pj4+IAkJICAgICAg fQ0KPj4+PiAtCQkgICAgd2hpbGUgKHYgIT0gcHRfdmFyICYmIFRSRUVfQ09ERSAodikgPT0gQ09N UE9ORU5UX1JFRikNCj4+Pj4gLQkJICAgICAgaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChUUkVF X09QRVJBTkQgKHYsIDApKSkNCj4+Pj4gLQkJCSAgIT0gVU5JT05fVFlQRQ0KPj4+PiAtCQkJICAm JiBUUkVFX0NPREUgKFRSRUVfVFlQRSAoVFJFRV9PUEVSQU5EICh2LCAwKSkpDQo+Pj4+IC0JCQkg ICE9IFFVQUxfVU5JT05fVFlQRSkNCj4+Pj4gLQkJCWJyZWFrOw0KPj4+PiAtCQkgICAgICBlbHNl DQo+Pj4+IC0JCQl2ID0gVFJFRV9PUEVSQU5EICh2LCAwKTsNCj4+Pj4gLQkJICAgIGlmICh2ICE9 IHB0X3ZhcikNCj4+Pj4gLQkJICAgICAgdiA9IE5VTExfVFJFRTsNCj4+Pj4gCQkgICAgZWxzZQ0K Pj4+PiAtCQkgICAgICB2ID0gcHRfdmFyOw0KPj4+PiArCQkgICAgICB7DQo+Pj4+ICsJCQkvKiBO b3cgdGhlIHJlZiBpcyB0byBhbiBhcnJheSB0eXBlLiAgKi8NCj4+Pj4gKwkJCWlzX2ZsZXhpYmxl X2FycmF5X21lbV9yZWYNCj4+Pj4gKwkJCSAgPSBhcnJheV9yZWZfZmxleGlibGVfc2l6ZV9wICh2 KTsNCj4+Pj4gKwkJCXdoaWxlICh2ICE9IHB0X3ZhciAmJiBUUkVFX0NPREUgKHYpID09IENPTVBP TkVOVF9SRUYpDQo+Pj4+ICsJCQlpZiAoVFJFRV9DT0RFIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFO RCAodiwgMCkpKQ0KPj4+PiArCQkJICAgICAgIT0gVU5JT05fVFlQRQ0KPj4+PiArCQkJICAgICYm IFRSRUVfQ09ERSAoVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHYsIDApKSkNCj4+Pj4gKwkJCQkg IT0gUVVBTF9VTklPTl9UWVBFKQ0KPj4+PiArCQkJICBicmVhazsNCj4+Pj4gKwkJCWVsc2UNCj4+ Pj4gKwkJCSAgdiA9IFRSRUVfT1BFUkFORCAodiwgMCk7DQo+Pj4+ICsJCQlpZiAoVFJFRV9DT0RF ICh2KSA9PSBDT01QT05FTlRfUkVGDQo+Pj4+ICsJCQkgICAgJiYgVFJFRV9DT0RFIChUUkVFX1RZ UEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQ0KPj4+PiArCQkJCSA9PSBSRUNPUkRfVFlQRSkNCj4+ Pj4gKwkJCSAgew0KPj4+PiArCQkJICAgIC8qIGNvbXB1dGUgb2JqZWN0IHNpemUgb25seSBpZiB2 IGlzIG5vdCBhDQo+Pj4+ICsJCQkgICAgICAgZmxleGlibGUgYXJyYXkgbWVtYmVyLiAgKi8NCj4+ Pj4gKwkJCSAgICBpZiAoIWlzX2ZsZXhpYmxlX2FycmF5X21lbV9yZWYpDQo+Pj4+ICsJCQkgICAg ICB7DQo+Pj4+ICsJCQkJdiA9IE5VTExfVFJFRTsNCj4+Pj4gKwkJCQlicmVhazsNCj4+Pj4gKwkJ CSAgICAgIH0NCj4+Pj4gKwkJCSAgICB2ID0gVFJFRV9PUEVSQU5EICh2LCAwKTsNCj4+Pj4gKwkJ CSAgfQ0KPj4+PiArCQkJd2hpbGUgKHYgIT0gcHRfdmFyICYmIFRSRUVfQ09ERSAodikgPT0gQ09N UE9ORU5UX1JFRikNCj4+Pj4gKwkJCSAgaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChUUkVFX09Q RVJBTkQgKHYsIDApKSkNCj4+Pj4gKwkJCQkhPSBVTklPTl9UWVBFDQo+Pj4+ICsJCQkgICAgICAm JiBUUkVFX0NPREUgKFRSRUVfVFlQRSAoVFJFRV9PUEVSQU5EICh2LCAwKSkpDQo+Pj4+ICsJCQkJ ICAgIT0gUVVBTF9VTklPTl9UWVBFKQ0KPj4+PiArCQkJICAgIGJyZWFrOw0KPj4+PiArCQkJICBl bHNlDQo+Pj4+ICsJCQkgICAgdiA9IFRSRUVfT1BFUkFORCAodiwgMCk7DQo+Pj4+ICsJCQlpZiAo diAhPSBwdF92YXIpDQo+Pj4+ICsJCQkgIHYgPSBOVUxMX1RSRUU7DQo+Pj4+ICsJCQllbHNlDQo+ Pj4+ICsJCQkgIHYgPSBwdF92YXI7DQo+Pj4+ICsJCSAgICAgIH0NCj4+Pj4gCQkgICAgYnJlYWs7 DQo+Pj4+IAkJICBkZWZhdWx0Og0KPj4+PiAJCSAgICB2ID0gcHRfdmFyOw0KPj4+PiANCj4+PiAN Cj4+PiAtLSANCj4+PiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+Pj4gU1VT RSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBGcmFua2Vuc3RyYXNzZSAxNDYsIDkw NDYxIE51ZXJuYmVyZywNCj4+PiBHZXJtYW55OyBHRjogSXZvIFRvdGV2LCBBbmRyZXcgTXllcnMs IEFuZHJldyBNY0RvbmFsZCwgQm91ZGllbiBNb2VybWFuOw0KPj4+IEhSQiAzNjgwOSAoQUcgTnVl cm5iZXJnKQ0KPj4gDQo+PiANCj4gDQo+IC0tIA0KPiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVy QHN1c2UuZGU+DQo+IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSCwgRnJhbmtl bnN0cmFzc2UgMTQ2LCA5MDQ2MSBOdWVybmJlcmcsDQo+IEdlcm1hbnk7IEdGOiBJdm8gVG90ZXYs IEFuZHJldyBNeWVycywgQW5kcmV3IE1jRG9uYWxkLCBCb3VkaWVuIE1vZXJtYW47DQo+IEhSQiAz NjgwOSAoQUcgTnVlcm5iZXJnKQ0KDQo=