From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 47EDF1FF179 for ; Wed, 12 Nov 2025 10:21:49 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 907A81B977; Wed, 12 Nov 2025 10:22:33 +0100 (CET) From: Stefan Hanreich To: pdm-devel@lists.proxmox.com Date: Wed, 12 Nov 2025 10:22:05 +0100 Message-ID: <20251112092225.17890-2-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251112092225.17890-1-s.hanreich@proxmox.com> References: <20251112092225.17890-1-s.hanreich@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.298 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods KAM_LOTSOFHASH 0.25 Emails with lots of hash-like gibberish RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [types.rs, mod.rs] Subject: [pdm-devel] [PATCH proxmox 1/3] pve-api-types: add FixedString type X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" QSBjdXN0b20sIGltbXV0YWJsZSwgc3RyaW5nIHR5cGUsIHRoYXQgaXMgY29waWFibGUsIHdoaWNo IGNhbiBob2xkIHVwCnRvIDIzIGNoYXJhY3RlcnMuIEl0IHdpbGwgYmUgdXNlZCBsYXRlciBmb3Ig c3RvcmluZyB0aGUgbmFtZSBvZgp1bmtub3duIGVudW0gdmFyaWFudHMgd2hlbiBwYXJzaW5nIHRo ZSByZXR1cm4gdmFsdWUgb2YgZW51bQpwcm9wZXJ0aWVzLiBUaGUgbWFpbiByZWFzb24gZm9yIGlu dHJvZHVjaW5nIHRoaXMgdHlwZSBpcyB0aGF0IGl0cyBjb3B5CmFzIG9wcG9zZWQgdG8gU3RyaW5n LCB3aGljaCBsZXRzIHVzIGtlZXAgdGhlIENvcHkgaW1wbGVtZW50YXRpb24gZm9yCnRoZSBleGlz dGluZyBlbnVtcy4KCk1haW4gcmVhc29uIGZvciBjaG9vc2luZyAyMyBjaGFyYWN0ZXJzIGlzIHRo ZSBmYWN0IHRoYXQgU3RyaW5nIGlzIDI0CmJ5dGVzIGxhcmdlIGFzIHdlbGwgKHB0ciwgbGVuLCBj YXBhY2l0eSkuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gSGFucmVpY2ggPHMuaGFucmVpY2hAcHJv eG1veC5jb20+Ci0tLQogcHZlLWFwaS10eXBlcy9zcmMvdHlwZXMvZml4ZWRfc3RyaW5nLnJzIHwg MzMxICsrKysrKysrKysrKysrKysrKysrKysrKwogcHZlLWFwaS10eXBlcy9zcmMvdHlwZXMvbW9k LnJzICAgICAgICAgIHwgICAzICsKIDIgZmlsZXMgY2hhbmdlZCwgMzM0IGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEwMDY0NCBwdmUtYXBpLXR5cGVzL3NyYy90eXBlcy9maXhlZF9zdHJpbmcu cnMKCmRpZmYgLS1naXQgYS9wdmUtYXBpLXR5cGVzL3NyYy90eXBlcy9maXhlZF9zdHJpbmcucnMg Yi9wdmUtYXBpLXR5cGVzL3NyYy90eXBlcy9maXhlZF9zdHJpbmcucnMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAuLmYxNjkyMjI3Ci0tLSAvZGV2L251bGwKKysrIGIvcHZlLWFw aS10eXBlcy9zcmMvdHlwZXMvZml4ZWRfc3RyaW5nLnJzCkBAIC0wLDAgKzEsMzMxIEBACit1c2Ug c3RkOjpjbXA6Ok9yZGVyaW5nOwordXNlIHN0ZDo6ZXJyb3I6OkVycm9yOwordXNlIHN0ZDo6Zm10 Ojp7RGVidWcsIERpc3BsYXksIEZvcm1hdHRlcn07Cit1c2Ugc3RkOjpvcHM6OkRlcmVmOwordXNl IHN0ZDo6c3RyOjpGcm9tU3RyOworCit1c2Ugc2VyZGU6OntEZXNlcmlhbGl6ZSwgU2VyaWFsaXpl fTsKKworLy8vIEVycm9yIHR5cGUgdXNlZCBieSBjb25zdHJ1Y3RvcnMgb2YgW2BGaXhlZFN0cmlu Z2BdCisjW2Rlcml2ZShDbG9uZSwgQ29weSwgRGVidWcpXQorcHViIGVudW0gRml4ZWRTdHJpbmdF cnJvciB7CisgICAgVG9vTG9uZywKK30KKworaW1wbCBFcnJvciBmb3IgRml4ZWRTdHJpbmdFcnJv ciB7fQorCitpbXBsIERpc3BsYXkgZm9yIEZpeGVkU3RyaW5nRXJyb3IgeworICAgIGZuIGZtdCgm c2VsZiwgZjogJm11dCBzdGQ6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gUmVzdWx0PCgpLCBzdGQ6 OmZtdDo6RXJyb3I+IHsKKyAgICAgICAgZi53cml0ZV9zdHIobWF0Y2ggc2VsZiB7CisgICAgICAg ICAgICBTZWxmOjpUb29Mb25nID0+ICJzdHJpbmcgaXMgbG9uZ2VyIHRoYW4gMjMgY2hhcmFjdGVy cyIsCisgICAgICAgIH0pCisgICAgfQorfQorCisvLy8gQW4gaW1tdXRhYmxlIHN0cmluZyB0eXBl IHdpdGggYSBtYXhpbXVtIHNpemUgb2YgMjMgYnl0ZXMuCisvLy8KKy8vLyBBZnRlciBjb25zdHJ1 Y3Rpb24gaXQgaXMgZ3VhcmFudGVlZCB0aGF0IGl0cyBjb250ZW50cyBhcmU6CisvLy8gKiB2YWxp ZCB1dGYtOAorLy8vICogbm90IGxvbmdlciB0aGFuIDIzIGNoYXJhY3RlcnMKKy8vLworLy8vIEZp eGVkU3RyaW5nIGlzIGltbXV0YWJsZSwgdGhlcmVmb3JlIGl0IGlzIHN1ZmZpY2llbnQgdG8gdmFs aWRhdGUgdGhlIGludmFyaWFudHMgb25seSBhdAorLy8vIGNvbnN0cnVjdGlvbiB0aW1lIHRvIGd1 YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbHdheXMgaG9sZCBkdXJpbmcgdGhlIGxpZmVjeWNsZSBv ZiB0aGUKKy8vLyBzdHJ1Y3QuCisjW2Rlcml2ZShDbG9uZSwgQ29weSldCitwdWIgc3RydWN0IEZp eGVkU3RyaW5nIHsKKyAgICBidWY6IFt1ODsgMjNdLAorICAgIGxlbjogdTgsCit9CisKK2ltcGwg Rml4ZWRTdHJpbmcgeworICAgIC8vLyBDcmVhdGVzIGEgbmV3IEZpeGVkU3RyaW5nIGluc3RhbmNl IGZyb20gYSBzdHIgcmVmZXJlbmNlLgorICAgIC8vLworICAgIC8vLyAjIEVycm9ycworICAgIC8v LyBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGVycm9yIGlmOgorICAgIC8vLyAqIFRoZSBw YXNzZWQgc3RyaW5nIGlzIGxvbmdlciB0aGFuIDIzIGJ5dGVzCisgICAgcHViIGZuIG5ldyh2YWx1 ZTogJnN0cikgLT4gUmVzdWx0PFNlbGYsIEZpeGVkU3RyaW5nRXJyb3I+IHsKKyAgICAgICAgaWYg dmFsdWUubGVuKCkgPiAyMyB7CisgICAgICAgICAgICByZXR1cm4gRXJyKEZpeGVkU3RyaW5nRXJy b3I6OlRvb0xvbmcpOworICAgICAgICB9CisKKyAgICAgICAgbGV0IG11dCBidWYgPSBbMDsgMjNd OworICAgICAgICBidWZbLi52YWx1ZS5sZW4oKV0uY29weV9mcm9tX3NsaWNlKHZhbHVlLmFzX2J5 dGVzKCkpOworCisgICAgICAgIE9rKFNlbGYgeworICAgICAgICAgICAgYnVmLAorICAgICAgICAg ICAgLy8gU0FGRVRZOiBzZWxmLmxlbiBpcyBhdCBsZWFzdCAwIGFuZCBhdCBtb3N0IDIzLCB3aGlj aCBmaXRzIGludG8gdTgKKyAgICAgICAgICAgIGxlbjogdmFsdWUubGVuKCkgYXMgdTgsCisgICAg ICAgIH0pCisgICAgfQorCisgICAgLy8vIENyZWF0ZXMgYSBuZXcgRml4ZWRTdHJpbmcgaW5zdGFu Y2UgZnJvbSBhIHN0ciByZWZlcmVuY2UsIHRydW5jYXRpbmcgaWYgcmVxdWlyZWQKKyAgICAvLy8K KyAgICAvLy8gSXQgd29ya3MgYnkgY29weWluZyB0aGUgYnl0ZXMgZnJvbSB0aGUgc3VwcGxpZWQg dmFsdWUgaW50byBpdHMgb3duIGxvY2FsIGJ1ZmZlci4gSWYgdGhlCisgICAgLy8vIHN0cmluZyBp cyBsb25nZXIgdGhhbiAyMyBieXRlcywgdGhlbiB0aGlzIG1ldGhvZHMgd2lsbCB0cnVuY2F0ZSB0 aGUgc3RyaW5nIGF0IHRoZSBuZWFyZXN0CisgICAgLy8vIHV0Zi04IGJvdW5kYXJ5LCBzbyBldmVu IGlmIGEgc3RyaW5nIGxvbmdlciB0aGFuIDIzIGNoYXJhY3RlcnMgaXMgcGFzc2VkIGluLCBpdCBp cyBwb3NzaWJsZQorICAgIC8vLyB0aGF0IGl0IGdldHMgdHJ1bmNhdGVkIHRvIGEgbGVuZ3RoIGxl c3MgdGhhbiAyMyBpZiB0aGUgdXRmLTggYm91bmRhcnkgZG9lc24ndCBwZXJmZWN0bHkKKyAgICAv Ly8gYWxpZ24gd2l0aCB0aGUgMjMgYnl0ZXMgbGltaXQuCisgICAgcHViIGZuIG5ld190cnVuY2F0 ZWQodmFsdWU6ICZzdHIpIC0+IFNlbGYgeworICAgICAgICAvLyBUT0RPOiByZXBsYWNlLCBvbmNl IFtgc3RyOjpmbG9vcl9jaGFyX2JvdW5kYXJ5YF0gaGFzIGJlZW4gc3RhYmlsaXplZAorICAgICAg ICBsZXQgbGVuID0gaWYgdmFsdWUubGVuKCkgPiAyMyB7CisgICAgICAgICAgICBsZXQgbXV0IGlu ZGV4ID0gMjM7CisKKyAgICAgICAgICAgIHdoaWxlIGluZGV4ID4gMCAmJiAhdmFsdWUuaXNfY2hh cl9ib3VuZGFyeShpbmRleCkgeworICAgICAgICAgICAgICAgIGluZGV4ID0gaW5kZXggLSAxOwor ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbmRleAorICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgdmFsdWUubGVuKCkKKyAgICAgICAgfTsKKworICAgICAgICBsZXQgbXV0IGJ1ZiA9 IFswOyAyM107CisgICAgICAgIGJ1ZlsuLmxlbl0uY29weV9mcm9tX3NsaWNlKCZ2YWx1ZS5hc19i eXRlcygpWy4ubGVuXSk7CisKKyAgICAgICAgU2VsZiB7CisgICAgICAgICAgICBidWYsCisgICAg ICAgICAgICAvLyBTQUZFVFk6IHNlbGYubGVuIGlzIGF0IGxlYXN0IDAgYW5kIGF0IG1vc3QgMjMs IHdoaWNoIGZpdHMgaW50byB1OAorICAgICAgICAgICAgbGVuOiBsZW4gYXMgdTgsCisgICAgICAg IH0KKyAgICB9CisKKyAgICAvLy8gUmV0dXJucyBhIHN0ciByZWZlcmVuY2UgdG8gdGhlIHN0b3Jl ZCBkYXRhCisgICAgI1tpbmxpbmVdCisgICAgcHViIGZuIGFzX3N0cigmc2VsZikgLT4gJnN0ciB7 CisgICAgICAgIC8vIFNBRkVUWTogc2VsZi5idWYgbXVzdCBiZSBhIHZhbGlkIHV0Zi04IHN0cmlu ZyBieSBjb25zdHJ1Y3Rpb24KKyAgICAgICAgdW5zYWZlIHsgc3RyOjpmcm9tX3V0ZjhfdW5jaGVj a2VkKHNlbGYuYXNfYnl0ZXMoKSkgfQorICAgIH0KKworICAgIC8vLyBSZXR1cm5zIGEgcmVmZXJl bmNlIHRvIHRoZSBzZXQgYnl0ZXMgaW4gdGhlIHN0b3JlZCBidWZmZXIKKyAgICAjW2lubGluZV0K KyAgICBwdWIgZm4gYXNfYnl0ZXMoJnNlbGYpIC0+ICZbdThdIHsKKyAgICAgICAgLy8gU0FGRVRZ OiBzZWxmLmxlbiA+PSAwIGFuZCBzZWxmLmxlbiA8PSAyMyBieSBjb25zdHJ1Y3Rpb24KKyAgICAg ICAgdW5zYWZlIHsgc2VsZi5idWYuZ2V0X3VuY2hlY2tlZCguLnNlbGYubGVuIGFzIHVzaXplKSB9 CisgICAgfQorfQorCitpbXBsIFBhcnRpYWxFcSBmb3IgRml4ZWRTdHJpbmcgeworICAgICNbaW5s aW5lXQorICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJkZpeGVkU3RyaW5nKSAtPiBib29sIHsKKyAg ICAgICAgc2VsZi5hc19ieXRlcygpID09IG90aGVyLmFzX2J5dGVzKCkKKyAgICB9Cit9CisKK2lt cGwgRXEgZm9yIEZpeGVkU3RyaW5nIHt9CisKK2ltcGwgUGFydGlhbE9yZCBmb3IgRml4ZWRTdHJp bmcgeworICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCBvdGhlcjogJkZpeGVkU3RyaW5nKSAtPiBP cHRpb248T3JkZXJpbmc+IHsKKyAgICAgICAgU29tZShzZWxmLmNtcChvdGhlcikpCisgICAgfQor fQorCitpbXBsIE9yZCBmb3IgRml4ZWRTdHJpbmcgeworICAgICNbaW5saW5lXQorICAgIGZuIGNt cCgmc2VsZiwgb3RoZXI6ICZGaXhlZFN0cmluZykgLT4gT3JkZXJpbmcgeworICAgICAgICBzZWxm LmFzX2J5dGVzKCkuY21wKG90aGVyLmFzX2J5dGVzKCkpCisgICAgfQorfQorCitpbXBsIERpc3Bs YXkgZm9yIEZpeGVkU3RyaW5nIHsKKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgc3RkOjpmbXQ6 OkZvcm1hdHRlcjwnXz4pIC0+IFJlc3VsdDwoKSwgc3RkOjpmbXQ6OkVycm9yPiB7CisgICAgICAg IGYud3JpdGVfc3RyKHNlbGYuYXNfc3RyKCkpCisgICAgfQorfQorCitpbXBsIERlYnVnIGZvciBG aXhlZFN0cmluZyB7CisgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IHN0ZDo6Zm10OjpGb3JtYXR0 ZXI8J18+KSAtPiBSZXN1bHQ8KCksIHN0ZDo6Zm10OjpFcnJvcj4geworICAgICAgICBmLndyaXRl X3N0cihzZWxmLmFzX3N0cigpKQorICAgIH0KK30KKworaW1wbCBEZXJlZiBmb3IgRml4ZWRTdHJp bmcgeworICAgIHR5cGUgVGFyZ2V0ID0gc3RyOworCisgICAgZm4gZGVyZWYoJnNlbGYpIC0+ICZz dHIgeworICAgICAgICBzZWxmLmFzX3N0cigpCisgICAgfQorfQorCitpbXBsIEFzUmVmPHN0cj4g Zm9yIEZpeGVkU3RyaW5nIHsKKyAgICBmbiBhc19yZWYoJnNlbGYpIC0+ICZzdHIgeworICAgICAg ICBzZWxmLmFzX3N0cigpCisgICAgfQorfQorCitpbXBsIFRyeUZyb208U3RyaW5nPiBmb3IgRml4 ZWRTdHJpbmcgeworICAgIHR5cGUgRXJyb3IgPSBGaXhlZFN0cmluZ0Vycm9yOworCisgICAgZm4g dHJ5X2Zyb20odmFsdWU6IFN0cmluZykgLT4gUmVzdWx0PFNlbGYsIFNlbGY6OkVycm9yPiB7Cisg ICAgICAgIEZpeGVkU3RyaW5nOjpuZXcodmFsdWUuYXNfc3RyKCkpCisgICAgfQorfQorCitpbXBs IEZyb21TdHIgZm9yIEZpeGVkU3RyaW5nIHsKKyAgICB0eXBlIEVyciA9IEZpeGVkU3RyaW5nRXJy b3I7CisKKyAgICBmbiBmcm9tX3N0cih2YWx1ZTogJnN0cikgLT4gUmVzdWx0PFNlbGYsIFNlbGY6 OkVycj4geworICAgICAgICBGaXhlZFN0cmluZzo6bmV3KHZhbHVlKQorICAgIH0KK30KKworaW1w bCBUcnlGcm9tPCZzdHI+IGZvciBGaXhlZFN0cmluZyB7CisgICAgdHlwZSBFcnJvciA9IEZpeGVk U3RyaW5nRXJyb3I7CisKKyAgICBmbiB0cnlfZnJvbSh2YWx1ZTogJnN0cikgLT4gUmVzdWx0PFNl bGYsIFNlbGY6OkVycm9yPiB7CisgICAgICAgIEZpeGVkU3RyaW5nOjpuZXcodmFsdWUpCisgICAg fQorfQorCitpbXBsIFBhcnRpYWxFcTxzdHI+IGZvciBGaXhlZFN0cmluZyB7CisgICAgZm4gZXEo JnNlbGYsIG90aGVyOiAmc3RyKSAtPiBib29sIHsKKyAgICAgICAgc2VsZi5hc19zdHIoKS5lcShv dGhlcikKKyAgICB9Cit9CisKK2ltcGwgUGFydGlhbEVxPEZpeGVkU3RyaW5nPiBmb3IgJnN0ciB7 CisgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAmRml4ZWRTdHJpbmcpIC0+IGJvb2wgeworICAgICAg ICBzZWxmLmVxKCZvdGhlci5hc19zdHIoKSkKKyAgICB9Cit9CisKK2ltcGwgUGFydGlhbE9yZDxz dHI+IGZvciBGaXhlZFN0cmluZyB7CisgICAgZm4gcGFydGlhbF9jbXAoJnNlbGYsIG90aGVyOiAm c3RyKSAtPiBPcHRpb248T3JkZXJpbmc+IHsKKyAgICAgICAgU29tZShzZWxmLmFzX3N0cigpLmNt cCgmb3RoZXIpKQorICAgIH0KK30KKworaW1wbCBQYXJ0aWFsT3JkPEZpeGVkU3RyaW5nPiBmb3Ig JnN0ciB7CisgICAgZm4gcGFydGlhbF9jbXAoJnNlbGYsIG90aGVyOiAmRml4ZWRTdHJpbmcpIC0+ IE9wdGlvbjxPcmRlcmluZz4geworICAgICAgICBTb21lKHNlbGYuY21wKCZvdGhlci5hc19zdHIo KSkpCisgICAgfQorfQorCitpbXBsIFNlcmlhbGl6ZSBmb3IgRml4ZWRTdHJpbmcgeworICAgIGZu IHNlcmlhbGl6ZTxTPigmc2VsZiwgc2VyaWFsaXplcjogUykgLT4gUmVzdWx0PFM6Ok9rLCBTOjpF cnJvcj4KKyAgICB3aGVyZQorICAgICAgICBTOiBzZXJkZTo6U2VyaWFsaXplciwKKyAgICB7Cisg ICAgICAgIHNlcmlhbGl6ZXIuc2VyaWFsaXplX3N0cihzZWxmLmFzX3N0cigpKQorICAgIH0KK30K KworaW1wbDwnZGU+IERlc2VyaWFsaXplPCdkZT4gZm9yIEZpeGVkU3RyaW5nIHsKKyAgICBmbiBk ZXNlcmlhbGl6ZTxEPihkZXNlcmlhbGl6ZXI6IEQpIC0+IFJlc3VsdDxTZWxmLCBEOjpFcnJvcj4K KyAgICB3aGVyZQorICAgICAgICBEOiBzZXJkZTo6RGVzZXJpYWxpemVyPCdkZT4sCisgICAgewor ICAgICAgICBkZXNlcmlhbGl6ZXIuZGVzZXJpYWxpemVfc3RyKEZpeGVkU3RyaW5nVmlzaXRvcikK KyAgICB9Cit9CisKK3N0cnVjdCBGaXhlZFN0cmluZ1Zpc2l0b3I7CisKK2ltcGw8J2RlPiBzZXJk ZTo6ZGU6OlZpc2l0b3I8J2RlPiBmb3IgRml4ZWRTdHJpbmdWaXNpdG9yIHsKKyAgICB0eXBlIFZh bHVlID0gRml4ZWRTdHJpbmc7CisKKyAgICBmbiBleHBlY3RpbmcoJnNlbGYsIGY6ICZtdXQgRm9y bWF0dGVyKSAtPiBzdGQ6OmZtdDo6UmVzdWx0IHsKKyAgICAgICAgZi53cml0ZV9zdHIoImEgc3Ry aW5nIHRoYXQgaXMgYXQgbW9zdCAyMyBieXRlcyBsb25nIikKKyAgICB9CisKKyAgICBmbiB2aXNp dF9zdHI8RT4oc2VsZiwgdjogJnN0cikgLT4gUmVzdWx0PFNlbGY6OlZhbHVlLCBFPgorICAgIHdo ZXJlCisgICAgICAgIEU6IHNlcmRlOjpkZTo6RXJyb3IsCisgICAgeworICAgICAgICB2LnRyeV9p bnRvKCkubWFwX2VycihFOjpjdXN0b20pCisgICAgfQorCisgICAgZm4gdmlzaXRfc3RyaW5nPEU+ KHNlbGYsIHY6IFN0cmluZykgLT4gUmVzdWx0PFNlbGY6OlZhbHVlLCBFPgorICAgIHdoZXJlCisg ICAgICAgIEU6IHNlcmRlOjpkZTo6RXJyb3IsCisgICAgeworICAgICAgICB2LnRyeV9pbnRvKCku bWFwX2VycihFOjpjdXN0b20pCisgICAgfQorfQorCisjW2NmZyh0ZXN0KV0KK21vZCB0ZXN0cyB7 CisgICAgdXNlIHN1cGVyOjoqOworCisgICAgdXNlIHNlcmRlX3BsYWluOworCisgICAgI1t0ZXN0 XQorICAgIGZuIHRlc3RfY29uc3RydWN0KCkgeworICAgICAgICBsZXQgZml4ZWRfc3RyaW5nID0g Rml4ZWRTdHJpbmc6Om5ldygiIikuZXhwZWN0KCJlbXB0eSBzdHJpbmcgaXMgdmFsaWQiKTsKKyAg ICAgICAgYXNzZXJ0X2VxISgiIiwgZml4ZWRfc3RyaW5nKTsKKworICAgICAgICBsZXQgZml4ZWRf c3RyaW5nID0gRml4ZWRTdHJpbmc6Om5ldygiYSIpLmV4cGVjdCgidmFsaWQgc3RyaW5nIik7Cisg ICAgICAgIGFzc2VydF9lcSEoImEiLCBmaXhlZF9zdHJpbmcpOworCisgICAgICAgIGxldCBmaXhl ZF9zdHJpbmcgPSBGaXhlZFN0cmluZzo6bmV3KCLwn4yP8J+Mj/CfjI/wn4yP8J+MjyIpLmV4cGVj dCgidmFsaWQgc3RyaW5nIik7CisgICAgICAgIGFzc2VydF9lcSEoIvCfjI/wn4yP8J+Mj/CfjI/w n4yPIiwgZml4ZWRfc3RyaW5nKTsKKworICAgICAgICBsZXQgZml4ZWRfc3RyaW5nID0KKyAgICAg ICAgICAgIEZpeGVkU3RyaW5nOjpuZXcoImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIikuZXhwZWN0 KCIyMyBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkIik7CisgICAgICAgIGFzc2VydF9lcSEoImFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhIiwgZml4ZWRfc3RyaW5nKTsKKworICAgICAgICBGaXhlZFN0cmlu Zzo6bmV3KCLwn4yP8J+Mj/CfjI/wn4yP8J+Mj/CfjI8iKS5leHBlY3RfZXJyKCJzdHJpbmcgdG9v IGxvbmciKTsKKyAgICAgICAgRml4ZWRTdHJpbmc6Om5ldygiYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhIikuZXhwZWN0X2Vycigic3RyaW5nIHRvbyBsb25nIik7CisgICAgfQorCisgICAgI1t0ZXN0 XQorICAgIGZuIHRlc3Rfc2VyaWFsaXplX2Rlc2VyaWFsaXplKCkgeworICAgICAgICBsZXQgdmFs aWRfc3RyaW5nID0gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIjsKKworICAgICAgICBsZXQgZml4 ZWRfc3RyaW5nOiBGaXhlZFN0cmluZyA9CisgICAgICAgICAgICBzZXJkZV9wbGFpbjo6ZnJvbV9z dHIoImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIikuZXhwZWN0KCJkZXNlcmlhbGl6YXRpb24gd29y a3MiKTsKKyAgICAgICAgYXNzZXJ0X2VxISh2YWxpZF9zdHJpbmcsIGZpeGVkX3N0cmluZyk7CisK KyAgICAgICAgbGV0IHNlcmlhbGl6ZWRfc3RyaW5nID0KKyAgICAgICAgICAgIHNlcmRlX3BsYWlu Ojp0b19zdHJpbmcoJmZpeGVkX3N0cmluZykuZXhwZWN0KCJjYW4gYmUgc2VyaWFsaXplZCBpbnRv IGEgc3RyaW5nIik7CisgICAgICAgIGFzc2VydF9lcSEodmFsaWRfc3RyaW5nLCBzZXJpYWxpemVk X3N0cmluZyk7CisKKyAgICAgICAgc2VyZGVfcGxhaW46OmZyb21fc3RyOjo8Rml4ZWRTdHJpbmc+ KCJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiKQorICAgICAgICAgICAgLmV4cGVjdF9lcnIoImNh bm5vdCBkZXNlcmlhbGl6ZSBzdHJpbmcgdGhhdCBpcyB0b28gbG9uZyIpOworICAgIH0KKworICAg ICNbdGVzdF0KKyAgICBmbiB0ZXN0X29yZCgpIHsKKyAgICAgICAgbGV0IGZpeGVkX3N0cmluZyA9 IEZpeGVkU3RyaW5nOjpuZXcoImFiYyIpLmV4cGVjdCgidmFsaWQgc3RyaW5nIik7CisKKyAgICAg ICAgYXNzZXJ0IShmaXhlZF9zdHJpbmcgPT0gZml4ZWRfc3RyaW5nKTsKKyAgICAgICAgYXNzZXJ0 IShmaXhlZF9zdHJpbmcgPj0gZml4ZWRfc3RyaW5nKTsKKyAgICAgICAgYXNzZXJ0IShmaXhlZF9z dHJpbmcgPD0gZml4ZWRfc3RyaW5nKTsKKworICAgICAgICBhc3NlcnQhKCJhYiIgPCBmaXhlZF9z dHJpbmcpOworICAgICAgICBhc3NlcnQhKCJhYmMiID09IGZpeGVkX3N0cmluZyk7CisgICAgICAg IGFzc2VydCEoImFiY2QiID4gZml4ZWRfc3RyaW5nKTsKKworICAgICAgICBsZXQgbGFyZ2VyX2Zp eGVkX3N0cmluZyA9IEZpeGVkU3RyaW5nOjpuZXcoImFiY2RlIikuZXhwZWN0KCJ2YWxpZCBzdHJp bmciKTsKKworICAgICAgICBhc3NlcnQhKGxhcmdlcl9maXhlZF9zdHJpbmcgPiBmaXhlZF9zdHJp bmcpOworICAgICAgICBhc3NlcnQhKGZpeGVkX3N0cmluZyA8IGxhcmdlcl9maXhlZF9zdHJpbmcp OworICAgIH0KKworICAgICNbdGVzdF0KKyAgICBmbiB0ZXN0X3RydW5jYXRlKCkgeworICAgICAg ICBsZXQgZml4ZWRfc3RyaW5nID0gRml4ZWRTdHJpbmc6Om5ld190cnVuY2F0ZWQoImFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWEiKTsKKyAgICAgICAgYXNzZXJ0X2VxISgiYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWEiLCBmaXhlZF9zdHJpbmcpOworCisgICAgICAgIGxldCBmaXhlZF9zdHJpbmcg PSBGaXhlZFN0cmluZzo6bmV3X3RydW5jYXRlZCgiYWFhYWFhYWFhYWFhYWFhYWFh8J+SryIpOwor ICAgICAgICBhc3NlcnRfZXEhKCJhYWFhYWFhYWFhYWFhYWFhYWHwn5KvIiwgZml4ZWRfc3RyaW5n KTsKKworICAgICAgICAvLyAn8J+SrycgaXMgNCBieXRlcyBsb25nCisgICAgICAgIC8vIGZpcnN0 IGJ5dGUgb2YgJ/Cfkq8nIGlzIGluc2lkZSB0aGUgMjMgYnl0ZSBsaW1pdCwgYnV0IGl0J3Mgbm90 IGEgdmFsaWQgdXRmLTggYm91bmRhcnkgc28KKyAgICAgICAgLy8gaXQgc2hvdWxkIGdldCB0cnVu Y2F0ZWQKKyAgICAgICAgbGV0IGZpeGVkX3N0cmluZyA9IEZpeGVkU3RyaW5nOjpuZXdfdHJ1bmNh dGVkKCJhYWFhYWFhYWFhYWFhYWFhYWFhYWHwn5KvIik7CisgICAgICAgIGFzc2VydF9lcSEoImFh YWFhYWFhYWFhYWFhYWFhYWFhYSIsIGZpeGVkX3N0cmluZyk7CisKKyAgICAgICAgbGV0IGZpeGVk X3N0cmluZyA9IEZpeGVkU3RyaW5nOjpuZXdfdHJ1bmNhdGVkKCJhYWFhYWFhYWFhYWFhYWFhYWFh YWFh8J+SryIpOworICAgICAgICBhc3NlcnRfZXEhKCJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwg Zml4ZWRfc3RyaW5nKTsKKworICAgICAgICBsZXQgZml4ZWRfc3RyaW5nID0gRml4ZWRTdHJpbmc6 Om5ld190cnVuY2F0ZWQoImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh8J+SryIpOworICAgICAgICBh c3NlcnRfZXEhKCJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsIGZpeGVkX3N0cmluZyk7CisKKyAg ICAgICAgLy8gJ/CfjI8nIGlzIDQgYnl0ZXMgbG9uZworICAgICAgICBsZXQgZml4ZWRfc3RyaW5n ID0gRml4ZWRTdHJpbmc6Om5ld190cnVuY2F0ZWQoIvCfjI/wn4yP8J+Mj/CfjI/wn4yPIik7Cisg ICAgICAgIGFzc2VydF9lcSEoIvCfjI/wn4yP8J+Mj/CfjI/wn4yPIiwgZml4ZWRfc3RyaW5nKTsK KworICAgICAgICBsZXQgZml4ZWRfc3RyaW5nID0gRml4ZWRTdHJpbmc6Om5ld190cnVuY2F0ZWQo IvCfjI/wn4yP8J+Mj/CfjI/wn4yP8J+MjyIpOworICAgICAgICBhc3NlcnRfZXEhKCLwn4yP8J+M j/CfjI/wn4yP8J+MjyIsIGZpeGVkX3N0cmluZyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcHZl LWFwaS10eXBlcy9zcmMvdHlwZXMvbW9kLnJzIGIvcHZlLWFwaS10eXBlcy9zcmMvdHlwZXMvbW9k LnJzCmluZGV4IGZlNTJhMTY5Li45NjUzZGQ0NiAxMDA2NDQKLS0tIGEvcHZlLWFwaS10eXBlcy9z cmMvdHlwZXMvbW9kLnJzCisrKyBiL3B2ZS1hcGktdHlwZXMvc3JjL3R5cGVzL21vZC5ycwpAQCAt MTcsNiArMTcsOSBAQCBwdWIgbW9kIGFycmF5OwogcHViIG1vZCBzdHJpbmdsaXN0OwogcHViIG1v ZCB2ZXJpZmllcnM7CiAKK21vZCBmaXhlZF9zdHJpbmc7CitwdWIgdXNlIGZpeGVkX3N0cmluZzo6 e0ZpeGVkU3RyaW5nLCBGaXhlZFN0cmluZ0Vycm9yfTsKKwogaW5jbHVkZSEoIi4uL2dlbmVyYXRl ZC90eXBlcy5ycyIpOwogCiAvLy8gQSBQVkUgVXBpZCwgY29udHJhcnkgdG8gYSBQQlMgVXBpZCwg Y29udGFpbnMgbm8gJ3Rhc2staWQnIG51bWJlci4KLS0gCjIuNDcuMwoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBkbS1kZXZlbCBtYWlsaW5nIGxpc3QK cGRtLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dp LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3BkbS1kZXZlbAo=