From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id B57E03858414 for ; Mon, 26 Jun 2023 13:59:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B57E03858414 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 (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35QBZVYG018138; Mon, 26 Jun 2023 13:59:21 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-2023-03-30; bh=ZUBCeB0eV+wERIzCzcqcK/k3vzU1kR9HzuamxLxaQbE=; b=Ky7jRAf/LBlPGo39za2E1XPDkdUR3vji6m/VDpCfUSGRYkle0FtGE42Ntz6Pjye1Nbwe PPnIXg8owUdEHGfudqrH2SfKHoqF2KWmFzoKdfXE/W4GKqa2x2TJprl2CTijecdIBy6Q giAo0tXtCiIehc/v1+1pZHaI+CADWOluQ7FTIhrg73Q0k9r8krlaTaOYrWvnLSqSb1MC 0hAG2uvLV3sRfzeusi51blBpIATYonsoe4C4wpjef48PEvlwHEsrhHbxdO7alARm0prJ 7pg++2DqVK4RC9Ki52GpOEqOFSfbT/LgJa84xiOJHP8gge9S2KiLmnwsaQh04BUYMkYT jw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rdrhcjse6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 26 Jun 2023 13:59:21 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35QDha88005097; Mon, 26 Jun 2023 13:59:20 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2042.outbound.protection.outlook.com [104.47.51.42]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3rdpx94hyx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 26 Jun 2023 13:59:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GRiT+VevD2GbPkie+S/77TOiWSIShNT2K52Q/PLuWD7oueeFcxvouz4/4q3QcF9LXT6EpfJG9IdGlG1vVKp3zI3U9bNepg0yLdaY9M8ciJm5NcIYaOIGz7hqVLVq2o7QKOq2ULIjyDdZBmAp3oqvm6JcUREA1a4RCePaGvbGZbjnEYU39RvB6F8jWwZyZw/Bn5A4fVLObfHZRRakn0dPYlL5EYWrrsuradkmoF57U7GaOvadScAABx1zJazgHRN+/GMbJZNbKdmvg68RfeHWd+DIO0GhQ9dZRLDdQeQbtjI3DB7nldz2UxPFPSKXkD8CQou5qZOhmvRZaqPyTe4n5w== 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=ZUBCeB0eV+wERIzCzcqcK/k3vzU1kR9HzuamxLxaQbE=; b=b+YDWowojrtbYd4yl16VsNqWYXtoMQ0aLpcO3jLsXKz6f1BinZeIrSqt2aJaOuBUMmC/fXyzRSlf8QqFXAbMs0B3B3uV35YjGTxvpgm9gTJ9Wo5Om+EHfZad3GWq1YAJtHHIJZpT/kuPwO7D2yqLSlLajoXHVQNPEwc3EJuoMIAHMHjuiYuyZK5yj7gLdxR19Jqs+0vEi6VnpKUBBs5BWOjtTVLLQUwBKUuQ5JSSZr8rUhJKTTpK0WUh3eO/JhQl65I93/fxYoUj7xdOxCXS4RVuqDMjK1yANfZ53j5yPwcPUNPsFherBgRNtaajXdUJHQyvnmhdFDPEgUnTo4hGjA== 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=ZUBCeB0eV+wERIzCzcqcK/k3vzU1kR9HzuamxLxaQbE=; b=zeSThgUeYxI1xHWbOig46/OynSACjetEqzVtkuAqNha8vqAVAHzqNhh6BaubD/PgRAwXU7O2jwVeyBd2/wzTG6puxR9jaRycWAFj4gnDuVrgcP5q6SHg1S8dHXw10kBiT43C4QYsm7bvjIq98nps4oHiujC1iEy9WP7ZuZfPovg= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by CH0PR10MB5034.namprd10.prod.outlook.com (2603:10b6:610:c9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Mon, 26 Jun 2023 13:58:59 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8d90:607a:f94c:5323]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8d90:607a:f94c:5323%3]) with mapi id 15.20.6521.026; Mon, 26 Jun 2023 13:58:59 +0000 From: Qing Zhao To: Alexandre Oliva , Richard Biener CC: Qing Zhao via Gcc-patches Subject: Re: [PATCH v3] Add leafy mode for zero-call-used-regs Thread-Topic: [PATCH v3] Add leafy mode for zero-call-used-regs Thread-Index: AQHZpipUOUeF22JzKUaL+NckA5Chz6+dIGGA Date: Mon, 26 Jun 2023 13:58:59 +0000 Message-ID: <5E5837EE-01C5-4971-96FE-9CB72F58B22D@oracle.com> References: <66ECAC37-E763-4469-B31A-7A2B031026F4@oracle.com> <0DA25420-AE6D-418B-B2F6-7A99BCC34345@oracle.com> <3CF608E7-C293-4627-8FE9-8B580D69D764@oracle.com> <80999785-4FFD-4C6E-B501-57E92F45053A@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.3) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|CH0PR10MB5034:EE_ x-ms-office365-filtering-correlation-id: 1e038057-4ecd-44a7-daf5-08db764d7dba x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qA0AIVEWYkqEU3g/jqyw3eo04cYZZHK5mx019P36Iie3b/V7lYcezVRJ8Y20DoHuex78zMLSUekmN/bJFBfnoVVw5Rgwq9Xdw3SWZxLU7jtJ7Kzhs6r5ThToJfqP++qT2+yqPmNhzAKyWGCy29LrJjyBFb92Ye32XJSOBYP0SHyo5vQQp00vCRiFpPyQtfAIkJ71BSdLV0eTbvEVtO6a2z052EKs01d6ytc1HxmERaeCaAUd23lN46nVYtWn+yzRaimXlYJO5zB955aLf63nGdG5jXUKagIlu04zlcletj8KV+LyLJX2NQFn3nx6qcZhnaUQCb18zckZT1cCn139x0VB80fu53bv4M3ywGLX6WqkGBFBuC8Go/wqGv96uGUra6dlN0kvua5ku6zlybGMYT85iXHd7Yg48gKUbhcMIUUFW6aqtIz/WfzqghgQTa3qDq2wsES3UvCnAYciqOwRKzUVeOxpsxCFnNm9e4Wa8il54uaMdSgauWLmo3PJcO2XgLt98hM4Fc/j3c8RLXT6iOdBwQFZLlBGhgmuOjMbOfxO+3at1VHZ0Z5FGGH/RsvEtqACIrM35TOqw/H80Vxeq7oTcolxya5BfzMYDd2YGkLN0KMv/3MnkPuHMYs1ebCGPq4h5IZUQGkyIXCGuT2qJQ== 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:(13230028)(346002)(136003)(376002)(366004)(39860400002)(396003)(451199021)(6512007)(44832011)(33656002)(66556008)(66476007)(66446008)(64756008)(76116006)(66946007)(4326008)(478600001)(38070700005)(316002)(8936002)(36756003)(91956017)(8676002)(84970400001)(5660300002)(2906002)(966005)(86362001)(110136005)(41300700001)(6486002)(53546011)(186003)(6506007)(26005)(71200400001)(122000001)(2616005)(38100700002)(83380400001)(2004002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NUNzTFppUndOY01sTWNUK2l2M2hWK2lmaVpseG1JRmIybkxmWVZ6TFRVRWx0?= =?utf-8?B?bUhOSnkvZHJ1dzhRWTB4aDc5N3ZNQ3Nab3VKWmhWSlZQdER1eTFaR3BHZWo2?= =?utf-8?B?bVNKWkpCTU0rU29PQVNvd1gxTnRhWC8zbmE2MzJjOS9pTHVYZ0tJZlplbkhV?= =?utf-8?B?cjY4NWR5ZHlmeGxZZFQvWnBiQzBmKzhKUVVLUENDbHovMC9KU2JadVhoYzE5?= =?utf-8?B?ckVxYVNMajB5N09kRFl2dVk0cEduejFlQ3BOeDRMUWZVNThZMFpBdWJiYjVj?= =?utf-8?B?M2RqMm5RT3oxSVE0UXd1Ti80ZGdHb1lFK1hKUjludFJ5QUdob2hFSDRiZktG?= =?utf-8?B?ejM4K0Y1dlBOU0hMWjZiQS9lSnBuRXZNdjZxTVN2d2ZWRVdRSmRYNTRaS09K?= =?utf-8?B?Z2JOTldGc2E2dm5VYVV2cERFb092VjBPY0pleEFaMXlWNS95Uk9vaHdRd2pZ?= =?utf-8?B?N251MExkOU5oRm9weTRhelJtLzVxc2FqUCtkWk1BM1NEK1lpN3AzZTlub1lz?= =?utf-8?B?OU52QlM2L0VVSUllMUxRbFM3UHV6bTNraXdWMWc4NWpSZlNMRHdYdE5CY1Jn?= =?utf-8?B?ZVVZYURXRWFQamlmVmQ5aFBrZkZ0djFIV3hMSCt0Q3g3ZFFKNzhLbzFvcVZM?= =?utf-8?B?MFlVVjMyT0I0VkhNVjBRUFFHOEExSFE0YXpWNXRtcmxUYVp0dHl0dWE0WGJY?= =?utf-8?B?TXYzaEh6WlBaTHNqOEFZMnRrUStYVWM5Y2VtYjJPdTYwR2VXcjZUemdEM1pi?= =?utf-8?B?azFKK2NobUR2ZzBYcFI3N3o1U3E4WUhBa3ByV0tRMGJ2OWZyS2Y3T0p6NXly?= =?utf-8?B?UGh2SjNmeGdqQTRoNGRkNTUxWnFtQTZ3S21YT1loT1NIcFdDUzhrTXZkQXZo?= =?utf-8?B?TmNSWnVUTmlJM2d6dUpCRTFwcGVxdTVvZUVxSnFVV3Q3Mi83NnJVTkpWdG5P?= =?utf-8?B?bWZ0LzV6MFZjajE5RnU4cXB0cHNVdEpNOWliRmthRFNlMFhpUlJESExDWkZY?= =?utf-8?B?ZUZWemR1OTMwNWd6VHBJZmdDVWlDdVVRS2t1ZzRRdEpWU0YrZENUQmkrSG5l?= =?utf-8?B?Nzg2NndIYXUvUllSMVlINmE0eGFIK3Q3MVdzZlhTTjg1MkpDdmhKRG44bmJX?= =?utf-8?B?U045RHgzYVVKQTVCaWl4ZDZ2V0tzVHdXMFlDNUpaZktrbmJhWXFSd2FKVGtt?= =?utf-8?B?V25HZUtMbmRyK01xdWp4MGdod296V09VZkxYTzV2cEw0SmV1dHJSNEY1Vk95?= =?utf-8?B?eDRvb2M5VFFUT0VhVTYzTWtyQzIvWDl6Q3Jmc1VkSjdSOGdTUktDdm1JYlgx?= =?utf-8?B?N0puTUtrZG9sL2dUc1dnVG1BMzBYNi9KZ3c4VGx1dzJUMlo1djFyekxoM20v?= =?utf-8?B?UERINHhrRlNiUllkQm5HYW9EQzRWOUZyZS9jcklKb2dKSjlhNUl6SEdaTURr?= =?utf-8?B?bmEwSmtUK2dZRTFkYjN6ZjdlblpOTHF6ZW5kanJYbVRkOU1PQzF1dXFjRVpa?= =?utf-8?B?ck41NDNXRmlLcjdRK2o4QTJ3bFVIeDN1aFVBaW1WVlU4VkZwbk5taVBvUjJ0?= =?utf-8?B?UW5VYmNGT3VUZ3FmTDRxa0dmQU5XTk43YXBJRlYwR2NLQ0RkUklPRUNiWmhs?= =?utf-8?B?cytKZEtGOTlTMXV0Mjd2SXp3ZStCMHhnQXA4YnpPZ0pvUUV1cXU0WEtsQ01I?= =?utf-8?B?S1RiVzVqQ3FWVG1pTncxNkdwM2c4S2MwclFlNGNhTnQrZWVtUDl3VG1DRUZl?= =?utf-8?B?d2IyRlp4RlpwYTdUT0k5WWR0bi93cGZkRW5nWm5HdkhwMThpYStSK0Y3ak9j?= =?utf-8?B?UllJcEowd3gxRVhQQ2ZkMlc4aEZEbWN5Zm1DaGh1RUJsMzgyWkNKcVEzK1Fx?= =?utf-8?B?UUlZTk1XeWQvUHRseDQ4Sm16NkpzMmNOK0g0V2RoQnpEVjR6Rjh4SGVPNTI3?= =?utf-8?B?aHpxVG9OdXpDM3YvUytHNlpaQXR6UGlFTjdIQ1RQNjlFTS9xekZRczh1L0xq?= =?utf-8?B?MU85U3FBUzAwaURDbENhQUcrdjVTNmFlWElGZ1pJQ3BQWEFST1FlRE1rSDVh?= =?utf-8?B?S0V6SklMME91VGJCUVFOaEFGWDBjUVJNTXVNQTRtZHlORWNRRS8wMG1BM2Jp?= =?utf-8?Q?y5sQK2F5svb8nSFAs9iFnQVTJ?= Content-Type: text/plain; charset="utf-8" Content-ID: <77E78DD4588A45448EAA7E71D9C59CF9@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: wkTbPTpVXjtD2C+MGiUFjz+4irPePijOIdNT0hwnJmhjysCQ0s+xZ+UEYGM82XNY2rDTCQc2RJHlbvFtezyuGwbUmzL5oRZov/mQGRS/ZHurhcAlCxu6ur2x444lzbN+WP6qVnHy1LSjMt0IIRvtecssJGi50iJFmnv2oeBi9vrCkAhpziDBVCEk3sIcul1j9Mt0+4gJ6L86OCgROVnCiyMQ11F/wdo/tMGENzlQRK3wqNhmTajq4yUt1SkngVcYL1v/r1jMiCCe3Vq0jsJoIY78Ea1o5M5AKPB9u0RiAA4Hs3W6Bwpx+M67YMVFjf8jszowT3uPcKwaL4RqVNNI0XjsCw8Is4L//oSE6MmTWMZdZTnIaljavbvRc+RaxFmZdPLnJz4koI3lqplADxZOzQmIvecES8j47qSMN3RoSvPslSV6rYpkLb2T26mliISr9xuW0+Stw7all/sclZ8wSqLzkKUhNCyN9E9iNva1QWESco6vn54uaZFRBNJYuvmF5ew64DTMA1TdSvB9D+qUl0p2mS42K6iPrHElvCBn48rVsCMhV8+6FG9c3dSP6h/1xxEssvlc58aUfkI0OJA3636Io8lphpr+yHWOteVD7fR8y37FqGQ4FaFW22vvrbUk1FjOk40zlQhhT/Zv5PkdUeboL78CVSozHXykm4TBsWzp+iQlaiU/TUi15Zcsn21GheX94AzVrlST7ejPk/91g8rhYBuoITzieFiJymj3P4IPOtivJiWe62CdJtUL+0asYg3drOf6upxQEU+bClr6BUVEb+M0GM5ZuRI8JIjSGInQgfrUH8erUZfpJrQa5wc2 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: 1e038057-4ecd-44a7-daf5-08db764d7dba X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jun 2023 13:58:59.6482 (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: OZHzeiLevtFeG1CwjAiBbBNqixkAjwsombb8Hb37QOoUv9YLotAd96JqTxq/UL01K8uSK9CO0IBGI9jANhWjFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5034 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-26_11,2023-06-26_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306260126 X-Proofpoint-GUID: CIF9xDf5C9oV8HqmhsepzZzd2As245ME X-Proofpoint-ORIG-GUID: CIF9xDf5C9oV8HqmhsepzZzd2As245ME 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,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: DQoNCj4gT24gSnVuIDIzLCAyMDIzLCBhdCA3OjI3IFBNLCBBbGV4YW5kcmUgT2xpdmEgPG9saXZh QGFkYWNvcmUuY29tPiB3cm90ZToNCj4gDQo+IE9uIEp1biAyMywgMjAyMywgUWluZyBaaGFvIHZp YSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+IHdyb3RlOg0KPiANCj4+IEl0 4oCZcyBiZXR0ZXIgdG8gYWRkIHRoaXMgZGVmaW5pdGlvbiBlYXJsaWVyIGluIHRoZSBsaXN0IG9m IHRoZSDigJx0aHJlZQ0KPj4gYmFzaWMgdmFsdWVz4oCdLCB0byBtYWtlIGl0IOKAnGZvdXIgYmFz aWMgdmFsdWVz4oCdLCBsaWtlIHRoZSBmb2xsb3dpbmc6DQo+IA0KPiBPaCwgbXksIHNvcnJ5IGZv ciBiZWluZyBzbyBkZW5zZSwgSSBoYWQgbWFuYWdlZCB0byBtaXNzIHRoYXQgYml0IGFsbA0KPiB0 aGlzIHRpbWUgc29tZWhvdyA6LSgNCj4gDQo+PiBUaGUgc2VudGVuY2UgIlRoaXMgdmFsdWUgaXMg bWFpbmx5IHRvIHByb3ZpZGUgdXNlcnMgYSBtb3JlIGVmZmljaWVudCBtb2RlIHRvIHplcm8gDQo+ PiAgICBjYWxsLXVzZWQgcmVnaXN0ZXJzIGluIGxlYWYgZnVuY3Rpb25zLuKAnSBqdXN0IGZvciB5 b3VyIHJlZmVyZW5jZSwNCj4+IHRoZSB3b3JkaW5nIGNhbiBjZXJ0YWlubHkgYmUgaW1wcm92ZWQu ICAtOikNCj4gDQo+IDotKSAgZ290IGl0LCB0aGFua3MuICBIb3cgYWJvdXQgdGhpcz8NCj4gDQo+ IA0KPiBBZGQgbGVhZnkgbW9kZSBmb3IgemVyby1jYWxsLXVzZWQtcmVncw0KPiANCj4gSW50cm9k dWNlICdsZWFmeScgdG8gYXV0by1zZWxlY3QgYmV0d2VlbiAndXNlZCcgYW5kICdhbGwnIGZvciBs ZWFmIGFuZA0KPiBub25sZWFmIGZ1bmN0aW9ucywgcmVzcGVjdGl2ZWx5Lg0KPiANCj4gUmVnc3Ry YXBwZWQgb24geDg2XzY0LWxpbnV4LWdudS4gIE9rIHRvIGluc3RhbGw/DQoNCkxHVE0gbm93Lg0K DQpIb3dldmVyLCBJIGFtIG5vdCBhIHJldmlld2VyLCAgeW91IG1pZ2h0IHN0aWxsIG5lZWQgYXBw cm92YWwgZnJvbSBhIG1pZGRsZS1lbmQgcmV2aWV3ZXIuDQoNCnRoYW5rcy4NCg0KUWluZw0KDQoN Cj4gDQo+IA0KPiBmb3IgIGdjYy9DaGFuZ2VMb2cNCj4gDQo+IAkqIGRvYy9leHRlbmQudGV4aSAo emVyby1jYWxsLXVzZWQtcmVncyk6IERvY3VtZW50IGxlYWZ5IGFuZA0KPiAJdmFyaWFudHMgdGhl cmVvZi4NCj4gCSogZmxhZy10eXBlcy5oICh6ZXJvX3JlZ3NfZmxhZ3MpOiBBZGQgTEVBRllfTU9E RSwgYXMgd2VsbCBhcw0KPiAJTEVBRlkgYW5kIHZhcmlhbnRzLg0KPiAJKiBmdW5jdGlvbi5jYyAo Z2VuX2NhbGxfdWVkX3JlZ3Nfc2VxKTogU2V0IG9ubHlfdXNlZCBmb3IgbGVhZg0KPiAJZnVuY3Rp b25zIGluIGxlYWZ5IG1vZGUuDQo+IAkqIG9wdHMuY2MgKHplcm9fY2FsbF91c2VkX3JlZ3Nfb3B0 cyk6IEFkZCBsZWFmeSBhbmQgdmFyaWFudHMuDQo+IA0KPiBmb3IgIGdjYy90ZXN0c3VpdGUvQ2hh bmdlTG9nDQo+IA0KPiAJKiBjLWMrKy1jb21tb24vemVyby1zY3JhdGNoLXJlZ3MtbGVhZnktMS5j OiBOZXcuDQo+IAkqIGMtYysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy1sZWFmeS0yLmM6IE5l dy4NCj4gCSogZ2NjLnRhcmdldC9pMzg2L3plcm8tc2NyYXRjaC1yZWdzLWxlYWZ5LTEuYzogTmV3 Lg0KPiAJKiBnY2MudGFyZ2V0L2kzODYvemVyby1zY3JhdGNoLXJlZ3MtbGVhZnktMi5jOiBOZXcu DQo+IC0tLQ0KPiBnY2MvZG9jL2V4dGVuZC50ZXhpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMzAgKysrKysrKysrKysrKysrKysrLS0NCj4gZ2NjL2ZsYWctdHlwZXMuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICsrKw0KPiBnY2MvZnVuY3Rpb24u Y2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKysNCj4gZ2NjL29w dHMuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsrKw0K PiAuLi4vYy1jKystY29tbW9uL3plcm8tc2NyYXRjaC1yZWdzLWxlYWZ5LTEuYyAgICAgICB8ICAg MTUgKysrKysrKysrKw0KPiAuLi4vYy1jKystY29tbW9uL3plcm8tc2NyYXRjaC1yZWdzLWxlYWZ5 LTIuYyAgICAgICB8ICAgMjEgKysrKysrKysrKysrKysNCj4gLi4uL2djYy50YXJnZXQvaTM4Ni96 ZXJvLXNjcmF0Y2gtcmVncy1sZWFmeS0xLmMgICAgfCAgIDEyICsrKysrKysrDQo+IC4uLi9nY2Mu dGFyZ2V0L2kzODYvemVyby1zY3JhdGNoLXJlZ3MtbGVhZnktMi5jICAgIHwgICAxNiArKysrKysr KysrKw0KPiA4IGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQ0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vemVyby1z Y3JhdGNoLXJlZ3MtbGVhZnktMS5jDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2MtYysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy1sZWFmeS0yLmMNCj4gY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3plcm8tc2NyYXRjaC1yZWdzLWxl YWZ5LTEuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvemVyby1zY3JhdGNoLXJlZ3MtbGVhZnktMi5jDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2Rv Yy9leHRlbmQudGV4aSBiL2djYy9kb2MvZXh0ZW5kLnRleGkNCj4gaW5kZXggODUyZjZiNjI5YmVh OC4uNzM5YzQwMzY4ZjU1NiAxMDA2NDQNCj4gLS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQ0KPiAr KysgYi9nY2MvZG9jL2V4dGVuZC50ZXhpDQo+IEBAIC00MzQ5LDcgKzQzNDksNyBAQCB0aHJvdWdo IHJlZ2lzdGVycy4NCj4gSW4gb3JkZXIgdG8gc2F0aXNmeSB1c2VycyB3aXRoIGRpZmZlcmVudCBz ZWN1cml0eSBuZWVkcyBhbmQgY29udHJvbCB0aGUNCj4gcnVuLXRpbWUgb3ZlcmhlYWQgYXQgdGhl IHNhbWUgdGltZSwgdGhlIEB2YXJ7Y2hvaWNlfSBwYXJhbWV0ZXIgcHJvdmlkZXMgYQ0KPiBmbGV4 aWJsZSB3YXkgdG8gY2hvb3NlIHRoZSBzdWJzZXQgb2YgdGhlIGNhbGwtdXNlZCByZWdpc3RlcnMg dG8gYmUgemVyb2VkLg0KPiAtVGhlIHRocmVlIGJhc2ljIHZhbHVlcyBvZiBAdmFye2Nob2ljZX0g YXJlOg0KPiArVGhlIGZvdXIgYmFzaWMgdmFsdWVzIG9mIEB2YXJ7Y2hvaWNlfSBhcmU6DQo+IA0K PiBAaXRlbWl6ZSBAYnVsbGV0DQo+IEBpdGVtDQo+IEBAIC00MzYyLDEwICs0MzYyLDE2IEBAIHRo ZSBmdW5jdGlvbi4NCj4gDQo+IEBpdGVtDQo+IEBzYW1we2FsbH0gemVyb3MgYWxsIGNhbGwtdXNl ZCByZWdpc3RlcnMuDQo+ICsNCj4gK0BpdGVtDQo+ICtAc2FtcHtsZWFmeX0gYmVoYXZlcyBsaWtl IEBzYW1we3VzZWR9IGluIGEgbGVhZiBmdW5jdGlvbiwgYW5kIGxpa2UNCj4gK0BzYW1we2FsbH0g aW4gYSBub25sZWFmIGZ1bmN0aW9uLiAgVGhpcyBtYWtlcyBmb3IgbGVhbmVyIHplcm9pbmcgaW4g bGVhZg0KPiArZnVuY3Rpb25zLCB3aGVyZSB0aGUgc2V0IG9mIHVzZWQgcmVnaXN0ZXJzIGlzIGtu b3duLCBhbmQgdGhhdCBtYXkgYmUNCj4gK2Vub3VnaCBmb3Igc29tZSBwdXJwb3NlcyBvZiByZWdp c3RlciB6ZXJvaW5nLg0KPiBAZW5kIGl0ZW1pemUNCj4gDQo+IEluIGFkZGl0aW9uIHRvIHRoZXNl IHRocmVlIGJhc2ljIGNob2ljZXMsIGl0IGlzIHBvc3NpYmxlIHRvIG1vZGlmeQ0KPiAtQHNhbXB7 dXNlZH0gb3IgQHNhbXB7YWxsfSBhcyBmb2xsb3dzOg0KPiArQHNhbXB7dXNlZH0sIEBzYW1we2Fs bH0sIGFuZCBAc2FtcHtsZWFmeX0gYXMgZm9sbG93czoNCj4gDQo+IEBpdGVtaXplIEBidWxsZXQN Cj4gQGl0ZW0NCj4gQEAgLTQ0MTIsMTAgKzQ0MTgsMjggQEAgemVyb3MgYWxsIGNhbGwtdXNlZCBy ZWdpc3RlcnMgdGhhdCBwYXNzIGFyZ3VtZW50cy4NCj4gQGl0ZW0gYWxsLWdwci1hcmcNCj4gemVy b3MgYWxsIGNhbGwtdXNlZCBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzIHRoYXQgcGFzcw0KPiBh cmd1bWVudHMuDQo+ICsNCj4gK0BpdGVtIGxlYWZ5DQo+ICtTYW1lIGFzIEBzYW1we3VzZWR9IGlu IGEgbGVhZiBmdW5jdGlvbiwgYW5kIHNhbWUgYXMgQHNhbXB7YWxsfSBpbiBhDQo+ICtub25sZWFm IGZ1bmN0aW9uLg0KPiArDQo+ICtAaXRlbSBsZWFmeS1ncHINCj4gK1NhbWUgYXMgQHNhbXB7dXNl ZC1ncHJ9IGluIGEgbGVhZiBmdW5jdGlvbiwgYW5kIHNhbWUgYXMgQHNhbXB7YWxsLWdwcn0NCj4g K2luIGEgbm9ubGVhZiBmdW5jdGlvbi4NCj4gKw0KPiArQGl0ZW0gbGVhZnktYXJnDQo+ICtTYW1l IGFzIEBzYW1we3VzZWQtYXJnfSBpbiBhIGxlYWYgZnVuY3Rpb24sIGFuZCBzYW1lIGFzIEBzYW1w e2FsbC1hcmd9DQo+ICtpbiBhIG5vbmxlYWYgZnVuY3Rpb24uDQo+ICsNCj4gK0BpdGVtIGxlYWZ5 LWdwci1hcmcNCj4gK1NhbWUgYXMgQHNhbXB7dXNlZC1ncHItYXJnfSBpbiBhIGxlYWYgZnVuY3Rp b24sIGFuZCBzYW1lIGFzDQo+ICtAc2FtcHthbGwtZ3ByLWFyZ30gaW4gYSBub25sZWFmIGZ1bmN0 aW9uLg0KPiArDQo+IEBlbmQgdGFibGUNCj4gDQo+IE9mIHRoaXMgbGlzdCwgQHNhbXB7dXNlZC1h cmd9LCBAc2FtcHt1c2VkLWdwci1hcmd9LCBAc2FtcHthbGwtYXJnfSwNCj4gLWFuZCBAc2FtcHth bGwtZ3ByLWFyZ30gYXJlIG1haW5seSB1c2VkIGZvciBST1AgbWl0aWdhdGlvbi4NCj4gK0BzYW1w e2FsbC1ncHItYXJnfSwgQHNhbXB7bGVhZnktYXJnfSwgYW5kIEBzYW1we2xlYWZ5LWdwci1hcmd9 IGFyZQ0KPiArbWFpbmx5IHVzZWQgZm9yIFJPUCBtaXRpZ2F0aW9uLg0KPiANCj4gVGhlIGRlZmF1 bHQgZm9yIHRoZSBhdHRyaWJ1dGUgaXMgY29udHJvbGxlZCBieSBAb3B0aW9uey1memVyby1jYWxs LXVzZWQtcmVnc30uDQo+IEBlbmQgdGFibGUNCj4gZGlmZiAtLWdpdCBhL2djYy9mbGFnLXR5cGVz LmggYi9nY2MvZmxhZy10eXBlcy5oDQo+IGluZGV4IDJlNjUwYmYxYzQ4N2MuLjBkMmRhYjFiOTlk ZDQgMTAwNjQ0DQo+IC0tLSBhL2djYy9mbGFnLXR5cGVzLmgNCj4gKysrIGIvZ2NjL2ZsYWctdHlw ZXMuaA0KPiBAQCAtMzQ4LDYgKzM0OCw3IEBAIG5hbWVzcGFjZSB6ZXJvX3JlZ3NfZmxhZ3Mgew0K PiAgIGNvbnN0IHVuc2lnbmVkIGludCBPTkxZX0dQUiA9IDFVTCA8PCAyOw0KPiAgIGNvbnN0IHVu c2lnbmVkIGludCBPTkxZX0FSRyA9IDFVTCA8PCAzOw0KPiAgIGNvbnN0IHVuc2lnbmVkIGludCBF TkFCTEVEID0gMVVMIDw8IDQ7DQo+ICsgIGNvbnN0IHVuc2lnbmVkIGludCBMRUFGWV9NT0RFID0g MVVMIDw8IDU7DQo+ICAgY29uc3QgdW5zaWduZWQgaW50IFVTRURfR1BSX0FSRyA9IEVOQUJMRUQg fCBPTkxZX1VTRUQgfCBPTkxZX0dQUiB8IE9OTFlfQVJHOw0KPiAgIGNvbnN0IHVuc2lnbmVkIGlu dCBVU0VEX0dQUiA9IEVOQUJMRUQgfCBPTkxZX1VTRUQgfCBPTkxZX0dQUjsNCj4gICBjb25zdCB1 bnNpZ25lZCBpbnQgVVNFRF9BUkcgPSBFTkFCTEVEIHwgT05MWV9VU0VEIHwgT05MWV9BUkc7DQo+ IEBAIC0zNTYsNiArMzU3LDEwIEBAIG5hbWVzcGFjZSB6ZXJvX3JlZ3NfZmxhZ3Mgew0KPiAgIGNv bnN0IHVuc2lnbmVkIGludCBBTExfR1BSID0gRU5BQkxFRCB8IE9OTFlfR1BSOw0KPiAgIGNvbnN0 IHVuc2lnbmVkIGludCBBTExfQVJHID0gRU5BQkxFRCB8IE9OTFlfQVJHOw0KPiAgIGNvbnN0IHVu c2lnbmVkIGludCBBTEwgPSBFTkFCTEVEOw0KPiArICBjb25zdCB1bnNpZ25lZCBpbnQgTEVBRllf R1BSX0FSRyA9IEVOQUJMRUQgfCBMRUFGWV9NT0RFIHwgT05MWV9HUFIgfCBPTkxZX0FSRzsNCj4g KyAgY29uc3QgdW5zaWduZWQgaW50IExFQUZZX0dQUiA9IEVOQUJMRUQgfCBMRUFGWV9NT0RFIHwg T05MWV9HUFI7DQo+ICsgIGNvbnN0IHVuc2lnbmVkIGludCBMRUFGWV9BUkcgPSBFTkFCTEVEIHwg TEVBRllfTU9ERSB8IE9OTFlfQVJHOw0KPiArICBjb25zdCB1bnNpZ25lZCBpbnQgTEVBRlkgPSBF TkFCTEVEIHwgTEVBRllfTU9ERTsNCj4gfQ0KPiANCj4gLyogU2V0dGluZ3Mgb2YgZmxhZ19pbmNy ZW1lbnRhbF9saW5rLiAgKi8NCj4gZGlmZiAtLWdpdCBhL2djYy9mdW5jdGlvbi5jYyBiL2djYy9m dW5jdGlvbi5jYw0KPiBpbmRleCA2YTc5YTgyOTBmNjdlLi5kZDJjMTEzNmUwNzI1IDEwMDY0NA0K PiAtLS0gYS9nY2MvZnVuY3Rpb24uY2MNCj4gKysrIGIvZ2NjL2Z1bmN0aW9uLmNjDQo+IEBAIC01 ODY2LDYgKzU4NjYsOSBAQCBnZW5fY2FsbF91c2VkX3JlZ3Nfc2VxIChydHhfaW5zbiAqcmV0LCB1 bnNpZ25lZCBpbnQgemVyb19yZWdzX3R5cGUpDQo+ICAgb25seV91c2VkID0gemVyb19yZWdzX3R5 cGUgJiBPTkxZX1VTRUQ7DQo+ICAgb25seV9hcmcgPSB6ZXJvX3JlZ3NfdHlwZSAmIE9OTFlfQVJH Ow0KPiANCj4gKyAgaWYgKCh6ZXJvX3JlZ3NfdHlwZSAmIExFQUZZX01PREUpICYmIGxlYWZfZnVu Y3Rpb25fcCAoKSkNCj4gKyAgICBvbmx5X3VzZWQgPSB0cnVlOw0KPiArDQo+ICAgLyogRm9yIGVh Y2ggb2YgdGhlIGhhcmQgcmVnaXN0ZXJzLCB3ZSBzaG91bGQgemVybyBpdCBpZjoNCj4gCSAgICAx LiBpdCBpcyBhIGNhbGwtdXNlZCByZWdpc3RlcjsNCj4gCWFuZCAyLiBpdCBpcyBub3QgYSBmaXhl ZCByZWdpc3RlcjsNCj4gZGlmZiAtLWdpdCBhL2djYy9vcHRzLmNjIGIvZ2NjL29wdHMuY2MNCj4g aW5kZXggMzA4N2JkYWMyYzZjOS4uYWM4MWQ0ZTQyOTQ0ZCAxMDA2NDQNCj4gLS0tIGEvZ2NjL29w dHMuY2MNCj4gKysrIGIvZ2NjL29wdHMuY2MNCj4gQEAgLTIxMTUsNiArMjExNSwxMCBAQCBjb25z dCBzdHJ1Y3QgemVyb19jYWxsX3VzZWRfcmVnc19vcHRzX3MgemVyb19jYWxsX3VzZWRfcmVnc19v cHRzW10gPQ0KPiAgIFpFUk9fQ0FMTF9VU0VEX1JFR1NfT1BUIChhbGwtZ3ByLCB6ZXJvX3JlZ3Nf ZmxhZ3M6OkFMTF9HUFIpLA0KPiAgIFpFUk9fQ0FMTF9VU0VEX1JFR1NfT1BUIChhbGwtYXJnLCB6 ZXJvX3JlZ3NfZmxhZ3M6OkFMTF9BUkcpLA0KPiAgIFpFUk9fQ0FMTF9VU0VEX1JFR1NfT1BUIChh bGwsIHplcm9fcmVnc19mbGFnczo6QUxMKSwNCj4gKyAgWkVST19DQUxMX1VTRURfUkVHU19PUFQg KGxlYWZ5LWdwci1hcmcsIHplcm9fcmVnc19mbGFnczo6TEVBRllfR1BSX0FSRyksDQo+ICsgIFpF Uk9fQ0FMTF9VU0VEX1JFR1NfT1BUIChsZWFmeS1ncHIsIHplcm9fcmVnc19mbGFnczo6TEVBRllf R1BSKSwNCj4gKyAgWkVST19DQUxMX1VTRURfUkVHU19PUFQgKGxlYWZ5LWFyZywgemVyb19yZWdz X2ZsYWdzOjpMRUFGWV9BUkcpLA0KPiArICBaRVJPX0NBTExfVVNFRF9SRUdTX09QVCAobGVhZnks IHplcm9fcmVnc19mbGFnczo6TEVBRlkpLA0KPiAjdW5kZWYgWkVST19DQUxMX1VTRURfUkVHU19P UFQNCj4gICB7TlVMTCwgMFV9DQo+IH07DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2Mt YysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy1sZWFmeS0xLmMgYi9nY2MvdGVzdHN1aXRlL2Mt YysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy1sZWFmeS0xLmMNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uYzFhMGMzMWJhMWMzNw0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3plcm8tc2NyYXRjaC1yZWdz LWxlYWZ5LTEuYw0KPiBAQCAtMCwwICsxLDE1IEBADQo+ICsvKiB7IGRnLWRvIHJ1biB9ICovDQo+ ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnplcm8tY2FsbC11c2VkLXJlZ3M9bGVhZnkiIH0gKi8N Cj4gKw0KPiArdm9sYXRpbGUgaW50IHJlc3VsdCA9IDA7DQo+ICtpbnQgDQo+ICtfX2F0dHJpYnV0 ZV9fKChub2lwYSkpDQo+ICtmb28gKGludCB4KQ0KPiArew0KPiArICByZXR1cm4geDsNCj4gK30N Cj4gK2ludCBtYWluKCkNCj4gK3sNCj4gKyAgcmVzdWx0ID0gZm9vICgyKTsNCj4gKyAgcmV0dXJu IDA7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi96ZXJv LXNjcmF0Y2gtcmVncy1sZWFmeS0yLmMgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi96ZXJv LXNjcmF0Y2gtcmVncy1sZWFmeS0yLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMDAwMC4uZDQ1MDYyMGMxZmNmZQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2dj Yy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3plcm8tc2NyYXRjaC1yZWdzLWxlYWZ5LTIuYw0KPiBA QCAtMCwwICsxLDIxIEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1v cHRpb25zICItTzIiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgPGFzc2VydC5oPg0KPiAraW50IHJl c3VsdCA9IDA7DQo+ICsNCj4gK2ludCANCj4gK19fYXR0cmlidXRlX18oKG5vaXBhKSkNCj4gK19f YXR0cmlidXRlX18gKCh6ZXJvX2NhbGxfdXNlZF9yZWdzKCJsZWFmeSIpKSkNCj4gK2ZvbzEgKGlu dCB4KQ0KPiArew0KPiArICByZXR1cm4gKHggKyAxKTsNCj4gK30NCj4gKw0KPiAraW50IA0KPiAr X19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KPiArX19hdHRyaWJ1dGVfXyAoKHplcm9fY2FsbF91c2Vk X3JlZ3MoImxlYWZ5IikpKQ0KPiArZm9vMiAoaW50IHgpDQo+ICt7DQo+ICsgIHJldHVybiBmb28x ICh4ICsgMik7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni96ZXJvLXNjcmF0Y2gtcmVncy1sZWFmeS0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni96ZXJvLXNjcmF0Y2gtcmVncy1sZWFmeS0xLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uMjI3NzcxMGM3NzFiNw0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3plcm8tc2NyYXRjaC1yZWdz LWxlYWZ5LTEuYw0KPiBAQCAtMCwwICsxLDEyIEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KPiArLyogeyBkZy1vcHRpb25zICItTzIgLWZ6ZXJvLWNhbGwtdXNlZC1yZWdzPWxlYWZ5IC1m bm8tc3RhY2stcHJvdGVjdG9yIC1mbm8tUElDIiB9ICovDQo+ICsNCj4gK3ZvaWQNCj4gK2ZvbyAo dm9pZCkNCj4gK3sNCj4gK30NCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCAidnplcm9hbGwiIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCAiJXhtbSIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 ICJ4b3JsXFsgXHRcXSslIiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3QgIm1vdmxcWyBcdFxdKyUiIH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvemVyby1zY3JhdGNoLXJlZ3MtbGVhZnktMi5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvemVyby1zY3JhdGNoLXJlZ3MtbGVhZnktMi5jDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMDAuLjI0Yjg1YzNkYmI3NjYNCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni96ZXJv LXNjcmF0Y2gtcmVncy1sZWFmeS0yLmMNCj4gQEAgLTAsMCArMSwxNiBAQA0KPiArLyogeyBkZy1k byBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1memVyby1jYWxsLXVzZWQt cmVncz1sZWFmeS1ncHIgLWZuby1zdGFjay1wcm90ZWN0b3IgLWZuby1QSUMiIH0gKi8NCj4gKw0K PiArZXh0ZXJuIGludCBiYXIgKGludCk7DQo+ICsNCj4gK3ZvaWQNCj4gK2ZvbyAodm9pZCkNCj4g K3sNCj4gKyAgaW50IHggPSBiYXIgKDApOw0KPiArICBpZiAoeCkNCj4gKyAgICBiYXIgKDEpOw0K PiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInhvcmxcWyBcdFxd KyVlYXgsICVlYXgiIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4 b3JsXFsgXHRcXSslZWR4LCAlZWR4IiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlciAieG9ybFxbIFx0XF0rJWVjeCwgJWVjeCIgfSB9ICovDQo+IA0KPiANCj4gLS0gDQo+ IEFsZXhhbmRyZSBPbGl2YSwgaGFwcHkgaGFja2VyICAgICAgICAgICAgICAgIGh0dHBzOi8vRlNG TEEub3JnL2Jsb2dzL2x4by8NCj4gICBGcmVlIFNvZnR3YXJlIEFjdGl2aXN0ICAgICAgICAgICAg ICAgICAgICAgICBHTlUgVG9vbGNoYWluIEVuZ2luZWVyDQo+IERpc2luZm9ybWF0aW9uIGZsb3Vy aXNoZXMgYmVjYXVzZSBtYW55IHBlb3BsZSBjYXJlIGRlZXBseSBhYm91dCBpbmp1c3RpY2UNCj4g YnV0IHZlcnkgZmV3IGNoZWNrIHRoZSBmYWN0cy4gIEFzayBtZSBhYm91dCA8aHR0cHM6Ly9zdGFs bG1hbnN1cHBvcnQub3JnPg0KDQo=