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=-5.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_PASS,URIBL_BLOCKED autolearn=ham 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 17D3EC43381 for ; Tue, 12 Mar 2019 08:38:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D44DF214AF for ; Tue, 12 Mar 2019 08:38:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IOigUejh" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727089AbfCLIif (ORCPT ); Tue, 12 Mar 2019 04:38:35 -0400 Received: from mail-lf1-f65.google.com ([209.85.167.65]:36767 "EHLO mail-lf1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725832AbfCLIif (ORCPT ); Tue, 12 Mar 2019 04:38:35 -0400 Received: by mail-lf1-f65.google.com with SMTP id d18so703624lfn.3 for ; Tue, 12 Mar 2019 01:38:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=d9i+bN0RKpp8w2BxTsuDGABqK025+FmhXSHTHeUl67I=; b=IOigUejh9opiPCuW29txa/8+Z1y/Lynj28JvkQhl9/eShwNh3R6jx5CgWM61OHZ6Zp Yk9l+tyxfEbcSzqhoTy9AaA9u3pnRASmFW0ZWeEF1A8gqrU/H2n/hiQ2uzmWLMjW/aJi k2ETb3xRcknFDkTmAvrSePubkiVsXs2bP3eeFvnU8290EX60BfNVJZFWxfAvUedNmS0G 6SDViPGmLkZh5Dh7FmagAYylF9ee5pp0DayJQdYBli/GkiNzgayO5ix6b9dTf47TPGMe mRrmHDjpBvsNy9IF2yJ1VkzE4iLISE9Vl7siWVngSYHAyAZ7BbfBUBUVo6NqoFIfQhji fKZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=d9i+bN0RKpp8w2BxTsuDGABqK025+FmhXSHTHeUl67I=; b=Zku9uq4B48pptqxfoqkzWnc4YME/63ZVlYXNiLR7sNLzVcCT7fwUxGLIJZTN1ZRSeM GMnundZ1PBUm2HW3CJne5l8EThxB2vMtcsP5FPp4eVxONj2A7fVRbtit0BlvBT/oRfe7 bXK/j1bL97ncnFzScpH8TF1sicd8jd7eRMuJDaoIM9DWzo+uvXFVVFvBa87Bct3p3SY+ m/RM/8qy9wlPDWn422CfZ0q/vHFzOM5H5GRxAhG+Mf7ofWT5L6DxXahhMkbzvn/pWTJi DEPgCPNUIhGzw2JlCfJOSytaB/d86O6gcdalpaV3pgvktVbikoOQWX8ycj7hxjZUeDHL K+TA== X-Gm-Message-State: APjAAAWeWjzOcP9jcNzoRWcW0umnRleY4fuPXgaDqbgAR6N29BaMeTEo NGZqTIQ4Qmnm+aDBBsHgGYA= X-Google-Smtp-Source: APXvYqzikvg3Mg4DOfY8Y8M55Q8knJTBqVzDV/OQSnDKCiJ+SKFhS2r+O6zQBuy2YXHGg/1/YMX96w== X-Received: by 2002:ac2:551a:: with SMTP id j26mr20684904lfk.59.1552379911992; Tue, 12 Mar 2019 01:38:31 -0700 (PDT) Received: from [10.17.182.20] (ll-22.209.223.85.sovam.net.ua. [85.223.209.22]) by smtp.gmail.com with ESMTPSA id j23sm1460863lfb.17.2019.03.12.01.38.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Mar 2019 01:38:31 -0700 (PDT) Subject: Re: [Xen-devel][PATCH v5 0/1] cameraif: add ABI for para-virtual camera To: hverkuil@xs4all.nl References: <20190312082000.32181-1-andr2000@gmail.com> Cc: "Oleksandr_Andrushchenko@epam.com" , xen-devel@lists.xenproject.org, konrad.wilk@oracle.com, jgross@suse.com, boris.ostrovsky@oracle.com, mchehab@kernel.org, linux-media@vger.kernel.org, sakari.ailus@linux.intel.com, koji.matsuoka.xm@renesas.com From: Oleksandr Andrushchenko Message-ID: <5f76bde5-bfbd-0241-b65d-6cd65c4d0613@gmail.com> Date: Tue, 12 Mar 2019 10:38:30 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190312082000.32181-1-andr2000@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Hello, Hans! This is the version of the protocol with minor comments addressed (that you had on v4). Hope this now looks OK. Thank you, Oleksandr On 3/12/19 10:19 AM, Oleksandr Andrushchenko wrote: > From: Oleksandr Andrushchenko > > Hello! > > At the moment Xen [1] already supports some virtual multimedia > features [2] such as virtual display, sound. It supports keyboards, > pointers and multi-touch devices all allowing Xen to be used in > automotive appliances, In-Vehicle Infotainment (IVI) systems > and many more. > > Frontend implementation is available at [3] and the corresponding > backend at [4]. These are work in progress, but frontend already > passes v4l2-compliance test for V4L2 drivers. libxl preliminary > changes are available at [5]. > > This work adds a new Xen para-virtualized protocol for a virtual > camera device which extends multimedia capabilities of Xen even > farther: video conferencing, IVI, high definition maps etc. > > The initial goal is to support most needed functionality with the > final idea to make it possible to extend the protocol if need be: > > 1. Provide means for base virtual device configuration: > - pixel formats > - resolutions > - frame rates > 2. Support basic camera controls: > - contrast > - brightness > - hue > - saturation > 3. Support streaming control > > I would like to thank Hans Verkuil for valuable > comments and help. > > Thank you, > Oleksandr Andrushchenko > > Changes since v4: > ================= > > 1. Removed unused XENCAMERA_EVT_CFG_FLG_RESOL flag > 2. Re-worded a bit description for num_buffers > > Changes since v3: > ================= > > 1. Add trimming example for short FOURCC labels, e.g. Y16 and Y16-BE > 2. Remove from XENCAMERA_OP_CONFIG_XXX requests colorspace, xfer_func, > ycbcr_enc, quantization and move those into the corresponding response > 3. Extend description of XENCAMERA_OP_BUF_REQUEST.num_bufs: limit to > maximum buffers and num_bufs == 0 case > 4. Extend decription of XENCAMERA_OP_BUF_CREATE.index and specify its > range > 5. Make XENCAMERA_EVT_FRAME_AVAIL.seq_num 32-bit instead of 64-bit > > Changes since v2: > ================= > > 1. Add "max-buffers" frontend configuration entry, e.g. > the maximum number of camera buffers a frontend may use. > 2. Add big-endian pixel-format support: > - "formats" configuration string length changed from 4 to 7 > octets, so we can also manage BE pixel-formats > - add corresponding comments to FOURCC mappings description > 3. New commands added to the protocol and documented: > - XENCAMERA_OP_CONFIG_VALIDATE > - XENCAMERA_OP_FRAME_RATE_SET > - XENCAMERA_OP_BUF_GET_LAYOUT > 4.-Add defaults for colorspace, xfer, ycbcr_enc and quantization > 5. Remove XENCAMERA_EVT_CONFIG_CHANGE event > 6. Move plane offsets to XENCAMERA_OP_BUF_REQUEST as offsets > required for the frontend might not be known at the configuration time > 7. Clean up and address comments to v2 of the protocol > > Changes since v1: > ================= > > 1. Added XenStore entries: > - frame-rates > 2. Do not require the FOURCC code in XenStore to be upper case only > 3. Added/changed command set: > - configuration get/set > - buffer queue/dequeue > - control get > 4. Added control flags, e.g. read-only etc. > 5. Added colorspace configuration support, relevant constants > 6. Added events: > - configuration change > - control change > 7. Changed control values to 64-bit > 8. Added sequence number to frame avail event > 9. Coding style cleanup > > [1] https://www.xenproject.org/ > [2] https://xenbits.xen.org/gitweb/?p=xen.git;a=tree;f=xen/include/public/io > [3] https://github.com/andr2000/linux/tree/camera_front_v1/drivers/media/xen > [4] https://github.com/andr2000/camera_be > [5] https://github.com/andr2000/xen/tree/vcamera > > > Oleksandr Andrushchenko (1): > cameraif: add ABI for para-virtual camera > > xen/include/public/io/cameraif.h | 1370 ++++++++++++++++++++++++++++++ > 1 file changed, 1370 insertions(+) > create mode 100644 xen/include/public/io/cameraif.h > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH v5 0/1] cameraif: add ABI for para-virtual camera Date: Tue, 12 Mar 2019 10:38:30 +0200 Message-ID: <5f76bde5-bfbd-0241-b65d-6cd65c4d0613@gmail.com> References: <20190312082000.32181-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h3cvj-0001Db-An for xen-devel@lists.xenproject.org; Tue, 12 Mar 2019 08:38:35 +0000 Received: by mail-lf1-x144.google.com with SMTP id 10so1386516lfr.8 for ; Tue, 12 Mar 2019 01:38:33 -0700 (PDT) In-Reply-To: <20190312082000.32181-1-andr2000@gmail.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: hverkuil@xs4all.nl Cc: jgross@suse.com, konrad.wilk@oracle.com, "Oleksandr_Andrushchenko@epam.com" , koji.matsuoka.xm@renesas.com, sakari.ailus@linux.intel.com, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, mchehab@kernel.org, linux-media@vger.kernel.org List-Id: xen-devel@lists.xenproject.org SGVsbG8sIEhhbnMhCgpUaGlzIGlzIHRoZSB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbCB3aXRoIG1p bm9yIGNvbW1lbnRzIGFkZHJlc3NlZAoodGhhdCB5b3UgaGFkIG9uIHY0KS4gSG9wZSB0aGlzIG5v dyBsb29rcyBPSy4KClRoYW5rIHlvdSwKT2xla3NhbmRyCgpPbiAzLzEyLzE5IDEwOjE5IEFNLCBP bGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNo ZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4KPiBIZWxsbyEKPgo+IEF0 IHRoZSBtb21lbnQgWGVuIFsxXSBhbHJlYWR5IHN1cHBvcnRzIHNvbWUgdmlydHVhbCBtdWx0aW1l ZGlhCj4gZmVhdHVyZXMgWzJdIHN1Y2ggYXMgdmlydHVhbCBkaXNwbGF5LCBzb3VuZC4gSXQgc3Vw cG9ydHMga2V5Ym9hcmRzLAo+IHBvaW50ZXJzIGFuZCBtdWx0aS10b3VjaCBkZXZpY2VzIGFsbCBh bGxvd2luZyBYZW4gdG8gYmUgdXNlZCBpbgo+IGF1dG9tb3RpdmUgYXBwbGlhbmNlcywgSW4tVmVo aWNsZSBJbmZvdGFpbm1lbnQgKElWSSkgc3lzdGVtcwo+IGFuZCBtYW55IG1vcmUuCj4KPiBGcm9u dGVuZCBpbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgYXQgWzNdIGFuZCB0aGUgY29ycmVzcG9u ZGluZwo+IGJhY2tlbmQgYXQgWzRdLiBUaGVzZSBhcmUgd29yayBpbiBwcm9ncmVzcywgYnV0IGZy b250ZW5kIGFscmVhZHkKPiBwYXNzZXMgdjRsMi1jb21wbGlhbmNlIHRlc3QgZm9yIFY0TDIgZHJp dmVycy4gbGlieGwgcHJlbGltaW5hcnkKPiBjaGFuZ2VzIGFyZSBhdmFpbGFibGUgYXQgWzVdLgo+ Cj4gVGhpcyB3b3JrIGFkZHMgYSBuZXcgWGVuIHBhcmEtdmlydHVhbGl6ZWQgcHJvdG9jb2wgZm9y IGEgdmlydHVhbAo+IGNhbWVyYSBkZXZpY2Ugd2hpY2ggZXh0ZW5kcyBtdWx0aW1lZGlhIGNhcGFi aWxpdGllcyBvZiBYZW4gZXZlbgo+IGZhcnRoZXI6IHZpZGVvIGNvbmZlcmVuY2luZywgSVZJLCBo aWdoIGRlZmluaXRpb24gbWFwcyBldGMuCj4KPiBUaGUgaW5pdGlhbCBnb2FsIGlzIHRvIHN1cHBv cnQgbW9zdCBuZWVkZWQgZnVuY3Rpb25hbGl0eSB3aXRoIHRoZQo+IGZpbmFsIGlkZWEgdG8gbWFr ZSBpdCBwb3NzaWJsZSB0byBleHRlbmQgdGhlIHByb3RvY29sIGlmIG5lZWQgYmU6Cj4KPiAxLiBQ cm92aWRlIG1lYW5zIGZvciBiYXNlIHZpcnR1YWwgZGV2aWNlIGNvbmZpZ3VyYXRpb246Cj4gICAt IHBpeGVsIGZvcm1hdHMKPiAgIC0gcmVzb2x1dGlvbnMKPiAgIC0gZnJhbWUgcmF0ZXMKPiAyLiBT dXBwb3J0IGJhc2ljIGNhbWVyYSBjb250cm9sczoKPiAgIC0gY29udHJhc3QKPiAgIC0gYnJpZ2h0 bmVzcwo+ICAgLSBodWUKPiAgIC0gc2F0dXJhdGlvbgo+IDMuIFN1cHBvcnQgc3RyZWFtaW5nIGNv bnRyb2wKPgo+IEkgd291bGQgbGlrZSB0byB0aGFuayBIYW5zIFZlcmt1aWwgPGh2ZXJrdWlsQHhz NGFsbC5ubD4gZm9yIHZhbHVhYmxlCj4gY29tbWVudHMgYW5kIGhlbHAuCj4KPiBUaGFuayB5b3Us Cj4gT2xla3NhbmRyIEFuZHJ1c2hjaGVua28KPgo+IENoYW5nZXMgc2luY2UgdjQ6Cj4gPT09PT09 PT09PT09PT09PT0KPgo+IDEuIFJlbW92ZWQgdW51c2VkIFhFTkNBTUVSQV9FVlRfQ0ZHX0ZMR19S RVNPTCBmbGFnCj4gMi4gUmUtd29yZGVkIGEgYml0IGRlc2NyaXB0aW9uIGZvciBudW1fYnVmZmVy cwo+Cj4gQ2hhbmdlcyBzaW5jZSB2MzoKPiA9PT09PT09PT09PT09PT09PQo+Cj4gMS4gQWRkIHRy aW1taW5nIGV4YW1wbGUgZm9yIHNob3J0IEZPVVJDQyBsYWJlbHMsIGUuZy4gWTE2IGFuZCBZMTYt QkUKPiAyLiBSZW1vdmUgZnJvbSBYRU5DQU1FUkFfT1BfQ09ORklHX1hYWCByZXF1ZXN0cyBjb2xv cnNwYWNlLCB4ZmVyX2Z1bmMsCj4gICAgIHljYmNyX2VuYywgcXVhbnRpemF0aW9uIGFuZCBtb3Zl IHRob3NlIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UKPiAzLiBFeHRlbmQgZGVzY3Jp cHRpb24gb2YgWEVOQ0FNRVJBX09QX0JVRl9SRVFVRVNULm51bV9idWZzOiBsaW1pdCB0bwo+ICAg ICBtYXhpbXVtIGJ1ZmZlcnMgYW5kIG51bV9idWZzID09IDAgY2FzZQo+IDQuIEV4dGVuZCBkZWNy aXB0aW9uIG9mIFhFTkNBTUVSQV9PUF9CVUZfQ1JFQVRFLmluZGV4IGFuZCBzcGVjaWZ5IGl0cwo+ ICAgICByYW5nZQo+IDUuIE1ha2UgWEVOQ0FNRVJBX0VWVF9GUkFNRV9BVkFJTC5zZXFfbnVtIDMy LWJpdCBpbnN0ZWFkIG9mIDY0LWJpdAo+Cj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiA9PT09PT09PT09 PT09PT09PQo+Cj4gMS4gQWRkICJtYXgtYnVmZmVycyIgZnJvbnRlbmQgY29uZmlndXJhdGlvbiBl bnRyeSwgZS5nLgo+ICAgICB0aGUgbWF4aW11bSBudW1iZXIgb2YgY2FtZXJhIGJ1ZmZlcnMgYSBm cm9udGVuZCBtYXkgdXNlLgo+IDIuIEFkZCBiaWctZW5kaWFuIHBpeGVsLWZvcm1hdCBzdXBwb3J0 Ogo+ICAgLSAiZm9ybWF0cyIgY29uZmlndXJhdGlvbiBzdHJpbmcgbGVuZ3RoIGNoYW5nZWQgZnJv bSA0IHRvIDcKPiAgICAgb2N0ZXRzLCBzbyB3ZSBjYW4gYWxzbyBtYW5hZ2UgQkUgcGl4ZWwtZm9y bWF0cwo+ICAgLSBhZGQgY29ycmVzcG9uZGluZyBjb21tZW50cyB0byBGT1VSQ0MgbWFwcGluZ3Mg ZGVzY3JpcHRpb24KPiAzLiBOZXcgY29tbWFuZHMgYWRkZWQgdG8gdGhlIHByb3RvY29sIGFuZCBk b2N1bWVudGVkOgo+ICAgLSBYRU5DQU1FUkFfT1BfQ09ORklHX1ZBTElEQVRFCj4gICAtIFhFTkNB TUVSQV9PUF9GUkFNRV9SQVRFX1NFVAo+ICAgLSBYRU5DQU1FUkFfT1BfQlVGX0dFVF9MQVlPVVQK PiA0Li1BZGQgZGVmYXVsdHMgZm9yIGNvbG9yc3BhY2UsIHhmZXIsIHljYmNyX2VuYyBhbmQgcXVh bnRpemF0aW9uCj4gNS4gUmVtb3ZlIFhFTkNBTUVSQV9FVlRfQ09ORklHX0NIQU5HRSBldmVudAo+ IDYuIE1vdmUgcGxhbmUgb2Zmc2V0cyB0byBYRU5DQU1FUkFfT1BfQlVGX1JFUVVFU1QgYXMgb2Zm c2V0cwo+ICAgICByZXF1aXJlZCBmb3IgdGhlIGZyb250ZW5kIG1pZ2h0IG5vdCBiZSBrbm93biBh dCB0aGUgY29uZmlndXJhdGlvbiB0aW1lCj4gNy4gQ2xlYW4gdXAgYW5kIGFkZHJlc3MgY29tbWVu dHMgdG8gdjIgb2YgdGhlIHByb3RvY29sCj4KPiBDaGFuZ2VzIHNpbmNlIHYxOgo+ID09PT09PT09 PT09PT09PT09Cj4KPiAxLiBBZGRlZCBYZW5TdG9yZSBlbnRyaWVzOgo+ICAgLSBmcmFtZS1yYXRl cwo+IDIuIERvIG5vdCByZXF1aXJlIHRoZSBGT1VSQ0MgY29kZSBpbiBYZW5TdG9yZSB0byBiZSB1 cHBlciBjYXNlIG9ubHkKPiAzLiBBZGRlZC9jaGFuZ2VkIGNvbW1hbmQgc2V0Ogo+ICAgLSBjb25m aWd1cmF0aW9uIGdldC9zZXQKPiAgIC0gYnVmZmVyIHF1ZXVlL2RlcXVldWUKPiAgIC0gY29udHJv bCBnZXQKPiA0LiBBZGRlZCBjb250cm9sIGZsYWdzLCBlLmcuIHJlYWQtb25seSBldGMuCj4gNS4g QWRkZWQgY29sb3JzcGFjZSBjb25maWd1cmF0aW9uIHN1cHBvcnQsIHJlbGV2YW50IGNvbnN0YW50 cwo+IDYuIEFkZGVkIGV2ZW50czoKPiAgIC0gY29uZmlndXJhdGlvbiBjaGFuZ2UKPiAgIC0gY29u dHJvbCBjaGFuZ2UKPiA3LiBDaGFuZ2VkIGNvbnRyb2wgdmFsdWVzIHRvIDY0LWJpdAo+IDguIEFk ZGVkIHNlcXVlbmNlIG51bWJlciB0byBmcmFtZSBhdmFpbCBldmVudAo+IDkuIENvZGluZyBzdHls ZSBjbGVhbnVwCj4KPiBbMV0gaHR0cHM6Ly93d3cueGVucHJvamVjdC5vcmcvCj4gWzJdIGh0dHBz Oi8veGVuYml0cy54ZW4ub3JnL2dpdHdlYi8/cD14ZW4uZ2l0O2E9dHJlZTtmPXhlbi9pbmNsdWRl L3B1YmxpYy9pbwo+IFszXSBodHRwczovL2dpdGh1Yi5jb20vYW5kcjIwMDAvbGludXgvdHJlZS9j YW1lcmFfZnJvbnRfdjEvZHJpdmVycy9tZWRpYS94ZW4KPiBbNF0gaHR0cHM6Ly9naXRodWIuY29t L2FuZHIyMDAwL2NhbWVyYV9iZQo+IFs1XSBodHRwczovL2dpdGh1Yi5jb20vYW5kcjIwMDAveGVu L3RyZWUvdmNhbWVyYQo+Cj4KPiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyAoMSk6Cj4gICAgY2Ft ZXJhaWY6IGFkZCBBQkkgZm9yIHBhcmEtdmlydHVhbCBjYW1lcmEKPgo+ICAgeGVuL2luY2x1ZGUv cHVibGljL2lvL2NhbWVyYWlmLmggfCAxMzcwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ICAgMSBmaWxlIGNoYW5nZWQsIDEzNzAgaW5zZXJ0aW9ucygrKQo+ICAgY3JlYXRlIG1vZGUg MTAwNjQ0IHhlbi9pbmNsdWRlL3B1YmxpYy9pby9jYW1lcmFpZi5oCj4KCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs