From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9D60BC433B4 for ; Mon, 10 May 2021 13:52:33 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9F5076101B for ; Mon, 10 May 2021 13:52:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9F5076101B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=dell.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References:Message-ID:Date: Subject:CC:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=LkXZyfjfMb5wdhDoRYDkvJ9Gal8VO6pCAcScby6m7TM=; b=EwnkI1g0CIdkkV4DV8H0TCJft s7RvdmQIaavIqjhWr5sQmEgLj7QV36kFprGmXlB+ORuheBwj8/5UICxB7C3MxQjI/cHdjzQ+ZeOdN oK25H/IgkcClQDtDlJSY/OLsXghLkGcNhvGs0A7a1PjKSmXm/XDDBLRgnsXnqzjF8MsQIatxKKakr JQbVIier9sWeTIFm8uAj07lpDGCx2nheGUuxI4wGts5u2VQEgAtLJAHct9FnWwntzanENz8LqWuVo tEy5UeSvUvmS6E8xRMMOVDGGaZksbdvejOLpFu5sHfKD42q3AFJiFT8vLXjXy24uYV/ixbimEi/wS zJf3YYC+Q==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lg6Kb-00EWLf-SV; Mon, 10 May 2021 13:52:23 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lg6IK-00EVYv-M8 for linux-nvme@desiato.infradead.org; Mon, 10 May 2021 13:50:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:References:Message-ID:Date :Subject:CC:To:From:Sender:Reply-To:Content-ID:Content-Description; bh=LXgwbbwUDwMPgP9AdJnUNFUdpnVip0KEWWakEefJH5A=; b=2yUl9vZZTlSbqXD/U9ruVQLRO7 VtSlJVuo/m88yA4wPl5XIFdaolMQnAQtxvT8RPNlUMJm5bKgVRobDcsfoLknsTsz2TdxLUwV7UEl3 n7iBd4Ok10nTIhEVGJ7Z5pJ2aJel+gHxWW8OZ23/RjVWmanYImLf9wJWu04pttS9/PUEZC0veV790 HmXPUH4GBM/tTRAl06V/qx24VyXpSA71R0stAWlIuSZkAE85Rs1SwG6LgNmoDpRO+zSwjATL4Od8A hdG9EK7oPmKb/EDSqWVBEkZWiBeem59cYfDRUkAwY8bLg55IiWlpD03XxoP643pY64Uaha07WPVam U39okD0w==; Received: from mx0b-00154904.pphosted.com ([148.163.137.20]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lg6IG-008lja-HS for linux-nvme@lists.infradead.org; Mon, 10 May 2021 13:49:58 +0000 Received: from pps.filterd (m0170397.ppops.net [127.0.0.1]) by mx0b-00154904.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 14ADhRoe014287; Mon, 10 May 2021 09:49:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=smtpout1; bh=LXgwbbwUDwMPgP9AdJnUNFUdpnVip0KEWWakEefJH5A=; b=hAfUoTK3+1OSfN7QvJhZB1MVwzvtyADYsVPvOsjNmYaMnIshNYJNSVjGdiN75OM3eX5y 6ogAJMvlSndrLT+81dM0RUEPi+b2dxYr0GKFSVq8837PQdwAq56U3jh1pdU5rIrqPMQu r7B9wgiuOURUyIBcbX28JUAwf/8/tkS4SXfdtk9i9ORZn3ykn/UReyST3Y3NRDAXEXcs XfY+3UEw7p9jyhedSDoGs+n3e6umFMGC8FgiIHP6+X29kkF+lIUjfRtUZeYBMULyBc3w /7otUpQJr5PiFOnlmTKnM8k1lzOahi862L8d1tICRL9SJY+V/yIoTnFon3/bsHy4zm0C hA== Received: from mx0b-00154901.pphosted.com (mx0a-00154901.pphosted.com [67.231.149.39]) by mx0b-00154904.pphosted.com with ESMTP id 38f423rhe9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 10 May 2021 09:49:44 -0400 Received: from pps.filterd (m0090350.ppops.net [127.0.0.1]) by mx0b-00154901.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 14ADnhUd019324; Mon, 10 May 2021 09:49:43 -0400 Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2177.outbound.protection.outlook.com [104.47.59.177]) by mx0b-00154901.pphosted.com with ESMTP id 38e7v808hp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 10 May 2021 09:49:43 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AVtezo9ZUft+j8+G31ZWbszlhud1eP+b8rD1Ud6U4Rb6ACE3JW/JBAqS3cqsqqDi67Cnyd5aIVzba9jAnP7BJjF7eSDbmfDrIv/fhp7rMrnzvLcYB5Np5nEavxqdZB7KToQtBGMCl8q485N/G4MbZNdvJA29AgGu9uk6ZKNMSX9w1K73tjcWTkeUUsv79GdZQG+oIW4QD4mCX/mJFSsCZcEHypZGXoTPLH8/tL/bR9gXR14rLsQJuiY2mgvgh9oX4DVJPH5i7jbdJwfWjrPKxB5CSSMTHSzTFHopyh2TBMN9nVNJYdFYg/4dTBTque/Di6yazFxrW0z4RoZ0MEwhDw== 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-SenderADCheck; bh=LXgwbbwUDwMPgP9AdJnUNFUdpnVip0KEWWakEefJH5A=; b=C0QW/MeA6BhbTspz5GJWgZc1QiIyVfHAZ7hRGIfTKTkVZxpUTdwTsUdeLYIlVubcbYZ93Mn2+tUseJJgeWxZTs3MVsWNnkaNFTZdpk0U9Giy43PdTc6YLQlMJK7PEyZnZ9KPny6dPG1ZMV81nkmIZR7m48qBxAnHQYHm4IcRZnW8nrGIaUUBVAJd7rAG8tZgKnm2tHbjPguJZJVT3uGvRpTfFeAvCxPkdZYqpLyR7OlNbuxMcmSjHAjLCz0Y0enXUg4sT5e5rCjTELYGPXvEE3f/kDKAHIFEo1PsYjL+PCxbYCDxoPhfYPKO4+FX6TU9PBjm2oeS7W6/f4miBlr5wA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=dell.com; dmarc=pass action=none header.from=dell.com; dkim=pass header.d=dell.com; arc=none Received: from SJ0PR19MB4544.namprd19.prod.outlook.com (2603:10b6:a03:281::7) by SJ0PR19MB4480.namprd19.prod.outlook.com (2603:10b6:a03:27a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.25; Mon, 10 May 2021 13:49:32 +0000 Received: from SJ0PR19MB4544.namprd19.prod.outlook.com ([fe80::6d24:c151:2746:4ba6]) by SJ0PR19MB4544.namprd19.prod.outlook.com ([fe80::6d24:c151:2746:4ba6%2]) with mapi id 15.20.4108.031; Mon, 10 May 2021 13:49:32 +0000 From: "Belanger, Martin" To: Sagi Grimberg , Hannes Reinecke , Martin Belanger , "linux-nvme@lists.infradead.org" CC: "kbusch@kernel.org" , "axboe@fb.com" , "hch@lst.de" Subject: RE: [PATCH 1/1] Add 'Transport Interface' (triface) option. This can be used to specify the IP interface to use for the connection. The driver uses that to set SO_BINDTODEVICE on the socket before connecting. Thread-Topic: [PATCH 1/1] Add 'Transport Interface' (triface) option. This can be used to specify the IP interface to use for the connection. The driver uses that to set SO_BINDTODEVICE on the socket before connecting. Thread-Index: AQHXMi3Bh57r8OJ1AEy+hCu2vgTdtarT2uOAgADXPwCAAE3cYIABF0YAgAAPVACAAIYM0IABylGAgARURLA= Date: Mon, 10 May 2021 13:49:31 +0000 Message-ID: References: <20210415192848.962891-1-nitram_67@hotmail.com> <27a0071d-7c7b-ee5b-41a2-d5eb8de12928@suse.de> <07fa3404-ed37-052a-c2d7-0e21c119f5c5@suse.de> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_17cb76b2-10b8-4fe1-93d4-2202842406cd_Enabled=True; MSIP_Label_17cb76b2-10b8-4fe1-93d4-2202842406cd_SiteId=945c199a-83a2-4e80-9f8c-5a91be5752dd; MSIP_Label_17cb76b2-10b8-4fe1-93d4-2202842406cd_Owner=Martin_Belanger@Dell.com; MSIP_Label_17cb76b2-10b8-4fe1-93d4-2202842406cd_SetDate=2021-05-10T12:28:12.3703999Z; MSIP_Label_17cb76b2-10b8-4fe1-93d4-2202842406cd_Name=External Public; MSIP_Label_17cb76b2-10b8-4fe1-93d4-2202842406cd_Application=Microsoft Azure Information Protection; MSIP_Label_17cb76b2-10b8-4fe1-93d4-2202842406cd_ActionId=4febb053-1673-4e54-b3dc-32bc00ff6a9d; MSIP_Label_17cb76b2-10b8-4fe1-93d4-2202842406cd_Extended_MSFT_Method=Manual authentication-results: grimberg.me; dkim=none (message not signed) header.d=none;grimberg.me; dmarc=none action=none header.from=Dell.com; x-originating-ip: [174.19.123.177] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b3801b19-5ca0-47b0-6dea-08d913ba706c x-ms-traffictypediagnostic: SJ0PR19MB4480: x-microsoft-antispam-prvs: x-exotenant: 2khUwGVqB6N9v58KS13ncyUmMJd8q4 x-ms-oob-tlc-oobclassifiers: OLM:2331; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 777IDRdDu18UxHstyGQbuts+DiE8bnPm1UmK8Lr9ox8gP0DpHS1X3bVorvpcZYojtdEyvAdmMXtb0SAWxarAmIDIpIPpvIOJyXkNcaPe7prsT2Nf+9++C1Tu0BOe8sEjUZnrEEEk4yQbJ4o5DhvZb2trH9eCdS6wLhlWnXRzGS6CdGEUVhRl4VTxTlz+uOOXvfvuumhIgXa432ENn47OqySNADaqQCAS6KcU05YeOm7VWAlO0vn7/wwxlXYTCuZZoafZA878vzSVed0feipfJkRy9Y5ccNjHC6RhxijinruozVqbc7CdxlnbaVjb3yFLRg/gGwb/r0X+Mc4RtPSyLqN8jPYY/vnt+JGHmZI6wD1hp3Ha/fbSSkI0AhiLx+g+jYBLVIX4REEz+tleBNEvqjXGIUOFveoLF8nxb9plrk0/WOOQoDvUGS7vJZ7E95cmSsyrqCZa3ka3oey/IF+4rl4nYrBvEXexvA2sHvtiOZHUL+WFnfRZ5iSXCQxcWzn40qmzheJptLNbTsS9Y8KFXU10SNOxRS91seLJhzsXgcqq1AgjiDq9ggiZ2XOq4o/ktarYd6Ud4re8U3QRxr7QyjE01IP+PloDOpppQqXaDKE= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR19MB4544.namprd19.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(55016002)(9686003)(4326008)(30864003)(64756008)(66476007)(66446008)(66556008)(71200400001)(76116006)(66946007)(5660300002)(2906002)(26005)(186003)(52536014)(498600001)(66574015)(83380400001)(8676002)(122000001)(38100700002)(33656002)(110136005)(8936002)(86362001)(53546011)(54906003)(6506007)(7696005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?VCtaSGZ1Q25ab0p6WTlheHg0OEVzM3A3UkwxMlBQckxBQXNTcTJia2VQdXUx?= =?utf-8?B?dVI4V3JNMGJ4Tm1wK0RSY3ViN0J5RlROU21ya2RxcGE4Q2ZPemZqY1B6bWRZ?= =?utf-8?B?RU5uMXF6VHVob09WQ3NDTG5QWHJMNERqMFVWMzRtcC9OcUVWUWlPaXFGSXBP?= =?utf-8?B?MWhEWjd0M2dIcUQ0N0FFc1R4WVJ0YUU0cjZJRHg1SzZ5YU9EdFlEWUlqOHNR?= =?utf-8?B?WURYdEttYXBrQVZhc3o4VS9zWHRiSWlmR2k2b0NxZHkrR2dmZ2h4aEJtL1hZ?= =?utf-8?B?blFIWDJLcVZ0T1lrQWtJQ3RtZU8wZWVmRk9ZQVFZSUkyWElSa29SOUIwWS8x?= =?utf-8?B?MzFTcmRaNjhzRlI0d2x4dE52eDlTQzF3dE1BdS8ya3pWY0cyeGFWRlVJcDlR?= =?utf-8?B?R0VhK0l0Z1NaU28vMmdGbmx6VUp3Q1hoMmx4NGxIVEJTcWFuUjdpSTF4Ym9X?= =?utf-8?B?ay91dXpwZUFpZHh0dkdSYUdkTXExd0FSb2FTcFhRakdMaldnRHY2R0piQ3R1?= =?utf-8?B?TGxKd2VQMnFxWCs0dUhKd01tSW9KWlpMNVVyMTROZlpaOWFGNnVpTm43dTNG?= =?utf-8?B?MC9NU2NVWXVZN08yTVpxbkcyR2U0RW80aHlid2ptNjl0U2ZHNXM4ZEw2ZHA2?= =?utf-8?B?ZWl3NUt2R0s1VFk2NDF3dlc2Nm5IVzlTNXNVRlRSUnhwTEViTkd5aERrai9n?= =?utf-8?B?OFdoeTZKR0FqSzJMSkgzVHhkR1R2bko0TmNVZkJTcGxvejlxbm9Eem8yR0c1?= =?utf-8?B?WENVSFhJZ08rcGcrWWVidk1YUHUrczZtdkNnZWtPRkZTYVdxUlR4TUoxM0NF?= =?utf-8?B?QU40MG1qdFpUbFExR1BNaHhjeHJudDJKNmx2MEM3cXVubktRdGNPOEgxQlJJ?= =?utf-8?B?U2VmNUx6amUzUEw3Qks2b3Z0cTdhanYyZjFXaVA0RjhTUDNTclNaK3dJMFhC?= =?utf-8?B?cTlBVVNPSEZaa1BSZEIwdjZvMnQxc0VyMU5rOSs3WE1YSXZuV1JxeXZZNFFm?= =?utf-8?B?YzRtZXdTNDY4dm96Sm9SNGI4ZTlTQjN4L2ZMQ3Y5RmJqc0xML0N4bVhFc3Na?= =?utf-8?B?NGM0QXA0MXVIVzd3RHM2RGhuWnM0aHV6TWRrYk02TzFNZFlrMHlFSm9ZSVZE?= =?utf-8?B?bEtYRHVGak1YTUVoWHJtYU1mbkVNY1hrbTRsRWtaQnlPMzcxbUU0OUZoUXkr?= =?utf-8?B?TmEzbmk3d1Q1NXF0WElEOHk1QjJ5RGRxN2k5ZFljdTYwS295TVEyOXFyMmxt?= =?utf-8?B?akk4Uk1LUE9nbGRYOCtYVENkczNwUWRMYkRJR2tVQzR6bGNrUWhGZFdpN3o5?= =?utf-8?B?RmdhVWx4RUMzUnJ6Tmh1UW03YTQ0eWdIVmcyY0RkaWk1WWZ4aVhhdTcxQWRz?= =?utf-8?B?aWJyOE5VUmxRTXRTZXBFekt0czVKRlduRUM3ajdacmpGWFR6eGFnNEFHeTRV?= =?utf-8?B?TGZqdVYvOG96ckxkWHJVOEF1d21VZkRwTkEvUC81UmlmT2luMGZHKzdOcHRk?= =?utf-8?B?ZFY2d3Z3Y1JEaXpLVUJMZ3pWUnFIMTliMkdORXFGQXMvdmNaaGpuUEFLWFZG?= =?utf-8?B?dE1CekhQallYeXZ2am8rUnppVVhLTkFBVk16c2w2ekhxNXIvcmFYcTNGc2Fh?= =?utf-8?B?QVdCNVJTNHZWUWd0S1dxMTZ5blhDSnZENTRVM2c3R2JCTmFlVjdEVDJqWnQz?= =?utf-8?B?WjRPcmgzZnhDcExiTUJBU25vdlNJSDl2S2xQcVEvUFhxS1FKUmlyOS9rN0xG?= =?utf-8?Q?p6E1bhz4ntYQlSwJ1PSlTFGeHjGaj/g/NChe3dx?= x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: Dell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR19MB4544.namprd19.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3801b19-5ca0-47b0-6dea-08d913ba706c X-MS-Exchange-CrossTenant-originalarrivaltime: 10 May 2021 13:49:31.9918 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 945c199a-83a2-4e80-9f8c-5a91be5752dd X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: LAJ04eipnvbPlESHuXlewVy6AgZ6fyrrqzobzLNvfujPdrBro34XAkPiiu6ls4tVyJhN4Au+Z5a6mer+bvLM/071LxYvcawwSKeB1Emp0Eg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR19MB4480 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-05-10_07:2021-05-10, 2021-05-10 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 adultscore=0 bulkscore=0 phishscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 clxscore=1015 spamscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2105100099 X-Proofpoint-ORIG-GUID: wq9K4-lPZ3k4FgYHibW7wzKd_IY2exkp X-Proofpoint-GUID: wq9K4-lPZ3k4FgYHibW7wzKd_IY2exkp X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 bulkscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2105100098 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210510_064956_830558_48C29571 X-CRM114-Status: GOOD ( 30.40 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org PiBPbiA1LzYvMjEgODo0NiBBTSwgQmVsYW5nZXIsIE1hcnRpbiB3cm90ZToNCj4gPj4gT24gNS82 LzIxIDg6MDUgQU0sIEhhbm5lcyBSZWluZWNrZSB3cm90ZToNCj4gPj4+IE9uIDUvNS8yMSA0OjMx IFBNLCBCZWxhbmdlciwgTWFydGluIHdyb3RlOg0KPiA+PiBbIC4uIF0NCj4gPj4+PiAxOiBsbzog PExPT1BCQUNLLFVQLExPV0VSX1VQPiBtdHUgNjU1MzYgcWRpc2Mgbm9xdWV1ZSBzdGF0ZQ0KPiA+ PiBVTktOT1dODQo+ID4+Pj4gZ3JvdXAgZGVmYXVsdCBxbGVuIDEwMDANCj4gPj4+PiAgwqDCoMKg wqAgbGluay9sb29wYmFjayAwMDowMDowMDowMDowMDowMCBicmQgMDA6MDA6MDA6MDA6MDA6MDAN Cj4gPj4+PiAgwqDCoMKgwqAgaW5ldCAxMDAuMC4wLjEwMC8yNCBzY29wZSBnbG9iYWwgbG8NCj4g Pj4+PiAgwqDCoMKgwqDCoMKgwqAgdmFsaWRfbGZ0IGZvcmV2ZXIgcHJlZmVycmVkX2xmdCBmb3Jl dmVyDQo+ID4+Pj4gMjogZW5wMHMzOiA8QlJPQURDQVNULE1VTFRJQ0FTVCxVUCxMT1dFUl9VUD4g bXR1IDE1MDAgcWRpc2MNCj4gPj4gZnFfY29kZWwNCj4gPj4+PiBzdGF0ZSBVUCBncm91cCBkZWZh dWx0IHFsZW4gMTAwMA0KPiA+Pj4+ICDCoMKgwqDCoCBsaW5rL2V0aGVyIDA4OjAwOjI3OjIxOjY1 OmVjIGJyZCBmZjpmZjpmZjpmZjpmZjpmZg0KPiA+Pj4+ICDCoMKgwqDCoCBpbmV0IDEwMC4wLjAu MTAwLzI0IHNjb3BlIGdsb2JhbCBlbnAwczMNCj4gPj4+PiAgwqDCoMKgwqDCoMKgwqAgdmFsaWRf bGZ0IGZvcmV2ZXIgcHJlZmVycmVkX2xmdCBmb3JldmVyDQo+ID4+Pj4gMzogZW5wMHM4OiA8QlJP QURDQVNULE1VTFRJQ0FTVCxVUCxMT1dFUl9VUD4gbXR1IDE1MDAgcWRpc2MNCj4gPj4gZnFfY29k ZWwNCj4gPj4+PiBzdGF0ZSBVUCBncm91cCBkZWZhdWx0IHFsZW4gMTAwMA0KPiA+Pj4+ICDCoMKg wqDCoCBsaW5rL2V0aGVyIDA4OjAwOjI3OjRmOjk1OjVjIGJyZCBmZjpmZjpmZjpmZjpmZjpmZg0K PiA+Pj4+ICDCoMKgwqDCoCBpbmV0IDEwMC4wLjAuMTAwLzI0IHNjb3BlIGdsb2JhbCBlbnAwczgN Cj4gPj4+PiAgwqDCoMKgwqDCoMKgwqAgdmFsaWRfbGZ0IGZvcmV2ZXIgcHJlZmVycmVkX2xmdCBm b3JldmVyDQo+ID4+Pj4NCj4gPj4+PiBUaGUgYWJvdmUgaXMgYSBWTSB0aGF0IEkgY29uZmlndXJl ZCB3aXRoIHRoZSBzYW1lIElQIGFkZHJlc3MNCj4gPj4+PiAoMTAwLjAuMC4xMDApIG9uIGFsbCBp bnRlcmZhY2VzLiBEb2luZyBhIHJldmVyc2UgbG9va3VwIHRvIGlkZW50aWZ5DQo+ID4+Pj4gdGhl IHVuaXF1ZSBpbnRlcmZhY2UgYXNzb2NpYXRlZCB3aXRoIDEwMC4wLjAuMTAwIHdvdWxkIHNpbXBs eSBub3QNCj4gPj4+PiB3b3JrIGhlcmUuIEFuZCB0aGlzIGlzIHdoeSB0aGUgb3B0aW9uIGhvc3Rf aWZhY2UgaXMgcmVxdWlyZWQuIEkNCj4gPj4+PiB1bmRlcnN0YW5kIHRoYXQgdGhlIGFib3ZlIGNv bmZpZyBkb2VzIG5vdCByZXByZXNlbnQgYSBzdGFuZGFyZCBob3N0DQo+ID4+Pj4gc3lzdGVtLCBi dXQgSSdtIHVzaW5nIHRoaXMgdG8gcHJvdmUgYSBwb2ludDogIndlIGNhbiBuZXZlciBrbm93IGhv dw0KPiA+Pj4+IGEgdXNlciB3aWxsIGNvbmZpZ3VyZSB0aGVpciBzeXN0ZW0gYW5kIHRoZSBhYm92 ZSBjb25maWd1cmF0aW9uIGlzDQo+ID4+Pj4gcGVyZmVjdGx5IGZpbmUgYnkgTGludXgiLg0KPiA+ Pj4+DQo+ID4+Pg0KPiA+Pj4gLi4uIGFuZCBtZXNzaW5nIHVwIGFueSBzd2l0Y2ggTUFDIGFkZHJl c3MgY2FjaGluZyB3aGVuIGRvaW5nIHNvLiBJDQo+ID4+PiBndWVzcyB0aGUgbmV0d29yayBhZG1p biB3aWxsIGNvbWUgZG93biBoYXJkIG9uIHlvdSBpZiB5b3UgdHJ5IHRoYXQNCj4gPj4+IG9uIGEg cHJvZHVjdGlvbiBzeXN0ZW0uDQo+ID4+PiBBbmQgSSBzaW5jZXJlbHkgcXVlc3Rpb24gd2hldGhl ciB0aGlzIGlzIGEgdmFsaWQgdXNlLWNhc2U7IEknbQ0KPiA+Pj4gYWxyZWFkeSBnZXR0aW5nIGdy aWVmIGZyb20gb3VyIG5ldHdvcmsgYWRtaW5zIGlmIEkgZGFyZSB0byBwdXQgdHdvDQo+ID4+PiBu ZXR3b3JrIGludGVyZmFjZXMgZnJvbSB0aGUgc2FtZSBtYWNoaW5lIGluIHRoZSBzYW1lIG5ldHdv cmsuDQo+ID4+Pg0KPiA+Pj4+IFRoZSBjdXJyZW50IFRDUCBpbXBsZW1lbnRhdGlvbiBmb3IgaG9z dF90cmFkZHIgdXNlcw0KPiA+Pj4+IGJpbmQoKS1iZWZvcmUtY29ubmVjdCgpLiBUaGlzIGlzIGEg Y29tbW9uIGNvbnN0cnVjdCB0byBzZXQgdGhlDQo+ID4+Pj4gc291cmNlIElQIGFkZHJlc3Mgb24g dGhlIHNvY2tldCBiZWZvcmUgY29ubmVjdGluZy4gVGhpcyBoYXMgbm8NCj4gPj4+PiBlZmZlY3Qg b24gaG93IExpbnV4IHdpbGwgc2VsZWN0IHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBjb25uZWN0aW9u Lg0KPiA+Pj4+IFRoYXQncyBiZWNhdXNlIExpbnV4IHVzZXMgdGhlIFdlYWsgRW5kIFN5c3RlbSBt b2RlbCBhcyBkZXNjcmliZWQgaW4NCj4gUkZDMTEyMiBbMl0uDQo+ID4+Pj4gU2V0dGluZyB0aGUg c291cmNlIGFkZHJlc3Mgb24gYSBjb25uZWN0aW9uIGlzIGEgY29tbW9uIHJlcXVpcmVtZW50DQo+ ID4+Pj4gdGhhdCBsaW51eC1udm1lIG5lZWRzIHRvIHN1cHBvcnQuIEluIGZhY3QsIHNwZWNpZnlp bmcgdGhlIFNvdXJjZSBJUA0KPiA+Pj4+IGFkZHJlc3MgaXMgYSBtYW5kYXRvcnkgRmVkR292IHJl cXVpcmVtZW50IChlLmcuIGNvbm5lY3Rpb24gdG8gYQ0KPiA+Pj4+IFJBRElVUy9UQUNBQ1MrIHNl cnZlcikuIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbi4NCj4gPj4+Pg0KPiA+ Pj4+ICQgaXAgYWRkciBsaXN0IGRldiBlbnAwczgNCj4gPj4+PiAzOiBlbnAwczg6IDxCUk9BRENB U1QsTVVMVElDQVNULFVQLExPV0VSX1VQPiBtdHUgMTUwMCBxZGlzYw0KPiA+PiBmcV9jb2RlbA0K PiA+Pj4+IHN0YXRlIFVQIGdyb3VwIGRlZmF1bHQgcWxlbiAxMDAwDQo+ID4+Pj4gIMKgwqDCoMKg IGxpbmsvZXRoZXIgMDg6MDA6Mjc6NGY6OTU6NWMgYnJkIGZmOmZmOmZmOmZmOmZmOmZmDQo+ID4+ Pj4gIMKgwqDCoMKgIGluZXQgMTkyLjE2OC41Ni4xMDEvMjQgYnJkIDE5Mi4xNjguNTYuMjU1IHNj b3BlIGdsb2JhbA0KPiA+Pj4+IGR5bmFtaWMgbm9wcmVmaXhyb3V0ZSBlbnAwczgNCj4gPj4+PiAg wqDCoMKgwqDCoMKgwqAgdmFsaWRfbGZ0IDQyNnNlYyBwcmVmZXJyZWRfbGZ0IDQyNnNlYw0KPiA+ Pj4+ICDCoMKgwqDCoCBpbmV0IDE5Mi4xNjguNTYuMTAyLzI0IHNjb3BlIGdsb2JhbCBzZWNvbmRh cnkgZW5wMHM4DQo+ID4+Pj4gIMKgwqDCoMKgwqDCoMKgIHZhbGlkX2xmdCBmb3JldmVyIHByZWZl cnJlZF9sZnQgZm9yZXZlcg0KPiA+Pj4+ICDCoMKgwqDCoCBpbmV0IDE5Mi4xNjguNTYuMTAzLzI0 IHNjb3BlIGdsb2JhbCBzZWNvbmRhcnkgZW5wMHM4DQo+ID4+Pj4gIMKgwqDCoMKgwqDCoMKgIHZh bGlkX2xmdCBmb3JldmVyIHByZWZlcnJlZF9sZnQgZm9yZXZlcg0KPiA+Pj4+ICDCoMKgwqDCoCBp bmV0IDE5Mi4xNjguNTYuMTA0LzI0IHNjb3BlIGdsb2JhbCBzZWNvbmRhcnkgZW5wMHM4DQo+ID4+ Pj4gIMKgwqDCoMKgwqDCoMKgIHZhbGlkX2xmdCBmb3JldmVyIHByZWZlcnJlZF9sZnQgZm9yZXZl cg0KPiA+Pj4+DQo+ID4+Pj4gSGVyZSB3ZSBjYW4gc2VlIHRoYXQgc2V2ZXJhbCBhZGRyZXNzZXMg YXJlIGFzc29jaWF0ZWQgd2l0aA0KPiA+Pj4+IGludGVyZmFjZSBlbnAwczguIEJ5IGRlZmF1bHQs IExpbnV4IHdpbGwgc2VsZWN0IHRoZSBkZWZhdWx0IElQDQo+ID4+Pj4gYWRkcmVzcywgMTkyLjE2 OC41Ni4xMDEsIGFzIHRoZSBzb3VyY2UgYWRkcmVzcyB3aGVuIGNvbm5lY3Rpbmcgb3Zlcg0KPiA+ Pj4+IGludGVyZmFjZSBlbnAwczguIFNvbWUgdXNlcnMsIGhvd2V2ZXIsIHdhbnQgdGhlIGFiaWxp dHkgdG8gc3BlY2lmeQ0KPiA+Pj4+IGEgZGlmZmVyZW50IGFkZHJlc3MgKGUuZy4sDQo+ID4+Pj4g MTkyLjE2OC41Ni4xMDMpIHRvIGJlIHVzZWQgYXMgdGhlIHNvdXJjZSBhZGRyZXNzLg0KPiA+Pj4+ IFRoZSBvcHRpb24gaG9zdF90cmFkZHIgY2FuIGJlIHVzZWQgYXMtaXMgdG8gcGVyZm9ybSB0aGlz IGZ1bmN0aW9uDQo+ID4+Pj4gKEkgdGVzdGVkIGl0KS4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IE5v IGRpc2FncmVlbWVudCBoZXJlLg0KPiA+Pj4NCj4gPj4+PiBJbiBjb25jbHVzaW9uLCBJIGJlbGll dmUgdGhhdCBmb3IgVENQIHdlIG5lZWQgMiBvcHRpb25zLiBPbmUgdGhhdA0KPiA+Pj4+IGNhbiBi ZSB1c2VkIHRvIHNwZWNpZnkgYW4gaW50ZXJmYWNlLiBBbmQgb25lIHRoYXQgY2FuIGJlIHVzZWQg dG8NCj4gPj4+PiBzZXQgdGhlIHNvdXJjZSBhZGRyZXNzLiBBbmQgdXNlcnMgc2hvdWxkIGJlIGFs bG93ZWQgdG8gdXNlIG9uZSBvcg0KPiA+Pj4+IHRoZSBvdGhlciwgb3IgYm90aCwgb3Igbm9uZS4N Cj4gPj4+PiBPZiBjb3Vyc2UsIHRoZSBkb2N1bWVudGF0aW9uIGZvciBob3N0X3RyYWRkciB3aWxs IG5lZWQgc29tZQ0KPiA+Pj4+IGNsYXJpZmljYXRpb24uIEl0IHNob3VsZCBzdGF0ZSB0aGF0IHdo ZW4gdXNlZCBmb3IgVENQIGNvbm5lY3Rpb24sDQo+ID4+Pj4gdGhpcyBvcHRpb24gb25seSBzZXRz IHRoZSBzb3VyY2UgYWRkcmVzcy4gQW5kIHRoZSBkb2N1bWVudGF0aW9uIGZvcg0KPiA+Pj4+IGhv c3RfaWZhY2Ugc2hvdWxkIHNheSB0aGF0IHRoaXMgb3B0aW9uIG9ubHkgYXBwbGllcyB0byBUQ1AN Cj4gPj4+PiBjb25uZWN0aW9ucy4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IEknbSB3aXRoIEphbWVz IFNtYXJ0IGhlcmUuIEkgZG8gZmFpbCB0byBzZWUgdGhlIG5lZWQgZm9yICdob3N0X2lmYWNlJw0K PiA+Pj4gX3dpdGhvdXRfICdob3N0X3RyYWRkcic7IGVzcGVjaWFsbHkgZm9yIElQdjYgd2hlcmUg c2V2ZXJhbCBhZGRyZXNzZXMNCj4gPj4+IGFyZSBzdGFuZGFyZCBqdXN0IHNwZWNpZnlpbmcgJ2hv c3RfaWZhY2UnIHNpbXBseSBpcyBub3QgZW5vdWdoLCBhbmQNCj4gPj4+IG9uZSBoYXMgdG8gc3Bl Y2lmeSAnaG9zdF90cmFkZHInIGFkZGl0aW9uYWxseS4NCj4gPj4+DQo+ID4+PiBTbyAnaG9zdF9p ZmFjZScgc2hvdWxkIGJlIGNvbnRpbmdlbnQgb24gJ2hvc3RfdHJhZGRyJywgbWVhbmluZyB3ZQ0K PiA+Pj4gY2FuIGp1c3QgZXhwYW5kIHRoZSBzeW50YXggb2YgJ2hvc3RfdHJhZGRyJy4NCj4gPj4+ IE9uZSBlYXN5IHBvc3NpYmlsaXR5IHdvdWxkIGJlIHRvIGFkZCAnLG5vYmluZCcgdG8gdGhlIGhv c3RfdHJhZGRyDQo+ID4+PiBzeW50YXggd2hpY2ggd291bGQgaW5kaWNhdGUgdGhhdCB3ZSBzaG91 bGQgX25vdF8gYmluZCB0byB0aGUNCj4gPj4+IHVuZGVybHlpbmcgaW50ZXJmYWNlOyBJIGRvIHRo aW5rIHRoYXQgYmluZGluZyB0byB0aGUgcmVzcGVjdGl2ZQ0KPiA+Pj4gaW50ZXJmYWNlIHNob3Vs ZCBiZSB0aGUgZGVmYXVsdC4NCj4gPj4+DQo+ID4+IEEtaGEuIEp1c3Qgc3Bva2UgdG8gb3VyIG5l dHdvcmsgZm9sa3MsIGFuZCB0aGV5IGNsYXJpZmllZCB0aGUgdXNhZ2UNCj4gPj4gb2YgYmluZGlu ZyB0byBhbiBJUCBhZGRyZXNzIHZzIGJpbmRpbmcgdG8gYSBuZXR3b3JrIGludGVyZmFjZS4NCj4g Pj4gQXBwYXJlbnRseSwgYmluZGluZyB0byBhIHNvdXJjZSBJUCBhZGRyZXNzIGRvZXMganVzdCB0 aGF0LCBzZXR0aW5nDQo+ID4+IHRoZSBzb3VyY2UgSVAgYWRkcmVzcyBvZiB0aGUgb3V0Z29pbmcg cGFja2V0LiBUaGF0IHBhY2tldCB3aWxsDQo+ID4+IF9zdGlsbF8gYmUgc3ViamVjdGVkIHRvIHRo ZSBub3JtYWwgcm91dGluZyB0YWJsZSwgYXMgdGhlIHJvdXRpbmcNCj4gPj4gdGFibGUgaXMganVz dCBpbmZsdWVuY2VkIGJ5IHRoZSBfZGVzdGluYXRpb25fIElQIGFkZHJlc3MuDQo+ID4+IFNvIGlm IHdlIHdhbnQgdG8gaGF2ZSBpdCByb3V0ZWQgdmlhIGEgc3BlY2lmaWMgaW50ZXJmYWNlIChhbmQg dGhlcmVieQ0KPiA+PiBpbmZsdWVuY2luZyB0aGUgcm91dGluZyB0YWJsZSkgd2UgbmVlZCB0byBi aW5kIGl0IHRvIHRoYXQgaW50ZXJmYWNlLg0KPiA+Pg0KPiA+PiBUaGUgb25seSB2YWxpZCBzY2Vu YXJpbyBvdXIgbmV0d29yayBmb2xrcyBjb3VsZCBjb21lIHVwIHdpdGggd2hlcmUgd2UNCj4gPj4g ZG8gX25vdF8gd2FudCB0byBiaW5kIHRvIGFuIGludGVyZmFjZSBpcyBmb3IgYXN5bW1ldHJpYyBm bG93cywgaWUgaW4NCj4gPj4gY2FzZXMgd2hlcmUgdGhlIG91dGdvaW5nIGZsb3cgaXMgcm91dGVk IHRvIG9uZSBpbnRlcmZhY2UgYW5kIHRoZQ0KPiA+PiBpbmNvbWluZyBmbG93IGlzIGFycml2aW5n IG9uIGFub3RoZXIgaW50ZXJmYWNlLiBCdXQgZXZlbiB0aGV5DQo+ID4+IGFkbWl0dGVkIHRoYXQg aXQncyBub3QgYSBjb21tb24gc2NlbmFyaW8sIGFuZCBwcm9iYWJseSB3aWxsIGJlIGtpbGxlZA0K PiA+PiBieSBhbnRpLXNwb29maW5nIHNvZnR3YXJlIHJ1bm5pbmcgb24gdGhlIGNvcmUgc3dpdGNo ZXMgLi4uDQo+ID4+DQo+ID4+IEJ1dCBpZiB3ZSB3YW50IHRvIHN1cHBvcnQgX3RoYXRfIHRoZW4g Y2xlYXJseSBiaW5kaW5nIHRvIGEgc3BlY2lmaWMNCj4gPj4gaW50ZXJmYWNlIGRvZXNuJ3Qgd29y ay4NCj4gPj4NCj4gPj4gU28gSSB3b3VsZCB2b3RlIGZvciBtYWtpbmcgYmluZGluZyB0byB0aGUg bmV0d29yayBpbnRlcmZhY2UgaG9sZGluZw0KPiA+PiB0aGUgSVAgYWRkcmVzcyB0aGUgZGVmYXVs dCwgYW5kIGFkZCBhbiBvcHRpb24gJyxub2JpbmQnIHRvIGhvc3RfdHJhZGRyIHRvDQo+IHNraXAg aXQuDQo+ID4+DQo+ID4+IENoZWVycywNCj4gPj4NCj4gPj4gSGFubmVzDQo+ID4+IC0tDQo+ID4+ IERyLiBIYW5uZXMgUmVpbmVja2UJCSAgICAgICAgS2VybmVsIFN0b3JhZ2UgQXJjaGl0ZWN0DQo+ ID4+IGhhcmVAc3VzZS5kZQkJCSAgICAgICAgICAgICAgICs0OSA5MTEgNzQwNTMgNjg4DQo+ID4+ IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSCwgOTA0MDkgTsO8cm5iZXJnDQo+ ID4+IEdGOiBGLiBJbWVuZMO2cmZmZXIsIEhSQiAzNjgwOSAoQUcgTsO8cm5iZXJnKQ0KPiA+DQo+ ID4gSGkgSGFubmVzLA0KPiA+DQo+ID4gSWYgdGhlIG9ubHkgY29uY2VybiBoZXJlIGlzIHRoZSBh ZGRpdGlvbiBvZiB5ZXQgYW5vdGhlciBvcHRpb24gKC0taG9zdC1pZmFjZSksDQo+IHRoZW4gbWF5 IEkgc3VnZ2VzdCBhIHNpbXBsZXIgYXBwcm9hY2guIFdoYXQgSSdtIHByb3Bvc2luZyBhZGhlcmVz IHRvDQo+IFJGQzQwMDcgWzFdLCB3aGljaCBkZWZpbmVzIGEgd2F5IHRvIHNwZWNpZnkgYW4gaW50 ZXJmYWNlIGJ5IHVzaW5nIHRoZSAnJScNCj4gZGVsaW1pdGVyIGJldHdlZW4gdGhlIERlc3RpbmF0 aW9uIElQIGFkZHJlc3MgYW5kIHRoZSBJbnRlcmZhY2UuIEluIGZhY3QsDQo+ICJwaW5nIiB1c2Vz IHRoaXMgYXBwcm9hY2ggWzJdLiBXaXRoIHBpbmcsIG9uZSBjYW4gZm9yY2UgdGhlIGNvbm5lY3Rp b24gdG8gZ28NCj4gYSBzcGVjaWZpYyBpbnRlcmZhY2UgbGlrZSB0aGlzOg0KPiA+DQo+ID4gcGlu ZyA8ZGVzdC1pcC1hZGRyPiU8aW50ZXJmYWNlPg0KPiANCj4gUGluZyBvbmx5IHN1cHBvcnRzIHRo aXMgc3ludGF4IGZvciBJUHY2IG5vPw0KPiANCj4gPiBFeHRlbmRpbmcgdGhpcyBhcHByb2FjaCB0 byBudm1lLWNsaSB3ZSBhcnJpdmUgdG8gc29tZXRoaW5nIGxpa2UgdGhpczoNCj4gPg0KPiA+IG52 bWUgZGlzY292ZXIgLS10cmFkZHIgMTAwLjY0LjI5LjIlZW5wMHM4IC0taG9zdC10cmFkZHIgMTky LjE2OC41Ni4xMDINCj4gLi4uLg0KPiANCj4gV2UgYWxyZWFkeSBzdXBwb3J0IHRoaXMgZm9yIElQ djYsIHdlIGNhbiBkbyB0aGF0IGFsc28gZm9yIElQdjQsIGJ1dCB0aGlzIHN5bnRheA0KPiBtYXkg bm90IGJlIHRyaXZpYWxseSBleHBlY3RlZCBmb3IgaXB2ND8NCg0KSSB0cmllZCB0aGlzIGZvciBJ UHY2IGFuZCBpdCBkb2Vzbid0IHdvcmsuIEhlcmUncyB3aGF0IEkgZ2V0Og0KJCBzdWRvIG52bWUg ZGlzY292ZXIgLWcgLUcgLXQgdGNwIC1zIDgwMDkgLWEgZmU4MDo6ODAwOjI3ZmY6ZmUwMDowDQpG YWlsZWQgdG8gd3JpdGUgdG8gL2Rldi9udm1lLWZhYnJpY3M6IEludmFsaWQgYXJndW1lbnQNCiQg c3VkbyBudm1lIGRpc2NvdmVyIC1nIC1HIC10IHRjcCAtcyA4MDA5IC1hIGZlODA6OjgwMDoyN2Zm OmZlMDA6MCVlbnAwczgNCkZhaWxlZCB0byB3cml0ZSB0byAvZGV2L252bWUtZmFicmljczogSW52 YWxpZCBhcmd1bWVudA0KJCBzdWRvIG52bWUgZGlzY292ZXIgLWcgLUcgLXQgdGNwIC1zIDgwMDkg LWEgW2ZlODA6OjgwMDoyN2ZmOmZlMDA6MF0NCmZhaWxlZCB0byByZXNvbHZlIGhvc3QgW2ZlODA6 OjgwMDoyN2ZmOmZlMDA6MF0gaW5mbw0KJCBzdWRvIG52bWUgZGlzY292ZXIgLWcgLUcgLXQgdGNw IC1zIDgwMDkgLWEgW2ZlODA6OjgwMDoyN2ZmOmZlMDA6MCVlbnAwczhdDQpmYWlsZWQgdG8gcmVz b2x2ZSBob3N0IFtmZTgwOjo4MDA6MjdmZjpmZTAwOjAlZW5wMHM4XSBpbmZvDQoNCj4gDQo+ID4g VGhpcyB0ZWxscyBudm1lIHRvIGNvbm5lY3QgdG8gMTAwLjY0LjI5LjIgb24gaW50ZXJmYWNlIGVu cDBzOC4gV2UgbWFrZSBubw0KPiBjaGFuZ2UgdG8gdGhlIC0taG9zdC10cmFkZHIgb3B0aW9uLiBJ dCBjb250aW51ZXMgdG8gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZQ0KPiBTb3VyY2UgSVAgYWRkcmVz cyBvbmx5IChmb3IgdGhlIHJhcmUgY2FzZXMgd2hlcmUgdXNlcnMgd2FudCB0byBzcGVjaWZ5IGEN Cj4gU291cmNlIEFkZHJlc3Mgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCkuIFdpdGggdGhpcywgdGhl IGludGVyZmFjZSBpcyBzcGVjaWZpZWQNCj4gYnkgbmFtZSBhbmQgbm90IGJ5IGl0cyBhc3NvY2lh dGVkIGFkZHJlc3MuIFRoaXMgaXMgbm90IG9ubHkgbW9yZSBpbnR1aXRpdmUsDQo+IGJ1dCwgYXMg SSBzdGF0ZWQgYmVmb3JlLCBlbGltaW5hdGVzIHRoZSBwcm9ibGVtIGNhdXNlZCBieSBtYXBwaW5n IHRoZSBzYW1lDQo+IElQIGFkZHJlc3MgdG8gbXVsdGlwbGUgaW50ZXJmYWNlcyAobm90IHRvIG1l bnRpb24gdGhhdCBkb2luZyBhIHJldmVyc2UgbG9va3VwDQo+IG9uIGFuIElQIGFkZHJlc3MgdG8g ZmluZCB0aGUgaW50ZXJmYWNlIGlzIGV4dHJhIHdvcmsgdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8g ZG8NCj4gaW4ga2VybmVsIHNwYWNlKS4NCj4gDQo+IE1heWJlIHdlIGRvIHNvbWV0aGluZyBsaWtl IHBpbmcgLUkgZm9yIGhvc3RfdHJhZGRyLCBmcm9tIHBpbmcgbWFuIHBhZ2VzOg0KPiANCj4gLUkg aW50ZXJmYWNlDQo+ICAgICAgICAgICAgIGludGVyZmFjZSBpcyBlaXRoZXIgYW4gYWRkcmVzcywg YW4gaW50ZXJmYWNlIG5hbWUgb3IgYSBWUkYgbmFtZS4gSWYNCj4gaW50ZXJmYWNlIGlzIGFuIGFk ZHJlc3MsIGl0IHNldHMgc291cmNlIGFkZHJlc3MgdG8gc3BlY2lmaWVkIGludGVyZmFjZSBhZGRy ZXNzLg0KPiBJZiBpbnRlcmZhY2UgaXMgYW4NCj4gICAgICAgICAgICAgaW50ZXJmYWNlIG5hbWUs IGl0IHNldHMgc291cmNlIGludGVyZmFjZSB0byBzcGVjaWZpZWQgaW50ZXJmYWNlLiBJZg0KPiBp bnRlcmZhY2UgaXMgYSBWUkYgbmFtZSwgZWFjaCBwYWNrZXQgaXMgcm91dGVkIHVzaW5nIHRoZSBj b3JyZXNwb25kaW5nDQo+IHJvdXRpbmcgdGFibGU7IGluIHRoaXMgY2FzZSwgdGhlIC1JDQo+ICAg ICAgICAgICAgIG9wdGlvbiBjYW4gYmUgcmVwZWF0ZWQgdG8gc3BlY2lmeSBhIHNvdXJjZSBhZGRy ZXNzLiBOT1RFOg0KPiBGb3IgSVB2Niwgd2hlbiBkb2luZyBwaW5nIHRvIGEgbGluay1sb2NhbCBz Y29wZSBhZGRyZXNzLCBsaW5rIHNwZWNpZmljYXRpb24gKGJ5DQo+IHRoZSAnJSctbm90YXRpb24g aW4gZGVzdGluYXRpb24sIG9yDQo+ICAgICAgICAgICAgIGJ5IHRoaXMgb3B0aW9uKSBjYW4gYmUg dXNlZCBidXQgaXQgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLg0KPiANCj4gDQo+IFdpdGhvdXQgdGhl IHJlcGV0aXRpb24gdGhvdWdoLCB1bmxlc3Mgd2UgbmVlZCB0byBzdXBwb3J0IHR3byBpbnRlcmZh Y2VzDQo+IHRoYXQgc2hhcmUgdGhlIHNhbWUgbXVsdGlwbGUgYWRkcmVzc2VzIGluIHRoZSBzYW1l IHN1Ym5ldCwgd2hpY2ggc291bmRzDQo+IGNvbXBsZXRlbHkgY3JhenkgdG8gbWUuLi4NCg0KSGkg U2FnaSwNCg0KSWYgd2Ugd2FudCB0byBmb2xsb3cgcGluZyBhcyBhbiBleGFtcGxlLCB0aGUgcmVw ZXRpdGlvbiBpcyBuZWVkZWQgbm90IHRvIHNwZWNpZnkgdHdvIGludGVyZmFjZXMsIGJ1dCB0byBz cGVjaWZ5IGFuIGludGVyZmFjZSBhbmQgdGhlIHNvdXJjZSBhZGRyZXNzLiBJbiBhIHByZXZpb3Vz IGV4YW1wbGUgKHJlcHJvZHVjZWQgYmVsb3cpLCBJIGRlc2NyaWJlZCBhIGNvbmZpZ3VyYXRpb24g d2hlcmUgYW4gaW50ZXJmYWNlIGhhZCBzZXZlcmFsIGFkZHJlc3NlcyBhc3NpZ25lZCB0byBpdC4g QnkgZGVmYXVsdCwgTGludXggYWx3YXlzIHBpY2tzIHRoZSBzYW1lIFNvdXJjZSBhZGRyZXNzIChp LmUuIDE5Mi4xNjguNTYuMTAxIGluIHRoaXMgZXhhbXBsZSkgd2hlbiBjb25uZWN0aW5nLiBJZiBh IHVzZXIgd2FudHMgYSBkaWZmZXJlbnQgc291cmNlIGFkZHJlc3MgdGhleSBuZWVkIGEgd2F5IHRv IHNwZWNpZnkgaXQgKGN1cnJlbnRseSB3aXRoIC0taG9zdC10cmFkZHIpLiBVc2VycyBhbHNvIG5l ZWQgYSB3YXkgdG8gc3BlY2lmeSBhbiBpbnRlcmZhY2Ugc2VwYXJhdGVseSBmcm9tIHRoZSBzb3Vy Y2UgYWRkcmVzcyAoZWl0aGVyIHdpdGggYSBuZXcgb3B0aW9uIGxpa2UgLS1ob3N0LWlmYWNlIG9y IGJ5IHJlcGVhdGluZyAtLWhvc3QtdHJhZGRyKS4gV2l0aCB0aGUgZXhhbXBsZSBiZWxvdywgaWYg d2Ugd2FudGVkIHRvIGZvcmNlIHBpbmcgdG8gdXNlIGludGVyZmFjZSBlbnAwczggYW5kIHNvdXJj ZSBhZGRyZXNzIDE5Mi4xNjguNTYuMTAzLCB3ZSB3b3VsZCByZXBlYXQgdGhlIC1JIG9wdGlvbiwg Zm9yIGV4YW1wbGUgInBpbmcgLUkgZW5wMHM4IC1JIDE5Mi4xNjguNTYuMTAzIi4gV2UgbmVlZCBh IHdheSB0byBkbyB0aGUgc2FtZSB3aXRoIG52bWUtY2xpLiANCg0KSSB0aG91Z2h0IHRoYXQgaW50 cm9kdWNpbmcgYSBuZXcgb3B0aW9uLCAiLS1ob3N0LWlmYWNlIiwgaGFkIHRoZSBzbWFsbGVzdCBp bXBhY3Qgc2luY2UgaXQgcmVxdWlyZXMgbGVzcyBjb2RlIGNoYW5nZXMsIGJ1dCB0aGF0IHdhcyB0 dXJuZWQgZG93biAobm90IHN1cmUgZXhhY3RseSB3aHkpLiBJIHRoZW4gc3VnZ2VzdGVkIHRoYXQg d2UgdXNlIHRoZSAnJScgZGVsaW1pdGVyIGZvciBJUHY0IGFuZCBJUHY2LiBJIGFncmVlIHRoYXQg aXQgaXMgbm90IDEwMCUgdGhlIHNhbWUgYXMgcGluZyBzaW5jZSBwaW5nIG9ubHkgYWxsb3dzIHRo ZSAnJScgZGVsaW1pdGVyIGZvciBJUHY2IGFkZHJlc3NlcyAoYXMgcGVyIFJGQzQwMDcpLiBBcyB5 b3Ugc3VnZ2VzdGVkLCB3ZSBjb3VsZCByZXBlYXQgdGhlIC0taG9zdC10cmFkZHIgb3B0aW9uIChl LmcuIC0taG9zdC10cmFkZHIgZW5wMHM4IC0taG9zdC10cmFkZHIgMTkyLjE2OC41Ni4xMDMpLCBi dXQgdGhpcyBpcyBtb3JlIGltcGFjdGZ1bCB0byB0aGUgY29kZSB0aGFuIGFkZGluZyBhIHNlcGFy YXRlIC0taG9zdC1pZmFjZSBvcHRpb24uDQoNCkVYQU1QTEU6IEludGVyZmFjZSB3aXRoIHNldmVy YWwgYWRkcmVzc2VzIGFzc2lnbmVkOg0KJCBpcCBhZGRyIGxpc3QgZGV2IGVucDBzOA0KMzogZW5w MHM4OiA8QlJPQURDQVNULE1VTFRJQ0FTVCxVUCxMT1dFUl9VUD4gbXR1IDE1MDAgLi4uDQogICAg ICBsaW5rL2V0aGVyIDA4OjAwOjI3OjRmOjk1OjVjIGJyZCBmZjpmZjpmZjpmZjpmZjpmZg0KICAg ICAgaW5ldCAxOTIuMTY4LjU2LjEwMS8yNCBicmQgMTkyLjE2OC41Ni4yNTUgc2NvcGUgLi4uDQog ICAgICAgICB2YWxpZF9sZnQgNDI2c2VjIHByZWZlcnJlZF9sZnQgNDI2c2VjDQogICAgICBpbmV0 IDE5Mi4xNjguNTYuMTAyLzI0IHNjb3BlIGdsb2JhbCBzZWNvbmRhcnkgZW5wMHM4DQogICAgICAg ICB2YWxpZF9sZnQgZm9yZXZlciBwcmVmZXJyZWRfbGZ0IGZvcmV2ZXINCiAgICAgIGluZXQgMTky LjE2OC41Ni4xMDMvMjQgc2NvcGUgZ2xvYmFsIHNlY29uZGFyeSBlbnAwczgNCiAgICAgICAgIHZh bGlkX2xmdCBmb3JldmVyIHByZWZlcnJlZF9sZnQgZm9yZXZlcg0KICAgICAgaW5ldCAxOTIuMTY4 LjU2LjEwNC8yNCBzY29wZSBnbG9iYWwgc2Vjb25kYXJ5IGVucDBzOA0KICAgICAgICAgdmFsaWRf bGZ0IGZvcmV2ZXIgcHJlZmVycmVkX2xmdCBmb3JldmVyDQoNCkluIHRoZSBlbmQsIGl0IGRvZXNu J3QgcmVhbGx5IG1hdHRlciAodG8gbWUpIGhvdyBpdCBpcyBpbXBsZW1lbnRlZC4gSG93ZXZlciwg YSBzb2x1dGlvbiB0aGF0IGhhdmUgbGl0dGxlIHRvIG5vIGltcGFjdCBvbiBleGlzdGluZyBjb2Rl IHdvdWxkIGJlIG5pY2UuIEp1c3QgbGlrZSBwaW5nLCB3ZSBuZWVkIGEgd2F5IHRvIHNwZWNpZnkg YW4gaW50ZXJmYWNlIGJ5IGl0cyAqKmludGVyZmFjZSBuYW1lKiogKGFuZCBub3QgYnkgaXRzIGFz c29jaWF0ZWQgSVAgYWRkcmVzcyksIGFuZCB3ZSBuZWVkIHRvIGFsbG93IHVzZXJzIHRvIHNlbGVj dCB3aGljaCBTb3VyY2UgSVAgYWRkcmVzcyB0byB1c2Ugd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUg YWRkcmVzc2VzIGFzc29jaWF0ZWQgd2l0aCBhbiBpbnRlcmZhY2UuDQoNClJlZ2FyZHMsDQpNYXJ0 aW4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4 LW52bWUgbWFpbGluZyBsaXN0CkxpbnV4LW52bWVAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52bWUK