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.96) (envelope-from ) id 1wcO6H-003JMY-1Y for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 13:57:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wcO6E-0015Q1-2h for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 13:57:06 +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.96) (envelope-from ) id 1wcO6D-0015Pr-1C for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 13:57:06 +0000 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wcO69-000000001zh-1pqd for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 13:57:04 +0000 Received: by mail-lf1-x12e.google.com with SMTP id 2adb3069b0e04-5ad583dc41eso1066199e87.1 for ; Wed, 24 Jun 2026 06:57:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782309419; cv=none; d=google.com; s=arc-20240605; b=QzG8oCw+g/NyhJo5383DGd1kG9f2+n2D+0/7QBGVf55IzAZ70fjVe31uCV9Qde7Q6u Qu0IZ1ha7JP/Lw2wxb1X0m54akQ6Zp1PfSp5nSak3C1wqEaTJu30YzZpfo4b0VcYe7/p 6zyPUZccjBIcfWigtZimOLLdX0IsR7vyulw22g8ctNHOIYYe8ORjsMePmDAu/jBCtqOc X2MTdkjGHZXb/CdnaHBcEJE+hAw9dfG89RJz9nwPUKfvIXdVz7uUq1BLdhYg/m1wpnpf RIFFGu4BmyG73SidjXk2RR5XzWr9MTFIofvdqyvNvBryZI51gUqsNNb0aYpSvm5CL/2D xhmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=g71FzXqAsloeTtaClQQiKbzYVhoUZ58FZunG0mt7D3w=; fh=pYflyQv9Ed66oMV2iKmV9yPxt28R3uG0cAs7LWCMN2s=; b=KVYLwf6w5C9XUmioJDWUFn2yUo3ciT88SvLCarUsDVgSvK4nCyGl2Mg5/JyXrREymT DZKRV7szYukB2xOUa37Khm7iH0hZSnjFeE1n9zjXBn4Hsgu8+SaR2x61F7cvMIUxtcTa GxJ/ZfhTzRcy9UI5Jo4YHCsKgPfgQI60576B3enhqYS4vHYYSszd/x3tbQXpg49BqXYr Ra47myqNPDwoOEaTdlc6DbWWW52zrzBzggblV4R+ZACq4pWarmfxAuuK6iC0bMfjWNQU bOlHyiAlsaoUMQwQoFo90xsuduRXNyymWr4L5OxN8WFcQg6lvHzAUil9DvMgmZGvzoyX NTNQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782309419; x=1782914219; 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=g71FzXqAsloeTtaClQQiKbzYVhoUZ58FZunG0mt7D3w=; b=AoqYMawwvomctT4gdBB5Mdmwucw2Yf3IoRVXLX2CD5tOAgvqO7x6obAI140HEHapuS 8omVGxmtXNho+w0/QVE70JeZzaDT6Xxex6Avf2Wu91xBOWMUA22K733WLNGqgbOO5aLd zTeyUWV4ISHMX9UvFwHEZwQf/C8Tg4qHi+vBaNO/nu1DykvS7qP6v+fuIheOu1UqwE5F vKWgpX3NWtNlCuntqczQA0ljtW4ty8NNKFc98kIeknytGdraosQww0IbH7VuawmoG7Jn ZY1YRK7FvPAhWkN6UAp3AMEP5tBhAXcMWANaAA4YVgeVdx1fYtpms7+Gy0Z7l0FE2cDo ZLOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782309419; x=1782914219; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=g71FzXqAsloeTtaClQQiKbzYVhoUZ58FZunG0mt7D3w=; b=sE2eiBXp5EXGKh0+hIXVbP00c4hMUONlO8+yLopFV8lkxG39IO+lc5z1dsk+25ZGPX vk14D3VekqErKwU+00Bg9qM2YuFoLKoRgesINCnJioyxIlyYVm9UokodUCdtRGWbAGNS STkpss+pZXnSdFX0A6D1li5JrUTn1X8Kam79Ai2xpPsIpQLYJ/mGpP5xxdI3JrJEmbLL aH5GgwPqJTR2ljpd3LdEonHB7LSOvKT7ujSwP0Pir81pPVrE1UIIWoNpwoD/2Dw7KOzN gUs3eM19QpNr/kHRKm2q+05+BXzfPK0YWKtzavg0YU0jGYZ2PtyYULG/ITCV58kpbgTH VIEg== X-Forwarded-Encrypted: i=1; AHgh+Rqs5eCueySHFmDVaFxNghaCmcdCEopl1IiRLDXAktllKG6cEDO5MVfAR8SYkJFnch3TgZTEsS8WKHMSkSrg@lists.postgresql.org X-Gm-Message-State: AOJu0YwlZB01NjrXcK/b+ISa87N/4xKwLUvNIT3bY9JfyiiJZoGjJ/Os m0mwge8O5kzzq/o0g0bUdEwUJwR5MTwhnRs+r6eD1KKL5NyB0XKo0ckYP7x69ycFugEk5RM6QpW RmfI3svJxSqef/pTC/5lAsiwIzCXm5oI= X-Gm-Gg: AfdE7clXHTr+Vx1G8rZZAiri8DOS6BD/NHD2thFaNabvlgxcx4bRWZahAzGs8Jd+4aZ bPEmynDltfOWXiTNj78zw4P5iCVEmezEByye+j4+xF/l2jYQiNY9Y+L6Yy40nXoGPzIjMEX1IFh AJepi2EcpZI1FfTQblGHx1Qm5uXnG/8bHVtc3JbLzlj5p7h6S6/ZrZga2Fy3l8KOgdK1ajJXBMT ab+Bri4f9dlRtL8FtC/ypclWInEsLKy1oO7sNN+PHl6PytrwUQtr25fcVT1XqYIV1hXODUqwI8b p94f5ufKXAyLisQALs/N++5ToY9D3+PnNLQUh1Q= X-Received: by 2002:ac2:4c26:0:b0:5ad:5308:c8d with SMTP id 2adb3069b0e04-5ae9d57ca15mr775937e87.27.1782309418978; Wed, 24 Jun 2026 06:56:58 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Wed, 24 Jun 2026 19:26:41 +0530 X-Gm-Features: AVVi8CeiLzrS82HG-p4T7FBkbNepIfLWtPIjjvWKK2FDdWbbchArI4Lu1vp5Ecw Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: vignesh C Cc: Amit Kapila , Nisha Moond , shveta malik , Peter Smith , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000cc7a050655003f54" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cc7a050655003f54 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 24, 2026 at 5:54=E2=80=AFPM vignesh C wro= te: > > On Wed, 24 Jun 2026 at 16:32, Amit Kapila wrote= : > > > > On Wed, Jun 24, 2026 at 12:53=E2=80=AFPM Dilip Kumar wrote: > > > > > > On Tue, Jun 23, 2026 at 2:22=E2=80=AFPM vignesh C wrote: > > > > > > > > Few comments: > > > > 1) Currently we are storing these in shared memory. Looking at the > > > > implementation, these fields are purely worker-private state used t= o > > > > ferry data across the error boundary from prepare_conflict_log_tupl= e() > > > > (inside the PG_TRY block) to ProcessPendingConflictLogTuple() (insi= de > > > > the PG_CATCH block). > > > > Good point. > > > > If it is not required by another process, should > > > > it be moved out of shared memory. > > > > + /* A conflict log tuple that is prepared but not yet insert= ed. */ > > > > + HeapTuple conflict_log_tuple; > > > > + > > > > + /* > > > > + * Error-context string describing the conflict above, used= to > > > > annotate any > > > > + * error raised while inserting conflict_log_tuple into the= conflict log > > > > + * table. Allocated, like conflict_log_tuple, in ApplyCont= ext. > > > > + */ > > > > + char *conflict_log_errcontext; > > > > > > Yeah there is no need for them to be in shared memory, but do we have > > > any other data sturcture where these fits naturally, or we can make > > > them global variables? > > > > > > > Or we can have a file local struct PendingConflictLogData similar to > > FlushPosition. See the attached top-up patch. As the comment > > ("Allocated, like conflict_log_tuple, in ApplyContext") says it is > > allocated in process-local Apply context, it is not safe to keep them > > in shared memory. > > These approach looks good, couple of minor comments can be done while > merging the patch: > 1) Generally we keep the typedef name and struct name same: > +typedef struct PendingConflictLogData > +{ > + HeapTuple tuple; /* prepared, > not-yet-inserted conflict tuple */ > + char *errcontext_str; /* conflict description for > error context */ > +} PendingConflictLog; > > 2) PendingConflictLog should be included in typedefs.list > Please find the updated patch set attached. I have merged Amit's patch and addressed the improvements suggested by Vignesh. Patch 0002 now includes new test cases to cover all the newly reported error conditions, except 1) I haven't yet added the test to cover the lock skip check in LockViewRecurse_walker[1]. Since we now allow locking on the conflict log table (CLT), it makes sense to acquire the lock even when it is accessed recursively via a view. 2) Additionally, I haven't covered the error reported in ATSimplePermissions() yet. We need more thought on how a CLT permission error could actually be triggered in this function, given that a simple ALTER TABLE ADD COLUMN is already blocked by the check in RangeVarCallbackForAlterRelation(). [1] @@ -198,6 +210,13 @@ LockViewRecurse_walker(Node *node, LockViewRecurse_context *context) relkind !=3D RELKIND_VIEW) continue; + /* + * Conflict log tables are managed by the system for logical + * and should not be locked explicitly. + */ + if (IsConflictLogTableNamespace(get_rel_namespace(relid))) + continue; + --=20 Regards, Dilip Kumar Google --000000000000cc7a050655003f54 Content-Type: application/octet-stream; name="v56-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Disposition: attachment; filename="v56-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqs4zeaa1 RnJvbSBmZDA5NmMyM2I0NWYwNmQ2NDljZjEyNzIyNGMyZDhmYTU5OWJiMDgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxMCBKdW4gMjAyNiAxNjo1Mjo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU2 IDIvNl0gUmVwb3J0IGVycm9yIGZvciBkZGxzIG9uIGNvbmZsaWN0IGxvZyB0YWJsZXMKCi0tLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMgICAgICAgICAgICB8ICAyMSArLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvcG9saWN5LmMgICAgICAgICAgICAgIHwgIDEyICsrCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zdGF0c2NtZHMuYyAgICAgICAgICAgfCAgMTQgKysKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgICAgICB8ICA3MyArKysrKysrCiBzcmMvYmFja2VuZC9jb21t YW5kcy90cmlnZ2VyLmMgICAgICAgICAgICAgfCAgMjUgKysrCiBzcmMvYmFja2VuZC9yZXdyaXRl L3Jld3JpdGVEZWZpbmUuYyAgICAgICAgfCAgMjIgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2NyaXB0aW9uLm91dCB8IDIyNCArKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCAgICAgIHwgMjI3ICsrKysrKysrKysrKysrKysr KysrKwogOSBmaWxlcyBjaGFuZ2VkLCA2MjUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL2FjbGNoay5jCmluZGV4IDY0ZTE3NjY1MmQxLi5hZTU4ZGU0NTJkNiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2FjbGNoay5jCkBAIC0zNjc0LDYgKzM2NzQsMTQgQEAgcGdfbmFtZXNwYWNlX2FjbG1hc2tfZXh0 KE9pZCBuc3Bfb2lkLCBPaWQgcm9sZWlkLAogCUFjbAkJICAgKmFjbDsKIAlPaWQJCQlvd25lcklk OwogCisJLyoKKwkgKiBEaXNhbGxvdyBjcmVhdGlvbiBpbiB0aGUgY29uZmxpY3Qgc2NoZW1hIGZv ciBldmVyeW9uZSwgaW5jbHVkaW5nCisJICogc3VwZXJ1c2VycywgdW5sZXNzIGluIGJpbmFyeS11 cGdyYWRlIG1vZGUuCisJICovCisJaWYgKCFJc0JpbmFyeVVwZ3JhZGUgJiYgKG1hc2sgJiBBQ0xf Q1JFQVRFKSAmJgorCQlJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UobnNwX29pZCkpCisJCXJl dHVybiBtYXNrICYgfkFDTF9DUkVBVEU7CisKIAkvKiBTdXBlcnVzZXJzIGJ5cGFzcyBhbGwgcGVy bWlzc2lvbiBjaGVja2luZy4gKi8KIAlpZiAoc3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQogCQlyZXR1 cm4gbWFzazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jCmluZGV4IGY2NmI4ZjE3YjliLi4xMjhjMTFj YzM2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jCkBAIC0xNiw2ICsxNiw3IEBACiAKICNpbmNs dWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgorI2luY2x1ZGUg ImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19pbmhlcml0cy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2xvY2tjbWRz LmgiCkBAIC04Myw3ICs4NCwxOCBAQCBSYW5nZVZhckNhbGxiYWNrRm9yTG9ja1RhYmxlKGNvbnN0 IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCXJldHVybjsJCQkJCS8q IHdvb3BzLCBjb25jdXJyZW50bHkgZHJvcHBlZDsgbm8gcGVybWlzc2lvbnMKIAkJCQkJCQkJICog Y2hlY2sgKi8KIAotCS8qIEN1cnJlbnRseSwgd2Ugb25seSBhbGxvdyBwbGFpbiB0YWJsZXMgb3Ig dmlld3MgdG8gYmUgbG9ja2VkICovCisJLyoKKwkgKiBOb3RlOiBDb25mbGljdCBsb2cgdGFibGVz IGFyZSBkZWxpYmVyYXRlbHkgTk9UIGJsb2NrZWQgaGVyZSwgZXZlbiB0aG91Z2gKKwkgKiBvdGhl ciBkaXJlY3QgRERMIG9uIHRoZW0gaXMgcmVqZWN0ZWQgZWxzZXdoZXJlLiBwZ19kdW1wIHJlbGll cyBvbiBiZWluZworCSAqIGFibGUgdG8gdGFrZSBhbiBBQ0NFU1MgU0hBUkUgbG9jayBvbiB0aGVz ZSB0YWJsZXMgdG8gc2FmZWx5IGR1bXAgdGhlaXIKKwkgKiBkZWZpbml0aW9ucyBkdXJpbmcgYSBi aW5hcnkgdXBncmFkZSwgc28gd2UgcGVybWl0IExPQ0sgY29tbWFuZHMgb24gdGhlbQorCSAqIGFu ZCB0cmVhdCB0aGVtIGxpa2Ugb3JkaW5hcnkgdGFibGVzIGhlcmUuIEl0J3MgdHJ1ZSB0aGF0IGEg c3Ryb25nIGxvY2sKKwkgKiAoU2hhcmVMb2NrIG9yIGFib3ZlKSBvbiBzdWNoIGEgdGFibGUgd291 bGQgY29uZmxpY3Qgd2l0aCB0aGUKKwkgKiBSb3dFeGNsdXNpdmVMb2NrIHRha2VuIGJ5IHRoZSBh cHBseSB3b3JrZXIncyBpbnNlcnRzIGFuZCBjb3VsZCBzdGFsbAorCSAqIGNvbmZsaWN0IGxvZ2dp bmcgYXMgd2VsbCBhcyB0aGUgYXBwbHkgd29ya2VyIGZvciBhcyBsb25nIGFzIGl0IGlzIGhlbGQu CisJICogQnV0IGxvY2tpbmcgYSBzeXN0ZW0tbWFuYWdlZCBjb25mbGljdCBsb2cgdGFibGUgaXMg YW4gdW51c3VhbCB0aGluZyB0bworCSAqIGRvLCBhbmQgaXQgZG9lc24ndCBzZWVtIHdvcnRoIHRo ZSB0cm91YmxlIG9mIGZpbHRlcmluZyBieSBsb2NrIG1vZGUgaGVyZS4KKwkgKi8KIAlpZiAocmVs a2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OICYmIHJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05F RF9UQUJMRSAmJgogCQlyZWxraW5kICE9IFJFTEtJTkRfVklFVykKIAkJZXJlcG9ydChFUlJPUiwK QEAgLTE5OCw2ICsyMTAsMTMgQEAgTG9ja1ZpZXdSZWN1cnNlX3dhbGtlcihOb2RlICpub2RlLCBM b2NrVmlld1JlY3Vyc2VfY29udGV4dCAqY29udGV4dCkKIAkJCQlyZWxraW5kICE9IFJFTEtJTkRf VklFVykKIAkJCQljb250aW51ZTsKIAorCQkJLyoKKwkJCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSBmb3IgbG9naWNhbAorCQkJICogYW5kIHNob3VsZCBu b3QgYmUgbG9ja2VkIGV4cGxpY2l0bHkuCisJCQkgKi8KKwkJCWlmIChJc0NvbmZsaWN0TG9nVGFi bGVOYW1lc3BhY2UoZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpKSkKKwkJCQljb250aW51ZTsKKwog CQkJLyoKIAkJCSAqIFdlIG1pZ2h0IGJlIGRlYWxpbmcgd2l0aCBhIHNlbGYtcmVmZXJlbnRpYWwg dmlldy4gIElmIHNvLCB3ZQogCQkJICogY2FuIGp1c3Qgc3RvcCByZWN1cnNpbmcsIHNpbmNlIHdl IGFscmVhZHkgbG9ja2VkIGl0LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9s aWN5LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wb2xpY3kuYwppbmRleCAyMWI4ZWViZTMyZC4u MTBlYTU5OWJhYzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvbGljeS5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvbGljeS5jCkBAIC03OSw2ICs3OSwxOCBAQCBSYW5n ZVZhckNhbGxiYWNrRm9yUG9saWN5KGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQg b2xkcmVsaWQsCiAJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJlbGF0aW9uSWQsIHJl bGlkLCBHZXRVc2VySWQoKSkpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwg Z2V0X3JlbGtpbmRfb2JqdHlwZShnZXRfcmVsX3JlbGtpbmQocmVsaWQpKSwgcnYtPnJlbG5hbWUp OwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90 IGJlIG1vZGlmaWVkIGRpcmVjdGx5LCBhcyBpdCBjb3VsZCBkaXNydXB0CisJICogY29uZmxpY3Qg bG9nZ2luZy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoY2xhc3Nmb3JtKSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklW SUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25m bGljdCBsb2cgdGFibGUiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIkNv bmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCS8qIE5vIHN5c3RlbSB0YWJsZSBtb2RpZmlj YXRpb25zIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQuICovCiAJaWYgKCFhbGxvd1N5c3RlbVRh YmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBjbGFzc2Zvcm0pKQogCQllcmVwb3J0KEVS Uk9SLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwppbmRleCBiMzU0NzIzYmU0NC4uZThmYTgxZWY1 NTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCkBAIC0xNDcsNiArMTQ3LDIwIEBAIENyZWF0 ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10LCBib29sIGNoZWNrX3JpZ2h0cykKIAkJ CWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShy ZWwtPnJkX3JlbC0+cmVsa2luZCksCiAJCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWwpKTsKIAorCQkvKgorCQkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdl ZCB0YWJsZXMgdXNlZCBpbnRlcm5hbGx5IGZvcgorCQkgKiBsb2dpY2FsIHJlcGxpY2F0aW9uIGNv bmZsaWN0IGxvZ2dpbmcuIFVubGlrZSB1c2VyIHRhYmxlcywgdGhleSBhcmUKKwkJICogbm90IGV4 cGVjdGVkIHRvIGhhdmUgY29tcGxleCBxdWVyeSB1c2FnZSwgc28gdG8ga2VlcCB0aGluZ3Mgc2lt cGxlLAorCQkgKiB1c2VyLWRlZmluZWQgZXh0ZW5kZWQgc3RhdGlzdGljcyBhcmUgbm90IHJlcXVp cmVkIG9yIHN1cHBvcnRlZCBhdAorCQkgKiBwcmVzZW50LgorCQkgKi8KKwkJaWYgKElzQ29uZmxp Y3RMb2dUYWJsZUNsYXNzKHJlbC0+cmRfcmVsKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJCSBlcnJtc2coInBl cm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCQkgZXJyZGV0YWlsKCJDb25mbGlj dCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAkJLyogQ3JlYXRpbmcgc3RhdGlzdGljcyBvbiBzeXN0 ZW0gY2F0YWxvZ3MgaXMgbm90IGFsbG93ZWQgKi8KIAkJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9k cyAmJiBJc1N5c3RlbVJlbGF0aW9uKHJlbCkpCiAJCQllcmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwppbmRleCA5YWYzYjYxNmJmYS4uMTM1M2QwNjc1NzMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCkBAIC0yNzUwLDYgKzI3NTAsMTggQEAgTWVyZ2VBdHRyaWJ1dGVzKExp c3QgKmNvbHVtbnMsIGNvbnN0IExpc3QgKnN1cGVycywgY2hhciByZWxwZXJzaXN0ZW5jZSwKIAkJ CQkJIGVycm1zZygiY2Fubm90IGluaGVyaXQgZnJvbSBwYXJ0aXRpb24gXCIlc1wiIiwKIAkJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikpKSk7CiAKKwkJLyoKKwkJICogQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIGZvciBsb2dpY2FsCisJ CSAqIHJlcGxpY2F0aW9uIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYXMgcGFyZW50IHRhYmxlcywg YXMKKwkJICogaW5oZXJpdGFuY2UgY291bGQgaW50ZXJmZXJlIHdpdGggdGhlIGxvZ2dpbmcgYmVo YXZpb3IuCisJCSAqLworCQlpZiAoSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKHJlbGF0aW9u LT5yZF9yZWwtPnJlbG5hbWVzcGFjZSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNz aW9uIGRlbmllZDogY2Fubm90IGluaGVyaXQgZnJvbSBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wi IiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikpLAorCQkJCQkgZXJy ZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAkJaWYgKHJlbGF0aW9uLT5y ZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTiAmJgogCQkJcmVsYXRpb24tPnJkX3Jl bC0+cmVsa2luZCAhPSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUgJiYKIAkJCXJlbGF0aW9uLT5yZF9y ZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKQEAgLTM4ODcsNiArMzg5 OSwxOSBAQCByZW5hbWVhdHRfY2hlY2soT2lkIG15cmVsaWQsIEZvcm1fcGdfY2xhc3MgY2xhc3Nm b3JtLCBib29sIHJlY3Vyc2luZykKIAlpZiAoIW9iamVjdF9vd25lcmNoZWNrKFJlbGF0aW9uUmVs YXRpb25JZCwgbXlyZWxpZCwgR2V0VXNlcklkKCkpKQogCQlhY2xjaGVja19lcnJvcihBQ0xDSEVD S19OT1RfT1dORVIsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxraW5kKG15cmVsaWQp KSwKIAkJCQkJICAgTmFtZVN0cihjbGFzc2Zvcm0tPnJlbG5hbWUpKTsKKworCS8qCisJICogQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBkaXJl Y3RseSwgYXMgaXQgY291bGQgZGlzcnVwdAorCSAqIGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJ aWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGNsYXNzZm9ybSkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJy bXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwK KwkJCQkJCU5hbWVTdHIoY2xhc3Nmb3JtLT5yZWxuYW1lKSksCisJCQkJIGVycmRldGFpbCgiQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJl cGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAm JiBJc1N5c3RlbUNsYXNzKG15cmVsaWQsIGNsYXNzZm9ybSkpCiAJCWVyZXBvcnQoRVJST1IsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKQEAgLTY4ODksNiAr NjkxNCwxOCBAQCBBVFNpbXBsZVBlcm1pc3Npb25zKEFsdGVyVGFibGVUeXBlIGNtZHR5cGUsIFJl bGF0aW9uIHJlbCwgaW50IGFsbG93ZWRfdGFyZ2V0cykKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hF Q0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKHJlbC0+cmRfcmVsLT5yZWxraW5kKSwK IAkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CiAKKwkvKgorCSAqIENvbmZs aWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgYmUgYWx0ZXJlZCBkaXJlY3Rs eSwgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdAorCSAqIGxvZ2dpbmcuCisJICovCisJaWYg KElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbC0+cmRfcmVsKSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJt c2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAor CQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJIGVycmRldGFpbCgiQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJl cGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAm JiBJc1N5c3RlbVJlbGF0aW9uKHJlbCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKQEAgLTEwMTk4LDYgKzEwMjM1LDE4IEBA IEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5m byAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkJIGVycm1zZygicmVmZXJlbmNlZCByZWxhdGlvbiBc IiVzXCIgaXMgbm90IGEgdGFibGUiLAogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocGty ZWwpKSkpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFs bHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91 bGQgbm90IGJlIHJlZmVyZW5jZWQgYnkgZm9yZWlnbiBrZXlzLCBhcyBpdCBjb3VsZAorCSAqIGRp c3J1cHQgY29uZmxpY3QgbG9nZ2luZy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xh c3MocGtyZWwtPnJkX3JlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmll ZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHBrcmVsKSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBh cmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4iKSkpOworCiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbVJlbGF0aW9u KHBrcmVsKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklD SUVOVF9QUklWSUxFR0UpLApAQCAtMTk4MTgsNiArMTk4NjcsMTggQEAgUmFuZ2VWYXJDYWxsYmFj a093bnNSZWxhdGlvbihjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCWFjbGNoZWNrX2Vycm9y KEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShnZXRfcmVsX3JlbGtpbmQo cmVsSWQpKSwKIAkJCQkJICAgcmVsYXRpb24tPnJlbG5hbWUpOwogCisJLyoKKwkgKiBDb25mbGlj dCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24g Y29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGRpcmVjdGx5 LCBhcyBpdCBjb3VsZCBkaXNydXB0CisJICogY29uZmxpY3QgbG9nZ2luZy4KKwkgKi8KKwlpZiAo SXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSkp KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNv bmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSksCisJCQkJIGVycmRl dGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBs b2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJaWYgKCFhbGxvd1N5c3RlbVRh YmxlTW9kcyAmJgogCQlJc1N5c3RlbUNsYXNzKHJlbElkLCAoRm9ybV9wZ19jbGFzcykgR0VUU1RS VUNUKHR1cGxlKSkpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0xOTg1Myw2ICsxOTkxNCwxOCBAQCBS YW5nZVZhckNhbGxiYWNrRm9yQWx0ZXJSZWxhdGlvbihjb25zdCBSYW5nZVZhciAqcnYsIE9pZCBy ZWxpZCwgT2lkIG9sZHJlbGlkLAogCWlmICghb2JqZWN0X293bmVyY2hlY2soUmVsYXRpb25SZWxh dGlvbklkLCByZWxpZCwgR2V0VXNlcklkKCkpKQogCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19O T1RfT1dORVIsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxraW5kKHJlbGlkKSksIHJ2 LT5yZWxuYW1lKTsKIAorCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRl cm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQg c2hvdWxkIG5vdCBiZSBhbHRlcmVkIGRpcmVjdGx5LCBhcyBpdCBjb3VsZCBkaXNydXB0IGNvbmZs aWN0CisJICogbG9nZ2luZy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoY2xh c3Nmb3JtKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklD SUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIg aXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBlcnJk ZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3Ig bG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCS8qIE5vIHN5c3RlbSB0YWJs ZSBtb2RpZmljYXRpb25zIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQuICovCiAJaWYgKCFhbGxv d1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBjbGFzc2Zvcm0pKQogCQll cmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCmluZGV4IGI4N2I0YjQwZDA3Li5kZTc5 NTdhMTVmNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpAQCAtMzE0LDYgKzMxNCwxOCBAQCBDcmVh dGVUcmlnZ2VyRmlyaW5nT24oY29uc3QgQ3JlYXRlVHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIg KnF1ZXJ5U3RyaW5nLAogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCiAJCQkJ IGVycmRldGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQocmVsLT5yZF9yZWwtPnJlbGtpbmQpKSk7 CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3Ig bG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3Qg aGF2ZSB0cmlnZ2VycywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdAorCSAqIGxvZ2dpbmcu CisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbC0+cmRfcmVsKSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBs b2cgdGFibGUiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJIGVy cmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZv ciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJaWYgKCFhbGxvd1N5c3Rl bVRhYmxlTW9kcyAmJiBJc1N5c3RlbVJlbGF0aW9uKHJlbCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKQEAgLTE0NDMsNiAr MTQ1NSwxOSBAQCBSYW5nZVZhckNhbGxiYWNrRm9yUmVuYW1lVHJpZ2dlcihjb25zdCBSYW5nZVZh ciAqcnYsIE9pZCByZWxpZCwgT2lkIG9sZHJlbGlkLAogCS8qIHlvdSBtdXN0IG93biB0aGUgdGFi bGUgdG8gcmVuYW1lIG9uZSBvZiBpdHMgdHJpZ2dlcnMgKi8KIAlpZiAoIW9iamVjdF9vd25lcmNo ZWNrKFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQsIEdldFVzZXJJZCgpKSkKIAkJYWNsY2hlY2tf ZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKGdldF9yZWxfcmVs a2luZChyZWxpZCkpLCBydi0+cmVsbmFtZSk7CisKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAor CSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgaGF2ZSB0cmlnZ2VycywgYXMgaXQgY291bGQgZGlz cnVwdCBjb25mbGljdAorCSAqIGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJs ZUNsYXNzKGZvcm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5T VUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwi JXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlydi0+cmVsbmFtZSksCisJCQkJ IGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVz IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJaWYgKCFhbGxvd1N5 c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBmb3JtKSkKIAkJZXJlcG9ydChF UlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMgYi9zcmMvYmFja2Vu ZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUuYwppbmRleCA2YTIyM2ZiZWFhNC4uZDAwZDc2NjEzYTEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZURlZmluZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZURlZmluZS5jCkBAIC0yNjIsNiArMjYyLDE3IEBAIERl ZmluZVF1ZXJ5UmV3cml0ZShjb25zdCBjaGFyICpydWxlbmFtZSwKIAkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKGV2ZW50X3JlbGF0aW9uKSksCiAJCQkJIGVycmRldGFpbF9yZWxraW5kX25v dF9zdXBwb3J0ZWQoZXZlbnRfcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCkpKTsKIAorCS8qCisJ ICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJl cGxpY2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBoYXZlIHJ1bGVz LCBhcyBpdCBjb3VsZCBkaXNydXB0IGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29u ZmxpY3RMb2dUYWJsZUNsYXNzKGV2ZW50X3JlbGF0aW9uLT5yZF9yZWwpKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJ IGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJs ZSIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShldmVudF9yZWxhdGlvbikpLAorCQkJ CSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxl cyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dT eXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihldmVudF9yZWxhdGlvbikpCiAJCWVy ZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdF KSwKQEAgLTc3Miw2ICs3ODMsMTcgQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVJ1bGUoY29u c3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAkJCQkgZXJybXNnKCJy ZWxhdGlvbiBcIiVzXCIgY2Fubm90IGhhdmUgcnVsZXMiLCBydi0+cmVsbmFtZSksCiAJCQkJIGVy cmRldGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQoZm9ybS0+cmVsa2luZCkpKTsKIAorCS8qCisJ ICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJl cGxpY2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBoYXZlIHJ1bGVz LCBhcyBpdCBjb3VsZCBkaXNydXB0IGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29u ZmxpY3RMb2dUYWJsZUNsYXNzKGZvcm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lv biBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlydi0+cmVs bmFtZSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1h bmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJ aWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBmb3JtKSkK IAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklW SUxFR0UpLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRp b24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4 IDZmYTBlOGQxNmZhLi5lMjBjY2QzNjViZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3Vic2NyaXB0aW9uLm91dApAQCAtOTE0LDYgKzkxNCwyMzAgQEAgQ1JFQVRFIFRBQkxFIHB1Ymxp Yy50ZXN0X21vdmUgKGlkIGludCk7CiBBTFRFUiBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNFVCBT Q0hFTUEgcGdfY29uZmxpY3Q7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzY2hlbWEg cGdfY29uZmxpY3QKIERST1AgVEFCTEUgcHVibGljLnRlc3RfbW92ZTsKKy0tIFNldHVwIGR1bW15 IHRyaWdnZXIgZnVuY3Rpb24gZm9yIHRyaWdnZXIgdGVzdHMKK0NSRUFURSBGVU5DVElPTiBwdWJs aWMuZHVtbXlfdHJpZ2dlcl9mdW5jKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCitCRUdJTgorICAg IFJFVFVSTiBORVc7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gUG9saWN5IG9uIGNv bmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworICAg IGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAn cGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNz IGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9n XycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90 ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUgJ0NSRUFURSBQT0xJQ1kgcDEgT04gJyB8fCB0YWJf bmFtZSB8fCAnIFVTSU5HICh0cnVlKSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJp dmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FH RV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJ Q0UgJ1BvbGljeSBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxhY2Uo ZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAor ICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycs ICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CitOT1RJQ0U6ICBQb2xpY3kgZXJyb3I6 IHBlcm1pc3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3RfbG9nX3h4eCIgaXMgYSBjb25mbGljdCBs b2cgdGFibGUsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQg dGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KKy0tIFN0YXRpc3RpY3Mg b24gY29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7 CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VM RUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdf Y2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGlj dF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQ1JFQVRFIFNUQVRJU1RJQ1MgczEgT04g cmVsbmFtZSwgc2NoZW1hbmFtZSBGUk9NICcgfHwgdGFiX25hbWU7CitFWENFUFRJT04gV0hFTiBp bnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBl cnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsK KyAgICBSQUlTRSBOT1RJQ0UgJ1N0YXRpc3RpY3MgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAg ICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2Nv bmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3Bn X2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworTk9U SUNFOiAgU3RhdGlzdGljcyBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6ICJwZ19jb25mbGljdF9s b2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFi bGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29u ZmxpY3RzLgorLS0gSW5oZXJpdGFuY2UgZnJvbSBjb25mbGljdCBsb2cgdGFibGUKK0RPICQkCitE RUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2Rl dGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJ TlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMg T04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5z dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRF ICdDUkVBVEUgVEFCTEUgcHVibGljLmNvbmZsaWN0X2NoaWxkICgpIElOSEVSSVRTICgnIHx8IHRh Yl9uYW1lIHx8ICcpJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhF TgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVy cl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElDRSAnSW5oZXJp dGFuY2UgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9t c2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAg ICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdf Y29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworTk9USUNFOiAgSW5oZXJpdGFuY2UgZXJyb3I6 IHBlcm1pc3Npb24gZGVuaWVkOiBjYW5ub3QgaW5oZXJpdCBmcm9tIGNvbmZsaWN0IGxvZyB0YWJs ZSAicGdfY29uZmxpY3RfbG9nX3h4eCIsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUg c3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4K Ky0tIENvbHVtbiByZW5hbWUgb24gY29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQor ICAgIHRhYl9uYW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4 dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJf bmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9 ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQUxURVIg VEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAnIFJFTkFNRSBDT0xVTU4gcmVsbmFtZSBUTyBuZXdfcmVs bmFtZSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBH RVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWls ID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ0NvbHVtbiByZW5hbWUg ZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdw Z19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVn ZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxp Y3RfbG9nX3h4eCcpOworRU5EICQkOworTk9USUNFOiAgQ29sdW1uIHJlbmFtZSBlcnJvcjogcGVy bWlzc2lvbiBkZW5pZWQ6ICJwZ19jb25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0 YWJsZSwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJs ZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgorLS0gRm9yZWlnbiBrZXkgcmVm ZXJlbmNlIHRvIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFt ZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgor ICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBG Uk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdf Y29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUgJ0NSRUFURSBUQUJMRSBwdWJs aWMuY29uZmxpY3RfZmsgKHJlbG5hbWUgdGV4dCBSRUZFUkVOQ0VTICcgfHwgdGFiX25hbWUgfHwg JyhyZWxuYW1lKSknOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVO CisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJy X2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNFICdGb3JlaWdu IGtleSBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21z ZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAorICAgICAg ICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19j b25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CitOT1RJQ0U6ICBGb3JlaWduIGtleSBlcnJvcjog cGVybWlzc2lvbiBkZW5pZWQ6ICJwZ19jb25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxv ZyB0YWJsZSwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0 YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgorLS0gQWx0ZXIgdGFibGUg b3duZXIKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRl eHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0 LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdf c3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lk CisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0 JzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgT1dORVIgVE8g cmVncmVzc19zdWJzY3JpcHRpb25fdXNlcl9kdW1teSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNn ID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBS QUlTRSBOT1RJQ0UgJ0FsdGVyIG93bmVyIGVycm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAgICBy ZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGlj dF9sb2dfeHh4JyksCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25m bGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKK0VORCAkJDsKK05PVElDRTog IEFsdGVyIG93bmVyIGVycm9yOiBwZXJtaXNzaW9uIGRlbmllZDogInBnX2NvbmZsaWN0X2xvZ194 eHgiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGlj dHMuCistLSBBbHRlciB0YWJsZSBzY2hlbWEKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUg dGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAg ICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJP TSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRh Yl9uYW1lIHx8ICcgU0VUIFNDSEVNQSBwdWJsaWMnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNp ZW50X3ByaXZpbGVnZSBUSEVOCisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9 IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJ U0UgTk9USUNFICdBbHRlciBzY2hlbWEgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJl Z2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0 X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZs aWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworTk9USUNFOiAg QWx0ZXIgc2NoZW1hIGVycm9yOiBwZXJtaXNzaW9uIGRlbmllZDogInBnX2NvbmZsaWN0X2xvZ194 eHgiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGlj dHMuCistLSBDcmVhdGUgdHJpZ2dlciBvbiBjb25mbGljdCBsb2cgdGFibGUKK0RPICQkCitERUNM QVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFp bCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRP IHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04g Yy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdD UkVBVEUgVFJJR0dFUiB0MSBCRUZPUkUgSU5TRVJUIE9OICcgfHwgdGFiX25hbWUgfHwgJyBGT1Ig RUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiBwdWJsaWMuZHVtbXlfdHJpZ2dlcl9mdW5jKCknOwor RVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgR0VUIFNUQUNL RUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VY Q0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNFICdDcmVhdGUgdHJpZ2dlciBlcnJvcjog JSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZs aWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAorICAgICAgICByZWdleHBfcmVw bGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2df eHh4Jyk7CitFTkQgJCQ7CitOT1RJQ0U6ICBDcmVhdGUgdHJpZ2dlciBlcnJvcjogcGVybWlzc2lv biBkZW5pZWQ6ICJwZ19jb25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwg ZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgorLS0gUmVuYW1lIHRyaWdnZXIgb24gY29u ZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CisgICAg ZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdw Z19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3Mg YyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2df JyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3Rl Y3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQUxURVIgVFJJR0dFUiBub25fZXhpc3RlbnRfdHJp Z2dlciBPTiAnIHx8IHRhYl9uYW1lIHx8ICcgUkVOQU1FIFRPIG5ld190cmlnZ2VyJzsKK0VYQ0VQ VElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJ QUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJ T05fREVUQUlMOworICAgIFJBSVNFIE5PVElDRSAnUmVuYW1lIHRyaWdnZXIgZXJyb3I6ICUsIGRl dGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9s b2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2Uo ZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcp OworRU5EICQkOworTk9USUNFOiAgUmVuYW1lIHRyaWdnZXIgZXJyb3I6IHBlcm1pc3Npb24gZGVu aWVkOiAicGdfY29uZmxpY3RfbG9nX3h4eCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUsIGRldGFp bDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dp Y2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KKy0tIENyZWF0ZSBydWxlIG9uIGNvbmZsaWN0IGxv ZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cg dGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxp Y3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBw Z19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5v aWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rl c3QnOworICAgIEVYRUNVVEUgJ0NSRUFURSBSVUxFIHIxIEFTIE9OIElOU0VSVCBUTyAnIHx8IHRh Yl9uYW1lIHx8ICcgRE8gSU5TVEVBRCBOT1RISU5HJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmlj aWVudF9wcml2aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cg PSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJB SVNFIE5PVElDRSAnQ3JlYXRlIHJ1bGUgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJl Z2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0 X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZs aWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworTk9USUNFOiAg Q3JlYXRlIHJ1bGUgZXJyb3I6IHBlcm1pc3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3RfbG9nX3h4 eCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBh cmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4KKy0tIFJlbmFtZSBydWxlIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUK KyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRl eHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFi X25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJl bG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUgJ0FMVEVS IFJVTEUgbm9uX2V4aXN0ZW50X3J1bGUgT04gJyB8fCB0YWJfbmFtZSB8fCAnIFJFTkFNRSBUTyBu ZXdfcnVsZSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAg ICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0 YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ1JlbmFtZSBydWxl IGVycm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAn cGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCisgICAgICAgIHJl Z2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZs aWN0X2xvZ194eHgnKTsKK0VORCAkJDsKK05PVElDRTogIFJlbmFtZSBydWxlIGVycm9yOiBwZXJt aXNzaW9uIGRlbmllZDogInBnX2NvbmZsaWN0X2xvZ194eHgiIGlzIGEgY29uZmxpY3QgbG9nIHRh YmxlLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxl cyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCistLSBDcmVhdGUgaW5kZXggb24g Y29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7Cisg ICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNU ICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xh c3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9s b2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQ1JFQVRFIElOREVYIGlkeDEgT04gJyB8fCB0 YWJfbmFtZSB8fCAnIChyZWxuYW1lKSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJp dmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FH RV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJ Q0UgJ0NyZWF0ZSBpbmRleCBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3Jl cGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4 eCcpLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9n X1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CitOT1RJQ0U6ICBDcmVhdGUg aW5kZXggZXJyb3I6IHBlcm1pc3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3RfbG9nX3h4eCIgaXMg YSBjb25mbGljdCBsb2cgdGFibGUsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lz dGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KKy0t IENsZWFuIHVwIHRyaWdnZXIgZnVuY3Rpb24KK0RST1AgRlVOQ1RJT04gcHVibGljLmR1bW15X3Ry aWdnZXJfZnVuYygpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOwogLS0gQ2xl YW4gdXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNj cmlwdGlvbi5zcWwKaW5kZXggZTNiMjA3MzAxNTQuLmM1NTdhNzQ5NzdlIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAgLTcxMSw2ICs3MTEsMjMzIEBAIENSRUFURSBUQUJM RSBwdWJsaWMudGVzdF9tb3ZlIChpZCBpbnQpOwogQUxURVIgVEFCTEUgcHVibGljLnRlc3RfbW92 ZSBTRVQgU0NIRU1BIHBnX2NvbmZsaWN0OwogRFJPUCBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlOwog CistLSBTZXR1cCBkdW1teSB0cmlnZ2VyIGZ1bmN0aW9uIGZvciB0cmlnZ2VyIHRlc3RzCitDUkVB VEUgRlVOQ1RJT04gcHVibGljLmR1bW15X3RyaWdnZXJfZnVuYygpIFJFVFVSTlMgdHJpZ2dlciBB UyAkJAorQkVHSU4KKyAgICBSRVRVUk4gTkVXOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK KworLS0gUG9saWN5IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0 YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitC RUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUK KyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUg PSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUgJ0NSRUFURSBQT0xJ Q1kgcDEgT04gJyB8fCB0YWJfbmFtZSB8fCAnIFVTSU5HICh0cnVlKSc7CitFWENFUFRJT04gV0hF TiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElD UyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJ TDsKKyAgICBSQUlTRSBOT1RJQ0UgJ1BvbGljeSBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAg ICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29u ZmxpY3RfbG9nX3h4eCcpLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdf Y29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CisKKy0t IFN0YXRpc3RpY3Mgb24gY29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRh Yl9uYW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JF R0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQor ICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9 ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQ1JFQVRFIFNUQVRJ U1RJQ1MgczEgT04gcmVsbmFtZSwgc2NoZW1hbmFtZSBGUk9NICcgfHwgdGFiX25hbWU7CitFWENF UFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBE SUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBU SU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ1N0YXRpc3RpY3MgZXJyb3I6ICUsIGRldGFp bDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2df XGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJy X2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwor RU5EICQkOworCistLSBJbmhlcml0YW5jZSBmcm9tIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQK K0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJf ZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1l IElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24g cyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBz LnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNV VEUgJ0NSRUFURSBUQUJMRSBwdWJsaWMuY29uZmxpY3RfY2hpbGQgKCkgSU5IRVJJVFMgKCcgfHwg dGFiX25hbWUgfHwgJyknOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBU SEVOCisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwg ZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNFICdJbmhl cml0YW5jZSBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJy X21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAorICAg ICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdw Z19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CisKKy0tIENvbHVtbiByZW5hbWUgb24gY29u ZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CisgICAg ZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdw Z19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3Mg YyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2df JyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3Rl Y3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAn IFJFTkFNRSBDT0xVTU4gcmVsbmFtZSBUTyBuZXdfcmVsbmFtZSc7CitFWENFUFRJT04gV0hFTiBp bnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBl cnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsK KyAgICBSQUlTRSBOT1RJQ0UgJ0NvbHVtbiByZW5hbWUgZXJyb3I6ICUsIGRldGFpbDogJScsCisg ICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3Bn X2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwg J3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOwor CistLSBGb3JlaWduIGtleSByZWZlcmVuY2UgdG8gY29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAor REVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9k ZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUg SU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMu c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VU RSAnQ1JFQVRFIFRBQkxFIHB1YmxpYy5jb25mbGljdF9mayAocmVsbmFtZSB0ZXh0IFJFRkVSRU5D RVMgJyB8fCB0YWJfbmFtZSB8fCAnKHJlbG5hbWUpKSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNn ID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBS QUlTRSBOT1RJQ0UgJ0ZvcmVpZ24ga2V5IGVycm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAgICBy ZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGlj dF9sb2dfeHh4JyksCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25m bGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKK0VORCAkJDsKKworLS0gQWx0 ZXIgdGFibGUgb3duZXIKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBl cnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3Bn X2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBj IEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18n IHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVj dGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcg T1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcl9kdW1teSc7CitFWENFUFRJT04gV0hF TiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElD UyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJ TDsKKyAgICBSQUlTRSBOT1RJQ0UgJ0FsdGVyIG93bmVyIGVycm9yOiAlLCBkZXRhaWw6ICUnLAor ICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdw Z19jb25mbGljdF9sb2dfeHh4JyksCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWws ICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKK0VORCAkJDsK KworLS0gQWx0ZXIgdGFibGUgc2NoZW1hCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRl eHQ7CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAg U0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00g cGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25m bGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJf bmFtZSB8fCAnIFNFVCBTQ0hFTUEgcHVibGljJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVu dF9wcml2aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBN RVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJBSVNF IE5PVElDRSAnQWx0ZXIgc2NoZW1hIGVycm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAgICByZWdl eHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9s b2dfeHh4JyksCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGlj dF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKK0VORCAkJDsKKworLS0gQ3JlYXRl IHRyaWdnZXIgb24gY29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9u YW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lO CisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAg IEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdw Z19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQ1JFQVRFIFRSSUdHRVIg dDEgQkVGT1JFIElOU0VSVCBPTiAnIHx8IHRhYl9uYW1lIHx8ICcgRk9SIEVBQ0ggUk9XIEVYRUNV VEUgRlVOQ1RJT04gcHVibGljLmR1bW15X3RyaWdnZXJfZnVuYygpJzsKK0VYQ0VQVElPTiBXSEVO IGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNT IGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlM OworICAgIFJBSVNFIE5PVElDRSAnQ3JlYXRlIHRyaWdnZXIgZXJyb3I6ICUsIGRldGFpbDogJScs CisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywg J3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFp bCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQk OworCistLSBSZW5hbWUgdHJpZ2dlciBvbiBjb25mbGljdCBsb2cgdGFibGUKK0RPICQkCitERUNM QVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFp bCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRP IHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04g Yy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdB TFRFUiBUUklHR0VSIG5vbl9leGlzdGVudF90cmlnZ2VyIE9OICcgfHwgdGFiX25hbWUgfHwgJyBS RU5BTUUgVE8gbmV3X3RyaWdnZXInOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZp bGVnZSBUSEVOCisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0Vf VEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNF ICdSZW5hbWUgdHJpZ2dlciBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3Jl cGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4 eCcpLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9n X1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CisKKy0tIENyZWF0ZSBydWxl IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0 OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNF TEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBn X2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxp Y3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUgJ0NSRUFURSBSVUxFIHIxIEFTIE9OIElO U0VSVCBUTyAnIHx8IHRhYl9uYW1lIHx8ICcgRE8gSU5TVEVBRCBOT1RISU5HJzsKK0VYQ0VQVElP TiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdO T1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05f REVUQUlMOworICAgIFJBSVNFIE5PVElDRSAnQ3JlYXRlIHJ1bGUgZXJyb3I6ICUsIGRldGFpbDog JScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQr JywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2Rl dGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5E ICQkOworCistLSBSZW5hbWUgcnVsZSBvbiBjb25mbGljdCBsb2cgdGFibGUKK0RPICQkCitERUNM QVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFp bCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRP IHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04g Yy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdB TFRFUiBSVUxFIG5vbl9leGlzdGVudF9ydWxlIE9OICcgfHwgdGFiX25hbWUgfHwgJyBSRU5BTUUg VE8gbmV3X3J1bGUnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVO CisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJy X2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNFICdSZW5hbWUg cnVsZSBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21z ZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAorICAgICAg ICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19j b25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CisKKy0tIENyZWF0ZSBpbmRleCBvbiBjb25mbGlj dCBsb2cgdGFibGUKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJf bXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2Nv bmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpP SU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8 IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlv bl90ZXN0JzsKKyAgICBFWEVDVVRFICdDUkVBVEUgSU5ERVggaWR4MSBPTiAnIHx8IHRhYl9uYW1l IHx8ICcgKHJlbG5hbWUpJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2Ug VEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQs IGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElDRSAnQ3Jl YXRlIGluZGV4IGVycm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAgICByZWdleHBfcmVwbGFjZShl cnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCisg ICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywg J3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKK0VORCAkJDsKKworLS0gQ2xlYW4gdXAgdHJpZ2dlciBm dW5jdGlvbgorRFJPUCBGVU5DVElPTiBwdWJsaWMuZHVtbXlfdHJpZ2dlcl9mdW5jKCk7CisKKwog U0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOwogCiAtLSBDbGVhbiB1cCByZW1haW5p bmcgdGVzdCBzdWJzY3JpcHRpb24KLS0gCjIuNDkuMAoK --000000000000cc7a050655003f54 Content-Type: application/octet-stream; name="v56-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Disposition: attachment; filename="v56-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqs4zeap4 RnJvbSBkYTk2ZmFhYTJkZWMxNDFlMWIxZjZkMGY1ODhlYWI0MGI2ZTVkYjY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTEgSnVuIDIwMjYgMTc6Mzc6MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1NiA1LzZd IEFkZCBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gdG8gZGVzY3JpYmUKIHN1YnNjcmlw dGlvbiBvdXRwdXQKCkRpc3BsYXkgdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIGFz IGEgZm9vdGVyIGluIFxkUnMrCm91dHB1dCB3aGVuIGNvbmZsaWN0IGxvZ2dpbmcgdG8gdGFibGUv YWxsIGlzIGVuYWJsZWQgZm9yIGEKc3Vic2NyaXB0aW9uLgoKUHJldmlvdXNseSwgc3Vic2NyaXB0 aW9ucyB3ZXJlIGRpc3BsYXllZCB1c2luZyBhIHNpbmdsZSB0YWJ1bGFyCm91dHB1dCBmb3JtYXQu IFNpbmNlIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gaXMgc3BlY2lmaWMKdG8g ZWFjaCBzdWJzY3JpcHRpb24gYW5kIGlzIGJldHRlciBzdWl0ZWQgYXMgYXV4aWxpYXJ5IGluZm9y bWF0aW9uLApjaGFuZ2UgdGhlIG91dHB1dCB0byBkaXNwbGF5IGVhY2ggc3Vic2NyaXB0aW9uIGlu ZGl2aWR1YWxseSBpbiBhCnJvdy13aXNlIHRhYmxlIGZvcm1hdCBhbmQgc2hvdyB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIGFzIGEgZm9vdGVyCndoZW4gYXBwbGljYWJsZS4KClRPRE86IEVuc3VyZSBh bGwgMTkwMDAwIHNlcmllcyByZWZlcmVuY2VzIGFyZSB1cGRhdGVkIHRvIDIwMDAwMAp3aGVuIHRo ZSB2ZXJzaW9uIG51bWJlciBpcyBidW1wZWQuCgpUaGlzIGFwcHJvYWNoIHdhcyBjaG9zZW4gYmFz ZWQgb24gc3VnZ2VzdGlvbnMgYXQ6Cmh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvQ0FBNGVLMUtkS3FLa2FUcWNqM2luNmVoRF9oZzZvT2FDRl8tSnNWZmQ4TjZuUzhvVjlnJTQw bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAg ICB8IDQxMCArKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJz Y3JpcHRpb24ub3V0IHwgMTc2ICsrKystLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0MjkgaW5zZXJ0 aW9ucygrKSwgMTY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21t YW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDAxYjhmMTFhYWRkLi43NzdkMDU1 MzI0NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3Bz cWwvY29tbWFuZC5jCkBAIC0xMjIwLDcgKzEyMjAsMTAgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkK IAkJCQkJCQlzdWNjZXNzID0gbGlzdFB1YmxpY2F0aW9ucyhwYXR0ZXJuKTsKIAkJCQkJCWJyZWFr OwogCQkJCQljYXNlICdzJzoKLQkJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZVN1YnNjcmlwdGlvbnMo cGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQkJCWlmIChzaG93X3ZlcmJvc2UpCisJCQkJCQkJ c3VjY2VzcyA9IGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhwYXR0ZXJuKTsKKwkJCQkJCWVsc2UKKwkJ CQkJCQlzdWNjZXNzID0gbGlzdFN1YnNjcmlwdGlvbnMocGF0dGVybik7CiAJCQkJCQlicmVhazsK IAkJCQkJZGVmYXVsdDoKIAkJCQkJCXN0YXR1cyA9IFBTUUxfQ01EX1VOS05PV047CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmlu ZGV4IGFmMzkzNWIwMDc4Li42MzJjZWIxMmJlZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTIzLDYgKzIzLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbl9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb25zdHJhaW50X2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RlZmF1bHRfYWNsX2QuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZV9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9jX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX2QuaCIKQEAgLTcwODEsMTkgKzcwODIs MTcgQEAgZXJyb3JfcmV0dXJuOgogCiAvKgogICogXGRScwotICogRGVzY3JpYmVzIHN1YnNjcmlw dGlvbnMuCisgKiBMaXN0cyBzdWJzY3JpcHRpb25zLgogICoKICAqIFRha2VzIGFuIG9wdGlvbmFs IHJlZ2V4cCB0byBzZWxlY3QgcGFydGljdWxhciBzdWJzY3JpcHRpb25zCiAgKi8KIGJvb2wKLWRl c2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCits aXN0U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogewogCVBRRXhwQnVmZmVyRGF0 YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBv cHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwKLQkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0 ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQu c3ZlcnNpb24gPCAxMDAwMDApCiAJewpAQCAtNzEwOCwxMDEgKzcxMDcsMjM1IEBAIGRlc2NyaWJl U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJaW5pdFBR RXhwQnVmZmVyKCZidWYpOwogCiAJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVzICovXG4i LCBfKCJHZXQgbWF0Y2hpbmcgc3Vic2NyaXB0aW9ucyIpKTsKKworCS8qIE9ubHkgZGlzcGxheSBz dWJzY3JpcHRpb25zIGluIGN1cnJlbnQgZGF0YWJhc2UuICovCiAJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJICAiU0VMRUNUIHN1Ym5hbWUgQVMgXCIlc1wiXG4iCiAJCQkJCSAgIiwgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHN1Ym93bmVyKSBBUyBcIiVzXCJcbiIKIAkJCQkJICAi LCAgc3ViZW5hYmxlZCBBUyBcIiVzXCJcbiIKLQkJCQkJICAiLCAgc3VicHVibGljYXRpb25zIEFT IFwiJXNcIlxuIiwKKwkJCQkJICAiLCAgc3VicHVibGljYXRpb25zIEFTIFwiJXNcIlxuIgorCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uXG4iCisJCQkJCSAgIldIRVJFIHN1 YmRiaWQgPSAoU0VMRUNUIG9pZFxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIEZST00gcGdf Y2F0YWxvZy5wZ19kYXRhYmFzZVxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIFdIRVJFIGRh dG5hbWUgPSBwZ19jYXRhbG9nLmN1cnJlbnRfZGF0YWJhc2UoKSkiLAogCQkJCQkgIGdldHRleHRf bm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIkVuYWJsZWQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlB1YmxpY2F0aW9uIikp OwogCi0JaWYgKHZlcmJvc2UpCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBh dHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQlOVUxMLCAic3VibmFtZSIsIE5VTEwsCisJCQkJ CQkJCU5VTEwsCisJCQkJCQkJCU5VTEwsIDEpKQogCXsKLQkJLyogQmluYXJ5IG1vZGUgYW5kIHN0 cmVhbWluZyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdjE0IGFuZCBoaWdoZXIgKi8KLQkJaWYgKHBz ZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsi KTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7 CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCW15b3B0LnRpdGxlID0gXygiTGlzdCBv ZiBzdWJzY3JpcHRpb25zIik7CisJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJbXlv cHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwlteW9wdC5uX3RyYW5z bGF0ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJcHJpbnRRdWVy eShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJ UFFjbGVhcihyZXMpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBBZGQgZm9vdGVyIHRv IHN1YnNjcmlwdGlvbiBkZXNjcmlwdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2FkZEZvb3RlclRv U3Vic2NyaXB0aW9uRGVzYyhjaGFyICpsb2dkZXN0LCBjaGFyICpjb25mbGljdF9zY2hlbWEsIE9p ZCBzdWJpZCwKKwkJCQkJCQlwcmludFRhYmxlQ29udGVudCAqY29uc3QgY29udCkKK3sKKwlpZiAo cHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJeworCQlpZiAoc3RyY21wKGxvZ2Rlc3QsICJ0YWJs ZSIpID09IDAgfHwgc3RyY21wKGxvZ2Rlc3QsICJhbGwiKSA9PSAwKQogCQl7Ci0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3ViYmluYXJ5IEFTIFwiJXNcIlxuIiwKLQkJ CQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IikpOworCQkJLyoKKwkJCSAqIFRoZSBzaXplIGFj Y291bnRzIGZvciBzY2hlbWEgbmFtZSAoTkFNRURBVEFMRU4pLCByZWxhdGlvbgorCQkJICogbmFt ZSAoTkFNRURBVEFMRU4pLCBzZXBhcmF0b3IgJy4nIGFuZCBudWxsIHRlcm1pbmF0b3IuCisJCQkg Ki8KKwkJCWNoYXIJCWNvbmZsaWN0bG9ndGFibGVbTkFNRURBVEFMRU4gKyBOQU1FREFUQUxFTiAr IDJdOwogCi0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCi0JCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkJICAiLCAoQ0FTRSBzdWJzdHJlYW1cbiIKLQkJCQkJCQkJICAi ICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fT0ZGKSAiIFRIRU4gJ29m ZidcbiIKLQkJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJF QU1fT04pICIgVEhFTiAnb24nXG4iCi0JCQkJCQkJCSAgIiAgICBXSEVOICIgQ3BwQXNTdHJpbmcy KExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMKSAiIFRIRU4gJ3BhcmFsbGVsJ1xuIgotCQkJCQkJ CQkgICIgICBFTkQpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN0cmVh bWluZyIpKTsKLQkJCWVsc2UKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCQkg ICIsIHN1YnN0cmVhbSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTdHJl YW1pbmciKSk7CisJCQlzbnByaW50Zihjb25mbGljdGxvZ3RhYmxlLAorCQkJCQkJc2l6ZW9mKGNv bmZsaWN0bG9ndGFibGUpLAorCQkJCQkJIiVzLiIgQ09ORkxJQ1RfTE9HX1JFTEFUSU9OX05BTUVf Rk1ULAorCQkJCQkJY29uZmxpY3Rfc2NoZW1hLCBzdWJpZCk7CisKKwkJCXByaW50VGFibGVBZGRG b290ZXIoY29udCwgXygiQ29uZmxpY3QgbG9nIHRhYmxlOiIpKTsKKwkJCXByaW50VGFibGVBZGRG b290ZXIoY29udCwKKwkJCQkJCQkJcHNwcmludGYoIiAgICBcIiVzXCIiLCBjb25mbGljdGxvZ3Rh YmxlKSk7CiAJCX0KKwl9Cit9CiAKLQkJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9y IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5kIGhpZ2hlciAqLwotCQlpZiAocHNldC5zdmVy c2lvbiA+PSAxNTAwMDApCi0JCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwg c3VidHdvcGhhc2VzdGF0ZSBBUyBcIiVzXCJcbiIKLQkJCQkJCQkgICIsIHN1YmRpc2FibGVvbmVy ciBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21taXQi KSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiRGlzYWJsZSBvbiBlcnJvciIpKTsKKy8qCisgKiBc ZFJzKworICogRGVzY3JpYmVzIHN1YnNjcmlwdGlvbnMuCisgKgorICogVGFrZXMgYW4gb3B0aW9u YWwgcmVnZXhwIHRvIHNlbGVjdCBwYXJ0aWN1bGFyIHN1YnNjcmlwdGlvbnMKKyAqLworYm9vbAor ZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCit7CisJUFFFeHBCdWZm ZXJEYXRhIGJ1ZjsKKwlpbnQJCQlpOworCVBHcmVzdWx0ICAgKnJlczsKKwlpbnQJCQluY29sczsK KwlpbnQJCQlucm93cyA9IDE7CiAKLQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTYwMDAwKQotCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJc biIKLQkJCQkJCQkgICIsIHN1YnBhc3N3b3JkcmVxdWlyZWQgQVMgXCIlc1wiXG4iCi0JCQkJCQkJ ICAiLCBzdWJydW5hc293bmVyIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgi T3JpZ2luIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIlJ1biBhcyBvd25lcj8iKSk7CisJUFFFeHBCdWZmZXJEYXRh IHRpdGxlOworCXByaW50VGFibGVDb250ZW50IGNvbnQ7CiAKLQkJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTcwMDAwKQorCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQorCXsKKwkJY2hhcgkJc3Zl cmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2Vz IG5vdCBzdXBwb3J0IHN1YnNjcmlwdGlvbnMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJl cihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3Zl cmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwor CisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVzICovXG4iLCBfKCJHZXQgbWF0Y2hpbmcg c3Vic2NyaXB0aW9ucyIpKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxF Q1Qgb2lkLCBzdWJuYW1lIEFTIFwiJXNcIlxuIgorCQkJCQkgICIsICAoU0VMRUNUIG5zcG5hbWUg RlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0gIiBDcHBBc1N0cmluZzIoUEdfQ09ORkxJQ1Rf TkFNRVNQQUNFKSAiKSAgQVMgIFwiJXNcIlxuIgorCQkJCQkgICIsICBwZ19jYXRhbG9nLnBnX2dl dF91c2VyYnlpZChzdWJvd25lcikgQVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YmVuYWJsZWQg QVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YnB1YmxpY2F0aW9ucyBBUyBcIiVzXCJcbiIsCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGlj dF9zY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJFbmFibGVkIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJQdWJsaWNhdGlvbiIpKTsK KworCS8qCisJICogb2lkLCBzdWJuYW1lIGFuZCBjb25mbGljdF9zY2hlbWEgY29sdW1ucyBhcmUg aW50ZXJuYWwgYW5kIG5vdCBkaXNwbGF5ZWQsCisJICogc28gb25seSAzIHZpc2libGUgY29sdW1u cy4KKwkgKi8KKwluY29scyA9IDM7CisKKwkvKiBCaW5hcnkgbW9kZSBhbmQgc3RyZWFtaW5nIGFy ZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTQgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE0MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1 YmJpbmFyeSBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IikpOwor CQluY29scysrOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKIAkJCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJmYWlsb3ZlciBBUyBcIiVzXCJcbiIsCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxvdmVyIikpOwotCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxOTAwMDApCi0JCXsKKwkJCQkJCQkgICIsIChDQVNFIHN1YnN0cmVhbVxuIgorCQkJCQkJCSAg IiAgICBXSEVOICIgQ3BwQXNTdHJpbmcyKExPR0lDQUxSRVBfU1RSRUFNX09GRikgIiBUSEVOICdv ZmYnXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJF QU1fT04pICIgVEhFTiAnb24nXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIo TE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpICIgVEhFTiAncGFyYWxsZWwnXG4iCisJCQkJCQkJ ICAiICAgRU5EKSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN0cmVhbWlu ZyIpKTsKKwkJZWxzZQogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIChz ZWxlY3Qgc3J2bmFtZSBmcm9tIHBnX2NhdGFsb2cucGdfZm9yZWlnbl9zZXJ2ZXIgd2hlcmUgb2lk PXN1YnNlcnZlcikgQVMgXCIlc1wiXG4iLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIi KSk7CisJCQkJCQkJICAiLCBzdWJzdHJlYW0gQVMgXCIlc1wiXG4iLAorCQkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJTdHJlYW1pbmciKSk7CiAKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJ CQkJICAiLCBzdWJyZXRhaW5kZWFkdHVwbGVzIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRl eHRfbm9vcCgiUmV0YWluIGRlYWQgdHVwbGVzIikpOworCQluY29scysrOworCX0KIAotCQkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym1heHJldGVudGlvbiBBUyBcIiVz XCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIk1heCByZXRlbnRpb24gZHVyYXRpb24iKSk7 CisJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9yIGFyZSBvbmx5IHN1cHBvcnRlZCBp biB2MTUgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1YnR3b3BoYXNlc3RhdGUgQVMg XCIlc1wiXG4iCisJCQkJCQkgICIsIHN1YmRpc2FibGVvbmVyciBBUyBcIiVzXCJcbiIsCisJCQkJ CQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAorCQkJCQkJICBnZXR0ZXh0X25v b3AoIkRpc2FibGUgb24gZXJyb3IiKSk7CisJCW5jb2xzICs9IDI7CisJfQogCi0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3VicmV0ZW50aW9uYWN0aXZlIEFTIFwiJXNc IlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0ZW50aW9uIGFjdGl2ZSIpKTsKLQkJfQor CWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJcbiIKKwkJCQkJCSAgIiwgc3VicGFz c3dvcmRyZXF1aXJlZCBBUyBcIiVzXCJcbiIKKwkJCQkJCSAgIiwgc3VicnVuYXNvd25lciBBUyBc IiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiT3JpZ2luIiksCisJCQkJCQkgIGdldHRl eHRfbm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJSdW4g YXMgb3duZXI/IikpOworCQluY29scyArPSAzOworCX0KIAorCWlmIChwc2V0LnN2ZXJzaW9uID49 IDE3MDAwMCkKKwl7CiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkgICIsICBzdWJz eW5jY29tbWl0IEFTIFwiJXNcIlxuIgotCQkJCQkJICAiLCAgc3ViY29ubmluZm8gQVMgXCIlc1wi XG4iLAotCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN5bmNocm9ub3VzIGNvbW1pdCIpLAotCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkNvbm5pbmZvIikpOworCQkJCQkJICAiLCBzdWJmYWlsb3ZlciBBUyBc IiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRmFpbG92ZXIiKSk7CisJCW5jb2xzKys7 CisJfQogCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJ3YWxyY3Z0aW1lb3V0IEFTIFwiJXNcIlxuIiwKLQkJ CQkJCQkgIGdldHRleHRfbm9vcCgiUmVjZWl2ZXIgdGltZW91dCIpKTsKKwlpZiAocHNldC5zdmVy c2lvbiA+PSAxOTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAi LCAoc2VsZWN0IHNydm5hbWUgZnJvbSBwZ19jYXRhbG9nLnBnX2ZvcmVpZ25fc2VydmVyIHdoZXJl IG9pZD1zdWJzZXJ2ZXIpIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJyZXRhaW5kZWFkdHVw bGVzIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJtYXhyZXRlbnRpb24gQVMgXCIlc1wiXG4i CisJCQkJCQkgICIsIHN1YnJldGVudGlvbmFjdGl2ZSBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdl dHRleHRfbm9vcCgiU2VydmVyIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0YWluIGRlYWQg dHVwbGVzIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiTWF4IHJldGVudGlvbiBkdXJhdGlvbiIp LAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGVudGlvbiBhY3RpdmUiKSk7CisJCW5jb2xzICs9 IDQ7CisJfQogCi0JCS8qIFNraXAgTFNOIGlzIG9ubHkgc3VwcG9ydGVkIGluIHYxNSBhbmQgaGln aGVyICovCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJza2lwbHNuIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkg IGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSk7CisJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKKwkJCQkJICAiLCAgc3ViY29ubmlu Zm8gQVMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU3luY2hyb25vdXMgY29tbWl0 IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25uaW5mbyIpKTsKKwluY29scyArPSAyOwogCisJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCXsKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwKLQkJCQkJCSAgIiwgIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3N1YnNj cmlwdGlvbicpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlv biIpKTsKKwkJCQkJCSAgIiwgc3Vid2FscmN2dGltZW91dCBBUyBcIiVzXCJcbiIsCisJCQkJCQkg IGdldHRleHRfbm9vcCgiUmVjZWl2ZXIgdGltZW91dCIpKTsKKwkJbmNvbHMrKzsKKwl9CisKKwkv KiBTa2lwIExTTiBpcyBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5kIGhpZ2hlciAqLworCWlmIChw c2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJ CQkJCQkgICIsIHN1YnNraXBsc24gQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3Ao IlNraXAgTFNOIikpOworCQluY29scysrOworCX0KKworCS8qIENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiBpcyBzdXBwb3J0ZWQgaW4gdjE5IGFuZCBoaWdoZXIgKi8KKwlpZiAocHNldC5zdmVyc2lv biA+PSAxOTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBz dWJjb25mbGljdGxvZ2Rlc3QgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkNv bmZsaWN0IGxvZyBkZXN0aW5hdGlvbiIpKTsKKwkJbmNvbHMrKzsKIAl9CiAKKwlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIsICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQs ICdwZ19zdWJzY3JpcHRpb24nKSBBUyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJE ZXNjcmlwdGlvbiIpKTsKKwluY29scysrOworCiAJLyogT25seSBkaXNwbGF5IHN1YnNjcmlwdGlv bnMgaW4gY3VycmVudCBkYXRhYmFzZS4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAog CQkJCQkJICJGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uXG4iCkBAIC03MjE5LDIwICs3 MzUyLDE0MyBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIk9SREVSIEJZIDE7Iik7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVS IEJZIHN1Ym5hbWU7Iik7CiAKIAlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CiAJdGVybVBRRXhw QnVmZmVyKCZidWYpOwogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC50aXRs ZSA9IF8oIkxpc3Qgb2Ygc3Vic2NyaXB0aW9ucyIpOwotCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIg PSB0cnVlOwotCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7Ci0J bXlvcHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsK KwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCkKKwl7CisJCWlmICghcHNldC5xdWlldCkKKwkJewor CQkJaWYgKHBhdHRlcm4pCisJCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNj cmlwdGlvbiBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCQkgcGF0dGVybik7CisJCQllbHNlCisJCQkJ cGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNjcmlwdGlvbnMuIik7CisJCX0KIAot CXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dm aWxlKTsKKwkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCQlQUWNsZWFyKHJlcyk7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgUFFudHVwbGVzKHJlcyk7IGkrKykKKwl7 CisJCWNvbnN0IGNoYXIJYWxpZ24gPSAnbCc7CisJCU9pZAkJCXN1YmlkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCAwKSk7CisJCWNoYXIJICAgKnN1Ym5hbWUgPSBQUWdldHZhbHVlKHJlcywg aSwgMSk7CisJCWNoYXIJICAgKmNvbmZsaWN0X3NjaGVtYSA9IFBRZ2V0dmFsdWUocmVzLCBpLCAy KTsKKwkJaW50CQkJY3VycmVudF9jb2wgPSAzOworCQljaGFyCSAgICpsb2dkZXN0ID0gImxvZyI7 CisJCXByaW50VGFibGVPcHQgbXlvcHQgPSBwc2V0LnBvcHQudG9wdDsKKworCQlpbml0UFFFeHBC dWZmZXIoJnRpdGxlKTsKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTdWJzY3JpcHRp b24gJXMiKSwgc3VibmFtZSk7CisJCXByaW50VGFibGVJbml0KCZjb250LCAmbXlvcHQsIHRpdGxl LmRhdGEsIG5jb2xzLCBucm93cyk7CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0 dGV4dF9ub29wKCJPd25lciIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFibGVBZGRIZWFkZXIo JmNvbnQsIGdldHRleHRfbm9vcCgiRW5hYmxlZCIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUHVibGljYXRpb24iKSwgdHJ1ZSwgYWxp Z24pOworCisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQ UWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZh bHNlLCBmYWxzZSk7CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl7CisJCQlw cmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkJpbmFyeSIpLCB0cnVlLCBh bGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1 cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZj b250LCBnZXR0ZXh0X25vb3AoIlN0cmVhbWluZyIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRh YmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxz ZSwgZmFsc2UpOworCQl9CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQl7CisJ CQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21t aXQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIiksIHRydWUs IGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwg Y3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lv biA+PSAxNjAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRf bm9vcCgiT3JpZ2luIiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250 LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisKKwkJ CXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUGFzc3dvcmQgcmVxdWly ZWQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJSdW4gYXMgb3duZXI/IiksIHRydWUsIGFs aWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNzAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9v cCgiRmFpbG92ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQs IFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQor CisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhl YWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJp bnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwg ZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9u b29wKCJSZXRhaW4gZGVhZCB0dXBsZXMiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZh bHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIiksCisJCQkJCQkJCXRydWUsIGFsaWduKTsKKwkJCXByaW50VGFi bGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNl LCBmYWxzZSk7CiAKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgi UmV0ZW50aW9uIGFjdGl2ZSIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgm Y29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOwor CQl9CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTeW5jaHJv bm91cyBjb21taXQiKSwgdHJ1ZSwgYWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwg UFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCXBy aW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiQ29ubmluZm8iKSwgdHJ1ZSwg YWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1 cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5 MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJS ZWNlaXZlciB0aW1lb3V0IiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZj b250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJ CX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCXsKKwkJCXByaW50VGFibGVB ZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSwgdHJ1ZSwgYWxpZ24pOwor CQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2Nv bCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAw MCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJDb25m bGljdCBsb2cgZGVzdGluYXRpb24iKSwKKwkJCQkJCQkJdHJ1ZSwgYWxpZ24pOworCisJCQlsb2dk ZXN0ID0gUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspOworCisJCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgbG9nZGVzdCwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSwgdHJ1ZSwgYWxp Z24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJl bnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWFkZEZvb3RlclRvU3Vic2NyaXB0aW9uRGVz Yyhsb2dkZXN0LCBjb25mbGljdF9zY2hlbWEsIHN1YmlkLCAmY29udCk7CisKKwkJcHJpbnRUYWJs ZSgmY29udCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCQlwcmludFRh YmxlQ2xlYW51cCgmY29udCk7CisKKwkJdGVybVBRRXhwQnVmZmVyKCZ0aXRsZSk7CisJfQorCisJ dGVybVBRRXhwQnVmZmVyKCZidWYpOwogCVBRY2xlYXIocmVzKTsKIAlyZXR1cm4gdHJ1ZTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmgKaW5kZXggNDdmYWU1Y2VhZmIuLjE1YzZjNjg1MzIzIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTI2LDcg KzEyNiwxMCBAQCBib29sCQlsaXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pOwog Ym9vbAkJZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybik7CiAKIC8qIFxk UnMgKi8KLWJvb2wJCWRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpOworYm9vbAkJbGlzdFN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVy bik7CisKKy8qIFxkUnMrICovCitib29sCQlkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hh ciAqcGF0dGVybik7CiAKIC8qIFxkQWMgKi8KIGV4dGVybiBib29sIGxpc3RPcGVyYXRvckNsYXNz ZXMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9wYXR0ZXJuLApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IGUyMGNjZDM2NWJmLi5kZjIxNzE5MmRlNiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMTM5LDE4 ICsxMzksMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJzY3JpcHRp b24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUg cmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xv dCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRv IHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJl Z3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBD b25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAg ICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0 aW9uIHJlZ3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViMzsKQEAgLTIzNywxMCArMjM3LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxpZCBjb25u ZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGluIGNvbm5l Y3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVz Y3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRpb24KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8 IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0ZXN0IHN1YnNjcmlwdGlv bgogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCBQVUJM SUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKQEAgLTI0 OSwxMCArMjQ5LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz bG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUpOwogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2NyaXB0aW9uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vi c2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1l b3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0 aW9uICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAg ICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAg ICAgICAgICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMjY4 LDEwICsyNjgsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRl cjogImNyZWF0ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0tJUCAobHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8 ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAg ICB8IDAvMDAwMTIzNDUgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQ dWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMTIzNDUgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0ZXN0 IHN1YnNjcmlwdGlvbgogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9ORQpAQCAtMjgw LDEwICsyODAsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChs c24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNu ID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNOKTogMC8wCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAg Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRp b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJl Y2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwg ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1 YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAg ICAgICAgICAgICAgICAgICAgIHwgdGVzdCBzdWJzY3JpcHRpb24KICgxIHJvdykKIAogQkVHSU47 CkBAIC0zMTksMTAgKzMxOSwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi X2ZvbyBTRVQgKHdhbF9yZWNlaXZlcl90aW1lb3V0ID0gJzgwcycpOwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUICh3YWxfcmVjZWl2ZXJfdGltZW91dCA9ICdmb29i YXInKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJ3YWxfcmVjZWl2ZXJf dGltZW91dCI6ICJmb29iYXIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBsb2Nh bCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgODBzICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViX2ZvbworICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0aW9uICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBh cmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIg fCA4MHMgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNrIHRvIGtlZXAg dGhlIHJlc3Qgc2ltcGxlCkBAIC0zNTEsMTkgKzM1MSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qn IFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25u ZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkg Y3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5k IGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGlt ZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlw dGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNr aXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jl c3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZs aWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAg ICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI7CkBAIC0zNzUsMjcgKzM3NSwyNyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBz dWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lw IExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNz X3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGlj dCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAg ICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1 YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg U2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJl dGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBw YXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3Jp cHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAg ICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIg fCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9u IGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0 aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAg ICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtNDEwLDEw ICs0MTAsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElD QVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChy ZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVh ZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg UmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAg ICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVz IHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0 IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhh biBvbmNlCkBAIC00MjgsMTAgKzQyOCwxMCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHVi MyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxl dGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1Ag UFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2 ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAg fCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViOwpAQCAtNDY3LDE5ICs0NjcsMTkgQEAgQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVy IHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJz Y3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tp cCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwg bG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIHdlIGNhbiBhbHRlciBz dHJlYW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBM U04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190 ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ4OSwxMCArNDg5LDEwIEBAIENSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAw MCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC01MDUsMTgg KzUwNSwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlv biB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSBy ZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90 LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8g cmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlw dGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRp b24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgx IHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVf b25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9u IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAg ICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CkBAIC01MjksMTAgKzUyOSwxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FS TklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJ TlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRo ZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRo ZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNTQ5LDEwICs1NDksMTAgQEAgTk9USUNF OiAgbWF4X3JldGVudGlvbl9kdXJhdGlvbiBpcyBpbmVmZmVjdGl2ZSB3aGVuIHJldGFpbl9kZWFk X3R1cGxlcyBpcyBkaXNhYmwKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1 dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBt dXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJz Y3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRp b25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBS ZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFj dGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAxMDAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAw MDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAxMDAw ICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAw MDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIGZhaWwg LSBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlCkBAIC01NjEsMTAg KzU2MSwxMCBAQCBFUlJPUjogIG1heF9yZXRlbnRpb25fZHVyYXRpb24gY2Fubm90IGJlIG5lZ2F0 aXZlCiAtLSBvawogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1heF9y ZXRlbnRpb25fZHVyYXRpb24gPSAwKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2Ny aXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAg ICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAg ICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAog KDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7Ci0tIAoyLjQ5LjAKCg== --000000000000cc7a050655003f54 Content-Type: application/octet-stream; name="v56-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Disposition: attachment; filename="v56-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqs4zeak3 RnJvbSBmYWNmYzBmYzA1Zjc4NGJiYjQ4MTg4NzFjMjQ0YTEwYzRhNGM5ZjViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAyNCBKdW4gMjAyNiAxMToxMDowMSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU2 IDQvNl0gUHJlc2VydmUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIGFuZCBzdWJzY3JpcHRpb24g CiBPSUQgZm9yIHN1YnNjcmlwdGlvbnMKClN1cHBvcnQgcGdfZHVtcCB0byBkdW1wIGFuZCByZXN0 b3JlIHRoZSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gc2V0dGluZyBmb3IKc3Vic2NyaXB0aW9u cy4KCkR1cmluZyBhIG5vcm1hbCBDUkVBVEUgU1VCU0NSSVBUSU9OLCBhIGNvbmZsaWN0IGxvZyB0 YWJsZSBpcyBjcmVhdGVkCmF1dG9tYXRpY2FsbHkgd2hlbiByZXF1aXJlZC4gSG93ZXZlciwgZHVy aW5nIGJpbmFyeSB1cGdyYWRlLCB0aGUgY29uZmxpY3QKbG9nIHRhYmxlIHdpbGwgYWxyZWFkeSBl eGlzdCBhbmQgbXVzdCBiZSByZXVzZWQgcmF0aGVyIHRoYW4gcmVjcmVhdGVkLCBhbmQKdGhlIHN1 YnNjcmlwdGlvbiBtdXN0IHJldGFpbiBpdHMgb3JpZ2luYWwgT0lEIHRvIGNvcnJlY3RseSByZS1l c3RhYmxpc2gKY2F0YWxvZyByZWxhdGlvbnNoaXBzLgoKVG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZp b3IsIHBnX2R1bXAgbm93IGVtaXRzIGFuIEFMVEVSIFNVQlNDUklQVElPTiBjb21tYW5kCmFmdGVy IHN1YnNjcmlwdGlvbiBjcmVhdGlvbiB0byByZXN0b3JlIHRoZSBjb25mbGljdF9sb2dfZGVzdGlu YXRpb24gc2V0dGluZy4KClRPRE86IEVuc3VyZSBhbGwgMTkwMDAwIHNlcmllcyByZWZlcmVuY2Vz IGFyZSB1cGRhdGVkIHRvIDIwMDAwMAp3aGVuIHRoZSB2ZXJzaW9uIG51bWJlciBpcyBidW1wZWQu Ci0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAgICAgIHwgICAy ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyAgICAgICB8ICA1NiAr KysrKysrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jICAgIHwg ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMgICAgfCAg MTAgKysKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDEy NSArKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAg ICAgICAgICAgICB8ICAgMiArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAg ICAgICAgICAgfCAgMzEgKysrKysKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAg ICAgICAgICAgICB8ICAgNSArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyAgICAg ICAgICAgICAgIHwgICA0ICsKIHNyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3JpcHRpb24u cGwgICAgICB8ICAxNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oICAg ICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAg ICAgICB8ICAgNCArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oICAgICAg ICAgfCAgIDMgKwogLi4uL2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQgICAgICAgICAgICAg IHwgICA2ICstCiAxNCBmaWxlcyBjaGFuZ2VkLCAyNDkgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCA4ODA4NzY1NGRlOS4uMDhkMTVkZTQwODMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jCkBAIC0zMTIsNiArMzEyLDggQEAgaGVhcF9jcmVhdGUoY29uc3QgY2hhciAqcmVs bmFtZSwKIAkgKiBCdXQgYWxsb3cgY3JlYXRpbmcgaW5kZXhlcyBvbiByZWxhdGlvbnMgaW4gcGdf Y2F0YWxvZyBldmVuIGlmCiAJICogYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgPSBvZmYsIHVwcGVy IGxheWVycyBhbHJlYWR5IGd1YXJhbnRlZSBpdCdzIG9uIGEKIAkgKiB1c2VyIGRlZmluZWQgcmVs YXRpb24sIG5vdCBhIHN5c3RlbSBvbmUuCisJICoKKwkgKiBBbGxvdyBjcmVhdGlvbiBvZiB0aGUg Y29uZmxpY3QgbG9nIHRhYmxlIGluIGJpbmFyeS11cGdyYWRlIG1vZGUuCiAJICovCiAJaWYgKCFh bGxvd19zeXN0ZW1fdGFibGVfbW9kcyAmJgogCQkoKElzQ2F0YWxvZ05hbWVzcGFjZShyZWxuYW1l c3BhY2UpICYmIHJlbGtpbmQgIT0gUkVMS0lORF9JTkRFWCkgfHwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCA1MjA3NzQ1OTkyOC4uNTQzMDI5N2VhYjUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNp bmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHdvcGhhc2UuaCIKICNp bmNsdWRlICJhY2Nlc3MveGFjdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvYmluYXJ5X3VwZ3JhZGUu aCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL2RlcGVu ZGVuY3kuaCIKICNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCkBAIC04Niw2ICs4NywxMiBA QAogLyogY2hlY2sgaWYgdGhlICd2YWwnIGhhcyAnYml0cycgc2V0ICovCiAjZGVmaW5lIElzU2V0 KHZhbCwgYml0cykgICgoKHZhbCkgJiAoYml0cykpID09IChiaXRzKSkKIAorLyoKKyAqIFRoaXMg d2lsbCBiZSBzZXQgYnkgdGhlIHBnX3VwZ3JhZGVfc3VwcG9ydCBmdW5jdGlvbiAtLQorICogYmlu YXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCgpLgorICovCitPaWQJCQli aW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQgPSBJbnZhbGlkT2lkOworCiAv KgogICogU3RydWN0dXJlIHRvIGhvbGQgYSBiaXRtYXAgcmVwcmVzZW50aW5nIHRoZSB1c2VyLXBy b3ZpZGVkIENSRUFURS9BTFRFUgogICogU1VCU0NSSVBUSU9OIGNvbW1hbmQgb3B0aW9ucyBhbmQg dGhlIHBhcnNlZC9kZWZhdWx0IHZhbHVlcyBvZiBlYWNoIG9mIHRoZW0uCkBAIC04MjgsOCArODM1 LDIxIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNj cmlwdGlvblN0bXQgKnN0bXQsCiAJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOwog CW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOwogCi0Jc3ViaWQgPSBHZXROZXdP aWRXaXRoSW5kZXgocmVsLCBTdWJzY3JpcHRpb25PYmplY3RJbmRleElkLAotCQkJCQkJCSAgIEFu dW1fcGdfc3Vic2NyaXB0aW9uX29pZCk7CisJLyogVXNlIGJpbmFyeS11cGdyYWRlIG92ZXJyaWRl IGZvciBwZ19zdWJzY3JpcHRpb24ub2lkPyAqLworCWlmIChJc0JpbmFyeVVwZ3JhZGUpCisJewor CQlpZiAoIU9pZElzVmFsaWQoYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lk KSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJB TUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJwZ19zdWJzY3JpcHRpb24gT0lEIHZhbHVlIG5v dCBzZXQgd2hlbiBpbiBiaW5hcnkgdXBncmFkZSBtb2RlIikpKTsKKworCQlzdWJpZCA9IGJpbmFy eV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0aW9uX29pZDsKKwkJYmluYXJ5X3VwZ3JhZGVfbmV4 dF9wZ19zdWJzY3JpcHRpb25fb2lkID0gSW52YWxpZE9pZDsKKwl9CisJZWxzZQorCQlzdWJpZCA9 IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFN1YnNjcmlwdGlvbk9iamVjdEluZGV4SWQsCisJCQkJ CQkJCSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX29pZCk7CisKIAl2YWx1ZXNbQW51bV9wZ19zdWJz Y3JpcHRpb25fb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHN1YmlkKTsKIAl2YWx1ZXNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViZGJpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShNeURhdGFi YXNlSWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJza2lwbHNuIC0gMV0gPSBM U05HZXREYXR1bShJbnZhbGlkWExvZ1JlY1B0cik7CkBAIC0xNTQxLDE4ICsxNTYxLDQwIEBAIGFs dGVyX3N1Yl9jb25mbGljdF9sb2dfZGVzdChTdWJzY3JpcHRpb24gKnN1YiwgQ29uZmxpY3RMb2dE ZXN0IG9sZGxvZ2Rlc3QsCiAJCXsKIAkJCU9iamVjdEFkZHJlc3MgY2x0YWRkcjsKIAkJCU9iamVj dEFkZHJlc3Mgc3Vib2JqOworCQkJY2hhciAgICAgICAgICByZWxuYW1lW05BTUVEQVRBTEVOXTsK IAotCQkJcmVsaWQgPSBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWItPm5h bWUsIHN1Yi0+b3duZXIpOwotCQkJdXBkYXRlX3JlbGlkID0gdHJ1ZTsKKwkJCXNucHJpbnRmKHJl bG5hbWUsIE5BTUVEQVRBTEVOLCBDT05GTElDVF9MT0dfUkVMQVRJT05fTkFNRV9GTVQsIHN1Yi0+ b2lkKTsKIAogCQkJLyoKLQkJCSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IGJl dHdlZW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQotCQkJICogYW5kIHRoZSBzdWJzY3JpcHRpb24u ICBGb3IgZGV0YWlscyByZWZlciBjb21tZW50cyBpbgotCQkJICogQ3JlYXRlU3Vic2NyaXB0aW9u IGZ1bmN0aW9uLgorCQkJICogSW4gdXBncmFkZSBzY2VuYXJpb3MsIG9sZF9kZXN0IHJlZmxlY3Rz IHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mCisJCQkgKiBhIG5ld2x5IGNyZWF0ZWQgc3Vic2NyaXB0 aW9uIChpLmUuLCBubyBjb25mbGljdCBsb2dnaW5nIHRvCisJCQkgKiB0YWJsZSkgSG93ZXZlciwg dGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aWxsIGFscmVhZHkgZXhpc3QgZnJvbQorCQkJICogdGhl IHVwZ3JhZGVkIGNsdXN0ZXIuICBJbiBzdWNoIGNhc2VzLCB3ZSBuZWVkIHRvIGRldGVjdCB0aGUK KwkJCSAqIHByZS1leGlzdGluZyB0YWJsZSBhbmQgdXBkYXRlIHRoZSBjYXRhbG9nIHN0YXRlIHRv IGFzc29jaWF0ZSBpdAorCQkJICogd2l0aCB0aGUgc3Vic2NyaXB0aW9uIGluc3RlYWQgb2YgY3Jl YXRpbmcgYSBuZXcgb25lLgorCQkJICovCisJCQlyZWxpZCA9IGdldF9yZWxuYW1lX3JlbGlkKHJl bG5hbWUsIFBHX0NPTkZMSUNUX05BTUVTUEFDRSk7CisJCQlpZiAoT2lkSXNWYWxpZChyZWxpZCkp CisJCQl7CisJCQkJLyogRXhpc3RpbmcgdGFibGUgZnJvbSB1cGdyYWRlICovCisJCQkJQXNzZXJ0 KElzQmluYXJ5VXBncmFkZSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJcmVsaWQgPSBjcmVh dGVfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWItPm5hbWUsCisJCQkJCQkJCQkJCQkg IHN1Yi0+b3duZXIpOworCQkJfQorCisJCQkvKgorCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFs IGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3QgbG9nCisJCQkgKiB0YWJsZSBhbmQgdGhl IHN1YnNjcmlwdGlvbi4gIFJlZmVyIHRvIGNvbW1lbnRzIGluIHRoZQorCQkJICogQ3JlYXRlU3Vi c2NyaXB0aW9uIGZ1bmN0aW9uIGZvciBkZXRhaWxzLgogCQkJICovCiAJCQlPYmplY3RBZGRyZXNz U2V0KGNsdGFkZHIsIFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQpOwogCQkJT2JqZWN0QWRkcmVz c1NldChzdWJvYmosIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1Yi0+b2lkKTsKIAkJCXJlY29y ZERlcGVuZGVuY3lPbigmY2x0YWRkciwgJnN1Ym9iaiwgREVQRU5ERU5DWV9JTlRFUk5BTCk7CisK KwkJCXVwZGF0ZV9yZWxpZCA9IHRydWU7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwppbmRleCAzNDEyMWNmMDZlMy4uZmMyOTM5OTAzYTQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKQEAgLTE5OCw3ICsx OTgsNyBAQCBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3VibmFt ZSwgT2lkIHN1Ym93bmVyKQogCU9pZAkJCXJlbGlkOwogCWNoYXIgICAgCXJlbG5hbWVbTkFNRURB VEFMRU5dOwogCi0Jc25wcmludGYocmVsbmFtZSwgTkFNRURBVEFMRU4sICJwZ19jb25mbGljdF9s b2dfJXUiLCBzdWJpZCk7CisJc25wcmludGYocmVsbmFtZSwgTkFNRURBVEFMRU4sIENPTkZMSUNU X0xPR19SRUxBVElPTl9OQU1FX0ZNVCwgc3ViaWQpOwogCiAJLyogQnVpbGQgdGhlIHR1cGxlIGRl c2NyaXB0b3IgZm9yIHRoZSBuZXcgdGFibGUuICovCiAJdHVwZGVzYyA9IGNyZWF0ZV9jb25mbGlj dF9sb2dfdGFibGVfdHVwZGVzYygpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3BnX3VwZ3JhZGVfc3VwcG9ydC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVf c3VwcG9ydC5jCmluZGV4IGI1MDVhNmI0ZmVlLi41OWMzZTdmMDE0NiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYwpAQCAtMTgxLDYgKzE4MSwxNiBAQCBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUEdf UkVUVVJOX1ZPSUQoKTsKIH0KIAorRGF0dW0KK2JpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1 YnNjcmlwdGlvbl9vaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlzdWJpZCA9IFBHX0dF VEFSR19PSUQoMCk7CisKKwlDSEVDS19JU19CSU5BUllfVVBHUkFERTsKKwliaW5hcnlfdXBncmFk ZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQgPSBzdWJpZDsKKwlQR19SRVRVUk5fVk9JRCgpOwor fQorCiBEYXR1bQogYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVuc2lvbihQR19GVU5D VElPTl9BUkdTKQogewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYzU2NDM3ZDYwNTcuLjU3NWQyZWNiODhhIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKQEAgLTE5ODEsNiArMTk4MSw4IEBAIGNoZWNrRXh0ZW5zaW9uTWVtYmVyc2hp cChEdW1wYWJsZU9iamVjdCAqZG9iaiwgQXJjaGl2ZSAqZm91dCkKIHN0YXRpYyB2b2lkCiBzZWxl Y3REdW1wYWJsZU5hbWVzcGFjZShOYW1lc3BhY2VJbmZvICpuc2luZm8sIEFyY2hpdmUgKmZvdXQp CiB7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCiAJLyoKIAkgKiBEVU1QX0NP TVBPTkVOVF9ERUZJTklUSU9OIHR5cGljYWxseSBpbXBsaWVzIGEgQ1JFQVRFIFNDSEVNQSBzdGF0 ZW1lbnQKIAkgKiBhbmQgKGZvciAtLWNsZWFuKSBhIERST1AgU0NIRU1BIHN0YXRlbWVudC4gIChJ biB0aGUgYWJzZW5jZSBvZgpAQCAtMjAxMCw2ICsyMDEyLDMyIEBAIHNlbGVjdER1bXBhYmxlTmFt ZXNwYWNlKE5hbWVzcGFjZUluZm8gKm5zaW5mbywgQXJjaGl2ZSAqZm91dCkKIAkJICovCiAJCW5z aW5mby0+ZG9iai5kdW1wX2NvbnRhaW5zID0gbnNpbmZvLT5kb2JqLmR1bXAgPSBEVU1QX0NPTVBP TkVOVF9BQ0w7CiAJfQorCWVsc2UgaWYgKHN0cmNtcChuc2luZm8tPmRvYmoubmFtZSwgInBnX2Nv bmZsaWN0IikgPT0gMCkKKwl7CisJCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSkKKwkJeworCQkJ LyoKKwkJCSAqIFRoZSBwZ19jb25mbGljdCBzY2hlbWEgaXMgYSBzdHJhbmdlIGJlYXN0IHRoYXQg c2l0cyBpbiBhIHNvcnQKKwkJCSAqIG9mIG5vLW1hbnMtbGFuZCBiZXR3ZWVuIGJlaW5nIGEgc3lz dGVtIG9iamVjdCBhbmQgYSB1c2VyCisJCQkgKiBvYmplY3QuIENSRUFURSBTQ0hFTUEgd291bGQg ZmFpbCwgc28gaXRzCisJCQkgKiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OIGlzIGp1c3QgYSBj b21tZW50LgorCQkJICovCisJCQluc2luZm8tPmNyZWF0ZSA9IGZhbHNlOworCQkJbnNpbmZvLT5k b2JqLmR1bXAgPSBEVU1QX0NPTVBPTkVOVF9BTEw7CisJCQluc2luZm8tPmRvYmouZHVtcCAmPSB+ RFVNUF9DT01QT05FTlRfREVGSU5JVElPTjsKKwkJCW5zaW5mby0+ZG9iai5kdW1wX2NvbnRhaW5z ID0gRFVNUF9DT01QT05FTlRfQUxMOworCisJCQkvKgorCQkJICogQWxzbywgbWFrZSBsaWtlIGl0 IGhhcyBhIGNvbW1lbnQgZXZlbiBpZiBpdCBkb2Vzbid0OyB0aGlzIGlzIHNvCisJCQkgKiB0aGF0 IHdlJ2xsIGVtaXQgYSBjb21tYW5kIHRvIGRyb3AgdGhlIGNvbW1lbnQsIGlmIGFwcHJvcHJpYXRl LgorCQkJICogKFdpdGhvdXQgdGhpcywgd2UnZCBub3QgY2FsbCBkdW1wQ29tbWVudEV4dGVuZGVk IGZvciBpdC4pCisJCQkgKi8KKwkJCW5zaW5mby0+ZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09N UE9ORU5UX0NPTU1FTlQ7CisJCX0KKwkJZWxzZQorCQkJbnNpbmZvLT5kb2JqLmR1bXBfY29udGFp bnMgPSBuc2luZm8tPmRvYmouZHVtcCA9CisJCQkJRFVNUF9DT01QT05FTlRfTk9ORTsKKwl9CiAJ ZWxzZSBpZiAoc3RybmNtcChuc2luZm8tPmRvYmoubmFtZSwgInBnXyIsIDMpID09IDAgfHwKIAkJ CSBzdHJjbXAobnNpbmZvLT5kb2JqLm5hbWUsICJpbmZvcm1hdGlvbl9zY2hlbWEiKSA9PSAwKQog CXsKQEAgLTIwNjcsOSArMjA5NSwzOCBAQCBzZWxlY3REdW1wYWJsZU5hbWVzcGFjZShOYW1lc3Bh Y2VJbmZvICpuc2luZm8sIEFyY2hpdmUgKmZvdXQpCiBzdGF0aWMgdm9pZAogc2VsZWN0RHVtcGFi bGVUYWJsZShUYWJsZUluZm8gKnRiaW5mbywgQXJjaGl2ZSAqZm91dCkKIHsKKwlEdW1wT3B0aW9u cyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKIAlpZiAoY2hlY2tFeHRlbnNpb25NZW1iZXJzaGlwKCZ0 YmluZm8tPmRvYmosIGZvdXQpKQogCQlyZXR1cm47CQkJCQkvKiBleHRlbnNpb24gbWVtYmVyc2hp cCBvdmVycmlkZXMgYWxsIGVsc2UgKi8KIAorCWlmIChzdHJjbXAodGJpbmZvLT5kb2JqLm5hbWVz cGFjZS0+ZG9iai5uYW1lLCAicGdfY29uZmxpY3QiKSA9PSAwKQorCXsKKwkJLyoKKwkJICogRHVt cCBwZ19jb25mbGljdCB0YWJsZXMgb25seSBkdXJpbmcgYmluYXJ5IHVwZ3JhZGUuIFRoZSBzY2hl bWEgaXMKKwkJICogYXNzdW1lZCB0byBhbHJlYWR5IGV4aXN0LgorCQkgKi8KKwkJaWYgKGRvcHQt PmJpbmFyeV91cGdyYWRlKQorCQl7CisJCQl0YmluZm8tPmRvYmouZHVtcCA9IERVTVBfQ09NUE9O RU5UX0RFRklOSVRJT047CisKKwkJCS8qCisJCQkgKiBTdXBwcmVzcyB0aGUgIkFMVEVSIFRBQkxF IC4uLiBPV05FUiBUTyAuLi4iIGNvbW1hbmQgZm9yIHRoaXMKKwkJCSAqIHRhYmxlLiBUaGlzIHBy ZXZlbnRzIHBnX2R1bXAgZnJvbSBvdXRwdXR0aW5nIHRoZSBvd25lciBjaGFuZ2UuCisJCQkgKi8K KwkJCXRiaW5mby0+cm9sbmFtZSA9IE5VTEw7CisJCX0KKwkJZWxzZQorCQkJdGJpbmZvLT5kb2Jq LmR1bXAgPSBEVU1QX0NPTVBPTkVOVF9OT05FOworCisJCS8qCisJCSAqIERvIG5vdCBhcHBseSB0 YWJsZSBzZWxlY3Rpb24gb3IgZXhjbHVzaW9uIHJ1bGVzIHRvIHBnX2NvbmZsaWN0CisJCSAqIHRh Ymxlcy4gRHVyaW5nIGJpbmFyeSB1cGdyYWRlLCB0aGVzZSB0YWJsZXMgYXJlIGR1bXBlZCB0byBw cmVzZXJ2ZQorCQkgKiBjYXRhbG9nIHN0YXRlOyBvdGhlcndpc2UsIHRoZXkgYXJlIG5vdCBkdW1w ZWQgYXQgYWxsLgorCQkgKi8KKwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogSWYgc3BlY2lmaWMg dGFibGVzIGFyZSBiZWluZyBkdW1wZWQsIGR1bXAganVzdCB0aG9zZSB0YWJsZXM7IGVsc2UsIGR1 bXAKIAkgKiBhY2NvcmRpbmcgdG8gdGhlIHBhcmVudCBuYW1lc3BhY2UncyBkdW1wIGZsYWcuCkBA IC01MTg0LDYgKzUyNDEsOCBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaW50 CQkJaV9zdWJmYWlsb3ZlcjsKIAlpbnQJCQlpX3N1YnJldGFpbmRlYWR0dXBsZXM7CiAJaW50CQkJ aV9zdWJtYXhyZXRlbnRpb247CisJaW50CQkJaV9zdWJjb25mbGljdGxvZ3JlbGlkOworCWludAkJ CWlfc3VibG9nZGVzdGluYXRpb247CiAJaW50CQkJaSwKIAkJCQludHVwczsKIApAQCAtNTI4Miw5 ICs1MzQxLDE2IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJCQkgIiAn LTEnIEFTIHN1YndhbHJjdnRpbWVvdXQsXG4iKTsKIAogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9u ID49IDE5MDAwMCkKLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgZnMuc3J2bmFtZSBB UyBzdWJzZXJ2ZXJuYW1lXG4iKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgZnMu c3J2bmFtZSBBUyBzdWJzZXJ2ZXJuYW1lLFxuIik7CisJZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cihxdWVyeSwgIiBOVUxMIEFTIHN1YnNlcnZlcm5hbWUsXG4iKTsKKworCWlmIChmb3V0LT5y ZW1vdGVWZXJzaW9uID49IDE5MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJ CQkJCQkJICIgcy5zdWJjb25mbGljdGxvZ3JlbGlkLCBzLnN1YmNvbmZsaWN0bG9nZGVzdFxuIik7 CiAJZWxzZQotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBOVUxMIEFTIHN1YnNlcnZl cm5hbWVcbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIiBOVUxM IEFTIHN1YmNvbmZsaWN0bG9ncmVsaWQsIE5VTEwgQVMgc3ViY29uZmxpY3Rsb2dkZXN0XG4iKTsK IAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlw dGlvbiBzXG4iKTsKQEAgLTUzMzMsNiArNTM5OSw4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2 ZSAqZm91dCkKIAlpX3N1YnB1YmxpY2F0aW9ucyA9IFBRZm51bWJlcihyZXMsICJzdWJwdWJsaWNh dGlvbnMiKTsKIAlpX3N1Ym9yaWdpbiA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW4iKTsKIAlp X3N1Ym9yaWdpbnJlbW90ZWxzbiA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW5yZW1vdGVsc24i KTsKKwlpX3N1YmNvbmZsaWN0bG9ncmVsaWQgPSBQUWZudW1iZXIocmVzLCAic3ViY29uZmxpY3Rs b2dyZWxpZCIpOworCWlfc3VibG9nZGVzdGluYXRpb24gPSBQUWZudW1iZXIocmVzLCAic3ViY29u ZmxpY3Rsb2dkZXN0Iik7CiAKIAlzdWJpbmZvID0gcGdfbWFsbG9jX2FycmF5KFN1YnNjcmlwdGlv bkluZm8sIG50dXBzKTsKIApAQCAtNTM5MSw2ICs1NDU5LDMyIEBAIGdldFN1YnNjcmlwdGlvbnMo QXJjaGl2ZSAqZm91dCkKIAkJCXN1YmluZm9baV0uc3Vib3JpZ2lucmVtb3RlbHNuID0KIAkJCQlw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vib3JpZ2lucmVtb3RlbHNuKSk7CiAKKwkJ aWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9zdWJjb25mbGljdGxvZ3JlbGlkKSkKKwkJCXN1Ymlu Zm9baV0uc3ViY29uZmxpY3Rsb2dyZWxpZCA9IEludmFsaWRPaWQ7CisJCWVsc2UKKwkJeworCQkJ c3ViaW5mb1tpXS5zdWJjb25mbGljdGxvZ3JlbGlkID0KKwkJCQlhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfc3ViY29uZmxpY3Rsb2dyZWxpZCkpOworCisJCQlpZiAoc3ViaW5mb1tpXS5zdWJj b25mbGljdGxvZ3JlbGlkKQorCQkJeworCQkJCVRhYmxlSW5mbyAgKnRhYmxlSW5mbzsKKworCQkJ CXRhYmxlSW5mbyA9IGZpbmRUYWJsZUJ5T2lkKHN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dyZWxp ZCk7CisJCQkJaWYgKCF0YWJsZUluZm8pCisJCQkJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZmluZCBj b25mbGljdCBsb2cgdGFibGUgd2l0aCBPSUQgJXUiLAorCQkJCQkJCSBzdWJpbmZvW2ldLnN1YmNv bmZsaWN0bG9ncmVsaWQpOworCisJCQkJYWRkT2JqZWN0RGVwZW5kZW5jeSgmc3ViaW5mb1tpXS5k b2JqLCB0YWJsZUluZm8tPmRvYmouZHVtcElkKTsKKwkJCX0KKwkJfQorCisJCWlmIChQUWdldGlz bnVsbChyZXMsIGksIGlfc3VibG9nZGVzdGluYXRpb24pKQorCQkJc3ViaW5mb1tpXS5zdWJjb25m bGljdGxvZ2Rlc3QgPSBOVUxMOworCQllbHNlCisJCQlzdWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9n ZGVzdCA9CisJCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmxvZ2Rlc3RpbmF0 aW9uKSk7CisKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNl bGVjdER1bXBhYmxlT2JqZWN0KCYoc3ViaW5mb1tpXS5kb2JqKSwgZm91dCk7CiAJfQpAQCAtNTU4 Myw2ICs1Njc3LDE0IEBAIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vi c2NyaXB0aW9uSW5mbyAqc3ViaW5mbykKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBT VUJTQ1JJUFRJT04gJXM7XG4iLAogCQkJCQkgIHFzdWJuYW1lKTsKIAorCWlmIChkb3B0LT5iaW5h cnlfdXBncmFkZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiXG4tLSBGb3Ig YmluYXJ5IHVwZ3JhZGUsIG11c3QgcHJlc2VydmUgcGdfc3Vic2NyaXB0aW9uLm9pZFxuIik7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cuYmlu YXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCgnJXUnOjpwZ19jYXRhbG9n Lm9pZCk7XG5cbiIsCisJCQkJCQkgIHN1YmluZm8tPmRvYmouY2F0SWQub2lkKTsKKwl9CisKIAlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBTVUJTQ1JJUFRJT04gJXMgIiwKIAkJCQkJ ICBxc3VibmFtZSk7CiAJaWYgKHN1YmluZm8tPnN1YnNlcnZlcm5hbWUpCkBAIC01NjU2LDYgKzU3 NTgsMjUgQEAgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRp b25JbmZvICpzdWJpbmZvKQogCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIpO1xuIik7 CiAKKwkvKgorCSAqIFJlc3RvcmUgdGhlIGNvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiBzZXBhcmF0 ZWx5IGZyb20gQ1JFQVRFIFNVQlNDUklQVElPTi4KKwkgKiBTZXR0aW5nIGNvbmZsaWN0X2xvZ19k ZXN0aW5hdGlvbiB0byAndGFibGUnIG1heSBjcmVhdGUgYW5kIGFzc29jaWF0ZQorCSAqIGEgY29u ZmxpY3QgbG9nIHRhYmxlIHdob3NlIG5hbWUgaXMgZGVyaXZlZCBmcm9tIHRoZSBzdWJzY3JpcHRp b24gT0lELgorCSAqIFNpbmNlIHRoZSBzdWJzY3JpcHRpb24gbXVzdCBhbHJlYWR5IGV4aXN0IGJl Zm9yZSB0aGF0IE9JRCBpcyBrbm93biwKKwkgKiBlbWl0IHRoaXMgYXMgYSBzZXBhcmF0ZSBBTFRF UiBTVUJTQ1JJUFRJT04gc28gdGhhdCBhbnkgcmVxdWlyZWQgY29uZmxpY3QKKwkgKiBsb2cgdGFi bGUgY2FuIGJlIGNyZWF0ZWQgYW5kIGxpbmtlZCBhZnRlciB0aGUgc3Vic2NyaXB0aW9uIGl0c2Vs ZiBoYXMKKwkgKiBiZWVuIHJlc3RvcmVkLgorCSAqCisJICogV2Ugc2tpcCB0aGUgZGVmYXVsdCB2 YWx1ZSAoJ2xvZycpIHRvIG1hdGNoIHRoZSBoYW5kbGluZyBvZiBvdGhlcgorCSAqIHN1YnNjcmlw dGlvbiBvcHRpb25zLgorCSAqLworCWlmIChzdWJpbmZvLT5zdWJjb25mbGljdGxvZ2Rlc3QgJiYK KwkJKHBnX3N0cmNhc2VjbXAoc3ViaW5mby0+c3ViY29uZmxpY3Rsb2dkZXN0LCAibG9nIikgIT0g MCkpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiXG5cbkFMVEVSIFNVQlND UklQVElPTiAlcyBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICVzKTtcbiIsCisJCQkJ CQkgIHFzdWJuYW1lLAorCQkJCQkJICBzdWJpbmZvLT5zdWJjb25mbGljdGxvZ2Rlc3QpOworCiAJ LyoKIAkgKiBJbiBiaW5hcnktdXBncmFkZSBtb2RlLCB3ZSBhbGxvdyB0aGUgcmVwbGljYXRpb24g dG8gY29udGludWUgYWZ0ZXIgdGhlCiAJICogdXBncmFkZS4KZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDVhNjcy NmQ4YjEyLi5hNDNhMzA0OTM0MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MjIsNiArNzIyLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAlib29sCQlzdWJmYWlsb3ZlcjsKIAlib29s CQlzdWJyZXRhaW5kZWFkdHVwbGVzOwogCWludAkJCXN1Ym1heHJldGVudGlvbjsKKwlPaWQJCQlz dWJjb25mbGljdGxvZ3JlbGlkOwogCWNoYXIJICAgKnN1YnNlcnZlcm5hbWU7CiAJY2hhcgkgICAq c3ViY29ubmluZm87CiAJY2hhcgkgICAqc3Vic2xvdG5hbWU7CkBAIC03MzAsNiArNzMxLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAljaGFyCSAgICpzdWJwdWJsaWNhdGlv bnM7CiAJY2hhcgkgICAqc3Vib3JpZ2luOwogCWNoYXIJICAgKnN1Ym9yaWdpbnJlbW90ZWxzbjsK KwljaGFyCSAgICpzdWJjb25mbGljdGxvZ2Rlc3Q7CiB9IFN1YnNjcmlwdGlvbkluZm87CiAKIC8q CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMDNlNWMxYzExMTYuLmMyN2IyMzJlNzk5IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jCkBAIC0xMTMxLDYgKzExMzEsMTkgQEAgcmVwYWlyVGFibGVBdHRy RGVmTXVsdGlMb29wKER1bXBhYmxlT2JqZWN0ICp0YWJsZW9iaiwKIAlhZGRPYmplY3REZXBlbmRl bmN5KGF0dHJkZWZvYmosIHRhYmxlb2JqLT5kdW1wSWQpOwogfQogCisvKgorICogQmVjYXVzZSB3 ZSBtYWtlIHN1YnNjcmlwdGlvbnMgZGVwZW5kIG9uIHRoZWlyIGNvbmZsaWN0IGxvZyB0YWJsZXMs IHdoaWxlCisgKiB0aGVyZSBpcyBhbiBhdXRvbWF0aWMgZGVwZW5kZW5jeSBpbiB0aGUgb3RoZXIg ZGlyZWN0aW9uLCB3ZSBuZWVkIHRvIGJyZWFrCisgKiB0aGUgbG9vcC4gUmVtb3ZlIHRoZSBhdXRv bWF0aWMgZGVwZW5kZW5jeSwgYWxsb3dpbmcgdGhlIHRhYmxlIHRvIGJlIGNyZWF0ZWQKKyAqIGZp cnN0LgorICovCitzdGF0aWMgdm9pZAorcmVwYWlyU3Vic2NyaXB0aW9uVGFibGVMb29wKER1bXBh YmxlT2JqZWN0ICpzdWJvYmosIER1bXBhYmxlT2JqZWN0ICp0YWJsZW9iaikKK3sKKwkvKiBSZW1v dmUgdGFibGUncyBkZXBlbmRlbmN5IG9uIHN1YnNjcmlwdGlvbiAqLworCXJlbW92ZU9iamVjdERl cGVuZGVuY3kodGFibGVvYmosIHN1Ym9iai0+ZHVtcElkKTsKK30KKwogLyoKICAqIENIRUNLLCBO T1QgTlVMTCBjb25zdHJhaW50cyBvbiBkb21haW5zIHdvcmsganVzdCBsaWtlIHRob3NlIG9uIHRh YmxlcyAuLi4KICAqLwpAQCAtMTM2MSw2ICsxMzc0LDI0IEBAIHJlcGFpckRlcGVuZGVuY3lMb29w KER1bXBhYmxlT2JqZWN0ICoqbG9vcCwKIAkJcmV0dXJuOwogCX0KIAorCS8qCisJICogU3Vic2Ny aXB0aW9uIGFuZCBpdHMgQ29uZmxpY3QgTG9nIFRhYmxlCisJICovCisJaWYgKG5Mb29wID09IDIg JiYKKwkJbG9vcFswXS0+b2JqVHlwZSA9PSBET19UQUJMRSAmJgorCQlsb29wWzFdLT5vYmpUeXBl ID09IERPX1NVQlNDUklQVElPTikKKwl7CisJCXJlcGFpclN1YnNjcmlwdGlvblRhYmxlTG9vcChs b29wWzFdLCBsb29wWzBdKTsKKwkJcmV0dXJuOworCX0KKwlpZiAobkxvb3AgPT0gMiAmJgorCQls b29wWzBdLT5vYmpUeXBlID09IERPX1NVQlNDUklQVElPTiAmJgorCQlsb29wWzFdLT5vYmpUeXBl ID09IERPX1RBQkxFKQorCXsKKwkJcmVwYWlyU3Vic2NyaXB0aW9uVGFibGVMb29wKGxvb3BbMF0s IGxvb3BbMV0pOworCQlyZXR1cm47CisJfQorCiAJLyogaW5kZXggb24gcGFydGl0aW9uZWQgdGFi bGUgYW5kIGNvcnJlc3BvbmRpbmcgaW5kZXggb24gcGFydGl0aW9uICovCiAJaWYgKG5Mb29wID09 IDIgJiYKIAkJbG9vcFswXS0+b2JqVHlwZSA9PSBET19JTkRFWCAmJgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbAppbmRleCA5MjU4OTQ4YjU4My4uOGMyNjUzZTg1MmUgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCkBAIC0zMzE3LDkgKzMzMTcsMTAgQEAgbXkgJXRlc3RzID0gKAogCQljcmVhdGVf b3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMwog CQkJCQkJIENPTk5FQ1RJT04gXCdkYm5hbWU9ZG9lc25vdGV4aXN0XCcgUFVCTElDQVRJT04gcHVi MQotCQkJCQkJIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgb3JpZ2luID0gYW55LCBzdHJlYW1pbmcg PSBvbik7JywKKwkJCQkJCSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIG9yaWdpbiA9IGFueSwgc3Ry ZWFtaW5nID0gb24sIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbj0gdGFibGUpOycsCiAJCXJlZ2V4 cCA9PiBxci9eCi0JCQlcUUNSRUFURSBTVUJTQ1JJUFRJT04gc3ViMyBDT05ORUNUSU9OICdkYm5h bWU9ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiBwdWIxIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg c2xvdF9uYW1lID0gJ3N1YjMnLCBzdHJlYW1pbmcgPSBvbik7XEUKKwkJCVxRQ1JFQVRFIFNVQlND UklQVElPTiBzdWIzIENPTk5FQ1RJT04gJ2RibmFtZT1kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9O IHB1YjEgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBzbG90X25hbWUgPSAnc3ViMycsIHN0cmVhbWlu ZyA9IG9uKTtcRVxuXG5cbgorCQkJXFFBTFRFUiBTVUJTQ1JJUFRJT04gc3ViMyBTRVQgKGNvbmZs aWN0X2xvZ19kZXN0aW5hdGlvbiA9IHRhYmxlKTtcRQogCQkJL3htLAogCQlsaWtlID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAkJdW5saWtlID0+IHsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5jCmluZGV4IDIxMjdkMjk3YmZlLi4xMzVlZjY1OGMyYyAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYworKysgYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5jCkBAIC0zNSw2ICszNSwxMCBAQAogICoKICAqCVdlIGNvbnRyb2wgYWxs IGFzc2lnbm1lbnRzIG9mIHBnX2RhdGFiYXNlLm9pZCBiZWNhdXNlIHdlIHdhbnQgdGhlIGRpcmVj dG9yeQogICoJbmFtZXMgdG8gbWF0Y2ggYmV0d2VlbiB0aGUgb2xkIGFuZCBuZXcgY2x1c3Rlci4K KyAqCisgKglXZSBjb250cm9sIGFzc2lnbm1lbnQgb2YgcGdfc3Vic2NyaXB0aW9uLm9pZCBiZWNh dXNlIHdlIHdhbnQgdGhlIG9pZCB0bworICoJbWF0Y2ggYmV0d2VlbiB0aGUgb2xkIGFuZCBuZXcg Y2x1c3RlciB0byBtYWtlIHVzZSBvZiBzdWJzY3JpcHRpb24ncworICoJY29uZmxpY3QgbG9nIHRh YmxlIHdoaWNoIGlzIG5hbWVkIHVzaW5nIHRoZSBzdWJzY3JpcHRpb24gb2lkLgogICovCiAKIApk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbCBiL3Ny Yy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3JpcHRpb24ucGwKaW5kZXggYzk0YTgyZGVhZTAu LjczZjAwZDI0MjZjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRfc3Vic2Ny aXB0aW9uLnBsCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3JpcHRpb24ucGwK QEAgLTI5MCw3ICsyOTAsNyBAQCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAkb2xkX3N1Yi0+c2Fm ZV9wc3FsKAogCSdwb3N0Z3JlcycsIHFxWwogCQlDUkVBVEUgVEFCTEUgdGFiX3VwZ3JhZGVkMihp ZCBpbnQpOwotCQlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViNSBDT05ORUNUSU9OICck Y29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19wdWI1OworCQlDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3Nfc3ViNSBDT05ORUNUSU9OICckY29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19w dWI1IHdpdGggKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOwogXSk7CiAKICMg VGhlIHRhYmxlIHRhYl91cGdyYWRlZDIgd2lsbCBiZSBpbiB0aGUgaW5pdCBzdGF0ZSBhcyB0aGUg c3Vic2NyaWJlcidzCkBAIC0zMTIsNyArMzEyLDEwIEBAIG15ICR0YWJfdXBncmFkZWQxX29pZCA9 ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIG9pZCBGUk9NIHBnX2Ns YXNzIFdIRVJFIHJlbG5hbWUgPSAndGFiX3VwZ3JhZGVkMSciKTsKIG15ICR0YWJfdXBncmFkZWQy X29pZCA9ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIG9pZCBGUk9N IHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndGFiX3VwZ3JhZGVkMiciKTsKLQorbXkgJHN1YjVf b2lkID0gJG9sZF9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qgb2lkIEZST00g cGdfc3Vic2NyaXB0aW9uIHdoZXJlIHN1Ym5hbWUgPSAncmVncmVzc19zdWI1JyIpOworbXkgJHN1 Yl9jbHRfcmVsaWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBz dWJjb25mbGljdGxvZ3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cmVncmVzc19zdWI1JyIpOwogJG9sZF9zdWItPnN0b3A7CiAKICMgQ2hhbmdlIGNvbmZpZ3VyYXRp b24gc28gdGhhdCBpbml0aWFsIHRhYmxlIHN5bmMgZG9lcyBub3QgZ2V0IHN0YXJ0ZWQKQEAgLTM5 NCw2ICszOTcsMTMgQEAgJHJlc3VsdCA9ICRuZXdfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK ICk7CiBpcygkcmVzdWx0LCBxcSh0KSwgImNvbmZsaWN0IGRldGVjdGlvbiBzbG90IGV4aXN0cyIp OwogCisjIFRoZSBzdWJzY3JpcHRpb24gb2lkIGFuZCB0aGUgc3Vic2NyaXB0aW9uIGNvbmZsaWN0 IGxvZyB0YWJsZSByZWxpZCBzaG91bGQgYmUgcHJlc2VydmVkCiskcmVzdWx0ID0gJG5ld19zdWIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBX SEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3Nfc3ViNSciKTsKK2lzKCRyZXN1bHQsIHFxKCRzdWI1X29p ZCksICJzdWJzY3JpcHRpb24gb2lkIHNob3VsZCBoYXZlIGJlZW4gcHJlc2VydmVkIik7CisKKyRy ZXN1bHQgPSAkbmV3X3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qgc3ViY29uZmxp Y3Rsb2dyZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3Nf c3ViNSciKTsKK2lzKCRyZXN1bHQsIHFxKCRzdWJfY2x0X3JlbGlkKSwgInN1YnNjcmlwdGlvbiBj b25mbGljdCBsb2cgdGFibGUgcmVsaWQgc2hvdWxkIGhhdmUgYmVlbiBwcmVzZXJ2ZWQiKTsKKwog IyBSZXN1bWUgdGhlIGluaXRpYWwgc3luYyBhbmQgd2FpdCB1bnRpbCBhbGwgdGFibGVzIG9mIHN1 YnNjcmlwdGlvbgogIyAncmVncmVzc19zdWI1JyBhcmUgc3luY2hyb25pemVkCiAkbmV3X3N1Yi0+ YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL2JpbmFyeV91cGdyYWRlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFyeV91cGdy YWRlLmgKaW5kZXggN2JmN2FlNDQzODUuLmIxNWIxOGU3ZGM5IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9i aW5hcnlfdXBncmFkZS5oCkBAIC0zMiw2ICszMiw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBSZWxG aWxlTnVtYmVyIGJpbmFyeV91cGdyYWRlX25leHRfdG9hc3RfcGdfY2xhc3NfcmVsZmlsZW51bWJl CiAKIGV4dGVybiBQR0RMTElNUE9SVCBPaWQgYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19lbnVtX29p ZDsKIGV4dGVybiBQR0RMTElNUE9SVCBPaWQgYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19hdXRoaWRf b2lkOworZXh0ZXJuIFBHRExMSU1QT1JUIE9pZCBiaW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNj cmlwdGlvbl9vaWQ7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGJpbmFyeV91cGdyYWRlX3Jl Y29yZF9pbml0X3ByaXZzOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBmYTc2Yzc5MjNm MC4uYjhiOTg1N2ZkODEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTE5NjksNiArMTE5 NjksMTAgQEAKICAgcHJvaXNzdHJpY3QgPT4gJ2YnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3Bh cmFsbGVsID0+ICd1JywKICAgcHJvcmV0dHlwZSA9PiAndm9pZCcsIHByb2FyZ3R5cGVzID0+ICcn LAogICBwcm9zcmMgPT4gJ2JpbmFyeV91cGdyYWRlX2NyZWF0ZV9jb25mbGljdF9kZXRlY3Rpb25f c2xvdCcgfSwKK3sgb2lkID0+ICc4NDA3JywgZGVzY3IgPT4gJ2ZvciB1c2UgYnkgcGdfdXBncmFk ZScsCisgIHByb25hbWUgPT4gJ2JpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlv bl9vaWQnLCBwcm92b2xhdGlsZSA9PiAndicsCisgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0 dHlwZSA9PiAndm9pZCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ2JpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQnIH0sCiAKICMgY29udmVyc2lv biBmdW5jdGlvbnMKIHsgb2lkID0+ICc0MzEwJywgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNp b24gZnVuY3Rpb24gZm9yIEtPSThSIHRvIFdJTjEyNTEnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uLmgKaW5kZXggNDMzOGU2NjIwYjQuLmUyNTRkZWNiNDRlIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKQEAgLTIyMSw2ICsyMjEsOSBAQCB0eXBlZGVmIHN0cnVj dCBTdWJzY3JpcHRpb24KICAqLwogI2RlZmluZSBMT0dJQ0FMUkVQX1NUUkVBTV9QQVJBTExFTCAn cCcKIAorLyogQ29uZmxpY3QgbG9nIHRhYmxlIG5hbWUgZm9ybWF0LiAldSBpcyByZXBsYWNlZCB3 aXRoIHRoZSBzdWJzY3JpcHRpb24gT0lELiAqLworI2RlZmluZSBDT05GTElDVF9MT0dfUkVMQVRJ T05fTkFNRV9GTVQgInBnX2NvbmZsaWN0X2xvZ18ldSIKKwogI2VuZGlmCQkJCQkJCS8qIEVYUE9T RV9UT19DTElFTlRfQ09ERSAqLwogCiBleHRlcm4gU3Vic2NyaXB0aW9uICpHZXRTdWJzY3JpcHRp b24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2ssCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1 bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0IGIvc3JjL3Rl c3QvbW9kdWxlcy9zcGdpc3RfbmFtZV9vcHMvZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dApp bmRleCAxZWU2NWVkZTI0My4uMzlkNDMzNjhjNDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVs ZXMvc3BnaXN0X25hbWVfb3BzL2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQKKysrIGIvc3Jj L3Rlc3QvbW9kdWxlcy9zcGdpc3RfbmFtZV9vcHMvZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91 dApAQCAtNTksMTEgKzU5LDEyIEBAIHNlbGVjdCAqIGZyb20gdAogIGJpbmFyeV91cGdyYWRlX3Nl dF9uZXh0X211bHRpcmFuZ2VfcGdfdHlwZV9vaWQgICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRl X3NldF9uZXh0X211bHRpcmFuZ2VfcGdfdHlwZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4 dF9wZ19hdXRoaWRfb2lkICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRf bmV4dF9wZ19hdXRoaWRfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQg ICAgICAgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9v aWQKKyBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkICAgICAgICAg IHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkCiAgYmlu YXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdGFibGVzcGFjZV9vaWQgICAgICAgICAgICB8ICAgIHwg YmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdGFibGVzcGFjZV9vaWQKICBiaW5hcnlfdXBncmFk ZV9zZXRfbmV4dF9wZ190eXBlX29pZCAgICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF9wZ190eXBlX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0 X3BnX2NsYXNzX29pZCAgICAgICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3Rv YXN0X3BnX2NsYXNzX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVu b2RlICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZp bGVub2RlCi0oMTMgcm93cykKKygxNCByb3dzKQogCiAtLSBWZXJpZnkgY2xlYW4gZmFpbHVyZSB3 aGVuIElOQ0xVREUnZCBjb2x1bW5zIHJlc3VsdCBpbiBvdmVybGVuZ3RoIHR1cGxlCiAtLSBUaGUg ZXJyb3IgbWVzc2FnZSBkZXRhaWxzIGFyZSBwbGF0Zm9ybS1kZXBlbmRlbnQsIHNvIHNob3cgb25s eSBTUUxTVEFURQpAQCAtMTA4LDExICsxMDksMTIgQEAgc2VsZWN0ICogZnJvbSB0CiAgYmluYXJ5 X3VwZ3JhZGVfc2V0X25leHRfbXVsdGlyYW5nZV9wZ190eXBlX29pZCAgICAgICB8ICAxIHwgYmlu YXJ5X3VwZ3JhZGVfc2V0X25leHRfbXVsdGlyYW5nZV9wZ190eXBlX29pZAogIGJpbmFyeV91cGdy YWRlX3NldF9uZXh0X3BnX2F1dGhpZF9vaWQgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91 cGdyYWRlX3NldF9uZXh0X3BnX2F1dGhpZF9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9w Z19lbnVtX29pZCAgICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4 dF9wZ19lbnVtX29pZAorIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9v aWQgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlv bl9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190YWJsZXNwYWNlX29pZCAgICAgICAg ICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190YWJsZXNwYWNlX29pZAogIGJp bmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3R5cGVfb2lkICAgICAgICAgICAgICAgICAgfCAgICB8 IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3R5cGVfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0 X25leHRfdG9hc3RfcGdfY2xhc3Nfb2lkICAgICAgICAgICB8ICAxIHwgYmluYXJ5X3VwZ3JhZGVf c2V0X25leHRfdG9hc3RfcGdfY2xhc3Nfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9h c3RfcmVsZmlsZW5vZGUgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRf dG9hc3RfcmVsZmlsZW5vZGUKLSgxMyByb3dzKQorKDE0IHJvd3MpCiAKIFxzZXQgVkVSQk9TSVRZ IHNxbHN0YXRlCiBpbnNlcnQgaW50byB0IHZhbHVlcyhyZXBlYXQoJ3h5enp5JywgMTIpLCA0Miwg cmVwZWF0KCd4eXp6eScsIDQwMDApKTsKLS0gCjIuNDkuMAoK --000000000000cc7a050655003f54 Content-Type: application/octet-stream; name="v56-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v56-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqs4zeag2 RnJvbSAzYzEyZDUwYTM1NmRhMDRjN2Y2ZDYxODUzODk4ZDNhZDhlZTFhYTBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU2F0LCAzMCBNYXkgMjAyNiAxMzozNTowNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU2 IDMvNl0gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIHBnX2Nv bmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18xNjM5NjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCBy ZW1vdGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7 ImEiOjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3 NSAgICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiAuLi4vcmVwbGljYXRpb24vbG9naWNh bC9hcHBseXBhcmFsbGVsd29ya2VyLmMgfCAgODQgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvY29uZmxpY3QuYyAgICB8IDc3MSArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICA2NSArLQogc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oICAgICB8ICAgNiArCiBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMwX29yaWdpbi5wbCAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzVfY29uZmxpY3RzLnBsICAgICAgfCAgNDcgKy0KIC4uLi90LzAzOV9wYV9jb25m bGljdF9sb2dfbG9ja193YWl0LnBsICAgICAgICB8IDIwNCArKysrKwogc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDEwIGZpbGVzIGNoYW5nZWQs IDExMzMgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM5X3BhX2NvbmZsaWN0X2xvZ19sb2NrX3dhaXQucGwK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxs ZWx3b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxl bHdvcmtlci5jCmluZGV4IDAxMmQ1NWU5ZDNkLi5hM2Y1YjliMTIyZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKQEAg LTk4Niw3ICs5ODYsNjUgQEAgUGFyYWxsZWxBcHBseVdvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcp CiAKIAlzZXRfYXBwbHlfZXJyb3JfY29udGV4dF9vcmlnaW4ob3JpZ2lubmFtZSk7CiAKLQlMb2dp Y2FsUGFyYWxsZWxBcHBseUxvb3AobXFoKTsKKwlQR19UUlkoKTsKKwl7CisJCUxvZ2ljYWxQYXJh bGxlbEFwcGx5TG9vcChtcWgpOworCX0KKwlQR19DQVRDSCgpOworCXsKKwkJTWVtb3J5Q29udGV4 dCBvbGRjb250ZXh0OworCQlFcnJvckRhdGEgICplZGF0YTsKKworCQkvKgorCQkgKiBSZXNldCB0 aGUgb3JpZ2luIHN0YXRlIHRvIHByZXZlbnQgdGhlIGFkdmFuY2VtZW50IG9mIG9yaWdpbgorCQkg KiBwcm9ncmVzcyBpZiB3ZSBmYWlsIHRvIGFwcGx5LiBPdGhlcndpc2UsIHRoaXMgd2lsbCByZXN1 bHQgaW4KKwkJICogdHJhbnNhY3Rpb24gbG9zcyBhcyB0aGF0IHRyYW5zYWN0aW9uIHdvbid0IGJl IHNlbnQgYWdhaW4gYnkgdGhlCisJCSAqIHNlcnZlci4KKwkJICovCisJCXJlcGxvcmlnaW5feGFj dF9jbGVhcih0cnVlKTsKKworCQkvKgorCQkgKiBDb3B5IHRoZSBlcnJvciBhbmQgcmVjb3ZlciB0 byBhbiBpZGxlIHN0YXRlIHNvIHdlIGNhbiBpbnNlcnQgdGhlCisJCSAqIGRlZmVycmVkIGNvbmZs aWN0IGxvZyB0dXBsZSAoaWYgYW55KSBiZWZvcmUgcmUtdGhyb3dpbmcuICBDb3B5IHRoZQorCQkg KiBlcnJvciBpbnRvIGEgbG9uZ2VyLWxpdmVkIGNvbnRleHQgZmlyc3QsIGFzIGl0IG1heSBoYXZl IGJlZW4gcmFpc2VkCisJCSAqIHVuZGVyIEVycm9yQ29udGV4dC4gIEFsc28gcmVzZXQgdGhlIGVy cm9yIGNvbnRleHQgc3RhY2s6IHRoZQorCQkgKiBjYWxsYmFja3MgaW4gZWZmZWN0IHdoZW4gdGhl IGVycm9yIHdhcyB0aHJvd24gYmVsb25nIHRvIHVud291bmQgc3RhY2sKKwkJICogZnJhbWVzLCBh bmQgdGhlIGRlZmVycmVkIGluc2VydCBpbnN0YWxscyBpdHMgb3duLgorCQkgKi8KKwkJb2xkY29u dGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwkJZWRhdGEg PSBDb3B5RXJyb3JEYXRhKCk7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK KworCQlGbHVzaEVycm9yU3RhdGUoKTsKKwkJZXJyb3JfY29udGV4dF9zdGFjayA9IE5VTEw7CisK KwkJLyoKKwkJICogVGVsbCB0aGUgbGVhZGVyIHdlIGZhaWxlZCBhbmQgYXJlIGFib3V0IHRvIHJl cG9ydCB0aGUgZXJyb3IgYW5kIGxvZworCQkgKiB0aGUgY29uZmxpY3QuICBUaGlzIG11c3QgYmUg c2V0IGJlZm9yZSBBYm9ydE91dE9mQW55VHJhbnNhY3Rpb24oKQorCQkgKiBiZWxvdyByZWxlYXNl cyB0aGUgdHJhbnNhY3Rpb24gbG9jayB0aGF0IHRoZSBsZWFkZXIgd2FpdHMgb24gaW4KKwkJICog cGFfd2FpdF9mb3JfeGFjdF9maW5pc2goKTsgb3RoZXJ3aXNlIHRoZSBsZWFkZXIgd291bGQgc2Vl IGEKKwkJICogbm9uLWZpbmlzaGVkIHN0YXRlLCBhc3N1bWUgdGhlIGNvbm5lY3Rpb24gd2FzIGxv c3QsIGFuZCB0ZWFyIHRoaXMKKwkJICogd29ya2VyIGRvd24gd2hpbGUgaXQgaXMgc3RpbGwgd3Jp dGluZyB0aGUgY29uZmxpY3QgbG9nIHR1cGxlLgorCQkgKi8KKwkJcGFfc2V0X3hhY3Rfc3RhdGUo TXlQYXJhbGxlbFNoYXJlZCwgUEFSQUxMRUxfVFJBTlNfRVJST1IpOworCisJCUFib3J0T3V0T2ZB bnlUcmFuc2FjdGlvbigpOworCisJCS8qCisJCSAqIEluc2VydCB0aGUgZGVmZXJyZWQgY29uZmxp Y3QgbG9nIHR1cGxlIGJlZm9yZSByZS10aHJvd2luZy4KKwkJICogUmUtdGhyb3dpbmcgaXMgd2hh dCByZXBvcnRzIHRoZSBlcnJvciB0byB0aGUgbGVhZGVyICh2aWEgdGhlIGVycm9yCisJCSAqIHF1 ZXVlIHNldCB1cCBhYm92ZSksIHNvIHRoZSBpbnNlcnRpb24gbXVzdCBoYXBwZW4gZmlyc3Q6IG90 aGVyd2lzZQorCQkgKiB0aGUgbGVhZGVyIGNvdWxkIHN0YXJ0IHRlYXJpbmcgZG93biB0aGlzIHdv cmtlciB3aGlsZSBpdCBpcyBzdGlsbAorCQkgKiB3cml0aW5nIHRoZSBjb25mbGljdCBsb2cgdHVw bGUuICBJZiB0aGUgaW5zZXJ0aW9uIGl0c2VsZiBmYWlscywgdGhhdAorCQkgKiBlcnJvciAoYW5u b3RhdGVkIHdpdGggdGhlIGNvbmZsaWN0IGNvbnRleHQsIHNlZSBJbnNlcnRDb25mbGljdExvZ1R1 cGxlKQorCQkgKiBwcm9wYWdhdGVzIHRvIHRoZSBsZWFkZXIgaW5zdGVhZCBvZiB0aGUgb3JpZ2lu YWwuCisJCSAqLworCQlQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKTsKKworCQkvKiBS ZS10aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3IsIHdoaWNoIHJlcG9ydHMgaXQgdG8gdGhlIGxlYWRl ci4gKi8KKwkJUmVUaHJvd0Vycm9yKGVkYXRhKTsKKwl9CisJUEdfRU5EX1RSWSgpOwogCiAJLyoK IAkgKiBUaGUgcGFyYWxsZWwgYXBwbHkgd29ya2VyIG11c3Qgbm90IGdldCBoZXJlIGJlY2F1c2Ug dGhlIHBhcmFsbGVsIGFwcGx5CkBAIC0xMzE0LDkgKzEzNzIsMzMgQEAgcGFfd2FpdF9mb3JfeGFj dF9maW5pc2goUGFyYWxsZWxBcHBseVdvcmtlckluZm8gKndpbmZvKQogCSAqIHJlbGVhc2VkLgog CSAqLwogCWlmIChwYV9nZXRfeGFjdF9zdGF0ZSh3aW5mby0+c2hhcmVkKSAhPSBQQVJBTExFTF9U UkFOU19GSU5JU0hFRCkKKwl7CisJCS8qCisJCSAqIElmIHRoZSB3b3JrZXIgc2lnbmFsbGVkIHRo YXQgaXQgZXJyb3JlZCAoUEFSQUxMRUxfVFJBTlNfRVJST1IpLCBpdCBpcworCQkgKiBsb2dnaW5n IHRoZSBjb25mbGljdCBhbmQgd2lsbCByZXBvcnQgdGhlIGFjdHVhbCBlcnJvciB2aWEgdGhlIGVy cm9yCisJCSAqIHF1ZXVlIGJlZm9yZSBleGl0aW5nLiAgV2FpdCBmb3IgdGhhdCByYXRoZXIgdGhh biByZXBvcnRpbmcgYSBnZW5lcmljCisJCSAqIGxvc3QgY29ubmVjdGlvbjogQ0hFQ0tfRk9SX0lO VEVSUlVQVFMoKSBkcml2ZXMKKwkJICogUHJvY2Vzc1BhcmFsbGVsQXBwbHlNZXNzYWdlcygpLCB3 aGljaCByYWlzZXMgdGhlIHJlYWwgZXJyb3Igb24gdGhlCisJCSAqIHdvcmtlcidzIEVycm9yUmVz cG9uc2UgKG9yICJsb3N0IGNvbm5lY3Rpb24iIGlmIHRoZSB3b3JrZXIgZGllZAorCQkgKiB3aXRo b3V0IHJlcG9ydGluZykuICBXYWl0aW5nIGhlcmUgYWxzbyBrZWVwcyB0aGUgd29ya2VyIGFsaXZl IGxvbmcKKwkJICogZW5vdWdoIHRvIGZpbmlzaCB3cml0aW5nIHRoZSBjb25mbGljdCBsb2cgdHVw bGUuCisJCSAqLworCQl3aGlsZSAocGFfZ2V0X3hhY3Rfc3RhdGUod2luZm8tPnNoYXJlZCkgPT0g UEFSQUxMRUxfVFJBTlNfRVJST1IpCisJCXsKKwkJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisK KwkJCSh2b2lkKSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkJCQkgV0xfTEFUQ0hfU0VUIHwgV0xf VElNRU9VVCB8IFdMX0VYSVRfT05fUE1fREVBVEgsCisJCQkJCQkJIDEwTCwKKwkJCQkJCQkgV0FJ VF9FVkVOVF9MT0dJQ0FMX1BBUkFMTEVMX0FQUExZX1NUQVRFX0NIQU5HRSk7CisKKwkJCVJlc2V0 TGF0Y2goTXlMYXRjaCk7CisJCX0KKwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImxv c3QgY29ubmVjdGlvbiB0byB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxlbCBhcHBseSB3 b3JrZXIiKSkpOworCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvY29uZmxpY3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv Y29uZmxpY3QuYwppbmRleCAyMjg0MGVjNmU5ZC4uMzQxMjFjZjA2ZTMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKQEAgLTE2LDE3ICsxNiwyNSBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL2NvbW1pdF90cy5oIgogI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgor I2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGVhbS5oIgor I2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9oZWFwLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1 dG9yLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCisjaW5jbHVkZSAidXRpbHMv YXJyYXkuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2lu amVjdGlvbl9wb2ludC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUg InV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvcGdfbHNuLmgiCiAKIC8qCiAgKiBT dHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciB0aGUgc3VwcG9ydGVkIGNvbmZsaWN0IGxvZ2dpbmcg ZGVzdGluYXRpb25zLgpAQCAtNDAsNyArNDgsNiBAQCBjb25zdCBjaGFyICpjb25zdCBDb25mbGlj dExvZ0Rlc3ROYW1lc1tdID0gewogU3RhdGljQXNzZXJ0RGVjbChsZW5ndGhvZihDb25mbGljdExv Z0Rlc3ROYW1lcykgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMICsgMSwKIAkJCQkgIkNvbmZsaWN0 TG9nRGVzdE5hbWVzIGxlbmd0aCBtaXNtYXRjaCIpOwogCi0KIC8qIFN0cnVjdHVyZSB0byBob2xk IG1ldGFkYXRhIGZvciBvbmUgY29sdW1uIG9mIHRoZSBjb25mbGljdCBsb2cgdGFibGUgKi8KIHR5 cGVkZWYgc3RydWN0IENvbmZsaWN0TG9nQ29sdW1uRGVmCiB7CkBAIC03Miw2ICs3OSwxOCBAQCBz dGF0aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgQ29uZmxpY3RMb2dTY2hlbWFbXSA9IHsK IAogI2RlZmluZSBOVU1fQ09ORkxJQ1RfQVRUUlMgbGVuZ3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEp CiAKKy8qIFNjaGVtYSBmb3IgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUgJ2xvY2FsX2NvbmZsaWN0 cycgSlNPTiBhcnJheSAqLworc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVmIExvY2Fs Q29uZmxpY3RTY2hlbWFbXSA9Cit7CisJeyAuYXR0bmFtZSA9ICJ4aWQiLCAgICAgICAuYXR0dHlw aWQgPSBYSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gImNvbW1pdF90cyIsIC5hdHR0eXBpZCA9IFRJ TUVTVEFNUFRaT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJvcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBU RVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJrZXkiLCAgICAgICAuYXR0dHlwaWQgPSBKU09OT0lE IH0sCisJeyAuYXR0bmFtZSA9ICJ0dXBsZSIsICAgICAuYXR0dHlwaWQgPSBKU09OT0lEIH0KK307 CisKKyNkZWZpbmUgTlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTIGxlbmd0aG9mKExvY2FsQ29uZmxp Y3RTY2hlbWEpCisKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1td ID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9ICJpbnNlcnRfZXhpc3RzIiwKIAlbQ1RfVVBEQVRF X09SSUdJTl9ESUZGRVJTXSA9ICJ1cGRhdGVfb3JpZ2luX2RpZmZlcnMiLApAQCAtODMsNiArMTAy LDI1IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewog CVtDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTXSA9ICJtdWx0aXBsZV91bmlxdWVfY29uZmxp Y3RzIgogfTsKIAorLyoKKyAqIFdvcmtlci1wcml2YXRlIHN0YXRlIGZvciBhIGNvbmZsaWN0IHRo YXQgaGFzIGJlZW4gcHJlcGFyZWQgZm9yIHRoZSBjb25mbGljdAorICogbG9nIHRhYmxlIGJ1dCBu b3QgeWV0IGluc2VydGVkLiAgSXQgY2FycmllcyB0aGUgcHJlcGFyZWQgdHVwbGUsIGFuZCBhCisg KiBkZXNjcmlwdGlvbiBvZiB0aGUgY29uZmxpY3QgdXNlZCBmb3IgZXJyb3IgY29udGV4dCwgZnJv bQorICogcHJlcGFyZV9jb25mbGljdF9sb2dfdHVwbGUoKSBhY3Jvc3MgdGhlIGFwcGx5IGVycm9y IGJvdW5kYXJ5IHRvCisgKiBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKS9JbnNlcnRD b25mbGljdExvZ1R1cGxlKCkuICBCb3RoIHBvaW50ZXJzCisgKiByZWZlcmVuY2UgbWVtb3J5IGFs bG9jYXRlZCBpbiBBcHBseUNvbnRleHQuCisgKgorICogVGhpcyBpcyBwdXJlbHkgcHJvY2Vzcy1s b2NhbCBzdGF0ZSwgc28gaXQgbGl2ZXMgaGVyZSByYXRoZXIgdGhhbiBpbiB0aGUKKyAqIHNoYXJl ZCBMb2dpY2FsUmVwV29ya2VyIHN0cnVjdC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUGVuZGluZ0Nv bmZsaWN0TG9nRGF0YQoreworCUhlYXBUdXBsZQl0dXBsZTsJCQkvKiBwcmVwYXJlZCwgbm90LXll dC1pbnNlcnRlZCBjb25mbGljdCB0dXBsZSAqLworCWNoYXIJICAgKmVycmNvbnRleHRfc3RyOwkv KiBjb25mbGljdCBkZXNjcmlwdGlvbiBmb3IgZXJyb3IgY29udGV4dCAqLworfSBQZW5kaW5nQ29u ZmxpY3RMb2dEYXRhOworCitzdGF0aWMgUGVuZGluZ0NvbmZsaWN0TG9nRGF0YSBwZW5kaW5nX2Nv bmZsaWN0X2xvZyA9IHswfTsKKwogc3RhdGljIGludAllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KENv bmZsaWN0VHlwZSB0eXBlKTsKIHN0YXRpYyB2b2lkIGVycmRldGFpbF9hcHBseV9jb25mbGljdChF U3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCSBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLApAQCAtOTks OCArMTM3LDI3IEBAIHN0YXRpYyB2b2lkIGdldF90dXBsZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBS ZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNs b3QsIGNoYXIgKipyZW1vdGVfZGVzYywKIAkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzZWFyY2hz bG90LCBjaGFyICoqc2VhcmNoX2Rlc2MsCiAJCQkJCQkgICBPaWQgaW5kZXhvaWQpOworc3RhdGlj IHZvaWQgYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xvdChFU3RhdGUgKmVzdGF0ZSwgUmVsYXRp b24gbG9jYWxyZWwsCisJCQkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LAorCQkJCQkJCQkJ CSBSZWxhdGlvbiBpbmRleERlc2MsIERhdHVtICp2YWx1ZXMsCisJCQkJCQkJCQkJIGJvb2wgKmlz bnVsbCk7CiBzdGF0aWMgY2hhciAqYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0 ZSwgUmVsYXRpb24gbG9jYWxyZWwsCiAJCQkJCQkJCQlUdXBsZVRhYmxlU2xvdCAqc2xvdCwgT2lk IGluZGV4b2lkKTsKK3N0YXRpYyBEYXR1bSB0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0o VHVwbGVUYWJsZVNsb3QgKnNsb3QpOworc3RhdGljIERhdHVtIHR1cGxlX3RhYmxlX3Nsb3RfdG9f aW5kZXh0dXBfanNvbihFU3RhdGUgKmVzdGF0ZSwKKwkJCQkJCQkJCQkJICAgUmVsYXRpb24gbG9j YWxyZWwsCisJCQkJCQkJCQkJCSAgIE9pZCByZXBsaWNhX2luZGV4LAorCQkJCQkJCQkJCQkgICBU dXBsZVRhYmxlU2xvdCAqc2xvdCk7CitzdGF0aWMgVHVwbGVEZXNjIGJ1aWxkX2NvbmZsaWN0X3R1 cGxlZGVzYyh2b2lkKTsKK3N0YXRpYyBEYXR1bSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9h cnJheShFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkJCQkgIENvbmZsaWN0 VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJCQkJCQkgIExpc3QgKmNvbmZsaWN0dHVwbGVzKTsK K3N0YXRpYyB2b2lkIHByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKEVTdGF0ZSAqZXN0YXRlLCBS ZWxhdGlvbiByZWwsCisJCQkJCQkJCQkgICBSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCwKKwkJCQkJ CQkJCSAgIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJCQkJICAgVHVwbGVUYWJs ZVNsb3QgKnNlYXJjaHNsb3QsCisJCQkJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1cGxlcywKKwkJ CQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90KTsKIAogLyoKICAqIEJ1aWxkcyB0 aGUgVHVwbGVEZXNjIGZvciB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLgpAQCAtMjY5LDMwICszMjYs MjIwIEBAIFJlcG9ydEFwcGx5Q29uZmxpY3QoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8g KnJlbGluZm8sIGludCBlbGV2ZWwsCiAJCQkJCUNvbmZsaWN0VHlwZSB0eXBlLCBUdXBsZVRhYmxl U2xvdCAqc2VhcmNoc2xvdCwKIAkJCQkJVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNsb3QsIExpc3Qg KmNvbmZsaWN0dHVwbGVzKQogewotCVJlbGF0aW9uCWxvY2FscmVsID0gcmVsaW5mby0+cmlfUmVs YXRpb25EZXNjOwotCVN0cmluZ0luZm9EYXRhIGVycl9kZXRhaWw7CisJUmVsYXRpb24JCWxvY2Fs cmVsID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUNvbmZsaWN0TG9nRGVzdAlkZXN0Owor CVJlbGF0aW9uCQljb25mbGljdGxvZ3JlbDsKKwlib29sCQkJbG9nX2Rlc3RfdGFibGU7CisJYm9v bCAJCQlsb2dfZGVzdF9sb2dmaWxlOwogCi0JaW5pdFN0cmluZ0luZm8oJmVycl9kZXRhaWwpOwor CXBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2NvbmZsaWN0KE15U3Vic2NyaXB0aW9uLT5vaWQs IHR5cGUpOwogCi0JLyogRm9ybSBlcnJkZXRhaWwgbWVzc2FnZSBieSBjb21iaW5pbmcgY29uZmxp Y3RpbmcgdHVwbGVzIGluZm9ybWF0aW9uLiAqLwotCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJ bmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykKLQkJZXJyZGV0YWlsX2FwcGx5X2Nv bmZsaWN0KGVzdGF0ZSwgcmVsaW5mbywgdHlwZSwgc2VhcmNoc2xvdCwKLQkJCQkJCQkJIGNvbmZs aWN0dHVwbGUtPnNsb3QsIHJlbW90ZXNsb3QsCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT5pbmRl eG9pZCwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPnhtaW4sCi0JCQkJCQkJCSBjb25mbGljdHR1 cGxlLT5vcmlnaW4sCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT50cywKLQkJCQkJCQkJICZlcnJf ZGV0YWlsKTsKKwkvKgorCSAqIEdldCB0aGUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uLiAgQWxz bywgaWYgYSB0YWJsZSBpcyBvbmUgb2YgdGhlCisJICogZGVzdGluYXRpb25zLCByZXR1cm4gdGhl IENMVCByZWxhdGlvbiBhbHJlYWR5IG9wZW5lZCBhbmQgcmVhZHkgZm9yCisJICogaW5zZXJ0aW9u IC0tIG9yIE5VTEwgaWYgaXQgaGFzIGJlZW4gZHJvcHBlZCBjb25jdXJyZW50bHkuCisJICovCisJ Y29uZmxpY3Rsb2dyZWwgPSBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZSgmZGVzdCk7CiAKLQlw Z3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9jb25mbGljdChNeVN1YnNjcmlwdGlvbi0+b2lkLCB0 eXBlKTsKKwlsb2dfZGVzdF90YWJsZSA9IENPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUoZGVzdCk7 CisJbG9nX2Rlc3RfbG9nZmlsZSA9IENPTkZMSUNUU19MT0dHRURfVE9fTE9HKGRlc3QpOworCisJ LyoKKwkgKiBJZiBhIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgcmVxdWVzdGVkIGJ1dCBpdCBoYXMg YmVlbiBkcm9wcGVkCisJICogY29uY3VycmVudGx5IChlLmcuIGEgY29uY3VycmVudCBBTFRFUiBT VUJTQ1JJUFRJT04gY2hhbmdlZAorCSAqIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiksIEdldENv bmZsaWN0TG9nRGVzdEFuZFRhYmxlKCkgcmV0dXJuZWQgTlVMTC4KKwkgKiBGYWxsIGJhY2sgdG8g bG9nZ2luZyB0aGUgZnVsbCBjb25mbGljdCBkZXRhaWxzIHRvIHRoZSBzZXJ2ZXIgbG9nIHNvIHRo YXQKKwkgKiB0aGUgY29uZmxpY3QgaXMgbm90IGxvc3QuCisJICovCisJaWYgKGxvZ19kZXN0X3Rh YmxlICYmIGNvbmZsaWN0bG9ncmVsID09IE5VTEwpCisJeworCQlsb2dfZGVzdF90YWJsZSA9IGZh bHNlOworCQlsb2dfZGVzdF9sb2dmaWxlID0gdHJ1ZTsKKwl9CisKKwkvKgorCSAqIFByZXBhcmUg dGhlIGNvbmZsaWN0IGxvZyB0dXBsZSBmaXJzdCB3aGVuIHRoZSBkZXN0aW5hdGlvbiBpbmNsdWRl cyB0aGUKKwkgKiB0YWJsZS4gIFRoaXMgbXVzdCBoYXBwZW4gYmVmb3JlIHRoZSBlcmVwb3J0KCkg YmVsb3csIGJlY2F1c2UgZm9yIGFuCisJICogRVJST1ItbGV2ZWwgY29uZmxpY3QgdGhhdCBlcmVw b3J0KCkgcmFpc2VzIHRoZSBlcnJvciBhbmQgZGVmZXJzIHRoZQorCSAqIGFjdHVhbCBpbnNlcnRp b24gdG8gUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCksIHdoaWNoIHJlbGllcyBvbiB0 aGUKKwkgKiB0dXBsZSBoYXZpbmcgYmVlbiBwcmVwYXJlZC4KKwkgKi8KKwlpZiAobG9nX2Rlc3Rf dGFibGUpCisJeworCQlBc3NlcnQoY29uZmxpY3Rsb2dyZWwgIT0gTlVMTCk7CisJCXByZXBhcmVf Y29uZmxpY3RfbG9nX3R1cGxlKGVzdGF0ZSwKKwkJCQkJCQkJICAgcmVsaW5mby0+cmlfUmVsYXRp b25EZXNjLAorCQkJCQkJCQkgICBjb25mbGljdGxvZ3JlbCwKKwkJCQkJCQkJICAgdHlwZSwKKwkJ CQkJCQkJICAgc2VhcmNoc2xvdCwKKwkJCQkJCQkJICAgY29uZmxpY3R0dXBsZXMsCisJCQkJCQkJ CSAgIHJlbW90ZXNsb3QpOworCX0KKworCS8qCisJICogUmVwb3J0IHRoZSBjb25mbGljdCB0byB0 aGUgc2VydmVyIGxvZyBiZWZvcmUgaW5zZXJ0aW5nIGl0IGludG8gdGhlCisJICogY29uZmxpY3Qg bG9nIHRhYmxlLiAgRW1pdHRpbmcgaXQgZmlyc3QgZ3VhcmFudGVlcyB0aGUgY29uZmxpY3QgaXMK KwkgKiByZWNvcmRlZCBldmVuIGlmIHRoZSB0YWJsZSBpbnNlcnQgYmVsb3cgZmFpbHM7IGl0IGlz IGFsc28gd2hhdCByYWlzZXMgdGhlCisJICogZXJyb3IgZm9yIEVSUk9SLWxldmVsIGNvbmZsaWN0 cy4gIFdoZW4gdGhlIHNlcnZlciBsb2cgaXMgb25lIG9mIHRoZQorCSAqIGRlc3RpbmF0aW9ucyB3 ZSBlbWl0IHRoZSBmdWxsIGRldGFpbHMsIG90aGVyd2lzZSAodGFibGUtb25seSkgd2UgZW1pdCBh CisJICogc2hvcnRlciBtZXNzYWdlIHNpbmNlIHRoZSBkZXRhaWxzIGFyZSBjYXB0dXJlZCBpbiB0 aGUgdGFibGUuCisJICovCisJaWYgKGxvZ19kZXN0X2xvZ2ZpbGUpCisJeworCQlTdHJpbmdJbmZv RGF0YQllcnJfZGV0YWlsOworCisJCWluaXRTdHJpbmdJbmZvKCZlcnJfZGV0YWlsKTsKKworCQkv KiBGb3JtIGVycmRldGFpbCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBsZXMg aW5mb3JtYXRpb24uICovCisJCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGlj dHR1cGxlLCBjb25mbGljdHR1cGxlcykKKwkJCWVycmRldGFpbF9hcHBseV9jb25mbGljdChlc3Rh dGUsIHJlbGluZm8sIHR5cGUsIHNlYXJjaHNsb3QsCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT5z bG90LCByZW1vdGVzbG90LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+aW5kZXhvaWQsCisJCQkJ CQkJCQljb25mbGljdHR1cGxlLT54bWluLAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+b3JpZ2lu LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+dHMsCisJCQkJCQkJCQkmZXJyX2RldGFpbCk7CisK KwkJLyogU3RhbmRhcmQgcmVwb3J0aW5nIHdpdGggZnVsbCBpbnRlcm5hbCBkZXRhaWxzLiAqLwor CQllcmVwb3J0KGVsZXZlbCwKKwkJCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAorCQkJ CWVycm1zZygiY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gXCIlc1wiOiBjb25mbGljdD0l cyIsCisJCQkJCSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKGxvY2FscmVsKSwK KwkJCQkJICAgQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFpbF9pbnRlcm5h bCgiJXMiLCBlcnJfZGV0YWlsLmRhdGEpKTsKKwl9CisJZWxzZSBpZiAobG9nX2Rlc3RfdGFibGUp CisJeworCQkvKgorCQkgKiBOb3QgbG9nZ2luZyBjb25mbGljdCBkZXRhaWxzIHRvIHRoZSBzZXJ2 ZXIgbG9nOyByZXBvcnQgdGhlIGNvbmZsaWN0CisJCSAqIGJ1dCBvbWl0IHJhdyB0dXBsZSBkYXRh IHNpbmNlIGl0IGlzIGNhcHR1cmVkIGluIHRoZSBjb25mbGljdCBsb2cKKwkJICogdGFibGUuCisJ CSAqLworCQllcmVwb3J0KGVsZXZlbCwKKwkJCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUp LAorCQkJCWVycm1zZygiY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gXCIlc1wiOiBjb25m bGljdD0lcyIsCisJCQkJCVJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKGxvY2FscmVs KSwKKwkJCQkJQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFpbCgiQ29uZmxp Y3QgZGV0YWlscyBhcmUgbG9nZ2VkIHRvIHRoZSBjb25mbGljdCBsb2cgdGFibGU6ICVzIiwKKwkJ CQkJCSAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoY29uZmxpY3Rsb2dyZWwpKSk7CisJfQogCi0J ZXJlcG9ydChlbGV2ZWwsCi0JCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAotCQkJZXJy bXNnKCJjb25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzLiVzXCI6IGNvbmZsaWN0PSVz IiwKLQkJCQkgICBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UobG9jYWxy ZWwpKSwKLQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShsb2NhbHJlbCksCi0JCQkJICAg Q29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAotCQkJZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVy cl9kZXRhaWwuZGF0YSkpOworCS8qCisJICogSW5zZXJ0IGludG8gdGhlIGNvbmZsaWN0IGxvZyB0 YWJsZSBpZiByZXF1ZXN0ZWQuICBGb3IgY29uZmxpY3RzIGJlbG93CisJICogRVJST1IgdGhlIGFw cGx5IHRyYW5zYWN0aW9uIGNvbnRpbnVlcywgc28gaW5zZXJ0IGltbWVkaWF0ZWx5OyBmb3IKKwkg KiBFUlJPUi1sZXZlbCBjb25mbGljdHMgdGhlIGVyZXBvcnQoKSBhYm92ZSBhbHJlYWR5IHJhaXNl ZCB0aGUgZXJyb3IgYW5kCisJICogdGhlIGluc2VydGlvbiBpcyBkZWZlcnJlZCB0byBhIG5ldyB0 cmFuc2FjdGlvbgorCSAqIChQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUpIHNvIHRoYXQg aXQgaXMgbm90IHJvbGxlZCBiYWNrLgorCSAqLworCWlmIChsb2dfZGVzdF90YWJsZSkKKwl7CisJ CWlmIChlbGV2ZWwgPCBFUlJPUikKKwkJeworCQkJUEdfVFJZKCk7CisJCQl7CisJCQkJSW5zZXJ0 Q29uZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisJCQl9CisJCQlQR19DQVRDSCgpOwor CQkJeworCQkJCS8qCisJCQkJICogVGhlIGluc2VydCBmYWlsZWQsIHNvIHRoZSBhcHBseSB0cmFu c2FjdGlvbiB3aWxsIGFib3J0IGFuZAorCQkJCSAqIHRoZSBlcnJvciB3aWxsIHByb3BhZ2F0ZSB0 byB0aGUgd29ya2VyJ3MgZXJyb3IgaGFuZGxlci4gIFRoZQorCQkJCSAqIGNvbmZsaWN0IHdhcyBh bHJlYWR5IHJlcG9ydGVkIHRvIHRoZSBzZXJ2ZXIgbG9nIGFib3ZlLCBzbyBpdAorCQkJCSAqIGlz IG5vdCBsb3N0LiAgRGlzY2FyZCB0aGUgcHJlcGFyZWQgdHVwbGUgc28gdGhhdCB0aGUgZGVmZXJy ZWQKKwkJCQkgKiBpbnNlcnRpb24gcGF0aCAoUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxl KSBkb2VzIG5vdCByZXRyeQorCQkJCSAqIHRoaXMgc2FtZSBmYWlsaW5nIGluc2VydC4KKwkJCQkg Ki8KKwkJCQlpZiAocGVuZGluZ19jb25mbGljdF9sb2cudHVwbGUgIT0gTlVMTCkKKwkJCQl7CisJ CQkJCWhlYXBfZnJlZXR1cGxlKHBlbmRpbmdfY29uZmxpY3RfbG9nLnR1cGxlKTsKKwkJCQkJcGVu ZGluZ19jb25mbGljdF9sb2cudHVwbGUgPSBOVUxMOworCQkJCX0KKwkJCQlpZiAocGVuZGluZ19j b25mbGljdF9sb2cuZXJyY29udGV4dF9zdHIgIT0gTlVMTCkKKwkJCQl7CisJCQkJCXBmcmVlKHBl bmRpbmdfY29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3RyKTsKKwkJCQkJcGVuZGluZ19jb25mbGlj dF9sb2cuZXJyY29udGV4dF9zdHIgPSBOVUxMOworCQkJCX0KKwkJCQlQR19SRV9USFJPVygpOwor CQkJfQorCQkJUEdfRU5EX1RSWSgpOworCQl9CisKKwkJdGFibGVfY2xvc2UoY29uZmxpY3Rsb2dy ZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCX0KK30KKworLyoKKyAqIFByb2Nlc3NQZW5kaW5nQ29u ZmxpY3RMb2dUdXBsZQorICogICAgICBJbnNlcnQgYW55IGRlZmVycmVkIGNvbmZsaWN0IGxvZyB0 dXBsZSBpbiBhIHNlcGFyYXRlIHRyYW5zYWN0aW9uLgorICoKKyAqIEZvciBjb25mbGljdHMgcmFp c2VkIGF0IEVSUk9SIGxldmVsLCB0aGUgY29uZmxpY3QgbG9nIHR1cGxlIGNhbm5vdCBiZQorICog aW5zZXJ0ZWQgaW1tZWRpYXRlbHkgYmVjYXVzZSB0aGUgc3Vycm91bmRpbmcgdHJhbnNhY3Rpb24g d2lsbCBhYm9ydC4KKyAqIFRvIGVuc3VyZSB0aGF0IGNvbmZsaWN0IGluZm9ybWF0aW9uIGlzIG5v dCBsb3N0LCBzdWNoIHR1cGxlcyBhcmUgcHJlcGFyZWQKKyAqIGR1cmluZyBlcnJvciBwcm9jZXNz aW5nIChzZWUgcHJlcGFyZV9jb25mbGljdF9sb2dfdHVwbGUoKSkgYnV0IHRoZWlyCisgKiBpbnNl cnRpb24gaXMgZGVmZXJyZWQuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBm b3IgY29tcGxldGluZyB0aGF0IGRlZmVycmVkIGluc2VydGlvbiBhZnRlcgorICogdGhlIGZhaWxp bmcgdHJhbnNhY3Rpb24gaGFzIGJlZW4gYWJvcnRlZCBhbmQgdGhlIHN5c3RlbSBoYXMgcmV0dXJu ZWQgdG8gYW4KKyAqIGlkbGUgc3RhdGUuICBJdCBleGVjdXRlcyB0aGUgaW5zZXJ0aW9uIGluIGEg bmV3LCBpbmRlcGVuZGVudCB0cmFuc2FjdGlvbiwKKyAqIGVuc3VyaW5nIHRoYXQgdGhlIGNvbmZs aWN0IGxvZyBlbnRyeSBpcyBkdXJhYmxlIGFuZCBub3Qgcm9sbGVkIGJhY2sKKyAqIHRvZ2V0aGVy IHdpdGggdGhlIGZhaWxlZCBhcHBseSB0cmFuc2FjdGlvbi4KKyAqLwordm9pZAorUHJvY2Vzc1Bl bmRpbmdDb25mbGljdExvZ1R1cGxlKHZvaWQpCit7CisJUmVsYXRpb24JY29uZmxpY3Rsb2dyZWw7 CisJQ29uZmxpY3RMb2dEZXN0IGRlc3Q7CisKKwkvKiBOb3RoaW5nIHRvIGRvICovCisJaWYgKHBl bmRpbmdfY29uZmxpY3RfbG9nLnR1cGxlID09IE5VTEwpCisJCXJldHVybjsKKworCS8qCisJICog SW5zZXJ0IHRoZSBkZWZlcnJlZCBjb25mbGljdCBsb2cgdHVwbGUgaW4gaXRzIG93biB0cmFuc2Fj dGlvbi4gIEEKKwkgKiBmYWlsdXJlIGhlcmUgKGUuZy4gYW4gb3V0LW9mLWRpc2stc3BhY2UgZXJy b3IpIGlzIHRyZWF0ZWQgbGlrZSBhbnkgb3RoZXIKKwkgKiBhcHBseSBlcnJvciBhbmQgcmFpc2Vz IGFuIEVSUk9SOyBzdWNoIGZhaWx1cmVzIGFyZSBleHBlY3RlZCB0byBiZSByYXJlCisJICogYW5k IHBlcnNpc3RlbnQuICBDYWxsZXJzIG11c3QgdGhlcmVmb3JlIGhhdmUgYWxyZWFkeSByZXBvcnRl ZCAoYW5kCisJICogY2xlYXJlZCkgYW55IGluLXByb2dyZXNzIGFwcGx5IGVycm9yIGJlZm9yZSBj YWxsaW5nIHRoaXMsIHNvIHRoYXQgdGhpcworCSAqIGVycm9yIGRvZXMgbm90IG1hc2sgdGhlIG9y aWdpbmFsIG9uZS4KKwkgKi8KKwlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCVB1c2hBY3Rp dmVTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCisJLyoKKwkgKiBUZXN0IGhv b2s6IHBhdXNlIGhlcmUgc28gYSBUQVAgdGVzdCBjYW4gdGFrZSBhIGNvbmZsaWN0aW5nIGxvY2sg b24KKwkgKiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGJlZm9yZSB0aGlzIHRyYW5zYWN0aW9uIHRy aWVzIHRvIG9wZW4gaXQuCisJICogU2VlIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOV9wYV9j b25mbGljdF9sb2dfbG9ja193YWl0LnBsLgorCSAqLworCUlOSkVDVElPTl9QT0lOVCgiY2x0LXBl bmRpbmctZmx1c2gtYmVmb3JlLW9wZW4iLCBOVUxMKTsKKworCS8qIE9wZW4gdGhlIGNvbmZsaWN0 IGxvZyB0YWJsZSBhbmQgaW5zZXJ0IHRoZSB0dXBsZS4gKi8KKwljb25mbGljdGxvZ3JlbCA9IEdl dENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKCZkZXN0KTsKKworCWlmIChjb25mbGljdGxvZ3JlbCAh PSBOVUxMKQorCXsKKwkJSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisJ CXRhYmxlX2Nsb3NlKGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwl9CisJZWxz ZQorCXsKKwkJLyoKKwkJICogVGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgZHJvcHBlZCBjb25j dXJyZW50bHkgKGUuZy4gYnkgYW4gQUxURVIKKwkJICogU1VCU0NSSVBUSU9OIHRoYXQgY2hhbmdl ZCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24pIGFmdGVyIHRoZQorCQkgKiBjb25mbGljdCB3YXMg YWxyZWFkeSByZXBvcnRlZCB0byB0aGUgc2VydmVyIGxvZyBieQorCQkgKiBSZXBvcnRBcHBseUNv bmZsaWN0KCkuICBOb3RoaW5nIG1vcmUgdG8gZG87IGp1c3QgZGlzY2FyZCB0aGUgcHJlcGFyZWQK KwkJICogdHVwbGUgYW5kIGl0cyBjb250ZXh0IHN0cmluZy4KKwkJICovCisJCWhlYXBfZnJlZXR1 cGxlKHBlbmRpbmdfY29uZmxpY3RfbG9nLnR1cGxlKTsKKwkJcGVuZGluZ19jb25mbGljdF9sb2cu dHVwbGUgPSBOVUxMOworCQlpZiAocGVuZGluZ19jb25mbGljdF9sb2cuZXJyY29udGV4dF9zdHIp CisJCXsKKwkJCXBmcmVlKHBlbmRpbmdfY29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3RyKTsKKwkJ CXBlbmRpbmdfY29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3RyID0gTlVMTDsKKwkJfQorCX0KKwor CVBvcEFjdGl2ZVNuYXBzaG90KCk7CisJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiB9CiAK IC8qCkBAIC0zMjYsNiArNTczLDEwMCBAQCBJbml0Q29uZmxpY3RJbmRleGVzKFJlc3VsdFJlbElu Zm8gKnJlbEluZm8pCiAJcmVsSW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzID0gdW5p cXVlSW5kZXhlczsKIH0KIAorLyoKKyAqIEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlCisgKgor ICogRmV0Y2hlcyBjb25mbGljdCBsb2dnaW5nIG1ldGFkYXRhIGZyb20gdGhlIGNhY2hlZCBNeVN1 YnNjcmlwdGlvbiBwb2ludGVyLgorICogU2V0cyB0aGUgZGVzdGluYXRpb24gZW51bSBpbiAqbG9n X2Rlc3QgYW5kLCBpZiBhIHRhYmxlIGlzIG9uZSBvZiB0aGUKKyAqIGRlc3RpbmF0aW9ucywgb3Bl bnMgYW5kIHJldHVybnMgdGhlIHJlbGF0aW9uIGhhbmRsZSBmb3IgdGhlIGNvbmZsaWN0IGxvZwor ICogdGFibGUuCisgKgorICogVGhlIHRhYmxlIGlzIG9wZW5lZCB3aXRoIHRyeV90YWJsZV9vcGVu KCksIHNvIE5VTEwgaXMgcmV0dXJuZWQgaWYgdGhlCisgKiBjb25mbGljdCBsb2cgdGFibGUgaGFz IGJlZW4gZHJvcHBlZCBjb25jdXJyZW50bHkgKGUuZy4gYnkgYW4gQUxURVIKKyAqIFNVQlNDUklQ VElPTiB0aGF0IGNoYW5nZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uKS4gIENhbGxlcnMgbXVz dCB0cmVhdCBhCisgKiBOVUxMIHJlc3VsdCBmb3IgYSB0YWJsZSBkZXN0aW5hdGlvbiBhcyAidGFi bGUgdW5hdmFpbGFibGUiIGFuZCBmYWxsIGJhY2sgdG8KKyAqIHNlcnZlci1sb2cgcmVwb3J0aW5n IHJhdGhlciB0aGFuIGZhaWxpbmcuCisgKi8KK1JlbGF0aW9uCitHZXRDb25mbGljdExvZ0Rlc3RB bmRUYWJsZShDb25mbGljdExvZ0Rlc3QgKmxvZ19kZXN0KQoreworCU9pZAkJCWNvbmZsaWN0bG9n cmVsaWQ7CisKKwkvKgorCSAqIENvbnZlcnQgdGhlIHRleHQgbG9nIGRlc3RpbmF0aW9uIHRvIHRo ZSBpbnRlcm5hbCBlbnVtLiAgTXlTdWJzY3JpcHRpb24KKwkgKiBhbHJlYWR5IGNvbnRhaW5zIHRo ZSBkYXRhIGZyb20gcGdfc3Vic2NyaXB0aW9uLgorCSAqLworCSpsb2dfZGVzdCA9IEdldENvbmZs aWN0TG9nRGVzdChNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dkZXN0KTsKKworCS8qIFF1aWNr IGV4aXQgaWYgYSBjb25mbGljdCBsb2cgdGFibGUgd2FzIG5vdCByZXF1ZXN0ZWQuICovCisJaWYg KCFDT05GTElDVFNfTE9HR0VEX1RPX1RBQkxFKCpsb2dfZGVzdCkpCisJCXJldHVybiBOVUxMOwor CisJY29uZmxpY3Rsb2dyZWxpZCA9IE15U3Vic2NyaXB0aW9uLT5jb25mbGljdGxvZ3JlbGlkOwor CisJQXNzZXJ0KE9pZElzVmFsaWQoY29uZmxpY3Rsb2dyZWxpZCkpOworCisJLyoKKwkgKiBVc2Ug dHJ5X3RhYmxlX29wZW4oKTogdGhlIHRhYmxlIG1heSBoYXZlIGJlZW4gZHJvcHBlZCBjb25jdXJy ZW50bHkgYnkgYW4KKwkgKiBBTFRFUiBTVUJTQ1JJUFRJT04gdGhhdCBjaGFuZ2VkIGNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbi4gIFJldHVybmluZyBOVUxMCisJICogbGV0cyB0aGUgY2FsbGVyIGZh bGwgYmFjayB0byB0aGUgc2VydmVyIGxvZyBpbnN0ZWFkIG9mIGZhaWxpbmcuCisJICovCisJcmV0 dXJuIHRyeV90YWJsZV9vcGVuKGNvbmZsaWN0bG9ncmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwor fQorCisvKgorICogRXJyb3IgY29udGV4dCBjYWxsYmFjayBmb3IgZmFpbHVyZXMgd2hpbGUgaW5z ZXJ0aW5nIGludG8gdGhlIGNvbmZsaWN0IGxvZworICogdGFibGUuICBBZGRzIGEgbGluZSBpZGVu dGlmeWluZyB0aGUgY29uZmxpY3QgdGhhdCB3YXMgYmVpbmcgbG9nZ2VkLgorICovCitzdGF0aWMg dm9pZAorY29uZmxpY3RfbG9nX2luc2VydF9lcnJjb250ZXh0KHZvaWQgKmFyZykKK3sKKwljaGFy CSAgICpjdHggPSAoY2hhciAqKSBhcmc7CisKKwlpZiAoY3R4KQorCQllcnJjb250ZXh0KCIlcyIs IGN0eCk7Cit9CisKKy8qCisgKiBJbnNlcnRDb25mbGljdExvZ1R1cGxlCisgKgorICogSW5zZXJ0 IGNvbmZsaWN0IGxvZyB0dXBsZSBpbnRvIHRoZSBjb25mbGljdCBsb2cgdGFibGUuIEl0IHVzZXMK KyAqIEhFQVBfSU5TRVJUX05PX0xPR0lDQUwgdG8gZXhwbGljaXRseSBibG9jayBsb2dpY2FsIGRl Y29kaW5nIG9mIHRoZSB0dXBsZQorICogaW5zZXJ0ZWQgaW50byB0aGUgY29uZmxpY3QgbG9nIHRh YmxlLgorICovCit2b2lkCitJbnNlcnRDb25mbGljdExvZ1R1cGxlKFJlbGF0aW9uIGNvbmZsaWN0 bG9ncmVsKQoreworCUVycm9yQ29udGV4dENhbGxiYWNrIGVycmNhbGxiYWNrOworCisJLyogQSB2 YWxpZCB0dXBsZSBtdXN0IGJlIHByZXBhcmVkIGFuZCBzdG9yZWQgaW4gTXlMb2dpY2FsUmVwV29y a2VyLiAqLworCUFzc2VydChwZW5kaW5nX2NvbmZsaWN0X2xvZy50dXBsZSAhPSBOVUxMKTsKKwor CS8qCisJICogU2V0IHVwIGFuIGVycm9yIGNvbnRleHQgc28gdGhhdCBhIGZhaWx1cmUgdG8gaW5z ZXJ0IChlLmcuIHRoZSBjb25mbGljdAorCSAqIGxvZyB0YWJsZSB3YXMgZHJvcHBlZCwgb3IgYW4g b3V0LW9mLXNwYWNlIGVycm9yKSBjYXJyaWVzIGluZm9ybWF0aW9uCisJICogaWRlbnRpZnlpbmcg dGhlIGNvbmZsaWN0IHdlIHdlcmUgdHJ5aW5nIHRvIGxvZy4KKwkgKi8KKwllcnJjYWxsYmFjay5j YWxsYmFjayA9IGNvbmZsaWN0X2xvZ19pbnNlcnRfZXJyY29udGV4dDsKKwllcnJjYWxsYmFjay5h cmcgPSBwZW5kaW5nX2NvbmZsaWN0X2xvZy5lcnJjb250ZXh0X3N0cjsKKwllcnJjYWxsYmFjay5w cmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CisJZXJyb3JfY29udGV4dF9zdGFjayA9ICZl cnJjYWxsYmFjazsKKworCWhlYXBfaW5zZXJ0KGNvbmZsaWN0bG9ncmVsLCBwZW5kaW5nX2NvbmZs aWN0X2xvZy50dXBsZSwKKwkJCQlHZXRDdXJyZW50Q29tbWFuZElkKHRydWUpLCBIRUFQX0lOU0VS VF9OT19MT0dJQ0FMLCBOVUxMKTsKKworCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxsYmFj ay5wcmV2aW91czsKKworCS8qIEZyZWUgdGhlIGNvbmZsaWN0IGxvZyB0dXBsZSBhbmQgaXRzIGNv bnRleHQgc3RyaW5nLiAqLworCWhlYXBfZnJlZXR1cGxlKHBlbmRpbmdfY29uZmxpY3RfbG9nLnR1 cGxlKTsKKwlwZW5kaW5nX2NvbmZsaWN0X2xvZy50dXBsZSA9IE5VTEw7CisJaWYgKHBlbmRpbmdf Y29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3RyKQorCXsKKwkJcGZyZWUocGVuZGluZ19jb25mbGlj dF9sb2cuZXJyY29udGV4dF9zdHIpOworCQlwZW5kaW5nX2NvbmZsaWN0X2xvZy5lcnJjb250ZXh0 X3N0ciA9IE5VTEw7CisJfQorfQorCiAvKgogICogQWRkIFNRTFNUQVRFIGVycm9yIGNvZGUgdG8g dGhlIGN1cnJlbnQgY29uZmxpY3QgcmVwb3J0LgogICovCkBAIC03NTksNiArMTEwMCw0MCBAQCBn ZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgQ29u ZmxpY3RUeXBlIHR5cGUsCiAJfQogfQogCisvKgorICogSGVscGVyIGZ1bmN0aW9uIHRvIGV4dHJh Y3QgdGhlICJyYXciIGluZGV4IGtleSBEYXR1bXMgYW5kIHRoZWlyIG51bGwgZmxhZ3MKKyAqIGZy b20gYSBUdXBsZVRhYmxlU2xvdCwgZ2l2ZW4gYW4gYWxyZWFkeSBvcGVuIGluZGV4IGRlc2NyaXB0 b3IuCisgKiBUaGlzIGlzIHRoZSByZXVzYWJsZSBjb3JlIGxvZ2ljLgorICovCitzdGF0aWMgdm9p ZAorYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xvdChFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24g bG9jYWxyZWwsCisJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LAorCQkJCQkJCSBSZWxhdGlv biBpbmRleERlc2MsIERhdHVtICp2YWx1ZXMsCisJCQkJCQkJIGJvb2wgKmlzbnVsbCkKK3sKKwlU dXBsZVRhYmxlU2xvdCAqdGFibGVzbG90ID0gc2xvdDsKKworCS8qCisJICogSWYgdGhlIHNsb3Qg aXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50byBhIGhlYXAgdHVwbGUgc2xvdCBhcworCSAq IEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0aCBoZWFwIHR1cGxlIHNsb3RzLgorCSAqLwor CWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwl7CisJCS8qIFNsb3QgaXMgY3JlYXRlZCB3aXRo aW4gdGhlIEVTdGF0ZSdzIHR1cGxlIHRhYmxlICovCisJCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3Rf Y3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5lc190dXBsZVRhYmxlKTsKKwkJdGFibGVzbG90ID0g RXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xvdCk7CisJfQorCisJLyoKKwkgKiBJbml0aWFsaXpl IGVjeHRfc2NhbnR1cGxlIGZvciBwb3RlbnRpYWwgdXNlIGluIEZvcm1JbmRleERhdHVtCisJICov CisJR2V0UGVyVHVwbGVFeHByQ29udGV4dChlc3RhdGUpLT5lY3h0X3NjYW50dXBsZSA9IHRhYmxl c2xvdDsKKworCS8qIEZvcm0gdGhlIGluZGV4IGRhdHVtcyAqLworCUZvcm1JbmRleERhdHVtKEJ1 aWxkSW5kZXhJbmZvKGluZGV4RGVzYyksIHRhYmxlc2xvdCwgZXN0YXRlLCB2YWx1ZXMsCisJCQkJ ICAgaXNudWxsKTsKK30KKwogLyoKICAqIEhlbHBlciBmdW5jdGlvbnMgdG8gY29uc3RydWN0IGEg c3RyaW5nIGRlc2NyaWJpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGluZGV4CiAgKiBlbnRyeS4gU2Vl IEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIGZvciBkZXRhaWxzLgpAQCAtNzc0LDQxICsxMTQ5 LDM0OSBAQCBidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBs b2NhbHJlbCwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJUmVsYXRpb24JaW5kZXhEZXNjOwogCURh dHVtCQl2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOwogCWJvb2wJCWlzbnVsbFtJTkRFWF9NQVhfS0VZ U107Ci0JVHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xvdCA9IHNsb3Q7CiAKLQlpZiAoIXRhYmxlc2xv dCkKKwlpZiAoIXNsb3QpCiAJCXJldHVybiBOVUxMOwogCiAJQXNzZXJ0KENoZWNrUmVsYXRpb25P aWRMb2NrZWRCeU1lKGluZGV4b2lkLCBSb3dFeGNsdXNpdmVMb2NrLCB0cnVlKSk7CiAKIAlpbmRl eERlc2MgPSBpbmRleF9vcGVuKGluZGV4b2lkLCBOb0xvY2spOwogCi0JLyoKLQkgKiBJZiB0aGUg c2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBpdCBpbnRvIGEgaGVhcCB0dXBsZSBzbG90IGFz Ci0JICogRm9ybUluZGV4RGF0dW0gb25seSB3b3JrcyB3aXRoIGhlYXAgdHVwbGUgc2xvdHMuCi0J ICovCi0JaWYgKFRUU19JU19WSVJUVUFMKHNsb3QpKQorCWJ1aWxkX2luZGV4X2RhdHVtc19mcm9t X3Nsb3QoZXN0YXRlLCBsb2NhbHJlbCwgc2xvdCwgaW5kZXhEZXNjLCB2YWx1ZXMsCisJCQkJCQkJ CSBpc251bGwpOworCisJaW5kZXhfdmFsdWUgPSBCdWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbihp bmRleERlc2MsIHZhbHVlcywgaXNudWxsKTsKKworCWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9M b2NrKTsKKworCXJldHVybiBpbmRleF92YWx1ZTsKK30KKworLyoKKyAqIHR1cGxlX3RhYmxlX3Ns b3RfdG9fanNvbl9kYXR1bQorICoKKyAqIEhlbHBlciBmdW5jdGlvbiB0byBjb252ZXJ0IGEgVHVw bGVUYWJsZVNsb3QgdG8gSlNPTi4KKyAqLworc3RhdGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90 X3RvX2pzb25fZGF0dW0oVHVwbGVUYWJsZVNsb3QgKnNsb3QpCit7CisJSGVhcFR1cGxlCXR1cGxl OworCURhdHVtCQlkYXR1bTsKKwlEYXR1bQkJanNvbjsKKworCUFzc2VydChzbG90ICE9IE5VTEwp OworCisJdHVwbGUgPSBFeGVjQ29weVNsb3RIZWFwVHVwbGUoc2xvdCk7CisJZGF0dW0gPSBoZWFw X2NvcHlfdHVwbGVfYXNfZGF0dW0odHVwbGUsIHNsb3QtPnR0c190dXBsZURlc2NyaXB0b3IpOwor CisJanNvbiA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGRhdHVtKTsKKwloZWFw X2ZyZWV0dXBsZSh0dXBsZSk7CisKKwlyZXR1cm4ganNvbjsKK30KKworLyoKKyAqIHR1cGxlX3Rh YmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbgorICoKKyAqIEZldGNoIHJlcGxpY2EgaWRlbnRpdHkg a2V5IGZyb20gdGhlIHR1cGxlIHRhYmxlIHNsb3QgYW5kIGNvbnZlcnQgaW50byBhCisgKiBKU09O IGRhdHVtLgorICovCitzdGF0aWMgRGF0dW0KK3R1cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBf anNvbihFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gbG9jYWxyZWwsCisJCQkJCQkJCSAgT2lkIGlu ZGV4aWQsIFR1cGxlVGFibGVTbG90ICpzbG90KQoreworCVJlbGF0aW9uCWluZGV4RGVzYzsKKwlE YXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKKwlib29sCQlpc251bGxbSU5ERVhfTUFYX0tF WVNdOworCUhlYXBUdXBsZQl0dXBsZTsKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlEYXR1bQkJZGF0 dW07CisKKwlBc3NlcnQoc2xvdCAhPSBOVUxMKTsKKworCUFzc2VydChDaGVja1JlbGF0aW9uT2lk TG9ja2VkQnlNZShpbmRleGlkLCBSb3dFeGNsdXNpdmVMb2NrLCB0cnVlKSk7CisKKwlpbmRleERl c2MgPSBpbmRleF9vcGVuKGluZGV4aWQsIE5vTG9jayk7CisKKwlidWlsZF9pbmRleF9kYXR1bXNf ZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNsb3QsIGluZGV4RGVzYywgdmFsdWVzLAorCQkJ CQkJCQkgaXNudWxsKTsKKwl0dXBkZXNjID0gQ3JlYXRlVHVwbGVEZXNjQ29weShSZWxhdGlvbkdl dERlc2NyKGluZGV4RGVzYykpOworCisJLyogQmxlc3MgdGhlIHR1cGRlc2Mgc28gaXQgY2FuIGJl IGxvb2tlZCB1cCBieSByb3dfdG9fanNvbi4gKi8KKwlCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsK KworCS8qIEZvcm0gdGhlIHJlcGxpY2EgaWRlbnRpdHkgdHVwbGUuICovCisJdHVwbGUgPSBoZWFw X2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBpc251bGwpOworCWRhdHVtID0gaGVhcF9jb3B5 X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCB0dXBkZXNjKTsKKworCWhlYXBfZnJlZXR1cGxlKHR1cGxl KTsKKwlGcmVlVHVwbGVEZXNjKHR1cGRlc2MpOworCWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9M b2NrKTsKKworCS8qIENvbnZlcnQgdG8gYSBKU09OIGRhdHVtLiAqLworCXJldHVybiBEaXJlY3RG dW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1bSk7Cit9CisKKy8qCisgKiBidWlsZF9jb25m bGljdF90dXBsZWRlc2MKKyAqCisgKiBCdWlsZCBhbmQgYmxlc3MgYSB0dXBsZSBkZXNjcmlwdG9y IGZvciB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGJhc2VkIG9uIHRoZQorICogcHJlZGVmaW5lZCBM b2NhbENvbmZsaWN0U2NoZW1hLgorICovCitzdGF0aWMgVHVwbGVEZXNjCitidWlsZF9jb25mbGlj dF90dXBsZWRlc2Modm9pZCkKK3sKKwlzdGF0aWMgVHVwbGVEZXNjIGNhY2hlZF90dXBkZXNjID0g TlVMTDsKKworCWlmIChjYWNoZWRfdHVwZGVzYyA9PSBOVUxMKQogCXsKLQkJdGFibGVzbG90ID0g dGFibGVfc2xvdF9jcmVhdGUobG9jYWxyZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCQl0 YWJsZXNsb3QgPSBFeGVjQ29weVNsb3QodGFibGVzbG90LCBzbG90KTsKKwkJTWVtb3J5Q29udGV4 dCBvbGRjeHQ7CisKKwkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKENhY2hlTWVtb3J5 Q29udGV4dCk7CisKKwkJY2FjaGVkX3R1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhO VU1fTE9DQUxfQ09ORkxJQ1RfQVRUUlMpOworCisJCWZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0xP Q0FMX0NPTkZMSUNUX0FUVFJTOyBpKyspCisJCQlUdXBsZURlc2NJbml0RW50cnkoY2FjaGVkX3R1 cGRlc2MsCisJCQkJCQkJICAgKEF0dHJOdW1iZXIpIChpICsgMSksCisJCQkJCQkJICAgTG9jYWxD b25mbGljdFNjaGVtYVtpXS5hdHRuYW1lLAorCQkJCQkJCSAgIExvY2FsQ29uZmxpY3RTY2hlbWFb aV0uYXR0dHlwaWQsCisJCQkJCQkJICAgLTEsIDApOworCisJCVR1cGxlRGVzY0ZpbmFsaXplKGNh Y2hlZF90dXBkZXNjKTsKKworCQkvKgorCQkgKiBCbGVzcyBvbmNlIHNvIGl0IGNhbiBiZSB1c2Vk IGFzIGEgUkVDT1JEIHR5cGUgKGUuZy4gZm9yCisJCSAqIHJvd190b19qc29uIG9yIG90aGVyIHJl Y29yZC1iYXNlZCBvcGVyYXRpb25zKS4KKwkJICovCisJCUJsZXNzVHVwbGVEZXNjKGNhY2hlZF90 dXBkZXNjKTsKKworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIAl9CiAKLQkvKgot CSAqIEluaXRpYWxpemUgZWN4dF9zY2FudHVwbGUgZm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUlu ZGV4RGF0dW0gd2hlbgotCSAqIGluZGV4IGV4cHJlc3Npb25zIGFyZSBwcmVzZW50LgotCSAqLwot CUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNs b3Q7CisJcmV0dXJuIGNhY2hlZF90dXBkZXNjOworfQogCi0JLyoKLQkgKiBUaGUgdmFsdWVzL251 bGxzIGFycmF5cyBwYXNzZWQgdG8gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24gc2hvdWxkIGJl Ci0JICogdGhlIHJlc3VsdHMgb2YgRm9ybUluZGV4RGF0dW0sIHdoaWNoIGFyZSB0aGUgInJhdyIg aW5wdXQgdG8gdGhlIGluZGV4Ci0JICogQU0uCi0JICovCi0JRm9ybUluZGV4RGF0dW0oQnVpbGRJ bmRleEluZm8oaW5kZXhEZXNjKSwgdGFibGVzbG90LCBlc3RhdGUsIHZhbHVlcywgaXNudWxsKTsK Ky8qCisgKiBCdWlsZHMgdGhlIGxvY2FsIGNvbmZsaWN0cyBKU09OIGFycmF5IGNvbHVtbiBmcm9t IHRoZSBsaXN0IG9mCisgKiBDb25mbGljdFR1cGxlSW5mbyBvYmplY3RzLgorICoKKyAqIEV4YW1w bGUgb3V0cHV0IHN0cnVjdHVyZToKKyAqIFsgeyAieGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjog Ii4uLiIsICJvcmlnaW4iOiAiLi4uIiwgInR1cGxlIjogey4uLn0gfSwgLi4uIF0KKyAqLworc3Rh dGljIERhdHVtCitidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9hcnJheShFU3RhdGUgKmVzdGF0 ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJ CQkJCQkJCSBMaXN0ICpjb25mbGljdHR1cGxlcykKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0 CSAgICpqc29uX2RhdHVtcyA9IE5JTDsKKwlEYXR1bQkgICAqanNvbl9kYXR1bV9hcnJheTsKKwlE YXR1bQkJanNvbl9hcnJheV9kYXR1bTsKKwlpbnQJCQludW1fY29uZmxpY3RzOworCWludAkJCWk7 CisJaW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBieXZhbDsKKwljaGFyCQl0eXBhbGlnbjsKKwlU dXBsZURlc2MJdHVwZGVzYzsKIAotCWluZGV4X3ZhbHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3Jp cHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisJLyogQnVpbGQgbG9jYWwgY29uZmxp Y3RzIHR1cGxlIGRlc2NyaXB0b3IuICovCisJdHVwZGVzYyA9IGJ1aWxkX2NvbmZsaWN0X3R1cGxl ZGVzYygpOwogCi0JaW5kZXhfY2xvc2UoaW5kZXhEZXNjLCBOb0xvY2spOworCS8qIFByb2Nlc3Mg bG9jYWwgY29uZmxpY3QgdHVwbGUgbGlzdCBhbmQgcHJlcGFyZSBhbiBhcnJheSBvZiBKU09OLiAq LworCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGlj dHR1cGxlcykKKwl7CisJCURhdHVtCQl2YWx1ZXNbTlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTXSA9 IHswfTsKKwkJYm9vbAkJbnVsbHNbTlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwkJ Y2hhcgkgICAqb3JpZ2luX25hbWUgPSBOVUxMOworCQlIZWFwVHVwbGUJdHVwbGU7CisJCURhdHVt CQlqc29uX2RhdHVtOworCQlpbnQJCQlhdHRubzsKKworCQlhdHRubyA9IDA7CisJCXZhbHVlc1th dHRubysrXSA9IFRyYW5zYWN0aW9uSWRHZXREYXR1bShjb25mbGljdHR1cGxlLT54bWluKTsKKwor CQlpZiAoY29uZmxpY3R0dXBsZS0+dHMpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSBUaW1lc3RhbXBU ekdldERhdHVtKGNvbmZsaWN0dHVwbGUtPnRzKTsKKwkJZWxzZQorCQkJbnVsbHNbYXR0bm8rK10g PSB0cnVlOwogCi0JcmV0dXJuIGluZGV4X3ZhbHVlOworCQlpZiAoY29uZmxpY3R0dXBsZS0+b3Jp Z2luICE9IEludmFsaWRSZXBsT3JpZ2luSWQpCisJCQlyZXBsb3JpZ2luX2J5X29pZChjb25mbGlj dHR1cGxlLT5vcmlnaW4sIHRydWUsICZvcmlnaW5fbmFtZSk7CisKKwkJLyogU3RvcmUgZW1wdHkg c3RyaW5nIGlmIG9yaWdpbiBuYW1lIGZvciB0aGUgdHVwbGUgaXMgTlVMTC4gKi8KKwkJaWYgKG9y aWdpbl9uYW1lICE9IE5VTEwpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERh dHVtKG9yaWdpbl9uYW1lKTsKKwkJZWxzZQorCQkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJ CS8qCisJCSAqIEFkZCB0aGUgY29uZmxpY3Rpbmcga2V5IHZhbHVlcyBpbiB0aGUgY2FzZSBvZiBh IHVuaXF1ZSBjb25zdHJhaW50CisJCSAqIHZpb2xhdGlvbi4KKwkJICovCisJCWlmIChjb25mbGlj dF90eXBlID09IENUX0lOU0VSVF9FWElTVFMgfHwKKwkJCWNvbmZsaWN0X3R5cGUgPT0gQ1RfVVBE QVRFX0VYSVNUUyB8fAorCQkJY29uZmxpY3RfdHlwZSA9PSBDVF9NVUxUSVBMRV9VTklRVUVfQ09O RkxJQ1RTKQorCQl7CisJCQlPaWQJaW5kZXhvaWQgPSBjb25mbGljdHR1cGxlLT5pbmRleG9pZDsK KworCQkJQXNzZXJ0KE9pZElzVmFsaWQoaW5kZXhvaWQpICYmIGNvbmZsaWN0dHVwbGUtPnNsb3Qg JiYKKwkJCQkgICBDaGVja1JlbGF0aW9uT2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVz aXZlTG9jaywKKwkJCQkJCQkJCQkJICB0cnVlKSk7CisJCQl2YWx1ZXNbYXR0bm8rK10gPQorCQkJ CQl0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJ CQkJCQkJICBpbmRleG9pZCwKKwkJCQkJCQkJCQkJCQkgIGNvbmZsaWN0dHVwbGUtPnNsb3QpOwor CQl9CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCQkvKiBDb252ZXJ0IGNv bmZsaWN0aW5nIHR1cGxlIHRvIEpTT04gZGF0dW0uICovCisJCWlmIChjb25mbGljdHR1cGxlLT5z bG90KQorCQkJdmFsdWVzW2F0dG5vXSA9IHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShj b25mbGljdHR1cGxlLT5zbG90KTsKKwkJZWxzZQorCQkJbnVsbHNbYXR0bm9dID0gdHJ1ZTsKKwor CQlBc3NlcnQoYXR0bm8gKyAxID09IE5VTV9MT0NBTF9DT05GTElDVF9BVFRSUyk7CisKKwkJdHVw bGUgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisKKwkJanNvbl9k YXR1bSA9IGhlYXBfY29weV90dXBsZV9hc19kYXR1bSh0dXBsZSwgdHVwZGVzYyk7CisKKwkJLyoK KwkJICogQnVpbGQgdGhlIGhpZ2hlciBsZXZlbCBKU09OIGRhdHVtIGluIGZvcm1hdCBkZXNjcmli ZWQgaW4gZnVuY3Rpb24KKwkJICogaGVhZGVyLgorCQkgKi8KKwkJanNvbl9kYXR1bSA9IERpcmVj dEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGpzb25fZGF0dW0pOworCisJCS8qIERvbmUgd2l0 aCB0aGUgdGVtcG9yYXJ5IHR1cGxlLiAqLworCQloZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisKKwkJ LyogQWRkIHRvIHRoZSBhcnJheSBlbGVtZW50LiAqLworCQlqc29uX2RhdHVtcyA9IGxhcHBlbmQo anNvbl9kYXR1bXMsICh2b2lkICopIGpzb25fZGF0dW0pOworCX0KKworCW51bV9jb25mbGljdHMg PSBsaXN0X2xlbmd0aChqc29uX2RhdHVtcyk7CisKKwlqc29uX2RhdHVtX2FycmF5ID0gcGFsbG9j X2FycmF5KERhdHVtLCBudW1fY29uZmxpY3RzKTsKKworCWkgPSAwOworCWZvcmVhY2gobGMsIGpz b25fZGF0dW1zKQorCXsKKwkJanNvbl9kYXR1bV9hcnJheVtpXSA9IChEYXR1bSkgbGZpcnN0KGxj KTsKKwkJaSsrOworCX0KKworCS8qIENvbnN0cnVjdCB0aGUgSlNPTiBhcnJheSBEYXR1bS4gKi8K KwlnZXRfdHlwbGVuYnl2YWxhbGlnbihKU09OT0lELCAmdHlwbGVuLCAmdHlwYnl2YWwsICZ0eXBh bGlnbik7CisJanNvbl9hcnJheV9kYXR1bSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJy YXkoanNvbl9kYXR1bV9hcnJheSwKKwkJCQkJCQkJCQkJCQkgICBudW1fY29uZmxpY3RzLAorCQkJ CQkJCQkJCQkJCSAgIEpTT05PSUQsCisJCQkJCQkJCQkJCQkJICAgdHlwbGVuLAorCQkJCQkJCQkJ CQkJCSAgIHR5cGJ5dmFsLAorCQkJCQkJCQkJCQkJCSAgIHR5cGFsaWduKSk7CisJcGZyZWUoanNv bl9kYXR1bV9hcnJheSk7CisKKwlyZXR1cm4ganNvbl9hcnJheV9kYXR1bTsKK30KKworLyoKKyAq IHByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlCisgKgorICogVGhpcyByb3V0aW5lIHByZXBhcmVz IGEgdHVwbGUgZGV0YWlsaW5nIGEgY29uZmxpY3QgZW5jb3VudGVyZWQgZHVyaW5nCisgKiBsb2dp Y2FsIHJlcGxpY2F0aW9uLiBUaGUgcHJlcGFyZWQgdHVwbGUgd2lsbCBiZSBzdG9yZWQgaW4KKyAq IHBlbmRpbmdfY29uZmxpY3RfbG9nLnR1cGxlIHdoaWNoIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRv IHRoZQorICogY29uZmxpY3QgbG9nIHRhYmxlIGJ5IGNhbGxpbmcgSW5zZXJ0Q29uZmxpY3RMb2dU dXBsZS4KKyAqLworc3RhdGljIHZvaWQKK3ByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKEVTdGF0 ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkgICBSZWxhdGlvbiBjb25mbGljdGxvZ3Jl bCwKKwkJCQkJCSAgIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJICAgVHVwbGVU YWJsZVNsb3QgKnNlYXJjaHNsb3QsCisJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1cGxlcywKKwkJ CQkJCSAgIFR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90KQoreworCURhdHVtCQl2YWx1ZXNbTlVN X0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwlib29sCQludWxsc1tOVU1fQ09ORkxJQ1RfQVRUUlNd ID0gezB9OworCWludAkJCWF0dG5vOworCWNoYXIJICAgKnJlbW90ZV9vcmlnaW4gPSBOVUxMOwor CU1lbW9yeUNvbnRleHQJb2xkY3R4OworCisJQXNzZXJ0KHBlbmRpbmdfY29uZmxpY3RfbG9nLnR1 cGxlID09IE5VTEwpOworCisJLyogUG9wdWxhdGUgdGhlIHZhbHVlcyBhbmQgbnVsbHMgYXJyYXlz LiAqLworCWF0dG5vID0gMDsKKwl2YWx1ZXNbYXR0bm8rK10gPSBPYmplY3RJZEdldERhdHVtKFJl bGF0aW9uR2V0UmVsaWQocmVsKSk7CisKKwl2YWx1ZXNbYXR0bm8rK10gPQorCQkJQ1N0cmluZ0dl dFRleHREYXR1bShnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSkp OworCisJdmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHREYXR1bShSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZWwpKTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0oQ29uZmxpY3RUeXBlTmFtZXNbY29uZmxpY3RfdHlwZV0pOworCisJaWYgKFRyYW5zYWN0aW9u SWRJc1ZhbGlkKHJlbW90ZV94aWQpKQorCQl2YWx1ZXNbYXR0bm8rK10gPSBUcmFuc2FjdGlvbklk R2V0RGF0dW0ocmVtb3RlX3hpZCk7CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisK Kwl2YWx1ZXNbYXR0bm8rK10gPSBMU05HZXREYXR1bShyZW1vdGVfZmluYWxfbHNuKTsKKworCWlm IChyZW1vdGVfY29tbWl0X3RzID4gMCkKKwkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1wVHpH ZXREYXR1bShyZW1vdGVfY29tbWl0X3RzKTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1 ZTsKKworCWlmIChyZXBsb3JpZ2luX3hhY3Rfc3RhdGUub3JpZ2luICE9IEludmFsaWRSZXBsT3Jp Z2luSWQpCisJCXJlcGxvcmlnaW5fYnlfb2lkKHJlcGxvcmlnaW5feGFjdF9zdGF0ZS5vcmlnaW4s IHRydWUsICZyZW1vdGVfb3JpZ2luKTsKKworCWlmIChyZW1vdGVfb3JpZ2luICE9IE5VTEwpCisJ CXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocmVtb3RlX29yaWdpbik7CisJ ZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAoIVR1cElzTnVsbChyZW1vdGVz bG90KSkKKwkJdmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVt KHJlbW90ZXNsb3QpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJaWYgKCFU dXBJc051bGwoc2VhcmNoc2xvdCkpCisJeworCQlPaWQJCXJlcGxpY2FfaW5kZXggPSBHZXRSZWxh dGlvbklkZW50aXR5T3JQSyhyZWwpOworCisJCS8qCisJCSAqIElmIHRoZSB0YWJsZSBoYXMgYSB2 YWxpZCByZXBsaWNhIGlkZW50aXR5IGluZGV4LCBidWlsZCB0aGUgaW5kZXgKKwkJICogSlNPTiBk YXR1bSBmcm9tIGtleSB2YWx1ZS4gT3RoZXJ3aXNlLCBjb25zdHJ1Y3QgaXQgZnJvbSB0aGUgY29t cGxldGUKKwkJICogdHVwbGUgaW4gUkVQTElDQSBJREVOVElUWSBGVUxMIGNhc2VzLgorCQkgKi8K KwkJaWYgKE9pZElzVmFsaWQocmVwbGljYV9pbmRleCkpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSB0 dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJ CQkJCQkJcmVwbGljYV9pbmRleCwKKwkJCQkJCQkJCQkJCQkJCQlzZWFyY2hzbG90KTsKKwkJZWxz ZQorCQkJdmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHNl YXJjaHNsb3QpOworCX0KKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCXZhbHVl c1thdHRub10gPSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9hcnJheShlc3RhdGUsIHJlbCwK KwkJCQkJCQkJCQkJCQkgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJCQkgY29uZmxpY3R0dXBs ZXMpOworCisJQXNzZXJ0KGF0dG5vICsgMSA9PSBOVU1fQ09ORkxJQ1RfQVRUUlMpOworCisJb2xk Y3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKEFwcGx5Q29udGV4dCk7CisJcGVuZGluZ19jb25m bGljdF9sb2cudHVwbGUgPQorCQloZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihjb25m bGljdGxvZ3JlbCksIHZhbHVlcywgbnVsbHMpOworCisJLyoKKwkgKiBTdGFzaCBhIGNvbnRleHQg c3RyaW5nIGRlc2NyaWJpbmcgdGhpcyBjb25mbGljdCwgc28gdGhhdCBpZiBpbnNlcnRpbmcKKwkg KiB0aGUgdHVwbGUgaW50byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGZhaWxzLCB0aGUgcmVzdWx0 aW5nIGVycm9yIGNhcnJpZXMKKwkgKiBlbm91Z2ggY29udGV4dCB0byBpZGVudGlmeSB0aGUgY29u ZmxpY3QgKHNlZSBJbnNlcnRDb25mbGljdExvZ1R1cGxlKS4KKwkgKi8KKwlwZW5kaW5nX2NvbmZs aWN0X2xvZy5lcnJjb250ZXh0X3N0ciA9CisJCXBzcHJpbnRmKCJ3aGlsZSBsb2dnaW5nIGNvbmZs aWN0IFwiJXNcIiBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCSBDb25mbGljdFR5 cGVOYW1lc1tjb25mbGljdF90eXBlXSwKKwkJCQkgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVs KSk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CiB9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCA3Nzk5MjY2YzYxNC4uYzM0YTIzMzZjNTUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtNDg3LDcgKzQ4Nyw5 IEBAIHN0YXRpYyBib29sIE15U3Vic2NyaXB0aW9uVmFsaWQgPSBmYWxzZTsKIHN0YXRpYyBMaXN0 ICpvbl9jb21taXRfd2FrZXVwX3dvcmtlcnNfc3ViaWRzID0gTklMOwogCiBib29sCQlpbl9yZW1v dGVfdHJhbnNhY3Rpb24gPSBmYWxzZTsKLXN0YXRpYyBYTG9nUmVjUHRyIHJlbW90ZV9maW5hbF9s c24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKK1hMb2dSZWNQdHIgcmVtb3RlX2ZpbmFsX2xzbiA9IElu dmFsaWRYTG9nUmVjUHRyOworVHJhbnNhY3Rpb25JZAlyZW1vdGVfeGlkID0gSW52YWxpZFRyYW5z YWN0aW9uSWQ7CitUaW1lc3RhbXBUeglyZW1vdGVfY29tbWl0X3RzID0gMDsKIAogLyogZmllbGRz IHZhbGlkIG9ubHkgd2hlbiBwcm9jZXNzaW5nIHN0cmVhbWVkIHRyYW5zYWN0aW9uICovCiBzdGF0 aWMgYm9vbCBpbl9zdHJlYW1lZF90cmFuc2FjdGlvbiA9IGZhbHNlOwpAQCAtMTIzNiw2ICsxMjM4 LDggQEAgYXBwbHlfaGFuZGxlX2JlZ2luKFN0cmluZ0luZm8gcykKIAlzZXRfYXBwbHlfZXJyb3Jf Y29udGV4dF94YWN0KGJlZ2luX2RhdGEueGlkLCBiZWdpbl9kYXRhLmZpbmFsX2xzbik7CiAKIAly ZW1vdGVfZmluYWxfbHNuID0gYmVnaW5fZGF0YS5maW5hbF9sc247CisJcmVtb3RlX2NvbW1pdF90 cyA9IGJlZ2luX2RhdGEuY29tbWl0dGltZTsKKwlyZW1vdGVfeGlkID0gYmVnaW5fZGF0YS54aWQ7 CiAKIAltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2VzKGJlZ2luX2RhdGEuZmluYWxfbHNuKTsK IApAQCAtMTI5Niw2ICsxMzAwLDggQEAgYXBwbHlfaGFuZGxlX2JlZ2luX3ByZXBhcmUoU3RyaW5n SW5mbyBzKQogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJl Z2luX2RhdGEucHJlcGFyZV9sc24pOwogCiAJcmVtb3RlX2ZpbmFsX2xzbiA9IGJlZ2luX2RhdGEu cHJlcGFyZV9sc247CisJcmVtb3RlX3hpZCA9IGJlZ2luX2RhdGEueGlkOworCXJlbW90ZV9jb21t aXRfdHMgPSAwOwogCiAJbWF5YmVfc3RhcnRfc2tpcHBpbmdfY2hhbmdlcyhiZWdpbl9kYXRhLnBy ZXBhcmVfbHNuKTsKIApAQCAtMTc2Nyw2ICsxNzczLDEwIEBAIGFwcGx5X2hhbmRsZV9zdHJlYW1f c3RhcnQoU3RyaW5nSW5mbyBzKQogCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPVE9DT0xfVklPTEFU SU9OKSwKIAkJCQkgZXJybXNnX2ludGVybmFsKCJpbnZhbGlkIHRyYW5zYWN0aW9uIElEIGluIHN0 cmVhbWVkIHJlcGxpY2F0aW9uIHRyYW5zYWN0aW9uIikpKTsKIAorCXJlbW90ZV94aWQgPSBzdHJl YW1feGlkOworCXJlbW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlyZW1vdGVf Y29tbWl0X3RzID0gMDsKKwogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3Qoc3RyZWFtX3hp ZCwgSW52YWxpZFhMb2dSZWNQdHIpOwogCiAJLyogVHJ5IHRvIGFsbG9jYXRlIGEgd29ya2VyIGZv ciB0aGUgc3RyZWFtaW5nIHRyYW5zYWN0aW9uLiAqLwpAQCAtMjQyOCw2ICsyNDM4LDkgQEAgYXBw bHlfaGFuZGxlX3N0cmVhbV9jb21taXQoU3RyaW5nSW5mbyBzKQogCXsKIAkJY2FzZSBUUkFOU19M RUFERVJfQVBQTFk6CiAKKwkJCS8qIFNldCByZW1vdGVfY29tbWl0X3RzIGZvciBjb25mbGljdCBs b2dnaW5nLiAqLworCQkJcmVtb3RlX2NvbW1pdF90cyA9IGNvbW1pdF9kYXRhLmNvbW1pdHRpbWU7 CisKIAkJCS8qCiAJCQkgKiBUaGUgdHJhbnNhY3Rpb24gaGFzIGJlZW4gc2VyaWFsaXplZCB0byBm aWxlLCBzbyByZXBsYXkgYWxsIHRoZQogCQkJICogc3Bvb2xlZCBvcGVyYXRpb25zLgpAQCAtNTY0 Nyw2ICs1NjYwLDkgQEAgc3RhcnRfYXBwbHkoWExvZ1JlY1B0ciBvcmlnaW5fc3RhcnRwb3MpCiAJ fQogCVBHX0NBVENIKCk7CiAJeworCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisJCUVycm9y RGF0YSAgKmVkYXRhOworCiAJCS8qCiAJCSAqIFJlc2V0IHRoZSBvcmlnaW4gc3RhdGUgdG8gcHJl dmVudCB0aGUgYWR2YW5jZW1lbnQgb2Ygb3JpZ2luCiAJCSAqIHByb2dyZXNzIGlmIHdlIGZhaWwg dG8gYXBwbHkuIE90aGVyd2lzZSwgdGhpcyB3aWxsIHJlc3VsdCBpbgpAQCAtNTY2MCwxNCArNTY3 NiwzMyBAQCBzdGFydF9hcHBseShYTG9nUmVjUHRyIG9yaWdpbl9zdGFydHBvcykKIAkJZWxzZQog CQl7CiAJCQkvKgotCQkJICogUmVwb3J0IHRoZSB3b3JrZXIgZmFpbGVkIHdoaWxlIGFwcGx5aW5n IGNoYW5nZXMuIEFib3J0IHRoZQotCQkJICogY3VycmVudCB0cmFuc2FjdGlvbiBzbyB0aGF0IHRo ZSBzdGF0cyBtZXNzYWdlIGlzIHNlbnQgaW4gYW4KLQkJCSAqIGlkbGUgc3RhdGUuCisJCQkgKiBT YXZlIHRoZSBlcnJvciBhbmQgcmVjb3ZlciB0byBhbiBpZGxlIHN0YXRlIHNvIHdlIGNhbiBpbnNl cnQgdGhlCisJCQkgKiBkZWZlcnJlZCBjb25mbGljdCBsb2cgdHVwbGUgKGlmIGFueSkgYmVmb3Jl IHJlLXRocm93aW5nLiAgQ29weQorCQkJICogdGhlIGVycm9yIGludG8gYSBsb25nLWxpdmVkIGNv bnRleHQgZmlyc3QsIGFzIGl0IG1heSBoYXZlIGJlZW4KKwkJCSAqIHJhaXNlZCB1bmRlciBFcnJv ckNvbnRleHQuICBBbHNvIHJlc2V0IHRoZSBlcnJvciBjb250ZXh0IHN0YWNrOgorCQkJICogdGhl IGNhbGxiYWNrcyBpbiBlZmZlY3Qgd2hlbiB0aGUgZXJyb3Igd2FzIHRocm93biBiZWxvbmcgdG8K KwkJCSAqIHVud291bmQgc3RhY2sgZnJhbWVzLCBhbmQgdGhlIGRlZmVycmVkIGluc2VydCBpbnN0 YWxscyBpdHMgb3duLgogCQkJICovCisJCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKFRvcE1lbW9yeUNvbnRleHQpOworCQkJZWRhdGEgPSBDb3B5RXJyb3JEYXRhKCk7CisJCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisKKwkJCUZsdXNoRXJyb3JTdGF0ZSgp OworCQkJZXJyb3JfY29udGV4dF9zdGFjayA9IE5VTEw7CiAJCQlBYm9ydE91dE9mQW55VHJhbnNh Y3Rpb24oKTsKIAkJCXBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2Vycm9yKE15U3Vic2NyaXB0 aW9uLT5vaWQpOwogCi0JCQlQR19SRV9USFJPVygpOworCQkJLyoKKwkJCSAqIEluc2VydCB0aGUg ZGVmZXJyZWQgY29uZmxpY3QgbG9nIHR1cGxlIGluIGl0cyBvd24gdHJhbnNhY3Rpb24uCisJCQkg KiBJZiB0aGlzIGZhaWxzLCB0aGF0IGVycm9yIChhbm5vdGF0ZWQgd2l0aCB0aGUgY29uZmxpY3Qg Y29udGV4dCwKKwkJCSAqIHNlZSBJbnNlcnRDb25mbGljdExvZ1R1cGxlKSBwcm9wYWdhdGVzIGlu c3RlYWQgb2YgdGhlIG9yaWdpbmFsOworCQkJICogc3VjaCBmYWlsdXJlcyBhcmUgZXhwZWN0ZWQg dG8gYmUgcmFyZSBhbmQgcGVyc2lzdGVudCAoZS5nLiBvdXQgb2YKKwkJCSAqIGRpc2sgc3BhY2Up LgorCQkJICovCisJCQlQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKTsKKworCQkJLyog UmUtdGhyb3cgdGhlIG9yaWdpbmFsIGVycm9yLiAqLworCQkJUmVUaHJvd0Vycm9yKGVkYXRhKTsK IAkJfQogCX0KIAlQR19FTkRfVFJZKCk7CkBAIC02MDM0LDYgKzYwNjksMTMgQEAgRGlzYWJsZVN1 YnNjcmlwdGlvbkFuZEV4aXQodm9pZCkKIAogCVJFU1VNRV9JTlRFUlJVUFRTKCk7CiAKKwkvKgor CSAqIFRoZSBlcnJvciBjb250ZXh0IGNhbGxiYWNrcyBpbiBlZmZlY3Qgd2hlbiB0aGUgZXJyb3Ig d2FzIHRocm93biBiZWxvbmcKKwkgKiB0byBub3ctdW53b3VuZCBzdGFjayBmcmFtZXM7IHJlc2V0 IHRoZSBzdGFjayBiZWZvcmUgcnVubmluZyBmdXJ0aGVyIGNvZGUKKwkgKiAoaW5jbHVkaW5nIHRo ZSBkZWZlcnJlZCBjb25mbGljdCBsb2cgaW5zZXJ0aW9uLCB3aGljaCBpbnN0YWxscyBpdHMgb3du KS4KKwkgKi8KKwllcnJvcl9jb250ZXh0X3N0YWNrID0gTlVMTDsKKwogCS8qCiAJICogUmVwb3J0 IHRoZSB3b3JrZXIgZmFpbGVkIGR1cmluZyBzZXF1ZW5jZSBzeW5jaHJvbml6YXRpb24sIHRhYmxl CiAJICogc3luY2hyb25pemF0aW9uLCBvciBhcHBseS4KQEAgLTYwNjIsNiArNjEwNCwxOSBAQCBE aXNhYmxlU3Vic2NyaXB0aW9uQW5kRXhpdCh2b2lkKQogCQkJZXJybXNnKCJzdWJzY3JpcHRpb24g XCIlc1wiIGhhcyBiZWVuIGRpc2FibGVkIGJlY2F1c2Ugb2YgYW4gZXJyb3IiLAogCQkJCSAgIE15 U3Vic2NyaXB0aW9uLT5uYW1lKSk7CiAKKwkvKgorCSAqIEluc2VydCB0aGUgZGVmZXJyZWQgY29u ZmxpY3QgbG9nIHR1cGxlIChpZiBhbnkpIG5vdyB0aGF0IHRoZQorCSAqIHN1YnNjcmlwdGlvbiBo YXMgYmVlbiBkaXNhYmxlZCBhbmQgY29tbWl0dGVkLiAgRG9pbmcgaXQgYWZ0ZXIgdGhlCisJICog ZGlzYWJsZSBtZWFucyBhIGZhaWx1cmUgdG8gbG9nIHRoZSBjb25mbGljdCAodHJlYXRlZCBhcyBh IGhhcmQgZXJyb3IsCisJICogc2VlIFByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSkgY2Fu bm90IHByZXZlbnQgdGhlIHN1YnNjcmlwdGlvbiBmcm9tCisJICogYmVpbmcgZGlzYWJsZWQgYW5k IHNvIGNhbm5vdCBsZWF2ZSB0aGUgd29ya2VyIHJlc3RhcnRpbmcgYW5kIGZhaWxpbmcKKwkgKiBm b3JldmVyLiAgRG8gaXQgYmVmb3JlIHRoZSBkZWFkLXR1cGxlIHJldGVudGlvbiBjaGVjayBiZWxv dzogdGhhdCBjaGVjaworCSAqIG9ubHkgd2FybnMgdG9kYXksIGJ1dCBpdCB0YWtlcyBhbiBlbGV2 ZWwgYW5kIGNvdWxkIHJhaXNlIGFuIGVycm9yLCB3aGljaAorCSAqIG11c3Qgbm90IHByZXZlbnQg dGhlIGNvbmZsaWN0IGZyb20gYmVpbmcgcmVjb3JkZWQuICBUaGUgb3JpZ2luYWwgZXJyb3IKKwkg KiB3YXMgYWxyZWFkeSByZXBvcnRlZCBhYm92ZS4KKwkgKi8KKwlQcm9jZXNzUGVuZGluZ0NvbmZs aWN0TG9nVHVwbGUoKTsKKwogCS8qCiAJICogU2tpcCB0aGUgdHJhY2tfY29tbWl0X3RpbWVzdGFt cCBjaGVjayB3aGVuIGRpc2FibGluZyB0aGUgd29ya2VyIGR1ZSB0bwogCSAqIGFuIGVycm9yLCBh cyB2ZXJpZnlpbmcgY29tbWl0IHRpbWVzdGFtcHMgaXMgdW5uZWNlc3NhcnkgaW4gdGhpcwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKaW5kZXggYTAxN2UxZTZjYjUuLmI3MjdjYzI4NWU5IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCisrKyBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKQEAgLTExNSw1ICsxMTUsOCBAQCBleHRlcm4g dm9pZCBSZXBvcnRBcHBseUNvbmZsaWN0KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpy ZWxpbmZvLAogCQkJCQkJCQlUdXBsZVRhYmxlU2xvdCAqc2VhcmNoc2xvdCwKIAkJCQkJCQkJVHVw bGVUYWJsZVNsb3QgKnJlbW90ZXNsb3QsCiAJCQkJCQkJCUxpc3QgKmNvbmZsaWN0dHVwbGVzKTsK K2V4dGVybiB2b2lkIFByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSh2b2lkKTsKIGV4dGVy biB2b2lkIEluaXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbyk7CitleHRl cm4gUmVsYXRpb24gR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUoQ29uZmxpY3RMb2dEZXN0ICps b2dfZGVzdCk7CitleHRlcm4gdm9pZCBJbnNlcnRDb25mbGljdExvZ1R1cGxlKFJlbGF0aW9uIGNv bmZsaWN0bG9ncmVsKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vd29ya2VyX2ludGVybmFsLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50 ZXJuYWwuaAppbmRleCA3NDViN2Q5ZTk2OS4uMDBhZDBkODZhNzkgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCkBAIC0xMjEsNiArMTIxLDggQEAgdHlwZWRlZiBl bnVtIFBhcmFsbGVsVHJhbnNTdGF0ZQogCVBBUkFMTEVMX1RSQU5TX1VOS05PV04sCiAJUEFSQUxM RUxfVFJBTlNfU1RBUlRFRCwKIAlQQVJBTExFTF9UUkFOU19GSU5JU0hFRCwKKwlQQVJBTExFTF9U UkFOU19FUlJPUiwJCS8qIHdvcmtlciBmYWlsZWQ7IGl0IHdpbGwgcmVwb3J0IHRoZSBlcnJvciAo YW5kCisJCQkJCQkJCSAqIGxvZyB0aGUgY29uZmxpY3QsIGlmIGFueSkgYmVmb3JlIGV4aXRpbmcg Ki8KIH0gUGFyYWxsZWxUcmFuc1N0YXRlOwogCiAvKgpAQCAtMjU1LDYgKzI1NywxMCBAQCBleHRl cm4gUEdETExJTVBPUlQgYm9vbCBJbml0aWFsaXppbmdBcHBseVdvcmtlcjsKIAogZXh0ZXJuIFBH RExMSU1QT1JUIExpc3QgKnRhYmxlX3N0YXRlc19ub3RfcmVhZHk7CiAKK2V4dGVybiBYTG9nUmVj UHRyIHJlbW90ZV9maW5hbF9sc247CitleHRlcm4gVGltZXN0YW1wVHogcmVtb3RlX2NvbW1pdF90 czsKK2V4dGVybiBUcmFuc2FjdGlvbklkIHJlbW90ZV94aWQ7CisKIGV4dGVybiB2b2lkIGxvZ2lj YWxyZXBfd29ya2VyX2F0dGFjaChpbnQgc2xvdCk7CiBleHRlcm4gTG9naWNhbFJlcFdvcmtlciAq bG9naWNhbHJlcF93b3JrZXJfZmluZChMb2dpY2FsUmVwV29ya2VyVHlwZSB3dHlwZSwKIAkJCQkJ CQkJCQkJCU9pZCBzdWJpZCwgT2lkIHJlbGlkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmlu ZGV4IGU3MWU5NWM2Mjk3Li4yMjVmOTBhMzdiMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWls ZApAQCAtNDgsNiArNDgsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wMzZfc2VxdWVuY2VzLnBs JywKICAgICAgICd0LzAzN19leGNlcHQucGwnLAogICAgICAgJ3QvMDM4X3dhbHNuZF9zaHV0ZG93 bl90aW1lb3V0LnBsJywKKyAgICAgICd0LzAzOV9wYV9jb25mbGljdF9sb2dfbG9ja193YWl0LnBs JywKICAgICAgICd0LzEwMF9idWdzLnBsJywKICAgICBdLAogICB9LApkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzMF9vcmlnaW4ucGwKaW5kZXggNmJjNmI3ODc0YzIuLjVmNGQwMGJkZDMzIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2luLnBsCisrKyBiL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzMF9vcmlnaW4ucGwKQEAgLTE2Niw3ICsxNjYsNyBAQCBpcygkcmVz dWx0LCBxcSgzMiksICdUaGUgbm9kZV9BIGRhdGEgcmVwbGljYXRlZCB0byBub2RlX0InKTsKICRu b2RlX0MtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiVVBEQVRFICR0YWIgU0VUIGEgPSAzMyBXSEVS RSBhID0gMzI7Iik7CiAKICRub2RlX0ItPndhaXRfZm9yX2xvZygKLQlxci9jb25mbGljdCBkZXRl Y3RlZCBvbiByZWxhdGlvbiAicHVibGljLiR0YWJfdW5xdW90ZWQiOiBjb25mbGljdD11cGRhdGVf b3JpZ2luX2RpZmZlcnMuKlxuLipERVRBSUw6LiogVXBkYXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBt b2RpZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0cmFuc2FjdGlvbiBbMC05XSsg YXQgLio6IGxvY2FsIHJvdyBcKDMyXCksIHJlbW90ZSByb3cgXCgzM1wpLCByZXBsaWNhIGlkZW50 aXR5IFwoYVwpPVwoMzJcKS4vCisJcXIvY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1 YmxpYy4kdGFiIjogY29uZmxpY3Q9dXBkYXRlX29yaWdpbl9kaWZmZXJzLipcbi4qREVUQUlMOi4q IFVwZGF0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9kaWZpZWQgYnkgYSBkaWZmZXJlbnQgb3JpZ2lu ICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0IC4qOiBsb2NhbCByb3cgXCgzMlwpLCByZW1v dGUgcm93IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1cKDMyXCkuLwogKTsKIAogJG5v ZGVfQi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSAkdGFiOyIpOwpAQCAtMTgy LDcgKzE4Miw3IEBAIGlzKCRyZXN1bHQsIHFxKDMzKSwgJ1RoZSBub2RlX0EgZGF0YSByZXBsaWNh dGVkIHRvIG5vZGVfQicpOwogJG5vZGVfQy0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJERUxFVEUg RlJPTSAkdGFiIFdIRVJFIGEgPSAzMzsiKTsKIAogJG5vZGVfQi0+d2FpdF9mb3JfbG9nKAotCXFy L2NvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYl91bnF1b3RlZCI6IGNv bmZsaWN0PWRlbGV0ZV9vcmlnaW5fZGlmZmVycy4qXG4uKkRFVEFJTDouKiBEZWxldGluZyB0aGUg cm93IHRoYXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAiLioiIGluIHRyYW5z YWN0aW9uIFswLTldKyBhdCAuKjogbG9jYWwgcm93IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBc KGFcKT1cKDMzXCkuKi8KKwlxci9jb25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiAicHVibGlj LiR0YWIiOiBjb25mbGljdD1kZWxldGVfb3JpZ2luX2RpZmZlcnMuKlxuLipERVRBSUw6LiogRGVs ZXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBtb2RpZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4gIi4q IiBpbiB0cmFuc2FjdGlvbiBbMC05XSsgYXQgLio6IGxvY2FsIHJvdyBcKDMzXCksIHJlcGxpY2Eg aWRlbnRpdHkgXChhXCk9XCgzM1wpLiovCiApOwogCiAjIFRoZSByZW1haW5pbmcgdGVzdHMgbm8g bG9uZ2VyIHRlc3QgY29uZmxpY3QgZGV0ZWN0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz NV9jb25mbGljdHMucGwKaW5kZXggZjIzZmU2YWYyYTUuLmRlMmQzN2M4NzU0IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCisrKyBiL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMucGwKQEAgLTUwLDcgKzUwLDcgQEAgJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKAogCSdwb3N0Z3JlcycsCiAJIkNSRUFURSBTVUJTQ1JJUFRJ T04gc3ViX3RhYgogCSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHIgYXBwbGljYXRpb25f bmFtZT0kYXBwbmFtZScKLQkgUFVCTElDQVRJT04gcHViX3RhYjsiKTsKKwkgUFVCTElDQVRJT04g cHViX3RhYiBXSVRIIChjb25mbGljdF9sb2dfZGVzdGluYXRpb249YWxsKSIpOwogCiAjIFdhaXQg Zm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKICRub2RlX3N1YnNjcmliZXItPndhaXRf Zm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJGFwcG5hbWUpOwpAQCAtODQs MTAgKzg0LDM1IEBAICRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX2xvZygKIC4qS2V5IGFscmVh ZHkgZXhpc3RzIGluIHVuaXF1ZSBpbmRleCBcImNvbmZfdGFiX2Nfa2V5XCIsIG1vZGlmaWVkIGlu IHRyYW5zYWN0aW9uIC4qOiBrZXkgXChjXCk9XCg0XCksIGxvY2FsIHJvdyBcKDQsIDQsIDRcKS4v LAogCSRsb2dfb2Zmc2V0KTsKIAorIyBWZXJpZnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBDb25mbGlj dCBMb2cgVGFibGUgKENMVCkKKyMgVGhpcyBzZWN0aW9uIGVuc3VyZXMgdGhhdCB0aGUgQ0xUIGNv bnRhaW5zIHRoZSBleHBlY3RlZAorIyB0eXBlIGFuZCBzcGVjaWZpYyBrZXkgZGF0YS4KK215ICRz dWJpZCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qg b2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAnc3ViX3RhYic7Iik7Citt eSAkY2x0ID0gInBnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18kc3ViaWQiOworCisjIFdhaXQg Zm9yIHRoZSBjb25mbGljdCB0byBiZSBsb2dnZWQgaW4gdGhlIENMVAorbXkgJGxvZ19jaGVjayA9 ICRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoCisgICAgJ3Bvc3RncmVzJywKKyAg ICAiU0VMRUNUIGNvdW50KCopID4gMCBGUk9NICRjbHQ7IgorKTsKKworbXkgJGNvbmZsaWN0X2No ZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgIlNFTEVD VCBjb3VudCgqKSA+PSAxIEZST00gJGNsdCBXSEVSRSBjb25mbGljdF90eXBlID0gJ211bHRpcGxl X3VuaXF1ZV9jb25mbGljdHMnOyIpOworaXMoJGNvbmZsaWN0X2NoZWNrLCAndCcsICdWZXJpZmll ZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGxvZ2dlZCBpbnRvIGNvbmZsaWN0IGxvZyB0YWJs ZScpOworCitteSAkanNvbl9xdWVyeSA9ICJTRUxFQ1QgbG9jYWxfY29uZmxpY3RzIEZST00gJGNs dDsiOworbXkgJHJhd19qc29uID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJpZnkgdGhhdCAnMicgaXMgcHJlc2VudCBpbnNpZGUg dGhlIEpTT04gc3RydWN0dXJlIHVzaW5nIGEgcmVnZXgKKyMgVGhpcyBtYXRjaGVzIHRoZSBrZXkv dmFsdWUgcGF0dGVybiBmb3IgImEiOiAyCitsaWtlKCRyYXdfanNvbiwgcXIvXFwiYVxcIjoyLywg J1ZlcmlmaWVkIHRoYXQga2V5IDIgZXhpc3RzIGluIHRoZSBsb2NhbF9jb25mbGljdHMnKTsKKwog cGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBkZXRlY3RlZCBkdXJpbmcgaW5zZXJ0Jyk7 CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IKICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiVFJVTkNBVEUgY29uZl90YWI7Iik7Ciskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRFTEVURSBGUk9NICRjbHQiKTsK IAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMg VGVzdCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGR1ZSB0byBVUERBVEUKQEAgLTExNCw2ICsx MzksMjYgQEAgJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3JfbG9nKAogLipLZXkgYWxyZWFkeSBl eGlzdHMgaW4gdW5pcXVlIGluZGV4IFwiY29uZl90YWJfY19rZXlcIiwgbW9kaWZpZWQgaW4gdHJh bnNhY3Rpb24gLio6IGtleSBcKGNcKT1cKDhcKSwgbG9jYWwgcm93IFwoOCwgOCwgOFwpLi8sCiAJ JGxvZ19vZmZzZXQpOwogCisjIFZlcmlmeSB0aGUgY29udGVudHMgb2YgdGhlIENvbmZsaWN0IExv ZyBUYWJsZSAoQ0xUKQorIyBUaGlzIHNlY3Rpb24gZW5zdXJlcyB0aGF0IHRoZSBDTFQgY29udGFp bnMgdGhlIGV4cGVjdGVkCisjIHR5cGUgYW5kIHNwZWNpZmljIGtleSBkYXRhLgorCisjIFdhaXQg Zm9yIHRoZSBjb25mbGljdCB0byBiZSBsb2dnZWQgaW4gdGhlIENMVAorJGxvZ19jaGVjayA9ICRu b2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAi U0VMRUNUIGNvdW50KCopID4gMCBGUk9NICRjbHQ7IgorKTsKKworJGNvbmZsaWN0X2NoZWNrID0g JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3Vu dCgqKSA+PSAxIEZST00gJGNsdCBXSEVSRSBjb25mbGljdF90eXBlID0gJ211bHRpcGxlX3VuaXF1 ZV9jb25mbGljdHMnOyIpOworaXMoJGNvbmZsaWN0X2NoZWNrLCAndCcsICdWZXJpZmllZCBtdWx0 aXBsZV91bmlxdWVfY29uZmxpY3RzIGxvZ2dlZCBpbnRvIGNvbmZsaWN0IGxvZyB0YWJsZScpOwor CiskcmF3X2pzb24gPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpz b25fcXVlcnkpOworCisjIFZlcmlmeSB0aGF0ICc2JyBpcyBwcmVzZW50IGluc2lkZSB0aGUgSlNP TiBzdHJ1Y3R1cmUgdXNpbmcgYSByZWdleAorIyBUaGlzIG1hdGNoZXMgdGhlIGtleS92YWx1ZSBw YXR0ZXJuIGZvciAiYSI6IDYKK2xpa2UoJHJhd19qc29uLCBxci9cXCJhXFwiOjYvLCAnVmVyaWZp ZWQgdGhhdCBrZXkgNiBleGlzdHMgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cycpOworCiBwYXNzKCdt dWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGRldGVjdGVkIGR1cmluZyB1cGRhdGUnKTsKIAogIyBU cnVuY2F0ZSB0YWJsZSB0byBnZXQgcmlkIG9mIHRoZSBlcnJvcgpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDM5X3BhX2NvbmZsaWN0X2xvZ19sb2NrX3dhaXQucGwgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzlfcGFfY29uZmxpY3RfbG9nX2xvY2tfd2FpdC5wbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDY5ZjViNDM2NTYKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzlfcGFfY29uZmxpY3RfbG9nX2xv Y2tfd2FpdC5wbApAQCAtMCwwICsxLDIwNCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjYsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgVGVzdCB0aGF0IGEgcGFyYWxsZWwg YXBwbHkgKFBBKSB3b3JrZXIgY29ycmVjdGx5IGluc2VydHMgYSBkZWZlcnJlZAorIyBjb25mbGlj dC1sb2cgdHVwbGUgZXZlbiB3aGVuLCBieSB0aGUgdGltZSBpdCByZWFjaGVzCisjIFByb2Nlc3NQ ZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpLCB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGhlbGQg dW5kZXIKKyMgQUNDRVNTIEVYQ0xVU0lWRSBieSBhbm90aGVyIHNlc3Npb24uCisjCisjIFRoZSB3 aW5kb3cgd2Ugd2FudCB0byBleGVyY2lzZSBpcyBuYXJyb3c6IFBBIG11c3QgYWxyZWFkeSBiZSBw YXN0CisjIFJlcG9ydEFwcGx5Q29uZmxpY3QoKSAoc28gdGhlIGVycm9yIGhhcyBmaXJlZCBhbmQg UEEgaXMgaW4gUEdfQ0FUQ0gpLAorIyBhbmQgdGhlIGxvY2tlciBtdXN0IHRha2UgdGhlIENMVCBs b2NrICpiZWZvcmUqIFBBIHJlYWNoZXMgdGhlIHNlY29uZAorIyBDTFQgb3BlbiBpbnNpZGUgUHJv Y2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCkuICBBbiBpbmplY3Rpb24gcG9pbnQKKyMgcGF1 c2VzIFBBIGF0IGV4YWN0bHkgdGhhdCBwb2ludCBzbyB0aGUgbG9ja2VyIGNhbiBncmFiIHRoZSBs b2NrIGZpcnN0OworIyB3aXRob3V0IGl0LCB0aGUgbG9ja2VyIGVpdGhlciB0YWtlcyB0aGUgbG9j ayB0b28gZWFybHkgKFBBIGJsb2NrcyBpbgorIyB0aGUgaW5saW5lIENMVCBvcGVuIGluc2lkZSBS ZXBvcnRBcHBseUNvbmZsaWN0LCBiZWZvcmUgdGhlIGVycm9yIGhhcworIyBmaXJlZCkgb3IgdG9v IGxhdGUgKFBBIGluc2VydHMgYmVmb3JlIHRoZSBsb2NrIGlzIHRha2VuKS4KKwordXNlIHN0cmlj dDsKK3VzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpD bHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisK K2lmICgkRU5We2VuYWJsZV9pbmplY3Rpb25fcG9pbnRzfSBuZSAneWVzJykKK3sKKwlwbGFuIHNr aXBfYWxsID0+ICdJbmplY3Rpb24gcG9pbnRzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCc7 Cit9CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNldCB1cCBwdWJsaXNoZXIgYW5kIHN1YnNjcmliZXIu ICBGb3JjZSBldmVyeSB0cmFuc2FjdGlvbiB0byBzdHJlYW0gc28KKyMgdGhlIGNvbmZsaWN0IGlz IGhhbmRsZWQgYnkgYSBwYXJhbGxlbCBhcHBseSB3b3JrZXIgcmF0aGVyIHRoYW4gdGhlCisjIGxl YWRlci4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitteSAkbm9kZV9wdWIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpD bHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHViLT5pbml0KGFsbG93c19zdHJlYW1p bmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Yi0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29u ZicsIHF7CitkZWJ1Z19sb2dpY2FsX3JlcGxpY2F0aW9uX3N0cmVhbWluZyA9IGltbWVkaWF0ZQor bG9naWNhbF9kZWNvZGluZ193b3JrX21lbSA9IDY0a0IKK30pOworJG5vZGVfcHViLT5zdGFydDsK KworbXkgJG5vZGVfc3ViID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3Jp YmVyJyk7Ciskbm9kZV9zdWItPmluaXQ7Ciskbm9kZV9zdWItPmFwcGVuZF9jb25mKCdwb3N0Z3Jl c3FsLmNvbmYnLCBxeworc2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzID0gJ2luamVjdGlvbl9wb2lu dHMnCittYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzID0gNAorbWF4X3BhcmFsbGVsX2Fw cGx5X3dvcmtlcnNfcGVyX3N1YnNjcmlwdGlvbiA9IDIKK30pOworJG5vZGVfc3ViLT5zdGFydDsK KworIyBSZXBsaWNhdGVkIHRhYmxlOyB0aGUgcHJlLWV4aXN0aW5nIHJvdyBvbiB0aGUgc3Vic2Ny aWJlciBpcyB3aGF0IG1ha2VzCisjIHRoZSBwdWJsaXNoZXIncyBJTlNFUlQgKGlkPTEpIHRyaWdn ZXIgYW4gSU5TRVJUX0VYSVNUUyBjb25mbGljdC4KKyRub2RlX3B1Yi0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHF7CisJQ1JFQVRFIFRBQkxFIHQgKGlkIGludCBQUklNQVJZIEtFWSwgdmFsIHRleHQp OworCUFMVEVSIFRBQkxFIHQgUkVQTElDQSBJREVOVElUWSBGVUxMOworCUNSRUFURSBQVUJMSUNB VElPTiBwIEZPUiBUQUJMRSB0OworfSk7CisKKyRub2RlX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsIHF7CisJQ1JFQVRFIFRBQkxFIHQgKGlkIGludCBQUklNQVJZIEtFWSwgdmFsIHRleHQpOwor CUlOU0VSVCBJTlRPIHQgVkFMVUVTICgxLCAncHJlLWV4aXN0aW5nJyk7CisJQ1JFQVRFIEVYVEVO U0lPTiBpbmplY3Rpb25fcG9pbnRzOworfSk7CisKK215ICRwdWJfY29ubnN0ciA9ICRub2RlX3B1 Yi0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKyRub2RlX3N1Yi0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHFxeworCUNSRUFURSBTVUJTQ1JJUFRJT04gcworCUNPTk5FQ1RJT04gJyRwdWJf Y29ubnN0cicKKwlQVUJMSUNBVElPTiBwCisJV0lUSCAoc3RyZWFtaW5nID0gcGFyYWxsZWwsCisJ ICAgICAgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcsCisJICAgICAgZGlzYWJsZV9v bl9lcnJvciA9IHRydWUpOworfSk7CisKKyRub2RlX3N1Yi0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9u X3N5bmMoJG5vZGVfcHViLCAncycpOworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTZW5kIGEgbm9uLWNv bmZsaWN0aW5nIElOU0VSVCBhbmQgdGhlbiB3YWl0IHVudGlsIHBnX3N1YnNjcmlwdGlvbl9yZWwK KyMgcmVhY2hlcyAncicgKHJlYWR5KSBvbiBldmVyeSByZWxhdGlvbi4gIHBhX2Nhbl9zdGFydCgp IHJlcXVpcmVzCisjIEFsbFRhYmxlc3luY3NSZWFkeSgpLCB3aGljaCByZXR1cm5zIHRydWUgb25s eSB3aGVuIGV2ZXJ5CisjIHBnX3N1YnNjcmlwdGlvbl9yZWwgcm93IGlzICdyJy4gIFRoZSAncycg KHN5bmNkb25lKSAtPiAncicgdHJhbnNpdGlvbgorIyBmaXJlcyBpbnNpZGUgUHJvY2Vzc1N5bmNp bmdUYWJsZXNGb3JBcHBseSwgd2hpY2ggb25seSBmbGlwcyB0aGUgc3RhdGUKKyMgd2hlbiB0aGUg YXBwbHkgd29ya2VyJ3MgbGFzdF9yZWNlaXZlZCBMU04gaGFzIGFkdmFuY2VkIHBhc3QgdGhlCisj IHRhYmxlc3luYyBlbmQgTFNOIC0tIHNvIHdlIG5lZWQgYSB0cmlnZ2VyaW5nIGNvbW1pdCBvbiB0 aGUgcHVibGlzaGVyCisjIHRvIGRyaXZlIGxhc3RfcmVjZWl2ZWQgZm9yd2FyZC4gIFdpdGhvdXQg dGhpcyBzdGVwLCB0aGUgY29uZmxpY3QgdHhuCisjIGJlbG93IHdvdWxkIGFycml2ZSB3aGlsZSB0 aGUgdGFibGUgaXMgc3RpbGwgJ3MnLCBwYV9jYW5fc3RhcnQoKSB3b3VsZAorIyByZXR1cm4gZmFs c2UsIHRoZSBsZWFkZXIgd291bGQgc3Bvb2wgdG8gZmlsZSBhbmQgYXBwbHkgc2VyaWFsbHksIGFu ZAorIyBubyBwYXJhbGxlbCBhcHBseSB3b3JrZXIgd291bGQgZXZlciBzcGF3bi4KKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiskbm9kZV9wdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdCBW QUxVRVMgKDEwMDAsICd3YXJtdXAnKTsiKTsKKyRub2RlX3N1Yi0+cG9sbF9xdWVyeV91bnRpbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoMSkgPSAwIEZST00gcGdfc3Vic2NyaXB0aW9uX3Jl bCBXSEVSRSBzcnN1YnN0YXRlIE5PVCBJTiAoJ3InKTsiCispIG9yIGRpZSAic3Vic2NyaXB0aW9u IHRhYmxlcyBkaWQgbm90IHJlYWNoIFJFQURZIHN0YXRlIjsKKworIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMg TG9vayB1cCB0aGUgcGVyLXN1YnNjcmlwdGlvbiBDTFQgbmFtZS4KKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitt eSAkc3ViX29pZCA9ICRub2RlX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBv aWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdzJyIpOworbXkgJGNsdCA9 ICJwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJHN1Yl9vaWQiOworbm90ZSAiY29uZmxpY3Qg bG9nIHRhYmxlIGZvciBzdWJzY3JpcHRpb24gczogJGNsdCI7CisKKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisj IEFybSB0aGUgaW5qZWN0aW9uIHBvaW50LiAgVGhpcyBwYXVzZXMgdGhlIFBBIHdvcmtlciBpbnNp ZGUKKyMgUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCkg4oCUIGkuZS4gKmFmdGVyKiB0 aGUgZXJyb3IgaGFzIGZpcmVkCisjIGFuZCB0aGUgUEdfQ0FUQ0ggaGFzIHJ1biwgKmJlZm9yZSog dGhlIHNlY29uZCBvcGVuIG9mIHRoZSBDTFQuICBUaGlzCisjIGlzIHRoZSBleGFjdCB3aW5kb3cg dGhlIGRlZmVycmVkLWluc2VydCBwYXRoIG5lZWRzIHRvIGJlIHRlc3RlZCBpbi4KKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiskbm9kZV9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19hdHRhY2goJ2NsdC1wZW5kaW5nLWZsdXNoLWJlZm9yZS1vcGVuJywgJ3dhaXQn KTsiKTsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRHJpdmUgdGhlIGNvbmZsaWN0LiAgUEEgcmVjZWl2 ZXMgdGhlIHN0cmVhbWVkIHR4biwgaGl0cyBJTlNFUlRfRVhJU1RTCisjIGluc2lkZSBSZXBvcnRB cHBseUNvbmZsaWN0ICh3aGljaCBvcGVucy9jbG9zZXMgdGhlIENMVCBjbGVhbmx5IHdoaWxlCisj IHByZXBhcmluZyB0aGUgZGVmZXJyZWQgdHVwbGUpLCB0aGVuIGVyZXBvcnQoRVJST1IpIGZpcmVz LCBQR19DQVRDSAorIyBydW5zLCBhbmQgUEEgZW50ZXJzIFByb2Nlc3NQZW5kaW5nQ29uZmxpY3RM b2dUdXBsZSDigJQgd2hlcmUgaXQgcGF1c2VzCisjIGF0IHRoZSBpbmplY3Rpb24gcG9pbnQuCisj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorbXkgJGxvZ19vZmZzZXQgPSAtcyAkbm9kZV9zdWItPmxvZ2ZpbGU7CisK KyRub2RlX3B1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CisJQkVHSU47CisJSU5TRVJUIElO VE8gdCBTRUxFQ1QgZywgcmVwZWF0KCd4JywgMTAwMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMiwg MjAwKSBnOworCUlOU0VSVCBJTlRPIHQgVkFMVUVTICgxLCAnY29uZmxpY3QnKTsKKwlDT01NSVQ7 Cit9KTsKKworIyBXYWl0IHVudGlsIFBBIGlzIHBhcmtlZCBhdCB0aGUgaW5qZWN0aW9uIHBvaW50 LgorJG5vZGVfc3ViLT53YWl0X2Zvcl9ldmVudCgnbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxl bCB3b3JrZXInLAorCSdjbHQtcGVuZGluZy1mbHVzaC1iZWZvcmUtb3BlbicpOworCisjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIyBOb3cgdGFrZSBBQ0NFU1MgRVhDTFVTSVZFIG9uIHRoZSBDTFQuICBUUlVOQ0FU RSBpcyBwZXJtaXR0ZWQgb24gQ0xUczsKKyMgQXQgdGhpcyBwb2ludCB0aGUgQ0xUIGlzIGVtcHR5 LCBzbyB0aGUgVFJVTkNBVEUgaXMgZWZmZWN0aXZlbHkgYSBuby1vcAorIyB0aGF0IGp1c3QgYWNx dWlyZXMgdGhlIGxvY2suCisjIEJlY2F1c2UgUEEgaXMgcGF1c2VkIGF0IHRoZSBpbmplY3Rpb24g cG9pbnQsIHRoaXMgbG9jayBpcyBndWFyYW50ZWVkCisjIHRvIGJlIGFjcXVpcmVkICpiZWZvcmUq IFBBIHRyaWVzIHRvIG9wZW4gdGhlIENMVC4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitteSAkbG9ja2VyID0g JG5vZGVfc3ViLT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3RncmVzJyk7CiskbG9ja2VyLT5xdWVyeV91 bnRpbChxci9sb2NrZXJfcmVhZHkvLCBxcXsKKwlcXGVjaG8gbG9ja2VyX3JlYWR5CisJQkVHSU47 CisJVFJVTkNBVEUgJGNsdDsKK30pOworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBXYWtlIHRoZSBQQSBm cm9tIHRoZSBpbmplY3Rpb24gcG9pbnQuICBJdCB3aWxsIG5vdyB0cnkgdG8gb3BlbiB0aGUKKyMg Q0xUIGluc2lkZSBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUgYW5kIGJsb2NrIG9uIHRo ZSBsb2NrIHRoZQorIyBsb2NrZXIgc2Vzc2lvbiBob2xkcy4KKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiskbm9k ZV9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193 YWtldXAoJ2NsdC1wZW5kaW5nLWZsdXNoLWJlZm9yZS1vcGVuJyk7CisJIFNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgnY2x0LXBlbmRpbmctZmx1c2gtYmVmb3JlLW9wZW4nKTsiKTsKKwor IyBDb25maXJtIHRoZSBQQSB3b3JrZXIgaXMgYWN0dWFsbHkgcGFya2VkIHdhaXRpbmcgb24gdGhl IENMVCBsb2NrIOKAlAorIyB0aGlzIHZlcmlmaWVzIHdlIGFyZSBleGVyY2lzaW5nIHRoZSBkZWZl cnJlZC1pbnNlcnQgbG9jay13YWl0IHBhdGgsCisjIG5vdCByYWNpbmcgcGFzdCBpdC4KK215ICRj bHRfb2lkID0gJG5vZGVfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICckY2x0 Jzo6cmVnY2xhc3M6Om9pZCIpOworb2soICRub2RlX3N1Yi0+cG9sbF9xdWVyeV91bnRpbCgKKwkJ J3Bvc3RncmVzJywgcXF7CisJCVNFTEVDVCBFWElTVFMgKAorCQkJU0VMRUNUIDEKKwkJCUZST00g cGdfbG9ja3MgbAorCQkJSk9JTiBwZ19zdGF0X2FjdGl2aXR5IGEgT04gbC5waWQgPSBhLnBpZAor CQkJV0hFUkUgTk9UIGwuZ3JhbnRlZAorCQkJICBBTkQgbC5yZWxhdGlvbiA9ICRjbHRfb2lkCisJ CQkgIEFORCBhLmJhY2tlbmRfdHlwZSA9ICdsb2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIHdv cmtlcicKKwkJKTsKKwl9LCAndCcpLAorCSdQQSB3b3JrZXIgaXMgYmxvY2tlZCBvbiB0aGUgQ0xU IGxvY2sgaW5zaWRlIFByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZScpOworCisjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIyBSZWxlYXNlIHRoZSBsb2NrLiAgUEEgd2FrZXMsIGluc2VydHMgdGhlIGRlZmVy cmVkIHJvdywgY29tbWl0cyBpdHMKKyMgQ0xUIHR4biwgcmUtdGhyb3dzIHRoZSBvcmlnaW5hbCBl cnJvciB0byB0aGUgbGVhZGVyLCBhbmQgdGhlIGxlYWRlcgorIyBkaXNhYmxlcyB0aGUgc3Vic2Ny aXB0aW9uIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSkuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorJGxvY2tl ci0+cXVlcnlfc2FmZSgnQ09NTUlUOycpOworb2soJGxvY2tlci0+cXVpdCwgJ2xvY2tlciBzZXNz aW9uIGNsb3NlZCBjbGVhbmx5Jyk7CisKK29rKCAkbm9kZV9zdWItPnBvbGxfcXVlcnlfdW50aWwo CisJCSdwb3N0Z3JlcycsCisJCSJTRUxFQ1Qgc3ViZW5hYmxlZCA9IGZhbHNlIEZST00gcGdfc3Vi c2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncyciLAorCQkndCcpLAorCSdzdWJzY3JpcHRpb24g ZGlzYWJsZWQgYWZ0ZXIgdGhlIGNvbmZsaWN0Jyk7CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFZlcmlm eSB0aGUgZGVmZXJyZWQgY29uZmxpY3QgbG9nIHR1cGxlIHN1cnZpdmVkIHRoZSBsb2NrIHdhaXQu CisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorbXkgJHJvd3MgPSAkbm9kZV9zdWItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSAkY2x0IFdIRVJFIGNvbmZsaWN0X3R5cGUgPSAn aW5zZXJ0X2V4aXN0cyciKTsKK2lzKCRyb3dzLCAnMScsCisJJ2RlZmVycmVkIENMVCBpbnNlcnQg YnkgUEEgd29ya2VyIHN1Y2NlZWRlZCBhZnRlciBsb2NrIHJlbGVhc2UnKTsKKworIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyMgQWxzbyB2ZXJpZnkgdGhlIGNvbmZsaWN0IHdhcyByZXBvcnRlZCBpbiB0aGUgc2Vy dmVyIGxvZworIyAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcgbG9ncyB0byBib3Ro IHRoZSB0YWJsZSBhbmQgdGhlIGxvZykuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbXkgJGxvZ19jb250ZW50 cyA9IHNsdXJwX2ZpbGUoJG5vZGVfc3ViLT5sb2dmaWxlLCAkbG9nX29mZnNldCk7CitsaWtlKAor CSRsb2dfY29udGVudHMsCisJcXIvRVJST1I6XHMrY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRp b24gInB1YmxpY1wudCI6IGNvbmZsaWN0PWluc2VydF9leGlzdHMvLAorCSdjb25mbGljdCByZXBv cnRlZCBpbiBzZXJ2ZXIgbG9nJyk7CisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAppbmRleCA0ZTI3Nzg2M2IyYy4uZTE1ZDA5YjBkNzMgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CkBAIC0yMjQ4LDYgKzIyNDgsNyBAQCBQYXR0ZXJuSW5mbwogUGF0dGVybkluZm9B cnJheQogUGF0dGVybl9QcmVmaXhfU3RhdHVzCiBQYXR0ZXJuX1R5cGUKK1BlbmRpbmdDb25mbGlj dExvZ0RhdGEKIFBlbmRpbmdGc3luY0VudHJ5CiBQZW5kaW5nTGlzdGVuQWN0aW9uCiBQZW5kaW5n TGlzdGVuRW50cnkKLS0gCjIuNDkuMAoK --000000000000cc7a050655003f54 Content-Type: application/octet-stream; name="v56-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v56-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqs4zea20 RnJvbSAyM2RiY2Y2ZTdmMzZiMDVmODExZGI0MzBiMzg2ZDVmMTVhY2UyZTZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAyNCBKdW4gMjAyNiAwOTo1MjozMSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU2 IDEvNl0gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGlzIHBhdGNoIGFk ZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9m IGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2gg b2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFr ZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXplLCBhbmQKdXNlIGZvciBleHRlcm5hbCBt b25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhlc2UgbGlt aXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1cmFibGUKY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRpb24gaW4gdGhlIENSRUFURSBTVUJTQ1JJ UFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29zZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8g YSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3IgJ2FsbCcpLAphbiBpbnRlcm5hbCBsb2dn aW5nIHRhYmxlIG5hbWVkIHBnX2NvbmZsaWN0X2xvZ188c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkK Y3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5c3RlbS1tYW5hZ2VkICdwZ19jb25mbGljdCcg bmFtZXNwYWNlIHRvIHByZXZlbnQKdXNlcnMgZnJvbSBtYW51YWxseSBkcm9wcGluZyBvciBhbHRl cmluZyBpdC4gVGhpcyBhbHNvIHByZXZlbnRzIGFjY2lkZW50YWwKbmFtZSBjb2xsaXNpb25zIHdp dGggdXNlci1jcmVhdGVkIHRhYmxlcy4gVGhpcyB0YWJsZSBpcyBsaW5rZWQgdG8gdGhlCnN1YnNj cmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5zdXJpbmcgaXQgaXMgYXV0b21h dGljYWxseSBkcm9wcGVkCndoZW4gdGhlIHN1YnNjcmlwdGlvbiBpcyByZW1vdmVkCgpUaGUgcGVy LXN1YnNjcmlwdGlvbiB0YWJsZSBtb2RlbCB3YXMgY2hvc2VuIG92ZXIgYSBzaW5nbGUgZ2xvYmFs IGxvZyB0byBlbnN1cmUKc3VwZXJpb3IgaXNvbGF0aW9uIGFuZCBhZG1pbmlzdHJhdGl2ZSBmbGV4 aWJpbGl0eSBieSBkaXJlY3RseSBhbGlnbmluZyB0YWJsZSBvd25lcnNoaXAKd2l0aCB0aGUgc3Vi c2NyaXB0aW9u4oCZcyBsaWZlY3ljbGUuIFRoaXMgYXBwcm9hY2ggYWxsb3dzIGZvciBncmFudWxh ciBwZXJtaXNzaW9uCm1hbmFnZW1lbnQsIGVuYWJsaW5nIHRoZSBzdWJzY3JpcHRpb24gb3duZXIg dG8gcGVyZm9ybSBuZWNlc3NhcnkgbWFpbnRlbmFuY2UKdGFza3MgbGlrZSBTRUxFQ1QsIERFTEVU RSwgYW5kIFRSVU5DQVRFIHdpdGhvdXQgdGhlIHNlY3VyaXR5IHJpc2tzIG9yIGNvbXBsZXgKUm93 LUxldmVsIFNlY3VyaXR5IHJlcXVpcmVkIGJ5IGEgc2hhcmVkIGdsb2JhbCB0YWJsZS4KClRoZSBj b25mbGljdCBkZXRhaWxzLCBpbmNsdWRpbmcgdGhlIG9yaWdpbmFsIGFuZCByZW1vdGUgdHVwbGVz LCBhcmUgc3RvcmVkIGluIEpTT04KY29sdW1ucywgcHJvdmlkaW5nIGEgZmxleGlibGUgZm9ybWF0 IHRvIGFjY29tbW9kYXRlIGRpZmZlcmVudCB0YWJsZSBzY2hlbWFzLgoKVGhlIGxvZyB0YWJsZSBj YXB0dXJlcyBlc3NlbnRpYWwgYXR0cmlidXRlcyBzdWNoIGFzIGxvY2FsIGFuZCByZW1vdGUgdHJh bnNhY3Rpb24gSURzLApMU05zLCBjb21taXQgdGltZXN0YW1wcywgYW5kIGNvbmZsaWN0IHR5cGUs IHByb3ZpZGluZyBhIGNvbXBsZXRlIHJlY29yZCBmb3IgcG9zdC1tb3J0ZW0KYW5hbHlzaXMuCgpU aGlzIGZlYXR1cmUgd2lsbCBtYWtlIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzIGVhc2ll ciB0byBtb25pdG9yIGFuZCBtYW5hZ2UsCnNpZ25pZmljYW50bHkgaW1wcm92aW5nIHRoZSBvdmVy YWxsIHJlc2lsaWVuY2UgYW5kIG9wZXJhYmlsaXR5IG9mIHJlcGxpY2F0aW9uIHNldHVwcy4KClRo ZSBjb25mbGljdCBsb2cgdGFibGVzIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIGEgcHVibGljYXRp b24sIGV2ZW4gaWYgdGhlIHB1YmxpY2F0aW9uCmlzIGNvbmZpZ3VyZWQgdG8gaW5jbHVkZSBBTEwg VEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4gU0NIRU1BLgoKTm90ZTogQnVtcCBjYXRhbG9nIHZlcnNp b24gYXMgdGhpcyBhZGQgbmV3IGNvbHVtbiB0byBwZ19zdWJzY3JpcHRpb24gY2F0YWxvZwotLS0K IHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICB8ICA1MCArKy0tCiBz cmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYyAgICAgICAgICAgICAgfCAgMjkgKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAgNSArLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMgICAgfCAyMTIgKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYyAgICAgICAgICAgIHwgIDI4ICsrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2NvbmZsaWN0LmMgfCAxNjMgKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICB8ICAgMiArLQogc3JjL2Jpbi9pbml0ZGIvaW5pdGRi LmMgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUu aW4uYyAgICAgICAgICAgICB8ICAgOCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgg ICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRh dCAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oICAg ICAgfCAgMTEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCAgICAgICAgIHwg IDI3ICsrCiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCB8IDMwOSArKysr KysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwg ICAgICB8IDI1NiArKysrKysrKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QgICAgICAgICAgIHwgICAyICsKIDIxIGZpbGVzIGNoYW5nZWQsIDExMDkgaW5zZXJ0aW9u cygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9h Y2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggMDA3ZWRlOTk3YzUu LjY0ZTE3NjY1MmQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTMzMzcsMjUgKzMzMzcsMzkgQEAg cGdfY2xhc3NfYWNsbWFza19leHQoT2lkIHRhYmxlX29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBt YXNrLAogCiAJY2xhc3NGb3JtID0gKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSk7CiAK LQkvKgotCSAqIERlbnkgYW55b25lIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEgc3lzdGVtIGNhdGFs b2cgdW5sZXNzCi0JICogcGdfYXV0aGlkLnJvbHN1cGVyIGlzIHNldC4KLQkgKgotCSAqIEFzIG9m IDcuNCB3ZSBoYXZlIHNvbWUgdXBkYXRhYmxlIHN5c3RlbSB2aWV3czsgdGhvc2Ugc2hvdWxkbid0 IGJlCi0JICogcHJvdGVjdGVkIGluIHRoaXMgd2F5LiAgQXNzdW1lIHRoZSB2aWV3IHJ1bGVzIGNh biB0YWtlIGNhcmUgb2YKLQkgKiB0aGVtc2VsdmVzLiAgQUNMX1VTQUdFIGlzIGlmIHdlIGV2ZXIg aGF2ZSBzeXN0ZW0gc2VxdWVuY2VzLgotCSAqLwotCWlmICgobWFzayAmIChBQ0xfSU5TRVJUIHwg QUNMX1VQREFURSB8IEFDTF9ERUxFVEUgfCBBQ0xfVFJVTkNBVEUgfCBBQ0xfVVNBR0UpKSAmJgot CQlJc1N5c3RlbUNsYXNzKHRhYmxlX29pZCwgY2xhc3NGb3JtKSAmJgotCQljbGFzc0Zvcm0tPnJl bGtpbmQgIT0gUkVMS0lORF9WSUVXICYmCi0JCSFzdXBlcnVzZXJfYXJnKHJvbGVpZCkpCi0JCW1h c2sgJj0gfihBQ0xfSU5TRVJUIHwgQUNMX1VQREFURSB8IEFDTF9ERUxFVEUgfCBBQ0xfVFJVTkNB VEUgfCBBQ0xfVVNBR0UpOwotCi0JLyoKLQkgKiBPdGhlcndpc2UsIHN1cGVydXNlcnMgYnlwYXNz IGFsbCBwZXJtaXNzaW9uLWNoZWNraW5nLgotCSAqLwotCWlmIChzdXBlcnVzZXJfYXJnKHJvbGVp ZCkpCisJaWYgKCFzdXBlcnVzZXJfYXJnKHJvbGVpZCkpCisJeworCQlpZiAobWFzayAmIChBQ0xf SU5TRVJUIHwgQUNMX1VQREFURSB8IEFDTF9ERUxFVEUgfCBBQ0xfVFJVTkNBVEUgfCBBQ0xfVVNB R0UpKQorCQl7CisJCQlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoY2xhc3NGb3JtKSkKKwkJ CXsKKwkJCQkvKgorCQkJCSAqIEZvciBjb25mbGljdCBsb2cgdGFibGVzLCBhbGxvdyBub24tc3Vw ZXJ1c2VycyB0byBwZXJmb3JtCisJCQkJICogREVMRVRFIGFuZCBUUlVOQ0FURSBmb3IgY2xlYW51 cCBhbmQgbWFpbnRlbmFuY2UsIHdoaWxlIHN0aWxsCisJCQkJICogcmVzdHJpY3RpbmcgSU5TRVJU LCBVUERBVEUsIGFuZCBVU0FHRS4KKwkJCQkgKi8KKwkJCQltYXNrICY9IH4oQUNMX0lOU0VSVCB8 IEFDTF9VUERBVEUgfCBBQ0xfVVNBR0UpOworCQkJfQorCQkJZWxzZSBpZiAoSXNTeXN0ZW1DbGFz cyh0YWJsZV9vaWQsIGNsYXNzRm9ybSkgJiYKKwkJCQljbGFzc0Zvcm0tPnJlbGtpbmQgIT0gUkVM S0lORF9WSUVXKQorCQkJeworCQkJCS8qCisJCQkJICogRGVueSBhbnlvbmUgcGVybWlzc2lvbiB0 byB1cGRhdGUgYSBzeXN0ZW0gY2F0YWxvZyB1bmxlc3MKKwkJCQkgKiBwZ19hdXRoaWQucm9sc3Vw ZXIgaXMgc2V0LgorCQkJCSAqCisJCQkJICogQXMgb2YgNy40IHdlIGhhdmUgc29tZSB1cGRhdGFi bGUgc3lzdGVtIHZpZXdzOyB0aG9zZQorCQkJCSAqIHNob3VsZG4ndCBiZSBwcm90ZWN0ZWQgaW4g dGhpcyB3YXkuICBBc3N1bWUgdGhlIHZpZXcgcnVsZXMKKwkJCQkgKiBjYW4gdGFrZSBjYXJlIG9m IHRoZW1zZWx2ZXMuICBBQ0xfVVNBR0UgaXMgaWYgd2UgZXZlciBoYXZlCisJCQkJICogc3lzdGVt IHNlcXVlbmNlcy4KKwkJCQkgKi8KKwkJCQltYXNrICY9IH4oQUNMX0lOU0VSVCB8IEFDTF9VUERB VEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwKKwkJCQkJCSAgQUNMX1VTQUdFKTsKKwkJ CX0KKwkJfQorCX0KKwllbHNlCiAJeworCQkvKiBTdXBlcnVzZXJzIGJ5cGFzcyBhbGwgcGVybWlz c2lvbi1jaGVja2luZy4gKi8KIAkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKIAkJcmV0dXJuIG1h c2s7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYwppbmRleCA3YmU0OTAzMjkzNC4uYmU4NzkxYWY4NzUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvY2F0YWxvZy5jCkBAIC04Niw3ICs4Niw5IEBAIGJvb2wKIElzU3lzdGVtQ2xh c3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogewogCS8qIElzQ2F0YWxvZ1Jl bGF0aW9uT2lkIGlzIGEgYml0IGZhc3Rlciwgc28gdGVzdCB0aGF0IGZpcnN0ICovCi0JcmV0dXJu IChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNzKHJlbHR1cGxlKSk7 CisJcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwKKwkJCUlzVG9hc3RDbGFz cyhyZWx0dXBsZSkgfHwKKwkJCUlzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbHR1cGxlKSk7CiB9 CiAKIC8qCkBAIC0yMzAsNiArMjMyLDIwIEBAIElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJl bHR1cGxlKQogCXJldHVybiBJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSk7CiB9CiAKKy8q CisgKiBJc0NvbmZsaWN0TG9nVGFibGVDbGFzcworICoJCVRydWUgaWZmIHBnX2NsYXNzIHR1cGxl IHJlcHJlc2VudHMgYSBDb25mbGljdCBMb2cgVGFibGUuCisgKgorICoJCURvZXMgbm90IHBlcmZv cm0gYW55IGNhdGFsb2cgYWNjZXNzZXMuCisgKi8KK2Jvb2wKK0lzQ29uZmxpY3RMb2dUYWJsZUNs YXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCit7CisJT2lkCQkJcmVsbmFtZXNwYWNlID0gcmVs dHVwbGUtPnJlbG5hbWVzcGFjZTsKKworCXJldHVybiBJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3Bh Y2UocmVsbmFtZXNwYWNlKTsKK30KKwogLyoKICAqIElzQ2F0YWxvZ05hbWVzcGFjZQogICoJCVRy dWUgaWZmIG5hbWVzcGFjZSBpcyBwZ19jYXRhbG9nLgpAQCAtMjY0LDYgKzI4MCwxNyBAQCBJc1Rv YXN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKIAkJaXNUZW1wVG9hc3ROYW1lc3BhY2UobmFt ZXNwYWNlSWQpOwogfQogCisvKgorICogSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlCisgKgkJ VHJ1ZSBpZmYgbmFtZXNwYWNlIGlzIHBnX2NvbmZsaWN0LgorICoKKyAqCQlEb2VzIG5vdCBwZXJm b3JtIGFueSBjYXRhbG9nIGFjY2Vzc2VzLgorICovCitib29sCitJc0NvbmZsaWN0TG9nVGFibGVO YW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKQoreworCXJldHVybiBuYW1lc3BhY2VJZCA9PSBQR19D T05GTElDVF9OQU1FU1BBQ0U7Cit9CiAKIC8qCiAgKiBJc1Jlc2VydmVkTmFtZQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMKaW5kZXggNTZiODdkODc4ZTguLjQ5M2M5NjliM2JlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMKQEAgLTM1MjMsOSArMzUyMyw4IEBAIExvb2t1cENyZWF0aW9uTmFtZXNwYWNl KGNvbnN0IGNoYXIgKm5zcG5hbWUpCiAvKgogICogQ29tbW9uIGNoZWNrcyBvbiBzd2l0Y2hpbmcg bmFtZXNwYWNlcy4KICAqCi0gKiBXZSBjb21wbGFpbiBpZiBlaXRoZXIgdGhlIG9sZCBvciBuZXcg bmFtZXNwYWNlcyBpcyBhIHRlbXBvcmFyeSBzY2hlbWEKLSAqIChvciB0ZW1wb3JhcnkgdG9hc3Qg c2NoZW1hKSwgb3IgaWYgZWl0aGVyIHRoZSBvbGQgb3IgbmV3IG5hbWVzcGFjZXMgaXMgdGhlCi0g KiBUT0FTVCBzY2hlbWEuCisgKiBXZSBjb21wbGFpbiBpZiBlaXRoZXIgdGhlIG9sZCBvciBuZXcg bmFtZXNwYWNlcyBpcyBhIHRlbXBvcmFyeSBzY2hlbWEsCisgKiB0ZW1wb3JhcnkgdG9hc3Qgc2No ZW1hLCB0aGUgVE9BU1Qgc2NoZW1hLCBvciB0aGUgY29uZmxpY3Qgc2NoZW1hLgogICovCiB2b2lk CiBDaGVja1NldE5hbWVzcGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDVjNDU3ZDlhY2E4Li4xZWM5NGM4NTFiMiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtOTIsNiArOTIsMTMgQEAgY2hlY2tf cHVibGljYXRpb25fYWRkX3JlbGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpKQogCQkJCSBl cnJtc2coZXJyb3Jtc2csIHJlbG5hbWUpLAogCQkJCSBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9u IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHN5c3RlbSB0YWJsZXMuIikpKTsKIAorCS8qIENhbid0IGJl IGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2Uo UmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZyhl cnJvcm1zZywgcmVsbmFtZSksCisJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90 IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4iKSkpOworCiAJLyogVU5MT0dHRUQg YW5kIFRFTVAgcmVsYXRpb25zIGNhbm5vdCBiZSBwYXJ0IG9mIHB1YmxpY2F0aW9uLiAqLwogCWlm ICh0YXJnZXRyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVN UCkKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTExMyw3ICsxMjAsOCBAQCBzdGF0aWMgdm9pZAogY2hl Y2tfcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgc2NoZW1haWQpCiB7CiAJLyogQ2FuJ3QgYmUg c3lzdGVtIG5hbWVzcGFjZSAqLwotCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8 IElzVG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpKQorCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2No ZW1haWQpIHx8IElzVG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpIHx8CisJCUlzQ29uZmxpY3RMb2dU YWJsZU5hbWVzcGFjZShzY2hlbWFpZCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJIGVycm1zZygiY2Fubm90IGFk ZCBzY2hlbWEgXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKQEAgLTE0OCw3ICsxNTYsOCBAQCBjaGVj a19wdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBzY2hlbWFpZCkKICAqIGlzIHJlYWxseSBpbmFk ZXF1YXRlIGZvciB0aGF0LCBzaW5jZSB0aGUgaW5mb3JtYXRpb25fc2NoZW1hIGNvdWxkIGJlCiAg KiBkcm9wcGVkIGFuZCByZWxvYWRlZCBhbmQgdGhlbiBpdCdsbCBiZSBjb25zaWRlcmVkIHB1Ymxp c2hhYmxlLiAgVGhlIGJlc3QKICAqIGxvbmctdGVybSBzb2x1dGlvbiBtYXkgYmUgdG8gYWRkIGEg InJlbGlzcHVibGlzaGFibGUiIGJvb2wgdG8gcGdfY2xhc3MsCi0gKiBhbmQgZGVwZW5kIG9uIHRo YXQgaW5zdGVhZCBvZiBPSUQgY2hlY2tzLgorICogYW5kIGRlcGVuZCBvbiB0aGF0IGluc3RlYWQg b2YgT0lEIGNoZWNrcy4gIElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKCkKKyAqIGV4Y2x1ZGVzIHRh YmxlcyBpbiBjb25mbGljdCBzY2hlbWEuCiAgKi8KIHN0YXRpYyBib29sCiBpc19wdWJsaXNoYWJs ZV9jbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCkBAIC0xNTcsNiArMTY2 LDcgQEAgaXNfcHVibGlzaGFibGVfY2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1 cGxlKQogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8 fAogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkgJiYKIAkJIUlzQ2F0 YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSAmJgorCQkhSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MocmVs dHVwbGUpICYmCiAJCXJlbHR1cGxlLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9Q RVJNQU5FTlQgJiYKIAkJcmVsaWQgPj0gRmlyc3ROb3JtYWxPYmplY3RJZDsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4IGI1Y2IzMDFkYjg4Li4yMDY4ZTAzYzU3MSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYworKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCkBAIC0xMzIsNiArMTMyLDcgQEAg R2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rLCBib29sIGNvbm5pbmZv X25lZWRlZCwKIAlzdWItPnJldGFpbmRlYWR0dXBsZXMgPSBzdWJmb3JtLT5zdWJyZXRhaW5kZWFk dHVwbGVzOwogCXN1Yi0+bWF4cmV0ZW50aW9uID0gc3ViZm9ybS0+c3VibWF4cmV0ZW50aW9uOwog CXN1Yi0+cmV0ZW50aW9uYWN0aXZlID0gc3ViZm9ybS0+c3VicmV0ZW50aW9uYWN0aXZlOworCXN1 Yi0+Y29uZmxpY3Rsb2dyZWxpZCA9IHN1YmZvcm0tPnN1YmNvbmZsaWN0bG9ncmVsaWQ7CiAKIAlp ZiAoY29ubmluZm9fbmVlZGVkKQogCXsKQEAgLTIwMyw2ICsyMDQsMTIgQEAgR2V0U3Vic2NyaXB0 aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rLCBib29sIGNvbm5pbmZvX25lZWRlZCwKIAkJ CQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luKTsKIAlzdWItPm9yaWdpbiA9 IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOwogCisJLyogR2V0IGNvbmZsaWN0IGxvZyBkZXN0 aW5hdGlvbiAqLworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05P SUQsCisJCQkJCQkJCSAgIHR1cCwKKwkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vi Y29uZmxpY3Rsb2dkZXN0KTsKKwlzdWItPmNvbmZsaWN0bG9nZGVzdCA9IFRleHREYXR1bUdldENT dHJpbmcoZGF0dW0pOworCiAJLyogSXMgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBhIHN1cGVydXNl cj8gKi8KIAlzdWItPm93bmVyc3VwZXJ1c2VyID0gc3VwZXJ1c2VyX2FyZyhzdWItPm93bmVyKTsK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDhmMTI5YmFlYzkwLi41OTY3 NzYyZTYwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTUyNyw4ICsx NTI3LDggQEAgR1JBTlQgU0VMRUNUIChvaWQsIHN1YmRiaWQsIHN1YnNraXBsc24sIHN1Ym5hbWUs IHN1Ym93bmVyLCBzdWJlbmFibGVkLAogICAgICAgICAgICAgICBzdWJiaW5hcnksIHN1YnN0cmVh bSwgc3VidHdvcGhhc2VzdGF0ZSwgc3ViZGlzYWJsZW9uZXJyLAogCQkJICBzdWJwYXNzd29yZHJl cXVpcmVkLCBzdWJydW5hc293bmVyLCBzdWJmYWlsb3ZlciwKICAgICAgICAgICAgICAgc3VicmV0 YWluZGVhZHR1cGxlcywgc3VibWF4cmV0ZW50aW9uLCBzdWJyZXRlbnRpb25hY3RpdmUsCi0gICAg ICAgICAgICAgIHN1YnNlcnZlciwgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YndhbHJj dnRpbWVvdXQsCi0gICAgICAgICAgICAgIHN1YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQorICAg ICAgICAgICAgICBzdWJzZXJ2ZXIsIHN1YmNvbmZsaWN0bG9ncmVsaWQsIHN1YmNvbmZsaWN0bG9n ZGVzdCwgc3Vic2xvdG5hbWUsCisgICAgICAgICAgICAgIHN1YnN5bmNjb21taXQsIHN1YndhbHJj dnRpbWVvdXQsIHN1YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQogICAgIE9OIHBnX3N1YnNjcmlw dGlvbiBUTyBwdWJsaWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRz IEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggZWUwNmE3MjZm NDIuLjUyMDc3NDU5OTI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3Jp cHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5j CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWRfZC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9y ZWlnbl9zZXJ2ZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCkBAIC0zNSw2ICsz Niw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIK KyNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgogI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgpAQCAtNzksNiArODEsNyBAQAogI2RlZmluZSBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVP VVQJCQkweDAwMDEwMDAwCiAjZGVmaW5lIFNVQk9QVF9MU04JCQkJCTB4MDAwMjAwMDAKICNkZWZp bmUgU1VCT1BUX09SSUdJTgkJCQkweDAwMDQwMDAwCisjZGVmaW5lIFNVQk9QVF9DT05GTElDVF9M T0dfREVTVAkweDAwMDgwMDAwCiAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNl dCAqLwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0 cykpCkBAIC0xMDcsNiArMTEwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXJl dGFpbmRlYWR0dXBsZXM7CiAJaW50MzIJCW1heHJldGVudGlvbjsKIAljaGFyCSAgICpvcmlnaW47 CisJQ29uZmxpY3RMb2dEZXN0IGNvbmZsaWN0bG9nZGVzdDsKIAlYTG9nUmVjUHRyCWxzbjsKIAlj aGFyCSAgICp3YWxfcmVjZWl2ZXJfdGltZW91dDsKIH0gU3ViT3B0czsKQEAgLTE0MCw3ICsxNDQs MTIgQEAgc3RhdGljIExpc3QgKm1lcmdlX3B1YmxpY2F0aW9ucyhMaXN0ICpvbGRwdWJsaXN0LCBM aXN0ICpuZXdwdWJsaXN0LCBib29sIGFkZHB1YiwKIHN0YXRpYyB2b2lkIFJlcG9ydFNsb3RDb25u ZWN0aW9uRXJyb3IoTGlzdCAqcnN0YXRlcywgT2lkIHN1YmlkLCBjaGFyICpzbG90bmFtZSwgY2hh ciAqZXJyKTsKIHN0YXRpYyB2b2lkIENoZWNrQWx0ZXJTdWJPcHRpb24oU3Vic2NyaXB0aW9uICpz dWIsIGNvbnN0IGNoYXIgKm9wdGlvbiwKIAkJCQkJCQkJYm9vbCBzbG90X25lZWRzX3VwZGF0ZSwg Ym9vbCBpc1RvcExldmVsKTsKLQorc3RhdGljIGJvb2wgYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19k ZXN0KFN1YnNjcmlwdGlvbiAqc3ViLAorCQkJCQkJCQkJCUNvbmZsaWN0TG9nRGVzdCBvbGRsb2dk ZXN0LAorCQkJCQkJCQkJCUNvbmZsaWN0TG9nRGVzdCBuZXdsb2dkZXN0LAorCQkJCQkJCQkJCU9p ZCAqY29uZmxpY3R0YWJsZXJlbGlkKTsKK3N0YXRpYyB2b2lkIGRyb3Bfc3ViX2NvbmZsaWN0X2xv Z190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsCisJCQkJCQkJCQkJT2lkIHN1YmNvbmZs aWN0bG9ncmVsaWQpOwogCiAvKgogICogQ29tbW9uIG9wdGlvbiBwYXJzaW5nIGZ1bmN0aW9uIGZv ciBDUkVBVEUgYW5kIEFMVEVSIFNVQlNDUklQVElPTiBjb21tYW5kcy4KQEAgLTE5Niw2ICsyMDUs OCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg KnN0bXRfb3B0aW9ucywKIAkJb3B0cy0+bWF4cmV0ZW50aW9uID0gMDsKIAlpZiAoSXNTZXQoc3Vw cG9ydGVkX29wdHMsIFNVQk9QVF9PUklHSU4pKQogCQlvcHRzLT5vcmlnaW4gPSBwc3RyZHVwKExP R0lDQUxSRVBfT1JJR0lOX0FOWSk7CisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRf Q09ORkxJQ1RfTE9HX0RFU1QpKQorCQlvcHRzLT5jb25mbGljdGxvZ2Rlc3QgPSBDT05GTElDVF9M T0dfREVTVF9MT0c7CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgc3RtdF9v cHRpb25zKQpAQCAtNDM2LDYgKzQ0NywxOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJCQkJCQkJCQkgUEdDX0JB Q0tFTkQsIFBHQ19TX1RFU1QsIEdVQ19BQ1RJT05fU0VULAogCQkJCQkJCQkJCSBmYWxzZSwgMCwg ZmFsc2UpOwogCQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09O RkxJQ1RfTE9HX0RFU1QpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbiIpID09IDApCisJCXsKKwkJCWNoYXIgKnZhbDsKKworCQkJaWYgKElz U2V0KG9wdHMtPnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQorCQkJ CWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCisJCQl2YWwgPSBkZWZH ZXRTdHJpbmcoZGVmZWwpOworCQkJb3B0cy0+Y29uZmxpY3Rsb2dkZXN0ID0gR2V0Q29uZmxpY3RM b2dEZXN0KHZhbCk7CisJCQlvcHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfQ09ORkxJQ1Rf TE9HX0RFU1Q7CisJCX0KIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtNjYwLDYgKzY4Myw3IEBAIENyZWF0ZVN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJ dWludDMyCQlzdXBwb3J0ZWRfb3B0czsKIAlTdWJPcHRzCQlvcHRzID0gezB9OwogCUFjbFJlc3Vs dAlhY2xyZXN1bHQ7CisJT2lkCQkJbG9ncmVsaWQgPSBJbnZhbGlkT2lkOwogCiAJLyoKIAkgKiBQ YXJzZSBhbmQgY2hlY2sgb3B0aW9ucy4KQEAgLTY3NCw3ICs2OTgsOCBAQCBDcmVhdGVTdWJzY3Jp cHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAog CQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfRkFJTE9WRVIgfAogCQkJCQkgIFNV Qk9QVF9SRVRBSU5fREVBRF9UVVBMRVMgfAogCQkJCQkgIFNVQk9QVF9NQVhfUkVURU5USU9OX0RV UkFUSU9OIHwKLQkJCQkJICBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfCBTVUJPUFRfT1JJ R0lOKTsKKwkJCQkJICBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfCBTVUJPUFRfT1JJR0lO IHwKKwkJCQkJICBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpOwogCXBhcnNlX3N1YnNjcmlwdGlv bl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsK IAogCS8qCkBAIC04NDgsNiArODczLDIwIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRl ICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdf c3Vic2NyaXB0aW9uX3N1Ym9yaWdpbiAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRz Lm9yaWdpbik7CiAKKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dk ZXN0IC0gMV0gPQorCQlDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZsaWN0TG9nRGVzdE5hbWVzW29w dHMuY29uZmxpY3Rsb2dkZXN0XSk7CisKKwkvKgorCSAqIFdlIGNyZWF0ZSB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlIGhlcmUsIGlmIHJlcXVpcmVkLCBzbyB0aGF0IGl0cyByZWxhdGlvbgorCSAqIE9J RCBjYW4gYmUgc3RvcmVkIHdoZW4gaW5zZXJ0aW5nIHRoZSBwZ19zdWJzY3JpcHRpb24gdHVwbGUg YmVsb3cuCisJICovCisJaWYgKENPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUob3B0cy5jb25mbGlj dGxvZ2Rlc3QpKQorCQlsb2dyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViaWQs IHN0bXQtPnN1Ym5hbWUsIG93bmVyKTsKKworCS8qIFN0b3JlIHRhYmxlIE9JRCBpbiB0aGUgY2F0 YWxvZy4gKi8KKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxp ZCAtIDFdID0KKwkJCQkJCU9iamVjdElkR2V0RGF0dW0obG9ncmVsaWQpOworCiAJdHVwID0gaGVh cF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CiAKIAkv KiBJbnNlcnQgdHVwbGUgaW50byBjYXRhbG9nLiAqLwpAQCAtODY4LDYgKzkwNywyNSBAQCBDcmVh dGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10 ICpzdG10LAogCQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVO REVOQ1lfTk9STUFMKTsKIAl9CiAKKwkvKgorCSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBl bmRlbmN5IGJldHdlZW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBhbmQKKwkgKiB0aGUgc3Vic2Ny aXB0aW9uLgorCSAqCisJICogV2UgdXNlIERFUEVOREVOQ1lfSU5URVJOQUwgdG8gc2lnbmlmeSB0 aGF0IHRoZSB0YWJsZSdzIGxpZmVjeWNsZSBpcworCSAqIHN0cmljdGx5IHRpZWQgdG8gdGhlIHN1 YnNjcmlwdGlvbiwgc2ltaWxhciB0byBob3cgYSBUT0FTVCB0YWJsZSByZWxhdGVzCisJICogdG8g aXRzIG1haW4gdGFibGUgb3IgYSBzZXF1ZW5jZSByZWxhdGVzIHRvIGFuIGlkZW50aXR5IGNvbHVt bi4KKwkgKgorCSAqIFRoaXMgZW5zdXJlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGF1dG9t YXRpY2FsbHkgcmVhcGVkIGR1cmluZyBhCisJICogRFJPUCBTVUJTQ1JJUFRJT04gdmlhIHBlcmZv cm1EZWxldGlvbigpLgorCSAqLworCWlmIChPaWRJc1ZhbGlkKGxvZ3JlbGlkKSkKKwl7CisJCU9i amVjdEFkZHJlc3MgY2x0YWRkcjsKKworCQlPYmplY3RBZGRyZXNzU2V0KGNsdGFkZHIsIFJlbGF0 aW9uUmVsYXRpb25JZCwgbG9ncmVsaWQpOworCQlyZWNvcmREZXBlbmRlbmN5T24oJmNsdGFkZHIs ICZteXNlbGYsIERFUEVOREVOQ1lfSU5URVJOQUwpOworCX0KKwogCS8qCiAJICogQSByZXBsaWNh dGlvbiBvcmlnaW4gaXMgY3VycmVudGx5IGNyZWF0ZWQgZm9yIGFsbCBzdWJzY3JpcHRpb25zLAog CSAqIGluY2x1ZGluZyB0aG9zZSB0aGF0IG9ubHkgY29udGFpbiBzZXF1ZW5jZXMgb3IgYXJlIG90 aGVyd2lzZSBlbXB0eS4KQEAgLTE0MzcsNiArMTQ5NSw3MSBAQCBDaGVja0FsdGVyU3ViT3B0aW9u KFN1YnNjcmlwdGlvbiAqc3ViLCBjb25zdCBjaGFyICpvcHRpb24sCiAJfQogfQogCisvKgorICog YWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0CisgKgorICogV2hlbiB0aGUgc3Vic2NyaXB0aW9u J3MgJ2NvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbicgaXMgY2hhbmdlZCwgdXBkYXRlIHRoZQorICog Y29uZmxpY3QgbG9nIHRhYmxlIGlmIHJlcXVpcmVkLgorICoKKyAqIElmIHRoZSBuZXcgZGVzdGlu YXRpb24gbm8gbG9uZ2VyIHJlcXVpcmVzIGEgY29uZmxpY3QgbG9nIHRhYmxlLCB0aGUgZXhpc3Rp bmcKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN1YnNjcmlwdGlv biBpcyByZW1vdmVkIHZpYSBpbnRlcm5hbAorICogZGVwZW5kZW5jeSBjbGVhbnVwIHRvIHByZXZl bnQgb3JwaGFuZWQgcmVsYXRpb25zLgorICoKKyAqIE9uIHN1Y2Nlc3MsICpjb25mbGljdHRhYmxl cmVsaWQgaXMgc2V0IHRvIHRoZSBPSUQgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorICogdGhh dCB3YXMgY3JlYXRlZCBvciB2YWxpZGF0ZWQsIG9yIHRvIEludmFsaWRPaWQgaWYgbm8gdGFibGUg aXMgcmVxdWlyZWQuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBzdWJzY3JpcHRpb24ncyBj b25mbGljdCBsb2cgdGFibGUgcmVmZXJlbmNlIG11c3QgYmUKKyAqIHVwZGF0ZWQgYXMgYSByZXN1 bHQgb2YgdGhlIGRlc3RpbmF0aW9uIGNoYW5nZTsgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0 aWMgYm9vbAorYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLCBD b25mbGljdExvZ0Rlc3Qgb2xkbG9nZGVzdCwKKwkJCQkJCQlDb25mbGljdExvZ0Rlc3QgbmV3bG9n ZGVzdCwKKwkJCQkJCQlPaWQgKmNvbmZsaWN0dGFibGVyZWxpZCkKK3sKKwlib29sCQl3YW50X3Rh YmxlOworCWJvb2wJCWhhc19vbGR0YWJsZTsKKwlib29sCQl1cGRhdGVfcmVsaWQgPSBmYWxzZTsK KwlPaWQJCQlyZWxpZCA9IEludmFsaWRPaWQ7CisKKwl3YW50X3RhYmxlID0gQ09ORkxJQ1RTX0xP R0dFRF9UT19UQUJMRShuZXdsb2dkZXN0KTsKKwloYXNfb2xkdGFibGUgPSBDT05GTElDVFNfTE9H R0VEX1RPX1RBQkxFKG9sZGxvZ2Rlc3QpOworCisJaWYgKGhhc19vbGR0YWJsZSkKKwl7CisJCS8q IFRoZXJlIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIGFscmVhZHkuICovCisJCWlmICghd2FudF90 YWJsZSkKKwkJeworCQkJZHJvcF9zdWJfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWIt Pm5hbWUsCisJCQkJCQkJCQkJc3ViLT5jb25mbGljdGxvZ3JlbGlkKTsKKwkJCXVwZGF0ZV9yZWxp ZCA9IHRydWU7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJLyogVGhlcmUgd2FzIG5vIHByZXZpb3Vz IGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KKwkJaWYgKHdhbnRfdGFibGUpCisJCXsKKwkJCU9iamVj dEFkZHJlc3MgY2x0YWRkcjsKKwkJCU9iamVjdEFkZHJlc3Mgc3Vib2JqOworCisJCQlyZWxpZCA9 IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwgc3ViLT5vd25l cik7CisJCQl1cGRhdGVfcmVsaWQgPSB0cnVlOworCisJCQkvKgorCQkJICogRXN0YWJsaXNoIGFu IGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCisJCQkg KiBhbmQgdGhlIHN1YnNjcmlwdGlvbi4gIEZvciBkZXRhaWxzIHJlZmVyIGNvbW1lbnRzIGluCisJ CQkgKiBDcmVhdGVTdWJzY3JpcHRpb24gZnVuY3Rpb24uCisJCQkgKi8KKwkJCU9iamVjdEFkZHJl c3NTZXQoY2x0YWRkciwgUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CisJCQlPYmplY3RBZGRy ZXNzU2V0KHN1Ym9iaiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQpOworCQkJcmVj b3JkRGVwZW5kZW5jeU9uKCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsK KwkJfQorCX0KKworCSpjb25mbGljdHRhYmxlcmVsaWQgPSByZWxpZDsKKwlyZXR1cm4gdXBkYXRl X3JlbGlkOworfQorCiAvKgogICogQWx0ZXIgdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbi4KICAq LwpAQCAtMTQ5OSw3ICsxNjIyLDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCQkJICBTVUJPUFRfUkVUQUlO X0RFQURfVFVQTEVTIHwKIAkJCQkJCQkgIFNVQk9QVF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwK IAkJCQkJCQkgIFNVQk9QVF9XQUxfUkVDRUlWRVJfVElNRU9VVCB8Ci0JCQkJCQkJICBTVUJPUFRf T1JJR0lOKTsKKwkJCQkJCQkgIFNVQk9QVF9PUklHSU4gfAorCQkJCQkJCSAgU1VCT1BUX0NPTkZM SUNUX0xPR19ERVNUKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgQUxURVJfU1VCU0NSSVBUSU9OX0VO QUJMRUQ6CkBAIC0xODU4LDYgKzE5ODIsMzQgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCXJlcGxhY2VzW0Fu dW1fcGdfc3Vic2NyaXB0aW9uX3N1YndhbHJjdnRpbWVvdXQgLSAxXSA9IHRydWU7CiAJCQkJfQog CisJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9MT0df REVTVCkpCisJCQkJeworCQkJCQlDb25mbGljdExvZ0Rlc3Qgb2xkX2Rlc3QgPQorCQkJCQkJCUdl dENvbmZsaWN0TG9nRGVzdChzdWItPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkJCQkJaWYgKG9wdHMu Y29uZmxpY3Rsb2dkZXN0ICE9IG9sZF9kZXN0KQorCQkJCQl7CisJCQkJCQlib29sCQl1cGRhdGVf cmVsaWQ7CisJCQkJCQlPaWQJCQlyZWxpZCA9IEludmFsaWRPaWQ7CisKKwkJCQkJCXZhbHVlc1tB bnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9CisJCQkJCQkJQ1N0 cmluZ0dldFRleHREYXR1bShDb25mbGljdExvZ0Rlc3ROYW1lc1tvcHRzLmNvbmZsaWN0bG9nZGVz dF0pOworCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dk ZXN0IC0gMV0gPSB0cnVlOworCisJCQkJCQl1cGRhdGVfcmVsaWQgPSBhbHRlcl9zdWJfY29uZmxp Y3RfbG9nX2Rlc3Qoc3ViLAorCQkJCQkJCQkJCQkJCQkJCSAgIG9sZF9kZXN0LAorCQkJCQkJCQkJ CQkJCQkJCSAgIG9wdHMuY29uZmxpY3Rsb2dkZXN0LAorCQkJCQkJCQkJCQkJCQkJCSAgICZyZWxp ZCk7CisJCQkJCQlpZiAodXBkYXRlX3JlbGlkKQorCQkJCQkJeworCQkJCQkJCXZhbHVlc1tBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQorCQkJCQkJCQlPYmpl Y3RJZEdldERhdHVtKHJlbGlkKTsKKwkJCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQorCQkJCQkJCQl0cnVlOworCQkJCQkJfQorCQkJ CQl9CisJCQkJfQorCiAJCQkJdXBkYXRlX3R1cGxlID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0K QEAgLTIyOTcsNiArMjQ0OSw1MSBAQCBjb25zdHJ1Y3Rfc3Vic2VydmVyX2Nvbm5pbmZvKE9pZCBz dWJzZXJ2ZXIsIE9pZCBzdWJvd25lciwgY2hhciAqKmVycikKIAlyZXR1cm4gRm9yZWlnblNlcnZl ckNvbm5lY3Rpb25TdHJpbmcoc3Vib3duZXIsIHNlcnZlcik7CiB9CiAKKy8qCisgKiBEcm9wIHN1 YnNjcmlwdGlvbidzIGNvbmZsaWN0IGxvZyB0YWJsZQorICoKKyAqIFRoZSBjb25mbGljdCBsb2cg dGFibGUgaXMgcmVnaXN0ZXJlZCBhcyBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IG9mIHRoZQorICog c3Vic2NyaXB0aW9uLiBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGRlcGVuZGVuY3kgYnkgcGVy Zm9ybWluZyBhCisgKiBjYXNjYWRpbmcgZGVsZXRpb24gb24gdGhlIHN1YnNjcmlwdGlvbiBvYmpl Y3QsIHdoaWNoIGluIHR1cm4gZHJvcHMgdGhlCisgKiBhc3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0 YWJsZS4KKyAqCisgKiBUaGlzIGlzIHVzZWQgdG8gY2xlYW4gdXAgY29uZmxpY3QgbG9nIHRhYmxl cyB0aGF0IGFyZSBubyBsb25nZXIgcmVxdWlyZWQsCisgKiBwcmV2ZW50aW5nIGFjY3VtdWxhdGlv biBvZiBzdGFsZSBvciBvcnBoYW5lZCByZWxhdGlvbnMuCisgKgorICogTk9URToKKyAqIE9ubHkg Y29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgY3VycmVudGx5IG1hbmFnZWQgdmlhIHRoaXMgaW50ZXJu YWwgZGVwZW5kZW5jeQorICogbWVjaGFuaXNtLgorICovCitzdGF0aWMgdm9pZAorZHJvcF9zdWJf Y29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3VibmFtZSwgT2lkIHN1YmNvbmZs aWN0bG9ncmVsaWQpCit7CisJLyogRHJvcCBhbnkgZGVwZW5kZW50IGNvbmZsaWN0IGxvZyB0YWJs ZSAqLworCWlmIChPaWRJc1ZhbGlkKHN1YmNvbmZsaWN0bG9ncmVsaWQpKQorCXsKKwkJT2JqZWN0 QWRkcmVzcyBvYmplY3Q7CisJCWNoYXIgCQkgKmNvbmZsaWN0cmVsbmFtZTsKKworCQljb25mbGlj dHJlbG5hbWUgPSBnZXRfcmVsX25hbWUoc3ViY29uZmxpY3Rsb2dyZWxpZCk7CisJCWlmIChjb25m bGljdHJlbG5hbWUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciByZWxhdGlvbiAldSIsCisJCQkJIHN1YmNvbmZsaWN0bG9ncmVsaWQpOworCisJCS8qCisJ CSAqIEJ5IHVzaW5nIFBFUkZPUk1fREVMRVRJT05fU0tJUF9PUklHSU5BTCwgd2UgZW5zdXJlIHRo YXQgb25seSB0aGUKKwkJICogY29uZmxpY3QgbG9nIHRhYmxlIGlzIGRlbGV0ZWQgd2hpbGUgdGhl IHN1YnNjcmlwdGlvbiByZW1haW5zLgorCQkgKi8KKwkJT2JqZWN0QWRkcmVzc1NldChvYmplY3Qs IFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmpl Y3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJ CQkJUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMKTsKKworCQllcmVwb3J0KE5PVElDRSwK KwkJCQllcnJtc2coImRyb3BwZWQgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBmb3Igc3Vic2Ny aXB0aW9uIFwiJXNcIiIsCisJCQkJCQlnZXRfcXVhbGlmaWVkX29iam5hbWUoUEdfQ09ORkxJQ1Rf TkFNRVNQQUNFLCBjb25mbGljdHJlbG5hbWUpLAorCQkJCQkJc3VibmFtZSkpOworCX0KK30KKwog LyoKICAqIERyb3AgYSBzdWJzY3JpcHRpb24KICAqLwpAQCAtMjMwOSw2ICsyNTA2LDcgQEAgRHJv cFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVs KQogCU9pZAkJCXN1YmlkOwogCU9pZAkJCXN1Ym93bmVyOwogCU9pZAkJCXN1YnNlcnZlcjsKKwlP aWQJCQlzdWJjb25mbGljdGxvZ3JlbGlkOwogCWNoYXIJICAgKnN1YmNvbm5pbmZvID0gTlVMTDsK IAlEYXR1bQkJZGF0dW07CiAJYm9vbAkJaXNudWxsOwpAQCAtMjM2MSw2ICsyNTU5LDcgQEAgRHJv cFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVs KQogCXN1YmlkID0gZm9ybS0+b2lkOwogCXN1Ym93bmVyID0gZm9ybS0+c3Vib3duZXI7CiAJc3Vi c2VydmVyID0gZm9ybS0+c3Vic2VydmVyOworCXN1YmNvbmZsaWN0bG9ncmVsaWQgPSBmb3JtLT5z dWJjb25mbGljdGxvZ3JlbGlkOwogCW11c3RfdXNlX3Bhc3N3b3JkID0gIXN1cGVydXNlcl9hcmco c3Vib3duZXIpICYmIGZvcm0tPnN1YnBhc3N3b3JkcmVxdWlyZWQ7CiAKIAkvKiBtdXN0IGJlIG93 bmVyICovCkBAIC0yNDgyLDYgKzI2ODEsOCBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3Jp cHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJZGVsZXRlRGVwZW5kZW5jeVJlY29y ZHNGb3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIGZhbHNlKTsKIAlkZWxldGVTaGFy ZWREZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7 CiAKKwlkcm9wX3N1Yl9jb25mbGljdF9sb2dfdGFibGUoc3ViaWQsIHN1Ym5hbWUsIHN1YmNvbmZs aWN0bG9ncmVsaWQpOworCiAJLyogUmVtb3ZlIGFueSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNo cm9uaXphdGlvbiBzdGF0ZXMuICovCiAJUmVtb3ZlU3Vic2NyaXB0aW9uUmVsKHN1YmlkLCBJbnZh bGlkT2lkKTsKIApAQCAtMjcyMiw2ICsyOTIzLDExIEBAIEFsdGVyU3Vic2NyaXB0aW9uT3duZXJf aW50ZXJuYWwoUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwLCBPaWQgbmV3T3duZXJJZCkKIAlm b3JtLT5zdWJvd25lciA9IG5ld093bmVySWQ7CiAJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1 cC0+dF9zZWxmLCB0dXApOwogCisJLyogVXBkYXRlIG93bmVyIG9mIHRoZSBjb25mbGljdCBsb2cg dGFibGUgaWYgaXQgZXhpc3RzLiAqLworCWlmIChPaWRJc1ZhbGlkKGZvcm0tPnN1YmNvbmZsaWN0 bG9ncmVsaWQpKQorCQlBVEV4ZWNDaGFuZ2VPd25lcihmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlk LCBuZXdPd25lcklkLCB0cnVlLAorCQkJCQkJICBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKwogCS8q IFVwZGF0ZSBvd25lciBkZXBlbmRlbmN5IHJlZmVyZW5jZSAqLwogCWNoYW5nZURlcGVuZGVuY3lP bk93bmVyKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsCiAJCQkJCQkJZm9ybS0+b2lkLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYwppbmRleCAyNjVkY2ZlN2ZkYS4uOWFmM2I2MTZiZmEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yNDU3LDkgKzI0NTcsMTEgQEAgdHJ1bmNhdGVfY2hlY2tf cmVsKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAkgKiBwZ19sYXJnZW9iamVj dCBhbmQgcGdfbGFyZ2VvYmplY3RfbWV0YWRhdGEgdG8gYmUgdHJ1bmNhdGVkIGFzIHBhcnQgb2YK IAkgKiBwZ191cGdyYWRlLCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hhbmdlIGl0cyByZWxmaWxlbm9k ZSB0byBtYXRjaCB0aGUgb2xkCiAJICogY2x1c3RlciwgYW5kIGFsbG93aW5nIGEgVFJVTkNBVEUg Y29tbWFuZCB0byBiZSBleGVjdXRlZCBpcyB0aGUgZWFzaWVzdAotCSAqIHdheSBvZiBkb2luZyB0 aGF0LgorCSAqIHdheSBvZiBkb2luZyB0aGF0LiBXZSBhbHNvIGFsbG93IFRSVU5DQVRFIG9uIHRo ZSBjb25mbGljdCBsb2cgdGFibGVzLAorCSAqIHRvIHBlcm1pdCB1c2VycyB0byBtYW51YWxseSBw cnVuZSBjb25mbGljdCBkYXRhIHRvIG1hbmFnZSBkaXNrIHNwYWNlLgogCSAqLwotCWlmICghYWxs b3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgcmVsdHVwbGUpCisJaWYg KCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCByZWx0dXBsZSkg JiYKKwkJIUlzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbHR1cGxlKQogCQkmJiAoIUlzQmluYXJ5 VXBncmFkZSB8fAogCQkJKHJlbGlkICE9IExhcmdlT2JqZWN0UmVsYXRpb25JZCAmJgogCQkJIHJl bGlkICE9IExhcmdlT2JqZWN0TWV0YWRhdGFSZWxhdGlvbklkKSkpCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYwppbmRleCA0YjMwZjc2ODY4MC4uZjg3ZWY2NWYzNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYwpAQCAtMTE4Nyw2ICsxMTg3LDI0IEBAIENoZWNrVmFsaWRSZXN1bHRSZWwoUmVzdWx0UmVs SW5mbyAqcmVzdWx0UmVsSW5mbywgQ21kVHlwZSBvcGVyYXRpb24sCiAJCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVzdWx0UmVsKSkpKTsKIAkJCWJyZWFrOwogCX0KKworCS8qCisJICog Q29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJlY29yZCBs b2dpY2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3RzLiAgV2UgYWxsb3cgREVMRVRFIGFuZCBU UlVOQ0FURSB0byBwZXJtaXQgdXNlcnMgdG8KKwkgKiBtYW51YWxseSBwcnVuZSB0aGVzZSBsb2dz LCBidXQgbWFudWFsIGRhdGEgaW5zZXJ0aW9uIG9yIG1vZGlmaWNhdGlvbgorCSAqIChJTlNFUlQs IFVQREFURSwgTUVSR0UpIGlzIHByb2hpYml0ZWQgdG8gbWFpbnRhaW4gdGhlIGludGVncml0eSBv ZiB0aGUKKwkgKiBzeXN0ZW0tZ2VuZXJhdGVkIGxvZ3MuCisJICoKKwkgKiBTaW5jZSBUUlVOQ0FU RSBpcyBoYW5kbGVkIGFzIGEgc2VwYXJhdGUgdXRpbGl0eSBjb21tYW5kLCB3ZSBvbmx5IG5lZWQK KwkgKiB0byBleHBsaWNpdGx5IHBlcm1pdCBDTURfREVMRVRFIGhlcmUuCisJICovCisJaWYgKElz Q29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZXN1bHRSZWwp KSAmJgorCQlvcGVyYXRpb24gIT0gQ01EX0RFTEVURSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3Qg bW9kaWZ5IG9yIGluc2VydCBkYXRhIGludG8gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJ CQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZXN1bHRSZWwpKSwKKwkJCQkgZXJyZGV0YWls KCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCBhbmQgb25seSBzdXBwb3J0 IGNsZWFudXAgdmlhIERFTEVURSBvciBUUlVOQ0FURS4iKSkpOwogfQogCiAvKgpAQCAtMTI1OCw2 ICsxMjc2LDE2IEBAIENoZWNrVmFsaWRSb3dNYXJrUmVsKFJlbGF0aW9uIHJlbCwgUm93TWFya1R5 cGUgbWFya1R5cGUpCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAkJ CWJyZWFrOwogCX0KKworCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBi eSB0aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dpY2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3Rz LgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoUmVsYXRpb25HZXROYW1l c3BhY2UocmVsKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9O R19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fubm90IGxvY2sgcm93cyBpbiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWwpKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGlj dC5jCmluZGV4IDFmOGQ2N2ZkZDkwLi4yMjg0MGVjNmU5ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTcsNiArMTcsMTAgQEAKICNpbmNsdWRlICJh Y2Nlc3MvY29tbWl0X3RzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCiAjaW5jbHVkZSAi YWNjZXNzL3RhYmxlYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL2hlYXAuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2FtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIK ICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgpA QCAtMjQsNiArMjgsNTAgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1 dGlscy9sc3lzY2FjaGUuaCIKIAorLyoKKyAqIFN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIHRo ZSBzdXBwb3J0ZWQgY29uZmxpY3QgbG9nZ2luZyBkZXN0aW5hdGlvbnMuCisgKi8KK2NvbnN0IGNo YXIgKmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVzW10gPSB7CisJW0NPTkZMSUNUX0xPR19ERVNU X0xPR10gPSAibG9nIiwKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEVdID0gInRhYmxlIiwKKwlb Q09ORkxJQ1RfTE9HX0RFU1RfQUxMXSA9ICJhbGwiCit9OworCitTdGF0aWNBc3NlcnREZWNsKGxl bmd0aG9mKENvbmZsaWN0TG9nRGVzdE5hbWVzKSA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwgKyAx LAorCQkJCSAiQ29uZmxpY3RMb2dEZXN0TmFtZXMgbGVuZ3RoIG1pc21hdGNoIik7CisKKworLyog U3RydWN0dXJlIHRvIGhvbGQgbWV0YWRhdGEgZm9yIG9uZSBjb2x1bW4gb2YgdGhlIGNvbmZsaWN0 IGxvZyB0YWJsZSAqLwordHlwZWRlZiBzdHJ1Y3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYKK3sKKwlj b25zdCBjaGFyICphdHRuYW1lOyAgICAvKiBDb2x1bW4gbmFtZSAqLworCU9pZCAgICAgICAgIGF0 dHR5cGlkOyAgIC8qIERhdGEgdHlwZSBPSUQgKi8KK30gQ29uZmxpY3RMb2dDb2x1bW5EZWY7CisK Ky8qCisgKiBTY2hlbWEgZGVmaW5pdGlvbiBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4KKyAqCisg KiBEZWZpbmVzIHRoZSBmaXhlZCBzY2hlbWEgb2YgdGhlIHBlci1zdWJzY3JpcHRpb24gY29uZmxp Y3QgbG9nIHRhYmxlIGNyZWF0ZWQKKyAqIGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UuIEVh Y2ggZW50cnkgc3BlY2lmaWVzIHRoZSBjb2x1bW4gbmFtZSBhbmQgaXRzCisgKiB0eXBlIE9JRDsg dGhlIHRhYmxlIGlzIGNyZWF0ZWQgaW4gdGhpcyBjb2x1bW4gb3JkZXIgYnkKKyAqIGNyZWF0ZV9j b25mbGljdF9sb2dfdGFibGUoKS4KKyAqLworc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1u RGVmIENvbmZsaWN0TG9nU2NoZW1hW10gPSB7CisJeyAuYXR0bmFtZSA9ICJyZWxpZCIsICAgICAg ICAgICAgLmF0dHR5cGlkID0gT0lET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJzY2hlbWFuYW1lIiwg ICAgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVsbmFtZSIsICAg ICAgICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gImNvbmZsaWN0X3R5 cGUiLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfeGlk IiwgICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29t bWl0X2xzbiIsLmF0dHR5cGlkID0gTFNOT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29t bWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJl bW90ZV9vcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJy ZW1vdGVfdHVwbGUiLCAgICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAi cmVwbGljYV9pZGVudGl0eSIsIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0g ImxvY2FsX2NvbmZsaWN0cyIsICAuYXR0dHlwaWQgPSBKU09OQVJSQVlPSUQgfQorfTsKKworI2Rl ZmluZSBOVU1fQ09ORkxJQ1RfQVRUUlMgbGVuZ3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEpCisKIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNF UlRfRVhJU1RTXSA9ICJpbnNlcnRfZXhpc3RzIiwKIAlbQ1RfVVBEQVRFX09SSUdJTl9ESUZGRVJT XSA9ICJ1cGRhdGVfb3JpZ2luX2RpZmZlcnMiLApAQCAtNTQsNiArMTAyLDEyMSBAQCBzdGF0aWMg dm9pZCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5m bywKIHN0YXRpYyBjaGFyICpidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBS ZWxhdGlvbiBsb2NhbHJlbCwKIAkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5k ZXhvaWQpOwogCisvKgorICogQnVpbGRzIHRoZSBUdXBsZURlc2MgZm9yIHRoZSBjb25mbGljdCBs b2cgdGFibGUuCisgKi8KK3N0YXRpYyBUdXBsZURlc2MKK2NyZWF0ZV9jb25mbGljdF9sb2dfdGFi bGVfdHVwZGVzYyh2b2lkKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCisJdHVwZGVzYyA9IENy ZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKE5VTV9DT05GTElDVF9BVFRSUyk7CisKKwlmb3IgKGludCBp ID0gMDsgaSA8IE5VTV9DT05GTElDVF9BVFRSUzsgaSsrKQorCQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgaSArIDEsCisJCQkJCQkgICBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHRuYW1lLAor CQkJCQkJICAgQ29uZmxpY3RMb2dTY2hlbWFbaV0uYXR0dHlwaWQsCisJCQkJCQkgICAtMSwgMCk7 CisKKwlUdXBsZURlc2NGaW5hbGl6ZSh0dXBkZXNjKTsKKworCXJldHVybiB0dXBkZXNjOworfQor CisvKgorICogQ3JlYXRlIGEgc3RydWN0dXJlZCBjb25mbGljdCBsb2cgdGFibGUgZm9yIGEgc3Vi c2NyaXB0aW9uLgorICoKKyAqIFRoZSB0YWJsZSBpcyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lzdGVt LW1hbmFnZWQgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UgdG8KKyAqIHByZXZlbnQgdXNlcnMgZnJv bSBtYW51YWxseSBkcm9wcGluZyBvciBhbHRlcmluZyBpdC4gIFRoaXMgYWxzbyBwcmV2ZW50cwor ICogYWNjaWRlbnRhbCBuYW1lIGNvbGxpc2lvbnMgd2l0aCB1c2VyLWNyZWF0ZWQgdGFibGVzIHdp dGggdGhlIHNhbWUgbmFtZS4KKyAqCisgKiBUaGUgdGFibGUgbmFtZSBpcyBnZW5lcmF0ZWQgYXV0 b21hdGljYWxseSB1c2luZyB0aGUgc3Vic2NyaXB0aW9uJ3MgT0lECisgKiAoZS5nLiwgInBnX2Nv bmZsaWN0X2xvZ188c3ViaWQ+IikgdG8gZW5zdXJlIHVuaXF1ZW5lc3Mgd2l0aGluIHRoZQorICog Y2x1c3RlciBhbmQgdG8gYXZvaWQgY29sbGlzaW9ucyBkdXJpbmcgc3Vic2NyaXB0aW9uIHJlbmFt ZXMuCisgKi8KK09pZAorY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIg KnN1Ym5hbWUsIE9pZCBzdWJvd25lcikKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPaWQJCQly ZWxpZDsKKwljaGFyICAgIAlyZWxuYW1lW05BTUVEQVRBTEVOXTsKKworCXNucHJpbnRmKHJlbG5h bWUsIE5BTUVEQVRBTEVOLCAicGdfY29uZmxpY3RfbG9nXyV1Iiwgc3ViaWQpOworCisJLyogQnVp bGQgdGhlIHR1cGxlIGRlc2NyaXB0b3IgZm9yIHRoZSBuZXcgdGFibGUuICovCisJdHVwZGVzYyA9 IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVfdHVwZGVzYygpOworCisJLyogQ3JlYXRlIGNvbmZs aWN0IGxvZyB0YWJsZS4gKi8KKwlyZWxpZCA9IGhlYXBfY3JlYXRlX3dpdGhfY2F0YWxvZyhyZWxu YW1lLAorCQkJCQkJCQkJIFBHX0NPTkZMSUNUX05BTUVTUEFDRSwKKwkJCQkJCQkJCSAwLAkvKiB0 YWJsZXNwYWNlICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsaWQgKi8KKwkJCQkJCQkJ CSBJbnZhbGlkT2lkLCAvKiByZWx0eXBlaWQgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiBy ZWxvZnR5cGVpZCAqLworCQkJCQkJCQkJIHN1Ym93bmVyLAorCQkJCQkJCQkJIEhFQVBfVEFCTEVf QU1fT0lELAorCQkJCQkJCQkJIHR1cGRlc2MsCisJCQkJCQkJCQkgTklMLAorCQkJCQkJCQkJIFJF TEtJTkRfUkVMQVRJT04sCisJCQkJCQkJCQkgUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5ULAorCQkJ CQkJCQkJIGZhbHNlLCAvKiBzaGFyZWRfcmVsYXRpb24gKi8KKwkJCQkJCQkJCSBmYWxzZSwgLyog bWFwcGVkX3JlbGF0aW9uICovCisJCQkJCQkJCQkgT05DT01NSVRfTk9PUCwKKwkJCQkJCQkJCSAo RGF0dW0pIDAsIC8qIHJlbG9wdGlvbnMgKi8KKwkJCQkJCQkJCSBmYWxzZSwgLyogdXNlX3VzZXJf YWNsICovCisJCQkJCQkJCQkgdHJ1ZSwgLyogYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgKi8KKwkJ CQkJCQkJCSB0cnVlLCAvKiBpc19pbnRlcm5hbCAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8q IHJlbHJld3JpdGUgKi8KKwkJCQkJCQkJCSBOVUxMKTsgLyogdHlwYWRkcmVzcyAqLworCUFzc2Vy dChPaWRJc1ZhbGlkKHJlbGlkKSk7CisKKwkvKiBSZWxlYXNlIHR1cGxlIGRlc2NyaXB0b3IgbWVt b3J5LiAqLworCUZyZWVUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKgorCSAqIFdlIG11c3QgYnVt cCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1ha2UgdGhlIG5ld2x5LWNyZWF0ZWQgcmVsYXRpb24K KwkgKiB0dXBsZSB2aXNpYmxlIGZvciBvcGVuaW5nLgorCSAqLworCUNvbW1hbmRDb3VudGVySW5j cmVtZW50KCk7CisKKwkvKgorCSAqIENyZWF0ZSBhIFRPQVNUIHRhYmxlIGZvciB0aGUgY29uZmxp Y3QgbG9nIHRvIHN1cHBvcnQgb3V0LW9mLWxpbmUgc3RvcmFnZQorCSAqIG9mIGxhcmdlIEpTT04g ZGF0YS4KKwkgKi8KKwlOZXdSZWxhdGlvbkNyZWF0ZVRvYXN0VGFibGUocmVsaWQsIChEYXR1bSkg MCk7CisKKwllcmVwb3J0KE5PVElDRSwKKwkJCShlcnJtc2coImNyZWF0ZWQgY29uZmxpY3QgbG9n IHRhYmxlIFwiJXNcIiBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiIsCisJCQkJCWdldF9xdWFsaWZp ZWRfb2JqbmFtZShQR19DT05GTElDVF9OQU1FU1BBQ0UsIHJlbG5hbWUpLAorCQkJCQlzdWJuYW1l KSkpOworCisJcmV0dXJuIHJlbGlkOworfQorCisvKgorICogQ29udmVydCB0aGUgc3RyaW5nIHJl cHJlc2VudGF0aW9uIG9mIGEgY29uZmxpY3QgbG9nZ2luZyBkZXN0aW5hdGlvbiB0byBpdHMKKyAq IGNvcnJlc3BvbmRpbmcgZW51bSB2YWx1ZS4KKyAqLworQ29uZmxpY3RMb2dEZXN0CitHZXRDb25m bGljdExvZ0Rlc3QoY29uc3QgY2hhciAqZGVzdCkKK3sKKwkvKiBFbXB0eSBzdHJpbmcgb3IgTlVM TCBkZWZhdWx0cyB0byBMT0cuICovCisJaWYgKGRlc3QgPT0gTlVMTCB8fCBkZXN0WzBdID09ICdc MCcgfHwgcGdfc3RyY2FzZWNtcChkZXN0LCAibG9nIikgPT0gMCkKKwkJcmV0dXJuIENPTkZMSUNU X0xPR19ERVNUX0xPRzsKKworCWlmIChwZ19zdHJjYXNlY21wKGRlc3QsICJ0YWJsZSIpID09IDAp CisJCXJldHVybiBDT05GTElDVF9MT0dfREVTVF9UQUJMRTsKKworCWlmIChwZ19zdHJjYXNlY21w KGRlc3QsICJhbGwiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMOworCisJ LyogVW5yZWNvZ25pemVkIHN0cmluZy4gKi8KKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUo RVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkgZXJybXNnKCJ1bnJlY29nbml6 ZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHZhbHVlOiBcIiVzXCIiLCBkZXN0KSwKKwkJCSBl cnJoaW50KCJWYWxpZCB2YWx1ZXMgYXJlIFwibG9nXCIsIFwidGFibGVcIiwgYW5kIFwiYWxsXCIu IikpKTsKK30KKwogLyoKICAqIEdldCB0aGUgeG1pbiBhbmQgY29tbWl0IHRpbWVzdGFtcCBkYXRh IChvcmlnaW4gYW5kIHRpbWVzdGFtcCkgYXNzb2NpYXRlZAogICogd2l0aCB0aGUgcHJvdmlkZWQg bG9jYWwgcm93LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hl LmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCAwMzZkZTVmNzll Zi4uZTUyZDRjY2QwODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNj YWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zNzA5 LDcgKzM3MDksNyBAQCBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcChPaWQgbnNwaWQpCiAgKgkJ b2JqZWN0IGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlIElEIGFuZCBvYmplY3QgbmFtZS4KICAqLwog Y2hhciAqCi1nZXRfcXVhbGlmaWVkX29iam5hbWUoT2lkIG5zcGlkLCBjaGFyICpvYmpuYW1lKQor Z2V0X3F1YWxpZmllZF9vYmpuYW1lKE9pZCBuc3BpZCwgY29uc3QgY2hhciAqb2JqbmFtZSkKIHsK IAljaGFyCSAgICpuc3BuYW1lOwogCWNoYXIJICAgKnJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKaW5kZXggMTRjYjc5 YzI2YmUuLjgwM2NhNDExMmQ0IDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwor KysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAtMTgzOSw2ICsxODM5LDEyIEBAIHNldHVw X3ByaXZpbGVnZXMoRklMRSAqY21kZmQpCiAJCQkJICAiICBBTkQgcmVsYWNsIElTIE5VTEw7XG5c biIsCiAJCQkJICBlc2NhcGVfcXVvdGVzKHVzZXJuYW1lKSk7CiAJUEdfQ01EX1BVVFMoIkdSQU5U IFVTQUdFIE9OIFNDSEVNQSBwZ19jYXRhbG9nLCBwdWJsaWMgVE8gUFVCTElDO1xuXG4iKTsKKwor CS8qCisJICogQWxsb3cgbm9uLXN1cGVydXNlciBzdWJzY3JpcHRpb24gb3duZXJzIHRvIGFjY2Vz cyB0aGVpciBhc3NvY2lhdGVkCisJICogY29uZmxpY3QgbG9nIHRhYmxlcyBpbiB0aGUgcGdfY29u ZmxpY3Qgc2NoZW1hLgorCSAqLworCVBHX0NNRF9QVVRTKCJHUkFOVCBVU0FHRSBPTiBTQ0hFTUEg cGdfY29uZmxpY3QgVE8gUFVCTElDO1xuXG4iKTsKIAlQR19DTURfUFVUUygiUkVWT0tFIEFMTCBP TiBwZ19sYXJnZW9iamVjdCBGUk9NIFBVQkxJQztcblxuIik7CiAJUEdfQ01EX1BVVFMoIklOU0VS VCBJTlRPIHBnX2luaXRfcHJpdnMgIgogCQkJCSIgIChvYmpvaWQsIGNsYXNzb2lkLCBvYmpzdWJp ZCwgaW5pdHByaXZzLCBwcml2dHlwZSkiCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZGU1NDdh OGNiMzcuLjY2ZWUxYjZjMmE0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzc2LDggKzIz NzYsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVf V0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFtZT4g U0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRj aEFueSwgTWF0Y2hBbnlOLCAiU0VUIiwgIigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5Iiwg ImRpc2FibGVfb25fZXJyb3IiLCAiZmFpbG92ZXIiLAotCQkJCQkgICJtYXhfcmV0ZW50aW9uX2R1 cmF0aW9uIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25mbGljdF9s b2dfZGVzdGluYXRpb24iLCAiZGlzYWJsZV9vbl9lcnJvciIsCisJCQkJCSAgImZhaWxvdmVyIiwg Im1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVx dWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNs b3RfbmFtZSIsICJzdHJlYW1pbmciLAogCQkJCQkgICJzeW5jaHJvbm91c19jb21taXQiLCAidHdv X3BoYXNlIik7CkBAIC0zOTYwLDggKzM5NjAsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiV0lUSCAoIik7CiAJLyogQ29tcGxldGUgIkNS RUFURSBTVUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAqLwogCWVsc2UgaWYg KE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueU4sICJXSVRIIiwgIigi KSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwgImNy ZWF0ZV9zbG90IiwKLQkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZhaWxv dmVyIiwKKwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biIsICJjb25uZWN0IiwgImNvcHlfZGF0YSIsCisJCQkJCSAgImNyZWF0ZV9zbG90IiwgImRpc2Fi bGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsCiAJCQkJCSAgIm1heF9yZXRlbnRp b25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVxdWlyZWQiLCAicmV0 YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNsb3RfbmFtZSIsICJz dHJlYW1pbmciLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaAppbmRleCBhOWQ2ZThlYTk4Ni4uZmVhYjM5ODJj ZjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCkBAIC0yNSw2ICsyNSw3IEBAIGV4dGVybiBib29sIElz SW5wbGFjZVVwZGF0ZVJlbGF0aW9uKFJlbGF0aW9uIHJlbGF0aW9uKTsKIAogZXh0ZXJuIGJvb2wg SXNTeXN0ZW1DbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogZXh0ZXJu IGJvb2wgSXNUb2FzdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOworZXh0ZXJuIGJvb2wg SXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CiAKIGV4dGVy biBib29sIElzQ2F0YWxvZ1JlbGF0aW9uT2lkKE9pZCByZWxpZCk7CiBleHRlcm4gYm9vbCBJc0Nh dGFsb2dUZXh0VW5pcXVlSW5kZXhPaWQoT2lkIHJlbGlkKTsKQEAgLTMyLDYgKzMzLDcgQEAgZXh0 ZXJuIGJvb2wgSXNJbnBsYWNlVXBkYXRlT2lkKE9pZCByZWxpZCk7CiAKIGV4dGVybiBib29sIElz Q2F0YWxvZ05hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOwogZXh0ZXJuIGJvb2wgSXNUb2FzdE5h bWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOworZXh0ZXJuIGJvb2wgSXNDb25mbGljdExvZ1RhYmxl TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCk7CiAKIGV4dGVybiBib29sIElzUmVzZXJ2ZWROYW1l KGNvbnN0IGNoYXIgKm5hbWUpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X25hbWVzcGFjZS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQKaW5k ZXggMzA3NWUxNDJjNzMuLmI0NWNiOTM4M2E4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX25hbWVzcGFjZS5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3Bh Y2UuZGF0CkBAIC0xOCw2ICsxOCw5IEBACiB7IG9pZCA9PiAnOTknLCBvaWRfc3ltYm9sID0+ICdQ R19UT0FTVF9OQU1FU1BBQ0UnLAogICBkZXNjciA9PiAncmVzZXJ2ZWQgc2NoZW1hIGZvciBUT0FT VCB0YWJsZXMnLAogICBuc3BuYW1lID0+ICdwZ190b2FzdCcsIG5zcGFjbCA9PiAnX251bGxfJyB9 LAoreyBvaWQgPT4gJzEzODInLCBvaWRfc3ltYm9sID0+ICdQR19DT05GTElDVF9OQU1FU1BBQ0Un LAorICBkZXNjciA9PiAncmVzZXJ2ZWQgc2NoZW1hIGZvciBzdWJzY3JpcHRpb24tc3BlY2lmaWMg Y29uZmxpY3QgbG9nIHRhYmxlcycsCisgIG5zcG5hbWUgPT4gJ3BnX2NvbmZsaWN0JywgbnNwYWNs ID0+ICdfbnVsbF8nIH0sCiAjIHVwZGF0ZSBkdW1wTmFtZXNwYWNlKCkgaWYgY2hhbmdpbmcgdGhp cyBkZXNjcgogeyBvaWQgPT4gJzIyMDAnLCBvaWRfc3ltYm9sID0+ICdQR19QVUJMSUNfTkFNRVNQ QUNFJywKICAgZGVzY3IgPT4gJ3N0YW5kYXJkIHB1YmxpYyBzY2hlbWEnLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggNDg5NDQyMDE4ODkuLjQzMzhlNjYyMGI0IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKQEAgLTk1LDcgKzk1LDE2IEBAIENBVEFM T0cocGdfc3Vic2NyaXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJF RF9SRUxBVElPTiBCS0lfUk9XCiAJT2lkCQkJc3Vic2VydmVyIEJLSV9MT09LVVBfT1BUKHBnX2Zv cmVpZ25fc2VydmVyKTsJLyogSWYgY29ubmVjdGlvbiB1c2VzCiAJCQkJCQkJCQkJCQkJCQkJICog c2VydmVyICovCiAKKwlPaWQJCQlzdWJjb25mbGljdGxvZ3JlbGlkOyAvKiBSZWxpZCBvZiB0aGUg Y29uZmxpY3QgbG9nIHRhYmxlLiAqLwogI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFi bGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisJLyoKKwkgKiBTdHJhdGVneSBmb3IgbG9n Z2luZyByZXBsaWNhdGlvbiBjb25mbGljdHM6CisJICogJ2xvZycgLSBzZXJ2ZXIgbG9nIG9ubHks CisJICogJ3RhYmxlJyAtIGNvbmZsaWN0IGxvZyB0YWJsZSBvbmx5LAorCSAqICdhbGwnIC0gYm90 aCBsb2cgYW5kIHRhYmxlLgorCSAqLworCXRleHQJCXN1YmNvbmZsaWN0bG9nZGVzdCBCS0lfRk9S Q0VfTk9UX05VTEw7CisKIAkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUgcHVibGlzaGVyICov CiAJdGV4dAkJc3ViY29ubmluZm87CS8qIFNldCBpZiBjb25uZWN0aW5nIHdpdGggY29ubmVjdGlv biBzdHJpbmcgKi8KIApAQCAtMTY0LDYgKzE3Myw3IEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlw dGlvbgogCQkJCQkJCQkJICogYW5kIHRoZSByZXRlbnRpb24gZHVyYXRpb24gaGFzIG5vdAogCQkJ CQkJCQkJICogZXhjZWVkZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgogCQkJCQkJCQkJ ICogZGVmaW5lZCAqLworCU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CS8qIGNvbmZsaWN0IGxvZyB0 YWJsZSBPaWQgKi8KIAljaGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRv IHRoZSBwdWJsaXNoZXIgKi8KIAljaGFyCSAgICpzbG90bmFtZTsJCS8qIE5hbWUgb2YgdGhlIHJl cGxpY2F0aW9uIHNsb3QgKi8KIAljaGFyCSAgICpzeW5jY29tbWl0OwkJLyogU3luY2hyb25vdXMg Y29tbWl0IHNldHRpbmcgZm9yIHdvcmtlciAqLwpAQCAtMTcxLDYgKzE4MSw3IEBAIHR5cGVkZWYg c3RydWN0IFN1YnNjcmlwdGlvbgogCUxpc3QJICAgKnB1YmxpY2F0aW9uczsJLyogTGlzdCBvZiBw dWJsaWNhdGlvbiBuYW1lcyB0byBzdWJzY3JpYmUgdG8gKi8KIAljaGFyCSAgICpvcmlnaW47CQkJ LyogT25seSBwdWJsaXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUKIAkJCQkJCQkJICogc3Bl Y2lmaWVkIG9yaWdpbiAqLworCWNoYXIJICAgKmNvbmZsaWN0bG9nZGVzdDsJLyogQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uICovCiB9IFN1YnNjcmlwdGlvbjsKIAogI2lmZGVmIEVYUE9TRV9UT19D TElFTlRfQ09ERQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3Qu aCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKaW5kZXggMmQ5ZGJjZjRkMGQu LmEwMTdlMWU2Y2I1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGlj dC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKQEAgLTEwLDYgKzEw LDcgQEAKICNkZWZpbmUgQ09ORkxJQ1RfSAogCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiZGF0YXR5cGUvdGltZXN0 YW1wLmgiCiAjaW5jbHVkZSAibm9kZXMvcGdfbGlzdC5oIgogCkBAIC03OSw2ICs4MCwzMiBAQCB0 eXBlZGVmIHN0cnVjdCBDb25mbGljdFR1cGxlSW5mbwogCQkJCQkJCQkgKiBjb25mbGljdGluZyBs b2NhbCByb3cgb2NjdXJyZWQgKi8KIH0gQ29uZmxpY3RUdXBsZUluZm87CiAKKy8qCisgKiBEZWZp bmVzIHdoZXJlIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QgZGV0YWlscyBhcmUgcmVjb3Jk ZWQuCisgKgorICogV2hpbGUgc3RvcmVkIGFzIGEgdGV4dC1iYXNlZCBhcnJheS9zdHJpbmcgaW4K KyAqIHBnX3N1YnNjcmlwdGlvbi5zdWJjb25mbGljdGxvZ2Rlc3QgZm9yIHVzZXIgcmVhZGFiaWxp dHkgYW5kIGV4dGVuc2liaWxpdHksCisgKiB3ZSBtYXAgdGhlc2UgdG8gYW4gaW50ZXJuYWwgZW51 bSB0byBhbGxvdyBmb3IgZWZmaWNpZW50IGNoZWNrcy4KKyAqLwordHlwZWRlZiBlbnVtIENvbmZs aWN0TG9nRGVzdAoreworCUNPTkZMSUNUX0xPR19ERVNUX0xPRyA9IDAsCS8qIEVtaXQgdG8gc2Vy dmVyIGxvZ3MgKi8KKwlDT05GTElDVF9MT0dfREVTVF9UQUJMRSwJLyogSW5zZXJ0IGludG8gdGhl IGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCUNPTkZMSUNUX0xPR19ERVNUX0FMTAkJLyogQm90aCBs b2cgYW5kIHRhYmxlICovCit9IENvbmZsaWN0TG9nRGVzdDsKKworI2RlZmluZSBDT05GTElDVFNf TE9HR0VEX1RPX1RBQkxFKGRlc3QpIFwKKwkoKGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfVEFC TEUpIHx8IChkZXN0ID09IENPTkZMSUNUX0xPR19ERVNUX0FMTCkpCisjZGVmaW5lIENPTkZMSUNU U19MT0dHRURfVE9fTE9HKGRlc3QpIFwKKwkoKGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfTE9H KSB8fCAoZGVzdCA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwpKQorCisvKgorICogQXJyYXkgbWFw cGluZyBmb3IgY29udmVydGluZyBpbnRlcm5hbCBlbnVtIHRvIHN0cmluZy4KKyAqLworZXh0ZXJu IFBHRExMSU1QT1JUIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVzW107CisK K2V4dGVybiBPaWQgY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1 Ym5hbWUsIE9pZCBzdWJvd25lcik7CitleHRlcm4gQ29uZmxpY3RMb2dEZXN0IEdldENvbmZsaWN0 TG9nRGVzdChjb25zdCBjaGFyICpkZXN0KTsKIGV4dGVybiBib29sIEdldFR1cGxlVHJhbnNhY3Rp b25JbmZvKFR1cGxlVGFibGVTbG90ICpsb2NhbHNsb3QsCiAJCQkJCQkJCQlUcmFuc2FjdGlvbklk ICp4bWluLAogCQkJCQkJCQkJUmVwbE9yaWdpbklkICpsb2NhbG9yaWdpbiwKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmgKaW5kZXggODY1OTgwY2IwZjEuLjUzYzJhOWU4NjczIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aApAQCAtMjAyLDcgKzIwMiw3IEBAIGV4dGVybiBib29sIGdldF9hdHRzdGF0c3Nsb3QoQXR0U3Rh dHNTbG90ICpzc2xvdCwgSGVhcFR1cGxlIHN0YXRzdHVwbGUsCiBleHRlcm4gdm9pZCBmcmVlX2F0 dHN0YXRzc2xvdChBdHRTdGF0c1Nsb3QgKnNzbG90KTsKIGV4dGVybiBjaGFyICpnZXRfbmFtZXNw YWNlX25hbWUoT2lkIG5zcGlkKTsKIGV4dGVybiBjaGFyICpnZXRfbmFtZXNwYWNlX25hbWVfb3Jf dGVtcChPaWQgbnNwaWQpOwotZXh0ZXJuIGNoYXIgKmdldF9xdWFsaWZpZWRfb2JqbmFtZShPaWQg bnNwaWQsIGNoYXIgKm9iam5hbWUpOworZXh0ZXJuIGNoYXIgKmdldF9xdWFsaWZpZWRfb2JqbmFt ZShPaWQgbnNwaWQsIGNvbnN0IGNoYXIgKm9iam5hbWUpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2Vf c3VidHlwZShPaWQgcmFuZ2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfY29sbGF0aW9uKE9p ZCByYW5nZU9pZCk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9jb25zdHJ1Y3RvcjIoT2lkIHJhbmdl T2lkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9u Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAppbmRleCA4 ZGJmYWM2NjMyNi4uNmZhMGU4ZDE2ZmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1 YnNjcmlwdGlvbi5vdXQKQEAgLTYxOSw2ICs2MTksMzE1IEBAIENPTU1JVDsKIC0tIG9rLCBvd25p bmcgaXQgaXMgZW5vdWdoIGZvciB0aGlzIHN0dWZmCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWI7CistLQorLS0gQ09ORkxJQ1QgTE9HIERFU1RJTkFUSU9OIFRFU1RTCistLQor U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcic7CitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CistLSBmYWlsIC0gdW5yZWNvZ25pemVk IHBhcmFtZXRlciB2YWx1ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2Zh aWwgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0 ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0g J2ludmFsaWQnKTsKK0VSUk9SOiAgdW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biB2YWx1ZTogImludmFsaWQiCitISU5UOiAgVmFsaWQgdmFsdWVzIGFyZSAibG9nIiwgInRhYmxl IiwgYW5kICJhbGwiLgorLS0gdmVyaWZ5IHN1YmNvbmZsaWN0bG9nZGVzdCBpcyAnbG9nJyBhbmQg c3ViY29uZmxpY3Rsb2dyZWxpZCBpcyAwIChJbnZhbGlkT2lkKSBmb3IgZGVmYXVsdCBjYXNlCitD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgQ09OTkVDVElP TiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEgg KGNvbm5lY3QgPSBmYWxzZSk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBi dXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3Ug bXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vi c2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0 aW9ucy4KK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9n cmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF9sb2dfZGVmYXVsdCc7CisgICAgICAgICAgIHN1Ym5hbWUgICAgICAgICAgICB8IHN1YmNv bmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCB8IGxvZyAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgIDAKKygxIHJvdykKKworLS0gdmVyaWZ5IGVtcHR5IHN0cmluZyBkZWZhdWx0 cyB0byAnbG9nJworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0 ciBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRl c3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAn Jyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5l Y3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBj cmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQg YWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KK1NFTEVDVCBz dWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdf c3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIn OworICAgICAgICAgIHN1Ym5hbWUgICAgICAgICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0IHwgc3Vi Y29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19jb25mbGljdF9lbXB0 eV9zdHIgfCBsb2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cp CisKKy0tIHRoaXMgc2hvdWxkIGdlbmVyYXRlIGFuIGNvbmZsaWN0IGxvZyB0YWJsZSBuYW1lZCBw Z19jb25mbGljdF9sb2dfJHN1YmlkJAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QxIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElD QVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiA9ICd0YWJsZScpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0 IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11 c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNj cmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlv bnMuCistLSBjaGVjayBtZXRhZGF0YSBpbiBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNo b3VsZCBiZSAndGFibGUnIGFuZCBzdWJjb25mbGljdGxvZ3JlbGlkIHZhbGlkCitTRUxFQ1Qgc3Vi bmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNf cmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF90ZXN0MSc7CisgICAgICAgIHN1Ym5hbWUgICAgICAgICB8IHN1YmNvbmZsaWN0bG9nZGVz dCB8IGhhc19yZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgfCB0YWJsZSAgICAgICAg ICAgICAgfCB0CisoMSByb3cpCisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgZXhpc3Rz LCBpdHMgT0lEIG1hdGNoZXMgc3ViY29uZmxpY3Rsb2dyZWxpZCwKKy0tIGFuZCBpdCBpcyBsb2Nh dGVkIGluIHRoZSAncGdfY29uZmxpY3QnIG5hbWVzcGFjZQorU0VMRUNUIG4ubnNwbmFtZSwgKGMu b2lkID0gcy5zdWJjb25mbGljdGxvZ3JlbGlkKSBBUyAib2lkX21hdGNoZXMiCitGUk9NIHBnX2Ns YXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0 X2xvZ18nIHx8IHMub2lkCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0g bi5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAgIG5z cG5hbWUgICB8IG9pZF9tYXRjaGVzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcGdf Y29uZmxpY3QgfCB0CisoMSByb3cpCisKKy0tIGNoZWNrIGlmIHRoZSBjb25mbGljdCBsb2cgdGFi bGUgaGFzIHRoZSBjb3JyZWN0IHNjaGVtYQorU0VMRUNUIGEuYXR0bnVtLCBhLmF0dG5hbWUKK0ZS T00gcGdfYXR0cmlidXRlIGEKK0pPSU4gcGdfY2xhc3MgYyBPTiBhLmF0dHJlbGlkID0gYy5vaWQK K0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18n IHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5E IGEuYXR0bnVtID4gMAorICAgIE9SREVSIEJZIGEuYXR0bnVtOworIGF0dG51bSB8ICAgICAgYXR0 bmFtZSAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgMSB8IHJlbGlk CisgICAgICAyIHwgc2NoZW1hbmFtZQorICAgICAgMyB8IHJlbG5hbWUKKyAgICAgIDQgfCBjb25m bGljdF90eXBlCisgICAgICA1IHwgcmVtb3RlX3hpZAorICAgICAgNiB8IHJlbW90ZV9jb21taXRf bHNuCisgICAgICA3IHwgcmVtb3RlX2NvbW1pdF90cworICAgICAgOCB8IHJlbW90ZV9vcmlnaW4K KyAgICAgIDkgfCByZW1vdGVfdHVwbGUKKyAgICAgMTAgfCByZXBsaWNhX2lkZW50aXR5CisgICAg IDExIHwgbG9jYWxfY29uZmxpY3RzCisoMTEgcm93cykKKworLS0gQ2hhbmdpbmcgdGhlIHN1YnNj cmlwdGlvbiBvd25lciBzaG91bGQgYWxzbyB1cGRhdGUgdGhlIG93bmVyCistLSBvZiB0aGUgYXNz b2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MSBPV05FUiBUTyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKK1NFTEVD VCBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lcgorRlJPTSBw Z19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcwor ICAgICAgICBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJF IHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAgICAgICAgICAgb3duZXIg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyMgorKDEgcm93KQorCistLSBWZXJpZnkgdGhhdCBhIG5vbi1zdXBlcnVzZXIg c3Vic2NyaXB0aW9uIG93bmVyIGNhbiB0cnVuY2F0ZSwKKy0tIGRlbGV0ZSBmcm9tLCBhbmQgc2Vs ZWN0IGZyb20gdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgorU0VUIFJPTEUgJ3Jl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyJzsKK1NFTEVDVCBmb3JtYXQoJyVJLiVJJywgbi5uc3Bu YW1lLCBjLnJlbG5hbWUpIEFTIGNvbmZsaWN0X2xvZ190YWJsZQorRlJPTSBwZ19jYXRhbG9nLnBn X2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbgorCU9OIG4ub2lkID0gYy5y ZWxuYW1lc3BhY2UKK0pPSU4gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcworCU9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfdGVzdDEnCitcZ3NldAorVFJVTkNBVEUgVEFCTEUgOmNvbmZsaWN0X2xv Z190YWJsZTsKK0RFTEVURSBGUk9NIDpjb25mbGljdF9sb2dfdGFibGU7CitTRUxFQ1QgQ09VTlQo KikgRlJPTSA6Y29uZmxpY3RfbG9nX3RhYmxlOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCiso MSByb3cpCisKK1JFU0VUIFJPTEU7CistLSBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzdWJzY3JpcHRp b24gb3duZXIuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05F UiBUTyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOworLS0KKy0tIEFMVEVSIFNVQlNDUklQVElP TiAtIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0tIFRo ZXNlIHRlc3RzIHZlcmlmeSB0aGUgdHJhbnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVudCBs b2dnaW5nCistLSBkZXN0aW5hdGlvbnMsIGVuc3VyaW5nIGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJl IGNyZWF0ZWQgb3IgZHJvcHBlZCBhcworLS0gZXhwZWN0ZWQKKy0tCistLSB0cmFuc2l0aW9uIGZy b20gJ2xvZycgdG8gJ2FsbCcKKy0tIGEgbmV3IGNvbmZsaWN0IGxvZyB0YWJsZSBzaG91bGQgYmUg Y3JlYXRlZAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIENPTk5F Q1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBX SVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsK K1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVk CitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0 ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRl ciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRp b24gPSAnYWxsJyk7CistLSB2ZXJpZnkgbWV0YWRhdGEgYWZ0ZXIgQUxURVIgKGRlc3RpbmF0aW9u IHNob3VsZCBiZSAnYWxsJykKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1 YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24g V0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyAgICAgICAgc3VibmFt ZSAgICAgICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0IHwgaGFzX3JlbGlkIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgcmVncmVzc19j b25mbGljdF90ZXN0MiB8IGFsbCAgICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworLS0gdHJh bnNpdGlvbiBmcm9tICdhbGwnIHRvICd0YWJsZScKKy0tIHNob3VsZCBOT1QgZHJvcCB0aGUgdGFi bGUsIG9ubHkgY2hhbmdlIGRlc3RpbmF0aW9uIHN0cmluZworU0VMRUNUIHN1YmNvbmZsaWN0bG9n cmVsaWQgQVMgb2xkX3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF90ZXN0MicgXGdzZXQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7 CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID0gOm9sZF9y ZWxpZCBBUyByZWxpZF91bmNoYW5nZWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7Cisgc3ViY29uZmxpY3Rsb2dkZXN0IHwgcmVs aWRfdW5jaGFuZ2VkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyB0 YWJsZSAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIHRyYW5zaXRpb24gZnJvbSAndGFi bGUnIHRvICdsb2cnCistLSBzaG91bGQgZHJvcCB0aGUgdGFibGUgYW5kIGNsZWFyIHN1YmNvbmZs aWN0bG9ncmVsaWQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNF VCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOworU0VMRUNUIHN1YmNvbmZsaWN0 bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUg c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyBzdWJjb25mbGljdGxvZ2Rlc3Qg fCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgbG9nICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgMAorKDEg cm93KQorCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGlzIGdvbmUKK1NFTEVDVCBjb3Vu dCgqKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFt ZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jl c3NfY29uZmxpY3RfdGVzdDInOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisK Ky0tCistLSBQVUJMSUNBVElPTjogVmVyaWZ5IGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG5vdCBw dWJsaXNoYWJsZQorLS0KKy0tIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlIHNob3VsZCByZXR1 cm4gZmFsc2UgZm9yIGNvbmZsaWN0IGxvZyB0YWJsZXMgdG8KKy0tIHByZXZlbnQgdGhlbSBmcm9t IGJlaW5nIGFjY2lkZW50YWxseSBpbmNsdWRlZCBpbiBwdWJsaWNhdGlvbnMKKy0tCitTRUxFQ1Qg bi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZShjLm9pZCkKK0ZST00gcGdfY2xh c3MgYworSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitKT0lO IHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMuc3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMub2lkCitXSEVS RSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICBuc3BuYW1lICAgfCBw Z19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHBnX2NvbmZsaWN0IHwgZgorKDEgcm93KQorCistLQorLS0gVGFibGUg UHJvdGVjdGlvbiBhbmQgTGlmZWN5Y2xlIE1hbmFnZW1lbnQKKy0tCistLSBUaGVzZSB0ZXN0cyB2 ZXJpZnkgdGhhdDoKKy0tIE1hbnVhbCBEUk9QIFRBQkxFIGlzIGRpc2FsbG93ZWQKKy0tIERST1Ag U1VCU0NSSVBUSU9OIGF1dG9tYXRpY2FsbHkgcmVhcHMgdGhlIHRhYmxlCistLQorLS0gcmUtZW5h YmxlIHRhYmxlIGxvZ2dpbmcgZm9yIHZlcmlmaWNhdGlvbgorQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFi bGUnKTsKKy0tIFdlIHVzZSBhIERPIGJsb2NrIHdpdGggZHluYW1pYyBTUUwgYmVjYXVzZSB0aGUg Y29uZmxpY3QgbG9nIHRhYmxlCistLSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJzY3JpcHRpb24gT0lE LCB3aGljaCBpcyBub24tZGV0ZXJtaW5pc3RpYy4gVGhpcworLS0gYXBwcm9hY2ggYWxsb3dzIHVz IHRvIGF0dGVtcHQgdGhlIERST1AgYW5kIGNhcHR1cmUgdGhlIGV4cGVjdGVkIGVycm9yCistLSB3 aXRob3V0IGhhcmQtY29kaW5nIGEgc3BlY2lmaWMgT0lEIGluIHRoZSBleHBlY3RlZCBvdXRwdXQK Ky0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRl bmN5CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5PVElDRTsKK0RPICQkCitCRUdJTgorICAg IEVYRUNVVEUgJ0RST1AgVEFCTEUgJyB8fCAoU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGlj dF9sb2dfJyB8fCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmls ZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1 ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAkJDsKK05PVElDRTogIGNhcHR1cmVkIGV4cGVjdGVk IGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlCistLSBDTEVBTlVQOiBEUk9QIFNVQlNDUklQ VElPTiByZWFwcyB0aGUgdGFibGUKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MSBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworLS0gVmVyaWZ5IHRoZSB0YWJsZSBPSUQgZm9yIHJl YXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9nXycgfHwgb2lkIEFT IGludGVybmFsX3RhYmxlbmFtZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIFxnc2V0CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 IFdBUk5JTkc7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxOworLS0g c2hvdWxkIHJldHVybiBOVUxMLCBtZWFuaW5nIHRoZSBjb25mbGljdCBsb2cgdGFibGUgd2FzIHJl YXBlZCB2aWEgZGVwZW5kZW5jeQorU0VMRUNUIHRvX3JlZ2NsYXNzKDonaW50ZXJuYWxfdGFibGVu YW1lJyk7CisgdG9fcmVnY2xhc3MgCistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKKy0tCist LSBBZGRpdGlvbmFsIE5hbWVzcGFjZSBhbmQgVGFibGUgUHJvdGVjdGlvbiBUZXN0cworLS0KKy0t IFNldHVwOiBFbnN1cmUgd2UgaGF2ZSBhIHN1YnNjcmlwdGlvbiB3aXRoIGEgY29uZmxpY3QgbG9n IHRhYmxlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90 ZXN0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcKKyAgICBQVUJMSUNB VElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uID0gJ3RhYmxlJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQg aXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVz dCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2Ny aXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9u cy4KKy0tIFRyeWluZyB0byBBTFRFUiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNo b3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBBcyBtZW50 aW9uZWQgaW4gcHJldmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEgRE8gYmxvY2sgdG8gaGlkZSBk eW5hbWljIE9JRHMKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gTk9USUNFOworRE8gJCQKK0RF Q0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0 LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdf c3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lk CisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0 JzsKKworICAgIFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBjb25mbGlj dCBsb2cgdGFibGUnOworICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25hbWUgfHwg JyBBREQgQ09MVU1OIGV4dHJhX2luZm8gdGV4dCc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2ll bnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVy cm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBBTFRFUic7CitFTkQgJCQ7CitOT1RJ Q0U6ICBBdHRlbXB0aW5nIEFMVEVSIFRBQkxFIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorTk9USUNF OiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5n IEFMVEVSCistLSBUZXN0IE1hbnVhbCBJTlNFUlQgb24gY29uZmxpY3QgbG9nIHRhYmxlCistLSBU aGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBI aWRpbmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0 aW9uCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVD VCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2Ns YXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3Rf bG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAnSU5TRVJUIElOVE8gJyB8fCB0YWJfbmFt ZSB8fCAnIChyZWxuYW1lKSBWQUxVRVMgKCcnbXl0ZXN0JycpJzsKK0VYQ0VQVElPTiBXSEVOIHdy b25nX29iamVjdF90eXBlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVk IGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgSU5TRVJUJzsKK0VORCAkJDsKK05PVElD RTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgSU5T RVJUCistLSBUZXN0IE1hbnVhbCBVUERBVEUgb24gY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlz IHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBIaWRp bmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0aW9u CitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAn cGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNz IGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9n XycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90 ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAnVVBEQVRFICcgfHwgdGFiX25hbWUgfHwgJyBT RVQgcmVsbmFtZSA9ICcnbXl0ZXN0JycgJzsKK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90 eXBlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiB3cm9u Z19vYmplY3RfdHlwZSBkdXJpbmcgVVBEQVRFJzsKK0VORCAkJDsKK05PVElDRTogIGNhcHR1cmVk IGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgVVBEQVRFCistLSBUcnlp bmcgdG8gcGVyZm9ybSBUUlVOQ0FURS9ERUxFVEUgb24gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQor LS0gVGhpcyBzaG91bGQgYmUgYWxsb3dlZCBzbyB0aGF0IHVzZXIgY2FuIHBlcmZvcm0gY2xlYW51 cAorU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgQVMgY29uZmxpY3RfdGFiCitGUk9N IHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF9wcm90ZWN0aW9uX3Rlc3QnIFxnc2V0CitUUlVOQ0FURSA6Y29uZmxpY3RfdGFiOworREVMRVRF IEZST00gOmNvbmZsaWN0X3RhYjsKKy0tIFRyeWluZyB0byBjcmVhdGUgYSBuZXcgdGFibGUgbWFu dWFsbHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVGhpcyBzaG91bGQgZmFpbCBh cyB0aGUgbmFtZXNwYWNlIGlzIHJlc2VydmVkIGZvciBjb25mbGljdCBsb2dzIHRhYmxlcworQ1JF QVRFIFRBQkxFIHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJsZSAoaWQgaW50KTsKK0VSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHNjaGVtYSBwZ19jb25mbGljdAorTElORSAxOiBDUkVBVEUgVEFC TEUgcGdfY29uZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOworICAgICAgICAgICAgICAgICAg ICAgXgorLS0gTW92aW5nIGFuIGV4aXN0aW5nIHRhYmxlIGludG8gdGhlIHBnX2NvbmZsaWN0IG5h bWVzcGFjZQorLS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIG1vdmUgdGhlaXIgb3duIHRh YmxlcyB3aXRoaW4gdGhpcyBuYW1lc3BhY2UKK0NSRUFURSBUQUJMRSBwdWJsaWMudGVzdF9tb3Zl IChpZCBpbnQpOworQUxURVIgVEFCTEUgcHVibGljLnRlc3RfbW92ZSBTRVQgU0NIRU1BIHBnX2Nv bmZsaWN0OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2NoZW1hIHBnX2NvbmZsaWN0 CitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 IFdBUk5JTkc7CistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3JpcHRpb24KK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7CitBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVs dDsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxF OworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xv dF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5 X3N0cjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIERJU0FCTEU7 CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MjsKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBESVNBQkxF OworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IFNF VCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdDsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9M RSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9u LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggMDU1MzNk NjY2NzUuLmUzYjIwNzMwMTU0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJz Y3JpcHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwK QEAgLTQ3NCw2ICs0NzQsMjYyIEBAIENPTU1JVDsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YjsKIAorLS0KKy0tIENPTkZMSUNUIExPRyBERVNUSU5BVElPTiBURVNUUworLS0K KworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcic7 CisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKKworLS0gZmFpbCAtIHVucmVj b2duaXplZCBwYXJhbWV0ZXIgdmFsdWUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF9mYWlsIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElD QVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiA9ICdpbnZhbGlkJyk7CisKKy0tIHZlcmlmeSBzdWJjb25mbGljdGxvZ2Rlc3QgaXMgJ2xv ZycgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgaXMgMCAoSW52YWxpZE9pZCkgZm9yIGRlZmF1bHQg Y2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1 YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9n ZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0JzsKKworLS0gdmVyaWZ5IGVtcHR5 IHN0cmluZyBkZWZhdWx0cyB0byAnbG9nJworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2Nv bmZsaWN0X2VtcHR5X3N0ciBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qn IFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2df ZGVzdGluYXRpb24gPSAnJyk7CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBz dWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKworLS0gdGhpcyBzaG91bGQgZ2VuZXJhdGUg YW4gY29uZmxpY3QgbG9nIHRhYmxlIG5hbWVkIHBnX2NvbmZsaWN0X2xvZ18kc3ViaWQkCitDUkVB VEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3Qg PSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIGNoZWNr IG1ldGFkYXRhIGluIHBnX3N1YnNjcmlwdGlvbjogZGVzdGluYXRpb24gc2hvdWxkIGJlICd0YWJs ZScgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgdmFsaWQKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25m bGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBw Z19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsK KworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBleGlzdHMsIGl0cyBPSUQgbWF0Y2hlcyBz dWJjb25mbGljdGxvZ3JlbGlkLAorLS0gYW5kIGl0IGlzIGxvY2F0ZWQgaW4gdGhlICdwZ19jb25m bGljdCcgbmFtZXNwYWNlCitTRUxFQ1Qgbi5uc3BuYW1lLCAoYy5vaWQgPSBzLnN1YmNvbmZsaWN0 bG9ncmVsaWQpIEFTICJvaWRfbWF0Y2hlcyIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJz Y3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK0pP SU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAorV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSBjaGVjayBpZiB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIGhhcyB0aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVDVCBhLmF0dG51bSwgYS5h dHRuYW1lCitGUk9NIHBnX2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRyZWxp ZCA9IGMub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25m bGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0dG51bTsKKworLS0gQ2hh bmdpbmcgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBzaG91bGQgYWxzbyB1cGRhdGUgdGhlIG93bmVy CistLSBvZiB0aGUgYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUuCitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05FUiBUTyByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyMjsKK1NFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBB UyBvd25lcgorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxvZy5wZ19z dWJzY3JpcHRpb24gcworICAgICAgICBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycg fHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKwor LS0gVmVyaWZ5IHRoYXQgYSBub24tc3VwZXJ1c2VyIHN1YnNjcmlwdGlvbiBvd25lciBjYW4gdHJ1 bmNhdGUsCistLSBkZWxldGUgZnJvbSwgYW5kIHNlbGVjdCBmcm9tIHRoZSBhc3NvY2lhdGVkIGNv bmZsaWN0IGxvZyB0YWJsZS4KK1NFVCBST0xFICdyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMic7 CisKK1NFTEVDVCBmb3JtYXQoJyVJLiVJJywgbi5uc3BuYW1lLCBjLnJlbG5hbWUpIEFTIGNvbmZs aWN0X2xvZ190YWJsZQorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxv Zy5wZ19uYW1lc3BhY2UgbgorCU9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UKK0pPSU4gcGdfY2F0 YWxvZy5wZ19zdWJzY3JpcHRpb24gcworCU9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2df JyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnCitc Z3NldAorCitUUlVOQ0FURSBUQUJMRSA6Y29uZmxpY3RfbG9nX3RhYmxlOworREVMRVRFIEZST00g OmNvbmZsaWN0X2xvZ190YWJsZTsKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIDpjb25mbGljdF9sb2df dGFibGU7CisKK1JFU0VUIFJPTEU7CisKKy0tIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHN1YnNjcmlw dGlvbiBvd25lci4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIE9X TkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CisKKy0tCistLSBBTFRFUiBTVUJTQ1JJ UFRJT04gLSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gc3RhdGUgdHJhbnNpdGlvbnMKKy0tCist LSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRpb24gbG9naWMgYmV0d2VlbiBkaWZmZXJl bnQgbG9nZ2luZworLS0gZGVzdGluYXRpb25zLCBlbnN1cmluZyBjb25mbGljdCBsb2cgdGFibGVz IGFyZSBjcmVhdGVkIG9yIGRyb3BwZWQgYXMKKy0tIGV4cGVjdGVkCistLQorLS0gdHJhbnNpdGlv biBmcm9tICdsb2cnIHRvICdhbGwnCistLSBhIG5ldyBjb25mbGljdCBsb2cgdGFibGUgc2hvdWxk IGJlIGNyZWF0ZWQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3Rw dWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9n Jyk7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZs aWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdhbGwnKTsKKworLS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVy IEFMVEVSIChkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFtZSwgc3Vi Y29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZS T00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0 Mic7CisKKy0tIHRyYW5zaXRpb24gZnJvbSAnYWxsJyB0byAndGFibGUnCistLSBzaG91bGQgTk9U IGRyb3AgdGhlIHRhYmxlLCBvbmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBz dWJjb25mbGljdGxvZ3JlbGlkIEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biA9ICd0YWJsZScpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dy ZWxpZCA9IDpvbGRfcmVsaWQgQVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlwdGlv biBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworCistLSB0cmFuc2l0 aW9uIGZyb20gJ3RhYmxlJyB0byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBj bGVhciBzdWJjb25mbGljdGxvZ3JlbGlkCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1NFTEVD VCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2Ny aXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHZl cmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgaXMgZ29uZQorU0VMRUNUIGNvdW50KCopCitGUk9NIHBn X2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZs aWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90 ZXN0Mic7CisKKy0tCistLSBQVUJMSUNBVElPTjogVmVyaWZ5IGNvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIG5vdCBwdWJsaXNoYWJsZQorLS0KKy0tIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlIHNo b3VsZCByZXR1cm4gZmFsc2UgZm9yIGNvbmZsaWN0IGxvZyB0YWJsZXMgdG8KKy0tIHByZXZlbnQg dGhlbSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbmNsdWRlZCBpbiBwdWJsaWNhdGlvbnMKKy0t CitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZShjLm9pZCkKK0ZS T00gcGdfY2xhc3MgYworSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4u b2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMuc3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMu b2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0tCist LSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3ljbGUgTWFuYWdlbWVudAorLS0KKy0tIFRoZXNl IHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFsIERST1AgVEFCTEUgaXMgZGlzYWxsb3dlZAor LS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGljYWxseSByZWFwcyB0aGUgdGFibGUKKy0tCist LSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVyaWZpY2F0aW9uCitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biA9ICd0YWJsZScpOworCistLSBXZSB1c2UgYSBETyBibG9jayB3aXRoIGR5bmFtaWMgU1FMIGJl Y2F1c2UgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gbmFtZSBjb250YWlucyB0aGUgc3Vic2Ny aXB0aW9uIE9JRCwgd2hpY2ggaXMgbm9uLWRldGVybWluaXN0aWMuIFRoaXMKKy0tIGFwcHJvYWNo IGFsbG93cyB1cyB0byBhdHRlbXB0IHRoZSBEUk9QIGFuZCBjYXB0dXJlIHRoZSBleHBlY3RlZCBl cnJvcgorLS0gd2l0aG91dCBoYXJkLWNvZGluZyBhIHNwZWNpZmljIE9JRCBpbiB0aGUgZXhwZWN0 ZWQgb3V0cHV0CisKKy0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRl cm5hbCBkZXBlbmRlbmN5CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5PVElDRTsKK0RPICQk CitCRUdJTgorICAgIEVYRUNVVEUgJ0RST1AgVEFCTEUgJyB8fCAoU0VMRUNUICdwZ19jb25mbGlj dC5wZ19jb25mbGljdF9sb2dfJyB8fCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVk IGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAkJDsKKworLS0gQ0xFQU5VUDog RFJPUCBTVUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKworLS0gVmVyaWZ5IHRoZSB0 YWJsZSBPSUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxpY3QucGdfY29uZmxpY3Rf bG9nXycgfHwgb2lkIEFTIGludGVybmFsX3RhYmxlbmFtZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBX SEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIFxnc2V0CisKK1NFVCBjbGll bnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29u ZmxpY3RfdGVzdDE7CisKKy0tIHNob3VsZCByZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIHdhcyByZWFwZWQgdmlhIGRlcGVuZGVuY3kKK1NFTEVDVCB0b19yZWdjbGFz cyg6J2ludGVybmFsX3RhYmxlbmFtZScpOworCistLQorLS0gQWRkaXRpb25hbCBOYW1lc3BhY2Ug YW5kIFRhYmxlIFByb3RlY3Rpb24gVGVzdHMKKy0tCisKKy0tIFNldHVwOiBFbnN1cmUgd2UgaGF2 ZSBhIHN1YnNjcmlwdGlvbiB3aXRoIGEgY29uZmxpY3QgbG9nIHRhYmxlCitDUkVBVEUgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCcKKyAgICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNv bm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0t IFRyeWluZyB0byBBTFRFUiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBm YWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBBcyBtZW50aW9uZWQg aW4gcHJldmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEgRE8gYmxvY2sgdG8gaGlkZSBkeW5hbWlj IE9JRHMKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7CitETyAkJAorREVDTEFS RQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8 fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJz Y3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAg ICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwor CisgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFMVEVSIFRBQkxFIG9uIGNvbmZsaWN0IGxv ZyB0YWJsZSc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAnIEFE RCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0JzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9w cml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6 IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFMVEVSJzsKK0VORCAkJDsKKworLS0gVGVz dCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFp bCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQg aW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RF Q0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0 LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdf c3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lk CisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0 JzsKKworICAgIEVYRUNVVEUgJ0lOU0VSVCBJTlRPICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFt ZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7CitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlw ZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdf b2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVCc7CitFTkQgJCQ7CisKKy0tIFRlc3QgTWFudWFsIFVQ REFURSBvbiBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0 aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJv ciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJFCisgICAg dGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5h bWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlv biBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJF IHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBF WEVDVVRFICdVUERBVEUgJyB8fCB0YWJfbmFtZSB8fCAnIFNFVCByZWxuYW1lID0gJydteXRlc3Qn JyAnOworRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgorICAgIFJBSVNFIE5P VElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVjdF90eXBlIGR1cmluZyBV UERBVEUnOworRU5EICQkOworCistLSBUcnlpbmcgdG8gcGVyZm9ybSBUUlVOQ0FURS9ERUxFVEUg b24gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgYmUgYWxsb3dlZCBzbyB0 aGF0IHVzZXIgY2FuIHBlcmZvcm0gY2xlYW51cAorU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJl bG5hbWUgQVMgY29uZmxpY3RfdGFiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0 aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBz LnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnIFxnc2V0CitUUlVO Q0FURSA6Y29uZmxpY3RfdGFiOworREVMRVRFIEZST00gOmNvbmZsaWN0X3RhYjsKKworLS0gVHJ5 aW5nIHRvIGNyZWF0ZSBhIG5ldyB0YWJsZSBtYW51YWxseSBpbiB0aGUgcGdfY29uZmxpY3QgbmFt ZXNwYWNlCistLSBUaGlzIHNob3VsZCBmYWlsIGFzIHRoZSBuYW1lc3BhY2UgaXMgcmVzZXJ2ZWQg Zm9yIGNvbmZsaWN0IGxvZ3MgdGFibGVzCitDUkVBVEUgVEFCTEUgcGdfY29uZmxpY3QubWFudWFs X3RhYmxlIChpZCBpbnQpOworCistLSBNb3ZpbmcgYW4gZXhpc3RpbmcgdGFibGUgaW50byB0aGUg cGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBVc2VycyBzaG91bGQgbm90IGJlIGFibGUgdG8gbW92 ZSB0aGVpciBvd24gdGFibGVzIHdpdGhpbiB0aGlzIG5hbWVzcGFjZQorQ1JFQVRFIFRBQkxFIHB1 YmxpYy50ZXN0X21vdmUgKGlkIGludCk7CitBTFRFUiBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNF VCBTQ0hFTUEgcGdfY29uZmxpY3Q7CitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7CisKK1NF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKKworLS0gQ2xlYW4gdXAgcmVtYWluaW5n IHRlc3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9s b2dfZGVmYXVsdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf bG9nX2RlZmF1bHQgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7CisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cjsKKworQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfdGVzdDIgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyOworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJP UCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3Q7CisKIFJFU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdAppbmRleCBjNWRiNmNhNjcwNS4uNGUyNzc4NjNiMmMgMTAwNjQ0Ci0tLSBhL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CkBAIC01MTUsNiArNTE1LDggQEAgQ29uZGl0aW9uYWxTdGFjawogQ29uZGl0 aW9uYWxTdGFja0RhdGEKIENvbmZpZ0RhdGEKIENvbmZpZ1ZhcmlhYmxlCitDb25mbGljdExvZ0Nv bHVtbkRlZgorQ29uZmxpY3RMb2dEZXN0CiBDb25mbGljdFR1cGxlSW5mbwogQ29uZmxpY3RUeXBl CiBDb25uQ2FjaGVFbnRyeQotLSAKMi40OS4wCgo= --000000000000cc7a050655003f54 Content-Type: application/octet-stream; name="v56-0006-Documentation-patch.patch" Content-Disposition: attachment; filename="v56-0006-Documentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqs4zear5 RnJvbSAzZGUwNmY1ZjA4NDlkYTE3OTlhNmZmYTcxNWMzY2FhZGZhMGU2YzU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hckBEaWxpcC5sb2NhbD4K RGF0ZTogU3VuLCA1IEFwciAyMDI2IDE3OjAyOjAxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NTYg Ni82XSBEb2N1bWVudGF0aW9uIHBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAg ICAgICAgICAgICAgICAgIHwgIDIwICsKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAg ICAgICAgICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg ICAgIHwgNjY5ICsrKysrKysrKysrKystLS0tLS0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgIHwgIDEzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJz Y3JpcHRpb24uc2dtbCB8ICA1MSArKwogNSBmaWxlcyBjaGFuZ2VkLCA0OTQgaW5zZXJ0aW9ucygr KSwgMjcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBi L2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA3NDdmOTI5YWVlMy4uYzE2ZTM1ZGRmNTkgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKQEAgLTM3NTksNiArMzc1OSwyNiBAQCBSRVZPS0UgQ1JFQVRFIE9OIFNDSEVNQSBwdWJsaWMg RlJPTSBQVUJMSUM7CiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJkZGwt c2NoZW1hcy1jb25mbGljdCI+CisgICA8dGl0bGU+VGhlIENvbmZsaWN0IFNjaGVtYTwvdGl0bGU+ CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNjaGVtYXMtY29uZmxpY3QiPgorICAgIDxwcmlt YXJ5PmNvbmZsaWN0PC9wcmltYXJ5PgorICAgIDxzZWNvbmRhcnk+c2NoZW1hPC9zZWNvbmRhcnk+ CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2ltaWxhcmx5LCB0aGUgPGxpdGVy YWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+IHNjaGVtYSAoc29tZXRpbWVzIHJlZmVycmVkIHRvCisg ICAgYXMgdGhlIDxlbXBoYXNpcz5jb25mbGljdCBzY2hlbWE8L2VtcGhhc2lzPikgY29udGFpbnMg c3lzdGVtIG1hbmFnZWQKKyAgICBjb25mbGljdCBsb2cgdGFibGVzIHVzZWQgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3QgdHJhY2tpbmcuIFRoZXNlCisgICAgdGFibGVzIGFyZSBjcmVh dGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBub3QgaW50ZW5kZWQgZm9y CisgICAgZGlyZWN0IHVzZXIgbWFuaXB1bGF0aW9uLiBVbmxpa2UgPGxpdGVyYWw+cGdfY2F0YWxv ZzwvbGl0ZXJhbD4sIHRoZQorICAgIDxsaXRlcmFsPnBnX2NhdGFsb2c8L2xpdGVyYWw+IHNjaGVt YSBpcyBub3QgaW1wbGljaXRseSBpbmNsdWRlZCBpbiB0aGUKKyAgICBzZWFyY2ggcGF0aCwgc28g b2JqZWN0cyB3aXRoaW4gaXQgbXVzdCBiZSByZWZlcmVuY2VkIGV4cGxpY2l0bHkgb3IgYnkKKyAg ICBhZGp1c3RpbmcgdGhlIHNlYXJjaCBwYXRoLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCiAg IDxzZWN0MiBpZD0iZGRsLXNjaGVtYXMtcGF0dGVybnMiPgogICAgPHRpdGxlPlVzYWdlIFBhdHRl cm5zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBiODgxYWU3MTE5OC4uNTdiNjk3MGFkOWYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sCkBAIC01MDYsNiArNTA2LDE4IEBACiAgICA8L2dsb3NzZGVmPgogICA8 L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbmZsaWN0LXNjaGVt YSI+CisgICA8Z2xvc3N0ZXJtPmNvbmZsaWN0IHNjaGVtYTwvZ2xvc3N0ZXJtPgorICAgPGdsb3Nz ZGVmPgorICAgIDxwYXJhPgorICAgICBUaGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+ IHNjaGVtYSB0aGF0IGNvbnRhaW5zIHN5c3RlbS1tYW5hZ2VkCisgICAgIGNvbmZsaWN0IGxvZyB0 YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24uIFRoZXNlIHRhYmxlcyBhcmUgY3JlYXRlZAor ICAgICBhbmQgbWFpbnRhaW5lZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBu b3QgaW50ZW5kZWQgZm9yCisgICAgIGRpcmVjdCB1c2VyIG1hbmlwdWxhdGlvbi4gU2VlIDx4cmVm IGxpbmtlbmQ9ImRkbC1zY2hlbWFzLWNvbmZsaWN0Ii8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xv c3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3NhcnktY29u bmVjdGlvbiI+CiAgICA8Z2xvc3N0ZXJtPkNvbm5lY3Rpb248L2dsb3NzdGVybT4KICAgIDxnbG9z c2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDllNzg2ODQ4N2Rl Li5mYjg1Y2IyNjI5NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0y OTMsNiArMjkzLDIxIEBACiAgICBvcHRpb24gb2YgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElP TjwvY29tbWFuZD4gZm9yIGRldGFpbHMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIDxsaW5r IGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3RzIj5Db25mbGljdHM8L2xpbms+ IHRoYXQgb2NjdXIKKyAgIGR1cmluZyByZXBsaWNhdGlvbiBhcmUsIGJ5IGRlZmF1bHQsIGxvZ2dl ZCBhcyBwbGFpbiB0ZXh0IGluIHRoZSBzZXJ2ZXIgbG9nLAorICAgd2hpY2ggY2FuIG1ha2UgYXV0 b21hdGVkIG1vbml0b3JpbmcgYW5kIGFuYWx5c2lzIGRpZmZpY3VsdC4gVGhlCisgICA8Y29tbWFu ZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9jb21tYW5kPiBjb21tYW5kIHByb3ZpZGVzIHRoZQorICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGlj dC1sb2ctZGVzdGluYXRpb24iPgorICAgPGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u PC9saXRlcmFsPjwvbGluaz4gb3B0aW9uIHRvIHJlY29yZCBkZXRhaWxlZAorICAgY29uZmxpY3Qg aW5mb3JtYXRpb24gaW4gYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgZm9ybWF0LiBXaGVuIHRoaXMg cGFyYW1ldGVyCisgICBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRl cmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgIGF1dG9tYXRpY2FsbHkgbWFuYWdlcyBh IGRlZGljYXRlZCA8Zmlyc3R0ZXJtPmNvbmZsaWN0IGxvZyB0YWJsZTwvZmlyc3R0ZXJtPiwKKyAg IHdoaWNoIGlzIGNyZWF0ZWQgYW4gZHJvcHBlZCBhbG9uZyB3aXRoIHRoZSBzdWJzY3JpcHRpb24u IFRoaXMgc2lnbmlmaWNhbnRseQorICAgaW1wcm92ZXMgcG9zdC1tb3J0ZW0gYW5hbHlzaXMgYW5k IG9wZXJhdGlvbmFsIHZpc2liaWxpdHkgb2YgdGhlIHJlcGxpY2F0aW9uCisgICBzZXR1cC4KKyAg PC9wYXJhPgorCiAgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1zdWJzY3JpcHRpb24t c2xvdCI+CiAgICA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBTbG90IE1hbmFnZW1lbnQ8L3Rp dGxlPgogCkBAIC0yMDA5LDEyMCArMjAyNCwyMjUgQEAgSW5jbHVkZWQgaW4gcHVibGljYXRpb25z OgogICAgb3BlcmF0aW9ucyB3aWxsIHNpbXBseSBiZSBza2lwcGVkLgogICA8L3BhcmE+CiAKLSAg PHBhcmE+Ci0gICBBZGRpdGlvbmFsIGxvZ2dpbmcgaXMgdHJpZ2dlcmVkLCBhbmQgdGhlIGNvbmZs aWN0IHN0YXRpc3RpY3MgYXJlIGNvbGxlY3RlZCAoZGlzcGxheWVkIGluIHRoZQotICAgPGxpbmsg bGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0cnVjdG5h bWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2aWV3KQot ICAgaW4gdGhlIGZvbGxvd2luZyA8Zmlyc3R0ZXJtPmNvbmZsaWN0PC9maXJzdHRlcm0+IGNhc2Vz OgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1pbnNl cnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgotICAgICA8dGVybT48bGl0ZXJh bD5pbnNlcnRfZXhpc3RzPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAg PHBhcmE+Ci0gICAgICAgSW5zZXJ0aW5nIGEgcm93IHRoYXQgdmlvbGF0ZXMgYSA8bGl0ZXJhbD5O T1QgREVGRVJSQUJMRTwvbGl0ZXJhbD4KLSAgICAgICB1bmlxdWUgY29uc3RyYWludC4gTm90ZSB0 aGF0IHRvIGxvZyB0aGUgb3JpZ2luIGFuZCBjb21taXQKLSAgICAgICB0aW1lc3RhbXAgZGV0YWls cyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFj ay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJu YW1lPjwvbGluaz4KLSAgICAgICBzaG91bGQgYmUgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4g SW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlCi0gICAgICAgcmFpc2VkIHVudGlsIHRoZSBj b25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0 aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtb3JpZ2luLWRpZmZlcnMiIHhyZWZsYWJlbD0idXBkYXRlX29yaWdpbl9kaWZmZXJz Ij4KLSAgICAgPHRlcm0+PGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwv dGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVXBkYXRpbmcgYSBy b3cgdGhhdCB3YXMgcHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4KLSAgICAg ICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4gb25seSBiZSBkZXRlY3RlZCB3aGVuCi0gICAg ICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2YXJuYW1lPnRy YWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIGlzIGVuYWJsZWQg b24gdGhlIHN1YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIHVwZGF0ZSBpcyBhbHdheXMgYXBwbGll ZAotICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgotICAg ICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LXVwZGF0ZS1leGlzdHMiIHhyZWZsYWJlbD0idXBkYXRl X2V4aXN0cyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+PC90 ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgdXBkYXRlZCB2 YWx1ZSBvZiBhIHJvdyB2aW9sYXRlcyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFs PgotICAgICAgIHVuaXF1ZSBjb25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4g YW5kIGNvbW1pdAotICAgICAgIHRpbWVzdGFtcCBkZXRhaWxzIG9mIHRoZSBjb25mbGljdGluZyBr ZXksCi0gICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2 YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIHNo b3VsZCBiZSBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9y IHdpbGwgYmUKLSAgICAgICByYWlzZWQgdW50aWwgdGhlIGNvbmZsaWN0IGlzIHJlc29sdmVkIG1h bnVhbGx5LiBOb3RlIHRoYXQgd2hlbiB1cGRhdGluZyBhCi0gICAgICAgcGFydGl0aW9uZWQgdGFi bGUsIGlmIHRoZSB1cGRhdGVkIHJvdyB2YWx1ZSBzYXRpc2ZpZXMgYW5vdGhlciBwYXJ0aXRpb24K LSAgICAgICBjb25zdHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGlu dG8gYSBuZXcgcGFydGl0aW9uLCB0aGUKLSAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3RzPC9s aXRlcmFsPiBjb25mbGljdCBtYXkgYXJpc2UgaWYgdGhlIG5ldyByb3cKLSAgICAgICB2aW9sYXRl cyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWludC4K LSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAg ICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1 cGRhdGVfZGVsZXRlZCI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9kZWxldGVkPC9saXRl cmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIHR1 cGxlIHRvIGJlIHVwZGF0ZWQgd2FzIGNvbmN1cnJlbnRseSBkZWxldGVkIGJ5IGFub3RoZXIgb3Jp Z2luLiBUaGUKLSAgICAgICB1cGRhdGUgd2lsbCBzaW1wbHkgYmUgc2tpcHBlZCBpbiB0aGlzIHNj ZW5hcmlvLiBOb3RlIHRoYXQgdGhpcyBjb25mbGljdAotICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KLSAgICAgICA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFt cCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAg ICAgYW5kIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgt cmV0YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+ PC9saW5rPgotICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5ub3Qg YmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZwotICAgICAgIHRydW5jYXRlZCwgb25seSBh IDxsaXRlcmFsPnVwZGF0ZV9taXNzaW5nPC9saXRlcmFsPiBjb25mbGljdCB3aWxsCi0gICAgICAg YXJpc2UuIEFkZGl0aW9uYWxseSwgaWYgdGhlIHR1cGxlIHdhcyBkZWxldGVkIGJ5IHRoZSBzYW1l IG9yaWdpbiwgYW4KLSAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29u ZmxpY3Qgd2lsbCBhcmlzZS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtbWlz c2luZyIgeHJlZmxhYmVsPSJ1cGRhdGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVw ZGF0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSB1cGRhdGVkIHdhcyBub3QgZm91bmQuIFRoZSB1cGRh dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 ImRlbGV0ZV9vcmlnaW5fZGlmZmVycyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRlbGV0ZV9vcmln aW5fZGlmZmVyczwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJh PgotICAgICAgIERlbGV0aW5nIGEgcm93IHRoYXQgd2FzIHByZXZpb3VzbHkgbW9kaWZpZWQgYnkg YW5vdGhlciBvcmlnaW4uIE5vdGUgdGhhdAotICAgICAgIHRoaXMgY29uZmxpY3QgY2FuIG9ubHkg YmUgZGV0ZWN0ZWQgd2hlbgotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQt dGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGlu az4KLSAgICAgICBpcyBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBDdXJyZW50bHksIHRoZSBk ZWxldGUgaXMgYWx3YXlzIGFwcGxpZWQKLSAgICAgICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4g b2YgdGhlIGxvY2FsIHJvdy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1kZWxldGUtbWlz c2luZyIgeHJlZmxhYmVsPSJkZWxldGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRl bGV0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSBkZWxldGVkIHdhcyBub3QgZm91bmQuIFRoZSBkZWxl dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtbXVsdGlwbGUtdW5pcXVlLWNvbmZsaWN0cyIgeHJlZmxh YmVsPSJtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIj4KLSAgICAgPHRlcm0+PGxpdGVyYWw+bXVs dGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4K LSAgICAgIDxwYXJhPgotICAgICAgIEluc2VydGluZyBvciB1cGRhdGluZyBhIHJvdyB2aW9sYXRl cyBtdWx0aXBsZQotICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlx dWUgY29uc3RyYWludHMuIE5vdGUgdGhhdCB0byBsb2cKLSAgICAgICB0aGUgb3JpZ2luIGFuZCBj b21taXQgdGltZXN0YW1wIGRldGFpbHMgb2YgY29uZmxpY3Rpbmcga2V5cywgZW5zdXJlCi0gICAg ICAgdGhhdCA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5h bWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAgICAgaXMgZW5h YmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJh aXNlZCB1bnRpbAotICAgICAgIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAg ICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwv dmFyaWFibGVsaXN0PgotICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2Nl bmFyaW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50Ci0gICAgdmlvbGF0aW9ucy4gQ3Vy cmVudGx5LCB3ZSBkbyBub3QgcHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbHMgZm9yIHRoZW0gaW4g dGhlCi0gICAgbG9nLgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlv bi1jb25mbGljdC1sb2dnaW5nIj4KKyAgIDx0aXRsZT5Db25mbGljdCBsb2dnaW5nPC90aXRsZT4K KyAgIDxwYXJhPgorICAgIEFkZGl0aW9uYWwgbG9nZ2luZyBpcyB0cmlnZ2VyZWQsIGFuZCB0aGUg Y29uZmxpY3Qgc3RhdGlzdGljcyBhcmUgY29sbGVjdGVkIChkaXNwbGF5ZWQgaW4gdGhlCisgICAg PGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0 cnVjdG5hbWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2 aWV3KQorICAgIGluIHRoZSBmb2xsb3dpbmcgPGZpcnN0dGVybT5jb25mbGljdDwvZmlyc3R0ZXJt PiBjYXNlczoKKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25m bGljdC1pbnNlcnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgorICAgICAgPHRl cm0+PGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEluc2VydGluZyBhIHJvdyB0aGF0IHZpb2xhdGVz IGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBjb25z dHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAgICB0 aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVkIG9u IHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAgICAg cmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtdXBkYXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 InVwZGF0ZV9vcmlnaW5fZGlmZmVycyI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfb3Jp Z2luX2RpZmZlcnM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBVcGRhdGluZyBhIHJvdyB0aGF0IHdhcyBwcmV2aW91c2x5IG1vZGlmaWVk IGJ5IGFub3RoZXIgb3JpZ2luLgorICAgICAgICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4g b25seSBiZSBkZXRlY3RlZCB3aGVuCisgICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1j b21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1l PjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gQ3VycmVudGx5 LCB0aGUgdXBkYXRlIGlzIGFsd2F5cyBhcHBsaWVkCisgICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhl IG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtZXhpc3RzIiB4cmVmbGFiZWw9InVwZGF0ZV9leGlzdHMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB1cGRhdGVkIHZhbHVlIG9mIGEgcm93IHZpb2xh dGVzIGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBj b25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAg ICB0aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGlu ayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29t bWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVk IG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAg ICAgcmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4gTm90ZSB0 aGF0IHdoZW4gdXBkYXRpbmcgYQorICAgICAgICBwYXJ0aXRpb25lZCB0YWJsZSwgaWYgdGhlIHVw ZGF0ZWQgcm93IHZhbHVlIHNhdGlzZmllcyBhbm90aGVyIHBhcnRpdGlvbgorICAgICAgICBjb25z dHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGludG8gYSBuZXcgcGFy dGl0aW9uLCB0aGUKKyAgICAgICAgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4gY29u ZmxpY3QgbWF5IGFyaXNlIGlmIHRoZSBuZXcgcm93CisgICAgICAgIHZpb2xhdGVzIGEgPGxpdGVy YWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+IHVuaXF1ZSBjb25zdHJhaW50LgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFy bGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1cGRhdGVf ZGVsZXRlZCI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfZGVsZXRlZDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB0dXBs ZSB0byBiZSB1cGRhdGVkIHdhcyBjb25jdXJyZW50bHkgZGVsZXRlZCBieSBhbm90aGVyIG9yaWdp bi4gVGhlCisgICAgICAgIHVwZGF0ZSB3aWxsIHNpbXBseSBiZSBza2lwcGVkIGluIHRoaXMgc2Nl bmFyaW8uIE5vdGUgdGhhdCB0aGlzIGNvbmZsaWN0CisgICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KKyAgICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3Rh bXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgorICAg ICAgICBhbmQgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1yZXRhaW4tZGVhZC10dXBsZXMiPjxsaXRlcmFsPnJldGFpbl9kZWFkX3R1cGxlczwvbGl0ZXJh bD48L2xpbms+CisgICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5u b3QgYmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZworICAgICAgICB0cnVuY2F0ZWQsIG9u bHkgYSA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29uZmxpY3Qgd2lsbAorICAg ICAgICBhcmlzZS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdHVwbGUgd2FzIGRlbGV0ZWQgYnkgdGhl IHNhbWUgb3JpZ2luLCBhbgorICAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJh bD4gY29uZmxpY3Qgd2lsbCBhcmlzZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iY29uZmxpY3Qt dXBkYXRlLW1pc3NpbmciIHhyZWZsYWJlbD0idXBkYXRlX21pc3NpbmciPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX21pc3Npbmc8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRvIGJlIHVwZGF0ZWQgd2FzIG5vdCBm b3VuZC4gVGhlIHVwZGF0ZSB3aWxsIHNpbXBseSBiZQorICAgICAgICBza2lwcGVkIGluIHRoaXMg c2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LWRlbGV0ZS1vcmlnaW4t ZGlmZmVycyIgeHJlZmxhYmVsPSJkZWxldGVfb3JpZ2luX2RpZmZlcnMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+ZGVsZXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRGVsZXRpbmcgYSByb3cgdGhhdCB3YXMg cHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4gTm90ZSB0aGF0CisgICAgICAg IHRoaXMgY29uZmxpY3QgY2FuIG9ubHkgYmUgZGV0ZWN0ZWQgd2hlbgorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1 YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIGRlbGV0ZSBpcyBhbHdheXMgYXBwbGllZAorICAgICAg ICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4gb2YgdGhlIGxvY2FsIHJvdy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW1pc3NpbmciIHhyZWZsYWJlbD0iZGVsZXRlX21p c3NpbmciPgorICAgICAgPHRlcm0+PGxpdGVyYWw+ZGVsZXRlX21pc3Npbmc8L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRv IGJlIGRlbGV0ZWQgd2FzIG5vdCBmb3VuZC4gVGhlIGRlbGV0ZSB3aWxsIHNpbXBseSBiZQorICAg ICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNv bmZsaWN0LW11bHRpcGxlLXVuaXF1ZS1jb25mbGljdHMiIHhyZWZsYWJlbD0ibXVsdGlwbGVfdW5p cXVlX2NvbmZsaWN0cyI+CisgICAgICA8dGVybT48bGl0ZXJhbD5tdWx0aXBsZV91bmlxdWVfY29u ZmxpY3RzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgSW5zZXJ0aW5nIG9yIHVwZGF0aW5nIGEgcm93IHZpb2xhdGVzIG11bHRpcGxlCisg ICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWlu dHMuIE5vdGUgdGhhdCB0byBsb2cKKyAgICAgICAgdGhlIG9yaWdpbiBhbmQgY29tbWl0IHRpbWVz dGFtcCBkZXRhaWxzIG9mIGNvbmZsaWN0aW5nIGtleXMsIGVuc3VyZQorICAgICAgICB0aGF0IDxs aW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19j b21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0 aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJhaXNlZCB1bnRp bAorICAgICAgICB0aGUgY29uZmxpY3QgaXMgcmVzb2x2ZWQgbWFudWFsbHkuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJp YWJsZWxpc3Q+CisgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2NlbmFy aW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50CisgICAgIHZpb2xhdGlvbnMuIEN1cnJl bnRseSwgd2UgZG8gbm90IHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWxzIGZvciB0aGVtIGluIHRo ZQorICAgICBsb2cuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CiAKLSAgPHBhcmE+Ci0gICBUaGUg bG9nIGZvcm1hdCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMgaXMgYXMgZm9sbG93 czoKKyAgPHNlY3QyIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0LXRhYmxlLWJhc2Vk LWxvZ2dpbmciPgorICAgPHRpdGxlPlRhYmxlLWJhc2VkIGxvZ2dpbmc8L3RpdGxlPgorICAgPHBh cmE+CisgICAgSWYgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgcGFyYW1ldGVyIGlzIHNldCB0byA8bGl0ZXJh bD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRlcmFsPiB0aGVuCisgICAgYSBk ZWRpY2F0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVk LiBUaGlzIHRhYmxlIGlzCisgICAgY3JlYXRlZCBpbiB0aGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8 L2xpdGVyYWw+IG5hbWVzcGFjZS4gVGhlIG5hbWUgb2YgdGhlCisgICAgY29uZmxpY3QgbG9nIHRh YmxlIGlzCisgICAgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9zdWJpZF8mbHQ7c3ViaWQm Z3Q7PC9saXRlcmFsPi4gVGhlIHByZWRlZmluZWQKKyAgICBzY2hlbWEgb2YgdGhpcyB0YWJsZSBp cyBkZXRhaWxlZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtbG9nLXNjaGVtYSIvPi4KKyAgIDwvcGFyYT4KKworICAgPHRhYmxlIGlkPSJsb2dpY2Fs LXJlcGxpY2F0aW9uLWNvbmZsaWN0LWxvZy1zY2hlbWEiPgorICAgIDx0aXRsZT5Db25mbGljdCBM b2cgVGFibGUgU2NoZW1hPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhl YWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5Db2x1bW48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5 Pjx0eXBlPm9pZDwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgT0lEIG9mIHRoZSBs b2NhbCB0YWJsZSB3aGVyZSB0aGUgY29uZmxpY3Qgb2NjdXJyZWQuPC9lbnRyeT4KKyAgICAgIDwv cm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+c2NoZW1hbmFtZTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PlRoZSBzY2hlbWEgbmFtZSBvZiB0aGUgY29uZmxpY3RpbmcgdGFibGUuPC9l bnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ cmVsbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBl PjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25mbGljdGluZyB0YWJs ZS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBl PnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+VGhlIHR5cGUgb2YgY29uZmxpY3Qg dGhhdCBvY2N1cnJlZCAoZS5nLiwgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4pLjwv ZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFs PnJlbW90ZV94aWQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+eGlkPC90 eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSByZW1vdGUgdHJhbnNhY3Rpb24gSUQgdGhh dCBjYXVzZWQgdGhlIGNvbmZsaWN0LjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV9jb21taXRfbHNuPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2xzbjwvdHlwZT48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAg ICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2Nv bW1pdF90czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50aW1lc3RhbXB0 ejwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgcmVtb3RlIGNvbW1pdCB0aW1lc3Rh bXAgb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfb3JpZ2luPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+VGhlIG9yaWdpbiBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV90dXBs ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT5qc29uPC90eXBlPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWlu ZyByZW1vdGUgcm93IHRoYXQgY2F1c2VkCisgICAgICAgdGhlIGNvbmZsaWN0LjwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlcGxpY2Ff aWRlbnRpdHk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlw ZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUg cmVwbGljYSBpZGVudGl0eS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PHR5cGU+anNvbltdPC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pgor ICAgICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBzdGF0ZSBv ZiBleGlzdGluZyBsb2NhbAorICAgICAgICByb3cocykgdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0 LiBFYWNoIG9iamVjdCBpbmNsdWRlcyB0aGUgbG9jYWwKKyAgICAgICAgdHJhbnNhY3Rpb24gSUQg KDxsaXRlcmFsPnhpZDwvbGl0ZXJhbD4pLCBjb21taXQgdGltZXN0YW1wCisgICAgICAgICg8bGl0 ZXJhbD5jb21taXRfdHM8L2xpdGVyYWw+KSwgb3JpZ2luICg8bGl0ZXJhbD5vcmlnaW48L2xpdGVy YWw+KSwKKyAgICAgICAgY29uZmxpY3Rpbmcga2V5IGRhdGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJh bD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAgICAgIGltYWdlICg8bGl0ZXJhbD50dXBs ZTwvbGl0ZXJhbD4pLgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9k eT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb25m bGljdGluZyByb3cgZGF0YSwgaW5jbHVkaW5nIHRoZSBpbmNvbWluZyByZW1vdGUgcm93ICg8bGl0 ZXJhbD5yZW1vdGVfdHVwbGU8L2xpdGVyYWw+KQorICAgIGFuZCB0aGUgYXNzb2NpYXRlZCBsb2Nh bCBjb25mbGljdCBkZXRhaWxzICg8bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+KSwg aXMgc3RvcmVkIGluCisgICAgPHR5cGU+SlNPTjwvdHlwZT4gZm9ybWF0cyBmb3IgZmxleGlibGUg cXVlcnlpbmcgYW5kIGFuYWx5c2lzLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0 MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1maWxlLWJhc2VkLWxvZ2dpbmciPgor ICAgPHRpdGxlPkZpbGUtYmFzZWQgbG9nZ2luZzwvdGl0bGU+CisgICA8cGFyYT4KKyAgICBJZiA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0 LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRl cmFsPjwvbGluaz4KKyAgICBpcyBzZXQgdG8gPGxpdGVyYWw+bG9nPC9saXRlcmFsPiBvciA8bGl0 ZXJhbD5hbGw8L2xpdGVyYWw+IHRoZW4gY29uZmxpY3RzCisgICAgYXJlIGxvZ2dlZCB0byB0aGUg c2VydmVyIHVzaW5nIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9HOiAgY29u ZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1lPC9yZXBs YWNlYWJsZT4uPHJlcGxhY2VhYmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29uZmxpY3Q9 PHJlcGxhY2VhYmxlPmNvbmZsaWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJs ZT5bOiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IFssIC4uLiBdXS4KQEAgLTIxMzUsMTgyICsyMjU1LDE4NSBAQCBERVRBSUw6ICA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsZWRfZXhwbGFuYXRpb248L3JlcGxhY2Vh YmxlPls6IDxyZQogICAgIDxsaXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHsoPHJl cGxhY2VhYmxlPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4uPC9vcHRp b25hbD4pPSg8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFs PiwgLi4uPC9vcHRpb25hbD4pIHwgZnVsbCA8b3B0aW9uYWw+KDxyZXBsYWNlYWJsZT5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD4sIC4uLjwvb3B0aW9uYWw+KT08L29wdGlvbmFs Pig8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4u PC9vcHRpb25hbD4pfQogPC9zeW5vcHNpcz4KIAotICAgVGhlIGxvZyBwcm92aWRlcyB0aGUgZm9s bG93aW5nIGluZm9ybWF0aW9uOgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5 PgotICAgICA8dGVybT48bGl0ZXJhbD5MT0c8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3Rp dGVtPgorICAgIFRoZSBsb2cgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKyAg ICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVy YWw+TE9HPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxpdGVt aXplZGxpc3Q+CisgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgPHJlcGxhY2VhYmxlPnNjaGVtYW5hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGU+dGFi bGVuYW1lPC9yZXBsYWNlYWJsZT4KKyAgICAgICAgICBpZGVudGlmaWVzIHRoZSBsb2NhbCByZWxh dGlvbiBpbnZvbHZlZCBpbiB0aGUgY29uZmxpY3QuCisgICAgICAgICAgPC9wYXJhPgorICAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICA8cmVwbGFjZWFibGU+Y29uZmxpY3RfdHlwZTwvcmVwbGFjZWFibGU+IGlzIHRoZSB0 eXBlIG9mIGNvbmZsaWN0IHRoYXQgb2NjdXJyZWQKKyAgICAgICAgICAoZS5nLiwgPGxpdGVyYWw+ aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4sIDxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+ KS4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICA8L2l0 ZW1pemVkbGlzdD4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAg ICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+Ci0gICAgICAgICA8cmVwbGFjZWFibGU+c2No ZW1hbmFtZTwvcmVwbGFjZWFibGU+LjxyZXBsYWNlYWJsZT50YWJsZW5hbWU8L3JlcGxhY2VhYmxl PgotICAgICAgICAgaWRlbnRpZmllcyB0aGUgbG9jYWwgcmVsYXRpb24gaW52b2x2ZWQgaW4gdGhl IGNvbmZsaWN0LgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxlZF9leHBsYW5hdGlvbjwvcmVwbGFjZWFibGU+IGluY2x1ZGVzCisgICAgICAgICAgdGhlIG9y aWdpbiwgdHJhbnNhY3Rpb24gSUQsIGFuZCBjb21taXQgdGltZXN0YW1wIG9mIHRoZSB0cmFuc2Fj dGlvbiB0aGF0CisgICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxl LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICA8bGlzdGl0 ZW0+CiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgIDxyZXBsYWNlYWJsZT5jb25mbGljdF90eXBl PC9yZXBsYWNlYWJsZT4gaXMgdGhlIHR5cGUgb2YgY29uZmxpY3QgdGhhdCBvY2N1cnJlZAotICAg ICAgICAgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51 cGRhdGVfZXhpc3RzPC9saXRlcmFsPikuCisgICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0 ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKKyAgICAg ICAgICByb3cgdGhhdCB2aW9sYXRlZCBhIHVuaXF1ZSBjb25zdHJhaW50IGZvcgorICAgICAgICAg IDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3Rz PC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGlj dHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IDxsaXRlcmFsPmxvY2FsIHJvdzwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgbG9jYWwg cm93IGlmIGl0cworICAgICAgICAgIG9yaWdpbiBkaWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cg Zm9yCisgICAgICAgICAgPGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPiBv ciA8bGl0ZXJhbD5kZWxldGVfb3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+CisgICAgICAgICAgY29u ZmxpY3RzLCBvciBpZiB0aGUga2V5IHZhbHVlIGNvbmZsaWN0cyB3aXRoIHRoZSByZW1vdGUgcm93 IGZvcgorICAgICAgICAgIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJh bD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxl X3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4K KyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xpdGVyYWw+IHNlY3Rpb24gaW5j bHVkZXMgdGhlIG5ldyByb3cgZnJvbQorICAgICAgICAgIHRoZSByZW1vdGUgaW5zZXJ0IG9yIHVw ZGF0ZSBvcGVyYXRpb24gdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0LiBOb3RlIHRoYXQKKyAgICAg ICAgICBmb3IgYW4gdXBkYXRlIG9wZXJhdGlvbiwgdGhlIGNvbHVtbiB2YWx1ZSBvZiB0aGUgbmV3 IHJvdyB3aWxsIGJlIG51bGwKKyAgICAgICAgICBpZiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkIGFu ZCB0b2FzdGVkLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgPGxpdGVyYWw+cmVw bGljYSBpZGVudGl0eTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgcmVwbGljYQorICAg ICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2VhcmNoIGZvciB0 aGUgZXhpc3RpbmcgbG9jYWwKKyAgICAgICAgICByb3cgdG8gYmUgdXBkYXRlZCBvciBkZWxldGVk LiBUaGlzIG1heSBpbmNsdWRlIHRoZSBmdWxsIHJvdyB2YWx1ZQorICAgICAgICAgIGlmIHRoZSBs b2NhbCByZWxhdGlvbiBpcyBtYXJrZWQgd2l0aAorICAgICAgICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElDQSBJREVO VElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IGlzIHRoZSBjb2x1bW4gbmFtZS4KKyAgICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAorICAgICAgICAgIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHkgZnVsbDwvbGl0ZXJhbD4gY2FzZXMsIGNvbHVtbiBuYW1l cyBhcmUKKyAgICAgICAgICBsb2dnZWQgb25seSBpZiB0aGUgdXNlciBsYWNrcyB0aGUgcHJpdmls ZWdlIHRvIGFjY2VzcyBhbGwgY29sdW1ucyBvZgorICAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29s dW1uIG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgorICAg ICAgICAgIGFzIHRoZSBjb3JyZXNwb25kaW5nIGNvbHVtbiB2YWx1ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFs dWU8L3JlcGxhY2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgorICAgICAgICAgIFRoZSBsYXJn ZSBjb2x1bW4gdmFsdWVzIGFyZSB0cnVuY2F0ZWQgdG8gNjQgYnl0ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3Vu aXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0LAorICAgICAgICAgIG11bHRpcGxlIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRhaWxlZF9leHBsYW5hdGlvbjwvcmVwbGFj ZWFibGU+CisgICAgICAgICAgYW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxfdmFsdWVzPC9yZXBsYWNlYWJsZT4gbGluZXMKKyAgICAgICAgICB3aWxsIGJlIGdlbmVyYXRl ZCwgZWFjaCBkZXRhaWxpbmcgdGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKKyAg ICAgICAgICB3aXRoIGRpc3RpbmN0IHVuaXF1ZSBjb25zdHJhaW50cy4KICAgICAgICAgIDwvcGFy YT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgIDwv bGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAg ICA8dGVybT48bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3RpdGVt PgotICAgICAgPGl0ZW1pemVkbGlzdD4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJh PgotICAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxh bmF0aW9uPC9yZXBsYWNlYWJsZT4gaW5jbHVkZXMKLSAgICAgICAgIHRoZSBvcmlnaW4sIHRyYW5z YWN0aW9uIElELCBhbmQgY29tbWl0IHRpbWVzdGFtcCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdAot ICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxlLgotICAgICAgICA8 L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxw YXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRl cyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKLSAgICAgICAgIHJvdyB0aGF0IHZpb2xhdGVk IGEgdW5pcXVlIGNvbnN0cmFpbnQgZm9yCi0gICAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3Rz PC9saXRlcmFsPiwgPGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD4gb3IKLSAgICAgICAg IDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4K LSAgICAgICAgPC9wYXJhPgotICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgot ICAgICAgICA8cGFyYT4KLSAgICAgICAgIFRoZSA8bGl0ZXJhbD5sb2NhbCByb3c8L2xpdGVyYWw+ IHNlY3Rpb24gaW5jbHVkZXMgdGhlIGxvY2FsIHJvdyBpZiBpdHMKLSAgICAgICAgIG9yaWdpbiBk aWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cgZm9yCi0gICAgICAgICA8bGl0ZXJhbD51cGRhdGVf b3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmRlbGV0ZV9vcmlnaW5fZGlmZmVy czwvbGl0ZXJhbD4KLSAgICAgICAgIGNvbmZsaWN0cywgb3IgaWYgdGhlIGtleSB2YWx1ZSBjb25m bGljdHMgd2l0aCB0aGUgcmVtb3RlIHJvdyBmb3IKLSAgICAgICAgIDxsaXRlcmFsPmluc2VydF9l eGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgotICAg ICAgICAgPGxpdGVyYWw+bXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD4gY29uZmxp Y3RzLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0 ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xp dGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIG5ldyByb3cgZnJvbQotICAgICAgICAgdGhlIHJl bW90ZSBpbnNlcnQgb3IgdXBkYXRlIG9wZXJhdGlvbiB0aGF0IGNhdXNlZCB0aGUgY29uZmxpY3Qu IE5vdGUgdGhhdAotICAgICAgICAgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIHRoZSBjb2x1bW4g dmFsdWUgb2YgdGhlIG5ldyByb3cgd2lsbCBiZSBudWxsCi0gICAgICAgICBpZiB0aGUgdmFsdWUg aXMgdW5jaGFuZ2VkIGFuZCB0b2FzdGVkLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0 aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIHJl cGxpY2EKLSAgICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2Vh cmNoIGZvciB0aGUgZXhpc3RpbmcgbG9jYWwKLSAgICAgICAgIHJvdyB0byBiZSB1cGRhdGVkIG9y IGRlbGV0ZWQuIFRoaXMgbWF5IGluY2x1ZGUgdGhlIGZ1bGwgcm93IHZhbHVlCi0gICAgICAgICBp ZiB0aGUgbG9jYWwgcmVsYXRpb24gaXMgbWFya2VkIHdpdGgKLSAgICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElD QSBJREVOVElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCi0gICAgICAgIDwvcGFyYT4KLSAgICAg ICA8L2xpc3RpdGVtPgotICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAg ICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBpcyB0aGUgY29sdW1uIG5hbWUuCi0gICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAotICAgICAgICAgPGxp dGVyYWw+cmVwbGljYSBpZGVudGl0eSBmdWxsPC9saXRlcmFsPiBjYXNlcywgY29sdW1uIG5hbWVz IGFyZQotICAgICAgICAgbG9nZ2VkIG9ubHkgaWYgdGhlIHVzZXIgbGFja3MgdGhlIHByaXZpbGVn ZSB0byBhY2Nlc3MgYWxsIGNvbHVtbnMgb2YKLSAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29sdW1u IG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgotICAgICAg ICAgYXMgdGhlIGNvcnJlc3BvbmRpbmcgY29sdW1uIHZhbHVlcy4KLSAgICAgICAgPC9wYXJhPgot ICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAg ICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFsdWU8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgotICAgICAgICAgVGhlIGxhcmdlIGNvbHVtbiB2 YWx1ZXMgYXJlIHRydW5jYXRlZCB0byA2NCBieXRlcy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAgICAgICAg IE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8 L2xpdGVyYWw+IGNvbmZsaWN0LAotICAgICAgICAgbXVsdGlwbGUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJsZT4KLSAgICAgICAg IGFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IGxpbmVzCi0gICAgICAgICB3aWxsIGJlIGdlbmVyYXRlZCwgZWFjaCBkZXRhaWxpbmcg dGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKLSAgICAgICAgIHdpdGggZGlzdGlu Y3QgdW5pcXVlCi0gICAgICAgICBjb25zdHJhaW50cy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICA8L2l0ZW1pemVkbGlzdD4KLSAgICAgPC9saXN0aXRlbT4KLSAg ICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwvdmFyaWFibGVsaXN0PgotICA8L3BhcmE+CisgICAgIDwv dmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3NlY3Qy PgogCi0gIDxwYXJhPgotICAgTG9naWNhbCByZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJm b3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBvZiB0aGUgcm9sZQotICAgd2hpY2ggb3ducyB0aGUg c3Vic2NyaXB0aW9uLiAgUGVybWlzc2lvbnMgZmFpbHVyZXMgb24gdGFyZ2V0IHRhYmxlcyB3aWxs Ci0gICBjYXVzZSByZXBsaWNhdGlvbiBjb25mbGljdHMsIGFzIHdpbGwgZW5hYmxlZAotICAgPGxp bmsgbGlua2VuZD0iZGRsLXJvd3NlY3VyaXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9u IHRhcmdldCB0YWJsZXMKLSAgIHRoYXQgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBpcyBzdWJqZWN0 IHRvLCB3aXRob3V0IHJlZ2FyZCB0byB3aGV0aGVyIGFueQotICAgcG9saWN5IHdvdWxkIG9yZGlu YXJpbHkgcmVqZWN0IHRoZSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+LAotICAgPGNvbW1hbmQ+ VVBEQVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgotICAgPGNvbW1h bmQ+VFJVTkNBVEU8L2NvbW1hbmQ+IHdoaWNoIGlzIGJlaW5nIHJlcGxpY2F0ZWQuICBUaGlzIHJl c3RyaWN0aW9uIG9uCi0gICByb3ctbGV2ZWwgc2VjdXJpdHkgbWF5IGJlIGxpZnRlZCBpbiBhIGZ1 dHVyZSB2ZXJzaW9uIG9mCi0gICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ LgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1u b3RlcyI+CisgICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorICAgPHBhcmE+CisgICAgTG9naWNhbCBy ZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBv ZiB0aGUgcm9sZQorICAgIHdoaWNoIG93bnMgdGhlIHN1YnNjcmlwdGlvbi4gIFBlcm1pc3Npb25z IGZhaWx1cmVzIG9uIHRhcmdldCB0YWJsZXMgd2lsbAorICAgIGNhdXNlIHJlcGxpY2F0aW9uIGNv bmZsaWN0cywgYXMgd2lsbCBlbmFibGVkCisgICAgPGxpbmsgbGlua2VuZD0iZGRsLXJvd3NlY3Vy aXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9uIHRhcmdldCB0YWJsZXMKKyAgICB0aGF0 IHRoZSBzdWJzY3JpcHRpb24gb3duZXIgaXMgc3ViamVjdCB0bywgd2l0aG91dCByZWdhcmQgdG8g d2hldGhlciBhbnkKKyAgICBwb2xpY3kgd291bGQgb3JkaW5hcmlseSByZWplY3QgdGhlIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sCisgICAgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwgPGNv bW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgorICAgIDxjb21tYW5kPlRSVU5DQVRFPC9jb21tYW5k PiB3aGljaCBpcyBiZWluZyByZXBsaWNhdGVkLiAgVGhpcyByZXN0cmljdGlvbiBvbgorICAgIHJv dy1sZXZlbCBzZWN1cml0eSBtYXkgYmUgbGlmdGVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YKKyAg ICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LgorICAgPC9wYXJhPgogCi0g IDxwYXJhPgotICAgQSBjb25mbGljdCB0aGF0IHByb2R1Y2VzIGFuIGVycm9yIHdpbGwgc3RvcCB0 aGUgcmVwbGljYXRpb247IGl0IG11c3QgYmUKLSAgIHJlc29sdmVkIG1hbnVhbGx5IGJ5IHRoZSB1 c2VyLiAgRGV0YWlscyBhYm91dCB0aGUgY29uZmxpY3QgY2FuIGJlIGZvdW5kIGluCi0gICB0aGUg c3Vic2NyaWJlcidzIHNlcnZlciBsb2cuCi0gIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIEEgY29u ZmxpY3QgdGhhdCBwcm9kdWNlcyBhbiBlcnJvciB3aWxsIHN0b3AgdGhlIHJlcGxpY2F0aW9uOyBp dCBtdXN0IGJlCisgICAgcmVzb2x2ZWQgbWFudWFsbHkgYnkgdGhlIHVzZXIuICBEZXRhaWxzIGFi b3V0IHRoZSBjb25mbGljdCBjYW4gYmUgZm91bmQgaW4KKyAgICB0aGUgc3Vic2NyaWJlcidzIHNl cnZlciBsb2cuCisgICA8L3BhcmE+CiAKLSAgPHBhcmE+Ci0gICBUaGUgcmVzb2x1dGlvbiBjYW4g YmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNzaW9ucyBvbiB0aGUgc3Vi c2NyaWJlciBzbwotICAgdGhhdCBpdCBkb2VzIG5vdCBjb25mbGljdCB3aXRoIHRoZSBpbmNvbWlu ZyBjaGFuZ2Ugb3IgYnkgc2tpcHBpbmcgdGhlCi0gICB0cmFuc2FjdGlvbiB0aGF0IGNvbmZsaWN0 cyB3aXRoIHRoZSBleGlzdGluZyBkYXRhLiAgV2hlbiBhIGNvbmZsaWN0IHByb2R1Y2VzCi0gICBh biBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQsIGFuZCB0aGUgbG9naWNhbCBy ZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAotICAgZW1pdCB0aGUgZm9sbG93aW5nIGtpbmQgb2YgbWVz c2FnZSB0byB0aGUgc3Vic2NyaWJlcidzIHNlcnZlciBsb2c6CisgICA8cGFyYT4KKyAgICBUaGUg cmVzb2x1dGlvbiBjYW4gYmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNz aW9ucyBvbiB0aGUgc3Vic2NyaWJlciBzbworICAgIHRoYXQgaXQgZG9lcyBub3QgY29uZmxpY3Qg d2l0aCB0aGUgaW5jb21pbmcgY2hhbmdlIG9yIGJ5IHNraXBwaW5nIHRoZQorICAgIHRyYW5zYWN0 aW9uIHRoYXQgY29uZmxpY3RzIHdpdGggdGhlIGV4aXN0aW5nIGRhdGEuICBXaGVuIGEgY29uZmxp Y3QgcHJvZHVjZXMKKyAgICBhbiBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQs IGFuZCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAorICAgIGVtaXQgdGhlIGZv bGxvd2luZyBraW5kIG9mIG1lc3NhZ2UgdG8gdGhlIHN1YnNjcmliZXIncyBzZXJ2ZXIgbG9nOgog PHNjcmVlbj4KIEVSUk9SOiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy50 ZXN0IjogY29uZmxpY3Q9aW5zZXJ0X2V4aXN0cwogREVUQUlMOiAgQ291bGQgbm90IGFwcGx5IHJl bW90ZSBjaGFuZ2U6IHJlbW90ZSByb3cgKDEsICdyZW1vdGUnKS4KIEtleSBhbHJlYWR5IGV4aXN0 cyBpbiB1bmlxdWUgaW5kZXggInRlc3RfcGtleSIsIG1vZGlmaWVkIGxvY2FsbHkgaW4gdHJhbnNh Y3Rpb24gODAwIGF0IDIwMjYtMDEtMTYgMTg6MTU6MjUuNjUyNzU5KzA5OiBrZXkgKGMpPSgxKSwg bG9jYWwgcm93ICgxLCAnbG9jYWwnKS4KIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJlbW90ZSBkYXRh IGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VSVCIgZm9yIHJl cGxpY2F0aW9uIHRhcmdldCByZWxhdGlvbiAicHVibGljLnRlc3QiIGluIHRyYW5zYWN0aW9uIDcy NSBmaW5pc2hlZCBhdCAwLzAxNEMwMzc4CiA8L3NjcmVlbj4KLSAgIFRoZSBMU04gb2YgdGhlIHRy YW5zYWN0aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFp bnQgYW5kCi0gICB0aGUgcmVwbGljYXRpb24gb3JpZ2luIG5hbWUgY2FuIGJlIGZvdW5kIGZyb20g dGhlIHNlcnZlciBsb2cgKExTTiAwLzAxNEMwMzc4IGFuZAotICAgcmVwbGljYXRpb24gb3JpZ2lu IDxsaXRlcmFsPnBnXzE2Mzk1PC9saXRlcmFsPiBpbiB0aGUgYWJvdmUgY2FzZSkuICBUaGUKLSAg IHRyYW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5 IHVzaW5nCi0gICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXNr aXAiPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gU0tJUDwvY29tbWFuZD48L2xpbms+ Ci0gICB3aXRoIHRoZSBmaW5pc2ggTFNOCi0gICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgotICAg aXMgY29tbWl0dGVkIG9yIHByZXBhcmVkIG9uIHRoZSBwdWJsaXNoZXIuICBBbHRlcm5hdGl2ZWx5 LCB0aGUgdHJhbnNhY3Rpb24gY2FuCi0gICBhbHNvIGJlIHNraXBwZWQgYnkgY2FsbGluZyB0aGUg PGxpbmsgbGlua2VuZD0icGctcmVwbGljYXRpb24tb3JpZ2luLWFkdmFuY2UiPgotICAgPGZ1bmN0 aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4gZnVu Y3Rpb24uCi0gICBCZWZvcmUgdXNpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIHN1YnNjcmlwdGlvbiBu ZWVkcyB0byBiZSBkaXNhYmxlZCB0ZW1wb3JhcmlseQotICAgZWl0aGVyIGJ5IDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtZGlzYWJsZSI+Ci0gICA8Y29tbWFuZD5B TFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwgdGhlCi0g ICBzdWJzY3JpcHRpb24gY2FuIGJlIHVzZWQgd2l0aCB0aGUKLSAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVy YWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48L2xpbms+Ci0gICBvcHRpb24uIFRoZW4sIHlv dSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5jZSgpPC9mdW5j dGlvbj4KLSAgIGZ1bmN0aW9uIHdpdGggdGhlIDxwYXJhbWV0ZXI+bm9kZV9uYW1lPC9wYXJhbWV0 ZXI+IChpLmUuLCA8bGl0ZXJhbD5wZ18xNjM5NTwvbGl0ZXJhbD4pCi0gICBhbmQgdGhlIG5leHQg TFNOIG9mIHRoZSBmaW5pc2ggTFNOIChpLmUuLCAwLzAxNEMwMzc5KS4gIFRoZSBjdXJyZW50IHBv c2l0aW9uIG9mCi0gICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGluayBsaW5rZW5kPSJ2 aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgotICAgPHN0cnVjdG5hbWU+cGdfcmVw bGljYXRpb25fb3JpZ2luX3N0YXR1czwvc3RydWN0bmFtZT48L2xpbms+IHN5c3RlbSB2aWV3Lgot ICAgUGxlYXNlIG5vdGUgdGhhdCBza2lwcGluZyB0aGUgd2hvbGUgdHJhbnNhY3Rpb24gaW5jbHVk ZXMgc2tpcHBpbmcgY2hhbmdlcyB0aGF0Ci0gICBtaWdodCBub3QgdmlvbGF0ZSBhbnkgY29uc3Ry YWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVyCi0gICBpbmNvbnNpc3Rl bnQuCi0gICBUaGUgYWRkaXRpb25hbCBkZXRhaWxzIHJlZ2FyZGluZyBjb25mbGljdGluZyByb3dz LCBzdWNoIGFzIHRoZWlyIG9yaWdpbiBhbmQKLSAgIGNvbW1pdCB0aW1lc3RhbXAgY2FuIGJlIHNl ZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGluZSBvZiB0aGUKLSAgIGxvZy4g QnV0IG5vdGUgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4KLSAg IDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFj a19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KLSAgIGlzIGVuYWJsZWQgb24gdGhl IHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUKLSAg IHdoZXRoZXIgdG8gcmV0YWluIHRoZSBsb2NhbCBjaGFuZ2Ugb3IgYWRvcHQgdGhlIHJlbW90ZSBh bHRlcmF0aW9uLiBGb3IKLSAgIGluc3RhbmNlLCB0aGUgPGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PiBsaW5lIGluIHRoZSBhYm92ZSBsb2cgaW5kaWNhdGVzIHRoYXQKLSAgIHRoZSBleGlzdGluZyBy b3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNhbiBtYW51YWxseSBwZXJmb3JtIGEKLSAg IHJlbW90ZS1jaGFuZ2Utd2luLgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBXaGVuIHRoZQot ICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zdHJl YW1pbmciPjxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD48L2xpbms+Ci0gICBtb2RlIGlzIDxs aXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwgdGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5z YWN0aW9ucwotICAgbWF5IG5vdCBiZSBsb2dnZWQuIEluIHRoYXQgY2FzZSwgaXQgbWF5IGJlIG5l Y2Vzc2FyeSB0byBjaGFuZ2UgdGhlIHN0cmVhbWluZwotICAgbW9kZSB0byA8bGl0ZXJhbD5vbjwv bGl0ZXJhbD4gb3IgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPiBhbmQgY2F1c2UgdGhlIHNhbWUKLSAg IGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUgZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0 aW9uIHdpbGwgYmUgd3JpdHRlbgotICAgdG8gdGhlIHNlcnZlciBsb2cuIEZvciB0aGUgdXNhZ2Ug b2YgZmluaXNoIExTTiwgcGxlYXNlIHJlZmVyIHRvIDxsaW5rCi0gICBsaW5rZW5kPSJzcWwtYWx0 ZXJzdWJzY3JpcHRpb24iPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4KLSAgIFNLSVA8 L2NvbW1hbmQ+PC9saW5rPi4KLSAgPC9wYXJhPgorICAgIFRoZSBMU04gb2YgdGhlIHRyYW5zYWN0 aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFpbnQgYW5k CisgICAgdGhlIHJlcGxpY2F0aW9uIG9yaWdpbiBuYW1lIGNhbiBiZSBmb3VuZCBmcm9tIHRoZSBz ZXJ2ZXIgbG9nIChMU04gMC8wMTRDMDM3OCBhbmQKKyAgICByZXBsaWNhdGlvbiBvcmlnaW4gPGxp dGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+IGluIHRoZSBhYm92ZSBjYXNlKS4gIFRoZQorICAgIHRy YW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5IHVz aW5nCisgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1za2lw Ij48Y29tbWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFNLSVA8L2NvbW1hbmQ+PC9saW5rPgor ICAgIHdpdGggdGhlIGZpbmlzaCBMU04KKyAgICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgorICAg IGlzIGNvbW1pdHRlZCBvciBwcmVwYXJlZCBvbiB0aGUgcHVibGlzaGVyLiAgQWx0ZXJuYXRpdmVs eSwgdGhlIHRyYW5zYWN0aW9uIGNhbgorICAgIGFsc28gYmUgc2tpcHBlZCBieSBjYWxsaW5nIHRo ZSA8bGluayBsaW5rZW5kPSJwZy1yZXBsaWNhdGlvbi1vcmlnaW4tYWR2YW5jZSI+CisgICAgPGZ1 bmN0aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4g ZnVuY3Rpb24uCisgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHRoZSBzdWJzY3JpcHRp b24gbmVlZHMgdG8gYmUgZGlzYWJsZWQgdGVtcG9yYXJpbHkKKyAgICBlaXRoZXIgYnkgPGxpbmsg bGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1kaXNhYmxlIj4KKyAgICA8Y29t bWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwg dGhlCisgICAgc3Vic2NyaXB0aW9uIGNhbiBiZSB1c2VkIHdpdGggdGhlCisgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1kaXNhYmxlLW9uLWVycm9y Ij48bGl0ZXJhbD5kaXNhYmxlX29uX2Vycm9yPC9saXRlcmFsPjwvbGluaz4KKyAgICBvcHRpb24u IFRoZW4sIHlvdSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5j ZSgpPC9mdW5jdGlvbj4KKyAgICBmdW5jdGlvbiB3aXRoIHRoZSA8cGFyYW1ldGVyPm5vZGVfbmFt ZTwvcGFyYW1ldGVyPiAoaS5lLiwgPGxpdGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+KQorICAgIGFu ZCB0aGUgbmV4dCBMU04gb2YgdGhlIGZpbmlzaCBMU04gKGkuZS4sIDAvMDE0QzAzNzkpLiAgVGhl IGN1cnJlbnQgcG9zaXRpb24gb2YKKyAgICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGlu ayBsaW5rZW5kPSJ2aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgorICAgIDxzdHJ1 Y3RuYW1lPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXM8L3N0cnVjdG5hbWU+PC9saW5rPiBz eXN0ZW0gdmlldy4KKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHNraXBwaW5nIHRoZSB3aG9sZSB0cmFu c2FjdGlvbiBpbmNsdWRlcyBza2lwcGluZyBjaGFuZ2VzIHRoYXQKKyAgICBtaWdodCBub3Qgdmlv bGF0ZSBhbnkgY29uc3RyYWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVy CisgICAgaW5jb25zaXN0ZW50LgorICAgIFRoZSBhZGRpdGlvbmFsIGRldGFpbHMgcmVnYXJkaW5n IGNvbmZsaWN0aW5nIHJvd3MsIHN1Y2ggYXMgdGhlaXIgb3JpZ2luIGFuZAorICAgIGNvbW1pdCB0 aW1lc3RhbXAgY2FuIGJlIHNlZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGlu ZSBvZiB0aGUKKyAgICBsb2cuIEJ1dCBub3RlIHRoYXQgdGhpcyBpbmZvcm1hdGlvbiBpcyBvbmx5 IGF2YWlsYWJsZSB3aGVuCisgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1l c3RhbXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgor ICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZv cm1hdGlvbiB0byBkZWNpZGUKKyAgICB3aGV0aGVyIHRvIHJldGFpbiB0aGUgbG9jYWwgY2hhbmdl IG9yIGFkb3B0IHRoZSByZW1vdGUgYWx0ZXJhdGlvbi4gRm9yCisgICAgaW5zdGFuY2UsIHRoZSA8 bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+IGxpbmUgaW4gdGhlIGFib3ZlIGxvZyBpbmRpY2F0ZXMg dGhhdAorICAgIHRoZSBleGlzdGluZyByb3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNh biBtYW51YWxseSBwZXJmb3JtIGEKKyAgICByZW1vdGUtY2hhbmdlLXdpbi4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgV2hlbiB0aGUKKyAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl c3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXN0cmVhbWluZyI+PGxpdGVyYWw+c3RyZWFtaW5nPC9s aXRlcmFsPjwvbGluaz4KKyAgICBtb2RlIGlzIDxsaXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwg dGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5zYWN0aW9ucworICAgIG1heSBub3QgYmUgbG9n Z2VkLiBJbiB0aGF0IGNhc2UsIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBzdHJl YW1pbmcKKyAgICBtb2RlIHRvIDxsaXRlcmFsPm9uPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5vZmY8 L2xpdGVyYWw+IGFuZCBjYXVzZSB0aGUgc2FtZQorICAgIGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUg ZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0aW9uIHdpbGwgYmUgd3JpdHRlbgorICAg IHRvIHRoZSBzZXJ2ZXIgbG9nLiBGb3IgdGhlIHVzYWdlIG9mIGZpbmlzaCBMU04sIHBsZWFzZSBy ZWZlciB0byA8bGluaworICAgIGxpbmtlbmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbiI+PGNvbW1h bmQ+QUxURVIgU1VCU0NSSVBUSU9OIC4uLgorICAgIFNLSVA8L2NvbW1hbmQ+PC9saW5rPi4KKyAg IDwvcGFyYT4KKyAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJsb2dpY2FsLXJl cGxpY2F0aW9uLXJlc3RyaWN0aW9ucyI+CkBAIC0yNDE1LDYgKzI1MzgsMTQgQEAgQ09OVEVYVDog IHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUi IGR1cmluZyAiSU5TRVIKICAgICAga2V5IG9yIHJlcGxpY2EgaWRlbnRpdHkgZGVmaW5lZCBmb3Ig aXQuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KKworICAgPGxpc3RpdGVtPgorICAgIDxw YXJhPgorICAgICBDb25mbGljdCBsb2cgdGFibGVzIChzZWUgPGxpbmsgbGlua2VuZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxs aXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+IHBhcmFtZXRl cikKKyAgICAgYXJlIG5ldmVyIHB1Ymxpc2hlZCwgZXZlbiB3aGVuIHVzaW5nIDxsaXRlcmFsPkZP UiBBTEwgVEFCTEVTPC9saXRlcmFsPiBpbiBhCisgICAgIHB1YmxpY2F0aW9uLgorICAgIDwvcGFy YT4KKyAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogIDwvc2VjdDE+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGU0ZjBiNmIxNmM3Li4xM2I0 MTNkMTQyZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y OTMsOCArMjkzLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxsaXRlcmFs PmZhaWxvdmVyPC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXR3by1waGFzZSI+PGxpdGVyYWw+dHdvX3BoYXNl PC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2Ny aXB0aW9uLXBhcmFtcy13aXRoLXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0YWluX2Rl YWRfdHVwbGVzPC9saXRlcmFsPjwvbGluaz4sCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVyYXRpb24iPjxsaXRl cmFsPm1heF9yZXRlbnRpb25fZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPiwgYW5kCi0gICAgICA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNl aXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxfcmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xp bms+LgorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1tYXgtcmV0ZW50aW9uLWR1cmF0aW9uIj48bGl0ZXJhbD5tYXhfcmV0ZW50aW9uX2R1cmF0 aW9uPC9saXRlcmFsPjwvbGluaz4sCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNlaXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxf cmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xpbms+LCBhbmQKKyAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3Rp bmF0aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRpb248L2xpdGVyYWw+PC9saW5r Pi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNldCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1 aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogCkBAIC0zNTIsNiArMzUzLDE0 IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICA8cXVvdGU+PGxpdGVyYWw+cGdfY29u ZmxpY3RfZGV0ZWN0aW9uPC9saXRlcmFsPjwvcXVvdGU+LCBjcmVhdGVkIHRvIHJldGFpbgogICAg ICAgZGVhZCB0dXBsZXMgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiwgd2lsbCBiZSBkcm9wcGVkLgog ICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIHRoZSA8bGluayBsaW5rZW5k PSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5h dGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4K KyAgICAgIHBhcmFtZXRlciBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxs aXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgICAgIGF1dG9tYXRpY2FsbHkgY3Jl YXRlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiBDb252ZXJzZWx5LCBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFsPiwgbG9nZ2luZyB0 byB0aGUgdGFibGUgc3RvcHMgYW5kIHRoZSBjb25mbGljdCBsb2cKKyAgICAgIHRhYmxlIGlzIGF1 dG9tYXRpY2FsbHkgZHJvcHBlZC4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bAppbmRleCAwN2Q1YjFiZDc3Yy4uNTI3ZjVhYjg3NGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yNjEsNiArMjYxLDU3IEBAIENSRUFURSBTVUJTQ1JJ UFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9y ZXBsYWNlYWJsCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13 aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gKDx0eXBlPmVudW08L3R5cGU+KTwvdGVy bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lm aWVzIHRoZSBkZXN0aW5hdGlvbiBmb3IgcmVjb3JkaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24gY29u ZmxpY3RzLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IGF2YWlsYWJsZSBkZXN0aW5hdGlvbnMgYXJlOgorICAgICAgICAgIDxpdGVtaXplZGxpc3Q+Cisg ICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxs aXRlcmFsPmxvZzwvbGl0ZXJhbD46IENvbmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVkIGluIHRo ZSBzZXJ2ZXIgbG9nLgorICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3Iu IFNlZQorICAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtZmlsZS1iYXNlZC1sb2dnaW5nIi8+CisgICAgICAgICAgICAgZm9yIGRldGFpbHMuCisg ICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPnRhYmxl PC9saXRlcmFsPjogVGhlIHN5c3RlbSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBzdHJ1Y3R1cmVk IHRhYmxlCisgICAgICAgICAgICAgbmFtZWQgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9z dWJpZF8mbHQ7c3ViaWQmZ3Q7PC9saXRlcmFsPgorICAgICAgICAgICAgIGluIHRoZSA8bGl0ZXJh bD5wZ19jb25mbGljdDwvbGl0ZXJhbD4gc2NoZW1hLiBUaGlzIGFsbG93cyBmb3IgZWFzeQorICAg ICAgICAgICAgIHF1ZXJ5aW5nIGFuZCBhbmFseXNpcyBvZiBjb25mbGljdHMuIFNlZQorICAgICAg ICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3QtdGFibGUt YmFzZWQtbG9nZ2luZyIvPgorICAgICAgICAgICAgIGZvciBkZXRhaWxzLgorICAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgICAgPGNhdXRpb24+CisgICAgICAgICAgICAgPHBhcmE+CisgICAg ICAgICAgICAgIFRoZSBjb25mbGljdCBsb2cgdGFibGUgaXMgc3RyaWN0bHkgdGllZCB0byB0aGUg bGlmZWN5Y2xlIG9mIHRoZQorICAgICAgICAgICAgICBzdWJzY3JpcHRpb24gb3IgdGhlIDxsaXRl cmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gc2V0dGluZy4gSWYKKyAgICAg ICAgICAgICAgdGhlIHN1YnNjcmlwdGlvbiBpcyBkcm9wcGVkLCBvciBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+LCB0 aGUgdGFibGUgYW5kIGFsbCBpdHMgcmVjb3JkZWQgY29uZmxpY3QgZGF0YSBhcmUKKyAgICAgICAg ICAgICAgPGVtcGhhc2lzPnBlcm1hbmVudGx5IGRlbGV0ZWQ8L2VtcGhhc2lzPi4KKyAgICAgICAg ICAgICA8L3BhcmE+CisgICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIElmIGNvbmZs aWN0IGhpc3RvcnkgbWF5IGJlIG5lZWRlZCBsYXRlciwgYmFjayB1cCB0aGUgY29uZmxpY3QgbG9n CisgICAgICAgICAgICAgIHRhYmxlIGJlZm9yZSBpdCBnZXRzIHJlbW92ZWQuCisgICAgICAgICAg ICAgPC9wYXJhPgorICAgICAgICAgICAgPC9jYXV0aW9uPgorICAgICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAg ICA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+OiBSZWNvcmRzIGNvbmZsaWN0IGRldGFpbHMgdG8gYm90 aCBkZXN0aW5hdGlvbnMKKyAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+IGFuZCA8 bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4uCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICAgICA8L3BhcmE+ CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvcHkt ZGF0YSI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvcHlfZGF0YTwvbGl0ZXJhbD4gKDx0eXBl PmJvb2xlYW48L3R5cGU+KTwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgotLSAKMi40OS4wCgo= --000000000000cc7a050655003f54--