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 1rxP7e-008IZr-9E for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Apr 2024 10:36:06 +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 1rxP7b-003Icm-Rg for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Apr 2024 10:36:03 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rxP7b-003Ice-08 for pgsql-hackers@lists.postgresql.org; Thu, 18 Apr 2024 10:36:03 +0000 Received: from mail-yb1-xb31.google.com ([2607:f8b0:4864:20::b31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rxP7T-003RLe-R0 for pgsql-hackers@lists.postgresql.org; Thu, 18 Apr 2024 10:36:01 +0000 Received: by mail-yb1-xb31.google.com with SMTP id 3f1490d57ef6-de46da8ced2so359936276.0 for ; Thu, 18 Apr 2024 03:35:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713436555; x=1714041355; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=tHwAwB0Ti+I05YE2z26mJlvEuOOCeKOgUKnV2SZG/gk=; b=PQTfMqOR+LjLGMrdcSCFWRmb9L44Ht2G3fxllDHZH7iyLF3KcsaHoT3avO2f1YZNw2 mSUnlxkOyZrt+t1EmDbqyq5jC6ul5R7QgT3qrTWEnq3LVNZEsaxE5SDLhoCWyTuSh8bp zKyMHwe4C42C4tqUuAD/fjXWrPX9nOyNZWtZf3jo/5jtr29YWFgOiCpkxUCgWqdiqmeI TdJCtKpmgBjPxyuzEtMogUNnKl+MXIeNylQQfpLutL7QhETQBSjutVlOnFR2CfiD5eTa T5l8pWkYF3wItFzLezUUbpnIWtrOBJMeRW22vyKTEM6LzW46QeJNFG8wqXlaUPD9BqZZ DeSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713436555; x=1714041355; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=tHwAwB0Ti+I05YE2z26mJlvEuOOCeKOgUKnV2SZG/gk=; b=G4OLAWME/g/A8YAdPZpAr5h/YsDYTIU+upwy2HQ9TIITbWBiR0nSwh4Lq2GdK31YnJ 9Bkp3/BMMGnV/FCFBxP7DwRqKkv1LiND8JrEeYypTe/32A/I1EyKBfEugvmrpOvLwM5/ K7AlQa3DbJuDjalroeBxDM1CqfJWvSMnj5jGPQdfhQCLvBPQBwN4FCqwKrDie+gSTtMM RiRGnqP1DOetfP2SjM1ximB0+1qQPQstquE27Pl544MXLiu/hiCwSHAztPl5P+cFhaYS v1jeH9KSHkA/3WfT2lduToRTI60JMk2Q8sB0rtllwuItHsshNC3IYbkVju9aquIw7QpS uUaw== X-Forwarded-Encrypted: i=1; AJvYcCVhHf06rwk93QmBBfGvM4MCxMdnaCHIyKXUkjvUwHzQCFfVaX5zQLDK9acRD1BjOaOR32SYYphDhNLNn7TwwrAjow94LqmVYY5hlTdskGF7wdqM X-Gm-Message-State: AOJu0YygAFEygXP7pXVa8iKOKosgzGesySUrHxfTn+Qd8JFoD/RBUibq mBhSJXrdLBt+g8TTcM7PoveU3IYnKsfDdzovpkpwK6QhRpsQ50QzSvgnyYW7PHaWO5gsMVtSC01 TVTjguA/PJyjwE18PmqyK9oA2wWU= X-Google-Smtp-Source: AGHT+IHLcAnckU+ml7bauKSr43HrBauh2SU8+iXdbZgMOUt0YF3G2hAKDXFl+jHT/bDUzsPcca+9lK9guCljZRMPT1I= X-Received: by 2002:a25:b121:0:b0:dcb:ad22:1b1 with SMTP id g33-20020a25b121000000b00dcbad2201b1mr2257519ybj.3.1713436554831; Thu, 18 Apr 2024 03:35:54 -0700 (PDT) MIME-Version: 1.0 References: <86bfd241-a58c-479a-9a72-2c67a02becf8@postgrespro.ru> <0f655bcd-6487-4179-f9cf-c248efbad510@gmail.com> <56e0000c-6b39-44ce-90b4-d3c3062e408c@postgrespro.ru> In-Reply-To: <56e0000c-6b39-44ce-90b4-d3c3062e408c@postgrespro.ru> From: Alexander Korotkov Date: Thu, 18 Apr 2024 13:35:41 +0300 Message-ID: Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: Dmitry Koval Cc: Alexander Lakhin , Robert Haas , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000032555406165c8928" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000032555406165c8928 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Dmitry! On Mon, Apr 15, 2024 at 6:26=E2=80=AFPM Dmitry Koval wrote: > > Hi! > > > Please, find a my version of this fix attached. > > Is it possible to make a small addition to the file v6-0001 ... .patch > (see attachment)? > > Most important: > 1) Line 19: > > + mergePartName =3D makeRangeVar(cmd->name->schemaname, tmpRelName, -1); > > (temporary table should use the same schema as the partition); > > 2) Lines 116-123: > > +RESET search_path; > + > +-- Can't merge persistent partitions into a temporary partition > +ALTER TABLE t MERGE PARTITIONS (tp_0_1, tp_1_2) INTO pg_temp.tp_0_2; > + > +SET search_path =3D pg_temp, public; > > (Alexandr Lakhin's test for using of pg_temp schema explicitly). > > > The rest of the changes in v6_afterfix.diff are not very important and > can be ignored. Thank you. I've integrated your changes. The revised patchset is attached. 1) I've split the fix for the CommandCounterIncrement() issue and the fix for relation persistence issue into a separate patch. 2) I've validated that the lock on the new partition is held in createPartitionTable() after ProcessUtility() as pointed out by Robert. So, no need to place the lock again. 3) Added fix for problematic error message as a separate patch [1]. 4) Added rename "salemans" =3D> "salesmen" for tests as a separate patch. I think these fixes are reaching committable shape, but I'd like someone to check it before I push. Links. 1. https://postgr.es/m/20240408.152402.1485994009160660141.horikyota.ntt%40= gmail.com ------ Regards, Alexander Korotkov --00000000000032555406165c8928 Content-Type: application/octet-stream; name="v6-0002-Verify-persistence-of-new-partitions-during-MERGE.patch" Content-Disposition: attachment; filename="v6-0002-Verify-persistence-of-new-partitions-during-MERGE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lv53od251 RnJvbSA1N2QzOGUyMGIyOGFkZTk2M2JkMzMyNzNjMmZjMmQ4YzAzMmY1NDljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogVGh1LCAxOCBBcHIgMjAyNCAxMjo0MTowOSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjYgMi80XSBWZXJpZnkgcGVyc2lzdGVuY2Ugb2YgbmV3IHBhcnRpdGlvbnMgZHVyaW5n CiBNRVJHRS9TUExJVCBvcGVyYXRpb25zCgpUaGUgY3JlYXRlUGFydGl0aW9uVGFibGUoKSBmdW5j dGlvbiBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgbmV3IHBhcnRpdGlvbnMKZm9yIEFMVEVS IFRBQkxFIC4uLiBNRVJHRSBQQVJUSVRJT05TLCBhbmQgQUxURVIgVEFCTEUgLi4uIFNQTElUIFBB UlRJVElPTgpjb21tYW5kcy4gIEl0IGVtdWxhdGVzIHRoZSBiZWhhdmlvdXMgb2YgQ1JFQVRFIFRB QkxFIC4uLiAoTElLRSAuLi4pLCBidXQKbGFja3Mgb2YgY2hlY2sgZm9yIHRoZSByZXN1bHQgcmVs YXRpb24gcGVyc2lzdGVuY2UuICBUaGlzIGNvbW1pdCBhZGRzCmNvcnJlc3BvbnNpbmcgY2hlY2sg c2ltaWxhcmx5IHRvIHdoYXQgd2UgaGF2ZSBmb3IgQ1JFQVRFIFRBQkxFIC4uLgpQQVJUSVRJT04g T0YgY29tbWFuZC4KClJlcG9ydGVkLWJ5OiBBbGV4YW5kZXIgTGFraGluCkRpc2N1c3Npb246IGh0 dHBzOi8vcG9zdGdyLmVzL20vZGJjOGI5NmMtM2NmMC1kMWVlLTg2MGQtMGU0OTFkYTIwNDg1JTQw Z21haWwuY29tCkF1dGhvcjogRG1pdHJ5IEtvdmFsClJldmlld2VkLWJ5OiBBbGV4YW5kZXIgS29y b3Rrb3YsIFJvYmVydCBIYWFzCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMg ICAgICAgICAgICAgIHwgNjcgKysrKysrKysrLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcGFydGl0aW9uX21lcmdlLm91dCB8IDg5ICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dCB8IDI5ICsrKysrKwogc3JjL3Rl c3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbCAgICAgIHwgNjggKysrKysrKysrKysr KysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9zcGxpdC5zcWwgICAgICB8IDIzICsr KysrCiA1IGZpbGVzIGNoYW5nZWQsIDI1NSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDg3NDI3YWQ3ZDJlLi5kODk0ZDVhNzNmZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTIxMTMzLDE2ICsyMTEzMywyNSBAQCBtb3Zl U3BsaXRUYWJsZVJvd3MoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBzcGxpdFJlbCwgTGlzdCAqcGFy dGxpc3QsIExpc3QgKm5ld1BhcgogICogY3JlYXRlUGFydGl0aW9uVGFibGU6IGNyZWF0ZSB0YWJs ZSBmb3IgYSBuZXcgcGFydGl0aW9uIHdpdGggZ2l2ZW4gbmFtZQogICogKG5ld1BhcnROYW1lKSBs aWtlIHRhYmxlIChtb2RlbFJlbE5hbWUpCiAgKgotICogRW11bGF0ZXMgY29tbWFuZDogQ1JFQVRF IFRBQkxFIDxuZXdQYXJ0TmFtZT4gKExJS0UgPG1vZGVsUmVsTmFtZT4KKyAqIEVtdWxhdGVzIGNv bW1hbmQ6IENSRUFURSBbVEVNUF0gVEFCTEUgPG5ld1BhcnROYW1lPiAoTElLRSA8bW9kZWxSZWxO YW1lPgogICogSU5DTFVESU5HIEFMTCBFWENMVURJTkcgSU5ERVhFUyBFWENMVURJTkcgSURFTlRJ VFkpCisgKiBGdW5jdGlvbiByZXR1cm5zIHRoZSBjcmVhdGVkIHJlbGF0aW9uIChsb2NrZWQgaW4g QWNjZXNzRXhjbHVzaXZlTG9jayBtb2RlKS4KICAqLwotc3RhdGljIHZvaWQKLWNyZWF0ZVBhcnRp dGlvblRhYmxlKFJhbmdlVmFyICpuZXdQYXJ0TmFtZSwgUmFuZ2VWYXIgKm1vZGVsUmVsTmFtZSwK K3N0YXRpYyBSZWxhdGlvbgorY3JlYXRlUGFydGl0aW9uVGFibGUoUmVsYXRpb24gcmVsLCBSYW5n ZVZhciAqbmV3UGFydE5hbWUsIFJhbmdlVmFyICptb2RlbFJlbE5hbWUsCiAJCQkJCSBBbHRlclRh YmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpCiB7CiAJQ3JlYXRlU3RtdCAqY3JlYXRlU3RtdDsK IAlUYWJsZUxpa2VDbGF1c2UgKnRsYzsKIAlQbGFubmVkU3RtdCAqd3JhcHBlcjsKKwlSZWxhdGlv bgluZXdSZWw7CisKKwkvKiBJZiBleGlzdGluZyByZWwgaXMgdGVtcCwgaXQgbXVzdCBiZWxvbmcg dG8gdGhpcyBzZXNzaW9uICovCisJaWYgKHJlbC0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSA9PSBS RUxQRVJTSVNURU5DRV9URU1QICYmCisJCSFyZWwtPnJkX2lzbG9jYWx0ZW1wKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBl cnJtc2coImNhbm5vdCBjcmVhdGUgYXMgcGFydGl0aW9uIG9mIHRlbXBvcmFyeSByZWxhdGlvbiBv ZiBhbm90aGVyIHNlc3Npb24iKSkpOwogCiAJY3JlYXRlU3RtdCA9IG1ha2VOb2RlKENyZWF0ZVN0 bXQpOwogCWNyZWF0ZVN0bXQtPnJlbGF0aW9uID0gbmV3UGFydE5hbWU7CkBAIC0yMTE4MSw2ICsy MTE5MCwzMyBAQCBjcmVhdGVQYXJ0aXRpb25UYWJsZShSYW5nZVZhciAqbmV3UGFydE5hbWUsIFJh bmdlVmFyICptb2RlbFJlbE5hbWUsCiAJCQkJICAgTlVMTCwKIAkJCQkgICBOb25lX1JlY2VpdmVy LAogCQkJCSAgIE5VTEwpOworCisJLyoKKwkgKiBPcGVuIHRoZSBuZXcgcGFydGl0aW9uIHdpdGgg bm8gbG9jaywgYmVjYXVzZSB3ZSBhbHJlYWR5IGhhdmUKKwkgKiBBY2Nlc3NFeGNsdXNpdmVMb2Nr IHBsYWNlZCB0aGVyZSBhZnRlciBjcmVhdGlvbi4KKwkgKi8KKwluZXdSZWwgPSB0YWJsZV9vcGVu cnYobmV3UGFydE5hbWUsIE5vTG9jayk7CisKKwkvKgorCSAqIElmIHRoZSBwYXJlbnQgaXMgcGVy bWFuZW50LCBzbyBtdXN0IGJlIGFsbCBvZiBpdHMgcGFydGl0aW9ucy4gIE5vdGUKKwkgKiB0aGF0 IGluaGVyaXRhbmNlIGFsbG93cyB0aGF0IGNhc2UuCisJICovCisJaWYgKHJlbC0+cmRfcmVsLT5y ZWxwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9URU1QICYmCisJCW5ld1JlbC0+cmRfcmVs LT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2co ImNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgcmVsYXRpb24gYXMgcGFydGl0aW9uIG9mIHBlcm1h bmVudCByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVs KSkpKTsKKworCS8qIFBlcm1hbmVudCByZWxzIGNhbm5vdCBpbmhlcml0IGZyb20gdGVtcG9yYXJ5 IG9uZXMgKi8KKwlpZiAobmV3UmVsLT5yZF9yZWwtPnJlbHBlcnNpc3RlbmNlICE9IFJFTFBFUlNJ U1RFTkNFX1RFTVAgJiYKKwkJcmVsLT5yZF9yZWwtPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJ U1RFTkNFX1RFTVApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9O R19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fubm90IGNyZWF0ZSBhIHBlcm1hbmVudCBy ZWxhdGlvbiBhcyBwYXJ0aXRpb24gb2YgdGVtcG9yYXJ5IHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCisJcmV0dXJuIG5ld1JlbDsKIH0K IAogLyoKQEAgLTIxMjc5LDExICsyMTMxNSw3IEBAIEFURXhlY1NwbGl0UGFydGl0aW9uKExpc3Qg Kip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQlTaW5nbGVQ YXJ0aXRpb25TcGVjICpzcHMgPSAoU2luZ2xlUGFydGl0aW9uU3BlYyAqKSBsZmlyc3QobGlzdHB0 cik7CiAJCVJlbGF0aW9uCW5ld1BhcnRSZWw7CiAKLQkJY3JlYXRlUGFydGl0aW9uVGFibGUoc3Bz LT5uYW1lLCBwYXJlbnROYW1lLCBjb250ZXh0KTsKLQotCQkvKiBPcGVuIHRoZSBuZXcgcGFydGl0 aW9uIGFuZCBhY3F1aXJlIGV4Y2x1c2l2ZSBsb2NrIG9uIGl0LiAqLwotCQluZXdQYXJ0UmVsID0g dGFibGVfb3BlbnJ2KHNwcy0+bmFtZSwgQWNjZXNzRXhjbHVzaXZlTG9jayk7Ci0KKwkJbmV3UGFy dFJlbCA9IGNyZWF0ZVBhcnRpdGlvblRhYmxlKHJlbCwgc3BzLT5uYW1lLCBwYXJlbnROYW1lLCBj b250ZXh0KTsKIAkJbmV3UGFydFJlbHMgPSBsYXBwZW5kKG5ld1BhcnRSZWxzLCBuZXdQYXJ0UmVs KTsKIAl9CiAKQEAgLTIxNDc1LDIxICsyMTUwNywxNCBAQCBBVEV4ZWNNZXJnZVBhcnRpdGlvbnMo TGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJewog CQkvKiBDcmVhdGUgcGFydGl0aW9uIHRhYmxlIHdpdGggZ2VuZXJhdGVkIHRlbXBvcmFyeSBuYW1l LiAqLwogCQlzcHJpbnRmKHRtcFJlbE5hbWUsICJtZXJnZS0ldS0lWC10bXAiLCBSZWxhdGlvbkdl dFJlbGlkKHJlbCksIE15UHJvY1BpZCk7Ci0JCW1lcmdlUGFydE5hbWUgPSBtYWtlUmFuZ2VWYXIo Z2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpLAotCQkJCQkJCQkJ IHRtcFJlbE5hbWUsIC0xKTsKKwkJbWVyZ2VQYXJ0TmFtZSA9IG1ha2VSYW5nZVZhcihjbWQtPm5h bWUtPnNjaGVtYW5hbWUsIHRtcFJlbE5hbWUsIC0xKTsKIAl9Ci0JY3JlYXRlUGFydGl0aW9uVGFi bGUobWVyZ2VQYXJ0TmFtZSwKLQkJCQkJCSBtYWtlUmFuZ2VWYXIoZ2V0X25hbWVzcGFjZV9uYW1l KFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpLAotCQkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWwpLCAtMSksCi0JCQkJCQkgY29udGV4dCk7CiAKLQkvKgotCSAqIE9wZW4gdGhl IG5ldyBwYXJ0aXRpb24gYW5kIGFjcXVpcmUgZXhjbHVzaXZlIGxvY2sgb24gaXQuICBUaGlzIHdp bGwKLQkgKiBzdG9wIGFsbCB0aGUgb3BlcmF0aW9ucyB3aXRoIHBhcnRpdGlvbmVkIHRhYmxlLiAg VGhpcyBtaWdodCBzZWVtCi0JICogZXhjZXNzaXZlLCBidXQgdGhpcyBpcyB0aGUgd2F5IHdlIG1h a2Ugc3VyZSBub2JvZHkgaXMgcGxhbm5pbmcgcXVlcmllcwotCSAqIGludm9sdmluZyBtZXJnaW5n IHBhcnRpdGlvbnMuCi0JICovCi0JbmV3UGFydFJlbCA9IHRhYmxlX29wZW5ydihtZXJnZVBhcnRO YW1lLCBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKwluZXdQYXJ0UmVsID0gY3JlYXRlUGFydGl0aW9u VGFibGUocmVsLAorCQkJCQkJCQkJICBtZXJnZVBhcnROYW1lLAorCQkJCQkJCQkJICBtYWtlUmFu Z2VWYXIoZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpLAorCQkJ CQkJCQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwgLTEpLAorCQkJCQkJCQkJ ICBjb250ZXh0KTsKIAogCS8qIENvcHkgZGF0YSBmcm9tIG1lcmdlZCBwYXJ0aXRpb25zIHRvIG5l dyBwYXJ0aXRpb24uICovCiAJbW92ZU1lcmdlZFRhYmxlc1Jvd3MocmVsLCBtZXJnaW5nUGFydGl0 aW9uc0xpc3QsIG5ld1BhcnRSZWwpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0 aXRpb25fbWVyZ2Uub3V0CmluZGV4IDM1OTM3MjA3MzFjLi43NDhjOGM3YTg5YiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dApAQCAtNzQ2LDYgKzc0 NiwzNiBAQCBEUk9QIFRBQkxFIHQzOwogRFJPUCBUQUJMRSB0MjsKIERST1AgVEFCTEUgdDE7CiAt LQorLS0gVHJ5IHRvIE1FUkdFIHBhcnRpdGlvbnMgb2YgdGVtcG9yYXJ5IHRhYmxlLgorLS0KK0NS RUFURSBURU1QIFRBQkxFIHQgKGkgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGkpOworQ1JFQVRF IFRFTVAgVEFCTEUgdHBfMF8xIFBBUlRJVElPTiBPRiB0IEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8g KDEpOworQ1JFQVRFIFRFTVAgVEFCTEUgdHBfMV8yIFBBUlRJVElPTiBPRiB0IEZPUiBWQUxVRVMg RlJPTSAoMSkgVE8gKDIpOworU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBwZ19j YXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCksIGMucmVscGVyc2lzdGVu Y2UKKyAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsIHBnX2NhdGFsb2cucGdfaW5oZXJpdHMg aQorICBXSEVSRSBjLm9pZCA9IGkuaW5ocmVsaWQgQU5EIGkuaW5ocGFyZW50ID0gJ3QnOjpyZWdj bGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBj Lm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9n LnRleHQ7CisgIG9pZCAgIHwgICAgICAgIHBnX2dldF9leHByICAgICAgICAgfCByZWxwZXJzaXN0 ZW5jZSAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLQorIHRwXzBfMSB8IEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDEpIHwgdAorIHRwXzFfMiB8 IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDIpIHwgdAorKDIgcm93cykKKworQUxURVIgVEFCTEUg dCBNRVJHRSBQQVJUSVRJT05TICh0cF8wXzEsIHRwXzFfMikgSU5UTyB0cF8wXzI7CitFUlJPUjog IGNhbm5vdCBjcmVhdGUgYSBwZXJtYW5lbnQgcmVsYXRpb24gYXMgcGFydGl0aW9uIG9mIHRlbXBv cmFyeSByZWxhdGlvbiAidCIKKy0tIFBhcnRpdGlvbiBzaG91bGQgYmUgdGVtcG9yYXJ5LgorU0VM RUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMu cmVscGFydGJvdW5kLCBjLm9pZCksIGMucmVscGVyc2lzdGVuY2UKKyAgRlJPTSBwZ19jYXRhbG9n LnBnX2NsYXNzIGMsIHBnX2NhdGFsb2cucGdfaW5oZXJpdHMgaQorICBXSEVSRSBjLm9pZCA9IGku aW5ocmVsaWQgQU5EIGkuaW5ocGFyZW50ID0gJ3QnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19j YXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMu b2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisgIG9pZCAgIHwgICAg ICAgIHBnX2dldF9leHByICAgICAgICAgfCByZWxwZXJzaXN0ZW5jZSAKKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIHRwXzBfMSB8IEZPUiBW QUxVRVMgRlJPTSAoMCkgVE8gKDEpIHwgdAorIHRwXzFfMiB8IEZPUiBWQUxVRVMgRlJPTSAoMSkg VE8gKDIpIHwgdAorKDIgcm93cykKKworRFJPUCBUQUJMRSB0OworLS0KIC0tIENoZWNrIHRoZSBw YXJ0aXRpb24gaW5kZXggbmFtZSBpZiB0aGUgcGFydGl0aW9uIG5hbWUgaXMgdGhlIHNhbWUgYXMg b25lCiAtLSBvZiB0aGUgbWVyZ2VkIHBhcnRpdGlvbnMuCiAtLQpAQCAtNzY0LDQgKzc5NCw2MyBA QCBXSEVSRSB0YWJsZW5hbWUgPSAndHBfMV8yJyBBTkQgc2NoZW1hbmFtZSA9ICdwYXJ0aXRpb25z X21lcmdlX3NjaGVtYSc7CiAKIERST1AgVEFCTEUgdDsKIC0tCistLSBUcnkgbWl4aW5nIHBlcm1h bmVudCBhbmQgdGVtcG9yYXJ5IHBhcnRpdGlvbnMuCistLQorU0VUIHNlYXJjaF9wYXRoID0gcHVi bGljLCBwZ190ZW1wOworQ1JFQVRFIFRBQkxFIHQgKGkgaW50KSBQQVJUSVRJT04gQlkgUkFOR0Ug KGkpOworQ1JFQVRFIFRBQkxFIHRwXzBfMSBQQVJUSVRJT04gT0YgdCBGT1IgVkFMVUVTIEZST00g KDApIFRPICgxKTsKK0NSRUFURSBUQUJMRSB0cF8xXzIgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVF UyBGUk9NICgxKSBUTyAoMik7CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIGMu cmVscGVyc2lzdGVuY2UgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgV0hFUkUgYy5vaWQgPSAn dCc6OnJlZ2NsYXNzOworIG9pZCB8IHJlbHBlcnNpc3RlbmNlIAorLS0tLS0rLS0tLS0tLS0tLS0t LS0tLQorIHQgICB8IHAKKygxIHJvdykKKworU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2Ns YXNzLCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCksIGMucmVs cGVyc2lzdGVuY2UKKyAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsIHBnX2NhdGFsb2cucGdf aW5oZXJpdHMgaQorICBXSEVSRSBjLm9pZCA9IGkuaW5ocmVsaWQgQU5EIGkuaW5ocGFyZW50ID0g J3QnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFy dGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpw Z19jYXRhbG9nLnRleHQ7CisgIG9pZCAgIHwgICAgICAgIHBnX2dldF9leHByICAgICAgICAgfCBy ZWxwZXJzaXN0ZW5jZSAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLQorIHRwXzBfMSB8IEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDEpIHwgcAor IHRwXzFfMiB8IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDIpIHwgcAorKDIgcm93cykKKworU0VU IHNlYXJjaF9wYXRoID0gcGdfdGVtcCwgcHVibGljOworLS0gQ2FuJ3QgbWVyZ2UgcGVyc2lzdGVu dCBwYXJ0aXRpb25zIGludG8gYSB0ZW1wb3JhcnkgcGFydGl0aW9uCitBTFRFUiBUQUJMRSB0IE1F UkdFIFBBUlRJVElPTlMgKHRwXzBfMSwgdHBfMV8yKSBJTlRPIHRwXzBfMjsKK0VSUk9SOiAgY2Fu bm90IGNyZWF0ZSBhIHRlbXBvcmFyeSByZWxhdGlvbiBhcyBwYXJ0aXRpb24gb2YgcGVybWFuZW50 IHJlbGF0aW9uICJ0IgorUkVTRVQgc2VhcmNoX3BhdGg7CistLSBDYW4ndCBtZXJnZSBwZXJzaXN0 ZW50IHBhcnRpdGlvbnMgaW50byBhIHRlbXBvcmFyeSBwYXJ0aXRpb24KK0FMVEVSIFRBQkxFIHQg TUVSR0UgUEFSVElUSU9OUyAodHBfMF8xLCB0cF8xXzIpIElOVE8gcGdfdGVtcC50cF8wXzI7CitF UlJPUjogIGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgcmVsYXRpb24gYXMgcGFydGl0aW9uIG9m IHBlcm1hbmVudCByZWxhdGlvbiAidCIKK0RST1AgVEFCTEUgdDsKK1NFVCBzZWFyY2hfcGF0aCA9 IHBnX3RlbXAsIHB1YmxpYzsKK0JFR0lOOworQ1JFQVRFIFRBQkxFIHQgKGkgaW50KSBQQVJUSVRJ T04gQlkgUkFOR0UgKGkpOworQ1JFQVRFIFRBQkxFIHRwXzBfMSBQQVJUSVRJT04gT0YgdCBGT1Ig VkFMVUVTIEZST00gKDApIFRPICgxKTsKK0NSRUFURSBUQUJMRSB0cF8xXzIgUEFSVElUSU9OIE9G IHQgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMik7CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cu cmVnY2xhc3MsIGMucmVscGVyc2lzdGVuY2UgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgV0hF UkUgYy5vaWQgPSAndCc6OnJlZ2NsYXNzOworIG9pZCB8IHJlbHBlcnNpc3RlbmNlIAorLS0tLS0r LS0tLS0tLS0tLS0tLS0tLQorIHQgICB8IHQKKygxIHJvdykKKworU0VMRUNUIGMub2lkOjpwZ19j YXRhbG9nLnJlZ2NsYXNzLCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBj Lm9pZCksIGMucmVscGVyc2lzdGVuY2UKKyAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsIHBn X2NhdGFsb2cucGdfaW5oZXJpdHMgaQorICBXSEVSRSBjLm9pZCA9IGkuaW5ocmVsaWQgQU5EIGku aW5ocGFyZW50ID0gJ3QnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBnX2dldF9l eHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpwZ19jYXRhbG9n LnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisgIG9pZCAgIHwgICAgICAgIHBnX2dldF9leHBy ICAgICAgICAgfCByZWxwZXJzaXN0ZW5jZSAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIHRwXzBfMSB8IEZPUiBWQUxVRVMgRlJPTSAoMCkg VE8gKDEpIHwgdAorIHRwXzFfMiB8IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDIpIHwgdAorKDIg cm93cykKKworU0VUIHNlYXJjaF9wYXRoID0gcHVibGljLCBwZ190ZW1wOworLS0gQ2FuJ3QgbWVy Z2UgdGVtcG9yYXJ5IHBhcnRpdGlvbnMgaW50byBhIHBlcnNpc3RlbnQgcGFydGl0aW9uCitBTFRF UiBUQUJMRSB0IE1FUkdFIFBBUlRJVElPTlMgKHRwXzBfMSwgdHBfMV8yKSBJTlRPIHRwXzBfMjsK K0VSUk9SOiAgY2Fubm90IGNyZWF0ZSBhIHBlcm1hbmVudCByZWxhdGlvbiBhcyBwYXJ0aXRpb24g b2YgdGVtcG9yYXJ5IHJlbGF0aW9uICJ0IgorUk9MTEJBQ0s7CitSRVNFVCBzZWFyY2hfcGF0aDsK Ky0tCiBEUk9QIFNDSEVNQSBwYXJ0aXRpb25zX21lcmdlX3NjaGVtYTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dAppbmRleCA0MTlkMTY5ZjAzNi4uNjYw MzYxY2QyMGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9u X3NwbGl0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9zcGxp dC5vdXQKQEAgLTE0MjcsNCArMTQyNywzMyBAQCBFUlJPUjogIHJlbGF0aW9uICJ0MXBhIiBpcyBu b3QgYSBwYXJ0aXRpb24gb2YgcmVsYXRpb24gInQyIgogRFJPUCBUQUJMRSB0MjsKIERST1AgVEFC TEUgdDE7CiAtLQorLS0gVHJ5IHRvIFNQTElUIHBhcnRpdGlvbiBvZiB0ZW1wb3JhcnkgdGFibGUu CistLQorQ1JFQVRFIFRFTVAgVEFCTEUgdCAoaSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRSAoaSk7 CitDUkVBVEUgVEVNUCBUQUJMRSB0cF8wXzIgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9N ICgwKSBUTyAoMik7CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIHBnX2NhdGFs b2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSwgYy5yZWxwZXJzaXN0ZW5jZQor ICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisg IFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAndCc6OnJlZ2NsYXNz CisgIE9SREVSIEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lk KSA9ICdERUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4 dDsKKyAgb2lkICAgfCAgICAgICAgcGdfZ2V0X2V4cHIgICAgICAgICB8IHJlbHBlcnNpc3RlbmNl IAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t CisgdHBfMF8yIHwgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMikgfCB0CisoMSByb3cpCisKK0FM VEVSIFRBQkxFIHQgU1BMSVQgUEFSVElUSU9OIHRwXzBfMiBJTlRPCisgIChQQVJUSVRJT04gdHBf MF8xIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDEpLAorICAgUEFSVElUSU9OIHRwXzFfMiBGT1Ig VkFMVUVTIEZST00gKDEpIFRPICgyKSk7CitFUlJPUjogIGNhbm5vdCBjcmVhdGUgYSBwZXJtYW5l bnQgcmVsYXRpb24gYXMgcGFydGl0aW9uIG9mIHRlbXBvcmFyeSByZWxhdGlvbiAidCIKKy0tIFBh cnRpdGlvbnMgc2hvdWxkIGJlIHRlbXBvcmFyeS4KK1NFTEVDVCBjLm9pZDo6cGdfY2F0YWxvZy5y ZWdjbGFzcywgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpLCBj LnJlbHBlcnNpc3RlbmNlCisgIEZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjLCBwZ19jYXRhbG9n LnBnX2luaGVyaXRzIGkKKyAgV0hFUkUgYy5vaWQgPSBpLmluaHJlbGlkIEFORCBpLmluaHBhcmVu dCA9ICd0Jzo6cmVnY2xhc3MKKyAgT1JERVIgQlkgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJl bHBhcnRib3VuZCwgYy5vaWQpID0gJ0RFRkFVTFQnLCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFz czo6cGdfY2F0YWxvZy50ZXh0OworICBvaWQgICB8ICAgICAgICBwZ19nZXRfZXhwciAgICAgICAg IHwgcmVscGVyc2lzdGVuY2UgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0KKyB0cF8wXzIgfCBGT1IgVkFMVUVTIEZST00gKDApIFRPICgyKSB8 IHQKKygxIHJvdykKKworRFJPUCBUQUJMRSB0OworLS0KIERST1AgU0NIRU1BIHBhcnRpdGlvbl9z cGxpdF9zY2hlbWE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25f bWVyZ2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbAppbmRl eCA5NDBlNmI1YTllNS4uNmZhYWM5NTlhN2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0 aW9uX21lcmdlLnNxbApAQCAtNDQ0LDYgKzQ0NCwyOCBAQCBEUk9QIFRBQkxFIHQzOwogRFJPUCBU QUJMRSB0MjsKIERST1AgVEFCTEUgdDE7CiAKKy0tCistLSBUcnkgdG8gTUVSR0UgcGFydGl0aW9u cyBvZiB0ZW1wb3JhcnkgdGFibGUuCistLQorQ1JFQVRFIFRFTVAgVEFCTEUgdCAoaSBpbnQpIFBB UlRJVElPTiBCWSBSQU5HRSAoaSk7CitDUkVBVEUgVEVNUCBUQUJMRSB0cF8wXzEgUEFSVElUSU9O IE9GIHQgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMSk7CitDUkVBVEUgVEVNUCBUQUJMRSB0cF8x XzIgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMik7CisKK1NFTEVDVCBj Lm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBh cnRib3VuZCwgYy5vaWQpLCBjLnJlbHBlcnNpc3RlbmNlCisgIEZST00gcGdfY2F0YWxvZy5wZ19j bGFzcyBjLCBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIGkKKyAgV0hFUkUgYy5vaWQgPSBpLmluaHJl bGlkIEFORCBpLmluaHBhcmVudCA9ICd0Jzo6cmVnY2xhc3MKKyAgT1JERVIgQlkgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpID0gJ0RFRkFVTFQnLCBjLm9pZDo6 cGdfY2F0YWxvZy5yZWdjbGFzczo6cGdfY2F0YWxvZy50ZXh0OworCitBTFRFUiBUQUJMRSB0IE1F UkdFIFBBUlRJVElPTlMgKHRwXzBfMSwgdHBfMV8yKSBJTlRPIHRwXzBfMjsKKworLS0gUGFydGl0 aW9uIHNob3VsZCBiZSB0ZW1wb3JhcnkuCitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xh c3MsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSwgYy5yZWxw ZXJzaXN0ZW5jZQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5wZ19p bmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAn dCc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0 Ym91bmQsIGMub2lkKSA9ICdERUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBn X2NhdGFsb2cudGV4dDsKKworRFJPUCBUQUJMRSB0OworCiAtLQogLS0gQ2hlY2sgdGhlIHBhcnRp dGlvbiBpbmRleCBuYW1lIGlmIHRoZSBwYXJ0aXRpb24gbmFtZSBpcyB0aGUgc2FtZSBhcyBvbmUK IC0tIG9mIHRoZSBtZXJnZWQgcGFydGl0aW9ucy4KQEAgLTQ2Miw1ICs0ODQsNTEgQEAgV0hFUkUg dGFibGVuYW1lID0gJ3RwXzFfMicgQU5EIHNjaGVtYW5hbWUgPSAncGFydGl0aW9uc19tZXJnZV9z Y2hlbWEnOwogCiBEUk9QIFRBQkxFIHQ7CiAKKy0tCistLSBUcnkgbWl4aW5nIHBlcm1hbmVudCBh bmQgdGVtcG9yYXJ5IHBhcnRpdGlvbnMuCistLQorU0VUIHNlYXJjaF9wYXRoID0gcHVibGljLCBw Z190ZW1wOworQ1JFQVRFIFRBQkxFIHQgKGkgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGkpOwor Q1JFQVRFIFRBQkxFIHRwXzBfMSBQQVJUSVRJT04gT0YgdCBGT1IgVkFMVUVTIEZST00gKDApIFRP ICgxKTsKK0NSRUFURSBUQUJMRSB0cF8xXzIgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9N ICgxKSBUTyAoMik7CisKK1NFTEVDVCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywgYy5yZWxw ZXJzaXN0ZW5jZSBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBXSEVSRSBjLm9pZCA9ICd0Jzo6 cmVnY2xhc3M7CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIHBnX2NhdGFsb2cu cGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSwgYy5yZWxwZXJzaXN0ZW5jZQorICBG Uk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisgIFdI RVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAndCc6OnJlZ2NsYXNzCisg IE9SREVSIEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9 ICdERUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4dDsK KworU0VUIHNlYXJjaF9wYXRoID0gcGdfdGVtcCwgcHVibGljOworCistLSBDYW4ndCBtZXJnZSBw ZXJzaXN0ZW50IHBhcnRpdGlvbnMgaW50byBhIHRlbXBvcmFyeSBwYXJ0aXRpb24KK0FMVEVSIFRB QkxFIHQgTUVSR0UgUEFSVElUSU9OUyAodHBfMF8xLCB0cF8xXzIpIElOVE8gdHBfMF8yOworCitS RVNFVCBzZWFyY2hfcGF0aDsKKworLS0gQ2FuJ3QgbWVyZ2UgcGVyc2lzdGVudCBwYXJ0aXRpb25z IGludG8gYSB0ZW1wb3JhcnkgcGFydGl0aW9uCitBTFRFUiBUQUJMRSB0IE1FUkdFIFBBUlRJVElP TlMgKHRwXzBfMSwgdHBfMV8yKSBJTlRPIHBnX3RlbXAudHBfMF8yOworRFJPUCBUQUJMRSB0Owor CitTRVQgc2VhcmNoX3BhdGggPSBwZ190ZW1wLCBwdWJsaWM7CisKK0JFR0lOOworQ1JFQVRFIFRB QkxFIHQgKGkgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGkpOworQ1JFQVRFIFRBQkxFIHRwXzBf MSBQQVJUSVRJT04gT0YgdCBGT1IgVkFMVUVTIEZST00gKDApIFRPICgxKTsKK0NSRUFURSBUQUJM RSB0cF8xXzIgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMik7CisKK1NF TEVDVCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywgYy5yZWxwZXJzaXN0ZW5jZSBGUk9NIHBn X2NhdGFsb2cucGdfY2xhc3MgYyBXSEVSRSBjLm9pZCA9ICd0Jzo6cmVnY2xhc3M7CitTRUxFQ1Qg Yy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxw YXJ0Ym91bmQsIGMub2lkKSwgYy5yZWxwZXJzaXN0ZW5jZQorICBGUk9NIHBnX2NhdGFsb2cucGdf Y2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhy ZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAndCc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBnX2NhdGFs b2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9ICdERUZBVUxUJywgYy5vaWQ6 OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4dDsKKworU0VUIHNlYXJjaF9wYXRo ID0gcHVibGljLCBwZ190ZW1wOworCistLSBDYW4ndCBtZXJnZSB0ZW1wb3JhcnkgcGFydGl0aW9u cyBpbnRvIGEgcGVyc2lzdGVudCBwYXJ0aXRpb24KK0FMVEVSIFRBQkxFIHQgTUVSR0UgUEFSVElU SU9OUyAodHBfMF8xLCB0cF8xXzIpIElOVE8gdHBfMF8yOworUk9MTEJBQ0s7CisKK1JFU0VUIHNl YXJjaF9wYXRoOworCiAtLQogRFJPUCBTQ0hFTUEgcGFydGl0aW9uc19tZXJnZV9zY2hlbWE7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fc3BsaXQuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbAppbmRleCBiNjM1MzJlZTU2Mi4u NTc2ZjlmMGY2M2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9z cGxpdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbApA QCAtODQ0LDUgKzg0NCwyOCBAQCBBTFRFUiBUQUJMRSB0MiBTUExJVCBQQVJUSVRJT04gdDFwYSBJ TlRPCiBEUk9QIFRBQkxFIHQyOwogRFJPUCBUQUJMRSB0MTsKIAorLS0KKy0tIFRyeSB0byBTUExJ VCBwYXJ0aXRpb24gb2YgdGVtcG9yYXJ5IHRhYmxlLgorLS0KK0NSRUFURSBURU1QIFRBQkxFIHQg KGkgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGkpOworQ1JFQVRFIFRFTVAgVEFCTEUgdHBfMF8y IFBBUlRJVElPTiBPRiB0IEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDIpOworCitTRUxFQ1QgYy5v aWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0 Ym91bmQsIGMub2lkKSwgYy5yZWxwZXJzaXN0ZW5jZQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xh c3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxp ZCBBTkQgaS5pbmhwYXJlbnQgPSAndCc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBnX2NhdGFsb2cu cGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9ICdERUZBVUxUJywgYy5vaWQ6OnBn X2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4dDsKKworQUxURVIgVEFCTEUgdCBTUExJ VCBQQVJUSVRJT04gdHBfMF8yIElOVE8KKyAgKFBBUlRJVElPTiB0cF8wXzEgRk9SIFZBTFVFUyBG Uk9NICgwKSBUTyAoMSksCisgICBQQVJUSVRJT04gdHBfMV8yIEZPUiBWQUxVRVMgRlJPTSAoMSkg VE8gKDIpKTsKKworLS0gUGFydGl0aW9ucyBzaG91bGQgYmUgdGVtcG9yYXJ5LgorU0VMRUNUIGMu b2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFy dGJvdW5kLCBjLm9pZCksIGMucmVscGVyc2lzdGVuY2UKKyAgRlJPTSBwZ19jYXRhbG9nLnBnX2Ns YXNzIGMsIHBnX2NhdGFsb2cucGdfaW5oZXJpdHMgaQorICBXSEVSRSBjLm9pZCA9IGkuaW5ocmVs aWQgQU5EIGkuaW5ocGFyZW50ID0gJ3QnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9n LnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpw Z19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisKK0RST1AgVEFCTEUgdDsKKwog LS0KIERST1AgU0NIRU1BIHBhcnRpdGlvbl9zcGxpdF9zY2hlbWE7Ci0tIAoyLjM5LjMgKEFwcGxl IEdpdC0xNDUpCgo= --00000000000032555406165c8928 Content-Type: application/octet-stream; name="v6-0004-Grammar-fix-for-tests-of-partition-MERGE-SPLIT-op.patch" Content-Disposition: attachment; filename="v6-0004-Grammar-fix-for-tests-of-partition-MERGE-SPLIT-op.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lv53od2a3 RnJvbSA1MDMyY2RmNmRkOTkwNWZlMTZiMTU4OTBlODIyYmVmODhjMmY2MTQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogVGh1LCAxOCBBcHIgMjAyNCAxMzoyNzoxMSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjYgNC80XSBHcmFtbWFyIGZpeCBmb3IgdGVzdHMgb2YgcGFydGl0aW9uIE1FUkdFL1NQ TElUCiBvcGVyYXRpb25zCgpSZXBsYWNlICJzYWxlc21hbnMiIHdpdGggInNhbGVzbWVuIi4KClJl cG9ydGVkLWJ5OiBBbGV4YW5kZXIgTGFraGluCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vZmRhYTAwM2UtOTE5Yy1jYmM5LTRmMGMtZTQ1NDZlOTZiZDY1JTQwZ21haWwuY29tCi0tLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0IHwgIDk2ICsrKy0t LS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dCB8IDIzOCAr KysrKysrKystLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5z cWwgICAgICB8ICA4NCArKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fc3Bs aXQuc3FsICAgICAgfCAxODYgKysrKysrKy0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzAyIGlu c2VydGlvbnMoKyksIDMwMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQKaW5kZXggNzQ4YzhjN2E4OWIuLmI1NzQ0ZWQ0OTg2IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CkBAIC0z NDksNTAgKzM0OSw1MCBAQCBEUk9QIFRBQkxFIHNhbGVzX2RhdGU7CiAtLQogLS0gVGVzdDogbWVy Z2UgcGFydGl0aW9ucyBvZiBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIHRyaWdnZXJzCiAtLQotQ1JF QVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFu X25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOwotQ1JF QVRFIFRBQkxFIHNhbGVzbWFuczAxXzEwIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVF UyBGUk9NICgxKSBUTyAoMTApOwotQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczEwXzIwIFBBUlRJVElP TiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDIwKTsKLUNSRUFURSBUQUJM RSBzYWxlc21hbnMyMF8zMCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMgRlJPTSAo MjApIFRPICgzMCk7Ci1DUkVBVEUgVEFCTEUgc2FsZXNtYW5zMzBfNDAgUEFSVElUSU9OIE9GIHNh bGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDMwKSBUTyAoNDApOwotSU5TRVJUIElOVE8gc2FsZXNt YW5zIFZBTFVFUyAoMSwgICdQb2lyb3QnKTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbihzYWxlc21h bl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElP TiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuMDFfMTAgUEFS VElUSU9OIE9GIHNhbGVzbWVuIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwKTsKK0NSRUFURSBU QUJMRSBzYWxlc21lbjEwXzIwIFBBUlRJVElPTiBPRiBzYWxlc21lbiBGT1IgVkFMVUVTIEZST00g KDEwKSBUTyAoMjApOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuMjBfMzAgUEFSVElUSU9OIE9GIHNh bGVzbWVuIEZPUiBWQUxVRVMgRlJPTSAoMjApIFRPICgzMCk7CitDUkVBVEUgVEFCTEUgc2FsZXNt ZW4zMF80MCBQQVJUSVRJT04gT0Ygc2FsZXNtZW4gRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQw KTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuIFZBTFVFUyAoMSwgICdQb2lyb3QnKTsKIENSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcigpIFJFVFVSTlMgdHJp Z2dlciBMQU5HVUFHRSAncGxwZ3NxbCcgQVMgJEJPRFkkCiBCRUdJTgogCVJBSVNFIE5PVElDRSAn dHJpZ2dlciglKSBjYWxsZWQ6IGFjdGlvbiA9ICUsIHdoZW4gPSAlLCBsZXZlbCA9ICUnLCBUR19B UkdWWzBdLCBUR19PUCwgVEdfV0hFTiwgVEdfTEVWRUw7CiAgICAgUkVUVVJOIE5VTEw7CiBFTkQ7 CiAkQk9EWSQ7Ci1DUkVBVEUgVFJJR0dFUiBzYWxlc21hbnNfYWZ0ZXJfaW5zZXJ0X3N0YXRlbWVu dF90cmlnZ2VyCitDUkVBVEUgVFJJR0dFUiBzYWxlc21lbl9hZnRlcl9pbnNlcnRfc3RhdGVtZW50 X3RyaWdnZXIKICAgICBBRlRFUiBJTlNFUlQKLSAgICBPTiBzYWxlc21hbnMKKyAgICBPTiBzYWxl c21lbgogICAgIEZPUiBFQUNIIFNUQVRFTUVOVAotICAgIEVYRUNVVEUgUFJPQ0VEVVJFIGFmdGVy X2luc2VydF9yb3dfdHJpZ2dlcignc2FsZXNtYW5zJyk7Ci1DUkVBVEUgVFJJR0dFUiBzYWxlc21h bnNfYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyCisgICAgRVhFQ1VURSBQUk9DRURVUkUgYWZ0ZXJf aW5zZXJ0X3Jvd190cmlnZ2VyKCdzYWxlc21lbicpOworQ1JFQVRFIFRSSUdHRVIgc2FsZXNtZW5f YWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyCiAgICAgQUZURVIgSU5TRVJUCi0gICAgT04gc2FsZXNt YW5zCisgICAgT04gc2FsZXNtZW4KICAgICBGT1IgRUFDSCBST1cKLSAgICBFWEVDVVRFIFBST0NF RFVSRSBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVzbWFucycpOworICAgIEVYRUNVVEUg UFJPQ0VEVVJFIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcignc2FsZXNtZW4nKTsKIC0tIDIgdHJp Z2dlcnMgc2hvdWxkIGZpcmUgaGVyZSAocm93ICsgc3RhdGVtZW50KToKLUlOU0VSVCBJTlRPIHNh bGVzbWFucyBWQUxVRVMgKDEwLCAnTWF5Jyk7Ci1OT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWFucykg Y2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cKLU5PVElD RTogIHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFG VEVSLCBsZXZlbCA9IFNUQVRFTUVOVAorSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgxMCwg J01heScpOworTk9USUNFOiAgdHJpZ2dlcihzYWxlc21lbikgY2FsbGVkOiBhY3Rpb24gPSBJTlNF UlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cKK05PVElDRTogIHRyaWdnZXIoc2FsZXNtZW4p IGNhbGxlZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0gU1RBVEVNRU5U CiAtLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToKLUlOU0VSVCBJTlRPIHNhbGVz bWFuczEwXzIwIFZBTFVFUyAoMTksICdJdmFub3YnKTsKLU5PVElDRTogIHRyaWdnZXIoc2FsZXNt YW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFJPVwot QUxURVIgVEFCTEUgc2FsZXNtYW5zIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzbWFuczEwXzIwLCBz YWxlc21hbnMyMF8zMCwgc2FsZXNtYW5zMzBfNDApIElOVE8gc2FsZXNtYW5zMTBfNDA7CitJTlNF UlQgSU5UTyBzYWxlc21lbjEwXzIwIFZBTFVFUyAoMTksICdJdmFub3YnKTsKK05PVElDRTogIHRy aWdnZXIoc2FsZXNtZW4pIGNhbGxlZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxl dmVsID0gUk9XCitBTFRFUiBUQUJMRSBzYWxlc21lbiBNRVJHRSBQQVJUSVRJT05TIChzYWxlc21l bjEwXzIwLCBzYWxlc21lbjIwXzMwLCBzYWxlc21lbjMwXzQwKSBJTlRPIHNhbGVzbWVuMTBfNDA7 CiAtLSAyIHRyaWdnZXJzIHNob3VsZCBmaXJlIGhlcmUgKHJvdyArIHN0YXRlbWVudCk6Ci1JTlNF UlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7Ci1OT1RJQ0U6ICB0cmln Z2VyKHNhbGVzbWFucykgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2 ZWwgPSBST1cKLU5PVElDRTogIHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElO U0VSVCwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFNUQVRFTUVOVAorSU5TRVJUIElOVE8gc2FsZXNt ZW4gVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7CitOT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWVuKSBj YWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFJPVworTk9USUNF OiAgdHJpZ2dlcihzYWxlc21lbikgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRF UiwgbGV2ZWwgPSBTVEFURU1FTlQKIC0tIDEgdHJpZ2dlciBzaG91bGQgZmlyZSBoZXJlIChyb3cp OgotSU5TRVJUIElOVE8gc2FsZXNtYW5zMTBfNDAgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKLU5PVElD RTogIHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFG VEVSLCBsZXZlbCA9IFJPVwotU0VMRUNUICogRlJPTSBzYWxlc21hbnMwMV8xMDsKK0lOU0VSVCBJ TlRPIHNhbGVzbWVuMTBfNDAgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKK05PVElDRTogIHRyaWdnZXIo c2FsZXNtZW4pIGNhbGxlZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0g Uk9XCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWVuMDFfMTA7CiAgc2FsZXNtYW5faWQgfCBzYWxlc21h bl9uYW1lIAogLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICAgMSB8IFBv aXJvdAogKDEgcm93KQogCi1TRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczEwXzQwOworU0VMRUNUICog RlJPTSBzYWxlc21lbjEwXzQwOwogIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKIC0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgMTAgfCBNYXkKQEAgLTQwMSwzMSAr NDAxLDMxIEBAIFNFTEVDVCAqIEZST00gc2FsZXNtYW5zMTBfNDA7CiAgICAgICAgICAgMzAgfCBG b3JkCiAoNCByb3dzKQogCi1EUk9QIFRBQkxFIHNhbGVzbWFuczsKK0RST1AgVEFCTEUgc2FsZXNt ZW47CiBEUk9QIEZVTkNUSU9OIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcigpOwogLS0KIC0tIFRl c3Q6IG1lcmdlIHBhcnRpdGlvbnMgd2l0aCBkZWxldGVkIGNvbHVtbnMKIC0tCi1DUkVBVEUgVEFC TEUgc2FsZXNtYW5zKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBW QVJDSEFSKDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7Ci1DUkVBVEUgVEFC TEUgc2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00g KDEpIFRPICgxMCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4oc2FsZXNtYW5faWQgSU5UIFBSSU1B UlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNh bGVzbWFuX2lkKTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbjAxXzEwIFBBUlRJVElPTiBPRiBzYWxl c21lbiBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CiAtLSBDcmVhdGUgcGFydGl0aW9ucyB3 aXRoIHNvbWUgZGVsZXRlZCBjb2x1bW5zOgotQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczEwXzIwKGQx IFZBUkNIQVIoMzApLCBzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUg VkFSQ0hBUigzMCkpOwotQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczIwXzMwKHNhbGVzbWFuX2lkIElO VCBQUklNQVJZIEtFWSwgZDIgSU5ULCAgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7Ci1DUkVB VEUgVEFCTEUgc2FsZXNtYW5zMzBfNDAoc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBkMyBE QVRFLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFuczEw XzIwIFZBTFVFUyAoJ2R1bW15IHZhbHVlIDEnLCAxOSwgJ0l2YW5vdicpOwotSU5TRVJUIElOVE8g c2FsZXNtYW5zMjBfMzAgVkFMVUVTICgyMCwgMTAxLCAnU21pcm5vZmYnKTsKLUlOU0VSVCBJTlRP IHNhbGVzbWFuczMwXzQwIFZBTFVFUyAoMzEsIG5vdygpLCAnUG9wb3YnKTsKLUFMVEVSIFRBQkxF IHNhbGVzbWFuczEwXzIwIERST1AgQ09MVU1OIGQxOwotQUxURVIgVEFCTEUgc2FsZXNtYW5zMjBf MzAgRFJPUCBDT0xVTU4gZDI7Ci1BTFRFUiBUQUJMRSBzYWxlc21hbnMzMF80MCBEUk9QIENPTFVN TiBkMzsKLUFMVEVSIFRBQkxFIHNhbGVzbWFucyBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzbWFuczEw XzIwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCk7Ci1BTFRFUiBUQUJMRSBzYWxlc21hbnMg QVRUQUNIIFBBUlRJVElPTiBzYWxlc21hbnMyMF8zMCBGT1IgVkFMVUVTIEZST00gKDIwKSBUTyAo MzApOwotQUxURVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNtYW5zMzBf NDAgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFucyBW QUxVRVMgKDEsICdQb2lyb3QnKTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEwLCAn TWF5Jyk7Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKLUFMVEVS IFRBQkxFIHNhbGVzbWFucyBNRVJHRSBQQVJUSVRJT05TIChzYWxlc21hbnMxMF8yMCwgc2FsZXNt YW5zMjBfMzAsIHNhbGVzbWFuczMwXzQwKSBJTlRPIHNhbGVzbWFuczEwXzQwOwotc2VsZWN0ICog ZnJvbSBzYWxlc21hbnM7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4xMF8yMChkMSBWQVJDSEFSKDMw KSwgc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp KTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbjIwXzMwKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtF WSwgZDIgSU5ULCAgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNtZW4zMF80MChzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIGQzIERBVEUsIHNhbGVzbWFu X25hbWUgVkFSQ0hBUigzMCkpOworSU5TRVJUIElOVE8gc2FsZXNtZW4xMF8yMCBWQUxVRVMgKCdk dW1teSB2YWx1ZSAxJywgMTksICdJdmFub3YnKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuMjBfMzAg VkFMVUVTICgyMCwgMTAxLCAnU21pcm5vZmYnKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuMzBfNDAg VkFMVUVTICgzMSwgbm93KCksICdQb3BvdicpOworQUxURVIgVEFCTEUgc2FsZXNtZW4xMF8yMCBE Uk9QIENPTFVNTiBkMTsKK0FMVEVSIFRBQkxFIHNhbGVzbWVuMjBfMzAgRFJPUCBDT0xVTU4gZDI7 CitBTFRFUiBUQUJMRSBzYWxlc21lbjMwXzQwIERST1AgQ09MVU1OIGQzOworQUxURVIgVEFCTEUg c2FsZXNtZW4gQVRUQUNIIFBBUlRJVElPTiBzYWxlc21lbjEwXzIwIEZPUiBWQUxVRVMgRlJPTSAo MTApIFRPICgyMCk7CitBTFRFUiBUQUJMRSBzYWxlc21lbiBBVFRBQ0ggUEFSVElUSU9OIHNhbGVz bWVuMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKK0FMVEVSIFRBQkxFIHNhbGVz bWVuIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNtZW4zMF80MCBGT1IgVkFMVUVTIEZST00gKDMwKSBU TyAoNDApOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgxLCAnUG9pcm90Jyk7CitJTlNF UlQgSU5UTyBzYWxlc21lbiBWQUxVRVMgKDEwLCAnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21l biBWQUxVRVMgKDMwLCAnRm9yZCcpOworQUxURVIgVEFCTEUgc2FsZXNtZW4gTUVSR0UgUEFSVElU SU9OUyAoc2FsZXNtZW4xMF8yMCwgc2FsZXNtZW4yMF8zMCwgc2FsZXNtZW4zMF80MCkgSU5UTyBz YWxlc21lbjEwXzQwOworc2VsZWN0ICogZnJvbSBzYWxlc21lbjsKICBzYWxlc21hbl9pZCB8IHNh bGVzbWFuX25hbWUgCiAtLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAx IHwgUG9pcm90CkBAIC00MzYsMTMgKzQzNiwxMyBAQCBzZWxlY3QgKiBmcm9tIHNhbGVzbWFuczsK ICAgICAgICAgICAzMCB8IEZvcmQKICg2IHJvd3MpCiAKLXNlbGVjdCAqIGZyb20gc2FsZXNtYW5z MDFfMTA7CitzZWxlY3QgKiBmcm9tIHNhbGVzbWVuMDFfMTA7CiAgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIAogLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICAgMSB8 IFBvaXJvdAogKDEgcm93KQogCi1zZWxlY3QgKiBmcm9tIHNhbGVzbWFuczEwXzQwOworc2VsZWN0 ICogZnJvbSBzYWxlc21lbjEwXzQwOwogIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKIC0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgMTkgfCBJdmFub3YKQEAgLTQ1 Miw3ICs0NTIsNyBAQCBzZWxlY3QgKiBmcm9tIHNhbGVzbWFuczEwXzQwOwogICAgICAgICAgIDMw IHwgRm9yZAogKDUgcm93cykKIAotRFJPUCBUQUJMRSBzYWxlc21hbnM7CitEUk9QIFRBQkxFIHNh bGVzbWVuOwogLS0KIC0tIFRlc3Q6IG1lcmdlIHN1Yi1wYXJ0aXRpb25zCiAtLQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fc3BsaXQub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fc3BsaXQub3V0CmluZGV4IDY2MDM2MWNkMjBl Li4yMTdlOWJhNTRiYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0 aXRpb25fc3BsaXQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9u X3NwbGl0Lm91dApAQCAtODQsOCArODQsOCBAQCBBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJ VCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KICAgIFBBUlRJVElPTiBzYWxl c19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEn KSwKICAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQt MDEnKSBUTyAoJzIwMjItMDYtMDEnKSk7CiBFUlJPUjogIHVwcGVyIGJvdW5kIG9mIHBhcnRpdGlv biAic2FsZXNfYXByMjAyMiIgaXMgZ3JlYXRlciB0aGFuIHVwcGVyIGJvdW5kIG9mIHNwbGl0IHBh cnRpdGlvbgotTElORSA0OiAuLi4gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTA0LTAxJykgVE8gKCcyMDIyLTA2LTAuLi4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitMSU5FIDQ6ICAgIFBBUlRJVElPTiBz YWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTy4uLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIEVSUk9S OiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19tYXIyMDIyIiBjb25mbGljdHMgd2l0 aCB1cHBlciBib3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24gInNhbGVzX2ZlYjIwMjIiCiBBTFRF UiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIy IElOVE8KICAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKQEAgLTU3NCwyMCArNTc0LDIwIEBAIERST1AgVEFC TEUgc2FsZXNfcmFuZ2U7CiAtLQogLS0gVGVzdDogc3BsaXQgcGFydGl0aW9uIHdpdGggQ0hFQ0sg YW5kIEZPUkVJR04gS0VZIENPTlNUUkFJTlRzIG9uIHBhcnRpdGlvbmVkIHRhYmxlCiAtLQotQ1JF QVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFu X25hbWUgVkFSQ0hBUigzMCkpOwotSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMSwgICdQ b2lyb3QnKTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbihzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBL RVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFM VUVTICgxLCAgJ1BvaXJvdCcpOwogQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlICgKLXNhbGVzbWFu X2lkIElOVCBSRUZFUkVOQ0VTIHNhbGVzbWFucyhzYWxlc21hbl9pZCksCitzYWxlc21hbl9pZCBJ TlQgUkVGRVJFTkNFUyBzYWxlc21lbihzYWxlc21hbl9pZCksCiBzYWxlc19hbW91bnQgSU5UIENI RUNLIChzYWxlc19hbW91bnQgPiAxKSwKIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJB TkdFIChzYWxlc19kYXRlKTsKIENSRUFURSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBP RiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAy LTAxJyk7CiBDUkVBVEUgVEFCTEUgc2FsZXNfZmViX21hcl9hcHIyMDIyIFBBUlRJVElPTiBPRiBz YWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTA1LTAx Jyk7CiBDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBE RUZBVUxUOwogU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCksIGNvbm5hbWUsIGNvbmtl eSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ucmVsaWQgPSAnc2FsZXNfZmViX21hcl9hcHIy MDIyJzo6cmVnY2xhc3M6Om9pZDsKLSAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFp bnRkZWYgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgY29ubmFtZSAgICAgICAgICAg ICB8IGNvbmtleSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0KLSBDSEVDSyAoKHNhbGVzX2Ftb3VudCA+IDEpKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHNhbGVzX3JhbmdlX3NhbGVzX2Ftb3VudF9jaGVjayB8IHsyfQotIEZPUkVJR04g S0VZIChzYWxlc21hbl9pZCkgUkVGRVJFTkNFUyBzYWxlc21hbnMoc2FsZXNtYW5faWQpIHwgc2Fs ZXNfcmFuZ2Vfc2FsZXNtYW5faWRfZmtleSAgIHwgezF9CisgICAgICAgICAgICAgICAgICAgIHBn X2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgY29ubmFt ZSAgICAgICAgICAgICB8IGNvbmtleSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLQorIENIRUNLICgoc2FsZXNfYW1vdW50ID4gMSkpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBzYWxlc19yYW5nZV9zYWxlc19hbW91bnRfY2hlY2sgfCB7Mn0K KyBGT1JFSUdOIEtFWSAoc2FsZXNtYW5faWQpIFJFRkVSRU5DRVMgc2FsZXNtZW4oc2FsZXNtYW5f aWQpIHwgc2FsZXNfcmFuZ2Vfc2FsZXNtYW5faWRfZmtleSAgIHwgezF9CiAoMiByb3dzKQogCiBB TFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIy MDIyIElOVE8KQEAgLTU5NiwyNCArNTk2LDI0IEBAIEFMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQ TElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTwogICAgUEFSVElUSU9OIHNh bGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0w MScpKTsKIC0tIFdlIHNob3VsZCBzZWUgdGhlIHNhbWUgQ09OU1RSQUlOVHMgYXMgb24gc2FsZXNf ZmViX21hcl9hcHIyMDIyIHBhcnRpdGlvbgogU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9p ZCksIGNvbm5hbWUsIGNvbmtleSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ucmVsaWQgPSAn c2FsZXNfZmViMjAyMic6OnJlZ2NsYXNzOjpvaWQ7Ci0gICAgICAgICAgICAgICAgICAgIHBnX2dl dF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIGNvbm5hbWUg ICAgICAgICAgICAgfCBjb25rZXkgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tCi0gQ0hFQ0sgKChzYWxlc19hbW91bnQgPiAxKSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBzYWxlc19yYW5nZV9zYWxlc19hbW91bnRfY2hlY2sgfCB7Mn0K LSBGT1JFSUdOIEtFWSAoc2FsZXNtYW5faWQpIFJFRkVSRU5DRVMgc2FsZXNtYW5zKHNhbGVzbWFu X2lkKSB8IHNhbGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkgICB8IHsxfQorICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgIGNvbm5hbWUgICAgICAgICAgICAgfCBjb25rZXkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyBDSEVDSyAoKHNhbGVzX2Ftb3VudCA+IDEpKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2FsZXNfcmFuZ2Vfc2FsZXNfYW1vdW50X2No ZWNrIHwgezJ9CisgRk9SRUlHTiBLRVkgKHNhbGVzbWFuX2lkKSBSRUZFUkVOQ0VTIHNhbGVzbWVu KHNhbGVzbWFuX2lkKSB8IHNhbGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkgICB8IHsxfQogKDIg cm93cykKIAogU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCksIGNvbm5hbWUsIGNvbmtl eSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ucmVsaWQgPSAnc2FsZXNfbWFyMjAyMic6OnJl Z2NsYXNzOjpvaWQ7Ci0gICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIGNvbm5hbWUgICAgICAgICAgICAgfCBjb25r ZXkgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCi0gQ0hF Q0sgKChzYWxlc19hbW91bnQgPiAxKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBzYWxlc19yYW5nZV9zYWxlc19hbW91bnRfY2hlY2sgfCB7Mn0KLSBGT1JFSUdOIEtFWSAoc2Fs ZXNtYW5faWQpIFJFRkVSRU5DRVMgc2FsZXNtYW5zKHNhbGVzbWFuX2lkKSB8IHNhbGVzX3Jhbmdl X3NhbGVzbWFuX2lkX2ZrZXkgICB8IHsxfQorICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29u c3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIGNvbm5hbWUgICAgICAg ICAgICAgfCBjb25rZXkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0KKyBDSEVDSyAoKHNhbGVzX2Ftb3VudCA+IDEpKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgc2FsZXNfcmFuZ2Vfc2FsZXNfYW1vdW50X2NoZWNrIHwgezJ9CisgRk9SRUlH TiBLRVkgKHNhbGVzbWFuX2lkKSBSRUZFUkVOQ0VTIHNhbGVzbWVuKHNhbGVzbWFuX2lkKSB8IHNh bGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkgICB8IHsxfQogKDIgcm93cykKIAogU0VMRUNUIHBn X2dldF9jb25zdHJhaW50ZGVmKG9pZCksIGNvbm5hbWUsIGNvbmtleSBGUk9NIHBnX2NvbnN0cmFp bnQgV0hFUkUgY29ucmVsaWQgPSAnc2FsZXNfYXByMjAyMic6OnJlZ2NsYXNzOjpvaWQ7Ci0gICAg ICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgIGNvbm5hbWUgICAgICAgICAgICAgfCBjb25rZXkgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCi0gQ0hFQ0sgKChzYWxlc19hbW91bnQg PiAxKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzYWxlc19yYW5nZV9zYWxl c19hbW91bnRfY2hlY2sgfCB7Mn0KLSBGT1JFSUdOIEtFWSAoc2FsZXNtYW5faWQpIFJFRkVSRU5D RVMgc2FsZXNtYW5zKHNhbGVzbWFuX2lkKSB8IHNhbGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkg ICB8IHsxfQorICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgIGNvbm5hbWUgICAgICAgICAgICAgfCBjb25rZXkgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyBDSEVDSyAoKHNh bGVzX2Ftb3VudCA+IDEpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2FsZXNf cmFuZ2Vfc2FsZXNfYW1vdW50X2NoZWNrIHwgezJ9CisgRk9SRUlHTiBLRVkgKHNhbGVzbWFuX2lk KSBSRUZFUkVOQ0VTIHNhbGVzbWVuKHNhbGVzbWFuX2lkKSB8IHNhbGVzX3JhbmdlX3NhbGVzbWFu X2lkX2ZrZXkgICB8IHsxfQogKDIgcm93cykKIAogLS0gRVJST1I6ICBuZXcgcm93IGZvciByZWxh dGlvbiAic2FsZXNfbWFyMjAyMiIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAic2FsZXNfcmFu Z2Vfc2FsZXNfYW1vdW50X2NoZWNrIgpAQCAtNjIzLDIzICs2MjMsMjMgQEAgREVUQUlMOiAgRmFp bGluZyByb3cgY29udGFpbnMgKDEsIDAsIDAzLTExLTIwMjIpLgogLS0gRVJST1I6ICBpbnNlcnQg b3IgdXBkYXRlIG9uIHRhYmxlICJzYWxlc19tYXIyMDIyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJzYWxlc19yYW5nZV9zYWxlc21hbl9pZF9ma2V5IgogSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICgtMSwgMTAsICcyMDIyLTAzLTExJyk7CiBFUlJPUjogIGluc2VydCBv ciB1cGRhdGUgb24gdGFibGUgInNhbGVzX21hcjIwMjIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInNhbGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkiCi1ERVRBSUw6ICBLZXkgKHNh bGVzbWFuX2lkKT0oLTEpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJzYWxlc21hbnMiLgorREVU QUlMOiAgS2V5IChzYWxlc21hbl9pZCk9KC0xKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAic2Fs ZXNtZW4iLgogLS0gb2sKIElOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgMTAsICcy MDIyLTAzLTExJyk7CiBEUk9QIFRBQkxFIHNhbGVzX3JhbmdlIENBU0NBREU7Ci1EUk9QIFRBQkxF IHNhbGVzbWFucyBDQVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21lbiBDQVNDQURFOwogLS0KIC0t IFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiBvbiBwYXJ0aXRpb25lZCB0YWJsZSBpbiBjYXNlIG9mIGV4 aXN0aW5nIEZPUkVJR04gS0VZIHJlZmVyZW5jZSBmcm9tIGFub3RoZXIgdGFibGUKIC0tCi1DUkVB VEUgVEFCTEUgc2FsZXNtYW5zKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgc2FsZXNtYW5f bmFtZSBWQVJDSEFSKDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7Ci1DUkVB VEUgVEFCTEUgc2FsZXMgKHNhbGVzbWFuX2lkIElOVCBSRUZFUkVOQ0VTIHNhbGVzbWFucyhzYWxl c21hbl9pZCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSk7Ci1DUkVBVEUgVEFC TEUgc2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00g KDEpIFRPICgxMCk7Ci1DUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfNDAgUEFSVElUSU9OIE9GIHNh bGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoNDApOwotSU5TRVJUIElOVE8gc2FsZXNt YW5zIFZBTFVFUyAoMSwgICdQb2lyb3QnKTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMg KDEwLCAnTWF5Jyk7Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxOSwgJ0l2YW5vdicp OwotSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMjAsICdTbWlybm9mZicpOwotSU5TRVJU IElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMzAsICdGb3JkJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNt ZW4oc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp KSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzbWFuX2lkKTsKK0NSRUFURSBUQUJMRSBzYWxlcyAo c2FsZXNtYW5faWQgSU5UIFJFRkVSRU5DRVMgc2FsZXNtZW4oc2FsZXNtYW5faWQpLCBzYWxlc19h bW91bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuMDFfMTAg UEFSVElUSU9OIE9GIHNhbGVzbWVuIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwKTsKK0NSRUFU RSBUQUJMRSBzYWxlc21lbjEwXzQwIFBBUlRJVElPTiBPRiBzYWxlc21lbiBGT1IgVkFMVUVTIEZS T00gKDEwKSBUTyAoNDApOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgxLCAgJ1BvaXJv dCcpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgxMCwgJ01heScpOworSU5TRVJUIElO VE8gc2FsZXNtZW4gVkFMVUVTICgxOSwgJ0l2YW5vdicpOworSU5TRVJUIElOVE8gc2FsZXNtZW4g VkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbiBWQUxVRVMgKDMw LCAnRm9yZCcpOwogSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxLCAgMTAwLCAnMjAyMi0wMy0w MScpOwogSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxLCAgMTEwLCAnMjAyMi0wMy0wMicpOwog SU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxMCwgMTUwLCAnMjAyMi0wMy0wMScpOwpAQCAtNjQ4 LDEzICs2NDgsMTMgQEAgSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxOSwgMjAwLCAnMjAyMi0w My0wNCcpOwogSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgyMCwgNTAsICAnMjAyMi0wMy0xMicp OwogSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgyMCwgMTcwLCAnMjAyMi0wMy0wMicpOwogSU5T RVJUIElOVE8gc2FsZXMgVkFMVUVTICgzMCwgMzAsICAnMjAyMi0wMy0wNCcpOwotU0VMRUNUICog RlJPTSBzYWxlc21hbnMwMV8xMDsKK1NFTEVDVCAqIEZST00gc2FsZXNtZW4wMV8xMDsKICBzYWxl c21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCiAtLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQog ICAgICAgICAgICAxIHwgUG9pcm90CiAoMSByb3cpCiAKLVNFTEVDVCAqIEZST00gc2FsZXNtYW5z MTBfNDA7CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWVuMTBfNDA7CiAgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIAogLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICAxMCB8 IE1heQpAQCAtNjYzLDMwICs2NjMsMzAgQEAgU0VMRUNUICogRlJPTSBzYWxlc21hbnMxMF80MDsK ICAgICAgICAgICAzMCB8IEZvcmQKICg0IHJvd3MpCiAKLUFMVEVSIFRBQkxFIHNhbGVzbWFucyBT UExJVCBQQVJUSVRJT04gc2FsZXNtYW5zMTBfNDAgSU5UTwotICAoUEFSVElUSU9OIHNhbGVzbWFu czEwXzIwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCksCi0gICBQQVJUSVRJT04gc2FsZXNt YW5zMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKSwKLSAgIFBBUlRJVElPTiBzYWxl c21hbnMzMF80MCBGT1IgVkFMVUVTIEZST00gKDMwKSBUTyAoNDApKTsKLVNFTEVDVCAqIEZST00g c2FsZXNtYW5zMDFfMTA7CitBTFRFUiBUQUJMRSBzYWxlc21lbiBTUExJVCBQQVJUSVRJT04gc2Fs ZXNtZW4xMF80MCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNtZW4xMF8yMCBGT1IgVkFMVUVTIEZS T00gKDEwKSBUTyAoMjApLAorICAgUEFSVElUSU9OIHNhbGVzbWVuMjBfMzAgRk9SIFZBTFVFUyBG Uk9NICgyMCkgVE8gKDMwKSwKKyAgIFBBUlRJVElPTiBzYWxlc21lbjMwXzQwIEZPUiBWQUxVRVMg RlJPTSAoMzApIFRPICg0MCkpOworU0VMRUNUICogRlJPTSBzYWxlc21lbjAxXzEwOwogIHNhbGVz bWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKIC0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAg ICAgICAgICAgIDEgfCBQb2lyb3QKICgxIHJvdykKIAotU0VMRUNUICogRlJPTSBzYWxlc21hbnMx MF8yMDsKK1NFTEVDVCAqIEZST00gc2FsZXNtZW4xMF8yMDsKICBzYWxlc21hbl9pZCB8IHNhbGVz bWFuX25hbWUgCiAtLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgIDEwIHwg TWF5CiAgICAgICAgICAgMTkgfCBJdmFub3YKICgyIHJvd3MpCiAKLVNFTEVDVCAqIEZST00gc2Fs ZXNtYW5zMjBfMzA7CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWVuMjBfMzA7CiAgc2FsZXNtYW5faWQg fCBzYWxlc21hbl9uYW1lIAogLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICAgICAgICAg ICAyMCB8IFNtaXJub2ZmCiAoMSByb3cpCiAKLVNFTEVDVCAqIEZST00gc2FsZXNtYW5zMzBfNDA7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWVuMzBfNDA7CiAgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9u YW1lIAogLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICAzMCB8IEZvcmQK QEAgLTY5NSw5OCArNjk1LDk4IEBAIFNFTEVDVCAqIEZST00gc2FsZXNtYW5zMzBfNDA7CiAtLSBF UlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInNhbGVzIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJzYWxlc19zYWxlc21hbl9pZF9ma2V5IgogSU5TRVJUIElOVE8gc2Fs ZXMgVkFMVUVTICg0MCwgNTAsICAnMjAyMi0wMy0wNCcpOwogRVJST1I6ICBpbnNlcnQgb3IgdXBk YXRlIG9uIHRhYmxlICJzYWxlcyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAic2Fs ZXNfc2FsZXNtYW5faWRfZmtleSIKLURFVEFJTDogIEtleSAoc2FsZXNtYW5faWQpPSg0MCkgaXMg bm90IHByZXNlbnQgaW4gdGFibGUgInNhbGVzbWFucyIuCitERVRBSUw6ICBLZXkgKHNhbGVzbWFu X2lkKT0oNDApIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJzYWxlc21lbiIuCiAtLSBvawogSU5T RVJUIElOVE8gc2FsZXMgVkFMVUVTICgzMCwgNTAsICAnMjAyMi0wMy0wNCcpOwogRFJPUCBUQUJM RSBzYWxlcyBDQVNDQURFOwotRFJPUCBUQUJMRSBzYWxlc21hbnMgQ0FTQ0FERTsKK0RST1AgVEFC TEUgc2FsZXNtZW4gQ0FTQ0FERTsKIC0tCiAtLSBUZXN0OiBzcGxpdCBwYXJ0aXRpb24gb2YgcGFy dGl0aW9uZWQgdGFibGUgd2l0aCB0cmlnZ2VycwogLS0KLUNSRUFURSBUQUJMRSBzYWxlc21hbnMo c2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKSBQ QVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzbWFuX2lkKTsKLUNSRUFURSBUQUJMRSBzYWxlc21hbnMw MV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwKTsK LUNSRUFURSBUQUJMRSBzYWxlc21hbnMxMF80MCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBW QUxVRVMgRlJPTSAoMTApIFRPICg0MCk7Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgx LCAgJ1BvaXJvdCcpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuKHNhbGVzbWFuX2lkIElOVCBQUklN QVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChz YWxlc21hbl9pZCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4wMV8xMCBQQVJUSVRJT04gT0Ygc2Fs ZXNtZW4gRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTApOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVu MTBfNDAgUEFSVElUSU9OIE9GIHNhbGVzbWVuIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICg0MCk7 CitJTlNFUlQgSU5UTyBzYWxlc21lbiBWQUxVRVMgKDEsICAnUG9pcm90Jyk7CiBDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoKSBSRVRVUk5TIHRyaWdn ZXIgTEFOR1VBR0UgJ3BscGdzcWwnIEFTICRCT0RZJAogQkVHSU4KIAlSQUlTRSBOT1RJQ0UgJ3Ry aWdnZXIoJSkgY2FsbGVkOiBhY3Rpb24gPSAlLCB3aGVuID0gJSwgbGV2ZWwgPSAlJywgVEdfQVJH VlswXSwgVEdfT1AsIFRHX1dIRU4sIFRHX0xFVkVMOwogICAgIFJFVFVSTiBOVUxMOwogRU5EOwog JEJPRFkkOwotQ1JFQVRFIFRSSUdHRVIgc2FsZXNtYW5zX2FmdGVyX2luc2VydF9zdGF0ZW1lbnRf dHJpZ2dlcgorQ1JFQVRFIFRSSUdHRVIgc2FsZXNtZW5fYWZ0ZXJfaW5zZXJ0X3N0YXRlbWVudF90 cmlnZ2VyCiAgICAgQUZURVIgSU5TRVJUCi0gICAgT04gc2FsZXNtYW5zCisgICAgT04gc2FsZXNt ZW4KICAgICBGT1IgRUFDSCBTVEFURU1FTlQKLSAgICBFWEVDVVRFIFBST0NFRFVSRSBhZnRlcl9p bnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVzbWFucycpOwotQ1JFQVRFIFRSSUdHRVIgc2FsZXNtYW5z X2FmdGVyX2luc2VydF9yb3dfdHJpZ2dlcgorICAgIEVYRUNVVEUgUFJPQ0VEVVJFIGFmdGVyX2lu c2VydF9yb3dfdHJpZ2dlcignc2FsZXNtZW4nKTsKK0NSRUFURSBUUklHR0VSIHNhbGVzbWVuX2Fm dGVyX2luc2VydF9yb3dfdHJpZ2dlcgogICAgIEFGVEVSIElOU0VSVAotICAgIE9OIHNhbGVzbWFu cworICAgIE9OIHNhbGVzbWVuCiAgICAgRk9SIEVBQ0ggUk9XCi0gICAgRVhFQ1VURSBQUk9DRURV UkUgYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCdzYWxlc21hbnMnKTsKKyAgICBFWEVDVVRFIFBS T0NFRFVSRSBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVzbWVuJyk7CiAtLSAyIHRyaWdn ZXJzIHNob3VsZCBmaXJlIGhlcmUgKHJvdyArIHN0YXRlbWVudCk6Ci1JTlNFUlQgSU5UTyBzYWxl c21hbnMgVkFMVUVTICgxMCwgJ01heScpOwotTk9USUNFOiAgdHJpZ2dlcihzYWxlc21hbnMpIGNh bGxlZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0gUk9XCi1OT1RJQ0U6 ICB0cmlnZ2VyKHNhbGVzbWFucykgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRF UiwgbGV2ZWwgPSBTVEFURU1FTlQKK0lOU0VSVCBJTlRPIHNhbGVzbWVuIFZBTFVFUyAoMTAsICdN YXknKTsKK05PVElDRTogIHRyaWdnZXIoc2FsZXNtZW4pIGNhbGxlZDogYWN0aW9uID0gSU5TRVJU LCB3aGVuID0gQUZURVIsIGxldmVsID0gUk9XCitOT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWVuKSBj YWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFNUQVRFTUVOVAog LS0gMSB0cmlnZ2VyIHNob3VsZCBmaXJlIGhlcmUgKHJvdyk6Ci1JTlNFUlQgSU5UTyBzYWxlc21h bnMxMF80MCBWQUxVRVMgKDE5LCAnSXZhbm92Jyk7Ci1OT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWFu cykgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cKLUFM VEVSIFRBQkxFIHNhbGVzbWFucyBTUExJVCBQQVJUSVRJT04gc2FsZXNtYW5zMTBfNDAgSU5UTwot ICAoUEFSVElUSU9OIHNhbGVzbWFuczEwXzIwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCks Ci0gICBQQVJUSVRJT04gc2FsZXNtYW5zMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMw KSwKLSAgIFBBUlRJVElPTiBzYWxlc21hbnMzMF80MCBGT1IgVkFMVUVTIEZST00gKDMwKSBUTyAo NDApKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuMTBfNDAgVkFMVUVTICgxOSwgJ0l2YW5vdicpOwor Tk9USUNFOiAgdHJpZ2dlcihzYWxlc21lbikgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4g PSBBRlRFUiwgbGV2ZWwgPSBST1cKK0FMVEVSIFRBQkxFIHNhbGVzbWVuIFNQTElUIFBBUlRJVElP TiBzYWxlc21lbjEwXzQwIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc21lbjEwXzIwIEZPUiBWQUxV RVMgRlJPTSAoMTApIFRPICgyMCksCisgICBQQVJUSVRJT04gc2FsZXNtZW4yMF8zMCBGT1IgVkFM VUVTIEZST00gKDIwKSBUTyAoMzApLAorICAgUEFSVElUSU9OIHNhbGVzbWVuMzBfNDAgRk9SIFZB TFVFUyBGUk9NICgzMCkgVE8gKDQwKSk7CiAtLSAyIHRyaWdnZXJzIHNob3VsZCBmaXJlIGhlcmUg KHJvdyArIHN0YXRlbWVudCk6Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgyMCwgJ1Nt aXJub2ZmJyk7Ci1OT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWFucykgY2FsbGVkOiBhY3Rpb24gPSBJ TlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cKLU5PVElDRTogIHRyaWdnZXIoc2FsZXNt YW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFNUQVRF TUVOVAorSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7CitOT1RJ Q0U6ICB0cmlnZ2VyKHNhbGVzbWVuKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFG VEVSLCBsZXZlbCA9IFJPVworTk9USUNFOiAgdHJpZ2dlcihzYWxlc21lbikgY2FsbGVkOiBhY3Rp b24gPSBJTlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBTVEFURU1FTlQKIC0tIDEgdHJpZ2dl ciBzaG91bGQgZmlyZSBoZXJlIChyb3cpOgotSU5TRVJUIElOVE8gc2FsZXNtYW5zMzBfNDAgVkFM VUVTICgzMCwgJ0ZvcmQnKTsKLU5PVElDRTogIHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFj dGlvbiA9IElOU0VSVCwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFJPVwotU0VMRUNUICogRlJPTSBz YWxlc21hbnMwMV8xMDsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuMzBfNDAgVkFMVUVTICgzMCwgJ0Zv cmQnKTsKK05PVElDRTogIHRyaWdnZXIoc2FsZXNtZW4pIGNhbGxlZDogYWN0aW9uID0gSU5TRVJU LCB3aGVuID0gQUZURVIsIGxldmVsID0gUk9XCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWVuMDFfMTA7 CiAgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAogLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0KICAgICAgICAgICAgMSB8IFBvaXJvdAogKDEgcm93KQogCi1TRUxFQ1QgKiBGUk9NIHNh bGVzbWFuczEwXzIwOworU0VMRUNUICogRlJPTSBzYWxlc21lbjEwXzIwOwogIHNhbGVzbWFuX2lk IHwgc2FsZXNtYW5fbmFtZSAKIC0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAgICAgICAg ICAgMTAgfCBNYXkKICAgICAgICAgICAxOSB8IEl2YW5vdgogKDIgcm93cykKIAotU0VMRUNUICog RlJPTSBzYWxlc21hbnMyMF8zMDsKK1NFTEVDVCAqIEZST00gc2FsZXNtZW4yMF8zMDsKICBzYWxl c21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCiAtLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQog ICAgICAgICAgIDIwIHwgU21pcm5vZmYKICgxIHJvdykKIAotU0VMRUNUICogRlJPTSBzYWxlc21h bnMzMF80MDsKK1NFTEVDVCAqIEZST00gc2FsZXNtZW4zMF80MDsKICBzYWxlc21hbl9pZCB8IHNh bGVzbWFuX25hbWUgCiAtLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgIDMw IHwgRm9yZAogKDEgcm93KQogCi1EUk9QIFRBQkxFIHNhbGVzbWFucyBDQVNDQURFOworRFJPUCBU QUJMRSBzYWxlc21lbiBDQVNDQURFOwogRFJPUCBGVU5DVElPTiBhZnRlcl9pbnNlcnRfcm93X3Ry aWdnZXIoKTsKIC0tCiAtLSBUZXN0OiBzcGxpdCBwYXJ0aXRpb24gd2l0Y2ggaWRlbnRpdHkgY29s dW1uCiAtLSBJZiBzcGxpdCBwYXJ0aXRpb24gY29sdW1uIGlzIGlkZW50aXR5IGNvbHVtbiwgY29s dW1ucyBvZiBuZXcgcGFydGl0aW9ucyBhcmUgaWRlbnRpdHkgY29sdW1ucyB0b28uCiAtLQotQ1JF QVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgR0VORVJBVEVEIEFMV0FZUyBBUyBJ REVOVElUWSBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSkgUEFSVElUSU9O IEJZIFJBTkdFIChzYWxlc21hbl9pZCk7Ci1DUkVBVEUgVEFCTEUgc2FsZXNtYW5zMV8yIFBBUlRJ VElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMik7CitDUkVBVEUgVEFC TEUgc2FsZXNtZW4oc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkg UFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5H RSAoc2FsZXNtYW5faWQpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuMV8yIFBBUlRJVElPTiBPRiBz YWxlc21lbiBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgyKTsKIC0tIENyZWF0ZSBuZXcgcGFydGl0 aW9uIHdpdGggaWRlbnRpdHkgY29sdW1uOgotQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczJfNShzYWxl c21hbl9pZCBJTlQgTk9UIE5VTEwsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOwotQUxURVIg VEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNtYW5zMl81IEZPUiBWQUxVRVMg RlJPTSAoMikgVE8gKDUpOwotSU5TRVJUIElOVE8gc2FsZXNtYW5zIChzYWxlc21hbl9uYW1lKSBW QUxVRVMgKCdQb2lyb3QnKTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFucyAoc2FsZXNtYW5fbmFtZSkg VkFMVUVTICgnSXZhbm92Jyk7Ci1TRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVy YXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdz YWxlc21hbnMnOjpyZWdjbGFzczo6b2lkOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuMl81KHNhbGVz bWFuX2lkIElOVCBOT1QgTlVMTCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7CitBTFRFUiBU QUJMRSBzYWxlc21lbiBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzbWVuMl81IEZPUiBWQUxVRVMgRlJP TSAoMikgVE8gKDUpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gKHNhbGVzbWFuX25hbWUpIFZBTFVF UyAoJ1BvaXJvdCcpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gKHNhbGVzbWFuX25hbWUpIFZBTFVF UyAoJ0l2YW5vdicpOworU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQg RlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNt ZW4nOjpyZWdjbGFzczo6b2lkOwogICAgIGF0dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8IGF0dGdl bmVyYXRlZCAKIC0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCiAg c2FsZXNtYW5faWQgICB8IGEgICAgICAgICAgIHwgCiAgc2FsZXNtYW5fbmFtZSB8ICAgICAgICAg ICAgIHwgCiAoMiByb3dzKQogCi1TRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVy YXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdz YWxlc21hbnMxXzInOjpyZWdjbGFzczo6b2lkOworU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5 LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0 cmVsaWQgPSAnc2FsZXNtZW4xXzInOjpyZWdjbGFzczo6b2lkOwogICAgIGF0dG5hbWUgICAgfCBh dHRpZGVudGl0eSB8IGF0dGdlbmVyYXRlZCAKIC0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tCiAgc2FsZXNtYW5faWQgICB8IGEgICAgICAgICAgIHwgCkBAIC03OTQs NTEgKzc5NCw1MSBAQCBTRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBG Uk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORAogKDIgcm93cykKIAogLS0gU3Bs aXQgcGFydGl0aW9uIGhhcyBpZGVudGl0eSBjb2x1bW46Ci1TRUxFQ1QgYXR0bmFtZSwgYXR0aWRl bnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFO RCBhdHRyZWxpZCA9ICdzYWxlc21hbnMyXzUnOjpyZWdjbGFzczo6b2lkOworU0VMRUNUIGF0dG5h bWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0 bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtZW4yXzUnOjpyZWdjbGFzczo6b2lkOwogICAg IGF0dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8IGF0dGdlbmVyYXRlZCAKIC0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCiAgc2FsZXNtYW5faWQgICB8IGEgICAgICAg ICAgIHwgCiAgc2FsZXNtYW5fbmFtZSB8ICAgICAgICAgICAgIHwgCiAoMiByb3dzKQogCi1BTFRF UiBUQUJMRSBzYWxlc21hbnMgU1BMSVQgUEFSVElUSU9OIHNhbGVzbWFuczJfNSBJTlRPCi0gIChQ QVJUSVRJT04gc2FsZXNtYW5zMl8zIEZPUiBWQUxVRVMgRlJPTSAoMikgVE8gKDMpLAotICAgUEFS VElUSU9OIHNhbGVzbWFuczNfNCBGT1IgVkFMVUVTIEZST00gKDMpIFRPICg0KSwKLSAgIFBBUlRJ VElPTiBzYWxlc21hbnM0XzUgRk9SIFZBTFVFUyBGUk9NICg0KSBUTyAoNSkpOwotSU5TRVJUIElO VE8gc2FsZXNtYW5zIChzYWxlc21hbl9uYW1lKSBWQUxVRVMgKCdNYXknKTsKLUlOU0VSVCBJTlRP IHNhbGVzbWFucyAoc2FsZXNtYW5fbmFtZSkgVkFMVUVTICgnRm9yZCcpOwotU0VMRUNUICogRlJP TSBzYWxlc21hbnMxXzI7CitBTFRFUiBUQUJMRSBzYWxlc21lbiBTUExJVCBQQVJUSVRJT04gc2Fs ZXNtZW4yXzUgSU5UTworICAoUEFSVElUSU9OIHNhbGVzbWVuMl8zIEZPUiBWQUxVRVMgRlJPTSAo MikgVE8gKDMpLAorICAgUEFSVElUSU9OIHNhbGVzbWVuM180IEZPUiBWQUxVRVMgRlJPTSAoMykg VE8gKDQpLAorICAgUEFSVElUSU9OIHNhbGVzbWVuNF81IEZPUiBWQUxVRVMgRlJPTSAoNCkgVE8g KDUpKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuIChzYWxlc21hbl9uYW1lKSBWQUxVRVMgKCdNYXkn KTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuIChzYWxlc21hbl9uYW1lKSBWQUxVRVMgKCdGb3JkJyk7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWVuMV8yOwogIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFt ZSAKIC0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgIDEgfCBQb2lyb3QK ICgxIHJvdykKIAotU0VMRUNUICogRlJPTSBzYWxlc21hbnMyXzM7CitTRUxFQ1QgKiBGUk9NIHNh bGVzbWVuMl8zOwogIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKIC0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgIDIgfCBJdmFub3YKICgxIHJvdykKIAotU0VMRUNU ICogRlJPTSBzYWxlc21hbnMzXzQ7CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWVuM180OwogIHNhbGVz bWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKIC0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAg ICAgICAgICAgIDMgfCBNYXkKICgxIHJvdykKIAotU0VMRUNUICogRlJPTSBzYWxlc21hbnM0XzU7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWVuNF81OwogIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFt ZSAKIC0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgIDQgfCBGb3JkCiAo MSByb3cpCiAKLVNFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00g cGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFucyc6 OnJlZ2NsYXNzOjpvaWQ7CitTRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRl ZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxl c21lbic6OnJlZ2NsYXNzOjpvaWQ7CiAgICAgYXR0bmFtZSAgICB8IGF0dGlkZW50aXR5IHwgYXR0 Z2VuZXJhdGVkIAogLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0K ICBzYWxlc21hbl9pZCAgIHwgYSAgICAgICAgICAgfCAKICBzYWxlc21hbl9uYW1lIHwgICAgICAg ICAgICAgfCAKICgyIHJvd3MpCiAKLVNFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2Vu ZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0g J3NhbGVzbWFuczFfMic6OnJlZ2NsYXNzOjpvaWQ7CitTRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRp dHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBh dHRyZWxpZCA9ICdzYWxlc21lbjFfMic6OnJlZ2NsYXNzOjpvaWQ7CiAgICAgYXR0bmFtZSAgICB8 IGF0dGlkZW50aXR5IHwgYXR0Z2VuZXJhdGVkIAogLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0KICBzYWxlc21hbl9pZCAgIHwgYSAgICAgICAgICAgfCAKQEAgLTg0 Niw3NCArODQ2LDc0IEBAIFNFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVk IEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5ECiAoMiByb3dzKQogCiAtLSBO ZXcgcGFydGl0aW9ucyBoYXZlIGlkZW50aXR5LWNvbHVtbnM6Ci1TRUxFQ1QgYXR0bmFtZSwgYXR0 aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAw IEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnMyXzMnOjpyZWdjbGFzczo6b2lkOworU0VMRUNUIGF0 dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUg YXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtZW4yXzMnOjpyZWdjbGFzczo6b2lkOwog ICAgIGF0dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8IGF0dGdlbmVyYXRlZCAKIC0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCiAgc2FsZXNtYW5faWQgICB8IGEgICAg ICAgICAgIHwgCiAgc2FsZXNtYW5fbmFtZSB8ICAgICAgICAgICAgIHwgCiAoMiByb3dzKQogCi1T RUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0 ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnMzXzQnOjpyZWdjbGFz czo6b2lkOworU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBw Z19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtZW4zXzQn OjpyZWdjbGFzczo6b2lkOwogICAgIGF0dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8IGF0dGdlbmVy YXRlZCAKIC0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCiAgc2Fs ZXNtYW5faWQgICB8IGEgICAgICAgICAgIHwgCiAgc2FsZXNtYW5fbmFtZSB8ICAgICAgICAgICAg IHwgCiAoMiByb3dzKQogCi1TRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRl ZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxl c21hbnM0XzUnOjpyZWdjbGFzczo6b2lkOworU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBh dHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVs aWQgPSAnc2FsZXNtZW40XzUnOjpyZWdjbGFzczo6b2lkOwogICAgIGF0dG5hbWUgICAgfCBhdHRp ZGVudGl0eSB8IGF0dGdlbmVyYXRlZCAKIC0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tCiAgc2FsZXNtYW5faWQgICB8IGEgICAgICAgICAgIHwgCiAgc2FsZXNtYW5f bmFtZSB8ICAgICAgICAgICAgIHwgCiAoMiByb3dzKQogCi1EUk9QIFRBQkxFIHNhbGVzbWFucyBD QVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21lbiBDQVNDQURFOwogLS0KIC0tIFRlc3Q6IHNwbGl0 IHBhcnRpdGlvbiB3aXRoIGRlbGV0ZWQgY29sdW1ucwogLS0KLUNSRUFURSBUQUJMRSBzYWxlc21h bnMoc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp KSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzbWFuX2lkKTsKLUNSRUFURSBUQUJMRSBzYWxlc21h bnMwMV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEw KTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbihzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNh bGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQp OworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuMDFfMTAgUEFSVElUSU9OIE9GIHNhbGVzbWVuIEZPUiBW QUxVRVMgRlJPTSAoMSkgVE8gKDEwKTsKIC0tIENyZWF0ZSBuZXcgcGFydGl0aW9uIHdpdGggc29t ZSBkZWxldGVkIGNvbHVtbnM6Ci1DUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfNDAoZDEgVkFSQ0hB UigzMCksIHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgZDIgSU5ULCBkMyBEQVRFLCBzYWxl c21hbl9uYW1lIFZBUkNIQVIoMzApKTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQwIFZBTFVF UyAoJ2R1bW15IHZhbHVlIDEnLCAxOSwgMTAwLCBub3coKSwgJ0l2YW5vdicpOwotSU5TRVJUIElO VE8gc2FsZXNtYW5zMTBfNDAgVkFMVUVTICgnZHVtbXkgdmFsdWUgMicsIDIwLCAxMDEsIG5vdygp LCAnU21pcm5vZmYnKTsKLUFMVEVSIFRBQkxFIHNhbGVzbWFuczEwXzQwIERST1AgQ09MVU1OIGQx OwotQUxURVIgVEFCTEUgc2FsZXNtYW5zMTBfNDAgRFJPUCBDT0xVTU4gZDI7Ci1BTFRFUiBUQUJM RSBzYWxlc21hbnMxMF80MCBEUk9QIENPTFVNTiBkMzsKLUFMVEVSIFRBQkxFIHNhbGVzbWFucyBB VFRBQ0ggUEFSVElUSU9OIHNhbGVzbWFuczEwXzQwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICg0 MCk7Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxLCAnUG9pcm90Jyk7Ci1JTlNFUlQg SU5UTyBzYWxlc21hbnMgVkFMVUVTICgxMCwgJ01heScpOwotSU5TRVJUIElOVE8gc2FsZXNtYW5z IFZBTFVFUyAoMzAsICdGb3JkJyk7Ci1BTFRFUiBUQUJMRSBzYWxlc21hbnMgU1BMSVQgUEFSVElU SU9OIHNhbGVzbWFuczEwXzQwIElOVE8KLSAgKFBBUlRJVElPTiBzYWxlc21hbnMxMF8yMCBGT1Ig VkFMVUVTIEZST00gKDEwKSBUTyAoMjApLAotICAgUEFSVElUSU9OIHNhbGVzbWFuczIwXzMwIEZP UiBWQUxVRVMgRlJPTSAoMjApIFRPICgzMCksCi0gICBQQVJUSVRJT04gc2FsZXNtYW5zMzBfNDAg Rk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKSk7Ci1zZWxlY3QgKiBmcm9tIHNhbGVzbWFuczAx XzEwOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuMTBfNDAoZDEgVkFSQ0hBUigzMCksIHNhbGVzbWFu X2lkIElOVCBQUklNQVJZIEtFWSwgZDIgSU5ULCBkMyBEQVRFLCBzYWxlc21hbl9uYW1lIFZBUkNI QVIoMzApKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuMTBfNDAgVkFMVUVTICgnZHVtbXkgdmFsdWUg MScsIDE5LCAxMDAsIG5vdygpLCAnSXZhbm92Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbjEwXzQw IFZBTFVFUyAoJ2R1bW15IHZhbHVlIDInLCAyMCwgMTAxLCBub3coKSwgJ1NtaXJub2ZmJyk7CitB TFRFUiBUQUJMRSBzYWxlc21lbjEwXzQwIERST1AgQ09MVU1OIGQxOworQUxURVIgVEFCTEUgc2Fs ZXNtZW4xMF80MCBEUk9QIENPTFVNTiBkMjsKK0FMVEVSIFRBQkxFIHNhbGVzbWVuMTBfNDAgRFJP UCBDT0xVTU4gZDM7CitBTFRFUiBUQUJMRSBzYWxlc21lbiBBVFRBQ0ggUEFSVElUSU9OIHNhbGVz bWVuMTBfNDAgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDQwKTsKK0lOU0VSVCBJTlRPIHNhbGVz bWVuIFZBTFVFUyAoMSwgJ1BvaXJvdCcpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgx MCwgJ01heScpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgzMCwgJ0ZvcmQnKTsKK0FM VEVSIFRBQkxFIHNhbGVzbWVuIFNQTElUIFBBUlRJVElPTiBzYWxlc21lbjEwXzQwIElOVE8KKyAg KFBBUlRJVElPTiBzYWxlc21lbjEwXzIwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCksCisg ICBQQVJUSVRJT04gc2FsZXNtZW4yMF8zMCBGT1IgVkFMVUVTIEZST00gKDIwKSBUTyAoMzApLAor ICAgUEFSVElUSU9OIHNhbGVzbWVuMzBfNDAgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKSk7 CitzZWxlY3QgKiBmcm9tIHNhbGVzbWVuMDFfMTA7CiAgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9u YW1lIAogLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICAgMSB8IFBvaXJv dAogKDEgcm93KQogCi1zZWxlY3QgKiBmcm9tIHNhbGVzbWFuczEwXzIwOworc2VsZWN0ICogZnJv bSBzYWxlc21lbjEwXzIwOwogIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKIC0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgMTkgfCBJdmFub3YKICAgICAgICAgICAx MCB8IE1heQogKDIgcm93cykKIAotc2VsZWN0ICogZnJvbSBzYWxlc21hbnMyMF8zMDsKK3NlbGVj dCAqIGZyb20gc2FsZXNtZW4yMF8zMDsKICBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCiAt LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgIDIwIHwgU21pcm5vZmYKICgx IHJvdykKIAotc2VsZWN0ICogZnJvbSBzYWxlc21hbnMzMF80MDsKK3NlbGVjdCAqIGZyb20gc2Fs ZXNtZW4zMF80MDsKICBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCiAtLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgIDMwIHwgRm9yZAogKDEgcm93KQogCi1EUk9QIFRB QkxFIHNhbGVzbWFucyBDQVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21lbiBDQVNDQURFOwogLS0K IC0tIFRlc3Q6IHNwbGl0IHN1Yi1wYXJ0aXRpb24KIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFy dGl0aW9uX21lcmdlLnNxbAppbmRleCA2ZmFhYzk1OWE3Yy4uZGY3MzdlMjE0ZWUgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbApAQCAtMTkzLDE0ICsxOTMsMTQgQEAg RFJPUCBUQUJMRSBzYWxlc19kYXRlOwogLS0KIC0tIFRlc3Q6IG1lcmdlIHBhcnRpdGlvbnMgb2Yg cGFydGl0aW9uZWQgdGFibGUgd2l0aCB0cmlnZ2VycwogLS0KLUNSRUFURSBUQUJMRSBzYWxlc21h bnMoc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp KSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzbWFuX2lkKTsKK0NSRUFURSBUQUJMRSBzYWxlc21l bihzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkp IFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOwogCi1DUkVBVEUgVEFCTEUgc2FsZXNt YW5zMDFfMTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgx MCk7Ci1DUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfMjAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBG T1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApOwotQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczIwXzMw IFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKLUNS RUFURSBUQUJMRSBzYWxlc21hbnMzMF80MCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxV RVMgRlJPTSAoMzApIFRPICg0MCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4wMV8xMCBQQVJUSVRJ T04gT0Ygc2FsZXNtZW4gRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTApOworQ1JFQVRFIFRBQkxF IHNhbGVzbWVuMTBfMjAgUEFSVElUSU9OIE9GIHNhbGVzbWVuIEZPUiBWQUxVRVMgRlJPTSAoMTAp IFRPICgyMCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4yMF8zMCBQQVJUSVRJT04gT0Ygc2FsZXNt ZW4gRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbjMw XzQwIFBBUlRJVElPTiBPRiBzYWxlc21lbiBGT1IgVkFMVUVTIEZST00gKDMwKSBUTyAoNDApOwog Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxLCAgJ1BvaXJvdCcpOworSU5TRVJUIElO VE8gc2FsZXNtZW4gVkFMVUVTICgxLCAgJ1BvaXJvdCcpOwogCiBDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VB R0UgJ3BscGdzcWwnIEFTICRCT0RZJAogQkVHSU4KQEAgLTIwOSw3MCArMjA5LDcwIEBAIEJFR0lO CiBFTkQ7CiAkQk9EWSQ7CiAKLUNSRUFURSBUUklHR0VSIHNhbGVzbWFuc19hZnRlcl9pbnNlcnRf c3RhdGVtZW50X3RyaWdnZXIKK0NSRUFURSBUUklHR0VSIHNhbGVzbWVuX2FmdGVyX2luc2VydF9z dGF0ZW1lbnRfdHJpZ2dlcgogICAgIEFGVEVSIElOU0VSVAotICAgIE9OIHNhbGVzbWFucworICAg IE9OIHNhbGVzbWVuCiAgICAgRk9SIEVBQ0ggU1RBVEVNRU5UCi0gICAgRVhFQ1VURSBQUk9DRURV UkUgYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCdzYWxlc21hbnMnKTsKKyAgICBFWEVDVVRFIFBS T0NFRFVSRSBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVzbWVuJyk7CiAKLUNSRUFURSBU UklHR0VSIHNhbGVzbWFuc19hZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIKK0NSRUFURSBUUklHR0VS IHNhbGVzbWVuX2FmdGVyX2luc2VydF9yb3dfdHJpZ2dlcgogICAgIEFGVEVSIElOU0VSVAotICAg IE9OIHNhbGVzbWFucworICAgIE9OIHNhbGVzbWVuCiAgICAgRk9SIEVBQ0ggUk9XCi0gICAgRVhF Q1VURSBQUk9DRURVUkUgYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCdzYWxlc21hbnMnKTsKKyAg ICBFWEVDVVRFIFBST0NFRFVSRSBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVzbWVuJyk7 CiAKIC0tIDIgdHJpZ2dlcnMgc2hvdWxkIGZpcmUgaGVyZSAocm93ICsgc3RhdGVtZW50KToKLUlO U0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEwLCAnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxl c21lbiBWQUxVRVMgKDEwLCAnTWF5Jyk7CiAtLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAo cm93KToKLUlOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzIwIFZBTFVFUyAoMTksICdJdmFub3YnKTsK K0lOU0VSVCBJTlRPIHNhbGVzbWVuMTBfMjAgVkFMVUVTICgxOSwgJ0l2YW5vdicpOwogCi1BTFRF UiBUQUJMRSBzYWxlc21hbnMgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNtYW5zMTBfMjAsIHNhbGVz bWFuczIwXzMwLCBzYWxlc21hbnMzMF80MCkgSU5UTyBzYWxlc21hbnMxMF80MDsKK0FMVEVSIFRB QkxFIHNhbGVzbWVuIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzbWVuMTBfMjAsIHNhbGVzbWVuMjBf MzAsIHNhbGVzbWVuMzBfNDApIElOVE8gc2FsZXNtZW4xMF80MDsKIAogLS0gMiB0cmlnZ2VycyBz aG91bGQgZmlyZSBoZXJlIChyb3cgKyBzdGF0ZW1lbnQpOgotSU5TRVJUIElOVE8gc2FsZXNtYW5z IFZBTFVFUyAoMjAsICdTbWlybm9mZicpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgy MCwgJ1NtaXJub2ZmJyk7CiAtLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToKLUlO U0VSVCBJTlRPIHNhbGVzbWFuczEwXzQwIFZBTFVFUyAoMzAsICdGb3JkJyk7CitJTlNFUlQgSU5U TyBzYWxlc21lbjEwXzQwIFZBTFVFUyAoMzAsICdGb3JkJyk7CiAKLVNFTEVDVCAqIEZST00gc2Fs ZXNtYW5zMDFfMTA7Ci1TRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczEwXzQwOworU0VMRUNUICogRlJP TSBzYWxlc21lbjAxXzEwOworU0VMRUNUICogRlJPTSBzYWxlc21lbjEwXzQwOwogCi1EUk9QIFRB QkxFIHNhbGVzbWFuczsKK0RST1AgVEFCTEUgc2FsZXNtZW47CiBEUk9QIEZVTkNUSU9OIGFmdGVy X2luc2VydF9yb3dfdHJpZ2dlcigpOwogCiAtLQogLS0gVGVzdDogbWVyZ2UgcGFydGl0aW9ucyB3 aXRoIGRlbGV0ZWQgY29sdW1ucwogLS0KLUNSRUFURSBUQUJMRSBzYWxlc21hbnMoc2FsZXNtYW5f aWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKSBQQVJUSVRJT04g QlkgUkFOR0UgKHNhbGVzbWFuX2lkKTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbihzYWxlc21hbl9p ZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBC WSBSQU5HRSAoc2FsZXNtYW5faWQpOwogCi1DUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAgUEFS VElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CitDUkVBVEUg VEFCTEUgc2FsZXNtZW4wMV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNtZW4gRk9SIFZBTFVFUyBGUk9N ICgxKSBUTyAoMTApOwogLS0gQ3JlYXRlIHBhcnRpdGlvbnMgd2l0aCBzb21lIGRlbGV0ZWQgY29s dW1uczoKLUNSRUFURSBUQUJMRSBzYWxlc21hbnMxMF8yMChkMSBWQVJDSEFSKDMwKSwgc2FsZXNt YW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKTsKLUNSRUFU RSBUQUJMRSBzYWxlc21hbnMyMF8zMChzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIGQyIElO VCwgIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOwotQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczMw XzQwKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgZDMgREFURSwgc2FsZXNtYW5fbmFtZSBW QVJDSEFSKDMwKSk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4xMF8yMChkMSBWQVJDSEFSKDMwKSwg c2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKTsK K0NSRUFURSBUQUJMRSBzYWxlc21lbjIwXzMwKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwg ZDIgSU5ULCAgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7CitDUkVBVEUgVEFCTEUgc2FsZXNt ZW4zMF80MChzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIGQzIERBVEUsIHNhbGVzbWFuX25h bWUgVkFSQ0hBUigzMCkpOwogCi1JTlNFUlQgSU5UTyBzYWxlc21hbnMxMF8yMCBWQUxVRVMgKCdk dW1teSB2YWx1ZSAxJywgMTksICdJdmFub3YnKTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFuczIwXzMw IFZBTFVFUyAoMjAsIDEwMSwgJ1NtaXJub2ZmJyk7Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMzMF80 MCBWQUxVRVMgKDMxLCBub3coKSwgJ1BvcG92Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbjEwXzIw IFZBTFVFUyAoJ2R1bW15IHZhbHVlIDEnLCAxOSwgJ0l2YW5vdicpOworSU5TRVJUIElOVE8gc2Fs ZXNtZW4yMF8zMCBWQUxVRVMgKDIwLCAxMDEsICdTbWlybm9mZicpOworSU5TRVJUIElOVE8gc2Fs ZXNtZW4zMF80MCBWQUxVRVMgKDMxLCBub3coKSwgJ1BvcG92Jyk7CiAKLUFMVEVSIFRBQkxFIHNh bGVzbWFuczEwXzIwIERST1AgQ09MVU1OIGQxOwotQUxURVIgVEFCTEUgc2FsZXNtYW5zMjBfMzAg RFJPUCBDT0xVTU4gZDI7Ci1BTFRFUiBUQUJMRSBzYWxlc21hbnMzMF80MCBEUk9QIENPTFVNTiBk MzsKK0FMVEVSIFRBQkxFIHNhbGVzbWVuMTBfMjAgRFJPUCBDT0xVTU4gZDE7CitBTFRFUiBUQUJM RSBzYWxlc21lbjIwXzMwIERST1AgQ09MVU1OIGQyOworQUxURVIgVEFCTEUgc2FsZXNtZW4zMF80 MCBEUk9QIENPTFVNTiBkMzsKIAotQUxURVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQQVJUSVRJ T04gc2FsZXNtYW5zMTBfMjAgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDIwKTsKLUFMVEVSIFRB QkxFIHNhbGVzbWFucyBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzbWFuczIwXzMwIEZPUiBWQUxVRVMg RlJPTSAoMjApIFRPICgzMCk7Ci1BTFRFUiBUQUJMRSBzYWxlc21hbnMgQVRUQUNIIFBBUlRJVElP TiBzYWxlc21hbnMzMF80MCBGT1IgVkFMVUVTIEZST00gKDMwKSBUTyAoNDApOworQUxURVIgVEFC TEUgc2FsZXNtZW4gQVRUQUNIIFBBUlRJVElPTiBzYWxlc21lbjEwXzIwIEZPUiBWQUxVRVMgRlJP TSAoMTApIFRPICgyMCk7CitBTFRFUiBUQUJMRSBzYWxlc21lbiBBVFRBQ0ggUEFSVElUSU9OIHNh bGVzbWVuMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKK0FMVEVSIFRBQkxFIHNh bGVzbWVuIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNtZW4zMF80MCBGT1IgVkFMVUVTIEZST00gKDMw KSBUTyAoNDApOwogCi1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxLCAnUG9pcm90Jyk7 Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxMCwgJ01heScpOwotSU5TRVJUIElOVE8g c2FsZXNtYW5zIFZBTFVFUyAoMzAsICdGb3JkJyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbiBWQUxV RVMgKDEsICdQb2lyb3QnKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuIFZBTFVFUyAoMTAsICdNYXkn KTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuIFZBTFVFUyAoMzAsICdGb3JkJyk7CiAKLUFMVEVSIFRB QkxFIHNhbGVzbWFucyBNRVJHRSBQQVJUSVRJT05TIChzYWxlc21hbnMxMF8yMCwgc2FsZXNtYW5z MjBfMzAsIHNhbGVzbWFuczMwXzQwKSBJTlRPIHNhbGVzbWFuczEwXzQwOworQUxURVIgVEFCTEUg c2FsZXNtZW4gTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNtZW4xMF8yMCwgc2FsZXNtZW4yMF8zMCwg c2FsZXNtZW4zMF80MCkgSU5UTyBzYWxlc21lbjEwXzQwOwogCi1zZWxlY3QgKiBmcm9tIHNhbGVz bWFuczsKLXNlbGVjdCAqIGZyb20gc2FsZXNtYW5zMDFfMTA7Ci1zZWxlY3QgKiBmcm9tIHNhbGVz bWFuczEwXzQwOworc2VsZWN0ICogZnJvbSBzYWxlc21lbjsKK3NlbGVjdCAqIGZyb20gc2FsZXNt ZW4wMV8xMDsKK3NlbGVjdCAqIGZyb20gc2FsZXNtZW4xMF80MDsKIAotRFJPUCBUQUJMRSBzYWxl c21hbnM7CitEUk9QIFRBQkxFIHNhbGVzbWVuOwogCiAtLQogLS0gVGVzdDogbWVyZ2Ugc3ViLXBh cnRpdGlvbnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9zcGxp dC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fc3BsaXQuc3FsCmluZGV4IDU3 NmY5ZjBmNjNjLi4xMmRlZjk1ZDFkNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cGFydGl0aW9uX3NwbGl0LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25f c3BsaXQuc3FsCkBAIC0zMzcsMTEgKzMzNywxMSBAQCBEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOwog LS0KIC0tIFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiB3aXRoIENIRUNLIGFuZCBGT1JFSUdOIEtFWSBD T05TVFJBSU5UcyBvbiBwYXJ0aXRpb25lZCB0YWJsZQogLS0KLUNSRUFURSBUQUJMRSBzYWxlc21h bnMoc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp KTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEsICAnUG9pcm90Jyk7CitDUkVBVEUg VEFCTEUgc2FsZXNtZW4oc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1l IFZBUkNIQVIoMzApKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuIFZBTFVFUyAoMSwgICdQb2lyb3Qn KTsKIAogQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlICgKLXNhbGVzbWFuX2lkIElOVCBSRUZFUkVO Q0VTIHNhbGVzbWFucyhzYWxlc21hbl9pZCksCitzYWxlc21hbl9pZCBJTlQgUkVGRVJFTkNFUyBz YWxlc21lbihzYWxlc21hbl9pZCksCiBzYWxlc19hbW91bnQgSU5UIENIRUNLIChzYWxlc19hbW91 bnQgPiAxKSwKIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRl KTsKIApAQCAtMzY5LDIyICszNjksMjIgQEAgSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgtMSwgMTAsICcyMDIyLTAzLTExJyk7CiBJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDEsIDEwLCAnMjAyMi0wMy0xMScpOwogCiBEUk9QIFRBQkxFIHNhbGVzX3JhbmdlIENBU0NBREU7 Ci1EUk9QIFRBQkxFIHNhbGVzbWFucyBDQVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21lbiBDQVND QURFOwogCiAtLQogLS0gVGVzdDogc3BsaXQgcGFydGl0aW9uIG9uIHBhcnRpdGlvbmVkIHRhYmxl IGluIGNhc2Ugb2YgZXhpc3RpbmcgRk9SRUlHTiBLRVkgcmVmZXJlbmNlIGZyb20gYW5vdGhlciB0 YWJsZQogLS0KLUNSRUFURSBUQUJMRSBzYWxlc21hbnMoc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkg S0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVz bWFuX2lkKTsKLUNSRUFURSBUQUJMRSBzYWxlcyAoc2FsZXNtYW5faWQgSU5UIFJFRkVSRU5DRVMg c2FsZXNtYW5zKHNhbGVzbWFuX2lkKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRF KTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbihzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNh bGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQp OworQ1JFQVRFIFRBQkxFIHNhbGVzIChzYWxlc21hbl9pZCBJTlQgUkVGRVJFTkNFUyBzYWxlc21l bihzYWxlc21hbl9pZCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSk7CiAKLUNS RUFURSBUQUJMRSBzYWxlc21hbnMwMV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxV RVMgRlJPTSAoMSkgVE8gKDEwKTsKLUNSRUFURSBUQUJMRSBzYWxlc21hbnMxMF80MCBQQVJUSVRJ T04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICg0MCk7CitDUkVBVEUgVEFC TEUgc2FsZXNtZW4wMV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNtZW4gRk9SIFZBTFVFUyBGUk9NICgx KSBUTyAoMTApOworQ1JFQVRFIFRBQkxFIHNhbGVzbWVuMTBfNDAgUEFSVElUSU9OIE9GIHNhbGVz bWVuIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICg0MCk7CiAKLUlOU0VSVCBJTlRPIHNhbGVzbWFu cyBWQUxVRVMgKDEsICAnUG9pcm90Jyk7Ci1JTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgx MCwgJ01heScpOwotSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMTksICdJdmFub3YnKTsK LUlOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDIwLCAnU21pcm5vZmYnKTsKLUlOU0VSVCBJ TlRPIHNhbGVzbWFucyBWQUxVRVMgKDMwLCAnRm9yZCcpOworSU5TRVJUIElOVE8gc2FsZXNtZW4g VkFMVUVTICgxLCAgJ1BvaXJvdCcpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgxMCwg J01heScpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgxOSwgJ0l2YW5vdicpOworSU5T RVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7CitJTlNFUlQgSU5UTyBz YWxlc21lbiBWQUxVRVMgKDMwLCAnRm9yZCcpOwogCiBJTlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMg KDEsICAxMDAsICcyMDIyLTAzLTAxJyk7CiBJTlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMgKDEsICAx MTAsICcyMDIyLTAzLTAyJyk7CkBAIC0zOTUsMTggKzM5NSwxOCBAQCBJTlNFUlQgSU5UTyBzYWxl cyBWQUxVRVMgKDIwLCA1MCwgICcyMDIyLTAzLTEyJyk7CiBJTlNFUlQgSU5UTyBzYWxlcyBWQUxV RVMgKDIwLCAxNzAsICcyMDIyLTAzLTAyJyk7CiBJTlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMgKDMw LCAzMCwgICcyMDIyLTAzLTA0Jyk7CiAKLVNFTEVDVCAqIEZST00gc2FsZXNtYW5zMDFfMTA7Ci1T RUxFQ1QgKiBGUk9NIHNhbGVzbWFuczEwXzQwOworU0VMRUNUICogRlJPTSBzYWxlc21lbjAxXzEw OworU0VMRUNUICogRlJPTSBzYWxlc21lbjEwXzQwOwogCi1BTFRFUiBUQUJMRSBzYWxlc21hbnMg U1BMSVQgUEFSVElUSU9OIHNhbGVzbWFuczEwXzQwIElOVE8KLSAgKFBBUlRJVElPTiBzYWxlc21h bnMxMF8yMCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApLAotICAgUEFSVElUSU9OIHNhbGVz bWFuczIwXzMwIEZPUiBWQUxVRVMgRlJPTSAoMjApIFRPICgzMCksCi0gICBQQVJUSVRJT04gc2Fs ZXNtYW5zMzBfNDAgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKSk7CitBTFRFUiBUQUJMRSBz YWxlc21lbiBTUExJVCBQQVJUSVRJT04gc2FsZXNtZW4xMF80MCBJTlRPCisgIChQQVJUSVRJT04g c2FsZXNtZW4xMF8yMCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApLAorICAgUEFSVElUSU9O IHNhbGVzbWVuMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKSwKKyAgIFBBUlRJVElP TiBzYWxlc21lbjMwXzQwIEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCkpOwogCi1TRUxFQ1Qg KiBGUk9NIHNhbGVzbWFuczAxXzEwOwotU0VMRUNUICogRlJPTSBzYWxlc21hbnMxMF8yMDsKLVNF TEVDVCAqIEZST00gc2FsZXNtYW5zMjBfMzA7Ci1TRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczMwXzQw OworU0VMRUNUICogRlJPTSBzYWxlc21lbjAxXzEwOworU0VMRUNUICogRlJPTSBzYWxlc21lbjEw XzIwOworU0VMRUNUICogRlJPTSBzYWxlc21lbjIwXzMwOworU0VMRUNUICogRlJPTSBzYWxlc21l bjMwXzQwOwogCiAtLSBFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInNhbGVzIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJzYWxlc19zYWxlc21hbl9pZF9ma2V5Igog SU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICg0MCwgNTAsICAnMjAyMi0wMy0wNCcpOwpAQCAtNDE0 LDE3ICs0MTQsMTcgQEAgSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICg0MCwgNTAsICAnMjAyMi0w My0wNCcpOwogSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgzMCwgNTAsICAnMjAyMi0wMy0wNCcp OwogCiBEUk9QIFRBQkxFIHNhbGVzIENBU0NBREU7Ci1EUk9QIFRBQkxFIHNhbGVzbWFucyBDQVND QURFOworRFJPUCBUQUJMRSBzYWxlc21lbiBDQVNDQURFOwogCiAtLQogLS0gVGVzdDogc3BsaXQg cGFydGl0aW9uIG9mIHBhcnRpdGlvbmVkIHRhYmxlIHdpdGggdHJpZ2dlcnMKIC0tCi1DUkVBVEUg VEFCTEUgc2FsZXNtYW5zKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFt ZSBWQVJDSEFSKDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7CitDUkVBVEUg VEFCTEUgc2FsZXNtZW4oc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1l IFZBUkNIQVIoMzApKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzbWFuX2lkKTsKIAotQ1JFQVRF IFRBQkxFIHNhbGVzbWFuczAxXzEwIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBG Uk9NICgxKSBUTyAoMTApOwotQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczEwXzQwIFBBUlRJVElPTiBP RiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDQwKTsKK0NSRUFURSBUQUJMRSBz YWxlc21lbjAxXzEwIFBBUlRJVElPTiBPRiBzYWxlc21lbiBGT1IgVkFMVUVTIEZST00gKDEpIFRP ICgxMCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4xMF80MCBQQVJUSVRJT04gT0Ygc2FsZXNtZW4g Rk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDQwKTsKIAotSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZB TFVFUyAoMSwgICdQb2lyb3QnKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuIFZBTFVFUyAoMSwgICdQ b2lyb3QnKTsKIAogQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYWZ0ZXJfaW5zZXJ0X3Jvd190 cmlnZ2VyKCkgUkVUVVJOUyB0cmlnZ2VyIExBTkdVQUdFICdwbHBnc3FsJyBBUyAkQk9EWSQKIEJF R0lOCkBAIC00MzMsMTE1ICs0MzMsMTE1IEBAIEJFR0lOCiBFTkQ7CiAkQk9EWSQ7CiAKLUNSRUFU RSBUUklHR0VSIHNhbGVzbWFuc19hZnRlcl9pbnNlcnRfc3RhdGVtZW50X3RyaWdnZXIKK0NSRUFU RSBUUklHR0VSIHNhbGVzbWVuX2FmdGVyX2luc2VydF9zdGF0ZW1lbnRfdHJpZ2dlcgogICAgIEFG VEVSIElOU0VSVAotICAgIE9OIHNhbGVzbWFucworICAgIE9OIHNhbGVzbWVuCiAgICAgRk9SIEVB Q0ggU1RBVEVNRU5UCi0gICAgRVhFQ1VURSBQUk9DRURVUkUgYWZ0ZXJfaW5zZXJ0X3Jvd190cmln Z2VyKCdzYWxlc21hbnMnKTsKKyAgICBFWEVDVVRFIFBST0NFRFVSRSBhZnRlcl9pbnNlcnRfcm93 X3RyaWdnZXIoJ3NhbGVzbWVuJyk7CiAKLUNSRUFURSBUUklHR0VSIHNhbGVzbWFuc19hZnRlcl9p bnNlcnRfcm93X3RyaWdnZXIKK0NSRUFURSBUUklHR0VSIHNhbGVzbWVuX2FmdGVyX2luc2VydF9y b3dfdHJpZ2dlcgogICAgIEFGVEVSIElOU0VSVAotICAgIE9OIHNhbGVzbWFucworICAgIE9OIHNh bGVzbWVuCiAgICAgRk9SIEVBQ0ggUk9XCi0gICAgRVhFQ1VURSBQUk9DRURVUkUgYWZ0ZXJfaW5z ZXJ0X3Jvd190cmlnZ2VyKCdzYWxlc21hbnMnKTsKKyAgICBFWEVDVVRFIFBST0NFRFVSRSBhZnRl cl9pbnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVzbWVuJyk7CiAKIC0tIDIgdHJpZ2dlcnMgc2hvdWxk IGZpcmUgaGVyZSAocm93ICsgc3RhdGVtZW50KToKLUlOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxV RVMgKDEwLCAnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbiBWQUxVRVMgKDEwLCAnTWF5Jyk7 CiAtLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToKLUlOU0VSVCBJTlRPIHNhbGVz bWFuczEwXzQwIFZBTFVFUyAoMTksICdJdmFub3YnKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWVuMTBf NDAgVkFMVUVTICgxOSwgJ0l2YW5vdicpOwogCi1BTFRFUiBUQUJMRSBzYWxlc21hbnMgU1BMSVQg UEFSVElUSU9OIHNhbGVzbWFuczEwXzQwIElOVE8KLSAgKFBBUlRJVElPTiBzYWxlc21hbnMxMF8y MCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApLAotICAgUEFSVElUSU9OIHNhbGVzbWFuczIw XzMwIEZPUiBWQUxVRVMgRlJPTSAoMjApIFRPICgzMCksCi0gICBQQVJUSVRJT04gc2FsZXNtYW5z MzBfNDAgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKSk7CitBTFRFUiBUQUJMRSBzYWxlc21l biBTUExJVCBQQVJUSVRJT04gc2FsZXNtZW4xMF80MCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNt ZW4xMF8yMCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApLAorICAgUEFSVElUSU9OIHNhbGVz bWVuMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKSwKKyAgIFBBUlRJVElPTiBzYWxl c21lbjMwXzQwIEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCkpOwogCiAtLSAyIHRyaWdnZXJz IHNob3VsZCBmaXJlIGhlcmUgKHJvdyArIHN0YXRlbWVudCk6Ci1JTlNFUlQgSU5UTyBzYWxlc21h bnMgVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbiBWQUxVRVMg KDIwLCAnU21pcm5vZmYnKTsKIC0tIDEgdHJpZ2dlciBzaG91bGQgZmlyZSBoZXJlIChyb3cpOgot SU5TRVJUIElOVE8gc2FsZXNtYW5zMzBfNDAgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzbWVuMzBfNDAgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKIAotU0VMRUNUICogRlJPTSBz YWxlc21hbnMwMV8xMDsKLVNFTEVDVCAqIEZST00gc2FsZXNtYW5zMTBfMjA7Ci1TRUxFQ1QgKiBG Uk9NIHNhbGVzbWFuczIwXzMwOwotU0VMRUNUICogRlJPTSBzYWxlc21hbnMzMF80MDsKK1NFTEVD VCAqIEZST00gc2FsZXNtZW4wMV8xMDsKK1NFTEVDVCAqIEZST00gc2FsZXNtZW4xMF8yMDsKK1NF TEVDVCAqIEZST00gc2FsZXNtZW4yMF8zMDsKK1NFTEVDVCAqIEZST00gc2FsZXNtZW4zMF80MDsK IAotRFJPUCBUQUJMRSBzYWxlc21hbnMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgc2FsZXNtZW4gQ0FT Q0FERTsKIERST1AgRlVOQ1RJT04gYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCk7CiAKIC0tCiAt LSBUZXN0OiBzcGxpdCBwYXJ0aXRpb24gd2l0Y2ggaWRlbnRpdHkgY29sdW1uCiAtLSBJZiBzcGxp dCBwYXJ0aXRpb24gY29sdW1uIGlzIGlkZW50aXR5IGNvbHVtbiwgY29sdW1ucyBvZiBuZXcgcGFy dGl0aW9ucyBhcmUgaWRlbnRpdHkgY29sdW1ucyB0b28uCiAtLQotQ1JFQVRFIFRBQkxFIHNhbGVz bWFucyhzYWxlc21hbl9pZCBJTlQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSBQUklNQVJZ IEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxl c21hbl9pZCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4oc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRF RCBBTFdBWVMgQVMgSURFTlRJVFkgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigz MCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOwogCi1DUkVBVEUgVEFCTEUgc2Fs ZXNtYW5zMV8yIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAo Mik7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4xXzIgUEFSVElUSU9OIE9GIHNhbGVzbWVuIEZPUiBW QUxVRVMgRlJPTSAoMSkgVE8gKDIpOwogLS0gQ3JlYXRlIG5ldyBwYXJ0aXRpb24gd2l0aCBpZGVu dGl0eSBjb2x1bW46Ci1DUkVBVEUgVEFCTEUgc2FsZXNtYW5zMl81KHNhbGVzbWFuX2lkIElOVCBO T1QgTlVMTCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7Ci1BTFRFUiBUQUJMRSBzYWxlc21h bnMgQVRUQUNIIFBBUlRJVElPTiBzYWxlc21hbnMyXzUgRk9SIFZBTFVFUyBGUk9NICgyKSBUTyAo NSk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4yXzUoc2FsZXNtYW5faWQgSU5UIE5PVCBOVUxMLCBz YWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKTsKK0FMVEVSIFRBQkxFIHNhbGVzbWVuIEFUVEFDSCBQ QVJUSVRJT04gc2FsZXNtZW4yXzUgRk9SIFZBTFVFUyBGUk9NICgyKSBUTyAoNSk7CiAKLUlOU0VS VCBJTlRPIHNhbGVzbWFucyAoc2FsZXNtYW5fbmFtZSkgVkFMVUVTICgnUG9pcm90Jyk7Ci1JTlNF UlQgSU5UTyBzYWxlc21hbnMgKHNhbGVzbWFuX25hbWUpIFZBTFVFUyAoJ0l2YW5vdicpOworSU5T RVJUIElOVE8gc2FsZXNtZW4gKHNhbGVzbWFuX25hbWUpIFZBTFVFUyAoJ1BvaXJvdCcpOworSU5T RVJUIElOVE8gc2FsZXNtZW4gKHNhbGVzbWFuX25hbWUpIFZBTFVFUyAoJ0l2YW5vdicpOwogCi1T RUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0 ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnMnOjpyZWdjbGFzczo6 b2lkOwotU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19h dHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtYW5zMV8yJzo6 cmVnY2xhc3M6Om9pZDsKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVk IEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVz bWVuJzo6cmVnY2xhc3M6Om9pZDsKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2Vu ZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0g J3NhbGVzbWVuMV8yJzo6cmVnY2xhc3M6Om9pZDsKIC0tIFNwbGl0IHBhcnRpdGlvbiBoYXMgaWRl bnRpdHkgY29sdW1uOgotU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQg RlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNt YW5zMl81Jzo6cmVnY2xhc3M6Om9pZDsKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0 Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlk ID0gJ3NhbGVzbWVuMl81Jzo6cmVnY2xhc3M6Om9pZDsKIAotQUxURVIgVEFCTEUgc2FsZXNtYW5z IFNQTElUIFBBUlRJVElPTiBzYWxlc21hbnMyXzUgSU5UTwotICAoUEFSVElUSU9OIHNhbGVzbWFu czJfMyBGT1IgVkFMVUVTIEZST00gKDIpIFRPICgzKSwKLSAgIFBBUlRJVElPTiBzYWxlc21hbnMz XzQgRk9SIFZBTFVFUyBGUk9NICgzKSBUTyAoNCksCi0gICBQQVJUSVRJT04gc2FsZXNtYW5zNF81 IEZPUiBWQUxVRVMgRlJPTSAoNCkgVE8gKDUpKTsKK0FMVEVSIFRBQkxFIHNhbGVzbWVuIFNQTElU IFBBUlRJVElPTiBzYWxlc21lbjJfNSBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNtZW4yXzMgRk9S IFZBTFVFUyBGUk9NICgyKSBUTyAoMyksCisgICBQQVJUSVRJT04gc2FsZXNtZW4zXzQgRk9SIFZB TFVFUyBGUk9NICgzKSBUTyAoNCksCisgICBQQVJUSVRJT04gc2FsZXNtZW40XzUgRk9SIFZBTFVF UyBGUk9NICg0KSBUTyAoNSkpOwogCi1JTlNFUlQgSU5UTyBzYWxlc21hbnMgKHNhbGVzbWFuX25h bWUpIFZBTFVFUyAoJ01heScpOwotSU5TRVJUIElOVE8gc2FsZXNtYW5zIChzYWxlc21hbl9uYW1l KSBWQUxVRVMgKCdGb3JkJyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbiAoc2FsZXNtYW5fbmFtZSkg VkFMVUVTICgnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbiAoc2FsZXNtYW5fbmFtZSkgVkFM VUVTICgnRm9yZCcpOwogCi1TRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczFfMjsKLVNFTEVDVCAqIEZS T00gc2FsZXNtYW5zMl8zOwotU0VMRUNUICogRlJPTSBzYWxlc21hbnMzXzQ7Ci1TRUxFQ1QgKiBG Uk9NIHNhbGVzbWFuczRfNTsKK1NFTEVDVCAqIEZST00gc2FsZXNtZW4xXzI7CitTRUxFQ1QgKiBG Uk9NIHNhbGVzbWVuMl8zOworU0VMRUNUICogRlJPTSBzYWxlc21lbjNfNDsKK1NFTEVDVCAqIEZS T00gc2FsZXNtZW40XzU7CiAKLVNFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJh dGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3Nh bGVzbWFucyc6OnJlZ2NsYXNzOjpvaWQ7Ci1TRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0 dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxp ZCA9ICdzYWxlc21hbnMxXzInOjpyZWdjbGFzczo6b2lkOworU0VMRUNUIGF0dG5hbWUsIGF0dGlk ZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBB TkQgYXR0cmVsaWQgPSAnc2FsZXNtZW4nOjpyZWdjbGFzczo6b2lkOworU0VMRUNUIGF0dG5hbWUs IGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVt ID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtZW4xXzInOjpyZWdjbGFzczo6b2lkOwogLS0gTmV3 IHBhcnRpdGlvbnMgaGF2ZSBpZGVudGl0eS1jb2x1bW5zOgotU0VMRUNUIGF0dG5hbWUsIGF0dGlk ZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBB TkQgYXR0cmVsaWQgPSAnc2FsZXNtYW5zMl8zJzo6cmVnY2xhc3M6Om9pZDsKLVNFTEVDVCBhdHRu YW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0 dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFuczNfNCc6OnJlZ2NsYXNzOjpvaWQ7Ci1T RUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0 ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnM0XzUnOjpyZWdjbGFz czo6b2lkOworU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBw Z19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtZW4yXzMn OjpyZWdjbGFzczo6b2lkOworU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0 ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2Fs ZXNtZW4zXzQnOjpyZWdjbGFzczo6b2lkOworU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBh dHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVs aWQgPSAnc2FsZXNtZW40XzUnOjpyZWdjbGFzczo6b2lkOwogCi1EUk9QIFRBQkxFIHNhbGVzbWFu cyBDQVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21lbiBDQVNDQURFOwogCiAtLQogLS0gVGVzdDog c3BsaXQgcGFydGl0aW9uIHdpdGggZGVsZXRlZCBjb2x1bW5zCiAtLQotQ1JFQVRFIFRBQkxFIHNh bGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hB UigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOworQ1JFQVRFIFRBQkxFIHNh bGVzbWVuKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFS KDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7CiAKLUNSRUFURSBUQUJMRSBz YWxlc21hbnMwMV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMgRlJPTSAoMSkg VE8gKDEwKTsKK0NSRUFURSBUQUJMRSBzYWxlc21lbjAxXzEwIFBBUlRJVElPTiBPRiBzYWxlc21l biBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CiAtLSBDcmVhdGUgbmV3IHBhcnRpdGlvbiB3 aXRoIHNvbWUgZGVsZXRlZCBjb2x1bW5zOgotQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczEwXzQwKGQx IFZBUkNIQVIoMzApLCBzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIGQyIElOVCwgZDMgREFU RSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7CitDUkVBVEUgVEFCTEUgc2FsZXNtZW4xMF80 MChkMSBWQVJDSEFSKDMwKSwgc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBkMiBJTlQsIGQz IERBVEUsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOwogCi1JTlNFUlQgSU5UTyBzYWxlc21h bnMxMF80MCBWQUxVRVMgKCdkdW1teSB2YWx1ZSAxJywgMTksIDEwMCwgbm93KCksICdJdmFub3Yn KTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQwIFZBTFVFUyAoJ2R1bW15IHZhbHVlIDInLCAy MCwgMTAxLCBub3coKSwgJ1NtaXJub2ZmJyk7CitJTlNFUlQgSU5UTyBzYWxlc21lbjEwXzQwIFZB TFVFUyAoJ2R1bW15IHZhbHVlIDEnLCAxOSwgMTAwLCBub3coKSwgJ0l2YW5vdicpOworSU5TRVJU IElOVE8gc2FsZXNtZW4xMF80MCBWQUxVRVMgKCdkdW1teSB2YWx1ZSAyJywgMjAsIDEwMSwgbm93 KCksICdTbWlybm9mZicpOwogCi1BTFRFUiBUQUJMRSBzYWxlc21hbnMxMF80MCBEUk9QIENPTFVN TiBkMTsKLUFMVEVSIFRBQkxFIHNhbGVzbWFuczEwXzQwIERST1AgQ09MVU1OIGQyOwotQUxURVIg VEFCTEUgc2FsZXNtYW5zMTBfNDAgRFJPUCBDT0xVTU4gZDM7CitBTFRFUiBUQUJMRSBzYWxlc21l bjEwXzQwIERST1AgQ09MVU1OIGQxOworQUxURVIgVEFCTEUgc2FsZXNtZW4xMF80MCBEUk9QIENP TFVNTiBkMjsKK0FMVEVSIFRBQkxFIHNhbGVzbWVuMTBfNDAgRFJPUCBDT0xVTU4gZDM7CiAKLUFM VEVSIFRBQkxFIHNhbGVzbWFucyBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzbWFuczEwXzQwIEZPUiBW QUxVRVMgRlJPTSAoMTApIFRPICg0MCk7CitBTFRFUiBUQUJMRSBzYWxlc21lbiBBVFRBQ0ggUEFS VElUSU9OIHNhbGVzbWVuMTBfNDAgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDQwKTsKIAotSU5T RVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMSwgJ1BvaXJvdCcpOwotSU5TRVJUIElOVE8gc2Fs ZXNtYW5zIFZBTFVFUyAoMTAsICdNYXknKTsKLUlOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMg KDMwLCAnRm9yZCcpOworSU5TRVJUIElOVE8gc2FsZXNtZW4gVkFMVUVTICgxLCAnUG9pcm90Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc21lbiBWQUxVRVMgKDEwLCAnTWF5Jyk7CitJTlNFUlQgSU5UTyBz YWxlc21lbiBWQUxVRVMgKDMwLCAnRm9yZCcpOwogCi1BTFRFUiBUQUJMRSBzYWxlc21hbnMgU1BM SVQgUEFSVElUSU9OIHNhbGVzbWFuczEwXzQwIElOVE8KLSAgKFBBUlRJVElPTiBzYWxlc21hbnMx MF8yMCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApLAotICAgUEFSVElUSU9OIHNhbGVzbWFu czIwXzMwIEZPUiBWQUxVRVMgRlJPTSAoMjApIFRPICgzMCksCi0gICBQQVJUSVRJT04gc2FsZXNt YW5zMzBfNDAgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKSk7CitBTFRFUiBUQUJMRSBzYWxl c21lbiBTUExJVCBQQVJUSVRJT04gc2FsZXNtZW4xMF80MCBJTlRPCisgIChQQVJUSVRJT04gc2Fs ZXNtZW4xMF8yMCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApLAorICAgUEFSVElUSU9OIHNh bGVzbWVuMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKSwKKyAgIFBBUlRJVElPTiBz YWxlc21lbjMwXzQwIEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCkpOwogCi1zZWxlY3QgKiBm cm9tIHNhbGVzbWFuczAxXzEwOwotc2VsZWN0ICogZnJvbSBzYWxlc21hbnMxMF8yMDsKLXNlbGVj dCAqIGZyb20gc2FsZXNtYW5zMjBfMzA7Ci1zZWxlY3QgKiBmcm9tIHNhbGVzbWFuczMwXzQwOwor c2VsZWN0ICogZnJvbSBzYWxlc21lbjAxXzEwOworc2VsZWN0ICogZnJvbSBzYWxlc21lbjEwXzIw Oworc2VsZWN0ICogZnJvbSBzYWxlc21lbjIwXzMwOworc2VsZWN0ICogZnJvbSBzYWxlc21lbjMw XzQwOwogCi1EUk9QIFRBQkxFIHNhbGVzbWFucyBDQVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21l biBDQVNDQURFOwogCiAtLQogLS0gVGVzdDogc3BsaXQgc3ViLXBhcnRpdGlvbgotLSAKMi4zOS4z IChBcHBsZSBHaXQtMTQ1KQoK --00000000000032555406165c8928 Content-Type: application/octet-stream; name="v6-0003-Fix-error-message-in-check_partition_bounds_for_s.patch" Content-Disposition: attachment; filename="v6-0003-Fix-error-message-in-check_partition_bounds_for_s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lv53od272 RnJvbSAyYTI3NDJjYTNkOTllNmNlMzQ3MWU0M2U5MDYyMTQ0ZTEyYmQ4ZWNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogVGh1LCAxOCBBcHIgMjAyNCAxMjo1Njo1MSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjYgMy80XSBGaXggZXJyb3IgbWVzc2FnZSBpbgogY2hlY2tfcGFydGl0aW9uX2JvdW5k c19mb3Jfc3BsaXRfcmFuZ2UoKQoKQ3VycmVudGx5LCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBwcm9k dWNlZCBieSBhIHN5c3RlbSBvZiBjb21wbGV4IHN1YnN0aXR1dGlvbnMKbWFraW5nIGl0IHF1aXRl IHVudHJhbnNsYXRhYmxlIGFuZCBoYXJkIHRvIHJlYWQuICBUaGlzIGNvbW1pdCBzcGxpdHMgdGhp cyBpbnRvCjQgcGxhaW4gZXJyb3IgbWVzc2FnZXMgc3VpdGFibGUgZm9yIHRyYW5zbGF0aW9uLgoK UmVwb3J0ZWQtYnk6IEt5b3Rhcm8gSG9yaWd1Y2hpCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdy LmVzL20vMjAyNDA0MDguMTUyNDAyLjE0ODU5OTQwMDkxNjA2NjAxNDEuaG9yaWt5b3RhLm50dCU0 MGdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMgfCA2 MCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzOSBpbnNlcnRp b25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJ0aXRp b25pbmcvcGFydGJvdW5kcy5jIGIvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMu YwppbmRleCAwZGJhY2YzOWMwNS4uYmZiOTY1ZmIyYzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5n L3BhcnRib3VuZHMuYwpAQCAtNTIxMSw3ICs1MjExLDcgQEAgY2hlY2tfcGFydGl0aW9uX2JvdW5k c19mb3Jfc3BsaXRfcmFuZ2UoUmVsYXRpb24gcGFyZW50LAogCWlmIChmaXJzdCB8fCBsYXN0KQog CXsKIAkJUGFydGl0aW9uQm91bmRTcGVjICpzcGxpdF9zcGVjID0gZ2V0X3BhcnRpdGlvbl9ib3Vu ZF9zcGVjKHNwbGl0UGFydE9pZCwgc3BsaXRQYXJ0TmFtZSk7Ci0JCWJvb2wJCW92ZXJsYXAgPSBm YWxzZTsKKwkJUGFydGl0aW9uUmFuZ2VEYXR1bSAqZGF0dW07CiAKIAkJaWYgKGZpcnN0KQogCQl7 CkBAIC01MjI0LDEzICs1MjI0LDMwIEBAIGNoZWNrX3BhcnRpdGlvbl9ib3VuZHNfZm9yX3NwbGl0 X3JhbmdlKFJlbGF0aW9uIHBhcmVudCwKIAkJCQkJCQkJCQkgIGtleS0+cGFydGNvbGxhdGlvbiwK IAkJCQkJCQkJCQkgIGxvd2VyLT5kYXR1bXMsIGxvd2VyLT5raW5kLAogCQkJCQkJCQkJCSAgdHJ1 ZSwgc3BsaXRfbG93ZXIpOworCQkJZGF0dW0gPSBjbXB2YWwgPyBsaXN0X250aChzcGVjLT5sb3dl cmRhdHVtcywgYWJzKGNtcHZhbCkgLSAxKSA6IE5VTEw7CiAKIAkJCS8qCiAJCQkgKiBMb3dlciBi b3VuZCBvZiAic3BlYyIgc2hvdWxkIGJlIGVxdWFsIChvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwK IAkJCSAqIGluIGNhc2UgZGVmYXVsdFBhcnQ9dHJ1ZSkgdG8gbG93ZXIgYm91bmQgb2Ygc3BsaXQg cGFydGl0aW9uLgogCQkJICovCi0JCQlpZiAoKCFkZWZhdWx0UGFydCAmJiBjbXB2YWwpIHx8IChk ZWZhdWx0UGFydCAmJiBjbXB2YWwgPCAwKSkKLQkJCQlvdmVybGFwID0gdHJ1ZTsKKwkJCWlmICgh ZGVmYXVsdFBhcnQpCisJCQl7CisJCQkJaWYgKGNtcHZhbCAhPSAwKQorCQkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiks CisJCQkJCQkJIGVycm1zZygibG93ZXIgYm91bmQgb2YgcGFydGl0aW9uIFwiJXNcIiBpcyBub3Qg ZXF1YWwgdG8gbG93ZXIgYm91bmQgb2Ygc3BsaXQgcGFydGl0aW9uIiwKKwkJCQkJCQkJCXJlbG5h bWUpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkYXR1bS0+bG9jYXRpb24p KSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJaWYgKGNtcHZhbCA8IDApCisJCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklU SU9OKSwKKwkJCQkJCQkgZXJybXNnKCJsb3dlciBib3VuZCBvZiBwYXJ0aXRpb24gXCIlc1wiIGlz IGxlc3MgdGhhbiBsb3dlciBib3VuZCBvZiBzcGxpdCBwYXJ0aXRpb24iLAorCQkJCQkJCQkJcmVs bmFtZSksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRhdHVtLT5sb2NhdGlv bikpKTsKKwkJCX0KIAkJfQogCQllbHNlCiAJCXsKQEAgLTUyNDMsMjkgKzUyNjAsMzAgQEAgY2hl Y2tfcGFydGl0aW9uX2JvdW5kc19mb3Jfc3BsaXRfcmFuZ2UoUmVsYXRpb24gcGFyZW50LAogCQkJ CQkJCQkJCSAga2V5LT5wYXJ0Y29sbGF0aW9uLAogCQkJCQkJCQkJCSAgdXBwZXItPmRhdHVtcywg dXBwZXItPmtpbmQsCiAJCQkJCQkJCQkJICBmYWxzZSwgc3BsaXRfdXBwZXIpOworCQkJZGF0dW0g PSBjbXB2YWwgPyBsaXN0X250aChzcGVjLT5sb3dlcmRhdHVtcywgYWJzKGNtcHZhbCkgLSAxKSA6 IE5VTEw7CiAKIAkJCS8qCiAJCQkgKiBVcHBlciBib3VuZCBvZiBvZiAic3BlYyIgc2hvdWxkIGJl IGVxdWFsIChvciBsZXNzIHRoYW4gb3IgZXF1YWwKIAkJCSAqIGluIGNhc2UgZGVmYXVsdFBhcnQ9 dHJ1ZSkgdG8gdXBwZXIgYm91bmQgb2Ygc3BsaXQgcGFydGl0aW9uLgogCQkJICovCi0JCQlpZiAo KCFkZWZhdWx0UGFydCAmJiBjbXB2YWwpIHx8IChkZWZhdWx0UGFydCAmJiBjbXB2YWwgPiAwKSkK LQkJCQlvdmVybGFwID0gdHJ1ZTsKLQkJfQotCi0JCWlmIChvdmVybGFwKQotCQl7Ci0JCQlQYXJ0 aXRpb25SYW5nZURhdHVtICpkYXR1bTsKLQotCQkJZGF0dW0gPSBsaXN0X250aChmaXJzdCA/IHNw ZWMtPmxvd2VyZGF0dW1zIDogc3BlYy0+dXBwZXJkYXR1bXMsIGFicyhjbXB2YWwpIC0gMSk7Ci0K LQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1Rf REVGSU5JVElPTiksCi0JCQkJCSBlcnJtc2coIiVzIGJvdW5kIG9mIHBhcnRpdGlvbiBcIiVzXCIg aXMgJXMgJXMgYm91bmQgb2Ygc3BsaXQgcGFydGl0aW9uIiwKLQkJCQkJCQlmaXJzdCA/ICJsb3dl ciIgOiAidXBwZXIiLAotCQkJCQkJCXJlbG5hbWUsCi0JCQkJCQkJZGVmYXVsdFBhcnQgPyAoZmly c3QgPyAibGVzcyB0aGFuIiA6ICJncmVhdGVyIHRoYW4iKSA6ICJub3QgZXF1YWwgdG8iLAotCQkJ CQkJCWZpcnN0ID8gImxvd2VyIiA6ICJ1cHBlciIpLAotCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgZGF0dW0tPmxvY2F0aW9uKSkpOworCQkJaWYgKCFkZWZhdWx0UGFydCkKKwkJCXsK KwkJCQlpZiAoY21wdmFsICE9IDApCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCQkgZXJybXNnKCJ1 cHBlciBib3VuZCBvZiBwYXJ0aXRpb24gXCIlc1wiIGlzIG5vdCBlcXVhbCB0byB1cHBlciBib3Vu ZCBvZiBzcGxpdCBwYXJ0aXRpb24iLAorCQkJCQkJCQkJcmVsbmFtZSksCisJCQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGRhdHVtLT5sb2NhdGlvbikpKTsKKwkJCX0KKwkJCWVsc2UK KwkJCXsKKwkJCQlpZiAoY21wdmFsID4gMCkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCSBlcnJt c2coInVwcGVyIGJvdW5kIG9mIHBhcnRpdGlvbiBcIiVzXCIgaXMgZ3JlYXRlciB0aGFuIHVwcGVy IGJvdW5kIG9mIHNwbGl0IHBhcnRpdGlvbiIsCisJCQkJCQkJCQlyZWxuYW1lKSwKKwkJCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGF0dW0tPmxvY2F0aW9uKSkpOworCQkJfQogCQl9 CiAJfQogfQotLSAKMi4zOS4zIChBcHBsZSBHaXQtMTQ1KQoK --00000000000032555406165c8928 Content-Type: application/octet-stream; name="v6-0001-Add-missing-CommandCounterIncrement-to-ATExecMerg.patch" Content-Disposition: attachment; filename="v6-0001-Add-missing-CommandCounterIncrement-to-ATExecMerg.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lv53od1s0 RnJvbSAzMWE0OTNhZjZhM2E3Nzg4YWRlYTIwN2VkZTdhNjNjOTE5MmE0NWE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogVGh1LCAxOCBBcHIgMjAyNCAxMjoyNzozOSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjYgMS80XSBBZGQgbWlzc2luZyBDb21tYW5kQ291bnRlckluY3JlbWVudCgpIHRvCiBB VEV4ZWNNZXJnZVBhcnRpdGlvbnMoKQoKRHVyaW5nIHRoZSBNRVJHRSBQQVJUSVRJT05TIG9wZXJh dGlvbiwgaW5jcmVtZW50IHRoZSBjb21tYW5kIGNvdW50ZXIgYmVmb3JlCmF0dGFjaGluZyB0aGUg bmV3IHBhcnRpdGlvbiB0byB0aGUgcGFyZW50LiAgT3RoZXJ3aXNlLCB0aGUgbmV3IGNhdGFsb2cg dHVwbGUKd291bGRuJ3QgYmUgdmlzaWJsZS4gIEluIHR1cm4sIHRoYXQgY291bGQgbGVhZCB0byBp bmFwcHJvcHJpYXRlIGluZGV4IG5hbWVzLgoKUmVwb3J0ZWQtYnk6IEFsZXhhbmRlciBMYWtoaW4K RGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9lZGZiZDg0Ni1kY2MxLTQyZDEtYWMyNi03 MTU2OTFiNjg3ZDMlNDBwb3N0Z3Jlc3Byby5ydQpBdXRob3I6IERtaXRyeSBLb3ZhbApSZXZpZXdl ZC1ieTogQWxleGFuZGVyIEtvcm90a292LCBSb2JlcnQgSGFhcwotLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8IDIwICsrKysrKysrKysrKystLS0tLS0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dCB8IDE4ICsrKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsICAg ICAgfCAxOCArKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMDI3ZDY4 ZTVkMmEuLjg3NDI3YWQ3ZDJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjE0OTQs MTIgKzIxNDk0LDYgQEAgQVRFeGVjTWVyZ2VQYXJ0aXRpb25zKExpc3QgKip3cXVldWUsIEFsdGVy ZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCS8qIENvcHkgZGF0YSBmcm9tIG1lcmdl ZCBwYXJ0aXRpb25zIHRvIG5ldyBwYXJ0aXRpb24uICovCiAJbW92ZU1lcmdlZFRhYmxlc1Jvd3Mo cmVsLCBtZXJnaW5nUGFydGl0aW9uc0xpc3QsIG5ld1BhcnRSZWwpOwogCi0JLyoKLQkgKiBBdHRh Y2ggYSBuZXcgcGFydGl0aW9uIHRvIHRoZSBwYXJ0aXRpb25lZCB0YWJsZS4gd3F1ZXVlID0gTlVM TDoKLQkgKiB2ZXJpZmljYXRpb24gZm9yIGVhY2ggY2xvbmVkIGNvbnN0cmFpbnQgaXMgbm90IG5l ZWQuCi0JICovCi0JYXR0YWNoUGFydGl0aW9uVGFibGUoTlVMTCwgcmVsLCBuZXdQYXJ0UmVsLCBj bWQtPmJvdW5kKTsKLQogCS8qIFVubG9jayBhbmQgZHJvcCBtZXJnZWQgcGFydGl0aW9ucy4gKi8K IAlmb3JlYWNoKGxpc3RwdHIsIG1lcmdpbmdQYXJ0aXRpb25zTGlzdCkKIAl7CkBAIC0yMTUyNiwx MCArMjE1MjAsMjQgQEAgQVRFeGVjTWVyZ2VQYXJ0aXRpb25zKExpc3QgKip3cXVldWUsIEFsdGVy ZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkgKiB2aXNpYmxlIGZvciByZW5hbWUu CiAJCSAqLwogCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCiAJCS8qIFJlbmFtZSBwYXJ0 aXRpb24uICovCiAJCVJlbmFtZVJlbGF0aW9uSW50ZXJuYWwoUmVsYXRpb25HZXRSZWxpZChuZXdQ YXJ0UmVsKSwKIAkJCQkJCQkgICBjbWQtPm5hbWUtPnJlbG5hbWUsIGZhbHNlLCBmYWxzZSk7CisK KwkJLyoKKwkJICogQnVtcCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1ha2UgdGhlIHR1cGxlIG9m IHJlbmFtZWQgcGFydGl0aW9uCisJCSAqIHZpc2libGUgZm9yIGF0dGFjaCBwYXJ0aXRpb24gb3Bl cmF0aW9uLgorCQkgKi8KKwkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAl9CisKKwkvKgor CSAqIEF0dGFjaCBhIG5ldyBwYXJ0aXRpb24gdG8gdGhlIHBhcnRpdGlvbmVkIHRhYmxlLiB3cXVl dWUgPSBOVUxMOgorCSAqIHZlcmlmaWNhdGlvbiBmb3IgZWFjaCBjbG9uZWQgY29uc3RyYWludCBp cyBub3QgbmVlZGVkLgorCSAqLworCWF0dGFjaFBhcnRpdGlvblRhYmxlKE5VTEwsIHJlbCwgbmV3 UGFydFJlbCwgY21kLT5ib3VuZCk7CisKIAkvKiBLZWVwIHRoZSBsb2NrIHVudGlsIGNvbW1pdC4g Ki8KIAl0YWJsZV9jbG9zZShuZXdQYXJ0UmVsLCBOb0xvY2spOwogfQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CmluZGV4IDM3M2QzMjk0OGNhLi4zNTkz NzIwNzMxYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25f bWVyZ2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdl Lm91dApAQCAtNzQ2LDQgKzc0NiwyMiBAQCBEUk9QIFRBQkxFIHQzOwogRFJPUCBUQUJMRSB0MjsK IERST1AgVEFCTEUgdDE7CiAtLQorLS0gQ2hlY2sgdGhlIHBhcnRpdGlvbiBpbmRleCBuYW1lIGlm IHRoZSBwYXJ0aXRpb24gbmFtZSBpcyB0aGUgc2FtZSBhcyBvbmUKKy0tIG9mIHRoZSBtZXJnZWQg cGFydGl0aW9ucy4KKy0tCitDUkVBVEUgVEFCTEUgdCAoaSBpbnQpIFBBUlRJVElPTiBCWSBSQU5H RSAoaSk7CitDUkVBVEUgVEFCTEUgdHBfMF8xIFBBUlRJVElPTiBPRiB0IEZPUiBWQUxVRVMgRlJP TSAoMCkgVE8gKDEpOworQ1JFQVRFIFRBQkxFIHRwXzFfMiBQQVJUSVRJT04gT0YgdCBGT1IgVkFM VUVTIEZST00gKDEpIFRPICgyKTsKK0NSRUFURSBJTkRFWCB0aWR4IE9OIHQoaSk7CitBTFRFUiBU QUJMRSB0IE1FUkdFIFBBUlRJVElPTlMgKHRwXzFfMiwgdHBfMF8xKSBJTlRPIHRwXzFfMjsKKy0t IEluZGV4bmFtZSB2YWx1ZSBzaG91bGQgYmUgJ3RwXzFfMl9pX2lkeCcuCitTRUxFQ1QgaW5kZXhu YW1lIEZST00gcGdfaW5kZXhlcworV0hFUkUgdGFibGVuYW1lID0gJ3RwXzFfMicgQU5EIHNjaGVt YW5hbWUgPSAncGFydGl0aW9uc19tZXJnZV9zY2hlbWEnOworICBpbmRleG5hbWUgICAKKy0tLS0t LS0tLS0tLS0tCisgdHBfMV8yX2lfaWR4CisoMSByb3cpCisKK0RST1AgVEFCTEUgdDsKKy0tCiBE Uk9QIFNDSEVNQSBwYXJ0aXRpb25zX21lcmdlX3NjaGVtYTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w YXJ0aXRpb25fbWVyZ2Uuc3FsCmluZGV4IDZhMGIzNWIxNzk5Li45NDBlNmI1YTllNSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsCkBAIC00NDQsNSArNDQ0LDIzIEBA IERST1AgVEFCTEUgdDM7CiBEUk9QIFRBQkxFIHQyOwogRFJPUCBUQUJMRSB0MTsKIAorLS0KKy0t IENoZWNrIHRoZSBwYXJ0aXRpb24gaW5kZXggbmFtZSBpZiB0aGUgcGFydGl0aW9uIG5hbWUgaXMg dGhlIHNhbWUgYXMgb25lCistLSBvZiB0aGUgbWVyZ2VkIHBhcnRpdGlvbnMuCistLQorQ1JFQVRF IFRBQkxFIHQgKGkgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGkpOworCitDUkVBVEUgVEFCTEUg dHBfMF8xIFBBUlRJVElPTiBPRiB0IEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDEpOworQ1JFQVRF IFRBQkxFIHRwXzFfMiBQQVJUSVRJT04gT0YgdCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgyKTsK KworQ1JFQVRFIElOREVYIHRpZHggT04gdChpKTsKK0FMVEVSIFRBQkxFIHQgTUVSR0UgUEFSVElU SU9OUyAodHBfMV8yLCB0cF8wXzEpIElOVE8gdHBfMV8yOworCistLSBJbmRleG5hbWUgdmFsdWUg c2hvdWxkIGJlICd0cF8xXzJfaV9pZHgnLgorU0VMRUNUIGluZGV4bmFtZSBGUk9NIHBnX2luZGV4 ZXMKK1dIRVJFIHRhYmxlbmFtZSA9ICd0cF8xXzInIEFORCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlv bnNfbWVyZ2Vfc2NoZW1hJzsKKworRFJPUCBUQUJMRSB0OworCiAtLQogRFJPUCBTQ0hFTUEgcGFy dGl0aW9uc19tZXJnZV9zY2hlbWE7Ci0tIAoyLjM5LjMgKEFwcGxlIEdpdC0xNDUpCgo= --00000000000032555406165c8928--