From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id WAAMHoK3UmQvOgAASxT56A (envelope-from ) for ; Wed, 03 May 2023 21:35:30 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 0GMNHoK3UmT5sQAA9RJhRA (envelope-from ) for ; Wed, 03 May 2023 21:35:30 +0200 Received: from mail.notmuchmail.org (yantan.tethera.net [135.181.149.255]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 4B99721940 for ; Wed, 3 May 2023 21:35:28 +0200 (CEST) Received: from yantan.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 25DA75F4CA; Wed, 3 May 2023 19:35:27 +0000 (UTC) Received: from phubs.tethera.net (phubs.tethera.net [192.99.9.157]) by mail.notmuchmail.org (Postfix) with ESMTPS id 1A2755F38F for ; Wed, 3 May 2023 19:35:25 +0000 (UTC) Received: from tethera.net (unknown [75.104.166.254]) by phubs.tethera.net (Postfix) with ESMTPS id 0D79D180050; Wed, 3 May 2023 16:35:19 -0300 (ADT) Received: (nullmailer pid 78979 invoked by uid 1000); Wed, 03 May 2023 19:35:13 -0000 From: David Bremner To: Tim Culverhouse , notmuch@notmuchmail.org Subject: Re: JSON Output Documentation In-Reply-To: <874jotfbu8.fsf@tethera.net> References: <874jotfbu8.fsf@tethera.net> Date: Wed, 03 May 2023 13:35:13 -0600 Message-ID: <871qjxfbta.fsf@tethera.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Message-ID-Hash: UN2FEYYJYZTZF5KTZUDC3DMPJLOXNFN2 X-Message-ID-Hash: UN2FEYYJYZTZF5KTZUDC3DMPJLOXNFN2 X-MailFrom: david@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.3 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Migadu-Flow: FLOW_IN X-Migadu-Country: DE ARC-Seal: i=1; s=key1; d=yhetil.org; t=1683142530; a=rsa-sha256; cv=none; b=CFFDYJ2hkmI7UB6urOkR9J57mmf4XZkGoDh7tNMQbCxOgXNiVWyPyij8Pls534otk3xTHI 4VtR11N/Zi+cuMbCGWVmOFi4ItpsWCoSFucKcTP1O2k4dx1iGeF9RZGEE443ivfzUO3DzQ 5SrCtu+x+eD9+Z+jAyj3pyAAn/nCD4uD7JHcPGvd46w3mBwKuFCcTgiGS2G4p0rYusnMQ0 A5zn5ApYmAMU04swtrJVKClMdI532DNWOIHUqpOE7wmD9tcDxLmNZIMAvGR5uKziLsEfUQ tn7OvTbp0vleUT0+M+m6IEkCiEKO5uJ7uQNJdZL81uVzBbDXidDqR+ZjlG/Kfw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 135.181.149.255 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1683142530; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post; bh=MhHDv7RByP5ngkSQOulfJBbPMB+aLevrxXw2mGuen20=; b=GSAWRh5hldMbnc44fafq2BNIXSlL9Lo+/TYuB/QDo8gKtr36K3m8HkQYP37yOFml3Vzwr+ HKEDJhCOvCn1+EyUZSM1l6JAfe1Em/0BCA7QXmsUT8B/L6jgMqcZQkTy0hrAmDT1F56OUy pk+uqyuEUjkErYfyBvMOTEwTiDrwPK0t1T/ezvGQz+cKMc3N4xkqVd2rHp27bu0iirOOp7 7MELgevNZHPBkmLZGLC51FCdHizQK/ZF/ricOyO97W1WE3O7uDz/Lg2+HYZfBw7mESX1RJ V5RTG8+FrWnY31slUaRUYKSYllGNEOf9VjrTk31A9l0tug0oBd1GG/cPADOhOA== X-Migadu-Scanner: scn1.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 135.181.149.255 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: -1.54 X-Spam-Score: -1.54 X-Migadu-Queue-Id: 4B99721940 X-TUID: MFwXVsoDk+8f --=-=-= Content-Type: text/plain David Bremner writes: > "Tim Culverhouse" writes: > >> Hey everyone - >> >> I've scoured the manpages and website for some documentation on the JSON >> output format, but haven't found what I'm looking for. For the most >> part, the commands are easy to figure out, but `notmuch show` has me >> confused on the array nesting. Does anyone know if there is >> documentation on this structure? >> >> It seems to be something like: >> >> [ (Array of results) >> [ (Array of thread) >> [ (Another array of thread?) >> {Thread parent object}, >> [ (array of thread children objects)] >> ] >> ] >> ] > > We have had some discussions on the pros and cons of more publically > documenting this interface, but for now you can find the documentation > in the source, in devel/schemata. See attached. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=schemata Content-Transfer-Encoding: base64 VGhpcyBmaWxlIGRlc2NyaWJlcyB0aGUgc2NoZW1hdGEgdXNlZCBmb3Igbm90bXVjaCdzIHN0cnVj dHVyZWQgb3V0cHV0CmZvcm1hdCAoY3VycmVudGx5IEpTT04gYW5kIFMtRXhwcmVzc2lvbnMpLgoK W10ncyBpbmRpY2F0ZSBsaXN0cy4gIExpc3QgaXRlbXMgY2FuIGJlIG1hcmtlZCB3aXRoIGEgJz8n LCBtZWFuaW5nCnRoZXkgYXJlIG9wdGlvbmFsOyBvciBhICcqJywgbWVhbmluZyB0aGVyZSBjYW4g YmUgemVybyBvciBtb3JlIG9mIHRoYXQKaXRlbS4gIHt9J3MgaW5kaWNhdGUgYW4gb2JqZWN0IHRo YXQgbWFwcyBmcm9tIGZpZWxkIGlkZW50aWZpZXJzIHRvCnZhbHVlcy4gIEFuIG9iamVjdCBmaWVs ZCBtYXJrZWQgJz8nIGlzIG9wdGlvbmFsOyBvbmUgbWFya2VkIHdpdGggJyonCmNhbiByZXBlYXQg KHdpdGggYSBkaWZmZXJlbnQgbmFtZSkuIHwncyBpbmRpY2F0ZSBhbHRlcm5hdGVzIChlLmcuLApp bnR8c3RyaW5nIG1lYW5zIHNvbWV0aGluZyBjYW4gYmUgYW4gaW50IG9yIGEgc3RyaW5nKS4KCkZv ciBTLUV4cHJlc3Npb24gb3V0cHV0LCBsaXN0cyBhcmUgcHJpbnRlZCBkZWxpbWl0ZWQgYnkgKCkg aW5zdGVhZCBvZgpbXS4gT2JqZWN0cyBhcmUgcHJpbnRlZCBhcyBwLWxpc3RzLCBpLmUuIGxpc3Rz IHdoZXJlIHRoZSBrZXlzIGFuZCB2YWx1ZXMKYXJlIGludGVybGVhdmVkLiBLZXlzIGFyZSBwcmlu dGVkIGFzIGtleXdvcmRzIChzeW1ib2xzIHByZWNlZGVkIGJ5IGEKY29sb24pLCBlLmcuICg6aWQg IjEyMyIgOnRpbWUgNTQzMjEgOmZyb20gImZvb2JhciIpLiBOdWxsIGlzIHByaW50ZWQgYXMKbmls LCB0cnVlIGFzIHQgYW5kIGZhbHNlIGFzIG5pbC4KClRoaXMgaXMgdmVyc2lvbiA1IG9mIHRoZSBz dHJ1Y3R1cmVkIG91dHB1dCBmb3JtYXQuCgpWZXJzaW9uIGhpc3RvcnkKLS0tLS0tLS0tLS0tLS0t Cgp2MQotIEZpcnN0IHZlcnNpb25lZCBzY2hlbWEgcmVsZWFzZS4KLSBBZGRlZCBwYXJ0LmNvbnRl bnQtbGVuZ3RoIGFuZCBwYXJ0LmNvbnRlbnQtdHJhbnNmZXItZW5jb2RpbmcgZmllbGRzLgoKdjIK LSBBZGRlZCB0aGUgdGhyZWFkX3N1bW1hcnkucXVlcnkgZmllbGQuCgp2MwotIFJlcGxhY2VkIG1l c3NhZ2UuZmlsZW5hbWUgc3RyaW5nIHdpdGggYSBsaXN0IG9mIGZpbGVuYW1lcy4KLSBBZGRlZCBw YXJ0LmNvbnRlbnQtZGlzcG9zaXRpb24gZmllbGQuCgp2NAotIHJlcGxhY2Ugc2lnbmF0dXJlIGVy cm9yIGludGVnZXIgYml0bWFzayB3aXRoIGEgc2V0IG9mIGZsYWdzIGZvcgogIGluZGl2aWR1YWwg ZXJyb3JzLgotIChub3RtdWNoIDAuMjkpIGFkZGVkIG1lc3NhZ2UuY3J5cHRvIHRvIGlkZW50aWZ5 IG92ZXJhbGwgbWVzc2FnZQogIGNyeXB0b2dyYXBoaWMgc3RhdGUKCnY1Ci0gc29ydGluZyBzdXBw b3J0IGZvciBub3RtdWNoIHNob3cgKG5vIGNoYW5nZSB0byBhY3R1YWwgc2NoZW1hLAogIGp1c3Qg bmV3IGNvbW1hbmQgbGluZSBhcmd1bWVudCkKCkNvbW1vbiBub24tdGVybWluYWxzCi0tLS0tLS0t LS0tLS0tLS0tLS0tCgojIE51bWJlciBvZiBzZWNvbmRzIHNpbmNlIHRoZSBFcG9jaAp1bml4X3Rp bWUgPSBpbnQKCiMgVGhyZWFkIElELCBzYW5zICJ0aHJlYWQ6Igp0aHJlYWRpZCA9IHN0cmluZwoK IyBNZXNzYWdlIElELCBzYW5zICJpZDoiCm1lc3NhZ2VpZCA9IHN0cmluZwoKIyBFLW1haWwgaGVh ZGVyIG5hbWUsIHNhbnMgdHJhaWxpbmcgY29sb24sIGxpa2UgIlN1YmplY3QiIG9yICJJbi1SZXBs eS1UbyIKaGVhZGVyX25hbWUgPSBzdHJpbmcKCm5vdG11Y2ggc2hvdyBzY2hlbWEKLS0tLS0tLS0t LS0tLS0tLS0tLQoKIyBBIHRvcC1sZXZlbCBzZXQgb2YgdGhyZWFkcyAoZG9fc2hvdykKIyBSZXR1 cm5lZCBieSBub3RtdWNoIHNob3cgd2l0aG91dCBhIC0tcGFydCBhcmd1bWVudAp0aHJlYWRfc2V0 ID0gW3RocmVhZCpdCgojIFRvcC1sZXZlbCBtZXNzYWdlcyBpbiBhIHRocmVhZCAoc2hvd19tZXNz YWdlcykKdGhyZWFkID0gW3RocmVhZF9ub2RlKl0KCiMgQSBtZXNzYWdlIGFuZCBpdHMgcmVwbGll cyAoc2hvd19tZXNzYWdlcykKdGhyZWFkX25vZGUgPSBbCiAgICBtZXNzYWdlfG51bGwsICAgICAg ICAgICAgICMgbnVsbCBpZiBub3QgbWF0Y2hlZCBhbmQgbm90IC0tZW50aXJlLXRocmVhZAogICAg W3RocmVhZF9ub2RlKl0gICAgICAgICAgICAjIGNoaWxkcmVuIG9mIG1lc3NhZ2UKXQoKIyBBIG1l c3NhZ2UgKGZvcm1hdF9wYXJ0X3NwcmludGVyKQptZXNzYWdlID0gewogICAgIyAoZm9ybWF0X21l c3NhZ2Vfc3ByaW50ZXIpCiAgICBpZDogICAgICAgICAgICAgbWVzc2FnZWlkLAogICAgbWF0Y2g6 ICAgICAgICAgIGJvb2wsCiAgICBmaWxlbmFtZToJICAgIFtzdHJpbmcqXSwKICAgIHRpbWVzdGFt cDogICAgICB1bml4X3RpbWUsICMgZGF0ZSBoZWFkZXIgYXMgdW5peCB0aW1lCiAgICBkYXRlX3Jl bGF0aXZlOiAgc3RyaW5nLCAgICMgdXNlci1mcmllbmRseSB0aW1lc3RhbXAKICAgIHRhZ3M6ICAg ICAgICAgICBbc3RyaW5nKl0sCgogICAgaGVhZGVyczogICAgICAgIGhlYWRlcnMsCiAgICBjcnlw dG86ICAgICAgICAgY3J5cHRvLAogICAgZHVwbGljYXRlOiAgICAgIGludGVnZXIsCiAgICBib2R5 PzogICAgICAgICAgW3BhcnRdICAgICMgb21pdHRlZCBpZiAtLWJvZHk9ZmFsc2UKfQoKIyB3aGVu IHNob3dpbmcgdGhlIG1lc3NhZ2UsIHdhcyBhbnkgb3IgYWxsIG9mIGl0IGRlY3J5cHRlZD8KbXNn ZGVjc3RhdHVzOiAiZnVsbCJ8InBhcnRpYWwiCgojIFRoZSBvdmVyYWxsIGNyeXB0b2dyYXBoaWMg c3RhdGUgb2YgdGhlIG1lc3NhZ2UgYXMgYSB3aG9sZToKY3J5cHRvID0gewogICAgc2lnbmVkPzog ICAgewogICAgICAgICAgICAgICAgICBzdGF0dXM6ICAgICAgc2lnc3RhdHVzLAogICAgICAgICAg ICAgICAgICAjIHdhcyB0aGUgc2V0IG9mIHNpZ25hdHVyZXMgZGVzY3JpYmVkIHVuZGVyIGVuY3J5 cHRlZCBjb3Zlcj8KICAgICAgICAgICAgICAgICAgZW5jcnlwdGVkOiAgIGJvb2wsCiAgICAgICAg ICAgICAgICAgICMgd2hpY2ggb2YgdGhlIGhlYWRlcnMgaXMgY292ZXJlZCBieSBzaWdzdGF0dXM/ CiAgICAgICAgICAgICAgICAgIGhlYWRlcnM6ICAgICBbaGVhZGVyX25hbWUqXQogICAgICAgICAg ICAgICAgfSwKICAgIGRlY3J5cHRlZD86IHsKICAgICAgICAgICAgICAgICAgc3RhdHVzOiBtc2dk ZWNzdGF0dXMsCiAgICAgICAgICAgICAgICAgICMgbWFwIGVuY3J5cHRlZCBoZWFkZXJzIHRoYXQg ZGlmZmVyZWQgZnJvbSB0aGUgb3V0c2lkZSBoZWFkZXJzLgogICAgICAgICAgICAgICAgICAjIHRo ZSB2YWx1ZSBvZiBlYWNoIGl0ZW0gaW4gdGhlIG1hcCBpcyB3aGF0IHRoYXQgZmllbGQgc2hvd2Vk IGV4dGVybmFsbHkKICAgICAgICAgICAgICAgICAgIyAobWF5YmUgbnVsbCBpZiBpdCB3YXMgbm90 IHByZXNlbnQgaW4gdGhlIGV4dGVybmFsIGhlYWRlcnMpLgogICAgICAgICAgICAgICAgICBoZWFk ZXItbWFzazogIHsgaGVhZGVyX25hbWUqOiBzdHJpbmd8bnVsbCB9CiAgICAgICAgICAgICAgICB9 Cn0KCiMgQSBNSU1FIHBhcnQgKGZvcm1hdF9wYXJ0X3NwcmludGVyKQpwYXJ0ID0gewogICAgaWQ6 ICAgICAgICAgICAgIGludHxzdHJpbmcsICMgcGFydCBpZCAoY3VycmVudGx5IERGUyBwYXJ0IG51 bWJlcikKCiAgICBlbmNzdGF0dXM/OiAgICAgZW5jc3RhdHVzLAogICAgc2lnc3RhdHVzPzogICAg IHNpZ3N0YXR1cywKCiAgICBjb250ZW50LXR5cGU6ICAgc3RyaW5nLAogICAgY29udGVudC1kaXNw b3NpdGlvbj86ICAgICAgIHN0cmluZywKICAgIGNvbnRlbnQtaWQ/OiAgICBzdHJpbmcsCiAgICAj IGlmIGNvbnRlbnQtdHlwZSBzdGFydHMgd2l0aCAibXVsdGlwYXJ0LyI6CiAgICBjb250ZW50OiAg ICAgICAgW3BhcnQqXSwKICAgICMgaWYgY29udGVudC10eXBlIGlzICJtZXNzYWdlL3JmYzgyMiI6 CiAgICBjb250ZW50OiAgICAgICAgW3toZWFkZXJzOiBoZWFkZXJzLCBib2R5OiBbcGFydF19XSwK ICAgICMgb3RoZXJ3aXNlIChsZWFmIHBhcnRzKToKICAgIGZpbGVuYW1lPzogICAgICBzdHJpbmcs CiAgICBjb250ZW50LWNoYXJzZXQ/OiBzdHJpbmcsCiAgICAjIEEgbGVhZiBwYXJ0J3MgYm9keSBj b250ZW50IGlzIG9wdGlvbmFsLCBidXQgbWF5IGJlIGluY2x1ZGVkIGlmCiAgICAjIGl0IGNhbiBi ZSBjb3JyZWN0bHkgZW5jb2RlZCBhcyBhIHN0cmluZy4gIENvbnN1bWVycyBzaG91bGQgdXNlCiAg ICAjIHRoaXMgaW4gcHJlZmVyZW5jZSB0byBmZXRjaGluZyB0aGUgcGFydCBjb250ZW50IHNlcGFy YXRlbHkuCiAgICBjb250ZW50PzogICAgICAgc3RyaW5nLAogICAgIyBJZiBhIGxlYWYgcGFydCdz IGJvZHkgY29udGVudCBpcyBub3QgaW5jbHVkZWQsIHRoZSBsZW5ndGggb2YKICAgICMgdGhlIGVu Y29kZWQgY29udGVudCAoaW4gYnl0ZXMpIG1heSBiZSBnaXZlbiBpbnN0ZWFkLgogICAgY29udGVu dC1sZW5ndGg/OiBpbnQsCiAgICAjIElmIGEgbGVhZiBwYXJ0J3MgYm9keSBjb250ZW50IGlzIG5v dCBpbmNsdWRlZCwgaXRzIHRyYW5zZmVyIGVuY29kaW5nCiAgICAjIG1heSBiZSBnaXZlbi4gIFVz aW5nIHRoaXMgYW5kIHRoZSBlbmNvZGVkIGNvbnRlbnQgbGVuZ3RoLCBpdCBpcwogICAgIyBwb3Nz aWJsZSBmb3IgdGhlIGNvbnN1bWVyIHRvIGVzdGltYXRlIHRoZSBkZWNvZGVkIGNvbnRlbnQgbGVu Z3RoLgogICAgY29udGVudC10cmFuc2Zlci1lbmNvZGluZz86IHN0cmluZwp9CgojIFRoZSBoZWFk ZXJzIG9mIGEgbWVzc2FnZSBvciBwYXJ0IChmb3JtYXRfaGVhZGVyc19zcHJpbnRlciB3aXRoIHJl cGx5ID0gRkFMU0UpCmhlYWRlcnMgPSB7CiAgICBTdWJqZWN0OiAgICAgICAgc3RyaW5nLAogICAg RnJvbTogICAgICAgICAgIHN0cmluZywKICAgIFRvPzogICAgICAgICAgICBzdHJpbmcsCiAgICBD Yz86ICAgICAgICAgICAgc3RyaW5nLAogICAgQmNjPzogICAgICAgICAgIHN0cmluZywKICAgIFJl cGx5LVRvPzogICAgICBzdHJpbmcsCiAgICBEYXRlOiAgICAgICAgICAgc3RyaW5nLAogICAgZXh0 cmFfaGVhZGVyX3BhaXIqCn0KCmV4dHJhX2hlYWRlcl9wYWlyPSAgKGhlYWRlcl9uYW1lOiBzdHJp bmcpCiMgRW5jcnlwdGlvbiBzdGF0dXMgKGZvcm1hdF9wYXJ0X3NwcmludGVyKQplbmNzdGF0dXMg PSBbe3N0YXR1czogImdvb2QifCJiYWQifV0KCiMgU2lnbmF0dXJlIHN0YXR1cyAoZm9ybWF0X3Bh cnRfc2lnc3RhdHVzX3NwcmludGVyKQpzaWdzdGF0dXMgPSBbc2lnbmF0dXJlKl0KCnNpZ25hdHVy ZSA9IHsKICAgICMgKHNpZ25hdHVyZV9zdGF0dXNfdG9fc3RyaW5nKQogICAgc3RhdHVzOiAgICAg ICAgICJnb29kInwiYmFkInwiZXJyb3IifCJ1bmtub3duIiwKICAgICMgaWYgc3RhdHVzIGlzICJn b29kIjoKICAgIGZpbmdlcnByaW50PzogICBzdHJpbmcsCiAgICBjcmVhdGVkPzogICAgICAgdW5p eF90aW1lLAogICAgZXhwaXJlcz86ICAgICAgIHVuaXhfdGltZSwKICAgIHVzZXJpZD86ICAgICAg ICBzdHJpbmcKICAgIGVtYWlsPzogICAgICAgICBzdHJpbmcKICAgICMgaWYgc3RhdHVzIGlzIG5v dCAiZ29vZCI6CiAgICBrZXlpZD86ICAgICAgICAgc3RyaW5nCiAgICBlcnJvcnM/OiAJICAgIHNp Z19lcnJvcnMKfQoKc2lnX2Vycm9ycyA9IHsKICAgIGtleS1yZXZva2VkPzogYm9vbCwKICAgIGtl eS1leHBpcmVkPzogYm9vbCwKICAgIHNpZy1leHBpcmVkPzogYm9vbCwKICAgIGtleS1taXNzaW5n PzogYm9vbCwKICAgIGFsZy11bnN1cHBvcnRlZD86IGJvb2wsCiAgICBjcmwtbWlzc2luZz86IGJv b2wsCiAgICBjcmwtdG9vLW9sZD86IGJvb2wsCiAgICBiYWQtcG9saWN5PzogYm9vbCwKICAgIHN5 cy1lcnJvcj86IGJvb2wsCiAgICB0b2Z1LWNvbmZsaWN0PzogYm9vbAp9Cgpub3RtdWNoIHNlYXJj aCBzY2hlbWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIC0tb3V0cHV0PXN1bW1hcnkKc2VhcmNo X3N1bW1hcnkgPSBbdGhyZWFkX3N1bW1hcnkqXQoKIyAtLW91dHB1dD10aHJlYWRzCnNlYXJjaF90 aHJlYWRzID0gW3RocmVhZGlkKl0KCiMgLS1vdXRwdXQ9bWVzc2FnZXMKc2VhcmNoX21lc3NhZ2Vz ID0gW21lc3NhZ2VpZCpdCgojIC0tb3V0cHV0PWZpbGVzCnNlYXJjaF9maWxlcyA9IFtzdHJpbmcq XQoKIyAtLW91dHB1dD10YWdzCnNlYXJjaF90YWdzID0gW3N0cmluZypdCgp0aHJlYWRfc3VtbWFy eSA9IHsKICAgIHRocmVhZDogICAgICAgICB0aHJlYWRpZCwKICAgIHRpbWVzdGFtcDogICAgICB1 bml4X3RpbWUsCiAgICBkYXRlX3JlbGF0aXZlOiAgc3RyaW5nLCAgICMgdXNlci1mcmllbmRseSB0 aW1lc3RhbXAKICAgIG1hdGNoZWQ6ICAgICAgICBpbnQsICAgICAgIyBudW1iZXIgb2YgbWF0Y2hl ZCBtZXNzYWdlcwogICAgdG90YWw6ICAgICAgICAgIGludCwgICAgICAjIHRvdGFsIG1lc3NhZ2Vz IGluIHRocmVhZAogICAgYXV0aG9yczogICAgICAgIHN0cmluZywgICAjIGNvbW1hLXNlcGFyYXRl ZCBuYW1lcyB3aXRoIHwgYmV0d2VlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG1h dGNoZWQgYW5kIHVubWF0Y2hlZAogICAgc3ViamVjdDogICAgICAgIHN0cmluZywKICAgIHRhZ3M6 ICAgICAgICAgICBbc3RyaW5nKl0sCgogICAgIyBUd28gc3RhYmxlIHF1ZXJ5IHN0cmluZ3MgaWRl bnRpZnlpbmcgZXhhY3RseSB0aGUgbWF0Y2hlZCBhbmQKICAgICMgdW5tYXRjaGVkIG1lc3NhZ2Vz IGN1cnJlbnRseSBpbiB0aGlzIHRocmVhZC4gIFRoZSBtZXNzYWdlcwogICAgIyBtYXRjaGVkIGJ5 IHRoZXNlIHF1ZXJpZXMgd2lsbCBub3QgY2hhbmdlIGV2ZW4gaWYgbW9yZSBtZXNzYWdlcwogICAg IyBhcnJpdmUgaW4gdGhlIHRocmVhZC4gIElmIHRoZXJlIGFyZSBubyBtYXRjaGVkIG9yIHVubWF0 Y2hlZAogICAgIyBtZXNzYWdlcywgdGhlIGNvcnJlc3BvbmRpbmcgcXVlcnkgd2lsbCBiZSBudWxs ICh0aGVyZSBpcyBubwogICAgIyBxdWVyeSB0aGF0IG1hdGNoZXMgbm90aGluZykuICAoQWRkZWQg aW4gc2NoZW1hIHZlcnNpb24gMi4pCiAgICBxdWVyeTogICAgICAgICAgW3N0cmluZ3xudWxsLCBz dHJpbmd8bnVsbF0sCn0KCm5vdG11Y2ggcmVwbHkgc2NoZW1hCi0tLS0tLS0tLS0tLS0tLS0tLS0t CgpyZXBseSA9IHsKICAgICMgVGhlIGhlYWRlcnMgb2YgdGhlIGNvbnN0cnVjdGVkIHJlcGx5CiAg ICByZXBseS1oZWFkZXJzOiByZXBseV9oZWFkZXJzLAoKICAgICMgQXMgaW4gdGhlIHNob3cgZm9y bWF0IChmb3JtYXRfcGFydF9zcHJpbnRlcikKICAgIG9yaWdpbmFsOiBtZXNzYWdlCn0KCiMgUmVw bHkgaGVhZGVycyAoZm9ybWF0X2hlYWRlcnNfc3ByaW50ZXIgd2l0aCByZXBseSA9IFRSVUUpCnJl cGx5X2hlYWRlcnMgPSB7CiAgICBTdWJqZWN0OiAgICAgICAgc3RyaW5nLAogICAgRnJvbTogICAg ICAgICAgIHN0cmluZywKICAgIFRvPzogICAgICAgICAgICBzdHJpbmcsCiAgICBDYz86ICAgICAg ICAgICAgc3RyaW5nLAogICAgQmNjPzogICAgICAgICAgIHN0cmluZywKICAgIEluLXJlcGx5LXRv OiAgICBzdHJpbmcsCiAgICBSZWZlcmVuY2VzOiAgICAgc3RyaW5nCn0K --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --=-=-=--