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=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no 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 F2CB8C282DD for ; Fri, 10 Jan 2020 19:51:37 +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 B205C206DA for ; Fri, 10 Jan 2020 19:51:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B205C206DA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:51124 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iq0Jk-0005ts-LS for qemu-devel@archiver.kernel.org; Fri, 10 Jan 2020 14:51:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44576) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iq0Ao-0001mT-E5 for qemu-devel@nongnu.org; Fri, 10 Jan 2020 14:42:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iq0Am-0004xr-H0 for qemu-devel@nongnu.org; Fri, 10 Jan 2020 14:42:22 -0500 Received: from relay.sw.ru ([185.231.240.75]:53974) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iq0Am-0004mb-4E; Fri, 10 Jan 2020 14:42:20 -0500 Received: from vovaso.qa.sw.ru ([10.94.3.0] helo=kvm.qa.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1iq0AT-0008Ob-Ke; Fri, 10 Jan 2020 22:42:01 +0300 From: Vladimir Sementsov-Ogievskiy To: qemu-devel@nongnu.org Subject: [PATCH v6 00/11] error: auto propagated local_err part I Date: Fri, 10 Jan 2020 22:41:47 +0300 Message-Id: <20200110194158.14190-1-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 185.231.240.75 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: Kevin Wolf , Vladimir Sementsov-Ogievskiy , Laszlo Ersek , qemu-block@nongnu.org, Paul Durrant , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cornelia Huck , Greg Kurz , Max Reitz , Stefano Stabellini , Gerd Hoffmann , Stefan Hajnoczi , Anthony Perard , xen-devel@lists.xenproject.org, Michael Roth , Markus Armbruster , Stefan Berger Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Hi all! Now, when preparations from [RFC v5 000/126] error: auto propagated local_err https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg02771.html https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-v5 , after some iterations, are finally merged, let's proceed with the rest. Sorry for a big delay on my part. As a first step, I decided to take subsystems, each of them covered by one patch, which get r-b/a-b marks by maintainer of the subsystem in v5. v6 is available at https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-partI-v6 Changes v5->v6: 01: use errp name for the parameter, add assertion 02: add a lot of text information, drop Eric's r-b. no semantic changes. 03: add more comments skip functions with pattern error_append_.*_hint in name make errp identifier, to match any name of Error ** paramter some other improvements 04: only commit message changed, keep Philippe's r-b 05: new, manual update for hw/sd/ssi-sd 06: only commit message changed, keep Philippe's r-b 07: only commit message changed, keep Philippe's r-b 08: local_parse_opts() changed, so patch changed in this function, drop a-b mark also, indentation fixed, by improvement in coccinelle script 09: only commit message changed, keep Stefan's r-b 10: commit message and a bit of context changed, still seems valid to keep Eric's r-b 11: add new hunk: hw/pci-host/xen_igd_pt.c, so, drop r-b also, indentation fixed, by improvement in coccinelle script In these series, there is no commit-per-subsystem script, each generated commit is generated in separate. Still, generating commands are very similar, and looks like sed -n '/^$/,/^$/{s/^F: //p}' MAINTAINERS | \ xargs git ls-files | grep '\.[hc]$' | \ xargs spatch \ --sp-file scripts/coccinelle/auto-propagated-errp.cocci \ --macro-file scripts/cocci-macro-file.h \ --in-place --no-show-diff --max-width 80 Note, that in each generated commit, generation command is the only text, indented by 8 spaces in 'git log -1' output, so, to regenerate all commits (for example, after rebase, or change in coccinelle script), you may use the following command: git rebase -x "sh -c \"git show --pretty= --name-only | xargs git checkout HEAD^ -- ; git reset; git log -1 | grep '^ ' | sh\"" HEAD~7 Which will start automated interactive rebase for generated patches, which will stop if generated patch changed (you may do git commit --amend to apply updated generated changes). Note: git show --pretty= --name-only - lists files, changed in HEAD git log -1 | grep '^ ' | sh - rerun generation command of HEAD Check for compilation of changed .c files git rebase -x "sh -c \"git show --pretty= --name-only | sed -n 's/\.c$/.o/p' | xargs make -j9\"" HEAD~7 Vladimir Sementsov-Ogievskiy (11): qapi/error: add (Error **errp) cleaning APIs error: auto propagated local_err scripts: add coccinelle script to use auto propagated errp hw/sd/ssi-sd: fix error handling in ssi_sd_realize SD (Secure Card): introduce ERRP_AUTO_PROPAGATE pflash: introduce ERRP_AUTO_PROPAGATE fw_cfg: introduce ERRP_AUTO_PROPAGATE virtio-9p: introduce ERRP_AUTO_PROPAGATE TPM: introduce ERRP_AUTO_PROPAGATE nbd: introduce ERRP_AUTO_PROPAGATE xen: introduce ERRP_AUTO_PROPAGATE include/block/nbd.h | 1 + include/qapi/error.h | 113 +++++++++++++- block/nbd.c | 49 +++--- hw/9pfs/9p-local.c | 12 +- hw/9pfs/9p.c | 1 + hw/block/dataplane/xen-block.c | 17 +-- hw/block/pflash_cfi01.c | 7 +- hw/block/pflash_cfi02.c | 7 +- hw/block/xen-block.c | 125 +++++++--------- hw/nvram/fw_cfg.c | 14 +- hw/pci-host/xen_igd_pt.c | 7 +- hw/sd/sdhci-pci.c | 7 +- hw/sd/sdhci.c | 21 ++- hw/sd/ssi-sd.c | 26 +++- hw/tpm/tpm_util.c | 7 +- hw/xen/xen-backend.c | 7 +- hw/xen/xen-bus.c | 100 ++++++------- hw/xen/xen-host-pci-device.c | 27 ++-- hw/xen/xen_pt.c | 25 ++-- hw/xen/xen_pt_config_init.c | 20 +-- nbd/client.c | 5 + nbd/server.c | 5 + tpm.c | 7 +- scripts/coccinelle/auto-propagated-errp.cocci | 139 ++++++++++++++++++ 24 files changed, 482 insertions(+), 267 deletions(-) create mode 100644 scripts/coccinelle/auto-propagated-errp.cocci CC: Cornelia Huck CC: Eric Blake CC: Kevin Wolf CC: Max Reitz CC: Greg Kurz CC: Stefan Hajnoczi CC: Stefano Stabellini CC: Anthony Perard CC: Paul Durrant CC: "Philippe Mathieu-Daudé" CC: Laszlo Ersek CC: Gerd Hoffmann CC: Stefan Berger CC: Markus Armbruster CC: Michael Roth CC: qemu-block@nongnu.org CC: xen-devel@lists.xenproject.org -- 2.21.0 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=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no 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 70FD3C33CA3 for ; Fri, 10 Jan 2020 19:43:20 +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 44AB22084D for ; Fri, 10 Jan 2020 19:43:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 44AB22084D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.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 1iq0BU-0003uj-Cc; Fri, 10 Jan 2020 19:43:04 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iq0BS-0003uD-Ny for xen-devel@lists.xenproject.org; Fri, 10 Jan 2020 19:43:02 +0000 X-Inumbo-ID: 5a27cf3a-33e1-11ea-a985-bc764e2007e4 Received: from relay.sw.ru (unknown [185.231.240.75]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 5a27cf3a-33e1-11ea-a985-bc764e2007e4; Fri, 10 Jan 2020 19:42:36 +0000 (UTC) Received: from vovaso.qa.sw.ru ([10.94.3.0] helo=kvm.qa.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1iq0AT-0008Ob-Ke; Fri, 10 Jan 2020 22:42:01 +0300 From: Vladimir Sementsov-Ogievskiy To: qemu-devel@nongnu.org Date: Fri, 10 Jan 2020 22:41:47 +0300 Message-Id: <20200110194158.14190-1-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v6 00/11] error: auto propagated local_err part I 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: Kevin Wolf , Vladimir Sementsov-Ogievskiy , Laszlo Ersek , qemu-block@nongnu.org, Paul Durrant , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cornelia Huck , Greg Kurz , Max Reitz , Stefano Stabellini , Gerd Hoffmann , Stefan Hajnoczi , Anthony Perard , xen-devel@lists.xenproject.org, Eric Blake , Michael Roth , Markus Armbruster , Stefan Berger Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SGkgYWxsIQoKTm93LCB3aGVuIHByZXBhcmF0aW9ucyBmcm9tCiBbUkZDIHY1IDAwMC8xMjZdIGVy cm9yOiBhdXRvIHByb3BhZ2F0ZWQgbG9jYWxfZXJyCiBodHRwczovL2xpc3RzLmdudS5vcmcvYXJj aGl2ZS9odG1sL3FlbXUtZGV2ZWwvMjAxOS0xMC9tc2cwMjc3MS5odG1sCiBodHRwczovL3NyYy5v cGVudnoub3JnL3NjbS9+dnNlbWVudHNvdi9xZW11LmdpdCAjdGFnIHVwLWF1dG8tbG9jYWwtZXJy LXY1IAosIGFmdGVyIHNvbWUgaXRlcmF0aW9ucywgYXJlIGZpbmFsbHkgbWVyZ2VkLCBsZXQncyBw cm9jZWVkIHdpdGggdGhlCnJlc3QuIFNvcnJ5IGZvciBhIGJpZyBkZWxheSBvbiBteSBwYXJ0LgoK QXMgYSBmaXJzdCBzdGVwLCBJIGRlY2lkZWQgdG8gdGFrZSBzdWJzeXN0ZW1zLCBlYWNoIG9mIHRo ZW0gY292ZXJlZCBieQpvbmUgcGF0Y2gsIHdoaWNoIGdldCByLWIvYS1iIG1hcmtzIGJ5IG1haW50 YWluZXIgb2YgdGhlIHN1YnN5c3RlbSBpbiB2NS4KCnY2IGlzIGF2YWlsYWJsZSBhdAogaHR0cHM6 Ly9zcmMub3BlbnZ6Lm9yZy9zY20vfnZzZW1lbnRzb3YvcWVtdS5naXQgI3RhZyB1cC1hdXRvLWxv Y2FsLWVyci1wYXJ0SS12NiAKCkNoYW5nZXMgdjUtPnY2OgowMTogdXNlIGVycnAgbmFtZSBmb3Ig dGhlIHBhcmFtZXRlciwgYWRkIGFzc2VydGlvbgowMjogYWRkIGEgbG90IG9mIHRleHQgaW5mb3Jt YXRpb24sIGRyb3AgRXJpYydzIHItYi4KICAgIG5vIHNlbWFudGljIGNoYW5nZXMuCjAzOiBhZGQg bW9yZSBjb21tZW50cwogICAgc2tpcCBmdW5jdGlvbnMgd2l0aCBwYXR0ZXJuIGVycm9yX2FwcGVu ZF8uKl9oaW50IGluIG5hbWUKICAgIG1ha2UgZXJycCBpZGVudGlmaWVyLCB0byBtYXRjaCBhbnkg bmFtZSBvZiBFcnJvciAqKiBwYXJhbXRlcgogICAgc29tZSBvdGhlciBpbXByb3ZlbWVudHMKMDQ6 IG9ubHkgY29tbWl0IG1lc3NhZ2UgY2hhbmdlZCwKICAgIGtlZXAgUGhpbGlwcGUncyByLWIKMDU6 IG5ldywgbWFudWFsIHVwZGF0ZSBmb3IgaHcvc2Qvc3NpLXNkCjA2OiBvbmx5IGNvbW1pdCBtZXNz YWdlIGNoYW5nZWQsCiAgICBrZWVwIFBoaWxpcHBlJ3Mgci1iCjA3OiBvbmx5IGNvbW1pdCBtZXNz YWdlIGNoYW5nZWQsCiAgICBrZWVwIFBoaWxpcHBlJ3Mgci1iCjA4OiBsb2NhbF9wYXJzZV9vcHRz KCkgY2hhbmdlZCwgc28gcGF0Y2ggY2hhbmdlZCBpbiB0aGlzCiAgICBmdW5jdGlvbiwgZHJvcCBh LWIgbWFyawogICAgYWxzbywgaW5kZW50YXRpb24gZml4ZWQsIGJ5IGltcHJvdmVtZW50IGluIGNv Y2NpbmVsbGUgc2NyaXB0CjA5OiBvbmx5IGNvbW1pdCBtZXNzYWdlIGNoYW5nZWQsCiAgICBrZWVw IFN0ZWZhbidzIHItYgoxMDogY29tbWl0IG1lc3NhZ2UgYW5kIGEgYml0IG9mIGNvbnRleHQgY2hh bmdlZCwgc3RpbGwgc2VlbXMKICAgIHZhbGlkIHRvIGtlZXAgRXJpYydzIHItYgoxMTogYWRkIG5l dyBodW5rOiBody9wY2ktaG9zdC94ZW5faWdkX3B0LmMsIHNvLCBkcm9wIHItYgogICAgYWxzbywg aW5kZW50YXRpb24gZml4ZWQsIGJ5IGltcHJvdmVtZW50IGluIGNvY2NpbmVsbGUgc2NyaXB0CgpJ biB0aGVzZSBzZXJpZXMsIHRoZXJlIGlzIG5vIGNvbW1pdC1wZXItc3Vic3lzdGVtIHNjcmlwdCwg ZWFjaCBnZW5lcmF0ZWQKY29tbWl0IGlzIGdlbmVyYXRlZCBpbiBzZXBhcmF0ZS4KClN0aWxsLCBn ZW5lcmF0aW5nIGNvbW1hbmRzIGFyZSB2ZXJ5IHNpbWlsYXIsIGFuZCBsb29rcyBsaWtlCgogICAg c2VkIC1uICcvXjxTdWJzeXN0ZW0gbmFtZT4kLywvXiQve3MvXkY6IC8vcH0nIE1BSU5UQUlORVJT IHwgXAogICAgeGFyZ3MgZ2l0IGxzLWZpbGVzIHwgZ3JlcCAnXC5baGNdJCcgfCBcCiAgICB4YXJn cyBzcGF0Y2ggXAogICAgICAgIC0tc3AtZmlsZSBzY3JpcHRzL2NvY2NpbmVsbGUvYXV0by1wcm9w YWdhdGVkLWVycnAuY29jY2kgXAogICAgICAgIC0tbWFjcm8tZmlsZSBzY3JpcHRzL2NvY2NpLW1h Y3JvLWZpbGUuaCBcCiAgICAgICAgLS1pbi1wbGFjZSAtLW5vLXNob3ctZGlmZiAtLW1heC13aWR0 aCA4MAoKTm90ZSwgdGhhdCBpbiBlYWNoIGdlbmVyYXRlZCBjb21taXQsIGdlbmVyYXRpb24gY29t bWFuZCBpcyB0aGUgb25seQp0ZXh0LCBpbmRlbnRlZCBieSA4IHNwYWNlcyBpbiAnZ2l0IGxvZyAt MScgb3V0cHV0LCBzbywgdG8gcmVnZW5lcmF0ZSBhbGwKY29tbWl0cyAoZm9yIGV4YW1wbGUsIGFm dGVyIHJlYmFzZSwgb3IgY2hhbmdlIGluIGNvY2NpbmVsbGUgc2NyaXB0KSwgeW91Cm1heSB1c2Ug dGhlIGZvbGxvd2luZyBjb21tYW5kOgoKZ2l0IHJlYmFzZSAteCAic2ggLWMgXCJnaXQgc2hvdyAt LXByZXR0eT0gLS1uYW1lLW9ubHkgfCB4YXJncyBnaXQgY2hlY2tvdXQgSEVBRF4gLS0gOyBnaXQg cmVzZXQ7IGdpdCBsb2cgLTEgfCBncmVwICdeICAgICAgICAnIHwgc2hcIiIgSEVBRH43CgpXaGlj aCB3aWxsIHN0YXJ0IGF1dG9tYXRlZCBpbnRlcmFjdGl2ZSByZWJhc2UgZm9yIGdlbmVyYXRlZCBw YXRjaGVzLAp3aGljaCB3aWxsIHN0b3AgaWYgZ2VuZXJhdGVkIHBhdGNoIGNoYW5nZWQKKHlvdSBt YXkgZG8gZ2l0IGNvbW1pdCAtLWFtZW5kIHRvIGFwcGx5IHVwZGF0ZWQgZ2VuZXJhdGVkIGNoYW5n ZXMpLgoKTm90ZToKICBnaXQgc2hvdyAtLXByZXR0eT0gLS1uYW1lLW9ubHkgICAtIGxpc3RzIGZp bGVzLCBjaGFuZ2VkIGluIEhFQUQKICBnaXQgbG9nIC0xIHwgZ3JlcCAnXiAgICAgICAgJyB8IHNo ICAgLSByZXJ1biBnZW5lcmF0aW9uIGNvbW1hbmQgb2YgSEVBRAoKCkNoZWNrIGZvciBjb21waWxh dGlvbiBvZiBjaGFuZ2VkIC5jIGZpbGVzCmdpdCByZWJhc2UgLXggInNoIC1jIFwiZ2l0IHNob3cg LS1wcmV0dHk9IC0tbmFtZS1vbmx5IHwgc2VkIC1uICdzL1wuYyQvLm8vcCcgfCB4YXJncyBtYWtl IC1qOVwiIiBIRUFEfjcKICAKClZsYWRpbWlyIFNlbWVudHNvdi1PZ2lldnNraXkgKDExKToKICBx YXBpL2Vycm9yOiBhZGQgKEVycm9yICoqZXJycCkgY2xlYW5pbmcgQVBJcwogIGVycm9yOiBhdXRv IHByb3BhZ2F0ZWQgbG9jYWxfZXJyCiAgc2NyaXB0czogYWRkIGNvY2NpbmVsbGUgc2NyaXB0IHRv IHVzZSBhdXRvIHByb3BhZ2F0ZWQgZXJycAogIGh3L3NkL3NzaS1zZDogZml4IGVycm9yIGhhbmRs aW5nIGluIHNzaV9zZF9yZWFsaXplCiAgU0QgKFNlY3VyZSBDYXJkKTogaW50cm9kdWNlIEVSUlBf QVVUT19QUk9QQUdBVEUKICBwZmxhc2g6IGludHJvZHVjZSBFUlJQX0FVVE9fUFJPUEFHQVRFCiAg ZndfY2ZnOiBpbnRyb2R1Y2UgRVJSUF9BVVRPX1BST1BBR0FURQogIHZpcnRpby05cDogaW50cm9k dWNlIEVSUlBfQVVUT19QUk9QQUdBVEUKICBUUE06IGludHJvZHVjZSBFUlJQX0FVVE9fUFJPUEFH QVRFCiAgbmJkOiBpbnRyb2R1Y2UgRVJSUF9BVVRPX1BST1BBR0FURQogIHhlbjogaW50cm9kdWNl IEVSUlBfQVVUT19QUk9QQUdBVEUKCiBpbmNsdWRlL2Jsb2NrL25iZC5oICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogaW5jbHVkZS9xYXBpL2Vycm9yLmggICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTEzICsrKysrKysrKysrKystCiBibG9jay9uYmQuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNDkgKysrLS0tCiBody85cGZzLzlwLWxvY2FsLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIGh3LzlwZnMvOXAuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBody9ibG9jay9kYXRhcGxhbmUveGVuLWJs b2NrLmMgICAgICAgICAgICAgICAgfCAgMTcgKy0tCiBody9ibG9jay9wZmxhc2hfY2ZpMDEuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIGh3L2Jsb2NrL3BmbGFzaF9jZmkwMi5jICAg ICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogaHcvYmxvY2sveGVuLWJsb2NrLmMgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTI1ICsrKysrKystLS0tLS0tLS0KIGh3L252cmFtL2Z3X2Nm Zy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQogaHcvcGNpLWhvc3QveGVu X2lnZF9wdC5jICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBody9zZC9zZGhjaS1wY2ku YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIGh3L3NkL3NkaGNpLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMSArKy0KIGh3L3NkL3NzaS1zZC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNiArKystCiBody90cG0vdHBtX3V0aWwu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIGh3L3hlbi94ZW4tYmFja2Vu ZC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogaHcveGVuL3hlbi1idXMuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKysrKy0tLS0tLS0KIGh3L3hlbi94 ZW4taG9zdC1wY2ktZGV2aWNlLmMgICAgICAgICAgICAgICAgICB8ICAyNyArKy0tCiBody94ZW4v eGVuX3B0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjUgKystLQogaHcveGVu L3hlbl9wdF9jb25maWdfaW5pdC5jICAgICAgICAgICAgICAgICAgIHwgIDIwICstLQogbmJkL2Ns aWVudC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIG5iZC9zZXJ2 ZXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCiB0cG0uYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIHNjcmlwdHMvY29j Y2luZWxsZS9hdXRvLXByb3BhZ2F0ZWQtZXJycC5jb2NjaSB8IDEzOSArKysrKysrKysrKysrKysr KysKIDI0IGZpbGVzIGNoYW5nZWQsIDQ4MiBpbnNlcnRpb25zKCspLCAyNjcgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc2NyaXB0cy9jb2NjaW5lbGxlL2F1dG8tcHJvcGFnYXRlZC1l cnJwLmNvY2NpCgpDQzogQ29ybmVsaWEgSHVjayA8Y29odWNrQHJlZGhhdC5jb20+CkNDOiBFcmlj IEJsYWtlIDxlYmxha2VAcmVkaGF0LmNvbT4KQ0M6IEtldmluIFdvbGYgPGt3b2xmQHJlZGhhdC5j b20+CkNDOiBNYXggUmVpdHogPG1yZWl0ekByZWRoYXQuY29tPgpDQzogR3JlZyBLdXJ6IDxncm91 Z0BrYW9kLm9yZz4KQ0M6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT4KQ0M6 IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEFudGhvbnkg UGVyYXJkIDxhbnRob255LnBlcmFyZEBjaXRyaXguY29tPgpDQzogUGF1bCBEdXJyYW50IDxwYXVs QHhlbi5vcmc+CkNDOiAiUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kiIDxwaGlsbWRAcmVkaGF0LmNv bT4KQ0M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+CkNDOiBHZXJkIEhvZmZtYW5u IDxrcmF4ZWxAcmVkaGF0LmNvbT4KQ0M6IFN0ZWZhbiBCZXJnZXIgPHN0ZWZhbmJAbGludXguaWJt LmNvbT4KQ0M6IE1hcmt1cyBBcm1icnVzdGVyIDxhcm1icnVAcmVkaGF0LmNvbT4KQ0M6IE1pY2hh ZWwgUm90aCA8bWRyb3RoQGxpbnV4LnZuZXQuaWJtLmNvbT4KQ0M6IHFlbXUtYmxvY2tAbm9uZ251 Lm9yZwpDQzogeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCgotLSAKMi4yMS4wCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==