From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id D5BC51FF16F for ; Fri, 15 Nov 2024 13:12:39 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id DDF7F12A7C; Fri, 15 Nov 2024 13:11:50 +0100 (CET) From: Stefan Hanreich To: pve-devel@lists.proxmox.com Date: Fri, 15 Nov 2024 13:11:01 +0100 Message-Id: <20241115121109.170200-11-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241115121109.170200-1-s.hanreich@proxmox.com> References: <20241115121109.170200-1-s.hanreich@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.233 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 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 Subject: [pve-devel] [PATCH pve-firewall v4 10/18] api: add vnet endpoints X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Cc: Wolfgang Bumiller Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" U2lnbmVkLW9mZi1ieTogU3RlZmFuIEhhbnJlaWNoIDxzLmhhbnJlaWNoQHByb3htb3guY29tPgpS ZXZpZXdlZC1ieTogV29sZmdhbmcgQnVtaWxsZXIgPHcuYnVtaWxsZXJAcHJveG1veC5jb20+ClRl c3RlZC1ieTogSGFubmVzIETDvHJyIDxoLmR1ZXJyQHByb3htb3guY29tPgotLS0KIHNyYy9QVkUv QVBJMi9GaXJld2FsbC9NYWtlZmlsZSB8ICAgMSArCiBzcmMvUFZFL0FQSTIvRmlyZXdhbGwvUnVs ZXMucG0gfCAgODQgKysrKysrKysrKysrKysrKwogc3JjL1BWRS9BUEkyL0ZpcmV3YWxsL1ZuZXQu cG0gIHwgMTY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL1BWRS9GaXJl d2FsbC5wbSAgICAgICAgICAgIHwgIDEwICsrCiA0IGZpbGVzIGNoYW5nZWQsIDI2NCBpbnNlcnRp b25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL1BWRS9BUEkyL0ZpcmV3YWxsL1ZuZXQucG0K CmRpZmYgLS1naXQgYS9zcmMvUFZFL0FQSTIvRmlyZXdhbGwvTWFrZWZpbGUgYi9zcmMvUFZFL0FQ STIvRmlyZXdhbGwvTWFrZWZpbGUKaW5kZXggZTkxNjc1NS4uMzI1YzRkMyAxMDA2NDQKLS0tIGEv c3JjL1BWRS9BUEkyL0ZpcmV3YWxsL01ha2VmaWxlCisrKyBiL3NyYy9QVkUvQVBJMi9GaXJld2Fs bC9NYWtlZmlsZQpAQCAtOSw2ICs5LDcgQEAgTElCX1NPVVJDRVM9CQkJXAogCUNsdXN0ZXIucG0J CVwKIAlIb3N0LnBtCQkJXAogCVZNLnBtCQkJXAorCVZuZXQucG0JCQlcCiAJR3JvdXBzLnBtCiAK IGFsbDoKZGlmZiAtLWdpdCBhL3NyYy9QVkUvQVBJMi9GaXJld2FsbC9SdWxlcy5wbSBiL3NyYy9Q VkUvQVBJMi9GaXJld2FsbC9SdWxlcy5wbQppbmRleCA5ZTkwM2Q0Li41YzAzYjdiIDEwMDY0NAot LS0gYS9zcmMvUFZFL0FQSTIvRmlyZXdhbGwvUnVsZXMucG0KKysrIGIvc3JjL1BWRS9BUEkyL0Zp cmV3YWxsL1J1bGVzLnBtCkBAIC0xOCw2ICsxOCwyNSBAQCBteSAkYXBpX3Byb3BlcnRpZXMgPSB7 CiAgICAgfSwKIH07CiAKKz1oZWFkMyBjaGVja19wcml2aWxlZ2VzX2Zvcl9tZXRob2QoJGNsYXNz LCAkbWV0aG9kX25hbWUsICRwYXJhbSkKKworSWYgdGhlIHBlcm1pc3Npb24gY2hlY2tzIGZyb20g dGhlIHJlZ2lzdGVyX21ldGhvZCgpIGNhbGwgYXJlIG5vdCBzdWZmaWNpZW50LAordGhpcyBmdW5j dGlvbiBjYW4gYmUgb3ZlcnJpZGVuIGZvciBwZXJmb3JtaW5nIGFkZGl0aW9uYWwgcGVybWlzc2lv biBjaGVja3MKK2JlZm9yZSBBUEkgbWV0aG9kcyBhcmUgZXhlY3V0ZWQuIElmIHRoZSBwZXJtaXNz aW9uIGNoZWNrIGZhaWxzLCB0aGlzIGZ1bmN0aW9uCitzaG91bGQgZGllIHdpdGggYW4gYXBwcm9w cmlhdGUgZXJyb3IgbWVzc2FnZS4gVGhlIG5hbWUgb2YgdGhlIG1ldGhvZCBjYWxsaW5nCit0aGlz IGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGJ5IEM8JG1ldGhvZF9uYW1lPiBhbmQgdGhlIHBhcmFtZXRl cnMgb2YgdGhlIEFQSQorbWV0aG9kIGFyZSBwcm92aWRlZCBieSBDPCRwYXJhbT4KKworRGVmYXVs dCBpbXBsZW1lbnRhdGlvbiBpcyBhIG5vLW9wIHRvIHByZXNlcnZlIGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5IHdpdGgKK2V4aXN0aW5nIHN1YmNsYXNzZXMsIHNpbmNlIHRoaXMgZ290IGFkZGVkIGxh dGVyIG9uLiBJdCBwcmVzZXJ2ZXMgZXhpc3RpbmcKK2JlaGF2aW9yIHdpdGhvdXQgaGF2aW5nIHRv IGNoYW5nZSBldmVyeSBzdWJjbGFzcy4KKworPWN1dAorCitzdWIgY2hlY2tfcHJpdmlsZWdlc19m b3JfbWV0aG9kIHsKKyAgICBteSAoJGNsYXNzLCAkbWV0aG9kX25hbWUsICRwYXJhbSkgPSBAXzsK K30KKwogc3ViIGxvY2tfY29uZmlnIHsKICAgICBteSAoJGNsYXNzLCAkcGFyYW0sICRjb2RlKSA9 IEBfOwogCkBAIC05NCw2ICsxMTMsOCBAQCBzdWIgcmVnaXN0ZXJfZ2V0X3J1bGVzIHsKIAljb2Rl ID0+IHN1YiB7CiAJICAgIG15ICgkcGFyYW0pID0gQF87CiAKKwkgICAgJGNsYXNzLT5jaGVja19w cml2aWxlZ2VzX2Zvcl9tZXRob2QoJ2dldF9ydWxlcycsICRwYXJhbSk7CisKIAkgICAgbXkgKCRj bHVzdGVyX2NvbmYsICRmd19jb25mLCAkcnVsZXMpID0gJGNsYXNzLT5sb2FkX2NvbmZpZygkcGFy YW0pOwogCiAJICAgIG15ICgkbGlzdCwgJGRpZ2VzdCkgPSBQVkU6OkZpcmV3YWxsOjpjb3B5X2xp c3Rfd2l0aF9kaWdlc3QoJHJ1bGVzKTsKQEAgLTE5Miw2ICsyMTMsOCBAQCBzdWIgcmVnaXN0ZXJf Z2V0X3J1bGUgewogCWNvZGUgPT4gc3ViIHsKIAkgICAgbXkgKCRwYXJhbSkgPSBAXzsKIAorCSAg ICAkY2xhc3MtPmNoZWNrX3ByaXZpbGVnZXNfZm9yX21ldGhvZCgnZ2V0X3J1bGUnLCAkcGFyYW0p OworCiAJICAgIG15ICgkY2x1c3Rlcl9jb25mLCAkZndfY29uZiwgJHJ1bGVzKSA9ICRjbGFzcy0+ bG9hZF9jb25maWcoJHBhcmFtKTsKIAogCSAgICBteSAoJGxpc3QsICRkaWdlc3QpID0gUFZFOjpG aXJld2FsbDo6Y29weV9saXN0X3dpdGhfZGlnZXN0KCRydWxlcyk7CkBAIC0yMzIsNiArMjU1LDgg QEAgc3ViIHJlZ2lzdGVyX2NyZWF0ZV9ydWxlIHsKIAljb2RlID0+IHN1YiB7CiAJICAgIG15ICgk cGFyYW0pID0gQF87CiAKKwkgICAgJGNsYXNzLT5jaGVja19wcml2aWxlZ2VzX2Zvcl9tZXRob2Qo J2NyZWF0ZV9ydWxlJywgJHBhcmFtKTsKKwogCSAgICAkY2xhc3MtPmxvY2tfY29uZmlnKCRwYXJh bSwgc3ViIHsKIAkJbXkgKCRwYXJhbSkgPSBAXzsKIApAQCAtMjkzLDYgKzMxOCw4IEBAIHN1YiBy ZWdpc3Rlcl91cGRhdGVfcnVsZSB7CiAJY29kZSA9PiBzdWIgewogCSAgICBteSAoJHBhcmFtKSA9 IEBfOwogCisJICAgICRjbGFzcy0+Y2hlY2tfcHJpdmlsZWdlc19mb3JfbWV0aG9kKCd1cGRhdGVf cnVsZScsICRwYXJhbSk7CisKIAkgICAgJGNsYXNzLT5sb2NrX2NvbmZpZygkcGFyYW0sIHN1YiB7 CiAJCW15ICgkcGFyYW0pID0gQF87CiAKQEAgLTM1OSw2ICszODYsOCBAQCBzdWIgcmVnaXN0ZXJf ZGVsZXRlX3J1bGUgewogCWNvZGUgPT4gc3ViIHsKIAkgICAgbXkgKCRwYXJhbSkgPSBAXzsKIAor CSAgICAkY2xhc3MtPmNoZWNrX3ByaXZpbGVnZXNfZm9yX21ldGhvZCgnZGVsZXRlX3J1bGUnLCAk cGFyYW0pOworCiAJICAgICRjbGFzcy0+bG9ja19jb25maWcoJHBhcmFtLCBzdWIgewogCQlteSAo JHBhcmFtKSA9IEBfOwogCkBAIC02MzQsNCArNjYzLDU5IEBAIHN1YiBzYXZlX3J1bGVzIHsKIAog X19QQUNLQUdFX18tPnJlZ2lzdGVyX2hhbmRsZXJzKCk7CiAKK3BhY2thZ2UgUFZFOjpBUEkyOjpG aXJld2FsbDo6Vm5ldFJ1bGVzOworCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBW RTo6SlNPTlNjaGVtYSBxdyhnZXRfc3RhbmRhcmRfb3B0aW9uKTsKKwordXNlIGJhc2UgcXcoUFZF OjpBUEkyOjpGaXJld2FsbDo6UnVsZXNCYXNlKTsKKworX19QQUNLQUdFX18tPmFkZGl0aW9uYWxf cGFyYW1ldGVycyh7CisgICAgdm5ldCA9PiBnZXRfc3RhbmRhcmRfb3B0aW9uKCdwdmUtc2RuLXZu ZXQtaWQnKSwKK30pOworCitzdWIgY2hlY2tfcHJpdmlsZWdlc19mb3JfbWV0aG9kIHsKKyAgICBt eSAoJGNsYXNzLCAkbWV0aG9kX25hbWUsICRwYXJhbSkgPSBAXzsKKworICAgIGlmICgkbWV0aG9k X25hbWUgZXEgJ2dldF9ydWxlJyB8fCAkbWV0aG9kX25hbWUgZXEgJ2dldF9ydWxlcycpIHsKKwlQ VkU6OkFQSTI6OkZpcmV3YWxsOjpWbmV0OjpjaGVja192bmV0X2FjY2VzcygkcGFyYW0tPnt2bmV0 fSwgWydTRE4uQXVkaXQnLCAnU0ROLkFsbG9jYXRlJ10pOworICAgIH0gZWxzaWYgKCRtZXRob2Rf bmFtZSA9fiAnKHVwZGF0ZXxjcmVhdGV8ZGVsZXRlKV9ydWxlJykgeworCVBWRTo6QVBJMjo6Rmly ZXdhbGw6OlZuZXQ6OmNoZWNrX3ZuZXRfYWNjZXNzKCRwYXJhbS0+e3ZuZXR9LCBbJ1NETi5BbGxv Y2F0ZSddKTsKKyAgICB9IGVsc2UgeworCWRpZSAidW5rbm93biBtZXRob2Q6ICRtZXRob2RfbmFt ZSI7CisgICAgfQorfQorCitzdWIgcnVsZV9lbnYgeworICAgIG15ICgkY2xhc3MsICRwYXJhbSkg PSBAXzsKKworICAgIHJldHVybiAndm5ldCc7Cit9CisKK3N1YiBsb2NrX2NvbmZpZyB7CisgICAg bXkgKCRjbGFzcywgJHBhcmFtLCAkY29kZSkgPSBAXzsKKworICAgIFBWRTo6RmlyZXdhbGw6Omxv Y2tfdm5ldGZ3X2NvbmYoJHBhcmFtLT57dm5ldH0sIDEwLCAkY29kZSwgJHBhcmFtKTsKK30KKwor c3ViIGxvYWRfY29uZmlnIHsKKyAgICBteSAoJGNsYXNzLCAkcGFyYW0pID0gQF87CisKKyAgICBt eSAkY2x1c3Rlcl9jb25mID0gUFZFOjpGaXJld2FsbDo6bG9hZF9jbHVzdGVyZndfY29uZigpOwor ICAgIG15ICRmd19jb25mID0gUFZFOjpGaXJld2FsbDo6bG9hZF92bmV0ZndfY29uZigkY2x1c3Rl cl9jb25mLCAndm5ldCcsICRwYXJhbS0+e3ZuZXR9KTsKKyAgICBteSAkcnVsZXMgPSAkZndfY29u Zi0+e3J1bGVzfTsKKworICAgIHJldHVybiAoJGNsdXN0ZXJfY29uZiwgJGZ3X2NvbmYsICRydWxl cyk7Cit9CisKK3N1YiBzYXZlX3J1bGVzIHsKKyAgICBteSAoJGNsYXNzLCAkcGFyYW0sICRmd19j b25mLCAkcnVsZXMpID0gQF87CisKKyAgICAkZndfY29uZi0+e3J1bGVzfSA9ICRydWxlczsKKyAg ICBQVkU6OkZpcmV3YWxsOjpzYXZlX3ZuZXRmd19jb25mKCRwYXJhbS0+e3ZuZXR9LCAkZndfY29u Zik7Cit9CisKK19fUEFDS0FHRV9fLT5yZWdpc3Rlcl9oYW5kbGVycygpOworCiAxOwpkaWZmIC0t Z2l0IGEvc3JjL1BWRS9BUEkyL0ZpcmV3YWxsL1ZuZXQucG0gYi9zcmMvUFZFL0FQSTIvRmlyZXdh bGwvVm5ldC5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmY4NTZiCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL1BWRS9BUEkyL0ZpcmV3YWxsL1ZuZXQucG0KQEAgLTAsMCAr MSwxNjkgQEAKK3BhY2thZ2UgUFZFOjpBUEkyOjpGaXJld2FsbDo6Vm5ldDsKKwordXNlIHN0cmlj dDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFN0b3JhYmxlIHF3KGRjbG9uZSk7CisKK3VzZSBQVkU6 OkV4Y2VwdGlvbiBxdyhyYWlzZV9wYXJhbV9leGMpOwordXNlIFBWRTo6SlNPTlNjaGVtYSBxdyhn ZXRfc3RhbmRhcmRfb3B0aW9uKTsKK3VzZSBQVkU6OlJQQ0Vudmlyb25tZW50OworCit1c2UgUFZF OjpGaXJld2FsbDsKK3VzZSBQVkU6OkFQSTI6OkZpcmV3YWxsOjpSdWxlczsKKworCit1c2UgYmFz ZSBxdyhQVkU6OlJFU1RIYW5kbGVyKTsKKworc3ViIGNoZWNrX3ZuZXRfYWNjZXNzIHsKKyAgICBt eSAoJHZuZXRpZCwgJHByaXZpbGVnZXMpID0gQF87CisKKyAgICBteSAkdm5ldCA9IFBWRTo6TmV0 d29yazo6U0ROOjpWbmV0czo6Z2V0X3ZuZXQoJHZuZXRpZCwgMSkKKwlvciBkaWUgImludmFsaWQg dm5ldCBzcGVjaWZpZWQiOworCisgICAgbXkgJHpvbmVpZCA9ICR2bmV0LT57em9uZX07CisKKyAg ICBteSAkcnBjZW52ID0gUFZFOjpSUENFbnZpcm9ubWVudDo6Z2V0KCk7CisgICAgbXkgJGF1dGh1 c2VyID0gJHJwY2Vudi0+Z2V0X3VzZXIoKTsKKworICAgICRycGNlbnYtPmNoZWNrX2FueSgkYXV0 aHVzZXIsICIvc2RuL3pvbmVzLyR6b25laWQvJHZuZXRpZCIsICRwcml2aWxlZ2VzKTsKK307CisK K19fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBzdWJjbGFzcyA9PiAiUFZFOjpB UEkyOjpGaXJld2FsbDo6Vm5ldFJ1bGVzIiwKKyAgICBwYXRoID0+ICdydWxlcycsCit9KTsKKwor X19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCh7CisgICAgbmFtZSA9PiAnaW5kZXgnLAorICAg IHBhdGggPT4gJycsCisgICAgbWV0aG9kID0+ICdHRVQnLAorICAgIGRlc2NyaXB0aW9uID0+ICJE aXJlY3RvcnkgaW5kZXguIiwKKyAgICBwYXJhbWV0ZXJzID0+IHsKKwlhZGRpdGlvbmFsUHJvcGVy dGllcyA9PiAwLAorCXByb3BlcnRpZXMgPT4geworCSAgICB2bmV0ID0+IGdldF9zdGFuZGFyZF9v cHRpb24oJ3B2ZS1zZG4tdm5ldC1pZCcpLAorCX0sCisgICAgfSwKKyAgICByZXR1cm5zID0+IHsK Kwl0eXBlID0+ICdhcnJheScsCisJaXRlbXMgPT4geworCSAgICB0eXBlID0+ICJvYmplY3QiLAor CSAgICBwcm9wZXJ0aWVzID0+IHt9LAorCX0sCisJbGlua3MgPT4gWyB7IHJlbCA9PiAnY2hpbGQn LCBocmVmID0+ICJ7bmFtZX0iIH0gXSwKKyAgICB9LAorICAgIGNvZGUgPT4gc3ViIHsKKwlteSAo JHBhcmFtKSA9IEBfOworCisJbXkgJHJlc3VsdCA9IFsKKwkgICAgeyBuYW1lID0+ICdydWxlcycg fSwKKwkgICAgeyBuYW1lID0+ICdvcHRpb25zJyB9LAorCV07CisKKwlyZXR1cm4gJHJlc3VsdDsK KyAgICB9fSk7CisKK215ICRvcHRpb25fcHJvcGVydGllcyA9IGRjbG9uZSgkUFZFOjpGaXJld2Fs bDo6dm5ldF9vcHRpb25fcHJvcGVydGllcyk7CisKK215IHN1YiBhZGRfb3B0aW9uX3Byb3BlcnRp ZXMgeworICAgIG15ICgkcHJvcGVydGllcykgPSBAXzsKKworICAgIGZvcmVhY2ggbXkgJGsgKGtl eXMgJSRvcHRpb25fcHJvcGVydGllcykgeworCSRwcm9wZXJ0aWVzLT57JGt9ID0gJG9wdGlvbl9w cm9wZXJ0aWVzLT57JGt9OworICAgIH0KKworICAgIHJldHVybiAkcHJvcGVydGllczsKK307CisK KworX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCh7CisgICAgbmFtZSA9PiAnZ2V0X29wdGlv bnMnLAorICAgIHBhdGggPT4gJ29wdGlvbnMnLAorICAgIG1ldGhvZCA9PiAnR0VUJywKKyAgICBk ZXNjcmlwdGlvbiA9PiAiR2V0IHZuZXQgZmlyZXdhbGwgb3B0aW9ucy4iLAorICAgIHByb3RlY3Rl ZCA9PiAxLAorICAgIHBlcm1pc3Npb25zID0+IHsKKwlkZXNjcmlwdGlvbiA9PiAiTmVlZHMgU0RO LkF1ZGl0IG9yIFNETi5BbGxvY2F0ZSBwZXJtaXNzaW9ucyBvbiAnL3Nkbi96b25lcy88em9uZT4v PHZuZXQ+JyIsCisJdXNlciA9PiAnYWxsJywKKyAgICB9LAorICAgIHBhcmFtZXRlcnMgPT4gewor CWFkZGl0aW9uYWxQcm9wZXJ0aWVzID0+IDAsCisJcHJvcGVydGllcyA9PiB7CisJICAgIHZuZXQg PT4gZ2V0X3N0YW5kYXJkX29wdGlvbigncHZlLXNkbi12bmV0LWlkJyksCisJfSwKKyAgICB9LAor ICAgIHJldHVybnMgPT4geworCXR5cGUgPT4gIm9iamVjdCIsCisJcHJvcGVydGllcyA9PiAkb3B0 aW9uX3Byb3BlcnRpZXMsCisgICAgfSwKKyAgICBjb2RlID0+IHN1YiB7CisJbXkgKCRwYXJhbSkg PSBAXzsKKworCWNoZWNrX3ZuZXRfYWNjZXNzKCRwYXJhbS0+e3ZuZXR9LCBbJ1NETi5BbGxvY2F0 ZScsICdTRE4uQXVkaXQnXSk7CisKKwlteSAkY2x1c3Rlcl9jb25mID0gUFZFOjpGaXJld2FsbDo6 bG9hZF9jbHVzdGVyZndfY29uZigpOworCW15ICR2bmV0ZndfY29uZiA9IFBWRTo6RmlyZXdhbGw6 OmxvYWRfdm5ldGZ3X2NvbmYoJGNsdXN0ZXJfY29uZiwgJ3ZuZXQnLCAkcGFyYW0tPnt2bmV0fSk7 CisKKwlyZXR1cm4gUFZFOjpGaXJld2FsbDo6Y29weV9vcGplY3Rfd2l0aF9kaWdlc3QoJHZuZXRm d19jb25mLT57b3B0aW9uc30pOworICAgIH19KTsKKworX19QQUNLQUdFX18tPnJlZ2lzdGVyX21l dGhvZCh7CisgICAgbmFtZSA9PiAnc2V0X29wdGlvbnMnLAorICAgIHBhdGggPT4gJ29wdGlvbnMn LAorICAgIG1ldGhvZCA9PiAnUFVUJywKKyAgICBkZXNjcmlwdGlvbiA9PiAiU2V0IEZpcmV3YWxs IG9wdGlvbnMuIiwKKyAgICBwcm90ZWN0ZWQgPT4gMSwKKyAgICBwZXJtaXNzaW9ucyA9PiB7CisJ ZGVzY3JpcHRpb24gPT4gIk5lZWRzIFNETi5BbGxvY2F0ZSBwZXJtaXNzaW9ucyBvbiAnL3Nkbi96 b25lcy88em9uZT4vPHZuZXQ+JyIsCisJdXNlciA9PiAnYWxsJywKKyAgICB9LAorICAgIHBhcmFt ZXRlcnMgPT4geworCWFkZGl0aW9uYWxQcm9wZXJ0aWVzID0+IDAsCisJcHJvcGVydGllcyA9PiBh ZGRfb3B0aW9uX3Byb3BlcnRpZXMoeworCSAgICB2bmV0ID0+IGdldF9zdGFuZGFyZF9vcHRpb24o J3B2ZS1zZG4tdm5ldC1pZCcpLAorCSAgICBkZWxldGUgPT4geworCQl0eXBlID0+ICdzdHJpbmcn LCBmb3JtYXQgPT4gJ3B2ZS1jb25maWdpZC1saXN0JywKKwkJZGVzY3JpcHRpb24gPT4gIkEgbGlz dCBvZiBzZXR0aW5ncyB5b3Ugd2FudCB0byBkZWxldGUuIiwKKwkJb3B0aW9uYWwgPT4gMSwKKwkg ICAgfSwKKwkgICAgZGlnZXN0ID0+IGdldF9zdGFuZGFyZF9vcHRpb24oJ3B2ZS1jb25maWctZGln ZXN0JyksCisJfSksCisgICAgfSwKKyAgICByZXR1cm5zID0+IHsgdHlwZSA9PiAibnVsbCIgfSwK KyAgICBjb2RlID0+IHN1YiB7CisJbXkgKCRwYXJhbSkgPSBAXzsKKworCWNoZWNrX3ZuZXRfYWNj ZXNzKCRwYXJhbS0+e3ZuZXR9LCBbJ1NETi5BbGxvY2F0ZSddKTsKKworCVBWRTo6RmlyZXdhbGw6 OmxvY2tfdm5ldGZ3X2NvbmYoJHBhcmFtLT57dm5ldH0sIDEwLCBzdWIgeworCSAgICBteSAkY2x1 c3Rlcl9jb25mID0gUFZFOjpGaXJld2FsbDo6bG9hZF9jbHVzdGVyZndfY29uZigpOworCSAgICBt eSAkdm5ldGZ3X2NvbmYgPSBQVkU6OkZpcmV3YWxsOjpsb2FkX3ZuZXRmd19jb25mKCRjbHVzdGVy X2NvbmYsICd2bmV0JywgJHBhcmFtLT57dm5ldH0pOworCisJICAgIG15ICh1bmRlZiwgJGRpZ2Vz dCkgPSBQVkU6OkZpcmV3YWxsOjpjb3B5X29wamVjdF93aXRoX2RpZ2VzdCgkdm5ldGZ3X2NvbmYt PntvcHRpb25zfSk7CisJICAgIFBWRTo6VG9vbHM6OmFzc2VydF9pZl9tb2RpZmllZCgkZGlnZXN0 LCAkcGFyYW0tPntkaWdlc3R9KTsKKworCSAgICBpZiAoJHBhcmFtLT57ZGVsZXRlfSkgeworCQlm b3IgbXkgJG9wdCAoUFZFOjpUb29sczo6c3BsaXRfbGlzdCgkcGFyYW0tPntkZWxldGV9KSkgewor CQkgICAgcmFpc2VfcGFyYW1fZXhjKHsgZGVsZXRlID0+ICJubyBzdWNoIG9wdGlvbiAnJG9wdCci IH0pCisJCQlpZiAhJG9wdGlvbl9wcm9wZXJ0aWVzLT57JG9wdH07CisJCSAgICBkZWxldGUgJHZu ZXRmd19jb25mLT57b3B0aW9uc30tPnskb3B0fTsKKwkJfQorCSAgICB9CisKKwkgICAgaWYgKGRl ZmluZWQoJHBhcmFtLT57ZW5hYmxlfSkpIHsKKwkJJHBhcmFtLT57ZW5hYmxlfSA9ICRwYXJhbS0+ e2VuYWJsZX0gPyAxIDogMDsKKwkgICAgfQorCisJICAgIGZvciBteSAkayAoa2V5cyAlJG9wdGlv bl9wcm9wZXJ0aWVzKSB7CisJCW5leHQgaWYgIWRlZmluZWQoJHBhcmFtLT57JGt9KTsKKwkJJHZu ZXRmd19jb25mLT57b3B0aW9uc30tPnska30gPSAkcGFyYW0tPnska307CisJICAgIH0KKworCSAg ICBQVkU6OkZpcmV3YWxsOjpzYXZlX3ZuZXRmd19jb25mKCRwYXJhbS0+e3ZuZXR9LCAkdm5ldGZ3 X2NvbmYpOworCX0pOworCisJcmV0dXJuIHVuZGVmOworICAgIH19KTsKKworMTsKZGlmZiAtLWdp dCBhL3NyYy9QVkUvRmlyZXdhbGwucG0gYi9zcmMvUFZFL0ZpcmV3YWxsLnBtCmluZGV4IGVjN2E0 ZTYuLmVlNDllZTkgMTAwNjQ0Ci0tLSBhL3NyYy9QVkUvRmlyZXdhbGwucG0KKysrIGIvc3JjL1BW RS9GaXJld2FsbC5wbQpAQCAtMTkxNiw2ICsxOTE2LDExIEBAIHN1YiBydWxlc19tb2RpZnlfcGVy bWlzc2lvbnMgewogCXJldHVybiB7CiAJICAgIGNoZWNrID0+IFsncGVybScsICcvdm1zL3t2bWlk fScsIFsgJ1ZNLkNvbmZpZy5OZXR3b3JrJyBdXSwKIAl9CisgICAgfSBlbHNpZiAoJHJ1bGVfZW52 IGVxICd2bmV0JykgeworCXJldHVybiB7CisJICAgIGRlc2NyaXB0aW9uID0+ICJOZWVkcyBTRE4u QWxsb2NhdGUgcGVybWlzc2lvbnMgb24gJy9zZG4vem9uZXMvPHpvbmU+Lzx2bmV0PiciLAorCSAg ICB1c2VyID0+ICdhbGwnLAorCX0KICAgICB9CiAKICAgICByZXR1cm4gdW5kZWY7CkBAIC0xOTM2 LDYgKzE5NDEsMTEgQEAgc3ViIHJ1bGVzX2F1ZGl0X3Blcm1pc3Npb25zIHsKIAlyZXR1cm4gewog CSAgICBjaGVjayA9PiBbJ3Blcm0nLCAnL3Ztcy97dm1pZH0nLCBbICdWTS5BdWRpdCcgXV0sCiAJ fQorICAgIH0gZWxzaWYgKCRydWxlX2VudiBlcSAndm5ldCcpIHsKKwlyZXR1cm4geworCSAgICBk ZXNjcmlwdGlvbiA9PiAiTmVlZHMgU0ROLkF1ZGl0IG9yIFNETi5BbGxvY2F0ZSBwZXJtaXNzaW9u cyBvbiAnL3Nkbi96b25lcy88em9uZT4vPHZuZXQ+JyIsCisJICAgIHVzZXIgPT4gJ2FsbCcsCisJ fQogICAgIH0KIAogICAgIHJldHVybiB1bmRlZjsKLS0gCjIuMzkuNQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QK cHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dp LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=