From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id A6AD53858401 for ; Tue, 9 Aug 2022 21:40:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A6AD53858401 Received: from mail-yw1-f199.google.com (mail-yw1-f199.google.com [209.85.128.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-530-rs7J3spJOBSV8YGdIqq6-Q-1; Tue, 09 Aug 2022 17:40:28 -0400 X-MC-Unique: rs7J3spJOBSV8YGdIqq6-Q-1 Received: by mail-yw1-f199.google.com with SMTP id 00721157ae682-32a144ac47fso6486037b3.8 for ; Tue, 09 Aug 2022 14:40:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc; bh=FDhtqhswIt5hpLVkaWQTZJwoDdz4//1L9uWwoTb9F3Y=; b=AxGdxFN5aevR/ze+/yTLGz5YkECWks3yOuWE0vuObDQ0a0SjNEAjam5dpC8Rov6Sh3 FbylF9i9a0R6wwNJYsV1dGZcfWbHVRi49JFMQMKJR8ybKRyPLEWeoXafZmBHUjcZUWH9 yGNsor4xorX0MuepxwjIiJZBzg6PewUFyO7Qts8FH/agCjUS0frOEq5MuLmreKIexFhq /dxP6eX/H1YbfHxPoKU/flspUO+V2uXauIR7cAV63mj1SxIsw//aZzKd1A83c3csp0kQ M5kOSjn7hq3tsuTNYiqTQP/DOnwJrB/rWNBdoGzKxh4kcsc1cpuX3Uu1TLX4sc/yV0QX HGeA== X-Gm-Message-State: ACgBeo2IzIiVYTHgIVYUnzcsyQFnPQlLNCF0kXg8V544e0j4iheI1IP9 UDNgSU8rBE4XgnBsTwW4cGpFsKJ+VY7d1Xs/TCYVq6JKyizBwUvZPYlGP9N2Mo+omLsNZZxbY7D hHaeT7v0ncd2syg4Qm4shnZ6EhhOcnN8dvy2N7bu6RA== X-Received: by 2002:a05:6902:70c:b0:676:d2d8:e188 with SMTP id k12-20020a056902070c00b00676d2d8e188mr22297558ybt.524.1660081228186; Tue, 09 Aug 2022 14:40:28 -0700 (PDT) X-Google-Smtp-Source: AA6agR7TSZVdQJEJlg0tht8jnxxfDsb4FNrCL7XdDyQ0+uf6PUk/EMZ8jgRPrqP2ISIiP7NV/T5rRdBE54omMm9r3/8= X-Received: by 2002:a05:6902:70c:b0:676:d2d8:e188 with SMTP id k12-20020a056902070c00b00676d2d8e188mr22297543ybt.524.1660081227984; Tue, 09 Aug 2022 14:40:27 -0700 (PDT) MIME-Version: 1.0 From: Ryan Goldberg Date: Tue, 9 Aug 2022 17:40:17 -0400 Message-ID: Subject: One shot mode for debuginfod server To: elfutils-devel@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000e4caa505e5d5c732" X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, 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 server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Aug 2022 21:40:33 -0000 --000000000000e4caa505e5d5c732 Content-Type: text/plain; charset="UTF-8" Hi, Here is a patch for a new one-shot mode for the debuginfod server. In this mode the first scanning pass of the server will also output the found executables' paths and buildids to the given file descriptor. This can (and soon will be used in systemtap) as an easy way to scan archive files and quickly/easily extract information concerning the executables they contain. The patch passes all of the tests across the try-buildbots (branch users/rgoldber/try-one-shot) Thanks, Ryan (rgoldber) --000000000000e4caa505e5d5c732 Content-Type: application/x-patch; name="0001-One-shot-mode-for-server.patch" Content-Disposition: attachment; filename="0001-One-shot-mode-for-server.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6mmx63u0 RnJvbSBhNGU1ZDFiYmQzOWQyNDQ4ZTVhZTIwOGExMTRlM2E2OGQ5ZjJjMjhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSeWFuIEdvbGRiZXJnIDxyZ29sZGJlckByZWRoYXQuY29tPgpE YXRlOiBNb24sIDggQXVnIDIwMjIgMTM6MzA6MDggLTA0MDAKU3ViamVjdDogW1BBVENIXSBPbmUt c2hvdCBtb2RlIGZvciBzZXJ2ZXIKCldoZW4gaW4gb25lLXNob3QgbW9kZSwgZm9yIHRoZSBmaXJz dApzY2FuIGFsbCBvZiB0aGUgZm91bmQgZXhlY3V0YWJsZXMnIHBhdGhzCmFuZCBidWlsZGlkcyB3 aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIHByb3ZpZGVkCmZpbGUgZGVzY3JpcHRvciBpbiB0aGUgZ2l2 ZW4gZm9ybWF0LgoKU2lnbmVkLW9mZi1ieTogUnlhbiBHb2xkYmVyZyA8cmdvbGRiZXJAcmVkaGF0 LmNvbT4KLS0tCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICB8ICAgNSArKwogZGVi dWdpbmZvZC9DaGFuZ2VMb2cgICAgICAgICAgICAgfCAgIDkgKysrCiBkZWJ1Z2luZm9kL01ha2Vm aWxlLmFtICAgICAgICAgICB8ICAgMiArLQogZGVidWdpbmZvZC9kZWJ1Z2luZm9kLmN4eCAgICAg ICAgfCAgNTIgKysrKysrKysrKysrKystCiBkZWJ1Z2luZm9kL2RlYnVnaW5mb2QuaC5pbiAgICAg ICB8ICAgOSArKysKIGRvYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgICA0ICsrCiBk b2MvZGVidWdpbmZvZC44ICAgICAgICAgICAgICAgICB8ICAxNiArKysrKwogdGVzdHMvQ2hhbmdl TG9nICAgICAgICAgICAgICAgICAgfCAgIDcgKystCiB0ZXN0cy9NYWtlZmlsZS5hbSAgICAgICAg ICAgICAgICB8ICAgNSArLQogdGVzdHMvcnVuLWRlYnVnaW5mb2Qtb25lLXNob3Quc2ggfCAxMDUg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMTAgZmlsZXMgY2hhbmdlZCwgMjA5IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVu LWRlYnVnaW5mb2Qtb25lLXNob3Quc2gKCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25m aWd1cmUuYWMKaW5kZXggMDNiNjdhOWQuLmFhZGZmNGNhIDEwMDY0NAotLS0gYS9jb25maWd1cmUu YWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC02MDAsNiArNjAwLDExIEBAIGNhc2UgIiRhY19jdl9z ZWFyY2hfX29ic3RhY2tfZnJlZSIgaW4KIGVzYWMKIEFDX1NVQlNUKFtvYnN0YWNrX0xJQlNdKQog CitBQ19DSEVDS19MSUIoanNvbi1jLCBqc29uX3Rva2VuZXJfcGFyc2UsIFsKKyAgQUNfREVGSU5F KFtFTkFCTEVfT05FX1NIT1RdLCBbMV0sIFtEZWZpbmUgaWYgdGhlIG9uZS1zaG90IGZlYXR1cmUg aXMgZW5hYmxlZF0pCisgIEFDX1NVQlNUKGpzb25jX0xJQlMsICctbGpzb24tYycpCitdKQorCiBk bmwgVGhlIGRpcmVjdG9yaWVzIHdpdGggY29udGVudC4KIAogZG5sIERvY3VtZW50YXRpb24uCmRp ZmYgLS1naXQgYS9kZWJ1Z2luZm9kL0NoYW5nZUxvZyBiL2RlYnVnaW5mb2QvQ2hhbmdlTG9nCmlu ZGV4IGE4YjVkN2Y0Li5iNmZhYzk5NiAxMDA2NDQKLS0tIGEvZGVidWdpbmZvZC9DaGFuZ2VMb2cK KysrIGIvZGVidWdpbmZvZC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wOC0wOSAg UnlhbiBHb2xkYmVyZyA8cmdvbGRiZXJAcmVkaGF0LmNvbT4KKworCSogZGVidWdpbmZvZC5jeHgg KGFyY2hpdmVfY2xhc3NpZnkpOiBOZXcgZ2xvYmFsIChvbmVfc2hvdF9tdHgpLgorCShhcmNoaXZl X2NsYXNzaWZ5LCB0aHJlYWRfbWFpbl9mdHNfc291cmNlX3BhdGhzKSBJbiBvbmUtc2hvdCBtb2Rl CisJZm9yIHRoZSBmaXJzdCBzY2FuLCBvdXRwdXQgZm91bmQgYnVpbGRpZHMvcGF0aHMgdG8gZ2l2 ZW4gZmlsZSBkZXNjcmlwdG9yLgorCShwYXJzZV9vcHQpOiBBZGQgIi0tb25lLXNob3QiIGZsYWcu CisJKiBkZWJ1Z2luZm9kLmguaW46IEFkZGVkIGluIGRlYnVnaW5mb2Rfb25lc2hvdF9oZWFkZXIg c3RydWN0LAorCWRlYnVnaW5mb2Rfb25lc2hvdF9oZWFkZXJfbWFnaWMKKwogMjAyMi0wOC0wMiAg Sm9zZWYgQ2Vqa2EgPGpjZWprYUBzdXNlLmRlPgogCiAJKiBkZWJ1Z2luZm9kLmN4eCAoZ3Jvb20p OiBEb24ndCBldmFsdWF0ZSByZWdleCB1bmxlc3MgbmVlZGVkLgpkaWZmIC0tZ2l0IGEvZGVidWdp bmZvZC9NYWtlZmlsZS5hbSBiL2RlYnVnaW5mb2QvTWFrZWZpbGUuYW0KaW5kZXggNDM1Y2I4YTYu LjAzY2RlZWQwIDEwMDY0NAotLS0gYS9kZWJ1Z2luZm9kL01ha2VmaWxlLmFtCisrKyBiL2RlYnVn aW5mb2QvTWFrZWZpbGUuYW0KQEAgLTcwLDcgKzcwLDcgQEAgYmluX1BST0dSQU1TICs9IGRlYnVn aW5mb2QtZmluZAogZW5kaWYKIAogZGVidWdpbmZvZF9TT1VSQ0VTID0gZGVidWdpbmZvZC5jeHgK LWRlYnVnaW5mb2RfTERBREQgPSAkKGxpYmR3KSAkKGxpYmVsZikgJChsaWJldSkgJChsaWJkZWJ1 Z2luZm9kKSAkKGFyZ3BfTERBREQpICQoZnRzX0xJQlMpICQobGlibWljcm9odHRwZF9MSUJTKSAk KHNxbGl0ZTNfTElCUykgJChsaWJhcmNoaXZlX0xJQlMpIC1scHRocmVhZCAtbGRsCitkZWJ1Z2lu Zm9kX0xEQUREID0gJChsaWJkdykgJChsaWJlbGYpICQobGliZXUpICQobGliZGVidWdpbmZvZCkg JChhcmdwX0xEQUREKSAkKGZ0c19MSUJTKSAkKGxpYm1pY3JvaHR0cGRfTElCUykgJChzcWxpdGUz X0xJQlMpICQobGliYXJjaGl2ZV9MSUJTKSAkKGpzb25jX0xJQlMpIC1scHRocmVhZCAtbGRsCiAK IGRlYnVnaW5mb2RfZmluZF9TT1VSQ0VTID0gZGVidWdpbmZvZC1maW5kLmMKIGRlYnVnaW5mb2Rf ZmluZF9MREFERCA9ICQobGliZHcpICQobGliZWxmKSAkKGxpYmV1KSAkKGxpYmRlYnVnaW5mb2Qp ICQoYXJncF9MREFERCkgJChmdHNfTElCUykKZGlmZiAtLWdpdCBhL2RlYnVnaW5mb2QvZGVidWdp bmZvZC5jeHggYi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QuY3h4CmluZGV4IGEwODlkMGJkLi4wNGM1 ZjYzNSAxMDA2NDQKLS0tIGEvZGVidWdpbmZvZC9kZWJ1Z2luZm9kLmN4eAorKysgYi9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QuY3h4CkBAIC01NCwxMCArNTQsMTIgQEAgZXh0ZXJuICJDIiB7CiAjaW5j bHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy92 ZnMuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUg PG5ldGRiLmg+CiAKKyNpZmRlZiBFTkFCTEVfT05FX1NIT1QKKyNpbmNsdWRlIDxqc29uLWMvanNv bi5oPgorI2VuZGlmCiAKIC8qIElmIGZ0cy5oIGlzIGluY2x1ZGVkIGJlZm9yZSBjb25maWcuaCwg aXRzIGluZGlyZWN0IGluY2x1c2lvbnMgbWF5IG5vdAogICAgZ2l2ZSB1cyB0aGUgcmlnaHQgTEZT IGFsaWFzZXMgb2YgdGhlc2UgZnVuY3Rpb25zLCBzbyBtYXAgdGhlbSBtYW51YWxseS4gICovCkBA IC0zODcsNiArMzg5LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhcmdwX29wdGlvbiBvcHRpb25z W10gPQogICAgeyAicGFzc2l2ZSIsIEFSR1BfS0VZX1BBU1NJVkUsIE5VTEwsIDAsICJEbyBub3Qg c2NhbiBvciBncm9vbSwgcmVhZC1vbmx5IGRhdGFiYXNlLiIsIDAgfSwKICNkZWZpbmUgQVJHUF9L RVlfRElTQUJMRV9TT1VSQ0VfU0NBTiAweDEwMDkKICAgIHsgImRpc2FibGUtc291cmNlLXNjYW4i LCBBUkdQX0tFWV9ESVNBQkxFX1NPVVJDRV9TQ0FOLCBOVUxMLCAwLCAiRG8gbm90IHNjYW4gZHdh cmYgc291cmNlIGluZm8uIiwgMCB9LAorI2RlZmluZSBBUkdQX0tFWV9PTkVfU0hPVCAweDEwMGEK KyAgIHsgIm9uZS1zaG90IiwgQVJHUF9LRVlfT05FX1NIT1QsICJOVU0iLCAwLCAiRm9yIHRoZSBm aXJzdCBzY2FuLCBvdXRwdXQgZm91bmQgYnVpbGRpZHMvcGF0aHMgdG8gZ2l2ZW4gZmlsZSBkZXNj cmlwdG9yIiwgMCB9LAogICAgeyBOVUxMLCAwLCBOVUxMLCAwLCBOVUxMLCAwIH0sCiAgIH07CiAK QEAgLTQzOSw2ICs0NDMsOCBAQCBzdGF0aWMgdW5zaWduZWQgZm9yd2FyZGVkX3R0bF9saW1pdCA9 IDg7CiBzdGF0aWMgYm9vbCBzY2FuX3NvdXJjZV9pbmZvID0gdHJ1ZTsKIHN0YXRpYyBzdHJpbmcg dG1wZGlyOwogc3RhdGljIGJvb2wgcGFzc2l2ZV9wID0gZmFsc2U7CitzdGF0aWMgaW50IG9uZV9z aG90X2ZkID0gLTE7CitzdGF0aWMgbXV0ZXggb25lX3Nob3RfbXR4OwogCiBzdGF0aWMgdm9pZCBz ZXRfbWV0cmljKGNvbnN0IHN0cmluZyYga2V5LCBkb3VibGUgdmFsdWUpOwogLy8gc3RhdGljIHZv aWQgaW5jX21ldHJpYyhjb25zdCBzdHJpbmcmIGtleSk7CkBAIC02MzksNiArNjQ1LDE2IEBAIHBh cnNlX29wdCAoaW50IGtleSwgY2hhciAqYXJnLAogICAgICAgICAvLyBvdGhlciBjb25mbGljdGlu ZyBvcHRpb25zIHRyaWNreSB0byBjaGVjawogICAgICAgICBhcmdwX2ZhaWx1cmUoc3RhdGUsIDEs IEVJTlZBTCwgImluY29uc2lzdGVudCBvcHRpb25zIHdpdGggcGFzc2l2ZSBtb2RlIik7CiAgICAg ICBicmVhazsKKyAgICBjYXNlIEFSR1BfS0VZX09ORV9TSE9UOgorICAgICAgb25lX3Nob3RfZmQg PSBhdG9sKGFyZyk7CisgICAgICAjaWZkZWYgRU5BQkxFX09ORV9TSE9UCisgICAgICAgIGlmIChv bmVfc2hvdF9mZCA8IDApCisgICAgICAgICAgYXJncF9mYWlsdXJlKHN0YXRlLCAxLCBFSU5WQUws ICJvbmUtc2hvdCBmZCIpOworICAgICAgI2Vsc2UKKyAgICAgICAgYXJncF9mYWlsdXJlKHN0YXRl LCAxLCBFSU5WQUwsICJEZWJ1Z2luZm9kIGluIG9uZS1zaG90IG1vZGUgcmVxdWlyZXMgbGlianNv bi1jIik7CisgICAgICAjZW5kaWYKKworICAgICAgYnJlYWs7CiAgICAgY2FzZSBBUkdQX0tFWV9E SVNBQkxFX1NPVVJDRV9TQ0FOOgogICAgICAgc2Nhbl9zb3VyY2VfaW5mbyA9IGZhbHNlOwogICAg ICAgYnJlYWs7CkBAIC0zMTEwLDYgKzMxMjYsMzEgQEAgYXJjaGl2ZV9jbGFzc2lmeSAoY29uc3Qg c3RyaW5nJiBycHMsIHN0cmluZyYgYXJjaGl2ZV9leHRlbnNpb24sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8PCAoZGVidWdpbmZvX3AgPyAiRCIgOiAiIikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDw8ICIgc291cmNlZmlsZXM9IiA8PCBzb3VyY2VmaWxlcy5zaXplKCkgPDwgZW5k bDsKIAorICAgICAgICAgICNpZmRlZiBFTkFCTEVfT05FX1NIT1QKKyAgICAgICAgICBpZihvbmVf c2hvdF9mZCA+PSAwICYmIGV4ZWN1dGFibGVfcCAmJiAiIiAhPSBmbiAmJiAiIiAhPSBidWlsZGlk KXsKKyAgICAgICAgICAgIHVuaXF1ZV9sb2NrPG11dGV4PiBsb2NrKG9uZV9zaG90X210eCk7Cisg ICAgICAgICAgICBzdHJ1Y3QgZGVidWdpbmZvZF9vbmVzaG90X2hlYWRlciBoZHI7CisgICAgICAg ICAgICBoZHIubWFnaWMgPSBkZWJ1Z2luZm9kX29uZXNob3RfaGVhZGVyX21hZ2ljOworICAgICAg ICAgICAgc3RyaW5nIGpzb25fcGF0aCA9ICJcInBhdGhcIjogXCIiK2ZuKyJcIiI7CisgICAgICAg ICAgICBzdHJpbmcganNvbl9idWlsZGlkID0gIiBcImJ1aWxkaWRcIjogXCIiK2J1aWxkaWQrIlwi IjsKKworICAgICAgICAgICAgLy8gQ29udmVydHMgdGhlIHN0cmluZ3MgdG8gYSBwcm9wZXJseSBl c2NhcGVkIEpTT04gc3RyaW5nCisgICAgICAgICAgICBqc29uX29iamVjdCAqanNvbiA9IGpzb25f dG9rZW5lcl9wYXJzZSgoCisgICAgICAgICAgICAgICJ7IisKKyAgICAgICAgICAgICAganNvbl9w YXRoKyIsIisKKyAgICAgICAgICAgICAganNvbl9idWlsZGlkKworICAgICAgICAgICAgICAifSIK KyAgICAgICAgICAgICkuY19zdHIoKSk7CisJICAgICAgICBjb25zdCBjaGFyKiBwYXlsb2FkID0g anNvbl9vYmplY3RfdG9fanNvbl9zdHJpbmcoanNvbik7CisKKyAgICAgICAgICBoZHIucGF5bG9h ZF9sZW4gPSBzdHJsZW4ocGF5bG9hZCkrMTsKKyAgICAgICAgICBpZiggTlVMTCA9PSBwYXlsb2Fk IHx8CisgICAgICAgICAgICAgIHNpemVvZihoZHIpICAgICAgICAgICAgICAgIT0gd3JpdGUob25l X3Nob3RfZmQsICZoZHIsIHNpemVvZihoZHIpKSB8fAorICAgICAgICAgICAgICAoc3NpemVfdCkg aGRyLnBheWxvYWRfbGVuICE9IHdyaXRlKG9uZV9zaG90X2ZkLCBwYXlsb2FkLCBoZHIucGF5bG9h ZF9sZW4pICkKKyAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIG9iYXRjaGVkKGNsb2cpIDw8ICJU aGVyZSB3YXMgYW4gaXNzdWUgd3JpdGluZyB0aGUgcGF0aCtidWlsZGlkIGluIG9uZS1zaG90IG1v ZGUiIDw8IGVuZGw7CisgICAgICAgICAganNvbl9vYmplY3RfcHV0KGpzb24pOworICAgICAgICAg fQorICAgICAgICAgI2VuZGlmCiAgICAgICAgIH0KICAgICAgIGNhdGNoIChjb25zdCByZXBvcnRh YmxlX2V4Y2VwdGlvbiYgZSkKICAgICAgICAgewpAQCAtMzQ3MCw2ICszNTExLDE1IEBAIHRocmVh ZF9tYWluX2Z0c19zb3VyY2VfcGF0aHMgKHZvaWQqIGFyZykKICAgICAgIHNjYW5xLmRvbmVfaWRs ZSgpOyAvLyByZWxlYXNlIHRoZSBob3VuZHMKICAgICAgIGlmIChpbnRlcnJ1cHRlZCkgYnJlYWs7 CiAKKyAgICAgICNpZmRlZiBFTkFCTEVfT05FX1NIT1QKKyAgICAgIC8vIElmIGRvaW5nIGEgb25l LXNob3QgcGFzcywgY2xvc2UgdGhlIHBpcGUgb25jZSB0aGUgZmlyc3Qgc2NhbiBpcyBkb25lCisg ICAgICAvLyBUaGVuIHJlc3VtZSB0aGUgbm9ybWFsIHN0YXRlCisgICAgICBpZihsYXN0X3Jlc2Nh biAhPSAwICYmIG9uZV9zaG90X2ZkID49IDApeworICAgICAgICBpZihvbmVfc2hvdF9mZCA+IDIp IGNsb3NlKG9uZV9zaG90X2ZkKTsKKyAgICAgICAgb25lX3Nob3RfZmQgPSAtMTsKKyAgICAgIH0K KyAgICAgICNlbmRpZgorCiAgICAgICB0aW1lX3Qgbm93ID0gdGltZShOVUxMKTsKICAgICAgIGJv b2wgcmVzY2FuX25vdyA9IGZhbHNlOwogICAgICAgaWYgKGxhc3RfcmVzY2FuID09IDApIC8vIGF0 IGxlYXN0IG9uZSBpbml0aWFsIHJlc2NhbiBpcyBkb2N1bWVudGVkIGV2ZW4gZm9yIC10MApkaWZm IC0tZ2l0IGEvZGVidWdpbmZvZC9kZWJ1Z2luZm9kLmguaW4gYi9kZWJ1Z2luZm9kL2RlYnVnaW5m b2QuaC5pbgppbmRleCBjMzU4ZGY0ZC4uM2QwYzBkNDkgMTAwNjQ0Ci0tLSBhL2RlYnVnaW5mb2Qv ZGVidWdpbmZvZC5oLmluCisrKyBiL2RlYnVnaW5mb2QvZGVidWdpbmZvZC5oLmluCkBAIC0xMDMs NSArMTAzLDE0IEBAIHZvaWQgZGVidWdpbmZvZF9lbmQgKGRlYnVnaW5mb2RfY2xpZW50ICpjbGll bnQpOwogfQogI2VuZGlmCiAKKy8qIFRoZSBtZXNzYWdlIGZvcm1hdCB1c2VkIGJ5IGRlYnVnaW5m b2Qgb25lLXNob3QgbW9kZSAqLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorc3RhdGljIGNvbnN0 IHVpbnQgZGVidWdpbmZvZF9vbmVzaG90X2hlYWRlcl9tYWdpYyA9IDB4ZGViOTFmMGQ7CitzdHJ1 Y3QgZGVidWdpbmZvZF9vbmVzaG90X2hlYWRlcnsKKyAgICB1aW50IG1hZ2ljOworICAgIHNpemVf dCBwYXlsb2FkX2xlbjsKKyAgICBjaGFyIHBheWxvYWRbMF07Cit9OworCiAKICNlbmRpZiAvKiBf REVCVUdJTkZPRF9DTElFTlRfSCAqLwpkaWZmIC0tZ2l0IGEvZG9jL0NoYW5nZUxvZyBiL2RvYy9D aGFuZ2VMb2cKaW5kZXggY2VlYzI0NjcuLjIwMWEwYmRiIDEwMDY0NAotLS0gYS9kb2MvQ2hhbmdl TG9nCisrKyBiL2RvYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3IEBACisyMDIyLTA4LTA5ICBSeWFu IEdvbGRiZXJnIDxyZ29sZGJlckByZWRoYXQuY29tPgorCisJKiBkZWJ1Z2luZm9kLjggKC0tb25l LXNob3QpOiBEb2N1bWVudCBuZXcgZmxhZyAmIG9wZXJhdGlvbiBtb2RlLgorCiAyMDIyLTA2LTAz ICBNaWNoYWVsIFRyYXBwIDxtaWNoYWVsLnRyYXBwQHNhcC5jb20+CiAKIAkqIGRlYnVnaW5mb2Qu OCAoLS1kaXNhYmxlLXNvdXJjZS1zY2FuKTogRG9jdW1lbnQuCmRpZmYgLS1naXQgYS9kb2MvZGVi dWdpbmZvZC44IGIvZG9jL2RlYnVnaW5mb2QuOAppbmRleCA1MGZjZTdmNS4uYTkwNWExNWQgMTAw NjQ0Ci0tLSBhL2RvYy9kZWJ1Z2luZm9kLjgKKysrIGIvZG9jL2RlYnVnaW5mb2QuOApAQCAtMjc5 LDYgKzI3OSwyMiBAQCBEaXNhYmxlIHNjYW4gb2YgdGhlIGR3YXJmIHNvdXJjZSBpbmZvIG9mIGRl YnVnaW5mbyBzZWN0aW9ucy4KIElmIGEgc2V0dXAgaGFzIG5vIGFjY2VzcyB0byBzb3VyY2UgY29k ZSwgdGhlIHNvdXJjZSBpbmZvIGlzIG5vdAogcmVxdWlyZWQuCiAKKy5UUAorLkIgIlwtXC1vbmVc LXNob3Q9RkQiCitGb3IgdGhlIGZpcnN0IHNjYW4sIGF0b21pY2FsbHkgd3JpdGUgdGhlIGZvdW5k IGV4ZWN1dGFibGVzJyBidWlsZGlkcyBhbmQKK2Nhbm9uaWNhbGl6ZWQgcGF0aHMgaW4gSlNPTiBm b3JtYXQgdG8gdGhlIGdpdmVuIGZpbGUgZGVzY3JpcHRvciBGRC4KK1RoZSBmb3JtYXQgZm9yIGVh Y2ggd3JpdGUgaXMgYXMgZm9sbG93czoKKy5UUwordGFiKDspIGFsbGJveDsKK2NmIHMgcy4KK01h Z2ljIG51bWJlciAodWludCkgPSAweGRlYjkxZjBkCisuVCYKK2wsYWwuCitKU09OIHN0cmluZyBs ZW5ndGggKHNpemVfdCk7IEpTT04gc3RyaW5nIChjaGFyW10pCisuVEUKKworT25jZSBjb21wbGV0 ZWQsIEZEIHdpbGwgYmUgY2xvc2VkIGFuZCBkZWJ1Z2luZm9kIHdpbGwgcmV0dXJuIHRvIHRoZSBu b3JtYWwgc3RhdGUuCisKIC5UUAogLkIgIlwtdiIKIEluY3JlYXNlIHZlcmJvc2l0eSBvZiBsb2dn aW5nIHRvIHRoZSBzdGFuZGFyZCBlcnJvciBmaWxlIGRlc2NyaXB0b3IuCmRpZmYgLS1naXQgYS90 ZXN0cy9DaGFuZ2VMb2cgYi90ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDI5NTJjYzkuLmVlMzUyMWFm IDEwMDY0NAotLS0gYS90ZXN0cy9DaGFuZ2VMb2cKKysrIGIvdGVzdHMvQ2hhbmdlTG9nCkBAIC0x LDMgKzEsOSBAQAorMjAyMi0wOC0wOSAgUnlhbiBHb2xkYmVyZyA8cmdvbGRiZXJAcmVkaGF0LmNv bT4KKworCSogcnVuLWRlYnVnaW5mb2Qtb25lLXNob3Quc2g6IE5ldyB0ZXN0LgorCSogTWFrZWZp bGUuYW0gKFRFU1RTKTogQWRkIHJ1bi1kZWJ1Z2luZm9kLW9uZS1zaG90LnNoLgorCShFWFRSQV9E SVNUKTogQWRkIHJ1bi1kZWJ1Z2luZm9kLW9uZS1zaG90LnNoCisKIDIwMjItMDgtMDQgIFNlcmdl aSBUcm9maW1vdmljaCAgPHNseWljaEBnbWFpbC5jb20+CiAKIAkqIGxvd19oaWdoX3BjLmMgKGhh bmRsZV9kaWUpOiBEcm9wIHJlZHVuZGFudCAnbHgnIHN1ZmZpeC4KQEAgLTEwLDcgKzE2LDYgQEAK IAogCSogcnVuLXJlYWRlbGYtRGQuc2g6IE5ldyB0ZXN0LgogCSogTWFrZWZpbGUuYW0gKFRFU1RT KTogQWRkIHJ1bi1yZWFkZWxmLURkLnNoLgotCShFWFRSQV9ESVNUKTogTGlrZXdpc2UuCiAKIDIw MjItMDYtMDEgIE1hcmsgV2llbGFhcmQgIDxtYXJrQGtsb21wLm9yZz4KIApkaWZmIC0tZ2l0IGEv dGVzdHMvTWFrZWZpbGUuYW0gYi90ZXN0cy9NYWtlZmlsZS5hbQppbmRleCA4Nzk4OGZiOS4uMjBk YzI2ODAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL3Rlc3RzL01ha2VmaWxl LmFtCkBAIC0yNDQsNyArMjQ0LDggQEAgVEVTVFMgKz0gcnVuLWRlYnVnaW5mb2QtZGxvcGVuLnNo IFwKICAgICAgICAgIHJ1bi1kZWJ1Z2luZm9kLXgtZm9yd2FyZGVkLWZvci5zaCBcCiAgICAgICAg ICBydW4tZGVidWdpbmZvZC1yZXNwb25zZS1oZWFkZXJzLnNoIFwKICAgICAgICAgIHJ1bi1kZWJ1 Z2luZm9kLWV4dHJhY3Rpb24tcGFzc2l2ZS5zaCBcCi0JIHJ1bi1kZWJ1Z2luZm9kLXdlYmFwaS1j b25jdXJyZW5jeS5zaAorCSBydW4tZGVidWdpbmZvZC13ZWJhcGktY29uY3VycmVuY3kuc2ggXAor CSBydW4tZGVidWdpbmZvZC1vbmUtc2hvdC5zaAogZW5kaWYKIGlmICFPTERfTElCTUlDUk9IVFRQ RAogIyBXaWxsIGNyYXNoIG9uIHRvbyBvbGQgbGlibWljcm9odHRwZApAQCAtMjUyLDcgKzI1Myw2 IEBAIGlmICFPTERfTElCTUlDUk9IVFRQRAogVEVTVFMgKz0gcnVuLWRlYnVnaW5mb2QtZmVkZXJh dGlvbi1tZXRyaWNzLnNoCiBlbmRpZgogZW5kaWYKLQogRVhUUkFfRElTVCA9IHJ1bi1hcmV4dHJh Y3Quc2ggcnVuLWFyc3ltdGVzdC5zaCBydW4tYXIuc2ggXAogCSAgICAgcnVuLXNob3ctZGllLWlu Zm8uc2ggcnVuLWdldC1maWxlcy5zaCBydW4tZ2V0LWxpbmVzLnNoIFwKIAkgICAgIHJ1bi1uZXh0 LWZpbGVzLnNoIHJ1bi1uZXh0LWxpbmVzLnNoIHRlc3RmaWxlLW9ubHktZGVidWctbGluZS5iejIg XApAQCAtNTQ5LDYgKzU0OSw3IEBAIEVYVFJBX0RJU1QgPSBydW4tYXJleHRyYWN0LnNoIHJ1bi1h cnN5bXRlc3Quc2ggcnVuLWFyLnNoIFwKIAkgICAgIHJ1bi1kZWJ1Z2luZm9kLXJlc3BvbnNlLWhl YWRlcnMuc2ggXAogICAgICAgICAgICAgIHJ1bi1kZWJ1Z2luZm9kLWV4dHJhY3Rpb24tcGFzc2l2 ZS5zaCBcCiAgICAgICAgICAgICAgcnVuLWRlYnVnaW5mb2Qtd2ViYXBpLWNvbmN1cnJlbmN5LnNo IFwKKwkJCSBydW4tZGVidWdpbmZvZC1vbmUtc2hvdC5zaCBcCiAJICAgICBkZWJ1Z2luZm9kLXJw bXMvZmVkb3JhMzAvaGVsbG8yLTEuMC0yLnNyYy5ycG0gXAogCSAgICAgZGVidWdpbmZvZC1ycG1z L2ZlZG9yYTMwL2hlbGxvMi0xLjAtMi54ODZfNjQucnBtIFwKIAkgICAgIGRlYnVnaW5mb2QtcnBt cy9mZWRvcmEzMC9oZWxsbzItZGVidWdpbmZvLTEuMC0yLng4Nl82NC5ycG0gXApkaWZmIC0tZ2l0 IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2Qtb25lLXNob3Quc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZv ZC1vbmUtc2hvdC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uMTg1ZjJl MjcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1vbmUtc2hvdC5zaApA QCAtMCwwICsxLDEwNSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMp IDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxz LgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvZGVidWdpbmZvZC1zdWJyLnNoCisKK0RCPSR7 UFdEfS8uZGVidWdpbmZvZF90bXAuc3FsaXRlCit0ZW1wZmlsZXMgJERCCisKK2Jpbm91dHB1dD0i b25lLXNob3Qtb3V0cHV0LmJpbiIKK3RlbXBmaWxlcyAkYmlub3V0cHV0CitleGVjIDM8PiRiaW5v dXRwdXQgIyBPcGVuIEZEPTMgZm9yIFJXCisKKyMgVGhpcyB2YXJpYWJsZSBpcyBlc3NlbnRpYWwg YW5kIGVuc3VyZXMgbm8gdGltZS1yYWNlIGZvciBjbGFpbWluZyBwb3J0cyBvY2N1cnMKKyMgc2V0 IGJhc2UgdG8gYSB1bmlxdWUgbXVsdGlwbGUgb2YgMTAwIG5vdCB1c2VkIGluIGFueSBvdGhlciAn cnVuLWRlYnVnaW5mb2QtKicgdGVzdAorYmFzZT0xMzEwMAorZ2V0X3BvcnRzCitta2RpciBSCitl bnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggREVCVUdJTkZPRF9VUkxTPSAke2Fic19idWlsZGRp cn0vLi4vZGVidWdpbmZvZC9kZWJ1Z2luZm9kICRWRVJCT1NFIC1SIFwKKyAgICAtZCAkREIgLXAg JFBPUlQxIC10MCAtZzAgUiA+IHZsb2ckUE9SVDEgMj4mMSAtLW9uZS1zaG90IDMgJgorUElEMT0k IQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ckUE9SVDEKKworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCitjcCAtcnZwICR7YWJzX3NyY2Rpcn0vZGVidWdpbmZvZC1ycG1zL3JoZWw3IFIKKwor Y29ycmVjdF9vdXRwdXQ9KCIvdXNyL2xvY2FsL2Jpbi9oZWxsbzI6YmMxZmViZmQwM2NhMDVlMDMw ZjBkMjA1Zjc2NTlkYjI5ZjhhNGIzMCIgXAorICAgICAgICAgICAgICAgICIvdXNyL2xvY2FsL2Jp bi9oZWxsbzpmMGFhMTViOGFiYTRmM2MyOGNhYzNjMmE3MzgwMWZlZmE2NDRhOWYyIikKK01BR0lD PSIweGRlYjkxZjBkIgorCitjYXQgPDwgRW9GID4gcGFyc2VEYXRhLmN4eAorI2luY2x1ZGUgPHN5 cy90eXBlcy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5j bHVkZSAiJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QuaCIKKyNpbmNs dWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGpzb24tYy9qc29uLmg+CisKK2ludCBtYWluKCl7Cisg ICAgaW50IGZkID0gb3BlbigiJGJpbm91dHB1dCIsIDApOworICAgIGlmKGZkIDwgMCkgcmV0dXJu IDE7CisKKyAgICBzdHJ1Y3QgZGVidWdpbmZvZF9vbmVzaG90X2hlYWRlciBoZHI7CisKKyAgICBp bnQgaGRyX3N6ZTsKKyAgICB3aGlsZSgwICE9IChoZHJfc3plID0gcmVhZChmZCwgJmhkciwgc2l6 ZW9mKGhkcikpKSl7CisgICAgICAgIGNoYXIqIHBheWxvYWQgID0gKGNoYXIqKW1hbGxvYyhoZHIu cGF5bG9hZF9sZW4pOworICAgICAgICBpZihoZHJfc3plICAgIT0gc2l6ZW9mKGhkcikgICAgIHx8 CisgICAgICAgICAgIGhkci5tYWdpYyAhPSAkTUFHSUMgICAgICAgICAgfHwKKyAgICAgICAgICAg KHNzaXplX3QpaGRyLnBheWxvYWRfbGVuICAhPSByZWFkKGZkLCBwYXlsb2FkLCBoZHIucGF5bG9h ZF9sZW4pKQorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGpzb25fb2JqZWN0ICpqc29u ID0ganNvbl90b2tlbmVyX3BhcnNlKHBheWxvYWQpOworICAgICAgICBqc29uX29iamVjdCAqanNv bl9maWVsZDsKKyAgICAgICAgaWYoIWpzb25fb2JqZWN0X29iamVjdF9nZXRfZXgoanNvbiwgInBh dGgiLCAmanNvbl9maWVsZCkpIHJldHVybiAxOworICAgICAgICBwcmludGYoIiVzOiIsanNvbl9v YmplY3RfZ2V0X3N0cmluZyhqc29uX2ZpZWxkKSk7CisgICAgICAgIGlmKCFqc29uX29iamVjdF9v YmplY3RfZ2V0X2V4KGpzb24sICJidWlsZGlkIiwgJmpzb25fZmllbGQpKSByZXR1cm4gMTsKKyAg ICAgICAgcHJpbnRmKCIlc1xuIixqc29uX29iamVjdF9nZXRfc3RyaW5nKGpzb25fZmllbGQpKTsK KyAgICAgICAgZnJlZShwYXlsb2FkKTsKKyAgICAgICAganNvbl9vYmplY3RfcHV0KGpzb24pOwor ICAgIH0KKyAgICBjbG9zZShmZCk7CisgICAgcmV0dXJuIDA7Cit9CitFb0YKK3RlbXBmaWxlcyBw YXJzZURhdGEuY3h4IHBhcnNlRGF0YS5vIHRlbXBmaWxlcyBwYXJzZURhdGEKK2crKyAtbyAgcGFy c2VEYXRhIC1sIGpzb24tYyBwYXJzZURhdGEuY3h4IHx8IHsgZWNobyAiQ2FuJ3QgY29tcGlsZSB0 ZXN0IHByb2dyYW0iOyBleGl0IDc3OyB9OyAjIFNraXAgb24gY29tcGlsYXRpb24gZmFsaXVyZSAo cHJvYmFibHkgbWlzc2luZyBsaWJqc29uLWMuc28pCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBTZXJ2 ZXIgbXVzdCBiZWNvbWUgcmVhZHkgd2l0aCBSIGZ1bGx5IHNjYW5uZWQgYW5kIGluZGV4ZWQKK3dh aXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3Jr X3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29y a19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5 e3JvbGU9InNjYW4ifScgMAorCitleGVjIDM+Ji0gIyBjbG9zZSBmZAordGVtcGZpbGVzIG91dHB1 dC50eHQKKyMgQ2hlY2sgdGhlIGhlYWRlciBmb3JtYXQgaXMgY29ycmVjdAordGVzdHJ1biAuL3Bh cnNlRGF0YSA+IG91dHB1dC50eHQKKworY2F0IG91dHB1dC50eHQKKworIyBDaGVjayB0aGF0IGVh Y2ggb2YgdGhlIG91dHB1dCBsaW5lcyBjb3JyZXNwb25kcyB0byBvbmUgb2YgdGhlIGNvcnJlY3Qg b3V0cHV0cword2hpbGUgcmVhZCAtciBsaW5lOyBkbworICAgIHByaW50ZiAnJXNcMCcgIiR7Y29y cmVjdF9vdXRwdXRbQF19IiB8IGdyZXAgLUZ4cXogLS0gJGxpbmU7Citkb25lIDwgb3V0cHV0LnR4 dAorCitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQgMAotLSAKMi4zNy4xCgo= --000000000000e4caa505e5d5c732--