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=-6.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 D65C7C4321A for ; Tue, 11 Jun 2019 18:46:46 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9B559217F5 for ; Tue, 11 Jun 2019 18:46:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=epam.com header.i=@epam.com header.b="clXC4hiU" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9B559217F5 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=epam.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1halmw-0006EU-SI; Tue, 11 Jun 2019 18:46:30 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1halmv-0006ED-IT for xen-devel@lists.xenproject.org; Tue, 11 Jun 2019 18:46:29 +0000 X-Inumbo-ID: 36c68173-8c79-11e9-8980-bc764e045a96 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (unknown [2a01:111:f400:fe1f::625]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 36c68173-8c79-11e9-8980-bc764e045a96; Tue, 11 Jun 2019 18:46:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fdKtgQBHRgyN5noxGmY/BPCch/F4mbfUB0TXQacpVRg=; b=clXC4hiUPGjOaotmCrD+GClqiYzbKRGj0sofa1h/Gf1hFQqmfV8mGq+ekFguCVuYm+ud6SgKnfAM6bI43MHaPGpFb6dCUDf1ACZSCO8z/HxPPjCi5UKRcXxooVVyKyXPRqCcjf9GsWwgVHXA6fLZqccHcxyRBKbmcwC/XKCh1cpfPSa3nNFys2W0AvvU2eiUSURBKDrZnDEGHpJfG/Dn36og8LChYmZ8uuPYdV1/XUQK1TUTilycEhVW4t3uRwHsvwRsSnh7exOu6zSC17D3RGyLEv/FeBZku9bS0zmCNKlxInU3uyDe34ZMWbnMDTfSbHfoCsZVJmtXfLVoyrSQ9g== Received: from AM0PR03MB4148.eurprd03.prod.outlook.com (20.176.214.210) by AM0PR03MB3795.eurprd03.prod.outlook.com (52.135.146.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.17; Tue, 11 Jun 2019 18:46:22 +0000 Received: from AM0PR03MB4148.eurprd03.prod.outlook.com ([fe80::d09e:ef3:88b6:b1eb]) by AM0PR03MB4148.eurprd03.prod.outlook.com ([fe80::d09e:ef3:88b6:b1eb%7]) with mapi id 15.20.1965.011; Tue, 11 Jun 2019 18:46:22 +0000 From: Volodymyr Babchuk To: "xen-devel@lists.xenproject.org" Thread-Topic: [PATCH v6 02/10] xen/arm: optee: add OP-TEE header files Thread-Index: AQHVIIX37ZFOBrrXb0+qEYTvdNWdKA== Date: Tue, 11 Jun 2019 18:46:22 +0000 Message-ID: <20190611184541.7281-3-volodymyr_babchuk@epam.com> References: <20190611184541.7281-1-volodymyr_babchuk@epam.com> In-Reply-To: <20190611184541.7281-1-volodymyr_babchuk@epam.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Volodymyr_Babchuk@epam.com; x-originating-ip: [85.223.209.22] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 61769d73-a45f-4d4f-d6c0-08d6ee9d19c3 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:AM0PR03MB3795; x-ms-traffictypediagnostic: AM0PR03MB3795: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:341; x-forefront-prvs: 006546F32A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(136003)(376002)(396003)(366004)(189003)(199004)(73956011)(256004)(1076003)(305945005)(5660300002)(30864003)(14444005)(76116006)(486006)(7736002)(966005)(91956017)(53936002)(14454004)(71190400001)(71200400001)(26005)(80792005)(76176011)(66946007)(2501003)(6506007)(102836004)(25786009)(55236004)(186003)(36756003)(86362001)(68736007)(2351001)(99286004)(2906002)(81166006)(81156014)(66476007)(4326008)(5640700003)(8676002)(8936002)(53946003)(6306002)(64756008)(66446008)(6512007)(478600001)(66556008)(316002)(6486002)(54906003)(2616005)(446003)(347745004)(6116002)(6436002)(3846002)(66066001)(11346002)(72206003)(476003)(6916009)(559001)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR03MB3795; H:AM0PR03MB4148.eurprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: epam.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: IyOZJdC/PMZiLhBwYhBKuF7tFMPKD6vQOmYqE5CgkLd3t1CRNepS7zCIydtQcFPZCbNFJODGrQThJLn7YOw3C8vts3FEcDS2rsk7AqZK8x77vJqWjc40z6/GuivvZJpl1z0RaVZEm43kD1iXausrcKEhuRrD27Vm65jwfI8iWcsftUQSyNz1TPlDII8O5O0UBkvqxBZPjJNafyEtuA5KWJhLjHXLXuiB71+jpohg+FaPqT8hssYuzKLgk1EBHkNJHT9jZNBnt77UvmmaHV3pasotFvQT0EnQ98P8AIqkrMs1aJj/Awwi4nKLOdjPZwYZBM9miZeBkIUCqlHUp5FxV47zvUWRH8hasbkxjv9WP4Rh9rfydgA7nV/4Bj1KO11x/7QdOFE5n/lb2lZvoCjsI7/1eDDD23WLkD0lsAhYeEw= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61769d73-a45f-4d4f-d6c0-08d6ee9d19c3 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jun 2019 18:46:22.7825 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Volodymyr_Babchuk@epam.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB3795 Subject: [Xen-devel] [PATCH v6 02/10] xen/arm: optee: add OP-TEE header files X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: "tee-dev@lists.linaro.org" , Julien Grall , Stefano Stabellini , Volodymyr Babchuk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhpcyBoZWFkZXIgZmlsZXMgZGVzY3JpYmVzIHByb3RvY29sIGJldHdlZW4gT1AtVEVFIE9TIGFu ZCBPUC1URUUKY2xpZW50cywgd2hpY2ggYXJlIHJ1bm5pbmcgaW4gTm9ybWFsIFdvcmxkLiBUaGlz IGhlYWRlcnMgYXJlIG5lZWRlZApmb3IgdXBjb21pbmcgT1AtVEVFIG1lZGlhdG9yLCB3aGljaCBp cyBhZGRlZCBpbiB0aGUgbmV4dCBwYXRjaC4gUmVhc29uCnRvIGFkZCB0aG9zZSBoZWFkZXJzIGlu IHNlcGFyYXRlIHBhdGNoIGlzIHRvIGVhc2UgdXAgcmV2aWV3LiBUaG9zZQpmaWxlcyB3ZXJlIHRh a2VuIGZyb20gT1AtVEVFIE9TIDMuNS4wIHRyZWUgYW5kIG1hbmdsZWQgYSBiaXQgdG8KY29tcGls ZSB3aXRoIFhFTi4KCkxvY2F0aW9uIG9mIHRoZSBmaWxlcyBpbiB0aGUgb3JpZ2luYWwgdHJlZToK CmNvcmUvaW5jbHVkZS9vcHRlZV9tc2cuaApjb3JlL2luY2x1ZGUvb3B0ZWVfcnBjX2NtZC5oCmNv cmUvYXJjaC9hcm0vaW5jbHVkZS9zbS9vcHRlZV9zbWMuaAoKW09QLVRFRSBjb21taXQgaWQgNWRm MmE5ODViMmZmZDBiNmYxMTA3ZjEyY2EyYTg4MjAzYmYzMTMyOF0KClNpZ25lZC1vZmYtYnk6IFZv bG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4KCi0tLQogQ2hhbmdl cyBmcm9tIHY1OgogLSBVc2VkIG9wdGVlX29zIGhlYWRlcnMgaW5zdGVhZCBvZiBsaW51eCBvbmVz CgogQ2hhbmdlcyBmcm9tIHY0OgogLSBVcGRhdGVkIHRvIGxhdGVzdCBPUC1URUUgdmVyc2lvbiBi ZWNhdXNlIG9mIGFkZGluZwogICBPUFRFRV9TTUNfR0VUX1RIUkVBRF9DT1VOVCBjYWxsIHdoaWNo IHdpbGwgYmUgcmVsZWFzZWQgd2l0aAogICBPUC1URUUgMy41LjAKCkNoYW5nZXMgZnJvbSB2MzoK IC0gVXBkYXRlZCB0byBsYXRlc3QgT1AtVEVFIHZlcnNpb24gYmVjYXVzZSB2aXJ0dWFsaXphdGlv bgogICBzdXBwb3J0IHRvIE9QLVRFRSB3YXMgbWVyZ2VkIGludG8gbWFpbmxpbmUuCi0tLQogeGVu L2luY2x1ZGUvYXNtLWFybS90ZWUvb3B0ZWVfbXNnLmggICAgIHwgMzEwICsrKysrKysrKysrKysK IHhlbi9pbmNsdWRlL2FzbS1hcm0vdGVlL29wdGVlX3JwY19jbWQuaCB8IDMxOCArKysrKysrKysr KysrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3RlZS9vcHRlZV9zbWMuaCAgICAgfCA1NjQgKysrKysr KysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDExOTIgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL2FzbS1hcm0vdGVlL29wdGVlX21zZy5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUvYXNtLWFybS90ZWUvb3B0ZWVfcnBjX2NtZC5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUvYXNtLWFybS90ZWUvb3B0ZWVfc21jLmgK CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3RlZS9vcHRlZV9tc2cuaCBiL3hlbi9p bmNsdWRlL2FzbS1hcm0vdGVlL29wdGVlX21zZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLmZlNzQzZGJkZTMKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS9h c20tYXJtL3RlZS9vcHRlZV9tc2cuaApAQCAtMCwwICsxLDMxMCBAQAorLyogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZSAqLworLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNS0y MDE3LCBMaW5hcm8gTGltaXRlZAorICovCisjaWZuZGVmIF9PUFRFRV9NU0dfSAorI2RlZmluZSBf T1BURUVfTVNHX0gKKworI2luY2x1ZGUgPHhlbi9iaXRvcHMuaD4KKyNpbmNsdWRlIDx4ZW4vdHlw ZXMuaD4KKworLyoKKyAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBPUC1URUUgbWVzc2FnZSBwcm90 b2NvbCB1c2VkIHRvIGNvbW11bmljYXRlCisgKiB3aXRoIGFuIGluc3RhbmNlIG9mIE9QLVRFRSBy dW5uaW5nIGluIHNlY3VyZSB3b3JsZC4KKyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAq IFBhcnQgMSAtIGZvcm1hdHRpbmcgb2YgbWVzc2FnZXMKKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K KworI2RlZmluZSBPUFRFRV9NU0dfQVRUUl9UWVBFX05PTkUJCTB4MAorI2RlZmluZSBPUFRFRV9N U0dfQVRUUl9UWVBFX1ZBTFVFX0lOUFVUCQkweDEKKyNkZWZpbmUgT1BURUVfTVNHX0FUVFJfVFlQ RV9WQUxVRV9PVVRQVVQJMHgyCisjZGVmaW5lIE9QVEVFX01TR19BVFRSX1RZUEVfVkFMVUVfSU5P VVQJCTB4MworI2RlZmluZSBPUFRFRV9NU0dfQVRUUl9UWVBFX1JNRU1fSU5QVVQJCTB4NQorI2Rl ZmluZSBPUFRFRV9NU0dfQVRUUl9UWVBFX1JNRU1fT1VUUFVUCQkweDYKKyNkZWZpbmUgT1BURUVf TVNHX0FUVFJfVFlQRV9STUVNX0lOT1VUCQkweDcKKyNkZWZpbmUgT1BURUVfTVNHX0FUVFJfVFlQ RV9UTUVNX0lOUFVUCQkweDkKKyNkZWZpbmUgT1BURUVfTVNHX0FUVFJfVFlQRV9UTUVNX09VVFBV VAkJMHhhCisjZGVmaW5lIE9QVEVFX01TR19BVFRSX1RZUEVfVE1FTV9JTk9VVAkJMHhiCisKKyNk ZWZpbmUgT1BURUVfTVNHX0FUVFJfVFlQRV9NQVNLCQlHRU5NQVNLKDcsIDApCisKKy8qCisgKiBN ZXRhIHBhcmFtZXRlciB0byBiZSBhYnNvcmJlZCBieSB0aGUgU2VjdXJlIE9TIGFuZCBub3QgcGFz c2VkCisgKiB0byB0aGUgVHJ1c3RlZCBBcHBsaWNhdGlvbi4KKyAqCisgKiBDdXJyZW50bHkgb25s eSB1c2VkIHdpdGggT1BURUVfTVNHX0NNRF9PUEVOX1NFU1NJT04uCisgKi8KKyNkZWZpbmUgT1BU RUVfTVNHX0FUVFJfTUVUQQkJCUJJVCg4LCBVTCkKKworLyoKKyAqIFBvaW50ZXIgdG8gYSBsaXN0 IG9mIHBhZ2VzIHVzZWQgdG8gcmVnaXN0ZXIgdXNlci1kZWZpbmVkIFNITSBidWZmZXIuCisgKiBV c2VkIHdpdGggT1BURUVfTVNHX0FUVFJfVFlQRV9UTUVNXyouCisgKiBidWZfcHRyIHNob3VsZCBw b2ludCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBidWZmZXIuIEJ1ZmZlciB3aWxsIGNvbnRhaW4K KyAqIGxpc3Qgb2YgcGFnZSBhZGRyZXNzZXMuIE9QLVRFRSBjb3JlIGNhbiByZWNvbnN0cnVjdCBj b250aWd1b3VzIGJ1ZmZlciBmcm9tCisgKiB0aGF0IHBhZ2UgYWRkcmVzc2VzIGxpc3QuIFBhZ2Ug YWRkcmVzc2VzIGFyZSBzdG9yZWQgYXMgNjQgYml0IHZhbHVlcy4KKyAqIExhc3QgZW50cnkgb24g YSBwYWdlIHNob3VsZCBwb2ludCB0byB0aGUgbmV4dCBwYWdlIG9mIGJ1ZmZlci4KKyAqIEV2ZXJ5 IGVudHJ5IGluIGJ1ZmZlciBzaG91bGQgcG9pbnQgdG8gYSA0ayBwYWdlIGJlZ2lubmluZyAoMTIg bGVhc3QKKyAqIHNpZ25pZmljYW50IGJpdHMgbXVzdCBiZSBlcXVhbCB0byB6ZXJvKS4KKyAqCisg KiAxMiBsZWFzdCBzaWduaWZpY2FudCBvZiBvcHRlZV9tc2dfcGFyYW0udS50bWVtLmJ1Zl9wdHIg c2hvdWxkIGhvbGQgcGFnZQorICogb2Zmc2V0IG9mIHVzZXIgYnVmZmVyLgorICoKKyAqIFNvLCBl bnRyaWVzIHNob3VsZCBiZSBwbGFjZWQgbGlrZSBtZW1iZXJzIG9mIHRoaXMgc3RydWN0dXJlOgor ICoKKyAqIHN0cnVjdCBwYWdlX2RhdGEgeworICogICB1aW50NjRfdCBwYWdlc19hcnJheVtPUFRF RV9NU0dfTk9OQ09OVElHX1BBR0VfU0laRS9zaXplb2YodWludDY0X3QpIC0gMV07CisgKiAgIHVp bnQ2NF90IG5leHRfcGFnZV9kYXRhOworICogfTsKKyAqCisgKiBTdHJ1Y3R1cmUgaXMgZGVzaWdu ZWQgdG8gZXhhY3RseSBmaXQgaW50byB0aGUgcGFnZSBzaXplCisgKiBPUFRFRV9NU0dfTk9OQ09O VElHX1BBR0VfU0laRSB3aGljaCBpcyBhIHN0YW5kYXJkIDRLQiBwYWdlLgorICoKKyAqIFRoZSBz aXplIG9mIDRLQiBpcyBjaG9zZW4gYmVjYXVzZSB0aGlzIGlzIHRoZSBzbWFsbGVzdCBwYWdlIHNp emUgZm9yIEFSTQorICogYXJjaGl0ZWN0dXJlcy4gSWYgUkVFIHVzZXMgbGFyZ2VyIHBhZ2VzLCBp dCBzaG91bGQgZGl2aWRlIHRoZW0gdG8gNEtCIG9uZXMuCisgKi8KKyNkZWZpbmUgT1BURUVfTVNH X0FUVFJfTk9OQ09OVElHCQlCSVQoOSwgVUwpCisKKy8qCisgKiBNZW1vcnkgYXR0cmlidXRlcyBm b3IgY2FjaGluZyBwYXNzZWQgd2l0aCB0ZW1wIG1lbXJlZnMuIFRoZSBhY3R1YWwgdmFsdWUKKyAq IHVzZWQgaXMgZGVmaW5lZCBvdXRzaWRlIHRoZSBtZXNzYWdlIHByb3RvY29sIHdpdGggdGhlIGV4 Y2VwdGlvbiBvZgorICogT1BURUVfTVNHX0FUVFJfQ0FDSEVfUFJFREVGSU5FRCB3aGljaCBtZWFu cyB0aGUgYXR0cmlidXRlcyBhbHJlYWR5CisgKiBkZWZpbmVkIGZvciB0aGUgbWVtb3J5IHJhbmdl IHNob3VsZCBiZSB1c2VkLiBJZiBvcHRlZV9zbWMuaCBpcyB1c2VkIGFzCisgKiBiZWFyZXIgb2Yg dGhpcyBwcm90b2NvbCBPUFRFRV9TTUNfU0hNXyogaXMgdXNlZCBmb3IgdmFsdWVzLgorICovCisj ZGVmaW5lIE9QVEVFX01TR19BVFRSX0NBQ0hFX1NISUZUCQkxNgorI2RlZmluZSBPUFRFRV9NU0df QVRUUl9DQUNIRV9NQVNLCQlHRU5NQVNLKDIsIDApCisjZGVmaW5lIE9QVEVFX01TR19BVFRSX0NB Q0hFX1BSRURFRklORUQJCTAKKworLyoKKyAqIFNhbWUgdmFsdWVzIGFzIFRFRV9MT0dJTl8qIGZy b20gVEVFIEludGVybmFsIEFQSQorICovCisjZGVmaW5lIE9QVEVFX01TR19MT0dJTl9QVUJMSUMJ CQkweDAwMDAwMDAwCisjZGVmaW5lIE9QVEVFX01TR19MT0dJTl9VU0VSCQkJMHgwMDAwMDAwMQor I2RlZmluZSBPUFRFRV9NU0dfTE9HSU5fR1JPVVAJCQkweDAwMDAwMDAyCisjZGVmaW5lIE9QVEVF X01TR19MT0dJTl9BUFBMSUNBVElPTgkJMHgwMDAwMDAwNAorI2RlZmluZSBPUFRFRV9NU0dfTE9H SU5fQVBQTElDQVRJT05fVVNFUgkweDAwMDAwMDA1CisjZGVmaW5lIE9QVEVFX01TR19MT0dJTl9B UFBMSUNBVElPTl9HUk9VUAkweDAwMDAwMDA2CisKKy8qCisgKiBQYWdlIHNpemUgdXNlZCBpbiBu b24tY29udGlndW91cyBidWZmZXIgZW50cmllcworICovCisjZGVmaW5lIE9QVEVFX01TR19OT05D T05USUdfUEFHRV9TSVpFCQk0MDk2CisKKyNpZm5kZWYgQVNNCisvKioKKyAqIHN0cnVjdCBvcHRl ZV9tc2dfcGFyYW1fdG1lbSAtIHRlbXBvcmFyeSBtZW1vcnkgcmVmZXJlbmNlIHBhcmFtZXRlcgor ICogQGJ1Zl9wdHI6CUFkZHJlc3Mgb2YgdGhlIGJ1ZmZlcgorICogQHNpemU6CVNpemUgb2YgdGhl IGJ1ZmZlcgorICogQHNobV9yZWY6CVRlbXBvcmFyeSBzaGFyZWQgbWVtb3J5IHJlZmVyZW5jZSwg cG9pbnRlciB0byBhIHN0cnVjdCB0ZWVfc2htCisgKgorICogU2VjdXJlIGFuZCBub3JtYWwgd29y bGQgY29tbXVuaWNhdGVzIHBvaW50ZXJzIGFzIHBoeXNpY2FsIGFkZHJlc3MKKyAqIGluc3RlYWQg b2YgdGhlIHZpcnR1YWwgYWRkcmVzcy4gVGhpcyBpcyBiZWNhdXNlIHNlY3VyZSBhbmQgbm9ybWFs IHdvcmxkCisgKiBoYXZlIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgbWVtb3J5IG1hcHBpbmcuIE5v cm1hbCB3b3JsZCBjYW4gZXZlbiBoYXZlIGEKKyAqIGh5cGVydmlzb3Igd2hpY2ggbmVlZCB0byB0 cmFuc2xhdGUgdGhlIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MgKEFLQSBJUEEKKyAqIGluIEFSTSBk b2N1bWVudGF0aW9uKSB0byBhIHJlYWwgcGh5c2ljYWwgYWRkcmVzcyBiZWZvcmUgcGFzc2luZyB0 aGUKKyAqIHN0cnVjdHVyZSB0byBzZWN1cmUgd29ybGQuCisgKi8KK3N0cnVjdCBvcHRlZV9tc2df cGFyYW1fdG1lbSB7CisJdWludDY0X3QgYnVmX3B0cjsKKwl1aW50NjRfdCBzaXplOworCXVpbnQ2 NF90IHNobV9yZWY7Cit9OworCisvKioKKyAqIHN0cnVjdCBvcHRlZV9tc2dfcGFyYW1fcm1lbSAt IHJlZ2lzdGVyZWQgbWVtb3J5IHJlZmVyZW5jZSBwYXJhbWV0ZXIKKyAqIEBvZmZzOglPZmZzZXQg aW50byBzaGFyZWQgbWVtb3J5IHJlZmVyZW5jZQorICogQHNpemU6CVNpemUgb2YgdGhlIGJ1ZmZl cgorICogQHNobV9yZWY6CVNoYXJlZCBtZW1vcnkgcmVmZXJlbmNlLCBwb2ludGVyIHRvIGEgc3Ry dWN0IHRlZV9zaG0KKyAqLworc3RydWN0IG9wdGVlX21zZ19wYXJhbV9ybWVtIHsKKwl1aW50NjRf dCBvZmZzOworCXVpbnQ2NF90IHNpemU7CisJdWludDY0X3Qgc2htX3JlZjsKK307CisKKy8qKgor ICogc3RydWN0IG9wdGVlX21zZ19wYXJhbV92YWx1ZSAtIHZhbHVlcworICogQGE6IGZpcnN0IHZh bHVlCisgKiBAYjogc2Vjb25kIHZhbHVlCisgKiBAYzogdGhpcmQgdmFsdWUKKyAqLworc3RydWN0 IG9wdGVlX21zZ19wYXJhbV92YWx1ZSB7CisJdWludDY0X3QgYTsKKwl1aW50NjRfdCBiOworCXVp bnQ2NF90IGM7Cit9OworCisvKioKKyAqIHN0cnVjdCBvcHRlZV9tc2dfcGFyYW0gLSBwYXJhbWV0 ZXIKKyAqIEBhdHRyOiBhdHRyaWJ1dGVzCisgKiBAbWVtcmVmOiBhIG1lbW9yeSByZWZlcmVuY2UK KyAqIEB2YWx1ZTogYSB2YWx1ZQorICoKKyAqIEBhdHRyICYgT1BURUVfTVNHX0FUVFJfVFlQRV9N QVNLIGluZGljYXRlcyBpZiB0bWVtLCBybWVtIG9yIHZhbHVlIGlzIHVzZWQgaW4KKyAqIHRoZSB1 bmlvbi4gT1BURUVfTVNHX0FUVFJfVFlQRV9WQUxVRV8qIGluZGljYXRlcyB2YWx1ZSwKKyAqIE9Q VEVFX01TR19BVFRSX1RZUEVfVE1FTV8qIGluZGljYXRlcyB0bWVtIGFuZAorICogT1BURUVfTVNH X0FUVFJfVFlQRV9STUVNXyogaW5kaWNhdGVzIHJtZW0uCisgKiBPUFRFRV9NU0dfQVRUUl9UWVBF X05PTkUgaW5kaWNhdGVzIHRoYXQgbm9uZSBvZiB0aGUgbWVtYmVycyBhcmUgdXNlZC4KKyAqLwor c3RydWN0IG9wdGVlX21zZ19wYXJhbSB7CisJdWludDY0X3QgYXR0cjsKKwl1bmlvbiB7CisJCXN0 cnVjdCBvcHRlZV9tc2dfcGFyYW1fdG1lbSB0bWVtOworCQlzdHJ1Y3Qgb3B0ZWVfbXNnX3BhcmFt X3JtZW0gcm1lbTsKKwkJc3RydWN0IG9wdGVlX21zZ19wYXJhbV92YWx1ZSB2YWx1ZTsKKwl9IHU7 Cit9OworCisvKioKKyAqIHN0cnVjdCBvcHRlZV9tc2dfYXJnIC0gY2FsbCBhcmd1bWVudAorICog QGNtZDogQ29tbWFuZCwgb25lIG9mIE9QVEVFX01TR19DTURfKiBvciBPUFRFRV9NU0dfUlBDX0NN RF8qCisgKiBAZnVuYzogVHJ1c3RlZCBBcHBsaWNhdGlvbiBmdW5jdGlvbiwgc3BlY2lmaWMgdG8g dGhlIFRydXN0ZWQgQXBwbGljYXRpb24sCisgKgkgICAgIHVzZWQgaWYgY21kID09IE9QVEVFX01T R19DTURfSU5WT0tFX0NPTU1BTkQKKyAqIEBzZXNzaW9uOiBJbiBwYXJhbWV0ZXIgZm9yIGFsbCBP UFRFRV9NU0dfQ01EXyogZXhjZXB0CisgKgkgICAgIE9QVEVFX01TR19DTURfT1BFTl9TRVNTSU9O IHdoZXJlIGl0J3MgYW4gb3V0cHV0IHBhcmFtZXRlciBpbnN0ZWFkCisgKiBAY2FuY2VsX2lkOiBD YW5jZWxsYXRpb24gaWQsIGEgdW5pcXVlIHZhbHVlIHRvIGlkZW50aWZ5IHRoaXMgcmVxdWVzdAor ICogQHJldDogcmV0dXJuIHZhbHVlCisgKiBAcmV0X29yaWdpbjogb3JpZ2luIG9mIHRoZSByZXR1 cm4gdmFsdWUKKyAqIEBudW1fcGFyYW1zOiBudW1iZXIgb2YgcGFyYW1ldGVycyBzdXBwbGllZCB0 byB0aGUgT1MgQ29tbWFuZAorICogQHBhcmFtczogdGhlIHBhcmFtZXRlcnMgc3VwcGxpZWQgdG8g dGhlIE9TIENvbW1hbmQKKyAqCisgKiBBbGwgbm9ybWFsIGNhbGxzIHRvIFRydXN0ZWQgT1MgdXNl cyB0aGlzIHN0cnVjdC4gSWYgY21kIHJlcXVpcmVzIGZ1cnRoZXIKKyAqIGluZm9ybWF0aW9uIHRo YW4gd2hhdCB0aGVzZSBmaWVsZHMgaG9sZCBpdCBjYW4gYmUgcGFzc2VkIGFzIGEgcGFyYW1ldGVy CisgKiB0YWdnZWQgYXMgbWV0YSAoc2V0dGluZyB0aGUgT1BURUVfTVNHX0FUVFJfTUVUQSBiaXQg aW4gY29ycmVzcG9uZGluZworICogYXR0cnMgZmllbGQpLiBBbGwgcGFyYW1ldGVycyB0YWdnZWQg YXMgbWV0YSBoYXZlIHRvIGNvbWUgZmlyc3QuCisgKi8KK3N0cnVjdCBvcHRlZV9tc2dfYXJnIHsK Kwl1aW50MzJfdCBjbWQ7CisJdWludDMyX3QgZnVuYzsKKwl1aW50MzJfdCBzZXNzaW9uOworCXVp bnQzMl90IGNhbmNlbF9pZDsKKwl1aW50MzJfdCBwYWQ7CisJdWludDMyX3QgcmV0OworCXVpbnQz Ml90IHJldF9vcmlnaW47CisJdWludDMyX3QgbnVtX3BhcmFtczsKKworCS8qIG51bV9wYXJhbXMg dGVsbHMgdGhlIGFjdHVhbCBudW1iZXIgb2YgZWxlbWVudCBpbiBwYXJhbXMgKi8KKwlzdHJ1Y3Qg b3B0ZWVfbXNnX3BhcmFtIHBhcmFtc1tdOworfTsKKworLyoqCisgKiBPUFRFRV9NU0dfR0VUX0FS R19TSVpFIC0gcmV0dXJuIHNpemUgb2Ygc3RydWN0IG9wdGVlX21zZ19hcmcKKyAqCisgKiBAbnVt X3BhcmFtczogTnVtYmVyIG9mIHBhcmFtZXRlcnMgZW1iZWRkZWQgaW4gdGhlIHN0cnVjdCBvcHRl ZV9tc2dfYXJnCisgKgorICogUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0IG9wdGVlX21z Z19hcmcgdG9nZXRoZXIgd2l0aCB0aGUgbnVtYmVyCisgKiBvZiBlbWJlZGRlZCBwYXJhbWV0ZXJz LgorICovCisjZGVmaW5lIE9QVEVFX01TR19HRVRfQVJHX1NJWkUobnVtX3BhcmFtcykgXAorCShz aXplb2Yoc3RydWN0IG9wdGVlX21zZ19hcmcpICsgXAorCSBzaXplb2Yoc3RydWN0IG9wdGVlX21z Z19wYXJhbSkgKiAobnVtX3BhcmFtcykpCisKKy8qCisgKiBEZWZpbmVzIHRoZSBtYXhpbXVtIHZh bHVlIG9mIEBudW1fcGFyYW1zIHRoYXQgY2FuIGJlIHBhc3NlZCB0bworICogT1BURUVfTVNHX0dF VF9BUkdfU0laRSB3aXRob3V0IGEgcmlzayBvZiBjcm9zc2luZyBwYWdlIGJvdW5kYXJ5LgorICov CisjZGVmaW5lIE9QVEVFX01TR19NQVhfTlVNX1BBUkFNUwlcCisJKChPUFRFRV9NU0dfTk9OQ09O VElHX1BBR0VfU0laRSAtIHNpemVvZihzdHJ1Y3Qgb3B0ZWVfbXNnX2FyZykpIC8gXAorCSBzaXpl b2Yoc3RydWN0IG9wdGVlX21zZ19wYXJhbSkpCisKKyNlbmRpZiAvKkFTTSovCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorICogUGFydCAyIC0gcmVxdWVzdHMgZnJvbSBub3JtYWwgd29ybGQKKyAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIFJldHVybiB0aGUgZm9sbG93aW5nIFVJRCBp ZiB1c2luZyBBUEkgc3BlY2lmaWVkIGluIHRoaXMgZmlsZSB3aXRob3V0CisgKiBmdXJ0aGVyIGV4 dGVuc2lvbnM6CisgKiAzODRmYjNlMC1lN2Y4LTExZTMtYWY2My0wMDAyYTVkNWM1MWIuCisgKiBS ZXByZXNlbnRlZCBpbiA0IDMyLWJpdCB3b3JkcyBpbiBPUFRFRV9NU0dfVUlEXzAsIE9QVEVFX01T R19VSURfMSwKKyAqIE9QVEVFX01TR19VSURfMiwgT1BURUVfTVNHX1VJRF8zLgorICovCisjZGVm aW5lIE9QVEVFX01TR19VSURfMAkJCTB4Mzg0ZmIzZTAKKyNkZWZpbmUgT1BURUVfTVNHX1VJRF8x CQkJMHhlN2Y4MTFlMworI2RlZmluZSBPUFRFRV9NU0dfVUlEXzIJCQkweGFmNjMwMDAyCisjZGVm aW5lIE9QVEVFX01TR19VSURfMwkJCTB4YTVkNWM1MWIKKyNkZWZpbmUgT1BURUVfTVNHX0ZVTkNJ RF9DQUxMU19VSUQJMHhGRjAxCisKKy8qCisgKiBSZXR1cm5zIDIuMCBpZiB1c2luZyBBUEkgc3Bl Y2lmaWVkIGluIHRoaXMgZmlsZSB3aXRob3V0IGZ1cnRoZXIKKyAqIGV4dGVuc2lvbnMuIFJlcHJl c2VudGVkIGluIDIgMzItYml0IHdvcmRzIGluIE9QVEVFX01TR19SRVZJU0lPTl9NQUpPUgorICog YW5kIE9QVEVFX01TR19SRVZJU0lPTl9NSU5PUgorICovCisjZGVmaW5lIE9QVEVFX01TR19SRVZJ U0lPTl9NQUpPUgkyCisjZGVmaW5lIE9QVEVFX01TR19SRVZJU0lPTl9NSU5PUgkwCisjZGVmaW5l IE9QVEVFX01TR19GVU5DSURfQ0FMTFNfUkVWSVNJT04JMHhGRjAzCisKKy8qCisgKiBHZXQgVVVJ RCBvZiBUcnVzdGVkIE9TLgorICoKKyAqIFVzZWQgYnkgbm9uLXNlY3VyZSB3b3JsZCB0byBmaWd1 cmUgb3V0IHdoaWNoIFRydXN0ZWQgT1MgaXMgaW5zdGFsbGVkLgorICogTm90ZSB0aGF0IHJldHVy bmVkIFVVSUQgaXMgdGhlIFVVSUQgb2YgdGhlIFRydXN0ZWQgT1MsIG5vdCBvZiB0aGUgQVBJLgor ICoKKyAqIFJldHVybnMgVVVJRCBpbiA0IDMyLWJpdCB3b3JkcyBpbiB0aGUgc2FtZSB3YXkgYXMK KyAqIE9QVEVFX01TR19GVU5DSURfQ0FMTFNfVUlEIGRlc2NyaWJlZCBhYm92ZS4KKyAqLworI2Rl ZmluZSBPUFRFRV9NU0dfT1NfT1BURUVfVVVJRF8wCTB4NDg2MTc4ZTAKKyNkZWZpbmUgT1BURUVf TVNHX09TX09QVEVFX1VVSURfMQkweGU3ZjgxMWUzCisjZGVmaW5lIE9QVEVFX01TR19PU19PUFRF RV9VVUlEXzIJMHhiYzVlMDAwMgorI2RlZmluZSBPUFRFRV9NU0dfT1NfT1BURUVfVVVJRF8zCTB4 YTVkNWM1MWIKKyNkZWZpbmUgT1BURUVfTVNHX0ZVTkNJRF9HRVRfT1NfVVVJRAkweDAwMDAKKwor LyoKKyAqIEdldCByZXZpc2lvbiBvZiBUcnVzdGVkIE9TLgorICoKKyAqIFVzZWQgYnkgbm9uLXNl Y3VyZSB3b3JsZCB0byBmaWd1cmUgb3V0IHdoaWNoIHZlcnNpb24gb2YgdGhlIFRydXN0ZWQgT1MK KyAqIGlzIGluc3RhbGxlZC4gTm90ZSB0aGF0IHRoZSByZXR1cm5lZCByZXZpc2lvbiBpcyB0aGUg cmV2aXNpb24gb2YgdGhlCisgKiBUcnVzdGVkIE9TLCBub3Qgb2YgdGhlIEFQSS4KKyAqCisgKiBS ZXR1cm5zIHJldmlzaW9uIGluIDIgMzItYml0IHdvcmRzIGluIHRoZSBzYW1lIHdheSBhcworICog T1BURUVfTVNHX0NBTExTX1JFVklTSU9OIGRlc2NyaWJlZCBhYm92ZS4KKyAqLworI2RlZmluZSBP UFRFRV9NU0dfRlVOQ0lEX0dFVF9PU19SRVZJU0lPTgkweDAwMDEKKworLyoKKyAqIERvIGEgc2Vj dXJlIGNhbGwgd2l0aCBzdHJ1Y3Qgb3B0ZWVfbXNnX2FyZyBhcyBhcmd1bWVudAorICogVGhlIE9Q VEVFX01TR19DTURfKiBiZWxvdyBkZWZpbmVzIHdoYXQgZ29lcyBpbiBzdHJ1Y3Qgb3B0ZWVfbXNn X2FyZzo6Y21kCisgKgorICogT1BURUVfTVNHX0NNRF9PUEVOX1NFU1NJT04gb3BlbnMgYSBzZXNz aW9uIHRvIGEgVHJ1c3RlZCBBcHBsaWNhdGlvbi4KKyAqIFRoZSBmaXJzdCB0d28gcGFyYW1ldGVy cyBhcmUgdGFnZ2VkIGFzIG1ldGEsIGhvbGRpbmcgdHdvIHZhbHVlCisgKiBwYXJhbWV0ZXJzIHRv IHBhc3MgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKyAqIHBhcmFtWzBdLnUudmFsdWUuYS1i IHV1aWQgb2YgVHJ1c3RlZCBBcHBsaWNhdGlvbgorICogcGFyYW1bMV0udS52YWx1ZS5hLWIgdXVp ZCBvZiBDbGllbnQKKyAqIHBhcmFtWzFdLnUudmFsdWUuYyBMb2dpbiBjbGFzcyBvZiBjbGllbnQg T1BURUVfTVNHX0xPR0lOXyoKKyAqCisgKiBPUFRFRV9NU0dfQ01EX0lOVk9LRV9DT01NQU5EIGlu dm9rZXMgYSBjb21tYW5kIGEgcHJldmlvdXNseSBvcGVuZWQKKyAqIHNlc3Npb24gdG8gYSBUcnVz dGVkIEFwcGxpY2F0aW9uLiAgc3RydWN0IG9wdGVlX21zZ19hcmc6OmZ1bmMgaXMgVHJ1c3RlZAor ICogQXBwbGljYXRpb24gZnVuY3Rpb24sIHNwZWNpZmljIHRvIHRoZSBUcnVzdGVkIEFwcGxpY2F0 aW9uLgorICoKKyAqIE9QVEVFX01TR19DTURfQ0xPU0VfU0VTU0lPTiBjbG9zZXMgYSBwcmV2aW91 c2x5IG9wZW5lZCBzZXNzaW9uIHRvCisgKiBUcnVzdGVkIEFwcGxpY2F0aW9uLgorICoKKyAqIE9Q VEVFX01TR19DTURfQ0FOQ0VMIGNhbmNlbHMgYSBjdXJyZW50bHkgaW52b2tlZCBjb21tYW5kLgor ICoKKyAqIE9QVEVFX01TR19DTURfUkVHSVNURVJfU0hNIHJlZ2lzdGVycyBhIHNoYXJlZCBtZW1v cnkgcmVmZXJlbmNlLiBUaGUKKyAqIGluZm9ybWF0aW9uIGlzIHBhc3NlZCBhczoKKyAqIFtpbl0g cGFyYW1bMF0uYXR0cgkJCU9QVEVFX01TR19BVFRSX1RZUEVfVE1FTV9JTlBVVAorICoJCQkJCVt8 IE9QVEVFX01TR19BVFRSX05PTkNPTlRJR10KKyAqIFtpbl0gcGFyYW1bMF0udS50bWVtLmJ1Zl9w dHIJCXBoeXNpY2FsIGFkZHJlc3MgKG9mIGZpcnN0IGZyYWdtZW50KQorICogW2luXSBwYXJhbVsw XS51LnRtZW0uc2l6ZQkJc2l6ZSAob2YgZmlyc3QgZnJhZ21lbnQpCisgKiBbaW5dIHBhcmFtWzBd LnUudG1lbS5zaG1fcmVmCQlob2xkcyBzaGFyZWQgbWVtb3J5IHJlZmVyZW5jZQorICoKKyAqIE9Q VEVFX01TR19DTURfVU5SRUdJU1RFUl9TSE0gdW5yZWdpc3RlcmVzIGEgcHJldmlvdXNseSByZWdp c3RlcmVkIHNoYXJlZAorICogbWVtb3J5IHJlZmVyZW5jZS4gVGhlIGluZm9ybWF0aW9uIGlzIHBh c3NlZCBhczoKKyAqIFtpbl0gcGFyYW1bMF0uYXR0cgkJCU9QVEVFX01TR19BVFRSX1RZUEVfUk1F TV9JTlBVVAorICogW2luXSBwYXJhbVswXS51LnJtZW0uc2htX3JlZgkJaG9sZHMgc2hhcmVkIG1l bW9yeSByZWZlcmVuY2UKKyAqIFtpbl0gcGFyYW1bMF0udS5ybWVtLm9mZnMJCTAKKyAqIFtpbl0g cGFyYW1bMF0udS5ybWVtLnNpemUJCTAKKyAqLworI2RlZmluZSBPUFRFRV9NU0dfQ01EX09QRU5f U0VTU0lPTgkwCisjZGVmaW5lIE9QVEVFX01TR19DTURfSU5WT0tFX0NPTU1BTkQJMQorI2RlZmlu ZSBPUFRFRV9NU0dfQ01EX0NMT1NFX1NFU1NJT04JMgorI2RlZmluZSBPUFRFRV9NU0dfQ01EX0NB TkNFTAkJMworI2RlZmluZSBPUFRFRV9NU0dfQ01EX1JFR0lTVEVSX1NITQk0CisjZGVmaW5lIE9Q VEVFX01TR19DTURfVU5SRUdJU1RFUl9TSE0JNQorI2RlZmluZSBPUFRFRV9NU0dfRlVOQ0lEX0NB TExfV0lUSF9BUkcJMHgwMDA0CisKKyNlbmRpZiAvKiBfT1BURUVfTVNHX0ggKi8KZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdGVlL29wdGVlX3JwY19jbWQuaCBiL3hlbi9pbmNsdWRl L2FzbS1hcm0vdGVlL29wdGVlX3JwY19jbWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi5kNmI5ZGZlMzBjCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUvYXNt LWFybS90ZWUvb3B0ZWVfcnBjX2NtZC5oCkBAIC0wLDAgKzEsMzE4IEBACisvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlICovCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE2 LTIwMTcsIExpbmFybyBMaW1pdGVkCisgKi8KKworI2lmbmRlZiBfX09QVEVFX1JQQ19DTURfSAor I2RlZmluZSBfX09QVEVFX1JQQ19DTURfSAorCisvKgorICogQWxsIFJQQyBpcyBkb25lIHdpdGgg YSBzdHJ1Y3Qgb3B0ZWVfbXNnX2FyZyBhcyBiZWFyZXIgb2YgaW5mb3JtYXRpb24sCisgKiBzdHJ1 Y3Qgb3B0ZWVfbXNnX2FyZzo6YXJnIGhvbGRzIHZhbHVlcyBkZWZpbmVkIGJ5IE9QVEVFX1JQQ19D TURfKiBiZWxvdy4KKyAqIE9ubHkgdGhlIGNvbW1hbmRzIGhhbmRsZWQgYnkgdGhlIGtlcm5lbCBk cml2ZXIgYXJlIGRlZmluZWQgaGVyZS4KKyAqCisgKiBSUEMgY29tbXVuaWNhdGlvbiB3aXRoIHRl ZS1zdXBwbGljYW50IGlzIHJldmVyc2VkIGNvbXBhcmVkIHRvIG5vcm1hbAorICogY2xpZW50IGNv bW11bmljYXRpb24gZGVzY3JpYmVkIGFib3ZlLiBUaGUgc3VwcGxpY2FudCByZWNlaXZlcyByZXF1 ZXN0cworICogYW5kIHNlbmRzIHJlc3BvbnNlcy4KKyAqLworCisvKgorICogTG9hZCBhIFRBIGlu dG8gbWVtb3J5CisgKgorICogU2luY2UgdGhlIHNpemUgb2YgdGhlIFRBIGlzbid0IGtub3duIGlu IGFkdmFuY2UgdGhlIHNpemUgb2YgdGhlIFRBIGlzCisgKiBjYW4gYmUgcXVlcmllZCB3aXRoIGEg TlVMTCBidWZmZXIuCisgKgorICogW2luXSAgICAgdmFsdWVbMF0uYS1iICAgIFVVSUQKKyAqIFtv dXRdICAgIG1lbXJlZlsxXQkgICAgQnVmZmVyIHdpdGggVEEKKyAqLworI2RlZmluZSBPUFRFRV9S UENfQ01EX0xPQURfVEEJCTAKKworLyoKKyAqIFJlcGxheSBQcm90ZWN0ZWQgTWVtb3J5IEJsb2Nr IGFjY2VzcworICoKKyAqIFtpbl0gICAgIG1lbXJlZlswXQkgICAgRnJhbWVzIHRvIGRldmljZQor ICogW291dF0gICAgbWVtcmVmWzFdCSAgICBGcmFtZXMgZnJvbSBkZXZpY2UKKyAqLworI2RlZmlu ZSBPUFRFRV9SUENfQ01EX1JQTUIJCTEKKworLyoKKyAqIEZpbGUgc3lzdGVtIGFjY2Vzcywgc2Vl IGRlZmluaXRpb24gb2YgcHJvdG9jb2wgYmVsb3cKKyAqLworI2RlZmluZSBPUFRFRV9SUENfQ01E X0ZTCQkyCisKKy8qCisgKiBHZXQgdGltZQorICoKKyAqIFJldHVybnMgbnVtYmVyIG9mIHNlY29u ZHMgYW5kIG5hbm8gc2Vjb25kcyBzaW5jZSB0aGUgRXBvY2gsCisgKiAxOTcwLTAxLTAxIDAwOjAw OjAwICswMDAwIChVVEMpLgorICoKKyAqIFtvdXRdICAgIHZhbHVlWzBdLmEJICAgIE51bWJlciBv ZiBzZWNvbmRzCisgKiBbb3V0XSAgICB2YWx1ZVswXS5iCSAgICBOdW1iZXIgb2YgbmFubyBzZWNv bmRzLgorICovCisjZGVmaW5lIE9QVEVFX1JQQ19DTURfR0VUX1RJTUUJCTMKKworLyoKKyAqIFdh aXQgcXVldWUgcHJpbWl0aXZlLCBoZWxwZXIgZm9yIHNlY3VyZSB3b3JsZCB0byBpbXBsZW1lbnQg YSB3YWl0IHF1ZXVlLgorICoKKyAqIElmIHNlY3VyZSB3b3JsZCBuZWVkcyB0byB3YWl0IGZvciBh IHNlY3VyZSB3b3JsZCBtdXRleCBpdCBpc3N1ZXMgYSBzbGVlcAorICogcmVxdWVzdCBpbnN0ZWFk IG9mIHNwaW5uaW5nIGluIHNlY3VyZSB3b3JsZC4gQ29udmVyc2VseSBpcyBhIHdha2V1cAorICog cmVxdWVzdCBpc3N1ZWQgd2hlbiBhIHNlY3VyZSB3b3JsZCBtdXRleCB3aXRoIGEgdGhyZWFkIHdh aXRpbmcgdGhyZWFkIGlzCisgKiB1bmxvY2tlZC4KKyAqCisgKiBXYWl0aW5nIG9uIGEga2V5Cisg KiBbaW5dICAgIHZhbHVlWzBdLmEJICAgIE9QVEVFX1JQQ19XQUlUX1FVRVVFX1NMRUVQCisgKiBb aW5dICAgIHZhbHVlWzBdLmIJICAgIFdhaXQga2V5CisgKgorICogV2FraW5nIHVwIGEga2V5Cisg KiBbaW5dICAgIHZhbHVlWzBdLmEJICAgIE9QVEVFX1JQQ19XQUlUX1FVRVVFX1dBS0VVUAorICog W2luXSAgICB2YWx1ZVswXS5iCSAgICBXYWtldXAga2V5CisgKi8KKyNkZWZpbmUgT1BURUVfUlBD X0NNRF9XQUlUX1FVRVVFCTQKKyNkZWZpbmUgT1BURUVfUlBDX1dBSVRfUVVFVUVfU0xFRVAJMAor I2RlZmluZSBPUFRFRV9SUENfV0FJVF9RVUVVRV9XQUtFVVAJMQorCisvKgorICogU3VzcGVuZCBl eGVjdXRpb24KKyAqCisgKiBbaW5dICAgIHZhbHVlWzBdLmEJTnVtYmVyIG9mIG1pbGxpc2Vjb25k cyB0byBzdXNwZW5kCisgKi8KKyNkZWZpbmUgT1BURUVfUlBDX0NNRF9TVVNQRU5ECQk1CisKKy8q CisgKiBBbGxvY2F0ZSBhIHBpZWNlIG9mIHNoYXJlZCBtZW1vcnkKKyAqCisgKiBbaW5dICAgIHZh bHVlWzBdLmEJICAgIFR5cGUgb2YgbWVtb3J5IG9uZSBvZgorICoJCQkgICAgT1BURUVfUlBDX1NI TV9UWVBFXyogYmVsb3cKKyAqIFtpbl0gICAgdmFsdWVbMF0uYgkgICAgUmVxdWVzdGVkIHNpemUK KyAqIFtpbl0gICAgdmFsdWVbMF0uYwkgICAgUmVxdWlyZWQgYWxpZ25tZW50CisgKiBbb3V0XSAg IG1lbXJlZlswXQkgICAgQnVmZmVyCisgKi8KKyNkZWZpbmUgT1BURUVfUlBDX0NNRF9TSE1fQUxM T0MJCTYKKy8qIE1lbW9yeSB0aGF0IGNhbiBiZSBzaGFyZWQgd2l0aCBhIG5vbi1zZWN1cmUgdXNl ciBzcGFjZSBhcHBsaWNhdGlvbiAqLworI2RlZmluZSBPUFRFRV9SUENfU0hNX1RZUEVfQVBQTAkJ MAorLyogTWVtb3J5IG9ubHkgc2hhcmVkIHdpdGggbm9uLXNlY3VyZSBrZXJuZWwgKi8KKyNkZWZp bmUgT1BURUVfUlBDX1NITV9UWVBFX0tFUk5FTAkxCisvKgorICogTWVtb3J5IHNoYXJlZCB3aXRo IG5vbi1zZWN1cmUga2VybmVsIGFuZCBleHBvcnRlZCB0byBhIG5vbi1zZWN1cmUgdXNlcgorICog c3BhY2UgYXBwbGljYXRpb24KKyAqLworI2RlZmluZSBPUFRFRV9SUENfU0hNX1RZUEVfR0xPQkFM CTIKKworLyoKKyAqIEZyZWUgc2hhcmVkIG1lbW9yeSBwcmV2aW91c2x5IGFsbG9jYXRlZCB3aXRo IE9QVEVFX1JQQ19DTURfU0hNX0FMTE9DCisgKgorICogW2luXSAgICAgdmFsdWVbMF0uYQkgICAg VHlwZSBvZiBtZW1vcnkgb25lIG9mCisgKgkJCSAgICBPUFRFRV9SUENfU0hNX1RZUEVfKiBhYm92 ZQorICogW2luXSAgICAgdmFsdWVbMF0uYgkgICAgVmFsdWUgb2Ygc2hhcmVkIG1lbW9yeSByZWZl cmVuY2Ugb3IgY29va2llCisgKi8KKyNkZWZpbmUgT1BURUVfUlBDX0NNRF9TSE1fRlJFRQkJNwor CisvKiBXYXMgT1BURUVfUlBDX0NNRF9TUUxfRlMsIHdoaWNoIGlzbid0IHN1cHBvcnRlZCBhbnkg bG9uZ2VyICovCisjZGVmaW5lIE9QVEVFX1JQQ19DTURfU1FMX0ZTX1JFU0VSVkVECTgKKworLyoK KyAqIFNlbmQgVEEgcHJvZmlsaW5nIGluZm9ybWF0aW9uIHRvIG5vcm1hbCB3b3JsZAorICoKKyAq IFtpbi9vdXRdIHZhbHVlWzBdLmEJICAgIEZpbGUgaWRlbnRpZmllci4gTXVzdCBiZSBzZXQgdG8g MCBvbgorICoJCQkgICAgZmlyc3QgY2FsbC4gQSB2YWx1ZSA+PSAxIHdpbGwgYmUKKyAqCQkJICAg IHJldHVybmVkIG9uIHN1Y2Nlc3MuIFJlLXVzZSB0aGlzIHZhbHVlCisgKgkJCSAgICB0byBhcHBl bmQgZGF0YSB0byB0aGUgc2FtZSBmaWxlLgorICogW2luXSAgICAgbWVtcmVmWzFdCSAgICBUQSBV VUlECisgKiBbaW5dICAgICBtZW1yZWZbMl0JICAgIFByb2ZpbGUgZGF0YQorICovCisjZGVmaW5l IE9QVEVFX1JQQ19DTURfR1BST0YJCTkKKworLyoKKyAqIFNvY2tldCBjb21tYW5kLCBzZWUgZGVm aW5pdGlvbiBvZiBwcm90b2NvbCBiZWxvdworICovCisjZGVmaW5lIE9QVEVFX1JQQ19DTURfU09D S0VUCQkxMAorCisvKgorICogUmVnaXN0ZXIgdGltZXN0YW1wIGJ1ZmZlciBpbiB0aGUgbGludXgg a2VybmVsIG9wdGVlIGRyaXZlcgorICoKKyAqIFtpbl0gICAgIHZhbHVlWzBdLmEJICAgIFN1YmNv bW1hbmQgKHJlZ2lzdGVyIGJ1ZmZlciwgdW5yZWdpc3RlciBidWZmZXIpCisgKiBbaW5dICAgICB2 YWx1ZVswXS5iCSAgICBQaHlzaWNhbCBhZGRyZXNzIG9mIHRpbWVzdGFtcCBidWZmZXIKKyAqIFtp bl0gICAgIHZhbHVlWzBdLmMJICAgIFNpemUgb2YgYnVmZmVyCisgKi8KKyNkZWZpbmUgT1BURUVf UlBDX0NNRF9CRU5DSF9SRUcJCTIwCisKKy8qCisgKiBEZWZpbml0aW9uIG9mIHByb3RvY29sIGZv ciBjb21tYW5kIE9QVEVFX1JQQ19DTURfRlMKKyAqLworCisvKgorICogT3BlbiBhIGZpbGUKKyAq CisgKiBbaW5dICAgICB2YWx1ZVswXS5hCSAgICBPUFRFRV9SUENfRlNfT1BFTgorICogW2luXSAg ICAgbWVtcmVmWzFdCSAgICBBIHN0cmluZyBob2xkaW5nIHRoZSBmaWxlIG5hbWUKKyAqIFtvdXRd ICAgIHZhbHVlWzJdLmEJICAgIEZpbGUgZGVzY3JpcHRvciBvZiBvcGVuIGZpbGUKKyAqLworI2Rl ZmluZSBPUFRFRV9SUENfRlNfT1BFTgkJMAorCisvKgorICogQ3JlYXRlIGEgZmlsZQorICoKKyAq IFtpbl0gICAgIHZhbHVlWzBdLmEJICAgIE9QVEVFX1JQQ19GU19DUkVBVEUKKyAqIFtpbl0gICAg IG1lbXJlZlsxXQkgICAgQSBzdHJpbmcgaG9sZGluZyB0aGUgZmlsZSBuYW1lCisgKiBbb3V0XSAg ICB2YWx1ZVsyXS5hCSAgICBGaWxlIGRlc2NyaXB0b3Igb2Ygb3BlbiBmaWxlCisgKi8KKyNkZWZp bmUgT1BURUVfUlBDX0ZTX0NSRUFURQkJMQorCisvKgorICogQ2xvc2UgYSBmaWxlCisgKgorICog W2luXSAgICAgdmFsdWVbMF0uYQkgICAgT1BURUVfUlBDX0ZTX0NMT1NFCisgKiBbaW5dICAgICB2 YWx1ZVswXS5iCSAgICBGaWxlIGRlc2NyaXB0b3Igb2Ygb3BlbiBmaWxlLgorICovCisjZGVmaW5l IE9QVEVFX1JQQ19GU19DTE9TRQkJMgorCisvKgorICogUmVhZCBmcm9tIGEgZmlsZQorICoKKyAq IFtpbl0gICAgIHZhbHVlWzBdLmEJICAgIE9QVEVFX1JQQ19GU19SRUFECisgKiBbaW5dICAgICB2 YWx1ZVswXS5iCSAgICBGaWxlIGRlc2NyaXB0b3Igb2Ygb3BlbiBmaWxlCisgKiBbaW5dICAgICB2 YWx1ZVswXS5jCSAgICBPZmZzZXQgaW50byBmaWxlCisgKiBbb3V0XSAgICBtZW1yZWZbMV0JICAg IEJ1ZmZlciB0byBob2xkIHJldHVybmVkIGRhdGEKKyAqLworI2RlZmluZSBPUFRFRV9SUENfRlNf UkVBRAkJMworCisvKgorICogV3JpdGUgdG8gYSBmaWxlCisgKgorICogW2luXSAgICAgdmFsdWVb MF0uYQkgICAgT1BURUVfUlBDX0ZTX1dSSVRFCisgKiBbaW5dICAgICB2YWx1ZVswXS5iCSAgICBG aWxlIGRlc2NyaXB0b3Igb2Ygb3BlbiBmaWxlCisgKiBbaW5dICAgICB2YWx1ZVswXS5jCSAgICBP ZmZzZXQgaW50byBmaWxlCisgKiBbaW5dICAgICBtZW1yZWZbMV0JICAgIEJ1ZmZlciBob2xkaW5n IGRhdGEgdG8gYmUgd3JpdHRlbgorICovCisjZGVmaW5lIE9QVEVFX1JQQ19GU19XUklURQkJNAor CisvKgorICogVHJ1bmNhdGUgYSBmaWxlCisgKgorICogW2luXSAgICAgdmFsdWVbMF0uYQkgICAg T1BURUVfUlBDX0ZTX1RSVU5DQVRFCisgKiBbaW5dICAgICB2YWx1ZVswXS5iCSAgICBGaWxlIGRl c2NyaXB0b3Igb2Ygb3BlbiBmaWxlCisgKiBbaW5dICAgICB2YWx1ZVswXS5jCSAgICBMZW5ndGgg b2YgZmlsZS4KKyAqLworI2RlZmluZSBPUFRFRV9SUENfRlNfVFJVTkNBVEUJCTUKKworLyoKKyAq IFJlbW92ZSBhIGZpbGUKKyAqCisgKiBbaW5dICAgICB2YWx1ZVswXS5hCSAgICBPUFRFRV9SUENf RlNfUkVNT1ZFCisgKiBbaW5dICAgICBtZW1yZWZbMV0JICAgIEEgc3RyaW5nIGhvbGRpbmcgdGhl IGZpbGUgbmFtZQorICovCisjZGVmaW5lIE9QVEVFX1JQQ19GU19SRU1PVkUJCTYKKworLyoKKyAq IFJlbmFtZSBhIGZpbGUKKyAqCisgKiBbaW5dICAgICB2YWx1ZVswXS5hCSAgICBPUFRFRV9SUENf RlNfUkVOQU1FCisgKiBbaW5dICAgICB2YWx1ZVswXS5iCSAgICBUcnVlIGlmIGV4aXN0aW5nIHRh cmdldCBzaG91bGQgYmUgcmVtb3ZlZAorICogW2luXSAgICAgbWVtcmVmWzFdCSAgICBBIHN0cmlu ZyBob2xkaW5nIHRoZSBvbGQgZmlsZSBuYW1lCisgKiBbaW5dICAgICBtZW1yZWZbMl0JICAgIEEg c3RyaW5nIGhvbGRpbmcgdGhlIG5ldyBmaWxlIG5hbWUKKyAqLworI2RlZmluZSBPUFRFRV9SUENf RlNfUkVOQU1FCQk3CisKKy8qCisgKiBPcGVucyBhIGRpcmVjdG9yeSBmb3IgZmlsZSBsaXN0aW5n CisgKgorICogW2luXSAgICAgdmFsdWVbMF0uYQkgICAgT1BURUVfUlBDX0ZTX09QRU5ESVIKKyAq IFtpbl0gICAgIG1lbXJlZlsxXQkgICAgQSBzdHJpbmcgaG9sZGluZyB0aGUgbmFtZSBvZiB0aGUg ZGlyZWN0b3J5CisgKiBbb3V0XSAgICB2YWx1ZVsyXS5hCSAgICBIYW5kbGUgdG8gb3BlbiBkaXJl Y3RvcnkKKyAqLworI2RlZmluZSBPUFRFRV9SUENfRlNfT1BFTkRJUgkJOAorCisvKgorICogQ2xv c2VzIGEgZGlyZWN0b3J5IGhhbmRsZQorICoKKyAqIFtpbl0gICAgIHZhbHVlWzBdLmEJICAgIE9Q VEVFX1JQQ19GU19DTE9TRURJUgorICogW2luXSAgICAgdmFsdWVbMF0uYgkgICAgSGFuZGxlIHRv IG9wZW4gZGlyZWN0b3J5CisgKi8KKyNkZWZpbmUgT1BURUVfUlBDX0ZTX0NMT1NFRElSCQk5CisK Ky8qCisgKiBSZWFkIG5leHQgZmlsZSBuYW1lIG9mIGRpcmVjdG9yeQorICoKKyAqCisgKiBbaW5d ICAgICB2YWx1ZVswXS5hCSAgICBPUFRFRV9SUENfRlNfUkVBRERJUgorICogW2luXSAgICAgdmFs dWVbMF0uYgkgICAgSGFuZGxlIHRvIG9wZW4gZGlyZWN0b3J5CisgKiBbb3V0XSAgICBtZW1yZWZb MV0JICAgIEEgc3RyaW5nIGhvbGRpbmcgdGhlIGZpbGUgbmFtZQorICovCisjZGVmaW5lIE9QVEVF X1JQQ19GU19SRUFERElSCQkxMAorCisvKiBFbmQgb2YgZGVmaW5pdGlvbiBvZiBwcm90b2NvbCBm b3IgY29tbWFuZCBPUFRFRV9SUENfQ01EX0ZTICovCisKKy8qCisgKiBEZWZpbml0aW9uIG9mIHBy b3RvY29sIGZvciBjb21tYW5kIE9QVEVFX1JQQ19DTURfU09DS0VUCisgKi8KKworI2RlZmluZSBP UFRFRV9SUENfU09DS0VUX1RJTUVPVVRfTk9OQkxPQ0tJTkcJMAorI2RlZmluZSBPUFRFRV9SUENf U09DS0VUX1RJTUVPVVRfQkxPQ0tJTkcJMHhmZmZmZmZmZgorCisvKgorICogT3BlbiBzb2NrZXQK KyAqCisgKiBbaW5dICAgICB2YWx1ZVswXS5hCSAgICBPUFRFRV9SUENfU09DS0VUX09QRU4KKyAq IFtpbl0gICAgIHZhbHVlWzBdLmIJICAgIFRBIGluc3RhbmNlIGlkCisgKiBbaW5dICAgICB2YWx1 ZVsxXS5hCSAgICBTZXJ2ZXIgcG9ydCBudW1iZXIKKyAqIFtpbl0gICAgIHZhbHVlWzFdLmIJICAg IFByb3RvY29sLCBURUVfSVNPQ0tFVF9QUk9UT0NPTElEXyoKKyAqIFtpbl0gICAgIHZhbHVlWzFd LmMJICAgIElwIHZlcnNpb24gVEVFX0lQX1ZFUlNJT05fKiBmcm9tIHRlZV9pcHNvY2tldC5oCisg KiBbaW5dICAgICBtZW1yZWZbMl0JICAgIFNlcnZlciBhZGRyZXNzCisgKiBbb3V0XSAgICB2YWx1 ZVszXS5hCSAgICBTb2NrZXQgaGFuZGxlICgzMi1iaXQpCisgKi8KKyNkZWZpbmUgT1BURUVfUlBD X1NPQ0tFVF9PUEVOCTAKKworLyoKKyAqIENsb3NlIHNvY2tldAorICoKKyAqIFtpbl0gICAgIHZh bHVlWzBdLmEJICAgIE9QVEVFX1JQQ19TT0NLRVRfQ0xPU0UKKyAqIFtpbl0gICAgIHZhbHVlWzBd LmIJICAgIFRBIGluc3RhbmNlIGlkCisgKiBbaW5dICAgICB2YWx1ZVswXS5jCSAgICBTb2NrZXQg aGFuZGxlCisgKi8KKyNkZWZpbmUgT1BURUVfUlBDX1NPQ0tFVF9DTE9TRQkxCisKKy8qCisgKiBD bG9zZSBhbGwgc29ja2V0cworICoKKyAqIFtpbl0gICAgIHZhbHVlWzBdLmEJICAgIE9QVEVFX1JQ Q19TT0NLRVRfQ0xPU0VfQUxMCisgKiBbaW5dICAgICB2YWx1ZVswXS5iCSAgICBUQSBpbnN0YW5j ZSBpZAorICovCisjZGVmaW5lIE9QVEVFX1JQQ19TT0NLRVRfQ0xPU0VfQUxMIDIKKworLyoKKyAq IFNlbmQgZGF0YSBvbiBzb2NrZXQKKyAqCisgKiBbaW5dICAgICB2YWx1ZVswXS5hCSAgICBPUFRF RV9SUENfU09DS0VUX1NFTkQKKyAqIFtpbl0gICAgIHZhbHVlWzBdLmIJICAgIFRBIGluc3RhbmNl IGlkCisgKiBbaW5dICAgICB2YWx1ZVswXS5jCSAgICBTb2NrZXQgaGFuZGxlCisgKiBbaW5dICAg ICBtZW1yZWZbMV0JICAgIEJ1ZmZlciB0byB0cmFuc21pdAorICogW2luXSAgICAgdmFsdWVbMl0u YQkgICAgVGltZW91dCBtcyBvciBPUFRFRV9SUENfU09DS0VUX1RJTUVPVVRfKgorICogW291dF0g ICAgdmFsdWVbMl0uYgkgICAgTnVtYmVyIG9mIHRyYW5zbWl0dGVkIGJ5dGVzCisgKi8KKyNkZWZp bmUgT1BURUVfUlBDX1NPQ0tFVF9TRU5ECTMKKworLyoKKyAqIFJlY2VpdmUgZGF0YSBvbiBzb2Nr ZXQKKyAqCisgKiBbaW5dICAgICB2YWx1ZVswXS5hCSAgICBPUFRFRV9SUENfU09DS0VUX1JFQ1YK KyAqIFtpbl0gICAgIHZhbHVlWzBdLmIJICAgIFRBIGluc3RhbmNlIGlkCisgKiBbaW5dICAgICB2 YWx1ZVswXS5jCSAgICBTb2NrZXQgaGFuZGxlCisgKiBbb3V0XSAgICBtZW1yZWZbMV0JICAgIEJ1 ZmZlciB0byByZWNlaXZlCisgKiBbaW5dICAgICB2YWx1ZVsyXS5hCSAgICBUaW1lb3V0IG1zIG9y IE9QVEVFX1JQQ19TT0NLRVRfVElNRU9VVF8qCisgKi8KKyNkZWZpbmUgT1BURUVfUlBDX1NPQ0tF VF9SRUNWCTQKKworLyoKKyAqIFBlcmZvcm0gSU9DVEwgb24gc29ja2V0CisgKgorICogW2luXSAg ICAgdmFsdWVbMF0uYQkgICAgT1BURUVfUlBDX1NPQ0tFVF9JT0NUTAorICogW2luXSAgICAgdmFs dWVbMF0uYgkgICAgVEEgaW5zdGFuY2UgaWQKKyAqIFtpbl0gICAgIHZhbHVlWzBdLmMJICAgIFNv Y2tldCBoYW5kbGUKKyAqIFtpbi9vdXRdIG1lbXJlZlsxXQkgICAgQnVmZmVyCisgKiBbaW5dICAg ICB2YWx1ZVsyXS5hCSAgICBJb2N0bCBjb21tYW5kCisgKi8KKyNkZWZpbmUgT1BURUVfUlBDX1NP Q0tFVF9JT0NUTAk1CisKKy8qIEVuZCBvZiBkZWZpbml0aW9uIG9mIHByb3RvY29sIGZvciBjb21t YW5kIE9QVEVFX1JQQ19DTURfU09DS0VUICovCisKKyNlbmRpZiAvKl9fT1BURUVfUlBDX0NNRF9I Ki8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdGVlL29wdGVlX3NtYy5oIGIveGVu L2luY2x1ZGUvYXNtLWFybS90ZWUvb3B0ZWVfc21jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uZDU2OGJiMmZlMQotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9pbmNsdWRl L2FzbS1hcm0vdGVlL29wdGVlX3NtYy5oCkBAIC0wLDAgKzEsNTY0IEBACisvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlICovCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE1 LCBMaW5hcm8gTGltaXRlZAorICovCisjaWZuZGVmIE9QVEVFX1NNQ19ICisjZGVmaW5lIE9QVEVF X1NNQ19ICisKKy8qCisgKiBUaGlzIGZpbGUgaXMgZXhwb3J0ZWQgYnkgT1AtVEVFIGFuZCBpcyBp biBrZXB0IGluIHN5bmMgYmV0d2VlbiBzZWN1cmUKKyAqIHdvcmxkIGFuZCBub3JtYWwgd29ybGQg a2VybmVsIGRyaXZlci4gV2UncmUgZm9sbG93aW5nIEFSTSBTTUMgQ2FsbGluZworICogQ29udmVu dGlvbiBhcyBzcGVjaWZpZWQgaW4KKyAqIGh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20vaGVscC90 b3BpYy9jb20uYXJtLmRvYy5kZW4wMDI4YS9pbmRleC5odG1sCisgKgorICogVGhpcyBmaWxlIGRl cGVuZHMgb24gb3B0ZWVfbXNnLmggYmVpbmcgaW5jbHVkZWQgdG8gZXhwYW5kIHRoZSBTTUMgaWQK KyAqIG1hY3JvcyBiZWxvdy4KKyAqLworCisKKyNkZWZpbmUgT1BURUVfU01DX1NURF9DQUxMX1ZB TChmdW5jX251bSkgXAorCUFSTV9TTUNDQ19DQUxMX1ZBTChBUk1fU01DQ0NfU1REX0NBTEwsIEFS TV9TTUNDQ19DT05WXzMyLCBcCisJCQkgICBBUk1fU01DQ0NfT1dORVJfVFJVU1RFRF9PUywgKGZ1 bmNfbnVtKSkKKyNkZWZpbmUgT1BURUVfU01DX0ZBU1RfQ0FMTF9WQUwoZnVuY19udW0pIFwKKwlB Uk1fU01DQ0NfQ0FMTF9WQUwoQVJNX1NNQ0NDX0ZBU1RfQ0FMTCwgQVJNX1NNQ0NDX0NPTlZfMzIs IFwKKwkJCSAgIEFSTV9TTUNDQ19PV05FUl9UUlVTVEVEX09TLCAoZnVuY19udW0pKQorCisvKgor ICogRnVuY3Rpb24gc3BlY2lmaWVkIGJ5IFNNQyBDYWxsaW5nIGNvbnZlbnRpb24uCisgKi8KKyNk ZWZpbmUgT1BURUVfU01DX0ZVTkNJRF9DQUxMU19DT1VOVAkweEZGMDAKKyNkZWZpbmUgT1BURUVf U01DX0NBTExTX0NPVU5UIFwKKwlBUk1fU01DQ0NfQ0FMTF9WQUwoQVJNX1NNQ0NDX0ZBU1RfQ0FM TCwgQVJNX1NNQ0NDX0NPTlZfMzIsIFwKKwkJCSAgIEFSTV9TTUNDQ19PV05FUl9UUlVTVEVEX09T X0VORCwgXAorCQkJICAgT1BURUVfU01DX0ZVTkNJRF9DQUxMU19DT1VOVCkKKworLyoKKyAqIE5v cm1hbCBjYWNoZWQgbWVtb3J5ICh3cml0ZS1iYWNrKSwgc2hhcmVhYmxlIGZvciBTTVAgc3lzdGVt cyBhbmQgbm90CisgKiBzaGFyZWFibGUgZm9yIFVQIHN5c3RlbXMuCisgKi8KKyNkZWZpbmUgT1BU RUVfU01DX1NITV9DQUNIRUQJCTEKKworLyoKKyAqIGEwLi5hNyBpcyB1c2VkIGFzIHJlZ2lzdGVy IG5hbWVzIGluIHRoZSBkZXNjcmlwdGlvbnMgYmVsb3csIG9uIGFybTMyCisgKiB0aGF0IHRyYW5z bGF0ZXMgdG8gcjAuLnI3IGFuZCBvbiBhcm02NCB0byB3MC4udzcuIEluIGJvdGggY2FzZXMgaXQn cworICogMzItYml0IHJlZ2lzdGVycy4KKyAqLworCisvKgorICogRnVuY3Rpb24gc3BlY2lmaWVk IGJ5IFNNQyBDYWxsaW5nIGNvbnZlbnRpb24KKyAqCisgKiBSZXR1cm4gdGhlIGZvbGxvd2luZyBV SUQgaWYgdXNpbmcgQVBJIHNwZWNpZmllZCBpbiB0aGlzIGZpbGUKKyAqIHdpdGhvdXQgZnVydGhl ciBleHRlbnNpb25zOgorICogMzg0ZmIzZTAtZTdmOC0xMWUzLWFmNjMtMDAwMmE1ZDVjNTFiLgor ICogc2VlIGFsc28gT1BURUVfTVNHX1VJRF8qIGluIG9wdGVlX21zZy5oCisgKi8KKyNkZWZpbmUg T1BURUVfU01DX0ZVTkNJRF9DQUxMU19VSUQgT1BURUVfTVNHX0ZVTkNJRF9DQUxMU19VSUQKKyNk ZWZpbmUgT1BURUVfU01DX0NBTExTX1VJRCBcCisJQVJNX1NNQ0NDX0NBTExfVkFMKEFSTV9TTUND Q19GQVNUX0NBTEwsIEFSTV9TTUNDQ19DT05WXzMyLCBcCisJCQkgICBBUk1fU01DQ0NfT1dORVJf VFJVU1RFRF9PU19FTkQsIFwKKwkJCSAgIE9QVEVFX1NNQ19GVU5DSURfQ0FMTFNfVUlEKQorCisv KgorICogRnVuY3Rpb24gc3BlY2lmaWVkIGJ5IFNNQyBDYWxsaW5nIGNvbnZlbnRpb24KKyAqCisg KiBSZXR1cm5zIDIuMCBpZiB1c2luZyBBUEkgc3BlY2lmaWVkIGluIHRoaXMgZmlsZSB3aXRob3V0 IGZ1cnRoZXIgZXh0ZW5zaW9ucy4KKyAqIHNlZSBhbHNvIE9QVEVFX01TR19SRVZJU0lPTl8qIGlu IG9wdGVlX21zZy5oCisgKi8KKyNkZWZpbmUgT1BURUVfU01DX0ZVTkNJRF9DQUxMU19SRVZJU0lP TiBPUFRFRV9NU0dfRlVOQ0lEX0NBTExTX1JFVklTSU9OCisjZGVmaW5lIE9QVEVFX1NNQ19DQUxM U19SRVZJU0lPTiBcCisJQVJNX1NNQ0NDX0NBTExfVkFMKEFSTV9TTUNDQ19GQVNUX0NBTEwsIEFS TV9TTUNDQ19DT05WXzMyLCBcCisJCQkgICBBUk1fU01DQ0NfT1dORVJfVFJVU1RFRF9PU19FTkQs IFwKKwkJCSAgIE9QVEVFX1NNQ19GVU5DSURfQ0FMTFNfUkVWSVNJT04pCisKKy8qCisgKiBHZXQg VVVJRCBvZiBUcnVzdGVkIE9TLgorICoKKyAqIFVzZWQgYnkgbm9uLXNlY3VyZSB3b3JsZCB0byBm aWd1cmUgb3V0IHdoaWNoIFRydXN0ZWQgT1MgaXMgaW5zdGFsbGVkLgorICogTm90ZSB0aGF0IHJl dHVybmVkIFVVSUQgaXMgdGhlIFVVSUQgb2YgdGhlIFRydXN0ZWQgT1MsIG5vdCBvZiB0aGUgQVBJ LgorICoKKyAqIFJldHVybnMgVVVJRCBpbiBhMC00IGluIHRoZSBzYW1lIHdheSBhcyBPUFRFRV9T TUNfQ0FMTFNfVUlECisgKiBkZXNjcmliZWQgYWJvdmUuCisgKi8KKyNkZWZpbmUgT1BURUVfU01D X0ZVTkNJRF9HRVRfT1NfVVVJRCBPUFRFRV9NU0dfRlVOQ0lEX0dFVF9PU19VVUlECisjZGVmaW5l IE9QVEVFX1NNQ19DQUxMX0dFVF9PU19VVUlEIFwKKwlPUFRFRV9TTUNfRkFTVF9DQUxMX1ZBTChP UFRFRV9TTUNfRlVOQ0lEX0dFVF9PU19VVUlEKQorCisvKgorICogR2V0IHJldmlzaW9uIG9mIFRy dXN0ZWQgT1MuCisgKgorICogVXNlZCBieSBub24tc2VjdXJlIHdvcmxkIHRvIGZpZ3VyZSBvdXQg d2hpY2ggdmVyc2lvbiBvZiB0aGUgVHJ1c3RlZCBPUworICogaXMgaW5zdGFsbGVkLiBOb3RlIHRo YXQgdGhlIHJldHVybmVkIHJldmlzaW9uIGlzIHRoZSByZXZpc2lvbiBvZiB0aGUKKyAqIFRydXN0 ZWQgT1MsIG5vdCBvZiB0aGUgQVBJLgorICoKKyAqIFJldHVybnMgcmV2aXNpb24gaW4gYTAtMSBp biB0aGUgc2FtZSB3YXkgYXMgT1BURUVfU01DX0NBTExTX1JFVklTSU9OCisgKiBkZXNjcmliZWQg YWJvdmUuIE1heSBvcHRpb25hbGx5IHJldHVybiBhIDMyLWJpdCBidWlsZCBpZGVudGlmaWVyIGlu IGEyLAorICogd2l0aCB6ZXJvIG1lYW5pbmcgdW5zcGVjaWZpZWQuCisgKi8KKyNkZWZpbmUgT1BU RUVfU01DX0ZVTkNJRF9HRVRfT1NfUkVWSVNJT04gT1BURUVfTVNHX0ZVTkNJRF9HRVRfT1NfUkVW SVNJT04KKyNkZWZpbmUgT1BURUVfU01DX0NBTExfR0VUX09TX1JFVklTSU9OIFwKKwlPUFRFRV9T TUNfRkFTVF9DQUxMX1ZBTChPUFRFRV9TTUNfRlVOQ0lEX0dFVF9PU19SRVZJU0lPTikKKworLyoK KyAqIENhbGwgd2l0aCBzdHJ1Y3Qgb3B0ZWVfbXNnX2FyZyBhcyBhcmd1bWVudAorICoKKyAqIENh bGwgcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlTTUMgRnVuY3Rpb24gSUQsIE9QVEVFX1NNQypDQUxM X1dJVEhfQVJHCisgKiBhMQlVcHBlciAzMiBiaXRzIG9mIGEgNjQtYml0IHBoeXNpY2FsIHBvaW50 ZXIgdG8gYSBzdHJ1Y3Qgb3B0ZWVfbXNnX2FyZworICogYTIJTG93ZXIgMzIgYml0cyBvZiBhIDY0 LWJpdCBwaHlzaWNhbCBwb2ludGVyIHRvIGEgc3RydWN0IG9wdGVlX21zZ19hcmcKKyAqIGEzCUNh Y2hlIHNldHRpbmdzLCBub3QgdXNlZCBpZiBwaHlzaWNhbCBwb2ludGVyIGlzIGluIGEgcHJlZGVm aW5lZCBzaGFyZWQKKyAqCW1lbW9yeSBhcmVhIGVsc2UgcGVyIE9QVEVFX1NNQ19TSE1fKgorICog YTQtNglOb3QgdXNlZAorICogYTcJSHlwZXJ2aXNvciBDbGllbnQgSUQgcmVnaXN0ZXIKKyAqCisg KiBOb3JtYWwgcmV0dXJuIHJlZ2lzdGVyIHVzYWdlOgorICogYTAJUmV0dXJuIHZhbHVlLCBPUFRF RV9TTUNfUkVUVVJOXyoKKyAqIGExLTMJTm90IHVzZWQKKyAqIGE0LTcJUHJlc2VydmVkCisgKgor ICogT1BURUVfU01DX1JFVFVSTl9FVEhSRUFEX0xJTUlUIHJldHVybiByZWdpc3RlciB1c2FnZToK KyAqIGEwCVJldHVybiB2YWx1ZSwgT1BURUVfU01DX1JFVFVSTl9FVEhSRUFEX0xJTUlUCisgKiBh MS0zCVByZXNlcnZlZAorICogYTQtNwlQcmVzZXJ2ZWQKKyAqCisgKiBSUEMgcmV0dXJuIHJlZ2lz dGVyIHVzYWdlOgorICogYTAJUmV0dXJuIHZhbHVlLCBPUFRFRV9TTUNfUkVUVVJOX0lTX1JQQyh2 YWwpCisgKiBhMS0yCVJQQyBwYXJhbWV0ZXJzCisgKiBhMy03CVJlc3VtZSBpbmZvcm1hdGlvbiwg bXVzdCBiZSBwcmVzZXJ2ZWQKKyAqCisgKiBQb3NzaWJsZSByZXR1cm4gdmFsdWVzOgorICogT1BU RUVfU01DX1JFVFVSTl9VTktOT1dOX0ZVTkNUSU9OCVRydXN0ZWQgT1MgZG9lcyBub3QgcmVjb2du aXplIHRoaXMKKyAqCQkJCQlmdW5jdGlvbi4KKyAqIE9QVEVFX1NNQ19SRVRVUk5fT0sJCQlDYWxs IGNvbXBsZXRlZCwgcmVzdWx0IHVwZGF0ZWQgaW4KKyAqCQkJCQl0aGUgcHJldmlvdXNseSBzdXBw bGllZCBzdHJ1Y3QKKyAqCQkJCQlvcHRlZV9tc2dfYXJnLgorICogT1BURUVfU01DX1JFVFVSTl9F VEhSRUFEX0xJTUlUCU51bWJlciBvZiBUcnVzdGVkIE9TIHRocmVhZHMgZXhjZWVkZWQsCisgKgkJ CQkJdHJ5IGFnYWluIGxhdGVyLgorICogT1BURUVfU01DX1JFVFVSTl9FQkFEQUREUgkJQmFkIHBo eXNpY2FsIHBvaW50ZXIgdG8gc3RydWN0CisgKgkJCQkJb3B0ZWVfbXNnX2FyZy4KKyAqIE9QVEVF X1NNQ19SRVRVUk5fRUJBRENNRAkJQmFkL3Vua25vd24gY21kIGluIHN0cnVjdCBvcHRlZV9tc2df YXJnCisgKiBPUFRFRV9TTUNfUkVUVVJOX0lTX1JQQygpCQlDYWxsIHN1c3BlbmRlZCBieSBSUEMg Y2FsbCB0byBub3JtYWwKKyAqCQkJCQl3b3JsZC4KKyAqLworI2RlZmluZSBPUFRFRV9TTUNfRlVO Q0lEX0NBTExfV0lUSF9BUkcgT1BURUVfTVNHX0ZVTkNJRF9DQUxMX1dJVEhfQVJHCisjZGVmaW5l IE9QVEVFX1NNQ19DQUxMX1dJVEhfQVJHIFwKKwlPUFRFRV9TTUNfU1REX0NBTExfVkFMKE9QVEVF X1NNQ19GVU5DSURfQ0FMTF9XSVRIX0FSRykKKworLyoKKyAqIEdldCBTaGFyZWQgTWVtb3J5IENv bmZpZworICoKKyAqIFJldHVybnMgdGhlIFNlY3VyZS9Ob24tc2VjdXJlIHNoYXJlZCBtZW1vcnkg Y29uZmlnLgorICoKKyAqIENhbGwgcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlTTUMgRnVuY3Rpb24g SUQsIE9QVEVFX1NNQ19HRVRfU0hNX0NPTkZJRworICogYTEtNglOb3QgdXNlZAorICogYTcJSHlw ZXJ2aXNvciBDbGllbnQgSUQgcmVnaXN0ZXIKKyAqCisgKiBIYXZlIGNvbmZpZyByZXR1cm4gcmVn aXN0ZXIgdXNhZ2U6CisgKiBhMAlPUFRFRV9TTUNfUkVUVVJOX09LCisgKiBhMQlQaHlzaWNhbCBh ZGRyZXNzIG9mIHN0YXJ0IG9mIFNITQorICogYTIJU2l6ZSBvZiBvZiBTSE0KKyAqIGEzCUNhY2hl IHNldHRpbmdzIG9mIG1lbW9yeSwgYXMgZGVmaW5lZCBieSB0aGUKKyAqCU9QVEVFX1NNQ19TSE1f KiB2YWx1ZXMgYWJvdmUKKyAqIGE0LTcJUHJlc2VydmVkCisgKgorICogTm90IGF2YWlsYWJsZSBy ZWdpc3RlciB1c2FnZToKKyAqIGEwCU9QVEVFX1NNQ19SRVRVUk5fRU5PVEFWQUlMCisgKiBhMS0z IE5vdCB1c2VkCisgKiBhNC03CVByZXNlcnZlZAorICovCisjZGVmaW5lIE9QVEVFX1NNQ19GVU5D SURfR0VUX1NITV9DT05GSUcJNworI2RlZmluZSBPUFRFRV9TTUNfR0VUX1NITV9DT05GSUcgXAor CU9QVEVFX1NNQ19GQVNUX0NBTExfVkFMKE9QVEVFX1NNQ19GVU5DSURfR0VUX1NITV9DT05GSUcp CisKKy8qCisgKiBDb25maWd1cmVzIEwyQ0MgbXV0ZXgKKyAqCisgKiBEaXNhYmxlcywgZW5hYmxl cyB1c2FnZSBvZiBMMkNDIG11dGV4LiBSZXR1cm5zIG9yIHNldHMgcGh5c2ljYWwgYWRkcmVzcwor ICogb2YgTDJDQyBtdXRleC4KKyAqCisgKiBDYWxsIHJlZ2lzdGVyIHVzYWdlOgorICogYTAJU01D IEZ1bmN0aW9uIElELCBPUFRFRV9TTUNfTDJDQ19NVVRFWAorICogYTEJT1BURUVfU01DX0wyQ0Nf TVVURVhfR0VUX0FERFIJR2V0IHBoeXNpY2FsIGFkZHJlc3Mgb2YgbXV0ZXgKKyAqCU9QVEVFX1NN Q19MMkNDX01VVEVYX1NFVF9BRERSCVNldCBwaHlzaWNhbCBhZGRyZXNzIG9mIG11dGV4CisgKglP UFRFRV9TTUNfTDJDQ19NVVRFWF9FTkFCTEUJRW5hYmxlIHVzYWdlIG9mIG11dGV4CisgKglPUFRF RV9TTUNfTDJDQ19NVVRFWF9ESVNBQkxFCURpc2FibGUgdXNhZ2Ugb2YgbXV0ZXgKKyAqIGEyCWlm IGExID09IE9QVEVFX1NNQ19MMkNDX01VVEVYX1NFVF9BRERSLCB1cHBlciAzMmJpdCBvZiBhIDY0 Yml0CisgKiAgICAgIHBoeXNpY2FsIGFkZHJlc3Mgb2YgbXV0ZXgKKyAqIGEzCWlmIGExID09IE9Q VEVFX1NNQ19MMkNDX01VVEVYX1NFVF9BRERSLCBsb3dlciAzMmJpdCBvZiBhIDY0Yml0CisgKiAg ICAgIHBoeXNpY2FsIGFkZHJlc3Mgb2YgbXV0ZXgKKyAqIGEzLTYJTm90IHVzZWQKKyAqIGE3CUh5 cGVydmlzb3IgQ2xpZW50IElEIHJlZ2lzdGVyCisgKgorICogSGF2ZSBjb25maWcgcmV0dXJuIHJl Z2lzdGVyIHVzYWdlOgorICogYTAJT1BURUVfU01DX1JFVFVSTl9PSworICogYTEJUHJlc2VydmVk CisgKiBhMglpZiBhMSA9PSBPUFRFRV9TTUNfTDJDQ19NVVRFWF9HRVRfQUREUiwgdXBwZXIgMzJi aXQgb2YgYSA2NGJpdAorICogICAgICBwaHlzaWNhbCBhZGRyZXNzIG9mIG11dGV4CisgKiBhMwlp ZiBhMSA9PSBPUFRFRV9TTUNfTDJDQ19NVVRFWF9HRVRfQUREUiwgbG93ZXIgMzJiaXQgb2YgYSA2 NGJpdAorICogICAgICBwaHlzaWNhbCBhZGRyZXNzIG9mIG11dGV4CisgKiBhMy03CVByZXNlcnZl ZAorICoKKyAqIEVycm9yIHJldHVybiByZWdpc3RlciB1c2FnZToKKyAqIGEwCU9QVEVFX1NNQ19S RVRVUk5fRU5PVEFWQUlMCVBoeXNpY2FsIGFkZHJlc3Mgbm90IGF2YWlsYWJsZQorICoJT1BURUVf U01DX1JFVFVSTl9FQkFEQUREUglCYWQgc3VwcGxpZWQgcGh5c2ljYWwgYWRkcmVzcworICoJT1BU RUVfU01DX1JFVFVSTl9FQkFEQ01ECVVuc3VwcG9ydGVkIHZhbHVlIGluIGExCisgKiBhMS03CVBy ZXNlcnZlZAorICovCisjZGVmaW5lIE9QVEVFX1NNQ19MMkNDX01VVEVYX0dFVF9BRERSCTAKKyNk ZWZpbmUgT1BURUVfU01DX0wyQ0NfTVVURVhfU0VUX0FERFIJMQorI2RlZmluZSBPUFRFRV9TTUNf TDJDQ19NVVRFWF9FTkFCTEUJMgorI2RlZmluZSBPUFRFRV9TTUNfTDJDQ19NVVRFWF9ESVNBQkxF CTMKKyNkZWZpbmUgT1BURUVfU01DX0ZVTkNJRF9MMkNDX01VVEVYCTgKKyNkZWZpbmUgT1BURUVf U01DX0wyQ0NfTVVURVggXAorCU9QVEVFX1NNQ19GQVNUX0NBTExfVkFMKE9QVEVFX1NNQ19GVU5D SURfTDJDQ19NVVRFWCkKKworLyoKKyAqIEV4Y2hhbmdlcyBjYXBhYmlsaXRpZXMgYmV0d2VlbiBu b3JtYWwgd29ybGQgYW5kIHNlY3VyZSB3b3JsZAorICoKKyAqIENhbGwgcmVnaXN0ZXIgdXNhZ2U6 CisgKiBhMAlTTUMgRnVuY3Rpb24gSUQsIE9QVEVFX1NNQ19FWENIQU5HRV9DQVBBQklMSVRJRVMK KyAqIGExCWJpdGZpZWxkIG9mIG5vcm1hbCB3b3JsZCBjYXBhYmlsaXRpZXMgT1BURUVfU01DX05T RUNfQ0FQXyoKKyAqIGEyLTYJTm90IHVzZWQKKyAqIGE3CUh5cGVydmlzb3IgQ2xpZW50IElEIHJl Z2lzdGVyCisgKgorICogTm9ybWFsIHJldHVybiByZWdpc3RlciB1c2FnZToKKyAqIGEwCU9QVEVF X1NNQ19SRVRVUk5fT0sKKyAqIGExCWJpdGZpZWxkIG9mIHNlY3VyZSB3b3JsZCBjYXBhYmlsaXRp ZXMgT1BURUVfU01DX1NFQ19DQVBfKgorICogYTItNwlQcmVzZXJ2ZWQKKyAqCisgKiBFcnJvciBy ZXR1cm4gcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlPUFRFRV9TTUNfUkVUVVJOX0VOT1RBVkFJTCwg Y2FuJ3QgdXNlIHRoZSBjYXBhYmlsaXRpZXMgZnJvbSBub3JtYWwgd29ybGQKKyAqIGExCWJpdGZp ZWxkIG9mIHNlY3VyZSB3b3JsZCBjYXBhYmlsaXRpZXMgT1BURUVfU01DX1NFQ19DQVBfKgorICog YTItNyBQcmVzZXJ2ZWQKKyAqLworLyogTm9ybWFsIHdvcmxkIHdvcmtzIGFzIGEgdW5pcHJvY2Vz c29yIHN5c3RlbSAqLworI2RlZmluZSBPUFRFRV9TTUNfTlNFQ19DQVBfVU5JUFJPQ0VTU09SCQko MSA8PCAwKQorLyogU2VjdXJlIHdvcmxkIGhhcyByZXNlcnZlZCBzaGFyZWQgbWVtb3J5IGZvciBu b3JtYWwgd29ybGQgdG8gdXNlICovCisjZGVmaW5lIE9QVEVFX1NNQ19TRUNfQ0FQX0hBVkVfUkVT RVJWRURfU0hNCSgxIDw8IDApCisvKiBTZWN1cmUgd29ybGQgY2FuIGNvbW11bmljYXRlIHZpYSBw cmV2aW91c2x5IHVucmVnaXN0ZXJlZCBzaGFyZWQgbWVtb3J5ICovCisjZGVmaW5lIE9QVEVFX1NN Q19TRUNfQ0FQX1VOUkVHSVNURVJFRF9TSE0JKDEgPDwgMSkKKworLyoKKyAqIFNlY3VyZSB3b3Js ZCBzdXBwb3J0cyBjb21tYW5kcyAicmVnaXN0ZXIvdW5yZWdpc3RlciBzaGFyZWQgbWVtb3J5IiwK KyAqIHNlY3VyZSB3b3JsZCBhY2NlcHRzIGNvbW1hbmQgYnVmZmVycyBsb2NhdGVkIGluIGFueSBw YXJ0cyBvZiBub24tc2VjdXJlIFJBTQorICovCisjZGVmaW5lIE9QVEVFX1NNQ19TRUNfQ0FQX0RZ TkFNSUNfU0hNCQkoMSA8PCAyKQorCisjZGVmaW5lIE9QVEVFX1NNQ19GVU5DSURfRVhDSEFOR0Vf Q0FQQUJJTElUSUVTCTkKKyNkZWZpbmUgT1BURUVfU01DX0VYQ0hBTkdFX0NBUEFCSUxJVElFUyBc CisJT1BURUVfU01DX0ZBU1RfQ0FMTF9WQUwoT1BURUVfU01DX0ZVTkNJRF9FWENIQU5HRV9DQVBB QklMSVRJRVMpCisKKy8qCisgKiBEaXNhYmxlIGFuZCBlbXB0aWVzIGNhY2hlIG9mIHNoYXJlZCBt ZW1vcnkgb2JqZWN0cworICoKKyAqIFNlY3VyZSB3b3JsZCBjYW4gY2FjaGUgZnJlcXVlbnRseSB1 c2VkIHNoYXJlZCBtZW1vcnkgb2JqZWN0cywgZm9yCisgKiBleGFtcGxlIG9iamVjdHMgdXNlZCBh cyBSUEMgYXJndW1lbnRzLiBXaGVuIHNlY3VyZSB3b3JsZCBpcyBpZGxlIHRoaXMKKyAqIGZ1bmN0 aW9uIHJldHVybnMgb25lIHNoYXJlZCBtZW1vcnkgcmVmZXJlbmNlIHRvIGZyZWUuIFRvIGRpc2Fi bGUgdGhlCisgKiBjYWNoZSBhbmQgZnJlZSBhbGwgY2FjaGVkIG9iamVjdHMgdGhpcyBmdW5jdGlv biBoYXMgdG8gYmUgY2FsbGVkIHVudGlsCisgKiBpdCByZXR1cm5zIE9QVEVFX1NNQ19SRVRVUk5f RU5PVEFWQUlMLgorICoKKyAqIENhbGwgcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlTTUMgRnVuY3Rp b24gSUQsIE9QVEVFX1NNQ19ESVNBQkxFX1NITV9DQUNIRQorICogYTEtNglOb3QgdXNlZAorICog YTcJSHlwZXJ2aXNvciBDbGllbnQgSUQgcmVnaXN0ZXIKKyAqCisgKiBOb3JtYWwgcmV0dXJuIHJl Z2lzdGVyIHVzYWdlOgorICogYTAJT1BURUVfU01DX1JFVFVSTl9PSworICogYTEJVXBwZXIgMzIg Yml0cyBvZiBhIDY0LWJpdCBTaGFyZWQgbWVtb3J5IGNvb2tpZQorICogYTIJTG93ZXIgMzIgYml0 cyBvZiBhIDY0LWJpdCBTaGFyZWQgbWVtb3J5IGNvb2tpZQorICogYTMtNwlQcmVzZXJ2ZWQKKyAq CisgKiBDYWNoZSBlbXB0eSByZXR1cm4gcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlPUFRFRV9TTUNf UkVUVVJOX0VOT1RBVkFJTAorICogYTEtNwlQcmVzZXJ2ZWQKKyAqCisgKiBOb3QgaWRsZSByZXR1 cm4gcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlPUFRFRV9TTUNfUkVUVVJOX0VCVVNZCisgKiBhMS03 CVByZXNlcnZlZAorICovCisjZGVmaW5lIE9QVEVFX1NNQ19GVU5DSURfRElTQUJMRV9TSE1fQ0FD SEUJMTAKKyNkZWZpbmUgT1BURUVfU01DX0RJU0FCTEVfU0hNX0NBQ0hFIFwKKwlPUFRFRV9TTUNf RkFTVF9DQUxMX1ZBTChPUFRFRV9TTUNfRlVOQ0lEX0RJU0FCTEVfU0hNX0NBQ0hFKQorCisvKgor ICogRW5hYmxlIGNhY2hlIG9mIHNoYXJlZCBtZW1vcnkgb2JqZWN0cworICoKKyAqIFNlY3VyZSB3 b3JsZCBjYW4gY2FjaGUgZnJlcXVlbnRseSB1c2VkIHNoYXJlZCBtZW1vcnkgb2JqZWN0cywgZm9y CisgKiBleGFtcGxlIG9iamVjdHMgdXNlZCBhcyBSUEMgYXJndW1lbnRzLiBXaGVuIHNlY3VyZSB3 b3JsZCBpcyBpZGxlIHRoaXMKKyAqIGZ1bmN0aW9uIHJldHVybnMgT1BURUVfU01DX1JFVFVSTl9P SyBhbmQgdGhlIGNhY2hlIGlzIGVuYWJsZWQuIElmCisgKiBzZWN1cmUgd29ybGQgaXNuJ3QgaWRs ZSBPUFRFRV9TTUNfUkVUVVJOX0VCVVNZIGlzIHJldHVybmVkLgorICoKKyAqIENhbGwgcmVnaXN0 ZXIgdXNhZ2U6CisgKiBhMAlTTUMgRnVuY3Rpb24gSUQsIE9QVEVFX1NNQ19FTkFCTEVfU0hNX0NB Q0hFCisgKiBhMS02CU5vdCB1c2VkCisgKiBhNwlIeXBlcnZpc29yIENsaWVudCBJRCByZWdpc3Rl cgorICoKKyAqIE5vcm1hbCByZXR1cm4gcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlPUFRFRV9TTUNf UkVUVVJOX09LCisgKiBhMS03CVByZXNlcnZlZAorICoKKyAqIE5vdCBpZGxlIHJldHVybiByZWdp c3RlciB1c2FnZToKKyAqIGEwCU9QVEVFX1NNQ19SRVRVUk5fRUJVU1kKKyAqIGExLTcJUHJlc2Vy dmVkCisgKi8KKyNkZWZpbmUgT1BURUVfU01DX0ZVTkNJRF9FTkFCTEVfU0hNX0NBQ0hFCTExCisj ZGVmaW5lIE9QVEVFX1NNQ19FTkFCTEVfU0hNX0NBQ0hFIFwKKwlPUFRFRV9TTUNfRkFTVF9DQUxM X1ZBTChPUFRFRV9TTUNfRlVOQ0lEX0VOQUJMRV9TSE1fQ0FDSEUpCisKKy8qCisgKiBSZWxlYXNl IG9mIHNlY29uZGFyeSBjb3JlcworICoKKyAqIE9QLVRFRSBpbiBzZWN1cmUgd29ybGQgaXMgaW4g Y2hhcmdlIG9mIHRoZSByZWxlYXNlIHByb2Nlc3Mgb2Ygc2Vjb25kYXJ5CisgKiBjb3Jlcy4gVGhl IFJpY2ggT1MgaXNzdWUgdGhlIHRoaXMgcmVxdWVzdCB0byBhc2sgT1AtVEVFIHRvIGJvb3QgdXAg dGhlCisgKiBzZWNvbmRhcnkgY29yZXMsIGdvIHRocm91Z2ggdGhlIE9QLVRFRSBwZXItY29yZSBp bml0aWFsaXphdGlvbiwgYW5kIHRoZW4KKyAqIHN3aXRjaCB0byB0aGUgTm9uLXNlQ3VyZSB3b3Js ZCB3aXRoIHRoZSBSaWNoIE9TIHByb3ZpZGVkIGVudHJ5IGFkZHJlc3MuCisgKiBUaGUgc2Vjb25k YXJ5IGNvcmVzIGVudGVyIE5vbi1TZWN1cmUgd29ybGQgaW4gU1ZDIG1vZGUsIHdpdGggVGh1bWIs IEZJUSwKKyAqIElSUSBhbmQgQWJvcnQgYml0cyBkaXNhYmxlZC4KKyAqCisgKiBDYWxsIHJlZ2lz dGVyIHVzYWdlOgorICogYTAJU01DIEZ1bmN0aW9uIElELCBPUFRFRV9TTUNfQk9PVF9TRUNPTkRB UlkKKyAqIGExCUluZGV4IG9mIHNlY29uZGFyeSBjb3JlIHRvIGJvb3QKKyAqIGEyCVVwcGVyIDMy IGJpdHMgb2YgYSA2NC1iaXQgTm9uLVNlY3VyZSB3b3JsZCBlbnRyeSBwaHlzaWNhbCBhZGRyZXNz CisgKiBhMwlMb3dlciAzMiBiaXRzIG9mIGEgNjQtYml0IE5vbi1TZWN1cmUgd29ybGQgZW50cnkg cGh5c2ljYWwgYWRkcmVzcworICogYTQtNwlOb3QgdXNlZAorICoKKyAqIE5vcm1hbCByZXR1cm4g cmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlPUFRFRV9TTUNfUkVUVVJOX09LCisgKiBhMS03CVByZXNl cnZlZAorICoKKyAqIEVycm9yIHJldHVybjoKKyAqIGEwCU9QVEVFX1NNQ19SRVRVUk5fRUJBRENN RAkJQ29yZSBpbmRleCBvdXQgb2YgcmFuZ2UKKyAqIGExLTcJUHJlc2VydmVkCisgKgorICogTm90 IGlkbGUgcmV0dXJuIHJlZ2lzdGVyIHVzYWdlOgorICogYTAJT1BURUVfU01DX1JFVFVSTl9FQlVT WQorICogYTEtNwlQcmVzZXJ2ZWQKKyAqLworI2RlZmluZSBPUFRFRV9TTUNfRlVOQ0lEX0JPT1Rf U0VDT05EQVJZICAxMgorI2RlZmluZSBPUFRFRV9TTUNfQk9PVF9TRUNPTkRBUlkgXAorCU9QVEVF X1NNQ19GQVNUX0NBTExfVkFMKE9QVEVFX1NNQ19GVU5DSURfQk9PVF9TRUNPTkRBUlkpCisKKy8q CisgKiBJbmZvcm0gT1AtVEVFIGFib3V0IGEgbmV3IHZpcnR1YWwgbWFjaGluZQorICoKKyAqIEh5 cGVydmlzb3IgaXNzdWVzIHRoaXMgY2FsbCBkdXJpbmcgdmlydHVhbCBtYWNoaW5lIChndWVzdCkg Y3JlYXRpb24uCisgKiBPUC1URUUgcmVjb3JkcyBjbGllbnQgaWQgb2YgbmV3IHZpcnR1YWwgbWFj aGluZSBhbmQgcHJlcGFyZXMKKyAqIHRvIHJlY2VpdmUgcmVxdWVzdHMgZnJvbSBpdC4gVGhpcyBj YWxsIGlzIGF2YWlsYWJsZSBvbmx5IGlmIE9QLVRFRQorICogd2FzIGJ1aWx0IHdpdGggdmlydHVh bGl6YXRpb24gc3VwcG9ydC4KKyAqCisgKiBDYWxsIHJlcXVlc3RzIHVzYWdlOgorICogYTAJU01D IEZ1bmN0aW9uIElELCBPUFRFRV9TTUNfVk1fQ1JFQVRFRAorICogYTEJSHlwZXJ2aXNvciBDbGll bnQgSUQgb2YgbmV3bHkgY3JlYXRlZCB2aXJ0dWFsIG1hY2hpbmUKKyAqIGEyLTYgTm90IHVzZWQK KyAqIGE3CUh5cGVydmlzb3IgQ2xpZW50IElEIHJlZ2lzdGVyLiBNdXN0IGJlIDAsIGJlY2F1c2Ug b25seSBoeXBlcnZpc29yCisgKiAgICAgIGNhbiBpc3N1ZSB0aGlzIGNhbGwKKyAqCisgKiBOb3Jt YWwgcmV0dXJuIHJlZ2lzdGVyIHVzYWdlOgorICogYTAJT1BURUVfU01DX1JFVFVSTl9PSworICog YTEtNwlQcmVzZXJ2ZWQKKyAqCisgKiBFcnJvciByZXR1cm46CisgKiBhMAlPUFRFRV9TTUNfUkVU VVJOX0VOT1RBVkFJTAlPUC1URUUgaGF2ZSBubyByZXNvdXJjZXMgZm9yCisgKgkJCQkJYW5vdGhl ciBWTQorICogYTEtNwlQcmVzZXJ2ZWQKKyAqCisgKi8KKyNkZWZpbmUgT1BURUVfU01DX0ZVTkNJ RF9WTV9DUkVBVEVECTEzCisjZGVmaW5lIE9QVEVFX1NNQ19WTV9DUkVBVEVEIFwKKwlPUFRFRV9T TUNfRkFTVF9DQUxMX1ZBTChPUFRFRV9TTUNfRlVOQ0lEX1ZNX0NSRUFURUQpCisKKy8qCisgKiBJ bmZvcm0gT1AtVEVFIGFib3V0IHNodXRkb3duIG9mIGEgdmlydHVhbCBtYWNoaW5lCisgKgorICog SHlwZXJ2aXNvciBpc3N1ZXMgdGhpcyBjYWxsIGR1cmluZyB2aXJ0dWFsIG1hY2hpbmUgKGd1ZXN0 KSBkZXN0cnVjdGlvbi4KKyAqIE9QLVRFRSB3aWxsIGNsZWFuIHVwIGFsbCByZXNvdXJjZXMgYXNz b2NpYXRlZCB3aXRoIHRoaXMgVk0uIFRoaXMgY2FsbCBpcworICogYXZhaWxhYmxlIG9ubHkgaWYg T1AtVEVFIHdhcyBidWlsdCB3aXRoIHZpcnR1YWxpemF0aW9uIHN1cHBvcnQuCisgKgorICogQ2Fs bCByZXF1ZXN0cyB1c2FnZToKKyAqIGEwCVNNQyBGdW5jdGlvbiBJRCwgT1BURUVfU01DX1ZNX0RF U1RST1lFRAorICogYTEJSHlwZXJ2aXNvciBDbGllbnQgSUQgb2YgdmlydHVhbCBtYWNoaW5lIGJl aW5nIHNodXQgZG93bgorICogYTItNiBOb3QgdXNlZAorICogYTcJSHlwZXJ2aXNvciBDbGllbnQg SUQgcmVnaXN0ZXIuIE11c3QgYmUgMCwgYmVjYXVzZSBvbmx5IGh5cGVydmlzb3IKKyAqICAgICAg Y2FuIGlzc3VlIHRoaXMgY2FsbAorICoKKyAqIE5vcm1hbCByZXR1cm4gcmVnaXN0ZXIgdXNhZ2U6 CisgKiBhMAlPUFRFRV9TTUNfUkVUVVJOX09LCisgKiBhMS03CVByZXNlcnZlZAorICoKKyAqLwor I2RlZmluZSBPUFRFRV9TTUNfRlVOQ0lEX1ZNX0RFU1RST1lFRAkxNAorI2RlZmluZSBPUFRFRV9T TUNfVk1fREVTVFJPWUVEIFwKKwlPUFRFRV9TTUNfRkFTVF9DQUxMX1ZBTChPUFRFRV9TTUNfRlVO Q0lEX1ZNX0RFU1RST1lFRCkKKworLyoKKyAqIFF1ZXJ5IE9QLVRFRSBhYm91dCBudW1iZXIgb2Yg c3VwcG9ydGVkIHRocmVhZHMKKyAqCisgKiBOb3JtYWwgV29ybGQgT1Mgb3IgSHlwZXJ2aXNvciBp c3N1ZXMgdGhpcyBjYWxsIHRvIGZpbmQgb3V0IGhvdyBtYW55CisgKiB0aHJlYWRzIE9QLVRFRSBz dXBwb3J0cy4gVGhhdCBpcyBob3cgbWFueSBzdGFuZGFyZCBjYWxscyBjYW4gYmUgaXNzdWVkCisg KiBpbiBwYXJhbGxlbCBiZWZvcmUgT1AtVEVFIHdpbGwgcmV0dXJuIE9QVEVFX1NNQ19SRVRVUk5f RVRIUkVBRF9MSU1JVC4KKyAqCisgKiBDYWxsIHJlcXVlc3RzIHVzYWdlOgorICogYTAJU01DIEZ1 bmN0aW9uIElELCBPUFRFRV9TTUNfR0VUX1RIUkVBRF9DT1VOVAorICogYTEtNiBOb3QgdXNlZAor ICogYTcJSHlwZXJ2aXNvciBDbGllbnQgSUQgcmVnaXN0ZXIKKyAqCisgKiBOb3JtYWwgcmV0dXJu IHJlZ2lzdGVyIHVzYWdlOgorICogYTAJT1BURUVfU01DX1JFVFVSTl9PSworICogYTEJTnVtYmVy IG9mIHRocmVhZHMKKyAqIGEyLTcgUHJlc2VydmVkCisgKgorICogRXJyb3IgcmV0dXJuOgorICog YTAJT1BURUVfU01DX1JFVFVSTl9VTktOT1dOX0ZVTkNUSU9OICAgUmVxdWVzdGVkIGNhbGwgaXMg bm90IGltcGxlbWVudGVkCisgKiBhMS03CVByZXNlcnZlZAorICovCisjZGVmaW5lIE9QVEVFX1NN Q19GVU5DSURfR0VUX1RIUkVBRF9DT1VOVAkxNQorI2RlZmluZSBPUFRFRV9TTUNfR0VUX1RIUkVB RF9DT1VOVCBcCisJT1BURUVfU01DX0ZBU1RfQ0FMTF9WQUwoT1BURUVfU01DX0ZVTkNJRF9HRVRf VEhSRUFEX0NPVU5UKQorCisvKgorICogUmVzdW1lIGZyb20gUlBDIChmb3IgZXhhbXBsZSBhZnRl ciBwcm9jZXNzaW5nIGEgZm9yZWlnbiBpbnRlcnJ1cHQpCisgKgorICogQ2FsbCByZWdpc3RlciB1 c2FnZToKKyAqIGEwCVNNQyBGdW5jdGlvbiBJRCwgT1BURUVfU01DX0NBTExfUkVUVVJOX0ZST01f UlBDCisgKiBhMS0zCVZhbHVlIG9mIGExLTMgd2hlbiBPUFRFRV9TTUNfQ0FMTF9XSVRIX0FSRyBy ZXR1cm5lZAorICoJT1BURUVfU01DX1JFVFVSTl9SUEMgaW4gYTAKKyAqCisgKiBSZXR1cm4gcmVn aXN0ZXIgdXNhZ2UgaXMgdGhlIHNhbWUgYXMgZm9yIE9QVEVFX1NNQ18qQ0FMTF9XSVRIX0FSRyBh Ym92ZS4KKyAqCisgKiBQb3NzaWJsZSByZXR1cm4gdmFsdWVzCisgKiBPUFRFRV9TTUNfUkVUVVJO X1VOS05PV05fRlVOQ1RJT04JVHJ1c3RlZCBPUyBkb2VzIG5vdCByZWNvZ25pemUgdGhpcworICoJ CQkJCWZ1bmN0aW9uLgorICogT1BURUVfU01DX1JFVFVSTl9PSwkJCU9yaWdpbmFsIGNhbGwgY29t cGxldGVkLCByZXN1bHQKKyAqCQkJCQl1cGRhdGVkIGluIHRoZSBwcmV2aW91c2x5IHN1cHBsaWVk LgorICoJCQkJCXN0cnVjdCBvcHRlZV9tc2dfYXJnCisgKiBPUFRFRV9TTUNfUkVUVVJOX1JQQwkJ CUNhbGwgc3VzcGVuZGVkIGJ5IFJQQyBjYWxsIHRvIG5vcm1hbAorICoJCQkJCXdvcmxkLgorICog T1BURUVfU01DX1JFVFVSTl9FUkVTVU1FCQlSZXN1bWUgZmFpbGVkLCB0aGUgb3BhcXVlIHJlc3Vt ZQorICoJCQkJCWluZm9ybWF0aW9uIHdhcyBjb3JydXB0LgorICovCisjZGVmaW5lIE9QVEVFX1NN Q19GVU5DSURfUkVUVVJOX0ZST01fUlBDCTMKKyNkZWZpbmUgT1BURUVfU01DX0NBTExfUkVUVVJO X0ZST01fUlBDIFwKKwlPUFRFRV9TTUNfU1REX0NBTExfVkFMKE9QVEVFX1NNQ19GVU5DSURfUkVU VVJOX0ZST01fUlBDKQorCisjZGVmaW5lIE9QVEVFX1NNQ19SRVRVUk5fUlBDX1BSRUZJWF9NQVNL CTB4RkZGRjAwMDAKKyNkZWZpbmUgT1BURUVfU01DX1JFVFVSTl9SUENfUFJFRklYCQkweEZGRkYw MDAwCisjZGVmaW5lIE9QVEVFX1NNQ19SRVRVUk5fUlBDX0ZVTkNfTUFTSwkJMHgwMDAwRkZGRgor CisjZGVmaW5lIE9QVEVFX1NNQ19SRVRVUk5fR0VUX1JQQ19GVU5DKHJldCkgXAorCSgocmV0KSAm IE9QVEVFX1NNQ19SRVRVUk5fUlBDX0ZVTkNfTUFTSykKKworI2RlZmluZSBPUFRFRV9TTUNfUlBD X1ZBTChmdW5jKQkJKChmdW5jKSB8IE9QVEVFX1NNQ19SRVRVUk5fUlBDX1BSRUZJWCkKKworLyoK KyAqIEFsbG9jYXRlIG1lbW9yeSBmb3IgUlBDIHBhcmFtZXRlciBwYXNzaW5nLiBUaGUgbWVtb3J5 IGlzIHVzZWQgdG8gaG9sZCBhCisgKiBzdHJ1Y3Qgb3B0ZWVfbXNnX2FyZy4KKyAqCisgKiAiQ2Fs bCIgcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlUaGlzIHZhbHVlLCBPUFRFRV9TTUNfUkVUVVJOX1JQ Q19BTExPQworICogYTEJU2l6ZSBpbiBieXRlcyBvZiByZXF1aXJlZCBhcmd1bWVudCBtZW1vcnkK KyAqIGEyCU5vdCB1c2VkCisgKiBhMwlSZXN1bWUgaW5mb3JtYXRpb24sIG11c3QgYmUgcHJlc2Vy dmVkCisgKiBhNC01CU5vdCB1c2VkCisgKiBhNi03CVJlc3VtZSBpbmZvcm1hdGlvbiwgbXVzdCBi ZSBwcmVzZXJ2ZWQKKyAqCisgKiAiUmV0dXJuIiByZWdpc3RlciB1c2FnZToKKyAqIGEwCVNNQyBG dW5jdGlvbiBJRCwgT1BURUVfU01DX0NBTExfUkVUVVJOX0ZST01fUlBDLgorICogYTEJVXBwZXIg MzIgYml0cyBvZiA2NC1iaXQgcGh5c2ljYWwgcG9pbnRlciB0byBhbGxvY2F0ZWQKKyAqCW1lbW9y eSwgKGExID09IDAgJiYgYTIgPT0gMCkgaWYgc2l6ZSB3YXMgMCBvciBpZiBtZW1vcnkgY2FuJ3QK KyAqCWJlIGFsbG9jYXRlZC4KKyAqIGEyCUxvd2VyIDMyIGJpdHMgb2YgNjQtYml0IHBoeXNpY2Fs IHBvaW50ZXIgdG8gYWxsb2NhdGVkCisgKgltZW1vcnksIChhMSA9PSAwICYmIGEyID09IDApIGlm IHNpemUgd2FzIDAgb3IgaWYgbWVtb3J5IGNhbid0CisgKgliZSBhbGxvY2F0ZWQKKyAqIGEzCVBy ZXNlcnZlZAorICogYTQJVXBwZXIgMzIgYml0cyBvZiA2NC1iaXQgU2hhcmVkIG1lbW9yeSBjb29r aWUgdXNlZCB3aGVuIGZyZWVpbmcKKyAqCXRoZSBtZW1vcnkgb3IgZG9pbmcgYW4gUlBDCisgKiBh NQlMb3dlciAzMiBiaXRzIG9mIDY0LWJpdCBTaGFyZWQgbWVtb3J5IGNvb2tpZSB1c2VkIHdoZW4g ZnJlZWluZworICoJdGhlIG1lbW9yeSBvciBkb2luZyBhbiBSUEMKKyAqIGE2LTcJUHJlc2VydmVk CisgKi8KKyNkZWZpbmUgT1BURUVfU01DX1JQQ19GVU5DX0FMTE9DCTAKKyNkZWZpbmUgT1BURUVf U01DX1JFVFVSTl9SUENfQUxMT0MgXAorCU9QVEVFX1NNQ19SUENfVkFMKE9QVEVFX1NNQ19SUENf RlVOQ19BTExPQykKKworLyoKKyAqIEZyZWUgbWVtb3J5IHByZXZpb3VzbHkgYWxsb2NhdGVkIGJ5 IE9QVEVFX1NNQ19SRVRVUk5fUlBDX0FMTE9DCisgKgorICogIkNhbGwiIHJlZ2lzdGVyIHVzYWdl OgorICogYTAJVGhpcyB2YWx1ZSwgT1BURUVfU01DX1JFVFVSTl9SUENfRlJFRQorICogYTEJVXBw ZXIgMzIgYml0cyBvZiA2NC1iaXQgc2hhcmVkIG1lbW9yeSBjb29raWUgYmVsb25naW5nIHRvIHRo aXMKKyAqCWFyZ3VtZW50IG1lbW9yeQorICogYTIJTG93ZXIgMzIgYml0cyBvZiA2NC1iaXQgc2hh cmVkIG1lbW9yeSBjb29raWUgYmVsb25naW5nIHRvIHRoaXMKKyAqCWFyZ3VtZW50IG1lbW9yeQor ICogYTMtNwlSZXN1bWUgaW5mb3JtYXRpb24sIG11c3QgYmUgcHJlc2VydmVkCisgKgorICogIlJl dHVybiIgcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlTTUMgRnVuY3Rpb24gSUQsIE9QVEVFX1NNQ19D QUxMX1JFVFVSTl9GUk9NX1JQQy4KKyAqIGExLTIJTm90IHVzZWQKKyAqIGEzLTcJUHJlc2VydmVk CisgKi8KKyNkZWZpbmUgT1BURUVfU01DX1JQQ19GVU5DX0ZSRUUJCTIKKyNkZWZpbmUgT1BURUVf U01DX1JFVFVSTl9SUENfRlJFRSBcCisJT1BURUVfU01DX1JQQ19WQUwoT1BURUVfU01DX1JQQ19G VU5DX0ZSRUUpCisKKy8qCisgKiBEZWxpdmVyIGEgZm9yZWlnbiBpbnRlcnJ1cHQgaW4gbm9ybWFs IHdvcmxkLgorICoKKyAqICJDYWxsIiByZWdpc3RlciB1c2FnZToKKyAqIGEwCU9QVEVFX1NNQ19S RVRVUk5fUlBDX0ZPUkVJR05fSU5UUgorICogYTEtNwlSZXN1bWUgaW5mb3JtYXRpb24sIG11c3Qg YmUgcHJlc2VydmVkCisgKgorICogIlJldHVybiIgcmVnaXN0ZXIgdXNhZ2U6CisgKiBhMAlTTUMg RnVuY3Rpb24gSUQsIE9QVEVFX1NNQ19DQUxMX1JFVFVSTl9GUk9NX1JQQy4KKyAqIGExLTcJUHJl c2VydmVkCisgKi8KKyNkZWZpbmUgT1BURUVfU01DX1JQQ19GVU5DX0ZPUkVJR05fSU5UUgk0Cisj ZGVmaW5lIE9QVEVFX1NNQ19SRVRVUk5fUlBDX0ZPUkVJR05fSU5UUiBcCisJT1BURUVfU01DX1JQ Q19WQUwoT1BURUVfU01DX1JQQ19GVU5DX0ZPUkVJR05fSU5UUikKKworLyoKKyAqIERvIGFuIFJQ QyByZXF1ZXN0LiBUaGUgc3VwcGxpZWQgc3RydWN0IG9wdGVlX21zZ19hcmcgdGVsbHMgd2hpY2gK KyAqIHJlcXVlc3QgdG8gZG8gYW5kIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC4gVGhl IGZvbGxvd2luZyBmaWVsZHMKKyAqIGFyZSB1c2VkICh0aGUgcmVzdCBhcmUgdW51c2VkKToKKyAq IC0gY21kCQl0aGUgUmVxdWVzdCBJRAorICogLSByZXQJCXJldHVybiB2YWx1ZSBvZiB0aGUgcmVx dWVzdCwgZmlsbGVkIGluIGJ5IG5vcm1hbCB3b3JsZAorICogLSBudW1fcGFyYW1zCQludW1iZXIg b2YgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QKKyAqIC0gcGFyYW1zCQl0aGUgcGFyYW1ldGVy cworICogLSBwYXJhbV9hdHRycwlhdHRyaWJ1dGVzIG9mIHRoZSBwYXJhbWV0ZXJzCisgKgorICog IkNhbGwiIHJlZ2lzdGVyIHVzYWdlOgorICogYTAJT1BURUVfU01DX1JFVFVSTl9SUENfQ01ECisg KiBhMQlVcHBlciAzMiBiaXRzIG9mIGEgNjQtYml0IFNoYXJlZCBtZW1vcnkgY29va2llIGhvbGRp bmcgYQorICoJc3RydWN0IG9wdGVlX21zZ19hcmcsIG11c3QgYmUgcHJlc2VydmVkLCBvbmx5IHRo ZSBkYXRhIHNob3VsZAorICoJYmUgdXBkYXRlZAorICogYTIJTG93ZXIgMzIgYml0cyBvZiBhIDY0 LWJpdCBTaGFyZWQgbWVtb3J5IGNvb2tpZSBob2xkaW5nIGEKKyAqCXN0cnVjdCBvcHRlZV9tc2df YXJnLCBtdXN0IGJlIHByZXNlcnZlZCwgb25seSB0aGUgZGF0YSBzaG91bGQKKyAqCWJlIHVwZGF0 ZWQKKyAqIGEzLTcJUmVzdW1lIGluZm9ybWF0aW9uLCBtdXN0IGJlIHByZXNlcnZlZAorICoKKyAq ICJSZXR1cm4iIHJlZ2lzdGVyIHVzYWdlOgorICogYTAJU01DIEZ1bmN0aW9uIElELCBPUFRFRV9T TUNfQ0FMTF9SRVRVUk5fRlJPTV9SUEMuCisgKiBhMS0yCU5vdCB1c2VkCisgKiBhMy03CVByZXNl cnZlZAorICovCisjZGVmaW5lIE9QVEVFX1NNQ19SUENfRlVOQ19DTUQJCTUKKyNkZWZpbmUgT1BU RUVfU01DX1JFVFVSTl9SUENfQ01EIFwKKwlPUFRFRV9TTUNfUlBDX1ZBTChPUFRFRV9TTUNfUlBD X0ZVTkNfQ01EKQorCisvKiBSZXR1cm5lZCBpbiBhMCAqLworI2RlZmluZSBPUFRFRV9TTUNfUkVU VVJOX1VOS05PV05fRlVOQ1RJT04gMHhGRkZGRkZGRgorCisvKiBSZXR1cm5lZCBpbiBhMCBvbmx5 IGZyb20gVHJ1c3RlZCBPUyBmdW5jdGlvbnMgKi8KKyNkZWZpbmUgT1BURUVfU01DX1JFVFVSTl9P SwkJMHgwCisjZGVmaW5lIE9QVEVFX1NNQ19SRVRVUk5fRVRIUkVBRF9MSU1JVAkweDEKKyNkZWZp bmUgT1BURUVfU01DX1JFVFVSTl9FQlVTWQkJMHgyCisjZGVmaW5lIE9QVEVFX1NNQ19SRVRVUk5f RVJFU1VNRQkweDMKKyNkZWZpbmUgT1BURUVfU01DX1JFVFVSTl9FQkFEQUREUgkweDQKKyNkZWZp bmUgT1BURUVfU01DX1JFVFVSTl9FQkFEQ01ECTB4NQorI2RlZmluZSBPUFRFRV9TTUNfUkVUVVJO X0VOT01FTQkJMHg2CisjZGVmaW5lIE9QVEVFX1NNQ19SRVRVUk5fRU5PVEFWQUlMCTB4NworI2Rl ZmluZSBPUFRFRV9TTUNfUkVUVVJOX0lTX1JQQyhyZXQpIFwKKwkoKChyZXQpICE9IE9QVEVFX1NN Q19SRVRVUk5fVU5LTk9XTl9GVU5DVElPTikgJiYgXAorCSgoKChyZXQpICYgT1BURUVfU01DX1JF VFVSTl9SUENfUFJFRklYX01BU0spID09IFwKKwkJT1BURUVfU01DX1JFVFVSTl9SUENfUFJFRklY KSkpCisKKyNlbmRpZiAvKiBPUFRFRV9TTUNfSCAqLwotLSAKMi4yMS4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs