Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp4009369imw; Mon, 11 Jul 2022 22:49:58 -0700 (PDT) X-Google-Smtp-Source: AGRyM1taxwKtDj8KH/xv16HKkkpTDA8bB5yyjE6ka80F6uChF1rNhqXD0R7HsYr7YurTW4LCFiST X-Received: by 2002:a17:90b:1997:b0:1ef:7bcd:e8c3 with SMTP id mv23-20020a17090b199700b001ef7bcde8c3mr2377562pjb.55.1657604998506; Mon, 11 Jul 2022 22:49:58 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1657604998; cv=pass; d=google.com; s=arc-20160816; b=DPi7x2tWzunC3R4TFc3ZQZgoTXpYPBgNJeeu89h+o1QDeO/M22cdhKeTTeG/BGbBjT qeyfYMAkk5hc2o07Gzuu7yC9zAd4/dfoHbTTJme29Bf3KFI45ixPaLV1b2Qp+SEB8e47 ta/2q6LwD5NakhFnLaGUXL7zFBibL0GzCHqKnek9H46hlWeaLHpr/2092Z4Mq5o0n0wg u+0N82ut7279BeEs7eHv7FeGZBNXb9/sRNHy4cHVWSl2IDQZwoEv34ikW6DR4tkyBDoL wWzVjLw30frA4Jrrf+fKlGvPT3SAZWxcafseX2qV6GsWmbZUN4gZNnBmGAZ7uCl5nTGK PnqA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:msscp.transfermailtomossagent:mime-version :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:cc:to:from; bh=a2dN34v28yCwTXQ8p7rga3z+RW+AfCynxg+moY86lSA=; b=SkP62KRSvZMQvSd/e+LntFDYfDqBBwfE47tOgneUH2mrPTuzuULB1AR7tExt6opaJ7 8RrJOPXvoGbaOrmCRkuVv2rG1eLuJ5JZ4Xv6O7bmX70pEUc8TtXTk8ZAIC/5bN6sWhB4 aKBlWZa6QxH2jV3owi4d7Nkd/Ne38f1heZp2yQdvozfx+Mdk5b6DKE5YdPoc8wRKE/OU k3o/eknv2kEUvq7LmoeY8yuJ5aJWr+xze1IcxBhCazs6hyrkWIk67a8wMObojrODbPJ2 YT+bwlXmO+1mlCEMy43n/Sf7aODH0LWstmT0Euqj/DvpawCe6skC4fHOquut0uUOfdQ9 AoCQ== ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=toshiba.co.jp dkim=pass dkdomain=toshiba.co.jp dmarc=pass fromdomain=toshiba.co.jp); 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=fail (p=NONE sp=NONE dis=NONE) header.from=toshiba.co.jp Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r30-20020a635d1e000000b00407e25d4528si12603355pgb.5.2022.07.11.22.49.46; Mon, 11 Jul 2022 22:49:58 -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; arc=pass (i=1 spf=pass spfdomain=toshiba.co.jp dkim=pass dkdomain=toshiba.co.jp dmarc=pass fromdomain=toshiba.co.jp); 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=fail (p=NONE sp=NONE dis=NONE) header.from=toshiba.co.jp Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229935AbiGLFG5 (ORCPT + 99 others); Tue, 12 Jul 2022 01:06:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229518AbiGLFGx (ORCPT ); Tue, 12 Jul 2022 01:06:53 -0400 Received: from mo-csw.securemx.jp (mo-csw1116.securemx.jp [210.130.202.158]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1BD772F39E; Mon, 11 Jul 2022 22:06:50 -0700 (PDT) Received: by mo-csw.securemx.jp (mx-mo-csw1116) id 26C56DQR014292; Tue, 12 Jul 2022 14:06:13 +0900 X-Iguazu-Qid: 2wGqz7V47LHb0F0UK0 X-Iguazu-QSIG: v=2; s=0; t=1657602373; q=2wGqz7V47LHb0F0UK0; m=xc7TkH/R9jMcEK8+m/BMyy92+mkKYZDti7AnS4kFSek= Received: from imx2-a.toshiba.co.jp (imx2-a.toshiba.co.jp [106.186.93.35]) by relay.securemx.jp (mx-mr1113) id 26C56BQG011986 (version=TLSv1.2 cipher=AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 12 Jul 2022 14:06:11 +0900 X-SA-MID: 41754435 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bNQkhkaO9gfHoszanbqCYZ/lKijfPqPtiYlQb0o+uLZAjC0Pv5xlkZpYzDOVuLDW4LDJOZGEyPfDERCJlQqySKbJR+u6+7HnMrb3h7hxt4bEr5kGApR8vp7mj1KFhagoztkzYxE7FGZSTTz06UTi2cSuddWe7ApQzkoKFYdv5JNK+SMj0XudazZKgkiDU/N5/B5tVO4NTmZP9lyUpkuD3chzPhm3LUztc5jCa20NK6URcoma2Btw2znM5HAx4ZAtfgktAyK39IURAQa0yyiL7RXfdt893ZKTr+dThBx9K+adBGXsQ+D164uhEPD3FMYoi6hGU7f0Wfaks2OcOpwPQQ== 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=a2dN34v28yCwTXQ8p7rga3z+RW+AfCynxg+moY86lSA=; b=YHCPMd9HHNhVlTxDMG0UHitnuGVtwwNuzh7PiPXKuN9MtROuvT35jbNyrpl9DmgDFHcRmdI6UuTBq+JVyh/8ULyRn/CpUjLXDw071iLNGDU9tUA3F3fWDQLF+0gn+ZaMebzAy4roOcqHst1IRowza3gl9JJdcmZLJV079ptZmuD6i+zYdPAlpsY57lxXhVRf6mxArxXu8yQwHKfewoYFcobdsNnvIQpO7QoXx3SVaeE6QCKlfQIrYc6HayR3B7J77YrzXCDJE4W7AhqbEgw+c9vtz/nf+UydtJCIyJWySP+7s6R16jSDEVr2PQz5g07HAY2CQ2PFoXirpg9Ft9GG6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=toshiba.co.jp; dmarc=pass action=none header.from=toshiba.co.jp; dkim=pass header.d=toshiba.co.jp; arc=none From: To: , , , , CC: , , , , Subject: RE: [PATCH 0/4] Add Toshiba Visconti DNN image processing accelerator driver Thread-Topic: [PATCH 0/4] Add Toshiba Visconti DNN image processing accelerator driver Thread-Index: AQHYWwF7uwVWGREvfEWf5eEr1gqNuq0bLOmAgAx4NhCAAAZbAIASQGpQgCzatoCAB80z8IAMCuWA Date: Tue, 12 Jul 2022 05:01:00 +0000 X-TSB-HOP2: ON Message-ID: References: <20220428131128.5053-1-yuji2.ishikawa@toshiba.co.jp> <2b6c4772-caa9-c66d-877a-de37e87d3753@xs4all.nl> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=toshiba.co.jp; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5d891b26-84b0-486a-b3d6-08da63c383a2 x-ms-traffictypediagnostic: TY2PR01MB2683:EE_ x-ld-processed: f109924e-fb71-4ba0-b2cc-65dcdf6fbe4f,ExtAddr,ExtFwd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0qcxYcx0Z1LJA/1LFkwDKnbL4CHmDHLGpiOiZ4SDils9eOlP2KO4MSamh8k+B53xhMc2hKX4tNNu22NZzHITQCqxm7s63vgSM/6Zts+IvOWEcuQtjbS05PF6iinCY3Vi4dYp8QzbxeWPeu5f+mTjP2gM6z9ZyJdxzBdmljFO03GJs1LOLICiIr1GBLD2ZzywucDdtL1DfAR2fVcaMxAKbHb97UbASZFq9tWn4HglX95E9Eomw0Gd9k73tKh7QSweRpUL3tshxh+Okcj+BifPs8LeorxDH1RdyINIrNWRWT/ee0MBmoJVgynaVu+xu3Mz5HRi8tFOCNhFQ1qtjZ317XWEZW2RT++VHoE44xHdpViDFU/uHEbX6aUuPYNL7cYUGVhFDDqDnfXiO4aZTAoXe+HLp+CZ14G9JNpRYh2gChcI7dfCjkcm7Pl2xNsLqpPhHdrIw7QImO8hEF0wsXKaohor+heT7zVnka1D4qoOFOoyYJ+dmjB93f1hBrpkq+xuMZOPW+gOWkrzXo3G9SGUhxv8aq2sqVccTyqMq2LxWV+sjH2t9bsponnXfXJt+U33ogFT2YS0hnXscIzh/OInE967Oyhl29x3K1nJcRGnqmnPAOosUkai/Lj4n4/WJfgXfySnBOHfb2U8Hchn27t5pgLdBm659Uz18HQ5+M4uUmIM+HQCDeI/cOZ0Ck7QdcmFmT4ibQolHGl3N2lsw8S2d1CFoAJXBr1sWNXVaGew70FAs8IdKlA0c7DJmsx5+/jy14TJA4J5lDowCqQjGq53ePjZZ7n/GTMtVGiZtzM3JxvZCfghdZrdmBODNftGK8dMO6EdVp94xwF7XILVlzXsjBkW8R9fzmvhYBCbAOXgdlnYawDqYe54/l5Vyrj/vOKC7BEgEb4OPBgpqC4/xbsVVA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYAPR01MB6201.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(396003)(346002)(136003)(39860400002)(366004)(376002)(53546011)(55236004)(9686003)(26005)(8676002)(5660300002)(966005)(55016003)(30864003)(2906002)(7416002)(8936002)(41300700001)(6506007)(33656002)(71200400001)(83380400001)(7696005)(66574015)(316002)(186003)(110136005)(54906003)(478600001)(38070700005)(66476007)(38100700002)(86362001)(66556008)(64756008)(66446008)(76116006)(52536014)(66946007)(122000001)(4326008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QnM0SFVIV1VtK1NFVE9BVThSNzdVcDdhOUJ4ek9jMmpMS1Y1ZUNWR1pQbFRv?= =?utf-8?B?b0k0MldtN2RCSk4zYlNaNlJMMXJkVHkwSGluMDMxUWZ0ckZuaFpYdFBQNVBI?= =?utf-8?B?eVlJRTRuWFZBVWo2RTVGcDhiVGJld3Q0cHh6eUFIRHduWW5GamFUd054am85?= =?utf-8?B?OStVY1ptQ0lEdDhGQVFLSDg3WktmRmlHOUhWN2FMYlhZV1pKUEFIN291MkVx?= =?utf-8?B?MW1BazNxOEJwS25IREpidkRSeVF6Z1MvZkx6RTlXRnNCUjhSRy9kbjZNelh4?= =?utf-8?B?cEtrUjlsSXN3TmtTeFBmUExPdUVzdkEvbE02MHRjcjVwdWVSczZnN1ZKYWdK?= =?utf-8?B?NHo2eHg4TmNqNkNrTXRJWmpYU0U3bTd3YkJrYmh5UldHOHhKdmxYOWw1MjJH?= =?utf-8?B?dGI0eFdDWTRqSzZTNWVHQ0x1NVFSMTFGTTREQ1JwY3VwdzQyb2wyR2plQk95?= =?utf-8?B?QXZFaXgvbTR2ckZDYlZ5Z25Ja0oyUnd6L0VDSVhIMjdBMGtCYkdSM0t1T2p6?= =?utf-8?B?TVM0KzgwNlVjdEpuUmh6UzdsdU1QOTEwb2ZIRlMwa25DcEdhUzNRWHpaR0ph?= =?utf-8?B?cXhVTThGUnZFRVROYVZITVBnV2UxUDBZQnA5MDRvTGdEV3hlZmFoa3lDUVlX?= =?utf-8?B?YUZoeks1NEc0ajYwSGZ6b3BENnZ1TlVyRDdHVktwaWd5dnk1VjBiT3VvVG5H?= =?utf-8?B?TnN5LzhIODdMblBWNjAvZWRwNzVOSWpFYVc5Q1cwOHlqOWVCcm5lYmhSVWVH?= =?utf-8?B?S3c5NUZYaFJFUHpOYkNuWkFQUWs1Ym8xcWw4T0VpM0NNSzJpTE1qUFRZTlRq?= =?utf-8?B?TE5ITUNiTkRvaWtFOHUyWDhpOERzUmIzUkNGTXRkWnV2djNPUTgzUnhBT04y?= =?utf-8?B?VlEwS25FUDNnSWFRNGNSb3lCbFJXbmVBR2VOWEJSOTA1Z3lwMm5aNVhDL2Vu?= =?utf-8?B?TzUvUmZjWmJYRzgzUzJUc0xnRlV4NWd3QlJtc1Jnc0MxWFBaL3p4UDdjRGhm?= =?utf-8?B?emJnMHptRFBNZjFBSXE5TmhKUm9qSml3NGwxQ0Nxb3hNeVkrMEF0amx2VUZX?= =?utf-8?B?SitjUmNCL3h3Sk5neXNEZDNIVUUrK1RGVWJ1d2xoSW1XL0tVUStoQXBEaG41?= =?utf-8?B?TlZuZ3JOekcxTnhPUi81Sm1hNnp4R0JUK1pacGdPQ2VETnhmTzBNWnVlaDNo?= =?utf-8?B?UEw2QnlRVEpUQ2V6dmlDWk9XQllJOHR0TVB0MlhXZHRvMmFnMnQ1Y2E1M21G?= =?utf-8?B?OWZkR0ZJalJZNG1CY2pRaHlySEU1U0dNZlVZeWJ0WmM2RjVkZE15THN3QmI5?= =?utf-8?B?MmlYMU5iR0VtdEJPNUtLN3pia3pJdHMwMWFiTERxR0tnWFpEejVkMG9iLzhW?= =?utf-8?B?dXRLVHM3eUlYZ2xxQk5mSUsreGNTMXErVDBXZ3pXY3M2VjNZMlVhakZKbWhC?= =?utf-8?B?a2MzaHdJdVZYWjVkcjVZc2paYk5COXhTVzdabnVlL1ZSWjhzWXNqM25mUGN5?= =?utf-8?B?TGZXNjRKdWI2d095cEV2WElya1F0ZUpSR1JRUUdDVzl0VkFCK00zcFJGazBm?= =?utf-8?B?R01mMTM2QTUzZXgvSjlIaUVnRjBwZTlIWFppbVBmU3ErdEY4Y2RyZThzUUpI?= =?utf-8?B?ZEJvUUpkRzBmQWRMTFZmVXdMUDdEUUQreWtiZ1lrYTA0MCt1QTdhQ0JQeFRN?= =?utf-8?B?RXlZam0zb0p6cDBpRzNsL3FvekN5Y3hSVEYzZ3h4djNXSFpQNEZzVEdMdTJ6?= =?utf-8?B?bU1ydTEzdlZoOGxTNkFMQ1RVb2Ywb2VjRHpnbHMydVhDUzJaTGd1dDVha2Iw?= =?utf-8?B?S2Q4bWt6ZGREQ1c2NUZuU2NELzNqbDJaSjMwUFZhTE1ST0U5TEo4VmNpbTJx?= =?utf-8?B?QnQ5bzFMTXFRcnVGSDcxb2RxVFF3M2l1UXBYOUpjajFxcEtOZUZXWXRkVTUw?= =?utf-8?B?bmZab3hoUGttZTlRRGZjRDE4UnJuQmR3WC9aWGs3SnYxd0UrZlRsV0pnM3dp?= =?utf-8?B?ZzhERHZ4RmdmL25YSVdwb1JkUHNEdDh4dVBTTnNxeWFZK0ZEcU5jNDB2b1hW?= =?utf-8?B?YkxoTzdIVlB3R0R1Wk9LM3RlZjhTSy9Fa0VVNTVOQ0ZXN2hrbFlld21qTE9q?= =?utf-8?B?V0h0NFp5aFY2dFlMYUgxZ29hUm5Ccnl0UjhRRzlJNlB3VVZFRis2VWI5Wisr?= =?utf-8?B?SGc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB6201.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d891b26-84b0-486a-b3d6-08da63c383a2 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jul 2022 05:01:00.4284 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f109924e-fb71-4ba0-b2cc-65dcdf6fbe4f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5myY/gK8sAgg70QeTA53T6kInx/j9SaBA/ACuvmmHAP6cbLqIBiSIhiKBwNpeLI7f2/86dJTAF+cPxaCYFmDOiCaYtH45YR8u3cVXqV2dTc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR01MB2683 X-OriginatorOrg: toshiba.co.jp MSSCP.TransferMailToMossAgent: 103 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgSGFucywNCg0KSSdtIGdvaW5nIHRvIHN1Ym1pdCBETk4gZHJpdmVyICh3aXRoIG1pc2MgZHJp dmVyIHN0eWxlKSBhZ2Fpbi4NClVwZGF0ZWQgdmVyc2lvbiB3aWxsIGluY2x1ZGUgY29ycmVjdGlv bnMgc3VnZ2VzdGVkIGluIHJldmlld3MuDQoNCkZvciBleGFtcGxlOg0KKiBhcHBseSBjaGVja3Bh dGNoLnBsIC0tc3RyaWN0DQoqIHVwcGVyY2FzZSBsZXR0ZXJzIGluIGZ1bmN0aW9uIG5hbWUgLT4g bWFrZSB0aGVtIGxvd2VyY2FzZQ0KKiB1c2Ugb2YgaW50ZWdlciB0eXBlczogdWludDMyX3QgLT4g dTMyICggX3UzMiBpbiB1c2VyIEFQSSBoZWFkZXIgKQ0KDQpQbGVhc2UgbGV0IG1lIGtub3cgZnVy dGhlciBhY3Rpb25zIHdoaWNoIHNob3VsZCBiZSBkb25lIGJlZm9yZSBzdWJtaXNzaW9uLg0KDQpS ZWdhcmRzLA0KCVl1amkgSXNoaWthd2ENCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBpc2hpa2F3YSB5dWppKOefs+W3nSDmgqDlj7gg4peL77yy77yk77yj4pah77yh77yp 77y077yj4peL77yl77yh6ZaLKQ0KPiBTZW50OiBUdWVzZGF5LCBKdWx5IDUsIDIwMjIgMTA6MTcg QU0NCj4gVG86IEhhbnMgVmVya3VpbCA8aHZlcmt1aWxAeHM0YWxsLm5sPjsgcm9iaCtkdEBrZXJu ZWwub3JnOyBpd2FtYXRzdQ0KPiBub2J1aGlybyjlsqnmnb4g5L+h5rSLIOKWoe+8s++8t++8o+KX r++8oe+8o++8tCkgPG5vYnVoaXJvMS5pd2FtYXRzdUB0b3NoaWJhLmNvLmpwPjsNCj4gc3VtaXQu c2Vtd2FsQGxpbmFyby5vcmc7IGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbQ0KPiBDYzogbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwu b3JnOw0KPiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmc7IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmc7DQo+IGxpbmFyby1tbS1zaWdAbGlzdHMubGluYXJvLm9yZw0KPiBTdWJqZWN0 OiBSRTogW1BBVENIIDAvNF0gQWRkIFRvc2hpYmEgVmlzY29udGkgRE5OIGltYWdlIHByb2Nlc3Np bmcNCj4gYWNjZWxlcmF0b3IgZHJpdmVyDQo+IA0KPiBIaSBIYW5zLA0KPiANCj4gVGhhbmsgeW91 IGZvciB5b3VyIGFkdmljZS4NCj4gSSB1bmRlcnN0YW5kIHRoYXQgVjRMMiBNMk0gZHJpdmVyIGlz IHJlY29tbWVuZGVkIGZvciBhIGdyb3VwIGluY2x1ZGluZw0KPiBBZmZpbmUgYW5kIFB5cmFtaWQu DQo+IA0KPiBBcyBmb3IgRFNQSUYsIG91ciBhcHBsaWNhdGlvbiBTVyBlbmdpbmVlciBzYWlkIHRo YXQgdGhlcmUgaXMgYW5vdGhlciB2ZXJzaW9uIG9mDQo+IGZpcm13YXJlIHRvIGhhbmRsZSBuZXVy YWwgbmV0d29yay4NCj4gVGhlcmVmb3JlLCBEU1AgY2FuIGhhbmRsZSBub3Qgb25seSBpbWFnZXMs IGJ1dCBhbHNvIHNvbWUgYXJyYXkvbGlzdCB0eXBlZA0KPiBkYXRhLg0KPiBJdCB3b3VsZCBiZSBi ZXR0ZXIgdG8gaGFuZGxlIERTUElGIGFzIGEgbWlzYyBkZXZpY2UgYXMgd2VsbCBhcyBETk4uDQo+ IA0KPiBJdCBpcyBzdGlsbCBkaWZmaWN1bHQgZm9yIG1lIHRvIGltYWdpbmUgYSB3aG9sZSBzdHJ1 Y3R1cmUgb2YgTTJNIHR5cGUgZHJpdmVyIGFuZA0KPiBjb3JyZXNwb25kaW5nIHVzZXJsYW5kIGFw cGxpY2F0aW9uLg0KPiBXaGF0IGRvIHRoZXkgbG9vayBsaWtlPyBJcyB0aGVyZSBhbnkgZXhpc3Rp bmcgZHJpdmVyIHN1aXRhYmxlIGZvciByZWZlcmVuY2U/DQo+IA0KPiBMZXQgbWUgdGhpbmsgYWJv dXQgYSBQeXJhbWlkIEhXIHdoaWNoIHJlY2VpdmVzIGEgcGxhbmFyIChSL0cvQiBhcyBkaWZmZXJl bnQNCj4gcGxhbmVzLCBub3QgaW4gaW50ZXJsZWF2ZWQgUkdCUkdCIGZvcm1hdCkgaW1hZ2UsIGFu ZCB5aWVsZHMgMyBwbGFuYXIgaW1hZ2VzLg0KPiBJcyBpdCBjb3ZlcmVkIGJ5IG9ubHkgMSBmZCwg b3IgbXVsdGlwbGUgZmRzIGFyZSByZXF1aXJlZD8NCj4gKiBBIGZkIGZvciBQeXJhbWlkIGRyaXZl cjoNCj4gICAqIE9VVFBVVCBxdWV1ZSBmb3IgcmVjZWl2aW5nIGEgcGljdHVyZT8NCj4gICAgICog T1VUUFVUIG9yIE9VVFBVVF9NUExBTkU/DQo+ICAgICAqIFE6IFR5cGljYWxseSwgUkdCIGltYWdl IGlzIGhhbmRsZWQgd2l0aCBzaW5nbGUgcGxhbmUgYnVmZmVyIGluIFY0TDIuIFJHQg0KPiBpbWFn ZXMgZG8gbm90IGhhdmUgZm91cmNjIGZvciBtdWx0aS1wbGFuYXIgZm9ybWF0ICh3aGlsZSBZVVYg aW1hZ2VzIGRvKS4NCj4gICAgICAgICAqIEhvdyBzaG91bGQgSSBleHBsaWNpdGx5IHJlcXVlc3Qg Ui9HL0IgcGxhbmFyIGJ1ZmZlciBpbiBWNEwyDQo+IHNlbWFudGljcz8NCj4gICAqIENBUFRVUkUg cXVldWUgZm9yIHlpZWxkaW5nIGEgcGljdHVyZT8NCj4gICAgICogQ0FQVFVSRSBvciBDQVBUVVJF X01QTEFORT8NCj4gICAgICogQWdhaW46IFJHQiBpbnRlcmxlYXZlZCB2cyBSL0cvQiBwbGFuYXIN Cj4gICAgICogUTogSWYgSSB3YW50IHRvIGNhcHR1cmUgbXVsdGlwbGUgaW1hZ2VzICh3aXRoIGRp ZmZlcmVudCByZXNvbHV0aW9uKSBhdCBhIHRpbWUsDQo+IGhvdyBzaG91bGQgSSBkbz8NCj4gICAg ICAgICAqIERvIEkgaGF2ZSB0byBhZGQgb3RoZXIgZmRzIGZvciAybmQsIDNyZCBDQVBUVVJFIHF1 ZXVlPw0KPiAgICAgICAgICogT3IsIG11bHRpcGxlIGltYWdlcyBjYW4gYmUgcGFja2VkIGluIHRo ZSBzYW1lIENBUFRVUkUgYnVmZmVyPw0KPiAgICAgICAgICogT3IsIG11bHRpcGxlIGltYWdlcyBj YW4gYmUgcGxhY2VkIGluIENBUFRVUkVfTVBMQU5FIGJ1ZmZlciA/DQo+ICAgKiBDb21wb3VuZCBj b250cm9sIHRvIHJlY2VpdmUgYSBjb25maWd1cmF0aW9uLg0KPiANCj4gUmVnYXJkcywNCj4gCQlZ dWppDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSGFucyBW ZXJrdWlsIDxodmVya3VpbEB4czRhbGwubmw+DQo+ID4gU2VudDogV2VkbmVzZGF5LCBKdW5lIDI5 LCAyMDIyIDEwOjQ0IFBNDQo+ID4gVG86IGlzaGlrYXdhIHl1amko55+z5bedIOaCoOWPuCDil4vv vLLvvKTvvKPilqHvvKHvvKnvvLTvvKPil4vvvKXvvKHplospDQo+ID4gPHl1amkyLmlzaGlrYXdh QHRvc2hpYmEuY28uanA+OyByb2JoK2R0QGtlcm5lbC5vcmc7IGl3YW1hdHN1DQo+ID4gbm9idWhp cm8o5bKp5p2+DQo+ID4g5L+h5rSLIOKWoe+8s++8t++8o+KXr++8oe+8o++8tCkgPG5vYnVoaXJv MS5pd2FtYXRzdUB0b3NoaWJhLmNvLmpwPjsNCj4gPiBzdW1pdC5zZW13YWxAbGluYXJvLm9yZzsg Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tDQo+ID4gQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZzsNCj4gPiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBsaW51eC1t ZWRpYUB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZzsgbGluYXJvLW1tLXNpZ0BsaXN0cy5saW5hcm8ub3JnDQo+ID4gU3ViamVjdDogUmU6IFtQQVRD SCAwLzRdIEFkZCBUb3NoaWJhIFZpc2NvbnRpIEROTiBpbWFnZSBwcm9jZXNzaW5nDQo+ID4gYWNj ZWxlcmF0b3IgZHJpdmVyDQo+ID4NCj4gPiBNeSBhcG9sb2dpZXMgZm9yIHRoZSBsYXRlIHJlcGx5 Li4uDQo+ID4NCj4gPiBPbiAwMS8wNi8yMDIyIDAzOjQwLCB5dWppMi5pc2hpa2F3YUB0b3NoaWJh LmNvLmpwIHdyb3RlOg0KPiA+ID4gSGkgSGFucywNCj4gPiA+DQo+ID4gPiBUaGFuayB5b3UgZm9y IHlvdXIgYWR2aWNlLg0KPiA+ID4gSSBwcmVwYXJlZCBzb21lIGRlc2NyaXB0aW9uIG9mIEROTiBh Y2NlbGVyYXRvciBhbmQgaXRzIHVzYWdlLg0KPiA+ID4NCj4gPiA+ICMjIyMgSGFuZGxpbmcgbWVt b3J5IGJsb2NrcyBmb3IgVmlzY29udGk1IGFjY2VsZXJhdG9ycw0KPiA+ID4NCj4gPiA+IFZpc2Nv bnRpNSBJbWFnZS1Qcm9jZXNzaW5nLUFjY2VsZXJhdG9ycyBkbyBub3QgaGF2ZSBmaW5lIGdyYWlu ZWQNCj4gPiA+IElPTU1VLA0KPiA+IGFzIENQVSBoYXZlLg0KPiA+ID4gVGhlcmVmb3JlLCBtZW1v cnkgcmVnaW9uIHRvIGJlIHBhc3NlZCB0byB0aGUgYWNjZWxlcmF0b3JzIHNob3VsZCBiZQ0KPiA+ IHBoeXNpY2FsbHkgY29udGlndW91cy4NCj4gPiA+IFdlIHVzZSBETUEtQlVGIGJhY2tlZCBieSBD TUEgKENvbnRpZ3VvdXMgTWVtb3J5IEFsbG9jYXRvcikgdG8NCj4gPiA+IGFsbG9jYXRlDQo+ID4g bWVtb3J5IHJlZ2lvbnMgZm9yIHNoYXJpbmcgYmV0d2VlbiBDUFUvSVBBcy4NCj4gPiA+IE9yaWdp bmFsbHksIGluIHY0LjE5IGJhc2VkIGltcGxlbWVudGF0aW9uLCB0aGUgSU9OIGFsbG9jYXRvciB3 YXMNCj4gPiA+IHVzZWQgdG8NCj4gPiBhbGxvY2F0ZSBETUEtQlVGIGluc3RhbmNlcy4NCj4gPiA+ IEZvciB0aGUgbGF0ZXN0IGltcGxlbWVudGF0aW9uLCBETUEtQlVGIEhFQVBTIGlzIHVzZWQuDQo+ ID4gPg0KPiA+ID4gVHdvIHN0cnVjdHVyZSB0eXBlcyBhcmUgdXNlZCB0byByZXByZXNlbnQgbWVt b3J5IHJlZ2lvbiBwYXNzZWQgdG8gZHJpdmVycy4NCj4gPiA+ICogc3RydWN0IGRydl9pcGFfYnVm ZmVyX2luZm8NCj4gPiA+ICAgKiB0byBkZXNjcmliZSB3aG9sZSBETUEtQlVGIGluc3RhbmNlDQo+ ID4gPiAqIHN0cnVjdCBkcnZfaXBhX2FkZHINCj4gPiA+ICAgKiB0byBkZXNjcmliZSBhIG1lbW9y eSByZWdpb24gaW4gYSBETUEtQlVGIGluc3RhbmNlDQo+ID4gPg0KPiA+ID4gZm9yIGRldGFpbHMs IHNlZSB1c2FnZSBzYW1wbGUgb2YgZWFjaCBJUEEgZHJpdmVyDQo+ID4gPg0KPiA+ID4NCj4gPiA+ ICMjIyMgSW1hZ2UgUHJvY2Vzc2luZyBBY2NlbGVyYXRvcnMgb3ZlcnZpZXcNCj4gPiA+DQo+ID4g PiBWaXNjb250aTUgU29DIGhhcyBmb2xsb3dpbmcgaW1hZ2UgcHJvY2Vzc2luZyBhY2NlcmVyYXRv cnMNCj4gPiA+DQo+ID4gPiAqIEFGRklORTogMSBpbnB1dCBpbWFnZSwgMSBvdXRwdXQgaW1hZ2U7 DQo+ID4gQWZmaW5lIHRyYW5zZm9ybSwgSG9tb2dyYXBoeSB0cmFuc2Zvcm0sIFBvbHlub21pYWwg bGVucyBkaXN0b3J0aW9uLA0KPiA+IExVVCB0cmFuc2Zvcm0NCj4gPiA+ICogRE5OOiAgICBOIGlu cHV0IGZlYXR1cmUgdmVjdG9yLCBOIG91dHB1dCBmZWF0dXJlIHZlY3RvcjsNCj4gPiBEZWVwIG5l dXJhbCBuZXR3b3JrIG9wZXJhdGlvbg0KPiA+ID4gKiBQWVJBTUlEIDMgaW5wdXQgaW1hZ2UsIDMg KiBOIG91dHB1dCBpbWFnZTsNCj4gPiBSZXNpemUgZ3JheXNjYWxlL2NvbG9yIGltYWdlIHdpdGgg TiBkaWZmZXJlbnQgcGFyYW1ldGVycw0KPiA+ID4gKiBEU1BJRjogIE0gaW5wdXQgaW1hZ2UsIE4g b3V0cHV0IGltYWdlOw0KPiA+IFZhcmlvdXMgb3BlYXRpb25zIG9uIGltYWdlcw0KPiA+ID4gKiBI T1g6ICAgIDEgaW5wdXQgaW1hZ2UgKG11bHRpIFJPSSksIDEgaW5wdXQgZGljdGlvbmFyeTEgbGlr ZWxpaG9vZC9mZWF0dXJlDQo+ID4gdmVjdG9yOyAgRXh0ZW5kZWQgSGlzdG9ncmFtIG9mIE9yaWVu dGVkIEdyYWRpZW50IGJhc2VkIHBhdHRlcm4NCj4gPiBtYXRjaGluZw0KPiA+ID4gKiBIQU1BVDog IDIgaW5wdXQgZmVhdHVyZSB2ZWN0b3JzOiAxIG91dHB1dCBjb3JyZGluYXRlIHZlY3RvcjsNCj4g PiBIYW1taW5nIGRpc3RhbmNlIG1hdGNoaW5nIGZvciBzdGVyZW8gdmlzaW9uDQo+ID4gPiAqIEZM TUFUOiAgMyBpbnB1dCBpbWFnZSwgTiBpbnB1dCBmZWF0dXJlIHBvaW50LCBOIG91dHB1dCBtYXRj aGVkDQo+ID4gPiBwb2ludDsNCj4gPiBPcHRpY2FsIGZsb3cgbWF0Y2hpbmcNCj4gPiA+ICogU01M REI6ICAxIGlucHV0IGltYWdlLCBOIGlucHV0IGZlYXR1cmUgcG9pbnQsIE4gb3V0cHV0IGZlYXR1 cmUNCj4gPiA+IHZlY3RvcjsNCj4gPiBBY2NlbGVyYXRlZC1LQVpFIGZlYXR1cmUgZGVzY3JpcHRv ciBhY2NlbGVyYXRvcg0KPiA+ID4gKiBTVE1BVDogIDIgaW5wdXQgaW1hZ2UsIDEgb3V0cHV0IGRp c3Bhcml0eSBpbWFnZTsNCj4gPiBTdGVyZW8gZGlzcGFyaXR5DQo+ID4NCj4gPiBJdCdzIG5vdCBy ZWFsbHkgZWFzeSB0byBkZWNpZGUgd2hhdCBpcyBiZXN0LiBJIHdvdWxkIHNheSB0aGF0IGlmIGJv dGgNCj4gPiBpbnB1dCBhbmQgb3V0cHV0IGFyZSBpbWFnZXMgKFJHQiwgWVVWLCBHcmF5c2NhbGUp LCB0aGVuIGEgVjRMMg0KPiA+IG1lbW9yeS10by1tZW1vcnkgZHJpdmVyIGlzIHdoYXQgSSB3b3Vs ZCBleHBlY3QgdG8gc2VlLg0KPiA+DQo+ID4gV2hlcmUgdGhhdCBpcyBub3QgdGhlIGNhc2UsIHRo ZW4gYSBtb3JlIGN1c3RvbSBhcHByb2FjaCBtYWtlcyBzZW5zZS4NCj4gPg0KPiA+IEluIHRoZSBs aXN0IGFib3ZlIEkgd291bGQgcHV0IEFGRklORSwgUFlSQU1JRCwgRFNQSUYgYW5kIHBvc3NpYmxl DQo+ID4gU1RNQVQgaW4gdGhlIFY0TDIgZHJpdmVyIGdyb3VwLCBhbmQgdGhlIG90aGVycyBtb3Jl IGFzIGN1c3RvbSBkcml2ZXJzLg0KPiA+DQo+ID4gSSB0aGluayBpdCBhbHNvIGRlcGVuZHMgb24g aG93IGl0IGlzIHVzZWQ6IGlmIGEgY2FwdHVyZWQgc2Vuc29yIGltYWdlDQo+ID4gaXMgdHlwaWNh bGx5IHBhc3NlZCBpbiBmb3IgZnVydGhlciBwcm9jZXNzaW5nLCBpLmUuIGl0IGlzIGNsb3NlbHkN Cj4gPiByZWxhdGVkIHRvIHRoZSB2aWRlbyBJU1AsIHRoZW4NCj4gPiBWNEwyIGlzIGEgcmVhc29u YWJsZSBjaG9pY2UuDQo+ID4NCj4gPiBBIEROTiBkcml2ZXIsIG9uIHRoZSBvdGhlciBoYW5kLCBp c24ndCB1c2luZyBpbWFnZXMgYXQgYWxsLCBzbyBmb3INCj4gPiB0aGF0IHNvbWV0aGluZyBsaWtl IHRoaXMgZHJpdmVyIG1ha2VzIHNlbnNlLg0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPg0KPiA+IAlI YW5zDQo+ID4NCj4gPiA+DQo+ID4gPiBzZWUgWzBdIEZpZyA3LjIuMSBmb3IgYmxvY2sgZGlhZ3Jh bSAob2YgcHJvdG90eXBlIGNoaXApDQo+ID4gPg0KPiA+ID4NCj4gPiA+ICMjIyMgRE5OIGFjY2Vs ZXJhdG9yIG92ZXJ2aWV3DQo+ID4gPg0KPiA+ID4gRE5OIGFjY2VsZXJhdG9yIGlzIGEgcHJvcHJp ZXRhcnkgQ05OL0RDTk4gcHJvY2Vzc2luZyBhY2NlbGVyYXRvcg0KPiA+IGRldmVsb3BlZCBieSBU b3NoaWJhLg0KPiA+ID4gVmlzY29udGk1IFNvQyBoYXMgMiBpbnN0YW5jZXMgb2YgRE5OIGFjY2xl cmF0b3IgaGFyZHdhcmUuDQo+ID4gPiBVc2VycyBjb252ZXJ0IGV4aXN0aW5nIENhZmZlL09OTlgg bW9kZWxzIHRvIFZpc2NvbnRpIGNvbXBhdGlibGUNCj4gPiA+IG1vZGVscw0KPiA+IHdpdGggYW4g b2ZmbGluZSB0b29sLg0KPiA+ID4gQSBjb252ZXJ0ZWQgbW9kZWwgIkNvbmZpZ3VyYXRpb24gQmlu YXJ5IiBpbmNsdWRlczoNCj4gPiA+ICAgKiBpbnN0cnVjdGlvbiBzZXF1ZW5jZSBmb3IgZ2l2ZW4g bmV0d29yaw0KPiA+ID4gICAqIHdlaWdodC9iaWFzIGluZm9ybWF0aW9uDQo+ID4gPiAgICogRE1B IGNvbmZpZ3VyYXRpb24gZnJvbS90byBnbG9iYWwgbWVtb3J5IChmb3IgaW5wdXQvb3V0cHV0DQo+ ID4gPiBmZWF0dXJlKQ0KPiA+ID4NCj4gPiA+IEROTiBhY2NjZWxlcmF0b3IgY2FuIGhhbmRsZSBl aXRoZXIgMSBwbGFuZSBvciBtdWx0aXBsZSBST0lzIGF0IGEgc2luZ2xlIGNhbGwuDQo+ID4gPg0K PiA+ID4gc2VlIFswXSBGaWcgNy4yLjIgZm9yIGJsb2NrIGRpYWdyYW0gb2YgRE5OIGFjY2VsZXJh dG9yDQo+ID4gPg0KPiA+ID4gQ05OOiBDb252b2x1dGlvbmFsIE5ldXJhbCBOZXR3b3JrDQo+ID4g PiBEQ05OOiBEZWVwIENvbnZvbHV0aW9uYWwgTmV1cmFsIE5ldHdvcmsNCj4gPiA+DQo+ID4gPg0K PiA+ID4gIyMjIyBJbnB1dCAvIE91dHB1dA0KPiA+ID4NCj4gPiA+IElucHV0IGltYWdlIG9yIGZl YXR1cmU6IGJhc2UgdHlwZSBpcyBlaXRoZXIgb2YgRlAxNiwgRlAzMiwgSU5UOCwNCj4gPiA+IFVJ TlQ4LCBJTlQxNiBPdXRwdXQgZmVhdHVyZSB2ZWN0b3I6ICBiYXNlIHR5cGUgaXMgZWl0aGVyIG9m IEZQMTYsDQo+ID4gPiBGUDMyLCBJTlQ4LCBVSU5UOCwgSU5UMTYNCj4gPiA+DQo+ID4gPiBJbnB1 dCwgT3V0cHV0LCBXZWlnaHQsIEJpYXMgY2FuIGJlIHBsYWNlZCBvbiBnbG9iYWwgbWVtb3J5IGFu ZA0KPiA+IGxvYWRlZC9zdG9yZWQgd2l0aCBETUEgd2l0aGluIEROTiBhY2NlbGVyYXRvci4NCj4g PiA+IFRoZXNlIGRhdGEgb24gZ2xvYmFsIG1lbW9yeSBjYW4gYmUgc3BlY2lmaWVkIGFzIGVpdGhl ciBvZjoNCj4gPiA+ICAgKiBzaW5nbGUgYWRkcmVzcyB0byBwb2ludCBzaW5nbGUgZGF0YSBibG9j aw0KPiA+ID4gICAqIGxpc3Qgb2YgYWRkcmVzcyB0byBwb2ludCBtdWx0aXBsZSBkYXRhIGJsb2Nr cyAoaS5lLiBST0lzKQ0KPiA+ID4NCj4gPiA+IEROTiBhY2NsZXJhdG9yIGRyaXZlciBhY2NlcHRz IGFuIGluc3RhbmNlIG9mICJzdHJ1Y3QgZHJ2X2Rubl9kZXNjcmlwdG9yIg0KPiA+IHdoaWNoIGlu Y2x1ZGVzIGFkZHJlc3NlcyBvZiBpbnB1dC9vdXRwdXQgZmVhdHVyZXMgYW5kIGEgY29uZmlndXJh dGlvbg0KPiBiaW5hcnkuDQo+ID4gPg0KPiA+ID4NCj4gPiA+ICMjIyMgRGVzY3JpcHRvciBCdWls ZGVyIGF0IHVzZXJsYW5kDQo+ID4gPg0KPiA+ID4gRm9sbG93aW5nIEFQSXMgYXJlIHByb3ZpZGVk IHRvIGJ1aWxkIGEgZGVzY3JpcHRvciBpbnN0YW5jZSBhdCB1c2VybGFuZC4NCj4gPiA+DQo+ID4g PiAvKiBkZWZpbmVkIGluIGRydl9kbm5fdXRpbC5oICovDQo+ID4gPiBpbnQzMl90IGRydl9ETk5f Y29uZmlnX2Rlc2NyaXB0X2luaXQoc3RydWN0IGRydl9kbm5fZGVzY3JpcHRvcg0KPiA+ID4gKmRl c2MsIHN0cnVjdCBkcnZfaXBhX2J1ZmZlcl9pbmZvICpidWZmZXIsIGludDMyX3QgYnVmZmVyX251 bSk7DQo+ID4gPiBpbnQzMl90DQo+ID4gZHJ2X0ROTl9jb25maWdfZXhlY19jb25maWd1cmF0aW9u KHN0cnVjdCBkcnZfZG5uX2Rlc2NyaXB0b3IgKmRlc2MsDQo+ID4gY29uc3Qgdm9pZCAqY29uZmln dXJhdGlvbl9iaW5hcnksDQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJ2X2lwYV9hZGRyDQo+ID4gY29uZmlndXJhdGlvbl9iaW5hcnlfYWRk ciwgc3RydWN0IGRydl9pcGFfYWRkciAqc3JjX2xpc3QsDQo+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJ2X2lwYV9hZGRyDQo+ID4gPiAqZHN0 X2xpc3QsDQo+ID4gaW50MzJfdCBsaXN0X251bSwgc3RydWN0IGRydl9pcGFfYWRkciB0ZW1wb3Jh cnlfYWRkciwNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludDMyX3QgdGVtcG9yYXJ5X3NpemUpOw0KPiA+ID4gaW50MzJfdCBkcnZfRE5OX2NvbmZpZ19k ZXNjcmlwdF9maW5hbGl6ZShzdHJ1Y3QgZHJ2X2Rubl9kZXNjcmlwdG9yDQo+ID4gPiAqZGVzYyk7 DQo+ID4gPg0KPiA+ID4gc3RydWN0IGRydl9kbm5fZGVzY3JpcHRvciBpcyBkZWZpbmVkIGluIGRy aXZlcnMvc29jL3Zpc2NvbnRpL3VhcGkvZG5uLmguDQo+ID4gPiBJIHRoaW5rIHRoaXMgaGVhZGVy IHNob3VsZCBiZSBwbGFjZWQgYW55d2hlcmUgZWxzZSB0byBiZSBjb2xsZWN0ZWQNCj4gPiA+IG9u ICJtYWtlDQo+ID4gaGVhZGVyc19pbnN0YWxsIiBhY3Rpb24gb2Yga2VybmVsIGJ1aWxkaW5nLg0K PiA+ID4NCj4gPiA+DQo+ID4gPiAjIyMjIFVzYWdlIHNhbXBsZSAod2l0aG91dCBlcnJvciBoYW5k bGVycykNCj4gPiA+DQo+ID4gPiAgICAgI2luY2x1ZGUgPGxpbnV4L2RtYS1oZWFwLmg+DQo+ID4g PiAgICAgI2luY2x1ZGUgImRydl9pcGEuaCINCj4gPiA+ICAgICAjaW5jbHVkZSAiZHJ2X2Rubi5o Ig0KPiA+ID4gICAgICNpbmNsdWRlICJkcnZfZG5uX3V0aWwuaCINCj4gPiA+DQo+ID4gPiAgICAg aW50IGFsbG9jYXRlX2J1ZmZlcihpbnQgZmRfaGVhcCwgaW50IHNpemUpDQo+ID4gPiAgICAgew0K PiA+ID4gICAgICAgICBzdHJ1Y3QgZG1hX2hlYXBfYWxsb2NhdGlvbl9kYXRhIGhlYXBfZGF0YV9p bj17MH07DQo+ID4gPiAgICAgICAgIGludCByZXQ7DQo+ID4gPg0KPiA+ID4gICAgICAgICBoZWFw X2RhdGFfaW4ubGVuID0gUk9VTkRVUF9QT1cyKHNpemUpOw0KPiA+ID4gICAgICAgICBoZWFwX2Rh dGFfaW4uZmRfZmxhZ3MgPSBPX1JEV1IgfCBPX0NMT0VYRUM7DQo+ID4gPg0KPiA+ID4gICAgICAg ICByZXQgPSBpb2N0bChmZF9oZWFwLCBETUFfSEVBUF9JT0NUTF9BTExPQywgJmhlYXBfZGF0YV9p bik7DQo+ID4gPiAgICAgICAgIGlmIChyZXQgPDApDQo+ID4gPiAgICAgICAgICAgICByZXR1cm4g LTE7DQo+ID4gPiAgICAgICAgIGVsc2UNCj4gPiA+ICAgICAgICAgICAgIHJldHVybiBoZWFwX2Rh dGFfaW4uZmQ7DQo+ID4gPiAgICAgfQ0KPiA+ID4NCj4gPiA+ICAgICB2b2lkIGRubl9zYW1wbGUo aW50IGZkX2RubiwgaW50IGZkX2NvbmYsIGludCBmZF9zcmMsIGludCBmZF9kc3QsDQo+ID4gPiBp bnQNCj4gPiBmZF90ZW1wKQ0KPiA+ID4gICAgIHsNCj4gPiA+ICAgICAgICAgaW50MzJfdCByZXQ7 DQo+ID4gPiAgICAgICAgIHN0cnVjdCBkcnZfaXBhX2J1ZmZlcl9pbmZvIGJ1ZmluZm9bNF0gPSB7 DQo+ID4gPg0KPiA+IHsuZmQ9ZmRfY29uZiwgLmNvaGVyZW50PXRydWUsIC5kaXJlY3Rpb249RFJW X0lQQV9ESVJfVE9fREVWSUNFfSwNCj4gPiA+DQo+ID4gey5mZD1mZF9zcmMsICAuY29oZXJlbnQ9 dHJ1ZSwgLmRpcmVjdGlvbj1EUlZfSVBBX0RJUl9UT19ERVZJQ0V9LA0KPiA+ID4NCj4gPiB7LmZk PWZkX2RzdCwgIC5jb2hlcmVudD10cnVlLCAuZGlyZWN0aW9uPURSVl9JUEFfRElSX0ZST01fREVW SUNFfSwNCj4gPiA+DQo+ID4gey5mZD1mZF90ZW1wLCAuY29oZXJlbnQ9dHJ1ZSwgLmRpcmVjdGlv bj1EUlZfSVBBX0RJUl9GUk9NX0RFVklDRX0sDQo+ID4gPiAgICAgICAgIH07DQo+ID4gPiAgICAg ICAgIHN0cnVjdCBkcnZfaXBhX2FkZHIgY29uZl9hZGRyID0gey5idWZmZXJfaW5kZXg9MCwgLm9m ZnNldD0wfTsNCj4gPiA+ICAgICAgICAgc3RydWN0IGRydl9pcGFfYWRkciBzcmNfYWRkciAgPSB7 LmJ1ZmZlcl9pbmRleD0xLCAub2Zmc2V0PTB9Ow0KPiA+ID4gICAgICAgICBzdHJ1Y3QgZHJ2X2lw YV9hZGRyIGRzdF9hZGRyICA9IHsuYnVmZmVyX2luZGV4PTIsIC5vZmZzZXQ9MH07DQo+ID4gPiAg ICAgICAgIHN0cnVjdCBkcnZfaXBhX2FkZHIgdGVtcF9hZGRyID0gey5idWZmZXJfaW5kZXg9Mywg Lm9mZnNldD0wfTsNCj4gPiA+ICAgICAgICAgc3RydWN0IGRydl9kbm5fZGVzY3JpcHRvciBkZXNj Ow0KPiA+ID4NCj4gPiA+ICAgICAgICAgc3RydWN0IGRydl9pcGFfYWRkciBzcmNfbGlzdFtdID0g e3NyY19hZGRyfTsNCj4gPiA+ICAgICAgICAgc3RydWN0IGRydl9pcGFfYWRkciBkc3RfbGlzdFtd ID0ge2RzdF9hZGRyfTsNCj4gPiA+DQo+ID4gPiAgICAgICAgIHVpbnQ4X3QgKmNvbmZpZyA9ICh1 aW50OF90KiltbWFwKE5VTEwsIEROTl9DT05GX0JJTl9TSVpFLA0KPiA+ID4gUFJPVF9SRUFELCBN QVBfU0hBUkVELCBmZF9jb25mLCAwKTsNCj4gPiA+DQo+ID4gPiAgICAgICAgIGRydl9ETk5fY29u ZmlnX2Rlc2NyaXB0X2luaXQoJmRlc2MsIGJ1ZmluZm8sIDQpOw0KPiA+ID4gICAgICAgICBkcnZf RE5OX2NvbmZpZ19leGVjX2NvbmZpZ3VyYXRpb24oJmRlc2MsIGNvbmZpZywgY29uZl9hZGRyLA0K PiA+IHNyY19saXN0LCBkc3RfbGlzdCwgMSwgdGVtcF9hZGRyLCBURU1QX0JVRl9TSVpFKTsNCj4g PiA+ICAgICAgICAgZHJ2X0ROTl9jb25maWdfZGVzY3JpcHRfZmluYWxpemUoJmRlc2MpOw0KPiA+ ID4NCj4gPiA+ICAgICAgICAgaW9jdGwoZmRfZG5uLCBJT0NfSVBBX1NUQVJULCAmZGVzYyk7DQo+ ID4gPg0KPiA+ID4gICAgICAgICB7DQo+ID4gPiAgICAgICAgICAgICBzdHJ1Y3QgcG9sbGZkIGZk c1tdID0NCj4gPiB7LmZkPWZkX2RubiwgLmV2ZW50cz1QT0xMX0lOLCAucmV2ZW50cz0wfTsNCj4g PiA+ICAgICAgICAgICAgIHBvbGwoZmRzLCAxLCAxMDAwKTsNCj4gPiA+ICAgICAgICAgfQ0KPiA+ ID4gICAgIH0NCj4gPiA+DQo+ID4gPiAgICAgdm9pZCBzYW1wbGUoKQ0KPiA+ID4gICAgIHsNCj4g PiA+ICAgICAgICAgaW50IGZkX2RubiwgZmRfaGVhcCwgZmRfY29uZiwgZmRfc3JjLCBmZF9kc3Qs IGZkX3RlbXA7DQo+ID4gPg0KPiA+ID4gICAgICAgICBmZF9kbm4gPSBvcGVuKCIvZGV2L2RubjAi LCBPX1JEV1IpOw0KPiA+ID4gICAgICAgICBmZF9oZWFwID0gb3BlbigiL2Rldi9kbWFfaGVhcC9s aW51eCxjbWEiLCBPX1JEV1IpOw0KPiA+ID4gICAgICAgICBmZF9jb25mID0gYWxsb2NhdGVfYnVm ZmVyKGZkX2hlYXAsDQo+IEROTl9DT05GX0JJTl9BTExPQ19TSVpFKTsNCj4gPiA+ICAgICAgICAg ZmRfc3JjICA9IGFsbG9jYXRlX2J1ZmZlcihmZF9oZWFwLCBJTlBVVF9JTUdfQUxMT0NfU0laRSk7 DQo+ID4gPiAgICAgICAgIGZkX2RzdCAgPSBhbGxvY2F0ZV9idWZmZXIoZmRfaGVhcCwgT1VUUFVU X0lNR19BTExPQ19TSVpFKTsNCj4gPiA+ICAgICAgICAgZmRfdGVtcCA9IGFsbG9jYXRlX2J1ZmZl cihmZF9oZWFwLCBURU1QX0JVRl9BTExPQ19TSVpFKTsNCj4gPiA+DQo+ID4gPiAgICAgICAgIC8q IGZpbGwgaW4gaW5wdXQgaW1hZ2UgYW5kIGNvbmZpZ3VyYXRpb24gaGVyZSAqLw0KPiA+ID4NCj4g PiA+ICAgICAgICAgZG5uX3NhbXBsZShmZF9kbm4sIGZkX2NvbmYsIGZkX3NyYywgZmRfZHN0LCBm ZF90ZW1wKTsNCj4gPiA+DQo+ID4gPiAgICAgICAgIC4uLg0KPiA+ID4gICAgIH07DQo+ID4gPg0K PiA+ID4NCj4gPiA+ICMjIyMgUmVmZXJlbmNlDQo+ID4gPg0KPiA+ID4gKiBbMF0NCj4gPg0KPiBo dHRwczovL3Rvc2hpYmEuc2VtaWNvbi1zdG9yYWdlLmNvbS9jb250ZW50L2RhbS90b3NoaWJhLXNz LXYyL21hc3Rlci9lDQo+ID4gbiAvY29tcGFueS90ZWNobmljYWwtcmV2aWV3L3BkZi90ZWNobmlj YWwtcmV2aWV3LTE4X2UucGRmDQo+ID4gPiAgICogRmlnIDcuMi4xIHNob3dzIHRoZSB3aG9sZSBh cmNoaXRlY3R1cmUgb2YgcHJvdG90eXBlIGNoaXANCj4gPiA+ICAgKiBGaWcgNy4yLjIgc2hvd3Mg dGhlIGFyY2hpdGVjdHVyZSBvZiBETk4gYWNjZWxlcmF0b3INCj4gPiA+DQo+ID4gPg0KPiA+ID4g UmVnYXJkcywNCj4gPiA+IFl1amkNCj4gPiA+DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+PiBGcm9tOiBIYW5zIFZlcmt1aWwgPGh2ZXJrdWlsQHhzNGFsbC5ubD4NCj4g PiA+PiBTZW50OiBGcmlkYXksIE1heSAyMCwgMjAyMiA3OjAzIFBNDQo+ID4gPj4gVG86IGlzaGlr YXdhIHl1amko55+z5bedIOaCoOWPuCDil4vvvLLvvKTvvKPilqHvvKHvvKnvvLTvvKPil4vvvKXv vKHplospDQo+ID4gPj4gPHl1amkyLmlzaGlrYXdhQHRvc2hpYmEuY28uanA+OyByb2JoK2R0QGtl cm5lbC5vcmc7IGl3YW1hdHN1DQo+ID4gPj4gbm9idWhpcm8o5bKp5p2+DQo+ID4gPj4g5L+h5rSL IOKWoe+8s++8t++8o+KXr++8oe+8o++8tCkgPG5vYnVoaXJvMS5pd2FtYXRzdUB0b3NoaWJhLmNv LmpwPjsNCj4gPiA+PiBzdW1pdC5zZW13YWxAbGluYXJvLm9yZzsgY2hyaXN0aWFuLmtvZW5pZ0Bh bWQuY29tDQo+ID4gPj4gQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsN Cj4gPiA+PiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBsaW51eC1tZWRpYUB2Z2VyLmtl cm5lbC5vcmc7DQo+ID4gPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgbGluYXJv LW1tLXNpZ0BsaXN0cy5saW5hcm8ub3JnDQo+ID4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCAwLzRd IEFkZCBUb3NoaWJhIFZpc2NvbnRpIEROTiBpbWFnZSBwcm9jZXNzaW5nDQo+ID4gPj4gYWNjZWxl cmF0b3IgZHJpdmVyDQo+ID4gPj4NCj4gPiA+PiBIaSBZdWppLA0KPiA+ID4+DQo+ID4gPj4gT24g NS8yMC8yMiAxMTo0OCwgeXVqaTIuaXNoaWthd2FAdG9zaGliYS5jby5qcCB3cm90ZToNCj4gPiA+ Pj4gSGkgSGFucywNCj4gPiA+Pj4NCj4gPiA+Pj4gVGhhbmsgeW91IGZvciB5b3VyIGNvbW1lbnQu DQo+ID4gPj4+IEkgYWdyZWUgdGhhdCB0aGlzIHN1Ym1pc3Npb24gbGFja3MgZG9jdW1lbnRzIHNo YXJpbmcgYmFzaWMgaWRlYSBvZg0KPiA+ID4+PiB0aGUNCj4gPiA+PiBhY2NlbGVyYXRvcnM7IHdo YXQgZG8gdGhleSBhY2NlcHQgYW5kIHdoYXQgZG8gdGhleSB5aWVsZC4NCj4gPiA+Pj4gV2hlcmUg Y2FuIEkgcHV0IGEgbmV3IGRvY3VtZW50PyBDYW4gSSBwdXQgaXQgYXMgYSBjb21tZW50IGluIGEN Cj4gPiA+Pj4gc291cmNlPyBDYW4NCj4gPiA+PiBJIGFkZCBhIGZpbGUgdW5kZXIgRG9jdW1lbnRh dGlvbi9taXNjLWRldmljZXMgZGlyZWN0b3J5Pw0KPiA+ID4+DQo+ID4gPj4gU3RhcnQgd2l0aCBl eHBsYWluaW5nIGl0IGJ5IHJlcGx5aW5nIHRvIHRoaXMgbWFpbC4gV2l0aG91dCBrbm93aW5nDQo+ ID4gPj4gYW55dGhpbmcgYWJvdXQgdGhlIGhhcmR3YXJlLCBpdCBpcyBkaWZmaWN1bHQgdG8gc2F5 IHdoYXQgdGhlIGJlc3QNCj4gPiA+PiBwbGFjZSBpcy4gVXN1YWxseSBpdCBpcyBlaXRoZXIgdGhl IHB1YmxpYyBBUEkgaGVhZGVyLCBvciBzb21ld2hlcmUNCj4gPiA+PiBpbg0KPiA+IERvY3VtZW50 YXRpb24uDQo+ID4gPj4NCj4gPiA+PiBUaGUgZmlyc3Qgc3RlcCBpcyB0byBoYXZlIGEgYmV0dGVy IHVuZGVyc3RhbmRpbmcgb2YgdGhlIFZpc2NvbnRpDQo+ID4gPj4gaW1hZ2UgaGFyZHdhcmUgYW5k IHRvIHNlZSB3aGF0IHRoZSBiZXN0IHN1YnN5c3RlbSB3b3VsZCBiZSB0bw0KPiA+ID4+IHN1cHBv cnQNCj4gPiB0aGF0IGhhcmR3YXJlLg0KPiA+ID4+DQo+ID4gPj4gUmVnYXJkcywNCj4gPiA+Pg0K PiA+ID4+IAlIYW5zDQo+ID4gPj4NCj4gPiA+Pj4NCj4gPiA+Pj4gVGhhbmtzLA0KPiA+ID4+PiBZ dWppIElzaGlrYXdhDQo+ID4gPj4+DQo+ID4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4+Pj4gRnJvbTogSGFucyBWZXJrdWlsIDxodmVya3VpbEB4czRhbGwubmw+DQo+ID4g Pj4+PiBTZW50OiBUaHVyc2RheSwgTWF5IDEyLCAyMDIyIDg6MTUgUE0NCj4gPiA+Pj4+IFRvOiBp c2hpa2F3YSB5dWppKOefs+W3nSDmgqDlj7gg4peL77yy77yk77yj4pah77yh77yp77y077yj4peL 77yl77yh6ZaLKQ0KPiA+ID4+Pj4gPHl1amkyLmlzaGlrYXdhQHRvc2hpYmEuY28uanA+OyBSb2Ig SGVycmluZyA8cm9iaCtkdEBrZXJuZWwub3JnPjsNCj4gPiA+Pj4+IGl3YW1hdHN1IG5vYnVoaXJv KOWyqeadviDkv6HmtIsg4pah77yz77y377yj4pev77yh77yj77y0KQ0KPiA+ID4+Pj4gPG5vYnVo aXJvMS5pd2FtYXRzdUB0b3NoaWJhLmNvLmpwPjsgU3VtaXQgU2Vtd2FsDQo+ID4gPj4+PiA8c3Vt aXQuc2Vtd2FsQGxpbmFyby5vcmc+OyBDaHJpc3RpYW4gS8O2bmlnDQo+ID4gPj4gPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4NCj4gPiA+Pj4+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmc7DQo+ID4gPj4+PiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBsaW51 eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4gPj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnOyBsaW5hcm8tbW0tc2lnQGxpc3RzLmxpbmFyby5vcmcNCj4gPiA+Pj4+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0ggMC80XSBBZGQgVG9zaGliYSBWaXNjb250aSBETk4gaW1hZ2UNCj4gPiA+ Pj4+IHByb2Nlc3NpbmcgYWNjZWxlcmF0b3IgZHJpdmVyDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gSGkg WXVqaSwNCj4gPiA+Pj4+DQo+ID4gPj4+PiBPbiA0LzI4LzIyIDE1OjExLCBZdWppIElzaGlrYXdh IHdyb3RlOg0KPiA+ID4+Pj4+IFRoaXMgc2VyaWVzIGlzIHRoZSBETk4gaW1hZ2UgcHJvY2Vzc2lu ZyBhY2NlbGVyYXRvciBkcml2ZXIgZm9yDQo+ID4gPj4+Pj4gVG9zaGliYSdzIEFSTQ0KPiA+ID4+ Pj4gU29DLCBWaXNjb250aVswXS4NCj4gPiA+Pj4+PiBUaGlzIHByb3ZpZGVzIERUIGJpbmRpbmcg ZG9jdW1lbnRhdGlvbiwgZGV2aWNlIGRyaXZlciwNCj4gPiA+Pj4+PiBNQUlOVEFJTkVSDQo+ID4g Pj4gZmlsZXMuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGUgc2Vjb25kIHBhdGNoICJzb2M6IHZp c2NvbnRpOiBBZGQgVG9zaGliYSBWaXNjb250aSBpbWFnZQ0KPiA+ID4+Pj4+IHByb2Nlc3NpbmcN Cj4gPiA+Pj4+IGFjY2VsZXJhdG9yIGNvbW1vbiBzb3VyY2UiDQo+ID4gPj4+Pj4gYW5kIHRoZSBm b3VydGggcGF0Y2ggIk1BSU5UQUlORVJTOiAuLi4iIGFyZSB0aGUgc2FtZSBhcyB0aGUgb25lcw0K PiA+ID4+Pj4+IGluIHRoZQ0KPiA+ID4+Pj4gcHJlY2VkaW5nIHBvc3QgZm9yIGFmZmluZSBkcml2 ZXIuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gVGhlcmUgYXBwZWFycyB0byBiZSBubyBkb2N1bWVudGF0 aW9uIHdoYXRzb2V2ZXIsIHVubGVzcyBJIGFtDQo+ID4gPj4+PiBtaXNzaW5nIHNvbWV0aGluZy4N Cj4gPiA+Pj4+DQo+ID4gPj4+PiBIb3cgaXMgdGhlIHVBUEkgc3VwcG9zZWQgdG8gYmUgdXNlZD8g V2hhdCBkb2VzIGl0IGRvPyBXaGF0DQo+ID4gPj4+PiBmb3JtYXRzIGRvZXMgaXQgYWNjZXB0IG9y IHByb2R1Y2U/DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gSWYgdGhpcyBwcm9jZXNzZXMgaW1hZ2VzLCB0 aGVuIChhcyBMYXVyZW50IG1lbnRpb25lZCkgdGhpcyBpcw0KPiA+ID4+Pj4gbW9yZSBzdWl0YWJs ZSBhcyBhDQo+ID4gPj4+PiBWNEwyIG1lbTJtZW0gZHJpdmVyLg0KPiA+ID4+Pj4NCj4gPiA+Pj4+ IFNlZQ0KPiA+ID4+Pj4gaHR0cHM6Ly9saW51eHR2Lm9yZy9kb3dubG9hZHMvdjRsLWR2Yi1hcGlz LW5ldy91c2Vyc3BhY2UtYXBpL3Y0bC8NCj4gPiA+Pj4+IGRlDQo+ID4gPj4+PiB2LQ0KPiA+ID4+ Pj4gbWUNCj4gPiA+Pj4+IG0ybWVtLmh0bWwNCj4gPiA+Pj4+IGFuZCB0aGUgbWFueSBkcml2ZXJz IGluIGRyaXZlcnMvbWVkaWEgdGhhdCB1c2UgaXQgKGdpdCBncmVwDQo+ID4gPj4gdjRsMi1tZW0y bWVtLmgpLg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IEJ1dCB3aXRob3V0IGFueSBleHBsYW5hdGlvbiB3 aGF0c29ldmVyIEkgaGF2ZSBubyBpZGVhIHdoYXQgZG9lcw0KPiA+ID4+Pj4gb3IgZG9lcyBub3Qg bWFrZSBzZW5zZS4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBSZWdhcmRzLA0KPiA+ID4+Pj4NCj4gPiA+ Pj4+IAlIYW5zDQo+ID4gPj4+Pg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gQmVzdCByZWdhcmRzLA0K PiA+ID4+Pj4+IFl1amkNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IFswXToNCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4NCj4gPiA+Pg0KPiA+IGh0dHBzOi8vdG9zaGliYS5zZW1pY29uLXN0b3JhZ2UuY29tL2Fw LWVuL3NlbWljb25kdWN0b3IvcHJvZHVjdC9pbWFnZQ0KPiA+ID4+Pj4gLQ0KPiA+ID4+Pj4+IHJl Y29nbml0aW9uLXByb2Nlc3NvcnMtdmlzY29udGkuaHRtbA0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4g WXVqaSBJc2hpa2F3YSAoNCk6DQo+ID4gPj4+Pj4gICBkdC1iaW5kaW5nczogc29jOiB2aXNjb250 aTogQWRkIFRvc2hpYmEgVmlzY29udGkgRE5OIGltYWdlDQo+ID4gcHJvY2Vzc2luZw0KPiA+ID4+ Pj4+ICAgICBhY2NlbGVyYXRvciBiaW5kaW5ncw0KPiA+ID4+Pj4+ICAgc29jOiB2aXNjb250aTog QWRkIFRvc2hpYmEgVmlzY29udGkgaW1hZ2UgcHJvY2Vzc2luZyBhY2NlbGVyYXRvcg0KPiA+ID4+ Pj4+ICAgICBjb21tb24gc291cmNlDQo+ID4gPj4+Pj4gICBzb2M6IHZpc2NvbnRpOiBBZGQgVG9z aGliYSBWaXNjb250aSBETk4gaW1hZ2UgcHJvY2Vzc2luZw0KPiA+IGFjY2VsZXJhdG9yDQo+ID4g Pj4+Pj4gICBNQUlOVEFJTkVSUzogQWRkIGVudHJpZXMgZm9yIFRvc2hpYmEgVmlzY29udGkgRE5O IGltYWdlDQo+ID4gcHJvY2Vzc2luZw0KPiA+ID4+Pj4+ICAgICBhY2NlbGVyYXRvcg0KPiA+ID4+ Pj4+DQo+ID4gPj4+Pj4gIC4uLi9zb2MvdmlzY29udGkvdG9zaGliYSx2aXNjb250aS1kbm4ueWFt bCAgICB8ICA1NCArKw0KPiA+ID4+Pj4+ICBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKw0KPiA+ID4+Pj4+ICBkcml2ZXJzL3NvYy9LY29uZmlnICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ID4+Pj4+ICBkcml2ZXJzL3NvYy9N YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ID4+Pj4+ICBkcml2 ZXJzL3NvYy92aXNjb250aS9LY29uZmlnICAgICAgICAgICAgICAgICAgfCAgIDcgKw0KPiA+ID4+ Pj4+ICBkcml2ZXJzL3NvYy92aXNjb250aS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDgg Kw0KPiA+ID4+Pj4+ICBkcml2ZXJzL3NvYy92aXNjb250aS9kbm4vTWFrZWZpbGUgICAgICAgICAg ICAgfCAgIDYgKw0KPiA+ID4+Pj4+ICBkcml2ZXJzL3NvYy92aXNjb250aS9kbm4vZG5uLmMgICAg ICAgICAgICAgICAgfCA1MzMNCj4gPiA+Pj4+ICsrKysrKysrKysrKysrKysrKw0KPiA+ID4+Pj4+ ICBkcml2ZXJzL3NvYy92aXNjb250aS9kbm4vaHdkX2Rubi5jICAgICAgICAgICAgfCAxODMgKysr KysrDQo+ID4gPj4+Pj4gIGRyaXZlcnMvc29jL3Zpc2NvbnRpL2Rubi9od2RfZG5uLmggICAgICAg ICAgICB8ICA2OCArKysNCj4gPiA+Pj4+PiAgZHJpdmVycy9zb2MvdmlzY29udGkvZG5uL2h3ZF9k bm5fcmVnLmggICAgICAgIHwgMjI4DQo+ICsrKysrKysrDQo+ID4gPj4+Pj4gIGRyaXZlcnMvc29j L3Zpc2NvbnRpL2lwYV9jb21tb24uYyAgICAgICAgICAgICB8ICA1NSArKw0KPiA+ID4+Pj4+ICBk cml2ZXJzL3NvYy92aXNjb250aS9pcGFfY29tbW9uLmggICAgICAgICAgICAgfCAgMTggKw0KPiA+ ID4+Pj4+ICBkcml2ZXJzL3NvYy92aXNjb250aS91YXBpL2Rubi5oICAgICAgICAgICAgICAgfCAg NzcgKysrDQo+ID4gPj4+Pj4gIGRyaXZlcnMvc29jL3Zpc2NvbnRpL3VhcGkvaXBhLmggICAgICAg ICAgICAgICB8ICA4OCArKysNCj4gPiA+Pj4+PiAgMTUgZmlsZXMgY2hhbmdlZCwgMTMyOSBpbnNl cnRpb25zKCspICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+Pj4+Pg0KPiA+IERvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb2MvdmlzY29udGkvdG9zaGliYSx2aXNjb250aS1kbm4u DQo+ID4gPj4+Pj4geWEgbWwgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3NvYy92aXNjb250 aS9LY29uZmlnICBjcmVhdGUNCj4gPiA+Pj4+PiBtb2RlDQo+ID4gPj4+Pj4gMTAwNjQ0IGRyaXZl cnMvc29jL3Zpc2NvbnRpL01ha2VmaWxlICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+Pj4+PiBk cml2ZXJzL3NvYy92aXNjb250aS9kbm4vTWFrZWZpbGUgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ ID4+Pj4+IGRyaXZlcnMvc29jL3Zpc2NvbnRpL2Rubi9kbm4uYyAgY3JlYXRlIG1vZGUgMTAwNjQ0 DQo+ID4gPj4+Pj4gZHJpdmVycy9zb2MvdmlzY29udGkvZG5uL2h3ZF9kbm4uYw0KPiA+ID4+Pj4+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2MvdmlzY29udGkvZG5uL2h3ZF9kbm4uaA0K PiA+ID4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2MvdmlzY29udGkvZG5uL2h3 ZF9kbm5fcmVnLmgNCj4gPiA+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc29jL3Zp c2NvbnRpL2lwYV9jb21tb24uYyAgY3JlYXRlDQo+ID4gbW9kZQ0KPiA+ID4+Pj4+IDEwMDY0NCBk cml2ZXJzL3NvYy92aXNjb250aS9pcGFfY29tbW9uLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ ID4+Pj4+IGRyaXZlcnMvc29jL3Zpc2NvbnRpL3VhcGkvZG5uLmggIGNyZWF0ZSBtb2RlIDEwMDY0 NA0KPiA+ID4+Pj4+IGRyaXZlcnMvc29jL3Zpc2NvbnRpL3VhcGkvaXBhLmgNCj4gPiA+Pj4+Pg0K