Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s1qW2-00FMU7-3S for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Apr 2024 16:39:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1s1qVz-00760D-Gc for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Apr 2024 16:39:36 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s1qVy-0075yj-Tb for pgsql-hackers@lists.postgresql.org; Tue, 30 Apr 2024 16:39:36 +0000 Received: from mail-oa1-x34.google.com ([2001:4860:4864:20::34]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1s1qVu-000sJj-9A for pgsql-hackers@lists.postgresql.org; Tue, 30 Apr 2024 16:39:35 +0000 Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-2395e037342so3536150fac.0 for ; Tue, 30 Apr 2024 09:39:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1714495168; x=1715099968; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=4S6nlXOK7PMcwX9BGCEBWwc3Oew9QWq/OInJVSY2NJc=; b=ceISFhiRW/Rt+cX31oaphHH15egxRqpl5OxZ4zPHb0Zc1jZcRhF1WAhn96ZHv4ZPDs QL1Yd3AZY40+aXiuC5oOdeOSOoyVcjZVr8NcyOVMcnKWw9N3Xvth2azhhDYEi1Xdju+L 3OetZVb0R+adxyf3I2gaITA1XAEEiBAPoZiVcdpk7iIPFLHFc0prnO91qTk2NSE77ttB i67eFaAJHwOlftGCi+kiqE+xKJ0gJnRSxfo3cLqSW1x2LwmmHmzpg97HyAr+wpNvv2RM 13t4fWLY9sUoN0jOoztrtdlGsuXoZV1Tg8By9wAfRKk3l3hzFzWrkQE3pMGn/+SzB5fX Gd0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714495168; x=1715099968; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=4S6nlXOK7PMcwX9BGCEBWwc3Oew9QWq/OInJVSY2NJc=; b=tLpWtVw2mqneLya2uPR80ABiA2wmnCil5kazj7jKd3HRjGFSQjNoL20qkFxXYyL1e3 OtUZG7NW+alwGZdX5ETN2HrJ7jro8G8Tq5nt/XF2Yrl1JGjIOrv6UZBrgriYJ9Ly+ytv FXyaIL+kJ9p6r6K7PP7klXDZNBeWB+ZtN0Z8d4zXZNqG9ngVs5OaUR9pQ9Xlh9WoFXLF IUxIHApyXvUU6fOc5pAo3Yoi+1q78j537mAu/vdQMWk7w/DutJ9EzOOY4rYd9d2iL/KN ljN3W4I6jxRqZPaCmk/s3udrpSTpucmdp1G2BPTJ80OKM9v6jRqtFmQtxEoXl23OzU9v QUYA== X-Forwarded-Encrypted: i=1; AJvYcCXw16Gx2e2WM/c2kSzUEPjM+vwOhkqPtjQRefT+nqsV24pNjj6YB0IxbAOLUYxica3TyEN1i9nfVwAVkDUvL1/uiII4OPrY/0iduXNmIxphaT58 X-Gm-Message-State: AOJu0YzfbUJmufHZYs/7b+UAVACgITvpsXnakQ2eBiUTL+b+CBZizihG yRFXJRKAr4f7FzpDTw/VGaflAlRw1wen4dkyJbngki5dIl9+5I8ejg5zB563pNIL0qicBCpUsif g X-Google-Smtp-Source: AGHT+IHcLw3AWJdojViihN7QpexIW5qXsLZxCipkKrx2uXLB7Uh84lAr6EVlUKUvgJiJ0v9ToTQdlQ== X-Received: by 2002:a05:6870:d20c:b0:22e:d61d:a53c with SMTP id g12-20020a056870d20c00b0022ed61da53cmr3622851oac.51.1714495167901; Tue, 30 Apr 2024 09:39:27 -0700 (PDT) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id x1-20020a63b201000000b005e838b99c96sm21151991pge.80.2024.04.30.09.39.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Apr 2024 09:39:25 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------ziSDE9wf0VcQM6e0tLpTHN8Z" Message-ID: <3775839b-3f0f-4c8a-ac03-a253222e6a4b@illuminatedcomputing.com> Date: Tue, 30 Apr 2024 09:39:24 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time To: Robert Haas Cc: Peter Eisentraut , jian he , PostgreSQL Hackers References: <85dd3ad0-fa79-46e8-a08b-c426c76825f3@eisentraut.org> <49c07eac-18ec-4aff-929c-e81b87df1092@eisentraut.org> <1edb3b79-a4bc-43b1-80aa-2e090472fe32@eisentraut.org> <47550967-260b-4180-9791-b224859fe63e@illuminatedcomputing.com> <1b2ab118-82c1-4e79-a094-04dab382e2c4@illuminatedcomputing.com> Content-Language: en-US From: Paul Jungwirth In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ziSDE9wf0VcQM6e0tLpTHN8Z Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/30/24 09:24, Robert Haas wrote: > Peter, could you have a look at > http://postgr.es/m/47550967-260b-4180-9791-b224859fe63e@illuminatedcomputing.com > and express an opinion about whether each of those proposals are (a) > good or bad ideas and (b) whether they need to be fixed for the > current release? Here are the same patches but rebased. I've added a fourth which is my progress on adding the CHECK constraint. I don't really consider it finished though, because it has these problems: - The CHECK constraint should be marked as an internal dependency of the PK, so that you can't drop it, and it gets dropped when you drop the PK. I don't see a good way to tie the two together though, so I'd appreciate any advice there. They are separate AlterTableCmds, so how do I get the ObjectAddress of both constraints at the same time? I wanted to store the PK's ObjectAddress on the Constraint node, but since ObjectAddress isn't a Node it doesn't work. - The CHECK constraint should maybe be hidden when you say `\d foo`? Or maybe not, but that's what we do with FK triggers. - When you create partitions you get a warning about the constraint already existing, because it gets created via the PK and then also the partitioning code tries to copy it. Solving the first issue here should solve this nicely though. Alternately we could just fix the GROUP BY functional dependency code to only accept b-tree indexes. But I think the CHECK constraint approach is a better solution. Thanks, -- Paul ~{:-) pj@illuminatedcomputing.com --------------ziSDE9wf0VcQM6e0tLpTHN8Z Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Fix-ON-CONFLICT-DO-NOTHING-UPDATE-for-temporal-in.patch" Content-Disposition: attachment; filename*0="v2-0001-Fix-ON-CONFLICT-DO-NOTHING-UPDATE-for-temporal-in.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwZGJjMDA4YTY1NGFiMWZkYzVmNDkyMzQ1ZWU0NTc1YzM1MjQ5OWQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFN1biwgMjQgTWFyIDIwMjQgMjE6NDY6MzAgLTA3 MDAKU3ViamVjdDogW1BBVENIIHYyIDEvNF0gRml4IE9OIENPTkZMSUNUIERPIE5PVEhJTkcv VVBEQVRFIGZvciB0ZW1wb3JhbCBpbmRleGVzCgpBIFBSSU1BUlkgS0VZIG9yIFVOSVFVRSBj b25zdHJhaW50IHdpdGggV0lUSE9VVCBPVkVSTEFQUyB3aWxsIGJlIGEgR2lTVAppbmRleCwg bm90IGEgQi1UcmVlLCBidXQgaXQgd2lsbCBzdGlsbCBoYXZlIGluZGlzdW5pcXVlIHNldC4g VGhlIGNvZGUKZm9yIE9OIENPTkZMSUNUIGZhaWxzIGlmIGl0IHNlZXMgYSBub24tYnRyZWUg aW5kZXggdGhhdCBoYXMgaW5kaXN1bmlxdWUuClRoaXMgY29tbWl0IGZpeGVzIHRoYXQgYW5k IGFkZHMgc29tZSB0ZXN0cy4gQnV0IG5vdyB0aGF0IHdlIGNhbid0IGp1c3QKdGVzdCBpbmRp c3VuaXF1ZSwgd2UgYWxzbyBuZWVkIHNvbWUgZXh0cmEgY2hlY2tzIHRvIHByZXZlbnQgRE8g VVBEQVRFCmZyb20gcnVubmluZyBhZ2FpbnN0IGEgV0lUSE9VVCBPVkVSTEFQUyBjb25zdHJh aW50IChiZWNhdXNlIHRoZSBjb25mbGljdApjb3VsZCBoYXBwZW4gYWdhaW5zdCBtb3JlIHRo YW4gb25lIHJvdywgYW5kIHdlJ2Qgb25seSB1cGRhdGUgb25lKS4KLS0tCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMgICAgICAgICAgfCAgIDQgKy0KIHNyYy9p bmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4v cmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAgICAgfCAxNzYgKysrKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNx bCAgICAgfCAxMTMgKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMjk0IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9pbmRleC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4IDVhODU2OGM1 NWM5Li4xZmQ1NDNjYzU1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRl eC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtMjQ0Myw2ICsyNDQz LDcgQEAgQnVpbGRJbmRleEluZm8oUmVsYXRpb24gaW5kZXgpCiAJCQkJCQkJCSAmaWktPmlp X0V4Y2x1c2lvbk9wcywKIAkJCQkJCQkJICZpaS0+aWlfRXhjbHVzaW9uUHJvY3MsCiAJCQkJ CQkJCSAmaWktPmlpX0V4Y2x1c2lvblN0cmF0cyk7CisJCWlpLT5paV9IYXNXaXRob3V0T3Zl cmxhcHMgPSBpaS0+aWlfVW5pcXVlOwogCX0KIAogCXJldHVybiBpaTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0luZGV4aW5nLmMKaW5kZXggOWYwNWIzNjU0YzEuLmZhYTM3Y2E1NmRiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwpAQCAtMjEwLDcgKzIxMCw3IEBA IEV4ZWNPcGVuSW5kaWNlcyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLCBib29sIHNw ZWN1bGF0aXZlKQogCQkgKiBJZiB0aGUgaW5kZXhlcyBhcmUgdG8gYmUgdXNlZCBmb3Igc3Bl Y3VsYXRpdmUgaW5zZXJ0aW9uLCBhZGQgZXh0cmEKIAkJICogaW5mb3JtYXRpb24gcmVxdWly ZWQgYnkgdW5pcXVlIGluZGV4IGVudHJpZXMuCiAJCSAqLwotCQlpZiAoc3BlY3VsYXRpdmUg JiYgaWktPmlpX1VuaXF1ZSkKKwkJaWYgKHNwZWN1bGF0aXZlICYmIGlpLT5paV9VbmlxdWUg JiYgIWlpLT5paV9IYXNXaXRob3V0T3ZlcmxhcHMpCiAJCQlCdWlsZFNwZWN1bGF0aXZlSW5k ZXhJbmZvKGluZGV4RGVzYywgaWkpOwogCiAJCXJlbGF0aW9uRGVzY3NbaV0gPSBpbmRleERl c2M7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKaW5kZXggMTMwZjgzODYy OWYuLmEzOThkN2E3OGQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9wbGFuY2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5j CkBAIC04MTUsNyArODE1LDcgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBsYW5uZXJJbmZv ICpyb290KQogCQkgKi8KIAkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQgPT0gaWR4Rm9y bS0+aW5kZXhyZWxpZCkKIAkJewotCQkJaWYgKCFpZHhGb3JtLT5pbmRpc3VuaXF1ZSAmJiBv bmNvbmZsaWN0LT5hY3Rpb24gPT0gT05DT05GTElDVF9VUERBVEUpCisJCQlpZiAoKCFpZHhG b3JtLT5pbmRpc3VuaXF1ZSB8fCBpZHhGb3JtLT5pbmRpc2V4Y2x1c2lvbikgJiYgb25jb25m bGljdC0+YWN0aW9uID09IE9OQ09ORkxJQ1RfVVBEQVRFKQogCQkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKIAkJCQkJCSBl cnJtc2coIk9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVz aW9uIGNvbnN0cmFpbnRzIikpKTsKQEAgLTgzNyw3ICs4MzcsNyBAQCBpbmZlcl9hcmJpdGVy X2luZGV4ZXMoUGxhbm5lckluZm8gKnJvb3QpCiAJCSAqIGNvbnN0cmFpbnRzKSwgc28gaW5k ZXggdW5kZXIgY29uc2lkZXJhdGlvbiBjYW4gYmUgaW1tZWRpYXRlbHkKIAkJICogc2tpcHBl ZCBpZiBpdCdzIG5vdCB1bmlxdWUKIAkJICovCi0JCWlmICghaWR4Rm9ybS0+aW5kaXN1bmlx dWUpCisJCWlmICghaWR4Rm9ybS0+aW5kaXN1bmlxdWUgfHwgaWR4Rm9ybS0+aW5kaXNleGNs dXNpb24pCiAJCQlnb3RvIG5leHQ7CiAKIAkJLyogQnVpbGQgQk1TIHJlcHJlc2VudGF0aW9u IG9mIHBsYWluIChub24gZXhwcmVzc2lvbikgaW5kZXggYXR0cnMgKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhl Y25vZGVzLmgKaW5kZXggZDkyN2FjNDRhODIuLmZkZmFlZjI4NGU5IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaApAQCAtMjA0LDYgKzIwNCw3IEBAIHR5cGVkZWYgc3RydWN0IEluZGV4SW5m bwogCWJvb2wJCWlpX1N1bW1hcml6aW5nOwogCWludAkJCWlpX1BhcmFsbGVsV29ya2VyczsK IAlPaWQJCQlpaV9BbTsKKwlib29sCQlpaV9IYXNXaXRob3V0T3ZlcmxhcHM7CiAJdm9pZAkg ICAqaWlfQW1DYWNoZTsKIAlNZW1vcnlDb250ZXh0IGlpX0NvbnRleHQ7CiB9IEluZGV4SW5m bzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVy bGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMu b3V0CmluZGV4IGY2ZmU4ZjA5MzY5Li45YzE1N2FkNjViMyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CkBAIC00NDksNiArNDQ5 LDE4MiBAQCBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKIERS T1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CiAtLQorLS0gT04gQ09ORkxJQ1QKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1 LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGlk IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVz IGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEt MDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKQorIFsxLDIpIHwgWzIwMTAtMDEtMDEsMjAyMC0wMS0w MSkKKyBbMiwzKSB8IFsyMDA1LTAxLTAxLDIwMDYtMDEtMDEpCisoMyByb3dzKQorCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAx JywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElO RzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50 IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVz IGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEt MDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAg dGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRo ZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBu byB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZM SUNUIHNwZWNpZmljYXRpb24KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwy MDEwLTAxLTAxKQorKDEgcm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gTk9USElORzsKKy0tIGlkIG1h dGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAy MC0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBE TyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJh bmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RS QUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikg fCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQorIFsxLDIpIHwgWzIwMTAtMDEtMDEsMjAyMC0w MS0wMSkKKyBbMiwzKSB8IFsyMDA1LTAxLTAxLDIwMDYtMDEtMDEpCisoMyByb3dzKQorCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAx LTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBE QVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKK0VSUk9SOiAgdGhlcmUgaXMg bm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05G TElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsK K0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1h dGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBkYXRlIG1hdGNoZXMg YnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0w MScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhD TFVERUQuaWQgKyAnWzQsNSknOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhj bHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRp b24KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQorKDEg cm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlO VCB0ZW1wb3JhbF9ybmdfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1sy LDMpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0 aCBleGNsdXNpb24gY29uc3RyYWludHMKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElD VCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBVUERBVEUgU0VUIGlkID0gRVhD TFVERUQuaWQgKyAnWzMsNCknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90 IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworLS0gZGF0ZSBtYXRjaGVz IGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEt MDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gVVBE QVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK0VSUk9SOiAgT04gQ09ORkxJ Q1QgRE8gVVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg aWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQorKDEgcm93 KQorCistLSB3aXRoIGEgVU5JUVVFIGNvbnN0cmFpbnQ6CitDUkVBVEUgVEFCTEUgdGVtcG9y YWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCUNPTlNUUkFJ TlQgdGVtcG9yYWwzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworVFJVTkNBVEUgdGVtcG9yYWwzOworSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIw MTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0w MScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBpZCBtYXRj aGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEt MDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENP TkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAx MC0wMS0wMSkKKyBbMSwyKSB8IFsyMDEwLTAxLTAxLDIwMjAtMDEtMDEpCisgWzIsMykgfCBb MjAwNS0wMS0wMSwyMDA2LTAxLTAxKQorKDMgcm93cykKKworVFJVTkNBVEUgdGVtcG9yYWwz OworSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEg Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENP TkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5v IHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJ Q1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVy YW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFs aWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNs dXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlv bgorLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAx LTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9U SElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJh aW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkKKygxIHJvdykKKworVFJVTkNBVEUg dGVtcG9yYWwzOworSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7Cist LSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAx JykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIERPIE5PVEhJTkc7 CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwz IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAx JywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNf dXEgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVy YW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNU UkFJTlQgdGVtcG9yYWwzX3VxIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs MyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIw MDAtMDEtMDEsMjAxMC0wMS0wMSkKKyBbMSwyKSB8IFsyMDEwLTAxLTAxLDIwMjAtMDEtMDEp CisgWzIsMykgfCBbMjAwNS0wMS0wMSwyMDA2LTAxLTAxKQorKDMgcm93cykKKworVFJVTkNB VEUgdGVtcG9yYWwzOworSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7 CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBF WENMVURFRC5pZCArICdbMiwzKSc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBl eGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNh dGlvbgorLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0w MS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQ REFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CitFUlJPUjogIHRoZXJlIGlz IG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09O RkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywg ZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsK K0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1h dGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIp IHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkKKygxIHJvdykKKworVFJVTkNBVEUgdGVtcG9y YWwzOworSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRo IGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9O IENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIERPIFVQREFURSBTRVQgaWQg PSBFWENMVURFRC5pZCArICdbMiwzKSc7CitFUlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFU RSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzCistLSBpZCBtYXRj aGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEt MDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gVVBEQVRF IFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1Qg RE8gVVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKKy0t IGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScs ICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWwzX3Vx IERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitFUlJPUjogIE9O IENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0 cmFpbnRzCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkKKygx IHJvdykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLQogLS0gdGVzdCBGSyBkZXBlbmRl bmNpZXMKIC0tCiAtLSBjYW4ndCBkcm9wIGEgcmFuZ2UgcmVmZXJlbmNlZCBieSBhbiBGSywg dW5sZXNzIHdpdGggQ0FTQ0FERQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292 ZXJsYXBzLnNxbAppbmRleCBkYTJiN2YxOWE4NS4uZWM0Nzg0NjU5NGUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC0zMTUsNiArMzE1LDEx OSBAQCBTRUxFQ1QgKiBGUk9NIHRwMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBTRUxFQ1Qg KiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBEUk9QIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkOwogCistLQorLS0gT04gQ09ORkxJQ1QKKy0tCisKK1RSVU5DQVRFIHRl bXBvcmFsX3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykp OworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQg bm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykp IE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05G TElDVCBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElD VCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04g Q09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWxf cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3 aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAx JykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJ Tkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEw LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1w b3JhbF9ybmdfcGsgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZM SUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRF IHRlbXBvcmFsX3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAx JykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VU IGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29u ZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENP TkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCAr ICdbMyw0KSc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFu Z2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlk X2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitUUlVOQ0FU RSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0w MScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywg JzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdf cGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKKy0tIGlkIG1h dGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAy MC0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBE TyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworLS0gZGF0ZSBtYXRj aGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYt MDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8g VVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0gd2l0aCBhIFVOSVFV RSBjb25zdHJhaW50OgorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIFVO SVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworVFJVTkNBVEUgdGVt cG9yYWwzOworSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3 aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykp IE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1Qg RE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5n ZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RS VU5DQVRFIHRlbXBvcmFsMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAx JykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0g aWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcy MDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7Cist LSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEn LCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5H OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitU UlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0w MScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIw MDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8g Tk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRl bXBvcmFsM191cSBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMp JywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1Qg T04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWwz OworSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEg Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENP TkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCAr ICdbMiwzKSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkg RE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRhdGUgbWF0 Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBF WENMVURFRC5pZCArICdbNCw1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsMzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQg SU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJB SU5UIHRlbXBvcmFsM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIs MyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0w MS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWwzX3VxIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CistLSBk YXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBE TyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIHRlbXBv cmFsMzsKKwogLS0KIC0tIHRlc3QgRksgZGVwZW5kZW5jaWVzCiAtLQotLSAKMi40Mi4wCgo= --------------ziSDE9wf0VcQM6e0tLpTHN8Z Content-Type: text/x-patch; charset=UTF-8; name="v2-0002-Add-test-for-REPLICA-IDENTITY-with-a-temporal-key.patch" Content-Disposition: attachment; filename*0="v2-0002-Add-test-for-REPLICA-IDENTITY-with-a-temporal-key.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjNGJkMDQwNDU2OGJmMGIzMzMxNjVkZjQyNDE1YzZhMWNlOTgwYTFlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgMjYgTWFyIDIwMjQgMjI6MzI6NTAgLTA3 MDAKU3ViamVjdDogW1BBVENIIHYyIDIvNF0gQWRkIHRlc3QgZm9yIFJFUExJQ0EgSURFTlRJ VFkgd2l0aCBhIHRlbXBvcmFsIGtleQoKWW91IGNhbiBvbmx5IHVzZSBSRVBMSUNBIElERU5U SVRZIFVTSU5HIElOREVYIHdpdGggYSB1bmlxdWUgYi10cmVlCmluZGV4LiBUaGlzIGNvbW1p dCBqdXN0IGFkZHMgYSB0ZXN0IHNob3dpbmcgdGhhdCB5b3UgY2Fubm90IHVzZSBpdCB3aXRo CmEgV0lUSE9VVCBPVkVSTEFQUyBpbmRleCAod2hpY2ggaXMgR2lTVCkuCi0tLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCB8IDQgKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgICB8IDQgKysrKwog MiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCA5YzE1N2FkNjViMy4u ZDQ1MTM0M2FjZmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0 aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRo b3V0X292ZXJsYXBzLm91dApAQCAtNjI0LDYgKzYyNCwxMCBAQCBTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAoMSByb3cpCiAKIERST1AgVEFCTEUg dGVtcG9yYWwzOworLS0gQUxURVIgVEFCTEUgUkVQTElDQSBJREVOVElUWQorLS0gKHNob3Vs ZCBmYWlsKQorQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nIFJFUExJQ0EgSURFTlRJVFkgVVNJ TkcgSU5ERVggdGVtcG9yYWxfcm5nX3BrOworRVJST1I6ICBjYW5ub3QgdXNlIG5vbi11bmlx dWUgaW5kZXggInRlbXBvcmFsX3JuZ19wayIgYXMgcmVwbGljYSBpZGVudGl0eQogLS0KIC0t IHRlc3QgRksgZGVwZW5kZW5jaWVzCiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRo b3V0X292ZXJsYXBzLnNxbAppbmRleCBlYzQ3ODQ2NTk0ZS4uNGQ5NTNiZTMwNmYgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC00MjgsNiAr NDI4LDEwIEBAIFNFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAKKy0tIEFMVEVSIFRBQkxFIFJFUExJQ0Eg SURFTlRJVFkKKy0tIChzaG91bGQgZmFpbCkKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBS RVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHRlbXBvcmFsX3JuZ19wazsKKwogLS0KIC0t IHRlc3QgRksgZGVwZW5kZW5jaWVzCiAtLQotLSAKMi40Mi4wCgo= --------------ziSDE9wf0VcQM6e0tLpTHN8Z Content-Type: text/x-patch; charset=UTF-8; name="v2-0003-Don-t-treat-WITHOUT-OVERLAPS-indexes-as-unique-in.patch" Content-Disposition: attachment; filename*0="v2-0003-Don-t-treat-WITHOUT-OVERLAPS-indexes-as-unique-in.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3ZTgwYzUwM2QzYTE3OTMxNTgxMGQ2MTU4N2I5ZjE4NDYyZjc3MmY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgMiBBcHIgMjAyNCAxNTozOTowNCAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggdjIgMy80XSBEb24ndCB0cmVhdCBXSVRIT1VUIE9WRVJMQVBT IGluZGV4ZXMgYXMgdW5pcXVlIGluCiBwbGFubmVyCgpCZWNhdXNlIHRoZSBzcGVjaWFsIHJh bmdldHlwZSAnZW1wdHknIG5ldmVyIG92ZXJsYXBzIGFub3RoZXIgdmFsdWUsIGl0CmlzIHBv c3NpYmxlIGZvciBXSVRIT1VUIE9WRVJMQVBTIHRhYmxlcyB0byBoYXZlIHR3byByb3dzIHdp dGggdGhlIHNhbWUKa2V5LCBkZXNwaXRlIGJlaW5nIGluZGlzdW5pcXVlLCBpZiB0aGUgYXBw bGljYXRpb24tdGltZSByYW5nZSBpcwonZW1wdHknLiBTbyB0byBiZSBzYWZlIHdlIHNob3Vs ZCBub3QgdHJlYXQgV0lUSE9VVCBPVkVSTEFQUyBpbmRleGVzIGFzCnVuaXF1ZSBpbiBhbnkg cHJvb2ZzLgoKVGhpcyBzdGlsbCBuZWVkcyBhIHRlc3QsIGJ1dCBJJ20gaGF2aW5nIHRyb3Vi bGUgZmluZGluZyBhIHF1ZXJ5IHRoYXQKZ2l2ZXMgd3JvbmcgcmVzdWx0cy4KLS0tCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0aC5jICAgICB8IDUgKysrLS0KIHNyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL2FuYWx5emVqb2lucy5jIHwgNiArKystLS0KIHNyYy9i YWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYyAgICAgIHwgMSArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICB8IDIgKysKIDQgZmlsZXMgY2hhbmdl ZCwgOSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wYXRoL2luZHhwYXRoLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGF0aC9pbmR4cGF0aC5jCmluZGV4IDIyMzBiMTMxMDQ3Li5mM2E5MzgzNGVmMiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvaW5keHBhdGguYworKysgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0aC5jCkBAIC0zNTE1LDEzICszNTE1 LDE0IEBAIHJlbGF0aW9uX2hhc191bmlxdWVfaW5kZXhfZXh0KFBsYW5uZXJJbmZvICpyb290 LCBSZWxPcHRJbmZvICpyZWwsCiAKIAkJLyoKIAkJICogSWYgdGhlIGluZGV4IGlzIG5vdCB1 bmlxdWUsIG9yIG5vdCBpbW1lZGlhdGVseSBlbmZvcmNlZCwgb3IgaWYgaXQncwotCQkgKiBh IHBhcnRpYWwgaW5kZXgsIGl0J3MgdXNlbGVzcyBoZXJlLiAgV2UncmUgdW5hYmxlIHRvIG1h a2UgdXNlIG9mCisJCSAqIGEgcGFydGlhbCBpbmRleCwgb3IgaWYgaXQncyBhIFdJVEhPVVQg T1ZFUkxBUFMgaW5kZXggKHNvIG5vdAorCQkgKiBsaXRlcmFsbHkgdW5pcXVlKSwgaXQncyB1 c2VsZXNzIGhlcmUuICBXZSdyZSB1bmFibGUgdG8gbWFrZSB1c2Ugb2YKIAkJICogcHJlZE9L IHBhcnRpYWwgdW5pcXVlIGluZGV4ZXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQKIAkJICogY2hl Y2tfaW5kZXhfcHJlZGljYXRlcygpIGFsc28gbWFrZXMgdXNlIG9mIGpvaW4gcHJlZGljYXRl cyB0bwogCQkgKiBkZXRlcm1pbmUgaWYgdGhlIHBhcnRpYWwgaW5kZXggaXMgdXNhYmxlLiBI ZXJlIHdlIG5lZWQgcHJvb2ZzIHRoYXQKIAkJICogaG9sZCB0cnVlIGJlZm9yZSBhbnkgam9p bnMgYXJlIGV2YWx1YXRlZC4KIAkJICovCi0JCWlmICghaW5kLT51bmlxdWUgfHwgIWluZC0+ aW1tZWRpYXRlIHx8IGluZC0+aW5kcHJlZCAhPSBOSUwpCisJCWlmICghaW5kLT51bmlxdWUg fHwgIWluZC0+aW1tZWRpYXRlIHx8IGluZC0+aW5kcHJlZCAhPSBOSUwgfHwgaW5kLT5oYXNw ZXJpb2QpCiAJCQljb250aW51ZTsKIAogCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vYW5hbHl6ZWpvaW5zLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9hbmFseXplam9pbnMuYwppbmRleCA1MDZmY2NkMjBjOS4uM2QzMzJlMjA4ZjEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2FuYWx5emVqb2lucy5jCisr KyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2FuYWx5emVqb2lucy5jCkBAIC04NDgs OCArODQ4LDggQEAgcmVsX3N1cHBvcnRzX2Rpc3RpbmN0bmVzcyhQbGFubmVySW5mbyAqcm9v dCwgUmVsT3B0SW5mbyAqcmVsKQogCQkgKiBGb3IgYSBwbGFpbiByZWxhdGlvbiwgd2Ugb25s eSBrbm93IGhvdyB0byBwcm92ZSB1bmlxdWVuZXNzIGJ5CiAJCSAqIHJlZmVyZW5jZSB0byB1 bmlxdWUgaW5kZXhlcy4gIE1ha2Ugc3VyZSB0aGVyZSdzIGF0IGxlYXN0IG9uZQogCQkgKiBz dWl0YWJsZSB1bmlxdWUgaW5kZXguICBJdCBtdXN0IGJlIGltbWVkaWF0ZWx5IGVuZm9yY2Vk LCBhbmQgbm90IGEKLQkJICogcGFydGlhbCBpbmRleC4gKEtlZXAgdGhlc2UgY29uZGl0aW9u cyBpbiBzeW5jIHdpdGgKLQkJICogcmVsYXRpb25faGFzX3VuaXF1ZV9pbmRleF9mb3IhKQor CQkgKiBwYXJ0aWFsIGluZGV4LCBhbmQgbm90IFdJVEhPVVQgT1ZFUkxBUFMgKEtlZXAgdGhl c2UgY29uZGl0aW9ucworCQkgKiBpbiBzeW5jIHdpdGggcmVsYXRpb25faGFzX3VuaXF1ZV9p bmRleF9mb3IhKQogCQkgKi8KIAkJTGlzdENlbGwgICAqbGM7CiAKQEAgLTg1Nyw3ICs4NTcs NyBAQCByZWxfc3VwcG9ydHNfZGlzdGluY3RuZXNzKFBsYW5uZXJJbmZvICpyb290LCBSZWxP cHRJbmZvICpyZWwpCiAJCXsKIAkJCUluZGV4T3B0SW5mbyAqaW5kID0gKEluZGV4T3B0SW5m byAqKSBsZmlyc3QobGMpOwogCi0JCQlpZiAoaW5kLT51bmlxdWUgJiYgaW5kLT5pbW1lZGlh dGUgJiYgaW5kLT5pbmRwcmVkID09IE5JTCkKKwkJCWlmIChpbmQtPnVuaXF1ZSAmJiBpbmQt PmltbWVkaWF0ZSAmJiBpbmQtPmluZHByZWQgPT0gTklMICYmICFpbmQtPmhhc3BlcmlvZCkK IAkJCQlyZXR1cm4gdHJ1ZTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci91dGlsL3BsYW5jYXQuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3Bs YW5jYXQuYwppbmRleCBhMzk4ZDdhNzhkMS4uNDI5YjBhMjg0ZjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKQEAgLTQ1Nyw2ICs0NTcsNyBAQCBnZXRfcmVsYXRp b25faW5mbyhQbGFubmVySW5mbyAqcm9vdCwgT2lkIHJlbGF0aW9uT2JqZWN0SWQsIGJvb2wg aW5ocGFyZW50LAogCQkJaW5mby0+cHJlZE9LID0gZmFsc2U7CS8qIHNldCBsYXRlciwgaW4g aW5keHBhdGguYyAqLwogCQkJaW5mby0+dW5pcXVlID0gaW5kZXgtPmluZGlzdW5pcXVlOwog CQkJaW5mby0+aW1tZWRpYXRlID0gaW5kZXgtPmluZGltbWVkaWF0ZTsKKwkJCWluZm8tPmhh c3BlcmlvZCA9IGluZGV4LT5pbmRpc3VuaXF1ZSAmJiBpbmRleC0+aW5kaXNleGNsdXNpb247 CiAJCQlpbmZvLT5oeXBvdGhldGljYWwgPSBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0 aG5vZGVzLmgKaW5kZXggYjgxNDFmMTQxYWEuLjEzNDIyOTUxMTY0IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXRobm9kZXMuaApAQCAtMTE3Niw2ICsxMTc2LDggQEAgc3RydWN0IEluZGV4T3B0SW5mbwog CWJvb2wJCXVuaXF1ZTsKIAkvKiBpcyB1bmlxdWVuZXNzIGVuZm9yY2VkIGltbWVkaWF0ZWx5 PyAqLwogCWJvb2wJCWltbWVkaWF0ZTsKKwkvKiB0cnVlIGlmIGluZGV4IGhhcyBXSVRIT1VU IE9WRVJMQVBTICovCisJYm9vbAkJaGFzcGVyaW9kOwogCS8qIHRydWUgaWYgaW5kZXggZG9l c24ndCByZWFsbHkgZXhpc3QgKi8KIAlib29sCQloeXBvdGhldGljYWw7CiAKLS0gCjIuNDIu MAoK --------------ziSDE9wf0VcQM6e0tLpTHN8Z Content-Type: text/x-patch; charset=UTF-8; name="v2-0004-Add-CHECK-NOT-isempty-constraint-to-PRIMARY-KEYs-.patch" Content-Disposition: attachment; filename*0="v2-0004-Add-CHECK-NOT-isempty-constraint-to-PRIMARY-KEYs-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3MmMzODA4ZjlhMmExOTM2YWM3MmI2NjllMTA2Mzc0YWMwMTFjZTQ5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgOSBBcHIgMjAyNCAyMDo1MjoyMyAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggdjIgNC80XSBBZGQgQ0hFQ0sgKE5PVCBpc2VtcHR5KSBjb25z dHJhaW50IHRvIFBSSU1BUlkgS0VZcwogV0lUSE9VVCBPVkVSTEFQUwoKVGhpcyBpcyBuZWNl c3NhcnkgYmVjYXVzZSAnZW1wdHknICYmICdlbXB0eScgaXMgZmFsc2UgKGxpa2V3aXNlIHdp dGgKbXVsdGlyYW5nZXMpLCB3aGljaCBtZWFucyB5b3UgY2FuIGdldCBtdWx0aXBsZSBpZGVu dGljYWwgcm93cyBsaWtlICg1LAonZW1wdHknKS4gVGhhdCB3aWxsIGdpdmUgd3JvbmcgcmVz dWx0cyB1c2luZyB0aGUgUEsgdG8gdHJlYXQgb3RoZXIKY29sdW1ucyBhcyBmdW5jdGlvbmFs IGRlcGVuZGVuY2llcyBpbiBhIEdST1VQIEJZLCBhbmQgbWF5YmUgZWxzZXdoZXJlLgoKV2Ug ZG9uJ3QgYWRkIHN1Y2ggYSBjb25zdHJhaW50IGZvciBVTklRVUUgY29uc3RyYWludHMsIGp1 c3QgYXMgd2UgZG9uJ3QKZm9yY2UgYWxsIHRoZWlyIGNvbHVtbnMgdG8gYmUgTk9UIE5VTEwu IChUaGUgc2l0dWF0aW9uIGlzIGFuYWxvZ291cy4pCgpUaGlzIHVwZGF0ZXMgdGhlIGRvY3Mg dG9vIHdoaWNoIHByZXZpb3VzbHkgc2FpZCB5b3UgY291bGQgdXNlIGFueSB0eXBlCmluIFdJ VEhPVVQgT1ZFUkxBUFMsIGlmIGl0cyBHaVNUIG9wY2xhc3MgaW1wbGVtZW50ZWQgc3RyYXRu dW0uIE5vdyBvbmx5CnJhbmdlIGFuZCBtdWx0aXJhbmdlIHR5cGVzIGFyZSBhbGxvd2VkLCBz aW5jZSBvbmx5IHRoZXkgaGF2ZSBpc2VtcHR5LgooV2Ugc3RpbGwgbmVlZCBzdHJhdG51bSBm b3IgdGhlIG5vbi1XSVRIT1VUIE9WRVJMQVBTIGNvbHVtbnMgdGhvdWdoLikKLS0tCiBkb2Mv c3JjL3NnbWwvZ2lzdC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgLQogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICA1ICstCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgODQgKysr KysrKysrKysrLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQg ICAgIHwgMTE0ICsrKysrKysrKysrKystLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0 aG91dF9vdmVybGFwcy5zcWwgICAgIHwgIDY5ICsrKysrKystLS0tCiA1IGZpbGVzIGNoYW5n ZWQsIDIxNCBpbnNlcnRpb25zKCspLCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvZ2lzdC5zZ21sIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAppbmRleCBk Y2Y5NDMzZmE3OC4uNjM4ZDkxMmRjMmQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0 LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbApAQCAtMTE4Niw5ICsxMTg2LDYg QEAgbXlfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKICAgICAgICBwcm92aWRlcyB0 aGlzIGZ1bmN0aW9uIGFuZCBpdCByZXR1cm5zIHJlc3VsdHMgZm9yCiAgICAgICAgPGxpdGVy YWw+UlRFcXVhbFN0cmF0ZWd5TnVtYmVyPC9saXRlcmFsPiwgaXQgY2FuIGJlIHVzZWQgaW4g dGhlCiAgICAgICAgbm9uLTxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+IHBh cnQocykgb2YgYW4gaW5kZXggY29uc3RyYWludC4KLSAgICAgICBJZiBpdCByZXR1cm5zIHJl c3VsdHMgZm9yIDxsaXRlcmFsPlJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyPC9saXRlcmFsPiwK LSAgICAgICB0aGUgb3BlcmF0b3IgY2xhc3MgY2FuIGJlIHVzZWQgaW4gdGhlIDxsaXRlcmFs PldJVEhPVVQKLSAgICAgICBPVkVSTEFQUzwvbGl0ZXJhbD4gcGFydCBvZiBhbiBpbmRleCBj b25zdHJhaW50LgogICAgICAgPC9wYXJhPgogCiAgICAgICA8cGFyYT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IDAyZjMxZDJkNmZkLi44MDIyZTBlMWY2NyAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC05OTIsMTAgKzk5Miw3IEBAIFdJ VEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xp dGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICA8bGl0ZXJhbD5VTklRVUUgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTwvbGl0ZXJhbD4gYmVoYXZlcyBsaWtlCiAgICAg ICA8bGl0ZXJhbD5FWENMVURFIFVTSU5HIEdJU1QgKGlkIFdJVEggPSwgdmFsaWRfYXQgV0lU SAogICAgICAgJmFtcDsmYW1wOyk8L2xpdGVyYWw+LiAgVGhlIDxsaXRlcmFsPldJVEhPVVQg T1ZFUkxBUFM8L2xpdGVyYWw+IGNvbHVtbgotICAgICAgbXVzdCBoYXZlIGEgcmFuZ2Ugb3Ig bXVsdGlyYW5nZSB0eXBlLiAgKFRlY2huaWNhbGx5LCBhbnkgdHlwZSBpcyBhbGxvd2VkCi0g ICAgICB3aG9zZSBkZWZhdWx0IEdpU1Qgb3BjbGFzcyBpbmNsdWRlcyBhbiBvdmVybGFwcyBv cGVyYXRvci4gIFNlZSB0aGUKLSAgICAgIDxsaXRlcmFsPnN0cmF0bnVtPC9saXRlcmFsPiBz dXBwb3J0IGZ1bmN0aW9uIHVuZGVyIDx4cmVmCi0gICAgICBsaW5rZW5kPSJnaXN0LWV4dGVu c2liaWxpdHkiLz4gZm9yIGRldGFpbHMuKSAgVGhlIG5vbi08bGl0ZXJhbD5XSVRIT1VUCisg ICAgICBtdXN0IGhhdmUgYSByYW5nZSBvciBtdWx0aXJhbmdlIHR5cGUuICBUaGUgbm9uLTxs aXRlcmFsPldJVEhPVVQKICAgICAgIE9WRVJMQVBTPC9saXRlcmFsPiBjb2x1bW5zIG9mIHRo ZSBjb25zdHJhaW50IGNhbiBiZSBhbnkgdHlwZSB0aGF0IGNhbiBiZQogICAgICAgY29tcGFy ZWQgZm9yIGVxdWFsaXR5IGluIGEgR2lTVCBpbmRleC4gIEJ5IGRlZmF1bHQsIG9ubHkgcmFu Z2UgdHlwZXMgYXJlCiAgICAgICBzdXBwb3J0ZWQsIGJ1dCB5b3UgY2FuIHVzZSBvdGhlciB0 eXBlcyBieSBhZGRpbmcgdGhlIDx4cmVmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQu YwppbmRleCBmZWYwODRmNWQ1Mi4uODRlOTYwZjg5N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3V0aWxjbWQuYwpAQCAtMjI5MSw2ICsyMjkxLDggQEAgdHJhbnNmb3JtSW5kZXhDb25z dHJhaW50cyhDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogICoKICAqIEZvciBhIFBSSU1BUlkg S0VZIGNvbnN0cmFpbnQsIHdlIGFkZGl0aW9uYWxseSBmb3JjZSB0aGUgY29sdW1ucyB0byBi ZQogICogbWFya2VkIGFzIG5vdC1udWxsLCB3aXRob3V0IHByb2R1Y2luZyBhIG5vdC1udWxs IGNvbnN0cmFpbnQuCisgKiBJZiB0aGUgUFJJTUFSWSBLRVkgaGFzIFdJVEhPVVQgT1ZFUkxB UFMgd2UgYWxzbyBhZGQgYW4gaW50ZXJuYWwKKyAqIENIRUNLIGNvbnN0cmFpbnQgdG8gcHJl dmVudCBlbXB0eSByYW5nZXMvbXVsdGlyYW5nZXMuCiAgKi8KIHN0YXRpYyBJbmRleFN0bXQg KgogdHJhbnNmb3JtSW5kZXhDb25zdHJhaW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENy ZWF0ZVN0bXRDb250ZXh0ICpjeHQpCkBAIC0yNjczLDYgKzI2NzUsNDggQEAgdHJhbnNmb3Jt SW5kZXhDb25zdHJhaW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQpCiAJCQkJfQogCQkJfQogCisJCQkvKgorCQkJICogVGhlIFdJVEhPVVQgT1ZF UkxBUFMgcGFydCAoaWYgYW55KSBtdXN0IGJlCisJCQkgKiBhIHJhbmdlIG9yIG11bHRpcmFu Z2UgdHlwZS4KKwkJCSAqLworCQkJaWYgKGNvbnN0cmFpbnQtPndpdGhvdXRfb3ZlcmxhcHMg JiYgbGMgPT0gbGlzdF9sYXN0X2NlbGwoY29uc3RyYWludC0+a2V5cykpCisJCQl7CisJCQkJ T2lkIHR5cGlkID0gSW52YWxpZE9pZDsKKworCQkJCWlmICghZm91bmQgJiYgY3h0LT5pc2Fs dGVyKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogTG9vayB1cCB0aGUgY29sdW1uIHR5cGUg b24gZXhpc3RpbmcgdGFibGUuCisJCQkJCSAqIElmIHdlIGNhbid0IGZpbmQgaXQsIGxldCB0 aGluZ3MgZmFpbCBpbiBEZWZpbmVJbmRleC4KKwkJCQkJICovCisJCQkJCVJlbGF0aW9uIHJl bCA9IGN4dC0+cmVsOworCQkJCQlmb3IgKGludCBpID0gMDsgaSA8IHJlbC0+cmRfYXR0LT5u YXR0czsgaSsrKQorCQkJCQl7CisJCQkJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyID0gVHVw bGVEZXNjQXR0cihyZWwtPnJkX2F0dCwgaSk7CisJCQkJCQljb25zdCBjaGFyICphdHRuYW1l OworCisJCQkJCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQorCQkJCQkJCWJyZWFrOworCisJ CQkJCQlhdHRuYW1lID0gTmFtZVN0cihhdHRyLT5hdHRuYW1lKTsKKwkJCQkJCWlmIChzdHJj bXAoYXR0bmFtZSwga2V5KSA9PSAwKQorCQkJCQkJeworCQkJCQkJCXR5cGlkID0gYXR0ci0+ YXR0dHlwaWQ7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9CisJCQkJ ZWxzZQorCQkJCQl0eXBpZCA9IHR5cGVuYW1lVHlwZUlkKE5VTEwsIGNvbHVtbi0+dHlwZU5h bWUpOworCisJCQkJaWYgKE9pZElzVmFsaWQodHlwaWQpICYmICF0eXBlX2lzX3JhbmdlKHR5 cGlkKSAmJiAhdHlwZV9pc19tdWx0aXJhbmdlKHR5cGlkKSkKKwkJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJ CQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGluIFdJVEhPVVQgT1ZFUkxBUFMgaXMgbm90IGEg cmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlIiwga2V5KSwKKwkJCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKGN4dC0+cHN0YXRlLCBjb25zdHJhaW50LT5sb2NhdGlvbikpKTsKKwkJCX0KKwor CiAJCQkvKiBPSywgYWRkIGl0IHRvIHRoZSBpbmRleCBkZWZpbml0aW9uICovCiAJCQlpcGFy YW0gPSBtYWtlTm9kZShJbmRleEVsZW0pOwogCQkJaXBhcmFtLT5uYW1lID0gcHN0cmR1cChr ZXkpOwpAQCAtMjcwOSw4ICsyNzUzLDQ2IEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChD b25zdHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCiAJCQkv KiBXSVRIT1VUIE9WRVJMQVBTIHJlcXVpcmVzIGEgR2lTVCBpbmRleCAqLwogCQkJaW5kZXgt PmFjY2Vzc01ldGhvZCA9ICJnaXN0IjsKLQkJfQogCisJCQlpZiAoY29uc3RyYWludC0+Y29u dHlwZSA9PSBDT05TVFJfUFJJTUFSWSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIElmIHRoZSBQ UklNQVJZIEtFWSBoYXMgV0lUSE9VVCBPVkVSTEFQUywgd2UgbXVzdAorCQkJCSAqIHByZXZl bnQgZW1wdGllcyBhcyB3ZWxsIGFzIE5VTExzLiBTaW5jZQorCQkJCSAqICdlbXB0eScgJiYg J2VtcHR5JyBpcyBmYWxzZSwgeW91IGNvdWxkIGluc2VydCBhIHZhbHVlCisJCQkJICogbGlr ZSAoNSwgJ2VtcHR5JykgbW9yZSB0aGFuIG9uY2UuIEZvciBjb252ZW5pZW5jZQorCQkJCSAq IHdlIGFkZCB0aGlzIHRvIG5vdG51bGxjbWRzIChieSBhbmFsb2d5KS4KKwkJCQkgKi8KKwkJ CQljaGFyCQkJICAgKmtleSA9IHN0clZhbChsbGFzdChjb25zdHJhaW50LT5rZXlzKSk7CisJ CQkJQWx0ZXJUYWJsZUNtZAkgICAqbm90ZW1wdHljbWQgPSBtYWtlTm9kZShBbHRlclRhYmxl Q21kKTsKKwkJCQlDb25zdHJhaW50CQkgICAqY2hlY2tjb24gPSBtYWtlTm9kZShDb25zdHJh aW50KTsKKwkJCQlDb2x1bW5SZWYJCSAgICpjb2w7CisJCQkJRnVuY0NhbGwJCSAgICpmdW5j OworCQkJCU5vZGUJCQkgICAqZXhwcjsKKworCQkJCWNvbCA9IG1ha2VOb2RlKENvbHVtblJl Zik7CisJCQkJY29sLT5maWVsZHMgPSBsaXN0X21ha2UxKG1ha2VTdHJpbmcoa2V5KSk7CisJ CQkJZnVuYyA9IG1ha2VGdW5jQ2FsbChTeXN0ZW1GdW5jTmFtZSgiaXNlbXB0eSIpLCBsaXN0 X21ha2UxKGNvbCksCisJCQkJCQkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwgLTEpOworCQkJ CWV4cHIgPSAoTm9kZSAqKSBtYWtlQm9vbEV4cHIoTk9UX0VYUFIsIGxpc3RfbWFrZTEoZnVu YyksIC0xKTsKKworCQkJCWNoZWNrY29uLT5jb25uYW1lID0gcHNwcmludGYoIiVzX25vdF9l bXB0eSIsIGtleSk7CisJCQkJY2hlY2tjb24tPmNvbnR5cGUgPSBDT05TVFJfQ0hFQ0s7CisJ CQkJY2hlY2tjb24tPnJhd19leHByID0gZXhwcjsKKwkJCQljaGVja2Nvbi0+Y29va2VkX2V4 cHIgPSBOVUxMOworCQkJCWNoZWNrY29uLT5pc19ub19pbmhlcml0ID0gZmFsc2U7CisJCQkJ Y2hlY2tjb24tPmRlZmVycmFibGUgPSBmYWxzZTsKKwkJCQljaGVja2Nvbi0+aW5pdGRlZmVy cmVkID0gZmFsc2U7CisJCQkJY2hlY2tjb24tPnNraXBfdmFsaWRhdGlvbiA9IGZhbHNlOwor CQkJCWNoZWNrY29uLT5pbml0aWFsbHlfdmFsaWQgPSB0cnVlOworCQkJCWNoZWNrY29uLT5s b2NhdGlvbiA9IC0xOworCisJCQkJbm90ZW1wdHljbWQtPnN1YnR5cGUgPSBBVF9BZGRDb25z dHJhaW50OworCQkJCW5vdGVtcHR5Y21kLT5kZWYgPSAoTm9kZSAqKSBjaGVja2NvbjsKKwor CQkJCW5vdG51bGxjbWRzID0gbGFwcGVuZChub3RudWxsY21kcywgbm90ZW1wdHljbWQpOwor CQkJfQorCQl9CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3dpdGhvdXRfb3ZlcmxhcHMub3V0CmluZGV4IGQ0NTEzNDNhY2ZhLi5mNWM1OTZhZDY1MSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMu b3V0CkBAIC0yNyw4ICsyNyw5IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAogCXZh bGlkX2F0IFRFWFQsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKTsKLUVSUk9SOiAgZGF0YSB0eXBl IHRleHQgaGFzIG5vIGRlZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIGFjY2VzcyBtZXRob2Qg Imdpc3QiCi1ISU5UOiAgWW91IG11c3Qgc3BlY2lmeSBhbiBvcGVyYXRvciBjbGFzcyBmb3Ig dGhlIGluZGV4IG9yIGRlZmluZSBhIGRlZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBk YXRhIHR5cGUuCitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIGluIFdJVEhPVVQgT1ZFUkxB UFMgaXMgbm90IGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlCitMSU5FIDQ6ICBDT05TVFJB SU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVS4u LgorICAgICAgICAgXgogLS0gUEsgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSByYW5nZToKIENS RUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAogCS0tIFNpbmNlIHdlIGNhbid0IGRlcGVuZCBv biBoYXZpbmcgYnRyZWVfZ2lzdCBoZXJlLApAQCAtNDYsNiArNDcsOCBAQCBDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcm5nICgKICB2YWxpZF9hdCB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8 IG5vdCBudWxsIHwgCiBJbmRleGVzOgogICAgICJ0ZW1wb3JhbF9ybmdfcGsiIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRz OgorICAgICJ2YWxpZF9hdF9ub3RfZW1wdHkiIENIRUNLIChOT1QgaXNlbXB0eSh2YWxpZF9h dCkpCiAKIFNFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3Ry YWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7CiAgICAgICAgICAgICBw Z19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAKQEAgLTc2LDYgKzc5LDggQEAgQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3JuZzIgKAogIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwgICAg ICAgICAgIHwgbm90IG51bGwgfCAKIEluZGV4ZXM6CiAgICAgInRlbXBvcmFsX3JuZzJfcGsi IFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0No ZWNrIGNvbnN0cmFpbnRzOgorICAgICJ2YWxpZF9hdF9ub3RfZW1wdHkiIENIRUNLIChOT1Qg aXNlbXB0eSh2YWxpZF9hdCkpCiAKIFNFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsn OwogICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAg CkBAIC0xMTMsNiArMTE4LDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX21sdHJuZyAoCiAg dmFsaWRfYXQgfCBkYXRlbXVsdGlyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiBJ bmRleGVzOgogICAgICJ0ZW1wb3JhbF9tbHRybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ2YWxp ZF9hdF9ub3RfZW1wdHkiIENIRUNLIChOT1QgaXNlbXB0eSh2YWxpZF9hdCkpCiAKIC0tIFBL IHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIG11bHRpcmFuZ2U6CiAtLSBXZSBkb24ndCBkcm9w IHRoaXMgdGFibGUgYmVjYXVzZSB0ZXN0cyBiZWxvdyBhbHNvIG5lZWQgbXVsdGlwbGUgc2Nh bGFyIGNvbHVtbnMuCkBAIC0xMzEsNiArMTM4LDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X21sdHJuZzIgKAogIHZhbGlkX2F0IHwgZGF0ZW11bHRpcmFuZ2UgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8IAogSW5kZXhlczoKICAgICAidGVtcG9yYWxfbWx0cm5nMl9wayIgUFJJTUFS WSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29u c3RyYWludHM6CisgICAgInZhbGlkX2F0X25vdF9lbXB0eSIgQ0hFQ0sgKE5PVCBpc2VtcHR5 KHZhbGlkX2F0KSkKIAogU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nMl9wayc7CiAg ICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAKQEAg LTE2NCw4ICsxNzMsOSBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCiAJdmFsaWRf YXQgVEVYVCwKIAlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKICk7Ci1FUlJPUjogIGRhdGEgdHlwZSB0ZXh0IGhh cyBubyBkZWZhdWx0IG9wZXJhdG9yIGNsYXNzIGZvciBhY2Nlc3MgbWV0aG9kICJnaXN0Igot SElOVDogIFlvdSBtdXN0IHNwZWNpZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRl eCBvciBkZWZpbmUgYSBkZWZhdWx0IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBl LgorRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiBpbiBXSVRIT1VUIE9WRVJMQVBTIGlzIG5v dCBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgdHlwZQorTElORSA0OiAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1YuLi4KKyAgICAg ICAgIF4KIC0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIHJhbmdlOgogQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3JuZzMgKAogCWlkIGludDRyYW5nZSwKQEAgLTMyMCw2ICszMzAs OSBAQCBERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgWzIwMTgtMDEtMDEs MjAxOC0wMS0wNSkpLgogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1u ICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgbm90LW51 bGwgY29uc3RyYWludAogREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKFszLDQpLCBu dWxsKS4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMyw0KScsICdlbXB0eScpOworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAidGVt cG9yYWxfcm5nIiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJ2YWxpZF9hdF9ub3RfZW1w dHkiCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoWzMsNCksIGVtcHR5KS4KIC0t IG9rYXk6CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAn MjAxOC0wMi0wMycpKSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDMtMDMnLCAnMjAxOC0wNC0wNCcpKSk7CkBAIC0zMzUsNiArMzQ4LDkgQEAgREVUQUlMOiAg RmFpbGluZyByb3cgY29udGFpbnMgKG51bGwsIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0p LgogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1szLDQpJywgTlVMTCk7CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJ2YWxpZF9h dCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgbm90LW51bGwgY29u c3RyYWludAogREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKFszLDQpLCBudWxsKS4K K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Myw0KScsICd7fScpOworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAidGVtcG9yYWxf bWx0cm5nIiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJ2YWxpZF9hdF9ub3RfZW1wdHki CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoWzMsNCksIHt9KS4KIFNFTEVDVCAq IEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICAgaWQgICB8 ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgCiAtLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtMzQ0LDYgKzM2MCw1NyBAQCBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X21sdHJuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgWzMsNCkgfCB7WzIwMTgtMDEtMDEs KX0KICg0IHJvd3MpCiAKKy0tCistLSB0ZXN0IFVOSVFVRSBpbnNlcnRzCistLQorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRl cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMn LCAnMjAxOC0wNC0wNCcpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgJ2Vt cHR5Jyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVz IGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ybmczX3VxIgorREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpIGNvbmZs aWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAx LTAyLDIwMTgtMDItMDMpKS4KK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9tbHRybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0 ZW11bHRpcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxIFVOSVFVRSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworLS0gb2theToKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgt MDQtMDQnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCBOVUxMKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAn e30nKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcg a2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9tbHRy bmczX3VxIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAx LTAxLDIwMTgtMDEtMDUpfSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFs aWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAyLDIwMTgtMDItMDMpfSkuCitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgWzEsMikgfCB7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9CisgWzEsMikg fCB7WzIwMTgtMDMtMDMsMjAxOC0wNC0wNCl9CisgWzIsMykgfCB7WzIwMTgtMDEtMDEsMjAx OC0wMS0wNSl9CisgWzMsNCkgfCB7fQorIFszLDQpIHwge1syMDE4LTAxLTAxLCl9CisgWzMs NCkgfCAKKyAgICAgICB8IHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0KKyg3IHJvd3MpCisK K0RST1AgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMzsKIC0tCiAtLSB0ZXN0IGEgcmFuZ2Ugd2l0 aCBib3RoIGEgUEsgYW5kIGEgVU5JUVVFIGNvbnN0cmFpbnQKIC0tCkBAIC0zNzIsNiArNDM5 LDcgQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbDMg QUxURVIgQ09MVU1OIHZhbGlkX2F0IERST1AgTk9UIE5VTEw7CiBFUlJPUjogIGNvbHVtbiAi dmFsaWRfYXQiIGlzIGluIGEgcHJpbWFyeSBrZXkKIEFMVEVSIFRBQkxFIHRlbXBvcmFsMyBB TFRFUiBDT0xVTU4gdmFsaWRfYXQgVFlQRSB0c3R6cmFuZ2UgVVNJTkcgdHN0enJhbmdlKGxv d2VyKHZhbGlkX2F0KSwgdXBwZXIodmFsaWRfYXQpKTsKK05PVElDRTogIG1lcmdpbmcgY29u c3RyYWludCAidmFsaWRfYXRfbm90X2VtcHR5IiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9u CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgUkVOQU1FIENPTFVNTiB2YWxpZF9hdCBUTyB2YWxp ZF90aHJ1OwogQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09MVU1OIHZhbGlkX3RocnU7 CiBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKQEAgLTgwNiw2ICs4NzQsOCBAQCBDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmsyX3JuZzJybmcgKAogIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAogSW5kZXhlczoKICAgICAidGVtcG9yYWxfZmsyX3Ju ZzJybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykK K0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ2YWxpZF9hdF9ub3RfZW1wdHkiIENIRUNLIChO T1QgaXNlbXB0eSh2YWxpZF9hdCkpCiBGb3JlaWduLWtleSBjb25zdHJhaW50czoKICAgICAi dGVtcG9yYWxfZmsyX3JuZzJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMihpZDEs IGlkMiwgUEVSSU9EIHZhbGlkX2F0KQogCkBAIC04NDUsNiArOTE1LDggQEAgQUxURVIgVEFC TEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKICBwYXJlbnRfaWQyIHwgaW50NHJhbmdlIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKIEluZGV4ZXM6CiAgICAgInRlbXBvcmFsX2ZrMl9ybmcy cm5nX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitD aGVjayBjb25zdHJhaW50czoKKyAgICAidmFsaWRfYXRfbm90X2VtcHR5IiBDSEVDSyAoTk9U IGlzZW1wdHkodmFsaWRfYXQpKQogRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CiAgICAgInRl bXBvcmFsX2ZrMl9ybmcycm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50 X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIoaWQxLCBp ZDIsIFBFUklPRCB2YWxpZF9hdCkKIApAQCAtODUyLDYgKzkyNCw3IEBAIEZvcmVpZ24ta2V5 IGNvbnN0cmFpbnRzOgogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogCUFMVEVSIENPTFVNTiB2YWxp ZF9hdCBUWVBFIHRzcmFuZ2UgVVNJTkcgdHNyYW5nZShsb3dlcih2YWxpZF9hdCksIHVwcGVy KHZhbGlkX2F0KSk7CitOT1RJQ0U6ICBtZXJnaW5nIGNvbnN0cmFpbnQgInZhbGlkX2F0X25v dF9lbXB0eSIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZwogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsK IAlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCkBAIC04NjAsNiAr OTMzLDcgQEAgRVJST1I6ICBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19y bmcycm5nX2ZrIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQKIERFVEFJTDogIEtleSBjb2x1bW5z ICJ2YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczog dHNyYW5nZSBhbmQgZGF0ZXJhbmdlLgogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZwogCUFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIGRhdGVyYW5nZSBVU0lORyBkYXRlcmFu Z2UobG93ZXIodmFsaWRfYXQpOjpkYXRlLCB1cHBlcih2YWxpZF9hdCk6OmRhdGUpOworTk9U SUNFOiAgbWVyZ2luZyBjb25zdHJhaW50ICJ2YWxpZF9hdF9ub3RfZW1wdHkiIHdpdGggaW5o ZXJpdGVkIGRlZmluaXRpb24KIC0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5j ZWQgdGFibGU6CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawpAQCAtMTI3Niw2ICsxMzUwLDggQEAgQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nICgKICBwYXJlbnRfaWQyIHwg aW50NHJhbmdlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogSW5kZXhlczoKICAg ICAidGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ2YWxp ZF9hdF9ub3RfZW1wdHkiIENIRUNLIChOT1QgaXNlbXB0eSh2YWxpZF9hdCkpCiBGb3JlaWdu LWtleSBjb25zdHJhaW50czoKICAgICAidGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsi IEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQp IFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMihpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0 KQogCkBAIC0xMzE1LDYgKzEzOTEsOCBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZwogIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJ0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu Z19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hl Y2sgY29uc3RyYWludHM6CisgICAgInZhbGlkX2F0X25vdF9lbXB0eSIgQ0hFQ0sgKE5PVCBp c2VtcHR5KHZhbGlkX2F0KSkKIEZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgogICAgICJ0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZ19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcy KGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCiAKQEAgLTE1MzYsMzQgKzE2MTQsNiBAQCBF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYQogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KIFJPTExCQUNLOwog LS0KLS0tIHRlc3QgRk9SRUlHTiBLRVksIGJveCByZWZlcmVuY2VzIGJveAotLS0gKG5vdCBh bGxvd2VkOiBQRVJJT0QgcGFydCBtdXN0IGJlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSkKLS0t Ci1DUkVBVEUgVEFCTEUgdGVtcG9yYWxfYm94ICgKLSAgaWQgaW50NHJhbmdlLAotICB2YWxp ZF9hdCBib3gsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfYm94X3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKLSk7Ci1cZCB0ZW1wb3JhbF9ib3gKLSAg ICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ib3giCi0gIENvbHVtbiAgfCAg IFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCi0gaWQgICAg ICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAotIHZhbGlkX2F0IHwg Ym94ICAgICAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKLUluZGV4ZXM6Ci0gICAgInRl bXBvcmFsX2JveF9wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQotCi1DUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfYm94MmJveCAoCi0gIGlkIGludDRy YW5nZSwKLSAgdmFsaWRfYXQgYm94LAotICBwYXJlbnRfaWQgaW50NHJhbmdlLAotICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX2JveDJib3hfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ib3gyYm94 X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKLSAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX2JveCAoaWQsIFBFUklPRCB2YWxpZF9hdCkKLSk7Ci1FUlJPUjog IGludmFsaWQgdHlwZSBmb3IgUEVSSU9EIHBhcnQgb2YgZm9yZWlnbiBrZXkKLURFVEFJTDog IE9ubHkgcmFuZ2UgYW5kIG11bHRpcmFuZ2UgYXJlIHN1cHBvcnRlZC4KLS0tCiAtLSBGSyBi ZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlcwogLS0KIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0 aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJs YXBzLnNxbAppbmRleCA0ZDk1M2JlMzA2Zi4uNzYxYjBiYTliZDYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC0yMjYsNiArMjI2LDcgQEAg SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAxLTA1JykpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzMsNCknLCBOVUxMKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMyw0KScsICdlbXB0eScpOwogCiAtLSBva2F5OgogSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOwpAQCAt MjM3LDkgKzIzOCw1NiBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcgogSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwog SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVM TCwgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSkpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1szLDQpJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAne30nKTsKIAogU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCistLQorLS0gdGVzdCBVTklR VUUgaW5zZXJ0cworLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkIGlu dDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9y bmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCist LSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsIE5VTEwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzMsNCknLCBOVUxMKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzMsNCknLCAnZW1wdHknKTsKKworLS0gc2hvdWxkIGZhaWw6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CisKK0RST1AgVEFC TEUgdGVtcG9yYWxfcm5nMzsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX21sdHJuZzMgKAor CWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX21sdHJuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sz LDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChO VUxMLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgJ3t9Jyk7CisKKy0tIHNob3VsZCBmYWls OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1JykpKTsKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmczOworCiAtLQog LS0gdGVzdCBhIHJhbmdlIHdpdGggYm90aCBhIFBLIGFuZCBhIFVOSVFVRSBjb25zdHJhaW50 CiAtLQpAQCAtMTI3MywyNyArMTMyMSw2IEBAIEJFR0lOOwogICBERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogUk9MTEJB Q0s7CiAKLS0tCi0tLSB0ZXN0IEZPUkVJR04gS0VZLCBib3ggcmVmZXJlbmNlcyBib3gKLS0t IChub3QgYWxsb3dlZDogUEVSSU9EIHBhcnQgbXVzdCBiZSBhIHJhbmdlIG9yIG11bHRpcmFu Z2UpCi0tLQotCi1DUkVBVEUgVEFCTEUgdGVtcG9yYWxfYm94ICgKLSAgaWQgaW50NHJhbmdl LAotICB2YWxpZF9hdCBib3gsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfYm94X3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKLSk7Ci1cZCB0ZW1wb3Jh bF9ib3gKLQotQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX2JveDJib3ggKAotICBpZCBpbnQ0 cmFuZ2UsCi0gIHZhbGlkX2F0IGJveCwKLSAgcGFyZW50X2lkIGludDRyYW5nZSwKLSAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ib3gyYm94X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfYm94MmJv eF9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCi0gICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9ib3ggKGlkLCBQRVJJT0QgdmFsaWRfYXQpCi0pOwotCiAtLQog LS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXMKIC0tCi0tIAoyLjQyLjAKCg== --------------ziSDE9wf0VcQM6e0tLpTHN8Z--