Received: by 2002:a05:6359:6284:b0:131:369:b2a3 with SMTP id se4csp502018rwb; Fri, 4 Aug 2023 17:04:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG9TDpnSoPPc22l2X6ck+oiBWhErOKRfXw2R+YEXLa1O397wGucq3k9V5nTpPklLTqcb8Ib X-Received: by 2002:a05:6512:473:b0:4fe:cc0:340 with SMTP id x19-20020a056512047300b004fe0cc00340mr2145829lfd.60.1691193861722; Fri, 04 Aug 2023 17:04:21 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1691193861; cv=pass; d=google.com; s=arc-20160816; b=vqP/HNOC34Ir1zp7fL447XtXBItU6ZYGHzgY5ePF/5P8rrPrR0ScyK7U3d8AydV5hy 3HmpT1F/X6FucE+KN/jiOApFglIuD6o87A/EVlGIwFyO90jtcb5oS84Ivh7XsRRDdadt 6OKnYxkhTlTiPZil9QDZAZmTcNb4yDjIC9GUfXcQAEZGXvuVyDGIR1WXSZOVBM6+PFsd RS8sVRrW9B1HWaF8D02zYWWTaN7gvht9Yq3ebB7ZJ0V02H0IRDemRyd1JP5xiikBlGmr po0qmTclxIiI0DNMHIo8Ek9lqZ42YPF68Gkp/tEYnTHO4YKK5gntTlQAbd+WAaw4RWKB uItw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=UbDExScCwX3I4BfSn9oZbZs+8UMxvf7XhV/hX6m0vRk=; fh=ebZFFxQEodGglEAK1HJtHQekybCEVNOBpwkemApQ7lo=; b=YtJdPTs/b4dKs/cUX0D93EMRrze9jlMwSdzjKnrVV5dWy6rmpAE+h7o2QmbD1+zh2b 6LHUKtfIPGUEhSqAxojIWH4Kh1FTGB5kmddqsMbuTAmHRCJCfRTWT6/dBISJ44BWdWiv xnvnyJXs8DZZVesnaRQ3tTCF69oKdYYacu3thjTsFu8gzdwczn88wnzYffkporrvq8or dVY7iMLhlK1PKwNcYFX6++NAkbhwsRVn/dEM5RM2pXAa9DHFREkQIur6T/gPb5XwxSY+ ihZiGX3bPxISA+nQV7xBmT7JwfeC+ocQV1CCvjxKbZ0wZftC4XMol9uq2BbI8UA1kGRD ywDA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KWK00XiW; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n9-20020aa7c689000000b00522561facd7si2259332edq.143.2023.08.04.17.03.56; Fri, 04 Aug 2023 17:04:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KWK00XiW; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229893AbjHDVbL (ORCPT + 99 others); Fri, 4 Aug 2023 17:31:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229891AbjHDVbA (ORCPT ); Fri, 4 Aug 2023 17:31:00 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9AF5E11B for ; Fri, 4 Aug 2023 14:30:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691184657; x=1722720657; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=UbDExScCwX3I4BfSn9oZbZs+8UMxvf7XhV/hX6m0vRk=; b=KWK00XiW3tvN7bYw96wjvuIpw9PN+2sqoV00TXJC0LZM1YZbV30Kp4nM sCkNlbug8lUF1KVl+5/SVgTZnC2o0Re4KIz6syXYZ1y5/CW9By2+FTUpX ZN79pWd5/OyrFXuuWacePAlreHC5ykjy456MRrgX2SoxDJSwzAYXtuwoh 8YfIhT/In5XfGAfHkt89ShEVm1Rz8U3Oq4+C5bYB0UuxGn+9wuFSgd3wx uD8yP7jLK1D+RAmr4fle9nj1G0+Zzw6WpK7u+8msBRdZxKXbX4gIMC6b4 gcO5HBjDds9lDqQsqKnKrpAgd2aeQh+1z8pABtGe6K+y+hykc/n5rhT7K Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10792"; a="434095452" X-IronPort-AV: E=Sophos;i="6.01,256,1684825200"; d="scan'208";a="434095452" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2023 14:30:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10792"; a="844260295" X-IronPort-AV: E=Sophos;i="6.01,256,1684825200"; d="scan'208";a="844260295" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga002.fm.intel.com with ESMTP; 04 Aug 2023 14:30:25 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 14:30:24 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 14:30:24 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Fri, 4 Aug 2023 14:30:24 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.168) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Fri, 4 Aug 2023 14:30:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ViJCs3HQOsn+gy4eywpGRDz8DZb5AjSQZBrQIjp7mHq8Hmt9K4hvIb/EVPGMZKahXFETASHf6v6aHN5nzrsGlnhfUi2oTKSFD/MwxJiLzBRy1kvbJFvWI8D4k6GVnIfxJfnw2jyYa5jXcEMFqW9i798YZwnnapMJFL0EZsg+BQOZZqyUxHMo0laBoP+CK+EgHdC7rcFUs16p3uory4/YqDc4nRU5y6tL8e+ziaXTyuG/76NHkwNe2OMaZZ73POv1zhAmfukxyCgxxqBq30oyYRlYSakXHRQCP+zCFiYbhWj7B0LPhE5QA2NZbyqshp5HbEbEr1lm9MMRG4l5Fpg6tw== 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=UbDExScCwX3I4BfSn9oZbZs+8UMxvf7XhV/hX6m0vRk=; b=nYGcvX73/Bqvmb5bnqZTP/QwgDyg8q9q9p1wt2GUw5naj3D8VoylQsvu9xkq5i//ancuBYceSqVrfKQeEwHy8DXnbwPeB4PJjLxBVD5bHL1efWMsUSGrnyKSTsFbUglWNpu6rB/wYPJseeK335lW/prhiH9hoFoGvugVkd6Nn96J7HW9Q2xisWVezsKHJt8Y/YngaSLHpNuftsfdtsjaDz2ceH29YKSLs1uhdgkWxQUftOSrMh81gu5QLcnbz2AZIkTTJoAyY2ZSumDVeX1Hx3qz+L5ZnI342dCxHozoX9m4IIPu5s78N991of09QCJtNgfK7xNuO7PU3UdWxv+IXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO6PR11MB5620.namprd11.prod.outlook.com (2603:10b6:303:13e::17) by SN7PR11MB6995.namprd11.prod.outlook.com (2603:10b6:806:2ae::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.47; Fri, 4 Aug 2023 21:30:22 +0000 Received: from CO6PR11MB5620.namprd11.prod.outlook.com ([fe80::9d00:bd04:a6e3:1afe]) by CO6PR11MB5620.namprd11.prod.outlook.com ([fe80::9d00:bd04:a6e3:1afe%4]) with mapi id 15.20.6631.046; Fri, 4 Aug 2023 21:30:21 +0000 From: "Zanoni, Paulo R" To: "Vivi, Rodrigo" CC: "intel-xe@lists.freedesktop.org" , "Das, Nirmoy" , "Dugast, Francois" , "joonas.lahtinen@linux.intel.com" , "dri-devel@lists.freedesktop.org" , "Zeng, Oak" , "dakr@redhat.com" , "thomas.hellstrom@linux.intel.com" , "daniel@ffwll.ch" , "linux-kernel@vger.kernel.org" Subject: Re: [Intel-xe] [PATCH v5] Documentation/gpu: Add a VM_BIND async draft document Thread-Topic: [Intel-xe] [PATCH v5] Documentation/gpu: Add a VM_BIND async draft document Thread-Index: AQHZtzOAczwB6BvVHEO2oyZEWgalRK/BhhmAgBkopYCAABiZgA== Date: Fri, 4 Aug 2023 21:30:21 +0000 Message-ID: References: <20230715154543.13183-1-thomas.hellstrom@linux.intel.com> <50419f5bf1e3e5238cce2d71fd2e100cb7bc3364.camel@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.46.4-2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR11MB5620:EE_|SN7PR11MB6995:EE_ x-ms-office365-filtering-correlation-id: 645ac011-b781-4dee-0bed-08db95320214 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hVdH9pQye4TKp7cfMuBUkxpkKeho6Cw5ybns8C7iECaOd48Qf+PtHU8fwMjF03vYyJkfID8BERnurntxl2QJqV6nW1FWd8HD/mKe9Nw/gmsNEOKokzUI+jzVSdOe9xlGwQk/WtQ2Ms49TGMC28BkJEmgK9Jq5/xh1X+hfGq1t8edytseWVuuivsCizOLD02EwXieoGOvcDKcD40DGmhwMtZNkpqIfp7L7rGSVa95phCAQ+3C1e0zGUDRyBEDwnYy7r1NjH6tf4XjbtYxmpdjists5j/ePBcDzRZwUILIXclCI+3H8PhZK+xj3UJeUsRm4zX6dN3Z6WCktGFCgADiAGrYn13QruvKv5FhujLIfpe1VQLUST138kCbt1w1z/g5eTbtGmJdV2XUf5UYNdcINeTrGsEzlhefJxOHTEatL9r5cW5u809IU05CJ3CQDzk5I+Q+0EFedLVAQe/Jli9jFvbcDYQTzezepkrbpyVTGcL4ShZEyyrJhDUe+UYZ8UzoZSg4lxiyY927SjQql3bx2PG3Lx1JGG+vJYsfVs2B/kPKbn4sOvMlgIHknyivDzdNYyxrY4SmJe9dL5Jp/I9CcqXk2T8oozQF6Mx4CVhLHus4Tx4+D7GrFQm1uB7oK7T7FHDqMUM/QVy184T2oX22Cg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR11MB5620.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(346002)(396003)(136003)(366004)(376002)(451199021)(1800799003)(186006)(30864003)(66446008)(66556008)(41300700001)(76116006)(2906002)(316002)(66946007)(64756008)(6636002)(4326008)(66476007)(8936002)(6862004)(8676002)(5660300002)(122000001)(82960400001)(36756003)(6506007)(38070700005)(83380400001)(2616005)(86362001)(66574015)(38100700002)(6512007)(71200400001)(6486002)(54906003)(966005)(37006003)(478600001)(66899021);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a1dCMVVybEFlRWwvTVYrQmdFem1FRkhCdnI4aXdkV2FyOVRtQnhKMTFUU2tv?= =?utf-8?B?SEFNd2d2RWN4SXk5MFhBU2QrK3NJZkx0NnpHamsreFRsbHFYYXYvYkpVM1Jv?= =?utf-8?B?bEpZUWNZS3FKSHZwVVNtNkY2YVE3cWNMMGlEVlBwZVVkWjRXclFiNHRTRnZP?= =?utf-8?B?RktxUEJ6WXpXdVBhYWpGa21hQVJBdWRycjlka2FOTnR6VjdGd3UvNGNGWkk1?= =?utf-8?B?QzkxZDB2SUtzeGxqM1NJVGRUbWgxdnNFNWZNYkVZZGFiVDd6Z1NQdk5Uckt4?= =?utf-8?B?bE1KbnNGYkdMODZKekxZaFFKajlCQWRWbWFJV2xUUkFVREVMNlMram9hTWsy?= =?utf-8?B?c2c2ZkpkOGw0R2tCZSsrWEFjNTVVV2FTWDZpZDhCWTdzY3dHVTBMVXZMZVpO?= =?utf-8?B?WHo4TVQwZjRmTDVINGRiZzZMdHdpY2d4YWNwQ3FKWWtINnl4UU1oSXRMUlVL?= =?utf-8?B?dE5oV0JZQU1ndTRaMm1kU3ZSVlBCN1FRYVc0ZWgrd2pYakpBeUlpcnEyTzFD?= =?utf-8?B?Y2kzOFlHUnluS0J2Tm1TdG93RklTL1BseGFBc1hFSmZBWWwzSWRMdWtZZDlr?= =?utf-8?B?U1NoM01CUUR6M3RCZlNtMTBNZmRRTm5IUXlaeWpwYVlpc1ZmWDA3THptcXNO?= =?utf-8?B?SDlOd29KMGloakVCS0duYVZoaHBnS3E5ZS8ybEljUXFZSit4VnFCdHY1dnhW?= =?utf-8?B?cVl6RzE1NFZsaS83SkUyamhUcFRJclhnSC9jTDY0clU2cEtVUXNzSkNNMTky?= =?utf-8?B?YXlIK2JReloxMmhXWTlqZzlxOXcwZ2YzTDBZamdHd3hYL3NhRjRTU000WlYz?= =?utf-8?B?M29nQUlpSFRYZVdJbHFkNm9rdlZ6amF0UEd0VjNlZ091cWJ1cTI4Zkg1ekI3?= =?utf-8?B?M0IzbjRzelBJcDZ1R09rODVwSlRYa1B3Q05HVlNzeU5nYTk0RVRVdFlkdVhB?= =?utf-8?B?cURpL2FRR1BkMWpwakdORUNESjFWMnhuTmRWRjQxTk84QnZDcC92RldwY3lX?= =?utf-8?B?VE5FVHVLQUUrVEduV3dBOG9FWXZMckJXZzg2SEZCaDkzMmVpeGxKNmt5eXRi?= =?utf-8?B?dlNJYTk0QzFnUm5leEJKQTRPWVp3Z0ZqSGEyTXUyWDErTVNFcE9kOTBPY2Ez?= =?utf-8?B?eFU5VEdsTEZHTkdhSUUxMnJ1eGY5SVBqYi9vUSt2ZHExRlppQXBiMXZzenhx?= =?utf-8?B?ZWQ4aG5WWUtzRlVIR090VXZLeVEyMFhSUXVpY1hsdTFoZHhQcFVIdVhGT29N?= =?utf-8?B?THNYeVdyRXEzS0xZbzNqL2s4czNmVDlFWWVobFNFWjN1TXEwOVMybWkxL1Rj?= =?utf-8?B?a3lvbnVjbUxwZUcwelZYbWQ3MzZiSStZU3NQVFRLcG5MbWd1c0tSQVNDd0FO?= =?utf-8?B?djR2RGd4YWZ0MGNBV1JHejF6bnZwbW4yTURTcUFjUTloOExWSFU2UWo2UEs4?= =?utf-8?B?SmhFRHNaZ3E5N2FCd29zL1pzMEU0WFlSNUdQRGtmZFFnOVY2bVN5UWFkbXlq?= =?utf-8?B?aEdOcm5XMUN6UjVlbDNkZW4rc2VtNGRUcXgrQlBaTVREVXFYVXh4eVlteTkw?= =?utf-8?B?UER6UTdjRTFkbUlnSThSeHFmVDlCQ3FCdVJzcTM1VHVaSENSblc1aDB6NFU5?= =?utf-8?B?Q2FLMG5FN1FUR2xUMzM5WGdoeTdMcFJOQTNjM1ZGVmtPQ3pqNmlnaVdBTlIx?= =?utf-8?B?YVZPemU5NUFuZy9rc2MzTlF1bjNZMENCRFBaMlNsY1o1SmhtcTY2dFlZeTFa?= =?utf-8?B?ZEd1Q1lwYXZqV2JrVFlhYnBhV1M1M1plS3lQT01SU25tajBVbVB3akhkd2R3?= =?utf-8?B?Y2x0b0FBTnZ4blU5bWR4L3NoaDhHRGIyUE9nQ21QcVg5Z2g2L3B0VDdIYzVY?= =?utf-8?B?L3NKVktWT2Vxcy9wa1Q3MWMrdW45ekxvYTN6dGtFOTJoeWNMRVJVU2pwOVdt?= =?utf-8?B?YXY4NDIwaUVUZVVEbWVPeDVmQmhETGxOYTNENVpHdmtrRjBESDJ2UStHdVUx?= =?utf-8?B?U3B4Ris2Y0tKdjdlN1BHa0JHQjBzV0taRTFYak9BYWJURVN5QTVUTUo2c1cr?= =?utf-8?B?WlY1YzVzQjFaTk5wcytFRGtEZ1dmLzFEOFZobjd1eUQxTUNtUEVVdTZYVm1u?= =?utf-8?B?eUtWZENkZlZ5VFhNUTN3WUpoVEtmK2FXN1BZTjh2aXV2dGo1RVlydEZzMFJM?= =?utf-8?B?TkdJa0luQVhjdU1CVG9ZYkJZMUdIby9KdVNPSkxRUDIrUjM3TUhVQWJxSjFh?= =?utf-8?B?aW1ITk5DMk9PUW9ZMGxwaEpOdEl3PT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: <34BCF5BDC357EF4F89D9870D227DCD74@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5620.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 645ac011-b781-4dee-0bed-08db95320214 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2023 21:30:21.8701 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: BQnuT3j1Qa4/mOLF09bL2Puu9olDKOV04fAQwMwtysHK7+Lj+R/NppB+4oOn64k0Z+2oinIDavLEpEfKzSpGjkxQEKBRq9kdYkr+DYZaa0c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6995 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gRnJpLCAyMDIzLTA4LTA0IGF0IDE2OjAyIC0wNDAwLCBSb2RyaWdvIFZpdmkgd3JvdGU6DQo+ IE9uIFdlZCwgSnVsIDE5LCAyMDIzIGF0IDA3OjUwOjIxUE0gKzAwMDAsIFphbm9uaSwgUGF1bG8g UiB3cm90ZToNCj4gPiBPbiBTYXQsIDIwMjMtMDctMTUgYXQgMTc6NDUgKzAyMDAsIFRob21hcyBI ZWxsc3Ryw7ZtIHdyb3RlOg0KPiA+ID4gQWRkIGEgbW90aXZhdGlvbiBmb3IgYW5kIGRlc2NyaXB0 aW9uIG9mIGFzeW5jaHJvbm91cyBWTV9CSU5EIG9wZXJhdGlvbg0KPiA+IA0KPiA+IEkgdGhpbmsg SSBtYXkgaGF2ZSBtaXNzZWQgc29tZSBvdGhlciBkb2N1bWVudGF0aW9uLCB3aGljaCB3b3VsZCBl eHBsYWluDQo+ID4gc29tZSBvZiBteSBxdWVzdGlvbnMgYmVsb3csIHNvIHBsZWFzZSBiZSBwYXRp ZW50IHdpdGggbXkNCj4gPiBtaXN1bmRlcnN0YW5kaW5ncy4gQnV0IGhlcmUncyBhIHJldmlldyBm cm9tIHRoZSBQT1Ygb2YgYSBVTUQgcGVyc29uLg0KPiA+IA0KPiA+IA0KPiA+ID4gDQo+ID4gPiB2 MjoNCj4gPiA+IC0gRml4IHR5cG9zIChOaXJtb3kgRGFzKQ0KPiA+ID4gLSBJbXByb3ZlIHRoZSBk ZXNjcmlwdGlvbiBvZiBhIG1lbW9yeSBmZW5jZSAoT2FrIFplbmcpDQo+ID4gPiAtIEFkZCBhIHJl ZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQgaW4gdGhlIFhlIFJGQy4NCj4gPiA+IC0gQWRkIHBvaW50 ZXJzIHRvIHNhbXBsZSB1QVBJIHN1Z2dlc3Rpb25zDQo+ID4gPiB2MzoNCj4gPiA+IC0gQWRkcmVz cyByZXZpZXcgY29tbWVudHMgKERhbmlsbyBLcnVtbXJpY2gpDQo+ID4gPiAtIEZvcm1hdHRpbmcg Zml4ZXMNCj4gPiA+IHY0Og0KPiA+ID4gLSBBZGRyZXNzIHR5cG9zIChGcmFuY29pcyBEdWdhc3Qp DQo+ID4gPiAtIEV4cGxhaW4gd2h5IGluLWZlbmNlcyBhcmUgbm90IGFsbG93ZWQgZm9yIFZNX0JJ TkQgb3BlcmF0aW9ucyBmb3IgbG9uZy0NCj4gPiA+ICAgcnVubmluZyB3b3JrbG9hZHMgKE1hdHRo ZXcgQnJvc3QpDQo+ID4gPiB2NToNCj4gPiA+IC0gTW9yZSB0eXBvLSBhbmQgc3R5bGUgZml4aW5n DQo+ID4gPiAtIEZ1cnRoZXIgY2xhcmlmeSB0aGUgaW1wbGljYXRpb25zIG9mIGRpc2FsbG93aW5n IGluLWZlbmNlcyBmb3IgVk1fQklORA0KPiA+ID4gICBvcGVyYXRpb25zIGZvciBsb25nLXJ1bm5p bmcgd29ya2xvYWRzIChNYXR0aGV3IEJyb3N0KQ0KPiA+ID4gDQo+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+DQo+ ID4gPiBBY2tlZC1ieTogTmlybW95IERhcyA8bmlybW95LmRhc0BpbnRlbC5jb20+DQo+ID4gPiAt LS0NCj4gPiA+ICBEb2N1bWVudGF0aW9uL2dwdS9kcm0tdm0tYmluZC1hc3luYy5yc3QgfCAxNzEg KysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiAgRG9jdW1lbnRhdGlvbi9ncHUvcmZjL3hl LnJzdCAgICAgICAgICAgIHwgICA0ICstDQo+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNzMgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9j dW1lbnRhdGlvbi9ncHUvZHJtLXZtLWJpbmQtYXN5bmMucnN0DQo+ID4gPiANCj4gPiA+IGRpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdm0tYmluZC1hc3luYy5yc3QgYi9Eb2N1bWVu dGF0aW9uL2dwdS9kcm0tdm0tYmluZC1hc3luYy5yc3QNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmQyYjAyYTM4MTk4YQ0KPiA+ID4gLS0tIC9k ZXYvbnVsbA0KPiA+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXZtLWJpbmQtYXN5bmMu cnN0DQo+ID4gPiBAQCAtMCwwICsxLDE3MSBAQA0KPiA+ID4gKz09PT09PT09PT09PT09PT09PT09 DQo+ID4gPiArQXN5bmNocm9ub3VzIFZNX0JJTkQNCj4gPiA+ICs9PT09PT09PT09PT09PT09PT09 PQ0KPiA+ID4gKw0KPiA+ID4gK05vbWVuY2xhdHVyZToNCj4gPiA+ICs9PT09PT09PT09PT09DQo+ ID4gPiArDQo+ID4gPiArKiBgYFZSQU1gYDogT24tZGV2aWNlIG1lbW9yeS4gU29tZXRpbWVzIHJl ZmVycmVkIHRvIGFzIGRldmljZSBsb2NhbCBtZW1vcnkuDQo+ID4gPiArDQo+ID4gPiArKiBgYGdw dV92bWBgOiBBIEdQVSBhZGRyZXNzIHNwYWNlLiBUeXBpY2FsbHkgcGVyIHByb2Nlc3MsIGJ1dCBj YW4gYmUgc2hhcmVkIGJ5DQo+ID4gPiArICBtdWx0aXBsZSBwcm9jZXNzZXMuDQo+ID4gPiArDQo+ ID4gPiArKiBgYFZNX0JJTkRgYDogQW4gb3BlcmF0aW9uIG9yIGEgbGlzdCBvZiBvcGVyYXRpb25z IHRvIG1vZGlmeSBhIGdwdV92bSB1c2luZw0KPiA+ID4gKyAgYW4gSU9DVEwuIFRoZSBvcGVyYXRp b25zIGluY2x1ZGUgbWFwcGluZyBhbmQgdW5tYXBwaW5nIHN5c3RlbS0gb3INCj4gPiA+ICsgIFZS QU0gbWVtb3J5Lg0KPiA+ID4gKw0KPiA+ID4gKyogYGBzeW5jb2JqYGA6IEEgY29udGFpbmVyIHRo YXQgYWJzdHJhY3RzIHN5bmNocm9uaXphdGlvbiBvYmplY3RzLiBUaGUNCj4gPiA+ICsgIHN5bmNo cm9uaXphdGlvbiBvYmplY3RzIGNhbiBiZSBlaXRoZXIgZ2VuZXJpYywgbGlrZSBkbWEtZmVuY2Vz IG9yDQo+ID4gPiArICBkcml2ZXIgc3BlY2lmaWMuIEEgc3luY29iaiB0eXBpY2FsbHkgaW5kaWNh dGVzIHRoZSB0eXBlIG9mIHRoZQ0KPiA+ID4gKyAgdW5kZXJseWluZyBzeW5jaHJvbml6YXRpb24g b2JqZWN0Lg0KPiA+ID4gKw0KPiA+ID4gKyogYGBpbi1zeW5jb2JqYGA6IEFyZ3VtZW50IHRvIGEg Vk1fQklORCBJT0NUTCwgdGhlIFZNX0JJTkQgb3BlcmF0aW9uIHdhaXRzDQo+ID4gPiArICBmb3Ig dGhlc2UgYmVmb3JlIHN0YXJ0aW5nLg0KPiA+ID4gKw0KPiA+ID4gKyogYGBvdXQtc3luY29iamBg OiBBcmd1bWVudCB0byBhIFZNX0JJTkRfSU9DVEwsIHRoZSBWTV9CSU5EIG9wZXJhdGlvbg0KPiA+ ID4gKyAgc2lnbmFscyB0aGVzZSB3aGVuIHRoZSBiaW5kIG9wZXJhdGlvbiBpcyBjb21wbGV0ZS4N Cj4gPiA+ICsNCj4gPiA+ICsqIGBgbWVtb3J5IGZlbmNlYGA6IEEgc3luY2hyb25pemF0aW9uIG9i amVjdCwgZGlmZmVyZW50IGZyb20gYSBkbWEtZmVuY2UuDQo+ID4gDQo+ID4gU2luY2UgeW91J3Zl IG1lbnRpb25lZCBpdCB0d2ljZSBpbiB0aGlzIGRvY3VtZW50IGFscmVhZHksIGZvcg0KPiA+IGNv bXBsZXRlbmVzcyB3b3VsZCB5b3UgbWluZCBhbHNvIGdpdmluZyBhIGRlZmluaXRpb24gZm9yIGRt YS1mZW5jZSBpbg0KPiA+IHdoYXQgaXQgcmVsYXRlcy9jb250cmFzdHMgdG8gdGhlIHJlc3Qgb2Yg dGhlIHRleHQ/DQo+IA0KPiBNYXliZSB3b3J0aCBhIGxpbmsgdG8gdGhlIGRtYS1mZW5jZSBkb2Mg aXRzZWxmPw0KPiAoc29tZWhvdyBtYWtpbmcgc3BoaW54IHRvIHBvaW50IG91dCB0byBkcml2ZXIt YXBpL2RtYS1idWYuaHRtbCNkbWEtZmVuY2VzKQ0KPiANCj4gQnV0IHRoZSBkaWZmZXJlbmNlcyBh cmUgd3JpdHRlbiBiZWxvdyBQYXVsbzoNCj4gDQo+ID4gDQo+ID4gDQo+ID4gPiArICBBIG1lbW9y eSBmZW5jZSB1c2VzIHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmllZCBtZW1vcnkgbG9jYXRpb24gdG8g ZGV0ZXJtaW5lDQo+ID4gPiArICBzaWduYWxlZCBzdGF0dXMuIEEgbWVtb3J5IGZlbmNlIGNhbiBi ZSBhd2FpdGVkIGFuZCBzaWduYWxlZCBieSBib3RoDQo+ID4gPiArICB0aGUgR1BVIGFuZCBDUFUu IE1lbW9yeSBmZW5jZXMgYXJlIHNvbWV0aW1lcyByZWZlcnJlZCB0byBhcw0KPiA+ID4gKyAgdXNl ci1mZW5jZXMsIHVzZXJzcGFjZS1mZW5jZXMgb3IgZ3B1IGZ1dGV4ZXMgYW5kIGRvIG5vdCBuZWNl c3NhcmlseSBvYmV5DQo+ID4gPiArICB0aGUgZG1hLWZlbmNlIHJ1bGUgb2Ygc2lnbmFsaW5nIHdp dGhpbiBhICJyZWFzb25hYmxlIGFtb3VudCBvZiB0aW1lIi4NCj4gPiA+ICsgIFRoZSBrZXJuZWwg c2hvdWxkIHRodXMgYXZvaWQgd2FpdGluZyBmb3IgbWVtb3J5IGZlbmNlcyB3aXRoIGxvY2tzIGhl bGQuDQo+IA0KPiBeDQo+IA0KPiA+ID4gKw0KPiA+ID4gKyogYGBsb25nLXJ1bm5pbmcgd29ya2xv YWRgYDogQSB3b3JrbG9hZCB0aGF0IG1heSB0YWtlIG1vcmUgdGhhbiB0aGUNCj4gPiA+ICsgIGN1 cnJlbnQgc3RpcHVsYXRlZCBkbWEtZmVuY2UgbWF4aW11bSBzaWduYWwgZGVsYXkgdG8gY29tcGxl dGUgYW5kDQo+ID4gDQo+ID4gV2hlcmUgaXMgdGhpcyBkZWxheSBkZWZpbmVkP8KgSXMgdGhpcyB0 aGUgc2FtZSBhcyB0aGUgZ3B1aGFuZyB0aW1lcj8NCj4gDQo+IGRtYS1mZW5jZSBkZWZpbmVzIGl0 IGluIGEgdmVyeSAiY29vbCIgd2F5OiAicmVhc29uYWJsZSBhbW91bnQgb2YgdGltZSI6DQo+IGh0 dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvbGF0ZXN0L2RyaXZlci1hcGkvZG1hLWJ1Zi5o dG1sI2RtYS1mZW5jZXMNCj4gDQo+IHNvLCBpbiBjb250cmFzdCwgbG9uZy1ydW5uaW5nIHdvcmts b2FkIGlzICphbnl0aGluZyogYWJvdmUgdGhhdA0KPiAicmVhc29uYWJsZSBhbW91bnQgb2YgdGlt ZSIuDQoNClRoYXQgYW5zd2VycyBpdCBidXQgZG9lc24ndCBleGFjdGx5IGFuc3dlciBpdCBlaXRo ZXIuIEluIHByYWN0aWNlLCBob3cNCm11Y2ggaXMgdGhhdCAicmVhc29uYWJsZSBhbW91bnQgb2Yg dGltZSI/IFRoaXMgaXMgZG9jdW1lbnRhdGlvbiwgaXQNCnNob3VsZCBhdm9pZCB1c2luZyB2YWd1 ZSBzdGF0ZW1lbnRzIG9yIGh5cG90aGV0aWNhbCBjYXNlcy4gVGhlDQpkb2N1bWVudGF0aW9uIHlv dSBwb3N0ZWQgc3VnZ2VzdGVkIHRoaXMgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBHUFUgaGFuZw0K dGltZW91dCwgYnV0IGRvZXNuJ3QgZ2l2ZSBhIGRlZmluaXRpdmUgYW5zd2VyIChiZWNhdXNlIG11 bHRpcGxlIGRyaXZlcnMNCm1heSBkZWZpbmUgaXQgZGlmZmVyZW50bHksIGFwcGFyZW50bHkpLiBJ biBwcmFjdGljZSwgd2hhdCBkbyBkcml2ZXJzDQpkbz8gQXMgYSB1c2VyLXNwYWNlIGRldmVsb3Bl ciwgaG93IGxvbmcgY2FuIEkgd2FpdCBiZWZvcmUgdGhpbmdzIGZhaWw/DQpJcyB0aGVyZSBhIHdh eSB0byBmaWd1cmUgb3V0LCBtYXliZSBxdWVyeSBhIHBhcmFtZXRlciBzb21ld2hlcmU/IFdoaWNo DQpkcml2ZXIgd2FpdHMgdGhlIGxlYXN0PyBXaGljaCBkcml2ZXIgd2FpdHMgdGhlIG1vc3Q/ICBJ cyAxMCBzZWNvbmRzDQoicmVhc29uYWJsZSBhbW91bnQgb2YgdGltZSI/IE15IGdyYW5kbWEgdGhp bmtzIDIgd2Vla3MgaXMgYSByZWFzb25hYmxlDQphbW91bnQgb2YgdGltZSB3aGVuIHdhaXRpbmcg Zm9yIHRoaW5ncy4NCg0KPiANCj4gPiANCj4gPiANCj4gPiA+ICsgIHdoaWNoIHRoZXJlZm9yZSBu ZWVkcyB0byBzZXQgdGhlIGdwdV92bSBvciB0aGUgR1BVIGV4ZWN1dGlvbiBjb250ZXh0IGluDQo+ ID4gPiArICBhIGNlcnRhaW4gbW9kZSB0aGF0IGRpc2FsbG93cyBjb21wbGV0aW9uIGRtYS1mZW5j ZXMuDQo+ID4gPiArDQo+ID4gPiArKiBgYGV4ZWMgZnVuY3Rpb25gYDogQW4gZXhlYyBmdW5jdGlv biBpcyBhIGZ1bmN0aW9uIHRoYXQgcmV2YWxpZGF0ZXMgYWxsDQo+ID4gPiArICBhZmZlY3RlZCBn cHVfdm1hcywgc3VibWl0cyBhIEdQVSBjb21tYW5kIGJhdGNoIGFuZCByZWdpc3RlcnMgdGhlDQo+ ID4gPiArICBkbWFfZmVuY2UgcmVwcmVzZW50aW5nIHRoZSBHUFUgY29tbWFuZCdzIGFjdGl2aXR5 IHdpdGggYWxsIGFmZmVjdGVkDQo+ID4gPiArICBkbWFfcmVzdnMuIEZvciBjb21wbGV0ZW5lc3Ms IGFsdGhvdWdoIG5vdCBjb3ZlcmVkIGJ5IHRoaXMgZG9jdW1lbnQsDQo+ID4gPiArICBpdCdzIHdv cnRoIG1lbnRpb25pbmcgdGhhdCBhbiBleGVjIGZ1bmN0aW9uIG1heSBhbHNvIGJlIHRoZQ0KPiA+ ID4gKyAgcmV2YWxpZGF0aW9uIHdvcmtlciB0aGF0IGlzIHVzZWQgYnkgc29tZSBkcml2ZXJzIGlu IGNvbXB1dGUgLw0KPiA+ID4gKyAgbG9uZy1ydW5uaW5nIG1vZGUuDQo+ID4gPiArDQo+ID4gPiAr KiBgYGJpbmQgY29udGV4dGBgOiBBIGNvbnRleHQgaWRlbnRpZmllciB1c2VkIGZvciB0aGUgVk1f QklORA0KPiA+ID4gKyAgb3BlcmF0aW9uLiBWTV9CSU5EIG9wZXJhdGlvbnMgdGhhdCB1c2UgdGhl IHNhbWUgYmluZCBjb250ZXh0IGNhbiBiZQ0KPiA+ID4gKyAgYXNzdW1lZCwgd2hlcmUgaXQgbWF0 dGVycywgdG8gY29tcGxldGUgaW4gb3JkZXIgb2Ygc3VibWlzc2lvbi4gTm8gc3VjaA0KPiA+ID4g KyAgYXNzdW1wdGlvbnMgY2FuIGJlIG1hZGUgZm9yIFZNX0JJTkQgb3BlcmF0aW9ucyB1c2luZyBz ZXBhcmF0ZSBiaW5kIGNvbnRleHRzLg0KPiA+ID4gKw0KPiA+ID4gKyogYGBVTURgYDogVXNlci1t b2RlIGRyaXZlci4NCj4gPiA+ICsNCj4gPiA+ICsqIGBgS01EYGA6IEtlcm5lbC1tb2RlIGRyaXZl ci4NCj4gPiA+ICsNCj4gPiA+ICsNCj4gPiA+ICtTeW5jaHJvbm91cyAvIEFzeW5jaHJvbm91cyBW TV9CSU5EIG9wZXJhdGlvbg0KPiA+ID4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQo+ID4gPiArDQo+ID4gPiArU3luY2hyb25vdXMgVk1fQklORA0KPiA+ID4g K19fX19fX19fX19fX19fX19fX18NCj4gPiA+ICtXaXRoIFN5bmNocm9ub3VzIFZNX0JJTkQsIHRo ZSBWTV9CSU5EIG9wZXJhdGlvbnMgYWxsIGNvbXBsZXRlIGJlZm9yZSB0aGUNCj4gPiA+ICtJT0NU TCByZXR1cm5zLiBBIHN5bmNocm9ub3VzIFZNX0JJTkQgdGFrZXMgbmVpdGhlciBpbi1mZW5jZXMg bm9yDQo+ID4gPiArb3V0LWZlbmNlcy4gU3luY2hyb25vdXMgVk1fQklORCBtYXkgYmxvY2sgYW5k IHdhaXQgZm9yIEdQVSBvcGVyYXRpb25zOw0KPiA+ID4gK2ZvciBleGFtcGxlIHN3YXAtaW4gb3Ig Y2xlYXJpbmcsIG9yIGV2ZW4gcHJldmlvdXMgYmluZHMuDQo+ID4gPiArDQo+ID4gPiArQXN5bmNo cm9ub3VzIFZNX0JJTkQNCj4gPiA+ICtfX19fX19fX19fX19fX19fX19fXw0KPiA+ID4gK0FzeW5j aHJvbm91cyBWTV9CSU5EIGFjY2VwdHMgYm90aCBpbi1zeW5jb2JqcyBhbmQgb3V0LXN5bmNvYmpz LiBXaGlsZSB0aGUNCj4gPiA+ICtJT0NUTCBtYXkgcmV0dXJuIGltbWVkaWF0ZWx5LCB0aGUgVk1f QklORCBvcGVyYXRpb25zIHdhaXQgZm9yIHRoZSBpbi1zeW5jb2Jqcw0KPiA+ID4gK2JlZm9yZSBt b2RpZnlpbmcgdGhlIEdQVSBwYWdlLXRhYmxlcywgYW5kIHNpZ25hbCB0aGUgb3V0LXN5bmNvYmpz IHdoZW4NCj4gPiA+ICt0aGUgbW9kaWZpY2F0aW9uIGlzIGRvbmUgaW4gdGhlIHNlbnNlIHRoYXQg dGhlIG5leHQgZXhlYyBmdW5jdGlvbiB0aGF0DQo+ID4gPiArYXdhaXRzIGZvciB0aGUgb3V0LXN5 bmNvYmpzIHdpbGwgc2VlIHRoZSBjaGFuZ2UuIEVycm9ycyBhcmUgcmVwb3J0ZWQNCj4gPiA+ICtz eW5jaHJvbm91c2x5IGFzc3VtaW5nIHRoYXQgdGhlIGFzeW5jaHJvbm91cyBwYXJ0IG9mIHRoZSBq b2IgbmV2ZXIgZXJyb3JzLg0KPiA+IA0KPiA+IFRoZXJlJ3MgYSBzbWFsbCBkZWdyZWUgb2YgdW5j ZXJ0YWludHkgaGVyZSwgd2hpY2ggSSB0aGluayB3ZSBjYW4NCj4gPiBlbGltaW5hdGUuIENhbiB5 b3UgcGxlYXNlIG1ha2UgdGhlIHRleHQgY2xlYXJlcj8gRG8geW91IG1lYW4gInNvbWUNCj4gPiBl cnJvcnMgd2lsbCBiZSByZXBvcnRlZCBzeW5jaHJvbm91c2x5IGJ1dCBzb21lIG90aGVycyB3b24n dCI/IEluIHdoYXQNCj4gPiBjb25kaXRpb25zIGNhbiB0aGUgYXN5bmMgcGFydCBlcnJvcj8NCj4g DQo+ICJhc3N1bWluZyB0aGF0IHRoZSBhc3luY2hyb25vdXMgcGFydCBvZiB0aGUgam9iICoqKm5l dmVyKioqIGVycm9ycyINCj4gDQo+IEVycm9ycyBhcmUgb25seSByZXBvcnRlZCBzeW5jaHJvbm91 c2x5Lg0KDQpUaGlzIGlzIGRvY3VtZW50YXRpb24sIHRoYXQgImFzc3VtcHRpb24iIHRoZXJlIHJl YWxseSB0aHJvd3MgdGhpbmdzIHVwDQppbiB0aGUgYWlyLiBXZSBuZWVkIGEgcHJlY2lzZSBzdGF0 ZW1lbnQ6IGNhbiB0aGluZ3MgRVZFUiBmYWlsIGFmdGVyIHRoZQ0KaW9jdGwgcmV0dXJucz8gSWYg eWVzLCBob3cgY2FuIHVzZXIgc3BhY2Uga25vdyBhYm91dCBpdCBhbmQgaG93IHNob3VsZA0KaXQg cHJvY2VlZD8gSWYgbm8sIHBsZWFzZSBhZGp1c3QgdGhlIHRleHQuIElzIGl0IHRoZSBjYXNlIHRo YXQgc29tZQ0KZHJpdmVycyBjYW4gYnV0IG90aGVycyBjYW4ndD8gV2hpY2ggb25lcz8NCg0KDQo+ IA0KPiA+IA0KPiA+IA0KPiA+ID4gK0luIGxvdy1tZW1vcnkgc2l0dWF0aW9ucyB0aGUgaW1wbGVt ZW50YXRpb24gbWF5IGJsb2NrLCBwZXJmb3JtaW5nIHRoZQ0KPiA+ID4gK1ZNX0JJTkQgc3luY2hy b25vdXNseSwgYmVjYXVzZSB0aGVyZSBtaWdodCBub3QgYmUgZW5vdWdoIG1lbW9yeQ0KPiA+ID4g K2ltbWVkaWF0ZWx5IGF2YWlsYWJsZSBmb3IgcHJlcGFyaW5nIHRoZSBhc3luY2hyb25vdXMgb3Bl cmF0aW9uLg0KPiA+ID4gKw0KPiA+ID4gK0lmIHRoZSBWTV9CSU5EIElPQ1RMIHRha2VzIGEgbGlz dCBvciBhbiBhcnJheSBvZiBvcGVyYXRpb25zIGFzIGFuIGFyZ3VtZW50LA0KPiA+ID4gK3RoZSBp bi1zeW5jb2JqcyBuZWVkcyB0byBzaWduYWwgYmVmb3JlIHRoZSBmaXJzdCBvcGVyYXRpb24gc3Rh cnRzIHRvDQo+ID4gPiArZXhlY3V0ZSwgYW5kIHRoZSBvdXQtc3luY29ianMgc2lnbmFsIGFmdGVy IHRoZSBsYXN0IG9wZXJhdGlvbg0KPiA+ID4gK2NvbXBsZXRlcy4gT3BlcmF0aW9ucyBpbiB0aGUg b3BlcmF0aW9uIGxpc3QgY2FuIGJlIGFzc3VtZWQsIHdoZXJlIGl0DQo+ID4gPiArbWF0dGVycywg dG8gY29tcGxldGUgaW4gb3JkZXIuDQo+ID4gPiArDQo+ID4gPiArU2luY2UgYXN5bmNocm9ub3Vz IFZNX0JJTkQgb3BlcmF0aW9ucyBtYXkgdXNlIGRtYS1mZW5jZXMgZW1iZWRkZWQgaW4NCj4gPiA+ ICtvdXQtc3luY29ianMgYW5kIGludGVybmFsbHkgaW4gS01EIHRvIHNpZ25hbCBiaW5kIGNvbXBs ZXRpb24sICBhbnkNCj4gPiA+ICttZW1vcnkgZmVuY2VzIGdpdmVuIGFzIFZNX0JJTkQgaW4tZmVu Y2VzIG5lZWQgdG8gYmUgYXdhaXRlZA0KPiA+ID4gK3N5bmNocm9ub3VzbHkgYmVmb3JlIHRoZSBW TV9CSU5EIGlvY3RsIHJldHVybnMsIHNpbmNlIGRtYS1mZW5jZXMsDQo+ID4gPiArcmVxdWlyZWQg dG8gc2lnbmFsIGluIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgdGltZSwgY2FuIG5ldmVyIGJlIG1h ZGUNCj4gPiA+ICt0byBkZXBlbmQgb24gbWVtb3J5IGZlbmNlcyB0aGF0IGRvbid0IGhhdmUgc3Vj aCBhIHJlc3RyaWN0aW9uLg0KPiA+ID4gKw0KPiA+ID4gK1RvIGFpZCBpbiBzdXBwb3J0aW5nIHVz ZXItc3BhY2UgcXVldWVzLCB0aGUgVk1fQklORCBtYXkgdGFrZSBhIGJpbmQgY29udGV4dC4NCj4g PiA+ICsNCj4gPiA+ICtUaGUgcHVycG9zZSBvZiBhbiBBc3luY2hyb25vdXMgVk1fQklORCBvcGVy YXRpb24gaXMgZm9yIHVzZXItbW9kZQ0KPiA+ID4gK2RyaXZlcnMgdG8gYmUgYWJsZSB0byBwaXBl bGluZSBpbnRlcmxlYXZlZCBncHVfdm0gbW9kaWZpY2F0aW9ucyBhbmQNCj4gPiA+ICtleGVjIGZ1 bmN0aW9ucy4gRm9yIGxvbmctcnVubmluZyB3b3JrbG9hZHMsIHN1Y2ggcGlwZWxpbmluZyBvZiBh IGJpbmQNCj4gPiA+ICtvcGVyYXRpb24gaXMgbm90IGFsbG93ZWQgYW5kIGFueSBpbi1mZW5jZXMg bmVlZCB0byBiZSBhd2FpdGVkDQo+ID4gPiArc3luY2hyb25vdXNseS4gVGhlIHJlYXNvbiBmb3Ig dGhpcyBpcyB0d29mb2xkLiBGaXJzdCwgYW55IG1lbW9yeQ0KPiA+ID4gK2ZlbmNlcyBnYXRlZCBi eSBhIGxvbmctcnVubmluZyB3b3JrbG9hZCBhbmQgdXNlZCBhcyBpbi1zeW5jb2JqcyBmb3IgdGhl DQo+ID4gPiArVk1fQklORCBvcGVyYXRpb24gd2lsbCBuZWVkIHRvIGJlIGF3YWl0ZWQgc3luY2hy b25vdXNseSBhbnl3YXkgKHNlZQ0KPiA+ID4gK2Fib3ZlKS4gU2Vjb25kLCBhbnkgZG1hLWZlbmNl cyB1c2VkIGFzIGluLXN5bmNvYmpzIGZvciBWTV9CSU5EDQo+ID4gPiArb3BlcmF0aW9ucyBmb3Ig bG9uZy1ydW5uaW5nIHdvcmtsb2FkcyB3aWxsIG5vdCBhbGxvdyBmb3IgcGlwZWxpbmluZw0KPiA+ ID4gK2FueXdheSBzaW5jZSBsb25nLXJ1bm5pbmcgd29ya2xvYWRzIGRvbid0IGFsbG93IGZvciBk bWEtZmVuY2VzIGFzDQo+ID4gPiArb3V0LXN5bmNvYmpzLCBzbyB3aGlsZSB0aGVvcmV0aWNhbGx5 IHBvc3NpYmxlIHRoZSB1c2Ugb2YgdGhlbSBpcw0KPiA+ID4gK3F1ZXN0aW9uYWJsZSBhbmQgc2hv dWxkIGJlIHJlamVjdGVkIHVudGlsIHRoZXJlIGlzIGEgdmFsdWFibGUgdXNlLWNhc2UuDQo+ID4g PiArTm90ZSB0aGF0IHRoaXMgaXMgbm90IGEgbGltaXRhdGlvbiBpbXBvc2VkIGJ5IGRtYS1mZW5j ZSBydWxlcywgYnV0DQo+ID4gPiArcmF0aGVyIGEgbGltaXRhdGlvbiBpbXBvc2VkIHRvIGtlZXAg S01EIGltcGxlbWVudGF0aW9uIHNpbXBsZS4gSXQgZG9lcw0KPiA+ID4gK25vdCBhZmZlY3QgdXNp bmcgZG1hLWZlbmNlcyBhcyBkZXBlbmRlbmNpZXMgZm9yIHRoZSBsb25nLXJ1bm5pbmcNCj4gPiA+ ICt3b3JrbG9hZCBpdHNlbGYsIHdoaWNoIGlzIGFsbG93ZWQgYnkgZG1hLWZlbmNlIHJ1bGVzLCBi dXQgcmF0aGVyIGZvcg0KPiA+ID4gK3RoZSBWTV9CSU5EIG9wZXJhdGlvbiBvbmx5Lg0KPiA+ID4g Kw0KPiA+ID4gK0Fsc28gZm9yIFZNX0JJTkRTIGZvciBsb25nLXJ1bm5pbmcgZ3B1X3ZtcyB0aGUg dXNlci1tb2RlIGRyaXZlciBzaG91bGQgdHlwaWNhbGx5DQo+ID4gPiArc2VsZWN0IG1lbW9yeSBm ZW5jZXMgYXMgb3V0LWZlbmNlcyBzaW5jZSB0aGF0IGdpdmVzIGdyZWF0ZXIgZmxleGliaWxpdHkg Zm9yDQo+ID4gPiArdGhlIGtlcm5lbCBtb2RlIGRyaXZlciB0byBpbmplY3Qgb3RoZXIgb3BlcmF0 aW9ucyBpbnRvIHRoZSBiaW5kIC8NCj4gPiA+ICt1bmJpbmQgb3BlcmF0aW9ucy4gTGlrZSBmb3Ig ZXhhbXBsZSBpbnNlcnRpbmcgYnJlYWtwb2ludHMgaW50byBiYXRjaA0KPiA+ID4gK2J1ZmZlcnMu IFRoZSB3b3JrbG9hZCBleGVjdXRpb24gY2FuIHRoZW4gZWFzaWx5IGJlIHBpcGVsaW5lZCBiZWhp bmQNCj4gPiA+ICt0aGUgYmluZCBjb21wbGV0aW9uIHVzaW5nIHRoZSBtZW1vcnkgb3V0LWZlbmNl IGFzIHRoZSBzaWduYWwgY29uZGl0aW9uDQo+ID4gPiArZm9yIGEgR1BVIHNlbWFwaG9yZSBlbWJl ZGRlZCBieSBVTUQgaW4gdGhlIHdvcmtsb2FkLg0KPiA+ID4gKw0KPiA+ID4gK011bHRpLW9wZXJh dGlvbiBWTV9CSU5EIElPQ1RMIGVycm9yIGhhbmRsaW5nIGFuZCBpbnRlcnJ1cHRzDQo+ID4gPiAr PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCj4gPiANCj4gPiBXaGF0IGRvIHlvdSBtZWFuIGJ5IG11bHRpLW9wZXJhdGlvbiBoZXJlPyBJ cyBpdCB3aGVyZSBJIHBhc3MgbXVsdGlwbGUNCj4gPiBhZGRyZXNzZXMgdG8gYSBzaW5nbGUgdm1f YmluZCBpb2N0bD8gSWYgeWVzLCB3aGVyZSBpcyB0aGUgc2VjdGlvbiBmb3INCj4gPiBzaW5nbGUt b3BlcmF0aW9uIGVycm9ycz8gV2hhdCBkaWZmZXJzIGJldHdlZW4gbXVsdGktb3BlcmF0aW9uIGFu ZA0KPiA+IHNpbmdsZS1vcGVyYXRpb24/DQo+IA0KPiBJIGRvbid0IGZlZWwgdGhhdCB3ZSBuZWVk IGEgc2luZ2xlLW9wZXJhdGlvbiBtb2RlLCBiZWNhdXNlIGlmIGl0IGZhaWxlZA0KPiBpdCBmYWls ZWQgYnkgaXRzZWxmIHdpdGhvdXQgZGVwZW5kZW5jeSB0cmFja2luZy4gVGhlIHByb2JsZW0gY29t ZXMgb25seQ0KPiBvbiB0aGUgbXVsdGktb3BlcmF0aW9uLg0KDQpUaGF0IGRvZXNuJ3QgYW5zd2Vy IG15IHF1ZXN0aW9uLiBJdCB3b3VsZCBiZSBnb29kIGlmIHRoZSB0ZXh0IHByZWNpc2VseQ0KZGVm aW5lZCB3aGF0IG11bHRpLW9wZXJhdGlvbiBtZWFucywgd2hhdCBzaW5nbGUtb3BlcmF0aW9uIG1l YW5zIGFuZCBob3cNCnRoaW5ncyBiZWhhdmUgZHVyaW5nIHNpbmdsZS1vcGVyYXRpb24uDQoNCg0K PiANCj4gPiANCj4gPiANCj4gPiA+ICsNCj4gPiA+ICtUaGUgVk1fQklORCBvcGVyYXRpb25zIG9m IHRoZSBJT0NUTCBtYXkgZXJyb3IgZHVlIHRvIGxhY2sgb2YgcmVzb3VyY2VzDQo+ID4gPiArdG8g Y29tcGxldGUgYW5kIGFsc28gZHVlIHRvIGludGVycnVwdGVkIHdhaXRzLiBJbiBib3RoIHNpdHVh dGlvbnMgVU1EDQo+ID4gDQo+ID4gRWFybGllciB5b3UgdGFsa2VkIGFib3V0IHR3byBjbGFzc2Vz IG9mIGVycm9yczogb25lcyB0aGF0IGdldCBzaWduYWxlZA0KPiA+IHdoZW4gdGhlIGlvY3RsIHJl dHVybnMsIGFuZCBvbmVzIHRoYXQgaGFwcGVuIGR1cmluZyB0aGUgImFzeW5jaHJvbm91cw0KPiA+ IHBhcnQgb2YgdGhlIGpvYiIuIEl0IHNlZW1zIGhlcmUgeW91J3JlIHRhbGtpbmcgYWJvdXQgdGhl IGZpcnN0LiBCdXQNCj4gPiB0aGVuLCB3aGF0IGFib3V0IHRoZSBzZWNvbmQgY2xhc3Mgb2YgZXJy b3JzPw0KPiANCj4gdGhlcmUncyBvbmx5IHN5bmNocm9ub3VzbHkgZXJyb3JzLg0KDQpEbyB5b3Ug bWVhbiAidGhlcmUgaXMgb25seSByZXBvcnRpbmcgZm9yIHN5bmNocm9ub3VzIGVycm9ycyIgb3Ig InRoZXJlDQpjYW4ndCBiZSBlcnJvcnMgaW4gdGhlIGFzeW5jaHJvbm91cyBwYXJ0Ij8NCg0KVGhl IHdob2xlIGRlc2NyaXB0aW9uIG9mICJ3aGVuIHRoaW5ncyBmYWlsLCB0aGUgc3lzdGVtIG1heSBi ZSBsZWZ0IGluDQphbiB1bmRlZmluZWQgc3RhdGUgd2hlcmUgb25seSBzb21lIG9wZXJhdGlvbnMg d2VyZSBkb25lIiBkb2Vzbid0IHNlZW0NCnRvIGFsaWduIHdpdGggd2hhdCBJIHdvdWxkIGV4cGVj dCBvZiBhICJnYXRoZXIgYWxsIHJlc291cmNlcyBlYXJsaWVyLA0KZmFpbCBpZiB3ZSBjYW4ndCwg dGhlbiBkbyB0aGluZ3MgYXN5bmNocm9ub3VzbHkgbGF0ZXIgaW4gYSB3YXkgd2hpY2gNCnRoZXkg Y2FuJ3QgZmFpbCIgbW9kZSwgYmVjYXVzZSAic29tZSB0aGluZ3MgY29tcGxldGVkIGFuZCBvdGhl cnMNCmRpZG4ndCwgYnV0IHlvdSBnb3QgYW4gZXJyb3IgY29kZSBzeW5jaHJvbm91c2x5IiBraW5k YSBzdWdnZXN0cyB0aGF0DQp0aGUgb3BlcmF0aW9uIHdhcyBzeW5jaHJvbm91cyBpbnN0ZWFkIG9m IGFzeW5jaHJvbm91cywgdW5sZXNzIHRoZXJlJ3MgYQ0Kd2F5IG9mICB0cmF2ZWxpbmcgYmFjayBp biB0aW1lIHRvIGdpdmUgdGhlIGVycm9yIGJlZm9yZSB0aGUgaW9jdGwNCnJldHVybmVkLCBvciBJ J20gd2F5IG9mZiBpbiBteSBpbnRlcnByZXRhdGlvbi4NCg0KPiANCj4gPiANCj4gPiANCj4gPiAN Cj4gPiA+ICtzaG91bGQgcHJlZmVyYWJseSByZXN0YXJ0IHRoZSBJT0NUTCBhZnRlciB0YWtpbmcg c3VpdGFibGUgYWN0aW9uLiBJZg0KPiA+ID4gK1VNRCBoYXMgb3Zlci1jb21taXR0ZWQgYSBtZW1v cnkgcmVzb3VyY2UsIGFuIC1FTk9TUEMgZXJyb3Igd2lsbCBiZQ0KPiA+ID4gK3JldHVybmVkLCBh bmQgVU1EIG1heSB0aGVuIHVuYmluZCByZXNvdXJjZXMgdGhhdCBhcmUgbm90IHVzZWQgYXQgdGhl DQo+ID4gPiArbW9tZW50IGFuZCByZXN0YXJ0IHRoZSBJT0NUTC4gT24gLUVJTlRSLCBVTUQgc2hv dWxkIHNpbXBseSByZXN0YXJ0IHRoZQ0KPiA+ID4gK0lPQ1RMIGFuZCBvbiAtRU5PTUVNIHVzZXIt c3BhY2UgbWF5IGVpdGhlciBhdHRlbXB0IHRvIGZyZWUga25vd24NCj4gPiA+ICtzeXN0ZW0gbWVt b3J5IHJlc291cmNlcyBvciBhYm9ydCB0aGUgb3BlcmF0aW9uLiBJZiBhYm9ydGluZyBhcyBhDQo+ ID4gPiArcmVzdWx0IG9mIGEgZmFpbGVkIG9wZXJhdGlvbiBpbiBhIGxpc3Qgb2Ygb3BlcmF0aW9u cywgc29tZSBvcGVyYXRpb25zDQo+ID4gPiArbWF5IHN0aWxsIGhhdmUgY29tcGxldGVkLCBhbmQg dG8gZ2V0IGJhY2sgdG8gYSBrbm93biBzdGF0ZSwgdXNlci1zcGFjZQ0KPiA+ID4gK3Nob3VsZCB0 aGVyZWZvcmUgYXR0ZW1wdCB0byB1bmJpbmQgYWxsIHZpcnR1YWwgbWVtb3J5IHJlZ2lvbnMgdG91 Y2hlZA0KPiA+ID4gK2J5IHRoZSBmYWlsaW5nIElPQ1RMLg0KPiA+ID4gK1VuYmluZCBvcGVyYXRp b25zIGFyZSBndWFyYW50ZWVkIG5vdCB0byBjYXVzZSBhbnkgZXJyb3JzIGR1ZSB0bw0KPiA+ID4g K3Jlc291cmNlIGNvbnN0cmFpbnRzLg0KPiA+ID4gK0luIGJldHdlZW4gYSBmYWlsZWQgVk1fQklO RCBJT0NUTCBhbmQgYSBzdWNjZXNzZnVsIHJlc3RhcnQgdGhlcmUgbWF5DQo+ID4gDQo+ID4gV2Fp dCBhIG1pbnV0ZSwgdGhlIHBhcmFncmFwaHMgYWJvdmUganVzdCBzYXkgImlmIHRoaW5ncyBmYWls LCB0cnkNCj4gPiBjbGVhcmluZyByZXNvdXJjZXMgYW5kIHRoZW4gdHJ5IGFnYWluIi4gV2hhdCBj b25zdGl0dXRlcyBvZiBhDQo+ID4gInN1Y2Nlc3NmdWwgcmVzdGFydCI/IElzIHRoZXJlIHNvbWUg a2luZCBvZiBzdGF0ZSBtYWNoaW5lIGludm9sdmVkPyBJcw0KPiA+IHRoaXMgdGFsa2luZyBhYm91 dCBlcnJvcnMgYWZ0ZXIgdGhlIGlvY3RsIHJldHVybnM/IFdoeSBkb24ndCBlcnJvcnMNCj4gPiBz aW1wbHkgdW5kbyBldmVyeXRoaW5nIGFuZCBsZWF2ZSB1c2VyIHNwYWNlIGluIHRoZSBzYW1lIHN0 YXRlIGFzIGJlZm9yZQ0KPiA+IHRoZSBpb2N0bD8NCj4gDQo+IFRoaXMgaXMgZXhhY3RseSB0aGUg Ik9wZW46IiBkb2N1bWVudGVkIGJlbG93Lg0KPiANCj4gPiANCj4gPiANCj4gPiA+ICtiZSBpbXBs ZW1lbnRhdGlvbiBkZWZpbmVkIHJlc3RyaWN0aW9ucyBvbiB0aGUgdXNlIG9mIHRoZSBncHVfdm0u IEZvciBhDQo+ID4gPiArZGVzY3JpcHRpb24gd2h5LCBwbGVhc2Ugc2VlIEtNRCBpbXBsZW1lbnRh dGlvbiBkZXRhaWxzIHVuZGVyIGBlcnJvcg0KPiA+ID4gK3N0YXRlIHNhdmluZ2BfLg0KPiA+ID4g Kw0KPiA+ID4gK1NhbXBsZSB1QVBJIGltcGxlbWVudGF0aW9ucw0KPiA+ID4gKz09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KPiA+ID4gK1N1Z2dlc3RlZCB1QVBJIGltcGxlbWVudGF0aW9ucyBh dCB0aGUgbW9tZW50IG9mIHdyaXRpbmcgY2FuIGJlIGZvdW5kIGZvcg0KPiA+ID4gK3RoZSBOb3V2 ZWF1IGRyaXZlciBgaGVyZQ0KPiA+ID4gKzxodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5v cmcvcGF0Y2gvNTQzMjYwLz9zZXJpZXM9MTEyOTk0JnJldj02PmBfLg0KPiA+ID4gK2FuZCBmb3Ig dGhlIFhlIGRyaXZlciBgaGVyZQ0KPiA+ID4gKzxodHRwczovL2NnaXQuZnJlZWRlc2t0b3Aub3Jn L2RybS9kcm0teGUvZGlmZi9pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oP2g9ZHJtLXhlLW5leHQm aWQ9OWNiMDE2ZWJiYjZhMjc1ZjU3YjFjYjUxMmI5NWQ1YTg0MjM5MWFkNz5gXy4NCj4gPiA+ICsN Cj4gPiA+ICtLTUQgaW1wbGVtZW50YXRpb24gZGV0YWlscw0KPiA+ID4gKz09PT09PT09PT09PT09 PT09PT09PT09PT09DQo+ID4gPiArDQo+ID4gPiArRXJyb3Igc3RhdGUgc2F2aW5nDQo+ID4gPiAr X19fX19fX19fX19fX19fX19fDQo+ID4gPiArT3BlbjogV2hlbiB0aGUgVk1fQklORCBJT0NUTCBy ZXR1cm5zIGFuIGVycm9yLCBzb21lIG9yIGV2ZW4gcGFydHMgb2YNCj4gDQo+ICAgICAgXiBOb3Rl IHRoZSAiT3BlbjoiIGhlcmUuDQo+IA0KPiA+ID4gK2FuIG9wZXJhdGlvbiBtYXkgaGF2ZSBiZWVu IGNvbXBsZXRlZC4gSWYgdGhlIElPQ1RMIGlzIHJlc3RhcnRlZCwgaW4NCj4gPiA+ICtvcmRlciB0 byBrbm93IHdoZXJlIHRvIHJlc3RhcnQsIHRoZSBLTUQgY2FuIGVpdGhlciBwdXQgdGhlIGdwdV92 bSBpbg0KPiA+ID4gK2FuIGVycm9yIHN0YXRlIGFuZCBzYXZlIG9uZSBpbnN0YW5jZSBvZiB0aGUg bmVlZGVkIHJlc3RhcnQgc3RhdGUNCj4gPiA+ICtpbnRlcm5hbGx5LiBJbiB0aGlzIGNhc2UsIEtN RCBuZWVkcyB0byBibG9jayBmdXJ0aGVyIG1vZGlmaWNhdGlvbnMgb2YNCj4gPiA+ICt0aGUgZ3B1 X3ZtIHN0YXRlIHRoYXQgbWF5IGNhdXNlIGFkZGl0aW9uYWwgZmFpbHVyZXMgcmVxdWlyaW5nIGEN Cj4gPiA+ICtyZXN0YXJ0IHN0YXRlIHNhdmUsIHVudGlsIHRoZSBlcnJvciBoYXMgYmVlbiBmdWxs eSByZXNvbHZlZC4gSWYgdGhlDQo+ID4gPiArdUFQSSBpbnN0ZWFkIGRlZmluZXMgYSBwb2ludGVy IHRvIGEgVU1EIGFsbG9jYXRlZCBjb29raWUgaW4gdGhlIElPQ1RMDQo+ID4gPiArc3RydWN0LCBp dCBjb3VsZCBhbHNvIGNob29zZSB0byBzdG9yZSB0aGUgcmVzdGFydCBzdGF0ZSBpbiB0aGF0IGNv b2tpZS4NCj4gPiANCj4gPiBPaywgc28gdGhlcmUgaXMgc29tZSBraW5kIG9mIHN0YXRlIG1hY2hp bmUgaGVyZSwgYnV0IGVpdGhlciBJIGRvbid0DQo+ID4gdW5kZXJzdGFuZCBvciBpdCdzIG5vdCBm dWxseSBleHBsYWluZWQuIFRoaXMgd2hvbGUgInJlc3RhcnQgc3RhdGUiIHBhcnQNCj4gPiBpcyBj b25mdXNpbmcgdG8gbWUsIHBsZWFzZSBjbGFyaWZ5Lg0KPiANCj4gSXQgaXMgYW4gb3BlbiB0aGF0 IHdlIHN0aWxsIG5lZWQgdG8gZGVmaW5lLi4uDQo+IA0KPiA+IA0KPiA+IA0KPiA+ID4gKw0KPiA+ ID4gK1RoZSByZXN0YXJ0IHN0YXRlIG1heSwgZm9yIGV4YW1wbGUsIGJlIHRoZSBudW1iZXIgb2Yg c3VjY2Vzc2Z1bGx5DQo+ID4gPiArY29tcGxldGVkIG9wZXJhdGlvbnMuDQo+ID4gPiArDQo+ID4g PiArRWFzaWVzdCBmb3IgVU1EIHdvdWxkIG9mIGNvdXJzZSBiZSBpZiBLTUQgZGlkIGEgZnVsbCB1 bndpbmQgb24gZXJyb3INCj4gPiA+ICtzbyB0aGF0IG5vIGVycm9yIHN0YXRlIG5lZWRzIHRvIGJl IHNhdmVkLg0KPiA+IA0KPiA+IEJ1dCBkb2VzIEtNRCBkbyBpdD8gQXMgYSBVTUQgcGVyc29uLCB3 aGF0IHNob3VsZCBJIGV4cGVjdD9cDQo+IA0KPiBpdCBpcyBhbiBvcGVuIHF1ZXN0aW9uLiBJIGJl bGlldmUgd2Ugc2hvdWxkIHJld2luZCBhbGwgdGhlIG9wZXJhdGlvbnMNCj4gaW4gdGhlIHNhbWUg aW9jdGwuIFBvc3NpYmxlPyBFYXN5PyBJIGRvbid0IGtub3csIGJ1dCBpdCB3b3VsZCBiZSBnb29k DQo+IHRvIGhhdmUgVU1EIGlucHV0IGhlcmUuDQoNCkFzIHNvbWVvbmUgd2hvJ3Mgd3JpdGluZyB1 c2VyLXNwYWNlLCBmb3IgbXkgY2FzZSBJIGRvbid0IGtub3cgaWYNCnRoZXJlJ3MgYW55dGhpbmcg SSBjYW4gZG8gYmVzaWRlcyB1bmRvaW5nIGFueXRoaW5nIHRoZSBLZXJuZWwgaGFzIGRvbmUNCmFu ZCByZXR1cm4gZmFpbHVyZSBob3BpbmcgdGhlIHVwcGVyIGxheWVycyBvZiB0aGUgc3RhY2sgcnVu IHNvbWUga2luZA0Kb2YgZ2FyYmFnZSBjb2xsZXRvciBvciBqdXN0IGhhdmUgYmV0dGVyIGx1Y2sg dGhlIG5leHQgZnJhbWUuwqBTbyBlaXRoZXINCnRoZSBLZXJuZWwgZG9lcyBpdCBmb3IgbWUsIG9y IEknbGwgaGF2ZSB0byB3cml0ZSBjb2RlIHRvIGRvIGl0IG15c2VsZiwNCmJ1dCB0aGUgS2VybmVs IGlzIHByb2JhYmx5IGluIGEgKndheSogYmV0dGVyIHBvc2l0aW9uIHRvIHJldmVydCBzdGF0ZQ0K YmFjayB0byB0aGUgcG9pbnQgd2hlcmUgaXQgd2FzIGJlZm9yZSBJIGlzc3VlIHRoZSBpb2N0bCwg YXNzdW1pbmcgdGhlDQplcnJvciBhY3R1YWxseSBoYXBwZW5zIGJlZm9yZSB0aGUgaW9jdGwgcmV0 dXJucy4gQW5kIGlmIGVycm9ycyBjYW4NCmhhcHBlbiBhc3luY2hyb25vdXNseSwgSSBqdXN0IGhh dmUgbm8gaWRlYSBob3cgdG8gZml4IHRoaW5ncywgcGVyaGFwcw0KdGhlcmUncyBub3QgbXVjaCBi ZXNpZGVzIGRvaW5nIHdoYXQgd2UgZG8gd2hlbiB3ZSBnZXQgYSBHUFUgaGFuZy4NCg0KWW91IHN1 Z2dlc3RlZCBlcnJvcnMgY2FuIG9ubHkgaGFwcGVuIHN5bmNocm9ub3VzbHksIGJ1dCBpZiB0aGF0 J3MgdGhlDQpjYXNlIHdoeSBkbyB3ZSBldmVuIGhhdmUgdGhpcyBhcHBhcmVudCBzdGF0ZSBtYWNo aW5lPyBIb3cgZG9lcyBpdCBoZWxwDQp0byBiZSBwdXQgaW4gYSByZXN0cmljdGVkIHN0YXRlIHdo ZXJlIHlvdSBuZWVkIHRvIGRlYWwgd2l0aCB1bmJpbmRzIGluDQphIGRpZmZlcmVudCB3YXksIGlu c3RlYWQgb2YganVzdCBhbGxvd2luZyBtZSB0byBkbyB1bmJpbmRzIG5vcm1hbGx5Pw0KV2hhdCBk byB3ZSBnYWluIHdpdGggdGhlIHN0YXRlIG1hY2hpbmU/IFdoYXQgY2FzZSBkb2VzIGl0IGhlbHA/ DQoNCj4gDQo+IFNob3VsZCBLTUQgcmV3aW5kIGV2ZXJ5dGhpbmcgdGhhdCBzdWNjZWRkZWQgYmVm b3JlIHRoZSBlcnJvcj8gb3INCj4gaGF2ZSB0aGUgY29va2llIGlkZWEgYW5kIGJsb2NrIGFsbCB0 aGUgZnVydGhlciBvcGVyYXRpb25zIG9uIHRoYXQNCj4gdm0gdW5sZXNzIGlmIHRoZSBjb29raWUg aW5mb3JtYXRpb24gaXMgdmFsaWQ/DQo+IA0KPiA+IA0KPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZ3B1L3JmYy94ZS5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9yZmMveGUu cnN0DQo+ID4gPiBpbmRleCAyNTE2ZmUxNDFkYjYuLjBmMDYyZTEzNDZkMiAxMDA2NDQNCj4gPiA+ IC0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L3JmYy94ZS5yc3QNCj4gPiA+ICsrKyBiL0RvY3VtZW50 YXRpb24vZ3B1L3JmYy94ZS5yc3QNCj4gPiA+IEBAIC0xMzgsOCArMTM4LDggQEAgbWVtb3J5IGZl bmNlcy4gSWRlYWxseSB3aXRoIGhlbHBlciBzdXBwb3J0IHNvIHBlb3BsZSBkb24ndCBnZXQgaXQg d3JvbmcgaW4gYWxsDQo+ID4gPiAgcG9zc2libGUgd2F5cy4NCj4gPiA+ICANCj4gPiA+ICBBcyBh IGtleSBtZWFzdXJhYmxlIHJlc3VsdCwgdGhlIGJlbmVmaXRzIG9mIEFTWU5DIFZNX0JJTkQgYW5k IGEgZGlzY3Vzc2lvbiBvZg0KPiA+ID4gLXZhcmlvdXMgZmxhdm9ycywgZXJyb3IgaGFuZGxpbmcg YW5kIGEgc2FtcGxlIEFQSSBzaG91bGQgYmUgZG9jdW1lbnRlZCBoZXJlIG9yIGluDQo+ID4gPiAt YSBzZXBhcmF0ZSBkb2N1bWVudCBwb2ludGVkIHRvIGJ5IHRoaXMgZG9jdW1lbnQuDQo+ID4gPiAr dmFyaW91cyBmbGF2b3JzLCBlcnJvciBoYW5kbGluZyBhbmQgc2FtcGxlIEFQSSBzdWdnZXN0aW9u cyBhcmUgZG9jdW1lbnRlZCBpbg0KPiA+ID4gK0RvY3VtZW50YXRpb24vZ3B1L2RybS12bS1iaW5k LWFzeW5jLnJzdA0KPiA+ID4gIA0KPiA+ID4gIFVzZXJwdHIgaW50ZWdyYXRpb24gYW5kIHZtX2Jp bmQNCj4gPiA+ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gDQo+IA0KPiBX aGlsZSB3cml0aW5nIHRoaXMgYW5zd2VycyBJIGhhZCB0byByZWFkIGV2ZXJ5dGhpbmcgYWdhaW4u DQo+IEkgYWdyZWUgd2l0aCBEYW5pbG8gb24gZW5zdXJpbmcgd2UgZXhwbGljaXRseSBhZGQgdGhl ICd2aXJ0dWFsJw0KPiB0byB0aGUgZ3B1X3ZtIGRlc2NyaXB0aW9uLiBBbmQgd2l0aCB0aGF0Og0K PiANCj4gUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4N Cg==