Received: by 2002:a05:7412:6592:b0:d7:7d3a:4fe2 with SMTP id m18csp666786rdg; Thu, 10 Aug 2023 15:47:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHyYG8PIRiv00FeyvzOL1Ze6HrvGSH+QC3nhg3CNFfPpaNlPyDmy455C2V4uYaD031kMEKJ X-Received: by 2002:a05:6a20:be1b:b0:133:3682:3cdf with SMTP id ge27-20020a056a20be1b00b0013336823cdfmr302745pzb.11.1691707636391; Thu, 10 Aug 2023 15:47:16 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1691707636; cv=pass; d=google.com; s=arc-20160816; b=Rz59d1tkhYVxo9uBhTL72z2pRdewumNJ76Cnru0RN3kNZiL5Z4/Rss1Qw6bvdyRwde Ex6rqsp60d9GsiNVmRc1dKasMbDTSL/kvok0CY6OXuwl8IJ48KseyTGdbrULqNmRB3gy 48a3KswAdBLv/uudIbnDVazBhPMbkn8BIO2fGt47zLXQ1TIG4DtbsZsvgy3hNTYG0J89 U9DiiJVpRYdDUS64isuqaVcs2+SUlKTepjcX/NCQSYMvk1PtJrVravcaz/tRnwe/UXcM 82YTZrHDIMqLTqsF34VanmK50/I2VxciBw+D8Z2lUgKNdG652ebY3NFhSoBXi8B/W+s6 giyw== 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=SLZM7L1yNr98t+ZVGh+CkFoFx7IF3weMLfvKYUc0eZo=; fh=h2yZl3NkW7ngSaVRz3UVur/QBoEFYg6KFoVwrbrkgSg=; b=bqlhKAg2bO3C1rqD0gvtj2vaYtnpoVMaLdgqIyMXeiyagnwuOg/4BkVt8DGbSSVrCt Yd9vSGYh2khg99QXeFEbO5lXVM+l08zBMATPuj5E/a/keBWYUD8Jx6h6omA2jQV+kLif xj7kOAXaAwBm8Gjg1RCzBZi6NB7Nv/R4rNTKZT1aIlTzGHZ80skYCwFnfwTQpSYwegD6 mFiT726IZT4hT0zvmSF+8fPZUKx/tcRSGWa0VmP1fTtLvfmDLF4HIaaSYlu5cghwVifK 0YWS6OepgVPNX9OLp8Q5To4BhWXbFmkZnHD/yLHTryypDGWsQne4JpAaz4LHyvH4iXYL LPgA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="QzYFT/Di"; 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 e32-20020a630f20000000b00563deb65f93si2185401pgl.200.2023.08.10.15.47.03; Thu, 10 Aug 2023 15:47:16 -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="QzYFT/Di"; 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 S229757AbjHJUwE (ORCPT + 99 others); Thu, 10 Aug 2023 16:52:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60058 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229645AbjHJUwC (ORCPT ); Thu, 10 Aug 2023 16:52:02 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1FA332737 for ; Thu, 10 Aug 2023 13:52:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691700720; x=1723236720; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=SLZM7L1yNr98t+ZVGh+CkFoFx7IF3weMLfvKYUc0eZo=; b=QzYFT/Di8CFkhcWmOoKTObbESGfWN9zI0f9SSo54l0rWdXAA66jwZqZE 6b693ervGFdMF4Z7ajfwPdDszdeyzvcxBD7TJTg0RBuLmRR1/unnUn0g2 QFJrpb7MZTYCCdCfzmA+FwmakF/2LnaooCjgdiCZI9QywbG8HJZsu3NCW B3lK/Fk4YU7G7FMAmp07rfvw8sFFuy79gt7t8WqCzeMGf65QdQb/DGPSl Q+Dtdz0Rp9e7E4wWLSr1IV5xKjK5uWE+fCK8SBniAUll0jS9a2ehAtCVn s4Krz3S4TTSEkYw9bLtxzwvXDURs4f7tsegav8g7Uz9NzKYTUm9+nx0zs Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10798"; a="370424037" X-IronPort-AV: E=Sophos;i="6.01,163,1684825200"; d="scan'208";a="370424037" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Aug 2023 13:51:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10798"; a="846540394" X-IronPort-AV: E=Sophos;i="6.01,163,1684825200"; d="scan'208";a="846540394" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga002.fm.intel.com with ESMTP; 10 Aug 2023 13:51:57 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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; Thu, 10 Aug 2023 13:51:57 -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; Thu, 10 Aug 2023 13:51:57 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170) 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; Thu, 10 Aug 2023 13:51:56 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RasETmlL/v5t95XoRSUu5H3RPc5VZLSIgI9CBjwdQxvZRBNDbqqmneFrl/m7m0PcyhdYzUQEweanpPWin5rNEgAx51BWPU0HNlbF8YDVMNE8p+8Krev3Yr8OHpR6xMRWc5kJzmtF5SLIrpRXtOUSTTdHTjiJKEBK7K0LTUkqRAktQytX/MwsNCdF9VHllQZsEL9q1pLiEWy+tF2nhHqC8cYTkZrsED/+AtpjVZxg3FyOjD4TkzbOF+L+rcUTQdyOFwF4Avg2vhmju2HhOOPXFjw0JniRacCRIlortH3QCvu3zOVjwoKI/Yy4Vv5Eu9WLK6o2J2mooova70gVJgDeIg== 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=SLZM7L1yNr98t+ZVGh+CkFoFx7IF3weMLfvKYUc0eZo=; b=MuG3vtoVFnFduVuaSzJTXeI6f+/gabMK9qQVP1XAsOSMWRBSfb5Frc0CvO1tBWLXn6t182ZkZv0p70rCdu6PnhUC3xWEN5/P9iyJlEiX8fWTN/vkrnOFhFnmRmh4zJcCpqjIuJjJTK3md6CLt+IFXkSF/Y34cB47xhYPJTIO9HfM+ayJedCVwGsiTL98MGwr4K9c4IAkNi/LEQqzLtX7MjA6WtMAXmSfeY8aZ5CxoL6+8OI2sghVXRgs9jcA1p7LjL07yERMGDg+rozryODvhCe4LLSwdj/gtLQ2Lq9vKYvxP0eNgcA48od2Kcf4ow5toK40/UlZVW5A/9BiB+6V7A== 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 SA2PR11MB5019.namprd11.prod.outlook.com (2603:10b6:806:f8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.28; Thu, 10 Aug 2023 20:51:54 +0000 Received: from CO6PR11MB5620.namprd11.prod.outlook.com ([fe80::36b9:595a:987a:1351]) by CO6PR11MB5620.namprd11.prod.outlook.com ([fe80::36b9:595a:987a:1351%3]) with mapi id 15.20.6652.029; Thu, 10 Aug 2023 20:51:54 +0000 From: "Zanoni, Paulo R" To: "Vivi, Rodrigo" , "thomas.hellstrom@linux.intel.com" 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" , "linux-kernel@vger.kernel.org" , "daniel@ffwll.ch" 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/BhhmAgBkopYCAABiZgIAJUbGAgAARjIA= Date: Thu, 10 Aug 2023 20:51:54 +0000 Message-ID: References: <20230715154543.13183-1-thomas.hellstrom@linux.intel.com> <50419f5bf1e3e5238cce2d71fd2e100cb7bc3364.camel@intel.com> <68891fe4-7bbb-be0b-d022-5772bc45d15a@linux.intel.com> In-Reply-To: <68891fe4-7bbb-be0b-d022-5772bc45d15a@linux.intel.com> 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_|SA2PR11MB5019:EE_ x-ms-office365-filtering-correlation-id: c33c4114-3bf0-42e7-736d-08db99e3a102 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eIzTW9C1O7XcGx+NUzducJguVmGQ9SDfJUzEQp5aPzAMMKZnEbvN1oA8Nt2X005hZzBHkab5C08jsSaOQDGdbF8bi8PUmEU4D1k4GAyG8ksjl4dbmXmfWQqAf8i9Y4Y9UVGjGMv1q8bypaN9R6CWh29acsbma//weSUrAq2iDIWnM5Nra20PG9ALMyDXL5Vf95M8RQk9K/t9bEVKeSOw9k6ilc2WWONUgO7v4Oxwz9S3PymrYtStO76TYzCSACBG9wudOQb7AKsKhVSP6z5dMDy/fZJJw2JAW/0oP3a25BEM7Ac82ViI3Hjdk1hx9g6DmvpvjL/xcPpeELZ5mnAiFTt+0VnsEN9fjiPVp4GNyJOtuEFD4oiOEAgsdaN/8Vn0aHflGjcHX1x/ZTQX8Xc1OTHEK/PgtlaK1RADDEc7qMOkPWo0y20XPxQXluS3HxAEyKcvZwQ8fh+baSLj/Soh6dl9iHC58c5KTIxvR0NzNdUE6I82C4XJoiFniausq4kvr26BYq9m/PeVMmhK2bH5Fn0bcffGsZmv1mZo+3Sl9sKqVyHhcBJalxCoISvlxTbApk/wlyVmkhQpvgI0UKMmI++smkQ2/clwzEB7u905F9kDaMU3VWDZxUTfiDUpZEpX6pBsSkCxJTlIsLdUtUa1gQ== 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)(376002)(346002)(396003)(136003)(39860400002)(366004)(451199021)(1800799006)(186006)(66899021)(82960400001)(4326008)(316002)(66574015)(86362001)(8936002)(2906002)(36756003)(30864003)(122000001)(8676002)(38070700005)(5660300002)(38100700002)(110136005)(966005)(54906003)(41300700001)(6512007)(2616005)(83380400001)(66946007)(71200400001)(26005)(6506007)(53546011)(64756008)(76116006)(66556008)(6486002)(478600001)(66476007)(66446008)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VU5qOUV4b0tiTEtnUkpGWS9PSG1RVTA4cWxIZ0piQUd1S2ovOEZDK0tLSmla?= =?utf-8?B?eWt0dWVhUmJ3VkU0ZGZFRnYwRTNkSmZ2ZHNRZFlQR3ZmbTV2UVNYYkFIT1N2?= =?utf-8?B?Q0YxOWZIUnJBdWVnanp4ODhHRm5kU1BtUE1QQ01nUjlqTUppYUk3SFBXT1Q5?= =?utf-8?B?MTllelo3Yk1pZzFYclVaNlYwSldZczEyaUtxVXBnTUpqanVHWWFwSVNwZ1ZI?= =?utf-8?B?T1J2b21lcGo4SXBRTTFWbVE0eHYzWGVtc3p3UU5wa2FuUUpXOFRiTmtSbXd0?= =?utf-8?B?MVN0dGM4ekx4SXNNdTZ6ZC9tZ1BmMG5OQmJzb25Nd242MGF1WW52Wmh1VVEz?= =?utf-8?B?QVN5Y0txcXNRVm9Cd05hTHYrNlJjaDY2dUVYTGZrT3VSeVBhN2o5T1B1OEJ4?= =?utf-8?B?aVV4OHdJUk5GZ0k4dUcyclhVSlZiQUdTZTNxOVIwL21hK2VDUDN5NGdSYUJ0?= =?utf-8?B?NWRMK0h3U3VtQXJTeGZPTjV2UmpJRGZhbFMya0dQZCt5aXZ1LzVpMVJtendn?= =?utf-8?B?S3BtY25nbURCbzRVQ3NYZXhwaEZudEZXeGJBWndTTmhSY2U1U1pWQmlmWVhN?= =?utf-8?B?ZWJGUmtwcnFPZHVLM0x4S2V3d1NTSWZ6Z2lLOWVLSVRhbm51eHUrQ1JFQjJs?= =?utf-8?B?L2xiSnZSZVBPZE0xcUR4MkNaVVJVZERMVlFUcDBaWG8rRWlyR05OdnZkYlYr?= =?utf-8?B?T2lCTHl2aFZXRWc1c1dNaUdIQ2pRemxhejBYTEdMNTJEeU0vNG5SUHoyN2tJ?= =?utf-8?B?WlVLWk1EZXQ2bGhKWElPSzVmdS9Qc29DT1dKTkJyUkE1OWExNFJhSVh4U0Zm?= =?utf-8?B?VkUyeUJpV1V3RWM0NWtIUHNlbHlxeFptMWNLUEFlZTJTWERNWGRQOUdjb2lq?= =?utf-8?B?bGlhamNnTDRYTyt3Sk1mQ25UMis1N0ZYRXZzWm0xdmpFQkozTDhOT3lZM2Fk?= =?utf-8?B?Rk93MExIU0luNEdJUzhlazFVRXJnbkFsVjZ1NnZJRzFNbEF2UWtXeHI4TEtu?= =?utf-8?B?bjQ5M0VWWWFPeEtqcXpWbzlxWWFUVU1IVThqTm96M1VQVDRRK0FIUm0yaEI5?= =?utf-8?B?Q1lEeEhsTCtIL3hHc2k3M0NnVnU1L0hlRHdIcFl4Z2lIbnhKdVhJVEtySXFO?= =?utf-8?B?R2I5WG5vSkltay9zLzBqMXd1ciszM3R3TmxJZXdtRnc3WjlTR1J3Y2tWdTly?= =?utf-8?B?eG9DcHdCOUltcW5kWlNEQzlNNmt6MmdXRzF4Y3oyWGhHNzhXYmVrSkVWWDZH?= =?utf-8?B?UU9pM2psQnRtZlMwK0JMVW9Tb1ZRc0dOKzZxNFArME5pWWg4NmErc0doN1d4?= =?utf-8?B?V2Nqdy9Nclc1K2V3c1ZUS0tvQVRkcWR0NnR1cEN1d2NBVjRZYXVXNG54T09a?= =?utf-8?B?cGxNY0tNZ1AvdzgxU2hpdmtBS0NOeGJqMk0rOVJPUW5GcG1YOS84TDZjbU1G?= =?utf-8?B?ZG5GM1VXbVJZY2FQUklIQVFyWkR2RjRucTJ1akVkWEdHRVlucnBxTlZDb2pM?= =?utf-8?B?ZGJ1cVNhVnZzYVQrSE5rT0ltUzlmaWJHaUdXY3ZiUVUvclJKVTRNTzJOSENO?= =?utf-8?B?TE12UlU3SzNOR0xWakpDS2FsWkhMUWdWL1RTRzBkMWVqTVpKOGRxOVIyb243?= =?utf-8?B?MW8rWHFZdEI2THMzZ09PNXVwRnFtblh6amtTTmVHQTJKYWQxR2l4K2tGbTFr?= =?utf-8?B?RmdFWTVTV1ErT3piUmlRRlp0N2N6OXc0MnFMdm5nS3lHSEloalhiTW1EMEhT?= =?utf-8?B?V1pQa1JjWjRra1JLb0x0TWg4ZGxXL1U0QXBuN2QrdmFnV05naEVtdlowMEpJ?= =?utf-8?B?RkZqYVVaSitpaUJ0dXAzb0RCQ2xXWkFIdlZsUlhmbVpMdVc5cExMQlRIa201?= =?utf-8?B?VEwvOGZRVXdzaUNVT3A3bnhGZlg2UE41NmdSWTNNMkVUeC9NSzB1dDJxTnZO?= =?utf-8?B?OVhQdXphQ2grbUI3bFhyRXdRZlFld1Y1S2t1dE5wVVlBN1pzV2lHcjVBRXpa?= =?utf-8?B?S0oxUHBpK3BkVEJ1N0wrdnhEWC9zYTd6WDdRWmVjaE80WGVQSWFXUDhTS1Jq?= =?utf-8?B?VWNWa1VrbE9tZklnWFUraFlMTXJITzlmb1NXbzhnR1NlNTBXRVViM3l3S01G?= =?utf-8?B?alZ0R0JYd0xGZ0QvY0htamVSR1JQRnZUbk9CNS9jK21kaUY2NVBMNC85aUNj?= =?utf-8?B?V3c9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <01545775B939854280F16C471DC28134@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: c33c4114-3bf0-42e7-736d-08db99e3a102 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Aug 2023 20:51:54.0912 (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: JcqSjkrBzDMtpihgDVnVGu7egbcMnvIrBEFoGvKgiCYTGPZT2u8ty12urs8lpAk98cOQLYFeoXCCVHFMEBKxK4VPEL0FXFBVq9vf+efT8rI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5019 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_NONE 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 T24gVGh1LCAyMDIzLTA4LTEwIGF0IDIxOjQ5ICswMjAwLCBUaG9tYXMgSGVsbHN0csO2bSB3cm90 ZToNCj4gSGksIFBhdWxvLg0KPiANCj4gVGhhbmtzIGZvciByZXZpZXdpbmcuIEknZCBsaWtlIHRv IHRyeSBnaXZlIHNvbWUgYW5zd2VycyBiZWxvdy4NCj4gDQo+IE9uIDgvNC8yMyAyMzozMCwgWmFu b25pLCBQYXVsbyBSIHdyb3RlOg0KPiA+IE9uIEZyaSwgMjAyMy0wOC0wNCBhdCAxNjowMiAtMDQw MCwgUm9kcmlnbyBWaXZpIHdyb3RlOg0KPiA+ID4gT24gV2VkLCBKdWwgMTksIDIwMjMgYXQgMDc6 NTA6MjFQTSArMDAwMCwgWmFub25pLCBQYXVsbyBSIHdyb3RlOg0KPiA+ID4gPiBPbiBTYXQsIDIw MjMtMDctMTUgYXQgMTc6NDUgKzAyMDAsIFRob21hcyBIZWxsc3Ryw7ZtIHdyb3RlOg0KPiA+ID4g PiA+IEFkZCBhIG1vdGl2YXRpb24gZm9yIGFuZCBkZXNjcmlwdGlvbiBvZiBhc3luY2hyb25vdXMg Vk1fQklORCBvcGVyYXRpb24NCj4gPiA+ID4gSSB0aGluayBJIG1heSBoYXZlIG1pc3NlZCBzb21l IG90aGVyIGRvY3VtZW50YXRpb24sIHdoaWNoIHdvdWxkIGV4cGxhaW4NCj4gPiA+ID4gc29tZSBv ZiBteSBxdWVzdGlvbnMgYmVsb3csIHNvIHBsZWFzZSBiZSBwYXRpZW50IHdpdGggbXkNCj4gPiA+ ID4gbWlzdW5kZXJzdGFuZGluZ3MuIEJ1dCBoZXJlJ3MgYSByZXZpZXcgZnJvbSB0aGUgUE9WIG9m IGEgVU1EIHBlcnNvbi4NCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+IHYyOg0KPiA+ID4g PiA+IC0gRml4IHR5cG9zIChOaXJtb3kgRGFzKQ0KPiA+ID4gPiA+IC0gSW1wcm92ZSB0aGUgZGVz Y3JpcHRpb24gb2YgYSBtZW1vcnkgZmVuY2UgKE9hayBaZW5nKQ0KPiA+ID4gPiA+IC0gQWRkIGEg cmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudCBpbiB0aGUgWGUgUkZDLg0KPiA+ID4gPiA+IC0gQWRk IHBvaW50ZXJzIHRvIHNhbXBsZSB1QVBJIHN1Z2dlc3Rpb25zDQo+ID4gPiA+ID4gdjM6DQo+ID4g PiA+ID4gLSBBZGRyZXNzIHJldmlldyBjb21tZW50cyAoRGFuaWxvIEtydW1tcmljaCkNCj4gPiA+ ID4gPiAtIEZvcm1hdHRpbmcgZml4ZXMNCj4gPiA+ID4gPiB2NDoNCj4gPiA+ID4gPiAtIEFkZHJl c3MgdHlwb3MgKEZyYW5jb2lzIER1Z2FzdCkNCj4gPiA+ID4gPiAtIEV4cGxhaW4gd2h5IGluLWZl bmNlcyBhcmUgbm90IGFsbG93ZWQgZm9yIFZNX0JJTkQgb3BlcmF0aW9ucyBmb3IgbG9uZy0NCj4g PiA+ID4gPiAgICBydW5uaW5nIHdvcmtsb2FkcyAoTWF0dGhldyBCcm9zdCkNCj4gPiA+ID4gPiB2 NToNCj4gPiA+ID4gPiAtIE1vcmUgdHlwby0gYW5kIHN0eWxlIGZpeGluZw0KPiA+ID4gPiA+IC0g RnVydGhlciBjbGFyaWZ5IHRoZSBpbXBsaWNhdGlvbnMgb2YgZGlzYWxsb3dpbmcgaW4tZmVuY2Vz IGZvciBWTV9CSU5EDQo+ID4gPiA+ID4gICAgb3BlcmF0aW9ucyBmb3IgbG9uZy1ydW5uaW5nIHdv cmtsb2FkcyAoTWF0dGhldyBCcm9zdCkNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+ DQo+ID4gPiA+ID4gQWNrZWQtYnk6IE5pcm1veSBEYXMgPG5pcm1veS5kYXNAaW50ZWwuY29tPg0K PiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ICAgRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXZtLWJpbmQt YXN5bmMucnN0IHwgMTcxICsrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ICAgRG9j dW1lbnRhdGlvbi9ncHUvcmZjL3hlLnJzdCAgICAgICAgICAgIHwgICA0ICstDQo+ID4gPiA+ID4g ICAyIGZpbGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+ ID4gPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZ3B1L2RybS12bS1iaW5k LWFzeW5jLnJzdA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0 aW9uL2dwdS9kcm0tdm0tYmluZC1hc3luYy5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdm0t YmluZC1hc3luYy5yc3QNCj4gPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ IGluZGV4IDAwMDAwMDAwMDAwMC4uZDJiMDJhMzgxOThhDQo+ID4gPiA+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ID4gPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS12bS1iaW5kLWFzeW5jLnJz dA0KPiA+ID4gPiA+IEBAIC0wLDAgKzEsMTcxIEBADQo+ID4gPiA+ID4gKz09PT09PT09PT09PT09 PT09PT09DQo+ID4gPiA+ID4gK0FzeW5jaHJvbm91cyBWTV9CSU5EDQo+ID4gPiA+ID4gKz09PT09 PT09PT09PT09PT09PT09DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtOb21lbmNsYXR1cmU6DQo+ ID4gPiA+ID4gKz09PT09PT09PT09PT0NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyogYGBWUkFN YGA6IE9uLWRldmljZSBtZW1vcnkuIFNvbWV0aW1lcyByZWZlcnJlZCB0byBhcyBkZXZpY2UgbG9j YWwgbWVtb3J5Lg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArKiBgYGdwdV92bWBgOiBBIEdQVSBh ZGRyZXNzIHNwYWNlLiBUeXBpY2FsbHkgcGVyIHByb2Nlc3MsIGJ1dCBjYW4gYmUgc2hhcmVkIGJ5 DQo+ID4gPiA+ID4gKyAgbXVsdGlwbGUgcHJvY2Vzc2VzLg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiArKiBgYFZNX0JJTkRgYDogQW4gb3BlcmF0aW9uIG9yIGEgbGlzdCBvZiBvcGVyYXRpb25zIHRv IG1vZGlmeSBhIGdwdV92bSB1c2luZw0KPiA+ID4gPiA+ICsgIGFuIElPQ1RMLiBUaGUgb3BlcmF0 aW9ucyBpbmNsdWRlIG1hcHBpbmcgYW5kIHVubWFwcGluZyBzeXN0ZW0tIG9yDQo+ID4gPiA+ID4g KyAgVlJBTSBtZW1vcnkuDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsqIGBgc3luY29iamBgOiBB IGNvbnRhaW5lciB0aGF0IGFic3RyYWN0cyBzeW5jaHJvbml6YXRpb24gb2JqZWN0cy4gVGhlDQo+ ID4gPiA+ID4gKyAgc3luY2hyb25pemF0aW9uIG9iamVjdHMgY2FuIGJlIGVpdGhlciBnZW5lcmlj LCBsaWtlIGRtYS1mZW5jZXMgb3INCj4gPiA+ID4gPiArICBkcml2ZXIgc3BlY2lmaWMuIEEgc3lu Y29iaiB0eXBpY2FsbHkgaW5kaWNhdGVzIHRoZSB0eXBlIG9mIHRoZQ0KPiA+ID4gPiA+ICsgIHVu ZGVybHlpbmcgc3luY2hyb25pemF0aW9uIG9iamVjdC4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4g KyogYGBpbi1zeW5jb2JqYGA6IEFyZ3VtZW50IHRvIGEgVk1fQklORCBJT0NUTCwgdGhlIFZNX0JJ TkQgb3BlcmF0aW9uIHdhaXRzDQo+ID4gPiA+ID4gKyAgZm9yIHRoZXNlIGJlZm9yZSBzdGFydGlu Zy4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyogYGBvdXQtc3luY29iamBgOiBBcmd1bWVudCB0 byBhIFZNX0JJTkRfSU9DVEwsIHRoZSBWTV9CSU5EIG9wZXJhdGlvbg0KPiA+ID4gPiA+ICsgIHNp Z25hbHMgdGhlc2Ugd2hlbiB0aGUgYmluZCBvcGVyYXRpb24gaXMgY29tcGxldGUuDQo+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ICsqIGBgbWVtb3J5IGZlbmNlYGA6IEEgc3luY2hyb25pemF0aW9uIG9i amVjdCwgZGlmZmVyZW50IGZyb20gYSBkbWEtZmVuY2UuDQo+ID4gPiA+IFNpbmNlIHlvdSd2ZSBt ZW50aW9uZWQgaXQgdHdpY2UgaW4gdGhpcyBkb2N1bWVudCBhbHJlYWR5LCBmb3INCj4gPiA+ID4g Y29tcGxldGVuZXNzIHdvdWxkIHlvdSBtaW5kIGFsc28gZ2l2aW5nIGEgZGVmaW5pdGlvbiBmb3Ig ZG1hLWZlbmNlIGluDQo+ID4gPiA+IHdoYXQgaXQgcmVsYXRlcy9jb250cmFzdHMgdG8gdGhlIHJl c3Qgb2YgdGhlIHRleHQ/DQo+ID4gPiBNYXliZSB3b3J0aCBhIGxpbmsgdG8gdGhlIGRtYS1mZW5j ZSBkb2MgaXRzZWxmPw0KPiA+ID4gKHNvbWVob3cgbWFraW5nIHNwaGlueCB0byBwb2ludCBvdXQg dG8gZHJpdmVyLWFwaS9kbWEtYnVmLmh0bWwjZG1hLWZlbmNlcykNCj4gDQo+IFdpbGwgcmVzcGlu IGFuZCBhZGQgYSBsaW5rIHRvIHRoaXMuIFRoaXMgZG9jdW1lbnQgaW5kZWVkIGFzc3VtZXMgdGhl IA0KPiByZWFkZXIgaXMgc29tZXdoYXQgZmFtaWxpYXIgd2l0aCB0aGUgZG1hLWZlbmNlIGNvbmNl cHQuDQo+IA0KPiA+ID4gDQo+ID4gPiBCdXQgdGhlIGRpZmZlcmVuY2VzIGFyZSB3cml0dGVuIGJl bG93IFBhdWxvOg0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+ICsgIEEgbWVtb3J5IGZlbmNl IHVzZXMgdGhlIHZhbHVlIG9mIGEgc3BlY2lmaWVkIG1lbW9yeSBsb2NhdGlvbiB0byBkZXRlcm1p bmUNCj4gPiA+ID4gPiArICBzaWduYWxlZCBzdGF0dXMuIEEgbWVtb3J5IGZlbmNlIGNhbiBiZSBh d2FpdGVkIGFuZCBzaWduYWxlZCBieSBib3RoDQo+ID4gPiA+ID4gKyAgdGhlIEdQVSBhbmQgQ1BV LiBNZW1vcnkgZmVuY2VzIGFyZSBzb21ldGltZXMgcmVmZXJyZWQgdG8gYXMNCj4gPiA+ID4gPiAr ICB1c2VyLWZlbmNlcywgdXNlcnNwYWNlLWZlbmNlcyBvciBncHUgZnV0ZXhlcyBhbmQgZG8gbm90 IG5lY2Vzc2FyaWx5IG9iZXkNCj4gPiA+ID4gPiArICB0aGUgZG1hLWZlbmNlIHJ1bGUgb2Ygc2ln bmFsaW5nIHdpdGhpbiBhICJyZWFzb25hYmxlIGFtb3VudCBvZiB0aW1lIi4NCj4gPiA+ID4gPiAr ICBUaGUga2VybmVsIHNob3VsZCB0aHVzIGF2b2lkIHdhaXRpbmcgZm9yIG1lbW9yeSBmZW5jZXMg d2l0aCBsb2NrcyBoZWxkLg0KPiA+ID4gXg0KPiA+ID4gDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ICsqIGBgbG9uZy1ydW5uaW5nIHdvcmtsb2FkYGA6IEEgd29ya2xvYWQgdGhhdCBtYXkgdGFrZSBt b3JlIHRoYW4gdGhlDQo+ID4gPiA+ID4gKyAgY3VycmVudCBzdGlwdWxhdGVkIGRtYS1mZW5jZSBt YXhpbXVtIHNpZ25hbCBkZWxheSB0byBjb21wbGV0ZSBhbmQNCj4gPiA+ID4gV2hlcmUgaXMgdGhp cyBkZWxheSBkZWZpbmVkP8KgSXMgdGhpcyB0aGUgc2FtZSBhcyB0aGUgZ3B1aGFuZyB0aW1lcj8N Cj4gPiA+IGRtYS1mZW5jZSBkZWZpbmVzIGl0IGluIGEgdmVyeSAiY29vbCIgd2F5OiAicmVhc29u YWJsZSBhbW91bnQgb2YgdGltZSI6DQo+ID4gPiBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9o dG1sL2xhdGVzdC9kcml2ZXItYXBpL2RtYS1idWYuaHRtbCNkbWEtZmVuY2VzDQo+ID4gPiANCj4g PiA+IHNvLCBpbiBjb250cmFzdCwgbG9uZy1ydW5uaW5nIHdvcmtsb2FkIGlzICphbnl0aGluZyog YWJvdmUgdGhhdA0KPiA+ID4gInJlYXNvbmFibGUgYW1vdW50IG9mIHRpbWUiLg0KPiA+IFRoYXQg YW5zd2VycyBpdCBidXQgZG9lc24ndCBleGFjdGx5IGFuc3dlciBpdCBlaXRoZXIuIEluIHByYWN0 aWNlLCBob3cNCj4gPiBtdWNoIGlzIHRoYXQgInJlYXNvbmFibGUgYW1vdW50IG9mIHRpbWUiPyBU aGlzIGlzIGRvY3VtZW50YXRpb24sIGl0DQo+ID4gc2hvdWxkIGF2b2lkIHVzaW5nIHZhZ3VlIHN0 YXRlbWVudHMgb3IgaHlwb3RoZXRpY2FsIGNhc2VzLiBUaGUNCj4gPiBkb2N1bWVudGF0aW9uIHlv dSBwb3N0ZWQgc3VnZ2VzdGVkIHRoaXMgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBHUFUgaGFuZw0K PiA+IHRpbWVvdXQsIGJ1dCBkb2Vzbid0IGdpdmUgYSBkZWZpbml0aXZlIGFuc3dlciAoYmVjYXVz ZSBtdWx0aXBsZSBkcml2ZXJzDQo+ID4gbWF5IGRlZmluZSBpdCBkaWZmZXJlbnRseSwgYXBwYXJl bnRseSkuIEluIHByYWN0aWNlLCB3aGF0IGRvIGRyaXZlcnMNCj4gPiBkbz8gQXMgYSB1c2VyLXNw YWNlIGRldmVsb3BlciwgaG93IGxvbmcgY2FuIEkgd2FpdCBiZWZvcmUgdGhpbmdzIGZhaWw/DQo+ ID4gSXMgdGhlcmUgYSB3YXkgdG8gZmlndXJlIG91dCwgbWF5YmUgcXVlcnkgYSBwYXJhbWV0ZXIg c29tZXdoZXJlPyBXaGljaA0KPiA+IGRyaXZlciB3YWl0cyB0aGUgbGVhc3Q/IFdoaWNoIGRyaXZl ciB3YWl0cyB0aGUgbW9zdD8gIElzIDEwIHNlY29uZHMNCj4gPiAicmVhc29uYWJsZSBhbW91bnQg b2YgdGltZSI/IE15IGdyYW5kbWEgdGhpbmtzIDIgd2Vla3MgaXMgYSByZWFzb25hYmxlDQo+ID4g YW1vdW50IG9mIHRpbWUgd2hlbiB3YWl0aW5nIGZvciB0aGluZ3MuDQo+IA0KPiBXZSBjYW4ndCBk byBtdWNoIG1vcmUgdGhhbiBwb2ludCB0byB0aGUgZG1hLWZlbmNlIGRvY3VtZW50IGhlcmUsIHNp bmNlIA0KPiB3ZSBjYW4ndCBoYXZlIGEgdmFndWUgZGVmaW5pdGlvbiBpbiB0aGUgbWFpbiBkb2N1 bWVudCB3aGljaCBpcyANCj4gb3ZlcnJpZGRlbiBpbiBhbm90aGVyIGRvY3VtZW50IGRlc2NyaWJp bmcgc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50Lg0KPiANCj4gRldJVyBhIHJlYXNvbmFi bGUgYW1vdW50IG9mIHRpbWUgaXMgaWRlYWxseSBzbGlnaHRseSBzaG9ydGVyIHRoYW4gdGhlIA0K PiB0aGUgdGltZSB3aGVyZSBhIHVzZXIgdGhpbmtzIHRoZSBzeXN0ZW0gaXMgaHVuZywgZ2V0cyBp cnJpdGF0ZWQgYW5kIA0KPiBwcmVzc2VzIHRoZSByZXNldCBidXR0b24uDQoNCkJ1dCB0aGVyZSdz IGdvdHRhIGJlIGEgdGltZW91dCB2YWx1ZSBwcm9ncmFtbWVkIHNvbWV3aGVyZSB0aGF0IHlvdSBj YW4NCmF0IGxlYXN0IGdpdmUgdXMgYXMgYW4gZXhhbXBsZT8gVGhpcyAqaXMqIHJlbGF0ZWQgdG8g dGhlIEdQVSBoYW5nDQp0aW1lb3V0IGluIHRoZSBJbnRlbCBkcml2ZXJzLCByaWdodD8NCg0KPiAN Cj4gPiANCj4gPiA+ID4gDQo+ID4gPiA+ID4gKyAgd2hpY2ggdGhlcmVmb3JlIG5lZWRzIHRvIHNl dCB0aGUgZ3B1X3ZtIG9yIHRoZSBHUFUgZXhlY3V0aW9uIGNvbnRleHQgaW4NCj4gPiA+ID4gPiAr ICBhIGNlcnRhaW4gbW9kZSB0aGF0IGRpc2FsbG93cyBjb21wbGV0aW9uIGRtYS1mZW5jZXMuDQo+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsqIGBgZXhlYyBmdW5jdGlvbmBgOiBBbiBleGVjIGZ1bmN0 aW9uIGlzIGEgZnVuY3Rpb24gdGhhdCByZXZhbGlkYXRlcyBhbGwNCj4gPiA+ID4gPiArICBhZmZl Y3RlZCBncHVfdm1hcywgc3VibWl0cyBhIEdQVSBjb21tYW5kIGJhdGNoIGFuZCByZWdpc3RlcnMg dGhlDQo+ID4gPiA+ID4gKyAgZG1hX2ZlbmNlIHJlcHJlc2VudGluZyB0aGUgR1BVIGNvbW1hbmQn cyBhY3Rpdml0eSB3aXRoIGFsbCBhZmZlY3RlZA0KPiA+ID4gPiA+ICsgIGRtYV9yZXN2cy4gRm9y IGNvbXBsZXRlbmVzcywgYWx0aG91Z2ggbm90IGNvdmVyZWQgYnkgdGhpcyBkb2N1bWVudCwNCj4g PiA+ID4gPiArICBpdCdzIHdvcnRoIG1lbnRpb25pbmcgdGhhdCBhbiBleGVjIGZ1bmN0aW9uIG1h eSBhbHNvIGJlIHRoZQ0KPiA+ID4gPiA+ICsgIHJldmFsaWRhdGlvbiB3b3JrZXIgdGhhdCBpcyB1 c2VkIGJ5IHNvbWUgZHJpdmVycyBpbiBjb21wdXRlIC8NCj4gPiA+ID4gPiArICBsb25nLXJ1bm5p bmcgbW9kZS4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyogYGBiaW5kIGNvbnRleHRgYDogQSBj b250ZXh0IGlkZW50aWZpZXIgdXNlZCBmb3IgdGhlIFZNX0JJTkQNCj4gPiA+ID4gPiArICBvcGVy YXRpb24uIFZNX0JJTkQgb3BlcmF0aW9ucyB0aGF0IHVzZSB0aGUgc2FtZSBiaW5kIGNvbnRleHQg Y2FuIGJlDQo+ID4gPiA+ID4gKyAgYXNzdW1lZCwgd2hlcmUgaXQgbWF0dGVycywgdG8gY29tcGxl dGUgaW4gb3JkZXIgb2Ygc3VibWlzc2lvbi4gTm8gc3VjaA0KPiA+ID4gPiA+ICsgIGFzc3VtcHRp b25zIGNhbiBiZSBtYWRlIGZvciBWTV9CSU5EIG9wZXJhdGlvbnMgdXNpbmcgc2VwYXJhdGUgYmlu ZCBjb250ZXh0cy4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyogYGBVTURgYDogVXNlci1tb2Rl IGRyaXZlci4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyogYGBLTURgYDogS2VybmVsLW1vZGUg ZHJpdmVyLg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK1N5bmNocm9ub3Vz IC8gQXN5bmNocm9ub3VzIFZNX0JJTkQgb3BlcmF0aW9uDQo+ID4gPiA+ID4gKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ICtTeW5jaHJvbm91cyBWTV9CSU5EDQo+ID4gPiA+ID4gK19fX19fX19fX19fX19fX19fX18NCj4g PiA+ID4gPiArV2l0aCBTeW5jaHJvbm91cyBWTV9CSU5ELCB0aGUgVk1fQklORCBvcGVyYXRpb25z IGFsbCBjb21wbGV0ZSBiZWZvcmUgdGhlDQo+ID4gPiA+ID4gK0lPQ1RMIHJldHVybnMuIEEgc3lu Y2hyb25vdXMgVk1fQklORCB0YWtlcyBuZWl0aGVyIGluLWZlbmNlcyBub3INCj4gPiA+ID4gPiAr b3V0LWZlbmNlcy4gU3luY2hyb25vdXMgVk1fQklORCBtYXkgYmxvY2sgYW5kIHdhaXQgZm9yIEdQ VSBvcGVyYXRpb25zOw0KPiA+ID4gPiA+ICtmb3IgZXhhbXBsZSBzd2FwLWluIG9yIGNsZWFyaW5n LCBvciBldmVuIHByZXZpb3VzIGJpbmRzLg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArQXN5bmNo cm9ub3VzIFZNX0JJTkQNCj4gPiA+ID4gPiArX19fX19fX19fX19fX19fX19fX18NCj4gPiA+ID4g PiArQXN5bmNocm9ub3VzIFZNX0JJTkQgYWNjZXB0cyBib3RoIGluLXN5bmNvYmpzIGFuZCBvdXQt c3luY29ianMuIFdoaWxlIHRoZQ0KPiA+ID4gPiA+ICtJT0NUTCBtYXkgcmV0dXJuIGltbWVkaWF0 ZWx5LCB0aGUgVk1fQklORCBvcGVyYXRpb25zIHdhaXQgZm9yIHRoZSBpbi1zeW5jb2Jqcw0KPiA+ ID4gPiA+ICtiZWZvcmUgbW9kaWZ5aW5nIHRoZSBHUFUgcGFnZS10YWJsZXMsIGFuZCBzaWduYWwg dGhlIG91dC1zeW5jb2JqcyB3aGVuDQo+ID4gPiA+ID4gK3RoZSBtb2RpZmljYXRpb24gaXMgZG9u ZSBpbiB0aGUgc2Vuc2UgdGhhdCB0aGUgbmV4dCBleGVjIGZ1bmN0aW9uIHRoYXQNCj4gPiA+ID4g PiArYXdhaXRzIGZvciB0aGUgb3V0LXN5bmNvYmpzIHdpbGwgc2VlIHRoZSBjaGFuZ2UuIEVycm9y cyBhcmUgcmVwb3J0ZWQNCj4gPiA+ID4gPiArc3luY2hyb25vdXNseSBhc3N1bWluZyB0aGF0IHRo ZSBhc3luY2hyb25vdXMgcGFydCBvZiB0aGUgam9iIG5ldmVyIGVycm9ycy4NCj4gPiA+ID4gVGhl cmUncyBhIHNtYWxsIGRlZ3JlZSBvZiB1bmNlcnRhaW50eSBoZXJlLCB3aGljaCBJIHRoaW5rIHdl IGNhbg0KPiA+ID4gPiBlbGltaW5hdGUuIENhbiB5b3UgcGxlYXNlIG1ha2UgdGhlIHRleHQgY2xl YXJlcj8gRG8geW91IG1lYW4gInNvbWUNCj4gPiA+ID4gZXJyb3JzIHdpbGwgYmUgcmVwb3J0ZWQg c3luY2hyb25vdXNseSBidXQgc29tZSBvdGhlcnMgd29uJ3QiPyBJbiB3aGF0DQo+ID4gPiA+IGNv bmRpdGlvbnMgY2FuIHRoZSBhc3luYyBwYXJ0IGVycm9yPw0KPiA+ID4gImFzc3VtaW5nIHRoYXQg dGhlIGFzeW5jaHJvbm91cyBwYXJ0IG9mIHRoZSBqb2IgKioqbmV2ZXIqKiogZXJyb3JzIg0KPiA+ ID4gDQo+ID4gPiBFcnJvcnMgYXJlIG9ubHkgcmVwb3J0ZWQgc3luY2hyb25vdXNseS4NCj4gPiBU aGlzIGlzIGRvY3VtZW50YXRpb24sIHRoYXQgImFzc3VtcHRpb24iIHRoZXJlIHJlYWxseSB0aHJv d3MgdGhpbmdzIHVwDQo+ID4gaW4gdGhlIGFpci4gV2UgbmVlZCBhIHByZWNpc2Ugc3RhdGVtZW50 OiBjYW4gdGhpbmdzIEVWRVIgZmFpbCBhZnRlciB0aGUNCj4gPiBpb2N0bCByZXR1cm5zPyBJZiB5 ZXMsIGhvdyBjYW4gdXNlciBzcGFjZSBrbm93IGFib3V0IGl0IGFuZCBob3cgc2hvdWxkDQo+ID4g aXQgcHJvY2VlZD8gSWYgbm8sIHBsZWFzZSBhZGp1c3QgdGhlIHRleHQuIElzIGl0IHRoZSBjYXNl IHRoYXQgc29tZQ0KPiA+IGRyaXZlcnMgY2FuIGJ1dCBvdGhlcnMgY2FuJ3Q/IFdoaWNoIG9uZXM/ DQo+IA0KPiBJJ2xsIGNoYW5nZSB0aGF0IHRvICJlcnJvcnMgYXJlIG9ubHkgcmVwb3J0ZWQgc3lu Y2hyb25vdXNseSIuDQoNCk9rLCBzbyB5b3UncmUgc2F5aW5nIHRoZXkgYXJlIG9ubHkgcmVwb3J0 ZWQgc3luY2hyb25vdXNseSwgYnV0IGNhbiB0aGV5DQpoYXBwZW4gKGFuZCBub3QgZW5kIHVwIGJl aW5nIHJlcG9ydGVkKSBhc3luY2hyb25vdXNseT8gV2Ugd2FudCB0byBrbm93DQpub3cgb25seSBp ZiB0aGV5IGdldCByZXBvcnRlZCwgYnV0IGFsc28gaWYgdGhleSBjYW4gaGFwcGVuIDopLg0KDQo+ IA0KPiA+IA0KPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gPiArSW4gbG93LW1lbW9yeSBzaXR1YXRp b25zIHRoZSBpbXBsZW1lbnRhdGlvbiBtYXkgYmxvY2ssIHBlcmZvcm1pbmcgdGhlDQo+ID4gPiA+ ID4gK1ZNX0JJTkQgc3luY2hyb25vdXNseSwgYmVjYXVzZSB0aGVyZSBtaWdodCBub3QgYmUgZW5v dWdoIG1lbW9yeQ0KPiA+ID4gPiA+ICtpbW1lZGlhdGVseSBhdmFpbGFibGUgZm9yIHByZXBhcmlu ZyB0aGUgYXN5bmNocm9ub3VzIG9wZXJhdGlvbi4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK0lm IHRoZSBWTV9CSU5EIElPQ1RMIHRha2VzIGEgbGlzdCBvciBhbiBhcnJheSBvZiBvcGVyYXRpb25z IGFzIGFuIGFyZ3VtZW50LA0KPiA+ID4gPiA+ICt0aGUgaW4tc3luY29ianMgbmVlZHMgdG8gc2ln bmFsIGJlZm9yZSB0aGUgZmlyc3Qgb3BlcmF0aW9uIHN0YXJ0cyB0bw0KPiA+ID4gPiA+ICtleGVj dXRlLCBhbmQgdGhlIG91dC1zeW5jb2JqcyBzaWduYWwgYWZ0ZXIgdGhlIGxhc3Qgb3BlcmF0aW9u DQo+ID4gPiA+ID4gK2NvbXBsZXRlcy4gT3BlcmF0aW9ucyBpbiB0aGUgb3BlcmF0aW9uIGxpc3Qg Y2FuIGJlIGFzc3VtZWQsIHdoZXJlIGl0DQo+ID4gPiA+ID4gK21hdHRlcnMsIHRvIGNvbXBsZXRl IGluIG9yZGVyLg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArU2luY2UgYXN5bmNocm9ub3VzIFZN X0JJTkQgb3BlcmF0aW9ucyBtYXkgdXNlIGRtYS1mZW5jZXMgZW1iZWRkZWQgaW4NCj4gPiA+ID4g PiArb3V0LXN5bmNvYmpzIGFuZCBpbnRlcm5hbGx5IGluIEtNRCB0byBzaWduYWwgYmluZCBjb21w bGV0aW9uLCAgYW55DQo+ID4gPiA+ID4gK21lbW9yeSBmZW5jZXMgZ2l2ZW4gYXMgVk1fQklORCBp bi1mZW5jZXMgbmVlZCB0byBiZSBhd2FpdGVkDQo+ID4gPiA+ID4gK3N5bmNocm9ub3VzbHkgYmVm b3JlIHRoZSBWTV9CSU5EIGlvY3RsIHJldHVybnMsIHNpbmNlIGRtYS1mZW5jZXMsDQo+ID4gPiA+ ID4gK3JlcXVpcmVkIHRvIHNpZ25hbCBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mIHRpbWUsIGNh biBuZXZlciBiZSBtYWRlDQo+ID4gPiA+ID4gK3RvIGRlcGVuZCBvbiBtZW1vcnkgZmVuY2VzIHRo YXQgZG9uJ3QgaGF2ZSBzdWNoIGEgcmVzdHJpY3Rpb24uDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ICtUbyBhaWQgaW4gc3VwcG9ydGluZyB1c2VyLXNwYWNlIHF1ZXVlcywgdGhlIFZNX0JJTkQgbWF5 IHRha2UgYSBiaW5kIGNvbnRleHQuDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtUaGUgcHVycG9z ZSBvZiBhbiBBc3luY2hyb25vdXMgVk1fQklORCBvcGVyYXRpb24gaXMgZm9yIHVzZXItbW9kZQ0K PiA+ID4gPiA+ICtkcml2ZXJzIHRvIGJlIGFibGUgdG8gcGlwZWxpbmUgaW50ZXJsZWF2ZWQgZ3B1 X3ZtIG1vZGlmaWNhdGlvbnMgYW5kDQo+ID4gPiA+ID4gK2V4ZWMgZnVuY3Rpb25zLiBGb3IgbG9u Zy1ydW5uaW5nIHdvcmtsb2Fkcywgc3VjaCBwaXBlbGluaW5nIG9mIGEgYmluZA0KPiA+ID4gPiA+ ICtvcGVyYXRpb24gaXMgbm90IGFsbG93ZWQgYW5kIGFueSBpbi1mZW5jZXMgbmVlZCB0byBiZSBh d2FpdGVkDQo+ID4gPiA+ID4gK3N5bmNocm9ub3VzbHkuIFRoZSByZWFzb24gZm9yIHRoaXMgaXMg dHdvZm9sZC4gRmlyc3QsIGFueSBtZW1vcnkNCj4gPiA+ID4gPiArZmVuY2VzIGdhdGVkIGJ5IGEg bG9uZy1ydW5uaW5nIHdvcmtsb2FkIGFuZCB1c2VkIGFzIGluLXN5bmNvYmpzIGZvciB0aGUNCj4g PiA+ID4gPiArVk1fQklORCBvcGVyYXRpb24gd2lsbCBuZWVkIHRvIGJlIGF3YWl0ZWQgc3luY2hy b25vdXNseSBhbnl3YXkgKHNlZQ0KPiA+ID4gPiA+ICthYm92ZSkuIFNlY29uZCwgYW55IGRtYS1m ZW5jZXMgdXNlZCBhcyBpbi1zeW5jb2JqcyBmb3IgVk1fQklORA0KPiA+ID4gPiA+ICtvcGVyYXRp b25zIGZvciBsb25nLXJ1bm5pbmcgd29ya2xvYWRzIHdpbGwgbm90IGFsbG93IGZvciBwaXBlbGlu aW5nDQo+ID4gPiA+ID4gK2FueXdheSBzaW5jZSBsb25nLXJ1bm5pbmcgd29ya2xvYWRzIGRvbid0 IGFsbG93IGZvciBkbWEtZmVuY2VzIGFzDQo+ID4gPiA+ID4gK291dC1zeW5jb2Jqcywgc28gd2hp bGUgdGhlb3JldGljYWxseSBwb3NzaWJsZSB0aGUgdXNlIG9mIHRoZW0gaXMNCj4gPiA+ID4gPiAr cXVlc3Rpb25hYmxlIGFuZCBzaG91bGQgYmUgcmVqZWN0ZWQgdW50aWwgdGhlcmUgaXMgYSB2YWx1 YWJsZSB1c2UtY2FzZS4NCj4gPiA+ID4gPiArTm90ZSB0aGF0IHRoaXMgaXMgbm90IGEgbGltaXRh dGlvbiBpbXBvc2VkIGJ5IGRtYS1mZW5jZSBydWxlcywgYnV0DQo+ID4gPiA+ID4gK3JhdGhlciBh IGxpbWl0YXRpb24gaW1wb3NlZCB0byBrZWVwIEtNRCBpbXBsZW1lbnRhdGlvbiBzaW1wbGUuIEl0 IGRvZXMNCj4gPiA+ID4gPiArbm90IGFmZmVjdCB1c2luZyBkbWEtZmVuY2VzIGFzIGRlcGVuZGVu Y2llcyBmb3IgdGhlIGxvbmctcnVubmluZw0KPiA+ID4gPiA+ICt3b3JrbG9hZCBpdHNlbGYsIHdo aWNoIGlzIGFsbG93ZWQgYnkgZG1hLWZlbmNlIHJ1bGVzLCBidXQgcmF0aGVyIGZvcg0KPiA+ID4g PiA+ICt0aGUgVk1fQklORCBvcGVyYXRpb24gb25seS4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4g K0Fsc28gZm9yIFZNX0JJTkRTIGZvciBsb25nLXJ1bm5pbmcgZ3B1X3ZtcyB0aGUgdXNlci1tb2Rl IGRyaXZlciBzaG91bGQgdHlwaWNhbGx5DQo+ID4gPiA+ID4gK3NlbGVjdCBtZW1vcnkgZmVuY2Vz IGFzIG91dC1mZW5jZXMgc2luY2UgdGhhdCBnaXZlcyBncmVhdGVyIGZsZXhpYmlsaXR5IGZvcg0K PiA+ID4gPiA+ICt0aGUga2VybmVsIG1vZGUgZHJpdmVyIHRvIGluamVjdCBvdGhlciBvcGVyYXRp b25zIGludG8gdGhlIGJpbmQgLw0KPiA+ID4gPiA+ICt1bmJpbmQgb3BlcmF0aW9ucy4gTGlrZSBm b3IgZXhhbXBsZSBpbnNlcnRpbmcgYnJlYWtwb2ludHMgaW50byBiYXRjaA0KPiA+ID4gPiA+ICti dWZmZXJzLiBUaGUgd29ya2xvYWQgZXhlY3V0aW9uIGNhbiB0aGVuIGVhc2lseSBiZSBwaXBlbGlu ZWQgYmVoaW5kDQo+ID4gPiA+ID4gK3RoZSBiaW5kIGNvbXBsZXRpb24gdXNpbmcgdGhlIG1lbW9y eSBvdXQtZmVuY2UgYXMgdGhlIHNpZ25hbCBjb25kaXRpb24NCj4gPiA+ID4gPiArZm9yIGEgR1BV IHNlbWFwaG9yZSBlbWJlZGRlZCBieSBVTUQgaW4gdGhlIHdvcmtsb2FkLg0KPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiArTXVsdGktb3BlcmF0aW9uIFZNX0JJTkQgSU9DVEwgZXJyb3IgaGFuZGxpbmcg YW5kIGludGVycnVwdHMNCj4gPiA+ID4gPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPiA+ID4gV2hhdCBkbyB5b3UgbWVhbiBi eSBtdWx0aS1vcGVyYXRpb24gaGVyZT8gSXMgaXQgd2hlcmUgSSBwYXNzIG11bHRpcGxlDQo+ID4g PiA+IGFkZHJlc3NlcyB0byBhIHNpbmdsZSB2bV9iaW5kIGlvY3RsPyBJZiB5ZXMsIHdoZXJlIGlz IHRoZSBzZWN0aW9uIGZvcg0KPiA+ID4gPiBzaW5nbGUtb3BlcmF0aW9uIGVycm9ycz8gV2hhdCBk aWZmZXJzIGJldHdlZW4gbXVsdGktb3BlcmF0aW9uIGFuZA0KPiA+ID4gPiBzaW5nbGUtb3BlcmF0 aW9uPw0KPiA+ID4gSSBkb24ndCBmZWVsIHRoYXQgd2UgbmVlZCBhIHNpbmdsZS1vcGVyYXRpb24g bW9kZSwgYmVjYXVzZSBpZiBpdCBmYWlsZWQNCj4gPiA+IGl0IGZhaWxlZCBieSBpdHNlbGYgd2l0 aG91dCBkZXBlbmRlbmN5IHRyYWNraW5nLiBUaGUgcHJvYmxlbSBjb21lcyBvbmx5DQo+ID4gPiBv biB0aGUgbXVsdGktb3BlcmF0aW9uLg0KPiA+IFRoYXQgZG9lc24ndCBhbnN3ZXIgbXkgcXVlc3Rp b24uIEl0IHdvdWxkIGJlIGdvb2QgaWYgdGhlIHRleHQgcHJlY2lzZWx5DQo+ID4gZGVmaW5lZCB3 aGF0IG11bHRpLW9wZXJhdGlvbiBtZWFucywgd2hhdCBzaW5nbGUtb3BlcmF0aW9uIG1lYW5zIGFu ZCBob3cNCj4gPiB0aGluZ3MgYmVoYXZlIGR1cmluZyBzaW5nbGUtb3BlcmF0aW9uLg0KPiANCj4g V2lsbCBpbXByb3ZlIG9uIHRoaXMuIE11bHRpLW9wZXJhdGlvbiBpcyB3aGVyZSB5b3UgY29tYmlu ZSBtdWx0aXBsZSANCj4gVk1fQklORCBvcGVyYXRpb25zIGluIGEgc2luZ2xlIElPQ1RMLCByYXRo ZXIgdGhhbiBzdXBwb3J0aW5nIGp1c3QgYSANCj4gc2luZ2xlIG9wZXJhdGlvbiBwZXIgSU9DVEwu IFdpbGwgZG91YmxlLWNoZWNrIGlmIGFueSBvZiB0aGUgZHJpdmVycyANCj4gc3VwcG9ydCB0aGUg bGF0dGVyLg0KPiANCj4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArVGhlIFZN X0JJTkQgb3BlcmF0aW9ucyBvZiB0aGUgSU9DVEwgbWF5IGVycm9yIGR1ZSB0byBsYWNrIG9mIHJl c291cmNlcw0KPiA+ID4gPiA+ICt0byBjb21wbGV0ZSBhbmQgYWxzbyBkdWUgdG8gaW50ZXJydXB0 ZWQgd2FpdHMuIEluIGJvdGggc2l0dWF0aW9ucyBVTUQNCj4gPiA+ID4gRWFybGllciB5b3UgdGFs a2VkIGFib3V0IHR3byBjbGFzc2VzIG9mIGVycm9yczogb25lcyB0aGF0IGdldCBzaWduYWxlZA0K PiA+ID4gPiB3aGVuIHRoZSBpb2N0bCByZXR1cm5zLCBhbmQgb25lcyB0aGF0IGhhcHBlbiBkdXJp bmcgdGhlICJhc3luY2hyb25vdXMNCj4gPiA+ID4gcGFydCBvZiB0aGUgam9iIi4gSXQgc2VlbXMg aGVyZSB5b3UncmUgdGFsa2luZyBhYm91dCB0aGUgZmlyc3QuIEJ1dA0KPiA+ID4gPiB0aGVuLCB3 aGF0IGFib3V0IHRoZSBzZWNvbmQgY2xhc3Mgb2YgZXJyb3JzPw0KPiA+ID4gdGhlcmUncyBvbmx5 IHN5bmNocm9ub3VzbHkgZXJyb3JzLg0KPiA+IERvIHlvdSBtZWFuICJ0aGVyZSBpcyBvbmx5IHJl cG9ydGluZyBmb3Igc3luY2hyb25vdXMgZXJyb3JzIiBvciAidGhlcmUNCj4gPiBjYW4ndCBiZSBl cnJvcnMgaW4gdGhlIGFzeW5jaHJvbm91cyBwYXJ0Ij8NCj4gPiANCj4gPiBUaGUgd2hvbGUgZGVz Y3JpcHRpb24gb2YgIndoZW4gdGhpbmdzIGZhaWwsIHRoZSBzeXN0ZW0gbWF5IGJlIGxlZnQgaW4N Cj4gPiBhbiB1bmRlZmluZWQgc3RhdGUgd2hlcmUgb25seSBzb21lIG9wZXJhdGlvbnMgd2VyZSBk b25lIiBkb2Vzbid0IHNlZW0NCj4gPiB0byBhbGlnbiB3aXRoIHdoYXQgSSB3b3VsZCBleHBlY3Qg b2YgYSAiZ2F0aGVyIGFsbCByZXNvdXJjZXMgZWFybGllciwNCj4gPiBmYWlsIGlmIHdlIGNhbid0 LCB0aGVuIGRvIHRoaW5ncyBhc3luY2hyb25vdXNseSBsYXRlciBpbiBhIHdheSB3aGljaA0KPiA+ IHRoZXkgY2FuJ3QgZmFpbCIgbW9kZSwgYmVjYXVzZSAic29tZSB0aGluZ3MgY29tcGxldGVkIGFu ZCBvdGhlcnMNCj4gPiBkaWRuJ3QsIGJ1dCB5b3UgZ290IGFuIGVycm9yIGNvZGUgc3luY2hyb25v dXNseSIga2luZGEgc3VnZ2VzdHMgdGhhdA0KPiA+IHRoZSBvcGVyYXRpb24gd2FzIHN5bmNocm9u b3VzIGluc3RlYWQgb2YgYXN5bmNocm9ub3VzLCB1bmxlc3MgdGhlcmUncyBhDQo+ID4gd2F5IG9m ICB0cmF2ZWxpbmcgYmFjayBpbiB0aW1lIHRvIGdpdmUgdGhlIGVycm9yIGJlZm9yZSB0aGUgaW9j dGwNCj4gPiByZXR1cm5lZCwgb3IgSSdtIHdheSBvZmYgaW4gbXkgaW50ZXJwcmV0YXRpb24uDQo+ IA0KPiBUaGlzIGFsbCBib2lscyBkb3duIHRvIHRoZSAibXVsdGlwbGUgb3BlcmF0aW9ucyIgSU9D VEwuIFNheSB0aGF0IHdlIGRvIA0KPiAxMDAgdm0gYmluZHMgaW4gYSBzaW5nbGUgSU9DVEwuIElt cGxlbWVudGF0aW9uLXdpc2Ugd2UgY291bGQgZG8gZWl0aGVyDQo+IA0KPiAxKSBHYXRoZXIgYWxs IHJlc291cmNlcyBuZWVkZWQgZm9yIGFsbCAxMDAgb3BlcmF0aW9ucy4NCj4gMikgU3VibWl0IGZv ciBleGVjdXRpb24uDQo+IA0KPiBPUg0KPiANCj4gZm9yIGFsbCAxMDAgb3BlcmF0aW9ucyBkbw0K PiAgwqDCoMKgIGdhdGhlciBhbGwgcmVzb3VyY2VzIGZvciBhIHNpbmdsZSBvcGVyYXRpb24NCj4g IMKgwqDCoCBzdWJtaXQgdGhlIHNpbmdsZSBvcGVyYXRpb24gZm9yIGV4ZWN1dGlvbg0KPiBlbmQN Cj4gDQo+IFRoZSB0ZXh0IGRlYWxzIHdpdGggdGhlIGxhdHRlciBjYXNlLiBJZiA5OSBvcGVyYXRp b25zIGFscmVhZHkgd2VyZSANCj4gc3VibWl0dGVkIHdpdGhvdXQgYW4gZXJyb3IsIGJ1dCB3ZSBl cnJvciBvbiB0aGUgMTAwdGguDQoNClRoYXQgY2FzZSBkaWQgbm90IGNvbWUgdG8gbXkgaGVhZCwg SSBjb3VsZG4ndCBpbWFnaW5lIHdoeSBzb21lb25lIHdvdWxkDQp3YW50IHRvIGltcGxlbWVudCBp dCB0aGF0IHdheSwgdGhhdCBzb3VuZHMgdmVyeSBpbmVmZmljaWVudC4gUGVyaGFwcyBhDQpjbGFy aWZpY2F0aW9uIGZvciB0aGF0IGluIHRoZSB0ZXh0IHdvdWxkIGhlbHAuDQoNCj4gDQo+ID4gDQo+ ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gPiArc2hvdWxkIHByZWZlcmFibHkgcmVzdGFydCB0 aGUgSU9DVEwgYWZ0ZXIgdGFraW5nIHN1aXRhYmxlIGFjdGlvbi4gSWYNCj4gPiA+ID4gPiArVU1E IGhhcyBvdmVyLWNvbW1pdHRlZCBhIG1lbW9yeSByZXNvdXJjZSwgYW4gLUVOT1NQQyBlcnJvciB3 aWxsIGJlDQo+ID4gPiA+ID4gK3JldHVybmVkLCBhbmQgVU1EIG1heSB0aGVuIHVuYmluZCByZXNv dXJjZXMgdGhhdCBhcmUgbm90IHVzZWQgYXQgdGhlDQo+ID4gPiA+ID4gK21vbWVudCBhbmQgcmVz dGFydCB0aGUgSU9DVEwuIE9uIC1FSU5UUiwgVU1EIHNob3VsZCBzaW1wbHkgcmVzdGFydCB0aGUN Cj4gPiA+ID4gPiArSU9DVEwgYW5kIG9uIC1FTk9NRU0gdXNlci1zcGFjZSBtYXkgZWl0aGVyIGF0 dGVtcHQgdG8gZnJlZSBrbm93bg0KPiA+ID4gPiA+ICtzeXN0ZW0gbWVtb3J5IHJlc291cmNlcyBv ciBhYm9ydCB0aGUgb3BlcmF0aW9uLiBJZiBhYm9ydGluZyBhcyBhDQo+ID4gPiA+ID4gK3Jlc3Vs dCBvZiBhIGZhaWxlZCBvcGVyYXRpb24gaW4gYSBsaXN0IG9mIG9wZXJhdGlvbnMsIHNvbWUgb3Bl cmF0aW9ucw0KPiA+ID4gPiA+ICttYXkgc3RpbGwgaGF2ZSBjb21wbGV0ZWQsIGFuZCB0byBnZXQg YmFjayB0byBhIGtub3duIHN0YXRlLCB1c2VyLXNwYWNlDQo+ID4gPiA+ID4gK3Nob3VsZCB0aGVy ZWZvcmUgYXR0ZW1wdCB0byB1bmJpbmQgYWxsIHZpcnR1YWwgbWVtb3J5IHJlZ2lvbnMgdG91Y2hl ZA0KPiA+ID4gPiA+ICtieSB0aGUgZmFpbGluZyBJT0NUTC4NCj4gPiA+ID4gPiArVW5iaW5kIG9w ZXJhdGlvbnMgYXJlIGd1YXJhbnRlZWQgbm90IHRvIGNhdXNlIGFueSBlcnJvcnMgZHVlIHRvDQo+ ID4gPiA+ID4gK3Jlc291cmNlIGNvbnN0cmFpbnRzLg0KPiA+ID4gPiA+ICtJbiBiZXR3ZWVuIGEg ZmFpbGVkIFZNX0JJTkQgSU9DVEwgYW5kIGEgc3VjY2Vzc2Z1bCByZXN0YXJ0IHRoZXJlIG1heQ0K PiA+ID4gPiBXYWl0IGEgbWludXRlLCB0aGUgcGFyYWdyYXBocyBhYm92ZSBqdXN0IHNheSAiaWYg dGhpbmdzIGZhaWwsIHRyeQ0KPiA+ID4gPiBjbGVhcmluZyByZXNvdXJjZXMgYW5kIHRoZW4gdHJ5 IGFnYWluIi4gV2hhdCBjb25zdGl0dXRlcyBvZiBhDQo+ID4gPiA+ICJzdWNjZXNzZnVsIHJlc3Rh cnQiPyBJcyB0aGVyZSBzb21lIGtpbmQgb2Ygc3RhdGUgbWFjaGluZSBpbnZvbHZlZD8gSXMNCj4g PiA+ID4gdGhpcyB0YWxraW5nIGFib3V0IGVycm9ycyBhZnRlciB0aGUgaW9jdGwgcmV0dXJucz8g V2h5IGRvbid0IGVycm9ycw0KPiA+ID4gPiBzaW1wbHkgdW5kbyBldmVyeXRoaW5nIGFuZCBsZWF2 ZSB1c2VyIHNwYWNlIGluIHRoZSBzYW1lIHN0YXRlIGFzIGJlZm9yZQ0KPiA+ID4gPiB0aGUgaW9j dGw/DQo+ID4gPiBUaGlzIGlzIGV4YWN0bHkgdGhlICJPcGVuOiIgZG9jdW1lbnRlZCBiZWxvdy4N Cj4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gPiArYmUgaW1wbGVtZW50YXRpb24gZGVmaW5lZCBy ZXN0cmljdGlvbnMgb24gdGhlIHVzZSBvZiB0aGUgZ3B1X3ZtLiBGb3IgYQ0KPiA+ID4gPiA+ICtk ZXNjcmlwdGlvbiB3aHksIHBsZWFzZSBzZWUgS01EIGltcGxlbWVudGF0aW9uIGRldGFpbHMgdW5k ZXIgYGVycm9yDQo+ID4gPiA+ID4gK3N0YXRlIHNhdmluZ2BfLg0KPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiArU2FtcGxlIHVBUEkgaW1wbGVtZW50YXRpb25zDQo+ID4gPiA+ID4gKz09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KPiA+ID4gPiA+ICtTdWdnZXN0ZWQgdUFQSSBpbXBsZW1lbnRhdGlv bnMgYXQgdGhlIG1vbWVudCBvZiB3cml0aW5nIGNhbiBiZSBmb3VuZCBmb3INCj4gPiA+ID4gPiAr dGhlIE5vdXZlYXUgZHJpdmVyIGBoZXJlDQo+ID4gPiA+ID4gKzxodHRwczovL3BhdGNod29yay5m cmVlZGVza3RvcC5vcmcvcGF0Y2gvNTQzMjYwLz9zZXJpZXM9MTEyOTk0JnJldj02PmBfLg0KPiA+ ID4gPiA+ICthbmQgZm9yIHRoZSBYZSBkcml2ZXIgYGhlcmUNCj4gPiA+ID4gPiArPGh0dHBzOi8v Y2dpdC5mcmVlZGVza3RvcC5vcmcvZHJtL2RybS14ZS9kaWZmL2luY2x1ZGUvdWFwaS9kcm0veGVf ZHJtLmg/aD1kcm0teGUtbmV4dCZpZD05Y2IwMTZlYmJiNmEyNzVmNTdiMWNiNTEyYjk1ZDVhODQy MzkxYWQ3PmBfLg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArS01EIGltcGxlbWVudGF0aW9uIGRl dGFpbHMNCj4gPiA+ID4gPiArPT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gK0Vycm9yIHN0YXRlIHNhdmluZw0KPiA+ID4gPiA+ICtfX19fX19fX19fX19f X19fX18NCj4gPiA+ID4gPiArT3BlbjogV2hlbiB0aGUgVk1fQklORCBJT0NUTCByZXR1cm5zIGFu IGVycm9yLCBzb21lIG9yIGV2ZW4gcGFydHMgb2YNCj4gPiA+ICAgICAgIF4gTm90ZSB0aGUgIk9w ZW46IiBoZXJlLg0KPiA+ID4gDQo+ID4gPiA+ID4gK2FuIG9wZXJhdGlvbiBtYXkgaGF2ZSBiZWVu IGNvbXBsZXRlZC4gSWYgdGhlIElPQ1RMIGlzIHJlc3RhcnRlZCwgaW4NCj4gPiA+ID4gPiArb3Jk ZXIgdG8ga25vdyB3aGVyZSB0byByZXN0YXJ0LCB0aGUgS01EIGNhbiBlaXRoZXIgcHV0IHRoZSBn cHVfdm0gaW4NCj4gPiA+ID4gPiArYW4gZXJyb3Igc3RhdGUgYW5kIHNhdmUgb25lIGluc3RhbmNl IG9mIHRoZSBuZWVkZWQgcmVzdGFydCBzdGF0ZQ0KPiA+ID4gPiA+ICtpbnRlcm5hbGx5LiBJbiB0 aGlzIGNhc2UsIEtNRCBuZWVkcyB0byBibG9jayBmdXJ0aGVyIG1vZGlmaWNhdGlvbnMgb2YNCj4g PiA+ID4gPiArdGhlIGdwdV92bSBzdGF0ZSB0aGF0IG1heSBjYXVzZSBhZGRpdGlvbmFsIGZhaWx1 cmVzIHJlcXVpcmluZyBhDQo+ID4gPiA+ID4gK3Jlc3RhcnQgc3RhdGUgc2F2ZSwgdW50aWwgdGhl IGVycm9yIGhhcyBiZWVuIGZ1bGx5IHJlc29sdmVkLiBJZiB0aGUNCj4gPiA+ID4gPiArdUFQSSBp bnN0ZWFkIGRlZmluZXMgYSBwb2ludGVyIHRvIGEgVU1EIGFsbG9jYXRlZCBjb29raWUgaW4gdGhl IElPQ1RMDQo+ID4gPiA+ID4gK3N0cnVjdCwgaXQgY291bGQgYWxzbyBjaG9vc2UgdG8gc3RvcmUg dGhlIHJlc3RhcnQgc3RhdGUgaW4gdGhhdCBjb29raWUuDQo+ID4gPiA+IE9rLCBzbyB0aGVyZSBp cyBzb21lIGtpbmQgb2Ygc3RhdGUgbWFjaGluZSBoZXJlLCBidXQgZWl0aGVyIEkgZG9uJ3QNCj4g PiA+ID4gdW5kZXJzdGFuZCBvciBpdCdzIG5vdCBmdWxseSBleHBsYWluZWQuIFRoaXMgd2hvbGUg InJlc3RhcnQgc3RhdGUiIHBhcnQNCj4gPiA+ID4gaXMgY29uZnVzaW5nIHRvIG1lLCBwbGVhc2Ug Y2xhcmlmeS4NCj4gPiA+IEl0IGlzIGFuIG9wZW4gdGhhdCB3ZSBzdGlsbCBuZWVkIHRvIGRlZmlu ZS4uLg0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArVGhlIHJlc3Rh cnQgc3RhdGUgbWF5LCBmb3IgZXhhbXBsZSwgYmUgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsbHkN Cj4gPiA+ID4gPiArY29tcGxldGVkIG9wZXJhdGlvbnMuDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ICtFYXNpZXN0IGZvciBVTUQgd291bGQgb2YgY291cnNlIGJlIGlmIEtNRCBkaWQgYSBmdWxsIHVu d2luZCBvbiBlcnJvcg0KPiA+ID4gPiA+ICtzbyB0aGF0IG5vIGVycm9yIHN0YXRlIG5lZWRzIHRv IGJlIHNhdmVkLg0KPiA+ID4gPiBCdXQgZG9lcyBLTUQgZG8gaXQ/IEFzIGEgVU1EIHBlcnNvbiwg d2hhdCBzaG91bGQgSSBleHBlY3Q/XA0KPiA+ID4gaXQgaXMgYW4gb3BlbiBxdWVzdGlvbi4gSSBi ZWxpZXZlIHdlIHNob3VsZCByZXdpbmQgYWxsIHRoZSBvcGVyYXRpb25zDQo+ID4gPiBpbiB0aGUg c2FtZSBpb2N0bC4gUG9zc2libGU/IEVhc3k/IEkgZG9uJ3Qga25vdywgYnV0IGl0IHdvdWxkIGJl IGdvb2QNCj4gPiA+IHRvIGhhdmUgVU1EIGlucHV0IGhlcmUuDQo+ID4gQXMgc29tZW9uZSB3aG8n cyB3cml0aW5nIHVzZXItc3BhY2UsIGZvciBteSBjYXNlIEkgZG9uJ3Qga25vdyBpZg0KPiA+IHRo ZXJlJ3MgYW55dGhpbmcgSSBjYW4gZG8gYmVzaWRlcyB1bmRvaW5nIGFueXRoaW5nIHRoZSBLZXJu ZWwgaGFzIGRvbmUNCj4gPiBhbmQgcmV0dXJuIGZhaWx1cmUgaG9waW5nIHRoZSB1cHBlciBsYXll cnMgb2YgdGhlIHN0YWNrIHJ1biBzb21lIGtpbmQNCj4gPiBvZiBnYXJiYWdlIGNvbGxldG9yIG9y IGp1c3QgaGF2ZSBiZXR0ZXIgbHVjayB0aGUgbmV4dCBmcmFtZS7CoFNvIGVpdGhlcg0KPiA+IHRo ZSBLZXJuZWwgZG9lcyBpdCBmb3IgbWUsIG9yIEknbGwgaGF2ZSB0byB3cml0ZSBjb2RlIHRvIGRv IGl0IG15c2VsZiwNCj4gPiBidXQgdGhlIEtlcm5lbCBpcyBwcm9iYWJseSBpbiBhICp3YXkqIGJl dHRlciBwb3NpdGlvbiB0byByZXZlcnQgc3RhdGUNCj4gPiBiYWNrIHRvIHRoZSBwb2ludCB3aGVy ZSBpdCB3YXMgYmVmb3JlIEkgaXNzdWUgdGhlIGlvY3RsLCBhc3N1bWluZyB0aGUNCj4gPiBlcnJv ciBhY3R1YWxseSBoYXBwZW5zIGJlZm9yZSB0aGUgaW9jdGwgcmV0dXJucy4gQW5kIGlmIGVycm9y cyBjYW4NCj4gPiBoYXBwZW4gYXN5bmNocm9ub3VzbHksIEkganVzdCBoYXZlIG5vIGlkZWEgaG93 IHRvIGZpeCB0aGluZ3MsIHBlcmhhcHMNCj4gPiB0aGVyZSdzIG5vdCBtdWNoIGJlc2lkZXMgZG9p bmcgd2hhdCB3ZSBkbyB3aGVuIHdlIGdldCBhIEdQVSBoYW5nLg0KPiA+IA0KPiA+IFlvdSBzdWdn ZXN0ZWQgZXJyb3JzIGNhbiBvbmx5IGhhcHBlbiBzeW5jaHJvbm91c2x5LCBidXQgaWYgdGhhdCdz IHRoZQ0KPiA+IGNhc2Ugd2h5IGRvIHdlIGV2ZW4gaGF2ZSB0aGlzIGFwcGFyZW50IHN0YXRlIG1h Y2hpbmU/IEhvdyBkb2VzIGl0IGhlbHANCj4gPiB0byBiZSBwdXQgaW4gYSByZXN0cmljdGVkIHN0 YXRlIHdoZXJlIHlvdSBuZWVkIHRvIGRlYWwgd2l0aCB1bmJpbmRzIGluDQo+ID4gYSBkaWZmZXJl bnQgd2F5LCBpbnN0ZWFkIG9mIGp1c3QgYWxsb3dpbmcgbWUgdG8gZG8gdW5iaW5kcyBub3JtYWxs eT8NCj4gPiBXaGF0IGRvIHdlIGdhaW4gd2l0aCB0aGUgc3RhdGUgbWFjaGluZT8gV2hhdCBjYXNl IGRvZXMgaXQgaGVscD8NCj4gDQo+IFBlcnNvbmFsbHksIEknbSBmb3IgS01EIHJvbGxpbmcgYmFj ayBldmVyeXRoaW5nIG9uIGVycm9yLiBOb3V2ZWF1IGRvZXMgDQo+IHRoYXQuIEJlbmVmaXRzIGl0 IGdpdmVzIGEgY2xlYW4gdW5kZXJzdGFuZGFibGUgdXNlci1pbnRlcmZhY2Ugd2l0aG91dCANCj4g ZXZlciBwdXR0aW5nIHRoZSB2bSBpbiBhbiBlcnJvciBzdGF0ZSB0aGUgVU1EIG5lZWRzIHRvIGtu b3cgYWJvdXQuIFRoZXJlIA0KPiBhcmUgdHdvIG1haW4gZHJhd2JhY2tzLCB0aG91Z2guDQo+IA0K PiAxKSBHYXRoZXJpbmcgcmVzb3VyY2VzIGZvciBWTV9CSU5EIG9wZXJhdGlvbnMgbWF5IHRha2Ug dGltZSBhbmQgDQo+IHJlc3RhcnRpbmcgd2lsbCBiZSBmYXN0ZXIgdGhhbiByb2xsaW5nIGJhY2sg YW5kIHJldHJ5Lg0KPiAyKSBJdCB3aWxsIGJlIGEgYml0IHBhaW5mdWwgdG8gaW1wbGVtZW50IEtN RCByb2xsYmFja3MgaW4gWGUuIEEgDQo+IHN1YnN0YW50aWFsIGNvZGUgcmVmYWN0b3JpbmcuDQoN ClRoYXQgZG9lcyBub3QgZXhwbGFpbiB3aHkgb3IgaG93IHRoaXMgYmVoYXZpb3Igd291bGQgYmVu ZWZpdCB1c2VyLQ0Kc3BhY2UuDQoNCkp1c3QgcGxlYXNlIHJlbWVtYmVyIHRoYXQgc29tZXRpbWVz IGJ5IG5vdCBkb2luZyB0aGUgcGFpbmZ1bCB0aGluZw0KaW5zaWRlIHRoZSBLZXJuZWwgeW91IGVu ZCB1cCBqdXN0IG11bHRpcGx5aW5nIHRoZSBwYWluIHRvIGFsbCB0aGUgdXNlcg0Kc3BhY2UgaW1w bGVtZW50YXRpb25zIDopLiBBbmQgdGhlIEtlcm5lbCBoYXMgdGhlIGdpYW50IGFkdmFudGFnZSBv Zg0KYmVpbmcgYWJsZSB0byBkbyB0aGluZ3MgYXRvbWljYWxseSBpbnNpZGUgdGhlIGlvY3RsIGNv ZGUsIHdoaWxlIHRoZQ0KdXNlciBzcGFjZSBtYXkgYmUgcmFjaW5nIGFnYWluc3QgaXRzZWxmLg0K DQpUaGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9ucywNClBhdWxvDQoNCj4gDQo+ID4gDQo+ID4g PiBTaG91bGQgS01EIHJld2luZCBldmVyeXRoaW5nIHRoYXQgc3VjY2VkZGVkIGJlZm9yZSB0aGUg ZXJyb3I/IG9yDQo+ID4gPiBoYXZlIHRoZSBjb29raWUgaWRlYSBhbmQgYmxvY2sgYWxsIHRoZSBm dXJ0aGVyIG9wZXJhdGlvbnMgb24gdGhhdA0KPiA+ID4gdm0gdW5sZXNzIGlmIHRoZSBjb29raWUg aW5mb3JtYXRpb24gaXMgdmFsaWQ/DQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L3JmYy94ZS5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9y ZmMveGUucnN0DQo+ID4gPiA+ID4gaW5kZXggMjUxNmZlMTQxZGI2Li4wZjA2MmUxMzQ2ZDIgMTAw NjQ0DQo+ID4gPiA+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL3hlLnJzdA0KPiA+ID4g PiA+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3JmYy94ZS5yc3QNCj4gPiA+ID4gPiBAQCAtMTM4 LDggKzEzOCw4IEBAIG1lbW9yeSBmZW5jZXMuIElkZWFsbHkgd2l0aCBoZWxwZXIgc3VwcG9ydCBz byBwZW9wbGUgZG9uJ3QgZ2V0IGl0IHdyb25nIGluIGFsbA0KPiA+ID4gPiA+ICAgcG9zc2libGUg d2F5cy4NCj4gPiA+ID4gPiAgIA0KPiA+ID4gPiA+ICAgQXMgYSBrZXkgbWVhc3VyYWJsZSByZXN1 bHQsIHRoZSBiZW5lZml0cyBvZiBBU1lOQyBWTV9CSU5EIGFuZCBhIGRpc2N1c3Npb24gb2YNCj4g PiA+ID4gPiAtdmFyaW91cyBmbGF2b3JzLCBlcnJvciBoYW5kbGluZyBhbmQgYSBzYW1wbGUgQVBJ IHNob3VsZCBiZSBkb2N1bWVudGVkIGhlcmUgb3IgaW4NCj4gPiA+ID4gPiAtYSBzZXBhcmF0ZSBk b2N1bWVudCBwb2ludGVkIHRvIGJ5IHRoaXMgZG9jdW1lbnQuDQo+ID4gPiA+ID4gK3ZhcmlvdXMg Zmxhdm9ycywgZXJyb3IgaGFuZGxpbmcgYW5kIHNhbXBsZSBBUEkgc3VnZ2VzdGlvbnMgYXJlIGRv Y3VtZW50ZWQgaW4NCj4gPiA+ID4gPiArRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXZtLWJpbmQtYXN5 bmMucnN0DQo+ID4gPiA+ID4gICANCj4gPiA+ID4gPiAgIFVzZXJwdHIgaW50ZWdyYXRpb24gYW5k IHZtX2JpbmQNCj4gPiA+ID4gPiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g PiA+IFdoaWxlIHdyaXRpbmcgdGhpcyBhbnN3ZXJzIEkgaGFkIHRvIHJlYWQgZXZlcnl0aGluZyBh Z2Fpbi4NCj4gPiA+IEkgYWdyZWUgd2l0aCBEYW5pbG8gb24gZW5zdXJpbmcgd2UgZXhwbGljaXRs eSBhZGQgdGhlICd2aXJ0dWFsJw0KPiANCj4gSSdsbCBkb3VibGUtY2hlY2sgb24gdGhhdCBhcyB3 ZWxsLg0KPiANCj4gVGhhbmtzLA0KPiANCj4gVGhvbWFzDQo+IA0KPiANCj4gPiA+IHRvIHRoZSBn cHVfdm0gZGVzY3JpcHRpb24uIEFuZCB3aXRoIHRoYXQ6DQo+ID4gPiANCj4gPiA+IFJldmlld2Vk LWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+DQoNCg==