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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,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 BF44FC433E0 for ; Wed, 10 Feb 2021 09:52:22 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 0E59164DE9 for ; Wed, 10 Feb 2021 09:52:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0E59164DE9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:35450 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l9mAW-0000nl-SO for qemu-devel@archiver.kernel.org; Wed, 10 Feb 2021 04:52:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56988) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l9lqD-0006b3-2K for qemu-devel@nongnu.org; Wed, 10 Feb 2021 04:31:22 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:49975) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1l9lq8-0007uY-OU for qemu-devel@nongnu.org; Wed, 10 Feb 2021 04:31:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1612949476; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xQUSL88RmvUA22z4wQlZIn4iKh3QIU6cg9OaBXD7ngE=; b=HJs8qXbIaY3ulKUizPXlfoOI7ipN3hniLtOQH/nVk/m6NQ9lBXndwqLSUyJ0DIDtkhiI4I X+cH/E5a131/Qvc0PKHv8R7PL94N1AOr9iP9KNMzAIUDv4bq5F6Tu3wwPflxn1OjO7pvQf bWzWL8tARtJAQjmmNKBxUGcpACXMeYo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-186-Z-4i5UGANHKPzw_5RGEyhg-1; Wed, 10 Feb 2021 04:31:12 -0500 X-MC-Unique: Z-4i5UGANHKPzw_5RGEyhg-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 42007521F; Wed, 10 Feb 2021 09:31:10 +0000 (UTC) Received: from localhost (ovpn-115-120.ams2.redhat.com [10.36.115.120]) by smtp.corp.redhat.com (Postfix) with ESMTP id D7A5F19C59; Wed, 10 Feb 2021 09:30:57 +0000 (UTC) From: Stefan Hajnoczi To: Peter Maydell , qemu-devel@nongnu.org Subject: [PULL v4 24/27] multi-process: create IOHUB object to handle irq Date: Wed, 10 Feb 2021 09:26:25 +0000 Message-Id: <20210210092628.193785-25-stefanha@redhat.com> In-Reply-To: <20210210092628.193785-1-stefanha@redhat.com> References: <20210210092628.193785-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=stefanha@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=63.128.21.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.57, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , John G Johnson , thuth@redhat.com, Jagannathan Raman , Eduardo Habkost , qemu-block@nongnu.org, "Michael S. Tsirkin" , "Denis V. Lunev" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Wainer dos Santos Moschetta , Elena Ufimtseva , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" RnJvbTogSmFnYW5uYXRoYW4gUmFtYW4gPGphZy5yYW1hbkBvcmFjbGUuY29tPgoKSU9IVUIgb2Jq ZWN0IGlzIGFkZGVkIHRvIG1hbmFnZSBQQ0kgSVJRcy4gSXQgdXNlcyBLVk1fSVJRRkQKaW9jdGwg dG8gY3JlYXRlIGlycWZkIHRvIGluamVjdGluZyBQQ0kgaW50ZXJydXB0cyB0byB0aGUgZ3Vlc3Qu CklPSFVCIG9iamVjdCBmb3J3YXJkcyB0aGUgaXJxZmQgdG8gdGhlIHJlbW90ZSBwcm9jZXNzLiBS ZW1vdGUgcHJvY2Vzcwp1c2VzIHRoaXMgZmQgdG8gZGlyZWN0bHkgc2VuZCBpbnRlcnJ1cHRzIHRv IHRoZSBndWVzdCwgYnlwYXNzaW5nIFFFTVUuCgpTaWduZWQtb2ZmLWJ5OiBKb2huIEcgSm9obnNv biA8am9obi5nLmpvaG5zb25Ab3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFnYW5uYXRoYW4g UmFtYW4gPGphZy5yYW1hbkBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFbGVuYSBVZmltdHNl dmEgPGVsZW5hLnVmaW10c2V2YUBvcmFjbGUuY29tPgpSZXZpZXdlZC1ieTogU3RlZmFuIEhham5v Y3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgpNZXNzYWdlLWlkOiA1MWQ1YzNkNTRlMjhhNjhiMDAy ZTM4NzVjNTk1OTljOWY1YTQyNGExLjE2MTE5MzgzMTkuZ2l0LmphZy5yYW1hbkBvcmFjbGUuY29t ClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT4KLS0t CiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGluY2x1ZGUvaHcvcGNp L3BjaV9pZHMuaCAgICAgICAgfCAgIDMgKwogaW5jbHVkZS9ody9yZW1vdGUvaW9odWIuaCAgICAg ICB8ICA0MiArKysrKysrKysrKwogaW5jbHVkZS9ody9yZW1vdGUvbWFjaGluZS5oICAgICB8ICAg MiArCiBpbmNsdWRlL2h3L3JlbW90ZS9tcHFlbXUtbGluay5oIHwgICAxICsKIGluY2x1ZGUvaHcv cmVtb3RlL3Byb3h5LmggICAgICAgfCAgIDQgKysKIGh3L3JlbW90ZS9pb2h1Yi5jICAgICAgICAg ICAgICAgfCAxMTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGh3L3JlbW90ZS9t YWNoaW5lLmMgICAgICAgICAgICAgfCAgMTAgKysrCiBody9yZW1vdGUvbWVzc2FnZS5jICAgICAg ICAgICAgIHwgICA0ICsrCiBody9yZW1vdGUvbXBxZW11LWxpbmsuYyAgICAgICAgIHwgICA1ICsr CiBody9yZW1vdGUvcHJveHkuYyAgICAgICAgICAgICAgIHwgIDU2ICsrKysrKysrKysrKysrKwog aHcvcmVtb3RlL21lc29uLmJ1aWxkICAgICAgICAgICB8ICAgMSArCiAxMiBmaWxlcyBjaGFuZ2Vk LCAyNDkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvaHcvcmVtb3Rl L2lvaHViLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBody9yZW1vdGUvaW9odWIuYwoKZGlmZiAtLWdp dCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggMzgxN2U4MDdiMS4uZTZmMWVjYTMw ZiAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTMyMjEsNiAr MzIyMSw4IEBAIEY6IGh3L3JlbW90ZS9wcm94eS5jCiBGOiBpbmNsdWRlL2h3L3JlbW90ZS9wcm94 eS5oCiBGOiBody9yZW1vdGUvcHJveHktbWVtb3J5LWxpc3RlbmVyLmMKIEY6IGluY2x1ZGUvaHcv cmVtb3RlL3Byb3h5LW1lbW9yeS1saXN0ZW5lci5oCitGOiBody9yZW1vdGUvaW9odWIuYworRjog aW5jbHVkZS9ody9yZW1vdGUvaW9odWIuaAogCiBCdWlsZCBhbmQgdGVzdCBhdXRvbWF0aW9uCiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3BjaS9wY2lf aWRzLmggYi9pbmNsdWRlL2h3L3BjaS9wY2lfaWRzLmgKaW5kZXggMTFmOGFiNzE0OS4uYmQwYzE3 ZGM3OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ody9wY2kvcGNpX2lkcy5oCisrKyBiL2luY2x1ZGUv aHcvcGNpL3BjaV9pZHMuaApAQCAtMTkyLDYgKzE5Miw5IEBACiAjZGVmaW5lIFBDSV9ERVZJQ0Vf SURfU1VOX1NJTUJBICAgICAgICAgIDB4NTAwMAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX1NVTl9T QUJSRSAgICAgICAgICAweGEwMDAKIAorI2RlZmluZSBQQ0lfVkVORE9SX0lEX09SQUNMRSAgICAg ICAgICAgICAweDEwOGUKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9SRU1PVEVfSU9IVUIgICAgICAg MHhiMDAwCisKICNkZWZpbmUgUENJX1ZFTkRPUl9JRF9DTUQgICAgICAgICAgICAgICAgMHgxMDk1 CiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQ01EXzY0NiAgICAgICAgICAgIDB4MDY0NgogCmRpZmYg LS1naXQgYS9pbmNsdWRlL2h3L3JlbW90ZS9pb2h1Yi5oIGIvaW5jbHVkZS9ody9yZW1vdGUvaW9o dWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYmY5OGUwZDc4Ci0t LSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9ody9yZW1vdGUvaW9odWIuaApAQCAtMCwwICsxLDQy IEBACisvKgorICogSU8gSHViIGZvciByZW1vdGUgZGV2aWNlCisgKgorICogQ29weXJpZ2h0IMKp IDIwMTgsIDIwMjEgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4KKyAqCisgKiBUaGlzIHdv cmsgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR1BMLCB2ZXJzaW9uIDIg b3IgbGF0ZXIuCisgKiBTZWUgdGhlIENPUFlJTkcgZmlsZSBpbiB0aGUgdG9wLWxldmVsIGRpcmVj dG9yeS4KKyAqCisgKi8KKworI2lmbmRlZiBSRU1PVEVfSU9IVUJfSAorI2RlZmluZSBSRU1PVEVf SU9IVUJfSAorCisjaW5jbHVkZSAiaHcvcGNpL3BjaS5oIgorI2luY2x1ZGUgInFlbXUvZXZlbnRf bm90aWZpZXIuaCIKKyNpbmNsdWRlICJxZW11L3RocmVhZC1wb3NpeC5oIgorI2luY2x1ZGUgImh3 L3JlbW90ZS9tcHFlbXUtbGluay5oIgorCisjZGVmaW5lIFJFTU9URV9JT0hVQl9OQl9QSVJRUyAg ICBQQ0lfREVWRk5fTUFYCisKK3R5cGVkZWYgc3RydWN0IFJlc2FtcGxlVG9rZW4geworICAgIHZv aWQgKmlvaHViOworICAgIGludCBwaXJxOworfSBSZXNhbXBsZVRva2VuOworCit0eXBlZGVmIHN0 cnVjdCBSZW1vdGVJT0h1YlN0YXRlIHsKKyAgICBQQ0lEZXZpY2UgZDsKKyAgICBFdmVudE5vdGlm aWVyIGlycWZkc1tSRU1PVEVfSU9IVUJfTkJfUElSUVNdOworICAgIEV2ZW50Tm90aWZpZXIgcmVz YW1wbGVmZHNbUkVNT1RFX0lPSFVCX05CX1BJUlFTXTsKKyAgICB1bnNpZ25lZCBpbnQgaXJxX2xl dmVsW1JFTU9URV9JT0hVQl9OQl9QSVJRU107CisgICAgUmVzYW1wbGVUb2tlbiB0b2tlbltSRU1P VEVfSU9IVUJfTkJfUElSUVNdOworICAgIFFlbXVNdXRleCBpcnFfbGV2ZWxfbG9ja1tSRU1PVEVf SU9IVUJfTkJfUElSUVNdOworfSBSZW1vdGVJT0h1YlN0YXRlOworCitpbnQgcmVtb3RlX2lvaHVi X21hcF9pcnEoUENJRGV2aWNlICpwY2lfZGV2LCBpbnQgaW50eCk7Cit2b2lkIHJlbW90ZV9pb2h1 Yl9zZXRfaXJxKHZvaWQgKm9wYXF1ZSwgaW50IHBpcnEsIGludCBsZXZlbCk7Cit2b2lkIHByb2Nl c3Nfc2V0X2lycWZkX21zZyhQQ0lEZXZpY2UgKnBjaV9kZXYsIE1QUWVtdU1zZyAqbXNnKTsKKwor dm9pZCByZW1vdGVfaW9odWJfaW5pdChSZW1vdGVJT0h1YlN0YXRlICppb2h1Yik7Cit2b2lkIHJl bW90ZV9pb2h1Yl9maW5hbGl6ZShSZW1vdGVJT0h1YlN0YXRlICppb2h1Yik7CisKKyNlbmRpZgpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9yZW1vdGUvbWFjaGluZS5oIGIvaW5jbHVkZS9ody9yZW1v dGUvbWFjaGluZS5oCmluZGV4IGI5MmIyY2U3MDUuLjJhMmEzM2M0YjIgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvaHcvcmVtb3RlL21hY2hpbmUuaAorKysgYi9pbmNsdWRlL2h3L3JlbW90ZS9tYWNoaW5l LmgKQEAgLTE1LDExICsxNSwxMyBAQAogI2luY2x1ZGUgImh3L2JvYXJkcy5oIgogI2luY2x1ZGUg Imh3L3BjaS1ob3N0L3JlbW90ZS5oIgogI2luY2x1ZGUgImlvL2NoYW5uZWwuaCIKKyNpbmNsdWRl ICJody9yZW1vdGUvaW9odWIuaCIKIAogc3RydWN0IFJlbW90ZU1hY2hpbmVTdGF0ZSB7CiAgICAg TWFjaGluZVN0YXRlIHBhcmVudF9vYmo7CiAKICAgICBSZW1vdGVQQ0lIb3N0ICpob3N0OworICAg IFJlbW90ZUlPSHViU3RhdGUgaW9odWI7CiB9OwogCiAvKiBVc2VkIHRvIHBhc3MgdG8gY28tcm91 dGluZSBkZXZpY2UgYW5kIGlvYy4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvcmVtb3RlL21w cWVtdS1saW5rLmggYi9pbmNsdWRlL2h3L3JlbW90ZS9tcHFlbXUtbGluay5oCmluZGV4IDYzMDNl NjJiMTcuLjcxZDIwNmYwMGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaHcvcmVtb3RlL21wcWVtdS1s aW5rLmgKKysrIGIvaW5jbHVkZS9ody9yZW1vdGUvbXBxZW11LWxpbmsuaApAQCAtMzksNiArMzks NyBAQCB0eXBlZGVmIGVudW0gewogICAgIE1QUUVNVV9DTURfUENJX0NGR1JFQUQsCiAgICAgTVBR RU1VX0NNRF9CQVJfV1JJVEUsCiAgICAgTVBRRU1VX0NNRF9CQVJfUkVBRCwKKyAgICBNUFFFTVVf Q01EX1NFVF9JUlFGRCwKICAgICBNUFFFTVVfQ01EX01BWCwKIH0gTVBRZW11Q21kOwogCmRpZmYg LS1naXQgYS9pbmNsdWRlL2h3L3JlbW90ZS9wcm94eS5oIGIvaW5jbHVkZS9ody9yZW1vdGUvcHJv eHkuaAppbmRleCAxMjg4OGI0ZjkwLi43NDFkZWY3MWYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2h3 L3JlbW90ZS9wcm94eS5oCisrKyBiL2luY2x1ZGUvaHcvcmVtb3RlL3Byb3h5LmgKQEAgLTEyLDYg KzEyLDcgQEAKICNpbmNsdWRlICJody9wY2kvcGNpLmgiCiAjaW5jbHVkZSAiaW8vY2hhbm5lbC5o IgogI2luY2x1ZGUgImh3L3JlbW90ZS9wcm94eS1tZW1vcnktbGlzdGVuZXIuaCIKKyNpbmNsdWRl ICJxZW11L2V2ZW50X25vdGlmaWVyLmgiCiAKICNkZWZpbmUgVFlQRV9QQ0lfUFJPWFlfREVWICJ4 LXBjaS1wcm94eS1kZXYiCiBPQkpFQ1RfREVDTEFSRV9TSU1QTEVfVFlQRShQQ0lQcm94eURldiwg UENJX1BST1hZX0RFVikKQEAgLTM4LDYgKzM5LDkgQEAgc3RydWN0IFBDSVByb3h5RGV2IHsKICAg ICBRSU9DaGFubmVsICppb2M7CiAgICAgRXJyb3IgKm1pZ3JhdGlvbl9ibG9ja2VyOwogICAgIFBy b3h5TWVtb3J5TGlzdGVuZXIgcHJveHlfbGlzdGVuZXI7CisgICAgaW50IHZpcnE7CisgICAgRXZl bnROb3RpZmllciBpbnRyOworICAgIEV2ZW50Tm90aWZpZXIgcmVzYW1wbGU7CiAgICAgUHJveHlN ZW1vcnlSZWdpb24gcmVnaW9uW1BDSV9OVU1fUkVHSU9OU107CiB9OwogCmRpZmYgLS1naXQgYS9o dy9yZW1vdGUvaW9odWIuYyBiL2h3L3JlbW90ZS9pb2h1Yi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLmU0ZmYxMzFhNmIKLS0tIC9kZXYvbnVsbAorKysgYi9ody9yZW1v dGUvaW9odWIuYwpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIFJlbW90ZSBJTyBIdWIKKyAqCisg KiBDb3B5cmlnaHQgwqkgMjAxOCwgMjAyMSBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLgor ICoKKyAqIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH UEwsIHZlcnNpb24gMiBvciBsYXRlci4KKyAqIFNlZSB0aGUgQ09QWUlORyBmaWxlIGluIHRoZSB0 b3AtbGV2ZWwgZGlyZWN0b3J5LgorICoKKyAqLworCisjaW5jbHVkZSAicWVtdS9vc2RlcC5oIgor I2luY2x1ZGUgInFlbXUtY29tbW9uLmgiCisKKyNpbmNsdWRlICJody9wY2kvcGNpLmgiCisjaW5j bHVkZSAiaHcvcGNpL3BjaV9pZHMuaCIKKyNpbmNsdWRlICJody9wY2kvcGNpX2J1cy5oIgorI2lu Y2x1ZGUgInFlbXUvdGhyZWFkLmgiCisjaW5jbHVkZSAiaHcvYm9hcmRzLmgiCisjaW5jbHVkZSAi aHcvcmVtb3RlL21hY2hpbmUuaCIKKyNpbmNsdWRlICJody9yZW1vdGUvaW9odWIuaCIKKyNpbmNs dWRlICJxZW11L21haW4tbG9vcC5oIgorCit2b2lkIHJlbW90ZV9pb2h1Yl9pbml0KFJlbW90ZUlP SHViU3RhdGUgKmlvaHViKQoreworICAgIGludCBwaXJxOworCisgICAgbWVtc2V0KCZpb2h1Yi0+ aXJxZmRzLCAwLCBzaXplb2YoaW9odWItPmlycWZkcykpOworICAgIG1lbXNldCgmaW9odWItPnJl c2FtcGxlZmRzLCAwLCBzaXplb2YoaW9odWItPnJlc2FtcGxlZmRzKSk7CisKKyAgICBmb3IgKHBp cnEgPSAwOyBwaXJxIDwgUkVNT1RFX0lPSFVCX05CX1BJUlFTOyBwaXJxKyspIHsKKyAgICAgICAg cWVtdV9tdXRleF9pbml0KCZpb2h1Yi0+aXJxX2xldmVsX2xvY2tbcGlycV0pOworICAgICAgICBp b2h1Yi0+aXJxX2xldmVsW3BpcnFdID0gMDsKKyAgICAgICAgZXZlbnRfbm90aWZpZXJfaW5pdF9m ZCgmaW9odWItPmlycWZkc1twaXJxXSwgLTEpOworICAgICAgICBldmVudF9ub3RpZmllcl9pbml0 X2ZkKCZpb2h1Yi0+cmVzYW1wbGVmZHNbcGlycV0sIC0xKTsKKyAgICB9Cit9CisKK3ZvaWQgcmVt b3RlX2lvaHViX2ZpbmFsaXplKFJlbW90ZUlPSHViU3RhdGUgKmlvaHViKQoreworICAgIGludCBw aXJxOworCisgICAgZm9yIChwaXJxID0gMDsgcGlycSA8IFJFTU9URV9JT0hVQl9OQl9QSVJRUzsg cGlycSsrKSB7CisgICAgICAgIHFlbXVfc2V0X2ZkX2hhbmRsZXIoZXZlbnRfbm90aWZpZXJfZ2V0 X2ZkKCZpb2h1Yi0+cmVzYW1wbGVmZHNbcGlycV0pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIE5VTEwsIE5VTEwpOworICAgICAgICBldmVudF9ub3RpZmllcl9jbGVhbnVwKCZp b2h1Yi0+aXJxZmRzW3BpcnFdKTsKKyAgICAgICAgZXZlbnRfbm90aWZpZXJfY2xlYW51cCgmaW9o dWItPnJlc2FtcGxlZmRzW3BpcnFdKTsKKyAgICAgICAgcWVtdV9tdXRleF9kZXN0cm95KCZpb2h1 Yi0+aXJxX2xldmVsX2xvY2tbcGlycV0pOworICAgIH0KK30KKworaW50IHJlbW90ZV9pb2h1Yl9t YXBfaXJxKFBDSURldmljZSAqcGNpX2RldiwgaW50IGludHgpCit7CisgICAgcmV0dXJuIHBjaV9k ZXYtPmRldmZuOworfQorCit2b2lkIHJlbW90ZV9pb2h1Yl9zZXRfaXJxKHZvaWQgKm9wYXF1ZSwg aW50IHBpcnEsIGludCBsZXZlbCkKK3sKKyAgICBSZW1vdGVJT0h1YlN0YXRlICppb2h1YiA9IG9w YXF1ZTsKKworICAgIGFzc2VydChwaXJxID49IDApOworICAgIGFzc2VydChwaXJxIDwgUENJX0RF VkZOX01BWCk7CisKKyAgICBRRU1VX0xPQ0tfR1VBUkQoJmlvaHViLT5pcnFfbGV2ZWxfbG9ja1tw aXJxXSk7CisKKyAgICBpZiAobGV2ZWwpIHsKKyAgICAgICAgaWYgKCsraW9odWItPmlycV9sZXZl bFtwaXJxXSA9PSAxKSB7CisgICAgICAgICAgICBldmVudF9ub3RpZmllcl9zZXQoJmlvaHViLT5p cnFmZHNbcGlycV0pOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChpb2h1Yi0+aXJxX2xldmVs W3BpcnFdID4gMCkgeworICAgICAgICBpb2h1Yi0+aXJxX2xldmVsW3BpcnFdLS07CisgICAgfQor fQorCitzdGF0aWMgdm9pZCBpbnRyX3Jlc2FtcGxlX2hhbmRsZXIodm9pZCAqb3BhcXVlKQorewor ICAgIFJlc2FtcGxlVG9rZW4gKnRva2VuID0gb3BhcXVlOworICAgIFJlbW90ZUlPSHViU3RhdGUg KmlvaHViID0gdG9rZW4tPmlvaHViOworICAgIGludCBwaXJxLCBzOworCisgICAgcGlycSA9IHRv a2VuLT5waXJxOworCisgICAgcyA9IGV2ZW50X25vdGlmaWVyX3Rlc3RfYW5kX2NsZWFyKCZpb2h1 Yi0+cmVzYW1wbGVmZHNbcGlycV0pOworCisgICAgYXNzZXJ0KHMgPj0gMCk7CisKKyAgICBRRU1V X0xPQ0tfR1VBUkQoJmlvaHViLT5pcnFfbGV2ZWxfbG9ja1twaXJxXSk7CisKKyAgICBpZiAoaW9o dWItPmlycV9sZXZlbFtwaXJxXSkgeworICAgICAgICBldmVudF9ub3RpZmllcl9zZXQoJmlvaHVi LT5pcnFmZHNbcGlycV0pOworICAgIH0KK30KKwordm9pZCBwcm9jZXNzX3NldF9pcnFmZF9tc2co UENJRGV2aWNlICpwY2lfZGV2LCBNUFFlbXVNc2cgKm1zZykKK3sKKyAgICBSZW1vdGVNYWNoaW5l U3RhdGUgKm1hY2hpbmUgPSBSRU1PVEVfTUFDSElORShjdXJyZW50X21hY2hpbmUpOworICAgIFJl bW90ZUlPSHViU3RhdGUgKmlvaHViID0gJm1hY2hpbmUtPmlvaHViOworICAgIGludCBwaXJxLCBp bnR4OworCisgICAgaW50eCA9IHBjaV9nZXRfYnl0ZShwY2lfZGV2LT5jb25maWcgKyBQQ0lfSU5U RVJSVVBUX1BJTikgLSAxOworCisgICAgcGlycSA9IHJlbW90ZV9pb2h1Yl9tYXBfaXJxKHBjaV9k ZXYsIGludHgpOworCisgICAgaWYgKGV2ZW50X25vdGlmaWVyX2dldF9mZCgmaW9odWItPmlycWZk c1twaXJxXSkgIT0gLTEpIHsKKyAgICAgICAgcWVtdV9zZXRfZmRfaGFuZGxlcihldmVudF9ub3Rp Zmllcl9nZXRfZmQoJmlvaHViLT5yZXNhbXBsZWZkc1twaXJxXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgICAgIGV2ZW50X25vdGlmaWVyX2Ns ZWFudXAoJmlvaHViLT5pcnFmZHNbcGlycV0pOworICAgICAgICBldmVudF9ub3RpZmllcl9jbGVh bnVwKCZpb2h1Yi0+cmVzYW1wbGVmZHNbcGlycV0pOworICAgICAgICBtZW1zZXQoJmlvaHViLT50 b2tlbltwaXJxXSwgMCwgc2l6ZW9mKFJlc2FtcGxlVG9rZW4pKTsKKyAgICB9CisKKyAgICBldmVu dF9ub3RpZmllcl9pbml0X2ZkKCZpb2h1Yi0+aXJxZmRzW3BpcnFdLCBtc2ctPmZkc1swXSk7Cisg ICAgZXZlbnRfbm90aWZpZXJfaW5pdF9mZCgmaW9odWItPnJlc2FtcGxlZmRzW3BpcnFdLCBtc2ct PmZkc1sxXSk7CisKKyAgICBpb2h1Yi0+dG9rZW5bcGlycV0uaW9odWIgPSBpb2h1YjsKKyAgICBp b2h1Yi0+dG9rZW5bcGlycV0ucGlycSA9IHBpcnE7CisKKyAgICBxZW11X3NldF9mZF9oYW5kbGVy KG1zZy0+ZmRzWzFdLCBpbnRyX3Jlc2FtcGxlX2hhbmRsZXIsIE5VTEwsCisgICAgICAgICAgICAg ICAgICAgICAgICAmaW9odWItPnRva2VuW3BpcnFdKTsKK30KZGlmZiAtLWdpdCBhL2h3L3JlbW90 ZS9tYWNoaW5lLmMgYi9ody9yZW1vdGUvbWFjaGluZS5jCmluZGV4IDk1MTlhNmMwYTQuLmMwYWI0 ZjUyOGEgMTAwNjQ0Ci0tLSBhL2h3L3JlbW90ZS9tYWNoaW5lLmMKKysrIGIvaHcvcmVtb3RlL21h Y2hpbmUuYwpAQCAtMjAsMTIgKzIwLDE1IEBACiAjaW5jbHVkZSAiZXhlYy9hZGRyZXNzLXNwYWNl cy5oIgogI2luY2x1ZGUgImV4ZWMvbWVtb3J5LmgiCiAjaW5jbHVkZSAicWFwaS9lcnJvci5oIgor I2luY2x1ZGUgImh3L3BjaS9wY2lfaG9zdC5oIgorI2luY2x1ZGUgImh3L3JlbW90ZS9pb2h1Yi5o IgogCiBzdGF0aWMgdm9pZCByZW1vdGVfbWFjaGluZV9pbml0KE1hY2hpbmVTdGF0ZSAqbWFjaGlu ZSkKIHsKICAgICBNZW1vcnlSZWdpb24gKnN5c3RlbV9tZW1vcnksICpzeXN0ZW1faW8sICpwY2lf bWVtb3J5OwogICAgIFJlbW90ZU1hY2hpbmVTdGF0ZSAqcyA9IFJFTU9URV9NQUNISU5FKG1hY2hp bmUpOwogICAgIFJlbW90ZVBDSUhvc3QgKnJlbV9ob3N0OworICAgIFBDSUhvc3RTdGF0ZSAqcGNp X2hvc3Q7CiAKICAgICBzeXN0ZW1fbWVtb3J5ID0gZ2V0X3N5c3RlbV9tZW1vcnkoKTsKICAgICBz eXN0ZW1faW8gPSBnZXRfc3lzdGVtX2lvKCk7CkBAIC00NSw2ICs0OCwxMyBAQCBzdGF0aWMgdm9p ZCByZW1vdGVfbWFjaGluZV9pbml0KE1hY2hpbmVTdGF0ZSAqbWFjaGluZSkKICAgICBtZW1vcnlf cmVnaW9uX2FkZF9zdWJyZWdpb25fb3ZlcmxhcChzeXN0ZW1fbWVtb3J5LCAweDAsIHBjaV9tZW1v cnksIC0xKTsKIAogICAgIHFkZXZfcmVhbGl6ZShERVZJQ0UocmVtX2hvc3QpLCBzeXNidXNfZ2V0 X2RlZmF1bHQoKSwgJmVycm9yX2ZhdGFsKTsKKworICAgIHBjaV9ob3N0ID0gUENJX0hPU1RfQlJJ REdFKHJlbV9ob3N0KTsKKworICAgIHJlbW90ZV9pb2h1Yl9pbml0KCZzLT5pb2h1Yik7CisKKyAg ICBwY2lfYnVzX2lycXMocGNpX2hvc3QtPmJ1cywgcmVtb3RlX2lvaHViX3NldF9pcnEsIHJlbW90 ZV9pb2h1Yl9tYXBfaXJxLAorICAgICAgICAgICAgICAgICAmcy0+aW9odWIsIFJFTU9URV9JT0hV Ql9OQl9QSVJRUyk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlbW90ZV9tYWNoaW5lX2NsYXNzX2luaXQo T2JqZWN0Q2xhc3MgKm9jLCB2b2lkICpkYXRhKQpkaWZmIC0tZ2l0IGEvaHcvcmVtb3RlL21lc3Nh Z2UuYyBiL2h3L3JlbW90ZS9tZXNzYWdlLmMKaW5kZXggMjUzNDFkOGFkMi4uYWRhYjA0MGNhMSAx MDA2NDQKLS0tIGEvaHcvcmVtb3RlL21lc3NhZ2UuYworKysgYi9ody9yZW1vdGUvbWVzc2FnZS5j CkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSAiaHcvcGNpL3BjaS5oIgogI2luY2x1ZGUgImV4 ZWMvbWVtYXR0cnMuaCIKICNpbmNsdWRlICJody9yZW1vdGUvbWVtb3J5LmgiCisjaW5jbHVkZSAi aHcvcmVtb3RlL2lvaHViLmgiCiAKIHN0YXRpYyB2b2lkIHByb2Nlc3NfY29uZmlnX3dyaXRlKFFJ T0NoYW5uZWwgKmlvYywgUENJRGV2aWNlICpkZXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNUFFlbXVNc2cgKm1zZywgRXJyb3IgKiplcnJwKTsKQEAgLTY1LDYgKzY2LDkgQEAg dm9pZCBjb3JvdXRpbmVfZm4gbXBxZW11X3JlbW90ZV9tc2dfbG9vcF9jbyh2b2lkICpkYXRhKQog ICAgICAgICBjYXNlIE1QUUVNVV9DTURfU1lOQ19TWVNNRU06CiAgICAgICAgICAgICByZW1vdGVf c3lzbWVtX3JlY29uZmlnKCZtc2csICZsb2NhbF9lcnIpOwogICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgIGNhc2UgTVBRRU1VX0NNRF9TRVRfSVJRRkQ6CisgICAgICAgICAgICBwcm9jZXNzX3Nl dF9pcnFmZF9tc2cocGNpX2RldiwgJm1zZyk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg ZGVmYXVsdDoKICAgICAgICAgICAgIGVycm9yX3NldGcoJmxvY2FsX2VyciwKICAgICAgICAgICAg ICAgICAgICAgICAgIlVua25vd24gY29tbWFuZCAoJWQpIHJlY2VpdmVkIGZvciBkZXZpY2UgJXMi CmRpZmYgLS1naXQgYS9ody9yZW1vdGUvbXBxZW11LWxpbmsuYyBiL2h3L3JlbW90ZS9tcHFlbXUt bGluay5jCmluZGV4IDUyYmZlZGRjZGMuLjljZTMxNTI2ZTggMTAwNjQ0Ci0tLSBhL2h3L3JlbW90 ZS9tcHFlbXUtbGluay5jCisrKyBiL2h3L3JlbW90ZS9tcHFlbXUtbGluay5jCkBAIC0yNTQsNiAr MjU0LDExIEBAIGJvb2wgbXBxZW11X21zZ192YWxpZChNUFFlbXVNc2cgKm1zZykKICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyAgICBjYXNlIE1Q UUVNVV9DTURfU0VUX0lSUUZEOgorICAgICAgICBpZiAobXNnLT5zaXplIHx8IChtc2ctPm51bV9m ZHMgIT0gMikpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAg ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQg YS9ody9yZW1vdGUvcHJveHkuYyBiL2h3L3JlbW90ZS9wcm94eS5jCmluZGV4IDQ3MmIyZGYzMzUu LjU1NWIzMTAzZjQgMTAwNjQ0Ci0tLSBhL2h3L3JlbW90ZS9wcm94eS5jCisrKyBiL2h3L3JlbW90 ZS9wcm94eS5jCkBAIC0yMSw2ICsyMSw1NyBAQAogI2luY2x1ZGUgInFlbXUvZXJyb3ItcmVwb3J0 LmgiCiAjaW5jbHVkZSAiaHcvcmVtb3RlL3Byb3h5LW1lbW9yeS1saXN0ZW5lci5oIgogI2luY2x1 ZGUgInFvbS9vYmplY3QuaCIKKyNpbmNsdWRlICJxZW11L2V2ZW50X25vdGlmaWVyLmgiCisjaW5j bHVkZSAic3lzZW11L2t2bS5oIgorI2luY2x1ZGUgInV0aWwvZXZlbnRfbm90aWZpZXItcG9zaXgu YyIKKworc3RhdGljIHZvaWQgcHJveHlfaW50eF91cGRhdGUoUENJRGV2aWNlICpwY2lfZGV2KQor eworICAgIFBDSVByb3h5RGV2ICpkZXYgPSBQQ0lfUFJPWFlfREVWKHBjaV9kZXYpOworICAgIFBD SUlOVHhSb3V0ZSByb3V0ZTsKKyAgICBpbnQgcGluID0gcGNpX2dldF9ieXRlKHBjaV9kZXYtPmNv bmZpZyArIFBDSV9JTlRFUlJVUFRfUElOKSAtIDE7CisKKyAgICBpZiAoZGV2LT52aXJxICE9IC0x KSB7CisgICAgICAgIGt2bV9pcnFjaGlwX3JlbW92ZV9pcnFmZF9ub3RpZmllcl9nc2koa3ZtX3N0 YXRlLCAmZGV2LT5pbnRyLCBkZXYtPnZpcnEpOworICAgICAgICBkZXYtPnZpcnEgPSAtMTsKKyAg ICB9CisKKyAgICByb3V0ZSA9IHBjaV9kZXZpY2Vfcm91dGVfaW50eF90b19pcnEocGNpX2Rldiwg cGluKTsKKworICAgIGRldi0+dmlycSA9IHJvdXRlLmlycTsKKworICAgIGlmIChkZXYtPnZpcnEg IT0gLTEpIHsKKyAgICAgICAga3ZtX2lycWNoaXBfYWRkX2lycWZkX25vdGlmaWVyX2dzaShrdm1f c3RhdGUsICZkZXYtPmludHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmRldi0+cmVzYW1wbGUsIGRldi0+dmlycSk7CisgICAgfQorfQorCitzdGF0aWMgdm9p ZCBzZXR1cF9pcnFmZChQQ0lQcm94eURldiAqZGV2KQoreworICAgIFBDSURldmljZSAqcGNpX2Rl diA9IFBDSV9ERVZJQ0UoZGV2KTsKKyAgICBNUFFlbXVNc2cgbXNnOworICAgIEVycm9yICpsb2Nh bF9lcnIgPSBOVUxMOworCisgICAgZXZlbnRfbm90aWZpZXJfaW5pdCgmZGV2LT5pbnRyLCAwKTsK KyAgICBldmVudF9ub3RpZmllcl9pbml0KCZkZXYtPnJlc2FtcGxlLCAwKTsKKworICAgIG1lbXNl dCgmbXNnLCAwLCBzaXplb2YoTVBRZW11TXNnKSk7CisgICAgbXNnLmNtZCA9IE1QUUVNVV9DTURf U0VUX0lSUUZEOworICAgIG1zZy5udW1fZmRzID0gMjsKKyAgICBtc2cuZmRzWzBdID0gZXZlbnRf bm90aWZpZXJfZ2V0X2ZkKCZkZXYtPmludHIpOworICAgIG1zZy5mZHNbMV0gPSBldmVudF9ub3Rp Zmllcl9nZXRfZmQoJmRldi0+cmVzYW1wbGUpOworICAgIG1zZy5zaXplID0gMDsKKworICAgIGlm ICghbXBxZW11X21zZ19zZW5kKCZtc2csIGRldi0+aW9jLCAmbG9jYWxfZXJyKSkgeworICAgICAg ICBlcnJvcl9yZXBvcnRfZXJyKGxvY2FsX2Vycik7CisgICAgfQorCisgICAgZGV2LT52aXJxID0g LTE7CisKKyAgICBwcm94eV9pbnR4X3VwZGF0ZShwY2lfZGV2KTsKKworICAgIHBjaV9kZXZpY2Vf c2V0X2ludHhfcm91dGluZ19ub3RpZmllcihwY2lfZGV2LCBwcm94eV9pbnR4X3VwZGF0ZSk7Cit9 CiAKIHN0YXRpYyB2b2lkIHBjaV9wcm94eV9kZXZfcmVhbGl6ZShQQ0lEZXZpY2UgKmRldmljZSwg RXJyb3IgKiplcnJwKQogewpAQCAtNTYsNiArMTA3LDggQEAgc3RhdGljIHZvaWQgcGNpX3Byb3h5 X2Rldl9yZWFsaXplKFBDSURldmljZSAqZGV2aWNlLCBFcnJvciAqKmVycnApCiAgICAgcWlvX2No YW5uZWxfc2V0X2Jsb2NraW5nKGRldi0+aW9jLCB0cnVlLCBOVUxMKTsKIAogICAgIHByb3h5X21l bW9yeV9saXN0ZW5lcl9jb25maWd1cmUoJmRldi0+cHJveHlfbGlzdGVuZXIsIGRldi0+aW9jKTsK KworICAgIHNldHVwX2lycWZkKGRldik7CiB9CiAKIHN0YXRpYyB2b2lkIHBjaV9wcm94eV9kZXZf ZXhpdChQQ0lEZXZpY2UgKnBkZXYpCkBAIC03MSw2ICsxMjQsOSBAQCBzdGF0aWMgdm9pZCBwY2lf cHJveHlfZGV2X2V4aXQoUENJRGV2aWNlICpwZGV2KQogICAgIGVycm9yX2ZyZWUoZGV2LT5taWdy YXRpb25fYmxvY2tlcik7CiAKICAgICBwcm94eV9tZW1vcnlfbGlzdGVuZXJfZGVjb25maWd1cmUo JmRldi0+cHJveHlfbGlzdGVuZXIpOworCisgICAgZXZlbnRfbm90aWZpZXJfY2xlYW51cCgmZGV2 LT5pbnRyKTsKKyAgICBldmVudF9ub3RpZmllcl9jbGVhbnVwKCZkZXYtPnJlc2FtcGxlKTsKIH0K IAogc3RhdGljIHZvaWQgY29uZmlnX29wX3NlbmQoUENJUHJveHlEZXYgKnBkZXYsIHVpbnQzMl90 IGFkZHIsIHVpbnQzMl90ICp2YWwsCmRpZmYgLS1naXQgYS9ody9yZW1vdGUvbWVzb24uYnVpbGQg Yi9ody9yZW1vdGUvbWVzb24uYnVpbGQKaW5kZXggN2YxMWJlNDczNi4uZTZhNTU3NDI0MiAxMDA2 NDQKLS0tIGEvaHcvcmVtb3RlL21lc29uLmJ1aWxkCisrKyBiL2h3L3JlbW90ZS9tZXNvbi5idWls ZApAQCAtNSw2ICs1LDcgQEAgcmVtb3RlX3NzLmFkZCh3aGVuOiAnQ09ORklHX01VTFRJUFJPQ0VT UycsIGlmX3RydWU6IGZpbGVzKCdtcHFlbXUtbGluay5jJykpCiByZW1vdGVfc3MuYWRkKHdoZW46 ICdDT05GSUdfTVVMVElQUk9DRVNTJywgaWZfdHJ1ZTogZmlsZXMoJ21lc3NhZ2UuYycpKQogcmVt b3RlX3NzLmFkZCh3aGVuOiAnQ09ORklHX01VTFRJUFJPQ0VTUycsIGlmX3RydWU6IGZpbGVzKCdy ZW1vdGUtb2JqLmMnKSkKIHJlbW90ZV9zcy5hZGQod2hlbjogJ0NPTkZJR19NVUxUSVBST0NFU1Mn LCBpZl90cnVlOiBmaWxlcygncHJveHkuYycpKQorcmVtb3RlX3NzLmFkZCh3aGVuOiAnQ09ORklH X01VTFRJUFJPQ0VTUycsIGlmX3RydWU6IGZpbGVzKCdpb2h1Yi5jJykpCiAKIHNwZWNpZmljX3Nz LmFkZCh3aGVuOiAnQ09ORklHX01VTFRJUFJPQ0VTUycsIGlmX3RydWU6IGZpbGVzKCdtZW1vcnku YycpKQogc3BlY2lmaWNfc3MuYWRkKHdoZW46ICdDT05GSUdfTVVMVElQUk9DRVNTJywgaWZfdHJ1 ZTogZmlsZXMoJ3Byb3h5LW1lbW9yeS1saXN0ZW5lci5jJykpCi0tIAoyLjI5LjIKCg==